Октябрь 2019
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031   

Календарь Календарь

Последние темы
» Новинки. Книги. Часть 1.
автор Viktor2312 Сегодня в 09:55

» Упрощаем схему Микро-80 и исправляем косяки. И собираем по технологиям 80-х годов.
автор Microsha Вчера в 23:02

» AVR AY плеер
автор Microsha Вчера в 17:55

» Микроконтроллеры STM32G0
автор Viktor2312 Вчера в 14:38

» SINOVATE (SIN). Криптовалюта Синовэйт.
автор Viktor2312 Вчера в 12:10

» Новости криптовалют: статьи, заметки, разное...
автор Viktor2312 Вчера в 09:11

» Усилитель на 6ф5п
автор freddy Ср Окт 16 2019, 16:07

» "Python". Статьи, заметки, очерки, разное...
автор Viktor2312 Вт Окт 15 2019, 21:18

» Анти Радио-86РК
автор freddy Вт Окт 15 2019, 16:38

» Конверсия atx бп
автор freddy Вт Окт 15 2019, 15:48

» Источники питания. Статьи, заметки, очерки, разное...
автор Viktor2312 Вт Окт 15 2019, 04:08

» Радио-86РК: внешние видео-адаптеры
автор freddy Вс Окт 13 2019, 19:28

» Изучаем основы VHDL, ISE, ПЛИС Xilinx.
автор Viktor2312 Сб Окт 12 2019, 11:20

» Электроника. Статьи, заметки, очерки, разное...
автор Viktor2312 Пт Окт 11 2019, 13:00

» Радио-86РК: Разное
автор barsik Чт Окт 10 2019, 15:36

» Общие вопросы по ПЭВМ Ириша
автор barsik Вс Окт 06 2019, 07:01

» ПО. ПЭВМ "Ириша". Текстовый редактор "WORDSTAR".
автор barsik Сб Окт 05 2019, 18:28

» Расширение ОЗУ в ИРИШЕ
автор Viktor2312 Пт Окт 04 2019, 17:27

» Радио РК-86: ПЭВМ с процессором 1821ВМ85
автор Viktor2312 Пт Окт 04 2019, 12:28

» Другой микропроцессор в ИРИШЕ
автор barsik Чт Окт 03 2019, 18:16

» Флейм касающийся ПЭВМ "Ириша".
автор barsik Чт Окт 03 2019, 07:31

» Модуль контроллера графического дисплея (МКГД).
автор Viktor2312 Ср Окт 02 2019, 00:50

» Новости. Xilinx.
автор Viktor2312 Вт Окт 01 2019, 12:07

» ПО. ПЭВМ "Ириша". Текстовый редактор "ИРИТЕКСТ".
автор Viktor2312 Сб Сен 28 2019, 00:34

» Криптовалюта — словарь терминов и определений.
автор Viktor2312 Пт Сен 27 2019, 23:00

Самые активные пользователи за месяц
Viktor2312
Клавиатура ИРИШИ Vote_lcapКлавиатура ИРИШИ Voting_barКлавиатура ИРИШИ Vote_rcap 
barsik
Клавиатура ИРИШИ Vote_lcapКлавиатура ИРИШИ Voting_barКлавиатура ИРИШИ Vote_rcap 
freddy
Клавиатура ИРИШИ Vote_lcapКлавиатура ИРИШИ Voting_barКлавиатура ИРИШИ Vote_rcap 
Microsha
Клавиатура ИРИШИ Vote_lcapКлавиатура ИРИШИ Voting_barКлавиатура ИРИШИ Vote_rcap 
leoperetz
Клавиатура ИРИШИ Vote_lcapКлавиатура ИРИШИ Voting_barКлавиатура ИРИШИ Vote_rcap 

Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск


Клавиатура ИРИШИ

Перейти вниз

Клавиатура ИРИШИ Empty Клавиатура ИРИШИ

Сообщение  barsik в Чт Янв 24 2019, 12:45

1
Эта тема для того, чтобы обсуждать здесь всё, что как-то касается клавиатуры ИРИШИ.

В темах описано много разных модулей для ИРИШИ, но самые главные платы ИРИШИ, а именно, контроллер клавиатуры и ROM-диск, без которых ИРИША просто кусок железа, - изготовить забыли.

Потому, если у Вас случайно не завалялось клавиатуры от ДВК, клавиатуры Консул или клавиатуры от Apple-II, то Вам остаётся или паять контроллер клавиатуры вручную или подумать о эмуляции такой клавиатуры. А у меня, кстати, есть обе эти клавиатуры, причём Консул венгерский (а не контактный чешский) с вечными датчиками на эффекте Холла, - они вообще не изнашиваются.

Кстати даже (якобы очень надёжные) герконы дохнут. Я на своей герконовой РК-клавиатуре за небольшой срок эксплуатации (всего лишь 30 лет, хотя клавиатура и до меня видимо проработала где-то лет 10) сменил уже 5 или 6 герконов  (причём обидно, что снимать их приходилось с клавиатуры Корвета).

Самый первый вариант замены клавиатуры это эмуляция клавиатуры на IBM PC. Это возможно, если у Вас есть относительно старая PC, имеющая LPT-порт. Я сам так не делал, но не вижу препятствий. Т.к ИРИША хреново работает в реальном времени, то вначале я пересылал коды из Специалиста в ИРИШУ через порт клавиатуры, используя на Специалисте ППА-порт УФ-прошивателя.

Для этого на ИРИШЕ отладчиком DDT вручную вводил мини-ассемблером простейшую программку чтения блока в ОЗУ с клавиатуры. А на Специалисте запускал программку, что выдаёт блок побайтово в параллельном коде на ППА, сопровождая стробом /STB, т.е точно так, как работает иришина клавиатура. Впоследствии я встроил специалистовский монитор в ПЗУ ИРИШИ вместо DDT и смог качать файлы по линии с более высокой скоростью.

Имея на PC параллельный LPT-порт, можно сделать то же самое, причём программку обслуживания можно написать на бейсике за 10 минут. Тогда, если и вывод на экран Вы делаете на PC через TV-карту, то получится, что IBM PC полностью выполняет роль терминала, т.е обеспечивает вывод на экран и ввод с клавиатуры.

Это удобно, Вы сидите за PC, причём можете в других окнах прогонять Windows-программы, а в отдельном окне (или на весь экран) видите экран ИРИШИ. Очень удобно не только вручную копировать дампы программ в ИРИШУ, но и можно вышеописанным способом пересылать программы из PC в ИРИШУ (хотя для максимального увеличения скорости передачи стоит ввести обратный сигнал - готовность с выхода INT 589 ИР12).

Это конечно слегка экзотический вариант, но полезный не только на полном "безрыбье" (когда нет CGA-дисплея и клавиатуры 15ВВВ-97-0006), но и удобный для разработки программ ИРИШИ. Спаять вручную проводами контроллер клавиатуры ИРИШИ и, главное, где-то найти матрицу клавиш приличного качества, это довольно трудоёмко и сейчас сложно.

Но в последнее время в моду вошли недорогие однокристальные контроллеры, которые позволяют сделать конверсию последовательных кодов от XT, AT или PS/2 клавиатур не только прямо в код ASCII, но даже позволяют в реальном времени эмулировать РК-матрицу клавиш, отчего РК, Специалист или ОРИОН даже не замечают разницы с реальной матричной клавиатурой. Причём эмулируется даже одновременное нажатие нескольких клавиш.

Недавно, в связи с выпуском реплики ОКЕАНА-240, на котором такая же клавиатура, как у ИРИШИ (т.е 15ВВВ-97-0006), известный разработчик rw6hrm сделал адаптер аппаратной клавиатуры. Если Вы любите собирать "чёрные ящики", т.е чужие изделия в которых ничего нельзя понять, то для Вас это наиболее простой вариант поиметь качественную современную клавиатуру для ИРИШИ.


Последний раз редактировалось: barsik (Вс Фев 03 2019, 02:56), всего редактировалось 1 раз(а) (Обоснование : малограмотность автора)

_________________
***
barsik
barsik
Мастер++

Сообщения : 573
Дата регистрации : 2016-11-10

Вернуться к началу Перейти вниз

Клавиатура ИРИШИ Empty Re: Клавиатура ИРИШИ

Сообщение  Viktor2312 в Чт Янв 24 2019, 13:55

2
..., - изготовить забыли.

Не забыли, а руки просто ещё не дошли из-за систематической нехватки времени. Да и интересы малость другие, изначально я вообще подписался на Иришу из-за KokaF77 и в принципе своё обещание, то есть что я должен был сделать, считаю, что выполнил и даже больше. А именно сделать платы МП, МКГД, кросс-плату, УМ, БППН и БИПН.
Viktor2312
Viktor2312
Гуру+

Сообщения : 11953
Дата регистрации : 2012-08-10
Возраст : 40
Откуда : Пятигорск

Вернуться к началу Перейти вниз

Клавиатура ИРИШИ Empty .

Сообщение  barsik в Ср Май 15 2019, 16:57

3
Если надо, чтобы на ИРИШЕ работали экранные CP/M-программы, клавиатуру ИРИШИ придётся немного дорабатывать.

Потому, что авторы ИРИШИ неудачно выбрали коды для курсорных клавиш (это такие клавиши на которых нарисованы стрелки, они перемещают курсор вправо, влево, вверх и вниз). Таких кодов, что они выбрали я не встречал в CP/M компьютерах. Это коды $1C, $1D, $19 и $1A.

Клавиатура 15ВВВ-97-006, из которой по всей видимости и были заимствованы эти коды использовалась на "Электронике-60", ДВК и на советских майн-фреймах совместимых с IBM-360 и VAX. Но на 8-ми разрядках с процессорами 8080/Z80 в моде другие коды для курсорных клавиш.

В принципе, не проблема изменить коды генерируемые курсорными клавишами клавиатуры, как в эмуляторе EMU, так и в реальном контроллере клавиатуры ИРИШИ. Для реального контроллера ИРИШИ достаточно изменить прошивку ПЗУ 556 РТ5 (преобразователя скан-кодов в коды ASCII), а в эмуляторе сделать вот такое изменение:

//  vk.xlat[0][25-28]="1A1C191D"
//  vk.xlat[1][25-28]="1A1C191D"
 
 vk.xlat[0][25-28]="13050418"
 vk.xlat[1][25-28]="13050418"


Хотя единого стандарта на коды курсорных клавиш нет, но на большинстве иностранных CP/M-машин применялись коды формируемые клавишами "вордстаровского креста", т.е коды которые выдаются нажатием на клавиши E, S, D, X при одновременном удержании клавиши <Control>. Т.е это коды: $05, $13, $04 и $18.

В принципе, для законно купленных фирменных CP/M-программ без разницы какие коды вырабатывают курсорные клавиши вашей клавиатуры (и даже не особо волнует есть ли курсорные клавиши вообще). Потому что, когда вы покупаете программу, то, или покупаете программу уже для конкретного компьютера, или в пакет входит инсталлятор, позволяющий задать в программе параметры специфичные для вашего конкретного железа. Естественно, инсталляторы, даже если они входят в пакет, вскоре за ненадобностю выбрасываются и навсегда теряются во тьме веков.

Потому, сейчас большинство имеющихся программ, в частности текстовых редакторов, не имеют инсталляторов, а имеются в готовом виде, уже настроенные для работы с популярным терминалом VT52, где курсорные клавиши вырабатывают вышеуказанные стандартные коды.

Естественно, кое-кто сразу наивно спросит: "А в чём проблема, - подменяйте коды от клавиш в CP/M-BIOS, т.е считав с регистра клавиатуры один код, в программу вызвавшую функцию CONIN возвращайте другой код, уже соответствующий стандарту". Да, в некоторых случаях, если неправильные коды оказались выбраными более-менее удачно это сработает.

Но не в случае кодов в клавиатуре ИРИШИ. Потому что программы изначально рассчитаны так, что те выдаваемые клавиатурой управляющие коды, что не равны стандартным курсорным, используются в качестве команд в программах. Например, в большинстве CP/M текстовых редакторов сочетание ^Y - это стандартная команда удаления строки. И даже, если бы можно было в программе это поменять (дизассемблировав и изменив код), то это делать глупо, т.к это общепринятый код, - зачем для каждого текстового редактора иметь свой набор  команд (замучишься учивши, да и к чему путаница?). Потому, например, и в турбо-паскалевском редакторе и в "Вордстаре" применены одни и те же клавиатурные коды для команд.

Такая же дурь в своё время возникла и с курсорными клавишами ОРИОНА и РК86 при установке на них CP/M. Там тоже коды курсорных клавиш выбрали "от балды". Но для матричной клавиатуры от РК86 я смог выкрутиться, за счёт прямого доступа в клавиатуру.

Это было несложно, т.к упр.коды вводятся или спец.клавишами (в т.числе и курсорными) или сочетанием с клавишей <Control>. Причём сложилось удачно, что и в MS7007 подключенной по совместимой схеме клавиша <Control> оказалась на том же разряде порта ВВ55 (что дало возможность делать драйверы универсальными). В ОРИОНЕ тоже некоторые из курсорных клавиш выдают конфликтные коды. Потому там тоже нельзя просто подменять коды, а надо анализировать клавишу <Control>.

Клавиатура выдаёт код ^Y как сочетанием клавиш <Control> и <Y>, так и одной курсорной клавишей. Потому, чтобы можно было вводить код ^Y, всякий раз как с клавиатуры получен этот код, надо аппаратно проверить нажата ли в момент ввода этого кода клавиша <Control>. И если нажата, то подмену делать не надо, т.к это пользователь нажал одновременно клавиши <Control> и <Y>, надеясь, что произойдёт удаление строки. Если же клавиша <Control> не нажата, то значит пользователь жмёт на курсорную клавишу и в программу надо возвращать не код ^Y, а другой, - курсорный код, стандартный для экранных CP/M-программ.

Но в ИРИШЕ аппаратная клавиатура и она не выдаёт на выход бит показывающий нажата клавиша  <Control> или нет. В моей аппаратной клавиатуре клавиша <Control> отдельная (т.е коротит на землю, а не в матрице), потому я её просто подаю по биту D7, т.к сама клавиатура выдаёт лишь 7-ми битовый код, а регистр ввода в ИРИШЕ (589 ИР12) удачно оказался 8-ми битовым.

Но оригинальная клавиатура ИРИШИ 8-ми битовая и работает в КОИ-8, а не в 7-ми битовой ASCII. Хотя и в клавиатуре ИРИШИ клавиша <Control> также отдельная, потому можно изменить прошивку, превратив клавиатуру в 7-ми битовую, а по 8-му биту D7 выдавать информацию о клавише <Control>.

Одновременно это полезно и для игр, т.к клавиша <Control> на коды от курсорных клавиш не влияет, потому нажатие <Control> при нажатой курсорной клавише может вызывать "огонь" в стрелялках, т.е добавляет 4 двухклавишных сочетания, хотя для игр на ИРИШЕ правильнее иметь джойстик.

Чтобы в CP/M работали экранные программы, я сделал подмену кодов в самОм CP/M-BIOS, а также и другие ухищрения, чтобы устранить недоделки ROM-BIOS ИРИШИ. В эмуляторе не эмулируется выдача по биту D7 состояния клавиши <Control>. Потому в эмуляторе и в реале со стандартной недоработанной клавиатурой такая версия CP/M не годится (точнее всё работает, лишь код ^Y клавиатурой не сгенерировать, т.к этот код всегда подменяется).

Потому для эмулятора (а также для реала с клавиатурой с другими кодами) используется версия без подмены кодов курсорных клавиш, в предположении, что клавиатура сразу даёт правильные коды. Для эмулятора, получается, нужны два конфига. Один конфиг для игр, что используют родную клавиатуру, а для CP/M - другой конфиг, который отличается только вот этой модификацией:

//  vk.xlat[0][25-28]="1A1C191D"
//  vk.xlat[1][25-28]="1A1C191D"

 vk.xlat[0][25-28]="13050418"
 vk.xlat[1][25-28]="13050418"


С такой модификацией в CP/M для эмулятора ИРИШИ можно пользоваться текстовыми редакторами CP/M, нортонами и даже CP/M-играми. Для реала, чтобы не тратить ценные байты в CP/M выгоднее сделать подмену кодов в ROM-BIOS. Хотя это приведёт к тому, что все программы рассчитанные на "родные" коды курсорных клавиш работать не смогут.

Спойлер:

Клавиатура ИРИШИ Guitar1.1557938792
Клавиатура ИРИШИ Guitar2.1557938942
Клавиатура ИРИШИ Guitar3.1557939134
Клавиатура ИРИШИ Guitar4.1557939036
Клавиатура ИРИШИ Guitar5.1557939241
Клавиатура ИРИШИ Guitar6.1557939432
Клавиатура ИРИШИ Guitar7.1557939343
Клавиатура ИРИШИ Guitar8.1557939555
Клавиатура ИРИШИ Guitar9.1557939677
Клавиатура ИРИШИ Guitar10.1557939747
Клавиатура ИРИШИ Guitar11.1557939849
Клавиатура ИРИШИ Guitar12.1557939936
Клавиатура ИРИШИ Guitar15.1557940247
Клавиатура ИРИШИ Guitar16.1557940238
Клавиатура ИРИШИ Guitar17.1557940511
Клавиатура ИРИШИ Guitar18.1557940422

Клавиатура ИРИШИ Impressum.1557836663

- - - Добавлено - - -

Эмуляция клавиатуры в эмуляторе EMU сделана неверно и неполностью. Сделано как не для людей, по остаточному принципу, что-то с клавиатуры выдаётся и плевать на пользователей. Из 69 клавиш не проэмулировано целых 10 клавиш ! Нет клавиш <ПС>, <ВР>, <НР>, <РУС>, <ЛАТ>, <F1>, <F2>, <F3>, <F4>, <F5>. Причём клавиши <F1>, <F2>, <F3>, <F4>, <F5> нажатые с шифтом дают ещё 5 кодов.

И это при том, что, т.к PC клавиатура тоже аппаратная, то вообще не было никаких проблем получить полную совместимость. В отличие от клавиатуры РК86 или ОРИОНА, флаг РУСЛАТ в клавиатуре ИРИШИ внутренний (т.е внутри клавиатуры), а не внешний программный в ячейке ОЗУ. Достаточно было таблично перекодировать скэн-код в код КОИ-8 иришиной клавиатуры.

А ещё очень мешает то, что незадействованные клавиши всё-равно выдают коды, причём случайные, не связанные ни со скэн-кодами, ни с их назначением.

Если с отстутствием <ПС>, <ВР>, <НР> ещё как-то можно смириться, то вот отсутствие эмуляции <РУС>, <ЛАТ> создаёт неразрешимые проблемы. Без <ПС> в принципе можно прожить (хотя в связи с нехваткой клавиш и её бы в программах было удобно задействовать).  <ВР>, <НР> не выдают кода, а лишь переключают регистр у буквенных (только у буквенных !!!) клавиш.

Эти клавиши переключают внутренний триггер внутри клавиатуры. Если этот триггер 1, а введён код клавиши в интервале $41...$5A, $61...$7A, то делается команда XOR 20H. Даже эмулировать эти клавиши не обязательно, т.к тот же результат получался бы, если бы клавиша Caps Lock работала правильно (т.е не меняла бы кодов у абсолютно всех клавиш, а только делала бы XOR 20H для буквенных, если флаг CAPS=1).

А вот с <РУС>, <ЛАТ> вообще неразрешимая проблема. В эмуляторе этих клавиш нет как класса и даже их функций нет. Эти клавиши тоже не выдают кода на иришиной клавиатуре, но переключают внутренний триггер внутри клавиатуры. И если этот флаг RUSLAT=1 и нажата русская буквенная клавиша (т.е код символа в интервале $41...$5E, $61...$7E), то выдаётся код русской буквы в кодировке КОИ-8 (т.е код в интервале $C0...$FF). Иными словами, если это буква (т.е исходный латинский код в интервале $41...$5E, $61...$7E), то делается XOR 20H, а затем OR 80H. И естественно флаг RUSLAT вообще не влияет на коды небуквенных клавиш.

Т.е клавиатура ИРИШИ - 8-ми разрядная, а не 7-ми разрядная, она в отличие от клавиатуры Агата или Apple-II выдаёт не 7-ми битовый ASCII код, а 8-ми битовый КОИ-8 код. Это видно из схемы. Хотя соответствующей прошивкой клавиатура ИРИШИ может работать и как 7-ми битовая.

Увы, у меня нет оригинальной иришиной клавиатуры, а лишь две 7-ми битовые аппаратные ASCII-клавиатуры (от Apple-IIe и венгерский Консул). Потому, я не знаю как вводить русские буквы в CP/M и вообще во все программы с русскими буквами.

Текстовый редактор ИРИШИ специально сделан так, чтобы им можно было пользоваться с 7-ми битовой промышленной клавиатурой 15ВВВ-97-006. Для чего, в этом редакторе регистр RUSLAT управляется не аппарататно, а эмулируется программно внутри редактора. При этом на родной иришиной клавиатуре для переключения языка приходится пользоваться не клавишами <РУС> и <ЛАТ>, а вручную вводить двухклавишные сочетания ^N и ^O, что выдают коды $0E и $0F, что крайне неудобно одноруким инвалидам.

Это неудобно при родной клавиатуре ИРИШИ, но зато позволяет пользоваться редактором с антикварной семи-битовой клавиатурой 15ВВВ-97-006 от ДВК. С клавиатурой 15ВВВ-97-006 никакого неудобства нет, т.к там сами клавиши <РУС> и <ЛАТ> выдают эти коды, а с родным иришиным контроллером клавиатуры неудобно.

Так что пока надо думать как вводить русские буквы в КОИ-8. Тут полезно было бы узнать как работает клавиатура Океана-240, точнее контроллер на Atmega позволяющий использовать XT/AT или PS/2 клавиатуры. Т.к не знаю другого контроллера аппаратной ASCII-клавиатуры на Atmega для писи-шной клавиатуры.

_________________
***
barsik
barsik
Мастер++

Сообщения : 573
Дата регистрации : 2016-11-10

Вернуться к началу Перейти вниз

Клавиатура ИРИШИ Empty Re: Клавиатура ИРИШИ

Сообщение  Спонсируемый контент

4

Спонсируемый контент


Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения