- Автор
- Alice Vinogradova
Это не просто книга о программировании на ассемблере Z80. Это — машина времени в золотую эру демосцены и путеводитель по самым изощренным техникам, которые заставляли скромный ZX Spectrum творить чудеса. Если вы когда-либо задавались вопросом: «Как они умудрились сделать вращающуюся 3D-сферу на процессоре 3.5 МГц?» или «Как работает этот безумный ротозумер?» — эта книга даст вам исчерпывающие ответы.
«Программируя невозможное» — это практическое руководство по написанию кода, который выжимает 100% производительности из легендарного 8-битного компьютера. Вы узнаете, как мыслить не байтами, а тактами (T-states) , как превращать экранные атрибуты в художественное полотно и как уместить целое демо в 256 байт.
- Для энтузиастов ретрокомпьютинга, желающих писать свои демо и игры.
- Для программистов, которым интересна ультровая оптимизация и low-level программирование.
- Для всех, кто хочет понять, как работают легендарные эффекты из демо Eager, NHBF, Illusion, Lo-Fi Motion и других.
- Для пользователей современных платформ, таких как Agon Light 2 и ZX Spectrum Next, которые хотят использовать их мощь на полную катушку.
Что вы найдете внутри: Ключевые темы
Книга разбита на логические блоки, ведущие вас от основ к вершинам мастерства.- Мыслить тактами: Почему время — это главная валюта на Z80. Устройство кадра, различия между оригинальным Spectrum и клоном Pentagon. Настройка современной среды разработки (ассемблер, эмулятор, дебаггер).
- Экран как головоломка: Разбираем по косточкам структуру экранной памяти. Раскладка пикселей и атрибутов, «чересстрочность», конфликт атрибутов. Научитесь молниеносно вычислять адреса и навигировать по экрану.
- Инструментарий демосценера: Главные трюки: самомодифицирующийся код (SMC) , запись через стек (PUSH), цепи LDI, генерация кода на лету и диспетчеризация через RET.
- Математика, которая реально нужна: Умножение и деление за разумное время, параболические синусы, арифметика с фиксированной точкой 8.8, быстрые случайные числа (регистр R, алгоритм из Elite).
- 3D на 3.5 МГц: Как строить и вращать 3D-объекты без миллиона умножений. Метод средней точки Dark’а, создание «виртуального процессора», отсечение граней и закраска полигонов.
- Сфера — Текстурный маппинг: Культовый эффект! Разбор техники, где код пишет код для рендеринга текстурированной сферы. Дебаты о внутренних циклах vs математика.
- Ротозумер и чанки-пиксели: Техника создания иллюзии высокого разрешения и плавного движения за счет группировки пикселей в "чанки". Внутренности движка из демо Illusion.
- Мультиколор: Как обмануть ULA и получить разные цвета в каждой пиксельной строке. Техники LDPUSH, движок GLUF, двухкадровая архитектура.
- Атрибутные туннели и хаос-зумеры: Использование атрибутной сетки как полноценного фреймбуфера. Генерация плазмы, четвертная симметрия и создание скриптовых движков.
- Звуковая архитектура: Полный гайд по чипу AY-3-8910, карта регистров, режимы работы. Чиптюн-техники: арпеджио, buzz-bass, синтез ударных. Поддержка TurboSound (2xAY) и Triple AY (ZX Next).
- Цифровые барабаны и синхронизация: Как заставить AY воспроизводить подобие сэмплов. Асинхронная генерация кадров, скриптовые движки для синхронизации эффектов с музыкой. Инновационные методы синхронизации с помощью видеоредакторов.
- Мастерство sizecoding: Искусство умещать крутые эффекты в 256 и 512 байт. Разбор анатомии интро NHBF, трюк LPRINT и работа с перекрытием кода и данных.
- Сжатие: Обзор лучших упаковщиков для Z80 (ZX0, MegaLZ, RLE). Треугольник компромиссов: скорость/память/степень сжатия.
- Анатомия машин: Глубокое погружение в железо: карта памяти ZX Spectrum 128K, порт $7FFD, спорная память, тайминг ULA, различия клонов. Отдельный большой раздел по Agon Light 2 (eZ80, VDP, MOS API).
- Быстрые спрайты и скроллинг: Обзор 6 методов вывода спрайтов (от XOR до скомпилированных и стековых) и 4 методов скроллинга. Расчет бюджетов и анализ производительности.
- Игровой цикл и системы: Создание каркаса игры: конечные автоматы, массивы сущностей, физика (гравитация, прыжки), AABB-столкновения и ИИ врагов (патруль, атака, смерть).
- Рабочий процесс демо: От идеи до релиза на компо-party. Разбор создания демо Lo-Fi Motion, культура making-of, работа с соавторами, отладка с DeZog.
- Портирование на Agon Light 2: Что переносится 1-в-1, а что нужно переписывать с нуля. Режимы ADL, замена фреймбуфера на VDP-команды.
- Z80-разработка с помощью ИИ: Реалистичный взгляд на использование современных LLM (Claude, Copilot) для написания ассемблерного кода. Когда ИИ помогает, а когда — вредит. Разбор создания демо Antique Toy и процессора MinZ.
Книга содержит исчерпывающий справочный аппарат:
- Краткий справочник инструкций Z80 с указанием тактов и размеров.
- Справочник по генерации тригонометрических таблиц (от полной до аппроксимации Бхаскары I).
- Подробная карта регистров AY-3-8910 с таблицами частот.
- Сравнительная таблица алгоритмов сжатия и дерево решений по их выбору.
Почему вам стоит прочитать эту книгу?
- Уникальная концентрация опыта: В одной книге собраны техники, разбросанные по форумам (Hype, WoS), исходникам легендарных демо и личным заметкам сценеров.
- От теории к практике: Каждая техника сопровождается кодом, расчетами тактов и практическими примерами.
- Современный подход: Книга ориентирована на разработку в 2020-х с использованием современных тулов (sjasmplus, VS Code, DeZog) как для классических спектрумов, так и для новейших машин (Agon Light, ZX Next).
- Вдохновение: Поняв, как работают эти «невозможные» эффекты, вы сможете создавать свои собственные чудеса.