Difference between revisions of "OSBYTE &47"

From BeebWiki
Jump to: navigation, search
m (1 revision)
(Rewritten.)
Line 1: Line 1:
[[Category:OSBYTE]]
+
[[Category:OSBYTE]]__NOTOC__
OSBYTE &47 (71) - X=0..126   set the alphabet number
+
==OSBYTE &47 (71) - Set alphabet or keyboard==
 +
On entry: X=&00+n - set or read alphabet (font)
 +
          X=&80+n - set or read keyboard
 +
                n=&00    : set to default
 +
                n=&7F    : read current setting
 +
                n=1-99    : Countries
 +
                n=100-126 : Alphabets
 +
 +
On exit,  X=0  - specified alphabet/keyboard not supported
 +
          X<&80 - previous alphabet/keyboard
 +
          X>&7F - OSBYTE call not supported
  
              X=100 BFont
+
While [[OSBYTE &46]] sets both the keyboard and alphabet (font) in one
              X=101 Latin1
+
action, this call allows each to be set individually.
              X=102 Latin2
 
              X=103 Latin3
 
              X=104 Latin4
 
              X=105 Cyrillic
 
              X=106 Arabic
 
              X=107 Greek
 
              X=108 Hebrew
 
              X=120 Cyrillic2
 
    X=127      reads the alphabet number
 
    X=128..254 sets the keyboard number
 
              X=254 standard archimedes keyboard
 
              X=253 A4 internal or PC style keyboard
 
    X=255      read the keyboard number
 
  
Implemented in the Master Internationalisation ROM and RISC OS.
+
Selecting an alphabet redefines the font with VDU 23 sequences. The alphabet
 +
can be specified with a country number 0-99, the appropriate alphabet for
 +
that country is then selected. Or the alphabet can be selected with the
 +
specific alphabet number 100-126. Selecting the default alphabet with X=&00
 +
selects the appropriate alphabet for the currently selected country set
 +
with [[OSBYTE &46]].
 +
 
 +
The keyboard can only be selected by specifying a country number, selecting
 +
a keyboard with an alphabet makes no sense. Selecting the default keyboard
 +
with X=&80 selects the appropriate keyboard for the currently selected
 +
country set with OSBYTE &46.
 +
 
 +
On 8-bit systems the keyboard number is stored in the [[OSBYTE &AD]] variable,
 +
on 32-bit systems it is stored in a non-OSBYTE variable.
 +
 
 +
* '''*COUNTRY''' parses the parameter and calls OSBYTE &46,n
 +
* '''*ALPHABET''' parses the parameter and calls OSBYTE &47,&00+n
 +
* '''*KEYBOARD''' parses the parameter and calls OSBYTE &47,&80+n
 +
 
 +
===Country numbers===
 +
    1 UK            13 Unused      25 Russia2      37 Maori
 +
    2 Master or BBC 14 Denmark      26 Israel     
 +
    3 Compact      15 Norway      27 Mexico      48 USA
 +
    4 Italy        16 Iceland      28 LatinAm      49 Wales2
 +
    5 Spain        17 Canada1      29 Australia    50 China
 +
    6 France        18 Canada2      30 Austria      51 Brazil
 +
    7 Germany      19 Canada      31 Belgium      52 SAfrica
 +
    8 Portugal      20 Turkey      32 Japan        53 Korea
 +
    9 Esperanto    21 Arabic      33 MiddleEast  54 Taiwan
 +
  10 Greece        22 Ireland      34 Netherlands
 +
  11 Sweden        23 HongKong    35 Switzerland
 +
  12 Finland      24 Russia1      36 Wales
 +
 
 +
  When selecting a keyboard:
 +
  125 A4 internal or PC keyboard
 +
  126 Archimedes keyboard
 +
 
 +
===Alphabet numbers===
 +
  100 BFont    105 Cyrillic  110 Welsh    115 Latin8
 +
  101 Latin1    106 Arabic    111 UTF8      116 Latin10
 +
  102 Latin2    107 Greek    112 Latin9 
 +
  103 Latin3    108 Hebrew    113 Latin6 
 +
  104 Latin4    109 Latin5    114 Latin7 
 +
 
 +
===Implementation===
 +
Implemented in the Master Internationalisation ROM, RISC OS kernel and
 +
keyboard handlers, and 8-bit keyboard extensions.
  
 
==See Also==
 
==See Also==
 +
* [[OSBYTE &46]] - Set country (both keyboard and alphabet)
 +
* [[OSBYTE &AC]] - Read/write keyboard handler setting
 +
* [[OSBYTE &AD]] - Read/write keyboard handler setting
 +
* [[OSBYTE &F0]] - Read/write country code
 
* http://mdfs.net/Docs/Comp/BBC/Osbyte00
 
* http://mdfs.net/Docs/Comp/BBC/Osbyte00
 
* http://mdfs.net/System/ROMs/AcornMOS/Compact511
 
* http://mdfs.net/System/ROMs/AcornMOS/Compact511
  
 
[[User:WikiSysop|WikiSysop]] ([[User talk:WikiSysop|talk]]) 13:32, 8 March 2015 (UTC)
 
[[User:WikiSysop|WikiSysop]] ([[User talk:WikiSysop|talk]]) 13:32, 8 March 2015 (UTC)
 +
[[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 23:19, 18 October 2020 (CEST)

Revision as of 22:19, 18 October 2020

OSBYTE &47 (71) - Set alphabet or keyboard

On entry: X=&00+n - set or read alphabet (font)
          X=&80+n - set or read keyboard
                n=&00     : set to default
                n=&7F     : read current setting
                n=1-99    : Countries
                n=100-126 : Alphabets

On exit,  X=0   - specified alphabet/keyboard not supported
          X<&80 - previous alphabet/keyboard
          X>&7F - OSBYTE call not supported

While OSBYTE &46 sets both the keyboard and alphabet (font) in one action, this call allows each to be set individually.

Selecting an alphabet redefines the font with VDU 23 sequences. The alphabet can be specified with a country number 0-99, the appropriate alphabet for that country is then selected. Or the alphabet can be selected with the specific alphabet number 100-126. Selecting the default alphabet with X=&00 selects the appropriate alphabet for the currently selected country set with OSBYTE &46.

The keyboard can only be selected by specifying a country number, selecting a keyboard with an alphabet makes no sense. Selecting the default keyboard with X=&80 selects the appropriate keyboard for the currently selected country set with OSBYTE &46.

On 8-bit systems the keyboard number is stored in the OSBYTE &AD variable, on 32-bit systems it is stored in a non-OSBYTE variable.

  • *COUNTRY parses the parameter and calls OSBYTE &46,n
  • *ALPHABET parses the parameter and calls OSBYTE &47,&00+n
  • *KEYBOARD parses the parameter and calls OSBYTE &47,&80+n

Country numbers

   1 UK            13 Unused       25 Russia2      37 Maori
   2 Master or BBC 14 Denmark      26 Israel       
   3 Compact       15 Norway       27 Mexico       48 USA
   4 Italy         16 Iceland      28 LatinAm      49 Wales2
   5 Spain         17 Canada1      29 Australia    50 China
   6 France        18 Canada2      30 Austria      51 Brazil
   7 Germany       19 Canada       31 Belgium      52 SAfrica
   8 Portugal      20 Turkey       32 Japan        53 Korea
   9 Esperanto     21 Arabic       33 MiddleEast   54 Taiwan
  10 Greece        22 Ireland      34 Netherlands
  11 Sweden        23 HongKong     35 Switzerland 
  12 Finland       24 Russia1      36 Wales
  
  When selecting a keyboard:
 125 A4 internal or PC keyboard
 126 Archimedes keyboard

Alphabet numbers

 100 BFont     105 Cyrillic  110 Welsh     115 Latin8
 101 Latin1    106 Arabic    111 UTF8      116 Latin10
 102 Latin2    107 Greek     112 Latin9  
 103 Latin3    108 Hebrew    113 Latin6  
 104 Latin4    109 Latin5    114 Latin7  

Implementation

Implemented in the Master Internationalisation ROM, RISC OS kernel and keyboard handlers, and 8-bit keyboard extensions.

See Also

WikiSysop (talk) 13:32, 8 March 2015 (UTC) Jgharston (talk) 23:19, 18 October 2020 (CEST)