chdir and friends
This commit is contained in:
14
libsrc/rp6502/chdir.s
Normal file
14
libsrc/rp6502/chdir.s
Normal file
@@ -0,0 +1,14 @@
|
||||
;
|
||||
; Ullrich von Bassewitz, 2003-08-12
|
||||
;
|
||||
; int __fastcall__ chdir (const char* name);
|
||||
;
|
||||
|
||||
.export _chdir
|
||||
|
||||
.import __syschdir
|
||||
|
||||
|
||||
;--------------------------------------------------------------------------
|
||||
|
||||
_chdir = __syschdir
|
||||
16
libsrc/rp6502/f_chdrive.c
Normal file
16
libsrc/rp6502/f_chdrive.c
Normal file
@@ -0,0 +1,16 @@
|
||||
#include <rp6502.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
||||
int __fastcall__ f_chdrive (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_CHDRIVE);
|
||||
}
|
||||
19
libsrc/rp6502/f_chmod.c
Normal file
19
libsrc/rp6502/f_chmod.c
Normal file
@@ -0,0 +1,19 @@
|
||||
#include <rp6502.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
||||
int __fastcall__ f_chmod (const char* path, unsigned char attr, unsigned char mask)
|
||||
{
|
||||
size_t pathlen;
|
||||
ria_set_a (mask);
|
||||
pathlen = strlen (path);
|
||||
if (pathlen > 255) {
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
while (pathlen) {
|
||||
ria_push_char (path[--pathlen]);
|
||||
}
|
||||
ria_push_char (attr);
|
||||
return ria_call_int (RIA_OP_CHMOD);
|
||||
}
|
||||
16
libsrc/rp6502/f_mkdir.c
Normal file
16
libsrc/rp6502/f_mkdir.c
Normal file
@@ -0,0 +1,16 @@
|
||||
#include <rp6502.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
||||
int __fastcall__ f_mkdir (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_MKDIR);
|
||||
}
|
||||
21
libsrc/rp6502/f_utime.c
Normal file
21
libsrc/rp6502/f_utime.c
Normal file
@@ -0,0 +1,21 @@
|
||||
#include <rp6502.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
||||
int __fastcall__ f_utime (const char* path, unsigned fdate, unsigned ftime, unsigned crdate, unsigned crtime)
|
||||
{
|
||||
size_t pathlen;
|
||||
ria_set_ax (crtime);
|
||||
pathlen = strlen (path);
|
||||
if (pathlen > 255) {
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
while (pathlen) {
|
||||
ria_push_char (path[--pathlen]);
|
||||
}
|
||||
ria_push_int (fdate);
|
||||
ria_push_int (ftime);
|
||||
ria_push_int (crdate);
|
||||
return ria_call_int (RIA_OP_UTIME);
|
||||
}
|
||||
16
libsrc/rp6502/syschdir.c
Normal file
16
libsrc/rp6502/syschdir.c
Normal file
@@ -0,0 +1,16 @@
|
||||
#include <rp6502.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
||||
int __fastcall__ _syschdir (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_CHDIR);
|
||||
}
|
||||
Reference in New Issue
Block a user