
- •Часть 1
- •Содержание
- •Современный мир микроконтроллеров.
- •8‑Разрядные микроконтроллеры
- •16‑Разрядные микроконтроллеры
- •32‑Разрядные микроконтроллеры
- •Библиографический список
- •Микроконтроллер mc68hc11e9
- •Процессорный модуль
- •Встроенная память
- •Периферийные устройства
- •Система разработки
- •Монитор buffalo
- •С чего начать ?
- •Приложение 7 Программа Hello
- •Приложение 8 Команды монитора buffalo
- •Приложение 9 Подпрограммы монитора buffalo
- •Приложение 10
- •Приложение 11 Кросс-ассемблер
- •Приложение 12
- •Рекомендуемая литература
- •Часть 1
- •Новосибирск
Приложение 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 |
Инициализация псевдо-векторов прерываний. |