Dynamite Dan | Routines |
Prev: FEFA | Up: Map | Next: FF4E |
FF2A | EX AF,AF' | Save the flags | ||
FF2B | LD (IX+$00),L | Store the byte | ||
FF2E | JR $FF30 | |||
FF30 | DEC IX | Point to the previous byte | ||
FF32 | DEC DE | Decrease the length | ||
FF33 | EX AF,AF' | Restore flags | ||
FF34 | LD B,$E3 | Set timing constant | ||
FF36 | LD L,$01 | Clear bits in byte to collect | ||
FF38 | CALL $FF4E | Get a tape edge | ||
FF3B | RET NC | Return if it took too long | ||
FF3C | LD A,$ED | See how quickly an edge was found. If less than ED, a 0 was found, otherwise a 1 | ||
FF3E | CP B | |||
FF3F | RL L | Store the relevant bit | ||
FF41 | LD B,$E1 | Set timing constant for the next bit | ||
FF43 | JP NC,$FF38 | Jump back while there are still bits to retrieve | ||
FF46 | LD A,H | Update "parity matching" byte in H | ||
FF47 | XOR L | |||
FF48 | LD H,A | |||
FF49 | LD A,D | Any more bytes to load? | ||
FF4A | OR E | |||
FF4B | JR NZ,$FF2A | Loop back if there are | ||
FF4D | RET | All done |
Prev: FEFA | Up: Map | Next: FF4E |