mirror of
https://github.com/cshepherd/gscifs.git
synced 2024-12-27 01:31:47 +00:00
406 lines
10 KiB
ArmAsm
406 lines
10 KiB
ArmAsm
* File: E16.GSOS
|
|
*
|
|
* These equates can be used with the GSOS.MACS in the MACRO.LIBRARY
|
|
* directory. You can also copy the data structures at the end of this
|
|
* file directly into your own source files.
|
|
*
|
|
*-----------------------------------------------
|
|
* File access - CreateRec, OpenRec access and requestAccess fields
|
|
|
|
readEnable = $0001 ;read enable bit:
|
|
writeEnable = $0002 ;write enable bit:
|
|
backupNeeded = $0020 ;backup needed bit:must be '0' in requestAccess field )
|
|
renameEnable = $0040 ;rename enable bit:
|
|
destroyEnable = $0080 ;read enable bit:
|
|
|
|
* base - > setMark = ...
|
|
|
|
startPlus = $0000 ;base - setMark = displacement
|
|
eofMinus = $0001 ;base - setMark = eof - displacement
|
|
markPlus = $0002 ;base - setMark = mark + displacement
|
|
markMinus = $0003 ;base - setMark = mark - displacement
|
|
|
|
* cachePriority
|
|
|
|
noCache = $0000 ;cachePriority - do not cache blocks invloved in this read
|
|
cache = $0001 ;cachePriority - cache blocks invloved in this read if possible
|
|
|
|
*-----------------------------------------------
|
|
* GS/OS Error codes
|
|
|
|
badSystemCall = $0001 ;bad system call number
|
|
invalidPcount = $0004 ;invalid parameter count
|
|
gsosActive = $0007 ;GS/OS already active
|
|
devNotFound = $0010 ;device not found
|
|
invalidDevNum = $0011 ;invalid device number
|
|
drvrBadReq = $0020 ;bad request or command
|
|
drvrBadCode = $0021 ;bad control or status code
|
|
drvrBadParm = $0022 ;bad call parameter
|
|
drvrNotOpen = $0023 ;character device not open
|
|
drvrPriorOpen = $0024 ;character device already open
|
|
irqTableFull = $0025 ;interrupt table full
|
|
drvrNoResrc = $0026 ;resources not available
|
|
drvrIOError = $0027 ;I/O error
|
|
drvrNoDevice = $0028 ;device not connected
|
|
drvrBusy = $0029 ;call aborted, driver is busy
|
|
drvrWrtProt = $002B ;device is write protected
|
|
drvrBadCount = $002C ;invalid byte count
|
|
drvrBadBlock = $002D ;invalid block address
|
|
drvrDiskSwitch = $002E ;disk has been switched
|
|
drvrOffLine = $002F ;device off line/ no media present
|
|
badPathSyntax = $0040 ;invalid pathname syntax
|
|
invalidRefNum = $0043 ;invalid reference number
|
|
pathNotFound = $0044 ;subdirectory does not exist
|
|
volNotFound = $0045 ;volume not found
|
|
fileNotFound = $0046 ;file not found
|
|
dupPathname = $0047 ;create or rename with existing name
|
|
volumeFull = $0048 ;volume full error
|
|
volDirFull = $0049 ;volume directory full
|
|
badFileFormat = $004A ;version error (incompatible file format)
|
|
badStoreType = $004B ;unsupported (or incorrect) storage type
|
|
eofEncountered = $004C ;end-of-file encountered
|
|
outOfRange = $004D ;position out of range
|
|
invalidAccess = $004E ;access not allowed
|
|
buffTooSmall = $004F ;buffer too small
|
|
fileBusy = $0050 ;file is already open
|
|
dirError = $0051 ;directory error
|
|
unknownVol = $0052 ;unknown volume type
|
|
paramRangeErr = $0053 ;parameter out of range
|
|
outOfMem = $0054 ;out of memory
|
|
dupVolume = $0057 ;duplicate volume name
|
|
notBlockDev = $0058 ;not a block device
|
|
invalidLevel = $0059 ;specifield level outside legal range
|
|
damagedBitMap = $005A ;block number too large
|
|
badPathNames = $005B ;invalid pathnames for ChangePath
|
|
notSystemFile = $005C ;not an executable file
|
|
osUnsupported = $005D ;Operating System not supported
|
|
stackOverflow = $005F ;too many applications on stack
|
|
dataUnavail = $0060 ;Data unavailable
|
|
endOfDir = $0061 ;end of directory has been reached
|
|
invalidClass = $0062 ;invalid FST call class
|
|
resNotFound = $0063 ;file does not contain required resource
|
|
|
|
*-----------------------------------------------
|
|
* FileSysID's
|
|
|
|
proDOS = $0001 ;ProDOS/SOS
|
|
dos33 = $0002 ;DOS 3.3
|
|
dos32 = $0003 ;DOS 3.2
|
|
dos31 = $0003 ;DOS 3.1
|
|
appleIIPascal = $0004 ;Apple II Pascal
|
|
mfs = $0005 ;Macintosh (flat file system)
|
|
hfs = $0006 ;Macintosh (hierarchical file system)
|
|
lisa = $0007 ;Lisa file system
|
|
appleCPM = $0008 ;Apple CP/M
|
|
charFST = $0009 ;Character FST
|
|
msDOS = $000A ;MS/DOS
|
|
highSierra = $000B ;High Sierra
|
|
|
|
* fileSysID (NEW FOR GSOS 5.0)
|
|
|
|
ProDOSFSID = $01 ;ProDOS/SOS
|
|
dos33FSID = $02 ;DOS 3.3
|
|
dos32FSID = $03 ;DOS 3.2
|
|
dos31FSID = $03 ;DOS 3.1
|
|
appleIIPascalFSID = $04 ;Apple II Pascal
|
|
mfsFSID = $05 ;Macintosh (flat file system)
|
|
hfsFSID = $06 ;Macintosh (hierarchical file system)
|
|
lisaFSID = $07 ;Lisa file system
|
|
appleCPMFSID = $08 ;Apple CP/M
|
|
charFSTFSID = $09 ;Character FST
|
|
msDOSFSID = $0A ;MS/DOS
|
|
highSierraFSID = $0B ;High Sierra
|
|
ISO9660FSID = $0C ;ISO 9660
|
|
AppleShare = $0D ;AppleShare
|
|
|
|
* FSTInfo.attributes
|
|
|
|
characterFST = $4000 ;character FST
|
|
ucFST = $8000 ;SCM should upper case pathnames before
|
|
; passing them to the FST
|
|
* QuitRec.flags
|
|
|
|
onStack = $8000 ;place state information about quitting
|
|
; program on the quit return stack
|
|
restartable = $4000 ;the quitting program is capable of being
|
|
; restarted from its dormant memory
|
|
* StorageType
|
|
|
|
seedling = $0001 ;standard file with seedling structure
|
|
standardFile = $01 ;standard file type (no resource fork)
|
|
sapling = $0002 ;standard file with sapling structure
|
|
tree = $0003 ;standard file with tree structure
|
|
pascalRegion = $0004 ;UCSD Pascal region on a partitioned disk
|
|
extendedFile = $0005 ;extended file type (with resource fork)
|
|
directoryFile = $000D ;volume directory or subdirectory file
|
|
|
|
* version
|
|
|
|
minorRelNum = $00FF ;version - minor release number
|
|
majorRelNum = $7F00 ;version - major release number
|
|
finalRel = $8000 ;version - final release
|
|
|
|
isFileExtended = $8000
|
|
|
|
*-----------------------------------------------
|
|
* GSOS Call ID numbers, as is for class '0'
|
|
*
|
|
* 'OR' these numbers with $2000 for class '1'
|
|
* See the macros iGSOS and sGSOS.
|
|
*
|
|
* NOTE: The v4.0 and v5.0 calls are identical with
|
|
* the exception that the APW v5.0 macros have
|
|
* 'GS' appended to the end of each call name.
|
|
|
|
_Create = $0001
|
|
_Destroy = $0002
|
|
_OSShutdown = $2003 ;class '1' only
|
|
_ChangePath = $0004
|
|
_SetFileInfo = $0005
|
|
_GetFileInfo = $0006
|
|
_Volume = $0008
|
|
_SetPrefix = $0009
|
|
_GetPrefix = $000A
|
|
_ClearBackupBit = $000B
|
|
_SetSysPrefs = $200C ;class '1' only
|
|
_Null = $200D ;class '1' only
|
|
_ExpandPath = $200E ;class '1' only
|
|
_GetSysPrefs = $200F ;class '1' only
|
|
_Open = $0010
|
|
_Newline = $0011
|
|
_Read = $0012
|
|
_Write = $0013
|
|
_Close = $0014
|
|
_Flush = $0015
|
|
_SetMark = $0016
|
|
_GetMark = $0017
|
|
_SetEOF = $0018
|
|
_GetEOF = $0019
|
|
_SetLevel = $001A
|
|
_GetLevel = $001B
|
|
_GetDirEntry = $001C
|
|
_BeginSession = $201D ;class '1' only
|
|
_EndSession = $201E ;class '1' only
|
|
_SessionStatus = $201F ;class '1' only
|
|
_GetDevNumber = $0020
|
|
_GetLastDev = $0021
|
|
_ReadBlock = $0022 ;class '0' only
|
|
_WriteBlock = $0023 ;class '0' only
|
|
_Format = $0024
|
|
_EraseDisk = $0025
|
|
_ResetCache = $2026 ;class '1' only
|
|
_GetName = $0027
|
|
_GetBootVol = $0028
|
|
_Quit = $0029
|
|
_GetVersion = $002A
|
|
_GetFSTInfo = $202B ;class '1' only
|
|
_DInfo = $002C
|
|
_DStatus = $202D ;class '1' only
|
|
_DControl = $202E ;class '1' only
|
|
_DRead = $202F ;class '1' only
|
|
_DWrite = $2030 ;class '1' only
|
|
_AllocInterrupt = $0031 ;P16 call
|
|
_BindInt = $2031 ;GS/OS call
|
|
_DeallocInterrupt = $0032 ;P16 call
|
|
_UnbindInt = $2032 ;GS/OS call
|
|
_AddNotifyProc = $2034 ;class '1' only
|
|
_DelNotifyProc = $2035 ;class '1' only
|
|
_DRename = $2036 ;class '1' only
|
|
_GetStdRefNum = $2037 ;class '1' only
|
|
_GetRefNum = $2038 ;class '1' only
|
|
_GetRefInfo = $2039 ;class '1' only
|
|
|
|
|
|
*===============================================
|
|
* Class 1 parameter tables.
|
|
* (partial listing for reference only.)
|
|
* (also refer to the class_1 help file)
|
|
|
|
DUM 0 ; Currently set so the following doesn't
|
|
; generate any code if you include this
|
|
; entire file in your source file with
|
|
; a PUT or USE.
|
|
|
|
ChangePathRec DA 0 ;pCount
|
|
ADRL 0 ;pathname
|
|
ADRL 0 ;newPathname
|
|
|
|
CreateRec DA 0 ;pCount
|
|
ADRL 0 ;pathname
|
|
DA 0 ;access
|
|
DA 0 ;fileType
|
|
ADRL 0 ;auxType
|
|
DA 0 ;storageType
|
|
ADRL 0 ;eof
|
|
ADRL 0 ;resourceEOF
|
|
|
|
DAccessRec DA 0 ;pCount
|
|
DA 0 ;devNum
|
|
DA 0 ;code
|
|
ADRL 0 ;list
|
|
ADRL 0 ;requestCount
|
|
ADRL 0 ;transferCount
|
|
|
|
DevNumRec DA 0 ;pCount
|
|
ADRL 0 ;devName
|
|
DA 0 ;devNum
|
|
|
|
DInfoRec DA 0 ;pCount
|
|
DA 0 ;devNum
|
|
ADRL 0 ;devName
|
|
DA 0 ;characteristics
|
|
ADRL 0 ;totalBlocks
|
|
DA 0 ;slotNum
|
|
DA 0 ;unitNum
|
|
DA 0 ;version
|
|
DA 0 ;deviceID
|
|
DA 0 ;headLink
|
|
DA 0 ;forwardLink
|
|
|
|
DIORec DA 0 ;pCount
|
|
DA 0 ;devNum
|
|
ADRL 0 ;buffer
|
|
ADRL 0 ;requestCount
|
|
ADRL 0 ;startingBlock
|
|
DA 0 ;blockSize
|
|
ADRL 0 ;transferCount
|
|
|
|
DirEntryRec DA 0 ;pCount
|
|
DA 0 ;refNum
|
|
DA 0 ;flags
|
|
DA 0 ;base
|
|
DA 0 ;displacement
|
|
ADRL 0 ;name
|
|
DA 0 ;entryNum
|
|
DA 0 ;fileType
|
|
ADRL 0 ;eof
|
|
ADRL 0 ;blockCount
|
|
DS 8 ;createDateTime
|
|
DS 8 ;modDateTime
|
|
DA 0 ;access
|
|
ADRL 0 ;auxType
|
|
DA 0 ;fileSysID
|
|
ADRL 0 ;optionList
|
|
ADRL 0 ;resourceEof
|
|
ADRL 0 ;resourceBlocks
|
|
|
|
ExpandPathRec DA 0 ;pCount
|
|
ADRL 0 ;inputPath
|
|
ADRL 0 ;outputPath
|
|
DA 0 ;flags
|
|
|
|
FileInfoRec DA 0 ;pCount
|
|
ADRL 0 ;pathname
|
|
DA 0 ;access
|
|
DA 0 ;fileType
|
|
ADRL 0 ;auxType
|
|
DA 0 ;null/storageType
|
|
DS 8 ;createDateTime
|
|
DS 8 ;modDateTime
|
|
ADRL 0 ;optionList
|
|
ADRL 0 ;null/eof
|
|
ADRL 0 ;null/blocksUsed
|
|
ADRL 0 ;null/resourceEOF
|
|
ADRL 0 ;null/resourceBlocks
|
|
|
|
FormatRec DA 0 ;pCount
|
|
ADRL 0 ;devName
|
|
ADRL 0 ;volName
|
|
DA 0 ;fileSysID
|
|
|
|
FSTInfoRec DA 0 ;pCount
|
|
DA 0 ;fstNum
|
|
DA 0 ;fileSysId
|
|
ADRL 0 ;fstName
|
|
DA 0 ;version
|
|
DA 0 ;attributes
|
|
DA 0 ;blockSize
|
|
ADRL 0 ;maxVolSize
|
|
ADRL 0 ;maxFileSize
|
|
|
|
InterruptRec DA 0 ;pCount
|
|
DA 0 ;intNum
|
|
DA 0 ;vrn
|
|
ADRL 0 ;intCode
|
|
|
|
IORec DA 0 ;pCount
|
|
DA 0 ;refNum
|
|
ADRL 0 ;dataBuffer
|
|
ADRL 0 ;requestCount
|
|
ADRL 0 ;transferCount
|
|
DA 0 ;cachePriority
|
|
|
|
LevelRec DA 0 ;pCount
|
|
DA 0 ;level
|
|
|
|
NameRec DA 0 ;pCount
|
|
ADRL 0 ;pathname
|
|
|
|
NewlineRec DA 0 ;pCount
|
|
DA 0 ;refNum
|
|
DA 0 ;enableMask
|
|
DA 0 ;numChars
|
|
ADRL 0 ;newlineTable
|
|
|
|
OpenRec DA 0 ;pCount
|
|
DA 0 ;refNum
|
|
ADRL 0 ;pathname
|
|
DA 0 ;requestAccess
|
|
DA 0 ;resourceNumber
|
|
DA 0 ;access
|
|
DA 0 ;fileType
|
|
ADRL 0 ;auxType
|
|
DA 0 ;storageType
|
|
DS 8 ;createDateTime
|
|
DS 8 ;modDateTime
|
|
ADRL 0 ;optionList
|
|
ADRL 0 ;eof
|
|
ADRL 0 ;blocksUsed
|
|
ADRL 0 ;resourceEOF
|
|
ADRL 0 ;resourceBlocks
|
|
|
|
PositionRec DA 0 ;pCount
|
|
DA 0 ;refNum
|
|
ADRL 0 ;position
|
|
|
|
PrefixRec DA 0 ;pCount
|
|
DA 0 ;prefixNum
|
|
ADRL 0 ;prefix
|
|
|
|
QuitRec DA 0 ;pCount
|
|
ADRL 0 ;pathname
|
|
DA 0 ;flags
|
|
|
|
RefNumRec DA 0 ;pCount
|
|
DA 0 ;refNum
|
|
|
|
SetPositionRec DA 0 ;pCount
|
|
DA 0 ;refNum
|
|
DA 0 ;base
|
|
ADRL 0 ;displacement
|
|
|
|
ShutdownRec DA 0 ;pCount
|
|
DA 0 ;flag
|
|
|
|
TimeRec DB 0 ;second
|
|
DB 0 ;minute
|
|
DB 0 ;hour
|
|
DB 0 ;year
|
|
DB 0 ;day
|
|
DB 0 ;month
|
|
DB 0 ;extra
|
|
DB 0 ;weekDay
|
|
|
|
VersionRec DA 0 ;pCount
|
|
DA 0 ;version
|
|
|
|
VolumeRec DA 0 ;pCount
|
|
ADRL 0 ;devName
|
|
ADRL 0 ;volName
|
|
ADRL 0 ;totalBlocks
|
|
ADRL 0 ;freeBlocks
|
|
DA 0 ;fileSysID
|
|
DA 0 ;blockSize
|
|
|
|
DEND ; End of dummy section...
|