From 110d50b4f0a0a5f1b1abccf14d7229cd1544851a Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 10 Sep 2026 11:34:38 +0300 Subject: [PATCH] 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). --- _sd/README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/_sd/README.md b/_sd/README.md index 44bab27..592ed24 100644 --- a/_sd/README.md +++ b/_sd/README.md @@ -71,8 +71,17 @@ CPU. ``` cd _sd sjasmplus.exe zc_sd_driver_body.asm --sym=body_syms_new.txt -# упаковать zc_sd_driver_body.bin -> zc_sd_driver_body.pb (PackBits) -# обновить body_syms.inc из body_syms_new.txt (без DATA/CONF) + +# зачем: --sym выгружает адреса ВСЕХ меток тела (включая DATA/CONF -- +# служебные метки портов ввода-вывода), а zc_sd_driver.asm уже сам +# объявляет DATA/CONF как константы -- если подключить дамп как есть, +# получим "Duplicate label: DATA"/"Duplicate label: CONF". Поэтому +# перед тем как класть файл в body_syms.inc, эти две строки убираются: +grep -v -E "^(DATA|CONF): EQU" body_syms_new.txt > body_syms.inc + +# упаковать zc_sd_driver_body.bin -> zc_sd_driver_body.pb (PackBits; +# любым PackBits-кодировщиком с раунд-трип проверкой -- контрольный +# байт C: C=128 конец, C<128 литерал C+1 байт, C>128 повтор (257-C) раз) sjasmplus.exe zc_sd_driver.asm ```