| Bits | Description |
|---|---|
| 7:6 | Joystick 1 mode (LSB) |
| 5:4 | Joystick 2 mode (LSB) |
| 3 | Joystick 1 mode (MSB) |
| 2 | 50/60 Hz mode (0 = 50Hz, 1 = 60Hz, Pentagon forces 50Hz) |
| 1 | Joystick 2 mode (MSB) |
| 0 | Enable scandoubler (1 = enabled for vga, 0 for crt) |
Joystick modes: 000 = Sinclair 2 (12345) 001 = Kempston 1 (port 0x1F) 010 = Cursor (56780) 011 = Sinclair 1 (67890) 100 = Kempston 2 (port 0x37) 101 = MD 1 (3 or 6 button joystick port 0x1F) 110 = MD 2 (3 or 6 button joystick port 0x37) 111 = User Defined Keys Joystick on nextreg 0x28, nextreg 0x29 and nextreg 0x2B: 1. Write 128 to nextreg 0x28 2. Write 0 (left joystick) or 16 (right joystick) to nextreg 0x29 3. Write twelve bytes to nextreg 0x2B in order. The bytes correspond to the twelve buttons on an md pad (MODE=11 X Z Y START A C B U D L R=0) 4. Each byte written identifies a key in the 8x7 membrane; bits 5:3 select the row and bits 2:0 select the column with 111 meaning no action generate key input if so programmed
* Joysticks can be placed in i/o mode via nextreg 0x0B
* Programming the user defined keys joystick is done through the ps2 keymap interface
* In kempston and md modes, excess buttons on a controller not read via ports will