All EXOS calls return a status code which is zero to indicate success and negative to indicate that an error occured. Positive nonzero codes are warning codes and are not widely used by EXOS, indeed there is only one warning code produced by EXOS and it is included here.
In the documentation all error codes are referred to by there names which by convention begin with a full stop. The names are listed here along with the values and meanings. The strings inside double quotes are the error messages produced by by the EXOS explain error code function, where applicable. Those error codes which have no corresponding message are marked with an asterisk.
07Fh .SHARE *
0FFh .IFUNC
"Invalid EXOS function code"
0FEh .ILLFN
"EXOS function call not allowed"
0FDh .INAME
"Invalid EXOS string"
0FCh .STACK
"EXOS stack overflow"
0FBh .ICHAN
"Channel does not exist"
0FAh .NODEV
"Device does not exist"
0F9h .CHANX
"Channel exists"
0F8h .NOBUF
"No channel RAM allocated"
0F7h .NORAM
"Insufficient memory"
0F6h .NOVID
"Insufficient video memory"
0F5h .NOSEG *
0F4h .ISEG *
0F3h .IBOUND *
0F2h .IVAR
"Unknown EXOS variable number"
0F1h .IDESC
"Invalid device descriptor"
0F0h .NOSTR
"Unrecognised command string"
0EFh .ASCII
"Invalid file header"
0EEh .ITYPE
"Unknown module type"
0EDh .IREL
"Invalid relocatable module"
0ECh .NOMOD *
$$EOF
, or if it gets
a .EOF
error when trying to read the
first byte of a module header. Indicates that the file has finished
in a controlled manner.
0EBh .ITIME
"Invalid date or time value"
These errors are generated by device drivers but are not specific to any particular device. They can be returned by any device where it seems appropriate.
0EAh .ISPEC
"Invalid special function call"
0E9h .2NDCH
"Device in use"
0E8h .IUNIT
"Invalid unit number"
0E7h .NOFN
"Call not supported by this device"
0E6h .ESC
"Invalid escape sequence"
0E5h .STOP
"STOP key pressed"
0E4h .EOF
"End of file"
0E3h .PROT
"Protection violation"
The following errors are generally specific to a single device driver and are only returned by that one device. Full explanations of the error codes can be found in the individual device driver specifications.
0E2h .KFSPC
"Function key string too long"
0E1h .SENV
"Envelope too big"
0E0h .SENBF
"Envelope storage full"
0DFh .SQFUK
"Sound queue full"
0DEh .VSIZE
"Invalid video page size"
0DDh .VMODE
"Invalid video mode"
0DCh .VDISP
"Invalid display parameters"
0DBh not used
0DAh .VROW
"Invalid row number to scroll"
0D9h .VCURS
"Invalid cursor coordinates"
0D8h .VBEAM
"Invalid beam position"
0D7h .SEROP
"Cannot use both serial and network"
0D7h .SEROP
"Cannot use both serial and network"
0D6h .NOADR
"Network address not set"
0D5h .NETOP
"Network link exists"
0D9h .VCURS
"Invalid cursor coordinates"
0D4h .EVID
"Editor video channel error"
0D3h .EKEY
"Editor keyboard channel error"
0D2h .EDINV
"Editor load file error"
0D1h .EDBUF
"Editor load file too big"
0D0h .CCRC
"Cassette CRC error"