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_utime (const char* path, unsigned fdate, unsigned ftime, unsigned crdate, unsigned crtime);
|
||||||
int __fastcall__ f_mkdir (const char* name);
|
int __fastcall__ f_mkdir (const char* name);
|
||||||
int __fastcall__ f_chdrive (const char* name);
|
int __fastcall__ f_chdrive (const char* name);
|
||||||
// int __fastcall__ f_getcwd(char* name, unsigned len);
|
int __fastcall__ f_getcwd (char* name, unsigned len);
|
||||||
// int __fastcall__ f_setlabel(const char* name);
|
int __fastcall__ f_setlabel (const char* name);
|
||||||
// int __fastcall__ f_getlabel(const char* path, char* label);
|
int __fastcall__ f_getlabel (const char* path, char* label);
|
||||||
// int __fastcall__ f_getfree(const char* name);
|
int __fastcall__ f_getfree (const char* name, unsigned long* free, unsigned long* total);
|
||||||
|
|
||||||
|
|
||||||
/* Time zone hack */
|
/* 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