CBDOS can now return floppy header
This commit is contained in:
1 parent
70887cc53c
commit
52b2686f0e
6 files changed
+144
-93
No files matched your search
+42
-40
@@ -109,14 +109,7 @@
|
||||
!addr FD_STATUS_IDX = $806E ; - floppy
|
||||
!addr RD_STATUS_IDX = $806F ; - ram disk
|
||||
|
||||
!addr DMAJOB_LIST = $8070 ; 15 bytes, a general purpose DMA list
|
||||
!addr DMAJOB_SRC_MB = DMAJOB_LIST+2
|
||||
!addr DMAJOB_DST_MB = DMAJOB_LIST+4
|
||||
!addr DMAJOB_SIZE = DMAJOB_LIST+7 ; keep $0200 here
|
||||
!addr DMAJOB_SRC_ADDR = DMAJOB_LIST+9
|
||||
!addr DMAJOB_DST_ADDR = DMAJOB_LIST+12
|
||||
|
||||
!addr SD_DESC = $807F ; current file descriptor
|
||||
!addr SD_DESC = $8070 ; current file descriptor
|
||||
|
||||
|
||||
|
||||
@@ -129,54 +122,63 @@
|
||||
|
||||
; BAM cache for floppy drives; 2 KB (4 blocks) each, to cover up to ED floppies - XXX implementation to be written
|
||||
|
||||
!addr FD_BAM_CACHE_0 = $8A00 ; - floppy drive 0
|
||||
!addr FD_BAM_CACHE_1 = $8E00 ; - floppy drive 1
|
||||
!addr FD_BAM_CACHE_0 = $8200 ; - floppy drive 0
|
||||
!addr FD_BAM_CACHE_1 = $8600 ; - floppy drive 1
|
||||
|
||||
; General purpose buffers, 512 bytes each, each starts at page start - XXX dynamic alllocation to be written
|
||||
|
||||
!addr SHARED_BUF_0 = $9200 ; XXX temporarily hardcoded for usage by SD card
|
||||
!addr SHARED_BUF_1 = $9400 ; XXX temporarily hardcoded for usage by floppy
|
||||
!addr SHARED_BUF_2 = $9600
|
||||
!addr SHARED_BUF_3 = $9800
|
||||
!addr SHARED_BUF_4 = $9A00
|
||||
!addr SHARED_BUF_5 = $9C00
|
||||
!addr SHARED_BUF_6 = $9E00
|
||||
!addr SHARED_BUF_7 = $A000
|
||||
!addr SHARED_BUF_8 = $A200
|
||||
!addr SHARED_BUF_9 = $A400
|
||||
!addr SHARED_BUF_A = $A600
|
||||
!addr SHARED_BUF_B = $A800
|
||||
!addr SHARED_BUF_C = $AA00
|
||||
!addr SHARED_BUF_D = $AC00
|
||||
!addr SHARED_BUF_E = $AE00
|
||||
!addr SHARED_BUF_F = $B000
|
||||
!addr SHARED_BUF_0 = $8A00 ; XXX temporarily hardcoded for usage by SD card
|
||||
!addr SHARED_BUF_1 = $8C00 ; XXX temporarily hardcoded for usage by floppy
|
||||
!addr SHARED_BUF_2 = $8E00
|
||||
!addr SHARED_BUF_3 = $9000
|
||||
!addr SHARED_BUF_4 = $9200
|
||||
!addr SHARED_BUF_5 = $9400
|
||||
!addr SHARED_BUF_6 = $9600
|
||||
!addr SHARED_BUF_7 = $9800
|
||||
!addr SHARED_BUF_8 = $9A00
|
||||
!addr SHARED_BUF_9 = $9C00
|
||||
!addr SHARED_BUF_A = $9E00
|
||||
!addr SHARED_BUF_B = $A000
|
||||
!addr SHARED_BUF_C = $A200
|
||||
!addr SHARED_BUF_D = $A400
|
||||
!addr SHARED_BUF_E = $A600
|
||||
!addr SHARED_BUF_F = $A800
|
||||
|
||||
; Memory shadow, needed for SD card support
|
||||
|
||||
!addr SD_MEMSHADOW_BUF = $8200 ; 256 byte buffer for preserving original memory content
|
||||
!addr SD_MEMSHADOW_BUF = $AA00 ; 256 byte buffer for preserving original memory content
|
||||
|
||||
; Command/filename buffers, 128 bytes each - XXX extend to 256 bytes (change implementation)
|
||||
|
||||
!addr SD_CMDFN_BUF = $B300 ; - SD card
|
||||
!addr FD_CMDFN_BUF = $B400 ; - floppy
|
||||
!addr RD_CMDFN_BUF = $B500 ; - ram disk
|
||||
!addr SD_CMDFN_BUF = $AB00 ; - SD card
|
||||
!addr FD_CMDFN_BUF = $AC00 ; - floppy
|
||||
!addr RD_CMDFN_BUF = $AD00 ; - ram disk
|
||||
|
||||
; Directory entry buffers, in BASIC format, $30 bytes each
|
||||
|
||||
!addr XX_DIRENT_BUF = $B600
|
||||
!addr SD_DIRENT_BUF = $B600 ; - SD card
|
||||
!addr FD_DIRENT_BUF = $B630 ; - floppy
|
||||
!addr RD_DIRENT_BUF = $B660 ; - ram disk
|
||||
!addr XX_DIRENT_BUF = $AE00
|
||||
!addr SD_DIRENT_BUF = $AE00 ; - SD card
|
||||
!addr FD_DIRENT_BUF = $AE30 ; - floppy
|
||||
!addr RD_DIRENT_BUF = $AE60 ; - ram disk
|
||||
|
||||
; Status buffers, content terminated by 0, $30 bytes each
|
||||
|
||||
!addr XX_STATUS_BUF = $B690
|
||||
!addr SD_STATUS_BUF = $B690 ; - SD card
|
||||
!addr FD_STATUS_BUF = $B6C0 ; - floppy
|
||||
!addr RD_STATUS_BUF = $B6F0 ; - ram disk
|
||||
!addr XX_STATUS_BUF = $AE90
|
||||
!addr SD_STATUS_BUF = $AE90 ; - SD card
|
||||
!addr FD_STATUS_BUF = $AEC0 ; - floppy
|
||||
!addr RD_STATUS_BUF = $AEF0 ; - ram disk
|
||||
|
||||
; Common DMA list
|
||||
|
||||
!addr DMAJOB_LIST = $AF20 ; 15 bytes, a general purpose DMA list
|
||||
!addr DMAJOB_SRC_MB = DMAJOB_LIST+2
|
||||
!addr DMAJOB_DST_MB = DMAJOB_LIST+4
|
||||
!addr DMAJOB_SIZE = DMAJOB_LIST+7 ; keep $0200 here
|
||||
!addr DMAJOB_SRC_ADDR = DMAJOB_LIST+9
|
||||
!addr DMAJOB_DST_ADDR = DMAJOB_LIST+12
|
||||
|
||||
;
|
||||
; Reserved 18 KB for floppy track buffers + some area for track metadata
|
||||
; Reserved 20 KB for floppy track buffers + some area for track metadata
|
||||
;
|
||||
|
||||
!addr XX_REMAINING = $B720
|
||||
!addr XX_REMAINING = $AF2F
|
||||
Reference in new issue
Block a user