«Персональный компьютер укнц» №1 1995 год - страница 6

«Персональный компьютер укнц» №1 1995 год


Название«Персональный компьютер укнц» №1 1995 год
страница6/8
ТипДокументы
rykovodstvo.ru > Руководство ремонт > Документы
1   2   3   4   5   6   7   8

Примечания.

Во многих случаях программе пользователя не требуется обработка переключателей посредством CSI. Однако возможен непреднамеренный ввод пользователем. В этом случае рекомендуется сохранить значение указателя стека перед вызовом CSI, а затем восстановить его. Заметим, что ввод командной строки без переключателей перемещает указатель стека на одно слово.
5.3.7. .ABTIO
Запрос .ABTIO позволяет текущему заданию запретить все операции ввода-вывода на указанном канале, не прерывая выполнения программы. Запрещается использовать .ABTIO в подпрограммах завершения.
Формaт макрокоманды:

.ABTIO CHAN

где CHAN — номер канала.
5.3.8. .CSTAT (режим FB, XM)
Запрос .CSTAT передает программе пользователя информацию о состоянии канала.
Формат макрокоманды:

.CSTAT AREA,CHAN,ADDR

где AREA — адрес блока из двух слов аргументов EMT;

CHAN — номер канала, информацию о котором требуется получить;

ADDR — адрес блока из шести слов для информации о состоянии канала.
Формат блока аргументов:

AREA: .BYTE CHAN,27

.WORD ADDR

Пример:

.TITLE CSTAT.MAC

;B ЭТОМ ПРИМЕРЕ ЗАПРОС .CSTAT ИСПОЛЬЗУЕТСЯ ДЛЯ ОПРЕДЕЛЕНИЯ

;УСТРОЙСТВА, СВЯЗАННОГО С УКАЗАННЫМ КАНАЛОМ

.MCALL .CSTAT,.CSIGEN,.PRINT,.EXIT

START: MOV SP,R5

.CSIGEN #DEVSDC,#DEFEXT ;ВВ0Д КОМАНДНОЙ СТРОКИ

MOV R5,SP

.CSTAT #AREA,#0,#ADDR ;ПОЛУЧИТЬ ИНФОРМАЦИЮ 0 КАНАЛЕ

BCS NOCHAN ;КАНАЛ НЕ ОТКРЫТ

MOV #ADDR+10,R5

MOV (R5)+,R0

ADD (PC)+,R0

.RAD50 / 0/

ADD (R5),R0 ;ПОЛУЧИТЬ ИМЯ УСТРОЙСТВА

MOV R0,DEVNAM

.EXIT

NOCHAN: .PRINT #MSG

.EXIT

MSG: .ASCIZ /НЕТ ВЫХОДНОГО ФАЙЛА - КАНАЛ НЕ ОТКРЫТ/

.EVEN

AREA: .BLKW 5

ADDR: .BLKW 6

DEVNAM: .WORD 0 ;ИМЯ УСТРОЙСТВА

DEFEXT: .WORD 0,0,0,0

DEVSDC =. ;АДРЕС ЗАГРУЗКИ ДРАЙВЕРА

.END START
5.3.9. .DATE
Запрос .DATE передает информацию о текущей дате из системной ячейки даты в регистр R0. Ячейка даты имеет следующий формат:

разряды 13—10 — месяц;

разряды 9—5 — день;

разряды 4—0 — год (разность действительного номера года и числа 1972).
Формат макрокоманды:

.DATE

Нулевое значение в R0 указывает на то, что пользователь дату не определял.

Пример:

.TITLE DATE.MAC

;ПРИМЕР ПОДПРОГРАММЫ ОБРАБОТКИ ДАТЫ (ВВЕДЕННОЙ ПО КОМАНДЕ

;DATE) С ИСПОЛЬЗОВАНИЕМ ЗАПРОСА .DATE, К КОТОРОЙ МОЖНО

;ОБРАТИТЬСЯ ИЗ ПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ.

;ВЫХ.ДАННЫЕ: R0 = МЕСЯЦ (1-12)

; R1 = ДЕНЬ (1-31)

; R2 = ГОД (ДВЕ ПОСЛЕДНИЕ ЦИФРЫ)

;ОШИБКИ: R0 = 0, ЕСЛИ ДАТА НЕ ВВЕДЕНА

.MCALL .DATE

DATE: .DATE ;ПОЛУЧИТЬ ДАТУ ИЗ R0

MOV R0,R2

BEQ 1$ ;ВЕТВЛЕНИЕ, ЕСЛИ ДАТА НЕ ВВЕДЕНА

BIC #37,R2 ;ВЫБРАТЬ ГОД

ADD #72,R2

MOV R0,R1

ASL R1 ;ВЫБРАТЬ ДЕНЬ

ASL R1

ASL R1

SWAB R1

BIC #37,R1 ;ВЫБРАТЬ МЕСЯЦ

SWAB R0

ASR R0

ASR R0

BIC #37,R0

1$: RETURN ;ВЫХОД ИЗ ПОДПРОГРАММЫ

END
5.3.10. .DEVICE (режим FB, XM)
Запрос .DEVICE позволяет записать определенные значения по указанным адресам после выхода из программы (по .EXIT или «СУ/C»). Эта функция в основном используется для записи необходимых значений в регистры устройств.

В программе может быть несколько запросов .DEVICE, и пользователь может связать все таблицы адресов в одну таблицу.

Запрос DEVICE игнорируется, если он выдается без виртуального задания в режиме XM.
Формат макрокоманды:

.DEVICE AREA,ADDR[,LINK]

где AREA — адрес блока из двух слов аргументов EMT;

ADDR — адрес таблицы адресов и значений;

LINK — произвольный аргумент, позволяющий связать таблицы адресов и значений последовательных запросов .DEVICE. Если аргумент LINK опущен, то уже существующая таблица заменяется новой при обнаружении очередного запроса .DEVICE.



Рис. 5

Таблица адресов и значений может иметь два формата — связанный и несвязанный. Оба формата должны оканчиваться нулем. Связанный формат должен иметь в первом слове также нуль. На рис. 5 показаны различные форматы таблицы адресов и значен
5.3.11. .DSTATUS
Запрос .DSTATUS используется для получения информации об определенном устройстве.
Формат макрокоманды:

.DSTATUS DSTBLK,DEVNAM

где DSTBLK — адрес блока из четырех слов состояния устройства;

DEVNAM — адрес имени устройства в кодах RADIX-50. Первым словом блока состояния является слово состояния устройства. Возможные значения разрядов слова состояния устройства приведены в табл. 12.

Таблица 12

Разряд

Содержимое

Значение

0—7

0

Кассета магнитных дисков



2

Логическое устройство регистрации ошибок



3

Построчно-печатающее устройство



4

Системный терминал или драйвер BATCH



6

Гибкие диски с двойной плотностью



7

Перфоленточное устройство ввода-вывода



11

Накопитель на магнитной ленте



21

Пакет магнитных дисков DP (29 Мбайт)



22

Гибкие диски



25

Фиктивное устройство



34

Кассетная магнитная лента



41

Устройство печати последовательного типа



42

Драйвер обмена между заданиями



46

Драйвер логического диска



47

Драйвер расширенной памяти



50

Диски винчестерского типа или гибкие мини-диски



51

Редактор командной строки

10

1

Драйвер устройства допускает использование запроса .SPFUN



0

Не допускается использование запроса .SPFUN

11



Резервный

12

1

Устройство несправочной структуры

13

1

Устройство только для записи

14

1

Устройство только для чтения

15

1

Устройство с произвольным доступом к данным



0

Устройство с последовательным доступом к данным

Второе слово представляет собой длину драйвера устройства в байтах.

Третье слово — адрес загрузки драйвера плюс 6. Если оно равно нулю — драйвера в памяти нет.

Четвертое слово содержит емкость устройства (в блоках) для устройств с произвольным доступом к данным или нуль для устройств с последовательным доступом к данным.

Имя устройства в DEVNAM может быть логическим именем, присвоенным пользователем.

Пример использования .DSTATUS см. в описании запроса .CSISPC.
5.3.12. .EXIT
Запрос .EXIT вызывает окончание выполнения программы пользователя и передает управление KMON. Перед выходом из программы выполнение всех инициированных операций ввода-вывода и/или подпрограмм завершения будет закончено. Все невыполненные запросы .MRKT и .CMKT будут аннулированы.

Если часть фоновой программы занимает область памяти KMON и USR, то она будет записана в блоки для временного хранения данных на системное устройство (если ранее была выполнена команда SET EXIT SWAP). После этого KMON и USR загружаются в память и управление передается клавиатурному монитору. Если была выполнена команда SET EXIT NOSWAP, то программа пользователя просто перезаписывается.

Если R0=0 во время выполнения .EXIT, то выполняется операция, аналогичная .HRESET и запрещающая последующее выполнение команд REENTER, START или CLOSE. Запрос .EXIT дает возможность передать для последующего выполнения команды из программы клавиатурному монитору, используя ячейки 500—777. Для этого: ячейка 510 должна содержать общее количество байтов в команде, которая будет передана KMON; команды записываются начиная с ячейки 512, строка записывается в символах КОИ-7 и не должна содержать «ВК» или «ПС». Например:

.=510

.WORD B-A

A: .ASCIZ /COPY A.MAC W.MAC/

.ASCIZ /DELETE A.MAC/

B= .

программа пользователя должна установить пятый или одиннадцатый разряд ССЗ перед выполнением .EXIT; содержимое R0 должно быть нулевым.

Когда запрос .EXIT используется для передачи команд, необходимо учитывать следующее:

если это свойство используется программой, вызываемой с помощью косвенного файла, то все команды, следующие в косвенном файле за инициирующей пуск этой программы, выполняться не будут;

косвенный файл может быть вызван с использованием этого свойства только в том случае, если передаваемая KMON строка содержит единственную спецификацию файла. Попытка передачи нескольких косвенных файлов или комбинаций косвенных файлов с другими командами KMON приводит к неправильным результатам;

.EXIT в подпрограмме завершения недопустим. Заметим, что запрос .EXIT изменяет текущее положение указателя стека.
Формат макрокоманды:

.EXIT
Пример:

.TITLE EXIT.MAC

;В ЭТОМ ПРИМЕРЕ, ПОСЛЕ ЗАВЕРШЕНИЯ ПРОГРАММЫ,

;КЛАВИАТУРНОМУ МОНИТОРУ ПЕРЕДАЕТСЯ КОМАНДНАЯ

;СТРОКА НА ПЕЧАТЬ СПРАВОЧНИКА УСТРОЙСТВА DK:

.MCALL .EXIT

CHNIF$ = 4000

JSW = 44

START: MOV #510,R0

MOV #CMDSTR,R1

MOV #START,SP

1$: MOVB (R1)+,(R0)+

CMP R1,#CMDEND

BLO 1$

BIS #CHNIF$,@#JSW ;УСТАНОВИТЬ 11 РАЗРЯД B JSW

CLR R0 ;B R0 ДОЛЖЕН БЫТЬ 0

.EXIT

CMDSTR: .WORD CMDEND-CMDSTR ;ДЛИНА КОМАНДНОЙ СТРОКИ

.ASCIZ DIRECT/FULL *.MAC ;КОМАНДНАЯ СТРОКА

CMDEND:

.EVEN

.END START
5.3.13. .FETCH, .RELEAS
Запрос .FETCH загружает драйвер устройства из системного устройства в оперативную память.
Формат макрокоманды:

.FETCH ADDR,DEVNAM

где ADDR — адрес загрузки драйвера;

DEVNAM — адрес имени устройства в кодах RADIX-50.

После выполнения .FETCH R0 содержит адрес первой расположенной выше драйвера ячейки оперативной памяти. Если драйвер уже загружен в память, R0 содержит адрес загрузки ADDR.

Для выполнения запросов

.CLOSE .READC .READ .SFDAT

.LOOKUP .WRITE .WRITC .FPROT

.ENTER .READW .SPFUN

.RENAME .WRITW .DELETE

необходимо наличие в памяти драйверов соответствующих устройств.

В режиме FB драйверы для основной программы или системного задания должны загружаться по команде LOAD перед их выполнением.

В режиме XM драйверы устройств должны загружаться в любую область памяти (фоновую или основную) по команде LOAD перед загрузкой программ.

Пример использования .FETCH см. в описании запроса .CSISPC.

Запрос .RELEAS удаляет драйвер указанного устройства из памяти. Этот запрос игнорируется, если драйвер: является частью RMON (т.е. является драйвером системного устройства); отсутствует в памяти; был загружен по команде LOAD. Запрос .RELEAS в основной программе или в системном задании под управлением монитора FB (XM) всегда игнорируется, так как мониторы FB или XM могут использовать только те драйверы, которые были загружены по команде LOAD.
Формат макрокоманды:

.RELEAS DEVNAM

где DEVNAM — адрес имени устройства в кодах RADIX-50.
Пример:

.TITLE RELEAS.MAC

;В ЭТОМ ПРИМЕРЕ ДРАЙВЕР PC: ЗАГРУЖАЕТСЯ В ПАМЯТЬ,

;А ЗАТЕМ ПО ЗАПРОСУ .RELEAS УДАЛЯЕТСЯ ИЗ ПАМЯТИ.

.MCALL .FETCH,.RELEAS,.EXIT,.PRINT

START: .FETCH #DSPACE,#DEVNAM ;ЗАГРУЗИТЬ ДРАЙВЕР

BCS FERR

.RELEAS #DEVNAM ;УДАЛИТЬ ДРАЙВЕР

BR START

FERR: .PRINT #NODEV

.EXIT

DEVNAM: .RAD50 /PC /

NODEV: .ASCIZ УСТРОЙСТВО ОТСУТСТВУЕТ !

.EVEN

DSPACE:

.END START

(Продолжение следует)
В. Лукичев

СПРАВОЧНАЯ ИНФОРМАЦИЯ ДЛЯ НАЧИНАЮЩИХ ПРОГРАММИСТОВ УКНЦ
Общие замечания
Адреса всех векторов прерываний и регистров памяти даны в восьмеричной системе счисления.

Регистры процессора обозначаются R0, R1, R2, R3, R4, R5, R6, R7, но, так как регистры R6 и R7 имеют особое назначение, они могут также обозначаться соответственно SP («STACK POINTER» —«указатель стека») и PC («PROGRAM COUNTER» — «программный счетчик»).

Регистром состояния называется ячейка памяти, содержимое которой отображает состояние соответствующего устройства в данный момент.

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

Регистром данных называется ячейка памяти, через которую происходит обмен данными с соответствующим устройством.

Скэн-кодом клавиши называется код нажатия и/или отпускания этой клавиши. Он не имеет ничего общего с ASCII-кодом байта. Скэн-коды имеют все клавиши, в том числе функциональные, специальные и клавиша «СТОП». Код отжатия клавиши равен коду нажатия + 128. Подробный список скэн-кодов вы можете найти в [1], а скэн-коды основных клавиш — в табл. 1.

Все примеры даны на языке ассемблера, а на ПАСКАЛе можно использовать эти примеры, оформляя их как ассемблерную вставку. Вставка должна быть заключена в скобки (*$C ...*).

УКНЦ имеет два процессора (центральный и периферийный), это позволяет распараллеливать сложные задачи. Графические возможности машины — 640 точек по горизонтали и 288 по вертикали, восемь одновременно отображаемых цветов, возможно масштабирование графической информации в 2, 4 и 8 раз. Доступ к графическому ОЗУ возможен с магистралей обоих процессоров. Один из процессоров УКНЦ предназначен для общения с внешними устройствами (клавиатурой, дисководом, принтером и т.п.), другой общается с пользователем, в его ОЗУ загружается операционная система, драйверы и т. д. УКНЦ — 16-разрядный компьютер, т.е. процессоры оперируют двухбайтовыми словами. Суммарный объем памяти УКНЦ — 192 Кб, его составляют ОЗУ ЦП, системное ОЗУ ЦП, ОЗУ ПП и видеопамять. Объем ПЗУ— 32 Кб, возможно подключение внешних кассет ПЗУ и различных периферийных устройств.

Система команд процессора 1801ВМ2, в основном, аналогична принятой для других процессоров DEC-совместимых компьютеров. (Их мы рассматривать не будем. О системе команд можно прочитать в [3,4].)
Векторы прерываний
Вектором прерывания называется регистр памяти, содержимое которого указывает адрес начала подпрограммы обработки прерываний. При возникновении определенной ситуации (прерывания) процессор передает управление на соответствующую подпрограмму, предварительно сохраняя в стеке слово состояния и адрес возврата. Назначения и адреса векторов прерываний для ПП и ЦП приведены в табл. 2 и 3 соответственно.

Примеры установки и использования своего вектора прерывания

Часто бывает необходимо использовать свои векторы прерываний вместо стандартных, а в случае обработки прерываний от каких-либо нестандартных устройств без этого просто нельзя обойтись. Так, распространенные пакет «Игрушка» и графический редактор «Квант», разработанные НЦПСО, используют для управления манипулятор типа «джойстик». Приведенный ниже фрагмент программы устанавливает вектор прерывания джойстика (в ПП) и на каждое прерывание от джойстика передает в ЦП код, подменяя собой клавиатуру.
Соответствие разрядов положениям джойстика
...

MOV #JPRE-BEGIN+LOADDR,@#350 ; установка вектора 350

MOV #340,@#352 ; слово состояния

...

JPRE: ; вектор прерывания джойстика

MOV R0,-(SP) ; сохранить используемые

MOV R1,-(SP) ; регистры

MOV @#177324,R0 ; взять код из регистра данных

BIT #10,@#177076 ; дождаться готовности канала 0

BEQ .-6

MOVB R0,@#177070 ; передать код по каналу

MOV @#177322,R0

MOV (SP)+,R1 ; восстановить регистры

MOV (SP)+,R0

RTI ; возврат из прерывания
Взаимодействие с терминалом
Для того чтобы вывести с магистрали ЦП на экран одиночный символ, вам необходимо либо использовать прерывание 341 операционной системы (байт в R0):

MOVB #'a,R0 ; поместить в R0 байт соотв. Букве "а"

EMT 341 ; вывести на терминал

BCS .-2 ; если не получилось, то снова на предыдущую

; инструкцию

либо самому передать символ в ПП по каналу связи 0 (регистр состояния 177564, регистр данных 177566):

TSTB @#177564 ; тестировать регистр состояния канала 0

BPL .-4 ; если не готов, то на предыдущую инструкцию

MOVB #14,@#177566 ; поместить байт очистки экрана в регистр

; данных канала 0

Для вывода одиночного символа с магистрали ПП можно использовать прерывание 42 (байт в R0):

MOVB #123,R0 ; помещаем код буквы "S" в R0

EMT 42 ; прерывание по выводу буквы на экран

Для ввода одиночного символа с клавиатуры на магистрали ЦП вы должны или использовать прерывание операционной системы 340 (байт будет помещен в R0):

EMT 340 ; вызвать прерывание

BCS .-2 ; если не нажата никакая клавиша, то снова

; вернуться на предыдущую инструкцию

или запретить прерывания по вектору канала 0 и самому получить байт из канала связи 0 (регистр состояния — 177560, регистр данных — 177562):

BIC #100,@#177560 ; запретить системные прерывания по каналу 0

...

TSTB @#177560 ; тестировать регистр состояния канала связи

BPL .—2 ; если ничего нет, то на предыдущую инструкцию

MOVB @#177562,R0 ; поместить полученный байт в R0

...

BIS #100,@#177560 ; разрешить системные прерывания по каналу 0

Для получения того же самого на магистрали ПП вы должны либо использовать прерывание ПЗУ 22 (полученный код будет помещен в R0):

EMT 22 ; вызвать прерывание

либо, запретив прерывания от клавиатуры, работать напрямую с регистром клавиатуры:

BIC #100,@#177700 ; запретить прерывания от клавиатуры

...

TSTB @#177700 ; тестировать регистр состояния клавиатуры

BPL .-4 ; если нет отжатий/нажатий, то на предыдущую

; инструкцию

MOVB @#177702,R0 ; поместить полученный скэн-код в R0

...

BIS #100,@#177700 ; разрешить прерывания от клавиатуры

Имейте в виду, что в последнем случае вы будете получать скэн-коды нажимаемых/отпускаемых клавиш, а не ASCII-коды, как во всех предыдущих случаях.

Часто бывает необходимо выводить не отдельные символы, а целые строки. Из ЦП это можно сделать, использовав системное прерывание 351 (адрес строки в R0):

MOV #TEXT,R0 ; поместить адрес строки в R0

EMT 351 ; вывести ее на экран

...

TEXT: .ASCIZ "PRINT STRING" ; текст строки

но знайте, что стандартная системная процедура вывода байта на терминал обнуляет восьмой бит и в таком случае символы псевдографики и русские буквы, если не было байта SI (десятичный ASCII-код 14), будут отображаться неверно. С магистрали ПП строку можно вывести, использовав прерывание 44. Адрес выводимой строки должен находиться в слове, непосредственно следующем за инструкцией прерывания, строка должна заканчиваться нулевым байтом:

EMT 44 ; вызов прерывания по выводу строки

.WORD ADR ; адрес строки

При необходимости вывести сообщение в верхнюю или нижнюю служебную строку это можно сделать только с магистрали ПП, использовав прерывание 52 (верхняя служебная строка) или 56 (нижняя). Адрес строки должен следовать непосредственно за инструкцией прерывания. Первый байт строки определяет, с какой позиции начнется вывод остального текста. Строка должна заканчиваться нулевым байтом:

EMT 52 ; вызов прерывания по выводу в служебные строки

.WORD ARG ; адрес строки
Передача данных на принтер
Для того чтобы передать из ЦП байт на принтер, подключенный к параллельному программируемому интерфейсу, необходимо использовать канал связи № 1 (регистр состояния — 176664, регистр данных — 176666), все дальнейшие преобразования с этим байтом будет выполнять подпрограмма, находящаяся в ПЗУ ПП:

TSTB @#176684 ; тестировать регистр состояния канала связи

BPL .-4 ; дождаться готовности канала связи с принтером

MOVB #14,@#176666 ; передать на принтер код FF (подача бумаги)

Передачу байта на принтер непосредственно из ПП мы рассматривать не будем.
Доступ к видеопамяти
Графическое ОЗУ полностью доступно из периферийного процессора и частично из центрального (т.е. вам доступны 8(16) цветов из ПП и 4(8) цветов из ЦП). Данные в графическом ОЗУ представлены совокупностью трех (или двух из ЦП) планов видеопамяти, они доступны через регистры 176642, 176643 в ЦП и регистры 177012, 177014, 177015 в ПП. Для доступа к трем байтам информации из ПП (двум из ЦП) необходимо занести в регистр адреса 177010 (176640 в ЦП) адрес требуемого байта + восьмеричное 100000. Структура видеопамяти строчная по 80, 40, 20 или 10 байт в строке (обычно 80 байт).

Пример иллюстрирует работу с видеопамятью, закрашивая верхнюю строку байтов основного экрана. Сначала пример фрагмента программы в ПП, затем фрагмент программы, работающей в ЦП:

MOV #100000,@#177010 ; адрес левого верхнего угла

MOV #80.,R0 ; 80. Байтов в строке

1$: MOVB #377,@#177012 ; поместить 255. В 0-й план видео-ОЗУ

MOVB #377,@#177014 ; поместить 255. В 1-й план видео-ОЗУ

MOVB #377,@#177015 ; поместить 255. В 2-й план видео-ОЗУ

INC @#177010 ; увеличить регистр адреса

SOB R0,1$ ; уменьшить R0 на 1, если еще не 0, то на метку 1$
MOV #100000,@#176640 ; адрес левого верхнего угла

MOV #80.,R0 ; 80. Байтов в строке

1$: MOVB #377,@#176642 ; поместить 255. В 1-й план видео-ОЗУ

MOVB #377,@#176643 ; поместить 255, В 2-й план видео-ОЗУ

INC @#176640 ; увеличить регистр адреса

SOB R0,1$ ; уменьшить R0 на 1, если еще не 0, то на метку 1$
Прямой доступ в память ЦП из ПП
Если в регистр адреса контроллера видеопамяти (177010 в ПП) будет помещен адрес слова в ЦП, деленный на два, то в регистре данных (177014) будет находиться значение этого слова, доступное по чтению и записи. Пример иллюстрирует механизм прямого доступа в память:

MOV #1000/2,@#177010 ; поместить адрес слова в рег. адреса

ADD #50.,@#177014 ; увеличить содержимое на 50.

Слово, которое расположено в ЦП по адресу 1000 (восьмеричное), будет увеличено на 50.
Звуковое оформление программ
УКНЦ имеет схему генерации звукового сигнала, и вы можете программным путем воспроизводить звуки нужной вам частоты. Для этого необходимо использовать системный регистр управления 177716 (магистраль ПП). В этом регистре биты с 8 по 12 отвечают за прохождение соответствующих звуковых частот, а бит 7 за включение/выключение сигнала. Сбрасывая и устанавливая бит 7, можно программно промодулировать звук необходимой частоты. Тактовая частота программируемого таймера также влияет на частоту извлекаемого звука, при выключенном таймере звука не будет.
Загрузка и запуск программы в периферийном процессоре
Программа может быть загружена в ПП и запущена там. Для этого необходимо передать соответствующий массив параметров по каналу связи 2. Ниже приведен пример программы, часть которой загружается в ПП.

...

MOV #BUFF,R0 ; адрес массива параметров (МП) в R0

MOV #Z,(R0) ; Поместить запрос на загрузку в МП

CALL TO.PP ; передать МП по каналу в ПП

MOV #BUFF,R0 ; адрес массива параметров (МП) в R0

MOV #P,(R0) ; поместить запрос на запуск в МП

CALL TO.PP ; передать МП по каналу в ПП

...

TO.PP: ; подпрограмма передачи МП

MOV #4,R1 ; всего надо передать 4 байта

1$: MOVB (R0)+,@#176676 ; передаем байт

TSTB @#176674 ; ждем готовности канала к следующей

BPL .-4 ; передаче

SOB R1,1$ ; если в R1 не 0, то на метку 1$

RETURN

BUFF: .WORD Z,177777 ; массив параметров

Z: .WORD 10000,32,30000,BEGIN,END-BEGIN/2 ; запрос на загрузку

P: .WORD 14000,32,30000 ; запрос на запуск

BEGIN: ; начало части программы, которая будет

; работать в ПП, она грузится по адресу

; 30000 (восьмеричное), адрес загрузки

; в запросе на загрузку, адрес запуска

; в запросе на запуск

BIS #7200,@#177716 ; издать звук

SOB R0,.

BIC #7200,@#177716

RTS PC ; закончить работу в ЦП

END: ; конец части программы, которая работать в ПП

Завершать программу, которая работает в ПП, надо командой RTS PC. Работа программы в ПП имеет несколько особенностей. Так как программа ассемблировалась в ЦП, она имеет адресную привязку центрального процессора.

Чтобы избежать неправильной работы программы в ПП, вы должны заменять все команды непосредственной адресации на такую последовательность:

MOV PC,

ADD #
1   2   3   4   5   6   7   8

Похожие:

«Персональный компьютер укнц» №1 1995 год iconRu Персональный компьютер, или "Азбука pc" для начинающих http
Олимпиады и контрольно-измерительные материалы по информатике и ит олимпиадная информатика

«Персональный компьютер укнц» №1 1995 год iconИнструкция по самостоятельной установке почтового сертификата на...
Если срок действия Вашего почтового сертификата подходит к концу, необходимо выполнить следующие действия для его перевыпуска

«Персональный компьютер укнц» №1 1995 год iconИнструкция по самостоятельной установке почтового сертификата на...
Когда срок действия Вашего почтового сертификата подходит к концу, необходимо выполнить следующие действия для его перевыпуска

«Персональный компьютер укнц» №1 1995 год iconТребования к продукции
Персональный компьютер Lenovo ThinkCentre Tiny M700 I5 6400T 4Gb 500gb 7200 Intel hd nodvd wi-Fi usb kb&Mouse dos (10HY003tru) или...

«Персональный компьютер укнц» №1 1995 год iconНазначение
Контроллер srtr d предназначен для использования в составе терминала платежных или иных систем имеющих в своем составе персональный...

«Персональный компьютер укнц» №1 1995 год iconРуководство обучающегося в системе дистанционного обучения персональный...
Руководство предназначено для обучающихся в системе дистанционного обучения «Персональный учитель 0», работающих с программой доступа...

«Персональный компьютер укнц» №1 1995 год icon«Радиационный фон и методы его измерения»
Оборудование: компьютер, интерактивная доска, проектор, типовой персональный дозиметр, презентации, раздаточный материал (Основные...

«Персональный компьютер укнц» №1 1995 год iconКнига raznprogram xls
Для работы с ней надо иметь персональный компьютер типа не ниже Pentium II с операционной системой не ниже Windows 98, оснащенный...

«Персональный компьютер укнц» №1 1995 год iconРуководство и персональный состав педагогических работников
Уровень образования (впо, спо, среднее общее образование), наименование оо, квалификация по диплому, год окончания)

«Персональный компьютер укнц» №1 1995 год iconЦели урока
Марс на базе Нато произошла авария, из-за которой был поврежден компьютер-помощник. Путешественник «А» связывается с командным центром...

«Персональный компьютер укнц» №1 1995 год iconМетодическое пособие содержит дидактические и методические материалы...
«Партнерство в образовании» и Windows Server 2003, организации и работы в коллективе службы технической поддержки. Этот курс по настройке...

«Персональный компьютер укнц» №1 1995 год iconИнструкция по охране труда для работников ниу вшэ санкт-Петербург...
Работник ниу вшэ – Санкт – Петербург (далее по тексту Филиал) допускается к самостоятельной работе на персональных электронно вычислительных...

«Персональный компьютер укнц» №1 1995 год iconКомпьютер и дети. Компьютер друг или враг?
Показать возможность использования компьютера в учебной деятельности и в домашних условиях

«Персональный компьютер укнц» №1 1995 год iconПредметный указатель к тому 1, 1995 содержание тома 1, 1995
Разработка прогрессивных технологических процессов и оборудования пере­настраиваемых многоассортиментных производств синтетических...

«Персональный компьютер укнц» №1 1995 год iconКарманный персональный компьютер (кпк)
Программа Outlook 2002 может содержаться на компакт-диске с ActiveSync. Если у вас нет программы Outlook, установите программу Microsoft...

«Персональный компьютер укнц» №1 1995 год iconПапка учителя по самообразованию
Образование (название учебного заведения и год окончания) высшее, Аркалыкский педагогический институт Им. И. Алтынсарина, 1995 г


Руководство, инструкция по применению




При копировании материала укажите ссылку © 2018
контакты
rykovodstvo.ru
Поиск