;
;   ZEX 1.0 Installation ZEX File, 11-12-82, by Richard Conn
;
;	You will need the following files in order to assemble ZEX:
;		MAC.COM		ZSID.COM	ED.COM		RELS.UTL
;	Type <CR> if you have them on this disk or type ^C to abort -- ^/
;
;	^*ZEX 1.0 Installation Begins^*
;
;	1. ERASE ANY FILES FROM PREVIOUS .SUB EXECUTIONS
;
ERA ZEX*.BAK
ERA ZEX*.HEX
ERA ZEX*.SYM
;
;	2. USE CPM 2.2 XSUB (not required if using previous version of ZEX)
;
;XSUB
;
;	3. CREATE ZEX10.LIB FOR ASSEMBLY OF ORG 0 RELOCATED CODE SEGMENT
;
ED ZEX10.LIB
#A
#K
I
BASE EQU FALSE ;SUPPRESS ZEX INITIATOR CODE (ENABLE RELOCATED CODE)
REL EQU 0 ;SET RELOCATED CODE SEGMENT TO ORG 0
^Z
E
;
;	4. ASSEMBLE ONLY ORG 0 RELOCATED CODE SEGMENT
;
MAC ZEX $$PZ
;
;	5. RENAME STEP 4 FILES
;
REN ZEX100.HEX=ZEX.HEX
REN ZEX100.SYM=ZEX.SYM
;
;	6. CHANGE ZEX10.LIB FOR ASSEMBLY OF ORG 100H RELOCATED CODE SEGMENT
;
ED ZEX10.LIB
#A
#K
I
BASE EQU FALSE ;SUPPRESS ZEX INITIATOR CODE (ENABLE RELOCATED CODE)
REL EQU 0100H ;SET RELOCATED CODE SEGMENT TO ORG 0+100H
^Z
E
;
;	7. ASSEMBLE ONLY ORG 100H RELOCATED CODE SEGMENT
;
MAC ZEX $$PZ SZ
;
;	8. RENAME STEP 7 FILE
;
REN ZEX101.HEX=ZEX.HEX
;
;	9. CHANGE ZEX10.LIB FOR ASSEMBLY OF ZEX INITIATOR CODE ONLY
;
ED ZEX10.LIB
#A
#K
I
BASE EQU TRUE ;ENABLE ZEX INITIATOR CODE (SUPPRESS RELOCATED CODE)
REL EQU 0 ;RESET RELOCATED CODE SEGMENT TO ORG 0
^Z
E
;
;	10. ASSEMBLE ZEX INITIATOR CODE ONLY
;
MAC ZEX $$PZ
;
;	11. USE SID AND RELS.UTL TO CREATE ZEX.COM
;
;	    [note: If only REL.UTL is available, comment out the lines
;		   starting with IZEX.COM below and change the line
;		   SID RELS.UTL to SID REL.UTL and a SAVE 10 ZEX.COM
;		   must be added at the end of this file.]
;
;	    ZEX.HEX  contains ZEX Initiator Code
;	    ZEX.SYM  contains symbols for SID for ZEX Initiator Code
;
;	    ZEX100.HEX contains ZEX ORG 0 Relocated Code Segment
;	    ZEX100.SYM contains symbols for SID for ZEX ORG 0 Relocated Code
;
;	    ZEX101.HEX contains ZEX ORG 100H Relocated Code Segment
;
;	    BEGREL  is the symbol for the start of the Relocated Code
;		    Segment in ZEX.COM
;
;	    DRVERL  is the symbol for the length of the Relocated Code
;		    Segment
;
;	    DRVL8   is the symbol for the length of the storage required
;		    for the relocation table bit map to be created by
;		    RELS.UTL
;
;	    RELOCL  is the symbol for the DW in ZEX.COM that will contain
;		    the length of the Relocated Code Segment
;
;
;	A.  SID is invoked and the .SYM files for the ORG 0 Relocated Code
;	    Segment and the Initiator Code Segment are loaded.
;
;	B.  The DW at symbol RELOCL is updated with the value of DRVERL
;	    from the ORG 0 Relocated Code Segment.
;
;	C.  Memory for the two copies of the Relocated Code Segment
;	    (ORG 0 and ORG 100H) and the relocation table bit map is zeroed.
;
;	D.  The ORG 0 Relocated Code Segment is loaded starting at
;	    location BEGREL.
;
;	E.  The ORG 100H Relocated Code Segment is loaded after the
;	    segment loaded in step C plus the length of the relocation
;	    table bit map.
;
;	F.  RELS.UTL routine SETADRS sets the starting addresses of
;	    the two Relocated Code Segments for creation of the relocation
;	    table bit map.
;
;	G.  RELS.UTL routine SETLEN sets the length of the Relocated
;	    Code Segment and builds the relocation table bit map.
;
;      *H.  RELS.UTL routine SAVE saves the EX Initiator Code Segment,
;	    the ORG 0 Relocated Code Segment, and the relocation table
;	    bit map created by RELS.UTL.
;
;	   * [note: not used if only REL.UTL is available]
;
;	I.  CP/M is returned to by G0.
;
;     **J.  SAVE 10 ZEX.COM saves the ZEX Initiator Code Segment,
;	    the ORG 0 Relocated Code Segment, and the relocation table
;	    bit map created by REL.UTL.
;
;	  ** [note: used ONLY if REL.UTL is used]
;
ZSID RELS.UTL
IZEX.HEX ZEX100.SYM
R
I* ZEX.SYM
R
SW.RELOCL
.DRVERL
.
F.BEGREL .BEGREL+.DRVERL+.DRVL8+.DRVERL 0
IZEX100.HEX
R.BEGREL
IZEX101.HEX
R.BEGREL+.DRVERL+.DRVL8-100
C.SETADRS .BEGREL .BEGREL+.DRVERL+.DRVL8
C.SETLEN .DRVERL .BEGREL+.DRVERL
IZEX.COM
C.SAVE 100 .BEGREL+.DRVERL+.DRVL8
G0
;
;SAVE 10 ZEX.COM (only if using REL.UTL)
;
;	12.  CLEAN UP FILES ON DISK
;
ERA ZEX*.BAK
ERA ZEX*.HEX
ERA ZEX*.SYM
ERA ZEX10.LIB
;
;	ZEX.COM is now ready for execution.
;
