![]() |
Routines |
| Prev: B00B | Up: Map | Next: B06D |
|
||||||||||||||||||||
| Controls_Left | B03C | LD A,($B2DB) | If Game_Options is zero then jump to Controls_Left_Keyboard. | |||||||||||||||||
| B03F | OR A | |||||||||||||||||||
| B040 | JR Z,Controls_Left_Keyboard | |||||||||||||||||||
| B042 | CP $01 | If Game_Options is not 01 then jump to Controls_Left_Sinclair. | ||||||||||||||||||
| B044 | JR NZ,Controls_Left_Sinclair | |||||||||||||||||||
|
Handle Kempston Joystick.
|
||||||||||||||||||||
| B046 | IN A,($1F) | Read from Kempston Joystick. | ||||||||||||||||||
| B048 | BIT 1,A | If bit 1 is not set/ "LEFT" is being pressed then jump to Controls_Pressed_Left. | ||||||||||||||||||
| B04A | JR NZ,Controls_Pressed_Left | |||||||||||||||||||
| B04C | JR Controls_NoPress_Left | Jump to Controls_NoPress_Left. | ||||||||||||||||||
|
Handle Sinclair Joystick.
|
||||||||||||||||||||
| Controls_Left_Sinclair | B04E | LD A,$EF | Read from the keyboard;
|
|||||||||||||||||
| B050 | IN A,($FE) | |||||||||||||||||||
| B052 | BIT 4,A | If bit 4 is not set jump to Controls_NoPress_Left. | ||||||||||||||||||
| B054 | JR NZ,Controls_NoPress_Left | |||||||||||||||||||
|
Key was pressed so return A=01.
|
||||||||||||||||||||
| Controls_Pressed_Left | B056 | LD A,$01 | A=01. | |||||||||||||||||
| B058 | RET | Return. | ||||||||||||||||||
|
Handle Keyboard controls.
|
||||||||||||||||||||
| Controls_Left_Keyboard | B059 | LD A,$FB | Read from the keyboard;
|
|||||||||||||||||
| B05B | IN A,($FE) | |||||||||||||||||||
|
Filter out the keys leaving only: Q, E and T.
|
||||||||||||||||||||
| B05D | OR %11101010 | Set bits 1, 3, 5-7. | ||||||||||||||||||
| B05F | LD B,A | Store the result in B. | ||||||||||||||||||
| B060 | LD A,$DF | Read from the keyboard;
|
||||||||||||||||||
| B062 | IN A,($FE) | |||||||||||||||||||
|
Filter out the keys leaving only: O and U.
|
||||||||||||||||||||
| B064 | OR %11110101 | Set bits 0, 2, 4-7. | ||||||||||||||||||
| B066 | AND B | Merge in the bits from B. | ||||||||||||||||||
| B067 | CP $FF | If the result is not FF jump to Controls_Pressed_Left. | ||||||||||||||||||
| B069 | JR NZ,Controls_Pressed_Left | |||||||||||||||||||
|
No key was pressed so return A=00.
|
||||||||||||||||||||
| Controls_NoPress_Left | B06B | XOR A | A=00. | |||||||||||||||||
| B06C | RET | Return. | ||||||||||||||||||
| Prev: B00B | Up: Map | Next: B06D |