Немного поофтоплю:
В целом MiST меня устраивает, но есть одна серьезная проблема - это разъем VGA! У меня некуда его просто воткнуть. Тем более реально там идет телевизионная развертка. Поэтому использую конвертер SCART->HDMI. Но тут еще одна проблема: некоторые эмуляторы выводят не ТВ развертку, а VGA. А универсальных конвертеров, понимающих одновременно TV и VGA нет.
В общем, я параллельно ищу другой вариант FPGA платы, с HDMI. Есть несколько вариантов типа того же ReVerSe или Марсоход. Но я уже понял, что MCU просто необходим. Да и любимая моя Амига без MCU не запустится![]()
Ну или нужна плата с довольно большой FPGA чтобы свободно разместить SoftMCU рядом. А тут уже вышеозвученные платы отпадают.
Но вот буквально вчера я нешел практически Ultimate Solution. Это гибрид Zynq7000. Там шустрый MCU уровня RPi B+ и FPGA уровня Cyclone III.
Если конкретно, то заказал вот такую борду: http://www.myirtech.com/list.asp?id=502
Заказал версию на Zynq7020 чтобы уж наверняка перекрыть возможности MiST.
По сути, на такой плате можно иметь эмуляторы обоих "лагерей". Есть неплохие эмуляторы на Raspberry Pi. Тот же SNES или N64. Их просто нет на FPGA. В то же время на FPGA тоже есть неплохие эмуляторы.
Если бы набрать единомышленников, то можно было бы довольно быстро портировать оба типа эмуляторов в довольно короткие сроки. Ну как минимум те, что на FPGA.
----------------------------------------------------------
Репозиторий тут: https://github.com/sorgelig/BK0011M
Те, кто хочет непосредственно принять участие в разработке, откройте Issue - я добавлю.
Если есть замечания по поводу оформления лицензий и тому подобное - сообщите мне, я поправлю.
Небольшая вводная:
В папке SW находится утилита, которая позволяет создать/разобрать образ HDD из отдельных флоппи дисков. Этот образ и используется в эмуляторе. На MiST board его надо положить в корень SD карты. Если дать имя bk0011m.vhd, то он автоматически откроется (и БК загрузится с HDD) при старте ядра - это делает MCU.
Через OSD ядро позволяет открывать DSK - образ floppy, read-only. VHD - образ HDD read-write. DSK монтируется как Диск 0, а VHD как Диск 2+(то есть партиции начинаются с номера 2). В ПЗУ БК зашита автозагрузка сначала с диска 2, а при неудаче - с диска 0.
Ну то есть основной упор сделан на работу с HDD, а не с отдельными дискетами, поскольку количество софта для БК намного больше одной дискеты
Так же через OSD переключаются ЧБ/ЦТВ режимы экрана.
Если есть какие вопросы по работе - задавайте. Возможно будут вопросы по работе самой MIST board - тоже готов пояснить.
На мой взгляд, пока имеются две основных проблемы, которые я бы хотел решить:
1) Работа прерываний клавиатуры. Я не могу понять, почему при удержании клавиши при загрузки в конце вылазит символ нажатой клавиши. Получается, что запрос на прерывание не сбрасывается. Я вроде всё проверил, но не могу пофиксить. Доступа к реальной БК у меня нет. Может что-то в модуле клавиатуры, а может глюк в модуле прерываний. Впрочем и вся клава должна быть тщательно проверена, поскольку писалась без использования модели ВП1-014. Хорошо бы заиметь человеческий verilog 014 как это сделано для 037.
2) Времена обращения процессора к памяти довольно условны. Хотя я и использовал огрызок от 037, отвечающий за задержку, есть сомнения в его точности, поскольку он предназначен для шины Q-BUS, а не Wishbone. В целом времена я подобрал близкие и даже большинство моих старых демок для БК работают корректно, но, всё таки, не 100% как в реальной БК.
- - - Добавлено - - -
Еще есть сомнения на счет срабатывания регистра палитр, поскольку если я запускаю БК0010 игру в CSIDOS, то включается 15 палитра, а по идее должна быть 0. Надо как-то оттрассировать это в БК.
Вспоминать свой код 20 летней давности довольно сложно
Вообще, наверное, надо добавить режим пульта. Это не сложно. Сложно найти дебаггер пультовый. Есть ли такой?





Ответить с цитированием