10. Запись, проверка, загрузка, прогон и слияние.
Синтаксис всех этих команд одинаков. Как вы увидите, эти команды
имеют тот же самый или подобный синтаксис, как и те, которые использу-
ются для системы, основанной на кассетном накопителе.
Все эти команды действуют на файлы. Файлом на диске может быть
программа на BASIC, программа в машинных кодах, файл массива данных
или файл с последовательным/произвольным доступом. Загрузка и сохране-
ние файла с массивом данных рассматриваются в разделе 12, а файлы пос-
ледовательно/произвольного доступа в разделе 13. В этом разделе расс-
матриваются программы на BASIC и в машинных кодах.
В процессе всех пяти операций SAVE/VERIFY/LOAD/RUN/MERGE для пре-
рывания команды может использоваться клавиша BREAK. Если в дисководе
нет диска, команда будет прервана и на экране будет представлено сооб-
щение об ошибке "NO DISK". Таким же образом, если на диске нет файла,
то на экране будет сообщение об ошибке "NO FILE(S)".
10.1. Команды SAVE и VERIFY.
С помощью команды SAVE программа в SPECTRUM записывается на
диск. Следует указать название программы и взять его в кавычки.
Для программы BASIC не требуется типа файла. Однако, номер стро-
ки может быть указан после ключевого слова LINE для автопрогона. Если
номер строки не указан, то программа будет прогонятся с первой стро-
ки. Например:
SAVE "HOMEACC" LINE 100
SAVE "GRAPH" LINE
SAVE "A:DESIGN"
Для программы в машинных кодах следует указать тип файла CODE,
за которым следует стартовый адрес и количество байт, подлежащих сох-
ранению, например:
SAVE "DISCOUNT"CODE 47800,955
SAVE "B:COLLEC"CODE 32768,4000
Команда VERIFY проверяет, является ли файл, записанный на диске,
тем же самым, что и файл в памяти. Команда VERIFY может быть использо-
вана для проверки BASIC-программ, программ в машинных кодах и файлов
массивов данных. Например:
VERIFY "A:DESIGN"
VERIFY "DISCONT"CODE 47800,955
VERIFY "MONEY"DATA M()
Если файлы различаются появится сообщение-VERIFY ERROR.
10.2. Команды LOAD и RUN.
Если программа BASIC предназначена для автопрогона с номера
строки, например:
SAVE "INTEREST"LINE 25
то автопрогон будет осуществляться, какая бы команда (LOAD или
RUN) не использовалась.
Если программа BASIC не сохранена для автопрогона, то LOAD бу-
дет осуществлять загрузку и распечатку, а RUN будет осуществлять заг-
рузку и прогон неавтоматической программы прогона. Например:
LOAD"INTEREST"
RUN"DESIGN"
Как вы вероятно ожидаете TRDOS будет информировать вас о "недос-
таточной памяти", если вы сделаете попытку загрузить или прогнать
программу, которая требует больше памяти, чем имеется в распоряжении
у SPECTRUM. Это может случиться, если RAMTOP было установлено слиш-
ком низким.
Если вы вводите LOAD или RUN без названия файла, TRDOS будет
загружать или прогонять программу "самозагрузки" BASIC .
Как видно из выше приведенных примеров, синтаксис тот же самый,
что и в SPECTRUM BASIC. Что касается программ в машинных кодах, они
могут быть загружены в те же адреса из которых они были взяты на хра-
нение, например:
LOAD"MARGIN"CODE 51000
При прогоне программ в машинных кодах адрес автопрогона должен
быть тем же самым, что и стартовый адрес программы, например:
RUN "DISCOUNT"CODE 47800
при условии, что этот код предназначается для автопрогона, начи-
ная от 47800, загрузка пройдет хорошо.
Существует вариант использования загрузчика командой из двух
строк, например, заъпись (SAVE) последующей программы на диск, как
"DCTLOAD"LINE 10
10RANDOMIZE USR 15619:REM:LOAD"DISCOUNT"CODE 47800
20RANDOMIZE USR 47838
Чтобы прогнать программу, вы вводите RUN"DCTLOAD" с помощью че-
го буудет осуществляться загрузка в машинных кодах, и затем "RUN
IT", ( ее запуск), начиная от 47838.
Двухстрочный загрузчик необходим, т.к. команда TRDOS должна
быть последней записью в строке.
10.3. Команда MERGE (слияние).
Слияние TRDOS-тоже, что и слияние SOS. Она использует тоже
ключевое слово (E MODE SYMBOL SHIFT) и служит тойже цели слияния в
памяти SPECTRUM программы BASIC с диска и этой же программы, уже
имеющейся в памяти. Например:
MERGE "SUBROUT"
MERGE "B:FUNCT2"
10.4. Перонос программ,записанных на кассете.
Если вы написали программу на кассете,то копирование ее на
диск представляет некоторые трудности.Вы загружаете свою программу
с кассеты в SOS как обычно.Когда программа находится в SPECTRUM ,
она может быть записана на диск с помощью непосредственного ввода с
клавиатуры,например:
RANDOMIZE USR 15619:REM:SAVE"XXX" или:
RANDOMIZE USR 15619:REM:SAVE"XYZ"CODE NNNN,BBB
Можно скопировать много других программ с помощью программы
UTILITY DISK TAPECOPY (см.приложение).(копия на ленте обслуживающе-
го диска).
Синтаксис этих программ может потребовать преобразование с
тем,чтобы он работал при TRDOS.Для других программ ,которые трудно
или невозможно преобразовать ипрогнать на диске,можно использовать
"волшебную кнопку"(magic buttom).
10.5. Преобразование программы.
Очень многие программы представляют собой смесь BASIC и машин-
ного кода,что усовершенствует скорость их выполнения.Элемент BASIC
может варьироваться от простой рограммы загрузки кода до более слож-
ного интерфейса между кодом и пользователем.
Для тех программ ,которые используют BASIC в качестве интерфей-
са,переход на испоьзование TRDOS относительно простой.Другие прог-
раммы могут требовать значительной "утряски",чтобы их можно было из-
менить для работы с TRDOS.Некоторые трудные программы могут потребо-
вать использование "волшебной кнопки"(раздел 11.3) как единственно-
го средства решения этой проблемы.
Вы должны иметь доступ ко всем командам LOAD или SAVE в перво-
начальной программе BASIC,требущей изменения,поэтому первым шагом
является распечатка (LIST) программы BASIC.
Используемая методика должна варьироваться в соответствии с ин-
дивидуальной программой.В некоторых случаях характеристики програм-
мы LOAD и SAVE минимальны,и все,что требуется для обнаружения место-
положения команд - это минимальное и быстрое сканирование листинга.
Другие программы могут иметь несколько вариантов LOAD и SAVE .Самый
простой способ в этом случае -пройти через программу по одной стро-
ке за раз,осуществляя поиск команд LOAD и SAVE.Каждый раз ,когда
такая команда найдена,в дополнение к ообычному префиксу производит-
ся модификация синтаксиса,т.е:
RANDOMIZE USR 15619:REM:
Это вводится перед сущесвующим LOAD или SAVE в программе.
Следует помнить также два других положения.Во-первых,команда
TRDOS должна быть последним элементом в строке программы:во-вто-
рых,следует принимать во внимание местоположение дисковода.Первым
пункт часто будет требовать небольшой модификации в нумерации и в
содержании строк.Оба эти пункта проиллюстрированны на нижеследующем
примере.
EXISTING PROGRAM:
500 IF X=5 THEN INPUT "NAME";NS:
SAVE NS DATA CS()Z
VERIFY NS DATA CS():GOSUB 700
505 IF X=V THEN GOSUB 800:INPUT "TITL";
TS:SAVETS:SAVE
TS CODE 5000,575
506... MORE OF THE PROGRAM
(программа продолжается).
Предположим ,что эти файлы записаны на дисковод с умолчанием.
NEW PROGRAM: COMMENTS:
500 IF X=5 THEN INPUT "NAME";NS:RANDMIZE USR 15619:
REM:SAVE NS DATA CS()
502 GOSUB 700
504 IF X=V THEN GOSUB 800;INPUT "TITL";TS:RANDOMIZE USR
15619:REM:SAVE TS
505 RANDOMIZE USR 15619:REM:SAVE TS:CODE 50000,575
506 ........(продолжение программы)
Регулировка строки изменяется от программы к программе.Чтобы
обеспечить необходимую 1 строку на команду TRDOS,достаточно неис-
пользованных строк 502 и 504.ногда может возникнуть необходимость в
подгонке других строк,не связанных непосредственно с командами TR-
DOS,с целью создания достаточного пространства.Следует постоянно
следить за потоком программ.Часто можно обнаружить ,что в результа-
те развития программы другая часть программы переходит на номер
строки,которую вы используете в настоящее время.
Существуют следующие правила преобразования:
1-команда TRDOS должна быть последним оператором в строке;
2-ко всем существующим командам LOAD и SAVE необходимо доба-
вить только префикс RANDOMIZE USR 15619:REM:;
3-если используется более одного дисковода,удостоверьтесь,что
используется правильный дисковод;
4-все файлы должны иметь наименование;
5-проверьте потокпрограмм при добавке промежуточных номеров
строки.
10.6. Волшебная кнопка.
Волшебная кнопка расположена в тыловой части дискового интер-
фейса (см.диаграмму 1).Волшебная кнопка предназначена для записи
(сохранения) программ,расположенных на кассете и прогона их на дис-
ке без какого-либо преобразования.
Существует много программ,таким образом,что их очень трудно
или невозможно преобразовать и прогнать на диске.Это могут быть
программы со сложной защитой или программы,осуществляющие хранение
и загрузку файлов данных для использования главной программой.Т.кза-
мена команд TRDOS невозможна ,требуется другой метод.В этом случае
программа загружается и создаются файлы данных.Вместо использования
инструкций программы SAVE, волшебная кнопка используется для вывода
всей программы и файлов на диск.Последующая перезагрузка означает
загрузку всей упаковки вместо файла данных.
Небольшие неудобства наличия разработанной по индивидуальному
заказу версии полной упаковки для каждого типа файла данных компен-
сируется скоростью и гибкостью диска с TRDOS.
Форматированный пустой диск следует убрать исключительно по
этой причине,фа при использовании он должен быть в дисководе A.Ес-
ли все в порядке ,нижеприведенная последовательность демонстрирует
подробные операции (если вы работаете с TRDOS).
1-вернитесь в BASIC,напечатав RETURN
2-переведите системный переключатель в положение "отключино".
3-очистите SPECTRUM, напечатав PRINT USR 0
4-загрузите программу с кассетной ленты и прогоните ее как
обычно.
5-после этого,как программа загружена и идет,нажмите на волшеб-
ную кнопку и тотчас же отпустите ее.Затем память компьютера распеча-
тывается на диск.Эта память хранится на диске в виде файла(файлов).
SPECTRUM & PLUS:
-создается только один файл, который содержит изображение всех
48К памяти произвольного доступа. CAT диска продемонстрирует, что
заголовок это "@", а тип файла CODE.
SPECTRUM 128:
-может быть записано до семи файлов, в зависимости от того ис-
пользуются ли страницы на верхней памяти произвольного доступа в
64К. Ниже приведен пример каталога диска после распечатки с помощью
волшебной кнопки.
Название: TEST
7 FILE(S)
0 DEL. FILE
A:@ 192:@7
A: 64:@4
A:3 64:@4
A:8 1
Наименование семейства этих файлов "@". Чтобы осуществить пов-
торную загрузку файла (для всех компьютеров SPECTRUM), изменяем син-
таксис от обычного LOAD или RUN. Вместо этого используется ключевое
слово GO TO SOS, например:
GOTO "@"CODE
Программа может быть переименована или скопирована на другой
диск под собственным названием и прогнана с помощью команды GOTO,
например:
NEW"GAME1","@"CODE
COPY"B:GAME1","A:@"CODE
При прогоне "GAME1" и при условии, что диск находится в диско-
воде А используется следующий синтаксис:
GOTO "GAME1"CODE
SPECTRUM 128:
-существует возможность переименования или копирования всех
файлов один за другим с помощью команд NEW и COPY. Однако для ваше-
го удобства, при программе UTILITY MAGIC (волшебная кнопка) имеется
на диске с обслуживающими программами. Подробности описаны в прило-
жении. Эта программа UTILITY может также использоваться для стира-
ния "семейства" файлов, записанных с помощью волшебной кнопки.
Прежде чем использовать волшебную кнопку для записи программы,
вы должны убедиться, что диск не содержит файлов с названием "@"
или "@1" и т. д.
Некоторые программы используют нестандартную программу сканиро-
вания клавиш.Для этих программ необходимо сделать первым знаком име-
ни диска букву(доллар),например:
GOTO "SGAME1","@"CODE
Если программа проверяется до копирования ее с заголовком на
другой диск,то в названии файла потребуется префикс "S"при возникно-
вении задачи сканирования клавиши,например:
NEW "SGAME2","@"CODE
GOTO"SGAME2"CODE
В процессе загрузки этих файлов на экране дисплея содержатся
некоторые произвольные элементы,часто некоторое количество строк с
элементами изображения,чей внешний вид напоминает графическое предс-
тавление азбуки Морзе.Когда экран очищается, программа продолжает
свой ход с того места, где она была остановлена.
11. Файлы данных.
Синтаксис SOS для загрузки или хранения нестрокового массива,
под заголовком MONEY, следующий:
LOAD "MONEY"DATA M() или SAVE "MONEY"DATA M()
Для строкового массива с цепочками требуется добавление S, нап-
ример:
LOAD "MONEY" DATA MS()
Как большинство команд TRDOS, LOADING (загрузка), SAVING (сохр-
ранение) массивов данных осуществляется с помощью синтаксиса SOS BA-
SIC с префиксом и, возможно, с помощью индикатора дисковода. Редко
массивы данных управляются непосредственно с TRDOS.
Природа этих массивов такова, что дисковод с умолчанием предс-
тавляет собой дисковод А. Если у вас два дисковода, то можно предпо-
ложить, что диск с данными всегда загружен в один и тот же диско-
вод, например В, в то время как основная программа и дисковод с
умолчанием остаются в А. В этом случае используется временный инди-
катор дисковода, например:
RANDOMIZE USR 15619:REM:LOAD "B:MONEY"DATA M()
При копировании, стирании и обновлении (COPY,ERASE,NEW) файла
данных, команда всегда всегда должна заканчиваться обозначением ти-
па файла, т.е. DATA или TRDOS будут знать, что они ищут файл BASIC,
например:
COPY "A:MONEY","B:MONEY"DATA