mirror of
https://github.com/cc65/cc65.git
synced 2024-08-20 09:29:12 +00:00
50 lines
1.1 KiB
ArmAsm
50 lines
1.1 KiB
ArmAsm
;
|
|
; Oliver Schmidt, 18.04.2005
|
|
;
|
|
|
|
.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
|
|
sta mliparam + MLI::PREFIX::PATHNAME
|
|
stx mliparam + MLI::PREFIX::PATHNAME+1
|
|
|
|
; Get current working directory
|
|
lda #GET_PREFIX_CALL
|
|
ldx #PREFIX_COUNT
|
|
jsr callmli
|
|
bcs done
|
|
|
|
; Check for null prefix
|
|
ldy #$00
|
|
lda (sp),y
|
|
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
|
|
|