Cтраница 4
Работая в этом же режиме, ОС возвращает адрес буфера, содержащего следующую входную запись. Данная входная запись перемещается из буфера в свободную область строк. Субмонитор возвращает программе стандартный описатель строк, указывающий на запись в свободной области строк, и новое значение freepoint, обновленное на длину записи Если ОС сигнализирует о достижении конца файла, последний закрывается и субмонитор возвращает программе описатель нулевой строки и то же значение freepoint, с которым осуществлялось вхождение в субмони-тор. Если программа опять пытается считать из файла, ее выполнение заканчиваемся. [46]
При вызове субмонитор сначала определяет, специфицирует ли индекс действительный выходной файл; если нет, то выполнение программы заканчивается. Затем субмонитор определяет, открыт ли файл, и если файл закрыт го открывает его, после чего выполняется макрокоманда PUT p режиме указания. Операционная система возвращает адрес следующего выходного буфера, субмонитор перемещает выводимую запись в буфер, усекая или наращивая ее, как его было списано выше, и возвращает управление программе. [47]
Одной из особенностей способа распределения регистров в системе ХРЬ является то, что R 15 всегда содержит адрес точки вхождения в субмонитор. Оправдывают ли требования XPL-программы к субмонитору выделение общего регистра под адрес монитора. Изменения в схеме регистров влекут за собой изменения в субмониторе, в программе трассировки ( которая использует субмонитор для печатаемого вывода и для исполнительных команд и в ХСОМ. [48]
Одной из особенностей способа распределения регистров в системе ХРЬ является то, что R 15 всегда содержит адрес точки вхождения в субмонитор. Оправдывают ли требования XPL-программы к субмонитору выделение общего регистра под адрес монитора. Изменения в схеме регистров влекут за собой изменения в субмониторе, в программе трассировки ( которая использует субмонитор для печатаемого вывода и для исполнительных команд и в ХСОМ. [49]
Объектная программа XPL, хранимая в памяти с прямым доступом, состоит из ряда записей ( размер которых зависит от конкретного устройства) в двоичном коде о последующим рядом записей соответствующих области данных про граммы. Область данных включается в программный файл, так как в программе могут появляться константы и инициализированные переменные. Первая запись кода начинается с небольшого блока управления, включающего информацию о количестве и раз мере последующих записей, которая будет использована субмонитором во время загрузки программы. Следует отметить, что последняя запись кода обычно содержит некоторое свободное пространство, которое используется во время процесса загрузки. [50]
Объектные программы XPL не рассчитаны на непосредственную связь с операционной системой при выдаче различных запросов. Роль устройства сопряжения выполняет программа субмонитора, так что ХСОМ может генерировать простые вызовы к субмонитору на языке XPL. Хотя система XPL была первоначально рассчитана на работу с ОС / 360, она может работать с любой операционной системой ( ВМ / 360 причем для этого необходимо внести изменения только в субмонитор Изменения в операционной системе повлекут за собой изменения лишь в субмониторе ( с использованием ассемблера и не потребуют перекомпиляции существующих программ. [51]
Работая в этом же режиме, ОС возвращает адрес буфера, содержащего следующую входную запись. Данная входная запись перемещается из буфера в свободную область строк. Субмонитор возвращает программе стандартный описатель строк, указывающий на запись в свободной области строк, и новое значение freepoint, обновленное на длину записи Если ОС сигнализирует о достижении конца файла, последний закрывается и субмонитор возвращает программе описатель нулевой строки и то же значение freepoint, с которым осуществлялось вхождение в субмони-тор. Если программа опять пытается считать из файла, ее выполнение заканчиваемся. [52]