Routines |
Prev: $15B3 | Up: Map | Next: $169B |
Used by the routine at $189D.
|
||||||||
$1640 | LDA #$0B | There are 11 little boys. | ||||||
$1642 | STA $57 | Store this counter at $57. | ||||||
$1644 | LDA $FB | Pick up ERIC's y-coordinate from $FB, store a copy at $D4 and increment it. If ERIC is standing on a boy, this would be the boy's y-coordinate. | ||||||
$1646 | STA $D4 | |||||||
$1648 | INC $D4 | |||||||
$164A | LDA $FC | Pick up ERIC's x-coordinate from $FC and store a copy at $D3. | ||||||
$164C | STA $D3 | |||||||
$164E | LDA #$00 | Set the current character number at $60 to $00 (little boy no. 1). | ||||||
$1650 | STA $60 | |||||||
$1652 | JSR $1662 | Is ERIC standing on any of the little boys? | ||||||
$1655 | BCC $165A | Branch if not. | ||||||
$1657 | JMP $169A | Otherwise return with the carry flag set. | ||||||
$165A | LDA #$03 | There are three main kids besides ERIC: ANGELFACE, BOY WONDER and EINSTEIN. | ||||||
$165C | STA $57 | Store this counter at $57. | ||||||
$165E | LDA #$0F | Set the current character number at $60 to $0F (ANGELFACE). | ||||||
$1660 | STA $60 | |||||||
$1662 | JSR $3279 | Copy the current character's buffer to page 0. | ||||||
$1665 | LDA $D4 | Pick up the y-coordinate from $D4. | ||||||
$1667 | CMP $FB | Does it match the character's y-coordinate? | ||||||
$1669 | BNE $168E | Branch if not. | ||||||
$166B | DEC $D3 | Decrement the x-coordinate at $D3. | ||||||
$166D | LDA $FC | Pick up the character's x-coordinate from $FC. | ||||||
$166F | CMP $D3 | Is the character's x-coordinate smaller? | ||||||
$1671 | BCC $168E | Branch if so (without restoring the x-coordinate at $D3 to its original value, which is a bug). | ||||||
$1673 | INC $D3 | Add two to the x-coordinate at $D3 and pick up its new value. | ||||||
$1675 | INC $D3 | |||||||
$1677 | LDA $D3 | |||||||
$1679 | CMP $FC | Is the character's x-coordinate greater? | ||||||
$167B | BCC $168E | Branch if so (without restoring the x-coordinate at $D3 to its original value, which is a bug). | ||||||
$167D | LDA $26 | Pick up the boy's animatory state from $26. | ||||||
$167F | AND #$0F | Keep only bits 0-3. | ||||||
$1681 | CMP #$07 | Is the boy lying flat on his back? | ||||||
$1683 | BNE $168E | Branch if not. | ||||||
$1685 | LDA #$14 | Character number $14 is ERIC. | ||||||
$1687 | JSR $3279 | Copy ERIC's character buffer into page 0. | ||||||
$168A | SEC | Set the carry flag: ERIC is standing on a boy. | ||||||
$168B | JMP $169A | Return. | ||||||
$168E | INC $60 | Increment the current character number at $60. | ||||||
$1690 | DEC $57 | Decrement the character counter at $57. | ||||||
$1692 | BNE $1662 | Branch back to check any remaining boys. | ||||||
$1694 | LDA #$14 | Character number $14 is ERIC. | ||||||
$1696 | JSR $3279 | Copy ERIC's character buffer into page 0. | ||||||
$1699 | CLC | Clear the carry flag: ERIC is not standing on a boy. | ||||||
$169A | RTS |
Prev: $15B3 | Up: Map | Next: $169B |