mirror of
https://github.com/cc65/cc65.git
synced 2025-01-14 00:32:08 +00:00
Update from Oliver Schmidt
git-svn-id: svn://svn.cc65.org/cc65/trunk@3470 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
6448e4cf51
commit
94b11e7a73
@ -4,16 +4,21 @@
|
||||
|
||||
.export initcwd
|
||||
.import __cwd
|
||||
.import subysp, addysp
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "mli.inc"
|
||||
|
||||
.segment "INIT"
|
||||
|
||||
.segment "INIT"
|
||||
|
||||
initcwd:
|
||||
; Use imported buffer
|
||||
lda #<__cwd
|
||||
ldx #>__cwd
|
||||
; 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
|
||||
sta mliparam + MLI::PREFIX::PATHNAME
|
||||
stx mliparam + MLI::PREFIX::PATHNAME+1
|
||||
|
||||
@ -21,19 +26,24 @@ initcwd:
|
||||
lda #GET_PREFIX_CALL
|
||||
ldx #PREFIX_COUNT
|
||||
jsr callmli
|
||||
bcs done
|
||||
|
||||
; Check length byte
|
||||
ldx __cwd
|
||||
; Check for null prefix
|
||||
ldy #$00
|
||||
lda (sp),y
|
||||
beq done
|
||||
|
||||
; Replace trailing slash with zero
|
||||
sta __cwd,x ; A = 0
|
||||
|
||||
; Remove length byte
|
||||
tax
|
||||
: inx
|
||||
lda __cwd,x
|
||||
sta __cwd-1,x
|
||||
; 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 :-
|
||||
|
||||
done: rts
|
||||
; Cleanup stack
|
||||
done: ldy #1 + 64+1 ; Length byte + max pathname length+trailing slash
|
||||
jmp addysp
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user