ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Конкретно для Спека, где надо по первому такту проца сгерить прерывание и уже через 2 такта Z80 выдать результат из таблицы состояний, надо к схеме контроллера добавить всего лишь один 8-битный регистр с Z-состоянием (ИР22/23/33): контроллер по прерыванию в нее пишет как успеет, а Спек из него читает когда хочет, управляя Z-состоянием (Z80.RD->ИР23.OE).
При такой реализации не важно сразу ты отработаешь прерывание от ZX и запишешь в регистр, или по приоритетам спустя несколько милисекунд, или отвлекаясь на обработку USB. Ибо регистр хранит данные уже актуальные (если успели ответить) или предыдущего "запроса" (если моментально ответить не успели). Т.е. опять все тот же некритичный (для человеческого восприятия) случай когда со стороны ZX-хоста выглядит что кнопка нажата или отпущена на пару милисекунд позже чем есть.
В любом случае, схема "контроллер + регистр" выглядит куда как более здраво чем схема с двумя последовательно включенными контроллерами где один делает преобразование "USB-PS2", а второй "PS2-матрица". Кстати, два контроллера тоже не будут успевать отрабатывать без задержки, т.к. в последовательных схемах задержки складываются.
Ну так а я об чем.
Да и Wait не так страшен, КМК.
Последний раз редактировалось Error404; 02.04.2015 в 17:31.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Есть подводный камень: Z80 делает серию чтений, при этом сдвиг "неуспевших" данных означает сдвиг кнопок по матрице клавиатуры. Если делать строго 1 регистр, то заполнять его надо актуальными данными. А если обеспечить Z80 полным набором регистров на всю клаву, тогда да, обновлять ее можно на любой скорости, хоть 10фпс, для человека это не особо важно. Родной опрос на 50фпс, конечно.
А что, спек сам не может через драйвер работать с новым устройством в слоте? Что получается, нужно все так устройства эмулировать с помощью дополнительных плат с микроконтроллерами - порт клавиатуры, мыши, магнитофона, интерфейс 1, интерфейс 2, микродрайв, дигитайзер, мультифейс...? Это уже не спектрум, а обвешанная новогодняя ёлка какая-тоА как же драйвера? Или никто не слышал про аппаратную/программную виртуализацию? Вот к примеру как DivMMC работает с образами TRD, TAP... эмулируя магнитофон, дисковод, джойстик.... или там на плате микроконтроллеры для каждого устройства?
А 146% софта переписывать под драйвер кто будет?
---------- Post added at 21:41 ---------- Previous post was at 21:13 ----------
Ты не понял коллегу.
Сопряжение - подразумевается внешний чип типа CPLD или второго МК, который и будет потеть над проблемой "успеть".
---------- Post added at 22:15 ---------- Previous post was at 21:41 ----------
"Матрицу" ЮТ-88 (Орион, Радио-86РК, Специалист...) успеваем обслужить, работает.
Скорпион-турбо - не успеваем.
Ну хоть такой прогресс пока...
---------- Post added at 22:19 ---------- Previous post was at 22:15 ----------
"Испытательный стенд"
![]()
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
На Эво эмулируется порт 0xXXFE, который порт клавиатуры. Точнее, восемь портов.
Матрицы и прочие контроллеры клавиатуры делают то же самое.
Тогда я не понимаю сути Вашего вопроса/предложения.
---------- Post added at 22:54 ---------- Previous post was at 22:52 ----------
Скорее всего - да. Но тут и ёжику понятно, что ни PS/2, ни USB не дадут поддержки такого количества одновременно нажатых клавишь, как механика. Но шансы - велики![]()
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Вот смысл в этой статье, надеюсь прояснит суть.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)