Completely redone. mkestrres now parses errno.h and Errors.h files
(which have the descriptions of the errors in comments) and
generates errors.txt, macerrors.py and errors.rsrc
diff --git a/Mac/scripts/errors.txt b/Mac/scripts/errors.txt
index 4d8649b..afdbc4d 100644
--- a/Mac/scripts/errors.txt
+++ b/Mac/scripts/errors.txt
@@ -1,592 +1,626 @@
-1     dsBusError      bus error
-2     dsAddressErr    address error
-3     dsIllInstErr    illegal instruction error
-4     dsZeroDivErr    zero divide error
-5     dsChkErr        check trap error
-6     dsOvflowErr     overflow trap error
-7     dsPrivErr       privilege violation error
-8     dsTraceErr      trace mode error
-9     dsLineAErr      line 1010 trap error
-10    dsLineFErr      line 1111 trap error
-11    dsMiscErr       miscellaneous hardware exception error
-12    dsCoreErr       unimplemented core routine error
-13    dsIrqErr        uninstalled interrupt error
-14    dsIOCoreErr     IO Core Error
-15    dsLoadErr       Segment Loader Error
-16    dsFPErr         Floating point error
-17    dsNoPackErr     package 0 not present [List Manager]
-18    dsNoPk1         package 1 not present [Reserved by Apple]
-19    dsNoPk2         package 2 not present [Disk Initialization]
-20    dsNoPk3         package 3 not present [Standard File]
-21    dsNoPk4         package 4 not present [Floating-Point Arithmetic]
-22    dsNoPk5         package 5 not present [Transcendental Functions]
-23    dsNoPk6         package 6 not present [International Utilities]
-24    dsNoPk7         package 7 not present [Binary/Decimal Conversion]
-25    dsMemFullErr    out of memory!
-26    dsBadLaunch     can't launch file
-27    dsFSErr         file system map has been trashed
-28    dsStknHeap      stack has moved into application heap
-30    dsReinsert      request user to reinsert off-line volume
-31    dsNotThe1       not the disk I wanted (obsolete)
-33    negZcbFreeErr   ZcbFree has gone negative
-40    dsGreeting      welcome to Macintosh greeting
-41    dsFinderErr     can't load the Finder error
-42    shutDownAlert   handled like a shutdown error (obsolete)
-43    dsSystemFileErr canÕt find System file to open (obsolete)
-51    dsBadSlotInt    unserviceable slot interrupt
-81    dsBadSANEopcode bad opcode given to SANE Pack4
-84    menuPrgErr      happens when a menu is purged
-85    dsMBarNFnd      SysErr -- cannot find MBDF
-86    dsHMenuFindErr  SysErr -- recursively defined HMenus
-87    dsWDEFnFnd      Could not load WDEF
-88    dsCDEFnFnd      Could not load CDEF
-89    dsMDEFnFnd      Could not load MDEF
-98    dsNoPatch       Can't patch for particular Model Mac
-99    dsBadPatch      Can't load patch resource
-101   dsParityErr     memory parity error
-102   dsOldSystem     System is too old for this ROM
-103   ds32BitMode     booting in 32-bit on a 24-bit sys
-20000 dsShutDownOrRestart   user choice between ShutDown and Restart
-20001 dsSwitchOffOrRestart  user choice between switching off and Restart
-20002 dsForcedQuit    allow the user to ExitToShell, return if Cancel
-32767 dsSysErr        general system error (catch-all used in DSAT)General System Errors (VBL Mgr, Queue, Etc.)
-0     noErr           No Error
--1    qErr            queue element not found during deletion
--2    vTypErr         invalid queue element
--3    corErr          core routine number out of range
--4    unimpErr        unimplemented core routine
--5    SlpTypeErr      invalid queue element
--8    seNoDB          no debugger installed to handle debugger command
--17   controlErr      Driver can't respond to Control call
--18   statusErr       Driver can't respond to Status call
--19   readErr         Driver can't respond to Read call
--20   writErr         Driver can't respond to Write call
--21   badUnitErr      Driver ref num doesn't match unit table
--22   unitEmptyErr    Driver ref num specifies NIL handle in unit table
--23   openErr         Requested read/write permission doesn't match
-                      driver's open permission, or
-                      Attempt to open RAM serial Driver failed
--24   closErr         Close failed; Permission to close .MPP driver
-                      was denied
--25   dRemovErr       tried to remove an open driver
--26   dInstErr        DrvrInstall couldn't find driver in resources
--27   abortErr        IO call aborted by KillIO; Publisher has written
-                      a new edition *OR* IO abort error (Printing Manager)
--28   notOpenErr      Couldn't rd/wr/ctl/sts cause driver not opened
--29   unitTblFullErr  Unit table has no more entries
--30   dceExtErr       dce extension error
--33   dirFulErr       Directory full
--34   dskFulErr       Disk full
--35   nsvErr          No such volume; volume not found
--36   ioErr           I/O error (bummers)
--37   bdNamErr        Bad file name; there may be no bad names
-                      in the final system!
--38   fnOpnErr        File not open
--39   eofErr          End of file; no additional data in the format
--40   posErr          Tried to position to before start of file (r/w)
--41   mFulErr         Memory full (open) or file won't fit (load)
--42   tmfoErr         too many files open
--43   fnfErr          File not found; Folder not found;
-                      Edition container not found; Target not found
--44   wPrErr          Diskette is write protected; Volume is locked
-                      through hardware
--45   fLckdErr        File is locked *OR* Publisher writing to an edition
--46   vLckdErr        Volume is locked through software
--47   fBsyErr         File is busy (delete); Section doing I/O
--48   dupFNErr        Duplicate filename (rename); File found
-                      instead of folder
--49   opWrErr         File already open with with write permission
--50   paramErr        Error in user parameter list
--51   rfNumErr        Reference number invalid
--52   gfpErr          Get file position error
--53   volOffLinErr    Volume is off line
--54   permErr         Software lock on file; Not a subscriber 
-                      [permissions error on file open]
--55   volOnLinErr     drive volume already on-line at MountVol
--56   nsDrvErr        no such drive (tried to mount a bad drive num)
--57   noMacDskErr     not a mac diskette (sig bytes are wrong)
--58   extFSErr        External file system Ñ file system identifier is nonzero
--59   fsRnErr         file system internal error: during rename the old
-                      entry was deleted but could not be restoredÉ
--60   badMDBErr       bad master directory block
--61   wrPermErr       Write permissions error; Not a publisher
--64   fontDecError    error during font declaration *OR* drive not installed
--65   fontNotDeclared font not declared *OR* r/w requested for an off-line drive
--66   fontSubErr      font substitution occured *OR* couldn't find 5 nybbles in 200 tries
--67   noAdrMkErr      couldn't find valid addr mark
--68   dataVerErr      read verify compare failed
--69   badCksmErr      addr mark checksum didn't check
--70   badBtSlpErr     bad addr mark bit slip nibbles
--71   noDtaMkErr      couldn't find a data mark header
--72   badDCksum       bad data mark checksum
--73   badDBtSlp       bad data mark bit slip nibbles
--74   wrUnderrun      write underrun occurred
--75   cantStepErr     step handshake failed
--76   tk0BadErr       track 0 detect doesn't change
--77   initIWMErr      unable to initialize IWM
--78   twoSideErr      tried to read 2nd side on a 1-sided drive
--79   spdAdjErr       unable to correctly adjust disk speed
--80   seekErr         track number wrong on address mark
--81   sectNFErr       sector number never found on a track
--82   fmt1Err         can't find sector 0 after track format
--83   fmt2Err         can't get enough sync
--84   verErr          track failed to verify
--85   clkRdErr        unable to read same clock value twice
--86   clkWrErr        time written did not verify
--87   prWrErr         parameter ram written didn't read-verify
--88   prInitErr       InitUtil found the parameter ram uninitialized
--89   rcvrErr         SCC receiver error (framing, parity, OR)
--90   breakRecd       Break received (SCC)
--91   ddpSktErr       Error opening socket *OR* Invalid address or table is full
--92   ddpLenErr       Data length too big *OR* Packet too large or first entry of the write-data
-                      structure did not contain the full 14-byte header
--93   noBridgeErr     No router available [for non-local send]
--94   lapProtErr      error in attaching/detaching protocol *OR* Protocol handler is already attached, nodeÕs
-                      protocol table is full, protocol not attached,
-                      or protocol handler pointer was not 0
--95   excessCollsns   Hardware error [excessive collisions on write]
--97   portInUse       driver Open error code (port is in use)
--98   portNotCf       driver Open error code (parameter RAM not
-                      configured for this connection)
--99   memROZErr       hard error in ROZ
--100  noScrapErr      No scrap exists error
--102  noTypeErr       Format not available [no object of that type in scrap]
--108  memFullErr      Ran out of memory [not enough room in heap zone]
--109  nilHandleErr    GetHandleSize fails on baseText or substitutionText;
-                      NIL master pointer [handle was NIL in HandleZone
-                      or other]
--110  memAdrErr       Address was odd, or out of range
--111  memWZErr        Attempted to operate on a free block; GetHandleSize
-                      fails on baseText or substitutionText
-                      [WhichZone failed (applied to free block)]
--112  memPurErr       Trying to purge a locked or non-purgeable block
--113  memAZErr        Address in zone check failed
--114  memPCErr        Pointer Check failed
--115  memBCErr        Block Check failed
--116  memSCErr        Size Check failed
--117  memLockedErr    Trying to move a locked block (MoveHHi)
--120  dirNFErr        Directory not found
--121  tmwdoErr        No free WDCB available
--122  badMovErr       Move into offspring error
--123  wrgVolTypErr    Not an HFS volume [wrong volume type error
-                      or (obsolete) operation not supported for MFS]
--124  volGoneErr      Server volume has been disconnected.
--125  updPixMemErr    Insufficient memory to update a pixmap
--127  fsDSIntErr      Internal file system error *OR* Could not find HMenu's parent in MenuKey
--126  dsMBarNFnd      System error code for MBDF not found
--128  userCanceledErr User canceled an operation
--130  fidNotFound     no file thread exists
--131  fidNotAFile     directory specified
--132  fidExists       file id already exists
--147  regionTooBigError  Region too big or complex
--148  pixMapTooBigErr    Pixel map record is deeper than 1 bit per pixel
-                         [passed pixelmap is too large]
--149  notEnoughStack  Not enough stack space for the necessary buffers *OR* Insufficient stack
--150  cMatchErr       Color2Index failed to find an index
--151  cTempMemErr     Failed to allocate memory for temporary structures
--152  cNoMemErr       Failed to allocate memory for structure
--153  cRangeErr       Range error on colorTable request
--154  cProtectErr     ColorTable entry protection violation
--155  cDevErr         Invalid type of graphics device
--156  cResErr         Invalid resolution for MakeITable
--157  cDepthErr       Invalid pixel depth
--158  cParmErr        Invalid parameter
--185  badExtResource   Extended resource has a bad format.
--186  CantDecompress   Resource bent ("the bends")
-                       can't decompress a compressed resource
--188  resourceInMemory Resource already in memory
--189  writingPastEnd   Writing past end of file
--190  inputOutOfBounds Offset or count out of bounds
--192  resNotFound      Resource not found
--193  resFNotFound     Resource file not found
--194  addResFailed     AddResource failed
--195  addRefFailed     AddReference failed
--196  rmvResFailed     RmveResource failed
--197  rmvRefFailed     RmveReference failed
--198  resAttrErr       Attribute inconsistent with operation
--199  mapReadErr       Map inconsistent with operation
--200  noHardware        Required sound hardware not available
-                        [no hardware support for the specified synthesizer]
--201  notEnoughHardware Insufficient hardware available
-                        [no more channels for the specified synthesizer]
--203  queueFull         No room in the queue
--204  resProblem        Problem loading the resource
--205  badChannel        Channel is corrupt or unusable
-                        [invalid channel queue length]
--206  badFormat         Resource is corrupt or unusable
-                        [handle to 'snd ' resource was invalid]
--207  notEnoughBufferSpace  Insufficient memory available
--208  badFileFormat     File is corrupt or unusable, or not AIFF or AIFF-C
--209  channel           Channel is busy
--210  buffersTooSmall   Buffer is too small
--211  channelNotBusy    Channel not currently used
--212  noMoreRealTime    Not enough CPU time available
--213  badParam          A parameter is incorrect
--220  siNoSoundInHardware   No sound input hardware available
--221  siBadSoundInDevice    Invalid sound input device
--222  siNoBufferSpecified   No buffer specified
--223  siInvalidCompression  Invalid compression type
--224  siHardDiskTooSlow     Hard drive too slow to record
--225  siInvalidSampleRate   Invalid sample rate
--226  siInvalidSampleSize   Invalid sample size
--227  siDeviceBusyErr       Sound input device is busy
--228  siBadDeviceName       Invalid device name
--229  siBadRefNum           Invalid reference number
--230  siInputDeviceErr      Input device hardware failure
--231  siUnknownInfoType     Unknown type of information
--232  siUnknownQuality      Unknown quality
--250  midiNoClientErr     no client with that ID found
--251  midiNoPortErr       no port with that ID found
--252  midiTooManyPortsErr too many ports already installed in the system
--253  midiTooManyConsErr  too many connections made
--254  midiVConnectErr     pending virtual connection created
--255  midiVConnectMade    pending virtual connection resolved
--256  midiVConnectRmvd    pending virtual connection removed
--257  midiNoConErr        no connection exists between specified ports
--258  midiWriteErr        couldn't write to all connected ports
--259  midiNameLenErr      name supplied is longer than 31 characters
--260  midiDupIDErr        duplicate client ID
--261  midiInvalidCmdErr   command not supported for port type
--299  nmTypErr        Invalid qTypeÑmust be ORD(nmType)
--290  smSDMInitErr    SDM could not be initialized.
--291  smSRTInitErr    Slot Resource Table could not be initialized.
--292  smPRAMInitErr   Slot Resource Table could not be initialized.
--293  smPriInitErr    Cards could not be initialized.
--300  smEmptySlot     No card in slot
--301  smCRCFail       CRC check failed for declaration data
--302  smFormatErr     FHeader Format is not Apple's
--303  smRevisionErr   Wrong revison level
--304  smNoDir         Directory offset is Nil
--305  smLWTstBad      Long Word test field <> $5A932BC7.
--306  smNosInfoArray  No sInfoArray. Memory Mgr error.
--307  smResrvErr      Fatal reserved error. Reserved field <> 0.
--308  smUnExBusErr    Unexpected Bus Error
--309  smBLFieldBad    ByteLanes field was bad.
--310  smFHBlockRdErr  Error occured during _sGetFHeader.
--311  smFHBlkDispErr  Error occured during _sDisposePtr (Dispose of
-                      FHeader block).
--312  smDisposePErr   _DisposePointer error
--313  smNoBoardsRsrc  No Board sResource.
--314  smGetPRErr      Error occured during _sGetPRAMRec (See SIMStatus).
--315  smNoBoardId     No Board Id.
--316  smIntStatVErr   The InitStatusV field was negative after primary
-                      or secondary init.
--317  smIntTblVErr    An error occured while trying to initialize the
-                      Slot Resource Table.
--318  smNoJmpTbl      SDM jump table could not be created.
--319  smBadBoardId    BoardId was wrong, re-init the PRAM record.
--320  smBusErrTO      BusError time out.
--330  smBadRefId      Reference Id not found in list
--331  smBadsList      Bad sResource [sList] structure:
-                      Id1<Id2<Id3 É  format is not followed.
--332  smReservedErr   Reserved field not zero
--333  smCodeRevErr    Code revision is wrong
--334  smCPUErr        Code revision is wrong
--335  smsPointerNil   LPointer is nil {From sOffsetData. If this error
-                      occurs, check sInfo rec for more information.}
--336  smNilsBlockErr  Nil sBlock error {Dont allocate and try to use a
-                      nil sBlock}
--337  smSlotOOBErr    Slot out of bounds error
--338  smSelOOBErr     Selector out of bounds error; function not implemented
--339  smNewPErr       _NewPtr error
--340  smBlkMoveErr    _BlockMove error
--341  smCkStatusErr   Status of slot = fail.
--342  smGetDrvrNamErr Error occured during _sGetDrvrName.
--343  smDisDrvrNamErr Error occured during _sDisDrvrName.
--344  smNoMoresRsrcs      No more sResources *OR* Specified sResource data structure not found
--345  smsGetDrvrErr   Error occurred during _sGetDriver.
--346  smBadsPtrErr    Bad pointer was passed to sCaldSPointer function
--347  smByteLanesErr  ByteLanes field in cardÕs format block was
-                      determined to be zero
--348  smOffsetErr     Offset was too big (temporary, should be fixed)
--349  smNoGoodOpens   No opens were successfull in the loop.
--350  smSRTOvrFlErr   SRT over flow.
--351  smRecNotFnd     Record not found in the SRT.
--360  slotNumErr      invalid slot # error
--400  gcrOnMFMErr     gcr format on high density media error
--450  editionMgrInitErr        Manager not initialized or could not
-                               load package
--451  badSectionErr            Not a valid section type
--452  notRegisteredSectionErr  Not registered
--454  badSubPartErr            Bad edition container spec or invalid
-                               edition container
--460  multiplePublisherWrn     Already is a publisher
--461  containerNotFoundWrn     Alias was not resolved
--463  notThePublisherWrn       Not the publisher
--470  scsiBadPBErr    invalid field(s) in the parameter block
--471  scsiOverrunErr  attempted to transfer too many bytes
--472  scsiTransferErr write flag conflicts with data transfer phase
--473  scsiBusTOErr    bus error during transfer
--474  scsiSelectTOErr scsiSelTO exceeded (selection failed)
--475  scsiTimeOutErr  scsiReqTO exceeded
--476  scsiBusResetErr the bus was reset, so your request was aborted
--477  scsiBadStatus   non-zero (not "Good") status returned
--478  scsiNoStatusErr device did not go through a status phase
--479  scsiLinkFailErr linked command never executed
--489  scsiUnimpVctErr unimplemented routine was called
--490  userBreak       user debugger break
--491  strUserBreak    user debugger break - display string on stack
--492  exUserBreak     user debugger break - execute commands on stack
--500  rgnTooBigErr    Bitmap would convert into a region greater than 64 KB
--501  teScrapSizeErr  scrap item too big for text edit record
--502  hwParamrErr     bad selector for _HWPriv
--600  procNotFound      No eligible process with specified process
-                        serial number
--601  memFragErr        Not enough room to launch application
-                        w ith special requirements
--602  appModeErr        Memory mode is 32-bit, but application is
-                        not 32-bit clean
--603  protocolErr       app made module calls in improper order
--604  hardwareConfigErr hardware configuration not correct for call
--605  appMemFullErr     Partition size specified in 'SIZE' resource is
-                        not big enough for launch
--606  appIsDaemon       Application is background-only
--607  bufferIsSmall     Buffer is too small
--608  noOutstandingHLE  No outstanding high-level event
--609  connectionInvalid           Connection is invalid
--610  noUserInteractionAllowed    Attempted PostHighLevelEvent from
-                          background and no session yet established
--620  notEnoughMemoryErr      Insufficient physical memory
--621  notHeldErr              Specified range of memory is not held
--622  cannotMakeContiguousErr Cannot make specified range contiguous
--623  notLockedErr            Specified range of memory is not locked
--624  interruptsMaskedErr     Called with interrupts masked
--625  cannotDeferErr          Unable to defer additional user functions
--800  rcDBNull          The data item was NULL
--801  rcDBValue         Data available or successfully retrieved
--802  rcDBError         Error executing function
--803  rcDBBadType       Next data item not of requested data type
--804  rcDBBreak         Function timed out
--805  rcDBExec          Query currently executing
--806  reDBBadSessID     Session ID is invalid
--807  rcDBBadSessNum    Invalid session number
--808  rcDBBadDDEV       CouldnÕt find the specified database extension,
-                        or error occurred in opening database extension
--809  rcDBAsyncNotSupp  The database extension does not support
-                        asynchronous calls
--810  rcDBBadAsyncPB    Invalid parameter block specified
--811  rcDBNoHandler     There is no handler for this data type
-                        installed for the current application
--812  rcDBWrongVersion  Wrong version number
--813  rcDBPackNotInited The InitDBPack function has not yet been called
--850  hmHelpDisabled         Help balloons are not enabled
--851  hmResNotFound          ????
--852  hmMemFullErr           ????
--853  hmBalloonAborted       Because of constant cursor movement,
-                             the help balloon wasnÕt displayed
--854  hmSameAsLastBalloon    Menu and item are same as previous menu and item
--855  hmHelpManagerNotInited Help menu not set up
--856  hmBadSelector          ????
--857  hmSkippedBalloon       No ballon content to fill in
--858  hmWrongVersion         Wrong version of Help Manager resource
--859  hmUnknownHelpType      Help message record contained a bad type
--860  hmCouldNotLoadPackage  ????
--861  hmOperationUnsupported Bad method parameter
--862  hmNoBalloonUp          No balloon showing
--863  hmCloseViewActive  User using Close View wonÕt let you remove balloon
--900  notInitErr       PPC Toolbox has not been initialized yet
--902  nameTypeErr      Invalid or inappropriate locationKindSelector
-                       in location name
--903  noPortErr        Invalid port name; Unable to open port or bad
-                       port reference number
--904  noGlobalsErr     System unable to allocate memory, critical error
--905  localOnlyErr     Network activity is currently disabled
--906  destPortErr      Port does not exist at destination
--907  sessTableErr     PPC Toolbox is unable to create a session
--908  noSessionErr     Invalid session reference number
--909  badReqErr        Bad parameter or invalid state for this operation
--910  portNameExistsErr  Another port is already open with this name
--911  noUserNameErr    User name unknown on destination machine
--912  userRejectErr    Destination rejected the session request
--915  noResponseErr    Unable to contact application
--916  portClosedErr    The port was closed
--917  sessClosedErr    The session has closed
--919  badPortNameErr   PPC port record is invalid
--922  noDefaultUserErr User has not specified owner name in Sharing Setup
-                       control panel
--923  notLoggedInErr   Default user reference number does not yet exist
--924  noUserRefErr     Unable to create a new user reference number
--925  networkErr       An error has occurred in the network
--926  noInformErr      PPCStart failed because target application did not
-                       have an inform pending
--927  authFailErr      UserÕs password is wrong
--928  noUserRecErr         Invalid user reference number
--930  badServiceMethodErr  Service method is other than
-                           ppcServiceRealTime
--931  badLocNameErr        Location name is invalid
--932  guestNotAllowedErr   Destination port requires authentication
--1024 nbpBuffOvr      Buffer overflow in LookupName
--1025 nbpNoConfirm    Name not confirmed on ConfirmName
--1026 nbpConfDiff     Name confirmed at different socket
--1027 nbpDuplicate    Duplicate name exists already
--1028 nbpNotFound     Name not found on remove
--1029 nbpNISErr       Error trying to open the NIS
--1066 aspBadVersNum   Server cannot support this ASP version
--1067 aspBufTooSmall  Buffer too small
--1068 aspNoMoreSess   No more sessions on server
--1069 aspNoServers    No servers at that address
--1070 aspParamErr     Parameter error
--1071 aspServerBusy   Server cannot open another session
--1072 aspSessClosed   Session closed
--1073 aspSizeErr      Command block too big
--1074 aspTooMany      Too many clients (server error)
--1075 aspNoAck        No ack on attention request (server err)
--1096 reqFailed  Request to contact router failed: retry count exceeded
--1097 tooManyReqs     Too many concurrent requests
--1098 tooManySkts     Too many concurrent responding-sockets
--1099 badATPSkt       Bad ATP-responding socket
--1100 badBuffNum      Bad response buffer number specififed
--1101 noRelErr        No release received
--1102 cbNotFound      Control Block not found; no pending
-                      asynchronous calls
--1103 noSendResp      AddResponse issued without SendResponse
--1104 noDataArea      No data area for request to MPP
--1105 reqAborted      ERdCancel function called for this ERead
-                      [SendRequest aborted by RelTCB]
--1273 errOpenDenied   Open request denied by recipient
--1274 errDSPQueueSize Send or receive queue is too small
--1275 errFwdReset     Read terminated by forward reset
--1276 errAttention    Attention message too long
--1277 errOpening      Attempt to open connection failed
--1278 errState        Bad connection state for this operation
--1279 errAborted      Request aborted by dspRemove or dspClose function
--1280 errRefNum       Bad connection reference number
--1300 fidNotFound     File ID not found [No file thread exists]
--1301 fidExists       File id already exists
--1302 notAFileErr     Specified file is a directory
--1303 diffVolErr      Files on different volumes
--1304 catChangedErr   Catalog has changed and CatPosition may be invalid
--1305 desktopDamagedErr  The desktop database has become corrupted Ñ
-                      the Finder will fix this, but if your application is
-                      not running with the Finder, use DTReset or DTDelete
--1700  errAECoercionFail     Data could not be coerced to the
-                             requested descriptor type
--1701  errAEDescNotFound     Descriptor record was not found
--1702  errAECorruptData      Data in an Apple event could not be read
--1703  errAEWrongDataType    Wrong descriptor type
--1704  errAENotAEDesc        Not a valid descriptor record
--1705  errAEBadListItem      Operation involving a list item failed
--1706  errAENewerVersion     Need a newer version of the Apple Event Manager
--1707  errAENotAppleEvent    Event is not an Apple event
--1708  errAEEventNotHandled  Event wasnÕt handled by an Apple event handler
--1709  errAEReplyNotValid    AEResetTimer was passed an invalid reply
--1710  errAEUnknownSendMode  Invalid sending mode was passed
--1711  errAEWaitCanceled     User canceled out of wait loop for reply
-                             or reciept
--1712  errAETimeout          Apple event timed out
--1713  errAENoUserInteraction    No user interaction allowed
--1714  errAENotASpecialFunction  Wrong keyword for a special function
--1715  errAEParamMissed      Handler did not get all required paramters
--1716  errAEUnknownAddressType   Unknown Apple event address type
--1717  errAEHandlerNotFound  No handler found for an Apple event
-                             or a coersion
--1718  errAEReplyNotArrived  Reply has not yet arrived
--1719  errAEIllegalIndex     Not a valid list index
--3101 buf2SmallErr    Packet too large for buffer; partial data returned
--3102 noMPPErr        No MPP error
--3103 ckSumErr        Check sum error
--3104 extractErr      Extraction error
--3105 readQErr        Read queue error
--3106 atpLenErr       ATP length error
--3107 atpBadRsp       ATP bad response error
--3108 recNotFnd       Record not found
--3109 sktClosedErr    Socket closed error
--4096 ???             No free Connect Control Blocks available
--4097 ???             Bad connection reference number
--4098 ???             Request already active
--4099 ???             Write request too big
--4100 ???             Connection just closed
--4101 ???             Printer not found, or closed
--5000 accessDenied    Incorrect access for this file/folder
--5006 DenyConflict    Permission/Deny mode conflicts with the current
-                      mode in which this fork is already open
--5015 NoMoreLocks     Byte range locking failure from Server
--5020 RangeNotLocked  Attempt to unlock an already unlocked range
--5021 RangeOverlap    Attempt to lock some of an already locked range
--5001 afpAuthContinue     AFP Authorization continue
--5002 afpBadUAM           AFP Bad UAM
--5003 afpBadVersNum       AFP Bad version number
--5004 afpBitmapErr        AFP Bit map error
--5005 afpCantMove         AFP Can't move error
--5007 afpDirNotEmpty      AFP Dir not empty
--5008 afpDiskFull         AFP Disk full
--5009 afpEofError         AFP End-of-File error
--5010 afpFileBusy         AFP File busy
--5011 afpFlatVo           AFP Flat volume
--5012 afpItemNotFound     AFP Information not found
--5013 afpLockErr          AFP Lock error
--5014 afpMiscErr          AFP Misc error
--5016 afpNoServer         AFP No server
--5017 afpObjectExists     AFP Object already exists
--5018 afpObjectNotFound   AFP Object not found
--5019 afpParmErr          AFP Parm error
--5022 afpSessClosed       AFP Session closed
--5023 afpUserNotAuth      AFP User not authorized
--5024 afpCallNotSupported AFP Call not supported
--5025 afpObjectTypeErr    AFP Object type error
--5026 afpTooManyFilesOpen AFP Too many files open
--5027 afpServerGoingDown  AFP Server going down
--5028 afpCantRename       AFP Can't rename
--5029 afpDirNotFound      AFP Directory not found
--5030 afpIconTypeError    Size of new icon and one it replaces donÕt match
--5031 afpVolLocked        Volume is Read-Only
--5032 afpObjectLocked     Object is M/R/D/W inhibited
--5500 envNotPresent   SysEnvirons trap not present - returned by glue.
--5501 envBadVers      Version non-positive
--5502 envVersTooBig   Version bigger than call can handle
--5550 gestaltUnknownErr       Could not obtain the response
--5551 gestaltUndefSelectorErr Undefined selector
--5552 gestaltDupSelectorErr   Selector already exists
--5553 gestaltLocationErr      Function not in system heapLaserWriter Driver Errors
--8132 ????            Manual Feed time out
--8133 ????            General PostScript Error
--8150 ????            No LaserWriter chosen *OR* No LaserPrep dictionary installed
--8151 ????            Version mismatch between LaserPrep dictionaries
--8160 ????            Zoom scale factor out of range
--11000 pictInfoVersionErr    Version number not zero
--11001 pictInfoIDErr         Invalid PictInfo ID
--11002 pictInfoVerbErr       Invalid verb combination specified
--11003 cantLoadPickMethodErr Custom pick method not in resource chain
--11004 colorsRequestedErr    Number out of range or greater than passed
-                             to NewPictInfo
--11005 pictureDataErr        Invalid picture data
--13000 pmBusyErr      Power Manager IC stuck busy
--13001 pmReplyTOErr   Timed out waiting to begin reply handshake
--13002 pmSendStartErr Power Manager IC did not start handshake
--13003 pmSendEndErr   During send, Power Manager did not finish handshake
--13004 pmRecvStartErr During receive, Power Manager did not start handshake
--13005 pmRecvEndErr   During receive, Power Manager did not finish handshake
--23000 ipBadLapErr           Bad network configuration
--23001 ipBadCnfgErr          Bad IP configuration error
--23002 ipNoCnfgErr           Missing IP or LAP configuration error
--23003 ipLoadErr             Error in MacTCP load
--23004 ipBadAddr             Error in getting address
--23005 connectionClosing     Connection in closing
--23006 invalidLength
--23007 connectionExists      Request conflicts with existing connection
--23008 connectionDoesntExist Connection does not exist
--23009 insufficientResources Insufficient resources to perform request
--23010 invalidStreamPtr
--23011 streamAlreadyOpen
--23012 connectionTerminated
--23013 invalidBufPtr
--23014 invalidRDS
--23015 openFailed
--23016 commandTimeout
--23017 duplicateSocket
--23030 ipOpenProtErr         Can't open new protocol, table full
--23031 ipCloseProtErr        Can't find protocol to close
--23032 ipDontFragErr         Packet too large to send w/o fragmenting
--23033 ipDestDeadErr         Destination not responding
--23034 ipBadWDSErr           Error in WDS format
--23035 icmpEchoTimeoutErr    ICMP echo timed-out
--23036 ipNoFragMemErr        No memory to send fragmented pkt
--23037 ipRouteErr            Can't route packet off-net
--23041 nameSyntaxErr
--23042 cacheFault
--23043 noResultProc
--23044 noNameServer
--23045 authNameErr
--23046 noAnsErr
--23047 dnrErr
--23048 outOfMemory
+-32768	svTempDisable	Temporarily disable card but run primary init.
+-32640	svDisabled	Reserve range -32640 to -32768 for Apple temp disables.
+-32615	fontNotOutlineErr	bitmap font passed to routine that does outlines only
+-20002	invalidIndexErr	The recordIndex parameter is not valid.
+-20001	recordDataTooBigErr	The record data is bigger than buffer size (1024 bytes).
+-20000	unknownInsertModeErr	There is no such an insert mode.
+-13005	pmRecvEndErr	during receive, pmgr did not finish hs configured for this connection
+-13004	pmRecvStartErr	during receive, pmgr did not start hs
+-13003	pmSendEndErr	during send, pmgr did not finish hs
+-13002	pmSendStartErr	during send, pmgr did not start hs
+-13001	pmReplyTOErr	Timed out waiting for reply
+-13000	pmBusyErr	Power Mgr never ready to start handshake
+-11005	pictureDataErr	the picture data was invalid
+-11004	colorsRequestedErr	the number of colors requested was illegal
+-11003	cantLoadPickMethodErr	unable to load the custom pick proc
+-11002	pictInfoVerbErr	the passed verb was invalid
+-11001	pictInfoIDErr	the internal consistancy check for the PictInfoID is wrong
+-11000	pictInfoVersionErr	wrong version of the PictInfo structure
+-10116	telNotEnoughdspBW	not enough real-time for allocation
+-10115	telBadSampleRate	incompatible sample rate
+-10114	telBadSWErr	Software not installed properly
+-10113	telDetAlreadyOn	detection is already turned on
+-10112	telAutoAnsNotOn	autoAnswer in not turned on
+-10111	telValidateFailed	telValidate failed
+-10110	telBadProcID	invalid procID
+-10109	telDeviceNotFound	device not found
+-10108	telBadCodeResource	code resource not found
+-10107	telInitFailed	initialization failed
+-10106	telNoCommFolder	Communications/Extensions Ÿ not found
+-10103	telUnknownErr	unable to set config
+-10102	telNoSuchTool	unable to find tool with name specified
+-10091	telBadFunction	bad msgCode specified
+-10090	telPBErr	parameter block error, bad format
+-10082	telCANotDeflectable	CA not "deflectable"
+-10081	telCANotRejectable	CA not "rejectable"
+-10080	telCANotAcceptable	CA not "acceptable"
+-10072	telTermNotOpen	terminal not opened via TELOpenTerm
+-10071	telStillNeeded	terminal driver still needed by someone else
+-10070	telAlreadyOpen	terminal already open
+-10064	telNoCallbackRef	no call back reference was specified, but is required
+-10063	telDisplayModeNotSupp	display mode not supported by tool
+-10062	telBadDisplayMode	bad display mode specified
+-10061	telFwdTypeNotSupp	forward type not supported by tool
+-10060	telDNTypeNotSupp	DN type not supported by tool
+-10059	telBadRate	bad rate specified
+-10058	telBadBearerType	bad bearerType specified
+-10057	telBadSelect	unable to select or deselect DN
+-10056	telBadParkID	bad park id specified
+-10055	telBadPickupGroupID	bad pickup group ID specified
+-10054	telBadFwdType	bad fwdType specified
+-10053	telBadFeatureID	bad feature ID specified
+-10052	telBadIntercomID	bad intercom ID specified
+-10051	telBadPageID	bad page ID specified
+-10050	telBadDNType	DN type invalid
+-10047	telConfLimitExceeded	attempt to exceed switch conference limits
+-10046	telCBErr	call back feature not set previously
+-10045	telTransferRej	transfer request rejected
+-10044	telTransferErr	transfer not prepared
+-10043	telConfRej	conference request was rejected
+-10042	telConfErr	conference was not prepared
+-10041	telConfNoLimit	no limit was specified but required
+-10040	telConfLimitErr	limit specified is too high for this configuration
+-10033	telFeatNotSupp	feature program call not supported by this tool
+-10032	telFeatActive	feature already active
+-10031	telFeatNotAvail	feature subscribed but not available
+-10030	telFeatNotSub	feature not subscribed
+-10024	telDNDTypeNotSupp	DND type is not supported by this tool
+-10023	telBadDNDType	bad DND type specified
+-10022	telIntExtNotSupp	internal external type not supported by this tool
+-10021	telBadIntExt	bad internal external error
+-10020	telStateNotSupp	device state not supported by tool
+-10019	telBadStateErr	bad device state specified
+-10018	telIndexNotSupp	index not supported by this tool
+-10017	telBadIndex	bad index specified
+-10016	telAPattNotSupp	alerting pattern not supported by tool
+-10015	telBadAPattErr	bad alerting pattern specified
+-10014	telVTypeNotSupp	volume type not supported by this tool
+-10013	telBadVTypeErr	bad volume type error
+-10012	telBadLevelErr	bad volume level setting
+-10011	telHTypeNotSupp	hook type not supported by this tool
+-10010	telBadHTypeErr	bad hook type specified
+-10008	telNoOpenErr	unable to open terminal
+-10007	telNoMemErr	no memory to allocate handle
+-10006	telCAUnavail	a CA is not available
+-10005	telBadProcErr	bad msgProc specified
+-10004	telBadHandErr	bad handle specified
+-10003	telBadCAErr	TELCAHandle not found or invalid
+-10002	telBadDNErr	TELDNHandle not found or invalid
+-10001	telBadTermErr	invalid TELHandle or handle not found
+-6231	kDMMainDisplayCannotMoveErr	Trying to move main display (or a display mirrored to it)
+-6230	kDMDisplayAlreadyInstalledErr	Attempt to add an already installed display.
+-6229	kDMDisplayNotFoundErr	Could not find item (will someday remove).
+-6228	kDMDriverNotDisplayMgrAwareErr	Video Driver does not support display manager.
+-6227	kDMSWNotInitializedErr	Required software not initialized (eg windowmanager or display mgr).
+-6226	kSysSWTooOld	Missing critical pieces of System Software.
+-6225	kDMMirroringNotOn	Returned by all calls that need mirroring to be on to do their thing.
+-6224	kDMCantBlock	Mirroring is already on, can¹t Block now (call DMUnMirror() first).
+-6223	kDMMirroringBlocked	DMBlockMirroring() has been called.
+-6222	kDMWrongNumberOfDisplays	Can only handle 2 displays for now.
+-6221	kDMMirroringOnAlready	Returned by all calls that need mirroring to be off to do their thing.
+-6220	kDMGenErr	Unexpected Error
+-5553	gestaltLocationErr	gestalt function ptr wasn't in sysheap
+-5552	gestaltDupSelectorErr	tried to add an entry that already existed
+-5551	gestaltUndefSelectorErr	undefined selector was passed to Gestalt
+-5550	gestaltUnknownErr	value returned if Gestalt doesn't know the answer
+-5502	envVersTooBig	Version bigger than call can handle
+-5501	envBadVers	Version non-positive
+-5500	envNotPresent	returned by glue.
+-5044	afpInsideTrashErr	the folder being shared is inside the trash folder OR the shared folder is being moved into the trash folder OR the folder is being moved to the trash and it contains a shared folder
+-5043	afpInsideSharedErr	the folder being shared is inside a shared folder OR the folder contains a shared folder and is being moved into a shared folder OR the folder contains a shared folder and is being moved into the descendent of a shared folder.
+-5042	afpPwdExpiredErr	the password being used is too old: this requires the user to change the password before log-in can continue
+-5041	afpPwdTooShortErr	the password being set is too short: there is a minimum length that must be met or exceeded
+-5040	afpPwdSameErr	someone tried to change their password to the same password on a mantadory password change
+-5033	afpContainsSharedErr	the folder being shared contains a shared folder
+-5032	afpObjectLocked	Object is M/R/D/W inhibited
+-5031	afpVolLocked	Volume is Read-Only
+-3026	couldNotParseSourceFileErr	Source document does not contain source type
+-3025	invalidTranslationPathErr	Source type to destination type not a valid path
+-2899	fragLastErrCode	last reserved error code number
+-2824	fragInvalidFragmentUsage	an application fragment or accellerated resource has no entry point or termination routine
+-2823	fragArchError	fragment targeted for an unacceptable architecture
+-2822	fragAppNotFound	no application found in cfrg (for Process Manager)
+-2821	fragUserInitProcErr	user intialization routine did not return noErr
+-2820	fragCorruptErr	fragment container corrupted (known format)
+-2819	fragConstErr	internal inconstistancy
+-2818	fragMgrInitErr	error in initailization of this manager
+-2817	fragLibConnErr	error connecting to library (error occured in sub prepare)
+-2816	fragInitRtnUsageErr	boot library has initialization routine
+-2815	fragInitLoop	circularity detected in mandatory initialization order
+-2814	fragImportTooNew	import library was too new and therefore incompatible
+-2813	fragImportTooOld	import library was too old and therefore incompatible
+-2812	fragObjectInitSeqErr	order error during user initialization function invocation
+-2811	fragNoContextIDs	no more context id¹s
+-2810	fragNoAddrSpace	out of memory in user's address space for loadable section
+-2809	fragNoMem	out of memory for interal bookkeeping
+-2808	fragUnused1	unused
+-2807	fragHadUnresolveds	loaded fragment had "hard" unresolved imports
+-2806	fragFormatUnknown	fragment container format unknown
+-2805	fragDupRegLibName	registered name already in use
+-2804	fragLibNotFound	library name not found in Frag registry
+-2803	fragSectionNotFound	section was not found
+-2802	fragSymbolNotFound	symbol was not found in connection
+-2801	fragConnectionIDNotFound	connecionID was not valid
+-2800	fragContextNotFound	contextID was not valid
+-2551	nrPathBufferTooSmall	buffer for path is too small
+-2550	nrPathNotFound	a path component lookup failed
+-2519	tsmUnknownErr	any other errors
+-2518	tsmUnsupportedTypeErr	unSupported interface type error
+-2517	tsmScriptHasNoIMErr	script has no imput method or is using old IM
+-2516	tsmInputMethodIsOldErr	returned by GetDefaultInputMethod
+-2515	tsmComponentAlreadyOpenErr	text service already opened for the document
+-2514	tsmTSNotOpenErr	text service is not open
+-2513	tsmTSHasNoMenuErr	the text service has no menu
+-2512	tsmUseInputWindowErr	not TSM aware because we are using input window
+-2511	tsmDocumentOpenErr	there are open documents
+-2510	tsmTextServiceNotFoundErr	no text service found
+-2509	tsmCantOpenComponentErr	can¹t open the component
+-2508	tsmNoOpenTSErr	no open text service
+-2507	tsmDocNotActiveErr	document is NOT active
+-2506	tsmTSMDocBusyErr	document is still active
+-2505	tsmInvalidDocIDErr	invalid TSM documentation id
+-2504	tsmNeverRegisteredErr	app never registered error (not TSM aware)
+-2503	tsmAlreadyRegisteredErr	want to register again error
+-2502	tsmNotAnAppErr	not an application error
+-2209	badCallOrderErr	Usually due to a status call being called prior to being setup first
+-2208	noDMAErr	Can¹t do DMA digitizing (i.e. can't go to requested dest
+-2207	badDepthErr	Can¹t digitize into this depth
+-2206	notExactSizeErr	Can¹t do exact size requested
+-2205	noMoreKeyColorsErr	all key indexes in use
+-2204	notExactMatrixErr	warning of bad matrix, digitizer did its best
+-2203	matrixErr	bad matrix, digitizer did nothing
+-2202	qtParamErr	bad input parameter (out of range, etc)
+-2201	digiUnimpErr	feature unimplemented
+-2056	soundSupportNotAvailableErr	QT for Windows error
+-2055	noSoundTrackInMovieErr	QT for Windows error
+-2054	noVideoTrackInMovieErr	QT for Windows error
+-2022	cantCreateSingleForkFile	happens when file already exists
+-1857	dragNotAcceptedErr	drag was not accepted by receiver
+-1856	handlerNotFoundErr	handler not found
+-1855	duplicateHandlerErr	handler already exists
+-1854	cantGetFlavorErr	error while trying to get flavor data
+-1853	duplicateFlavorErr	flavor type already exists
+-1852	badDragFlavorErr	unknown flavor type
+-1851	badDragItemErr	unknown drag item reference
+-1850	badDragRefErr	unknown drag reference
+-1762	errOSACantOpenComponent	Can't connect to scripting system with that ID
+-1761	errOSAComponentMismatch	Parameters are from 2 different components
+-1732	errAERecordingIsAlreadyOn	available only in version 1.0.1 or greater
+-1731	errAEUnknownObjectType	available only in version 1.0.1 or greater
+-1730	errAEEmptyListContainer	Attempt to pass empty list as container to accessor
+-1729	errAENegativeCount	CountProc returned negative value
+-1728	errAENoSuchObject	e.g.,: specifier asked for the 3rd, but there are only 2. Basically, this indicates a run-time resolution error.
+-1727	errAENotAnObjSpec	Param to AEResolve not of type 'obj '
+-1726	errAEBadTestKey	Test is neither typeLogicalDescriptor nor typeCompDescriptor
+-1725	errAENoSuchLogical	Something other than AND, OR, or NOT
+-1723	errAEAccessorNotFound	Accessor proc matching wantClass and containerType or wildcards not found
+-1721	errAEWrongNumberArgs	Logical op kAENOT used with other than 1 term
+-1720	errAEImpossibleRange	A range like 3rd to 2nd, or 1st to all.
+-1719	errAEIllegalIndex	index is out of range in a put operation
+-1718	errAEReplyNotArrived	the contents of the reply you are accessing have not arrived yet
+-1717	errAEHandlerNotFound	no handler in the dispatch tables fits the parameters to AEGetEventHandler or AEGetCoercionHandler
+-1716	errAEUnknownAddressType	the target address type is not known
+-1715	errAEParamMissed	a required parameter was not accessed
+-1714	errAENotASpecialFunction	there is no special function for/with this keyword
+-1713	errAENoUserInteraction	no user interaction is allowed
+-1712	errAETimeout	the AppleEvent timed out
+-1711	errAEWaitCanceled	in AESend, the user cancelled out of wait loop for reply or receipt
+-1710	errAEUnknownSendMode	mode wasn't NoReply, WaitReply, or QueueReply or Interaction level is unknown
+-1709	errAEReplyNotValid	AEResetTimer was passed an invalid reply parameter
+-1708	errAEEventNotHandled	the AppleEvent was not handled by any handler
+-1707	errAENotAppleEvent	the event is not in AppleEvent format
+-1706	errAENewerVersion	need newer version of the AppleEvent manager
+-1705	errAEBadListItem	the specified list item does not exist
+-1700	errAECoercionFail	bad parameter data or unable to coerce the data supplied
+-1310	fsDataTooBigErr	file or volume is too big for system
+-1309	fileBoundsErr	file's EOF, offset, mark or size is too big
+-1308	notARemountErr	when _Mount allows only remounts and doesn't get one
+-1307	badFidErr	file id is dangling or doesn't match with the file number
+-1306	sameFileErr	can't exchange a file with itself
+-1305	desktopDamagedErr	desktop database files are corrupted
+-1304	catChangedErr	the catalog has been modified
+-1303	diffVolErr	files on different volumes
+-1302	notAFileErr	directory specified
+-1301	fidExists	file id already exists
+-1300	fidNotFound	no file thread exists.
+-1280	errRefNum	bad connection refNum
+-1279	errAborted	control call was aborted
+-1278	errState	bad connection state for this operation
+-1277	errOpening	open connection request failed
+-1276	errAttention	attention message too long
+-1275	errFwdReset	read terminated by forward reset
+-1274	errDSPQueueSize	DSP Read/Write Queue Too small
+-1273	errOpenDenied	open connection request was denied
+-1075	aspNoAck	No ack on attention request (server err)
+-1074	aspTooMany	Too many clients (server error)
+-1073	aspSizeErr	Command block too big
+-1072	aspSessClosed	Session closed
+-1071	aspServerBusy	Server cannot open another session
+-1070	aspParamErr	Parameter error
+-1069	aspNoServers	No servers at that address
+-1068	aspNoMoreSess	No more sessions on server
+-1067	aspBufTooSmall	Buffer too small
+-1066	aspBadVersNum	Server cannot support this ASP version
+-1029	nbpNISErr	Error trying to open the NIS
+-1028	nbpNotFound	Name not found on remove
+-1027	nbpDuplicate	Duplicate name exists already
+-1026	nbpConfDiff	Name confirmed at different socket
+-1024	nbpBuffOvr	Buffer overflow in LookupName
+-1000	noMaskFoundErr	Icon Utilties Error
+-932	guestNotAllowedErr	destination port requires authentication
+-931	badLocNameErr	location name malformed
+-930	badServiceMethodErr	illegal service type, or not supported
+-928	noUserRecErr	Invalid user reference number
+-927	authFailErr	unable to authenticate user at destination
+-926	noInformErr	PPCStart failed because destination did not have inform pending
+-925	networkErr	An error has occured in the network, not too likely
+-924	noUserRefErr	unable to create a new userRefNum
+-923	notLoggedInErr	The default userRefNum does not yet exist
+-922	noDefaultUserErr	user hasn't typed in owners name in Network Setup Control Pannel
+-919	badPortNameErr	PPCPortRec malformed
+-917	sessClosedErr	session was closed
+-916	portClosedErr	port was closed
+-915	noResponseErr	unable to contact destination
+-914	noToolboxNameErr	A system resource is missing, not too likely
+-913	noMachineNameErr	user hasn't named his Macintosh in the Network Setup Control Panel
+-912	userRejectErr	Destination rejected the session request
+-911	noUserNameErr	user name unknown on destination machine
+-910	portNameExistsErr	port is already open (perhaps in another app)
+-909	badReqErr	bad parameter or invalid state for operation
+-908	noSessionErr	Invalid session reference number
+-907	sessTableErr	Out of session tables, try again later
+-906	destPortErr	Port does not exist at destination
+-905	localOnlyErr	Network activity is currently disabled
+-904	noGlobalsErr	The system is hosed, better re-boot
+-903	noPortErr	Unable to open port or bad portRefNum
+-902	nameTypeErr	Invalid or inappropriate locationKindSelector in locationName
+-900	notInitErr	PPCToolBox not initialized
+-863	hmCloseViewActive	Returned from HMRemoveBalloon if CloseView was active
+-862	hmNoBalloonUp	Returned from HMRemoveBalloon if no balloon was visible when call was made
+-861	hmOperationUnsupported	Returned from HMShowBalloon call if bad method passed to routine
+-859	hmUnknownHelpType	Returned if help msg record contained a bad type
+-858	hmWrongVersion	Returned if help mgr resource was the wrong version
+-857	hmSkippedBalloon	Returned from calls if helpmsg specified a skip balloon
+-855	hmHelpManagerNotInited	Returned from HMGetHelpMenuHandle if help menu not setup
+-854	hmSameAsLastBalloon	Returned from HMShowMenuBalloon if menu & item is same as last time
+-853	hmBalloonAborted	Returned if mouse was moving or mouse wasn't in window port rect
+-850	hmHelpDisabled	Show Balloons mode was off, call to routine ignored
+-813	rcDBPackNotInited	attempt to call other routine before InitDBPack
+-812	rcDBWrongVersion	incompatible versions
+-811	rcDBNoHandler	no app handler for specified data type
+-810	rcDBBadAsyncPB	tried to kill a bad pb
+-809	rcDBAsyncNotSupp	ddev does not support async calls
+-808	rcDBBadDDEV	bad ddev specified on DBInit
+-807	rcDBBadSessNum	bad session number for DBGetConnInfo
+-626	noMMUErr	no MMU present
+-625	cannotDeferErr	unable to defer additional functions
+-624	interruptsMaskedErr	don¹t call with interrupts masked
+-623	notLockedErr	specified range of memory is not locked
+-622	cannotMakeContiguousErr	cannot make specified range contiguous
+-621	notHeldErr	specified range of memory is not held
+-620	notEnoughMemoryErr	insufficient physical memory
+-610	noUserInteractionAllowed	no user interaction allowed
+-607	bufferIsSmall	error returns from Post and Accept
+-606	appIsDaemon	app is BG-only, and launch flags disallow this
+-605	appMemFullErr	application SIZE not big enough for launch
+-604	hardwareConfigErr	hardware configuration not correct for call
+-603	protocolErr	app made module calls in improper order
+-602	appModeErr	memory mode is 32-bit, but app not 32-bit clean
+-601	memFragErr	not enough room to launch app w/special requirements
+-600	procNotFound	no eligible process with specified descriptor
+-502	hwParamErr	bad selector for _HWPriv
+-501	teScrapSizeErr	scrap item too big for text edit record
+-492	exUserBreak	user debugger break; execute debugger commands on stack
+-491	strUserBreak	user debugger break; display string on stack
+-490	userBreak	user debugger break
+-463	notThePublisherWrn	not the first registered publisher for that container
+-462	containerAlreadyOpenWrn	container already opened by this section
+-461	containerNotFoundWrn	could not find editionContainer at this time
+-460	multiplePublisherWrn	A Publisher is already registered for that container
+-454	badSubPartErr	can not use sub parts in this release
+-453	badEditionFileErr	edition file is corrupt
+-452	notRegisteredSectionErr	not a registered SectionRecord
+-451	badSectionErr	not a valid SectionRecord
+-450	editionMgrInitErr	edition manager not inited by this app
+-417	btKeyAttrErr	There is no such a key attribute.
+-416	btKeyLenErr	Maximum key length is too long or equal to zero.
+-415	btRecNotFnd	Record cannot be found.
+-414	btDupRecErr	Record already exists.
+-413	btNoSpace	Can't allocate disk space.
+-410	notBTree	The file is not a dictionary.
+-400	gcrOnMFMErr	gcr format on high density media error
+-360	slotNumErr	invalid slot # error
+-351	smRecNotFnd	Record not found in the SRT.
+-350	smSRTOvrFlErr	SRT over flow.
+-349	smNoGoodOpens	No opens were successfull in the loop.
+-348	smOffsetErr	Offset was too big (temporary error
+-347	smByteLanesErr	NumByteLanes was determined to be zero.
+-346	smBadsPtrErr	Bad pointer was passed to sCalcsPointer
+-345	smsGetDrvrErr	Error occurred during _sGetDriver.
+-344	smNoMoresRsrcs	No more sResources
+-343	smDisDrvrNamErr	Error occured during _sDisDrvrName.
+-342	smGetDrvrNamErr	Error occured during _sGetDrvrName.
+-341	smCkStatusErr	Status of slot = fail.
+-340	smBlkMoveErr	_BlockMove error
+-339	smNewPErr	_NewPtr error
+-338	smSelOOBErr	Selector out of bounds error
+-337	smSlotOOBErr	Slot out of bounds error
+-336	smNilsBlockErr	Nil sBlock error (Dont allocate and try to use a nil sBlock)
+-335	smsPointerNil	LPointer is nil From sOffsetData. If this error occurs; check sInfo rec for more information.
+-334	smCPUErr	Code revision is wrong
+-333	smCodeRevErr	Code revision is wrong
+-332	smReservedErr	Reserved field not zero
+-331	smBadsList	Bad sList: Id1 < Id2 < Id3 ...format is not followed.
+-330	smBadRefId	Reference Id not found in List
+-320	smBusErrTO	BusError time out.
+-319	smBadBoardId	BoardId was wrong; re-init the PRAM record.
+-318	smNoJmpTbl	SDM jump table could not be created.
+-317	smInitTblVErr	An error occured while trying to initialize the Slot Resource Table.
+-316	smInitStatVErr	The InitStatusV field was negative after primary or secondary init.
+-315	smNoBoardId	No Board Id.
+-314	smGetPRErr	Error occured during _sGetPRAMRec (See SIMStatus).
+-313	smNoBoardSRsrc	No Board sResource.
+-312	smDisposePErr	_DisposePointer error
+-311	smFHBlkDispErr	Error occured during _sDisposePtr (Dispose of FHeader block).
+-310	smFHBlockRdErr	Error occured during _sGetFHeader.
+-309	smBLFieldBad	ByteLanes field was bad.
+-308	smUnExBusErr	Unexpected BusError
+-307	smResrvErr	Fatal reserved error. Resreved field <> 0.
+-306	smNosInfoArray	No sInfoArray. Memory Mgr error.
+-305	smDisabledSlot	This slot is disabled (-305 use to be smLWTstBad)
+-304	smNoDir	Directory offset is Nil
+-303	smRevisionErr	Wrong revison level
+-302	smFormatErr	FHeader Format is not Apple's
+-301	smCRCFail	CRC check failed for declaration data
+-300	smEmptySlot	No card in slot
+-299	nmTypErr	wrong queue type
+-293	smPriInitErr	Error; Cards could not be initialized.
+-292	smPRAMInitErr	Error; Slot Resource Table could not be initialized.
+-291	smSRTInitErr	Error; Slot Resource Table could not be initialized.
+-290	smSDMInitErr	Error; SDM could not be initialized.
+-261	midiInvalidCmdErr	command not supported for port type
+-260	midiDupIDErr	duplicate client ID
+-259	midiNameLenErr	name supplied is longer than 31 characters
+-258	midiWriteErr	MIDIWritePacket couldn't write to all connected ports
+-257	midiNoConErr	no connection exists between specified ports
+-256	midiVConnectRmvd	pending virtual connection removed
+-255	midiVConnectMade	pending virtual connection resolved
+-254	midiVConnectErr	pending virtual connection created
+-253	midiTooManyConsErr	too many connections made
+-252	midiTooManyPortsErr	too many ports already installed in the system
+-251	midiNoPortErr	no port with that ID found
+-250	midiNoClientErr	no client with that ID found
+-232	siUnknownQuality	invalid quality selector (returned by driver)
+-231	siUnknownInfoType	invalid info type selector (returned by driver)
+-230	siInputDeviceErr	input device hardware failure
+-229	siBadRefNum	invalid input device reference number
+-228	siBadDeviceName	input device could not be opened
+-227	siDeviceBusyErr	input device already in use
+-226	siInvalidSampleSize	invalid sample size
+-225	siInvalidSampleRate	invalid sample rate
+-224	siHardDriveTooSlow	hard drive too slow to record to disk
+-223	siInvalidCompression	invalid compression type
+-222	siNoBufferSpecified	returned by synchronous SPBRecord if nil buffer passed
+-221	siBadSoundInDevice	invalid index passed to SoundInGetIndexedDevice
+-220	siNoSoundInHardware	no Sound Input hardware
+-212	noMoreRealTime	not enough CPU cycles left to add another task
+-210	buffersTooSmall	can not operate in the memory allowed
+-209	channelBusy	the Channel is being used for a PFD already
+-208	badFileFormat	was not type AIFF or was of bad format,corrupt
+-207	notEnoughBufferSpace	could not allocate enough memory
+-206	badFormat	Sound Manager Error Returns
+-205	badChannel	Sound Manager Error Returns
+-204	resProblem	Sound Manager Error Returns
+-203	queueFull	Sound Manager Error Returns
+-201	notEnoughHardwareErr	Sound Manager Error Returns
+-200	noHardwareErr	Sound Manager Error Returns
+-199	mapReadErr	map inconsistent with operation
+-198	resAttrErr	attribute inconsistent with operation
+-197	rmvRefFailed	RmveReference failed
+-196	rmvResFailed	RmveResource failed
+-195	addRefFailed	AddReference failed
+-194	addResFailed	AddResource failed
+-193	resFNotFound	Resource file not found
+-192	resNotFound	Resource not found
+-190	inputOutOfBounds	Offset of Count out of bounds
+-189	writingPastEnd	Writing past end of file
+-188	resourceInMemory	Resource already in memory
+-186	CantDecompress	resource bent ("the bends") - can't decompress a compressed resource
+-185	badExtResource	extended resource has a bad format.
+-157	cDepthErr	invalid pixel depth
+-156	cResErr	invalid resolution for MakeITable
+-155	cDevErr	invalid type of graphics device
+-154	cProtectErr	colorTable entry protection violation
+-153	cRangeErr	range error on colorTable request
+-152	cNoMemErr	failed to allocate memory for structure
+-151	cTempMemErr	failed to allocate memory for temporary structures
+-150	cMatchErr	Color2Index failed to find an index
+-127	hMenuFindErr	could not find HMenu's parent in MenuKey
+-126	mBarNFnd	system error code for MBDF not found
+-125	updPixMemErr	insufficient memory to update a pixmap
+-124	volGoneErr	Server volume has been disconnected.
+-123	wrgVolTypErr	Wrong volume type error [operation not supported for MFS]
+-122	badMovErr	Move into offspring error
+-121	tmwdoErr	No free WDCB available
+-120	dirNFErr	Directory not found
+-117	memLockedErr	trying to move a locked block (MoveHHi)
+-116	memSCErr	Size Check failed
+-115	memBCErr	Block Check failed
+-114	memPCErr	Pointer Check failed
+-113	memAZErr	Address in zone check failed
+-112	memPurErr	trying to purge a locked or non-purgeable block
+-111	memWZErr	WhichZone failed (applied to free block)
+-110	memAdrErr	address was odd; or out of range
+-109	nilHandleErr	Master Pointer was NIL in HandleZone or other
+-108	memFullErr	Not enough room in heap zone
+-102	noTypeErr	No object of that type in scrap
+-100	noScrapErr	No scrap exists error
+-99	memROZWarn	soft error in ROZ
+-98	portNotCf	driver Open error code (parameter RAM not configured for this connection)
+-97	portInUse	driver Open error code (port is in use)
+-96	portNotPwr	serial port not currently powered
+-95	excessCollsns	excessive collisions on write
+-94	lapProtErr	error in attaching/detaching protocol
+-93	noBridgeErr	no network bridge for non-local send
+-92	ddpLenErr	data length too big
+-91	ddpSktErr	error in soket number
+-90	breakRecd	Break received (SCC)
+-89	rcvrErr	SCC receiver error (framing; parity; OR)
+-88	prInitErr	InitUtil found the parameter ram uninitialized
+-87	prWrErr	parameter ram written didn't read-verify
+-86	clkWrErr	time written did not verify
+-85	clkRdErr	unable to read same clock value twice
+-84	firstDskErr	I/O System Errors
+-83	fmt2Err	can't get enough sync
+-82	fmt1Err	can't find sector 0 after track format
+-81	sectNFErr	sector number never found on a track
+-80	seekErr	track number wrong on address mark
+-79	spdAdjErr	unable to correctly adjust disk speed
+-78	twoSideErr	tried to read 2nd side on a 1-sided drive
+-77	initIWMErr	unable to initialize IWM
+-76	tk0BadErr	track 0 detect doesn't change
+-75	cantStepErr	step handshake failed
+-74	wrUnderrun	write underrun occurred
+-73	badDBtSlp	bad data mark bit slip nibbles
+-72	badDCksum	bad data mark checksum
+-71	noDtaMkErr	couldn't find a data mark header
+-70	badBtSlpErr	bad addr mark bit slip nibbles
+-69	badCksmErr	addr mark checksum didn't check
+-68	dataVerErr	read verify compare failed
+-67	noAdrMkErr	couldn't find valid addr mark
+-66	fontSubErr	font substitution occured
+-65	fontNotDeclared	font not declared
+-64	fontDecError	error during font declaration
+-61	wrPermErr	write permissions error
+-60	badMDBErr	bad master directory block
+-59	fsRnErr	file system internal error:during rename the old entry was deleted but could not be restored.
+-58	extFSErr	volume in question belongs to an external fs
+-57	noMacDskErr	not a mac diskette (sig bytes are wrong)
+-56	nsDrvErr	no such drive (tried to mount a bad drive num)
+-55	volOnLinErr	drive volume already on-line at MountVol
+-54	permErr	permissions error (on file open)
+-53	volOffLinErr	volume not on line error (was Ejected)
+-52	gfpErr	get file position error
+-51	rfNumErr	refnum error
+-50	paramErr	error in user parameter list
+-49	opWrErr	file already open with with write permission
+-48	dupFNErr	duplicate filename (rename)
+-47	fBsyErr	File is busy (delete)
+-46	vLckdErr	volume is locked
+-45	fLckdErr	file is locked
+-44	wPrErr	diskette is write protected.
+-43	fnfErr	File not found
+-42	tmfoErr	too many files open
+-41	mFulErr	memory full (open) or file won't fit (load)
+-40	posErr	tried to position to before start of file (r/w)
+-39	eofErr	End of file
+-38	fnOpnErr	File not open
+-37	bdNamErr	there may be no bad names in the final system!
+-36	ioErr	I/O error (bummers)
+-35	nsvErr	no such volume
+-34	dskFulErr	disk full
+-33	dirFulErr	Directory full
+-30	dceExtErr	dce extension error
+-29	unitTblFullErr	unit table has no more entries
+-28	notOpenErr	Couldn't rd/wr/ctl/sts cause driver not opened
+-27	abortErr	IO call aborted by KillIO
+-26	dInstErr	DrvrInstall couldn't find driver in resources
+-25	dRemovErr	tried to remove an open driver
+-24	closErr	I/O System Errors
+-23	openErr	I/O System Errors
+-22	unitEmptyErr	I/O System Errors
+-21	badUnitErr	I/O System Errors
+-20	writErr	I/O System Errors
+-19	readErr	I/O System Errors
+-18	statusErr	I/O System Errors
+-17	controlErr	I/O System Errors
+-13	dsExtensionsDisabled	say ³Extensions Disabled²
+-12	dsHD20Installed	say ³HD20 Startup²
+-11	dsDisassemblerInstalled	say ³Disassembler Installed²
+-10	dsMacsBugInstalled	say ³MacsBug Installed²
+-8	seNoDB	no debugger installed to handle debugger command
+-5	SlpTypeErr	invalid queue element
+-4	unimpErr	unimplemented core routine
+-3	corErr	core routine number out of range
+-2	vTypErr	invalid queue element
+-1	qErr	queue element not found during deletion
+0	tsmComponentNoErr	component result = no error
+1	EPERM	Operation not permitted
+2	ENOENT	No such file or directory
+3	ESRCH	No such process
+4	EINTR	Interrupted system call
+5	EIO	Input/output error
+6	ENXIO	Device not configured
+7	E2BIG	Argument list too long
+8	ENOEXEC	Exec format error
+9	EBADF	Bad file descriptor
+10	ECHILD	No child processes
+11	EDEADLK	Resource deadlock avoided
+12	ENOMEM	Cannot allocate memory
+13	EACCES	Permission denied
+14	EFAULT	Bad address
+15	ENOTBLK	Block device required
+16	EBUSY	Device busy
+17	EEXIST	File exists
+18	EXDEV	Cross-device link
+19	ENODEV	Operation not supported by device
+20	ENOTDIR	Not a directory
+21	EISDIR	Is a directory
+22	EINVAL	Invalid argument
+23	ENFILE	Too many open files in system
+24	EMFILE	Too many open files
+25	ENOTTY	Inappropriate ioctl for device
+26	ETXTBSY	Text file busy
+27	EFBIG	File too large
+28	ENOSPC	No space left on device
+29	ESPIPE	Illegal seek
+30	EROFS	Read-only file system
+31	EMLINK	Too many links
+32	EPIPE	Broken pipe
+33	EDOM	Numerical argument out of domain
+34	ERANGE	Result too large
+35	EAGAIN	Resource temporarily unavailable
+36	EINPROGRESS	Operation now in progress
+37	EALREADY	Operation already in progress
+38	ENOTSOCK	Socket operation on non-socket
+39	EDESTADDRREQ	Destination address required
+40	EMSGSIZE	Message too long
+41	EPROTOTYPE	Protocol wrong type for socket
+42	ENOPROTOOPT	Protocol not available
+43	EPROTONOSUPPORT	Protocol not supported
+44	ESOCKTNOSUPPORT	Socket type not supported
+45	EOPNOTSUPP	Operation not supported on socket
+46	EPFNOSUPPORT	Protocol family not supported
+47	EAFNOSUPPORT	Address family not supported by protocol family
+48	EADDRINUSE	Address already in use
+49	EADDRNOTAVAIL	Can't assign requested address
+50	ENETDOWN	Network is down
+51	ENETUNREACH	Network is unreachable
+52	ENETRESET	Network dropped connection on reset
+53	ECONNABORTED	Software caused connection abort
+54	ECONNRESET	Connection reset by peer
+55	ENOBUFS	No buffer space available
+56	EISCONN	Socket is already connected
+57	ENOTCONN	Socket is not connected
+58	ESHUTDOWN	Can't send after socket shutdown
+59	ETOOMANYREFS	Too many references: can't splice
+60	ETIMEDOUT	Connection timed out
+61	ECONNREFUSED	Connection refused
+62	ELOOP	Too many levels of symbolic links
+63	ENAMETOOLONG	File name too long
+64	EHOSTDOWN	Host is down
+65	EHOSTUNREACH	No route to host
+66	ENOTEMPTY	Directory not empty
+67	EPROCLIM	Too many processes
+68	EUSERS	Too many users
+69	EDQUOT	Disc quota exceeded
+70	ESTALE	Stale NFS file handle
+71	EREMOTE	Too many levels of remote in path
+72	EBADRPC	RPC struct is bad
+73	ERPCMISMATCH	RPC version wrong
+74	EPROGUNAVAIL	RPC prog. not avail
+75	EPROGMISMATCH	Program version wrong
+76	EPROCUNAVAIL	Bad procedure for program
+77	ENOLCK	No locks available
+78	ENOSYS	Function not implemented
+79	EFTYPE	Inappropriate file type or format
diff --git a/Mac/scripts/mkestrres.py b/Mac/scripts/mkestrres.py
index ae9114b..56fec98 100644
--- a/Mac/scripts/mkestrres.py
+++ b/Mac/scripts/mkestrres.py
@@ -1,15 +1,31 @@
-#
-# Create 'Estr' resource from error dictionary
-from Res import *
-import Res
-from Resources import *
-import MacOS
+"""Parse sys/errno.h and Errors.h and create Estr resource"""
+
+import regex
+import macfs
 import string
+import Res
+import os
 
 READ = 1
 WRITE = 2
 smAllScripts = -3
 
+ERRNO_PROG="#define[ \t]+" \
+		   "\([A-Z0-9a-z_]+\)" \
+		   "[ \t]+" \
+		   "\([0-9]+\)" \
+		   "[ \t]*/\*[ \t]*" \
+		   "\(.*\)" \
+		   "[ \t]*\*/"
+		   
+ERRORS_PROG="[ \t]*" \
+			"\([A-Z0-9a-z_]+\)" \
+			"[ \t]*=[ \t]*" \
+			"\([-0-9]+\)" \
+			"[, \t]*/\*[ \t]*" \
+			"\(.*\)" \
+			"[ \t]*\*/"
+
 def Pstring(str):
 	if len(str) > 255:
 		raise ValueError, 'String too large'
@@ -18,45 +34,93 @@
 def writeestr(dst, edict):
 	"""Create Estr resource file given a dictionary of errors."""
 	
-
-	FSpCreateResFile(dst, 'RSED', 'rsrc', smAllScripts)
-	output = FSpOpenResFile(dst, WRITE)
-	UseResFile(output)
+	os.unlink(dst.as_pathname())
+	Res.FSpCreateResFile(dst, 'RSED', 'rsrc', smAllScripts)
+	output = Res.FSpOpenResFile(dst, WRITE)
+	Res.UseResFile(output)
 	for num in edict.keys():
-		res = Resource(Pstring(edict[num]))
+		res = Res.Resource(Pstring(edict[num][0]))
 		res.AddResource('Estr', num, '')
 		res.WriteResource()
-	CloseResFile(output)
+	Res.CloseResFile(output)
 	
-def parsefile(src):
-	fp = open(src)
-	lines = []
-	while 1:
-		x = fp.readline()
-		if not x:
-			break
-		x = x[:-1]
-		words = string.split(x)
-		if x[0] in (' ', '\t'):
-			# continuation line
-			x = string.join(words)
-			lines[-1] = lines[-1] + ' ' + x
-		else:
-			x = string.join(words)
-			lines.append(x)
-	dict = {}
-	for line in lines:
-		words = string.split(line)
-		index = eval(words[0])
-		if dict.has_key(index):
-			print '** Duplicate key:', index
-		x = string.join(words[2:])
-		if not x:
-			x = words[1]
-		dict[index] = x
-	return dict
+def writepython(fp, dict):
+	k = dict.keys()
+	k.sort()
+	for i in k:
+		fp.write("%s\t=\t%d\t#%s\n"%(dict[i][1], i, dict[i][0]))
+	
+
+def parse_errno_h(fp, dict):
+	errno_prog = regex.compile(ERRNO_PROG)
+	for line in fp.readlines():
+		if errno_prog.match(line) > 0:
+			number = string.atoi(errno_prog.group(2))
+			name = errno_prog.group(1)
+			desc = string.strip(errno_prog.group(3))
 			
+			if not dict.has_key(number):
+				dict[number] = desc, name
+			else:
+				print 'DUPLICATE', number
+				print '\t', dict[number]
+				print '\t', (desc, name)
+								
+def parse_errors_h(fp, dict):
+	errno_prog = regex.compile(ERRORS_PROG)
+	for line in fp.readlines():
+		if errno_prog.match(line) > 0:
+			number = string.atoi(errno_prog.group(2))
+			name = errno_prog.group(1)
+			desc = string.strip(errno_prog.group(3))
+			if number > 0: continue
+			
+			if not dict.has_key(number):
+				dict[number] = desc, name
+			else:
+				print 'DUPLICATE', number
+				print '\t', dict[number]
+				print '\t', (desc, name)
+			
+def main():
+	dict = {}
+	fss, ok = macfs.PromptGetFile("Where is errno.h?")
+	if not ok: return
+	fp = open(fss.as_pathname())
+	parse_errno_h(fp, dict)
+	fp.close()
+	
+	fss, ok = macfs.PromptGetFile("Where is Errors.h?")
+	if not ok: return
+	fp = open(fss.as_pathname())
+	parse_errors_h(fp, dict)
+	fp.close()
+	
+	if not dict:
+		return
+		
+	fss, ok = macfs.StandardPutFile("Resource output file?", "errors.rsrc")
+	if ok:
+		writeestr(fss, dict)
+	
+	fss, ok = macfs.StandardPutFile("Python output file?", "macerrors.py")
+	if ok:
+		fp = open(fss.as_pathname(), "w")
+		writepython(fp, dict)
+		fp.close()
+		fss.SetCreatorType('Pyth', 'TEXT')
+
+	fss, ok = macfs.StandardPutFile("Text output file?", "errors.txt")
+	if ok:
+		fp = open(fss.as_pathname(), "w")
+		
+		k = dict.keys()
+		k.sort()
+		for i in k:
+			fp.write("%d\t%s\t%s\n"%(i, dict[i][1], dict[i][0]))
+		fp.close()
+
 	
 if __name__ == '__main__':
-	dict = parsefile('errors.txt')
-	writeestr('errors.rsrc', dict)
+	main()
+