home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / lambda / soundpot / p / zcpr33.lbr / Z3BASE.LZB / Z3BASE.LIB
Encoding:
Text File  |  1993-10-25  |  6.5 KB  |  226 lines

  1. ; Z3BASE - Dynamic Configuration
  2. ;
  3. ; ZCPR33 is copyright 1987 by Echelon, Inc.  All rights reserved.  End-user
  4. ; distribution and duplication permitted for non-commercial purposes only.
  5. ; Any commercial use of ZCPR33, defined as any situation where the duplicator
  6. ; recieves revenue by duplicating or distributing ZCPR33 by itself or in
  7. ; conjunction with any hardware or software product, is expressly prohibited
  8. ; unless authorized in writing by Echelon.
  9. ;
  10. ; This is a special version of Z3BASE, inspired by Joe Wright's Z3BASE
  11. ; for Z-Com.  All segment addresses are automatically derived when the
  12. ; CCP equate is set.  The benefit of this is that reconfiguration of the
  13. ; system after initial installation is greatly eased.
  14. ;
  15. ; Although this version of Z3BASE is being distributed with ZCPR 3.3, any
  16. ; previous version of Z3BASE can be used to assemble the Z33 Command
  17. ; Processor.  No new symbols are needed.  So, if you have an existing
  18. ; Z3BASE, go ahead and use it.
  19. ;
  20. ; Instructions:
  21. ;
  22. ; The user should first design the ZCPR3 memory usage using the chart
  23. ; below.  (Echelon recommends the chart be filled out, even though it is
  24. ; not read by the assembler, so that your system will be self-documenting.)
  25. ; Then set the CCP equate for the beginning address of ZCPR3.  Next, examine
  26. ; and change the SEGn equates which follow in the file to ensure that the
  27. ; system segments and buffers are placed at the proper addresses.
  28. ;
  29. ; This file has been customized for use with AMPRO hard disk systems.  The
  30. ; target configuration has support for hard disks up to 49 Meg, extended
  31. ; IOP support, and 28-entry NDR.
  32. ;
  33. ;****************************************************************
  34. ;*                                *
  35. ;*  Z3BASE.LIB -- Base Addresses for ZCPR 3.3/Z-System        *
  36. ;*                                *
  37. ;*     Segments:                        *
  38. ;*                                *
  39. ;*    Segment        Function                *
  40. ;*    -------        --------                *
  41. ;*    ZRDOS        Echelon Z80 Replacement Disk Operating    *
  42. ;*            System, Version 1.7 (Public ZRDOS Plus)    *
  43. ;*    CBIOSZ        Ampro-compatible BIOS with additional    *
  44. ;*            ZCPR3 initialization routines        *
  45. ;*    ZCPR3        Echelon Z80 Command Processor        *
  46. ;*            Replacement, Version 3.3 (ZCPR3)    *
  47. ;*    *.ENV        All Environment Descriptors        *
  48. ;*    *.FCP        All Flow Command Packages        *
  49. ;*    *.NDR        All Named Directory Definition Files    *
  50. ;*    *.RCP        All Resident Command Packages        *
  51. ;*    *.IOP        All Input/Output Packages        *
  52. ;*                                *
  53. ;*                                *
  54. ;* Memory Map of System (for CCP EQU 0BC00H):            *
  55. ;*                                *
  56. ;*    Address Range      Size    Function            *
  57. ;*    -------------    -------    --------            *
  58. ;*        0 -   FF    256 b    Standard CP/M Buffers except    *
  59. ;*      100 - C3FF    ~49 K    Transient Program Area        *
  60. ;*     BC00 - C3FF    2K    ZCPR 3.3 Command Processor    *
  61. ;*     C400 - D1FF    3.5 K    ZRDOS                *
  62. ;*     D200 - EAFF    6.25K    Ampro BIOS w/hard disk buffers    *
  63. ;*     EB00 - F2FF      2 K    Resident Command Package    *
  64. ;*     F300 - F8FF    1.5 K    Input/Output Package        *
  65. ;*     F900 - FAFF     .5 K    Flow Command Package        *
  66. ;*     FB00 - FB7F    128 b    ZCPR3 Shell Stack        *
  67. ;*     FB80 - FBCF     80 b    ZCPR3 Message Buffers        *
  68. ;*     FBD0 - FBF3     36 b    ZCPR3 External FCB        *
  69. ;*     FBF4 - FBFE     11 b    ZCPR3 External Path            *
  70. ;*       FBFF            1 b    Wheel Byte            *
  71. ;*     FC00 - FDFF     .5 K    Memory-Based Named Directory    *
  72. ;*     FE00 - FEFF    256 b    Environment Descriptor        *
  73. ;*                Bytes 00H-7FH:  Z3 Parameters    *
  74. ;*                Bytes 80H-FFH:  Z3 TCAP        *
  75. ;*     FF00 - FFCF    208 B    Multiple Command Line Buffer    *
  76. ;*     FD00 - FFFF     48 b    ZCPR3 External Stack        *
  77. ;****************************************************************
  78.  
  79. FALSE    equ    0
  80. TRUE    equ    NOT FALSE
  81.  
  82. Z3REV    EQU    33    ; ZCPR3 REV NUMBER
  83. MSIZE    EQU    54    ; SIZE OF CPM SYSTEM
  84.  
  85. BASE    EQU    0
  86.  
  87. CCP    EQU    0BC00H ; ZCPR3 COMMAND PROCESSOR
  88.  
  89. seg1    equ    CCP+2F00h    ; 11.75k from CCP to here (adding 2k ZCPR,
  90.                 ; 3.5k DOS, and 6.25k BIOS).
  91.  
  92. ;
  93. ; RCP definition.  Set RCPS to 0 to eliminate RCP
  94. ;
  95.  
  96. RCPS    EQU    16        ; 16 128-byte Blocks (2K bytes)
  97.  
  98.      IF    RCPS NE 0
  99. RCP    EQU    seg1        ; RESIDENT COMMAND PACKAGE
  100.      ELSE
  101. RCP    EQU    0
  102.      ENDIF
  103.  
  104. seg2    equ    seg1+[rcps*128]
  105.  
  106. ;
  107. ; IOP definition.  Set IOPS to 0 to eliminate IOP
  108. ;
  109. IOPS    EQU    12        ; 12 128-byte Blocks (1.5K bytes)
  110.  
  111.      IF    IOPS NE 0
  112. IOP    EQU    seg2        ; REDIRECTABLE I/O PACKAGE
  113.      ELSE
  114. IOP    EQU    0
  115.      ENDIF
  116.  
  117. seg3    equ    seg2+[iops*128]
  118.  
  119. ;
  120. ; FCP definition.  Set FCPS to 0 to eliminate FCP
  121. ;
  122.  
  123. FCPS    EQU    4    ; 4 128-byte Blocks (0.5K bytes)
  124.  
  125.      IF    FCPS NE 0
  126. fcp    equ    seg3
  127.      ELSE
  128. fcp    equ    0
  129.      ENDIF
  130.  
  131. seg4    equ    seg3+[fcps*128]
  132.  
  133. ;
  134. ; Shell Stack definition.  Set SHSTKS to 0 to eliminate Shell Stack
  135. ;
  136.  
  137. SHSTKS    EQU    4    ; NUMBER OF SHSIZE-BYTE SHELL STACK ENTRIES
  138. SHSIZE    EQU    32    ; SIZE OF A SHELL STACK ENTRY
  139.             ;   (STACK SIZE = SHSTKS * SHSIZE)
  140.      IF SHSTKS NE 0
  141. SHSTK    EQU    seg4
  142.      ELSE
  143. SHSTK    EQU    0
  144.      ENDIF
  145.  
  146. seg5    equ    seg4+[shstks*shsize]
  147.  
  148. ;
  149. ; The ZCPR3 Message Buffers are mandatory for ZCPR 3.3.
  150. ;
  151. Z3MSG    EQU    seg5        ; ZCPR3 MESSAGE BUFFER
  152.  
  153. seg6    equ    seg5+80
  154.  
  155. ;
  156. ; The ZCPR3 External FCB is mandatory for ZCPR 3.3.
  157. ;
  158.  
  159. EXTFCB    EQU    seg6        ; ZCPR3 EXTERNAL FCB
  160.  
  161. seg7    equ    seg6+36
  162.  
  163. ;
  164. ; The Path is mandatory for ZCPR 3.3.  No more than 5 path elements can be
  165. ; used with this Z3BASE.LIB file.
  166. ;
  167.  
  168. EXPATH    EQU    seg7        ; EXTERNAL PATH
  169. EXPATHS    EQU    5        ; 5 2-byte Path Elements
  170.                 ;  (PATH SIZE = EXPATHS*2 + 1)
  171.  
  172. seg8    equ    seg7+[expaths*2]+1
  173.  
  174. ;
  175. ; The ZCPR3 Wheel Byte is mandatory for ZCPR 3.3.
  176. ;
  177.  
  178. Z3WHL    EQU    seg8        ; WHEEL BYTE ADDRESS
  179.  
  180. seg9    equ    seg8+1
  181.  
  182. ;
  183. ; ZCPR3 Named Directory Buffer definition.  Set Z3NDIRS to 0 to eliminate
  184. ; the named directory buffer.  If Z3NDIRS is changed, also change the seg10
  185. ; equate below.
  186. ;
  187. Z3NDIRS    EQU    28        ; 28 18-byte Named Directory Elements permitted
  188.                 ;   (NDIR SIZE = Z3NDIRS*18 + 1 for trailing 0)
  189.      IF    Z3NDIRS NE 0
  190. Z3NDIR    EQU    seg9        ; ZCPR3 NAMED DIRECTORY AREA
  191.      ELSE
  192. Z3NDIR    EQU    0
  193.      ENDIF
  194.  
  195. seg10    equ    seg9+512    ; add 512 for 28-entry NDR
  196.                 ; add 256 for 14-entry NDR ("standard")
  197.                 ; add 0 if Z3NDIRS is set to 0
  198.  
  199. ;
  200. ; The ZCPR3 External Environment Descriptor is mandatory for ZCPR 3.3.
  201. ; Echelon recommends you work this out so that your ENV begins at address
  202. ; FE00h, but this is only a recommendation and not mandatory.
  203. ;
  204.  
  205. Z3ENV    EQU    seg10    ; ENVIRONMENT DESCRIPTORS
  206. Z3ENVS    EQU    2    ; SIZE OF ENVIRONMENT DESCRIPTOR IN 128-BYTE BLOCKS
  207.  
  208. seg11    equ    seg10+[z3envs*128]
  209.  
  210. ;
  211. ; The ZCPR3 External Command Line Buffer is mandatory for ZCPR 3.3.
  212. ;
  213.  
  214. Z3CL    EQU    seg11    ; ZCPR3 COMMAND LINE BUFFER
  215. Z3CLS    EQU    208    ; SIZE OF COMMAND LINE BUFFER
  216.  
  217. seg12    equ    seg11+z3cls
  218.  
  219. ;
  220. ; The ZCPR3 External Stack is mandatory for ZCPR 3.3.
  221. ;
  222.  
  223. EXTSTK    EQU    seg12    ; ZCPR3 EXTERNAL STACK
  224.  
  225. ; end of Z3BASE.LIB
  226.