Virtual Screen ============== The eight by forty characters on the LCD are only one sixth of the number of characters contained within the virtual screen. The LCD acts as a window onto the virtual screen. The contents of the virtual screen may be inspected at will by using the cursor control keys in their shifted state. Screen Size ----------- HUNTER's virtual screen is 80 characters by 24 lines. The virtual screen behaves very much like a terminal with automatic scrolling. When the cursor reaches the bottom line, the rest scrolls up losing the top line. Moving the Window ----------------- The window may be moved over the virtual screen either manually by the user, or automatically by the virtual screen handler resident in the operating system and as such is transparent to the user. Manual Movement ~~~~~~~~~~~~~~~ #. **Shifted state cursor control keys (looking keys)** By using the cursor control keys in their shifted state, the window can be made to move in the direction marked on the key, i.e. press the 'shift' key, hold it down, and then press the desired cursor control key. When this operation is performed it will be noticed that the cursor on the LCD (a blank flashing block) will change its position on the LCD and quite often disappear. This will happen because the cursor position refers to the position in the virtual screen, and when the window is moved the cursor position relative to the window position in the virtual screen will change. #. **Function "cursor control keys"** By pressing CTL/FN and either horizontal arrow key, then either the left or right 40 characters of the screen can be seen. This function is useful for easy reading of wide screen formats. #. **'INS' Key** Pressing the INS key will return the window to its original position prior to use of the looking keys, as outlined above. #. **Transparent Movement** The transparent movement of the virtual screen window is primarily controlled by inputs, both from the keyboard and the serial port. If HUNTER is required to accept input from, say, the keyboard then the window will automatically be moved to allow the viewing of the immediate area of the virtual screen centred around the present cursor position, thus displaying any prompts which may have been required by either a Basic program or a CP/M type program. It must be noted that printing text onto the virtual screen will not move the window. However, if any part of the virtual screen which is presently in view on the LCD is changed by, say, a :doc:`../basic-functions/print` statement, then these changes will be reflected on the LCD, thus always giving a true representation of the virtual screen. If HUNTER is accepting input from the keyboard and the cursor reaches the forty-first position of the virtual screen, then the window will be moved laterally so that the cursor is now positioned mid-way across the LCD, as soon as the forty-first character is entered, thus displaying the previous 20 virtual screen characters and the following 20 virtual screen characters. If HUNTER is waiting for input and the looking keys are used to move the window, a valid input will cause the window to automatically revert to its original position prior to the use of the looking keys. This facility does not force the user to press the INS key in order to restore the original position of the window when in this mode. For further information on cursor addressing see :doc:`../basic-functions/locate`. .. Note:: The virtual screen window does not operate in Graphics mode. Moving The Cursor ----------------- To move the cursor in the required direction it is only necessary to press the appropriate cursor control key. .. image:: virtual-screen.png .. Note:: The shifted cursor control keys move the window over the virtual screen in the direction of the arrows.