Собственно готово...
Вид для печати
Собственно готово...
Ну вот и настало время воткнуть 2 мега памяти :)
Археологические раскопки в коробках позволили обнаружить этакое дежице - CONSOLE DISTRIBUTION BOARD (541068). Сие замечательное устройство подключается к KDJ11-B и дает нам готовый RS232 разъем для консольного терминала, переключатель скоростей для него и свичик который позволяет при старте машины принудительно вываливаться в командный режим вместо автозагрузки если таковая настроена.
Несколько слов о том как поднять с нуля систему если у нас нет ничего кроме голого железа и винчестеров фиг знает окуда взятых...
Выручит нас имеющаяся в наличии карточка DLV11-J на которой есть замечательный терминальный интерфейс с прекрасным адресом 176500 и вектором его 300.
Хитрость состоит в том, что DEC выпускал в качестве очень дешевого решения (всего-то $1800) ;) этакую штуку, именуемую в протоколе TU58 или DECtape II. Эта хрень представляла собой двухкассетный привод и цеплялась к самому обычному DL11 порту и с точки зрения системы выглядела скорее как пара дисков размером 512 блоков. Нетрудно догадаться, что уже давно нашлись умельцы которые написали эмулятор TU58 (подробности здесь).
К данному сообщению прикреплен джентльменский набор достаточный для поднятия машины с нуля. Он содержит XXDP (понадобится для форматирования дисков) и базовую часть RT-11 которая потребуется нам для перекачки полновесной системы.
Для начала соединяем порт TT1 платы DLV11-J с COM портом PC, на PC запускаем DOS (сойдет внутри VMWare с проброшенным физическим портом), распаковвываем содержимое архива в C:\TU58, редактируем файл TU58.INI:
(обращаем внимание, что "port 1" означает COM2, а для COM1 нужно писать "port 0" и соответственно "irq 4").Код:port 1
baud 9600,N,8,1
irq 3
Запускаем файл run-xxdp.bat.
Теперь можно грузиться. Для начала следует убедиться, что свичик 5 на плате KDJ11-B установлен в положение Off (принудительный вход в командный режим). Включаем PDP-11...
Набираем команду "B DD" и - о, чудо!Код:Testing in progress - Please wait
Memory Size is 2048 K Bytes
9 Step memory test
Step 1 2 3 4 5 6 7 8 9
Message 04 Entering Dialog mode
Commands are Help, Boot, List, Setup, Map and Test.
Type a command then press the RETURN key:
Перед нами, дети, герб: это - молот, это серп...Код: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 !
.
Следует помнить, что по умолчанию форматирование в XXDP подразумевает переформатирование диска, а значит подразумевается, что он содержит всякую служебную информацию, таблицу замещения плохих блоков и все это читается. В нашем случае мы имеем неизвестно откуда взятый диск и уж во всяком случае никогда не работавший на RQDX3. Это означает, что нам нужно ответить отказом на вопрос про autoformat и разрешить работу даже если нет таблицы замещения. Также нам потребуется указать тип диска. Узнать подходящий можно здесь (или для начала попробовать выполнить autoformat - в этом случае программа попытается исходя из размера диска определить на что это похоже).
Пока оно форматируется идем пить чай...Код:.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>
...
...чай попили, диск отформатировали...
В эмуляторе TU58 нажимаем Q для выхода и запускаем run-rt11.bat. Ресетим машину (посылаем BREAK, в выпавшем мониторе @ набираем 173000G), грузим RT-11:
Копируем все это безобразие на винчестер чтобы больше не мучиться:Код:Testing in progress - Please wait
Memory Size is 2048 K Bytes
9 Step memory test
Step 1 2 3 4 5 6 7 8 9
Message 04 Entering Dialog mode
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
RT-11FB (S) V05.07
.SET USR NOSWAP
.
.INI DU:/NOQ
.COP/SY SY: DU:
.COP/BO DU:RT11FB DU:
и получаем RT-11 V5.7 содержащую основные утилиты и, что для нас важнее, TRANSF.SAV.
Дальнейшее просто до безобразия: берем Ersatz-11, генерим в нем систему с драйвером XL которому указываем CSR 176500 и вектор 300 (все это на том компе где мы эмулировали TU58), соединяем консольный порт PDP-11 с COM портом PC, в E11 конфигурим TT1 так, чтобы он цеплялся за данный COM порт:
(скорость лучше оставить 9600: хотя порт и умеет до 38400, VTCOM который мы будем использовать не справится с высокими скоростями).Код:assign tt1: com1: /mode:9600,n,8,1
Создаем образ логического диска с нужной системой, дистрибутивом итд (с таким расчетом, чтобы он влез на винчестер PDP-11) - назовем его скажем RT57.DSK, запускаем VTCOM и получаем консоль PDP-11 где можем загрузить ранее подготовленную там RT-11.
Далее копируем наш образ и LD.SYS на PDP-11 командами:
и получаем все, что нужно для счастья...Код:.TRANSF RT57.DSK/S/T/W RT57.DSK
.TRANSF LD.SYS/S/T/W LD.SYS
Дальше проще: поскольку в нашем арсенале есть DEQNA, можно скачать замечательную вещь, именуемую TCP/IP Package for RT-11 и наслаждаться огромной скоростью (по сравнению с VTCOM/TRANSF) передачи файлов :)
...
---------- Post added at 14:19 ---------- Previous post was at 14:03 ----------
...
Остается добавить несколько слов о том как быть с другими системами (которые конечно же хочется поставить на второй, третий, а то и четвертый винт). А очень просто: эмулируем в Ersatz-11 (или SimH если так хочется) конфигурацию как на PDP-11, устанавливаем систему, выполняем нужные настройки, разбиваем образ диска на кусочки которые поместятся на диске нашего RT-11 и по очереди перекачиваем их туда по FTP и записываем на нужный винт например такой программкой:
Программа тупая: лень было заниматься удобствами. В DBLKFL указывается имя текущего файла куска образа, в DBLKDV - имя устройства на которое пишем, в первых двух словах BLK - номер блока диска с которого начинать писать данный кусок (ВНИМАНИЕ: младшая часть в первом слове).Код:.TITLE WRDU
.MCALL .PRINT,.TTYOUT,.EXIT,.SPFUN,.LOOKUP
.MCALL .CLOSE,.READW
SF.W32 = 366
START: .LOOKUP #AREA,#0,#DBLKFL
BCC 10$
.PRINT #ERR1
.EXIT
10$: MOV R0,R5
.LOOKUP #AREA,#1,#DBLKDV
BCC 20$
.PRINT #ERR2
.EXIT
20$: CLR R1
30$: .READW #AREA,#0,#BUFF,#256.,R1
BCC 40$
.PRINT #ERR3
.EXIT
40$: .SPFUN #AREA,#1,#SF.W32,#BUFF,#256.,#BLK
BCC 50$
.PRINT #ERR4
.EXIT
50$: INC R1
ADD #1,BLK
ADC BLK+2
SOB R5,30$
.CLOSE #0
.CLOSE #1
.EXIT
BLK: .WORD 17664.,1,0,0
AREA: .BLKW 8.
DBLKFL: .RAD50 /SY RSX AI /
DBLKDV: .RAD50 /DU1 /
BUFF: .BLKW 256.
ERR1: .ASCIZ /FILE LOOKUP FAILED/
ERR2: .ASCIZ /DEVICE LOOKUP FAILED/
ERR3: .ASCIZ /READ FAILED/
ERR4: .ASCIZ /SPFUN WRITE FAILED/
.END START
Ну и совсем последнее - поскольку винчестер у нас больше 65535 блоков, тот диск где установлен RT-11 оказался частично потерян. Чтобы не терять зазря пространство, надо выполнить команду:
и перегрузиться, после чего DU4: будет указывать на оставшуюся часть диска (если диск большой, нужно таким же образом назначить следующие области).Код:.SET DU4 UNIT=0,PART=1
Код:Testing in progress - Please wait
Memory Size is 2048 K Bytes
9 Step memory test
Step 1 2 3 4 5 6 7 8 9
Message 04 Entering Dialog mode
Commands are Help, Boot, List, Setup, Map and Test.
Type a command then press the RETURN key: B DU
Trying DU0
Starting system from DU0
83Boot from ra(0,0,0) at 0172150
:
: ra(0,0,0)unix
Boot: bootdev=02400 bootcsr=0172150
2.11 BSD UNIX #2: Thu Jun 8 21:30:23 PDT 1995
root@curly.2bsd.com:/usr/src/sys/FORM
ra0: Ver 2 mod 3
ra0: RD32 size=83204
attaching qe0 csr 174440
qe0: DEC DELQA addr 08:00:2b:31:47:b4
attaching lo0
phys mem = 2097152
avail mem = 1626240
user mem = 307200
June 8 22:09:27 init: configure system
ra 0 csr 172150 vector 154 vectorset attached
cn 1 csr 176500 vector 300 attached
cn 2 csr 176510 vector 310 attached
cn 3 csr 176520 vector 320 attached
cn 4 csr 176530 vector 370 attached
erase, kill ^U, intr ^C
# Fast boot ... skipping disk checks
checking quotas: done.
Assuming NETWORKING system ...
add host cnupm.home.lan: gateway 127.0.0.1
add net default: gateway 172.31.10.1
starting system logger
checking for core dump...
Jun 8 22:10:36 cnupm vmunix: ra0: Ver 2 mod 3
Jun 8 22:10:36 cnupm vmunix: ra0: RD32 size=83204
preserving editor files
clearing /tmp
standard daemons: update cron accounting.
starting network daemons: inetd.
starting local daemons:Thu Jun 8 22:10:52 PDT 1995
Jun 8 22:10:53 cnupm June 8 22:10:52 init: kernel security level changed from 0 to 1
2.11 BSD UNIX (cnupm.home.lan) (console)
login: root
Password:
erase, kill ^U, intr ^C
# ping form
PING pdp-11.home.lan (172.31.10.1): 56 data bytes
64 bytes from 172.31.10.1: icmp_seq=0 ttl=255 time=20 ms
64 bytes from 172.31.10.1: icmp_seq=1 ttl=255 time=20 ms
^C
--- pdp-11.home.lan ping statistics ---
3 packets transmitted, 2 packets received, 33% packet loss
round-trip min/avg/max = 20/20/20 ms
# telnet axpvms
Trying...
Connected to axpvms.home.lan.
Escape character is '^]'.
Welcome to OpenVMS (TM) Alpha Operating System, Version V8.4
Username: form
Password:
Welcome to OpenVMS (TM) Alpha Operating System, Version V8.4 on node CTEPBA
Last interactive login on Saturday, 21-MAY-2011 21:33:46.24
Last non-interactive login on Sunday, 22-MAY-2011 02:56:08.24
$ lo
Connection closed by foreign host.Y-2011 21:15:39.71
# ps xal
F S UID PID PPID CPU PRI NICE ADDR SZ WCHAN TTY TIME COMMAND
3 S 0 0 0 73 0 0 4613 8 runout ? 0:02 swapper
201 S 0 1 0 8 30 0 16276 33 proc ? 0:02 (init)
201 S 0 53 1 3 40 0 25342 11 u ? 0:00 update
201 S 0 56 1 0 26 0 26176 51 selwait ? 0:01 cron
201 S 0 60 1 0 26 -1 34550 26 msgbuf ? 0:00 acctd
201 S 0 68 1 0 26 0 24501 39 selwait ? 0:01 /usr/sbin/inet
201 S 0 43 1 0 26 0 17203 58 selwait co 0:01 syslogd
201 S 0 81 1 1 30 0 17763 19 proc co 0:03 -sh
1 R 0 97 81 16 51 0 43411 89 co 0:00 ps xal
201 S 0 82 1 7 28 0 20504 29 cons l1 0:00 - std.9600 tty
201 S 0 83 1 8 28 0 27605 29 cons l2 0:00 - std.9600 tty
201 S 0 84 1 6 28 0 34440 29 cons l3 0:00 - std.9600 tty
201 S 0 85 1 10 28 0 36617 29 cons l4 0:00 - std.9600 tty
201 S 0 91 68 1 26 0 41720 42 selwait p0 0:01 telnetd
201 S 0 92 91 48 28 0 40642 19 pt_tty p0 0:03 -sh
#
form, главное чтобы работало. :)