C64 ROM | Routines |
Prev: FBCD | Up: Map | Next: FC93 |
|
||||
FC6A | A9 78 | LDA #$78 | set time constant low byte for bit = leader | |
FC6C | 20 AF FB | JSR $FBAF | write time constant and toggle tape | |
FC6F | D0 E3 | BNE $FC54 | if tape bit high restore registers and exit interrupt | |
FC71 | C6 A7 | DEC $A7 | decrement cycle count | |
FC73 | D0 DF | BNE $FC54 | if not all done restore registers and exit interrupt | |
FC75 | 20 97 FB | JSR $FB97 | new tape byte setup | |
FC78 | C6 AB | DEC $AB | decrement cassette leader count | |
FC7A | 10 D8 | BPL $FC54 | if not all done restore registers and exit interrupt | |
FC7C | A2 0A | LDX #$0A | set index for tape write vector | |
FC7E | 20 BD FC | JSR $FCBD | set the tape vector | |
FC81 | 58 | CLI | enable the interrupts | |
FC82 | E6 AB | INC $AB | clear cassette leader counter, was $FF | |
FC84 | A5 BE | LDA $BE | get cassette block count | |
FC86 | F0 30 | BEQ $FCB8 | if all done restore everything for STOP and exit the interrupt | |
FC88 | 20 8E FB | JSR $FB8E | copy I/O start address to buffer address | |
FC8B | A2 09 | LDX #$09 | set nine synchronisation bytes | |
FC8D | 86 A5 | STX $A5 | save cassette synchronization byte count | |
FC8F | 86 B6 | STX $B6 | ||
FC91 | D0 83 | BNE $FC16 | go do the next tape byte, branch always |
Prev: FBCD | Up: Map | Next: FC93 |