Программирование на Ассемблере
Предоставим написание более \"правильной\"
версии читателю в качестве упражнения... Как мы уже упоминали, с помощью Write можно выводить специальные символы
(special characters). Некоторые из них мы уже использовали в примерах (LF и
CR). Такие символы называются управляющими, так как они никак не
отображаются на экране, но исполняют некоторые действия по управлению
выводом. Например, вывод символа LF вызывает перевод курсора на одну строку
вниз (при этом номер столбца (X-координата) курсора не меняется). Приведем список некоторых управляющих символов и последовательностей (коды
символов записаны в шестнадцатеричной системе): Код Функция
--------------------------------------------------------------------------
08 \"забой\" (backspace) - удаление предыдущего символа
0A перевод курсора на одну строку вниз (LF)
0B перевод курсора на одну строку вверх
0C очистка экрана
0D перевод курсора в начало текущей строки (CR)
0E Выключить режим спецсимволов (см. 0F)
0F Включить режим спецсимволов
1B escape Существуют, также, управляющие последовательности, которые начинаются с
кода CSI (Control Sequence Introducer, код $9B). Символы, следующие за CSI,
определяют конкретную функцию. В следующей таблице [n] обозначает
десятичное число, записанное в ASCII-виде. Это число может быть опущено, в
этом случае будет использоваться значение в круглых скобках. Последовательность Функция
--------------------------------------------------------------------------
9B [n] 40 вставить n пробелов
9B [n] 41 передвинуть курсор на n (1) строк вверх
9B [n] 42 передвинуть курсор на n (1) строк вниз
9B [n] 43 передвинуть курсор на n (1) символов вправо
9B [n] 44 передвинуть курсор на n (1) символов влево
9B [n] 45 установить курсор в первый столбец и передвинуть на n
(1) строк вниз
9B [n] 46 установить курсор в первый столбец и передвинуть на n
(1) строк вверх
9B [n] [3B m] 48 установить курсор на строку n и в столбец m
9B 4A очистить экран от курсора до конца
9B 4B очистить строку от курсора до конца
9B 4C вставить строку
9B 4D удалить строку
9B [n] 50 удалить n символов, начиная от курсора
9B [n] 53 прокрутить экран вверх на n строк
9B [n] 54 прокрутить экран вниз на n строк
9B 32 30 68 интерпретировать перевод строки как LF + CR
9B 32 30 6C интерпретировать перевод строки как LF
9B 6E получить координаты курсора в виде:
9B (строка) 3B (столбец) 52
9B (style);(fcolor);(bcolor) 6D
задать режим вывода.
|