Вт, 26.11.2024, 10:27
Приветствую Вас Гость | RSS
Главная | Personal Communication и ДКОИ К2 - Форум | Регистрация | Вход
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Personal Communication и ДКОИ К2
GregoryДата: Вс, 14.08.2022, 23:22 | Сообщение # 1
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
В связи с возникшим интересом к антикварным системам появился вопрос - а как поддержать ДКОИ К2 в Personal Communication? Функция переопределения клавиш позволяет переопределить клавиши но это не работает при переключении клавиатуры на русскую. То есть, переопределить латинские буквы можно как угодно, а вот русские - вообще никак. Этот вопрос мне задавали 20 лет назад, в 2002, и я тогда предложил написать (и написал) программу, которая использовала HLLAPI и заменяла русские буквы A O ... на латинские буквы, совпадающие по начертанию, но это  какой-то слишком сложный способ, ну неужели нельзя проще?
Для wc3270 вопрос решается за 5 минут, см. прилагаемый файл.
Может быть, кто-то знает более простое решение?

P.S. Пояснение для незнакомых с вопросом
Давным-давно, когда IBM-совместимые компьютеры начали появляться в СССР, необходимо было как-то обеспечить поддержку кириллицы. И вот, один имбецил академик придумал кодировку, которая известна как ДКОИ К2. В этой кодировке добавлены только те русские буквы, которые не имеют совпадающих по начертанию латинских, а для - букв А,В,Е,К,М,Н,О,Р,С,Т,а,е.о,р,с,у,х использовались коды латинских букв. Все это существовало несколько лет, пока не появилась кодировка ДКОИ К1 (которую IBM впоследствии и объявила CP 1025/ CP 880. В ДКОИ К1 все кириллические буквы имели уникальный код, отличный от латинских. Но, к этому времени уже были написаны разные приложения с использованием ДКОИ К2, и если такое приложение задает вопрос, на который нужно ответить ДА или НЕТ, то ответ ДА выглядит так:
<переключение на русский регистр>Д<переключение на латинский регистр>A
а если в ответ нужно ввести слово ПРИВЕТ, то это будет выглядеть так:
<переключение на русский регистр>П<переключение на латинский регистр>Р<переключение на русский регистр>И<переключение на латинский регистр>ВЕТ
Это все, мягко говоря, ни в какие ворота не лезет)
Прилагаемый файл позволяет вводить ответ в эмуляторе wc3270 не переключая регистр. Как реализовать эту простую функцию в Personal Communication?

P.P.S.
И еще один вопрос, связанный с ДКОИ К2 - как преобразовать текст в ДКОИ К2 в CP1025? может быть, кто-то решил эту проблему?
Прикрепления: DKOI-K2.kmp (0.3 Kb) · -19768-93.pdf (277.8 Kb)


Сообщение отредактировал Gregory - Вс, 14.08.2022, 23:32
 
smokerДата: Вт, 16.08.2022, 13:43 | Сообщение # 2
Лейтенант
Группа: Проверенные
Сообщений: 46
Репутация: 6
Статус: Offline
https://www.ibm.com/docs....V57.pdf

Сообщение отредактировал smoker - Вт, 16.08.2022, 13:55
 
GregoryДата: Вт, 16.08.2022, 19:47 | Сообщение # 3
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
если имеете в виду стр. 31-32, то, как я писал выше, функция переопределения клавиш позволяет переопределить клавиши, но не работает вообще при переключении клавиатуры на русскую.  То есть латинскую клавиатуру можно переопределить как угодно, а русскую - вообще никак. Вообще, я всю доступную документацию просмотрел, но, конечно, может и пропустил что-то...
 
smokerДата: Ср, 17.08.2022, 13:39 | Сообщение # 4
Лейтенант
Группа: Проверенные
Сообщений: 46
Репутация: 6
Статус: Offline
Цитата Gregory ()
если имеете в виду стр. 31-32, то, как я писал выше, функция переопределения клавиш позволяет переопределить клавиши, но не работает вообще при переключении клавиатуры на русскую.  То есть латинскую клавиатуру можно переопределить как угодно, а русскую - вообще никак. Вообще, я всю доступную документацию просмотрел, но, конечно, может и пропустил что-то...

Ну смотрите...

1. Можно присвоить клавише, например, 'T' - значение Alt-T --->'E' (англ.)
    А всем другим, где не совпадают, русские значения, например Alt-P --->'З' (рус.)
    Тогда русская раскладка будет по Alt (правда придется зажимать Alt)))))

2. Можно присвоить клавише, например Shift-T - значение --->'E' (англ.)
    Тогда при включенном CapsLosk, T останется T, а при Shift-T станет 'E' (англ.)

и т.п.

И 
Цитата Gregory ()
И еще один вопрос, связанный с ДКОИ К2 - как преобразовать текст в ДКОИ К2 в CP1025? может быть, кто-то решил эту проблему?

Поясните, где это преобразование должно быть? Ведь перекодировщик написать минут 20 надо. В чем проблема?
 
GregoryДата: Ср, 17.08.2022, 21:05 | Сообщение # 5
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
1-2. Да, так можно сделать. Но, согласитесь, это искусственное и неудобное решение: ну чем лучше вводить
[лат]С[alt - A]
вместо
[лат]С[рус]Ф
(имеется в виду команда СФ OKO - справка с файла) ведь все равно приходится различать самому русские и английские буквы, так за что, собственно, боролись?
а в wc3270 ничего различать не нужно, вводим СФ на русском регистре, ни о чем не задумываясь.

ну-ну... преобразование может быть где угодно, хоть в мобильном телефоне, вопрос не в том "где", а в том "как"...
Вот фрагмент подобного текста (из E1.00005-04 32 02)
1.1. ПДO ЯBЛЯETCЯ OПEPAЦИOHHOЙ CИCTEMOЙ, ПPEДHAЗHAЧEHHOЙ
ДЛЯ PAБOTЫ HA BИPTУAЛЬHOЙ MAШИHE (BM), OБECПEЧИBAEMOЙ MOHИTO-
POM BИPTУAЛЬHЫX MAШИH (MBM) OПEPAЦИOHHOЙ CИCTEMЫ CBM.


здесь кириллица только буквы, выделенные красным, остальное - латиница.
А должно быть
1.1. ПДО ЯВЛЯЕТСЯ ОПЕРАЦИОННОЙ СИСТЕМОЙ, ПРЕДНАЗНАЧЕННОЙ
ДЛЯ РАБОТЫ НА ВИРТУАЛЬНОЙ МАШИНЕ (ВМ), ОБЕСПЕЧИВАЕМОЙ МОНИТО-
РОМ ВИРТУАЛЬНЫХ МАШИН (МВМ) ОПЕРАЦИОННОЙ СИСТЕМЫ СВМ.


здесь кириллица - все буквы.
А в идеале хотелось бы вот что:

1.1. ПДО является операционной системой, предназначенной
для работы на виртуальной машине (ВМ), обеспечиваемой монито-
ром виртуальных машин (МВМ) операционной системы СВМ.


Если получить правильный кириллический текст, правильно преобразовать его в строчные и прописные буквы уже не так сложно.
Ну какой-то алгоритм преобразования ДКОИ-К2 в CP1025 я себе представляю:
- рассматриваем слова от разделителя (пробел, запятая, точка...) до разделителя
- если в слове есть хоть одна кириллическая буква - оно русское, преобразоваваем все остальные буквы в нем
- НА, НЕТ, СИСТЕМ, ВМ, МВМ, СВМ преобразовываем по словарю исключений
боюсь, что на реализацию 20 мин. не хватит). Легко ли понять, что в фразе "ТЕКСТ ПРОГРАММЫ (ЗАПИСИ TXT)" слово ТЕКСТ - русское, а TXT - английское? И таких примеров очень-очень много.
Вот я и решил, что нет смысла тратить время на реализацию такого преобразования (текст ведь все же читабельный, хоть и он и русско-английская смесь), но решил все же поинтересоваться, а вдруг кто-то уже потратил время на это? :-)


Сообщение отредактировал Gregory - Ср, 17.08.2022, 22:50
 
BibizyanДата: Чт, 18.08.2022, 09:38 | Сообщение # 6
Подполковник
Группа: Проверенные
Сообщений: 131
Репутация: 0
Статус: Offline
не очень понял, в чём суть проблемы. РСОМ прекрасно работает в разных раскладках, у меня спокойно переключается с английской на ивритскую, с изменением направления письма. при этом в ивритской раскладке при нажатом шифте будет печатать заглавные английские, но таки справа налево.
 
GregoryДата: Чт, 18.08.2022, 19:14 | Сообщение # 7
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
Цитата Bibizyan ()
не очень понял, в чём суть проблемы
А вы попробуйте переопределить (например, поменять местами) две буквы на ивритской клавиатуре. На английской это делается легко
Цитата Bibizyan ()
при этом в ивритской раскладке при нажатом шифте будет печатать заглавные английские, но таки справа налево.
а что, заглавных ивритских букв не существует?
 
BibizyanДата: Чт, 18.08.2022, 23:30 | Сообщение # 8
Подполковник
Группа: Проверенные
Сообщений: 131
Репутация: 0
Статус: Offline
Цитата Gregory ()
А вы попробуйте переопределить (например, поменять местами) две буквы на ивритской клавиатуре. На английской это делается легко
эм... а зачем буквы переопределять? обычно переопределяются служебные клавиши и комбинации с альт/котнрол/шифт.

Цитата Gregory ()
а что, заглавных ивритских букв не существует?
нет. поэтому шифт-(ивритская буква) даст заглавную английскую с той же клавиши.
 
GregoryДата: Пт, 19.08.2022, 19:52 | Сообщение # 9
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
Цитата Bibizyan ()
эм... а зачем буквы переопределять? обычно переопределяются служебные клавиши и комбинации с альт/котнрол/шифт.
существует даже несколько причин. Во-первых, кроме "стандартных" русских раскладок клавиатуры, которые поддерживаются в Windows и в PCOM (441 - наиболее распространенная и 443 - соответствует русской пишущей машинке), некоторое распространение имеют и другие, например "фонетическая" раскладка, или "ЯВЕРТЫ" https://u.to/9LlEHA
Во-вторых, рассматриваемая в этом посте ситуация и аналогичные ей. В рассматриваемом случае (ДКОИ К2) нет русских букв А,В,Е,К,М,Н,О,Р,С,Т,а,е,о,р,с,у,х, вместо них должны вводится английские буквы A, B, E, K, M, H, O, P, C, T, a, e, o, p, c, y, x соответственно. При использовании стандартной раскладки приходится постоянно переключать русский и латинский регистр, как в примере из поста #1:
если нужно ввести слово ПРИВЕТ, то это будет выглядеть так:
<переключение на русский регистр>П<переключение на латинский регистр>Р<переключение на русский регистр>И<переключение на латинский регистр>ВЕТ

А если при этом еще и переключение регистра триггерное (например, Alt-Shift переключает на русский регистр, а при повторном нажатии - на английский), то тогда ввод даже достаточно короткого слова превращается в квест)


Сообщение отредактировал Gregory - Пт, 19.08.2022, 19:54
 
BibizyanДата: Сб, 20.08.2022, 17:44 | Сообщение # 10
Подполковник
Группа: Проверенные
Сообщений: 131
Репутация: 0
Статус: Offline
а если не сами буквы переопределить, а сочетания с контрол/альт/шифт? тоже не получается?
 
GregoryДата: Сб, 20.08.2022, 20:10 | Сообщение # 11
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
Цитата Bibizyan ()
а если не сами буквы переопределить, а сочетания с контрол/альт/шифт? тоже не получается?
именно это предложено в посте №4 выше) а я ответил в посте №5, что так, конечно, можно, но [лат]С[alt - A] вместо [лат]С[рус]Ф ненамного лучше. Можно переопределить клавиши, чтобы все вводить с Alt (собственно, Smoker именно это и предлагает), и для OKO с их двух буквенными командами это вполне приемлемо. Но меня удивляет другое - дистрибуция IBM Personal Communcation занимает почти гигабайт. Дистрибуция wc3270 занимает 2 мегабайта. При этом в IBM Personal Communcation отсутствуют простейшие (и нужные) функции, которые в wc3270 есть, зато имеются многочисленные никому не нужные перделки и свистелки).
ну и проектировщики OKO, конечно тоже дебилы молодцы - это же надо додуматься до таких аббревиатур... впрочем, я видел одну диалоговую систем с командой ЫРСПЧ (вЫвод РаСПеЧатки)


Сообщение отредактировал Gregory - Сб, 20.08.2022, 21:31
 
BibizyanДата: Сб, 20.08.2022, 21:34 | Сообщение # 12
Подполковник
Группа: Проверенные
Сообщений: 131
Репутация: 0
Статус: Offline
ну, если переопределить все заглавные - т.е. шифт-(клавиша), то писать можно заглавными буквами, нажав на капслок, и никуда не переключаясь.
всё вопрос спроса. что-то мне подсказывает, что спрос на дкои к2 несравнимо меньше, чем на "перделки и свистелки".
 
GregoryДата: Сб, 20.08.2022, 21:55 | Сообщение # 13
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
Цитата Bibizyan ()
всё вопрос спроса. что-то мне подсказывает, что спрос на дкои к2 несравнимо меньше, чем на "перделки и свистелки".
сейчас, конечно, да. Вопрос ведь возник именно из-за какого-то ренессанса антикварных систем) Но вот более актуальные примеры - в wc3270 можно сохранить экран в виде html, и такие "картинки" можно вставлять в любой документ (это, фактически, таблица 1x1), внешний виде неотличим от графики но размеры в десятки раз меньше, да подправить можно при необходимости.
Зачем в PCCOMM 3 разных API? Почему в раскладке клавиатуры по умолчанию функция это правый cntrl? То, что на каком-то музейном устройстве (3270), которого никто из людей, моложе 40 лет в глаза не видел, был именно в этом месте, это аргумент? ну так по такой логике надо в автомобиле вместо руля делать вожжи)


Сообщение отредактировал Gregory - Сб, 20.08.2022, 22:04
 
BibizyanДата: Сб, 20.08.2022, 22:02 | Сообщение # 14
Подполковник
Группа: Проверенные
Сообщений: 131
Репутация: 0
Статус: Offline
ну, я давно привык к вводу правым контролем. и когда были другие приложения - просто переопределял. ентер - новая строка, правый контрол - ввод.
мне лень ставить wc3270 и разбираться. но совсем не уверен, что он поддерживает все те "перделки и свистелки", которые конкретно у нас используются.
 
GregoryДата: Сб, 20.08.2022, 22:07 | Сообщение # 15
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
Цитата Bibizyan ()
когда были другие приложения - просто переопределял. ентер - новая строка, правый контрол - ввод.
после приобретения изделия его следует обработать напильником до начала его эксплуатации
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: