OSBYTE &81
From BeebWiki
OSBYTE &81 (129) - Read Key with Time Limit or Machine Type. Called by BASIC's =INKEY function.
Action: Read key with time limit
X=0..255
Y=0..127
On exit C=0 character read, Y=0, X=character read
C=1, Y=255 timed out
C=1, Y=27 ESCAPE was pressed
Action: Read OS version
X=0
Y=255
On exit X=value identifying OS
X=&00 BBC B with MOS 0.10
X=&00 RM Nimus
X=&01 Acorn Electron MOS
X=&FF BBC Micro OS 1.00/1.20
X=&FE BBC Micro (American MOS 1.10)
X=&FE NetBSD
X=&FD Master 128 MOS 3.20
X=&FC BBC Micro (West German MOS)
X=&FC Windows 32
X=&FB BBC B+ 64/128 (MOS2.00)
X=&FB Beos (Brandy Basic)
X=&FA Acorn ABC
X=&FA DOS with Brandy BASIC
X=&F9 Linux
X=&F8 MacOS X (Brandy Basic)
X=&F7 Master ET OS 4.00
X=&F7 FreeBSD
X=&F6 OpenBSD
X=&F5 Compact
X=&F5 Amiga (Brandy Basic)
X=&F4 Master 128 MOS 3.26
X=&Ex Spectrum
X=&Dx Amstrad 464/664/6128, etc.
X=&Ax Arthur/RISC OS
X=&A0 Arthur 1.20
X=&A1 RISC OS 2.00
X=&A2 RISC OS 2.01
X=&A3 RISC OS 3.0x
X=&A4 RISC OS 3.1x
X=&A5 RISC OS 3.50
X=&A6 RISC OS 3.60
X=&A7 RISC OS 3.7x
X=&A8 RISC OS 4.0x
X=&A9 RISC OS 4.3x
X=&AA RISC OS 5.xx
X=&AF Springboard (An ARM-based development system plugged into a PC)
X=&57 BBC BASIC for Windows
Action: Scan for a range of keys
X=1..127 lowest internal key number to start at EOR&7F
Y=255
On exit X=internal key number pressed (or 255 for none)
Action: Scan for a particular key
X=128..255 internal key number to scan for EOR &80
Y=255
On exit X=Y=0 for as not pressed
X=Y=255 the key was being pressed
See Also
Jgharston 21:56, 26 May 2009 (UTC)

