Работа с ZX-Spectrum 1993 г.

Глава 20 - внешняя память на магнитной ленте.


ГЛАВА 20

ВНЕШНЯЯ ПАМЯТЬ НА МАГНИТНОЙ ЛЕНТЕ

Краткое содержание: LOAD, SAVE, VERIFY, MERGE

Основные команды работы с магнитофоном LOAD, SAVE и VERIFY уже
рассматривались во вводном описании. Вы могли видеть, что LOAD затирает
старую программу в памяти компьютера при загрузке новой программы с
ленты. Есть другая команда MERGE, не делающая этого. Эта команда стирает
лишь те строки старой программы или переменные, которые совпадают с но-
мерами строк новой программы или именами новых переменных.

Программу "DICE" ("Игральная кость") из главы 11 запишем на ленту
под именем "DICE". А теперь введём и выполним следующую программу:

1 PRINT 1

2 PRINT 2
10 PRINT 10
20 LET X=20

А затем осуществим её проверку, заменив команду VERIFY "DICE" на
команду MERGE "DICE". Вы увидите, что строки 1и 2 сохраняются, а строки
10 и 20 заменяются на строки с этими номерами из программы "DICE",
переменная X тоже сохраняется (проверьте - PRINT X).

Теперь Вы знаете четыре оператора для работы с кассетным магнитофо-
ном:

SAVE - записывает программу и переменные на магнитофон;

VERIFY - проверяет программу и переменные в памяти компьютера по
их копии на ленте;

LOAD - очищает память компьютера от всех программ и загружает в неё
новые, считанные с магнитофона;

MERGE - подобна LOAD, только не очищает всю память, а лишь заменя-
ет те строки программы или переменные, у которых совпадают номера или
имена с такими же на магнитной ленте.

За каждой из этих команд следует ключевое слово - имя программы,
определённое первоначально в команде SAVE. Пока компьютер ищет указан-
ную программу, он выводит имена всех программ, уже прочитанных с ленты.
Имеются две возможности для загрузки и запуска программ с ленты;

• Вариант 1. В операторах LOAD, VERIFY и MERGE вместо имени
можно указать пустую строку. Тогда будет взят первый
встретившийся файл и затем выполнить команду RUN.

• Вариант 2. С использованием оператора SAVE
SAVE "string" LINE number

Программа запишется на ленту так, что когда она будет вновь считана
по команде LOAD (но не MERGE), она автоматически установится на строку
с указанным номером и сама инициирует своё выполнение.

Кроме текстов программ на ленту можно записывать также массивы или
данные.

Записать на ленту массив Вы можете, используя команду SAVE с DATA
таким образом:

SAVE "string" DATA array name О
Здесь "string" - т/1мя, присваиваемое файлу данных, которое может
состоять из букв или букв и символа "$" (перечёркнутая буква S). Для строко-
вых данных^это требование здесь не важно.
Загружаются такие данные по команде:

LOAD "string" DATA array nameO
нельзя использовать оператор MERGE.

Если загружается строковый массив, то после обнаружения его ма лен-
те, компьютер выдаёт: "Character array:" и далее имя этого массива.

Существует возможность записи на магнитную ленту и отдельных бай-
тов информации. Так, например, это может быть телевизионная картинка или
определяемые пользователем графические символы и т д. Для этого исполь-
зуется ключевое слово CODE.
Например:

SAVE "Picture" CODE 16384,6912
LOAD "Picture" CODE
после CODE можно указать числа:

LOAD "Picture" CODE start, lenght
lenght - (длина) определяет сколько данных (в байтах) надо загрузить с
ленты. Если длина больше, чем записано на ленту, то выдаётся сообщение "R
Таре loading error ..." (ошибка загрузки с ленты). Этот параметр можно
опустить, и тогда компьютер считает все данные, которые записаны на ленте.

start - (начало) указывает адрес, с которого должны загружаться данные
и может быть отличным от адреса, указанного в SAVE Вы можете опускать
этот параметр в команде LOAD.

Выражение CODE 16384,6912 можно заменить на SCREENS :
SAVE "Picture"SCREEN$ и затем
LOAD "Picture"SCREEN$

Это тот случай, когда VERIFY не работает. В остальных случаях VERIFY
можно использовать везде, где используется SAVE.

В ЗАКЛЮЧЕНИЕ.

Везде, где указывается имя файла на ленте, используются только пер-
вые десять символов. Существуют четыре типа информации, которые могут
быть записаны на ленту:

• - программы и переменные (совместно);

• -числовые массивы;

• - строковые массивы;

• - непосредственно байту.

Когда команды VERIFY, LOAD и MERfcE осуществляют поиск данных на
ленте, они выводят на экран все считанные ими с ленты имена с указанием
типа данных в виде:

"Program:"
"Number array:"
"Character array:"
"Bytes:"

Если имя - пустая строка, эти команды берут первый встретившийся
файл с указанным типом.

Команда SAVE служит для записи информации на ленту под заданным
именем. Сообщение оо ошибке "F..." выдаётся, если вместо имени указана
пустая строка или число символов в имени 11 и более.
SAVE всегда выдаёт сообщение:

"Start tape, then press any key" (запусти магнитофон и нажми любую
клавишу)

и ждёт нажатия, после чего записывает данные на ленту.

1. Программа и переменные.

SAVE "name" LINE number
записывает программу на ленту таким образом, что последующая коман-
да LOAD автоматически вставляет в программу
GO ТО LINE number
и начинает её выполнять.

2. Байты.

SAVE "name" CODE start, lenght
записывает на ленту lenght байт, начиная с адреса start.

SAVE "name"SCREEN$
эквивалентно

SAVE "name" CODE 16384,6912
и записывает один телевизионный экран.

3. Массивы.

SAVE "name" DATA letterO или
SAVE "name" DATA letter$()
записывают числовой или строковый массив (требование S не относится
к "name").

Команда VERIFY проверяет (сравнивает) информацию в памяти и на лен-
те. Может выдавать сообщение "R Таре loading error...".
1. Программа и переменные.
VERIFY "name-

2. Байты.

VERIFY "name" CODE start,lenght
Если данных в файле "name" более, чем указано в lenght, то выдаётся
сообщение об ошибке "R...".

VERIFY "name" CODE start
Здесь осуществляется сравнение байтов в файле "name" с данными в
памяти, начиная с адреса start.

VERIFY "name" CODE
этот оператор осуществляет сравнение данных на ленте с данными в
памяти, начиная с адреса, с которого записывался на ленту первый байт дан-
ных.

VERIFY "name"SCREEN$
или эквивалентно

VERIFY "name" CODE 16384,6912
однако, это будет проверка уже проверенного файла.

3. Массивы.

VERIFY "name" DATA letterO

VERIFY "name" DATA letter$()

Команда LOAD загружает новые данные с ленты, стирая старые данные
в памяти.

1. Программа и переменные.

LOAD "name"

Может выдавать сообщение "4 Out of memory ...", если нет места для
новой программы. В этом случае старая программа не уничтожается.

2. Байты.

LOAD "name" CODE start,lenght
Если данных в файле "name" больше, чем указанно в lenght, то выдаётся
сообщение "R ...".

LOAD "name" CODE start
Производит загрузку данных из "name" в память, начиная с адреса start.

LOAD "name" CODE
Загружает данные по адресу, с которого записывались данные на ленту
в файл "name".

3. Массивы.

LOAD "name" DATA letterO

или

LOAD "name" DATA letter$()
Уничтожает в памяти массив с именем letter или letterS, формирует но-
вый массив и переписывает туда данные из файла "name". Может выдать со-
общение "4 Out of memory ..." при нехватке памяти под массив. В этом
случае старый массив не уничтожается.

Команда MERGE загружает новые данные с ленты, не уничтожая старые.

1. Программа и переменные.

MERGE "name"

Дописывает программу "name" к некоторой программе, находящейся в
памяти. Может выдать сообщение "4 Out of memory

2. Байты.

Не поддерживается.

3. Массивы.

Не поддерживается.

Пример: Записать на ленту информацию о 21-м определённом пользо-
вателем символе и затем сравнить файл на ленте с файлом в памяти.
SAVE "ChessXODE USR "А",2И8
VERIFY "ChessXODE
Обратная загрузка (с ленты в компьютер)
LOAD "ChessXODE

или

LOAD "ChessXODEUSR "A" .




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
История - Небольшие урывки текста.
Проходилка - Paradise Lost (demo).
Новости - группа Anarchia переживает свои худшие времена.
График - в сети уже третью неделю продолжаютя странные вещи. График BBS.
АКА Дурака - История некоторых нэймов житых А.Шумакай.

В этот день...   20 апреля