From 18129b5003f60a92e571d5f4448bd13269f31775 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sun, 14 Feb 2021 14:49:57 +0100 Subject: [PATCH] DOS Wedge now prints our empty SD card directory --- src/dos_m65/assets/dos_parts_dir.s | 2 +- src/dos_m65/dev_sdcard/dev_sd_cmd_read.s | 22 +++++++++++++++++++++- src/dos_m65/msg_acptr.s | 2 ++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/dos_m65/assets/dos_parts_dir.s b/src/dos_m65/assets/dos_parts_dir.s index c9929dfb..a1af128b 100644 --- a/src/dos_m65/assets/dos_parts_dir.s +++ b/src/dos_m65/assets/dos_parts_dir.s @@ -20,7 +20,7 @@ dir_hdr_sd: ; 32 bytes - header !byte $01, $01 ; link to the next line - dummy, will be regenerated by BASIC !byte $00, $00 ; line number 0 !byte $12, $22 ; reverse mode, quote - !pet "SD CARD " ; space for disk/directory name + !pet "sd card " ; space for disk/directory name !byte $22, $20 ; quote, space !pet "fat32" ; filesystem !byte $00 ; end of the line diff --git a/src/dos_m65/dev_sdcard/dev_sd_cmd_read.s b/src/dos_m65/dev_sdcard/dev_sd_cmd_read.s index 302f7142..941614f4 100644 --- a/src/dos_m65/dev_sdcard/dev_sd_cmd_read.s +++ b/src/dos_m65/dev_sdcard/dev_sd_cmd_read.s @@ -6,7 +6,27 @@ dev_sd_cmd_READ: - ; XXX provide implementation + ; XXX provide implementation for regular files + + lda SD_DIR_PHASE + cmp #$01 + beq dev_sd_cmd_READ_dir_blocksfree sec ; mark EOI rts + + +dev_sd_cmd_READ_dir_blocksfree: + + lda #$13 + sta SD_ACPTR_LEN+0 + lda #$00 + sta SD_ACPTR_LEN+1 + + lda #dir_end + sta SD_ACPTR_PTR+1 + + clc + rts diff --git a/src/dos_m65/msg_acptr.s b/src/dos_m65/msg_acptr.s index 1d521567..032700c5 100644 --- a/src/dos_m65/msg_acptr.s +++ b/src/dos_m65/msg_acptr.s @@ -38,6 +38,7 @@ msg_ACPTR_read_SD: jsr SD_ACPTR_helper sta TBTCNT + sta REG_A ; Increment pointer, decrement length @@ -77,6 +78,7 @@ msg_ACPTR_fail_no_data: ; XXX What should be the reaction when trying to read and no data is present? sta TBTCNT + sta REG_A bra msg_ACPTR_EOI msg_ACPTR_status: