Rev 1035 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
623 | savelij | 1 | |
1186 | savelij | 2 | ; LAST UPDATE: 16.02.2025 savelij |
623 | savelij | 3 | |
764 | savelij | 4 | PAGE |
5 | TITLE "evo-dos.a80" |
||
6 | |||
623 | savelij | 7 | include ../../macros.a80 |
8 | include ../../define.a80 |
||
9 | include ../../global_vars.a80 |
||
665 | savelij | 10 | include ../../bas_trd_vars.a80 |
678 | savelij | 11 | include ../../basic_tokens.a80 |
764 | savelij | 12 | include ../../evodos_vars.a80 |
839 | savelij | 13 | include ../../version.a80 |
678 | savelij | 14 | include macros.a80 |
623 | savelij | 15 | |
16 | ZASTV_X EQU 7 ; X BETA128 |
||
678 | savelij | 17 | ZASTV_Y EQU 7 ; Y BETA128 |
623 | savelij | 18 | ZASTV_PIX EQU ZASTV_Y*0X20+0X4000+ZASTV_X+9 ; |
19 | ZASTV_ATR EQU ZASTV_Y*0X20+0X5800+ZASTV_X ; |
||
20 | |||
678 | savelij | 21 | ORG 0 |
22 | di |
||
761 | savelij | 23 | ld de,0xffff |
795 | savelij | 24 | |
25 | ; HONEY COMANDER |
||
1035 | savelij | 26 | ; ld a,7 |
27 | ; jr loc_9 |
||
795 | savelij | 28 | JP LOC_3C50 |
623 | savelij | 29 | |
795 | savelij | 30 | DB 1 |
31 | |||
678 | savelij | 32 | nop |
795 | savelij | 33 | loc_9 out (0xfe),a |
761 | savelij | 34 | ld a,0x3f |
35 | jr loc_24 |
||
623 | savelij | 36 | |
678 | savelij | 37 | DUPL 0X0010-$,0 |
761 | savelij | 38 | jp PRINT_A_ ;RST 10 |
623 | savelij | 39 | |
40 | DUPL ADR_SEL_ROM-$,0XFF |
||
41 | LOC_14 OUT (C),A |
||
42 | NOP |
||
43 | RET |
||
44 | |||
627 | savelij | 45 | DUPL 0X0018-$,0XFF |
761 | savelij | 46 | jp PRINT_MSG ;RST 18 |
623 | savelij | 47 | |
48 | DUPL 0X0020-$,0XFF |
||
761 | savelij | 49 | jp CALL2BASIC ;RST 20 48 |
623 | savelij | 50 | |
678 | savelij | 51 | loc_24 LD HL,0XFFFF |
761 | savelij | 52 | jr loc_2B |
623 | savelij | 53 | |
761 | savelij | 54 | jp ADR_OPEN_CHAN ;RST 28 |
623 | savelij | 55 | |
678 | savelij | 56 | loc_2B LD I,A |
627 | savelij | 57 | XOR A |
58 | JR LOC_33 |
||
59 | |||
761 | savelij | 60 | IF EMU |
61 | JP RST30_WORK ;RST 30 |
||
62 | ELSE |
||
63 | DUPL 0X33-$,0XFF |
||
64 | ENDIF |
||
627 | savelij | 65 | |
66 | LOC_33 LD SP,HL |
||
67 | LD B,A |
||
68 | LD C,A |
||
678 | savelij | 69 | JR loc_3A |
623 | savelij | 70 | |
761 | savelij | 71 | ei ;RST 38 |
678 | savelij | 72 | ret |
623 | savelij | 73 | |
678 | savelij | 74 | loc_3A REPT 8 |
623 | savelij | 75 | PUSH BC |
76 | ENDM |
||
77 | LD HL,0XA500 |
||
78 | ADD HL,SP |
||
678 | savelij | 79 | JR C,loc_3A |
761 | savelij | 80 | ld (P_RAMT),hl |
81 | ld de,0x3eaf |
||
82 | ld bc,0xa8 |
||
83 | ld a,e |
||
84 | ex de,hl |
||
85 | ld sp,0x6000 |
||
86 | ld (TRD_5F00),hl |
||
87 | ld hl,loc_79 |
||
88 | push hl |
||
89 | ld hl,loc_3D2F |
||
90 | push hl |
||
91 | ld hl,0xb8ed ; LDDR |
||
92 | jr EXECUTECOM2HL |
||
623 | savelij | 93 | |
761 | savelij | 94 | jp MAGIC |
623 | savelij | 95 | |
761 | savelij | 96 | EXECUTECOM2HL ld (TRD_5F10),hl |
97 | push af |
||
98 | ld a,0xc9 |
||
99 | ld (TRD_5F12),a |
||
100 | pop af |
||
101 | ld hl,(TRD_5F00) |
||
102 | jp TRD_5F10 |
||
623 | savelij | 103 | |
761 | savelij | 104 | loc_79 ex de,hl |
105 | inc hl |
||
106 | ld (UDG),hl |
||
107 | dec hl |
||
108 | ld bc,0x40 ; |
||
109 | ld (RASP),bc |
||
110 | ld (RAMTOP),hl |
||
111 | ld hl,0x3C00 |
||
112 | ld (CHARS),hl |
||
113 | ld hl,(RAMTOP) |
||
114 | ld (hl),0x3e |
||
115 | dec hl |
||
116 | ld sp,hl |
||
117 | dec hl |
||
118 | dec hl |
||
119 | ld (ERR_SP),hl |
||
120 | ld de,0x1303 |
||
121 | push de |
||
122 | im 1 |
||
123 | ld iy,ERR_NR |
||
124 | ld hl,TRD_5CB6 ; INTERFACE1 |
||
125 | ld (CHANS),hl |
||
126 | ld de,0x15af |
||
127 | ld bc,0x15 |
||
128 | ex de,hl |
||
129 | call COPY_BAS2VARS |
||
130 | ex de,hl |
||
131 | dec hl |
||
132 | ld (DATADD),hl |
||
133 | inc hl |
||
134 | ld (PROG),hl |
||
135 | ld (VARS),hl |
||
136 | ld (hl),0x80 |
||
137 | inc hl |
||
138 | ld (E_LINE),hl ; |
||
139 | ld (hl),0x0d |
||
140 | inc hl |
||
141 | ld (hl),0x80 |
||
142 | inc hl |
||
143 | ld (WORKSP),hl |
||
144 | ld (STKBOT),hl |
||
145 | ld (STKEND),hl |
||
146 | ld a,0x38 |
||
147 | ld (ATTR_P),a |
||
148 | ld (ATTR_T),a |
||
149 | ld (BORDCR),a |
||
150 | ld hl,0x0523 |
||
151 | ld (REPDEL),hl |
||
152 | dec (iy-0x3a) |
||
153 | dec (iy-0x36) |
||
154 | ld hl,0x15c6 |
||
155 | ld de,STRMS |
||
156 | ld bc,0x0e |
||
157 | call COPY_BAS2VARS |
||
158 | set 1,(iy+1) |
||
159 | ld hl,TRD_5CC2 ; #C9. TR-DOS BASIC |
||
160 | ld (hl),0xc9 |
||
161 | rst 0x20 |
||
162 | dw 0x0edf ; ⪠ ਭ |
||
163 | ld hl,DF_SZ ; |
||
164 | ld (hl),2 |
||
165 | ld hl,0x128b |
||
166 | push hl |
||
167 | ld a,0xaa |
||
168 | ld (NOT_USED),a |
||
678 | savelij | 169 | ei |
761 | savelij | 170 | jp IN_DOS_15616 |
623 | savelij | 171 | |
761 | savelij | 172 | COPY_BAS2VARS ld (TRD_5F00),hl |
173 | ld hl,loc_3D2F |
||
174 | push hl |
||
175 | ld hl,0xb0ed ; LDIR |
||
176 | ld (TRD_5F10),hl |
||
177 | ld hl,(TRD_5F00) |
||
178 | jp TRD_5F10 |
||
623 | savelij | 179 | |
180 | ; |
||
761 | savelij | 181 | WORK4AUTORUN call DELETE_BUF ; , |
182 | call CLEAR_SCREEN ; |
||
183 | ld hl,(E_LINE) ; |
||
184 | inc hl |
||
185 | ld e,(hl) |
||
186 | inc hl |
||
187 | ld d,(hl) ; |
||
188 | ld a,d |
||
189 | or e |
||
190 | ex de,hl |
||
191 | jr z,loc_140 ; =0, |
||
192 | xor a |
||
193 | ld (TRD_5D10),a ; |
||
194 | loc_140 push hl |
||
195 | call RESTORE_SP ; |
||
196 | pop hl |
||
197 | ld (NEWPPC),hl |
||
198 | xor a |
||
199 | ld (NSPPS),a |
||
200 | rst 0x20 |
||
201 | dw 0x16b0 ; |
||
202 | ld hl,(PROG) |
||
203 | dec hl |
||
204 | ld (DATADD),hl |
||
205 | ld sp,(ERR_SP) |
||
206 | ld a,(TRD_5D10) ; |
||
207 | or a |
||
208 | ld hl,0x1b76 |
||
209 | jr z,loc_166 |
||
210 | rst 0x20 |
||
211 | dw 0x1bb0 ; "OK" |
||
212 | loc_166 push hl |
||
213 | ld hl,TRD_5CC2 |
||
214 | push hl |
||
678 | savelij | 215 | ret |
623 | savelij | 216 | |
678 | savelij | 217 | CONTINUE_15619 DUPL 3,0 |
761 | savelij | 218 | call CREATE_BUF ; |
219 | ld a,0xff |
||
220 | ld (TRD_5D15),a ; 0, TR-DOS. |
||
221 | xor a |
||
222 | ld (TRD_5CF7),a |
||
223 | ld a,0xaa |
||
224 | ld (TRD_5D17),a ; , #AA |
||
225 | ld hl,CP_ERROR |
||
226 | ld (TRD_5D1A),hl ; |
||
227 | ld hl,0 |
||
228 | add hl,sp |
||
229 | ld (TRD_5D1C),hl ; SP |
||
230 | dec hl |
||
231 | dec hl |
||
232 | ld sp,hl |
||
233 | call MARK_SP ; |
||
234 | ld hl,(RAMTOP) |
||
235 | ld de,(CH_ADD) |
||
236 | sbc hl,de |
||
237 | ex de,hl |
||
238 | jr nc,loc_1A5 |
||
239 | or a |
||
240 | ld de,0x101 |
||
241 | sbc hl,de |
||
242 | loc_1A5 ld (CH_ADD),hl |
||
243 | loc_1A8 call CP_0D_OR_80 |
||
244 | loc_1AB jp z,END_COMAND |
||
245 | cp __REM |
||
246 | inc hl |
||
247 | jr nz,loc_1A8 |
||
248 | call CP_0D_OR_80 |
||
249 | jr z,loc_1AB |
||
250 | cp ":" |
||
251 | jp nz,END_COMAND |
||
252 | inc hl |
||
253 | call SAE2_HL_ |
||
254 | ld hl,(TRD_5D11) ; TR_DOS |
||
255 | jp loc_30A |
||
623 | savelij | 256 | |
761 | savelij | 257 | CP_0D_OR_80 |
258 | IF EMU |
||
259 | CALL READ_BYTE_HL ;DCU |
||
260 | ELSE |
||
261 | ld a,(hl) |
||
262 | cp 0x0d |
||
263 | ENDIF |
||
264 | ret z |
||
265 | cp 0x80 |
||
266 | ret z |
||
267 | or a |
||
678 | savelij | 268 | ret |
623 | savelij | 269 | |
761 | savelij | 270 | call REWRITE_9SEC |
623 | savelij | 271 | ; |
761 | savelij | 272 | END_COMAND ld hl,0 |
273 | ld (TRD_5CF8),hl ; 2 |
||
274 | call DELETE_BUF |
||
275 | call CLEAR_WORKSPACE |
||
276 | ld hl,TRD_5D17 ; , #AA |
||
277 | ld (hl),0xaa |
||
278 | ld hl,TRD_5D1F |
||
279 | ld a,(hl) |
||
280 | or a |
||
281 | ld (hl),0 |
||
282 | jr nz,loc_1F3 |
||
283 | call DEL_5BYTES |
||
284 | call FIND_ENDSTR ; |
||
285 | loc_1F3 ld sp,(TRD_5D1C) ; SP |
||
286 | ld hl,(TRD_5D1A) ; |
||
287 | ld bc,(TRD_5D0F) ; TR-DOS |
||
288 | ld b,0 |
||
289 | jp (hl) |
||
623 | savelij | 290 | |
291 | ;DCU ( 0X0207) |
||
761 | savelij | 292 | CP_ERROR call RESTORE_SP ; |
293 | bit 7,(iy+0) |
||
294 | ret nz |
||
295 | ld de,TRD_5CC2 |
||
296 | ld sp,(ERR_SP) |
||
297 | push de |
||
678 | savelij | 298 | ret |
623 | savelij | 299 | |
300 | ; |
||
761 | savelij | 301 | FIND_ENDSTR call GET_SYMSTR |
302 | cp 0x0d |
||
303 | ret z |
||
304 | call GET_NEXT_SYM |
||
305 | jr FIND_ENDSTR ; |
||
623 | savelij | 306 | |
307 | ; |
||
761 | savelij | 308 | MARK_SP ld hl,(ERR_SP) |
309 | ld (TRD_5D13),hl ; ERR_SP |
||
310 | ld hl,(TRD_5D1C) ; SP |
||
311 | dec hl |
||
312 | dec hl |
||
313 | ld (ERR_SP),hl |
||
314 | ld de,loc_3D16 |
||
315 | ld (hl),e |
||
316 | inc hl |
||
317 | ld (hl),d |
||
678 | savelij | 318 | ret |
623 | savelij | 319 | |
320 | ; |
||
761 | savelij | 321 | RESTORE_SP ld hl,(TRD_5D13) ; ERR_SP |
322 | loc_0235 ld (ERR_SP),hl |
||
678 | savelij | 323 | ret |
623 | savelij | 324 | |
761 | savelij | 325 | IN_COMMAND_CPU ld hl,0 ; |
326 | ld (TRD_5CF7),hl |
||
327 | add hl,sp |
||
328 | ld (TRD_5D1C),hl ; SP |
||
329 | dec hl |
||
330 | dec hl |
||
331 | ld sp,hl |
||
332 | call MARK_SP ; |
||
678 | savelij | 333 | ;2 |
334 | ; TR-DOS BASIC 128 |
||
761 | savelij | 335 | call CLEAR_SCREEN ; |
336 | call OPEN_CHAN_2 ; 2 |
||
337 | ld hl,TRD_5D17 ; , #AA |
||
338 | ld a,(hl) |
||
339 | cp 0xaa |
||
340 | ld a,0 |
||
341 | ld (TRD_5D0F),a ; TR-DOS |
||
342 | jp z,COMMAND_CPU |
||
343 | ld (hl),0xaa |
||
344 | ld hl,ZASTAVKA ; |
||
345 | rst 0x18 |
||
346 | call OUT_COLOR_LINE ; |
||
347 | IF EMU |
||
678 | savelij | 348 | CALL ADD_TXT_VERS |
761 | savelij | 349 | ENDIF |
623 | savelij | 350 | |
678 | savelij | 351 | DUPL 0X0271-$,0 |
761 | savelij | 352 | loc_271 ld a,(NOT_USED) ; #AA |
353 | cp 0xaa |
||
354 | jr nz,COMMAND_CPU ; #AA, |
||
678 | savelij | 355 | |
356 | DUPL 0X027B-$,0 |
||
761 | savelij | 357 | loc_27B ld hl,(E_LINE) ; |
358 | ld a,0xfe |
||
359 | ld (TRD_5D0E),a ; #FE- BASIC, TR-DOS |
||
360 | ld (hl),0xf7 |
||
361 | inc hl |
||
362 | ld (hl),0x22 |
||
363 | inc hl |
||
364 | ld (hl),"b" |
||
365 | inc hl |
||
366 | ld (hl),"o" |
||
367 | inc hl |
||
368 | ld (hl),"o" |
||
369 | inc hl |
||
370 | ld (hl),"t" |
||
371 | inc hl |
||
372 | ld (hl),0x22 |
||
373 | inc hl |
||
374 | ld (K_CUR),hl |
||
375 | ld (hl),0x0d |
||
376 | inc hl |
||
377 | ld (hl),0x80 |
||
378 | inc hl |
||
379 | ld (WORKSP),hl |
||
380 | ld (STKBOT),hl |
||
381 | ld (STKEND),hl |
||
382 | set 3,(iy+1) |
||
383 | jr GO2RUNBOOT |
||
678 | savelij | 384 | |
623 | savelij | 385 | ; 3 |
761 | savelij | 386 | LDI3_HL2DE ld b,3 |
387 | loc_2B2 ld a,(hl) |
||
388 | ld (de),a |
||
389 | inc hl |
||
390 | inc de |
||
391 | djnz loc_2B2 |
||
678 | savelij | 392 | ret |
623 | savelij | 393 | |
394 | ; |
||
761 | savelij | 395 | STOP_MOTOR ld b,0x20 |
396 | loc_2BB push bc |
||
397 | xor 8 |
||
398 | out (0xff),a |
||
399 | push af |
||
400 | ld a,5 |
||
401 | call PAUSE_C_A |
||
402 | pop af |
||
403 | pop bc |
||
404 | djnz loc_2BB |
||
678 | savelij | 405 | ret |
623 | savelij | 406 | |
407 | ; DOS |
||
761 | savelij | 408 | COMMAND_CPU ld hl,(TRD_5D1C) ; SP |
409 | dec hl |
||
410 | dec hl |
||
411 | ld sp,hl |
||
412 | call OPEN_CHAN_0 ; 0 |
||
413 | ld a,(0X5D16) |
||
414 | or 3 |
||
415 | call STOP_MOTOR |
||
416 | ld a,(TRD_5D16) |
||
417 | call STOP_MOTOR |
||
418 | xor a |
||
419 | ld (TRD_5D15),a ; 0, TR-DOS. |
||
420 | call GET_COMMAND ; |
||
421 | call SAE2E_LINE |
||
422 | GO2RUNBOOT call CLEAR_DOWN_SCR ; |
||
423 | ld hl,COMMAND_CPU |
||
424 | ld (TRD_5D1A),hl ; |
||
425 | xor a |
||
426 | ld (TRD_5D0F),a ; TR-DOS |
||
427 | ld (TRD_5CEF),a |
||
428 | ld hl,(E_LINE) ; |
||
429 | push hl |
||
430 | ld de,TRD_5D20 ; 3 |
||
431 | call LDI3_HL2DE ; 3 |
||
432 | pop hl |
||
433 | ld (TRD_5D11),hl ; TR_DOS |
||
434 | loc_30A ld a,(hl) |
||
435 | ld b,a |
||
436 | and 0x80 |
||
437 | ld a,b |
||
438 | jr z,loc_31A |
||
439 | cp __RETURN |
||
440 | jr z,loc_31A |
||
441 | push af |
||
442 | call ACTIV_DEF_DSK ; |
||
443 | pop af |
||
444 | loc_31A ld hl,CODE_BYTE_COM ; TR-DOS |
||
445 | dec hl |
||
446 | ld c,0 |
||
447 | loc_320 inc c |
||
448 | ld d,a |
||
449 | ld a,LOW (ECODE_BYTE_COM-CODE_BYTE_COM) |
||
450 | cp c |
||
678 | savelij | 451 | JP C,ENDCOMAND |
761 | savelij | 452 | ld a,d |
453 | inc hl |
||
454 | cp (hl) |
||
455 | jr nz,loc_320 |
||
456 | LOC_32D cp __RETURN |
||
457 | call nz,CREATE_BUF ; |
||
458 | ld a,9 |
||
459 | ld (TRD_5D06),a ; |
||
460 | xor a |
||
461 | ld (TRD_5D0F),a ; TR-DOS |
||
462 | ld (TRD_5CD6),a ; #FF- |
||
463 | ld (TRD_5D10),a ; |
||
464 | ld hl,FLAGS |
||
465 | res 7,(hl) |
||
466 | ld b,0 |
||
467 | ld hl,SPIS_ADR_COM ; |
||
468 | dec c |
||
469 | sla c |
||
470 | add hl,bc |
||
471 | ld e,(hl) |
||
472 | inc hl |
||
473 | ld d,(hl) |
||
474 | ex de,hl |
||
475 | LOC_353 push hl |
||
476 | ld de,END_COM |
||
477 | push de |
||
478 | jp (hl) |
||
623 | savelij | 479 | |
761 | savelij | 480 | END_COM ld hl,FLAGS |
481 | set 7,(hl) |
||
482 | pop hl |
||
483 | jp (hl) |
||
623 | savelij | 484 | |
485 | ; |
||
678 | savelij | 486 | ZASTAVKA DB 0X16,0X01,0X06 |
623 | savelij | 487 | ZASTAVKA_VER EQU $+9 |
1026 | savelij | 488 | DB " EVO-DOS Ver ",VERS_DOS," " |
623 | savelij | 489 | DB 0X0D,0X0D,0X7F |
490 | ; 12345678901234567890123456789012 |
||
491 | DB " 2010 Created for PentEvo 4MB " |
||
678 | savelij | 492 | DB 0X16,0X05,0X0C |
623 | savelij | 493 | DB "NedoPC" |
494 | DB 0X16,ZASTV_Y,ZASTV_X |
||
761 | savelij | 495 | IF EMU |
835 | savelij | 496 | ROM_VER IF EMU3D2F=1 |
623 | savelij | 497 | DC "EMUL 3D2F" |
498 | ELSE |
||
499 | DC "EMUL 3D13" |
||
500 | ENDIF |
||
761 | savelij | 501 | ELSE |
835 | savelij | 502 | DC "Nedo Emul" |
761 | savelij | 503 | ENDIF |
623 | savelij | 504 | |
761 | savelij | 505 | END_OUT_DIR call READ_9SEC ; 9 |
506 | call PRINT_0D |
||
507 | call PRINT_0D |
||
508 | loc_3B5 ld bc,(TRD_5E0A) |
||
509 | call PRINT_CHISLO ; |
||
510 | ld hl,TXT_FREE_ |
||
511 | rst 0x18 |
||
512 | GOTO_END jp END_COMAND |
||
623 | savelij | 513 | |
514 | ; |
||
761 | savelij | 515 | PRINT_ERROR push af |
516 | ld a,(TRD_5D0E) ; #FE- BASIC, TR-DOS |
||
517 | cp __RETURN |
||
518 | jr nz,CP4PRINT_HEAD |
||
519 | pop af |
||
678 | savelij | 520 | ret |
623 | savelij | 521 | |
761 | savelij | 522 | CP4PRINT_HEAD pop af |
523 | ld (TRD_5D0F),a ; TR-DOS |
||
524 | ld a,(TRD_5D15) ; 0, TR-DOS. |
||
525 | or a |
||
526 | call z,PRINT_MSG ; |
||
678 | savelij | 527 | ret |
623 | savelij | 528 | |
761 | savelij | 529 | ERR_NOFILES ld hl,TXT_NOFILES_ |
530 | ld a,1 |
||
531 | jp PRINT_TXTERR |
||
623 | savelij | 532 | |
761 | savelij | 533 | ERR_OK ld hl,TXT_OK_ ; "O.K." |
534 | xor a |
||
535 | jp PRINT_TXTERR |
||
623 | savelij | 536 | |
537 | ; 0 |
||
761 | savelij | 538 | RD_0SEC2BUF xor a |
539 | ld (TRD_5CCC),a ; |
||
623 | savelij | 540 | ; |
761 | savelij | 541 | READ_NUM_SEC ld de,(TRD_5CCC) ; |
542 | ld d,0 |
||
543 | READ_SEC4NEM call CREATE_BUF ; |
||
544 | ld hl,TRD_5D25 |
||
545 | ld b,1 |
||
546 | jp COM_05 ; |
||
623 | savelij | 547 | |
548 | ; 9 |
||
761 | savelij | 549 | READ_9SEC call CREATE_BUF ; |
550 | ld de,8 |
||
551 | jr READ_SEC4NEM |
||
623 | savelij | 552 | |
553 | ; |
||
761 | savelij | 554 | COM_18 call READ_9SEC ; 9 |
555 | ld a,(TRD_5E0C) |
||
556 | cp 0x10 |
||
557 | jr z,CP_TYPE_DSK |
||
558 | ld hl,TXT_DISCERROR_ |
||
559 | rst 0x18 |
||
560 | jr GOTO_END |
||
623 | savelij | 561 | |
761 | savelij | 562 | CP_TYPE_DSK call GET_TYPE_DISK |
563 | res 0,(hl) |
||
564 | res 1,(hl) |
||
565 | ld a,(TRD_5E08) |
||
566 | bit 0,a |
||
567 | jr nz,loc_425 |
||
568 | set 0,(hl) |
||
569 | loc_425 bit 3,a |
||
570 | ret nz |
||
571 | set 1,(hl) |
||
678 | savelij | 572 | ret |
623 | savelij | 573 | |
761 | savelij | 574 | CP_SECOND_SYM ld hl,(TRD_5D11) ; TR_DOS |
575 | inc hl |
||
576 | ld a,(hl) |
||
577 | cp 0x0d |
||
678 | savelij | 578 | ret |
623 | savelij | 579 | |
761 | savelij | 580 | CAT call CP_SECOND_SYM ; CAT |
581 | ld bc,2 |
||
582 | ld (TRD_5CDB),bc |
||
583 | jr z,loc_46A |
||
584 | cp "#" |
||
585 | jr nz,CODES |
||
586 | ld (CH_ADD),hl |
||
587 | call SET_NUM_CHAN |
||
588 | call GET_SYMSTR |
||
589 | cp 0x0d |
||
590 | jr z,loc_46A |
||
591 | cp "," |
||
592 | jp nz,SINTAX_ERROR |
||
593 | call GET_NEXT_SYM |
||
594 | call PUT_NUMDSK_STK |
||
595 | jr loc_460 |
||
623 | savelij | 596 | |
761 | savelij | 597 | CODES call SET_AND_PUT |
598 | loc_460 call EXIT_IF_SINTAX |
||
599 | call GET_STKBOT_ |
||
600 | ex de,hl |
||
601 | call SETUP_DSK |
||
602 | loc_46A call EXIT_IF_SINTAX |
||
603 | ld a,(TRD_5CF6) ; |
||
604 | ld (TRD_5CF9),a ; 2 |
||
605 | call COM_18 ; |
||
606 | ld a,(TRD_5CDB) |
||
607 | loc_479 cp 2 |
||
608 | push af |
||
609 | call z,CLEAR_SCREEN ; |
||
610 | pop af |
||
611 | cp 0x11 |
||
612 | jp nc,SINTAX_ERROR |
||
613 | call OPENSTREAM |
||
614 | ld a,0xff |
||
615 | ld (TRD_5CF8),a ; 2 |
||
616 | ld hl,TXT_TITLE_ ; "TITLE:" |
||
617 | rst 0x18 |
||
618 | ld hl,TRD_5E1A |
||
619 | rst 0x18 |
||
620 | call PRINT_0D |
||
621 | ld a,(TRD_5E09) |
||
622 | ld hl,TRD_5E19 |
||
623 | sub (hl) |
||
624 | push hl |
||
625 | call PRINT_CHISLO_A_ |
||
626 | ld hl,TXT_NOFILES+2 |
||
627 | rst 0x18 |
||
628 | pop hl |
||
629 | ld c,(hl) |
||
630 | call CONV2_2BYTES |
||
631 | ld hl,TXT_DELFILE_ ; " DEL. FILE" |
||
632 | rst 0x18 |
||
633 | call RD_0SEC2BUF ; 0 |
||
634 | ld hl,TRD_5D25 |
||
635 | loc_4B6 call CP_END_DIR ; |
||
636 | call PRINT_0D |
||
637 | ld a,(TRD_5CF6) ; |
||
638 | add a,"A" |
||
639 | rst 0x10 |
||
640 | ld b,2 |
||
641 | loc_4C4 call CP_END_DIR ; |
||
642 | push bc |
||
643 | ld a,":" |
||
644 | rst 0x10 |
||
645 | push hl |
||
646 | call PRINT_FILENAME ; |
||
647 | ld bc,0x0d |
||
648 | pop hl |
||
649 | push hl |
||
650 | add hl,bc |
||
651 | ld c,(hl) |
||
652 | push bc |
||
653 | ld a,c |
||
654 | ld b,2 |
||
655 | cp 0x0a |
||
656 | jr c,loc_4DF |
||
657 | dec b |
||
658 | loc_4DF cp 0x64 |
||
659 | jr nc,loc_4E8 |
||
660 | loc_4E3 ld a," " |
||
661 | rst 0x10 |
||
662 | djnz loc_4E3 |
||
663 | loc_4E8 pop bc |
||
664 | call PRINT_CHISLO ; |
||
665 | pop hl |
||
666 | pop bc |
||
667 | ld de,0x10 |
||
668 | add hl,de |
||
669 | djnz loc_4C4 |
||
670 | jr loc_4B6 |
||
623 | savelij | 671 | |
672 | ; |
||
761 | savelij | 673 | CP_END_DIR push hl |
674 | push bc |
||
675 | ld a,(TRD_5CF9) ; 2 |
||
676 | ld hl,TRD_5CF6 ; |
||
677 | cp (hl) |
||
678 | call nz,COM_01 ; |
||
679 | pop bc |
||
680 | pop hl |
||
681 | jp CP_END_CAT |
||
623 | savelij | 682 | |
761 | savelij | 683 | ADD_10 ld de,0x10 |
684 | add hl,de |
||
678 | savelij | 685 | ret |
623 | savelij | 686 | |
761 | savelij | 687 | CP_END_BUF push hl |
688 | push bc |
||
689 | ld bc,0xa1db |
||
690 | add hl,bc |
||
691 | jr c,READ_SEC2BUF |
||
692 | pop bc |
||
693 | pop hl |
||
678 | savelij | 694 | ret |
623 | savelij | 695 | |
761 | savelij | 696 | READ_SEC2BUF ld hl,TRD_5CCC ; |
697 | inc (hl) |
||
698 | call READ_NUM_SEC ; |
||
699 | pop bc |
||
700 | pop hl |
||
701 | ld hl,TRD_5D25 |
||
678 | savelij | 702 | ret |
623 | savelij | 703 | |
761 | savelij | 704 | NUMDSK2BYTE and 0xdf |
705 | sbc a,"A" |
||
706 | jp c,SINTAX_ERROR |
||
707 | cp 4 |
||
708 | jp nc,SINTAX_ERROR |
||
709 | ret |
||
623 | savelij | 710 | |
761 | savelij | 711 | CP_ON_STKBOT call GET_STKBOT_ |
712 | ld a,c |
||
713 | or b |
||
714 | jp z,SINTAX_ERROR |
||
678 | savelij | 715 | ret |
623 | savelij | 716 | |
761 | savelij | 717 | NEW call INP_2STR2STKBOT ; NEW |
718 | call EXIT_IF_SINTAX |
||
719 | call INP_EXTFILENAME ; |
||
720 | call SET_CP_FILENAME |
||
721 | ld a,(TRD_5CF6) ; |
||
722 | ld (TRD_5CF8),a ; 2 |
||
723 | jp nz,ERR_NOFILES |
||
724 | push bc |
||
725 | call RDHEAD_FILENAME ; |
||
726 | call SET_CP_FILENAME |
||
727 | push af |
||
728 | ld a,(TRD_5CF8) ; 2 |
||
729 | ld hl,TRD_5CF6 ; |
||
730 | cp (hl) |
||
731 | jp nz,SINTAX_ERROR |
||
732 | call COM_18 ; |
||
733 | pop af |
||
734 | jp z,FILE_EXISTS |
||
735 | pop bc |
||
736 | loc_569 call SETHEADFILENAME |
||
737 | call REWRITE_9SEC ; 9 |
||
738 | jp ERR_OK |
||
623 | savelij | 739 | |
761 | savelij | 740 | CP_HIGH_ERR ld a,(TRD_5D10) ; |
741 | or a |
||
742 | ret |
||
623 | savelij | 743 | |
761 | savelij | 744 | CP_ERASED_FILES ld a,(TRD_5D07) ; |
745 | or a |
||
746 | jp z,ERR_NOFILES |
||
747 | jp ERR_OK |
||
623 | savelij | 748 | |
749 | ; |
||
761 | savelij | 750 | GET_OVERWRITE_ push bc |
751 | call CLEAR_SCREEN ; |
||
752 | ld a,(TRD_5CF6) ; |
||
753 | add a,"A" |
||
754 | call PRINT_A_ |
||
755 | ld a,":" |
||
756 | call PRINT_A_ |
||
757 | ld hl,TRD_5CDD ; |
||
758 | call PRINT_FILENAME ; |
||
759 | ld hl,TXT_FILEEXIST ; "FILE EXISTS" |
||
760 | call PRINT_MSG ; ⥪⮢ ᮮ饭 |
||
761 | call GET_KEYS ; |
||
762 | cp "Y" |
||
763 | push af |
||
764 | call CLEAR_SCREEN ; |
||
765 | pop af |
||
766 | pop bc |
||
767 | ret nz |
||
768 | push bc |
||
769 | call CLEAR_SCREEN ; |
||
770 | pop bc |
||
771 | call ERASE_FILE ; |
||
772 | xor a |
||
678 | savelij | 773 | ret |
623 | savelij | 774 | |
761 | savelij | 775 | CP_EXT_SHARP ld a,(TRD_5CE5) ; |
776 | cp "#" |
||
777 | jr z,FINDFILENAME_0A |
||
778 | xor a |
||
678 | savelij | 779 | ret |
623 | savelij | 780 | |
761 | savelij | 781 | FINDFILENAME_0A ld a,0x0a |
782 | ld (TRD_5D06),a ; |
||
783 | call FIND_FILENAME ; |
||
784 | ld a,9 |
||
785 | ld (TRD_5D06),a ; |
||
678 | savelij | 786 | ret |
623 | savelij | 787 | |
761 | savelij | 788 | COPY_STAR_STAR ld a,(TRD_5CDD) ; COPY *,* |
789 | cp "*" |
||
790 | jp nz,ERR_NOFILES |
||
791 | call GET_STKBOT_ |
||
792 | ex de,hl |
||
793 | call SETUP_DSK |
||
794 | ld a,(hl) |
||
795 | cp "*" |
||
796 | jp nz,SINTAX_ERROR |
||
797 | ld a,(TRD_5CF6) ; |
||
798 | ld (TRD_5CF9),a ; 2 |
||
799 | ld a,(TRD_5CF9) ; 2 |
||
800 | call COM_01 ; |
||
801 | call COM_18 ; |
||
802 | ld a,0xff |
||
803 | ld (TRD_5D0D),a |
||
804 | loc_5F4 ld a,(TRD_5CF8) ; 2 |
||
805 | call COM_01 ; |
||
806 | call COM_18 ; |
||
807 | ld a,(TRD_5D0D) |
||
808 | inc a |
||
809 | ld (TRD_5D0D),a |
||
810 | ld c,a |
||
811 | call RDHEAD_FILENAME ; |
||
812 | ld a,(TRD_5CDD) ; |
||
813 | cp 0 |
||
814 | jp z,ERR_OK |
||
815 | cp 1 |
||
816 | jr z,loc_5F4 |
||
817 | ld hl,TRD_5CE6 ; <C>- , <B>- |
||
818 | ld de,TRD_5CED ; |
||
819 | ld bc,7 |
||
678 | savelij | 820 | ldir |
761 | savelij | 821 | ld a,(TRD_5CF9) ; 2 |
822 | call COM_01 ; |
||
823 | call FIND_FILENAME ; |
||
824 | jr nz,loc_634 |
||
825 | call CP_EXT_SHARP |
||
826 | jr nz,loc_634 |
||
827 | call GET_OVERWRITE_ ; |
||
828 | jr nz,loc_5F4 |
||
829 | loc_634 call COPY_FILE2DSK ; 2 |
||
830 | call REWRITE_9SEC ; 9 |
||
831 | jr loc_5F4 |
||
623 | savelij | 832 | |
833 | ; 2 |
||
761 | savelij | 834 | COPY_FILE2DSK call READ_9SEC ; 9 |
835 | ld a,(TRD_5E09) |
||
836 | cp 0x80 |
||
837 | jp z,ERR_DIRFULL ; |
||
838 | ld hl,TRD_5CED ; |
||
839 | ld de,TRD_5CE6 ; <C>- , <B>- |
||
840 | ld bc,7 |
||
678 | savelij | 841 | ldir |
761 | savelij | 842 | ld de,(TRD_5CEA) ; |
843 | ld d,0 |
||
844 | or a |
||
845 | ld hl,(TRD_5E0A) |
||
846 | sbc hl,de |
||
847 | jp c,loc_1C45 |
||
848 | ld (TRD_5E0A),hl |
||
849 | ld hl,(TRD_5E06) |
||
850 | ld (TRD_5CEB),hl ; |
||
851 | push hl |
||
852 | call COPY_FILE ; 2 |
||
853 | pop hl |
||
854 | ld (TRD_5CEB),hl ; |
||
855 | ld hl,(TRD_5CF4) |
||
856 | ld (TRD_5E06),hl |
||
857 | ld hl,TRD_5E09 |
||
858 | inc (hl) |
||
859 | ld c,(hl) |
||
860 | dec c |
||
861 | ld b,0 |
||
862 | push bc |
||
863 | ld de,9 |
||
864 | ld (TRD_5CF4),de |
||
865 | call REWRITE_9SEC ; 9 |
||
866 | pop bc |
||
867 | call SETHEADFILENAME |
||
678 | savelij | 868 | ret |
623 | savelij | 869 | |
761 | savelij | 870 | COPY ld hl,(TRD_5D11) ; TR_DOS |
871 | inc hl |
||
872 | ld a,(hl) |
||
873 | and 0xdf |
||
874 | cp "S" |
||
875 | jp z,COPY_S |
||
876 | cp "B" |
||
877 | jp z,COPY_B |
||
878 | call INP_2STR2STKBOT |
||
879 | call EXIT_IF_SINTAX |
||
880 | call RESERVED_RAM |
||
881 | call INP_EXTFILENAME ; |
||
882 | call SET_CP_FILENAME |
||
883 | ld a,(TRD_5CF6) ; |
||
884 | ld (TRD_5CF8),a ; 2 |
||
885 | jp nz,COPY_STAR_STAR ; COPY *,* |
||
886 | call RDHEAD_FILENAME ; |
||
887 | ld hl,TRD_5CE6 ; <C>- , <B>- |
||
888 | ld de,TRD_5CED ; |
||
889 | ld bc,7 |
||
678 | savelij | 890 | ldir |
761 | savelij | 891 | call SET_CP_FILENAME |
892 | push af |
||
893 | push bc |
||
894 | ld a,(TRD_5CF6) ; |
||
895 | ld (TRD_5CF9),a ; 2 |
||
896 | ld a,(TRD_5CF8) ; 2 |
||
897 | call COM_01 ; |
||
898 | call COM_18 ; |
||
899 | ld a,(TRD_5CF9) ; 2 |
||
900 | call COM_01 ; |
||
901 | call COM_18 ; |
||
902 | pop bc |
||
903 | pop af |
||
904 | jr nz,loc_6F3 |
||
905 | call CP_EXT_SHARP |
||
906 | jr nz,loc_6F3 |
||
907 | call GET_OVERWRITE_ ; |
||
908 | jp nz,ERR_OK |
||
909 | loc_6F3 call COPY_FILE2DSK ; 2 |
||
910 | call REWRITE_9SEC ; 9 |
||
911 | ld a,(TRD_5CE5) ; |
||
912 | cp "#" |
||
913 | jp nz,ERR_OK |
||
914 | ld a,0x0a |
||
915 | ld (TRD_5D06),a ; |
||
916 | ld hl,TRD_5CE6 ; <C>- , <B>- |
||
917 | inc (hl) |
||
918 | ld a,(TRD_5CF8) ; 2 |
||
919 | call COM_01 ; |
||
920 | call CP_EXT_SHARP |
||
921 | jp nz,ERR_OK |
||
922 | call RDHEAD_FILENAME ; |
||
923 | ld hl,TRD_5CE6 ; <C>- , <B>- |
||
924 | ld de,TRD_5CED ; |
||
925 | ld bc,7 |
||
926 | ldir |
||
927 | ld a,(TRD_5CF9) ; 2 |
||
928 | call COM_01 ; |
||
929 | call COM_18 ; |
||
930 | jr loc_6F3 |
||
623 | savelij | 931 | |
932 | ; 2 |
||
761 | savelij | 933 | COPY_FILE ld a,(TRD_5CF1) |
934 | or a |
||
935 | ret z |
||
936 | push hl |
||
937 | ld hl,TRD_5D23 |
||
938 | sub (hl) |
||
939 | pop hl |
||
940 | jr nc,loc_775 |
||
941 | ld a,(TRD_5CF1) |
||
942 | ld b,a |
||
943 | xor a |
||
944 | ld (TRD_5CF1),a |
||
945 | loc_744 push bc |
||
946 | ld a,(TRD_5CF8) ; 2 |
||
947 | call COM_01 ; |
||
948 | pop bc |
||
949 | push bc |
||
950 | ld hl,(TRD_5CCF) ; WORK_SP |
||
951 | push hl |
||
952 | ld de,(TRD_5CF2) |
||
953 | call COM_05 ; |
||
954 | ld hl,(TRD_5CF4) |
||
955 | ld (TRD_5CF2),hl |
||
956 | ld a,(TRD_5CF9) ; 2 |
||
957 | call COM_01 ; |
||
958 | pop hl |
||
959 | pop bc |
||
960 | ld de,(TRD_5CEB) ; |
||
961 | call COM_06 ; |
||
962 | ld hl,(TRD_5CF4) |
||
963 | ld (TRD_5CEB),hl ; |
||
964 | jr COPY_FILE ; 2 |
||
623 | savelij | 965 | |
761 | savelij | 966 | loc_775 ld (TRD_5CF1),a |
967 | push hl |
||
968 | ld hl,TRD_5D23 |
||
969 | ld b,(hl) |
||
970 | pop hl |
||
971 | xor a |
||
972 | jr loc_744 |
||
623 | savelij | 973 | |
627 | savelij | 974 | ; |
761 | savelij | 975 | ERASE_FILE xor a |
976 | ld (TRD_5D07),a ; |
||
977 | jr ERASE_FILES |
||
623 | savelij | 978 | |
761 | savelij | 979 | ERASE call SET_AND_PUT ; ERASE |
980 | call EXIT_IF_SINTAX |
||
981 | call INP_EXTFILENAME ; |
||
982 | xor a |
||
983 | ld (TRD_5D07),a ; |
||
984 | call FIND_FILE ; |
||
985 | call ERASE_FILES |
||
986 | jp nz,CP_ERASED_FILES |
||
987 | jp ERR_OK |
||
623 | savelij | 988 | |
761 | savelij | 989 | ERASE_FILES ld a,(TRD_5CDD) ; |
990 | ld (TRD_5D08),a ; |
||
991 | ret nz |
||
992 | ld hl,TRD_5D07 ; |
||
993 | inc (hl) |
||
994 | push bc |
||
995 | call READ_9SEC ; 9 |
||
996 | ld a,(TRD_5E09) |
||
997 | pop bc |
||
998 | inc c |
||
999 | cp c |
||
1000 | jr nz,loc_7BC |
||
1001 | dec a |
||
1002 | ld (TRD_5E09),a |
||
1003 | xor a |
||
1004 | loc_7BC push af |
||
1005 | jr z,loc_7C3 |
||
1006 | ld hl,TRD_5E19 |
||
1007 | inc (hl) |
||
1008 | loc_7C3 push bc |
||
1009 | call REWRITE_9SEC ; 9 |
||
1010 | pop bc |
||
1011 | dec c |
||
1012 | call RDHEAD_FILENAME ; |
||
1013 | pop af |
||
1014 | jp z,loc_7D2 |
||
1015 | ld a,1 |
||
1016 | loc_7D2 ld (TRD_5CDD),a ; |
||
1017 | push af |
||
1018 | call WRHEAD_FILENAME ; |
||
1019 | ld a,(TRD_5D08) ; |
||
1020 | ld (TRD_5CDD),a ; |
||
1021 | pop af |
||
1022 | jr z,WR_NEW_FREE_SEC |
||
1023 | call FIND_FILENAME ; |
||
1024 | jr ERASE_FILES |
||
678 | savelij | 1025 | |
761 | savelij | 1026 | WR_NEW_FREE_SEC call READ_9SEC ; 9 |
1027 | ld hl,(TRD_5CEB) ; |
||
1028 | ld (TRD_5E06),hl |
||
1029 | ld de,(TRD_5CEA) ; |
||
1030 | ld hl,(TRD_5E0A) |
||
1031 | ld d,0 |
||
1032 | add hl,de |
||
1033 | ld (TRD_5E0A),hl |
||
1034 | jp REWRITE_9SEC ; 9 |
||
678 | savelij | 1035 | |
623 | savelij | 1036 | ;===============FREE SPACE 1============ |
761 | savelij | 1037 | IF EMU |
623 | savelij | 1038 | include virtual.a80 |
761 | savelij | 1039 | ENDIF |
623 | savelij | 1040 | ;=======END OF FREE SPACE 1============= |
1041 | |||
764 | savelij | 1042 | TITLE "evo-dos.a80" |
1043 | |||
678 | savelij | 1044 | DUPL 0X1018-$,0XFF |
761 | savelij | 1045 | COM_STAR call SET_AND_PUT |
1046 | call EXIT_IF_SINTAX |
||
1047 | call CP_ON_STKBOT |
||
1048 | ld a,(de) |
||
1049 | call NUMDSK2BYTE |
||
1050 | ld (TRD_5D19),a ; |
||
833 | savelij | 1051 | ; call COM_01 ; |
1052 | JP SET_CURRDRV |
||
761 | savelij | 1053 | jp ERR_OK |
623 | savelij | 1054 | |
1055 | ; |
||
761 | savelij | 1056 | INP_EXTFILENAME ld b,"C" |
1057 | ld a,(TRD_5CD6) ; #FF- |
||
1058 | or a |
||
1059 | jr nz,loc_104D |
||
1060 | call GET_SYMSTR |
||
1061 | cp __CODE |
||
1062 | ld b,"C" |
||
1063 | jr z,loc_104D |
||
1064 | cp __DATA |
||
1065 | ld b,"D" |
||
1066 | jr z,loc_104D |
||
1067 | cp "#" |
||
1068 | ld b,"#" |
||
1069 | jr z,loc_104D |
||
1070 | ld b,"B" |
||
1071 | loc_104D ld hl,TRD_5CE5 ; |
||
1072 | ld (hl),b |
||
678 | savelij | 1073 | ret |
623 | savelij | 1074 | |
1075 | ; |
||
678 | savelij | 1076 | GET_KEYS di |
761 | savelij | 1077 | push hl |
1078 | push bc |
||
1079 | push de |
||
1080 | loc_1056 rst 0x20 |
||
1081 | dw 0x028e ; |
||
1082 | ld c,0 |
||
1083 | jr nz,loc_1056 |
||
1084 | rst 0x20 |
||
1085 | dw 0x031e ; |
||
1086 | jr nc,loc_1056 |
||
1087 | dec d |
||
1088 | ld e,a |
||
1089 | rst 0x20 |
||
1090 | dw 0x0333 ; |
||
1091 | pop de |
||
1092 | pop bc |
||
1093 | pop hl |
||
1094 | and 0xdf |
||
678 | savelij | 1095 | ei |
1096 | ret |
||
623 | savelij | 1097 | |
1098 | ; |
||
761 | savelij | 1099 | OUT_COLOR_LINE ld hl,ZASTV_ATR |
1100 | ld b,0x0a |
||
1101 | loc_1073 ld (hl),7 |
||
1102 | inc hl |
||
1103 | djnz loc_1073 |
||
1104 | ld (hl),2 |
||
1105 | inc hl |
||
1106 | ld (hl),0x16 |
||
1107 | inc hl |
||
1108 | ld (hl),0x34 |
||
1109 | inc hl |
||
1110 | ld (hl),0x25 |
||
1111 | inc hl |
||
1112 | ld (hl),0x28 |
||
1113 | inc hl |
||
1114 | ld (hl),7 |
||
1115 | ld hl,ZASTV_PIX |
||
1116 | ld b,8 |
||
1117 | xor a |
||
1118 | loc_108F push bc |
||
678 | savelij | 1119 | scf |
1120 | rla |
||
761 | savelij | 1121 | push hl |
1122 | push af |
||
1123 | ld b,5 |
||
1124 | loc_1096 inc hl |
||
1125 | ld (hl),a |
||
1126 | djnz loc_1096 |
||
1127 | pop af |
||
1128 | pop hl |
||
1129 | pop bc |
||
1130 | ld de,0x100 |
||
1131 | add hl,de |
||
1132 | djnz loc_108F |
||
678 | savelij | 1133 | ret |
623 | savelij | 1134 | |
678 | savelij | 1135 | ret |
623 | savelij | 1136 | |
678 | savelij | 1137 | TXT_DELFILES db " Del." |
1138 | TXT_FILE_S_ DZ " File(s)" |
||
1139 | TXT_TITLE DC "Title: " |
||
1140 | TXT_DISKDRIVE DB 0X17,0X11," Disk Drive: ",0 |
||
1141 | TXT_1SPACE DB 0X17,0X10," ",0 |
||
1142 | TXT_40TRK_SS DB 0X17,0X10," 40 Track S. Side",0 |
||
1143 | TXT_80TRK_SS DB 0X17,0X10," 80 Track S. Side",0 |
||
1144 | TXT_40TRK_DS DB 0X17,0X10," 40 Track D. Side",0 |
||
1145 | TXT_80TRK_DS DB 0X17,0X10," 80 Track D. Side",0 |
||
1146 | TXT_FREESECS DB 0X17,0X10," Free Sector ",0 |
||
1147 | TXT_FILENAME DB 0X0D,0X0D," File Name Start Length Line",0 |
||
623 | savelij | 1148 | |
761 | savelij | 1149 | CREATE_222BYTES ld hl,(WORKSP) |
1150 | ld (TRD_5CCF),hl ; WORK_SP |
||
1151 | ld bc,0x222 |
||
1152 | jp CREATE_FREERAM |
||
678 | savelij | 1153 | |
623 | savelij | 1154 | ; HL |
761 | savelij | 1155 | PRINT_HL_CHISLO xor a |
1156 | ld de,10000 |
||
1157 | loc_1161 sbc hl,de |
||
1158 | jr c,loc_1168 |
||
1159 | inc a |
||
1160 | jr loc_1161 |
||
623 | savelij | 1161 | |
761 | savelij | 1162 | loc_1168 add a,"0" |
1163 | call PRINT_A_CHISLO |
||
1164 | add hl,de |
||
1165 | xor a |
||
1166 | ld de,1000 |
||
1167 | loc_1172 sbc hl,de |
||
1168 | jr c,loc_1179 |
||
1169 | inc a |
||
1170 | jr loc_1172 |
||
623 | savelij | 1171 | |
761 | savelij | 1172 | loc_1179 add a,"0" |
1173 | call PRINT_A_CHISLO |
||
1174 | add hl,de |
||
1175 | xor a |
||
1176 | ld de,100 |
||
1177 | loc_1183 sbc hl,de |
||
1178 | jr c,loc_118A |
||
1179 | inc a |
||
1180 | jr loc_1183 |
||
623 | savelij | 1181 | |
761 | savelij | 1182 | loc_118A add a,"0" |
1183 | call PRINT_A_CHISLO |
||
1184 | add hl,de |
||
1185 | xor a |
||
1186 | ld de,10 |
||
1187 | loc_1194 sbc hl,de |
||
1188 | jr c,loc_119B |
||
1189 | inc a |
||
1190 | jr loc_1194 |
||
623 | savelij | 1191 | |
761 | savelij | 1192 | loc_119B add a,"0" |
1193 | call PRINT_A_CHISLO |
||
1194 | add hl,de |
||
1195 | ld a,l |
||
1196 | add a,"0" |
||
1197 | call PRINT_A_CHISLO |
||
678 | savelij | 1198 | ret |
623 | savelij | 1199 | |
761 | savelij | 1200 | PRINT_A_CHISLO push hl |
1201 | push de |
||
1202 | call PRINT_A_ |
||
1203 | pop de |
||
1204 | pop hl |
||
678 | savelij | 1205 | ret |
623 | savelij | 1206 | |
761 | savelij | 1207 | FIND_END_BUFDIR push hl |
1208 | push bc |
||
1209 | ld a,(TRD_5CF9) ; 2 |
||
1210 | ld hl,TRD_5CF6 ; |
||
1211 | cp (hl) |
||
1212 | call nz,COM_01 ; |
||
1213 | pop bc |
||
1214 | pop hl |
||
1215 | call CP_END_BUF |
||
1216 | ld a,(hl) |
||
1217 | or a |
||
1218 | jp z,END_COMAND |
||
1219 | cp 1 |
||
1220 | call z,ADD_10 |
||
1221 | ret nz |
||
1222 | jr FIND_END_BUFDIR |
||
623 | savelij | 1223 | |
761 | savelij | 1224 | LIST call CP_SECOND_SYM |
1225 | ld bc,2 |
||
1226 | ld (TRD_5CDB),bc |
||
1227 | jr z,loc_1205 |
||
1228 | cp "#" |
||
1229 | jr nz,LIST4CODES |
||
1230 | ld (CH_ADD),hl |
||
1231 | call SET_NUM_CHAN |
||
1232 | call GET_SYMSTR |
||
1233 | cp 0x0d |
||
1234 | jr z,loc_1205 |
||
1235 | cp "," |
||
1236 | jp nz,SINTAX_ERROR |
||
1237 | call GET_NEXT_SYM |
||
1238 | call PUT_NUMDSK_STK |
||
1239 | jr loc_11FB |
||
623 | savelij | 1240 | |
761 | savelij | 1241 | LIST4CODES call SET_AND_PUT |
1242 | loc_11FB call EXIT_IF_SINTAX |
||
1243 | call GET_STKBOT_ |
||
1244 | ex de,hl |
||
1245 | call SETUP_DSK |
||
1246 | loc_1205 call EXIT_IF_SINTAX |
||
1247 | ld a,(TRD_5CF6) ; |
||
1248 | ld (TRD_5CF9),a ; 2 |
||
1249 | call COM_18 ; |
||
1250 | ld a,(TRD_5CDB) |
||
1251 | cp 2 |
||
1252 | push af |
||
1253 | call z,CLEAR_SCREEN ; |
||
1254 | pop af |
||
1255 | cp 0x11 |
||
1256 | jp nc,SINTAX_ERROR |
||
1257 | call OPENSTREAM |
||
1258 | ld a,0xff |
||
1259 | ld (TRD_5CF8),a ; 2 |
||
1260 | call CREATE_222BYTES |
||
1261 | ld hl,TRD_5E06 |
||
1262 | ld de,(TRD_5CCF) ; WORK_SP |
||
1263 | ld bc,0X20 |
||
1264 | ldir |
||
1265 | call RD_0SEC2BUF ; 0 |
||
1266 | ld hl,TRD_5D25 |
||
1267 | push hl |
||
1268 | loc_123E ld hl,TXT_TITLE ; "TITLE:" |
||
1269 | push bc |
||
1270 | rst 0x18 |
||
1271 | ld hl,(TRD_5CCF) ; WORK_SP |
||
1272 | ld bc,0x14 |
||
1273 | add hl,bc |
||
1274 | rst 0x18 |
||
1275 | ld hl,TXT_DISKDRIVE |
||
1276 | rst 0x18 |
||
1277 | ld a,(TRD_5CF6) ; |
||
1278 | add a,"A" |
||
1279 | call PRINT_A_ |
||
1280 | call PRINT_0D |
||
1281 | ld hl,(TRD_5CCF) ; WORK_SP |
||
1282 | ld bc,3 |
||
1283 | add hl,bc |
||
1284 | ld a,(hl) |
||
1285 | ld hl,(TRD_5CCF) ; WORK_SP |
||
1286 | ld bc,0x13 |
||
1287 | add hl,bc |
||
1288 | sub (hl) |
||
1289 | push hl |
||
1290 | call PRINT_CHISLO_A_ |
||
1291 | ld hl,TXT_DELFILES+5 |
||
1292 | rst 0x18 |
||
1293 | ld hl,(TRD_5CCF) ; WORK_SP |
||
1294 | ld bc,2 |
||
1295 | add hl,bc |
||
1296 | ld a,(hl) |
||
1297 | ld hl,TXT_40TRK_SS |
||
1298 | cp 0x19 |
||
1299 | jr z,loc_1292 |
||
1300 | ld hl,TXT_80TRK_SS |
||
1301 | cp 0x18 |
||
1302 | jr z,loc_1292 |
||
1303 | ld hl,TXT_40TRK_DS |
||
1304 | cp 0x17 |
||
1305 | jr z,loc_1292 |
||
1306 | ld hl,TXT_80TRK_DS |
||
1307 | loc_1292 rst 0x18 |
||
1308 | pop hl |
||
1309 | ld c,(hl) |
||
1310 | call CONV2_2BYTES |
||
1311 | ld hl,TXT_DELFILES ; " DEL. FILE(S)" |
||
1312 | rst 0x18 |
||
1313 | ld hl,TXT_FREESECS |
||
1314 | rst 0x18 |
||
1315 | ld hl,(TRD_5CCF) ; WORK_SP |
||
1316 | ld bc,4 |
||
1317 | add hl,bc |
||
1318 | ld c,(hl) |
||
1319 | inc hl |
||
1320 | ld b,(hl) |
||
1321 | call PRINT_CHISLO ; |
||
1322 | ld hl,TXT_FILENAME |
||
1323 | rst 0x18 |
||
1324 | pop bc |
||
1325 | pop hl |
||
1326 | ld b,0x10 ; |
||
1327 | loc_12B5 call FIND_END_BUFDIR ; |
||
1328 | call PRINT_0D ; |
||
1329 | push bc |
||
1330 | push hl |
||
1331 | call PRINT_FILENAME ; |
||
1332 | ld bc,0x0d |
||
1333 | pop hl |
||
1334 | push hl |
||
1335 | add hl,bc |
||
1336 | ld c,(hl) |
||
1337 | push bc |
||
1338 | ld a,c |
||
1339 | ld b,2 |
||
1340 | cp 10 |
||
1341 | jr c,loc_12D0 |
||
1342 | dec b |
||
1343 | loc_12D0 cp 100 |
||
1344 | jr nc,loc_12D9 |
||
1345 | loc_12D4 ld a," " |
||
1346 | rst 0x10 |
||
1347 | djnz loc_12D4 |
||
1348 | loc_12D9 pop bc |
||
1349 | call PRINT_CHISLO ; |
||
1350 | ld hl,TXT_1SPACE |
||
1351 | rst 0x18 |
||
1352 | pop hl |
||
1353 | push hl |
||
1354 | ld bc,9 |
||
1355 | add hl,bc |
||
1356 | ld e,(hl) |
||
1357 | inc hl |
||
1358 | ld d,(hl) |
||
1359 | push hl |
||
1360 | ex de,hl |
||
1361 | call PRINT_HL_CHISLO |
||
1362 | ld a," " |
||
1363 | call PRINT_A_ |
||
1364 | pop hl |
||
1365 | inc hl |
||
1366 | ld e,(hl) |
||
1367 | inc hl |
||
1368 | ld d,(hl) |
||
1369 | ex de,hl |
||
1370 | call PRINT_HL_CHISLO |
||
1371 | pop hl |
||
1372 | push hl |
||
1373 | ld bc,8 |
||
1374 | add hl,bc |
||
1375 | ld a,(hl) |
||
1376 | cp "B" |
||
1377 | call z,PRN_ADR_ASTART |
||
1378 | pop hl |
||
1379 | pop bc |
||
1380 | ld de,0x10 |
||
1381 | add hl,de |
||
1382 | djnz loc_12B5 |
||
1383 | push hl |
||
1384 | call PRINT_0D |
||
1385 | call PRINT_0D |
||
1386 | jp loc_123E |
||
623 | savelij | 1387 | |
761 | savelij | 1388 | PRN_ADR_ASTART ld bc,5 |
1389 | add hl,bc |
||
1390 | ld b,(hl) |
||
1391 | inc hl |
||
1392 | ld e,(hl) |
||
1393 | inc hl |
||
1394 | ld d,(hl) |
||
1395 | dec b |
||
1396 | jr z,loc_1335 |
||
1397 | dec b |
||
1398 | jr z,loc_1335 |
||
1399 | ld a,0x10 |
||
1400 | loc_132C inc e |
||
1401 | cp e |
||
1402 | jr nz,loc_1333 |
||
1403 | ld e,0 |
||
1404 | inc d |
||
1405 | loc_1333 djnz loc_132C |
||
1406 | loc_1335 ld hl,(TRD_5CCF) ; WORK_SP |
||
1407 | ld bc,0x21 |
||
1408 | add hl,bc |
||
1409 | ld b,2 |
||
1410 | push hl |
||
1411 | call COM_05 ; |
||
1412 | ld a,0x80 |
||
1413 | pop hl |
||
1414 | ld bc,0x200 |
||
678 | savelij | 1415 | cpir |
761 | savelij | 1416 | ld a,(hl) |
1417 | cp 0xaa |
||
1418 | ret nz |
||
1419 | inc hl |
||
1420 | ld c,(hl) |
||
1421 | inc hl |
||
1422 | ld b,(hl) |
||
1423 | ld a,b |
||
1424 | or c |
||
1425 | ret z |
||
1426 | push bc |
||
1427 | ld a," " |
||
1428 | call PRINT_A_ |
||
1429 | pop bc |
||
1430 | call PRINT_CHISLO ; |
||
678 | savelij | 1431 | ret |
623 | savelij | 1432 | |
761 | savelij | 1433 | COPY_S call SET_CH_ADD |
1434 | call GET_NEXT_SYM |
||
1435 | call PUT_NUMDSK_STK |
||
1436 | call EXIT_IF_SINTAX |
||
1437 | call RESERVED_RAM |
||
1438 | ld hl,TXT_INS_SRC ; "INSERT SOURCE DISK THEN PRESS Y" |
||
1439 | call PRINT_MSG ; |
||
1440 | loc_1375 call GET_KEYS ; |
||
1441 | cp "Y" |
||
1442 | jr nz,loc_1375 |
||
1443 | call CLEAR_DOWN_SCR ; |
||
1444 | call INP_EXTFILENAME ; |
||
1445 | call SET_CP_FILENAME |
||
1446 | jp nz,ERR_NOFILES |
||
1447 | call COPY_ON1DSK |
||
1448 | ld a,(TRD_5CE5) ; |
||
1449 | cp "#" |
||
1450 | jp nz,ERR_OK |
||
1451 | loc_1393 ld a,0x0a |
||
1452 | ld (TRD_5D06),a ; |
||
1453 | ld hl,TRD_5CE6 ; <C>- , <B>- |
||
1454 | inc (hl) |
||
1455 | call CLEAR_SCREEN ; |
||
1456 | ld hl,TXT_INS_SRC ; "INSERT SOURCE DISK THEN PRESS Y" |
||
1457 | call PRINT_MSG ; |
||
1458 | loc_13A5 call GET_KEYS ; |
||
1459 | cp "Y" |
||
1460 | jr nz,loc_13A5 |
||
1461 | call FIND_FILENAME ; |
||
1462 | jp nz,ERR_OK |
||
1463 | call COPY_ON1DSK |
||
1464 | jr loc_1393 |
||
623 | savelij | 1465 | |
761 | savelij | 1466 | COPY_ON1DSK call RDHEAD_FILENAME ; |
1467 | ld hl,TRD_5CE6 ; <C>- , <B>- |
||
1468 | ld de,TRD_5CED ; |
||
1469 | ld bc,7 |
||
1470 | ldir |
||
1471 | ld a,(TRD_5CF1) |
||
1472 | ld (TRD_5D10),a ; |
||
1473 | call COM_18 ; |
||
1474 | call GET_TYPE_DISK |
||
1475 | ld (TRD_5CD9),a ; <B> <C> |
||
1476 | ld a,0xff |
||
1477 | ld (TRD_5D21),a |
||
1478 | call COPY_ON1DSK_ |
||
1479 | ld hl,(TRD_5D1F) |
||
1480 | ld (TRD_5CEB),hl ; |
||
1481 | ld hl,(TRD_5CF4) |
||
1482 | ld (TRD_5E06),hl |
||
1483 | ld hl,TRD_5E09 |
||
1484 | inc (hl) |
||
1485 | ld c,(hl) |
||
1486 | dec c |
||
1487 | ld b,0 |
||
1488 | push bc |
||
1489 | ld de,9 |
||
1490 | ld (TRD_5CF4),de |
||
1491 | call REWRITE_9SEC ; 9 |
||
1492 | pop bc |
||
1493 | call SETHEADFILENAME |
||
1494 | call REWRITE_9SEC ; 9 |
||
678 | savelij | 1495 | ret |
623 | savelij | 1496 | |
761 | savelij | 1497 | CP_FREESEC xor a |
1498 | ld (TRD_5D21),a |
||
1499 | call COM_18 ; |
||
1500 | call GET_TYPE_DISK |
||
1501 | ld (TRD_5CDA),a |
||
1502 | call FIND_FILENAME ; |
||
1503 | jp z,FILE_EXISTS |
||
1504 | call READ_9SEC ; 9 |
||
1505 | ld a,(TRD_5E09) |
||
1506 | cp 0x80 |
||
1507 | jp z,ERR_DIRFULL |
||
1508 | ld hl,TRD_5CED ; |
||
1509 | ld de,TRD_5CE6 ; <C>- , <B>- |
||
1510 | ld bc,7 |
||
1511 | ldir |
||
1512 | call READ_9SEC ; 9 |
||
1513 | ld a,(TRD_5D10) ; |
||
1514 | ld (TRD_5CEA),a ; |
||
1515 | ld de,(TRD_5CEA) ; |
||
1516 | ld d,0 |
||
1517 | or a |
||
1518 | ld hl,(TRD_5E0A) |
||
1519 | sbc hl,de |
||
1520 | jp c,loc_1C45 |
||
1521 | ld (TRD_5E0A),hl |
||
1522 | ld hl,(TRD_5E06) |
||
1523 | ld (TRD_5CEB),hl ; |
||
1524 | ld (TRD_5D1F),hl |
||
678 | savelij | 1525 | ret |
623 | savelij | 1526 | |
761 | savelij | 1527 | COPY_ON1DSK_ ld a,(TRD_5CF1) |
1528 | or a |
||
1529 | ret z |
||
1530 | ld a,(TRD_5D21) |
||
1531 | or a |
||
1532 | jr nz,loc_146F |
||
1533 | call CLEAR_SCREEN ; |
||
1534 | ld hl,TXT_INS_SRC ; "INSERT SOURCE DISK THEN PRESS Y" |
||
1535 | call PRINT_MSG ; |
||
1536 | loc_1465 call GET_KEYS ; |
||
1537 | cp "Y" |
||
1538 | jr nz,loc_1465 |
||
1539 | call CLEAR_DOWN_SCR ; |
||
1540 | loc_146F ld a,(TRD_5CF1) |
||
1541 | or a |
||
1542 | ret z |
||
1543 | push hl |
||
1544 | ld hl,TRD_5D23 |
||
1545 | sub (hl) |
||
1546 | pop hl |
||
1547 | jr nc,loc_14CB |
||
1548 | ld a,(TRD_5CF1) |
||
1549 | ld b,a |
||
1550 | xor a |
||
1551 | ld (TRD_5CF1),a |
||
1552 | loc_1484 push bc |
||
1553 | ld (TRD_5CCE),a ; #00- ,#FF- |
||
1554 | ld hl,(TRD_5CCF) ; WORK_SP |
||
1555 | push hl |
||
1556 | ld de,(TRD_5CF2) |
||
1557 | call SET_DSK_SOURCE |
||
1558 | call COM_05 ; |
||
1559 | ld hl,(TRD_5CF4) |
||
1560 | ld (TRD_5CF2),hl |
||
1561 | call CLEAR_SCREEN ; |
||
1562 | ld hl,TXT_INS_DEST ; "INSERT DESTINATION DISK" |
||
1563 | call PRINT_MSG ; |
||
1564 | loc_14A5 call GET_KEYS ; |
||
1565 | cp "Y" |
||
1566 | jr nz,loc_14A5 |
||
1567 | call CLEAR_DOWN_SCR ; |
||
1568 | ld a,(TRD_5D21) |
||
1569 | or a |
||
1570 | call nz,CP_FREESEC |
||
1571 | pop hl |
||
1572 | pop bc |
||
1573 | ld de,(TRD_5CEB) ; |
||
1574 | call SETUP_DSK_DEST |
||
1575 | call COM_06 |
||
1576 | ld hl,(TRD_5CF4) |
||
1577 | ld (TRD_5CEB),hl ; |
||
1578 | jp COPY_ON1DSK_ |
||
623 | savelij | 1579 | |
761 | savelij | 1580 | loc_14CB ld (TRD_5CF1),a |
1581 | push hl |
||
1582 | ld hl,TRD_5D23 |
||
1583 | ld b,(hl) |
||
1584 | pop hl |
||
1585 | xor a |
||
1586 | jp loc_1484 |
||
623 | savelij | 1587 | |
761 | savelij | 1588 | SET_DSK_SOURCE push hl |
1589 | push de |
||
1590 | call GET_TYPE_DISK |
||
1591 | ld a,(TRD_5CD9) ; <B> <C> |
||
1592 | ld (hl),a |
||
1593 | pop de |
||
1594 | pop hl |
||
678 | savelij | 1595 | ret |
623 | savelij | 1596 | |
761 | savelij | 1597 | SETUP_DSK_DEST push hl |
1598 | push de |
||
1599 | call GET_TYPE_DISK |
||
1600 | ld a,(TRD_5CDA) |
||
1601 | ld (hl),a |
||
1602 | pop de |
||
1603 | pop hl |
||
678 | savelij | 1604 | ret |
623 | savelij | 1605 | |
761 | savelij | 1606 | CP_FREE_DEST xor a |
1607 | ld (TRD_5D21),a |
||
1608 | call COM_18 ; |
||
1609 | call GET_TYPE_DISK |
||
1610 | ld (TRD_5CDA),a |
||
1611 | ld a,(TRD_5E08) |
||
1612 | ld (TRD_5CE7),a ; <C>- , <B>- |
||
1613 | ld hl,640 |
||
1614 | cp 0x19 |
||
1615 | jr z,SAVE_SECS_DEST |
||
1616 | ld hl,1280 |
||
1617 | cp 0x18 |
||
1618 | jr z,SAVE_SECS_DEST |
||
1619 | cp 0x17 |
||
1620 | jr z,SAVE_SECS_DEST |
||
1621 | ld hl,2560 |
||
1622 | cp 0x16 |
||
1623 | jr z,SAVE_SECS_DEST |
||
1624 | jp SINTAX_ERROR |
||
623 | savelij | 1625 | |
761 | savelij | 1626 | SAVE_SECS_DEST ld (TRD_5CDD),hl ; |
1627 | ld bc,(TRD_5CDF) |
||
1628 | sbc hl,bc |
||
1629 | jp c,loc_1C45 |
||
678 | savelij | 1630 | ret |
623 | savelij | 1631 | |
761 | savelij | 1632 | COPY_B call EXIT_IF_SINTAX |
1633 | call RESERVED_RAM |
||
1634 | ld hl,TXT_BACKUPDISK ; "BACKUP DISK" |
||
1635 | call PRINT_MSG ; |
||
1636 | ld hl,TXT_INS_SRC ; "INSERT SOURCE DISK THEN PRESS Y" |
||
1637 | call PRINT_MSG ; |
||
1638 | loc_153E call GET_KEYS ; |
||
1639 | cp "Y" |
||
1640 | jr nz,loc_153E |
||
1641 | call CLEAR_DOWN_SCR ; |
||
1642 | ld a,0xff |
||
1643 | ld (TRD_5D21),a |
||
1644 | call COM_18 ; |
||
1645 | call GET_TYPE_DISK |
||
1646 | ld (TRD_5CD9),a ; <B> <C> |
||
1647 | ld a,(TRD_5E08) |
||
1648 | cp 0x19 |
||
1649 | ld hl,640 |
||
1650 | jr z,loc_1575 |
||
1651 | ld hl,1280 |
||
1652 | cp 0x18 |
||
1653 | jr z,loc_1575 |
||
1654 | cp 0x17 |
||
1655 | jr z,loc_1575 |
||
1656 | ld hl,2560 |
||
1657 | cp 0x16 |
||
1658 | jr z,loc_1575 |
||
1659 | jp SINTAX_ERROR |
||
678 | savelij | 1660 | |
761 | savelij | 1661 | loc_1575 ld bc,(TRD_5E0A) |
1662 | sbc hl,bc |
||
1663 | ld (TRD_5CE5),hl ; |
||
1664 | ld (TRD_5CDF),hl |
||
1665 | ld hl,0 |
||
1666 | ld (TRD_5CE1),hl |
||
1667 | ld (TRD_5CE3),hl |
||
1668 | call COPY_SECTORS |
||
1669 | call COM_18 ; |
||
1670 | ld a,(TRD_5CE7) ; <C>- , <B>- |
||
1671 | ld (TRD_5E08),a |
||
1672 | ld hl,(TRD_5CDD) ; |
||
1673 | ld bc,(TRD_5CDF) |
||
1674 | sbc hl,bc |
||
1675 | ld (TRD_5E0A),hl |
||
1676 | call SETUP_DSK_DEST |
||
1677 | ld de,9 |
||
1678 | ld (TRD_5CF4),de |
||
1679 | call REWRITE_9SEC ; 9 |
||
1680 | JP ERR_OK |
||
623 | savelij | 1681 | |
761 | savelij | 1682 | CP_COPY_SECS ld hl,(TRD_5CE5) ; |
1683 | ld a,h |
||
1684 | or l |
||
678 | savelij | 1685 | ret |
623 | savelij | 1686 | |
761 | savelij | 1687 | COPY_SECTORS call CP_COPY_SECS |
1688 | ret z |
||
1689 | ld a,(TRD_5D21) |
||
1690 | or a |
||
1691 | jr nz,loc_15DB |
||
1692 | call CLEAR_SCREEN ; |
||
1693 | ld hl,TXT_BACKUPDISK ; "BACKUP DISK" |
||
1694 | call PRINT_MSG ; |
||
1695 | ld hl,TXT_INS_SRC ; "INSERT SOURCE DISK THEN PRESS Y" |
||
1696 | call PRINT_MSG ; |
||
1697 | loc_15D1 call GET_KEYS ; |
||
1698 | cp "Y" |
||
1699 | jr nz,loc_15D1 |
||
1700 | call CLEAR_DOWN_SCR ; |
||
1701 | loc_15DB call CP_COPY_SECS |
||
1702 | ret z |
||
1703 | push bc |
||
1704 | push hl |
||
1705 | ld hl,TRD_5D23 |
||
1706 | ld c,(hl) |
||
1707 | ld b,0 |
||
1708 | pop hl |
||
1709 | sbc hl,bc |
||
1710 | pop bc |
||
1711 | jp nc,loc_1644 |
||
1712 | ld bc,(TRD_5CE5) ; |
||
1713 | ld hl,0 |
||
1714 | ld (TRD_5CE5),hl ; |
||
1715 | loc_15F8 push bc |
||
1716 | ld hl,(TRD_5CCF) ; WORK_SP |
||
1717 | push hl |
||
1718 | call SET_DSK_SOURCE |
||
1719 | ld de,(TRD_5CE1) |
||
1720 | ld b,c |
||
1721 | call COM_05 ; |
||
1722 | ld hl,(TRD_5CF4) |
||
1723 | ld (TRD_5CE1),hl |
||
1724 | call CLEAR_SCREEN ; |
||
1725 | ld hl,TXT_BACKUPDISK ; "BACKUP DISK" |
||
1726 | call PRINT_MSG ; |
||
1727 | ld hl,TXT_INS_DEST ; "INSERT DESTINATION DISK" |
||
1728 | call PRINT_MSG ; |
||
1729 | loc_161D call GET_KEYS ; |
||
1730 | cp "Y" |
||
1731 | jr nz,loc_161D |
||
1732 | call CLEAR_DOWN_SCR ; |
||
1733 | ld a,(TRD_5D21) |
||
1734 | or a |
||
1735 | call nz,CP_FREE_DEST |
||
1736 | pop hl |
||
1737 | pop bc |
||
1738 | ld de,(TRD_5CE3) |
||
1739 | ld b,c |
||
1740 | call SETUP_DSK_DEST |
||
1741 | call COM_06 |
||
1742 | ld hl,(TRD_5CF4) |
||
1743 | ld (TRD_5CE3),hl |
||
1744 | jp COPY_SECTORS |
||
623 | savelij | 1745 | |
761 | savelij | 1746 | loc_1644 ld (TRD_5CE5),hl ; |
1747 | push hl |
||
1748 | ld hl,TRD_5D23 |
||
1749 | ld c,(hl) |
||
1750 | ld b,0 |
||
1751 | pop hl |
||
1752 | xor a |
||
1753 | jp loc_15F8 |
||
623 | savelij | 1754 | |
761 | savelij | 1755 | CP_ERASED_FILE call RDHEAD_FILENAME ; |
1756 | ld a,(TRD_5CDD) ; |
||
1757 | cp 1 |
||
678 | savelij | 1758 | ret |
623 | savelij | 1759 | |
1760 | ; 0X5CDD |
||
761 | savelij | 1761 | COM_08 ld c,a |
678 | savelij | 1762 | ; |
761 | savelij | 1763 | RDHEAD_FILENAME xor a |
1764 | loc_165E push bc |
||
1765 | call RD_HEAD_COPY |
||
1766 | pop bc |
||
678 | savelij | 1767 | ret |
623 | savelij | 1768 | |
1769 | ; |
||
761 | savelij | 1770 | COM_09 ld c,a |
1771 | call SETHEADFILENAME |
||
1772 | jp REWRITE_9SEC ; 9 |
||
623 | savelij | 1773 | |
761 | savelij | 1774 | SETHEADFILENAME ld a,0xff |
1775 | jr loc_165E |
||
623 | savelij | 1776 | |
761 | savelij | 1777 | RESERVED_RAM ld a,0xff |
1778 | ld (TRD_5D0E),a ; #FE- BASIC, TR-DOS |
||
1779 | call CP_FREE_SECS |
||
1780 | ld hl,(WORKSP) |
||
1781 | ld (TRD_5CCF),hl ; WORK_SP |
||
1782 | jp CREATE_FREERAM |
||
623 | savelij | 1783 | |
761 | savelij | 1784 | CP_FREE_SECS rst 0x20 |
1785 | dw 0x1f1a ; |
||
1786 | ld hl,0xffff |
||
1787 | sbc hl,bc |
||
1788 | ld a,h |
||
1789 | cp 0x10 |
||
1790 | jr nc,loc_168F |
||
1791 | ld a,0x11 |
||
1792 | loc_168F dec a |
||
1793 | ld (TRD_5D23),a |
||
1794 | ld b,a |
||
1795 | ld c,0 |
||
678 | savelij | 1796 | ret |
623 | savelij | 1797 | |
761 | savelij | 1798 | ADD_FILESIZE ld (TRD_5CD7),hl ; - |
1799 | ; |
||
1800 | LD (TRD_5CDB),hl |
||
1801 | ld de,(TRD_5CEA) ; |
||
1802 | ld hl,(TRD_5CD9) ; <B> <C> |
||
1803 | ld d,0 |
||
1804 | add hl,de |
||
1805 | ld (TRD_5CD9),hl ; <B> <C> |
||
678 | savelij | 1806 | ret |
623 | savelij | 1807 | |
761 | savelij | 1808 | MOVE call EXIT_IF_SINTAX |
1809 | call RESERVED_RAM |
||
1810 | call COM_18 ; |
||
1811 | ld a,(TRD_5E19) |
||
1812 | or a |
||
1813 | jp z,ERR_OK |
||
1814 | ld hl,0 |
||
1815 | ld (TRD_5CD9),hl ; <B> <C> |
||
1816 | ld c,0xff |
||
1817 | loc_16C3 inc c |
||
1818 | call CP_ERASED_FILE |
||
1819 | jr nz,loc_16C3 |
||
1820 | ld a,c |
||
1821 | ld (TRD_5CD4),a |
||
1822 | ld hl,(TRD_5CEB) ; |
||
1823 | ld (TRD_5CD5),hl |
||
1824 | call ADD_FILESIZE |
||
1825 | loc_16D6 inc c |
||
1826 | call CP_ERASED_FILE |
||
1827 | jr z,loc_16D6 |
||
1828 | cp 0 |
||
1829 | jp nz,loc_1710 |
||
1830 | ld a,(TRD_5CD4) |
||
1831 | ld c,a |
||
1832 | loc_16E5 inc c |
||
1833 | call CP_ERASED_FILE |
||
1834 | cp 0 |
||
1835 | jr z,REINIT_9SEC |
||
1836 | xor a |
||
1837 | ld (TRD_5CDD),a ; |
||
1838 | call WRHEAD_FILENAME ; |
||
1839 | call ADD_FILESIZE |
||
1840 | jr loc_16E5 |
||
623 | savelij | 1841 | |
678 | savelij | 1842 | DUPL 0X1710-$,0XFF |
761 | savelij | 1843 | loc_1710 ld a,(TRD_5CEA) ; |
1844 | ld (TRD_5CD3),a |
||
1845 | ld (TRD_5CD1),a |
||
1846 | ld hl,(TRD_5CEB) ; |
||
1847 | ld (TRD_5CD5),hl |
||
1848 | push bc |
||
1849 | call MOVE_FILE |
||
1850 | pop bc |
||
1851 | ld hl,(TRD_5CF4) |
||
1852 | ld (TRD_5CD5),hl |
||
1853 | ld (TRD_5CEB),hl ; |
||
1854 | xor a |
||
1855 | ld (TRD_5CEA),a ; |
||
1856 | ld a,(TRD_5CDD) ; |
||
1857 | push af |
||
1858 | ld a,1 |
||
1859 | ld (TRD_5CDD),a ; |
||
1860 | call WRHEAD_FILENAME ; |
||
1861 | pop af |
||
1862 | ld (TRD_5CDD),a ; |
||
1863 | ld a,(TRD_5CD4) |
||
1864 | ld c,a |
||
1865 | ld hl,(TRD_5CDB) |
||
1866 | ld (TRD_5CEB),hl ; |
||
1867 | ld a,(TRD_5CD1) |
||
1868 | ld (TRD_5CEA),a ; |
||
1869 | call WRHEAD_FILENAME ; |
||
1870 | ld a,(TRD_5CD4) |
||
1871 | inc a |
||
1872 | ld c,a |
||
1873 | call RDHEAD_FILENAME ; |
||
1874 | ld hl,(TRD_5CD5) |
||
1875 | ld (TRD_5CEB),hl ; |
||
1876 | call WRHEAD_FILENAME ; |
||
1877 | ld a,(TRD_5CD4) |
||
1878 | ld c,a |
||
1879 | jp loc_16C3 |
||
623 | savelij | 1880 | |
761 | savelij | 1881 | REINIT_9SEC ld hl,(TRD_5CCF) ; WORK_SP |
1882 | ld bc,0x1000 |
||
1883 | call DEL_WORKRAM |
||
1884 | call READ_9SEC ; 9 |
||
1885 | ld hl,(TRD_5E0A) |
||
1886 | ld de,(TRD_5CD9) ; <B> <C> |
||
1887 | add hl,de |
||
1888 | ld (TRD_5E0A),hl |
||
1889 | ld a,(TRD_5E09) |
||
1890 | ld hl,TRD_5E19 |
||
1891 | sub (hl) |
||
1892 | ld (TRD_5E09),a |
||
1893 | ld (hl),0 |
||
1894 | ld hl,(TRD_5CD5) |
||
1895 | ld (TRD_5E06),hl |
||
1896 | push af |
||
1897 | call REWRITE_9SEC ; 9 |
||
1898 | pop af |
||
1899 | ld c,a |
||
1900 | call RDHEAD_FILENAME ; |
||
1901 | xor a |
||
1902 | ld (TRD_5CDD),a ; |
||
1903 | jp loc_569 |
||
623 | savelij | 1904 | |
761 | savelij | 1905 | MOVE_FILE ld a,(TRD_5CD3) |
1906 | or a |
||
1907 | ret z |
||
1908 | push hl |
||
1909 | ld hl,TRD_5D23 |
||
1910 | sub (hl) |
||
1911 | pop hl |
||
1912 | jr nc,loc_17DD |
||
1913 | ld a,(TRD_5CD3) |
||
1914 | ld b,a |
||
1915 | xor a |
||
1916 | ld (TRD_5CD3),a |
||
1917 | loc_17BA push bc |
||
1918 | ld hl,(TRD_5CCF) ; WORK_SP |
||
1919 | push hl |
||
1920 | ld de,(TRD_5CD5) |
||
1921 | call COM_05 ; |
||
1922 | ld hl,(TRD_5CF4) |
||
1923 | ld (TRD_5CD5),hl |
||
1924 | pop hl |
||
1925 | pop bc |
||
1926 | ld de,(TRD_5CD7) ; - |
||
1927 | ; |
||
1928 | call COM_06 |
||
1929 | ld hl,(TRD_5CF4) |
||
1930 | ld (TRD_5CD7),hl ; - |
||
1931 | ; |
||
1932 | jr MOVE_FILE |
||
623 | savelij | 1933 | |
761 | savelij | 1934 | loc_17DD ld (TRD_5CD3),a |
1935 | push hl |
||
1936 | ld hl,TRD_5D23 |
||
1937 | ld b,(hl) |
||
1938 | pop hl |
||
1939 | xor a |
||
1940 | jr loc_17BA |
||
623 | savelij | 1941 | |
761 | savelij | 1942 | RD_HEAD_COPY push af |
1943 | ld hl,TRD_5CCC ; |
||
1944 | ld (hl),0 |
||
1945 | ld a,c |
||
1946 | loc_17F0 sub 0x10 |
||
1947 | jr c,loc_17F7 |
||
1948 | inc (hl) |
||
1949 | jr loc_17F0 |
||
623 | savelij | 1950 | |
761 | savelij | 1951 | loc_17F7 add a,0x10 |
1952 | ld c,a |
||
1953 | push bc |
||
1954 | call READ_NUM_SEC ; |
||
1955 | pop bc |
||
1956 | pop af |
||
1957 | call FIND_HEAD_BUF |
||
1958 | ld de,TRD_5CDD ; |
||
1959 | ld bc,0x10 |
||
1960 | or a |
||
1961 | jr z,loc_180D |
||
1962 | ex de,hl |
||
1963 | loc_180D |
||
1964 | IF EMU |
||
1965 | IF EMU3D2F=1 |
||
623 | savelij | 1966 | JP EMU_LDIR |
1967 | ELSE |
||
678 | savelij | 1968 | ldir |
1969 | ret |
||
623 | savelij | 1970 | ENDIF |
761 | savelij | 1971 | ELSE |
1972 | LDIR |
||
1973 | RET |
||
1974 | ENDIF |
||
623 | savelij | 1975 | |
761 | savelij | 1976 | VERIFY ld a,0xff |
1977 | ld (TRD_5CF9),a ; 2 |
||
1978 | LOAD call ZERO2HIGH_ERR |
||
1979 | loc_1818 call LOAD_FILE |
||
1980 | call EXIT_IF_SINTAX |
||
1981 | ld a,0xff |
||
1982 | ld (TRD_5D10),a ; |
||
1983 | ld a,(TRD_5CF9) ; 2 |
||
1984 | cp 0xff |
||
1985 | jp z,ERR_OK |
||
1986 | ld a,(TRD_5CE5) ; |
||
1987 | cp "B" |
||
1988 | jp z,WORK4AUTORUN ; |
||
1989 | jp ERR_OK |
||
623 | savelij | 1990 | |
761 | savelij | 1991 | LOAD_FILE call GET_PARAMS |
1992 | call EXIT_IF_SINTAX |
||
1993 | call CP_PARAMS |
||
1994 | jp RD_FILE |
||
623 | savelij | 1995 | |
761 | savelij | 1996 | GET_LOAD_CODE ld hl,(CH_ADD) |
1997 | inc hl |
||
1998 | ld a,(hl) |
||
1999 | cp 0x0d |
||
2000 | ret z |
||
2001 | ld a,1 |
||
2002 | ld (TRD_5CD6),a ; #FF- |
||
2003 | call INPUT_PARAMS |
||
2004 | ZERO2HIGH_ERR xor a |
||
2005 | ld (TRD_5D10),a ; |
||
678 | savelij | 2006 | ret |
623 | savelij | 2007 | |
761 | savelij | 2008 | sub_1857 call INP_EXTFILENAME ; |
2009 | ld a,"B" |
||
2010 | cp b |
||
2011 | jr nz,loc_1866 |
||
2012 | ld hl,(CH_ADD) |
||
2013 | dec hl |
||
2014 | ld (CH_ADD),hl |
||
2015 | loc_1866 call INPUT_PARAMS |
||
2016 | ld hl,(TRD_5CD9) ; <B> <C> |
||
2017 | ld (TRD_5CD7),hl ; - |
||
2018 | ; |
||
2019 | ld hl,(TRD_5CDB) |
||
2020 | ld (TRD_5CD9),hl ; <B> <C> |
||
2021 | xor a |
||
2022 | ld (TRD_5CD6),a ; #FF- |
||
678 | savelij | 2023 | ret |
623 | savelij | 2024 | |
761 | savelij | 2025 | GET_PARAMS call CP_SECOND_SYM |
2026 | jp z,loc_27B |
||
2027 | call SET_AND_PUT |
||
2028 | call CP_HIGH_ERR |
||
2029 | call nz,sub_1857 |
||
2030 | call GET_SYMSTR |
||
2031 | cp __CODE |
||
2032 | call z,GET_LOAD_CODE |
||
2033 | cp __DATA |
||
2034 | push af |
||
2035 | call CP_HIGH_ERR |
||
2036 | call z,INP_EXTFILENAME ; |
||
2037 | pop af |
||
2038 | call z,READ_MASSIV |
||
2039 | call EXIT_IF_SINTAX |
||
2040 | call FIND_FILE ; |
||
2041 | FIND_RD_HEAD jp nz,ERR_NOFILES |
||
2042 | call RDHEAD_FILENAME ; |
||
678 | savelij | 2043 | ret |
623 | savelij | 2044 | |
761 | savelij | 2045 | CP_PARAMS ld a,(TRD_5CD6) |
2046 | or a |
||
2047 | ld hl,(TRD_5CE6) ; |
||
2048 | jr z,loc_18B7 |
||
2049 | ld hl,(TRD_5CD9) ; |
||
678 | savelij | 2050 | loc_18B7 CALL ADR_START_COM |
2051 | NOP |
||
761 | savelij | 2052 | cp 3 |
2053 | ld a,(TRD_5CEA) ; |
||
2054 | push de |
||
2055 | ld de,(TRD_5CE8) ; |
||
2056 | jr nz,loc_18CB |
||
2057 | ld de,(TRD_5CDB) ; |
||
2058 | loc_18CB ld b,a |
||
2059 | ld (TRD_5CDB),de |
||
2060 | ld a,(TRD_5CE5) ; |
||
2061 | cp "C" |
||
2062 | ld a,b |
||
2063 | jr nz,loc_18FD |
||
2064 | ld a,b |
||
2065 | cp d |
||
2066 | jr z,loc_18F6 |
||
2067 | dec a |
||
2068 | cp d |
||
2069 | ld a,b |
||
2070 | jr z,loc_18F6 |
||
2071 | ld a,(TRD_5CD6) ; #FF- |
||
2072 | cp 3 |
||
2073 | ld a,b |
||
2074 | jr z,loc_18F6 |
||
2075 | xor a |
||
2076 | ld (TRD_5CD6),a ; #FF- |
||
2077 | ld d,b |
||
2078 | ld e,0 |
||
2079 | ld (TRD_5CDB),de |
||
2080 | jr loc_18F9 |
||
623 | savelij | 2081 | |
761 | savelij | 2082 | loc_18F6 call LOAD_FULLFILE |
2083 | loc_18F9 ld a,b |
||
2084 | call KOLWO_SECS |
||
2085 | loc_18FD ld b,a |
||
2086 | ld a,(TRD_5CE5) ; |
||
2087 | cp "C" |
||
2088 | pop de |
||
2089 | ret z |
||
2090 | push de |
||
2091 | cp "B" |
||
2092 | push af |
||
2093 | call z,LOAD4BASIC |
||
2094 | pop af |
||
2095 | cp "D" |
||
2096 | call z,LOAD4DATA |
||
2097 | call LOAD_FULLFILE |
||
2098 | ld a,(TRD_5CDC) |
||
678 | savelij | 2099 | ld b,a |
2100 | pop de |
||
2101 | ret |
||
623 | savelij | 2102 | |
761 | savelij | 2103 | LOAD_FULLFILE ld a,3 |
2104 | ld (TRD_5CD6),a ; #FF- |
||
678 | savelij | 2105 | ret |
623 | savelij | 2106 | |
761 | savelij | 2107 | RD_FILE call CP_HIGH_ERR |
2108 | jr z,loc_192D |
||
2109 | push af |
||
2110 | call NUM_SEC_FILE |
||
2111 | pop af |
||
2112 | cp 0xff |
||
2113 | loc_192D push af |
||
2114 | call z,RD_SECTORS |
||
2115 | pop af |
||
2116 | jr z,loc_1937 |
||
2117 | jp COM_06 |
||
623 | savelij | 2118 | |
761 | savelij | 2119 | loc_1937 ld a,(TRD_5CD6) ; #FF- |
2120 | cp 3 |
||
2121 | call z,RD_OR_VERIFY |
||
2122 | ld hl,(E_LINE) ; |
||
2123 | dec hl |
||
2124 | ld (hl),0x80 |
||
2125 | ret |
||
623 | savelij | 2126 | |
761 | savelij | 2127 | RD_OR_VERIFY ld a,(TRD_5CF9) ; 2 |
2128 | cp 0xff |
||
2129 | jp nz,LOAD_END_FILE |
||
2130 | ld a,(TRD_5CDB) |
||
2131 | or a |
||
2132 | ret z |
||
2133 | ld c,a |
||
2134 | ld b,1 |
||
2135 | ld de,(TRD_5CF4) |
||
2136 | jr loc_196A |
||
623 | savelij | 2137 | |
761 | savelij | 2138 | RD_SECTORS ld a,(TRD_5CF9) ; 2 |
2139 | cp 0xff |
||
2140 | jp nz,COM_05 ; |
||
2141 | ld (TRD_5CF4),de |
||
2142 | ld c,0 |
||
2143 | loc_196A ld a,b |
||
2144 | or a |
||
2145 | ret z |
||
2146 | ld (TRD_5CD7),hl ; - |
||
2147 | ; |
||
2148 | ld (TRD_5CD9),de ; <B> <C> |
||
2149 | loc_1974 push bc |
||
2150 | ld b,1 |
||
2151 | ld de,(TRD_5CD9) ; <B> <C> |
||
2152 | ld hl,TRD_5D25 |
||
2153 | call COM_05 ; |
||
2154 | ld hl,(TRD_5CF4) |
||
2155 | ld (TRD_5CD9),hl ; <B> <C> |
||
2156 | pop bc |
||
2157 | ld hl,(TRD_5CD7) ; - |
||
2158 | ; |
||
2159 | ld de,TRD_5D25 |
||
2160 | loc_198E ld a,(de) |
||
2161 | cp (hl) |
||
2162 | jr nz,loc_199D |
||
2163 | inc hl |
||
2164 | inc de |
||
2165 | dec c |
||
2166 | jr nz,loc_198E |
||
2167 | ld (TRD_5CD7),hl ; - |
||
2168 | ; |
||
2169 | djnz loc_1974 |
||
678 | savelij | 2170 | ret |
623 | savelij | 2171 | |
761 | savelij | 2172 | loc_199D ld hl,TXT_VERIFYERR ; "VERIFY ERROR." |
2173 | ld a,0x0d |
||
2174 | jp PRINT_TXTERR |
||
623 | savelij | 2175 | |
761 | savelij | 2176 | PEEK ld a,0xff |
2177 | jr loc_19AB |
||
623 | savelij | 2178 | |
761 | savelij | 2179 | POKE ld a,0xee |
2180 | loc_19AB ld (TRD_5D10),a ; |
||
2181 | jp loc_1818 |
||
623 | savelij | 2182 | |
761 | savelij | 2183 | MERGE ld a,0xff |
2184 | ld (TRD_5D1F),a |
||
2185 | call GET_PARAMS |
||
2186 | call EXIT_IF_SINTAX |
||
2187 | ld a,(TRD_5CE5) ; |
||
2188 | cp "B" |
||
2189 | jp nz,SINTAX_ERROR |
||
2190 | ld bc,(TRD_5CE6) ; <C>- , <B>- |
||
2191 | ld (TRD_5CDB),bc |
||
2192 | push bc |
||
2193 | inc bc |
||
2194 | rst 0x20 |
||
2195 | dw 0x30 ; |
||
2196 | ld (hl),0x80 |
||
2197 | ex de,hl |
||
2198 | pop de |
||
2199 | push hl |
||
2200 | ld de,(TRD_5CEB) ; |
||
2201 | call LOAD_FULLFILE |
||
2202 | ld a,(TRD_5CDC) |
||
2203 | ld b,a |
||
2204 | call ZERO2HIGH_ERR |
||
2205 | call RD_FILE |
||
2206 | pop hl |
||
2207 | ld de,(PROG) |
||
2208 | rst 0x20 |
||
2209 | dw 0x08d2 ; |
||
2210 | jp ERR_OK |
||
623 | savelij | 2211 | |
761 | savelij | 2212 | CP_FREE4PROG ex de,hl |
678 | savelij | 2213 | scf |
761 | savelij | 2214 | sbc hl,de |
2215 | ret c |
||
2216 | ld de,0x0a |
||
2217 | add hl,de |
||
2218 | ld b,h |
||
2219 | ld c,l |
||
2220 | CP_FREE_RAM rst 0x20 |
||
2221 | dw 0x1f05 ; |
||
2222 | ret |
||
623 | savelij | 2223 | |
761 | savelij | 2224 | LOAD4BASIC ld de,(PROG) |
2225 | ld hl,(E_LINE) ; |
||
2226 | dec hl |
||
2227 | push hl |
||
2228 | push de |
||
2229 | sbc hl,de |
||
2230 | ld de,(TRD_5CE6) ; <C>- , <B>- |
||
2231 | push de |
||
2232 | push hl |
||
2233 | ld hl,0 |
||
2234 | ld a,(TRD_5CF9) ; 2 |
||
2235 | cp 0xff |
||
2236 | jr z,loc_1A20 |
||
2237 | ld hl,5 |
||
2238 | loc_1A20 add hl,de |
||
2239 | ld (TRD_5CDB),hl |
||
2240 | pop hl |
||
2241 | ld a,(TRD_5CF9) ; 2 |
||
2242 | cp 0xff |
||
2243 | jr nz,loc_1A31 |
||
2244 | pop de |
||
2245 | pop de |
||
2246 | pop hl |
||
2247 | jr loc_1A48 |
||
623 | savelij | 2248 | |
761 | savelij | 2249 | loc_1A31 call CP_FREE4PROG |
2250 | pop bc |
||
2251 | pop de |
||
2252 | pop hl |
||
2253 | push bc |
||
2254 | rst 0x20 |
||
2255 | dw 0x19e5 ; |
||
2256 | pop bc |
||
2257 | call RESERV_RAM |
||
2258 | inc hl |
||
2259 | ld bc,(TRD_5CE8) ; |
||
2260 | add hl,bc |
||
2261 | ld (VARS),hl |
||
2262 | loc_1A48 ld hl,(PROG) |
||
678 | savelij | 2263 | ret |
623 | savelij | 2264 | |
761 | savelij | 2265 | LOAD4DATA ld de,(TRD_5CE8) ; |
2266 | ld (TRD_5CDB),de |
||
2267 | ld hl,(TRD_5CD7) ; - |
||
2268 | ; |
||
2269 | ld a,(TRD_5CF9) ; 2 |
||
2270 | cp 0xff |
||
2271 | ret z |
||
2272 | ld hl,(TRD_5CD9) ; <B> <C> |
||
2273 | push hl |
||
2274 | call CP_FREE4PROG |
||
2275 | pop hl |
||
2276 | ld a,h |
||
2277 | or l |
||
2278 | jr z,loc_1A79 |
||
2279 | ld hl,(TRD_5CD7) ; - |
||
2280 | ; |
||
2281 | dec hl |
||
2282 | dec hl |
||
2283 | dec hl |
||
2284 | ld bc,(TRD_5CD9) ; <B> <C> |
||
2285 | inc bc |
||
2286 | inc bc |
||
2287 | inc bc |
||
2288 | call DEL_WORKRAM |
||
2289 | loc_1A79 ld hl,(E_LINE) ; |
||
2290 | dec hl |
||
2291 | ld bc,(TRD_5CE8) ; |
||
2292 | push bc |
||
2293 | inc bc |
||
2294 | inc bc |
||
2295 | inc bc |
||
2296 | call RESERV_RAM |
||
2297 | inc hl |
||
2298 | ld a,(TRD_5CD2) |
||
2299 | ld (hl),a |
||
2300 | inc hl |
||
2301 | pop de |
||
2302 | ld (hl),e |
||
2303 | inc hl |
||
2304 | ld (hl),d |
||
2305 | inc hl |
||
678 | savelij | 2306 | ret |
623 | savelij | 2307 | |
761 | savelij | 2308 | NUM_SEC_FILE ld a,(TRD_5CD9) ; <B> <C> |
2309 | ld c,b |
||
2310 | ld b,a |
||
2311 | ld a,c |
||
2312 | cp b |
||
2313 | jr c,loc_1AB6 |
||
2314 | ld a,b |
||
2315 | or a |
||
2316 | jp z,SINTAX_ERROR |
||
2317 | dec b |
||
2318 | jr z,loc_1AB0 |
||
2319 | ld a,0x10 |
||
2320 | loc_1AA7 inc e |
||
2321 | cp e |
||
2322 | jr nz,loc_1AAE |
||
2323 | ld e,0 |
||
2324 | inc d |
||
2325 | loc_1AAE djnz loc_1AA7 |
||
2326 | loc_1AB0 ld b,1 |
||
2327 | ld hl,(TRD_5CD7) ; - |
||
2328 | ; |
||
678 | savelij | 2329 | ret |
623 | savelij | 2330 | |
761 | savelij | 2331 | loc_1AB6 ld hl,TXT_R_O |
2332 | ld a,5 |
||
2333 | jp PRINT_TXTERR |
||
623 | savelij | 2334 | |
761 | savelij | 2335 | CP_FILE_FREE call FIND_FILE ; |
2336 | jp z,FILE_EXISTS |
||
2337 | CP_FREE_ON_DSK call READ_9SEC ; 9 |
||
2338 | ld a,(TRD_5E09) |
||
2339 | cp 0x80 |
||
2340 | jp z,ERR_DIRFULL |
||
678 | savelij | 2341 | ret |
623 | savelij | 2342 | |
761 | savelij | 2343 | SAVE call ZERO2HIGH_ERR |
2344 | ld hl,0 |
||
2345 | ld (TRD_5CD1),hl |
||
2346 | call SET_AND_PUT |
||
2347 | call GET_SYMSTR |
||
2348 | cp __CODE |
||
2349 | jr z,loc_1B39 |
||
2350 | cp __LINE |
||
2351 | jr nz,loc_1AF8 |
||
2352 | call SET_NUM_CHAN |
||
2353 | call EXIT_IF_SINTAX |
||
2354 | ld hl,(TRD_5CDB) |
||
2355 | ld (TRD_5CD1),hl |
||
2356 | ld hl,TRD_5CE5 ; |
||
2357 | jr loc_1B1F |
||
623 | savelij | 2358 | |
761 | savelij | 2359 | loc_1AF8 cp __SCREENS |
2360 | jr nz,loc_1B0D |
||
2361 | ld hl,0x4000 |
||
2362 | ld (TRD_5CD7),hl ; - |
||
2363 | ; |
||
2364 | ld hl,0x1b00 |
||
2365 | ld (TRD_5CD9),hl ; <B> <C> |
||
2366 | ld (TRD_5CDB),hl |
||
2367 | jr loc_1B48 |
||
623 | savelij | 2368 | |
761 | savelij | 2369 | loc_1B0D call EXIT_IF_SINTAX |
2370 | call GET_SYMSTR |
||
2371 | ld hl,TRD_5CE5 ; |
||
2372 | cp __DATA |
||
2373 | jr z,loc_1B2C |
||
2374 | cp 0x0d |
||
2375 | jp nz,SINTAX_ERROR |
||
2376 | loc_1B1F ld (hl),"B" |
||
2377 | call CP_FILE_FREE |
||
2378 | call DEL_5BYTES |
||
2379 | loc_1B27 call SET_START_SIZE |
||
2380 | jr loc_1B53 |
||
623 | savelij | 2381 | |
761 | savelij | 2382 | loc_1B2C ld (hl),"D" |
2383 | call CP_FILE_FREE |
||
2384 | call CP_MASSIV |
||
2385 | jr nc,loc_1B53 |
||
2386 | jp c,SINTAX_ERROR |
||
2387 | loc_1B39 call GET_START_SIZE |
||
2388 | ld hl,(TRD_5CD9) ; <B> <C> |
||
2389 | ld (TRD_5CD7),hl ; - |
||
2390 | ; |
||
2391 | ld hl,(TRD_5CDB) |
||
2392 | ld (TRD_5CD9),hl ; <B> <C> |
||
2393 | loc_1B48 call EXIT_IF_SINTAX |
||
2394 | ld a,"C" |
||
2395 | ld (TRD_5CE5),a ; |
||
2396 | call CP_FILE_FREE |
||
2397 | loc_1B53 call SAVE_FILE |
||
2398 | jp loc_569 |
||
623 | savelij | 2399 | |
761 | savelij | 2400 | SAVE_FILE ld hl,(TRD_5CD7) ; - |
2401 | ; |
||
2402 | ld (TRD_5CE6),hl ; <C>- , <B>- |
||
2403 | ex de,hl |
||
2404 | ld hl,(TRD_5CD9) ; <B> <C> |
||
2405 | ld a,l |
||
2406 | or h |
||
2407 | jp z,SINTAX_ERROR |
||
2408 | ld a,l |
||
2409 | or a |
||
2410 | jr z,loc_1B6D |
||
2411 | inc h |
||
2412 | loc_1B6D ld a,h |
||
2413 | ld (TRD_5CEA),a ; |
||
2414 | ld e,a |
||
2415 | ld d,0 |
||
2416 | ld hl,(TRD_5E0A) |
||
2417 | sbc hl,de |
||
2418 | jp c,loc_1C45 |
||
2419 | push hl |
||
2420 | ld hl,(E_LINE) ; |
||
2421 | ld (hl),__SCREENS |
||
2422 | inc hl |
||
2423 | ld de,(TRD_5CD1) |
||
2424 | ld (hl),e |
||
2425 | inc hl |
||
2426 | ld (hl),d |
||
2427 | ld hl,(TRD_5CDB) |
||
2428 | ld (TRD_5CE8),hl ; |
||
2429 | ld hl,(TRD_5E06) |
||
2430 | ld (TRD_5CEB),hl ; |
||
2431 | ex de,hl |
||
2432 | ld hl,(TRD_5CE6) ; <C>- , <B>- |
||
2433 | ld a,(TRD_5CEA) ; |
||
2434 | ld b,a |
||
2435 | call COM_06 |
||
2436 | ld hl,(TRD_5CF4) |
||
2437 | push hl |
||
2438 | call READ_9SEC ; 9 |
||
2439 | pop hl |
||
2440 | ld (TRD_5E06),hl |
||
2441 | pop hl |
||
2442 | ld (TRD_5E0A),hl |
||
2443 | ld hl,TRD_5E09 |
||
2444 | ld a,(hl) |
||
2445 | ld (TRD_5D1E),a |
||
2446 | inc (hl) |
||
2447 | push hl |
||
2448 | call REWRITE_9SEC ; 9 |
||
2449 | pop hl |
||
2450 | ld c,(hl) |
||
2451 | dec c |
||
2452 | ld a,(TRD_5CE5) ; |
||
2453 | cp "B" |
||
2454 | call z,SET_HEAD_STSZ |
||
678 | savelij | 2455 | ret |
623 | savelij | 2456 | |
761 | savelij | 2457 | SET_HEAD_STSZ ld hl,(E_LINE) ; |
2458 | ld de,(PROG) |
||
678 | savelij | 2459 | scf |
761 | savelij | 2460 | sbc hl,de |
2461 | ld (TRD_5CE6),hl ; <C>- , <B>- |
||
2462 | ld hl,(VARS) |
||
2463 | sbc hl,de |
||
2464 | ld (TRD_5CE8),hl ; |
||
678 | savelij | 2465 | ret |
623 | savelij | 2466 | |
761 | savelij | 2467 | SET_START_SIZE ld hl,(VARS) |
2468 | ld de,(PROG) |
||
2469 | sbc hl,de |
||
2470 | ld (TRD_5CDB),hl |
||
2471 | ld hl,(PROG) |
||
2472 | ld (TRD_5CD7),hl ; - |
||
2473 | ; |
||
2474 | ld hl,(E_LINE) ; |
||
2475 | inc hl |
||
2476 | inc hl |
||
2477 | inc hl |
||
2478 | sbc hl,de |
||
2479 | ld (TRD_5CD9),hl ; <B> <C> |
||
678 | savelij | 2480 | ret |
623 | savelij | 2481 | |
761 | savelij | 2482 | READ_MASSIV call FIND_MASSIV |
2483 | ret nc |
||
2484 | ld hl,0 |
||
2485 | ld (TRD_5CD9),hl ; <B> <C> |
||
2486 | ld a,(TRD_5CF9) ; 2 |
||
2487 | cp 0xff |
||
2488 | ret nz |
||
2489 | jp loc_1C13 |
||
623 | savelij | 2490 | |
761 | savelij | 2491 | CP_MASSIV call FIND_MASSIV |
2492 | ret nc |
||
2493 | loc_1C13 ld a,0x0e |
||
2494 | ld hl,TXT_ARRAYNOT ; "ARRAY NOT FOUND" |
||
2495 | jp PRINT_TXTERR |
||
623 | savelij | 2496 | |
761 | savelij | 2497 | FIND_MASSIV call GET_NEXT_SYM |
2498 | call LOOK_VARS |
||
2499 | set 7,c |
||
2500 | ld a,c |
||
2501 | ld (TRD_5CD2),a |
||
2502 | jr nc,loc_1C2B |
||
678 | savelij | 2503 | loc_1C29 scf |
2504 | ret |
||
623 | savelij | 2505 | |
761 | savelij | 2506 | loc_1C2B jr nz,loc_1C29 |
2507 | inc hl |
||
2508 | ld e,(hl) |
||
2509 | inc hl |
||
2510 | ld d,(hl) |
||
2511 | inc hl |
||
2512 | ld (TRD_5CD7),hl ; - |
||
2513 | ; |
||
2514 | ld (TRD_5CDB),de |
||
2515 | ld (TRD_5CD9),de ; <B> <C> |
||
2516 | call GET_NEXT_SYM |
||
2517 | cp ")" |
||
2518 | jr nz,loc_1C2B |
||
678 | savelij | 2519 | ret |
623 | savelij | 2520 | |
761 | savelij | 2521 | loc_1C45 ld hl,TXT_NOSPACE_ |
2522 | ld a,3 |
||
2523 | PRINT_TXTERR call PRINT_ERROR ; |
||
2524 | jp END_COMAND |
||
623 | savelij | 2525 | |
761 | savelij | 2526 | FILE_EXISTS ld hl,TXT_FILEEXISTS_ |
2527 | ld a,2 |
||
2528 | jr PRINT_TXTERR |
||
623 | savelij | 2529 | |
761 | savelij | 2530 | SET_FILENAME ld hl,TRD_5CDD ; |
2531 | ld b,8 |
||
2532 | loc_1C5C ld (hl)," " |
||
2533 | inc hl |
||
2534 | djnz loc_1C5C |
||
2535 | call CP_ON_STKBOT |
||
2536 | ex de,hl |
||
2537 | call SETUP_DSK |
||
2538 | ld a,c |
||
2539 | or a |
||
2540 | jp z,SINTAX_ERROR |
||
2541 | cp 9 |
||
2542 | jr c,loc_1C73 |
||
2543 | ld c,8 |
||
2544 | loc_1C73 ld a,(hl) |
||
2545 | cp " " |
||
2546 | jp c,SINTAX_ERROR |
||
2547 | ld de,TRD_5CDD ; |
||
2548 | push bc |
||
2549 | IF EMU |
||
678 | savelij | 2550 | IF EMU3D2F=1 |
623 | savelij | 2551 | JP EMU_LDIR_RBC |
678 | savelij | 2552 | |
2553 | RET |
||
2554 | ELSE |
||
2555 | ldir |
||
2556 | pop bc |
||
2557 | ret |
||
2558 | ENDIF |
||
761 | savelij | 2559 | ELSE |
2560 | ldir |
||
2561 | pop bc |
||
2562 | ret |
||
2563 | ENDIF |
||
623 | savelij | 2564 | |
2565 | ; |
||
761 | savelij | 2566 | SETUP_DSK inc hl |
2567 | ld a,(hl) ; |
||
2568 | CP ":" ; ":", |
||
2569 | jr nz,loc_1C98 ; |
||
2570 | dec hl |
||
2571 | ld a,(hl) ; |
||
2572 | call NUMDSK2BYTE ; |
||
2573 | push bc |
||
2574 | push hl |
||
2575 | call COM_01 ; |
||
2576 | pop hl |
||
2577 | pop bc |
||
2578 | dec bc |
||
2579 | dec bc ; |
||
2580 | inc hl |
||
2581 | inc hl ; |
||
678 | savelij | 2582 | ret |
623 | savelij | 2583 | |
761 | savelij | 2584 | loc_1C98 dec hl |
2585 | ld a,(TRD_5D19) ; |
||
2586 | push bc |
||
2587 | push hl |
||
2588 | call COM_01 ; |
||
2589 | pop hl |
||
2590 | pop bc |
||
678 | savelij | 2591 | ret |
623 | savelij | 2592 | |
761 | savelij | 2593 | FIND_HEAD_BUF ld l,c |
2594 | ld h,0 |
||
2595 | add hl,hl |
||
2596 | add hl,hl |
||
2597 | add hl,hl |
||
2598 | add hl,hl |
||
2599 | ld bc,TRD_5D25 |
||
2600 | add hl,bc |
||
678 | savelij | 2601 | ret |
623 | savelij | 2602 | |
761 | savelij | 2603 | SET_CP_FILENAME call SET_FILENAME |
623 | savelij | 2604 | ; |
761 | savelij | 2605 | FIND_FILENAME call RD_0SEC2BUF ; 0 |
2606 | ld b,0x80 |
||
2607 | ld c,0 |
||
2608 | loc_1CBA push bc |
||
2609 | call FIND_HEAD_BUF |
||
2610 | call CP_END_BUF |
||
2611 | pop bc |
||
2612 | push bc |
||
2613 | ld a,c |
||
2614 | cp 0x10 |
||
2615 | jr nz,loc_1CCD |
||
2616 | pop bc |
||
2617 | ld c,0 |
||
2618 | jr loc_1CBA |
||
623 | savelij | 2619 | |
761 | savelij | 2620 | loc_1CCD ld de,TRD_5CDD ; |
2621 | ld a,(TRD_5D06) ; |
||
2622 | ld b,a |
||
2623 | xor a |
||
2624 | cp (hl) |
||
2625 | jr nz,loc_1CDB |
||
2626 | pop bc |
||
2627 | jr loc_1CE4 |
||
623 | savelij | 2628 | |
761 | savelij | 2629 | loc_1CDB call COMPARE_B_SYM |
2630 | pop bc |
||
2631 | jr z,loc_1CE7 |
||
2632 | inc c |
||
2633 | djnz loc_1CBA |
||
2634 | loc_1CE4 or 0xff |
||
678 | savelij | 2635 | ret |
623 | savelij | 2636 | |
761 | savelij | 2637 | loc_1CE7 ld a,0x80 |
2638 | sub b |
||
2639 | ld c,a |
||
2640 | ld (TRD_5D1E),a |
||
2641 | xor a |
||
2642 | ret z |
||
623 | savelij | 2643 | |
2644 | ; |
||
761 | savelij | 2645 | COM_0A call FIND_FILENAME ; |
2646 | ld hl,TRD_5D0F ; TR-DOS |
||
2647 | ld (hl),c |
||
2648 | ret z |
||
2649 | ld (hl),0xff |
||
678 | savelij | 2650 | ret |
623 | savelij | 2651 | |
761 | savelij | 2652 | RETURN call EXIT_IF_SINTAX |
2653 | CALL DELETE_BUFFER |
||
2654 | res 3,(iy+1) |
||
2655 | call RESTORE_SP ; |
||
2656 | ld sp,(TRD_5D1C) ; SP |
||
2657 | exx ;LD HL,(ERR_SP) |
||
2658 | ld hl,0x2758 ;DEC HL |
||
2659 | exx ;LD A,0X12 |
||
2660 | dec hl ;CP (HL) |
||
2661 | ld a,0x12 ;JR NZ,LOCRET_1D19 |
||
2662 | cp (hl) ;DEC HL |
||
2663 | ret nz ;LD (ERR_SP),HL |
||
2664 | dec hl ;LOCRET_1D19 RET |
||
2665 | jp loc_0235 |
||
623 | savelij | 2666 | |
761 | savelij | 2667 | SINTAX_ERROR bit 7,(iy+0) |
2668 | jr z,loc_1D25 |
||
2669 | ld a,0x0b |
||
2670 | ld (ERR_NR),a |
||
2671 | loc_1D25 inc a |
||
2672 | ld hl,TXT_ERROR_ |
||
2673 | loc_1D29 call PRINT_ERROR ; |
||
2674 | jp END_COMAND |
||
623 | savelij | 2675 | |
761 | savelij | 2676 | loc_1D2F ld a,(ERR_NR) |
2677 | ld hl,TXT_BREAK ; "*BREAK*" |
||
2678 | cp 0x14 |
||
2679 | jr z,loc_1D29 |
||
2680 | cp 0x0c |
||
2681 | jr z,loc_1D29 |
||
2682 | ld hl,TXT_OUTRAM ; "OUT OF RAM" |
||
2683 | cp 3 |
||
2684 | jr z,loc_1D29 |
||
2685 | ld hl,TXT_ARRAYNOT ; "ARRAY NOT FOUND" |
||
2686 | cp 1 |
||
2687 | jr z,loc_1D29 |
||
2688 | jr SINTAX_ERROR |
||
623 | savelij | 2689 | |
761 | savelij | 2690 | RUN call ZERO2HIGH_ERR |
2691 | call LOAD_FILE |
||
2692 | call EXIT_IF_SINTAX |
||
2693 | ld hl,(TRD_5CE6) |
||
2694 | ld a,(TRD_5CE5) ; |
||
2695 | cp "B" |
||
2696 | JP RUN_FILE |
||
2697 | |||
2698 | push hl |
||
678 | savelij | 2699 | ret |
623 | savelij | 2700 | |
761 | savelij | 2701 | CLEAR_WORKSPACE ld hl,TRD_5D0E ; #FF- BASIC, TR-DOS |
2702 | ld a,(hl) |
||
2703 | loc_1D67 cp 0xff |
||
2704 | ld (hl),0 |
||
2705 | ret nz |
||
2706 | rst 0x20 |
||
2707 | dw 0x16bf ; |
||
678 | savelij | 2708 | ret |
623 | savelij | 2709 | |
761 | savelij | 2710 | CP_SINTAX bit 7,(iy+1) |
678 | savelij | 2711 | ret |
623 | savelij | 2712 | |
761 | savelij | 2713 | EXIT_IF_SINTAX call CP_SINTAX |
2714 | ret nz |
||
2715 | pop hl |
||
678 | savelij | 2716 | ret |
623 | savelij | 2717 | |
2718 | ; |
||
761 | savelij | 2719 | CHISLO2STKBOT call GET_NEXT_SYM |
2720 | call BC2STKBOT |
||
2721 | jr CP_SINTAX |
||
623 | savelij | 2722 | |
2723 | ; 0 |
||
761 | savelij | 2724 | OPEN_CHAN_0 xor a |
2725 | OPENSTREAM rst 0x20 |
||
2726 | dw 0x1601 ; |
||
678 | savelij | 2727 | ret |
623 | savelij | 2728 | |
2729 | ; 2 |
||
761 | savelij | 2730 | OPEN_CHAN_2 ld a,2 |
2731 | jr OPENSTREAM |
||
623 | savelij | 2732 | |
761 | savelij | 2733 | GET_SYMSTR rst 0x20 |
2734 | dw 0x18 ; (CH_ADD) |
||
678 | savelij | 2735 | ret |
623 | savelij | 2736 | |
761 | savelij | 2737 | CALL2BASEDIT call OPEN_CHAN_0 ; 0 |
2738 | rst 0x20 |
||
2739 | dw 0x0f2c ; |
||
678 | savelij | 2740 | ret |
623 | savelij | 2741 | |
2742 | ; |
||
761 | savelij | 2743 | CLEAR_SCREEN rst 0x20 |
2744 | dw 0x0d6b ; |
||
678 | savelij | 2745 | ret |
623 | savelij | 2746 | |
761 | savelij | 2747 | LOOK_VARS rst 0x20 |
2748 | dw 0x28b2 ; LOOK-VARS. |
||
678 | savelij | 2749 | ret |
623 | savelij | 2750 | |
2751 | ; |
||
761 | savelij | 2752 | CLEAR_DOWN_SCR rst 0x20 |
2753 | dw 0x0d6e ; |
||
678 | savelij | 2754 | ret |
623 | savelij | 2755 | |
761 | savelij | 2756 | PRINT_CHISLO_A_ ld c,a |
2757 | CONV2_2BYTES ld b,0 |
||
2758 | jp PRINT_CHISLO |
||
623 | savelij | 2759 | |
761 | savelij | 2760 | PRINT_CHISLO push bc |
678 | savelij | 2761 | DUPL 3,0 |
761 | savelij | 2762 | pop bc |
2763 | rst 0x20 |
||
2764 | dw 0x1a1b ; |
||
678 | savelij | 2765 | DUPL 3,0 |
2766 | ret |
||
623 | savelij | 2767 | |
761 | savelij | 2768 | GET_STKBOT_ rst 0x20 |
2769 | dw 0x2bf1 ; |
||
678 | savelij | 2770 | ret |
623 | savelij | 2771 | |
761 | savelij | 2772 | FIND_LAST rst 0x20 |
2773 | dw 0x1e99 ; |
||
678 | savelij | 2774 | ret |
623 | savelij | 2775 | |
761 | savelij | 2776 | PUT_NUMDSK_STK rst 0x20 |
2777 | dw 0x1c8c |
||
678 | savelij | 2778 | ret |
623 | savelij | 2779 | |
761 | savelij | 2780 | BC2STKBOT rst 0x20 |
2781 | dw 0x1c82 |
||
678 | savelij | 2782 | ret |
623 | savelij | 2783 | |
761 | savelij | 2784 | SET_CH_ADD ld hl,(TRD_5D11) ; TR_DOS |
2785 | inc hl |
||
2786 | ld (CH_ADD),hl |
||
678 | savelij | 2787 | ret |
627 | savelij | 2788 | |
761 | savelij | 2789 | INP_2STR2STKBOT call SET_AND_PUT |
2790 | loc_1DD0 call GET_SYMSTR |
||
2791 | cp "," |
||
2792 | jp nz,SINTAX_ERROR |
||
2793 | call GET_NEXT_SYM |
||
2794 | call PUT_NUMDSK_STK |
||
678 | savelij | 2795 | ret |
623 | savelij | 2796 | |
761 | savelij | 2797 | SET_AND_PUT call SET_CH_ADD |
2798 | jp PUT_NUMDSK_STK |
||
623 | savelij | 2799 | |
761 | savelij | 2800 | GET_START_SIZE call GET_SYMSTR |
2801 | cp __CODE |
||
2802 | ret nz |
||
2803 | INPUT_PARAMS call CHISLO2STKBOT ; |
||
2804 | jr z,loc_1DFB |
||
2805 | call FIND_LAST |
||
2806 | ld (TRD_5CD9),bc ; <B> <C> |
||
2807 | ld (TRD_5CDB),bc |
||
2808 | loc_1DFB call GET_SYMSTR |
||
2809 | cp "," |
||
2810 | jr z,SET_NUM_CHAN |
||
2811 | cp 0x0d |
||
2812 | jp nz,SINTAX_ERROR |
||
2813 | call EXIT_IF_SINTAX |
||
678 | savelij | 2814 | ret |
623 | savelij | 2815 | |
761 | savelij | 2816 | SET_NUM_CHAN call CHISLO2STKBOT ; |
2817 | ret z |
||
2818 | call FIND_LAST |
||
2819 | ld (TRD_5CDB),bc |
||
2820 | ld a,3 |
||
2821 | ld (TRD_5CD6),a ; #FF- |
||
678 | savelij | 2822 | ret |
623 | savelij | 2823 | |
761 | savelij | 2824 | DEL_5BYTES ld hl,(TRD_5D11) ; TR_DOS |
2825 | rst 0x20 |
||
2826 | dw 0x11a7 ; P |
||
678 | savelij | 2827 | ret |
623 | savelij | 2828 | |
761 | savelij | 2829 | CREATE_FREERAM ld hl,(WORKSP) |
2830 | rst 0x20 |
||
2831 | dw 0x30 ; |
||
678 | savelij | 2832 | ret |
623 | savelij | 2833 | |
761 | savelij | 2834 | GET_NEXT_SYM rst 0x20 |
2835 | dw 0x20 ; |
||
678 | savelij | 2836 | ret |
623 | savelij | 2837 | |
761 | savelij | 2838 | DEL_WORKRAM rst 0x20 |
2839 | dw 0x19e8 ; |
||
678 | savelij | 2840 | ret |
623 | savelij | 2841 | |
761 | savelij | 2842 | RESERV_RAM rst 0x20 |
2843 | dw 0x1655 |
||
678 | savelij | 2844 | ret |
623 | savelij | 2845 | |
761 | savelij | 2846 | WR_NUM_TRACK call GET_NUM_TRACK ;FIX |
2847 | ld a,h |
||
2848 | IF EMU |
||
678 | savelij | 2849 | RST32 _OUT_3F,__OUT_N_A+0X3F<<8 |
761 | savelij | 2850 | ELSE |
2851 | out (0x3f),a |
||
2852 | ENDIF |
||
678 | savelij | 2853 | ret |
623 | savelij | 2854 | |
2855 | ; |
||
761 | savelij | 2856 | COM_05 xor a |
2857 | jr loc_1E64 |
||
623 | savelij | 2858 | |
761 | savelij | 2859 | WRHEAD_FILENAME call SETHEADFILENAME ; |
2860 | REWRITE_9SEC ld de,(TRD_5CF4) ; 9 |
||
2861 | dec de |
||
2862 | ld b,1 |
||
2863 | ld hl,TRD_5D25 |
||
623 | savelij | 2864 | ; |
678 | savelij | 2865 | COM_06 JR SAVE_SECTORS |
2866 | |||
2867 | DUPL 0X1E62-$,0 |
||
761 | savelij | 2868 | SAVE_SECTORS ld a,0xff |
2869 | loc_1E64 ld (TRD_5CCE),a ; #00- ,#FF- |
||
2870 | loc_1E67 ld (TRD_5CF4),de |
||
2871 | push bc |
||
2872 | push hl |
||
2873 | IF EMU |
||
2874 | CALL SV_LD_RAMDISK |
||
2875 | ELSE |
||
2876 | call WR_NUM_TRACK |
||
2877 | ENDIF |
||
2878 | pop hl |
||
2879 | pop bc |
||
2880 | xor a |
||
2881 | or b |
||
2882 | ret z |
||
2883 | loc_1E75 push bc |
||
2884 | push hl |
||
2885 | call COM_04 |
||
2886 | ld a,(TRD_5CF4) |
||
2887 | call COM_03 |
||
2888 | ld a,(TRD_5CF5) |
||
2889 | call COM_02 |
||
2890 | ld a,(TRD_5CCE) ; #00- ,#FF- |
||
2891 | or a |
||
2892 | push af |
||
2893 | call z,LOAD_SECTOR |
||
2894 | pop af |
||
2895 | call nz,SAVE_SECTOR |
||
2896 | pop hl |
||
2897 | ld de,0x100 |
||
2898 | add hl,de |
||
2899 | push hl |
||
2900 | ld a,0x10 |
||
2901 | ld hl,TRD_5CF4 |
||
2902 | inc (hl) |
||
2903 | cp (hl) |
||
2904 | jr nz,loc_1EA7 |
||
2905 | ld (hl),0 |
||
2906 | ld hl,TRD_5CF5 |
||
2907 | inc (hl) |
||
2908 | loc_1EA7 pop hl |
||
2909 | pop bc |
||
2910 | djnz loc_1E75 |
||
678 | savelij | 2911 | ret |
623 | savelij | 2912 | |
761 | savelij | 2913 | KOLWO_SECS push hl |
2914 | ld h,a |
||
2915 | ld l,0 |
||
2916 | push hl |
||
2917 | sbc hl,de |
||
2918 | call c,LOAD_FILLFILE |
||
2919 | pop hl |
||
2920 | ld a,h |
||
2921 | pop hl |
||
2922 | ret c |
||
2923 | ld a,d |
||
678 | savelij | 2924 | ret |
623 | savelij | 2925 | |
761 | savelij | 2926 | LOAD_FILLFILE xor a |
2927 | ld (TRD_5CD6),a ; #FF- |
||
678 | savelij | 2928 | scf |
2929 | ret |
||
623 | savelij | 2930 | |
761 | savelij | 2931 | FORMAT ld hl,0xffff |
2932 | LD (TRD_5CD7),hl ; - |
||
2933 | ; |
||
2934 | ld (TRD_5CD9),hl ; <B> <C> |
||
2935 | ld (TRD_5CD1),hl |
||
2936 | call CP_SECOND_SYM |
||
2937 | jp z,SINTAX_ERROR |
||
2938 | call SET_AND_PUT |
||
2939 | call EXIT_IF_SINTAX |
||
2940 | call SET_FILENAME |
||
678 | savelij | 2941 | |
2942 | DUPL 0X1EE1-$,0 |
||
623 | savelij | 2943 | CALL FORMAT_RAM |
2944 | JR Z,END_FORMAT |
||
761 | savelij | 2945 | ld a,80 |
2946 | loc_1EE8 ld (TRD_5CD7),a ; - |
||
2947 | ; |
||
2948 | call COM_00 |
||
2949 | call COM_17 |
||
2950 | call PAUSE_3_C_A |
||
2951 | ld e,1 |
||
2952 | call FORMAT_TREK |
||
2953 | call COM_16 |
||
2954 | ld e,0 |
||
2955 | call FORMAT_TREK |
||
678 | savelij | 2956 | |
2957 | DUPL 0X1F08-$,0 |
||
761 | savelij | 2958 | call COM_17 |
2959 | call PAUSE_3_C_A |
||
2960 | call loc_3EB5 |
||
2961 | ld a,0X80 |
||
2962 | ld (TRD_5CDA),a |
||
2963 | loc_1F1B call FORMAT_DISK |
||
678 | savelij | 2964 | |
623 | savelij | 2965 | END_FORMAT CALL CP_TYPEDRIVE |
2966 | CALL Z,CREATE_TRDTABL |
||
2967 | CALL CLEAR_DOWN_SCR |
||
2968 | LD HL,TRD_5D25 |
||
2969 | LD DE,TRD_5D26 |
||
2970 | LD BC,0XFF |
||
2971 | LD (HL),B |
||
2972 | LDIR |
||
678 | savelij | 2973 | JR loc_1F50 |
2974 | |||
2975 | DUPL 0X1F50-$,0 |
||
761 | savelij | 2976 | loc_1F50 ld a,0x16 |
2977 | ld hl,2544 |
||
2978 | loc_1F55 ld (TRD_5E08),a |
||
2979 | ld (TRD_5E0A),hl |
||
2980 | ld a,1 |
||
2981 | ld (TRD_5E07),a |
||
2982 | ld a,0X10 |
||
2983 | ld (TRD_5E0C),a |
||
2984 | ld hl,TRD_5E0F |
||
2985 | ld de,TRD_5E10 |
||
2986 | ld bc,8 |
||
2987 | ld (hl)," " |
||
678 | savelij | 2988 | ldir |
761 | savelij | 2989 | ld hl,TRD_5CDD ; |
2990 | ld de,TRD_5E1A |
||
2991 | ld bc,8 |
||
2992 | ldir ; |
||
2993 | call COM_16 |
||
2994 | ld b,1 |
||
2995 | ld de,8 |
||
2996 | ld hl,TRD_5D25 |
||
2997 | call SAVE_SECTORS |
||
2998 | ld a,(TRD_5CD6) ; #FF- |
||
2999 | push af |
||
3000 | xor a |
||
3001 | ld (TRD_5CE5),a ; |
||
3002 | ld hl,(TRD_5E0A) |
||
3003 | ld (TRD_5CD7),hl ; - |
||
3004 | ; |
||
3005 | ld hl,TRD_5CDD ; |
||
3006 | rst 0x18 |
||
3007 | ld a,0x0d |
||
3008 | rst 0x10 |
||
3009 | ld hl,(TRD_5CD7) ; - |
||
3010 | ; |
||
3011 | pop af |
||
3012 | push hl |
||
3013 | ld d,0 |
||
3014 | ld e,a |
||
3015 | sbc hl,de |
||
3016 | ld b,h |
||
3017 | ld c,l |
||
3018 | call PRINT_CHISLO ; |
||
3019 | ld a,"/" |
||
3020 | rst 0x10 |
||
3021 | pop bc |
||
3022 | call PRINT_CHISLO ; |
||
3023 | jp END_COMAND |
||
623 | savelij | 3024 | |
3025 | ; |
||
627 | savelij | 3026 | TABL_SECTORS DB 0X01,0X02,0X03,0X04,0X05,0X06,0X07,0X08,0X09,0X0A,0X0B,0X0C,0X0D,0X0E,0X0F,0X10,0X01 |
623 | savelij | 3027 | |
761 | savelij | 3028 | CP_DISK_TRACK call GET_TIME_HEAD ; |
3029 | or 11h |
||
3030 | ld b,a |
||
3031 | ld a,32h |
||
3032 | call HEAD_POSITION |
||
3033 | ld a,2 |
||
3034 | call HEAD_POSITION |
||
3035 | call PAUSE725779T |
||
3036 | IF EMU |
||
678 | savelij | 3037 | RST32 _IN_1F,__IN_A_N+0X1F<<8 |
761 | savelij | 3038 | ELSE |
3039 | in a,(1Fh) |
||
3040 | ENDIF |
||
3041 | and 4 |
||
3042 | ld a,80 ; 80 |
||
3043 | jr z,loc_1FE7 |
||
3044 | ld a,40 ; 40 |
||
3045 | loc_1FE7 ld (TRD_5CD7),a ; - |
||
3046 | ; |
||
678 | savelij | 3047 | ret |
3048 | |||
623 | savelij | 3049 | ; 0 |
761 | savelij | 3050 | COM_16 ld a,(TRD_5D16) ; ( #FF) |
3051 | or 0x3c |
||
3052 | loc_1FF0 ld (TRD_5D16),a ; ( #FF) |
||
3053 | IF EMU |
||
678 | savelij | 3054 | RST30 _OUT_FF |
761 | savelij | 3055 | ELSE |
3056 | out (0xff),a |
||
3057 | ENDIF |
||
678 | savelij | 3058 | ret |
623 | savelij | 3059 | |
3060 | ; 1 |
||
761 | savelij | 3061 | COM_17 ld a,(TRD_5D16) ; ( #FF) |
3062 | and 0x6f |
||
3063 | jr loc_1FF0 |
||
623 | savelij | 3064 | |
678 | savelij | 3065 | FORMAT_TREK di |
761 | savelij | 3066 | ld a,0xf4 |
3067 | IF EMU |
||
678 | savelij | 3068 | RST32 _OUT_1F,__OUT_N_A+0X1F<<8 |
761 | savelij | 3069 | ELSE |
3070 | out (0x1f),a |
||
3071 | ENDIF |
||
3072 | ld hl,TABL_SECTORS |
||
3073 | ld c,0x7f |
||
3074 | loc_2007 ld b,0x0a |
||
3075 | ld d,0x4e |
||
3076 | call WRITE_C_D_B |
||
3077 | ld b,0x0c |
||
3078 | ld d,0 |
||
3079 | call WRITE_C_D_B |
||
3080 | ld b,3 |
||
3081 | ld d,0xf5 |
||
3082 | call WRITE_C_D_B |
||
3083 | ld d,0xfe |
||
3084 | call WRITE_C_D_1 |
||
3085 | ld d,e |
||
3086 | call WRITE_C_D_1 |
||
3087 | ld d,0 |
||
3088 | call WRITE_C_D_1 |
||
3089 | ld d,(hl) |
||
3090 | call WRITE_C_D_1 |
||
3091 | ld d,1 |
||
3092 | call WRITE_C_D_1 |
||
3093 | ld d,0xf7 |
||
3094 | call WRITE_C_D_1 |
||
3095 | ld b,0x16 |
||
3096 | ld d,0x4e |
||
3097 | call WRITE_C_D_B |
||
3098 | ld b,0x0c |
||
3099 | ld d,0 |
||
3100 | call WRITE_C_D_B |
||
3101 | ld b,3 |
||
3102 | ld d,0xf5 |
||
3103 | call WRITE_C_D_B |
||
3104 | ld d,0xfb |
||
3105 | call WRITE_C_D_1 |
||
3106 | ld b,0 |
||
3107 | ld d,0 |
||
3108 | call WRITE_C_D_B |
||
3109 | ld d,0xf7 |
||
3110 | call WRITE_C_D_1 |
||
3111 | ld b,0x3c |
||
3112 | ld d,0x4e |
||
3113 | call WRITE_C_D_B |
||
3114 | ld a,(hl) |
||
3115 | inc hl |
||
3116 | cp 0x10 |
||
3117 | jr nz,loc_2007 |
||
3118 | ld b,0 |
||
3119 | call WRITE_C_D_B |
||
3120 | jp m,loc_2076 |
||
3121 | call WRITE_C_D_B |
||
3122 | loc_2076 |
||
3123 | IF EMU |
||
3124 | RST32 _IN_1F,__IN_A_N+0X1F<<8 |
||
3125 | ELSE |
||
3126 | in a,(0x1f) |
||
3127 | ENDIF |
||
3128 | and 0x40 |
||
3129 | jp nz,loc_3F39 ; READ ONLY |
||
3130 | CP_NUM_TRACK ld a,(TRD_5CD8) ; - |
||
3131 | ; |
||
3132 | or a |
||
3133 | ret nz |
||
3134 | ld c,0x7f |
||
3135 | ld a,e |
||
3136 | IF EMU |
||
678 | savelij | 3137 | RST32 _OUT_3F,__OUT_N_A+0X3F<<8 |
761 | savelij | 3138 | ELSE |
3139 | out (0x3f),a |
||
3140 | ENDIF |
||
3141 | ld hl,TABL_SECTORS+1 |
||
3142 | loc_208A ld b,3 |
||
3143 | ld a,(hl) |
||
3144 | IF EMU |
||
678 | savelij | 3145 | RST32 _OUT_5F,__OUT_N_A+0X5F<<8 |
761 | savelij | 3146 | ELSE |
3147 | out (0x5f),a |
||
3148 | ENDIF |
||
3149 | push hl |
||
678 | savelij | 3150 | loc_2090 di |
761 | savelij | 3151 | ld a,0x80 |
3152 | IF EMU |
||
678 | savelij | 3153 | RST32 _OUT_1F,__OUT_N_A+0X1F<<8 |
761 | savelij | 3154 | ELSE |
3155 | out (0x1f),a |
||
3156 | ENDIF |
||
3157 | push bc |
||
3158 | call RD_DATAPORT |
||
3159 | IF EMU |
||
678 | savelij | 3160 | RST32 _IN_1F,__IN_A_N+0X1F<<8 |
761 | savelij | 3161 | ELSE |
3162 | in a,(0x1f) |
||
3163 | ENDIF |
||
3164 | and 0x7f |
||
3165 | pop bc |
||
3166 | jr z,loc_20A6 |
||
3167 | djnz loc_2090 |
||
3168 | ld hl,TRD_5CD6 ; #FF- |
||
3169 | inc (hl) |
||
3170 | loc_20A6 pop hl |
||
3171 | ld a,(hl) |
||
3172 | inc hl |
||
3173 | cp 1 |
||
3174 | jr nz,loc_208A |
||
678 | savelij | 3175 | ei |
3176 | ret |
||
623 | savelij | 3177 | |
761 | savelij | 3178 | WRITE_C_D_1 ld b,1 |
3179 | WRITE_C_D_B |
||
3180 | IF EMU |
||
3181 | RST32 _IN_FF,__IN_A_N+0XFF<<8 |
||
3182 | ELSE |
||
3183 | in a,(0xff) |
||
3184 | ENDIF |
||
3185 | and 0xc0 |
||
3186 | jr z,WRITE_C_D_B |
||
3187 | ret m |
||
3188 | IF EMU |
||
678 | savelij | 3189 | RST32 _OUT_C_D,__OUT_C_D |
761 | savelij | 3190 | ELSE |
3191 | out (c),d |
||
3192 | ENDIF |
||
3193 | djnz WRITE_C_D_B |
||
678 | savelij | 3194 | ret |
623 | savelij | 3195 | |
832 | savelij | 3196 | FORMAT_DISK ld hl,TRD_5CD7 ; - |
761 | savelij | 3197 | ; |
3198 | ld b,(hl) |
||
3199 | xor a |
||
3200 | inc hl |
||
3201 | ld (hl),a |
||
3202 | ld e,0xff |
||
3203 | loc_20C6 push bc |
||
3204 | inc e |
||
3205 | ld a,e |
||
3206 | ld b,0x18 |
||
3207 | call HEAD_POSITION |
||
3208 | call COM_16 |
||
678 | savelij | 3209 | CALL loc_20D1 |
623 | savelij | 3210 | |
678 | savelij | 3211 | DUPL 0X20DE-$,0 |
761 | savelij | 3212 | call FORMAT_TREK |
3213 | loc_20E1 pop bc |
||
3214 | djnz loc_20C6 |
||
678 | savelij | 3215 | ret |
623 | savelij | 3216 | |
761 | savelij | 3217 | DELETE_BUF push af |
3218 | ld a,(TRD_5CF8) ; 2 |
||
3219 | cp 0xff |
||
3220 | jr z,loc_211C |
||
3221 | pop af |
||
3222 | jp DEL_BUF |
||
623 | savelij | 3223 | |
678 | savelij | 3224 | ; INTERFACE1 |
761 | savelij | 3225 | CP_INTERFACE1 push af |
3226 | ld a,(TRD_5CB6) ; INTERFACE1 |
||
3227 | cp 0F4h |
||
3228 | jr z,loc_211C |
||
3229 | xor a |
||
3230 | ld hl,TRD_5D18 |
||
3231 | or (hl) |
||
3232 | ld (hl),0FFh |
||
3233 | jr z,loc_211C |
||
3234 | ld a,(TRD_5D0C) |
||
3235 | or a |
||
3236 | ld hl,TRD_5CC3 |
||
3237 | ld de,TRD_5D33 |
||
3238 | jr nz,loc_2111 |
||
3239 | ld de,TRD_5E34 |
||
3240 | loc_2111 ld b,2Dh |
||
3241 | loc_2113 ld c,(hl) |
||
3242 | ld a,(de) |
||
3243 | ld (hl),a |
||
3244 | ld a,c |
||
3245 | ld (de),a |
||
3246 | inc hl |
||
3247 | inc de |
||
3248 | djnz loc_2113 |
||
3249 | loc_211C pop af |
||
678 | savelij | 3250 | ret |
3251 | |||
689 | savelij | 3252 | ;[ ] |
678 | savelij | 3253 | CLRBUF_EDITOR CALL CLRBUF_EDITOR2 |
761 | savelij | 3254 | ld (hl),0x0d |
3255 | ld (K_CUR),hl |
||
3256 | inc hl |
||
3257 | ld (hl),0x80 |
||
678 | savelij | 3258 | ret |
623 | savelij | 3259 | |
3260 | ; |
||
761 | savelij | 3261 | RESTORE_COMSTR ld de,(E_LINE) ; |
3262 | ld hl,TRD_5D20 ; 3 |
||
3263 | call LDI3_HL2DE ; 3 |
||
678 | savelij | 3264 | ret |
623 | savelij | 3265 | |
3266 | ; |
||
761 | savelij | 3267 | GET_COMMAND ld a,(TRD_5D0F) ; TR-DOS |
3268 | or a |
||
3269 | push af |
||
3270 | call nz,RESTORE_COMSTR ; , 3 |
||
3271 | pop af |
||
3272 | call z,CLRBUF_EDITOR ; , |
||
3273 | ld hl,(E_LINE) ; |
||
3274 | call PRINT_0D |
||
3275 | ld a,(TRD_5D19) ; |
||
3276 | IF EMU |
||
3277 | call GET_COMMAND2 |
||
3278 | ELSE |
||
3279 | add a,"A" |
||
3280 | rst 0x10 |
||
3281 | ENDIF |
||
3282 | ld a,">" |
||
3283 | rst 0x10 |
||
3284 | ld hl,ERR_NR |
||
3285 | ld (hl),0xff |
||
3286 | jp CALL2BASEDIT |
||
623 | savelij | 3287 | |
761 | savelij | 3288 | sub_2158 call GET_NEXT_SYM |
3289 | call GET_SYMSTR |
||
3290 | cp "," |
||
3291 | jp nz,SINTAX_ERROR |
||
3292 | ld hl,(TRD_5CDB) |
||
3293 | ld (TRD_5CD9),hl ; <B> <C> |
||
3294 | call SET_NUM_CHAN |
||
3295 | call EXIT_IF_SINTAX |
||
3296 | ld hl,(TRD_5CDB) |
||
3297 | ld a,h |
||
3298 | or a |
||
3299 | jp nz,SINTAX_ERROR |
||
3300 | inc hl |
||
3301 | ld (TRD_5CD7),hl ; - |
||
3302 | ; |
||
3303 | ld hl,(TRD_5CD9) ; <B> <C> |
||
3304 | ld (TRD_5CDB),hl |
||
678 | savelij | 3305 | ret |
623 | savelij | 3306 | |
761 | savelij | 3307 | OPEN ld hl,(TRD_5D11) ; TR_DOS |
3308 | ld (CH_ADD),hl |
||
3309 | call SET_NUM_CHAN |
||
3310 | call loc_1DD0 |
||
3311 | loc_218E call GET_SYMSTR |
||
3312 | cp "A" |
||
3313 | jr nc,loc_219A |
||
3314 | call GET_NEXT_SYM |
||
3315 | jr loc_218E |
||
623 | savelij | 3316 | |
761 | savelij | 3317 | loc_219A cp 0xa5 |
3318 | push af |
||
3319 | call z,sub_2158 |
||
3320 | pop af |
||
3321 | jr z,loc_21AE |
||
3322 | and 0xdf |
||
3323 | cp "R" |
||
3324 | jr z,loc_21AE |
||
3325 | cp "W" |
||
3326 | jp nz,SINTAX_ERROR |
||
3327 | loc_21AE ld (TRD_5D09),a |
||
3328 | call EXIT_IF_SINTAX |
||
3329 | ld a,"#" |
||
3330 | ld (TRD_5CE5),a ; |
||
3331 | ld a,0 |
||
3332 | ld (TRD_5CE6),a ; <C>- , <B>- |
||
3333 | call FIND_ENDFILE |
||
3334 | push af |
||
3335 | call CP_STREAMS |
||
3336 | pop af |
||
3337 | push af |
||
3338 | call nz,CREATE_BLOCK0 |
||
3339 | pop af |
||
3340 | call OPEN_STREAM |
||
3341 | ld hl,(TRD_5D11) ; TR_DOS |
||
3342 | ld bc,0x124 |
||
3343 | add hl,bc |
||
3344 | ld (TRD_5D11),hl ; TR_DOS |
||
3345 | jp END_COMAND |
||
623 | savelij | 3346 | |
761 | savelij | 3347 | FIND_ENDFILE ld a,0x0a |
3348 | ld (TRD_5D06),a ; |
||
3349 | call SET_CP_FILENAME |
||
3350 | push af |
||
3351 | call COM_18 ; |
||
3352 | pop af |
||
3353 | jr nz,loc_2206 |
||
3354 | ld a,(TRD_5D09) |
||
3355 | cp "R" |
||
3356 | jr z,loc_2201 |
||
3357 | loc_21F1 ld hl,TRD_5CE6 ; <C>- , <B>- |
||
3358 | inc (hl) |
||
3359 | call FIND_FILENAME ; |
||
3360 | jr z,loc_21F1 |
||
3361 | ld hl,TRD_5CE6 ; <C>- , <B>- |
||
3362 | dec (hl) |
||
3363 | call FIND_FILENAME ; |
||
3364 | loc_2201 call RDHEAD_FILENAME ; |
||
3365 | xor a |
||
678 | savelij | 3366 | ret |
623 | savelij | 3367 | |
761 | savelij | 3368 | loc_2206 ld a,(TRD_5D09) |
3369 | cp "R" |
||
3370 | ret nz |
||
3371 | jp ERR_NOFILES |
||
623 | savelij | 3372 | |
761 | savelij | 3373 | CP_STREAMS ld a,(TRD_5CDB) |
3374 | rst 0x20 |
||
3375 | dw 0x1727 |
||
3376 | ld a,b |
||
3377 | or c |
||
3378 | jp nz,loc_221B |
||
678 | savelij | 3379 | ret |
623 | savelij | 3380 | |
761 | savelij | 3381 | loc_221B ld a,0x19 |
3382 | ld (ERR_NR),A |
||
3383 | ld hl,TXT_STREAMOPEN ; "STREAM OPENED" |
||
3384 | ld a,0x0a |
||
3385 | loc_2225 jp PRINT_TXTERR |
||
623 | savelij | 3386 | |
761 | savelij | 3387 | loc_2228 ld a,0x0b |
3388 | ld hl,TXT_NODISKFILE ; "NOT DISK FILE" |
||
3389 | jr loc_2225 |
||
623 | savelij | 3390 | |
761 | savelij | 3391 | INITFREEACCESS push hl |
3392 | ld c,0x20 |
||
3393 | rst 0x28 |
||
3394 | ld a,(TRD_5CD7) ; - |
||
3395 | ; |
||
3396 | ld (hl),a |
||
3397 | inc hl |
||
3398 | xor a |
||
3399 | ld (hl),a |
||
3400 | inc hl |
||
3401 | ld (hl),a |
||
3402 | inc hl |
||
3403 | ld (hl),a |
||
3404 | ld a,0x7f |
||
3405 | pop hl |
||
678 | savelij | 3406 | ret |
623 | savelij | 3407 | |
761 | savelij | 3408 | OPEN_STREAM push af |
3409 | call CP_STREAMS |
||
3410 | ex de,hl |
||
3411 | ld hl,(PROG) |
||
3412 | ld bc,(CHANS) |
||
3413 | sbc hl,bc |
||
3414 | ex de,hl |
||
3415 | ld (hl),e |
||
3416 | inc hl |
||
3417 | ld (hl),d |
||
3418 | call CREATE_HEADCHAN |
||
3419 | ld a,(TRD_5D09) |
||
3420 | cp 0xa5 |
||
3421 | call z,INITFREEACCESS |
||
3422 | jr z,loc_226B |
||
3423 | ld a,(TRD_5D09) |
||
3424 | cp "R" |
||
3425 | ld a,0xff |
||
3426 | jr nz,loc_226B |
||
3427 | xor a |
||
3428 | loc_226B ld (hl),a |
||
3429 | pop af |
||
3430 | jp loc_2270 |
||
623 | savelij | 3431 | |
761 | savelij | 3432 | loc_2270 push af |
3433 | ld bc,0x14 |
||
3434 | add hl,bc |
||
3435 | push hl |
||
3436 | call GET_TEKSECFILE |
||
3437 | pop hl |
||
3438 | inc hl |
||
3439 | ld b,1 |
||
3440 | pop af |
||
3441 | or a |
||
3442 | push af |
||
3443 | call nz,COM_06 |
||
3444 | pop af |
||
3445 | call z,COM_05 ; |
||
678 | savelij | 3446 | ret |
623 | savelij | 3447 | |
761 | savelij | 3448 | CREATE_BLOCK0 ld hl,(TRD_5CD7) ; - |
3449 | ; |
||
3450 | push hl |
||
3451 | ld hl,0x2000 |
||
3452 | ld (TRD_5CD7),hl ; - |
||
3453 | ; |
||
3454 | call CREATE_BLOCK |
||
3455 | pop hl |
||
3456 | ld (TRD_5CD7),hl ; - |
||
3457 | ; |
||
678 | savelij | 3458 | ret |
623 | savelij | 3459 | |
761 | savelij | 3460 | CREATE_BLOCK ld hl,0x1000 |
3461 | ld (TRD_5CD9),hl ; <B> <C> |
||
3462 | call CP_FREE_ON_DSK |
||
3463 | call SAVE_FILE |
||
3464 | ld hl,0 |
||
3465 | ld (TRD_5CE8),hl ; |
||
3466 | call SETHEADFILENAME |
||
3467 | jp REWRITE_9SEC ; 9 |
||
623 | savelij | 3468 | |
761 | savelij | 3469 | CREATE_HEADCHAN ld hl,(PROG) |
3470 | dec hl |
||
3471 | ld (CURCHL),hl |
||
3472 | push hl |
||
3473 | ld bc,0x124 |
||
3474 | call RESERV_RAM |
||
3475 | ld a,0 |
||
3476 | ld b,0 |
||
3477 | loc_22C4 ld (de),a |
||
3478 | dec de |
||
3479 | djnz loc_22C4 |
||
3480 | pop hl |
||
3481 | push hl |
||
3482 | ld de,loc_3D0E |
||
3483 | ld (hl),e |
||
3484 | inc hl |
||
3485 | ld (hl),d |
||
3486 | inc hl |
||
3487 | ld de,loc_3D06 |
||
3488 | ld (hl),e |
||
3489 | inc hl |
||
3490 | ld (hl),d |
||
3491 | inc hl |
||
3492 | ld (hl),"D" |
||
3493 | inc hl |
||
3494 | inc hl |
||
3495 | inc hl |
||
3496 | inc hl |
||
3497 | inc hl |
||
3498 | ld (hl),"$" |
||
3499 | inc hl |
||
3500 | ld (hl),1 |
||
3501 | inc hl |
||
3502 | ld a,(TRD_5CF6) ; |
||
3503 | ld (hl),a |
||
3504 | inc hl |
||
3505 | ld a,(TRD_5D1E) |
||
3506 | ld (hl),a |
||
3507 | inc hl |
||
3508 | ld a,(TRD_5D09) |
||
3509 | cp "R" |
||
3510 | ld (hl),0 |
||
3511 | jr z,loc_22FC |
||
3512 | ld a,(TRD_5CE8) ; |
||
3513 | ld (hl),a |
||
3514 | loc_22FC inc hl |
||
3515 | ld (hl),b |
||
3516 | jr z,loc_2304 |
||
3517 | ld a,(TRD_5CE9) ; |
||
3518 | ld (hl),a |
||
3519 | loc_2304 inc hl |
||
3520 | ex de,hl |
||
3521 | pop hl |
||
3522 | push de |
||
3523 | ld de,0x10 |
||
3524 | add hl,de |
||
3525 | ex de,hl |
||
3526 | ld hl,TRD_5CDD ; |
||
3527 | ld bc,0x10 |
||
3528 | IF EMU |
||
678 | savelij | 3529 | IF EMU3D2F=1 |
623 | savelij | 3530 | JP EMU_LDIR_RHL |
678 | savelij | 3531 | ELSE |
3532 | ldir |
||
761 | savelij | 3533 | pop hl |
678 | savelij | 3534 | ENDIF |
761 | savelij | 3535 | ELSE |
3536 | ldir |
||
3537 | pop hl |
||
3538 | ENDIF |
||
678 | savelij | 3539 | ret |
623 | savelij | 3540 | |
761 | savelij | 3541 | GET_ADRTEKSYM ld c,0x0d |
3542 | rst 0x28 |
||
3543 | ld c,(hl) |
||
3544 | rst 0x28 |
||
3545 | ld bc,0x24 |
||
3546 | add hl,bc |
||
678 | savelij | 3547 | ret |
623 | savelij | 3548 | |
761 | savelij | 3549 | GET_ADRTEKFRG ld c,0x24 |
3550 | ADR_OPEN_CHAN ld b,0 |
||
3551 | ld hl,(CURCHL) |
||
3552 | add hl,bc |
||
678 | savelij | 3553 | ret |
623 | savelij | 3554 | |
761 | savelij | 3555 | CP_ENDOFSECTOR ld c,0x0d |
3556 | rst 0x28 |
||
3557 | inc (hl) |
||
3558 | ret nz |
||
3559 | push hl |
||
3560 | call SET_DISK |
||
3561 | call SAVE_TEKSECTOR ; |
||
3562 | pop hl |
||
3563 | inc hl |
||
3564 | inc (hl) |
||
3565 | push hl |
||
3566 | call LOADINGSECTOR |
||
3567 | pop hl |
||
3568 | ld a,0x10 |
||
3569 | cp (hl) |
||
3570 | ret nz |
||
3571 | push hl |
||
3572 | ld c,0x0f |
||
3573 | rst 0x28 |
||
3574 | ld a,(hl) |
||
3575 | cp 0x7f |
||
3576 | pop hl |
||
3577 | jr z,loc_2358 |
||
3578 | ld hl,(CURCHL) |
||
3579 | call SAVE_HEAD_BLK |
||
3580 | ld c,0x0e |
||
3581 | rst 0x28 |
||
3582 | jp loc_2379 |
||
623 | savelij | 3583 | |
761 | savelij | 3584 | loc_2358 call FIND_NEXT_BLK |
3585 | push af |
||
3586 | call z,LOADINGSECTOR |
||
3587 | ld c,0x0e |
||
3588 | rst 0x28 |
||
3589 | pop af |
||
3590 | call nz,CREATE_NEWBLOCK |
||
678 | savelij | 3591 | ret |
623 | savelij | 3592 | |
761 | savelij | 3593 | sub_2367 ld (hl),0 |
3594 | ld c,0x19 |
||
3595 | rst 0x28 |
||
3596 | ld d,0x20 |
||
3597 | ld e,(hl) |
||
678 | savelij | 3598 | ret |
623 | savelij | 3599 | |
761 | savelij | 3600 | CREATE_NEWBLOCK call sub_2367 |
3601 | ld (TRD_5CD7),de ; - |
||
3602 | ; |
||
3603 | jr CREATE_BLK |
||
623 | savelij | 3604 | |
761 | savelij | 3605 | loc_2379 call sub_2367 |
3606 | inc e |
||
3607 | ld (TRD_5CD7),de ; - |
||
3608 | ; |
||
3609 | CREATE_BLK call CREATE_BLOCK |
||
3610 | call DEL_BUF |
||
3611 | ld c,0x10 |
||
3612 | rst 0x28 |
||
3613 | ex de,hl |
||
3614 | ld hl,TRD_5CDD ; |
||
3615 | ld bc,0x10 |
||
678 | savelij | 3616 | ldir |
761 | savelij | 3617 | ld c,0x0c |
3618 | rst 0x28 |
||
3619 | ld a,(TRD_5D1E) |
||
3620 | ld (hl),a |
||
678 | savelij | 3621 | ret |
623 | savelij | 3622 | |
761 | savelij | 3623 | FIND_END_SEC ld c,0x0d |
3624 | rst 0x28 |
||
3625 | inc (hl) |
||
3626 | ret nz |
||
3627 | inc hl |
||
3628 | inc (hl) |
||
3629 | push hl |
||
3630 | call SET_DISK |
||
3631 | ld c,0x23 |
||
3632 | rst 0x28 |
||
3633 | ld a,(hl) |
||
3634 | or a |
||
3635 | jr z,loc_23B6 |
||
3636 | pop hl |
||
3637 | push hl |
||
3638 | dec (hl) |
||
3639 | call SAVE_TEKSECTOR ; |
||
3640 | pop hl |
||
3641 | push hl |
||
3642 | inc (hl) |
||
3643 | loc_23B6 call LOADINGSECTOR |
||
3644 | pop hl |
||
3645 | ld a,0x10 |
||
3646 | cp (hl) |
||
3647 | call z,OPEN_NEXT_BLK |
||
678 | savelij | 3648 | ret |
623 | savelij | 3649 | |
761 | savelij | 3650 | OPEN_NEXT_BLK call FIND_NEXT_BLK |
3651 | push af |
||
3652 | call DEL_BUF |
||
3653 | pop af |
||
3654 | jp nz,ERR_ENDOFFILE |
||
3655 | jp LOADINGSECTOR |
||
623 | savelij | 3656 | |
761 | savelij | 3657 | FIND_NEXT_BLK ld (hl),0 |
3658 | ld c,0x19 |
||
3659 | rst 0x28 |
||
3660 | inc (hl) |
||
3661 | ld c,0x10 |
||
3662 | rst 0x28 |
||
3663 | ld de,TRD_5CDD ; |
||
3664 | ld bc,0x10 |
||
678 | savelij | 3665 | ldir |
761 | savelij | 3666 | call FIND_FILENAME ; |
3667 | ret nz |
||
3668 | OPEN_BLK call RDHEAD_FILENAME ; |
||
3669 | ld c,0x10 |
||
3670 | rst 0x28 |
||
3671 | ex de,hl |
||
3672 | ld hl,TRD_5CDD ; |
||
3673 | ld bc,0x10 |
||
678 | savelij | 3674 | ldir |
761 | savelij | 3675 | ld c,0x0c |
3676 | rst 0x28 |
||
3677 | ld a,(TRD_5D1E) |
||
3678 | ld (hl),a |
||
3679 | xor a |
||
678 | savelij | 3680 | ret |
623 | savelij | 3681 | |
3682 | ; |
||
761 | savelij | 3683 | SAVE_TEKSECTOR call GET_TEKSECFILE |
3684 | call GET_ADRTEKFRG |
||
3685 | ld b,1 |
||
3686 | call COM_06 |
||
3687 | ld c,0x0f |
||
3688 | rst 0x28 |
||
3689 | ld a,(hl) |
||
3690 | cp 0x7f |
||
3691 | ret z |
||
3692 | call GET_ADRTEKFRG |
||
3693 | xor a |
||
3694 | ld b,a |
||
3695 | loc_2413 ld (hl),a |
||
3696 | inc hl |
||
3697 | djnz loc_2413 |
||
678 | savelij | 3698 | ret |
623 | savelij | 3699 | |
761 | savelij | 3700 | LOADINGSECTOR call GET_TEKSECFILE |
3701 | call GET_ADRTEKFRG |
||
3702 | ld b,1 |
||
3703 | jp COM_05 ; |
||
623 | savelij | 3704 | |
761 | savelij | 3705 | GET_TEKSECFILE ld hl,(CURCHL) |
3706 | ld bc,0x1e |
||
3707 | add hl,bc |
||
3708 | ld e,(hl) |
||
3709 | inc hl |
||
3710 | ld d,(hl) |
||
3711 | ld c,0x0e |
||
3712 | rst 0x28 |
||
3713 | ld b,(hl) |
||
3714 | dec b |
||
3715 | inc b |
||
3716 | push af |
||
3717 | ld a,0x10 |
||
3718 | jr z,loc_2441 |
||
3719 | loc_2438 inc e |
||
3720 | cp e |
||
3721 | jr nz,loc_243F |
||
3722 | ld e,0 |
||
3723 | inc d |
||
3724 | loc_243F djnz loc_2438 |
||
3725 | loc_2441 pop af |
||
678 | savelij | 3726 | ret |
623 | savelij | 3727 | |
761 | savelij | 3728 | SET_DISK ld c,0x0b |
3729 | rst 0x28 |
||
3730 | ld a,(hl) |
||
3731 | jp COM_01 ; |
||
623 | savelij | 3732 | |
761 | savelij | 3733 | OUT_SYM2FILE ld hl,TRD_5CC2 ; #C9. TR-DOS BASIC |
3734 | push hl |
||
678 | savelij | 3735 | DUPL 4,0 |
761 | savelij | 3736 | push af |
678 | savelij | 3737 | DUPL 3,0 |
761 | savelij | 3738 | ld a,0x0a |
3739 | ld (TRD_5D06),a ; |
||
3740 | pop af |
||
3741 | call WORK4FREEACCESS |
||
3742 | push af |
||
3743 | call CP_FILE_OPENED |
||
3744 | jp z,ERR_INVALID_IO |
||
3745 | pop af |
||
3746 | call GET_ADRTEKSYM |
||
3747 | ld (hl),a |
||
3748 | jp CP_ENDOFSECTOR |
||
623 | savelij | 3749 | |
761 | savelij | 3750 | CP_END_BLK ld c,0x0d |
3751 | rst 0x28 |
||
3752 | ld a,(hl) |
||
3753 | ld bc,0x0e |
||
3754 | add hl,bc |
||
3755 | cp (hl) |
||
3756 | ret nz |
||
3757 | ld c,0x0e |
||
3758 | rst 0x28 |
||
3759 | ld a,(hl) |
||
3760 | ld bc,0x0e |
||
3761 | add hl,bc |
||
3762 | cp (hl) |
||
3763 | ret nz |
||
3764 | ld hl,TRD_5CB6 ; INTERFACE1 |
||
3765 | ld a,(hl) |
||
3766 | cp 0xf4 |
||
3767 | jr z,ERR_ENDOFFILE |
||
3768 | bit 4,(hl) |
||
3769 | jr z,ERR_ENDOFFILE |
||
3770 | or 1 |
||
3771 | pop hl |
||
678 | savelij | 3772 | ret |
623 | savelij | 3773 | |
761 | savelij | 3774 | ERR_ENDOFFILE ld a,7 |
3775 | loc_2494 ld (ERR_NR),a |
||
3776 | call DELETE_BUF |
||
3777 | rst 0x20 |
||
3778 | dw 0x0058 |
||
678 | savelij | 3779 | ret |
623 | savelij | 3780 | |
761 | savelij | 3781 | ERR_INVALID_IO ld a,0x17 |
3782 | jr loc_2494 |
||
623 | savelij | 3783 | |
761 | savelij | 3784 | WORK4FREEACCESS ld d,a |
3785 | ld c,0x0f |
||
3786 | rst 0x28 |
||
3787 | ld a,(hl) |
||
3788 | cp 0x7f |
||
3789 | ld a,d |
||
3790 | ret nz |
||
3791 | ld bc,0x13 |
||
3792 | add hl,bc |
||
3793 | ld a,(hl) |
||
3794 | or a |
||
3795 | ld a,d |
||
3796 | jr nz,loc_24D5 |
||
3797 | dec hl |
||
3798 | ld a,(hl) |
||
3799 | or a |
||
3800 | jr nz,loc_24C2 |
||
3801 | push bc |
||
3802 | push hl |
||
3803 | push de |
||
3804 | call W16B2WORKSP |
||
3805 | pop de |
||
3806 | pop hl |
||
3807 | pop bc |
||
3808 | loc_24C2 ld c,(hl) |
||
3809 | ld a,d |
||
3810 | ex de,hl |
||
3811 | ld hl,(TRD_5CCF) ; WORK_SP |
||
3812 | add hl,bc |
||
3813 | cp 6 |
||
3814 | ld (hl),a |
||
3815 | call z,WORK_NUMSAVE |
||
3816 | ld c,0x21 |
||
3817 | rst 0x28 |
||
3818 | inc (hl) |
||
3819 | pop hl |
||
678 | savelij | 3820 | ret |
623 | savelij | 3821 | |
761 | savelij | 3822 | loc_24D5 dec hl |
3823 | ld a,(hl) |
||
3824 | dec hl |
||
3825 | inc a |
||
3826 | cp (hl) |
||
3827 | inc hl |
||
3828 | inc (hl) |
||
3829 | push hl |
||
3830 | push af |
||
3831 | ld c,0x23 |
||
3832 | rst 0x28 |
||
3833 | ld (hl),0xff |
||
3834 | pop af |
||
3835 | pop hl |
||
3836 | jr c,loc_24EE |
||
3837 | ld a,d |
||
3838 | cp 0x0d |
||
3839 | jr z,loc_24F2 |
||
3840 | pop bc |
||
678 | savelij | 3841 | ret |
623 | savelij | 3842 | |
761 | savelij | 3843 | loc_24EE ld a,d |
3844 | cp 0x0d |
||
3845 | ret nz |
||
3846 | loc_24F2 xor a |
||
3847 | ld (hl),a |
||
3848 | inc hl |
||
3849 | ld (hl),a |
||
3850 | ld a,d |
||
678 | savelij | 3851 | ret |
623 | savelij | 3852 | |
761 | savelij | 3853 | W16B2WORKSP ld hl,(WORKSP) |
3854 | ld (TRD_5CCF),hl ; WORK_SP |
||
3855 | ld bc,0x10 |
||
3856 | jp CREATE_FREERAM |
||
623 | savelij | 3857 | |
761 | savelij | 3858 | WORK_NUMSAVE ld (hl),0x0d |
3859 | ld hl,(CH_ADD) |
||
3860 | ld (TRD_5CD7),hl ; - |
||
3861 | ; |
||
3862 | ld hl,(TRD_5CCF) ; WORK_SP |
||
3863 | ld (CH_ADD),hl |
||
3864 | ld hl,FLAGS |
||
3865 | res 7,(hl) |
||
3866 | call BC2STKBOT |
||
3867 | ld hl,FLAGS |
||
3868 | set 7,(hl) |
||
3869 | ld hl,(TRD_5CCF) ; WORK_SP |
||
3870 | ld (CH_ADD),hl |
||
3871 | call BC2STKBOT |
||
3872 | call FIND_LAST |
||
3873 | push bc |
||
3874 | pop de |
||
3875 | ld c,0x20 |
||
3876 | rst 0x28 |
||
3877 | ld b,(hl) |
||
3878 | xor a |
||
3879 | ld hl,0 |
||
3880 | ld (TRD_5CDB),hl |
||
3881 | loc_2538 add hl,de |
||
3882 | jr nc,loc_2544 |
||
3883 | push hl |
||
3884 | ld hl,(TRD_5CDB) |
||
3885 | inc hl |
||
3886 | ld (TRD_5CDB),HL |
||
3887 | pop hl |
||
3888 | loc_2544 djnz loc_2538 |
||
3889 | ld (TRD_5CD9),HL ; <B> <C> |
||
3890 | ld a,(TRD_5CDB) |
||
3891 | ld hl,TRD_5CDA |
||
678 | savelij | 3892 | rrd |
761 | savelij | 3893 | and 0x0f |
3894 | ld (TRD_5CDB),a |
||
3895 | ld hl,(TRD_5CD7) ; - |
||
3896 | ; |
||
3897 | ld (CH_ADD),hl |
||
3898 | call OPEN_SAVED |
||
3899 | ld c,0x21 |
||
3900 | rst 0x28 |
||
3901 | ld a,0xff |
||
3902 | ld (hl),a |
||
3903 | inc hl |
||
3904 | ld (hl),a |
||
678 | savelij | 3905 | ret |
623 | savelij | 3906 | |
761 | savelij | 3907 | OPEN_SAVED ld c,0x19 |
3908 | rst 0x28 |
||
3909 | ld a,(TRD_5CDA) |
||
3910 | cp (hl) |
||
3911 | jp nz,loc_2584 |
||
3912 | ld c,0x0e |
||
3913 | rst 0x28 |
||
3914 | ld a,(TRD_5CDB) |
||
3915 | cp (hl) |
||
3916 | jp nz,loc_25A7 |
||
3917 | loc_257C ld c,0x0d |
||
3918 | rst 0x28 |
||
3919 | ld a,(TRD_5CD9) ; <B> <C> |
||
3920 | ld (hl),a |
||
678 | savelij | 3921 | ret |
623 | savelij | 3922 | |
761 | savelij | 3923 | loc_2584 call CPANDZERO23 |
3924 | call nz,SAVE_TEK_SEC |
||
3925 | ld a,(TRD_5CDA) |
||
3926 | ld c,0x19 |
||
3927 | rst 0x28 |
||
3928 | ld (hl),a |
||
3929 | ld c,0x10 |
||
3930 | rst 0x28 |
||
3931 | ld de,TRD_5CDD ; |
||
3932 | ld bc,0x10 |
||
678 | savelij | 3933 | ldir |
761 | savelij | 3934 | call FIND_FILENAME ; |
3935 | jp nz,loc_25D2 |
||
3936 | call OPEN_BLK |
||
3937 | jr loc_25AD |
||
623 | savelij | 3938 | |
761 | savelij | 3939 | loc_25A7 call CPANDZERO23 |
3940 | call nz,SAVE_TEK_SEC |
||
3941 | loc_25AD ld a,(TRD_5CDB) |
||
3942 | ld c,0x0e |
||
3943 | rst 0x28 |
||
3944 | ld (hl),a |
||
3945 | push hl |
||
3946 | call SET_DISK |
||
3947 | call LOADINGSECTOR |
||
3948 | pop hl |
||
3949 | dec hl |
||
3950 | ld a,(TRD_5CD9) ; <B> <C> |
||
3951 | ld (hl),a |
||
3952 | jr loc_257C |
||
623 | savelij | 3953 | |
761 | savelij | 3954 | SAVE_TEK_SEC call SET_DISK |
3955 | call SAVE_TEKSECTOR ; |
||
678 | savelij | 3956 | ret |
623 | savelij | 3957 | |
761 | savelij | 3958 | CPANDZERO23 ld c,0x23 |
3959 | rst 0x28 |
||
3960 | ld a,(hl) |
||
3961 | or a |
||
3962 | ld (hl),0 |
||
678 | savelij | 3963 | ret |
623 | savelij | 3964 | |
761 | savelij | 3965 | loc_25D2 ld hl,(TRD_5CDA) |
3966 | ld h,0x20 |
||
3967 | ld (TRD_5CD7),hl ; - |
||
3968 | ; |
||
3969 | ld hl,(TRD_5CD9) ; <B> <C> |
||
3970 | push hl |
||
3971 | ld hl,(TRD_5CDB) |
||
3972 | push hl |
||
3973 | call CREATE_BLK |
||
3974 | pop hl |
||
3975 | ld (TRD_5CDB),hl |
||
3976 | pop hl |
||
3977 | ld (TRD_5CD9),hl ; <B> <C> |
||
3978 | jr loc_25AD |
||
623 | savelij | 3979 | |
678 | savelij | 3980 | INPUTDATAFILE DUPL 3,0 |
761 | savelij | 3981 | ld hl,TV_FLAG |
3982 | res 3,(hl) |
||
3983 | ld hl,(ERR_SP) |
||
3984 | ld e,(hl) |
||
3985 | inc hl |
||
3986 | ld d,(hl) |
||
3987 | or a |
||
3988 | ld hl,0x107F |
||
3989 | sbc hl,de |
||
3990 | jr nz,loc_2626 |
||
3991 | ld sp,(ERR_SP) |
||
3992 | pop de |
||
3993 | pop de |
||
3994 | ld (ERR_SP),de |
||
3995 | loc_260F call INPUT_SYM_FILE |
||
3996 | jr c,loc_261D |
||
3997 | loc_2614 ld hl,TRD_5CC2 ; #C9. TR-DOS BASIC |
||
3998 | push hl |
||
3999 | ld hl,DELETE_BUF |
||
4000 | push hl |
||
678 | savelij | 4001 | ret |
623 | savelij | 4002 | |
761 | savelij | 4003 | loc_261D cp 0x0d |
4004 | jr z,loc_2614 |
||
4005 | rst 0x20 |
||
4006 | dw 0x0f85 |
||
4007 | jr loc_260F |
||
623 | savelij | 4008 | |
761 | savelij | 4009 | loc_2626 call INPUT_SYM_FILE |
4010 | jr loc_2614 |
||
623 | savelij | 4011 | |
761 | savelij | 4012 | INPUT_SYM_FILE ld a,0x0a |
4013 | ld (TRD_5D06),a ; |
||
4014 | call CP_FILE_OPENED |
||
4015 | jr z,loc_2642 |
||
4016 | cp 0x7f |
||
4017 | jp nz,ERR_INVALID_IO |
||
4018 | ld bc,0x13 |
||
4019 | add hl,bc |
||
4020 | ld (hl),0 |
||
4021 | jr loc_2645 |
||
623 | savelij | 4022 | |
761 | savelij | 4023 | loc_2642 call CP_END_BLK |
4024 | loc_2645 call GET_ADRTEKSYM |
||
4025 | ld a,(hl) |
||
4026 | push af |
||
4027 | call FIND_END_SEC |
||
4028 | pop af |
||
678 | savelij | 4029 | scf |
4030 | ret |
||
623 | savelij | 4031 | |
761 | savelij | 4032 | CP_FILE_OPENED ld c,0x0f |
4033 | rst 0x28 |
||
4034 | ld a,(hl) |
||
4035 | or a |
||
678 | savelij | 4036 | ret |
623 | savelij | 4037 | |
761 | savelij | 4038 | CLOSE ld hl,(TRD_5D11) ; TR_DOS |
4039 | ld (CH_ADD),hl |
||
4040 | call SET_NUM_CHAN |
||
4041 | call EXIT_IF_SINTAX |
||
4042 | ld a,(TRD_5CDB) |
||
4043 | rst 0x20 |
||
4044 | dw 0x1727 |
||
4045 | ld a,b |
||
4046 | or c |
||
4047 | jp z,END_COMAND |
||
4048 | push hl |
||
4049 | ld hl,(CHANS) |
||
4050 | add hl,bc |
||
4051 | ld a,(hl) |
||
4052 | ld hl,loc_3D0E |
||
4053 | cp h |
||
4054 | pop hl |
||
4055 | jp nz,loc_2228 |
||
4056 | ld (hl),0 |
||
4057 | inc hl |
||
4058 | ld (hl),0 |
||
4059 | ld (TRD_5CD9),bc ; <B> <C> |
||
4060 | ld hl,(CHANS) |
||
4061 | add hl,bc |
||
4062 | dec hl |
||
4063 | ld (TRD_5CD7),hl ; - |
||
4064 | ; |
||
4065 | call sub_26CE |
||
4066 | ld hl,(TRD_5CD7) ; - |
||
4067 | ; |
||
4068 | ld bc,0x124 |
||
4069 | call DEL_WORKRAM |
||
4070 | ld hl,STRMS |
||
4071 | ld b,0x10 |
||
4072 | loc_269D push bc |
||
4073 | ld bc,(TRD_5CD9) ; <B> <C> |
||
4074 | ld e,(hl) |
||
4075 | inc hl |
||
4076 | ld d,(hl) |
||
4077 | ex de,hl |
||
4078 | sbc hl,bc |
||
4079 | ex de,hl |
||
4080 | jr c,loc_26BC |
||
4081 | ld d,(hl) |
||
4082 | dec hl |
||
4083 | ld e,(hl) |
||
4084 | inc hl |
||
4085 | push hl |
||
4086 | ex de,hl |
||
4087 | ld bc,0x124 |
||
4088 | sbc hl,bc |
||
4089 | ex de,hl |
||
4090 | pop hl |
||
4091 | ld (hl),d |
||
4092 | dec hl |
||
4093 | ld (hl),e |
||
4094 | inc hl |
||
4095 | loc_26BC inc hl |
||
4096 | pop bc |
||
4097 | djnz loc_269D |
||
4098 | ld hl,(TRD_5D11) ; TR_DOS |
||
4099 | ld bc,0x124 |
||
4100 | sbc hl,bc |
||
4101 | ld (TRD_5D11),hl ; TR_DOS |
||
4102 | jp END_COMAND |
||
623 | savelij | 4103 | |
761 | savelij | 4104 | sub_26CE ld bc,0x0f |
4105 | add hl,bc |
||
4106 | ld a,(hl) |
||
4107 | or a |
||
4108 | ret z |
||
4109 | ld hl,(TRD_5CD7) ; - |
||
4110 | ; |
||
4111 | ld (CURCHL),hl |
||
4112 | call SAVE_HEAD_BLK |
||
4113 | jp SAVE_TEKSECTOR ; |
||
623 | savelij | 4114 | |
761 | savelij | 4115 | SAVE_HEAD_BLK ld bc,0x0d |
4116 | add hl,bc |
||
4117 | ld e,(hl) |
||
4118 | inc hl |
||
4119 | ld d,(hl) |
||
4120 | ld bc,0x0d |
||
4121 | add hl,bc |
||
4122 | ld (hl),e |
||
4123 | inc hl |
||
4124 | ld (hl),d |
||
4125 | ld c,0x10 |
||
4126 | rst 0x28 |
||
4127 | ld de,TRD_5CDD ; |
||
4128 | ld bc,0x10 |
||
678 | savelij | 4129 | ldir |
761 | savelij | 4130 | call SET_DISK |
4131 | ld c,0x0c |
||
4132 | rst 0x28 |
||
4133 | ld c,(hl) |
||
4134 | call SETHEADFILENAME |
||
4135 | jp REWRITE_9SEC ; 9 |
||
623 | savelij | 4136 | |
761 | savelij | 4137 | PRINT_MSG ld a,(hl) |
4138 | or a |
||
4139 | ret z |
||
4140 | and 0x7f |
||
4141 | rst 0x10 |
||
4142 | bit 7,(hl) |
||
4143 | ret nz |
||
4144 | inc hl |
||
4145 | jr PRINT_MSG ; |
||
623 | savelij | 4146 | |
761 | savelij | 4147 | COMPARE_B_SYM ld a,(de) |
4148 | cp (hl) |
||
4149 | ret nz |
||
4150 | inc de |
||
4151 | inc hl |
||
4152 | djnz COMPARE_B_SYM |
||
678 | savelij | 4153 | ret |
623 | savelij | 4154 | |
761 | savelij | 4155 | loc_271B ld hl,TXT_NODISK_ ; "NO DISK" |
4156 | ld a,6 |
||
4157 | jp PRINT_TXTERR |
||
623 | savelij | 4158 | |
761 | savelij | 4159 | ERR_DIRFULL ld hl,TXT_DIRFULL ; "DIRECTORY FULL" |
4160 | ld a,4 |
||
4161 | jp PRINT_TXTERR |
||
623 | savelij | 4162 | |
761 | savelij | 4163 | SET_TAPELDERR ld a,0x1a |
4164 | jr SET_NUM_ERR |
||
623 | savelij | 4165 | |
761 | savelij | 4166 | ld a,0x12 |
4167 | SET_NUM_ERR ld (ERR_NR),a |
||
678 | savelij | 4168 | ret |
4169 | |||
761 | savelij | 4170 | ld a,3 |
4171 | jr SET_NUM_ERR |
||
678 | savelij | 4172 | |
623 | savelij | 4173 | ; |
761 | savelij | 4174 | COM_15 xor a |
4175 | ld (TRD_5CD8),a ; - |
||
4176 | ; |
||
4177 | ld (TRD_5CD6),a ; #FF- |
||
4178 | IF EMU |
||
678 | savelij | 4179 | RST32 _IN_1F,__IN_A_N+0X1F<<8 |
761 | savelij | 4180 | ELSE |
4181 | in a,(0x1f) |
||
4182 | ENDIF |
||
4183 | ld (TRD_5CCD),a ; #80- |
||
4184 | ld e,d |
||
4185 | push de |
||
4186 | ld a,e |
||
4187 | IF EMU |
||
678 | savelij | 4188 | RST32 _OUT_7F,__OUT_N_A+0X7F<<8 |
761 | savelij | 4189 | ELSE |
4190 | out (0x7f),a |
||
4191 | ENDIF |
||
4192 | ld a,0x18 |
||
4193 | call COM2VG_WAIT |
||
4194 | ld a,(TRD_5CCD) ; #80- |
||
4195 | and 0x80 |
||
4196 | call nz,PAUSE_3_C_A |
||
4197 | pop de |
||
4198 | call CP_NUM_TRACK |
||
4199 | ld a,(TRD_5CD6) ; #FF- |
||
4200 | or a |
||
4201 | ret z |
||
4202 | ld a,7 |
||
4203 | ld (TRD_5D0F),a ; TR-DOS |
||
678 | savelij | 4204 | ret |
623 | savelij | 4205 | |
678 | savelij | 4206 | TXT_OK_ DZ "O.K." |
4207 | TXT_VERIFYERR DB "Verify Error.",0X8D |
||
4208 | TXT_BACKUPDISK DB "BACKUP DISK",0X8D |
||
4209 | TXT_INS_DEST DB "Insert Destination disk",0X0D |
||
4210 | DZ "then press Y" |
||
4211 | TXT_INS_SRC DZ "Insert Source disk then press Y" |
||
4212 | TXT_BREAK DB "*BREAK*",0X8D |
||
4213 | TXT_OUTRAM DB "Out of RAM",0X8D |
||
4214 | TXT_ARRAYNOT DB "Array not found",0X8D |
||
4215 | TXT_DIRFULL DB "Directory full",0X8D |
||
623 | savelij | 4216 | TXT_NODISK_ DB "No disk",0X8D |
678 | savelij | 4217 | TXT_STREAMOPEN DB "Stream opened",0X8D |
4218 | TXT_NODISKFILE DB "Not disk file",0X8D |
||
4219 | TXT_FILEEXIST DB "File exists",0X0D |
||
623 | savelij | 4220 | DC "Over write?(Y/N)" |
4221 | |||
761 | savelij | 4222 | CALL_3D13 push af |
4223 | push bc |
||
4224 | ld (TRD_5D04),de |
||
4225 | ld (TRD_5D02),hl |
||
888 | savelij | 4226 | ; CALL SET_RWPORT0 |
627 | savelij | 4227 | LD A,0XFF |
761 | savelij | 4228 | LD (TRD_5D15),A ; 0, TR-DOS. |
627 | savelij | 4229 | LD (TRD_5D1F),A |
761 | savelij | 4230 | pop bc |
4231 | pop af |
||
4232 | ld hl,CP_ERROR ; |
||
4233 | ld (TRD_5D1A),hl ; |
||
4234 | ld hl,0 |
||
4235 | add hl,sp |
||
4236 | ld (TRD_5D1C),hl ; |
||
4237 | dec hl |
||
4238 | dec hl |
||
4239 | ld sp,hl |
||
4240 | push af |
||
4241 | call MARK_SP ; |
||
4242 | ld hl,COMAND_TBL |
||
623 | savelij | 4243 | LD A,C |
4244 | CP LOW ((ECOMAND_TBL-COMAND_TBL)/2)+1 |
||
4245 | JP NC,END_COMAND |
||
4246 | ADD A,A |
||
4247 | LD E,A |
||
4248 | POP AF |
||
4249 | LD D,0 |
||
4250 | ADD HL,DE |
||
4251 | LD E,(HL) |
||
4252 | INC HL |
||
4253 | LD D,(HL) |
||
4254 | LD HL,END_COMAND |
||
4255 | PUSH HL |
||
4256 | PUSH DE |
||
4257 | LD HL,(TRD_5D02) |
||
4258 | LD DE,(TRD_5D04) |
||
4259 | RET |
||
4260 | |||
761 | savelij | 4261 | COMAND_TBL DW COM_00 ; 93 |
4262 | DW COM_01 ; |
||
4263 | DW COM_02 ; |
||
4264 | DW COM_03 ; |
||
4265 | DW COM_04 ; |
||
4266 | DW COM_05 ; |
||
4267 | DW COM_06 ; |
||
4268 | DW COM_07 ; |
||
4269 | DW COM_08 ; 0X5CDD |
||
4270 | DW COM_09 ; |
||
4271 | DW COM_0A ; |
||
4272 | DW COM_0B ; |
||
4273 | DW COM_0C ; |
||
623 | savelij | 4274 | DW END_COMAND |
761 | savelij | 4275 | DW COM_0E ; |
623 | savelij | 4276 | DW END_COMAND |
4277 | DW END_COMAND |
||
4278 | DW END_COMAND |
||
761 | savelij | 4279 | DW COM_12 ; |
4280 | DW COM_13 ; 0X5CDD |
||
4281 | DW COM_14 ; 0X5CDD |
||
4282 | DW COM_15 ; |
||
4283 | DW COM_16 ; 0 |
||
4284 | DW COM_17 ; 1 |
||
4285 | DW COM_18 ; |
||
623 | savelij | 4286 | ECOMAND_TBL |
4287 | |||
678 | savelij | 4288 | DUPL 0X28D8-$,0XFF |
623 | savelij | 4289 | ; |
761 | savelij | 4290 | COM_07 push af |
4291 | call COM_18 ; |
||
4292 | pop af |
||
4293 | jp loc_479 |
||
623 | savelij | 4294 | |
4295 | ; 0X5CDD |
||
761 | savelij | 4296 | COM_13 xor a |
4297 | jr loc_28E5 |
||
623 | savelij | 4298 | |
4299 | ; 0X5CDD |
||
761 | savelij | 4300 | COM_14 ld a,0xff |
4301 | loc_28E5 ld de,TRD_5CDD ; |
||
4302 | ld bc,0x10 |
||
4303 | or a |
||
4304 | jr z,loc_28EF |
||
4305 | ex de,hl |
||
4306 | loc_28EF |
||
4307 | IF EMU |
||
4308 | IF EMU3D2F=1 |
||
678 | savelij | 4309 | JP EMU_LDIR |
4310 | ELSE |
||
4311 | ldir |
||
4312 | ret |
||
4313 | ENDIF |
||
761 | savelij | 4314 | ELSE |
4315 | ldir |
||
4316 | ret |
||
4317 | ENDIF |
||
623 | savelij | 4318 | |
4319 | ; |
||
761 | savelij | 4320 | COM_0C call COM_18 ; |
4321 | call CP_FREE_ON_DSK |
||
4322 | jp loc_1B27 |
||
623 | savelij | 4323 | |
4324 | ; |
||
761 | savelij | 4325 | COM_0B ld (TRD_5CD7),hl ; - |
4326 | ; |
||
4327 | ld (TRD_5CD9),de ; <B> <C> |
||
4328 | ld (TRD_5CDB),de |
||
4329 | call COM_18 ; |
||
4330 | call CP_FREE_ON_DSK |
||
4331 | jp loc_1B53 |
||
623 | savelij | 4332 | |
4333 | ; |
||
761 | savelij | 4334 | COM_0E or a |
4335 | ld (TRD_5CD6),a ; #FF- |
||
4336 | ld (TRD_5CD9),hl ; <B> <C> |
||
4337 | ld (TRD_5CDB),de |
||
4338 | call FIND_FILENAME ; |
||
4339 | call FIND_RD_HEAD |
||
4340 | call CP_PARAMS ;WDC |
||
4341 | jp RD_FILE |
||
623 | savelij | 4342 | |
4343 | ; |
||
761 | savelij | 4344 | COM_12 call COM_18 ; |
4345 | call FIND_FILENAME ; |
||
4346 | jp ERASE_FILES |
||
623 | savelij | 4347 | |
4348 | ; |
||
761 | savelij | 4349 | FIND_FILE call SET_FILENAME |
4350 | call COM_18 ; |
||
4351 | jp FIND_FILENAME ; |
||
623 | savelij | 4352 | |
678 | savelij | 4353 | ; |
761 | savelij | 4354 | PRINT_FILENAME push bc |
4355 | ld b,8 |
||
4356 | loc_293B ld a,(hl) |
||
4357 | rst 0x10 |
||
4358 | inc hl |
||
4359 | djnz loc_293B |
||
4360 | ld a,"<" |
||
4361 | rst 0x10 |
||
4362 | ld a,(hl) |
||
4363 | rst 0x10 |
||
4364 | ld a,">" |
||
4365 | rst 0x10 |
||
4366 | pop bc |
||
678 | savelij | 4367 | ret |
4368 | |||
623 | savelij | 4369 | ; |
761 | savelij | 4370 | CREATE_BUF push hl |
4371 | push de |
||
4372 | push bc |
||
4373 | push af |
||
4374 | ld hl,TRD_5D0C |
||
4375 | ld a,(hl) |
||
4376 | or a |
||
4377 | jr z,loc_2992 |
||
4378 | push hl |
||
4379 | ld bc,0x101 |
||
4380 | push bc |
||
4381 | call CP_FREE_RAM |
||
4382 | pop bc |
||
4383 | pop hl |
||
4384 | ld (hl),0 |
||
4385 | ld hl,TRD_5D25 |
||
4386 | call RESERV_RAM |
||
4387 | ld hl,(TRD_5D11) ; TR_DOS |
||
4388 | ld bc,0x101 |
||
4389 | add hl,bc |
||
4390 | jr loc_298F |
||
623 | savelij | 4391 | |
678 | savelij | 4392 | ; , |
761 | savelij | 4393 | DEL_BUF push hl |
4394 | push de |
||
4395 | push bc |
||
4396 | push af |
||
4397 | ld hl,TRD_5D0C |
||
4398 | ld a,(hl) |
||
4399 | or a |
||
4400 | jr nz,loc_2992 |
||
4401 | ld (hl),0xff |
||
4402 | ld hl,TRD_5D25 |
||
4403 | ld bc,0x101 |
||
4404 | call DEL_WORKRAM |
||
4405 | or a |
||
4406 | ld bc,0x101 |
||
4407 | ld hl,(TRD_5D11) ; TR_DOS |
||
4408 | sbc hl,bc |
||
4409 | loc_298F ld (TRD_5D11),hl ; TR_DOS |
||
4410 | loc_2992 pop af |
||
4411 | pop bc |
||
4412 | pop de |
||
4413 | pop hl |
||
678 | savelij | 4414 | ret |
623 | savelij | 4415 | |
761 | savelij | 4416 | COM_40 xor a |
4417 | loc_2998 ld (TRD_5CD7),a ; - |
||
4418 | ; |
||
4419 | call EXIT_IF_SINTAX ; , |
||
4420 | call CP_SECOND_SYM ; |
||
4421 | jp z,SINTAX_ERROR |
||
4422 | call GET_TYPE_DISK ; |
||
4423 | ld a,(TRD_5CD7) ; - |
||
4424 | ; |
||
4425 | ld (hl),a |
||
4426 | jp ERR_OK |
||
678 | savelij | 4427 | |
761 | savelij | 4428 | COM_80 ld a,80h |
4429 | jr loc_2998 |
||
678 | savelij | 4430 | |
623 | savelij | 4431 | TXT_ERROR_ DB 0X0D,"*ERROR*",0X8D |
678 | savelij | 4432 | TXT_NOSPACE_ DB 0X0D,"No space",0X8D |
623 | savelij | 4433 | TXT_FILEEXISTS_ DB 0X0D,"File exists",0X8D |
4434 | TXT_FREE_ DB " Free",0X8D |
||
4435 | READ_ONLY DB 0X0D |
||
4436 | DC "Read Only" |
||
4437 | TXT_DISCERROR_ DB 0X0D |
||
4438 | DC "Disc Error" |
||
4439 | TXT_R_O DB 0X0D |
||
4440 | DC "Rec. O/F" |
||
4441 | TXT_TITLE_ DC "Title: " |
||
4442 | TXT_RIA_ DB 0X0D |
||
678 | savelij | 4443 | DZ "Retry,Abort,Ignore?" |
623 | savelij | 4444 | TXT_TRK_ DB 0X0D |
4445 | DC "Trk " |
||
4446 | TXT_SEC_ DC " sec " |
||
4447 | TXT_DELFILE_ DB " Del. File",0X8D |
||
4448 | TXT_NOFILES_ DB 0X0D |
||
678 | savelij | 4449 | TXT_NOFILES DB "No File(s)",0X8D,0 |
623 | savelij | 4450 | |
761 | savelij | 4451 | sub_2A35 ld hl,loc_2A41 |
4452 | ld de,4080h |
||
4453 | ld bc,20h |
||
4454 | IF EMU |
||
678 | savelij | 4455 | IF EMU3D2F=1 |
627 | savelij | 4456 | JP EMU_LDIR |
678 | savelij | 4457 | ELSE |
4458 | ldir |
||
4459 | ret |
||
4460 | ENDIF |
||
761 | savelij | 4461 | ELSE |
4462 | ldir |
||
4463 | ret |
||
4464 | ENDIF |
||
623 | savelij | 4465 | |
761 | savelij | 4466 | loc_2A41 ld a,(loc_3B5) |
4467 | cp 0F3h |
||
4468 | ld a,10h |
||
4469 | jr z,loc_2A4B |
||
4470 | xor a |
||
4471 | loc_2A4B ld (KSTATE1),a |
||
4472 | ld bc,7FFDh |
||
4473 | ld a,10h |
||
4474 | IF EMU |
||
623 | savelij | 4475 | JP LOC_2A53_ |
761 | savelij | 4476 | ELSE |
4477 | out (c),a |
||
4478 | ret |
||
4479 | ENDIF |
||
623 | savelij | 4480 | |
761 | savelij | 4481 | MAGIC push af |
4482 | push bc |
||
4483 | push de |
||
4484 | push hl |
||
4485 | push ix |
||
4486 | push iy |
||
678 | savelij | 4487 | exx |
761 | savelij | 4488 | push bc |
4489 | push de |
||
4490 | push hl |
||
4491 | ex af,af' |
||
4492 | push af |
||
4493 | ld a,i |
||
4494 | push af |
||
4495 | ld a,r |
||
4496 | push af |
||
4497 | ld hl,0 |
||
4498 | add hl,sp |
||
4499 | push hl |
||
4500 | ld a,3Ch |
||
4501 | IF EMU |
||
678 | savelij | 4502 | RST30 _OUT_FF |
761 | savelij | 4503 | ELSE |
4504 | out (0FFh),a |
||
4505 | ENDIF |
||
4506 | ld a,3Fh |
||
4507 | ld i,a |
||
4508 | IF EMU |
||
678 | savelij | 4509 | RST32 _IN_1F,__IN_A_N+0X1F<<8 |
761 | savelij | 4510 | ELSE |
4511 | in a,(1Fh) |
||
4512 | ENDIF |
||
4513 | and 80h |
||
678 | savelij | 4514 | rrca |
4515 | rrca |
||
4516 | rrca |
||
761 | savelij | 4517 | ld (KSTATE1),a |
4518 | call sub_2F65 |
||
4519 | call PAUSE_3_C_A |
||
4520 | call PAUSE_3_C_A |
||
4521 | ld de,0Ah |
||
4522 | ld hl,4000h |
||
4523 | push hl |
||
4524 | call sub_2D73 |
||
4525 | ld hl,4100h |
||
4526 | ld de,0Bh |
||
4527 | call sub_2D73 |
||
4528 | pop hl |
||
4529 | push hl |
||
4530 | ld de,8 |
||
4531 | call sub_2F1B |
||
4532 | ld hl,40E3h |
||
4533 | ld a,(hl) |
||
4534 | ld (KSTATE0),a |
||
4535 | inc hl |
||
4536 | ld a,(hl) |
||
4537 | inc (hl) |
||
4538 | inc hl |
||
4539 | ld e,(hl) |
||
4540 | inc hl |
||
4541 | ld d,(hl) |
||
4542 | or a |
||
4543 | ex de,hl |
||
4544 | ld de,0C0h |
||
4545 | sbc hl,de |
||
4546 | ld (40E5h),hl |
||
4547 | ld hl,4000h |
||
4548 | ld de,8 |
||
4549 | call sub_2D73 |
||
4550 | pop hl |
||
4551 | ld de,(40E1h) |
||
4552 | push de |
||
4553 | ld de,0Ah |
||
4554 | call sub_2F1B |
||
4555 | pop de |
||
4556 | call sub_2D4C |
||
4557 | push de |
||
4558 | ld a,3Ch |
||
4559 | IF EMU |
||
678 | savelij | 4560 | RST30 _OUT_FF |
761 | savelij | 4561 | ELSE |
4562 | out (0FFh),a |
||
4563 | ENDIF |
||
4564 | call sub_2F65 |
||
4565 | ld hl,4000h |
||
4566 | ld de,8 |
||
4567 | ld b,1 |
||
4568 | call sub_2F1B |
||
4569 | pop de |
||
4570 | ld hl,(40E1h) |
||
4571 | ld (40E1h),de |
||
4572 | push hl |
||
4573 | ld hl,4000h |
||
4574 | ld de,8 |
||
4575 | ld b,1 |
||
4576 | call sub_2D73 |
||
4577 | ld a,(40E4h) |
||
4578 | dec a |
||
4579 | call sub_2CE5 |
||
4580 | ld (hl),"@" |
||
4581 | inc hl |
||
4582 | ld b,7 |
||
4583 | loc_2B09 ld (hl)," " |
||
4584 | inc hl |
||
4585 | djnz loc_2B09 |
||
4586 | ld (hl),"C" |
||
4587 | pop de |
||
4588 | pop bc |
||
4589 | inc hl |
||
4590 | ld (hl),c |
||
4591 | inc hl |
||
4592 | ld (hl),b |
||
4593 | inc hl |
||
4594 | inc hl |
||
4595 | inc hl |
||
4596 | ld (hl),0C0h |
||
4597 | inc hl |
||
4598 | ld (hl),e |
||
4599 | inc hl |
||
4600 | ld (hl),d |
||
4601 | ld hl,4000h |
||
4602 | ld de,0 |
||
4603 | IF EMU |
||
678 | savelij | 4604 | RST32 _IN_5F,__IN_A_N+0X5F<<8 |
761 | savelij | 4605 | ELSE |
4606 | in a,(5Fh) |
||
4607 | ENDIF |
||
4608 | dec a |
||
4609 | ld e,a |
||
4610 | ld b,1 |
||
4611 | call sub_2D73 |
||
4612 | ld hl,0 |
||
4613 | add hl,sp |
||
4614 | ld (4140h),hl |
||
4615 | ld sp,41FFh |
||
4616 | call sub_2A35 |
||
4617 | ld hl,0C000h |
||
4618 | xor a |
||
4619 | loc_2B3F add a,(hl) |
||
4620 | inc hl |
||
4621 | ld b,a |
||
4622 | ld a,h |
||
4623 | or a |
||
4624 | ld a,b |
||
4625 | jr nz,loc_2B3F |
||
4626 | ld hl,4100h |
||
4627 | ld (hl),a |
||
4628 | push hl |
||
4629 | ld hl,loc_2B58 |
||
4630 | push hl |
||
4631 | ld hl,loc_3D2F |
||
4632 | push hl |
||
678 | savelij | 4633 | di |
761 | savelij | 4634 | jp 4080h |
623 | savelij | 4635 | |
761 | savelij | 4636 | loc_2B58 pop hl |
4637 | ld bc,7FFDh |
||
4638 | ld a,0AAh |
||
4639 | ld (4130h),a |
||
4640 | ld d,5 |
||
4641 | ld a,(KSTATE1) |
||
4642 | or d |
||
4643 | ld d,a |
||
4644 | out (c),d |
||
4645 | ld a,(0C130h) |
||
4646 | cp 0AAh |
||
4647 | jp nz,loc_2C1B |
||
4648 | ld a,d |
||
4649 | and 0F8h |
||
4650 | ld d,a |
||
4651 | inc hl |
||
4652 | ld b,8 |
||
4653 | loc_2B79 ld (hl),d |
||
4654 | out (c),d |
||
4655 | xor a |
||
4656 | ld hl,0C000h |
||
4657 | loc_2B80 add a,(hl) |
||
4658 | inc hl |
||
4659 | ld e,a |
||
4660 | ld a,h |
||
4661 | or a |
||
4662 | ld a,e |
||
4663 | jr nz,loc_2B80 |
||
4664 | ld hl,4100h |
||
4665 | cp (hl) |
||
4666 | inc hl |
||
4667 | jr z,loc_2B93 |
||
4668 | inc d |
||
4669 | djnz loc_2B79 |
||
4670 | dec d |
||
4671 | loc_2B93 ld b,8 |
||
4672 | loc_2B95 push bc |
||
4673 | call sub_2C37 |
||
4674 | pop bc |
||
4675 | djnz loc_2B95 |
||
4676 | ld c,0 |
||
4677 | call sub_2F3A |
||
4678 | call sub_2D2A |
||
4679 | ld a,(40E4h) |
||
4680 | ld (4102h),a |
||
4681 | inc a |
||
4682 | ld (40E4h),a |
||
4683 | ld hl,(40E5h) |
||
4684 | ld de,1 |
||
4685 | sbc hl,de |
||
4686 | ld (40E5h),hl |
||
4687 | ret c |
||
4688 | ld hl,(40E1h) |
||
4689 | ld (411Eh),hl |
||
4690 | call sub_2D1E |
||
4691 | ld a,38h |
||
4692 | ld (4111h),a |
||
4693 | ld a,1 |
||
4694 | ld (411Dh),a |
||
4695 | ld hl,4100h |
||
4696 | ld (4119h),hl |
||
4697 | ld hl,100h |
||
4698 | ld (411Bh),hl |
||
4699 | ld de,(40E1h) |
||
4700 | call sub_2F65 |
||
4701 | ld c,d |
||
4702 | call sub_2F3A |
||
4703 | ld hl,4100h |
||
4704 | ld b,1 |
||
4705 | call loc_2D58 |
||
4706 | ld (40E1h),de |
||
4707 | ld c,0 |
||
4708 | call sub_2F3A |
||
4709 | call sub_2D34 |
||
4710 | ld a,(4102h) |
||
4711 | call sub_2CE5 |
||
4712 | ld de,4110h |
||
4713 | ld bc,10h |
||
4714 | ex de,hl |
||
678 | savelij | 4715 | ldir |
761 | savelij | 4716 | IF EMU |
678 | savelij | 4717 | RST32 _IN_5F,__IN_A_N+0X5F<<8 |
761 | savelij | 4718 | ELSE |
4719 | in a,(5Fh) |
||
4720 | ENDIF |
||
4721 | dec a |
||
4722 | ld e,a |
||
4723 | ld d,0 |
||
4724 | ld hl,4000h |
||
4725 | call sub_2D73 |
||
4726 | ld bc,7FFDh |
||
4727 | ld a,(4101h) |
||
4728 | out (c),a |
||
4729 | loc_2C1B ld hl,(4140h) |
||
4730 | ld sp,hl |
||
4731 | ld hl,4000h |
||
4732 | ld de,0Ah |
||
4733 | call sub_2F1B |
||
4734 | ld hl,4100h |
||
4735 | ld de,0Bh |
||
4736 | call sub_2F1B |
||
4737 | ld a,3Ch |
||
4738 | push af |
||
4739 | jp loc_2EBC |
||
623 | savelij | 4740 | |
761 | savelij | 4741 | sub_2C37 ld a,b |
4742 | dec a |
||
4743 | ld (4103h),a |
||
4744 | ld b,a |
||
4745 | ld a,(4101h) |
||
4746 | and 7 |
||
4747 | cp b |
||
4748 | ret z |
||
4749 | ld a,2 |
||
4750 | cp b |
||
4751 | ret z |
||
4752 | ld a,(4101h) |
||
4753 | and 8 |
||
4754 | jr z,loc_2C55 |
||
4755 | ld a,b |
||
4756 | cp 7 |
||
4757 | ret z |
||
4758 | jr loc_2C59 |
||
623 | savelij | 4759 | |
761 | savelij | 4760 | loc_2C55 ld a,b |
4761 | cp 5 |
||
4762 | ret z |
||
4763 | loc_2C59 call sub_2C5D |
||
678 | savelij | 4764 | ret |
623 | savelij | 4765 | |
761 | savelij | 4766 | sub_2C5D ld hl,4101h |
4767 | ld a,(hl) |
||
4768 | and 0F8h |
||
4769 | ld c,a |
||
4770 | ld a,b |
||
4771 | or c |
||
4772 | push bc |
||
4773 | ld bc,7FFDh |
||
4774 | out (c),a |
||
4775 | pop bc |
||
4776 | ld hl,0C000h |
||
4777 | loc_2C70 ld a,(hl) |
||
4778 | or a |
||
4779 | jr nz,loc_2C7A |
||
4780 | inc hl |
||
4781 | ld a,h |
||
4782 | or a |
||
4783 | jr nz,loc_2C70 |
||
678 | savelij | 4784 | ret |
623 | savelij | 4785 | |
761 | savelij | 4786 | loc_2C7A call sub_2C7E |
678 | savelij | 4787 | ret |
623 | savelij | 4788 | |
761 | savelij | 4789 | sub_2C7E ld c,0 |
4790 | call sub_2F3A |
||
4791 | call sub_2D2A |
||
4792 | ld a,(40E4h) |
||
4793 | ld (4102h),a |
||
4794 | inc a |
||
4795 | ld (40E4h),a |
||
4796 | ld hl,(40E5h) |
||
4797 | ld de,40h |
||
4798 | sbc hl,de |
||
4799 | ld (40E5h),hl |
||
4800 | ret c |
||
4801 | ld hl,(40E1h) |
||
4802 | ld (411Eh),hl |
||
4803 | call sub_2D1E |
||
4804 | ld a,40h |
||
4805 | ld (411Dh),a |
||
4806 | ld hl,0C000h |
||
4807 | ld (4119h),hl |
||
4808 | ld hl,4000h |
||
4809 | ld (411Bh),hl |
||
4810 | ld de,(40E1h) |
||
4811 | call sub_2D3E |
||
4812 | ld (40E1h),de |
||
4813 | ld c,0 |
||
4814 | call sub_2F3A |
||
4815 | call sub_2D34 |
||
4816 | ld a,(4102h) |
||
4817 | call sub_2CE5 |
||
4818 | ld de,4110h |
||
4819 | ld bc,10h |
||
4820 | ex de,hl |
||
678 | savelij | 4821 | ldir |
761 | savelij | 4822 | IF EMU |
678 | savelij | 4823 | RST32 _IN_5F,__IN_A_N+0X5F<<8 |
761 | savelij | 4824 | ELSE |
4825 | in a,(5Fh) |
||
4826 | ENDIF |
||
4827 | dec a |
||
4828 | ld e,a |
||
4829 | ld d,0 |
||
4830 | ld hl,4000h |
||
4831 | call sub_2D73 |
||
678 | savelij | 4832 | ret |
623 | savelij | 4833 | |
761 | savelij | 4834 | sub_2CE5 ld c,a |
4835 | and 0F0h |
||
678 | savelij | 4836 | rrca |
4837 | rrca |
||
4838 | rrca |
||
4839 | rrca |
||
761 | savelij | 4840 | ld b,a |
4841 | push bc |
||
4842 | ld e,b |
||
4843 | ld d,0 |
||
4844 | ld hl,4000h |
||
4845 | push de |
||
4846 | call sub_2F1B |
||
4847 | pop de |
||
4848 | pop bc |
||
4849 | ld b,0 |
||
4850 | ld a,c |
||
4851 | and 0Fh |
||
678 | savelij | 4852 | rlca |
4853 | rlca |
||
4854 | rlca |
||
4855 | rlca |
||
761 | savelij | 4856 | ld hl,4000h |
4857 | add a,l |
||
4858 | ld l,a |
||
678 | savelij | 4859 | ret |
4860 | |||
761 | savelij | 4861 | sub_2D09 ld hl,4110h |
4862 | ld b,9 |
||
4863 | loc_2D0E ld (hl)," " |
||
4864 | inc hl |
||
4865 | djnz loc_2D0E |
||
4866 | ld a,"@" |
||
4867 | ld (4110h),a |
||
4868 | ld a,"C" |
||
4869 | ld (4118h),a |
||
678 | savelij | 4870 | ret |
4871 | |||
761 | savelij | 4872 | sub_2D1E call sub_2D09 |
4873 | ld a,(4103h) |
||
4874 | add a,"0" |
||
4875 | ld (4111h),a |
||
678 | savelij | 4876 | ret |
4877 | |||
761 | savelij | 4878 | sub_2D2A ld hl,4000h |
4879 | ld de,8 |
||
4880 | call sub_2F1B |
||
678 | savelij | 4881 | ret |
4882 | |||
761 | savelij | 4883 | sub_2D34 ld hl,4000h |
4884 | ld de,8 |
||
4885 | call sub_2D73 |
||
678 | savelij | 4886 | ret |
4887 | |||
761 | savelij | 4888 | sub_2D3E call sub_2F65 |
4889 | ld c,d |
||
4890 | call sub_2F3A |
||
4891 | ld hl,0C000h |
||
4892 | ld b,40h |
||
4893 | jr loc_2D58 |
||
678 | savelij | 4894 | |
761 | savelij | 4895 | sub_2D4C call sub_2F65 |
4896 | ld c,d |
||
4897 | call sub_2F3A |
||
4898 | ld hl,4000h |
||
4899 | ld b,0C0h |
||
4900 | loc_2D58 push bc |
||
4901 | push de |
||
4902 | call sub_2D73 |
||
4903 | ld de,100h |
||
4904 | add hl,de |
||
4905 | pop de |
||
4906 | inc e |
||
4907 | ld a,e |
||
4908 | cp 10h |
||
4909 | jr nz,loc_2D6F |
||
4910 | ld e,0 |
||
4911 | inc d |
||
4912 | ld c,d |
||
4913 | call sub_2F3A |
||
4914 | loc_2D6F pop bc |
||
4915 | djnz loc_2D58 |
||
678 | savelij | 4916 | ret |
4917 | |||
761 | savelij | 4918 | sub_2D73 ld a,e |
4919 | inc a |
||
4920 | IF EMU |
||
678 | savelij | 4921 | RST32 _OUT_5F,__OUT_N_A+0X5F<<8 |
761 | savelij | 4922 | ELSE |
4923 | out (5Fh),a |
||
4924 | ENDIF |
||
4925 | push hl |
||
4926 | ld d,14h |
||
678 | savelij | 4927 | push de |
4928 | loc_2D7B di |
||
4929 | ld c,7Fh |
||
4930 | ld a,0A0h |
||
761 | savelij | 4931 | IF EMU |
678 | savelij | 4932 | RST32 _OUT_1F,__OUT_N_A+0X1F<<8 |
761 | savelij | 4933 | ELSE |
4934 | out (1Fh),a |
||
4935 | ENDIF |
||
678 | savelij | 4936 | call WR_DATAPORT |
4937 | pop de |
||
4938 | pop hl |
||
761 | savelij | 4939 | IF EMU |
678 | savelij | 4940 | RST32 _IN_1F,__IN_A_N+0X1F<<8 |
761 | savelij | 4941 | ELSE |
4942 | in a,(0x1f) |
||
4943 | ENDIF |
||
4944 | and 0x7f |
||
4945 | ret z |
||
4946 | dec d |
||
4947 | push hl |
||
4948 | push de |
||
4949 | jr nz,loc_2D7B |
||
678 | savelij | 4950 | halt |
761 | savelij | 4951 | loc_2D92 ld hl,(TRD_5CE6) ; <C>- , <B>- |
4952 | ld de,(TRD_5CEB) ; |
||
4953 | ld a,(TRD_5CEA) ; |
||
4954 | ld b,a |
||
4955 | call COM_05 ; |
||
678 | savelij | 4956 | ret |
4957 | |||
761 | savelij | 4958 | GOTO call SET_AND_PUT |
4959 | call EXIT_IF_SINTAX ; , |
||
4960 | call INP_EXTFILENAME ; |
||
4961 | call SET_FILENAME ; #5CDD |
||
4962 | ld (4020h),bc |
||
4963 | ld a,c |
||
4964 | cp 8 |
||
4965 | jr nc,loc_2DD2 |
||
4966 | call COM_18 ; |
||
4967 | call FIND_FILENAME ; |
||
4968 | jp nz,ERR_NOFILES |
||
4969 | ld hl,TRD_5CDD ; |
||
4970 | ld bc,(4020h) |
||
4971 | add hl,bc |
||
4972 | ld (hl),"8" |
||
4973 | push hl |
||
4974 | call FIND_FILENAME ; |
||
4975 | pop hl |
||
4976 | jr z,loc_2DD8 |
||
4977 | ld (hl)," " |
||
4978 | loc_2DD2 call FIND_FILENAME ; |
||
4979 | jp loc_2E33 |
||
678 | savelij | 4980 | |
761 | savelij | 4981 | loc_2DD8 call RDHEAD_FILENAME ; |
4982 | call loc_2D92 |
||
4983 | ld sp,40FFh |
||
4984 | ld b,8 |
||
4985 | loc_2DE3 push bc |
||
4986 | ld a,b |
||
4987 | ld bc,7FFDh |
||
4988 | dec a |
||
4989 | push af |
||
4990 | or 10h |
||
4991 | out (c),a |
||
4992 | pop af |
||
4993 | add a,"0" |
||
4994 | ld hl,TRD_5CDD ; |
||
4995 | ld bc,(4020h) |
||
4996 | add hl,bc |
||
4997 | ld (hl),a |
||
4998 | call FIND_FILENAME ; |
||
4999 | jr nz,loc_2E05 |
||
5000 | call RDHEAD_FILENAME ; |
||
5001 | call loc_2D92 |
||
5002 | loc_2E05 pop bc |
||
5003 | djnz loc_2DE3 |
||
5004 | ld a," " |
||
5005 | ld hl,TRD_5CDD ; |
||
5006 | ld bc,(4020h) |
||
5007 | add hl,bc |
||
5008 | ld (hl),a |
||
5009 | call FIND_FILENAME ; |
||
5010 | call RDHEAD_FILENAME ; |
||
5011 | push bc |
||
5012 | push af |
||
5013 | ld bc,7FFDh |
||
5014 | ld a,(4101h) |
||
5015 | out (c),a |
||
5016 | pop af |
||
5017 | pop bc |
||
5018 | jr loc_2E39 |
||
678 | savelij | 5019 | |
761 | savelij | 5020 | call SET_AND_PUT |
5021 | call EXIT_IF_SINTAX ; , |
||
5022 | call INP_EXTFILENAME ; |
||
5023 | call FIND_FILE ; |
||
5024 | loc_2E33 jp nz,ERR_NOFILES |
||
5025 | call RDHEAD_FILENAME ; |
||
5026 | loc_2E39 ld a,(TRD_5CDD) ; |
||
5027 | cp "$" |
||
678 | savelij | 5028 | di |
761 | savelij | 5029 | jr nz,loc_2E43 |
5030 | im 2 |
||
5031 | loc_2E43 ld sp,40F0h |
||
5032 | call GET_TYPE_DISK ; |
||
5033 | ld (4010h),a |
||
5034 | ld a,(TRD_5D16) ; ( #FF) |
||
5035 | ld (4011h),a |
||
5036 | ld hl,(TRD_5CE6) ; <C>- , <B>- |
||
5037 | push hl |
||
5038 | ld de,(TRD_5CEB) ; |
||
5039 | push de |
||
5040 | inc e |
||
5041 | ld a,e |
||
5042 | cp 10h |
||
5043 | jr nz,loc_2E64 |
||
5044 | ld e,0 |
||
5045 | inc d |
||
5046 | loc_2E64 ld c,d |
||
5047 | call sub_2F07 |
||
5048 | ld a,(4010h) |
||
5049 | and 2 |
||
5050 | call nz,sub_2F0F |
||
5051 | ld a,c |
||
5052 | call loc_2F50 |
||
5053 | ld hl,4100h |
||
5054 | ld b,0BFh |
||
5055 | loc_2E79 push bc |
||
5056 | push de |
||
5057 | call sub_2F1B |
||
5058 | ld de,100h |
||
5059 | add hl,de |
||
5060 | pop de |
||
5061 | inc e |
||
5062 | ld a,e |
||
5063 | cp 10h |
||
5064 | jr nz,loc_2E9C |
||
5065 | ld e,0 |
||
5066 | inc d |
||
5067 | ld c,d |
||
5068 | call sub_2F07 |
||
5069 | ld a,(4010h) |
||
5070 | and 2 |
||
5071 | call nz,sub_2F0F |
||
5072 | ld a,c |
||
5073 | call loc_2F50 |
||
5074 | loc_2E9C pop bc |
||
5075 | djnz loc_2E79 |
||
5076 | pop de |
||
5077 | pop hl |
||
5078 | ld sp,hl |
||
5079 | ld a,(4011h) |
||
5080 | push af |
||
5081 | ld c,d |
||
5082 | call sub_2F07 |
||
5083 | ld a,(4010h) |
||
5084 | and 2 |
||
5085 | call nz,sub_2F0F |
||
5086 | ld a,c |
||
5087 | call loc_2F50 |
||
5088 | ld hl,4000h |
||
5089 | call sub_2F1B |
||
5090 | loc_2EBC pop af |
||
5091 | ex af,af' |
||
5092 | pop af |
||
5093 | ld r,a |
||
5094 | pop af |
||
5095 | ld i,a |
||
678 | savelij | 5096 | di |
761 | savelij | 5097 | ld a,0FFh |
5098 | jp po,loc_2ECC |
||
5099 | ld a,0 |
||
5100 | loc_2ECC ld (KSTATE0),a |
||
5101 | pop af |
||
5102 | pop hl |
||
5103 | pop de |
||
5104 | pop bc |
||
678 | savelij | 5105 | exx |
761 | savelij | 5106 | ex af,af' |
5107 | pop iy |
||
5108 | pop ix |
||
5109 | pop hl |
||
5110 | pop de |
||
5111 | pop bc |
||
5112 | ld a,(BORDCR) |
||
5113 | and 38h |
||
678 | savelij | 5114 | rrca |
5115 | rrca |
||
5116 | rrca |
||
761 | savelij | 5117 | out (0FEh),a |
5118 | ld a,(SWAP_8) |
||
5119 | cp 0EEh |
||
5120 | jr nz,loc_2EF7 |
||
5121 | push bc |
||
5122 | ld bc,7FFDh |
||
5123 | ld a,(BANKM) |
||
5124 | out (c),a |
||
5125 | pop bc |
||
5126 | loc_2EF7 ld a,(KSTATE0) |
||
5127 | or a |
||
5128 | ld a,0C9h |
||
5129 | ld (KSTATE0),a |
||
5130 | jr nz,loc_2F03 |
||
678 | savelij | 5131 | ei |
761 | savelij | 5132 | loc_2F03 pop af |
5133 | jp KSTATE0 |
||
678 | savelij | 5134 | |
761 | savelij | 5135 | sub_2F07 ld a,(4011h) |
5136 | or 0x3c |
||
5137 | loc_2F0C |
||
5138 | IF EMU |
||
5139 | RST30 _OUT_FF |
||
5140 | ELSE |
||
5141 | out (0xff),a |
||
5142 | ENDIF |
||
678 | savelij | 5143 | ret |
5144 | |||
761 | savelij | 5145 | sub_2F0F ld a,c |
5146 | or a |
||
678 | savelij | 5147 | rra |
761 | savelij | 5148 | ld c,a |
5149 | ret nc |
||
5150 | ld a,(4011h) |
||
5151 | and 0x6f ;LORD OF CHAOS |
||
5152 | jr loc_2F0C |
||
678 | savelij | 5153 | |
761 | savelij | 5154 | sub_2F1B ld a,e ;EXOLON |
5155 | inc a |
||
5156 | IF EMU |
||
678 | savelij | 5157 | RST32 _OUT_5F,__OUT_N_A+0X5F<<8 |
761 | savelij | 5158 | ELSE |
5159 | out (0x5f),a |
||
5160 | ENDIF |
||
5161 | push hl |
||
5162 | ld d,0x14 |
||
5163 | push de |
||
678 | savelij | 5164 | loc_2F23 di |
761 | savelij | 5165 | ld c,0x7f |
5166 | ld a,0x80 |
||
5167 | IF EMU |
||
678 | savelij | 5168 | RST32 _OUT_1F,__OUT_N_A+0X1F<<8 |
761 | savelij | 5169 | ELSE |
5170 | out (0x1f),a |
||
5171 | ENDIF |
||
5172 | call RD_DATAPORT |
||
5173 | pop de |
||
5174 | pop hl |
||
5175 | IF EMU |
||
678 | savelij | 5176 | RST32 _IN_1F,__IN_A_N+0X1F<<8 |
761 | savelij | 5177 | ELSE |
5178 | in a,(0x1f) |
||
5179 | ENDIF |
||
5180 | and 0x7f |
||
5181 | ret z |
||
5182 | dec d |
||
5183 | push hl |
||
5184 | push de |
||
5185 | jr nz,loc_2F23 |
||
678 | savelij | 5186 | halt |
761 | savelij | 5187 | sub_2F3A ld a,3Ch |
5188 | IF EMU |
||
678 | savelij | 5189 | RST30 _OUT_FF |
761 | savelij | 5190 | ELSE |
5191 | out (0FFh),a |
||
5192 | ENDIF |
||
5193 | ld a,(KSTATE0) |
||
5194 | and 8 |
||
5195 | jr nz,loc_2F4F |
||
5196 | ld a,c |
||
5197 | or a |
||
678 | savelij | 5198 | rra |
761 | savelij | 5199 | ld c,a |
5200 | jr nc,loc_2F4F |
||
5201 | ld a,2Ch |
||
5202 | IF EMU |
||
678 | savelij | 5203 | RST30 _OUT_FF |
761 | savelij | 5204 | ELSE |
5205 | out (0xff),a |
||
5206 | ENDIF |
||
5207 | loc_2F4F ld a,c |
||
5208 | loc_2F50 |
||
5209 | IF EMU |
||
5210 | RST32 _OUT_7F,__OUT_N_A+0X7F<<8 |
||
5211 | ELSE |
||
5212 | out (0x7f),a |
||
5213 | ENDIF |
||
5214 | call loc_3D2F;PAUSE725779T |
||
5215 | ld a,0x18 |
||
5216 | loc_2F57 |
||
5217 | IF EMU |
||
5218 | RST32 _OUT_1F,__OUT_N_A+0X1F<<8 |
||
5219 | ELSE |
||
5220 | out (0x1f),a |
||
5221 | ENDIF |
||
5222 | loc_2F59 |
||
5223 | IF EMU |
||
5224 | RST32 _IN_FF,__IN_A_N+0XFF<<8 |
||
5225 | ELSE |
||
5226 | in a,(0xff) |
||
5227 | ENDIF |
||
5228 | and 0x80 |
||
5229 | jr z,loc_2F59 |
||
5230 | push bc |
||
5231 | call PAUSE725779T |
||
5232 | pop bc |
||
678 | savelij | 5233 | ret |
5234 | |||
761 | savelij | 5235 | sub_2F65 ld a,0x08 ;SOLDIER OF THE FUTURE |
5236 | jr loc_2F57 |
||
678 | savelij | 5237 | |
761 | savelij | 5238 | WORK4ERROR ld hl,(TRD_5D1C) ; SP |
5239 | dec hl |
||
5240 | dec hl |
||
5241 | ld sp,hl |
||
5242 | jp loc_1D2F |
||
678 | savelij | 5243 | |
761 | savelij | 5244 | CALL2BASIC ld (TRD_5D02),hl |
5245 | ld (TRD_5D04),de |
||
5246 | pop hl |
||
5247 | ld e,(hl) |
||
5248 | inc hl |
||
5249 | ld d,(hl) |
||
5250 | inc hl |
||
5251 | push hl |
||
5252 | ld hl,loc_3D2F |
||
5253 | push hl |
||
5254 | push de |
||
5255 | ld hl,TRD_5CC2 |
||
5256 | push hl |
||
5257 | ld hl,(TRD_5D02) |
||
5258 | ld de,(TRD_5D04) |
||
678 | savelij | 5259 | ret |
5260 | |||
623 | savelij | 5261 | SET_VARS LD HL,0X0808 |
761 | savelij | 5262 | ld (TRD_5CFA),hl ; A |
5263 | ld (TRD_5CFC),hl ; C |
||
623 | savelij | 5264 | LD HL,0X8383 |
761 | savelij | 5265 | ld (TRD_5CC8),hl ; A |
5266 | ld (TRD_5CCA),hl ; C |
||
5267 | xor a |
||
5268 | ld (TRD_5D17),a ; , #AA |
||
5269 | ld (TRD_5D18),a |
||
5270 | ld (TRD_5D0F),a ; TR-DOS |
||
5271 | ld (TRD_5D1F),a |
||
627 | savelij | 5272 | CALL SET_DRIVENAME |
761 | savelij | 5273 | ld a,0xff |
5274 | IF EMU |
||
678 | savelij | 5275 | RST30 _OUT_FF |
761 | savelij | 5276 | ELSE |
5277 | out (0xff),a |
||
5278 | ENDIF |
||
5279 | ld (ERR_NR),a |
||
5280 | ld (TRD_5D0C),a |
||
5281 | ld a,0xc9 |
||
5282 | ld (TRD_5CC2),a |
||
5283 | ld a,0xd0 |
||
5284 | IF EMU |
||
678 | savelij | 5285 | RST32 _OUT_1F,__OUT_N_A+0X1F<<8 |
761 | savelij | 5286 | ELSE |
5287 | out (0x1f),a |
||
5288 | ENDIF |
||
678 | savelij | 5289 | ret |
5290 | |||
761 | savelij | 5291 | CP_END_CAT call CP_END_BUF |
5292 | ld a,(hl) |
||
5293 | or a |
||
5294 | jp z,END_OUT_DIR |
||
5295 | cp 1 |
||
5296 | call z,ADD_10 |
||
5297 | ret nz |
||
5298 | jr CP_END_CAT |
||
678 | savelij | 5299 | |
761 | savelij | 5300 | LOAD_SEC2BUF ld b,1 |
5301 | ld hl,TRD_5D25 |
||
5302 | jp loc_1E67 |
||
678 | savelij | 5303 | |
761 | savelij | 5304 | LOAD_END_FILE push hl |
5305 | ld de,(TRD_5CF4) |
||
5306 | call LOAD_SEC2BUF |
||
5307 | ld a,(TRD_5CDB) |
||
5308 | pop de |
||
5309 | or a |
||
5310 | ret z |
||
5311 | ld c,a |
||
5312 | ld hl,TRD_5D25 |
||
5313 | IF EMU |
||
623 | savelij | 5314 | IF EMU3D2F=1 |
678 | savelij | 5315 | JP EMU_LDIR |
623 | savelij | 5316 | ELSE |
678 | savelij | 5317 | ldir |
5318 | ret |
||
623 | savelij | 5319 | ENDIF |
761 | savelij | 5320 | ELSE |
5321 | ldir |
||
5322 | ret |
||
5323 | ENDIF |
||
623 | savelij | 5324 | |
678 | savelij | 5325 | ; TR-DOS |
5326 | CODE_BYTE_COM db __CAT |
||
5327 | db "*" |
||
5328 | db __FORMAT |
||
5329 | db __MOVE |
||
5330 | db __NEW |
||
5331 | db __ERASE |
||
5332 | db __LOAD |
||
5333 | db __SAVE |
||
5334 | db __RETURN |
||
5335 | db __PEEK |
||
5336 | db __POKE |
||
5337 | db __MERGE |
||
5338 | db __RUN |
||
5339 | db __OPEN |
||
5340 | db __CLOSE |
||
5341 | db __COPY |
||
5342 | db "4" |
||
5343 | db __GOTO |
||
5344 | db "8" |
||
5345 | db __LIST |
||
5346 | db __VERIFY |
||
5347 | ECODE_BYTE_COM |
||
623 | savelij | 5348 | |
678 | savelij | 5349 | ; |
5350 | SPIS_ADR_COM dw CAT |
||
5351 | dw COM_STAR |
||
5352 | dw FORMAT |
||
5353 | dw MOVE |
||
5354 | dw NEW ; NEW |
||
5355 | dw ERASE ; ERASE |
||
5356 | dw LOAD |
||
5357 | dw SAVE |
||
5358 | dw RETURN |
||
5359 | dw PEEK |
||
5360 | dw POKE |
||
5361 | dw MERGE |
||
5362 | dw RUN |
||
5363 | dw OPEN |
||
5364 | dw CLOSE |
||
5365 | dw COPY |
||
5366 | dw COM_40 |
||
5367 | dw GOTO |
||
5368 | dw COM_80 |
||
5369 | dw LIST |
||
5370 | dw VERIFY |
||
623 | savelij | 5371 | |
761 | savelij | 5372 | SAE2E_LINE ld hl,(E_LINE) ; |
5373 | ld (TRD_5D11),hl ; TR_DOS |
||
5374 | ld (TRD_5CD9),hl ; <B> <C> |
||
5375 | ld a,0xff |
||
5376 | ld (TRD_5CD6),a ; #FF- |
||
5377 | ld hl,TRD_5CDB |
||
5378 | ld (TRD_5CD7),hl ; - |
||
5379 | ; |
||
5380 | jr loc_3057 |
||
623 | savelij | 5381 | |
761 | savelij | 5382 | SAE2_HL_ ld (TRD_5D11),hl ; TR_DOS |
5383 | ld (TRD_5CD9),hl ; <B> <C> |
||
5384 | call CP_ADR_STR |
||
5385 | ret nz |
||
5386 | inc hl |
||
5387 | inc hl |
||
5388 | ld (TRD_5CD7),hl ; - |
||
5389 | ; |
||
5390 | loc_3057 call CMP_SPECSYM |
||
5391 | jr nz,loc_3087 |
||
5392 | ex de,hl |
||
5393 | inc de |
||
5394 | ld b,0 |
||
5395 | ld hl,BYTES_COM |
||
5396 | add hl,bc |
||
5397 | ld a,(hl) |
||
5398 | ld hl,(TRD_5CD9) ; <B> <C> |
||
5399 | ld (hl),a |
||
5400 | inc hl |
||
5401 | ex de,hl |
||
5402 | rst 0x20 |
||
5403 | dw 0x19dd |
||
5404 | push bc |
||
689 | savelij | 5405 | ;[???] |
5406 | ; call CLRBUF_EDITOR1 |
||
761 | savelij | 5407 | rst 20h |
5408 | dw 19E8h |
||
5409 | pop bc |
||
5410 | ld a,(TRD_5CD6) ; #FF- |
||
5411 | or a |
||
5412 | jr nz,loc_3087 |
||
5413 | ld hl,(TRD_5CD7) ; - |
||
5414 | ; |
||
5415 | ld e,(hl) |
||
5416 | inc hl |
||
5417 | ld d,(hl) |
||
5418 | ex de,hl |
||
5419 | or a |
||
5420 | sbc hl,bc |
||
5421 | ex de,hl |
||
5422 | ld (hl),d |
||
5423 | dec hl |
||
5424 | ld (hl),e |
||
5425 | loc_3087 ld hl,(TRD_5CD9) ; <B> <C> |
||
5426 | ld a,(hl) |
||
5427 | cp 0x0d |
||
5428 | ret z |
||
5429 | inc hl |
||
5430 | ld (TRD_5CD9),hl ; <B> <C> |
||
5431 | ld a,(hl) |
||
5432 | cp 0x0d |
||
5433 | ret z |
||
5434 | cp 0x22 |
||
5435 | jr nz,loc_3057 |
||
5436 | loc_309A inc hl |
||
5437 | ld a,(hl) |
||
5438 | cp 0x0d |
||
5439 | ret z |
||
5440 | cp 0x22 |
||
5441 | jr nz,loc_309A |
||
5442 | inc hl |
||
5443 | ld (TRD_5CD9),hl ; <B> <C> |
||
5444 | jr loc_3057 |
||
623 | savelij | 5445 | |
761 | savelij | 5446 | FIND_KEYWORD ld hl,(TRD_5CD9) ; <B> <C> |
5447 | ld de,TBL_KEYWORD ; "SAVE" |
||
5448 | ld c,0 |
||
5449 | loc_30B1 ld a,(hl) |
||
5450 | and 0xdf |
||
5451 | ld b,a |
||
5452 | or a |
||
5453 | jr nz,loc_30BB |
||
5454 | inc hl |
||
5455 | jr loc_30B1 |
||
623 | savelij | 5456 | |
761 | savelij | 5457 | loc_30BB ld a,(de) |
5458 | and 0x80 |
||
5459 | jr nz,loc_30C8 |
||
5460 | ld a,(de) |
||
5461 | cp b |
||
5462 | jr nz,loc_30D9 |
||
5463 | inc hl |
||
5464 | inc de |
||
5465 | jr loc_30B1 |
||
623 | savelij | 5466 | |
761 | savelij | 5467 | loc_30C8 ld a,(de) |
5468 | and 0x7f |
||
5469 | cp b |
||
5470 | ret z |
||
5471 | loc_30CD inc c |
||
5472 | ld hl,(TRD_5CD9) ; <B> <C> |
||
5473 | inc de |
||
5474 | ld a,(de) |
||
5475 | cp 0xff |
||
5476 | jr nz,loc_30B1 |
||
5477 | or a |
||
678 | savelij | 5478 | ret |
623 | savelij | 5479 | |
761 | savelij | 5480 | loc_30D9 inc de |
5481 | ld a,(de) |
||
5482 | and 0x80 |
||
5483 | jr z,loc_30D9 |
||
5484 | jr loc_30CD |
||
623 | savelij | 5485 | |
761 | savelij | 5486 | CP_ADR_STR ld hl,(PPC) |
5487 | inc hl |
||
5488 | inc hl |
||
5489 | ld a,h |
||
5490 | or l |
||
5491 | jr z,loc_30F4 |
||
5492 | xor a |
||
5493 | ld (TRD_5CD6),A ; #FF- |
||
5494 | dec hl |
||
5495 | dec hl |
||
5496 | rst 0x20 |
||
5497 | dw 0x196e |
||
678 | savelij | 5498 | ret |
623 | savelij | 5499 | |
761 | savelij | 5500 | loc_30F4 ld a,0xff |
5501 | ld (TRD_5CD6),a ; #FF- |
||
5502 | ld hl,(E_LINE) ; |
||
678 | savelij | 5503 | ret |
623 | savelij | 5504 | |
5505 | ; |
||
678 | savelij | 5506 | TBL_KEYWORD db "SAVE",0x80 |
623 | savelij | 5507 | DC "SAVE" |
678 | savelij | 5508 | db "LOAD",0x80 |
623 | savelij | 5509 | DC "LOAD" |
678 | savelij | 5510 | db "RUN",0x80 |
623 | savelij | 5511 | DC "RUN" |
678 | savelij | 5512 | db "CAT",0x80 |
623 | savelij | 5513 | DC "CAT" |
678 | savelij | 5514 | db "ERASE",0x80 |
623 | savelij | 5515 | DC "ERASE" |
678 | savelij | 5516 | db "NEW",0x80 |
623 | savelij | 5517 | DC "NEW" |
678 | savelij | 5518 | db "MOVE",0x80 |
623 | savelij | 5519 | DC "MOVE" |
678 | savelij | 5520 | db "MERGE",0x80 |
623 | savelij | 5521 | DC "MERGE" |
678 | savelij | 5522 | db "PEEK",0x80 |
623 | savelij | 5523 | DC "PEEK" |
678 | savelij | 5524 | db "POKE",0x80 |
623 | savelij | 5525 | DC "POKE" |
678 | savelij | 5526 | db "OPEN",0x83 |
5527 | db "CLOSE",0x83 |
||
5528 | db "CODE",0x80 |
||
623 | savelij | 5529 | DC "CODE" |
678 | savelij | 5530 | db "RND",0x80 |
623 | savelij | 5531 | DC "RND" |
678 | savelij | 5532 | db "DATA",0x80 |
623 | savelij | 5533 | DC "DATA" |
678 | savelij | 5534 | db "SCREEN",4,0x84 |
5535 | db "SCREEN",0x84 |
||
5536 | db "COPY",0x80 |
||
623 | savelij | 5537 | DC "COPY" |
678 | savelij | 5538 | db "FORMAT",0x80 |
623 | savelij | 5539 | DC "FORMAT" |
678 | savelij | 5540 | db "GOTO",0x80 |
5541 | DC "GOTO" |
||
5542 | db "LIST",0x80 |
||
623 | savelij | 5543 | DC "LIST" |
678 | savelij | 5544 | db "LINE",0x80 |
623 | savelij | 5545 | DC "LINE" |
678 | savelij | 5546 | db "VERIFY",0x80 |
623 | savelij | 5547 | DC "VERIFY" |
678 | savelij | 5548 | db 0xff,0xff |
623 | savelij | 5549 | |
5550 | ; |
||
678 | savelij | 5551 | BYTES_COM dw __SAVE<<8+__SAVE |
5552 | dw __LOAD<<8+__LOAD |
||
5553 | dw __RUN<<8+__RUN |
||
5554 | dw __CAT<<8+__CAT |
||
5555 | dw __ERASE<<8+__ERASE |
||
5556 | dw __NEW<<8+__NEW |
||
5557 | dw __MOVE<<8+__MOVE |
||
5558 | dw __MERGE<<8+__MERGE |
||
5559 | dw __PEEK<<8+__PEEK |
||
5560 | dw __POKE<<8+__POKE |
||
5561 | dw __CLOSE<<8+__OPEN |
||
5562 | dw __CODE<<8+__CODE |
||
5563 | dw __RND<<8+__RND |
||
5564 | dw __DATA<<8+__DATA |
||
5565 | dw __SCREENS<<8+__SCREENS |
||
5566 | dw __COPY<<8+__COPY |
||
5567 | dw __FORMAT<<8+__FORMAT |
||
5568 | dw __GOTO<<8+__GOTO |
||
5569 | dw __LIST<<8+__LIST |
||
5570 | dw __LINE<<8+__LINE |
||
5571 | dw __VERIFY<<8+__VERIFY |
||
5572 | db 0 |
||
623 | savelij | 5573 | |
678 | savelij | 5574 | CP_VARSTRDOS CALL CMP_VARSTRDOS |
761 | savelij | 5575 | or a |
5576 | ld bc,TRD_5D25 |
||
5577 | sbc hl,bc |
||
678 | savelij | 5578 | ret |
5579 | |||
623 | savelij | 5580 | ;===============FREE SPACE 2============ |
627 | savelij | 5581 | include extend.a80 |
623 | savelij | 5582 | include raznoe.a80 |
678 | savelij | 5583 | include patch.a80 |
795 | savelij | 5584 | ; HONEY COMANDER |
5585 | include hc_resident.a80 |
||
623 | savelij | 5586 | ;===============FREE SPACE 2============ |
5587 | |||
764 | savelij | 5588 | TITLE "evo-dos.a80" |
5589 | |||
678 | savelij | 5590 | DUPL 0X3C01-$,0XFF |
761 | savelij | 5591 | jr loc_3C06 |
627 | savelij | 5592 | |
761 | savelij | 5593 | db 0xff |
5594 | jr loc_3C09 |
||
623 | savelij | 5595 | |
761 | savelij | 5596 | loc_3C06 jp loc_3D00 |
623 | savelij | 5597 | |
761 | savelij | 5598 | loc_3C09 jp loc_3D03 |
623 | savelij | 5599 | |
5600 | ;===============FREE SPACE 3============ |
||
5601 | DUPL 0X3C30-$,0XFF |
||
761 | savelij | 5602 | IF EMU |
678 | savelij | 5603 | RST32 _IN_1F,__IN_A_N+0X1F<<8 |
761 | savelij | 5604 | ELSE |
5605 | IN A,(0X1F) |
||
5606 | ENDIF |
||
623 | savelij | 5607 | RET |
5608 | |||
795 | savelij | 5609 | ; HONEY COMANDER |
5610 | DUPL 0X3C50-$,0XFF |
||
1186 | savelij | 5611 | LOC_3C50 LD H,CMOS.BYTE_01 |
795 | savelij | 5612 | CALL READCMOS |
1186 | savelij | 5613 | AND CMOS_EC.M_REZIDENT |
795 | savelij | 5614 | JP Z,LOC_3C4B |
5615 | JP loc_3C50 |
||
5616 | |||
761 | savelij | 5617 | IF EMU |
623 | savelij | 5618 | DUPL ADR_RST8END-$,0XFF |
5619 | JP EDOS2RST8 |
||
761 | savelij | 5620 | ENDIF |
623 | savelij | 5621 | ;===============FREE SPACE 3============ |
5622 | |||
5623 | DUPL 0X3CFA-$,0XFF |
||
678 | savelij | 5624 | loc_3CFA nop |
761 | savelij | 5625 | jr loc_3D2F |
623 | savelij | 5626 | |
761 | savelij | 5627 | loc_3CFD jp CALL_3D13 |
623 | savelij | 5628 | |
5629 | ; DOS (15616) |
||
678 | savelij | 5630 | loc_3D00 nop |
761 | savelij | 5631 | jr IN_DOS_15616 |
623 | savelij | 5632 | |
5633 | ; (15619) |
||
678 | savelij | 5634 | loc_3D03 nop |
761 | savelij | 5635 | jr IN_DOS_15619 |
623 | savelij | 5636 | |
678 | savelij | 5637 | loc_3D06 nop |
761 | savelij | 5638 | jp INPUTDATAFILE |
623 | savelij | 5639 | |
761 | savelij | 5640 | loc_3D0A jp OUT_SYM2FILE |
623 | savelij | 5641 | |
678 | savelij | 5642 | nop |
761 | savelij | 5643 | loc_3D0E jr loc_3D0A |
623 | savelij | 5644 | |
678 | savelij | 5645 | nop |
761 | savelij | 5646 | jr loc_3CFA |
623 | savelij | 5647 | |
678 | savelij | 5648 | nop |
761 | savelij | 5649 | jr loc_3CFD |
623 | savelij | 5650 | |
678 | savelij | 5651 | loc_3D16 nop |
761 | savelij | 5652 | jp WORK4ERROR |
623 | savelij | 5653 | |
761 | savelij | 5654 | IN_DOS_15619 call CREATE_VARS_TRD |
5655 | push hl |
||
5656 | jp CONTINUE_15619 |
||
623 | savelij | 5657 | |
761 | savelij | 5658 | CREATE_VARS_TRD call CP_VARSTRDOS |
678 | savelij | 5659 | nop |
5660 | nop |
||
761 | savelij | 5661 | call c,JMP_CREATE_VARS |
5662 | ld hl,TRD_5CC2 |
||
678 | savelij | 5663 | ret |
623 | savelij | 5664 | |
678 | savelij | 5665 | nop |
5666 | nop |
||
5667 | loc_3D2F nop |
||
5668 | ret |
||
623 | savelij | 5669 | |
761 | savelij | 5670 | IN_DOS_15616 call CREATE_VARS_TRD |
5671 | push hl |
||
5672 | jp IN_COMMAND_CPU ; |
||
623 | savelij | 5673 | |
761 | savelij | 5674 | INI_INTERFACE1 xor a |
678 | savelij | 5675 | DUPL 2,0 |
761 | savelij | 5676 | in a,(0xf7) |
5677 | cp 0x1e |
||
5678 | jr z,loc_3D44 |
||
5679 | cp 0x1f |
||
5680 | ret nz |
||
5681 | loc_3D44 rst 8 |
||
5682 | db 0x31 |
||
5683 | ld a,1 |
||
5684 | ld (TRD_5CEF),a |
||
678 | savelij | 5685 | ret |
623 | savelij | 5686 | |
761 | savelij | 5687 | JMP_CREATE_VARS xor a |
5688 | IF EMU |
||
678 | savelij | 5689 | RST30 _OUT_FF |
761 | savelij | 5690 | ELSE |
5691 | out (0xff),a |
||
5692 | ENDIF |
||
5693 | in a,(0xf6) |
||
5694 | ld hl,INI_INTERFACE1 |
||
5695 | ld de,MEMBOT |
||
5696 | ld bc,0x14 |
||
5697 | ldir ;ADS |
||
5698 | ld hl,CREATE_VARS |
||
5699 | push hl |
||
5700 | LD hl,loc_3D2F |
||
5701 | push hl |
||
5702 | jp MEMBOT |
||
623 | savelij | 5703 | |
761 | savelij | 5704 | CREATE_VARS |
5705 | IF EMU |
||
5706 | CALL CMP_RAMDISK |
||
5707 | ELSE |
||
5708 | ld hl,SET_VARS |
||
5709 | ENDIF |
||
5710 | push hl |
||
5711 | ld hl,loc_3D2F |
||
5712 | push hl |
||
5713 | ld hl,0x1655 |
||
5714 | push hl |
||
5715 | ld hl,TSTACK_END |
||
5716 | push hl |
||
5717 | ld (hl),0xc9 |
||
5718 | ld hl,P_RAMT+1 |
||
5719 | ld bc,0x70 |
||
678 | savelij | 5720 | ret |
623 | savelij | 5721 | |
761 | savelij | 5722 | PRINT_0D ld a,0x0d |
5723 | PRINT_A_ push hl |
||
5724 | push bc |
||
5725 | push de |
||
5726 | push af |
||
678 | savelij | 5727 | DUPL 3,0 |
761 | savelij | 5728 | pop af |
5729 | call PRINT_SYM |
||
5730 | DUPL 3,0 |
||
5731 | pop de |
||
5732 | pop bc |
||
5733 | pop hl |
||
678 | savelij | 5734 | ret |
5735 | |||
761 | savelij | 5736 | PRINT_SYM rst 0x20 |
5737 | dw 0x10 |
||
678 | savelij | 5738 | ret |
5739 | |||
623 | savelij | 5740 | ; 93 |
761 | savelij | 5741 | COM_00 ld a,0x08 |
5742 | COM2VG_WAIT |
||
5743 | IF EMU |
||
5744 | RST32 _OUT_1F,__OUT_N_A+0X1F<<8 |
||
5745 | ELSE |
||
5746 | out (0x1f),a |
||
5747 | ENDIF |
||
5748 | loc_3D9C push hl |
||
5749 | rst 0x20 |
||
5750 | dw 0x1f54 |
||
5751 | jr c,loc_3DA5 |
||
5752 | rst 0x20 |
||
5753 | dw 0x1b7b |
||
5754 | loc_3DA5 pop hl |
||
5755 | IF EMU |
||
678 | savelij | 5756 | RST32 _IN_FF,__IN_A_N+0XFF<<8 |
761 | savelij | 5757 | ELSE |
5758 | in a,(0xff) |
||
5759 | ENDIF |
||
5760 | and 0x80 |
||
5761 | jr z,loc_3D9C |
||
678 | savelij | 5762 | ret |
623 | savelij | 5763 | |
761 | savelij | 5764 | CP_PRESENT_DSK ld a,0x08 |
5765 | call COM2VG_WAIT |
||
5766 | ld de,0 |
||
5767 | IF EMU |
||
678 | savelij | 5768 | RST32 _IN_1F,__IN_A_N+0X1F<<8 |
761 | savelij | 5769 | ELSE |
5770 | in a,(0x1f) |
||
5771 | ENDIF |
||
5772 | and 2 |
||
5773 | ld b,a |
||
5774 | loc_3DBA |
||
5775 | IF EMU |
||
5776 | RST32 _IN_1F,__IN_A_N+0X1F<<8 |
||
5777 | ELSE |
||
5778 | in a,(0x1f) |
||
5779 | ENDIF |
||
5780 | and 2 |
||
5781 | cp b |
||
5782 | IF EMU |
||
623 | savelij | 5783 | IF EMU3D2F=1 |
5784 | RET |
||
5785 | ELSE |
||
678 | savelij | 5786 | ret nz |
623 | savelij | 5787 | ENDIF |
761 | savelij | 5788 | ELSE |
5789 | ret nz |
||
5790 | ENDIF |
||
5791 | inc de |
||
5792 | ld a,e |
||
5793 | or d |
||
5794 | jr nz,loc_3DBA |
||
5795 | jp loc_3EE7 |
||
623 | savelij | 5796 | |
5797 | ; |
||
761 | savelij | 5798 | ACTIV_DEF_DSK ld a,(TRD_5D19) ; |
623 | savelij | 5799 | ; |
761 | savelij | 5800 | COM_01 ld (TRD_5CF6),a ; |
5801 | ld hl,TRD_5D16 ; ( #FF) |
||
5802 | or 0x3c |
||
5803 | ld (hl),a |
||
5804 | IF EMU |
||
678 | savelij | 5805 | RST30 _OUT_FF |
761 | savelij | 5806 | ELSE |
5807 | out (0xff),a |
||
5808 | ENDIF |
||
623 | savelij | 5809 | LD B,0 |
761 | savelij | 5810 | IF EMU |
678 | savelij | 5811 | RST32 _IN_3F,__IN_A_N+0X3F<<8 |
761 | savelij | 5812 | ELSE |
5813 | in a,(0x3f) |
||
5814 | ENDIF |
||
5815 | IF EMU |
||
678 | savelij | 5816 | RST32 _OUT_7F,__OUT_N_A+0X7F<<8 |
761 | savelij | 5817 | ELSE |
5818 | out (0x7f),a |
||
5819 | ENDIF |
||
5820 | LD A,%00011000 ; |
||
5821 | IF EMU |
||
678 | savelij | 5822 | RST32 _OUT_1F,__OUT_N_A+0X1F<<8 |
761 | savelij | 5823 | ELSE |
5824 | out (0x1f),a |
||
5825 | ENDIF |
||
5826 | DJNZ $ ; |
||
5827 | COM_011 |
||
5828 | IF EMU |
||
5829 | RST32 _IN_1F,__IN_A_N+0X1F<<8 |
||
5830 | ELSE |
||
5831 | in a,(0x1f) |
||
5832 | ENDIF |
||
623 | savelij | 5833 | AND 0X80 |
678 | savelij | 5834 | JP NZ,loc_3EE7 |
627 | savelij | 5835 | LOC_3DFA JP WR_NUM_TRACK |
623 | savelij | 5836 | |
678 | savelij | 5837 | WR_BYTE_RET OUT (C),A |
623 | savelij | 5838 | RET |
5839 | |||
678 | savelij | 5840 | DUPL 0X3DFD-$,0XFF |
761 | savelij | 5841 | PAUSE725779T ld a,0x50 |
5842 | PAUSE_C_A ld c,0xff |
||
5843 | loc_3E01 dec c |
||
5844 | jr nz,loc_3E01 |
||
5845 | dec a |
||
5846 | jr nz,PAUSE_C_A |
||
678 | savelij | 5847 | ret |
5848 | |||
623 | savelij | 5849 | ; |
761 | savelij | 5850 | GET_TIME_HEAD ld de,TRD_5CFA ; A |
5851 | loc_3E0B ld hl,(TRD_5CF6) ; |
||
5852 | add hl,de |
||
5853 | ld a,(hl) |
||
678 | savelij | 5854 | ret |
623 | savelij | 5855 | |
761 | savelij | 5856 | GET_TYPE_DISK ld de,TRD_5CC8 ; A |
5857 | jr loc_3E0B |
||
623 | savelij | 5858 | |
678 | savelij | 5859 | ; |
761 | savelij | 5860 | CP_TIME_GOHEAD call GET_TIME_HEAD ; |
5861 | ld b,8 |
||
5862 | ld c,4 |
||
5863 | loc_3E1D ld (hl),b |
||
5864 | ld a,0Bh |
||
5865 | call COM2VG_WAIT |
||
5866 | ld a,20h |
||
5867 | ld b,0Bh |
||
5868 | call HEAD_POSITION |
||
5869 | ld b,(hl) |
||
5870 | ld a,1 |
||
5871 | call HEAD_POSITION |
||
5872 | IF EMU |
||
678 | savelij | 5873 | RST32 _IN_1F,__IN_A_N+0X1F<<8 |
761 | savelij | 5874 | ELSE |
5875 | in a,(1Fh) |
||
5876 | ENDIF |
||
5877 | and 4 |
||
5878 | jr nz,loc_3E3F |
||
5879 | xor a |
||
5880 | call HEAD_POSITION |
||
5881 | IF EMU |
||
678 | savelij | 5882 | RST32 _IN_1F,__IN_A_N+0X1F<<8 |
761 | savelij | 5883 | ELSE |
5884 | in a,(1Fh) |
||
5885 | ENDIF |
||
5886 | and 4 |
||
5887 | ret nz |
||
5888 | loc_3E3F inc b |
||
5889 | dec c |
||
5890 | ret z |
||
5891 | jr loc_3E1D |
||
623 | savelij | 5892 | |
761 | savelij | 5893 | HEAD_POSITION |
5894 | IF EMU |
||
5895 | RST32 _OUT_7F,__OUT_N_A+0X7F<<8 |
||
5896 | ELSE |
||
5897 | out (0x7f),a |
||
5898 | ENDIF |
||
5899 | ld a,b |
||
5900 | or 0x18 |
||
5901 | jp COM2VG_WAIT |
||
623 | savelij | 5902 | |
761 | savelij | 5903 | POSITIONIREN |
5904 | IF EMU |
||
5905 | RST32 _OUT_7F,__OUT_N_A+0X7F<<8 |
||
5906 | ELSE |
||
5907 | out (0x7f),a |
||
5908 | ENDIF |
||
5909 | push bc |
||
5910 | ld b,a |
||
5911 | IF EMU |
||
678 | savelij | 5912 | RST32 _IN_3F,__IN_A_N+0X3F<<8 |
761 | savelij | 5913 | ELSE |
5914 | in a,(0x3f) |
||
5915 | ENDIF |
||
5916 | cp b |
||
5917 | pop bc |
||
5918 | push af |
||
5919 | ld a,b |
||
5920 | or 0x18 |
||
5921 | call COM2VG_WAIT |
||
5922 | pop af |
||
5923 | ret z |
||
5924 | push bc |
||
5925 | call PAUSE725779T |
||
5926 | pop bc |
||
678 | savelij | 5927 | ret |
623 | savelij | 5928 | |
5929 | ; |
||
761 | savelij | 5930 | COM_02 ld c,a |
5931 | call COM_16 |
||
5932 | call GET_TYPE_DISK |
||
5933 | and 2 |
||
5934 | call nz,SET_SIDE_DSK |
||
5935 | push bc |
||
5936 | bit 7,(hl) |
||
5937 | jr z,loc_3E83 |
||
5938 | bit 0,(hl) |
||
5939 | jr nz,loc_3E83 |
||
5940 | IF EMU |
||
678 | savelij | 5941 | RST32 _IN_3F,__IN_A_N+0X3F<<8 |
761 | savelij | 5942 | ELSE |
5943 | in a,(0x3f) |
||
5944 | ENDIF |
||
5945 | cp c |
||
5946 | jr z,loc_3E82 |
||
678 | savelij | 5947 | rlca |
761 | savelij | 5948 | IF EMU |
678 | savelij | 5949 | RST32 _OUT_3F,__OUT_N_A+0X3F<<8 |
761 | savelij | 5950 | ELSE |
5951 | out (0x3f),a |
||
5952 | ENDIF |
||
5953 | ld a,c |
||
678 | savelij | 5954 | rlca |
761 | savelij | 5955 | loc_3E82 ld c,a |
5956 | loc_3E83 call GET_TIME_HEAD ; |
||
5957 | ld b,a |
||
5958 | ld a,c |
||
5959 | call POSITIONIREN |
||
5960 | pop bc |
||
5961 | ld a,c |
||
5962 | IF EMU |
||
678 | savelij | 5963 | RST32 _OUT_3F,__OUT_N_A+0X3F<<8 |
761 | savelij | 5964 | ELSE |
5965 | out (0x3f),a |
||
5966 | ENDIF |
||
5967 | ld a,(TRD_5CCD) ; #80- |
||
5968 | or a |
||
5969 | ret z |
||
5970 | xor a |
||
5971 | ld (TRD_5CCD),a ; #80- |
||
678 | savelij | 5972 | ret |
627 | savelij | 5973 | |
5974 | DUPL 0X3EA0-$,0XFF |
||
761 | savelij | 5975 | PAUSE_3_C_A ld b,3 |
5976 | loc_3EA2 ld a,0xff |
||
5977 | call PAUSE_C_A |
||
5978 | djnz loc_3EA2 |
||
678 | savelij | 5979 | ret |
623 | savelij | 5980 | |
761 | savelij | 5981 | SET_SIDE_DSK ld a,c |
5982 | or a |
||
678 | savelij | 5983 | rra |
761 | savelij | 5984 | ld c,a |
5985 | ret nc |
||
5986 | jp COM_17 |
||
623 | savelij | 5987 | |
761 | savelij | 5988 | GET_NUM_TRACK call COM_16 |
5989 | loc_3EB5 |
||
5990 | IF EMU |
||
5991 | RST32 _IN_1F,__IN_A_N+0X1F<<8 |
||
5992 | ELSE |
||
5993 | in a,(0x1f) |
||
5994 | ENDIF |
||
5995 | and 0x80 |
||
5996 | ld (TRD_5CCD),a ; #80- |
||
5997 | IF EMU |
||
678 | savelij | 5998 | RST32 _IN_3F,__IN_A_N+0X3F<<8 |
761 | savelij | 5999 | ELSE |
6000 | in a,(0x3f) |
||
6001 | ENDIF |
||
6002 | ld h,a |
||
6003 | call BUGFIX_3EBF ;PATCH ERROR |
||
6004 | ld c,0x7f |
||
6005 | ld d,1 |
||
678 | savelij | 6006 | di |
761 | savelij | 6007 | ld a,0xc0 |
6008 | IF EMU |
||
678 | savelij | 6009 | RST32 _OUT_1F,__OUT_N_A+0X1F<<8 |
761 | savelij | 6010 | ELSE |
6011 | out (0x1f),a |
||
6012 | ENDIF |
||
6013 | push bc |
||
6014 | ld b,3 |
||
6015 | loc_3ECE |
||
6016 | IF EMU |
||
6017 | RST32 _IN_FF,__IN_A_N+0XFF<<8 |
||
6018 | ELSE |
||
6019 | in a,(0xff) |
||
6020 | ENDIF |
||
6021 | and 0xc0 |
||
6022 | jr nz,loc_3EF2 |
||
6023 | inc de |
||
6024 | ld a,e |
||
6025 | or d |
||
6026 | jr nz,loc_3ECE |
||
6027 | djnz loc_3ECE |
||
6028 | pop bc |
||
678 | savelij | 6029 | ei |
761 | savelij | 6030 | ld a,0xd0 |
6031 | IF EMU |
||
678 | savelij | 6032 | RST32 _OUT_1F,__OUT_N_A+0X1F<<8 |
761 | savelij | 6033 | ELSE |
6034 | out (0x1f),a |
||
6035 | ENDIF |
||
6036 | ld a,(TRD_5D17) |
||
6037 | cp 0xff |
||
6038 | ret z |
||
6039 | loc_3EE7 call SET_TAPELDERR |
||
6040 | ld a,0xff |
||
6041 | ld (TRD_5D17),a ; , #AA |
||
6042 | jp loc_271B |
||
623 | savelij | 6043 | |
761 | savelij | 6044 | loc_3EF2 pop bc |
6045 | IF EMU |
||
678 | savelij | 6046 | RST32 _IN_H_C,__IN_H_C |
761 | savelij | 6047 | ELSE |
6048 | in h,(c) |
||
6049 | ENDIF |
||
6050 | loc_3EF5 |
||
6051 | IF EMU |
||
6052 | RST32 _IN_FF,__IN_A_N+0XFF<<8 |
||
6053 | ELSE |
||
6054 | in a,(0xff) |
||
6055 | ENDIF |
||
6056 | and 0xc0 |
||
6057 | jr z,loc_3EF5 |
||
678 | savelij | 6058 | ei |
761 | savelij | 6059 | ret m |
678 | savelij | 6060 | di |
761 | savelij | 6061 | in a,(0x7f) |
6062 | jr loc_3EF5 |
||
623 | savelij | 6063 | |
6064 | ; |
||
761 | savelij | 6065 | COM_03 ld (TRD_5CFF),a |
678 | savelij | 6066 | ret |
623 | savelij | 6067 | |
6068 | ; |
||
761 | savelij | 6069 | COM_04 ld (TRD_5D00),hl |
678 | savelij | 6070 | ret |
623 | savelij | 6071 | |
761 | savelij | 6072 | SAVE_SECTOR ld a,0xa0 |
6073 | jr loc_3F10 |
||
623 | savelij | 6074 | |
761 | savelij | 6075 | LOAD_SECTOR ld a,0x80 |
6076 | loc_3F10 ld (TRD_5CFE),a |
||
6077 | loc_3F13 ld d,0x0a |
||
6078 | loc_3F15 push de |
||
678 | savelij | 6079 | di |
761 | savelij | 6080 | ld a,(TRD_5CFF) |
6081 | inc a |
||
6082 | IF EMU |
||
678 | savelij | 6083 | RST32 _OUT_5F,__OUT_N_A+0X5F<<8 |
761 | savelij | 6084 | ELSE |
6085 | out (0x5f),a |
||
6086 | ENDIF |
||
6087 | ld hl,(TRD_5D00) |
||
6088 | ld c,0x7f |
||
6089 | ld a,(TRD_5CFE) |
||
6090 | IF EMU |
||
678 | savelij | 6091 | RST32 _OUT_1F,__OUT_N_A+0X1F<<8 |
761 | savelij | 6092 | ELSE |
6093 | out (0x1f),a |
||
6094 | ENDIF |
||
6095 | cp 0xa0 |
||
6096 | push af |
||
6097 | call z,WRITE_SEC |
||
6098 | pop af |
||
6099 | call nz,READ_SEC |
||
6100 | pop de |
||
678 | savelij | 6101 | ei |
761 | savelij | 6102 | IF EMU |
678 | savelij | 6103 | RST32 _IN_1F,__IN_A_N+0X1F<<8 |
761 | savelij | 6104 | ELSE |
6105 | in a,(0x1f) |
||
6106 | ENDIF |
||
6107 | ld b,a |
||
6108 | and 0x7f |
||
6109 | ret z |
||
6110 | loc_3F39 ld hl,READ_ONLY ; READ ONLY |
||
6111 | and 0x40 |
||
6112 | jr nz,loc_3F4B |
||
6113 | ld a,b |
||
6114 | and 4 |
||
6115 | jr z,loc_3FA0 |
||
6116 | dec d |
||
6117 | jr nz,loc_3F15 |
||
6118 | loc_3F48 ld hl,TXT_DISCERROR_ ; DISC ERROR |
||
6119 | loc_3F4B ld a,0xd0 |
||
6120 | IF EMU |
||
678 | savelij | 6121 | RST32 _OUT_1F,__OUT_N_A+0X1F<<8 |
761 | savelij | 6122 | ELSE |
6123 | out (0x1f),a |
||
6124 | ENDIF |
||
6125 | ld a,b |
||
6126 | and 1 |
||
6127 | jp nz,loc_3EE7 |
||
6128 | IF EMU |
||
678 | savelij | 6129 | RST32 _IN_3F,__IN_A_N+0X3F<<8 |
761 | savelij | 6130 | ELSE |
6131 | in a,(0x3f) |
||
6132 | ENDIF |
||
6133 | or a |
||
6134 | jr nz,loc_3F5F |
||
6135 | IF EMU |
||
678 | savelij | 6136 | RST32 _IN_5F,__IN_A_N+0X5F<<8 |
761 | savelij | 6137 | ELSE |
6138 | in a,(0x5f) |
||
6139 | ENDIF |
||
6140 | cp 0x0a |
||
6141 | ret z |
||
6142 | loc_3F5F push hl |
||
6143 | call CLEAR_SCREEN ; |
||
6144 | pop hl |
||
6145 | rst 0x18 |
||
6146 | ld hl,TXT_TRK_ ; TRACK |
||
6147 | rst 0x18 |
||
6148 | IF EMU |
||
678 | savelij | 6149 | RST32 _IN_3F,__IN_A_N+0X3F<<8 |
761 | savelij | 6150 | ELSE |
6151 | in a,(0x3f) |
||
6152 | ENDIF |
||
6153 | call PRINT_CHISLO_A_ |
||
6154 | ld hl,TXT_SEC_ ; SECTOR |
||
6155 | rst 0x18 |
||
6156 | IF EMU |
||
678 | savelij | 6157 | RST32 _IN_5F,__IN_A_N+0X5F<<8 |
761 | savelij | 6158 | ELSE |
6159 | in a,(0x5f) |
||
6160 | ENDIF |
||
6161 | call PRINT_CHISLO_A_ |
||
6162 | ld hl,TXT_RIA_ |
||
6163 | rst 0x18 |
||
6164 | loc_3F7B call GET_KEYS ; |
||
6165 | cp "I" ; IGNORE-RET #1E8E |
||
6166 | ret z |
||
6167 | cp "R" ; RETRY |
||
6168 | jr z,PRESS_RETRY |
||
6169 | cp "A" ; ABORT |
||
6170 | jr nz,loc_3F7B |
||
6171 | call SET_TAPELDERR ; PRESS ABORT |
||
6172 | ld a,7 |
||
6173 | ld (TRD_5D0F),a ; TR-DOS |
||
6174 | jp END_COMAND |
||
623 | savelij | 6175 | |
761 | savelij | 6176 | PRESS_RETRY ld a,(TRD_5CF5) |
6177 | call COM_02 |
||
6178 | call PAUSE_3_C_A |
||
6179 | jp loc_3F13 |
||
623 | savelij | 6180 | |
761 | savelij | 6181 | loc_3FA0 dec d |
6182 | jp z,loc_3F48 ; DISC ERROR |
||
6183 | push de |
||
6184 | call GET_TIME_HEAD ; |
||
6185 | and 2 |
||
6186 | jr nz,loc_3FAD |
||
6187 | inc (hl) |
||
6188 | loc_3FAD call COM_00 |
||
6189 | ld a,(TRD_5CF5) |
||
6190 | call COM_02 |
||
6191 | pop de |
||
6192 | jp loc_3F15 |
||
623 | savelij | 6193 | |
761 | savelij | 6194 | WRITE_SEC ld b,4 |
6195 | loc_3FBC |
||
6196 | IF EMU |
||
6197 | RST32 WWRITE_SEC_,__IN_A_N+0XFF<<8 |
||
6198 | ELSE |
||
6199 | in a,(0xff) |
||
6200 | ENDIF |
||
6201 | and 0xc0 |
||
6202 | jr nz,loc_3FD1 |
||
6203 | inc de |
||
6204 | ld a,e |
||
6205 | or d |
||
6206 | jr nz,loc_3FBC |
||
6207 | djnz loc_3FBC |
||
678 | savelij | 6208 | ret |
623 | savelij | 6209 | |
761 | savelij | 6210 | WR_DATAPORT |
6211 | IF EMU |
||
6212 | RST32 WWRITE_SEC_,__IN_A_N+0XFF<<8 |
||
6213 | ELSE |
||
6214 | in a,(0xff) |
||
6215 | ENDIF |
||
6216 | and 0xc0 |
||
6217 | jr z,WR_DATAPORT |
||
6218 | ret m |
||
6219 | loc_3FD1 |
||
6220 | IF EMU |
||
6221 | RST32 WWRITE_SEC_,__OUTI |
||
6222 | ELSE |
||
6223 | outi |
||
6224 | ENDIF |
||
6225 | jr WR_DATAPORT |
||
623 | savelij | 6226 | |
761 | savelij | 6227 | READ_SEC ld b,4 |
6228 | loc_3FD7 |
||
6229 | IF EMU |
||
6230 | RST32 WREAD_SEC_,__IN_A_N+0XFF<<8 |
||
6231 | ELSE |
||
6232 | in a,(0xff) |
||
6233 | ENDIF |
||
6234 | and 0xc0 |
||
6235 | jr nz,loc_3FEC |
||
6236 | inc de |
||
6237 | ld a,e |
||
6238 | or d |
||
6239 | jr nz,loc_3FD7 |
||
6240 | djnz loc_3FD7 |
||
678 | savelij | 6241 | ret |
623 | savelij | 6242 | |
761 | savelij | 6243 | RD_DATAPORT |
6244 | IF EMU |
||
6245 | RST32 WREAD_SEC_,__IN_A_N+0XFF<<8 |
||
6246 | ELSE |
||
6247 | in a,(0xff) |
||
6248 | ENDIF |
||
6249 | and 0xc0 |
||
6250 | jr z,RD_DATAPORT |
||
6251 | ret m |
||
6252 | loc_3FEC |
||
6253 | IF EMU |
||
6254 | RST32 WINI_RET,__INI |
||
6255 | ELSE |
||
6256 | ini |
||
6257 | ENDIF |
||
6258 | jr RD_DATAPORT |
||
623 | savelij | 6259 | |
6260 | OUT (C),A |
||
6261 | FOR_RET RET |
||
6262 | |||
6263 | IN A,(C) |
||
6264 | RET |
||
6265 | |||
6266 | DUPL 0X3FF8-$,0XFF |
||
6267 | DB "EVODOS" |
||
6268 | DW DATA_VERS |