| Chase H.Q. | Routines |
| Prev: 9FB4 | Up: Map | Next: A139 |
|
|
||||
| kempston_flag | A0CC | DEFB $00 | Set to 1 if Kempston joystick is chosen, 0 otherwise | |
| keydefs | A0CD | DEFB $25,$22,$20,$23,$1B,$13,$03,$0B | Gear, Accelerate, Brake, Left, Right, Quit, Pause, Turbo | |
| user_input | A0D5 | DEFB $00 | User input: QPBFUDLR - Quit Pause Boost Fire/Gear Up Down Left Right. Note that attract mode is driven through this var. | |
|
This entry point is used by the routines at load_stage, attract_mode, main_loop, run_pregame_screen, check_user_input and page_in_stage_128k.
|
||||
| keyscan | A0D6 | LD A,($A0CC) | If not Kempston then goto ks_keyboard | |
| A0D9 | AND A | |||
| A0DA | JR Z,ks_keyboard | |||
| A0DC | IN A,($1F) | Read Kempston joystick port. Returns 000FUDLR active high | ||
| A0DE | AND $1F | |||
| A0E0 | PUSH AF | |||
| A0E1 | LD E,$20 | |||
| A0E3 | LD HL,$A0CD | |||
| A0E6 | CALL kempston_flag_2 | |||
| A0E9 | RRCA | |||
| A0EA | RRCA | |||
| A0EB | RRCA | |||
| A0EC | AND $E0 | |||
| A0EE | POP DE | |||
| A0EF | OR D | |||
| A0F0 | LD E,A | |||
| A0F1 | JR ks_common | |||
| ks_keyboard | A0F3 | LD E,$01 | ||
| A0F5 | LD HL,$A0CD | |||
| A0F8 | CALL kempston_flag_2 | |||
| ks_common | A0FB | AND $03 | ||
| A0FD | CP $03 | |||
| A0FF | LD A,E | |||
| A100 | JR NZ,kempston_flag_0 | |||
| A102 | AND $FC | |||
| A104 | LD E,A | |||
| kempston_flag_0 | A105 | AND $0C | ||
| A107 | CP $0C | |||
| A109 | LD A,E | |||
| A10A | JR NZ,kempston_flag_1 | |||
| A10C | AND $F3 | |||
| kempston_flag_1 | A10E | LD ($A0D5),A | ||
| A111 | RET | Return | ||
| kempston_flag_2 | A112 | LD A,(HL) | Outer keyboard loop | |
| A113 | INC HL | |||
| A114 | CALL keyscan_inner | |||
| A117 | CCF | invert carry | ||
| A118 | RL E | |||
| A11A | JR NC,kempston_flag_2 | loop while top bit set? | ||
| A11C | LD A,E | |||
| A11D | RET | Return | ||
| keyscan_inner | A11E | LD C,A | Inner keyboard loop.... what's in A? | |
| A11F | AND $07 | B=(A&7)+1, C=5-(A>>3) | ||
| A121 | INC A | |||
| A122 | LD B,A | |||
| A123 | SRL C | |||
| A125 | SRL C | |||
| A127 | SRL C | |||
| A129 | LD A,$05 | |||
| A12B | SUB C | |||
| A12C | LD C,A | |||
| A12D | LD A,$FE | A = $FE ROR B | ||
| kempston_flag_3 | A12F | RRCA | ||
| A130 | DJNZ kempston_flag_3 | |||
| A132 | IN A,($FE) | Port $FE is the AND of all columns/rows? This is the main keyboard access | ||
| kempston_flag_4 | A134 | RRA | C = A ROR C | |
| A135 | DEC C | |||
| A136 | JR NZ,kempston_flag_4 | |||
| A138 | RET | Return | ||
| Prev: 9FB4 | Up: Map | Next: A139 |