Annotation of hatari/src/includes/gemdos.h, revision 1.1

1.1     ! root        1: /*
        !             2:   Hatari
        !             3: */
        !             4: 
        !             5: /*
        !             6:   GEMDOS error codes, See 'The Atari Compendium' D.3
        !             7: */
        !             8: #define GEMDOS_EOK      0    // OK
        !             9: #define GEMDOS_ERROR   -1    // Generic error
        !            10: #define GEMDOS_EDRVNR  -2    // Drive not ready
        !            11: #define GEMDOS_EUNCMD  -3    // Unknown command
        !            12: #define GEMDOS_E_CRC   -4    // CRC error
        !            13: #define GEMDOS_EBADRQ  -5    // Bad request
        !            14: #define GEMDOS_E_SEEK  -6    // Seek error
        !            15: #define GEMDOS_EMEDIA  -7    // Unknown media
        !            16: #define GEMDOS_ESECNF  -8    // Sector not found
        !            17: #define GEMDOS_EPAPER  -9    // Out of paper
        !            18: #define GEMDOS_EWRITF  -10   // Write fault
        !            19: #define GEMDOS_EREADF  -11   // Read fault
        !            20: #define GEMDOS_EWRPRO  -12   // Device is write protected
        !            21: #define GEMDOS_E_CHNG  -14   // Media change detected
        !            22: #define GEMDOS_EUNDEV  -15   // Unknown device
        !            23: #define GEMDOS_EINVFN  -32   // Invalid function
        !            24: #define GEMDOS_EFILNF  -33   // File not found
        !            25: #define GEMDOS_EPTHNF  -34   // Path not found
        !            26: #define GEMDOS_ENHNDL  -35   // No more handles
        !            27: #define GEMDOS_EACCDN  -36   // Access denied
        !            28: #define GEMDOS_EIHNDL  -37   // Invalid handle
        !            29: #define GEMDOS_ENSMEM  -39   // Insufficient memory
        !            30: #define GEMDOS_EIMBA   -40   // Invalid memory block address
        !            31: #define GEMDOS_EDRIVE  -46   // Invalid drive specification
        !            32: #define GEMDOS_ENSAME  -48   // Cross device rename
        !            33: #define GEMDOS_ENMFIL  -49   // No more files
        !            34: #define GEMDOS_ELOCKED -58   // Record is already locked
        !            35: #define GEMDOS_ENSLOCK -59   // Invalid lock removal request
        !            36: #define GEMDOS_ERANGE  -64   // Range error
        !            37: #define GEMDOS_EINTRN  -65   // Internal error
        !            38: #define GEMDOS_EPLFMT  -66   // Invalid program load format
        !            39: #define GEMDOS_EGSBF   -67   // Memory block growth failure
        !            40: #define GEMDOS_ELOOP   -80   // Too many symbolic links
        !            41: #define GEMDOS_EMOUNT  -200  // Mount point crossed (indicator)
        !            42: 
        !            43: /*
        !            44:   GemDOS file attributes
        !            45: */
        !            46: #define GEMDOS_FILE_ATTRIB_READONLY      0x01
        !            47: #define GEMDOS_FILE_ATTRIB_HIDDEN        0x02
        !            48: #define GEMDOS_FILE_ATTRIB_SYSTEM_FILE   0x04
        !            49: #define GEMDOS_FILE_ATTRIB_VOLUME_LABEL  0x08
        !            50: #define GEMDOS_FILE_ATTRIB_SUBDIRECTORY  0x10
        !            51: #define GEMDOS_FILE_ATTRIB_WRITECLOSE    0x20
        !            52: 
        !            53: /*
        !            54:   Disc Tranfer Address (DTA)
        !            55: */
        !            56: #define TOS_NAMELEN  14
        !            57: 
        !            58: //typedef struct {
        !            59: //  HANDLE FileHandle;
        !            60: //  WIN32_FIND_DATA FindFileData;
        !            61: //} INTERNAL_DTA;
        !            62: 
        !            63: typedef struct {
        !            64:   unsigned char index[2];
        !            65:   unsigned char magic[4];
        !            66:   char dta_pat[TOS_NAMELEN];
        !            67:   char dta_sattrib;
        !            68:   char dta_attrib;
        !            69:   unsigned char dta_time[2];
        !            70:   unsigned char dta_date[2];
        !            71:   unsigned char dta_size[4];
        !            72:   char dta_name[TOS_NAMELEN];
        !            73: } DTA;
        !            74: #define DTA_MAGIC_NUMBER  0x12983476
        !            75: #define MAX_DTAS_FILES    256      // Must be ^2
        !            76: 
        !            77: //typedef struct {
        !            78: //  HANDLE FileHandle;
        !            79: //  BOOL bUsed;
        !            80: //} FILE_HANDLE;
        !            81: 
        !            82: #define  BASE_FILEHANDLE      64    // Our emulation handles - MUST not be valid TOS ones, but MUST be <256
        !            83: #define  MAX_FILE_HANDLES    32     // We can allow 32 files open at once
        !            84: 
        !            85: // DateTime
        !            86: typedef struct {
        !            87:   unsigned hour:5;
        !            88:   unsigned minute:6;
        !            89:   unsigned second:5;
        !            90:   unsigned year:7;
        !            91:   unsigned month:4;
        !            92:   unsigned day:5;
        !            93: } DATETIME;
        !            94: 
        !            95: #define  ISHARDDRIVE(Drive)  (Drive!=-1)
        !            96: 
        !            97: extern BOOL bInitGemDOS;
        !            98: extern unsigned short int CurrentDrive;
        !            99: 
        !           100: extern void GemDOS_Init(void);
        !           101: extern void GemDOS_Reset(void);
        !           102: extern void GemDOS_MemorySnapShot_Capture(BOOL bSave);
        !           103: extern void GemDOS_CreateHardDriveFileName(int Drive,char *pszFileName,char *pszDestName);
        !           104: extern BOOL GemDOS(void);
        !           105: extern void GemDOS_OpCode(void);
        !           106: extern void GemDOS_RunOldOpCode(void);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.