Р аздел З
(X X + X l) . Значение Y задает размер области по вертикали в бай-
тах.
Подбирая значения X I и Х2, область можно сдвигать или удалять.
Обрабатывается только 0-я страница экранного ОЗУ.
Ф У Н К Ц И Я 16. Выбор команды
VIBORK:
ОА38ВН
Позволяет выбрать команду из списка:
LXI
H.VIBORDAT ; адрес блока данных
CALL
VIBORK
; возвращает номер команды
VIBORDAT:DB X,Y,DLKOM,KKOM ,NKOM ; управляющие коды
DB “ Команда 1 ”
; список команд
DB “ Команда 2”
DB “ Команда К ”
где X ,Y — координаты курсора для вывода команд;
DLKOM — длина наименования команды (одинакова для всех ко-
манд) ;
ККОМ — количество команд в списке;
NKOM — номер активной команды ( О (К -1) ).
По назначению данная функция аналогична Ф .# MENY, но на эк-
ране отображается только одна активная команда. Функция позво-
ляет организовать, например, таблицу параметров, в которой можно
произвести выборочную замену; командную строку и т.д. Атрибуты
цвета не обрабатываются.
Команда выбирается клавишами DB “ t ” и “ | ” , фиксируется
“ ВК” .
Ф У Н К Ц И Я 17. Выбор файла
INNMFL:
0А2СВН
Поиск и выбор файла на диске:
LXI
H.ADRBUF
; установить адрес буфера
;ОЗУ дляраз-
SHLD 0А022Н
; мещения каталога диска
LXI
H,YX
; координаты курсора для
; вывода запроса
CALL
INNMFL
При обращении к функции на экран выводится запрос:
“ DISK:
в котором нужно ввести имя диска — “А ” , “ В” , “ С” или “ D ” . Да-
лее выводится сообщение и имя 1 -го файла на диске, например:
DISK:
A
FILE: NC$
Клавишами “ t ” и “ i ” выбирается необходимый вам файл и фик-
сируется его “ ВК” . Если файлы на диске отсутствуют, выдается со-
общение “ NO F ILE ” . Клавишей “ F l ” можно изменить имя диска;
“ СТР” — выход, причем если курсор находился в поле имени диска,
ввод отменяется. Ф ункция возвращает в регистр А номер диска (41Н
44Н ), или О если была отмена ввода. В H L возвращается адрес буфе-
ра, где находится имя файла и все его атрибуты [1 ].
Ф У Н К Ц И Я 18. Ввод десятичного числа
INPDAT:
0A40DH
Вводит байт, отображая его как десятичное число от О до 255:
LXI
H,YX
; координаты экрана для
отображения числа
LDA
DATA ;
в А исходное число
CALL
INPDAT
; в А возвращается введенное
;число
Особенность этой функции заключается в следующем: ввод числа
осуществляется клавишами
(+1),
(-1 ), “ t ” (+10), “ | ” (-
10), возврат — “ ВК” .
Ф У Н К Ц И Я 19. Ввод адреса
INPADR:
0А480Н
Вводит 4-х разрядный 16-й адрес:
LHLD ADRES
; исходное значение, можно
;не указывать
LXI
D,YX
; координаты вывода на экран
;адреса
CALL
INPADR
При обращении к функции на экран выводится содержимое H L в
NEX-виде. Адрес вводится нажатием клавиш “ О 9 A F” , фиксация —
“ ВК” независимо от положения курсора, возможно редактирование
(“ t ” “ i ”
“ - ” )■
Ф У Н К Ц И Я 20. Формирование задержки
PAUSA:
ОА778Н
Организует программную задержку:
LXI
H.PAUSADAT; число циклов (1-FFFFH)
CALL
PAUSA
; один цикл равен 9,6 мкс,
....
; при тактовой частоте ПК
;2,5 МГц
Д И А Л О Г П Р О Г Р А М М И С Т О В
Ф У Н К Ц И Я 21. Исполнение йоты
MUSKOD:
ОА78ВН
Исполняет одну ноту:
LX I
H.NOTAKOD; адрес ноты
CALL
MUSKOD
Музыкальный диапазон — от МИ малой октавы до СИ 3-й октавы,
длительность — от 1
/8 до целой. Нота кодируется одним байтом сле-
дующим образом:
старшие два
бита
кодируют
октаву
00 (ООН) — малая
младшие 4
бита
01 (40Н) — первая
кодируют
ноту
10 (80Н) — вторая
11 (СОН) — третья
следующие
00 (ООН) — целая
два кодируют
длительность
01 (Ю Н) — одна
вторая
10 (20Н) — одна
четвертая
11 (ЗОН) — одна
восьмая
ДО 01Н
Д О # 02Н
РЕОЗН
PE# 04Н
М И 05Н
Ф А 06Н
Ф А # 07Н
СОЛЬ 08Н
СОЛЬ# 09Н
ЛЯОАН
Л Я #0В Н
СИ ОСН
ПАУЗА ООН
Код ноты образуется суммированием кодов октавы, длительности
и ноты, например, Д О # первой октавы длительностью 1/4 — 62Н.
При такой кодировке объем ОЗУ, занимаемый кодами, минимален.
Звучание целой ноты составляет примерно 1
с.
При другой тактовой частоте необходимо скорректировать таблицу
кодов нот, расположенную по адресам: А02Н(МИ/м) А051Н (С И /3).
Коды нужно пропорционально увеличить если частота выше, и наобо-
рот. По адресам А052Н (ДО) A05DH (СИ) расположены коды дли-
тельности нот, код длительности паузы расположен по адресу 0А76ЕН
(два байта), их также нужно соответственно изменить.
Ф У Н К Ц И Я 22. Исполнение мелодии (ноты в кодах)
MUSIKN: 0A77FH.
LX I
Н ,N OTADAT; адрес блока нот
CALL
MUSIKN,
NOTADAT:DB
К 0 0 1 ,К 0 0 2 .
....,КОЦ^О
где КОЦ1 .
..KO DN — коды нот, кодируются так же как описано
выше.
Ф У Н К Ц И Я 23. Исполнение мелодии (ноты в символах).
MUSIKS:
0А706Н
LXI
H.NOTADAT; адрес блока нот
CALL
MUSIKS,
NOTADAT:DB“NOTAl NOTA2.
....NOTAN”,4
вде NOTAI .
..NOTAN — описание ноты, состоящее из 3-4 символов:
1 -й символ — номер октавы: О — малая, 1 — первая, .
... 3 —
третья;
2- й символ — длительность: 1 — целая, 2 — 1/2, 4 — 1/4,8 — 1/8;
3-
й символ — нота: C,D,E,F,G,A,B — соответственно ДО, РЕ,
МИ,.
.. ЛЯ, СИ;
4-
Й СИМВОЛ — “+” (диез) ИЛИ “-’’(бемоль). Между нотами (но
не символами) можно вставлять пробелы. Если ноты или паузы име-
ют другую длительность, например, 3/4, ее нужно разделить на ти-
повые и ноту описать дважды, как 1 /2 и 1 /4.
Такая кодировка позволяет быстро набрать мелодию, однако зани-
мает в 4 раза больше памяти. Если есть необходимость хранить боль-
шие мелодии, их можно набрать в символьном виде и при помощи
этой функции получить коды. Для этого необходимо по адресу
А780Н (MUSIKN+1) занести адрес подпрограммы, написанной ва-
ми, которая будет формировать массив кодов нот.
По вопросам обслуживания и программного обеспечения “Ори-
она-12 8”можно обращаться к автору по указанному адресу, прило-
жив к письму оплаченный конверт.
Литература
1. В.Сугоняко, В.Сафронов. ОС ОКДОЗ версия 2.4. — Радио.—
1991.— N 7 .— с.49.
2. В.Сугоняко, В.Сафронов. ПО ПРК “ Орион-128” . — Радио.—
1990,— N 2,— с.46.
11
Радиолюбитель 12/94
предыдущая страница 12 Радиолюбитель 1994-12 читать онлайн следующая страница 14 Радиолюбитель 1994-12 читать онлайн Домой Выключить/включить текст