Replace closed WDFCVBI2.COD with from-scratch open SD/FAT32 driver

Renamed as zc_sd_driver.asm/zc_sd_driver_body.asm (no relation to Wild
Commander). Fixes a stale-IX bug where core_mkfile's filter_name_to_83
left IX pointing into driver memory instead of restoring it, causing
zifi.asm's save_downloaded_file to read the wrong page/address for
every SAVE512 call after MKFILE. All CORE dispatch entry points now
preserve IX across the call. Also fixes a body/#2000 jump-table
overlap, sdbuf DMA word-alignment, and a load_ram_page staleness race
in zifi.asm's own download bookkeeping.
This commit is contained in:
2026-09-09 20:50:06 +03:00
parent 06c9efa9a8
commit c3c5c7dccc
7 changed files with 5452 additions and 18 deletions
+12 -1
View File
@@ -10,7 +10,18 @@ Pager = 0
;Block = #e000, 5,violent.bin
Block = #c000, 2,zifi.bin
Block = #c000, 3,ptplay.bin
Block = #e000, #0f,WDFCVBI2.COD ; sd driver
;Block = #e000, #0f,WDFCVBI2.COD ; sd driver -- OLD, closed driver
; (backed up in _backup_old_driver/),
; disabled while testing the from-
; scratch replacement below
Block = #e000, #0f,zc_sd_driver.bin ; sd driver (from-scratch replacement,
; see [[project-zifi-custom-sd-driver]]) --
; driver is entered via PAGE0 (CPU slot 0,
; #0000-#3FFF) where CORE=#2002 lives; the
; .asm pads 2 bytes at its own #2000 so the
; jump table lands exactly on #2002 once
; loaded here (spgbld needs a 512-aligned
; Block address, #e002 is rejected)
Block = #c000, #10,cursor.tga.pix4