-
У автора PDP2011 - ДП был построен сильно асинхронным. С одной стороны - хорошо - более быстрым получается, с другой стороны - задержки прохождения сигналов (особенно адреса) не предсказуемы и легко получить синтез, где они оказываются великоватыми. Ну, собственно, я на это и налетел. Попытка оптимизировать описание до какого то момента была успешной, но, видимо, всё. Так что слегка переделал модель ДП на более синхронную. Пока добился того, что то, что уже работало - по прежнему работает. Начинаю двигаться дальше.
- - - Добавлено - - -
Хотя нет - определённое движение вперёд всё таки есть - если раньше тест FKTH (тест ДП для PDP-11/34) в какой то момент (достаточно быстро) уходил в себя-вернусь не скоро, то теперь он радостно шлёпает ошибки и не менее радостно бегает по циклу, на каждом цикле не менее радостно сообщает о 10-ти ошибках :) Уже лучше :) Бум поправлять :)
-
Хроники битвы за ДП :)
Код:
000042 000000 000000 000000
@DK0
RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM
.INI VM:
VM0:/Initialize; Are you sure? Y
.DIR VM:
0 Files, 0 Blocks
136 Free blocks
.COP/VER RT11SB.SYS VM:
Files copied:
DK:RT11SB.SYS to VM:RT11SB.SYS
.
Тест ДП пока ещё не проходит – осталось две ошибки – запись бита W и фиксация регистра SR2.
VRUN тоже пока не работает… Может из за того, что памяти мало?.. Попробую увеличить..
- - - Добавлено - - -
Малость дополнил:
Код:
.DIR VM:
SWAP .SYS 28 31-Oct-1998 RT11SB.SYS 99 09-Jan-2020
VM .SYS 3 10-Jan-2020 RK .SYS 3 20-Mar-2020
4 Files, 133 Blocks
3 Free blocks
.BOO VM:RT11SB
RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM
.
- - - Добавлено - - -
Ну, добавить памяти было проще всего, но на VRUN это не сказалось...
Код:
.sho conf
RT-11XM (S) V05.07
Booted from RK7:RT11XM
USR is set NOSWAP
EXIT is set SWAP
KMON is set NOIND
RUN is set NOVBGEXE
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KEX
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled
CLI is set DCL, CCL, UCL, NO UCF
PDP 11/34 Processor
248KB of memory
Extended Instruction Set (EIS)
Memory Management Unit
50 Hertz System Clock
Device I/O time-out support
Global .SCCA support
Extended unit support
UNIBUS mapping unavailable
.
-
Уф...
Код:
000042 000000 000000 000000
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKTH??
MD-11-DFKTH-A 11/34 MEMORY MGMT. DIAG.
END PASS # 1 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 2 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 3 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 4 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 5 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 6 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 7 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 8 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 9 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 10 TOTAL ERRORS SINCE LAST REPORT 0
000042 000416 001100 177620
@
К сожалению, в процессе борьбы за прохождение теста ДП в варианте PDP-11/34 потерялась работа VM: :(
Бум выяснять, где :)
-
А, да, забыл написать - слегка переделал внутреннюю шину, поменял блок в/в в процессоре (теперь стал ближе к авторскому, но использует сигнал готовности) и большую часть модулей сделал более синхронными - забибикался воевать с асинхронностью. Оно, конечно, быстрее (падение скорострельности в три раза), но его худшая предсказуемость на этапе поиска ошибок... Потом подумаю над ускорением - в принципе, где клоки теряются - знаю.
- - - Добавлено - - -
И нашлась ещё одна ошибка - запись на RK не работает - последствие переделки внутренней шины - вот только сейчас на это налетел - до этого воевал с ДП и запись на диск не проверил после переделки...
-
Работу RK2011 вроде восстановил - ошибка вылезала из за асинхронности работы блок ПДП. Тест SYSGEN гоняется уже где то полчаса (чтение-запись RK) - пока всё норм. Дальше - восстановление работы VM. Потому - добавление UMR.
-
Упрямство и труд... или вместо тысячи слов :)
Код:
000042 000000 000000 000000
@DK7
RT-11XM (S) V05.07
.RUN SY:TD3E
?KMON-F-File not found SY:TD3E.SAV
.BOO RT11SB
RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM
.INI VM:
VM0:/Initialize; Are you sure? Y
.DIR VM:
0 Files, 0 Blocks
376 Free blocks
.COP *.*/SYS/VER/Q VM:
Files copied:
DK:SWAP.SYS to VM:SWAP.SYS ? Y
DK:RT11SB.SYS to VM:RT11SB.SYS ? Y
DK:VM.SYS to VM:VM.SYS ? Y
DK:PIP.SAV to VM:PIP.SAV ? Y
DK:DUP.SAV to VM:DUP.SAV ? Y
DK:RESORC.SAV to VM:RESORC.SAV ? Y
DK:RK.SYS to VM:RK.SYS ? Y
DK:DIR.SAV to VM:DIR.SAV ? Y
DK:HX.SYS to VM:HX.SYS ? Y
.COP/BOO VM:RT11SB VM:
.BOO VM:/FOR
RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM
.SHO CONF
RT-11SB (S) V05.07
Booted from VM0:RT11SB
USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KED
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled
CLI is set DCL, CCL, UCL, NO UCF
PDP 11/34 Processor
248KB of memory
Extended Instruction Set (EIS)
Memory Management Unit
50 Hertz System Clock
Device I/O time-out support
SB timer support
Global .SCCA support
Extended unit support
.BOO RK7:RT11XM
RT-11XM (S) V05.07
.RUN SY:TD3E
?KMON-F-File not found SY:TD3E.SAV
.VRUN MACRO
*
MACRO V05.06
*^C
.BOO/FOR RK1:
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKAA??
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
000042 025762 000500 000000
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKAC??
END PASS##
END PASS##
END PASS##
END PASS##
END PASS##
END PASS##
000042 000020 000600 000404
@rk
@1D
@KD
@D1
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKTH??
MD-11-DFKTH-A 11/34 MEMORY MGMT. DIAG.
END PASS # 1 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 2 TOTAL ERRORS SINCE LAST REPORT 0
000042 177377 001076 077402
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R XQMMQX R
.R ZQMC??
MAINDEC-11-DZQMC-B
KT11 (MEMORY MANAGEMENT) AVAILABLE
MEMORY MAP:
FROM 000000 TO 757777
NO PARITY REGISTERS FOUND
PROGRAM RELOCATED TO 720000##
PROGRAM RELOCATED TO 000000##
END PASS # 1##
PROGRAM RELOCATED TO 720000##
PROGRAM RELOCATED TO 000000##
END PASS # 2##
PROGRAM RELOCATED TO 720000##
PROGRAM RELOCATED TO 000000##
END PASS # 3##
PROGRAM RELOCATED TO 720000##
PROGRAM RELOCATED TO 000000##
END PASS # 4##
PROGRAM RELOCATED TO 720000##
000042 072771 001074 037777
@DK7
RT-11XM (S) V05.07
.RUN SY:TD3E
?KMON-F-File not found SY:TD3E.SAV
.VRUN MACRO
*^C
.SHO CONF
RT-11XM (S) V05.07
Booted from RK7:RT11XM
USR is set NOSWAP
EXIT is set SWAP
KMON is set NOIND
RUN is set NOVBGEXE
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KEX
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled
CLI is set DCL, CCL, UCL, NO UCF
PDP 11/34 Processor
248KB of memory
Extended Instruction Set (EIS)
Memory Management Unit
50 Hertz System Clock
Device I/O time-out support
Global .SCCA support
Extended unit support
UNIBUS mapping unavailable
.
- - - Добавлено - - -
Зараза RSX пока сопротивляется...
-
Поскольку ни нормального пульта ни встроенного ODT у меня ещё нет, единственный способ в случае RSX понять - что происходит - это карта памяти, листинг и XDT :) Даже если эта RSX - простая M :) Так что - вспомнил ГЛУБОКУЮ молодость и прогнал SYSGEN в RSX-11M :) На выходе - диск, где делался SYSGEN (карты памяти, листинги) и диск с загружаемой RSX-11M с RK11. На этот раз, в отличии от базовой системы, я получил не зависание не пойми где, а очень такой симпатичный (ибо не пришлось придумывать - как) вылет в отладчик XDT. Что, с наличием карты памяти и листингов, позволило за пару минут найти виноватого :)
Драйвер RK11.
Учитывая, что эмулируемый RK2011 у меня не доделан (там, по сути, только чтение и запись работают хоть как то) – вполне ожидаемо :)
Так что UMR пока откладывается в сторону и начинается допиливание RK11 :)
Кстати, не рассказал детектив с VM:
Итак.
В VM проблема была в том, что он настраивал маппинг страницы в/в - немного по разному для режима ядра (отображена вся страница) и режима пользователя (отображена только половина страницы).
После чего включал ДП и при этом сразу оказывался в режиме пользователя – из за настройки в PS.
И вот в этот момент ДО ВКЛЮЧЕНИЯ всё с доступом было нормально, А В МОМЕНТ ВКЛЮЧЕНИЯ (регистр SR0, адрес 177572) ТЕКУЩАЯ ОПЕРАЦИЯ с точки зрения ВКЛЮЧИВШЕГОСЯ ДП обращалась за пределами отображённой длины страницы.
И СРАЗУ после включения прилетало прерывание от ДП – типа ДП - слишком шустрый :) Шериф только очнулся - и сразу пристрелил врача с дефибрилятором :)
То есть – если в момент начала операции ДП выключен – он эту операцию должен пропускать как есть целиком и до момента её окончание не реагировать.
Последствия того, что у автора в ДП много асинхронного, а операции обмена по шине идут без ожидания с точки зрения процессора – он выставил сигналы и сразу – или прилетит сигнал NXM (non existing memory – на шине некому отвечать) или операцию можно завершать – для чтения данные доступны, для записи – устройство приняло данные. Автор весьма хитро сделал тактирование процессора от памяти.
В общем, когда я только начинал возиться с FPGA – в тот момент во все тонкости не вкурил, решил, что мне будет проще с сигналом подтверждения типа RPLY на QBus, в конце концов начал переделывать, но оказалось – много чего и много где надо переделывать :) Хотя схема стала работать гораздо устойчивее и самое главное – результат синтеза стал более предсказуемо быть запускаемым. То есть, если типа проц не стартовал – это мой косяк, а не результат того, что опять где то времянка поплыла из за общей асинхронности.
Кстати, этот инцидент примечателен ещё тем, что – тест ДП то эту ошибку в работе ДП не ловит :)
А драйвер VM - на раз два три :)
-
Всем известны SB (в девичестве SJ) и XM мониторы :) В принципе - основные мониторы в RT.
Ну, если вы счастливый обладатель процессора с поддержкой ID и Supervisor, то неплохо заходит ZM монитор. Так же можно вполне успешно юзать младшие братья (X,Z)M монитора - XB и ZB.
Системные задания - это жалкая пародия на многозадачность (да да - RSX - наше всё в этом плане), но... есть, в принципе, сценарии, где может помочь и такая... хм... многозадачность, но SB, XB и ZB слегка полегче мониторов с её поддержкой, так что чаще всего используются они, а не их... более многоопытные варианты :)
Так о чём речь то. А речь об одной интересной возможности в XB-XM-ZB-ZM мониторах, которая позволяет, пусть и тоже - в определённых сценариях, уделать SB монитор :) И скорее всего - SJ монитор, который некоторые товарищи считают тру SJ монитором. А не его SB собрата. Типа SB - это просто кастрированный FB монитор. Ну, это их личное мнение, я обычно исхожу из задачи, возможности железа и возможности монитора.
Безусловно, эта возможность - не какое то изотерическое знание, и человек, часто листавший и часто листающий доки по RT, скорее всего о ней осведомлён, но, как показывает практике, когда долго не общался с RT (в целом) или XM семейством (в частности) - про неё легко забыть :) Даже у меня она (чаще всего сижу в RSX, ну а если вдруг в RT - то да, SB монитор)... хм... вылетела из головы :) Но вот возился с ДП - и подсознание пропихнуло таки инфу о ней на сознательный уровень :)
Я использую для проверки PDP2011 и того, чего я там накосячил, два основных инструмента - тесты (зашитые в ПЗУ автором, зашитые мной в ОЗУ, XXDP) и SYSGEN :) Последний вариант хорош комплексной проверкой, хотя, как показала практика - легко пропускает некоторые ошибки процессора. Впрочем, это же можно сказать и про саму RT. Тем не менее, для быстрой проверки - более менее. Вот его я и использую.
Демонстрация.
Сценарий 1. SYSGEN под SB
Код:
.IND S
.ini rk:/noq
.time
11:03:25
.$@sysgen.bld
.$@SYSGEN.MON
.ASSIGN RK5 SRC
.ASSIGN RK0 BIN
.ASSIGN RK0 MAP
.ASSIGN RK0 OBJ
.MACRO/OBJ:OBJ:KMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+KMON+KMOVLY)
.MACRO/OBJ:OBJ:RMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+USR+RMONSJ)
.MACRO/OBJ:OBJ:TBSJ SRC:(SJ+SYSGEN.CND+EDTGBL+SYSGEN.TBL)
.MACRO/OBJ:OBJ:BTSJ SRC:(SJ+SYSGEN.CND+EDTGBL+BSTRAP)
.LINK/EXE:BIN:RT11SJ.SYG/BOU:1000/PROMPT/MAP:MAP:RT11SJ OBJ:BTSJ
*OBJ:RMSJ,KMSJ,TBSJ//
Boundary section? OVLY0
.DELETE/NOQ OBJ:(BT,RM,KM,TB)SJ.OBJ
.MACRO/OBJ:OBJ:KMFB SRC:(FB+SYSGEN.CND+EDTGBL+KMON+KMOVLY)
.MACRO/OBJ:OBJ:RMFB SRC:(FB+SYSGEN.CND+EDTGBL+USR+RMONFB)
.MACRO/OBJ:OBJ:TBFB SRC:(FB+SYSGEN.CND+EDTGBL+SYSGEN.TBL)
.MACRO/OBJ:OBJ:BTFB SRC:(FB+SYSGEN.CND+EDTGBL+BSTRAP)
.LINK/EXE:BIN:RT11FB.SYG/BOU:1000/PROMPT/MAP:MAP:RT11FB OBJ:BTFB
*OBJ:RMFB,KMFB,TBFB//
Boundary section? OVLY0
.DELETE/NOQ OBJ:(BT,RM,TB,KM)FB.OBJ
.MACRO/OBJ:OBJ:KMXM SRC:(XM+SYSGEN.CND+EDTGBL+KMON+KMOVLY)
.MACRO/OBJ:OBJ:RMXM SRC:(XM+SYSGEN.CND+EDTGBL+USR+RMONFB)
.MACRO/OBJ:OBJ:SBXM SRC:(XM+SYSGEN.CND+EDTGBL+XMSUBS)
.MACRO/OBJ:OBJ:TBXM SRC:(XM+SYSGEN.CND+EDTGBL+SYSGEN.TBL)
.MACRO/OBJ:OBJ:BTXM SRC:(XM+SYSGEN.CND+EDTGBL+BSTRAP)
.LINK/EXE:BIN:RT11XM.SYG/BOU:1000/PROMPT/MAP:MAP:RT11XM OBJ:BTXM
*OBJ:RMXM,SBXM,KMXM,TBXM//
Boundary section? OVLY0
.DELETE/NOQ OBJ:(BT,RM,SB,KM,TB)XM.OBJ
.$@SYSGEN.DEV
.ASSIGN RK5 SRC
.ASSIGN RK0 BIN
.ASSIGN RK0 OBJ
.MACRO/OBJ:OBJ:TT SRC:(SYSGEN.CND+TT)
.LINK/EXE:BIN:TT.SYG OBJ:TT
.DELETE/NOQ OBJ:TT.OBJ
.MACRO/OBJ:OBJ:LD SRC:(SYSGEN.CND+LD)
.LINK/EXE:BIN:LD.SYG OBJ:LD
.DELETE/NOQ OBJ:LD.OBJ
.MACRO/OBJ:OBJ:LDX SRC:(XM+SYSGEN.CND+LD)
.LINK/EXE:BIN:LDX.SYG OBJ:LDX
.DELETE/NOQ OBJ:LDX.OBJ
.MACRO/OBJ:OBJ:VM SRC:(SYSGEN.CND+VM)
.LINK/EXE:BIN:VM.SYG OBJ:VM
.DELETE/NOQ OBJ:VM.OBJ
.MACRO/OBJ:OBJ:VMX SRC:(XM+SYSGEN.CND+VM)
.LINK/EXE:BIN:VMX.SYG OBJ:VMX
.DELETE/NOQ OBJ:VMX.OBJ
.MACRO/OBJ:OBJ:RK SRC:(SYSGEN.CND+RK)
.LINK/EXE:BIN:RK.SYG OBJ:RK
.DELETE/NOQ OBJ:RK.OBJ
.MACRO/OBJ:OBJ:RKX SRC:(XM+SYSGEN.CND+RK)
.LINK/EXE:BIN:RKX.SYG OBJ:RKX
.DELETE/NOQ OBJ:RKX.OBJ
.MACRO/OBJ:OBJ:NL SRC:(SYSGEN.CND+NL)
.LINK/EXE:BIN:NL.SYG OBJ:NL
.DELETE/NOQ OBJ:NL.OBJ
.MACRO/OBJ:OBJ:NLX SRC:(XM+SYSGEN.CND+NL)
.LINK/EXE:BIN:NLX.SYG OBJ:NLX
.DELETE/NOQ OBJ:NLX.OBJ
.time
11:12:27
Время генерации - c 11:03:25 по 11:12:27 или 00:09:02
Сценарий 1. SYSGEN под XM
Код:
.IND S
.ini rk:/noq
.time
11:13:46
.$@sysgen.bld
.$@SYSGEN.MON
.ASSIGN RK5 SRC
.ASSIGN RK0 BIN
.ASSIGN RK0 MAP
.ASSIGN RK0 OBJ
.MACRO/OBJ:OBJ:KMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+KMON+KMOVLY)
.MACRO/OBJ:OBJ:RMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+USR+RMONSJ)
.MACRO/OBJ:OBJ:TBSJ SRC:(SJ+SYSGEN.CND+EDTGBL+SYSGEN.TBL)
.MACRO/OBJ:OBJ:BTSJ SRC:(SJ+SYSGEN.CND+EDTGBL+BSTRAP)
.LINK/EXE:BIN:RT11SJ.SYG/BOU:1000/PROMPT/MAP:MAP:RT11SJ OBJ:BTSJ
*OBJ:RMSJ,KMSJ,TBSJ//
Boundary section? OVLY0
.DELETE/NOQ OBJ:(BT,RM,KM,TB)SJ.OBJ
.MACRO/OBJ:OBJ:KMFB SRC:(FB+SYSGEN.CND+EDTGBL+KMON+KMOVLY)
.MACRO/OBJ:OBJ:RMFB SRC:(FB+SYSGEN.CND+EDTGBL+USR+RMONFB)
.MACRO/OBJ:OBJ:TBFB SRC:(FB+SYSGEN.CND+EDTGBL+SYSGEN.TBL)
.MACRO/OBJ:OBJ:BTFB SRC:(FB+SYSGEN.CND+EDTGBL+BSTRAP)
.LINK/EXE:BIN:RT11FB.SYG/BOU:1000/PROMPT/MAP:MAP:RT11FB OBJ:BTFB
*OBJ:RMFB,KMFB,TBFB//
Boundary section? OVLY0
.DELETE/NOQ OBJ:(BT,RM,TB,KM)FB.OBJ
.MACRO/OBJ:OBJ:KMXM SRC:(XM+SYSGEN.CND+EDTGBL+KMON+KMOVLY)
.MACRO/OBJ:OBJ:RMXM SRC:(XM+SYSGEN.CND+EDTGBL+USR+RMONFB)
.MACRO/OBJ:OBJ:SBXM SRC:(XM+SYSGEN.CND+EDTGBL+XMSUBS)
.MACRO/OBJ:OBJ:TBXM SRC:(XM+SYSGEN.CND+EDTGBL+SYSGEN.TBL)
.MACRO/OBJ:OBJ:BTXM SRC:(XM+SYSGEN.CND+EDTGBL+BSTRAP)
.LINK/EXE:BIN:RT11XM.SYG/BOU:1000/PROMPT/MAP:MAP:RT11XM OBJ:BTXM
*OBJ:RMXM,SBXM,KMXM,TBXM//
Boundary section? OVLY0
.DELETE/NOQ OBJ:(BT,RM,SB,KM,TB)XM.OBJ
.$@SYSGEN.DEV
.ASSIGN RK5 SRC
.ASSIGN RK0 BIN
.ASSIGN RK0 OBJ
.MACRO/OBJ:OBJ:TT SRC:(SYSGEN.CND+TT)
.LINK/EXE:BIN:TT.SYG OBJ:TT
.DELETE/NOQ OBJ:TT.OBJ
.MACRO/OBJ:OBJ:LD SRC:(SYSGEN.CND+LD)
.LINK/EXE:BIN:LD.SYG OBJ:LD
.DELETE/NOQ OBJ:LD.OBJ
.MACRO/OBJ:OBJ:LDX SRC:(XM+SYSGEN.CND+LD)
.LINK/EXE:BIN:LDX.SYG OBJ:LDX
.DELETE/NOQ OBJ:LDX.OBJ
.MACRO/OBJ:OBJ:VM SRC:(SYSGEN.CND+VM)
.LINK/EXE:BIN:VM.SYG OBJ:VM
.DELETE/NOQ OBJ:VM.OBJ
.MACRO/OBJ:OBJ:VMX SRC:(XM+SYSGEN.CND+VM)
.LINK/EXE:BIN:VMX.SYG OBJ:VMX
.DELETE/NOQ OBJ:VMX.OBJ
.MACRO/OBJ:OBJ:RK SRC:(SYSGEN.CND+RK)
.LINK/EXE:BIN:RK.SYG OBJ:RK
.DELETE/NOQ OBJ:RK.OBJ
.MACRO/OBJ:OBJ:RKX SRC:(XM+SYSGEN.CND+RK)
.LINK/EXE:BIN:RKX.SYG OBJ:RKX
.DELETE/NOQ OBJ:RKX.OBJ
.MACRO/OBJ:OBJ:NL SRC:(SYSGEN.CND+NL)
.LINK/EXE:BIN:NL.SYG OBJ:NL
.DELETE/NOQ OBJ:NL.OBJ
.MACRO/OBJ:OBJ:NLX SRC:(XM+SYSGEN.CND+NL)
.LINK/EXE:BIN:NLX.SYG OBJ:NLX
.DELETE/NOQ OBJ:NLX.OBJ
.time
11:35:17
Время генерации - c 11:13:46 по 11:35:17 или 00:21:31
21-а минута против 9-ти. Почти в 2.5 раза лучше.. тьфу, то есть, хуже... то есть - смотря с чьей стороны посмотреть :) Ну, знающие товарищи быстро поймут (или просто знают) - почему??? А вот почему.
SB монитор:
Код:
.SHO MEM
Address Module Words
------- ------ -----
160000 IOPAGE 4096.
157326 RK 149.
135632 RMON 4510.
001000 ..BG.. 23757.
.
XM монитор
Код:
.SHO MEM
------- Extended Memory --------
Address Module Words Type
------- ------ ----- ----
17760000 IOPAGE 4096. PRM HDW BYP
00760000 MEMTOP
00173600 ...... 95296.
00161200 SL 2688. PVT
00160000 MCA 320. PRM
00000000 KERNEL 28672. PRM HDW
------ Low Memory -------
Address Module Words
------- ------ -----
157274 RK 162.
120054 RMON 8008.
106012 USR 2577.
001000 ..BG.. 17669.
.
Свободной памяти в SB мониторе (23757 слов) примерно в полтора раза больше, чем в XM монитора (17669 слов). Ну, на самом деле не совсем правда, так как для файловых операция периодически требуется USR, а она в SB транзитная, а в XM мониторе резидентная, но... Для компиляции исходников (а тексты RT - это серьёзный вызов программе MACRO) - результат налицо.
А теперь обещанная "эзотерика". Во первых - SYSGEN будет запущен на том же самом мониторе с тем же самым количеством доступной памяти:
Код:
.SHO MEM
------- Extended Memory --------
Address Module Words Type
------- ------ ----- ----
17760000 IOPAGE 4096. PRM HDW BYP
00760000 MEMTOP
00173600 ...... 95296.
00161200 SL 2688. PVT
00160000 MCA 320. PRM
00000000 KERNEL 28672. PRM HDW
------ Low Memory -------
Address Module Words
------- ------ -----
157274 RK 162.
120054 RMON 8008.
106012 USR 2577.
001000 ..BG.. 17669.
.
И будет запущен тот же самый SYSGEN:
Код:
.IND S
.ini rk:/noq
.time
11:46:02
.$@sysgen.bld
.$@SYSGEN.MON
.ASSIGN RK5 SRC
.ASSIGN RK0 BIN
.ASSIGN RK0 MAP
.ASSIGN RK0 OBJ
.MACRO/OBJ:OBJ:KMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+KMON+KMOVLY)
.MACRO/OBJ:OBJ:RMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+USR+RMONSJ)
.MACRO/OBJ:OBJ:TBSJ SRC:(SJ+SYSGEN.CND+EDTGBL+SYSGEN.TBL)
.MACRO/OBJ:OBJ:BTSJ SRC:(SJ+SYSGEN.CND+EDTGBL+BSTRAP)
.LINK/EXE:BIN:RT11SJ.SYG/BOU:1000/PROMPT/MAP:MAP:RT11SJ OBJ:BTSJ
*OBJ:RMSJ,KMSJ,TBSJ//
Boundary section? OVLY0
.DELETE/NOQ OBJ:(BT,RM,KM,TB)SJ.OBJ
.MACRO/OBJ:OBJ:KMFB SRC:(FB+SYSGEN.CND+EDTGBL+KMON+KMOVLY)
.MACRO/OBJ:OBJ:RMFB SRC:(FB+SYSGEN.CND+EDTGBL+USR+RMONFB)
.MACRO/OBJ:OBJ:TBFB SRC:(FB+SYSGEN.CND+EDTGBL+SYSGEN.TBL)
.MACRO/OBJ:OBJ:BTFB SRC:(FB+SYSGEN.CND+EDTGBL+BSTRAP)
.LINK/EXE:BIN:RT11FB.SYG/BOU:1000/PROMPT/MAP:MAP:RT11FB OBJ:BTFB
*OBJ:RMFB,KMFB,TBFB//
Boundary section? OVLY0
.DELETE/NOQ OBJ:(BT,RM,TB,KM)FB.OBJ
.MACRO/OBJ:OBJ:KMXM SRC:(XM+SYSGEN.CND+EDTGBL+KMON+KMOVLY)
.MACRO/OBJ:OBJ:RMXM SRC:(XM+SYSGEN.CND+EDTGBL+USR+RMONFB)
.MACRO/OBJ:OBJ:SBXM SRC:(XM+SYSGEN.CND+EDTGBL+XMSUBS)
.MACRO/OBJ:OBJ:TBXM SRC:(XM+SYSGEN.CND+EDTGBL+SYSGEN.TBL)
.MACRO/OBJ:OBJ:BTXM SRC:(XM+SYSGEN.CND+EDTGBL+BSTRAP)
.LINK/EXE:BIN:RT11XM.SYG/BOU:1000/PROMPT/MAP:MAP:RT11XM OBJ:BTXM
*OBJ:RMXM,SBXM,KMXM,TBXM//
Boundary section? OVLY0
.DELETE/NOQ OBJ:(BT,RM,SB,KM,TB)XM.OBJ
.$@SYSGEN.DEV
.ASSIGN RK5 SRC
.ASSIGN RK0 BIN
.ASSIGN RK0 OBJ
.MACRO/OBJ:OBJ:TT SRC:(SYSGEN.CND+TT)
.LINK/EXE:BIN:TT.SYG OBJ:TT
.DELETE/NOQ OBJ:TT.OBJ
.MACRO/OBJ:OBJ:LD SRC:(SYSGEN.CND+LD)
.LINK/EXE:BIN:LD.SYG OBJ:LD
.DELETE/NOQ OBJ:LD.OBJ
.MACRO/OBJ:OBJ:LDX SRC:(XM+SYSGEN.CND+LD)
.LINK/EXE:BIN:LDX.SYG OBJ:LDX
.DELETE/NOQ OBJ:LDX.OBJ
.MACRO/OBJ:OBJ:VM SRC:(SYSGEN.CND+VM)
.LINK/EXE:BIN:VM.SYG OBJ:VM
.DELETE/NOQ OBJ:VM.OBJ
.MACRO/OBJ:OBJ:VMX SRC:(XM+SYSGEN.CND+VM)
.LINK/EXE:BIN:VMX.SYG OBJ:VMX
.DELETE/NOQ OBJ:VMX.OBJ
.MACRO/OBJ:OBJ:RK SRC:(SYSGEN.CND+RK)
.LINK/EXE:BIN:RK.SYG OBJ:RK
.DELETE/NOQ OBJ:RK.OBJ
.MACRO/OBJ:OBJ:RKX SRC:(XM+SYSGEN.CND+RK)
.LINK/EXE:BIN:RKX.SYG OBJ:RKX
.DELETE/NOQ OBJ:RKX.OBJ
.MACRO/OBJ:OBJ:NL SRC:(SYSGEN.CND+NL)
.LINK/EXE:BIN:NL.SYG OBJ:NL
.DELETE/NOQ OBJ:NL.OBJ
.MACRO/OBJ:OBJ:NLX SRC:(XM+SYSGEN.CND+NL)
.LINK/EXE:BIN:NLX.SYG OBJ:NLX
.DELETE/NOQ OBJ:NLX.OBJ
.time
11:53:23
.
Время генерации - c 11:46:02 по 11:53:23 или 00:07:21
00:07:21 против 00:09:02. Да, не в два с половиной раза лучше, но.. XM монитор (даже не его более лёгкий брат XB) более чем ощутимо сделал SB :). Причём использовались вполне себе стандартные программы (MACRO, LINK ну и ещё мелькают IND и PIP), а не специально написанные под XM и не запускающиеся под SB программы :) То есть - щастье всем и пусть никто не уйдёт обиженным ((с) почти братья Стругацкие) почти даром :) Почти - потому что программа всё таки должна соблюдать определённые правила :) Ну или программист при её написании :)
И всё, что мне понадобилось - выдать команду SET RUN VBGEXE перед запуском батника :)
Ну а дальше - магия ДП и программистов фирмы DEC :)
И что же произошло? :) Поскольку показать распределение памяти при работе с этой хитрой настройкой не получится, придётся обходным путём увидеть - сколько памяти доступно программе. Поможет программа RESORC.
Программа запущена в "реальной" моде:
Код:
.R RESORC /J
Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 106010 122206
.
Если посмотреть SHO MEM для XM монитора - видно, что всё ок - RESORC доступна память доя 106010, а с адреса 106012 располагается USR
Программа запущена в "виртуальной" моде:
Код:
.VRUN RESORC /J
Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 157776 122206
.
RESORC принудительно запущена в виртуальном адресном пространстве - и её доступны уже 56 кб памяти, а не 35, как при запуске в режиме ядра и не 46, как при запуске под SB монитором :) Не пытайтесь смотреть распределение памяти в виртуальном адресном пространстве (опция /x) - программа пытается забраться в служебные таблица монитора... которые ей недоступны (как раз тот самый пример несоблюдения правил программой :) )
Знайте, а не только любите свой комп и софт под него - и вы сможете выжать из него чуть больше, а остальным это будет казаться тайной магией :) Ключевое слово - знайте :)
Ну и кстати - это ещё и тест корректности работы ДП :)
-
Что нужно, что бы найти ошибку... чуть не сказал - в программе :) В тексте прошивки? Вдумчивое чтение документации и пристально рассматривание текста :)
Результат:
Код:
000042 000000 000000 000000
@DK0
DEVICE LP000: NOT IN CONFIGURATION
DEVICE DL000: NOT IN CONFIGURATION
DEVICE DL001: NOT IN CONFIGURATION
DEVICE DL002: NOT IN CONFIGURATION
DEVICE DL003: NOT IN CONFIGURATION
DEVICE DR000: NOT IN CONFIGURATION
DEVICE DR001: NOT IN CONFIGURATION
DEVICE DR002: NOT IN CONFIGURATION
DEVICE DR003: NOT IN CONFIGURATION
DEVICE DR004: NOT IN CONFIGURATION
DEVICE DR005: NOT IN CONFIGURATION
DEVICE DR006: NOT IN CONFIGURATION
DEVICE DR007: NOT IN CONFIGURATION
DEVICE DU000: NOT IN CONFIGURATION
DEVICE DU001: NOT IN CONFIGURATION
DEVICE DU002: NOT IN CONFIGURATION
DEVICE DU003: NOT IN CONFIGURATION
DEVICE MM000: NOT IN CONFIGURATION
DEVICE MM001: NOT IN CONFIGURATION
DEVICE MM002: NOT IN CONFIGURATION
DEVICE MM003: NOT IN CONFIGURATION
DEVICE MM004: NOT IN CONFIGURATION
DEVICE MM005: NOT IN CONFIGURATION
DEVICE MM006: NOT IN CONFIGURATION
DEVICE MM007: NOT IN CONFIGURATION
DEVICE MU000: NOT IN CONFIGURATION
DEVICE TT001: NOT IN CONFIGURATION
DEVICE TT002: NOT IN CONFIGURATION
DEVICE TT003: NOT IN CONFIGURATION
DEVICE TT004: NOT IN CONFIGURATION
DEVICE TT005: NOT IN CONFIGURATION
DEVICE TT006: NOT IN CONFIGURATION
DEVICE TT007: NOT IN CONFIGURATION
DEVICE TT010: NOT IN CONFIGURATION
DEVICE TT011: NOT IN CONFIGURATION
DEVICE TT012: NOT IN CONFIGURATION
DEVICE TT013: NOT IN CONFIGURATION
DEVICE TT014: NOT IN CONFIGURATION
DEVICE TT015: NOT IN CONFIGURATION
DEVICE TT016: NOT IN CONFIGURATION
DEVICE TT017: NOT IN CONFIGURATION
DEVICE TT020: NOT IN CONFIGURATION
DEVICE TT021: NOT IN CONFIGURATION
DEVICE TT022: NOT IN CONFIGURATION
RSX-11M V4.8 BL70 124.K MAPPED
>RED DK:=SY:
>RED DK:=LB:
>MOU DK:RSXM70
>@DK:[1,2]STARTUP
>* Please enter time and date (HH:MM DD-MMM-YY) [S]: 1:39 17-JAN-99
>TIME 1:39 17-JAN-99
>* ENTER LINE WIDTH OF THIS TERMINAL [D D:132.]:
>SET /BUF=TI:132.
>@ <EOF>
>SET /VT52=TI:
>
- - - Добавлено - - -
Код:
RSX-11M V4.8 BL70 (RSX11M) 124K 17-JAN-99 01:42:17
TASK= *IDLE* FREE= SY0:230. DK2:DMO
DK1:DMO DK3:DMO PARS
POOL=9994.:10044.:6.
9994.:10044.:6. EXCOM1:C
EXCOM2:C
IN: E E L T DDM D M M P F R P . LDRPAR:T
4 X X D T LRU U M C U C C M . TTPAR :T
20K C C R : ::: : : R C S T T . DRVPAR:D
OUT: O O . . O R . . R SYSPAR:T
0 M M . . M E . . M PUCOM :C
0K 1 2 . . S . . D FCSRES:C
!--!-!>=======))))==))-->!-------!==]->----- RCTPAR:T
0*******7*******15******23******31******38******46******54****** GEN :D
E-------P-----------C--C-TT-------D------T--CC-------T--D-------
----------------------------------------------------------------
62******69******77******85******93******100*****108*****116*****
> <--------->
F ERRSEQ
1 0.
1
A
C
P
- - - Добавлено - - -
Код:
>DEV DK:
DK0: Public Mounted Loaded Label=RSXM70
DK1: Loaded
DK2: Loaded
DK3: Loaded
DK4: Loaded
DK5: Loaded
DK6: Loaded
DK7: Loaded
>INS $FLX
>FLX DK7:/RT/DI
Directory DK7:
17-Jan-99
SWAP .SYS 28. 31-Oct-98
RT11SB.SYS 99. 9-Jan-20
RT11FB.SYS 107. 9-Jan-20
NL .SYS 2. 10-Jan-20
VM .SYS 3. 12-Jan-21
LDX .SYS 11. 2-Oct-20
RT11XB.SYS 114. 10-Jan-20
RT11XM.SYS 123. 9-Jan-20
NLX .SYS 2. 10-Jan-20
VMX .SYS 3. 10-Jan-20
< Unused > 11.
SANS04.CND 4. 9-Jan-20
SANS04.ANS 8. 9-Jan-20
SANS04.BLD 3. 9-Jan-20
SANS04.MON 8. 9-Jan-20
SANS04.DEV 4. 9-Jan-20
SANS04.TBL 5. 9-Jan-20
RT11XB.MAP 36. 10-Jan-20
RT11SB.MAP 34. 9-Jan-20
RT11FB.MAP 35. 9-Jan-20
RT11XM.MAP 38. 9-Jan-20
SL .SYS 17. 31-Oct-98
SLX .SYS 20. 31-Oct-98
ZA .SYS 4. 21-Jan-20
ZB .SYS 4. 21-Jan-20
ZC .SYS 4. 21-Jan-20
ZD .SYS 4. 21-Jan-20
ZE .SYS 4. 21-Jan-20
ZF .SYS 4. 21-Jan-20
ZAX .SYS 4. 21-Jan-20
ZBX .SYS 4. 21-Jan-20
ZCX .SYS 4. 21-Jan-20
ZDX .SYS 4. 21-Jan-20
ZEX .SYS 4. 21-Jan-20
ZFX .SYS 4. 21-Jan-20
SYSMAC.SML 92. 31-Oct-98
SYSLIB.OBJ 84. 31-Oct-98
ODT .OBJ 8. 31-Oct-98
VDT .OBJ 8. 31-Oct-98
SYSTEM.MLB 148. 31-Oct-98
EDTL .MLB 11. 31-Oct-98
PIP .SAV 30. 31-Oct-98
DESS .SAV 20. 4-Nov-93
DUP .SAV 52. 31-Oct-98
IND .SAV 58. 31-Oct-98
RESORC.SAV 35. 31-Oct-98
EDIT .SAV 19. 31-Oct-98
KED .SAV 85. 31-Oct-98
KEX .SAV 72. 31-Oct-98
MACRO .SAV 63. 31-Oct-98
CREF .SAV 6. 31-Oct-98
LINK .SAV 59. 31-Oct-98
LIBR .SAV 24. 31-Oct-98
SRCCOM.SAV 26. 31-Oct-98
BINCOM.SAV 25. 31-Oct-98
SLP .SAV 13. 31-Oct-98
SIPP .SAV 21. 31-Oct-98
PAT .SAV 11. 31-Oct-98
HELP .SAV 161. 31-Oct-98
FILEX .SAV 22. 31-Oct-98
DUMP .SAV 10. 31-Oct-98
BUP .SAV 68. 31-Oct-98
LET .SAV 6. 31-Oct-98
UCL .SAV 16. 31-Oct-98
SETUP .SAV 43. 31-Oct-98
VTCOM .SAV 24. 31-Oct-98
DATIME.SAV 4. 31-Oct-98
DATIME.MAC 23. 31-Oct-98
DATIME.COM 3. 31-Oct-98
SPLIT .SAV 3. 31-Oct-98
VBGEXE.SAV 18. 31-Oct-98
TERMID.SAV 4. 31-Oct-98
TRANSF.SAV 16. 31-Oct-98
TRANSF.TSK 76. 31-Oct-98
TRANSF.EXE 45. 31-Oct-98
MDUP .SAV 22. 31-Oct-98
MBOOT .BOT 1. 31-Oct-98
MBOT16.BOT 1. 31-Oct-98
MSBOOT.BOT 4. 31-Oct-98
MDUP .AI 72. 31-Oct-98
MDUP .MM 72. 31-Oct-98
MDUP .MS 72. 31-Oct-98
MDUP .MT 72. 31-Oct-98
MDUP .MU 72. 31-Oct-98
MSCPCK.SAV 4. 31-Oct-98
DBGSYM.SAV 10. 31-Oct-98
MONMRG.SAV 14. 31-Oct-98
T0007 .COM 1. 31-Jan-20
F77NER.OBJ 1. 27-Jun-85
STRTFB.COM 1. 2-Feb-20
STRTXB.COM 1. 2-Feb-20
STRTXM.COM 1. 2-Feb-20
NTD3E .SAV 3. 15-Jul-12
CPALL .COM 1. 2-Feb-20
TD .SAV 3. 15-Jul-12
WQ .SYS 4. 1-Apr-20
WS .SYS 4. 1-Apr-20
WQX .SYS 4. 1-Apr-20
TSY02 .COM 1. 23-Feb-01
TRK .COM 1. 3-Mar-20
TRK2 .COM 1. 5-Mar-20
TEST .COM 1. 5-Mar-20
TRK01 .COM 1. 15-Mar-20
TRK01B.COM 1. 15-Mar-20
RK .SYS 3. 20-Mar-20
RK .OBJ 3. 20-Mar-20
RKX .OBJ 4. 20-Mar-20
RKX .SYS 3. 20-Mar-20
TRK3 .COM 1. 21-Mar-20
WSX .SYS 4. 1-Apr-20
A0007 .COM 1. 1-Apr-20
DD .COM 1. 1-Apr-20
BOOZA2.SAV 2. 8-Apr-20
BOOZF1.SAV 3. 7-Feb-20
DIR .SAV 20. 31-Oct-98
BOOZA1.SAV 3. 8-Apr-20
T00NL .COM 1. 12-Apr-20
TEST .SAV 18. 12-Apr-20
TEST2 .SAV 2. 21-Apr-20
BOOZF0.SAV 3. 7-Feb-20
BOOZA0.SAV 3. 8-Apr-20
TEST .MAC 1. 12-Apr-20
LD .SYS 11. 2-Oct-20
< Unused > 7.
DRK .COM 1. 13-Apr-20
TEST2 .MAC 1. 21-Apr-20
TEST2 .OBJ 1. 21-Apr-20
TSY05 .COM 1.
TSY05B.COM 1. 21-May-20
< Unused > 3.
DAY .SAV 4. 13-Apr-13
DHRY .SAV 25. 8-Feb-15
YPTCB0.BIN 8. 22-May-20
DGTGB1.BIC 12. 22-May-20
TDIR .COM 1. 11-Jun-20
TRK5 .COM 1.
TEST3 .BAK 1.
F77CVF.OBJ 4. 27-Jun-85
F77EIS.OBJ 2. 27-Jun-85
F77RAN.OBJ 1. 27-Jun-85
TEST3 .MAC 1.
TEST3 .OBJ 35.
TEST3 .SAV 34.
TEST .CCC 1.
FORLIB.OBJ 134. 23-Jun-90
F77 .SAV 340. 27-Jun-85
F77XM .SAV 341. 27-Jun-85
F77COM.MSG 15. 5-Feb-85
F77MAP.OBJ 32. 27-Jun-85
SHORT .OBJ 1. 27-Jun-85
F77DWA.MAC 2. 6-Jun-85
< Unused > 1.
WHTSTN.FOR 10. 23-Jun-20
HXX .SYS 6. 12-Sep-20
HX .SYS 6. 12-Sep-20
< Unused > 1.
W .COM 1. 23-Jun-90
WHTSTN.LST 26. 23-Jun-90
VM .COM 1.
< Unused > 451.
WHTSTN.OBJ 13. 23-Jun-90
WHTSTN.SAV 31. 23-Jun-90
SPEED .SAV 20. 8-Sep-20
SPEED3.SAV 8. 20-Sep-20
TEST .OBJ 18.
< Unused > 351.
825. Free blocks
Total of 3937. blocks in 159. files
>PIP [*,*]/LI
MCR -- Task not in system
>INS $PIP
>PIP [*,*]/LI
Directory DK0:[1,51]
17-JAN-99 01:53
BRUSYS.SYS;1 434. C 09-OCT-98 18:13
BRUSYS.STB;1 24. 09-OCT-98 18:13
Total of 458./458. blocks in 2. files
Directory DK0:[1,1]
17-JAN-99 01:53
FCSRES.STB;1 12. 13-JAN-99 18:18
KITIDENT.DAT;1 1. 09-OCT-98 17:53
FCSRES.TSK;1 35. C 13-JAN-99 17:40
FCSFSL.TSK;1 34. C 13-JAN-99 17:40
FCSFSL.STB;1 2. 13-JAN-99 17:40
Total of 84./84. blocks in 5. files
Directory DK0:[1,2]
17-JAN-99 01:53
STARTUP.CMD;1 7. 09-OCT-98 06:25
QIOSYM.MSG;1 29. 09-OCT-98 17:54
Total of 36./36. blocks in 2. files
Directory DK0:[1,3]
17-JAN-99 01:53
Total of 0./0. blocks in 0. files
Directory DK0:[1,4]
17-JAN-99 01:53
Total of 0./0. blocks in 0. files
Directory DK0:[1,6]
17-JAN-99 01:53
Total of 0./0. blocks in 0. files
Directory DK0:[1,7]
17-JAN-99 01:53
Total of 0./0. blocks in 0. files
Directory DK0:[1,54]
17-JAN-99 01:53
SGNPARM.CMD;1 3. 09-OCT-98 06:25
RSX11M.TSK;1 130. C 13-JAN-99 17:38
RSX11M.STB;1 14. 13-JAN-99 17:38
EXCOM1.TSK;1 15. C 13-JAN-99 17:38
EXCOM1.STB;1 5. 13-JAN-99 17:38
EXCOM2.TSK;1 9. C 13-JAN-99 17:38
EXCOM2.STB;1 3. 13-JAN-99 17:38
LDR.TSK;1 5. C 13-JAN-99 17:38
RSX11M.SYS;1 498. C 13-JAN-99 17:40
TTDRV.TSK;1 23. C 13-JAN-99 17:40
TTDRV.STB;1 6. 13-JAN-99 17:40
DKDRV.TSK;1 3. C 13-JAN-99 17:40
DKDRV.STB;1 1. 13-JAN-99 17:40
DLDRV.TSK;1 4. C 13-JAN-99 17:40
DLDRV.STB;1 1. 13-JAN-99 17:40
DRDRV.TSK;1 6. C 13-JAN-99 17:40
DRDRV.STB;1 1. 13-JAN-99 17:40
DUDRV.TSK;1 11. C 13-JAN-99 17:40
DUDRV.STB;1 2. 13-JAN-99 17:40
PUCOM.TSK;1 6. C 13-JAN-99 17:40
PUCOM.STB;1 1. 13-JAN-99 17:40
MUDRV.TSK;1 10. C 13-JAN-99 17:40
MUDRV.STB;1 2. 13-JAN-99 17:40
LPDRV.TSK;1 4. C 13-JAN-99 17:40
LPDRV.STB;1 1. 13-JAN-99 17:40
MMDRV.TSK;1 7. C 13-JAN-99 17:40
MMDRV.STB;1 1. 13-JAN-99 17:40
ACNT.TSK;1 62. C 13-JAN-99 17:41
ACS.TSK;1 7. C 13-JAN-99 17:41
BOO.TSK;1 33. C 13-JAN-99 17:41
BRO.TSK;1 27. C 13-JAN-99 17:41
BYE.TSK;1 24. C 13-JAN-99 17:41
DMO.TSK;1 15. C 13-JAN-99 17:41
FCPLRG.TSK;1 76. C 13-JAN-99 17:41
HEL.TSK;1 57. C 13-JAN-99 17:41
ICP.TSK;1 144. C 13-JAN-99 17:41
ICX.TSK;1 146. C 13-JAN-99 17:41
INI.TSK;1 58. C 13-JAN-99 17:41
INS.TSK;1 60. C 13-JAN-99 17:41
LOA.TSK;1 29. C 13-JAN-99 17:41
MCRMU.TSK;1 33. C 13-JAN-99 17:41
SYS.TSK;1 125. C 13-JAN-99 17:41
MOU.TSK;1 46. C 13-JAN-99 17:42
PMD.TSK;1 22. C 13-JAN-99 17:42
PMT.TSK;1 16. C 13-JAN-99 17:42
RCT.TSK;1 13. C 13-JAN-99 17:42
RMD.TSK;1 107. C 13-JAN-99 17:42
SAV.TSK;1 79. C 13-JAN-99 17:42
SHF.TSK;1 15. C 13-JAN-99 17:42
SHUTUP.TSK;1 20. C 13-JAN-99 17:42
TKN.TSK;1 18. C 13-JAN-99 17:42
UFD.TSK;1 8. C 13-JAN-99 17:42
UNL.TSK;1 23. C 13-JAN-99 17:42
SYSVMR.CMD;1 3. 13-JAN-99 17:42
BAD.TSK;1 53. C 13-JAN-99 17:53
BRU.TSK;1 154. C 13-JAN-99 17:53
CFL.TSK;1 100. C 13-JAN-99 17:53
CMP.TSK;1 24. C 13-JAN-99 17:53
CRF.TSK;1 24. C 13-JAN-99 17:53
DMP.TSK;1 42. C 13-JAN-99 17:53
EDI.TSK;1 41. C 13-JAN-99 17:53
EDT.TSK;1 214. C 13-JAN-99 17:53
FLX.TSK;1 97. C 13-JAN-99 17:53
FMT.TSK;1 70. C 13-JAN-99 17:53
FTB.TSK;1 73. C 13-JAN-99 17:53
IOX.TSK;1 86. C 13-JAN-99 17:53
LBR.TSK;1 50. C 13-JAN-99 17:53
MAC.TSK;1 72. C 13-JAN-99 17:53
PAT.TSK;1 23. C 13-JAN-99 17:53
PIP.TSK;1 54. C 13-JAN-99 17:54
RPT.TSK;1 138. C 13-JAN-99 17:54
SLP.TSK;1 25. C 13-JAN-99 17:54
TKB.TSK;1 164. C 13-JAN-99 17:54
VFY.TSK;1 37. C 13-JAN-99 17:54
VMR.TSK;1 165. C 13-JAN-99 17:54
ZAP.TSK;1 28. C 13-JAN-99 17:54
Total of 3772./3772. blocks in 76. files
Grand total of 4350./4350. blocks in 85. files in 8. directories
>
>INS $BOO
INS -- Task name already in use
>BOO [1,51]BRUSYS
RSX-11M/RSX-11M-PLUS STANDALONE COPY SYSTEM V4.8
RSX-11M/RSX-11M-PLUS Standalone Configuration and Disk Sizing Program
Valid switches are:
/CSR=nnnnnn to change the default device CSR
/VEC=nnn to change the default device vector
/FOR=n to change the default magtape formatter number
/DEV to list all default device CSR and vectors
Enter first device: /DEC\C\V
Device CSR Vector CSR Status
------ ------ ------ ----------
DB 176700 254 Not Present
DK 177404 220 Present
DL 174400 160 Not Present
DM 177440 210 Not Present
DP 176714 300 Not Present
DR 176300 150 Not Present
DU 172150 154 Not Present
MM FOR=0 172440 330 Not Present
MS 172522 224 Not Present
MT 160000 320 Not Present
MU 174500 260 Not Present
Enter first device:
- - - Добавлено - - -
Безусловно, диски RK05 достаточно мелкие. В перспективе будут ещё контроллеры RL11, RH11 , RH70 и нативный контроллер SD карты. Да, под нативный контроллер нужно будет написать драйвера, но сложности особой не вижу.
Пока на очереди UMR и проверка других вариантов ДП в работе, контроллер SDRAM (с которого, собственно и началась большая переделка кода примерно года два с половиной назад) и причёска кода :)
- - - Добавлено - - -
А, да, забыл - первыми на очереди стоят исправление одной ошибки в процессоре и, возможно, одной ошибки (я переделал, но из за ошибки процессоре проверить тестом не могу) в модуле последовательного порта. Ну и генерация процессора PDP-11/34 с FPP и проверка - нет ли проблем в нём - всё таки много чего переделал. То есть что бы все известные мне тесты PDP-11 (7 штук) и тест памяти проходили БЕЗ ошибок
-
За исключением одного момента (ниже) известные мне тесты для PDP-11/34 (FKAA?? - тест базовых команд, FKAB?? - тест прерываний, FKAC?? - тест EIS, FFPA??-FFPB??-FFPC?? - тесты FPP, FKTH?? - тест ДП и ZQMC?? - тест памяти) проходят все.
Код:
000042 000000 000000 000000
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKAA??
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
000042 000000 000500 177777
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKAB??
000042 000001 000464 177777
@L 13714
@E 013714 001031
@D 431
@L 200
@S
END OF DFKAB
END OF DFKAB
END OF DFKAB
END OF DFKAB
000042 000001 000500 177777
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKAC??
END PASS##
END PASS##
END PASS##
END PASS##
000042 000000 000600 000404
@R
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FFPA??
DFFPA, FP11-A 11/34 FPP DIAGNOSTIC PART 1
END PASS # 1 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 2 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 3 TOTAL ERRORS SINCE LAST REPORT 0
000042 105241 001100 003200
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FFPB??
DFFPB, FP11-A 11/34 FPP DIAGNOSTIC PART 2
END PASS # 1 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 2 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 3 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 4 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 5 TOTAL ERRORS SINCE LAST REPORT 0
000042 000000 001066 000010
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FFPC??
FP11A, 11/34 FPP, DIAGNOSTIC PART 3
END PASS # 1 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 2 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 3 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 4 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 5 TOTAL ERRORS SINCE LAST REPORT 0
000042 000000 001074 105252
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKTH??
MD-11-DFKTH-A 11/34 MEMORY MGMT. DIAG.
END PASS # 1 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 2 TOTAL ERRORS SINCE LAST REPORT 0
END PASS # 3 TOTAL ERRORS SINCE LAST REPORT 0
000042 000000 001100 172316
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)
TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R ZQMC??
MAINDEC-11-DZQMC-B
KT11 (MEMORY MANAGEMENT) AVAILABLE
MEMORY MAP:
FROM 000000 TO 757777
NO PARITY REGISTERS FOUND
PROGRAM RELOCATED TO 720000##
PROGRAM RELOCATED TO 000000##
END PASS # 1##
PROGRAM RELOCATED TO 720000##
PROGRAM RELOCATED TO 000000##
END PASS # 2##
000042 000060 001076 017777
@DK0
RSX-11M V4.8 BL70 124.K MAPPED
>RED DK:=SY:
>RED DK:=LB:
>MOU DK:RSXM70
>@DK:[1,2]STARTUP
>* Please enter time and date (HH:MM DD-MMM-YY) [S]: ^Z
>@ <EOF>
>RUN SHUTUP
RSX11M SHUT DOWN PROGRAM
Enter minutes to wait before shutdown:
OK to shutdown? [Y/N]:
OK to shutdown? [Y/N]: Y
All further logins are disabled
29-APR-74 00:00 System is now shutting down -- RSX11M
@LB:[1,2]SHUTUP
...AT. -- Command file open error
@LB:[1,2]SHUTUP
>
DMO DK0:/DEV
DMO -- System disk being dismounted
DMO -- SYSTEM dismounted from DK0: *** Final dismount initiated ***
00:00:46 *** DK0: -- Dismount complete
>
SHUTUP operation complete
Не совсем понятный момент.
Тест FKAB??, подтест 107
Проверка того, что RESET уходит во внешний мир и сбрасывает, в частности, бит – Прерывание разрешено у всех устройств.
Тест выполняет следующие команды:
Код:
MOV #100, @#177560
MOV #100, @#177564
RESET
После чего проверяет, что оба бита разрешения прерывания сброшены.
Что происходит.
Поскольку передатчик готов, разрешение прерывания моментально (да да, знаю, не моментально, а ОЧЕНЬ быстро) выставляет запрос на прерывание. То есть запись в 177564 ещё не снята, а запрос уже.
Что приводит к тому, что после завершения второй команды MOV, но ДО следующей команды RESET (приоритет у проца в этот момент 0) проц реагирует на запрос прерывания. А у теста вектор никак не настроен, точнее, настройка как на всех неиспользуемых векторах - .WORD .+2, 0 – то есть он не ожидает прерывания.
Упс.
По докам я не понял – какое поведение правильное – должна ли выполнится хотя бы ещё одна команда после второго MOV (более обще – сразу после разрешения прерывания) или нет.
По тому, что видел в теме “Особенности процессоров и устройств архитектуры PDP-11. Тесты. Диагностика.” на zx-pk – проц таки успевает выполнить ещё одну команду.
До прояснения ситуации оставляю пока всё как есть в этом моменте.
Дальше - UMR