New stuff contributed by Oliver Schmidt
git-svn-id: svn://svn.cc65.org/cc65/trunk@3608 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
59
libsrc/apple2/sysrename.s
Normal file
59
libsrc/apple2/sysrename.s
Normal file
@@ -0,0 +1,59 @@
|
||||
;
|
||||
; Oliver Schmidt, 15.04.2005
|
||||
;
|
||||
; unsigned char __fastcall__ _sysrename (const char* oldname, const char* newname);
|
||||
;
|
||||
|
||||
.export __sysrename
|
||||
.import pushname, popname
|
||||
.import popax
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "mli.inc"
|
||||
|
||||
__sysrename:
|
||||
; Save newname
|
||||
sta ptr2
|
||||
stx ptr2+1
|
||||
|
||||
; Get and push oldname
|
||||
jsr popax
|
||||
jsr pushname
|
||||
bne oserr1
|
||||
|
||||
; Save pushed oldname
|
||||
lda sp
|
||||
ldx sp+1
|
||||
sta ptr3
|
||||
stx ptr3+1
|
||||
|
||||
; Restore and push newname
|
||||
lda ptr2
|
||||
ldx ptr2+1
|
||||
jsr pushname
|
||||
bne oserr2
|
||||
|
||||
; Restore and set pushed oldname
|
||||
lda ptr3
|
||||
ldx ptr3+1
|
||||
sta mliparam + MLI::RENAME::PATHNAME
|
||||
stx mliparam + MLI::RENAME::PATHNAME+1
|
||||
|
||||
; Set pushed newname
|
||||
lda sp
|
||||
ldx sp+1
|
||||
sta mliparam + MLI::RENAME::NEW_PATHNAME
|
||||
stx mliparam + MLI::RENAME::NEW_PATHNAME+1
|
||||
|
||||
; Rename file
|
||||
lda #RENAME_CALL
|
||||
ldx #RENAME_COUNT
|
||||
jsr callmli
|
||||
|
||||
; Cleanup newname
|
||||
jsr popname ; Preserves A
|
||||
|
||||
; Cleanup oldname
|
||||
oserr2: jsr popname ; Preserves A
|
||||
|
||||
oserr1: rts
|
||||
Reference in New Issue
Block a user