From 4234591508eada7cf2ca8c2298ac20266f92df6e Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sat, 6 Mar 2021 20:57:56 +0100 Subject: [PATCH] CBDOS refactoring --- Makefile | 10 ++++-- src/dos_m65/dev_floppy/fs_1581_read_file.s | 17 ---------- src/dos_m65/dos_init.s | 6 ++-- src/dos_m65/dos_vectab_dev.s | 18 ---------- src/dos_m65/dos_vectab_unit.s | 18 ++++++++++ .../filesystem_cbm/fs_cbm_nextdirentry.s | 13 +++++++ .../fs_cbm_read_dir.s} | 26 +++++++------- src/dos_m65/filesystem_cbm/fs_cbm_read_file.s | 31 +++++++++++++++++ .../fs_vfs_nextdirentry.s} | 34 +++++++++---------- .../fs_vfs_read_dir.s} | 20 +++++------ .../fs_vfs_read_file.s} | 32 ++++++++--------- .../lowlevel_readsector.s} | 4 +-- src/dos_m65/{ => pseudoiec}/msg_acptr.s | 4 +-- src/dos_m65/{ => pseudoiec}/msg_ciout.s | 6 ++-- src/dos_m65/{ => pseudoiec}/msg_listen.s | 0 src/dos_m65/{ => pseudoiec}/msg_second.s | 0 src/dos_m65/{ => pseudoiec}/msg_talk.s | 0 src/dos_m65/{ => pseudoiec}/msg_tksa.s | 0 src/dos_m65/{ => pseudoiec}/msg_unlsn_untlk.s | 0 .../unit_fd_cmd_close.s} | 2 +- .../unit_fd_cmd_open.s} | 12 +++---- .../unit_fd_cmd_read.s} | 8 ++--- .../unit_fd_init.s} | 2 +- .../unit_rd_cmd_close.s} | 2 +- .../unit_rd_cmd_open.s} | 4 +-- .../unit_rd_cmd_read.s} | 2 +- .../unit_rd_init.s} | 2 +- .../unit_sd_cmd_close.s} | 2 +- .../unit_sd_cmd_open.s} | 14 ++++---- .../unit_sd_cmd_read.s} | 8 ++--- .../unit_sd_init.s} | 2 +- 31 files changed, 164 insertions(+), 135 deletions(-) delete mode 100644 src/dos_m65/dev_floppy/fs_1581_read_file.s delete mode 100644 src/dos_m65/dos_vectab_dev.s create mode 100644 src/dos_m65/dos_vectab_unit.s create mode 100644 src/dos_m65/filesystem_cbm/fs_cbm_nextdirentry.s rename src/dos_m65/{dev_floppy/fs_1581_read_dir.s => filesystem_cbm/fs_cbm_read_dir.s} (89%) create mode 100644 src/dos_m65/filesystem_cbm/fs_cbm_read_file.s rename src/dos_m65/{dev_sdcard/fs_hvsr_util_nextdirentry.s => filesystem_vfs/fs_vfs_nextdirentry.s} (79%) rename src/dos_m65/{dev_sdcard/fs_hvsr_read_dir.s => filesystem_vfs/fs_vfs_read_dir.s} (83%) rename src/dos_m65/{dev_sdcard/fs_hvsr_read_file.s => filesystem_vfs/fs_vfs_read_file.s} (70%) rename src/dos_m65/{dev_floppy/dev_fd_util_readsector.s => lowlevel/lowlevel_readsector.s} (95%) rename src/dos_m65/{ => pseudoiec}/msg_acptr.s (98%) rename src/dos_m65/{ => pseudoiec}/msg_ciout.s (87%) rename src/dos_m65/{ => pseudoiec}/msg_listen.s (100%) rename src/dos_m65/{ => pseudoiec}/msg_second.s (100%) rename src/dos_m65/{ => pseudoiec}/msg_talk.s (100%) rename src/dos_m65/{ => pseudoiec}/msg_tksa.s (100%) rename src/dos_m65/{ => pseudoiec}/msg_unlsn_untlk.s (100%) rename src/dos_m65/{dev_floppy/dev_fd_cmd_close.s => unit_floppy/unit_fd_cmd_close.s} (82%) rename src/dos_m65/{dev_floppy/dev_fd_cmd_open.s => unit_floppy/unit_fd_cmd_open.s} (84%) rename src/dos_m65/{dev_floppy/dev_fd_cmd_read.s => unit_floppy/unit_fd_cmd_read.s} (56%) rename src/dos_m65/{dev_floppy/dev_fd_init.s => unit_floppy/unit_fd_init.s} (95%) rename src/dos_m65/{dev_ramdisk/dev_rd_cmd_close.s => unit_ramdisk/unit_rd_cmd_close.s} (82%) rename src/dos_m65/{dev_ramdisk/dev_rd_cmd_open.s => unit_ramdisk/unit_rd_cmd_open.s} (76%) rename src/dos_m65/{dev_ramdisk/dev_rd_cmd_read.s => unit_ramdisk/unit_rd_cmd_read.s} (83%) rename src/dos_m65/{dev_ramdisk/dev_rd_init.s => unit_ramdisk/unit_rd_init.s} (95%) rename src/dos_m65/{dev_sdcard/dev_sd_cmd_close.s => unit_sdcard/unit_sd_cmd_close.s} (82%) rename src/dos_m65/{dev_sdcard/dev_sd_cmd_open.s => unit_sdcard/unit_sd_cmd_open.s} (84%) rename src/dos_m65/{dev_sdcard/dev_sd_cmd_read.s => unit_sdcard/unit_sd_cmd_read.s} (56%) rename src/dos_m65/{dev_sdcard/dev_sd_init.s => unit_sdcard/unit_sd_init.s} (97%) diff --git a/Makefile b/Makefile index bea33050..572a2fd0 100644 --- a/Makefile +++ b/Makefile @@ -63,9 +63,13 @@ SRCDIR_KERNAL = $(SRCDIR_COMMON) \ SRCDIR_DOS_M65 = $(SRCDIR_COMMON) \ src/dos_m65 \ src/dos_m65/assets \ - src/dos_m65/dev_floppy \ - src/dos_m65/dev_ramdisk \ - src/dos_m65/dev_sdcard \ + src/dos_m65/filesystem_cbm \ + src/dos_m65/filesystem_vfs \ + src/dos_m65/lowlevel \ + src/dos_m65/pseudoiec \ + src/dos_m65/unit_floppy \ + src/dos_m65/unit_ramdisk \ + src/dos_m65/unit_sdcard \ src/dos_m65/utils SRCDIR_MON_M65 = $(SRCDIR_COMMON) \ diff --git a/src/dos_m65/dev_floppy/fs_1581_read_file.s b/src/dos_m65/dev_floppy/fs_1581_read_file.s deleted file mode 100644 index 49998c2b..00000000 --- a/src/dos_m65/dev_floppy/fs_1581_read_file.s +++ /dev/null @@ -1,17 +0,0 @@ - -; -; Hypervisor virtual filesystem - reading the file -; - - -fs_1581_read_file_open: - - ; XXX provide implementation - - jmp dos_EXIT_SEC - -fs_1581_read_file: - - ; XXX provide implementation - - jmp dos_EXIT_SEC diff --git a/src/dos_m65/dos_init.s b/src/dos_m65/dos_init.s index 1b1c8911..85b48e5c 100644 --- a/src/dos_m65/dos_init.s +++ b/src/dos_m65/dos_init.s @@ -41,9 +41,9 @@ dos_INIT: ; Initialize device handlers - jsr dev_sd_init - jsr dev_fd_init - jsr dev_rd_init + jsr unit_sd_init + jsr unit_fd_init + jsr unit_rd_init ; Initialize DMA list diff --git a/src/dos_m65/dos_vectab_dev.s b/src/dos_m65/dos_vectab_dev.s deleted file mode 100644 index d11f837c..00000000 --- a/src/dos_m65/dos_vectab_dev.s +++ /dev/null @@ -1,18 +0,0 @@ - -; -; Vector tables to device-specific routines -; - - -dos_cmd_OPEN_vectab: - - !word dev_sd_cmd_OPEN - !word dev_fd_cmd_OPEN - !word dev_rd_cmd_OPEN - - -dos_cmd_CLOSE_vectab: - - !word dev_sd_cmd_CLOSE - !word dev_fd_cmd_CLOSE - !word dev_rd_cmd_CLOSE diff --git a/src/dos_m65/dos_vectab_unit.s b/src/dos_m65/dos_vectab_unit.s new file mode 100644 index 00000000..ee5bce48 --- /dev/null +++ b/src/dos_m65/dos_vectab_unit.s @@ -0,0 +1,18 @@ + +; +; Vector tables to device-specific routines +; + + +dos_cmd_OPEN_vectab: + + !word unit_sd_cmd_OPEN + !word unit_fd_cmd_OPEN + !word unit_rd_cmd_OPEN + + +dos_cmd_CLOSE_vectab: + + !word unit_sd_cmd_CLOSE + !word unit_fd_cmd_CLOSE + !word unit_rd_cmd_CLOSE diff --git a/src/dos_m65/filesystem_cbm/fs_cbm_nextdirentry.s b/src/dos_m65/filesystem_cbm/fs_cbm_nextdirentry.s new file mode 100644 index 00000000..2b06f078 --- /dev/null +++ b/src/dos_m65/filesystem_cbm/fs_cbm_nextdirentry.s @@ -0,0 +1,13 @@ + +; +; CBM/CMD filesystem - helper routine to get the next directory entry +; + + +; Fills-in: PAR_FNAME, PAR_FTYPE, PAR_FSIZE_BYTES + + + +; XXX work-in-progress, this should be used within directory reading code + +fs_cbm_nextdirentry: \ No newline at end of file diff --git a/src/dos_m65/dev_floppy/fs_1581_read_dir.s b/src/dos_m65/filesystem_cbm/fs_cbm_read_dir.s similarity index 89% rename from src/dos_m65/dev_floppy/fs_1581_read_dir.s rename to src/dos_m65/filesystem_cbm/fs_cbm_read_dir.s index 4916aef6..b14728c4 100644 --- a/src/dos_m65/dev_floppy/fs_1581_read_dir.s +++ b/src/dos_m65/filesystem_cbm/fs_cbm_read_dir.s @@ -1,10 +1,10 @@ ; -; Hypervisor virtual filesystem - reading directory +; CBM/CMD virtual filesystem - reading directory ; -fs_1581_read_dir_open: +fs_cbm_read_dir_open: ; Try to read track 40, sector 0 (disk header) @@ -13,7 +13,7 @@ fs_1581_read_dir_open: lda #$00 sta PAR_SECTOR - jsr dev_fd_util_readsector ; XXX handle read errors + jsr lowlevel_readsector ; XXX handle read errors ; Create the first directory listing entry (title, id) @@ -78,7 +78,7 @@ fs_1581_read_dir_open: lda #$02 sta PAR_SECTOR - jsr dev_fd_util_readsector ; XXX handle read errors + jsr lowlevel_readsector ; XXX handle read errors ; Copy 2nd BAM sector to the cache @@ -106,7 +106,7 @@ fs_1581_read_dir_open: jmp dos_EXIT_CLC -fs_1581_read_dir: +fs_cbm_read_dir: lda FD_DIRENT @@ -147,12 +147,12 @@ fs_1581_read_dir: ldy #$02 ; start from determining file type jsr code_LDA_nnnn_Y - beq fs_1581_read_dir ; ignore deleted files (but allow DEL files in some cases) + beq fs_cbm_read_dir ; ignore deleted files (but allow DEL files in some cases) tax and #%00111111 ; for checking, filter out special bits cmp #$06 - bcs fs_1581_read_dir ; ignore unknown file types + bcs fs_cbm_read_dir ; ignore unknown file types stx PAR_FTYPE @@ -198,10 +198,10 @@ fs_1581_read_dir: ; Check if this was the last sector lda SHARED_BUF_1+0 - beq fs_1581_read_dir_blocksfree + beq fs_cbm_read_dir_blocksfree lda SHARED_BUF_1+1 cmp #$FF - beq fs_1581_read_dir_blocksfree + beq fs_cbm_read_dir_blocksfree ; Transition from 1st half of the buffer, to (possibly) the second one @@ -232,10 +232,10 @@ fs_1581_read_dir: ; Check if this was the last sector lda SHARED_BUF_1+$100+0 - beq fs_1581_read_dir_blocksfree + beq fs_cbm_read_dir_blocksfree lda SHARED_BUF_1+$100+1 cmp #$FF - beq fs_1581_read_dir_blocksfree + beq fs_cbm_read_dir_blocksfree ; Load new sector @@ -246,7 +246,7 @@ fs_1581_read_dir: @get_sector_common: - jsr dev_fd_util_readsector ; XXX handle read errors + jsr lowlevel_readsector ; XXX handle read errors ; Set new FD_DIRENT @@ -258,7 +258,7 @@ fs_1581_read_dir: sta FD_DIRENT jmp @cont -fs_1581_read_dir_blocksfree: +fs_cbm_read_dir_blocksfree: ; Copy the 'BLOCKS FREE' line diff --git a/src/dos_m65/filesystem_cbm/fs_cbm_read_file.s b/src/dos_m65/filesystem_cbm/fs_cbm_read_file.s new file mode 100644 index 00000000..11090289 --- /dev/null +++ b/src/dos_m65/filesystem_cbm/fs_cbm_read_file.s @@ -0,0 +1,31 @@ + +; +; CBM/CMD virtual filesystem - reading the file +; + + +fs_cbm_read_file_open: + + ; Get the first sector of the directory + + lda #40 + sta PAR_TRACK + lda #$03 + sta PAR_SECTOR + + jsr lowlevel_readsector ; XXX handle read errors + + + + + + + ; XXX provide implementation + + jmp dos_EXIT_SEC + +fs_cbm_read_file: + + ; XXX provide implementation + + jmp dos_EXIT_SEC diff --git a/src/dos_m65/dev_sdcard/fs_hvsr_util_nextdirentry.s b/src/dos_m65/filesystem_vfs/fs_vfs_nextdirentry.s similarity index 79% rename from src/dos_m65/dev_sdcard/fs_hvsr_util_nextdirentry.s rename to src/dos_m65/filesystem_vfs/fs_vfs_nextdirentry.s index f644b02d..9a855961 100644 --- a/src/dos_m65/dev_sdcard/fs_hvsr_util_nextdirentry.s +++ b/src/dos_m65/filesystem_vfs/fs_vfs_nextdirentry.s @@ -9,9 +9,7 @@ ; NOTE: overrides page pointed by FS_HVSR_DIRENT! -; XXX work-in-progress, this should be used within directory reading code - -fs_hvsr_util_nextdirentry: +fs_vfs_nextdirentry: ; Clear the page which will be used @@ -47,26 +45,26 @@ fs_hvsr_util_nextdirentry: ; ldx FS_HVSR_DIRENT+$40 ; file name length - beq fs_hvsr_util_nextdirentry ; do not even try for empty file name + beq fs_vfs_nextdirentry ; do not even try for empty file name cpx #20 - bcs fs_hvsr_util_nextdirentry ; if longer than 16 characters + dot + extension - also skip this one + bcs fs_vfs_nextdirentry ; if longer than 16 characters + dot + extension - also skip this one dex @lpname: lda FS_HVSR_DIRENT,x cmp #$22 - beq fs_hvsr_util_nextdirentry ; quotation mark is illegal + beq fs_vfs_nextdirentry ; quotation mark is illegal cmp #$2A - beq fs_hvsr_util_nextdirentry ; asterisk is illegal, it is used for filtering + beq fs_vfs_nextdirentry ; asterisk is illegal, it is used for filtering cmp #$3F - beq fs_hvsr_util_nextdirentry ; the question mark - in the MS-DOS world it is illegal + beq fs_vfs_nextdirentry ; the question mark - in the MS-DOS world it is illegal cmp #$20 - bcc fs_hvsr_util_nextdirentry ; control characters are not allowed + bcc fs_vfs_nextdirentry ; control characters are not allowed cmp #$5B bcc @lpname_next ; up to PETSCII 'Z' is OK cmp #$61 - bcc fs_hvsr_util_nextdirentry ; some characters are not allowed + bcc fs_vfs_nextdirentry ; some characters are not allowed cmp #$7E bne @lpname_1 lda #$A6 ; replace tilde / pi with something more sane @@ -75,7 +73,7 @@ fs_hvsr_util_nextdirentry: @lpname_1: cmp #$7B - bcs fs_hvsr_util_nextdirentry ; PETSCII-art and control characters are illegal + bcs fs_vfs_nextdirentry ; PETSCII-art and control characters are illegal clc sbc #$20 ; make everything the same case @@ -102,7 +100,7 @@ fs_hvsr_util_nextdirentry: txa and #$10 - beq fs_hvsr_util_nextdirentry ; this type is unknown + beq fs_vfs_nextdirentry ; this type is unknown @entity_dir: @@ -110,7 +108,7 @@ fs_hvsr_util_nextdirentry: lda FS_HVSR_DIRENT+$40 cmp #$11 - bcs fs_hvsr_util_nextdirentry ; skip entry if file name longer than 16 characters + bcs fs_vfs_nextdirentry ; skip entry if file name longer than 16 characters ; Set the type to directory @@ -124,8 +122,8 @@ fs_hvsr_util_nextdirentry: lda FS_HVSR_DIRENT+$40 sec sbc #$04 ; strip 4 bytes - for dot and extension - bmi fs_hvsr_util_nextdirentry ; if name too short, try next entry - beq fs_hvsr_util_nextdirentry ; if name too short, try next entry + bmi fs_vfs_nextdirentry ; if name too short, try next entry + beq fs_vfs_nextdirentry ; if name too short, try next entry sta FS_HVSR_DIRENT+$40 ; store corrected file name length tax @@ -133,7 +131,7 @@ fs_hvsr_util_nextdirentry: lda FS_HVSR_DIRENT, x cmp #$2E - +bne fs_hvsr_util_nextdirentry + +bne fs_vfs_nextdirentry ; ; Detect file type by extension @@ -165,12 +163,12 @@ fs_hvsr_util_nextdirentry: cpy #(dir_types__end - dir_types) bcc @lpext - jmp fs_hvsr_util_nextdirentry ; file extension not detected + jmp fs_vfs_nextdirentry ; file extension not detected @lpext_found: cpy #$18 - +beq fs_hvsr_util_nextdirentry ; file extension 'DIR' does not mean this is a directory + +beq fs_vfs_nextdirentry ; file extension 'DIR' does not mean this is a directory tya clc diff --git a/src/dos_m65/dev_sdcard/fs_hvsr_read_dir.s b/src/dos_m65/filesystem_vfs/fs_vfs_read_dir.s similarity index 83% rename from src/dos_m65/dev_sdcard/fs_hvsr_read_dir.s rename to src/dos_m65/filesystem_vfs/fs_vfs_read_dir.s index 3b80ad80..f1ca167b 100644 --- a/src/dos_m65/dev_sdcard/fs_hvsr_read_dir.s +++ b/src/dos_m65/filesystem_vfs/fs_vfs_read_dir.s @@ -4,7 +4,7 @@ ; -fs_hvsr_read_dir_open: +fs_vfs_read_dir_open: ; Open the directory @@ -44,23 +44,23 @@ fs_hvsr_read_dir_open: jmp dos_EXIT_CLC -fs_hvsr_read_dir: +fs_vfs_read_dir: ; Read dirent structure into $1000, process it, restore the memory content. ; Starting at $1000 VIC sees chargen, so this should be a safe place - jsr fs_hvsr_direntmem_prepare - jsr fs_hvsr_util_nextdirentry - jsr fs_hvsr_direntmem_restore ; processor status is preserved + jsr fs_vfs_direntmem_prepare + jsr fs_vfs_nextdirentry + jsr fs_vfs_direntmem_restore ; processor status is preserved ; If nothing to read, output 'blocks free' - +bcs fs_hvsr_read_dir_blocksfree + +bcs fs_vfs_read_dir_blocksfree ; Check if file name matches the filter jsr util_dir_filter - bne fs_hvsr_read_dir ; if does not match, try the next entry + bne fs_vfs_read_dir ; if does not match, try the next entry ; Otherwise, convert the file length from bytes to blocks to display @@ -84,7 +84,7 @@ fs_hvsr_read_dir: clc rts -fs_hvsr_read_dir_blocksfree: +fs_vfs_read_dir_blocksfree: ; Set pointer to 'BLOCKS FREE.' line @@ -117,7 +117,7 @@ fs_hvsr_read_dir_blocksfree: ; Helper routines ; -fs_hvsr_direntmem_prepare: +fs_vfs_direntmem_prepare: ldx #$00 @1: @@ -128,7 +128,7 @@ fs_hvsr_direntmem_prepare: rts -fs_hvsr_direntmem_restore: +fs_vfs_direntmem_restore: php diff --git a/src/dos_m65/dev_sdcard/fs_hvsr_read_file.s b/src/dos_m65/filesystem_vfs/fs_vfs_read_file.s similarity index 70% rename from src/dos_m65/dev_sdcard/fs_hvsr_read_file.s rename to src/dos_m65/filesystem_vfs/fs_vfs_read_file.s index cddb95fb..db97b15f 100644 --- a/src/dos_m65/dev_sdcard/fs_hvsr_read_file.s +++ b/src/dos_m65/filesystem_vfs/fs_vfs_read_file.s @@ -4,7 +4,7 @@ ; -fs_hvsr_read_file_open: +fs_vfs_read_file_open: ; Open the directory @@ -28,12 +28,12 @@ fs_hvsr_read_file_open: ; Read dirent structures into $1000, find the first matching file ; Starting at $1000 VIC sees chargen, so this should be a safe place - jsr fs_hvsr_direntmem_prepare + jsr fs_vfs_direntmem_prepare @lp_find: - jsr fs_hvsr_util_nextdirentry ; fetch the next file name - +bcs fs_hvsr_file_not_found + jsr fs_vfs_nextdirentry ; fetch the next file name + +bcs fs_vfs_file_not_found ; Only accept files of type 'PRG', properly closed @@ -49,9 +49,9 @@ fs_hvsr_read_file_open: ; Found the file - load it - jsr fs_hvsr_direntmem_restore ; restore $1000 memory content + jsr fs_vfs_direntmem_restore ; restore $1000 memory content - lda #$18 ; dos_openfile + lda #$18 ; dos_openfile sta HTRAP00 +nop @@ -62,15 +62,15 @@ fs_hvsr_read_file_open: lda #$03 ; mode: read file sta SD_MODE - jsr fs_hvsr_read_file + jsr fs_vfs_read_file jmp dos_EXIT -fs_hvsr_read_file: +fs_vfs_read_file: ; Read chunk of data to SD card buffer ldx SD_DESC - lda #$1A ; dos_readfile + lda #$1A ; dos_readfile sta HTRAP00 +nop @@ -87,7 +87,7 @@ fs_hvsr_read_file: ora SD_ACPTR_LEN+0 bne @copy - lda #$20 ; dos_closefile + lda #$20 ; dos_closefile sta HTRAP00 +nop @@ -106,7 +106,7 @@ fs_hvsr_read_file: ; Copy data to SHARED_BUF_0 - lda #%10000000 ; select SD card buffer + lda #%10000000 ; select SD card buffer tsb SD_BUFCTL ; Copy data using DMA job @@ -120,21 +120,21 @@ fs_hvsr_read_file: lda #$01 sta DMAJOB_DST_ADDR+2 - jsr util_dma_launch_from_hwbuf ; execute DMA job + jsr util_dma_launch_from_hwbuf ; execute DMA job clc rts -fs_hvsr_file_not_found: +fs_vfs_file_not_found: - jsr fs_hvsr_direntmem_restore ; restore $1000 memory content + jsr fs_vfs_direntmem_restore ; restore $1000 memory content ldx SD_DESC - lda #$16 ; dos_closedir + lda #$16 ; dos_closedir sta HTRAP00 +nop - lda #39 ; file not found error + lda #39 ; file not found error jsr util_status_SD lda #K_ERR_FILE_NOT_FOUND diff --git a/src/dos_m65/dev_floppy/dev_fd_util_readsector.s b/src/dos_m65/lowlevel/lowlevel_readsector.s similarity index 95% rename from src/dos_m65/dev_floppy/dev_fd_util_readsector.s rename to src/dos_m65/lowlevel/lowlevel_readsector.s index bf020b28..c75e23ca 100644 --- a/src/dos_m65/dev_floppy/dev_fd_util_readsector.s +++ b/src/dos_m65/lowlevel/lowlevel_readsector.s @@ -1,8 +1,8 @@ -; Read a single sector from a floppy drive +; Read a single sector from a block device -dev_fd_util_readsector: +lowlevel_readsector: ; Select FDD sector as buffer diff --git a/src/dos_m65/msg_acptr.s b/src/dos_m65/pseudoiec/msg_acptr.s similarity index 98% rename from src/dos_m65/msg_acptr.s rename to src/dos_m65/pseudoiec/msg_acptr.s index d22c7884..c662618c 100644 --- a/src/dos_m65/msg_acptr.s +++ b/src/dos_m65/pseudoiec/msg_acptr.s @@ -56,7 +56,7 @@ msg_ACPTR_read_SD: ora SD_ACPTR_LEN+1 bne @3 - jsr dev_sd_cmd_READ + jsr unit_sd_cmd_READ bcc @3 jsr kernalstatus_EOI @3: @@ -86,7 +86,7 @@ msg_ACPTR_read_FD: ora FD_ACPTR_LEN+1 bne @3 - jsr dev_fd_cmd_READ + jsr unit_fd_cmd_READ bcc @3 jsr kernalstatus_EOI @3: diff --git a/src/dos_m65/msg_ciout.s b/src/dos_m65/pseudoiec/msg_ciout.s similarity index 87% rename from src/dos_m65/msg_ciout.s rename to src/dos_m65/pseudoiec/msg_ciout.s index 56ec372a..5f819460 100644 --- a/src/dos_m65/msg_ciout.s +++ b/src/dos_m65/pseudoiec/msg_ciout.s @@ -52,7 +52,7 @@ msg_CIOUT_cmdfn_SD: ; get next byte of status - SD card lda #$A0 sta SD_CMDFN_BUF,x plp - +bcs dev_sd_cmd_OPEN_EOI ; if EOI - execute command + +bcs unit_sd_cmd_OPEN_EOI ; if EOI - execute command jmp dos_EXIT_CLC msg_CIOUT_cmdfn_FD: ; get next byte of status - floppy @@ -67,7 +67,7 @@ msg_CIOUT_cmdfn_FD: ; get next byte of status - floppy lda #$A0 sta FD_CMDFN_BUF,x plp - +bcs dev_fd_cmd_OPEN_EOI ; if EOI - execute command + +bcs unit_fd_cmd_OPEN_EOI ; if EOI - execute command jmp dos_EXIT_CLC msg_CIOUT_cmdfn_RD: ; get next byte of status - ram disk @@ -82,7 +82,7 @@ msg_CIOUT_cmdfn_RD: ; get next byte of status - ram disk lda #$A0 sta RD_CMDFN_BUF,x plp - +bcs dev_rd_cmd_OPEN_EOI ; if EOI - execute command + +bcs unit_rd_cmd_OPEN_EOI ; if EOI - execute command jmp dos_EXIT_CLC msg_CIOUT_cmdfn_vectab: diff --git a/src/dos_m65/msg_listen.s b/src/dos_m65/pseudoiec/msg_listen.s similarity index 100% rename from src/dos_m65/msg_listen.s rename to src/dos_m65/pseudoiec/msg_listen.s diff --git a/src/dos_m65/msg_second.s b/src/dos_m65/pseudoiec/msg_second.s similarity index 100% rename from src/dos_m65/msg_second.s rename to src/dos_m65/pseudoiec/msg_second.s diff --git a/src/dos_m65/msg_talk.s b/src/dos_m65/pseudoiec/msg_talk.s similarity index 100% rename from src/dos_m65/msg_talk.s rename to src/dos_m65/pseudoiec/msg_talk.s diff --git a/src/dos_m65/msg_tksa.s b/src/dos_m65/pseudoiec/msg_tksa.s similarity index 100% rename from src/dos_m65/msg_tksa.s rename to src/dos_m65/pseudoiec/msg_tksa.s diff --git a/src/dos_m65/msg_unlsn_untlk.s b/src/dos_m65/pseudoiec/msg_unlsn_untlk.s similarity index 100% rename from src/dos_m65/msg_unlsn_untlk.s rename to src/dos_m65/pseudoiec/msg_unlsn_untlk.s diff --git a/src/dos_m65/dev_floppy/dev_fd_cmd_close.s b/src/dos_m65/unit_floppy/unit_fd_cmd_close.s similarity index 82% rename from src/dos_m65/dev_floppy/dev_fd_cmd_close.s rename to src/dos_m65/unit_floppy/unit_fd_cmd_close.s index cf2b6b6f..fc980641 100644 --- a/src/dos_m65/dev_floppy/dev_fd_cmd_close.s +++ b/src/dos_m65/unit_floppy/unit_fd_cmd_close.s @@ -4,7 +4,7 @@ ; -dev_fd_cmd_CLOSE: +unit_fd_cmd_CLOSE: ; XXX provide implementation diff --git a/src/dos_m65/dev_floppy/dev_fd_cmd_open.s b/src/dos_m65/unit_floppy/unit_fd_cmd_open.s similarity index 84% rename from src/dos_m65/dev_floppy/dev_fd_cmd_open.s rename to src/dos_m65/unit_floppy/unit_fd_cmd_open.s index 9f66198b..0de83174 100644 --- a/src/dos_m65/dev_floppy/dev_fd_cmd_open.s +++ b/src/dos_m65/unit_floppy/unit_fd_cmd_open.s @@ -4,14 +4,14 @@ ; -dev_fd_cmd_OPEN: +unit_fd_cmd_OPEN: lda #$01 ; mode: receive command or file name sta FD_MODE jmp dos_EXIT_CLC -dev_fd_cmd_OPEN_EOI: +unit_fd_cmd_OPEN_EOI: ; XXX this dispatcher is temporary @@ -28,17 +28,17 @@ dev_fd_cmd_OPEN_EOI: lda FD_CMDFN_BUF cmp #'$' - beq dev_fd_cmd_OPEN_dir + beq unit_fd_cmd_OPEN_dir ; FALLTROUGH -dev_fd_cmd_OPEN_file: +unit_fd_cmd_OPEN_file: ; XXX provide implementation jmp dos_EXIT_CLC -dev_fd_cmd_OPEN_dir: +unit_fd_cmd_OPEN_dir: lda #$02 ; mode: read directory sta FD_MODE @@ -57,4 +57,4 @@ dev_fd_cmd_OPEN_dir: @lp1_end: - jmp fs_1581_read_dir_open + jmp fs_cbm_read_dir_open diff --git a/src/dos_m65/dev_floppy/dev_fd_cmd_read.s b/src/dos_m65/unit_floppy/unit_fd_cmd_read.s similarity index 56% rename from src/dos_m65/dev_floppy/dev_fd_cmd_read.s rename to src/dos_m65/unit_floppy/unit_fd_cmd_read.s index 6a4f76f7..161b346a 100644 --- a/src/dos_m65/dev_floppy/dev_fd_cmd_read.s +++ b/src/dos_m65/unit_floppy/unit_fd_cmd_read.s @@ -4,17 +4,17 @@ ; -dev_fd_cmd_READ: +unit_fd_cmd_READ: lda FD_MODE cmp #$03 - +beq fs_1581_read_file + +beq fs_cbm_read_file lda FD_DIR_PHASE cmp #$01 - +beq fs_1581_read_dir + +beq fs_cbm_read_dir cmp #$02 - +beq fs_1581_read_dir_blocksfree + +beq fs_cbm_read_dir_blocksfree sec ; mark EOI rts diff --git a/src/dos_m65/dev_floppy/dev_fd_init.s b/src/dos_m65/unit_floppy/unit_fd_init.s similarity index 95% rename from src/dos_m65/dev_floppy/dev_fd_init.s rename to src/dos_m65/unit_floppy/unit_fd_init.s index 4be7c57a..45143cce 100644 --- a/src/dos_m65/dev_floppy/dev_fd_init.s +++ b/src/dos_m65/unit_floppy/unit_fd_init.s @@ -4,7 +4,7 @@ ; -dev_fd_init: +unit_fd_init: ; Copy status string diff --git a/src/dos_m65/dev_ramdisk/dev_rd_cmd_close.s b/src/dos_m65/unit_ramdisk/unit_rd_cmd_close.s similarity index 82% rename from src/dos_m65/dev_ramdisk/dev_rd_cmd_close.s rename to src/dos_m65/unit_ramdisk/unit_rd_cmd_close.s index 87575b81..60f9a9c3 100644 --- a/src/dos_m65/dev_ramdisk/dev_rd_cmd_close.s +++ b/src/dos_m65/unit_ramdisk/unit_rd_cmd_close.s @@ -4,7 +4,7 @@ ; -dev_rd_cmd_CLOSE: +unit_rd_cmd_CLOSE: ; XXX provide implementation diff --git a/src/dos_m65/dev_ramdisk/dev_rd_cmd_open.s b/src/dos_m65/unit_ramdisk/unit_rd_cmd_open.s similarity index 76% rename from src/dos_m65/dev_ramdisk/dev_rd_cmd_open.s rename to src/dos_m65/unit_ramdisk/unit_rd_cmd_open.s index 4e2b436e..dba16a23 100644 --- a/src/dos_m65/dev_ramdisk/dev_rd_cmd_open.s +++ b/src/dos_m65/unit_ramdisk/unit_rd_cmd_open.s @@ -4,13 +4,13 @@ ; -dev_rd_cmd_OPEN: +unit_rd_cmd_OPEN: ; XXX provide implementation jmp dos_EXIT_SEC -dev_rd_cmd_OPEN_EOI: +unit_rd_cmd_OPEN_EOI: ; XXX provide implementation diff --git a/src/dos_m65/dev_ramdisk/dev_rd_cmd_read.s b/src/dos_m65/unit_ramdisk/unit_rd_cmd_read.s similarity index 83% rename from src/dos_m65/dev_ramdisk/dev_rd_cmd_read.s rename to src/dos_m65/unit_ramdisk/unit_rd_cmd_read.s index 36a95300..cd9a0b0c 100644 --- a/src/dos_m65/dev_ramdisk/dev_rd_cmd_read.s +++ b/src/dos_m65/unit_ramdisk/unit_rd_cmd_read.s @@ -4,7 +4,7 @@ ; -dev_rd_cmd_READ: +unit_rd_cmd_READ: ; XXX provide implementation diff --git a/src/dos_m65/dev_ramdisk/dev_rd_init.s b/src/dos_m65/unit_ramdisk/unit_rd_init.s similarity index 95% rename from src/dos_m65/dev_ramdisk/dev_rd_init.s rename to src/dos_m65/unit_ramdisk/unit_rd_init.s index 964eae2a..f12dd15c 100644 --- a/src/dos_m65/dev_ramdisk/dev_rd_init.s +++ b/src/dos_m65/unit_ramdisk/unit_rd_init.s @@ -4,7 +4,7 @@ ; -dev_rd_init: +unit_rd_init: ; Copy status string diff --git a/src/dos_m65/dev_sdcard/dev_sd_cmd_close.s b/src/dos_m65/unit_sdcard/unit_sd_cmd_close.s similarity index 82% rename from src/dos_m65/dev_sdcard/dev_sd_cmd_close.s rename to src/dos_m65/unit_sdcard/unit_sd_cmd_close.s index 9d0c23da..ac427a74 100644 --- a/src/dos_m65/dev_sdcard/dev_sd_cmd_close.s +++ b/src/dos_m65/unit_sdcard/unit_sd_cmd_close.s @@ -4,7 +4,7 @@ ; -dev_sd_cmd_CLOSE: +unit_sd_cmd_CLOSE: ; XXX provide implementation diff --git a/src/dos_m65/dev_sdcard/dev_sd_cmd_open.s b/src/dos_m65/unit_sdcard/unit_sd_cmd_open.s similarity index 84% rename from src/dos_m65/dev_sdcard/dev_sd_cmd_open.s rename to src/dos_m65/unit_sdcard/unit_sd_cmd_open.s index 17a34318..56a2629d 100644 --- a/src/dos_m65/dev_sdcard/dev_sd_cmd_open.s +++ b/src/dos_m65/unit_sdcard/unit_sd_cmd_open.s @@ -4,14 +4,14 @@ ; -dev_sd_cmd_OPEN: +unit_sd_cmd_OPEN: lda #$01 ; mode: receive command or file name sta SD_MODE jmp dos_EXIT_CLC -dev_sd_cmd_OPEN_EOI: +unit_sd_cmd_OPEN_EOI: ; XXX this dispatcher is temporary @@ -28,11 +28,11 @@ dev_sd_cmd_OPEN_EOI: lda SD_CMDFN_BUF cmp #'$' - beq dev_sd_cmd_OPEN_dir + beq unit_sd_cmd_OPEN_dir ; FALLTROUGH -dev_sd_cmd_OPEN_file: +unit_sd_cmd_OPEN_file: ; Copy the filter from command XXX this should be moved to common part and deduplicated with directory opening @@ -48,10 +48,10 @@ dev_sd_cmd_OPEN_file: @lp1_end: - jmp fs_hvsr_read_file_open + jmp fs_vfs_read_file_open -dev_sd_cmd_OPEN_dir: +unit_sd_cmd_OPEN_dir: lda #$02 ; mode: read directory sta SD_MODE @@ -70,4 +70,4 @@ dev_sd_cmd_OPEN_dir: @lp1_end: - jmp fs_hvsr_read_dir_open + jmp fs_vfs_read_dir_open diff --git a/src/dos_m65/dev_sdcard/dev_sd_cmd_read.s b/src/dos_m65/unit_sdcard/unit_sd_cmd_read.s similarity index 56% rename from src/dos_m65/dev_sdcard/dev_sd_cmd_read.s rename to src/dos_m65/unit_sdcard/unit_sd_cmd_read.s index 9852d5b0..2a569b80 100644 --- a/src/dos_m65/dev_sdcard/dev_sd_cmd_read.s +++ b/src/dos_m65/unit_sdcard/unit_sd_cmd_read.s @@ -4,17 +4,17 @@ ; -dev_sd_cmd_READ: +unit_sd_cmd_READ: lda SD_MODE cmp #$03 - +beq fs_hvsr_read_file + +beq fs_vfs_read_file lda SD_DIR_PHASE cmp #$01 - +beq fs_hvsr_read_dir + +beq fs_vfs_read_dir cmp #$02 - +beq fs_hvsr_read_dir_blocksfree + +beq fs_vfs_read_dir_blocksfree sec ; mark EOI rts diff --git a/src/dos_m65/dev_sdcard/dev_sd_init.s b/src/dos_m65/unit_sdcard/unit_sd_init.s similarity index 97% rename from src/dos_m65/dev_sdcard/dev_sd_init.s rename to src/dos_m65/unit_sdcard/unit_sd_init.s index 4ee236a8..6f79c036 100644 --- a/src/dos_m65/dev_sdcard/dev_sd_init.s +++ b/src/dos_m65/unit_sdcard/unit_sd_init.s @@ -4,7 +4,7 @@ ; -dev_sd_init: +unit_sd_init: ; Copy initial status string