Для проверки 11 или 10 нужно CMPB #300,@#177716
Ну и я бы сделал вот так
Код:
Программа инициализации и распознания БК
MOV #1000,SP ;Устанавливаем границу стека
MOV @#4,-(SP) ;Заносим содержимое вектора 4 она нам понадобится
RES ;Блокируем клавиатуру - можно и по другому через регистр 177660
CMPB #300,@#177717 ;Проверяем какая машина 10 или 11х
BNE BK10 ;Если 10 то переходим к 10ке
MOV #16000,@#177716 ;Устанавливаем страници 5:7
MOV #40000,@#177662 ;Включаем палитру БК0010
CMP @#140454,#140502 ;Проверяем а вдруг не БК11м
BEQ BK11M ;Если 11м то идем туда
BR BK11 ;Ну а если не 11м то тогда точно 11 идем туда
BK10: MOV #EXIT,@#4 ;А вот и понадобился 4 вектор и он тут нам очень поможет
MOV @#100000,@#100000 ;Ну а теперь попытаемся чего нибудь записать если ПЗУ то нас выкенит по 4ому вектору и будет ясно что 10ка
BK SMK ;Запись в этот адрес все таки удалась значит это СМК64/512 и он отключил ПЗУ 10ки и с этим что то нужно делать
EXIT: MOV (SP)+,@#4 ;Возвращаем 4 вектор на место как и было
JMP @#START ;Запуск основного тела программы
bk11M: ...
... ;Здесь все то что не обходимо сделать для 11м и затем перейти на метку EXIT для востановления вектора 4
...
EXIT
BK11 ...
... ;То же самое что и чуть выше
...
EXIT
SMK: ...
... ;Тут мы выполняем действия связаные с СМК64/512 если все таки мы сюда попали.
...
EXIT
.END
Ну как то так