home *** CD-ROM | disk | FTP | other *** search
- ; Standard assembler header for Amiga DOS on the MC68000
-
- IFND LIBRARIES_DOS_I@
- LIBRARIES_DOS_I@ = 1
-
- ; IFND EXEC_TYPES_I@
- ; INCLUDE "exec/types.i"
- ; ENDIF
-
-
- DOSNAME MACRO
- DC.B 'dos.library',0
- ENDM
-
- ; Predefined Amiga DOS global constants
-
- ; Mode parameter to Open()
- MODE_OLDFILE EQU 1005 ; Open existing file read/write
- ; ; positioned at beginning of file.
- MODE_NEWFILE EQU 1006 ; Open freshly created file (delete
- ; ; old file) read/write
-
- ; Relative position to Seek()
- OFFSET_BEGINNING EQU -1 ; relative to Beginning Of File
- OFFSET_CURRENT EQU 0 ; relative to Current file position
- OFFSET_END EQU 1 ; relative to End Of File
-
- OFFSET_BEGINING EQU OFFSET_BEGINNING ; Ancient compatibility
-
- BITSPERBYTE EQU 8
- BYTESPERLONG EQU 4
- BITSPERLONG EQU 32
- MAXINT EQU $7FFFFFFF
- MININT EQU $80000000
-
- ; Passed as type to Lock()
- SHARED_LOCK EQU -2 ; File is readable by others
- ACCESS_READ EQU -2 ; Synonym
- EXCLUSIVE_LOCK EQU -1 ; No other access allowed
- ACCESS_WRITE EQU -1 ; Synonym
-
-
- STRUCTURE DateStamp,0
- LONG ds_Days ; Number of days since Jan. 1, 1978
- LONG ds_Minute ; Number of minutes past midnight
- LONG ds_Tick ; Number of ticks past minute
- LABEL ds_SIZEOF ; DateStamp
- TICKS_PER_SECOND EQU 50 ; Number of ticks in one second
-
- ; Returned by Examine() and ExInfo()
- STRUCTURE FileInfoBlock,0
- LONG fib_DiskKey
- LONG fib_DirEntryType ; Type of Directory. If < 0, then a plain file.
- ; If > 0 a directory
- STRUCT fib_FileName,108 ; Null terminated. Max 30 chars used for now
- LONG fib_Protection ; bit mask of protection, rwxd are 3-0.
- LONG fib_EntryType
- LONG fib_Size ; Number of bytes in file
- LONG fib_NumBlocks ; Number of blocks in file
- STRUCT fib_DateStamp,ds_SIZEOF ; Date file last changed.
- STRUCT fib_Comment,116 ; Null terminated. Comment associated with file
- LABEL fib_SIZEOF ; FileInfoBlock
-
- ; FIB stands for FileInfoBlock
- ; FIBB are bit definitions, FIBF are field definitions
- ; BITDEF FIB,ARCHIVE,4 ; cleared whenever file is changed
- FIBB_ARCHIVE = 4 ; cleared whenever file is changed
- FIBF_ARCHIVE = 1<<4 ; cleared whenever file is changed
- ; BITDEF FIB,READ,3 ; ignored by the system
- FIBB_READ = 3 ; ignored by the system
- FIBF_READ = 1<<3 ; ignored by the system
- ; BITDEF FIB,WRITE,2 ; ignored by the system
- FIBB_WRITE = 2 ; ignored by the system
- FIBF_WRITE = 1<<2 ; ignored by the system
- ; BITDEF FIB,EXECUTE,1 ; ignored by the system
- FIBB_EXECUTE = 1 ; ignored by the system
- FIBF_EXECUTE = 1<<1 ; ignored by the system
- ; BITDEF FIB,DELETE,0 ; prevent file from being deleted
- FIBB_DELETE = 0 ; prevent file from being deleted
- FIBF_DELETE = 1<<0 ; prevent file from being deleted
-
-
- ; All BCPL data must be long word aligned. BCPL pointers are the long word
- ; address (i.e byte address divided by 4 (>>2))
-
- ; Macro to indicate BCPL pointers
- BPTR MACRO $\1 ; Long word pointer
- LONG \1
- ENDM
- BSTR MACRO $\1 ; Long word pointer to BCPL string.
- LONG \1
- ENDM
-
- ; #define BADDR( bptr ) (bptr << 2) ; Convert BPTR to byte addressed pointer
-
- ; BCPL strings have a length in the first byte and then the characters.
- ; For example: s[0]=3 s[1]=S s[2]=Y s[3]=S
-
- ; returned by Info()
- STRUCTURE InfoData,0
- LONG id_NumSoftErrors ; number of soft errors on disk
- LONG id_UnitNumber ; Which unit disk is (was) mounted on
- LONG id_DiskState ; See defines below
- LONG id_NumBlocks ; Number of blocks on disk
- LONG id_NumBlocksUsed ; Number of block in use
- LONG id_BytesPerBlock
- LONG id_DiskType ; Disk Type code
- BPTR id_VolumeNode ; BCPL pointer to volume node
- LONG id_InUse ; Flag, zero if not in use
- LABEL id_SIZEOF ; InfoData
-
- ; ID stands for InfoData
- ; Disk states
- ID_WRITE_PROTECTED EQU 80 ; Disk is write protected
- ID_VALIDATING EQU 81 ; Disk is currently being validated
- ID_VALIDATED EQU 82 ; Disk is consistent and writeable
- ; Disk types
- ID_NO_DISK_PRESENT EQU -1
- ID_UNREADABLE_DISK EQU ('B'<<24)|('A'<<16)|('D'<<8)
- ID_NOT_REALLY_DOS EQU ('N'<<24)|('D'<<16)|('O'<<8)|('S')
- ID_DOS_DISK EQU ('D'<<24)|('O'<<16)|('S'<<8)
- ID_KICKSTART_DISK EQU ('K'<<24)|('I'<<16)|('C'<<8)|('K')
-
- ; Errors from IoErr(), etc.
- ERROR_NO_FREE_STORE EQU 103
- ERROR_TASK_TABLE_FULL EQU 105
- ERROR_LINE_TOO_LONG EQU 120
- ERROR_FILE_NOT_OBJECT EQU 121
- ERROR_INVALID_RESIDENT_LIBRARY EQU 122
- ERROR_OBJECT_IN_USE EQU 202
- ERROR_OBJECT_EXISTS EQU 203
- ERROR_OBJECT_NOT_FOUND EQU 205
- ERROR_ACTION_NOT_KNOWN EQU 209
- ERROR_INVALID_COMPONENT_NAME EQU 210
- ERROR_INVALID_LOCK EQU 211
- ERROR_OBJECT_WRONG_TYPE EQU 212
- ERROR_DISK_NOT_VALIDATED EQU 213
- ERROR_DISK_WRITE_PROTECTED EQU 214
- ERROR_RENAME_ACROSS_DEVICES EQU 215
- ERROR_DIRECTORY_NOT_EMPTY EQU 216
- ERROR_DEVICE_NOT_MOUNTED EQU 218
- ERROR_SEEK_ERROR EQU 219
- ERROR_COMMENT_TOO_BIG EQU 220
- ERROR_DISK_FULL EQU 221
- ERROR_DELETE_PROTECTED EQU 222
- ERROR_WRITE_PROTECTED EQU 223
- ERROR_READ_PROTECTED EQU 224
- ERROR_NOT_A_DOS_DISK EQU 225
- ERROR_NO_DISK EQU 226
- ERROR_NO_MORE_ENTRIES EQU 232
-
- ; These are the return codes used by convention by AmigaDOS commands
- ; See FAILAT and IF for relvance to EXECUTE files
- RETURN_OK EQU 0 ; No problems, success
- RETURN_WARN EQU 5 ; A warning only
- RETURN_ERROR EQU 10 ; Something wrong
- RETURN_FAIL EQU 20 ; Complete or severe failure
-
- ; Bit numbers that signal you that a user has issued a break
- ; BITDEF SIGBREAK,CTRL_C,12
- SIGBREAKB_CTRL_C = 12
- SIGBREAKF_CTRL_C = 1<<12
- ; BITDEF SIGBREAK,CTRL_D,13
- SIGBREAKB_CTRL_D = 13
- SIGBREAKF_CTRL_D = 1<<13
- ; BITDEF SIGBREAK,CTRL_E,14
- SIGBREAKB_CTRL_E = 14
- SIGBREAKF_CTRL_E = 1<<14
- ; BITDEF SIGBREAK,CTRL_F,15
- SIGBREAKB_CTRL_F = 15
- SIGBREAKF_CTRL_F = 1<<15
-
- ENDIF
- END
-