Июнь 2019
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930

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

Последние темы
» Ферритовые антенны.
автор Viktor2312 Сегодня в 16:27

» ПЭВМ "Ириша". Программное обеспечение (ПО), общая тема.
автор barsik Вчера в 17:03

» ПЭВМ "Электроника МС1502"
автор alemorf Вчера в 12:12

» "Орион Супер-4" (Ташкентский).
автор barsik Вчера в 09:57

» ПЭВМ Специалист, основной вариант
автор barsik Вс Июн 16 2019, 17:00

» Орион-128. Документация, схемы, платы...
автор Viktor2312 Вс Июн 16 2019, 11:21

» Жалобы/пожелания по работе форума
автор barsik Сб Июн 15 2019, 20:56

» Специалист как болванка для творчества аппаратчиков
автор barsik Сб Июн 15 2019, 11:55

» SINOVATE (SIN). Криптовалюта Синовэйт.
автор Viktor2312 Чт Июн 13 2019, 22:10

» Партнер 01.01: О компьютере
автор alemorf Чт Июн 13 2019, 14:29

» ПЭВМ "Эрик"
автор barsik Чт Июн 13 2019, 13:45

» Микросхемы ПЛИС CPLD CoolRunner-II.
автор Viktor2312 Чт Июн 13 2019, 09:46

» Litecoin (LTC). Криптовалюта Лайткоин.
автор Viktor2312 Вт Июн 11 2019, 19:58

» Новинки. Книги. Часть 3.
автор Viktor2312 Вт Июн 11 2019, 07:40

» Обмен между дискетами CP/M <-> IBM (720Kb)
автор barsik Сб Июн 08 2019, 18:30

» Орион-ПРО. Эмулятор iMSX
автор barsik Сб Июн 08 2019, 17:53

» Подключение 3.5" дисковода к Ориону
автор barsik Сб Июн 08 2019, 17:40

» Download для ОРИОНА
автор barsik Пт Июн 07 2019, 20:04

» Формирователь монохромного видеовыхода ОРИОНА
автор barsik Пт Июн 07 2019, 18:05

» Орион-128. Расширение памяти до 512 КБ на 565РУ7.
автор barsik Пт Июн 07 2019, 11:02

» КНГМД (Орион-Турбо)
автор barsik Пт Июн 07 2019, 10:36

» Расширение порта F600. "Орион-128".
автор barsik Пт Июн 07 2019, 10:22

» Орион-128: Полезные доработки ПЭВМ
автор barsik Пт Июн 07 2019, 09:49

» Орион-128: Демки
автор barsik Пт Июн 07 2019, 09:15

» Орион-128: BASIC
автор barsik Пт Июн 07 2019, 08:50

Самые активные пользователи за месяц
Viktor2312
Клавиатура ИРИШИ Vote_lcapКлавиатура ИРИШИ Voting_barКлавиатура ИРИШИ Vote_rcap 
barsik
Клавиатура ИРИШИ Vote_lcapКлавиатура ИРИШИ Voting_barКлавиатура ИРИШИ Vote_rcap 
alemorf
Клавиатура ИРИШИ Vote_lcapКлавиатура ИРИШИ Voting_barКлавиатура ИРИШИ Vote_rcap 
parsec
Клавиатура ИРИШИ 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
Мастер+

Сообщения : 490
Дата регистрации : 2016-11-10
Откуда : С-Петербург

Посмотреть профиль

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

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

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

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

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

Сообщения : 11595
Дата регистрации : 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
Мастер+

Сообщения : 490
Дата регистрации : 2016-11-10
Откуда : С-Петербург

Посмотреть профиль

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

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

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

4

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


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

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


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