|
|
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);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.