TR-DOS 1969 г.

Работа с файлами - Запись, проверка, загрузка, прогон и слияние. Файлы данных.


     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



СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Система - О старых и новых системных программах: VU-3D - построение фигур по плоскостям; Mega Screen v1.8 - графический редактор.
Игры - прохождение игры ЧЕРНЫЙ ВОРОН-I. (люди)
Железо - подключении видеопоpта (дигитайзера) А.П.Манилова ( ZX-FORUM #2).

В этот день...   10 июля