10datacastbuff=&7C00 20bigbuff=&5800 30REM This version saves big buff to disk 40REM see lines 3691+..., 600+... 50REM see lines 3881,2891,3621... 60REM + 920... - 3901 70endaddr=&7C00 80*KEY 9 SAVE"SEARCH"|MRUN|M 90*KEY 0 CLEAR|MMODE0|MLOAD"SEARCH"|ML.,100|M 100CLOSE#0 110MODE7 120rowdest = &A8 130rowdest1=&A9 140intzp0 = &AA 150intzp1=&AB 160main0=&AC 170main1=&AD 180main2=&AE 190main3=&AF 200ctrlstatus = &FC10 210setrow = &FC11 220datareg = &FC12 230clrtxt = &FC13 240REM 250ttxtenable = &1C 260ttxtdisable = 0 270irq2v = &206 280osLine = &F2 290osascii = &FFE3 300oswrch = &FFEE 310osfile = &FFDD 320osbyte = &FFF4 330osrdch = &FFE0 340osword = &FFF1 350REM 360DIM Code &800 370RunAddr=&5000 380FOR Pass = 4 TO 6 STEP 2 390O%=Code 400 P% = RunAddr 410[OPT Pass 420 Ldy #0 430 Jsr &FFC2 440.skipp 450 Lda (osLine),Y 460 Cmp #32:Beq getch 470 Cmp #13:Beq ch2 480 Iny:Jmp skipp 490.ch2 Lda #ASC("2") 500 jmp gotch 510.getch 520 iny 530 Lda (osLine),Y 540.gotch 550 Clc: Sbc #ASC("0") 560 And #3 570 Sta chan 580 Jsr initInt 590Lda #bigbuff MOD 256:Sta rowdest 600Lda #bigbuff DIV 256:Sta rowdest+1 610\????????????????????? 620.mainloop 630Lda rowdest+1 640Cmp #endaddr DIV 256 650Bne qweewq 660 Jmp termin8 \ Buffer filled 670.qweewq 680Bit &FF:Bpl mainloop 690.termin8 700 Jsr stopInt 710 Lda #126 720 Jsr osbyte 730 Rts 740.initInt 750 Sei 760 Lda irq2v:Sta oldirq2v 770 Lda irq2v+1:Sta oldirq2v+1 780 Lda #irq2 MOD 256: Sta irq2v 790 Lda #irq2 DIV 256: Sta irq2v+1 800 Cli 810 Lda #ttxtenable 820 Clc:Adc chan 830 Sta ctrlstatus 840 Rts 850\ 860.stopInt 870 Lda #ttxtdisable 880 Sta ctrlstatus 890 Sei 900 Lda oldirq2v:Sta irq2v 910 Lda oldirq2v+1:Sta irq2v+1 920 Cli 930 Rts 940\ 950.irq2 960 Bit ctrlstatus 970 Bmi ourint 980 Jmp (oldirq2v) 990.ourint 1000\ Save regs & state 1010Lda &FC:Pha:Txa:Pha:Tya:Pha 1020 Lda #0: Sta setrow 1030 Tay 1040.readttxt 1050 Sty setrow 1060 Lda datareg 1070 Beq norow 1080 Lda #0 1090 Sty setrow 1100 Sta datareg 1110 Tya:Pha 1120 Jsr readrow 1130 Pla:Tay 1140.norow 1150 Iny 1160 Cpy #16 1170 Bne readttxt 1180 Sta clrtxt 1190 \ Restore regs 1200 Pla:Tay:Pla:Tax:Pla:Sta &FC 1210 jmp (oldirq2v) 1220\ 1230.readrow 1240 Lda datareg \ Mag 1250 Tay:Lda hamtab,Y 1260 Bmi badhamm 1270 And #15 \ remove 'corrected' flag 1280Sta magno 1290 Lda datareg \ Row 1300 Tay:Lda hamtab,Y 1310 Bmi badhamm 1320 And #15 1330Sta rowno 1340 Lda magno 1350 Cmp #8 1360 Rol rowno 1370 And #7 1380 Sta magno 1390 Jmp selectdest 1400\ 1410.transfer40 1420Lda rowdest+1:Cmp #endaddr DIV 256:Bne carry_on 1430RTS: Lda #bigbuff MOD 256:Sta rowdest 1440 Lda #bigbuff DIV 256:Sta rowdest+1 1450.carry_on 1460 Ldy #0 1461 Lda magno:Sta (rowdest),Y:Iny 1470.read40 1480 Lda datareg 1490 Sta (rowdest),Y 1500 Iny 1510 Cpy #41 1520 Bne read40 1530\???????????????????? 1540Lda rowdest:Clc:Adc #41:Sta rowdest 1550Lda rowdest+1:Adc #0:Sta rowdest+1 1560\????????????????????? 1570.badhamm 1580 Rts 1590\ 1600.selectdest 1610 Lda rowno 1620 Cmp #31 1630 Bne notdatacast 1640 Lda #datacastbuff MOD 256 1650\Sta rowdest ????????????? 1660 Lda #datacastbuff DIV 256 1670\Sta rowdest+1 ????????????? 1680 Jsr transfer40 1690 Rts 1700.notdatacast 1710 Rts 1720\ 1730.chan EQUB 1 1740.oldirq2v 1750 NOP:NOP 1760.magno NOP 1770.rowno NOP 1780.hamtab 1790 EQUD &4101FF41 \ 1 1800 EQUD &FF4140FF 1810 EQUD &FF4142FF 1820 EQUD &47FFFF4A 1830 EQUD &FF4140FF 1840 EQUD &40FF0040 \ 0 1850 EQUD &4BFFFF46 1860 EQUD &FF4340FF 1870 EQUD &FF414CFF 1880 EQUD &47FFFF44 1890 EQUD &47FFFF46 1900 EQUD &074747FF \ 7 1910 EQUD &45FFFF46 1920 EQUD &FF4D40FF 1930 EQUD &FF464606 \ 6 1940 EQUD &47FFFF46 1950 EQUD &FF4142FF 1960 EQUD &49FFFF44 1970 EQUD &42FF0242 \ 2 1980 EQUD &FF4342FF 1990 EQUD &45FFFF48 2000 EQUD &FF4340FF 2010 EQUD &FF4342FF 2020 EQUD &4303FF43 \ 3 2030 EQUD &45FFFF44 2040 EQUD &FF444404 \ 4 2050 EQUD &FF4F42FF 2060 EQUD &47FFFF44 2070 EQUD &054545FF \ 5 2080 EQUD &45FFFF44 2090 EQUD &45FFFF46 2100 EQUD &FF434EFF 2110 EQUD &FF414CFF 2120 EQUD &49FFFF4A 2130 EQUD &4BFFFF4A 2140 EQUD &FF4A4A0A \ 10 2150 EQUD &4BFFFF48 2160 EQUD &FF4D40FF 2170 EQUD &0B4B4BFF \ 11 2180 EQUD &4BFFFF4A 2190 EQUD &4CFF0C4C \ 12 2200 EQUD &FF4D4CFF 2210 EQUD &FF4F4CFF 2220 EQUD &47FFFF4A 2230 EQUD &FF4D4CFF 2240 EQUD &4D0DFF4D \ 13 2250 EQUD &4BFFFF46 2260 EQUD &FF4D4EFF 2270 EQUD &49FFFF48 2280 EQUD &094949FF \ 9 2290 EQUD &FF4F42FF 2300 EQUD &49FFFF4A 2310 EQUD &FF484808 \ 8 2320 EQUD &49FFFF48 2330 EQUD &4BFFFF48 2340 EQUD &FF434EFF 2350 EQUD &FF4F4CFF 2360 EQUD &49FFFF44 2370 EQUD &4F0FFF4F \ 15 2380 EQUD &FF4F4EFF 2390 EQUD &45FFFF48 2400 EQUD &FF4D4EFF 2410 EQUD &FF4F4EFF 2420 EQUD &4EFF0E4E \ 14 2430.handledata 2440 Lda datacastbuff+8 2450 Ldx #0 2460 Tay 2470 Jsr osbyte 2480 Rts 2490\.datacastbuff EQUS STRING$(40, " ") 2500.osparamblk 2510 EQUS STRING$(16," ") 2520] 2530NEXT 2540OSCLI("SAVE DC "+STR$~(Code)+" "+STR$~(O%)+" FFFF"+STR$~(RunAddr)+" FFFF"+STR$~(RunAddr)) 2550*DC 2560OSCLI("SAVE rawdata FFFF"+STR$~(bigbuff)+" FFFF"+STR$~(endaddr)) 2570CHAIN"DECODE" 2580DEFFNRMB(N) 2590P%=P%+N 2600O%=O%+N 2610=Pass