ГЛАВА 11
ПЕРЕНОС КАССЕТНЫХ ПРОГРАММ
Перенос кассетной программы, написанной Вами, особых трудностей
не представляет. Вы загружаете программу обычным способом в СОС. а
после можете записать ее на диск, введя команды:
RANDOMISE USR I5619:REM:SAVE -XXX" или
RANDOMISE USR 156I9:REM:SAVE "XXX'CODE NNNN.ZZZ
Другие программы могут быть скопированы с помощью программы
ТАРtCOPY, находящейся на диске прикладных программ UTILITY DISK.
Может возникнуть необходимость преобразовать синтаксис этих
программ, чтобы обеспечить их работоспособность в TR DOS. Если же
программу невозможно или трудно преобразовать для запуска с диска, мож-
но воспользоваться магической кнопкой.
ПРЕОБРАЗОВАНИЕ ПРОГРАММ
В большинстве случаев программы представляют собой смесь BASIC'a
и машинных кодов для обеспечения быстродействия. Причем BASIC'oeaa
часть может варьироваться от простого загрузчика машинного кода до
сравнительно сложного интерфейса между кодом и пользователем.
Для тех программ, которые используют BASIC как интерфейс, преобра-
зование для работы в TR DOS достаточно прозрачно. Другие же программы,
возможно, потребуется глубоко «ковырять», чтобы заставить работать их под
TR DOS. Некоторые, наиболее сложные, потребуют использования «магичес-
кой кнопки» как единственного средства преодолеть затруднение
Вы должны иметь доступ ко всем командам LOAD и SAVE в исходной
программе на BASIC'e. поэтому первым делом распечатайте листинг.
Техника преобразования программ варьируется в зависимости от их
индивидуальных особенностей. В некоторых случаях команд LOAD и SAVE
в программе мало, и беглый просмотр листинга их сразу выявляет. Другие же
программы используют команды LOAD и SAVE в нескольких разных вариан-
тах. В этом случае самый простой выход - шагать по программе строчка за
строчкой, высматривая их. А когда обнаружим, используем уже знакомый
префикс - RANDOMIZE USR 15619:REM: , который вставляем в программу
Явред существующими командами LOAD и SAVE.
Следует постоянно помнить следующие два момента:
первое - команда TR DOS всегда является
последней в строке,
второе - с каким из дисководов в данный мо-
мент Вы работаете.
Ниже проиллюстрируем оба этих момента:
500 IF Х«5 THEN INPUT "NAME":N$:SAVE N$ DATA C$0:
VERIFY N$ DATA C$():GOSUB 700
505 IF X-V THEN GOSUB 800:INPUT "T1TLE";T$:SAVE T$:
SAVE T$ CODE 50000,575
50 6..................
Предполагаем, что файлы записываются на дисковод по умолчанию.
Новая программа
500 IF Х«5 THEN INPUT t4NAMEv;N$:
RANDOMISE USR I5619:REM:SAVE N$ DATA C$<>
502 GOSUB 700
504 IF X«V THEN GOSUB 800:!NPUT "TITLE";T$:
RANDOMISE USR 15619:REM:SAVE T$
505 RANDOMISE USR I56I9:REM:SAVE T$ CODE 50000,575
50 6..................
Подгонка строк будет варьироваться от программы к программе. В
данном примере оказалось достаточно вставить строки 502 и 504. чтобы
получить по одной команде TR DOS на строку. В ином случае придется
встряхнуть и другие строки, для освобождения пространства, хотя сами
эти строки прямого отношения к LOAD и SAVE не имеют. В любом случае
необходимо следить за последовательностью выполнения операторов
программы. Бывает и так, что в результате изменения номеров строк какой
нибудь оператор перехода попадет не туда, куда надо.
Итак, просуммируем правила преобразования:
• 1. Команда TR DOS должна быть последней в строке.
• 2. Ко всем существующим командам LOAD и SAVE необходимо
лишь добавить префикс RANDOMISE USR 15619:REM:
• 3. Если используется больше одного дисковода, погните, с каким
Вы работаете.
• 4. Все файлы должны иметь имена.
• 5. Проверяйте последовательность выполнения операторов, когда
добавляете промежуточные номера строк.
МАГИЧЕСКАЯ КНОПКА
Магическая кнопка расположена на задней панели дискового интерфей-
са. Ее назначение - записывать на диск кассетные программы без какого-
либо преобразования. Многие программы написаны таким образом, что их
трудно или невозможно преобразовать для запуска с диска. Это могут быть
программы с изощренной защитой либо программы, которые используют ко-
манды SAVE и LOAD для чтения или записи файлов данных. В этом случае,
когда нет возможности подменить команды СбС на команды TR DOS. требу-
ется иной подход.
Делается это так: порграмма загружается и создаются массивы данных,
далее, вместо команды SAVE нажимаем магическую кнопку, при этом вся
память вместе с данными записывается на диск . Последующая загрузка за-
гружает всю память - и программу и данные.
_ Некоторое неудобство, связанное с необходимостью при каждом
обновлении данных записывать поогоамму заново, практически не ощущает-
ся благодаря скорости работы TR иОъ с диском.
Для .этой цели необходимо отвести чистый отформатированный диск,
который должен находиться в дисководе А. Вот детальная последователь-
ность операций (предполагается, что мы в TR DOS):
• 1. Вернитесь в BASIC командой RETURN.
• 2. Переведите системный переключатель в положение ВЫКЛ.
• 3. Очистите компьютер командой PRINT USR 0.
• 4. Загрузите программу с кассеты и запустите ее.
• 5. После того,как программа загружена и стала работать, нажмите
магическую кнопку и сразу же отпустите.
Вся память компьютера запишется на диск в виде файла.
SPECTRUM & PLUS: на диске появится один файл, который содержит
образ 48 Кбайт ОЗУ. Посмотрев каталог диска, увидим, что имя файла а
тип - CODE.
SP£CTRUM 128: на диске может появиться до семи файлов в
зависимости от того, сколько использовано страниц памяти из верхних
64 К.
Пример каталога после использования магической кнопки:
TITLErTEST
7 FILE(S)
А:@ 192:@7 64
А:@6 64;@4 64
А:@3 64:@1 64
А:@8 1
имя у всех -
• Синтаксис загрузки у такой программы для всех компьютеров
SPECTRUM отличается от обычного LOAD и RUN. Вместо этого использует-
ся ключевое слово GOTO, например:
GOTO"@"CODE
Программа может быть переименована или скопирована на другой
диск со своим индивидуальным именем и запущена командой GOTO.
Предположим, что мы хотим запустить программу с диска в дисководе А, тог-'
да:
GOTO "GAME"CODE
, SPECTRUM 128: можно переименовать или скопировать все файлы
(один за другим], используя команды NEW и COPY. Однако к Вашим услугам
программа MAGIC на диске прикладных программ. Подробности в прило-
жении. Эта программа может быть также использована для стирания Сразу
целого семейства файлов,гзаписанных магической кнопкой.
Перед тем, как нажать магическую кнопку, убедитесь, что на диске
нет программ с именами "нф" или "@1" и так далее.
Некоторые программы используют нестандартную процедуру
сканирования клавиатооы. Для таких программ необходимо, чтобы заголовок
начинался символом % , например:
GOTO "$GAMErcODE
Если возникли проблемы со сканированием клавиатуры, то к заголовку
добавьте префикс "$ :
NEW "$GAME2* CODE
Во время загрузки таких файлов, на зкране появляются некие случайные
элементы, часто динии из точек похожие на азбуку Морзе.. Когда эта картина
исчезнет, программа запускается с того места, на котором она была останов-
лена.