Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Кушнерев Н.Т. Программирование для ЭВМ Минск-32

.pdf
Скачиваний:
37
Добавлен:
24.10.2023
Размер:
11.94 Mб
Скачать

Для оператора вывода интервала на УПч (код Ы, ЫЖ, признак И, N) используется только первая строка. Оператор ЫИУ, ЫИУ с признаком И, N записывается в две строки, причем второй строкой служит строка ПСК,

 

6 7

10111213

1718

2122

24 25

29 3D

 

39

•Кодоперации. -4*Номер*

О'U Опре'-4» Ре-

^

НулеА* Цифровое^

Номері

»

(-67)

индекса

делитель жимы Sbte разобозначение

типе

 

 

 

 

радо-

ряды типа уст-

устройства

 

 

 

ты

 

ройства

.

 

 

 

 

—Признан

sanucu управляющего слова

 

Рис. 42. Структура

первой

строки

операторов

ввода-вывода

 

 

 

 

после

трансляции.

 

 

 

При трансляции программы первая строка операторов вводавывода преобразуется в экстракод с кодом операции 67 (рис. 42). В одиннадцатом разряде транслятор проставляет единицу, если во второй строке оператора был записан оператор БЕЗУС и нуль во всех других случаях. Определитель формируется в зависимости от мнемонического кода (ввод или вывод) и значения признака опера­ ции. Для операторов ВЖ и Ы Ж проставляется единица в восем­ надцатом разряде, а для операторов ВИУ и ЫИУ — в восемнад­ цатом и девятнадцатом.

10 11 12 № 17 18 гггзгюгв

'НулеЗые разряды-* —- указатели —-0 •^-Состояние 7-*0- д}\~-Адрес перехода(аг) ^

т

-Признак единичного состояния хотя бы одного из указателей

Рис. 43. Структура третьей строки операторов ввода-вывода после трансляции.

На месте второй строки к моменту выполнения программы бу­ дет написано управляющее слово. Если в программе был записан оператор БЕЗУС, то отдельная ячейка для него транслятором не отводится.

Третья строка операторов ВИУ и ЫИУ после трансляции имеег структуру, приведенную на рис. 43. В разрядах 12-М6 указыва­ ются единицы в соответствии с таблицей 9, причем состояние этих указателей зафиксировано в разрядах 18+-22 соответственно.

Одиннадцатый разряд содержит нуль только в том случае, если все заданные указатели имеют нулевое состояние. В других случаях этот разряд содержит единицу. В разрядах 26-+-36 формируется адрес перехода 2) с базисом б2 (разряды 24 и 25).

140

 

 

 

 

 

 

 

 

Т а б л и ц а 9

 

 

 

Условное обозначение указателей

ВнУ и УО

 

 

 

 

 

 

 

 

 

Условное

Номер раз­

М п/п

 

 

Название указателя

 

 

обозначение

 

 

 

 

ряда ячейки

 

 

 

 

 

 

 

указателя

 

 

 

Готово

 

 

 

 

Г

 

12

 

2

Защита

записи

,

 

 

зщз

 

ІЗ

 

3

Сбой

.

. . .

 

 

СБ

 

14

 

4

Ввод

с ГШ

 

 

.

 

15

 

 

 

В

 

 

5

Не вся зона считана

 

 

 

15

 

 

 

НЕВСЯ

 

6

Карман

. .'

 

 

 

ПУСТ0

16

 

7

Конец

МЛ

 

 

 

К 0 Н Е Ц

16

 

8

Начало

ввода

 

 

.

НВ

 

16

 

9

Занято . . . .

 

 

3

 

17

 

10

Занят

быстрый

канал

 

 

ЗБК

 

18

 

11

Сбой

по

защите

управляющего

слова

.

ЗУС

 

19

 

12

Сбой

по

нечету

управляющего

слова

.

НУС

 

20

 

13

Сбой

по

нечету

информационного слова

НИС

 

21

 

Опишем выполнение операторов ввода-вывода

в различных

ре­

жимах.

 

 

 

 

 

 

 

 

 

При выполнении оператора диспетчер формирует команду

для

ввода-вывода, опрашивает состояние

указателей

Г и 3

(для

уст­

ройств быстрого канала также состояние указателя ЗБК)

и произ­

водит обращение к устройству только

при

единичном

состоянии

указателя

Г и нулевом состоянии

указателей 3 (и

ЗБК

для

уст­

ройств быстрого канала).

 

 

 

 

 

 

Если указатель

Г находится в нулевом состоянии, диспетчер

пе­

чатает на

пультовой ПМ требование о подготовке этого устройства

к работе.

Если указатель 3

(или ЗБК) находится в единичном со­

стоянии,

диспетчер временно

прекращает выполнение этого опера­

тора.

Для операторов ВЖ, ЫЖ, ВИУ, ЫИУ после обращения к уст­ ройству диспетчер блокирует выполнение программы до окончания ввода-вывода. Если ввод-вывод был закончен без сбоя, то в случае операторов ВЖ и Ы Ж управление передается к следующему опе­

ратору. Если ввод-вывод был прекращен

из-за сбоя ВнУ или УО,

то диспетчер предпринимает стандартные

действия. Эти действия

описаны подробно в главе 7. В случае же операторов ВИУ и ЫИУ состояние указателей устройства после окончания ввода-вывода диспетчер сравнивает с заданным в операторе. При совпадении со­ стояний хотя бы для одного из заданных указателей управление передается по адресу, заданному в операторе. При несовпадении состояний всех перечисленных в операторе указателей, выполнение программы продолжается со следующего оператора.

Для операторов В и Ы после обращения к устройству диспетчер передает управление следующему оператору. По окончании ввода-* вывода выполнение программы прерывается, и диспетчер про'изво-

141

дит стандартные действия, в частности, если не было сбоев, продол­ жает выполнение программы.

Приведем примеры записи операторов ввода-вывода.

 

Пример

1. Напечатать на УПч строку, в которой первые 20 по­

зиций содержат текст, расположенный, начиная с ячейки

ТАБЛ, а

остальные позиции — пустые. После отпечатанной строки

протянуть

бумагу на 3 строки. Оператор имеет вид:

 

 

 

Ы Ж

СТ,3;ПЧ

 

 

 

К 0 С Л 5

0;ТАБЛ;4

 

 

Оператор Ы вместо оператора Ы Ж использовать

нельзя, так

как печать на УПч без ожидания нецелесообразна

из-за

возмож­

ного наложения строки, печатаемой по следующему

оператору.

Пример

2. Ввести карту по 5 символов в ячейку, начиная с ячей­

ки ПОЛЕ. В программе используется одно устройство ввода с карт. Тогда оператор имеет вид:

В

Э;ВК

К 0 С Л 5

О;П0ЛЕ; 16

Пример 3. Протянуть на 5 строк бумагу на УПч с условным обо­ значением ПЧ. Оператор имеет вид:

ЫИ,5;ПЧ

Пример 4. Вывести участок МОЗУ длиной 80 ячеек, начиная с ячейки МКАРТ в коде ГОСТ 10859—64 на перфокарты, если из­ вестно, что требуемое устройство указано в индексной ячейке ИНД . Тогда оператор имеет вид:

Ы:ИНД;М

К 0 С Л 5 0;МКАРТ;80

Пример 5. Ввести с перфоленты массив символов (не более 80), оканчивающийся символом «возврат каретки» (код 174), включая

его. Массив ввести в память,

начиная

с ячейки

П 0 Л Е .

Оператор

имеет вид: *

 

 

 

 

В Ж

МС; ВЛ, 1

 

 

К 0 С В

0;

П 0 Л Е ; 16;

(174)

 

Пример 6. В двух тысячах

ячеек

МОЗУ,

начиная

с ячейки

БУФЕР, расположена символьная информация, состоящая из от­ дельных фраз. Фразы разделены символом « о » (код 127). Запи­ сать каждую фразу на магнитную ленту отдельной зоной. Опера­ тор для вывода первой фразы будет иметь вид:

Ы Ж

3; МЛ

К 0 С В

0; БУФЕР; 2000; (127)

Оператор для вывода следующих фраз будет таким:

Ы Ж

3; М Л

БЕЗУС

 

142

Пример 7. Записать на МЛ, 3 участок МОЗУ длиной 119 ячеек, начиная с нулевого символа ячейки МАС по 6 символов из ячейки. Оператор имеет вид:

Ы3; МЛ, 3

К 0 С Л 6

0; MAC; 119

Пример 8. Прочитать зону с единственной используемой в про­ грамме магнитной ленты. Длина зоны не превосходит 1935 симво­ лов. Информацию записывать в МОЗУ с ячейки КАРМ по 5 симво­ лов. Оператор имеет вид:

В3; М Л

К 0 С Л 5

0; КАРМ; 387

Пример 9. Прочитать первые 15 символов зоны с магнитной лен­ ты примера 8:

В

3;

М Л

К 0 С Л 5

0;

КАРМ; 3

Пример 10. Прочитать зону с магнитной ленты, установленной на - НМЛ с условным обозначением МЛ, 3. При единичном состоянии

хотя бы одного из указателей СБ или К 0 Н Е Ц

перейти к участку

программы с первой этикеткой БЛ0К -

Содержимое зоны длиной

600 символов записать

в МОЗУ, начиная

с ячейки ОБМЕН

по 6

символов в ячейку. Оператор имеет вид:

 

 

 

ВИУ

 

3; МЛ, 3

 

 

 

 

К 0 С Л 6

0; 0 Б М Е Н ;

144В

 

 

 

ПСК

 

СБ1 + К 0 Н Е Ц 1 ;

Б Л 0 К

 

 

5.4. ОПЕРАТОРЫ УПРАВЛЕНИЯ МАГНИТНОЙ ЛЕНТОЙ

 

 

Операторы управления

магнитной

лентой предназначены

для

организации поиска информации на ленте,

установки и. проверки

наименования лент. К

ним

относятся

операторы: пропустить

зону

М Л ( П Р ) , вернуться на

зону МЛ (BP),

подвести

начало МЛ (ПН),

снять МЛ(СН), проверить

наименование катушки

(ПНК). Они мо­

гут выполняться в режимах с ожиданием, без ожидания, с перехо­ дом по состоянию заданных указателей, а также и в других допол­ нительных режимах (см. п. 5. 9).

ПОДВЕСТИ НАЧАЛО МАГНИТНОЙ ЛЕНТЫ (ПН)

Независимо от исходного положения ленты она устанавливает­ ся так, что магнитные головки располагаются вслед за маркером начала ленты. Магнитная лента тем самым подготавливается для чтения или записи первой зоны. Оператор соответствует команде перемотки ленты.

Оператор имеет вид:

П Н Ж

[:И;]

МЛ

[,К]

при подводе с ожиданием

ПН

[:И;]

МЛ

[Д]

при подводе без ожидания

ПНИУ

[:И;]

М Л

[,К]

|при подводе с последующим

ПСК

< у к а з а т е л и > ;

В2 [переходом

по состоянию

 

 

 

 

J заданных

указателей

143

С Н Я ТЬ МАГНИТНУЮ ЛЕНТУ (СК)

Независимо от исходного положения ленты она полностью пе­ рематывается с приемной бобины на подающую и переходит в со­ стояние неготовности. Оператор используется в конце работы с дан­ ной конкретной катушкой магнитной ленты перед ее снятием. Он со­ ответствует команде разгрузки ленты. Оператор имеет вид:

С Н Ж

[:И;]

МЛ

[,К]

при

снятии с ожиданием

СН

[:И;1

МЛ

[,К]

при

снятии без ожидания

Третий режим использования (СНИУ) возможен, но мало упо­ требителен.

ПРОВЕРИТ Ь НАИМЕНОВАНИЕ КАТУШКИ МАГНИТНОЙ ЛЕНТЫ (ПНК)

Система программирования машины предполагает, что для от­ личия одной магнитной ленты от другой каждой ленте присваива­ ется наименование, которое записывается в ее первой зоне. Опера­ тор состоит из двух строк:

ПНК

Я:И;]МЛ[,К]\

КА

1:И[;МЛ[,КП/

C I ; С2

В ячейке С2 задается наименование магнитной ленты. По адресу С1 передается управление при несовпадении наименования из ячей­ ки С2 с наименованием, прочитанным из первой зоны МЛ.

При выполнении оператора магнитная лента, обозначенная в программе как МЛ,К, перематывается к первой зоне, производит­ ся чтение зоны, после чего сравнивается содержимое ячейки С2 с наименованием МЛ, расположенным в прочитанной зоне. При сов­ падении сравниваемых слов выполняется следующий оператор. При их несовпадении и C l ^ O управление передается к оператору С1, с которого продолжается выполнение программы, а на сумматоре находится наименование МЛ из ее первой зоны. После этого про­ граммист может игнорировать результат несовпадения или же пре­

дусмотреть установку другой МЛ. При несовпадении

наименований

и С1 = 0 на пультовой ПМ печатается указание о

необходимости

установки МЛ с именем из ячейки С2. После установки требуемой ленты оператор ПНК будет выполнен заново. После выполнения оператора магнитная лента готова к чтению второй зоны.

ПРОПУСТИТЬ ЗОНУ (ПР)

Магнитная лента продвигается на одну зону вперед. Оператор соответствует команде пропуска зоны на магнитной ленте. Опера­ тор имеет вид:

П Р Ж

[:И;]

3;

МЛ

[,К]

ПР

[:И;]

3;

МЛ

[,К]

ПРИУ

[:И;]

3;

МЛ

[,К]

ПСК

< у к а з а т е л и > ; В 2

при пропуске с ожиданием при пропуске без ожидания при пропуске с последующим

переходом по состоянию заданных указателей

(44

ВЕРНУТЬСЯ НА ЗОНУ (BP)

Магнитная лента продвигается на одну зону назад. Оператор соответствует команде возврата на зону. Оператор имеет вид:

В Р Ж

[:И;]

3;

МЛ

[,К]

при возврате на зону с ожиданием

BP

[:И;]

3;

МЛ

[Д]

при возврате на зону без ожидания

ВРИУ

[:И;]

3;

МЛ

[Д]

1при

возврате

на зону с последую-

ПСК

< у к а з а т е л и > ; В2

/щим

переходом

по состоянию задан­

 

 

 

 

 

ных

указателей

 

Приведем примеры использования операторов управления маг­ нитной лентой.

Пример 1. Проверить наименование магнитной ленты ВЫХОД, установленной на МЛ,2.

 

П Н Ж

МЛ, 2

 

ПНК

МЛ, 2

 

КА

0; ИМЯМЛ

ИМЯМЛ

КТ

В Ы Х 0 Д

Оператор П Н Ж подводит

ленту

в начальное положение, после

чего проверка наименования

производится оператором ПНК. По­

скольку КА содержит 0 вместо адреса перехода, в случае несов­ падения наименований будет напечатано на пультовой ПМ указа­ ние об установке МЛ ВЫХОД. Наличие оператора П Н Ж обеспе­ чивает выполнение других программ во время перемотки ленты.

Пример 2. Пропустить зону на

МЛ, в случае конца ленты пере­

дать управление по адресу

К 0 Н М Л . Оператор имеет вид:

ПРИУ

3;

МЛ

ПСК

К 0 Н Е Ц 1 ; К 0 Н М Л

5 5. ОРГАНИЗАЦИЯ ИСПОЛЬЗОВАНИЯ

УСТРОЙСТВ ВВОДА-ВЫВОДА

Одновременное выполнение нескольких программ на машине предъявляет определенные требования к организации использова­ ния устройств ввода-вывода в программах. Поскольку распределе­ ние внешних устройств между программами производит диспетчер, в программе не могут быть использованы машинные номера внеш­ них устройств. Как уже говорилось, вместо машинных номеров ис­ пользуются условные наименования устройств. Для выделения тре­ буемого устройства программе и установления соответствия между его машинным номером и условным наименованием служат опера­ торы закрепления устройств. По каждому оператору закрепления одно из устройств ввода-вывода предоставляется в распоряжение программы. После этого устройство остается закрепленным за про­ граммой либо до конца выполнения программы, либо до оператора его освобождения. Работа устройств ввода-вывода осуществляется по операторам обращения к ним под управлением диспетчера.

Как было описано выше, операторы ввода-вывода могут выпол­ няться как с ожиданием окончания заданного действия, так и без

«0. Заказ 5093.

145

него. Если в программе был использован режим о*ез ожидания, а с какого-то момента дальнейшее выполнение программы невозмож­

но, то применяется

оператор

ожидания окончания

заданного дей­

ствия,

 

/ f

 

После окончания

устройством заданной работы или в случае

сбойной ситуации управление

снова передается

диспетчеру. При

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

При трансляции указанные выше операторы, преобразуются в экстракоды с одним и тем же кодом операции — 60 и различными определителями в разрядах 114-16. При необходимости транслятор проставляет в разрядах 254-36 цифровое обозначение типа устрой­ ства и номер его среди устройств данного типа, если Т и К заданы не в индексной ячейке.

Состояние указателей устройств ввода-вывода всегда опраши­ вается диспетчером при каждом обращении к устройству. Однако, если программисту почему-либо требуется определить состояние указателя, он может использовать оператор опроса состояния ука­ зателей устройства с последующим переходом.

Ниже приведено описание указанных операторов. При этом для каждого из операторов указано значение определителя в экстра­ коде — 60.

З А К Р Е П И ТЬ ВНЕШНЕЕ УСТРОЙСТВО (ЗАКР)

определитель 000100

При выполнении оператора диспетчер закрепляет за программой первое из устройств типа Т, не закрепленных еще ни за какой ич программ, и устанавливает соответствие между условным обозна­ чением устройства Т, К и машинным номером, обозначаемым в дальнейшем через ZZZ. При отсутствии свободного устройства ти­ па Т диспетчер блокирует выполнение программы до освобождения одного из таких устройств. Исключением являются УПч и УВК, когда диспетчер при их отсутствии печатает на пультовой ПМ ука­ зание, в котором предлагает накапливать на ленте вывода резуль­ таты, выводимые на отсутствующее устройство. При согласии опе­ ратора выполнение программы продолжается, а результаты, выво­ димые на соответствующее устройство, будут записываться на лен­ ту вывода до окончания программы. По окончании программы онп могут быть выведены на требуемое устройство по специальной

программе. При нежелании накапливать результаты на ленте вы­ вода выполнение программы блокируется до освобождения устрой­ ства требуемого типа.

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

З А К Р Е П И ТЬ ВНЕШНЕЕ УСТРОЙСТВО

 

 

С ЗАДАННЫМ МАШИННЫМ

НОМЕРОМ

(ЗАКР)

 

 

 

 

 

 

ЗАКР

Д: И;]Т[,К]1. 7 7

7

R

I

определитель

 

d A 1 4 K

1:И[;Т[,К]]/' L L

L

*

|

011010

Оператор используется при необходимости работы с уст­

ройством

с конкретным машинным

номером ZZZ. Этот номер

записывается в виде трехзначного восьмеричного числа. Ус­ ловное обозначение устройства Т Д записывается в данном опера­ торе с той целью, чтобы в остальных операторах можно было поль­ зоваться только условным обозначением ТД .

При выполнении оператора диспетчер закрепляет за программой

устройство с заданным машинным

номером ZZZ, ставит ему в со­

ответствие условное обозначение

Т Д и продолжает выполнение

программы. Если же устройство ZZZ уже было закреплено за дру­ гой программой, то выполнение программы блокируется до его ос­ вобождения.

ОСВОБОДИТЬ ВНЕШНЕЕ УСТРОЙСТВО (0СВ)

'

тгп.

/[: И ;]Т[,К]1

I

определитель

 

и и в

\:И[;Т[,КШ

I

000010

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

Оператор используется для указания внешнего устройства, ко­ торое окончательно освободилось от работы и больше не будет ис­ пользоваться в программе. При отсутствии оператора 0 С В в про­ грамме устройство будет закреплено за программой до окончания ее выполнения и тем самым будет снижена эффективность его ис­ пользования.

ЖДАТЬ ОКОНЧАНИЯ РАБОТЫ ВНЕШНЕГО УСТРОЙСТВА (Ж)

w

Ж

Д:И;]Т[,К]1

I

определитель

t :И[;Т[,КШ

I

000001

Диспетчер блокирует выполнение программы до окончания ра­ боты устройства Т Д . Если к моменту выполнения оператора уст­ ройство уже закончило работу, то блокировка не происходит.

10*

147

Оператор записывается в том месте программы, начиная с ко­ торого невозможно ее выполнение до окончания работы устройства. Например, при вводе информации по оператору В оператор должен записываться перед участком программы, где производится обра­ ботка вводимой информации.

ЧИТАТЬ УПРАВЛЯЮЩЕЕ СЛОВО (ЧУС)

u v r

Д:И;]Т[,К]\

I

определитель

 

\:И[;Т[,К]]|

I

001100

Диспетчер пересылает на сумматор управляющее слово, нахо­ дящееся в ячейке УОП, соответствующей устройству ZZZ, закреп­ ленному за программой как устройство Т,К. Управляющее слово, как известно, характеризует состояние обмена с внешним устрой­ ством. Поэтому этот оператор используется в случаях, когда необходимо определить тот момент, когда устройство прекратило работу. Так как управляющее слово после выполнения оператора находится на сумматоре, то следующий оператор должен преду­ сматривать его использование. Оператор нельзя использовать для УПч и УВК, так как вместо вывода на эти устройства возможно использование ленты вывода.

С помощью этого оператора можно, например, определить коли­ чество слов, занятых в МОЗУ, после чтения с МЛ некоторой зоны неизвестного, но ограниченного размера. Если размер зоны не пре­ вышает 1000 ячеек, то соответствующий участок программы может выглядеть так:

Этикетка

 

Hon

t?\

,

і

i «

. .

хИ

*,В,в,0,Д

ВуЖ,

,

,

і

.

.

і

Н,(*,С,Л,Є

і

.

, .

 

 

 

 

.

,

.

,

 

 

 

 

~Г""ГТТ"~1і • і • і • і

і

1

.

1 .

і

і

і

і

Д,Н,Н

Р

з,в,

 

,

I

I

I

1 .

1

1

1

1

1

1

I

I

I

,

1

1

.

1

1

1

1

1

гг\

.

&\ .

 

 

 

 

 

 

Дфесо

 

и

 

 

 

замечай

,

і

 

ДО

і

і

 

(

[3S\

 

і

І

 

і

 

\«0\

,

з-х;

 

 

 

 

1 1 1 1

1 1

 

1 1 1

 

і

і

 

.

 

і

 

і

0,:

Б,у\ф-,Е

 

P,,

,1,0,0,0,

 

 

,

,

 

і

і

 

і

 

і

і

t

м\л

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в ,в

 

 

 

 

 

; ,Д,ЛКН

 

і

,

,

 

J — 1

 

1

 

1

1

_ L

іі — j — •j—j

 

- j —;—Г~,—і—і—І——f~

 

—— і

l

l

l

^ j - r " :

 

 

l l

 

 

l

 

і

,

,

і .

. .

. •

і

< .

 

і .

і

і

 

 

і

!

і

 

/ і

і

і

і

і

і

і

і

і

і

,

і

 

,

і

і

і

і

 

і

 

,

 

і

і

і 1

 

і

.

і

.

і

і

і

і

 

і

і

і

і

 

і

 

і

 

і

і

і

'

і

і

і

і

і

і

і

і

 

і

і

і

і

і

 

і

1 І

і

і

J і

і

і

і

 

 

 

 

 

 

і

і

і

і

 

і . ! i

 

П Е Р Е С Л А ТЬ УПРАВЛЯЮЩЕЕ СЛОВО (ПУС)

Оператор состоит из двух строк

uvr

і № ; ] Т [ , К ] \

I

определитель

и у ь

\:И[;Т[,К]]/

І

0ІОІІО

КА

0; В

 

 

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

При выполнении оператора диспетчер пересылает управляющее

148

слово из ячейки В в ячейку УОП, соответствующую устройству ZZZ, закрепленному за программой как устройство Т,К. Этот оператор имеет смысл, если предполагается обращение к устройству Т,К без записи управляющего слова. Оператор нельзя использовать для УПч и УВК.

И Д ТИ ПО УКАЗАТЕЛЮ ВНЕШНЕГО УСТРОЙСТВА (ИУВУ)

Оператор состоит из двух.строк:

ИУВУ

[ : Щ Т [,К]

ПСК

< у к а з а т е л ь > ; В2

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

Состояние указателя (0 или 1) записывается вслед за условным обозначением. В качестве указателей могут использоваться только первые девять указателей табл. 9.

Пример.

ИУВУ

МЛ, 1

ПСК

П ; Б Л 0 К

При трансляции первая строка оператора преобразуется в экст­ ракод с кодом операции — 65, причем если Т,К заданы не в индекс­ ной ячейке, в разрядах 25-—36 транслятор проставляет цифровое обозначение типа устройства и его номер среди устройств данноготипа. Вторая строка имеет после трансляции вид, как и аналогич­ ная строка в операторах ВИУ или ЫИУ.

При выполнении оператора анализируется состояние заданного указателя устройства Т,К. Если действительное состояние указа­ теля совпадает с заданным в операторе, то управление передается к оператору В2, в противном случае выполняется следующий опера­ тор программы.

Оператор ИУВУ следует использовать лишь в крайних случаях,, когда независимо от операторов ввода-вывода требуется определить, состояние устройства.

5.6. ПРИМЕРЫ ПРОГРАММ, ИСПОЛЬЗУЮЩИХ ОПЕРАТОРЫ ВВОДА-ВЫВОДА

Ввод и вывод информации программист реализует, обычно, ис­ пользуя библиотечные программы. Однако для того, чтобы более подробно пояснить организацию ввода-вывода в программах, при­ ведем несколько примеров программ, использующих операторы ввода-вывода.

Пример 1. Ввести с перфоленты массив целых положительных, чисел (не более 500), каждое из которых содержит не более девя­ ти цифр, перекодировать их в десятичную форму представлениячисел. На перфоленте одно число от другого отделено разделителем-

149»

Соседние файлы в папке книги из ГПНТБ