Поправил.
https://disk.yandex.ru/i/EA4xzr4vRwsYMA
tnt23(04.10.2025)
Настраиваю свой экземпляр контроллера. Купленная на ebay MB8877A, к счастью, оказалась рабочей, судя по результатам обращения к ее регистрам.
А вот с обращениями к регистру 0x25 все грустно. Ни запись, ни чтение не вызывают на выходе Q0 никакой реакции. Возможно, дело в разных прошивках: у меня РТ4 прошита кодом из этой ветки:
У Алексея код выглядит иначе (https://github.com/alemorf/retro_com..._RT4_FDC.txt):Код:00: F F F F F F F F F F F F F F F F 10: F F F F F F F F F F F F F F F F 20: 5 F 6 F 2 F 2 F 6 F 6 F 2 F 2 F 30: F F F F F F F F F F F F F F F F 40: F F F F F F F F F F F F F F F F 50: F F F F F F F F F F F F F F F F 60: F F E F F F E F F F E F F F E F 70: F F F F F F F F F F F F F F F F 80: F F F F F F F F F F F F F F F F 90: F F F F F F F F F F F F F F F F a0: E F E F A F A F E F E F A F A F b0: F F F F F F F F F F F F F F F F c0: F F F F F F F F F F F F F F F F d0: F F F F F F F F F F F F F F F F e0: F F E F F F E F F F E F F F E F f0: F F F F F F F F F F F F F F F F
Вариант Алексея выглядит более разумно - как минимум при обращении к регистрам ВГ93 блокируется доступ к регистру 0х25 (вторая половина кода с адреса 0х80).Код:Проверено 11-11-2024 00: f f f f f f f f f f f f f f f f 10: 5 6 2 2 6 6 2 2 f f f f f f f f 20: f f f f f f f f f f f f f f f f 30: f f f f e e e e f f f f f f f f 40: f f f f f f f f f f f f f f f f 50: e e a a e e a a f f f f f f f f 60: f f f f f f f f f f f f f f f f 70: f f f f e e e e f f f f f f f f 80: f f f f f f f f f f f f f f f f 90: f f f f f f f f f f f f f f f f a0: f f f f f f f f f f f f f f f f b0: f f f f f f f f f f f f f f f f c0: f f f f f f f f f f f f f f f f d0: f f f f f f f f f f f f f f f f e0: f f f f f f f f f f f f f f f f f0: f f f f f f f f f f f f f f f f
Программатора РТ4 у меня нет, собрал простенькую читалку к порту 0х00 (в будущем можно ее переделать и в писалку, и в ROM-диск). Убедился, что таки да, прошито хоть и верно, да не то.
![]()
![]()
Последний раз редактировалось tnt23; 05.10.2025 в 23:10.
Могу предположить, что новодельный контроллер, в котором Алексей обнаружил и исправил кучу ошибок, как раз и должен использовать это ПЗУ.
У меня есть 4 платы, когда дойдут руки, я обязательно это проверю.
Неправильная прошивка взята из архива с материалами по контроллеру, и совпадает с прошивкой на сайте azmaster. Так что остается загадкой, где взять правильную.
Допускаю, что правильную как раз Морозов синтезировал, разбираясь с процедурами работы с флопом.
Пока же я собрал переходник на 28-ногую флешку, со временем доступа 45нс, прошил ее и получил нормальную реакцию на обращение к портам 0х24 и 0х25.
![]()
puller(07.10.2025)
Из репозитория https://github.com/alemorf/retro_computers, файл Ocean_240/my_extensions/decode_fdc/decode_fdc.html:
Я вывел выражения соответствующие ПЗУ контроллера дисковода.
1) !ready1 = !fdcs && rd && !a0 && !a1 && a2 && !intr && !drq && motspn;
Процессор останавливается, если программа читает порт 24h и нет прерывания от ВГ93 и нет запроса данных от ВГ93 и не наступил таймаут выполнения команды.
2) !cs11 = (!fdcs && rd && !a1 && a2 && ready1) || (!fdcs && !rd && a0 && !a1 && a2);
Дешифратор адресов 24h и 25h. Бит ready1 и a0 во второй части выражения не имеет значения.
3) !intrq1 = !fdcs && rd && !a1 && a2 && intr;
Инвертирование сигнала INTR. Остальные биты не имеют значения.
4) !motst1 = !fdcs && rd && !a1 && a2 && motspn;
Инвертирование сигнала MOTSPN. Остальные биты не имеют значения.
Новое ПЗУ
A0 drq, A1 intr, A2 a0, A3 a1, A4 a2, A5 !rd, A6 !mon-spn, A7 fdccs
D0 cs1, D1 ready, D2 intrq, D3 motst
puller(07.10.2025)
Из дисководов под рукой был только TEAC FD-235HG. Пришлось его немного порезать , чтобы получить сигнал READY на пине 34 вместо DISK CHANGE.
Дискеты TDK MF-2HD на 1.44М, с заклеенным окошком плотности форматируются заметно лучше, чем с незаклеенным, но все равно результат так себе.
![]()
Последний раз редактировалось tnt23; 12.10.2025 в 09:00.
А вот вопрос по поводу прекомпенсации записи. Схема узла, отвечающего за прекомпенсацию, похожа на схему из апнот на 179x:
Прекомпенсация считалась ненужной для 8" дисководов, и опциональной/желательной для 5.25". Эти же значения упреждения и задержки (TBC?) работают на 3.5" дисководах, но насколько это правильно? Плотность записи на 3.5" дискете выше, чем на 5.25", не следует ли пересмотреть и значение времени прекомпенсации? Тем более что во времена разработки и использования КНГМД для "Океана-240" пятидюймовые накопители были наиболее распространенными.
PS Кое-что про предкомпенсацию (на самом деле овердофига информации, местами на грани графоманства) есть тут - https://emuverse.ru/wiki/%D0%9A%D0%B...98%D0%A1%D0%98
Последний раз редактировалось tnt23; 29.11.2025 в 12:03.
Отрисовал схему и печатную плату, постарался учесть все изменения и косяки.
Решил все же, переводить свои проекты на KiCAD.
https://github.com/romychs/Ocean-240.2-FDC
![]()
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)