/********************************************************* * fileio - Standard File Functions for run6502 emulator * *********************************************************/ #define DRIVES 26 //Number of Disk Drives const char drive[]; //Disk Drives #define DISKS 1 //Number of Drives in Disk const char disk[]; /* File Open Modes */ #define MREAD $00 //Open File for Read #define MWRITE $40 //Open File for Write #define MAPPND $80 //Open File for Append #define MRECRD $C0 //Open File to Read/Write Records /* File Open Types */ #define TTEXT $00 //Text File #define TBNRY $20 //Binary File /* File Load Modes */ #define MRELCT $00 //Relocate (Load at Specified Address) #define MABSLT $80 //Absolute (Load at Address in File Header) /* File Close * * Closes File Opened on Channel * * Args: char f - File Channel * * Returns: char e - Error (0=None) */ char fclose(); /* End of File * * Check for End of File Condition * * Args: char f - File Channel * * Returns: char e = EOF Indicator * * (0 if not at end of file * * 255 if at end of file * * or non-zero Error code) */ char feof(); /* File Error * * Check File Error Indicator * * Args: char c - channel * * int &s - error msg buffer * * Returns: char l - Last Error * * char e - Error (0=None) */ char ferror(); /* File Flush * * Flush File Output Buffer * * Args: char f - File Channel * * Returns: char status (0=Succes) * * char e - Error (0=None) */ char fflush(); /* File Get Character * * Args: char f - File Channel * * Read Character from File * * Returns: char c - Character * * char e - Error (0=None) */ char fgetc(); /* File Get String * * Read line of up to 128 * * characters from file * * Args: char f - File Channel * * int &s - String to Read * * Returns: char n - Characters Read * * char e - Error (0=None) */ char fgets(); /* File Get Word * * Args: char f - File Channel * * Read Integer from File * * Returns: char e - Error (0=None) * * int w - Word */ char fgetc(); /* File Load * * Loads File into Memory * * Setup: fsname(&filename) * * fsaddr(address) * * Args: char d - Options | Device * * Returns: char e - Error (0=None) * * int la - Load Address */ char fload(); /* File Open * * Open Specified File * * Args: char d - Options | Device * ^ int &n - Filename * * Returns: char c - Channel (0=Error) * char e - Error (0=None) */ char fopen(); /* File Put Character * * Write Character to File * * Args: char c - Character * * char f - File Channel * * Returns: char w - Character Written * * char e - Error (0=None) */ char fputc(); /* File Put Line * * Write string followed by * * newline to file * * Args: char f - File Channel * * int &s - String to Write * * Returns: char n - Characters Written * * char e - Error (0=None) */ char fputln(); /* File Put String * * Writes up to 128 characters * * of string to file * * Args: char f - File Channel * * int &s - String to Write * * Returns: char n - Characters Written * * char e - Error (0=None) */ char fputs(); /* File Put Word * * Writes up to 128 characters * * of string to file * * Args: char f - File Channel * * int w - Word to Write * * Returns: char e - Error (255=EOF) * * int r - Word Written */ char fputw(); /* File Read * * Read up to n bytes from file * * Setup: fsaddr(&array) * * Args: char f - File Channel * * char n - Number of Bytes * * Returns: char r - Bytes Read * * char e - Error (0=None) */ char fread(); /* File Set Address * * Set Buffer or Start Address * * Args: int addr - Address */ char fsaddr(); /* File Save * * Save File from Memory * * Setup: fsname(&filename) * * fsaddr(start) * * Args: char d - Options | Device * * int end - End Address * * Returns: char e - Error (0=None) */ char fsave(); /* File System Command * * Execute File Operation * * Args: char cmd - Command Code * * params - Parameter(s) * * Returns: char cmd - Command * * char err - Error * * char res - Result */ char fscmd(); /* File Seek * * Move to Position in File * * Args: char f - File Channel * * int p - Position in File * * Returns: char e - Error (0=None) */ char fseek(); /* File System Init * * Initialize File System */ char fsinit(); /* File Set Name * * Set Filename Address * * Args: int &name - Filename */ char fsname(); /* File Tell * * Get Position in File * * Args: char f - File Channel * * Returns: char e - Error (0=None) * * int r - Position * * $FFFF = Failure */ char ftell(); /* File Write * * Write n nytes to file * * Setup: fsaddr(&array) * * Args: char n - Number of Bytes * * char f - File Channel * * Returns: char n - Bytes Written * * char e - Error (0=None) */ char fwrite(); /* Rewind file * * Move to Beginning of File * * Args: char f - File Channel * * Returns: char e - Error (0=None) */ char rewind();