
Сообщение от
Oleg N. Cher
Нормальный код, мы ПЗУ писать не собираемся.
Почти нормальный. Что попало записывать на БК11М в 177662 не стоит, иначе можно попасть впросак. Вдруг разрешится прерывание по вектору 100, а оно ещё не инициализировано?
ещё можно сделать так, менее хулигански:
Код:
mov @#4, -(SP) ; сохраняем вектор 4 в стеке
mov #bk10, @#4 ; задаём свой
mov #40000, @#177662 ; устанавливаем палитру, состояние таймера 50Гц и отображаемый экран
; прерывания не произошло
mov (SP)+, @#4 ; восстанавливаем вектор 4
; тут код для БК11(M)
.....
bk10: ; произошло прерывание
tst (SP)+ ; адрес возврата из прерывания игнорируем
mtps (SP)+ ; восстанавливаем приоритет программы
mov (SP)+, @#4 ; восстанавливаем вектор 4
; тут код для БК10

Сообщение от
Oleg N. Cher
Осталось ещё понять как отличить программно БК11 от 11М
По содержимому ПЗУ по адресам 140000-157777, берём любой понравившийся адрес, и смотрим в эмуляторе, какое значение там на БК11 и какое на БК11М, и по этому значению определяем тип машины.