# Reference materials

Положи сюда оригинальную документацию Sprinter / ESTEX. Любые форматы — PDF, TXT, MD, .h / .asm файлы — годятся. Перед написанием кода нужно сверить с этими источниками:

## Что особенно полезно

1. **Спецификация формата .EXE (ESTEX SprintEXE)**
   - Заголовок 512 байт, поля `load`, `start`, `stack`, `offset`, `loader`
   - Любые упоминания "loader-секции" и multi-page загрузки
   - Что находится в зарезервированных полях `reserv1`, `reserv2`, `res[490]`

2. **Карта портов и аппаратной паджинации**
   - Точная битовая раскладка портов **0x82, 0xA2, 0xC2, 0xE2** (page select для окон 0-3)
   - Возможные служебные биты: write-protect, video overlay, ROM mapping
   - Номера физических страниц видеопамяти — соответствие EMM-номеров (0x50..0x5F) и hardware page numbers

3. **ESTEX API**
   - Полный список функций RST #10 (особенно файловые и memory management)
   - Соглашение о возврате ошибок (CF=1?, регистр-код?)
   - BIOS RST #08 функции (особенно EMM_FN0..EMM_FN7 — менеджер памяти)

4. **Видеорежимы**
   - Режимы 320×256×256, 640×256×16, текст 80×32 — как маппится экранная память, какие страницы используются
   - Адрес VRAM в каждом режиме (если она вообще попадает в адресное пространство CPU)
   - Регистры выбора видеостраницы и активной палитры

5. **Прерывания**
   - IM2 / IM1 / NMI семантика на Sprinter
   - Источники прерываний (VBL? timer? keyboard?)
   - Как ESTEX устанавливает таблицу IM2 и можно ли её переопределить

## Имена файлов

Можно как угодно — но если у файла есть осмысленное оригинальное имя, лучше оставить (например `estex-api.txt`, `sprinter-ports.pdf`).
