10. ЗАПИСЬ, ПРОВЕРКА, ЗАГРУЗКА,
ЗАПУСК И ОБЪЕДИНЕНИЕ
ПРОГРАММ
Синтаксис всех этих команд прост. Как вы увиди-
те, он такой же или даже проще, чем синтаксис этих
команд, используемый для программ, обычно храни-
мых на ленте.
Все эти команды оперируют с файлами. Файл на
диске может быть БЕЙСИК-программой, машинными
ходами, массивом данных или файлом последователь-
ного или произвольного доступа. Загрузка или запись
массивов данных рассматривается в разделе 12, а фай-
лов последовательного и произвольного доступа - в
разделе 13.
В этом разделе рассматриваются БЕЙСИК-про-
граммы и программы в машинных кодах. Для всех пя-
ти рассматриваемых команд клавиша BREAK
прерывает их исполнение. Если в дисководе не стоит
диск, команды не выполняются, а появляется сообще-
ние:
NO DISK
Если же на диске нет указанного файла, появляет-
ся сообщение:
NO FILES
10-1. Команды SAVE и VERIFY
Команда SAVE предназначена для записи про-
граммы из ОЗУ на диск. Имя программы должно быть
полное и заключено в кавычки.
Для БЕЙСИК-программы указание типа не требу-
ется. Однако в конце команды может быть указан но-
мер строки для автозапуска - ключевое слово и номер
строки. Если в этом случае номер строки автозапуска
не указан, то программа будет запускаться со своей
первой строки:
SAVE "НОММЕАС" LINE 100
SAVE "GRAPH" LINE
SAVE "A:DESIGH"
Для программ в машинных кодах вы должны в ка-
честве типа файла указать ключевое слово CODE в
сопровождении стартового адреса и количество байт
для записи:
SAVE "PROGR" CODE 47800. 955
SAVE "B:DBASE 3" CODE 32768, 25000
Команда VERIFY проверяет на идентичность
файл записанный на диске, и файл, имеющийся в па-
мяти компьютера. Команда VERIFY позволяет прове-
рять БЕЙСИК-программы, программы в машинных
кодах и массивы данных:
VERIFY "ADESIGN"
VERIFY "PROGR" CODE 47800, 955
VERIFY "MONEY" DATA M ()
Если идентичности нет, то возникает сообщение об
ошибке.
10.2. Команды LOAD и RUN
Если БЕЙСИК-про рамма записана с автозапу-
ском, например*
SAVE "INTERST" LINE 25
то она при вводе самозапускается по любой из ко-
манд LOAD или RUN.
Если БЕЙСИК-программа записана без автозапу-
ска, то команда LOAD будет ее вводить и распечаты •
вать на экране ее данные. В то время как команда
RUN будет вводить и запускать программу.
Пример:
LOAD "SIR FRED"
RUN "SIR FRED"
Если вы попытаетесь загрузить (LOAD) или запу-
стить (RUN) программу, которая требует больше па-
мяти, чем есть в данный момент в наличии у
SPECTRUM, TRDOS даст вам сообщение:
INSUFFICIENT MEMORY
(недостаточно памяти)
Это обычно происходит, если значение RAM ТОР
недостаточно велико. Если вы ввели LOAD или RUN
без имени, TRDOS делает попытку загрузить или за-
пустить БЕЙСИК-программу "BOOT".
Как видно из вышеприведенных примеров, син-
таксис команд такой же, как и в БЕЙСИКе.
Для программ в машинных кодах, которые должны
быть загружены с того же адреса, который был указан
при записи, допустимо этот адрес не указывать:
LOAD "A:FIRELORD" CODE
Можно также ввести программу в машинных ко-
дах по иному адресу, чем тот адрес, который был ука-
зан при записи (например, с адреса 51000):
LOAD "FIRELORD" CODE 51000
При загрузке программ в машинных кодах коман-
дой RUN ее начальный адрес должен быть таким же,
что и при записи:
RUN "FIRELORD" CODE 47800
обеспечивает автозапуск с адреса 47800
В качестве альтернативы можно использовать
двухступенчатый загрузчик, записав, например, на
диск следующую программу под именем "DCTLOAD"
LINE 10:
10 RANDOMIZE USR 15619:REM:LOAD
"FILEROLD" CODE 47800
20 RANDIMIZE USR 47838
Для запуска программы вы печатаете RUN
"DCTLOAD" в результате работы этой программы за-
гружаются машинные коды, а затем они запускаются
с адреса 47838.
В загрузчике необходимы две строки, т.к. TRDOS
- команда должна быть последним оператором в стро-
ке.
10.3. Команда MERGE
Команда MERGE в TRDOS такая же, как и
MERGE в SOS. Для нее используется то же ключевое
слово и она создает такой же эффект в памяти
SPECTRUM: присоединяет к программе, уже находя-
щейся в памяти SPECTRUM, программу с диска.
Пример:
MERGE "SUMBROUL"
MERGE "B:FUNCT2"