Сказал капитан, когда все пришельцы превратились в зелёные лужицы )))
Вид для печати
Ну вот и тесты на реальной машине. Сперва в системе без поддержки запросов к таймеру, и с включенным таймером.
А теперь тесты с выключенным таймером.
У нас уже есть вариант теста с RTI в обработчике V100.
Ну вобщем он показывает то, о чем и говорили - если возврат по RTI - T-BIT однозначно. Если по RTT - прерывание из очереди, а так как из него выход по RTI - следом T-BIT и пока не кончится или не попадет в очередь что-нибудь. До WAIT дело просто не доходит пока T-BITы не кончатся.
---------- Post added at 02:58 ---------- Previous post was at 02:54 ----------
Попутно две идеи для теста:
- сделать тест гарантированно на уровне кернела, чтобы я не перегружался каждый раз
- печатать рядом с месагами 2(SP)
:)
Выглядит вполне логично.
Пока установлен бит Т - каждая команда WAIT "пропускает" по одному внешнему прерыванию.
Странно, что у formа (в последней "трети" теста) как-то пролезло одно внешнее прерывание:
Ведь обработчики Т-трапа завершаются точно такими же RTT, как и тот, после которого там произошёлКод:MTPS #340
BIS #100,@#TTPS
...Press Key...
Set T x3
RTT
>>> Interrupt <<< 100
>>> Trap to 014 <<<
>>> Trap to 014 <<<
>>> Trap to 014 <<<
>>> Interrupt <<< 060
>>> Interrupt <<< 064
[ >>> Interrupt <<< 100 ].
Добавь таки два последних пункта для удобства теста.
Ух.
Что-то где-то не то съелось и форум перекосило :)
Испытал новую версию программы. Скриншоты не выкладываю, т.к. результат работы аналогичен ранее выложенным скриншотам. Третий тест показывает, что по RTT запрещаются все прерывания на один шаг, безусловно выполняется команда нового процесса. Но это в 1801ВМ2.
---------- Post added at 00:15 ---------- Previous post was at 00:08 ----------
Абсолютно верная мысль. Можно заодно и проверить возврат по RTT с установленным и сброшенным T. А при выкладывании программы, также выложить и листинг трансляции MACRO, будет видно где прерывалось.
Кстати я @SP имел в виду :)
Но и 2(SP) можно на всякий случай :)
На уровне кернела - это как? Надо какой-то бит где-то установить?
Здравые мысли.
Подумав над результататми теста у formа, я склоняюсь к мысли, что на его процессоре Т-трап имеет больший приоритет, чем IRQ (как и у ВМ2), а установка бита Т блокирует младшие линии BR (типа, как команда вроде MTPS #200), поэтому прерывание таймера не блокируется, а команда WAIT не пропускает ни одного прерывания.
Для того, чтобы точно в этом убедиться, я хотел сделать так, чтобы при выполнении команд NOP - их мнемоника выводилась на экран. Поэтому если использовать последовательность команд типа NOP | WAIT | NOP | WAIT | NOP | NOP - то всегда будет примерно ясно, "где мы находимся".
Да - это гениально, как всё простое. Чем мудрстововать, подсчитывая на экране NOPы - гораздо проще сравнить адрес в стеке с листингом трансляции.
Т.е. вот такая вставка в начале программы переключит нас в KERNEL-моду:
Так?Код:MOV #340, @#16
MOV #10$, @#14
BPT
10$:
MTPS #0
Cmp (SP)+,(SP)+
SP на усмотрение - два слова не особо мешают. Или можно записать #340 в 2(SP) и потом по RTI/RTT вернуться после BPT (два старших бита PSW очищены - kernel mode, поскольку RTI из кернела делается - получится). MTPS лучше не использовать вообще по возможности - команда не портабельная (хотя у меня и есть). Ну и в любом случае если в этом именно мест есть потребности в приоритете 0, то можно сразу было 0 в 16 записать :)
Т.е. в подпрограмме сохранения векторов пишем
И никакие последующие команды RTI/RTT нас уже из KERNEL-моды не выбъют..Код:MOV #0, @#16
MOV #10$, @#14
BPT
10$:
Cmp (SP)+,(SP)+
Return
Думаю, что модератор последние несколько страничек вполне мог бы перенести в тему 'ДВК и все, что с ними связано')
Если "спецтестом" будем тестировать 11/83 - по "спецтесту" продолжить можно там.
А в какой теме выкладывать тесты для УКНЦ и её эмуляторов ?
Я не говорил ничего специфичного для 11/83, я наоборот всегда говорю то, что универсально :)
Думаю надо просто открыть тему "Диагностика, тесты, особенности систем" или что-нибудь в этом роде и туда все перекинуть.
---------- Post added at 16:39 ---------- Previous post was at 16:35 ----------
Ну так и пусть тема будет посвящена в том числе особенностям, а с эмуляции туда можно ссылку делать. Кстати в этом форуме шипки бывают?
ОК. Могу создать тему "Тесты процессоров и устройств архитектуры PDP-11"
Ну с учетом того, что на 11/03 (да и вообще в таком виде нигде) никакого ПП нет и никто не пробует, нормальные системы разницы не заметят :)
---------- Post added at 17:19 ---------- Previous post was at 17:18 ----------
Есть правда вариант PDP-11 с ПП на интеле, но про него тоже никто не знает - он сам себе ПП :)
Смотря какой софт.
В любом случае это не больше чем софт, заточенный под конкретное устройство, а даже не под конкретно УКНЦ и то, что кроме УКНЦ таких не делали этого факта не меняет. Доказательство как я понял твой же эмулятор который не эмулит полностью все, а меж тем дает что-то запустить :)