![]() |
Routines |
| Prev: 35285 | Up: Map | Next: 35386 |
|
||||||||
| 35296 | LD A,(35087) | Check whether to draw hand cursor on menu... | ||||||
| 35299 | CP 105 | ...and if not... | ||||||
| 35301 | RET NZ | ...then return | ||||||
| 35302 | LD A,(23493) | Load A with x-coordinate of left edge of current window to draw (characters)... | ||||||
| 35305 | LD (23489),A | ...and store at 23489 | ||||||
| 35308 | INC A | Increase by one character... | ||||||
| 35309 | LD (23490),A | ...and store for later use | ||||||
| 35312 | LD A,(23456) | Load starting y-coordinate of hand cursor into A... | ||||||
| 35315 | LD B,A | and copy into B | ||||||
| 35316 | LD A,(23494) | Load y-coordinate of current window's top-left corner into A... | ||||||
| 35319 | ADD A,B | ...add to B... | ||||||
| 35320 | ADD A,A | ...and multiply by 8 to get y-coordinate of top of hand cursor in pixels... | ||||||
| 35321 | ADD A,A | ... | ||||||
| 35322 | ADD A,A | ... | ||||||
| 35323 | LD (23491),A | Then store for later use | ||||||
| 35326 | LD A,(23496) | Load y-coordinate of current window's bottom edge into A... | ||||||
| 35329 | ADD A,A | ...multiply by eight... | ||||||
| 35330 | ADD A,A | ... | ||||||
| 35331 | ADD A,A | ... | ||||||
| 35332 | ADD A,7 | ...then add 7 to get y-coordinate of absolute bottom of window in pixels | ||||||
| 35334 | LD (23492),A | ...and store for later | ||||||
| 35337 | LD A,(23494) | Load y-coordinate of current window's top-left corner into A... | ||||||
| 35340 | LD B,A | ...and copy into B | ||||||
| 35341 | LD A,(23496) | Load y-coordinate of current window's bottom-right corner into A... | ||||||
| 35344 | SUB B | ...subtract B... | ||||||
| 35345 | DEC A | ...then subtract one to get height of window, not including frame | ||||||
| 35346 | LD B,A | Copy this into B | ||||||
| 35347 | LD A,(23456) | Load A with initial y-coordinate of hand cursor relative to current window... | ||||||
| 35350 | SUB B | ...subtract B... | ||||||
| 35351 | NEG | ...and negate to give vertical distance available to hand cursor to move | ||||||
| 35353 | ADD A,A | Multiply this by eight to convert from characters to pixels... | ||||||
| 35354 | ADD A,A | ... | ||||||
| 35355 | ADD A,A | ... | ||||||
| 35356 | LD (23475),A | ...and store at 23475 | ||||||
| 35359 | LD A,(23479) | Load A with current y-coordinate of hand cursor relative to its starting position (pixels)... | ||||||
| 35362 | CALL 35525 | ...and invert INK and PAPER bits to highlight currently active menu item at this position | ||||||
|
This entry point is used by the routines at 35397 and 35459.
|
||||||||
| 35365 | CALL 54942 | Capture keyboard or joystick input loading result into A | ||||||
| 35368 | HALT | Wait for interrupt | ||||||
| 35369 | BIT 2,A | If "up" pressed then... | ||||||
| 35371 | JP NZ,35397 | ...jump to routine to move hand cursor up and update menu item highlighting | ||||||
| 35374 | BIT 3,A | If "down" pressed then... | ||||||
| 35376 | JP NZ,35459 | ...jump to routine to move hand cursor down and update menu item highlighting | ||||||
| 35379 | BIT 4,A | If "fire" has not been pressed then... | ||||||
| 35381 | JR Z,35365 | Loop back to 35365 | ||||||
| 35383 | JP 35497 | Load A with (zero-based) index of selected menu item and return | ||||||
| Prev: 35285 | Up: Map | Next: 35386 |