puller, еще номер контакта INDEX в разъеме X5, похоже, должен быть 29
Вложение 82888
Вид для печати
puller, еще номер контакта INDEX в разъеме X5, похоже, должен быть 29
Вложение 82888
Поправил.
https://disk.yandex.ru/i/EA4xzr4vRwsYMA
Настраиваю свой экземпляр контроллера. Купленная на ebay MB8877A, к счастью, оказалась рабочей, судя по результатам обращения к ее регистрам.
Вложение 82912
А вот с обращениями к регистру 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-диск). Убедился, что таки да, прошито хоть и верно, да не то.
Вложение 82913 Вложение 82914
Могу предположить, что новодельный контроллер, в котором Алексей обнаружил и исправил кучу ошибок, как раз и должен использовать это ПЗУ.
У меня есть 4 платы, когда дойдут руки, я обязательно это проверю.
Неправильная прошивка взята из архива с материалами по контроллеру, и совпадает с прошивкой на сайте azmaster. Так что остается загадкой, где взять правильную.
Допускаю, что правильную как раз Морозов синтезировал, разбираясь с процедурами работы с флопом.
Пока же я собрал переходник на 28-ногую флешку, со временем доступа 45нс, прошил ее и получил нормальную реакцию на обращение к портам 0х24 и 0х25.
Вложение 82917
Из репозитория 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
Из дисководов под рукой был только TEAC FD-235HG. Пришлось его немного порезать , чтобы получить сигнал READY на пине 34 вместо DISK CHANGE.
Вложение 82932
Дискеты TDK MF-2HD на 1.44М, с заклеенным окошком плотности форматируются заметно лучше, чем с незаклеенным, но все равно результат так себе.
Вложение 82933
Сбои ушли после добавления конденсатора 220uF по питанию +5В на дисководе, и 330uF на материнской плате.
Вложение 82938 Вложение 82941
А вот вопрос по поводу прекомпенсации записи. Схема узла, отвечающего за прекомпенсацию, похожа на схему из апнот на 179x:
Вложение 83224
Прекомпенсация считалась ненужной для 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
Отрисовал схему и печатную плату, постарался учесть все изменения и косяки.
Решил все же, переводить свои проекты на KiCAD.
https://github.com/romychs/Ocean-240.2-FDC
https://i.ibb.co/B2W1NGxH/preview.jpg