Привет, Хабр! В предыдущей статье мы рассказали, как выглядел один из необычных компьютеров производства Amstrad. Сегодня же попытаемся ответить на самые часто задаваемые вопросы: как можно применить столь старое «железо» в современном мире и можно ли его вывести в сеть Интернет.
Спойлер: можно! И если задуматься, то осознаешь простой факт: мы вышли в сеть фактически с «калькулятора» и вполне можем использовать его для реальной переписки, используя технологии прошлого века. Подробности, как всегда, под катом.
Amstrad NC100 был достаточно уникальным явлением для своего времени. Портативный компьютер всего за 199 фунтов был по-настоящему массовым и функциональным. На нём многие впервые попробовали программировать, а другие использовали в качестве электронной пишущей машинки, которая позволяла работать в дороге. Сохранённый текст можно было позже напечатать на принтере.
Если взглянуть на доступные порты NC100, то становится реально грустно. Никаких новомодных штук вроде сетевых карт тут не предусмотрено. Встроенного модема также нет. Конечно, можно было бы попробовать подключить настоящий внешний модем, но найти живого Dialup-провайдера практически нереально.
Разумеется, можно было бы подключить два модема и связать таким образом компьютеры, но это уже overkill. Гораздо проще воспользоваться очень старой, но отлично работающей фичей — прямым соединением посредством так называемого нуль-модемного кабеля.
Технологии древних
COM-порт не зря так называется. Он отлично подходит для коммуникации не только с периферийными устройствами, но и для связи пары компьютеров между собой. Для подключения используется кабель или адаптер RS232 DB9F/F. Теоретически максимальная скорость такого соединения может достигать 115 Кбит/с, но NC100 поддерживает лишь 9 600 бит/c. При покупке стоит обязательно обращать внимание на распиновку:
Конечно, найти такой кабель в обычном магазине уже не представляется возможным. Но нет никаких проблем заказать его на eBay или Amazon. Мой экземпляр пока что в пути, так что я воспользовался самым простым вариантом — соединительными проводами с коннекторами мама-мама. Вариант не самый удобный, но вполне рабочий:
На другой стороне подключаем к 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
Прекрасно, теперь можно использовать 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 бит/с:
Разумеется, ничего не мешает приделать к такому компьютеру какой-нибудь LoRa-передатчик в качестве модема и использовать его в качестве мессенджера, который будет работать, даже если привычные средства связи будут недоступны. Но с другой стороны, любой микроконтроллер с клавиатурой и экранчиком справится не хуже.
Вместо заключения
Забавно, но существуют и современные устройства в таком же форм-факторе. Так, например, компания Freewrite создала целую линейку из электронных печатных машинок, а их модель Alpha прямо-таки вызывает ощущение дежавю. Честно говоря, после продолжительного общения с Amstrad NC100 захотелось взять от него только корпус, а всю начинку заменить на более современную.
Основой такого проекта может стать Raspberry Pi Zero, потенциальным экраном — e-Ink, а вместо родной клавиатуры можно разработать какой-нибудь кастомный вариант на механических свитчах от Cherry или Kailh. Такой компьютер был бы достаточно энергоэффективным и современным, сохраняя дух старого доброго Amstrad.
А как вы думаете, стоит ли начинать такой проект? Ждём вас в комментариях.
Комментарии (16)
slonoten
26.03.2024 16:09+10Забавно, что вместо фотографии оригинального Amstrad NC100 в качестве КДПВ вы впихнули ни о чем не говорящее произведение генеративной модельки. Зачем?
ikratkiy
26.03.2024 16:09+2Это уже, к сожалению, какая-то традиция на Хабре — захламлять статьи сгенерированными картинками, которые ничего полезного в статью не привносят. Непонятно, зачем люди продолжают это делать! Лучше уж без картинки, чем так
checkpoint
26.03.2024 16:09+2Наигравшись с терминалом, мы решили задуматься о чём-то более
интересном: можно ли выйти в интернет на таком устройстве? Ответ
одновременно и положительный, и отрицательный. Разумеется, ни о каком
стеке TCP/IP здесь речи даже не идёт, не говоря уже о браузере.Вот тут, как говрят у нас на хуторе, не все так однозначно. Существуют реализации стека протоколов TCP/IP для 8-ми биток типа Atari, C64 и Cпектрумов работающие по SLIP или PPP на последовательном порту. И web браузеры тоже есть, только ни один современный web-сайт ими не открыть. Но вот твиттер или FTP - очень даже можно. Линк: https://forums.atariage.com/topic/241436-contiki-august-2015/
А вот видео в котором хакер J. Random рассказывает как подключиться к сети Fidonet на Amstrad CPC:
NutsUnderline
26.03.2024 16:09+1для zxspectum сваяли свой упрощенный протокол типа wap и договорились с тематическими сайтами чтобы там были спецстраницы. модемом работала esp8266 через uart и at команды
checkpoint
26.03.2024 16:09+2Клёво! Я как-то тоже изобретал эмулятор модема на ESP8266 для домашней автоматизации. :)
NutsUnderline
26.03.2024 16:09tcpser - это прям интересно, хотя подобную функцию сейчас обычно выполняет esp32, но эту штуку когда то уже портанули под OpenWrt. то есть ее можно запускать прямо на роутере, usb-serial подключить. есть даже роутеры с com портами
Demonter
26.03.2024 16:09+5На современных компьютерах COM-порты уже не встретить
COM-порты, к слову, присутствуют чуть ли не на каждой второй современной материнке. Иногда даже бывают LPT. Планки широко доступны на алиэкспрессе.
dlinyj
26.03.2024 16:09+5Конечно, найти такой кабель в обычном магазине уже не представляется возможным.
Тысячи их в обычных магазинах.
Zara6502
26.03.2024 16:09с Amstrad NC100 захотелось взять от него только корпус, а всю начинку заменить на более современную.
Надеюсь дальше мыслей это не продвинется. Найдите убитый аппарат без возможности восстановления или только корпус, но зачем ломать работающий агрегат?
Zara6502
26.03.2024 16:09Для ATARI есть FujiNet что позволяет по сути старому ПК пользоваться современным интернетом (с оговорками конечно)
Samodelkin333
26.03.2024 16:09Честно я бы оставил старое и рабочее устройство как есть. Максимум могу корректно заменить дохлую батарейку на плате, дохлые конденсаторы заменить, вместо отработанного HDD поставить SSD или переходник чтобы было с чего грузиться. Заменители типа XT to CF считаю нормой. Вообще результат эксперимента не всегда предсказуем как здесь.
Dr_Faksov
26.03.2024 16:09+2Вообще говоря, простейший нуль-модемный кабель это 2-3, 3-2, 5-5 . Всего три провода. Гарантированно работает.
VT100
Не стоит портить антикварку новоделом в старой шкурке.