API

From BeebWiki

Jump to: navigation, search

MOS Calls

  • OSCLI Execute *command
  • OSBYTE Various byte-wise functions
  • OSWORD Various functions with control block data

Character I/O

  • OSWRCH Send a character to output stream
  • OSWRCR Send a CR to output stream
  • OSNEWL Send a NewLine to output stream
  • OSASCI Send an ASCII sequence to output stream
  • OSRDCH Wait for a character from input stream

Filing System Calls

  • OSFILE Operate on whole files
  • OSARGS Read and write information on open files and filing systems
  • OSBGET Read a byte from a channel
  • OSBPUT Write a byte to a channel
  • OSGBPB Read or write blocks of data
  • OSFIND Open or close files

Vectors

  • FSCV Low-level filing system control

Miscellaneous Calls

  • NVWRCH Nonvectored OSWRCH, points to default contents of WRCHV
  • NVRDCH Nonvectored OSRDCH, points to default contents of RDCHV
  • GSREAD General String Reading
  • GSINIT General String Initialisation
  • OSEVEN Generate events
  • VDUCHR Send a character to VDU drivers
  • OSRDSC Read a byte from paged/banked memory
  • DEFVEC Pointer to default vector table
  • OSWRSC Write a byte to screen memory

MOS API Entry Points on various platforms

                   |  6502 |  Z80  |       80x86         | PDP11  |  32016  |            ARM               |  6809 |
                   | vector| vector|  entry    vector    | entry  |         |     entry          vector    | vector|
                   |       |       |                     |        |         |                              |       |
* IRQV             | &FFFE | &FFEE |                     |        |         |                              |       |
* RSTV             | &FFFC |       |                     |        |         |                              |       |
* NMIV             | &FFFA |       |                     |        |         |                              |       |
                   |       |       |                     |        |         |                              |       |
* USERV            | &0200 |       |                     |        |         |                              |       |
* ERROR            |  BRK  |RST &38| INT &4F (0000:013C) | EMT 15 |         | SWI &2B "OS_GenerateError"   |       |
* BRKV             | &0202 | &FFFA | INT &4F (0000:013C) |        |         |                              |       |
* IRQ1V            | &0204 |       |                     |        |         |                              |       |
* IRQ2V            | &0206 |       |                     |        |         |                              |       |
                   |       |       |                     |        |         |                              |       |
* QUIT             |       |       |                     | EMT 0  | SVC &11 | SWI &11 "OS_Exit"            |       |
                   |       |       |                     |        |         |                              |       |
===MOS Calls===    |       |       |                     |        |         |                              |       |
* OSCLI      &FFF7 | &0208 | &FFF8 | INT &4C (0000:0130) | EMT 1  | SVC &08 | SWI &05 "OS_CLI"       (&05) | &FFF8 |
* OSBYTE     &FFF4 | &020A | &FFF5 | INT &4B (0000:012C) | EMT 2  | SVC &06 | SWI &06 "OS_Byte"      (&06) | &FFF5 |
* OSWORD     &FFF1 | &020C | &FFF2 | INT &4A (0000:0128) | EMT 3  | SVC &07 | SWI &07 "OS_Word"      (&07) | &FFF2 |
                   |       |       |                     |        |         |                              |       |
===Character I/O===|       |       |                     |        |         |                              |       |
* OSWRCH     &FFEE | &020E | &FFEF | INT &49 (0000:0124) | EMT 4  | SVC &01 | SWI &00 "OS_WriteC"    (&03) | &FFEF |
* OSWRCR     &FFEC |       |       |                     |        |         |                              |       |
* OSNEWL     &FFE7 |       |       | INT &48 (0000:0120) | EMT 5  | SVC &04 | SWI &03 "OS_NewLine"         |       |
* OSASCI     &FFE3 |       |       | INT &47 (0000:011C) |        | SVC &03 |                              |       |
* OSRDCH     &FFE0 | &0210 | &FFE1 | INT &46 (0000:0118) | EMT 6  | SVC &05 | SWI &04 "OS_ReadC"     (&04) | &FFE1 |
                   |       |       |                     |        |         |                              |       |
===Filing System Calls===  |       |                     |        |         |                              |       |
* OSFILE     &FFDD | &0212 | &FFDE | INT &45 (0000:0114) | EMT 7  | SVC &0A | SWI &08 "OS_File"      (&08) | &FFDE |
* OSARGS     &FFDA | &0214 | &FFDB | INT &44 (0000:0110) | EMT 8  | SVC &0C | SWI &09 "OS_Args"      (&09) | &FFDB |
* OSBGET     &FFD7 | &0216 | &FFD8 | INT &43 (0000:010C) | EMT 9  | SVC &0D | SWI &0A "OS_BGet"      (&0A) | &FFD8 |
* OSBPUT     &FFD4 | &0218 | &FFD5 | INT &42 (0000:0108) | EMT 10 | SVC &0E | SWI &0B "OS_BPut"      (&0B) | &FFD5 |
* OSGBPB     &FFD1 | &021A | &FFD2 | INT &41 (0000:0104) | EMT 11 | SVC &0F | SWI &0C "OS_GBPB"      (&0C) | &FFD2 |
* OSFIND     &FFCE | &021C | &FFCF | INT &40 (0000:0100) | EMT 12 | SVC &0B | SWI &0D "OS_Find"      (&0D) | &FFCF |
* FSCV             | &021E |       |                     |        |         | SWI &0F "OS_FSControl" (&29) |       |
                   |       |       |                     |        |         |                              |       |
* NVWRCH     &FFCB |       |       |                     |        |         |                              |       |
* NVRDCH     &FFC8 |       |       |                     |        |         |                              |       |
* GSREAD     &FFC5 |       |       |                     |        |         |                              |       |
* GSINIT     &FFC2 |       |       |                     |        |         |                              |       |
* OSEVENT    &FFBF | &0220 | &FFFC |                     |        |         |                              |       |
* VDUCHR     &FFBC |       |       |                     |        |         |                              |       |
* OSRDSC     &FFB9 |       |       |                     |        |         |                              |       |
* DEFVEC     &FFB6 |       |       |                     |        |         |                              |       |
* OSWRSC     &FFB3 |       |       |                     |        |         |                              |       |
                   |       |       |                     |        |         |                              |       |
* UPTV             | &0222 |       |                     |        |         |                              |       |
* NETV             | &0224 |       |                     |        |         |                              |       |
* VDUV             | &0226 |       |                     |        |         |                              |       |
* KEYV             | &0228 |       |                     |        |         |                              |       |
* INSV             | &022A |       |                     |        |         |                              |       |
* REMV             | &022C |       |                     |        |         |                              |       |
* CNPV             | &022E |       |                     |        |         |                              |       |
* USR1V            | &0230 |       |                     |        |         |                              |       |
* USR2V            | &0232 |       |                     |        |         |                              |       |
* USR3V            | &0234 |       |                     |        |         |                              |       |

Jgharston 16:54, 6 November 2009 (UTC)

Personal tools