Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 5DIM proc% 200
- 10FOR O%=0 TO 3 STEP 3
- 20P%=proc%
- 30[OPT O%
- 35.readnum
- 36LDA #0
- 38STA &70
- 39.loop
- 40JSR &FFD7
- 50CMP #ASC("0")
- 60BCC notdigit
- 70CMP #ASC("9")+1
- 80BCS notdigit
- 83SBC #ASC("0")-1
- 85STA&71
- 87LDA&70
- 90ASL A
- 100ASL A
- 110ASL A
- 120ASL A
- 130ORA &71
- 135STA &70
- 140JMP loop
- 150.notdigit
- 160RTS
- 170.handleline
- 180JSR readnum
- 190LDA &70
- 200STA &72
- 210JSR readnum
- 220LDA &70
- 230STA &73
- 240JSR &FFD7
- 250STA &74
- 260\ &72 = min range
- 270\ &73 = max range
- 280\ &74 = byte to search
- 290JSR &FFD7
- 291JSR &FFD7
- 300\ &75 = count
- 305\ &76,7 part1 valid line count
- 306\ &78,9 part2 valid line count
- 307\ &7A line pos in BCD
- 310LDA #0
- 320STA &75
- 324STA &7A
- 325SED
- 326LDX #0 \ x is part2 match count
- 330.lineloop
- 332LDA &7A \ increment line pos (BCD, 1-based)
- 333CLC
- 334ADC #1
- 335STA &7A
- 340JSR &FFD7
- 350CMP #10
- 360BEQ done
- 370CMP #&FE
- 380BEQ done
- 390CMP &74
- 400BNE lineloop
- 410LDA &75
- 420CLC
- 430ADC #1
- 440STA &75
- 441LDA &7A
- 442CMP &72
- 443BNE notmin
- 444INX
- 445.notmin
- 446CMP &73
- 447BNE lineloop
- 449INX
- 450JMP lineloop
- 460.done
- 470LDA &75
- 480SEC
- 490SBC &72
- 500BCC notvalid
- 510 LDA &73
- 520 SBC &75
- 530BCC notvalid
- 540LDA &76
- 550CLD
- 560ADC #0
- 570STA &76
- 580LDA &77
- 590ADC #0
- 600STA &77
- 610.notvalid
- 620CLD
- 630CPX #1 \ check if exactly 1 match or part2
- 640BNE nopart2
- 650LDA &78
- 660ADC #0
- 670STA &78
- 680LDA &79
- 690ADC #0
- 700STA &79
- 710.nopart2
- 720RTS
- 997]
- 998IF P%-proc%>200 THEN ERROR 255, "proc too long"
- 999NEXT
- 1000file%=OPENIN("data")
- 1002!&76=0
- 1005REPEAT
- 1010Y%=file%
- 1020CALL handleline
- 1030 PRINT STR$~(?&72);" ";STR$~(?&73);" ";CHR$(?&74);" ";STR$~(?&75);" ";!&76 AND &FFFF;" ";!&78 AND &FFFF
- 1035UNTIL EOF#(file%)
- 1040CLOSE#file%
- 1050PRINT"Part 1",!&76 AND &FFFF
- 1060PRINT"Part 2",!&78 AND &FFFF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement