Mercurial > hg > Members > kono > nitros9-code
annotate level1/cmds/ded.asm @ 1830:d1f2f21d6af7
Added Robert Gault's 'F' option mod to backup for DSK images
author | boisy |
---|---|
date | Thu, 05 May 2005 12:43:28 +0000 |
parents | 93328dc6e3f4 |
children | bc8c21346cf4 |
rev | line source |
---|---|
968 | 1 IFNE 1 |
2 L0000 fcb $87,$CD,$17,$A2,$00,$1C,$11,$82 .M.".... | |
3 L0008 fcb $8F,$06,$65,$03,$16,$0C,$1F,$20 ..e.... | |
4 L0010 fcb $00,$1F,$21,$00,$04,$0B,$05,$21 ..!....! | |
5 L0018 fcb $00,$05,$20,$00,$64,$45,$E4,$05 .. .dEd. | |
6 L0020 fcb $43,$6F,$70,$79,$72,$69,$67,$68 Copyrigh | |
7 L0028 fcb $74,$20,$31,$39,$38,$37,$20,$44 t 1987 D | |
8 L0030 fcb $6F,$75,$67,$20,$44,$65,$4D,$61 oug DeMa | |
9 L0038 fcb $72,$74,$69,$6E,$69,$73,$4C,$53 rtinisLS | |
10 L0040 fcb $4E,$3D,$A4,$53,$45,$43,$54,$4F N=$SECTO | |
11 L0048 fcb $52,$20,$3D,$20,$A4,$20,$20,$20 R = $ | |
12 L0050 fcb $20,$20,$20,$30,$20,$20,$31,$20 0 1 | |
13 L0058 fcb $20,$32,$20,$20,$33,$20,$20,$34 2 3 4 | |
14 L0060 fcb $20,$20,$35,$20,$20,$36,$20,$20 5 6 | |
15 L0068 fcb $37,$20,$20,$38,$20,$20,$39,$20 7 8 9 | |
16 L0070 fcb $20,$41,$20,$20,$42,$20,$20,$43 A B C | |
17 L0078 fcb $20,$20,$44,$20,$20,$45,$20,$20 D E | |
18 L0080 fcb $46,$20,$20,$20,$20,$30,$20,$32 F 0 2 | |
19 L0088 fcb $20,$34,$20,$36,$20,$38,$20,$41 4 6 8 A | |
20 L0090 fcb $20,$43,$20,$45,$20,$0D,$43,$4D C E .CM | |
21 L0098 fcb $44,$3A,$A0,$3C,$42,$52,$45,$41 D: <BREA | |
22 L00A0 fcb $4B,$3E,$20,$74,$6F,$67,$67,$6C K> toggl | |
23 L00A8 fcb $65,$73,$20,$48,$45,$58,$2F,$41 es HEX/A | |
24 L00B0 fcb $53,$43,$49,$49,$20,$65,$64,$69 SCII edi | |
25 L00B8 fcb $74,$20,$6D,$6F,$64,$65,$73,$20 t modes | |
26 L00C0 fcb $20,$20,$20,$20,$3C,$45,$4E,$54 <ENT | |
27 L00C8 fcb $45,$52,$3E,$20,$65,$78,$69,$74 ER> exit | |
28 L00D0 fcb $73,$20,$65,$64,$69,$74,$20,$6D s edit m | |
29 L00D8 fcb $6F,$64,$E5,$5A,$61,$70,$A0,$62 odeZap b | |
30 L00E0 fcb $79,$74,$65,$3A,$A0,$63,$68,$61 yte: cha | |
31 L00E8 fcb $72,$3A,$A0,$41,$72,$65,$20,$79 r: Are y | |
32 L00F0 fcb $6F,$75,$20,$73,$75,$72,$65,$3F ou sure? | |
33 L00F8 fcb $20,$28,$59,$2F,$4E,$29,$A0,$57 (Y/N) W | |
34 L0100 fcb $72,$69,$74,$69,$6E,$67,$20,$73 riting s | |
35 L0108 fcb $65,$63,$74,$6F,$72,$2E,$2E,$AE ector... | |
36 L0110 fcb $4F,$55,$54,$46,$49,$4C,$45,$3A OUTFILE: | |
37 L0118 fcb $A0,$56,$65,$72,$69,$66,$79,$69 Verifyi | |
38 L0120 fcb $6E,$67,$2E,$2E,$AE,$56,$65,$72 ng...Ver | |
39 L0128 fcb $69,$66,$79,$20,$61,$62,$6F,$72 ify abor | |
40 L0130 fcb $74,$65,$64,$2E,$2E,$AE,$73,$68 ted...sh | |
41 L0138 fcb $65,$6C,$EC,$4C,$69,$6E,$6B,$20 ellLink | |
42 L0140 fcb $74,$6F,$20,$77,$68,$69,$63,$68 to which | |
43 L0148 fcb $20,$6D,$6F,$64,$75,$6C,$65,$3F module? | |
44 L0150 fcb $A0,$4F,$66,$66,$20,$20,$4C,$65 Off Le | |
45 L0158 fcb $6E,$20,$20,$4E,$61,$6D,$65,$0A n Name. | |
46 L0160 fcb $2D,$2D,$2D,$2D,$20,$2D,$2D,$2D ---- --- | |
47 L0168 fcb $2D,$20,$2D,$2D,$2D,$2D,$0D,$4D - ----.M | |
48 L0170 fcb $4F,$44,$55,$4C,$45,$3A,$20,$A0 ODULE: | |
49 L0178 fcb $4F,$46,$46,$53,$45,$54,$3A,$20 OFFSET: | |
50 L0180 fcb $A4,$1F,$24,$2D,$20,$45,$78,$70 $.$- Exp | |
51 L0188 fcb $65,$72,$74,$20,$4D,$6F,$64,$65 ert Mode | |
52 L0190 fcb $20,$2D,$1F,$A5,$46,$69,$6E,$64 -.%Find | |
53 L0198 fcb $20,$62,$79,$74,$65,$20,$73,$74 byte st | |
54 L01A0 fcb $72,$69,$6E,$67,$20,$A4,$46,$69 ring $Fi | |
55 L01A8 fcb $6E,$64,$20,$63,$68,$61,$72,$20 nd char | |
56 L01B0 fcb $73,$74,$72,$69,$6E,$67,$3A,$A0 string: | |
57 L01B8 fcb $53,$65,$61,$72,$63,$68,$69,$6E Searchin | |
58 L01C0 fcb $67,$2E,$2E,$AE,$43,$75,$72,$72 g...Curr | |
59 L01C8 fcb $65,$6E,$74,$20,$46,$69,$6C,$65 ent File | |
60 L01D0 fcb $20,$4C,$65,$6E,$67,$74,$68,$20 Length | |
61 L01D8 fcb $A4,$4E,$65,$77,$20,$4C,$65,$6E $New Len | |
62 L01E0 fcb $67,$74,$68,$3F,$20,$A4,$2A,$2A gth? $** | |
63 L01E8 fcb $20,$52,$45,$53,$54,$41,$52,$54 RESTART | |
64 L01F0 fcb $2C,$20,$45,$6E,$74,$65,$72,$20 , Enter | |
65 L01F8 fcb $70,$61,$74,$68,$6E,$61,$6D,$65 pathname | |
66 L0200 fcb $3A,$A0,$42,$41,$4D,$3A,$20,$46 : BAM: F | |
67 L0208 fcb $72,$6F,$6D,$20,$53,$65,$63,$74 rom Sect | |
68 L0210 fcb $6F,$72,$3A,$24,$20,$20,$20,$20 or:$ | |
69 L0218 fcb $20,$20,$20,$74,$6F,$20,$24,$20 to $ | |
70 L0220 fcb $20,$20,$20,$20,$20,$A0,$42,$69 Bi | |
71 L0228 fcb $74,$73,$BA,$07,$53,$65,$63,$74 ts:.Sect | |
72 L0230 fcb $6F,$72,$20,$53,$74,$61,$63,$6B or Stack | |
73 L0238 fcb $20,$46,$75,$6C,$6C,$A0,$20,$20 Full | |
74 L0240 fcb $20,$55,$70,$2F,$44,$6F,$77,$6E Up/Down | |
75 L0248 fcb $20,$41,$72,$72,$6F,$77,$73,$20 Arrows | |
76 L0250 fcb $20,$52,$65,$61,$64,$20,$26,$20 Read & | |
77 L0258 fcb $64,$69,$73,$70,$6C,$61,$79,$20 display | |
78 L0260 fcb $4E,$65,$78,$74,$2F,$50,$72,$65 Next/Pre | |
79 L0268 fcb $76,$69,$6F,$75,$73,$20,$73,$65 vious se | |
80 L0270 fcb $63,$74,$6F,$72,$0A,$20,$3C,$43 ctor. <C | |
81 L0278 fcb $52,$3E,$20,$43,$6C,$65,$61,$6E R> Clean | |
82 L0280 fcb $20,$75,$70,$20,$74,$68,$65,$20 up the | |
83 L0288 fcb $73,$63,$72,$65,$65,$6E,$20,$64 screen d | |
84 L0290 fcb $69,$73,$70,$6C,$61,$79,$0A,$20 isplay. | |
85 L0298 fcb $20,$20,$2A,$20,$20,$52,$65,$73 * Res | |
86 L02A0 fcb $74,$61,$72,$74,$0A,$20,$20,$20 tart. | |
87 L02A8 fcb $24,$20,$20,$46,$6F,$72,$6B,$20 $ Fork | |
88 L02B0 fcb $61,$20,$53,$48,$45,$4C,$4C,$20 a SHELL | |
89 L02B8 fcb $28,$43,$74,$72,$6C,$2D,$42,$52 (Ctrl-BR | |
90 L02C0 fcb $45,$41,$4B,$20,$74,$6F,$20,$72 EAK to r | |
91 L02C8 fcb $65,$74,$75,$72,$6E,$29,$0A,$20 eturn). | |
92 L02D0 fcb $20,$20,$41,$20,$20,$41,$70,$70 A App | |
93 L02D8 fcb $65,$6E,$64,$20,$64,$69,$73,$70 end disp | |
94 L02E0 fcb $6C,$61,$79,$65,$64,$20,$73,$65 layed se | |
95 L02E8 fcb $63,$74,$6F,$72,$20,$74,$6F,$20 ctor to | |
96 L02F0 fcb $6F,$75,$74,$70,$75,$74,$20,$66 output f | |
97 L02F8 fcb $69,$6C,$65,$0A,$20,$20,$20,$43 ile. C | |
98 L0300 fcb $20,$20,$43,$6C,$6F,$73,$65,$20 Close | |
99 L0308 fcb $6F,$75,$74,$70,$75,$74,$20,$66 output f | |
100 L0310 fcb $69,$6C,$65,$0A,$20,$20,$20,$44 ile. D | |
101 L0318 fcb $20,$20,$44,$69,$64,$64,$6C,$65 Diddle | |
102 L0320 fcb $20,$28,$61,$64,$6A,$75,$73,$74 (adjust | |
103 L0328 fcb $29,$20,$66,$69,$6C,$65,$20,$6C ) file l | |
104 L0330 fcb $65,$6E,$67,$74,$68,$0A,$20,$20 ength. | |
105 L0338 fcb $20,$45,$20,$20,$45,$64,$69,$74 E Edit | |
106 L0340 fcb $20,$74,$68,$65,$20,$64,$69,$73 the dis | |
107 L0348 fcb $70,$6C,$61,$79,$65,$64,$20,$73 played s | |
108 L0350 fcb $65,$63,$74,$6F,$72,$0A,$20,$20 ector. | |
109 L0358 fcb $20,$46,$20,$20,$46,$69,$6E,$64 F Find | |
110 L0360 fcb $20,$61,$20,$62,$79,$74,$65,$20 a byte | |
111 L0368 fcb $6F,$72,$20,$74,$65,$78,$74,$20 or text | |
112 L0370 fcb $73,$74,$72,$69,$6E,$67,$20,$28 string ( | |
113 L0378 fcb $42,$52,$45,$41,$4B,$20,$61,$62 BREAK ab | |
114 L0380 fcb $6F,$72,$74,$73,$29,$0A,$20,$20 orts). | |
115 L0388 fcb $20,$48,$20,$20,$48,$65,$6C,$70 H Help | |
116 L0390 fcb $20,$73,$63,$72,$65,$65,$6E,$20 screen | |
117 L0398 fcb $28,$61,$6C,$73,$6F,$20,$75,$73 (also us | |
118 L03A0 fcb $65,$20,$27,$3F,$27,$29,$0A,$20 e '?'). | |
119 L03A8 fcb $20,$20,$4C,$20,$20,$4C,$69,$6E L Lin | |
120 L03B0 fcb $6B,$20,$74,$6F,$20,$61,$20,$6D k to a m | |
121 L03B8 fcb $6F,$64,$75,$6C,$65,$20,$2D,$20 odule - | |
122 L03C0 fcb $4C,$69,$73,$74,$20,$61,$6C,$6C List all | |
123 L03C8 fcb $20,$6D,$6F,$64,$75,$6C,$65,$73 modules | |
124 L03D0 fcb $0A,$20,$20,$20,$4E,$20,$20,$4E . N N | |
125 L03D8 fcb $65,$78,$74,$20,$6F,$63,$63,$75 ext occu | |
126 L03E0 fcb $72,$72,$65,$6E,$63,$65,$20,$6F rrence o | |
127 L03E8 fcb $66,$20,$62,$79,$74,$65,$28,$73 f byte(s | |
128 L03F0 fcb $29,$20,$6F,$72,$20,$73,$74,$72 ) or str | |
129 L03F8 fcb $69,$6E,$67,$20,$28,$46,$69,$6E ing (Fin | |
130 L0400 fcb $64,$29,$0A,$20,$20,$20,$4F,$20 d). O | |
131 L0408 fcb $20,$4F,$70,$65,$6E,$20,$61,$20 Open a | |
132 L0410 fcb $66,$69,$6C,$65,$20,$66,$6F,$72 file for | |
133 L0418 fcb $20,$6F,$75,$74,$70,$75,$74,$20 output | |
134 L0420 fcb $28,$75,$73,$65,$20,$77,$69,$74 (use wit | |
135 L0428 fcb $68,$20,$41,$70,$70,$65,$6E,$64 h Append | |
136 L0430 fcb $29,$0A,$20,$20,$20,$50,$20,$20 ). P | |
137 L0438 fcb $50,$75,$73,$68,$20,$63,$75,$72 Push cur | |
138 L0440 fcb $72,$65,$6E,$74,$20,$73,$65,$63 rent sec | |
139 L0448 fcb $74,$6F,$72,$20,$6F,$6E,$74,$6F tor onto | |
140 L0450 fcb $20,$73,$74,$61,$63,$6B,$0A,$20 stack. | |
141 L0458 fcb $20,$20,$51,$20,$20,$51,$75,$69 Q Qui | |
142 L0460 fcb $74,$20,$64,$45,$64,$20,$2D,$20 t dEd - | |
143 L0468 fcb $45,$78,$69,$74,$20,$74,$6F,$20 Exit to | |
144 L0470 fcb $4F,$53,$39,$0A,$20,$20,$20,$52 OS9. R | |
145 L0478 fcb $20,$20,$52,$65,$6D,$6F,$76,$65 Remove | |
146 L0480 fcb $20,$61,$6E,$64,$20,$64,$69,$73 and dis | |
147 L0488 fcb $70,$6C,$61,$79,$20,$61,$20,$73 play a s | |
148 L0490 fcb $65,$63,$74,$6F,$72,$20,$66,$72 ector fr | |
149 L0498 fcb $6F,$6D,$20,$73,$74,$61,$63,$6B om stack | |
150 L04A0 fcb $0A,$20,$20,$20,$53,$20,$20,$53 . S S | |
151 L04A8 fcb $6B,$69,$70,$20,$74,$6F,$20,$67 kip to g | |
152 L04B0 fcb $69,$76,$65,$6E,$20,$73,$65,$63 iven sec | |
153 L04B8 fcb $74,$6F,$72,$20,$28,$73,$65,$63 tor (sec | |
154 L04C0 fcb $74,$6F,$72,$20,$23,$20,$69,$6E tor # in | |
155 L04C8 fcb $20,$68,$65,$78,$29,$0A,$20,$20 hex). | |
156 L04D0 fcb $20,$55,$20,$20,$55,$6E,$6C,$69 U Unli | |
157 L04D8 fcb $6E,$6B,$20,$66,$72,$6F,$6D,$20 nk from | |
158 L04E0 fcb $6D,$6F,$64,$75,$6C,$65,$0A,$20 module. | |
159 L04E8 fcb $20,$20,$56,$20,$20,$56,$65,$72 V Ver | |
160 L04F0 fcb $69,$66,$79,$20,$61,$6C,$6C,$20 ify all | |
161 L04F8 fcb $6D,$6F,$64,$75,$6C,$65,$73,$20 modules | |
162 L0500 fcb $69,$6E,$20,$66,$69,$6C,$65,$0A in file. | |
163 L0508 fcb $20,$20,$20,$57,$20,$20,$57,$72 W Wr | |
164 L0510 fcb $69,$74,$65,$20,$74,$68,$65,$20 ite the | |
165 L0518 fcb $73,$65,$63,$74,$6F,$72,$20,$62 sector b | |
166 L0520 fcb $61,$63,$6B,$20,$74,$6F,$20,$74 ack to t | |
167 L0528 fcb $68,$65,$20,$64,$69,$73,$6B,$0A he disk. | |
168 L0530 fcb $20,$20,$20,$58,$20,$20,$65,$58 X eX | |
169 L0538 fcb $70,$65,$72,$74,$20,$6D,$6F,$64 pert mod | |
170 L0540 fcb $65,$20,$74,$6F,$67,$67,$6C,$65 e toggle | |
171 L0548 fcb $20,$6F,$6E,$2F,$6F,$66,$66,$0A on/off. | |
172 L0550 fcb $20,$20,$20,$5A,$20,$20,$5A,$61 Z Za | |
173 L0558 fcb $70,$20,$28,$66,$69,$6C,$6C,$20 p (fill | |
174 L0560 fcb $69,$6E,$29,$20,$74,$68,$65,$20 in) the | |
175 L0568 fcb $73,$65,$63,$74,$6F,$72,$20,$64 sector d | |
176 L0570 fcb $69,$73,$70,$6C,$61,$79,$65,$64 isplayed | |
177 L0578 fcb $0A,$0A,$20,$20,$20,$20,$20,$20 .. | |
178 L0580 fcb $28,$50,$72,$65,$73,$73,$20,$61 (Press a | |
179 L0588 fcb $6E,$79,$20,$6B,$65,$79,$20,$74 ny key t | |
180 L0590 fcb $6F,$20,$72,$65,$74,$75,$72,$6E o return | |
181 L0598 fcb $20,$74,$6F,$20,$63,$6F,$6D,$6D to comm | |
182 L05A0 fcb $61,$6E,$64,$20,$70,$72,$6F,$6D and prom | |
183 L05A8 fcb $70,$74,$29,$3A,$55,$73,$65,$3A pt):Use: | |
184 L05B0 fcb $20,$20,$64,$45,$64,$20,$3C,$70 dEd <p | |
185 L05B8 fcb $61,$74,$68,$6C,$69,$73,$74,$3E athlist> | |
186 L05C0 fcb $0D,$98,$96,$80,$0F,$42,$40,$01 .....B@. | |
187 L05C8 fcb $86,$A0,$00,$27,$10,$00,$03,$E8 . .'...h | |
188 L05D0 fcb $00,$00,$64,$00,$00,$0A,$00,$00 ..d..... | |
189 L05D8 fcb $01,$0C,$0A,$40,$0A,$0A,$4E,$2A ...@..N* | |
190 L05E0 fcb $06,$27,$24,$10,$BD,$0D,$10,$EF .'$.=..o | |
191 L05E8 fcb $73,$0A,$67,$7A,$0B,$23,$77,$0B s.gz.#w. | |
192 L05F0 fcb $D4,$6F,$0C,$26,$61,$0C,$AD,$63 To.&a.-c | |
193 L05F8 fcb $0C,$97,$65,$0D,$37,$71,$0D,$22 ..e.7q." | |
194 L0600 fcb $76,$11,$16,$6C,$12,$23,$75,$13 v..l.#u. | |
195 L0608 fcb $CA,$78,$13,$EB,$68,$14,$13,$3F Jx.kh..? | |
196 L0610 fcb $14,$13,$66,$14,$2B,$6E,$15,$F9 ..f.+n.y | |
197 L0618 fcb $64,$16,$12,$70,$16,$A9,$72,$16 d..p.)r. | |
198 L0620 fcb $E2,$00,$E7,$C9,$00,$8B,$3B,$10 b.gI..;. | |
199 L0628 fcb $DE,$1D,$DE,$1B,$03,$1A,$17,$0A ^.^..... | |
200 L0630 fcb $C4,$17,$01,$5B,$30,$8D,$FB,$AE D..[0... | |
201 L0638 fcb $17,$01,$1E,$17,$01,$72,$30,$C9 .....r0I | |
202 L0640 fcb $01,$D6,$9F,$D6,$10,$8E,$00,$50 .V.V...P | |
203 L0648 fcb $4F,$10,$3F,$8B,$10,$25,$06,$66 O.?..%.f | |
204 L0650 fcb $10,$8C,$00,$01,$26,$08,$0F,$1A ....&... | |
205 L0658 fcb $17,$0A,$9A,$16,$00,$AD,$96,$00 .....-.. | |
206 L0660 fcb $10,$3F,$8F,$20,$0D,$9F,$D6,$30 .?. ..V0 | |
207 L0668 fcb $8D,$FF,$B7,$10,$3F,$09,$10,$25 ..7.?..% | |
208 L0670 fcb $06,$44,$4F,$C6,$D6,$30,$C4,$A7 .DOFV0D' | |
209 L0678 fcb $80,$5A,$26,$FB,$DF,$1B,$10,$DF .Z&._.._ | |
210 L0680 fcb $1D,$CC,$00,$02,$DD,$0A,$32,$E8 .L..].2h | |
211 L0688 fcb $E0,$30,$E4,$4F,$5F,$10,$3F,$8D `0dO_.?. | |
212 L0690 fcb $10,$25,$06,$22,$A6,$04,$97,$19 .%."&... | |
213 L0698 fcb $32,$E8,$20,$9E,$D6,$34,$10,$0F 2h .V4.. | |
214 L06A0 fcb $8C,$A6,$80,$81,$0D,$27,$06,$81 .&...'.. | |
215 L06A8 fcb $40,$26,$F6,$03,$8C,$35,$10,$86 @&v..5.. | |
216 L06B0 fcb $03,$10,$3F,$84,$24,$11,$C1,$D6 ..?.$.AV | |
217 L06B8 fcb $10,$26,$06,$78,$9E,$D6,$86,$83 .&.x.V.. | |
218 L06C0 fcb $10,$3F,$84,$10,$25,$06,$6D,$97 .?..%.m. | |
219 L06C8 fcb $00,$C6,$02,$10,$3F,$8D,$9F,$49 .F..?..I | |
220 L06D0 fcb $DF,$4B,$DE,$1B,$0F,$1A,$17,$0A _K^..... | |
221 L06D8 fcb $1C,$17,$00,$DE,$0D,$8C,$27,$15 ...^..'. | |
222 L06E0 fcb $17,$00,$E1,$9E,$12,$EC,$04,$DD ..a..l.] | |
223 L06E8 fcb $8D,$1F,$01,$CC,$01,$00,$17,$10 ...L.... | |
224 L06F0 fcb $37,$30,$01,$9F,$8F,$17,$00,$CC 70.....L | |
225 L06F8 fcb $10,$9F,$1F,$DC,$02,$DD,$05,$96 ...\.].. | |
226 L0700 fcb $04,$97,$07,$CC,$00,$00,$DD,$42 ...L..]B | |
227 L0708 fcb $17,$01,$14,$17,$00,$81,$30,$8D ......0. | |
228 L0710 fcb $F9,$84,$8D,$45,$30,$8D,$F8,$FD y..E0.x. | |
229 L0718 fcb $10,$8E,$00,$01,$10,$3F,$8A,$10 .....?.. | |
230 L0720 fcb $25,$05,$93,$30,$C9,$01,$D6,$17 %..0I.V. | |
231 L0728 fcb $00,$BE,$A6,$84,$81,$41,$25,$02 .>&..A%. | |
232 L0730 fcb $8A,$20,$30,$8D,$FE,$A3,$A1,$80 . 0..#!. | |
233 L0738 fcb $27,$08,$30,$02,$6D,$84,$26,$F6 '.0.m.&v | |
234 L0740 fcb $20,$C9,$0D,$2E,$27,$0B,$0D,$2D I..'..- | |
235 L0748 fcb $27,$07,$34,$12,$17,$04,$A1,$35 '.4...!5 | |
236 L0750 fcb $12,$EC,$84,$30,$8D,$F8,$A9,$6E .l.0.x)n | |
237 L0758 fcb $8B,$31,$C9,$01,$D6,$5F,$5C,$A6 .1I.V_\& | |
238 L0760 fcb $80,$2B,$04,$A7,$A0,$20,$F7,$84 .+.' w. | |
239 L0768 fcb $7F,$A7,$A4,$30,$C9,$01,$D6,$4F '$0I.VO | |
240 L0770 fcb $1F,$02,$20,$04,$10,$8E,$00,$78 .. ....x | |
241 L0778 fcb $86,$01,$10,$3F,$8C,$10,$25,$05 ...?..%. | |
242 L0780 fcb $35,$39,$10,$8E,$00,$03,$4F,$10 59....O. | |
243 L0788 fcb $3F,$8B,$10,$25,$05,$28,$39,$CC ?..%.(9L | |
244 L0790 fcb $20,$36,$30,$4A,$ED,$02,$10,$8E 60Jm... | |
245 L0798 fcb $00,$04,$20,$DC,$30,$8D,$F8,$6E .. \0.xn | |
246 L07A0 fcb $10,$8E,$00,$02,$20,$D2,$30,$8D .... R0. | |
247 L07A8 fcb $F8,$67,$10,$8E,$00,$02,$20,$C8 xg.... H | |
248 L07B0 fcb $30,$8D,$F8,$60,$10,$8E,$00,$01 0.x`.... | |
249 L07B8 fcb $20,$BE,$30,$8D,$F8,$4F,$10,$8E >0.xO.. | |
250 L07C0 fcb $00,$01,$20,$B4,$8D,$2B,$30,$C9 .. 4.+0I | |
251 L07C8 fcb $00,$D6,$9F,$12,$0D,$4D,$27,$0A .V...M'. | |
252 L07D0 fcb $DC,$23,$90,$04,$26,$04,$1F,$02 \#..&... | |
253 L07D8 fcb $20,$04,$10,$8E,$01,$00,$96,$00 ....... | |
254 L07E0 fcb $10,$3F,$89,$10,$25,$04,$CF,$39 .?..%.O9 | |
255 L07E8 fcb $4F,$10,$8E,$00,$01,$10,$3F,$89 O.....?. | |
256 L07F0 fcb $39,$0D,$4D,$26,$13,$9E,$02,$96 9.M&.... | |
257 L07F8 fcb $04,$5F,$1F,$03,$96,$00,$10,$3F ._.....? | |
258 L0800 fcb $88,$10,$25,$04,$B1,$DE,$1B,$39 ..%.1^.9 | |
259 L0808 fcb $DC,$23,$83,$00,$01,$91,$04,$24 \#.....$ | |
260 L0810 fcb $05,$C6,$D3,$16,$04,$A0,$DC,$08 .FS.. \. | |
261 L0818 fcb $9B,$04,$8E,$00,$00,$20,$DB,$CC ..... [L | |
262 L0820 fcb $20,$20,$17,$FF,$6D,$30,$8D,$F8 ..m0.x | |
263 L0828 fcb $15,$17,$FF,$2D,$8D,$82,$17,$00 ...-.... | |
264 L0830 fcb $B5,$30,$C9,$01,$D6,$17,$FF,$3C 50I.V..< | |
265 L0838 fcb $0D,$4D,$27,$03,$17,$0B,$5B,$0D .M'...[. | |
266 L0840 fcb $01,$27,$03,$17,$04,$31,$CC,$20 .'...1L | |
267 L0848 fcb $22,$17,$FF,$46,$30,$8D,$F7,$BE "..F0.w> | |
268 L0850 fcb $10,$8E,$00,$02,$17,$FF,$23,$30 ......#0 | |
269 L0858 fcb $8D,$F7,$F2,$17,$FF,$16,$30,$8D .wr...0. | |
270 L0860 fcb $F7,$AF,$10,$8E,$00,$02,$17,$FF w/...... | |
271 L0868 fcb $11,$17,$01,$20,$96,$0F,$8B,$10 ... .... | |
272 L0870 fcb $97,$0F,$26,$F5,$30,$C9,$00,$D6 ..&u0I.V | |
273 L0878 fcb $9F,$12,$0D,$8C,$27,$4C,$DC,$03 ....'L\. | |
274 L0880 fcb $10,$83,$00,$01,$25,$44,$10,$93 ....%D.. | |
275 L0888 fcb $8F,$22,$3F,$DC,$03,$83,$00,$01 ."?\.... | |
276 L0890 fcb $8E,$08,$00,$17,$0E,$68,$1F,$20 .....h. | |
277 L0898 fcb $D7,$91,$DF,$92,$33,$C9,$07,$FF W._.3I.. | |
278 L08A0 fcb $11,$93,$4A,$23,$0A,$D1,$49,$25 ..J#.QI% | |
279 L08A8 fcb $06,$D6,$49,$DE,$4A,$33,$5F,$D7 .VI^J3_W | |
280 L08B0 fcb $94,$DF,$95,$DE,$1B,$9E,$91,$D6 ._.^...V | |
281 L08B8 fcb $93,$9F,$97,$D7,$99,$9E,$94,$D6 ...W...V | |
282 L08C0 fcb $96,$9F,$9A,$D7,$9C,$17,$0E,$80 ...W.... | |
283 L08C8 fcb $20,$09,$CC,$20,$34,$17,$FE,$C2 .L 4..B | |
284 L08D0 fcb $17,$FE,$DD,$0D,$2E,$10,$27,$FF ..]...'. | |
285 L08D8 fcb $2E,$CC,$59,$33,$17,$FE,$B3,$30 .LY3..30 | |
286 L08E0 fcb $8D,$F8,$9E,$16,$FE,$73,$DC,$02 .x...s\. | |
287 L08E8 fcb $03,$18,$31,$C9,$01,$D6,$8D,$6D ..1I.V.m | |
288 L08F0 fcb $1F,$98,$8D,$69,$0F,$18,$96,$04 ...i.... | |
289 L08F8 fcb $8D,$63,$CC,$20,$20,$ED,$A1,$CC .cL m!L | |
290 L0900 fcb $00,$08,$34,$06,$03,$18,$30,$8D ..4...0. | |
291 L0908 fcb $FC,$B7,$6F,$E4,$DC,$03,$A3,$01 .7od\.#. | |
292 L0910 fcb $34,$01,$DD,$03,$96,$02,$5F,$A0 4.]..._ | |
293 L0918 fcb $84,$24,$01,$5C,$35,$01,$24,$02 .$.\5.$. | |
294 L0920 fcb $80,$01,$97,$02,$24,$01,$5C,$5D ....$.\] | |
295 L0928 fcb $26,$04,$6C,$E4,$20,$DE,$DC,$03 &.ld ^\. | |
296 L0930 fcb $E3,$01,$DD,$03,$96,$02,$24,$01 c.]...$. | |
297 L0938 fcb $4C,$AB,$84,$97,$02,$30,$03,$8D L+...0.. | |
298 L0940 fcb $43,$6A,$61,$27,$0A,$A6,$61,$81 Cja'.&a. | |
299 L0948 fcb $02,$26,$BF,$0F,$18,$20,$BB,$86 .&?.. ;. | |
300 L0950 fcb $0D,$A7,$A4,$DC,$06,$DD,$03,$96 .'$\.].. | |
301 L0958 fcb $05,$97,$02,$35,$86,$34,$02,$44 ...5.4.D | |
302 L0960 fcb $44,$44,$44,$8D,$07,$35,$02,$84 DDD..5.. | |
303 L0968 fcb $0F,$8D,$01,$39,$81,$09,$2F,$02 ...9../. | |
304 L0970 fcb $8B,$07,$8B,$30,$A7,$A0,$0D,$18 ...0' .. | |
305 L0978 fcb $27,$06,$81,$30,$27,$03,$0F,$18 '..0'... | |
306 L0980 fcb $39,$31,$3F,$39,$34,$02,$A6,$63 91?94.&c | |
307 L0988 fcb $8D,$E8,$35,$82,$31,$C9,$01,$D6 .h5.1I.V | |
308 L0990 fcb $30,$8D,$F6,$7A,$17,$00,$9A,$96 0.vz.... | |
309 L0998 fcb $20,$27,$0A,$84,$F0,$91,$0F,$26 '..p..& | |
310 L09A0 fcb $04,$86,$FF,$97,$11,$96,$0F,$8D ........ | |
311 L09A8 fcb $B4,$86,$3A,$A7,$A0,$30,$8D,$F6 4.:' 0.v | |
312 L09B0 fcb $60,$8D,$7E,$CC,$20,$20,$ED,$A1 `.~L m! | |
313 L09B8 fcb $9E,$12,$C6,$10,$0D,$11,$27,$08 ..F...'. | |
314 L09C0 fcb $D6,$20,$C4,$0F,$27,$74,$34,$04 V D.'t4. | |
315 L09C8 fcb $A6,$80,$8D,$91,$86,$20,$A7,$A0 &.... ' | |
316 L09D0 fcb $5A,$26,$F5,$0D,$11,$27,$0D,$CC Z&u..'.L | |
317 L09D8 fcb $03,$10,$E0,$E4,$3D,$86,$20,$A7 ..`d=. ' | |
318 L09E0 fcb $A0,$5A,$26,$FB,$C6,$20,$ED,$A1 Z&.F m! | |
319 L09E8 fcb $A7,$A0,$9E,$12,$57,$0D,$11,$27 ' ..W..' | |
320 L09F0 fcb $02,$E6,$E4,$A6,$80,$84,$7F,$81 .fd&... | |
321 L09F8 fcb $20,$24,$02,$86,$2E,$A7,$A0,$5A $...' Z | |
322 L0A00 fcb $26,$F1,$9F,$12,$0D,$11,$27,$1E &q....'. | |
323 L0A08 fcb $C6,$10,$E0,$E0,$86,$20,$A7,$A0 F.``. ' | |
324 L0A10 fcb $5A,$26,$FB,$86,$F0,$97,$0F,$8D Z&..p... | |
325 L0A18 fcb $0D,$0F,$11,$30,$8D,$F5,$F6,$10 ...0.uv. | |
326 L0A20 fcb $8E,$00,$01,$16,$FD,$52,$86,$0D .....R.. | |
327 L0A28 fcb $A7,$A4,$30,$C9,$01,$D6,$16,$FD '$0I.V.. | |
328 L0A30 fcb $43,$A6,$80,$27,$04,$A7,$A0,$20 C&.'.' | |
329 L0A38 fcb $F8,$39,$86,$F0,$97,$0F,$20,$D9 x9.p.. Y | |
330 L0A40 fcb $DC,$03,$C3,$00,$01,$DD,$03,$26 \.C..].& | |
331 L0A48 fcb $02,$0C,$02,$16,$FC,$A7,$DC,$03 .....'\. | |
332 L0A50 fcb $26,$06,$0D,$02,$10,$27,$FC,$B3 &....'.3 | |
333 L0A58 fcb $83,$00,$01,$DD,$03,$10,$83,$FF ...].... | |
334 L0A60 fcb $FF,$26,$E8,$0A,$02,$20,$E4,$17 .&h.. d. | |
335 L0A68 fcb $FD,$25,$30,$8D,$F5,$D5,$17,$FC .%0.uU.. | |
336 L0A70 fcb $E8,$10,$8E,$00,$07,$8D,$12,$25 h......% | |
337 L0A78 fcb $0B,$DC,$47,$DD,$03,$96,$46,$97 .\G]..F. | |
338 L0A80 fcb $02,$16,$FC,$71,$17,$0A,$AE,$20 ...q... | |
339 L0A88 fcb $DE,$34,$20,$0F,$1A,$03,$1A,$17 ^4 ..... | |
340 L0A90 fcb $06,$63,$35,$20,$30,$C9,$01,$D6 .c5 0I.V | |
341 L0A98 fcb $17,$FC,$EB,$0F,$1A,$17,$06,$55 ..k....U | |
342 L0AA0 fcb $31,$3F,$27,$4A,$1F,$20,$A6,$80 1?'J. &. | |
343 L0AA8 fcb $8D,$49,$25,$3F,$5A,$26,$F7,$10 .I%?Z&w. | |
344 L0AB0 fcb $9F,$45,$86,$30,$E6,$82,$31,$3F .E.0f.1? | |
345 L0AB8 fcb $27,$04,$A6,$82,$31,$3F,$8D,$49 '.&.1?.I | |
346 L0AC0 fcb $34,$04,$10,$8C,$00,$00,$26,$EA 4.....&j | |
347 L0AC8 fcb $D6,$46,$5C,$54,$4F,$30,$C8,$45 VF\TO0HE | |
348 L0AD0 fcb $C1,$04,$27,$0E,$A7,$80,$C1,$03 A.'.'.A. | |
349 L0AD8 fcb $27,$08,$A7,$80,$C1,$02,$27,$02 '.'.A.'. | |
350 L0AE0 fcb $A7,$80,$35,$02,$A7,$80,$5A,$26 '.5.'.Z& | |
351 L0AE8 fcb $F9,$5F,$39,$17,$0A,$47,$32,$62 y_9..G2b | |
1725
93328dc6e3f4
ded: Rodney's enhancement for the 'S' command to reload same LSN if none typed.
boisy
parents:
968
diff
changeset
|
352 L0AF0 fcb $16,$FC,$02,$81,$30,$25,$10,$81 ....0%.. |
968 | 353 L0AF8 fcb $39,$23,$0A,$84,$5F,$81,$46,$22 9#.._.F" |
354 L0B00 fcb $06,$81,$41,$25,$02,$4F,$39,$43 ..A%.O9C | |
355 L0B08 fcb $39,$8D,$0D,$34,$04,$1F,$89,$8D 9..4.... | |
356 L0B10 fcb $07,$58,$58,$58,$58,$EA,$E0,$39 .XXXXj`9 | |
357 L0B18 fcb $C0,$30,$C1,$09,$23,$04,$C4,$5F @0A.#.D_ | |
358 L0B20 fcb $C0,$07,$39,$0F,$1A,$03,$1A,$17 @.9..... | |
359 L0B28 fcb $05,$CB,$17,$FC,$62,$17,$FC,$80 .K..b... | |
360 L0B30 fcb $30,$8D,$F5,$A7,$17,$FC,$22,$0D 0.u'..". | |
361 L0B38 fcb $17,$26,$46,$30,$8D,$F5,$A0,$17 .&F0.u . | |
362 L0B40 fcb $FC,$17,$10,$8E,$00,$03,$8D,$1A ........ | |
363 L0B48 fcb $8D,$4C,$25,$2D,$30,$C9,$00,$D6 .L%-0I.V | |
364 L0B50 fcb $9F,$12,$5F,$A7,$80,$5A,$26,$FB .._'.Z&. | |
365 L0B58 fcb $0F,$1A,$17,$05,$98,$0C,$2D,$16 ......-. | |
366 L0B60 fcb $FB,$A6,$4F,$30,$C9,$01,$D6,$10 .&O0I.V. | |
367 L0B68 fcb $3F,$8B,$25,$01,$39,$C1,$02,$10 ?.%.9A.. | |
368 L0B70 fcb $26,$01,$43,$03,$17,$32,$62,$20 &.C..2b | |
369 L0B78 fcb $AA,$0F,$1A,$17,$05,$77,$16,$FB *....w.. | |
370 L0B80 fcb $8A,$30,$8D,$F5,$60,$17,$FB,$D1 .0.u`..Q | |
371 L0B88 fcb $10,$8E,$00,$02,$8D,$D4,$A6,$84 .....T&. | |
372 L0B90 fcb $81,$20,$25,$E5,$20,$B6,$8D,$12 . %e 6.. | |
373 L0B98 fcb $25,$2F,$1F,$89,$8D,$0C,$25,$29 %/....%) | |
374 L0BA0 fcb $58,$58,$58,$58,$34,$04,$AA,$E0 XXXX4.*` | |
375 L0BA8 fcb $20,$1A,$8D,$04,$25,$1B,$20,$1A ...%. . | |
376 L0BB0 fcb $A6,$80,$81,$30,$25,$11,$81,$39 &..0%..9 | |
377 L0BB8 fcb $23,$0A,$84,$5F,$81,$41,$25,$07 #.._.A%. | |
378 L0BC0 fcb $81,$46,$22,$03,$1C,$FE,$39,$1A .F"...9. | |
379 L0BC8 fcb $01,$39,$80,$30,$81,$09,$23,$02 .9.0..#. | |
380 L0BD0 fcb $80,$07,$20,$F0,$0D,$2E,$10,$26 .. p...& | |
381 L0BD8 fcb $FB,$31,$8D,$23,$10,$26,$FB,$2B .1.#.&.+ | |
382 L0BE0 fcb $17,$FB,$AC,$17,$FB,$CA,$17,$FB ..,..J.. | |
383 L0BE8 fcb $A6,$30,$8D,$F5,$12,$17,$FB,$69 &0.u...i | |
384 L0BF0 fcb $17,$FB,$FE,$96,$00,$17,$00,$92 ........ | |
385 L0BF8 fcb $0D,$2E,$27,$78,$0F,$2D,$39,$17 ..'x.-9. | |
386 L0C00 fcb $FB,$8D,$0F,$1A,$03,$1A,$17,$04 ........ | |
387 L0C08 fcb $EC,$30,$8D,$F4,$DE,$17,$FB,$49 l0.t^..I | |
388 L0C10 fcb $17,$FB,$9D,$30,$C9,$01,$D6,$17 ...0I.V. | |
389 L0C18 fcb $FB,$CE,$0F,$1A,$17,$04,$D6,$A6 .N....V& | |
390 L0C20 fcb $84,$84,$5F,$81,$59,$39,$0D,$01 .._.Y9.. | |
391 L0C28 fcb $26,$4A,$0F,$1A,$03,$1A,$17,$04 &J...... | |
392 L0C30 fcb $C4,$17,$FB,$5B,$30,$8D,$F4,$D8 D..[0.tX | |
393 L0C38 fcb $17,$FB,$1E,$17,$FB,$72,$30,$C9 .....r0I | |
394 L0C40 fcb $01,$D6,$10,$8E,$00,$1E,$17,$FB .V...... | |
395 L0C48 fcb $3D,$0F,$1A,$17,$04,$A7,$10,$8C =....'.. | |
396 L0C50 fcb $00,$01,$27,$20,$34,$10,$31,$C8 ..' 4.1H | |
397 L0C58 fcb $6B,$A6,$80,$A7,$A0,$81,$20,$22 k&.' . " | |
398 L0C60 fcb $F8,$86,$0D,$A7,$3F,$35,$10,$86 x..'?5.. | |
399 L0C68 fcb $02,$C6,$0B,$10,$3F,$83,$25,$46 .F..?.%F | |
400 L0C70 fcb $97,$01,$8D,$03,$16,$FA,$94,$CC .....z.L | |
401 L0C78 fcb $30,$21,$17,$FB,$15,$30,$8D,$F4 0!...0.t | |
402 L0C80 fcb $8F,$17,$FA,$D5,$30,$C8,$6B,$16 ..zU0Hk. | |
403 L0C88 fcb $FA,$EA,$30,$C9,$00,$D6,$10,$9E zj0I.V.. | |
404 L0C90 fcb $1F,$10,$3F,$8A,$25,$20,$39,$96 ..?.% 9. | |
405 L0C98 fcb $01,$27,$D9,$10,$3F,$8F,$25,$16 .'Y.?.%. | |
406 L0CA0 fcb $CC,$30,$21,$17,$FA,$EC,$17,$FB L0!.zl.. | |
407 L0CA8 fcb $07,$0F,$01,$20,$C7,$96,$01,$27 ... G..' | |
408 L0CB0 fcb $FA,$8D,$D7,$16,$FD,$8A,$34,$04 z.W...4. | |
409 L0CB8 fcb $0F,$8B,$DC,$05,$DD,$02,$96,$07 ..\.]... | |
410 L0CC0 fcb $97,$04,$35,$04,$10,$DE,$1D,$C1 ..5..^.A | |
411 L0CC8 fcb $02,$27,$0C,$C1,$03,$26,$04,$0F .'.A.&.. | |
412 L0CD0 fcb $2D,$20,$04,$C1,$D3,$26,$03,$16 - .AS&.. | |
413 L0CD8 fcb $FE,$9F,$C1,$CD,$26,$14,$0D,$4D ..AM&..M | |
414 L0CE0 fcb $26,$10,$8D,$1D,$30,$8D,$F3,$25 &...0.s% | |
415 L0CE8 fcb $10,$8E,$00,$01,$17,$FA,$89,$16 .....z.. | |
416 L0CF0 fcb $FA,$16,$34,$04,$17,$FA,$98,$17 z.4..z.. | |
417 L0CF8 fcb $FA,$B6,$35,$04,$8D,$03,$16,$FA z65....z | |
418 L0D00 fcb $0A,$86,$02,$10,$3F,$0F,$0F,$1A ....?... | |
419 L0D08 fcb $17,$03,$EA,$30,$C9,$01,$D6,$16 ..j0I.V. | |
420 L0D10 fcb $FA,$D6,$86,$02,$30,$8D,$F8,$94 zV..0.x. | |
421 L0D18 fcb $10,$8E,$00,$78,$17,$FA,$5B,$5F ...x.z[_ | |
422 L0D20 fcb $20,$12,$17,$FE,$DA,$10,$26,$F9 ...Z.&y | |
423 L0D28 fcb $E2,$17,$FA,$8E,$96,$19,$97,$1A b.z..... | |
424 L0D30 fcb $17,$03,$C2,$5F,$10,$3F,$06,$17 ..B_.?.. | |
425 L0D38 fcb $FA,$55,$30,$8D,$F3,$5D,$17,$FA zU0.s].z | |
426 L0D40 fcb $18,$30,$C9,$00,$D6,$9F,$14,$86 .0I.V... | |
427 L0D48 fcb $01,$97,$16,$86,$23,$97,$0F,$86 ....#... | |
428 L0D50 fcb $25,$97,$0E,$86,$58,$97,$10,$17 %...X... | |
429 L0D58 fcb $FA,$42,$17,$00,$EA,$96,$0E,$D6 zB..j..V | |
430 L0D60 fcb $0F,$0D,$17,$27,$02,$96,$10,$0D ...'.... | |
431 L0D68 fcb $8C,$10,$27,$00,$CA,$9E,$03,$8C ..'.J... | |
432 L0D70 fcb $00,$01,$10,$25,$00,$C1,$9C,$8F ...%.A.. | |
433 L0D78 fcb $10,$22,$00,$BB,$34,$06,$9E,$91 .".;4... | |
434 L0D80 fcb $D6,$93,$9F,$97,$D7,$99,$9E,$94 V...W... | |
435 L0D88 fcb $D6,$96,$9F,$9A,$D7,$9C,$4F,$D6 V...W.OV | |
436 L0D90 fcb $0F,$C0,$23,$86,$10,$3D,$34,$06 .@#..=4. | |
437 L0D98 fcb $4F,$D6,$0E,$C0,$25,$27,$0A,$1F OV.@%'.. | |
438 L0DA0 fcb $01,$CC,$00,$03,$17,$09,$81,$1F .L...... | |
439 L0DA8 fcb $10,$E3,$E1,$9E,$03,$9C,$8F,$25 .ca....% | |
440 L0DB0 fcb $12,$34,$06,$DC,$8D,$4F,$1F,$01 .4.\.O.. | |
441 L0DB8 fcb $35,$06,$30,$1F,$34,$10,$10,$A3 5.0.4..# | |
442 L0DC0 fcb $E1,$22,$1A,$8E,$00,$08,$17,$09 a"...... | |
443 L0DC8 fcb $35,$1F,$30,$D3,$98,$DD,$98,$C3 5.0S.].C | |
444 L0DD0 fcb $00,$07,$10,$93,$95,$23,$02,$DC .....#.\ | |
445 L0DD8 fcb $95,$DD,$9B,$20,$06,$0F,$9A,$0F .]. .... | |
446 L0DE0 fcb $9B,$0F,$9C,$DE,$1B,$17,$F9,$BE ...^..y> | |
447 L0DE8 fcb $0D,$9C,$26,$13,$0D,$9B,$26,$0F ..&...&. | |
448 L0DF0 fcb $0D,$9A,$26,$0B,$CC,$20,$34,$17 ..&.L 4. | |
449 L0DF8 fcb $F9,$98,$17,$F9,$B3,$20,$33,$17 y..y3 3. | |
450 L0E00 fcb $09,$46,$CC,$49,$34,$17,$F9,$8A .FLI4.y. | |
451 L0E08 fcb $30,$8D,$F4,$1A,$17,$F9,$4A,$30 0.t..yJ0 | |
452 L0E10 fcb $C9,$00,$9D,$A6,$D8,$14,$C6,$08 I..&X.F. | |
453 L0E18 fcb $34,$12,$68,$E4,$25,$04,$86,$30 4.hd%..0 | |
454 L0E20 fcb $20,$02,$86,$31,$A7,$80,$5A,$26 ..1'.Z& | |
455 L0E28 fcb $F1,$35,$12,$10,$8E,$00,$08,$17 q5...... | |
456 L0E30 fcb $F9,$46,$17,$F9,$67,$35,$06,$17 yF.yg5.. | |
457 L0E38 fcb $F9,$58,$30,$C9,$01,$D6,$0D,$17 yX0I.V.. | |
458 L0E40 fcb $10,$26,$00,$F4,$16,$00,$B7,$96 .&.t..7. | |
459 L0E48 fcb $0E,$D6,$0F,$17,$F9,$44,$31,$C9 .V..yD1I | |
460 L0E50 fcb $01,$D6,$A6,$D8,$14,$34,$02,$17 .V&X.4.. | |
461 L0E58 fcb $FB,$03,$30,$3E,$10,$8E,$00,$02 ..0>.... | |
462 L0E60 fcb $86,$01,$17,$F9,$15,$96,$10,$D6 ...y...V | |
463 L0E68 fcb $0F,$17,$F9,$26,$35,$02,$84,$7F ..y&5.. | |
464 L0E70 fcb $81,$20,$24,$02,$86,$2E,$30,$C9 . $...0I | |
465 L0E78 fcb $01,$D6,$A7,$84,$10,$8E,$00,$01 .V'..... | |
466 L0E80 fcb $16,$F8,$F5,$34,$14,$4F,$C6,$01 .xu4.OF. | |
467 L0E88 fcb $10,$3F,$8D,$24,$49,$C1,$F6,$26 .?.$IAv& | |
468 L0E90 fcb $2E,$8E,$00,$01,$10,$3F,$0A,$25 .....?.% | |
469 L0E98 fcb $26,$0A,$89,$96,$89,$98,$8A,$84 &....... | |
470 L0EA0 fcb $40,$27,$12,$03,$8A,$27,$04,$8D @'...'.. | |
471 L0EA8 fcb $1E,$20,$0A,$30,$8D,$F1,$6A,$10 . .0.qj. | |
472 L0EB0 fcb $8E,$00,$02,$8D,$1A,$D6,$8B,$C1 .....V.A | |
473 L0EB8 fcb $02,$27,$04,$C1,$03,$26,$C6,$E7 .'.A.&Fg | |
474 L0EC0 fcb $E4,$8D,$04,$35,$14,$20,$1E,$30 d..5. .0 | |
475 L0EC8 fcb $8D,$F1,$4B,$10,$8E,$00,$02,$86 .qK..... | |
476 L0ED0 fcb $01,$10,$3F,$8A,$5F,$39,$8D,$EF ..?._9.o | |
477 L0ED8 fcb $35,$14,$10,$8E,$00,$01,$4F,$10 5.....O. | |
478 L0EE0 fcb $3F,$89,$25,$01,$39,$32,$62,$0F ?.%.92b. | |
479 L0EE8 fcb $8B,$C1,$02,$27,$0C,$34,$04,$17 .A.'.4.. | |
480 L0EF0 fcb $01,$28,$0F,$0F,$35,$04,$16,$FD .(..5... | |
481 L0EF8 fcb $BD,$03,$17,$16,$FE,$5F,$8D,$83 =...._.. | |
482 L0F00 fcb $8D,$1C,$25,$46,$17,$F8,$71,$E6 ..%F.xqf | |
483 L0F08 fcb $84,$17,$FF,$77,$8D,$10,$25,$3A ...w..%: | |
484 L0F10 fcb $1E,$89,$17,$FB,$F4,$E7,$D8,$14 ....tgX. | |
485 L0F18 fcb $86,$01,$97,$2D,$20,$57,$A6,$84 ...- W&. | |
486 L0F20 fcb $81,$30,$25,$11,$81,$39,$23,$0A .0%..9#. | |
487 L0F28 fcb $84,$5F,$81,$46,$22,$07,$81,$41 ._.F"..A | |
488 L0F30 fcb $25,$03,$1C,$FE,$39,$1A,$01,$39 %...9..9 | |
489 L0F38 fcb $17,$FF,$48,$A6,$84,$81,$20,$25 ..H&.. % | |
490 L0F40 fcb $09,$A7,$D8,$14,$86,$01,$97,$2D .'X....- | |
491 L0F48 fcb $20,$2B,$81,$09,$27,$27,$81,$08 +..''.. | |
492 L0F50 fcb $27,$61,$81,$0C,$10,$27,$00,$C8 'a...'.H | |
493 L0F58 fcb $81,$0A,$10,$27,$01,$18,$81,$0D ...'.... | |
494 L0F60 fcb $10,$26,$FD,$F9,$17,$00,$B3,$CC .&.y..3L | |
495 L0F68 fcb $49,$34,$17,$F8,$25,$17,$F8,$40 I4.x%.x@ | |
496 L0F70 fcb $0F,$0F,$16,$F7,$96,$17,$00,$A2 ...w..." | |
497 L0F78 fcb $0D,$20,$27,$08,$96,$16,$91,$20 . '.... | |
498 L0F80 fcb $10,$27,$FD,$BD,$DC,$14,$C3,$00 .'.=\.C. | |
499 L0F88 fcb $01,$DD,$14,$0C,$16,$0C,$10,$96 .]...... | |
500 L0F90 fcb $10,$81,$68,$24,$09,$96,$0E,$8B ..h$.... | |
501 L0F98 fcb $03,$97,$0E,$16,$FD,$B9,$0C,$0F .....9.. | |
502 L0FA0 fcb $96,$0F,$81,$32,$10,$22,$FD,$99 ...2.".. | |
503 L0FA8 fcb $86,$25,$97,$0E,$86,$58,$97,$10 .%...X.. | |
504 L0FB0 fcb $16,$FD,$A4,$8D,$65,$DC,$14,$83 ..$.e\.. | |
505 L0FB8 fcb $00,$01,$DD,$14,$0A,$16,$0A,$10 ..]..... | |
506 L0FC0 fcb $96,$10,$81,$58,$25,$09,$96,$0E ...X%... | |
507 L0FC8 fcb $80,$03,$97,$0E,$16,$FD,$88,$0A ........ | |
508 L0FD0 fcb $0F,$86,$52,$97,$0E,$86,$67,$97 ..R...g. | |
509 L0FD8 fcb $10,$96,$0F,$81,$23,$25,$03,$16 ....#%.. | |
510 L0FE0 fcb $FD,$75,$9E,$14,$D6,$20,$27,$25 .u..V '% | |
511 L0FE8 fcb $D7,$16,$4F,$30,$8B,$5A,$34,$04 W.O0.Z4. | |
512 L0FF0 fcb $54,$54,$54,$54,$CB,$23,$D7,$0F TTTTK#W. | |
513 L0FF8 fcb $A6,$E0,$84,$0F,$34,$02,$8B,$58 &`..4..X | |
514 L1000 fcb $97,$10,$35,$02,$C6,$03,$3D,$CB ..5.F.=K | |
515 L1008 fcb $25,$D7,$0E,$20,$08,$86,$32,$97 %W. ..2. | |
516 L1010 fcb $0F,$30,$89,$01,$00,$9F,$14,$16 .0...... | |
517 L1018 fcb $FD,$3D,$17,$F7,$89,$16,$FE,$27 .=.w...' | |
518 L1020 fcb $8D,$F8,$D6,$20,$27,$06,$96,$0F .xV '... | |
519 L1028 fcb $81,$23,$27,$23,$DC,$14,$83,$00 .#'#\... | |
520 L1030 fcb $10,$DD,$14,$D6,$16,$C0,$10,$D7 .].V.@.W | |
521 L1038 fcb $16,$0A,$0F,$96,$0F,$81,$23,$24 ......#$ | |
522 L1040 fcb $0B,$86,$32,$97,$0F,$DC,$14,$C3 ..2..\.C | |
523 L1048 fcb $01,$00,$DD,$14,$16,$FD,$08,$C4 ..]....D | |
524 L1050 fcb $F0,$96,$20,$84,$0F,$91,$16,$24 p. ....$ | |
525 L1058 fcb $02,$C0,$10,$4F,$34,$06,$DC,$14 .@.O4.\. | |
526 L1060 fcb $E3,$E0,$DD,$14,$D6,$16,$EB,$E4 c`].V.kd | |
527 L1068 fcb $D7,$16,$35,$04,$54,$54,$54,$54 W.5.TTTT | |
528 L1070 fcb $CB,$23,$D7,$0F,$20,$D6,$8D,$A2 K#W. V." | |
529 L1078 fcb $D6,$20,$27,$06,$D0,$16,$C1,$10 V '.P.A. | |
530 L1080 fcb $25,$25,$DC,$14,$C3,$00,$10,$DD %%\.C..] | |
531 L1088 fcb $14,$96,$16,$8B,$10,$97,$16,$0C ........ | |
532 L1090 fcb $0F,$96,$0F,$81,$32,$10,$23,$FC ....2.#. | |
533 L1098 fcb $BE,$DC,$14,$83,$01,$00,$DD,$14 >\....]. | |
534 L10A0 fcb $86,$23,$97,$0F,$16,$FC,$B0,$4F .#....0O | |
535 L10A8 fcb $D6,$16,$5A,$C4,$F0,$34,$06,$DC V.ZDp4.\ | |
536 L10B0 fcb $14,$A3,$E0,$DD,$14,$D6,$16,$E0 .#`].V.` | |
537 L10B8 fcb $E0,$D7,$16,$20,$E3,$17,$F6,$FA `W. c.vz | |
538 L10C0 fcb $96,$19,$97,$1A,$8D,$2F,$30,$8D ...../0. | |
539 L10C8 fcb $F0,$6C,$10,$8E,$00,$10,$33,$C9 pl....3I | |
540 L10D0 fcb $01,$D6,$86,$0D,$A7,$C4,$CC,$00 .V..'DL. | |
541 L10D8 fcb $00,$10,$3F,$03,$10,$25,$FB,$D6 ..?..%.V | |
542 L10E0 fcb $10,$3F,$04,$DE,$1B,$30,$C9,$00 .?.^.0I. | |
543 L10E8 fcb $D6,$9F,$12,$0F,$1A,$8D,$06,$17 V....... | |
544 L10F0 fcb $F6,$C8,$16,$F6,$13,$34,$10,$32 vH.v.4.2 | |
545 L10F8 fcb $E8,$E0,$30,$E4,$4F,$5F,$10,$3F h`0dO_.? | |
546 L1100 fcb $8D,$10,$25,$FB,$B1,$96,$1A,$A7 ..%.1..' | |
547 L1108 fcb $04,$4F,$10,$3F,$8E,$10,$25,$FB .O.?..%. | |
548 L1110 fcb $A5,$32,$E8,$20,$35,$90,$17,$F6 %2h 5..v | |
549 L1118 fcb $76,$30,$8D,$EF,$FC,$17,$F6,$39 v0.o..v9 | |
550 L1120 fcb $CE,$00,$00,$8E,$00,$00,$9F,$25 N......% | |
551 L1128 fcb $96,$00,$10,$3F,$88,$10,$25,$FB ...?..%. | |
552 L1130 fcb $85,$DE,$1B,$CC,$FF,$FF,$DD,$29 .^.L..]) | |
553 L1138 fcb $D7,$2B,$30,$C9,$01,$D6,$10,$8E W+0I.V.. | |
554 L1140 fcb $00,$08,$96,$00,$10,$3F,$89,$10 .....?.. | |
555 L1148 fcb $25,$FB,$6B,$10,$8C,$00,$08,$10 %.k..... | |
556 L1150 fcb $26,$00,$BB,$EC,$84,$81,$87,$10 &.;l.... | |
557 L1158 fcb $26,$00,$B3,$C1,$CD,$10,$26,$00 &.3AM.&. | |
558 L1160 fcb $AD,$EC,$02,$10,$83,$00,$0F,$10 -l...... | |
559 L1168 fcb $23,$00,$A3,$83,$00,$03,$DD,$21 #.#...]! | |
560 L1170 fcb $D3,$25,$DD,$25,$4F,$C6,$08,$A8 S%]%OF.( | |
561 L1178 fcb $80,$5A,$26,$FB,$43,$A7,$84,$10 .Z&.C'.. | |
562 L1180 fcb $8E,$00,$01,$96,$00,$10,$3F,$8A ......?. | |
563 L1188 fcb $10,$25,$FB,$2A,$DC,$21,$83,$00 .%.*\!.. | |
564 L1190 fcb $09,$DD,$21,$30,$C9,$01,$D6,$10 .]!0I.V. | |
565 L1198 fcb $8E,$00,$09,$8D,$64,$96,$00,$10 ....d... | |
566 L11A0 fcb $8E,$00,$78,$10,$9C,$21,$23,$03 ..x..!#. | |
567 L11A8 fcb $10,$9E,$21,$10,$3F,$89,$25,$5E ..!.?.%^ | |
568 L11B0 fcb $10,$9F,$27,$8D,$4C,$DC,$21,$93 ..'.L\!. | |
569 L11B8 fcb $27,$DD,$21,$26,$E0,$96,$00,$C6 ']!&`..F | |
570 L11C0 fcb $05,$10,$3F,$8D,$1F,$30,$DE,$1B ..?..0^. | |
571 L11C8 fcb $10,$93,$25,$26,$41,$03,$29,$03 ..%&A.). | |
572 L11D0 fcb $2A,$03,$2B,$30,$C8,$29,$10,$8E *.+0H).. | |
573 L11D8 fcb $00,$03,$96,$00,$10,$3F,$8A,$10 .....?.. | |
574 L11E0 fcb $25,$FA,$D3,$CC,$00,$03,$D3,$25 %zSL..S% | |
575 L11E8 fcb $DD,$25,$C6,$06,$96,$00,$10,$3F ]%F....? | |
576 L11F0 fcb $8D,$10,$24,$FF,$3E,$C1,$D3,$10 ..$.>AS. | |
577 L11F8 fcb $26,$FA,$BB,$17,$F5,$C6,$16,$F5 &z;.uF.u | |
578 L1200 fcb $07,$33,$C8,$29,$10,$3F,$17,$10 .3H).?.. | |
579 L1208 fcb $25,$FA,$AB,$DE,$1B,$39,$CC,$20 %z+^.9L | |
580 L1210 fcb $36,$17,$F5,$7E,$30,$8D,$EF,$0D 6.u~0.o. | |
581 L1218 fcb $17,$F5,$3E,$C6,$CD,$17,$FA,$E1 .u>FM.za | |
582 L1220 fcb $16,$F4,$E8,$0D,$4D,$10,$26,$F4 .th.M.&t | |
583 L1228 fcb $E2,$CC,$00,$00,$DD,$25,$DD,$23 bL..]%]# | |
584 L1230 fcb $0F,$1A,$03,$1A,$17,$FE,$BE,$17 ......>. | |
585 L1238 fcb $F5,$55,$17,$F5,$73,$30,$8D,$EE uU.us0.n | |
586 L1240 fcb $FA,$17,$F5,$15,$30,$C8,$4D,$10 z.u.0HM. | |
587 L1248 fcb $8E,$00,$1E,$17,$F5,$38,$0F,$1A ....u8.. | |
588 L1250 fcb $17,$FE,$A2,$10,$8C,$00,$01,$10 .."..... | |
589 L1258 fcb $26,$00,$B1,$17,$F5,$5C,$0F,$4D &.1.u\.M | |
590 L1260 fcb $30,$8D,$EE,$ED,$17,$F5,$0D,$DC 0.nm.u.\ | |
591 L1268 fcb $23,$D3,$25,$DD,$25,$1F,$03,$8E #S%]%... | |
592 L1270 fcb $00,$00,$96,$00,$10,$3F,$88,$25 .....?.% | |
593 L1278 fcb $7F,$DE,$1B,$30,$C9,$01,$D6,$10 ^.0I.V. | |
594 L1280 fcb $8E,$00,$06,$10,$3F,$89,$25,$70 ....?.%p | |
595 L1288 fcb $EC,$81,$81,$87,$26,$68,$C1,$CD l...&hAM | |
596 L1290 fcb $26,$64,$31,$C9,$01,$D6,$EC,$81 &d1I.Vl. | |
597 L1298 fcb $DD,$23,$EC,$81,$34,$06,$DC,$25 ]#l.4.\% | |
598 L12A0 fcb $8D,$44,$86,$20,$A7,$A0,$DC,$23 .D. ' \# | |
599 L12A8 fcb $8D,$3C,$86,$20,$A7,$A0,$DC,$25 .<. ' \% | |
600 L12B0 fcb $E3,$E1,$1F,$03,$8E,$00,$00,$96 ca...... | |
601 L12B8 fcb $00,$10,$3F,$88,$10,$25,$F9,$F6 ..?..%yv | |
602 L12C0 fcb $DE,$1B,$1F,$21,$10,$8E,$00,$1D ^..!.... | |
603 L12C8 fcb $96,$00,$10,$3F,$89,$10,$25,$F9 ...?..%y | |
604 L12D0 fcb $E5,$A6,$80,$2A,$FC,$84,$7F,$A7 e&.*..' | |
605 L12D8 fcb $1F,$86,$0D,$A7,$84,$30,$C9,$01 ...'.0I. | |
606 L12E0 fcb $D6,$17,$F4,$90,$20,$81,$17,$F6 V.t. ..v | |
607 L12E8 fcb $74,$1F,$98,$16,$F6,$6F,$C1,$D3 t...voAS | |
608 L12F0 fcb $26,$06,$C6,$DD,$20,$02,$C6,$CD &.F] .FM | |
609 L12F8 fcb $0F,$4D,$C1,$D3,$10,$26,$F9,$B6 .MAS.&y6 | |
610 L1300 fcb $17,$F4,$E5,$30,$C9,$00,$D6,$9F .te0I.V. | |
611 L1308 fcb $12,$16,$FD,$E3,$10,$3F,$10,$10 ...c.?.. | |
612 L1310 fcb $25,$F9,$A3,$D7,$2C,$5A,$A6,$85 %y#W,Z&. | |
613 L1318 fcb $8A,$80,$A7,$85,$9F,$29,$CE,$00 ..'..)N. | |
614 L1320 fcb $00,$8E,$00,$00,$96,$00,$10,$3F .......? | |
615 L1328 fcb $88,$10,$25,$F9,$89,$DE,$1B,$30 ..%y.^.0 | |
616 L1330 fcb $C9,$01,$D6,$10,$8E,$00,$06,$10 I.V..... | |
617 L1338 fcb $3F,$89,$25,$B2,$EC,$81,$81,$87 ?.%2l... | |
618 L1340 fcb $26,$B4,$C1,$CD,$26,$B0,$EC,$81 &4AM&0l. | |
619 L1348 fcb $DD,$23,$EC,$84,$D3,$25,$1F,$03 ]#l.S%.. | |
620 L1350 fcb $8E,$00,$00,$96,$00,$10,$3F,$88 ......?. | |
621 L1358 fcb $25,$94,$DE,$1B,$30,$C9,$01,$D6 %.^.0I.V | |
622 L1360 fcb $10,$8E,$00,$1D,$10,$3F,$89,$25 .....?.% | |
623 L1368 fcb $85,$1F,$12,$9E,$29,$D6,$2C,$10 ....)V,. | |
624 L1370 fcb $3F,$11,$24,$0A,$DC,$23,$D3,$25 ?.$.\#S% | |
625 L1378 fcb $DD,$25,$1F,$03,$20,$A3,$86,$0D ]%.. #.. | |
626 L1380 fcb $A7,$85,$5A,$A6,$85,$84,$7F,$A7 '.Z&..' | |
627 L1388 fcb $85,$DC,$25,$DD,$08,$CC,$00,$06 .\%].L.. | |
628 L1390 fcb $30,$42,$A7,$80,$5A,$26,$FB,$16 0B'.Z&.. | |
629 L1398 fcb $F3,$5B,$CC,$30,$20,$17,$F3,$F2 s[L0 .sr | |
630 L13A0 fcb $30,$8D,$ED,$CB,$17,$F3,$B2,$30 0.mK.s20 | |
631 L13A8 fcb $C8,$4D,$17,$F3,$C7,$CC,$58,$20 HM.sGLX | |
632 L13B0 fcb $17,$F3,$DF,$30,$8D,$ED,$C1,$17 .s_0.mA. | |
633 L13B8 fcb $F3,$9F,$31,$C9,$01,$D6,$DC,$08 s.1I.V\. | |
634 L13C0 fcb $17,$FF,$23,$86,$0D,$A7,$A4,$16 ..#..'$. | |
635 L13C8 fcb $F3,$AE,$0D,$4D,$10,$27,$F3,$3B s..M.'s; | |
636 L13D0 fcb $CC,$00,$08,$30,$42,$A7,$80,$5A L..0B'.Z | |
637 L13D8 fcb $26,$FB,$CC,$30,$20,$17,$F3,$B2 &.L0 .s2 | |
638 L13E0 fcb $17,$F3,$CD,$17,$F3,$CA,$0F,$4D .sM.sJ.M | |
639 L13E8 fcb $16,$F3,$0A,$0D,$2E,$27,$0E,$0F .s...'.. | |
640 L13F0 fcb $2E,$CC,$59,$33,$17,$F3,$9B,$17 .LY3.s.. | |
641 L13F8 fcb $F3,$B6,$16,$F3,$0E,$17,$F7,$FF s6.s..w. | |
642 L1400 fcb $26,$F8,$03,$2E,$CC,$59,$33,$17 &x..LY3. | |
643 L1408 fcb $F3,$88,$30,$8D,$ED,$73,$17,$F3 s.0.ms.s | |
644 L1410 fcb $48,$20,$E7,$17,$F3,$A4,$30,$8D H g.s$0. | |
645 L1418 fcb $EE,$24,$10,$8E,$03,$6E,$17,$F3 n$...n.s | |
646 L1420 fcb $59,$30,$C9,$01,$D6,$17,$F3,$C0 Y0I.V.s@ | |
647 L1428 fcb $16,$FC,$C4,$0F,$1A,$03,$1A,$17 ..D..... | |
648 L1430 fcb $FC,$C3,$17,$F3,$5A,$17,$F3,$78 .C.sZ.sx | |
649 L1438 fcb $0D,$2F,$26,$35,$30,$8D,$ED,$54 ./&50.mT | |
650 L1440 fcb $17,$F3,$16,$10,$8E,$00,$21,$17 .s....!. | |
651 L1448 fcb $00,$CA,$10,$8C,$00,$01,$10,$27 .J.....' | |
652 L1450 fcb $01,$07,$31,$3F,$1F,$20,$54,$10 ..1?. T. | |
653 L1458 fcb $25,$00,$D3,$D7,$30,$33,$C8,$31 %.SW03H1 | |
654 L1460 fcb $17,$F7,$33,$10,$25,$00,$C7,$A7 .w3.%.G' | |
655 L1468 fcb $C0,$31,$3E,$26,$F3,$DE,$1B,$20 @1>&s^. | |
656 L1470 fcb $25,$30,$8D,$ED,$31,$17,$F2,$E1 %0.m1.ra | |
657 L1478 fcb $10,$8E,$00,$11,$17,$00,$95,$10 ........ | |
658 L1480 fcb $8C,$00,$01,$10,$27,$00,$D2,$1F ....'.R. | |
659 L1488 fcb $20,$5A,$D7,$30,$31,$C8,$31,$A6 ZW01H1& | |
660 L1490 fcb $80,$A7,$A0,$5A,$26,$F9,$0F,$1A .' Z&y.. | |
661 L1498 fcb $17,$FC,$5A,$30,$C9,$00,$D6,$D6 ..Z0I.VV | |
662 L14A0 fcb $20,$31,$C8,$31,$A6,$A4,$A8,$80 1H1&$(. | |
663 L14A8 fcb $10,$27,$00,$B0,$0D,$2F,$27,$06 .'.0./'. | |
664 L14B0 fcb $85,$5F,$10,$27,$00,$A6,$5A,$26 ._.'.&Z& | |
665 L14B8 fcb $EB,$34,$36,$4F,$C6,$01,$10,$3F k46OF..? | |
666 L14C0 fcb $8D,$25,$0D,$30,$C9,$01,$D6,$17 .%.0I.V. | |
667 L14C8 fcb $F3,$1E,$A6,$84,$81,$05,$27,$76 s.&...'v | |
668 L14D0 fcb $35,$36,$8D,$02,$20,$C9,$0D,$4D 56.. I.M | |
669 L14D8 fcb $27,$09,$DC,$23,$83,$00,$01,$91 '.\#.... | |
670 L14E0 fcb $04,$27,$63,$DC,$03,$C3,$00,$01 .'c\.C.. | |
671 L14E8 fcb $DD,$03,$26,$02,$0C,$02,$17,$F3 ].&....s | |
672 L14F0 fcb $00,$30,$C9,$00,$D6,$9F,$12,$0D .0I.V... | |
673 L14F8 fcb $4D,$27,$0A,$DC,$23,$90,$04,$26 M'.\#..& | |
674 L1500 fcb $04,$1F,$02,$20,$04,$10,$8E,$01 ... .... | |
675 L1508 fcb $00,$96,$00,$10,$3F,$89,$25,$30 ....?.%0 | |
676 L1510 fcb $10,$9F,$1F,$39,$30,$C9,$01,$D6 ...90I.V | |
677 L1518 fcb $4F,$10,$3F,$8B,$25,$01,$39,$32 O.?.%.92 | |
678 L1520 fcb $62,$0F,$8B,$C1,$02,$10,$26,$F7 b..A..&w | |
679 L1528 fcb $8D,$03,$2F,$16,$FE,$FD,$DE,$1B ../...^. | |
680 L1530 fcb $8D,$03,$16,$FE,$F6,$30,$8D,$EC ....v0.l | |
681 L1538 fcb $F2,$10,$8E,$00,$01,$16,$F2,$38 r.....r8 | |
682 L1540 fcb $C1,$D3,$10,$26,$F7,$70,$10,$DE AS.&wp.^ | |
683 L1548 fcb $1D,$DC,$05,$DD,$02,$96,$07,$97 .\.].... | |
684 L1550 fcb $04,$17,$F2,$70,$10,$9F,$1F,$8D ..rp.... | |
685 L1558 fcb $DC,$16,$F6,$1D,$34,$04,$5A,$D7 \.v.4.ZW | |
686 L1560 fcb $44,$9F,$42,$D6,$30,$5A,$27,$2F D.BV0Z'/ | |
687 L1568 fcb $6A,$E4,$27,$1C,$31,$21,$A6,$A4 jd'.1!&$ | |
688 L1570 fcb $A8,$80,$27,$F1,$0D,$2F,$27,$04 (.'q./'. | |
689 L1578 fcb $85,$5F,$27,$E9,$32,$61,$9E,$42 ._'i2a.B | |
690 L1580 fcb $31,$C8,$31,$D6,$44,$16,$FF,$2F 1H1VD../ | |
691 L1588 fcb $32,$61,$34,$24,$17,$FF,$47,$35 2a4$..G5 | |
692 L1590 fcb $24,$96,$20,$34,$02,$20,$D5,$32 $. 4. U2 | |
693 L1598 fcb $61,$96,$04,$91,$07,$27,$21,$9C a....'!. | |
694 L15A0 fcb $42,$24,$15,$DC,$03,$83,$00,$01 B$.\.... | |
695 L15A8 fcb $DD,$03,$10,$83,$FF,$FF,$26,$02 ].....&. | |
696 L15B0 fcb $0A,$02,$17,$F2,$0F,$10,$9F,$1F ...r.... | |
697 L15B8 fcb $DC,$02,$DD,$05,$96,$04,$97,$07 \.]..... | |
698 L15C0 fcb $17,$F2,$5C,$DC,$42,$83,$00,$01 .r\\B... | |
699 L15C8 fcb $DD,$14,$93,$12,$34,$04,$C4,$0F ]...4.D. | |
700 L15D0 fcb $34,$04,$CB,$58,$D7,$10,$35,$04 4.KXW.5. | |
701 L15D8 fcb $86,$03,$3D,$CB,$25,$D7,$0E,$35 ..=K%W.5 | |
702 L15E0 fcb $04,$C4,$F0,$54,$54,$54,$54,$CB .DpTTTTK | |
703 L15E8 fcb $23,$D7,$0F,$17,$F1,$AE,$17,$F8 #W..q..x | |
704 L15F0 fcb $56,$17,$F1,$B2,$0F,$0F,$16,$FF V.q2.... | |
705 L15F8 fcb $60,$0D,$30,$10,$27,$F1,$0C,$17 `.0.'q.. | |
706 L1600 fcb $F1,$8D,$30,$8D,$EB,$B2,$17,$F1 q.0.k2.q | |
707 L1608 fcb $50,$9E,$42,$10,$27,$FE,$87,$16 P.B.'... | |
708 L1610 fcb $FF,$6E,$17,$F1,$7A,$30,$8D,$EB .n.qz0.k | |
709 L1618 fcb $AB,$17,$F1,$3D,$03,$18,$31,$C9 +.q=..1I | |
710 L1620 fcb $01,$D6,$DC,$49,$17,$F3,$36,$1F .V\I.s6. | |
711 L1628 fcb $98,$17,$F3,$31,$DC,$4B,$17,$F3 ..s1\K.s | |
712 L1630 fcb $2C,$0F,$18,$1F,$98,$17,$F3,$25 ,.....s% | |
713 L1638 fcb $CC,$20,$20,$ED,$A1,$ED,$A1,$30 L m!m!0 | |
714 L1640 fcb $C9,$01,$D6,$9F,$27,$1F,$20,$93 I.V.'. . | |
715 L1648 fcb $27,$1F,$02,$17,$F1,$2A,$30,$8D '...q*0. | |
716 L1650 fcb $EB,$87,$17,$F1,$04,$10,$8E,$00 k..q.... | |
717 L1658 fcb $09,$17,$F4,$2D,$25,$B4,$CC,$20 ..t-%4L | |
718 L1660 fcb $37,$17,$F1,$2E,$17,$F5,$9B,$10 7.q..u.. | |
719 L1668 fcb $26,$F0,$A0,$9E,$45,$DE,$47,$C6 &p .E^GF | |
720 L1670 fcb $02,$96,$00,$10,$3F,$8E,$10,$25 ....?..% | |
721 L1678 fcb $F6,$3C,$9F,$49,$DF,$4B,$DE,$1B v<.I_K^. | |
722 L1680 fcb $96,$49,$91,$02,$25,$0C,$26,$07 .I..%.&. | |
723 L1688 fcb $DC,$4A,$10,$93,$03,$23,$07,$16 \J...#.. | |
724 L1690 fcb $F0,$63,$97,$02,$DC,$4A,$0D,$4C pc..\J.L | |
725 L1698 fcb $26,$03,$83,$00,$01,$DD,$03,$10 &....].. | |
726 L16A0 fcb $83,$FF,$FF,$26,$EA,$0A,$02,$20 ...&j.. | |
727 L16A8 fcb $E6,$96,$A5,$81,$10,$24,$24,$C6 f.%..$$F | |
728 L16B0 fcb $03,$3D,$30,$C9,$00,$A6,$30,$85 .=0I.&0. | |
729 L16B8 fcb $DC,$02,$ED,$81,$96,$04,$A7,$84 \.m...'. | |
730 L16C0 fcb $0D,$A5,$27,$0A,$A1,$1D,$26,$06 .%'.!.&. | |
731 L16C8 fcb $DC,$02,$A1,$1B,$27,$02,$0C,$A5 \.!.'..% | |
732 L16D0 fcb $16,$F0,$38,$17,$F0,$B9,$30,$8D .p8.p90. | |
733 L16D8 fcb $EB,$51,$17,$F0,$7C,$17,$F1,$08 kQ.p|.q. | |
734 L16E0 fcb $20,$EE,$96,$A5,$27,$EA,$C6,$03 n.%'jF. | |
735 L16E8 fcb $3D,$C0,$03,$30,$C9,$00,$A6,$30 =@.0I.&0 | |
736 L16F0 fcb $85,$EC,$81,$DD,$02,$A6,$84,$97 .l.].&.. | |
737 L16F8 fcb $04,$0A,$A5,$16,$EF,$F7,$34,$76 ..%.ow4v | |
738 L1700 fcb $6F,$64,$A6,$63,$3D,$ED,$66,$EC od&c=mfl | |
739 L1708 fcb $61,$3D,$EB,$66,$89,$00,$ED,$65 a=kf..me | |
740 L1710 fcb $E6,$E4,$A6,$63,$3D,$E3,$65,$ED fd&c=cem | |
741 L1718 fcb $65,$24,$02,$6C,$64,$A6,$E4,$E6 e$.ld&df | |
742 L1720 fcb $62,$3D,$E3,$64,$ED,$64,$35,$F6 b=cdmd5v | |
743 L1728 fcb $34,$16,$86,$10,$34,$02,$4F,$5F 4...4.O_ | |
744 L1730 fcb $68,$64,$69,$63,$59,$49,$10,$A3 hdicYI.# | |
745 L1738 fcb $61,$25,$04,$A3,$61,$6C,$64,$6A a%.#aldj | |
746 L1740 fcb $E4,$26,$ED,$AE,$63,$32,$65,$39 d&m.c2e9 | |
747 L1748 fcb $CC,$20,$34,$17,$F0,$44,$30,$8D L 4.pD0. | |
748 L1750 fcb $EA,$B0,$17,$F0,$04,$31,$C9,$01 j0.p.1I. | |
749 L1758 fcb $D6,$34,$20,$DC,$97,$17,$F1,$FD V4 \..q. | |
750 L1760 fcb $1F,$98,$17,$F1,$F8,$96,$99,$17 ...qx... | |
751 L1768 fcb $F1,$F3,$A6,$A2,$8A,$80,$A7,$A4 qs&"..'$ | |
752 L1770 fcb $CC,$32,$34,$17,$F0,$1C,$AE,$E4 L24.p..d | |
753 L1778 fcb $17,$EF,$DE,$10,$AE,$E4,$DC,$9A .o^..d\. | |
754 L1780 fcb $17,$F1,$DA,$1F,$98,$17,$F1,$D5 .qZ...qU | |
755 L1788 fcb $96,$9C,$17,$F1,$D0,$A6,$A2,$8A ...qP&". | |
756 L1790 fcb $80,$A7,$A4,$CC,$3D,$34,$17,$EF .'$L=4.o | |
1725
93328dc6e3f4
ded: Rodney's enhancement for the 'S' command to reload same LSN if none typed.
boisy
parents:
968
diff
changeset
|
757 L1798 fcb $F9,$35,$10,$17,$EF,$BB,$39,$55 y5..o;9) |
93328dc6e3f4
ded: Rodney's enhancement for the 'S' command to reload same LSN if none typed.
boisy
parents:
968
diff
changeset
|
758 L17A0 fcb $6F,$BE .? |
968 | 759 |
760 ELSE | |
761 | |
762 nam dEd OS-9 Disk Editor Version 2.01 | |
763 ttl Copyright 1987 Doug DeMartinis | |
764 | |
765 ******************************************************* | |
766 * Copyright 1987 Doug DeMartinis; All Rights Reserved * | |
767 * CIS: 72245,1400 * | |
768 * Delphi: DOUGLASD * | |
769 * Personal use and uploading of code, source and docs * | |
770 * to BBS's, as well as customization of the terminal * | |
771 * display codes, is permitted only if the copyright * | |
772 * notice and docs remain intact. * | |
773 * * | |
774 * 10/87 Various mods & fixes by Bruce Isted (BRI) * | |
775 * 11/87 Added Diddle, Find, Push, Remove routines. * | |
776 * Fixed bug throwing stack off by going in and * | |
777 * out of various error routines. * | |
778 * * | |
779 ******************************************************* | |
780 * * | |
781 * Mods by Roger A. Krupski (HARDWAREHACK) * | |
782 * * | |
783 * 02/88 -Added "enter" command which cleans up the * | |
784 * screen by running the REDO subroutine. (RAK) * | |
785 * * | |
786 * 01/90 -Added a check for the break key which allows * | |
787 * aborting the <F>ind function. (RAK) * | |
788 * -Added a check for null filename in OUTFILE: * | |
789 * and bypass I$Create if so. * | |
790 * -Other minor bugs fixed / errors trapped. * | |
791 ******************************************************* | |
792 | |
793 ifp1 | |
794 use defsfile | |
795 endc | |
796 | |
797 type set prgrm+objct | |
798 revs set reent+1 | |
799 | |
800 top mod dEdend,dEdnam,type,revs,start,size | |
801 | |
802 ************************************************************************** | |
803 * To customize dEd for another driver, change the value of 'xyflipr', * | |
804 * change co380 to FALSE and OTHER to TRUE, and make the appropriate * | |
805 * changes to the display codes in the block that begins 'ifne OTHER'. * | |
806 * WordPak users only need to change co380 to FALSE and WPAK to TRUE. * | |
807 ************************************************************************** | |
808 | |
809 * Set xyflipr to 1 if XY cursor move code has form: row,col | |
810 * Set " to 0 " " " " " " " col,row | |
811 xyflipr set 0 co380 uses $2,Col,Row to position cursor | |
812 | |
813 * Change one of the following lines to TRUE and others to FALSE, | |
814 * depending on which 80 column display you're using. | |
815 | |
816 co380 set FALSE Set to TRUE if using Mike Dziedzic's co380 driver | |
817 WPAK set FALSE Set to TRUE if using WordPak | |
818 OTHER set TRUE Set to TRUE for another driver and change codes below | |
819 | |
820 * Conditional assembly of terminal commands depending on previous choices: | |
821 | |
822 ifne OTHER | |
823 * e.g. CoCo 3, OS-9 Level II | |
824 * Change the appropriate byte strings below for another driver | |
825 | |
826 xyflipr set 0 Change to 1 if XY Cursor move code wants form Row,Col | |
827 curscode set $2 XY Cursor move code (max length=2 bytes) | |
828 cls fcb $c Clear Screen byte string | |
829 clschrs equ *-cls Don't change this. | |
830 revvid fcb $1F,$20,0 Reverse Video byte string. Must end with a 0. | |
831 revchrs equ *-revvid-1 Don't change this. | |
832 normvid fcb $1F,$21,0 Normal Video byte string. MUST end with a 0. | |
833 normchrs equ *-normvid-1 Don't change this. | |
834 eraselin fcb 4 Erase to End of Line byte string. | |
835 eraschrs equ *-eraselin Don't change this. | |
836 erasescr fcb $b Erase to End of Screen byte string. | |
837 era2chrs equ *-erasescr Don't change this. | |
838 | |
839 * modification by BRI | |
840 * adds cursor on/off strings & string lengths | |
841 CursrOn fcb $05,$21,0 Cursor on string. MUST end with a 0. | |
842 CursOn equ *-CursrOn-1 Don't change this. | |
843 CursrOff fcb $05,$20,0 Cursor off string. MUST end with a 0. | |
844 CursOff equ *-CursrOff-1 Don't change this. | |
845 * end modification | |
846 | |
847 endc | |
848 | |
849 ifne WPAK | |
850 * This is for WordPak driver | |
851 | |
852 xyflipr set 1 cursor move wants row,col | |
853 curscode set $2 XY cursor move code | |
854 cls fcb $c clear screen code | |
855 clschrs equ *-cls | |
856 revvid fcb $1b,$53,$21,0 reverse video toggle | |
857 revchrs equ *-revvid-1 # chars in code string | |
858 normvid fcb $1b,$53,$20,0 normal video toggle | |
859 normchrs equ *-normvid-1 | |
860 eraselin fcb $1b,$41 erase to end of line | |
861 eraschrs equ *-eraselin | |
862 erasescr fcb $1b,$42 erase to end of screen | |
863 era2chrs equ *-erasescr | |
864 | |
865 * modification by BRI | |
866 * adds cursor on/off strings & string lengths | |
867 CursrOn fcb 0 Cursor on string. MUST end with a 0. | |
868 CursOn equ *-CursrOn-1 Don't change this. | |
869 CursrOff fcb 0 Cursor off string. MUST end with a 0. | |
870 CursOff equ *-CursrOff-1 Don't change this. | |
871 * end modification | |
872 | |
873 endc | |
874 | |
875 ifne co380 | |
876 * This is for co380 driver for CoCo3 | |
877 xyflipr set 0 cursor move wants col,row | |
878 curscode set $2 1st byte of move cursor code | |
879 cls fcb $c clear screen code | |
880 clschrs equ *-cls | |
881 revvid fcb 0 reverse video not supported by co380 | |
882 revchrs equ *-revvid-1 # chars in code string | |
883 normvid fcb 0 Reverse video off not supported by co380 | |
884 normchrs equ *-normvid-1 | |
885 eraselin fcb 4 erase to end of line | |
886 eraschrs equ *-eraselin | |
887 erasescr fcb $b erase to end of screen | |
888 era2chrs equ *-erasescr | |
889 | |
890 * modification by BRI | |
891 * adds cursor on/off strings & string lengths | |
892 CursrOn fcb 0 Cursor on string. MUST end with a 0. | |
893 CursOn equ *-CursrOn-1 Don't change this. | |
894 CursrOff fcb 0 Cursor off string. MUST end with a 0. | |
895 CursOff equ *-CursrOff-1 Don't change this. | |
896 * end modification | |
897 | |
898 endc | |
899 | |
900 *********************************************************************** | |
901 * All the changes for customizing dEd should be done above this line. * | |
902 *********************************************************************** | |
903 | |
904 | |
905 * Don't change the following 2 blocks. | |
906 * X,Y coordinates of various screen prompts | |
907 ifne xyflipr | |
908 hedrpos set $2220 Header position (row/col) | |
909 cmdpos set $3620 Command position | |
910 cmd1pos set $3720 Command position + 1 row | |
911 outpos set $2130 Output pathlist position | |
912 modpos set $2030 Module name position | |
913 offpos set $2058 Offset position | |
914 xprtpos set $3435 EXPERT position | |
915 | |
916 else | |
917 | |
918 hedrpos set $2022 | |
919 cmdpos set $2036 Command position | |
920 cmd1pos set $2037 Command position + 1 row | |
921 outpos set $3021 Output pathlist position | |
922 modpos set $3020 Module name position | |
923 offpos set $5820 Offset position | |
924 xprtpos set $3534 EXPERT position | |
925 endc | |
926 | |
927 **************************** | |
928 * Variable Storage | |
929 **************************** | |
930 | |
931 bufsiz equ 120 | |
932 MaxStack equ 16 maximum # sectors that can be 'pushed' onto stack | |
933 | |
934 inpath rmb 1 input path # | |
935 outpath rmb 1 output path # | |
936 lsn rmb 3 Logical Sector number | |
937 oldlsn rmb 3 LSN backup | |
938 offset rmb 2 'Linked' module offset | |
939 cursor rmb 4 Move cursor code | |
940 hexcol rmb 1 Hex dump column # | |
941 rownum rmb 1 Row number (Hex 0-f) | |
942 asciicol rmb 1 ASCII dump col # | |
943 lastflag rmb 1 Flag for last line display | |
944 buffptr rmb 2 Pointer for input buffer | |
945 edbufptr rmb 2 Edit buffer pointer | |
946 edpos rmb 1 Edit position counter for partial sector reads | |
947 hexascii rmb 1 hex/ascii edit mode flag; 0=>Hex, FF=>ASCII | |
948 zeroflag rmb 1 leading zero suppression flag, $FF=>Suppress | |
949 oldecho rmb 1 original echo status | |
950 echobyte rmb 1 current echo status | |
951 Usave rmb 2 U register storage | |
952 Ssave rmb 2 S register storage | |
953 seclen rmb 2 sector length ($100 unless last LSN in file) | |
954 vmodlen rmb 2 Verify module length | |
955 lmodlen rmb 2 'Linked' module length | |
956 fileln rmb 2 cumulative file length | |
957 bytsread rmb 2 bytes read during verify | |
958 CRC rmb 3 CRC accumulator for verify | |
959 modnmlen rmb 1 'Link' module name length | |
960 wrtflag rmb 1 Flag to auto-write sector | |
961 xprtflag rmb 1 Expert mode flag | |
962 FHexAsc rmb 1 'Find' Hex/Ascii mode flag | |
963 targlen rmb 1 length of string to find | |
964 findstr rmb 17 string to 'Find' | |
965 FindPtr rmb 2 pointer to byte to start next search at | |
966 FBytes rmb 1 # bytes left in target string | |
967 HexBuff rmb 4 scratch area for ASCII to Hex conversions | |
968 FileLen rmb 4 File length | |
969 infile rmb 30 linked module name | |
970 outfile rmb 30 Output filename | |
971 | |
972 * modification by BRI | |
973 CrsrCnt rmb 1 8-bit cursor toggle counter (bit 3 active) | |
974 CrsrFlg rmb 1 cursor toggle (initialized to 0) | |
975 SgnlCode rmb 1 intercept routine signal code | |
976 * end modification | |
977 | |
978 StackCnt rmb 1 # sectors on stack | |
979 Stack rmb 3*MaxStack room for 16 LSN's | |
980 | |
981 inbuff rmb 256 input buffer | |
982 i.o.buff rmb bufsiz input/output buffer | |
983 rmb 200 stack storage | |
984 size equ . end of data area | |
985 | |
986 dEdnam fcs /dEd/ | |
987 fcb 3 version | |
988 fcc /Copyright 1987 Doug DeMartinis/ | |
989 | |
990 * Display messages | |
991 | |
992 lsntitle fcs /LSN=$/ | |
993 sect fcs /SECTOR = $/ | |
994 header fcc / 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 2 4 6 8 A C E / | |
995 fcb $d | |
996 command fcs /CMD: / | |
997 edprompt fcs "<BREAK> toggles HEX/ASCII edit modes <ENTER> exits edit mode" | |
998 zaprompt fcs /Zap / | |
999 byte fcs /byte: / | |
1000 char fcs /char: / | |
1001 sure fcs "Are you sure? (Y/N) " | |
1002 writing fcs /Writing sector.../ | |
1003 out$ fcs /OUTFILE: / | |
1004 vrfymess fcs /Verifying.../ | |
1005 verrmess fcs /Verify aborted.../ | |
1006 shell$ fcs /shell/ | |
1007 linkmess fcs /Link to which module? / | |
1008 linkhdr fcc /Off Len Name/ | |
1009 fcb $a | |
1010 fcc /---- ---- ----/ | |
1011 fcb $d | |
1012 modnmhdr fcs /MODULE: / | |
1013 offmess fcs /OFFSET: $/ | |
1014 xprtmess fcb $1f,$24 cc3 blink on | |
1015 fcc /- Expert Mode -/ | |
1016 fcb $1f,$25+$80 blink off | |
1017 findbyte fcs /Find byte string $/ | |
1018 findchar fcs /Find char string: / | |
1019 srchmess fcs /Searching.../ | |
1020 lenmess fcs /Current File Length $/ | |
1021 newmess fcs /New Length? $/ | |
1022 fullmess equ * | |
1023 bell fcb 7 | |
1024 fcs /Sector Stack Full / | |
1025 | |
1026 * modification by BRI | |
1027 * alphabetized help list, | |
1028 * removed redundant 'Close' message, | |
1029 * added prompt at end | |
1030 helper fcc " Up/Down Arrows Read & display Next/Previous sector" | |
1031 fcb $a,$a | |
1032 fcc / <CR> Clean up the screen display/ | |
1033 fcb $a | |
1034 fcc / $ Fork a SHELL (Ctrl-BREAK to return)/ | |
1035 fcb $a | |
1036 fcc / A Append displayed sector to output file/ | |
1037 fcb $a | |
1038 fcc / C Close output file/ | |
1039 fcb $a | |
1040 fcc / D Diddle (adjust) file length/ | |
1041 fcb $a | |
1042 fcc / E Edit the displayed sector/ | |
1043 fcb $a | |
1044 fcc / F Find a byte or text string (BREAK aborts)/ | |
1045 fcb $a | |
1046 fcc / H Help screen (also use '?')/ | |
1047 fcb $a | |
1048 fcc / L Link to a module - List all modules/ | |
1049 fcb $a | |
1050 fcc / N Next occurrence of byte(s) or string (Find)/ | |
1051 fcb $a | |
1052 fcc / O Open a file for output (use with Append)/ | |
1053 fcb $a | |
1054 fcc / P Push current sector onto stack/ | |
1055 fcb $a | |
1056 fcc / Q Quit dEd - Exit to OS9/ | |
1057 fcb $a | |
1058 fcc / R Remove and display a sector from stack/ | |
1059 fcb $a | |
1060 fcc / S Skip to given sector (sector # in hex)/ | |
1061 fcb $a | |
1062 fcc / U Unlink from module/ | |
1063 fcb $a | |
1064 fcc / V Verify all modules in file/ | |
1065 fcb $a | |
1066 fcc / W Write the sector back to the disk/ | |
1067 fcb $a | |
1068 fcc " X eXpert mode toggle on/off" | |
1069 fcb $a | |
1070 fcc / Z Zap (fill in) the sector displayed/ | |
1071 fcb $a,$a | |
1072 fcc / (Press any key to return to command prompt):/ | |
1073 *fcb $a | |
1074 helpchrs equ *-helper | |
1075 * end modifications | |
1076 | |
1077 hints fcc /Use: dEd <pathlist>/ | |
1078 fcb $0d | |
1079 | |
1080 * Table for converting Hex to Decimal | |
1081 | |
1082 decimals fcb $98,$96,$80 Decimal 10,000,000 | |
1083 fcb $0f,$42,$40 Decimal 1,000,000 | |
1084 fcb $01,$86,$A0 Decimal 100,000 | |
1085 fcb $00,$27,$10 Decinal 10,000 | |
1086 fcb $00,$03,$E8 Decimal 1,000 | |
1087 fcb $00,$00,$64 Decimal 100 | |
1088 fcb $00,$00,$0A Decimal 10 | |
1089 fcb $00,$00,$01 etc. | |
1090 | |
1091 commands fcb $c up arrow | |
1092 fdb nxtsec | |
1093 fcb $a down arrow | |
1094 fdb prevsec | |
1095 fcb '$ shell | |
1096 fdb goshell | |
1097 fcb $d c/r clean up screen | |
1098 fdb redo | |
1099 fcb 's LSN change | |
1100 fdb changLSN | |
1101 fcb 'z zap | |
1102 fdb zap | |
1103 fcb 'w write sector | |
1104 fdb writesec | |
1105 fcb 'o open output file | |
1106 fdb openout | |
1107 fcb 'a append to out file | |
1108 fdb append | |
1109 fcb 'c close out file | |
1110 fdb closeout | |
1111 fcb 'e edit sector | |
1112 fdb edit | |
1113 fcb 'q quit | |
1114 fdb quit | |
1115 fcb 'v verify | |
1116 fdb verify | |
1117 fcb 'l 'link' to module | |
1118 fdb linker | |
1119 fcb 'u 'unlink' module | |
1120 fdb unlinker | |
1121 fcb 'x Expert mode | |
1122 fdb expert | |
1123 fcb 'h Help | |
1124 fdb help | |
1125 fcb '? | |
1126 fdb help | |
1127 fcb 'f | |
1128 fdb find | |
1129 fcb 'n | |
1130 fdb next | |
1131 fcb 'd | |
1132 fdb diddle | |
1133 fcb 'p | |
1134 fdb push | |
1135 fcb 'r | |
1136 fdb remove | |
1137 fcb 0 end of table | |
1138 | |
1139 * Intercept signals | |
1140 * modification by BRI | |
1141 *icept rti | |
1142 icept stb SgnlCode,u save signal code | |
1143 rti | |
1144 * end modification | |
1145 | |
1146 | |
1147 start equ * entry point | |
1148 | |
1149 stx inbuff save pointer to param | |
1150 leax icept,pcr intercept routine addr | |
1151 os9 f$icpt set up intercept | |
1152 lbcs error | |
1153 | |
1154 * Initialize data area | |
1155 | |
1156 clra | |
1157 ldb #inbuff # bytes to clear | |
1158 leax ,u point X to start of data area | |
1159 init sta ,x+ zero memory | |
1160 decb dec counter | |
1161 bne init loop if not done | |
1162 stu Usave save U register | |
1163 sts Ssave save Stack pointer | |
1164 | |
1165 setcurs ldd #curscode cursor move code | |
1166 std cursor save it for output | |
1167 leas -32,s make room for terminal options | |
1168 leax ,s point x to 32 byte buffer | |
1169 clra path = 0 (stdin) | |
1170 clrb (SS.OPT - option status) | |
1171 os9 i$getstt read in option table | |
1172 lbcs error | |
1173 lda 4,x get echo status byte | |
1174 sta oldecho save it | |
1175 leas 32,s reset stack | |
1176 | |
1177 * Open file | |
1178 | |
1179 ldx inbuff pointer to file name | |
1180 lda #updat. mode=update | |
1181 os9 i$open open file | |
1182 | |
1183 * modification by BRI | |
1184 * lbcs bye exit if error | |
1185 bcc OpenOK | |
1186 cmpb #E$FNA no permission? | |
1187 lbne bye no, go exit with error | |
1188 ldx inbuff pointer to file name | |
1189 lda #DIR.+UPDAT. mode=directory+update | |
1190 os9 I$Open open file | |
1191 lbcs bye exit if error | |
1192 OpenOK equ * | |
1193 * end modification | |
1194 | |
1195 sta inpath save input path # | |
1196 ldb #ss.size | |
1197 os9 i$getstt get file size | |
1198 stx FileLen save | |
1199 stu FileLen+2 | |
1200 ldu Usave restore U | |
1201 clr echobyte no echo flag | |
1202 lbsr echo set echo status | |
1203 lbsr clrscr go clear screen | |
1204 | |
1205 * Main Read/Display loop | |
1206 | |
1207 readloop lbsr seeksec find sector & read it | |
1208 sty seclen bytes read ($100 unless last LSN in file) | |
1209 ldd lsn get lsn just read | |
1210 std oldlsn & save it | |
1211 lda lsn+2 for retrieval | |
1212 sta oldlsn+2 after read errors | |
1213 ldd #0 Signal 'Next' command to start | |
1214 std findptr search at start of LSN | |
1215 disploop lbsr display go display sector | |
1216 getcmd lbsr movecmd move cursor | |
1217 leax command,pcr point to 'CMD: ' | |
1218 bsr pstring display line | |
1219 leax erasescr,pcr erase to end of screen | |
1220 ldy #era2chrs | |
1221 os9 i$write | |
1222 lbcs error | |
1223 leax i.o.buff,u point to buffer to read into | |
1224 lbsr read1 read a char from stdin | |
1225 lda ,x get char read | |
1226 cmpa #'A alpha char? | |
1227 blo srchtabl no, leave it alone | |
1228 ora #$20 else UPPER -> lower case | |
1229 srchtabl leax commands,pcr point to command table | |
1230 findcmd cmpa ,x+ got command? | |
1231 beq gotcmd yes, bra | |
1232 leax 2,x else, skip address | |
1233 tst ,x end of table? | |
1234 bne findcmd no, loop back | |
1235 bra getcmd key invalid, exit | |
1236 gotcmd tst xprtflag expert mode? | |
1237 beq jmpcmd no, bra | |
1238 tst wrtflag need to write buffer out | |
1239 beq jmpcmd no, bra | |
1240 pshs x,a | |
1241 lbsr xprtwrt write sector | |
1242 puls a,x | |
1243 jmpcmd ldd ,x get address offset | |
1244 leax top,pcr start of module | |
1245 jmp d,x jump to offset addr | |
1246 | |
1247 | |
1248 * Print string of characters having bit 7 of last char set | |
1249 | |
1250 pstring leay i.o.buff,u output buffer | |
1251 clrb counter | |
1252 xfer incb | |
1253 lda ,x+ get char | |
1254 bmi lstchar bra if bit 7 set | |
1255 sta ,y+ put in buffer | |
1256 bra xfer get more | |
1257 lstchar anda #$7f clr bit 7 | |
1258 sta ,y put in buffer | |
1259 leax i.o.buff,u point to char string | |
1260 clra | |
1261 tfr d,y y= length of string | |
1262 bra writeout | |
1263 | |
1264 wrtlin1 ldy #bufsiz write 200 chars max | |
1265 writeout lda #1 stdout | |
1266 wrtlin2 os9 i$writln write line | |
1267 lbcs error | |
1268 rts | |
1269 | |
1270 readlin3 ldy #3 # chars to read | |
1271 readlin clra stdin | |
1272 os9 i$readln read in Y-1 chars + CR | |
1273 lbcs error | |
1274 rts | |
1275 | |
1276 movecmd ldd #cmdpos | |
1277 movecurs leax cursor,u point to cursor move code | |
1278 std 2,x save row/col | |
1279 ldy #4 4 chars | |
1280 bra writeout | |
1281 | |
1282 * Set display to reverse video | |
1283 | |
1284 revdisp leax revvid,pcr point to code | |
1285 ldy #revchrs # chars | |
1286 bra writeout write to stdout | |
1287 | |
1288 * Set display to normal video | |
1289 | |
1290 normdisp leax normvid,pcr point to code | |
1291 ldy #normchrs # chars | |
1292 bra writeout write to stdout | |
1293 | |
1294 | |
1295 clrline leax eraselin,pcr point to erase line code | |
1296 ldy #eraschrs # chars | |
1297 bra wrtlin2 go erase rest of line & return | |
1298 | |
1299 clrscr leax cls,pcr point to clear screen code | |
1300 ldy #clschrs #chars | |
1301 bra writeout clear screen & return | |
1302 | |
1303 seeksec bsr lsnseek seek to sector | |
1304 leax inbuff,u point to buffer | |
1305 stx buffptr save pointer | |
1306 tst infile module linked? | |
1307 beq read256 no, bra | |
1308 ldd lmodlen linked mod length | |
1309 suba lsn+2 >$100 bytes left? | |
1310 bne read256 yes, bra | |
1311 tfr d,y no, set up for smaller read | |
1312 bra readsome | |
1313 read256 ldy #$100 read 256 bytes | |
1314 readsome lda inpath path # | |
1315 read os9 i$read read them in | |
1316 lbcs error | |
1317 rts | |
1318 | |
1319 ****************************** | |
1320 * changed to ignore errors 01/09/90 (RAK) | |
1321 * | |
1322 read1 | |
1323 clra stdin | |
1324 ldy #1 get 1 byte | |
1325 os9 I$Read get 1 byte | |
1326 rts ignore any errors | |
1327 * bra read | |
1328 ****************************** END of modification | |
1329 | |
1330 lsnseek tst infile module linked? | |
1331 bne offchk yes, bra | |
1332 ldx lsn x=lsn MS 16 bits | |
1333 lda lsn+2 get 3rd byte of lsn | |
1334 clrb | |
1335 lsnseek1 tfr d,u u=LS 16 bits | |
1336 lda inpath get input path # | |
1337 os9 i$seek seek lsn | |
1338 lbcs error | |
1339 ldu usave restore U | |
1340 lsnrts rts | |
1341 | |
1342 offchk ldd lmodlen linked mod length | |
1343 subd #1 now A=LSN of last sector | |
1344 cmpa LSN+2 trying to read past last sector? | |
1345 bhs offseek no, bra | |
1346 ldb #e$eof yes, set EOF error | |
1347 lbra error | |
1348 * If module is 'linked' must add offset to functional LSN ->true seek count | |
1349 offseek ldd offset | |
1350 adda lsn+2 offset + 'LSN' | |
1351 ldx #0 | |
1352 bra lsnseek1 seek to 'LSN' | |
1353 | |
1354 display ldd #$2020 | |
1355 lbsr movecurs | |
1356 leax lsntitle,pcr point to "lsn..." | |
1357 lbsr pstring | |
1358 bsr clrline clear rest of line | |
1359 bsr convert3 convert lsn to ascii/dec | |
1360 leax i.o.buff,u | |
1361 lbsr wrtlin1 | |
1362 | |
1363 tst infile is a module 'linked'? | |
1364 beq nolink no, bra | |
1365 lbsr prntmod yes, display name | |
1366 | |
1367 nolink tst outpath is an output file open? | |
1368 beq noout no, bra | |
1369 lbsr prntout yes, print name | |
1370 | |
1371 noout ldd #hedrpos get header row/col | |
1372 lbsr movecurs move cursor | |
1373 leax revvid,pcr point to reverse video code | |
1374 ldy #revchrs # chars | |
1375 lbsr wrtlin2 | |
1376 leax header,pcr point to header | |
1377 lbsr wrtlin1 display it | |
1378 leax normvid,pcr point to normal vid code | |
1379 ldy #normchrs # chars | |
1380 lbsr wrtlin2 write code out | |
1381 disp lbsr dsplylin | |
1382 lda rownum get row # | |
1383 adda #$10 next row | |
1384 sta rownum save it | |
1385 bne disp do 16 rows | |
1386 leax inbuff,u | |
1387 stx buffptr reset buffer pointer | |
1388 tst xprtflag Expert mode? | |
1389 beq lsnrts no, return | |
1390 ldd #xprtpos | |
1391 lbsr movecurs | |
1392 leax xprtmess,pcr | |
1393 lbra pstring display 'EXPERT' & return | |
1394 | |
1395 * Convert 3 HEX bytes to ASCII | |
1396 | |
1397 convert3 ldd lsn get 2 MSB's of LSN | |
1398 com zeroflag suppresw leading zeroes | |
1399 leay i.o.buff,u point to output buffer | |
1400 bsr convert1 convert byte in A to ascii | |
1401 tfr b,a | |
1402 bsr convert1 and convert 2nd byte | |
1403 clr zeroflag stop suppressing leading 0's | |
1404 lda lsn+2 get LSB of LSN | |
1405 bsr convert1 and convert it | |
1406 ldd #$2020 2 space | |
1407 std ,y++ put in out buffer | |
1408 | |
1409 * Output LSN as decimal number | |
1410 | |
1411 ldd #$0008 8 dec digits max, 0=counter | |
1412 pshs d save them | |
1413 com zeroflag suppress leading zeroes | |
1414 leax decimals,pcr point to conversion table | |
1415 initsub1 clr ,s set counter = 0 | |
1416 subdec1 ldd lsn+1 get LSB's of LSN | |
1417 subd 1,x subtract LSB's of table entry | |
1418 pshs cc save 'carry' | |
1419 std lsn+1 save result | |
1420 lda lsn get MSB | |
1421 clrb flag for enough subtractions | |
1422 suba ,x subtract MSB of LSN | |
1423 bcc LSBborow if no 'borrow', see if LSB sub needed borrow | |
1424 incb else, enough subs done | |
1425 LSBborow puls cc restore LSB 'borrow' flag | |
1426 bcc savemsb save byte if borrow not needed | |
1427 suba #1 else do borrow, setting flags | |
1428 savemsb sta lsn save MSB | |
1429 bcc chekenuf bra if no borrow needed by last dec | |
1430 incb else set flag ->enuf subs done | |
1431 chekenuf tstb enuf subs done? | |
1432 bne enufsub1 Yes, bra | |
1433 inc ,s else, inc decimal counter | |
1434 bra subdec1 and do more subtractions | |
1435 enufsub1 ldd lsn+1 get value | |
1436 addd 1,x make it positive again | |
1437 std lsn+1 and save | |
1438 lda lsn get MSB | |
1439 bcc addmsb 'Carry' bit still valid from 'addd 1,x' | |
1440 inca do carry from LSB's | |
1441 addmsb adda ,x make rest of remainder positive | |
1442 sta lsn and save it for next round of sub | |
1443 leax 3,x point X to next table entry | |
1444 bsr decascii go convert decimal counter to ascii | |
1445 dec 1,s dec counter (8 digits) | |
1446 beq getCR Yes, exit | |
1447 lda 1,s down to last 2 digits? | |
1448 cmpa #2 | |
1449 bne initsub1 no, loop back | |
1450 clr zeroflag else stop suppressing leading 0's | |
1451 bra initsub1 | |
1452 | |
1453 getCR lda #$d <CR> | |
1454 sta ,y put in out string | |
1455 ldd oldlsn+1 restore LSN | |
1456 std lsn+1 | |
1457 lda oldlsn | |
1458 sta lsn | |
1459 puls d,pc | |
1460 | |
1461 * Convert HEX byte in A to ASCII and put in buffer (Y) | |
1462 | |
1463 convert1 pshs a save byte | |
1464 lsra shift msn to lsnibble | |
1465 lsra | |
1466 lsra | |
1467 lsra | |
1468 bsr objasc | |
1469 puls a get byte back | |
1470 anda #$0f mask off msb | |
1471 bsr objasc convert if to ascii | |
1472 rts | |
1473 objasc cmpa #9 digit? | |
1474 ble asciify yes, make it ascii | |
1475 adda #7 | |
1476 asciify adda #$30 makes it ascii | |
1477 sta ,y+ and put it in buffer | |
1478 tst zeroflag suppressing leading zeroes? | |
1479 beq convdone no, exit | |
1480 cmpa #'0 was it a zero? | |
1481 beq suppres0 Yes, go 'erase' it | |
1482 clr zeroflag No, so stop suppressing 0's | |
1483 convdone rts | |
1484 suppres0 leay -1,y reset pointer back over zero | |
1485 rts | |
1486 | |
1487 * Convert object decimal # on stack to ASCII & put in buffer (Y) | |
1488 | |
1489 decascii pshs a save this | |
1490 lda 3,s get decimal counter | |
1491 bsr asciify make it ascii | |
1492 puls a,pc get byte back & return | |
1493 | |
1494 | |
1495 dsplylin leay i.o.buff,u point to output buffer | |
1496 leax revvid,pcr | |
1497 lbsr transfer put in reverse video code | |
1498 lda seclen+1 LSB of # bytes read | |
1499 beq notlast skip ahead if 0 (seclen=$100) | |
1500 anda #$f0 mask off LSB | |
1501 cmpa rownum current display row = last? | |
1502 bne notlast no, go on | |
1503 lda #$ff | |
1504 sta lastflag signal last line | |
1505 notlast lda rownum get row number | |
1506 bsr convert1 convert it to hex byte | |
1507 lda #': | |
1508 sta ,y+ | |
1509 leax normvid,pcr point to code | |
1510 bsr transfer move code to buffer | |
1511 ldd #$2020 spaces | |
1512 std ,y++ | |
1513 ldx buffptr get buffer pointer | |
1514 ldb #$10 16 bytes | |
1515 tst lastflag last line? | |
1516 beq cnvrtbyt no, bra | |
1517 ldb seclen+1 bytes read | |
1518 andb #$0f now B=bytes for lst line | |
1519 beq noline bra if no bytes left | |
1520 pshs b save this | |
1521 cnvrtbyt lda ,x+ get byte from buffer | |
1522 bsr convert1 convert it to hex | |
1523 lda #$20 space | |
1524 sta ,y+ put in output buffer | |
1525 decb done? | |
1526 bne cnvrtbyt No, do more | |
1527 tst lastflag lst line? | |
1528 beq addspc2 no, bra | |
1529 ldd #$0310 B=max bytes on line | |
1530 subb ,s b=# bytes to null out | |
1531 mul 3 spaces per byte | |
1532 lda #$20 space | |
1533 addspc1 sta ,y+ put in buffer | |
1534 decb done? | |
1535 bne addspc1 | |
1536 addspc2 ldb #$20 space | |
1537 std ,y++ | |
1538 sta ,y+ output spaces | |
1539 ldx buffptr get buff pointer again | |
1540 asrb b=$10 (16 bytes) | |
1541 tst lastflag lst line? | |
1542 beq ascichar no, bra | |
1543 ldb ,s yes, get # bytes from prior calc | |
1544 ascichar lda ,x+ get byte | |
1545 anda #$7f clear bit 7 | |
1546 cmpa #$20 <32? | |
1547 bhs printabl yes, print as is | |
1548 notascii lda #'. Non-ascii char | |
1549 printabl sta ,y+ put in buff | |
1550 decb done? | |
1551 bne ascichar | |
1552 stx buffptr save new buffer pointer | |
1553 tst lastflag last line? | |
1554 beq addCR no, bra | |
1555 ldb #$10 max bytes per line | |
1556 subb ,s+ b=bytes to null out | |
1557 lda #$20 space | |
1558 addspc3 sta ,y+ put in buffer | |
1559 decb | |
1560 bne addspc3 | |
1561 lda #$f0 last row num | |
1562 sta rownum -> displays no more rows | |
1563 bsr addCR display line | |
1564 resetlst clr lastflag reset flag | |
1565 leax erasescr,pcr point to erase to end of screen code | |
1566 ldy #era2chrs length of string | |
1567 lbra writeout erase end of screen & return | |
1568 addCR lda #$d <CR> | |
1569 sta ,y | |
1570 leax i.o.buff,u | |
1571 lbra wrtlin1 go display this line & return | |
1572 | |
1573 transfer lda ,x+ get byte | |
1574 beq trandone exit if done | |
1575 sta ,y+ move it | |
1576 bra transfer do more | |
1577 trandone rts return | |
1578 | |
1579 noline lda #$f0 | |
1580 sta rownum signal last row | |
1581 bra resetlst go erase rest of screen | |
1582 | |
1583 | |
1584 * Point to next LSN in file | |
1585 | |
1586 nxtsec ldd lsn+1 get 2 lower bytes of lsn | |
1587 addd #1 next lsn | |
1588 std lsn+1 save it | |
1589 bne readsec d<>0 => carry not needed | |
1590 inc lsn else add carry to MSB of LSN | |
1591 readsec lbra readloop go read next sector | |
1592 | |
1593 * Point to previous LSN unless at LSN 0 now | |
1594 | |
1595 prevsec ldd lsn+1 get lsn | |
1596 bne notfirst <>0 => not LSN 0 | |
1597 tst lsn LSN 0? | |
1598 lbeq getcmd yes, exit | |
1599 notfirst subd #1 else dec LSN | |
1600 std lsn+1 save it | |
1601 cmpd #$ffff borrow needed if LSN was $xx0000 | |
1602 bne readsec if not, go read | |
1603 dec lsn do 'borrow' | |
1604 bra readsec go read previous sector | |
1605 | |
1606 | |
1607 * Change LSN sub | |
1608 | |
1609 changLSN lbsr movecmd | |
1610 leax sect,pcr display message | |
1611 lbsr pstring | |
1612 ldy #7 max # chars to read | |
1613 bsr MakeHex read & convert them | |
1614 bcs BadLSN | |
1615 ldd HexBuff+2 get new LSN from buffer | |
1616 std lsn+1 | |
1617 lda HexBuff+1 | |
1618 sta lsn | |
1619 lbra readloop go read/display new LSN | |
1620 | |
1621 BadLSN lbsr beep | |
1622 bra changLSN | |
1623 | |
1624 MakeHex pshs y save # bytes to read | |
1625 clr echobyte | |
1626 com echobyte echo on | |
1627 lbsr echo set echo | |
1628 puls y | |
1629 leax i.o.buff,u point to buffer | |
1630 lbsr readlin read chars from keyboard | |
1631 clr echobyte | |
1632 lbsr echo echo off | |
1633 leay -1,y strip off CR | |
1634 beq ExitHex exit if no chars input | |
1635 tfr y,d # of bytes read -> B | |
1636 CheckHex lda ,x+ get char | |
1637 bsr hexdigit see if it's valid char | |
1638 bcs invalid if not, beep & redo | |
1639 decb done? | |
1640 bne CheckHex | |
1641 sty HexBuff save counter for now | |
1642 getascii lda #'0 leading zero, if needed | |
1643 ldb ,-x get a char | |
1644 leay -1,y last one? | |
1645 beq cnvrt2 yes, bra | |
1646 lda ,-x else, get next char in A | |
1647 leay -1,y dec counter | |
1648 cnvrt2 bsr asciihex convert ascii chars in A/B to hex byte | |
1649 pshs b save hex byte | |
1650 cmpy #0 all done? | |
1651 bne getascii no, do more | |
1652 ldb HexBuff+1 else, get # ascii chars 1st read | |
1653 incb get ready for divide | |
1654 lsrb divide by 2 -># of HEX bytes | |
1655 clra leading 0 | |
1656 leax HexBuff,u point to storage | |
1657 cmpb #4 4 hex bytes on stack? | |
1658 beq hexstack yes, no leading zeroes needed | |
1659 sta ,x+ else, put in leading 0 | |
1660 cmpb #3 3 hex bytes on stack? | |
1661 beq hexstack yes, no more 0's needed | |
1662 sta ,x+ else, put in 0 | |
1663 cmpb #2 2 hex bytes? | |
1664 beq hexstack yes, bra | |
1665 sta ,x+ else, put in another 0 | |
1666 hexstack puls a get a hex byte off stack | |
1667 sta ,x+ and put in templsn | |
1668 decb done? | |
1669 bne hexstack no, bra | |
1670 clrb clear carry bit | |
1671 rts | |
1672 | |
1673 invalid lbsr beep | |
1674 coma set carry bit | |
1675 rts | |
1676 | |
1677 ExitHex leas 2,s strip off return address | |
1725
93328dc6e3f4
ded: Rodney's enhancement for the 'S' command to reload same LSN if none typed.
boisy
parents:
968
diff
changeset
|
1678 lbra readloop exit |
968 | 1679 |
1680 hexdigit cmpa #'0 char <0? | |
1681 blo nothex yes, bra | |
1682 cmpa #'9 char <9 (digit)? | |
1683 bls ishex yes, bra | |
1684 anda #$5f lower->UPPER case | |
1685 cmpa #'F char >F? | |
1686 bhi nothex yes, bra | |
1687 cmpa #'A char <A? | |
1688 blo nothex yes, bra | |
1689 ishex clra clear carry bit if char is hex | |
1690 rts | |
1691 nothex coma set carry bit if not hex char | |
1692 rts | |
1693 | |
1694 asciihex bsr hexnib convert B to LSNibble | |
1695 pshs b save LSNib | |
1696 tfr a,b get ready for MSN | |
1697 bsr hexnib convert it | |
1698 aslb shift LSNib to MSN | |
1699 aslb | |
1700 aslb | |
1701 aslb | |
1702 orb ,s+ add in LSNib from stack | |
1703 rts | |
1704 | |
1705 hexnib subb #$30 convert asci # to hex | |
1706 cmpb #$9 <=9? | |
1707 bls nowhex yes, bra | |
1708 andb #$5f lower->UPPER case | |
1709 subb #7 else sub 7 or $A$F | |
1710 nowhex rts | |
1711 | |
1712 * Zap sector sub | |
1713 | |
1714 zap | |
1715 clr echobyte | |
1716 com echobyte echo on | |
1717 lbsr echo set echo | |
1718 lbsr movecmd | |
1719 lbsr clrline clear line | |
1720 leax zaprompt,pcr point to 'Zap ' | |
1721 lbsr pstring print it | |
1722 tst hexascii ascii mode? | |
1723 bne zapascii yes, bra | |
1724 leax byte,pcr point to 'byte: ' | |
1725 lbsr pstring print it | |
1726 ldy #3 2 chars + CR | |
1727 bsr zapread read in chars | |
1728 bsr hexobjct convert to object | |
1729 bcs exitzap exit if invalid chars | |
1730 zapstart leax inbuff,u point to data buffer | |
1731 stx buffptr new pointer | |
1732 clrb counter | |
1733 zapbuff sta ,x+ do zap | |
1734 decb done? | |
1735 bne zapbuff no, loop | |
1736 clr echobyte echo off | |
1737 lbsr echo set echo | |
1738 inc wrtflag signal for auto-write if expert mode | |
1739 lbra disploop display zapped buffer | |
1740 | |
1741 zapread clra stdin | |
1742 leax i.o.buff,u point to buffer | |
1743 os9 i$readln read in line | |
1744 bcs cheksig1 check for break key if error | |
1745 rts else return | |
1746 cheksig1 cmpb #2 break key signal? | |
1747 lbne error no, process error | |
1748 com hexascii yes, toggle hex/ascii flag | |
1749 leas 2,s pull return addr off stack | |
1750 bra zap redo routine | |
1751 | |
1752 exitzap clr echobyte echo off | |
1753 lbsr echo | |
1754 lbra getcmd get new command | |
1755 | |
1756 zapascii leax char,pcr point to 'char: ' | |
1757 lbsr pstring print it | |
1758 ldy #2 1 char + CR | |
1759 bsr zapread read in char | |
1760 lda ,x get char | |
1761 cmpa #$20 valid ascii char? | |
1762 blo exitzap no, exit | |
1763 bra zapstart go do zap | |
1764 | |
1765 * Convert 2 hex chars in buffer (X) to object byte | |
1766 | |
1767 hexobjct bsr cnvrtnib convert 1st nibble | |
1768 bcs badrts exit if bad char | |
1769 tfr a,b save 1st byte (MS nibble) | |
1770 bsr cnvrtnib convert 2nd nibble | |
1771 bcs badrts exit if bad char | |
1772 aslb shift LS nib to MS nib | |
1773 aslb | |
1774 aslb | |
1775 aslb | |
1776 pshs b save | |
1777 ora ,s+ add MS nib to LS nib | |
1778 bra goodhex exit | |
1779 | |
1780 cnvrtnib bsr isithex is it valid char? | |
1781 bcs badrts no, exit | |
1782 bra cnvrthex yes, convert it to object | |
1783 | |
1784 isithex lda ,x+ | |
1785 cmpa #'0 <0? | |
1786 blo badhex yes, bra | |
1787 cmpa #'9 <9? | |
1788 bls goodhex yes, bra | |
1789 anda #$5F lower->UPPER case | |
1790 cmpa #'A <A? | |
1791 blo badhex yes, bra | |
1792 cmpa #'F >F? | |
1793 bhi badhex yes, bra | |
1794 goodhex andcc #$FE clear carry bit if valid | |
1795 rts | |
1796 badhex orcc #1 set carry bit if invalid | |
1797 badrts rts | |
1798 | |
1799 cnvrthex suba #$30 convert char to object | |
1800 cmpa #9 decimal digit? | |
1801 bls nowobjct yes, done | |
1802 suba #7 else, A-F | |
1803 nowobjct bra goodhex clear carry & return | |
1804 | |
1805 * Write current sector back to disk | |
1806 | |
1807 writesec tst xprtflag expert mode on? | |
1808 lbne getcmd yes, exit | |
1809 bsr rusure Sure? | |
1810 lbne getcmd no, exit | |
1811 lbsr movecmd | |
1812 lbsr clrline clear line | |
1813 lbsr movecmd | |
1814 leax writing,pcr point to message | |
1815 lbsr pstring display it | |
1816 xprtwrt lbsr lsnseek seek to start of sector | |
1817 lda inpath get path # | |
1818 lbsr write100 write out sector | |
1819 tst xprtflag doing auto-write | |
1820 beq opendone no, go to getcmd | |
1821 clr wrtflag signal no more auto-write | |
1822 rts else & return to caller | |
1823 | |
1824 * Ask 'Are you sure?' and get response | |
1825 | |
1826 rusure lbsr movecmd | |
1827 rusure10 | |
1828 clr echobyte | |
1829 com echobyte echo on | |
1830 lbsr echo set echo | |
1831 leax sure,pcr point to 'Sure? ' | |
1832 lbsr pstring print it | |
1833 lbsr clrline blank rest of line | |
1834 leax i.o.buff,u input buffer | |
1835 lbsr read1 read answer | |
1836 clr echobyte echo off | |
1837 lbsr echo set echo | |
1838 lda ,x get response | |
1839 anda #$5f lower->UPPER case | |
1840 cmpa #'Y set flags | |
1841 rts | |
1842 | |
1843 * Open output file sub | |
1844 | |
1845 openout tst outpath is a file open already? | |
1846 bne opendone yes, exit | |
1847 clr echobyte | |
1848 com echobyte echo on | |
1849 lbsr echo set echo | |
1850 lbsr movecmd position cursor | |
1851 leax out$,pcr point to prompt | |
1852 lbsr pstring print it | |
1853 lbsr clrline clear rest of line | |
1854 leax i.o.buff,u point to input buffer | |
1855 ldy #30 29 chars + CR | |
1856 lbsr readlin read in a line (pathlist) | |
1857 clr echobyte echo off | |
1858 lbsr echo set echo | |
1859 | |
1860 *********************************************** | |
1861 * Return to command prompt if no filename given | |
1862 * Added 01/09/90 (RAK) | |
1863 * | |
1864 cmpy #1 <enter> only pressed? | |
1865 beq opendone yes, abort | |
1866 * | |
1867 ********************************** END modification | |
1868 | |
1869 pshs x save pointer to pathlist | |
1870 leay outfile,u point to storage area | |
1871 savname lda ,x+ get a char from name | |
1872 sta ,y+ save it | |
1873 cmpa #$20 space or CR? | |
1874 bhi savname | |
1875 lda #$0d CR | |
1876 sta -1,y delimit filename | |
1877 puls x restore pointer to name | |
1878 lda #write. Access mode = Write | |
1879 ldb #%00001011 attr ----R-wr | |
1880 os9 I$Create create & open file | |
1881 bcs error exit if error | |
1882 sta outpath save output path # | |
1883 bsr prntout | |
1884 opendone lbra getcmd exit | |
1885 | |
1886 * move cursor & print 'Output pathlist' | |
1887 | |
1888 prntout ldd #outpos | |
1889 lbsr movecurs | |
1890 leax out$,pcr point to 'OUTFILE:' | |
1891 lbsr pstring print it | |
1892 leax outfile,u point to name | |
1893 lbra wrtlin1 write name & return | |
1894 | |
1895 | |
1896 * Write out a sector | |
1897 | |
1898 write100 leax inbuff,u point to data | |
1899 ldy seclen # chars in sector | |
1900 os9 i$write write sector | |
1901 bcs error | |
1902 rts | |
1903 | |
1904 * Close output file sub | |
1905 | |
1906 closeout lda outpath get output path # | |
1907 beq opendone exit if none open | |
1908 os9 i$close close it | |
1909 bcs error | |
1910 ldd #outpos | |
1911 lbsr movecurs | |
1912 lbsr clrline | |
1913 clr outpath flag no output file open | |
1914 closed bra opendone exit | |
1915 | |
1916 * Append sector to output file sub | |
1917 | |
1918 append lda outpath get output path # | |
1919 beq closed exit if no file open | |
1920 bsr write100 write sector out | |
1921 lbra nxtsec read in next sector & display it | |
1922 | |
1923 | |
1924 * ERROR handling routine | |
1925 | |
1926 error pshs b save error code | |
1927 | |
1928 * modification by BRI | |
1929 clr <SgnlCode clear intercept routine signal code | |
1930 * end modification | |
1931 | |
1932 ldd oldlsn MSBs of last LSN read | |
1933 std lsn make it current LSN | |
1934 lda oldlsn+2 LSB of last LSN | |
1935 sta lsn+2 move it | |
1936 puls b error code | |
1937 lds Ssave restore Stack pointer | |
1938 cmpb #2 break? | |
1939 beq endexit yes, don't worry | |
1940 cmpb #3 shift break? | |
1941 bne eofchk no check if EOF | |
1942 clr wrtflag cancel auto-write | |
1943 bra endexit | |
1944 eofchk cmpb #e$eof EOF error? | |
1945 bne true.err exit | |
1946 endexit lbra exitzap | |
1947 true.err cmpb #e$bmid bad module ID error? | |
1948 bne othererr no, bra | |
1949 * If module is linked, BMID error must come from trying to Verify modules | |
1950 * use standard error reporting routine. Otherwise BMID error occurs when | |
1951 * trying to link (or list names of) modules; need to clear screen after these. | |
1952 tst infile module linked? | |
1953 bne othererr yes, use std error routine | |
1954 bsr prterr else display error # | |
1955 leax cls,pcr | |
1956 ldy #clschrs | |
1957 lbsr writeout clear screen | |
1958 lbra disploop & redisplay sector | |
1959 othererr pshs b save error code | |
1960 lbsr movecmd position cursor | |
1961 lbsr clrline | |
1962 puls b pull error code | |
1963 bsr prterr print error # on cmd line | |
1964 lbra getcmd | |
1965 | |
1966 * Display error # | |
1967 | |
1968 prterr lda #2 error out path | |
1969 os9 f$perr print error # | |
1970 clr echobyte echo off | |
1971 lbsr echo | |
1972 | |
1973 leax i.o.buff,u point to input buffer | |
1974 lbra read1 wait for keypress & return | |
1975 | |
1976 * Exit with usage prompt if no pathname called | |
1977 | |
1978 badcall | |
1979 lda #2 errout | |
1980 leax hints,pcr | |
1981 ldy #bufsiz | |
1982 lbsr wrtlin2 | |
1983 ldb #e$bpnam set bad path error | |
1984 bra bye | |
1985 | |
1986 * Exit to OS9 | |
1987 | |
1988 quit lda oldecho get original echo status | |
1989 sta echobyte reset echo | |
1990 lbsr echo to original status | |
1991 clrb no error | |
1992 bye os9 f$exit exit program | |
1993 | |
1994 * Edit sector sub | |
1995 | |
1996 edit lbsr movecmd | |
1997 leax edprompt,pcr point to prompt | |
1998 lbsr pstring | |
1999 topleft leax inbuff,u point to data buffer | |
2000 stx edbufptr save pointer | |
2001 lda #1 init position counter | |
2002 sta edpos | |
2003 lda #$23 top row code | |
2004 sta rownum save | |
2005 lda #$25 1st hex dump col # | |
2006 sta hexcol save | |
2007 lda #$58 1st ascii dump col | |
2008 sta asciicol | |
2009 | |
2010 revbyte lbsr revdisp set reverse video | |
2011 bsr eddisply display byte | |
2012 | |
2013 ifne xyflipr | |
2014 edinput lda rownum A=row | |
2015 ldb hexcol B=col | |
2016 else | |
2017 | |
2018 edinput lda hexcol A=col | |
2019 ldb rownum B=row | |
2020 endc | |
2021 | |
2022 tst hexascii Hex mode? | |
2023 beq hexin yes, bra | |
2024 | |
2025 ifne xyflipr | |
2026 ldb asciicol else B= ASCII col | |
2027 else | |
2028 | |
2029 lda asciicol A= ASCII col | |
2030 endc | |
2031 | |
2032 hexin lbsr movecurs position cursor | |
2033 leax i.o.buff,u | |
2034 tst hexascii ascii mode? | |
2035 lbne inputchr yes, bra | |
2036 | |
2037 * modification by BRI | |
2038 * bra inputbyt | |
2039 lbra inputbyt | |
2040 * end modification | |
2041 | |
2042 * Sub to do Hex and ASCII dump for byte to be editted | |
2043 | |
2044 ifne xyflipr | |
2045 eddisply lda rownum A=row | |
2046 ldb hexcol b= hex column | |
2047 else | |
2048 | |
2049 eddisply lda hexcol A=Hex column | |
2050 ldb rownum B=row | |
2051 endc | |
2052 | |
2053 lbsr movecurs position cursor | |
2054 leay i.o.buff,u point to output buff | |
2055 lda [edbufptr,u] get byte | |
2056 pshs a save it | |
2057 lbsr convert1 convert to hex, put in buff | |
2058 leax -2,y reset pointer to hex chars | |
2059 ldy #2 2chars | |
2060 lda #1 stdout | |
2061 lbsr wrtlin2 display chars | |
2062 | |
2063 ifne xyflipr | |
2064 lda rownum same row | |
2065 ldb asciicol get ascii dump col # | |
2066 else | |
2067 | |
2068 lda asciicol ascii dump col # | |
2069 ldb rownum same row | |
2070 endc | |
2071 | |
2072 lbsr movecurs position cursor | |
2073 puls a get byte again | |
2074 anda #$7F clear bit 7 for ascii dump | |
2075 cmpa #$20 printable? | |
2076 | |
2077 bhs prntabl1 yes, bra | |
2078 lda #'. else print as '.' | |
2079 prntabl1 leax i.o.buff,u ouput buffer | |
2080 sta ,x put char in buff | |
2081 ldy #1 1 char | |
2082 lbra writeout display char & return | |
2083 | |
2084 * Read in a character; check for BREAK key | |
2085 | |
2086 * modification by BRI | |
2087 * toggles cursor on/off if enabled, checks for character | |
2088 *readit ldy #1 1 char | |
2089 readit pshs b,x save previous char, input buffer pointer | |
2090 CFlsh01 clra std. input | |
2091 ldb #SS.Ready | |
2092 os9 I$GetStt | |
2093 bcc CFExit character ready, go get it | |
2094 cmpb #E$NotRdy no character ready? | |
2095 bne CrsrErr no, go check other errors | |
2096 ldx #$0001 give up remainder of tick | |
2097 os9 F$Sleep | |
2098 bcs CrsrErr go clean up & check error | |
2099 dec <CrsrCnt decrement cursor toggle counter | |
2100 lda <CrsrCnt get new counter value | |
2101 eora <CrsrFlg cursor toggle required? | |
2102 anda #%01000000 clear all but active counter bit | |
2103 beq SigChk no, go check for signal | |
2104 com <CrsrFlg toggle cursor on or off? | |
2105 beq CrsrOff go toggle cursor off | |
2106 bsr CrsrOn go toggle cursor on | |
2107 bra SigChk go check intercept routine signal code | |
2108 CrsrOff leax CursrOff,pc point [X] to cursor off string | |
2109 ldy #CursOff number of bytes in string | |
2110 bsr WritCrsr go write cursor off string | |
2111 SigChk ldb <SgnlCode get intercept routine signal code | |
2112 cmpb #S$Abort keyboard abort signal? (error #2) | |
2113 beq CrsrErr yes, go report it | |
2114 cmpb #S$Intrpt keyboard interrupt signal? (error #3) | |
2115 bne CFlsh01 no, go check for data again | |
2116 CrsrErr stb ,s save error code for sigchek2 | |
2117 bsr CrsrOn go make sure cursor is on | |
2118 puls b,x recover error code, input buffer pointer | |
2119 bra cheksig2 | |
2120 CrsrOn leax CursrOn,pc point [X] to cursor on string | |
2121 ldy #CursOn number of bytes in string | |
2122 WritCrsr lda #1 std. output | |
2123 os9 I$Write | |
2124 clrb ignore any/all errors | |
2125 rts | |
2126 CFExit bsr CrsrOn go make sure cursor is on | |
2127 puls b,x recover previous char, input buffer pointer | |
2128 ldy #1 1 char | |
2129 * end modification | |
2130 | |
2131 clra stdin | |
2132 os9 i$read read in char | |
2133 bcs cheksig2 chek for BREAK if error | |
2134 rts else return | |
2135 | |
2136 * modification by BRI | |
2137 * clears old signal, traps BREAK, | |
2138 * cleans up before reporting other errors | |
2139 * (fixes shift-BREAK/control-BREAK in edit mode and | |
2140 * error report stack clean up bugs) | |
2141 * cheksig2 cmpb #2 BREAK key signal? | |
2142 * lbne error no, process error | |
2143 * com hexascii yes, toggle hex/ascii flag | |
2144 * leas 2,s pull return addr off stack | |
2145 * bra edinput loop back | |
2146 cheksig2 leas 2,s dump return address | |
2147 clr <SgnlCode clear old signal | |
2148 cmpb #2 keyboard abort? (BREAK) | |
2149 beq TrapSgnl yes, trap it & toggle hex/ascii | |
2150 pshs b save error code | |
2151 lbsr reset reset reversed chars | |
2152 clr <rownum reset row # | |
2153 puls b recover error code | |
2154 lbra error go process error | |
2155 TrapSgnl com <hexascii yes, toggle hex/ascii flag | |
2156 lbra edinput loop back | |
2157 * end modification | |
2158 | |
2159 | |
2160 * Input a hex byte | |
2161 | |
2162 inputbyt bsr readit read in a char | |
2163 bsr digit is it valid hex digit? | |
2164 bcs edcurs no, see if it's arrow key | |
2165 lbsr writeout yes, display char | |
2166 ldb ,x save char | |
2167 | |
2168 * modification by BRI | |
2169 * bsr readit read another char | |
2170 lbsr readit read another char | |
2171 * end modification | |
2172 | |
2173 bsr digit is it valid? | |
2174 bcs edcurs no, check for arrows | |
2175 exg a,b A= 1st char | |
2176 lbsr asciihex change 2 ascii chars to hex byte | |
2177 stb [edbufptr,u] put new byte in buffer | |
2178 lda #1 | |
2179 sta wrtflag signal auto-write | |
2180 bra movert move to next byte | |
2181 | |
2182 * Check to see if char is valid hex digit. | |
2183 * Exit with Carry set if not valid. | |
2184 | |
2185 digit lda ,x get char from buffer | |
2186 cmpa #'0 < 0? | |
2187 blo notdig YES, set carry | |
2188 cmpa #'9 Between 0 & 9? | |
2189 bls gotnib Yes, return | |
2190 anda #$5F Lowercase -> Upper | |
2191 cmpa #'F > F? | |
2192 bhi notdig Yes, set carry | |
2193 cmpa #'A Between A & F? | |
2194 blo notdig No, set carry | |
2195 gotnib andcc #$fe clear carry bit | |
2196 rts | |
2197 notdig orcc #1 set carry bit | |
2198 rts | |
2199 | |
2200 * Input single ASCII character | |
2201 | |
2202 * modification by BRI | |
2203 *inputchr bsr readit read char | |
2204 inputchr lbsr readit read char | |
2205 * end modification | |
2206 | |
2207 lda ,x get char | |
2208 cmpa #$20 valid ascii char? | |
2209 blo edcurs no, check for arrows | |
2210 sta [edbufptr,u] yes, put in buffer | |
2211 lda #1 | |
2212 sta wrtflag signal auto-write | |
2213 bra movert go do next byte | |
2214 | |
2215 * Check if char is arrow (for cursor moves) | |
2216 | |
2217 edcurs cmpa #9 Right arrow? | |
2218 beq movert | |
2219 cmpa #8 Left arrow? | |
2220 beq movelt | |
2221 cmpa #$c Up arrow? | |
2222 lbeq moveup | |
2223 cmpa #$a Down arrow? | |
2224 lbeq movedn | |
2225 cmpa #$d CR? | |
2226 lbne edinput no, get another key | |
2227 | |
2228 * Exit edit routine | |
2229 lbsr reset reset reversed chars | |
2230 clr rownum reset row # | |
2231 lbra getcmd return to command level | |
2232 | |
2233 * Move to next byte on screen | |
2234 | |
2235 movert lbsr reset reset display byte | |
2236 tst seclen+1 editting partial (last) sec? | |
2237 beq rtptr no, bra | |
2238 lda edpos position # in sector | |
2239 cmpa seclen+1 last byte? | |
2240 lbeq topleft yes, bra | |
2241 rtptr ldd edbufptr get pointer | |
2242 addd #1 set to next byte | |
2243 std edbufptr save | |
2244 inc edpos | |
2245 | |
2246 displyrt inc asciicol inc display counter | |
2247 lda asciicol get counter | |
2248 cmpa #$68 at end of screen row? | |
2249 bhs rowdn yes, move down a row | |
2250 lda hexcol no, inc hex display counter | |
2251 adda #3 3 screen columns per byte | |
2252 sta hexcol save | |
2253 lbra revbyte go do next byte | |
2254 rowdn inc rownum next row | |
2255 lda rownum get row # | |
2256 cmpa #$32 past bottom row? | |
2257 lbhi topleft yes, go to top row | |
2258 lda #$25 1st hex column # | |
2259 sta hexcol reset counter | |
2260 lda #$58 1st ascii col # | |
2261 sta asciicol reset counter | |
2262 lbra revbyte go do display | |
2263 | |
2264 * Move to previous byte on screen | |
2265 | |
2266 movelt bsr reset reset displayed byte | |
2267 ldd edbufptr get data pointer | |
2268 subd #1 dec it | |
2269 std edbufptr | |
2270 dec edpos & position counter | |
2271 dec asciicol dec display counter | |
2272 lda asciicol get col # | |
2273 cmpa #$58 past left end of row? | |
2274 blo rowup yes, move up a row | |
2275 lda hexcol get hex col # | |
2276 suba #3 move left 3 columns | |
2277 sta hexcol save | |
2278 lbra revbyte | |
2279 rowup dec rownum move up a row | |
2280 lda #$52 col # of right end of hex dump | |
2281 sta hexcol save | |
2282 lda #$67 col # of right end of ascii dump | |
2283 sta asciicol save | |
2284 lda rownum get row # | |
2285 cmpa #$23 past top row? | |
2286 blo gobot yes, go to bottom row | |
2287 lbra revbyte no, display next byte | |
2288 gobot ldx edbufptr old pointer | |
2289 ldb seclen+1 partial (last) sec? | |
2290 beq botptr no, bra | |
2291 stb edpos new last position | |
2292 clra | |
2293 leax d,x new pointer with partial sector | |
2294 decb offset to byte in buffer | |
2295 pshs b | |
2296 * MSN of B is last row-1 with partial sector | |
2297 lsrb | |
2298 lsrb | |
2299 lsrb | |
2300 lsrb Now B is last row-1 | |
2301 addb #$23 | |
2302 stb rownum | |
2303 lda ,s+ offset | |
2304 anda #$0f A=last col | |
2305 pshs a | |
2306 adda #$58 left most ASCII column | |
2307 sta asciicol new ASCII col | |
2308 puls a | |
2309 ldb #3 3 columns per hex byte | |
2310 mul | |
2311 addb #$25 1st hex col | |
2312 stb hexcol | |
2313 bra savebot | |
2314 botptr lda #$32 bottom row # | |
2315 sta rownum save | |
2316 leax $100,x new pointer | |
2317 savebot stx edbufptr save new pointer | |
2318 lbra revbyte do next byte | |
2319 | |
2320 * Reset byte displayed in reverse video to normal video | |
2321 | |
2322 reset lbsr normdisp set normal video | |
2323 lbra eddisply go display byte | |
2324 | |
2325 * Move up a row on screen | |
2326 | |
2327 moveup bsr reset reset reversed byte | |
2328 ldb seclen+1 partial sector? | |
2329 beq moveup1 no, bra | |
2330 lda rownum | |
2331 cmpa #$23 at top row now? | |
2332 beq moveup2 yes, bra | |
2333 moveup1 ldd edbufptr get data pointer | |
2334 subd #$10 move back 16 bytes | |
2335 std edbufptr save new pointer | |
2336 ldb edpos | |
2337 subb #$10 dec position counter by $10 | |
2338 stb edpos | |
2339 dec rownum move up a row | |
2340 lda rownum get new row # | |
2341 cmpa #$23 above top row | |
2342 bhs updone no, go display next byte | |
2343 lda #$32 set to bottom row | |
2344 sta rownum | |
2345 ldd edbufptr get data pointer | |
2346 addd #$100 point to new byte | |
2347 std edbufptr and save | |
2348 updone lbra revbyte display next byte | |
2349 | |
2350 moveup2 andb #$f0 MSN=row offset | |
2351 lda seclen+1 bytes read | |
2352 anda #$0f last col in last row | |
2353 cmpa edpos to left of current position? | |
2354 bhs moveup3 yes, bra | |
2355 subb #$10 else correct row offset | |
2356 moveup3 clra | |
2357 pshs b,a | |
2358 ldd edbufptr | |
2359 addd ,s+ add offset | |
2360 std edbufptr | |
2361 ldb edpos | |
2362 addb ,s | |
2363 stb edpos new position | |
2364 puls b | |
2365 lsrb | |
2366 lsrb | |
2367 lsrb | |
2368 lsrb row offset in LSNib | |
2369 addb #$23 calc new rownum | |
2370 stb rownum | |
2371 bra updone | |
2372 | |
2373 * Move down a row on screen | |
2374 | |
2375 movedn bsr reset reset reversed byte | |
2376 ldb seclen+1 partial sector? | |
2377 beq movedn1 | |
2378 subb edpos | |
2379 cmpb #$10 | |
2380 blo movedn2 | |
2381 movedn1 ldd edbufptr get data pointer | |
2382 addd #$10 point 16 bytes ahead | |
2383 std edbufptr and save | |
2384 lda edpos | |
2385 adda #$10 | |
2386 sta edpos | |
2387 inc rownum move down a row | |
2388 lda rownum check to see if below | |
2389 cmpa #$32 bottom row? | |
2390 lbls revbyte no, display next byte | |
2391 ldd edbufptr get data pointer | |
2392 subd #$100 reset to new byte | |
2393 std edbufptr save | |
2394 topptr lda #$23 yes, set for top row | |
2395 sta rownum save | |
2396 lbra revbyte display next byte | |
2397 | |
2398 movedn2 clra | |
2399 ldb edpos | |
2400 decb | |
2401 andb #$f0 B = offset to first row | |
2402 pshs b,a | |
2403 ldd edbufptr | |
2404 subd ,s+ reset pointer | |
2405 std edbufptr | |
2406 ldb edpos | |
2407 subb ,s+ reset position counter | |
2408 stb edpos | |
2409 bra topptr | |
2410 | |
2411 | |
2412 * Start new SHELL | |
2413 | |
2414 goshell lda oldecho get original echo status | |
2415 sta echobyte set up for change | |
2416 bsr echo set echo | |
2417 leax shell$,pcr point to 'SHELL' text | |
2418 ldy #$10 # pages in new param area | |
2419 leau i.o.buff,u new param area | |
2420 lda #$0d CR to | |
2421 sta ,u init param area | |
2422 ldd #$0000 language/type | |
2423 os9 f$fork fork to new shell | |
2424 lbcs error | |
2425 os9 f$wait wait for shell to die | |
2426 ldu usave pull data pointer | |
2427 leax inbuff,u | |
2428 stx buffptr reset buffer pointer | |
2429 clr echobyte echo off | |
2430 bsr echo set echo | |
2431 redo lbsr clrscr clear screen | |
2432 lbra disploop redo display | |
2433 | |
2434 * Read in option section (32 bytes) of stdin path descriptor & turn echo on/off | |
2435 | |
2436 echo pshs x save | |
2437 leas -32,s make room for data | |
2438 leax ,s point to buffer | |
2439 clra path = 0 | |
2440 clrb SS.OPT | |
2441 os9 i$getstt read in 32 bytes | |
2442 lbcs error | |
2443 lda echobyte new echo status byte | |
2444 sta 4,x set echo | |
2445 clra path =0 | |
2446 os9 i$setstt set new status | |
2447 lbcs error | |
2448 leas 32,s reset stack | |
2449 puls x,pc pull x & return | |
2450 | |
2451 * Verify CRC on file, if it's a valid module. | |
2452 | |
2453 verify lbsr movecmd position cursor | |
2454 leax vrfymess,pcr display message | |
2455 lbsr pstring | |
2456 ldu #$0000 | |
2457 ldx #$0000 | |
2458 stx fileln init file length | |
2459 lda inpath path # | |
2460 os9 i$seek rewind to LSN 0 | |
2461 lbcs error | |
2462 ldu Usave restore U | |
2463 initCRC ldd #$FFFF initialize CRC bytes | |
2464 std crc | |
2465 stb crc+2 | |
2466 leax i.o.buff,u input buffer | |
2467 ldy #8 8 bytes to read | |
2468 lda inpath path # | |
2469 os9 i$read read in 8 header bytes | |
2470 lbcs error exit on error | |
2471 cmpy #8 all read in ok? | |
2472 lbne verr no, error | |
2473 ldd ,x get 1st 2 bytes read in | |
2474 cmpa #$87 module sync byte? | |
2475 lbne verr no, error | |
2476 cmpb #$CD module sync byte? | |
2477 lbne verr no, error | |
2478 ldd 2,x get module length | |
2479 cmpd #$f minimum module length | |
2480 lbls verr exit if less | |
2481 subd #3 omit old CRC bytes | |
2482 std vmodlen module length less CRC | |
2483 addd fileln update file length | |
2484 std fileln read so far | |
2485 | |
2486 * Check header parity by EOR'ing 1st 8 bytes to themselves, then taking | |
2487 * the one's complement. This is the 9th header byte, the parity check. | |
2488 | |
2489 clra prepare for EORs | |
2490 ldb #8 # header bytes to EOR | |
2491 hedpar eora ,x+ EOR bytes read in | |
2492 decb done? | |
2493 bne hedpar no, bra | |
2494 coma A now is header parity | |
2495 sta ,x put in buffer | |
2496 ldy #1 1 char to write | |
2497 lda inpath path # | |
2498 os9 i$write write parity byte out | |
2499 lbcs error | |
2500 ldd vmodlen get # byte in module | |
2501 subd #9 9 bytes already read | |
2502 std vmodlen save | |
2503 leax i.o.buff,u start of header bytes | |
2504 ldy #9 | |
2505 bsr CRCcal calculate CRC on 1st 9 bytes | |
2506 bytsleft lda inpath path # | |
2507 ldy #bufsiz # chars to read | |
2508 cmpy vmodlen buffer <= # bytes left to read? | |
2509 bls readmod yes, bra | |
2510 ldy vmodlen else, get exact # chars left to read | |
2511 readmod os9 i$read read in Y chars | |
2512 bcs verr exit on error | |
2513 sty bytsread save # bytes read in | |
2514 bsr CRCcal calc CRC on bytes just read in | |
2515 ldd vmodlen # bytes | |
2516 subd bytsread minus # bytes just read in | |
2517 std vmodlen save # byte left | |
2518 bne bytsleft do more if some left | |
2519 * Compare current position in file with # of bytes in module header | |
2520 * to prevent overwriting next module, in case module length changed. | |
2521 lda inpath path number | |
2522 ldb #ss.pos file position code | |
2523 os9 i$getstt get position in file | |
2524 tfr u,d D = position | |
2525 ldu Usave restore U | |
2526 cmpd fileln same as bytes read so far? | |
2527 bne verr no, exit | |
2528 com crc do one's | |
2529 com crc+1 complement on | |
2530 com crc+2 CRC accumulator | |
2531 leax crc,u point to accumulator | |
2532 ldy #3 3 bytes to write | |
2533 lda inpath path # | |
2534 os9 i$write write out 3 CRC bytes | |
2535 lbcs error | |
2536 ldd #3 update # bytes read/written | |
2537 addd fileln | |
2538 std fileln | |
2539 ldb #ss.eof test for EOF | |
2540 lda inpath | |
2541 os9 i$getstt | |
2542 lbcc initCRC bra if not EOF | |
2543 cmpb #e$eof EOF? | |
2544 lbne error no, exit | |
2545 * Redisplay LSN (may have changed with verify) | |
2546 lbsr seeksec read in sector again | |
2547 lbra disploop redo display | |
2548 | |
2549 * Calculate CRC sub. Enter with Y = # of bytes to calculate CRC over. | |
2550 * X = address of 1st byte | |
2551 | |
2552 CRCcal leau crc,u point to CRC bytes | |
2553 os9 f$crc calc CRC | |
2554 lbcs error | |
2555 ldu Usave restore U | |
2556 rts | |
2557 | |
2558 * Verify error display sub | |
2559 | |
2560 verr ldd #cmdpos position cursor | |
2561 lbsr movecurs at cmd position | |
2562 leax verrmess,pcr point to message | |
2563 lbsr pstring display it | |
2564 ldb #e$bmid bad module ID | |
2565 lbsr prterr display error # | |
2566 lbra getcmd exit | |
2567 | |
2568 * 'Link' to a given module or display all modules if no name is input | |
2569 | |
2570 linker tst infile linked already? | |
2571 lbne getcmd yes, exit | |
2572 ldd #0 | |
2573 std fileln init vars | |
2574 std lmodlen " | |
2575 clr echobyte | |
2576 com echobyte | |
2577 lbsr echo echo on | |
2578 lbsr movecmd | |
2579 lbsr clrline | |
2580 leax linkmess,pcr prompt | |
2581 lbsr pstring print it | |
2582 leax infile,u point to buffer for module name | |
2583 ldy #30 max name length+1 | |
2584 lbsr readlin read in module name | |
2585 clr echobyte | |
2586 lbsr echo echo off | |
2587 cmpy #1 any name entered? | |
2588 lbne parsmod yes, go find it | |
2589 * else list all module names | |
2590 clr infile flag => no modules linked | |
2591 leax linkhdr,pcr point to header | |
2592 lbsr wrtlin1 write it | |
2593 nxtmod ldd lmodlen current mod length | |
2594 addd fileln + cummulative lengths | |
2595 std fileln save | |
2596 tfr d,u point u to next module | |
2597 ldx #0 | |
2598 lda inpath | |
2599 os9 i$seek | |
2600 bcs moderr | |
2601 ldu Usave restore U | |
2602 leax i.o.buff,u | |
2603 ldy #6 bytes to read | |
2604 os9 i$read | |
2605 bcs moderr | |
2606 ldd ,x++ get sync bytes | |
2607 cmpa #$87 OK? | |
2608 bne moderr1 no, exit | |
2609 cmpb #$CD OK? | |
2610 bne moderr1 no, exit | |
2611 leay i.o.buff,u | |
2612 ldd ,x++ get module length | |
2613 std lmodlen save | |
2614 ldd ,x++ offset to module name | |
2615 pshs d save | |
2616 ldd fileln current offset | |
2617 bsr convert2 convert D to ASCII | |
2618 lda #$20 space | |
2619 sta ,y+ put in buffer | |
2620 ldd lmodlen current module length | |
2621 bsr convert2 convert to ASCII | |
2622 lda #$20 | |
2623 sta ,y+ insert space | |
2624 ldd fileln offset to mod start | |
2625 addd ,s++ add mod name offset | |
2626 tfr d,u U = offset to name | |
2627 ldx #0 | |
2628 lda inpath | |
2629 os9 i$seek seek to module name | |
2630 lbcs error | |
2631 ldu Usave restore U | |
2632 tfr y,x point x to buffer | |
2633 ldy #29 max chars in name | |
2634 lda inpath | |
2635 os9 i$read | |
2636 lbcs error | |
2637 namend lda ,x+ find char w/ bit 7 set | |
2638 bpl namend | |
2639 anda #$7f clear bit 7 | |
2640 sta -1,x | |
2641 lda #$0d CR | |
2642 sta ,x end output line | |
2643 leax i.o.buff,u buffer start | |
2644 lbsr wrtlin1 | |
2645 bra nxtmod | |
2646 | |
2647 convert2 lbsr convert1 put ASCII val of A in Y | |
2648 tfr b,a repeat for B | |
2649 lbra convert1 and return | |
2650 | |
2651 moderr2 cmpb #e$eof | |
2652 bne moderr | |
2653 ldb #e$MNF module not found error | |
2654 bra moderr | |
2655 moderr1 ldb #E$BMID bad module ID error | |
2656 moderr clr infile flag => not linked | |
2657 cmpb #e$eof end of file? | |
2658 lbne error no, print error | |
2659 lbsr read1 wait for keypress | |
2660 leax inbuff,u | |
2661 stx buffptr reset buffer pointer for display | |
2662 lbra redo redo display | |
2663 | |
2664 parsmod os9 f$prsnam | |
2665 lbcs error | |
2666 stb modnmlen save length of name | |
2667 decb name len -1 | |
2668 lda b,x last char of name | |
2669 ora #$80 set bit 7 | |
2670 sta b,x | |
2671 stx CRC save pointer | |
2672 ldu #0 | |
2673 modloop ldx #0 | |
2674 lda inpath | |
2675 os9 i$seek go to start of file | |
2676 lbcs error | |
2677 ldu Usave restore U | |
2678 leax i.o.buff,u buffer | |
2679 ldy #6 bytes to read in | |
2680 os9 i$read | |
2681 bcs moderr2 | |
2682 ldd ,x++ sync bytes | |
2683 cmpa #$87 OK? | |
2684 bne moderr1 | |
2685 cmpb #$CD OK? | |
2686 bne moderr1 | |
2687 ldd ,x++ module length | |
2688 std lmodlen save | |
2689 ldd ,x mod name offset | |
2690 addd fileln d=true offset to name | |
2691 tfr d,u | |
2692 ldx #0 | |
2693 lda inpath | |
2694 os9 i$seek seek to mod name | |
2695 bcs moderr2 | |
2696 ldu Usave restore U | |
2697 leax i.o.buff,u buffer | |
2698 ldy #29 max chars in name | |
2699 os9 i$read read in name | |
2700 bcs moderr2 | |
2701 tfr x,y | |
2702 ldx CRC point to desired name | |
2703 ldb modnmlen get len of name | |
2704 os9 f$cmpnam do they match? | |
2705 bcc newbase yes, bra | |
2706 ldd lmodlen no, check next | |
2707 addd fileln new offset | |
2708 std fileln | |
2709 tfr d,u | |
2710 bra modloop | |
2711 | |
2712 * Set Offset to module. LSN is functionally set to 0. | |
2713 | |
2714 newbase lda #$0d CR | |
2715 sta b,x delimit name | |
2716 decb | |
2717 lda b,x last char | |
2718 anda #$7f clr bit 7 | |
2719 sta b,x | |
2720 ldd fileln get offset | |
2721 std offset | |
2722 ldd #0006 | |
2723 leax LSN,u | |
2724 nbloop sta ,x+ | |
2725 decb | |
2726 bne nbloop | |
2727 lbra readloop go read 1st 'LSN' | |
2728 | |
2729 * Display module name and offset | |
2730 | |
2731 prntmod ldd #modpos | |
2732 lbsr movecurs point to screen position | |
2733 leax modnmhdr,pcr mod name header | |
2734 lbsr pstring print it | |
2735 leax infile,u point to name | |
2736 lbsr wrtlin1 print it | |
2737 ldd #offpos 'offset' screen postion | |
2738 lbsr movecurs | |
2739 leax offmess,pcr | |
2740 lbsr pstring print 'Offset' label | |
2741 leay i.o.buff,u | |
2742 ldd offset | |
2743 lbsr convert2 convert offset to ASCII | |
2744 lda #$0d | |
2745 sta ,y delimit offset | |
2746 lbra writeout display it & return | |
2747 | |
2748 * 'Unlink' named module and restore LSN to original file's LSN | |
2749 | |
2750 unlinker tst infile linked? | |
2751 lbeq getcmd no, exit | |
2752 ldd #0008 | |
2753 leax LSN,u | |
2754 unloop sta ,x+ | |
2755 decb | |
2756 bne unloop | |
2757 ldd #modpos position cursor | |
2758 lbsr movecurs | |
2759 lbsr clrline erase module name | |
2760 lbsr clrline erase offset | |
2761 clr infile flag => no modules linked | |
2762 lbra readloop | |
2763 | |
2764 * Toggle expert mode - edits and zaps of buffer are automatically written | |
2765 | |
2766 expert tst xprtflag in expert mode now? | |
2767 beq xprton no, go turn it on | |
2768 clr xprtflag signal mode off | |
2769 ldd #xprtpos | |
2770 lbsr movecurs | |
2771 lbsr clrline erase label | |
2772 xprtout lbra getcmd | |
2773 xprton lbsr rusure Sure? | |
2774 bne xprtout no, exit | |
2775 com xprtflag signal xpert mode | |
2776 ldd #xprtpos | |
2777 lbsr movecurs position cursor | |
2778 leax xprtmess,pcr | |
2779 lbsr pstring display 'EXPERT' | |
2780 bra xprtout | |
2781 | |
2782 help lbsr clrscr clear screen | |
2783 leax helper,pcr point to help message | |
2784 ldy #helpchrs length of message | |
2785 lbsr wrtlin2 print it | |
2786 leax i.o.buff,u | |
2787 lbsr Read1 get 1 byte | |
2788 lbra redo redo display | |
2789 | |
2790 find | |
2791 clr echobyte | |
2792 com echobyte echo on | |
2793 lbsr echo | |
2794 lbsr movecmd | |
2795 lbsr clrline | |
2796 tst FHexAsc Hex or Ascii mode? | |
2797 bne charfind bra if Ascii | |
2798 leax findbyte,pcr | |
2799 lbsr pstring display prompt | |
2800 ldy #33 max chars to read + 1 | |
2801 lbsr FRead | |
2802 cmpy #1 blank line entered? | |
2803 lbeq exitfind yes, exit find mode | |
2804 leay -1,y get rid of CR | |
2805 tfr y,d | |
2806 lsrb divide # bytes read by 2 | |
2807 lbcs badfind bra if odd # read | |
2808 stb TargLen save # bytes in find string | |
2809 leau findstr,u point to storage area | |
2810 * Convert 2 bytes pointed to by X to object byte in A | |
2811 FConvert lbsr hexobjct | |
2812 lbcs badfind bra if invalid char | |
2813 sta ,u+ save byte | |
2814 leay -2,y all chars converted? | |
2815 bne FConvert no, bra | |
2816 ldu Usave restore U | |
2817 bra gofind | |
2818 | |
2819 * Input a string of ASCII characters to search for | |
2820 | |
2821 charfind leax findchar,pcr | |
2822 lbsr pstring display prompt | |
2823 ldy #17 max # of chars + 1 | |
2824 lbsr FRead | |
2825 cmpy #1 only CR entered? | |
2826 lbeq exitfind yes, exit find mode | |
2827 tfr y,d # bytes read | |
2828 decb dump CR | |
2829 stb TargLen save length of target string | |
2830 leay findstr,u | |
2831 find20 lda ,x+ move target | |
2832 sta ,y+ string to storage area | |
2833 decb done? | |
2834 bne find20 | |
2835 | |
2836 * Check if byte from target string matches byte in buffer by EOR'ing the two. | |
2837 * If they match exactly, result is 0. If in 'char' search mode, EOR results | |
2838 * in bits 5 and/or 7 being set if 2 bytes differ only by case or bit 7 status | |
2839 | |
2840 gofind | |
2841 ***************************** | |
2842 * Added 01/08/90 (RAK) | |
2843 * | |
2844 clr echobyte echo off | |
2845 lbsr echo | |
2846 * | |
2847 * END of modification | |
2848 ***************************** | |
2849 leax inbuff,u point to sector buffer | |
2850 find30 ldb seclen+1 # bytes in this sector | |
2851 leay findstr,u point to target string | |
2852 find50 lda ,y get 1st target byte | |
2853 eora ,x+ does it match? | |
2854 lbeq found1 yes, bra | |
2855 tst FHexAsc in 'char' search mode? | |
2856 beq find60 no, bra | |
2857 bita #%01011111 else, only bits 5 &/or 7 set? | |
2858 lbeq found1 bra if so | |
2859 find60 decb whole sector checked? | |
2860 find70 bne find50 no, bra | |
2861 * No match in this sector. Read in next sector. | |
2862 | |
2863 **************************************************** | |
2864 * Modification (addition) by RAK 01/08/90 | |
2865 * Read a character from std in to catch a break | |
2866 * key which allows aborting a <F>IND. | |
2867 * Note: "finderr2" resets the stack. | |
2868 * | |
2869 pshs d,x,y save registers | |
2870 clra std in | |
2871 ldb #SS.Ready | |
2872 os9 I$GetStt was there a key press? | |
2873 bcs NoKey no, skip read | |
2874 leax i.o.buff,u point to buffer | |
2875 lbsr Read1 get a key | |
2876 lda ,x get the key | |
2877 cmpa #5 break key? | |
2878 beq finderr2 yes, stop <F>ind | |
2879 NoKey puls d,x,y no, restore registers | |
2880 * | |
2881 * End of modification | |
2882 **************************************************** | |
2883 | |
2884 bsr FNxtsec get next sector | |
2885 bra find30 back to loop | |
2886 | |
2887 FNxtSec tst infile module linked? | |
2888 beq find75 no, bra | |
2889 ldd lmodlen else, get module length | |
2890 subd #1 now A = LSN of last sector | |
2891 cmpa LSN+2 was this last sector? | |
2892 beq finderr2 yes, bra | |
2893 find75 ldd lsn+1 else, get next sector | |
2894 addd #1 inc lsn | |
2895 std lsn+1 | |
2896 bne find80 bra if no carry needed | |
2897 inc lsn else, do add in carry | |
2898 find80 lbsr lsnseek seek to next sector | |
2899 leax inbuff,u point to sector buffer | |
2900 stx buffptr save | |
2901 tst infile module linked? | |
2902 beq find256 no, bra | |
2903 ldd lmodlen linked mod length | |
2904 suba lsn+2 > $100 bytes left? | |
2905 bne find256 yes, bra | |
2906 tfr d,y else, set up for smaller read | |
2907 bra FRdSome | |
2908 find256 ldy #$100 | |
2909 FRdSome lda inpath | |
2910 os9 i$read | |
2911 bcs finderr | |
2912 sty seclen save # bytes read | |
2913 rts | |
2914 | |
2915 * Input byte or char string to find | |
2916 | |
2917 FRead leax i.o.buff,u | |
2918 clra stdin | |
2919 os9 i$readln | |
2920 bcs cheksig3 | |
2921 rts | |
2922 | |
2923 ChekSig3 leas 2,s scratch return addr | |
2924 clr SgnlCode clear old signal | |
2925 cmpb #2 BREAK key? | |
2926 lbne error no, exit | |
2927 com FHexAsc yes, toggle Hex/Ascii flag | |
2928 lbra find | |
2929 | |
2930 badfind ldu Usave restore U | |
2931 bsr beep | |
2932 lbra find | |
2933 | |
2934 * Make a beep | |
2935 beep leax bell,pcr | |
2936 ldy #1 | |
2937 lbra writeout beep & return | |
2938 | |
2939 * If error reading next sector was EOF, then find was unsuccessful. | |
2940 * Re-read original sector and return to CMD: prompt | |
2941 | |
2942 finderr cmpb #e$eof EOF? | |
2943 lbne error no, exit | |
2944 finderr2 lds Ssave dump return addr | |
2945 ldd oldlsn original LSN | |
2946 std lsn | |
2947 lda oldlsn+2 | |
2948 sta lsn+2 | |
2949 lbsr seeksec read original LSN | |
2950 sty seclen save bytes read | |
2951 bsr beep | |
2952 | |
2953 exitfind lbra exitzap exit | |
2954 | |
2955 found1 pshs b # bytes left in sector + 1 | |
2956 decb # save bytes left if this search unsuccessful | |
2957 stb FBytes and for 'Next' command | |
2958 * Save pointer (X) to next byte in buffer for search to resume if this search | |
2959 * is unsuccessful or for 'Next' command | |
2960 stx findptr pointer for next search | |
2961 ldb TargLen #bytes in target string | |
2962 find90 decb whole string checked? | |
2963 beq matched yes, match found | |
2964 dec ,s else, more bytes left in sector? | |
2965 beq find130 no, read in next | |
2966 find100 leay 1,y else, point to next target byte | |
2967 lda ,y target byte | |
2968 eora ,x+ match? | |
2969 beq find90 yes, loop back for more | |
2970 tst FhexAsc in 'char' search mode? | |
2971 beq find110 no, bra | |
2972 bita #%01011111 only bits 5 &/or 7 set? | |
2973 beq find90 yes, bra | |
2974 find110 leas 1,s else, dump counter | |
2975 * Restore buffer pointer (X) to byte after 1st byte found that matched in | |
2976 * search just completed (unsuccessfully). Restore B to # bytes left in | |
2977 * sector at that point. Y = start of target string. | |
2978 ldx findptr ready for new search | |
2979 find120 leay findstr,u | |
2980 ldb FBytes bytes left in sector | |
2981 lbra find70 | |
2982 | |
2983 * Read in next sector to complete test for match | |
2984 find130 leas 1,s dump counter | |
2985 pshs b,y save counter & target pointer | |
2986 lbsr FNxtSec read in next sector | |
2987 puls b,y restore counter & target pointer | |
2988 lda seclen+1 # bytes in this sector | |
2989 pshs a save | |
2990 bra find100 continue search | |
2991 | |
2992 * Successful Find | |
2993 * Must determine whether target string starts in last LSN read or | |
2994 * next-to-last, for display. | |
2995 | |
2996 matched leas 1,s dump counter | |
2997 lda lsn+2 | |
2998 cmpa oldlsn+2 did we have to read a new sector? | |
2999 beq match40 no, bra | |
3000 cmpx findptr does target start in last sector read? | |
3001 bhs match30 yes, bra | |
3002 match10 ldd lsn+1 else, set to re-read previous LSN | |
3003 subd #1 | |
3004 std lsn+1 | |
3005 cmpd #$ffff | |
3006 bne match20 | |
3007 dec lsn | |
3008 match20 lbsr seeksec re-read sector | |
3009 sty seclen save bytes read ($100) | |
3010 match30 ldd lsn update 'oldlsn' | |
3011 std oldlsn | |
3012 lda lsn+2 | |
3013 sta oldlsn+2 | |
3014 match40 lbsr display (re)display sector | |
3015 * Get offset of found string from beginning of LSN | |
3016 ldd findptr addr 1 byte past start of found string | |
3017 subd #1 D = addr of string | |
3018 std edbufptr save for display | |
3019 subd buffptr D (B) = offset from buff start | |
3020 * Now LS nib of B = col #, MS nib = row # for display | |
3021 pshs b | |
3022 andb #$0f mask off MS nibble | |
3023 pshs b | |
3024 addb #$58 add offset for ascii dump column | |
3025 stb asciicol | |
3026 puls b | |
3027 lda #3 3 screen columns per hex byte dump | |
3028 mul | |
3029 addb #$25 add offset for hex dump column | |
3030 stb hexcol | |
3031 puls b | |
3032 andb #$f0 mask off LS nibble | |
3033 lsrb | |
3034 lsrb | |
3035 lsrb | |
3036 lsrb B now = row # | |
3037 addb #$23 add offset | |
3038 stb rownum | |
3039 lbsr revdisp reverse video | |
3040 lbsr eddisply display 1st byte in found string | |
3041 lbsr normdisp normal video | |
3042 clr rownum | |
3043 lbra exitfind done *** This line changed from 'lbra getcmd' in Version 2.0 *** | |
3044 | |
3045 * Locate next occurrence of string located with 'Find' command. | |
3046 * Search starts where 'Find' left off, unless LSN has since changed, | |
3047 * in which case search starts at start of present LSN | |
3048 | |
3049 next tst TargLen is there a string to find? | |
3050 lbeq getcmd no, exit | |
3051 lbsr movecmd | |
3052 leax srchmess,pcr | |
3053 lbsr pstring display "Searching" | |
3054 ldx findptr pointer into buffer where 'find' left off | |
3055 lbeq gofind 0 => begin at start of LSN | |
3056 lbra find120 | |
3057 | |
3058 * Display file size and input new value | |
3059 | |
3060 diddle lbsr movecmd | |
3061 leax lenmess,pcr | |
3062 lbsr pstring | |
3063 com zeroflag suppress leading zeroes | |
3064 leay i.o.buff,u | |
3065 ldd FileLen MSB of file length | |
3066 lbsr convert1 convert 1st nibble to ascii | |
3067 tfr b,a | |
3068 lbsr convert1 do 2nd nibble | |
3069 ldd FileLen+2 LSB of file length | |
3070 lbsr convert1 do 3rd nibble | |
3071 clr zeroflag stop suppressing leading zeroes | |
3072 tfr b,a | |
3073 lbsr convert1 | |
3074 ldd #$2020 | |
3075 std ,y++ | |
3076 std ,y++ | |
3077 leax i.o.buff,u | |
3078 stx bytsread temp storage | |
3079 tfr y,d | |
3080 subd bytsread get # chars to display | |
3081 tfr d,y setup for i$writln | |
3082 lbsr writeout | |
3083 leax newmess,pcr | |
3084 lbsr pstring display message | |
3085 ldy #9 max chars to read | |
3086 lbsr MakeHex convert them to object | |
3087 bcs diddle | |
3088 ldd #cmd1pos | |
3089 lbsr movecurs | |
3090 lbsr rusure10 ask 'Sure?' | |
3091 lbne getcmd | |
3092 ldx HexBuff MSB of new file length | |
3093 ldu HexBuff+2 LSB "" | |
3094 ldb #ss.size | |
3095 lda inpath | |
3096 os9 i$setstt set new file length | |
3097 lbcs error | |
3098 stx FileLen | |
3099 stu FileLen+2 | |
3100 ldu Usave | |
3101 * Make sure LSN displayed is still within file (in case file shortened). | |
3102 * If not, reset display to show last LSN with new file length. | |
3103 lda FileLen MSB of file length | |
3104 cmpa lsn is max LSN > current LSN? | |
3105 blo RstLSN no, bra | |
3106 bne diddled else, bra if LSN not last | |
3107 ldd FileLen+1 check LSB's (MSB's equal) | |
3108 cmpd lsn+1 | |
3109 bls RstLSN10 | |
3110 diddled lbra readloop re-read sector & display | |
3111 | |
3112 RstLSN sta lsn reset MSB of lsn | |
3113 ldd FileLen+1 get LSB's of last sector | |
3114 RstLSN10 tst FileLen+3 need to correct? | |
3115 bne RstLSN20 | |
3116 subd #1 | |
3117 RstLSN20 std lsn+1 reset LSB's of lsn | |
3118 * If D was 0, need to 'borrow' | |
3119 cmpd #$ffff was D 0? | |
3120 bne diddled no, bra | |
3121 dec lsn else, correct LSB of LSN | |
3122 bra diddled | |
3123 | |
3124 push lda StackCnt # of LSN's on stack | |
3125 cmpa #MaxStack more room? | |
3126 bhs full no, bra | |
3127 ldb #3 3 bytes per entry | |
3128 mul | |
3129 leax Stack,u start of stack | |
3130 leax b,x add offset | |
3131 ldd lsn | |
3132 std ,x++ put current LSN on stack | |
3133 lda lsn+2 | |
3134 sta ,x | |
3135 * Now that LSN is on stack, check to make sure it isn't the last one | |
3136 * pushed, as well. If so, don't increment StackCnt, which effectively | |
3137 * cancels the Push operation. | |
3138 tst StackCnt any sectors thus far? | |
3139 beq pushOK no, do push | |
3140 cmpa -3,x Is LSB of LSN the same as previous LSN pushed? | |
3141 bne pushOK no, bra | |
3142 ldd lsn check MS bytes of LSN | |
3143 cmpa -5,x do they match? | |
3144 beq pushed yes, exit without completing push | |
3145 pushOK inc StackCnt complete push | |
3146 pushed lbra getcmd exit | |
3147 | |
3148 * Stack is full - display message | |
3149 full lbsr movecmd | |
3150 leax fullmess,pcr | |
3151 lbsr pstring display | |
3152 lbsr read1 wait for keypress | |
3153 bra pushed | |
3154 | |
3155 remove lda StackCnt # sectors on stack | |
3156 beq pushed exit if none | |
3157 ldb #3 3 bytes per entry | |
3158 mul offset to END of entry | |
3159 subb #3 no B = offset to entry | |
3160 leax Stack,u | |
3161 leax b,x point to entry | |
3162 ldd ,x++ get MS bytes of LSN | |
3163 std lsn | |
3164 lda ,x get LS byte of LSN | |
3165 sta lsn+2 reset LSN | |
3166 dec StackCnt 1 less sector on stack | |
3167 lbra readloop and go read in new sector | |
3168 | |
3169 emod | |
3170 dEDend equ * | |
3171 end | |
3172 | |
3173 ENDC |