Difference between revisions of "OSBYTE &47"

From BeebWiki
Jump to: navigation, search
(Rewritten.)
m (Tweeked tables.)
Line 35: Line 35:
  
 
===Country numbers===
 
===Country numbers===
     1 UK           13 Unused       25 Russia2      37 Maori
+
     1 UK             11 Sweden        21 Arabic        31 Belgium       48 USA
     2 Master or BBC 14 Denmark      26 Israel        
+
     2 Master or BBC 12 Finland      22 Ireland       32 Japan        49 Wales2
     3 Compact       15 Norway      27 Mexico      48 USA
+
     3 Compact       13 Unused        23 HongKong      33 MiddleEast    50 China
     4 Italy         16 Iceland      28 LatinAm      49 Wales2
+
     4 Italy         14 Denmark      24 Russia1      34 Netherlands  51 Brazil
     5 Spain         17 Canada1      29 Australia    50 China
+
     5 Spain         15 Norway        25 Russia2      35 Switzerland  52 SAfrica
     6 France        18 Canada2      30 Austria      51 Brazil
+
     6 France         16 Iceland      26 Israel       36 Wales        53 Korea
     7 Germany      19 Canada      31 Belgium      52 SAfrica
+
     7 Germany       17 Canada1       27 Mexico        37 Maori        54 Taiwan
     8 Portugal     20 Turkey       32 Japan        53 Korea
+
     8 Portugal      18 Canada2      28 LatinAm   
     9 Esperanto     21 Arabic      33 MiddleEast   54 Taiwan
+
     9 Esperanto     19 Canada        29 Australia    
   10 Greece        22 Ireland      34 Netherlands
+
   10 Greece         20 Turkey       30 Austria      
  11 Sweden        23 HongKong     35 Switzerland
 
  12 Finland      24 Russia1      36 Wales
 
 
    
 
    
 
   When selecting a keyboard:
 
   When selecting a keyboard:
Line 53: Line 51:
  
 
===Alphabet numbers===
 
===Alphabet numbers===
   100 BFont     105 Cyrillic 110 Welsh     115 Latin8
+
   100 BFont     105 Cyrillic   110 Welsh     115 Latin8
   101 Latin1   106 Arabic   111 UTF8     116 Latin10
+
   101 Latin1     106 Arabic     111 UTF8       116 Latin10
   102 Latin2   107 Greek     112 Latin9   
+
   102 Latin2     107 Greek     112 Latin9   
   103 Latin3   108 Hebrew   113 Latin6   
+
   103 Latin3     108 Hebrew     113 Latin6   
   104 Latin4   109 Latin5   114 Latin7   
+
   104 Latin4     109 Latin5     114 Latin7   
  
 
===Implementation===
 
===Implementation===
Line 72: Line 70:
  
 
[[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)
+
[[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 23:32, 18 October 2020 (CEST)

Revision as of 22:32, 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             11 Sweden        21 Arabic        31 Belgium       48 USA
   2 Master or BBC  12 Finland       22 Ireland       32 Japan         49 Wales2
   3 Compact        13 Unused        23 HongKong      33 MiddleEast    50 China
   4 Italy          14 Denmark       24 Russia1       34 Netherlands   51 Brazil
   5 Spain          15 Norway        25 Russia2       35 Switzerland   52 SAfrica
   6 France         16 Iceland       26 Israel        36 Wales         53 Korea
   7 Germany        17 Canada1       27 Mexico        37 Maori         54 Taiwan
   8 Portugal       18 Canada2       28 LatinAm     
   9 Esperanto      19 Canada        29 Australia   
  10 Greece         20 Turkey        30 Austria     
  
  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:32, 18 October 2020 (CEST)