Ввод и вывод символьной информации, команды RCD и PLN

 

Команды RWD и WWD являются макрокомандами, предназначенными для выполнения операций ввода и вывода информации в числовой форме. Обычно же вводимая и выводимая информация имеет вид символьных строк. Примерами могут служить 80-символьная последовательность, считываемая с перфокарты, и печатная строка. Для организации ввода и вывода символьной информации предназначены макрокоманды RCD и PLN, которые используются в нашей книге для удобства изложения материала. Мы ввели эти команды лишь временно, поскольку в гл. 17 будет показано, как можно использовать возможности операционной системы для выполнения операций ввода-вывода. Так же как RWD и WWD, команды RCD и PLN не являются макрокомандами, предусмотренными в реальных системах.

RCD D2(X2,B2)

Read CarD

80 байтов с карты D2 + (X2) + (B2)

В результате выполнения макро RCD образ очередной 80-колонной перфокарты записывается в память по указанному адресу. Запись происходит в коде EBCDIC. Как видно из приведенного описания, при выполнении RCD возможно индексирование. Например, по команде

RCD INPUT(5)

80-байтовый образ считанной карты будет помещен в память, начиная со 160-го байта области INPUT, если

(5) =000000АО Память для INPUT можно зарезервировать так:

INPUT DS 400С

Этой памяти хватило бы для размещения образов пяти перфокарт.

Устройства печати, которыми оборудованы машины фирмы IBM, имеют длину строки либо 120, либо 132 символа. Будем предполагать, что в нашем распоряжении находится печатающее устройство второго типа. При работе на конкретной вычислительной установке длина печатаемой строки будет вам сообщена.

По макрокоманде PLN производится передача печатающему устройству строки из 133 (или 121) символов в качестве очередной порции выводимой информации.

PLN D2(X2,B2)

Print LiNe

133(121) байта из D2 + (X2) + (B2)на печать

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

Рис. 10.3. Программа просмотра колоды карт для обнаружения карты с меткой STOP

в первых четырех колонках.

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

Символ

Шестнадцатеричный код

Функция

Пробел

40

Одни пробел

0

F0

Пропуск строки

1

F1

Начало новой страницы

+

4E

Холостой ход

Использование каких-либо иных символов для управления печатью при работе с командой PLN запрещено. Предположим, что поле OUTPUT содержит следующую 133-символьную строку:

1THISbWILLbBEbPRINTEDbATbTHEbTOPbOFbTHEbNEXTbPAGE

Далее следуют 84 пробела.

По команде

PLN OUTPUT

текст

THIS WILL BE PRINTED AT THE TOP OF THE NEXT PAGE

будет распечатан в первой строке следующей страницы. Если бы первым символом, код которого записан в OUTPUT, была бы не L

а, например, 0, то распечатан был бы тот же текст, но не на следующей странице, а в следующей строке.

На рис. 10.3 приведена программа, иллюстрирующая возможности применения макро RCD и PLN. Эта программа распечатывает содержимое заданной колоды карт и прекращает свое выполнение, если очередная рассматриваемая карта содержит слово STOP в первых четырех колонках. В данном случае для ввода и вывода используется одна и та же область памяти, INOUT. Образ каждой карты помещается в 1NOUT, начиная со второго байта, поэтому при считывании управляющий символ (пробел) не портится.

Расскажи друзьям
 
Статьи раздела