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
/
ZSUS009.LBR
/
NZFCP13.LBR
/
NZFCP.LZB
/
NZFCP.LIB
Wrap
Text File
|
1990-07-14
|
6KB
|
161 lines
; Module: NZFCP.LIB
; Author: Carson Wilson
; Version: 1.3
; Date: 9 Oct 89
; Changes: Prompts for options if SLR true.
; This module is a set of configuration options for the flow control package
; code in NZFCP.Z80. The options are not fully commented here; see
; "ZCPR3, The Manual" for a detailed discussion of most of them.
; * * * * * * N O T I C E * * * * * *
;
; The main code in Z33FCP.Z80 has been written with relative jump instructions
; for minimum code size. If the options below are changed, then some of the
; jumps may become out-of-range. You will then have to change the code based
; on the error messages you get from your assembler. I cannot think of any
; way to handle the jumps automatically (macros fail because the jump distances
; cannot be resolved fully even in two passes of the assembler). If you want
; to play things really safe, you can do a global search and replace to change
; all occurrences of the JR instruction to JP (but note that this change is
; irreversible). I prefer to live with this nuisance so that I can get the
; most out of the code.
;
; Another possible way to clear up a problem with a relative jump that is out
; of range is to take the block of code with the labels IFCTRUE and IFCFALSE
; and move it up or down in the code. It is placed somewhere in the middle of
; the resident options, so that the options can reach those entry points with
; a relative jump. You should try to place that code near the middle of the
; options which you have enabled.
;
; Jay Sage (May 17, 1987)
;=============================================================================
;
; M A C R O S
;
;=============================================================================
; SLR assemblers allow selection of options during assembly.
SLR equ yes
if SLR
y equ yes
n equ no
select macro option default comment
.accept comment,option ; Prompt user for selection
endm
.printx
.printx Answer "Y" to include, "N" to exclude commands:
.printx
else
select macro option default comment
option equ default ; Use selections from file
endm
endif ; SLR
; -------------------------------------------------------------------------
; Command names
; The CTABLE macro, which constructs the command dispatch table, includes a
; line for each command, the first parameter of which is the name of the
; command. These names may be changed if you wish. But make sure that you
; do not use a name that is longer than the maximum allowed length. If you
; do, the name will be truncated and a nonfatal error will occur during
; assembly. DO NOT CHANGE ANY PARAMETER OTHER THAN THE COMMAND NAME. Lower
; case letters will be converted to upper case. The macro COMMAND is defined
; in Z34MAC.LIB.
cmdsize equ 4 ; Maximum length of command names
; Command table name, enable, wheel, jump_addr
; [ DO NOT CHANGE THESE PARAMETERS ]
ctable macro
ifcmd: command if, yes, no, ifstart
command and, andopt, no, andstart
command or, oropt, no, orstart
command else, yes, no, ifelse
command fi, yes, no, ifend
command ifq, ifqopt, no, ifstat0
command xif, yes, no, ifexit
command zif, zifopt, no, ifzero
endm
;-----------------------------------------------------------------------------
; General configuration options
NOISE equ no ; Don't display if-state messages
select COMIF no 'Enable transient IF processing? '
PATHROOT equ yes ; Find transient IF in root of path
ifdrv equ 'A' ; Drive to use if PATHROOT is off or
; ..if the path is empty
ifusr equ 0 ; User to use if PATHROOT is off or
; ..if the path is empty
; ---------------------------------------------------------------------
; Command inclusion options
select ZIFOPT yes 'ZIF - unconditionally clear IF states? '
select IFQOPT yes 'IFQ - show current if status? '
select OROPT yes 'OR - set state at current level? '
select ANDOPT yes 'AND - reset state at current level? '
;-----------------------------------------------------------------------------
; If Condition Options
if COMIF ; Different precedence if transient IF available.
select IFONEG yes 'Allow negation of conditions? '
negchar equ '~' ; Character to use if negation allowed
select IFOERROR yes 'ERROR - test program error flag? '
select IFONULL yes 'NULL - test for no file name? '
select IFOREG yes 'REG - test register values? '
select IFAMBIG yes 'AMBIG - test for "?" in file spec? '
select IFCOMPR yes 'COMPR - test for compressed filespec? '
select IFOEQ yes '= - test tokens for equality? '
select IFOINPUT yes 'INPUT - test user input? '
XEQOPT equ yes ; Test only first token for equal sign
select IFOTRUE yes 'Allow "IF T" and "IF F" forms? '
select IFOWHEEL no 'WHEEL - test wheel byte? '
select IFOTCAP no 'TCAP - test whether TCAP loaded? '
select IFOEXIST yes 'EXIST - test for file existence? '
select IFOEMPTY yes 'EMPTY - test files for contents? '
else
select IFONEG yes 'Allow negation of conditions? '
negchar equ '~' ; Character to use if negation allowed
select IFONULL yes 'NULL - test for no file name? '
select IFOINPUT yes 'INPUT - test user input? '
select IFOEQ yes '= - test tokens for equality? '
XEQOPT equ yes ; Test only first token for equal sign
select IFOERROR yes 'ERROR - test program error flag? '
select IFOTRUE yes 'Allow "IF T" and "IF F" forms? '
select IFOEXIST yes 'EXIST - test for file existence? '
select IFAMBIG yes 'AMBIG - test for "?" in file spec? '
select IFCOMPR yes 'COMPR - test for compressed filespec? '
select IFOREG yes 'REG - test register values? '
select IFOWHEEL no 'WHEEL - test wheel byte? '
select IFOTCAP no 'TCAP - test whether TCAP loaded? '
select IFOEMPTY yes 'EMPTY - test files for contents? '
endif ; COMIF
; Miscellaneous configuration information
curusr equ z3msg+2eh ; Current logged user address
curdr equ z3msg+2fh ; Current logged drive address
curint equ '$' ; Path symbol for current drive/user
; END of NZFCP.LIB