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 не все программы в состоянии копировать.