MDFS::Info.Comp.Spectrum.ProgTips.input/htm Search

Scrolling Input

On most computers the INPUT command displays characters at the current print position, and as you enter additional lines the previous lines stay on screen and the input position scrolls downwards.

On the Spectrum, INPUT always uses the bottom lines of the screen. Once a line has been input, it is cleared and the next INPUT displays at the bottom of the screen again.

On the Spectrum you can write code to give the same effect as INPUT on other systems. The main disadvantages are that you have to write a complete editor, deal with adding and removing characters, process key-repeats and key-clicks all yourself. This is a lot of work, when almost everything is already available in the system ROM.

The code simulates the "normal" INPUT used on other systems. It works by increasing the size of the bottom input area enough to push the top of the bottom of the screen up to the same position as the current screen print position. The INPUT is then taken at the top of the bottom of the screen. After the INPUT, the entered string is then redisplayed. This example displays a "*" prompt before the input.

FORa=0TO31:PRINTCHR$8;:NEXTa
INPUTATPEEK23689-2,0;AT0,0;"*";LINEa$
INPUT;:PRINT'"*";a$
  • The loop first moves the print position up one line, as each INPUT moves down one line too many.
  • Location 23689 is the print position line number, held as 24-line number. INPUTing at the line minus 2 forces the bottom of the screen to expand up to the same line by making it big enough to find the equivalant line off the bottom of the screen. For instance, if the print line is 4, then 23689 will hold 20, and moving the INPUT position to 18 expands the bottom of the screen to 18 lines.
  • The INPUT position is then moved back to (0,0) to read the entered line.
  • Once the line is entered, the bottom of the screen is reset with INPUT; and the entered line is redisplayed, this time in the top of the screen.

    To see what is happening, make the BORDER a different colour from the PAPER.


    Hosted by Force9 Internet - Domain registration by EasySpace - Authored by J.G.Harston
    Last update: 18-Oct-2004