Cтраница 1
![]() |
Структура стека пульта. [1] |
Стек пульта может применяться пользователем для выполнения обмена данными между процедурой и командами ПДО или другими процедурами и программами, а также для ввода-вывода данных на ПУ. [2]
![]() |
Упрощенная схема основной памяти ВМ. [3] |
Вводной стек пульта - это область памяти ВМ, куда помещается информация либо непосредственно с экрана, либо из программ и процедур. Часть вводного стека пульта, в которую поступают строки с экрана, называется буфером ПУ, а часть, используемая программами и процедурами, - программным стеком. Вопросы использования программного стека рассматриваются в гл. Максимальное число строк, которое можно поместить во вводной стек пульта, зависит от емкости основной памяти ВМ. [4]
Если в процедуре в стек пульта заносится несколько строк, то порядок считывания их из стека может быть разный в зависимости от указания в операторах & STACK и & BEGSTACK операнда FIFO ( принимается по умолчанию) либо LIFO. Операнд FIFO обеспечивает занесение строк в конец стека пульта; занесенные строки будут считываться в том же порядке, в котором они были занесены. Операнд LIFO обеспечивает занесение строк в начало стека пульта, причем эти строки будут считываться в порядке, обратном их занесению. [5]
Информация, помещаемая в стек пульта, состоит из двух строк. Первая строка содержит символы из позиций 1 - 5 первой из обрабатываемых записей управляющего файла, в которой эти символы отличны от пробелов, а вторая - список имен макробиблиотек из первой записи управляющего файла. Режим STK действителен только тогда, когда определен режим CTL, и используется только в случае, если команда UPDATE вызывается из процедуры. Информация, помещенная командой UPDATE в стек пульта, может быть считана процедурой для последующего использования. [6]
Для проверки того, содержит ли стек пульта какую-либо информацию, может использоваться специальная переменная & READFLAG. Если значение этой переменной равно STACK, то стек пульта непустой. [7]
Подкоманда STACK позволяет занести в конец стека пульта подкоманду, введенную в виде операнда, или группу записей редактируемого файла, начиная с текущей записи файла. [8]
ВМ выводится сообщение о том, что стек пульта пустой, и осуществляется выход из процедуры. [9]
Команда выполняется сразу без занесения ее в стек пульта, что приводит к возобновлению вывода информации на пульт ВМ. [10]
![]() |
Упрощенная схема основной памяти ВМ. [11] |
Команды или данные с ПУ поступают во вводной стек пульта. [12]
Режим STACK FIFO вызывает занесение информации в конец стека пульта в том порядке, в котором она выводилась бы на ПУ. При указании режима STACK LIFO информация заносится в начало стека пульта в обратном порядке. [13]
Если операнд не является подкомандой текстового редактора, то стек пульта очищается. Если операнд опущен, то происходит повторное выполнение предыдущей подкоманды. [14]
Указанный в записи признак и имена макробиблиотек заносятся в стек пульта ( если в команде указан режим STK), откуда они могут быть извлечены процедурами, предназначенными для обновления и трансляции исходных программ. [15]