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
  • KEYV Keyboard 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

        | std | 6502 |  Z80  | 6809 | PDP11 |     80x86       | 32016 |            ARM           |    RISC-V   |
        |entry|vector| vector|vector| entry | entry   vector  |       |    entry          vector |    entry    |
        |     |      |       |      |       |                 |       |                          |             |
IRQV    |     |&FFFE | &FFEE |      |       |                 |       |                          |             |
RSTV    |     |&FFFC |       |      |       |                 |       |                          |             |
NMIV    |     |&FFFA |       |      |       |                 |       |                          |             |
        |     |      |       |      |       |                 |       |                          |             |
USERV   |     |&0200 |       |      |       |                 |       |                          |             |
ERROR   |     | BRK  |RST &38| SWI  |EMT &0F|INT &4F 0000:013C|       |SWI &2B "OS_GenerateError"|ECALL &AC000F|
BRKV    |     |&0202 | &FFFA |&FFFA |       |        0000:05F8|       |                          |             |
IRQ1V   |     |&0204 |       |      |       |                 |       |                          |             |
IRQ2V   |     |&0206 | &FFB1 |&FFB1 |       |                 |       |                          |             |
FAULT   |     |&00FD | &FF82 |&FF82 |       |        0000:05F4|       |                          |             |
ESCFLG  |     |&00FF | &FF80 |&FF80 |       |        0000:05F0|       |                          |             |
        |     |      |       |      |       |                 |       |                          |             |
OSQUIT  |     |      | &FFBA |&FFBA |EMT &00|                 |SVC &11|SWI &11 "OS_Exit"         |ECALL &AC0000|
        |     |      |       |      |       |                 |       |                          |             |
MOS Calls     |      |       |      |       |                 |       |                          |             |
OSCLI   |&FFF7|&0208 | &FFF8 |&FFF8 |EMT &01|INT &4C 0000:0130|SVC &08|SWI &05 "OS_CLI"       &05|ECALL &AC0001|
OSBYTE  |&FFF4|&020A | &FFF5 |&FFF5 |EMT &02|INT &4B 0000:012C|SVC &06|SWI &06 "OS_Byte"      &06|ECALL &AC0002|
OSWORD  |&FFF1|&020C | &FFF2 |&FFF2 |EMT &03|INT &4A 0000:0128|SVC &07|SWI &07 "OS_Word"      &07|ECALL &AC0003|
        |     |      |       |      |       |                 |       |                          |             |
Character I/O |      |       |      |       |                 |       |                          |             |
OSWRCH  |&FFEE|&020E | &FFEF |&FFEF |EMT &04|INT &49 0000:0124|SVC &01|SWI &00 "OS_WriteC"    &03|ECALL &AC0004|
OSWRCR  |&FFEC|      |       |      |       |                 |       |                          |             |
OSNEWL  |&FFE7|      |       |      |EMT &05|INT &48 0000:0120|SVC &04|SWI &03 "OS_NewLine"      |ECALL &AC0005|
OSASCI  |&FFE3|      |       |      |       |INT &47 0000:011C|SVC &03|                          |             |
OSRDCH  |&FFE0|&0210 | &FFE1 |&FFE1 |EMT &06|INT &46 0000:0118|SVC &05|SWI &04 "OS_ReadC"     &04|ECALL &AC0006|
        |     |      |       |      |       |                 |       |                          |             |
Filing System Calls  |       |      |       |                 |       |                          |             |
OSFILE  |&FFDD|&0212 | &FFDE |&FFDE |EMT &07|INT &45 0000:0114|SVC &0A|SWI &08 "OS_File"      &08|ECALL &AC0007|
OSARGS  |&FFDA|&0214 | &FFDB |&FFDB |EMT &08|INT &44 0000:0110|SVC &0C|SWI &09 "OS_Args"      &09|ECALL &AC0008|
OSBGET  |&FFD7|&0216 | &FFD8 |&FFD8 |EMT &09|INT &43 0000:010C|SVC &0D|SWI &0A "OS_BGet"      &0A|ECALL &AC0009|
OSBPUT  |&FFD4|&0218 | &FFD5 |&FFD5 |EMT &0A|INT &42 0000:0108|SVC &0E|SWI &0B "OS_BPut"      &0B|ECALL &AC000A|
OSGBPB  |&FFD1|&021A | &FFD2 |&FFD2 |EMT &0B|INT &41 0000:0104|SVC &0F|SWI &0C "OS_GBPB"      &0C|ECALL &AC000B|
OSFIND  |&FFCE|&021C | &FFCF |&FFCF |EMT &0C|INT &40 0000:0100|SVC &0B|SWI &0D "OS_Find"      &0D|ECALL &AC000C|
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 |       |      |       |                 |       |                          |             |

Jgharston 16:54, 6 November 2009 (UTC)