1 CLS: GOTO 160
2 REM ASCII DUMP
3 IF Y>32 AND Y<128 THEN AS$=AS$+CHR$(Y) ELSE AS$=AS$+"."
4 RETURN
5 REM DISPLAY DISASSEMBLED LINE
6 H$=M$ : GOSUB 12
7 GOSUB 37
8 PRINT@ 1023," "; : PRINT L$;TAB(6)O$;TAB(16)W$;TAB(35)AS$;
9 IF PP=1 THEN LPRINT L$; TAB(6)O$;TAB(16) W$;TAB(35) AS$
10 RETURN
11 REM CONVERT 4-DIGIT HEX TO DECIMAL
12 Z=LEN(H$)-1 : X=0
13 FOR K=Z TO 0 STEP -1
14 FOR K1=1 TO 16
15 IF MID$(H$,K+1,1)=MID$(A$,K1,1) THEN K2=K1-1 : K1=16
16 NEXT K1
17 X=X+K2*K(K)
18 NEXT K
19 X=X+SHFT
20 REM GET CORRECT X
21 IF X>32767 THEN X=X-65536
22 IF X<-32768 THEN X=X+65536
23 RETURN
24 REN CONVERT DECIMAL TO 4-DIGIT HEX
25 D=D-SHFT : IF D<0 THEN D=D+65536
26 H4=INT(D/4096)
27 H3=INT((D-4096*H4)/256)
28 H2=INT((D-4096*H4-256*H3)/16)
29 H1=D-4096*H4-256*H3-16*H2
30 H$=MID$(A$,H4+1,1)+MID$(A$,H3+1,1)+MID$(A$,H2+1,1)+MID$(A$,H1+1,1)
31 RETURN
32 REM CONVERT DECIMAL TO 2-DIGIT HEX
33 H2=INT(D/16)
34 H1=D-16*H2
35 H$=MID$(A$,H2+1,1)+MID$(A$,H1+1,1)
36 RETURN
37 REM DISASSEMBLE MEMORY LOCATION
38 Y=PEEK(X)
39 IF Y>=64 AND Y<123 GOTO 62
40 IF Y>=128 AND Y<192 GOTO 72
41 C=INT(Y/128) : I1=VAL(A$(C,Y-192*C))
42 W$=RIGHT$(A$(C,Y-192*C),LEN(A$(C,Y-192*C))-1)
43 ON I1+1 GOSUB 46,46,46,46,133,148,110
44 RETURN
45 REM STADARD OPCODE PROCESSING
46 IF I1<3 THEN F=0 ELSE F=1
47 IF I1=3 THEN I1=1
48 D=X : GOSUB 25
49 L$=H$ : O$="":AS$=""
50 FOR J=0 TO I1
51 Y=PEEK(X)
52 D=Y : GOSUB 33
53 O$=O$+H$
54 GOSUB 3
55 X=X+1  : GOSUB 21
56 NEXT J
57 IF F=1 GOSUB 224 ELSE H$=MID$(O$,5,2)+MID$(O$,3,2)
58 N$=H$
59 GOSUB 217
60 RETURN
61 REM LD GROUP
62 D=X : GOSUB 25
63 L$=H$ :AS$=CHR$(Y)
64 D=Y : GOSUB 33
65 O$=H$
66 P=INT(Y/8) : P1=Y-8*P
67 W$="LD "+R$(P-3)+","+R$(P1)
68 IF Y=118 THEN W$="HALT"
69 X=X+1 : GOSUB 21
70 RETURN
71 REM REGULAR GROUP
72 D=X : GOSUB 25
73 L$=H$ : AS$="."
74 D=Y : GOSUB 33
75 O$=H$
76 P=INT(Y/8) : P1=Y-8*P
77 W$=E$(P-16)+R$(P1)
78 X=X+1 : GOSUB 21
79 RETURN
80 REM "DDCB" PROCESSING
81 AS$=AS$+"."
82 O$=O$+"CB"
83 X=X+1 : GOSUB 21
84 Y=PEEK(X)
85 D=Y : GOSUB 33
86 V$=H$ : O$=O$+V$
87 GOSUB 3
88 X=X+1 : GOSUB 21
89 Y=PEEK(X)
90 GOSUB 3
91 D=Y : GOSUB 33
92 O$=O$+H$
93 FOR I=0 TO 30
94 IF H$=LEFT$(D$(I),2)THEN W$=RIGHT$(D$(I),LEN(D$(I))-2)+"(I"+Z$+"+"+V$+"H)" : I=30
95 NEXT I
96 GOTO 130
97 REM "36" PROCESSING
98 O$=H$ : AS$=AS$+"6"
99 X=X+1 : GOSUB 21
100 Y=PEEK(X) : GOSUB 33
101 O$=O$+H$ : U$=H$
102 GOSUB 3
103 X=X+1 : GOSUB 21
104 Y= PEEK(X) : GOSUB 33
105 GOSUB 3
106 O$=O$+H$ : V$=H$
107 W$="LD (I?+"+U$+"H),"+V$+"H"
108 GOTO127
109 REM PROCESS "DD-FD" CODES
110 AS$="."
111 D=Y : GOSUB 33
112 F$=H$
113 IF F$="DD" THEN Z$="X" : GOTO 115
114 IF F$="FD" THEN Z$="Y"
115 D=X : GOSUB 25
116 L$=H$ : O$=""
117 X=X+1 : GOSUB 21
118 Y=PEEK(X)
119 D=Y : GOSUB 33
120 IF H$="36" GOTO 97
121 IF H$="CB" GOTO 81
122 FOR I=0 TO 38
123 IF H$=LEFT$(C$(I),2) THEN W$=RIGHT$(C$(I),LEN(C$(I))-2) : I=38
124 NEXT I 
125 I1=VAL(W$) : W$=RIGHT$(W$,LEN(W$)-1) : F=0
126 GOSUB 50
127 FOR I=1 TO LEN(W$)
128 IF MID$(W$,I,1)="?" THEN W$=LEFT$(W$,I-1)+Z$+RIGHT$(W$,LEN(W$)-I)
129 NEXT I
130 O$=F$+O$
131 RETURN
132 REM PROCESS "CB" CODES
133 D=X : GOSUB 25
134 L$=H$ : AS$=""
135 X=X+1 : GOSUB 21
136 Y=PEEK(X)
137 D=Y : GOSUB 33
139 O$="CB"+H$
140 P=INT(Y/8) :P1=Y-8*P
141 IF P<8 THEN W$=R1$(P)+" "+R$(P1) : GOTO 145
142 IF P>=8 AND P<16 THEN W$ ="BIT"+STR$(P-8)+","+R$(P1) : GOTO145
143 IF P>=16 AND P<24 THEN W$="RES"+STR$(P-16)+"," +R$(P1) : GOTO 145
144 IF P>=24 AND P<32 THEN W$="SET"+STR$(P-24)+","+R$(P1)
145 X=X+1 : GOSUB 21
146 RETURN
147 REM PROCESS "ED" CODES
148 D=X: GOSUB 25
149 L$=H$ :O% = "" :AS$="."
150 X = X+1 : GOSUB 21
151 Y = PEEK(X)
152 D=Y : GOSUB 33
153 FOR I = 0 TO 53
154 IF H$ = LEFT$(B$(I),2) THEN W$ = RIGHT$(B$(I),LEN(B$(I))-2) : I=53
155 NEXT I
156 I1=VAL(W$) : W$=RIGHT$(W$,LEN(W$)-1) : F = 0
157 GOSUB 50
158 O$= "ED" +O$
159 RETURN
160 CLS
161 PRINT@276,"Z80 DISASSEMBLER" : PRINT :PRINT
162 PRINT TAB(20) "BY HARRY LAKSER"
163 PRINT @901, "COPYRIGHT (C) 1980 BY FORT RICHMOND SOFTWARE COMPANY"
164 REM MAIN PROGRAM
165 POKE 16553,255
166 CLEAR 3000 : A$ = "0123456789ABCDEF"
167 D2$="(LOCATION)  <ENTER>(NEXT)    S(UBROUTINE)   R(ETURN)   J(UMP)" : REM 3 SPACES BETWEEN EACH WORD
168 D3$="P(RINT)      M(EMORY DUMP)   X(RESTART)     I(DISASSEMBLE)"
169 M2$="(LOCATION)   <ENTER>(NEXT)   P(RINT)   I(DISASSEMBLER)": REM 3 SPACES BETWEEN WORDS
170 M3$="X(RESTART)   H(ELP)" : '3 SPACES BETWEEN
171 L4$=STRING$(64,131)
172 DIMA$(1,63),B$(53),C$(38),D$(30),E$(7),R$(7),R1$(7),Z(10),K(3)
173 K(0)=4096:K(1)=256:K(2)=16:K(3)=1:CT$="  (HIT ANY KEY)"
174 FOR I =0 TO 7 : READ R$(I) : NEXT
175 FOR I = 0 TO 7 : READ R1$(I) : NEXT
176 FOR K = 0 TO 63 : READ A$(0,I): NEXT
177 FOR I = 0 TO 7: READ E$(I) : NEXT
178 FOR I = 0 TO 63 : READ A$(1,I) : NEXT
179 FOR I = 0 TO 53: READ B$(I) : NEXT
180 FOR I = 0 TO 38 : READ C$(I) : NEXT
181 FOR I = 0 TO 30 : READ D$(I) : NEXT
182 CLS : X = 0:H$="": INPUT "IF YOU DISASSEMBLE A PROGRAM WHICH IS LOCATED IN THE MEMORY WHERE IT IS DESIGNED TO RUN, THEN PRESS ENTER. OTHERWISE, ENTER THE OFFSET AS A FOUR DIGIT HEX NUMBER";H$
183 IF H$="" THEN SHFT=0 : GOTO 185
184 IF LEN(H$)=4 GOSUB 12: SHFT = X ELSE GOTO 182
185 PRINT "MEMORY LOCATIONS SHIFTED BY ";SHFT;" IN DECIMAL" : PRINT :PRINT
186 S=0 : W$=""
187 PP$="": INPUT "DO YOU WANT CONCURRENT PRINTING (Y/N)";PP$
188 IF LEFT$(PP$,1)="Y"THEN PP=1 ELSE GOTO 191
189 ST= PEEK(14312) AND 128 : IF ST<>0 THEN PRINT "TURN PRINTER ON.  HIT ANY KEY TO CONTINUE" ELSE 192
190 ST$=INKEY$ : IF ST$ = "" GOTO 290 ELSE 187
191 PP=0
192 CLS
193 REM DISASSEMBLE DISPLAY
194 PRINT@0,"DISASSEMBLE:"+STRING$(51," ") : PRINT D2$ : PRINT D3$ : PRINT @ 192, L4$;
195 PRINT @ 32,"ACTION";:INPUT T$ :M$ = T$ : T$="":PRINT
196 IF M$ ="" GOSUB 7 : GOTO 193
197 IF LEFT$(M$,1)="J" THEN IF LEFT$(W$,1)="J" OR LEFT$(W$,4)="DJNZ" THEN M$=N$:GOSUB 6 : GOTO 193 ELSE GOSUB 282: GOTO193
198 IF LEFT$(M$,1) = "S" THEN GOSUB 230:GOTO 193
199 IF LEFT$(M$,1)="R" THEN IF S>0 THEN S=S-1:X=Z(S):GOSUB 7:GOTO 193 ELSE GOSUB 282: GOTO193
200 IF LEFT$(M$,1) = "P" GOSUB 245 : GOTO 193
201 IF LEFT$(M$,1) = "H" GOSUB 321: GOTO 193
202 IF LEFT$(M$,1) = "M" GOTO 206
203 IF LEFT$(M$,1) = "X" GOTO 182
204 IF LEN(M$) = 4 GOSUB 6 ELSE GOSUB 282
205 GOTO 193
206 REM MEMORY DUMP ROUTINE
207 PRINT @ 0,"MEMORY DUMP : "+STRING$(51," "): PRINT M2$ : PRINT M3$ : PRINT@ 192, L4$;
208 PRINT @ 32,"ACTION"; : INPUT T$ : M$=T$ : T$="" : PRINT
209 IF M$="" GOSUB 237  : GOSUB 8 : GOTO  206
210 IF LEFT$(M$,1)="P" GOSUB 254  : GOTO 206
211 IF LEFT$(M$,1)="I" GOTO 193
212 IF LEFT$(M$,1)="X" GOTO 182
213 IF LEFT$(M$,1)="H" GOSUB 328 : GOTO 206
214 IF LEN(M$)=4 GOSUB 235 : GOSUB 328 : GOTO 206
215 GOTO 206
216 REM PRINT ASSEMBLY LANGUAGE CODE
217 FOR I=1 TO LEN(W$)
218 IF MID$(W$,I,1)="-" THEN 221
219 NEXT I
220 RETURN
221 W$=LEFT$(W$,I-1)+N$+"H"+RIGHT$(W$,LEN(W$)-I)
222 RETURN
223 REM ADDRESS FOR REL JUMP
224 U=X
225 IF Y>127 THEN X=X+Y-256 ELSE  X=X+Y
226 GOSUB 21
227 D=X : GOSUB 25
228 X=U
229 RETURN
230 REM S SUBROUTINE
231 IF LEFT$(W$,4)="CALL" THEN M$=N$ : Z(S)=X : S=S+1 :GOTO 6
232 IF LEFT$(W$,3)="RST" THEN Z(S)=X : S=S+1 : X=16*VAL(MID$(W$,5,1))+VAL(MID$(W$,6,1)):GOTO 7
233 GOTO 282
234 REM DUMP ROUTINE
235 H$=M$
236 GOSUB 12
237 Y=PEEK(X)
238 D=X : GOSUB 25
239 L$=M$
240 D=Y : GOSUB 33
241 O$=H$ : W$=" " :AS$=""
242 GOSUB 3
243 X=X+1 : GOSUB 21
244 RETURN
245 REM PRINTER SUBROUTINE
246 ST=PEEK(14312) AND 128 : IF ST<>0 THEN GOSUB 279 : RETURN
247 GOSUB 263
248 IF LEFT$(H$,1)<>"Y" THEN PRINT @ O,STRING$(64," ");:RETURN 
249 GOSUB 37
250 LPRINT L$; TAB(6) O$; TAB(16) W$; TAB(36) AS$
251 IF X<O THEN  X1=65536+X ELSE X1=X
252 IF X1<4 AND L2>65532 RETURN
253 IF X1>L2 THEN RETURN ELSE 249
254 REM MEMORY DUMP PRINT
255 ST = PEEK(14312)AND 128: IF ST<>0 THENGOSUB 279 : RETURN
256 GOSUB 263
257 IF LEFT$(H$,1) <>"Y" THEN PRINT @ 0, STRING$(64," "); : RETURN
258 GOSUB 237
259 LPRINT L$; TAB(6) O$;TAB(11);AS$
260 IF X<0 THEN X1=65536 +X ELSE X1 = X
261 IF X1<4 AND L2>65532 RETURN
262 IF X1>L2 THEN RETURN ELSE 258
263 REM GENERAL PRINT ROUTINE
264 PRINT@ 0,"LINE PRINT + ";STRING$(50," ")
265 INPUT"FIRST MEMORY LOCATION IN HEX";L1$
266 IF LEN(L1$)<>4 GOTO 263
267 INPUT " LAST MEMORY LOCATION IN HEX";L2$
268 PRINT @192, L4$;
269 IF LEN(L2$)<>4 THEN PRINT @ 128,STRING$(60," ");:GOTO263
270 H$=L2$:GOSUB 12: L2=X
271 H$=L1$ : GOSUB 12
272 D=X : GOSUB 25 : L1$ = H$
273 D=L2 : GOSUB 25 : L2$ = H$
274 IF L2 <0 THEN L2 = 65536 + L2
275 PRINT @ 128, STRING$(50," ");
276 PRINT @ 0 , "PRINTING FROM MEMORY LOCATION ";L1$; " TO ";L2$
277 H$="": INPUT "IS THIS OK (Y/N)";H$
278 RETURN
279 REM LINE PRINTER CHECK
280 PRINT @0,"TURN PRINTER ON. HIT ANY KEY TO CONTINUE";STRING$(20," ") : PRINT
281 ST$ = INKEY$ : IF ST$ = "" GOTO 281 ELSE RETURN
282 REM ERROR SUBROUTINE
283 PRINT @ 0,"ERROR!!";STRING$(50," "): PRINT :PRINT
284 FOR I = 1 TO 1000: NEXT
285 RETURN
286 DATA B,C,D,E,H,L,(HL),A
287 DATA RLC,RRC,RL,RR,SLA,SRA,ERROR,SRL
288 DATA 0NOP,"2LD BC,-","0LD (BC),A",0INC BC,0INC B,0DEC B,"1LDB,-",0RLCA
289 DATA "0EX AF,AF'","0ADD HL,BC","0LD A,(BC)",0DEC BC,0INCC,0DEC C,"1LD C,-",0RRCA
290 DATA 3DJNZ -,"2LD DE,-",0LD (DE),A",0INC DE,0INC D,0DEC D,"1LD D,-",0RLA
291 DATA 3JR -,"0ADD HL,DE","0LD A,(DE)",0DEC DE,0INC E,0DEC E,"ILD E,-",0RRA
292 DATA "3JR NZ,-","2LD HL,-",2LD (-),HL",0INC HL,0INC H,0DEC H,"1LD H,-",0DAA
293 DATA "3JR Z,-","0ADD HL,HL","2LD HL,(-)",0DEC HL,0INC L,0DEC L,"1LD L,-",0CPL
294 DATA "3JR NC,-","2LD SP,-","2LD (-),A",0INC, SP, 0INC (HL),0DEC (HL),"1LD (HL),-",0SCF
295 DATA "3JR C,-","0ADD HL,SP","2LD A,(-)",0DEC SP,0INC A,0DEC A,"1LD A,-",0CCF
296 DATA "ADD A,","ADC A,","SUB ","SBC A,","AND ","XOR ","OR ","CP "
297 DATA 0RET NZ,0POP BC, "2JP NZ,-","2JP -","2CALL NZ,-",0PUSH BC,"1ADD A,-",0RST 0
298 DATA 0RET Z,0RET,"2JP Z,-",4X,"2CALL Z,-",2CALL -","1ADC A,-",0RST 8
299 DATA 0RET NC,0POP DE,"2JP NC,-","1OUT (-,A","2CALL NC,-",0PUSH DE,1SUB -,0RST 10H
300 DATA 0RET C,0EXX,"2JP C,-","1IN A,(-)","2CALL C,-",6X,"1SUBA,-",0RST 18H
301 DATA 0RET PO,0POP HL,"2JP PO,-","0EX (SP),HL","2CALL PO,-",0PUSH HL,1AND -,0RST 20H
302 DATA 0RET PE,0JP (HL),"2JP PE,-","0EX DE,HL",2CALL PE,-",5X,1XOR -,0RST 28H
303 DATA 0RET P,0POP AF,"2JP P,-",0DI,"2CALL P,-",0PUSH AF,10R-,0RST 30H
304 DATA 0RET M,"0LD SP,HL","2JP M,-",0EI,"2CALL M,-",6X,1CP-,0RST 38H
305 DATA "400IN B,(C)","410OUT (C),B","420SBC HL,BC","432LD(-),BC",440NEG,450RETN,460IM 0,"470LD I,A"
306 DATA "480IN C,(C)","490OUT (C),C","4AADC HL,BC","4B2LD BC,(-)",4D0RETI
307 DATA "500IN D,(C)","510OUT (C),D","520SBC HL,DE","532LD(-),DE",560IM 1,"570LD A,I"
308 DATA "580IN E,(C)","590OUT (C),E","5A0ADC HL,DE","5B2LD DE,(-)",5E0IM 2
309 DATA  "600IN H,(C)","610OUT (C),H","620SBC HL,HL",670RRD,"680INL,(C)","690OUT (C),","6A0ADC HL,HL",6F0RLD
310 DATA "720SBC HL,SP","732LD (-),SP","780IN A,(C)","790OUT(C),A","7A0ADC HL,SP","7B2LD SP,(-)"
311 DATA A00LDI,A10CPI,A20INI,A30OUTI,A80LDD,A90CPD,AA0IND,AB0OUTD
312 DATA B00LDIR,810CPIR,820INIR,830OTIR,B80LDDR,B90CPDR,8A0INDR,BB0OTDR
313 DATA "090ADD I?,BC","190ADD I?,DE","212LD I?,-","222LD(-),I?",230INC I?,"290ADD I?,I?","2A2LD I?,(-)",2B0DEC I?
314 DATA 341INC (I?+-),351DEC (I?+-),36X,"390ADD I?,SP","461LD B,(I?+-)","4E1LD C,(I?+-)","561LD D,(I?+-)","531LD E,(I?+-)"
315 DATA "661LD H,(I?+-)","6E1LD L,(I?+-)","701LD(I?+-),B","711LD (I?+-),C","721LD (I?+-),D","731LD (I?+-),E","741LD (I?+-),H"
316 DATA "751LD (I?+-),L","771LD (I?+-),A","7E1LDA,(I?+-)","861ADD A,(I?+-)","8E1ADC A,(I?+-)",961SUB (I?+-),"9E1SBC A,(I?+-)"
317 DATA A61AND (I?+-),AE1XOR (I?+-),B61OR (I?+-),BE1CP (I?+-),E10POP I?,"E30EX (SP),I?",E50PUSH I?,E90JP (I?),"F90LD SP,I?"
318 DATA 06RLC,0ERRC,16RL,1ERR,26SLA,2ESRA,3ESRL,"46BIT 0,","4EBIT 1,","56BIT 2,","5EBIT 3","66BIT 4,","6EBIT 5,","76BIT 6,"
319 DATA "7EBIT 7","86RES 0","8ERES 1,","96RES 2,","9ERES 3,","A6RES 4,","AERES 5,","B6RES 6,","BERES 7,","C6SET 0,"
320 DATA "CESET 1,","D6SET 2,","DESET 3,","E6SET 4,","EESET 5,","F6SET 6,","FESET 7,"
321 REM HELP SUBROUTINE - - DISASSEMBLER
322 PRINT@0,"HELP:";STRING$(58," "):PRINT "  ";D2$:PRINT "  ";D3$ :PRINT L4$;
323 PRINT @ 64,"1-";:PRINT @77,"2-";:PRINT@93,"3-";:PRINT @108,"4-";:PRINT @ 119,"5-";
324 PRINT@128,"6-";:PRINT@141,"7-";:PRINT @157,"8-";:PRINT @ 172,"9-";
325 NU$="":PRINT @32,"NUMBER";:INPUT NU$
326 IF NU$<"1"OR NU$>"9" GOSUB 282:GOTO 321 ELSE N = VAL(NU$)
327 ON N GOTO 335,340,344,349,354,359,364,368,372
328 REM HELP SUBROUTNE -- MEMORY DUMP
329 PRINT@0,"HELP :";STRING$(58," "):PRINT"  ";M2$:PRINT"  ";M3$:PRINT L4$;
330 PRINT@64,"1-";:PRINT @77,"2-";:PRINT@93,"3-";:PRINT @103,"4-";
331 PRINT @ 128,"5-";:PRINT @141,"6-";
332 NU$="":PRINT@32,"NUMBER";:INPUT NU$
333 IF NU$<"1" OR NU$>"6" THEN GOSUB282: GOTO 328 ELSE N = VAL(NU$)
334 ON N GOTO 335,340,359,377,368,372
335 REM LOCATION HELP
336 PRINT@0,"LOCATION HELP : ENTER THE LOCATION AS A 4 (MUST BE 4) DIGIT HEX"
337 PRINT"NUMBER AND HIT <ENTER>. THAT MEMORY LOCATION WILL BE DUMPED/"
338 PRINT"DISASSEMBLED";TAB(45);CT$;
339 GOTO 380
340 ' NEXT HELP
341 PRINT@0,"NEXT HELP : HIT <ENTER> TO DISASSEMBLE/DUMP THE NEXT MEMORY"
342 PRINT"LOCATION":PRINTTAB(45) CT$;
343 GOTO 380
344 REM SUBROUTINE HELP
345 PRINT @ 0,"SUBROUTINE HELP : ENTER S AND HIT <ENTER> TO JUMP TO THE"
346 PRINT "SUBROUTINE REFERRED TO IN THE LAST INSTRUCTION IF IT IS A"
347 PRINT "'CALL' OR 'RST', OTHERWISE ERROR INDICATED";TAB(45);CT$;
348 GOTO 380
349 REM RETURN HELP
350 PRINT @ 0,"RETURN HELP : ENTER R AND HIT <ENTER> TO RETURN FROM THE"
351 PRINT"SUBROUTINE.  IF THE RETURN STACK IS EMPTY AN ERROR IS "
352 PRINT "INDICATED"; TAB(45);CT$;
353 GOTO 380
354 REM JUMP HELP
355 PRINT @ 0 , "JUMP HELP : ENTER J AND HIT <ENTER> TO JUMP TO THE "
356 PRINT "LOCATION REFERRED TO IN THE LAST INSTRUCTION IF IT IS A "
357 PRINT "JUMP OR 'DJNZ', OTHERWISE ERROR IS INDICATED";TAB(45);CT$;
358 GOTO 380
359 REM PRINT HELP
360 PRINT @0,"PRINT HELP : PRINTS MEMORY LOCATIONS CONSECUTIVELY ON PRINTER."
361 PRINT"IF 1ST LOCATION <0002 & LAST LOCATION  > FFFC THE PRINTING MUST"
362 PRINT "BE DIVIDED INTO TWO SEPARATE PASSES"; TAB(45);CT$;
363 GOTO 380
364 REM MEMORY DUMP HELP
365 PRINT @ 0,"MEMORY DUMP HELP : ENTER M AND HIT <ENTER> TO SWITCH TO THE"
366 PRINT "'MEMORY DUMP' MENU":PRINT TAB(45); CT$;
367 GOTO 380
368 REM RESTART HELP
369 PRINT @ 0,"RESTART HELP : ENTER X AND HIT <ENTER> TO GO BACK TO THE"
370 PRINT "START OF THE PROGRAM": PRINT TAB(45); CT$;
371 GOTO 380
372 REM HELP HELP
373 PRINT @ 0,"HELP HELP : ANSWER PROMPT WITH THE APPROPRIATE NUMBER AND HIT"
374 PRINT"<ENTER>.  TO RETURN TO THE MENU HIT ANY KEY.  TO RETURN TO THE"
375 PRINT "MENU FROM HELP FIRST CHOOSE A NUMBER";TAB(45); CT$;
376 GOTO 380
377 REM DISASSEMBLE HELP
378 PRINT @ 0,"'DISASSEMBLE' HELP : ENTER I AND HIT <ENTER> TO SWITCH TO THE"
379 PRINT "'DISASSEMBLE'  MENU":PRINT TAB(45);CT$
380 ST$=INKEY$: IF ST$="" THEN GOTO 380 ELSE RETURN
381 PRINT "REACHED HERE"
382 END
