Здесь продолжение темы из Новостей.
С полной документацией.
Устройство представляет собой эмулятор (на уровне портов) чипа ВГ93, предназначено оно для замены чипа, части обвязки, дисковода и кучи дискет. Тестировалось на ZXM-Phoenix v1.0. Общение с устройством производится с помощью UART-терминала на ПК (использовал PuTTY, в архиве файл с настройками сессии для комфортного отображения). Потребуется UART-TTL адаптер для ПК. Кроме UART, в устройстве также есть I2C-порт, который предполагается использовать для управления со Спека (пока не занимался).
Идея устройства возникла после знакомства с проектом AYX-32 (TSL), только я использовал МК помедленней и подешевле (интересно, будет ли в результате мой эмулятор работать с 7 МГц, а тем более, с 14 МГц Спеками, или, хотя бы, не завешивать их).
Образы дисков аккуратной эмуляции хранятся в придуманном мной формате MFD ( MFM декодированный: заголовок, 6400 байт данных дорожки, 800 байт синхрометок ). Для быстрой эмуляции (пока в процессе) будут загружаться образы TRD и SCL.
Алгоритм эмулятора основан на блок-схемах из справочного листа и представляет собой цикл с состояниями. Каждому состоянию соответствует какая-нибудь микрооперация. Регистр состояния собирается из переменных в цикле же. Такой алгоритм позволяет с большой скоростью отрабатывать события. Эмуляция портов основана на EXTI-прерываниях (как и отслеживание RESET), написана для быстроты на ассемблере(есть вариант на С, тоже рабочий). Весь остальной проект написан на С, для сборки нужен EmBitz 1.11 (или, после адаптации, другой компилятор).
Сейчас (10фев2018) потребление ресурсов такое:
bin\Release\VG93EM.map|1|Program size (bytes): 28088
Data size (bytes): 104
BSS size (bytes): 40136|
Total size (bytes): 68328 (R/W Memory: 40240)
Я использовал чип с буквой "С" (почему-то он оказался в России дешевле, в отличие от Али) - 256 КБ ПЗУ, 80+16 ОЗУ.
Для "B" надо будет пересоздать/отредактировать проект (128КБ ПЗУ, 48 + 16 КБ ОЗУ).
Ресурсов "должно хватить всем" (с) Б.Гейтс
Утилиты (для ПК, Tiny C Compiler 0.9.27): создание отформатированного образа диска TR-DOS, конвертер образа в текстовый вид для ручного анализа, конвертер стандартной TRD в MFD, а также проверялка TRD на основе программы Ивана Рощина (зачем-то понадобилась).
Данный проект делался с учетом особенностей контроллера TRDOS(сигнал готовности соединен с загрузкой головок, он же мотор), но может быть адаптирован для других компьютеров.
Изготовление устройства - только для подготовленных (и на свой страх и риск)!
Платку надо бы переразвести, кварц попроще поставить, чтобы фен был не нужен(сказались габаритные ограничения платы).
Для подключения устройства нужно демонтировать ВГ93, поставить туда две PBS-20, а на эмулятор - две гребенки(у меня наоборот, гребенка на месте чипа). Часть выводов из гребенки надо вынуть, на плате отверстия только для нужных сигналов! Ненужные выходы ВГ эмулятор давит на землю, висящих сигналов быть не должно. На эмулятор подается 2 сигнала с системного регистра (на моем Фениксе DD53 - вывод 2 - выбор диска; вывод 15 - сторона). Плотность не используется(всегда двойная) и одинарная не эмулируется(желаюшие могут добавить в код, но я лично смысла не вижу).
Продолжаю допиливать код (эмуляция "быстрая"), но свободного времени у меня мало, поэтому, как только - так сразу, но не раньше.
Желащие могут параллельно делать свои собственные версии, все в свободном доступе.
Быстродействие чипа (120 МГц) достаточное для усовершенствований.
Задавайте вопросы, буду заносить их в ЧАВО.
ЧАВО:
1) ВГ93 в других машинках (например Поиск) можно будет заменить на эмулятор?
Да, но потребуется адаптация (вывести сигнал CPRDY, например). Точные изменения можно выяснить, посмотрев схему другого контроллера.
2) ?