(ехидно) Не взлетит
(ехидно) Не взлетит
Эмуляция 1801ВП1-128 в ПЛИС раз.
Контроллер SMK-512 на программируемой логике для БК10-01 / БК11М два (практическая реализация).
УКНЦ, ДВК-3, Ленинград-1 (48 кб)
Ну, я, вероятно, не совсем четко изложил суть своей идеи. Эмулировать 128-ю для того, чтобы подключить к ней дисковод, на фиг не надо! Надо эмулировать 128-ю с подключенными двумя или четырьмя дисководами, в каждый из которых вставлена дискета (смонтирован файл-образ дискеты). Чтобы, если файл-образ не смонтирован, эмулируемая 128-я сигналила "диск не вставлен", иначе, по команде включения мотора, она должна начать "проигрывать" в регистры 128-й соответствующие 10 блоков файл-образа, как будто оно прочитано с дискеты (правильно прочитано, без ошибок), имитируя в регистрах якобы 128-й прохождение индекса, "прелюдию" сектора (блин, уже всю терминологию FDD забыл...), данные блока, посчитанный CRC, окончание сектора, и т.д. Это, ИМХО, не так сложно, если разобраться, как там все это читает программа обслуживания дисков в ПП. Ну, и при записи, имитирует найденный заголовок сектора, затем принимает в буфер (или сразу отправляет на устройство) коды слов блока, принимает и игнорирует "хвост" сектора и т.п. По команде "шаг" перемещается к следующей или предыдущей группе из 10 блоков файл-образа, и т.д.
При этом не надо вникать в тонкости синхронизации, опознания пропущенных синхроимпульсов и т.п. - нам же не надо читать реальные дискеты, у нас есть файл-образ, нам только надо имитировать, что все, что надо, найдено и передать данные из файл-образа. Надо будет внимательно поразглядывать программу ПП обмена, скорее всего, все будет понятно из нее. Я, когда-то хорошо отдизасмил и разобрал не то 091-ю, не то 093-ю ПЗУху от КМД, в общем-то, почти все было понятно. Не думаю, что программы для обмена с дискетой у УКНЦ и у КМД для одной и той же 128-й сильно отличаются, так, что, скорее всего, тут тоже почти все будет понятно.
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
ИМХО, такая плата должна быть для внутренней установки, вторым этажом -- между БП и правой стенкой высокой части корпуса УК-НЦ.
Разместить на ней совмещенный контроллер FDD+IDE, добавить параллельный порт или два (на какие-то свободные адреса) и к ним подключить AY и Covox...
Не волнуйтесь, моя бабушка водила трактор и пожарную машину (С)
Кстати, по этому пути уже прошли авторы эмуляторов УКНЦ. И задача, практически, та же - эмулировать ВП1-128 с подключенным дисководом и вставленной "дискетой" в виде файл-образа. И делается всё это на системе, отличной от PDP-11 - у них на писюке, у нас - на отдельном микроконтроллере. Может даже кусок кода подойдет - попробуйте скооперироваться с авторами эмуляторов.
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
AFZ, чего там кооперироваться, код открытый.
https://github.com/nzeemin/ukncbtl/b...ase/Floppy.cpp
См. функции EncodeTrackData() и DecodeTrackData().
- - - Updated - - -
Тоже думал сделать это в эмуляторе, но не знаю надо ли. Вместо 80-ти дорожек можно позволить делать намного больше.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Насколько качественно эмулятор воспроизводит вутреннюю адресацию памяти и портов? Есть ли какая-либо несовместимость?
но (я могу ошибаться) практического смысла в этом 0.
во первых - с таких дискет не загрузишся
во вторых - на реале ничего подобного не было
в третьих - зачем мучить классические флопы? смысл? надо просто их сделать (в виде флешки или ещё как-то и оставить в покое), ведь будет и доп. память в виде HDD, опять же HX-соединение реала с ПЦ никто не отменял.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)