home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
BEEHIVE
/
ZSUS
/
Z3HELP-5.LBR
/
V.LBR
/
VLIB2.HZP
/
VLIB2.HLP
Wrap
Text File
|
2000-06-30
|
10KB
|
296 lines
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.