Я малость перепутал... При F12 грузится бейсик. При Print Screen грузится меню. Либо с самого начала - меню грузится.
/NMI подключен по схеме, непосредственно к 17 выводу проца.
Я малость перепутал... При F12 грузится бейсик. При Print Screen грузится меню. Либо с самого начала - меню грузится.
/NMI подключен по схеме, непосредственно к 17 выводу проца.
И что, в меню BASIC128 нет реакции на нажатие любых клавиш? Даже ENTER?Цитата:
Сообщение от Elya
В Пентагоне такое подключение бессмысленно, поскольку в ПЗУ BASICа нет процедуры корректной отработки такого события.Цитата:
Сообщение от Elya
Если используется фирменное ПЗУ, то в этом случае происходит переход на 0 адрес, и значит просто перезапуск BASICа.
Самое первое в меню - Tape Loader, Enter нажимаю, ждет загрузки. При нажатии на пробел - из загрузки выходит, все как надо.
Но почему стрелки не действуют? Пробовал уже стрелки на клаве, пробовал 6 и 7, пробовал 6 и 7 одновременно со всеми управляющими (Alt, Shift, Ctrl), пробовал цифровую клавиатуру.
Вопрос... А что - Print screen и F12 не задействованы разве?
Вообще, очень удобно даже. Надоела игрушка - шлеп по Print Screen или F12, выходишь - куда надо...
Управление курсорными клавишами, а это CapsShift+6 и CapsShift+7.Цитата:
Сообщение от Elya
Поскольку CapsShift на IBM-ской клавиатуре задан на клавише Ctrl, то и жать надо на Ctrl+6 или Ctrl+7.
Вообще то это сочетание задано в базовой раскладке за курсорными клавишами ВВЕРХ и ВНИЗ.
Так что мне не понятно, почему они у тебя не работают.
Ты какую прошивку заливал?
Что значит не задействованы?Цитата:
Сообщение от Elya
Сказано же - PrintScreen формирует импульс СБРОСа на выходе /RESET; F12 - импульс на выходе /NMI.
Версия прошивки 2.4
Фьюзы в "ON". Их 4. Spien, FSTRT, LB1, LB2
Нормальная прошивка для AT90S2313.Цитата:
Сообщение от Elya
Вот фрагмент из исходника раскладки:
Как я и говорил клавиша ВНИЗ это Ctrl+6, а клавиша ВВЕРХ - Ctrl+7.Код:DB Kl_CS ;11h Left Ctrl CapShift
...
DB CapSh+Kl_6 ;60h [Down]
DB CapSh+Kl_5 ;61h [Left]
DB 000H ;62h Pause/Break -> WAIT
DB CapSh+Kl_7 ;63h [Up]
Курсор по ним в меню BASIC128 должен управляться.
Фьюзы у AT90S2313 можно оставить заводские, тоесть вообще не трогать.Цитата:
Сообщение от Elya
Фьюзы и не трогал, как есть.
Странно вообщем. Стрелки нажимаю - светодиод моргает, все прекрасно. Но не сдвигается. Только три кнопки действуют. Это Enter, F12 и Print Screen.
Толи попробовать ATTINY2313? Цоколевка, если не ошибаюсь, один в один?.. Прошивка имеется, фьюзы как прошивать тоже...
Это в меню, а в BASICе то как я понял всё работает?Цитата:
Сообщение от Elya
Не имеет смысла.Цитата:
Сообщение от Elya
Проверь лучше, работают ли нормально все клавиши в BASIC48.
У меня такое впечатление, что у тебя не вся матрица клавиатуры правильно подключена к порту клавиатуры Пентагона.
Исключено. Я проверял каждую кнопку, когда мучался с АП6. Все дохлые были. Лишь с зарубежкой - прекрасно заработало. К тому же я уже игрался в пару десятков игр.
Хоть убей - ну не работает и все... Клавиатур у меня лежит 5 штук. Со всеми уже пробовал - одно и то же.
Тогда единственно что могу предположить - сбой в ПЗУ BASIC128.
Остается еще способ проверки, если нет механической клавиатуры, подключить три кнопки Caps Shift, 6 и 7
в соответствии с их расположением в матрице Спектрумовской клавиатуры.
Подключить и проверить, может всё таки ПЗУ не исправно в Пентагоне.
Подключил механическую клавиатуру - стрелки работают, меню передвигается...
Что за странности-то???
Чем по-сигналам отличается бейсик-48 от меню? Вроде бы все по схеме, единственное только - не поставил элемент ЛЛ1 для Magic. Но, сомневаюсь, что в этом дело.
Я скоро от безысходности прикалываться начну ;-)
caro, по какому событию прекращается сигнал NMI во всех твоих клавиатурных контроллерах? Т.е. интересует когда он снимается?
Во всех контроллерах сделано одинаково - нулевой уровень на выходе, длительностью 10 мсек.Цитата:
Сообщение от БК-0010
Если его подавать непосредственно на вход /NMI процессора Z80, то при времени обработки этого события менее 10 мсек, прерывание возникнет повторно.
Если это не желательно, то лучше использовать дополнительную схему формирования импульса /NMI, которая активируется импульсом с контроллера.
Так у меня сделано в Кворуме.
На моем теперешнем стоит именно ZXMC2.Цитата:
Сообщение от БК-0010
А как же с процедурой обработки этого /NMI в ПЗУ Феникса?Цитата:
Сообщение от БК-0010
У меня на Кворуме этот импульс передним фронтом сбрасывал системный порт,
что включало страницу, в которой и происходила обработка этого прерывания.
В этой процедуре проверялось наличие вектора прерывания (команда JP) в начале в 8 странице ОЗУ, затем в 0, а при отсутствии таковых, переход в TRDOS.
На Фениксе, как я полагаю, единственная функция этого прерывания - вызов процедуры из ПЗУ TRDOS.
[я имел ввиду, что на Фениксе она интегрирована, т.к. у слотововой нет такой обвязки.. хотя в принципе и на слотовой можно допаять - все сигналы есть :)
это тоже элементарно :) . Делается ещё одна доработка на pnp транзисторе и резисторе, которая при NMI=0, выставляет BLK=1, а в нулевой странице по адресу #66 стоит обработчик прерывания, в конце которого JP на любой адрес выше #FF :) .
Мега после выставления NMI проверяет что нет обращения к #FE, и ждёт когда магнитофонный вход упадёт в ноль, после чего читает старший адрес. После того как старший адрес сначала стал #00, а потом изменился по адресу в JP - NMI снимается :) . Обработчик NMI так же может находиться и выше #FF, в этом случае JP сразу на обработчик.
Я собрал 2 контроллера. С первым всё хорошо, а со вторым были проблемы. Контроллер или повисал или выдавал левые нажатия клавиш. Достаточно в бейсик-48 нажать любую клавишу и ждать. Может пройти всего пол-секунды, может 20-30. Но сбой будет 100%. Менял микросхему (10Мгц), на аналогичную. Безрезультатно. Фузы перешивал на использование внутреннего генератора 8Мгц. Внешнего 10. Безрезультатно. Схему перепроверил на много раз. Писал caro, он так и не дал ответа почему идёт сбой. Причем похоже, что с клавиатуры приходят порченные данные. Пробовал делать проводки короче, потом их экранировать - всё без толку. Позднее появилась у меня третья микросхема, 20 Мгц (как и для первого контроллера), поставил её. И на 8 Мгц внутреннем генераторе, и на 20Мгц внешнем - всё заработало (фузы я перешивал и проверял, отключал кварц - контроллер висел). Причем видно бывает, что нажатия клавиш идут в буфер, подзатык идёт, но потом всё выдается нормально. Левых нажатий не выскакивало. Так что может быть проблема в самой ATTiny.
caro, надеюсь, то что я предложил, принципиально осуществимо с т.з. возможностей Меги?
И я хотел ещё узнать не заняты ли у тебя чем-то комбинации сигналов NMI и RESET на Фениксе, хочу задействовать комбинацию NMI=0, RES=0 для MAGIC с клавиатуры
Ну нет у меня способности только по констатации проблемы решать вопрос о ее причине :)Цитата:
Сообщение от Vadim
---------- Post added at 17:26 ---------- Previous post was at 17:23 ----------
Не заняты.Цитата:
Сообщение от БК-0010
---------- Post added at 17:34 ---------- Previous post was at 17:26 ----------
ZXMC разрабатывался, с учетом безпроблемной работы при подключению к слоту любой модели Кворума и Магика без какой либо доработки таковых.Цитата:
Сообщение от БК-0010
Не понял зачем такие сложности.Цитата:
Сообщение от БК-0010
Здравствуйте.
Предлагаю разработать контроллер клавиатуры PC/2 на ATMega8-16PU.
Подпрограмма обработки прерывания будет такая:
Выход на прерывание: 4 такта
IN ZL,PINx ; 5 ТАКТОВ
LD BUF,Z ; 7 ТАКТОВ
OUT PORTy,BUF ; 8 ТАКТОВ
OUT DDRy,CONSTFF ; 9 ТАКТОВ
nop
...
nop
OUT DDRy,CONST00
RET
Итого на частоте 20 МГц получаем время 450 мкС.
Вполне безwaitовый вариант !!!
В кае 2010 такой