Chase H.Q. | Routines |
Prev: ECDA | Up: Map | Next: ED4D |
Used by the routine at wait_for_keypress.
|
||||
redefine_keys | ECF3 | CALL clear_screen | Call clear_screen | |
ECF6 | LD HL,$EA52 | Address of "REDEFINE KEYS" strings | ||
ECF9 | CALL menu_draw_strings | Call menu_draw_strings | ||
ECFC | LD DE,$48D6 | |||
ECFF | LD BC,$0801 | |||
rdk_loop_1 | ED02 | PUSH HL | Preserve registers | |
ED03 | PUSH DE | |||
ED04 | PUSH BC | |||
ED05 | CALL define_keys | Call define_keys | ||
ED08 | POP BC | Restore registers | ||
ED09 | POP DE | |||
ED0A | POP HL | |||
Debounce?
|
||||
ED0B | XOR A | Read port $00FE | ||
ED0C | IN A,($FE) | |||
ED0E | CPL | Complement the value returned to change it from active-low to active-high | ||
ED0F | AND $1F | Discard any non-key flags | ||
ED11 | JR NZ,rdk_loop_1 | Jump if any keys are pressed | ||
ED13 | CALL $ED6D | |||
ED16 | INC C | C++ | ||
ED17 | INC HL | HL++ | ||
ED18 | DJNZ rdk_loop_1 | Loop rdk_loop_1 while B | ||
ED1A | LD B,$14 | B = 20 | ||
rdk_loop_2 | ED1C | PUSH BC | Preserve | |
ED1D | CALL define_keys | Call define_keys | ||
ED20 | POP BC | Restore | ||
ED21 | DJNZ rdk_loop_2 | Loop rdk_loop_2 while B | ||
Test keys are "SHOCKED<ENTER>".
|
||||
ED23 | LD B,$08 | B = 8 | ||
ED25 | LD DE,$EE30 | DE -> shocked bytes | ||
ED28 | LD HL,$EE38 | HL -> input_tmp | ||
rdk_loop_3 | ED2B | LD A,(DE) | A = *DE | |
ED2C | CP (HL) | CP *HL | ||
ED2D | INC HL | HL++ | ||
ED2E | INC DE | DE++ | ||
ED2F | RET NZ | Return if non-zero -- no match | ||
ED30 | DJNZ rdk_loop_3 | Loop rdk_loop_3 while B | ||
ED32 | LD A,$01 | Set test mode flag | ||
ED34 | LD ($8000),A | |||
ED37 | CALL clear_screen | Call clear_screen | ||
ED3A | LD HL,$EAE1 | Address of TEST MODE strings | ||
ED3D | CALL menu_draw_strings | Call menu_draw_strings | ||
redefine_keys_0 | ED40 | CALL define_keys | Call define_keys | |
Debounce?
|
||||
ED43 | XOR A | Read port $00FE | ||
ED44 | IN A,($FE) | |||
ED46 | CPL | Complement the value returned to change it from active-low to active-high | ||
ED47 | AND $1F | Discard any non-key flags | ||
ED49 | JR Z,redefine_keys_0 | Loop while no keys were pressed | ||
ED4B | JR redefine_keys | Loop |
Prev: ECDA | Up: Map | Next: ED4D |