ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt
SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA | SP 830 | PCS 1-QR6000
ZPS | Technické prostředky | Programové vybavení | Dokumentace
1 PAGE 66
MACRO-80 3.44 09-Dec-81 PAGE 1
2
3 ;*******************************************************
4 ;* *
5 ;* E P R O M B I O S p r o Z P S 2 *
6 ;* *
7 ;*******************************************************
8 ;
9 ; create and modify Jiri Hlavac
10 ; 30.3.1988
11 ;
12 ;Kod celeho modulu BIOS je ulozen v EPROM. Aktivuje
13 ;se bud pres rozskokovou tabulku ulozenou v oblasti
14 ;vyhrazene dle konvenci CPM za modulem BDOS nebo
15 ;pres rozskokovou tabulku v EPROM (od adresy 1300H)
16 ;Pro realizaci nekterych funkci je pouzito sluzeb
17 ;MONITORU verze 5 pro ZPS2.
18
19 .z80
20 ;******************************************************
21 ; kontrolni hodnoty:
22 17DA lastEB EQU $next - 1 ;posledni adresa v EPROM
23 04DB longEB EQU $next - ebiosb ;delka EBIOSU
24 41F2 lastvar EQU $nextv - 1 ;posledni adresa promennych
25 ;(max 41FFH)
26 ;******************************************************
27
28 1300 epromb EQU 1300H ;adresa zacatku EPROM
29 41D0 varb EQU 41D0H ;adresa promennych BIOSu
30 4280 buff EQU 4280H ;implicitni buffer
31 4300 ramb EQU 4300H ;zacatek pouzitelne RAM
32 4400 TPA EQU 4400H ;zacatek uzivatelske oblasti
33
34 1300 ebiosb EQU epromb ;adresa zacatku BIOS v EPROM
35 F000 bdosb EQU 0F000H ;pocatecni adresa zavadeni systemu
36 FE00 biosb EQU bdosb + 0E00H ;pocatecni adresa BIOSu
37 1300 ebios EQU ebiosb ;vstupni bod EPROM BIOS
38 0005 bdos EQU 5 ;vstupni bod sluzeb BD0S
39 0100 mon EQU 100H ;tab. sluzeb MONITORU ZPS2
40 FE33 dphtab EQU biosb + 33H ;diskova tabulka BIOSu
41 0000 sysdisk EQU 0 ;cislo systemoveho disku
42 ;******************************************************
43 000D cr EQU 13
44 000A lf EQU 10
45
46 0000' ASEG
47 ORG epromb
48
49 ;rozskokova tabulka sluzeb EBIOS:
50 1300 C3 1333 JP init ;inicializace
51 1303 C3 1389 JP wboot ;wboot
52 1306 C3 0112 JP const ;status konzoly
53 1309 C3 0103 JP conin ;vstup z konzoly
54 130C C3 0109 JP conout ;vystup na konzolu
55 130F C3 010F JP list ;tiskarna
56 1312 C3 010C JP punch ;derovac
57 1315 C3 0106 JP reader ;smamc
58 1318 C3 148E jp home ;stopa 0
59 131B C3 1474 jp seldsk ;vyber disk
60 131E C3 1491 jp settrk ;vyber stopu
61 1321 C3 1463 jp setsec ;vyber sektor
62 1324 C3 146E jp setdma ;nastav adresu DMA
MACRO-80 3.44 09-Dec-81 PAGE 1-1
63 1327 C3 149D jp read ;cti sektor
64 132A C3 14A7 jp write ;zapis sektor
65 132D C3 1461 jp listst ;status tiskarny
66 1330 C3 1468 jp sectran ;transforamce sektoru
67
68 ;***********************************************
69 ;pouziti rutin MONITORU pro nediskove sluzby
70
71 0112 const EQU mon + 12H ;console status
72 0103 conin EQU mon + 3 ;console input
73 0109 conout EQU mon + 9 ;console output
74 010F list EQU mon + 0FH ;listing
75 010C punch EQU mon + 0CH ;derovac
76 0106 reader EQU mon + 6 ;sniaac
77 0139 retmon EQU mon + 39H ;navrat do aonitoru
78 ;*****************************************
79 1333 init: ;inicializace celeho diskoveho
80 ;systemu, vraci se do volajiciho
81 ;programu (normalni return)
82 1333 CD 14B1 CALL initrpd ;inicializace radice
83 1336 CD 1395 CALL loaddos ;zavedeni systemu
84 1339 CD 1404 CALL setsyspa ;nastaveni syst. parametru
85 133C 21 134A LD HL,signon ;a vypis uvodniho hlaseni
86
87 133F pmsg: ;vypis hlaseni od adresy
88 133F 7E LD A,(HL) ;v CHL3 do konc.bytu 88H
89 1340 23 INC HL
90 1341 B7 OR A
91 1342 C8 RET Z
92 1343 4F LD C,A
93 1344 CD 0109 CALL conout
94 1347 C3 133F JP pmsg
95 ;****************************************
96 134A signon:
97 134A 0D 0A 5A 41 DEFB CR,LF,'ZAVEDEN DISKOVY SYSTEM'
98 134E 56 45 44 45
99 1352 4E 20 44 49
100 1356 53 4B 4F 56
101 135A 59 20 53 59
102 135E 53 54 45 4D
103 1362 0D 0A 56 4F DEFB CR,LF,'VOLNA RAM OD ADRESY 4400H DO EFFFH'
104 1366 4C 4E 41 20
105 136A 52 41 4D 20
106 136E 4F 44 20 41
107 1372 44 52 45 53
108 1376 59 20 34 34
109 137A 30 30 48 20
110 137E 44 4F 20 45
111 1382 46 46 46 48
112 1386 0D 0A 00 DEFB CR,LF,0
113 ;****************************************
114 1389 wboot: ;provadi reinicializaci diskoveho
115 ;systemu, po skonceni se vraci
116 ;do MONITORU (vzdy)
117 1389 31 4040 LD SP,4040H ;nastaveni zosobniku
118 138C CD 1395 CALL loaddos ;zavedeni systemu
119 138F CD 1404 CALL setsyspa ;nastaveni syst. paraaetru
120 1392 C3 0139 JP retmon ;predani rizeni MONITORu
121 ;***************************************
122 1395 loaddos:
123 1395 0E 00 LD C,sysdisk ;nastaveni cisls disku CALL seldsk
124 1397 CD 1474 CALL seldsk
MACRO-80 3.44 09-Dec-81 PAGE 1-2
125 139A C2 1418 JP NZ,loaderr
126 139D CD 148E CALL home ;nastaveni stopy 0
127 13A0 C2 1418 JP NZ,loaderr
128 13A3 21 F000 LD HL,bdosb ;pocatecni adresa
129 13A6 06 09 LD B,9 ;pocet sektoru
130 13A8 0E 12 LD C,18 ;pocatecni sektor
131 13AA CD 13D9 CALL rdloop ;precteni stopy 0
132 13AD 0E 01 LD C,1 ;nastaveni stopy 1
133 13AF CD 1491 CALL settrk
134 13B2 C2 1418 JP NZ,loaderr
135 13B5 21 F480 LD HL,bdosb + 480H
136 13B8 06 14 LD B,20
137 13BA 0E 01 LD C,1
138 13BC CD 13D9 CALL rdloop ;precteni stopy 1
139 13BF 11 13D3 LD DE,synseq ;verifikace synchrosekvence
140 13C2 21 F000 LD HL,bdosb ;na zacatku BDOSu
141 13C5 06 06 LD B,6
142 13C7 1A verif: LD A,(DE)
143 13C8 BE CP (HL)
144 13C9 C2 141E JP NZ,badsys
145 13CC 23 INC HL
146 13CD 13 INC DE
147 13CE 05 DEC B
148 13CF C2 13C7 JP NZ,verif
149 13D2 C9 RET
150
151 13D3 5A 50 53 2D synseq: DEFB 'ZPS-2 ' ;synchrosekvence
152 13D7 32 20
153 ;*****************************************************
154 13D9 rdloop: ; ctini bloku sektoru
155 ; [HL] := pocatecni adresa
156 ; [C] := prvni sektor
157 ; [B] := pocet sektoru
158 13D9 79 LD A,C
159 13DA 80 ADD A,B
160 13DB 47 LD B,A ;zarazka:=max.sektor + 1
161 13DC 16 03 LD D,3 ;pocet pruchodu
162 13DE D5 rd1: PUSH DE
163 13DF C5 PUSH BC
164 13E0 E5 PUSH HL
165 13E1 E5 rd2: PUSH HL
166 13E2 C5 PUSH BC
167 13E3 CD 152F CALL .read ;precteni sektoru
168 13E6 C2 1418 JP NZ,loaderr
169 13E9 C1 POP BC
170 13EA E1 POP HL
171 13EB 11 0180 LD DE,180H ;zvyseni ukazatele adres
172 13EE 19 ADD HL,DE ;v [HL] o 3 * 80H
173 13EF 3E 03 LD A,3
174 13F1 81 ADD A,C ;zvyseni cisla sektoru
175 13F2 4F LD C,A ;v [C] o 3
176 13F3 B8 CP B
177 13F4 DA 13E1 JP C,rd2 ;test konce pruchodu
178 13F7 E1 POP HL
179 13F8 C1 POP BC
180 13F9 11 0080 LD DE,80H ;priprava dalsiho pruchodu
181 13FC 19 ADD HL,DE
182 13FD 0C INC C
183 13FE D1 POP DE
184 13FF 15 DEC D ;snizsni pocitadla
185 1400 C2 13DE JP NZ,rd1 ;skok na dalsi pruchod
186 1403 C9 RET
MACRO-80 3.44 09-Dec-81 PAGE 1-3
187 ;****************************************
188 1404 setsyspa:
189 1404 0E 08 LD C,8 ;nastaveni RAMTOP dle
190 1406 11 EFFF LD DE,bdosb - 1 ;konvenci HONITORu
191 1409 CD 011E CALL mon + 1EH
192 140C 0E 20 LD C,32 ;nastaveni uzivatele 0
193 140E 1E 00 LD E,0
194 1410 CD 0005 CALL bdos
195 1413 0E 0D LD C,13 ;inicializace diskoveho systemu
196 1415 C3 0005 JP bdos ;a return
197 ;****************************************
198 1418 loaderr:
199 1418 21 1441 LD HL,errmsg
200 141B C3 1421 JP wrmsg
201 141E badsys:
202 141E 21 1427 LD HL,badmsg
203 1421 CD 133F wrmsg: CALL pmsg
204 1424 C3 0139 JP retmon
205
206 1427 0D 0A 53 50 badmsg: DEFB cr,lf,'SPATNA SYSTEMOVA DISKETA'
207 142B 41 54 4E 41
208 142F 20 53 59 53
209 1433 54 45 4D 4F
210 1437 56 41 20 44
211 143B 49 53 4B 45
212 143F 54 41
213 1441 0D 0A 4E 45 errmsg: DEFB CR,LF,'NELZE ZAVEST DISKOVY SYSTEM'
214 1445 4C 5A 45 20
215 1449 5A 41 56 45
216 144D 53 54 20 44
217 1451 49 53 4B 4F
218 1455 56 59 20 53
219 1459 59 53 54 45
220 145D 4D
221 145E 0D 0A 00 DEFB CR,LF,0
222
223 ;****************************************
224 ;.XLIST
225 .8080
226 ;***************************************
227 1461 listst:
228 1461 AF XRA A
229 1462 C9 RET
230
231 ;***************************************
232 1463 setsec:
233 1463 79 MOV A,C
234 1464 32 41D0 STA SECTOR
235 1467 C9 RET
236
237 ;****************************************
238 1468 sectran:
239 1468 EB XCHG
240 1469 09 DAD B
241 146A 6E MOV L,M
242 146B 26 00 MVI H,0
243 146D C9 RET
244
245 ;****************************************
246 146E setdma:
247 146E 60 MOV H,B
248 146F 69 MOV L,C
MACRO-80 3.44 09-Dec-81 PAGE 1-4
249 1470 22 41D1 SHLD POINTR
250 1473 C9 RET
251
252 ;****************************************
253 1474 seldsk:
254 1474 21 0000 LXI H,0
255 1477 79 MOV A,C
256 1478 FE 02 CPI 2
257 147A D0 RNC
258 147B 6F MOV L,A
259 147C 29 DAD H
260 147D 29 DAD H
261 147E 29 DAD H
262 147F 29 DAD H
263 1480 11 FE33 LXI D,DPHTAB
264 1483 19 DAD D
265 1484 E5 PUSH H
266 1485 CD 14EE call .select
267 1488 E1 POP H
268 1489 C8 RZ
269 148A 21 0000 LXI H,0
270 148D C9 RET
271
272 ;****************************************
273 148E home:
274 148E C3 14C7 jmp .home
275
276 ;****************************************
277 1491 settrk:
278 1491 21 0032 lxi h,50
279 1494 2B dly: dcx h
280 1495 7D mov a,l
281 1496 B4 ora h
282 1497 C2 1494 jnz dly
283 149A C3 1511 jmp .seek
284
285 ;****************************************
286 149D read:
287 149D 2A 41D1 LHLD POINTR
288 14A0 3A 41D0 LDA SECTOR
289 14A3 4F MOV C,A
290 14A4 C3 152F jmp .read
291
292 ;****************************************
293 14A7 write:
294 14A7 2A 41D1 LHLD POINTR
295 14AA 3A 41D0 LDA SECTOR
296 14AD 4F MOV C,A
297 14AE C3 1578 jmp .write
298
299 ;********************************************************
300 ;* *
301 ;* Ovladac floppy B" SS/SD pres radic RPD-1A+RPD-1B *
302 ;* *
303 ;********************************************************
304
305 ;**************************************
306 ; DEFINICE
307 ;**************************************
308
309 0025 CSRA EQU 25H
310 0008 RAM EQU 8
MACRO-80 3.44 09-Dec-81 PAGE 1-5
311 0004 RDM EQU 4
312 0002 WE EQU 2
313 0001 RE EQU 1
314
315 003C CSRB EQU 3CH
316 0080 HLR EQU 128
317 0040 STR EQU 64
318 0020 T00 EQU 32
319 0004 RDY EQU 4
320 0002 WF EQU 2
321 0008 T43 EQU 8
322 0004 UP EQU 4
323 0000 DOWN EQU 0
324 0002 FR EQU 2
325
326 0020 CNT0 EQU 20H
327 0021 CNT1 EQU 21H
328 0022 CNT2 EQU 22H
329 000C CNT0M EQU 0CH
330 005E CNT1M EQU 5EH
331 000D CNT2M EQU 0DH
332 0023 MD53 EQU 23H
333
334 003E STEPR EQU 3EH
335 003D HLOADR EQU 3DH
336 0024 RDATA EQU 24H
337 0024 WDATA EQU 24H
338
339 0002 INITF EQU 2
340 002B NT43 EQU 43
341 0005 RETRY EQU 5
342 00FE AMMRK EQU 0FEH
343 00FB DAMMRK EQU 0FBH
344
345 ;**************************************
346 ; CHARAKTERISTIKY JEDNOTKY
347 ;**************************************
348 004D TRKS EQU 77
349 001A SECTRS EQU 26
350 0080 SECLEN EQU 128
351 0002 NDISKS EQU 2
352
353 ;**************************************
354 ; KONSTATNTY 8253
355 ;**************************************
356 C4FC TDAM EQU 0C4FCH
357 0060 AML1 EQU 60H
358 00D2 TAML EQU 0D2H
359 00B8 TAMH EQU 0B8H
360 0007 AML EQU 7
361 0041 DLENL EQU 41H
362 0000 DLENH EQU 0
363 0011 DLWL EQU 11H
364 0000 DLWH EQU 0
365 20FC TAW EQU 20FCH
366 0000 SLID EQU 0
367
368 ;**************************************
369 14B1 initrpd:
370 14B1 AF XRA A
371 14B2 D3 25 OUT CSRA
372 14B4 D3 3C OUT CSRB
MACRO-80 3.44 09-Dec-81 PAGE 1-6
373 14B6 3E 0C MVI A,CNT0M
374 14B8 D3 23 OUT MD53
375 14BA 3E 5E MVI A,CNT1M
376 14BC D3 23 OUT MD53
377 14BE 3E 0D MVI A,CNT2M
378 14C0 D3 23 OUT MD53
379 14C2 0E 00 MVI C,0
380 14C4 CD 14EE CALL .SELECT
381
382 ;**************************************
383 14C7 .HOME:
384 14C7 CD 14F9 CALL SELACT
385 14CA CD 16D8 CALL CTRK
386 14CD 36 00 MVI M,0
387 14CF 01 0402 LXI B,UP SHL 8+INITF
388 14D2 CD 15DD CALL STEP
389 14D5 1E 50 MVI E,TRKS+INITF+1
390 14D7 HOME05:
391 14D7 DB 3C IN CSRB
392 14D9 E6 20 ANI T00
393 14DB C2 150F JNZ FNOK
394 14DE 1D DCR E
395 14DF CA 14EB JZ HOME10
396 14E2 01 0001 LXI B,DOWN SHL 8+1
397 14E5 CD 15DD CALL STEP
398 14E8 C3 14D7 JMP HOME05
399 14EB HOME10:
400 14EB 2F CMA
401 14EC HOME15:
402 14EC B7 ORA A
403 14ED C9 RET
404
405 ;**************************************
406 14EE .SELECT:
407 14EE 79 MOV A,C
408 14EF FE 02 CPI NDISKS
409 14F1 D2 14EC JNC HOME15
410 14F4 32 41F2 STA DRVBAK
411 14F7 AF XRA A
412 14F8 C9 RET
413 14F9 SELACT:
414 14F9 3A 41F2 LDA DRVBAK
415 14FC 4F MOV C,A
416 14FD 3A 41D3 LDA DRVNO
417 1500 B9 CMP C
418 1501 CA 150A JZ SAME
419 1504 3E 96 MVI A,150
420 1506 32 41F0 STA CON
421 1509 79 MOV A,C
422 150A SAME:
423 150A 32 41D3 STA DRVNO
424 150D D3 3C OUT CSRB
425 150F FNOK:
426 150F AF XRA A
427 1510 C9 RET
428
429 ;**************************************
430 1511 .SEEK:
431 1511 C5 PUSH B
432 1512 CD 14F9 CALL SELACT
433 1515 C1 POP B
434 1516 79 MOV A,C
MACRO-80 3.44 09-Dec-81 PAGE 1-7
435 1517 FE 4D CPI TRKS
436 1519 D2 14EB JNC HOME10
437 151C CD 16D8 CALL CTRK
438 151F 91 SUB C
439 1520 C8 RZ
440 1521 71 MOV M,C
441 1522 06 00 MVI B,DOWN
442 1524 F2 152B JP SEEK05
443 1527 06 04 MVI B,UP
444 1529 2F CMA
445 152A 3C INR A
446 152B SEEK05:
447 152B 4F MOV C,A
448 152C C3 15DD JMP STEP
449
450 ;**************************************
451 152F .READ:
452 152F E5 PUSH H
453 1530 C5 PUSH B
454 1531 CD 14F9 CALL SELACT
455 1534 C1 POP B
456 1535 E1 POP H
457 1536 79 MOV A,C
458 1537 E5 PUSH H
459 1538 CD 171D CALL PREPAM
460 153B E1 POP H
461 153C CD 15F2 CALL STORE
462 153F 2B DCX H
463 1540 0E 05 MVI C,RETRY
464 1542 EB XCHG
465 1543 READ03:
466 1543 C5 PUSH B
467 1544 D5 PUSH D
468 1545 READ05:
469 1545 21 C4FC LXI H,TDAM
470 1548 CD 1648 CALL RDAM
471 154B D2 155E JNC READ15
472 154E READ07:
473 154E D1 POP D
474 154F C1 POP B
475 1550 FE 01 CPI 1
476 1552 CA 1574 JZ READ20
477 1555 READ10:
478 1555 0D DCR C
479 1556 3E 02 MVI A,2
480 1558 CA 1574 JZ READ20
481 155B C3 1543 JMP READ03
482 155E READ15:
483 155E D1 POP D
484 155F D5 PUSH D
485 1560 CD 16AE CALL RDDAM
486 1563 DA 154E JC READ07
487 1566 E1 POP H
488 1567 E5 PUSH H
489 1568 06 83 MVI B,SECLEN+3
490 156A CD 173F CALL CRC
491 156D 7B MOV A,E
492 156E B2 ORA D
493 156F D1 POP D
494 1570 C1 POP B
495 1571 C2 1555 JNZ READ10
496 1574 READ20:
MACRO-80 3.44 09-Dec-81 PAGE 1-8
497 1574 B7 ORA A
498 1575 C3 1617 JMP RECALL
499
500 ;**************************************
501 1578 .WRITE:
502 1578 E5 PUSH H
503 1579 C5 PUSH B
504 157A CD 14F9 CALL SELACT
505 157D C1 POP B
506 157E E1 POP H
507 157F 79 MOV A,C
508 1580 E5 PUSH H
509 1581 CD 171D CALL PREPAM
510 1584 CD 16D8 CALL CTRK
511 1587 FE 2B CPI NT43
512 1589 3A 41D3 LDA DRVNO
513 158C DA 1591 JC WRIT02
514 158F F6 08 ORI T43
515 1591 WRIT02:
516 1591 F6 02 ORI FR
517 1593 D3 3C OUT CSRB
518 1595 E6 FD ANI FR XOR 0FFH
519 1597 D3 3C OUT CSRB
520 1599 D3 3D OUT HLOADR
521 159B E1 POP H
522 159C CD 15F2 CALL STORE
523 159F E5 PUSH H
524 15A0 2B DCX H
525 15A1 06 81 MVI B,SECLEN+1
526 15A3 CD 173F CALL CRC
527 15A6 72 MOV M,D
528 15A7 23 INX H
529 15A8 73 MOV M,E
530 15A9 E1 POP H
531 15AA 11 FFFB LXI D,-5
532 15AD 19 DAD D
533 15AE EB XCHG
534 15AF 0E 05 MVI C,RETRY
535 15B1 WRIT03:
536 15B1 C5 PUSH B
537 15B2 D5 PUSH D
538 15B3 WRIT05:
539 15B3 21 20FC LXI H,TAW
540 15B6 CD 1648 CALL RDAM
541 15B9 D2 15CC JNC WRIT15
542 15BC WRIT10:
543 15BC D1 POP D
544 15BD C1 POP B
545 15BE FE 01 CPI 1
546 15C0 CA 1574 JZ READ20
547 15C3 0D DCR C
548 15C4 3E 02 MVI A,2
549 15C6 CA 1574 JZ READ20
550 15C9 C3 15B1 JMP WRIT03
551 15CC WRIT15:
552 15CC D1 POP D
553 15CD D5 PUSH D
554 15CE CD 16C7 CALL WRDATA
555 15D1 DA 15BC JC WRIT10
556 15D4 D1 POP D
557 15D5 C1 POP B
558 15D6 DB 3C IN CSRB
MACRO-80 3.44 09-Dec-81 PAGE 1-9
559 15D8 E6 02 ANI WF
560 15DA C3 1574 JMP READ20
561
562 ;**************************************
563 ; PODPROGRAMY
564 ;**************************************
565 15DD STEP:
566 15DD 3A 41D3 LDA DRVNO
567 15E0 B0 ORA B
568 15E1 D3 3C OUT CSRB
569 15E3 D3 3E OUT STEPR
570 15E5 STEP05:
571 15E5 DB 3C IN CSRB
572 15E7 E6 40 ANI STR
573 15E9 CA 15E5 JZ STEP05
574 15EC 0D DCR C
575 15ED C2 15DD JNZ STEP
576 15F0 AF XRA A
577 15F1 C9 RET
578
579 ;**************************************
580 15F2 STORE:
581 15F2 E5 PUSH H
582 15F3 F5 PUSH PSW
583 15F4 22 41E6 SHLD RCLPTR
584 15F7 11 FFFB LXI D,-5
585 15FA 19 DAD D
586 15FB 11 41E8 LXI D,MEM5
587 15FE 01 0005 LXI B,5
588 1601 CD 1635 CALL MOVE
589 1604 2B DCX H
590 1605 36 FB MVI M,DAMMRK
591 1607 11 0081 LXI D,SECLEN+1
592 160A 19 DAD D
593 160B 11 41ED LXI D,MEM3
594 160E 01 FF03 LXI B,0FF03H
595 1611 CD 1635 CALL MOVE
596 1614 F1 POP PSW
597 1615 E1 POP H
598 1616 C9 RET
599
600 ;**************************************
601 1617 RECALL:
602 1617 F5 PUSH PSW
603 1618 2A 41E6 LHLD RCLPTR
604 161B 11 FFFB LXI D,-5
605 161E 19 DAD D
606 161F 11 41E8 LXI D,MEM5
607 1622 0E 05 MVI C,5
608 1624 CD 163F CALL MOVE2
609 1627 11 0080 LXI D,SECLEN
610 162A 19 DAD D
611 162B 11 41ED LXI D,MEM3
612 162E 0E 03 MVI C,3
613 1630 CD 163F CALL MOVE2
614 1633 F1 POP PSW
615 1634 C9 RET
616
617 ;**************************************
618 1635 MOVE:
619 1635 7E MOV A,M
620 1636 12 STAX D
MACRO-80 3.44 09-Dec-81 PAGE 1-10
621 1637 70 MOV M,B
622 1638 23 INX H
623 1639 13 INX D
624 163A 0D DCR C
625 163B C2 1635 JNZ MOVE
626 163E C9 RET
627
628 ;**************************************
629 163F MOVE2:
630 163F 1A LDAX D
631 1640 13 INX D
632 1641 77 MOV M,A
633 1642 23 INX H
634 1643 0D DCR C
635 1644 C2 163F JNZ MOVE2
636 1647 C9 RET
637
638 ;**************************************
639 1648 RDAM:
640 1648 22 41E4 SHLD TCNT1
641 164B 06 27 MVI B,SECTRS+SECTRS/2
642 164D RDAM05:
643 164D C5 PUSH B
644 164E CD 16E4 CALL HEAD
645 1651 CD 16FE CALL RDYCHK
646 1654 C1 POP B
647 1655 D8 RC
648 1656 2A 41E4 LHLD TCNT1
649 1659 3E 60 MVI A,AML1
650 165B D3 22 OUT CNT2
651 165D AF XRA A
652 165E D3 22 OUT CNT2
653 1660 7D MOV A,L
654 1661 D3 21 OUT CNT1
655 1663 7C MOV A,H
656 1664 D3 21 OUT CNT1
657 1666 3E D2 MVI A,TAML
658 1668 D3 20 OUT CNT0
659 166A 3E B8 MVI A,TAMH
660 166C D3 20 OUT CNT0
661 166E 3E 89 MVI A,(RTAB AND 0E0H)+RAM+RE
662 1670 D3 25 OUT CSRA
663 1672 26 17 MVI H,RTAB SHR 8
664 1674 11 41DD LXI D,CMPAM
665 1677 D5 PUSH D
666 1678 CD 1784 CALL .RDLOOP
667 167B D1 POP D
668 167C D8 RC
669 167D 21 41D6 LXI H,SRCHAM
670 1680 0E 06 MVI C,AML-1
671 1682 RDAM10:
672 1682 13 INX D
673 1683 23 INX H
674 1684 1A LDAX D
675 1685 BE CMP M
676 1686 C2 168F JNZ RDAM15
677 1689 0D DCR C
678 168A C2 1682 JNZ RDAM10
679 168D AF XRA A
680 168E C9 RET
681 168F RDAM15:
682 168F 05 DCR B
MACRO-80 3.44 09-Dec-81 PAGE 1-11
683 1690 C2 1696 JNZ RDAM25
684 1693 RDAM20:
685 1693 AF XRA A
686 1694 37 STC
687 1695 C9 RET
688 1696 RDAM25:
689 1696 3A 41D7 LDA SRCHTRK
690 1699 4F MOV C,A
691 169A 3A 41DE LDA CMPTRK
692 169D B9 CMP C
693 169E CA 164D JZ RDAM05
694 16A1 CD 14C7 CALL .HOME
695 16A4 3A 41D7 LDA SRCHTRK
696 16A7 4F MOV C,A
697 16A8 CD 1511 CALL .SEEK
698 16AB C3 1693 JMP RDAM20
699
700 ;**************************************
701 16AE RDDAM:
702 16AE 3E 41 MVI A,DLENL
703 16B0 D3 22 OUT CNT2
704 16B2 3E 00 MVI A,DLENH
705 16B4 D3 22 OUT CNT2
706 16B6 3E 85 MVI A,(RTAB AND 0E0H)+RDM+RE
707 16B8 F5 PUSH PSW
708 16B9 3E 14 MVI A,20
709 16BB 3D L5: DCR A
710 16BC C2 16BB JNZ L5
711 16BF F1 POP PSW
712 16C0 D3 25 OUT CSRA
713 16C2 26 17 MVI H,RTAB SHR 8
714 16C4 C3 1784 JMP .RDLOOP
715
716 ;**************************************
717 16C7 WRDATA:
718 16C7 3E 11 MVI A,DLWL
719 16C9 D3 22 OUT CNT2
720 16CB 3E 00 MVI A,DLWH
721 16CD D3 22 OUT CNT2
722 16CF 3E A2 MVI A,(WTAB AND 0E0H)+WE
723 16D1 D3 25 OUT CSRA
724 16D3 26 17 MVI H,WTAB SHR 8
725 16D5 C3 17A4 JMP .WRLOOP
726 ;**************************************
727 16D8 CTRK:
728 16D8 D5 PUSH D
729 16D9 21 41D3 LXI H,DRVNO
730 16DC 5E MOV E,M
731 16DD 16 00 MVI D,0
732 16DF 19 DAD D
733 16E0 23 INX H
734 16E1 7E MOV A,M
735 16E2 D1 POP D
736 16E3 C9 RET
737 ;*************************************
738 16E4 HEAD:
739 16E4 D3 3D OUT HLOADR
740 16E6 3A 41F0 LDA CON
741 16E9 FE 00 CPI 0
742 16EB CA 16F6 JZ HEAD05
743 16EE CD 1712 CALL DELAY
744 16F1 3E 00 MVI A,0
MACRO-80 3.44 09-Dec-81 PAGE 1-12
745 16F3 32 41F0 STA CON
746 16F6 DB 3C HEAD05: IN CSRB
747 16F8 E6 80 ANI HLR
748 16FA CA 16F6 JZ HEAD05
749 16FD C9 RET
750 ;**************************************
751 16FE RDYCHK:
752 16FE 0E C8 MVI C,200
753 1700 RDY10:
754 1700 DB 3C IN CSRB
755 1702 E6 04 ANI RDY
756 1704 C0 RNZ
757 1705 3E 01 MVI A,1
758 1707 CD 1712 CALL DELAY
759 170A 0D DCR C
760 170B C2 1700 JNZ RDY10
761 170E 3E 01 MVI A,1
762 1710 37 STC
763 1711 C9 RET
764 ;**************************************
765 1712 DELAY:
766 1712 06 8C L4: MVI B,140
767 1714 05 L3: DCR B
768 1715 C2 1714 JNZ L3
769 1718 3D DCR A
770 1719 C2 1712 JNZ L4
771 171C C9 RET
772 ;**************************************
773 171D PREPAM:
774 171D 21 41D6 LXI H,SRCHAM
775 1720 E5 PUSH H
776 1721 01 00FE LXI B,SLID SHL 8+AMMRK
777 1724 71 MOV M,C
778 1725 23 INX H
779 1726 F5 PUSH PSW
780 1727 E5 PUSH H
781 1728 CD 16D8 CALL CTRK
782 172B E1 POP H
783 172C 77 MOV M,A
784 172D 23 INX H
785 172E 36 00 MVI M,0
786 1730 23 INX H
787 1731 F1 POP PSW
788 1732 77 MOV M,A
789 1733 23 INX H
790 1734 70 MOV M,B
791 1735 E1 POP H
792 1736 06 05 MVI B,AML-2
793 1738 CD 173F CALL CRC
794 173B 72 MOV M,D
795 173C 23 INX H
796 173D 73 MOV M,E
797 173E C9 RET
798
799 ;**************************************
800 173F CRC:
801 173F 11 FFFF LXI D,-1
802 1742 CRC05:
803 1742 7E MOV A,M
804 1743 23 INX H
805 1744 AA XRA D
806 1745 53 MOV D,E
MACRO-80 3.44 09-Dec-81 PAGE 1-13
807 1746 4F MOV C,A
808 1747 0F RRC
809 1748 0F RRC
810 1749 0F RRC
811 174A 0F RRC
812 174B E6 0F ANI 15
813 174D A9 XRA C
814 174E 5F MOV E,A
815 174F 0F RRC
816 1750 0F RRC
817 1751 0F RRC
818 1752 4F MOV C,A
819 1753 E6 1F ANI 1FH
820 1755 AA XRA D
821 1756 57 MOV D,A
822 1757 79 MOV A,C
823 1758 E6 E0 ANI 0E0H
824 175A AB XRA E
825 175B 5F MOV E,A
826 175C 79 MOV A,C
827 175D 0F RRC
828 175E E6 F0 ANI 0F0H
829 1760 AA XRA D
830 1761 57 MOV D,A
831 1762 05 DCR B
832 1763 C8 RZ
833 1764 C3 1742 JMP CRC05
834
835 ;**************************************
836 ; SKOKOVE TABULKY CTENI A ZAPISU
837 ;**************************************
838 0000 ROM EQU 0
839 0007 TMP SET ($-ROM) AND 1FH
840 IF TMP
841 1767 DS 32-TMP
842 ENDC
843
844 ;**************************************
845 1780 RTAB:
846 1780 DB 24 IN RDATA
847 1782 12 STAX D
848 1783 13 INX D
849 1784 .RDLOOP:
850 1784 DB 25 IN CSRA
851 1786 6F MOV L,A
852 1787 E9 PCHL
853 1788 AF XRA A
854 1789 C3 179C JMP TERR
855 178C AF XRA A
856 178D C3 179C JMP TERR
857 1790 C3 1794 JMP LPDONE
858 1793 00 NOP
859 1794 LPDONE:
860 1794 AF XRA A
861 1795 C9 RET
862 1796 00 NOP
863 1797 00 NOP
864 1798 AF XRA A
865 1799 C3 179C JMP TERR
866 179C TERR:
867 179C D3 25 OUT CSRA
868 179E 37 STC
MACRO-80 3.44 09-Dec-81 PAGE 1-14
869 179F C9 RET
870
871 ;**************************************
872 17A0 WTAB:
873 17A0 1A LDAX D
874 17A1 D3 24 OUT WDATA
875 17A3 13 INX D
876 17A4 .WRLOOP:
877 17A4 DB 25 IN CSRA
878 17A6 6F MOV L,A
879 17A7 E9 PCHL
880 17A8 AF XRA A
881 17A9 C3 179C JMP TERR
882 17AC AF XRA A
883 17AD C3 179C JMP TERR
884 17B0 C3 1794 JMP LPDONE
885 17B3 00 NOP
886 17B4 C3 1794 JMP LPDONE
887 17B7 00 NOP
888 17B8 AF XRA A
889 17B9 C3 179C JMP TERR
890 17BC AF XRA A
891 17BD C3 179C JMP TERR
892 17C0 00 DB 0
893 ;**************************************
894 17C1 4A 69 72 69 DB 'Jiri Hlavac'
895 17C5 20 48 6C 61
896 17C9 76 61 63
897 17CC 54 65 73 6C DB 'Tesla DIZ 1988 '
898 17D0 61 20 44 49
899 17D4 5A 20 31 39
900 17D8 38 38 20
901 .LIST
902 17DB $next: ;prvni volna adresa za EBIOS
903 ;
904 ;kontrola delky EBIOSu (max adresa ⁢ 1800H)
905 IF $next GT 1800H
906 .PRINTX 'EBIOS presahuje konec EPROM'
907 ENDIF
908
909 ;****************************************
910 ;PROMENNE BIOSU
911 ;****************************************
912 .PHASE varb
913 41D0 SECTOR: DS 1
914 41D1 POINTR: DS 2
915 41D3 DRVNO: DS 3
916 41D6 SRCHAM: DS 7
917 41D7 SRCHTRK EQU SRCHAM+1
918 41DD CMPAM: DS 7
919 41DE CMPTRK EQU CMPAM+1
920 41E4 TCNT1: DS 2
921 41E6 RCLPTR: DS 2
922 41E8 MEM5: DS 5
923 41ED MEM3: DS 3
924 41F0 00 CON: DB 0
925 41F1 00 KUPR: DB 0
926 41F2 00 DRVBAK: DB 0
927 41F3 $nextv: ;volna RAM za promennymi
928 ;
929 ;kontrola delky promennych EBIOSu (max adresa ⁢ 4200H)
930 IF $nextv GT 4200H
MACRO-80 3.44 09-Dec-81 PAGE 1-15
931 .PRIhiTX 'promenne EBIOSu presahuji 41FFH'
932 ENDIF
933
934 .DEPHASE
935 ;
936 IF1
937 .PRINTX 'konec prvniho pruchodu'
938 ENDIF
939
940 END
MACRO-80 3.44 09-Dec-81 PAGE S
Macros:
Symbols:
17DB $NEXT 41F3 $NEXTV 14C7 .HOME
1784 .RDLOOP 152F .READ 1511 .SEEK
14EE .SELECT 1578 .WRITE 17A4 .WRLOOP
0007 AML 0060 AML1 00FE AMMRK
1427 BADMSG 141E BADSYS 0005 BDOS
F000 BDOSB FE00 BIOSB 4280 BUFF
41DD CMPAM 41DE CMPTRK 0020 CNT0
000C CNT0M 0021 CNT1 005E CNT1M
0022 CNT2 000D CNT2M 41F0 CON
0103 CONIN 0109 CONOUT 0112 CONST
000D CR 173F CRC 1742 CRC05
0025 CSRA 003C CSRB 16D8 CTRK
00FB DAMMRK 1712 DELAY 0000 DLENH
0041 DLENL 0000 DLWH 0011 DLWL
1494 DLY 0000 DOWN FE33 DPHTAB
41F2 DRVBAK 41D3 DRVNO 1300 EBIOS
1300 EBIOSB 1300 EPROMB 1441 ERRMSG
150F FNOK 0002 FR 16E4 HEAD
16F6 HEAD05 003D HLOADR 0080 HLR
148E HOME 14D7 HOME05 14EB HOME10
14EC HOME15 1333 INIT 0002 INITF
14B1 INITRPD 41F1 KUPR 1714 L3
1712 L4 16BB L5 17DA LASTEB
41F2 LASTVAR 000A LF 010F LIST
1461 LISTST 1395 LOADDOS 1418 LOADERR
04DB LONGEB 1794 LPDONE 0023 MD53
41ED MEM3 41E8 MEM5 0100 MON
1635 MOVE 163F MOVE2 0002 NDISKS
002B NT43 133F PMSG 41D1 POINTR
171D PREPAM 010C PUNCH 0008 RAM
4300 RAMB 41E6 RCLPTR 13DE RD1
13E1 RD2 1648 RDAM 164D RDAM05
1682 RDAM10 168F RDAM15 1693 RDAM20
1696 RDAM25 0024 RDATA 16AE RDDAM
13D9 RDLOOP 0004 RDM 0004 RDY
1700 RDY10 16FE RDYCHK 0001 RE
149D READ 1543 READ03 1545 READ05
154E READ07 1555 READ10 155E READ15
1574 READ20 0106 READER 1617 RECALL
0139 RETMON 0005 RETRY 0000 ROM
1780 RTAB 150A SAME 0080 SECLEN
41D0 SECTOR 1468 SECTRAN 001A SECTRS
152B SEEK05 14F9 SELACT 1474 SELDSK
146E SETDMA 1463 SETSEC 1404 SETSYSPA
1491 SETTRK 134A SIGNON 0000 SLID
41D6 SRCHAM 41D7 SRCHTRK 15DD STEP
15E5 STEP05 003E STEPR 15F2 STORE
0040 STR 13D3 SYNSEQ 0000 SYSDISK
0020 T00 0008 T43 00B8 TAMH
00D2 TAML 20FC TAW 41E4 TCNT1
C4FC TDAM 179C TERR 0007 TMP
4400 TPA 004D TRKS 0004 UP
41D0 VARB 13C7 VERIF 1389 WBOOT
0024 WDATA 0002 WE 0002 WF
16C7 WRDATA 1591 WRIT02 15B1 WRIT03
15B3 WRIT05 15BC WRIT10 15CC WRIT15
14A7 WRITE 1421 WRMSG 17A0 WTAB
No Fatal error(s)
$NEXT 22 23 902# 905
$NEXTV 24 927# 930
.HOME 274 383# 694
.RDLOOP 666 714 849#
.READ 167 290 451#
.SEEK 283 430# 697
.SELECT 266 380 406#
.WRITE 297 501#
.WRLOOP 725 876#
AML 360# 670 792
AML1 357# 649
AMMRK 342# 776
BADMSG 202 206#
BADSYS 144 201#
BDOS 38# 194 196
BDOSB 35# 36 128 135 140 190
BIOSB 36# 40
BUFF 30#
CMPAM 664 918# 919
CMPTRK 691 919#
CNT0 326# 658 660
CNT0M 329# 373
CNT1 327# 654 656
CNT1M 330# 375
CNT2 328# 650 652 703 705 719 721
CNT2M 331# 377
CON 420 740 745 924#
CONIN 53 72#
CONOUT 54 73# 93
CONST 52 71#
CR 43# 97 103 112 206 213 221
CRC 490 526 793 800#
CRC05 802# 833
CSRA 309# 371 662 712 723 850 867 877
CSRB 315# 372 391 424 517 519 558 568 571 746 754
CTRK 385 437 510 727# 781
DAMMRK 343# 590
DELAY 743 758 765#
DLENH 362# 704
DLENL 361# 702
DLWH 364# 720
DLWL 363# 718
DLY 279# 282
DOWN 323# 396 441
DPHTAB 40# 263
DRVBAK 410 414 926#
DRVNO 416 423 512 566 729 915#
EBIOS 37#
EBIOSB 23 34# 37
EPROMB 28# 34 47
ERRMSG 199 213#
FNOK 393 425#
FR 324# 516 518
HEAD 644 738#
HEAD05 742 746# 748
HLOADR 335# 520 739
HLR 316# 747
HOME 58 126 273#
HOME05 390# 398
HOME10 395 399# 436
HOME15 401# 409
INIT 50 79#
INITF 339# 387 389
INITRPD 82 369#
KUPR 925#
L3 767# 768
L4 766# 770
L5 709# 710
LASTEB 22#
LASTVAR 24#
LF 44# 97 103 112 206 213 221
LIST 55 74#
LISTST 65 227#
LOADDOS 83 118 122#
LOADERR 125 127 134 168 198#
LONGEB 23#
LPDONE 857 859# 884 886
MD53 332# 374 376 378
MEM3 593 611 923#
MEM5 586 606 922#
MON 39# 71 72 73 74 75 76 77 191
MOVE 588 595 618# 625
MOVE2 608 613 629# 635
NDISKS 351# 408
NT43 340# 511
PMSG 87# 94 203
POINTR 249 287 294 914#
PREPAM 459 509 773#
PUNCH 56 75#
RAM 310# 661
RAMB 31#
RCLPTR 583 603 921#
RD1 162# 185
RD2 165# 177
RDAM 470 540 639#
RDAM05 642# 693
RDAM10 671# 678
RDAM15 676 681#
RDAM20 684# 698
RDAM25 683 688#
RDATA 336# 846
RDDAM 485 701#
RDLOOP 131 138 154#
RDM 311# 706
RDY 319# 755
RDY10 753# 760
RDYCHK 645 751#
RE 313# 661 706
READ 63 286#
READ03 465# 481
READ05 468#
READ07 472# 486
READ10 477# 495
READ15 471 482#
READ20 476 480 496# 546 549 560
READER 57 76#
RECALL 498 601#
RETMON 77# 120 204
RETRY 341# 463 534
ROM 838# 839
RTAB 661 663 706 713 845#
SAME 418 422#
SECLEN 350# 489 525 591 609
SECTOR 234 288 295 913#
SECTRAN 66 238#
SECTRS 349# 641 641
SEEK05 442 446#
SELACT 384 413# 432 454 504
SELDSK 59 124 253#
SETDMA 62 246#
SETSEC 61 232#
SETTRK 60 133 277#
SIGNON 85 96#
SLID 366# 776
SPA 21573
RDAM 8384 38912
de 58866 0
SPA 21573
RDAM 8384 38912
de 58866 0
SPA 21573
RDAM 8384 38912
de 58866 0
SRCHAM 669 774 916# 917
SRCHTRK 689 695 917#
STEP 388 397 448 565# 575
STEP05 570# 573
STEPR 334# 569
STORE 461 522 580#
STR 317# 572
SYNSEQ 139 151#
SYSDISK 41# 123
T00 318# 392
T43 321# 514
TAMH 359# 659
TAML 358# 657
TAW 365# 539
TCNT1 640 648 920#
TDAM 356# 469
TERR 854 856 865 866# 881 883 889 891
TMP 839# 840 841
TPA 32#
TRKS 348# 389 435
UP 322# 387 443
VARB 29# 912
VERIF 142# 148
WBOOT 51 114#
WDATA 337# 874
WE 312# 722
WF 320# 559
WRDATA 554 717#
WRIT02 513 515#
WRIT03 535# 550
WRIT05 538#
WRIT10 542# 555
WRIT15 541 551#
WRITE 64 293#
WRMSG 200 203#
WTAB 722 724 872#
ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt
SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA | SP 830 | PCS 1-QR6000
ZPS | Technické prostředky | Programové vybavení | Dokumentace