Введение.
Данное описание рассчитано на программистов, знакомых с ассемблером и со средой типа TURBO6M, поэтому в нем указаны только основные характеристики системы и её отличия от TURBO6M.
Состав системы.
Система MICRO+ состоит из файлов: - MICRO+ ассемблерная система включающая: монитор, ассемблер и редактор текста.
- LINK+ редактор связей.
К сожалению автору не удалось создать единый файл для работы как на БК-010, так и на БК-011(М), поэтому существует два файла для БК-010 с расширением .B10 и два файла для БК-011(М) с расширением .B11.
MICRO+. Технические характеристики.
Система предназначена для работы на БК-010 с дополнительным ОЗУ 16кб или на БК-011(М).
- Ассемблер: Адрес начала (запуска,теплого старта) = 1000, Длина= 23000
- Текст: БК010 (Адрес=140000, Длина= 20000), БК010(M) ( Адрес страница 3, Длина= 40000)
- Буфер кода: Адрес=24000, Длина= 14000
Длина 14000 относится к выполняемым модулям, если вы создаете модуль командой CO или CL, то возможная длина будет 24000 для БК-0010 и 34000 для БК-0011(М).
На БК-011(М) MICRO+ использует страницу 3 для текста и страницу 6 для таблицы меток и буфера кода.
MICRO+. Монитор.
- RS - перезапуск системы.
- MO - выход в монитор БК-0010.
- LO - загрузка текста.
- LF - дозагрузка текста.
- ST - запись всего текста.
- SF - запись текста от начала до курсора.
- ST - запись текста от курсора до конца.
- SC - вход в редактор текста.
- RU - запуск программы.
- CL - создание объектного модуля.
- CO - создание загрузочного модуля.
- SA - запись модуля.
- TТ- вывод таблицы меток на экран.
При командах RU и CO выдается сообщение о длине кода, количестве ошибок и об отсутствующих метках. Если произошла ошибка то на экран выдается сообщение и программист может либо прервать работу клавишей СТОП, либо продолжить нажав любую другую клавишу. Система предназначена для работы в МК-ДОС т.к. использует команду 202 при обращение к ЕМТ 36 (запись с адресом). При этом текст записывается с адресом 0, а загрузочные модули с адресом компоновки.
MICRO+. Ассемблер.
В отличие от других версий ассемблера в MICRO+ метка может иметь длину до 9 символов RADIX ( A-Z(a-z),0-9,$,.,_ ). В системе поддерживается арифметика над метками (+,-), конструкция типа STACK=%6, конструкция типа MET1=1000 обрабатываются правильно независимо от адреса компоновки. Правильно обрабатываются также:
- Точка в выражении - является глобальной и устанавливается при линковке.
- Большое количество пробелов в операторах .ASCII, .ASCIZ. Локальные метки начинаются с цифры. Имеется возможность в переходах SOB , BR и др. писать выражения типа ЛокальнаяМетка+(-)ВыражениеИзЧисел.
Пседооператоры .BLKB,.BLKW,.BYTE, .WORD, .ASCII, .ASCIZ, .RAD50, .EVEN, .END, .ENABL,
.DSABL, .TTYIN, .TTYOUT аналогичны TURBO6M.
ORG адрес - адрес компиляции программы (аналогично LA).
.INCLUD /имя/ - подключение к коду объектного модуля (в любом месте программы).
Введены команды арифметики с плавающей точкой (эмулятор в файле ARIFM+.OBJ инициализируеся командой CALL ARIFM) и команды PUSH DD и POP DD аналигичные MOV DD,-(SP) и MOV (SP)+,DD соответственно (для ускорения написания программ и приближения к ассемблерам Z80 и xxx86), а также команды JMPLC и CALLC аналогичные командам JMP, CALL но работающие с локальными метками.
Некоторые недостатки (особенности).
Символ ; отделяет комментарий от команды, поэтому конструкции '; , ";. , / . . . ; . . . / обрабатываются неправильно. Программист должен сам следить за длиной кода программы так как может испортиться таблица меток.
LINK+. Монитор.
- RS - перезапуск системы.
- MO - выход в монитор БК-0010.
- LA - установка адреса сборки.
- LI - загрузка очередного объектного модуля.
- SA - запись загрузочного модуля.
- TТ - вывод таблицы меток на экран.
Коды ошибок для MICRO+ и LINK+.
- 00 - нет места для ссылок (до 2000).
- 01 - нет места для меток (до 400).
- 02 - повторная метка.
- 03 - слишком длинный переход BR.
- 04 - слишком длинный переход SOB.
- 05 - ошибка в ASCII.
- 06 - ошибка в RAD50.
- 07 - требуется регистр.
- 10 - неправильная команда.
- 11 - неизвестный псевдооператор.
- 12 - требуется операнд.
- 13 - неправильное имя метки.
- 14 - неправильное число.
- 15 - слишком большое число MARK.
- 16 - слишком большое число EMT(TRAP).
- 17 - неправильная адресация.
- 20 - ошибка имени OBJ файла.
- 21 - ошибка чтения OBJ файла.
- 22 - не OBJ файл.
- 23 - слишком длинная программа (код).
- 24 - требуется цифра 0-7.
- 25 - нет места для псевдорегистров (до 10).
- 26 - не найден END.
MICRO+ v.2.0