В общем тест памяти у меня прошёлся и вроде как без ошибок.
При этом на экране должно что-то выводиться -- так что можно заняться экраном.
Код:
; Старт машины
; Цикл инициализации портов ввода-вывода
000500 MOV #000120, R0
000504 MOV (R0)+, R1
000506 MOV (R0)+, R5
000510 MOVB (R1)+, R4
000512 MOVB (R1)+, R2
000514 MOV R2, (R5)
000516 SOB R4, 000512
000520 TST (R0)
000522 BMI 000506
; Начало теста памяти
; R5 = 161206 -- регистр HR3 -- был последний при инициализации
000524 MOV #011642, R0 ; Адрес начала области в 8 КБ из которой будем брать образцы
000530 MOV #060000, R1 ; Адрес начала блока HR3
000534 MOV #160000, SP ; Адрес стека на границу доступной памяти, выше уже регистры
000540 MOV (R0), (R1) ; Помещаем образец в ячейку памяти
000542 ROL (R1)
000544 ROL (R1)
000546 ROL (R1)
000550 ROL (R1)
000552 ROL (R1)
000554 ROL (R1)
000556 ROL (R1)
000560 ROL (R1)
000562 ROLB (R1)
000564 SWAB (R1)
000566 SUB (R0)+, (R1)+ ; проверяем результат
000570 BNE 000632 ; Найдена ошибка памяти?
000572 TST R1 ; R1 < 0100000 ? т.е. ещё не конец блока HR3?
000574 BPL 000540 ; Тогда продолжаем проверять
000576 SUB #020000, R0 ; Возвращаем указатель на образцы
000602 SUB #020000, R1 ; Возвращаем указатель на начало блока HR3
000606 TST (R5)
000610 BNE 000616
000612 CALL @#007236
000616 CALL @#000676 ; Переход к следующему 8 КБ блоку
000622 CMP #001740, (R5)
000626 BHIS 000540 ; Продолжаем тест памяти
000630 BR 000734 ; Конец теста памяти
; Найдена ошибка памяти по адресу R1
000632