API

From BeebWiki
Revision as of 04:05, 9 January 2012 by Abz (talk) (Updated 80x86.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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  |  6809 | PDP11  |       80x86         |  32016  |            ARM             |
                   | vector| vector| vector| entry  |  entry    vector    |         |     entry           vector |
                   |       |       |       |        |                     |         |                            |
* IRQV             | &FFFE | &FFEE |       |        |                     |         |                            |
* RSTV             | &FFFC |       |       |        |                     |         |                            |
* NMIV             | &FFFA |       |       |        |                     |         |                            |
                   |       |       |       |        |                     |         |                            |
* USERV            | &0200 |       |       |        |                     |         |                            |
* ERROR            |  BRK  |RST &38|  SWI  | EMT 15 | INT &4F (0000:013C) |         | SWI &2B "OS_GenerateError" |
* BRKV             | &0202 | &FFFA | &FFFA |        |         (0000:05F8) |         |                            |
* IRQ1V            | &0204 |       |       |        |                     |         |                            |
* IRQ2V            | &0206 | &FFB1 | &FFB1 |        |                     |         |                            |
* FAULT            | &00FD | &FF82 | &FF82 |        |         (0000:05F4) |         |                            |
* ESCFLG           | &00FF | &FF80 | &FF80 |        |         (0000:05F0) |         |                            |
                   |       |       |       |        |                     |         |                            |
* QUIT             |       |       |       | EMT 0  |                     | SVC &11 | SWI &11 "OS_Exit"          |
                   |       |       |       |        |                     |         |                            |
===MOS Calls===    |       |       |       |        |                     |         |                            |
* OSCLI      &FFF7 | &0208 | &FFF8 | &FFF8 | EMT 1  | INT &4C (0000:0130) | SVC &08 | SWI &05 "OS_CLI"       &05 |
* OSBYTE     &FFF4 | &020A | &FFF5 | &FFF5 | EMT 2  | INT &4B (0000:012C) | SVC &06 | SWI &06 "OS_Byte"      &06 |
* OSWORD     &FFF1 | &020C | &FFF2 | &FFF2 | EMT 3  | INT &4A (0000:0128) | SVC &07 | SWI &07 "OS_Word"      &07 |
                   |       |       |       |        |                     |         |                            |
===Character I/O===|       |       |       |        |                     |         |                            |
* OSWRCH     &FFEE | &020E | &FFEF | &FFEF | EMT 4  | INT &49 (0000:0124) | SVC &01 | SWI &00 "OS_WriteC"    &03 |
* OSWRCR     &FFEC |       |       |       |        |                     |         |                            |
* OSNEWL     &FFE7 |       |       |       | EMT 5  | INT &48 (0000:0120) | SVC &04 | SWI &03 "OS_NewLine"       |
* OSASCI     &FFE3 |       |       |       |        | INT &47 (0000:011C) | SVC &03 |                            |
* OSRDCH     &FFE0 | &0210 | &FFE1 | &FFE1 | EMT 6  | INT &46 (0000:0118) | SVC &05 | SWI &04 "OS_ReadC"     &04 |
                   |       |       |       |        |                     |         |                            |
===Filing System Calls===  |       |       |        |                     |         |                            |
* OSFILE     &FFDD | &0212 | &FFDE | &FFDE | EMT 7  | INT &45 (0000:0114) | SVC &0A | SWI &08 "OS_File"      &08 |
* OSARGS     &FFDA | &0214 | &FFDB | &FFDB | EMT 8  | INT &44 (0000:0110) | SVC &0C | SWI &09 "OS_Args"      &09 |
* OSBGET     &FFD7 | &0216 | &FFD8 | &FFD8 | EMT 9  | INT &43 (0000:010C) | SVC &0D | SWI &0A "OS_BGet"      &0A |
* OSBPUT     &FFD4 | &0218 | &FFD5 | &FFD5 | EMT 10 | INT &42 (0000:0108) | SVC &0E | SWI &0B "OS_BPut"      &0B |
* OSGBPB     &FFD1 | &021A | &FFD2 | &FFD2 | EMT 11 | INT &41 (0000:0104) | SVC &0F | SWI &0C "OS_GBPB"      &0C |
* OSFIND     &FFCE | &021C | &FFCF | &FFCF | EMT 12 | INT &40 (0000:0100) | SVC &0B | SWI &0D "OS_Find"      &0D |
* FSCV             | &021E |       |       |        |                     |         | SWI &0F "OS_FSControl" &29 |
                   |       |       |       |        |                     |         |                            |
* NVWRCH     &FFCB |       |       |       |        |                     |         |                            |
* NVRDCH     &FFC8 |       |       |       |        |                     |         |                            |
* GSREAD     &FFC5 |       |       |       |        |                     |         |                            |
* GSINIT     &FFC2 |       |       |       |        |                     |         |                            |
* OSEVENT    &FFBF | &0220 | &FFFC | &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 |       |       |        |                     |         |                            |

Abz 03:05, 9 January 2012 (UTC)