Commit Graph
6 Commits
Author SHA1 Message Date
alex 110d50b4f0 Spell out the body_syms.inc regeneration step as real commands
The prose description ("update body_syms.inc from body_syms_new.txt,
without DATA/CONF") wasn't clear on its own -- replaced with the
actual grep command and a short explanation of why DATA/CONF get
stripped (zc_sd_driver.asm already declares them itself).
2026-09-10 11:34:38 +03:00
alex 5f2c6c46c8 Track body_syms.inc
zc_sd_driver.asm INCLUDEs it directly; without it the repo isn't
buildable from a fresh clone. Generated from zc_sd_driver_body.asm's
own --sym dump (DATA/CONF stripped, see _sd/README.md's build steps).
2026-09-10 11:30:25 +03:00
alex c466013e69 Document zc_sd_driver's feature set beyond the bare CORE ABI
MBR/partition detection, SDSC/SDHC/SDXC auto-addressing, LBA range
guard, BPB/FAT32 validation, FAT mirroring, free-cluster search with
FSInfo hint, LFN support, RTC-based real date/time stamping, and
multi-cluster streaming read/write.
2026-09-10 11:19:17 +03:00
alex 21d4c3361e Fix SAVE512/LOAD512 page-wrap losing a marker-stripped offset remainder
sv512_advance/lv512_advance hardcoded the post-wrap offset to exactly
#4000, discarding whatever the add overshot #8000 by. Invisible for
page-aligned transfers, but create_filename's ".EXT"-marker handling
(strips a leading 4-byte ".TRD"/".SCL"/etc marker some archive
downloads carry) starts thread.adress a few bytes past #4000, so the
reset silently dropped that offset on the first page wrap only,
splicing 4 stray bytes into the saved file and losing its real last 4
bytes. Fixed by subtracting #40 from H instead of resetting it (CP
doesn't touch A, so this costs zero extra bytes). Confirmed via a
direct RAM-vs-disk MD5 comparison on a 640KB, 40-page-boundary
download: byte-for-byte identical after the fix.
2026-09-09 23:15:13 +03:00
alex c3c5c7dccc 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.
2026-09-09 20:50:06 +03:00
alex c0d5110ea7 Initial commit 2026-08-31 21:04:48 +03:00