Сеть в SIMH

Posted by Unik on 19.01.2016

Подключение сетевого адаптера в SIMH делается довольно просто. Расскажу об этом на примере своей конфигурации PDP-11/70. Так как эта машина на шине Unibus то для неё есть два вида контроллера, это DELUA и DEUNA. Настраиваются они одинаково и я использую DELUA. Вот как он выглядит:

Для начала simh должен быть собран с поддержкой сети, есть собранная версия и для Windows. Для работы требуется библиотека libpcap.a в Linux и WinPcap в Windows. Для того чтобы выяснить есть ли поддержа сети, а также просмотреть доступные адаптеры используем команду "show xu eth":

sim> show xu eth
ETH devices:
  0  \Device\NPF_{279EDB55-7802-44D3-8FA1-15B14452B309} (Local Area Connection)
sim>

если выводится сообщение "network support not available in simulator", то simh собран без сети. Пример показан для Windows, в нём адаптер под цифрой "0" и в конфигурации его можно будет просто указать как "eth0" или же как "\Device\NPF_{279EDB55-7802-44D3-8FA1-15B14452B309}", в Linux так и будет "eth0".

Затем в файл конфигурации simh добавляем следующие строки:

SET XU ENABLE
SET XU type=delua
SET XU mac=08-00-2B-AA-BB-DD
ATTACH XU eth0

для включения поддержки адаптера, указания типа, mac адреса и реального адаптера.

Существует формула преобразования адреса DECnet фазы IV в виртуальный адрес Ethernet:

  1) Преобразуем адрес узла, например. 63.171, в десятичный эквивалент:
         область * 1024 + узел 
         63 * 1024 + 171 = 64683
  2) Преобразуем адрес десятичного узла в его шестнадцатеричный эквивалент
          64683 hex = FCAB
  3) Поменяем местами пары
          FC AB -> AB FC
  4) И помещаем их после префикса "AA-00-04-00-"
            AA-00-04-00-AB-FC