Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Motorola HC11DESC_R.DOC
Скачиваний:
3
Добавлен:
15.08.2019
Размер:
1.4 Mб
Скачать

Приложение 9 Подпрограммы монитора buffalo

Подпрограммы монитора BUFFALO предназначены для символь­ного ввода/вывода на терминал, работы со строками символов, а также для выполнения некоторых системных функций. Некоторые подпрограммы используют в процессе работы внутренние переменные BUFFALO: указатель на буфер ввода (PTR0) и сдвиговый регистр (SHFTREG).

Двухбайтовая переменная PTR0 (адрес $AE) хранит адрес очередного байта во входном буфере. Возможно резервирование пространства под входной буфер в пользовательской прграмме и помещение адреса начала буфера в переменную PTR0.

Двухбайтовый регистр сдвига SHFTREG (адрес $9C) предназначен для хранения последних четырех цифр числового аргумента.

Необходимо помнить, что монитор BUFFALO пользуется этими переменными при вводе командной строки, поэтому отладка программ, также использующих эти переменные, затруднена.

Таблица 9. Подпрограммы монитора BUFFALO.

Адрес

Название

Описание

$FF7C

.WARMST

Выход в BUFFALO

$FF7F

.BPCLR

Очистка таблицы точек останова

$FF82

.RPRINT

Отображение регистров процессора

$FF85

.HEXBIN

Преобразует ASCII символ, на­хо­дя­щий­ся в аккумуляторе A в 4-битное двоич­ное число. Затем вдвигает полу­чен­ное число в SHFTREG справа. Если содержи­мое регистра A не явля­ется шестнадцати­ричной цифрой, содер­жи­мое SHFTREG не изменяется.

$FF88

.BUFFAR

Ввод шестнадцатиричного аргумента из входного буфера в SHFTREG. Аргу­мент может иметь до четырех цифр.

$FF8B

.TERMAR

Ввод шестнадцатиричного аргумента с терминала в SHFTREG. Аргумент может иметь до четырех цифр.

$FF8E

.CHGBYT

Переписать содержимое младшего байта SHFTREG в область памяти, на которую указывает регистр X. (Возможна запись в ЭСПЗУ).

$FF91

.READBU

Считать символ из входного буфера в аккумулятор A (без перехода к следую­щему символу).

$FF94

.INCBUF

Увеличить указатель на входной буфер (перейти на следующий символ).

$FF97

.DECBUF

Уменьшить указатель на входной буфер (вернуться на один символ назад).

$FF9A

.WSKIP

Вычитывать входной буфер пока не встретится непробельный символ (про­бель­­ными символами считаются запятая, пробел и табуляция). Возвра­щает найден­ный непробельный символ в ак­ку­муля­торе A. Если это символ конца строки ($0d), то устанавливается флаг Z в слове состояния процессора.

$FF9D

.CHKABR

Считывает очередной символ с терминала. Если полученный символ есть <CtrlX> ($18), <CtrlA> ($1) или <Delete> ($7F), то происходит прекра­ще­ние выполнения программы. Если символ есть <CtrlW> ($17), исполнение приостанавливается до ввода следую­щего символа. В остальных случаях введен­ный символ возвращается в аккумуляторе A.

$FFA0

.UPCASE

Переводит символ, содержащийся в аккумуляторе A в верхний регистр.

$FFA3

.WCHEK

Проверяет символ, содержащийся в аккумуляторе A и, если это пробель­ный символ, устанавливает флаг Z в слове состояния процессора.

$FFA6

.DCHEK

Проверяет символ, содержащийся в аккумуляторе A и, если это раздели­тель­ный символ (любой пробельный символ или символ конца строки), уста­нав­ливает флаг Z в слове состоя­ния процессора.

$FFA9

.INIT

Инициализация терминального порта.

$FFAC

.INPUT

Ввод символа с терминала. Принятый символ возвращатся в аккумуляторе A. Устанавливает флаг Z в слове состоя­ния процес­сора, если не было введено никакого символа.

$FFAF

.OUTPUT

Выводит символ, содержащийся в аккумуляторе A, на терминал.

$FFB2

.OUTLHL

Преобразует старшие четыре бита содержи­­мого аккумулятора A в шест­надцати­­ричную цифру и выводит ее на терминал.

$FFB5

.OUTRHL

Преобразует младшие четыре бита содержи­мого аккумулятора A в шест­надцатиричную цифру и выводит ее на терминал.

$FFB8

.OUTA

То же, что и .OUTPUT.

$FFBB

.OUT1BY

Преобразует содержимое байта, адресу­емого регистром X, в две шест­надцати­ричные цифры и выводит их на терми­нал. По возврату регистр X указывает на следующий байт.

$FFBE

.OUT1BS

Преобразует содержимое байта, адресу­емого регистром X, в две шестнадцати­ричные цифры и выводит их на терми­нал, добавляя после них пробел. По возвра­­ту регистр X указывает на следую­щий байт.

$FFC1

.OUT2BS

Выводит содержимое двух соседних байт, адресуемых регистром X, в четыре шест­надцатиричные цифры и выводит их на терминал, добавляя после них пробел. По возврату регистр X указывает на следую­щий байт.

$FFC4

.OUTCRL

Выводит на терминал символы возврата каретки и перевода строки.

$FFC7

.OUTSTR

Выводит строку символов, адресуемую регистром X, на терминал. Строка должна заканчиваться символом конца передачи ($04).

$FFCA

.OUTST0

То же, что и .OUTSTR, но без пере­хода на новую строку перед выводом символов.

$FFCD

.INCHAR

То же, что и .INPUT, но с ожиданием символа.

$FFD0

.VECINI

Инициализация псевдо-векторов пре­ры­ваний.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]