Difference between revisions of "Uknc Resources chapter2"

From Felixl.com
Jump to navigationJump to search
 
 
Line 1: Line 1:
: ''Это глава из книги [[Uknc Resources|«Ресурсы УКНЦ»]].''
+
{{Uknc Resources header}}
 +
 
 
'''''Глава 2. Общие принципы экранного вывода в УКНЦ'''''
 
'''''Глава 2. Общие принципы экранного вывода в УКНЦ'''''
 
----
 
----
 +
  
 
=== §4. Программные прерывания EMT И TRAP ===
 
=== §4. Программные прерывания EMT И TRAP ===
Line 9: Line 11:
 
Среди множества команд микропроцессора 1801 есть несколько команд, действие которых состоит в следующем: вызывается прерывание по фиксированному адресу (адрес вектора прерываний — а.в.п.). Вот эти команды:
 
Среди множества команд микропроцессора 1801 есть несколько команд, действие которых состоит в следующем: вызывается прерывание по фиксированному адресу (адрес вектора прерываний — а.в.п.). Вот эти команды:
  
'''''Таблица 4.0. Команды-прерывания'''''
+
'''Таблица 4.0. Команды-прерывания'''
 +
{| border="1" cellpadding="2" cellspacing="0" align="center"
 +
! Команда !! Код !! А.В.П.
 +
|-
 +
|align="center"| '''BPT''' || 000003 || 14
 +
|-
 +
|align="center"| '''IOT''' || 000004 || 20
 +
|-
 +
|align="center"| '''EMT''' || 104xYZ || 30
 +
|-
 +
|align="center"| '''TRAP''' || 104XYZ || 34
 +
|}
 +
 
 +
<blockquote>
 +
===== Пример 11. Упражнение с командами-прерываниями IOT и EMT. =====
 +
Команда IOT (Input-Output Trap) вызывает прерывание с адресом 20. В Системе этот а.в.п. никак не используется. Восполним же этот пробел. Работаем в ОЗУ ПП:
 +
<pre>
 +
20: 000240
 +
 +
240: 104044 EMT 44
 +
163573 "* ЗАГРУЗКА ИЗ СЕТИ *"
 +
000002 RTI</pre>
 +
Теперь в любую свободную ячейку запишите число 4 (код IOT) и запустите с этого адреса. Ну, а если Вам наскучит играться с этой надписью, в приложении найдите другую, и адрес ее запишите после кода EMT 44. А еще лучше — читайте дальше.
 +
</blockquote>
 +
 
 +
Первые две команды (BPT и IOT) нам неинтересны, хотя при желании и их можно пустить в дело. Две остальные — EMT и TRAP — представляют некоторый интерес.
 +
 
 +
Старший байт этих команд содержит код команды (по нему процессор опознает их), а младший может быть любым. Такая организация команд позволяет нести в себе полезную информацию. Чтобы реализовать эту информацию, надо к каждому прерыванию подвесить свои программы обработки прерываний, которые называются диспетчерами.
 +
 
 +
Это название связано с тем, что в зависимости от кода в младшем байте, эти программы передают управление разным подпрограммам, выполняющим каждая свое действие. Это позволяет использовать команды EMT и TRAP как однословные команды вызова подпрограмм.
 +
 
 +
Рассмотрим реализацию обоих диспетчеров в Системе.
 +
 
 +
==== 4.1 EMT-диспетчер ====
 +
 
 +
 
 
'''''TODO'''''
 
'''''TODO'''''

Latest revision as of 06:41, 1 April 2007

Это — часть книги Ресурсы УКНЦ.

 

Глава 2. Общие принципы экранного вывода в УКНЦ



§4. Программные прерывания EMT И TRAP

4.0 Команды-прерывания

Среди множества команд микропроцессора 1801 есть несколько команд, действие которых состоит в следующем: вызывается прерывание по фиксированному адресу (адрес вектора прерываний — а.в.п.). Вот эти команды:

Таблица 4.0. Команды-прерывания

Команда Код А.В.П.
BPT 000003 14
IOT 000004 20
EMT 104xYZ 30
TRAP 104XYZ 34
Пример 11. Упражнение с командами-прерываниями IOT и EMT.

Команда IOT (Input-Output Trap) вызывает прерывание с адресом 20. В Системе этот а.в.п. никак не используется. Восполним же этот пробел. Работаем в ОЗУ ПП:

	20:	000240
	
	240:	104044	EMT 44
		163573	"* ЗАГРУЗКА ИЗ СЕТИ *"
		000002	RTI

Теперь в любую свободную ячейку запишите число 4 (код IOT) и запустите с этого адреса. Ну, а если Вам наскучит играться с этой надписью, в приложении найдите другую, и адрес ее запишите после кода EMT 44. А еще лучше — читайте дальше.

Первые две команды (BPT и IOT) нам неинтересны, хотя при желании и их можно пустить в дело. Две остальные — EMT и TRAP — представляют некоторый интерес.

Старший байт этих команд содержит код команды (по нему процессор опознает их), а младший может быть любым. Такая организация команд позволяет нести в себе полезную информацию. Чтобы реализовать эту информацию, надо к каждому прерыванию подвесить свои программы обработки прерываний, которые называются диспетчерами.

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

Рассмотрим реализацию обоих диспетчеров в Системе.

4.1 EMT-диспетчер

TODO