home *** CD-ROM | disk | FTP | other *** search
- Screen Clearing - CLS, CLREOS
- Erase to EOL - EREOL
- Goto XY - AT, GOTOXY
- Initialization - VIDINIT, Z3VINIT
- Print - GXYMSG, VPRINT, VPSTR
- Standout Mode - STNDOUT, STNDEND
- Term Init - TINIT, DINIT
- Insert/Delete - DELLIN, INSLIN
- Test Cursor key - ISCUR
- Version ID - VVERS
- :CLS - Clear Entire Screen and Home Cursor
-
- ENTER: None
- EXIT : A <> 0 Zero Flag Reset (NZ) if screen cleared
- A = 0, Zero Flag Set (Z) if fcn Not available
- USES : AF
-
- Usage: Most often used to provide initial entry conditions,
- or to divide functions of a program for ergonomic reasons.
-
- CLREOS - Clear from current Cursor Position to End-of-Screen
- leaving Cursor in present position
-
- ENTER: None
- EXIT : A <> 0 Zero Flag Reset (NZ) if screen cleared
- A = 0, Zero Set (Z) if function Not available
- USES : AF
-
- Usage: Most often used to remove transient information from
- the lower part of a screen while retaining information on
- the upper part.
-
- :EREOL - Erase line from cursor position to End-of-Line
-
- ENTER: None
- EXIT : A <> 0 Zero Flag Reset (NZ) if line erased
- A = 0, Zero Flag Set (Z) if fcn Not available
- USES : AF
-
- Usage: Used to insure that remaining information on a line
- is cleared
-
- :AT - Position cursor from In-Line code coordinate positions
-
- ENTER: None. Address of XY coordinates are on Stack Top
- EXIT : None. Execution resumes at instr after XY coordinates
- USES : None
-
- Usage: Position the cursor at row and column address pointed
- to by the return address. Used where the desired Row and
- Column position is known by the program, and does not change
- with program flow. See GOTOXY for positioning routine that
- may be varied within a program. Note: There is no checking
- of terminal limits in the Environment.
-
- Example:
- EXT AT ; Declare the routine
- ... ; ..other parts of program
- CALL AT ; Call the positioning routine
- DEFB ROW,COL ; ..Row and Column (1,1 is home)
- ... ; Program flow resumes here
-
- GOTOXY - Position cursor from Row & Column data in registers
-
- ENTER: HL = Desired Cursor position (H=Row, H=Column)
- EXIT : A <> 0 Zero Flag Reset (NZ) if Cursor positioned
- A = 0, Zero Set (Z) if function Not available
- USES : AF
-
- Usage: Position the cursor at Row (in Register H) and Column
- (in L). The Home position (Top left corner) is H=1 and L=1.
- When the desired Cursor position is fixed, you may want to
- use AT (above). (*) Bits 1 and 2 of the new Mode Byte should
- be sensed before positioning to last Column in a Row to avoid
- Screen Wrap/Scroll problems.
-
- Example:
- EXT GOTOXY ; Declare the routine
- ... ; ..intervening code
- LD HL,10*256+3 ; Load coords (Row 10, Col 3)
- CALL GOTOXY ; Try to position the Cursor
- JR NZ,MOVOK ; ..jump if successful
- ... ; Else try something else
-
- : VLIB Initialization
-
- VIDINIT - Initialize the VLIB routines to a specified TCAP.
-
- ENTER: HL = Address of a Z3 formatted TCAP
- EXIT : None
- USES : None
- EFFECTS : VIDPTR global ptr is initialized to TCAP, VLIB set
-
- Usage: This routine provides the ability to use a TCAP other
- than that provided in the ZCPR3 Environment. For added
- safety in programming, you should also set the Z3LIB variable
- ENVPTR to an address pointing to an ENV construct which
- provides terminal parameters to some routines.
-
- Example:
- EXT VIDINIT ; Declare the routine
- ... ; ..program initialization code
- LD HL,(Z3EADR) ; Load ENV address
- LD DE,80H ; Offset to TCAP portion
- ADD HL,DE
- CALL VIDINIT ; ..and initialize VLIB
- ... ; Carry on with program
-
- Z3VINIT - Initialize Z3LIB and VLIB routines for use.
-
- ENTER: HL = Address of a ZCPR3 Environment Descriptor
- EXIT : None
- USES : None
-
- Usage: This routine combines the functions of the Z3LIB
- routine Z3INIT and VIDINIT covered above. It assumes that
- the TCAP begins 80H (128) bytes after the specified Environ-
- ment pointer passed in HL.
-
- Example:
- EXT Z3VINIT ; Declare the routine
- ... ; ..Initial program code
- LD HL,(Z3EADR) ; Get the Environment address
- CALL Z3VINIT ; ..set ENVPTR and init VLIB
- ... ; Carry on!
-
- : Print Routines
-
- GXYMSG - Position Cursor and print text with highlighting
-
- ENTER: None. Addr of XY coords followed by text on stack top
- EXIT : None. Execution resumes after text terminating Null
- USES : None
-
- Usage: This routine is used to print a text message at a pre-
- defined location on the Terminal screen. It is analagous to
- positioning the cursor with AT followed by a string print
- with VPRINT. Standout and Standend attributes are recognized
- with binary 1 and 2 respectively. Note: There is no
- checking of terminal limits in the Environment.
-
- Example:
- EXT GXYMSG ; Declare the routine
- ... ; ..intervening code
- CALL GXYMSG ; Print as...
- DEFB 2,15 ; Position to Row 2, Column 15
- DEFB 1,'Hi',2 ; ..and print this message
- DEFB ' There!',0 ; ...highlighting "Hi"
- ... ; Execution resumes here
-
- VPRINT - Print null-terminated Inline text with Highlighting
-
- ENTER: None. The String starting address in on Stack Top
- EXIT : None. Execution resumes after String terminator
- USES : None
-
- Usage: This routine is used to print a text string from Inline
- code with Highlighting ability by enabling STNDOUT mode with
- a binary 1, and resuming normal print via STNDEND with a
- binary 2. This is VLIB's version of the SYSLIB routine PRINT.
-
- Example:
- EXT VPRINT ; Declare the routine
- ... ; ..intervening code
- CALL VPRINT ; Print the following line
- DEFB 2,'Hi',1 ; ..hilighting "Hi" and
- DEFB ' There',0 ; ...the remainder in normal
- ... ; Execution resumes here
-
- VPSTR - Print a null-terminated message with Highlighting
-
- ENTER: HL = Address of Null-terminated string to print
- EXIT : HL = Points to byte after terminating Null
- A = 0, Zero Flag Set (Z)
- USES : AF,HL
-
- Usage: This routine is used to print text messages with High-
- lighting capabilities provided by STNDOUT/STNDEND from
- locations other than the executing code. It is the VLIB
- corollary of PSTR in SYSLIB.
-
- : Standout Mode
-
- STNDOUT - Begin Standout mode. For terminals with Reverse
- Video, this routine will start that mode. For those with DIM
- or reduced video, use TINIT to set the terminal to that mode
- for normal print, and STNDOUT to place in Normal mode. DINIT
- should then reverse on exit.
-
- ENTER: None
- EXIT : A <> 0 Zero Flag Reset (NZ) if Standout Mode Entered
- A = 0, Zero Flag Set (Z) if Not available
- USES : AF
-
- Usage: This mode is used to provide visual attributes for
- better man-machine interface. CAUTION: Do NOT reposition
- the cursor or issue Carriage Returns or Line Feeds while the
- Standout mode is in effect since unknown effects can occur on
- some types of terminals. Use STNDEND to disable this mode.
-
- STNDEND - End Standout Mode, return to Normal Screen Display
-
- ENTER: None
- EXIT : A <> 0 Zero Flag Reset (NZ) if Standout Mode Ended
- A = 0, Zero Set (Z) if function Not available
- USES : AF
-
- Usage: This reverses the mode set by STNDOUT above. See notes
- for STNDOUT
-
- : Terminal Initialization and Deinitialization
-
- TINIT - Initialize terminal for use with VLIB routines
-
- ENTER: None
- EXIT : None
- USES : None
-
- Usage: When writing programs based on VLIB routines, TINIT
- should be called early in the program flow. If you are using
- video attributes to provide highlighting with STNDOUT/STNDEND
- and your terminal only provides a DIM or reduced-intensity
- attribute, TINIT should set the normal mode to the DIM or
- Reduced mode, and STNDOUT used for normal intensity print.
- The corresponding DINIT should be used to restore normal mode
- just priot to program exit.
-
- DINIT - De-initialize the terminal. Return to Normal
-
- ENTER: None
- EXIT : None
- USES : None
-
- Usage: Normally used to restore terminal default conditions
- upon program termination. See Usage notes for TINIT.
-
- Example:
- EXT TINIT,DINIT ; Declare the routines
- ... ; ..initial program code
- CALL TINIT ; Initialize the terminal
- ... ; ..main program code
- CALL DINIT ; Do just before exitting pgm
- JP EXIT ; ..and return to normal
-
- :DELLIN - Delete the currently addressed line
- INSLIN - Insert a new line at the current cursor position
-
- ENTER: None
- EXIT : A <> 0, Zero Flag Clear (NZ) if action completed,
- A = 0, Zero Set (Z) if function Not defined.
- USES : AF
-
- Usage: These routines may be used to enhance screen editor
- functions under ZCPR3 with appropriate TERMCAP definitions.
-
- Example:
- EXT DELLIN,INSLIN ; Declare the routines
- ... ; ..pos'n cursor to desired line
- CALL DELLIN ; Kill it!
- JR Z,NOTDONE ; ..jump if not defined
- ... ; ..position to new line pos'n
- CALL INSLIN ; New line here, push others down
- JR Z,NOINSL ; ..jump if not defined
- ... ; Else continue on
-
- :ISCUR - Test character for Cursor Movement Key
-
- ENTER: A = Character to test
- EXIT : A = 1..4 (1=Up, 2=Down, 3=Right, 4=Left), Zero Clear
- (NZ) if Character is Cursor key from TCAP or
- WordStar Cursor key
- A = Character, Zero Set (Z) if NOT Cursor key
- USES : AF
-
- Usage: This routine may be called to determine if a character
- is a command to move the cursor Up, Down, Right or Left.
- Both single char commands from the Extended TCAP as well as
- WordStar ^E, ^X, ^D and ^S are checked.
-
- Example:
- EXT ISCUR, CIN ; Declare some routines
- ... ; ..preceding code
- CALL CIN ; Get a char from the keyboard
- CALL ISCUR ; Is it a cursor key?
- JR Z,NOCUR ; ..jump if not a cursor key
-
- :VVERS - Return the VLIB version number.
-
- ENTER: None
- EXIT : HL - contains VLIB version number (H=major, L=minor)
- USES : HL
-
- Usage: This routine is most often called for debugging or
- documentation purposes to include the VLIB library version
- number linked in programs.