Давным-давно на белом свете жили не только Глупые короли и Прекрасные принцессы, не только Страшные лесные разбойники и Веселые бродячие артисты, но и Замечательные PDP-11. А вот и... свершилась заветная мечта. Наконец-то собрал я себе настоящий "буржуйский" PDP-11. На этой страничке я попытаюсь рассказать как можно своими руками собрать PDP-11/83. Я долго пытался собрать что-нибудь советское, но или я слишком ленив или "места знать надо", или и то и другое одновременно. Никак у меня не получалось собрать ничего советского. Не говоря уже о том, что собрать что-нибудь советское такого уровня (а ведь мне нужно запускать любимый RSX-11M-PLUS) очень трудно или даже нереально. С DEC PDP-11 же все оказалось легко и просто, нужно было только, чтобы кто-то дал хорошего пинка. Очень надеюсь, что эта страничка поможет кому-нибудь стать счастливым обладателем PDP-11 и позволит сократить время, затраченное на поиск нужной информации. |
Все компоненты (за исключением блока питания, разъемов и кабелей) были куплены на eBay. Описывать процесс покупки здесь не стану - все это можно найти в интернете. Сам я лично не купил ни одной вещи, а просто просил знакомых, использующих PayPal купить для меня нужное.
Самое главное и самое трудное - это корзина. Найти ее, пожалуй, труднее всего. Но не невозможно. Целую корзину мне найти так и не удалось, но главную ее часть - панель разъемов - удалось достать. Особо следует отметить, что для наших целей требуется панель как минимум с тремя слотами PMI. Мне удалось найти панель H9278-A.
Нам нужен KDJ11-BF (M8190-AE). Это процессор, используемый как в PDP-11/83 так и в PDP-11/84, поддерживающий до 4 Мб памяти, разделение пространства инструкций и данных, режим супервизора, базовый набор инструкций (BIS), расширенный набор инструкций (EIS), инструкции процессора плавающей точки (FPP), а также дополнительные инструкции: MTPS, MFPS, MFPT, CSM, TSTSET и WRTLCK. Возможна установка микросхемы ускорителя плавающей точки (FPA). Адресация памяти возможна как по Q-Bus так и через PMI. Модуль имеет встроенный порт консольного терминала, поддерживающий как RS232 так и токовую петлю, программа загрузки и диагностики. KDJ11-BF позволяет выполнять гибкую настройку параметров системы, а также добавлять свои программы загрузчиков для устройств.
В PDP-11/83 используется память MSV11-JD (M8637-DA) или MSV11-JE (M8637-EA). Это ECC память с интерфейсом PMI. Модуль MSV11-JD имеет размер памяти 1 Мб, модуль MSV11-JE - 2 Мб. Мы можем использовать один или два модуля памяти для PDP-11/83.
Контроллеров диска, которые можно использовать в PDP-11/83 множество. Мы рассмотрим два из них. Первым мне в руки попал контроллер RQDX3 (M7555). Это контроллер, поддерживающий до четырех винчестеров MFM или два винчестера и два дисковода гибких дисков RX50. Винчестеры должны быть определенных типов, соответствующих DECовским RD51, RD52, RD53 и тому подобным. Мне достались и были успешно запущенны Seagate ST251 и Seagate ST277, соответствующие DEC RD32. Без проблем должны работать Seagate ST506 (DEC RD50), Seagate ST412 (DEC RD51), Quantum 540 или ATASI 3046 (DEC RD52), Maxtor XT-2190D (DEC RD54), а также Seagate ST225 (DEC RD31). Для подключения дисков к RQDX3 используется плата расширения (M9058). Для соединения контроллера с платой расширения можно использовать простой 50-жильный SCSI кабель. Для соединения с винчестерами используются обычные 40-жильные IDE кабели и 20-жильные управляющие кабели. Если не удастся достать родные кабели управления для MFM винчестеров, подойдут и 34-жильные кабели от гибких дисков с разъемами для 5.25 дисководов с разъемом IDC-20 на обратной стороне.
Еще лучше приобрести SCSI контроллер. Стоит он дороже, но он того стоит. Я приобрел себе SCSI-2 контроллер CQD-420/TM, поддерживающий до 7 SCSI устройств (дисков или лент). Стандартная конфигурация - 4 диска/3 ленты, но можно настроить и другие варианты. Также поддерживается аппаратное деление диска на два или четыре раздела одинакового размера. Для него годятся практически любые SCSI винчестеры, флопы, MO, CD-ROM и приводы лент c 50-пин разъемами.
Без сети в наше время никак. Наиболее распространенными контроллерами для Q-Bus систем являются DEQNA-AA (M7504) и DELQA-M (M7516). Это Ethernet контроллеры с интерфейсом AUI для которого еще понадобится трансивер AUI-TP. Мне достался контроллер DELQA-M. Если повезет достать контроллер с родным интерфейсным китом - отлично. Если нет, его можно изготовить самостоятельно из плоского 20-жильного кабеля, разъема IDC-20 и разъема MIDI.
Можно конечно обойтись одним консольным терминалом. Но лучше если будет некоторый запас. Мне достался контроллер DLV11-J с четырьмя терминальными портами, поддерживающими как RS232 так и токовую петлю. Интерфейсы можно настроить на скорости до 38400 bps Контроллер позволяет подключить дополнительные терминалы, принтеры с последовательным интерфейсом, DECtape II (TU58) или, что более реально в наше время, его эмулятор, а также связывать между собой компьютеры.
Также для подключения дополнительных терминалов и можно использовать мультиплексоры. Мультиплексоры позволяют более оптимально работать с линиями, а также позволяют пользоваться дополнительными возможностями, такими как программная настройка скорости и параметров соединения, работа с модемными сигналами, что весьма полезно при использовании линий для связи между компьютерами. Мне достался довольно простой мультиплексор DZQ11, поддерживающий 4 терминальных линии.
Принтер с последовательным интерфейсом - вещь в наше время редкая. Гораздо легче найти принтер с параллельным интерфейсом. Для подключения такого принтера подойдет контроллер LPV11 (M8027).
Кажется, мы кое-что забыли. Блок питания. Без него все вышеперечисленное не будет работать. Можно попробовать найти родной блок питания, а можно сделать его самому. Я пошел по второму пути. Существует миф, что PDP-11 машины нужно непременно питать родным блоком питания, так как при запуске нужно правильно выставлять сигналы состояния питания. На самом деле вся "трудность" заключается в том, чтобы выставить сигналы BDCOK и BPOK друг за другом после включения питания. При этом предъявляется единственное требование - между этими двумя сигналами должно пройти достаточное время (не стану даже лезть в документацию, чтобы уточнять). Ограничения в большую сторону нет никакого. Самый грубый вариант - включать эти сигналы простыми тумблерами. Более надежный - приделать к тумблерам простенькие триггеры для подавления дребезга. Наконец можно заставить выставляться эти сигналы автоматически, что я и сделал, не особо заботясь о деталях для этого - просто взял то, до чего дотянулся руками не сходя с места. Этими деталями оказались микросхема К555ЛН2, 3 резистора 680 Ом и электролитический конденсатор на 470 мкФ (позднее схемка была дополнена тремя светодиодами для чего потребовалось еще 3 резистора 680 Ом). Это дьявольское инжалид дежице было прицеплено к обычному блоку питания AT от компьютера. Выходные разъемы блока питания были заменены на разъемы какими эти самые блоки AT подключаются к материнской плате - они очень удобно одеваются на разъем панели H9278-A.
На схеме выше не нарисован светодиод с резистором, показывающий наличие питания. В остальном схема соовтетствует тому, что на фотографии.
Для начала рассмотрим подключение панели H9278-A к блоку питания. Разъем J1 подключается к блоку питания (и устройству запуска), разъем J2 - к передней панели компьютера (я не подключал никуда пока).
РАЗЪЕМЫ ПАНЕЛИ H9278-A J1 J2 +-+ +---+ 1 |o| +5 VDC (красный) BDCOK (H) 10 |o o| 9 BHALT (L) 2 |o| +5 VDC (красный) +5 VDC 8 |o o| 7 +5 VDC 3 |o| +5 VDC (красный) GND 6 |o o| 5 GND 4 |o| +5 VDC (красный) 4 | o| 3 SRUN (L) 5 |o| +5 VDC (красный) BEVNT (L) 2 |o o| 1 +12 VDC 6 |o| +5 VDC (красный) +---+ 7 |o| GND (черный) 8 |o| GND (черный) 9 |o| GND (черный) 10 |o| GND (черный) 11 |o| GND (черный) 12 |o| GND (черный) 13 |o| GND (черный) 14 |o| BDCOK (H) (оранжевый) 15 |o| BPOK (H) (голубой) 16 |o| BEVNT (L) (белый) 17 |o| +12 VDC (желтый) 18 |o| unused +-+
Сигналы BDCOK и BPOK идут к плате запуска, сигнал BEVNT в нашем случае не используется так как плата KDJ11-BF имеет свой собственный генератор для часов. Остальные провода соединяются с соответствующими выходами блока питания. Выход PG блока питания соединяется со входом платы запуска. Разъемы для подключения к J1 распаиваются на трех стандартных разъемах какими AT блок питания подключается к материнской плате: 6x5V, 6xGND, GND+BDCOK+BPOK+BEVNT+12V.
Теперь разберемся с подключением процессора, памяти и прочих контроллеров. Три верхние пары слотов H9278-A предназначены для подключения PMI устройств (процессора KDJ11-B, памяти MSV11-J). Ни в коем случае нельзя включать PMI устройства в другие слоты. Если это сделать, 12 вольт с блока питания попадет на сигнальные входы платы, что скорее всего приведет к выходу ее из строя. Также важен порядок включения процессора и памяти. Память MSV11-J должна подключаться выше процессора. В противном случае обмен с памятью будет производиться через Q-Bus, а не PMI, что гораздо медленнее. Также следует помнить, что между подключенными устройствами не должно быть разрывов по линиям Q-Bus. В противном случае нарушится работа прерываний и DMA.
ПОРЯДОК ПОДКЛЮЧЕНИЯ Q-BUS УСТРОЙСТВ К H9278-A +--------------------------------++--------------------------------+ | 1 AB || PMI | +--------------------------------++--------------------------------+ | 2 AB || PMI | +--------------------------------++--------------------------------+ | 3 AB || PMI | +--------------------------------++--------------------------------+ | 4 AB || 5 CD | +--------------------------------++--------------------------------+ | 7 AB || 6 CD | +--------------------------------++--------------------------------+ | 8 AB || 9 CD | +--------------------------------++--------------------------------+ | 11 AB || 10 CD | +--------------------------------++--------------------------------+ | 12 AB || 13 CD | +--------------------------------++--------------------------------+
Как уже говорилось, три верхние пары слотов предназначены для памяти и процессора. Память должна стоять выше процессора. Если используется только один слот памяти, левая часть (AB) третьей пары может быть использована для Q-Bus устройства. Я поступил иначе - первую пару слотов оставил незанятой на случай если захочется подключить второй модуль памяти, во вторую пару включил память, в третью - процессор.
Остальные вышеперечисленные устройства в принципе могут подключаться в любом порядке. Однако, согласно рекомендациям DEC лучше подключить так: DELQA-M, LPV11, DLV11-J, RQDX3 или CQD-420/TM. Плата расширения M9058 не использует прерываний и DMA, и может быть подключена в любом месте, в том числе с разрывом перед ней.
Устройства PDP-11 неплохо греются. Поэтому не забываем о вентиляции.
ПОДКЛЮЧЕНИЕ RS232 ТЕРМИНАЛОВ К КОНСОЛЬНОМУ ПОРТУ KDJ11-BF И К DLV11-J Signal ground DL11 DB9 DB25 | ------------------ | Rx- 3 ----- 2 3 | | 2 -+--- 5 7 | | Signal ground 4 -+ | | | 5 -+ | | | Tx+ 7 -+ | | | | 9 -+ | | | | UART clock 8 ----- 3 2 | | | | | +---------------+ | 9 7 5 3 1 | | 10 8 4 2 | +---------------+ | | | | | Rx+ | Signal ground | | +12v Tx-
Контакты 2, 4, 5, 7, 9 интерфейсного разъема платы соединяются между собой. Кабель плосский, 10-жильный с разъемом IDC-10 с одной стороны и обычным DB9 или DB25 с другой. Приведенная распайка позволяет подключить обычный PC в качестве терминала. Для обжима IDC разъемов использовалась обжимка HT-214.
ПОДКЛЮЧЕНИЕ RS232 УСТРОЙСТВ К DZQ11 FBSY0 FBSY1 RTS3 | | | DTR0 | DCD0 DTR1 | DCD1 RTS2 RX2 GND | RX3 | | | | | | | | | | | TX0 | | N/C | TX1 | | N/C | GND | RI2 | GND | | RI3 | GND | | | | | | | | | | | | | | | | | | | | +-------------------------------------------------------------+ | 39 37 35 33 31 29 27 25 23 21 19 17 15 13 11 9 7 5 3 1 | | 40 38 36 34 32 30 28 26 24 22 20 18 16 14 12 10 8 6 4 2 | +-------------------------------------------------------------+ | | | | | | | | | | | | | | | | | | | | GND | RI0 | GND | RX1 | | GND | N/C | | TX2 | N/C | | RX3 | | | | | | | | | | | RX0 RTS0 GND RI1 | DCD2 FBSY2 | DCD3 FBSY3 | | | | RTS1 DTR2 DTR3
Для подключения используется обычный шлейф с разъемом IDC-40. В разъеме не должно быть закрытых отверстий. Как видно из распайки, разъем можно воткнуть любой стороной - от этого меняются номера линий в шлейфе, но все сигналы попадают на свои места.
ПОДКЛЮЧЕНИЕ ТРАНСИВЕРА AUI-TP К DEQNA/DELQA Ground Receive- DELQA AUI | | ---------------- Trasmit- | | Ground 1 --[~~~]-+- 13 | | | | 20 --------+ Ground | | | | Return (+12v) 4 ---------- 6 | | | | | | 5 ---------- 14 Collision- | | | | | | Power (+12v) 6 ---------- 5 | | | | | | | | 10 ---------- 3 +------------------------------+ 11 ---------- 10 | 19 17 15 13 11 9 7 5 3 1 | 12 ---------- 4 | 20 18 16 14 12 10 8 6 4 | 14 ---------- 2 +------------------------------+ 15 ---------- 9 | | | | | | | | 18 ---------- 7 | | | | | | | Return (+12v) 19 ---------- 15 FUSE OK | | | | | | | | | | | Receive+ | | | | | Ground | | | Ground | | | Collision+ | Transmit+ | Ground
Для подключения используется обычный плосский 20-жильный кабель с разъемом IDC-20 с одной стороны и обычным MIDI разъемом с другой. Если повезет, можно найти специальный AUI разъем который отличается только наличием защелки для трансивера (а мне наоборот попался трансивер не под защелку, а под винты). Контакт 1 разъема DEQNA/DELQA подключается через предохранитель к контакту 13 разъема AUI/MIDI. Сюда же (к 13 ноге) подключается провод, идущий от контакта 20 разъема DEQNA/DELQA (таким образом контроллер проверяет состояние предохранителя). Мне попалась информация, что предохранитель должен быть 1.5 A, но, думается, это перебор.
ПОДКЛЮЧЕНИЕ ПАРАЛЛЕЛЬНОГО ПРИНТЕРА К LPV11 2 40 +------------------------------------------------------------+ | B D F J L N R T V X Z BB DD FF JJ LL NN RR TT VV | | A C E H K M P S U W Y AA CC EE HH KK MM PP SS UU | +------------------------------------------------------------+ 1 39 Кабель LPV11 Centronics -------------------------- 3 C ---- 27 4 D ---- 9 5 E ---- 29 6 F ---- 11 12 N ---- 13 14 R ---- 32 15 S ---- 16 18 V ---- 14 19 W ---- 28 20 X ---- 10 23 AA ---- 22 24 BB ---- 4 25 CC ---- 26 26 DD ---- 8 27 EE ---- 23 28 FF ---- 5 29 HH ---- 20 30 JJ ---- 2 31 KK ---- 21 32 LL ---- 3 35 PP ---- 25 36 RR ---- 7 37 SS ---- 24 38 TT ---- 6 39 UU ---- 19 40 VV ---- 1
Для подключения используется плосский 40-жильный кабель с разъемом IDC-40. Первая жила кабеля должна совпадать с выводом A разъема LPV11. Названия выводов LPV11 написаны на разъеме. Со стороны притнера используется обычный 36-пиновый разъем Centronics.
ИНТЕРФЕЙСНЫЕ РАЗЪЕМЫ Q-BUS ПАНЕЛИ H9278 S S S M M P S M M P B B S S S S S S B B B B S S S S B B D D p p p p p B p B D D D D p p p B B B p I I A A a a a a a B H B a D B A A A A a a a S I E + a R R L L r r r G r r G D A R + G r + C P L L L L r G r r G A R V 1 G r Q Q 1 1 e e e N e e N M L E 5 N e 5 O O 1 1 2 2 e N e e N C Q N 2 N e + 5 6 6 7 1 2 3 D A B D R T F B D 1 B K K 8 9 0 1 8 D B B D K 7 T B D 2 5 ||=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=||===|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=| 1 |A B C D E F H J K L M N P R S T U V| A B C D E F H J K L M N P R S T U V ||=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=||===|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=| 2 A/C B/D + - G + B B B B B B B B B B B B B B + - G + B B B B B B B B B B B B B B 5 1 N 1 D R D S W I I I B D D I D D 5 1 N 1 D D D D D D D D D D D D D D 2 D 2 O P I Y T R A A S M M N A A 2 D 2 A A A A A A A A A A A A A A U L N N B Q K K 7 G G I L L L L L L L L L L L L L L L L T Y C T 4 I O I O T 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
Информация о разъеме Q-Bus нам не особо нужна для сборки, но может пригодиться для ремонта или разработки своих устройств.
Если в качестве контроллера диска используется SCSI контроллер, то первичная загрузка не представляет сложности: мы можем просто записить на диск или ленту нужное нам, воспользовавшись эмулятором, умеющим работать с живыми устройствами. Для этой цели подойдут Ersatz-11, CHARON-11 или CHARON-TB.
Хуже обстоит дело если мы используем RQDX3. Записать диск для него на PC не получится. Возможен также вариант когда записать SCSI носитель на PC просто не на чем. Здесь нас выручит эмулятор TU58. Нам понадобится PC с установленным на него MS-DOS, PC-DOS или еще каким DOS. Соединяем нужный порт PC с первым портом DLV11-J, скачиваем эмулятор TU58, разворачиваем его в отдельный каталог (например C:\TU58), редактируем файл TU58.INI.
НАСТРОЙКА ЭМУЛЯТОРА TU58 COM1 COM2 --------------------------------------- port 0 port 1 baud 9600,N,8,1 baud 9600,N,8,1 irq 4 irq 3
И запускаем нужный файл в зависимости от того, что нам нужно: run-rt11.bat для подключения образа минимального RT-11 или run-xxdp.bat для подключения обзаза XXDP с утилитами, нужными для форматирования MFM дисков для контроллера RQDX3. Наш DECtape II готов. Остается только загрузиться с него на PDP-11/83.
Commands are Help, Boot, List, Setup, Map and Test. Type a command then press the RETURN key: B DD Trying DD0 Starting system from DD0 BOOTING UP XXDP-XM EXTENDED MONITOR XXDP-XM EXTENDED MONITOR - XXDP V2.5 REVISION: F0 BOOTED FROM DD0 124KW OF MEMORY NON-UNIBUS SYSTEM RESTART ADDRESS: 152000 TYPE "H" FOR HELP ! .
Теперь когда у нас есть загруженная система мы можем выполнить любые нужные нам действия.
Скорее всего при сборке PDP-11 по частям, нам не удастся заполучить в свое распоряжение диск, размеченный для RQDX3. Значит нам придется разметить его самостоятельно. Для этого нам потребуетя загрузить XXDP как показано выше. В процессе форматирования диска нам потребуется указать тип диска. Ниже приведена таблица соответствия основных типов MFM дисков DECовским. Другие диски тоже могут подойти по параметрам.
СООТВЕТСТВИЕ MFM ДИСКОВ ТИПАМ DEC Тип Размер Сект/Дор Дор/Цил Цилинд Диск ----------------------------------------------------------------------------- RD31 20 Мб 17 4 615 Seagate ST225 RD32 40 Мб 17 6 820 Seagate ST251, Seagate ST277R RD50 5 Мб 17 4 153 Seagate ST506 RD51 10 Мб 17 4 306 Seagate ST412 RD52 31 Мб 18 7 480 Quantum 540, ATASI 3046 RD53 71 Мб 18 8 1024 Microp 1325 (1355 с перемычкой J7) RD54 156 Мб 17 15 1225 Maxtor XT-2190D
Запускаем XXDP, выполняем форматирование.
.R DD1:ZRQC?? ZRQCH0.BIN DRSSM-G2 ZRQC-H-0 RQDX3 Disk Formatter Utility UNIT IS Formattable Winchester (RDnn) or Floppy (RX33) Drives RSTRT ADR 145702 DR>STA CHANGE HW (L) ? Y # UNITS (D) ? 1 UNIT 0 Enter controller IP Address (O) 172150 ? What unit do you want to format [0-255] (D) 0 ? Would you like to revector a single LBN only [Y/N] (L) N ? Do you want to use the "AUTOFORMAT" Mode [Y/N] (L) Y ? N Would you like to use the RCT - Revector known bad blocks [Y/N] (L) N ? **** WARNING **** ALL DATA ON SELECTED DRIVE WILL BE DESTROYED Write protect all drives not being formatted. Please verify that the selected drive is ON LINE and NOT write protected. If formatting RX33 media, insert media to be formatted in the selected drive. Do you wish to continue [Y/N] (L) Y ? MSCP Controller Model: 19 Microcode Version: 2 Do you want to use manufacturing bad block information [Y/N] (A) N ? Downline load UIT [Y/N] (A) Y ? UIT Drive Name _______________________________________________________ 0 RD51 1 RD52 part # 30-21721-02 (1 light on front panel) 2 RD52 part # 30-23227-02 (2 lights on front panel) 3 RD53 4 RD31 5 RD54 6 RD32 7 RD33 Enter Unit Identifier Table (UIT) [0-7] (D) ? 6 Continue if bad block information is inaccessible [Y/N] (A) N ? Y Please type in the serial number [8-10 digits] (A) ? 534535462 Formatting of Drive 0 Begun. ------------ FORMAT PROGRESS REPORT ------------- 1 minute into format ---- Formatting tracks, LBN # 33916 2 minutes into format ---- Formatting tracks, LBN # 67882 3 minutes into format ---- Reading defect list 4 minutes into format ---- First check pass, writing LBN # 35819 5 minutes into format ---- First check pass, writing LBN # 71519 6 minutes into format ---- First check pass, reading LBN # 24225 7 minutes into format ---- First check pass, reading LBN # 41040 8 minutes into format ---- First check pass, reading LBN # 58836 9 minutes into format ---- First check pass, reading LBN # 76277 10 minutes into format ---- Second check pass, writing LBN # 36040 11 minutes into format ---- Second check pass, writing LBN # 71961 12 minutes into format ---- Second check pass, reading LBN # 21361 13 minutes into format ---- Second check pass, reading LBN # 55216 14 minutes into format ---- Second check pass, reading LBN # 83071 15 minutes into format ---- Third check pass, writing LBN # 36023 16 minutes into format ---- Third check pass, writing LBN # 71961 17 minutes into format ---- Third check pass, reading LBN # 24922 18 minutes into format ---- Third check pass, reading LBN # 48688 19 minutes into format ---- Third check pass, reading LBN # 78931 Format Completed. 00012 Rev LBNs 00000 Bad RBNs 00000 Bad DBNs 00000 Bad XBNs 00012 retired FCT was not used. Drive 0 has been formatted successfully. ZRQC EOP 1 0 TOTAL ERRS DR>
Если все прошло без ошибок, диск готов к работе.
Здесь лежит подборка документации по использованным модулям.
© 2012 FoRM