Prev: $2387 Up: Map Next: $24A7
$246B: Slide a message character into the speech bubble text window
This corresponds to $740A in the ZX Spectrum version.
Used by the routine at $2387.
Output
P Carry flag set if the message has finished
$246B JSR $108B Get the next character of the message being spoken.
$246E CMP #$00 Has the message finished?
$2470 BNE $2476 Branch if not.
$2472 SEC Set the carry flag: the message has finished.
$2473 JMP $24A6 Return.
$2476 CMP #$02 Is the character code $02?
$2478 BEQ $2486 If so, branch forward to replace it with $20 (space).
$247A CMP #$03 Is the character code $03 (8 spaces)?
$247C BNE $2488 Branch if not.
$247E LDA #$48 Store $4816 (8 spaces) at $AC.
$2480 STA $AD
$2482 LDA #$16
$2484 STA $AC
$2486 LDA #$20 $20 is ' ' (space).
$2488 STA $4E Store the address that holds the width of the next character at $4E.
$248A LDA #$47
$248C STA $4F
$248E LDY #$00 Pick up the width of the next character.
$2490 LDA ($4E),Y
$2492 TAX Transfer the width to X, which will count the pixel columns.
$2493 TXA Save the pixel column counter temporarily.
$2494 PHA
$2495 INC $4F Pick up a pixel column of the font character bitmap.
$2497 LDA ($4E),Y
$2499 JSR $24A7 Slide the pixel column into the speech bubble text window.
$249C PLA Restore the pixel column counter to X.
$249D TAX
$249E DEX Decrement the pixel column counter.
$249F BNE $2493 Branch unless every pixel column has been done.
$24A1 TXA A=0.
$24A2 JSR $24A7 Slide a blank pixel column into the speech bubble text window.
$24A5 CLC Clear the carry flag: the message has not finished.
$24A6 RTS
Prev: $2387 Up: Map Next: $24A7