Копировщик защищенных программ LERM-7
Определения:
1.Пнлоттон (иногда просто "тон", сокращенно - [Т)).
При загрузке программы или при их записи на ленту вы видите в гамом начале
широкие синие и красные полосы. Это пилоттон [Т). Он обеспечивает надежность
ввода кодов в память компьютера.
2.Джеркитон (сокращенно - [J]).
Это прерывистый пилоттон. Он был разработан для защиты от копирования прог-
раммы. Вместо плавного перемещения красноголубых полос наблюдается их движение
рывками, сопровождающееся отравистыми звуковыми сигналами. Этот способ довольно
широко применяется в последнее время, например фирмами OCEAN, UL1IMA7E и други-
ми .
3.Байты (сокращенно (В]).
После тона идут байты. Они сопровождаются узкими синими и желтыми полосами на
экране. Программист может сделать их другого цвета, а может (овеем не выводим»,
используя свой загрузчик.
4.Блок кодов.
Пилоттон вместе с последующими данными называется блоком кодов.
5.Скорость загрузки/выгрузки.
Обычно SPECTRUM выполняет LOAD и SAVE со вполне определенной скорос1ьн>. Как
правило, это 1500 бод (бит/сек). Если вы увеличите теми и снизите время члгруt-
ки. вам придется расплачиваться снижением надежности ввода. Современные нрог
раммы иногда умеют увеличть скорость ввода и LERM-7 может выполнить копирование
таких программ.
Основные способы защиты программ:
а) использование очень длинных программ, более 48к;
б) применение различных скоростей ввода ("AUTOMENI А");
в) прерывистый пилоттон - джеркитон ("DECATHLON");
г) тонинг ("CHUCKIЕ EGG");
д) короткий пилоттон;
е) комбинация различных методов ("DECATHLON");
Заголовок (HEADER)
Рассмотрим загрузку бейсик-программы. Сначала вы видите широкие красно-голу-
бые полосы пилоттона. слышите звук. Это идет подготовка к загрузке. Затем идет
короткая серия узких желто-синих полос. Это первый блок: 1T]{BJ. Здесь |В1 это
заголовок (хедер). Он короткий, т.к. содержит только 17 байт. Именно поэтому на
экране появляется сообщение:
PROGRAM: FRED или
BYTES: FRED
После загрузки еще одного блока мы будем иметь:
блок 1 блок 2
-------------------- пауза ---------------------
fТ1 [Hi [Т] [В] 1Н] - это хедер (раньше мы писали [В]).
Данные о хедере.
SPECTRUM имеет 17 байтов в хедере. Рассмотрим состав этих данных. Например:
HEAD : 0-250-10-20
Вы видите 4 числа. Их всегда должно быть 4.
Первое число:
0 - бейенк
1 - числовой массив
2 - стринговый массив
3 - коды
Отсюда видно, что пример, приведенный выше, записан в бейсике.
Третье число: в бейсике здесь задается номер строки, с которой программа
должна автостартовать. Если это число больше, чем 32768. то автостарт не проис-
ходит.
В кодах, т.е. если первое число равно 3. здесь указывается на адрес, в кото-
рый должен быть помещен первый байт.
Четвертое число : задает количество байтов бейсика.
Пример: HEAD: 3-780-3687 4-780. Задает блок в кодах. Длина ого 740 бай». Заг-
рузка начинается с адреса 36874.
Все программы должны начинаться с хедера, за которым идут байты: [ТИН].
Инструкция к LERM-7
Цель программы: копирование очень длинных программ, программ с высокоскорос-
тными загрузчиками, программ с джеркованным пилоттоном.
После загрузки экран темнеет и появляется меню:
L - загрузка нормальных хедеров и байтов
Н - загрузка программ без хедеров
S - запись того, что загружено в режимах L и Н с подсчетом бантов (счетчик)
Q - прекращение работы (Q=NEW) в вход в режим "В" для загрузки программ из-
быточной длины и программ со скоростными загрузчиками
J - вход в режим "J" для копирования программ с джеркованными пнлоттонами
Режимы "Н" и "L" копируют только части программ, записанные с нормальной ско-
ростью. длиной до 38590 байтов, здесь копируется только одна часть [Т1(Н] [Т]
[В] или один блок без заголовка [Т][В]. Этим она отличается от LERM-6. Наиболее
целесообразно для нормальных блоков применять LERM-6. а для более трудных бло-
ков оставлять LERM-7. работая с ними в режимах "В" н "J".
Копирование программ
A) загрузив ТС-7, установить программу, которую вы хотите скопировать.
Б) нажмите "L" на спектруме н "PLAY" на магнитофоне. Убедившись в том. что
уровень сигнала установлен в "обычном" для загрузки программы положении.
B) после загрузки первой части [Т][Н] [Т][В]. остановите магнитфон. Вставьте
чистую ленту, включите запись, нажмите "S" на компьютере. Чтобы выполнить вто-
рую копию на другой ленте, нажмите "S" еще раз.
Г) дальнейшие части программы могут быть "нормальными", с хедерами и байта-
ми, а могут быть без хедеров. Для копирования первых используйте "L", для вто-
рых - "Н". Если вы не уверены, пользуйтесь "Н". Загрузив очередную часть, пов-
торите пункт В.
Д) повторяйте пункт "Г" до тех пор, пока вам не встретится:
- часть с джеркованными пилоттонамн;
- блок с увеличенной скоростью загрузки;
- очень длинный блок;
- блок с очень коротким пилоттоном.
Для работы с такими блоками вам надо пользоваться режимами "В" или "J". Для
первого - "J", а для второго - "В".
Эта операция позволяет посчитать количество байтов. Она работает и на ско-
ростных загрузчиках, но не с джерками.
Работа счетчика:
1) установить начало блока, подлежащего измерению;
2) нажать "PLAY" на магнитофоне и "С" на компьютере. Цвет бордюра изменится.
После прогона блока на экране будет изображена его длина.
Внимание! Если после этого вы перейдете в реждим "В", то замеренная длина бу-
дет передана в этот режим, где есть свой собственный счетчик. Это сэкономит
время, т.к. измерение длины придется выполнять только один раз.
Если программа имеет блок данных и вы не уверены, сможет ли режим "Н" загру-
зить ее, то после измерения "С" назначьте "Н" . если блок менее 38к. Если блок
больше 38к. переходите в режим "В", при этом измерять длину блока уже не нужно.
Кроме того. имейте в виду, что весьма важно знать длину блока до перехода
в режим "В", т.к. выбор клавиши для его копирования зависит от длины блока.
Прекращение работы осуществляется клавишей "Q".
Фальшхедеры. Режим "L" не может загружать фальшхедеры. но это можно преодо-
леть. если копировать каждый блок по отдельности через "Н".
[Т][F] С Т | С В1 здесь [F] - это фальшхедеры.
Вход в режимы "В" и "J".
Для этого нажмите "В" или "J". Бордюр станет красным, а на экране появится
сообщение: "Нажать любую клавишу".
Замечание: вы обнаружите, что режимы "J" н "В" обычно смещают катиику на эк-
ранее на одит квадрат. Это не ошибка. Во всем остальном картина должна быть нор-
мальной. Если нет, то проверьте уровень громкости.
Когда бордюр станет красным, нажмите пробел. Экран станет черным, бордюр жел-
тым. Если это не так, попробуйте еще раз.
Замечание: в режимах "В" и "J" клавиша "Н" предназначена для измерения длины,
что она и делает в специально выделенной для этого области памяти. Поэтому если
вы намерены "делать "SAVE" еще раз. ни для чего другого эту клавишу использовать
нельзя. т.к в программе будут испорчены байты. Заметьте также, что если прог-
рамма очень длинная, то счетчик "В" может быть "затерт" загружаемой программой.
В этом случае клавиша "Вм станет бесполезной.
Режим "J".
Этот режим работает с джеркитонамн. Предупреждаем сразу, что это не просто,
см. Раздел "Полезные советы". Эти загрузчики обычно являются также скоростными,
но они запрограммированы, как правило, на одну и ту же скорость.
Меню ".Р-режима следующее (на экране не показывается):
В - измеритель джерков;
L - первая загрузочная программа;
М - первая загрузочная программа;
S - клавиша SAVE;
S/0 - "SAVE" с нормальными пнлоттоном и скоростью
А - прерывание. Очищается экран, бордюр становится желтым
Q - сброс (аналогично "NEW").
Начало работы
Прежде всего вам надо померить "джерки" клавишей "В". Для этого перемотайте
ленту и установите ее в начало джеркитона. Нажмите PLAY на магнитофоне и держи-
те "В" на компьютере до тех пор. пока пройдет вся джеркованная часть программы.
Как только пойдут байты, нажмите SPACE и выключите магнитофон. Если вы будете
ждать слишком долго, программа может сбиться.
Фактически нет необходимости в перегоне всего джеркитона. можно начать и с
середины. Важно, чтобы измеритель захватил и несколько последующих байтов. За-
мер можно повторить. Обычно программы имеют один джеркнтон на каждый блок.
Загрузка частей с джеркамн.
Для этой цели служат две клавиши - "L" и "М". Более ранние программы обычно
требуют "L", а более поздние - "М". Чтобы выбрать, какая именно клавиша вам
нужна, надо:
A) установить программу в том же месте, где начинается загрузка экрана.
Б) нажать "PLAY" на магнитофоне и "L" на компьютере. Если цветовые атрибуты
идут правильно, значит клавиша "L" выбрана верно.
B) в противном случае использовать "М".
Запись. ■ -, ,
Установите чистую кассету, включите "RECORD" и нажмите клавишу "S" для записи
с джеркитонамн или для записи без них.
Клавиша "А".
Нажатие этой клавиши приводит к очистке экрана, но она не влияет на состояние
измерителя джерков. Нажатием клавиши SPACE во ;рремя загрузки или выгрузки вы
можете прервать работу программы и возвратиться; к. главному меню.
Режим "В". ..-.г,,
В этом режиме есть возможность копирования программ со скоростными загрузчи-
ками, в том числе и тех. которые при загрузке могут выполнять проверку экрана.
Меню "В"-режима:
L - загрузка блоков длиной до 48300 байтов *
М - загрузка блоков от 48300 до 50к
N - загрузка блоков свыше 50к
J - загрузка блоков (только для нормальной скорости)
3 - загр.длинных блоков, начинающихся на экранной области
S - запись блоков
Р - спец. клавиша для записи (используется после "С")
t (доллар) - запись с нормальной скоростью и нормальном пнлоттоном
С - подсчет числа байтов для работы с режимами "J" и "L"
В - измеритель числа скорости ввода
Q - сброс
А - прерывание и очистка экрана
Замечание: после использования клавиш J нли 3 для загрузки и последующей выг-
рузки, программа автоматически выполняет NEW.
Изменение скорости ввода.
При первом входе в LERM в компьютере задана нормальная скорость ввода/вывода.
Если блок имеет нестандартную скорость, то прежде чем что-либо делать, вам
необходимо замерить скорость, для этого:
А) установите ленту в начале этого блока, который вы собираетесь копировать.
Нажмите "PLAY" и пропустите пилоттон.
Б) когда пилоттон пройдет и пройдут байты, нажмите "В", постарайтесь найти
достаточно "шумную" зону (при изображении экрана, например, встречаютсяvподряд
сотни одинаковых байтов, что воспринимается как одни чистый звуковой тон). ч
Примечание: некоторые программы имеют различные скорости для различных бло-
ков, поэтому измеритель надо применять всякий раз снова. Можно проверить, пра-
вильно ли производится замер скорости. Если в программе есть SCREENS, попробуй-
те загрузить экран операцией "L". Если экран и атрибуты правильные, но сдвинуты
на один элементарный квадрат, то значит замеренное значение - правильное.
Операции загрузки.
Самая большая проблема состоит в том, что кроме повышенной скорости блоки мо-
гут иметь и избыточную длину. Чтобы с ними справиться, существуют операции, ко-
торые загружают программу за счет порчи картины экрана. В то же время, есть
программы, которые выполняют проверку экрана, бывают также программы более 48к.
A) клавиша "L".
Загружает блоки объемом до 48300 байтов. Картина экрана сдвигается на один
элементарный квадрат. После копирования накакой порчи экрана нет. Это основной
режим загрузки.
Б) клавиша "М".
Загружает блоки от 48300 до 50к. Картинка портится. Копия также будет иметь
испорченную картинку. Тем не менее, если программа не проверяет состояние экра-
на, то она будет работать нормально. Этот режим - ваша первая линия атаки на
блоки, превышающие 48.ЗК.
Все остальные режимы предполагают предварительное использование счетчика "С".
Помните, что счетчик может быть задействован как до, так и после перехода в ре-
жим "В".
B) клавиша "N".
Загружает программы более длинные, чем "М", но искажение картинки здесь при-
сутствует также.
Г) клавиша "J".
Применяется для блоков, которые загружаются с нормальной скоростью и имеют
длину более 48.ЗК и не начинается с загрузки экрана. В этом случае картинка не
портится.
Д) клавиша "3".
Применяется, как и клавиша "J", но в тех случаях, когда блок начинает загру-
жаться с экрана.
Резюме. Итак, вам надо определить длину своего блока, используя "С" и выбрать
загрузочную клавишу в зависимости от длины блока. Скорости загрузки н наличия
проверки искажений экрана.
Что же делать, если программа имеет и скоростной загрузчик, и проводит про-
верку экрана одновременно? Для этого есть специальный обходной путь, см. Режим
"Р".
Загрузка.
Установить ленту на начало блока, который вы собираетесь копировать. Нажмите
"PLAY" и соответствующую загрузочную клавишу. После загрузки остановите ленту.
Запись.
1) Клавиша "S" (нормальная запись).
Вставьте чистую ленту в магнитофон. Нажмите "RECORD" и затем "S". Программа
будет записана с той же скоростью, с какой загружалась. Повторение нажатия "S"
даст повторение выше.
2) Клавиша 0.
Если у вас программа со скоростным загрузчиком, а вы хотите конвертировать ее
в нормальную, нажмите 0 до нажатия "S".
3) Клавиша "Р" (используется с "С" и "LV).
Если у вас есть скоростной блок, слишком длинный для "L". но в то же время
использовать "М" нельзя, т.к. в программе есть проверка области экрана, то вы
можете попробовать следующее (хотя все это метод проб и ошибок):
- замерить длину "С";
- загрузить через "L";
- записать через "Р".
Заметьте, что счетчик "С" может быть запущен либо после главного меню (см.
П.2). либо из режима "В" (см. п. 19 ниже).
Клавиша "С" для подсчета байтов.
В этом {режиме клавиша "С" работает точно также, как и в п.2. После нажатия
"PLAY** на 'магнитофоне просто держите клавишу "С". Хотя при этом отсчет байтов
на экране не изображается.
Клавиша "Q".
Клавиша "Q" сбрасывает программу. Ее действие аналогично команде "NEW".
Клавиша "А".
Она очищает экран и устанавливает все в исходное положение положение.
Полезные советы.
Выполнение копий с джеркованных программ и программ со скоростными загрузчи-
ками - это довольно сложная задача, потому что все прочие факторы становятся
гораздо более критичными. Вам придется экспериментировать со своим аппаратным
обеспечением. Обычно вопрос правильности ввода программы упирается в правильный
подбор громкости сигнала.
1) Желательно иметь магнитофон попроще, по возмржности без атоматической ре-
гулировки уровня сигнала при записи. Головка должна быть чистой и точно уста-
новленной. Лента должна быть высококачественной, а оригинал - в достаточно при-
годном состоянии. Если программа загужается только один раз из четырех, то вам
придется потратить больше времени на ее ввод.
2) Загружайте программу в компьютер с уровнем громкости, который вы обычно
используете для ввода программ.
3) Вполне возможно, что копия, которую вы выполните, будет иметь более высо-
кий уровень, чем оригинал. Поскольку джеркованные программы и программы с уско-
ренными загрузчиками крайне чувствительны к уровню записи.вам придется поэкспе-
риментировать с установкой уровня записи таким образом, чтобы копня имела на-
дежную загрузку. Обычно мы рекомендуем:
A) для программ со скоростными загрузчиками проводить загрузку с пониженным
уровнем (примерно на 20%) по сравнению с загрузкой нормальных программ. После
того. как вы подберете нормальный уровень для ввода, отметьте его на ленте,
чтобы потом долго не подбирать его.
. Б) для программ с джеркованнымн пилоттнамн - так же. как и для скоростных
Загрузчиков. или ниже (на 20-50%). На практике устанавливают уровень лишь чуть
выше, чем это необходимо для приема джеркитона. т.е. так низко, как это возмож-
но.
B) если экран испорчен (а не просто сдвинут), то нет смысла продолжать
дальнейшую загрузку. Остановите ленту и Измените уровень.
Г) поскольку уровень копни выше, чем уровень оригинала, возможно. что при
работе с копией вам придется работать в меньшем диапазоне уровней громкости. Мы
обнаружили, что для многих копий, в частности, с джеркамн, можно повысить на-
дежность ввода. если соединить гнездо "EAR" магнитофона при загрузке с гнездом
"MIC" компьютера вместо "EAR". Это возможно, т.к. и "EAR", и "MIC" могут ис-
пользоваться для загрузки, но "MIC" требует более высокого уроЬня сигнала. Та-
кой подход может позволить использовать более широкий диапазон установки уровня
»а магнитофоне при загрузке.
К сожалению, вам придется экспериментировать. Многие отмечают, что- защищенные
программы очень плохо вводятся. Количество программ с рекламациями очень высо-
ко. Они вводятся с одного магнитофона, но не вводятся с другого.
4) Мы считаем, что как правило критичным является только один блок в програм-
ме, поэтому переделать бывает нужно только его.
5) Следует применять чистые (новые) ленты для записи программ. Если на ленте
уже была какая-то запись, то ее магнитофон должен стереть, а стирающая головка
не у всех- магнитофонов достаточно эффективна, поэтому остаются фоновые шумы.
в) Будьте терпеливы. Осилить защищенные программы очень не просто. К тому же
имейте в виду, что LERM не все программы в состоянии копировать.