Справочник по системным программам для компьютера ZX Spectrum 128к 1969 г.

Описание 10 - система ZEUS.


11. СИСТЕМА ZEUS.

1. Введение

Система ZEUS представляет собой операционную среду в машинных кодах, позволяю-
щую писать компактные программы на языке Ассемблера персональных компьютеров типа
ZX SPECTRUM.

CncTOMaZEUS обеспечивает оптимальный способ написания машинного кода процессора
Z80 и, во многих случаях, в ее среде легче написать программу, чем на языке BASIC.

Основой системы ZEUS является высокоскоростной двухпроходный компилятор,
обеспечивающий удобное символическое представление программы в машинном коде.
Строки мнемонических обозначений языка Ассемблера (команды в машинном коде) вводятся
также просто, как и строки программы на языке BASIC. Однако, сходство с другими
Ассемблерами на этом заканчивается, так как основное преимущество системы ZEUS зак-
лючается в уникальной разносторонности ее операционной среды. Аналогично тому, как
ПЗУ ZX SPECTRUM позволяет писать програм мы не языке BASIC, система ZEUS предоставляет
программисту все необходимые средства для быстрого и эффективного написания программ
в машинных кодах.

2. Определения

Терминология, принятая в языке Ассемблера и описании системы ZEUS:

ИСХОДНЫЙ ФАЙЛ - Текст, включающий все мнемонические обознаяения языка
Ассемблера, метки и комментарии.

ОБЪЕКТНЫЙ КОД - Машинный код, выработанный Ассемблером ZEUS из исходного
файла.

СИМВОЛ - Строка алфавитно-цифровых знаков, используемая для представления
некоторой числовой величины (данных, адреса).

МЕТКА - Специальный тип символа, значение которого соответсвует адресу команды,
которая следует за ним непосредственно.

ДИРЕКТИВА - Директива Ассемблера не является фактической командой кода Z80, а
представляет собой команду, данную Ассемблеру программистом, в результате которой
происходит запоминание величин, либо в символах, либо в памяти.

3. Загрузка системы и ZEUS и работа в ней.
Внимание!!!

Если предполагается использовать принтер, его необходимо подсоединить и включить
в первую очередь

3.1. Перемотайте кассету в начало системы ZEUS.

3.2. Установите громкость магнитофона приблизительно на 30-59%, а тамбр - на
максимальное воспроизведение высоких частот.

3.3. Соедините гнездо "ВЫХОД" магнитофона с гнездом "ВХОД" ЭВМ.

3.4. Н&берите LOAD "ZEUS" или просто LOAD"" (Загрузить), нажмите клавишу [Enter]
(ввод) и включите магнитофон на воспроизведение.

3.5. Остановите ленту, когда появится сообщение о подтверждении авторского права и
мерцающий курсор.

4. Запись машинного кода с Ассемблером ZEUS

Для иллюстрации особенностей Ассемблера ZEUS ниже приводится описание входа в
подпрограмму в машинном коде.

Программа выполняет загрузку байта с содержимым 255 в каждый адрес (ячейку памяти)
на экране. Длина экрана составляет 6144 байта и начинается с адреса 16384.

Программа с ее эквивалентом на языке BASIC приведена ниже:

Ассемблер BASIC

LDHL, 16384 5000 LET HL - 16384

LDDE, 16385 5010 LET DE - 16385

LDA. 255 5020 LET A - 255

LD(HL),A 5030 POKE HL.A

LDBC.5143 5040 LET ВС - 5143

LOOP LDA,(HL) 5050 LET A - PEEK HL

LD(DE),A 5060 POKE DE,A

INC HL 5070 LET HL = HL + 1

INC DE 5080 LET DE = DE + 1

DEC ВС 5090 LET ВС = ВС - 1
JR NZ.LOOP
RET

Очистите экран, нажав клавишу [Caps Shift] и [9] (Переключение регистра букв действие
эквивалентно вводу "ГРАФИЧЕСКОГО РЕЖИМА" в языке В ASIC фирмы "СИНКЛЕР РИСЕЧ").

Ввод строк текста похож на запись программы в языке BASIC. Каждая строка должна
иметь префикс в виде числа, которое может принмать любое значение от 0 до 65534 вклю-
чительно. Важно помнить, что курсор помещается в начало номера строки. Нажатие
клавиши [Enter] (ввод) приводит к вставке этой строки в соответствующую позицию в
исходном файле, замещая ранее существовашую строку с тем же самым номером.

Команда автонумерации строк в Ассемблере ZEUS имеет формат:

I X Y где:

X - номер начальной строки, Y - приращение между последовательными номерами строк
X и Y, называемых параметрами, так как они специфицируют конкретные значения, которые
будут использованы командой во время ее выполнения

Например, в длинной программе на языке BASIC можно использовать команду LIST 1000.
Параметр 1000 вызывает выдачу листинга со строки с номером 1000.

Чтобы проверить работу команды наберите:

1100 100

и несколько раз нажмите клавишу [Enter]. Чтобы выйти из режима автоматической
нумерации строк, удалите номер текущей строки например, клавишей CLEARLINE
(очистить строку) [Caps Shift] и [1] и нажмите клавишу [Enter]

Очистите экран [Caps Shift] и [9], наберите Т и нажмите несколько раз клавишу [Enter]. Так
как значения параметров X и Y не указаны, то Ассемблер ZEUS использовал значения,
взятые по "умолчанию", - X = 10 и Y = 10.

В примере программы, написанной на языке BASIC, параметром команды LIST (выдать
листинг) по умолчанию служит номер первой строки.

Введите первые несколько строк текста.

1. Очистите экран (клавиши [Caps-Shift] и [0])

2. Наберите "I" и нажмите клавишу [Enter] (только один раз)

3. Наберите, нажимая клавишу [Enter] после набора каждой строки для вставки ее в
исходный файл и получения следующего номера строки:

LDHL,16384
LD DE, 16385
LD А, 255
LD (HL), А
LD ВС,6143

Если неправильно введен символ, то используйте клавишу ERASE (стереть) (клавиши
[Caps-Shift] и [0]) и наберите его снова.

4. Выход из режима автоматической нумерации строк производится клавишами [Caps-
Shift] и [0] и [Enter].

Экранный редактор выполняет редактирование текста по мере появления его на экране
Получите листинг исходного файла, очистите экран и введите "L" (LIST")

В команде LIST можно использовать до трех параметров:
LXYZ, где

X - номер строки, с которой выдается листинг,
Y - номер строки, до которой включительно выдается листинг,
Z - число строк листинга до остановки его выдачи.

Чтобы изменить символ в набранном тексте, используйте клавиши управления курсором
([Caps-Shift] и [5], [6], [7], [8]) для перемещения курсора в требуемую точку листинга и
наберите необходимый символ. Курсор автоматически переместится в позицию следую-
щего знака. Модифицируемая строка будет вставлена в текст при нажатии клавиши [Enter],
когда курсор находится на изменяемой строке

Пример.

Изменить строку 30: 00030 LD 4,254

Получите листинг текста. Используя клавиши управления курсором, подведите курсор в
знакоместо цифры "5" с правой стороны строки. Наберите цифру "4", нажмите клавиши
[Enter], CLEAR-SCREEN (очистить экран) и введите LIST. Теперь можно изменить номер 254
на 255 тем же способом, или вводом команды:

00030 LD А,255

Для продолжения работы нажмите CLEAR-SCREEN и введите команду LIST.
Работа с циклом.

Чтобы программа была более удобна для восприятия, рекомендуется выделять циклы
отступами. Для ускорения ввода секции текста с выделенными отступами в Ассемблере
ZEUS применяется "определяемое пользователем" средство TAB -табуляция Точки останова
в метках TAB могут быть установлены из программы монитора.

Наберите "М" и нажмите клавишу [Enter] Появится слово " MONITOR" Чтобы напомнить
о режиме, в котором Вы находитесь, наберите "S" и переместите курсор вдоль строки, пока
он не встанет в одну колонку с L в листинге в верхней части экрана. Наберите знак, отличный
от пробела, за которым сделайте несколько пробелов (например 5), наберите "1" и нажмите
клавишу [Enter]. С помощью клавиш [Caps-Shift] и [2] переместить курсор в точки останова,
которые Вы только что определили.

Для возврата в Ассемблер ZEUS введите "Z". Теперь можно добавить цикл. Введите "L 60"
для вызова автоматической нумерации строк, начиная со строки 60. Наберите слово "LOOP",
которое Вы хотите поместить в знаках нижнего регистра, используя клавиши [Caps-Shift].
Используйте клавишу [Caps-Shift] и [2], чтобы поместить курсор в следующую точку останова
в метке TAB.

Наберите:

LD(DE),A

нажмите клавишу [Enter] Введите следующие строки используя клавиши ["Caps-Shift"]
и [2]:

LD(DE),A
INC HL
INC DE
DEC ВС
LD А,В
OR С

JR NZ.LOOP

Первый цикл

Каждая ссылка на конкретную метку должна быть знак в знак тождественной с этой
меткой, т.е. если использованы знаки нижнего регистра в строке 60, то необходимо сделать
то же самое и в строке 130. Введите последнюю строку без отступа:

00140 RET

Выйдите из режима автоматической нумерации строк (клавиши [Caps-Shift] и [1]), за
которой следует клавиша [Enter].

Перед ассемблированием и тестированием программы введите две дополнительные
строки, чтобы сообщить Ассемблеру ZEUS, куда поместить ассемблированный код, используя
директиву ORG.

Введите:

5 ORG 30000

для ассемблирования машинного кода в ячейку памяти, начиная с адреса 30000. Установите
точку входа, с которой исполнительная команда "X" будет выполнять код.

Введите:

6ENT

и нажмите клавишу [CLEAR-SCREEN] и введите LIST.

Клавишу [Enter] необходимо нажать дважды для получения листинга полного исходного
файла. Это следует из того, что значение параметра Z (число строк листинга до остановки
его выдачи) по умолчанию равно 14, а листинг исходного файла составляет в данный
момент 16 строк.

В Ассемблере ZEUS существует команда перенумерации:

RXYZ

Определение параметров смотрите в описании команд Ассемблера ZEUS (раздел 8).

Для перенумерации исходного файла введите "R", выдайте листинг первых 5 строк,
набрав:

L.5

Нажмите один раз клавишу (Enter]. При использовании запятой для замены параметра в
качестве его значения в команде употребляется значение по умолчанию. Исходный файл
был перенумерован в соответствии со значениями, используемыми поумолчаниювкоманде

Проверьте, что исходный файл идентичен следующему:

00010 ORG 30000
00020 ENT
00030 LD HL , 16384
00040 LD DE, 16384
00050 LD A,255
00060 LD (HL)A
00070 LD ВС,6143
00080 LOOP LD A(HL)
00090 LD (DE),A
00100 INC HL

00110 INC DE
00120 DEC ВС
00130 LD А, В
00140 OR С
00150 JR NZ.LOOP
00160 RET

Исходный файл готов к ассемблированию для получения объектного кода (машинного
кода). Наберите "А" (укороченное имя команды ASSEMBLE - ассемблировать), нажмите
клавишу [Enter].

При безошибочной работе курсор переместится ниже команды "А". В случае ошибки будет
выдано сообщение об ошибке и испорченная строка. Пояснения смотрите в приложении
кодов сообщений об ошибках.

Самая простая ошибка - опускание пробела в команде, что приводит к ошибке О
(незаконченный оператор).

Пример.

Введем ошибку в текст, удалив пробел в строке с номером 30. Клавиша [CLEAR-SCREEN],
команда LIST, поместите курсор в промежутке между знаками "D" и "Н", DELETE (удалить),
клавиши [Caps-Shift] и [3], клавиши [Enter], [CLEAR-SCREEN], команда ASSEMBLE. На
экране появится:

ERROR 0 (ошибка 0) 0030 LDHL, 16384

Чтобы исправить ошибку, поместите курсор к знаку "Н" и используйте клавишу [INSERT]
(вставка). Клавиша [Caps-Shift] и [4] - для добавления пробела, команда ASSEMBLE,
клавиша [CLEAR-SCREEN] и команду LIST.

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

Команда языка BASIC для сохранения блока байтов данных представляется в виде:

SAVE "имя файла" CODE X,Y

где X - адрес первого байта данных, Y - длина данных.

Значения параметров X и Y задаются с помощью команды "Т".
Введите команду и увидите:

START OF SOURSE ж 32768 (начало исходного файла « 32768)
LEGTH = 00144 (длина - 144)

Возврат в языку BASIC - команда "Q" (сокращенное от команды OU - выйти) и используйте
команду:

SAVE "SOURSE1" CODE 32768,144

для сохранения исходного файла на ленте. Проверьте запись с помощью команды:
VERIFY""CODE

Для возврата в Ассемблер ZEUS введите команду:
PRINT USR 57344

Введите команду "О" для восстановления старого исходного файла перед получением
листинга исходного файла. Команда "О" может иметь в качестве параметра начальный

адрес подлежащего восстановлению файла.

Возможо создать исходный файл с разными адресами, испуользуя команду "N" (NEW -
новый) перед вводом программы или перезагружая старый исходный файл с ячейки,
отличной от той, начиная с которой он был сохранен (смотрите раздел 6, команды "Т").

При вводе строки текста Ассемблер ZEUS автоматически стартует исходный текст с адреса,
равного значению параметра в команде aNa, принятое по умолчанию, то есть с адреса 32768
(или 8000 в шестандцатиричном виде).

Если принтер присоединен, то можно сделать "твердую копию" исходного файла. Включите
принтер печати, введите "Р1", введите команду:

L.,16

При включенном принтере вся выходная информация, выводимая на дисплей, будет
выводиться на него. Выключите принтер, введя команду "Р0". Прервать работу принтера
можно клавишей BASIC BREAKM ( прервать BASIC). Возврат в языку Ассемблер ZEUS
выполняется обычным образом.

Протестируйте программу, введя команду "X" (сокращенное имя команды EXECUTE -
выполнить). При нормальной работе экран заполняется текущим цветом (за исключением
его границы). В противном случае получите листинг исходного файла и сверьте его с
листингом, приведенным выше. Если в ЭВМ был сбой, то перезагрузите Ассемблер ZEUS,
«ведите команду QUIT и загрузите исходный файл командой LOAD""CODE (загрузить код).
Выполните команду "О" для восстановления старого исходного файла.

5. Текст для ввода и редактирования

В главе рассматриваются возможности разработки более сложных программ а также их
тексты.

5.1. Общий формат

Ассемблер ZEUS использует знаки кода ASCII. (-ASCII - American Stndart Code for Information
Interchange - стандартный американский код для обмена информацией).

Для ввода команды языка Ассемблера наберите номер строки и за ним требуемую строку
текста. Номер строки должен быть в диапазоне от 0 до 65534 включительно.

Текст должен состоять из одного или нескольких операторов, разделяемых двоеточием.
Каждый оператор состоит из:

1). Необязательной метки, 2). Команды, 3). Необязательного комментария.

5.1.1. Необязательная метка

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

- метка должна начинаться с буквы,

- длина метки может составлять 14 знаков,

• метка не должна быть идентичной резервируемому слову (например: использование
метки "LD" не допускается), однако, метка может содержать резервируемые слова (например-
метка "HELD" допустима). Список резервируемых слов приведен в приложении 3,

- метка должна быть отделена от команды пробелом.

5.1.2. Команда

Командой может быть любая стандартная команда процессора ZILOG Z80 или директива
Ассемблера. Для обращения к флажку четности/переполнения в Ассемблере ZEUS

обеспечивается дополнительное средство - команда "переход по переполнению" вместо
команды "переход по нечетности".

Вместо JP РЕ,... может быть записано JPV,... или вместо JP РО,... может быть записано JP
NV,...

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

5.1.3. Комментарий

В конце любой команды может быть добавлен комментарий. Комментарий должен быть
отделен от команды точкой с запятой. Допускаются строки, содержащие только комментарий.

5.2. Константы

Константы могут быть представлены либо в десятичном, либо в шестнадцатеричном
виде:

Десятичный 1 99 234 4096

Шестнадцатиричный #Д #FF # 6843 #5000

Литералы могут быть представлены в следующем виде:

"А "7 "? .....s

Чтобы загрузить литерал "С" в аккумулятор, используйте команду:
LD А,"С

В соглашении по системе команд процессора Z80 круглые скобки обозначают адрес.
Команда LDA,"C загрузит аккумулятор содержимым из ячейки памяти с адресом 200
(десятичным).

Системная константа "$" устанавливает текущий адрес Ассемблера. Например:
DJNZ$ эквивалентно LOOP DJNZ LOOP

5.3. Операторы

В Ассемблере ZEUS допускается использование логических операторов.

♦ - сложение

• - вычитание

@ - логическое "И" (AND)
! - логическое "ИЛИ" (PR)

Приоритет операторов не соблюдается. Выражения вычисляются строго слева направо.

5.4. Выражения

Вместо константы можно применить выражение, которое строится из меток
и/или констант, разделяемых операторами.

Например:

LD A, (ADDRES + смещение)
LD HL.START - 3
IN A, (PORT&FF)
LABEL !#FF00

Выражения будут вычисляться Ассемблером для того, чтобы определить действительный

адрес ячейки памяти, который будет вставлен в объектный код. Выражения вычисляются
во время работы Ассемблера, а не во время выполнения программы.

5.5. Директивы Ассемблера

"Псевдо-операции" обеспечивают параметры операций Ассемблера ZEUS либо
инструктируют Ассемблер сохранить значение в качестве символов или непосредственно в
памяти.

ORG NNNN - сокращенное имя директивы ORIGIN (начало).

Директива инструктирует Ассемблер ZEUS ассемблировать
блок машинного кода,согласно утверждению ORG, начиная
с адреса NNNN (при условии, что текущее значение DLSP равно 0).
Допускается использование нескольких директив ORG в
исходном файле. Каждое утверждение ORG переправляет
адрес, начиная с которого ассемблируется последующий код.

DISP NNN - укороченное имя директивы DISPLACEMENT (смещение).

Директива DISP инструктирует изменить адрес, с которого
генерируется последующий код, ассемблируется для
выполнения с адреса, специфицированного посредством
текущего параметра директивы ORG. Иногда удобно уметь
генерировать код, начиная с ячейки, отличной от той, которая
назначена для выполнения. Для перераспределения кода по
адресу, заданному в директиве ORGI, можно использовать
монитор. Например, даны два утверждения в начале файла:

ORG 30000

DISP 10000

Исходный файл, следующий за эти ми директивами, ассемблировался бы с адреса 30000.

ENT - устанавливает точку входа. Команда "Xй выполняет ассемблированный
код, начиная с последней директивы ENT (вход) в исходном файле.

EQU - сокращенное имя директивы EQUATE (приравнять) или EQUALS (рав-
но). Метка может иметь значения, назначенные ей посредством
утверждения вида: метка EQU значение.

DEFB NN.NN - директива вставляет байты NN по текущему адресу
ассемблирования.

DEFW NNNN,NNNN,... - директива вставляет слова (адреса)
NNNN по текущему адресу ассемблирования.

DEFM /строка/ - текст, заключенный ограничителями ",/," будет вставлен
по текущему адресу ассемблирования.

Наряду со всеми командами языка Ассемблера директивы могут иметь в качестве префикса
метку, например:

DATAI DEFW/4000,3456,6879
OFFSETS DEFB 3,2,14,20,9,2
USRADDR ENT

5.6. Редактор экрана

Ассемблер ZEUS представляет редактор полного экрана для того, чтобы облегчить
модификацию исходного файла.

Получите листинг, используя команду "L". Теперь курсор можно поместить в любую точку

листинга, используя клавиши управления курсором [Caps Shift] и [5], [6], [7], [в]). Для замены
символа в текущей позиции курсора введите новый символ, курсор автоматически
переместится в позицию следующего символа. Пробел можно вставить в строку в текущей
позиции курсора, используя клавишу инверсии изображения [Caps Shift] и [4]. Знак на
экране загорается.

Знак, находящийся в позиции курсора, может быть удален посредством клавиши прямого
изображения ([CAPS Shift] и [3]).

После того, как строка была изменена, новая строка нажатием клавиши [Enter] будет
вставлена в нужное место в тексте,

Другими командами редактора являются:

CLEARSCREEN - очищает весь экран и курсор помещается в верхнем углу экрана с левой
стороны при использовании клавиши графического режима ([Caps Shift] и [9]).

CLEARLINE - текущая строка может быть очищена и курсор помещается в начало строки
при использовании клавиши редактирования ([Caps Shift] и [1]).

Примечание. Эта команда не удаляет текущую строку из текста, а просто с экрана.

TAB (Метка табуляции) - клавиша "блокировки" ([Caps Shift] [2]) перемещает курсор в
следующую точку остановки метки табуляции в текущей строке. Точки остановки меток
табуляции могут быть созданы из программы монитора (см. раздел 7).

6. Команды Ассемблера ZEUS

Команда состоит из буквы наименования команды, за которой следует столько-то числовых
или строковых параметров.

Числовые параметры состоят из десятичных либо шестнадцатиричных констант. Ввод
числовых параметров перезаписывает параметры, используемые по умолчанию для этой
команды.

Если нужно изменить параметр, используемый по умолчанию не нарушая следовавших
ранее параметров, то это можно реализовать посредством ввода запятой для каждого
пропускаемого параметра, например:

L - выдать листинг текста, начиная от старта до финиша,

L 10,50 - выдать листинг текста со строки 10 до строки 50,

L,50 - выдать листинг текста, начиная с от старта до строки 50.

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

F "DIR" - устанавливает все случаи присутствия строки LDIR

F /LDIR/ - то же

Команды

А X - ассемблирует исходный файл и выводит на дисплей сообщение об

ошибках. После того, как X ошибок было найдено и выведено на дисп-
лей, Ассемблер остановится. Для продолжения работы Ассемблера
нажмите клавишу [Enter]. По умолчанию X ж 14.

D X Y - удаляет все строки, расположенные между строками X и Y включите-
льно. Если не заданы никакие параметры, то такое действие не будет
выполнено.

Р'цепочка знаков" XYZ - эта команда выполняет поиск исходного файла

для всех случаев присутствия заданной цепочки. Поиск начинается
со строки с номером X и завершается на строке с номером Y. Любые
строки, содержащие эту цепочку знаков, выводятся на дисплей и
после вывода Z строк инициируется пауза. По умолчанию: X = наи-
меньший номер строки Y в наибольший номер строки Z = 14 "це-
почка знаков" ж""

I X Y - после ввода этой команды Ассемблер ZEUS автоматически гене-
рирует номера строк, начиная с номера X. Любой вводимый текст
будет вставлен в соответствующее место в исходном файле и будет
сгенерирован другой номер строки. Параметр Y представляет про-
межуток между номерами последовательных строк. Удаление но-
мера строки и нажатие клавиши [Enter] остановит автоматическую
нумерацию строк. По умолчани.: X = 10, Y = 10.

L X Y Н - выводит листинг исходного файла, начиная со строки с номером

X до строки с номером Y. Параметр Н предоставляет число строк,
подлежащих выдаче для листинга до наступления паузы. По
умолчанию: X - начало, Y = конец, Н в 14.

М - выполняет выход в программу монитора.

N X - создает новый незаполненный файл, начиная с адреса X

Примечание. При использовании данной команды размещение
исходного файла в определенных ячейках может привести к
аварийному отказу. По умолчанию: X = 32768 (#8...+').

О X - эта команда приводит к тому, что "старый" исходный файл,

расположенный с адреса X, становится текущим исходным;
обычно это используется для восстановления исходного файла,
который был загружен по адресу X. По умолчанию: X = 32768 (#8000)
/ +'-#8000 - представление числа 32768 в шестнадцатиричном виде.

Р X - работа с принтером. Параметр X включает принтер. Вся выводимая

на дисплей информация выводится также на принтер ZX PRINTER.
Нажатие клавиши [BREAK] (прекратить) во время работы принтера
выполняет возврат в языку BASIC. Повторный вход в Ассемблер
ZEUS выполняется обычным образом (принтер при выполнении
повторного входа в Ассемблер автоматически выключается).
Параметр X = 0 выключает принтер. По умолчанию X = 0.

Q - сокращенное имя команды QUIT (выход). Выполняется выход в языку

BASIC. Для возврата в Ассемблер ZEUS введите команду: PRINT
USR 57344.

R X Y Z - перенумеровывание исходного файла Параметры: X = первый

номер строки, Y = промежуток между последовательными
новыми номерами строк, Z = номер строки, с которой начинается
перенумерование. По умолчанию: X « 10, Y = 10, Z = наименьший
текущий номер строки

S X - распечатывает таблицу символов. Параметр X предоставляет число

символов/меток и связанные с ним шест над цатеричные значения,
выдаваемые в листинге до наступления паузы. По умолчанию. X = 15.

Т - выводит на дисплей начальный адрес и длину, выражения в байтах

текущего файла с текстом Файл может быть сохранен при возврате
в языку BASIC (с помощью команды Q) и при использовании команды
SAVE "имя файла" CODE начало, длина для того, чтобы перезагрузить

старый файл по:

- тому же самому адресу, с которого он был сохранен,
используйте команду - LOAD "имя файла" CODE,

- другому адресу - используйте команду LOAD "имя файла",
начальный адрес. После загрузки старого исходного

файла выполните повторный вход в Ассемблер ZEUS (команда
PRINT USR 57344) и введите команду в начальный адрес для
восстановления исходного файла с "начального адреса".

X - выполняет машинный код, полученный при последнем ассемблировании.

Выполнение начинается с утверждения ENT (вход), ближайшего к концу
исходного файла. Если никакого утверждения ENT в исходном файле
не существует, то выдается сообщение об ошибке, переполнения не
происходит.

7. Монитор

Монитор позволяет непосредственно наблюдать и выполнять различные действия в
памяти и в портах ввода-вывода и также создавать различные дополнительные
возможности, используемые в Ассемблере ZEUS.

7.1. Команды монитора

А X - команда выводит на дисплей как десятичное так и шестнадцате-

ричное представление величины X, которая может быть представ-
лена в любом виде, например: А 59 • напечатает: HEX = # ЗВ DECIMAL
= 59 (шестнадцатиричное представление - ЗВ), (десятичное представ-
ление • 59).

С X Y Z - команда копирует блок памяти. В команде используется три
параметра:

X - начальный адрес блока, который будет копироваться.
Y - начальный адрес блока, в который будет выполняться копирование.
Z - число копируемых байтов.

ЕХ - команда выполняет машинный код, начиная с адреса X.

IX - команда распечатывает значение X в порте ввода-вывода.

KXY - команда позволяет изменить цвета границы, бумаги и печатной

краски. Параметр X представляет байт, используемый для запол-
нения таблицы атрибутов: он состоит из четырех полей.

Биты 0-2 управляют цветом краски,

Биты 3-5 управляют цветом бумаги,

Бит 6 устанавливается для "яркого" цвета,

Бит 7 устанавливается для "сверкающего" цвета.

Параметр Y представляет требуемый цвет границы.

Например: KS1

- белая краска на голубом фоне с голубой границей, К 38 7 - черная краска
на белом фоне с белой границей

М X - выполняется вход в режим модификации, начиная с адреса X.
Команда модификации предоставляет крайне гибкое и мощное
средство работы с памятью Например' М 6000 - напечатает 6000 XX
(отмечена позиция маркера)1'11

Параметр XX представляет настоящее содержимое ячейки с адресом 6000. Теперь можно
продолжить работу четырьмя способами.

1. Изменить содержимое по этому адресу. Наберите новое значение над старым
и нажмите клавишу [Enter]. Команда модификации напечатает следующий адрес - 6001
вместе с настоящим содержимым.

2. Изменить содержимое по этому адресу и последующим од новременно. Наберите
новое значение для настоящего адреса и вслед за ним значения, подлежащие записи. При
нажатии клавиши [Enter] команда модификации напечатает адрес и значение байта,
расположенного вслед за последним модифицированным байтом.

3. Изменить адрес модификации. Наберите "/" и вслед за этим новый адрес. При
нажатии клавиши [Enter] действие команды модификации переместится к новому адресу.

4. Выйти из режима модификации. Наберите полностью команду останова и
нажмите клавишу [Enter].

Примечание: знаки могут быть введены с помощью использования кавычек. Например:
после ввода команды М 6000 настоящее значение перепишите на "С". Значение знака С в
коде ASCII может теперь находиться по адресу 6000. Могут быть введены более сложные
форматы.

Например:

6000 43 41 40 "А" "С" "I"

Здесь вводится шесть значений с адреса 6000 по 6005 и выполняется выход из режима
модификации.

6000 43 41 40 / 6500 83 81 80

вводит байты 43 41 40 в ячейки адреса 6000 по 6002. Затем адрес модификации
переместится в 6500 и введутся байты 83 81 и 80 в ячейки с адреса 6500 по 6502. В конце
команда напечатает адрес 6502, за которым будет следовать содержимое ячейки с этим
адресом. Приведенные выше последовательности могут быть объединены с помощью
команды "Ввода режима модификации" (М).

Например:

М 6000 FF 42

вводит режим модификации, помещает байт FF по адресу 6000 и байт 42 по адресу 6001
и выполняет выход из режима модификации.

О X Y • выполняет вывод значения параметра Y в порт X.

S - устанавливает точки останова меток табуляции TAB. Любой отличный
от пробела знак в той же строке, что и знак "S", устанавливает точку
остановки метки TAB (при условии, что строка введена). Клавиши
[Caps Shift] и [2] перемещают маркер между точками остановки
метки. Например: S 11.

К X Y - устанавливает точки остановки метки TAB в колонках, занимаемых
знаком "I".

Т X Y - табулирует память, начиная с адреса X. Восемь байтов памяти выво-
дится на дисплей за один раз в шестнадцатиричном виде. Каждая
строка имеет в качестве префикса адрес первого байта в этой строке.
Табуляция прекращается после того, как Y строк были выведены на
дисплей Для продолжения нажмите клавишу [Enter], нажатие любой

другой клавиши возвратит Вас в обычный режим (режим команды).

Отметим, что модифицировать память можно следующим способом: выполнить табу-
ляцию требуемой области описанным выше способом и после возвращения в режим
команд ввести режим модификации (команда "М"). Используя клавиши управления
маркером, переместить маркер наверх в листинг, полученный после выполнения табуляции.
После изменения всех требуемых значений в данной строке, нажать клавишу [Enter] для
модификации действительных ячеек памяти. Выход из режима модификации выполняется
также как и перед этим с помощью печати полной команды останова и нажатии клавиши
/Enter/.

Z - возвращает управление Ассемблеру.

Все вводимые в программу монитор константы должны быть представлены в шестнад-
цатиричном виде (за исключением констант, вводимых в команде "А",которая подобно
команде Ассемблера использует по умолчанию значения в десятичном виде), шестнад-
цатиричные значения имеют в качестве префикса символ "#".




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Технология спрайтов - часть 6: подготовка данных к печати.
СРU для всех - Адаптация программ на TR-DOS диск.
Ассемблер - Изображение трехмерных объектов. Быстрый вывод точки AT X,Y. Процедура умножения.
АLEХ'у от меня - я только рад обоснованной критике.
ZX in the world - С сегодняшнего номера в этой рубрике мы будем, по мере возможности, освешать все новости, а может и события, относительно новых коммуникационных возможностей Спектрума.

В этот день...   21 ноября