This commit is contained in:
Peter Ferrie 2019-10-25 09:41:31 -07:00
parent 086a86ce84
commit a0ea16a25d
3 changed files with 57 additions and 15 deletions

View File

@ -199,6 +199,9 @@ init lda DEVNUM
;find current directory name in directory ;find current directory name in directory
sec
php
readblock jsr MLI readblock jsr MLI
!byte $80 !byte $80
!word x80_parms !word x80_parms
@ -220,7 +223,8 @@ inextent ldy #0
;match failed, move to next directory in this block, if possible ;match failed, move to next directory in this block, if possible
- pla - pla
clc
skiphdr clc
lda bloklo lda bloklo
adc #ENTRY_SIZE adc #ENTRY_SIZE
sta bloklo sta bloklo
@ -249,7 +253,17 @@ ifoundname dex
lda (namlo), y lda (namlo), y
cmp #'/' cmp #'/'
bne - bne -
tya pla
and #$20 ;Volume Directory Header XOR subdirectory
beq adjpath
pla
clc
php
lsr
bcc skiphdr
inx
adjpath tya
eor #$ff eor #$ff
adc sizelo adc sizelo
sta sizelo sta sizelo
@ -257,9 +271,8 @@ ifoundname dex
tya tya
adc namlo adc namlo
sta namlo sta namlo
pla dex
and #$20 ;Volume Directory Header XOR subdirectory beq ++
bne ++
;cache block number of current directory ;cache block number of current directory
;as starting position for subsequent searches ;as starting position for subsequent searches
@ -275,6 +288,7 @@ ifoundname dex
stx x80_parms + 5 stx x80_parms + 5
++ lda sizelo ++ lda sizelo
bne readblock bne readblock
pla
;unit to slot for ProDOS interface ;unit to slot for ProDOS interface

View File

@ -199,6 +199,9 @@ init lda DEVNUM
;find current directory name in directory ;find current directory name in directory
sec
php
readblock jsr MLI readblock jsr MLI
!byte $80 !byte $80
!word x80_parms !word x80_parms
@ -220,7 +223,8 @@ inextent ldy #0
;match failed, move to next directory in this block, if possible ;match failed, move to next directory in this block, if possible
- pla - pla
clc
skiphdr clc
lda bloklo lda bloklo
adc #ENTRY_SIZE adc #ENTRY_SIZE
sta bloklo sta bloklo
@ -249,7 +253,17 @@ ifoundname dex
lda (namlo), y lda (namlo), y
cmp #'/' cmp #'/'
bne - bne -
tya pla
and #$20 ;Volume Directory Header XOR subdirectory
beq adjpath
pla
clc
php
lsr
bcc skiphdr
inx
adjpath tya
eor #$ff eor #$ff
adc sizelo adc sizelo
sta sizelo sta sizelo
@ -257,9 +271,8 @@ ifoundname dex
tya tya
adc namlo adc namlo
sta namlo sta namlo
pla dex
and #$20 ;Volume Directory Header XOR subdirectory beq ++
bne ++
;cache block number of current directory ;cache block number of current directory
;as starting position for subsequent searches ;as starting position for subsequent searches
@ -275,6 +288,7 @@ ifoundname dex
stx x80_parms + 5 stx x80_parms + 5
++ lda sizelo ++ lda sizelo
bne readblock bne readblock
pla
;unit to slot for ProDOS interface ;unit to slot for ProDOS interface

View File

@ -199,6 +199,9 @@ init lda DEVNUM
;find current directory name in directory ;find current directory name in directory
sec
php
readblock jsr MLI readblock jsr MLI
!byte $80 !byte $80
!word x80_parms !word x80_parms
@ -220,7 +223,8 @@ inextent ldy #0
;match failed, move to next directory in this block, if possible ;match failed, move to next directory in this block, if possible
- pla - pla
clc
skiphdr clc
lda bloklo lda bloklo
adc #ENTRY_SIZE adc #ENTRY_SIZE
sta bloklo sta bloklo
@ -249,7 +253,17 @@ ifoundname dex
lda (namlo), y lda (namlo), y
cmp #'/' cmp #'/'
bne - bne -
tya pla
and #$20 ;Volume Directory Header XOR subdirectory
beq adjpath
pla
clc
php
lsr
bcc skiphdr
inx
adjpath tya
eor #$ff eor #$ff
adc sizelo adc sizelo
sta sizelo sta sizelo
@ -257,9 +271,8 @@ ifoundname dex
tya tya
adc namlo adc namlo
sta namlo sta namlo
pla dex
and #$20 ;Volume Directory Header XOR subdirectory beq ++
bne ++
;cache block number of current directory ;cache block number of current directory
;as starting position for subsequent searches ;as starting position for subsequent searches
@ -275,6 +288,7 @@ ifoundname dex
stx x80_parms + 5 stx x80_parms + 5
++ lda sizelo ++ lda sizelo
bne readblock bne readblock
pla
;unit to slot for ProDOS interface ;unit to slot for ProDOS interface