Annotation of hatari/src/includes/gemdos.h, revision 1.1.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.