LINUX.ORG.RU
Форум — Talks  

Неожиданная проблема КОИ-7

 ,


3

2

https://youtu.be/dKf35M_-G7k?t=1416

В советском портативном компьютере МК-90, как оказалось, использовали кодировку КОИ-7 и переключались между русской и английской кодовыми таблицами, посылая спецсимвол для смены языка. Это приводило к забавному багу, когда русские кавычки в программе переключали на русский шрифт всю ОС.

★★★★★

Последнее исправление: question4 (всего исправлений: 2)

Забавно, надо кастануть заинтересованных лиц

GoodRussian
()

Дык там был полный набор (строчные и заглавные буквы) для английского и русского.

в СССР был вариант КОИ-7 Н2 где строчные английские буквы были тупо заменены на заглавные русские. Софт править не стали. Системные сообщения выглядели прикольно.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)

МК-90

комплект устройства входят два подключаемых модуля внешней энергонезависимой памяти МПО-10 <> Энергонезависимость обеспечивалась встроенной литиевой батареей типа CR2016. На одном из таких модулей можно было найти игру Тетрис, написанную в машинных кодах, или набор тестовых программ. К сожалению, ввиду того, что батареи CR2016 со временем разрядились, тестовые программы для МК-90 считаются утраченными.

Ммм, самоуничтожаемые программы, мечта проприетарщика ☺

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Всё можно было скопировать на другой модуль или записать на бумагу. Но никому это не было нужно.

question4 ★★★★★
() автор топика

и чего ?

в VT52,VT100 коды DC0 DC1 насколько помню… ВСЕ исторические текстовые терминалы так работают, переключая кодовые страницы

и это не от «разрядности символа» (байта), а знакоген так работает

MKuznetsov ★★★★★
()
Последнее исправление: MKuznetsov (всего исправлений: 1)
Ответ на: комментарий от MKuznetsov

в VT52,VT100 коды DC0 DC1 насколько помню… ВСЕ исторические текстовые терминалы так работают, переключая кодовые страницы

Можно подробнее? Учитывая, что ДВК и БК были клонами PDP, вполне логично ждать сходства и КПК на том же процессоре. Другое дело, что https://geoffg.net/Downloads/Terminal/VT100_User_Guide.pdf говорит, что DC1 был совсем для другого — XON, сигнал «resume transmission».

question4 ★★★★★
() автор топика
Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от question4

Можно подробнее?

man ascii :-)

я в последний раз работал за VT, эдак в 93-94, запамятовал

Не DC, значит SI/SO ShiftIN/ShiftOUT - переключали кодовые страницу тудым/сюдым. И ещё по каким-то esc[ можно было переключать,тогда и страниц более 2-х.

по идее терминал Linux (тот который текстовый или через RS, не гуи-переделки) должен повторять это поведение, если выставлен как vt100. Linux-же и сам мог выступать терминалом и использовать внешний терминал.

MKuznetsov ★★★★★
()

Не «русские кавычки» (чё это вообще? «лапок» там не было в принципе), а переключение на русскую половину КОИ-7 после ввода открывающей кавычки, а обратное переключение уже после ввода закрывающей. То есть выводимая строка получалась "\x0FПРИВЕТ" с закономерным результатом после её вывода. И это не «баг», а штатное поведение.

alegz ★★★★★
()
Ответ на: комментарий от alegz

Баг — переключение всех сообщений ОС на русскую таблицу после случайной печати непарного символа переключения. Как утверждают, без возможности переключить обратно.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

Ещё раз — это штатное поведение. Если терминал получил 0xE Shift Оut (наврал в предыдущем комменте, там \x0E должно быть), он выводит последующие символы в соответствии с кодовой таблицей КОИ-7Н1, пока не получит 0xF Shift In. Аффтар того видео о переключении кодовых страниц даже не слышал, скорее всего.

alegz ★★★★★
()
Ответ на: комментарий от RussianWarShip

Да ничего, энергонезависимость в виде батарейки это не особо далеко от энергонезависимости в виде кабеля до розетки. Так можно сказать что все мобильники «энергонезависимы»

upcFrost ★★★★★
()
Ответ на: комментарий от upcFrost

В середине 80х не было флешек, так что вариант статическое ОЗУ + батарейка был весьма распростанён. Например, так хранились программы в ЧПУ Sinumeric-880 https://i.ibb.co/rFZjXcC/IMG-20161021-222225.jpg. А в ЧПУ Fanuc параметры до сих пор так хранятся.

RussianWarShip
()
Ответ на: комментарий от alegz

Ещё раз — это штатное поведение.

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

Ни я, ни автор видео не называем такое переключение языка багом. (Хотя другой ПМК, запущенный в производство раньше, использует КОИ-8 и там всё проще.) Баг — что сообщения ОС портятся, когда пользователь неправильно ставит этот переключатель.

question4 ★★★★★
() автор топика
Ответ на: комментарий от RussianWarShip

В середине 80х не было флешек, так что вариант статическое ОЗУ + батарейка был весьма распростанён.

Этот вариант был распространён и для сохранения состояния игр в картриджах приставок.

Хотя ППЗУ с возможностью 10 000 перезаписей в 1980х уже существовали. Но работали медленно.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

Но работали медленно.

А еще требовали от 12 до 25 вольт в режиме программирования и имели страничную организацию памяти. Хочешь изменить байт, стирай и перезаписывай всю страницу.

RussianWarShip
()

переключали на русский всю ОС.

Ага, очередная история узбека. А кто генерировал эту таблицу с KOI-7? Ее же должны были брать откуда то. А локаль кто заводил, специально обученные для этого люди?

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

e000xf000h ☆
()
Последнее исправление: e000xf000h (всего исправлений: 2)
Ответ на: комментарий от ex-kiev

А почему не получило распространение ППЗУ с УФ стиранием?

Вполне получило. Насколько могу судить, именно оно и было основным для применений, когда с большой вероятностью перезапись не потребуется.

question4 ★★★★★
() автор топика
Ответ на: комментарий от e000xf000h

А кто генерировал эту таблицу с KOI-7? Ее же должны были брать откуда то. А локаль кто заводил, специально обученные для этого люди?

Расшифруй.

question4 ★★★★★
() автор топика
Ответ на: комментарий от RussianWarShip

А еще требовали от 12 до 25 вольт в режиме программирования

МК-52 с питанием от 4 батареек эту проблему как-то решал. Хотя предупреждали, что запись требует много энергии.

и имели страничную организацию памяти. Хочешь изменить байт, стирай и перезаписывай всю страницу.

Как и современные «черепичные» жёсткие диски :) Свопиться нельзя, но для архивирования годится.

question4 ★★★★★
() автор топика
Ответ на: комментарий от upcFrost

энергонезависимость в виде батарейки это не особо далеко от энергонезависимости в виде кабеля до розетки

CMOS-память на материнской плате в те времена жила 3-5 лет.

Плюс к тому, на полном серьёзе существовали устройства, где эти батарейки подзаряжались. Помню часы Casio где такую батарейку подзаряжала солнечная батарея. Не знаю, правильно ли это назвать зарядкой или регенерацией, но работало.

question4 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.