Prev: $0D91 Up: Map Next: $0E35
$0DD4: Prepare message box sprite graphic data from the text graphic buffer
Used by the routine at $2043.
Input
($57) $06 (top line) or $21 (bottom line)
$0DD4 LDA #$45 $45C0 is in the text graphic buffer at $4500. Store this address at $4E.
$0DD6 STA $4F
$0DD8 LDA #$C0
$0DDA STA $4E
$0DDC LDA #$CA Store the address $CAC6 or $CAE1 (in the upper and lower portions of the graphic data for the lines message sprite at $CAC0) at $50.
$0DDE STA $51
$0DE0 LDA #$C0
$0DE2 CLC
$0DE3 ADC $57
$0DE5 STA $50
$0DE7 LDY #$00 Initialise the index in Y.
$0DE9 LDA #$08 Initialise the tile counter at $57 to 8
$0DEB STA $57
$0DED LDA #$08 Initialise the byte counter at $56 to 8
$0DEF STA $56
$0DF1 LDA ($4E),Y Pick up a byte from the text graphic buffer.
$0DF3 STA ($50),Y Copy it into the sprite graphic data area at $CAC0, $CB00 or $CB40.
$0DF5 INC $4E Increment the text graphic buffer address at $4E.
$0DF7 BNE $0DFB
$0DF9 INC $4F
$0DFB LDA $50 Add 3 to the sprite graphic data address at $50. This makes it point at the next pixel row down in the same column.
$0DFD CLC
$0DFE ADC #$03
$0E00 BCC $0E04
$0E02 INC $51
$0E04 STA $50
$0E06 DEC $56 Decrement the byte counter at $56.
$0E08 BNE $0DF1 Branch back until all 8 bytes of a tile have been copied.
$0E0A LDA $50 Subtract 23 from the sprite graphic data address at $50. This makes it point at the top pixel row in the next column to the right.
$0E0C SEC
$0E0D SBC #$17
$0E0F BCS $0E13
$0E11 DEC $51
$0E13 STA $50
$0E15 DEC $57 Decrement the tile counter at $57.
$0E17 BEQ $0E34 Return if we're done.
$0E19 LDA $57 Pick up the tile counter from $57.
$0E1B CMP #$05 Is it 5 now?
$0E1D BEQ $0E26 Branch if so.
$0E1F CMP #$02 Is it 2 now?
$0E21 BEQ $0E26 Branch if so.
$0E23 JMP $0DED Jump back to copy the next tile.
$0E26 LDA $50 Add 61 to the sprite graphic data address at $50. This makes it point at the top pixel row in the first tile of the next lines message sprite graphic data area at $CB00 or $CB40.
$0E28 CLC
$0E29 ADC #$3D
$0E2B BCC $0E2F
$0E2D INC $51
$0E2F STA $50
$0E31 JMP $0DED Jump back to copy the next tile.
$0E34 RTS
Prev: $0D91 Up: Map Next: $0E35