Cтраница 1
Форма макрокоманды, используемая совместно с одним или несколькими списками параметров, образованными описательной формой. [1]
Предусматриваются три формы макрокоманды LINEDIT: стандартная, описательная и исполнительная. Использование стандартной формы макрокоманды в программе не всегда обеспечивает получение реентерабельной программы. Для получения реентерабельной программы следует использовать описательную форму вместе с исполнительной формой макрокоманды. Стандартная и исполнительная формы обеспечивают выполнение макрокоманды, а описательная форма обеспечивает лишь резервирование области памяти для списка параметров. [2]
При использовании в программе исполнительной и описательной форм макрокоманд READ и WRITE нужно учитывать следующее. Если один и тот же блок управления событием данных DECB применяется несколькими макрокомандами в исполнительной форме, то последующая макрокоманда в исполнительной форме может быть выдана только после завершения операции обмена, начатой по предыдущей макрокоманде. Если макрокоманда в исполнительной форме задает операнды, значения которых уже имеются в блоке DECB, то этот блок модифицируется в соответствии с заданными в макрокоманде значениями операндов. Поэтому при выдаче последующих макрокоманд READ и WRITE необходимо учитывать не только начальное состояние блока DECB, но и все изменения, вызванные в результате предыдущих применений этого блока. [3]
Отсутствие ключевого операнда MF означает стандартную форму макрокоманды OPEN, а наличие операнда ME L - списковую форму макрокоманды. Макрорасширение списковой формы макрокоманды OPEN содержит только список параметров и не включает машинных команд, поэтому макрокоманда в списко - - вой форме в программе обычно записывается в области констант. Символическое имя макрокоманды OPEN в списковой форме является символическим адресом ( именем) построенного по этой макрокоманде списка параметров. [4]
Когда я знакомлю студентов с возможностями ввода, свойственными какому-либо языку программирования, то использую стандартную парадигму интерактивного ввода в форме макрокоманды, названной мною PROMT-READ-CHECK-ECHO, которая осуществляет считывание до тех пор, пока вводимые данные удовлетворяют проверке на правильность, а затем осуществляет их эхопередачу в выходной файл. Эта макрокоманд да является сама по себе на некотором уровне парадигмой итерации и ввода. [5]
Отсутствие ключевого операнда MF означает стандартную форму макрокоманды OPEN, а наличие операнда ME L - списковую форму макрокоманды. Макрорасширение списковой формы макрокоманды OPEN содержит только список параметров и не включает машинных команд, поэтому макрокоманда в списко - - вой форме в программе обычно записывается в области констант. Символическое имя макрокоманды OPEN в списковой форме является символическим адресом ( именем) построенного по этой макрокоманде списка параметров. [6]
На рис. 5.12 показан текст довольно сложной макрокоманды. Это в сущности прикладная программа, составленная в форме макрокоманды. Она загружается автоматически после вызова Lotus. На рис. 5.13 показан выданный макрокомандой запрос меню файла. [7]
В том месте программы, где необходимо выполнить операцию считывания или записи, выдается макрокоманда READ или WRITE в стандартной или исполнительной форме. Последняя используется только тогда, когда нужный блок управления событием данных DECB был построен по описательной форме макрокоманды. Ис-полнительная форма макрокоманды записывается так же, как и макрокоманда в стандартной форме, однако дополнительно имеет ключевой операнд MF Е, указывающий на исполнительную форму. [8]
Если какой-либо из этих файлов не может быть открыт, выполнение заканчивается с указанием ошибки ( си. Когда файлы открыты, субмонитор выполняет макрокоманду GETMAIN в условной форме для получения от системы места в основной памяти. В такой форме макрокоманды указываются минимальный и максимальный объемы памяти. Операционная система выделяет субмонитору объем памяти от минимального и, если допустить, что минимум имеется, до наибольшего возможного, вплоть до указанного максимума. Такой метод выделения памяти позволяет получить для программы наибольший возможный объем памяти. [9]
OPEN, а закрывается по макрокоманде CLOSE. Каждая из этих макрокоманд может использоваться в программе либо в стандартной, либо в списковой и исполнительной формах. В том месте программы, где должен быть открыт ( закрыт) блок управления данными DCB, записывается макрокоманда OPEN ( CLOSE) в стандартной или исполнительной форме. Макрорасширение списковой формы макрокоманды OPEN ( CLOSE) содержит только список параметров и не включает исполнительных команд, поэтому макрокоманда в списковой форме в программе записывается обычно в области констант. Символическое имя макрокоманды OPEN или CLOSE в списковой форме является символическим именем построенного по этой макрокоманде списка параметров. [10]
Макрокоманды ОС ЕС представляют собой средства программирования на языке ассемблера операций ввода-вывода для методов доступа BDAM, BISAM, ВРАМ, BSAM, QSAM, QISAM и VSAM. Расширениями макрокоманд являются цепочки команд, области данных, константы и команды SVC или перехода, с помощью которых осуществляется передача управления программам методов доступа. Для ряда макрокоманд всех методов доступа возможны три формы записи: стандартная, описательная и исполнительная. Способы кодирования описательной, исполнительной и генерирующей форм макрокоманд всех методов доступа и операндов макрокоманд VSAM содержатся в их описаниях. [11]