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

книги из ГПНТБ / Система математического обеспечения ЕС ЭВМ

..pdf
Скачиваний:
24
Добавлен:
22.10.2023
Размер:
10.92 Mб
Скачать

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

D I S P = ( M O D , C A T L G )

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

Если набор данных уже каталогизирован, то как диспозиция CATLG, так и диспозиция KEEP эквиваленты и не меняют сос­ тояния набора данных (он остается каталогизированным). Реги­ страция набора данных в каталоге позволяет в дальнейшем обра­ щаться к нему только по имени, не указывая такой информации, как том, устройство, номер файла и т. д. Вся эта информация нахо­ дится в каталоге и используется системой без дополнительного указания.

Значение UNCATLG используется для удаления набора данных из каталога. Удаляются имя набора данных и вся сопутствующая информация, однако сам набор данных сохраняется. При после­ дующих использованиях набора данных в операторе DD необхо­ димо указывать всю информацию, которая требуется для сохра­ няемых наборов данных (том, устройство и т. д.).

Диспозиция в случае аварийного завершения (аварийная дис­ позиция) указывается в качестве третьего подпараметра. Допуска­ ются те же значения, что и для нормальной диспозиции, за исклю­ чением PASS. Если аварийная диспозиция не указана и пункт за­ дания завершился аварийно, применяется нормальная диспозиция. Например:

D I S P = ( N E W , K E E P )

эквивалентна

D I S P = ( N E W , K E E P , K E E P )

Для временных наборов данных независимо от того, что зако­ дировано для аварийной диспозиции, всегда предполагается DELETE. Эквивалентны следующие параметры диспозиции. В каждый пункт входит список эквивалентных указаний парамет­ ра DISP.

1. О т с у т с т в и е п а р а м е т р а

D I S P = N E W

D I S P = ( N E W , D E L E T E , D E L E T E )

D I S P = M O D — д л я н е с у щ е с т в у ю щ е г о н а б о р а д а н н ы х

2. D I S P = S H R

D I S P = ( S H R , K E E P , K E E P )

81

S. Заказ 3414.

3.

D 1 S P = M 0 D

 

 

— для

каталогизированных и

 

D I S P = ( O L D ,

K E E P ,

K E E P )

передаваемых наборов данных

4.

D I S P = (, K E E P , D E L E T E )

 

 

 

 

D I S P = ( N E W , K E E P , D E L E T E )

 

 

 

5. D I S P = ( O L D , ,C A T L G )

 

 

 

 

D I S P = ( O L D , K E E P , C A T L G )

— для

временных

наборов

6.

D I S P = ( O L D ,

P A S S ,

K E E P )

 

D I S P = ( O L D ,

P A S S ,

D E L E T E )

 

данных

 

7.

D I S P = ( , K E E P )

 

— для

временных

наборов

 

D I S P = ( N E W ,

P A S S ,

D E L E T E )

 

данных

 

Параметр SPACE используется для распределения периферий­ ной памяти. Он применяется только для устройств прямого досту­ па. С помощью этого параметра можно затребовать необходимый для набора данных объем памяти в момент образования или рас­ ширения (модификации) набора данных.,,

В момент распределения памяти система выделяет набору дан­ ных первичное количество памяти, заданное параметром. Оно мо­ жет состоять либо из одного непрерывного участка, либо из сово­ купности (до пяти) отдельных участков на одном и том же томе. Кроме того, можно определить вторичное количество памяти. Оно выделяется только в том случае, если первичного количества па­ мяти для набора данных недостаточно. В этом случае система мо­ жет выделить до 15 участков (экстентов), размер каждого из кото­ рых определяется вторичным количеством. Суммарное количество первичных и вторичных участков не должно превышать 16 на том.

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

Первым подпараметром параметра SPACE является указание единиц измерения памяти, в которых производится заказ. Значе­ нием первого подпараметра может быть:

а) TRK — память определяется в дорожках;

б) CYL — память определяется в цилиндрах;

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

Второй подпараметр состоит из списка чисел, определяющих соответственно первичное количество памяти, вторичное количест­ во памяти и число записей для оглавления библиотеки или число

цилиндров для индекса индексно-последовательного набора дан­ ных.

Третье число может быть задано только для библиотечных и индексно-последовательных наборов данных.

Рассмотрим пример:

и

S P A C E = ( 8 0 0 ,

(20, 100))

В параметре задано, что набору данных необходимо выделить память для 20 блоков по 800 байтов (первичное количество). Коли­

62

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

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

S P A C E =(TRK, (20, , 2 5 ) )

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

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

Если запрос на память выдается в блоках, то система сама вы­ числяет количество дорожек, необходимое для первичного количе­ ства, исходя из размера блока, указанного в качестве первого па­ раметра. Если задано вторичное количество, то для него количество дорожек вычисляется, исходя из значения подпараметра BLKSIZE параметра DCB. Разница заключается в том, что в параметре SPACE указывается средняя длина блока, а в подпараметре BLKSIZE — максимальная для записей переменной и неопределен­ ной длины.

Если первичного объема памяти для набора данных не хвата­ ет и при этом указано вторичное количество, система распределя­ ет дополнительный объем памяти, равный вторичному количеству. При этом она пытается предоставить непрерывный участок памя­ ти. Когда это не удается, система пытается предоставить вторич­ ное количество памяти путем выделения нескольких участков, но не более пяти. Вторичное количество первоначально выделяется на том же томе, что и первичное. Если на томе нет достаточного количества памяти или при попытке выделения число участков превышает 16, система пытается выделить вторичное количество памяти на другом томе для многотомного набора данных или за­ вершает задание, если набор данных должен размещаться на од­ ном томе.

6*

83

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

Рассмотрим пример. Пусть для набора данных А в момент его еоздания указывается 15 блоков по 240 байтов. Вторичное коли­ чество не указывается.

/ / M l D D

D S N = A, D I S P = ( , C A T L G ),

V O L = S E R = B 97,

II

U N I T = 5050, S P A C E = (240,

15)

В дальнейшем при модификации или расширении набора дан­ ных может потребоваться вторичное количество. Пусть вторичное количество требуется участками по 90 блоков. Для этого необхо­ димо кодировать следующий оператор:

//T R D D

D S N =

A, D I S P =

( M O D , K E E P ) ,

/ /

S P A C E = ( 2 4 0 , ( 0 , 9 0 ) )

В силу того что набор данных А был каталогизирован в момент еоздания, в последнем операторе параметры UNIT и VOL отсутст­ вуют. Необходимую информацию система получает из каталога.

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

// М 3 D D D S N = A, D I S P = ( M O D , K E E P ) , / / S P A C E — (240, ( 0 , 2 7 0 ) )

Если оператор SPACE содержит запрос для образования биб­ лиотечного или индексно-последовательного набора данных, то не­ обходимо определить размер оглавления библиотеки в первом случае или размер области индекса во втором. Это определение де­ лается с помощью третьего значения второго подпараметра. Сис­ тема отличает тот или иной набор данных по параметру DCB. Для индексно-последовательного набора данных параметр DCB дол­ жен иметь подпараметр DSORG = IS или DSORG = ISU.

Оглавление библиотеки состоит из блоков по 256 байтов. Число, указанное в третьем значении, определяет количество таких блоков в оглавлении. Память для оглавления выделяется из первичного количества памяти для набора данных. Запись содержит имя раз­ дела библиотеки или псевдоним (альтернативное имя), адрес раз­ дела в библиотеке, а также другую информацию. Каждый раздел библиотеки должен иметь имя и может иметь до 16 псевдонимов. Таким образом, требуется одна запись на имя раздела и по одной

84

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

Пусть библиотека предназначена для хранения 8 программ, каждая из которых может иметь до 3 псевдонимов. Следователь­ но, на каждую программу требуется 4 записи (1 имя + 3 псевдони­ ма). Общее число записей для оглавления составляет 32. Если предположить, что каждый блок содержит 5 записей, то для оглав­ ления требуется 7 блоков. Параметр SPACE может быть закодиро­ ван следующим образом:

S P A C E = (C Y L , (2, 1 , 7 ) )

Это означает, что для библиотеки должно быть распределено 2 цилиндра для первичного количества памяти. Вторичное количе­ ство составляет 1 цилиндр. В первичном количестве памяти долж­ но быть выделено 7 записей по 256 байтов для оглавления библио­ теки. Расширять оглавление в существующей библиотеке нельзя. Поэтому объем оглавления должен быть достаточно большим, что­ бы не потребовалось его расширения в процессе использования библиотеки. Если потребуется расширить оглавление или библио­ течный набор данных, необходимо использовать системную утилиту IEBCOPY, определив для нее новое значение параметра SPACE. Эта утилита позволяет заново создать библиотечный набор дан­ ных, сохранив его содержимое, а также сжать набор данных, что­ бы свободное место в библиотеке оставалось только в конце набо­ ра данных.

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

Третьим подпараметром параметра SPACE может быть зако­ дировано значение RLSE. Если это значение указано, то после за­ крытия набора данных (макрокоманда CLOSE) неиспользованное место в наборе данных будет считаться свободным. Это позволяет при создании набора данных заказывать максимальный объем па­ мяти и освобождать лишнюю память после создания набора дан­ ных. Освободить неиспользуемую память можно и для существую­ щего набора данных, закодировав параметр SPACE следующим образом:

S P A C E = (О, О, R L S E )

Четвертым подпараметром параметра SPACE может быть зако­ дировано одно из следующих значений: CONTIG, MXIG или ALX. CONTIG обозначает, что заказанный объем памяти должен быть выделен непрерывным участком. MXIG подразумевает, что долж­ на быть выделена наибольшая свободная область на томе, но она должна быть равной или больше заказанного объема памяти. ALX указывает, что необходимо выделить до пяти участков памяти, каж­

85

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

Рассмотрим примеры. Оператор

S P A C E = (T R K , ( 2 0 0 , 1 0 ) , , C O N T I G )

запрашивает непрерывный участок памяти размером 200 дорожек. Опёратор

S P A C E = (T R K , ( 2 0 0 , 1 0 ) , , M X I G )

запрашивает непрерывный участок памяти, который должен быть наибольшим на томе и равен или больше 200 дорожек. Оператор

S P A C E = (T R K , ( 2 0 0 , 1 0 ) , , A L X )

запрашивает пять участков, каждый из которых равен или больше 200 дорожек. Если на томе нет пяти таких участков, то система вы­ делит максимальное число участков (по крайней мере один должен быть).

Пятый подпараметр параметра SPACE может принимать зна­ чение ROUND. Это значение указывается, если память запраши­ вается в блоках. В этом случае система должна выделить участок памяти, который укладывается в границы цилиндров, т. е. начи­ нается с первой дорожки цилиндра и заканчивается последней до­ рожкой цилиндра (возможно другого).

В рассмотренной выше форме кодирования параметра SPACE системе предоставлялась возможность выбрать участок (или на­ бор участков) памяти, удовлетворяющий запросу. Однако суще­ ствует другая форма кодирования параметра SPACE, которая поз­ воляет указать относительный адрес первой дорожки набора дан­ ных, но не позволяет указывать вторичное количество памяти для набора данных (первичное количество указывается в дорожках). Для библиотечных или индексно-последовательных наборов дан­ ных указывается размер оглавления или размер области индек­ са. В этом случае параметр SPACE имеет следующий формат:

 

S P A C E = ( A B S T R , ( а , Ь, с ) )

 

где а — первичное количество

в дорожках; b — относительный

ад­

рес первой дорожки

набора

данных; с — размер оглавления

или

области индекса (с

может отсутствовать). Участок памяти выде­

ляется только в том случае, если требуемая память свободна. Если несколько наборов данных обрабатываются одновременно

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

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

Пусть три набора данных А, В и С необходимо разместить на томе магнитного диска типа 5050, используя разделение цилиндров. При этом набор данных А должен занимать 4 дорожки каждого цилиндра, а наборы данных В и С — по 3 дорожки. Общий объем памяти для всех наборов данных составляет б цилиндров; вторич­ ное количество — 1 цилиндр. В этом случае необходимо закодиро­ вать следующие операторы:

/ / M l D D D S N = A , D I S P — (, K E E P ) , U N I T = 5 0 5 0 , / / S P L I T — (4, C YL, (6, 1))

/ / М 2 D D D S N = B , D I S P = (, K E E P ) , S P L I T = 3 // М 3 D D D S N = C, D I S P — (, K E E P ) , S P L I T - 3

Кроме указанной формы параметра SPLIT, может быть исполь­ зована другая форма, в которой единицей измерения памяти явля­ ется блок. В этом случае доля дорожек на цилиндре для каждого набора данных указывается в процентах от 100%. Процент указы­ вается первым значением параметра. Второе значение определяет размер блока в байтах. Третье значение указывает первичное и вто­ ричное количество. Эту информацию содержит только первый опе­ ратор DD. Каждый следующий оператор содержит лишь указание процентов.

Рассмотрим аналогичный пример. Пусть наборы данных А, В и С требуют 240 блоков по 800 байтов. Вторичное количество не требуется. Набор данных А занимает 40% дорожек на цилиндре, а наборы данных В и С — по 30%. В этом случае необходимо зако­ дировать следующие операторы:

/ / M l D D D S N = A ,

//S P L I T -

// М 2

D D

D S N - B ,

// М 3

D D

D S N - C ,

D I S P — (, K E E P ) , U N I T - 5 0 5 0 , (40, 800, 240)

D I S P = ( , K E E P ) , S P L I T - 3 0 D I S P - ( , K E E P ) , S P L I T - 3 0

Параметр SUBALLOC предназначен для размещения несколь­ ких наборов данных на одном и том же томе в определенной по­ следовательности в непрерывном участке памяти. Участок памяти выделяется для первого набора данных, чтобы он вмещал все по­ следующие наборы данных. Для первого участка необходимо ко­ дировать оператор DD, указав параметр SPACE с подпараметром CONTIG. После этого можно кодировать операторы DD для набо­ ров данных с параметром SUBALLOC со ссылкой на первый опе­ ратор. Два первых подпараметра SUBALLOC кодируются анало­

87

гично первым подпараметрам SPACE. Третий подпараметр ис­ пользуется для ссылки на исходный оператор DD. Предполагается, что количество памяти, указанное в параметре SUBALLOC, выде­ ляется из общего количества, указанного в исходном операторе.

Рассмотрим пример:

//S T 1

Е Х Е С

R G M = T

/ / M l

D D

D S N = A, D 1 S P = ( , K E E P ) , U N 1 T = 5 0 5 0 ,

а

 

S P A C E = ( T R K , 5 0 0 ,, C O N T 1 G )

// М 2

D D

D S N = B , D I S P = ( . K E E P ) ,

II

 

S U B A L L O C = (C Y L, 25, M l )

//S T 2

Е Х Е С

R G M = P

// М 3

D D

D S N = C, D I S P = ( , K E E P ) ,

II

 

S U B A L L O C = ( 8 0 0 , 400, S T 1 .M 1 )

Оператор Ml запрашивает непрерывный участок памяти разме­ ром 500 дорожек на томе устройства типа 5050. Оператор М2 за­ прашивает участок памяти 25 цилиндров из того объема памяти, который был запрошен в операторе Ml. Оператор М3 запрашивает участок памяти размером в 400 блоков по 800 байтов из той же памяти.

Параметр LABEL кодируется в следующих случаях:

а) если необходимо обрабатывать набор данных, который не является первым на томе магнитной ленты;

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

в) если набор данных имеет нестандартные метки; г) если необходимо определить срок сохранения набора дан­

ных; д) если необходимо защитить набор данных паролем;

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

Параметр LABEL содержит необходимую информацию для перечисленных выше случаев. Наборы данных на устройствах пе­ риферийной памяти, как правило, имеют метки. Каждый набор на томе прямого доступа обязательно имеет метку, которая находит­ ся в оглавлении тома. Эти наборы данных обязательно имеют стандартные метки, а также могут иметь метки пользователя. Наборы данных на магнитной ленте могут иметь стандартные метки, нестандартные метки, а также быть вообще без меток. Метки наборов данных на магнитной ленте располагаются перед набором данных и после него.

Первый подпараметр параметра LABEL используется только для наборов данных на магнитной ленте. Он определяет последо­ вательный номер набора данных, подлежащего обработке, если он не является первым. В результате лента устанавливается таким образом, чтобы можно было начать работу с набором данных. Значением первого подпараметра должно быть число, состоящее не более чем из четырех цифр. Если первый подпараметр опущен или указано значение 0, то предполагается, что задан первый на­ бор данных.

88

Второй подпараметр указывает тип метки (точнее, тип обра­ ботки меток, который зависит от типа метки). Допускаются сле­ дующие значения для второго подпараметра:

а)

SL

—для стандартных меток;

б)

SUL

—для стандартных меток и меток пользователя;

в)

NL

— отсутствие меток;

г)

NSL

—для нестандартных меток;

д)

BLP

—для указания системе, что метки не следует обра­

 

 

батывать.

Если набор данных имеет стандартные метки, то второй подпа­ раметр можно опустить. Для стандартных меток (SL и SUL) си­ стема осуществляет проверку правильности установки тома на устройство. Для нестандартных меток эту проверку должна делать специальная программа обработки нестандартных меток, разрабо­ танная применительно к конкретным условиям эксплуатации вы­ числительной машины и включенная в систему. Если указано BLP или NL, правильность установки ленты должен обеспечивать опе­ ратор. Если указано NL, набор данных не должен иметь стандарт­ ных меток. Для каталогизированных наборов данных информация о типе метки в каталоге не регистрируется. Следовательно, если определяется тип обработки, отличный от стандартного, необходи­ мо указывать значение второго подпараметра, даже если набор данных каталогизирован.

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

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

либо OUT, если набор данных должен обрабатываться только для вывода.

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

R E T P D = 4 h m o

Число может содержать не более трех цифр и определять коли­ чество дней, в течение которых необходимо хранить набор данных. Срок хранения указывается в виде:

E X P D T = ч и с л о

Число должно состоять из пяти цифр, где первые две цифры обозначают год, а оставшиеся три — порядковый номер дня в году. Например, 74032 обозначает I февраля 1974 г.

35. ОПЕРАТОРЫ ПРОЦЕДУРЫ И КОНЦА ПРОЦЕДУРЫ

Оператор процедуры имеет следующий формат:

//имя PROC операнды комментарии

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

Список параметров процедуры в операторе PROC содержит только те параметры, для которых определяется стандартное зна­ чение. Чтобы присвоить параметру некоторое стандартное значе­ ние, необходимо кодировать:

параметр=значение

или

параметра

В последнем случае считается, что в качестве стандартного значения параметр заменяется на пусто. Рассмотрим пример про­ цедуры:

IIРР

P R O C

T Y P E = 5 0 5 0 , S T A T U S =

/ / P I

E X E C

R G M = A

/ / м м

D D

D S N = & N A M E , D I S P = ( & S T A T U S , K E E P ) ,

//

 

U N I T = & T Y P E

Процедура РР содержит три параметра NAME, STATUS и TYPE. Для двух из них в операторе PROC определены стандарт­ ные значения. Таким образом, при вызове данной процедуры не­ обходимо обязательно определить значение для параметра NAME, а для остальных значение можно не определять, если стандартное значение является удовлетворительным. Допустим, некоторый пункт задания использует процедуру РР следующим образом:

//S T 1

Е Х Е С

Р Р , N A M E = K A T

Процедура будет выполнена как следующий пункт задания:

/ / P I

E X E C

P G M - A

/ / М М

D D

D S N = KA T, D I S P = ( , K E E P ) ,

/ /

 

U N I T = 5 0 5 0

Теперь рассмотрим другое использование процедуры:

// Т Т

Е Х Е С

Р Р , N A M E = К А Т , S T A T U S = O L D ,

/ /

 

T Y P E = 5010

Процедура будет выполнена как следующий пункт задания:

/ / P I

Е Х Е С

P G M = A

/ / М М

D D

D S N = K ' A T , D I S P = ( O L D , K E E P ) ,

/ /

 

U N I T = 5 0 ! 0

9(4

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