Patron, Честно говоря я не до конца всё понимаю. Просто прогнал тест SPEED.
Результат на адаптере шины 376тыс. оп./сек рег-рег и 176тыс. оп./сек рег-пам.
На эмуляторе 184 и 88.
Частота на обоих 5,3Мгц.
Хотя адаптер медленнее по загрузке.
Это потому что летняя и осенняя версии эмулятора ДВК дефектные - там частота прерываний таймера платы МС1201 при работе с процессором 1801ВМ1 не 50 Гц, а 100 Гц.
Если взять на замену pdp11.exe из свежего комплекта адаптера МПИ ( который выложен здесь сегодня ) - там эта ошибка уже исправлена.
Patron, Ещё вопрос, как правильно задействовать модель процессора ещё и на контроллере MY.
Последний раз редактировалось MiX; 23.11.2015 в 01:01.
Наверное так.
Чтобы заменить в MY\MY.cfg абстрактный процессор на адаптер МПИ с подключенной МПИ-моделью процессора - надо или скопировать файл MPI_module.em из каталога MODULES\ в каталог MY\, или прописать в описании модуля MPI_module полный путь к файлу MPI_module.em в каталоге MODULES\
Т.е. скопировать и написать так:
Или не копировать и написать (например) так:Код:[modules] MPI_module = MPI_module.em
Код:[modules] MPI_module = G:\FTP\DVK1+MPI\MODULES\MPI_module.em
После чего внести следующие дополнительные правки:
Код:[objects] MY_CPU = MPI_module:MPI_Adapter VM1 = MPI_module:MPI_1801VM1 [links] MY_CPU + VM1
Чтобы выводить листинг состояний шины - надо направить его на какую-то консоль и включить режим дизассемблирования.
Код:[links] MY_CPU [DisAsm] > Debug [MY_CPU.ini] InitialStateOf[DisAsm] = 1
Есть ещё один момент, что эмулятор платы MY_Board в текущем варианте вместо сигнала EVNT выставляет IRQ и передаёт вектор 0100, но каких-то проблем из-за этого быть не должно.
...
Сейчас проверил - всё работает, но адаптер при первом использовании обновлённого конфига MY\MY.cfg сообщил о нескольких сбоях синхронизации дизассемблера - на эмуляцию это не влияет ( и даже не влияет на листинг состояний шины ), но в моменты сбоев синхронизации названия выполняемых процессором действий в листинге дизассемблера могут не совпадать с действиями, реально выполненными МПИ-моделью.
...
Ещё интересный момент - первый вариант описания модуля сработал даже без копирования файла модуля MPI_module.em из каталога MODULES\ в каталог MY\ :
Возможно сыграло роль то, что модуль уже был загружен родительским конфигом.Код:[modules] MPI_module = MPI_module.em
Последний раз редактировалось Patron; 23.11.2015 в 02:11.
как всё сложно,offtop
целый язык программирования уже получается. Похоже даже защита от коллизий требуется? ))) А все варианты возможных CFG вряд ли автор даже сам сможет подробно рассмотреть в разумном по объёму справочном тексте. Или я сгущаю краски? Или всё будет и дальше усложняться как снежный ком?[свернуть]
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Patron, Выложите рабой конфиг пожалуйста. У меня после набора 172140.....итд G вываливается 000002.
Конфиг такой:
MY\MY.cfg
Код:; ; pdp11 emulator virtual device config file. ; [export] BusBridge (socket) {PDP11A16} VP1-128 (interface) [StorageMediaUserInterface] VP1-128 (interface) [StorageDriveInterface] [modules] Ядро = Main_module.em CPU_module = CPU11_module.em DSK_module = DSK_module.em Port_module = Port_module.em Terminal_module = Terminal_module.em ;;MPI_module = G:\FTP\DVK1+MPI\MODULES\MPI_module.em MPI_module = MPI_module.em [objects] Debug = Ядро:Console MY_bus = Ядро:PDP11A16 ;;MY_CPU = CPU_module:1801VM1 MY_CPU = MPI_module:MPI_Adapter VM1 = MPI_module:MPI_1801VM1 MYBoard = CPU_module:MY_Board BusBridge = CPU_module:MY_BusBridge VP1-128 = DSK_module:VP1-128 Power_Button = Ядро:SB_StateFlashButton MY0_Button = Ядро:SB_DriveButton MY1_Button = Ядро:SB_DriveButton MY2_Button = Ядро:SB_DriveButton MY3_Button = Ядро:SB_DriveButton [links] MY_bus & MY_CPU | MYBoard | VP1-128 MY_CPU + VM1 MY_CPU [DebugOut] > Debug MYBoard > BusBridge BusBridge [Power] > MY_bus [Power] Config + Power_Button + MY_bus Config + MY0_Button + VP1-128 Config + MY1_Button + VP1-128 Config + MY2_Button + VP1-128 Config + MY3_Button + VP1-128 ; === INI SECTIONS === [MY_CPU.ini] CPU_Frequency_KHz = 4000 CPU_SpeedLimit_KIPS = True DisAsmBottomAddr = 0 DisAsmTopAddr = 0177777 InitialStateOf[DisAsm] = 0 SaveChangesFor[DisAsm] = 0 InitialStateOf[StepMode]=0 SaveChangesFor[StepMode]=0 MaxLoopCommandsToHide=32 CPU_Type=VM1A Show_DAsm=Yes Show_CLC1=No Show_CLC0=Yes Show_nCLK=No DisAsmStart_nCLK=0 DisAsmStop__nCLK=0 [MYBoard.ini] RAM_Latency_NS = 1000 ROM_Latency_NS = 250 ROM_DataFile = 255.dat ;; ROM_DataFile = 091.dat ;; ROM_DataFile = 092.dat ;; ROM_DataFile = 093.dat SEL1_Data = 010002 [MY_bus.ini] InitialStateOf[Pause] =0 SaveChangesFor[Pause] =0 InitialStateOf[Power] =1 SaveChangesFor[Power] =0 InitialStateOf[Reset] =0 SaveChangesFor[Reset] =0 InitialStateOf[HALT] =0 SaveChangesFor[HALT] =0 InitialStateOf[Timer] =1 SaveChangesFor[Timer] =0 [Config.ini] ExtendedStartLog=0 InitialStateOf[StatusBar]=1 SaveChangesFor[StatusBar]=0 InitialStateOf[ControlBar]=0 SaveChangesFor[ControlBar]=0 InitialStateOf[Log]=0 SaveChangesFor[Log]=0 RunEmulationInParentThread=0 ActiveWindowHandle= ActiveConfigID= [Debug.ini] TabTitle ="" InitialStateOf[StatusBar]=0 SaveChangesFor[StatusBar]=0 InitialStateOf[ControlBar]=0 SaveChangesFor[ControlBar]=0 InitialStateOf[Log]=0 SaveChangesFor[Log]=0 DumpMode = 1 LeftDumpSeparator=« RightDumpSeparator=» SeparateWindow_X0_px=0 SeparateWindow_Y0_px=0 SeparateWindow_DX_px=800 SeparateWindow_DY_px=600 InitialStateOf[SeparateWindow]=0 SaveChangesFor[SeparateWindow]=1 PrinterMode=0 [Power_Button.ini] SB_Part_Data = nPosition[1] | nPriority[0] | bHidden[0] TextFieldWidth_Px = 0 TextFieldText = ButtonPushMode = 2 IsInverted = 0 ButtonON_Text = "Power" ButtonOFF_Text = "Power" ButtonWidth = 100 ButtonHeight = 18 ButtonFontSize = 12 ButtonFontWeight = 600 StateName = "Power" PushedButton_Text_X_Offset_Px = 1 PushedButton_Text_Y_Offset_Px = 2 PoppedButton_Text_X_Offset_Px = 0 PoppedButton_Text_Y_Offset_Px = 1 ButtonON_TextColor = 0,0,0 ButtonOFF_TextColor = 0,0,0 ButtonON_Background = 160,205,160 ButtonOFF_Background = 1,0,0 Is_PoppedButton_Border_ButtonLike = 1 Is_PushedButton_Border_ButtonLike = 1 DoCenterAlignButtonText = 1 LightsOFF_StateName=Power [MY0_Button.ini] SB_Part_Data=nPosition[2] | nPriority[2] | bHidden[0] Unit_Number=0 [MY1_Button.ini] SB_Part_Data=nPosition[3] | nPriority[2] | bHidden[0] Unit_Number=1 [MY2_Button.ini] SB_Part_Data=nPosition[4] | nPriority[2] | bHidden[0] Unit_Number=2 [MY3_Button.ini] SB_Part_Data=nPosition[5] | nPriority[2] | bHidden[0] Unit_Number=3 [VP1-128.ini] MY0= MY1= MY2= MY3= [VM1.ini] MicrocodeStepping=A
Результат такой:
Код:160442 @172140/000040 37 172142/000004 0^ 172140/000000 /000000 /000040 @G SL V08.00 [SW] Сторожевых С.В. 1988 RT-11SJ (Y) V05.04 G .SET USR NOSWAP .SET EXIT NOSWAP .SET TT SCOPE .SET EM ON .SET SL ON .DAY Время Дата 00:00:16 31-Дек-2014, Среда .SH TT MY (Resident) MY0 = DK , SY SL (Loaded) EM (Loaded) LD LP 16 free slots .
Последний раз редактировалось Patron; 24.11.2015 в 15:49.
У меня почти такой же, но опция дизассемблера не давала загрузится адаптеру.
Причем консоль Дизасм. контроллера MY выдавала данные с такой скоростью, что невозможно было что-то прочесть. При этом загрузка ПиСишного доходила до 32%. Отключил опцию- всё пошло.Код:InitialStateOf[DisAsm] = 1
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)