home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
turbodos
/
td-zcpr3.lbr
/
Z3BASE.LZB
/
Z3BASE.LIB
Wrap
Text File
|
1988-12-16
|
5KB
|
145 lines
;
; Z3BASE - turbodos floating configuration
;
; ZCPR33 is copyright 1987 by Echelon, Inc. All rights reserved. End-user
; distribution and duplication permitted for non-commercial purposes only.
; Any commercial use of ZCPR33, defined as any situation where the duplicator
; recieves revenue by duplicating or distributing ZCPR33 by itself or in
; conjunction with any hardware or software product, is expressly prohibited
; unless authorized in writing by Echelon.
;
; Since regenerating the operating system for a processor is a rather common
; occurence under TurboDos, a few organizational changes were made to z3base
; to facilitate accurate placement of the zcpr environment block, command line
; and external stack (not to mention everything else!)...
;
; 1. Z3Base computes the addresses of each system segment in reverse order,
; starting with EXTSTK at the top of memory and working down towards the
; shell stack, FCP buffer, IOP buffer, and RCP buffer. Z3Base also sets
; the address of the bios automatically as 2 pages below the lowest ZCPR
; segment defined (TurboDos uses a simulated BIOS Table that floats at
; the top of memory [below banked memory and user defined common blocks].
;
; 2. Z33Env reserves common memory for all the defined ZCPR Segments, and
; checks that the actual offsets generated within Z33Env match up with
; the simulated offsets of each ZCPR Segment in Z3Base (simulated offsets
; are the specific segment address minus the shell stack segment address)
; Z33Env also provides global symbols for most of the ZCPR Segments so
; that specific ZCPR environment values can be patched at link time...
;
; 3. Z3Base is still compatible with older revisions of ZCPR except that the
; CCP equate is ignored (TurboDos cares not where the CCP lands in the
; system module) and the BIOS equate used by ZCPR33.Z80 is computed in
; Z3Base instead of ZCPR33.
;
; 4. ZCPR33.Z80 needs two changes.....
;
; A. After the lines: " org CCP
; " endif ;not rel "
;
; Add the lines: " if rel "
; " cseg "
; "Z33ENT:: "
; " endif ;rel "
;
; B. [Optional] Comment the: " **** ZCPR Larger Than 2K"
; at the very end of the ZCPR33.Z80 source file. This allows you
; to create ZCPR modules with most or all of the built-in command
; set, submit processing, named directorys with passwords, and
; complex command processing without the errors which are totally
; meaningless in a dynamically configured system like TurboDos.
;
;******** WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! ******
;
; This configuration of ZCPR has only been tested with non-banked memory
; systems and will probably behave quite radically if installed in a OS
; configured for banked operation... but yer welcome to try if ya want!
;
;****************************************************************
;* *
;* Z3BASE.LIB -- Base Addresses for ZCPR 3.3/Z-System *
;* *
;* Address Range Size Function *
;* ------------- ------- -------- *
;* 0 - FF 256 b Standard CP/M Buffers except *
;* 100 - ???? ??? K Transient Program Area *
;* ???? - ???? ??? K ZCPR 3.3 Command Processor *
;* ???? - faff ??? K TurboDos System Kernel *
;* fb00 - fbff 256 B TurboDos Simulated BIOS *
;* 0000 0 K Resident Command Package *
;* 0000 0 K Input/Output Package *
;* 0000 0 K Flow Command Package *
;* Fc00 - Fc7F 128 b ZCPR3 Shell Stack *
;* Fc80 - Fcff 128 b ZCPR3 Message Buffers *
;* FD00 - fd26 39 b ZCPR3 External FCB *
;* fd27 - FDFF .5 K Memory-Based Named Directory *
;
;* FE00 - FEFF 256 b Environment Descriptor *
;* FF00 - FFCF 208 B Multiple Command Line Buffer *
;* FFD0 - FFFF 48 b ZCPR3 External Stack *
;****************************************************************
FALSE equ 0
TRUE equ NOT FALSE
Z3REV EQU 33 ; ZCPR3 REV NUMBER
BASE EQU 0
;
;
;
szbios equ 2 ; PAGES in TurboDos simulated BIOS
z3cls equ 208 ; BYTES in ZCPR Command Line
z3envs equ 2 ; PAGES in ZCPR Environment Descriptor
z3ndirs equ 28 ; COUNT of ZCPR Named Directory Descriptor
expaths equ 5 ; COUNT of ZCPR Command Search Path Descriptor
shstks equ 4 ; COUNT of ZCPR Shell Stack Entries
shsize equ 32 ; BYTES in ZCPR Shell Stack Entry
fcps equ 0 ; PAGES of ZCPR Flow Control Processor
iops equ 0 ; PAGES of ZCPR Input/Output Processor
rcps equ 0 ; PAGES of ZCPR Resident Command Process
;
;
;
extstk equ 0ffd0h
z3cl equ extstk-z3cls
z3env equ z3cl-[128*z3envs]
if z3ndirs eq 28
z3ndir equ z3env-512
endif
if z3ndirs eq 14
z3ndir equ z3env-256
endif
z3whl equ z3ndir-1
expath equ z3whl-[expaths*2+1]
extfcb equ expath-36
z3msg equ extfcb-80
shstk equ z3msg-[shstks*shsize]
;
point equ shstk
;
if fcps eq 0
fcp equ 0
else
fcp equ point-[fcps*128]
point defl fcp
endif
;
if iops eq 0
iop equ 0
else
iop equ point-[iops*128]
point defl iop
endif
;
if rcps eq 0
rcp equ 0
else
rcp equ point-[rcps*128]
point defl rcp
endif
;
biosend equ point
bios equ point - [szbios*128]
;
;**** End of modified Z3Base File