Difference between revisions of "OSBYTE &AD"

From BeebWiki
Jump to: navigation, search
m (.)
m (Added template.)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:OSBYTE]]
+
[[Category:OSBYTE]]__NOTOC__
OSBYTE &AD (173) - Read address of keyboard table
+
==OSBYTE &AD (173) - Read address of keyboard translation table==
 +
''On entry:'' '''newvalue''' = ('''oldvalue''' AND Y) EOR X
  
On exit X=the high byte of OSByte &AC
+
'' On exit:'' X=high byte of address of keyboard translation table or keyboard number. See [[OSBYTE &AC]].
  
With an International Keyboard Driver, if bit 7 is clear (implying a keyboard table
+
The top bits indicate if the MOS keyboard driver is being used or an alternative keyboard driver is being used.
in low memory), the MOS keyboard handler issues Service Call &30 to translate
+
* If Y=%11xxxxxx, MOS keyboard driver
keypresses. With an International Keyboard Driver present, this location holds:
+
* If Y=%10xxxxxx, sideways ROM keyboard driver
 +
* If Y=%0xxxxxxx, International keyboard driver.  
  
  b7    = 0 to indicate international keyboard driver being used
+
If Y<>%11xxxxxx (ie Y < &C0), the byte holds the keyboard number and implementation-specific flags:
  b6    = a flag
+
* b0-b5 : keyboard number &00-&3F, &00=none or default
  b5-b0 = keyboard number
+
* b6    : International keyboard driver: NUL needed flag
 +
* b6-b7 : MOS or external keyboard driver
  
 
==See Also==
 
==See Also==
 +
* [[OSBYTE &46]] - Set country (both keyboard and alphabet)
 +
* [[OSBYTE &47]] - Set keyboard and alphabet
 +
* [[OSBYTE &AC]] - Read/write keyboard handler setting
 +
* [[OSBYTE &F0]] - Read/write country code
 +
* http://mdfs.net/Docs/Comp/BBC/Osbyte00
 
* http://mdfs.net/Docs/Comp/BBC/OsbyteA6
 
* http://mdfs.net/Docs/Comp/BBC/OsbyteA6
 +
* http://mdfs.net/System/ROMs/AcornMOS/Compact511
  
 +
{{Keyboard}}
 
[[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]]) 03:26, 15 October 2020 (CEST)
 +
[[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 23:23, 18 October 2020 (CEST)

Latest revision as of 17:12, 13 November 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-b5 : keyboard number &00-&3F, &00=none or default
  • b6  : International keyboard driver: NUL needed flag
  • b6-b7 : MOS or external keyboard driver

See Also

Keyboard system

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