mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
181 lines
4.0 KiB
Plaintext
181 lines
4.0 KiB
Plaintext
;
|
||
; Command File to Assemble ZEX by Richard Conn
|
||
;
|
||
; The following files are assumed:
|
||
; ED.COM, MAC.COM, ZSID.COM
|
||
; The following resident commands are assumed:
|
||
; ERA, REN, IF, FI
|
||
;
|
||
|
||
;
|
||
; 1. Test for Needed Files
|
||
;
|
||
if exist zex.asm
|
||
if exist a:rels.utl
|
||
|
||
;
|
||
; 2. Erase Any Files from Previous Executions
|
||
;
|
||
ERA ZEX*.BAK
|
||
ERA ZEX*.HEX
|
||
ERA ZEX*.SYM
|
||
|
||
;
|
||
; 3. Create ZEX30.LIB for Assembly of
|
||
; ORG 0 Relocated Code Segment
|
||
;
|
||
ED ZEX30.LIB
|
||
#A
|
||
#K
|
||
I
|
||
ZEXBASE EQU FALSE ;SUPPRESS ZEX INITIATOR CODE
|
||
ZEXREL EQU 0 ;SET RELOCATED CODE SEGMENT TO ORG 0
|
||
^Z
|
||
E
|
||
|
||
;
|
||
; 4. Assemble only ORG 0 Relocated Code Segment
|
||
;
|
||
MAC ZEX $$PZ
|
||
|
||
;
|
||
; 5. Rename Files from Step 4
|
||
;
|
||
REN ZEX300.HEX=ZEX.HEX
|
||
REN ZEX300.SYM=ZEX.SYM
|
||
|
||
;
|
||
; 6. New ZEX30.LIB for Assembly of
|
||
; ORG 100H Relocated Code Segment
|
||
;
|
||
ED ZEX30.LIB
|
||
#A
|
||
#K
|
||
I
|
||
ZEXBASE EQU FALSE ;SUPPRESS ZEX INITIATOR CODE
|
||
ZEXREL EQU 0100H ;SET RELOCATED CODE SEGMENT TO ORG 100H
|
||
^Z
|
||
E
|
||
|
||
;
|
||
; 7. Assemble only ORG 100H Relocated Code Segment
|
||
;
|
||
MAC ZEX $$PZ SZ
|
||
|
||
;
|
||
; 8. Rename File from Step 7
|
||
;
|
||
REN ZEX301.HEX=ZEX.HEX
|
||
|
||
;
|
||
; 9. New ZEX30.LIB for Assembly of
|
||
; ZEX Initiator Code Only
|
||
;
|
||
ED ZEX30.LIB
|
||
#A
|
||
#K
|
||
I
|
||
ZEXBASE EQU TRUE ;ENABLE ZEX INITIATOR CODE
|
||
ZEXREL EQU 0 ;RESET RELOCATED CODE SEGMENT TO ORG 0
|
||
^Z
|
||
E
|
||
|
||
;
|
||
; 10. Assemble ZEX Initiator Code Only
|
||
;
|
||
MAC ZEX $$PZ
|
||
|
||
;
|
||
; 11. Use ZSID 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
|
||
;
|
||
; ZEX300.HEX contains ZEX ORG 0 Relocated Code Segment
|
||
; ZEX300.SYM contains symbols for SID for ZEX ORG 0 Rel Code
|
||
;
|
||
; ZEX301.HEX contains ZEX ORG 100H Rel Code Segment
|
||
;
|
||
; BEGREL is the symbol for the start of the Rel Code
|
||
; Segment in ZEX.COM
|
||
;
|
||
; DRVERL is the symbol for the length of the Rel Code
|
||
; Segment
|
||
;
|
||
; DRVL8 is the symbol for the length of the storage
|
||
; needed for the relo 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
|
||
;
|
||
;
|
||
; 11A. SID is invoked and the .SYM files for the ORG 0 Rel Code
|
||
; Segment and the Initiator Code Segment are loaded.
|
||
;
|
||
; 11B. The DW at symbol RELOCL is updated with the value of
|
||
; DRVERL from the ORG 0 Rel Code Segment.
|
||
;
|
||
; 11C. Memory for the two copies of the Relocated Code Segment
|
||
; (ORG 0 and ORG 100H) and the rel table bit map is zeroed.
|
||
;
|
||
; 11D. The ORG 0 Relocated Code Segment is loaded starting at
|
||
; location BEGREL.
|
||
;
|
||
; 11E. The ORG 100H Relocated Code Segment is loaded after the
|
||
; segment loaded in step C plus the length of the rel
|
||
; table bit map.
|
||
;
|
||
; 11F. RELS.UTL routine SETADRS sets the starting addresses of
|
||
; the two Relocated Code Segments for creation of the rel
|
||
; table bit map.
|
||
;
|
||
; 11G. RELS.UTL routine SETLEN sets the length of the Relocated
|
||
; Code Segment and builds the relocation table bit map.
|
||
;
|
||
; 11H* RELS.UTL routine SAVE saves the EX Initiator Code Segment,
|
||
; the ORG 0 Relocated Code Segment, and the rel table
|
||
; bit map created by RELS.UTL.
|
||
;
|
||
; * [note: not used if only REL.UTL is available]
|
||
;
|
||
; 11I. CP/M is returned to by G0.
|
||
;
|
||
; 11J** SAVE 10 ZEX.COM saves the ZEX Initiator Code Segment,
|
||
; the ORG 0 Relocated Code Segment, and the rel table
|
||
; bit map created by REL.UTL.
|
||
;
|
||
; ** [note: used ONLY if REL.UTL is used]
|
||
;
|
||
ZSID A:RELS.UTL
|
||
IZEX.HEX ZEX300.SYM
|
||
R
|
||
I* ZEX.SYM
|
||
R
|
||
SW.RELOCL
|
||
.DRVERL
|
||
.
|
||
F.BEGREL .BEGREL+.DRVERL+.DRVL8+.DRVERL 0
|
||
IZEX300.HEX
|
||
R.BEGREL
|
||
IZEX301.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
|
||
;
|
||
; 12. Clean Up Files on Disk and Terminate IFs
|
||
;
|
||
ERA ZEX*.BAK
|
||
ERA ZEX*.HEX
|
||
ERA ZEX*.SYM
|
||
ERA ZEX30.LIB
|
||
fi;fi
|
||
|