Глава 11 - перенесение кассетных программ на диск.

Дисковая операционная система для ПК "ZX Spectrum"

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

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