Difference between revisions of "Machine types"

From BeebWiki
Jump to: navigation, search
m (1 revision)
(Added 6809 hosts.)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
 
[[Category:Programming]]
 
[[Category:Programming]]
[[OSBYTE &00]] and [[OSBYTE &81]]/[[INKEY]]-256 return values that can used to
+
[[OSBYTE &00]] and [[OSBYTE &81]]/[[INKEY]]-256 return values that can used
identify the system a program is running on.
+
to identify the system a program is running on.
  
 
OSBYTE 0,0 generates an error with the error string describing the host
 
OSBYTE 0,0 generates an error with the error string describing the host
Line 20: Line 20:
 
  ---------------------------------------------------------------------
 
  ---------------------------------------------------------------------
 
     2    |          | BBC B+
 
     2    |          | BBC B+
          |    &FB    |  BBC B+ OS 2.00
 
 
           |    &FF    |  Reuters Terminal (UK) (switchable with *UK)
 
           |    &FF    |  Reuters Terminal (UK) (switchable with *UK)
 
           |    &FE    |  Reuters Terminal (US) (switchable with *US)
 
           |    &FE    |  Reuters Terminal (US) (switchable with *US)
 +
          |    &FB    |  BBC B+ OS 2.00
 
           |    &FA    |  Acorn Business Computer OS
 
           |    &FA    |  Acorn Business Computer OS
 
  ---------------------------------------------------------------------
 
  ---------------------------------------------------------------------
Line 53: Line 53:
 
           |    &F9    |  Linux
 
           |    &F9    |  Linux
 
           |    &FE    |  NetBSD
 
           |    &FE    |  NetBSD
 +
---------------------------------------------------------------------
 +
    9    |          | 6809-based host with Unix-style pathnames
 +
---------------------------------------------------------------------
 +
    17    |          | 6809-based host with BBC-style pathnames
 +
---------------------------------------------------------------------
 +
    28    |          | Commodore 64
 
  ---------------------------------------------------------------------
 
  ---------------------------------------------------------------------
 
     29    |    &8x    | TI Calculator
 
     29    |    &8x    | TI Calculator
Line 64: Line 70:
 
  ---------------------------------------------------------------------
 
  ---------------------------------------------------------------------
 
     32    |          | DOS or Windows
 
     32    |          | DOS or Windows
           |    &57    |  BBC BASIC for Windows
+
          |    &73    |  BBC BASIC for SDL ("s")
 +
          |    &53    |  BBC BASIC for SDL ("S")
 +
           |    &57    |  BBC BASIC for Windows ("W")
 
           |    &FA    |  DOS with Brandy BASIC
 
           |    &FA    |  DOS with Brandy BASIC
 
           |    &FC    |  Windows 32 with Brandy BASIC
 
           |    &FC    |  Windows 32 with Brandy BASIC
 
           |    ---    |  DOS BBCBASIC-86 does not support INKEY-256
 
           |    ---    |  DOS BBCBASIC-86 does not support INKEY-256
 +
---------------------------------------------------------------------
 +
    57    |          | 6809-based host with DOS-style pathnames
 
  ---------------------------------------------------------------------
 
  ---------------------------------------------------------------------
 
     --    |    &00    | RM Nimbus
 
     --    |    &00    | RM Nimbus
Line 82: Line 92:
  
 
It is hard to determine what hardware the actual program is running on, but
 
It is hard to determine what hardware the actual program is running on, but
a BASIC program can easily find [[What BASIC is running|what version of BASIC]]
+
a BASIC program can easily find
it is running on, which in most cases is sufficient.
+
[[What BASIC is running|what version of BASIC]] it is running on, which in
 +
most cases is sufficient.
  
 
[[User:Jgharston|Jgharston]] 23:42, 2 December 2008 (UTC)
 
[[User:Jgharston|Jgharston]] 23:42, 2 December 2008 (UTC)
 +
[[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 00:29, 16 June 2018 (CEST)

Latest revision as of 23:29, 15 June 2018

OSBYTE &00 and OSBYTE &81/INKEY-256 return values that can used to identify the system a program is running on.

OSBYTE 0,0 generates an error with the error string describing the host system, OSBYTE 0,<>0 returns a byte indicating what type of host hardware the program is running on. OSBYTE 129,255,0 (callable from BASIC with INKEY-256) returns a subvalue that indicates the specific type of host operating system.

OSBYTE 00 | INKEY-256 | Host system
---------------------------------------------------------------------
    0     |    &01    | Electron
---------------------------------------------------------------------
    1     |           | BBC B
          | &FFFFFFFF |  BBC OS 1.00/1.20
          |    &FE    |  BBC OS 1.10 (US)
          |    &FC    |  BBC OS 1.20 (Germany)
          |    &FA    |  Acorn Business Computer OS
---------------------------------------------------------------------
    2     |           | BBC B+
          |    &FF    |  Reuters Terminal (UK) (switchable with *UK)
          |    &FE    |  Reuters Terminal (US) (switchable with *US)
          |    &FB    |  BBC B+ OS 2.00
          |    &FA    |  Acorn Business Computer OS
---------------------------------------------------------------------
    3     |    &FD    | Master OS 3.20
---------------------------------------------------------------------
    4     |    &F7    | Master ET OS 4.00
---------------------------------------------------------------------
    5     |    &F5    | Master Compact OS 5.00
---------------------------------------------------------------------
    6     |    &Ax    | Archimedes/RISC OS system
          |    &A0    |  Archimedes Arthur 1.20
          |    &A1    |  RISC OS 2.00
          |    &A2    |  RISC OS 2.01
          |    &A3    |  RISC OS 3.00
          |    &A4    |  RISC OS 3.1x
          |    &A5    |  RISC OS 3.50
          |    &A6    |  RISC OS 3.60
          |    &A7    |  RISC OS 3.7x
          |    &A8    |  RISC OS 4.0x
          |    &A9    |  RISC OS 4.3x
          |    &AA    |  RISC OS 5.xx
          |           | (INKEY-256 AND &F0)=&A0 is TRUE for ARM systems
---------------------------------------------------------------------
    7     |    &AF    | Springboard
          |           | (INKEY-256 AND &F0)=&A0 is TRUE for ARM systems
---------------------------------------------------------------------
    8     |           | UNIX-type OS
          |    &F6    |  OpenBSD
          |    &F7    |  FreeBSD
          |    &F9    |  Linux
          |    &FE    |  NetBSD
---------------------------------------------------------------------
    9     |           | 6809-based host with Unix-style pathnames
---------------------------------------------------------------------
   17     |           | 6809-based host with BBC-style pathnames
---------------------------------------------------------------------
   28     |           | Commodore 64
---------------------------------------------------------------------
   29     |    &8x    | TI Calculator
          |    &83    |  TI-83+
          |    &84    |  TI-84+
---------------------------------------------------------------------
   30     |    &Dx    | Amstrad 464/664/6128, etc.
---------------------------------------------------------------------
   31     |    &Ex    | ZX Spectrum
          |    &E0    |  ZX Spectrum
---------------------------------------------------------------------
   32     |           | DOS or Windows
          |    &73    |  BBC BASIC for SDL ("s")
          |    &53    |  BBC BASIC for SDL ("S")
          |    &57    |  BBC BASIC for Windows ("W")
          |    &FA    |  DOS with Brandy BASIC
          |    &FC    |  Windows 32 with Brandy BASIC
          |    ---    |  DOS BBCBASIC-86 does not support INKEY-256
---------------------------------------------------------------------
   57     |           | 6809-based host with DOS-style pathnames
---------------------------------------------------------------------
   --     |    &00    | RM Nimbus
   --     |    &F5    | Amiga (Brandy Basic)
   --     |    &F8    | MacOS X (Brandy Basic)
   --     |    &FB    | Beos (Brandy Basic)
---------------------------------------------------------------------

Note that OSBYTE &00 and INKEY-256 return the host system, the main I/O hardware, which may not necessarily be the system the program is running on. For instance, a 6502 second processor emulator running on RISC OS will return 6 from OSBYTE 0 and an ARM CoProcessor connected to a BBC Master will return &03.

It is hard to determine what hardware the actual program is running on, but a BASIC program can easily find what version of BASIC it is running on, which in most cases is sufficient.

Jgharston 23:42, 2 December 2008 (UTC) Jgharston (talk) 00:29, 16 June 2018 (CEST)