Page Layout Subsystem
From Open Watcom
Scope and Status
This page discusses the Page Layout Subsystem, that is, it will eventually gather together in one place all available information on Page Layout as done by wgml.
At the moment, this is a preliminary effort, based mainly on investigation of the :PAGESTART, :PAGEOFFSET and :PAGEADDRESS blocks. It exists because that investigation produced results which transcended the intended scope of the discussion of those blocks in the context of binary device files.
Participating Actors
At the moment, the only known actors are these binary device file definition blocks:
- The Attributes: page_width, page_depth, horizontal_base_units, and vertical_base_units.
- The :PAGESTART block.
- The :PAGEOFFSET block.
- The :PAGEADDRESS block.
It is likely that other definition blocks and also various document tags will eventually be identified.
Patterns of Interaction
Very little is known at this time. The only documentation of the :PAGEOFFSET block (:CMT. Position past the unprintable region of the page) is suggestive, but hardly complete.
This presents these items for two device/driver pairs:
Item PS/PSDRV ASA/ASADRV page_width 8500 132 page_depth 10920 66 horizontal_base_units 1000 10 vertical_base_units 1000 6 x_start (:PAGESTART) 200 0 y_start (:PAGESTART) 10800 1 x_start (:PAGEOFFSET) 200 (0) y_start (:PAGEOFFSET) 200 (0) x_positive (:PAGEADDRESS) yes (yes) y_positive (:PAGEADDRESS) no (yes)
The parenthesized values in the last column are the defaults placed in the binary file when the corresponding block is not present in the source.
These values must interact with any number of wgml tags dealing with headers, footers, pagination, and so forth. All of this will need to be explored in some way.

