Releases: xrip/RP8086
Releases · xrip/RP8086
HDD images supported
💾 Поддержка жестких дисков (XTIDE контроллер)
Реализована полная эмуляция XTIDE/ATA контроллера на портах 0x300-0x308:
- Режимы адресации: LBA28 и CHS (16 heads, 63 sectors per track)
- Поддерживаемые команды: IDENTIFY DEVICE (0xEC), READ SECTOR(S) (0x20), WRITE SECTOR(S) (0x30), READ VERIFY (0x40/0x41)
- Работа с образами: загрузка HDD образов (hdd.img) с SD карты через FAT файловую систему
- Емкость: поддержка дисков до 8GB (ограничено FatFS)
- Производительность: эффективный 512-байтный буфер секторов с автоматическим инкрементом LBA для multi-sector операций
Теперь система может загружаться не только с дискет, но и с жестких дисков, что открывает возможность установки полноценных DOS систем с расширенным набором утилит.
🎮 Улучшенная совместимость с IBM PCjr/Tandy 1000
- Расширенная видеопамять: увеличена до 32KB (совместимость с Tandy/PCjr графическими режимами)
- Поддержка двух флоппи-дисководов: возможность работы с двумя FDD одновременно
- Улучшенная эмуляция портов: корректная обработка специфичных для PCjr регистров
📺 Оптимизация и улучшение видеодрайвера
- Исправлена CGA палитра: теперь используется точная палитра IBM 5153 для аутентичных цветов
- Border/Overscan цвета: полная поддержка управления цветом границ экрана через CRTC регистры
- Interlace mode: корректная работа режима чересстрочной развертки с учетом параметров MC6845
- Text mode pages: исправлена работа с текстовыми страницами видеопамяти
- Упрощение кода: рефакторинг драйвера VGA для повышения производительности и читаемости (сокращено ~160 строк)
🖥️ Экспериментальная поддержка композитного видеовыхода
- NTSC Composite TV out: добавлен драйвер для вывода композитного NTSC сигнала с композитными цветами
- TGA режимы: поддержка графических режимов Tandy Graphics Adapter
- CSYNC опция: опциональный Composite Sync вместо раздельных HSYNC+VSYNC (экспериментально)
- Sync-on-Green: хакерский Sync-on-Green для совместимости с некоторыми мониторами
🔧 Улучшения и исправления
Клавиатура и ввод
- USB клавиатура: полностью рабочая интеграция USB HID клавиатуры через TinyUSB stack
- USB мышь: эмуляция Microsoft Serial Mouse через COM1 для работы с DOS драйверами (CTMOUSE, MOUSE.COM)
- Автоопределение устройств: Plug & Play детекция USB HID устройств при подключении
Дисковая подсистема
- SD карта: стабильное монтирование FAT12/FAT16/FAT32 файловых систем
- Поддержка образов: загрузка как floppy (.img), так и HDD образов с SD карты
- Исправления FDC: улучшена стабильность контроллера дискет Intel 8272A
- DMA оптимизация: исправлена работа Intel 8237 DMA контроллера для корректной передачи данных
Отладка и разработка
- Semihosting: опциональная поддержка ARM Semihosting для отладки через OpenOCD/GDB
- Чистка кода: масштабный рефакторинг main.c, выделение debug функций в отдельный модуль
- Улучшенная документация: детальное описание архитектуры, GPIO распиновки и работы всех компонентов в README.md и CLAUDE.md
📊 Технические улучшения
- Оптимизация памяти: улучшена организация кода для более эффективного использования 512KB RAM
- Производительность: стабильная работа на частоте 4.75-6 MHz без деградации
- Совместимость: успешная загрузка DR-DOS 7 и других DOS систем как с дискет, так и с HDD
- Код качество: рефакторинг критических модулов для повышения читаемости и поддерживаемости
🐛 Известные ограничения
- Композитный NTSC выход находится в экспериментальной стадии
- CSYNC режим может работать нестабильно на некоторых мониторах
- Максимальный размер HDD образа ограничен 8GB (FatFS limitation)
ALPHA-1
ALPHA-0
- USB HID: Полная поддержка USB клавиатур через TinyUSB Host
- Intel 8253 PIT: Исправлена логика чтения/записи счетчиков
- Частота i8086: Увеличена до 5.75 МГц (RP2350) со стабильной работой
- PIO оптимизация: Убрана лишняя задержка sideset
- BIOS: Обновлена версия GLaBIOS 4.1
- Дискета: Обновлен загрузочный образ
- CMake: Интеграция TinyUSB Hos
Full Changelog: WIP-0...ALPHA-0
Рабочий вариант, почищенный с минимальным кодом
WIP-0 Перемещены файлы исходного кода в каталог `src` для улучшения структу…