Немига RESET trace
Трасса операций на шине МПИ, восстановленная по дампу сигналов. Снято на Немиге 4.06.
Дамп снимался на работающей машине, триггером было появление сигнала СБРОС, выполнялось нажатием кнопки СБРОС на корпусе.
RESET READ 000024 000000 ; Чтение вектора прерывания "нарушение питания" READ 000026 000000 READ 000000 000000 HALT WRITE 177706 000000 ; Запись PSW и PC в стек WRITE 177704 000002 READ 160002 160210 ; Чтение вектора прерывания HALT READ 160004 000341 READ 160210 022737 ROM CMP #056364, @#177776 ; Проверка, настроена ли память режима HALT READ 160212 056364 ROM READ 160214 177776 ROM READ 177776 056364 READ 160216 001402 ROM BEQ 160224 ; память инициализирована, потому что сброс сделан на работающей машине READ 160224 010046 ROM PUSH R0 WRITE 177702 000000 READ 160226 052737 ROM BIS #000200, @#177564 ; Уст. состояние терминала - не готов READ 160230 000200 ROM READ 160232 177564 ROM READ 177564 000200 WRITE 177564 000200 READ 160234 032737 ROM BIT #176000, @#170006 ; Проверка старших 6 бит регистра фиксации HALT READ 160236 176000 ROM READ 160240 170006 ROM READ 170006 000000 READ 160242 100737 ROM BMI 161142 ; Канальный сигнал СБРОС? да, переходим на обработку канального сигнала СБРОС READ 160142 012737 ROM MOV #000357, @#000206 ; 239. -> VFORM READ 160144 000357 ROM READ 160146 000206 ROM WRITE 000206 000357 READ 160150 005037 ROM CLR @#177560 ; Сброс состояния клавиатуры READ 160152 177560 ROM READ 177560 000000 WRITE 177560 000000 READ 160154 012737 ROM MOV #000200, @#177564 ; Уст. состояние терминала - не готов, запрет прерывания READ 160156 000200 ROM READ 160160 177564 ROM WRITE 177564 000200 READ 160162 005037 ROM CLR @#177770 READ 160164 177770 ROM READ 177770 000000 WRITE 177770 000000 READ 160166 042737 ROM BIC #177541, @#177766 ; Оставляем только флаги #136 READ 160170 177541 ROM READ 160172 177766 ROM READ 177766 000000 WRITE 177766 000000 READ 160174 012600 ROM POP R0 READ 177702 000000 READ 160176 000137 ROM JMP @#161074 ; Завершаем обработку прерывания HALT READ 160200 161074 ROM READ 161074 105037 ROM CLRB @#170006 ; Разрешаем системные прерывания READ 161076 170006 ROM READ 170006 000000 WRITE 170006 000000 READ 161100 000002 ROM RTI READ 177704 000002 ; Восстанавливаем PC READ 177706 000000 ; Восстанавливаем PSW READ 000002 000000 HALT WRITE 177706 000000 WRITE 177704 000004 READ 160002 160210 ROM READ 160004 000341 ROM READ 160210 022737 ROM CMP #056364, @#177776 READ 160212 056364 ROM READ 160214 177776 ROM READ 177776 056364 READ 160216 001402 ROM BEQ 160224 READ 160224 010046 ROM PUSH R0 WRITE 177702 000000 READ 160226 052737 ROM BIS #000200, @#177564 READ 160230 000200 ROM READ 160232 177564 ROM READ 177564 000200 WRITE 177564 000200 READ 160234 032737 ROM BIT #176000, @#170006 READ 160236 176000 ROM READ 160240 170006 ROM READ 170006 000000 READ 160242 100737 ROM BMI 161142 READ 160244 001756 ROM BEQ 161202 READ 160202 012600 ROM POP R0 READ 177702 000000 READ 160204 000137 ROM JMP @#161142 ; Переходим к сохранению регистров и пульту READ 160206 161142 ROM READ 161142 012637 ROM MOV (SP)+, @#177736 ; Сохраняем PC READ 161142 012637 ROM READ 177704 000004 READ 161144 177736 ROM WRITE 177736 000004 READ 161146 012637 MOV (SP)+, @#177740 ; Сохраняем PSW READ 177706 000000 READ 161150 177740 ROM WRITE 177740 000000 READ 161152 010637 ROM MOV SP, @#177734 READ 161154 177734 ROM WRITE 177734 177710 READ 161156 012706 ROM MOV #177734, SP ; Сохраняем остальные регистры READ 161160 177734 ROM READ 161162 010546 ROM PUSH R5 ; -> 177732 WRITE 177732 000000 READ 161164 010446 ROM PUSH R4 ; -> 177730 WRITE 177730 000142 READ 161166 010346 ROM PUSH R3 ; -> 177726 WRITE 177726 040042 READ 161170 010246 ROM PUSH R2 ; -> 177724 WRITE 177724 177770 READ 161172 010146 ROM PUSH R1 ; -> 177722 WRITE 177722 000000 READ 161174 010046 ROM PUSH R0 ; -> 177720 - начало блока регистров WRITE 177720 000000