Наконец закончилось новогодее спиртное, и я выбрал время продолжить любимое дело.
Итак, с первичным загрузчиком, формируемым на диске программой SAV, я разобрался. Он, действительно, пытается определить тип контроллера - RH-11 или RH-70, по наличию регистра расширенного адреса RHBAE, в котором хранятся дополнительные биты адреса 18-21. А, до этого, пытается определить тип процессора - 11/70 или нет, по наличию регистра SYSID (177764). И если машина не 11/70, то считает, что контроллер у нас RH-11. Подход выглядит весьма корявым, и является следствием непродуманности средств идентификации оборудования.
Вообщем, если из адресного пространства выкинуть регистр RHBAE, то стартер BASELINE начинает отлично грузиться с DB-диска:
Код:
2044.KW
START? DB0
RSX-11M-PLUS V4.6 BL87 2044.KW System:"Baseline"
>RED DB:=SY:
>RED DB:=LB:
>RED DB:=SP:
>MOU DB0:"RSX11MPBL87"
>@[2,54]BASTART.CMD
>SET /CRASHDEV=MM0:
SET -- Crash device MM000: has been successfully loaded
>;
>* Do you wish to see the Installation Notes? [Y/N]:
>SET /UIC=[200,200]
>;
>; 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.
>;
>;
>; In order to start the SYSGEN process, type:
>;
>; >@SYSGEN
>;
>; When SYSGEN has completed and your generated system is
>; running, you may wish to edit several supplied prototype
>; command and text files to suit your system and application:
>;
>; File Purpose
>; ---- -------
>; [0,0]RSX11.SYS An account/password file
>; This file does contain privileged accounts.
>;
>; [1,2]STARTUP.CMD (This file) Invoked at bootstrap time to
>; control bringing up the system.
>;
>; [1,2]QMGSTART.CMD Invoked by STARTUP to start up the Queue
>; Manager and spooling system.
>;
>; [1,2]SHUTUP.CMD Invoked by SHUTUP when taking down the system
>; to perform system dependent shutdown tasks.
>;
>; [1,2]QMGSTOP.CMD Invoked by SHUTUP to stop the Queue Manager
>; and spooling system.
>;
>; [1,2]LOGIN.TXT Displayed on user's terminal when logging in.
>;
>; [1,2]BATCH.TXT Displayed at the beginning of each batch log
>; file.
>;
>;
>* Please enter time and date (HH:MM DD-MMM-YYYY) [S]: 15:52 6-JAN-23
>TIME 15:52 6-JAN-23
>ACS SY:/BLKS=1024.
>CON ONLINE ALL
>ELI /LOG/LIM
>CLI /INIT=DCL/CTRLC/DPR="<15><12>/$ /"
>INS LB:[1,1]RMSRESAB.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBL.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBM.TSK/RON=YES/PAR=GEN
>INS $QMGCLI
>INS $QMGCLI/TASK=...PRI
>INS $QMGCLI/TASK=...SUB
>QUE /START:QMG
>INS $QMGPRT/TASK=PRT.../SLV=NO
>QUE LP0:/CR/NM
>START/ACCOUNTING
>CON ESTAT LP0:
>QUE LP0:/SP/FL:2/LOWER/FO:0
>QUE BAP0:/BATCH
>QUE LP0:/AS:PRINT
>QUE BAP0:/AS:BATCH
>@ <EOF>
>
С ошибкой, вылезающей в процессе генерации системы, я также разобрался. Проблема оказалась в скрипте SGNVC.CMD, предназанченном для формирования файла SYSVMR.CMD. Вот в этом месте:
Код:
.VMR60: .IF $FCPNM NE "FCPLRG" .GOTO VMR65
.IFT $U$DAS .SETS $FCPNM "FCPLRGID"
не проверяется наличие переменной $U$DAS, что и порождает ошибку. Переменная эта имеет смысл только для I/D процессоров, для остальных она не определена. Исправить ситуацию можно разными способами, я пошел самым простым путем, введя проверку наличия этой переменной:
Код:
.VMR60: .IF $FCPNM NE "FCPLRG" .GOTO VMR65
.IFNDF $U$DAS .GOTO VMR65
.IFT $U$DAS .SETS $FCPNM "FCPLRGID"
Предполагаю, что ошибку эту внесли криворукие программисты ментека, конкретно некий D. Carroll. Судя по журналу модификаций, этот код появился как раз в версии 4.6:
Код:
.; Modified for RSX-11M-PLUS V4.6 by:
.;
.; D. Carroll 06-Jan-1996 04.09
.; DC428 -- Load VF: if virtual disks were selected in sysgen
.; and select I/D space ACP if applicable
В результате генерация системы проходит до конца, но дальше поджидает очередной облом:
Код:
>BOO [1,54]
XDT: 87
XDT>G
RSX-11M-PLUS V4.6 BL87
>SAV
Свежая система загружается и вполне успешно функционирует - можно смонтировать все диски без проблем, можно запускать любые задачи. Но вот попытка сохранить образ командой SAV вызывает мертвый вис. Более того, образ системы необратимо портится и больше не загружается:
Код:
>BOO [1,54]
057242
@
На этом пока все. Не ожидал, что возникшая на ровном месте проблема дисков DB превартится в такой длинный и тернистый путь. Теперь придется копать дальше, благо новый год и времени пока хватает.