logo
ZX-Review-1992-01-12

2.2.2Изменение хэдера для блокировки автозапуска.

Вглаве 1 мы с Вами достаточно подробно рассмотрели структуру хэдера. Напомним лишь, что именно в хэдере Бейсика задается параметр автостарта (т.е. его наличие или отсутствие и номер строки автозапуска при наличии такового). А поскольку мы используем в своей работе такое универсальное средство, как COPY COPY, то можем изменить эти параметры вплоть до ликвидации автозапуска программы. Рассмотрим более подробно этот процесс.

Как Вам уже вероятно известно, байты 15 и 16 хэдера интерпретируются по разному.

Взаголовках программ, написанных на Бейсике, эти байты содержат номер строки, с которой запускается программа т.е. номер строки автостарта. Если же программа была записана без опции LINE и после считывания не запускается автоматически, то значение числа, содержащегося в этих двух байтах больше 32767. Как видим, одним из способов нейтрализации самозапускающихся программ, является замена этих двух байтов на число, большее 32767. Осуществить это нам поможет программа COPY COPY.

Для этой цели загрузим копировщик и считаем необходимый нам заголовок с ленты. После этого и будем собственно осуществлять изменения. COPY COPY настолько универсальная вещь, что изменения можно производить двумя способами. Первый способ основан на изменении встроенной функции LET, a второй использует оператор LIST для просмотра и POKE для непосредственного изменения содержимого ячеек памяти. Рассмотрим более подробно каждый из этих методов.

Метод первый.

Для того, чтобы использовать возможности функции LET, необходимо иметь представление, в каком формате она задается. Как Вам уже вероятно известно, данная функция в общем виде может быть представлена, как:

LET = имя программы, длина программы, номер строки автостарта, прочие