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 ★★★★★
() автор топика
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)