# Appendix A. OS-9 Error Codes

The error codes are shown in both hexadecimal (first column) and decimal (second column). Error codes other than those listed are generated by programming languages or user programs.

HEX | DEC |
--- | --- | ---
$C8 | 200 | PATH TABLE FULL - The file cannot be opened because the system path table is currently full.
$C9 | 201 | ILLEGAL PATH NUMBER - Number too large or for non-existant path.
$CA | 202 | INTERRUPT POLLING TABLE FULL
$CB | 203 | ILLEGAL MODE - attempt to perform I/O function of which the device or file is incapable.
$CC | 204 | DEVICE TABLE FULL - Can't add another device
$CD | 205 | ILLEGAL MODULE HEADER - module not loaded because its sync code, header parity, or CRC is incorrect.
$CE | 206 | MODULE DIRECTORY FULL - Can't add another module
$CF | 207 | MEMORY FULL - Level One: not enough contiquous RAM free. Level Two: process address space full
$D0 | 208 | ILLEGAL SERVICE REQUEST - System call had an illegal code number.
$D1 | 209 | MODULE BUSY - non-sharable module is in use by another process.
$D2 | 210 | BOUNDARY ERROR - Memory allocation or deallocation request not on a page boundary.
$D3 | 211 | END OF FILE - End of file encountered on read.
$D4 | 212 | RETURNING NON-ALLOCATED MEMORY - attempted to deallocate memory not previously assigned.
$D5 | 213 | NON-EXISTING SEGMENT - device has damaged file structure.
$D6 | 214 | NO PERMISSION - file attributes do not permit access requested.
$D7 | 215 | BAD PATH NAME - syntax error in pathlist (illegal character, etc.).
$D8 | 216 | PATH NAME NOT FOUND - can't find pathlist specified.
$D9 | 217 | SEGMENT LIST FULL - file is too fragmented to be expanded further.
$DA | 218 | FILE ALREADY EXISTS - file name already appears in current directory.
$DB | 219 | ILLEGAL BLOCK ADDRESS - device's file structure has been damaged.
$DC | 220 | ILLEGAL BLOCK SIZE - device's file structure has been damaged.
$DD | 221 | MODULE NOT FOUND - request for link to module not found in directory.
$DE | 222 | SECTOR OUT OF RANGE - device file structure damaged or incorrectly formatted.
$DF | 223 | SUICIDE ATTEMPT - request to return memory where your stack is located.
$E0 | 224 | ILLEGAL PROCESS NUMBER - no such process exists.
$E2 | 226 | NO CHILDREN - can't wait because process has no children.
$E3 | 227 | ILLEGAL SWI CODE - must be 1 to 3.
$E4 | 228 | PROCESS ABORTED - process aborted by signal code 2.
$E5 | 229 | PROCESS TABLE FULL - can't fork now.
$E6 | 230 | ILLEGAL PARAMETER AREA - high and low bounds passed in fork call are incorrect.
$E7 | 231 | KNOWN MODULE - for internal use only.
$E8 | 232 | INCORRECT MODULE CRC - module has bad CRC value.
$E9 | 233 | SIGNAL ERROR - receiving process has previous unprocessed signal pending.
$EA | 234 | NON-EXISTENT MODULE - unable to locate module.
$EB | 235 | BAD NAME - illegal name syntax
$EC | 236 | BAD HEADER - module header parity incorrect
$ED | 237 | RAM FULL - no free system RAM available at this time
$EE | 238 | UNKNOWN PROCESS ID - incorrect process ID number
$EF | 239 | NO TASK NUMBER AVAILABLE - all task numbers in use

## Device Driver Errors

The following error codes are generated by I/O device drivers, and are somewhat hardware dependent. Consult manufacturer's hardware manual for more details.

$F0 | 240 | UNIT ERROR - device unit does not exist.
$F1 | 241 | SECTOR ERROR - sector number is out of range.
$F2 | 242 | WRITE PROTECT - device is write protected.
$F3 | 243 | CRC ERROR - CRC error on read or write verify.
$F4 | 244 | READ ERROR - Data transfer error during disk read operation, or SCF (terminal) input buffer overrun.
$F5 | 245 | WRITE ERROR - hardware error during disk write operation.
$F6 | 246 | NOT READY - device has “not ready” status.
$F7 | 247 | SEEK ERROR - physical seek to non-existant sector.
$F8 | 248 | MEDIA FULL - insufficient free space on media.
$F9 | 249 | WRONG TYPE - attempt to read incompatible media (i.e. attempt to read double-side disk on single-side drive)
$FA | 250 | DEVICE BUSY - non-sharable device is in use
$FB | 251 | DISK ID CHANGE - Media was changed with files open
$FC | 252 | RECORD IS LOCKED-OUT - Another process is accessing the requested record.
$FD | 253 | NON-SHARABLE FILE BUSY - Another process is accessing the requested file.