С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
только большого смысла в этом нет - тот самый "квадрат" разрулить не поможет.
оно так и делается в журнальном ПЗУ. и за счет использования фичи 8255 с обнулением портов при настройке на запись - можно получить гораздо более быстрый опрос клавы без перебора отдельных битов.А у Специалсита нет диодов и можно опрашивать порты как 6х12 так и 12х6.
Зверинецъ
Специалист (был когда-то "совсем стандарт") - 1988-2023
Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
Ленинград2 + CF карта
Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
БК0010-01 стоковый[свернуть]
там линии клавы висят прямо на ША проца, так что диоды необходимы. но "квадрат" на Спектруме точно так же не разруливается.
сомнительно как-то. вечером на реале посмотрю.
- - - Добавлено - - -
очень просто
- ряды на ввод, колонки на вывод (и в 0) - читаем ряды - если все 1 - ничего не нажато, иначе запоминаем где 0
- колонки на ввод, ряды на вывод (и в 0) - читаем колонки - если все 1 - ничего не нажато, иначе запоминаем где 0
по пересечению позиции 0 в двух случаях - определяем нажатые кнопки. т.о. если нажаты кнопки без конфликтующих комбинаций - они определяются за 5 обращений к ВВ55, включая настройку РУС (на Специалисте). если есть конфликтующие комбинации- тут сложнее.
Последний раз редактировалось Serg6845; 11.10.2023 в 09:57.
Зверинецъ
Специалист (был когда-то "совсем стандарт") - 1988-2023
Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
Ленинград2 + CF карта
Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
БК0010-01 стоковый[свернуть]
CityAceE(11.10.2023)
Проверил! Вот, что значит тестировать всё под эмулятором, пусть даже и очень хорошим, и ждать того же результата от реального компьютера.
Ну, конечно же, на реале тест Рюмика с одновременным нажатием нескольких клавиш ведёт себя совсем не так, как под Emu80! Две клавиши по горизонтали он вообще никак не детектит - показывает только одну, ту что левее. По вертикали да, показывает комбинации. Зато под Emu80 тест показывает чёткий "квадрат"
Но нет худа без добра! В результате изучения данной проблемы я сделал дизассемблер теста Рюмика и скомпилировал его в RKS для загрузки с магнитофона на реал. Из теста я удалил всё, кроме самого теста клавиатуры - можно тестировать в том числе клавиши 1, 2 и 3, которые в оригинале включают другие тесты.
P.S. Уж извините, но дизассемблер в мнемониках Z80.
С уважением, Станислав.
Oleg N. Cher(11.10.2023), parallelno(11.10.2023)
Что это даст?
Внутри матрицы клавиатуры создаётся цепь! И её никакими внешними обвесами и тем более программными средствами невозможно прервать или отследить. Можно вмешаться только внутрь матрицы. Во всяком случае здравый смысл именно об этого говорит.
Ещё раз привожу схему замыкания:
Однако ж и на Специалисте, и на Спектруме с такой проблемой я не сталкивался. И тест Рюмика каким-то чудом всё отслеживает.
А можно "на пальцах" объяснить в чём суть этого быстрого метода?
С уважением, Станислав.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)