DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Wang WCS documentation floppies

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Wang WCS documentation floppies

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦0a9d5f531⟧ Wang Wps File

    Length: 45573 (0xb205)
    Types: Wang Wps File
    Notes: CPS/SDS/041               
    Names: »2103A «

Derivation

└─⟦9270f92d5⟧ Bits:30006106 8" Wang WCS floppy, CR 0167A
    └─ ⟦this⟧ »2103A « 

WangText



#
…02…CPS/SDS/041

…02…841210…02……02…
PRINTER
DETAILED DESIGN SPECIFICATION…02…ISSUE
 1…02…CAMPS








4.2.1.6.9.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲:̲

         Ref. PRT ̲DATA



4.2.1.6.9.4 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲D̲e̲s̲i̲g̲n̲

         Ref. code



4.2.1.6.10 C̲H̲E̲C̲K̲ ̲V̲I̲E̲W̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.1.6.10.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The procedure checks if an open view exists pertinent
         to the current item.  In case there is, it will be
         closed. If FILE ̲IN ̲PROGRESS is true, then SYIB ̲TAB
         ̲FILE is closed.



4.2.1.6.10.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         a)  CHECK ̲VIEW
         b)  CHECK ̲VIEW (R6)

         R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

         R6  LINK

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

         R0 - R7                DESTROYED

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         NONE





4.2.1.6.10.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

         Ref. PRT ̲DATA



4.2.1.6.10.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲

         Ref. Code



4.2.1.6.11 R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲S̲S̲C̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.1.6.11.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The procedure sends a reply to SSC with the specified
         completion value. It is used upon completion of SSC-commands.



4.2.1.6.11.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲

         a)  REPLY TO SSC (COMPLETION VALUE: SSC COMPL: TYPE)
         b)  REPLY TO SSC (R0, R6)

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R0  COMPLETION ̲VALUE   (DEST)
         R6  LINK               (DEST)

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R0 - R7                DESTROYED

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         NONE





4.2.1.6.11.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

         Ref. PRT ̲DATA



4.2.1.6.11.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲

         Ref. Code



4.2.1.6.12   C̲A̲N̲C̲E̲L̲ ̲P̲R̲I̲N̲T̲Q̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.1.6.12.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         If an INIT ̲RECEIVE ̲FIRST ̲QEL from PRIS ̲PRINTQ is pending
         then it will be cancelled.



4.2.1.6.12.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲

         a) CANCEL ̲PRINTQ ̲RECEIVE
         b) CANCEL ̲PRINTQ ̲RECEIVE(R6)

         R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

         R6      LINK           (DEST)

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R0 - R7                DESTROYED

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         None





4.2.1.6.12.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲s̲

         D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

         Ref. PNT ̲DATA



4.2.1.6.12.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲

         Ref. Code



4.2.1.7  S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲



4.2.1.7.1    U̲P̲C̲O̲ ̲P̲R̲O̲P̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         Ref. sec. 4.1.7.3.2.1



4.2.1.7.2    P̲R̲O̲P̲ ̲U̲P̲C̲O̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         Ref. sec. 4.1.7.3.2.2



4.2.2    P̲r̲i̲n̲t̲e̲r̲ ̲O̲u̲t̲p̲u̲t̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲

         The P̲r̲inter O̲utp̲ut (PROP) coroutine is performing the
         actions in connection with formattting and output of
         the text to be printed.

         PROP is controlled by the other coroutine (UPCO).



4.2.2.1  F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The following functions are performed by this sub-package
         (ref.fig.4.2.2-1):

         UPCO Control Functions
         Command Completion and Error Report functions

         Format Control

         Printout






                      FIGURE 4.2.2-1


4.2.2.1.1    U̲P̲C̲O̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲E̲x̲e̲c̲u̲t̲i̲o̲n̲ ̲(̲1̲.̲0̲)̲

         The UPCO Command Execution functions carry out execution
         of the commands issued by UPCO.

         a)  I̲n̲i̲t̲i̲a̲l̲i̲z̲e̲ ̲(̲1̲.̲1̲)̲

             The Initialize command is issued for initialisation
             of PROP,s working area, i.e. variables and buffers.
              A CC-Report is to be sent to UPCO, ref. sec. 4.2.2.1.2.c.

         b)  C̲o̲m̲m̲e̲n̲c̲e̲ ̲(̲1̲.̲2̲)̲

             Upon receipt of a Commence-CMD, PROP will start
             printing the current item.

         c)  A̲b̲a̲n̲d̲o̲n̲ ̲(̲1̲.̲3̲)̲

             The Abondon Print Command will cause the printing
             actions to be stopped immediately.  All outstanding
             I/O requests will be canncelled and the working
             area will be cleared.

             Completion will be reported to UPCO, ref. sec.
             4.2.2.1.2.c.

         d)  R̲E̲P̲E̲A̲T̲ ̲(̲1̲.̲4̲)̲

             The Repeat Command causes the printout of the current
             item to be repeate

         e)  P̲r̲e̲e̲m̲p̲t̲ ̲(̲1̲.̲5̲)̲

             Printout of the current item will be stopped. 
             Completion will be reported to UPCO, ref. sec.
             4.2.2.1.2.c.



4.2.2.1.2.   C̲o̲m̲m̲a̲n̲d̲ ̲C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲ ̲(̲2̲.̲0̲)̲

         These functions handle the reception and sending of
         completion and error report.

         a)  P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲o̲f̲ ̲I̲O̲C̲ ̲C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲C̲o̲d̲e̲s̲ ̲(̲2̲.̲1̲)̲

             When printout data is delivered to the Printer
             Handler it will respond with a Completion Code.
              The Completion Code will contain information about
             possible printer errors. Two kinds of printer errors
             can occur:
             1) Paper Low
             2) Connection Error.

         b)  S̲e̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲ ̲t̲o̲ ̲U̲P̲C̲O̲ ̲(̲2̲.̲2̲)̲

             Upon detection of an I/O error, a report will be
             sent to UPCO.

         c)  S̲e̲n̲d̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲R̲e̲p̲o̲r̲t̲ ̲t̲o̲ ̲U̲P̲C̲O̲ ̲(̲2̲.̲3̲)̲

             Completion of some of the UPCO commands is to be
             reported back, ref. sec. 4.2.2.1.1.a,c,f.

         d)  S̲e̲n̲d̲ ̲P̲r̲i̲n̲t̲ ̲C̲o̲m̲p̲l̲e̲t̲e̲ ̲R̲e̲p̲o̲r̲t̲ ̲t̲o̲ ̲U̲P̲C̲O̲ ̲(̲2̲.̲4̲)̲

             On completion of item printout, UPCO will be notified.
             



4.2.2.1.3    F̲o̲r̲m̲a̲t̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲3̲)̲

         Format Control takes care of the interface to the PRINTER
         Format Handler.



4.2.2.1.4 P̲r̲i̲n̲t̲o̲u̲t̲ ̲(̲4̲.̲0̲)̲

             The printout functions carries out the actual Text-conversion,-formatting
             and -output by using the PRINTER FORMAT HANDLER.

         a)  C̲o̲n̲v̲e̲r̲t̲ ̲D̲a̲t̲a̲ ̲F̲o̲r̲ ̲O̲u̲t̲p̲u̲t̲ ̲(̲4̲.̲1̲)̲

             This function is responsible for converting the
             data so that it can be printed.



         b)  L̲o̲a̲d̲ ̲C̲o̲n̲v̲e̲r̲t̲e̲d̲ ̲D̲a̲t̲a̲ ̲I̲n̲t̲o̲ ̲O̲u̲t̲p̲u̲t̲ ̲B̲u̲f̲f̲e̲r̲ ̲(̲4̲.̲2̲)̲

             When the data has been converted this function
             loads it into a buffer for Output.

         c)  P̲R̲E̲P̲A̲R̲E̲ ̲H̲e̲a̲d̲e̲r̲/̲T̲r̲a̲i̲l̲e̲r̲ ̲I̲n̲f̲o̲.̲ ̲(̲4̲.̲3̲)̲

             The Page Header/Trailer information, which is partly
             produced by UPCO is prepared and handed over to
             the PRINTER FORMAT HANDLER.

         d)  O̲u̲t̲p̲u̲t̲ ̲B̲u̲f̲f̲e̲r̲ ̲(̲4̲.̲4̲)̲

             This function delivers the Output buffer to The
             Printer Handler for output.





4.2.2.2  P̲R̲O̲P̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲.̲

         The software structure of PROP is shown in Fig 4.2.2.2-1
         (call structure).

         A functional description of each module is given in
         sec. 4.2.2.4.

         PROP consists of four main parts:

         1)  VPCO command processing - down by ANALYSE ̲UPCO
             ̲
             CMD,

         2)  Cansellation of outstanding IO calls - done by
             CANCEL ̲OUTSTANDING ̲IO ̲S,

         3)  IO completion processing - done by PROC ̲IO ̲CC,

         4)  Fetching, conversion, formatting and output of
             data - done by DATA ̲CONVERSION ̲OUTPUT and underlying
             modules.






          Fig. 4.2.2.2-1 P̲R̲O̲P̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲



4.2.2.3  D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲








                    Fig 4.2.2.3-1 - 3


4.2.2.4  P̲R̲O̲P̲ ̲M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲



4.2.2.4.1    P̲R̲O̲P̲ ̲M̲A̲I̲N̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.2.4.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲

         PROP ̲MAIN contains the PROP ̲MAIN ̲LOOP.  It waits at
         Semaphore PRIS ̲S2, and takes appropriate actions upon
         reception of input items.

         The module is only called by the Coroutine Monitor.



4.2.2.4.1.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲

         a)  PROP ̲MAIN
         b)  PROP ̲MAIN (R6)

         R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

         R6 LINK                     (DEST)

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R0 - R7                     (DEST)

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲ ̲

         None 



4.2.2.4.1.3  ̲M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         N/A





4.2.2.4.1.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲s̲

         D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

         Ref. PRT ̲DATA



4.2.2.4.1.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

         In the MAIN ̲LOOP, it is checked whether the arrived
         items are legal or not.

         All legal UPCO Commands are executed by the ANALYZE
         ̲UPCO ̲CMD module while IO Completions are processed
         by PROC ̲IO ̲CC.


4.2.2.4.2  ̲A̲N̲A̲L̲Y̲S̲E̲ ̲U̲P̲C̲O̲ ̲C̲M̲D̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲t̲a̲i̲o̲n̲



4.2.2.4.2.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ 

         The Module analyses UPCO-Commands received via PRIS-S2
         and executes them.



4.2.2.4.2.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         a)  ANALYZE ̲UPCO ̲CMD 
         b)  ANALYZE ̲UPCO ̲CMD  (R6)

         R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲ ̲

         R7 LINK                     (Dest.)

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         All Registers are Destroyed 

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         None 



4.2.2.4.2.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         N/A.



4.2.2.4.2.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲s̲

         D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

         Ref. PRT ̲DATA





4.2.2.4.2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

         The Commands are distinguished by the ITEM ̲NAME field
         of the actual operation. 

         The Module mainly operates on data shared with UPCO.



4.2.2.4.3    C̲A̲N̲C̲E̲L̲ ̲O̲U̲T̲S̲T̲A̲N̲D̲I̲N̲G̲ ̲I̲O̲ ̲S̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.2.4.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The module cancels pending system calls initiated by
         PROP.



4.2.2.4.3.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         a) CANCEL ̲OUTSTANDING IO ̲S
         b) CANCEL ̲OUTSTANDING ̲IO ̲S  (R6)

         R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲ ̲

         R6  LINK                    (Destr.)

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         All register are Destroyed.

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲ ̲

         None



4.2.2.4.3.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         N/A





4.2.2.4.3.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

         Ref. PRT ̲DATA



4.2.2.4.3.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

         The module checks OUTSTANDING ̲IO ̲S in order to determine
         whether a System IO Call is pending or not. If there
         is, it will be cancelled by using the coroutine Monitor
         Procedure

         C ̲CANCEL ̲SYSTEM ̲CALL. 



4.2.2.4.4    D̲A̲T̲A̲ ̲C̲O̲N̲V̲E̲R̲S̲I̲O̲N̲ ̲O̲U̲T̲P̲U̲T̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.2.4.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The module controls and executes the conversion, formatting
         and output of data. 



4.2.2.4.4.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲

         a) DATA ̲CONVERSION ̲OUTPUT 
         b) DATA ̲CONVERSION ̲OUTPUT  (R6)

         R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲ ̲

         R6  LINK                    (Destr.)

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         All registers are Destroyed.

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲ ̲

         None 





4.2.2.4.4.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲



4.2.2.4.4.3.1 R̲E̲A̲D̲ ̲M̲M̲I̲ ̲C̲T̲R̲L̲ ̲T̲A̲B̲L̲E̲ ̲

         Reads in (from TMP) the section of the table corresponding
         to CURRENT ̲FORMAT. 



4.2.2.4.4.3.2 S̲E̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲S̲T̲R̲U̲C̲T̲U̲R̲E̲

         Set buffer structure corresponding to MMI ̲CTRL ̲TABLE
         section.



4.2.2.4.4.3.3 ̲R̲E̲A̲D̲ ̲C̲I̲F̲ ̲F̲I̲E̲L̲D̲S̲

         Reads in the fields (from CIF) corresponding to buffer
         structure. 



4.2.2.4.4.3.4 I̲N̲S̲E̲R̲T̲ ̲R̲E̲P̲E̲A̲T̲E̲D̲ ̲L̲I̲N̲E̲S̲

         Informs the Printer Handler about lines to be repeated.



4.2.2.4.4.3.5 O̲U̲T̲P̲U̲T̲ ̲B̲U̲F̲F̲E̲R̲

         Calls Printer Format Handler (IOC) in order to format
         and output the data collected in I0C buffer.



2.2.4.4.3.6 R̲E̲A̲D̲ ̲S̲I̲N̲G̲L̲E̲ ̲C̲I̲F̲ ̲F̲I̲E̲L̲D̲

         Reads in a field from CIF (field currently referenced
         by I ̲PT ̲BASE). 



4.2.2.4.4.3.7 C̲H̲E̲C̲K̲ ̲O̲U̲T̲P̲U̲T̲ ̲C̲O̲N̲D̲I̲T̲I̲O̲N̲

         If convenient the procedure will take care off reading
         in new data from view or file while the Printer Handler
         is outputting data.


4.2.2.4.4.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

         Ref. PRT ̲DATA



4.2.2.4.4.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

         The processing of print items is split into two mainparts:

         A̲p̲l̲i̲c̲a̲t̲i̲o̲n̲ ̲R̲e̲p̲o̲r̲t̲ ̲P̲r̲i̲n̲t̲ is performed by the module
         APPL ̲
         REP ̲OUTP. The principle of this is that the first arriving
         report causes reservation of a whole page for report
         print by GET ̲FORMAT and INSERT ̲LINE ̲GROUP calls. Then
         the first report is printed by FIELDS ̲OUTPUT calls
         without issuing an OUTPUT ̲FORMAT call afterwards (which
         would cause the page to be shipped). Instead the next
         print item is awaited. If the next item is a report
         it will be printed on the same page etc. (until the
         page is full). If the next item was not a report then
         an OUTPUT ̲FORMAT call is issued in order to Ship Page
         and clean up before next item is processed.

         P̲r̲i̲n̲t̲ ̲o̲f̲ ̲o̲t̲h̲e̲r̲ ̲i̲t̲e̲m̲ ̲t̲y̲p̲e̲s̲ is controlled by DATA ̲CONVERSION
         ̲OUTPUT. Thise control states can occur: FORMAT ̲INITIAL,
         INITIAL and CONTINUED.

         F̲O̲R̲M̲A̲T̲ ̲I̲N̲I̲T̲I̲A̲L̲ ̲s̲t̲a̲t̲e̲ is indicated by that both booleans
         PRT ̲INIT ̲FORMAT and INITIAL are TRUE. It is actual
         when the first part of the first copy of an item is
         to be printed.

         Either the QEL data, the buffer data, the VIEW Administration
         field or the SYIE ̲TAB ̲FILE is read in.

         The Header and Trailer information is prepared.

         A GET ̲FORMAT call is issued.

         The MMI Table data for the current item and the administration
         data is worked through in order to determine the count's
         of repeatable fields and lines. Possible extra lines
         or line groups are inserted by INSERT ̲LINES or INSERT
         ̲LINE ̲GROUP call. All line insertions must take place
         before the first Fields Output call because of the
         page numbering.

         All other actions are the same as for INITIAL state.



         I̲N̲I̲T̲I̲A̲L̲ ̲s̲t̲a̲t̲e̲ is when INITIAL is true but PRT ̲INIT
         ̲FORMAT is false. This state is actual when the first
         part of an item is to be printed and the format and
         the administration data is already read in.

         First the buffer structure is set, the possible VIEW
         ̲or File date is read, the data is converted, moved
         and merged into the IOC-buffer that consists of IOC
         records, the FIELD ̲LIST is built up, the data is outputted
         by a FIELDS ̲OUTPUT call and at last additional data
         is read in if appropriate.

         C̲O̲N̲T̲I̲N̲U̲E̲D̲ ̲s̲t̲a̲t̲e̲ is indicated by that both PRT ̲INIT
         ̲
         FORMAT and INITIAL are FALSE.

         In this state the printing actions are continued after
         previous calls of FIELDS ̲OUTPUT. It is checked whether
         more data should be read in, if a new entry from the
         MMI ̲TABLE is needed or if the printing is to be finished
         by an OUTPUT ̲FORMAT call.
 …86…1         …02…   …02…   …02…   …02…                                       
    

DATA ̲CONVERSION ̲OUTPUT

 ITEM EQ APPLICATION ̲REPORT?  APPL ̲REP ̲OUTP(4.2.2.4.9)

 PREVIOUS ̲ITEM EQ APPLICATION ̲REPORT?  OUTPUT ̲FORMAT

 INITIAL EQ TRUE?  PROC ̲INITIAL(-2)

 END ̲OF ̲CIF ̲BUF EQ TRUE AND BUFFERS ̲SHARED=TRUE?

     CASE PRINT ̲ITEM ̲CATEGORY OF

        VIEW ̲TIME?  READ ̲SINGLE ̲CIF ̲FIELD(4.2.2.4.4.3.6)

        FILE ̲ITEM?  R ̲CONT ̲F ̲DAT(4.2.2.4.13.3.4)

     END

 END ̲OF ̲CIF ̲BUF EQ TRUE OR FIELD ̲LIST ̲FULL=TRUE

     OR END ̲OF ̲IOC ̲BUF EQ TRUE?

     CREATE ̲PRINT ̲BUFFERS(3.2.2.4.5)

     OUTPUT ̲BUFFER(4.2.2.4.4.3.5)

     CHECK ̲OUTPUT ̲CONDITION(4.2.2.4.4.3.7)

 END OF MMI ENTRY?

     CONT ̲FORMAT ̲ID EQ 0?    "more MMI ENTRIES?

        END ̲OF ̲ITEM FLAG:=TRUE

        OUTPUT ̲FORMAT

     CURRENT ̲FORMAT:=CONT ̲FORMAT ̲ID

     READ ̲MMI ̲CTRL ̲TABLE(4.2.2.4.4.3.1)

     SET ̲BUFFER ̲STRUCTURE(4.2.2.4.4.3.2)

     CASE ̲PRINT ̲ITEM ̲CATEGORY OR

        VIEW ̲ITEM? ̲READ ̲CIF ̲FIELDS(4.2.2.4.4.3.3)

        FILE ̲ITEM? ̲R ̲FIRST ̲F ̲DAT(4.2.2.4.13.3.3)

     END



     SET ̲MEMORY ̲ADDR(4.2.2.6.2)

     CREATE ̲PRINT ̲BUFFERS(4.2.2.4.5)

     OUTPUT ̲BUFFER(4.2.2.4.4.3.5)

     CHECK ̲OUTPUT ̲CONDITION(4.2.2.4.4.3.7)

 ERROR ̲REP(4.1.5.1)

END

                FIG 4.2.2.4.4.5-1




PROC ̲INITIAL

 RESET FLAGS

 READ ̲MMI ̲CTRL ̲TABLE(4.2.2.4.4.3.1)

 PRT ̲INIT ̲FORMAT EQ TRUE?

     CASE PRINT ̲ITEM ̲CATEGORY OF

         QEL ̲ITEM? COPY QEL ̲ATTR TO ADM1-BUF

         BUFFER ̲ITEM? COPY BUFFER DATA TO ADM1-BUF

         VIEW ̲ITEM? READ ̲VIEW ̲ADM(4.2.2.4.10)

         FILE ̲ITEM? READ ̲FILE ̲ADM(4.2.2.4.13.3.1)

     END

     PREPARE ̲HEADER ̲TRAILER ̲BUFFER(4.2.2.4.8)

     GET FORMAT

     INSERT ̲REPEATED ̲LINES(4.2.2.4.4.3.4)

     PRT ̲INIT ̲FORMAT:=FALSE

 SET ̲BUFFER STRUCTURE(4.2.2.4.4.3.2)

 CASE PRINT ̲ITEM ̲CATEGORY OR

     VIEW ̲ITEM? READ ̲CIF ̲FIELDS(4.2.2.4.4.3.3)

     FILE ̲ITEM? R ̲FIRST ̲F ̲DAT (4.2.2.4.13.3.3)

 END

 SET ̲MEMORY ̲ADDR(4.2.2.6.2)

 CREATE ̲PRINT ̲BUFFERS(4.2.2.4.5)

 OUTPUT ̲BUFFER(4.2.2.4.4.3.5)

 CHECK ̲OUTPUT ̲CONDITION(4.2.2.4.4.3.7)

 INITIAL:=FALSE

END

                FIG 4.2.2.4.4.5-2


4.2.2.4.5    C̲R̲E̲A̲T̲E̲ ̲P̲R̲I̲N̲T̲ ̲B̲U̲F̲F̲E̲R̲S̲



4.2.2.4.5.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Creates FIELD LIST and IOC record list for use by the
         PRINTER ̲FORMAT ̲HANDLER (IOC) for output of data. The
         processing is controlled via parameters from the PRT
         ̲
         MMI ̲TABLE.



4.2.2.4.5.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         a)  CREATE ̲PRINT ̲BUFFERS
         b)  CREATE ̲PRINT ̲BUFFERS(R6);

         R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

         R6  LINK    Destroyed

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         All registers are destroyed

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         NONE



4.2.2.4.5.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲



4.2.2.4.5.3.1 C̲R̲E̲A̲T̲E̲ ̲P̲R̲I̲N̲T̲ ̲R̲E̲C̲

         Creates an IOC record and moves it to the IOC buffer.
         Used for fixed fields. Also a field list element is
         created.





4.2.2.4.5.3.2 F̲I̲E̲L̲D̲ ̲G̲R̲O̲U̲P̲ ̲R̲E̲P̲E̲A̲T̲

         Creates IOC records for a Field Group (using CREATE
         ̲
         PRINT ̲REC)



4.2.2.4.5.3.3 C̲R̲E̲A̲T̲E̲ ̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲E̲L̲E̲M̲E̲N̲T̲

         Creates a single field list element. Used for Buffers
         Shared.



4.2.2.4.5.3.4 P̲R̲O̲D̲U̲C̲E̲ ̲O̲U̲T̲P̲U̲T̲ ̲E̲L̲E̲M̲E̲N̲T̲

         For variable field it checks for cinditions 'FIELD
         ̲LIST ̲FULL, END ̲OF ̲IOC ̲BUF and END ̲OF ̲CIF ̲FIELD'. If
         none of these are true then the relevant of the three
         procedures above is called. Else is returned to the
         mainprocedure.

4.2.2.4.5.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. PRT ̲DATA



4.2.2.4.5.5 D̲e̲s̲i̲g̲n̲

         The main procedure consists of two Loops. The outer
         loop runs until the end of current MMI. Table entry
         has been reached. The inner loop runs on the incurration
         counter. It calls PRODUCE ̲OUTPUT ̲ELEM(4.2.2.4.5.3.4).
         Both loops can be exited and reentered if one of the
         three following conditions occur:

         FIELD ̲LIST ̲FULL, END ̲OF ̲IOC ̲BUF,
         END ̲OF ̲CIF ̲BUF.



4.2.2.4.6    E̲X̲E̲C̲ ̲C̲O̲N̲V̲ ̲P̲R̲C̲



4.2.2.4.6.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         The module determine and executes the appropriate Data
         Conversion Procedures.



4.2.2.4.6.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         EXEC ̲CONV ̲PRC
         RO; "C K Procedure Identifier: DISPLAY ̲PROCEDURE ̲TYPE

         R1; "C K Input item pointer
         R2; "C K Input byte offset
         R3; "C R Item length
         R4; "C K Output item pointer
         R5; "C K Output byte offset
         R6; "C D LINK

         R7 is destroyed.



4.2.2.4.6.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         N/A



4.2.2.4.6.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. PRT ̲DATA



4.2.2.4.6.5 D̲e̲s̲i̲g̲n̲

         Ref. Code



4.2.2.4.7    P̲R̲O̲C̲ ̲I̲O̲ ̲C̲C̲



4.2.2.4.7.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         This module processes IO ̲CC's received via PRIS ̲S2.

         It checks for possible error conditions and takes the
         appropriate action i.e. reporting to UPCO, calling
         DATA ̲
         CONVERSION ̲OUTPUT or dumping error UNIUS data before
         calling SEND ̲GARBLE.



4.2.2.4.7.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         a)  PROC ̲IO ̲CC
         b)  PROC ̲IO ̲CC(R6)

         R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R6  LINK               Destroyed

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         All Registers are destroyed

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         NONE



4.2.2.4.7.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         N/A



4.2.2.4.7.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. PRT ̲DATA



4.2.2.4.7.5 D̲e̲s̲i̲g̲n̲

         Ref. Code



4.2.2.4.8    P̲R̲E̲P̲A̲R̲E̲ ̲H̲E̲A̲D̲E̲R̲ ̲T̲R̲A̲I̲L̲E̲R̲ ̲B̲U̲F̲F̲E̲R̲S̲



4.2.2.4.8.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         The module sets up the buffer lists and records used
         for document accounting (i.e. page-header and-trailer
         information).





4.2.2.4.8.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         a)  PREPARE ̲HEADER ̲TRAILER ̲BUFFERS
         b)  PREPARE ̲HEADER ̲TRAILER ̲BUFFERS(R6);

         R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R6  LINK

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         All registers are destroyed.

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         NONE



4.2.2.4.8.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲



4.2.2.4.8.3.1 G̲E̲N̲ ̲S̲T̲P̲ ̲H̲E̲A̲D̲

         The procedure generates additional STP header information.



4.2.2.4.8.3.2 A̲D̲D̲ ̲H̲E̲A̲D̲ ̲I̲N̲F̲O̲

         The procedure generates the additional header lines
         that are appropriate for the current print item type.



4.2.2.4.8.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. PRT ̲DATA



4.2.2.4.8.5 D̲e̲s̲i̲g̲n̲

         Ref. Code.





4.2.2.4.9    A̲P̲P̲L̲ ̲R̲E̲P̲ ̲O̲U̲T̲P̲



4.2.2.4.9.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         This module takes care of converting and outputting
         application reports (technical error reports are treated
         by DATA ̲CONVERSION ̲OUTPUT).

         The module reads the buffer data, fetches the report
         text and the report serial no, coverts the report time
         into ASCII, creates field list and IOC buffer. It works
         independently of the MMI ̲CONTROL ̲TABLE.

         The module also performs a SEND ̲CONTROL system call
         in order to output a BELL.

         Furtherrmore it performs page control in order to faciliate
         printout of more than one report per page.



4.2.2.4.9.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲:

         APPL ̲REP ̲OUTP(R6);
         All registers are destroyed.



4.2.2.4.9.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         N/A



4.2.2.4.9.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. PRT ̲DATA



4.2.2.4.9.5 D̲e̲s̲i̲g̲n̲

         Ref. Fig. 4.2.2.4.9-1 and Code.






APPL ̲REP ̲OUTP

 PRT ̲INIT ̲FORMAT EQ TRUE?

     PRT ̲INIT ̲FORMAT:=FALSE

     PH ̲INIT ̲SEND ̲CONTROL(RING ̲THE ̲BELL)

     WAS PREVIOUS ITEM NOT AN APPLICATION ̲REPORT?

         PREPARE ̲HEADER ̲TRAILER ̲BUFFERS(4.2.2.4.8)

         PH ̲GET ̲FORMAT(CURRENT FORMAT)

         PH ̲INSERT ̲LINE ̲GROUP "so that page can be filled
         up with
                                  Reports"
             "Prepare data for output while waiting
             for

     READ ̲BUFFER "GET REPORT DATA

     GET ̲GSN(REPORT ̲GSN)

     CONVERT ̲TIME(REPORT ̲TIME)

     GET REPORT TEXT FROM RESPONSE TEXT TABLE

     MOVE REPORT DATA

     INITIATE IOC HEADER

 INITIAL EQ TRUE?

     INITIAL:=FALSE

     PH ̲INIT ̲FIELDS ̲OUTPUT"Output Report

 END OF PAGE?

     END ̲OF ̲ITEM ̲FLAG:=TRUE

     PH ̲INIT ̲OUTPUT ̲FORMAT

 REP ̲TO ̲UPCO(PRINT ̲COMPLETE ̲REP)

END

                 FIG 4.2.2.4.9-1



4.2.2.4.10   R̲E̲A̲D̲ ̲V̲I̲E̲W̲ ̲A̲D̲M̲



4.2.2.4.10.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         The module determines the item type and reads the appropriate
         administration data.



4.2.2.4.10.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         a)  READ ̲VIEW ̲ADM
         b)  READ ̲VIEW ̲ADM(R6);

         All registers are destroyed.



4.2.2.4.10.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲



4.2.2.4.10.3.1 R̲E̲A̲D̲ ̲A̲D̲M̲ ̲F̲I̲E̲L̲D̲

         Reads a specified number of words from the start of
         CIF FIELD NO 1.



4.2.2.4.20.3.2 R̲E̲A̲D̲ ̲G̲A̲R̲B̲L̲E̲ ̲A̲D̲M̲

         Reads the EMF ADM field (field 9) and stores it in
         ADM1 ̲
         BUF.



4.2.2.4.10.3.3 R̲E̲A̲D̲ ̲C̲I̲F̲ ̲A̲D̲M̲

         Reads the administration data from CIF field 1 related
         to transmission - and system - catalogue.





4.2.2.4.10.3.4 R̲ ̲S̲T̲A̲T̲U̲S̲ ̲A̲D̲M̲

         The procedure reads the adm-data related to STATUS
         ̲PRINT and stores it in ADM1 ̲BUF for OUTGOING ̲MSG ̲STATUS
         and OUTGOING ̲MSG ̲MIDNIGHT ̲STATUS additionally relevant
         item pointers are calculated and stored in ADM1 ̲BUF.



4.2.2.4.10.3.5 R̲E̲A̲D̲ ̲L̲O̲G̲ ̲A̲D̲M̲

         Reads the LOG ̲CIF adm. data.



4.2.2.4.10.3.6 R̲E̲A̲D̲ ̲S̲T̲P̲ ̲A̲D̲M̲

         Reads the statistics CIF adm. data.



4.2.2.4.10.3.7 R̲E̲A̲D̲ ̲T̲E̲R̲ ̲A̲D̲M̲

         Reads the administration data of a TECHNICAL ̲ERROR
         ̲
         REPORT.



4.2.2.4.10.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. PRT ̲DATA



4.2.2.4.10.5 D̲e̲s̲i̲g̲n̲

         Ref. CODE



4.2.2.4.11   R̲E̲A̲D̲ ̲I̲M̲F̲ ̲A̲D̲M̲



4.2.2.4.11.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The modules reads the IMF ̲DESCRIPTOR the PARAMETER
         ̲INFO and the FL5 ̲DYNAMIC from CIF FIELD 1 (ADM field)
         of the current view. For some SUPERVISORY ̲PRINT items
         additional adm. data are read and/or calculated. Also
         the relevant TRANSACTION ̲ACCOUNTING data are stored.





4.2.2.4.11.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         a) READ ̲IMF ̲ADM
         b) READ ̲IMF ̲ADM(R6);

         All registers are destroyed.



4.2.2.4.11.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲



4.2.2.4.11.3.1 P̲R̲O̲V̲I̲D̲E̲ ̲A̲D̲D̲ ̲A̲L̲T̲D̲I̲ ̲R̲E̲D̲I̲S̲ ̲A̲D̲M̲ ̲D̲A̲T̲A̲ ̲(̲R̲6̲)̲

         The procedure provides the adtional ADM data needed
         to carry out print of an ALTERNATIVE ̲DISTRIBUTION ̲INSTRUCTION
         or a REDISTRIBUTION ̲INSTRUCTION.

         It fetches counters from field 7. which are stored
         in ADM1 ̲BUD right after PARAMETER ̲INFO instead of the
         FL5 ̲
         DYNAMIC characters.



4.2.2.4.11.3.2 P̲R̲O̲V̲I̲D̲E̲ ̲A̲D̲D̲ ̲R̲I̲ ̲A̲S̲S̲ ̲A̲D̲M̲ ̲D̲A̲T̲A̲

         The procedure provides the adtional ADM data needed
         to carry out print of an RI ̲ASSINGMENT ̲INSTRUCTION.
         It fetches counters from the RI ̲ASSIGNMENT ̲DESCRIPTOR
         in the RI ̲ASSIGNMENT ̲FIELD (Field 8), calculates pointers
         and counters which are stored in ADM1 ̲BUF right after
         PARAMETER ̲INFO instead of the FL5 ̲DYNAMIC characters.



4.2.2.4.11.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. PRT ̲DATA



4.2.2.4.11.5 D̲e̲s̲i̲g̲n̲

         Ref. CODE





4.2.2.4.12   G̲E̲N̲ ̲L̲O̲G̲ ̲H̲E̲A̲D̲



4.2.2.4.12.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The module generates additional LOG header information
         - both for COLLECT ̲CIF's and TRACE CIF's.



4.2.2.4.12.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         GEN ̲LOG ̲HEAD
             (R3;"-R NO ̲OF ̲HEADER ̲LINES
              R4;"CR POINTER TO CURRENT ̲BLE
             R6);"CD LINK

4.2.2.4.12.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲



4.2.2.4.12.3.1 G̲E̲N̲ ̲T̲R̲A̲C̲E̲ ̲H̲E̲A̲D̲

         The procedure generates special logtrace header info.



4.2.2.4.12.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. PRT ̲DATA



4.2.2.4.12.5 D̲e̲s̲i̲g̲n̲

         Ref. CODE



4.2.2.4.13   F̲I̲L̲E̲ ̲A̲C̲C̲E̲S̲S̲



4.2.2.4.13.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The module consists of four procedures used when processing
         FILE ̲ITEMS with expection of SYIE ̲TAB ̲HEAD that also
         process VOLUME ̲LIST which is a VIEW ̲ITEM.





4.2.2.4.13.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         N/A



4.2.2.4.13.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲



4.2.2.4.13.3.1 S̲Y̲I̲E̲ ̲T̲A̲B̲ ̲H̲E̲A̲D̲

         (R3;"-R NO ̲OF ̲HEADER ̲LINES
          R4;"CR POINTER TO CURRENT BLE
         R6);"CD LINK

         The procedure adds the relevant header line(s) for
         SYSTEM ̲INFO ̲TABLE ̲PRINT item (incl. VOLUME ̲LIST)



4.2.2.4.13.3.2 R̲E̲A̲D̲ ̲F̲I̲L̲E̲ ̲D̲A̲T̲

         (R0;R1; "C BYTE ̲ADDRESS IN LOGICAL FIELD OF FILE -LONG
                 "R BYTE ̲ADDRESS IN LOGICAL FIELD OF FILE -UPDATED
          R2   ; "C NUMBER OF BYTES TO BE READ
                 "R NUMBER OF BYTES ACTUALLY READ
          R3   ; "C K POINTER TO OUTPUT BUFFER
          R4   ; "C K LOGICAL FIELD NUMBER
                 "
                 " SFN - 1 : SYIE ̲TAB ̲ADM
                 " SFN + 0 : F ̲ADDR1 (LOGICAL FIELD NO 1)
                 " SFN + 1 : F ̲ADDR2 (LOGICAL FIELD NO 2)
                 " SFN + 2 : F ̲ADDR3 (LOGICAL FIELD NO 3)

          R6)  ; " C D LINK

          R5 and R7 are kept



4.2.2.4.13.3.3 R̲E̲A̲D̲ ̲F̲I̲L̲E̲ ̲A̲D̲M̲(̲R̲6̲)̲;

         The procedure reads the administration data of the
         SYIE ̲
         TAB ̲FILE and stores it in ADM1 ̲BUF.





4.2.2.4.1.3.3.4 R̲ ̲F̲I̲R̲S̲T̲ ̲F̲ ̲D̲A̲T̲(̲R̲6̲)̲;

         The procedure reads data from the logical fields of
         the SYIE ̲TAB ̲FILE - it corresponds to READ ̲CIF ̲FIELDS
         FOR VIEW ̲ITEMS



4.2.2.4.13.3.5 R̲ ̲C̲O̲N̲T̲ ̲F̲ ̲D̲A̲T̲ ̲(̲R̲6̲)̲;

         The procedure reads data from a logical field in the
         SYIE ̲TAB ̲FILE - it corresponds to READ ̲SINGLE ̲CIF ̲FIELD
         for VIEW ̲ITEMS.



4.2.2.4.13.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. SPR ̲PRT ̲ADM ̲PREF,
              SPR ̲PRT ̲TAB ̲PREF and
              PRT ̲DATA.



4.2.2.4.13.5 D̲e̲s̲i̲g̲n̲

         Ref. Code



4.2.2.4.14 R̲E̲P̲ ̲B̲U̲F̲ ̲O̲F̲F̲S̲

         Ref. Code



4.2.2.5  C̲O̲M̲M̲O̲N̲ ̲P̲R̲O̲P̲ ̲D̲a̲t̲a̲

         Ref. PRT ̲DATA



4.2.2.6  C̲o̲m̲m̲o̲n̲ ̲P̲R̲O̲P̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲



4.2.2.6.1  ̲R̲E̲P̲ ̲T̲O̲ ̲U̲P̲C̲O̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲





4.2.2.6.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ ̲

         The procedure sends the specified report to UPCO. 



4.2.2.6.1.2 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         a) REP ̲TO ̲UPCO (REP ̲ID:PRIS ̲OP ̲ITEM ̲NAME ̲TYPE,
            OP ̲DATA : INTEGER)

         b) REP ̲TO ̲UPCO (Rl, R2 ,R6) 

         R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲ ̲

         R1      REP-ID                                          (destr)
                                                                 
         R2      OP ̲DATA
         R6      LINK                                            (destr)
                                                                 

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲ ̲

         All registers are DESTROYED 

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲ ̲

         NONE



4.2.2.6.1.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲s̲ ̲

         D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲:̲

         Ref. PRT ̲DATA



4.2.2.6.1.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲ ̲

         Ref. Code


4.2.2.6.2 S̲E̲T̲ ̲M̲E̲M̲O̲R̲Y̲ ̲A̲D̲D̲R̲



4.2.2.6.2.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         The procedure sets up pointers and counters used by
         CREATE ̲PRINT ̲BUFFERS for conversion and generations
         of print data. The procedure bases its work on data
         from the PRT ̲MMI ̲TABLE and on Administration data of
         the current item.



4.2.2.6.2.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲

         SET ̲MEMORY ̲ADDR (R6); "C D LINK
         All registers are destroyed.



4.2.2.6.2.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. PRT ̲DATA



4.2.2.6.2.4 D̲e̲s̲i̲g̲n̲

         Ref. Code



4.2.2.6.3 C̲L̲E̲A̲N̲ ̲U̲P̲



4.2.2.6.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         The procedure fills up ADM1 ̲BUF and GEN ̲BUF with 0'es.



4.2.2.6.3.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲

         CLEAN ̲UP (R6); " C D LINK
         All registers are destroyed.





4.2.2.6.3.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. PRT ̲DATA



4.2.2.6.3.4 D̲e̲s̲i̲g̲n̲

         Ref. CODE



4.2.2.6.4 S̲T̲A̲C̲K̲ ̲R̲E̲G̲S̲



4.2.2.6.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         The procedure stores the values of R0 - R5 and R7 in
         PROP ̲AUX ̲STACK. Therefore the value of R6 must be transferred
         to R7 before call of this procedure, if it is to be
         stored.



4.2.2.6.4.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲

         STACK ̲REGS  
                     (R0 ; "C K
                      R1 ; "C K
                      R2 ; "C K
                      R3 ; "C K
                      R4 ; "C K
                      R5 ; "C K
                      R7 ; "C K
                      R6); "C D LINK



4.2.2.6.4.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. PRT ̲DATA



4.2.2.6.4.4 D̲e̲s̲i̲g̲n̲

         Ref. Code





4.2.2.6.5    U̲N̲S̲T̲A̲C̲K̲ ̲R̲E̲G̲S̲



4.2.2.6.5.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The procedure restores the register values which latest
         has been stacked on PROD ̲AUX ̲STACK by STACK ̲REGS.



4.2.2.6.5.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲

         UNSTACK ̲REGS
                     (R0 ; - R
                      R1 ; - R
                      R2 ; - R
                      R3 ; - R
                      R4 ; - R
                      R5 ; - R
                      R7 ; - R
                      R6); C D LINK



4.2.2.6.5.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. PRT ̲DATA



4.2.2.6.5.4 D̲e̲s̲i̲g̲n̲

         Ref. code.



4.2.2.6.6    M̲O̲D̲ ̲S̲T̲A̲C̲K̲ ̲V̲A̲L̲



4.2.2.6.6.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         The procedure stores the value of specified register
         in the stack at the location where the register was
         latest stored.

         Ref. 4.2.2.6.4 STACK ̲REGS.





4.2.2.6.6.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲

         MOD ̲STACK ̲VAL

         (REGISTER ̲NO:INTEGER; "Number of register to be stored"
         (R6 is not applicable).
                 R0 ; "-/C K
                 R1 ; "-/C K
                 R2 ; "-/C K
                 R3 ; "-/C K
                 R4 ; "-/C K
                 R5 ; "-/C K
                 R7 ; "-/C K
                 R6); "C   D



4.2.2.6.6.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. PRT ̲DATA



4.2.2.6.6.4 D̲e̲s̲i̲g̲n̲

         Ref. Code



4.2.2.6.7    G̲E̲T̲ ̲S̲T̲A̲C̲K̲ ̲V̲A̲L̲



4.2.2.6.7.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         The procedure restores the latest stacked value of
         the specified register.



4.2.2.6.7.2 I̲n̲t̲e̲r̲a̲f̲c̲e̲

         GET ̲STACK ̲VAL

         (REGISTER ̲NO:INTEGER; "Number of register to be 
                                restored" (R6 is not applicable).



             R0 ; "- K/R
             R1 ; "- K/R
             R2 ; "- K/R
             R3 ; "- K/R
             R4 ; "- K/R
             R5 ; "- K/R
             R7 ; "- K/R
             R6); "C   D



4.2.2.6.7.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. PRT ̲DATA



4.2.2.6.7.4 D̲e̲s̲i̲g̲n̲

         Ref. Code



4.2.2.6.8 C̲o̲n̲v̲e̲r̲s̲i̲o̲n̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲



4.2.2.6.8.1 E̲x̲p̲l̲a̲n̲a̲t̲i̲o̲n̲

         The conversion procedures are used by CREATE ̲PRINT
         ̲
         BUFFERS (CREATE ̲PRINT ̲REC) for conversion, generation
         and moving of data and putting it into IOC records
         which are used for output to the Printer Handler. Most
         of the procedures are called via EXEC ̲CONV ̲PRC but
         some of them are used by other conversion procedures
         as helping procedures.

         The procedures are kept in SWELL submodules in PROP
         ̲
         COMM ̲PRC ̲D.





4.2.2.6.8.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The procedures have a common interface:

         PROCEDURE ̲NAME (R0 ; - K
                         R1 ; C K Input Pointer
                         R2 ; C K Input byte offset
                         R3 ; C R Item length
                         R4 ; C R Output pointer
                         R5 ; C R Output byte offset
                         R7 ; - D not used by all procedings
                         R6); C D LINK



4.2.2.6.8.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Ref. PRT ̲DATA



4.2.2.6.8.4 D̲e̲s̲i̲g̲n̲

         Ref. Code



4.2.2.7  S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲



4.2.2.7.1    U̲P̲C̲O̲ ̲P̲R̲O̲P̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         Ref. sec. 4.1.7.3.2.1



4.2.2.7.2    P̲R̲O̲P̲ ̲U̲P̲C̲O̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲ 

         Ref. sec. 4.1.7.3.2.2



4.3      M̲E̲M̲O̲R̲Y̲ ̲L̲A̲Y̲O̲U̲T̲

         Ref. PRT ̲COPS.PL




                        A̲P̲P̲E̲N̲D̲I̲X̲ ̲A̲


                        P̲R̲T̲ ̲T̲A̲B̲L̲E̲S̲



A1       P̲R̲I̲N̲T̲ ̲A̲C̲C̲O̲U̲N̲T̲I̲N̲G̲ ̲T̲A̲B̲L̲E̲

         This table is used to provide the printer process with
         some necessary parameters to execute printout of an
         item.

         The primary key is a NUMERICAL ̲FORMAT ̲ID (Integer)
         which is determined by DETERMINE ̲PRINT ̲ITEM ̲CATEGORY.
         The parameters provided are:

             FORMAT ̲ID : FORMAT ̲ID ̲TYPE
             T ̲DOC ̲ACC ̲APP ̲FLAS,
             T ̲TRANSAC ̲ACC ̲FLAG : BOOLEAN
             T ̲CLASS            : CLASSIFICATION ̲TYPE

         FORMAT ̲ID is used to get the correct format from the
         Printer Handler and to get the first entry from the
         PRT ̲
         MMI ̲TABLE, T ̲DOC ̲ACC ̲APP ̲FLAG and T ̲TRANSAC ̲ACC ̲FLAG
         are used to determine whether DOCUMENT ̲ACCOUNTING or
         TRANSACTION ̲ACCOUNTING should be carried out or not.

         The source data for the table is placed in PRT.D *
         PRT ̲ACC ̲TAB.D * PRT ̲ACC ̲BX.S where X stands for the
         main release of the printer. The table is included
         in OTHER ̲
         TABLES .



A2       P̲R̲T̲ ̲M̲M̲I̲ ̲T̲A̲B̲L̲E̲



A2.1     O̲v̲e̲r̲a̲l̲l̲ ̲d̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         The table is a part of OTHER ̲TABLES and is used by
         the printer process to control conversion and output
         of data. One or several entries exist for every item
         type to be printed exept for APPLICATION ̲REPORTS which
         are processed exclusively under code control.

         Each entry contains information about the input and
         output buffer sizes to be used, how many different
         fields that are to be processed, information about
         field structure (single fields, repeatable fields,
         field groups - line groups  records ).



         A detailed description of the entry structure will
         follow later in this appendix.

         All files pertinent to the table, except prefixes,
         are in PRT.D * PRT ̲MMI ̲TAB.D. For each entry there
         exist a source file named 'entry name' followed by
         .B3 or .B4. The small source files are sourced in by
         two 'main' source files DRT ̲MMI ̲B4A.S and PRT ̲MMI ̲B4B.S
         when these are compiled. Two separate files are used
         because the table is to big to be contained in one
         variable when using INIT statements. After compilation
         the two link files PRT ̲MMI ̲B4A.L and PRTMMI ̲B4B.L are
         used for the database generation-refer document concerning
         this.



A2.2     D̲e̲t̲a̲i̲l̲e̲d̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Below follows the type declarations used:

         CIF ̲BUF ̲ARRAY ̲TYPE

                 = ARRAY  SMALLEST ̲FIELD ̲NO..LARGEST ̲FIELD ̲NO
                   OF INTEGER ;

         BUF ̲CTRL ̲REC ̲TYPE               =
             RECORD
                 FIELD ̲LIST ̲LENGTH       ,
                 IOC ̲BUFFER ̲LENGTH       : INTEGER ;
                 CIF ̲BUF ̲LEN             : CIF ̲BUF ̲LEN ̲ARRAY
                                         ̲TYPE
             END ;

         PRT ̲MMI ̲HEAD ̲REC ̲TYPE =
             RECORD
                 FORMAT ̲ID,
                 CONT ̲FORMAT ̲ID: ARRAY 1..NO ̲OF ̲FORMAT ̲ID ̲CHAR
                                 OF CHAR "FORMAT ̲ID ̲TYPE";
                 DUM ̲BUF ̲C ̲GRP,
                 OUT ̲BUF ̲C ̲GRP: BUF ̲CTRL ̲REC ̲TYPE;
                 DUMMY                    : INTEGER ;
                 CIF ̲ACCESS:              BOOLEAN;
                 MMI ̲REC ̲COUNT:           INTEGER
             END;



         PRT ̲MMI ̲ITEM ̲TYPE                       = (FIX,VARIABLE)
                                                 ;

         PRT ̲MMI ̲CTRL ̲REC                    =
             RECORD
                 LINE ̲GROUP ̲COUNT ̲NO,
                 LINE ̲NO,
                 INC ̲COUNT,
                 FIELD ̲NO,
                 FIELD ̲COUNT,
                 FIELD ̲GROUP ̲COUNT,
                 FIELD ̲SIZE,
                 CIF ̲FIELD ̲NO,
                 ITEM ̲SIZE                   : INTEGER ;
                 ITEM ̲TYPE                   : PRT ̲MMI ̲ITEM
                                             ̲TYPE;
                 ITEM ̲PT ̲BASE,
                 DATA ̲ITEM ̲PT,
                 ITEM ̲COUNT ̲BASE,
                 ITEM ̲COUNT ̲PT               : INTEGER ;
                 DISPLAY ̲PROCEDURE           : INTEGER
                                     "DISPLAY ̲PROCEDURE ̲TYPE";
                 SAVE ̲I ̲PT ̲BYTE ̲CNT,
                 ITEM ̲RECORD ̲SIZE
                                             : INTEGER
             END ;
             CONST
                 NO ̲OF ̲CONTROL ̲RECORDS ̲PER ̲ENTRY ̲MINUS ̲ONE =
                 15 ;
             TYPE
             PRT ̲MMI ̲ENTRY =
                 RECORD
                     HEAD        : PRT ̲MMI ̲HEAD ̲REC ̲TYPE ;
                     REC : ARRAY
                         0..NO ̲OF ̲CONTROL ̲RECORDS ̲PER ̲ENTRY
                         ̲MINUS ̲ONE
                         OF PRT ̲MMI ̲CTRL ̲REC
             END ;


         H̲e̲a̲d̲e̲r̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         F̲O̲R̲M̲A̲T̲ ̲I̲D̲   primary key of the entry.

         C̲O̲N̲T̲ ̲F̲O̲R̲M̲A̲T̲ ̲I̲D̲ contains the ID of the next table entry
         
                     used for processing of current item. If
                     current entry is the last one, the first
                     two bytes must be set to 0.

         D̲U̲M̲ ̲B̲U̲F̲ ̲C̲ ̲G̲R̲P̲ is not used (from the time where the
                     VDU's used MMI ̲TABLES).



         O̲U̲T̲ ̲B̲U̲F̲ ̲C̲ ̲G̲R̲P̲ used for determining buffer sizes.

                 F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲L̲E̲N̲G̲T̲H̲ specifies the size of the
                 FIELD ̲LIST buffer in WORDS. One FIELD ̲LIST
                 ̲
                 ELEMENT uses 3 words. Add always 1 WORD to
                 the calculated size.

                 I̲O̲C̲ ̲B̲U̲F̲F̲E̲R̲ ̲L̲E̲N̲G̲T̲H̲ specifies the size in words
                 of the buffer used for containing IOC ̲RECORD's
                 that are to be delivered to the PRINTER ̲HANDLER
                 for output. If BUFFER ̲SHARED is used (i.e.
                 when the input data consists of IOC ̲RECORD's
                 that are placed directly after each other with
                 no gap between them. Therefore they need neither
                 conversion nor to be moved before output e.g.
                 the TEXT ̲FIELD of IMF and EMF). BIT ̲15 of the
                 field must be set. The field must also contain
                 the number of the CIF ̲BUFFER (index used in
                 CIF ̲
                 BUF ̲LEN) that is used as shared buffer.

                 C̲I̲F̲ ̲B̲U̲F̲ ̲L̲E̲N̲ is an array containing the word
                 sizes of the CIF ̲BUFFER's. Each CIF ̲BUFFER
                 is dedicated to one CIF ̲FIELD: The first buffer
                 is dedicated to CIF ̲FIELD 2 (e.g. IMF ̲SCD field),
                 the second buffer is dedicated to CIF ̲FIELD
                 3 (e.g. IMF ̲PLA field) etc. Due to the way
                 MMS and the current version of PRT works it
                 is only allowed to use one CIF ̲BUFFER per MMI
                 TABLE ENTRY.

         D̲U̲M̲M̲Y̲   not used.

         C̲I̲F̲ ̲A̲C̲C̲E̲S̲S̲ not used.

         M̲M̲I̲ ̲R̲E̲C̲ ̲C̲O̲U̲N̲T̲ specifies the number of used CTRL ̲REC's
                 following the MMI ̲HEAD ̲REC.

         C̲o̲n̲t̲r̲o̲l̲ ̲R̲e̲c̲o̲r̲d̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

                 L̲I̲N̲E̲ ̲G̲R̲O̲U̲P̲ ̲C̲O̲U̲N̲T̲ ̲N̲O̲ is used to specify the
                 number of fields (Control Records) used in
                 - and the number of - the Line Group. The upper
                 byte contains the count (FIELD ̲COUNT must be
                 set to the same number) and the lower byte
                 contains the field group number. These values
                 must be repeated in all control records belonging
                 to the group. The value of the group number
                 must be determined from the format files pertinent
                 to the format in question. If line group repeat
                 is not actual the field must be set to zero.



                 L̲I̲N̲E̲ ̲N̲O̲ specifies the line number as specified
                 by the PRINT FORMAT GENERATOR is the 'P'-file
                 of the actual format. All lines have fixed
                 line numbers - even if they are repeatable.

                 I̲N̲C̲ ̲C̲O̲U̲N̲T̲ specifies the number of times the
                 current line can be repeated. The number can
                 be determined from the STATUS or the print
                 file of the current format. If zero is specified
                 it means that the number of incarnations is
                 variable. The line must be repeatabled (groups
                 are always repeatable) and the process determines
                 the needed no. of incarnations to be inserted
                 for each item and inserts them by using PH
                 ̲INSERT ̲LINES or PH ̲INSERT ̲LINE ̲GROUP. This
                 method is used for FIELD ̲GROUP ̲REPEAT and LINE
                 ̲GROUP ̲REPEAT and zero must be specified for
                 all the CONTROL ̲RECORDS in the group.

                 F̲I̲E̲L̲D̲ ̲N̲O̲ is the number of the field on each
                 line. The number can be determined from the
                 status or the printfile of the current format.

                 F̲I̲E̲L̲D̲ ̲C̲O̲U̲N̲T̲ is the number of fields in a group
                 (both field group and line group). In case
                 of LINE ̲GROUP ̲REPEAT this field must have the
                 same value as the upper byte of the LINE ̲GROUP
                 ̲COUNT ̲
                 NO. For both kinds of groups this field must
                 have the same value for all CONTROL ̲RECORDS
                 in the group. If the output field controlled
                 by this record is not part of a group FIELD
                 ̲COUNT must be set to 1.

                 F̲I̲E̲L̲D̲ ̲G̲R̲O̲U̲P̲ ̲C̲O̲U̲N̲T̲ is the number of times that
                 a field group or a field can be repeated on
                 one line. This again must be in accordance
                 with the format. If a single unrepeatable field
                 is in question, 1 must be specified.

                 F̲I̲E̲L̲D̲ ̲S̲I̲Z̲E̲ serves two purposes:
                 1.  The lower byte specifies the byte size
                     of the output field excl. IOC header. This
                     size must be in accordance with the field
                     size in the format.
                 2.  The upper byte is used when the i̲n̲p̲u̲t̲ data
                     consists of repeatable records (LINE ̲GROUP
                     ̲
                     REPEAT or FIELD ̲GROUP ̲REPEAT). If there
                     is a 'gap' in the usage of input data from
                     the record(s), the process need to know
                     the byte



                     size of this 'gap'. The 'gap' information
                     is stored as mentioned in the upper byte
                     of FIELD ̲SIZE in the CONTROL ̲RECORD following
                     the 'gap'. E.g. if an input record consists
                     of 6 fields and only field 2 and 5 are
                     used then the upper byte of FIELD ̲SIZE
                     in the CONTROL ̲RECORD for field 2 must
                     contain the item size (byte size) of field
                     6 and field 1. Correspondingly the CONTROL
                     ̲RECORD for input field 5 must contain the
                     item size for field 3 and 4. The process
                     uses the gap information for updating pointers
                     and offsets after suplemental reading of
                     input data from CIF or FILE. If input data
                     does not consist of repeatable records
                     then the upper byte of FIEDL ̲SIZE is set
                     to zero.

                 C̲I̲F̲ ̲F̲I̲E̲L̲D̲ ̲N̲O̲ is a number corresponding to the
                 buffer used to contain the input data. CIF
                 ̲
                 FIELD ̲NO can have the following value:

                 0:  The data in question is placed in ADM1
                     ̲BUF which is used for QEL ̲ATTRIBUTES for
                     QEL ̲
                     ITEM's, BUFFER data for BUFFER ̲ITEM's,
                     CIF administration field (normally field
                     1) for VIEW ̲ITEM's and SYIE ̲TAR ̲ADM for
                     FILE ̲
                     ITEMS's.

                 1-10: The data is placed in CIF ̲BUF 0-9. For
                     VIEW ̲ITEM's it corresponds to FIELD 2-11
                     and for FILE ̲ITEM's logical field 1-3.

                 I̲T̲E̲M̲ ̲S̲I̲Z̲E̲ specifies the byte size of the current
                 i̲n̲p̲u̲t̲ field. For VARIABLE fields (see ITEM
                 ̲TYPE) the value is set to the maximum size
                 incl. IOC header. For FIX fields the value
                 is set to the number of bytes used for conversion
                 and for output e.g. an RI (Routing Indicator)
                 - the size of the RI as it is declared is 10
                 bytes - but only the first 9 are used. Therefore
                 ITEM ̲SIZE is set to 9 and if repeatable record
                 is used as input data the 1 byte left over
                 is added to the upper byte of FIELD ̲SIZE of
                 the CONTROL ̲RECORD for the next used field
                 in the record (see FIELD ̲SIZE).

                 I̲T̲E̲M̲ ̲T̲Y̲P̲E̲ can be FIX or VARIABLE. VARIABLE
                 data must always be kept in IOC-records while
                 FIX data can be anything as long as the length
                 is fixed.



                 I̲T̲E̲M̲ ̲P̲T̲ ̲B̲A̲S̲E̲ and
                 D̲A̲T̲A̲ ̲I̲T̲E̲M̲ ̲P̲T̲ are used for determining the offset
                 from the start of the buffer indicated by CIF
                 ̲FIELD ̲NO to where the first appearence of the
                 input item (field) is stored.

                 If ITEM ̲PT ̲BASE is NIL then DATA ̲ITEM ̲PT contains
                 the offset. If ITEM ̲PT ̲BASE is between 0 and
                 10 the offset is stored in the appropriate
                 buffer (same terminology as for CIF ̲
                 FIEL ̲NO) with an offset specified by DATA ̲ITEM
                 ̲
                 PT. Values 1-9 are only allowed when both all
                 input data and the offset can be in the buffer
                 at the same time.

                 I̲T̲E̲M̲ ̲C̲O̲U̲N̲T̲ ̲B̲A̲S̲E̲ and
                 I̲T̲E̲M̲ ̲C̲O̲U̲N̲T̲ ̲P̲T̲ are used for determining the
                 actual count of a field. If ITEM ̲COUNT ̲BASE
                 is NIL then ITEM ̲COUNT ̲PT contains the actual
                 count. If ITEM ̲COUNT ̲BASE is 0 (zero) then
                 the count is in ADM1 ̲BUF with offset specified
                 by ITEM ̲COUNT ̲PT. The values 1-9 is only allowed
                 if ING ̲COUNT is not 0 (fixed no of incarnations)
                 and the counter can be kept in the buffer together
                 with all the input data.

                 The buffer is determined the same way as for
                 CIF ̲FIELD ̲NO and ITEM ̲COUNT ̲PT specifies the
                 offset.

                 D̲I̲S̲P̲L̲A̲Y̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲ specifies which conversion
                 procedure to be called by EXEC ̲CONV ̲PRC. The
                 value is taken from the scalar type DISPLAY
                 ̲
                 PROCEDURE ̲TYPE. When BUFFER ̲SHARED is actual
                 this field is not used.

                 S̲A̲V̲E̲ ̲I̲ ̲P̲T̲ ̲B̲Y̲T̲E̲ ̲C̲N̲T̲ must be initiated to zero.
                 It is not used as a parameter but due to the
                 fact that the current MMI ̲entry is memory resident
                 it is used for saving a byte counter during
                 execution of field group repeats or line group
                 repeats.

                 I̲T̲E̲M̲ ̲R̲E̲C̲O̲R̲D̲ ̲S̲I̲Z̲E̲ specifies the record size
                 in bytes when using repeatable records as input
                 data. Otherwise the field must be set to zero.



                 Many of the values used in the control records
                 have a very close connection with the corresponding
                 Format e.g. Line Group Numbers, Line Numbers,
                 Field Numbers, Field Sizes etc. because of
                 the large redundancy risk it is therefore of
                 great importance that the MMI Tables are generated
                 or updated in strict accordance with the formats
                 (or opposite).

                 Two restrictions concerning print data organization
                 shall be mentioned here.
                     1. All pointers and counters needed to
                     process an item must be in ADM1 ̲BUF. This
                     implies for VIEW ̲ITEM's or FILE ̲ITEM's
                     that either the pointers and counters must
                     be in the administration field or a special
                     procedure must be implemented to put them
                     there (ref. READ ̲VIEW ̲ADM, READ ̲IMF ̲ADM
                     and SYIE ̲TAB ̲HEAD).
                     2. Data must be output to the Printer Handler
                     in the same order as the corresponding
                     fields appear in the format. Therefore
                     input data kept in one buffer (except when
                     all data can be in the buffer at the same
                     time) and CONTROL ̲RECORDS must be structured
                     in the same order as the fields in the
                     format.



A3       R̲E̲S̲P̲O̲N̲S̲E̲ ̲T̲E̲X̲T̲ ̲T̲A̲B̲L̲E̲

         The table is a part of OTHER ̲TABLES and is used to
         find a REPORT ̲TEXT from an integer. The primary key
         is RESPONSE ̲TEXT.NO (INTEGER). The integer received
         in a report. (REPORT ̲BUFFER ̲TYPE.TEXT ̲REF) is converted
         to primary key using (PRIS ̲RESP ̲OFFSET + 1) as offset.

         The REPORT ̲TEXT found is used in report print. The
         source file to this table are in PRT.D*PRT ̲RESP ̲TAB.D
         named PRT ̲RSP ̲TEXT.S.



                        APPENDIX B


                        LOG PRINT

         On the figures B1.1-1 to B1.1-4 all the different log
         subtypes print layouts are shown with a field reference.
         The field reference is listed on figure B1.2.















































                       FIG. B1.1-1

















































                       FIG. B1.1-2

















































                       FIG. B1.1-3

















































                       FIG. B1.1-4



         F̲i̲e̲l̲d̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲:

         1.  Terminal Designator
         2.  Transaction Serial Number
         3.  Format Identification
         4.  Logtime
         5.  Item Reference Identification
         6.  Exit Cause
         7.  Classification
         8.  Special Handling Category
         9.  Predefined Message Number
         10. Start Time of Transaction
         11. Month + Day
         12. Decision Code
         13. User Identification
         14. Problem Code Refer REJECTION ̲CODE ̲TYPE in CPR ̲PREFIX
         15. System Print Control Number
         16. Special Handling Control Number
         17. Channel Designator
         18. Message Type
         19. Precedence
         20. Calling Station
         21. Station Serial Number
         22. Julian Date
         23. SIC's
         24. Problem Code Refer RESPONSE ̲TEXT ̲TYPE in CPS ̲PREFIX
         25. Expected Transmission Serial Number

         For further information about the fields see CPS/210/545/0001
         chapter 3.2.5




                        FIG. B1.2