Подключаемся к BBS через Amstrad NC100 из 1992 года
Привет, Хабр! В предыдущей статье мы рассказали, как выглядел один из необычных компьютеров производства Amstrad. Сегодня же попытаемся ответить на самые часто задаваемые вопросы: как можно применить столь старое «железо» в современном мире и можно ли его вывести в сеть Интернет.
Спойлер: можно! И если задуматься, то осознаешь простой факт: мы вышли в сеть фактически с «калькулятора» и вполне можем использовать его для реальной переписки, используя технологии прошлого века. Подробности, как всегда, под катом.
Amstrad NC100 был достаточно уникальным явлением для своего времени. Портативный компьютер всего за 199 фунтов был по-настоящему массовым и функциональным. На нём многие впервые попробовали программировать, а другие использовали в качестве электронной пишущей машинки, которая позволяла работать в дороге. Сохранённый текст можно было позже напечатать на принтере.
Если взглянуть на доступные порты NC100, то становится реально грустно. Никаких новомодных штук вроде сетевых карт тут не предусмотрено. Встроенного модема также нет. Конечно, можно было бы попробовать подключить настоящий внешний модем, но найти живого Dialup-провайдера практически нереально.
Разумеется, можно было бы подключить два модема и связать таким образом компьютеры, но это уже overkill. Гораздо проще воспользоваться очень старой, но отлично работающей фичей — прямым соединением посредством так называемого нуль-модемного кабеля.
Технологии древних
COM-порт не зря так называется. Он отлично подходит для коммуникации не только с периферийными устройствами, но и для связи пары компьютеров между собой. Для подключения используется кабель или адаптер RS232 DB9F/F. Теоретически максимальная скорость такого соединения может достигать 115 Кбит/с, но NC100 поддерживает лишь 9 600 бит/c. При покупке стоит обязательно обращать внимание на распиновку:
Конечно, найти такой кабель в обычном магазине уже не представляется возможным. Но нет никаких проблем заказать его на eBay или Amazon. Мой экземпляр пока что в пути, так что я воспользовался самым простым вариантом — соединительными проводами с коннекторами мама-мама. Вариант не самый удобный, но вполне рабочий:
DIY-решения повсюду
На другой стороне подключаем к COM-порту, соблюдая распиновку выше. На современных компьютерах COM-порты уже не встретить, зато в продаже есть достаточно удобные переходники USB-to-COM. Чтобы не трогать основную операционную систему компьютера, воспользуемся Oracle VirtualBox и сделаем виртуальную машину на базе Ubuntu 22.04 LTS.
Приложение терминала
В настройках виртуальной машины укажем проброс COM-порта. После загрузки наш переходник будет иметь имя /dev/ttyS0. Альтернативно можно пробросить не COM-порт, а само USB-устройство. В этом случае Ubuntu сама разберётся с драйвером и отобразит новое устройство как /dev/ttyUSB0.
На Amstrad NC100 нажимаем сочетание клавиш Function + S, а потом нажимаем клавишу Secret Menu, чтобы открыть скрытые настройки. Проверяем, что Baud rate выставлен в значение 9 600, а если это не так, то меняем параметр при помощи клавиш со стрелками. Возвращаемся в приложение при помощи клавиши Stop.
По умолчанию tty в серийный порт не выводится, так что на экране терминального приложения пока что ничего не отображается. Чтобы это исправить, можно воспользоваться таким приложением, как agetty. Смысл тут кроется в самом названии: альтернативный клиент для получения доступа к tty-устройству. Если по умолчанию этой программы нет, то её можно установить стандартным способом через apt:
$ sudo apt -y install agetty
Теперь запускаем agetty, указав на COM-порт и задав его скорость:
$ sudo agetty /dev/ttyS0 9600
Увы, но фотографировать экран NC100 — боль
Прекрасно, теперь можно использовать Amstrad NC100 в качестве полноценного эмулятора терминала. Это, кстати, отлично работает и для управления одноплатными компьютерами вроде Raspberry Pi или сетевыми устройствами с поддержкой консольных кабелей, например, Cisco.
Проблема в дисплее — отсутствие подсветки делает работу некомфортной, а из-за малого количества строк не вся информация помещается на экране. Батарейки при использовании COM-порта компьютер пожирает так, словно ребёнок конфеты. Так что запасайтесь аккумуляторами или используйте внешний блок питания.
Выходим в сеть
Наигравшись с терминалом, мы решили задуматься о чём-то более интересном: можно ли выйти в интернет на таком устройстве? Ответ одновременно и положительный, и отрицательный. Разумеется, ни о каком стеке TCP/IP здесь речи даже не идёт, не говоря уже о браузере. Но вот чтобы подключиться к BBS, это и не требовалось. Мы уже рассказывали про то, как можно создать собственную BBS на Raspberry Pi, и мельком упоминали BBS, которые до сих пор доступны через IP. Но как подключиться к ним с устройства, у которого этого протокола нет?
Здесь на выручку приходит приложение tcpser. Оно эмулирует модем с поддержкой AT-команд (Hayes compatible), который использует TCP/IP для входящих и исходящих соединений. Эта программа выполняет роль той самой прослойки, которая вместо телефонного номера принимает доменное имя и возвращает данные так, словно вы реально подключаетесь к модему на другой стороне. Устанавливаем:
$ sudo apt -y install tcpser
Теперь запускаем:
$ sudo tcpser -d /dev/ttyS0 -s 9600
Вот так виртуальная машина превращается… превращается виртуальная машина… в шлюз для доступа к BBS. На Amstrad NC100 набираем:
ATDT<доменное_имя_BBS_сервера>:<порт_BBS_сервера>
Обратите внимание, что между ATDT и адресом нет пробелов. Подтверждаем нажатием Enter и успешно подключаемся. Вот, например, мы заглянули на живую BBS в штате Техас и зашли в сообщения. Видно, что кто-то туда заходил с Atari 600XL для тестирования соединения на скорости 1 200 бит/с:
Ура, мы подключились к BBS
Разумеется, ничего не мешает приделать к такому компьютеру какой-нибудь LoRa-передатчик в качестве модема и использовать его в качестве мессенджера, который будет работать, даже если привычные средства связи будут недоступны. Но с другой стороны, любой микроконтроллер с клавиатурой и экранчиком справится не хуже.
Вместо заключения
Забавно, но существуют и современные устройства в таком же форм-факторе. Так, например, компания Freewrite создала целую линейку из электронных печатных машинок, а их модель Alpha прямо-таки вызывает ощущение дежавю. Честно говоря, после продолжительного общения с Amstrad NC100 захотелось взять от него только корпус, а всю начинку заменить на более современную.
Основой такого проекта может стать Raspberry Pi Zero, потенциальным экраном — e-Ink, а вместо родной клавиатуры можно разработать какой-нибудь кастомный вариант на механических свитчах от Cherry или Kailh. Такой компьютер был бы достаточно энергоэффективным и современным, сохраняя дух старого доброго Amstrad.
А как вы думаете, стоит ли начинать такой проект? Ждём вас в комментариях.