На оригиналах флешка везде мешается питающему кабелю :-/
Вид для печати
Господа, если у кого есть фирменные 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 в роли Спектрума :)