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
/
JSAGE
/
ZSUS
/
PROGPACK
/
Z34CMN.LIB
< prev
next >
Wrap
Text File
|
2000-06-30
|
5KB
|
155 lines
.comment ~
Library: Z34CMN.LIB
Author: Joe Wright
Date: 23 March 1988
Modern assemblers provide for the use of up to twelve named common
blocks. The actual addresses of these blocks need not be known at
the time of assembly, but are supplied later by the linker or loader.
NZ-COM will allow the use of seven of these twelve blocks.
This library is to be included in the assembly of the segments in
place of Z3BASE.LIB. Note that the seven blocks declared here have
only equates and no code or data. Only one common (_ID_) is allowed
to contain data. If it is used, it is declared separately in the
source of the particular segment. The _ID_ common data is read but
otherwise ignored by NZCOM.
Assembly Notes for ZCPR3 modules and NZ-COM
by Joe Wright
26 March 88
NZ-COM uses MicroSoft or SLR .REL modules to build the Z-System.
The modules are written so as to 'stand alone'. There are no
direct inter-module references. Rather the modules treat the
ZCPR3 environment and obtain required data and addresses
indirectly. The environment descriptor now includes the
addresses of the CBIOS, CCP, DOS and BIOs. as follows:
Z3ENV+
0000 DB 0C3H ; As always..
0001 DW CBIOS ; For NZ-COM, this is CBIOS+6
0008 DB 80H ; Env Type. bit 7 means 'Extended'
0034 DW DRVEC ; Valid drive vector allows 'holes'
003F DW CCP ; Address of ZCPR3
0041 DB CCPS ; Its size in records (normally 16)
0042 DW DOS ; Address of the disk operating system
0044 DB DOSS ; Its size (normally 28 records)
0045 DW BIO ; Address of NZBIO (no size)
Notes on Assembly
NZ-COM uses Named COMMON blocks to provide direct references to
the 'minor' segments, Z3ENV, SHSTK, Z3MSG, etc. The file
Z34CMN.LIB replaces Z3BASE.LIB for all assemblies. All files are
assembled to .REL (MicroSoft or SLR). NZCOM.COM also requires
the modules to be specifically named. This is accomplished with
the NAME pseudo-op as follows:
NAME ('CCP') ; Declare module name
MACLIB Z34CMN.LIB ; In place of Z3BASE.LIB
MACLIB Z34HDR.LIB ; Configuration header
Assembly conditionals are treated a little differently. Because
module addresses are no longer assigned at assembly time, we
cannot use the address as an existence test, rather we use the
module 'size' indicator. The old IF FCP NE 0 test is changed to
IF FCPS NE 0. FCPS is defined in Z34CMN.LIB as an absolute YES
or NO. Of course, the same holds true for RCP, IOP and Z3NDIR.
Because they are defined in Z34CMN.LIB, direct references to
Z3ENV, SHSTK, Z3MSG, Z3CL and the like are still permitted.
Addresses and sizes of the dynamic segments must be obtained
indirectly from Z3ENV. Instead of LD HL,FCP we use LD HL,(FCP)
which is defined in Z34CMN.LIB as Z3ENV+18.
End of NZASM.NOT
~
; As a replacement for Z3BASE.LIB, some usual equates.
base equ 0 ; Base Page
false equ 0
true equ not false
no equ false
yes equ true
off equ false
on equ true
; Named COMMON declarations start here. For compatibility, these
; are the same names used by Bridger Mitchell's JetLDR.
common /_ENV_/
z3env: ; Z3 Environment descriptor
z3envs equ yes ; There is one
expath equ z3env+9 ; Address of External Path
expaths equ 10 ; Maximum 10 elements for MPATH
rcp equ z3env+12 ; Address of RCP
rcps equ yes ; Used as existence test, not size
fcp equ z3env+18 ; Address of FCB
fcps equ yes ; Used as existence test, not size
z3ndir equ z3env+21 ; Address of NDR
z3ndirs equ yes ; Used as existence test, not size
z3quiet equ z3env+28h ; Quiet flag ( 1= quiet )
z3whl equ z3env+29h ; Wheel byte address
z3whls equ yes ; There is a wheel
drvec equ z3env+52 ; Valid drive vector
ccp equ z3env+63 ; CCP entry
ccps equ z3env+65 ; Size
dos equ z3env+66 ; DOS entry (+6)
doss equ z3env+68 ; Size
bio equ z3env+69 ; BIO entry
common /_SSTK_/
shstk: ; Top of Shell stack
shstks equ yes ; There is a shell stack
common /_MSG_/
z3msg: ; Message buffer
z3msgs equ yes ; There is one
common /_FCB_/
extfcb: ; External file control block
extfcbs equ yes ; There is one
common /_MCL_/
z3cl: ; Multiple command line
z3cls equ yes ; There is one
common /_XSTK_/
extstk: ; External stack
extstks equ yes ; There is one
common /_BIOS_/
bios:
cseg ; Select Code Segment
; End of Z34CMN.LIB
fcp equ z3env+18 ; Address of FCB
fcps equ yes ; Used as existence test, not size
z3n