Код:▄███████ █████5.07▄███████ ▄█████▀▀ ███████▄ █████▀██ █████▄▄▄ █████▀██ ▄▄█████▀ ██ ██▀██ 1. РАСПРЕДЕЛЕНИЕ ПАМЯТИ ALASM позволяет pаботать одновременно с несколькими текстами в разных страницах памяти. Переход от редактирования одной страницы к другой осуществляется командой paGe [страница] либо по ssENTER (из списка). Страницы нумеруются по маске максимального значения, передаваемого в драйвер расширенной памяти. Его младшие 3 бита соответствуют битам 0-2 порта #7FFD. При запуске ассемблера проводится тест памяти по всем восьми битам номера страницы драйвера. Его результаты выводятся на экран в виде XXXX kB mask XX. Числа указывают, сколько памяти доступно ассемблеру и какие биты номера страницы отвечают за доступ. По этим битам маскируются операнды команд PAGE и др. Стек при работе не должен быть выше #6dff! 2. КОМАНДЫ СРЕДЫ АССЕМБЛЕРА Выполнение команд может быть прервано нажатием BREAK. Если в результате команды может быть потерян измененный текст, то выдается запрос на его сохранение. Quit [адрес][,страница] Выход из ассемблера. Если параметры не заданы, происходит выход типа RET, иначе JP по "адресу" в "страницу". Debug Вызов отладчика STS7.0. Run [адрес][,страница] Запуск программы. По умолчанию "адрес"=значение последней директивы ORG, "страница"=0. Work [drv:][filename[.ext]] Загрузка файла в текущую страницу. По умолчанию расширение "H". "filename" может представлять собой маску. В этом случае будет загружен последний файл, который ей удовлетворяет. Если "filename" не введен, пользователь выбирает файл из каталога курсором. Catalogue [drv:][mask] Отображает каталог диска. По умолчанию mask="*.*" (все файлы). Формат маски: знак "?" определяет, что в данной позиции может находиться любой символ. Знак "*" определяет, что отсюда и далее все символы произвольны. При достижении ограничителя ("." или конец строки) предполагается, что дальше пробелы. Catalogue C - полезно, чтобы увидеть параметры диска, не мотая весь каталог Name [newfilename[.ext]] Переобозвать текущий текст. Edit [дисковод:][имя файла] Редактировать текст в текущей странице. Если задано "имя файла", файл с таким именем загружается в текущую страницу. Если же файл на диске не найден, в текущей странице создается новый файл с введенным именем. merGe [дисковод:]имя файла Подгрузка файла формата ALASM в конец текущего файла. counT арифметическое выражение Считает выражение. sYmbol [маска|=числовое выражение] Список меток по маске или по значению. Работает только после компиляции. число - значение метки NoDef - метка не была определена, но была использована Macro - метка является именем макроса Wrong - формат метки не определен из-за ошибок компиляции. Assemble Компилирует текст в текущей странице. Save [+|!][drv:] Запись на диск. При указании "+" на текущий или указанный дисковод записываются все измененные файлы. При "!" вообще все. Иначе только текущий. Move Выполнение TR-DOS'ной команды MOVE. Портит память ниже #7400. Info Показывает номер версии, список системных страниц памяти и список файлов в памяти. Видно признак измененности файла '+', а также или счетчик ошибок данной страницы, или, если их нет, первую строку текста. Page [страница] Указанная страница становится текущей. driVe drv Указанный дисковод становится текущим. Jumb [+] Без параметра сканирует текст в текущей странице с целью замены директив "-" на "+" (эта операция автоматически производится при загрузке каждого файла с диска). С параметром + сканирует все тексты в памяти. ssENTER Выбор редактируемого файла из находящихся в памяти. Ban [+] Очистка страницы текста (или всех текстов). Следующие команды оверлейные: conFig Настройки. Можно сохранить на диск в тело аласма. impOrt [drv:][mask] Конвертирует текстовые файлы во внутренний формат ALASM. Опционально переводит токены в верхний регистр и режет строки по двоеточию вне кавычек. Предлагается выбрать файл из соответствующего маске списка. В случае переполнения страницы оставшаяся часть файла может быть импортирована в другую страницу. eXport [+][drv:] Записывает на диск текущий исходник (или все) обычным текстом. 3. КОМАНДЫ РЕДАКТОРА В редакторе экран разбивается на окно редактирования и строку статуса, где выводится номер страницы и имя текущего файла, количество свободной памяти в этой странице, объем содержимого кармана адрес текущей строки в тексте, размер текста и текущий режим редактирования (Ins/Ovr). Список команд редактора (кнопка Extend): Quit - выход в меню. Assemble, counT - как там. Begin, End - в начало/конец текста. Search [строка символов] Поиск. Начинается с позиции, следующей за курсором и продолжается до конца текста. Поиск может быть продолжен по ssI, причем если командя дана в конце текста, поиск пойдет с его начала. Если параметр "строка символов" не указан, будет использована строка, введенная в прошлый раз. sYmbol [начало имени метки] Поиск определения метки. Предполагается, что метка находится в начале строки. Xreplace строка1÷строка2 Замена строка1 на строка2. Y-заменить, N-искать дальше, G-заменить все, BREAK-прервать. coDe XXX>[код символа] Ввод в текст символа с произвольным кодом. XXX показывает код символа под курсором. Restore Вставка содержимого кармана под курсор. Флаг разрешения дополнения кармана сбрасывается. Clear Очистка кармана. Ins/ovr Вставка/замена. Состояние можно сохранить в конфиге. Undo Отмена изменения строки (действует только на текущую строку). Обратима. Labels На экран выдаются все метки, стоящие в начале пустых строк. Можно выбрать нужную метку или нажать BREAK. Клавиши в режиме редактирования: ssI - продолжение поиска ssSP - удаление тек.строки. Строка переносится в карман ssQ,E - Home,End ssW - копирование тек.строки в карман. Если дополнение кармана запрещено, то он очищается csSP - табуляция или Rus/Lat (в конфиге можно сменить местами) cs1 - Rus/Lat или табуляция cs2 - вставка пробела в позицию курсора. Остальная часть строки сдвигается вправо ssENTER - то же, что и в меню cs8 при вводе команд - вспоминает символы предыдущей команды Режим вставки: вставка символа производится со сдвигом остатка слова вправо. Словом считается последовательность символов, не имеющая более одного пробела подряд. Например, при вводе метки в строку с мнемоникой, мнемоника не будет съезжать вправо. влево - курсор помещается на первый непробел слева. вправо - курсор помещается на первый непробел справа или на следующую позицию табуляции, если строка справа пустая. Еnter разрывает строку. Если справа от курсора строка пустая, то после перехода на следующую курсор сдвигается на одну табуляцию (8 символов) - столбец мнемоник. Если курсор в 8-й позиции, после разрыва сохраняется табуляция. cs9 удаляет символ под курсором. Если строка справа пустая, то производится склейка со следующей строкой (если результат не длиннее 64 символов) cs0 если нажат в начале строки - склеивает с предыдущей.




Ответить с цитированием