|  | Routines | 
| Prev: 47491 | Up: Map | Next: 47592 | 
| 
 | ||||||||
| 47502 | LD A,(47290) | Check whether to draw hand cursor on menu... | ||||||
| 47505 | CP 105 | ...and if not... | ||||||
| 47507 | RET NZ | ...then return | ||||||
| 47508 | LD A,(23408) | Load A with x-coordinate of left edge of current window to draw (characters)... | ||||||
| 47511 | LD (23404),A | ...and store at 23404 | ||||||
| 47514 | INC A | Increase by one character... | ||||||
| 47515 | LD (23405),A | ...and store for later use | ||||||
| 47518 | LD A,(23456) | Load starting y-coordinate of hand cursor into A... | ||||||
| 47521 | LD B,A | and copy into B | ||||||
| 47522 | LD A,(23409) | Load y-coordinate of current window's top-left corner into A... | ||||||
| 47525 | ADD A,B | ...add to B... | ||||||
| 47526 | ADD A,A | ...and multiply by 8 to get y-coordinate of top of hand cursor in pixels... | ||||||
| 47527 | ADD A,A | ... | ||||||
| 47528 | ADD A,A | ... | ||||||
| 47529 | LD (23406),A | Then store for later use | ||||||
| 47532 | LD A,(23411) | Load y-coordinate of current window's bottom edge into A... | ||||||
| 47535 | ADD A,A | ...multiply by eight... | ||||||
| 47536 | ADD A,A | ... | ||||||
| 47537 | ADD A,A | ... | ||||||
| 47538 | ADD A,7 | ...then add 7 to get y-coordinate of absolute bottom of window in pixels | ||||||
| 47540 | LD (23407),A | ...and store for later | ||||||
| 47543 | LD A,(23409) | Load y-coordinate of current window's top-left corner into A... | ||||||
| 47546 | LD B,A | ...and copy into B | ||||||
| 47547 | LD A,(23411) | Load y-coordinate of current window's bottom-right corner into A... | ||||||
| 47550 | SUB B | ...subtract B... | ||||||
| 47551 | DEC A | ...then subtract one to get height of window, not including frame | ||||||
| 47552 | LD B,A | Copy this into B | ||||||
| 47553 | LD A,(23456) | Load A with initial y-coordinate of hand cursor relative to current window... | ||||||
| 47556 | SUB B | ...subtract B... | ||||||
| 47557 | NEG | ...and negate to give vertical distance available to hand cursor to move | ||||||
| 47559 | ADD A,A | Multiply this by eight to convert from characters to pixels... | ||||||
| 47560 | ADD A,A | ... | ||||||
| 47561 | ADD A,A | ... | ||||||
| 47562 | LD (23475),A | ...and store at 23475 | ||||||
| 47565 | LD A,(23479) | Load A with current y-coordinate of hand cursor relative to its starting position (pixels)... | ||||||
| 47568 | CALL 47731 | ...and invert INK and PAPER bits to highlight currently active menu item at this position | ||||||
| 
This entry point is used by the routines at 47603 and 47665.
 | ||||||||
| 47571 | CALL 64034 | Capture keyboard or joystick input loading result into A | ||||||
| 47574 | HALT | Wait for interrupt | ||||||
| 47575 | BIT 2,A | If "up" pressed then... | ||||||
| 47577 | JP NZ,47603 | ...jump to routine to move hand cursor up and update menu item highlighting | ||||||
| 47580 | BIT 3,A | If "down" pressed then... | ||||||
| 47582 | JP NZ,47665 | ...jump to routine to move hand cursor down and update menu item highlighting | ||||||
| 47585 | BIT 4,A | If "fire" has not been pressed then... | ||||||
| 47587 | JR Z,47571 | Loop back to 47571 | ||||||
| 47589 | JP 47703 | Load A with (zero-based) index of selected menu item and return | ||||||
| Prev: 47491 | Up: Map | Next: 47592 |