Команда SAVE Позволяет сохранять на магнитной ленте отдельно
заголовок файла (header), отдельно — тело файла.
Для записи заголовка флаговый байт byte (см. [1], стр. 143)
нужно задать равным нулю. При записи тела файла флаговый байт
обЬпшо устанавливают равным 255 (#FF), но иногда используют и
другие значения.
Прервать выполнение команды SAVE можно, нажав Space.
Команда LOAD позволяет загружать в память с магнитной ленты
отдельно заголовок (header), отдельно — тело файла.
При считывании блока командой LOAD нужно знать значение
флагового байта, с которым блок был записан командой IАVI, Для
загрузки заголовка флаговый байт (byto) нужно задать равным
нулю. При загрузке тела файла флаговый байт обычно равен
255 (#FF). Если флаговый байт неизвестен, его значение можно
определить с помощью одного из ленточных копировщиков, напри-
мер, Сору 86/М.
Прервать выполнение команды LOAD можно, нажав Space.
По этой команде на экран выводятся названия и текущие значе-
ния девяти системных переменных ZX Spectrum: CHANS, PROG,
VARS, ELINE, WORKSP, STKBOT, STKEND, RAMTOP, UDG*.
По этой команде в начало бейсик-программы (с адреса, находя-
щегося в системной переменной PROG) вставляется строка с нуле-
вым номером, состоящая из оператора REM и нескольких пробелов.
Количество пробелов задается параметром lenght.
Это позволяет вставлять в бейсик-программу процедуры в кодах.
Например, излюбленный прием хакеров — помещать в нулевую
строку кодовые загрузчики (см. [3]).
Пример:
После выполнения команды CREATE $ вначале области бейсик-
программы появится следующая последовательность кодов:
00 ; номер
00_; строки (0)_
07 ; длина
00_; строки (7)_
ЕА_; код оператора REM
20 |
20 ; 5 пробелов
20 ; (length=5)
20 ;
20 _
0D ; код конца строки
По этой команде можно вернуться в Бейсик, произвести в нем
необходимые действия (что-то записать, подгрузить, посчитать), а
затем вновь запустить Моп2 оператором RANDOMIZE USR addr. Будь-
те внимательны, так как во время работы Моп2 могут быть испор-
чены значения системных переменных. В этом случае выход в
Бейсик чреват сбоем или даже полным сбросом.
Если есть такое подозрение, то лучше воспользоваться командой
монитора NEW.
По этой команде очищается оперативная память вплоть до адре-
са, занесенного в RAMTOP, восстанавливаются начальные значе-
ния системных переменных, и вы выходите из Моп2 в Бейсик.
(Таким образом, эта команда действует аналогично оператору Бей-
сика NEW).
Поскольку команда NEW восстанавливает системные перемен-
ные (в отличие от команды BASIC), то возвращение в Бейсик с ее
помощью более безопасно. Но при этом бейсик-программа, находя-
щаяся в памяти, стирается. Кроме того, перед выполнением NEW
удостоверьтесь, что RAMTOP находится ниже адреса размещения
Моп2, иначе монитор может быть поврежден.
Кла- виша |
Название |
Действие |
Стр. |
А |
ASCII |
Вывод на экран содержимого ячеек памяти |
187 |
Z |
HEX/DEC |
Переключение системы счисления |
188 |
W |
WIND |
Задание размеров окна вывода информации |
189 |
V |
WIND |
Вкл./выкл. окна вывода информации |
189 |
К |
FIND |
Поиск последовательности байт |
190 |
Е |
EDIT |
Изменение содержимого ячеек памяти |
192 |
F |
FILL |
Заполнение фрагмента памяти заданным байтом |
193 |
М |
MOVE |
Копирование блока кодов |
193 |
D |
DISAS |
Дизассемблирование программы в кодах |
194 |
Р |
SHIFT |
Смещение адресов при дизассемблировании |
195 |
G |
GOSUB |
Запуск подпрограммы в кодах |
196 |
R |
RELOC |
Копирование программы в кодах |
197 |
Q |
Q-RELOC |
Копирование программ с учетом SHIFT-смещения |
198 |
Т |
TRACE |
Трассировка (отладка) программы |
199 |
S |
SAVE |
Запись блока кодов на магнитную ленту |
202 |
L |
LOAD |
Загрузка блока кодов с магнитной ленты |
203 |
I |
INFORM |
Вывод на экран значений системных переменных |
203 |
С |
CREATE |
Создание нулевой строки в бейсик-программе |
203 |
В |
BASIC |
Выход в Бейсик |
204 |
N |
NEW |
Выход в Бейсик с очисткой памяти |
204 |