Работа с 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" .




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Обзор - обзор свежих релизов: Lord of Chaos, F-19 Stealth Fighter, Carrier Command, The Simpsons, Gauntlet 3, The Addams Family, Wild West Seymour, Sly Spy, Paris To Dakar, Duck Out, Johangir Khan World Championchip Squash, The Amazing Adventures of Robin Hood.
AY Music Hit - 5 лучших музонов.
Письма - MONSTR LAND - очень легко пройти (описание игры).
От авторов - Содержание номера.
Тема - размышления SIR-X'a о плачевном состоянии дел со спектрумовским софтом.

В этот день...   16 августа