Prev: B938 Up: Map Next: B95A
B952: Read Keyboard Port
Used by the routines at PauseGame, GameMenu, ReadControls and PlayMusicOnce.
Reads some rows of the keyboard. The row selector is also written to port FD (with the selector as the high byte of the address), which does nothing on a 48K Spectrum and is not part of any sound; the keyboard is read with the same selector straight afterwards.
Input
A Row selector (a bit which is reset selects the row)
Output
A Keys pressed, in bits 0 to 4 (a bit is set when a key is pressed)
F Zero flag set if no key is pressed
Write the selector, then read the keys.
ReadKeyboardPort B952 OUT ($FD),A Write the row selector to port FD.
B954 IN A,($FE) Read the keyboard half-rows.
B956 CPL Make the pressed keys set bits.
B957 AND %00011111 Keep only bits 0 to 4.
B959 RET Return.
View the equivalent code in;
Prev: B938 Up: Map Next: B95A