11. ПЕРЕНЕСЕНИЕ КАССЕТНЫХ
ПРОГРАММ НА ДИСК
Если программа написана вами, то ее перенос на
диск не вызывает проблем. Вы загружаете ее с ленты
в память SPECTRUM как обычно, а затем производи-
те ее запись на диск непосредственно с клавиатуры:
RANDOMIZE USR 15619:REM:SAVE "NIPPER 2"
или
RANDIMIZE USR 15619:REM:SAVE "NIPPER 2"
CODE 30000.6000
Ряд других программ можно скопировать на диск,
если использовать программу-утилит TAPECOPY,
находящуюся на диске утилитов (см.приложение).
Синтаксис для этих программ будет преобразован с
целью обеспечения их запуска из TRDOS.
Для других программ, которые трудно преобразу-
ются или вообще не могут быть преобразованы, ис-
пользуется магическая кнопка.
11.1. Преобразование программ
Очень часто программа является смесью БЕЙ-
СИК-программы и машинных кодов, чтобы повысить
скорость ее выполнения. Бейсиковый элемент может
быть различным, от простого загрузчика кодов до бо-
лее сложного интерфейса между программой и поль-
зователем
Для тех программ, которые используют в качестве
интерфейса БЕЙСИК, их преобразование для исполь-
зования в TRDOS относительно просто. Другие про-
граммы требуют интенсивного вмешательства, чтобы
их приспособить к запуску из TRDOS. Самые трудные
из них могут быть приспособлены к использованию в
TRDOS с помощью магической кнопки (см.раздел
11.3) как последнего средства решения проблемы.
Нам необходимо получить доступ до всех команд
LOAD и SAVE в исходной БЕЙСИК-программс для
производства изменений, так что первым шагом явля-
ется распечатка БЕЙСИК-программы командой LIST.
Эта техника вполне подходит для индивидуальных
программ. Некоторые программы могут иметь не-
сколько команд LOAD и SAVE для их выявления сле-
дует использовать построчный просмотр
БЕЙСИК-программы. Для каждой найденной коман-
ды ее следует переписать, используя следующий пре-
фикс:
RANDOMIZE USR 15619:REM:
который надо вставить непосредственно перед ко-
мандами LOAD и SAVE.
Вы должны также помнить следующее. Во-первых,
TRDOS-команда должна быть последним оператором
в строке, а, во-вторых, должно быть указано обозна-
чение дисковода.
Первое соображение обычно требует некоторой не-
большой модификации в части нумерации и содержи-
мого строк. Следующий пример демонстрирует оба
этих момента.
Пусть имеется программа:
500 IF Х=5 THEN INPUT "NAME";N$: SAVE N$
DATA C$():
VERIFY N$ DATA C$():GOSUB 700
505 IF X=V THEN GOSUB 800:INPUT
"TITLE";T$:SAVE T$:
SAVE T$ CODE 50000,575
50 6.........дальнейшая программа
и пусть она должна быть записана на текущий ди-
сковод.
Тогда эта программа должна быть изменена следу-
ющим образом:
500 IF Х=5 THEN INPUT
"NAME";N$:RANDOMIZE 'JSR 15619:REM:
SAVE N$ DATA C$()
502 GOSUB 700
504 IF X=V THEN GOSUB 800:INPUT
"TITLE";T$:RANDOMIZE
USR 15619.REM:SAVE
T$
505 RANDOMIZE USR 15619:REM:SAVE T$
CODE 50000.575
50 6........дальнейшая программа
В новой программе видоизменена нумерация
строк. Появились строки 502 и 504, что обусловлено
необходимостью иметь TR DOS-команду последней в
строке. В общем случае может оказаться необходимым
даже добавить другие строки, не содержащие непос-
редственно TRDOS-команд.
В любом случае должны быть просмотрены все
строки программы, т.к. может оказаться, что в резуль-
тате выполнения других частей программы осуществ-
ляется переход к номерам строк, которые вы
изменяете.
Т.о. правила преобразования программ таковы:
1. TR DOS-команда должна быть последним опера-
тором в строке.
2. Ко всем командам LOAD и SAVE необходимо
добавить префикс RANDOMIZE USR 15619:REM:
3. Если используется более 1-го дисковода, следует
убедиться, что текущим является тот, который вам
нужен.
4. Все файлы должны иметь имена.
5. Если вам пришлось добавить новые строки, не-
обходимо проверить все строки программы и, если
нужно, изменить адреса переходов.
11.2. Магическая кнопка
Магическая кнопка MAGIC расположена на за-
дней стороне контроллера дисковода. Ее назначением
является запись на диск программ, обычно хранимых
на ленте, с целью их последующего ввода с диска в
компьютер.
Имеется много программ, которые выполнены так,
что они или вообще не могут быть преобразованы для
записи их на диск, или эта процедура требует значи-
тельных усилий, как например для коммерческих
программ с их ухищренной защитой от копирования.
Обычно в этих случаях видоизменение команд
SAVE и LOAD невозможно, что обуславливает необ-
ходимость использования других средств для записи
этих программ на диск.
Тогда для записи всей программы и файлов на диск
может быть использована магическая кнопка. При
этом на диск выгружается вся память компьютера.
Некоторая избыточность длины создаваемого фай-
ла, которая зависит от конкретной программы, вполне
возмещается скоростью и гибкостью работы TRDOS-
системы.
Форматированный чистый диск для этих целей не-
обязателен, но в этом случае он должен устанавли-
ваться в дисковод А. Установив нужный диск, вам
необходимо проделать следующее (считаем, что вы
находитесь в TRDOS):
1. Вернуться в БЕЙСИК по команде
RETURN <Enter>
2. Перевести переключатель системы в положение
OFF.
3. Очистить память SPECTRUM путем
PRINT USR 0<Enter>
4. Обычным образом ввести и запустить программу
с кассеты.
5. После того, как программа загружена и запуще-
на, нажать магическую кнопку MAGIC и быстро ее
отпустить.
После этого вся компьютерная память копируется
на диск и запоминается на нем в виде файла.
SPECTRUM &: создается только один файл.
Этот файл является отраже-
нием всего ОЗУ компьютера
величиной 48К. Получен-
ный файл будет наблюдаться
в каталоге под именем и
иметь тип CODE.
SPECTRUM 128: в зависимости от количества
используемых страниц па-
мяти (сверх 64К) на диск мо-
жет быть записано до 7
файлов. Причем, распечатка
каталога диска после исполь-
зования магической кнопки:
TITLE:TEST
7 FILE (S)
О DEL.FILE
А. @ <С> 192 @7<С> 64
А: @ 6 <С> 64 :@4 <С> 64
А: @3 <С> 64 :@1 <С> 64
А: @ 8 <С> 1
Семейство имен этих файлов есть
Для созданных файлов (для всех SPECTRUM)
другой синтаксис процед> р загрузки и запуска. Вместо
обычных команд используется ключевое слово SOS
"GO ТО"
GOTO CODE
Программа может быть переименована или скопи-
рована на другой диск под ее собственным именем и
запущена командой GO ТО
NEW "GAME 1". CODE
COPY "В.GAME 1", "А:@" CODE
Если надо запустить GAME 1 и диск находится в
дисководе А, соответствующая команда имеет вид:
GO ТО "GAME 1" CODE
SPECTRUM 128 можно переименовать или
скопировать все файлы
(один за другим), используя
команды NEW и COPY. Од-
нако, для вашего удобства на
диске утилитов имеется про-
грамма-утилит MAGIC
(см.приложение). Эта про-
грамма может быть также
использована для стирания
семейства файлов, записан-
ных с помощью кнопки
MAGIC.
Прежде, чем использовать кнопку MAGIC, вы дол-
жны удостовериться, что на диске не содержится фай-
лов с именами "@Г, "@2" и т.д.
Некоторые программы используют программу не-
стандартного сканирования клавиш. Для этих про-
грамм необходимо указывать имя файла на диске с
первым символом "$", например:
GO ТО "$ GAME 1" CODE
Если при проверке программы обнаружилась про-
блема опроса клавиш, то при ее копировании на дру-
гой диск под новым именем первым символом должен
быть символ "$".
Пример:
NEW "$ GAME 1". CODE
GO ТО "$ GAME 2" CODE
Во время загрузки этих файлов на экране телеви-
зора возникают различные случайные элементы, ко-
торые внешне похожи на передачу азбуки морзе.
Когда экран очистится, программа запускается из того
состояния, которое было при ее записи.