1.9. ЗАПИСЬ, ПРОВЕРКА, СЛИЯНИЕ
Синтаксис всех этих команд одинаков. Kiak :Bbr: увидите, эти команды
имеют синтаксис тот же самый или подобный тем командам, которые ис-
пользуются в системе, основанной на кассете.Все эти команды работают с файлами. Файлом на диске может быть
программа BASIC, программа в машинных ходах, файл — массив данных
или файл с последовательным произведши: доступом. Загрузка и сохране-
ние файла с массивом данных рассматривается в разделе 1.10, а файлы пос-
ледовательного и произвольного доступа — в разделе Т.Н. В этом разделе
рассматриваются программы BASIC и программы в машинных кодах.В процессе всех пяти операций SAVEk; VERIFY, RUN, MERGE для пре-
рывания команды может использоваться клгавиша.*В11ЕАК*. Если в диско-
воде нет диска, команда будет прервана. ;и на;экрале будет представлено
сообщение об ошибке: "NO DISK' Таким же образом, если на диске нет
н^шош файла, то на экране будет! напечатано сообщение об ошибке: "NOС помощью команды SAVE программа та! SPECTRUM записывается на
диск. Следует указать название программы и поставить его в кавычки.Для программы BASIC не требуется тин файла, однако номер строки
может быть указан в виде ключевого слова LINE для автопрогона. Если
номер строки не указан, программа будет выполняться с первой строки. На-
пример:SAVE "PROGR" LINE 100 ::;;;:j:j:.:
SAVE "GRAPH" LINE .^Ш;;^;;;;!::
SAVE"A:DESIGN!i-i-i-4i:;:j:::
Для программы в машинных кодах нужно указать тип файла CODE, за
которым.;следует стартовый адрес и количество байтов, подлежащих сохра-
нению* например:SAVE "DISCOUNT" CODE 47800,955
SAVE "B:COULEC,l:CODE 32768,4000
Команда VERIFY проверяет; Является ли файл, записанный на диске, тем
же самым, что и файл в ЦЭДОД, Команда VERIFY может быть использована
для проверки BASIC-программ; программ в машинных кодах и файлов мас-
сивов данных. Например:VERIFY "A:DESIGN"
VERIFY "DISCOUNT" CODE 47800,955
VERIFY "MONEY" DATA M( )
Если они различны, на! Экране появляется сообщение — VERIFY ER-
ROR (проверка с ошибкйй)г:;Если программу BASIC предназначена для автопрогона с номера строки,
SAVE -INTEREST^;LINE 25 то автопрогон будет осуществляться, какая
бы команда (LOAD или RUN) не использовалась.Если программа BASIC не сохранена для автопрогона, то LOAD будет
осуществлять загрузкун прогон неавтоматической программы прогона. На-
пример: Ч:...::::.!:.:!.::.:!:..:•'
LOAD "INTEREST"
RUN "DESIGN"TR-DOS будет Ш1фо£^р6вать вас о "недостаточной памяти", если вы
сделаете попьп^загрузить или прогнать программу, требующую больше па-
мяти, чем имеется в распоряжении. Это может случиться, если RAMTOP
было установлено слишком низким.Если вы вводите LOAD или RUN без наименования файла, TR-DOS
будет загружать или прогонять программу "самозагрузки" BASIC.Как видно из призеров, синтаксис тот же, что и SPECTRUM BASIC,
что касается программ в машинных кодах, опи могут быть загружены на тот
же адрес, из которого они бьшй йятъг iu^ сохранения,LOAD "A:SALECALC" CODE или загружены на другой диск с помощью
указаний в инстр>та1иях йй загрузке, например:
LOAD "MARGIN" CODE 51000 !: : i:При прогоне программ:* машинных кодах, адрес автопрогона должен
бьпъ тем же, что и стартовый адрес профаммь£;например:RUN "DISCOUNT' CODE 4/800 при условии, что этот код назначается
для автопрогона, начиная с 47800, загрузка пройдет хорошо.Существует вариант использования загрузчика командой из двухъ строк,
например запись (SAVE) последующей программы:на диск, как:"DSTL0AD" LINE 10
10 RANDOMIZE USR 15619: REM: Ц^Ь' ^В^^СЯУМТ:^ CODE 47800
20 RANDOMIZE USR 47838
Чтобы проиграть программу, вы мюдите: RUN "DSTLOAD".. с Помощью
чего будет осуществляться загрузка в машинных кодах, и ...затем: .fKUN IT",(запуск ее) начиная с 47838. "
Двухстрочный загрузчик необходим, т;к. KOMa^aTR-DOS должна быть
последней записью в строке.
Слияние TR-DOS — то же, что и слияние SOS, она использует то же
ключевое слово (Е MODE SYMBOL SHIFT) в служит той же цели слияния
памяти SPECTRUM программы BASIC с диска и этой же программы, уже
имеющейся в памяти, например:
MERGE "SUBROUT"
MERGE "B:FUNCT2" в!;;:::..
Если вы написали программу на кассете', тбкотирование ее на диск
представляет некоторые проблемы. Вы загружаете свою програьрлу с кассеты
в SOS как обычно. Когда программа находится в SP, она моЖ^ ^&Гг^ запи-
сана да диск с помощью непоследовательного ввода;с клавиатуры, нанример:RANDOMIZE USR 15619: REM: SAVE "ХХГ ......Ж
или
RANDOMIZE USR 15619: REM: SAVE "XXZ" CODE NNNN, BBB:: ::
Можно копировать много других программ с помощью профаммы UTIL-
ITY DISKTAPECOPY. (Копия на ленте с^лужквагадцего диска).Синтаксис этих профамм может требовать преобразования с тем, чтобы
он работал при TR-DOS.Очень многие профаммы представляв:смесь BASIC и машинного
кода, что повышает скорость их вьшоодёния»: Элемент BASIC может варьи-
роваться от простой профаммы зафузки до более адожного интерфейса ме-
жду кодом и пользователем.Для тех профамм, которые испшшзуют BASIC в хачестве интерфейса,
переход на использование TR-DOSотноси?!^ другие профаммымогут требовать значительной "утряски", чтобы можно бьиго изменить для
работы с TR-DOS.Вы должны имеТь: доступ ко всём командам! LOAD или SAVE в перво-
начальной профаммр ВАМС. требующей й^нВёия, поэтому первым шагом
является распечатка (LIST): пдофаммы BASIC.Используемая методика должна варьироваться в соответствии с индиви-
дуальной профаммой, в некоторых случаях характеристики профамм LOAD
и SAVE минимальны, и все, что требуется доя обнаружения местоположения
команд — это минимащ&оё й быстрое сканирование листинга. Другие про-
фаммы могут иметь н^колько :ва|шантов LOAD и SAVE, самый простой
способ в этом случае !^ пройта черёз профамму по одной строке за раз,
осуществляя поиск KOMaijiLOAD и SAVE.Кащг>щ раз, когда такая команда найдена, в дополнение к обычному
префикс^ о^Ьйзэрдится модификация синтаксиса, т.е.RAhffiОМ12Ё•;i 15619: REM:
Это вводится йёЩ существующим LOAD или SAVE в профамме.
Следует помнить также деа других положения. Во-первых, команда TR-
DOS должна быть последние ^элементом в строке профаммы; во-вторых,
следует принимать во внимание местоположение дисковода. Первый пункт
часто будет требовать небольшой модификации в нумерации и в содержании
строк. Оба эти пункта проиллюстрированы на следующем примере:EXISTING PROGRAMM:
500 IFX=5THEN Jf№lKrl«AME '; NS:
SAVE NS DATA;:G$|^A :(LI^T) программы
VERI FY Ш^Ш^Щ*: GOSUB 700
50$p:X=V THEN GOSUB 800: INPUT "TITLE";
TS C#E 5000,575 M
506. j^iMORE OF.IHEpROGRAMM
(проката; *фоШжается)Предположим, что эти файлы записаны на дисковод с умолчанием.
NEW PROGRAMM:500 IF NS: RANDOMIZE USR 15619:
REM: SAVE ШШ CS**
'502 GOSUB 700504 IF X=V ТНЕД GO.SUfi.SC^)^ TNPUT "TITLE": TS: RANDOMIZE
USR 15619: REM:4:SAV^ TS505 RANDOMIZE USR 15619: REM;.-. SAVE TS: CODE 50000,575
506... (продолжение проп^ёййЙУ"""4!!.
Регулировка строку от прОфаммы к профамме.Чтобы обеспечить необходимую одну строку на команду TR-DOS, доста-
точно неиспользованных сфок 502 и JW.Существуют следующие:правила преобразования:;:;!;
1. Команда TR-DOS до#жМбьпъ последним рйерЭДором в строке.
2. Ко всем существующим командам LOADIh SAVE необходимо доба-
вить только префикс RANDOMIZE USR| J5619: REM.3. Если используется болёе одного::дисковода удостоверьтесь, что ис-
пользуется нужный дисковод.4. Проверьте поток профаммпри добавке промежуточных номеров
Синтаксис SOS для зафузки и хранения йе ^трс^ового массива под за-
головком MONEY следующий:LOAD "MONEY" DATA М( ) *"M===r===rr---
или ..::«1!1шууур«щ|:
SAVE "MONEY" DATA ( )
Для строкового массива с цепочками требуется|Давление "S":
LOAD "MONEY" DATA MS( )Как большинство команд TR-DOS, LOADING (зафузка), SAVING (хра-
нение) массивов данных осуществляется с помощью синтаксиса SOS BASIC
с префиксом и, возможно, с помощью индикатора дисковода. Редко массивы
данных управляются непосредственно с TR-DOS.Природа этих массивов такова, что дисковод с умолчанием представляет
собой дисковод "А". Если у вас система с двумя дисководами, то можно
предположить, что диск с данными загружен в один дисковод, например "В",
в то время как основная программа и дисковод с умолчанием остаются в "А".
В этом случае используется временный индикатор дисковода,! например:RANDOMIZE USR 15619: REM: LOAD "В:MONEY" DAtA M( )
При копировании, стирании и обновлении (COPY, ERASE, НЕ>У}!файла
данных, команда должна заканчиваться обозначением типа файла, т.£. DATA
или TR-DOS будут знать, что они ищут файл ВASIQ например:COPY "A:MONEY", "б:MONEY" DATA