Rev 627 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
627 | savelij | 1 | |
736 | savelij | 2 | ;LAST UPDATE: 31.12.2016 savelij |
627 | savelij | 3 | |
4 | ; MAIN "DOSI*",0XC6 |
||
5 | ; ORG 0X321C |
||
6 | SETERRAD |
||
7 | ;call из 0X246 |
||
8 | ;вместо 0X21D |
||
9 | LD A,0X0D |
||
10 | LD (0X5D20),A |
||
11 | JP 0X21D |
||
12 | POSIT |
||
13 | ;call из 0X20CC |
||
14 | ;вместо 0X3E44 |
||
15 | PUSH HL |
||
16 | PUSH BC |
||
17 | PUSH AF |
||
18 | PUSH DE |
||
19 | LD A,0XED |
||
20 | LD (0X5C86),A |
||
21 | LD A,0X0C |
||
22 | LD (0X5C8A),A |
||
23 | LD A,E |
||
24 | JR LL323d |
||
25 | LL3235 |
||
26 | LD A,(HL) |
||
27 | CP 0XFF |
||
28 | RET Z |
||
29 | RST 0X10 |
||
30 | INC HL |
||
31 | JR LL3235 |
||
32 | LL323d |
||
33 | LD B,"0" |
||
34 | LL323f SUB 10 |
||
35 | JR C,LL3246 |
||
36 | INC B |
||
37 | JR LL323f |
||
38 | LL3246 |
||
39 | PUSH AF |
||
40 | LD A,B |
||
41 | RST 0X10 |
||
42 | POP AF |
||
43 | ADD A,0X30+10; ADD A,"0"+10 |
||
44 | RST 0X10 |
||
45 | POP DE |
||
46 | POP AF |
||
47 | POP BC |
||
48 | POP HL |
||
49 | EI |
||
50 | JP 0X3E44 ;позиционирование |
||
51 | |||
52 | ;DS 3,0XFF |
||
53 | |||
54 | TFormTS |
||
55 | DB "Format track Side",0 |
||
56 | |||
57 | ;DS 3,0XFF |
||
58 | |||
59 | TFile |
||
60 | DB 0X16,0,0 |
||
61 | DB "File ",34 |
||
62 | DB 0X13,1,0XFF |
||
63 | TExists |
||
64 | DB 0X13,0 |
||
65 | DB 34,0XD |
||
66 | ;DB "Exists... Over write?(Y/N)" |
||
67 | DB "Exists!Overwrite?(Y/N/Add)" |
||
68 | DB 0XFF |
||
69 | TComplete |
||
70 | DB "Complete" |
||
71 | DB 0XD |
||
72 | DB "Name:",0 |
||
73 | TFORMAT |
||
74 | DB "FORMAT: 1 - Normal " |
||
75 | DB 0XD,0X17,0XA |
||
76 | DB " 2 - Turbo" |
||
77 | DB 0XD,0X17,0XA |
||
78 | DB " 3 - Fast turbo" |
||
79 | DB 0 |
||
80 | |||
81 | ;DS 6,0XFF |
||
82 | CHECKON |
||
83 | ;call из 0X20C1 |
||
84 | ;вместо XOR A:INC HL:LD (HL),A ;0X5CD8 |
||
85 | INC HL |
||
86 | LD A,(0X5CE8) |
||
87 | LD (HL),A |
||
88 | XOR A |
||
89 | RET |
||
90 | PRHD1 |
||
91 | ;call из 0X20DE |
||
92 | ;вместо 0X330F |
||
93 | PUSH AF |
||
94 | LD A,"1" |
||
95 | JR LL32f9 |
||
96 | PRHD0 |
||
97 | ;call из 0X20D2 |
||
98 | ;вместо 0X32DD |
||
99 | PUSH AF |
||
100 | LD A,"0" |
||
101 | LL32f9 |
||
102 | PUSH AF |
||
103 | LD A,0XF8 |
||
104 | LD (0X5C86),A |
||
105 | LD A,0X17 |
||
106 | LD (0X5C8A),A |
||
107 | POP AF |
||
108 | RST 0X10 |
||
109 | POP AF |
||
110 | JP 0X1FFD ;форматирование дорожки |
||
111 | LL330a |
||
112 | ;кнопка для Overwrite |
||
113 | CALL 0X1D9F ;очистка низа экрана |
||
114 | LD HL,TFile |
||
115 | CALL LL3235 |
||
116 | CALL LL3329 |
||
117 | LD HL,TExists |
||
118 | CALL LL3235 |
||
119 | LD HL,0X4000 |
||
120 | LL331f DEC HL |
||
121 | LD A,H |
||
122 | OR L |
||
123 | JR NZ,LL331f |
||
124 | CALL 0X1052 ;ввод клавиши с ожиданием |
||
125 | JR LL3338 |
||
126 | LL3329 |
||
127 | LD A,(0X5CF6) |
||
128 | ADD A,"A" |
||
129 | RST 0X10 |
||
130 | LD A,":" |
||
131 | RST 0X10 |
||
132 | LD HL,0X5CDD ;адрес имени |
||
133 | JP 0X2938 ;печать имени с расширением |
||
134 | LL3338 |
||
135 | PUSH AF |
||
136 | CALL 0X1D9F ;очистка низа экрана |
||
137 | POP AF |
||
138 | CP "Y" |
||
139 | RET Z |
||
140 | CP "A";0XD |
||
141 | RET |
||
142 | LL3343 |
||
143 | ;если при записи есть такой файл |
||
144 | ;из 1AC1, SVNASTRDSK |
||
145 | CALL 0X165D ;перенос описателя из буфера в память |
||
146 | LD HL,0X5CE5 |
||
147 | SET 7,(HL) ;включает overwrite=ON |
||
148 | RET |
||
149 | FORMDISK |
||
150 | ;call из 0X1F1B |
||
151 | ;вместо 0X20BD |
||
152 | CALL 0X1D9F ;очистка низа экрана |
||
153 | LD HL,TFormTS |
||
154 | RST 0X18 |
||
155 | CALL 0X20BD ;форматирование диска |
||
156 | CALL 0X1D9F ;очистка низа экрана |
||
157 | LD HL,TComplete |
||
158 | RST 0X18 |
||
159 | RET |
||
160 | TPressR |
||
161 | ;для ASKREPFORM |
||
162 | DB "Press R to repeat";,"."+0X80,0 |
||
163 | DC "." |
||
164 | DB 0 |
||
165 | SAVEFIL |
||
166 | ;jp из 0X290C |
||
167 | ;еще jr ниже |
||
168 | ;вместо 0X1B53 |
||
169 | CALL 0X1D9F ;очистка низа экрана |
||
170 | CALL 0X3E11 ;выборка типа дисковода |
||
171 | RET |
||
172 | SELFORMAT |
||
173 | ;call из 0X1EDD |
||
174 | ;вместо 0X3200 |
||
175 | CALL 0X1D9F ;очистка низа экрана |
||
176 | LD HL,TFORMAT |
||
177 | RST 0X18 |
||
178 | LL337f CALL 0X1052 ;ввод клавиши с ожиданием |
||
179 | CP 0X11 |
||
180 | JR Z,LL3395 |
||
181 | CP 0X12 |
||
182 | JR Z,LL33a1 |
||
183 | CP 0X13 |
||
184 | JR Z,LL33a6 |
||
185 | CP 0 |
||
186 | JP Z,0X01D3 ;п/п завершения |
||
187 | JR LL337f |
||
188 | LL3395 |
||
189 | LD HL,0X1FB9 ;табл.секторов SLOW диска |
||
190 | LL3398 XOR A |
||
191 | LL3399 LD (0X5CE8),A |
||
192 | LD (0X5CE6),HL |
||
193 | JR SAVEFIL |
||
194 | LL33a1 |
||
195 | LD HL,LL33ad ;табл.сект.FAST |
||
196 | JR LL3398 |
||
197 | LL33a6 |
||
198 | LD A,0X01 |
||
199 | LD HL,LL33ad ;табл.сект.FAST |
||
200 | JR LL3399 |
||
201 | LL33ad |
||
202 | ;надо 0X325A |
||
203 | DB 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1 |
||
204 | SUB14 |
||
205 | LD A,L |
||
206 | SUB 0X0E |
||
207 | LD L,A |
||
208 | RET NC |
||
209 | DEC H |
||
210 | RET |
||
211 | |||
212 | ;DS 9,0XFF |
||
213 | |||
214 | PARAMZAG |
||
215 | ;call из 0X18AB |
||
216 | ;вместо a,(0X5CD6) |
||
217 | ;якобы фикс PEEK, но заглючивает Wolfed |
||
218 | LD A,(0X5CE5) |
||
219 | CP "B" |
||
220 | JR Z,LL33e2 |
||
221 | CP "D" |
||
222 | JR Z,LL33e2 |
||
223 | CP "#" |
||
224 | JR Z,LL33e2 |
||
225 | LD A,"C" |
||
226 | ;LD (0X5CE5),A ;зачем??? |
||
227 | LL33e2 LD A,(0X5CD6) |
||
228 | RET |
||
229 | SVNASTRDSK |
||
230 | CALL 0X1CF0 ;поиск файла |
||
231 | CALL Z,LL3343 ;перенос опис.из буф.в пам.и вкл.Overwr=ON |
||
232 | LL33ec CALL 0X0405 ;настр.на диск.Меняет перем-ю с типом диск-да |
||
233 | CALL 0X1AC4 ;проверка =128 файлов |
||
234 | JP 0X1B53 ;запись файла и инфы о нем |
||
235 | SAVER |
||
236 | ;call из 0X1B53 |
||
237 | ;было 0X1B59 |
||
238 | LD HL,0X5CE5 ;тип файла + "file exist" flag |
||
239 | BIT 7,(HL) |
||
240 | RES 7,(HL) |
||
241 | ;JR NZ,LL33ff |
||
242 | JP Z,0X1B59 |
||
243 | LL33ff |
||
244 | CALL LL330a ;Y/N |
||
245 | JP NZ,0X01D3 ;п/п завершения |
||
246 | CP "A" |
||
247 | JP Z,0X1B59 |
||
248 | LD DE,(0X5CD9) |
||
249 | DEC DE |
||
250 | INC D |
||
251 | ;LD A,E |
||
252 | ;OR A |
||
253 | ;JR Z,$+3 |
||
254 | ;INC D |
||
255 | LD A,(0X5CEA) |
||
256 | CP D |
||
257 | JR Z,LL341b |
||
258 | CALL 0X2926 ;стирание файла |
||
259 | JR LL33ec |
||
260 | |||
261 | LL341b LD B,D |
||
262 | LD HL,(0X5C59) |
||
263 | LD (HL),0XAA |
||
264 | INC HL |
||
265 | LD DE,(0X5CD1) |
||
266 | LD (HL),E |
||
267 | INC HL |
||
268 | LD (HL),D |
||
269 | LD C,0X06 |
||
270 | LD HL,(0X5CDB) |
||
271 | LD (0X5CE8),HL |
||
272 | LD HL,(0X5CD7) |
||
273 | LD (0X5CE6),HL |
||
274 | LD DE,(0X5CEB) |
||
275 | CALL 0X1E4D |
||
276 | LD BC,(0X5D1E) |
||
277 | CALL 0X1BBF |
||
278 | CALL 0X1665 |
||
279 | RET |
||
280 | OBROSH |
||
281 | ;jp из 0X3D17 |
||
282 | ;вместо 0X2F69 |
||
283 | EI |
||
284 | JP 0X2F69 |
||
285 | |||
286 | IF 0; IFN 0 |
||
287 | bootkus2 |
||
288 | ; DISP bootst2 |
||
289 | NOP ;посл.байт DEC (IX) |
||
290 | LD A,(IX+0X00) |
||
291 | CP 0XFF |
||
292 | JR NZ,LL345b |
||
293 | LD A,(0XF86F) |
||
294 | LD (IX+0X00),A |
||
295 | LL345b CALL 0XF7FA |
||
296 | CALL 0XF816 |
||
297 | JP 0XF646 |
||
298 | |||
299 | CALL 0XF870 |
||
300 | CALL 0XF826 |
||
301 | INC (IX+0X00) |
||
302 | LD A,(0XF86F) |
||
303 | INC A |
||
304 | CP (IX+0X00) |
||
305 | LD A,(IX+0X00) |
||
306 | JR NZ,LL347d |
||
307 | XOR A |
||
308 | LD (IX+0X00),A |
||
309 | LL347d CALL 0XF7FA |
||
310 | CALL 0XF816 |
||
311 | JP 0XF646 |
||
312 | |||
313 | CALL 0XF870 |
||
314 | CALL 0XF826 |
||
315 | DEC (IX+0X00) |
||
316 | DEC (IX+0X00) |
||
317 | DEC (IX+0X00) |
||
318 | BIT 7,(IX+0X00) |
||
319 | LD A,(IX+0X00) |
||
320 | JR Z,LL34b3 |
||
321 | LL349e LD B,0X03 |
||
322 | ADD A,B |
||
323 | LD B,A |
||
324 | PUSH BC |
||
325 | LD A,(0XF86F) |
||
326 | SUB B |
||
327 | JR C,LL34ac |
||
328 | POP AF |
||
329 | JR LL349e |
||
330 | LL34ac |
||
331 | POP AF |
||
332 | DEC A |
||
333 | DEC A |
||
334 | DEC A |
||
335 | LD (IX+0X00),A |
||
336 | LL34b3 CALL 0XF7FA |
||
337 | CALL 0XF816 |
||
338 | JP 0XF646 |
||
339 | |||
340 | CALL 0XF870 |
||
341 | CALL 0XF826 |
||
342 | INC (IX+0X00) |
||
343 | INC (IX+0X00) |
||
344 | INC (IX+0X00) |
||
345 | LD A,(0XF86F) |
||
346 | SBC A,(IX+0X00) |
||
347 | LD A,(IX+0X00) |
||
348 | JR NC,LL34e1 |
||
349 | LD B,0X03 |
||
350 | LL34d8 SUB B |
||
351 | JR NC,LL34d8 |
||
352 | INC A |
||
353 | INC A |
||
354 | INC A |
||
355 | LD (IX+0X00),A |
||
356 | LL34e1 CALL 0XF7FA |
||
357 | CALL 0XF816 |
||
358 | JP 0XF646 |
||
359 | |||
360 | CALL 0X0D6B |
||
361 | LD A,0X03 |
||
362 | CALL 0XF8CB |
||
363 | JP 0XF556 |
||
364 | |||
365 | LD BC,0XFFFD |
||
366 | LD A,0X07 |
||
367 | OUT (C),A |
||
368 | LD B,0XBF |
||
369 | LD A,0XFF |
||
370 | OUT (C),A ;глушит AY |
||
371 | CALL 0XF870 |
||
372 | LD A,0X07 |
||
373 | LD (0X5C48),A |
||
374 | LD (0X5C8D),A |
||
375 | CPL |
||
376 | LD (0X5D3B),A |
||
377 | LD HL,0X3C00 |
||
378 | LD (0X5C36),HL |
||
379 | LD L,(IX+0X00) |
||
380 | LD H,0X00 |
||
381 | ADD HL,HL |
||
382 | ADD HL,HL |
||
383 | ADD HL,HL |
||
384 | LD DE,0XA000 |
||
385 | ADD HL,DE |
||
386 | LD DE,0XF7F0 |
||
387 | LD BC,0X0008 |
||
388 | LDIR |
||
389 | LD HL,(0XF632) |
||
390 | LD (0X5C3D),HL |
||
391 | LD HL,0XF7EC |
||
392 | LD (0X5C5D),HL |
||
393 | CALL 0X0D6B |
||
394 | DI |
||
395 | POP HL |
||
396 | EXX |
||
397 | POP BC |
||
398 | POP DE |
||
399 | POP HL |
||
400 | POP AF |
||
401 | CALL 0X3D03 |
||
402 | JP PE,0XF73A |
||
403 | LD (0X6F62),HL |
||
404 | LD L,A |
||
405 | LD (HL),H |
||
406 | JR NZ,LL356e |
||
407 | JR NZ,LL3570 |
||
408 | LD (0XD50D),HL |
||
409 | INC A |
||
410 | LD HL,0X5802 |
||
411 | LD DE,0X000A |
||
412 | LL355a DEC A |
||
413 | JR Z,LL356c |
||
414 | ADD HL,DE |
||
415 | DEC A |
||
416 | JR Z,LL356c |
||
417 | ADD HL,DE |
||
418 | DEC A |
||
419 | JR Z,LL356c |
||
420 | INC DE |
||
421 | INC DE |
||
422 | ADD HL,DE |
||
423 | DEC DE |
||
424 | DEC DE |
||
425 | JR LL355a |
||
426 | LL356c |
||
427 | POP DE |
||
428 | RET |
||
429 | LL356e |
||
430 | PUSH HL |
||
431 | EXX |
||
432 | LL3570 POP HL |
||
433 | LD A,0X70 |
||
434 | PUSH HL |
||
435 | POP DE |
||
436 | INC DE |
||
437 | LD BC,0X0007 |
||
438 | LD (HL),A |
||
439 | LDIR |
||
440 | EXX |
||
441 | RET |
||
442 | |||
443 | PUSH HL |
||
444 | EXX |
||
445 | POP HL |
||
446 | LD A,0X42 |
||
447 | PUSH HL |
||
448 | POP DE |
||
449 | INC DE |
||
450 | LD BC,0X0007 |
||
451 | LD (HL),A |
||
452 | LDIR |
||
453 | EXX |
||
454 | RET |
||
455 | |||
456 | PUSH HL |
||
457 | PUSH DE |
||
458 | SBC HL,DE |
||
459 | LD A,(HL) |
||
460 | LD B,0X20 |
||
461 | SBC A,B |
||
462 | JR C,LL35c3 |
||
463 | LD IX,0XF981 |
||
464 | PUSH HL |
||
465 | LD BC,0X0800 |
||
466 | LL35a0 LD A,(HL) |
||
467 | CP (IX+0X00) |
||
468 | JR NZ,LL35a7 |
||
469 | INC C |
||
470 | LL35a7 INC HL |
||
471 | INC IX |
||
472 | DJNZ LL35a0 |
||
473 | LD A,C |
||
474 | CP 0X08 |
||
475 | JR NZ,LL35b4 |
||
476 | POP HL |
||
477 | JR LL35c3 |
||
478 | LL35b4 |
||
479 | EXX |
||
480 | POP HL |
||
481 | LD BC,0X0008 |
||
482 | LDIR |
||
483 | EXX |
||
484 | LD A,(0XF86E) |
||
485 | INC A |
||
486 | LD (0XF86E),A |
||
487 | LL35c3 POP DE |
||
488 | POP HL |
||
489 | RET |
||
490 | |||
491 | NOP |
||
492 | NOP |
||
493 | |||
494 | PUSH AF |
||
495 | PUSH BC |
||
496 | LD B,0XD2 |
||
497 | LL35cc PUSH BC |
||
498 | XOR A |
||
499 | OUT (0XFE),A |
||
500 | RR B |
||
501 | LL35d2 DJNZ LL35d2 |
||
502 | SET 4,A |
||
503 | OUT (0XFE),A |
||
504 | POP BC |
||
505 | DEC B |
||
506 | DJNZ LL35cc |
||
507 | POP BC |
||
508 | POP AF |
||
509 | RET |
||
510 | |||
511 | XOR A |
||
512 | CP (IY+0X47) |
||
513 | JP NZ,0XF556 |
||
514 | CALL 0X0D6E |
||
515 | LD A,0X02 |
||
516 | CALL 0X1601 |
||
517 | XOR A |
||
518 | CALL 0XF8CB |
||
519 | LD A,0X01 |
||
520 | CALL 0X1601 |
||
521 | LD (IY+0X47),0XFE |
||
522 | JP 0XF795 |
||
523 | |||
524 | XOR A |
||
525 | CP (IY+0X47) |
||
526 | JP NZ,0XF556 |
||
527 | CALL 0X0D6E |
||
528 | LD A,0X02 |
||
529 | CALL 0X1601 |
||
530 | LD A,0X01 |
||
531 | CALL 0XF8CB |
||
532 | LD A,0X3F |
||
533 | LD (0XF86E),A |
||
534 | LD BC,0XFFFF |
||
535 | LL361a NOP |
||
536 | DJNZ LL361a |
||
537 | DEC C |
||
538 | JR NZ,LL361a |
||
539 | JP 0XF5B4 |
||
540 | |||
541 | LD DE,0XF8D1 |
||
542 | JP 0X0C0A |
||
543 | |||
544 | DB 0X80 |
||
545 | DB 0X16,0X0A,0X05 |
||
546 | DB "!!! NO PROGRAMS !!!" |
||
547 | DC " "; DB " "+0X80 |
||
548 | |||
549 | DB 0X16,0X0A,0X03,0X10,0X04 |
||
550 | DB "MORE THAN 63 BASIC FILES" |
||
551 | ;than!!! |
||
552 | DC " "; DB " "+0X80 |
||
553 | |||
554 | DB 0X11,0X00,0X10,0X04,0X13,0X01 |
||
555 | DB " -=New ROM boot v1.06=-" |
||
556 | DB 0X06 |
||
557 | DB "Remix by CompoWellcome 05.02.99" |
||
558 | DC "."; DB "."+0X80 |
||
559 | |||
560 | DB 0X10,0X02,0X13,0X01 |
||
561 | DB " INSERT NEW DISK" |
||
562 | DB 0X06 |
||
563 | DB " FOR READING CATALOGUE." |
||
564 | ;catalogue! |
||
565 | DC " "; DB " "+0X80 |
||
566 | |||
567 | DB "boot " |
||
568 | |||
569 | LD HL,0X5AE1 |
||
570 | PUSH HL |
||
571 | POP DE |
||
572 | DEC DE |
||
573 | LD BC,0X001F |
||
574 | LDIR |
||
575 | LD HL,0X5AFF |
||
576 | LD A,(0XF9BA) |
||
577 | OR A |
||
578 | JR Z,LL3703 |
||
579 | LD A,(HL) |
||
580 | AND 0X07 |
||
581 | INC A |
||
582 | CP 0X08 |
||
583 | JR NZ,LL3710 |
||
584 | XOR A |
||
585 | LD (0XF9BA),A |
||
586 | LD A,0X07 |
||
587 | LL3703 LD A,(HL) |
||
588 | AND 0X07 |
||
589 | DEC A |
||
590 | OR A |
||
591 | JR NZ,LL3710 |
||
592 | CPL |
||
593 | LD (0XF9BA),A |
||
594 | LD A,0X01 |
||
595 | LL3710 LD (HL),A |
||
596 | RET |
||
597 | LL3712 |
||
598 | NOP |
||
599 | LD A,0XC3 |
||
600 | LD (0X5CC2),A |
||
601 | LD HL,0XF9E6 |
||
602 | LD (0X5CC3),HL |
||
603 | LD IX,0X2FC1 |
||
604 | CALL 0XFA20 |
||
605 | LD A,0X08 |
||
606 | LD C,0X1F |
||
607 | LD IX,0X2A53 |
||
608 | CALL 0XFA20 |
||
609 | LD (0XF9E7),SP |
||
610 | LD DE,0X0000 |
||
611 | LD IX,0X2740 |
||
612 | CALL 0XFA20 |
||
613 | LD SP,0X0000 |
||
614 | LD IX,0X1FF3 |
||
615 | CALL 0XFA20 |
||
616 | LD IX,0X1FEB |
||
617 | CALL 0XFA20 |
||
618 | LD IX,0X2FC1 |
||
619 | CALL 0XFA20 |
||
620 | LD A,0XC9 |
||
621 | LD (0X5CC2),A |
||
622 | LD A,(0X5CCD) |
||
623 | AND 0X40 |
||
624 | RET |
||
625 | LL3761 |
||
626 | LD A,0X30 |
||
627 | INC A |
||
628 | CP 0X33 |
||
629 | LD (0XFA0A),A |
||
630 | JP NZ,0XF6D0 |
||
631 | LD A,0X30 |
||
632 | LD (0XFA0A),A |
||
633 | JR LL3761 |
||
634 | |||
635 | DI |
||
636 | LD IX,0X0000 |
||
637 | PUSH IX |
||
638 | JP 0X3D2F |
||
639 | DUPL 3,0XFF; DS 3,0XFF |
||
640 | bootln2 := $-bootst2 |
||
641 | ; ENT |
||
642 | ; ORG ROM |
||
643 | ; DISP 0 |
||
644 | ; ORG bootkus2+bootln2 |
||
645 | ENDIF |
||
646 | POSITPP |
||
647 | ;jp из 0X3E4E |
||
648 | PUSH AF |
||
649 | LD A,(0X5CCE) ;0=READ,0XFF=WRITE |
||
650 | OR A |
||
651 | JR Z,POSppRD |
||
652 | POP AF |
||
653 | PUSH BC |
||
654 | LD B,A |
||
655 | IN A,(0X3F) |
||
656 | CP B ;в 0X3E52 это уже есть! |
||
657 | POP BC |
||
658 | JP POSITCONT;0X3E54 |
||
659 | POSppRD |
||
660 | POP AF |
||
661 | IN A,(0X1F) |
||
662 | AND 0X80 |
||
663 | JP POSITCONT;0X3E54 |
||
664 | ;DB 0XFF |
||
665 | |||
666 | IF resident=1; IFN resident |
||
667 | PPNORESC000 |
||
668 | ;если нет резидента 0XC000 |
||
669 | ;jp из 0X3C48 |
||
670 | ;проверка резидента 0XFFF0 |
||
671 | LD HL,0XFFF0 |
||
672 | XOR A |
||
673 | LL379e XOR (HL) |
||
674 | ADC A,H |
||
675 | INC L |
||
676 | JR NZ,LL379e |
||
677 | CP 0X06 ;"RESIDENTPRESENT!" |
||
678 | ;идиотизм - опять 8bit! |
||
679 | JP Z,0XC000 |
||
680 | IF atm-3 |
||
681 | JP 9 |
||
682 | ELSE |
||
683 | XOR A |
||
684 | CALL MEMDRV_ |
||
685 | ;проверка недокументированного резидента 0X5B00 |
||
686 | LD B,0X13 |
||
687 | LD H,0X5B |
||
688 | XOR A |
||
689 | LL37b1 XOR (HL) |
||
690 | ADC A,L |
||
691 | ADC A,(HL) |
||
692 | INC L |
||
693 | DJNZ LL37b1 |
||
694 | CP 0X68 |
||
695 | ;идиотизм - опять 8bit! |
||
696 | ;JP NZ,A7JP9;0X3C4B |
||
697 | LD A,7 |
||
698 | JP NZ,9 |
||
699 | XOR A |
||
700 | LD (0X5B04),A |
||
701 | LD (0X5B0D),A |
||
702 | IF madrom=1; IFN madrom |
||
703 | LD HL,0XFE00 |
||
704 | ELSE |
||
705 | LD HL,0X00C7 |
||
706 | ENDIF |
||
707 | LD (0X5B11),HL |
||
708 | JP 0X5B00 |
||
709 | ENDIF ;~atm3 |
||
710 | ENDIF ;resident |
||
711 | |||
712 | ;DB 0XFF |
||
713 | |||
714 | USEmovSPD |
||
715 | ;call из 0X3EBF |
||
716 | ;вместо 0X3E44 |
||
717 | PUSH HL |
||
718 | PUSH AF |
||
719 | CALL 0X3E08 ;взять время перемещ.головки тек.дисковода |
||
720 | LD B,A |
||
721 | POP AF |
||
722 | POP HL |
||
723 | JP 0X3E44 |
||
724 | NEWER |
||
725 | ;вместо 0X1DCD |
||
726 | LD HL,(0X5D11) |
||
727 | INC HL |
||
728 | LD A,(HL) |
||
729 | CP 0XD |
||
730 | JR Z,NEWRel |
||
731 | CALL 0X1DCD ;NEW new,old |
||
732 | JP L53D |
||
733 | NEWRel |
||
734 | LD HL,TRel |
||
735 | RST 0X18 |
||
736 | JP 0X01D3 ;п/п завершения |
||
737 | TRel |
||
738 | ;DB "Rel: 08.10.99",0XD,0 |
||
739 | DB "Rel: 10.04.06",0XD,0 |
||
740 | |||
741 | ;DS 0X3800-$,0XFF |
||
742 | ;ORG 0X3800 |
||
743 | TCH1 |
||
744 | ;1-ая основная точка входа |
||
745 | LD A,(0X5CF6) |
||
746 | CP 0X03 |
||
747 | JR Z,L1 |
||
748 | LD A,(0X5CCE) |
||
749 | CALL 0X1E36 ;загрузка регистра дорожки |
||
750 | JP TCH1Q;0X1E70 |
||
751 | L1 |
||
752 | PUSH DE |
||
753 | CALL TEST_R |
||
754 | JP NZ,0X3EE1;NO DISK |
||
755 | POP DE |
||
756 | POP HL |
||
757 | POP BC |
||
758 | XOR A |
||
759 | OR B |
||
760 | RET Z |
||
761 | RD_SV |
||
762 | PUSH BC |
||
763 | PUSH HL |
||
764 | CALL SECTR |
||
765 | POP HL |
||
766 | INC H |
||
767 | PUSH HL |
||
768 | LD HL,0X5CF4 |
||
769 | LD A,0X10 |
||
770 | INC (HL) |
||
771 | CP (HL) |
||
772 | JR NZ,LL3838 |
||
773 | LD (HL),0X00 |
||
774 | INC HL |
||
775 | INC (HL) |
||
776 | LL3838 POP HL |
||
777 | POP BC |
||
778 | DJNZ RD_SV |
||
779 | RET |
||
780 | |||
781 | ;Тест наличия Ram-Disk'а |
||
782 | ;точнее, памяти под него |
||
783 | ;для 128K - вроде как дисковод D |
||
784 | TEST_R |
||
785 | DI |
||
786 | IF atm=0 |
||
787 | LD HL,0XFF10 |
||
788 | CALL FPG |
||
789 | OUT (C),L |
||
790 | LD D,(HL) |
||
791 | LD (HL),H |
||
792 | LD A,0X90 |
||
793 | OUT (C),A |
||
794 | LD E,(HL) |
||
795 | LD (HL),L |
||
796 | OUT (C),L |
||
797 | LD B,H |
||
798 | LD A,B |
||
799 | CP (HL) |
||
800 | JR NZ,L2 |
||
801 | LD B,0X7F |
||
802 | LD (HL),D |
||
803 | LD A,0X90 |
||
804 | OUT (C),A |
||
805 | LD (HL),E |
||
806 | OUT (C),L |
||
807 | ENDIF |
||
808 | LD A,0X08 |
||
809 | LD B,0X83 |
||
810 | L2 |
||
811 | PUSH AF |
||
812 | LD (0X5CFD),A |
||
813 | LD A,B |
||
814 | LD (0X5CCB),A |
||
815 | XOR A |
||
816 | OUT (0XFF),A |
||
817 | LD A,(0X5CF6) |
||
818 | ADD A,0X3C |
||
819 | LD (0X5D16),A |
||
820 | OUT (0XFF),A |
||
821 | LD A,0XD0 |
||
822 | OUT (0X1F),A |
||
823 | IF atm=0 |
||
824 | LD A,(F_PAGE) |
||
825 | LD BC,0X7FFD |
||
826 | OUT (C),A |
||
827 | ENDIF |
||
828 | POP AF |
||
829 | RET |
||
830 | SECTR |
||
831 | LD DE,(0X5CF4) |
||
832 | LD A,H |
||
833 | CP 0XBF |
||
834 | JR C,RED_SAV |
||
835 | LD A,0XFF |
||
836 | CALL LL38A6 |
||
837 | LD A,(0X5CCE) |
||
838 | AND A |
||
839 | JR Z,LL38C0 |
||
840 | LD DE,0X5D25 |
||
841 | LD BC,0X0100 |
||
842 | LDIR |
||
843 | LD HL,0X5D25 |
||
844 | LD DE,(0X5CF4) |
||
845 | CALL RED_SAV |
||
846 | LL38A4 LD A,0X00 |
||
847 | LL38A6 EX AF,AF'; EXA |
||
848 | LD A,(0X5CCE) |
||
849 | EX AF,AF'; EXA |
||
850 | LD (0X5CCE),A |
||
851 | PUSH HL |
||
852 | PUSH DE |
||
853 | LD HL,0X5D25 |
||
854 | LD DE,0X000F |
||
855 | CALL RED_SAV |
||
856 | POP DE |
||
857 | POP HL |
||
858 | EX AF,AF' |
||
859 | LD (0X5CCE),A |
||
860 | RET |
||
861 | LL38C0 |
||
862 | PUSH HL |
||
863 | LD HL,0X5D25 |
||
864 | CALL RED_SAV |
||
865 | LD HL,0X5D25 |
||
866 | POP DE |
||
867 | LD BC,0X0100 |
||
868 | LDIR |
||
869 | JR LL38A4 |
||
870 | |||
871 | ;Собственно чтение-запись из/в RAM-DISK |
||
872 | RED_SAV |
||
873 | DI |
||
874 | CALL FPG ;ищем тек.страницу на каждом секторе... |
||
875 | ;BC=7ffd (для ATM BC=fff7) |
||
876 | LD A,D ;лог.дорожка |
||
877 | ;---Если RD расположен в верхних 512К--- |
||
878 | IF 0; IFN 0 |
||
879 | CPL ;растет сверху |
||
880 | RLCA |
||
881 | AND 0XC0 |
||
882 | LD C,A |
||
883 | LD A,D |
||
884 | RRCA |
||
885 | RRCA |
||
886 | AND 0X07 |
||
887 | OR 0X30 |
||
888 | OR C |
||
889 | LD C,0XFD |
||
890 | OUT (C),A |
||
891 | ENDIF |
||
892 | ;----Если RD расположен во всех 896К---- |
||
893 | IF 1; IFN 1 |
||
894 | ; IF atm=1; IFN atm |
||
895 | IF atm=3 |
||
896 | RRCA |
||
897 | RRCA |
||
898 | AND 0X3F |
||
736 | savelij | 899 | ADD A,RAM_DATARAMD;9 ;Savelij RAMDISK |
627 | savelij | 900 | ;OR 64 ;ОЗУ, не 7ffd |
901 | OUT (C),A |
||
902 | LD B,0XF7 |
||
903 | OUT (C),A |
||
904 | ELSE ;atm2 |
||
905 | RRCA |
||
906 | RRCA |
||
907 | AND 0X3F |
||
908 | OR 64 ;ОЗУ, не 7ffd |
||
909 | OUT (C),A |
||
910 | ENDIF |
||
911 | ELSE |
||
912 | CPL ;растет сверху |
||
913 | RRCA |
||
914 | RRCA |
||
915 | AND 0X3F |
||
916 | ;ADD A,8 |
||
917 | PUSH AF |
||
918 | AND 0X27 |
||
919 | OR 0X10 |
||
920 | LD C,A |
||
921 | POP AF |
||
922 | RLCA |
||
923 | RLCA |
||
924 | RLCA |
||
925 | AND 0XC0 |
||
926 | OR C |
||
927 | LD C,0XFD |
||
928 | OUT (C),A |
||
929 | ENDIF |
||
930 | ; ENDIF |
||
931 | ;----Если RD размером 384К (при 512К)--- |
||
932 | IF 0; IFN 0 |
||
933 | RRCA |
||
934 | RRCA |
||
935 | AND 0X3F |
||
936 | ADD A,8 |
||
937 | LD C,A |
||
938 | OR 0X10 |
||
939 | SLA C |
||
940 | SLA C |
||
941 | SLA C |
||
942 | OR C |
||
943 | AND 0XD7 |
||
944 | LD C,0XFD |
||
945 | OUT (C),A |
||
946 | ENDIF |
||
947 | ;--------------------------------------- |
||
948 | |||
949 | LD A,D |
||
950 | RLCA |
||
951 | RLCA |
||
952 | RLCA |
||
953 | RLCA |
||
954 | AND 0X30 |
||
955 | ADD A,E |
||
956 | OR 0XC0 |
||
957 | LD D,A |
||
958 | LD E,0X00 |
||
959 | LD A,(0X5CCE) |
||
960 | AND A |
||
961 | JR NZ,LL38F9 |
||
962 | EX DE,HL |
||
963 | LL38F9 LD BC,0X0100 |
||
964 | LDIR |
||
965 | ; IF atm=1; IFN atm |
||
966 | IF atm=3 |
||
967 | ;адресация по 7FFD (FFF7, F7F7 неизвестно как восстановить) |
||
968 | LD A,0XFF ;7ffd used |
||
969 | LD BC,0XFFF7 |
||
970 | OUT (C),A |
||
971 | LD A,(F_PAGE) |
||
972 | LD BC,0X7FFD |
||
973 | OUT (C),A |
||
974 | ELSE ;atm2 |
||
975 | LD A,(F_PAGE) |
||
976 | AND 0XF |
||
977 | OR 0X10 |
||
978 | LD BC,0X7FFD |
||
979 | OUT (C),A |
||
980 | LD A,(F_PAGE) |
||
981 | AND 0XE0 ;5,7,6 |
||
982 | LD C,A |
||
983 | RRA |
||
984 | RRA |
||
985 | RRA |
||
986 | OR C |
||
987 | AND 0X38 ;5,4,3 |
||
988 | CPL ;7ffd used |
||
989 | LD BC,0XFFF7 |
||
990 | OUT (C),A |
||
991 | ENDIF |
||
992 | ; ELSE |
||
993 | ; LD A,(F_PAGE) |
||
994 | ; LD BC,0X7FFD |
||
995 | ; OUT (C),A |
||
996 | ; ENDIF |
||
997 | EI |
||
998 | RET |
||
999 | |||
1000 | IF resident=1; IFN resident |
||
1001 | MEMDRV_ |
||
1002 | ;Драйвер памяти (используется HONEY резидентом /и не только/) |
||
1003 | ;6.05 %00abcdef |
||
1004 | ;6.11 %bca0?def (7FFD) |
||
1005 | IF atm=1; IFN atm |
||
1006 | IF atm-3 |
||
1007 | XOR 0X7F |
||
1008 | LD BC,0XFFF7 |
||
1009 | OUT (C),A ;7ffd off |
||
1010 | ;а кто будет включать 7ffd обратно? |
||
1011 | ELSE ;atm2 |
||
1012 | PUSH AF |
||
1013 | AND 0XF |
||
1014 | OR 0X10 |
||
1015 | LD BC,0X7FFD |
||
1016 | OUT (C),A |
||
1017 | POP AF |
||
1018 | AND 0XE0 ;5,7,6 |
||
1019 | LD C,A |
||
1020 | RRA |
||
1021 | RRA |
||
1022 | RRA |
||
1023 | OR C |
||
1024 | AND 0X38 ;5,4,3 |
||
1025 | CPL ;7ffd used |
||
1026 | LD BC,0XFFF7 |
||
1027 | OUT (C),A |
||
1028 | ENDIF |
||
1029 | ELSE |
||
1030 | ;AND 0XDF ;Если памяти полметра. |
||
1031 | OR 0X10 |
||
1032 | LD BC,0X7FFD |
||
1033 | OUT (C),A |
||
1034 | ENDIF |
||
1035 | RET |
||
1036 | ENDIF |
||
1037 | |||
1038 | TCH2 |
||
1039 | ;2-ая точка входа - инициализация |
||
1040 | LD (0X5CF6),A |
||
1041 | CP 0X03 |
||
1042 | JP NZ,TCH2Q;0X3DCE |
||
1043 | CALL TEST_R |
||
1044 | JP NZ,0X3EE1 ;ошибку игнорировать?etc |
||
1045 | RET |
||
1046 | |||
1047 | TCH3 |
||
1048 | ;3-я точка входа - форматирование |
||
1049 | CALL 0X1C57 ;установка имени файла |
||
1050 | LD A,(0X5CF6) |
||
1051 | CP 0X03 |
||
1052 | RET NZ |
||
1053 | POP AF |
||
1054 | CALL FILL |
||
1055 | LD DE,0X0000 |
||
1056 | LD (0X5CF4),DE |
||
1057 | LD BC,0X0010 |
||
1058 | FORMT |
||
1059 | PUSH BC |
||
1060 | LD A,0XFF |
||
1061 | LD (0X5CCE),A |
||
1062 | LD HL,0X5D25 |
||
1063 | LD B,0X01 |
||
1064 | CALL RD_SV |
||
1065 | POP BC |
||
1066 | DEC BC |
||
1067 | LD A,B |
||
1068 | OR C |
||
1069 | JR NZ,FORMT |
||
1070 | ;free=... |
||
1071 | ;LD HL,0X05F0 ;для 384К |
||
1072 | LD HL,0X07F0 ;для 512К |
||
1073 | ;LD HL,0X0DF0 ;для 896К |
||
1074 | |||
1075 | LD A,0X16 |
||
1076 | JP 0X1F55 ;продолж.FORMAT после LD HL,2544 |
||
1077 | FILL |
||
1078 | LD HL,0X5D25 |
||
1079 | LD DE,0X5D26 |
||
1080 | LD BC,0X00FF |
||
1081 | LD (HL),B |
||
1082 | LDIR |
||
1083 | RET |
||
1084 | |||
1085 | FPG |
||
1086 | ;Определение текущей PAGE 0-31 памяти |
||
1087 | IF 0; IFN 0 |
||
1088 | PUSH DE |
||
1089 | PUSH HL |
||
1090 | LD DE,(0XC000) |
||
1091 | LD BC,0X7FFD |
||
1092 | LD (0XC000),BC |
||
1093 | LD A,0XD7 |
||
1094 | FPG1 INC A |
||
1095 | BIT 3,A |
||
1096 | JR Z,$+4 |
||
1097 | ADD A,0X38 |
||
1098 | OUT (C),A |
||
1099 | LD HL,(0XC000) |
||
1100 | AND A |
||
1101 | SBC HL,BC |
||
1102 | JR NZ,FPG1 |
||
1103 | LD (0XC000),DE |
||
1104 | LD (F_PAGE),A |
||
1105 | POP HL |
||
1106 | POP DE |
||
1107 | RET |
||
1108 | ELSE |
||
1109 | PUSH DE |
||
1110 | PUSH HL |
||
1111 | LD DE,(0XC000) |
||
1112 | LD HL,(0XFFFD) |
||
1113 | PUSH HL |
||
1114 | IF atm=3; IFN atm |
||
1115 | LD BC,0XFFF7 |
||
1116 | ELSE |
||
1117 | LD BC,0X7FFD |
||
1118 | ENDIF |
||
1119 | LD (0XC000),BC |
||
1120 | LD (0XFFFD),BC |
||
1121 | IF atm=3; IFN atm |
||
1122 | LD A,0X7F+1 ;D6=1 (ОЗУ), D7=0 (no 7ffd) |
||
1123 | ELSE |
||
1124 | XOR A |
||
1125 | ENDIF |
||
1126 | FPG1 |
||
1127 | IF atm=3; IFN atm |
||
1128 | DEC A |
||
1129 | OR A ;CY=0 |
||
1130 | ELSE |
||
1131 | AND 0XC7 |
||
1132 | DEC A |
||
1133 | AND 0XC7 |
||
1134 | OR 16 |
||
1135 | ENDIF |
||
1136 | OUT (C),A |
||
1137 | LD HL,(0XC000) |
||
1138 | SBC HL,BC |
||
1139 | JR NZ,FPG1 |
||
1140 | LD HL,(0XFFFD) |
||
1141 | SBC HL,BC |
||
1142 | JR NZ,FPG1 |
||
1143 | LD (0XC000),DE |
||
1144 | POP HL |
||
1145 | LD (0XFFFD),HL |
||
1146 | IF atm=3; IFN atm |
||
1147 | ;%01abcdef (abcdef inverted) |
||
1148 | ;надо %bca10def |
||
1149 | CPL ;7ffd used |
||
1150 | LD L,A |
||
1151 | AND 0X38 ;5,4,3 |
||
1152 | LD H,A |
||
1153 | RLA |
||
1154 | RLA |
||
1155 | RLA |
||
1156 | OR H |
||
1157 | XOR L |
||
1158 | AND 0XE0 ;5,7,6 |
||
1159 | XOR L |
||
1160 | AND 0XE7 |
||
1161 | OR 0X10 |
||
1162 | ENDIF |
||
1163 | LD (F_PAGE),A |
||
1164 | POP HL |
||
1165 | POP DE |
||
1166 | RET |
||
1167 | ENDIF |
||
1168 | |||
1169 | TCH4 |
||
1170 | ;Установка типов дисководов 80DS (а-ля 5.04) |
||
1171 | ;Убрать,если необходимо автоопределение (а-ля 5.03) |
||
1172 | LD HL,0X8383 |
||
1173 | LD (0X5CC8),HL |
||
1174 | LD (0X5CCA),HL |
||
1175 | |||
1176 | ;Выбор дисковода при сбросе |
||
1177 | LD A,0XF7 |
||
1178 | IN A,(0XFE) |
||
1179 | LD B,0 |
||
1180 | RRA |
||
1181 | JR NC,DRV11 |
||
1182 | INC B |
||
1183 | RRA |
||
1184 | JR NC,DRV11 |
||
1185 | INC B |
||
1186 | RRA |
||
1187 | JR NC,DRV11 |
||
1188 | INC B |
||
1189 | RRA |
||
1190 | JR NC,DRV11 |
||
1191 | IF cmos=1; IFN cmos |
||
1192 | LD BC,0XEFF7 |
||
1193 | ;IN A,(C) ;если есть чтение из EFF7 |
||
1194 | ;PUSH AF |
||
1195 | LD A,0X80 |
||
1196 | OUT (C),A |
||
1197 | LD B,0XDF,A,0X10 |
||
1198 | OUT (C),A |
||
1199 | LD B,0XBF |
||
1200 | IN A,(C) |
||
1201 | EX AF,AF'; EXA |
||
1202 | LD B,0XEF |
||
1203 | XOR A |
||
1204 | ;POP AF |
||
1205 | OUT (C),A |
||
1206 | EX AF,AF'; EXA |
||
1207 | LD B,A |
||
1208 | ELSE |
||
1209 | JR L3 |
||
1210 | ENDIF |
||
1211 | DRV11 |
||
1212 | LD A,B |
||
1213 | LD (0X5CF6),A |
||
1214 | LD (0X5D19),A |
||
1215 | OR 0X3C |
||
1216 | LD (0X5D16),A |
||
1217 | OUT (0XFF),A |
||
1218 | L3 JP 0X106E ;вывод цветных полос для заставки |
||
1219 | IF 0; IFN 0 |
||
1220 | DUPL 0X3ADB-$,0XFF; DS 0X3ADB-$,0XFF |
||
1221 | ; ORG 0X3ADB |
||
1222 | BOOTER |
||
1223 | ;выполнялка ком."8" |
||
1224 | ;вместо 0X29AE |
||
1225 | LD BC,0XF4FF |
||
1226 | RST 0X20 |
||
1227 | DW 0X1EAF ;CLEAR_RUN |
||
1228 | LD A,1 |
||
1229 | RST 0X20 |
||
1230 | ;DW 0X229C ;нет такой точки! |
||
1231 | DW 0X229B ;border и 23624 |
||
1232 | DI |
||
1233 | LD HL,bootkus1;0XE00 |
||
1234 | LD DE,0XF500 |
||
1235 | LD BC,bootln1;0X1F5 |
||
1236 | PUSH DE |
||
1237 | LDIR |
||
1238 | LD HL,bootkus2;0X344D |
||
1239 | LD BC,$;bootln2+1;0X334 |
||
1240 | LDIR |
||
1241 | SET 3,(IY+0X01) |
||
1242 | RET |
||
1243 | ENDIF |
||
1244 | MOVEPP |
||
1245 | LD HL,(0X5CE1) |
||
1246 | LL3b03 LD A,(HL) |
||
1247 | CP 0X00 |
||
1248 | RET Z |
||
1249 | CP 0X01 |
||
1250 | JR Z,LL3b0e |
||
1251 | CALL LL3b14 |
||
1252 | LL3b0e LD DE,0X0010 |
||
1253 | ADD HL,DE |
||
1254 | JR LL3b03 |
||
1255 | LL3b14 PUSH HL |
||
1256 | LD DE,0X000D |
||
1257 | ADD HL,DE |
||
1258 | LD C,(HL) |
||
1259 | INC HL |
||
1260 | LD E,(HL) |
||
1261 | INC HL |
||
1262 | LD D,(HL) |
||
1263 | LD HL,(0X5CD7) |
||
1264 | AND A |
||
1265 | SBC HL,DE |
||
1266 | ADD HL,DE |
||
1267 | JR Z,LL3b56 |
||
1268 | LD (0X5CD5),DE |
||
1269 | LD A,C |
||
1270 | LD (0X5CD3),A |
||
1271 | CALL 0X17A5 ;перемещение файла |
||
1272 | LL3b32 POP HL |
||
1273 | PUSH HL |
||
1274 | LD DE,(0X5CDF) |
||
1275 | LD BC,0X0010 |
||
1276 | LDIR |
||
1277 | LD (0X5CDF),DE |
||
1278 | EX DE,HL; EXD |
||
1279 | LD DE,(0X5CDD) |
||
1280 | DEC HL |
||
1281 | LD (HL),D |
||
1282 | DEC HL |
||
1283 | LD (HL),E |
||
1284 | LD HL,(0X5CD7) |
||
1285 | LD (0X5CDD),HL |
||
1286 | LD HL,0X5CE3 |
||
1287 | INC (HL) |
||
1288 | POP HL |
||
1289 | RET |
||
1290 | LL3b56 |
||
1291 | LD A,C |
||
1292 | AND 0X0F |
||
1293 | ADD A,E |
||
1294 | BIT 4,A |
||
1295 | RES 4,A |
||
1296 | LD E,A |
||
1297 | JR Z,$+3 |
||
1298 | INC D |
||
1299 | LD A,C |
||
1300 | |||
1301 | ; RRC A |
||
1302 | ; RRC A |
||
1303 | ; RRC A |
||
1304 | ; RRC A |
||
1305 | REPT 4 |
||
1306 | DB 0XCB |
||
1307 | RRCA |
||
1308 | ENDM |
||
1309 | |||
1310 | AND 0X0F |
||
1311 | ADD A,D |
||
1312 | LD D,A |
||
1313 | LD (0X5CD7),DE |
||
1314 | JR LL3b32 |
||
1315 | |||
1316 | ;DS 0X3B80-$,0XFF |
||
1317 | GETCOM |
||
1318 | ;jp из 0X2154 |
||
1319 | ;вместо 0X1D90 - зачем??? |
||
1320 | RES 5,(IY+0X01) |
||
1321 | RST 0X20 |
||
1322 | DW 0X15D4 ;WAIT_KEY |
||
1323 | CP 7 |
||
1324 | JR NZ,LL3bad |
||
1325 | LD HL,0X00C8 |
||
1326 | LD D,H |
||
1327 | LD E,(IY-0X01) |
||
1328 | RST 0X20 |
||
1329 | DW 0X3B5 ;beep |
||
1330 | CALL 0X212A ;восстановление командной строки |
||
1331 | LD HL,(0X5C59) |
||
1332 | LD A,0X0D |
||
1333 | LD BC,0 |
||
1334 | CPIR |
||
1335 | DEC HL |
||
1336 | LD (0X5C5B),HL |
||
1337 | INC HL |
||
1338 | INC HL |
||
1339 | LD (HL),0X80 |
||
1340 | LL3baa RST 0X20 |
||
1341 | DW 0X15D4 ;WAIT_KEY |
||
1342 | LL3bad |
||
1343 | PUSH AF |
||
1344 | LD HL,0X00C8 |
||
1345 | LD D,H |
||
1346 | LD E,(IY-0X01) |
||
1347 | RST 0X20 |
||
1348 | DW 0X3B5 ;beep |
||
1349 | POP AF |
||
1350 | CP 0X18 |
||
1351 | JR NC,LL3bca |
||
1352 | CP 0X07 |
||
1353 | JR C,LL3bca |
||
1354 | CP 0X10 |
||
1355 | JR C,LL3bcf |
||
1356 | RST 0X20 |
||
1357 | DW 0XF58 ;в ED_LOOP: sym>=16 |
||
1358 | JR LL3baa |
||
1359 | LL3bca |
||
1360 | RST 0X20 |
||
1361 | DW 0XF81 ;ADD_CHAR |
||
1362 | JR LL3baa |
||
1363 | LL3bcf |
||
1364 | CP 0X07 |
||
1365 | JR Z,LL3baa |
||
1366 | CP 0X0D |
||
1367 | RET Z |
||
1368 | CP 0X0A |
||
1369 | JR Z,LL3baa |
||
1370 | CP 0X0B |
||
1371 | JR Z,LL3baa |
||
1372 | RST 0X20 |
||
1373 | DW 0XF92 ;ED_KEYS |
||
1374 | JR LL3baa |
||
1375 | |||
1376 | ;DS 0X3BF0-$,0XFF |
||
1377 | WHOD |
||
1378 | ;вход в TR-DOS |
||
1379 | ;jp из 0X3D35 |
||
1380 | ;вместо 0X239 |
||
1381 | CALL 0X1D9F ;очистка низа экрана |
||
1382 | JP 0X239 ;вход в командный процессор |
||
1383 | |||
1384 | ;DS 0X3C00-$,0XFF |
||
1385 | ;тут стоят дубли 0X3D00/3D03 |
||
1386 | ;дубля 0X3D13 нет и не было |
||
1387 | ;ORG 0X3C10 |
||
1388 | OUTDE |
||
1389 | LD C,D |
||
1390 | OUT (C),E |
||
1391 | RET |
||
1392 | INED |
||
1393 | LD C,D |
||
1394 | IN E,(C) |
||
1395 | RET |
||
1396 | JPWRITE |
||
1397 | LD C,0X7F |
||
1398 | JP 16314 |
||
1399 | JPREAD |
||
1400 | LD C,0X7F |
||
1401 | JP 16341 |