1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-26 08:32:00 +00:00

Update by Oliver Schmidt

git-svn-id: svn://svn.cc65.org/cc65/trunk@3742 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2006-05-29 16:27:39 +00:00
parent 4b8d90d2de
commit 13e0436336
2 changed files with 21 additions and 34 deletions

View File

@ -4,21 +4,14 @@
.export initcwd
.import __cwd
.import subysp, addysp
.include "zeropage.inc"
.include "mli.inc"
.segment "INIT"
initcwd:
; Alloc prefix buffer
ldy #1 + 64+1 ; Length byte + max pathname length+trailing slash
jsr subysp
; Use allocated prefix buffer
lda sp
ldx sp+1
; Set static prefix buffer
lda #<__cwd
ldx #>__cwd
sta mliparam + MLI::PREFIX::PATHNAME
stx mliparam + MLI::PREFIX::PATHNAME+1
@ -26,24 +19,22 @@ initcwd:
lda #GET_PREFIX_CALL
ldx #PREFIX_COUNT
jsr callmli
bcs done
; Check for null prefix
ldy #$00
lda (sp),y
beq done
lda __cwd
beq done
; Set current working directory
; - omit trailing slash and length byte
; - terminating zero already in place
tay
dey
: lda (sp),y
sta __cwd-1,y
dey
bne :-
; Cleanup stack
done: ldy #1 + 64+1 ; Length byte + max pathname length+trailing slash
jmp addysp
; Remove length byte and trailing slash
sta tmp1
ldx #$01
: lda __cwd,x
sta __cwd - 1,x
inx
cpx tmp1
bcc :-
; Add terminating zero
lda #$00
sta __cwd - 1,x
done: rts

View File

@ -6,7 +6,7 @@
.export __syschdir
.import pushname, popname
.import __cwd
.import initcwd
.include "zeropage.inc"
.include "mli.inc"
@ -28,12 +28,8 @@ __syschdir:
jsr callmli
bcs cleanup
ldy #$01
: lda (sp),y
sta __cwd-1,y
beq cleanup
iny
bne :- ; Branch always
; Update current working directory
jsr initcwd ; Returns with A = 0
; Cleanup name
cleanup:jsr popname ; Preserves A