mirror of
https://github.com/cc65/cc65.git
synced 2024-10-01 15:54:59 +00:00
Moved reusable parts of remove into oserrcheck.
Rewrote remove(). Added rename(). git-svn-id: svn://svn.cc65.org/cc65/trunk@2272 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
fada6651c9
commit
b7d7e6bb04
@ -109,9 +109,11 @@ S_OBJS = _fdesc.o \
|
|||||||
memset.o \
|
memset.o \
|
||||||
modfree.o \
|
modfree.o \
|
||||||
modload.o \
|
modload.o \
|
||||||
|
oserrcheck.o \
|
||||||
printf.o \
|
printf.o \
|
||||||
rand.o \
|
rand.o \
|
||||||
raise.o \
|
raise.o \
|
||||||
|
rename.o \
|
||||||
setjmp.o \
|
setjmp.o \
|
||||||
signal.o \
|
signal.o \
|
||||||
sigtable.o \
|
sigtable.o \
|
||||||
|
35
libsrc/common/oserrcheck.s
Normal file
35
libsrc/common/oserrcheck.s
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
;
|
||||||
|
; 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
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
;
|
;
|
||||||
; Ullrich von Bassewitz, 16.11.2002
|
; Ullrich von Bassewitz, 2003-08-12
|
||||||
;
|
;
|
||||||
; int __fastcall__ remove (const char* name);
|
; int __fastcall__ remove (const char* name);
|
||||||
;
|
;
|
||||||
@ -7,36 +7,15 @@
|
|||||||
.export _remove
|
.export _remove
|
||||||
|
|
||||||
.import __sysremove
|
.import __sysremove
|
||||||
.import __osmaperrno
|
.import oserrcheck
|
||||||
.import __errno
|
|
||||||
|
|
||||||
|
|
||||||
;--------------------------------------------------------------------------
|
;--------------------------------------------------------------------------
|
||||||
; remove
|
|
||||||
|
|
||||||
|
|
||||||
.proc _remove
|
.proc _remove
|
||||||
|
|
||||||
; Go ahead and call the machine dependent function
|
jsr __sysremove ; Call the machine specific function
|
||||||
|
jmp oserrcheck ; Store into _oserror, set errno, return 0/-1
|
||||||
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
|
|
||||||
|
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
|
24
libsrc/common/rename.s
Normal file
24
libsrc/common/rename.s
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
;
|
||||||
|
; 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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user