1
0
mirror of https://github.com/cc65/cc65.git synced 2025-02-09 17:33:00 +00:00

really use default drive

git-svn-id: svn://svn.cc65.org/cc65/trunk@4834 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cpg 2010-10-29 19:53:45 +00:00
parent 3386876fd3
commit f0d0e4e543

View File

@ -6,6 +6,10 @@
.import findfreeiocb, clriocb .import findfreeiocb, clriocb
.import __oserror, return0, __do_oserror .import __oserror, return0, __do_oserror
.importzp ptr1, tmp1 .importzp ptr1, tmp1
.ifdef DEFAULT_DEVICE
.import __defdev
.endif
.proc _opendir .proc _opendir
sta ptr1 sta ptr1
@ -16,19 +20,36 @@
@iocbok: stx diriocb @iocbok: stx diriocb
jsr clriocb jsr clriocb
ldx diriocb ldx diriocb
ldy #0 ; '.' -> "D:*.*"
lda (ptr1),y
cmp #'.'
bne @use_parm
; "." was given as parameter, use default device/dir
.ifdef DEFAULT_DEVICE
; construct a "Dn:*.*" like string from the default drive
lda __defdev+1
sta dddefdev+1 ; copy drive number (overwrite 2nd 'D')
lda #<dddefdev
sta ICBAL,x
lda #>dddefdev
sta ICBAH,x
bne @cont
.else
lda #<defdev lda #<defdev
sta ICBAL,x sta ICBAL,x
lda #>defdev lda #>defdev
sta ICBAH,x sta ICBAH,x
ldy #0 ; '.' -> "D:*.*" bne @cont
lda (ptr1),y .endif
cmp #'.'
beq @default @use_parm: lda ptr1
lda ptr1
sta ICBAL,x sta ICBAL,x
lda ptr1+1 lda ptr1+1
sta ICBAH,x sta ICBAH,x
@default: lda #OPEN
@cont: lda #OPEN
sta ICCOM,x sta ICCOM,x
lda #OPNIN|DIRECT lda #OPNIN|DIRECT
sta ICAX1,x sta ICAX1,x
@ -127,7 +148,10 @@ copychar: lda (ptr1),y ; src=y dest=tmp1
@cioerr: jmp __do_oserror @cioerr: jmp __do_oserror
.endproc .endproc
.rodata .data
.ifdef DEFAULT_DEVICE
dddefdev: .byte "D"
.endif
defdev: .asciiz "D:*.*" defdev: .asciiz "D:*.*"
.bss .bss