memset.o \
modfree.o \
modload.o \
+ oserrcheck.o \
printf.o \
rand.o \
raise.o \
+ rename.o \
setjmp.o \
signal.o \
sigtable.o \
--- /dev/null
+;
+; Ullrich von Bassewitz, 2003-08-12
+;
+; Helper function for several high level file functions.
+;
+; The function will store the value in A into _oserror. If the value is not
+; zero, it is translated into a standard error number which is then stored
+; into errno, and -1 is returned in a/x. If the value in A was zero, errno
+; is not changed, and zero is returned in a/x.
+;
+
+ .export oserrcheck
+ .import __oserror
+ .import __osmaperrno
+ .import __errno
+
+.proc oserrcheck
+
+ sta __oserror ; Store the error code
+ tay ; Did we have an error?
+ beq ok ; Branch if no
+ jsr __osmaperrno ; Map os error into errno code
+ sta __errno
+ stx __errno+1 ; Save in errno
+ lda #$FF ; Return -1
+
+; Error free, A contains zero
+
+ok: tax ; Make high byte also zero
+ rts
+
+.endproc
+
+
+
;
-; Ullrich von Bassewitz, 16.11.2002
+; Ullrich von Bassewitz, 2003-08-12
;
; int __fastcall__ remove (const char* name);
;
.export _remove
.import __sysremove
- .import __osmaperrno
- .import __errno
+ .import oserrcheck
;--------------------------------------------------------------------------
-; remove
-
.proc _remove
-; Go ahead and call the machine dependent function
-
- jsr __sysremove
-
-; Check for errors
-
- cmp #$00
- bne ok
- jsr __osmaperrno
- sta __errno
- stx __errno+1
- lda #$FF
- tax
- rts
-
-; Error free
-
-ok: lda #$00
- tax
- rts
+ jsr __sysremove ; Call the machine specific function
+ jmp oserrcheck ; Store into _oserror, set errno, return 0/-1
.endproc
--- /dev/null
+;
+; Ullrich von Bassewitz, 2003-08-12
+;
+; int __fastcall__ rename (const char* oldname, const char* newname);
+;
+
+ .export _rename
+
+ .import __sysrename
+ .import oserrcheck
+
+
+;--------------------------------------------------------------------------
+
+.proc _rename
+
+ jsr __sysrename ; Call the machine specific function
+ jmp oserrcheck ; Store into _oserror, set errno, return 0/-1
+
+.endproc
+
+
+
+