From c249515d489941aaad147b7a7b23f32019057749 Mon Sep 17 00:00:00 2001 From: cpg Date: Wed, 4 Jan 2006 09:56:04 +0000 Subject: [PATCH] initial version from Stefan Haubenthal git-svn-id: svn://svn.cc65.org/cc65/trunk@3693 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- libsrc/atari/sysmkdir.s | 80 +++++++++++++++++++++++++++++++++++++++++ libsrc/atari/sysrmdir.s | 10 ++++++ 2 files changed, 90 insertions(+) create mode 100644 libsrc/atari/sysmkdir.s create mode 100644 libsrc/atari/sysrmdir.s diff --git a/libsrc/atari/sysmkdir.s b/libsrc/atari/sysmkdir.s new file mode 100644 index 000000000..75e4c28e3 --- /dev/null +++ b/libsrc/atari/sysmkdir.s @@ -0,0 +1,80 @@ +; +; Stefan Haubenthal, 2005-12-24 +; Based on Christian Groessler +; +; unsigned char _sysmkdir (const char* name, ...); +; + + .include "atari.inc" + .include "errno.inc" + .import findfreeiocb + .importzp tmp4 +.ifdef UCASE_FILENAME + .importzp tmp3 + .import addysp + .import ucase_fn +.endif + .export __sysmkdir + +.proc __sysmkdir + + pha ; save input parameter + txa + pha + + jsr findfreeiocb + beq iocbok ; we found one + + pla + pla ; fix up stack + + lda #TMOF ; too many open files + rts + +iocbok: stx tmp4 ; remember IOCB index + pla + tax + pla ; get argument again + +.ifdef UCASE_FILENAME + + jsr ucase_fn + bcc ucok1 + + lda #182 ; see oserror.s + rts +ucok1: + +.endif ; defined UCASE_FILENAME + + ldy tmp4 ; IOCB index + sta ICBAL,y ; store pointer to filename + txa + sta ICBAH,y + tya + tax + lda #34 + sta ICCOM,x + lda #0 + sta ICAX1,x + sta ICAX2,x + sta ICBLL,x + sta ICBLH,x + jsr CIOV + +.ifdef UCASE_FILENAME + tya + pha + ldy tmp3 ; get size + jsr addysp ; free used space on the stack + pla + tay +.endif ; defined UCASE_FILENAME + + bmi cioerr + lda #0 + rts +cioerr: tya + rts + +.endproc ; __sysmkdir diff --git a/libsrc/atari/sysrmdir.s b/libsrc/atari/sysrmdir.s new file mode 100644 index 000000000..d3b2cf3f1 --- /dev/null +++ b/libsrc/atari/sysrmdir.s @@ -0,0 +1,10 @@ +; +; Stefan Haubenthal, 2005-12-24 +; +; unsigned char __fastcall__ _sysrmdir (const char* name); +; + + .export __sysrmdir + .import __sysremove + +__sysrmdir := __sysremove