С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
В том, что в ВМ2 происходит прерывание режима HALT которое не портит стек.
---------- Post added at 03:52 ---------- Previous post was at 03:52 ----------
Ну а в случае с процессором прерывания и вовсе не происходит.
---------- Post added at 03:55 ---------- Previous post was at 03:52 ----------
И кстати, вспоминается мне, что метод попадания в HALT из USER как раз основан на использовании FIS
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
В 1801ВМ2 есть HALT-режим и регистры копий CPC (копия счетчика команд) и CPSW (копия PSW). При исполнении инструкции FIS происходит переход в HALT-режим, который имеет свое адресное пространство, а в CPC и CPSW остается прерванный адрес USER-режима. Никакой стек не используется. А уже программа эмуляции с помощью спецкоманд процессора можем считывать данные из адресного пространства USER-режима и туда же записывать результат. Затем происходит переход в USER-режим. Вот как-то так. Есть же листинги ПЗУ УКНЦ, там все можно посмотреть. Листинги с комментариями.
---------- Post added at 00:58 ---------- Previous post was at 00:55 ----------
Да, так можно попасть только на МС 1201.02 с ПЗУ 1801РЕ2-055.
С УКНЦ все проще - системное ОЗУ доступно через регистры 176640/176642. Занес свою программу и с помощью RTI перешел в HALT-режим.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Я думаю авторы всех тонкостей ВМ2 и не знали. Может они думали, что инструкции FIS выполняются на микропрограммном уровне. Ну о таком баловстве вряд ли додумаешься, все рассчитывают, что аргументы находятся где-то в области программы, ну или в крайнем случае в стеке, но уже с адресацией по SP.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
А толку запрещать прерывания. Результат ведь не используется. Просто при сложении будут другие аргументы. Максимум на что можно напороться - на прерывание по вектору 244.
Тут дизассемблер вряд ли врёт..
Но дело уже сделано:
Код:.SE EM ON .SH CON RT-11SB (S) V05.07 C Booted from HD1:RT11SB USR is set NOSWAP EXIT is set SWAP KMON is set NOIND TT is set NOQUIET ERROR is set ERROR SL is set ON EDIT is set K52 KMON nesting depth is 3 Global .SCCA flag is disabled LSI 11 or PDP 11/03 Processor 56KB of memory Extended Instruction Set (EIS) Floating Instruction Set (FIS) 50 Cycle System Clock Device I/O time-out support Global .SCCA support .
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)