![]() |
Routines |
| Prev: AFC4 | Up: Map | Next: B03C |
|
||||||||||||||||||||
| Controls_Right | B00B | LD A,($B2DB) | If Game_Options is zero then jump to Controls_Right_Keyboard. | |||||||||||||||||
| B00E | OR A | |||||||||||||||||||
| B00F | JR Z,Controls_Right_Keyboard | |||||||||||||||||||
| B011 | CP $01 | If Game_Options is not 01 then jump to Controls_Right_Sinclair. | ||||||||||||||||||
| B013 | JR NZ,Controls_Right_Sinclair | |||||||||||||||||||
|
Handle Kempston Joystick.
|
||||||||||||||||||||
| B015 | IN A,($1F) | Read from Kempston Joystick. | ||||||||||||||||||
| B017 | BIT 0,A | If bit 0 is not set/ "RIGHT" is being pressed then jump to Controls_Pressed_Right. | ||||||||||||||||||
| B019 | JR NZ,Controls_Pressed_Right | |||||||||||||||||||
| B01B | JR Controls_NoPress_Right | Jump to Controls_NoPress_Right. | ||||||||||||||||||
|
Handle Sinclair Joystick.
|
||||||||||||||||||||
| Controls_Right_Sinclair | B01D | LD A,$EF | Read from the keyboard;
|
|||||||||||||||||
| B01F | IN A,($FE) | |||||||||||||||||||
| B021 | BIT 3,A | If bit 3 is not set jump to Controls_NoPress_Right. | ||||||||||||||||||
| B023 | JR NZ,Controls_NoPress_Right | |||||||||||||||||||
|
Key was pressed so return A=01.
|
||||||||||||||||||||
| Controls_Pressed_Right | B025 | LD A,$01 | A=01. | |||||||||||||||||
| B027 | RET | Return. | ||||||||||||||||||
|
Handle Keyboard controls.
|
||||||||||||||||||||
| Controls_Right_Keyboard | B028 | LD A,$FB | Read from the keyboard;
|
|||||||||||||||||
| B02A | IN A,($FE) | |||||||||||||||||||
|
Filter out the keys leaving only: W and R.
|
||||||||||||||||||||
| B02C | OR %11110101 | Set bits 0, 2, 4-7. | ||||||||||||||||||
| B02E | LD B,A | Store the result in B. | ||||||||||||||||||
| B02F | LD A,$DF | Read from the keyboard;
|
||||||||||||||||||
| B031 | IN A,($FE) | |||||||||||||||||||
|
Filter out the keys leaving only: P, I and Y.
|
||||||||||||||||||||
| B033 | OR %11101010 | Set bits 1, 3, 5-7. | ||||||||||||||||||
| B035 | AND B | Merge in the bits from B. | ||||||||||||||||||
| B036 | CP $FF | If the result is not FF jump to Controls_Pressed_Right. | ||||||||||||||||||
| B038 | JR NZ,Controls_Pressed_Right | |||||||||||||||||||
|
No key was pressed so return A=00.
|
||||||||||||||||||||
| Controls_NoPress_Right | B03A | XOR A | A=00. | |||||||||||||||||
| B03B | RET | Return. | ||||||||||||||||||
| Prev: AFC4 | Up: Map | Next: B03C |