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
Text File  |  1990-07-14  |  6KB  |  161 lines

  1. ; Module:    NZFCP.LIB
  2. ; Author:    Carson Wilson
  3. ; Version:    1.3
  4. ; Date:        9 Oct 89
  5. ; Changes:    Prompts for options if SLR true.
  6.  
  7. ; This module is a set of configuration options for the flow control package
  8. ; code in NZFCP.Z80.  The options are not fully commented here; see
  9. ; "ZCPR3, The Manual" for a detailed discussion of most of them.
  10.  
  11.  
  12. ;             * * * * * *     N O T I C E     * * * * * *
  13. ;
  14. ; The main code in Z33FCP.Z80 has been written with relative jump instructions
  15. ; for minimum code size.  If the options below are changed, then some of the
  16. ; jumps may become out-of-range.  You will then have to change the code based
  17. ; on the error messages you get from your assembler.  I cannot think of any
  18. ; way to handle the jumps automatically (macros fail because the jump distances
  19. ; cannot be resolved fully even in two passes of the assembler).  If you want
  20. ; to play things really safe, you can do a global search and replace to change
  21. ; all occurrences of the JR instruction to JP (but note that this change is
  22. ; irreversible).  I prefer to live with this nuisance so that I can get the
  23. ; most out of the code.
  24. ;
  25. ; Another possible way to clear up a problem with a relative jump that is out
  26. ; of range is to take the block of code with the labels IFCTRUE and IFCFALSE
  27. ; and move it up or down in the code.  It is placed somewhere in the middle of
  28. ; the resident options, so that the options can reach those entry points with
  29. ; a relative jump.  You should try to place that code near the middle of the
  30. ; options which you have enabled.
  31. ;
  32. ;            Jay Sage (May 17, 1987)
  33.  
  34. ;=============================================================================
  35. ;
  36. ;    M A C R O S
  37. ;
  38. ;=============================================================================
  39.  
  40. ; SLR assemblers allow selection of options during assembly.
  41.  
  42. SLR    equ    yes
  43.  
  44.      if SLR
  45.  
  46. y     equ    yes
  47. n     equ    no    
  48.  
  49. select    macro    option default comment
  50.     .accept    comment,option        ; Prompt user for selection
  51.     endm
  52.  
  53.     .printx
  54.     .printx    Answer "Y" to include, "N" to exclude commands:
  55.     .printx
  56.  
  57.      else
  58.  
  59. select    macro    option default comment
  60. option    equ    default            ; Use selections from file
  61.     endm
  62.      endif                ; SLR
  63.  
  64. ; -------------------------------------------------------------------------
  65.  
  66. ; Command names
  67.  
  68. ; The CTABLE macro, which constructs the command dispatch table, includes a
  69. ; line for each command, the first parameter of which is the name of the
  70. ; command.  These names may be changed if you wish.  But make sure that you
  71. ; do not use a name that is longer than the maximum allowed length.  If you
  72. ; do, the name will be truncated and a nonfatal error will occur during
  73. ; assembly.  DO NOT CHANGE ANY PARAMETER OTHER THAN THE COMMAND NAME.  Lower
  74. ; case letters will be converted to upper case.  The macro COMMAND is defined
  75. ; in Z34MAC.LIB.
  76.  
  77. cmdsize    equ    4        ; Maximum length of command names
  78.  
  79. ; Command table        name,    enable,    wheel,    jump_addr
  80.             ;    [ DO NOT CHANGE THESE PARAMETERS ]
  81. ctable    macro
  82. ifcmd:    command        if,    yes,    no,    ifstart
  83.     command        and,    andopt,    no,    andstart
  84.     command        or,    oropt,    no,    orstart
  85.     command        else,    yes,    no,    ifelse
  86.     command        fi,    yes,    no,    ifend
  87.     command        ifq,    ifqopt,    no,    ifstat0
  88.     command        xif,    yes,    no,    ifexit
  89.     command        zif,    zifopt,    no,    ifzero
  90.     endm
  91.  
  92. ;-----------------------------------------------------------------------------
  93.  
  94. ; General configuration options
  95.  
  96. NOISE    equ    no    ; Don't display if-state messages
  97.  
  98. select    COMIF    no    'Enable transient IF processing?        '
  99.  
  100. PATHROOT equ    yes    ; Find transient IF in root of path
  101.  
  102. ifdrv        equ    'A'        ; Drive to use if PATHROOT is off or
  103.                     ; ..if the path is empty
  104. ifusr        equ    0        ; User to use if PATHROOT is off or
  105.                     ; ..if the path is empty
  106.  
  107. ; ---------------------------------------------------------------------
  108.  
  109. ; Command inclusion options
  110.  
  111. select    ZIFOPT    yes    'ZIF - unconditionally clear IF states? '
  112. select    IFQOPT    yes    'IFQ - show current if status?          '
  113. select    OROPT    yes    'OR  - set state at current level?      '
  114. select    ANDOPT    yes    'AND - reset state at current level?    '
  115.  
  116. ;-----------------------------------------------------------------------------
  117.  
  118. ; If Condition Options
  119.  
  120.      if COMIF    ; Different precedence if transient IF available.
  121. select    IFONEG    yes    'Allow negation of conditions?          '
  122. negchar        equ    '~'    ; Character to use if negation allowed
  123. select    IFOERROR yes    'ERROR - test program error flag?       '
  124. select    IFONULL    yes    'NULL  - test for no file name?         '
  125. select    IFOREG    yes    'REG   - test register values?          '
  126. select    IFAMBIG    yes    'AMBIG - test for "?" in file spec?     '
  127. select    IFCOMPR    yes    'COMPR - test for compressed filespec?  '
  128. select    IFOEQ    yes    '=     - test tokens for equality?      '
  129. select    IFOINPUT yes    'INPUT - test user input?               '
  130. XEQOPT    equ    yes    ; Test only first token for equal sign
  131. select    IFOTRUE    yes    'Allow "IF T" and "IF F" forms?         '
  132. select    IFOWHEEL no    'WHEEL - test wheel byte?               '
  133. select    IFOTCAP    no    'TCAP  - test whether TCAP loaded?      '
  134. select    IFOEXIST yes    'EXIST - test for file existence?       '
  135. select    IFOEMPTY yes    'EMPTY - test files for contents?       '
  136.      else
  137. select    IFONEG    yes    'Allow negation of conditions?          '
  138. negchar        equ    '~'    ; Character to use if negation allowed
  139. select    IFONULL    yes    'NULL  - test for no file name?         '
  140. select    IFOINPUT yes    'INPUT - test user input?               '
  141. select    IFOEQ    yes    '=     - test tokens for equality?      '
  142. XEQOPT    equ    yes    ; Test only first token for equal sign
  143. select    IFOERROR yes    'ERROR - test program error flag?       '
  144. select    IFOTRUE    yes    'Allow "IF T" and "IF F" forms?         '
  145. select    IFOEXIST yes    'EXIST - test for file existence?       '
  146. select    IFAMBIG    yes    'AMBIG - test for "?" in file spec?     '
  147. select    IFCOMPR    yes    'COMPR - test for compressed filespec?  '
  148. select    IFOREG    yes    'REG   - test register values?          '
  149. select    IFOWHEEL no    'WHEEL - test wheel byte?               '
  150. select    IFOTCAP    no    'TCAP  - test whether TCAP loaded?      '
  151. select    IFOEMPTY yes    'EMPTY - test files for contents?       '
  152.      endif    ; COMIF
  153.  
  154. ; Miscellaneous configuration information
  155.  
  156. curusr        equ    z3msg+2eh    ; Current logged user address
  157. curdr        equ    z3msg+2fh    ; Current logged drive address
  158. curint        equ    '$'        ; Path symbol for current drive/user
  159.  
  160. ;  END of NZFCP.LIB
  161.