That is the assembler soure for ASDIS (running on the Zeddy) of the current USB driver I use:
the first 4 digits are the address, where it is assembled to. The following 5 chars are labels. Comment lines start with ";"
Code: Select all
8000;===========================
8000;USB-ZX81
8000;VON THOMAS LIENHARD
8000;PORTIERT ZU ASDIS
8000;VON J.MERKL
8000;;
8000;---------------------------
8000;V1.0.0
8000;GRUNDVERSION T.LIENHARD
8000;;
8000;V1.1.0
8000;FEHLERMELDUNGEN EINGEBAUT
8000;2.EINSPRUNGADR. FUER BASIC
8000;MIT FEHLERCODERUECKMELDUNG
8000;;
8000;V1.2.0
8000;VARIABLE VERLAGERT
8000;;
8000;V1.2.1
8000;KORREKTUREN: SIGGI
8000;V1.2.2
8000;DATEILAENGE IN SYSVAR
8000;COORD(16438/39)
8000;V1.2.3
8000;D,XXXX KOMMANDO HINZU
8000;V1.2.4 ZAHLEN NUN DEZIMAL
8000;V1.2.5 SPEED OPTIMIERT
8000; EINSPRUNG M/C
8000;V1.2.6 BREAK CHECK
8000;V1.3.0 MEFISDOS SYNTAX, REN
8000;V1.3.1 CD ZEIGT NEUE DIR AN
8000;V1.3.1 BREAK AUCH MIT 6
8000;===========================
8000 JP UFM C3B88B
8003 JP USB2 C30481
8006 JP USB3 C31581
8009 JP USB1 C30B81
800C;---------------------------
800C;VARIABLE
800C 009=$09
8015FILNA215=$D7
80ECSSTAT001=$01
80EDRBYTE001=$01
80EERSTAT001=$01
80EF 002=$02
80F1STAL 001=$01
80F2STAH 001=$01
80F3SIZEL001=$01
80F4SIZEH001=$01
80F5 012=$0C
8101MBACK001=$01
8102ERRNR002=$02
8104;---------------------------
8104;;
8104USB2 XOR A AF
8105 LD (ERRNO),A 323240
8108 INC A 3C
8109 JR NUSB 1801
810B;;
810BUSB1 XOR A AF
810CNUSB LD (MBACK),A 320181
810F;SET RETURN ADDRESS TO BASIC
810F LD HL,R2BAS 216F81
8112 PUSH HL E5
8113 JR USB 1814
8115;;
8115USB3 XOR A AF
8116 LD (ERRNO),A 323240
8119 INC A 3C
811A LD (MBACK),A 320181
811D CALL $02E7 CDE702
8120;SET RETURN ADDRESS TO MC
8120 LD HL,R2MC 217581
8123 PUSH HL E5
8124;READ COMMAND FROM PRINTER
8124;BUFFER
8124 LD HL,PRBUF 213C40
8127 JR USBMC 1803
8129;;
8129USB CALL NAME CD9982
812CUSBMCLD A,(HL) 7E
812D CP $2D FE2D
812F JP Z,HLP CA8081
8132 CP $0F FE0F
8134 JP Z,HLP CA8081
8137; AB NUN ZUGRIFF AUF STICK
8137 CALL INIT CD4689
813A LD A,(HL) 7E
813b INC HL 23
813C CP $2E FE2E
813E JP Z,INFO1 CABC83
8141 CP $38 FE38
8143 JP Z,SAVE1 CAE885
8146 CP $31 FE31
8148 JP Z,LOAD1 CAF986
814B CP $29 FE29
814D JP Z,DIR1 CA5984
8150 CP $30 FE30
8152 JP Z,DIR1 CA5984
8155 CP $3B FE3B
8157 JP Z,DIR1 CA5984
815A CP $2A FE2A
815C JP Z,ERAS1 CA0D88
815F CP $37 FE37
8161 JP Z,REN1 CAD685
8164;;
8164 LD DE,TXA 11B082
8167 LD (ERRNR),DE ED530281
816B JP ERROR C37983
816E;;
816E;JUMP TO M/C OR R2BAS
816EBASICRET C9
816F;;
816F;JUMP TO BASIC
816FR2BASCALL SHOW CD0702
8172 XOR A AF
8173 RST 08 CF
8174 FF
8175;;
8175;JUMP TO M/C
8175R2MC LD A,(ERRNO) 3A3240
8178 OR A B7
8179 CALL NZ,CLBUF C49283
817C CALL SHOW CD0702
817F RET C9
8180;;
8180HLP LD HL,HLPTX 218E81
8183HLP1 LD A,(HL) 7E
8184 CP $FF FEFF
8186 JR Z,BASIC 28E6
8188 PUSH HL E5
8189 RST 10 D7
818A POP HL E1
818B INC HL 23
818C JR HLP1 18F5
818E;;
818eHLPTXINFO "I"
8198 HALT 76
8199 DIR "D"
81A3 HALT 76
81A4 CHDIR "D VERZ"
81B3 HALT 76
81B4 DIR X "D,<NUM>"
81C4 HALT 76
81C5 MKDIR "V VERZ"
81D4 HALT 76
81D5 RMDIR "K VERZ"
81E4 HALT 76
81E5 LOAD "L DATEI.P"
81F7 HALT 76
81F8 BLOAD "L DATEI.B,<ADR>
8210 HALT 76
8211 SAVE "S DATEI.P"
8223 HALT 76
8224 BSAVE "S DATEI.B,<ADR>
823C <LEN>"
8242 HALT 76
8243 ERASE "E DATEI.P"
8255 HALT 76
8256 RENAME "R NAME NAME"
826A HALT 76
826B HELP "H"
8275 HALT 76
8276 HALT 76
8277 ABBRUCH MIT "A" ODER "6
828F HALT 76
8290 HALT 76
8291 V1.3.3
8297 HALT 76
8298 FF
8299;;
8299NAME RST 20 E7
829A CALL $0F55 CD550F
829D LD A,($4001) 3A0140
82A0 ADD A,A 87
82A1 JP M,$0D9A FA9A0D
82A4 POP HL E1
82A5 RET NC D0
82A6 PUSH HL E5
82A7 CALL $02E7 CDE702
82AA CALL $13F8 CDF813
82AD LD H,D 62
82AE LD L,E 6B
82AF RET C9
82b0;;
82B0TXA 0112
82B2 ungueltiger befehl
82C4TXB 0216
82C6 ungueltiger dir-befehl
82DCTXC 0317
82DE file/dir nicht gefunden
82F5TXD 040B
82F7 device voll
8302TXE 0513
8304 file/dir noch offen
8317TXF 060A
8319 ladefehler
8323TXG 0716
8325 device nicht vorhanden
833BTXH 0805
833d break
8342TXI 090E
8344 dir nicht leer
8352TXX 00000000000000000000
835C 00000000000000000000
8366 00000000000000000000
8370 0000
8372;;
8372BRKERLD DE,TXH 113B83
8375 LD (ERRNR),DE ED530281
8379;;
8379ERRORLD A,(MBACK) 3A0181
837C CP $01 FE01
837E JR NZ,NERR 2009
8380 LD HL,(ERRNR) 2A0281
8383 LD A,(HL) 7E
8384 LD (ERRNO),A 323240
8387 JR ERROB 1803
8389NERR CALL TXOUT CDA183
838C;;
838CERROBCALL CLBUF CD9283
838F JP BASIC C36E81
8392;;
8392CLBUFCALL READB CDA789
8395 LD A,(RSTAT) 3AEE80
8398 CP $01 FE01
839A RET Z C8
839B CALL BRKCK CDD38A
839E RET Z C8
839F JR CLBUF 18F1
83A1;;
83A1TXOUTLD DE,(DFILE) ED5B0C40
83a5 INC DE 13
83A6 PUSH DE D5
83A7 LD BC,$0020 012000
83AA LD HL,TXX 215283
83AD LDIR EDB0
83AF POP DE D1
83B0 LD HL,(ERRNR) 2A0281
83B3 INC HL 23
83B4 LD A,(HL) 7E
83B5 LD B,$00 0600
83B7 LD C,A 4F
83B8 INC HL 23
83B9 LDIR EDB0
83BB RET C9
83BC;;
83BCINFO1LD A,$12 3E12
83be CALL SENDB CD408A
83C1 LD A,CR 3E0D
83C3 CALL SENDB CD408A
83C6INFO2CALL READB CDA789
83C9 LD A,(RSTAT) 3AEE80
83CC CP $01 FE01
83CE JP Z,INFO2 CAC683
83D1 CALL WAIT CDDB85
83D4INFO3CALL READB CDA789
83D7 CALL READB CDA789
83DA CALL READB CDA789
83DD CALL READB CDA789
83E0 CALL READB CDA789
83E3 LD A,$94 3E94
83E5 CALL SENDB CD408A
83E8 LD A,CR 3E0D
83ea CALL SENDB CD408A
83EDINFORCALL WAIT CDDB85
83F0 CALL READB CDA789
83F3 CP $55 FE55
83F5 JR NZ,INFOR 20F6
83F7INFOSLD E,A 5F
83F8 CALL TEX1 CD8788
83FB CALL READB CDA789
83FE CP $3E FE3E
8400 JR Z,INFOE 2802
8402 JR INFOS 18F3
8404INFOECALL READB CDA789
8407 CALL WAIT CDDB85
840A CALL WAIT CDDB85
840D LD A,$13 3E13
840F CALL SENDB CD408A
8412 LD A,CR 3E0D
8414 CALL SENDB CD408A
8417INFOVCALL WAIT CDDB85
841A CALL READB CDA789
841D CP CR FE0D
841F JR Z,INFOV 28F6
8421INFOWLD E,A 5F
8422 CALL TEX1 CD8788
8425 CALL READB CDA789
8428 CP $3E FE3E
842A JR Z,INFOX 2802
842C JR INFOW 18F3
842EINFOXCALL READB CDA789
8431 JP BASIC C36E81
8434;;
8434ADR1 INC HL 23
8435 CALL GETBC CD3D84
8438 LD (STAL),BC ED43F180
843C RET C9
843D;;
843D;;
843DGETBCLD BC,$0000 010000
8440GNUM LD A,(HL) 7E
8441 SUB $1C D61C
8443 RET C D8
8444 CP $0A FE0A
8446 RET NC D0
8447 PUSH HL E5
8448 LD H,B 60
8449 LD L,C 69
844A ADD HL,HL 29
844B ADD HL,HL 29
844c ADD HL,HL 29
844D ADD HL,BC 09
844E ADD HL,BC 09
844F LD B,$00 0600
8451 LD C,A 4F
8452 ADD HL,BC 09
8453 LD B,H 44
8454 LD C,L 4D
8455 POP HL E1
8456 INC HL 23
8457 JR GNUM 18E7
8459;;
8459DIR1 CP $3B FE3B
845B JR Z,DIMAK 282A
845D CP $30 FE30
845F JR Z,DIERA 282B
8461 LD A,(HL) 7E
8462 CP $0B FE0B
8464 JR Z,DIRS 282B
8466 CP $1A FE1A
8468 JP Z,DIRM CA0885
846B CP $00 FE00
846D JR Z,DICHG 2809
846F LD HL,TXB 21C482
8472 LD (ERRNR),HL 220281
8475 JP ERROR C37983
8478;;
8478DICHGLD A,(MBACK) 3A0181
847B OR A B7
847C JR NZ,DICH1 2004
847E;PUSH SHOWDIR ADD ON STACK
847E;TO SHOW NEW DIR AFTERWARDS
847e LD DE,DIRS 119184
8481 PUSH DE D5
8482DICH1LD C,$02 0E02
8484 JP DIGO C36085
8487DIMAKLD C,$06 0E06
8489 JP DIGO C36085
848CDIERALD C,$05 0E05
848E JP DIGO C36085
8491;;
8491DIRS LD B,$13 0613
8493 LD A,$01 3E01
8495 CALL SENDB CD408A
8498 LD A,CR 3E0D
849A CALL SENDB CD408A
849D CALL WAIT CDDB85
84A0DIRR CALL READB CDA789
84a3 CALL BRKCK CDD38A
84A6 JP Z,BRKER CA7283
84A9 LD A,(RSTAT) 3AEE80
84AC CP $01 FE01
84AE JR Z,DIRR 28F0
84B0 LD A,(RBYTE) 3AED80
84B3 CP $3E FE3E
84B5 JR Z,DIRE 280B
84B7 CP CR FE0D
84B9 JR Z,DIRC 280D
84BBDIRP LD E,A 5F
84BC CALL TEX1 CD8788
84BF JP DIRR C3A084
84C2DIRE CALL CLBUF CD9283
84C5 JP BASIC C36E81
84C8DIRC DEC B 05
84c9 JR NZ,DIRP 20F0
84CB LD E,CR 1E0D
84CD CALL TEX1 CD8788
84D0 LD E,CR 1E0D
84D2 CALL TEX1 CD8788
84D5 LD E,$3C 1E3C
84D7 CALL TEX1 CD8788
84DA LD E,$43 1E43
84DC CALL TEX1 CD8788
84DF LD E,$52 1E52
84E1 CALL TEX1 CD8788
84E4 LD E,$3E 1E3E
84E6 CALL TEX1 CD8788
84E9 CALL SHOW CD0702
84ECDIRW CALL BRKCK CDD38A
84EF JP Z,BRKER CA7283
84f2 CALL GTKEY CDBB02
84F5 EX DE,HL EB
84F6 LD HL,$FDBF 21BFFD
84F9 AND A A7
84FA SBC HL,DE ED52
84FC JR NZ,DIRW 20EE
84FE CALL RCLS CD2A0A
8501 LD B,$13 0613
8503 LD A,(RBYTE) 3AED80
8506 JR DIRP 18B3
8508;;
8508DIRM CALL ADR1 CD3484
850B LD A,(TXC) 3ADC82
850E LD (ERRNO),A 323240
8511 LD BC,$0000 010000
8514 LD A,$01 3E01
8516 CALL SENDB CD408A
8519 LD A,CR 3E0D
851B CALL SENDB CD408A
851E CALL WAIT CDDB85
8521CIRR CALL READB CDA789
8524 CALL BRKCK CDD38A
8527 JP Z,BRKER CA7283
852A LD A,(RSTAT) 3AEE80
852D CP $01 FE01
852F JR Z,CIRR 28F0
8531 LD A,(RBYTE) 3AED80
8534 CP $3E FE3E
8536 JR Z,CIRE 281F
8538 CP CR FE0D
853A JR Z,CIRC 2821
853CCIRP LD E,A 5F
853d LD A,(STAL) 3AF180
8540 CP C B9
8541 JR NZ,CIRR 20DE
8543 LD A,(STAH) 3AF280
8546 CP B B8
8547 JR NZ,CIRR 20D8
8549 LD A,E 7B
854A CP CR FE0D
854C JR Z,CIRR 28D3
854E CALL TEX1 CD8788
8551 XOR A AF
8552 LD (ERRNO),A 323240
8555 JR CIRR 18CA
8557CIRE CALL CLBUF CD9283
855A JP BASIC C36E81
855DCIRC INC BC 03
855e JR CIRP 18DC
8560;;
8560DIGO PUSH BC C5
8561 INC HL 23
8562 LD DE,FILNA 111580
8565DIGO2LD A,(HL) 7E
8566 CP $0B FE0B
8568 JR Z,DIGO3 2808
856A CALL ZXASC CD3789
856D LD (DE),A 12
856E INC HL 23
856F INC DE 13
8570 JR DIGO2 18F3
8572DIGO3LD A,CR 3E0D
8574 LD (DE),A 12
8575 POP BC C1
8576 LD A,C 79
8577 CALL SENDB CD408A
857A LD A,$20 3E20
857C CALL SENDB CD408A
857F LD HL,FILNA 211580
8582DIGO4LD A,(HL) 7E
8583 PUSH AF F5
8584 CALL SENDB CD408A
8587 INC HL 23
8588 POP AF F1
8589 CP CR FE0D
858B JR NZ,DIGO4 20F5
858DDIGO5CALL READB CDA789
8590 CALL BRKCK CDD38A
8593 JP Z,BRKER CA7283
8596 LD A,(RSTAT) 3AEE80
8599 CP $01 FE01
859B JR Z,DIGO5 28F0
859D LD A,(RBYTE) 3AED80
85A0 CP $3E FE3E
85A2 JR Z,DIGOK 282C
85A4 CP $43 FE43
85A6 JR NZ,NDIG1 2005
85A8 LD DE,TXC 11DC82
85AB JR NDIG 1819
85ADNDIG1CP $44 FE44
85AF JR NZ,NDIG2 2005
85B1 LD DE,TXD 11F582
85B4 JR NDIG 1810
85B6NDIG2CP $46 FE46
85B8 JR NZ,NDIG3 2005
85BA LD DE,TXE 110283
85bd JR NDIG 1807
85BFNDIG3CP $4E FE4E
85C1 JR NZ,DIGO5 20CA
85C3 LD DE,TXI 114283
85C6NDIG LD (ERRNR),DE ED530281
85CA CALL CLBUF CD9283
85CD JP ERROR C37983
85D0DIGOKCALL READB CDA789
85D3 JP BASIC C36E81
85D6;;
85D6REN1 LD C,$0C 0E0C
85D8 JP REERA C30F88
85DB;;
85DBWAIT PUSH BC C5
85DC PUSH AF F5
85DD LD B,$FF 06FF
85df XOR A AF
85E0WAIT1DEC B 05
85E1 CP B B8
85E2 JP NZ,WAIT1 C2E085
85E5 POP AF F1
85E6 POP BC C1
85E7 RET C9
85E8;;
85E8SAVE1PUSH HL E5
85E9 LD HL,(ELINE) 2A1440
85EC LD BC,$4009 010940
85EF LD (STAL),BC ED43F180
85F3 AND A A7
85F4 SBC HL,BC ED42
85F6 LD (SIZEL),HL 22F380
85F9 POP HL E1
85fa LD DE,FILNA 111580
85FD INC HL 23
85FESAVE3LD A,(HL) 7E
85FF CP $0B FE0B
8601 JR Z,SAVE2 281B
8603 CP $1A FE1A
8605 JR Z,SAVEM 280C
8607 CP $00 FE00
8609 JR Z,SAVEM 2808
860B CALL ZXASC CD3789
860E LD (DE),A 12
860F INC HL 23
8610 INC DE 13
8611 JR SAVE3 18EB
8613SAVEMCALL ADR1 CD3484
8616 INC HL 23
8617 CALL GETBC CD3D84
861A LD (SIZEL),BC ED43F380
861ESAVE2LD A,CR 3E0D
8620 LD (DE),A 12
8621 CALL WAIT CDDB85
8624 LD A,$09 3E09
8626 CALL SENDB CD408A
8629 LD A,$20 3E20
862B CALL SENDB CD408A
862E LD HL,FILNA 211580
8631SAVE4LD A,(HL) 7E
8632 PUSH AF F5
8633 CALL SENDB CD408A
8636 INC HL 23
8637 POP AF F1
8638 CP CR FE0D
863a JR NZ,SAVE4 20F5
863CSAVEWCALL WAIT CDDB85
863F CALL BRKCK CDD38A
8642 JP Z,BRKER CA7283
8645 CALL READB CDA789
8648 CP $3E FE3E
864A JR NZ,SAVEW 20F0
864C CALL READB CDA789
864F;;
864F LD A,$28 3E28
8651 CALL SENDB CD408A
8654 LD A,$20 3E20
8656 CALL SENDB CD408A
8659 XOR A AF
865A CALL SENDB CD408A
865D XOR A AF
865e CALL SENDB CD408A
8661 XOR A AF
8662 CALL SENDB CD408A
8665 XOR A AF
8666 CALL SENDB CD408A
8669 LD A,CR 3E0D
866B CALL SENDB CD408A
866E CALL WAIT CDDB85
8671 CALL READB CDA789
8674 CALL READB CDA789
8677;;
8677 LD A,$08 3E08
8679 CALL SENDB CD408A
867C LD A,$20 3E20
867E CALL SENDB CD408A
8681 XOR A AF
8682 CALL SENDB CD408A
8685 XOR A AF
8686 CALL SENDB CD408A
8689 LD A,(SIZEH) 3AF480
868C CALL SENDB CD408A
868F LD A,(SIZEL) 3AF380
8692 CALL SENDB CD408A
8695 LD A,CR 3E0D
8697 CALL SENDB CD408A
869A LD HL,(STAL) 2AF180
869D LD BC,(SIZEL) ED4BF380
86A1SAVE5CALL BRKCK CDD38A
86A4 JP Z,BRKER CA7283
86A7 LD A,(HL) 7E
86A8 CALL SENDB CD408A
86AB CP $08 FE08
86ad JR Z,SAVE5 28F2
86AF INC HL 23
86B0 DEC BC 0B
86B1 XOR A AF
86B2 CP B B8
86B3 JR NZ,SAVE5 20EC
86B5 CP C B9
86B6 JR NZ,SAVE5 20E9
86B8SAVE6CALL WAIT CDDB85
86BB CALL BRKCK CDD38A
86BE JP Z,BRKER CA7283
86C1 CALL READB CDA789
86C4 CP $3E FE3E
86C6 JR NZ,SAVE6 20F0
86C8 CALL READB CDA789
86CB LD A,$0A 3E0A
86cd CALL SENDB CD408A
86D0 LD A,$20 3E20
86D2 CALL SENDB CD408A
86D5 LD HL,FILNA 211580
86D8SAVE7LD A,(HL) 7E
86D9 PUSH AF F5
86DA CALL SENDB CD408A
86DD INC HL 23
86DE POP AF F1
86DF CP CR FE0D
86E1 JR NZ,SAVE7 20F5
86E3SAVE8CALL WAIT CDDB85
86E6 CALL BRKCK CDD38A
86E9 JP Z,BRKER CA7283
86EC CALL READB CDA789
86EF CP $3E FE3E
86f1 JR NZ,SAVE8 20F0
86F3 CALL READB CDA789
86F6 JP BASIC C36E81
86F9;;
86F9LOAD1LD A,$40 3E40
86FB LD (STAH),A 32F280
86FE LD A,$09 3E09
8700 LD (STAL),A 32F180
8703 LD DE,FILNA 111580
8706 INC HL 23
8707LOAD3LD A,(HL) 7E
8708 CP $0B FE0B
870A JR Z,LOAD2 2813
870C CP $1A FE1A
870E JR Z,LOADM 280C
8710 CP $00 FE00
8712 JR Z,LOADM 2808
8714 CALL ZXASC CD3789
8717 LD (DE),A 12
8718 INC HL 23
8719 INC DE 13
871A JR LOAD3 18EB
871CLOADMCALL ADR1 CD3484
871FLOAD2LD A,CR 3E0D
8721 LD (DE),A 12
8722 CALL WAIT CDDB85
8725 CALL READB CDA789
8728 CALL READB CDA789
872B CALL READB CDA789
872E LD A,$01 3E01
8730 CALL SENDB CD408A
8733 LD A,$20 3E20
8735 CALL SENDB CD408A
8738 LD HL,FILNA 211580
873BLOAD4LD A,(HL) 7E
873C PUSH AF F5
873D CALL SENDB CD408A
8740 INC HL 23
8741 POP AF F1
8742 CP CR FE0D
8744 JR NZ,LOAD4 20F5
8746LOADNCALL READB CDA789
8749 CALL BRKCK CDD38A
874C JP Z,BRKER CA7283
874F LD A,(RSTAT) 3AEE80
8752 CP $01 FE01
8754 JR Z,LOADN 28F0
8756LODN1CALL READB CDA789
8759 CALL BRKCK CDD38A
875C JP Z,BRKER CA7283
875F LD A,(RSTAT) 3AEE80
8762 CP $01 FE01
8764 JR Z,LODN1 28F0
8766LOAD5CALL READB CDA789
8769 CALL BRKCK CDD38A
876C JP Z,BRKER CA7283
876F LD A,(RSTAT) 3AEE80
8772 CP $01 FE01
8774 JR Z,LOAD5 28F0
8776 LD A,(RBYTE) 3AED80
8779 CP CR FE0D
877B JR NZ,NLOAD 200A
877D LD DE,TXF 111783
8780 LD (ERRNR),DE ED530281
8784 JP ERROR C37983
8787NLOADCP $20 FE20
8789 JR NZ,LOAD5 20DB
878B CALL READB CDA789
878E LD (SIZEL),A 32F380
8791 CALL READB CDA789
8794 LD (SIZEH),A 32F480
8797 CALL READB CDA789
879A CALL READB CDA789
879D CALL READB CDA789
87A0 CALL READB CDA789
87A3LOADXCALL BRKCK CDD38A
87A6 JP Z,BRKER CA7283
87A9 CALL READB CDA789
87AC JR NZ,LOADX 20F5
87AE LD A,$04 3E04
87b0 CALL SENDB CD408A
87B3 LD A,$20 3E20
87B5 CALL SENDB CD408A
87B8 LD HL,FILNA 211580
87BBLOAD6LD A,(HL) 7E
87BC PUSH AF F5
87BD CALL SENDB CD408A
87C0 INC HL 23
87C1 POP AF F1
87C2 CP CR FE0D
87C4 JR NZ,LOAD6 20F5
87C6LOADYCALL WAIT CDDB85
87C9 CALL BRKCK CDD38A
87CC JP Z,BRKER CA7283
87CF CALL READB CDA789
87D2 LD A,(RSTAT) 3AEE80
87d5 CP $01 FE01
87D7 JR Z,LOADY 28ED
87D9 LD A,(RBYTE) 3AED80
87DC LD HL,(STAL) 2AF180
87DF LD BC,(SIZEL) ED4BF380
87E3 LD (COORD),BC ED433640
87E7LOAD7LD (HL),A 77
87E8 INC HL 23
87E9 DEC BC 0B
87EA XOR A AF
87EB CP B B8
87EC JR NZ,LOAD8 200A
87EE CP C B9
87EF JR NZ,LOAD8 2007
87F1;REWRITE ERROR CODE
87F1 XOR A AF
87f2 LD (ERRNO),A 323240
87F5 JP BASIC C36E81
87F8LOAD8CALL READB CDA789
87FB CALL BRKCK CDD38A
87FE JP Z,BRKER CA7283
8801 LD A,(RSTAT) 3AEE80
8804 CP $01 FE01
8806 JR Z,LOAD8 28F0
8808 LD A,(RBYTE) 3AED80
880B JR LOAD7 18DA
880D;;
880DERAS1LD C,$07 0E07
880FREERALD DE,FILNA 111580
8812 INC HL 23
8813ERAS2LD A,(HL) 7E
8814 CP $0B FE0B
8816 JR Z,ERAS3 2808
8818 CALL ZXASC CD3789
881B LD (DE),A 12
881C INC HL 23
881D INC DE 13
881E JR ERAS2 18F3
8820ERAS3LD A,CR 3E0D
8822 LD (DE),A 12
8823 PUSH BC C5
8824 CALL WAIT CDDB85
8827 POP BC C1
8828 LD A,C 79
8829 CALL SENDB CD408A
882C LD A,$20 3E20
882E CALL SENDB CD408A
8831 LD HL,FILNA 211580
8834ERAS4LD A,(HL) 7E
8835 PUSH AF F5
8836 CALL SENDB CD408A
8839 INC HL 23
883A POP AF F1
883B CP CR FE0D
883D JR NZ,ERAS4 20F5
883FERAS5CALL WAIT CDDB85
8842 CALL BRKCK CDD38A
8845 JP Z,BRKER CA7283
8848 CALL READB CDA789
884B LD A,(RSTAT) 3AEE80
884E CP $01 FE01
8850 JR Z,ERAS5 28ED
8852 LD A,(RBYTE) 3AED80
8855 CP $3E FE3E
8857 JR Z,EROK 2823
8859 CP $43 FE43
885B JR NZ,NER1 2005
885D LD DE,TXC 11DC82
8860 JR ERERR 1810
8862NER1 CP $44 FE44
8864 JR NZ,NER2 2005
8866 LD DE,TXD 11F582
8869 JR ERERR 1807
886BNER2 CP $46 FE46
886D JR NZ,ERAS5 20D0
886F LD DE,TXE 110283
8872ERERRLD (ERRNR),DE ED530281
8876 CALL CLBUF CD9283
8879 JP ERROR C37983
887C;;
887cEROK CALL READB CDA789
887F JP BASIC C36E81
8882;;
8882TEX BIT 7,(IY+$08) FDCB087E
8886 RET Z C8
8887;;
8887TEX1 LD A,($403A) 3A3A40
888A CP $03 FE03
888C RET C D8
888D;;
888D LD A,E 7B
888E PUSH BC C5
888F PUSH HL E5
8890 RES 7,A CBBF
8892 LD C,A 4F
8893 AND $60 E660
8895ASCZXJR Z,CTCHR 2811
8897 BIT 6,C CB71
8899 JR Z,CDCON 2802
889B RES 5,C CBA9
889DCDCONXOR A AF
889E LD B,A 47
889F LD HL,ASCZX 219588
88A2 ADD HL,BC 09
88A3 LD A,(HL) 7E
88A4 RST 10 D7
88A5 POP HL E1
88A6 POP BC C1
88A7 RET C9
88A8CTCHRLD A,C 79
88a9 CP CR FE0D
88AB JR NZ,NOCR 2003
88AD LD A,$76 3E76
88AF RST 10 D7
88B0NOCR POP HL E1
88B1 POP BC C1
88B2 RET C9
88B3 NOP 00
88B4 NOP 00
88B5 001B0B0C0D18150B
88BD 101117151A161B18
88C5 1C1D1E1F20212223
88CD 24250E191314120F
88D5 A6262728292A2B2C
88DD 2D2E2F3031323334
88E5 35363738393A3B3C
88ed 3D3E3F1018110E16
88F5 NOP 00
88F6 NOP 00
88F7;;
88F7ASCII2020202020202020202020
8902 2223247E3F28293E3C3D
890C 2B2D2A5C3B2C2E
8913 30313233343536373839
891D 4142434445464748494A4B
8928 4C4D4E4F50515253545556
8933 5758595A
8937;;
8937ZXASCPUSH BC C5
8938 PUSH HL E5
8939 LD HL,ASCII 21F788
893C LD B,$00 0600
893e AND $3F E63F
8940 LD C,A 4F
8941 ADD HL,BC 09
8942 LD A,(HL) 7E
8943 POP HL E1
8944 POP BC C1
8945 RET C9
8946;;
8946INIT CALL FAST CDE702
8949 LD A,$CF 3ECF
894B OUT CTRL,A D357
894D LD A,$F8 3EF8
894F OUT CTRL,A D357
8951 XOR A AF
8952 OUT DATA,A D347
8954 LD A,CR 3E0D
8956 CALL SENDB CD408A
8959 LD A,$53 3E53
895B CALL SENDB CD408A
895E LD A,$43 3E43
8960 CALL SENDB CD408A
8963 LD A,$53 3E53
8965 CALL SENDB CD408A
8968 LD A,CR 3E0D
896A CALL SENDB CD408A
896D CALL WAIT CDDB85
8970INITWCALL WAIT CDDB85
8973 CALL BRKCK CDD38A
8976 JR Z,INIBR 282B
8978 CALL READB CDA789
897B CP $3E FE3E
897D JR NZ,INITW 20F1
897f CALL CLBUF CD9283
8982 LD A,CR 3E0D
8984 CALL SENDB CD408A
8987 CALL WAIT CDDB85
898A CALL READB CDA789
898D CP $3E FE3E
898F JR NZ,INIER 2007
8991 CALL CLBUF CD9283
8994 CALL CLBUF CD9283
8997 RET C9
8998;;
8998INIERLD DE,TXG 112383
899B LD (ERRNR),DE ED530281
899F; DROP RETURN ADDRESS
899F POP AF F1
89A0 JP ERROR C37983
89a3;;
89A3;;BREAK: DROP RETUR ADDRESS
89A3INIBRPOP AF F1
89A4 JP BRKER C37283
89A7;;
89A7;;
89A7READBEXX D9
89A8 LD HL,$08FF 21FF08
89AB LD C,$04 0E04
89AD LD A,$01 3E01
89AF OUT DATA,A D347
89B1 XOR A AF
89B2 OUT DATA,A D347
89B4 INC A 3C
89B5 OUT DATA,A D347
89B7 LD A,$06 3E06
89b9 OUT DATA,A D347
89BB INC A 3C
89BC OUT DATA,A D347
89BE DEC A 3D
89BF OUT DATA,A D347
89C1 INC A 3C
89C2 OUT DATA,A D347
89C4 LD A,C 79
89C5 OUT DATA,A D347
89C7 INC A 3C
89C8 OUT DATA,A D347
89CA;;
89CA; CALL RE1 CD1189
89CA IN A,DATA DB47
89CC;BIT 3 -> CY
89CC AND H A4
89cd;A IST NUN 0 ODER 8
89CD;ADDIEREN VON $FF:
89CD;CY BEI 8, KEIN CY BEI 0
89CD ADD A,L 85
89CE;CY -> B0
89CE RL B CB10
89D0 LD A,C 79
89D1 OUT DATA,A D347
89D3 INC A 3C
89D4 OUT DATA,A D347
89D6;;
89D6; CALL RE1 CD1189
89D6 IN A,DATA DB47
89D8 AND H A4
89D9 ADD A,L 85
89DA RL B CB10
89dc LD A,C 79
89DD OUT DATA,A D347
89DF INC A 3C
89E0 OUT DATA,A D347
89E2;;
89E2; CALL RE1 CD1189
89E2 IN A,DATA DB47
89E4 AND H A4
89E5 ADD A,L 85
89E6 RL B CB10
89E8 LD A,C 79
89E9 OUT DATA,A D347
89EB INC A 3C
89EC OUT DATA,A D347
89EE;;
89EE; CALL RE1 CD1189
89ee IN A,DATA DB47
89F0 AND H A4
89F1 ADD A,L 85
89F2 RL B CB10
89F4 LD A,C 79
89F5 OUT DATA,A D347
89F7 INC A 3C
89F8 OUT DATA,A D347
89FA;;
89FA; CALL RE1 CD1189
89FA IN A,DATA DB47
89FC AND H A4
89FD ADD A,L 85
89FE RL B CB10
8A00 LD A,C 79
8A01 OUT DATA,A D347
8a03 INC A 3C
8A04 OUT DATA,A D347
8A06;;
8A06; CALL RE1 CD1189
8A06 IN A,DATA DB47
8A08 AND H A4
8A09 ADD A,L 85
8A0A RL B CB10
8A0C LD A,C 79
8A0D OUT DATA,A D347
8A0F INC A 3C
8A10 OUT DATA,A D347
8A12;;
8A12; CALL RE1 CD1189
8A12 IN A,DATA DB47
8A14 AND H A4
8a15 ADD A,L 85
8A16 RL B CB10
8A18 LD A,C 79
8A19 OUT DATA,A D347
8A1B INC A 3C
8A1C OUT DATA,A D347
8A1E;;
8A1E; CALL RE1 CD1189
8A1E IN A,DATA DB47
8A20 AND H A4
8A21 ADD A,L 85
8A22 RL B CB10
8A24 LD A,C 79
8A25 OUT DATA,A D347
8A27 INC A 3C
8A28 OUT DATA,A D347
8a2a;;
8A2A IN A,DATA DB47
8A2C BIT 3,A CB5F
8A2E LD A,$00 3E00
8A30 JR Z,REB2 2801
8A32 INC A 3C
8A33REB2 LD (RSTAT),A 32EE80
8A36 LD A,$F0 3EF0
8A38 OUT DATA,A D347
8A3A LD A,B 78
8A3B LD (RBYTE),A 32ED80
8A3E EXX D9
8A3F RET C9
8A40;;
8A40;;
8A40SENDBEXX D9
8a41 LD B,A 47
8A42 LD C,$04 0E04
8A44 LD D,$02 1602
8A46 LD A,$01 3E01
8A48 OUT DATA,A D347
8A4A DEC A 3D
8A4B OUT DATA,A D347
8A4D INC A 3C
8A4E OUT DATA,A D347
8A50 LD A,$06 3E06
8A52 OUT DATA,A D347
8A54 INC A 3C
8A55 OUT DATA,A D347
8A57 LD A,C 79
8A58 OUT DATA,A D347
8A5A INC A 3C
8a5b OUT DATA,A D347
8A5D DEC A 3D
8A5E OUT DATA,A D347
8A60 INC A 3C
8A61 OUT DATA,A D347
8A63;;
8A63 LD A,C 79
8A64 BIT 7,B CB78
8A66 JR Z,SEB7 2801
8A68 ADD A,D 82
8A69SEB7 OUT DATA,A D347
8A6B INC A 3C
8A6C OUT DATA,A D347
8A6E;;
8A6E LD A,C 79
8A6F BIT 6,B CB70
8a71 JR Z,SEB6 2801
8A73 ADD A,D 82
8A74SEB6 OUT DATA,A D347
8A76 INC A 3C
8A77 OUT DATA,A D347
8A79;;
8A79 LD A,C 79
8A7A BIT 5,B CB68
8A7C JR Z,SEB5 2801
8A7E ADD A,D 82
8A7FSEB5 OUT DATA,A D347
8A81 INC A 3C
8A82 OUT DATA,A D347
8A84;;
8A84 LD A,C 79
8A85 BIT 4,B CB60
8a87 JR Z,SEB4 2801
8A89 ADD A,D 82
8A8ASEB4 OUT DATA,A D347
8A8C INC A 3C
8A8D OUT DATA,A D347
8A8F;;
8A8F LD A,C 79
8A90 BIT 3,B CB58
8A92 JR Z,SEB3 2801
8A94 ADD A,D 82
8A95SEB3 OUT DATA,A D347
8A97 INC A 3C
8A98 OUT DATA,A D347
8A9A;;
8A9A LD A,C 79
8A9B BIT 2,B CB50
8a9d JR Z,SEB2 2801
8A9F ADD A,D 82
8AA0SEB2 OUT DATA,A D347
8AA2 INC A 3C
8AA3 OUT DATA,A D347
8AA5;;
8AA5 LD A,C 79
8AA6 BIT 1,B CB48
8AA8 JR Z,SEB1 2801
8AAA ADD A,D 82
8AABSEB1 OUT DATA,A D347
8AAD INC A 3C
8AAE OUT DATA,A D347
8AB0;;
8AB0 LD A,C 79
8AB1 BIT 0,B CB40
8ab3 JR Z,SEB0 2801
8AB5 ADD A,D 82
8AB6SEB0 OUT DATA,A D347
8AB8 INC A 3C
8AB9 OUT DATA,A D347
8ABB;;
8ABB LD A,C 79
8ABC OUT DATA,A D347
8ABE IN A,DATA DB47
8AC0 AND $08 E608
8AC2 LD B,A 47
8AC3 BIT 3,A CB5F
8AC5 LD A,$05 3E05
8AC7 OUT DATA,A D347
8AC9 LD A,C 79
8ACA OUT DATA,A D347
8acc LD A,$F0 3EF0
8ACE OUT DATA,A D347
8AD0 LD A,B 78
8AD1 EXX D9
8AD2 RET C9
8AD3;;
8AD3BRKCKLD A,$FD 3EFD
8AD5 IN A,$FE DBFE
8AD5 IN A,$FE DBFE
8AD7 BIT 0,A CB47
8AD9 RET Z C8
8ADA LD A,$EF 3EEF
8ADC IN A,$FE DBFE
8ADE BIT 4,A CB67
8AE0 RET C9
8AE1;---------------------------
The LOAD routine starts at label LOAD1. During/after load the following systemvariables are modified:
COORDS (16438/39) are used to return the length of the loaded memory block to a calling BASIC program (or the "graphic" user interface UFM sitting "above" the driver)
) to the calling program.
Modifying those systemvariables does normally not affect a loaded BASIC program ....
R2BAS is the label to jump back to a calling BASIC program.
R2MC is the label to jump back to a calling M/C program (e. g. UFM).