Cтраница 2
Пример на рис. 4.3 представляет собой типичную подпрограмму вывода цепочки символов на консоль из буферной области. Опе рация завершается, когда в текстовой цепочке встречается возврат каретки. Если возврат каретки не встречается в первых 80 символах из буфера, вызывается подпрограмма печати сообщения об ошибке. [16]
Этот же метод может быть реализован с помощью организации передачи управления по ячейке. При этом каждая подпрограмма должна иметь фиксированный список адресов, который при ее изменениях необходимо исправлять. При несколько более громоздкой реализации и меньшей программной устойчивости к сбоям, чем другие методы, этот метод позволяет гибко изменять общую программу при ее комплексной отладке, включать подпрограммы печати, исключать подпрограммы путем засылки в ячейку передачи соответствующих адресов. [18]
Специально организованная работа подпрограмм подтверждающей печати позволяет автоматизировать отладку старых тестов. При трансляции с инструментального языка транслятор передает этим подпрограммам дополнительные параметры: номер слоя, для которого составлен оператор, имя процедуры и координаты оператора печати, а также информацию об описании объекта вместе с его адресом. При запуске во время работы программы подпрограммы печати находят в специальной памяти связи с печатью дополнительную информацию о режиме ( печать, архивизация, сравнение), имени теста и номере слоя, для которого он составлен. Если этот номер не совпадает с номером, указанным параметром подпрограмме печати, то подпрограмма никаких действий не выполняет. [19]
Оператор 1 устанавливает номер первого листа спецификации или последовательности операций в единицу. Оператор 5 помещает код предмета длиной L байт в строку SN, начиная с позиции К. Если в оглавлении документа нужно поместить другие данные из записи предмета, например наименование, эти данные можно взять из соответствующего поля области, определенной параметром DFSATZGD. Следует заметить, что здесь только формируются данные для печати оглавления. Непосредственно печать происходит в СПП06 или в СПП 19 при первом к ним обращении или при переходе на новый лист. В этих программах пользователя необходимо сформировать строку для печати в области, заданной параметром DBER в макрокоманде AD4fRU, и обратиться к подпрограмме печати. [20]