home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpm / turbodos / td-zcpr3.lbr / Z3BASE.LZB / Z3BASE.LIB
Text File  |  1988-12-16  |  5KB  |  145 lines

  1. ;
  2. ; Z3BASE - turbodos floating configuration
  3. ;
  4. ; ZCPR33 is copyright 1987 by Echelon, Inc.  All rights reserved.  End-user
  5. ; distribution and duplication permitted for non-commercial purposes only.
  6. ; Any commercial use of ZCPR33, defined as any situation where the duplicator
  7. ; recieves revenue by duplicating or distributing ZCPR33 by itself or in
  8. ; conjunction with any hardware or software product, is expressly prohibited
  9. ; unless authorized in writing by Echelon.
  10. ;
  11. ; Since regenerating the operating system for a processor is a rather common
  12. ; occurence under TurboDos, a few organizational changes were made to z3base
  13. ; to facilitate accurate placement of the zcpr environment block, command line
  14. ; and external stack (not to mention everything else!)...
  15. ;
  16. ; 1.    Z3Base computes the addresses of each system segment in reverse order,
  17. ;    starting with EXTSTK at the top of memory and working down towards the
  18. ;    shell stack, FCP buffer, IOP buffer, and RCP buffer. Z3Base also sets
  19. ;    the address of the bios automatically as 2 pages below the lowest ZCPR
  20. ;    segment defined (TurboDos uses a simulated BIOS Table that floats at
  21. ;    the top of memory [below banked memory and user defined common blocks].
  22. ;
  23. ; 2.    Z33Env reserves common memory for all the defined ZCPR Segments, and
  24. ;    checks that the actual offsets generated within Z33Env match up with
  25. ;    the simulated offsets of each ZCPR Segment in Z3Base (simulated offsets
  26. ;    are the specific segment address minus the shell stack segment address)
  27. ;    Z33Env also provides global symbols for most of the ZCPR Segments so
  28. ;    that specific ZCPR environment values can be patched at link time...
  29. ;
  30. ; 3.    Z3Base is still compatible with older revisions of ZCPR except that the
  31. ;    CCP equate is ignored (TurboDos cares not where the CCP lands in the 
  32. ;    system module) and the BIOS equate used by ZCPR33.Z80 is computed in
  33. ;    Z3Base instead of ZCPR33.
  34. ;
  35. ; 4.    ZCPR33.Z80 needs two changes.....
  36. ;
  37. ;    A.    After the lines:    "    org    CCP
  38. ;                    "     endif ;not rel        "
  39. ;
  40. ;        Add the lines:        "     if rel            "
  41. ;                    "    cseg            "
  42. ;                    "Z33ENT::            "
  43. ;                    "     endif ;rel        "
  44. ;
  45. ;    B. [Optional] Comment the:    "    **** ZCPR Larger Than 2K"
  46. ;        at the very end of the ZCPR33.Z80 source file. This allows you
  47. ;        to create ZCPR modules with most or all of the built-in command
  48. ;        set, submit processing, named directorys with passwords, and
  49. ;        complex command processing without the errors which are totally
  50. ;        meaningless in a dynamically configured system like TurboDos.
  51. ;
  52. ;******** WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! ******
  53. ;
  54. ;    This configuration of ZCPR has only been tested with non-banked memory
  55. ;    systems and will probably behave quite radically if installed in a OS
  56. ;    configured for banked operation... but yer welcome to try if ya want!
  57. ;
  58. ;****************************************************************
  59. ;*                                *
  60. ;*  Z3BASE.LIB -- Base Addresses for ZCPR 3.3/Z-System        *
  61. ;*                                *
  62. ;*    Address Range      Size    Function            *
  63. ;*    -------------    -------    --------            *
  64. ;*        0 -   FF    256 b    Standard CP/M Buffers except    *
  65. ;*      100 - ????    ??? K    Transient Program Area        *
  66. ;*     ???? - ????    ??? K    ZCPR 3.3 Command Processor    *
  67. ;*     ???? - faff    ??? K    TurboDos System Kernel        *
  68. ;*     fb00 - fbff    256 B    TurboDos Simulated BIOS        *
  69. ;*     0000          0 K    Resident Command Package    *
  70. ;*     0000          0 K    Input/Output Package        *
  71. ;*     0000          0 K    Flow Command Package        *
  72. ;*     Fc00 - Fc7F    128 b    ZCPR3 Shell Stack        *
  73. ;*     Fc80 - Fcff    128 b    ZCPR3 Message Buffers        *
  74. ;*     FD00 - fd26     39 b    ZCPR3 External FCB        *
  75. ;*     fd27 - FDFF     .5 K    Memory-Based Named Directory    *
  76. ;
  77. ;*     FE00 - FEFF    256 b    Environment Descriptor        *
  78. ;*     FF00 - FFCF    208 B    Multiple Command Line Buffer    *
  79. ;*     FFD0 - FFFF     48 b    ZCPR3 External Stack        *
  80. ;****************************************************************
  81.  
  82. FALSE    equ    0
  83. TRUE    equ    NOT FALSE
  84.  
  85. Z3REV    EQU    33    ; ZCPR3 REV NUMBER
  86. BASE    EQU    0
  87. ;
  88. ;
  89. ;
  90. szbios    equ    2        ; PAGES in TurboDos simulated BIOS
  91. z3cls    equ    208        ; BYTES in ZCPR Command Line
  92. z3envs    equ    2        ; PAGES in ZCPR Environment Descriptor
  93. z3ndirs    equ    28        ; COUNT of ZCPR Named Directory Descriptor
  94. expaths    equ    5        ; COUNT of ZCPR Command Search Path Descriptor
  95. shstks    equ    4        ; COUNT of ZCPR Shell Stack Entries
  96. shsize    equ    32        ; BYTES in ZCPR Shell Stack Entry
  97. fcps    equ    0        ; PAGES of ZCPR Flow Control Processor
  98. iops    equ    0        ; PAGES of ZCPR Input/Output Processor
  99. rcps    equ    0        ; PAGES of ZCPR Resident Command Process
  100. ;
  101. ;
  102. ;
  103. extstk    equ    0ffd0h
  104. z3cl    equ    extstk-z3cls
  105. z3env    equ    z3cl-[128*z3envs]
  106.      if z3ndirs eq 28
  107. z3ndir    equ    z3env-512
  108.      endif
  109.      if z3ndirs eq 14
  110. z3ndir    equ    z3env-256
  111.      endif
  112. z3whl    equ    z3ndir-1
  113. expath    equ    z3whl-[expaths*2+1]
  114. extfcb    equ    expath-36
  115. z3msg    equ    extfcb-80
  116. shstk    equ    z3msg-[shstks*shsize]
  117. ;
  118. point    equ    shstk
  119. ;
  120.      if fcps eq 0
  121. fcp    equ    0
  122.      else
  123. fcp    equ    point-[fcps*128]
  124. point    defl    fcp
  125.      endif 
  126. ;
  127.      if iops eq 0
  128. iop    equ    0
  129.      else
  130. iop    equ    point-[iops*128]
  131. point    defl    iop
  132.      endif 
  133. ;
  134.      if rcps eq 0
  135. rcp    equ    0
  136.      else
  137. rcp    equ    point-[rcps*128]
  138. point    defl    rcp
  139.      endif 
  140. ;
  141. biosend    equ    point
  142. bios    equ    point - [szbios*128]
  143. ;
  144. ;**** End of modified Z3Base File
  145.