Справочник по системным программам 1969 г.

Описание программ - ассемблер ZEUS.


ZEUS

Система ZEUS обеспечивает оптимальный способ написания машинного кода Z80.
Общий формат исходного текста
Текст должен состоять из одного или нескольких операторов, разделяемых
двоеточиями. Каждый оператор состоит из:

1) необязательной метки;

2) команды;

3) необязательного комментария.

Необязательная метка
-метка может содержать буквы верхнего и нижнего регистра и цифры;
-метка должна начинаться с буквы;
-длина метки может составлять 14 знаков;
-метка не должна быть идентичной резервируемому слову;
-метка должна быть отделена от команды пробелом.
Команда

-Команда может быть любой из стандартных команд ЦП ZI LOG Z80 или может быть
директивой ассемблерэ'(смотрите ниже).

Необязательнай комментарий
Комментарий может быть добавлен в конце любой команды. Он должен быть отделен
от команды точкой с запятой .

Константы

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

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

шестнадцатиричный #А #FE #6843 #5000

литералы могут быть представлены следующим образом: "а "7 "? "$
Операторы
В ZEUS допускается использование логических операторов:
+ сложение

вычитание
& логическое "и" (AND)

1 логическое "или"("OR")

Никакой приоритет операторов не соблюдается; выражения вычисляются строго
слева направо.

Выражения

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

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

ORG NNNN укороченное имя директивы ORIGIN (качало). Данная директива инст-
руктирует ассемблер ZEUS ассемблировать блок машинного кода, соглас-
но утверждению ORG, начиная с адреса NNNN (при условии, что текущее
значение в директиве DISP равно 0).
DISP NNN укороченное имя директивы DISPLACEMENT (смещение). Директива DISP
инструктирует изменить адрес, с которого генерируется последующий
код, ассемблируется для выполнения с адреса, специфированного пос-
редством текущего параметра директивы ORG.
ENT устанавливает точку входа. Команда 'X' выполняет ассемблированный

код, начиная с последней директивы ENT (вход) в исходном файле.
EQU укороченное имя директивы EQUATE (приравнять) или EQUALS (равно).

Метка может иметь значения, назначенные ей посредством утверждения
вида: метка EQU значение
DEFB NN.NN эта директива вставляет байты NN по текущему адресу ассемблирова-
ния

DEFW NNNN..... Эта директива вставляет слова (адреса) NNN по текущему адресу

ассемблирования

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

префикса метку, например:
DATA I DEFW/4000,3456.6879
OFFSETS DEFB 3,2.14.20.9,2
USRADDR ENT

Команды ZEUS

A X ассемблирует мсходный файл и выводит на дисплей сообщение об ошибках.

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

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

По умолчанию: X 3 наименьший номер строки
Y = наибольший номер строки
Z = 14
"цепочка знаков" = ""
I X Y после ввода этой команды ассемблер ZEUS будет автоматически генери-

ровать номера строк, начиная с номера X. По умолчанию: X = 10.

Y » 10. Выход - удаление номера текущей строки.

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

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

Y = конец, Н = 14.

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

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

По умолчанию: X = 32 768 (#8000).
0 X эта команда приводит к тому, что "старый" исходный файл,расположен-

ный с адреса X. становится текущим исходным файлом.
По умолчанию: X = 32 768 (#8000)
Р X работа устройства печати. Параметр Х=1 включает устройство печати.

Вся выводимая на дисплей информация выводится также на устройство
печати ZX PRINTER. По умолчанию Х=0.
Q укороченное имя команды QUIT (выход). Выполняется выход в систему

BASIC. Для того, чтобы вернуться в ассемблер ZEUS, введите
PRINT USR 57344

R X Y Z перенумеровывается исходный файл. Параметрами являются:
Х«первый номер строки

У=промежуток между последовательными новыми номерами строк;
Z=HOMep строки, с которой начинается перенумерование.
По умолчанию: X ■ 10, Y = 10, Z » наименьший текущий номер строки.
S х распечатывает таблицу символов. Параметр X предоставляет число сим-

волов/меток и связанные с ними шестнадцатиричные значения, выдавае-
мые в листинге до наступления паузы. По умолчанию: х = 15.
Т выводит на дисплей начальный адрес н длину, выражения в байтах теку-

щего файла с текстом. Файл может быть сохранен при возврате в систе-
му BASIC (с помощью команды Q) и при использовании команды:

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

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

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

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

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

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

Y Z эта команда копирует блок памяти. В команде пользуются 3 параметра:

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

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

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

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

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

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

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

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

К 5 1 - белая краска на голубом фоне с голубой границей.

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

выполняется вход в реж.модификации. начиная с адр. X. Эта команда

модификации представляет крайне гибкое и мощное средство работы с

памятью, например: М 6000 напечатает

6000 XX (отмечена, позиция маркера)

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

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

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

3. Изменить адрес модификации. Напечатайте '/' и вслед за этим новый
адрес. При нажатии клавиши ENTER действие команды модификации пе-
реместится к новому адресу.

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

Y выполняет вывод значения параметра Y в порт X ввода-вывода,
устанавливает точки останова меток табуляции TAB. Любой отличный от
пробела знак в тон же строке, что и знак 'S'. устанавливает точку
остановки метки TAB (при условии, что строка введена). Клавиша CAPS
SHIFTED '2' перемещает маркер между точками остановки, например:

S I I

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

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

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

манде 'А'.

Дизассемблер ZEUS

После загрузки программы в память следует ввести: PRINT (JSR 29369(версия 16к)
или PRINT USR 62137(версия 48к).

Список команд:
символ команда параметры действие

A -ASSING регистр=значение Изменение содержимого регистров

В -BREAK адрес Устанавливает точку останова

С -COPY начальный адрес 1. конечный адрес 1. начальный адрес 2.

Перенос группы байтов из 1 ячей-
ки памяти в другую
D -DASASSEMBLE адрес Обратное ассемблирование

Е -EDIT адрес Редактирование. На экране 20 ад-

ресов и их содержимое.
F -FIND начальный адрес.Конечный адрес.Искомая цепочка символов

Поиск цепочки символов в интервале
G -GOTO адрес переход по адресу

J -JUMP RELATIVE адрес с. Адрес в. Вычисление относительного смещения

К -CONVERT число Преобразование 16-ричного в 10-рич-

ное и наоборот

М -MESSAGE "сообщение" адрес Для вставки цепочки символов по

адресу

Р -PRINT адрес Печать содержимого 64 адресов па-

мяти в символьном виде
R -REGISTERS без параметров Вывод содержимого регистров

S -SUBSTITUTE "имя" начальный адрес, конечный адрес, байт 1. байт 2.

Байт 1 заменяется на байт 2 в за-
данном интервале

Т -TABULATE адрес печать содержимого 64 адресов па-

мяти в HEX виде

V -VERIFY начальный адрес 1. конечный адрес I, начальный адрес 2.

Сравнение 2-х областей памяти
X -EXIT без параметров Возврат в бейсик

Z -ZERO начальный адрес, конечный адрес

Обнуление
Редактор экрана

'CAPS SHIFTED'/l очищает строку, содержащую маркер ("редактирование)
'CAPS SHIFTETV2 перемещает маркер в следующую точку ("блокировка прописных
букв")

'CAPS SHIFTED'/З удаляет знак, расположенный под маркером. ("Прямое изобра-
жение" )

CAPS SHIFTEDV4 вставляет пробел в позицию маркера. ("Обрати, изображение")
'CAPS SHIFTED'/5.6.7.8 перемещение маркера.

'CAPSHIFTED'/9 очищает экран и возвращает маркер "домой".

Коды сообщений об ошибках

0 Недопустимый знак или неразрешенное утверждение.

1 Слишком длинная метка.

2 Ожидаемый символ ')'.

3 Ошибка усечения или выход за пределы диапазона.

4 Ожидаемая ','.

5 Ошибка в контексте.

6 Повторно определенная метка.

7 Ожидаемый символ '('.

8 Недопустимое мнемоническое обозначение.

9 Неопределенная метка.

Резервируемые слова

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

А

ADC

ADD

AF '

AF

AND

В

ВС

BIT

С

CALL

CCF

CP

CPO

CPDR

CPI

CP I R

CPL

I

DAA

DE

DEC

DEFB

DEFM

DEFS

DEFW

DL

DISP

D J NZ

E

El

ENT

EQU

ЕХ

EXX

H

HALT

HL

I

IM

IN

1 NC

1 ND

1 NDR

INI

INI R

IX

IY

JP

JR

L

LD

LDD

LDDR

^D I

LDIR

M

NC

NEG

NOP

NV

NZ

OR

ORG

OTDR

OTIR

OUT

OUTD

OUT I

P

PE

PO

POP

PUSH

RES

RET

RET I

RETN

RL

RLA

RLC

RLCA

RLD

RR

RRA

RRC

RRCA

RRD

RST

SBC

SCF

SET

SLA

SP

SRA

SRL

SUB

v

XOR

П

л а н

п а м

яти

с и с T

e м ы

Z E U

S

Системой ZEUS используются следующие области памяти

A. Машинный код ZEUS

и машинная память 57 344-65279 (#Е000- #FF00)

B. Исходный файл первоначально начинается с адреса 32 768(#8000), но

может быть изменен командой 'N'.

C. Ассемблированный код определяется пользователем через
(объектный код) директивы ORG и DISP.

D. Таблица символов это таблица, которая содержит алфавитно-цифровые

символы и метки, определенные в исходном файле,
вместе со связанными с ними значениями. Таблица
начинается с адреса 57 343 и увеличивается в раз-
мере вниз со скоростью 16 байтов на одну исполь-
зуемую метку.
Стандартные программы

Имя прог-мы

Адрес

Функция |

1

1 NPUTCHAR

#F652

Ожидает нажатия клавиши; результат помещается в резерви- |
руемое слово A j

PR INTCHAR

#F503

Печатает знак, находящийся в А. Может также являться уп- |
равляющим знаком (см. ниже). Если флаг устройства печати |
не равен нулю, то выполняется также вывод на устройство |
печати.

PR INTDECIMAL

#F5A3

Записывает резервируемое слово NL в десятичном виде и за
ним пробел.

PRINTNEXBYTE

#F2DF

Записывает А в шестнадцатиричном виде и вслед за ним про-
бел.

PRINTSTPING

#E4e3

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

INPUTLiNE

#F6E2

Выполняет вход в редактор экрана; помещаетстроку, имею-
щую маркер, в буфер.

BUFFER

#FE00

Буфер из 32 знаков, оканчивающихся нулевым байтом.

PRINTERFLAG

#F4CB

Не ноль, для того, чтобы допустить работу устройства пе-
чати.

PR INTDECNZ

#E59e

Печатает десятичное число в NL без ведущих нулей.

Список управляющих знаков редактора:

*04 удааляет знак, находящийся под маркером.

*05 вставляет пробел в позицию маркера.

#06 перемещает маркер в следующую позицию табуляции.

#07 очищает строку, содержащую маркер.

#08 перемешает маркер влево.

#09 перемешает маркер вправо.

#0А перемещает маркер вниз.

#0В перемещает маркер вверх.

#0С перемещает маркер влево и знак пробела под маркер.

#0D перемещает маркер в начало следующей строки."Прокручивает" строки,

если маркер на строке, расположенной снизу экрана.

#0F очищает экран и возвращает маркер на свое место.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
От авторов - Итaк нaчнем...
Застрял ? - Описание игры Sacred Sword (La Espada Sagrada).
Конкурс - еще раз о конкурсе прошлого номера.
Мысли - Достоин ли NEMO (Вячеслав Скутин) уважения?
Навины - новости, старости, слухи, приколы: "рано или позно вернемся всеравно на любимый Спекки!"

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