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