If you find any errors below, then please email me with details of what is wrong and what I can do to fix it.
The first set of operations can be applied to a screen/console channel or to a file channel.
| D0 Key | QDOS Mnemonic | SMS Mnemonic | Description |
|---|---|---|---|
| $00 | IO_PEND | IOB_TEST | Test for pending input |
| $01 | IO_FBYTE | IOB_FBYT | Fetch a byte |
| $02 | IO_FLINE | IOB_FLIN | Fetch a line of bytes |
| $03 | IO_FSTRG | IOB_FMUL | Fetch a string |
| $04 | IO_EDLIN | IOB_ELIN | Edit a line |
| $05 | IO_SBYTE | IOB_SBYT | Send one byte |
| $06 | Not implemented | ||
| $07 | IO_SSTRG | IOB_SMUL | Send a string of bytes |
| $08 | Not implemented | ||
The next set of operations apply only to screen and console channels.
| D0 Key | QDOS Mnemonic | SMS Mnemonic | Description |
|---|---|---|---|
| $09 | SD_EXTOP | IOW_XTOP | Calls an external screen operation |
| $0A | SD_PXENQ | IOW_PIXQ | Get window size/cursor position (pixels) |
| $0B | SD_CHENQ | IOW_CHRQ | Get window size/cursor position (Characters) |
| $0C | SD_BORDR | IOW_DEFB | Sets the border on a window |
| $0D | SD_WDEF | IOW_DEFW | Re-defines a window |
| $0E | SD_CURE | IOW_ECUR | Enable a cursor |
| $0F | SD_CURS | IOW_DCUR | Disable a cursor |
| $10 | SD_POS | IOW_SCUR | Set cursor position |
| $11 | SD_TAB | IOW_SCOL | Set horozontal cursor position |
| $12 | SD_NL | IOW_NEWL | Do a newline |
| $13 | SD_PCOL | IOW_PCOL | Cursor to previous column |
| $14 | SD_NCOL | IOW_NCOL | Cursor to next column |
| $15 | SD_PROW | IOW_PROW | Cursor to previous row |
| $16 | SD_NROW | IOW_NROW | Cursor to next row |
| $17 | SD_PIXP | IOW_SPIX | Set cursor position by pixel |
| $18 | SD_SCROL | IOW_SCRA | Scroll window |
| $19 | SD_SCRTP | IOW_SCRT | Scroll top of window |
| $1A | SD_SCRBT | IOW_SCRB | Scroll bottom of window |
| $1B | SD_PAN | IOW_PANA | Pan window |
| $1C | Not implemented | ||
| $1D | Not implemented | ||
| $1E | SD_PANLN | IOW_PANL | Pan cursor line |
| $1F | SD_PANRT | IOW_PANR | Pan right side of cursor line |
| $20 | SD_CLEAR | IOW_CLRA | Clears a window |
| $21 | SD_CLRTP | IOW_CLRT | Clear the top of a window |
| $22 | SD_CLRBT | IOW_CLRB | Clear the bottom of a window |
| $23 | SD_CLRLN | IOW_CLRL | Clears the whole of the cursor line |
| $24 | SD_CLRRT | IOW_CLRR | Clears the right side of the cursor line |
| $25 | SD_FOUNT | IOW_FONT | Set the fonts for a window |
| $26 | SD_RECOL | IOW_RCLR | Recolour a window |
| $27 | SD_SETPA | IOW_SPAP | Set paper colour |
| $28 | SD_SETST | IOW_SSTR | Set strip colour |
| $29 | SD_SETIN | IOW_SINK | Set ink colour |
| $2A | SD_SETFL | IOW_SFLA | Set flash mode |
| $2B | SD_SETUL | IOW_SULA | Set underline mode |
| $2C | SD_SETMD | IOW_SOVA | Set PRINT mode |
| $2D | SD_SETSZ | IOW_SSIZ | Set character size |
| $2E | SD_FILL | IOW_BLOK | Fill a block |
| $2F | SD_DONL | IOW_DONL | Do a pending new line |
| $30 | SD_POINT | IOG_DOT | Plot a point |
| $31 | SD_LINE | IOG_LINE | Draw a line |
| $32 | SD_ARC | IOG_ARC | Draw an arc of a circle |
| $33 | SD_ELIPS | IOG_ELIP | Draw an ellipse (or circle) |
| $34 | SD_SCALE | IOG_SCAL | Set the scale in a window |
| $35 | SD_FLOOD | IOG_FILL | Set fill mode |
| $36 | SD_GCUR | IOG_SGCR | Set cursor position using graphics co-ordinates |
Codes $37 to $3f are not implemented.
The next set of operations apply to file based channels.
| D0 Key | QDOS Mnemonic | SMS Mnemonic | Description |
|---|---|---|---|
| $40 | FS_CHECK | IOF_CHEK | Check pending operations on a file |
| $41 | FS_FLUSH | IOF_FLSH | Flush a file's buffers to the device |
| $42 | FS_POSAB | IOF_POSA | Set file position by absolute address |
| $43 | FS_POSRE | IOF_POSR | Set file position by relative address |
| $44 | Not implemented (Originally reserved for rename) | ||
| $45 | FS_MDINF | IOF_MINF | Get medium information |
| $46 | FS_HEADS | IOF_SHDR | Set a file header |
| $47 | FS_HEADR | IOF_RHDR | Read a file header |
| $48 | FS_LOAD | IOF_LOAD | Load a file |
| $49 | FS_SAVE | IOF_SAVE | Save a file |
| $4A | FS_RENAME | IOF_RNAM | Rename a file |
| $4B | FS_TRUNCATE | IOF_TRNC | Truncate a file at its current position |
The following are not found in the original QDOS and are SMS only, they all require the Level 2 Directory Drivers to be present.
| D0 Key | SMS Mnemonic | Description |
|---|---|---|
| $4C | IOF_DATE | Set or get a file's date(s) |
| $4D | IOF_MKDIR | Create a new directory |
| $4E | IOF_VERS | Set or get a file's version |
| $4F | IOF_XINF | Get extended information |