zeptoforth научил FAT32 искать за первый сектор файла
У файловой системы на микроконтроллере особенно неприятны ошибки, которые проявляются только после первых удачных байтов. Редактор открывает файл, начало читается, затем команда seek уходит за первый сектор — и инструмент, на который уже опирается вся интерактивная среда, перестаёт видеть дальнейшие данные. Именно такой дефект в `fat32::seek-file` заявлен исправленным в zeptoforth 1.17.1, опубликованном 23 октября 2026 года.
Файловая ошибка внутри живой среды
Для Forth это не мелочь интерфейса. zeptoforth задуман как живая среда на Cortex-M: слова можно определять и исполнять прямо на плате, а исходный текст и данные организуются в привычные Forth-блоки. Здесь файловая система обслуживает рабочий процесс на самом устройстве, а не играет роль редкого канала для выгрузки логов на ПК.
В релизе обновили и терминальный эмулятор PicoCalc. Появились настраиваемые цвета, принудительная полная перерисовка символов и поля прокрутки в стиле DEC terminal margins. Такие детали нужны экранному редактору: терминал должен уметь корректно обновить весь текстовый слой и ограничить область прокрутки, сохраняя остальной экран. Вместе с ними менялись zeptoed, block editor и USB Mass Storage.
Терминал, которому нужен полный экран
Самый опасный пункт релиза спрятан в установочной опции `blocks-fat32?`. Теперь по умолчанию block storage не форматируется как FAT32: выбран режим `no_blocks_fat32`. При явном `blocks_fat32` среда создаёт на этом хранилище FAT32, и прежние данные могут быть перезаписаны. В качестве файловой системы по умолчанию документация ориентирует PicoCalc на FAT32-карту SDHC. Это разумное разделение: область Forth-блоков остаётся нетронутой, пока разработчик явно не попросит превратить её в том FAT32.
FAT32 как операция с риском стереть блоки
У PicoCalc есть два способа нарисовать терминал, и выбор упирается в SRAM. Графический вариант держит framebuffer; на RP2040 после него остаётся мало памяти для пользовательского кода. Text-only реализация хранит символы и атрибуты, экономит память, но прокрутка занимает больше времени: экран приходится перерисовывать посимвольно. Новые настройки терминала полезны именно в этой физике ограниченной памяти и медленного обновления дисплея.
Под капотом zeptoforth остаётся Forth для Cortex-M с priority-scheduled preemptive multitasker и deadline scheduling. Репозиторий перечисляет STM32L476, STM32F407, STM32F746, STM32F411, RP2040 и RP2350. Исправление seek не сопровождалось опубликованным регрессионным тестом с конкретной геометрией FAT32 или независимым аппаратным прогоном, однако состав изменений и конфигурационные последствия подробно зафиксированы в первичной документации релиза.