Annotation of frontvm/hardware/hostcall.h, revision 1.1

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

unix.superglobalmegacorp.com

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