CBDOS refactoring
This commit is contained in:
1 parent
659330c9f1
commit
4234591508
31 files changed
+164
-135
No files matched your search
@@ -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) \
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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:
|
||||
+13
-13
@@ -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
|
||||
|
||||
@@ -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
|
||||
+16
-18
@@ -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
|
||||
+10
-10
@@ -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
|
||||
|
||||
+16
-16
@@ -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
|
||||
+2
-2
@@ -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
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+1
-1
@@ -4,7 +4,7 @@
|
||||
;
|
||||
|
||||
|
||||
dev_fd_cmd_CLOSE:
|
||||
unit_fd_cmd_CLOSE:
|
||||
|
||||
; XXX provide implementation
|
||||
|
||||
+6
-6
@@ -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
|
||||
+4
-4
@@ -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
|
||||
@@ -4,7 +4,7 @@
|
||||
;
|
||||
|
||||
|
||||
dev_fd_init:
|
||||
unit_fd_init:
|
||||
|
||||
; Copy status string
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
;
|
||||
|
||||
|
||||
dev_rd_cmd_CLOSE:
|
||||
unit_rd_cmd_CLOSE:
|
||||
|
||||
; XXX provide implementation
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
;
|
||||
|
||||
|
||||
dev_rd_cmd_READ:
|
||||
unit_rd_cmd_READ:
|
||||
|
||||
; XXX provide implementation
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
;
|
||||
|
||||
|
||||
dev_rd_init:
|
||||
unit_rd_init:
|
||||
|
||||
; Copy status string
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
;
|
||||
|
||||
|
||||
dev_sd_cmd_CLOSE:
|
||||
unit_sd_cmd_CLOSE:
|
||||
|
||||
; XXX provide implementation
|
||||
|
||||
+7
-7
@@ -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
|
||||
+4
-4
@@ -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
|
||||
@@ -4,7 +4,7 @@
|
||||
;
|
||||
|
||||
|
||||
dev_sd_init:
|
||||
unit_sd_init:
|
||||
|
||||
; Copy initial status string
|
||||
|
||||
Reference in new issue
Block a user