НОВЫЕ ПРОГРАММЫ
Master Assembler v 1.0 for 128k Speccy only!
1. Общие сведения
Я (KSA) не RST7, и никакого отношения к нему не имею... Мой путеводитель по MASM'y будет предельно краток. Для тех, кто уже сейчас рвётся в бой, могу сообщить только одно - если Вам доводилось когда-либо работать с ассемблером TASM, то особенно ярких ВИЗУАЛЬНЫХ отличий от TASM'a Вы не найдете.
Теперь подробнее обо всем.
2. Основные НЕВИЗУАЛЬНЫЕ отличия.
Максимальный размер текста |
около 26800 байт |
Максимальный размер строки |
64 символа |
Максимальный размер буфера |
9000 байт |
Максимальное количество меток |
1023 |
Максимальная длинна метки |
10 символов (двоеточие, как и в TASM'e, игнорируется) |
Средняя скорость ассемблирования |
700 строк/сек (и в пером и во втором проходах) |
Макросы |
реализованы |
Недокументированные команды |
реализованы |
Работа с половинками индексных регистров |
реализована |
Ещё раз отдельно хотелось бы упомянуть о скорости ассемблирования. Она в 2 раза больше, чем у TASM'a v3.0 (by Rst7), который на протяжении двух лет считался самым быстрым ассемблером.
3. Загрузка и запуск.
Из TR-DOS'a загрузка (и автоматический запуск после неё) осуществляется вводом следующей команды:
A>RUN "MASM128K" <Enter>
Запуск из BASIC'a после загрузки: _RANDOMIZE USR 23600_
WARNING! Стек перед запуском MASM'a должен быть ниже 32768!!!
_(Стандартный стек - 24575 (#5FFF))._
4. Меню.
Сразу после загрузки появятся копирайты, после которых появится само меню. Из него Вам будут доступны такие вещи:
E Выход в редактор для набора или редактирования текста.
W Выбор файла, с которым Вы будете работать (управление осуществляется клавишами
курсора и 'O'+'P'+'Q'+'A'+Space+Enter). S Принудительная запись текста на диск (ещё запрос на запись подается перед командой,
которая может испортить текст). G Присоединение файла с диска к файлу в памяти.
I_Импортировать файл из формата TASM'a v3.0 в формат MASM'a._
WARNING!! В импортировающемся файле не должно быть строк длиной более 64-х символов! L Открыть новый файл. Запрашивается имя. N Поменять имя рабочего файла.
C Посмотреть каталог (необходимо наличие диска в дисководе, но если его там не окажется -
ничего страшного.). A Откомпилировать программу в объектный код.
НОВЫЕ ПРОГРАММЫ
J Посмотреть информацию об откомпилированном файле.
F Подгрузить новый фонт (2 сектора = 128 символов (2 символа в знакоместе, сначала
русские буквы, потом основной набор латинских). Q Выход в STS (v3.2 или v3.3) или MTD (MasTer Debuger). B Выход в бейсик.
5. Редактор.
Управление в редакторе осуществляется следующими клавишами:
CS+8 |
|
передвинуть курсор на символ вправо. |
CS+5 |
|
на символ влево. |
CS+6 |
|
на строку вниз. |
CS+7 |
й |
на строку вверх. |
CS+3 |
T.VIDEO |
на 20 строк назад. |
CS+4 |
I.VIDEO |
на 20 строк вперед. |
CS+1 |
EDIT |
табуляция. |
CS+0 |
DELETE |
удаление символа слева от курсора. |
CS+9 |
GRAPH |
удаление символа в позиции курсора. |
CS+2 |
C.LOCK |
вставить символ в позицию курсора. |
SS+W |
<> |
вставить строку. |
SS+Q |
<= |
удалить строку. |
SS+E |
>= |
взять строку в буфер. |
SS+I |
|
продолжить поиск образца. |
SS+Enter |
|
запись текста без выхода из редактора. |
SS+CS |
EXT.MODE |
вход в командный режим: |
Q - выход в меню. S - поиск образца по всему тексту. U - поиск вверх от курсора. D - поиск вниз от курсора, X - поиск по всему тексту и замена. R - скопировать строки из буфера. P - записать буфер на диск. G - загрузить буфер с диска. C - очистить буфер.
L - перейти на нужную строку (ввод номера строки осуществляется в HEX^).
F - Переключение вида отображения символов с кодами #60-#7F (латинские прописные / русские заглавные). В низу экрана находится строка со служебной информацией:_
LIHE:□□□□ COL:□□ F:L ТЕКТ:ПППП/FFFF Б■ JF:□□□□/Ч□□□ FILE:.. 12 3 1 5 6
1 - номер строки (в HEX^), на которой находится курсор.
2 - номер столбца (в HEX^), в котором находится курсор.
3 - текущий вид отображения символов с кодами #60-#7F
4 - размер текста: занято/свободно.
5 - размер буфера: занято/свободно.
6 - имя редактируемого файла.
6. Ассемблер.
Поддерживает все операции, использующиеся в TASM'e, но:
1. Допустимы сокращения: DEFB - DB; DEFW - DW; DEFS - DS.
2. Команда DEFS немного расширена: DEFS <число_1>, [<число_2>, ... <число N>], где <число_1> - количество повторений списка байтов (<число_2> ... <число_К>).
Если второй и более параметры не указаны, то они принимаются равными нулю.
НОВЫЕ ПРОГРАММЫ
3. Макросы реализованы нестандартным образом: BEGIN <NN>
...;<--тело макроса. END
Кусок текста между BEGIN. END откомпилируется <NN> раз подряд. Допускается до 8 вложенностей. Метки внутри макроса недопустимы (пользуйтесь $+смещение)!
4. Не советую нажимать BREAK и вытаскивать диск при ШСВШ'е и INCLUDE.
5. Можно вводить двоичные числа: %100101 (=25Н=#25=37)
6. Знак $ - текущий адрес компилирования (как и в TASM'e).
7. В выражениях с числами можно использовать действия / * - + & ', а также @ - XOR.
8. Ведены макрокоманды такого плана:
- DOWN <регистровая пара: HL,DE,BC>. При ассемблировании заменяется на такую последовательность команд (для HL):
INC |
Н |
LD |
А,Н |
AND |
#07 |
JR |
NZ,$+12 |
LD |
A,L |
SUB |
#E0 |
LD |
L,A |
JR |
NC,$+6 |
LD |
A,H |
SUB |
#08 |
LD |
H,A |
- UP <регистровая пара: HL,DE,BC>. Аналогично DOWN, но на линию вверх.
- STOPKEY <ADDRESS>. Перейти, если клавиша не нажата на ADRESS. Если параметра нет, то перейти на самого себя:
XOR А IN A,(#FE) CPL
AND #1F
JP Z, ADDRESS (или JR Z,$-6)
- SYSTEM. Такая последовательность:
DI
IM 1 LD A,#3F LD I,A LD IY,#5C3A
- SYSTEM+. Аналогично SYSTEM, но плюс ещё:
EI RET
7. Сообщения об ошибках.
0 - нет такой команды.
1 - невозможный параметр.
2 - нет метки.
3 - метка уже есть.
4 - неправильная метка.
5 - невыполнимое действие.
6 - переполнение таблицы меток ! - нет файла.
? - бред сивой кобылы.
НОВЫЕ ПРОГРАММЫ
A - большая вложенность (для BEGIN.. .END^). B - END'ob больше, чей BEGIN.
Иногда встречаются и другие ошибки, но когда они появляются - я ещё сам толком не разобрался.
8. Распределение памяти.
MASM не затирает 48-ой памяти (кроме экрана) и для своей работы использует только страницы 1, 3, 4 и 6.
9. CREDITS & COMING SOON.
CREDITS: KSA Software productions :
Coding............50%
Original idea.........50%
New turbo algorithms...90% *AIG* productions: Coding...50% Original idea...50% New turbo algoritms.. .10% Thanks to Rst7 for TASM 3.0 (MASM written in TASM, ofcoz). Coming soon from us: MasTer Debuger vl.0, который будет сидеть в 7 странице, выводить текст на второй экран и свободно трассировать как
RAM, так и ROM (48-ой, 128-ой и TR-DOSовский). Coming soon form KSA: Monster Commander - лучшая файловая оболочка
для ZX-SPECTRUM 48/128K! COPYRIGHT BY *AIG* & KSA SOFTWARE Russia, Moscow, 25.10.95.
НОВЫЕ ПРОГРАММЫ
ИФК: судя по всему, в качестве образца при написании MASM'a использовался замечательно зарекомендовавший себя за 2 последних года ассемблер TASM by RST7.
Отличительной особенностью ассемблера MASM является, прежде всего, необыкновенно высокая скорость ассемблирования, вдвое превышающая скорость ассемблирования TASM 3.0. Поскольку интерфейс MASM'а очень похож на TASM'овский, работать с ним так же просто, но, в отличие от последнего, же дисковые операции выполняются с помощью удобного дискового меню. Кроме того, в режиме редактирования текста имеется возможность оперативно сохранять изменения на диске без выхода в основное меню (S.Shifts+Enter). Также удобна расширенная информационная строка в нижней части экрана. Каждый программист оценит возможность использования в программах макросов, недокументированных команд и работу с половинками индексных регистов. Нельзя не отметить набор встроенных макрокоманд, чаще других необходимых в работе. Множество других мелких удобств дополняет общее впечатление от этой программы. На данный момент MASM - это самый быстрый и самый удобный ассемблер для программирования на ZX SPECTRUM.
Эти строки написал один из лучших программистов, сотрудничающих с ZX РЕВЮ. Причем лучшим подтверждением сказанного явился факт немедленной замены им у себя TASM 3.0 на MASM 128!