Мой вопрос прозвучит странно и даже глупо (так как я знаю для чего этот контроллер), но все же я его задам.
Можно эту плату сделать универсальной ,для разных Шелезяк ?
Вид для печати
Мой вопрос прозвучит странно и даже глупо (так как я знаю для чего этот контроллер), но все же я его задам.
Можно эту плату сделать универсальной ,для разных Шелезяк ?
Daniil Chislov 86, если выкинуть из головы Вектор-06ц и его разъем, то это просто плата с Cyclone IV, буферами для сопряжения с 5В логикой и микроконтроллером с WiFi. В мои планы универсальность не входила, но я буду только рад, если на основе Шадков получится сделать что-то для более широкого применения.
Немного не в тему,но все же. Остаётся перевести на английский и отправить этим ребятам (https://hackaday.com) хотя кто я такой чтобы советовать.
Вообщем я за проект !
а вот ежель до лешадка дотянуть разьем процессора от вектора, то вполне и z80 зарабоиает с эмулятором спектрума -)
Malheureusement, leurs ailes étaient ridiculement minuscules... Если кто-то на все это найдет время, будет прекрасно. Я надеюсь все-таки допилить свой скромный набор фич до удобного и стабильного состояния. Из исправного состояния проще ломать и переделывать.
Сейчас у меня вагон только софтовых проблем, решенных откровенными затычками в стиле ардуино-хакадея, просто чтобы была возможность похвастаться:
* весь обмен по SPI между SoC и ESP8266 сейчас - это жалкая попытка засинхронихировать рассинхронизацию того, что в принципе рассинхронизироваться не должно. Работает, но спотыкаясь, и передать таким образом целиком образ диска будет очень мучительно. ESP8266 предполагает использование некоего регистра статуса SPI-slave-a, однако попытки его использовать приводят к полному развалу вообще всего. Забавно, что интернеты полны копипасты про регистр статуса, но нигде нет подтверждения того, что это вообще хоть как-то работает. Собственно даже то, что работает согласно различным форумам, тоже, как оказывается, работает только при условии определенных ограничений: одно дело передать несколько байт иногда, совсем другое — слать длинный поток. Я даже думаю, что для передачи образов дискет есть смысл отказаться от обычной семантики SPI и дать ESP8266 побыть мастером на время передачи.
* SoC по большей части копипаста из vector06cc, ей не хватает многих часов доработок для поддержки нескольких дисководов, для загрузки образов квазидиска, дискет в SDRAM итд
* подмена загрузчика тоже основана на хитрости и задержечке тут и там, а ничто не мешает сделать надежно
* элементарная юзабилити типа настройки вайфая итд. Для ЦЦ у меня жестко зашит был хотспот в телефоне, в жизни это не очень удобно. Настройка вайфая из libesphttpd безбожно кривая, надо приделывать нормальную.
Это я скорее для себя записываю, чтобы проще было вспоминать с чего продолжать. Все это труды тривиальные, но требующие времени.
работы на год
zx_, как раз к следующему цц ;)
Лешадок XT ISA-8 !
Это заказ. :)
Мне лень паять многоногий чип (это же не сдувать) так что взял готовую DE0-Nano.
Надо ее для начала приделать к ISA-8 через шинные формирователи.
(Но у DE0-Nano есть конфиг-ПЗУ так что все равно сильно переделывать и отвалится функционал программирования из ESP)
AlecV, на самом деле разницы между сдуванием и паянием многоногих чипов просто нет. Но с готовой платой конечно проще.
Наличие конфигурационной флешки не отменяет весь функционал ESP. Просто у ESP одной заботой меньше.
Есть изменения на фронте подмены штатного ПЗУ?
Удалось-ли осуществить "не заметную" подмену?
Интересно, есть ли возможность реализовать такую фишку простыми средствами, на рассыпухе и простой ПЗУ? Чтобы была возможность менять Загрузчик без замены штатной ПЗУ и/или вскрытия Вектора.
KTSerg, с последнего апдейта я сделал джойстики (на нестандартных портах, спасибо ivagor-у за патчи) и начал делать поддержку загрузки отдельных ROM-ов. Потому что утомляет делать образ дискеты каждый раз, когда хочешь загрузить свежий ром.
Подмена ПЗУ с моей точки зрения и так уже вполне себе незаметная. Там есть, что улучшить, но это скорее детали реализации.
Сейчас в работе над Шадками перерыв, рабочее место занято чем-то еще.
Джойстики всех систем находятся на портах ниже $10, а их не перехватить на чтение c ВУ. Устройства на этих портах напрямую висят на шине процессора и их не отключишь через БЛК. Поэтому мой джойстик на порту $2e/2f вместо обычного $e/$f. Это не очень красиво, но я пока лучше решения не вижу. Патченье игрушек задача тривиальная и для известных ромов будет выполняться на ходу.
Сейчас у меня поддержана только загрузка с образа дискеты. Чтобы сделать загрузку индивидуального рома, требуется сразу много вещей. На самом поверхностном уровне это примерно такие задачи:
* интерфейс загрузки и выбора рома на сд-карте, аналогичный выбору дискеты
* собственно загрузка рома куда-то, где загрузчик его найдет. Проще всего наверное сделать фальшивую дискету.
Просто подпихнуть ром с игрушкой вместо рома загрузчика -- это возможно в порядке хаки, но это не очень-то красиво и практически никак не упростит задачу.
Это схемное решение Вектора 06Ц. Там при чтении из портов с адресом ниже 10h шина данных отключается от ВУ. И к процессору остаются подключенными только ВИ53 и два ВВ55-ых.
- - - Добавлено - - -
Вот интересно, что за анализ кода делается, для того чтобы принять решение, на изменение номера порта в коде программы?Цитата:
Сообщение от svofski
Не думаю, что достаточно поиска "in 0Fh" или "in 0Eh". Ведь аналогичная последовательность HEX-кодов может встретиться в картинках, и хорошо если они не сжаты в scr, тогда при распаковке получим полный бардак...
KTSerg, вручную разумеется.
Есть еще способ. Вынюхать инструкции in можно, слушая шину. А потом, зная где они, подмахивать коды порта. Это технически выполнимо, интересно, но чуть чуть лихо для столь молодого проекта.
Глянул схемы Вектора. Схемное решение, судя по всему, не позволяет отключить штатное ПЗУ используя внешний сигнал БЛК (с разъёма "ВУ").
Облом-с.
Действительно, только если на шине "ВУ" отслеживать последовательное нажатие ВВОД и СБРОС, а потом блокировать ОЗУ и подменять его внешней памятью, где сидит подставной загрузчик. Но загрузчику нужно уметь закончить свою работу и отключить подмену памяти... тут любой существующий загрузчик не подойдёт...
На ВУ выведены ВВОД СИСТЕМЫ и СБРОС СИСТЕМЫ, так что теоретически их можно вдавить.
Только сейчас пришла в голову "крамольная мысля"...
В "штатном" загрузчике есть загрузка с "внешней ПЗУ" висящей на адресах F0h-F3h ... Значит эти адреса были "зарезервированы" для ВВ55 посаженной на шину "ВУ" ...
Что мешает перевесить джойстик с "ПУ" на "ВУ" ? (не беря во внимание необходимость замены номеров портов в софте)...
KTSerg, так у меня сейчас вот так и сделано. На ВУ на портах 2e,2f.
svofski, ты же кроме ВУшных 0E,0F->2E,2F еще и ПУшные джойстики тоже переводил 07->27, или это было только в промежуточной версии, а потом убрал?
ivagor, УСПИД на 27 есть, да.
KTSerg, я похоже не улавливаю ход мысли. Какая разница, где был гипотетический ВВ55, которого никто никогда не видел?
Выскажу очевидную вещь, что с этой штукой все определяется наличием софта. Под странный ВВ55 на F0-F3 есть загрузчик, под джойстики 27/2E/2F теперь тоже есть некоторое количество новопередельного софта, а вот классического софта с поддержкой джойстиков выше 10h я не видел, интересно было бы посмотреть.
Можно приделать странный ВВ55 на F0-F3, правда я пока слишком плохо представляю, что именно этот загрузчик загружал. Речь идет о 512-байтовом заводском загрузчике?
Речь о хитром загрузчике, который нашел в одном своем векторе KTSerg.
svofski, а видео с Chaos Constructions 2018 с вашей лекцией на эту тему вам прислали уже ?
Daniil Chislov 86, я лично уже ответа не жду. Cледующую лекцию попробую записать на камеру с заряженной батарейкой и вставленной sd-картой ;)
А зря!
https://www.youtube.com/watch?v=YXY-hn4DQ84
https://vk.com/wall-190875464_32
Огромное спасибо Серёже Тряпше за видео! Вот кто умеет заряжать батарейки в камере и вставлять в нее SD-карты.