mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
161 lines
6.3 KiB
161 lines
6.3 KiB
; 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
|
|
|