mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:23:13 -06:00
161 lines
6.2 KiB
Plaintext
161 lines
6.2 KiB
Plaintext
; 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 no
|
||
|
||
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 no 'AMBIG - test for "?" in file spec? '
|
||
select IFCOMPR no 'COMPR - test for compressed filespec? '
|
||
select IFOREG no 'REG - test register values? '
|
||
select IFOWHEEL no 'WHEEL - test wheel byte? '
|
||
select IFOTCAP no 'TCAP - test whether TCAP loaded? '
|
||
select IFOEMPTY no '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
|
||
|