Системные программы для «ZX-Spectrum» 1993 г.

LERM-7 - программа для копирования защищенных программ на магнитофоне.


LERM-7

ВВЕДЕНИЕ.

Перед загрузкой программы убедитесь, что память компью­тера очищена. Любая периферия, кроме интерфейса-1, должна быть отключена.

Не пытайтесь копировать наиболее поздние программы, не набрав достаточно опыта. Они наиболее хорошо защищены.

ТЕХНИЧЕСКАЯ ИНФОРМАЦИЯ.

Этот раздел помещен для расширения ваших знаний по Spectrum'y, а также для облегчения операции копирования прог­раммы.

• 1. Пилоттон (иногда просто "тон, сокращенно — [Т])

При загрузке программы или при их записи на ленту вы ви­дите в самом начале широкие синие и красные полосы. Это пи-лоттон [Т ]. Он обеспечивает надежность ввода кодов в память компьютера.

• 2. Джеркитон (сокращенно — [J])

Это прерывистый пилоттон. Он был разработан для защиты от копирования программы. Вместо плавного перемещения крас­но-голубых полос наблюдается их движение рывками, сопровож­дающееся отрывистыми звуковыми сигналами. Этот способ до­вольно широко применяется в последнее время, например, фирмами OCEAN, ULTIMATE и другими.

• 3. Байты (сокращенно — [В])

После тона идут байты. Они сопровождаются узкими синими и желтыми полосами на экране. Программист может сделать их другого цвета, а может совсем не выводить, используя свой за­грузчик.

Байты — это числа в диапазоне от 0 до 255. Они представляют и Бейсик, и машинные коды, и данные. Все это байты, но они имеют разные функции.

• 4. Блок кодов

Пилоттон вместе с последующими данными называется бло­ком кодов.

• 5. Часть программы

Рассмотрим загрузку в компьютер простой бейсик-програм-мы. Сначала мы видим тон, затем короткий пакет байтов [В ]. Это первый блок. Затем после короткого промежутка вы увидите второй тон [Т ] и опять [В ], т.е. второй блок кодов.

БЛОК 1

 

ПАУЗА

 

БЛОК 2

 

[Т]

 

[В]

 

[Т]

 

[В]

 

 

Совокупность этих двух блоков называется частью програм­мы.

Так, если вы записываете бейсик-программу [Т ] [В ] — [Т ] [В], а затем, скажем, массив данных [Т] [В] — [Т] [В], то вы получите две части программы. Если же вы записываете бейсик, затем блок машинных кодов, а затем блок данных, то программа будет иметь три части.

— 6. Скорость загрузки-выгрузки

Обычно SPECTRUM выполняет LOAD и SAVE со вполне оп­ределенной скоростью. Как правило, это 1500 бод <бит/сек). Если вы увеличите темп и снизите время загрузки, вам придется рас­плачиваться снижением надежности ввода. Современные прог­раммы иногда умеют увеличить скорость ввода, и LERM-7 может выполнить копирование таких программ.

Загрузка программы с повышенной скоростью иногда сопро­вождается следующими явлениями:

— ширина желто-голубых полос меньше;

— высота звука выше.

Для обеспечения защиты программ от копирования ряд фирм разработали свои собственные пилоттоны. При этом первая часть программы должна оставаться "нормальной", иначе SPECTRUM не сможет загрузить ее. После этого программист может спе­циальной программой в машинных кодах обойти обычную систе­му загрузки и создать свою, например:

— создать значительно более узкий пилоттон;

— создать значительно более широкий пилоттон;


— создать очень короткий пилоттон 0.1 С вместо 2..5 С. При этом бордюрные линии становятся широкими сине-желтыми:

Этот метод называется тонингом;

      записать программу без зазоров между блоками кодов. Если при этом прослушать запись, то слышен один непрерывный тон, а полосы на экране будут широкими желто-синими. Непре­рывный тон сбивает копирующие программы, поскольку они ждут зазора. С этим методом вполне справляется копирующая программа LERM-6, для ряда из этих методов она имеет специальные клавиши.

 

Основные способы защиты программ:

а) Использование очень длинных программ, более 48К;

б) Применение различных скоростей ввода ("AUTOMANIA");

в) Прерывистый пилоттон — джеркитон ("DECATHLON");

г) Тонинг ("CHUCKIE EGG");

д) Короткий пилоттон;

е) Комбинация различных методов ("DECATHLON"). Это неполный список (см., например, ниже HEADERLESS-блоки (блоки без заголовка).

 

ЗАГОЛОВОК (HEADER)

Рассмотрим загрузку бейсик-программы. Сначала вы видите широкие красно-голубые полосы пилоттона, слышите звук. Это идет подготовка к загрузке. Затем идет короткая серия узких желто-синих полос. Это первый блок: [Т ] [В ]. Здесь [В ] — это заголовок (хедер). Он короткий, так как содержит только 17 байт. Именно поэтому на экране появляется сообщение:

PROGRAM: FRED

или

BYTES: FRED После загрузки еще одного блока мы будем иметь:

БЛОК 1 [Т] [Н]

 

ПАУЗА

 

БЛОК 2

 

[Т]

 

[В)

 

 

 

 

[Н ] — это хедер (раньше мы писали [В ]).

 

Данные о хедере.

SPECTRUM имеет 17 байт в хедере. Рассмотрим состав этих данных. Например:

HEAD : 0-250-10-20

Вы видите 4 числа. Их всегда должно быть 4.

Первое число:

0 — Бейсик

1 — числовой массив

2 — стринговый массив

3 — коды

Отсюда видно, что пример, приведенный выше, записан в Бейсике.

Второе число: количество байт, подлежащих загрузке. В на­шем примере — 250.

Третье число: в Бейсике здесь задается номер строки, с кото­рой программа должна автостартовать. Если это число больше, чем 32768, то автостарт не происходит.

В кодах, т.е. если первое число равно 3, здесь указывается на адрес, в который должен быть помещен первый байт.

Четвертое число: задает количество байтов бейсика.

Пример: HEAD: 3-780-36874-780. Задает блок в кодах. Длина его 780 байт. Загрузка начинается с адреса 36874.

Все программы должны начинаться с хедера, за которым идут байты:

[T] [H]

Программируя в машинных кодах, можно обойтись без хеде­ров, поскольку можно управлять тем, какие байты куда будут загружены. Например:

ТР   3

[Т]  [Н]  [Т]  [В]  [Т]  (В) [Т]  [В] - последние две части программы не имеют хедеров

Некоторые программисты вставляют в программы так назы­ваемые "фальшхедеры". Это блоки кодов длиной 17 байт, которые выглядят как хедеры. Иногда они имеют неразрешенное имя и предназначены для сбивания с толку копирующей программы.

LERM-6 не обращает внимания на наличие хедера. Если вы увидите сообщение:

PROGRAM NAME FRED: ??????

то будете знать, что "?" стоит вместо неразрешенных символов, которые предназначались для вывода из строя копирующей прог­раммы.

 

ИНСТРУКЦИЯ К LERM-7

Цель программы: копирование очень длинных программ, программ с высокоскоростными загрузчиками, программ с джер-кованным пилоттоном.

В конце этого раздела помещены "полезные советы". Им не­обходимо следовать. Это вызвано тем, что программы со скоро­стными загрузчиками гораздо более чувствительны к качеству ввода, чем программы с обычными загрузчиками.

 

ПОРЯДОК РАБОТЫ;

• 1. Загрузите LERM-7 командой LOAD '"'.

• 2. После загрузки экран темнеет и появляется меню:

L — загрузка нормальных хедеров и байтов;

Н — загрузка программ без хедеров;

S — запись того, что загружено в режимах L и Н;

С — подсчет байтов (счетчик);

Q — прекращение работы (Q^NEW);

В — вход в режим "В" для загрузки программ избыточной длины и программ со скоростными загрузчиками;

J — вход в режим "J" для копирования программ с джеркованными пилоттонами.

Режимы "Н" и "L" копируют только части программ, записан­ные с нормальной скоростью, длиной до 38590 байт, здесь ко­пируется только одна часть [Т ] [Н ] [Т ] [В ] или один блок без заголовка [Т ] [В ]. Этим она отличается от LERM-6. Наиболее целесообразно для нормальных блоков применять LERM-6, а для более трудных блоков оставлять LERM-7, работая с ними в ре­жимах "В" и "J".

• 3. Копирование программ.

а) Загрузив LERM-7, установить программу, которую вы хо­тите скопировать.

б) Нажмите "L" на Spectrum'е "PLAY' на магнитофоне. Убе­дитесь в том, что уровень сигнала установлен в "обычном" для загрузки программы положении.

в) После загрузки первой части [Т ] [Н ] [Т ] [В ] остановите магнитофон. Вставьте чистую ленту, включите запись, нажмите "S" на компьютере. Чтобы выполнить вторую копию на другой ленте, нажмите "S" еще раз.

г) Дальнейшие части программы могут быть "нормальными", с хедерами и байтами, а могут быть без хедеров. Для копирования первых используйте "L", для вторых — "Н". Если вы не уверены, пользуйтесь "Н". Загрузив очередную часть, повторите пункт В.

д) Повторяйте пункт "Г' до тех пор, пока вам не встретится:

— часть с джеркованными пилоттонами;

— блок с увеличенной скоростью загрузки;

— очень длинный блок;

— блок с очень коротким пилоттоном. Для работы с такими блоками вам надо пользоваться режи­мами "В" или "J". Для первого — "J", а для второго — "В".

• 4. Счетчик ("COUNTER")

Эта операция позволяет посчитать количество байтов. Она работает и на скоростных загрузчиках, но не с джеркитонами.

Работа счетчика:

1) Установить начало блока, подлежащего измерению;

2) Нажать "PLAY" на магнитофоне и "С" на компьютере. Цвет бордюра изменится. После прогона блока на экране будет изоб­ражена его длина.

Внимание! Если после этого вы перейдете в режим "В", то замеренная длина будет передана в этот режим, где есть свой собственный счетчик. Это сэкономит время, т.к. измерение дли­ны придется выполнять только один раз.

Если программа имеет блок данных и вы не уверены, сможет ли режим "Н" загрузить ее, то после измерения "С" назначьте "Н", если блок менее 38К. Если блок больше 38К, переходите в режим "В", при этом измерять длину блока уже не нужно.

Кроме того, имейте в виду, что весьма важно знать длину блока до перехода в режим "В", т.к. выбор клавиши для его ко­пирования зависит ОТ ДЛИНЫ блока.


• 5. Прекращение работы осуществляется клавишей "Q"

• 6. Фальшхедеры

Режим "L" не может загружать фалыпхедеры, но это можно преодолеть, если копировать каждый блок по отдельности через "Н".

[Т] [F] [Т] [В] здесь [F ] — это фальшхедеры.

• 7. Вход в режимы "В" и "J"

Для этого нажмите "В" или "J". Бордюр станет красным, а на экране появится сообщение: "НАЖАТЬ ЛЮБУЮ КЛАВИШУ".

Замечание. Вы обнаружите, что режимы "J" и "В" обычно смещают картинку на экране на один квадрат. Это не ошибка. Во всем остальном картина должна быть нормальной. Если нет, то проверьте уровень громкости.

Когда бордюр станет красным, нажмите пробел. Экран станет черным, бордюр — желтым. Если это не так, попробуйте еще раз.

Замечание. В режимах "В" и "J" клавиша "Н" предназначена для измерения длины, что она и делает в специально выделенной для этого области памяти. Поэтому, если вы намерены делать "SAVE" еще раз, ни для чего другого эту клавишу использовать нельзя, т.к. в программе будут испорчены байты. Заметьте также, что если программа очень длинная, то счетчик "В" может быть "затерт" загружаемой программой. В этом случае клавиша "В" станет бесполезной.

• 8. Режим "J"

Этот режим работает с джеркитонами. Предупреждаем сразу, что это не просто (см. раздел "Полезные советы"). Эти загрузчики обычно являются также скоростными, но они запрограммирова­ны, как правило, на одну и ту же скорость.

Меню "J''-режима следующее (на экране не показывается):

В — измеритель джерков;

L — первая загрузочная программа;

М — первая загрузочная программа;

S — клавиша SAVE;

S/0 "SAVE" с нормальным пилоттоном и с нормальной скоростью;

А — прерывание. Очищается экран, бордюр становится жел­тым;

Q — сброс (аналогично "NEW).

• 9. Начало работы

Прежде всего вам надо померить "джерки" клавишей "В". Для этого перемотайте ленту и установите ее в начало джеркитона. Нажмите PLAY на магнитофоне и держите "В" на компьютере до тех пор, пока пройдет вся джеркованная часть программы. Как только пойдут байты, нажмите SPACE и выключите маг­нитофон. Если вы будете ждать слишком долго, программа может сбиться.

Фактически нет необходимости в перегоне всего джеркитона, можно начать и с середины. Важно, измеритель захватил и не­сколько последующих байтов. Замер можно повторить. Обычно программы имеют один джеркитон на каждый блок.

• 10. Загрузка частей с джеркитонами

Для этой цели служат две клавиши — "L" и "М". Более ранние программы обычно требуют "L", а более поздние — "М". Чтобы выбрать, какая именно клавиша вам нужна, надо:

а) Установить программу в том же месте, где начинается за­грузка экрана;

б) Нажать "PLAY" на магнитофоне и "L" на компьютере. Если цветовые атрибуты идут правильно, значит клавиша "L" выбрана верно;

в) В противном случае использовать "М".

• 11. Запись

Установите чистую кассету, включите "RECORD" и нажмите ' клавишу "S" для записи с джеркитонами или для записи без них.

• 12. Клавиша "А"

Нажатие этой клавиши приводит к очистке экрана, но она не влияет на состояние измерителя джерков.

• 13. Прочие возможности

Нажатием клавиши SPACE во время загрузки или выгрузки вы можете прервать работу программы и возвратиться к главному меню.

• 14. Режим "В"

В этом режиме есть возможность копирования программ со |; скоростными загрузчиками, в том числе и тех, которые при за­грузке могут выполнять проверку экрана.

Меню "В"-режима:

L — загрузка блоков длиной до 48300 байт;


М — загрузка блоков от 48300 до 50К;

N — загрузка блоков свыше 50К;

J — загрузка блоков, если режим " " не работает (только для нормальной скорости);

3 — загрузка длинных блоков, начинающихся на экранной области;

S — запись блоков;

Р — спец. клавиша для записи (используется после "С");.

$ (доллар.) запись с нормальной скоростью и нормаль­ным пилотгоном;

С — подсчет числа байтов для работы с режимами "J" и "L";

В — измеритель числа скорости ввода;

Q — сброс;

А — прерывание и очистка экрана.

Замечание. После использования клавиш J или 3 для за­грузки и последующей выгрузки, программа автоматически вы­полняет NEW.

• 15. Изменение скорости ввода

При первом входе в LERM в компьютере задана нормальная скорость ввода/вывода. Если блок имеет нестандартную ско­рость, то прежде чем что-либо делать, вам необходимо замерить скорость, для этого:

а) Установите ленту в начале этого блока, который вы со­бираетесь копировать. Нажмите "PLAY" и пропустите пилоттон;

б) Когда пилоттон пройдет и пройдут байты, нажмите "В", постарайтесь найти достаточно "шумную" зону (при изображе­нии экрана, например, встречаются подряд сотни одинаковых байтов, что воспринимается как один чистый звуковой тон).

Примечание. Некоторые программы имеют различные ско­рости для различных блоков, поэтому измеритель надо приме­нять всякий раз снова. Можно проверить, правильно ли произ­водится замер скорости. Если в программе есть SCREEN, попробуйте загрузить экран операцией "L". Если экран и атрибу­ты правильные, но сдвинуты на один элементарный квадрат, то замеренное значение правильное.

• 16. Операции загрузки

Самая большая проблема состоит в том, что кроме повышен­ной скорости блоки могут иметь и избыточную длину. Чтобы с ними справиться, существуют операции, которые загружают программу за счет порчи картины экрана. В то же время есть

программы, которые выполняют проверку экрана, бывают также программы более 48К.

а) Клавиша "L".

Загружает блоки объемом до 48300 байт. Картина экрана сдвигается на один элементарный квадрат. После копирования никакой порчи экрана нет. Это основной режим загрузки.

б) Клавиша *'М".

Загружает блоки от 48300 до 50К. Картинка портится. Копия также будет иметь испорченную картинку. Тем не менее, если программа не проверяет состояние экрана, то она будет работать нормально. Этот режим — ваша первая линия атаки на блоки, превышающие 48.3К.

Все остальные режимы предполагают предварительное ис­пользование счетчика "С". Помните, что счетчик можп бып. задействован как до, так и после псрсхол.1 и режим "И"

в) Клавиша "N".

Загружает программы Гкгит диииш^г. чгм "М", но ж >ч”*1 нш

КарТИНКИ ЛД1Ч1. llplHVH IHVl'l lllh*('

г) Кл;1ниш;1 "J"

Применяется длмОломн”, |ит”(”(“иэ ^шгучктш жфМйЛЬМиЙ скоростью и имеют длину rttun-f 4N ,1К и ””р “йчимнг””^” f М(уи' кой экрана. В этом случ.и- мршнм не тюники

д) Клавиша "З".

Применяется, как и клавиша".!", ном ичхлуын”, иждоАлнк начинает загружаться с экрана.

Резюме. Итак, вам надо определить длину нинчи funihti, hi пользуя "С", и выбрать загрузочную клавишу в лшишмш i" in длины блока, скорости загрузки и наличия проверки искажений экрана.

Что же делать, если программа имеет и скоростной загрузчик, и проводит проверку экрана одновременно? Для этого есть спе­циальный обходной путь (см. режим "Р").

• 17. Загрузка

Установите ленту на начало блока, который вы собираетесь копировать. Нажмите "PLAY" и соответствующую загрузочную клавишу. После загрузки остановите ленту.

• 18. Запись

1) Клавиша "S" (нормальная запись).

Вставьте чистую ленту в магнитофон. Нажмите "RECORD" и затем "S". Программа будет записана с той же скоростью, с какой загружалась. Повторение нажатия "S" даст повторение за­писи, за исключением режимов "J" и "З", о чем упоминалось выше.

2) Клавиша 0.

Если у вас программа со скоростным загрузчиком, а вы хотите конвертировать ее в нормальную, нажмите 0 до нажатия "S".

3) Клавиша "Р" (используется с "С" и "L"),

Если у вас есть скоростной блок, слишком длинный для'"Ь", но в то же время использовать "М" нельзя, т.к. в программе есть проверка области экрана, то вы можете попробовать следующее (хотя все это метод проб и ошибок):

— замерить длину "С";

— загрузить через "L";

— записать через "Р".

Заметьте, что счетчик "С" может быть запущен либо после главного меню (см. п. 2), либо из режима "В" (см. п. 19 ниже).

• 19. Клавиша'"С" для подсчета байт

В этом режиме клавиша "С" работает точно так же, как и в п. 2. После нажатия "PLAY" на магнитофоне просто держите клавишу "С". Хотя при этом отсчет байт на экране не изобража­ется.

• 20. Клавиша "Q"

Клавиша "Q" сбрасывает программу. Ее действие аналогично команде "NEW.

• 21. Клавиша "А"

Она очищает экран и устанавливает все в исходное поло­жение.

• 22. Полезные советы

Выполнение копий с джеркованных программ и программ со скоростными загрузчиками — это довольно сложная задача, по­тому что все прочие факторы становятся гораздо более критич­ными. Вам придется экспериментировать со своим аппаратным обеспечением. Обычно вопрос правильности ввода программы упирается в правильный подбор громкости сигнала.

1) Желательно иметь магнитофон попроще, по возможности без автоматической регулировки уровня сигнала при записи. Го­ловка должна быть чистой и точно установленной. Лента должна быть высококачественной, а оригинал — в достаточно пригодном состоянии. Если программа загружается только один раз из че­тырех, то вам придется потратить больше времени на ее ввод.

2) Загружайте программу в компьютер с уровнем громкости, который вы обычно используете для ввода программ.

3) Вполне возможно, что копия, которую вы выполните, будет иметь более высокий уровень, чем оригинал. Поскольку джеркованные программы и программы с ускоренными загрузчиками крайне чувствительны к уровню записи, вам придется поэкс­периментировать с установкой уровня записи таким образом, чтобы копия имела надежную загрузку. Обычно мы рекоменду­ем:

а) для программ со скоростными загрузчиками проводить за­грузку с пониженным уровнем (примерно на 20%) по сравнению с загрузкой нормальных программ. После того, как вы подберете нормальный уровень ввода, отметьте его на ленте, чтобы потом долго не подбирать его;

б) для программ с джеркованными пилоттонами — так же, как и для скоростных загрузчиков, или ниже (на 20-50%). На практике устанавливают уровень лишь чуть выше, чем это не­обходимо для приема джеркитона, т.е. так низко, как это воз­можно;

в) если экран испорчен (а не просто сдвинут), то нет смысла продолжать дальнейшую загрузку. Остановите ленту и измените уровень;

г) поскольку уровень копии выше, чем уровень оригинала, возможно, что при работе с копией вам придется работать в мень­шем диапазоне уровней громкости. Мы обнаружили, что для мно­гих копий, в частности, с джерками, можно повысить надежность ввода, если соединить гнездо "EAR" магнитофона при загрузке с гнездом "MIC" компьютера вместо "EAR". Это возможно, т.к. и "EAR", и "MIC" могут использоваться для загрузки, но "MIC" требует более высокого уровня сигнала. Такой подход может поз­волить использовать более широкий диапазон установки уровня на магнитофоне при загрузке.

К сожалению, вам придется экспериментировать. Многие от­мечают, что защищенные программы очень плохо вводятся. Ко­личество программ с рекламациями очень высоко. Они вводятся с одного магнитофона, но не вводятся с другого.

4) Мы считаем, что, как правило, критичным является только один блок в программе, поэтому переделать бывает нужно только его.

5) Следует применять чистые (новые) ленты для записи прог­рамм. Если на ленте уже была какая-то запись, то магнитофон должен ее стереть, а стирающая головка не у всех магнитофонов достаточно эффективна, поэтому остаются фоновые шумы.

6) Будьте терпеливы. Осилить защищенные программы очень не просто. К тому же имейте в виду, что LERM не все программы в состоянии копировать.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Информацриум - Обзор журналов и книг об Амиге.
Проекты - печатная брошюра "этюды в программировании на ассемблере z-80" (новый проект от создателе газеты Абзац)
ZX-Party - Первая информация о CC1!
MY SPEKK - Описaлoвo прислaл нaм Жeня Григoрьeв из гoрoдa Нoвoчeбoксaрскa, мoлoдeц. Хoть oчeнь крaткo, нo нaписaл!
Экспертиза - прохождение игры OСЕАN СONQЕDOR.

В этот день...   21 ноября