![image](https://habrastorage.org/webt/jw/m9/9t/jwm99tzf0jdpmtnlsy1jwhh7wi8.png)
Первая часть заметок относилась к восстановлению физической работоспособности терминала. После того, как терминал удалось оживить, в комментариях были заданы вопросы, ответы на которые и составили последующие заметки. По мере изучения терминала, проявились тезисы, которые захотелось расширить и осветить, а именно:
- Проиллюстрировать схемотехнику устройства, основные узлы, CPU, ROM.
- Пассивное отображение алфавитно-цифровой информации, это хорошо, но как поведут себя управляющие ESC-последовательности, Midnight Commander, а также хотелось-бы увидеть псевдографическое изображение.
- Spiritus in Mashina. Считать дампы ROMов и сохранить их.
- Уделить внимание красавице-клавиатуре.
Начнём...
❯ Схемотехника устройства
В сборе терминал выглядит так:
![image](https://habrastorage.org/webt/qq/lv/jz/qqlvjzx17cpgdhjciyh_cab-b6q.png)
Концепция данного терминала выглядит следующим образом (выдержка из документации):
![image](https://habrastorage.org/webt/_7/mj/e-/_7mje-msdrjjbaskkqewlexfdno.png)
На схеме стрелочками показано направление движения данных между клавиатурой, сервером-хостом и видеодисплеем. Также сделан акцент на срок хранения данных в non-volatile memory — 10 лет. С времени написания первой части заметок, и восстановления работоспособности терминала, несколько позже, подъехал современный вариант ER3400, на фото — дальний от туксов, и чипов стало трое. Вот она, та самая non-volatile memory. Но терминал уже работает и чипы оставлены «про запас». Пусть станиоль от шоколадки закорачивает ножки, защищая от статики, а пингвинята — наделяют силой Линукса.
![image](https://habrastorage.org/webt/yd/qf/gk/ydqfgk5h14ix6expy_go4dc3cmk.png)
Туксы
Вообще, с одной стороны, казалось бы терминал, ввод-вывод символьной информации, управление командами через последовательные порты, все прозрачно. Но когда начинаешь листать документацию, невольно зацепляешься за потенциальный функционал, ведь к терминалу можно подсоединить и модем, и принтер, и это обеспечивает полнофункциональное взаимодействие в предназначенной среде. Почему-то в памяти всплыло понятие «телетайп», но я, кажется, отвлекся в прошлое… А блочная диаграмма взаимодействия с модемом, выглядит следующим образом.
![image](https://habrastorage.org/webt/7_/jo/kz/7_jokz0bqanvs5urybjdj6l9lik.png)
Блочная схема полноценного функционирования терминала
Назначение терминала — взаимодействие с хостом, посредством ряда последовательных интерфейсов, поэтому не лишним будет привести блочную диаграмму взаимодействия интерфейсов с центральным процессором CPU Zilog Z80, обеспечивающим ввод-вывод.
![image](https://habrastorage.org/webt/b1/gc/h-/b1gch-x1noqmg0rifvap6_3ypjq.png)
Укрупненная схема интерфейсов ввода-вывода
Далее — укрупненные узлы терминала. Начну с изображения центрального процессора NEC 8085, с обвязкой кварцевым резонатором, дающем представление о возможной частоте.
CPU 8085AHC:
![image](https://habrastorage.org/webt/-e/h2/-r/-eh2-rktdcksl_72dp5zxmxvndq.png)
Кварцевый резонатор:
![image](https://habrastorage.org/webt/uo/na/mc/uonamckzd8h_fyja3bt7ku8nsfo.png)
CPU 8085:
![image](https://habrastorage.org/webt/sv/kh/yj/svkhyjb12-zga1bdxzj_4ab7qmg.png)
За взаимодействие с интерфейсами ввода-вывода отвечает Zilog Z80 (рад встрече, сердце незабвенного ZX-Spectrum), вот он красавец:
![image](https://habrastorage.org/webt/s1/xh/-u/s1xh-u7p1sfsd9ausqket8_undo.png)
Схема Z80:
![image](https://habrastorage.org/webt/2g/uw/kz/2guwkzilekwocchhmug_ruit-qq.png)
Постоянные запоминающие устройства (ROM, ПЗУ) представлены следующими чипами.
ROM с системной платы:
![image](https://habrastorage.org/webt/nf/tq/3m/nftq3mr9kyfvwdutzfrkt7youhu.png)
Еще один ROM с системной платы:
![image](https://habrastorage.org/webt/ov/ej/um/ovejumdiz4mct8mpmhqyijfe0_w.png)
ROM клавиатуры представлен чипом с заклеенным номиналом. В целях сохранения аутентичности, минимум вмешательства в компоненты «капсулы времени». Бумажку я отдирать не стал, да и «засвет» стеклышка чипа нежелателен. В итоге микросхема распознана согласно принципиальной схеме.
ROM c клавиатуры:
![image](https://habrastorage.org/webt/wy/9f/uz/wy9fuzop1wiiihpw4_bni2rtagw.png)
Фрагмент клавиатурного ROM с принципиальной схемы:
![image](https://habrastorage.org/webt/q_/q6/j5/q_q6j5x4dh2lbj_a8zk2jjtl2mu.png)
Общий вид системной объединительной платы приведен на фото, овалами выделены ROM, содержимое которых в перспективе собираюсь сохранить.
![image](https://habrastorage.org/webt/dw/sk/lw/dwsklwxs6sroovckrijk33zva2m.png)
Ряд «кроваток» под ПЗУ — не заполнен
❯ Эксперименты с ESC-последовательностями
Сложность ввода команд с клавиатуры терминала Tandberg состояла в том, что ряд критически важных символов вводился в верхнем регистре, безотносительно нажатия SHIFT и CAPS LOCK. Ввиду этого, я не мог полноценно использовать клавиатуру, ведь в NIX-системах регистр ввода команд имеет принципиальное значение. У меня остался ограниченный ввод, а что за работа, где невозможно ввести священное «root». Почему? Вопрос остался для меня открытым… Для запуска команд непосредственно с терминала на удаленной машине пришлось создавать файл с прописанной в него командой, присваивать атрибут исполняемого и запускать с терминала (подозреваю, что это костыль, но ничего другого не сообразил и решение работало).
![image](https://habrastorage.org/webt/a7/-a/ho/a7-ahottceuwz58pjbgu1co9h9g.png)
Символы, не желающие вводиться в нижнем регистре
Для наглядности набрал весь набор символов вводимых с клавиатуры, в красных кружочках — строптивые буквы, игнорирующие регистр (все символы набирал в нижнем). В остальном пользовался небезызвестной PuTTY на удаленной машине, перенаправляя команды непосредственно в COM-порт.
open# telnet aardmud.org >>/dev/console
В результате — магическая картинка telnet-игры, магия, само-собой, в черно-зеленом свечении люминофора.
![image](https://habrastorage.org/webt/j4/d1/vz/j4d1vzcamzcgi3j0e-8oe61c8mi.png)
Волк, зубами щелк!
Вывод команда top расстроил, посудите, вот результат:
![image](https://habrastorage.org/webt/nn/je/dd/nnjeddr5xuptjqqtgs40ff6nkvm.png)
top
И попытка загрузить Midnight Commander так-же с треском провалилась.
![image](https://habrastorage.org/webt/do/rj/bv/dorjbvwf7qy-dptbaxqmxr2pfx0.png)
MC
Видны пресловутые Escape-последовательности, но ожидаемая псевдографика на экране отсутствует. Печально, неужели перед нами просто алфавитно-цифровое устройство, способное принимать простые команды и выводить на экран только символы?
❯ Spiritus in Mashina. Дампинг ROMов
Немного мистификации. Spiritus in Mashina, Deus ex machina — понятия, притягивающие к себе своей загадочностью. Облачить в словесную форму, пояснить, значит приземлить таинственный образ, возможно, даже нивелировать его значимость, но тем не менее, попробую…
Ориентировочно, создание терминала датируется 1983 годом, а значит 40 лет назад, норвежские инженера вдохнули жизнь в кремниевые микросхемы и выпустили Brainchild, дитя своего ума в мир. С тех пор произошло много событий, мир изменился, но константная незыблемость, содержимого постоянной памяти — притягивает. Есть какая-то магия, заглянуть в содержимое чипов того времени, а вдруг там тайна? Соскальзывая с метафизических понятий в плоскость практического «для чего», поясню цель: ROM — Read Only Memory, память только для чтения, переводится по смыслу, как постоянное запоминающее устройство (ПЗУ). Постоянное, но не вечное, содержимое ПЗУ может утечь, поэтому в целях недопущения потенциального «окирпичивания» терминала, было принято решение сделать бэкап имеющихся ROMов и последующую запись на заранее приобретенные чипы. Сдампленные ROMы могут пригодиться всем желающим, например проанализировать содержимое в своих целях или к примеру — написать эмулятор. Были закуплены четыре подобные имеющимся в терминале микросхемы для перелива содержимого с исходников, на перспективу.
![image](https://habrastorage.org/webt/yc/4y/1p/yc4y1p8j3nag7p7ojp8pi7clife.png)
Чтение содержимого ПЗУ производилось программатором XGecu®PRO Модель T48.
![image](https://habrastorage.org/webt/2r/ns/2l/2rns2l2wjmrdo2dyxivrqqv-zje.png)
Программатор в работе
Чтение производилось по два раза. Результаты сохранения, подвергались между собой побитному сравнению. Ошибок копирования при сравнении дампов выявлено не было.
![image](https://habrastorage.org/webt/zi/h3/ss/zih3ss-bzpuuwb2z_lns1xb0a_o.png)
Успешная процедура чтения ПЗУ
Листая содержимое дампов, были обнаружены пункты системного меню терминала.
![image](https://habrastorage.org/webt/nz/zc/kz/nzzckzr06o25ruk8fwdt5eghndo.png)
Осмысленные названия технологического меню терминала
![image](https://habrastorage.org/webt/th/vv/dg/thvvdgecpxiwinkg0ll1usululi.png)
Сохраненные дампы
Итак, содержимое ROMов сохранено, у кадавра наступил пароксизм довольства, но продолжаем…
❯ Клавиатура
Детально клавиатура выглядит так:
![image](https://habrastorage.org/webt/xw/ro/ng/xwrongjdlpcz1yzgfnfqm4et_es.png)
Клавиатура
В первую очередь обращает на себя внимание расхождение раскладок в имеющейся документации с физически предоставленной клавиатурой. Мне досталась непривычная латинская раскладка JCUKEN вместо распространенной QWERTY, при этом отечественные буквы ЙЦУКЕН — на своих местах.
![image](https://habrastorage.org/webt/bt/1x/s6/bt1xs6cnyovyjlxbr0lf8jkijci.png)
Группы клавиш
Выдержка из документации, поясняющая назначение клавиш.
![image](https://habrastorage.org/webt/ce/as/wa/ceaswaw3vlkepspipircp7rx2og.png)
Пояснения к группам клавиш
![image](https://habrastorage.org/webt/db/rg/7x/dbrg7xmlk7kdlm1n_66rskhbzxa.png)
Клавиатурный ROM в программаторе
Считав и просмотрев данные из ROM клавиатуры, обнаружил две символьные последовательности, в которых проблемные буквы, а именно K,E,A,O,M,T в обоих случаях, были в ВЕРХНЕМ регистре. Отсюда прослеживается причина и возможное решение: если в считанном дампе, заменить требуемые заглавные буквы на прописные и переписать ROM обратно, проблема будет решена. Так это или не так, надеюсь узнать в перспективе.
Фрагмент дампа ROM, подчеркнутые символы — в верхнем регистре:
![image](https://habrastorage.org/webt/nh/pz/5w/nhpz5woh8ef9fub962xc7aeplpu.png)
Несмотря на то, что клавиатура отлично работает как физическое устройство, воспользоваться для ввода команд в полной мере я не смог, отчасти из-за символов в верхнем регистре, и частично из-за непривычной для меня раскладки.
❯ Заключение
Подводя итог, отмечу, что в некоторых случаях, финал лучше оставить открытым, хотя бы чтоб заинтересовать тех, кто неравнодушен. Что не получилось у меня, получится у других и возможно, обратная связь будет положительной. В комментариях хочется увидеть, что именно, по мнению специалистов, я делал не так, что еще интересного можно сделать с этим терминалом.
Из последующих незакрытых гештальтов — подключение HAYES-модема на 2400 бод и матричного принтера с чердака. А почему нет?
P.S. и вот еще, загадочный вопрос, кто в печальном итоге, увидел квинтян: Пиркс или Парвис? Станислав Лем не ответил в своем романе «Фиаско». Может у прочитавших есть своя версия ответа? Напишите, любопытно услышать...))
Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале ↩
![](https://habrastorage.org/webt/r8/ms/jc/r8msjcfet9mgza3ybpor_sdgrt0.jpeg)