mirror of https://github.com/wwarthen/RomWBW.git
41 changed files with 12679 additions and 605 deletions
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,363 @@ |
|||
.XLIST |
|||
.COMMENT | |
|||
INITIAL WRITING 12/10/84 SLR |
|||
|
|||
PURPOSE: |
|||
TO SUPPORT INTEL MNEMONICS |
|||
(SOME ZILOG MNEMONICS WILL NO LONGER WORK) |
|||
|
|||
MACROS COMPRESSED TO REQUIRE MINIMUM STORAGE IN MACRO TABLE |
|||
|
|||
(I TESTED THESE ON A SIMPLE TEST FILE I KEYED IN. I DON'T HAVE |
|||
ANY INTEL MNEMONIC STUFF AROUND HERE FOR A REAL GOOD TEST, SO |
|||
UNTIL I START GETTING FEEDBACK, BE CAREFUL!) |
|||
|
|||
IF YOU ARE REALLY SERIOUS ABOUT THIS, LET ME KNOW. THE Z80.LIB |
|||
FILE CAN BE MODIFIED TO WORK ALSO. |
|||
|
|||
TO ALLOW FOR BIGGER EXPRESSIONS, REPLACE 'G J K N' |
|||
WITH 'G J K N O Q S T' |
|||
|
|||
HAVE FUN! |
|||
STEVE |
|||
|
|||
********************** W A R N I N G ******************************** |
|||
|
|||
THESE MACROS DO NOT HANDLE OPERANDS CONTAINING THE '$' PC COUNTER |
|||
IF YOU HAVE CODE THAT USES THE $ LOCATION IN A JUMP ADDRESS |
|||
CALCULATION, YOU NEED TO INSERT THE FOLLOWING CODE IN EACH JUMP |
|||
MACRO: |
|||
1. BEFORE THE DW PUT A .PHASE $-1 |
|||
2. AFTER THE DW PUT A .DEPHASE |
|||
|
|||
THAT IS TO MAKE UP FOR THE FACT THAT THE $ COUNTER WILL BE POINTING |
|||
TO THE DW RATHER THAN THE PRECEDING DB. ONCE THESE MACROS ARE MODIFIED |
|||
YOU CAN NO LONGER USE THE .PHASE AND .DEPHASE PSEUDO-OPS IN YOUR |
|||
CODE... |
|||
|
|||
| |
|||
|
|||
MOV MACRO X,Y |
|||
IFIDN <Y>,<M> |
|||
LD X,(HL) |
|||
EXITM |
|||
ENDIF |
|||
IFIDN <X>,<M> |
|||
LD (HL),Y |
|||
EXITM |
|||
ENDIF |
|||
IFIDN <Y>,<m> |
|||
LD X,(HL) |
|||
EXITM |
|||
ENDIF |
|||
IFIDN <X>,<m> |
|||
LD (HL),Y |
|||
EXITM |
|||
ENDIF |
|||
LD X,Y |
|||
ENDM |
|||
HLT MACRO |
|||
HALT |
|||
ENDM |
|||
MVI MACRO R,G J K N |
|||
IFDIF <R>,<M> |
|||
IFDIF <R>,<m> |
|||
LD R,G J K N |
|||
EXITM |
|||
ENDIF |
|||
ELSE |
|||
LD (HL),G J K N |
|||
ENDM |
|||
INR MACRO R |
|||
IFDIF <R>,<M> |
|||
IFDIF <R>,<m> |
|||
INC R |
|||
EXITM |
|||
ENDIF |
|||
ELSE |
|||
INC (HL) |
|||
ENDM |
|||
DCR MACRO R |
|||
IFDIF <R>,<M> |
|||
IFDIF <R>,<m> |
|||
DEC R |
|||
EXITM |
|||
ENDIF |
|||
ELSE |
|||
DEC (HL) |
|||
ENDM |
|||
ADD MACRO R |
|||
.? 80H,R |
|||
ENDM |
|||
.? MACRO R,Y |
|||
. DEFL 0 |
|||
IRPC X,<BCDEHLMA> |
|||
IFIDN <Y>,<X> |
|||
DB R+. |
|||
EXITM |
|||
ELSE |
|||
. DEFL .+1 |
|||
ENDM |
|||
. DEFL 0 |
|||
IRPC X,<bcdehlma> |
|||
IFIDN <Y>,<X> |
|||
DB R+. |
|||
EXITM |
|||
ELSE |
|||
. DEFL .+1 |
|||
ENDM |
|||
ENDM |
|||
ADC MACRO R |
|||
.? 88H,R |
|||
ENDM |
|||
SUB MACRO R |
|||
.? 90H,R |
|||
ENDM |
|||
SBB MACRO R |
|||
.? 98H,R |
|||
ENDM |
|||
ANA MACRO R |
|||
.? 0A0H,R |
|||
ENDM |
|||
XRA MACRO R |
|||
.? 0A8H,R |
|||
ENDM |
|||
ORA MACRO R |
|||
.? 0B0H,R |
|||
ENDM |
|||
CMP MACRO R |
|||
.? 0B8H,R |
|||
ENDM |
|||
ADI MACRO G J K N |
|||
DB 0C6H,G J K N |
|||
ENDM |
|||
ACI MACRO G J K N |
|||
DB 0CEH,G J K N |
|||
ENDM |
|||
SUI MACRO G J K N |
|||
DB 0D6H,G J K N |
|||
ENDM |
|||
SBI MACRO G J K N |
|||
DB 0DEH,G J K N |
|||
ENDM |
|||
ANI MACRO G J K N |
|||
DB 0E6H,G J K N |
|||
ENDM |
|||
XRI MACRO G J K N |
|||
DB 0EEH,G J K N |
|||
ENDM |
|||
ORI MACRO G J K N |
|||
DB 0F6H,G J K N |
|||
ENDM |
|||
CPI MACRO G J K N |
|||
DB 0FEH,G J K N |
|||
ENDM |
|||
RLC MACRO |
|||
RLCA |
|||
ENDM |
|||
RRC MACRO |
|||
RRCA |
|||
ENDM |
|||
RAL MACRO |
|||
RLA |
|||
ENDM |
|||
RAR MACRO |
|||
RRA |
|||
ENDM |
|||
JMP MACRO G J K N |
|||
DB 0C3H |
|||
DW G J K N |
|||
ENDM |
|||
JC MACRO G J K N |
|||
DB 0DAH |
|||
DW G J K N |
|||
ENDM |
|||
JNC MACRO G J K N |
|||
DB 0D2H |
|||
DW G J K N |
|||
ENDM |
|||
JZ MACRO G J K N |
|||
DB 0CAH |
|||
DW G J K N |
|||
ENDM |
|||
JNZ MACRO G J K N |
|||
DB 0C2H |
|||
DW G J K N |
|||
ENDM |
|||
JP MACRO G J K N |
|||
DB 0F2H |
|||
DW G J K N |
|||
ENDM |
|||
JM MACRO G J K N |
|||
DB 0FAH |
|||
DW G J K N |
|||
ENDM |
|||
JPE MACRO G J K N |
|||
DB 0EAH |
|||
DW G J K N |
|||
ENDM |
|||
JPO MACRO G J K N |
|||
DB 0E2H |
|||
DW G J K N |
|||
ENDM |
|||
CC MACRO G J K N |
|||
CALL C,G J K N |
|||
ENDM |
|||
CNC MACRO G J K N |
|||
CALL NC,G J K N |
|||
ENDM |
|||
CZ MACRO G J K N |
|||
CALL Z,G J K N |
|||
ENDM |
|||
CNZ MACRO G J K N |
|||
CALL NZ,G J K N |
|||
ENDM |
|||
CP MACRO G J K N |
|||
CALL P,G J K N |
|||
ENDM |
|||
CM MACRO G J K N |
|||
CALL M,G J K N |
|||
ENDM |
|||
CPE MACRO G J K N |
|||
CALL V,G J K N |
|||
ENDM |
|||
CPO MACRO G J K N |
|||
CALL PO,G J K N |
|||
ENDM |
|||
RC MACRO |
|||
RET C |
|||
ENDM |
|||
RNC MACRO |
|||
RET NC |
|||
ENDM |
|||
RZ MACRO |
|||
RET Z |
|||
ENDM |
|||
RNZ MACRO |
|||
RET NZ |
|||
ENDM |
|||
RP MACRO |
|||
RET P |
|||
ENDM |
|||
RM MACRO |
|||
RET M |
|||
ENDM |
|||
RPE MACRO |
|||
RET V |
|||
ENDM |
|||
RPO MACRO |
|||
RET PO |
|||
ENDM |
|||
RST MACRO G J K N |
|||
DB 0C7H+(G J K N)*8 |
|||
ENDM |
|||
IN MACRO G J K N |
|||
DB 0DBH,G J K N |
|||
ENDM |
|||
OUT MACRO G J K N |
|||
DB 0D3H,G J K N |
|||
ENDM |
|||
LXI MACRO R,G J K N |
|||
.. 1,R |
|||
DW G J K N |
|||
ENDM |
|||
PUSH MACRO R |
|||
.. C5,R |
|||
ENDM |
|||
POP MACRO R |
|||
.. C1,R |
|||
ENDM |
|||
STA MACRO G J K N |
|||
DB 32H |
|||
DW G J K N |
|||
ENDM |
|||
LDA MACRO G J K N |
|||
DB 3AH |
|||
DW G J K N |
|||
ENDM |
|||
XCHG MACRO |
|||
DB 0EBH |
|||
ENDM |
|||
XTHL MACRO |
|||
DB 0E3H |
|||
ENDM |
|||
SPHL MACRO |
|||
DB 0F9H |
|||
ENDM |
|||
PCHL MACRO |
|||
DB 0E9H |
|||
ENDM |
|||
DAD MACRO R |
|||
.. 9,R |
|||
ENDM |
|||
STAX MACRO R |
|||
IFIDN <R>,<D> |
|||
DB 18 |
|||
EXITM |
|||
ELSE |
|||
IFIDN <R>,<B> |
|||
DB 2 |
|||
EXITM |
|||
ELSE |
|||
IFIDN <R>,<d> |
|||
DB 18 |
|||
EXITM |
|||
ELSE |
|||
IFIDN <R>,<b> |
|||
DB 2 |
|||
ENDM |
|||
LDAX MACRO R |
|||
IFIDN <R>,<D> |
|||
DB 26 |
|||
EXITM |
|||
ELSE |
|||
IFIDN <R>,<B> |
|||
DB 10 |
|||
EXITM |
|||
ELSE |
|||
IFIDN <R>,<d> |
|||
DB 26 |
|||
EXITM |
|||
ELSE |
|||
IFIDN <R>,<b> |
|||
DB 10 |
|||
ENDM |
|||
INX MACRO R |
|||
.. 3,R |
|||
ENDM |
|||
DCX MACRO R |
|||
.. B,R |
|||
ENDM |
|||
CMA MACRO |
|||
CPL |
|||
ENDM |
|||
STC MACRO |
|||
SCF |
|||
ENDM |
|||
CMC MACRO |
|||
CCF |
|||
ENDM |
|||
SHLD MACRO G J K N |
|||
DB 34 |
|||
DW G J K N |
|||
ENDM |
|||
LHLD MACRO G J K N |
|||
DB 42 |
|||
DW G J K N |
|||
ENDM |
|||
.. MACRO X,Y |
|||
. DEFL 0 |
|||
IRP Q,<B,D,H,PSW,SP,b,d,h,psw,sp> |
|||
IFIDN <Q>,<Y> |
|||
EXITM |
|||
ELSE |
|||
. DEFL .+1 |
|||
IF . EQ 4 |
|||
. DEFL 3 |
|||
IFIDN <Q>,<SP> |
|||
. DEFL 0 |
|||
ENDM |
|||
DB 0&X&H+(. SHL 4) |
|||
ENDM |
|||
.LIST |
|||
|
|||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,166 @@ |
|||
'DUMP - Recreated by Z80DIS' Z80ASM 1.30 Page 1 |
|||
DUMP Z80 |
|||
|
|||
2 |
|||
3 0100 ORG 0100H |
|||
4 |
|||
5 0005 CPM EQU 0005H |
|||
6 005C DFCB EQU 005CH |
|||
7 0065 FCBEXT EQU 0065H |
|||
8 |
|||
9 0100 DUMP |
|||
10 0100 11 005C LD DE,DFCB |
|||
11 0103 0E 0F LD C,0FH ;SI |
|||
12 0105 CD 0005 CALL CPM ;OPENFIL |
|||
13 0108 3C INC A |
|||
14 0109 20 09 JR NZ,FILEOK |
|||
15 010B 11 01E6 LD DE,CANTOPE |
|||
16 010E 0E 09 LD C,09H ;HT |
|||
17 0110 CD 0005 CALL CPM ;PRNTSTG |
|||
18 0113 C9 RET |
|||
19 0114 FILEOK |
|||
20 0114 21 0065 LD HL,FCBEXT |
|||
21 0117 7E LD A,(HL) |
|||
22 0118 FE 43 CP 43H ;'C' |
|||
23 011A 20 12 JR NZ,NEXTPAGE |
|||
24 011C 23 INC HL |
|||
25 011D 7E LD A,(HL) |
|||
26 011E FE 4F CP 4FH ;'O' |
|||
27 0120 20 0C JR NZ,NEXTPAGE |
|||
28 0122 23 INC HL |
|||
29 0123 7E LD A,(HL) |
|||
30 0124 FE 4D CP 4DH ;'M' |
|||
31 0126 20 06 JR NZ,NEXTPAGE |
|||
32 0128 21 0100 LD HL,DUMP |
|||
33 012B 22 01F7 LD (ADDR),HL |
|||
34 012E NEXTPAGE |
|||
35 012E 1E 0C LD E,0CH ;FF |
|||
36 0130 0E 02 LD C,02H ;STX |
|||
37 0132 CD 0005 CALL CPM ;CONOUT |
|||
38 0135 3E 08 LD A,08H ;BS |
|||
39 0137 32 01FB LD (PAGECNT),A |
|||
40 013A NEXTSECT |
|||
41 013A 11 005C LD DE,DFCB |
|||
42 013D 0E 14 LD C,14H ;DC4 |
|||
43 013F CD 0005 CALL CPM ;READSEQ |
|||
44 0142 B7 OR A |
|||
45 0143 C0 RET NZ |
|||
46 0144 3E 08 LD A,08H ;BS |
|||
47 0146 32 01F6 LD (LINECNT),A |
|||
48 0149 21 0080 LD HL,0080H |
|||
49 014C 22 01F9 LD (ADDR1),HL |
|||
50 014F NXTLINE |
|||
51 014F 0E 0B LD C,0BH ;VT |
|||
52 0151 CD 0005 CALL CPM ;CONSTAT |
|||
53 0154 B7 OR A |
|||
54 0155 C0 RET NZ |
|||
55 0156 21 01FC LD HL,OUTBUF |
|||
56 0159 36 0D LD (HL),0DH ;CR |
|||
57 015B 23 INC HL |
|||
58 015C 36 0A LD (HL),0AH ;LF |
|||
59 015E 23 INC HL |
|||
'DUMP - Recreated by Z80DIS' Z80ASM 1.30 Page 2 |
|||
DUMP Z80 |
|||
|
|||
60 015F ED 5B 01F7 LD DE,(ADDR) |
|||
61 0163 7A LD A,D |
|||
62 0164 CD 01C7 CALL HEXOUT |
|||
63 0167 7B LD A,E |
|||
64 0168 CD 01C7 CALL HEXOUT |
|||
65 016B 36 20 LD (HL),20H ;' ' |
|||
66 016D 23 INC HL |
|||
67 016E EB EX DE,HL |
|||
68 016F 01 0010 LD BC,0010H |
|||
69 0172 09 ADD HL,BC |
|||
70 0173 22 01F7 LD (ADDR),HL |
|||
71 0176 EB EX DE,HL |
|||
72 0177 ED 5B 01F9 LD DE,(ADDR1) |
|||
73 017B 06 10 LD B,10H ;DLE |
|||
74 017D NXTBYTE |
|||
75 017D 1A LD A,(DE) |
|||
76 017E 13 INC DE |
|||
77 017F CD 01C7 CALL HEXOUT |
|||
78 0182 36 20 LD (HL),20H ;' ' |
|||
79 0184 23 INC HL |
|||
80 0185 10 F6 DJNZ NXTBYTE |
|||
81 0187 36 20 LD (HL),20H ;' ' |
|||
82 0189 23 INC HL |
|||
83 018A 36 24 LD (HL),24H ;'$' |
|||
84 018C 11 01FC LD DE,OUTBUF |
|||
85 018F 0E 09 LD C,09H ;HT |
|||
86 0191 CD 0005 CALL CPM ;PRNTSTG |
|||
87 0194 2A 01F9 LD HL,(ADDR1) |
|||
88 0197 06 10 LD B,10H ;DLE |
|||
89 0199 NXTASCI |
|||
90 0199 7E LD A,(HL) |
|||
91 019A 23 INC HL |
|||
92 019B E6 7F AND 7FH ;DEL |
|||
93 019D FE 20 CP 20H ;' ' |
|||
94 019F 38 04 JR C,CTRL |
|||
95 01A1 FE 7F CP 7FH ;DEL |
|||
96 01A3 20 02 JR NZ,NOTCTRL |
|||
97 01A5 CTRL |
|||
98 01A5 3E 2E LD A,2EH ;'.' |
|||
99 01A7 NOTCTRL |
|||
100 01A7 5F LD E,A |
|||
101 01A8 0E 02 LD C,02H ;STX |
|||
102 01AA C5 PUSH BC |
|||
103 01AB E5 PUSH HL |
|||
104 01AC CD 0005 CALL CPM ;CONOUT |
|||
105 01AF E1 POP HL |
|||
106 01B0 C1 POP BC |
|||
107 01B1 10 E6 DJNZ NXTASCI |
|||
108 01B3 22 01F9 LD (ADDR1),HL |
|||
109 01B6 21 01F6 LD HL,LINECNT |
|||
110 01B9 35 DEC (HL) |
|||
111 01BA C2 014F JP NZ,NXTLINE |
|||
112 01BD 21 01FB LD HL,PAGECNT |
|||
113 01C0 35 DEC (HL) |
|||
114 01C1 C2 013A JP NZ,NEXTSECT |
|||
115 01C4 C3 012E JP NEXTPAGE |
|||
116 01C7 HEXOUT |
|||
117 01C7 F5 PUSH AF |
|||
'DUMP - Recreated by Z80DIS' Z80ASM 1.30 Page 3 |
|||
DUMP Z80 |
|||
|
|||
118 01C8 1F RRA |
|||
119 01C9 1F RRA |
|||
120 01CA 1F RRA |
|||
121 01CB 1F RRA |
|||
122 01CC E6 0F AND 0FH ;SI |
|||
123 01CE C6 30 ADD A,30H ;'0' |
|||
124 01D0 FE 3A CP 3AH ;':' |
|||
125 01D2 38 02 JR C,HEX1 |
|||
126 01D4 C6 07 ADD A,07H ;BEL |
|||
127 01D6 HEX1 |
|||
128 01D6 77 LD (HL),A |
|||
129 01D7 23 INC HL |
|||
130 01D8 F1 POP AF |
|||
131 01D9 E6 0F AND 0FH ;SI |
|||
132 01DB C6 30 ADD A,30H ;'0' |
|||
133 01DD FE 3A CP 3AH ;':' |
|||
134 01DF 38 02 JR C,HEX2 |
|||
135 01E1 C6 07 ADD A,07H ;BEL |
|||
136 01E3 HEX2 |
|||
137 01E3 77 LD (HL),A |
|||
138 01E4 23 INC HL |
|||
139 01E5 C9 RET |
|||
140 01E6 CANTOPE |
|||
141 01E6 43 61 6E 27 DEFB 43H,61H,6EH,27H,74H,20H ; Can't |
|||
142 01EC 4F 70 65 6E DEFB 4FH,70H,65H,6EH,20H,46H ; Open F |
|||
143 01F2 69 6C 65 24 DEFB 69H,6CH,65H,24H ; ile$ |
|||
144 01F6 LINECNT |
|||
145 01F6 0001 DEFS 0001H |
|||
146 01F7 ADDR |
|||
147 01F7 0002 DEFS 0002H |
|||
148 01F9 ADDR1 |
|||
149 01F9 0002 DEFS 0002H |
|||
150 01FB PAGECNT |
|||
151 01FB 0001 DEFS 0001H |
|||
152 01FC OUTBUF |
|||
153 01FC 0004 DEFS 0004H |
|||
154 END |
|||
0 Error(s) Detected. |
|||
256 Absolute Bytes. 21 Symbols Detected. |
|||
|
|||
130 01D8 |
|||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,45 @@ |
|||
The MAKESYM program included on this diskette is used to produce a .SYM |
|||
file from the Symbol Table listing provided by Z80ASM or SLRMAC. MAKESYM |
|||
reads a .LST file, converts the symbol table to a format readable by |
|||
ZSID, DSD80, etc, and writes it to a .SYM file on the same drive. |
|||
|
|||
Since extra information is included in the .LST file, such as CSEG relative |
|||
designations, or COMMON relative, external, etc, MAKESYM allows you to |
|||
specify offsets for any or all of the relative types, while stripping out |
|||
any external symbols (Only one COMMON is supported since there is no dis- |
|||
tinction between different COMMONs in the .LST table). |
|||
|
|||
This is useful for intense debugging of a particular module where you would |
|||
like to have all the internal symbols available at debug time, but don't |
|||
want to go in and declare them all global. You just tell MAKESYM where the |
|||
PROG and DATA sections were placed at link time, and there you have it. |
|||
|
|||
This is also useful for generating a useable symbol table when you directly |
|||
generate the .COM or .HEX without linking. In that case you just run MAKESYM |
|||
and don't need to specify any offsets. |
|||
|
|||
To use: |
|||
|
|||
A>MAKESYM FILENAME[.EXT] [/PXXXX] [/DXXXX] [/CXXXX] [/U] |
|||
|
|||
where the brackets surround optional items and are not actually typed. |
|||
|
|||
/PXXXX Here XXXX is the HEX offset for PROG relative items. |
|||
|
|||
/DXXXX Here XXXX is the HEX offset for DATA relative items. |
|||
|
|||
/CXXXX Here XXXX is the HEX offset for COMMON relative items. |
|||
|
|||
/U This tells MAKESYM to perform upper-case conversion |
|||
(Some debuggers allow lower case symbols but don't let |
|||
you access them). |
|||
|
|||
.EXT This is used to overide the default extension of .LST. |
|||
Don't use .SYM (to convert .SYM to .SYM) because |
|||
MAKESYM creates a .SYM file immediately, erasing the |
|||
file it is trying to convert. |
|||
|
|||
|
|||
Have a productive day! |
|||
|
|||
Steve |
|||
Binary file not shown.
@ -0,0 +1,61 @@ |
|||
SLR180 1.30 Release Notes |
|||
|
|||
Bugs Fixed From 1.00: |
|||
|
|||
Nested macro calls using % operator fixed |
|||
IFIDN <>,<> now returns true |
|||
JR NUMBER+$ generates correct code |
|||
INCLUDE and MACLIB filenames can now contain +, -, etc |
|||
Fixed number conversion in non-power-of-two radix |
|||
.$$1 files are cleaned up on abort |
|||
LD A,TYPE 0 works |
|||
ex af,af' works in U/L mode |
|||
|
|||
|
|||
Additions: |
|||
|
|||
All input and output files are always closed upon termination (unless |
|||
terminated by ^C from BUFIN call). |
|||
|
|||
CONFIG option added to allow TABs in strings. Normally SLR180 complains |
|||
about any control characters in quoted strings but generates the correct |
|||
code. This option suppress the error if the control character is a TAB. |
|||
|
|||
CONFIG option added to disable stripping the high bit of each byte read |
|||
from the input source. THIS IS DANGEROUS! Should ONLY be used for using |
|||
non-ASCII characters in comments. DO NOT USE in macros, since the high |
|||
bit is used as a parameter replacement flag. Other indexed tables also |
|||
assume the high bit is clear. |
|||
|
|||
|
|||
|
|||
SLR180 1.31 Release Notes |
|||
|
|||
SLR180 will now delete A:$$$.SUB if an error was detected during any assembly |
|||
(Configurable with 180FIG). This complements the setting of the ZCPR3 error |
|||
flag, and the setting of the CP/M 3.0 Error return code (******* CP/M Plus |
|||
users: SUBMIT files may test the error return code with a leading 'colon', |
|||
documented obscurely in CP/M 3 Programmers Guide 1.6.3 *******). |
|||
|
|||
180fig will now set an alternate user # to be used if a given source file |
|||
cannot be found under the default user #. Useful for keeping just one copy |
|||
of system equates and macro libraries under a single user #. |
|||
|
|||
180fig will let you define a drive to be used for storing intermediate files. |
|||
This should be set to your fastest device. |
|||
|
|||
180fig will let you select Common selection to start back at address relative |
|||
0 (M80 compat), or continue at the last used address (like any other address |
|||
space). |
|||
|
|||
180fig will select whether or not to print the 'nesting level' character in |
|||
the listing. |
|||
|
|||
^C will now abort the assembler, not just the current assembly. |
|||
|
|||
Colon not required on equated labels not in column one, even when that |
|||
requirement is selected. |
|||
|
|||
Labeled IRP and IRPC's work. |
|||
|
|||
Forward referenced EQU's work in one-pass mode. |
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,64 @@ |
|||
SLRNK 1.30 NOTES |
|||
|
|||
|
|||
THE CONFIG PROGRAM HAS BEEN RENAMED LNKFIG. TO SET SLRNK & SLRIB OPTIONS, |
|||
|
|||
A>LNKFIG SLRNK.COM |
|||
|
|||
OR |
|||
|
|||
A>LNKFIG SLRIB.COM |
|||
|
|||
BUGS FIXED: |
|||
|
|||
$memry WAS EVALUATED INCORRECTLY IN SOME CASES |
|||
LOWEST MEMORY ADDRESS SOMETIMES INCORRECT |
|||
|
|||
|
|||
ADDITIONS SINCE 1.20: |
|||
|
|||
ZCPR3 ERROR FLAG SUPPORTED |
|||
/K OPTION CLEARS ERROR FLAG TO THAT POINT |
|||
/I FILES MAY CONTAIN COMMENTS STARTING WITH : |
|||
INPUT FILES ARE CLOSED |
|||
LIMIT OF 63 COMMON BLOCKS REMOVED |
|||
TABLES OPTIMIZED TO ALLOW 1-3K LARGER LINKS |
|||
/E CAN NOW TAKE OPTIONAL :NUMBER AS START ADDRESS |
|||
:NUMBER NOW CAN BE A HEX NUMBER OR VALID, DEFINED SYMBOL |
|||
UNINITIALIZED SPACES NOW FILLED, NO LONGER RANDOM |
|||
DISK OUTPUT MUCH FASTER ON SOME SYSTEMS |
|||
LIBRARIES OPENED R/O MODE UNDER MP/M |
|||
|
|||
|
|||
NEW LNKFIG OPTIONS: |
|||
|
|||
1K OR 2K BUFFER: YOU CAN SELECT THE SIZE DISK I/O BUFFER YOU WANT. 2K IS |
|||
FASTER, BUT 1K WILL ALLOW YOU TO LINK APPROXIMATELY A 1K LARGER FILE. |
|||
|
|||
FILL VALUE: UNINITIALIZED SPACE IS FILLED WITH THIS VALUE. |
|||
|
|||
EMPTY CHAINS: THIS DETERMINES WHETHER OR NOT SLRNK STRIPS EMPTY EXTERNAL |
|||
CHAINS IN MICROSOFT FORMAT. THEORY: IF YOU DECLARED A ROUTINE EXTERNAL, BUT |
|||
NO LONGER USE IT, SHOULD THE LINKER STILL PULL IT IN FROM YOUR LIBRARY? |
|||
NORMALLY YOU WOULD SAY NO, TO PRODUCE THE SMALLEST VALID OUTPUT FILE. HOWEVER, |
|||
SOME COMPILER MANUFACTURERS COULDN'T FIGURE OUT HOW TO ORDER THEIR LIBRARIES |
|||
SUCH THAT THINGS GOT PULLED IN CORRECTLY, SO THEY STICK EXTERNAL DECLARATIONS |
|||
IN HERE AND THERE TO FORCE LOADING OF MODULES. FOR EXAMPLE, IF SLRNK IS |
|||
CONFIGURED TO STRIP EMPTY EXTERNAL CHAINS, SOME AZTEC C FILES WILL NOT LINK |
|||
PROPERLY, BUT SOME WILL. CONFIGURED TO KEEP EMPTY EXTERNAL CHAINS, ALL AZTEC |
|||
C STUFF LINKS, BUT THE FILES THAT WORKED BEFORE NOW PRODUCE A USELESSLY LARGER |
|||
COM FILE... COMPATABILITY? L80 KEEPS ALL EMPTY EXTERNAL CHAINS. |
|||
|
|||
|
|||
SLRNK 1.31 NOTES |
|||
|
|||
SLRNK WILL NOW DELETE A:$$$.SUB IF AN ERROR WAS DETECTED DURING LINK. LNKFIG |
|||
CAN DISABLE THIS. USEFUL FOR TERMINATING SUBMIT FILES ON ERROR. |
|||
|
|||
LNKFIG WILL NOW SET AN ALTERNATE USER # TO BE USED IF A GIVEN .REL FILE CANNOT |
|||
BE FOUND UNDER THE DEFAULT USER #. USEFUL FOR KEEPING LIBRARIES UNDER DIFFERENT |
|||
USER #. |
|||
|
|||
LNKFIG WILL ALSO SET AN ALTERNATE DRIVE TO SEARCH. AFTER ABOVE SEARCH IS |
|||
COMPLETE, ALTERNATE DRIVE IS SELECTED AND USER NUMBER SEARCH STARTED AGAIN. |
|||
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,265 @@ |
|||
|
|||
|
|||
|
|||
April 18, 1987 |
|||
This is the READ-ME file from the Z80DIS.LBR package, version 2.2 |
|||
------------------------------------------------------=========== |
|||
|
|||
|
|||
|
|||
|
|||
A personal note from the programmer: |
|||
- -------- ---- ---- --- ---------- |
|||
|
|||
I wrote this disassembler because I could not find another |
|||
that would really open up a large foreign program for inspection. |
|||
RESOURCE and all of its spin-offs give you only a pin-hole look |
|||
at a program without indicating the important interactions with |
|||
other parts of the code. Without the interactions and a wider |
|||
view, figuring out the code purpose or data type of a code block |
|||
is very hard. |
|||
|
|||
Z80DIS eliminates the narrow pin-hole view of a program |
|||
provided by an interactive display. Z80DIS provides fully |
|||
automated analysis of the code structure, well formatted output |
|||
in both assembler and printer formats, a complete cross-reference |
|||
coded by reference type, and commenting of DOS interactions. |
|||
Recent improvements in this latest version add further utility |
|||
and increase the ability to handle even larger code segments. |
|||
|
|||
For those who prefer an interactive approach to disassembly, |
|||
I recommend the combination of Z80DIS with the interactive |
|||
disassembler DAZZLESTAR (DZ) by John Washington in England. Use |
|||
Z80DIS for the automated analysis of the underlying structure and |
|||
use DZ for the interactive refinement of the code. John has |
|||
provided a DZ command (namely KG) to read the break table |
|||
produced by Z80DIS. |
|||
|
|||
As CP/M users are getting less and less support for problems |
|||
with existing 8080 or Z80 software products, maintenance of that |
|||
software has fallen to the CP/M users themselves. Z80DIS lets you |
|||
examine the software and repair the problem yourself. I hope that |
|||
you will find Z80DIS as useful as I have. |
|||
|
|||
Kenneth Gielow |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
1 |
|||
|
|||
|
|||
|
|||
Z80DIS 2.2 04/18/87 |
|||
|
|||
|
|||
Version 2.2 change note: |
|||
|
|||
Version 2.0 added artificial intelligence to Z80DIS. |
|||
|
|||
Version 2.1 corrected a small bug in the processing of INC, |
|||
DEC, and LD using index registers IX and IY and enhanced the |
|||
distinction between ASCII blank (20 hex) and the instruction |
|||
"JR NZ,xxxx" (also 20 hex). |
|||
|
|||
Version 2.2 modifies the output format for M-80 assembler |
|||
compatibility. Increases the size of program that can be |
|||
disassembled by moving cross-reference tables to virtual |
|||
memory on disk. Fixed several minor bugs. Interprets CP/M |
|||
DOS calls and comments such calls by the function performed. |
|||
|
|||
Caveat: If you are running a system with single sided disks, you |
|||
probably do not want to upgrade from version 2.1 to version |
|||
2.2 because of the increased off-loading of memory functions |
|||
onto disk files |
|||
|
|||
Z80DIS is a disassembler for Z80 based CP/M systems. Z80DIS is |
|||
designed to generate Z80 mnemonics and prepare an assembly |
|||
language file with many special features for ease of |
|||
understanding the intent of the disassembled code. The source for |
|||
Z80DIS has grown to 8400 lines of pascal code. |
|||
|
|||
With Z80DIS versions 2.0 and higher, you need know very little |
|||
about the format of the *.COM file to produce a nearly finished |
|||
source file in most cases. In addition a large number of |
|||
convenience features and defaults have been added that were not |
|||
present in version 1. The Z80DIS change history for version 2.x |
|||
follows at the end of this paper. |
|||
|
|||
Both the Z80DIS program and the Z80DIS documentation are (C) |
|||
Copyright 1985, 1986 and 1987 by Kenneth Gielow; All Rights |
|||
Reserved. While I am freely distributing the binary code for non- |
|||
profit use, I am reserving the source code as a trade secret. |
|||
|
|||
This program requires a Z80 based computer running CP/M version |
|||
2.2 or higher. The code was compiled for a 50K TPA; the top |
|||
address is C7FF. This slightly small size was done for |
|||
compatibility with CP/M 3.0 and ZCPR3. |
|||
|
|||
The following files will be found on Z80DIS21.LBR for this |
|||
program distribution library package: |
|||
|
|||
Z80DIS.COM - the disassembler program |
|||
Z80DIS.000 - overlay file for Z80DIS |
|||
Z80DIS.001 - overlay file for Z80DIS |
|||
Z80DIS.002 - overlay file for Z80DIS |
|||
|
|||
ZDINSTAL.COM - a terminal command installation program |
|||
ZDINSTAL.MSG - contains text of ZDINSTAL messages |
|||
ZDINSTAL.DTA - contains terminal characteristics data |
|||
|
|||
Z80DIS22.DQC - an installation manual. (Squeezed format) |
|||
|
|||
|
|||
|
|||
2 |
|||
|
|||
|
|||
|
|||
Z80DIS 2.2 04/18/87 |
|||
|
|||
|
|||
The three ZDINSTAL files are based on the TURBO Toolbox GINST |
|||
program and will tailor the display command sequences for your |
|||
terminal. The DOC file is the text of a short user manual which |
|||
explains use and installation of the program. |
|||
|
|||
The interactive displays for parameter specification make the |
|||
program easy to use. All control parameters have defaults preset |
|||
to the most likely values. |
|||
|
|||
FEATURES OF Z80DIS |
|||
------------------ |
|||
|
|||
The major feature of Z80DIS is an extensive analysis of the |
|||
memory usage by the program under investigation. This analysis |
|||
capability forms the basis for an automatic partitioning of the |
|||
code to generate the break table. This analysis also produces a |
|||
fully-annotated cross reference of all addresses. |
|||
|
|||
A disassembler must know whether the bytes are instructions or |
|||
data in order to proceed. Z80DIS is the first disassembler to |
|||
produce its own break table for this purpose. Some previous |
|||
programs, such as RESOURCE, have included a search for ASCII text |
|||
regions, but have left the verification and interpretation up to |
|||
the user. Most other disassemblers are fooled by the trick of |
|||
adding nonsense bytes after jumps to cause the analysis to fall |
|||
out of synchronization with instruction code interpretation. |
|||
|
|||
Z80DIS produces an output listing which itemizes all addresses |
|||
referenced by the code, distinguishes types of label references, |
|||
marks subroutines and jumps and produces an annotated cross- |
|||
reference. This listing shows the exact mode of usage for every |
|||
reference: Jump absolute, Jump relative, Call, Restart, Load 16- |
|||
bit, Store 16-bit, Immediate 16-bit, Load 8-bit, Store 8-bit. In |
|||
version 2.1, this listing also shows the break table region of |
|||
residency for each label so that you may inspect the list for |
|||
inconsistencies. |
|||
|
|||
An address labeling convention assists in understanding the |
|||
assembly code generated. Each label generated on the assembly |
|||
listing indicates, by format, not only the generic type (Jump, |
|||
Call, Data, Other) of any references, but also the singularity of |
|||
the reference. For example, J$02E3 used at address 02E3 indicates |
|||
that only one reference was made to address 02E3 and that that |
|||
reference was a JUMP. |
|||
|
|||
In addition to helping you by automatic analysis of memory use, |
|||
Z80DIS also assists you by styling the presentation of the disas- |
|||
sembled code. The disassembled code is output in two forms: Both |
|||
the usual *.MAC file and a printer formatted *.PRN file. |
|||
|
|||
The *.PRN file is styled to look like the output of an assembler |
|||
with both the instructions and assembled bytes shown. The juxta- |
|||
position of the hexadecimal bytes and the assembly mnemonics |
|||
allows the user to recognize errors caused by an incorrectly |
|||
defined break table. |
|||
|
|||
|
|||
|
|||
|
|||
3 |
|||
|
|||
|
|||
|
|||
Z80DIS 2.2 04/18/87 |
|||
|
|||
|
|||
DOCUMENTATION NOTICE |
|||
-------------------- |
|||
|
|||
The original, version 1, user manual ran forty-plus pages and |
|||
gave extensive examples and used disassembly of the public domain |
|||
program D.COM as an example. |
|||
|
|||
The version 2 manual is now eighty eight pages of detailed, what- |
|||
if instructions and a dissertation on understanding and handling |
|||
large or complex code modules. |
|||
|
|||
As the binary code for Z80DIS is now running 108K bytes and the |
|||
ascii text for the manual is over 200K bytes, there is no way |
|||
that I can get system operators to carry both. I feel that the |
|||
program is largely self explanatory so that you can get started |
|||
very well with only the minimal help of the included DOC file. |
|||
The short user manual included here deals only with installing |
|||
the Z80DIS program and doing a simple disassembly. For more |
|||
serious work you will want the full manual. |
|||
|
|||
The longer manual expands on the discussion of the features and |
|||
explains the step-wise approach to dealing with much larger |
|||
source codes. The manual also deals with disassembling code which |
|||
relocates itself. Extensive examples are included. All error |
|||
messages and secondary options are discussed in detail. |
|||
|
|||
The full Z80DIS USER MANUAL is available by mail. I am asking a |
|||
nominal charge of $20.00 which includes the printed and bound |
|||
manual, postage, handling, and an update notification service. |
|||
You are granted the right to make not-for-profit copies of the |
|||
manual. The program itself is not available by mail as I do not |
|||
have extensive, multi-format disk copy capability. The |
|||
notification service will consist of a letter to you anytime a |
|||
new version is released so that you may be on the lookout for it. |
|||
|
|||
To order a copy of the Z80DIS USER MANUAL, send a request with |
|||
your name, address, and a check for $ 20.00 to -- |
|||
|
|||
Kenneth Gielow |
|||
79 Tulip Lane |
|||
Palo Alto, CA 94303 |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
4 |
|||
|
|||
|
|||
|
|||
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Binary file not shown.
Binary file not shown.
@ -0,0 +1,64 @@ |
|||
1 Turbo Pascal general installation System |
|||
2 Choose installation item from the following: |
|||
3 |
|||
4 Screen installation | Quit |
|||
5 |
|||
6 Enter S or Q: |
|||
13 -> |
|||
101 Nothing |
|||
^Q: Quit, ^R: Last page, ^C: Next page, <RETURN>: Select terminal: |
|||
Wait Sorting Definitions |
|||
Change to: |
|||
(Y/N)? |
|||
y |
|||
n |
|||
Text file name: |
|||
Command: |
|||
Numeric entry expected |
|||
Legal range is |
|||
, please re-enter: |
|||
Choose one of the following terminals: |
|||
None of the above ( Max. 20 Characters ) |
|||
Delete a definition ( Max. 20 Characters ) |
|||
Which terminal? (Enter no. or ^Q to exit): |
|||
Delete terminal? (Enter no. or ^Q to exit): |
|||
Do you want to modify this definition before installation? |
|||
Terminal type: |
|||
Send an initialization string to the terminal? |
|||
Initializaion defined as a command string? (No = a file) |
|||
Send a reset string to the terminal |
|||
Reset defined as a command? (No = a file) |
|||
CURSOR LEAD-IN command: |
|||
CURSOR POSITIONING COMMAND to send between line and column: |
|||
CURSOR POSITIONING COMMAND to send after both line and column: |
|||
Column first |
|||
OFFSET to add to LINE: |
|||
OFFSET to add to COLUMN: |
|||
Binary address |
|||
Number of ASCII digits (2 or 3): |
|||
CLEAR SCREEN command: |
|||
Does CLEAR SCREEN also HOME cursor |
|||
HOME command: |
|||
DELETE LINE command: |
|||
INSERT LINE command: |
|||
ERASE TO END OF LINE command: |
|||
START HIGHLIGHTING command: |
|||
END HIGHLIGHTING command: |
|||
Number of rows (lines) on your screen: |
|||
Number of columns on your screen: |
|||
Delay after CURSOR ADDRESS (0-255 ms): |
|||
Delay after CLEAR, DELETE and INSERT (0-255 ms): |
|||
Delay after ERASE TO END OF LINE and HIGHLIGHT (0-255 ms): |
|||
Is this definition correct? |
|||
Hardware dependent information |
|||
Operating frequency of your microprocessor in MHz (for delays): |
|||
101 Nothing |
|||
200 Choose one of the following displays: |
|||
201 Which display? (Enter no. or Q to exit): |
|||
202 Default display mode |
|||
203 Monochrome display |
|||
204 Color display 80x25 |
|||
205 Color display 40x25 |
|||
206 b/w display 80x25 |
|||
207 b/w display 40x25 |
|||
|
|||
Loading…
Reference in new issue