Routines |
Prev: $19A5 | Up: Map | Next: $1A50 |
$1A04 | LDA $3F | Reset bit 1 of the flags byte at $3F: the character is not running continuously. | ||
$1A06 | AND #$FC | |||
$1A08 | STA $3F | |||
$1A0A | JSR $3BE7 | Collect the event identifier from the command list and store it at $A6. | ||
$1A0D | STA $A6 | |||
$1A0F | LDA $FC | Copy the character's current x-coordinate to $A7. This will be the walkabout origin x-coordinate. | ||
$1A11 | STA $A7 | |||
$1A13 | LDA #$1A | Replace the address of this primary command routine in the character's buffer with that of $1A1B below. | ||
$1A15 | STA $2A | |||
$1A17 | LDA #$1B | |||
$1A19 | STA $29 | |||
This entry point is used by the routine at $27AB.
|
||||
$1A1B | LDA $A6 | Pick up the walkabout event identifier from $A6. | ||
$1A1D | JSR $31D2 | Has the signal for this event been raised? | ||
$1A20 | BCC $1A37 | Branch if not to begin another mini-walkabout. | ||
$1A22 | LDA $FC | Pick up the character's x-coordinate from $FC. | ||
$1A24 | CMP $A7 | Is the character at the walkabout origin? | ||
$1A26 | BNE $1A30 | Branch if not. | ||
$1A28 | LDA $26 | Pick up the character's animatory state from $26. | ||
$1A2A | LSR A | Is the character midstride? | ||
$1A2B | BCS $1A30 | Branch if so. | ||
$1A2D | JMP $1D2D | Otherwise terminate this primary command. | ||
$1A30 | LDA $A7 | Pick up the walkabout origin x-coordinate from $A7 and copy it to $AC, making it the next mini-walkabout destination. | ||
$1A32 | STA $AC | |||
$1A34 | JMP $1A45 | Jump forward. | ||
The signal has not been raised yet, so it's time for another mini-walkabout.
|
||||
$1A37 | LDA $D41B | Generate a random value between 0 and 7 and store it at $57 temporarily. | ||
$1A3A | AND #$07 | |||
$1A3C | STA $57 | |||
$1A3E | LDA $A7 | Pick up the walkabout origin x-coordinate from $A7. | ||
$1A40 | SEC | Subtract the random value between 0 and 7 and store the result at $AC. This will be the walkabout destination x-coordinate. | ||
$1A41 | SBC $57 | |||
$1A43 | STA $AC | |||
$1A45 | LDA #$13 | Place the address of the interruptible subcommand routine at $136F into the character's buffer. | ||
$1A47 | STA $AB | |||
$1A49 | LDA #$6F | |||
$1A4B | STA $AA | |||
$1A4D | JMP ($00AA) | Jump to $136F. |
Prev: $19A5 | Up: Map | Next: $1A50 |