all dir commands
This commit is contained in:
@@ -166,11 +166,10 @@ int __fastcall__ f_chmod (const char* path, unsigned char attr, unsigned char ma
|
||||
int __fastcall__ f_utime (const char* path, unsigned fdate, unsigned ftime, unsigned crdate, unsigned crtime);
|
||||
int __fastcall__ f_mkdir (const char* name);
|
||||
int __fastcall__ f_chdrive (const char* name);
|
||||
// int __fastcall__ f_getcwd(char* name, unsigned len);
|
||||
// int __fastcall__ f_setlabel(const char* name);
|
||||
// int __fastcall__ f_getlabel(const char* path, char* label);
|
||||
// int __fastcall__ f_getfree(const char* name);
|
||||
|
||||
int __fastcall__ f_getcwd (char* name, unsigned len);
|
||||
int __fastcall__ f_setlabel (const char* name);
|
||||
int __fastcall__ f_getlabel (const char* path, char* label);
|
||||
int __fastcall__ f_getfree (const char* name, unsigned long* free, unsigned long* total);
|
||||
|
||||
/* Time zone hack */
|
||||
|
||||
|
||||
14
libsrc/rp6502/f_getcwd.c
Normal file
14
libsrc/rp6502/f_getcwd.c
Normal 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
22
libsrc/rp6502/f_getfree.c
Normal 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;
|
||||
}
|
||||
21
libsrc/rp6502/f_getlabel.c
Normal file
21
libsrc/rp6502/f_getlabel.c
Normal 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;
|
||||
}
|
||||
16
libsrc/rp6502/f_setlabel.c
Normal file
16
libsrc/rp6502/f_setlabel.c
Normal 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);
|
||||
}
|
||||
Reference in New Issue
Block a user