С атмеги надо вывести как минимум MAGIC, TURBO ON/OFF (тут вариант - или триггером, или импульсом), ещё 1-2 сигнала на усмотрение пользователя. Сейчас эти сигналы есть практически у всех новоделов.
С атмеги надо вывести как минимум MAGIC, TURBO ON/OFF (тут вариант - или триггером, или импульсом), ещё 1-2 сигнала на усмотрение пользователя. Сейчас эти сигналы есть практически у всех новоделов.
ZX-Evo Rev. C4 (Double-config) / VDAC2 / NeoGS / ZX-Multisound / NemoIDE / ZiFi
Scorpion ZS 256 Turbo+ (Light) / GMX / ZXM-GS / TSFM / SMUC / ZXKM / Gotek
Вопрос по SJP v2.
Пока я застопорился на прошивке атмеги, появился вопрос: а кемпстон тут реализован выдачей 0 или 1 при нажатой кнопке с платы на порт компа? На скорпионе для кемпстона общий +5В, потому я не знаю, подключать его к этой плате или надо инвертор добавить?
ZX-Evo Rev. C4 (Double-config) / VDAC2 / NeoGS / ZX-Multisound / NemoIDE / ZiFi
Scorpion ZS 256 Turbo+ (Light) / GMX / ZXM-GS / TSFM / SMUC / ZXKM / Gotek
Фьюзы для AVRDUDE прописаны в файле prog_bat_file.bat:
Кемпстон реализован выдачей 0 при нажатии. Подключать через инверторы.Код:avrdude -p atmega48 -c FT232_AVR_PROG -P ft0 -B 4800 -U lfuse:w:0xef:m -U hfuse:w:0xdc:m -F avrdude -p atmega48 -c FT232_AVR_PROG -P ft0 -e -U flash:w:SUPER_JOYSTICK_PORT_2.hex -F PAUSE 0
"L-256"
Итак, заменил Atmega48PA на Atmega48, программатор сразу стал её видеть, всё чудесно прошиватеся-стирается-проверяется. Но всё равно не работает: при включении все индикаторы зажигаются-гаснут и более не реагируют ни на что. Должны ли CaspLock/MumLock/ScrolLock зажигать их без контроллера?
Клавиатура прекрасно работает с ZXMC2 по сканкодам Set3, но тут реализован Set2. Другой клавиатуры у меня под руками нет, потому думаю как в прошивке FLASH_DATA.asm поменять Set2 на Set3. Не совсем понятно, что делать с куском раскладок с префиксом E0. Какие будут советы?
ZX-Evo Rev. C4 (Double-config) / VDAC2 / NeoGS / ZX-Multisound / NemoIDE / ZiFi
Scorpion ZS 256 Turbo+ (Light) / GMX / ZXM-GS / TSFM / SMUC / ZXKM / Gotek
Запустил платку, разбираюсь с прошивками. Добавил специфичную команду для Scorpion'a - холодный сброс (Курсор Влево и Reset).
Разбираюсь с Magic. Проблема в автоповторе: контроллер иногда успевает дважды отправить нажатие. Думаю над тем, как убрать вообще автоповтор при нажатии только нужной кнопки.
Вообще, контроллер интересный, прошивка хорошо откоментирована, можно легко менять раскладку, НО если не нужно специфических комбинаций кнопок. Вот с ними пока не всё понятно.
ZX-Evo Rev. C4 (Double-config) / VDAC2 / NeoGS / ZX-Multisound / NemoIDE / ZiFi
Scorpion ZS 256 Turbo+ (Light) / GMX / ZXM-GS / TSFM / SMUC / ZXKM / Gotek
Добавлено:
- Выдача NMI (Magic). Сидит на ScrollLock. Дребезга не замечено, проверял в нескольких программах.
Не совсем понятны нюансы:
Почему макрос "PRESS NULL" ставится только между кавычками? Когда его имеет смысл ставить, а когда нет? В другой команде это макрос стоит и после второй кавычки.Код:PRESS CS+KEY_L PRESS CS+KEY_O PRESS CS+KEY_A PRESS CS+KEY_D PRESS SS+KEY_P PRESS NULL ; отпускание всех кнопок PRESS SS+KEY_P PRESS KEY_EN
ZX-Evo Rev. C4 (Double-config) / VDAC2 / NeoGS / ZX-Multisound / NemoIDE / ZiFi
Scorpion ZS 256 Turbo+ (Light) / GMX / ZXM-GS / TSFM / SMUC / ZXKM / Gotek
Сейчас уже не помню. Этот макрос для ПЗУ Open SE BASIC. Там команда LOAD вводится по буквам. Возможно две ковычки подряд программа в ПЗУ считала как долгое нажатие и вводила больше двух ковычек. Или просто для красоты - чтобы была пауза между двумя кавычками.
Последний раз редактировалось zx-kit; 19.11.2017 в 14:32.
"L-256"
Не получается выдать команду на клавиатуру для зажигания светодиода. Кусок кода взят из соседней темы "контроллер на атмеге48". Контроллер либо виснет, либо ничего (?) не происходит. Думаю плюнуть на этот момент, хотя было бы удобно.
Не понятно как реализовать Pause, слишком мудрёно получается. Ну и оказалось в городе не найти сеговского джойстика, эта часть тоже отложена на потом. Джойстик мне особо и не актуален, но интересно попробовать. Классический дискретный джойстик, подключенный к контроллеру, не заработал. Хотя надеялся, что тупо ВНЛПО контроллер выдаст.
ZX-Evo Rev. C4 (Double-config) / VDAC2 / NeoGS / ZX-Multisound / NemoIDE / ZiFi
Scorpion ZS 256 Turbo+ (Light) / GMX / ZXM-GS / TSFM / SMUC / ZXKM / Gotek
Как надо чтобы работала пауза ? Можно нажатием кнопки PAUSE останавливать игру и ею же продолжать.
"L-256"
но тут сделан wait не на отдельном бите атмеги, а на сдвиговом регистре. Если бы был бит - я бы просто инвертировал его с каждым нажатием так же, как сделал управление турбо. А тут надо по нажатию кнопки зациклить выдачу wait до следующего нажатия. Но опрос клавиш по прерыванию происходит в одном месте, а бесконечный цикл надо делать в другом. Что произойдёт, если атмегу зациклить в блоке макросов команд?
ZX-Evo Rev. C4 (Double-config) / VDAC2 / NeoGS / ZX-Multisound / NemoIDE / ZiFi
Scorpion ZS 256 Turbo+ (Light) / GMX / ZXM-GS / TSFM / SMUC / ZXKM / Gotek
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)