5.3.188. Отмена режима листования

Экстракод 064, Аисп = 0.

Экстракод отменяет режим листования.

5.3.189. Установка режима листования

Экстракод 064, Аисп = 1.

После данного экстракода печать символа с кодом 201b вызовет подвод бумаги к началу листа. В дальнейшем после печати 66 строк автоматически будет выполняться переход на новую страницу (протяжкой бумаги на 6 строк).

До выдачи символа с кодом 201b печать выполняется без листования.

5.3.190. Печать

Экстракод 064, Аисп > 1

Экстракод предназначен для выдачи в выходной поток печати содержимого памяти в виде восьмеричных и шестнадцатеричных целых, десятичных чисел с плавающей запятой, команд и текста.

В качестве информации к экстракоду задаются указатель выдаваемого массива и последовательность информационных слов “разметки”.

Указатель выдаваемого массива задает начальный и конечный адреса выдаваемого массива. Каждый из этих адресов может представляться парой “индекс-регистр - смещение”.

Информационные слова разметки определяют формат печати и расположение выдаваемой информации на бумаге. Слова разметки используются последовательно, при необходимости - циклически (т.е. по исчерпании всех слов разметки происходит возврат к первому слову разметки). После завершения исполнения печати всего выдаваемого массива выполняется прогон бумаги: число пустых строк указывается в последнем слове разметки (которое не обязательно является последним использованным для печати).

Каждое слово разметки обеспечивает печать определенного числа так называемых элементов печати. Элементом печати для нетекстовых форматов является слово оп, а для текстовых

  • последовательность слов, завершающаяся словом с символом “конец текста” (или концом выдаваемого массива).

В каждом слове разметки задается:

  • количество элементов К, печатаемых по данному слову разметки;
  • номер позиции А, начиная с которой будет печататься первый элемент, выдаваемый по данному слову разметки;
  • отступ D от начальной позиции предыдущего элемента, выполняемый перед печатью очередного элемента по данной разметке;
  • количество L выдаваемых символов одного элемента.

Размещение информации на листе определяется следующими правилами:

1) При установке на позицию с номером, меньшим номера текущей позиции, происходит переход на новую строку (т.е. никакие значения, задаваемые в слове разметки, не могут привести к наложению символов);

2) Перед началом работы экстракода текущей позицией является начальная позиция очередной строки (номер текущей позиции равен нулю);

3) При выборке очередного слова разметки текущей становится позиция А, указанная в слове разметки;

4) Для очередного элемента печатается определенное количество (L) символов; номер текущей позиции увеличивается: для последнего (или единственного) элемента, печатаемого по данному слову разметки - на число напечатанных символов, в остальных случаях - на величину заданного в разметке отступа D.

При печати в текстовом формате число печатаемых символов (L) игнорируется; печать продолжается до символа “конец текста” (или до конца выдаваемого массива). Если конечный адрес выдаваемого массива равен начальному, то текстовой элемент “продолжается” до символа “конец текста” (т.е. конечный адрес в указателе выдаваемого массива игнорируется). Помимо графических символов УПП, в выдаваемом тексте могут встречаться и специальные символы, управляющие размещением текста:

  • конец текста (172b, 231b, 377b); данный символ указывает на конец текстового элемента;
  • новая строка (175b, 214b) - задает переход на начальную позицию следующей строки;
  • повторение (174b, 265b) - приводит к повторению предыдущего графического символа; число повторений указывается в следующем за символом 174b (265b) байте;
  • номер позиции (173b, 200b) - позволяет задать позицию, с которой будут размещаться последующие графические символы; номер позиции задается в следующем байте (нумерация с нуля); если устанавливаемая позиция меньше текущей, то печать будет происходить с наложением;
  • новая страница (201b) - выдается на печать как пробел; при установленном режиме листования приводит к тому, что содержащая этот символ строка будет печататься на новой странице;
  • блокировка перехода на новую страницу (310b) - приводит к временной (до конца печати по данному экстракоду) отмене подсчета строк для автоматического перехода на новую страницу при включенном режиме листования; символ выдается на печать как пробел;
  • наложение (212b) - обеспечивает наложение той строки, в которой данный код использован, на предыдущую строку; для этого код 212b должен содержаться во второй (при нумерации с единицы) позиции; при печати он будет заменен пробелом;
  • пробел (017b, 242b, 176b);
  • пропускаемый символ (143b, 341b) игнорируется при печати и не попадает в выходной поток.

В новых программах не рекомендуется применять коды 175b, 176b, 200b, 212b, 231b, 242b, 265b, 341b. Символы с кодами больше 137b, отсутствующие в приведенном выше списке, выдаются на печать как символ пробела (однако использовать это в программах не рекомендуется).

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

При печати команд число печатаемых символов (L) игнорируется (всегда считается равным 24). Первым символом при распечатке в этом формате всегда выдается пробел.

При печати восьмеричных целых L определяет количество печатаемых цифр и не должно превосходить 20b. При L < 20b печатаются младшие разряды слова.

При печати чисел с плавающей точкой L должно удовлетворять условию: 5 <= L <= 21b. На печать выдается следующая последовательность символов: пробел, знак числа (“+” или “-“), L-4 цифры мантиссы, символ экспоненты, знак порядка, две цифры значения порядка. Всего выдается L+2 символа.

При печати шестнадцатеричных целых L определяет количество печатаемых цифр и не должно превосходить 14b. При L < 14b печатаются младшие разряды слова.

Использовать формат “текст в кодировке автокода ИТМ” в новых программах не рекомендуется.

Входная информация:

Аисп: адрес группы (С) информационных слов.

С: указатель выдаваемого массива.

  • 48-45 разряды - индекс-регистр, содержимое которого участвует в формировании начального адреса выдаваемого массива;
  • 39-25 разряды - смещение, значение которого участвует в формировании начального адреса выдаваемого массива;
  • 24-21 разряды - индекс-регистр, содержимое которого участвует в формировании конечного адреса выдаваемого массива;
  • 15-1 разряды - смещение, значение которого участвует в формировании конечного адреса выдаваемого массива;

С+1…: - информационные слова разметки.

  • 48-45 разряды - формат печати:
    • 0 - текст;
    • 1 - команды;
    • 2 - восьмеричное целое;
    • 3 - машинное число с плавающей точкой;
    • 4 - текст в кодировке автокода ИТМ;
    • 7 - шестнадцатеричное целое;
  • 43-37 разряды - номер позиции (с нуля), начиная с которой должна выдаваться информация по данному информационному слову (А);
  • 31-25 разряды - количество печатаемых символов (L);
  • 24 разряд - признак последнего информационного слова;
  • 23-21 разряды - число протяжек без единицы (число пустых строк), выдаваемых после завершения экстракода; содержимое данного поля игнорируется при 24 разряде = 0 (т.е. во всех информационных словах разметки, кроме последнего);
  • 19-13 разряды - интервал между начальными позициями элементов, печатаемых по данному информационному слову разметки (D);
  • 7-1 разряды - число элементов, печатаемых по данному слову разметки, уменьшенное на единицу (К-1).

5.3.190.1. Специальная форма текстовой печати

Если в указателе выдаваемого массива (С) 24-1 разряды равны нулю, и задано единственное информационное слово разметки, определяющее печать в текстовом формате, то экстракод выполняется специфическим образом: печатается текстовая строка, содержащая ровно 128 символов (в выдаваемом массиве не должны использоваться символы “повторение” и “номер позиции”), а код 129-го символа определяет число протяжек бумаги после завершения печати (не более 17b). Нулевое значение числа протяжек приведет к тому, что информация, выдаваемая по следующему экстракоду печати, наложится на данную строку.

5.3.190.2. Печать по столбцам

Если в указателе выдаваемого массива 44 разряд = 1, то печать осуществляется “по столбцам”. При этом весь массив информационных слов разметки описывает содержимое одной “строки”. Текстовые элементы при печати по столбцам имеют длину в одно слово (а не до символа “конец текста”, как в случае обычной печати). Служебные символы в них игнорируются (за исключением символов “конец текста” и “новая страница”). Если размер выдаваемого массива не кратен числу элементов в “строке”, то соответствующее число последних столбцов “укорачивается” на строку по сравнению с первым столбцом.

5.3.190.3. Авосты

  • ИНФ.СЛ.В ЧУЖ.ЛИС - информационное слово экстракода не принадлежит памяти задачи;
  • НЕТ КОНЦА БЦ.ИНФ - текстовой элемент при задании совпадающих начального и конечного адресов выдаваемого массива не содержит символа “конец текста”;
  • ЛИСТ В ЭК.ЧУЖОЙ - выдаваемый массив полностью или частично располагается в чужом листе;
  • ОШ.В ИНФ.СЛ.ЭКСТ - велико количество элементов в разметке.