95

Сеть ИОЛА, MS-DOS и Pacman: эксперимент с сетевыми адаптерами 80-х

Некоторое время назад я пытался заставить работать сетевые карты ИОЛА, но у меня не все получилось. Обо всем рассказано здесь.

Сегодня, поднабравшись практических знаний и проведя пару дней в экспериментах, на мой скромный взгляд, удалось добиться полноценной работы сети, но судить об этом вам.


Написано специально для ▶️Timeweb Cloud и читателей Pikabu.


Так, начнем прямо с сетевых карт:

Аверс

Аверс

Реверс

Реверс

Трудно не заметить, что сетевые карты разные. Разница — в компонентном различии, количестве микросхем, использовании восьмибитного и шестнадцатибитного разъёмов ISA, цвете текстолита (сверху серо-голубой или бирюзовый, а снизу зелёный). А общее у них одно — максимальная скорость 2 Мбит/с.

❯ Настройка сетевой среды под MS-DOS

Для работы сетевой карты нам понадобится осуществить следующие настройки.

У нас есть пакетный драйвер, для MS-DOS.

«Пакетник»

«Пакетник»

Он прописывается в autoexec.bat с использованием следующих параметров.

Параметры, указанные в шестнадцатеричной системе счисления (hex), следующие:

  • 0x60 — стандартный программный номер прерывания (interrupt), через которое сетевое приложение, например FTP-сервер, общается с сетевым драйвером;

  • 0x20 — уникальный идентификатор рабочей станции в сети;

  • 0x05 — аппаратное прерывание;

  • 0x318 — адрес используемого в системе порта.

Идем дальше. Для осуществления сетевого взаимодействия, нам понадобится вот этот замечательный пакет.

Mtcp не «новодел». Cогласно информации с официального сайта: «mTCP is a hobby project that I started in 2005». Так что в этом вполне аутентично.

Mtcp настраивается достаточно просто.

В autoexec.bat, нужно указать переменную MTCP:

SET MTCPCFG=c:\mtcp\MTCP.CFG

В конфигурационном файле MTCP.CFG указать параметры, относящиеся к статическому IP-адресу. Почему «статика»? Потому что для MS-DOS отсутствует DHCP-сервер. Есть, конечно, «Microsoft LAN Manager», но пакет тяжеловат, да и оперативную память отъедает прилично. А других вариантов использовать динамическую адресацию я не встречал. Речь идёт о двух машинах без шлюза к маршрутизатору.

Сетевую среду под MS-DOS мы настроили — посмотрим физические соединения.

❯ Физическая среда

Выдержка из документации к сетевой плате ИОЛА:

Для топологии «звезда» используется коаксиальный кабель с волновым сопротивлением 75 Ом (РК-75-2, РК-75-4). Для соединения на длинные расстояния > 800 м. могут использоваться более толстые кабеля: РК-75-7, РК-75-9 и т.д. Так же расстояние зависит от качества кабеля, так для кабеля РК-75-4-113 расстояние увеличивается до 1000 м.

Наш кабель выглядит так:

Кабель с одним и тем же волновым сопротивлением может иметь разный диаметр. Чем больше диаметр кабеля — тем на более далёкие расстояния возможна связь. Полезно.

В сети не должно быть кабелей, второй конец которых ни к чему не подсоединён («висячий конец»). Не допускается образования петель в сети. Хм, ввиду того, что подопытные компьютеры расположены вплотную, им не помешало то, что кабель был свернут кольцом. С другой стороны, не повлияло ли это на скорость передачи? А от «висячего конца» мы спасёмся терминатором на 75 Ом.

Защита от «висячего конца»

Защита от «висячего конца»

В собранном виде BNC-коннектор выглядит так:

В документации есть упоминание о бездисковой загрузке:

Сама плата выглядит так:

Я не знаю, какая микропрограмма зашита в ROM, установленную на эту платку. Если бы эта ПЗУ была установлена в «кроватку» — считал бы программатором, а выпаивать ещё не решился. Что должно быть со стороны, осуществляющей бездисковую загрузку, — в документации не сказано. Сталкивались с таким?

❯ Настройка сетевой среды под W2K Server

А теперь Windows 2000 Server? Не проблема, есть драйвера и для неё.

Ставим драйвер:

Проверяем аппаратное прерывание, конфликтов нет:

Устанавливаем статический IP-адрес:

Копируем DOOM для проверки сети. Почему DOOM, а не Pacman? Да просто он несколько «тяжелее весит» — и мне хотелось посмотреть, не будет ли ошибок при протяжённом копировании. Как увидите на ролике внизу — сетевая передача была осуществлена успешно.

Видим присвоенный DHCP-сервером IP-адрес клиентской машины 10.0.0.2:

Все настроено и готово.

❯ Теперь в игры

Сложность была вот в чём. Скажите, много ли Вы знаете сетевых игр для чистого MS-DOS? Навскидку, кроме DOOM-like, Command & Conquer: Red Alert, Warcraft II: Tides of Darkness, Dune 2000, Quake — ничего не вспоминается. А теперь немного усложним: наша сеть не использует IPX/SPX, а только TCP/IP? Теперь и вообще практически ничего — поиском требуемого я не нашёл. На помощь мне пришла драгоценная находка, в виде этого ресурса.

Здесь есть то, что нам нужно: игра Pacman с поддержкой TCP/IP. Целевых операционных систем здесь много, и самое главное — есть MS-DOS. Нижепродемонстрированный Pacman работает даже на IBM PC XT с процессором Intel 8088. Можно сказать — на минимальной конфигурации.

Игра, согласно документации, запускается просто. Выдержка из README:

Примеры запуска в ОС DOS:

pacman.exe — одиночная игра или 2 игроками на одной клавиатуре. Управление стрелочками — игра за Pac-Man (1-й игрок), управление WASD — игра за Pac-Girl (2-й игрок).

pacman.exe 7777 — запуск сервера, ожидающего подключения 2-го игрока на 7777-й порт (порт можно указывать любой незанятый). Управление стрелочками — игра за Pac-Man (1-й игрок).

pacman.exe 192.168.1.101 7777 — запуск клиента, подключающегося к запущенному серверу на хосте 192.168.1.101 и 7777-му порту. Управление стрелочками — игра за Pac-Girl (2-й игрок).

Создаём серверную часть: pacman.exe 7777
и присоединяемся клиентом: pacman.exe 10.0.0.1 7777

Пояснение к видео. На самом сервере Pacman запустился с артефактами экрана и не отображался ни в окне, ни в полноэкранном режиме. Вероятно, проблема с моей видеокартой. Решив, что это не принципиально, я демонстрирую сетевую игру на одном экране. Управляю обоими Пакманами с клавиатур двух компьютеров, соединённых в сеть. Результат мы видим на одном экране справа. Главное, что Пакманы перемещаются, а это значит — сеть работает.

Результат:

❯ FTP-сервер для MS-DOS

Взглянем, как работает FTP-сервер, запущенный под MS-DOS. Настройка FTP-сервера в пакете MTCP сводится к редактированию файла ftppass.txt, а конкретнее — к заданию имени пользователя, разрешённого «залогиниться», и указанию его пароля. Далее, запустив сам сервер командой FTPSrv, видим следующую картинку.

Что же мы видим? FtpSrv запущен на IP-адресе 10.0.0.1 и слушает стандартный порт 21. Также мы видим, что удалённый пользователь с именем «root» подключился с IP-адреса 10.0.0.2.

FTP-сервер мы запускали, чтобы копировать игры по сети, ну и проверить её работоспособность. Не бегать же с дискетками... Что копируем мы? DOOM, разумеется.

Если не лень, прошу взглянуть на видео — можно перематывать, я записал в реальном времени. Для полноты эксперимента запустил одиночную игру как демонстрацию того, что дистрибутив передался успешно. На процессорах 80386 эта игра — как слайд-шоу, но нужно было убедиться в работоспособности.

❯ Заключение

Для меня остались два открытых вопроса.

Первый.

Удалённая загрузка по сети. В документации указана возможность загрузки по сети с использованием BOOT ROM. Вопрос в следующем: как должен быть настроен компьютер, обеспечивающий сетевую загрузку? Какие файлы операционной системы, где и на чём расположены — и передаются ли они на бездисковую загружающуюся станцию?

Второй.

В использованном ресурсе есть упоминание про драйвера для Linux, только ссылки все «битые». Если есть у кого упомянутые драйвера, прошу поделиться.

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

Благодарю за уделенное время :)

Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.

Реклама. ООО «ТАЙМВЭБ.КЛАУД», ИНН: 7810945525
Пожалуйста, соблюдайте правила общения в блогах компаний

IT минувших дней

1.3K постов7.5K подписчиков

Правила сообщества

Запрещается добавлять новости о прошлогодних новинках, а также посты, не относящиеся к тематике "ретро в ИТ".

Желательно соблюдать правила приличия.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества