diff --git a/src/dos_m65/,aliases_dos.s b/src/dos_m65/,aliases_dos.s index 3b6ec8de..3bf30ab4 100644 --- a/src/dos_m65/,aliases_dos.s +++ b/src/dos_m65/,aliases_dos.s @@ -66,15 +66,17 @@ !addr PAR_FNAME = $8021 ; 16 bytes - filename, 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 - !addr XX_DIR_PHASE = $8041 ; directory output phase, values deponds on device driver, but 0 = not reading - !addr SD_DIR_PHASE = $8041 ; - SD card - !addr F0_DIR_PHASE = $8042 ; - floppy 0 - !addr F1_DIR_PHASE = $8043 ; - floppy 0 - !addr RD_DIR_PHASE = $8044 ; - ram disk + !addr XX_DIR_PHASE = $8042 ; directory output phase, values deponds on device driver, but 0 = not reading + !addr SD_DIR_PHASE = $8042 ; - SD card + !addr F0_DIR_PHASE = $8043 ; - floppy 0 + !addr F1_DIR_PHASE = $8044 ; - floppy 0 + !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 code_LDA_01 = $8052 ; - LDA instruction diff --git a/src/dos_m65/lowlevel/lowlevel_readsector.s b/src/dos_m65/lowlevel/lowlevel_readsector.s index 7b7f1dbc..9af6dd94 100644 --- a/src/dos_m65/lowlevel/lowlevel_readsector.s +++ b/src/dos_m65/lowlevel/lowlevel_readsector.s @@ -2,6 +2,9 @@ ; Read a sector pair from a block device +; XXX utilize PAR_FSINSTANCE + + lowlevel_readsector: ; Set drive, ensure disk is present diff --git a/src/dos_m65/pseudoiec/msg_acptr.s b/src/dos_m65/pseudoiec/msg_acptr.s index 96b5934f..03ba153f 100644 --- a/src/dos_m65/pseudoiec/msg_acptr.s +++ b/src/dos_m65/pseudoiec/msg_acptr.s @@ -13,6 +13,10 @@ msg_ACPTR: ldx IDX1_TALKER +bmi msg_ACPTR_fail_no_talker + ; Set file system instance + + stx PAR_FSINSTANCE + ; Check if active channel is status one lda XX_CHANNEL, X diff --git a/src/dos_m65/pseudoiec/msg_ciout.s b/src/dos_m65/pseudoiec/msg_ciout.s index 369d38d3..29ce9597 100644 --- a/src/dos_m65/pseudoiec/msg_ciout.s +++ b/src/dos_m65/pseudoiec/msg_ciout.s @@ -13,8 +13,14 @@ msg_CIOUT: ldx IDX1_LISTENER 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 bne @1 diff --git a/src/dos_m65/pseudoiec/msg_second.s b/src/dos_m65/pseudoiec/msg_second.s index c0481254..cf9195ca 100644 --- a/src/dos_m65/pseudoiec/msg_second.s +++ b/src/dos_m65/pseudoiec/msg_second.s @@ -16,6 +16,7 @@ msg_SECOND: ldx IDX1_LISTENER bmi msg_SECOND_done ; do nothing if no listener + stx PAR_FSINSTANCE ; set file system instance sta XX_CHANNEL, x ; store channel ; Determine command type diff --git a/src/dos_m65/unit_sdcard/unit_sd_cmd_open.s b/src/dos_m65/unit_sdcard/unit_sd_cmd_open.s index 56a2629d..20cfc828 100644 --- a/src/dos_m65/unit_sdcard/unit_sd_cmd_open.s +++ b/src/dos_m65/unit_sdcard/unit_sd_cmd_open.s @@ -24,8 +24,6 @@ unit_sd_cmd_OPEN_EOI: dey bpl @lp1 - ; XXX add support for second card - lda SD_CMDFN_BUF cmp #'$' beq unit_sd_cmd_OPEN_dir