Выложил образ HD с дистрибутивом RSX-11M-PLUS V4.6. Драйвер HD присутствует, BOO/SAV поправлены. И еще кое-какие правки были (подробности ниже).
Образ я запускал из под RT-11 командой BOO/FO. Опять я забыл как отключить в эмуляторе загрузчик, примеряющийся к RT-11 (вернее что-то там нашел на эту тему, но это не помогло - позже поковыряю детальнее).
Здесь можно посмотреть раскрашенный лог генерации системы. На большую часть вопросов можно ответить умолчаниями. То, что вводилось руками подкрашено.
Остановлюсь на некоторых моментах генерации...
Код:
>* SU100 Do you want to run Autoconfigure on the host system
>* hardware? [Y/N D:N]: Y
Автоконфигурацию можно (и нужно для простоты) выполнить, но...
Код:
>ACO SHOW
Processor Type: LSI-11/73 Memory Size: 124. Kw
Options:
Extended Instruction Set (EIS)
Parity Memory
Name Vector CSR Unit Type Remark
DKA 220 177404
0 RK05
DXA 264 177170
LPA 200 177514
MTA 224 172522
PPA 074 177554
PRA 070 177550
YLA 060 177560
>ACO SYSGEN
>;
>* SU110 Do you want to override the Autoconfigure results? [Y/N D:N]: Y
...результаты нужно будет подправить...
Код:
>* CE010 What is your target processor type? [S R:3.-12. D:"LSI-11/73"]: 11/23-PLUS
Прежде всего тип процессора. 11/23-PLUS будет вполне уместным, иначе .IFы в исходниках зашизеют и будет пара неопределенных символов. Также DECnet при генерации берет тип процессора из параметров системы, и уж тут держись - начнет генерить программы режима супервизора, с разделением данных, да мало ли чего...
Код:
>* CE270 Do you want to include XDT? [Y/N D:N]: Y
Люблю включать отладчик в систему. В принципе в M+ можно в любое время подгрузить отладчик в живую систему, но мне как-то привычнее так...
Код:
>* CE290 On what device and unit do you want crash dumps
>* to be written? [S R:2-6]: XX:
Увы, пока нет подходящего устройства для сброса аварийного дампа. Ставим XX: (загружаемый драйвер).
Код:
>* CE310 Enter memory size (in K words) [D R:256.-2044. D:256.]:
Это не размер памяти который будет использовать система. Эта циферка определяет размер сохраненного образа на диске (в блоках будет nK * 4 + 2). Обычно минимального хватает для сохранения системы.
Код:
>* CP2204 How many RK11 cartridge disk controllers do you have? [O D:1]: 0
С RK05, разумеется, все плохо. Q-Bus вариант контроллера поддерживает только 16 бит. RSX в такие подробности не вдается скорее всего, но в любом случае без UNIBUS mapping контроллер максимум адресует 18 бит, и обращение к нему вызовет падение системы.
Код:
>* CP5604 How many TM/TMA/TMB11 magtape controllers do you have? [O D:1]: 0
Аналогичная ситуация с MT: - на Q-Bus его скорее всего в оригинале не было, а на UNIBUS вопрос 22 бит отпадает сам собой...
Код:
>* CP4804 How many RX11 disk controllers do you have? [O D:1]:
>;
>* CP4868 Enter vector address of the next RX11 [O R:60-774 D:264]:
>;
>* CP4872 What is its CSR address? [O R:160000-177700 D:177170]:
>;
>* CP4876 How many drives does DXA have? [D R:1.-2. D:2.]:
А вот RX01 работает отлично. Я не силен в нем и не знаю поддерживает ли он 22 бит или драйвер использует буфера в нижней памяти (драйвер DY: вроде так делает [ну или зачем-то ему отдельный раздел нужен]), или просто методика работы такая, что пофигу, но факт остается фактом - все пашет:
Код:
>MOU DX:/FO/NOSH
>INI DX:KAKA/SDI
Searching for bad block descriptor file
INI -- Failed to read bad block file
>DMO DX:
23:23:43 *** DX0: -- Dismount complete
DMO -- TT0: dismounted from DX0: *** Final dismount initiated ***
>MOU DX:/OVR/VI
Volume Information
Class: Files-11
Device: DX00
Volume label:KAKA
Owner: [1,1]
Protection: [RWCD,RWCD,RWCD,RWCD]
Default: [RWED,RWED,RWED,R]
Processor: F11ACP
>PIP DX:=[3,54]HDDRV.TSK,.STB
>DIR DX:
Directory DX0:
27-NOV-16 23:24
INDEXF.SYS;1 24. 27-NOV-16 23:23
BITMAP.SYS;1 2. 27-NOV-16 23:23
BADBLK.SYS;1 0. 27-NOV-16 23:23
000000.DIR;1 1. C 27-NOV-16 23:23
CORIMG.SYS;1 0. 27-NOV-16 23:23
HDDRV.TSK;13 4. C 27-NOV-16 23:24
HDDRV.STB;13 1. 27-NOV-16 23:24
Total of 32./32. blocks in 7. files
>
Тут кое-что интересное:
Код:
>* CP5804 How many PC11 paper tape reader/punches do you have? [O D:1]:
>;
>* CP5868 Enter vector address of the next PC11 [O R:60-774 D:74]: 70
>;
>* CP5872 What is its CSR address? [O R:160000-177700 D:177554]: 177550
Что-то напутали где-то и автоконфиг слегка криво раздает правильно определенные на этапе конфигурации параметры перфолентера.
Код:
>* CP6004 How many PR11 paper tape readers do you have? [O D:1]: 0
А тут еще интереснее. Первый вопрос был про читалку-писалку, и она действительно генерит два устройства. Второй вопрос про отдельную читалку. Автоконфиг ее подсвечивает по умолчанию, но получается бардак. Если согласиться, что есть еще один контроллер, то независимо от того, что будет введено, сгенерится читалка с адресом-вектором консольного терминала
Код:
>* CP6804 Enter number of additional DL11/DLV11 line interfaces [O D:0]: 1
>;
>* CP6820 Do any of the DL11/DLV11 lines require modem support? [Y/N D:N]:
>;
>* CP6832 Enter terminal type for YLA [S R:4-6 D:"LA120"]: VT52
>;
>* CP6868 Enter vector address of YLB [O R:300-770]: 360
>;
>* CP6872 What is its CSR address? [O R:160000-177700]: 176560
>;
>* CP6832 Enter terminal type for YLB [S R:4-6 D:"LA120"]: VT52
Тут все просто. Автоматом второй порт не определился поскольку нарушаются правила раздачи регистров-векторов.
Закончилась сборка, создан образ новой системы, но там нет главного - драйвера диска с которым мы намерены работать. Это нужно будет сделать вручную. Для простоты цитирования делаю в EDT в строчном режиме. В реале, конечно, проще в экранном
Код:
INS $EDT
>CHD 1 54
>EDT SYSVMR.CMD
1 RSX11M.SYS
*F "LOA DX:"
*I
LOA HD:/VEC
^Z
84 LOA DX:/VEC
*EX
HD7:[1,54]SYSVMR.CMD;2 239 lines
Собственно и все. Остается только заново создать образ системы, загрузить-установить в него все, заботить и сохранить с записью аппаратного загрузчика:
Код:
>PIP RSX11M.SYS/NV/BL:1026.=RSX11M.TSK
>INS $VMR
>VMR @SYSVMR
VMR -- *DIAG*-Installed tasks or commons may no longer fit in partition
SET /TOP=SYSPAR:-*
VMR -- *DIAG*-Loadable driver larger than 4K
LOA TT:/SIZE=16300
VMR -- *DIAG*-Installed tasks or commons may no longer fit in partition
SET /TOP=DRVPAR:-*
SECPOL 117734 00120000 00100000 SEC POOL
SYSPAR 117670 00220000 00166100 MAIN
117624 00220000 00112100 RO COM !DIR11M!
117440 00332100 00004400 TASK [...LDR]
117240 00336500 00033500 TASK [MCR...]
117040 00372200 00010500 TASK [TKTN ]
116640 00402700 00003200 TASK [SHF...]
DRVPAR 116560 00406100 00076400 MAIN
116514 00406100 00006700 RO COM !TTEXT !
116430 00415000 00036000 DRIVER (TT:)
116060 00453000 00001700 DRIVER (DX:)
115210 00454700 00000500 DRIVER (HD:)
114770 00455400 00001300 DRIVER (LP:)
114530 00456700 00000500 DRIVER (PP:)
114270 00457400 00000400 DRIVER (PR:)
114060 00460000 00000100 DRIVER (NL:)
114014 00460100 00017700 DRIVER (VF:)
113750 00500000 00000300 DRIVER (CO:)
113704 00500300 00002500 DRIVER (VT:)
113640 00503000 00001500 DRIVER (RD:)
GEN 113574 00504500 01273300 MAIN
...LDR 12.01 117504 SYSPAR 248. 00004400 LB0:-00166112 FIXED
TKTN 07.01 117104 SYSPAR 248. 00010500 LB0:-00065277 FIXED
F11MSG 15.00 111564 GEN 200. 00006300 LB0:-00053566
MTAACP 17.00 111204 GEN 200. 00016200 LB0:-00060246
SHE... 06.01 110744 GEN 200. 00014500 LB0:-00063715
MCR... 07.00 117304 SYSPAR 160. 00033500 LB0:-00057225 FIXED
F11ACP 07.00 113364 GEN 149. 00011100 LB0:-00052236
ERRLOG 05.03 113034 GEN 148. 00056200 LB0:-00052154
PMT... 02.02 112404 GEN 148. 00007500 LB0:-00061156
COT... 02.04 111704 GEN 145. 00014300 LB0:-00046412
HRC... 05.00 111324 GEN 140. 00042500 LB0:-00054352
PMD... 07.05 111064 GEN 140. 00017600 LB0:-00061126
SYSLOG 04.03 112144 GEN 130. 00024500 LB0:-00064155
SHF... 07.01 116704 SYSPAR 105. 00003200 LB0:-00063734 FIXED
FXR... 03.02 111444 GEN 100. 00003300 LB0:-00053560
BAP0 04.11 113154 GEN 80. 00050300 LB0:-00044071
QMG... 06.04 112264 GEN 75. 00037300 LB0:-00061560
LP0 07.04 112620 GEN 70. 00020300 LB0:-00056543
ACNT 06.04 112024 GEN 50. 00057600 LB0:-00043534
SHUTUP 04.04 110624 GEN 50. 00016500 LB0:-00063741
...RMD 05.00 001236+ GEN 225. 00042000 LB0:-00061643
...DCL 06.01 001212+ GEN 160. 00062500 LB0:-00046716
...DMO 04.02 001214+ GEN 160. 00017300 LB0:-00047671
...MCR 07.00 001230+ GEN 160. 00040300 LB0:-00057263
...MOU 26.06 001232+ GEN 160. 00045600 LB0:-00060155
...CA. 01.00 001266+ GEN 150. 00026100 LB0:-00064204
...INS 16.00 001226+ GEN 100. 00053200 LB0:-00055237
...SAV 11.00 001262+ GEN 100. 00071000 LB0:-00171627
...UFD 07.02 001270+ GEN 100. 00014500 LB0:-00065312
...VCP V04.10 001272+ GEN 90. 00020300 LB0:-00065500
...ACS 04.00 001244+ GEN 70. 00006200 LB0:-00043712
...ACC 05.00 001204+ GEN 65. 00032100 LB0:-00043220
...SHA 06.01 001264+ GEN 65. 00032000 LB0:-00063542
...AT. 10.0 001220+ GEN 64. 00056700 LB0:-00054772
...INI 24.00 001222+ GEN 60. 00037200 LB0:-00055143
...HOM 24.00 001224+ GEN 60. 00037200 LB0:-00055143
...BRO 09.10 001206+ GEN 50. 00041500 LB0:-00044217
...BYE 05.01 001210+ GEN 50. 00021700 LB0:-00044523
...HEL 06.00 001216+ GEN 50. 00031600 LB0:-00053716
...PIP 21.00 001234+ GEN 50. 00036400 LB0:-00060746
...UNL 05.04 001240+ GEN 50. 00021500 LB0:-00065426
...ACD 03.00 001242+ GEN 50. 00042500 LB0:-00043311
...BOO 03.10 001246+ GEN 50. 00047400 LB0:-00044017
...CON 05.00 001250+ GEN 50. 00135600 LB0:-00046210
...ELI 04.03 001252+ GEN 50. 00032600 LB0:-00052117
...LOA 05.03 001254+ GEN 50. 00040000 LB0:-00056346
...MAG 03.00 001256+ GEN 50. 00037300 LB0:-00057163
...PSW 03.02 001260+ GEN 50. 00017500 LB0:-00061243
YLA OFL CPA CSR=177560 VEC=60 PRI=5
YLB OFL CPA CSR=176560 VEC=360 PRI=5
DXA OFL CPA CSR=177170 VEC=264 PRI=5
HDA OFL CPA CSR=177720 VEC=0 PRI=0
LPA OFL CPA CSR=177514 VEC=200 PRI=4
PPA OFL CPA CSR=177554 VEC=74 PRI=4
PRA OFL CPA CSR=177550 VEC=70 PRI=4
VF0: OFL DRIVER
VF1: OFL DRIVER
CO0: OFL DRIVER
TT0: YLA0: OFL DRIVER
TT1: YLB0: OFL DRIVER
VT0: OFL DRIVER
RD0: ONL DRIVER
DX0: DXA0: OFL DRIVER
DX1: DXA1: OFL DRIVER
HD0: HDA0: OFL DRIVER
HD1: HDA1: OFL DRIVER
HD2: HDA2: OFL DRIVER
HD3: HDA3: OFL DRIVER
HD4: HDA4: OFL DRIVER
HD5: HDA5: OFL DRIVER
HD6: HDA6: OFL DRIVER
HD7: HDA7: OFL DRIVER
LP0: LPA0: OFL DRIVER
PP0: PPA0: OFL DRIVER
PR0: PRA0: OFL DRIVER
NL0: OFL DRIVER
POOL=1200:3224.:03224.:1200
>BOO [1,54]
XDT: 87
XDT>G
RSX-11M-PLUS V4.6 BL87
>
>TIM 22:10 27-NOV-2016
>SAV /WB
RSX-11M-PLUS V4.6 BL87 512.KW System:"KYPEBO"
>RED HD7:=SY:
>RED HD7:=LB:
>RED HD7:=SP:
>MOU HD7:"RSX11MPBL87"
>@HD7:[1,2]STARTUP
>; PLEASE NOTE
>;
>; If you have not yet read the system release notes, please do so
>; now before attempting to perform a SYSGEN or to utilize the new
>; features of this system.
>;
>;
>* Please enter time and date (HH:MM DD-MMM-YYYY) [S]:
- - - Добавлено - - -
Ну и несколько слов о том, что было поправлено и что еще полезно будет сделать.
- BOO и SAV (поддержка HD для сохранения и загрузки) - файлы [1,20]BOOBLD.BLD, [1,20]SAVBLD.BLD, [1,24]SAV.OLB, [3,54]BOO.TSK, [2,54]SAV.TSK
- RMD (размещение индикаторов свободного места пошире как на ANSI терминалах - диски-то стали пообъемнее, а про VT52 забыли) - файлы [1,24]RMD.OLB, [14,10]V52MDM.MAC, [3,54]RMD.TSK (хмм... не помню пересобрал ли его )
- SYSGEN (не пытаться вести разборки с user data space если нет поддержки kernel data space) - модуль SGNEXC в файле [200,200]SYSGEN.CLB
- разные мелкие правки в MCR и HELP которые накопились...
Ну и сделать также нужно многое: FLX научить работать с HD и некоторыми другими дисками в RT-11 формате (ну это не трудно - где-то у меня записано что там править), HRC научить при включении HD распознавать тип (например HD16 и HD32 - в соответствии с размером диска) и вписывать его в структуры (в сущности просто косметика). Написать драйвер HD для RTEM, чтобы грузить в нем физический диск HD (ну это совсем просто). И может еще чего забыл
Ну и кому интересно попытаться написать драйвер DW, могу рассказать вкратце как делать драйвера
Самому - лень