Насколько мне не изменяет память, когда ВМ3 в режиме halt, прерывания от периферии не обрабатываются. Но даже если обрабатываются - ответ не по адресу - я запихивать эмулятор FPP в halt ПЗУ не планирую
Вид для печати
Вместо тысячи слов... Тысяча символов ASCII :):)
Убрал тысячу, а точнее 884 символа. Результат - на сейчас - чуть позже ниже будет :)
Хак на ходу. Причина в необходимости хака будет искаться :)
Оставил только хак. Подробнее - на сейчас - чуть позже ниже будет :)
Код:.BOOZF
@ 140776
@P
XDT: 87
XDT>G
RSX-11M-PLUS V4.6 BL87
>
SAV /WB
@ 152566
@P
@ 000400
@P
RSX-11M-PLUS V4.6 BL87 1920.KW System:"KXX001"
BRK
BE:132630
XDT>4060/010105
004062 /012601
004064 /012600
004066 /060501
004070 /065772 20327
004072 /000340 4132
004074 /103727
XDT>P
>
>RED ZF1:=SY:
>RED ZF1:=LB:
>RED ZF1:=SP:
>MOU ZF1:"RSX11MPBL87"
>@ZF1:[1,2]STARTUP
Интересный прикол... Память (точнее две ячейки) портит системный отладчик...
Портит системный отладчик - но он не виноват - так звёзды сложились :) Думаю, как разложить. Точнее говоря - вариант есть, но проверить смогу только вечером после работы...
Первое место поправил, но звезды накосячили в другом месте...
И вот результат на сейчас
Из того, что ещё проверить - разные варианты загрузки сохранённой системы и загрузку через BOO - как несохранённой, так и сохранённой системы. Но это не сегодня - работа навалилась, усталость такая, что начал сажать тупые ошибки...Код:***** ДОСТУПНОЕ ОЗУ - 3,7 M *
@ 001000
@B
$ZF0
SL V08.00 [SW] Сторожевых С.В. 1988
RT-11SB (Y) V05.07
.SET TT FORM
.SET TT SCOPE
.SET EDIT K52
.BOOZF
XDT: 87
XDT>G
RSX-11M-PLUS V4.6 BL87
>
SAV /WB
RSX-11M-PLUS V4.6 BL87 1920.KW System:"KXX001"
>RED ZF1:=SY:
>RED ZF1:=LB:
>RED ZF1:=SP:
>MOU ZF1:"RSX11MPBL87"
>@ZF1:[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.
>;
cZc
SET -- Inquire cannot
>;
>; Please ignore any random characters that may have printed on your
>; terminal just now They came from a SET /INQUIRE=TI: command.
>; Evidently your terminal does not recognize escape sequences.
>; This will not affect the running of this command file.
>;
>* Please enter time and date (HH:MM DD-MMM-YYYY) [S]: 29-MAY-2019 22:25
>TIME 29-MAY-2019 22:25
>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 BAP0:/BATCH
>QUE BAP0:/AS:BATCH
>@ <EOF>
>RUN $SHUTUP
RSX-11M-PLUS Shut down program
Enter minutes to wait before shutdown:
Reason for shutdown (<CR> for none):
OK to shutdown? [Y/N]: Y
All further logins are disabled
2019-05-29 22:26 System is now shutting down -- KXX001
QUE /STO:QMG
>
STOP/ACCOUNTING SHUTUP
22:26:23 SYSLOG -- 47. Exiting
>
@LB:[1,2]SHUTUP
>VCP DISCONNECT /ALL
>@ <EOF>
>
ELI /NOLOG
>
ACS ZF1:/BLKS=0.
ACS -- Checkpoint file now inactive
>
DMO ZF1:/DEV/LOCK=V
DMO -- System disk being dismounted
DMO -- SYSTEM dismounted from ZF1: *** Final dismount initiated ***
22:26:31 *** ZF1: -- Dismount complete
>
SHUTUP operation complete
@ 126130
@
@ 173000
@B
$ZF40
RSX-11M-PLUS V4.6 BL87 1920.KW System:"KXX001"
>RED ZF1:=SY:
>RED ZF1:=LB:
>RED ZF1:=SP:
>MOU ZF1:"RSX11MPBL87"
>@ZF1:[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.
>;
FZc
SET -- Inquire c
>;
>; Please ignore any random characters that may have printed on your
>; terminal just now. They came from a SET /INQUIRE=TI: command.
>; Evidently your terminal does not recognize escape sequences.
>; This will not affect the running of this command file.
>;
>* Please enter time and date (HH:MM DD-MMM-YYYY) [S]: 22:28 29-MAY-2019
>TIME 22:28 29-MAY-2019
>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 BAP0:/BATCH
>QUE BAP0:/AS:BATCH
>@ <EOF>
>RUN $SHUTUP
RSX-11M-PLUS Shut down program
Enter minУtes to wait before shutdown:
Reason for shutdown (<CR> for none):
OK to shutdown? [Y/N]: Y
All further logins are disabled
2019-05-29 22:30 System is now shutting down -- KXX001
QUE /STO:QMG
>
STOP/ACCOUNTING SHUTUP
22:30:57 SYSLOG -- 47. Exiting
>
@LB:[1,2]SHUTUP
>VCP DISCONNECT /ALL
>@ <EOF>
>
ELI /NOLOG
>
ACS ZF1:/BLKS=0.
ACS -- Checkpoint file now inactive
>
DMO ZF1:/DEV/LOCK=V
DMO -- System disk being dismounted
DMO -- SYSTEM dismounted from ZF1: *** Final dismount initiated ***
>
22:31:05 *** ZF1: -- Dismount complete
SHUTUP operation complete
@ 126130
@
- - - Добавлено - - -
Проверил загрузку сохранённой системы через BOO, и сохранённой системы через BOO/FOR в RT-11.
Не прошла загрузка сохранённой системы через BOO /HW (аналог BOO/FOR)
Ещё проверить - BOO несохранённой системы (из другого раздела)
Оттестировал все возможные варианты загрузки. Неработоспособность BOO /HW - особенность текущего разбиения карты (разделы 32 мб или 1 гб) и не знание об этом "аппаратного" загрузчика. По результатам исследования в первично-вторичный загрузчик добавлен хак, позволяющий в определённых сценариях обойти это дело и загрузить как RT (ZF0:-ZF77:), так и RSX (ZF0:-ZF7:). Хак временный, будет доработка ПЗУ halt режима. Теоретически под RSX при разделах в 1 гб можно будет использовать карты до 128 Гб (28-ми битный номер сектора в LBN, ZF0:-ZF177). Вроде как мелькали в продаже карты на 256 Гб, но как с ними работать - пока не знаю - в имеющемся у меня описании упомянут только 28-битный номер сектора...
На очереди тестирование драйвера ZF для RSX. Вроде как пока система не падала неожиданно (могла не загрузиться), но код в драйвере не вылизан и можно ожидать чего угодно. Кроме того, пока не понятно, насколько корректен код обработки ошибок работы с CF...
Все семь способов загрузки RSX, которые смог придумать - проверил. Работают.
Начал проверку драйвера со стандартного BRU/INI/VER ZF1: ZF2: и... теперь ищем ошибку в драйвере :) А ещё надо бы к 512ВИ1 написать программу :) Только сначала патарейку присобачить :)
Код:.NLIST
.INCLUDE /DISK$HUNTA:[MACROS]MACROS/
.INCLUDE /DISK$HUNTA:[MACROS]HWDF/
.LIST
MODULE ZFDRV, REL=<KX>, VER=<01>, COMM=<CF aka ZF DRIVER>, TYPE=<NOSECT>
;
; QBUS ZF CF card controller driver
;
; MACRO library calls
;
Z$$F11=8.
LD$ZF=1
VC$ZF=0
FROM EXEMC IMPORT PKTDF$, KRBDF$, UCBDF$
FROM SYSLIB.QIOSYM IMPORT IO.ATT, IO.DET, IO.STC
FROM SYSLIB.QIOSYM IMPORT IO.RLB, IO.WLB, IO.WLC, IQ.X
FROM SYSLIB.QIOSYM IMPORT IO.HMS, IO.WDH, IQ.UMD
FROM SYSLIB.QIOSYM IMPORT IS.SUC, IE.IFC, IE.VER, IE.DNR
FROM RSXVEC IMPORT S.CTM, S.ITM, S.KRB, S.PKT, S.STS, S.ST2
FROM RSXVEC IMPORT $BLKC2, $BMSET, $CRPAS, $CVLBN, $DTOER, $DVERR, $SCERR
FROM RSXVEC IMPORT $FORK, $GTPKT, $IODON, $RLCN, $RQCND, $VOLVD
FROM RSXVEC IMPORT $GTWRD, $PTWRD
FROM EXELIB.EXEDF IMPORT S2.ACT, KINAR6, PR4
FROM ZFTAB IMPORT ZF.CMD, ZF.LBH, ZF.LBL, ZF.OFF