ZX User #01
16 ноября 1996
  Софт  

Система - описание ассемблерa MASM (Master Assembler v1.0 for 128k).

<b>Система</b> - описание ассемблерa MASM (Master Assembler v1.0 for 128k).
                         ╔════════════╗
                         ║  СИСТЕМА   ║
                         ╚════════════╝

    В этом разделе мы предлагаем вам описание ассемблера MASM
    ─────────────────────────────────────────────────────────

         ┌───────────────────────────────────────────┐
         │Master Assembler v1.0 for 128k Speccy only!│
         │-------------------------------------------│
         │          INFORMATION FOR BRAKERS          │
         │          -----------------------          │
         └───────────────────────────────────────────┘

                      1. Общие сведения.

        Я (KSA) не RST7, и никакого отношения к нему не имею...
Мой путеводитель по MASM'у будет предельно краток и непонятен.
Для тех, кто уже сейчас рвется в бой, могу сообщить только одно-
особенно ярких ВИЗУАЛНЫХ отличий от TASM'а вы не найдете!
        Теперь подробнее обо всем...


              2. Основные НЕ ВИЗУАЛЬНЫЕ отличия.

     Максимальный размер текста............около 26800 байт
     Максимальный размер строки..................64 символа
     Максимальный размер буфера...................9000 байт
     Максимальное количество меток.....................1023
     Максимальная длинна метки..................10 символов
           (двоеточие (как и в TASM'е) игнорируется!)
     Средняя скорость ассемблирования.........700 строк/сек
                (и в пером и во втором проходах)
     Макросы....................................реализованы
     Недокументированные комманды...............реализованы
     Работа с половинками индексных регистов....реализована

        Еще раз отдельно хотелось бы упомянуть о скорости ассем-
блирования. Она в 2 раза больше, чем у TASM'а v3.0 (by Rst7),ко-
торый на протяжении  двух  лет  считался  самым  быстрым  ассем-
блером.


                     3. Загрузка и запуск.

        Из TR-DOS'a загрузка (и автоматический запуск после нее)
осуществляется вводом следующей комманды:

               A>RUN "MASM128K"   

        Запуск из BASIC'a после загрузки:

               RANDOMIZE USR 23600

 WARNING! Стек перед запуском MASM'a должен быть ниже 32768!!!
            (Стандартный стек - 24575 (#SFFF)).


                            4.Меню.

        Сразу после загрузки появятся копирайты, после которых
появится и сам менюшник. Из него Вам будут доступны такие вещи:

        Е - Выход в редактор для набора или редактирования текс-
та.
        W - Выбор файла,с которым вы будете работать (управление
осуществляется клавишами курсора и 'О'+'P'+'Q'+'A'+Space+Enter).
        S - Принудительная запись текста на диск  (еще запрос на
запись подается перед коммандой, которая может испортить текст).
        G - Присоединение файла с диска к файлу в памяти.
        I - Импортировать файл из формата  TASM'а v3.0  в формат
MASM'a. WARNING!! В импортировающемся файле не должно быть строк
длинной более 64-х символов!
        L - Открыть новый файл. Запрашивается имя.
        N - Поменять имя рабочего файла.
        С - Посмотреть каталог  (необходимо наличие диска в дис-
ководе, но если его там не окажется - ничего страшного...).
        A - Откомпилировать программу в об'ектный код.
        J - Посмотреть информацию об откомпилированном фаиле.
        F - Подгрузить новый фонт (2 сектора = 128 символов ( 2
символа в знакоместе, сначала русские буквы, потом основной на-
бор латинских).
        Q - Выход в STS (v3.2 or v3.3) or 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    EIDT    - табуляция.
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 - поиск вниз от курсора.
                Х - поиск по всему тексту и замена.
                R - скопировать строки из буфера.
                Р - записать буфер на диск.
                G - загрузить буфер с диска.
                C - очистить буфер.
                L - перейти на нужную строку (ввод номера строки
                    осуществляется в HEX'e).
                F - переключение вида отображения символов с ко-
                    дами #60-#7F (латинские прописные / русские 
                    заглавные).

        Внизу экрана находится строка со служебной информацией:

LINE:0000 COL:00 F:L TEXT:0000/FFFF BUF:0000/4000 FILE:........
    1        2    3         4              5            6

        1-номер строки (в HEX'e), на которой находится курсор.
        2-номер столбца (в HEX'e), в котором находится курсор.
        3-текущий вид отображения символов с кодами #60-#7F
        4-размер текста: занято/свободно.
        5-размер буфера: занято/свободно.
        6-имя редактируемого файла.


                        6.Ассемблер.

        Поддерживает все операций, использующиеся в TASM'е, но:
   1.Допустимы сокращения: DEFB - DB; DEFW - DW; DEFS - DS.
   2.Комманда DEFS немного расширена:
              
         DEFS   <число_1>,[<число_2>,...,<число N>]

       где <число_1>  -  количество  повторений  списка  байтов
       (<число_2>...<число_N>).
       Если второй и более параметры не указаны, то они принима-
       ются равными нулю.
   3.Макросы реализованы нестандартным образом:

       BEGIN 
       ....       ;<---тело макроса.
       END
     Кусок текста между BEGIN.....END откомпилируется    раз
 подряд. Допускается  до  8  вложенностей.  Метки внутри макроса 
 недопустимы (пользуйтесь $+смещение)!
   4.Не советую нажимать BREAK и вытаскивать диск при INCBIN'е и
 INCLUDE.
   5.Можно вводить двоичные числа: %100101 (=25Н=#25=37)
   6.Знак $ - текущий адрес компилирования (как и в TASM'e).
   7.В выражениях с числами можно использовать действия / * - + 
 & ', а также @ - XOR.
   8.Ведены макрокомманды такого плана:
          - DOWN <регистровая пара: HL,DE,BC>
              При ассемблировании заменяется на такую последова-
            тельност комманд (для HL):
                
                 INC     H
                 LD      A,H
                 AND     #07
                 JR      NZ,$+12
                 LD      А,L
                 SUB     #E0
                 LD      L,A
                 JR      NC,$+6
                 LD      A,H
                 SUB     #08
                 LD      H,A

          - UP <регистровая пара: HL,DE,BC>
             Aналогино DOWN, но на линия вверх.
          
          - STOPKEY 
Перейти, если клавиша не нажата на ADRESS. Если па- раметра нет, то перейти на самого себя: XOR A IN A,(#FE) CPL AND #1F JP Z,ADDRESS (или JR Z,$-6) - SYSTEM Такая послядовательность: DI IM 1 LD A,#3F LD I,A LD IY,#5CЗA - SYSTEM+ Аналогично SYSTEM,но плюс еще: EI RET 7.Сообщения об ошибках. 0 - нет такой команды. 1 - невозможный параметр. 2 - нет метки. 3 - метка уже есть. 4 - неправильная метка. 5 - невыполнимое действие. 6 - переполнение таблици меток. ! - нет файла. ? - бред сивой кобылы. А - большая вложенность (для BEGIN...END'ов). B - END'ов больше чем BEGIN. Иногда встречаются и другие ошибки, но когда они появляются- -я еще сам толком не разобрался... 8.Распределение памяти. MASM не затирает 48-ой памяти (кроме экрана) и для своей работы использует только страницы 1,3,4 и 6. 9.CREDITS & COMING SOON: CREDITS: KSA SoftWare productions : Coding...............50% Original idea........50% New turbo algoritms..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 v1.0, который будет сидеть в 7 странице, выводить текст на второй экран и свободно трассировать как RAM, так и ROM (48-ой,128-ой и TR-DOSовский). Coming soon form KSA: Monster Commander - лучшая файловая оболочка для ZX-SPECTRUM 48/128K!



Другие статьи номера:

Хит - ТОП 10 игр для Спектрума.

Система - описание ассемблерa MASM (Master Assembler v1.0 for 128k).

Игры - описание игры Fighter Bomber.

Новости - Вплотную занялись написанием своей игры HAMON 4.

Обзор - Spectrofon 20, Space Gun, Doom, Paradise Lost.

Почтовый ящик - Так-как это первый выпуск нашей газеты, писем пока нет.

Реклама - Продается компьютер "БАЛТИК 128к".


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

Похожие статьи:
Our News - Костяк "стариков" развалился.
STARе - Полное описание игры NewDizzy.
Кто там кодит? - Attribute bump mapping: bump mapping для тех кто не въехал.
Бывает - "рыночные" истории.
Ferrum для уебанов - разгон Байта.

В этот день...   25 апреля