Я просто не знаю почти ничего о структуре ВМ3, пытаюсь предположить варианты. Чтобы далеко за примером не ходить - возьмем тот же ВМ3. В обычном режиме стоит нам включить MMU и вектор IOT перестанет соответствовать адресу 20. Может при переходе в 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
Если предположение верно, то все возражения ошибочны.
1. По аресу HALT-вектора ничего нет
HALT-прерывание по вектору 020000 должно выполняться следующим образом: 20000 -> HSP ; PSW -> -(HSP) ; PC-> -(HSP) ; 000 -> PC ; 340 -> PSW
HALT-прерывание по вектору 000020 должно выполняться следующим образом: 00020 -> HSP ; PSW -> -(HSP) ; PC-> -(HSP) ; 000 -> PC ; 340 -> PSW
Оба случая полностью подтверждены тестами.
2. IOT все равно выходит на исполнение на нулевой адрес
Именно так и должны отрабатываться HALT-прерывания - загрузка PC и PSW производится из скрытого вектора, содержащего 000 и 340.
Последний раз редактировалось Patron; 27.01.2016 в 19:55.
Но на диаграмме не было даже попыток чтения памяти по другим адресам после IOT. По адресу 1352 считался IOT, затем в рамках конвеера по 1354 считался JSR R0,LABEL (4067). Длинная пауза, потом по 16 и 14 записывается 340 и 1354, снова пауза, ну и потом пошло всё исполняться с нулевого адреса.
Возникает предположение, что по совместительству регистр HSP в обычном режиме используется как временный, например для чтения вектора.
- - - Добавлено - - -
Под вектором подразумевается чтение из памяти новых значений PC и PSW. А так это точка начального пуска. В качестве примера запуск по питанию 1801ВМ1, а вот 1801ВМ2 в данном случае имеет полноценный вектор.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)