TRAP #3

QDOS I/O utilisation traps

The first set of operations can be applied to a screen/console channel or to a file channel.

D0 KeyQDOS MnemonicSMS MnemonicDescription
$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 KeyQDOS MnemonicSMS MnemonicDescription
$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 KeyQDOS MnemonicSMS MnemonicDescription
$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 KeySMS MnemonicDescription
$4CIOF_DATE Set or get a file's date(s)
$4DIOF_MKDIR Create a new directory
$4EIOF_VERS Set or get a file's version
$4FIOF_XINF Get extended information

Back to top
Back to QDOS Internals