Ú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