Если кто-то желает мне помочь кодом, то добро пожаловать.
Резюмируем задачу. Чтобы пользоваться EMT'ами - нам нужно точно знать какая у нас машинка.
Итак, нужен код для:
1. Инициализации (установка экрана в 040000 на БК-0011/11М, запрет векторов, установка нужных страниц. На БК-0010 ничего не делать). Кстати, если при запрещённых векторах можно каким-то образом опрашивать клаву, то это отлично.
2. Запрет кнопки Сбр (насколько я понимаю - это хороший тон, чтобы её нажатие не приводило к аварийному выходу, а вызывало интеллигентный холодный рестарт программы (или хотя бы корректный выход туда, откуда вызывали - в монитор или в ОС). Что-то там ещё про запрет рулонного скроллинга и другие подготовительные операции. Это то, в чём мне разобраться без вашей помощи очень тяжело.
3. Адреса 01000..037777 освободим для пользовательской программы, держа в уме её рабочесть на всех моделях БК.
4. Выход в вызывающую среду. Стек трогать не будем, пусть остаётся ниже 01000 там, где его установила вызывающая прога. Если мы что-то повредили, из-за чего монитор будет некорректно работать, восстановить.
Можно ли пользоваться EMT'ами? Конечно, никаких препятствий для этого нет, кроме того, что вызовы EMT на всех моделях БК различны. Поэтому предлагаю если пользоваться ими, то делать это надёжно, с точным знанием на какой модели мы сейчас работаем.
5. Ну и надёжный способ определения какая у нас модель БК. Если на 11 (без М) можно забить, то давайте забьём. Я вообще узнал про столь кардинальные различия между 11 и 11М с большим удивлением - раньше думал, что они совместимы.
С векторами, насколько я понял, можно организовать фоновый буферизованный опрос клавы? Я ещё думаю, понадобится ли он мне, но, скорее всего, нет. Так что если можно без векторов, обойдёмся без них.
Чтобы с чего-то начать, наводящий вопрос: что делает mov #16000,@#177716 ?
Кстати, решение этой задачки в коде позволит нам иметь заготовку для программирования под БК-0010, 0011 и 11М на Си (GCC) и Обероне. Всё, что нам удастся сделать, будет выложено на гитхабе для общего доступа.




Ответить с цитированием