more work on multiple filesystem instances
This commit is contained in:
1 parent
6a797e6a8a
commit
3a05ee4807
6 files changed
+23
-9
No files matched your search
@@ -66,15 +66,17 @@
|
|||||||
!addr PAR_FNAME = $8021 ; 16 bytes - filename, filled with $A0
|
!addr PAR_FNAME = $8021 ; 16 bytes - filename, filled with $A0
|
||||||
!addr PAR_FPATTERN = $8031 ; 16 bytes - pattern to match, filled with $A0
|
!addr PAR_FPATTERN = $8031 ; 16 bytes - pattern to match, filled with $A0
|
||||||
|
|
||||||
|
!addr PAR_FSINSTANCE = $8041 ; 0 = SD card, 1/2 = floppy, 3 = ram disk
|
||||||
|
|
||||||
; Various temporary data
|
; Various temporary data
|
||||||
|
|
||||||
!addr XX_DIR_PHASE = $8041 ; directory output phase, values deponds on device driver, but 0 = not reading
|
!addr XX_DIR_PHASE = $8042 ; directory output phase, values deponds on device driver, but 0 = not reading
|
||||||
!addr SD_DIR_PHASE = $8041 ; - SD card
|
!addr SD_DIR_PHASE = $8042 ; - SD card
|
||||||
!addr F0_DIR_PHASE = $8042 ; - floppy 0
|
!addr F0_DIR_PHASE = $8043 ; - floppy 0
|
||||||
!addr F1_DIR_PHASE = $8043 ; - floppy 0
|
!addr F1_DIR_PHASE = $8044 ; - floppy 0
|
||||||
!addr RD_DIR_PHASE = $8044 ; - ram disk
|
!addr RD_DIR_PHASE = $8045 ; - ram disk
|
||||||
|
|
||||||
; Free space: $8045-$8063
|
; Free space: $8046-$8063
|
||||||
|
|
||||||
!addr SD_ACPTR_helper = $8052 ; subroutine in RAM to read a byte
|
!addr SD_ACPTR_helper = $8052 ; subroutine in RAM to read a byte
|
||||||
!addr code_LDA_01 = $8052 ; - LDA instruction
|
!addr code_LDA_01 = $8052 ; - LDA instruction
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
; Read a sector pair from a block device
|
; Read a sector pair from a block device
|
||||||
|
|
||||||
|
|
||||||
|
; XXX utilize PAR_FSINSTANCE
|
||||||
|
|
||||||
|
|
||||||
lowlevel_readsector:
|
lowlevel_readsector:
|
||||||
|
|
||||||
; Set drive, ensure disk is present
|
; Set drive, ensure disk is present
|
||||||
|
|||||||
@@ -13,6 +13,10 @@ msg_ACPTR:
|
|||||||
ldx IDX1_TALKER
|
ldx IDX1_TALKER
|
||||||
+bmi msg_ACPTR_fail_no_talker
|
+bmi msg_ACPTR_fail_no_talker
|
||||||
|
|
||||||
|
; Set file system instance
|
||||||
|
|
||||||
|
stx PAR_FSINSTANCE
|
||||||
|
|
||||||
; Check if active channel is status one
|
; Check if active channel is status one
|
||||||
|
|
||||||
lda XX_CHANNEL, X
|
lda XX_CHANNEL, X
|
||||||
|
|||||||
@@ -13,8 +13,14 @@ msg_CIOUT:
|
|||||||
|
|
||||||
ldx IDX1_LISTENER
|
ldx IDX1_LISTENER
|
||||||
bmi msg_CIOUT_fail
|
bmi msg_CIOUT_fail
|
||||||
lda XX_MODE, x
|
|
||||||
|
|
||||||
|
; Set file system instance
|
||||||
|
|
||||||
|
stx PAR_FSINSTANCE
|
||||||
|
|
||||||
|
; Check current operation mode
|
||||||
|
|
||||||
|
lda XX_MODE, x
|
||||||
cmp #$01
|
cmp #$01
|
||||||
bne @1
|
bne @1
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ msg_SECOND:
|
|||||||
|
|
||||||
ldx IDX1_LISTENER
|
ldx IDX1_LISTENER
|
||||||
bmi msg_SECOND_done ; do nothing if no listener
|
bmi msg_SECOND_done ; do nothing if no listener
|
||||||
|
stx PAR_FSINSTANCE ; set file system instance
|
||||||
sta XX_CHANNEL, x ; store channel
|
sta XX_CHANNEL, x ; store channel
|
||||||
|
|
||||||
; Determine command type
|
; Determine command type
|
||||||
|
|||||||
@@ -24,8 +24,6 @@ unit_sd_cmd_OPEN_EOI:
|
|||||||
dey
|
dey
|
||||||
bpl @lp1
|
bpl @lp1
|
||||||
|
|
||||||
; XXX add support for second card
|
|
||||||
|
|
||||||
lda SD_CMDFN_BUF
|
lda SD_CMDFN_BUF
|
||||||
cmp #'$'
|
cmp #'$'
|
||||||
beq unit_sd_cmd_OPEN_dir
|
beq unit_sd_cmd_OPEN_dir
|
||||||
|
|||||||
Reference in new issue
Block a user