dir seeking

This commit is contained in:
rumbledethumps
2025-10-15 14:12:12 -07:00
parent e6c138dc03
commit f744f0b8a0
7 changed files with 35 additions and 14 deletions

View File

@@ -133,14 +133,14 @@ long __fastcall__ ria_call_long (unsigned char op);
/* C API for the operating system. */
typedef struct {
unsigned long fsize; /* File size (invalid for directory) */
unsigned fdate; /* Date of file modification or directory creation */
unsigned ftime; /* Time of file modification or directory creation */
unsigned crdate; /* Date of object createion */
unsigned crtime; /* Time of object createion */
unsigned char fattrib; /* Object attribute */
char altname[12 + 1]; /* Alternative object name */
char fname[255 + 1]; /* Primary object name */
unsigned long fsize;
unsigned fdate;
unsigned ftime;
unsigned crdate;
unsigned crtime;
unsigned char fattrib;
char altname[12 + 1];
char fname[255 + 1];
} f_stat_t;
int __cdecl__ xregn (char device, char channel, unsigned char address, unsigned count,
@@ -159,6 +159,9 @@ int __fastcall__ f_stat (const char* path, f_stat_t* dirent);
int __fastcall__ f_opendir (const char* name);
int __fastcall__ f_readdir (f_stat_t* dirent, int dirdes);
int __fastcall__ f_closedir (int dirdes);
long __fastcall__ f_telldir (int dirdes);
int __fastcall__ f_seekdir (long offs, int dirdes);
int __fastcall__ f_rewinddir (int dirdes);
/* Time zone hack */

View File

@@ -1,5 +1,4 @@
#include <rp6502.h>
#include <fcntl.h>
int __fastcall__ f_closedir (int dirdes)
{

View File

@@ -1,5 +1,4 @@
#include <rp6502.h>
#include <unistd.h>
long __fastcall__ f_lseek (long offset, int whence, int fildes)
{

View File

@@ -1,6 +1,4 @@
#include <rp6502.h>
#include <errno.h>
#include <string.h>
int __fastcall__ f_readdir (f_stat_t* dirent, int dirdes)
{

View File

@@ -0,0 +1,7 @@
#include <rp6502.h>
int __fastcall__ f_rewinddir (int dirdes)
{
ria_set_ax (dirdes);
return ria_call_int (RIA_OP_REWINDDIR);
}

View File

@@ -0,0 +1,8 @@
#include <rp6502.h>
int __fastcall__ f_seekdir (long offs, int dirdes)
{
ria_set_ax (dirdes);
ria_push_long (offs);
return ria_call_int (RIA_OP_SEEKDIR);
}

View File

@@ -0,0 +1,7 @@
#include <rp6502.h>
long __fastcall__ f_telldir (int dirdes)
{
ria_set_ax (dirdes);
return ria_call_long (RIA_OP_TELLDIR);
}