На оригиналах флешка везде мешается питающему кабелю :-/
Вид для печати
Господа, если у кого есть фирменные 48к и 128к - просьба проверить мою сборку DivGMX в режиме DivMMC:
Сырцы в ветке https://github.com/andykarpov/DivGMX/tree/divmmc
Тестовая сборка для ep3: https://github.com/andykarpov/DivGMX...0180215-15.zip
Что добавилось: синхронизация работы портов divmmc через клок с краевого слота.
У меня стабильно все работает на Harlequin 48k.
На карабасе с сигналом CLK на ZX BUS - недоработка, он должен быть инверсным по отношению к клоку процессора. Пустил через инвертор, но все равно - черный экран по NMI, пока не пойму, чего ему не хватает...
Мои изыскания по этому поводу:
1) R34 в Карабасе можно заменить на перемычку, но толку не будет - все равно внешний ROMCS, который блокирует встроенный ROM - программный.
2) Пробовал делать R34 680 Ом и заводить сигнал с краевого слота на ПЗУ в обход программной блокировки - толку тоже нет.
3) DivGMX подменяем ROM без вопросов как в текущем программном режиме, так и в железном (по аналогии с оригинальными спектрумами).
4) Проблема где-то в другом, потому как один знакомый пробовал Карабас с разными железячными DivMMC (DivSD Nano от ZAXXON, DivMMC Future который вообще, кстати, от клока отвязан) - не работает ни в каком виде. Подозреваю, где-то в карабасе конфликт с видео-модулем, уже все возможные варианты перепробовал - не получается завести divmmc...
5) С другой периферией, которая используем ROMCS проблем нет - например ZX BDI 2.0, ZX Dandanator Mini - все работает как часики. Да и DivGMX в режиме тестовой ПЗУ тоже как бы работает без проблем.
Вот видео работы DivGMX в карабасе в режиме DivMMC и в режиме тестовой ПЗУ )))
https://youtu.be/tmCGUkbl1g4
- - - Добавлено - - -
Вот, кстати, интересный блог и статья по поводу разработки продукта DivMMC Future: http://blog.tynemouthsoftware.co.uk/...mc-future.html
Автор пишет, что с клоком на разных моделях спектрумов - полная беда, на некоторых он вообще отсутствует, поэтому приходилось всякие перемычки городить, клок заводить через триггер, пытаясь его привести к нужному виду - но все равно процент машин, на котором DivMMC не работал оставался высоким. И автор пришел к выводу, что внешний клок вообще не нужен ) Точнее как- он нужен только для чтения с SD-карточки. При этом опытным путем было выяснено, что достаточно пустить туда свой клок 4.0МГц.
Этот вариант тоже хочу попробовать на DivGMX :)
UPD: По поводу карабаса - завел на нем DivMMC от Zaxxon (nanoSD).
Эта штука юзает CLK с краевого слота ZX BUS, на карабасе пришлось сделать его инверсным через один из свободных инверторов IC4, дабы соответствовать стандарту спектрума.
Работает очень стабильно, "без единого разрыва" :)
Товарищ Ricardo Saravia из retroshop.pt завел Karabas-128 с DivMMC Future от Ben Versteeg, в этом девайсе вообще CLK не используется.
А вот с реализацией DivMMC на DivGMX какая-то ерунда.
При чем есть подозрение, что ROMCS тут вообще ни при чем, а дело где-то в скорости переключения ШД на чтение / запись или в контроллере SDRAM...
ЗЫ: кстати, какие только ухищрения люди не делают, чтобы в DivMMC выровнять клок от ULA в более-менее юзабельный вид. В реализации Zaxxon стоит, на секундочку, 74LS123 + 74LVC1G14.
Но, раз у товарища Ben Versteeg - там вообще отдельный генератор на 4МГц и клок с ZX BUS не используется - значит и нас ничего не держит чтобы так же сделать.
Посему, vlad, надо искать узкое место. У шинных трансиверов в DivGMX есть какие-то заявленные характеристики на задержки в прохождении сигналов при переключении направления?
Подключи DivMMC, сними характеристики и сравни с DivGMX, всего-то... Пишут всякую ерунду в начале не разобравшись, что у них ничего не работает... У меня работает.
Снять какие характеристики?
Тут же процессы в динамике смотреть надо, в комплексе: !RESET, !WR, !RD, !MREQ, !IORQ, !CLK, ZXROMDISABLE, !M1 + как DivMMC общается и в какие моменты со своей памятью - EEPROM / SRAM, то есть как минимум еще !EEPROM_CS, !EEPROM_WE, !SRAM_CS, !SRAM_WE. В принципе, 8 канального логического анализатора должно хватить на основные сигналы, но чтобы посмотреть в привязке к ША и ШД - тут надо что-то серьезнее, имхо )
Для начала - можно и просто осциллографом потыкать, наверное )
SignalTap II Logic Analyzer
Мощная и интересная штука:
— позволяет наблюдать почти любой внутренний или внешний сигнал
— частота выборок ограничена только быстродействием чипа (для Циклона 250 МГц)
— до 2048 каналов
— 128к выборок на канал
— поддерживаются все FPGA семейства
— отслеживание состояний конечного автомата
— гибкая настройка моментов выборки
Какие проблемы? ))
- - - Добавлено - - -
Как проверить DivMMC? Подключить его к DivGMX в роли Спектрума :)
А если внимательно посмотреть и подумать? :)
https://78.media.tumblr.com/fd390cab...1dn3o1_500.gif
Я внимательно посмотрел и подумал.
Чтобы сделать полноценный host ZX Spectrum на DivGMX, как минимум без этих нужных мне сигналов, которые имеют только одно направление в железке DivGMX, ничего не получится, без переделки железа:
1) RESET# - этот сигнал нужен на выход, а еще лучше - на вход/выход для внешних периферийных устройств
2) ROMOE1# - этот сигнал нужен на вход для работы с внешними периферийными устройствами
3) IORQGE - этот сигнал нужен на вход для работы с внешними периферийными устройствами
Какие будут предложения?
ЗЫ: vlad, я, если честно, не совсем понимаю твой сарказм.
ИМХО, лучше ничем не помогать, чем стебаться... После такой помощи мотивация и желание допиливать твою железку стремится к нулю...
Для данного случая в полноценном нет необходимости, также можно использовать DivGMX как анализатор сигналов на шине, подключив его параллельно.
В допиливании железки нет никакой необходимости и что касается когнфигурации аналогично, т.к. здесь смотрю, это никому не нужно... Наберется десяток заинтересованных, тогда вместе можно и сделать, хоть конфиг ZX Next...
Нужна ли поддержка VideoDAC2 на DivGMX для возможности работы софта под неё в конфигурации TS-Conf?
http://forum.tslabs.info/download/file.php?id=1708&t=1
Цикл статей: http://hype.retroscene.org/tag/FT812/
Плата VideoDAC2 будет подключаться к интерфейсу ZXBus на DivGMX через простой переходник выполненный из двух разъемов PLD-40 и SL-62.
Планируется поддержка ядра AVR в FPGA для совместимости с Arduino и возможности запуска готовых проектов
https://www.youtube.com/watch?time_continue=7&v=2iy_yUQd4Mw
Вот подумалось.
vlad, а не мог бы ты развести платку для DivGMX типа Docking Station для Turbo Chameleon 64? На ней слот, куда устанавливается DivGMX и разъемы для вдак2, ZiFi, питания, может еще чего... А уже желающие скооперируются и закажут изготовление у китайцев.
У Хамелеона она вот такая.
http://s45.radikal.ru/i110/1605/1a/9d6bf598a048.jpg
Влад , когда планируется поддержка Nes/Famicom? В идеале с поддержкой оригинального геймпада и расширенного аудио
Собрал альфу (скачать)
Пока так, видео буфер маловат, так-что цвета неполные. Для выбора игры жмём и удерживаем клавишу Win = OSD Menu на клавиатуре (верхний разъем) или кнопку 10 на gamepad, одновременно курсором (клавишами верх/вниз) выбираем игру и жмём LShift или L2 на gamepad для её загрузки.
Пользуюсь устройством уже несколько дней в конфигурации TS-Conf и хочу сказать, что весьма положительные впечатления от девайса. Очень мощная начинка, удобная в использовании. Wild Commander просто огонь. Не хватает правда video dac для просмотра картинок (обложек) на флеш карте. Ничего не виснет, звук приятный клавиатура отзывается нормально, правда придется попотеть с поиском рабочей мышки (ни одна беспроводная не подошла).
DivGMX своеобразный компромисс между спектрумом на дискретах и эмулятором (железо реализованное в плис матрице). По моему это то-же самое что и устройство реализованное на дискретах только с одним плюсом схему можно менять как хочешь в любой момент без паяльника.
Жаль, что пока нет конфигурации next.
Пока полёт нормальный. Следующий этап буду пробовать Basic конфигурацию с другими спектрумами. Как только соберу своего скорпиона.
P.S. Небольшой вопрос, что будет если конфигурацию TS-Conf запустить без SD карты несколько раз? И по поводу прошивки VNC2. На github в конфигурации TS-Conf указано что её нужно шить своей конфигурацией отдельной, а для других конфигураций таких инструкций нет. Нужно ли его прошивать для других конфигураций при переходе с TS-Conf на них и зачем для TS-Conf он шьется отдельно? Как проще всего сделать корпус для устройства? Лучше всё таки обзавестись корпусом т.к. вначале подумал, что сломал устройство, а оказалось, что попал мелкий мусор на контакты одно из микросхем.
Планируется эмуляция Zx Spectrum Next?
Глянул, исходники ещё закрыты, обещают открыть, когда продадут все платы, чтобы никто раньше времени не перенес конфигурацию, иначе смысл тогда в платах? По возможностям, это даже удаленно не дотягивает до ts-conf, не уверен, что нужно на это тратить время, или есть спонсоры? Сейчас уже не интересно что-то просто-так делать, страдает качество и поддержка...
Ну, тут скорее вопрос в мейнстримовости, а не мощности(хотя пока что это все под большим вопросом - тс-конф уже есть живой, а некст еще по нормальному не запустили)
По поводу, кстати, ts-conf через divGMX - насколько юзабельно будет пользоваться тс-кой без PC-клавиатуры? Будет ли оно работать, используя аппаратную клавиатуру фирменного спека?
У меня нет divGMX - я думаю брать или нет.
DivGMX может подменять стандартную матричную клавиатуру на расширенную - USB клавиатуру, т.к. в ts-conf используются функциональные клавиши, это раз, а во-вторых - там всё работает от ps/2 клавиатуры, т.е. обычной матричной для полноценной работы в ts-conf будет недостаточно.
Во, спасибо) это я и пытался понять.
Для меня это не довод в пользу ts-conf. Хотел обойтись без пц-клавиатур
Обновление конфигурации Basic (build 20180829) Скачать
+ Повышена стабильность работы DivMMC, добавил синхронизацию по сигналу CLK от Z80 (ZXBUS A8).
+ Немного доработал конфигурацию Karabas-128 в файле karabas_128.vhd заменой строки 146 на N_ROM_CS <= n_is_rom or N_RD or BUS_N_ROMCS; т.к. не работал DivMMC.
vlad, круто! надо будет вечерком заценить! :)
А по поводу Карабаса - хммм, странно, оригинальный DivMMC (nanoSD от Zaxxon) на нем работает без вопросов без всяких замен строчки 146...
Я так понимаю, тут привязался дополнительный сигнал N_RD в условие выборки ПЗУ Карабаса. Нашу Машу этим каслом точно не испортим, так что - ок :)
Ждал. Пролился. Буду тестить на +2В... Но со временем - просто дрянь.
Обновление конфигурации Basic (build 20180831) Скачать
+ Добавлен тест кол-ва тактов/INT в OSD с определением видео системы Pentagon 128/ZX Spectrum 48/ZX Spectrum 128/ZS Scorpion 256
Что-бы включить OSD нажимаем клавишу F1 на USB клавиатуре.
Попробовал релиз 20180829 для ep3 на Карабасе (перед этим поправил строчку 146 на всякий случай):
1) как минимум DivMMC теперь инициализируется норм, но после того как заставка ESXDOS отработает, вываливается в 48й бейсик с характерным пол-секундным звуком из бипера и все висит.
2) повторная инициализация через пробел+RESET иногда не зависает, но при вызове NMI меню - в 99% случаев - отрисовывается не до конца и зависает.
3) один раз удалось выбрать TAP-файл, началась загрузка и загрузилось с ошибкой, все зависло.
Релиза 20180831 для ep3 не нашел нигде :(
- - - Добавлено - - -
ЗЫ: vlad, а в твоем Карабасе сделана модификация CLK на разъеме ZX BUS ? Там оказалось, что он должен быть инвертированным по отношению к клоку процессора. В последней ревизии платы исправлено, для ревизии платы "rev.A" предлагается чикнуть дорожку на краевом слоте и запустить сигнал через инвертор:
Фото доработки
на триггере Шмитта:
http://i.piccy_.info/i9/22a36272d363...182147_800.jpghttp://i.piccy_.info/a3/2018-09-01-1...55x566-r/i.gif
или так, с "соплями" на свободный инвертор 74HC04:
http://i.piccy_.info/i9/ebe4d25025bf...4_n_2__800.jpghttp://i.piccy_.info/a3/2018-08-28-1...55x566-r/i.gif
[свернуть]
vlad, очень хотелось бы последнюю актуальную сборку под ep3 с инвертированным CLK (для фирменных машин и доработанного Карабаса) :)
Ну или если сложно сборку - то хотя бы исходники закоммить, сами сделаем :)
Нет, этот, который за 29 фунтов ;)
Вот этому (DivMMC Pro One) клок не нужен: https://www.bytedelight.com/?product..._enjoy_pro_one, автор как-то хитро подобрал частоту внутреннего генератора и его в качестве клока использует. Ведь не во всех оригинальных спектрумах этот клок выводится на краевой слот, в некоторых машинах он очень кривой (поэтому каждый, кто выпускал DivMMC - сталкивался с задачей "выпрямления" этого клока через одновибраторы + триггеры Шмитта).... У ZAXXON в его nanoSD - это 74LS123 + SN74LVC1G14.
Это который за 60 фунтов? Что он ещё умеет? Какого тогда проводок тянуть то было? ))
Кромсать плату Karabas-128 мне просто влом (думать надо было на этапе прототипирования), т.к. DivGMX с ней отлично работает (конфиг настраивается за пару минут и делов-то), да и подключать больше к ней кроме DivGMX нечего да и ненужно, вся нужная периферия:
- HDMI 640x480@60Hz
- Audio out
- K-Mouse Turbo http://velesoft.speccy.cz/kmsoft.htm
- DivMMC (ROM 8K + RAM 512K) NMI кнопка на плате http://www.esxdos.org/
- SounDrive http://velesoft.speccy.cz/da_for_zx-cz.htm
- Turbo Sound Easy (2x AY-3-8912 + SAA1099 (12 channels stereo)) http://velesoft.speccy.cz/turbosound-cz.htm
- Z-Controller http://speccy.info/Z-Controller
в конфигурации BASIC есть. Доделываю GS. А насчет сделаем сами, я очень сомневаюсь, иначе уже давно бы сами и сделали :)
Добавил синхронизацию по низкому уровню клока. Сборка 20180901 Скачать. У меня работает без сбоев.
Вложение 66116Вложение 66115Вложение 66117
Согласен, у меня не было инфы, что это настолько принципиально...
- - - Добавлено - - -
;) проинвертировать клок, я имел в виду :) а попытки завести DivMMC на DivGMX были, что я только не испробовал - стабильно не работало ни в каком виде...
- - - Добавлено - - -
Попробовал сборку 20180901 для ep3 на карабасе, как-то не выходит "каменный цветок"...
https://drive.google.com/file/d/1vj7...ew?usp=sharing
При этом nanoSD работает норм, все загружается:
https://drive.google.com/file/d/1hwI...ew?usp=sharing
- - - Добавлено - - -
А вот познавательная история, как парни из tynemouth software пришли к генератору 4МГц вместо использования клока с краевого слота + логика определения (оригинальной) модели спектрума по амплитуде и наличию сигнала на краевом слоте: http://blog.tynemouthsoftware.co.uk/...mc-future.html
Тестил последнюю прошивку на +2B с родным процем и пзушками. В экран инициализации EsxDOS выходит стабильно, но дальше всякий бред пишет (после sda:) и в итоге ничего.