mirror of
https://github.com/cc65/cc65.git
synced 2024-12-23 19:29:37 +00:00
63 lines
1.3 KiB
ArmAsm
63 lines
1.3 KiB
ArmAsm
;
|
|
; Oliver Schmidt, 18.04.2005
|
|
;
|
|
|
|
.export initcwd
|
|
.import __cwd, __dos_type
|
|
|
|
.include "zeropage.inc"
|
|
.include "apple2.inc"
|
|
.include "mli.inc"
|
|
|
|
initcwd:
|
|
; Check for ProDOS 8
|
|
lda __dos_type
|
|
beq done
|
|
|
|
; Save random counter
|
|
lda RNDL
|
|
pha
|
|
lda RNDH
|
|
pha
|
|
|
|
; Call MLI
|
|
; We're not using mli.s' callmli because its
|
|
; mliparam is in BSS and this will be called
|
|
; before LC code is moved to the Language Card.
|
|
|
|
jsr $BF00 ; MLI call entry point
|
|
.byte GET_PREFIX_CALL ; MLI command
|
|
.addr mli_parameters ; MLI parameter
|
|
|
|
; Restore random counter
|
|
pla
|
|
sta RNDH
|
|
pla
|
|
sta RNDL
|
|
|
|
; Check for null prefix
|
|
ldx __cwd
|
|
beq done
|
|
|
|
; Remove length byte and trailing slash
|
|
dex
|
|
stx tmp1
|
|
ldx #$00
|
|
: lda __cwd + 1,x
|
|
sta __cwd,x
|
|
inx
|
|
cpx tmp1
|
|
bcc :-
|
|
|
|
; Add terminating zero
|
|
lda #$00
|
|
sta __cwd,x
|
|
|
|
done: rts
|
|
|
|
.rodata
|
|
|
|
mli_parameters:
|
|
.byte $01 ; Number of parameters
|
|
.addr __cwd ; Address of parameter
|