; ; 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 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. ;