(C) Copyright 1985-1996 Modular Software Corporation. All rights reserved. Version 2.0 for AP - February 14, 1996
Goto: Table of Contents Index Chapter: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
The FULL-VIEW virtual terminal is integrated within FULL-VIEW and within the Pick Operating System. This is done in such a manner as to totally isolate an application from the physical terminal except in those instances where the application explicitly commands the terminal directly. An application executing within the FULL-VIEW environment utilizes the virtual terminal as if it were actual hardware. As such, the FULL-VIEW virtual terminal provides all of the functions that a typical terminal would, including:
What follows are specifications of the FULL-VIEW virtual terminal presented as if it were a physical terminal. These descriptions will help to acquaint you with the capabilities of the FULL-VIEW terminal environment.
The FULL-VIEW virtual terminal actually supports several sets of terminal control functions simultaneously. In particular, FULL-VIEW supports some of the most common ADDS Regent terminal control sequences. This allows applications which have been hardcoded for these terminals to execute without modification. Of course, applications that utilize the Pick @(x,y) and @(-z) functions will operate without modification.
@(X,Y) = ESC : '*' : CHAR(X) : CHAR(Y) @(X) = ESC : '*' : CHAR(X) : CHAR(127)Cursor positioning within the virtual terminal is always relative to the upper left hand corner of the active window, which is at position 0,0. If a cursor location is specified outside of the currently defined terminal or window size, the cursor will be positioned to the right-most column or lower-most line or both as appropriate.
@(-1) = ESC : '*' : CHAR(1) or CHAR(12)This sequence will clear the active window. It also resets all video attributes (both color and monochrome).
@(-3) = ESC : '*' : CHAR(3)This sequence will clear the active window from the current cursor location to the end of the window. The cleared area is are also cleared of any video attributes.
@(-4) = ESC : '*' : CHAR(4)This sequence will clear the active window from the current cursor location to the end of the current line. The cleared ares is also cleared of any active video attributes.
@(-9) = ESC : '*' : CHAR(9) or CHAR(8) or CHAR(21)This sequence will move the cursor back a single space non-destructively (no data on the screen is erased). If the cursor is at the beginning of a line (either full-page or within a window), the cursor will move to the end of the previous line. If the cursor is at the beginning of a window, nothing happens.
@(-10) = ESC : '*' : CHAR(10) or CHAR(6)This sequence will move the cursor forward one space non-destructively. If the cursor is at the end of a line, it will move to the beginning of the next line. If the cursor is at the bottom of the active window, the window will scroll unless the scroll supress option has been set.
@(-11) = ESC : '*' : CHAR(11) or CHAR(26)This sequence will move the cursor up a line. If the cursor is already at the top-most line of a window, nothing happens.
@(-12) = ESC : '*' : CHAR(12) or CHAR(10)This sequence will move the cursor down a line. A carriage return is not performed. If the cursor is at the bottom line of the active window, the window will scroll.
CHAR(13)This sequence will move the cursor to the beginning of the current line.
ESC : 'N'This sequence, when included in the same PRINT line with other characters, will prevent the other characters from scrolling the active window when the last character of the last line is printed. This function is used by the virtual terminal to permit the lower-right hand corner of a window to be filled without scrolling the window contents. This function is automatically cancelled by processing any cursor positioning, carriage return, or line feed function.
ESC : 'W' : CHAR(x0) : CHAR(x1) : CHAR(y0) : CHAR(y1)This sequence will set up a new active window area on the screen. The new window will have a left edge at column x0, a right edge at column x1, a top-most line at line y0, and a bottom line at line y1. This sequence does not change any characters on the display screen. The cursor will be positioned at location 0,0 within the newly defined active window.
This sequence is used by the START-WINDOW series of utility functions to create windows with borders.
If a window is defined which has boundaries beyond the current screen's limits, an error message will result.
ESC : 'C' : CHAR(n)This sequence is used to set the current video attribute, both monochrome and color. The 'n' is actually a bit-map of the attribute that you wish to set. The lower 4 bits on 'n' are used to set monochrome attributes as follows:
ESC : 'C' : CHAR(9) 1 (dim) + 8 (blinking)The high 4 bits on 'n' are used to set up color video attributes. These four bits set from 0000 thru 1111 correspond to FULL-VIEW color definitions 0 through 15. FULL-VIEW defines colors as monochrome and 15 combinations of foreground background colors. While limiting the color selection to only 15 combinations may seem limiting at first, it actually provides a very wide range of pleasing color combinations.
EXAMPLE: In order to set color 4, you would use the sequence:
ESC : 'C' : CHAR(64) 4 (color) x 16Both monochrome and color video attributes may be set up at the same time by combining 'n' values above. In this manner, you can design applications which will drive both color and monochrome displays without requiring differentiation between the two types of displays. For example, to display a data entry field as underlined on monochrome displays and as color 3 on color displays, you would use the sequence:
ESC : 'C' : CHAR(50) 3 (color) x 16 + 2 (underlined)
CHAR(128)
CHAR(129)
CHAR(130)
CHAR(131)
CHAR(132)
CHAR(133)
CHAR(134)
CHAR(135)
CHAR(136)
CHAR(137)
CHAR(138)
FULL-VIEW has a number of control and function keys for which default values are defined. These include:
CHAR(6)
CHAR(8)
CHAR(9)
CHAR(10)
CHAR(13)
CHAR(21)
CHAR(26)
CHAR(129)- Function keys 1 through 40 CHAR(158) CHAR(161)
CHAR(162)
CHAR(163)
CHAR(164)
CHAR(250)
Wherever possible, applications should permit cursor keys to be used to navigate through the application. This is particularily important for menus and data entry functions since cursor keys are the obvious way of moving around the screen. The cursor keys defined within FULL-VIEW are:
UP CHAR(26) DOWN CHAR(10) LEFT CHAR(21) RIGHT CHAR(6)Note that the cursor-left key is different than the backspace key ( CHAR(8) ). This allows the backspace key to be destructive within the application (erase characters as the cursor moves left) while allowing the cursor-left key to simply move the cursor to the left.
The CR and TAB keys are used to move logically forward [TAB] and backward [RETURN] from field to field within a data entry screen. These keys allow an operator to quickly move forward and back, allowing quick data edits. The control characters for these keys are:
CR CHAR(13) TAB CHAR(9)
Insert a space at the current cursor position in this field. This will push the rest of the field to the right. Characters at the end of the field may be pushed off of the end and wiil be lost.
INSERT CHAR(161)
Delete the character at the current cursor position in this field. This command will pull the rest of the field to the left, inserting spaces at the end of fixed length fields.
DELETE CHAR(162)
This command is used to as a quick method of processing an entire screen's data without having to press ENTER through all of the fields in the data entry screen.
SEND or CHAR(129) F1Note that this command is often assigned to more than one keyboard character. This allows for maximum data entry performance.
This command is used as a quick method of exiting and abandoning the current screen entry function.
F2 CHAR(130)
This key is used to invoke function sensitive help text. Function help is general information relevant to the current function and not specific to the current data entry field.
F3 CHAR(131)
This key is used to invoke help text which is specific to the current field.
F4 CHAR(132)
This key is used to invoke data lookup relating to the current field.
F5 CHAR(133)
Please note, however, that some display layouts are not possible on these terminals because of the terminal hardware's inability to display two fields next to each other with different video attributes unless there is an intervening space between the fields. If you are using this type of terminal, you should take this hardware limitation into consideration and avoid screen layouts and designs which place fields with different video attributes directly adjacent to each other.
In addition to taking up space on the screen, embedded attributes can also cause terminal output functions to execute somewhat more slowely because of the increased complexity and quantity of terminal output required to support them.
Goto: Table of Contents Index Chapter: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15