CBM directory routines by Josef Soucek

git-svn-id: svn://svn.cc65.org/cc65/trunk@1920 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz
2003-02-02 13:18:40 +00:00
parent 70e920f84c
commit 90f47ed007
4 changed files with 194 additions and 2 deletions

View File

@@ -110,6 +110,36 @@ extern unsigned char _filetype; /* Default 'u' */
/*****************************************************************************/
/* Definitions for directory reading functions */
/*****************************************************************************/
/* CBM FILE TYPES */
#define CBM_T_DEL 0
#define CBM_T_SEQ 1
#define CBM_T_PRG 2
#define CBM_T_USR 3
#define CBM_T_REL 4
#define CBM_T_CBM 5 /* 1581 sub-partition */
#define CBM_T_DIR 6 /* IDE64 and CMD sub-directory */
#define CBM_T_VRP 8 /* Vorpal fast-loadable format */
#define CBM_T_OTHER 5 /* Other file-types not yet defined */
/* CBM FILE ACCESS */
#define CBM_A_RO 1 /* Read only */
#define CBM_A_RW 3 /* Read, Write */
struct cbm_dirent {
char name[17]; /* File name in PETSCII, limited to 16 chars */
unsigned int size; /* Size in 256B blocks */
unsigned char type;
unsigned char access;
};
/*****************************************************************************/
/* Machine info */
/*****************************************************************************/
@@ -219,9 +249,23 @@ int __fastcall__ cbm_read (unsigned char lfn, void* buffer, unsigned int size);
int __fastcall__ cbm_write (unsigned char lfn, void* buffer, unsigned int size);
/* Writes up to "size" bytes from "buffer" to a file.
* Returns the number of actually written bytes or -1 in case of an error.
* _oserror contains an errorcode then (see table below).
* _oserror contains an errorcode then (see above table).
*/
unsigned char __fastcall__ cbm_opendir (unsigned char lfn, unsigned char device);
/* Opens directory listing.
* Returns 0 if opening directory was successful,
* othervise errorcode corresponding to cbm_open()
*/
unsigned char __fastcall__ cbm_readdir (unsigned char lfn, struct cbm_dirent* l_dirent);
/* Reads one directory line into cbm_dirent structure.
* Returns 0 if reading directory line was successful.
* Returns 'true' if reading directory failed or no more files to read.
*/
void __fastcall__ cbm_closedir (unsigned char lfn);
/* Closes directory by cbm_close (unsigned char lfn) */