Немига RESET trace

Материал из Emuverse
Версия от 21:15, 3 марта 2023; Nzeemin (обсуждение | вклад) (Новая страница: «Трасса операций на шине МПИ, восстановленная по дампу сигналов. Снято на Немиге 4.06. Дамп…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Трасса операций на шине МПИ, восстановленная по дампу сигналов. Снято на Немиге 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