Skip to navigation

Elite on the BBC Micro and NES

Keyboard: TT217

[Acorn Electron version]

Name: TT217 [Show more] Type: Subroutine Category: Keyboard Summary: Scan the keyboard until a key is pressed
Context: See this subroutine in context in the source code Variations: See code variations for this subroutine in the different versions References: This subroutine is called as follows: * gnum calls TT217 * qv calls TT217 * TT214 calls TT217 * mes9 calls via out * OUCH calls via out

Scan the keyboard until a key is pressed, and return the key's ASCII code. If, on entry, a key is already being held down, then wait until that key is released first (so this routine detects the first key down event following the subroutine call).
Returns: X The ASCII code of the key that was pressed A Contains the same as X Y Y is preserved
Other entry points: out Contains an RTS
.TT217 STY YSAV \ Store Y in temporary storage, so we can restore it \ later .t DEC KEYB \ Decrement KEYB, so it is now &FF, to indicate that we \ are reading from the keyboard using an OS command JSR OSRDCH \ Call OSRDCH to read a character from the keyboard INC KEYB \ Increment KEYB back to 0 to indicate we are done \ reading the keyboard TAX \ Copy A into X .out RTS \ Return from the subroutine