From 4c59443d24acdac52fc7484b4a9124bc5487a9b9 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 1 Sep 2026 10:11:32 +0300 Subject: [PATCH] Rewrite README changelog in first person --- README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 52d4439..e751bd1 100644 --- a/README.md +++ b/README.md @@ -20,35 +20,35 @@ _Work with cable socket driver by PSB and Wifi module ESP8266, driver by DDp / H ## Доработки в этой сборке (2026) -Оригинальный проект давно не поддерживается автором, поэтому часть функций пришлось переделать под текущее состояние сети и сервисов. +Оригинальный проект давно не поддерживается автором, поэтому часть функций я переделал под текущее состояние сети и сервисов. -**Убрана проверка обновлений по HTTP.** Раньше при загрузке клиент ходил на `zifi_ver.php`, проверял версию, при необходимости скачивал новую прошивку и сверял CRC16. Сервер обновлений больше не обновляется — вся эта ветка (`autoupdate`, CRC16, скачивание `.spg`) убрана из `zifi.asm`. +**Убрал проверку обновлений по HTTP.** Раньше при загрузке клиент ходил на `zifi_ver.php`, проверял версию, при необходимости скачивал новую прошивку и сверял CRC16. Сервер обновлений больше не обновляется — всю эту ветку (`autoupdate`, CRC16, скачивание `.spg`) я убрал из `zifi.asm`. -**Синхронизация времени переведена на стандартные AT-команды SNTP.** Используется штатный протокол ESP-AT — он есть в том числе в обычной прошивке для ESP-01/ESP8266: +**Перевёл синхронизацию времени на стандартные AT-команды SNTP.** Использую штатный протокол ESP-AT — он есть в том числе в обычной прошивке для ESP-01/ESP8266: ``` AT+CIPSNTPCFG=1,0,"pool.ntp.org" — включить SNTP, UTC, публичный сервер AT+CIPSNTPTIME? — получить текущее время ``` -Ответ (`+CIPSNTPTIME:Www Mmm dd hh:mm:ss yyyy`) разбирается прямо на Z80 — с учётом того, что синхронизация происходит в фоне и первые секунды может отдавать заглушку 1970 года (в этом случае клиент подождёт и переспросит, с ограничением по числу попыток, чтобы не подвесить загрузку насовсем). +Ответ (`+CIPSNTPTIME:Www Mmm dd hh:mm:ss yyyy`) я разбираю прямо на Z80 — с учётом того, что синхронизация происходит в фоне и первые секунды может отдавать заглушку 1970 года (в этом случае клиент подождёт и переспросит, с ограничением по числу попыток, чтобы не подвесить загрузку насовсем). Часовой пояс по-прежнему берётся из `zifi.ini` (`time: +N` / `time: -N` / `time: none`) и применяется на стороне Z80 поверх времени UTC от SNTP. -Заодно в RTC (DS1685) теперь пишутся **секунды** и **день недели** (`0` = воскресенье) — раньше эти два поля не заполнялись вообще. +Заодно добавил запись **секунд** и **дня недели** (`0` = воскресенье) в RTC (DS1685) — раньше эти два поля не заполнялись вообще. -**Добавлена поддержка HTTPS.** Часть сайтов в списках загрузок (`prods.tslabs.info`, `bbb.retroscene.org`) перестала пускать по обычному http и принудительно перенаправляет на https. Клиент теперь сам определяет схему ссылки и выбирает `AT+CIPSTART="TCP",...,80` или `AT+CIPSTART="SSL",...,443` — это касается и ссылок из меню, и ссылок, которые сервер присылает внутри списков файлов. +**Добавил поддержку HTTPS.** Часть сайтов в списках загрузок (`prods.tslabs.info`, `bbb.retroscene.org`) перестала пускать по обычному http и принудительно перенаправляет на https. Клиент теперь сам определяет схему ссылки и выбирает `AT+CIPSTART="TCP",...,80` или `AT+CIPSTART="SSL",...,443` — это касается и ссылок из меню, и ссылок, которые сервер присылает внутри списков файлов. -**Сообщение о готовности.** После завершения всех этапов загрузки (подключение к Wi-Fi, синхронизация времени, папка загрузок) на экране появляется `"ZiFi is ready."` — раньше было не всегда понятно, можно ли уже пользоваться меню. +**Добавил сообщение о готовности.** После завершения всех этапов загрузки (подключение к Wi-Fi, синхронизация времени, папка загрузок) на экране появляется `"ZiFi is ready."` — раньше было не всегда понятно, можно ли уже пользоваться меню. -**Убрано мигание вертикальных полос при воспроизведении музыки.** Индикатор громкости AY-каналов (`music_analizator`) раньше рисовался прямо внутри прерывания, которое отвечает за точное по строкам переключение видеорежима текст/графика — и делал это вместе с DMA-очисткой экрана и переключением страниц памяти. На динамичных треках (больше эффектов — дольше выполняется код) это сбивало тайминг прерывания и давало заметные мигающие полосы на экране. Отрисовку индикатора вынесли из прерывания в обычный код главного цикла (раз в кадр, синхронно с `wait_frame`, но уже не в раст-критичной цепочке) — сам плеер и его тайминг (темп, высота нот) не тронуты. +**Убрал мигание вертикальных полос при воспроизведении музыки.** Индикатор громкости AY-каналов (`music_analizator`) раньше рисовался прямо внутри прерывания, которое отвечает за точное по строкам переключение видеорежима текст/графика — и делал это вместе с DMA-очисткой экрана и переключением страниц памяти. На динамичных треках (больше эффектов — дольше выполняется код) это сбивало тайминг прерывания и давало заметные мигающие полосы на экране. Я вынес отрисовку индикатора из прерывания в обычный код главного цикла (раз в кадр, синхронно с `wait_frame`, но уже не в раст-критичной цепочке) — сам плеер и его тайминг (темп, высота нот) не тронул. -**Поправлена позиция нижней панели управления.** Она была смещена на пару пикселей вниз относительно верхней панели с самого начала (не наша регрессия) — поправлено смещение `GYOFFSL` в `int_text_off`. +**Поправил позицию нижней панели управления.** Она была смещена на пару пикселей вниз относительно верхней панели с самого начала (не моя регрессия) — поправил смещение `GYOFFSL` в `int_text_off`. **Мелкие исправления:** -- обращение к порту `#EFF7` (общий системный регистр — управляет не только доступом к часам, но и видеорежимом/turbo/кэшем) переведено на read-modify-write вместо прямой перезаписи всего байта, чтобы не сбивать остальные настройки; -- исправлен баг в разборе двузначного GMT-смещения из `zifi.ini` (например `+10`) — были перепутаны местами разряды; -- DMA-очистка под индикатор громкости теперь дожидается завершения перед тем, как CPU начинает рисовать поверх той же области (была гонка записи); -- в текстовом режиме (`int_text_on`) включён бит `TSU_SEN` (аппаратные спрайты TSU), который раньше был закомментирован — на всякий случай, чтобы курсор мыши мог отображаться и поверх текстовой области тоже. +- перевёл обращение к порту `#EFF7` (общий системный регистр — управляет не только доступом к часам, но и видеорежимом/turbo/кэшем) на read-modify-write вместо прямой перезаписи всего байта, чтобы не сбивать остальные настройки; +- исправил баг в разборе двузначного GMT-смещения из `zifi.ini` (например `+10`) — были перепутаны местами разряды; +- теперь DMA-очистка под индикатор громкости дожидается завершения перед тем, как CPU начинает рисовать поверх той же области (была гонка записи); +- включил в текстовом режиме (`int_text_on`) бит `TSU_SEN` (аппаратные спрайты TSU), который раньше был закомментирован — на всякий случай, чтобы курсор мыши мог отображаться и поверх текстовой области тоже. -**Известная нерешённая мелочь:** курсор мыши (аппаратный спрайт TSU) обрывается по фиксированной строке экрана прямо над нижней панелью управления — похоже на границу, завязанную на тайминг переключения видеорежима или на аппаратный бордюр, а не на что-то, что двигается вместе с содержимым панели. Не нашли способ поправить это без риска сломать что-то ещё, оставили как есть. +**Известная нерешённая мелочь:** курсор мыши (аппаратный спрайт TSU) обрывается по фиксированной строке экрана прямо над нижней панелью управления — похоже на границу, завязанную на тайминг переключения видеорежима или на аппаратный бордюр, а не на что-то, что двигается вместе с содержимым панели. Я не нашёл способ поправить это без риска сломать что-то ещё, оставил как есть.