; ПОДПРОГРАММА ОПРОСА СОСТОЯНИЯ КЛАВИАТУРЫ ; ВЫХОДНЫЕ ПАРАМЕТРЫ В АККУМУЛЯТОРЕ ; A=00 КЛАВИША НЕ НАЖАТА ; A=FF КЛАВИША НАЖАТА ; ПОДПРОГРАММА МОДИФИЦИРУЕТ ВСЕ ЯЧЕЙКИ ; CNSTAT: LDA PC55 ; КЛАВИША РУС/ЛАТ НАЖАТА? ANI 80H JZ RLPR ; ЕСЛИ ДА, ТО JMP LDA BUFLAG ; А БЫЛА НАЖАТА ? ORA A RNZ RLPR: PUSH H LHLD LASTKY ; ЧИТАЕМ КОД ПОСЛЕДНЕЙ КЛАВИШИ CALL SCAN ; ОПРАШИВАЕМ КЛАВИАТУРУ CMP L ; СРАВНИВАЕМ С ТЕМ ЧТО БЫЛО MOV L,A JZ OLDKOD ; КОД ТОТ-ЖЕ - ПОДАВЛЯЕМ ДРЕБЕЗГ NEWKOD: MVI A,01H ; КОД НОВЫЙ, НАЖАТИЕ ПЕРВОЕ STA PRNFLG MVI H,15H ; ИНИЦИИРУЕМ СЧЕТЧИК ПОДАВЛ. ДРЕБЕЗГА QUT1: XRA A QUT2: SHLD LASTKY ; ПИШЕМ НОВЫЙ КОД POP H STA BUFLAG ; И ВОЗВРАЩАЕМ 0 RET OLDKOD: DCR H ; УМЕНЬШАЕМ СЧЕТЧИК ПОДАВИТЕЛЯ JNZ QUT1 INR A ; СРОК ВЫШЕЛ. JZ QUT2 ; ЕСЛИ ДЛЯ НЕНАЖАТОЙ КНОПКИ INR A JZ RUSLAT ; ЕСЛИ ДЛЯ РУС/ЛАТ PUSH B LXI B,SNDKEY; ДЛЯ ОСТАЛЬНЫХ КЛАВИШ: CALL L92 ; ВЫДАТЬ ЗВУК POP B LDA PRNFLG MVI H,0E0H ; ИНИЦИИРУЕМ СЧЕТЧИК ЗАДЕРЖКИ ДЛЯ DCR A ; АВТОПОВТОРА. STA PRNFLG JZ WTSECN MVI H,40H ; ИЛИ ПЕРИОД АВТОПОВТОРА. WTSECN: MVI A,0FFH ; И ВОЗВРАЩАЕМ ПРИЗНАК НАЖАТИЯ. JMP QUT2 RUSLAT: LDA PC55 ; ОПРАШИВАЕМ РУС/ЛАТ ANI 80H JZ RUSLAT ; ПОКА НАЖАТА. LDA REGR ; ОТПУСТИЛИ... CMA ; ТОГДА ИНВЕРТИРУЕМ РЕГИСТР STA REGR JMP NEWKOD ; ; ПОДПРОГРАММА ВВОДА СИМВОЛА С КЛАВИАТУРЫ ; ОЖИДАЕТ НАЖАТИЕ НА КЛАВИШУ И ВОЗВРАЩАЕТ ; В АККУМУЛЯТОРЕ КОД СИМВОЛА ; МОДИФИЦИРУЕТ ЯЧЕЙКУ ФЛАГА НАЖАТИЯ НА ; КЛАВИШУ ; CONIN: CALL CNSTAT ; ОПРОСИТЬ СОСТОЯНИЕ КЛАВИАТУРЫ ORA A JZ CONIN ; ЖДАТЬ, ЕСЛИ НЕ НАЖАТА XRA A STA BUFLAG ; ЗАПИСАТЬ ПРИЗНАК ОПУСТОШЕНИЯ БУФЕРА LDA LASTKY ; ПРОЧИТАТЬ КОД ИЗ БУФЕРА. RET ; ; ПОДПРОГРАММА ОПРОСА СОСТОЯНИЯ КЛАВИАТУРЫ ; ОПРАШИВАЕТ МАТРИЦУ. РЕЗУЛЬТАТ ВОЗВРАЩАЕТ ; В АККУМУЛЯТОРЕ: ; A=0FF - НЕ НАЖАТА ; A=0FE - РУС/LAT ; ИНАЧЕ КОД КЛАВИШИ ; ЯЧЕЙКИ НЕ МОДИФИЦИРУЕТ, РАБОТАЕТ С ЖЕЛЕЗОМ ; SCAN: LDA PC55 ; ANI 80H ; ПРОВЕРЯЕТ РУС/ЛАТ JNZ CONT1 MVI A,0FEH ; ЕСЛИ НАЖАТА,ТО ВОЗВР.0FEH RET CONT1: XRA A STA PA55 ; НА ВСЕ ГОРИЗОНТАЛИ ВЫДАТЬ 0 STA PC55 ; ПОГАСИТЬ СВЕТОДИОД LDA REGR ; КАКОЙ ТЕКУЩИЙ РЕГИСТР? ANI 01H ORI 06H STA PU55 ; ЗАЖЕЧЬ СВЕТОДИОД В СООТВ. С ЯЧЕЙКОЙ LDA PB55 ; ПРОЧИТАТЬ ВЕРТИКАЛЬНЫЕ ШИНЫ INR A JNZ PRESS DCR A ; ЕСЛИ НЕ НАЖАТЫ, ТО ВОЗВР. 0FFH RET PRESS: PUSH H ; СКАНИРУЕМ МАТРИЦУ MVI L,01H ; H - СКОЛЬКО, L - ЧТО MVI H,07H SCNCYC: MOV A,L RRC ; СДВИГАЕМ ВПРАВО MOV L,A ; И ВЫВОДИМ НА ГОРИЗОНТАЛЬ 0 CMA STA PA55 LDA PB55 ; ЧИТАЕМ ВЕРТИКАЛЬНЫЕ ШИНЫ CMA ORA A JNZ WTPRSS ; ЕСЛИ НАЖАТА, ТО ВЫВАЛИВАЕМСЯ DCR H JP SCNCYC QNPRSS: MVI A,0FFH ; НЕНАЖАТА? ЗНАЧИТ ПОКАЗАЛОСЬ... POP H ; ВОЗВРАЩАЕМ 0FFH RET WTPRSS: MVI L,20H ; H - # ВЕРТИКАЛИ. ПРОВ. УСТОЙЧИВОСТЬ WTCYC: LDA PB55 ; ЕЩЕ РАЗ ПРОЧИТАЛИ, CMA ORA A JZ QNPRSS ; ЧЕРТ, ВСЕ-ТАКИ ПОКАЗАЛОСЬ. DCR L JNZ WTCYC MVI L,08H CLCOD: DCR L ; ВЫЧИСЛЯЕМ КОД КЛАВИШИ RLC JNC CLCOD MOV A,H MOV H,L MOV L,A ; H- #HOR, L=A- #VERT. CPI 01H ; ВЕРТИКАЛЬ ДЛЯ ДОП.КЛАВИАТУРЫ? JZ DOPKEY ; A=1 JC EXTKEY ; A=0 0000VVV RLC ; 000VVV0 RLC ; 00VVV00 RLC ; 0VVV000 ADI 20H ; + 0010000 ORA H ; 0VVVHHH CPI 5FH ; ЕСЛИ СКАН-КОД = 5F JNZ NOSPKY ; ТО ЭТО ВСЕГДА ПРОБЕЛ MVI A,20H POP H RET ; ТАБ,LF ,CR ,BSP,<- ,UP ,-> ,DOW TABL1: DB 09H,0AH,0DH,7FH,08H,19H,18H,1AH ; HOM,ERA,ESC,F1 ,F2 ,F3 ,F4 ,F5 , А ЭТО ЗАЧЕМ? TABL2: DB 0CH,1FH,1BH,00H,01H,02H,03H,04H,05H EXTKEY: MOV A,H LXI H,TABL2 JMP CLCTAB ; ВЫБИРАЕМ ТАБЛИЦУ ПЕРЕКОДИРОВКИ DOPKEY: MOV A,H LXI H,TABL1 CLCTAB: ADD L ; ВЫБРАЛИ ТАБЛИЦУ MOV L,A ; ВЫЧИСЛЯЕМ. В Н И М А Н И Е ! ! ! MOV A,M ; ПЕРЕНОС В СТ. БАЙТ НЕ ПРОИЗВОДИТСЯ CPI 40H ; ЕСЛИ СИМВОЛ НЕ "ЗБ",ТО ВОЗВРАЩАЕМСЯ POP H RC PUSH H NOSPKY: MOV L,A ; КОД В "L" LDA PC55 ; ЧИТАЕМ УПР. КЛАВИШИ MOV H,A ; И СОХРАНЯЕМ В "H" ANI 40H ; ВЫДЕЛЯЕМ "CTRL" JNZ NOCTRL MOV A,L CPI 40H ; КОД НЕ БУКВЕННЫЙ? JM SHNOPR ; ИДЕМ СМОТРЕТЬ "SHIFT" ANI 1FH POP H RET NOCTRL: LDA REGR ; CTRL НЕ НАЖАТА ORA A ; ЧИТАЕМ РЕГИСТР JZ BASREG ; ЕСЛИ LAT, ТО JMP MOV A,L CPI 40H ; КОД НЕ БУКВЕННЫЙ? JM BASREG ; ТОГДА ОБХОДИМ МАСКИРОВАНИЕ ORI 20H MOV L,A BASREG: MOV A,H ; "SHIFT" НАЖАТ ? ANI 20H JNZ SHNOPR MOV A,L ; ДА? ТО ПЕРЕВОРАЧИВАЕМ 6-Й РАЗРЯД CPI 40H ; ДЛЯ БУКВЕННЫХ КЛАВИШ. JM NOLIT MOV A,L XRI 20H POP H ; И ВОЗВРАЩАЕМСЯ. RET NOLIT: MOV A,L ; ЕСЛИ ЦИФРОВАЯ, ТО ОТНИМАЕМ 10H ANI 2FH MOV L,A SHNOPR: MOV A,L ; ЕСЛИ БУКВЕННЫЙ, ТО ВОЗВРАЩАЕМСЯ CPI 40H POP H RP PUSH H MOV L,A ANI 0FH CPI 0CH MOV A,L JM CYFR ; ЕСЛИ КЛАВИШИ ВЕРХНЕГО РЯДА, XRI 10H ; ТО ВОЗВРАТ, ИНАЧЕ ПЕРЕВЕРНУТЬ CYFR: POP H RET
uldemir а инициализацию, настройку 8255 ты где производил?
Я возможно нашёл, где в Москве вроде как есть ПЗУ-шки... Завтра позвоню человеку... Авось..
А Ассемблера не бойтесь, у 8080 он несложный.
И ещё - можно сфотографировать клавиатуру так, чтоб просматривались все дорожки по возможности ? ( в макро-режиме там или как то.. ) Если уж дописывать подпрограмму опроса, то заодно и таблицу соответствия придётся подправить..
_________________ < виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Rokl они есть, не проблема, если нужно скажи, могу прикупить себе и тебе с десяток кстати с Сингапура или с Ченьженя до Москвы посылка идет всего 3 дня, а до Уфы 14 дней http://www.ebay.com/sch/i.html?_trksid= ... &_from=R40 но при подключении к Микрокому, они пока мне не потребуется, в Мониторе Микрокома я так понял у меня вообще нет инициализации ППА. Эта микросхема не задействована.
petrenko писал(а):
И ещё - можно сфотографировать клавиатуру так, чтоб просматривались все дорожки по возможности ?
на 53 странице я выкладывал фото в огромном формате но могу есще пофоткать
_________________ "Мы так жить будем, что наши внуки нам завидовать будут" В.С. Черномырдин
Последний раз редактировалось Ратмир Ср окт 23, 2013 09:49:35, всего редактировалось 1 раз.
вся прелесть 2732 в том, что они 24 ногие и отлично влезают по распиновке в панельку вместо РФ5
Это понятно. Просто если с ними такие сложности не проще ли сделать переходку для 2764-27256. Делали ведь во времена "Спектрума" переходку для AY8910 чтобы ставить в панельку AY9812 Плюс еще возможность иметь несколько разных МОНИТОРов
Кто подскажет! на PC-шной клаве "АР2" какая кнопка? в редакторе Микрон используется.
Для начала нашел табличку, может с нее начать адаптацию Микрокома к суперклаве и вней внести исправления от petrenko Вроде программка Монитор крохотная, а сколько нужно знать
В общем просто нужные клавиши обособлю и все! и МГТФ-ом смонтирую! petrenko микрушки выкусывать не буду я сунулся там такая каша, век надо разбираться. А ассемблер обязательно потихоньку освою спасибо
_________________ "Мы так жить будем, что наши внуки нам завидовать будут" В.С. Черномырдин
Кто подскажет! на PC-шной клаве "АР2" какая кнопка? в редакторе Микрон используется.:
Кнопка левая "Alt".
Цитата:
Для начала нашел табличку, может с нее начать адаптацию Микрокома к суперклаве и вней внести исправления от petrenko Вроде программка Монитор крохотная, а сколько нужно знать
Ппрограмма работы с клавой в мониторе находится с адреса 0FE72h по 0FF51h. Попробуй, заменить только подпрограмму "ввод символа с клавиатуры"...Должно всё заработать.
Rokl они есть, не проблема, если нужно скажи, могу прикупить себе и тебе с десяток кстати с Сингапура или с Ченьженя до Москвы посылка идет всего 3 дня, а до Уфы 14 дней http://www.ebay.com/sch/i.html?_trksid= ... &_from=R40 но при подключении к Микрокому, они пока мне не потребуется, в Мониторе Микрокома я так понял у меня вообще нет инициализации ППА. Эта микросхема не задействована.
В Микрокоме 3 микры ППА. Первая, старая клавная, она инициализируется и работает со светиком на плате (РУС/ЛАТ) и, если допаять детальки, то и с магнитофоном. Вторая ППА инициализируется импульсом "Сброс" и используется при обращении Микрокома к LPT порту, Ну и третья ППА инициализируется импульсом "сброс" и постоянно работает с RAM/ROM диском. Тебе D2732 нужна будет только в РК для увеличения количества директив и драйверов. Главный вопрос, как тебе её потом запрограммировать. Мне ПЗУ 2732 нужно исключительно из любопытства. Для конкретного дела они мне не нужны, ну, если только РКшную плату не сваяю в PCADе и клон задумаю сделать, естественно с RAM/ROM диском. Тогда 2732 будет просто необходима.
На той клавиатуре с линиями разобраться не могу, начал прозванивать, некоторые выходят на к155кп5
Просто клава 8х8 + куча светодиодов. одна ИЕ5 гоняет ИД3 по кругу, а вторая КП5. получается с выхода КП5 идет сигнал нажатой клавиши, который останавливает счетчики на момент нажатия кнопки и можно считать код нажатой клавиши.. Но это не долее чем предположение, но работать клава должна приблизительно так. Дополнительные 8 выводов ИД3 идут наверное на включение кучи светодиодов, а кучка ТМ2 похоже рулит спецклавишами.
одна ИЕ5 гоняет ИД3 по кругу, а вторая КП5. получается с выхода КП5 идет сигнал нажатой клавиши, который останавливает счетчики на момент нажатия кнопки и можно считать код нажатой клавиши.
Если так то очень похоже на схему из Радио №11 или 12 за 1986 г. Там была статья про мембранную клавиатуру работающую по такому же принципу. Если найдете схему может поможет вам разобраться со своей
Да схожесть есть из 12 номера 40,41 стр. у меня 565РТ4 , 155кп5, а 589ир12 вообще нет. была бы схема, было бы проще, а так я слепышь
Вечером решил, дай подключу РК-шку, включил! на экране белая линия и мишура. Все думаю приплыл. потом вспомнил как учил Rokl, искать обрыв или залипуху. За пять минут нашел обрыв дорожки, видно перетравил была как волосок. Все работает как часики.
Клавиатуру все-таки делаю обычную, ненужные дорокжи со стороны кнопок, где не подлезь просто высверлил аккуратно и незаметно.
Эх жаль. Ведь если данная клавиатура "по кругу крутит", то РК могла бы вообще опросом и антидребезгом не заниматься - только готовый код из регистра считывать и всё ! А как "подвесить" регистр в адресное пространство - сообразили бы, не сложно..
( А я занят был, вот только сейчас до WWW добрался.. )
_________________ < виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения