ZCPR-3 Terminal Capabilities (TCAP) Extended Definition as of 8 March 1989 (HFB) The ZCPR-3 TCAP is a 128-byte area positioned immediately after the Environment Descriptor. The configuration has been changed from the original descriptions contained in Richard Conn's book, ZCPR3, The Manual. The layout here is designed for backward compatibility with the original scheme while adding extensions to accomodate rudamentary business graphics and pull-down menus described in Dennis Wright's GRXLIB and portions of GRWLIB. Offsets mentioned in this description are from the base of the TCAP. Offset Item Description 0 Terminal Name 15 characters, alphanumeric. The first character must NOT be a space. A leading space means uninstalled TCAP. 15 Characteristics One byte indicating Terminal details as: B0 - 1 = Reverse or Intensify available 0 = Dim or reduced intensity avail B1 - 1 = Screen wraps on last col write 0 = No wrap if last column written B2 - 1 = Screen scrolls if last row/col position written 0 = Screen does NOT scroll if last col of last row written B3 - 1 = Term needs 10 secs on powerup 0 = Terminal instantly ready The following four bytes are for single-byte cursor movement codes FROM the terminal. If your terminal has no independant cursor movement keys, or implements cursor movement with multi- byte sequences, use any convenient single-key sequence you desire. The familiar WordStar "diamond" comprised of Control-E (Up), Control-X (Down), Control-D (Right) and Control-S (Left) is commonly used. 16 Cursor Up Cursor UP code from terminal (^E) 17 Cursor Dowm Cursor DOWN code from terminal (^X) 18 Cursor Right Cursor RIGHT code from terminal (^D) 19 Cursor Left Cursor LEFT code from terminal (^S) Some terminals need delays to perform certain functions. This may be more important as interface speeds increase. Delays are in milliseconds. Consult your terminal manual for the correct values to insert. 20 Clear Screen Delay in milliseconds (0 to 255) 21 Move Cursor Delay in milliseconds (0 to 255) 22 Clear to EOL Delay in milliseconds (0 to 255) Beginning at Offset 23 from the beginning of the TCAP, a sequence of Null-terminated strings define the Command Strings needed to make the Terminal respond as desired. If particular features are not implemented on nor needed by your terminal, a single Null (binary 0) disables that feature. Clear Screen (CL) - Clear Screen & Home Cursor Cursor Movement (CM) - Parsed string for cursor posi- tioning. See ZCPR3, The Manual for details. "%N" string added to send Binary 0 to Terminal Clear to End-of-Line (CE) - Clear from Cursor Position to the end of the current line. Cursor stays in current place Standout Begin (SO) - Enter Standout Mode If terminal uses DIM or Reduced intensity, the Initialization string (TI below) should set to reduced intensity, and this function sets normal intensity Standout End (SE) - End Standout mode If you use DIM or reduced intensity with normal for "Standout", this restores the DIM mode. Initialize Terminal (TI) - Initialize the terminal See notes for suggestions on DIM/Reduced Intensity above De-initialize Term (TE) - Restore Terminal to normal mode See above notes Delete Line (LD) - Delete line on which the cursor resides and move lines below it up by one Insert Line (LI) - Insert blank line before the one on which the cursor positioned, and move lines below down one. Cursor moves to beginning of the new blank line Clear to EOS (CD) - Clear screen from current cursor position to the End-of-Screen The following definitions implement portions of the GRXLIB and GRWLIB functionality, but in different TCAP locations. Graphics Delay - Delay for Graphics On/Off. Use greater of the two delay times in milliseconds. Values of 0 to 255 are acceptable Graphics Mode On (GO) - Set Terminal to Graphics Mode End Graphics Mode (GE) - Restore Terminal to normal Alphanumeric mode Cursor Off (CDO)- Disable Cursor display. Needed for Pull Down Menus Cursor On (CDE)- Enable Cursor display. Needed for Pull Down Menus Several graphics strings are needed to implement the desired level of functionality. Each of these is needed in the specified order. The terminal should first be placed in the graphics mode, then the desired string sent. If strings for all terminals are only a single character, this may be reduced to a character array in the future. Upper-Left Corner (GULC) - String for now Upper-Right Corner (GURC) - " " " Lower-Left Corner (GLLC) - " " " Lower-Right Corner (GLRC) - " " " Horizontal Line (GHL) - " " " Vertical Line (GVL) - " " " Solid (Full) Block (GFB) - " " " Hashed Block (GHB) - " " " Upper Intersect (GUI) - " " " Lower Intersect (GLI) - " " " Intersection (GIS) - " " " Right Intersect (GRTI) - " " " Left Intersect (GLTI) - " " " The remainder of the TCAP should be filled with binary Zeros to properly handle future additions. Example: ; Z3TCAP: HEATH19.Z80 ; Author: Harold F. Bower ; Z3 Termcap implementing the Heath/Zenith-19 command set ESC EQU 27 ; Escape character ; New Terminal Capabilities Data Z3TCAP: DEFB 'Heath/Zenith-19' ; Name of terminal (15 chars) TRMMOD: DEFB 00000111B ; B3 = 0 - Term Ready quickly ; B2 = 1 - Rev Video, ; B1 = 1 - Wrap @ EOL, ; B0 = 1 - Scroll @ EOP DEFB 'E'-'@' ; Cursor up (WS Diamond) DEFB 'X'-'@' ; Cursor down DEFB 'D'-'@' ; Cursor right DEFB 'S'-'@' ; Cursor left ; Heath-19 doesn't need delays DEFB 00 ; Cl delay DEFB 00 ; Cm delay DEFB 00 ; Ce delay ; Strings start here. DEFB ESC,'E',0 ; CL str (Clear, Home Cursor) DEFB ESC,'Y%+ %+ ',0 ; CM str (Cursor positioning) DEFB ESC,'K',0 ; CE str (Clear to End-of-Line) DEFB ESC,'p',0 ; SO str (Go to Reverse Video) DEFB ESC,'q',0 ; SE str (Return Normal Video) DEFB 0 ; TI str (Initialize Terminal) DEFB 0 ; TE str (De-initialize Term) ; Extensions to Standard TCAP DEFB ESC,'M',0 ; LD str (Delete Line) DEFB ESC,'L',0 ; LI str (Insert Line) DEFB ESC,'J',0 ; CD - Clear to EOS String DEFB 0 ; GO/GE - Graphics On/Off Delay DEFB ESC,'F',0 ; GO - Graphics Mode On DEFB ESC,'G',0 ; GE - Graphics Mode End DEFB ESC,'x5',0 ; CDO - Cursor Off string DEFB ESC,'y5',0 ; CDE - Cursor Enable string DEFB 'f',0 ; GULC - Upper Left Corner [*] DEFB 'c',0 ; GURC - Upper Right Corner [*] DEFB 'e',0 ; GLLC - Lower Left Corner [*] DEFB 'd',0 ; GLRC - Lower Right Corner [*] DEFB 'a',0 ; GHL - Horizontal Line [-] DEFB '`',0 ; GVL - Vertical Line [|] DEFB 'i',0 ; GFB - Full Block String [*] DEFB 'w',0 ; GHB - Hashed Block String [#] DEFB 'u',0 ; GUI - Upper Intersection [+] DEFB 's',0 ; GLI - Lower Intersection [+] DEFB 'b',0 ; GIS - Intersection [+] DEFB 'v',0 ; GRTI - Right Intersection [+] DEFB 't',0 ; GLTI - Left Intersection [+] ; Fill unused space with Nulls REPT 128-[$-Z3TCAP] DEFB 0 ENDM END ;------------- End of Sample TermCap -------------