ZX-Ревю 1995 №4 1995 г.

Секреты TR-DOS - о системных переменных TR-DOS #5CC2-#5CC4.


О системных переменных #5CC2-#5CC4 © Макарычев В.П., г. Москва, 1995.

В составе системных переменных TR-DOS есть область, занимающая 3 байта, которая достаточно часто используется в программах (например, в процедурах TR-DOS, или в программах Н.Родионова). Это ячейки #5CC2-#5CC4 (23746-23748). В литературе упоминается, что #5CC2 должна содержать #C9 (команду RET), что заключается в следующем. Управление одним из способов перебрасывается на #5CC2 (типа CALL #5CC2 или #5CC2 помещается на стек и затем следует RET). А вот содержимое #5CC2 некоторыми программами меняется: вместо #C9 туда записывают #C3. После перехода счетчика адреса на эту ячейку, процессор считывает вместо RET команду JP nm, а адрес перехода nm заблаговременно заносится в ячейки #5CC3/4. Таким образом получается программный переключатель какой-либо процедуры: #C9 - она отключена, #C3 - подключена. Сама процедура может располагаться в ОЗУ или ПЗУ-SOS (для DOS такой вызов неудобен).

Именно так сделано в процедуре DOS RST#20. Здесь не следует путать процедуры DOS с их тезками из SOS. Выглядят они одинаково, но содержание их разное - зависит от подключенного ПЗУ: основного или теневого. В DOS RST#20 предназначена для вызова подпрограмм SOS или ОЗУ с последующим возвратом в DOS. Адрес вызываемой подпрограммы следует в виде двух байтов сразу же за RST#20. Но перед выходом на подпрограмму управление передается на #5CC2 и только по RET в ней, или в конце другой подпрограммы, адрес которой содержится в #5CC3/4, переходит на адрес, указанный в RST#20. Таким образом, RST#20 вызывает последовательно две подпрограммы, первая из которых может быть "пустой".

Еще пара замечаний о процедурах RST-DOS. Интересно, что в DOS RST#10 тоже осуществляет печать символа, код которого содержится в аккумуляторе, как и в SOS. А RST#18 выводит строку символов с адреса, заданного в регистре HL, до первого символа с кодом больше 127, который будет напечатан со сброшенным старшим битом, или до символа с кодом 0.

AAA




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Почему бабам сценеры не дают - вечный вопрос.
Rants & Raves - Прикол с 7 номером ZX-Format'а.
На правах рекламы - Red Limited Drunkards Group представляет: Extrem Tracker v1.32 - новый музыкальный редактор. Inter Mode Player v1.2 - проигрыватель мелодий.
Перспектива - О игре 3D Killer (демо версия - Doommania).
От авторов - Редакция.

В этот день...   20 апреля