Difference between revisions of "API"

From BeebWiki
Jump to: navigation, search
m (Tweeked formatting.)
 
(One intermediate revision by the same user not shown)
Line 37: Line 37:
 
===MOS API Entry Points on various platforms===
 
===MOS API Entry Points on various platforms===
 
<div class="mw-widebody"><pre>
 
<div class="mw-widebody"><pre>
        | std | 6502 |  Z80  | 6809 | PDP11 |     80x86         | 32016 |             ARM           |
+
        | std | 6502 |  Z80  | 6809 | PDP11 |     80x86       | 32016 |           ARM           |    RISC-V  |
        | entry | vector| vector| vector| entry | entry  vector   |         |     entry           vector |
+
        |entry|vector| vector|vector| entry | entry  vector |       |   entry         vector |    entry    |
        |       |      |       |      |       |                   |         |                           |
+
        |    |     |      |     |      |                 |       |                         |             |
IRQV    |      | &FFFE | &FFEE |      |       |                   |         |                           |
+
IRQV   |     |&FFFE | &FFEE |      |      |                 |       |                         |             |
RSTV    |      | &FFFC |      |      |       |                   |         |                           |
+
RSTV   |     |&FFFC |      |      |      |                 |       |                         |             |
NMIV    |      | &FFFA |      |      |       |                   |         |                           |
+
NMIV   |     |&FFFA |      |      |      |                 |       |                         |             |
        |       |      |       |      |       |                   |         |                           |
+
        |    |     |      |     |      |                 |       |                         |             |
USERV   |       | &0200 |      |      |       |                   |         |                           |
+
USERV   |     |&0200 |      |      |      |                 |       |                         |             |
ERROR   |       | BRK  |RST &38| SWI  | EMT 15 | INT &4F 0000:013C |         | SWI &2B "OS_GenerateError" |
+
ERROR   |     | BRK  |RST &38| SWI  |EMT &0F|INT &4F 0000:013C|       |SWI &2B "OS_GenerateError"|ECALL &AC000F|
BRKV    |      | &0202 | &FFFA | &FFFA |        |          0000:05F8 |         |                           |
+
BRKV   |     |&0202 | &FFFA |&FFFA |      |        0000:05F8|       |                         |            |
IRQ1V   |       | &0204 |      |      |       |                   |         |                           |
+
IRQ1V   |     |&0204 |      |      |      |                 |       |                         |             |
IRQ2V   |       | &0206 | &FFB1 | &FFB1 |       |                   |         |                           |
+
IRQ2V   |     |&0206 | &FFB1 |&FFB1 |       |                |       |                         |             |
FAULT   |       | &00FD | &FF82 | &FF82 |        |          0000:05F4 |         |                           |
+
FAULT   |     |&00FD | &FF82 |&FF82 |      |        0000:05F4|       |                         |            |
ESCFLG   |       | &00FF | &FF80 | &FF80 |        |          0000:05F0 |         |                           |
+
ESCFLG |     |&00FF | &FF80 |&FF80 |      |        0000:05F0|       |                          |             |
        |       |      |       |      |       |                   |         |                           |
+
        |    |     |      |     |      |                 |       |                         |             |
QUIT     |       |      | &FFBA | &FFBA | EMT |                   | SVC &11 | SWI &11 "OS_Exit"         |
+
OSQUIT  |     |     | &FFBA |&FFBA |EMT &00|                 |SVC &11|SWI &11 "OS_Exit"         |ECALL &AC0000|
        |       |      |       |      |       |                   |         |                           |
+
        |    |     |      |     |      |                 |       |                         |             |
MOS Calls       |      |       |      |       |                   |         |                           |
+
MOS Calls     |      |      |     |      |                 |       |                         |             |
OSCLI   | &FFF7 | &0208 | &FFF8 | &FFF8 | EMT | INT &4C 0000:0130 | SVC &08 | SWI &05 "OS_CLI"      &05 |
+
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 | INT &4B 0000:012C | SVC &06 | SWI &06 "OS_Byte"      &06 |
+
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 | INT &4A 0000:0128 | SVC &07 | SWI &07 "OS_Word"      &07 |
+
OSWORD |&FFF1|&020C | &FFF2 |&FFF2 |EMT &03|INT &4A 0000:0128|SVC &07|SWI &07 "OS_Word"      &07|ECALL &AC0003|
        |       |      |       |      |       |                   |         |                           |
+
        |    |     |      |     |      |                 |       |                         |             |
Character I/O   |      |       |      |       |                   |         |                           |
+
Character I/O |      |      |     |      |                 |       |                         |             |
OSWRCH   | &FFEE | &020E | &FFEF | &FFEF | EMT | INT &49 0000:0124 | SVC &01 | SWI &00 "OS_WriteC"    &03 |
+
OSWRCH |&FFEE|&020E | &FFEF |&FFEF |EMT &04|INT &49 0000:0124|SVC &01|SWI &00 "OS_WriteC"    &03|ECALL &AC0004|
OSWRCR   | &FFEC |      |       |      |       |                   |         |                           |
+
OSWRCR |&FFEC|      |      |     |      |                 |       |                         |             |
OSNEWL   | &FFE7 |       |      |       | EMT | INT &48 0000:0120 | SVC &04 | SWI &03 "OS_NewLine"       |
+
OSNEWL |&FFE7|     |      |     |EMT &05|INT &48 0000:0120|SVC &04|SWI &03 "OS_NewLine"     |ECALL &AC0005|
OSASCI   | &FFE3 |      |       |      |        | INT &47 0000:011C | SVC &03 |                           |
+
OSASCI |&FFE3|      |      |     |      |INT &47 0000:011C|SVC &03|                         |            |
OSRDCH   | &FFE0 | &0210 | &FFE1 | &FFE1 | EMT | INT &46 0000:0118 | SVC &05 | SWI &04 "OS_ReadC"    &04 |
+
OSRDCH |&FFE0|&0210 | &FFE1 |&FFE1 |EMT &06|INT &46 0000:0118|SVC &05|SWI &04 "OS_ReadC"    &04|ECALL &AC0006|
        |       |      |       |      |       |                   |         |                           |
+
        |    |     |      |     |      |                 |       |                         |             |
Filing System Calls     |      |      |       |                   |         |                           |
+
Filing System Calls |      |      |      |                 |       |                         |             |
OSFILE   | &FFDD | &0212 | &FFDE | &FFDE | EMT | INT &45 0000:0114 | SVC &0A | SWI &08 "OS_File"      &08 |
+
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 | INT &44 0000:0110 | SVC &0C | SWI &09 "OS_Args"      &09 |
+
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 | INT &43 0000:010C | SVC &0D | SWI &0A "OS_BGet"      &0A |
+
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 10 | INT &42 0000:0108 | SVC &0E | SWI &0B "OS_BPut"      &0B |
+
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 11 | INT &41 0000:0104 | SVC &0F | SWI &0C "OS_GBPB"      &0C |
+
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 12 | INT &40 0000:0100 | SVC &0B | SWI &0D "OS_Find"      &0D |
+
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 |
+
FSCV   |     |&021E |      |      |      |                 |       |SWI &0F "OS_FSControl" &29|            |
        |       |      |       |      |       |                   |         |                           |
+
        |    |     |      |     |      |                 |       |                         |             |
NVWRCH   | &FFCB |      |       |      |       |                   |         |                           |
+
NVWRCH |&FFCB|      |      |     |      |                 |       |                         |             |
NVRDCH   | &FFC8 |       |      |      |       |                   |         |                           |
+
NVRDCH |&FFC8|     |      |      |      |                 |       |                         |             |
GSREAD   | &FFC5 |      |       |      |       |                   |         |                           |
+
GSREAD |&FFC5|      |      |     |      |                 |       |                         |             |
GSINIT   | &FFC2 |      |       |      |       |                   |         |                           |
+
GSINIT |&FFC2|      |      |     |      |                 |       |                         |             |
OSEVENT | &FFBF | &0220 | &FFFC | &FFFC |       |                   |         |                           |
+
OSEVENT |&FFBF|&0220 | &FFFC |&FFFC |       |                |       |                         |             |
VDUCHR   | &FFBC |      |       |      |       |                   |         |                           |
+
VDUCHR |&FFBC|      |      |     |      |                 |       |                         |             |
OSRDSC   | &FFB9 |      |       |      |       |                   |         |                           |
+
OSRDSC |&FFB9|      |      |     |      |                 |       |                         |             |
DEFVEC   | &FFB6 |      |       |      |       |                   |         |                           |
+
DEFVEC |&FFB6|      |      |     |      |                 |       |                         |             |
OSWRSC   | &FFB3 |      |      |      |       |                   |        |                           |
+
OSWRSC |&FFB3|      |      |      |      |                |      |                         |             |
        |      |       |      |      |       |                   |        |                            |
+
         |     |     |      |     |      |                |      |                         |             |
UPTV    |      | &0222 |      |      |       |                   |         |                           |
+
UPTV   |     |&0222 |      |      |      |                 |       |                         |             |
NETV    |      | &0224 |      |      |       |                   |         |                           |
+
NETV   |     |&0224 |      |      |      |                 |       |                         |             |
VDUV    |      | &0226 |      |      |       |                   |         |                           |
+
VDUV   |     |&0226 |      |      |      |                 |       |                         |             |
KEYV    |      | &0228 |      |      |       |                   |         |                           |
+
KEYV   |     |&0228 |      |      |      |                 |       |                         |             |
INSV    |      | &022A |      |      |       |                   |         |                           |
+
INSV   |     |&022A |      |      |      |                 |       |                         |             |
REMV    |      | &022C |      |      |       |                   |         |                           |
+
REMV   |     |&022C |      |      |      |                 |       |                         |             |
CNPV    |      | &022E |      |      |       |                   |         |                           |
+
CNPV   |     |&022E |      |      |      |                 |       |                         |             |
USR1V   |       | &0230 |      |      |       |                   |         |                           |
+
USR1V   |     |&0230 |      |      |      |                 |       |                         |             |
USR2V   |       | &0232 |      |      |       |                   |         |                           |
+
USR2V   |     |&0232 |      |      |      |                 |       |                         |             |
USR3V   |       | &0234 |      |      |       |                   |         |                           |
+
USR3V   |     |&0234 |      |      |      |                 |       |                         |             |
 
</pre></div>
 
</pre></div>
  

Latest revision as of 17:50, 10 September 2023

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)