Prev: F0DF Up: Map Next: F0FB
F0E6: Read the Kempston joystick, if it is in use
Used by the routines at CREATURE_UPDATE, KNIGHT_CONTROLS and MAIN_LOOP.
The author's IN31: 31 ($1F) is the Kempston interface's port. Nothing is read unless bit 3 of OPTIONS is set, which 9 turns on and off (MAIN_LOOP): on a Spectrum without the interface the port gives whatever the bus holds, which would read as the stick being moved. The port is read three times and the reads ORed together; why three is not known. Each XOR A puts 0 in the high half of the port's address.
Release 1's routine is XOR A and RET before the same reads: its joystick is switched off, and Release 2's switch and the 9-JOY on the title are the change (see the notes' versions.md).
Output
A Bits 0-4: right, left, down, up, fire (0 if not in use)
F Z if nothing
IN31 F0E6 XOR A Not in use: nothing
F0E7 BIT 3,(IY+OPTIONS-V)
F0EB RET Z
F0EC IN A,($1F) Three reads, ORed
F0EE LD B,A
F0EF XOR A
F0F0 IN A,($1F)
F0F2 OR B
F0F3 LD B,A
F0F4 XOR A
F0F5 IN A,($1F)
F0F7 OR B
F0F8 AND $1F The five bits
F0FA RET
Prev: F0DF Up: Map Next: F0FB