Prev: FEFA Up: Map Next: FF4E
FF2A: Load a block backwards
Used by the routines at FE45 and FE79.
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