; File:  E16.ProDOS
;
;
; Copyright Apple Computer, Inc. 1986-90
; All Rights Reserved
;
;
invalidCallNum EQU $0001  ; invalid call number
unclaimedIntErr EQU $01  ; fatal error - unclaimed interrupt
badPBlockPtr EQU $05  ; call pointer out of bounds
pdosActiveErr EQU $06  ; ProDOS is active
pdosBusyErr EQU $07  ; ProDOS is busy
vcbUnusable EQU $0A  ; fatal error - VCB unusable
fcbUnusable EQU $0B  ; fatal error - FCB unusable
badBlockZero EQU $0C  ; fatal error - block zero allocated illegally
shdwInterruptErr EQU $0D  ; fatal error - interrupt occured while I/O shadowing off
    IF &FINDSYM(&SYSGLOBAL,'DEVNOTFOUND')=0 AND &FINDSYM(&SYSGLOBAL,'devnotfound')=0 THEN  ; device not found
devNotFound EQU $10
    ENDIF
badDevRefNum EQU $11  ; invalid device reference number
osVersionErr EQU $11  ; Wrong OS version
badReqCode EQU $20  ; invalid request code
intTableFull EQU $25  ; interrupt table full
invalidOperation EQU $26  ; invalid operation
ioError EQU $27  ; I/O error
noDevConnect EQU $28  ; no device connected
writeProtectErr EQU $2B  ; write protect error
diskSwitchErr EQU $2E  ; disk switched error
badPathname EQU $40  ; invalid pathname syntax
fcbFullErr EQU $42  ; FCB full error
badFileRefNum EQU $43  ; invalid file reference number
    IF &FINDSYM(&SYSGLOBAL,'PATHNOTFOUND')=0 AND &FINDSYM(&SYSGLOBAL,'pathnotfound')=0 THEN  ; path not found
pathNotFound EQU $44
    ENDIF
volumeNotFound EQU $45  ; volume not found
    IF &FINDSYM(&SYSGLOBAL,'FILENOTFOUND')=0 AND &FINDSYM(&SYSGLOBAL,'filenotfound')=0 THEN  ; file not found
fileNotFound EQU $46
    ENDIF
dupFileName EQU $47  ; duplicate file name
volumeFullErr EQU $48  ; volume full error
dirFullErr EQU $49  ; directory full error
versionErr EQU $4A  ; version error (incompatible file format)
    IF &FINDSYM(&SYSGLOBAL,'BADSTORETYPE')=0 AND &FINDSYM(&SYSGLOBAL,'badstoretype')=0 THEN  ; unsupported (or incorrect) storage type
badStoreType EQU $4B
    ENDIF
    IF &FINDSYM(&SYSGLOBAL,'EOFENCOUNTERED')=0 AND &FINDSYM(&SYSGLOBAL,'eofencountered')=0 THEN  ; end-of-file encountered
eofEncountered EQU $4C
    ENDIF
positionRangeErr EQU $4D  ; position out of range
accessErr EQU $4E  ; access not allowed
fileOpenErr EQU $50  ; file is open
dirDamaged EQU $51  ; directory structure is damaged
badVolType EQU $52  ; unsupported volume type
    IF &FINDSYM(&SYSGLOBAL,'PARAMRANGEERR')=0 AND &FINDSYM(&SYSGLOBAL,'paramrangeerr')=0 THEN  ; parameter out of range
paramRangeErr EQU $53
    ENDIF
memoryFullErr EQU $54  ; out of memory
vcbFullErr EQU $55  ; VCB full error
dupVolumeErr EQU $57  ; duplicate volume error
notBlkDevErr EQU $58  ; not a blocked device
    IF &FINDSYM(&SYSGLOBAL,'INVALIDLEVEL')=0 AND &FINDSYM(&SYSGLOBAL,'invalidlevel')=0 THEN  ; invalid level
invalidLevel EQU $59
    ENDIF
blkNumRangeErr EQU $5A  ; block number out of range
notSameVolErr EQU $5B  ; different volumes found on ChangePath call
notExecSysFile EQU $5C  ; not an executable system file
osUnavailable EQU $5D  ; Operating System/file system not available
deallocateRamErr EQU $5E  ; Cannot deallocate /RAM
    IF &FINDSYM(&SYSGLOBAL,'STACKOVERFLOW')=0 AND &FINDSYM(&SYSGLOBAL,'stackoverflow')=0 THEN  ; Return stack overflow
stackOverflow EQU $5F
    ENDIF
dataUnavailable EQU $60  ; Data unavailable
endofDirectory EQU $0061
P_READ_ENABLE EQU $01
P_WRITE_ENABLE EQU $02
P_DESTROY_ENABLE EQU $80
P_RENAME_ENABLE EQU $40
; offset constants for BlockRec
oblockDevNum EQU 0
oblockDataBuffer EQU 2
oblockNum EQU 6
; offset constants for DevNumRec
odevName EQU 0
odevNum EQU 4
; offset constants for DInfoRec
odidevNum EQU 0
odidevName EQU 2
; offset constants for DirEntryRec
oderefNum EQU 0
odeflags EQU 2
odebase EQU 4
odedisplacement EQU 6
odenameBuffer EQU 8
odeentryNum EQU 12
odefileType EQU 14
odeendOfFile EQU 16
odeblockCount EQU 20
odecreateTime EQU 24
odemodTime EQU 32
odeaccess EQU 40
odeauxType EQU 42
odefileSysID EQU 46
; offset constants for EOFRec
oeofRefNum EQU 0
oeofPosition EQU 2
; offset constants for FileIORec
ofileRefNum EQU 0
odataBuffer EQU 2
orequestCount EQU 6
otransferCount EQU 10
; offset constants for FileRec
ofrpathname EQU 0
ofrfAccess EQU 4
ofrfileType EQU 6
ofrauxType EQU 8
ofrstorageType EQU 12
ofrcreateDate EQU 14
ofrcreateTime EQU 16
ofrmodDate EQU 18
ofrmodTime EQU 20
ofrblocksUsed EQU 22
; offset constants for EraseDiskRec
;odevName EQU 0
ovolName EQU 4
ofileSysID EQU 8
; offset constants for InterruptRec
ointNum EQU 0
ointCode EQU 2
; offset constants for MarkRec
omarkRefNum EQU 0
oposition EQU 2
; offset constants for NewLineRec
onewLRefNum EQU 0
oenableMask EQU 2
onewlineChar EQU 4
; offset constants for OpenRec
oopenRefNum EQU 0
oopenPathname EQU 2
oioBuffer EQU 6
; offset constants for PathNameRec
;opathname EQU 0
onewPathname EQU 4
; offset constants for PrefixRec
oprefixNum EQU 0
oprefix EQU 2
; offset constants for QuitRec
oqrquitPathname EQU 0
oqrflags EQU 4
; offset constants for VolumeRec
ovrdeviceName EQU 0
ovrvolName EQU 4
ovrtotalBlocks EQU 8
ovrfreeBlocks EQU 12
ovrfileSysID EQU 16
