Страница 55 из 61
Re: Радио Рк-86
Добавлено: Вт окт 22, 2013 19:34:00
Ратмир
uldemir писал(а):Вот мой комментированный исходник
Спойлер
Код: Выделить всё
; ПОДПРОГРАММА ОПРОСА СОСТОЯНИЯ КЛАВИАТУРЫ
; ВЫХОДНЫЕ ПАРАМЕТРЫ В АККУМУЛЯТОРЕ
; 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 ты где производил?
Re: Радио Рк-86
Добавлено: Вт окт 22, 2013 19:52:32
uldemir
Я - нет. Это авторы. А инициализация в самом начале
т.е. в регистр управляющего слова загружается 8A и всё...
Re: Радио Рк-86
Добавлено: Вт окт 22, 2013 21:47:39
Rokl
Bear2011 писал(а):
Вы можете использовать 2764-27256 надо просто подтянуть неиспользуемые разряды к +5В или 0 "земле" Правда они 28-выводные но извратиться можно.
Именно, вся прелесть 2732 в том, что они 24 ногие и отлично влезают по распиновке в панельку вместо РФ5.
Привет, Ратмир.
В том то и дело, что в Москве их тоже нет. Будет как в том анекдоте, ты пойдешь искать 50 баксов, а они пойдут искать 2732.

Re: Радио Рк-86
Добавлено: Вт окт 22, 2013 23:20:31
petrenko
Я возможно нашёл, где в Москве вроде как есть ПЗУ-шки... Завтра позвоню человеку...

Авось..
А Ассемблера не бойтесь, у 8080 он несложный.
И ещё - можно сфотографировать клавиатуру так, чтоб просматривались все дорожки по возможности ? (
в макро-режиме там или как то.. )
Если уж дописывать подпрограмму опроса, то заодно и таблицу соответствия придётся подправить..

Re: Радио Рк-86
Добавлено: Ср окт 23, 2013 03:52:03
Ратмир
Rokl они есть, не проблема, если нужно скажи, могу прикупить себе и тебе с десяток

кстати с Сингапура или с Ченьженя до Москвы посылка идет всего 3 дня, а до Уфы 14 дней
http://www.ebay.com/sch/i.html?_trksid= ... &_from=R40
но при подключении к Микрокому, они пока мне не потребуется, в Мониторе Микрокома я так понял у меня вообще нет инициализации ППА. Эта микросхема не задействована.
petrenko писал(а):
И ещё - можно сфотографировать клавиатуру так, чтоб просматривались все дорожки по возможности ?
на 53 странице я выкладывал фото в огромном формате

но могу есще пофоткать
Re: Радио Рк-86
Добавлено: Ср окт 23, 2013 05:26:20
Bear2011
вся прелесть 2732 в том, что они 24 ногие и отлично влезают по распиновке в панельку вместо РФ5
Это понятно. Просто если с ними такие сложности не проще ли сделать переходку для 2764-27256. Делали ведь во времена "Спектрума" переходку для AY8910 чтобы ставить в панельку AY9812 Плюс еще возможность иметь несколько разных МОНИТОРов
P.S. А 2732 я сам ни разу в руках не держал

Re: Радио Рк-86
Добавлено: Ср окт 23, 2013 06:58:04
Ратмир
Кто подскажет! на PC-шной клаве "АР2" какая кнопка? в редакторе Микрон используется.
Для начала нашел табличку, может с нее начать адаптацию Микрокома к суперклаве

и вней внести исправления от petrenko
Вроде программка Монитор крохотная, а сколько нужно знать

Re: Радио Рк-86
Добавлено: Ср окт 23, 2013 17:03:58
uldemir
АР2 - "авторегистр 2" - код 0x1F, а по буржуйски просто ESC - escape.

Re: Радио Рк-86
Добавлено: Ср окт 23, 2013 17:24:45
Ратмир
В общем просто нужные клавиши обособлю и все! и МГТФ-ом смонтирую!
petrenko микрушки выкусывать не буду

я сунулся там такая каша, век надо разбираться.
А ассемблер обязательно потихоньку освою
спасибо
Re: Радио Рк-86
Добавлено: Ср окт 23, 2013 17:53:52
Rokl
Ратмир писал(а):Кто подскажет! на PC-шной клаве "АР2" какая кнопка? в редакторе Микрон используется.:
Кнопка левая "Alt".
Для начала нашел табличку, может с нее начать адаптацию Микрокома к суперклаве

и вней внести исправления от petrenko
Вроде программка Монитор крохотная, а сколько нужно знать

Ппрограмма работы с клавой в мониторе находится с адреса 0FE72h по 0FF51h.
Попробуй, заменить только подпрограмму "ввод символа с клавиатуры"...Должно всё заработать.
Re: Радио Рк-86
Добавлено: Ср окт 23, 2013 18:06:36
Ратмир
На той клавиатуре с линиями разобраться не могу, начал прозванивать, некоторые выходят на к155кп5
Re: Радио Рк-86
Добавлено: Ср окт 23, 2013 18:14:44
Rokl
Ратмир писал(а):Rokl они есть, не проблема, если нужно скажи, могу прикупить себе и тебе с десяток

кстати с Сингапура или с Ченьженя до Москвы посылка идет всего 3 дня, а до Уфы 14 дней
http://www.ebay.com/sch/i.html?_trksid= ... &_from=R40
но при подключении к Микрокому, они пока мне не потребуется, в Мониторе Микрокома я так понял у меня вообще нет инициализации ППА. Эта микросхема не задействована.
В Микрокоме 3 микры ППА. Первая, старая клавная, она инициализируется и работает со светиком на плате (РУС/ЛАТ) и, если допаять детальки, то и с магнитофоном. Вторая ППА инициализируется импульсом "Сброс" и используется при обращении Микрокома к LPT порту, Ну и третья ППА инициализируется импульсом "сброс" и постоянно работает с RAM/ROM диском.
Тебе D2732 нужна будет только в РК для увеличения количества директив и драйверов. Главный вопрос, как тебе её потом запрограммировать. Мне ПЗУ 2732 нужно исключительно из любопытства. Для конкретного дела они мне не нужны, ну, если только РКшную плату не сваяю в PCADе и клон задумаю сделать, естественно с RAM/ROM диском. Тогда 2732 будет просто необходима.

Re: Радио Рк-86
Добавлено: Ср окт 23, 2013 18:35:06
Rokl
Ратмир писал(а):На той клавиатуре с линиями разобраться не могу, начал прозванивать, некоторые выходят на к155кп5
Просто клава 8х8 + куча светодиодов.
одна ИЕ5 гоняет ИД3 по кругу, а вторая КП5. получается с выхода КП5 идет сигнал нажатой клавиши, который останавливает счетчики на момент нажатия кнопки и можно считать код нажатой клавиши..
Но это не долее чем предположение, но работать клава должна приблизительно так. Дополнительные 8 выводов ИД3 идут наверное на включение кучи светодиодов, а кучка ТМ2 похоже рулит спецклавишами.
Re: Радио Рк-86
Добавлено: Ср окт 23, 2013 18:38:50
Ратмир
Да уже давно бы спаял, petrenko просит не курочить

Re: Радио Рк-86
Добавлено: Ср окт 23, 2013 18:57:51
Bear2011
одна ИЕ5 гоняет ИД3 по кругу, а вторая КП5. получается с выхода КП5 идет сигнал нажатой клавиши, который останавливает счетчики на момент нажатия кнопки и можно считать код нажатой клавиши.
Если так то очень похоже на схему из Радио №11 или 12 за 1986 г. Там была статья про мембранную клавиатуру работающую по такому же принципу. Если найдете схему может поможет вам разобраться со своей
Re: Радио Рк-86
Добавлено: Ср окт 23, 2013 19:37:55
Ратмир
Да схожесть есть из 12 номера 40,41 стр.
у меня 565РТ4 , 155кп5, а 589ир12 вообще нет.
была бы схема, было бы проще, а так я слепышь
Вечером решил, дай подключу РК-шку, включил! на экране белая линия и мишура. Все думаю приплыл. потом вспомнил как учил Rokl, искать обрыв или залипуху. За пять минут нашел обрыв дорожки, видно перетравил была как волосок. Все работает как часики.
Клавиатуру все-таки делаю обычную, ненужные дорокжи со стороны кнопок, где не подлезь просто высверлил аккуратно и незаметно.
Re: Радио Рк-86
Добавлено: Пт окт 25, 2013 05:11:28
petrenko
Эх жаль.
Ведь если данная клавиатура "по кругу крутит", то РК могла бы вообще опросом и антидребезгом не заниматься - только готовый код из регистра считывать и всё ! А как "подвесить" регистр в адресное пространство - сообразили бы, не сложно..
( А я занят был, вот только сейчас до WWW добрался.. )
Re: Радио Рк-86
Добавлено: Пт окт 25, 2013 08:59:20
Ратмир
petrenko писал(а):Эх жаль.
( А я занят был, вот только сейчас до WWW добрался.. )
Да не расстраивайся, кстати один кот примерно такую же продает, но без корпуса. в разделе "Продам"
а какая длина проводков допускается от клавиатуры до платы РК-86?
Re: Радио Рк-86
Добавлено: Пт окт 25, 2013 23:36:53
Rokl
Ратмир писал(а):а какая длина проводков допускается от клавиатуры до платы РК-86?
У меня к Микрокому проводок от РКшной клавы с пол метра и нормально работает.
Re: Радио Рк-86
Добавлено: Сб окт 26, 2013 05:16:34
Ратмир
Rokl писал(а): с пол метра и нормально работает.
Это очень хорошо! 0,5 метра вполне достаточно.