Repository navigation
💾 Поддержка жестких дисков (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)