Home » Personal collection » Acorn hard disk » files » BEEB » DiscROM
DiscROM
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Personal collection » Acorn hard disk » files » BEEB |
Filename: | DiscROM |
Read OK: | ✔ |
File size: | 0F2C bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM 20REM 30REM 40REM 50REM 60: 70A%=0:X%=1:os=(USR &FFF4 AND &FF00)/256 80: 90: 100IF os=3 THEN PROCmaster 110status=wd1770:track=wd1770+1 120sector=wd1770+2:data=wd1770+3 130DIM code 1000 140FOR pass=0 TO 3 STEP 3 150P%=&8000:O%=code 160[OPT pass+4 170EQUB 0:EQUB 0:EQUB 0 180JMP service 190EQUB &82 200EQUB copy AND &FF:EQUB 1 210EQUS "Disc Access ROM" 220.copy EQUB 0 230EQUS "(C) BEEBUG 1989":EQUB 0 240: 250.service 260CMP #8:BEQ osword:RTS 270.osword LDA &EF:CMP #116 280BEQ osword2 LDA #8:RTS 290.osword2 TYA:PHA:PHP 300CLI:JSR discop:PLP 310PLA:TAY:LDX &F4:LDA #0:RTS 320: 330.discop LDA &F0:STA &BE 340LDA &F1:STA &BF:LDY #10 350.discop2 LDA (&F0),Y:STA &B0,Y 360DEY:BPL discop2 370LDA &B0:JSR setnmi 380TSX:STX &A4 390LDA &B5:JSR set1770 400JSR seek 410LDA &B0:JSR transfer 420LDA &BA:LDY #10:STA (&BE),Y 430JMP nmioff 440: 450.seek 460LDA &BA:CMP #&FF:BNE seek2 470LDA &B9:AND #3 480JSR command:LDA #0:STA &BA 490.seek2 LDA &BA:STA track 500LDA &B6:STA data 510LDA &B7:STA sector 520LDA &B9:AND #3:ORA #16 530JSR command:LDA track 540STA &BA:RTS 550: 560.transfer 570LDA #&80:LDX &B0:CPX #0:BEQ read 580LDA #&A0:CPX #1:BEQ write:LDA #&F0 590.write LDY track:CPY #60:BCS read 600ORA #2 610.read CPX #3:BCS done 620PHA:LDA &B7:STA sector:PLA 630JSR comm:DEC &B8 640BEQ done:LDA &B0:CMP #2:BEQ done 650INC &B7:LDA &B5:LDX #10 660CMP #8:BCS ss:LDX #16 670.ss CPX &B7:BNE transfer 680LDA #0:STA &B7 690INC &B6:JSR seek:JMP transfer 700.done RTS 710: 720.set1770 730LDX &B5:LDA ctab,X:STA control 740LDA status:AND #1:BEQ set17702 750LDA #&D0:STA status 760.set17702 RTS 770: 780.command 790PHA:LDA #0 800STA &A1:STA &A2 805LDA #17:STA &A0 810.command2 LDA status:AND #1 820BNE command2:PLA:STA status 825CMP #&F0:BCS ffcomm 830.command3 BIT &FF:BMI error3 840LDA &A2:BEQ command3 850RTS 851.ffcomm LDA status:ROR A 852BCC ffcomm 853.ffcomm2 BIT &FF:BMI error3 854LDA status:ROR A:BCS ffcomm2 855RTS 860: 870.comm 880PHA:LDA #6:STA &A3 890.comm2 PLA:PHA:JSR command 900LDA &A1:BNE error:PLA:RTS 910.error LDA &A0:AND #&40:BNE error3 920LDA &A0:AND #&10 930BEQ error2:LDA #&FF:STA &BA 940JSR seek 950.error2 DEC &A3:BNE comm2 960.error3 LDX &A4:TXS 970LDA #&FF:LDY #0:STA (&BE),Y 980LDA &A0:INY:STA (&BE),Y 990JMP nmioff 1000: 1010.nmicode 1020PHA:LDA status:AND #&1F:CMP #3 1030BNE notdata 1040LDA data:.nbase STA &FFFF 1050INC nbase-nmicode+&D01 1060BNE nohigh 1070INC nbase-nmicode+&D02 1080.nohigh PLA:RTI 1090.notdata AND #&58:BEQ noerr 1100STA &A0:LDA #1:STA &A1 1110.noerr LDA #1:STA &A2:PLA:RTI 1120: 1130.nmicode2 1140LDA &FFFF:STA data 1150INC nbase-nmicode+&CFE 1160BNE nohigh2 1170INC nbase-nmicode+&CFF 1180.nohigh2 1190: 1200.setnmi 1210PHA:LDA #143:LDX #12 1220JSR &FFF4:STY &A7 1230LDX #nmicode2-nmicode-1 1240.setnmi2 LDA nmicode,X 1250STA &D00,X:DEX:BPL setnmi2 1260PLA:BEQ setnmi4 1270LDX #nohigh2-nmicode2-1 1280.setnmi3 LDA nmicode2,X 1290STA &D0A,X:DEX:BPL setnmi3 1300LDA #&5F:STA &D05 1310LDA &B1:STA &D0B 1320LDA &B2:STA &D0C:RTS 1330.setnmi4 LDA &B1:STA &D0E 1340LDA &B2:STA &D0F:RTS 1350: 1360.nmioff 1370LDA #&40:STA &D00:LDA #143 1380LDX #11:LDY &A7:JMP &FFF4 1390: 1400.ctab EQUB line1:EQUB line1+1 1410EQUB line1:EQUB line1+1 1420EQUB line2:EQUB line2+1 1430EQUB line2:EQUB line2+1 1440EQUB line3:EQUB line3+1 1450EQUB line3:EQUB line3+1 1460EQUB line4:EQUB line4+1 1470EQUB line4:EQUB line4+1 1480]NEXT 1490OSCLI ("SAVE DiscROM "+STR$~code+" "+STR$~O%) 1500END 1510: 1520: 1530: 1540: 1550: 1560: 1570: 1580: 1590: 1600: 1610: 1620: 1630: 1640DEF PROCmaster 1650control=&FE24 1660wd1770=&FE28 1670line1=5:line2=&15:line3=&25:line4=&35 1680ENDPROC
00000000 20 20 20 31 30 52 45 4d 0d 20 20 20 32 30 52 45 | 10REM. 20RE| 00000010 4d 0d 20 20 20 33 30 52 45 4d 0d 20 20 20 34 30 |M. 30REM. 40| 00000020 52 45 4d 0d 20 20 20 35 30 52 45 4d 0d 20 20 20 |REM. 50REM. | 00000030 36 30 3a 0d 20 20 20 37 30 41 25 3d 30 3a 58 25 |60:. 70A%=0:X%| 00000040 3d 31 3a 6f 73 3d 28 55 53 52 20 26 46 46 46 34 |=1:os=(USR &FFF4| 00000050 20 41 4e 44 20 26 46 46 30 30 29 2f 32 35 36 0d | AND &FF00)/256.| 00000060 20 20 20 38 30 3a 0d 20 20 20 39 30 3a 0d 20 20 | 80:. 90:. | 00000070 31 30 30 49 46 20 6f 73 3d 33 20 54 48 45 4e 20 |100IF os=3 THEN | 00000080 50 52 4f 43 6d 61 73 74 65 72 0d 20 20 31 31 30 |PROCmaster. 110| 00000090 73 74 61 74 75 73 3d 77 64 31 37 37 30 3a 74 72 |status=wd1770:tr| 000000a0 61 63 6b 3d 77 64 31 37 37 30 2b 31 0d 20 20 31 |ack=wd1770+1. 1| 000000b0 32 30 73 65 63 74 6f 72 3d 77 64 31 37 37 30 2b |20sector=wd1770+| 000000c0 32 3a 64 61 74 61 3d 77 64 31 37 37 30 2b 33 0d |2:data=wd1770+3.| 000000d0 20 20 31 33 30 44 49 4d 20 63 6f 64 65 20 31 30 | 130DIM code 10| 000000e0 30 30 0d 20 20 31 34 30 46 4f 52 20 70 61 73 73 |00. 140FOR pass| 000000f0 3d 30 20 54 4f 20 33 20 53 54 45 50 20 33 0d 20 |=0 TO 3 STEP 3. | 00000100 20 31 35 30 50 25 3d 26 38 30 30 30 3a 4f 25 3d | 150P%=&8000:O%=| 00000110 63 6f 64 65 0d 20 20 31 36 30 5b 4f 50 54 20 70 |code. 160[OPT p| 00000120 61 73 73 2b 34 0d 20 20 31 37 30 45 51 55 42 20 |ass+4. 170EQUB | 00000130 20 30 3a 45 51 55 42 20 30 3a 45 51 55 42 20 20 | 0:EQUB 0:EQUB | 00000140 30 0d 20 20 31 38 30 4a 4d 50 20 73 65 72 76 69 |0. 180JMP servi| 00000150 63 65 0d 20 20 31 39 30 45 51 55 42 20 26 38 32 |ce. 190EQUB &82| 00000160 0d 20 20 32 30 30 45 51 55 42 20 63 6f 70 79 20 |. 200EQUB copy | 00000170 41 4e 44 20 26 46 46 3a 45 51 55 42 20 31 0d 20 |AND &FF:EQUB 1. | 00000180 20 32 31 30 45 51 55 53 20 22 44 69 73 63 20 41 | 210EQUS "Disc A| 00000190 63 63 65 73 73 20 52 4f 4d 22 0d 20 20 32 32 30 |ccess ROM". 220| 000001a0 2e 63 6f 70 79 20 45 51 55 42 20 30 0d 20 20 32 |.copy EQUB 0. 2| 000001b0 33 30 45 51 55 53 20 22 28 43 29 20 42 45 45 42 |30EQUS "(C) BEEB| 000001c0 55 47 20 31 39 38 39 22 3a 45 51 55 42 20 30 0d |UG 1989":EQUB 0.| 000001d0 20 20 32 34 30 3a 0d 20 20 32 35 30 2e 73 65 72 | 240:. 250.ser| 000001e0 76 69 63 65 0d 20 20 32 36 30 43 4d 50 20 20 23 |vice. 260CMP #| 000001f0 38 3a 42 45 51 20 6f 73 77 6f 72 64 3a 52 54 53 |8:BEQ osword:RTS| 00000200 0d 20 20 32 37 30 2e 6f 73 77 6f 72 64 20 4c 44 |. 270.osword LD| 00000210 41 20 26 45 46 3a 43 4d 50 20 23 31 31 36 0d 20 |A &EF:CMP #116. | 00000220 20 32 38 30 42 45 51 20 6f 73 77 6f 72 64 32 20 | 280BEQ osword2 | 00000230 4c 44 41 20 23 38 3a 52 54 53 0d 20 20 32 39 30 |LDA #8:RTS. 290| 00000240 2e 6f 73 77 6f 72 64 32 20 54 59 41 3a 50 48 41 |.osword2 TYA:PHA| 00000250 3a 50 48 50 0d 20 20 33 30 30 43 4c 49 3a 4a 53 |:PHP. 300CLI:JS| 00000260 52 20 64 69 73 63 6f 70 3a 50 4c 50 0d 20 20 33 |R discop:PLP. 3| 00000270 31 30 50 4c 41 3a 54 41 59 3a 4c 44 58 20 26 46 |10PLA:TAY:LDX &F| 00000280 34 3a 4c 44 41 20 23 30 3a 52 54 53 0d 20 20 33 |4:LDA #0:RTS. 3| 00000290 32 30 3a 0d 20 20 33 33 30 2e 64 69 73 63 6f 70 |20:. 330.discop| 000002a0 20 4c 44 41 20 20 26 46 30 3a 53 54 41 20 26 42 | LDA &F0:STA &B| 000002b0 45 0d 20 20 33 34 30 4c 44 41 20 26 46 31 3a 53 |E. 340LDA &F1:S| 000002c0 54 41 20 26 42 46 3a 4c 44 59 20 23 31 30 0d 20 |TA &BF:LDY #10. | 000002d0 20 33 35 30 2e 64 69 73 63 6f 70 32 20 4c 44 41 | 350.discop2 LDA| 000002e0 20 28 26 46 30 29 2c 59 3a 53 54 41 20 26 42 30 | (&F0),Y:STA &B0| 000002f0 2c 59 0d 20 20 33 36 30 44 45 59 3a 42 50 4c 20 |,Y. 360DEY:BPL | 00000300 64 69 73 63 6f 70 32 0d 20 20 33 37 30 4c 44 41 |discop2. 370LDA| 00000310 20 26 42 30 3a 4a 53 52 20 73 65 74 6e 6d 69 0d | &B0:JSR setnmi.| 00000320 20 20 33 38 30 54 53 58 3a 53 54 58 20 26 41 34 | 380TSX:STX &A4| 00000330 0d 20 20 33 39 30 4c 44 41 20 26 42 35 3a 4a 53 |. 390LDA &B5:JS| 00000340 52 20 73 65 74 31 37 37 30 0d 20 20 34 30 30 4a |R set1770. 400J| 00000350 53 52 20 73 65 65 6b 0d 20 20 34 31 30 4c 44 41 |SR seek. 410LDA| 00000360 20 26 42 30 3a 4a 53 52 20 74 72 61 6e 73 66 65 | &B0:JSR transfe| 00000370 72 0d 20 20 34 32 30 4c 44 41 20 26 42 41 3a 4c |r. 420LDA &BA:L| 00000380 44 59 20 23 31 30 3a 53 54 41 20 28 26 42 45 29 |DY #10:STA (&BE)| 00000390 2c 59 0d 20 20 34 33 30 4a 4d 50 20 6e 6d 69 6f |,Y. 430JMP nmio| 000003a0 66 66 0d 20 20 34 34 30 3a 0d 20 20 34 35 30 2e |ff. 440:. 450.| 000003b0 73 65 65 6b 0d 20 20 34 36 30 4c 44 41 20 26 42 |seek. 460LDA &B| 000003c0 41 3a 43 4d 50 20 23 26 46 46 3a 42 4e 45 20 73 |A:CMP #&FF:BNE s| 000003d0 65 65 6b 32 0d 20 20 34 37 30 4c 44 41 20 26 42 |eek2. 470LDA &B| 000003e0 39 3a 41 4e 44 20 23 33 0d 20 20 34 38 30 4a 53 |9:AND #3. 480JS| 000003f0 52 20 63 6f 6d 6d 61 6e 64 3a 4c 44 41 20 23 30 |R command:LDA #0| 00000400 3a 53 54 41 20 26 42 41 0d 20 20 34 39 30 2e 73 |:STA &BA. 490.s| 00000410 65 65 6b 32 20 4c 44 41 20 26 42 41 3a 53 54 41 |eek2 LDA &BA:STA| 00000420 20 74 72 61 63 6b 0d 20 20 35 30 30 4c 44 41 20 | track. 500LDA | 00000430 26 42 36 3a 53 54 41 20 64 61 74 61 0d 20 20 35 |&B6:STA data. 5| 00000440 31 30 4c 44 41 20 26 42 37 3a 53 54 41 20 73 65 |10LDA &B7:STA se| 00000450 63 74 6f 72 0d 20 20 35 32 30 4c 44 41 20 26 42 |ctor. 520LDA &B| 00000460 39 3a 41 4e 44 20 23 33 3a 4f 52 41 20 23 31 36 |9:AND #3:ORA #16| 00000470 0d 20 20 35 33 30 4a 53 52 20 63 6f 6d 6d 61 6e |. 530JSR comman| 00000480 64 3a 4c 44 41 20 74 72 61 63 6b 0d 20 20 35 34 |d:LDA track. 54| 00000490 30 53 54 41 20 26 42 41 3a 52 54 53 0d 20 20 35 |0STA &BA:RTS. 5| 000004a0 35 30 3a 0d 20 20 35 36 30 2e 74 72 61 6e 73 66 |50:. 560.transf| 000004b0 65 72 0d 20 20 35 37 30 4c 44 41 20 23 26 38 30 |er. 570LDA #&80| 000004c0 3a 4c 44 58 20 26 42 30 3a 43 50 58 20 23 30 3a |:LDX &B0:CPX #0:| 000004d0 42 45 51 20 72 65 61 64 0d 20 20 35 38 30 4c 44 |BEQ read. 580LD| 000004e0 41 20 23 26 41 30 3a 43 50 58 20 23 31 3a 42 45 |A #&A0:CPX #1:BE| 000004f0 51 20 77 72 69 74 65 3a 4c 44 41 20 23 26 46 30 |Q write:LDA #&F0| 00000500 0d 20 20 35 39 30 2e 77 72 69 74 65 20 4c 44 59 |. 590.write LDY| 00000510 20 74 72 61 63 6b 3a 43 50 59 20 23 36 30 3a 42 | track:CPY #60:B| 00000520 43 53 20 72 65 61 64 0d 20 20 36 30 30 4f 52 41 |CS read. 600ORA| 00000530 20 23 32 0d 20 20 36 31 30 2e 72 65 61 64 20 43 | #2. 610.read C| 00000540 50 58 20 23 33 3a 42 43 53 20 64 6f 6e 65 0d 20 |PX #3:BCS done. | 00000550 20 36 32 30 50 48 41 3a 4c 44 41 20 26 42 37 3a | 620PHA:LDA &B7:| 00000560 53 54 41 20 73 65 63 74 6f 72 3a 50 4c 41 0d 20 |STA sector:PLA. | 00000570 20 36 33 30 4a 53 52 20 63 6f 6d 6d 3a 44 45 43 | 630JSR comm:DEC| 00000580 20 26 42 38 0d 20 20 36 34 30 42 45 51 20 64 6f | &B8. 640BEQ do| 00000590 6e 65 3a 4c 44 41 20 26 42 30 3a 43 4d 50 20 23 |ne:LDA &B0:CMP #| 000005a0 32 3a 42 45 51 20 64 6f 6e 65 0d 20 20 36 35 30 |2:BEQ done. 650| 000005b0 49 4e 43 20 26 42 37 3a 4c 44 41 20 26 42 35 3a |INC &B7:LDA &B5:| 000005c0 4c 44 58 20 23 31 30 0d 20 20 36 36 30 43 4d 50 |LDX #10. 660CMP| 000005d0 20 23 38 3a 42 43 53 20 73 73 3a 4c 44 58 20 23 | #8:BCS ss:LDX #| 000005e0 31 36 0d 20 20 36 37 30 2e 73 73 20 43 50 58 20 |16. 670.ss CPX | 000005f0 26 42 37 3a 42 4e 45 20 74 72 61 6e 73 66 65 72 |&B7:BNE transfer| 00000600 0d 20 20 36 38 30 4c 44 41 20 23 30 3a 53 54 41 |. 680LDA #0:STA| 00000610 20 26 42 37 0d 20 20 36 39 30 49 4e 43 20 26 42 | &B7. 690INC &B| 00000620 36 3a 4a 53 52 20 73 65 65 6b 3a 4a 4d 50 20 74 |6:JSR seek:JMP t| 00000630 72 61 6e 73 66 65 72 0d 20 20 37 30 30 2e 64 6f |ransfer. 700.do| 00000640 6e 65 20 52 54 53 0d 20 20 37 31 30 3a 0d 20 20 |ne RTS. 710:. | 00000650 37 32 30 2e 73 65 74 31 37 37 30 0d 20 20 37 33 |720.set1770. 73| 00000660 30 4c 44 58 20 26 42 35 3a 4c 44 41 20 63 74 61 |0LDX &B5:LDA cta| 00000670 62 2c 58 3a 53 54 41 20 63 6f 6e 74 72 6f 6c 0d |b,X:STA control.| 00000680 20 20 37 34 30 4c 44 41 20 73 74 61 74 75 73 3a | 740LDA status:| 00000690 41 4e 44 20 23 31 3a 42 45 51 20 73 65 74 31 37 |AND #1:BEQ set17| 000006a0 37 30 32 0d 20 20 37 35 30 4c 44 41 20 23 26 44 |702. 750LDA #&D| 000006b0 30 3a 53 54 41 20 73 74 61 74 75 73 0d 20 20 37 |0:STA status. 7| 000006c0 36 30 2e 73 65 74 31 37 37 30 32 20 52 54 53 0d |60.set17702 RTS.| 000006d0 20 20 37 37 30 3a 0d 20 20 37 38 30 2e 63 6f 6d | 770:. 780.com| 000006e0 6d 61 6e 64 0d 20 20 37 39 30 50 48 41 3a 4c 44 |mand. 790PHA:LD| 000006f0 41 20 23 30 0d 20 20 38 30 30 53 54 41 20 26 41 |A #0. 800STA &A| 00000700 31 3a 53 54 41 20 26 41 32 0d 20 20 38 30 35 4c |1:STA &A2. 805L| 00000710 44 41 20 23 31 37 3a 53 54 41 20 26 41 30 0d 20 |DA #17:STA &A0. | 00000720 20 38 31 30 2e 63 6f 6d 6d 61 6e 64 32 20 4c 44 | 810.command2 LD| 00000730 41 20 73 74 61 74 75 73 3a 41 4e 44 20 23 31 0d |A status:AND #1.| 00000740 20 20 38 32 30 42 4e 45 20 63 6f 6d 6d 61 6e 64 | 820BNE command| 00000750 32 3a 50 4c 41 3a 53 54 41 20 73 74 61 74 75 73 |2:PLA:STA status| 00000760 0d 20 20 38 32 35 43 4d 50 20 23 26 46 30 3a 42 |. 825CMP #&F0:B| 00000770 43 53 20 66 66 63 6f 6d 6d 0d 20 20 38 33 30 2e |CS ffcomm. 830.| 00000780 63 6f 6d 6d 61 6e 64 33 20 42 49 54 20 26 46 46 |command3 BIT &FF| 00000790 3a 42 4d 49 20 65 72 72 6f 72 33 0d 20 20 38 34 |:BMI error3. 84| 000007a0 30 4c 44 41 20 26 41 32 3a 42 45 51 20 63 6f 6d |0LDA &A2:BEQ com| 000007b0 6d 61 6e 64 33 0d 20 20 38 35 30 52 54 53 0d 20 |mand3. 850RTS. | 000007c0 20 38 35 31 2e 66 66 63 6f 6d 6d 20 4c 44 41 20 | 851.ffcomm LDA | 000007d0 73 74 61 74 75 73 3a 52 4f 52 20 41 0d 20 20 38 |status:ROR A. 8| 000007e0 35 32 42 43 43 20 66 66 63 6f 6d 6d 0d 20 20 38 |52BCC ffcomm. 8| 000007f0 35 33 2e 66 66 63 6f 6d 6d 32 20 42 49 54 20 26 |53.ffcomm2 BIT &| 00000800 46 46 3a 42 4d 49 20 65 72 72 6f 72 33 0d 20 20 |FF:BMI error3. | 00000810 38 35 34 4c 44 41 20 73 74 61 74 75 73 3a 52 4f |854LDA status:RO| 00000820 52 20 41 3a 42 43 53 20 66 66 63 6f 6d 6d 32 0d |R A:BCS ffcomm2.| 00000830 20 20 38 35 35 52 54 53 0d 20 20 38 36 30 3a 0d | 855RTS. 860:.| 00000840 20 20 38 37 30 2e 63 6f 6d 6d 0d 20 20 38 38 30 | 870.comm. 880| 00000850 50 48 41 3a 4c 44 41 20 23 36 3a 53 54 41 20 26 |PHA:LDA #6:STA &| 00000860 41 33 0d 20 20 38 39 30 2e 63 6f 6d 6d 32 20 50 |A3. 890.comm2 P| 00000870 4c 41 3a 50 48 41 3a 4a 53 52 20 63 6f 6d 6d 61 |LA:PHA:JSR comma| 00000880 6e 64 0d 20 20 39 30 30 4c 44 41 20 26 41 31 3a |nd. 900LDA &A1:| 00000890 42 4e 45 20 65 72 72 6f 72 3a 50 4c 41 3a 52 54 |BNE error:PLA:RT| 000008a0 53 0d 20 20 39 31 30 2e 65 72 72 6f 72 20 4c 44 |S. 910.error LD| 000008b0 41 20 26 41 30 3a 41 4e 44 20 23 26 34 30 3a 42 |A &A0:AND #&40:B| 000008c0 4e 45 20 65 72 72 6f 72 33 0d 20 20 39 32 30 4c |NE error3. 920L| 000008d0 44 41 20 26 41 30 3a 41 4e 44 20 23 26 31 30 0d |DA &A0:AND #&10.| 000008e0 20 20 39 33 30 42 45 51 20 65 72 72 6f 72 32 3a | 930BEQ error2:| 000008f0 4c 44 41 20 23 26 46 46 3a 53 54 41 20 26 42 41 |LDA #&FF:STA &BA| 00000900 0d 20 20 39 34 30 4a 53 52 20 73 65 65 6b 0d 20 |. 940JSR seek. | 00000910 20 39 35 30 2e 65 72 72 6f 72 32 20 44 45 43 20 | 950.error2 DEC | 00000920 26 41 33 3a 42 4e 45 20 20 63 6f 6d 6d 32 0d 20 |&A3:BNE comm2. | 00000930 20 39 36 30 2e 65 72 72 6f 72 33 20 4c 44 58 20 | 960.error3 LDX | 00000940 26 41 34 3a 54 58 53 0d 20 20 39 37 30 4c 44 41 |&A4:TXS. 970LDA| 00000950 20 23 26 46 46 3a 4c 44 59 20 23 30 3a 53 54 41 | #&FF:LDY #0:STA| 00000960 20 28 26 42 45 29 2c 59 0d 20 20 39 38 30 4c 44 | (&BE),Y. 980LD| 00000970 41 20 26 41 30 3a 49 4e 59 3a 53 54 41 20 28 26 |A &A0:INY:STA (&| 00000980 42 45 29 2c 59 0d 20 20 39 39 30 4a 4d 50 20 6e |BE),Y. 990JMP n| 00000990 6d 69 6f 66 66 0d 20 31 30 30 30 3a 0d 20 31 30 |mioff. 1000:. 10| 000009a0 31 30 2e 6e 6d 69 63 6f 64 65 0d 20 31 30 32 30 |10.nmicode. 1020| 000009b0 50 48 41 3a 4c 44 41 20 73 74 61 74 75 73 3a 41 |PHA:LDA status:A| 000009c0 4e 44 20 23 26 31 46 3a 43 4d 50 20 23 33 0d 20 |ND #&1F:CMP #3. | 000009d0 31 30 33 30 42 4e 45 20 6e 6f 74 64 61 74 61 0d |1030BNE notdata.| 000009e0 20 31 30 34 30 4c 44 41 20 64 61 74 61 3a 2e 6e | 1040LDA data:.n| 000009f0 62 61 73 65 20 53 54 41 20 26 46 46 46 46 0d 20 |base STA &FFFF. | 00000a00 31 30 35 30 49 4e 43 20 6e 62 61 73 65 2d 6e 6d |1050INC nbase-nm| 00000a10 69 63 6f 64 65 2b 26 44 30 31 0d 20 31 30 36 30 |icode+&D01. 1060| 00000a20 42 4e 45 20 6e 6f 68 69 67 68 0d 20 31 30 37 30 |BNE nohigh. 1070| 00000a30 49 4e 43 20 6e 62 61 73 65 2d 6e 6d 69 63 6f 64 |INC nbase-nmicod| 00000a40 65 2b 26 44 30 32 0d 20 31 30 38 30 2e 6e 6f 68 |e+&D02. 1080.noh| 00000a50 69 67 68 20 50 4c 41 3a 52 54 49 0d 20 31 30 39 |igh PLA:RTI. 109| 00000a60 30 2e 6e 6f 74 64 61 74 61 20 41 4e 44 20 23 26 |0.notdata AND #&| 00000a70 35 38 3a 42 45 51 20 6e 6f 65 72 72 0d 20 31 31 |58:BEQ noerr. 11| 00000a80 30 30 53 54 41 20 26 41 30 3a 4c 44 41 20 23 31 |00STA &A0:LDA #1| 00000a90 3a 53 54 41 20 26 41 31 0d 20 31 31 31 30 2e 6e |:STA &A1. 1110.n| 00000aa0 6f 65 72 72 20 20 4c 44 41 20 23 31 3a 53 54 41 |oerr LDA #1:STA| 00000ab0 20 26 41 32 3a 50 4c 41 3a 52 54 49 0d 20 31 31 | &A2:PLA:RTI. 11| 00000ac0 32 30 3a 0d 20 31 31 33 30 2e 6e 6d 69 63 6f 64 |20:. 1130.nmicod| 00000ad0 65 32 0d 20 31 31 34 30 4c 44 41 20 26 46 46 46 |e2. 1140LDA &FFF| 00000ae0 46 3a 53 54 41 20 64 61 74 61 0d 20 31 31 35 30 |F:STA data. 1150| 00000af0 49 4e 43 20 6e 62 61 73 65 2d 6e 6d 69 63 6f 64 |INC nbase-nmicod| 00000b00 65 2b 26 43 46 45 0d 20 31 31 36 30 42 4e 45 20 |e+&CFE. 1160BNE | 00000b10 6e 6f 68 69 67 68 32 0d 20 31 31 37 30 49 4e 43 |nohigh2. 1170INC| 00000b20 20 6e 62 61 73 65 2d 6e 6d 69 63 6f 64 65 2b 26 | nbase-nmicode+&| 00000b30 43 46 46 0d 20 31 31 38 30 2e 6e 6f 68 69 67 68 |CFF. 1180.nohigh| 00000b40 32 0d 20 31 31 39 30 3a 0d 20 31 32 30 30 2e 73 |2. 1190:. 1200.s| 00000b50 65 74 6e 6d 69 0d 20 31 32 31 30 50 48 41 3a 4c |etnmi. 1210PHA:L| 00000b60 44 41 20 23 31 34 33 3a 4c 44 58 20 23 31 32 0d |DA #143:LDX #12.| 00000b70 20 31 32 32 30 4a 53 52 20 26 46 46 46 34 3a 53 | 1220JSR &FFF4:S| 00000b80 54 59 20 26 41 37 0d 20 31 32 33 30 4c 44 58 20 |TY &A7. 1230LDX | 00000b90 23 6e 6d 69 63 6f 64 65 32 2d 6e 6d 69 63 6f 64 |#nmicode2-nmicod| 00000ba0 65 2d 31 0d 20 31 32 34 30 2e 73 65 74 6e 6d 69 |e-1. 1240.setnmi| 00000bb0 32 20 4c 44 41 20 6e 6d 69 63 6f 64 65 2c 58 0d |2 LDA nmicode,X.| 00000bc0 20 31 32 35 30 53 54 41 20 26 44 30 30 2c 58 3a | 1250STA &D00,X:| 00000bd0 44 45 58 3a 42 50 4c 20 73 65 74 6e 6d 69 32 0d |DEX:BPL setnmi2.| 00000be0 20 31 32 36 30 50 4c 41 3a 42 45 51 20 73 65 74 | 1260PLA:BEQ set| 00000bf0 6e 6d 69 34 0d 20 31 32 37 30 4c 44 58 20 23 6e |nmi4. 1270LDX #n| 00000c00 6f 68 69 67 68 32 2d 6e 6d 69 63 6f 64 65 32 2d |ohigh2-nmicode2-| 00000c10 31 0d 20 31 32 38 30 2e 73 65 74 6e 6d 69 33 20 |1. 1280.setnmi3 | 00000c20 20 4c 44 41 20 6e 6d 69 63 6f 64 65 32 2c 58 0d | LDA nmicode2,X.| 00000c30 20 31 32 39 30 53 54 41 20 26 44 30 41 2c 58 3a | 1290STA &D0A,X:| 00000c40 44 45 58 3a 42 50 4c 20 73 65 74 6e 6d 69 33 0d |DEX:BPL setnmi3.| 00000c50 20 31 33 30 30 4c 44 41 20 23 26 35 46 3a 53 54 | 1300LDA #&5F:ST| 00000c60 41 20 26 44 30 35 0d 20 31 33 31 30 4c 44 41 20 |A &D05. 1310LDA | 00000c70 26 42 31 3a 53 54 41 20 26 44 30 42 0d 20 31 33 |&B1:STA &D0B. 13| 00000c80 32 30 4c 44 41 20 26 42 32 3a 53 54 41 20 26 44 |20LDA &B2:STA &D| 00000c90 30 43 3a 52 54 53 0d 20 31 33 33 30 2e 73 65 74 |0C:RTS. 1330.set| 00000ca0 6e 6d 69 34 20 4c 44 41 20 26 42 31 3a 53 54 41 |nmi4 LDA &B1:STA| 00000cb0 20 26 44 30 45 0d 20 31 33 34 30 4c 44 41 20 26 | &D0E. 1340LDA &| 00000cc0 42 32 3a 53 54 41 20 26 44 30 46 3a 52 54 53 0d |B2:STA &D0F:RTS.| 00000cd0 20 31 33 35 30 3a 0d 20 31 33 36 30 2e 6e 6d 69 | 1350:. 1360.nmi| 00000ce0 6f 66 66 0d 20 31 33 37 30 4c 44 41 20 23 26 34 |off. 1370LDA #&4| 00000cf0 30 3a 53 54 41 20 26 44 30 30 3a 4c 44 41 20 23 |0:STA &D00:LDA #| 00000d00 31 34 33 0d 20 31 33 38 30 4c 44 58 20 23 31 31 |143. 1380LDX #11| 00000d10 3a 4c 44 59 20 26 41 37 3a 4a 4d 50 20 26 46 46 |:LDY &A7:JMP &FF| 00000d20 46 34 0d 20 31 33 39 30 3a 0d 20 31 34 30 30 2e |F4. 1390:. 1400.| 00000d30 63 74 61 62 20 45 51 55 42 20 6c 69 6e 65 31 3a |ctab EQUB line1:| 00000d40 45 51 55 42 20 6c 69 6e 65 31 2b 31 0d 20 31 34 |EQUB line1+1. 14| 00000d50 31 30 45 51 55 42 20 6c 69 6e 65 31 3a 45 51 55 |10EQUB line1:EQU| 00000d60 42 20 6c 69 6e 65 31 2b 31 0d 20 31 34 32 30 45 |B line1+1. 1420E| 00000d70 51 55 42 20 6c 69 6e 65 32 3a 45 51 55 42 20 6c |QUB line2:EQUB l| 00000d80 69 6e 65 32 2b 31 0d 20 31 34 33 30 45 51 55 42 |ine2+1. 1430EQUB| 00000d90 20 6c 69 6e 65 32 3a 45 51 55 42 20 6c 69 6e 65 | line2:EQUB line| 00000da0 32 2b 31 0d 20 31 34 34 30 45 51 55 42 20 6c 69 |2+1. 1440EQUB li| 00000db0 6e 65 33 3a 45 51 55 42 20 6c 69 6e 65 33 2b 31 |ne3:EQUB line3+1| 00000dc0 0d 20 31 34 35 30 45 51 55 42 20 6c 69 6e 65 33 |. 1450EQUB line3| 00000dd0 3a 45 51 55 42 20 6c 69 6e 65 33 2b 31 0d 20 31 |:EQUB line3+1. 1| 00000de0 34 36 30 45 51 55 42 20 6c 69 6e 65 34 3a 45 51 |460EQUB line4:EQ| 00000df0 55 42 20 6c 69 6e 65 34 2b 31 0d 20 31 34 37 30 |UB line4+1. 1470| 00000e00 45 51 55 42 20 6c 69 6e 65 34 3a 45 51 55 42 20 |EQUB line4:EQUB | 00000e10 6c 69 6e 65 34 2b 31 0d 20 31 34 38 30 5d 4e 45 |line4+1. 1480]NE| 00000e20 58 54 0d 20 31 34 39 30 4f 53 43 4c 49 20 28 22 |XT. 1490OSCLI ("| 00000e30 53 41 56 45 20 44 69 73 63 52 4f 4d 20 22 2b 53 |SAVE DiscROM "+S| 00000e40 54 52 24 7e 63 6f 64 65 2b 22 20 20 22 2b 53 54 |TR$~code+" "+ST| 00000e50 52 24 7e 4f 25 29 0d 20 31 35 30 30 45 4e 44 0d |R$~O%). 1500END.| 00000e60 20 31 35 31 30 3a 0d 20 31 35 32 30 3a 0d 20 31 | 1510:. 1520:. 1| 00000e70 35 33 30 3a 0d 20 31 35 34 30 3a 0d 20 31 35 35 |530:. 1540:. 155| 00000e80 30 3a 0d 20 31 35 36 30 3a 0d 20 31 35 37 30 3a |0:. 1560:. 1570:| 00000e90 0d 20 31 35 38 30 3a 0d 20 31 35 39 30 3a 0d 20 |. 1580:. 1590:. | 00000ea0 31 36 30 30 3a 0d 20 31 36 31 30 3a 0d 20 31 36 |1600:. 1610:. 16| 00000eb0 32 30 3a 0d 20 31 36 33 30 3a 0d 20 31 36 34 30 |20:. 1630:. 1640| 00000ec0 44 45 46 20 50 52 4f 43 6d 61 73 74 65 72 0d 20 |DEF PROCmaster. | 00000ed0 31 36 35 30 63 6f 6e 74 72 6f 6c 3d 26 46 45 32 |1650control=&FE2| 00000ee0 34 0d 20 31 36 36 30 77 64 31 37 37 30 3d 26 46 |4. 1660wd1770=&F| 00000ef0 45 32 38 0d 20 31 36 37 30 6c 69 6e 65 31 3d 35 |E28. 1670line1=5| 00000f00 3a 6c 69 6e 65 32 3d 26 31 35 3a 6c 69 6e 65 33 |:line2=&15:line3| 00000f10 3d 26 32 35 3a 6c 69 6e 65 34 3d 26 33 35 0d 20 |=&25:line4=&35. | 00000f20 31 36 38 30 45 4e 44 50 52 4f 43 0d |1680ENDPROC.| 00000f2c