more refactoring towards RAM disk support

This commit is contained in:
FeralChild64 committed 2021-07-07 20:33:49 +02:00
1 parent 924d87d271
commit 7624e14104
19 files changed
+51 -51

No files matched your search

+1 -1
View File
@@ -68,9 +68,9 @@ SRCDIR_DOS_M65 = $(SRCDIR_COMMON) \
src/dos_m65/filesystem_vfs \ src/dos_m65/filesystem_vfs \
src/dos_m65/lowlevel \ src/dos_m65/lowlevel \
src/dos_m65/pseudoiec \ src/dos_m65/pseudoiec \
src/dos_m65/unit_card \
src/dos_m65/unit_disk \ src/dos_m65/unit_disk \
src/dos_m65/unit_ramdisk \ src/dos_m65/unit_ramdisk \
src/dos_m65/unit_sdcard \
src/dos_m65/utils src/dos_m65/utils
SRCDIR_MON_M65 = $(SRCDIR_COMMON) \ SRCDIR_MON_M65 = $(SRCDIR_COMMON) \
+3 -3
View File
@@ -84,9 +84,9 @@ dos_INIT:
; Initialize device handlers ; Initialize device handlers
jsr unit_sd_init jsr card_sd_init
jsr unit_fd_init jsr disk_fd_init
jsr unit_rd_init jsr disk_rd_init
; Safer version of 'dos_EXIT' - does not affect speed related registers ; Safer version of 'dos_EXIT' - does not affect speed related registers
+1 -1
View File
@@ -13,5 +13,5 @@ dos_PRELOAD:
rts rts
@ok: @ok:
jsr dos_ENTER jsr dos_ENTER
jsr unit_rd_preload jsr disk_rd_preload
jmp dos_EXIT_CLC jmp dos_EXIT_CLC
+8 -6
View File
@@ -6,13 +6,15 @@
dos_cmd_OPEN_vectab: dos_cmd_OPEN_vectab:
!word unit_sd_cmd_OPEN !word card_sd_cmd_OPEN
!word unit_disk_cmd_OPEN !word disk_xx_cmd_OPEN
!word unit_disk_cmd_OPEN !word disk_xx_cmd_OPEN
!word disk_xx_cmd_OPEN
dos_cmd_CLOSE_vectab: dos_cmd_CLOSE_vectab:
!word unit_sd_cmd_CLOSE !word card_sd_cmd_CLOSE
!word unit_fd_cmd_CLOSE !word disk_fd_cmd_CLOSE
!word unit_rd_cmd_CLOSE !word disk_fd_cmd_CLOSE
!word disk_rd_cmd_CLOSE
+3 -3
View File
@@ -60,7 +60,7 @@ msg_ACPTR_read_SD:
ora SD_ACPTR_LEN+1 ora SD_ACPTR_LEN+1
bne @3 bne @3
jsr unit_sd_cmd_READ jsr card_sd_cmd_READ
bcc @3 bcc @3
jsr kernalstatus_EOI jsr kernalstatus_EOI
@3: @3:
@@ -90,7 +90,7 @@ msg_ACPTR_read_F0:
ora F0_ACPTR_LEN+1 ora F0_ACPTR_LEN+1
bne @3 bne @3
jsr unit_f0_cmd_READ jsr disk_f0_cmd_READ
bcc @3 bcc @3
jsr kernalstatus_EOI jsr kernalstatus_EOI
@3: @3:
@@ -120,7 +120,7 @@ msg_ACPTR_read_F1:
ora F1_ACPTR_LEN+1 ora F1_ACPTR_LEN+1
bne @3 bne @3
jsr unit_f1_cmd_READ jsr disk_f1_cmd_READ
bcc @3 bcc @3
jsr kernalstatus_EOI jsr kernalstatus_EOI
@3: @3:
+2 -2
View File
@@ -58,7 +58,7 @@ msg_CIOUT_cmdfn_SD: ; get next byte of status - SD card
lda #$A0 lda #$A0
sta SD_CMDFN_BUF,x sta SD_CMDFN_BUF,x
plp plp
+bcs unit_sd_cmd_OPEN_EOI ; if EOI - execute command +bcs card_sd_cmd_OPEN_EOI ; if EOI - execute command
jmp dos_EXIT_CLC jmp dos_EXIT_CLC
msg_CIOUT_cmdfn_F0: ; get next byte of status - floppy msg_CIOUT_cmdfn_F0: ; get next byte of status - floppy
@@ -104,7 +104,7 @@ msg_CIOUT_cmdfn_RD: ; get next byte of status - ram disk
msg_CIOUT_cmdfn_FX: ; common pard for floppy and RAM disk msg_CIOUT_cmdfn_FX: ; common pard for floppy and RAM disk
plp plp
+bcs unit_disk_cmd_OPEN_EOI ; if EOI - execute command +bcs disk_fd_cmd_OPEN_EOI ; if EOI - execute command
jmp dos_EXIT_CLC jmp dos_EXIT_CLC
msg_CIOUT_cmdfn_vectab: msg_CIOUT_cmdfn_vectab:
@@ -4,7 +4,7 @@
; ;
unit_sd_cmd_CLOSE: card_sd_cmd_CLOSE:
; XXX provide implementation ; XXX provide implementation
@@ -4,14 +4,14 @@
; ;
unit_sd_cmd_OPEN: card_sd_cmd_OPEN:
lda #$01 ; mode: receive command or file name lda #$01 ; mode: receive command or file name
sta SD_MODE sta SD_MODE
jmp dos_EXIT_CLC jmp dos_EXIT_CLC
unit_sd_cmd_OPEN_EOI: card_sd_cmd_OPEN_EOI:
; XXX this dispatcher is temporary ; XXX this dispatcher is temporary
@@ -26,11 +26,11 @@ unit_sd_cmd_OPEN_EOI:
lda SD_CMDFN_BUF lda SD_CMDFN_BUF
cmp #'$' cmp #'$'
beq unit_sd_cmd_OPEN_dir beq card_sd_cmd_OPEN_dir
; FALLTROUGH ; FALLTROUGH
unit_sd_cmd_OPEN_file: card_sd_cmd_OPEN_file:
; Copy the filter from command XXX this should be moved to common part and deduplicated with directory opening ; Copy the filter from command XXX this should be moved to common part and deduplicated with directory opening
@@ -49,7 +49,7 @@ unit_sd_cmd_OPEN_file:
jmp fs_vfs_read_file_open jmp fs_vfs_read_file_open
unit_sd_cmd_OPEN_dir: card_sd_cmd_OPEN_dir:
lda #$02 ; mode: read directory lda #$02 ; mode: read directory
sta SD_MODE sta SD_MODE
@@ -4,7 +4,7 @@
; ;
unit_sd_cmd_READ: card_sd_cmd_READ:
lda SD_MODE lda SD_MODE
cmp #$03 cmp #$03
@@ -4,7 +4,7 @@
; ;
unit_sd_init: card_sd_init:
; Copy initial status string ; Copy initial status string
@@ -4,7 +4,7 @@
; ;
unit_fd_cmd_CLOSE: disk_fd_cmd_CLOSE:
; XXX provide implementation ; XXX provide implementation
@@ -6,7 +6,7 @@
; XXX add support for both floppies ; XXX add support for both floppies
unit_disk_cmd_OPEN: disk_xx_cmd_OPEN:
lda #$01 ; mode: receive command or file name lda #$01 ; mode: receive command or file name
ldx PAR_FSINSTANCE ldx PAR_FSINSTANCE
@@ -14,7 +14,7 @@ unit_disk_cmd_OPEN:
jmp dos_EXIT_CLC jmp dos_EXIT_CLC
unit_disk_cmd_OPEN_EOI: disk_fd_cmd_OPEN_EOI:
; XXX this dispatcher is temporary ; XXX this dispatcher is temporary
@@ -41,11 +41,11 @@ unit_disk_cmd_OPEN_EOI:
lda RD_CMDFN_BUF lda RD_CMDFN_BUF
cmp #'$' cmp #'$'
beq unit_fd_cmd_OPEN_dir ; XXX add support for second floppy and RAM disk beq disk_fd_cmd_OPEN_dir ; XXX add support for second floppy and RAM disk
; FALLTROUGH ; FALLTROUGH
unit_fd_cmd_OPEN_file: disk_fd_cmd_OPEN_file:
; XXX add support for second floppy and RAM disk ; XXX add support for second floppy and RAM disk
@@ -66,7 +66,7 @@ unit_fd_cmd_OPEN_file:
jmp fs_cbm_read_file_open jmp fs_cbm_read_file_open
unit_fd_cmd_OPEN_dir: disk_fd_cmd_OPEN_dir:
lda #$02 ; mode: read directory lda #$02 ; mode: read directory
sta F0_MODE sta F0_MODE
@@ -4,15 +4,15 @@
; ;
unit_f0_cmd_READ: disk_f0_cmd_READ:
; XXX provide implementation ; XXX provide implementation
unit_f1_cmd_READ: disk_f1_cmd_READ:
; XXX provide implementation ; XXX provide implementation
unit_fd_cmd_READ: disk_f__cmd_READ:
lda F0_MODE lda F0_MODE
cmp #$03 cmp #$03
@@ -4,7 +4,7 @@
; ;
unit_fd_init: disk_fd_init:
; Copy status string ; Copy status string
@@ -3,10 +3,8 @@
; Close currently opened file ; Close currently opened file
; ;
; XXX to be unified with floppy code
disk_rd_cmd_CLOSE:
unit_rd_cmd_CLOSE:
; XXX provide implementation ; XXX provide implementation
@@ -4,7 +4,7 @@
; ;
unit_rd_init: disk_rd_init:
; Copy status string ; Copy status string
@@ -26,7 +26,7 @@ unit_rd_init:
; FALLTROUGH ; FALLTROUGH
unit_rd_init_test_ram: ; non-destructive ATTIC/CELLAR RAM test disk_rd_init_test_ram: ; non-destructive ATTIC/CELLAR RAM test
; Preserve temporary address area on stack ; Preserve temporary address area on stack
@@ -7,12 +7,12 @@
!addr __stoptrack = RD_DIR_PHASE ; helper value for detecting too large image !addr __stoptrack = RD_DIR_PHASE ; helper value for detecting too large image
unit_rd_preload: disk_rd_preload:
; Check if RAM disk is enabled (should be disabled if no Hyper RAM is present) ; Check if RAM disk is enabled (should be disabled if no Hyper RAM is present)
lda UNIT_RAMDISK lda UNIT_RAMDISK
+beq unit_rd_preload_err_common_noclose +beq disk_rd_preload_err_common_noclose
; Select SD card buffer ; Select SD card buffer
@@ -51,13 +51,13 @@ unit_rd_preload:
lda RAM_ATTIC lda RAM_ATTIC
beq @added_attic beq @added_attic
jsr unit_rd_preload_addram jsr disk_rd_preload_addram
@added_attic: @added_attic:
lda RAM_CELLAR lda RAM_CELLAR
beq @added_cellar beq @added_cellar
jsr unit_rd_preload_addram jsr disk_rd_preload_addram
@added_cellar: @added_cellar:
@@ -168,22 +168,22 @@ unit_rd_preload:
@error_wrong_size: @error_wrong_size:
lda #$01 lda #$01
jmp unit_rd_preload_err_common jmp disk_rd_preload_err_common
@error_too_large: @error_too_large:
lda #$02 lda #$02
jmp unit_rd_preload_err_common jmp disk_rd_preload_err_common
@error_not_found: @error_not_found:
lda #$03 lda #$03
sta RD_MSG sta RD_MSG
jmp unit_rd_preload_err_common_noclose jmp disk_rd_preload_err_common_noclose
unit_rd_preload_err_common: disk_rd_preload_err_common:
sta RD_MSG ; set code for startup screen sta RD_MSG ; set code for startup screen
@@ -191,7 +191,7 @@ unit_rd_preload_err_common:
; FALLTROUGH ; FALLTROUGH
unit_rd_preload_err_common_noclose: disk_rd_preload_err_common_noclose:
lda #$00 ; temporary storage needs to be restored to 0 lda #$00 ; temporary storage needs to be restored to 0
sta __stoptrack sta __stoptrack
@@ -201,7 +201,7 @@ unit_rd_preload_err_common_noclose:
unit_rd_preload_addram: disk_rd_preload_addram:
; Add allowed number of tracks due to attic/cellar block presence ; Add allowed number of tracks due to attic/cellar block presence
@@ -6,7 +6,7 @@
; XXX to be unified with floppy code ; XXX to be unified with floppy code
unit_rd_cmd_OPEN_EOI: disk_rd_cmd_OPEN_EOI:
; XXX provide implementation ; XXX provide implementation
@@ -6,7 +6,7 @@
; XXX to be unified with floppy code ; XXX to be unified with floppy code
unit_rd_cmd_READ: disk_rd_cmd_READ:
; XXX provide implementation ; XXX provide implementation