Page formation with SEND TEXT is somewhat different from page formation
with SEND MAP. First, a single SEND TEXT command can produce more output than
fits on a screen or a printer page (SEND MAP never does this). BMS sends the
whole message, which means that you can deliver a multi-page message to a
printer without using logical facilities. You cannot use the same technique
for displays, however, because even though BMS delivers the whole message,
the component screens overlay one another, generally too quickly for anyone
to read.
If you specify ACCUM, BMS breaks the output into pages for you, and the
second difference is that unless you specify a disposition of SET, your task
does not get control at page breaks. Instead, when the current page has no
more room, BMS simply starts a new one. It adds your header and trailer, if
any, automatically, and does not raise the OVERFLOW condition. This is true
whether you produced the pages with a single SEND TEXT command or you built
the message piecemeal, with several. The only situation in which your task
is informed of a page break is when the disposition is SET. In this case, BMS raises the RETPAGE condition
to tell you that one or more pages are complete, as explained in Using SET.
Here are the details of how BMS builds pages of text with ACCUM:
- Every message starts on page 1, which is initially empty.
- If you specify the HEADER option, BMS starts every page with
your header text. BMS numbers your pages in the header or trailer if you wish.
(Header format and page numbering are explained on page Header and trailer format.)
- If you specify one of the justification options (JUSTIFY, JUSFIRST, JUSLAST),
BMS starts your text on the indicated line. JUSFIRST begins your text on the
first line after the header, or the top line if there is no header. JUSTIFY=n
starts your text on line n, and JUSLAST starts it on the lowest line that
allows both it and your trailer (if any) to fit on the current page. If the
contents of the current page prevent BMS from honoring the justification option
there, BMS goes to a new page first, at step 6.
Justification applies only to the start of the data for each SEND TEXT command;
when the length of your data requires an additional page, BMS continues your
text on it in the first available position there.
- If you do not specify justification, BMS starts your text in the first
position available. On the first SEND TEXT of the message, this works out
the same as JUSFIRST. Thereafter, your text follows one character after the
text from the previous SEND TEXT of the current logical message. (The intervening
character is an attributes byte on 3270 terminals, a blank on others.)
- Having determined the starting position, BMS continues down the page,
breaking your data into lines as explained in Text lines, until
it runs out of space or data. If you have specified a trailer, the available
space is reduced by the requirement for the trailer. If the data is exhausted
before the space, processing ends at this point. The message is completed
when you indicate that you are finished with a SEND PAGE or PURGE MESSAGE
command.
- If you text does not fit on the current page, BMS completes
it by adding your trailer text, if any, at the bottom and disposes of it according
to the disposition option you have established (TERMINAL, PAGING, or SET),
just as it does for a mapped logical message. The trailer is optional, like
the header; you use the TRAILER option to specify it (see Header and trailer format).
- BMS then goes to a new page and repeats from step 2 with the remaining data.
[[ Contents Previous Page | Next Page Index ]]