С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Стоп! А ведь SPL есть далеко не во всех машинках. Или как? Я вот только сейчас о ней узнал - заодно нашел книгу Сингера в .doc, а в ней написано, что, цитирую: "В машинах PDP-11/45 и 11/55 для привилегированных пользователей существует команда установки уровня приоритета SPL (Set Priority Level)" А на LSI-11 получим Trap to 10? Странно...
Кстати, возвращаясь к нашему спору о команде WAIT, вот то, что было нужно: SPL 0, за ней - WAIT, прерывания между этими двумя командами не произойдет, ибо SPL, как раз, запрещает прерывания до выполнения следующей за ней команды. А парочка SPL 7 - WAIT, по идее, должна завесить машинку до сброса.
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Да. Также как и SOB (или к примеру MTPS). В текстах RT-11 это макросы.
---------- Post added at 16:02 ---------- Previous post was at 15:58 ----------
В описании KDJ11 про это ничего не сказано.
Что логично ибо эти две команды по сути именно это и просят сделать
---------- Post added at 16:03 ---------- Previous post was at 16:02 ----------
Есть еще много вариантов послать проц в бесконечный зависон из которого можно выбраться только физическим остановом...
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
Угу, опять цитирую Сигера: "В машине PDP-11/45, которой мы пользуемся, эта команда независимо от устанавливаемого приоритета запрещает любые прерывания до тех пор, пока не будет выполнена следующая за SPL команда. В руководствах этот факт не нашел отражения, и поэтому не ясно, так же ли будут вести себя другие модели."
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Сингер писал книгу давно, а команда SPL есть между тем на многих процах (на большинстве пожалуй) и реализована ли она также как у него написано - не факт. В описании DCJ11 лучше почитать - там есть огромная таблица примерно из 60 пунктов (с подвариантами) об отличиях процессоров. Ну и тесты можно попробовать сделать...
Такое бывает равно как руководство может вообще неточно описывать что-то. Не так давно натыкались на то, что нельзя сбросить второй набор регистров из user mode, можно только выбрать его. В документации же такое поведение написано только для supervisor mode
---------- Post added at 16:10 ---------- Previous post was at 16:08 ----------
Кстати у Сингера там и ошибки явные встречались. Впрочем это могут быть последствия перевода - оригинала не читал.
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
Проверяется, кстати, элементарно, под простой RT-11 без ДП. Запрещаем прерывания (MTPS #340), забираем себе вектор прерывания от клавиатуры на программку, инкрементирующую исходный ноль, ставим в ее РС бит 0100, ждем в цикле появления бита 0200, делаем SPL 0 SPL 7 и смотрим, произошло ли прерывание, т.е. инкрементировался тот ноль, или нет? Можно, по-простому, сделать останов и посмотреть ту ячейку в пульте.
---------- Post added at 16:17 ---------- Previous post was at 16:15 ----------
А на наших есть?
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Команды может и не быть на проце
У меня можно проще - взвести PIRQ и далее SPL 0/SPL 7. До дому доберусь (сегодня утром забыл включить) - попробую и другие варианты тоже...
---------- Post added at 16:19 ---------- Previous post was at 16:18 ----------
Как минимум на CM1420/1425/2420. Показывали еще аналог 11/53 - там должно быть. Остальные наши надо смотреть чего они аналоги. Э100/25 к примеру точно нету (как нету и команд MFPS/MTPS там). До сих пор кстати не знаю чего он аналог и насколько точный
---------- Post added at 16:24 ---------- Previous post was at 16:19 ----------
Да, ну и на Э85 конечно есть!
Последний раз редактировалось form; 20.04.2015 в 13:27.
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
Строго говоря надо в тему особенностей процессора... Тест выставляет приритет 7, запрашивает прерывание уровня 6, делает SPL 0 и выводит результат. PS (в результате вывода) при этом должен содержать количество команд выполненных после SPL 0, ну а PC для проверки...
Как видим, после SPL 0 прерывание происходит мгновенно.Код:.TY SPL.MAC .TITLE SPL .MCALL .EXIT,.PRINT .ASECT .=240 .WORD PIISR,4340 .PSECT START:: CLR @#177546 MOV #340,@#177776 BIS #40000,@#177772 SPL 0 <SEC> +0 <SEC> +1 <SEC> +2 BIS #100,@#177546 .PRINT #BUFF .EXIT PIISR:: CLR @#177772 MOV SP,R2 MOV #FMTS,R1 MOV #BUFF,R0 CALL $EDMSG RTI BUFF: .BLKB 80. FMTS: .ASCIZ /PC=%P, PS=%P/ .END START .EX/LINK:SY:RSXLIB SPL PC=001022, PS=000000 .
---------- Post added at 18:26 ---------- Previous post was at 18:24 ----------
И не должно быть. Он определен в явном виде. Кстати читая исходники RT-11 очень часто "не верь глазам своим". К примеру написано MOV #340,@#PS и оно будет работать независимо от процессора
BSTRAP.MAC патчит код при загрузке...
---------- Post added at 18:28 ---------- Previous post was at 18:26 ----------
Я не силен в том что выпуска{л,ет} зеленоград а равно вообще в советском не особо силен. Если речь о всяких 1801ВМ[123] то там нет. Насчет ВМ3 впрочем не уверен, но проверить легко - есть у многих.
Последний раз редактировалось form; 20.04.2015 в 15:30.
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
Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)