cc65/libsrc/apple2/initcwd.s

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