all dir commands

This commit is contained in:
rumbledethumps
2025-10-16 16:20:23 -07:00
parent 815135f716
commit 4b561acea5
5 changed files with 77 additions and 5 deletions

14
libsrc/rp6502/f_getcwd.c Normal file
View File

@@ -0,0 +1,14 @@
#include <rp6502.h>
#include <errno.h>
#include <string.h>
int __fastcall__ f_getcwd (char* name, unsigned len)
{
int i, ax;
ria_set_ax (len);
ax = ria_call_int (RIA_OP_GETCWD);
for (i = 0; i < ax; i++) {
name[i] = ria_pop_char ();
}
return ax;
}

22
libsrc/rp6502/f_getfree.c Normal file
View File

@@ -0,0 +1,22 @@
#include <rp6502.h>
#include <errno.h>
#include <string.h>
int __fastcall__ f_getfree (const char* name, unsigned long* free, unsigned long* total)
{
int ax;
size_t namelen = strlen (name);
if (namelen > 255) {
errno = EINVAL;
return -1;
}
while (namelen) {
ria_push_char (name[--namelen]);
}
ax = ria_call_int (RIA_OP_GETFREE);
if (ax >= 0) {
*free = ria_pop_long ();
*total = ria_pop_long ();
}
return ax;
}

View File

@@ -0,0 +1,21 @@
#include <rp6502.h>
#include <errno.h>
#include <string.h>
int __fastcall__ f_getlabel (const char* path, char* label)
{
int i, ax;
size_t pathlen = strlen (path);
if (pathlen > 255) {
errno = EINVAL;
return -1;
}
while (pathlen) {
ria_push_char (path[--pathlen]);
}
ax = ria_call_int (RIA_OP_GETLABEL);
for (i = 0; i < ax; i++) {
label[i] = ria_pop_char ();
}
return ax;
}

View File

@@ -0,0 +1,16 @@
#include <rp6502.h>
#include <errno.h>
#include <string.h>
int __fastcall__ f_setlabel (const char* name)
{
size_t namelen = strlen (name);
if (namelen > 255) {
errno = EINVAL;
return -1;
}
while (namelen) {
ria_push_char (name[--namelen]);
}
return ria_call_int (RIA_OP_SETLABEL);
}