OSBYTE &FE

From BeebWiki
Jump to: navigation, search

OSBYTE &FE (254) - Read/Write available RAM, keyboard extensions

   (BBC MOS 1.xx)
   These bits refer to 16K/32K machine:
   When read &40=16K
             &80=32K
   (Electron OS)
   This value returns 0 and is otherwise undefined
   (Acorn MOS 2.xx)
   This value returns 1 and is otherwise undefined
   (Acorn MOS 3.xx)
   Read/Write effect of shift on Numeric pad
   A zero in this location makes SHIFT-keypad presses act like their main
   keyboard counterparts. A nonzero value means shift is ignored.
   (RISC OS)
   A zero in this location enables both SHIFT and CTRL-keypad presses:
   For keys 128 and above (ie. the base has been altered with OSByte 238)
      CTRL-keypad gives keypad key EOR&20
      SHIFT-keypad gives keypad key EOR&10
   For keys below 128
      CTRL and SHIFT are ignored
   (Other)
   On non-Acorn systems with full keyboards, if bit 7 is set, bit 6 indicates
   whether function keys return native regular character codes, or return
   RISC OS semi-regular key codes.
   b7=1, b6=0 - return whatever the host system's native keycodes
   b7=1, b6=1 - return semi-regular key codes, f0-f9=&80-&89, f10-f12=&CA-&CC.
   
   *FX254,128 can be used to portably select native keycodes. Where *FX254 is not
   supported, native keycodes will be used anyway. Where *FX254 is supported, it
   will select native keycodes, which should be the default on startup.
   *FX254,192 can be used to portably select RISCOS-style semi-regular keycodes.
   Where *FX254,192 is not supported, this will normally be RISC OS, which will
   be using semi-regular keycodes anyway. Where *FX254,192 is supported, it will
   select RISCOS-style semi-regular keycodes.
   
   The only incompatability is if this is used on a 16K BBC model A.

See Also

Jgharston 23:21, 26 May 2009 (UTC) Jgharston (talk) 04:57, 20 July 2020 (CEST)