Prev: $0C3F Up: Map Next: $0D91
$0D67: Check whether a character is within a coordinate range
Used by the routines at $0E59 and $0ECF.
Input
A Character number ($00-$14)
($73) Minimum y-coordinate
($74) Maximum y-coordinate
($75) Minimum x-coordinate
($76) Maximum x-coordinate
Output
P Carry flag set if the character is within the coordinate range
$0D67 CLC Store the base address of the character's buffer at $4E.
$0D68 ADC #$78
$0D6A STA $4F
$0D6C LDA #$60
$0D6E STA $4E
$0D70 LDY #$01 Pick up the character's x-coordinate.
$0D72 LDA ($4E),Y
$0D74 CMP $75 Is it less than the minimum x-coordinate?
$0D76 BCC $0D8F Return with the carry flag reset if so.
$0D78 INC $76 Increment the maximum x-coordinate at $76. (This is a bug.)
$0D7A CMP $76 Is the character's x-coordinate greater than the maximum x-coordinate?
$0D7C BCS $0D8F Return with the carry flag reset if so.
$0D7E INY Pick up the character's y-coordinate.
$0D7F LDA ($4E),Y
$0D81 CMP $73 Is it less than the minimum y-coordinate?
$0D83 BCC $0D8F Return with the carry flag reset if so.
$0D85 INC $74 Increment the maximum y-coordinate at $74. (This is a bug.)
$0D87 CMP $74 Is the character's y-coordinate greater than the maximum y-coordinate?
$0D89 BCS $0D8F Return with the carry flag reset if so.
$0D8B SEC Return with the the carry flag set.
$0D8C JMP $0D90
$0D8F CLC Clear the carry flag.
$0D90 RTS
Prev: $0C3F Up: Map Next: $0D91