Д. Батранков (г. Чехов)

 

Прочитав восьмой номер вашего журнала за 1990 г., я решил дополнить рассказ С.Ю. Синягина о встроенном мониторе.

Для занесения ключей можно не пользоваться командой EMT 12, вот что она из себя представляет (подпрограмма расположена по адресу 1020048):

    TST     R0         ; проверка номера ключа
    BLE     А          ; если<0, то выход
    СМР     R0, #12    ; если
    BHI     А          ; больше 128, то выход
    BNE     В          ; не равно 12, на метку 13
    CLR     R0         ; если равно 12, то изменить на 0
В:  ASL     R0         ;
    MOV     R1,126(R0) ; занесение адреса в память
А:  RTS     PC         ; выход

Можно просто где-то написать тексты ключей и занести в ячейки 1268 - 1508 их адреса.

Заключение рецензента

По поводу программного прерывания EMT 12. Это прерывание введено в систему для формирования текстов часто используемых команд, которые затем можно вызвать с помощью нажатия пары клавиш (АР2+ «номер ключа»).

Подпрограмма обработки этого прерывания прошита в ПЗУ по адресу 1020048 для удобства занесения текстов ключей.

Формировать тексты ключей вручную и заносить их адреса в ячейки 1268 - 1508 для БК-0010 можно, но это значительно уменьшает вероятность совместимости написанных таким образом программ с более поздними моделями компьютеров БК. Разработчики системного программного обеспечения, составив команду EMT 12, могут сменить адреса ячеек в системной области ОЗУ, в которых хранятся адреса текстов ключей. Кроме того, при расширении ОЗУ область ПЗУ с монитором обычно смещается в область старших адресов, а значит смещаются и все адреса прошиваемых подпрограмм. Этот последний фактор привёл к тому, что многие игровые и обучающие программы в кодах, использующие такие «хитрости», как предлагает Батранков, не выполняются на БК-0011.

Как системный программист могу порекомендовать почаще соблюдать системные соглашения и использовать стандартные прерывания, чтобы обеспечить переносимость программ на другие типы и модели компьютеров. Реализовывать же все системные средства в своих собственных программах, да ещё при недостатке ОЗУ, нецелесообразно.

«Копание» в ПЗУ само по себе похвально, если это не приводит к концептуально неверному построению прикладных программ.

Л.Н. Жариков

Performed by © gid, 2012-2022.