Skip to content

HDD images supported

Latest

Choose a tag to compare

@xrip xrip released this 03 Dec 06:59
· 9 commits to master since this release

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