Difference between revisions of "OSBYTE &AD"

From BeebWiki
Jump to: navigation, search
(Refer to OSBYTE &AC for full details.)
(Keyboard number.)
Line 3: Line 3:
 
''On entry:'' '''newvalue''' = ('''oldvalue''' AND Y) EOR X
 
''On entry:'' '''newvalue''' = ('''oldvalue''' AND Y) EOR X
  
'' On exit:'' X=high byte of address of keyboard translation table. See [[OSBYTE &AC]].
+
'' On exit:'' X=high byte of address of keyboard translation table or keyboard number. See [[OSBYTE &AC]].
 +
 
 +
The top bits indicate if the MOS keyboard driver is being used or an alternative keyboard driver is being used.
 +
* If Y=%11xxxxxx, MOS keyboard driver
 +
* If Y=%10xxxxxx, sideways ROM keyboard driver
 +
* If Y=%0xxxxxxx, International keyboard driver.
 +
 
 +
If Y<>%11xxxxxx (ie Y < &C0), the byte holds the keyboard number and implementation-specific flags:
 +
* b0-b4 : keyboard number &00-&1F, &00=none or default
 +
* b5
 +
* b6    : International keyboard drive: NUL needed flag
 +
* b6-b7 : MOS or external keyboard driver
  
 
==See Also==
 
==See Also==
Line 11: Line 22:
 
[[User:Jgharston|Jgharston]] 22:24, 26 May 2009 (UTC)
 
[[User:Jgharston|Jgharston]] 22:24, 26 May 2009 (UTC)
 
[[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 21:52, 13 September 2019 (CEST)
 
[[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 21:52, 13 September 2019 (CEST)
 +
[[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 03:26, 15 October 2020 (CEST)

Revision as of 02:26, 15 October 2020

OSBYTE &AD (173) - Read address of keyboard translation table

On entry: newvalue = (oldvalue AND Y) EOR X

On exit: X=high byte of address of keyboard translation table or keyboard number. See OSBYTE &AC.

The top bits indicate if the MOS keyboard driver is being used or an alternative keyboard driver is being used.

  • If Y=%11xxxxxx, MOS keyboard driver
  • If Y=%10xxxxxx, sideways ROM keyboard driver
  • If Y=%0xxxxxxx, International keyboard driver.

If Y<>%11xxxxxx (ie Y < &C0), the byte holds the keyboard number and implementation-specific flags:

  • b0-b4 : keyboard number &00-&1F, &00=none or default
  • b5
  • b6  : International keyboard drive: NUL needed flag
  • b6-b7 : MOS or external keyboard driver

See Also

Jgharston 22:24, 26 May 2009 (UTC) Jgharston (talk) 21:52, 13 September 2019 (CEST) Jgharston (talk) 03:26, 15 October 2020 (CEST)