![]() |
Routines |
| Prev: 82A5 | Up: Map | Next: 832E |
| 82A6 | LD HL,$832E | 832E is the last player input. | ||
| 82A9 | LD D,$00 | Default to "up" / "not jumping". | ||
| 82AB | LD A,($82A3) | Get the control type. | ||
| 82AE | CP $01 | Is it keyboard? | ||
| 82B0 | JR NZ,$82EB | Jump forward if not. | ||
|
Check for keyboard input
|
||||
| 82B2 | LD BC,$FBFE | Check for Q-T on the keyboard. | ||
| 82B5 | IN A,(C) | |||
| 82B7 | BIT 0,A | Was 'Q' pressed? | ||
| 82B9 | JR NZ,$82BE | Skip if not. | ||
| 82BB | LD (HL),D | Set input to "up" and move forward. | ||
| 82BC | JR $82DE | |||
| 82BE | LD BC,$FDFE | Check for A-G on the keyboard. | ||
| 82C1 | INC D | Change flag to "down". | ||
| 82C2 | IN A,(C) | Read the keyboard. | ||
| 82C4 | BIT 0,A | Was 'A' pressed? | ||
| 82C6 | JR NZ,$82CB | Skip if not. | ||
| 82C8 | LD (HL),D | Set input to "down" and move forward. | ||
| 82C9 | JR $82DE | |||
| 82CB | LD BC,$DFFE | Check for P-Y on the keyboard. | ||
| 82CE | INC D | Change flag to "left". | ||
| 82CF | IN A,(C) | Read the keyboard. | ||
| 82D1 | BIT 1,A | Was 'O' pressed? | ||
| 82D3 | JR NZ,$82D8 | Skip if not. | ||
| 82D5 | LD (HL),D | Set input to "left" and move forward. | ||
| 82D6 | JR $82DE | |||
| 82D8 | BIT 0,A | Was 'P' pressed? | ||
| 82DA | JR NZ,$82DE | Skip if not. | ||
| 82DC | INC D | Set input to "right". | ||
| 82DD | LD (HL),D | |||
| 82DE | LD BC,$7FFE | Read SPACE-B | ||
| 82E1 | IN A,(C) | Read the keyboard. | ||
| 82E3 | AND $1F | Were any keys pressed? | ||
| 82E5 | XOR $1F | |||
| 82E7 | RET Z | Return if not. | ||
| 82E8 | SET 7,(HL) | Set the "jump" bit and return. | ||
| 82EA | RET | |||
|
Check for joystick input
|
||||
| 82EB | CP $02 | Is the input Kempston? | ||
| 82ED | JR NZ,$830D | Jump forward if not. | ||
| 82EF | IN A,($1F) | Read the Kempston interface | ||
| 82F1 | BIT 3,A | Was the joystick moved up? | ||
| 82F3 | JR Z,$82F8 | Skip if not. | ||
| 82F5 | LD (HL),D | Set input to "up" and move forward to check the fire button. | ||
| 82F6 | JR $8307 | |||
| 82F8 | INC D | Change flag to "down" | ||
| 82F9 | BIT 2,A | Was the joystick moved down? | ||
| 82FB | JR NZ,$82F5 | Set this input if so. | ||
| 82FD | INC D | Change flag to "left" | ||
| 82FE | BIT 1,A | Was the joystick moved left? | ||
| 8300 | JR NZ,$82F5 | Set this input if so. | ||
| 8302 | INC D | Change flag to "right" | ||
| 8303 | BIT 0,A | Was the joystick moved right? | ||
| 8305 | JR NZ,$82F5 | Set this input if so. | ||
| 8307 | BIT 4,A | Was the fire button pressed? | ||
| 8309 | RET Z | Return if not. | ||
| 830A | SET 7,(HL) | Set the "jump" bit and return. | ||
| 830C | RET | |||
|
Check for Sinclair joystick input
|
||||
| 830D | LD BC,$F7FE | Read 1-5 on the keyboard | ||
| 8310 | IN A,(C) | |||
| 8312 | BIT 3,A | Was '4' pressed? | ||
| 8314 | JR NZ,$8319 | Skip if not. | ||
| 8316 | LD (HL),D | Set input to "up" and move forward. | ||
| 8317 | JR $8328 | |||
| 8319 | INC D | Change state to "down". | ||
| 831A | BIT 2,A | Was '3' pressed? | ||
| 831C | JR Z,$8316 | Set this input if so. | ||
| 831E | INC D | Change state to "left". | ||
| 831F | BIT 0,A | Was '1' pressed? | ||
| 8321 | JR Z,$8316 | Set this input if so. | ||
| 8323 | INC D | Change state to "right". | ||
| 8324 | BIT 1,A | Was '2' pressed? | ||
| 8326 | JR Z,$8316 | Set this input if so. | ||
| 8328 | BIT 4,A | Was '5' pressed? | ||
| 832A | RET NZ | Return if not. | ||
| 832B | SET 7,(HL) | Set the "jump" bit and return. | ||
| 832D | RET | |||
| Prev: 82A5 | Up: Map | Next: 832E |