/***************************************
 * fileio - File I/O Functions for C02 *
 *      Non-Functional Template Header *
 ***************************************/

#define DRIVES 0 //Number of Disk Drives
const char drive[];  

#define DISKS  0  //Number of Drives in Disk
const char disk[];  

/* File Open Modes */
#define MWRITE $80 //Open File for Write
#define MREAD  $00 //Open File for Read

/* 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 *
 *           255 = Not Implemented */
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 *
 *           255 = Not Implemented */
char ferror();

/* File Flush                      *
 *   Flush File Output Buffer      *
 * Args: char f - File Channel     *
 * Returns: char e - Error, 0=None *
 *           255 = Not Implemented */
char fflush();

/* File Get Character              *
 * Args: char f - File Channel     *
 *   Read Character from Fie       *
 * Returns: char c - Character     *
 *          char e - Error, 0=None *
 *           255 = Not Implemented */
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   *
 *           255 = Not Implemented   */
char fgets(); 

/* File Load                       *
 *   Loads File into Memory        *
 * Setup: fsname(&filename)        *
 *        fsaddr(address)          *
 * Args: char d - Options | Device *
 * Returns: char e - Error, 0=None *
 *           255 = Not Implemented *
 *          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     *
 *           255 = Not Implemented     */
char fopen();

/* File Put Character               *
 *   Write Character to File        *
 * Args: char c - Character         *
 *       char f - File Channel      *
 * Returns: char e - Error, 0=None  *
 *           255 = Not Implemented  */
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     *
 *           255 = Not Implemented     */
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     *
 *           255 = Not Implemented     */
char fputs();

/* 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     *
 *           255 = Not Implemented     */
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  *
 *           255 = Not Implemented  */
char fsave();

/* File System Init             *
 *   Initialize File System     */
char fsinit();

/* File Set Name              *
 *   Set Filename Address     *
 * Args: int &name - Filename */
 char fsname();

/* 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  *
 * Returns: char e - Error, 0=None  *
 *           255 = Not Implemented  */
char fwrite();


/* End of File                       *
 *   Check for End of File Condition *
 * Args: fp - file pointer           *
 * Returns: EOF Indicator            *
 *          (0 if not at end of file *
 *           255 if not implemented  *
 *           or non-zero EOF value)  */
char feof();
