        SUBT    Definitions of error strings and numbers => &.Hdr.NewErrors

OldOpt  SETA    {OPT}
        OPT     OptNoList+OptNoP1List

; *************** PLEASE KEEP ERRORS IN NUMERIC ORDER. THE MGT ****************

; ***********************************
; ***    C h a n g e   L i s t    ***
; ***********************************

; Date       Name   Description
; ----       ----   -----------
; 29-Sep-87  SKS    New FileSwitch errors. Removed 30-Sep-87
; 01-Oct-87  SKS    New FileSwitch kill error
; 06-Oct-87  BC     ROMFS error(s)
; 08-Oct-87  BC     ROMFS error(s)
; 09-Oct-87  NRaine Added Sprite_CantDoSystem error
; 09-Oct-87  NRaine Added Sprite_BadTranslation error
; 09-Oct-87  NRaine Added Sprite_BadGreyScale error
; 09-Oct-87  NRaine Deleted Font_BadScale error
; 12-Oct-87  BC     ROMFS error(s)
; 14-Oct-87  APT    Filing system special fields invalid on prepends to Oscli!
; 14-Oct-87  NRaine Added PrintNotFound error
; 19-Oct-87  PMF    Intelligent Interfaces error allocated
; 19-Oct-87  BC     Errors for Ports and Domains (Econet)
; 27-Oct-87  APT    "No Such SWI" made non-dynamic, 2 RdArgs errors added
; 29-Oct-87  NRaine Added Sprite_BadSwitchParam error
; 29-Oct-87  APT    BadRMHeaderField error
; 30-Oct-87  NRaine Added PrintBadDrawPage error
; 02-Nov-87  BC     FileToBig added to ROMFS
; 02-Nov-87  NRaine Added PrintTimeOut error
; 06-Nov-87  NRaine Added Sprite_BadMerge error
; 10-Nov-87  SKS    Added Logo errors
; 12-Nov-87  NRaine Changed Sprite_BadMerge error to Sprite_BadAppend
; 13-Nov-87  NRaine Added CantCancelQuit error (for quit handler module)
; 16-Nov-87  APT    IRQ Device errors
; 24-Nov-87  APT    Heap Locked error
; 25-Nov-87  NRaine Added WimpBadSyntax (validation strings) error
; 26-Nov-87  NRaine Added WimpNoTemplate error
; 26-Nov-87  NRaine Added WimpNoWimpPresent error
; 10-Dec-87  NRaine Added FontsInUse error
; 10-Dec-87  NRaine Added WimpInUse error
; 10-Dec-87  BC     An error chunk allocated to 'Resource'
; 15-Dec-87  BC     ROMFS error 'OffsetTooBig'
; 16-Dec-87  SKS    An error chunk for MyoLink
; 22-Dec-87  NRaine Added BadPathElement and NoCurrentPoint errors
; 12-Jan-88  APT    Added StackFull error
; 25-Jan-88  NRaine Added WimpBadPalFile error
; 25-Jan-88  SKS    Added InvalidErrorBlock error
; 26-Jan-88  SKS    Changed FileSwitch..Transient error
; 27-Jan-88  NRaine Added BadStrokeWidth error
; 28-Jan-88  NRaine Added Reserved error
; 29-Jan-88  SKS    Added ErrorBlock_SoundSampler,FFT
;  2-Feb-88  NRaine Removed Sprite_BadSwitchParam
;  2-Feb-88  NRaine Added Sprite_BadPointerShape
;  3-Feb-88  NRaine Added WimpBadVersion (R0 invalid on entry to Wimp_Init)
; 03-Feb-88  SKS    Added ErrorBlock_Arpeggio
; 08-Feb-88  SKS    Added ErrorBlock_FontAid
; 08-Feb-88  NRaine Added WimpBadMessageSize and WimpBadReasonCode
; 08-Feb-88  NRaine Added WimpBadTaskHandle
; 09-Feb-88  NRaine Added WimpCantKill
; 09-Feb-88  SKS    Added ErrorBlock_AlliedInteractive
; 17-Feb-88  TMD    Added Sprite_CantInTeletext
; 17-Feb-88  APT    Added chunk for shared library
; 19-Feb-88  NRaine Added WimpCantTask
; 24-Feb-88  BC+SKS Added DirNotEmpty
; 01-Mar-88  NRaine Changed WimpNoWimpPresent to WimpNotPresent
; 02-Mar-88  NRaine Changed WimpBadOp error message
; 02-Mar-88  NRaine Added WimpOwnerWindow error message
; 02-Mar-88  BC     Added Remoted, twiddled around with exceptions / abortions
; 03-Mar-88  TMD    Added Sprite_InvalidSaveArea
; 03-Mar-88  TMD    Added Sprite_SpriteIsCurrentDest
; 07-Mar-88  NRaine Added WimpBadMode error
; 08-Mar-88  SKS    Added CConcepts error blocks
; 18-Mar-88  SKS    Added Shell errors
; 30-Mar-88  SKS    Added FSFileTooBig error, amended OSCLI special error
; 08-Apr-88  SKS    Added FileSwitchKilled error
; 11-Apr-88  SKS    Rem'd FileSwitchKilled; added CantRMFasterFileSwitch error
; 11-Apr-88  APT    More Intelligent Interfaces error ids
; 11-Apr-88  SKS    Added AMSFinesse,Euclid errors
; 13-Apr-88  SKS    Added UnknownSerialOp and some ASSERTs
; 21-Apr-88  SKS    Added Sibelius errors
; 27-Apr-88  BC     Added Syntax & BadCommand errors for FSCLI
; 04-May-88  SKS    Added FAXPack errors
; 10-May-88  DJS    Added Draw errors, removed old Draw errors
; 11-May-88  DJS    Made wording of PathNotFlat error more generally applicable
; 12-May-88  DJS    More Draw errors added
; 18-May-88  ???    Removed pre-1.20 changed. Added CED error chunk.
; 18-May-88  NRaine Added WimpBadTransfer error
; 20-May-88  TMD    Corrected spelling of 'No room to insert row or coloum',
;                   changed Sprite_NoRoomToLoad to Sprite_NotEnoughRoom
; 23-May-88  NRaine Added WimpBadSysInfo error
; 27-May-88  SKS    Added inconsistent handle set error
; 27-May-88  DJS    Changed Draw errors for unimplemented facilities
; 30-May-88  DJS    Added Draw error for overflow during transformation
; 01-Jun-88  DJS    Added DrawNeedsGraphicsMode error
; 04-Jun-88  SKS    Added IsAFile error
; 09-Jun-88  NRaine Added FontCantKill error
; 13-Jun-88  APT    Added CallbackPending error
; 21-Jun-88  NRaine Added WimpBadPtrInR1 error
; 21-Jun-88  NRaine Change WimpBadSysInfo error (bad parameter passed in R0)
; 29-Jun-88  APT    Removed CallbackPending error
; 30-Jun-88  APT    Module too old, better RM not found
; 01-Jul-88  DJS    Shortened some Draw error messages
; 19-Jul-88  SKS    Added FileSwitchDataLost error
; 20-Jul-88  SKS    Amended FileSwitchDataLost error
; 26-Jul-88  SKS    Added AutoCue SWI chunk
; 01-Aug-88  BC     Aded TypesDontMatch for NetFS
; 01-Aug-88  SKS    Added WorldMap error chunk
; 05-Aug-88  NDR    Added FontBadSegment (for outline fonts)
; 12-Aug-88  SKS    Added BadFileType error
; 18-Aug-88  APT    RAMFsUnchangeable
; 19-Aug-88  SKS    Added 6502Emulator error chunk
; 30-Aug-88  SKS    Added error chunk for Realtime Graphics Language thing
; 09-Sep-88  SKS    Changed podule error strings
; 15-Sep-88  SKS    Added DigiTape error chunk

; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; A quick note: Bit  31    -> 'desperate' error, usually an exception
;               Bit  30    defined to be clear
;               Bits 29-24 sub-error indication, usually 0

; Old Beebon errors

 ^ 0
 AddError Escape,           "Escape", 17
 AddError BadMODE,          "Bad MODE", 25
 AddError IsADirectory,     "Object is a directory", 168
 AddError TypesDontMatch,   "Types don't match", 175
 AddError BadRename,        "Bad rename", 176
 AddError BadCopy,          "Bad copy", 177
 AddError OutsideFile,      "Outside file", 183
 AddError AccessViolation,  "Access violation", 189
 AddError TooManyOpenFiles, "Too many open files", 192
 AddError NotOpenForUpdate, "Not open for update", 193
 AddError ObjectLocked,     "Locked", 195
 AddError AlreadyExists,    "Already exists", 196
 AddError BadFileName,      "Bad file name",  204
 AddError FileNotFound,     "File not found", 214
 AddError Syntax,           "Syntax", 220
 AddError BadNoParms,       "Invalid number of parameters", ErrorNumber_Syntax
 AddError TooManyParms,     "Too many parameters",          ErrorNumber_Syntax
 AddError Channel,          "Channel", 222
 AddError EndOfFile,        "End of file", 223
 AddError BadFilingSystemName, "Bad filing system name", 248
 AddError UnknownFilingSystem, "Unknown filing system",  ErrorNumber_BadFilingSystemName
 AddError BadKey,       "Bad key", 251
 AddError BadAddress,   "Bad address", 252
 AddError BadString,    "Bad string", 253
 AddError BadAliasString, "Aliased command is a bad string", ErrorNumber_BadString
 AddError BadParmString,  "Bad character in parameter expansion", ErrorNumber_BadString
 AddError WildCards,  "Wild cards",  253 ; Unfortunate clash
 AddError BadCommand, "Bad command", 254


; Relocatable Module errors

 ASSERT @ <= &100
 ^ &100
 AddError NotMod, "This is not a relocatable module"
 AddError MHNoRoom, "No room in RMA"
 AddError RMNotFound, "Module '"":CC::CHR:0:CC:""' not found"
 AddError CantKill, "Module is currently active"
 AddError WimpCantKill, "Wimp is currently active", ErrorNumber_CantKill
 AddError FontCantKill, "Font Manager is in use", ErrorNumber_CantKill
 AddError BadModuleReason, ""
 AddError RMNotFoundInROM, "Module is not in ROM"
 AddError ModulePostfix, "'%' in module title"
 AddError NoMoreModules, "No more modules"
 AddError NoMoreIncarnations, "No more incarnations of that module"
 AddError PostfixNeeded, "Postfix not specified"
 AddError IncarnationExists, "Incarnation already exists"
 AddError IncarnationNotFound, "Incarnation not found"
 AddError ChunkNotRM, "Podule chunk is not a relocatable module"
 AddError BadRMHeaderField, "Illegal header field in module"
 AddError ModuleTooOld, "Module '"":CC::CHR:0:CC:""' too old"

; Variables errors

 ASSERT @ <= &120
 ^ &120
 AddError BadMacVal, "Bad macro value"
 AddError BadVarNam, "Bad variable name"
 AddError BadVarType, "Bad variable type"
 AddError VarNoRoom, "No room for variable"
 AddError VarCantFind, "Variable not found"
 AddError VarTooLong, "Variable value too long"


 ASSERT @ <= &140
 ^ &140
 AddError RedirectFail, "Redirection fails"
 AddError StackFull,    "No room on supervisor stack"


; Expression errors

 ASSERT @ <= &160
 ^ &160
 AddError BadHex,  "Bad hex"
 AddError BadExpr, "Bad expression"
 AddError BadBra,  "Mismatched brackets"
 AddError StkOFlo, "Expression stack overflow"
 AddError MissOpn, "Missing operand"
 AddError MissOpr, "Missing operator"
 AddError BadInt,  "String is not convertible to integer"
 AddError StrOFlo, "String too long"
 AddError NaffItm, "Unknown operand"
 AddError DivZero, "Division by zero"
 AddError BadBase, "Bad base"
 AddError BadNumb, "Bad number"
 AddError NumbTooBig, "Number too big"


; Heap errors

 ASSERT @ <= &180
 ^ &180
 AddError HeapBadReason,      "Bad reason code"
 AddError HeapFail_Init,      "Can't initialise heap"
 AddError HeapFail_BadDesc,   "Bad heap descriptor"
 AddError HeapFail_BadLink,   "Heap corrupted"
 AddError HeapFail_Alloc,     "Heap Full"
 AddError HeapFail_NotABlock, "Not a heap block"
 AddError HeapFail_BadExtend, "No RAM for extending heap"
 AddError HeapFail_ExcessiveShrink, "Can't shrink heap any further"
 AddError HeapFail_HeapLocked,"Heap Manager busy" 


; Vector claim/release errors

 ASSERT @ <= &1A0
 ^ &1A0
 AddError BadClaimNum, "Bad vector number"
 AddError NaffRelease, "Bad vector release"
 AddError NaffDevNo,   "Bad device number"
 AddError BadDevVecRel,"Bad device release" 


; Environment alteration SWI errors

 ASSERT @ <= &1B0
 ^ &1B0
 AddError BadEnvNumber, ""    ; wally environment parameter number
 AddError CantCancelQuit, "Can't delete exit handler"

; Change dynamic area errors

 ASSERT @ <= &1C0
 ^ &1C0
 AddError ChDynamCAO, "Can't, application running"
 AddError ChDynamNotAllMoved, "Unable to move memory"
 AddError AplWSpaceInUse, "Memory in use"
 AddError RAMFsUnchangeable, "RAM filing system not empty"


; Oscli and other errors

 ASSERT @ <= &1E0
 ^ &1E0
 AddError OscliLongLine, "Too long" ; line too long for Oscli
 AddError OscliTooHard,  "Expansion too complex"   ; oscli ran out of buffers
 AddError RCExc,         "Return code limit exceeded"
 AddError RCNegative,    "Negative return code", ErrorNumber_RCExc
 AddError SysHeapFull,   "System heap full"
 AddError BuffOverflow,  "Buffer overflow"
 AddError BadTime,       ""   ; given by wally times in ticker SWIs
 AddError NoSuchSWI,     "SWI not known"
 AddError NoSuchSWI2,    "SWI name not known",  ErrorNumber_NoSuchSWI
 AddError UnImplemented, "This function or procedure unimplemented"
 AddError OutOfRange,    "SWI value out of range for this Module"
 AddError NoOscliSpecials, "Special field not allowed in filing system prefix to OS_CLI"
 AddError BadParameters, "Bad parameters"
 AddError ArgRepeated,   "Argument repeated"


; Font errors

 ASSERT @ <= &200
 ^ &200
 AddError FontNoRoom,        "Not enough room for Font cache"
 AddError FontCacheFull,     "Font cache full"
 AddError FontNoCache,       "No font cache present"
 AddError FontTooLong,       "String too long"
 AddError Font64K,           "Font definition too large"
 AddError FontPalTooBig,     "Pseudo-palette colour too big"
 AddError FontBadTranBits,   "Invalid number of output bits"
 AddError FontNotEnoughBits, "Not enough bits per pixel in this mode"
 AddError FontNoFont,        "Undefined font"
 AddError FontNoPixels,      "No pixel data for this font"
 AddError FontBadFontNumber, "Illegal font number"
 AddError FontNotFound,      "Font not found"
 AddError FontBadFontFile,   "Illegal font file"
 AddError FontNoHandles,     "No more font handles"
 AddError FontBadCounter,    "Fonts must be read sequentially"
 AddError FontBadCtrlChar,   "Illegal control character in font string"
 AddError FontsInUse,        "Font manager in use"
 AddError FontBadSegment,    "Illegal line segment in outline font"


; Wimp errors

 ASSERT @ <= &280
 ^ &280
 AddError WimpNoClaim,       "Wimp unable to claim work area"
 AddError WimpBadOp,         "Invalid Wimp operation in this context"
 AddError WimpRectFull,      "Rectangle area full"
 AddError WimpTooMany,       "Too many windows"
 AddError WimpTooBig,        "Window definition won't fit"
 AddError WimpDivBy0,        "Division by zero"
 AddError WimpGetRect,       "Get_Rectangle not called correctly"
 AddError WimpFocus,         "Input focus window not found"
 AddError WimpBadHandle,     "Illegal window handle"
 AddError WimpTooMenus,      "Too many menus"
 AddError WimpBadExtent,     "Bad work area extent"
 AddError WimpBadPointer,    "Syntax: *POINTER <0|1|2>"
 AddError WimpNoTemplateFile,"Template file not found"
 AddError WimpBadTemplate,   "Template entry invalid"
 AddError WimpBadFonts,      "Unable to bind font handle"
 AddError WimpBadSyntax,     "Syntax error in validation string"
 AddError WimpNoTasks,       "Too many tasks"
 AddError WimpNoTemplate,    "Template entry not found"
 AddError WimpNotPresent,    "Window manager not present / too old"
 AddError WimpInUse,         "Window manager in use"
 AddError WimpBadPalFile,    "Error in palette file"
 AddError WimpBadVersion,    "Bad version number passed to Wimp_Initialise"
 AddError WimpBadMessageSize,"Message block is too big / not a multiple of 4"
 AddError WimpBadReasonCode, "Illegal reason code given to SendMessage"
 AddError WimpBadTaskHandle, "Illegal task handle"
 AddError WimpCantTask,      "Can't start task from here"
 AddError WimpBadSubMenu,    "Submenus require a parent menu tree"
 AddError WimpOwnerWindow,   "Access to window denied"
 AddError WimpBadMode,       "Bad Wimp mode"
 AddError WimpBadTransfer,   "Wimp transfer out of range"
 AddError WimpBadSysInfo,    "Bad parameter passed to Wimp in R0"
 AddError WimpBadPtrInR1,    "Bad pointer passed to Wimp in R1"


; Convert date and time errors

 ASSERT @ <= &2C0
 ^ &2C0
 AddError CDATStackOverflow,    "Stack overflow"
 AddError CDATBufferOverflow,   "Buffer overflow"
 AddError CDATBadField,         "Unknown '%' field"


; Econet errors

 ASSERT @ <= &300
 ^ &300
 AddError TxReady,          "Tx ready"
 AddError Transmitting,     "Transmitting"
 AddError RxReady,          "Receive block open"
 AddError Receiving,        "Receiving"
 AddError Received,         "Received"
 AddError Transmitted,      "Transmitted OK"
 AddError BadStation,       "Bad station number"
 AddError BadNetwork,       "Bad network number"
 AddError UnableToDefault,  "Full network address required" ; For higher levels
 AddError BadPort,          "Bad port number"
 AddError BadControl,       "Bad control byte value"
 AddError BadBuffer,        "Bad buffer address"
 AddError BadSize,          "Bad buffer size"
 AddError BadMask,          "Bad mask"
 AddError BadCount,         "Bad count"
 AddError BadDelay,         "Bad delay"
 AddError BadStatus,        "Bad status"
 AddError NoHardware,       "No Econet hardware"
 AddError NoEconet,         "No 'Econet' installed" ; For higher levels

 AddError NoMoreDomains,      "No more domains"
 AddError BadDomain,          "Bad domain number"
 AddError UnRegisteredDomain, "Unknown domain"
 AddError PortNotAllocated,   "Port not already allocated"
 AddError PortAllocated,      "Port not unallocated"
 AddError NoMorePorts,        "All ports allocated"

; Some bodges
 AddError NetError1,        "Net error 1", ErrorNumber_NetError
 AddError NetError2,        "Net error 2", ErrorNumber_NetError
 AddError NetError3,        "Net error 3", ErrorNumber_NetError

 ASSERT @ <= &340
 ^ &340 ; Loaded Econet transients
 AddError SetStationSyntax, "Syntax: *SetStation <new station number>", ErrorNumber_Syntax
 AddError SetStationFails,  "Fails to update configuration memory"
 AddError GetRegsSyntax,    "Syntax: *GetRegs <station number>", ErrorNumber_Syntax
; Errors with the bottom byte forced for compatability
 AddError NotPresent,       "Not present", &38A
 AddError NotPresent1,      "Station ", ErrorNumber_NotPresent
 AddError NotPresent2,      " not present", ErrorNumber_NotPresent
 AddError LineJammed,       "Line jammed", &3A0
 AddError NetError,         "Net error", &3A1
 AddError NotListening,     "Not listening", &3A2
 AddError NotListening1,    "Station ", ErrorNumber_NotListening
 AddError NotListening2,    " not listening", ErrorNumber_NotListening
 AddError NoClock,          "No clock", &3A3
 AddError NoReply,          "No reply", &3A5
 AddError NoReply1,         "No reply from station ", ErrorNumber_NoReply
 AddError NoReply2,         "", ErrorNumber_NoReply
 AddError BadEconetHandle,  "Bad handle", &3DE


; FileSwitch errors

 ASSERT @ <= &400
 ^ &400
 AddError FileSwitchNoClaim,    "Unable to claim FileSwitch workspace"
 AddError BadFSControlReason,   "Bad FSControl call"
 AddError BadOSFileReason,      "Bad OSFile call"
 AddError BadOSArgsReason,      "Bad OSArgs call"
 AddError BadOSGBPBReason,      "Bad OSGBPB call"
 AddError BadModeForOSFind,     "Bad mode for OSFind"
 AddError NoRoomForTransient,   "No room to run transient"
 AddError ExecAddrNotInCode,    "Execution address not within code"
 AddError ExecAddrTooLow,       "Code runs too low"
 AddError UnknownActionType,    "No action specified for this file type"
 AddError TooManyLevels,        "Too many levels"
 AddError NoSelectedFilingSystem, "No selected filing system"
 AddError CantRemoveFSByNumber, "Can't remove filing system by number"
 AddError UnalignedFSEntry,     "Unaligned filing system entry point"
 AddError UnsupportedFSEntry,   "Filing system does not support this operation"
 AddError FSNotSpecial,         "Filing system does not support special fields"
 AddError CoreNotReadable,      "No readable memory at this address"
 AddError CoreNotWriteable,     "No writeable memory at this address"
 AddError BadBufferSizeForStream, "Bad buffer size"
 AddError NotOpenForReading,    "Not open for reading"
 AddError NotEnoughStackForFSEntry, "Not enough stack to call filing system"
 AddError NothingToCopy,        "Nothing to copy"
 AddError NothingToDelete,      "Nothing to delete"
 AddError FileSwitchCantBeKilledWhilstThreaded, "FileSwitch can not be killed whilst it is threaded"
 AddError InvalidErrorBlock,    "Invalid error block"
 AddError FSFileTooBig,         "File too big" ; Clashed with ROMFS FileTooBig
 AddError CantRMFasterFileSwitch, "Can't RMFaster FileSwitch"
 AddError InconsistentHandleSet,  "Inconsistent handle set"
 AddError IsAFile,              "Object is a file"
 AddError BadFileType,          "Bad file type"

 AddError FileSwitchDataLost,   "Data lost", &4AC ; Consistent with ADFS


 ^ &4F8 ; So high up as to avoid clashes with normal filing system errors

; The following errors are to be used by all filing systems, the bottom byte
; is the only significant part

 AddError NotSupported_Pre, "Bad operation on ", @ :AND: &FF
 AddError NotSupported_Post, ":"
 AddError FSWriteOnly_Pre, "", @ :AND: &FF
 AddError FSWriteOnly_Post, ": is a write only filing system"
 AddError FSReadOnly_Pre, "", @ :AND: &FF
 AddError FSReadOnly_Post, ": is a read only filing system"

; They should be used as follows;
;      ALIGN
;      DCD &00010000 + &100*MyFilingSystemNumber + ErrorNumber_NotSupported_Pre
;      DCB ErrorString_NotSupported_Pre
;      DCB String_MyFilingSystemName
;      DCB ErrorString_NotSupported_Post
;      DCB 0


; Podule manager errors

 ASSERT @ <= &500
 ^ &500

 AddError BadPodule,       "Bad podule number"
 AddError BadSpeed,        "Bad access speed"
 AddError NoPodule,        "No installed podule"
 AddError NotExtended,     "Podule identity is not extended"
 AddError NotAcorn,        "Podule is not 'Acorn'"
 AddError NoLoader,        "No loader to call"
 AddError InLoader,        "Unknown error in loader"
 AddError BadChunk,        "Bad chunk number"
 AddError BadDeviceNumber, "Bad device number"
 AddError BadDeviceType,   "Bad device type"
 AddError RAMConfigSyntax, "Syntax: *RAMConfig <Podule number> [<device> [<type>]]", ErrorNumber_Syntax
 AddError WrongPoduleType, "Wrong podule type"
 AddError ROMBoardSyntax,  "Syntax: *Configure ROMBoard <podule> <device> [<type>]", ErrorNumber_Syntax


; Errors generated by podule loaders

 ASSERT @ <= &580
 ^ &580
 AddError NotWriteable,         "This podule doesn't support writeable devices"
 AddError AddressRange,         "Address out of range for podule"
 AddError DeviceNotWriteable,   "This device not writeable"
 AddError PoduleReadOnly,       "Read only device"
 AddError AddressTooBig,        "Address too big"


; Printer Driver

 ASSERT @ <= &5C0
 ^ &5C0
 AddError PrintNoFills,       "Area fill not allowed"
 AddError PrintNoGCOL,        "Only GCOL 0,n type plotting allowed"
 AddError PrintNoBlockCopy,   "Block copy not allowed"
 AddError PrintBadPrinter,    "Use SWI StartJob/EndJob instead"
 AddError PrintNoTextMode,    "No VDU 4-type printing"
 AddError PrintNoModeChanges, "Can't change mode here"
 AddError PrintBadFontName,   "Printer can't support this font"
 AddError PrintBadBox,        "Output is off the page!"
 AddError PrintNotPortrait,   "This version can only do portrait printing"
 AddError PrintBadSpriteOp,   "Printer driver can't handle this SpriteOp"
 AddError PrintBadDrawPage,   "Bad call to Print_DrawPage/NextRectangle"
 AddError PrintTimeOut,       "Printer timeout"


; General OS errors

 ASSERT @ <= &600
 ^ &600
 AddError CantStartApplication, "Unable to start application"
 AddError BadCommandOption, "Bad command option"
 AddError UnknownSerialOp,  "Unknown serial operation"


; International errors

 ASSERT @ <= &640
 ^ &640
 AddError UnknownAlphabet, "Unknown alphabet"
 AddError UnknownCountry,  "Unknown country"
 AddError UnknownKeyboard, "Unknown keyboard"


; Sprite errors

 ASSERT @ <= &700
 ^ &700
 AddError Sprite_NoWorkSpace,         "No sprite memory", 128
 AddError Sprite_NoRoom,              "No room to get sprite", 130
 AddError Sprite_DoesntExist,         "Sprite doesn't exist", 134
 AddError Sprite_NoSprites,           "No sprites", 131
 AddError Sprite_NotGraphics,         "Not a graphics mode", 129
 AddError Sprite_CantOpenFile,        "Can't open file", 133
 AddError Sprite_NotEnoughRoom,       "Not enough room", 133
 AddError Sprite_WSClaimFailed,       "Sprite workspace claim failed"
 AddError Sprite_NoRoomToMerge,       "Not enough room to add sprite"
 AddError Sprite_Crap2ndPtr,          "Bad 2nd ptr"
 AddError Sprite_InvalidRowOrCol,     "Invalid row or column"
 AddError Sprite_InvalidHeight,       "Invalid height"
 AddError Sprite_InvalidWidth,        "Invalid width"
 AddError Sprite_NoRoomToInsert,      "No room to insert row or column"
 AddError Sprite_SpriteAlreadyExists, "Sprite already exists"
 AddError Sprite_InvalidSpriteMode,   "Invalid sprite mode"
 AddError Sprite_BadReasonCode,       "Bad sprite reason code"
 AddError Sprite_CantDoSystem,        "System sprites not allowed here"
 AddError Sprite_BadTranslation,      "Bad colour translation table"
 AddError Sprite_BadGreyScale,        "Grey-scale only does 16 colours"
 AddError Sprite_BadPointerShape,     "Unsuitable sprite for SetPointerShape"
 AddError Sprite_BadAppend,           "Can't append sprite"
 AddError Sprite_CantInTeletext,      "Can't switch output in teletext mode"
 AddError Sprite_InvalidSaveArea,     "Invalid save area"
 AddError Sprite_SpriteIsCurrentDest, "Sprite is current destination"


; Debugger errors

 ASSERT @ <= &800
 ^ &800
 AddError Debug_BreakNotFound,        "Breakpoint not found"
 AddError Debug_InvalidValue,         "Invalid value"
 AddError Debug_Resetting,            "Resetting breakpoint"
 AddError Debug_NoRoom,               "No room in breakpoint table"
 AddError Debug_NoBreakpoints,        "No breakpoints set"
 AddError Debug_BadBreakpoint,        "Bad breakpoint"
 AddError Debug_Undefined,            "Undefined breakpoint"
 AddError Debug_NonAligned,           "Unaligned address"
 AddError Debug_NoWorkspace,          "No room for debug module workspace"


; BBC IO podule errors

 ASSERT @ <= &880
 ^ &880
 AddError NoHardwareAddress,    "Unable to start without hardware address"


; ShellCLI module errors

 ASSERT @ <= &900
 ^ &900
 AddError ShellCreation,              "Cannot create a new shell"
 AddError ShellRemoval,               "Cannot remove current shell"


; Draw module errors

 ASSERT @ <= &980
 ^ &980
 AddError NoDrawInIRQMode,       "" ;Stuart says no point in having a string!
 AddError BadDrawReasonCode,     "Bad Draw_ProcessPath reason code"
 AddError ReservedDrawBits,      "Reserved bits not zero"
 AddError InvalidDrawAddress,    "Invalid address"
 AddError BadPathElement,        "Bad path element"
 AddError BadPathSequence,       "Path elements out of order"
 AddError MayExpandPath,         "Operation may change path length"
 AddError PathFull,              "Output path full"
 AddError PathNotFlat,           "Path needs to be flattened"
 AddError BadCapsOrJoins,        "Invalid cap and join specification"
 AddError TransformOverflow,     "Overflow while transforming point"
 AddError DrawNeedsGraphicsMode, "Draw can only plot to graphics modes"
 
; The following Draw errors is used for all unimplemented Draw facilities

 ASSERT @ <= &9FF
 ^ &9FF
 AddError UnimplementedDraw,     "Facility not in this version of Draw"
 ASSERT @ = &A00


; Filing System errors should be &01nnxx where nn is the Filing System number

; ROMFS errors

 ASSERT @ <= &10300
 ^ &00010300 ; fs 3
 AddError FileTooBig,           "File too big for device(s)"
 AddError OffsetTooBig,         "Offset too big for device"

; Errors with the bottom byte forced for compatability
 AddError IsAROMFSDirectory,    $ErrorString_IsADirectory, &103A8
 AddError OutsideROMFSFile,     $ErrorString_OutsideFile, &103B7
 AddError ROMFSFileAlreadyOpen, "Only one file open at a time", &103C0
 AddError BadROMFSOption,       "Bad option value", &103CB
 AddError ROMFSFileNotFound,    $ErrorString_FileNotFound, &103D6
 AddError BadROMFSHandle,       "Bad handle", &103DE


; NetFS errors

 ASSERT @ <= &10500
 ^ &00010500 ; fs 5
 AddError BadName,               "Bad file server name"
 AddError BadCommandCode,        "Bad file server command code"
 AddError UnexpectedCommandCode, "Unexpected file server command code"
 AddError UnknownFunctionCode,   "Unknown function code"
 AddError UnknownStationName,    "Unknown station name"
 AddError UnknownStationNumber,  "Unknown station number"
 AddError StationNotFound,       "Station name not found"
 AddError FileServerNameTooLong, "File server name too long"

; These errors are grouped here with the filing system ones since
; they are errors associated with filing system specific transients

 ASSERT @ <= &10540
 ^ &00010540 ; fs 5 (Loaded NetFS transient errors)

 AddError SetFreeSyntax,     "Syntax: *SetFree <Username> <FreeSpace (in hex)>", ErrorNumber_Syntax
 AddError FSCLISyntax,       "Syntax: *FSCLI <string>", ErrorNumber_Syntax

; Errors with the bottom byte forced for compatability

 AddError BadNetRename,  $ErrorString_BadRename, &10500 + ErrorNumber_BadRename
 AddError DirectoryNotEmpty, "Directory not empty", &105B4
 AddError NotLoggedOn,    "Not logged on", &105BF
 AddError NetFSTypesDontMatch, $ErrorString_TypesDontMatch, &10500 + ErrorNumber_TypesDontMatch
 AddError BadNetFSOption, "Bad option value", &105CB
 AddError BadNetFSHandle, "Bad handle", &10500 + ErrorNumber_Channel
 AddError BadFSCLICommand, "Unknown file server command", &10500 + ErrorNumber_BadCommand

; ADFS errors

 ASSERT @ <= &10800
 ^ &00010800 ; fs 8


; VFS errors

 ASSERT @ <= &10A00
 ^ &00010A00 ; fs 10


; NetPrint errors

 ASSERT @ <= &10C00
 ^ &00010C00 ; fs 12
 AddError PrinterServerNameTooLong, "Printer server name too long"
 AddError SingleStream, "This printer server doesn't support multiple streams"
 AddError AllPrintersBusy,          "No free printer server of this type"
 AddError NetPrinterOffLine,        "Printer offline"

; Errors with the bottom byte forced for compatability
 AddError NetPrinterBusy,           "Printer busy", &10CA6
 AddError NetPrinterJammed,         "Printer jammed", &10CA7
 AddError BadNetPrintHandle,        "Bad handle", &10CDE


 ASSERT @ <= &10D00
 ^ &00010D00 ; fs 13
 AddError BadNullOp, "Bad operation on null:"


 ASSERT @ <= &10E00
 ^ &00010E00 ; fs 14
 AddError BadPrinterOp,  "Bad operation on printer:"
 AddError PrinterInUse,  "printer: in use"
 AddError UKPrinterType, "Unknown printer type"


 ASSERT @ <= &10F00
 ^ &00010F00 ; fs 15
 AddError BadSerialOp,  "Bad operation on serial:"
 AddError SerialInUse,  "serial: in use"


 ASSERT @ <= &11100
 ^ &00011100 ; fs 17
 AddError BadVduOp, "Bad operation on vdu:"


 ASSERT @ <= &11200
 ^ &00011200 ; fs 18
 AddError BadRawVduOp, "Bad operation on rawvdu:"


 ASSERT @ <= &11300
 ^ &00011300 ; fs 19
 AddError BadKbdOp, "Bad operation on kbd:"


 ASSERT @ <= &11400
 ^ &00011400 ; fs 20
 AddError BadRawKbdOp, "Bad operation on rawkbd:"


; DeskFS errors

 ASSERT @ <= &11500
 ^ &00011500 ; fs 21
 AddError DeskNotSupported, "Bad operation on DeskFS:"


; Sound system errors

 ASSERT @ <= &20000
 ^ &00020000
; Sound Level 0 OSCLI command errors
 AddError BadSoundParameter,"Bad sound command parameter"
 AddError BadSoundChannel,"Bad sound channel number"
 AddError BadSoundStereo,"Bad sound stereo position"
 AddError BadSoundIRQClaim,"Sound Level0 failed to claim IRQ vector"
; Sound Level 1 only (share some Level 0)
 AddError BadSound1Init,"Unable to claim sufficient Sound Level 1 heap space"
 AddError BadSoundVoice,"Bad sound voice"
; Sound Level 2 only (share some Level 0)
 AddError BadSound2Init,"Unable to claim sufficient Sound Level 2 heap space"
; Voices
 AddError BadVoiceInit,"Unable to claim sufficient Sound Voice heap space"


; SCSI driver errors

 ASSERT @ <= &20100
 ^ &00020100
 AddError SCSI_FailClaim,"SCSI failed to allocate required RAM at initialise"
 AddError SCSI_IDLost,"The SBIC has lost it's SCSI ID"
 AddError SCSI_SBICBusy,"The SBIC is busy performing a command"
 AddError SCSI_PanicMess,"Panic - the SBIC has lost track of things"
 AddError SCSI_CheckAux,"Check Aux register"
 AddError SCSI_MegaText,"An error or situation that is undefined has occurred"


; VideoCommands errors

 ASSERT @ <= &20200
 ^ &00020200
 AddError Video_FailClaim,"Video failed to claim its workspace"
 AddError Video_BadVpError,"Parameter to VP must be 1 to 5 or X"
 AddError Video_BadFcodeError,"Bad f-code"
 AddError Video_BadSpeedError,"Bad speed parameter"


; IIC errors

 ASSERT @ <= &20300
 ^ &00020300
 AddError IIC_NoAcknowledge,"No acknowledge from IIC device"


; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; Exceptions and Abortions

 ^ &80000000 ; All start with a 0 in the bottom byte
ErrorBase_MachineExceptions     # &100
ErrorBase_CoProc0               # &100
ErrorBase_FloatingPoint         # &100
ErrorBase_EconetExceptions      # &100

 ^ ErrorBase_MachineExceptions
 AddError UndefinedInstruction, "Undefined instruction at &"
 AddError InstructionAbort, "Abort on instruction fetch at &"
 AddError DataAbort, "Abort on data transfer at &"
 AddError AddressException, "Address exception at &"
 AddError UnknownIRQ, "Unknown IRQ at &"
 AddError BranchThrough0, "Branch through zero at &"

 ^ ErrorBase_EconetExceptions
 AddError Remoted, "Remoted"


; ***************** External authors get &00800000 upwards *******************

                         ^ &00800000 ; Sign here for 256 errors

ErrorBase_BASICEditor    # &100 ; &00800000
ErrorBase_HardCopy       # &100 ; &00800100
ErrorBase_MinervaSystems # &100 ; &00800200
ErrorBase_FrameGrabber   # &100 ; &00800300 Mike Harrison
ErrorBase_Clares         # &100 ; &00800400
ErrorBase_IntelligentInt # &100 ; &00800500
ErrorBase_AcornsoftLogo  # &100 ; &00800600
ErrorBase_Resource       # &100 ; &00800700
ErrorBase_MyoLink        # &100 ; &00800800 L van Someren
ErrorBase_SoundSampler   # &100 ; &00800900 DFell
ErrorBase_FFT            # &100 ; &00800A00 DFell
ErrorBase_Arpeggio       # &100 ; &00800B00 Mike Beecher/EMR
ErrorBase_FontAid        # &100 ; &00800C00 CJE Micros
ErrorBase_AlliedInteract # &100 ; &00800D00
ErrorBase_SharedLibrary  # &100 ; &00800E00
ErrorBase_CConceptsSpell # &100 ; &00800F00
ErrorBase_CConceptsWord  # &100 ; &00801000
ErrorBase_CConceptsDraw  # &100 ; &00801100
ErrorBase_IntellInterf16BitPIO # &100 ; &00801200
IntellInterf12BitADC     # &100 ; &00801300
IntellInterfRS423        # &100 ; &00801400
ErrorBase_AMSFinesse     # &100 ; &00801500
ErrorBase_Euclid         # &100 ; &00801600 Ace computing
ErrorBase_Sibelius       # &100 ; &00801700 Genesis E+T Ltd
ErrorBase_FAXPack        # &100 ; &00801800 Computer Concepts
ErrorBase_CED1401Driver  # &100 ; &00801900 Cambridge Electronic Design
ErrorBase_AutoCue        # &100 ; &00801A00 Capricorn Consultants
ErrorBase_WorldMap       # &100 ; &00801B00 CRFrancis world maps
ErrorBase_6502Emulator   # &100 ; &00801C00 SSwales
ErrorBase_RGL            # &100 ; &00801D00 Silicon Vision Ltd (Realtime Graphics)
ErrorBase_DigiTape       # &100 ; &00801E00 Digital Services Tape Streamer

        OPT     OldOpt
        END
