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

⟦d6c248063⟧ Wang Wps File

    Length: 65095 (0xfe47)
    Types: Wang Wps File
    Notes: CPS/SDS/029               
    Names: »1745A «

Derivation

└─⟦080c9775e⟧ Bits:30006085 8" Wang WCS floppy, CR 0131A
    └─ ⟦this⟧ »1745A « 

WangText



…15……08……15……09……15……0e……15…    …14……09……14……0e……14……01……14……02……14……07……13……0d……13……0f……13……00……13……01……13……02……13…
…13……07……12……08……12……0c……12……0d……12……0e……12……0f……12……00……12……01……12…    …12……07……11……0a……11……0e……11……02……11……05……11……06……10……09……10……0b……10……0d……10……00……10……02……10……05……10……07……0f……0a……0f……0d……0f……0f……0f……02……0f…    …0f……06……0e……09……0e……0c……0e……0e……86…1
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        …02…
        
        
        
        
        
        
        
        
        
        
        …02…
        
        
        …02…
        
        
        
        
        
        
        
        

…02…CPS/SDS/029

…02…820514…02……02…
SYSTEM
 STATUS
 AND CONTROL
DETAILED
 DESIGN
 SPECIFICATION  CAMPS








4.2.3    W̲a̲t̲c̲h̲d̲o̲g̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲(̲W̲D̲S̲P̲)̲



4.2.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̲s̲

         The WDSP contains the functions defined in fig. 4.2.3.1-1.

         The WDP receives via the V24 lines information from
         the PUs and the operator VDU.  Via the CCB the CCB
         driver scans the status in the different crates via
         digital input ports, and if a discrepancy between the
         expected status and the scanned status exists, a report
         is issued.  Furthermore, the WDP checks that the PU
         periodically sends "keep alive", if a PU stops sending
         "keep alive" the WDP will take the following action
         if:

         -   An active PU with a standby PU exists:  switchover

         -   A standby PU with an active PU exists:  notify
             active + close standby

         -   An active PU with an offline PU exists:  close
             down

         The V24 lines and the monitoring via the CCB is supported
         by the WDSP standard firmware, which gives the incoming
         messages to the application processes which are described
         in the next sections.


















































        Fig. 4.2.2.1-1…01…Functional Breakdown of WDP


4.2.3.1.1    I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲

         Upon power up of the WDP, a selftest procedure is started
         and if the WDP is ok, initialization is started.

         The initialization consists of:

         -   set up VDU splits
         -   set up control tables
         -   start the WDP processes
         -   start the Timer

         Hereafter, the control is given over to the Kernel
         ref. CSS-MIC/007/PSP/1005, the Kernel is a part of
         the standard firmware.



4.2.3.1.2    P̲U̲ ̲H̲a̲n̲d̲l̲e̲r̲

         The following kind of messages is taken care of by
         the PU handler.

         -   reception of "Keep alive" refer sec. 4.1.1.6.1.2
         -   control or monitoring requests from PU

         If a "keep alive" message is missing from a PU, the
         PU handler sets up a control command to be sent to
         the SYSCON, which controls the execution of the command.
          Depending of the PU status, the following control
         is sent:

         -   switchover
         -   close down

         Control requests from the PU (COPSY) is sent to the
         SYSCON.

         The PU handler receives every minute the time of day
         (TOD) from the PUs.  The TOD is included in the "keep
         alive" message.

         To check the "keep alive" reception, a timeout is sent
         to the PU handler every second.


4.2.3.1.3    V̲D̲U̲ ̲H̲a̲n̲d̲l̲e̲r̲

         The VDU handler is the link between the operator VDU,
         the WDP and the PUs.  The functional breakdown of the
         VDU handler is shown in fig. 4.2.3.1.3-1.

         The following messages are passed through the VDU handler:

         -   function key from the operator VDU
         -   commands from the command line
         -   unprotected fields from the format split
         -   output of formats to the format split
         -   control message to the VDU (cursor position)
         -   offline communication

         The following subsections describe the actions to be
         taken for input from the VDU, output to the VDU and
         offline communication.



4.2.3.1.3.1  I̲n̲p̲u̲t̲ ̲f̲r̲o̲m̲ ̲t̲h̲e̲ ̲V̲D̲U̲

         When the operator wants to enter a command, or format,
         he depresses the function key ENTER or CANCEL.  ENTER
         specifies that the content of the current split is
         to be sent.

         CANCEL is used to specify that the operator wants to
         return to the command line.  The format split and the
         command line are cleared.

         The VDU handler looks up the cursor position and if
         the position is the command line, the function key
         is checked, else it is sent to the CMI.

         If the key received was an ENTER key the following
         actions are taken by the VDU handler.

         -   return ack to the VDU
         -   initiate the transmission
         -   ready to received the command

         when the command is received, the actions taken are:

         -   return ack to the VDU
         -   interpretation of the command



         For on-line PU commands the ENTER key is sent to the
         CMI. The CMI now reads the command to be handled from
         the VDU.

         The following commands to be recognized by the VDU
         handler are foreseen:

         -   WDSW, emergency switchover from Active to Standby
             Pu

         -   DISA, disable PU

         -   RSET, reset PU

         -   MACL, master clear PU

         -   MAIN, set PU in maintenance mode

         -   GCUA, enable access from the PU to the CU

         -   PU#1, communication link to PU#1

         -   PU#2, communication link to PU#2

         -   OFL1, offline communication is to be used

         The first seven commands are handed over to the SYSCON
         for execution.

         The last three are used to define the mode of communication
         and the PU link.  Entering ONLINE mode is described
         in section 4.2.3.1.3.3.

         When the commands have been served, the VDU is given
         back to the operator, i.e. the cursor is positioned
         in the start of the command line.

         In the following cases, the input from the VDU is sent
         direct to the CMI:

         -   cursor positioned in the format area
         -   second transmission of a command.


4.2.3.1.3.2  O̲u̲t̲p̲u̲t̲ ̲t̲o̲ ̲t̲h̲e̲ ̲V̲D̲U̲

         The data to be sent to the VDU through the VDU handler
         are:

         -   FORMATS to be displayed

         -   DATA to the format fields

         -   Error message

         -   Control messages to the VDU e.g. cursor position

         -   Ack.

         When the VDU handler receives a message to be sent
         to the VDU, it checks if it is a control message. If
         so, the cursor position is identified (ref. 4.2.8.1.3.1).



4.2.3.1.3.3  O̲f̲f̲l̲i̲n̲e̲ ̲C̲o̲m̲m̲u̲n̲i̲c̲a̲t̲i̲o̲n̲

         The dialogue between the PU and VDU is during offline
         communication (refer section 2.2.1.5) controlled by
         the VDU handler.

         The offline communication is for the offline PU, the
         WDP, WDP ̲VDU and WDP ̲ROP referred to as the "offline
         mode" of operation. The PU-WDP communication uses the
         transparent WDP protocol (refer IOC). The offline dialogue
         takes place in the WDP ̲VDU format split and is line
         oriented.

         The following actions are taken:

         -   check if operator wants to enter "online mode"

         -   send on messages

         -   log messages



         The operator depresses the cancel function key, when
         he wants to enter online mode.  Hereafter, the VDU
         handler specifies to the drivers that messages to/from
         the PUs are controlled by a protocol.

         The VDU handler logs the offline dialogue between the
         VDU and PU on the WDP-ROP.



4.2.3.1.3.4  E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲

         If an error is detected in the transmission of data
         to the VDU/ROP, this is reported to the PU via the
         protocol.  When the VDU/ROP is reinserted, a report
         is sent to the Active PU.  The V24 lines are monitored
         by the VDU/LP drivers.


















































                     Fig. 4.2.3.1.3-1


4.2.3.1.4    L̲P̲ ̲H̲a̲n̲d̲l̲e̲r̲

         The LP Handler receives:

         -   serial number to be used on error reports

         -   error reports to be printed

         -   output produced during execution of operator commands
             in COPSY.

         -   log of offline communication

         The serial number is sent to the LP handler upon start
         up or if the WDP ̲ROP has been "out of service".  When
         the LP Handler has served an error message (i.e. put
         on serial number and time of day), the serial number
         is sent to COPSY.

         Before a message buffer is sent to the LP driver, the
         LP Handler looks up the type of message and takes an
         appropriate action (as defined below) before the message
         is printed.



4.2.3.1.4.1  S̲Y̲N̲C̲

         When the sender of a message differs from the last
         sender or an error report is to be printed, the LP
         output is synchronized, i.e.:

         -   page shift

         -   a header on the new page

         -   time of day (PU commands)

         -   serial number 



4.2.3.1.4.2  P̲r̲i̲n̲t̲

         When the type of message is defined and the action
         taken, Print sends the message to the LP driver.



4.2.3.1.4.3  E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲

         If the WDP ̲ROP is down or out of paper, a report is
         sent to the active PU or the operator VDU.  The same
         is done when the WDP ̲ROP is set back in operation.

         The V24 line is monitored by the LP driver.
         Ref. sec. 4.2.3.5.7.1



4.2.3.1.5    S̲Y̲S̲C̲O̲N̲ (System monitoring and control)

         Fig. 4.2.8.1.5-1 shows the functional breakdown of
         the SYSCON

         The SYSCON supports:

         -   Handling of exceptions

         -   Control commands from the operator

         -   Control commands from the PU (COPSY)



4.2.3.1.5.1  H̲a̲n̲d̲l̲i̲n̲g̲ ̲o̲f̲ ̲E̲x̲c̲e̲p̲t̲i̲o̲n̲s̲

         The exceptions reported to the SYSCON from the PU Handler
         (No "keep alive") or the CCB driver (see fig. 4.2.3.1.5.1-1)
         are handled as described below.  The control is executed
         via the CCB driver and the reports are sent to the
         PU (COPSY).  If total system failure exists, the SYSCON
         sends a error report to the WDP ̲ROP.

         S̲w̲i̲t̲c̲h̲o̲v̲e̲r̲ ̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲:

         1)  No "keep alive" from Active PU 
         2)  status error in the Active PU
         3)  status error in the active part of the CU
         4)  status error in the active TDX controller
             (if no standby exists close down)

         C̲l̲o̲s̲e̲ ̲D̲o̲w̲n̲ ̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲:

         1)  No "keep alive" from standby PU
         2)  status error in the standby Pu
         3)  status error in the standby part of the CU
         4)  error in the Active PU


         W̲a̲r̲n̲i̲n̲g̲ ̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲

         1)  Temperature in a CRATE exceeds the max limit

         2)  A manual switch has been set out of auto (except
             PU disable)

         N̲o̲r̲m̲a̲l̲ ̲A̲g̲a̲i̲n̲ ̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲

         1)  Temperature in a CRATE goes below the max limit

         2)  Manual switch returned to auto

         3)  The digital monitoring of the Non Active TDX bus
             returns to the normal values.











                  Figure 4.2.3.1.5.1-1.




































Fig. 4.2.3.1.5.1-2…01…MONITOR ̲REPORTS FROM CCB ̲DRIVE…01…MONITORING IN CU-CRATE















































Fig. 4.2.3.1.5.1-3…01…MONITOR REPORT FROM CCB ̲DRIVE…01…MONITORING IN BSMX















































   Fig. 4.2.3.1.5.1-4…01…BSMX UNIT WITHOUT TDX CONTROLLER


4.2.3.1.5.2  C̲o̲n̲t̲r̲o̲l̲ ̲C̲o̲m̲m̲a̲n̲d̲s̲ ̲f̲r̲o̲m̲ ̲t̲h̲e̲ ̲O̲p̲e̲r̲a̲t̲o̲r̲

         For those commands from the operator directly to the
         WDP, which are used to control the HW configuration
         (used before start up), the SYSCON executes the control
         via the CCB driver.  When a command is completed, a
         log is sent to the ROP.



4.2.3.1.5.3  C̲o̲n̲t̲r̲o̲l̲ ̲C̲o̲m̲m̲a̲n̲d̲s̲ ̲f̲r̲o̲m̲ ̲C̲O̲P̲S̲Y̲

         The last type of control commands are those sent from
         COPSY in the ACTIVE PU.  These control commands are
         a result of a command issued via a format from the
         operator VDU or a detection of an error by the active
         PU.

         The commands are:

         -   SWITCH, switchover from AC to SB PU

         -   SINGLE CONTROL, controls only in one crate

         -   SWITCH BSMX

         The control parameter is set up and sent to the CCB
         driver

         For these kinds of control commands, the log is sent
         from either the CMI (operator command) or COPSY (error
         reports).


















































                     Fig. 4.2.3.1.5-1


4.2.3.2  S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         The WDP contains a set of processes, which is divided
         into standard processes:

         -   PU drivers
         -   VDU driver
         -   LP driver
         -   CCB driver
         -   KERNEL

         and application processes:

         -   INITIALIZE (start program)
         -   PU Handler
         -   SYSCON
         -   VDU Handler
         -   LP Handler
         -   SERVE ̲TIME

         The interactive communication between the processes
         is done via semaphore queues. The processes, which
         are not waiting in a semaphore queue, are given CPU
         time by the KERNEL, CF CSS-MIC/0007/PSP/1005.

         Fig. 4.2.3.1-1 gives the allocation of the functions
         onto the processes.



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

         The data flow and control logic are shown in fig. 4.2.3.3-(1-4).


















































            Fig. 4.2.3.3-1…01…WATCHDOG DATA FLOW















































Fig. 4.2.3.3-2…01…DATA FLOW AND CONTROL LOGIC OF THE PU HANDLER















































Fig. 4.2.3.3-3…01…DATA FLOW AND CONTROL LOGIC OF THE LP-HANDLER















































Fig. 4.2.3.3-4a (1 of 2)…01…DATA FLOW AND CONTROL LOGIC OF THE SYSCON















































Fig. 4.2.3.3-4b (2 of 2)…01…DATA FLOW AND CONTROL LOGIC OF THE SYSCON


4.2.3.4  M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.3.4.1    W̲D̲P̲ ̲I̲N̲I̲T̲I̲A̲L̲I̲Z̲E̲



4.2.3.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̲

         The software initialization includes the following
         actions:

         -   Clear User RAM (Data area)
         -   Create processes
         -   Initialize semaphore queues
         -   Initialize buffers and
             link them to their semaphores
         -   initialize driver tables.



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

         NA



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

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

             PROCESS ̲DESCRIPTOR                4.2.3.5.5
             MESSAGE (buffers)                 4.2.3.5.1
             SEMAPHORE                         4.2.3.5.5
             PROCESSES                         4.2.3.5.5

         b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

             PROCESS ̲DESCRIPTOR (m)
             MESSAGE ̲BUFHED (m)



         c)  L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲

         CONST   STACK ̲PU ̲HANDLER
                 STACK ̲VDU ̲HANDLER
                 STACK ̲LP ̲HANDLER
                 STACK ̲SYSCON
                 STACK ̲SERVE ̲TIM
                 START ̲AD ̲PU ̲HANDLER
                 START ̲AD ̲VDU ̲HANDLER
                 START ̲AD ̲LP ̲HANDLER
                 START ̲AD ̲SYSCON
                 START ̲AD ̲SYSCON
                 PRIORITY 0
                 START ̲DATA
                 END ̲DATA



4.2.3.4.1.4 C̲O̲M̲P̲O̲N̲E̲N̲T̲S̲

         NA



4.2.3.4.1.5  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲I̲A̲L̲I̲Z̲E̲ ̲W̲D̲P̲ ̲D̲e̲s̲i̲g̲n̲

         Narrative

         -   Clear the data RAM area
         -   Create application processes
         -   Initialize buffers
         -   Set no SCAN
         -   Start PU ̲HANDLER
         -   Retire


         Flowgram


         ref. fig. 4.2.3.4.1.5



   PROCEDURE INITIALIZE ̲WDP


   CLEAR ̲RAM (START ̲DATA, END ̲DATA)


   SET ̲INTERRUPT ̲VEKTOR (INPU 1, INPU 2, INVOV, INLP,
   INTIM)

   CREATE ̲(PU ̲HANDLER, STACK ̲PU ̲HANDLER, START ̲AD ̲PU
   ̲HANDLER,
                                                                 PRIORITY
                                                                 ̲O)

   CREATE (VDU ̲HANDLER, STACK ̲VDU ̲HANDLER,START ̲AD
   ̲PU ̲HANDLER,
                                                                 PRIORITY
                                                                 0)

   CREATE (LP ̲HANDLER, STACK ̲LP ̲HANDLER, START ̲AD ̲LP
   ̲HANDLER,
                                                                 PRIORITY
                                                                 0)

   CREATE (SYSCON, STACK ̲SYSCON, START ̲AD ̲SYSCON,PRIORITY
   ̲0)

   INITIALIZE ̲APPLICATION ̲BUFFER

   RESET ̲SCAN ̲TABLES

   SIGNAL (PUHSEM), SIGNAL (SYSSEM)

   PASSIVATE


   END INITIALIZE ̲WDP


4.2.3.4.2    V̲D̲U̲ ̲H̲A̲N̲D̲L̲E̲R̲



4.2.3.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 functions performed by the VDU ̲HANDLER
             ARE:

             -   receive data buffers from the VDU
                 drivers
             -   receive status reports from the VDU
                 drivers
             -   send data buffers to the VDU driver
             -   convert VDU input/output
             -   enter offline communication mode
             -   interpret direct watchdog commands



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

                 NA



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

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

                 MESSAGE                                         4.2.3.5.1
                 WDP ̲VDU ̲DATA                  4.2.3.5.1d
                 CONTROL ̲COMMAND               4.2.3.5.2
                 PRINT ̲REPORT                  4.2.3.5.3
                 CONFIG ̲TABLE                  4.2.3.5.4

             b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

                 ROP ̲DOWN (m)                  4.2.3.5
                 MESSAGE DATBUF (m)
                 MESSAGE.ADDRESS ̲OF ̲REF ̲QUEUE
                 MESSAGE.ADDRESS.ANSWER ̲SEM (m)
                 COUNT, MAX ̲COUNT,
                 COUNT ̲ROW (m)                 4.2.3.5




             c)  L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲

                 VAR                VDHSEM: SEMAPH

                 VAR                VDHANS: SEMAPH

                 VAR                VDH EMT: SEMAPH
                 The semaphore address known to the
                 VDU Handler

                 VAR                VDUH ̲MESS = ARRAY(1..3)
                                    OF BUFFER ̲HEADS

                 VAR                PRINTOUT: PRINT
                                    ̲REPORT

                 VAR                CONTROL ̲DATA: CONTROL
                                    ̲COMMAND

                 VAR                FOUND; 1 FUNCTION
                                    KEY, CONVERTED:
                                    BOOLEAN

                 VAR                SPLIT = (COMMAND
                                    ̲SPLIT, CONFIG ̲SPLIT,
                                             FORMAT
                                    ̲SPLIT)

                 VAR                ACTUAL = (PU1,
                                    PU2)

                 VAR                FUNCTION ̲KEYS =
                                    (ENTER, CANCEL,
                                    COMMAND,OTHER)
                 The function keys used on the WDP
                 ̲VDU

                 VAR                COMMAND ̲LIST =
                                    ARRAY(0..35) OF
                                    CHARS

                 INIT               COMMAND ̲LIST =               WDSW,
                                                                 RSET,
                                                                 MACL,
                                                                 DISA,
                                                                 MAIN,
                                                                 GCUA,
                                                                 PUN1,
                                                                 PUN2,
                                                                 
                                               OFL1,
                                               NORM

                 CONST              COMMAND ̲LIST ̲SIZE
                 The legal commands to be entered via
                 the command line direct to the WDP
                 for execution.


4.2.3.4.2.4  V̲D̲U̲ ̲H̲A̲N̲D̲L̲E̲R̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

             The VDU ̲HANDLER contains the following
             components each implemented as a procedure

             -   VDU ̲HANDLER
             -   RECEIVE ̲VDU
             -   CONVERT ̲VDU ̲IN
             -   OFFLINE ̲IN
             -   SEND ̲DISPLAY
             -   SEND ̲ON ̲VDU ̲IN
             -   READ ̲KEY
             -   READ ̲COMMAND
             -   INTERPRET ̲COMMAND
             -   SETUP ̲CONTROL ̲SEND
             -   SEND ̲VDU
             -   CONVERT ̲VDU ̲OUT
             -   OFFLINE ̲OUT



             The components are shown on fig. 4.2.3.4.2.5-1.




4.2.3.4.2.5  D̲e̲s̲i̲g̲n̲ ̲V̲D̲U̲ ̲H̲A̲N̲D̲L̲E̲R̲

             The VDU ̲HANDLER module is implemented
             as a process.

             The process consists of the mainprocedure
             VDU ̲HANDLER and a number of subprocedures.
             The procedures are shown on fig. 4.2.3.4.2.5-1
             overleaf.















































    Fig. 4.2.3.4.2.5-1…01…VDU ̲HANDLER PROCEDURES


4.2.3.4.2.5.a    P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲V̲D̲U̲ ̲H̲A̲N̲D̲L̲E̲R̲

             Narrative.

             The VDU ̲HANDLER awaits the VDHSEM to which
             the data to be transmitted to/from the
             VDU is sent. If the data is to the VDU
             the SEND ̲VDU is called, otherwise the
             RECEIVE ̲VDU is called for further handling
             of the data.

             When the data has been served the buffer
             is returned to the answer queue or an
             empty semaphore specified in the header.

             Flowgram



             ref. fig. 4.2.3.4.2.5.a-1


   PROCEDURE VDU ̲HANDLER


   LOOP

         RECEIV (VDHSEM)(MESSAGE)

         MESSAGE.ADDRESS ̲OF ̲RET ̲QUEUE EQ VDUEMT?

                                               R̲E̲C̲E̲I̲V̲E̲
                                               ̲V̲D̲U̲
                                               (MESSAGE)

         S̲E̲N̲D̲ ̲V̲D̲U̲ (MESSAGE)(ANSWER)


         MESSAGE.ADDRESS ̲OF ̲ANSWER ̲SEM EQ DUMMY?


                 SEND(MESSAGE, MESSAGE.ADDRESS ̲OF ̲RET
                 ̲QUEUE)


         SEND(MESSAGE, MESSAGE.ADDRESS ̲OF ̲ANSWER ̲SEM)


   END LOOP



   END VDU ̲HANDLER

















              Fig. 4.2.3.4.2.5.a-1


4.2.3.4.2.5.b    P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲V̲D̲U̲

             Narrative

                 The following actions are taken:


                 -   Convert the data buffer
                 -   Depending of the input type:

                     o save offline communication
                     o interpret commands
                     o interpret function keys
                     o send on the converted data buffer
                     to the PU


             Flowgram

             Ref. fig. 4.2.3.4.2.5.b - 1


   PROCEDURE RECEIVE ̲VDU (MESSAGE: MESSAGE ̲BUFFER)

   MESSAGE.DATBUF(1) EQ   ACK OR NACK?

   C̲O̲N̲V̲E̲R̲T̲ ̲V̲D̲U̲ ̲I̲N̲ (MESSAGE.DATBUF(5))(CONVERTED)

   CONVERTED EQ FALSE?

   MODE EQ OFFLIN? -      O̲F̲F̲L̲I̲N̲E̲ ̲I̲N̲ (MESSAGE)

   SPLIT EQ FORMAT
            or                      ?          S̲E̲N̲D̲
                                               ̲O̲N̲ ̲V̲D̲U̲
                                               ̲I̲N̲ (MESSAGE)
   1-FUNCTION ̲KEY EQ FALSE


   DATBUF(5) EQ FUNCTION ̲KEY? - R̲E̲A̲D̲ ̲K̲E̲Y̲(MESSAGE)(1
   ̲FUNCTION.KEY)

   R̲E̲A̲D̲ ̲C̲O̲M̲M̲A̲N̲D̲      (MESSAGE)(1 ̲FUNCTION ̲KEY)



   END RECEIVE ̲VDU























              Fig. 4.2.3.4.2.5.b-1


4.2.3.4.2.5.c    P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲V̲E̲R̲T̲ ̲V̲D̲U̲ ̲I̲N̲

             Ref IOC LTUX Design




4.2.3.4.2.5.d  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲O̲F̲F̲L̲I̲N̲E̲ ̲I̲N̲

             Narrative.

             The Command entered from the offline split
             is sent to the actual PU and when transmitted
             it is sent to the WDP ̲ROP if present and
             when it has been printed the buffer is
             released.


             Flowgram.


             Ref. fig. 4.2.3.4.2.5.d-1


   PROCEDURE OFFLINE ̲IN (MESSAGE)

   MESSAGE.ADDRESS ̲OF ̲ANSWER ̲QUEUE = VDUANS

   SEND(MESSAGE, SEMA)

   RECEIV(VDUANS)(MESSAGE)

   MESSAGE.MESCOD EQ NACK? - S̲E̲N̲D̲ ̲D̲I̲S̲P̲L̲A̲Y̲(RESP ̲F, PU
   FAILED)

   LP ̲DOWN EQ TRUE?

   MESSAGE. LINE ̲NO = DUMMY

   SEND (MESSAGE, LPUSEM)

   RECEIV(VDUANS)(MESSAGE)

   MESSAGE.MESCOD EQ NACK? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (EXTERN,VDU
   ̲H,STATUS)

   MESSAGE.ADDRESS ̲OF ̲ANSWER ̲QUEUE = DUMMY

   END OFFLINE ̲IN






















              Fig. 4.2.3.4.2.5.d-1


4.2.3.4.2.5.e  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲D̲I̲S̲P̲L̲A̲Y̲

             Narrative

                 Display the specified text on the
                 command split in the specified field,
                 and set the VDU ready for input of
                 new data.


             Flowgram

                 NA



4.2.3.4.2.5.f  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲O̲N̲ ̲V̲D̲U̲ ̲I̲N̲

             Narrative

                 If the Active PU is ready (init.read/bytes)
                 for a buffer the received buffer is
                 sent on to the PU.

                 The answer from the PU driver is awaited.


             Flowgram

                     NA


4.2.3.4.2.5.g  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲E̲A̲D̲ ̲K̲E̲Y̲

             Narrative

                 The function key delivered in the
                 databuffer of the message and if key
                 equal to:

                 -   ENTER, initiate transmission from
                     Command line

                 -   CANCEL, reenter ONLINE MODE

                 -   OTHERS, no action



             Flowgram.

             N/A



4.2.3.4.2.5.h  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲E̲A̲D̲ ̲C̲O̲M̲M̲A̲N̲D̲

             Narrative


                 The command is sent to the interpret
                 command procedure. The output from
                 this procedure is FOUND (BOOLEAN)
                 and the SCALAR value of the command
                 if found. 

                 If:

                 -   FOUND = FALSE;    CALL SEND ̲PU

                 -   FOUND = TRUE; handle the command


             Flowgram


             Ref. fig. 4.2.3.4.2.5.k-1


   PROCEDURE READ ̲COMMAND (MESSAGE: MESSAGE.BUFFER)
                                    (1.FUNCTION ̲KEY:
                                    BOOLEAN)

   1.FUNCTION ̲KEY = TRUE


   I̲N̲T̲E̲R̲P̲R̲E̲T̲ ̲C̲O̲M̲M̲A̲N̲D̲ (MESSAGE)(FOUND, COMMAND)


   FOUND EQ FALSE? - SEND ̲PU(MESSAGE)(1.FUNCTION ̲KEY)

   CASE COMMAND OF:

         PUN1, PUN2 ? - ACTUAL = COMMAND

                      S̲E̲N̲D̲ ̲D̲I̲S̲P̲L̲A̲Y̲ (COMM ̲TO ̲F, ACTUAL)

         OFL1? - MODE = OFFLIN

                          S̲E̲N̲D̲ ̲D̲I̲S̲P̲L̲A̲Y̲(COMM ̲TO ̲F, ACTUAL)

         OTHERS? -   S̲E̲T̲U̲P̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲S̲E̲N̲D̲ (COMMAND)


   END CASE


   END READ ̲COMMAND

















              Fig. 4.2.3.4.2.5.h-1


4.2.3.4.2.5.i  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲T̲E̲R̲P̲R̲E̲T̲ ̲C̲O̲M̲M̲A̲N̲D̲

             Narrative:

                 It is investigated, whether the command
                 is known to the watchdog (COMMAND
                 ̲LIST). The SCALAR type of the command
                 is returned if FOUND = TRUE.


             Flowgram





             ref. fig. 4.2.3.4.2.5.i - 1


   PROCEDURE INTERPRET ̲COMMAND      (DATBUF: DATABUFFER)

                                               (FOUND
                                               : BOOLEAN

                                               COMMAND
                                               : COMMANDS)

   COUNT = -4                       

   MAXCOUNT = COMMANDLIST ̲SIZE

   LOOP ̲1

         COUNT = COUNT + 4

         COUNT ̲ROW = -1

         LOOP 2

             COUNT ̲ROW = COUNT ̲ROW + 1

             DATBUF ̲COMMAND(COUNT ̲ROW) NE

                 COMMAND ̲LIST(COUNT + COUNT ̲ROW)?-FOUND
                 = FALSE,  EXIT

             COUNT EQ CMD ̲SIZE? FOUND = TRUE,  EXIT

         END LOOP ̲2

         FOUND EQ TRUE?   EXIT

         COUNT EQ MAX COUNT?   EXIT

   END LOOP ̲1

   COMMAND = COUNT DIV 4

   END INTERPRET ̲COMMAND










             2Fig. 4.2.3.4.2.5.i - 1


4.2.3.4.2.5.j  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲T̲U̲P̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲S̲E̲N̲D̲

             Narrative

                 Send log command "initiated" to the
                 LP ̲HANDLER.

                 Send control command to SYSCON (which
                 executes the control via the CCB)

                 Await the completion of the commands
                 send log command "completed"/"terminated"
                 to the LP ̲HANDLER.

                 If the LP ̲driver returns a nack LP
                 ̲DOWN = TRUE and an error-report is
                 sent.


             Flowgram.



             NA


4.2.3.4.2.5.k  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲V̲D̲U̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             The data received via the VDHSEM are checked
             and converted before it is sent to the
             VDU driver.

             If split select is COMMAND ̲SPLIT and control
             is "receive-control", 1 FUNCTION is updated
             (TRUE). (Only in online mode). The data
             in the received buffer is converted and
             sent to the VDUSEM. (VDU driver out).


             Flowgram.



             Ref. fig. 4.2.3.4.2.5.k-1.


   PROCEDURE SEND ̲VDU(MESSAGE:MESSAGE ̲BUFFER)
                                    (1.FUNCTION ̲KEY,
                                    SPLIT, ANSWER)

   MESSAGE.DATBUF.LINE ̲NO EQ DUMMY? - OFFLINE = TRUE




   EQUIVALENCE(MESSAGE.DATBUF, HELREG : FORMAT ̲VDU
   ̲BUFFER)

   HELREG.SPLIT ̲SELECT EQ COMMAND SPLIT?

                     CONTROL EQ RECEIVE ̲CONTROL? -
                     1 ̲FUNCTION KEY

                                                                    =
                                                                    TRUE





   CONVERT VDU ̲OUT (MESSAGE)(MESCON)


   SEND (MESCON, VDU ̲SEM)(ANSWER)

   OFFLINE EQ TRUE? - OFFLINE ̲OUT (MESSAGE)


   END SEND ̲VDU

















              Fig. 4.2.3.4.2.5.k-1


4.2.3.4.2.5.l  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲V̲E̲R̲T̲ ̲V̲D̲U̲ ̲O̲U̲T̲

                 Narrative


                 Ref. IOC LTUX firmware



4.2.3.4.2.5.m  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲O̲F̲F̲L̲I̲N̲E̲ ̲O̲U̲T̲

                 Narrative.

                 The data received is sent to the LP
                 ̲HANDLER to be printed. If LP ̲DOWN
                 = FALSE and when it has been printed
                 the buffer is released. If a nack
                 is returned from the LP an error message
                 is sent to the active PU if present,
                 otherwise an error message is displayed
                 on the VDU.


                 Flowgram.


                 NA


4.2.3.4.3    P̲U̲ ̲H̲A̲N̲D̲L̲E̲R̲



4.2.3.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 functions of PU ̲HANDLER module are:

             -   receive control commands
             -   receive startup parameters
             -   receive keep alive reports
             -   receive time of day
             -   send id to PU
             -   receive PU driver status reports

             The functions performed for each of the
             messages are described in the module design.



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

                 NA





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

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

                 MESSAGE                                            4.2.3.5.1
                 CONFIG ̲TABLE                                       4.2.3.5.4
                 CONTROL ̲COMMAND               4.2.3.5.2
                 PU1SEM, PU2SEM                4.2.3.5.5
                 SYSSEM                                             4.2.3.4.5.3.c

             b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

                 MESSAGE ̲DATBUF (m)
                 CONFIG ̲TABLE (m)
                 MESSAGE.ADDRESS ̲OF ̲RET ̲QUEUE
                 MESSAGE.ANSWER ̲SEM

             c)  L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲

                 TYPE PU ̲HAND ̲COMMAND =

                     RECORD
                          CMD ̲TYPE : COPSY ̲COMMAND,TIM
                          ̲COMMAND
                          CMD: COMMAND ̲TYPE
                          INF: ARRAY(1..DATA ̲SIZE)
                          OF BYTE
                     END

                 VAR      TIM = ARRAY(1..2) OF BYTE

                 CONST    MAXTIM = 05H
                          NO ̲TIM = 0FFH
                 The TIME(N) is set equal to MAXTIM
                 when a keep alive message has been
                 received. If a PU is set offline TIME(N)
                 = NO ̲TIM

                 VAR      SEND: BYTE

                 VAR      PUHFL = ARRAY (1..2) OF FLAG

                 TYPE     FLAG = BYTE
                 The PUHFL is incremented when a READ
                 ̲BYTES is received and decremented
                 when a LDU is transmitted to PU

                 VAR      PUHANS, PUHEMT, PUHSEM :
                          SEMAPH
                 The semaphores known to the PU Handler.


4.2.3.4.3.4  C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

                 The following components are included:

                 -   PU ̲HANDLER
                 -   HANDLE ̲PROTOCOL
                 -   WATCH ̲PU
                 -   DISPATCH ̲CONTROL
                 -   SET ̲CONTROL
                 -   RETURN ̲YOU ̲ARE
                 -   INITIALIZE ̲KEEP ̲ALIVE
                 -   PU ̲SOFT ̲ERROR
                 -   SEND ̲REPORT
                 -   UPDATE TABLE

                 Each of the components is implemented
                 as a procedure and described in sec.
                 4.2.3.4.3.5.




4.2.3.4.3.5  P̲U̲ ̲H̲A̲N̲D̲L̲E̲R̲ ̲D̲E̲S̲I̲G̲N̲

             The PU ̲HANDLER is the main procedure in
             the PU ̲HANDLER process. The main and subprocedures
             are shown on fig. 4.2.3.3-2.



4.2.3.4.3.5.a  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲P̲U̲ ̲H̲A̲N̲D̲L̲E̲R̲

             Narrative:

                 The PU ̲HANDLER receives messages from
                 the PUHSEM.

                 The message is dispatched to a sub-procedure
                 for execution (message code). If the
                 message was received from one of the
                 PUs an answer is returned.
                 message code = ASCII ̲MES ̲ACK, ASCII
                 ̲MES ̲NACK.

                 Other messages are returned to the
                 return semaphore specified in the
                 buffer header.


                 Flowgram.

                 Refer figure 4.2.3.4.3.5.a-1


PROCEDURE PU ̲HANDLER

WAIT (PUHSEM)

LOOP FOREVER

   RECEIV(PUHSEM)(BUFFER:MESSAGE)

   CASE BUFFER.DATBUF.MESCOD OF:

         MESSAGE ̲ASCII? - BUFFER.DATBUF.LDUHED EQ

                                    CONTROL? - H̲A̲N̲D̲L̲E̲
                                    ̲P̲R̲O̲T̲O̲C̲O̲L̲(̲B̲U̲F̲F̲E̲R̲)̲(̲A̲N̲S̲W̲E̲R̲)̲

                          D̲I̲S̲P̲A̲T̲C̲H̲ ̲C̲O̲N̲T̲R̲O̲L̲(BUFFER)
                          (ANSWER)

         INT ̲COMMAND? -  W̲A̲T̲C̲H̲ ̲P̲U̲ (BUFFER)

         STATUS ̲PU? -     A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (EXTERN, PUH,
                                               BUFFER.STATUS)

         OTHERS? -        A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(INTERNAL, PUH,
                          MESIO)

   END CASE

   BUFFER.DATBUF.MESCOD NE MESSAGE.ASC II? - RETURN
   ̲BUFFER

   BUFFER.DATBUF.MESCOD = ANSWER               (BUFFER)

   BUFFER.ADDRESS ̲OF ̲RET ̲QUEUE EQ PU1 EMT? - SEM =
   PU1 SEM

   SEM = PU2 SEM

   SEND (BUFFER, SEM)


END LOOP


END PU ̲HANDLER





              Fig. 4.2.3.4.3.5.a-1 


4.2.3.4.3.5.b  H̲A̲N̲D̲L̲E̲ ̲P̲R̲O̲T̲O̲C̲O̲L̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲

                 Narrative

                     The protocol information are handled

                     -    if input request the PUHFLAG
                          is incremented

                     -    if cancel input the PUHFLAG
                          is decremented.

                     PUHFL(1) = 0   default

                     PUHFL(2) = 0   "  "

                 Flowgram



                 NA



4.2.3.4.3.5.c  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲I̲S̲P̲A̲T̲C̲H̲ ̲C̲O̲N̲T̲R̲O̲L̲

             Narrative

                 The control field in the data buffer
                 is used as the key for dispatching
                 the data-buffer to procedure which
                 is responsible for handling the specified
                 control.

                 If the data buffer contains a configure
                 CCB control command one empty buffer
                 is reserved from the PUHANDLERS pool
                 of buffers linked to the PUHEMT queue.

                 Flowgram.


                 Ref. fig, 4.2.3.4.3.5.c-1


   PROCEDURE DISPATCH ̲CONTROL (BUFFER: MESSAGE)
                                     (ANSWER: ANSWERS)

   EQUIVALENCE (BUFFER.DATBUF(4), DATABUF: CONTROL
   ̲COMMAND)

   DATBUF.CMD ̲TYPE EQ

     COPSY ̲CMD ̲L? CASE DATABUF.CMD OF:

                     CONTROL? - RECPOL (PUHEMT)(CC,
                     EMTBUF)

                                      CC EQ NO ̲CY?
                                    - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(PUH,NO
                                    ̲BUF)

                                      S̲E̲T̲ ̲C̲O̲N̲T̲R̲O̲L̲(DATBUF.INF,
                                    EMTBUF)
                                               (ANSWER)

                                      SEND(EMTBUF,
                                    PUHEMT)

                     WHO ̲AM ̲I? - R̲E̲T̲U̲R̲N̲ ̲Y̲O̲U̲ ̲A̲R̲E̲ (BUFFER)(ANSWER)

                     GO.CAMPS ̲WDP? - I̲N̲I̲T̲I̲A̲L̲I̲Z̲E̲ ̲K̲E̲E̲P̲
                     ̲A̲L̲I̲V̲E̲(BUFFER)
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       (ANSWER)

                     KEEP ̲ALIVE? - W̲A̲T̲C̲H̲ ̲P̲U̲ (BUFFER)(ANSWER)

                     CONFIGURATION? - U̲P̲D̲A̲T̲E̲ ̲T̲A̲B̲L̲E̲
                     (BUFFER)(ANSWER)

                     OTHERS?- A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(PUH, COPSY
                     ̲IF)


                     END CASE


   A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (EXTERN, PUH, COPSY ̲IF)



   END DISPATCH ̲CONTROL









               Fig.4.2.3.4.3.5.c-1


4.2.3.4.3.5.d  Procedure SET-CONTROL

             Narrative:

                 Completes the message buffer delivered
                 (pointer to data buffer start).

                 Send the buffer to the SYSCON semaphore
                 SYSSEM and await the completion of
                 the control.



             Flowgram





             Ref. fig. 4.2.3.4.3.5.d-1


   PROCEDURE SET ̲CONTROL(DATABUF: PU ̲HAND ̲COMMAND,

                          EMTBUF: MESSAGE)

                          (ANSWER: ANSWERS)

   EMTBUF.ADDRESS ̲ANSWER ̲SEM = PUHANS

   EQUIVALENCE (EMTBUF.DATBUF, HELREG: CONTROL ̲COMMAND)

   HELREG. MESCOD = CONTROL

   HELREG. COMMAND = DATBUF. INF (1)

   HELREG. PARAMS (1..4) = DATBUF. INF (2..5)

   SEND (EMTBUF, SYSSEM)

   RECEIV(PUHANS)(EMTBUF)

   ANSWER = EMTBUF. MESCOD


   END SET ̲CONTROL





















              Fig. 4.2.3.4.3.5.d-1


4.2.3.4.3.5.e    P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲W̲A̲T̲C̲H̲ ̲P̲U̲

             Narrative


                 Receive Timer Commands and "Keep alive"
                 message.

                 If Timer command decrement TIM(1),
                 TIM(2) if different from NOTIM.

                 If TIM(1) or TIM(2) equal zero a keep
                 alive message is missing and the PU
                 ̲SOFT ̲ERROR is called.

                 If "keep alive" messages reset the
                 TIM(PU NO).

                 If the PU from which the keep-alive
                 message is received is active and
                 the time of day is included the WDP
                 system time is updated.

             Flowgram

                 Ref. fig. 4.2.3.4.3.5.c-1


   PROCEDURE WATCH ̲PU (BUFFER : MESSAGE)(ANSWER

   BUFFER. MESCOD EQ INT ̲COMMAND?

     COUNT = 0

     LOOP

         COUNT = COUNT + 1

         TIM (COUNT) EQ NO ̲TIM? - ACTION = NO

         TIM (COUNT) = TIM(COUNT) - 1

         TIM (COUNT) NE 0? - ACTION = NO


         ACTION = ERRO


         ACTION EQ ERRO? - PU SOFT ̲ERROR (COUNT)

         COUNT EQ 2?      EXIT


     END LOOP


   ANSWER = OK

   BUFFER. ADDRESS ̲OF ̲RET ̲QUEUE EQ PU1 EMT? - COUNT
   = 1

   COUNT = 2


   TIM (COUNT) EQ NO ̲TIM?

   TIM (COUNT) = 0, MAXTIM


   PU(COUNT) NE ACTIVE?

   TIME OF DAY included? - update WDP ̲TIME


   END WATCH ̲PU

              Fig. 4.2.3.4.3.5.e-1


4.2.3.4.3.5.f  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲P̲U̲ ̲S̲O̲F̲T̲ ̲E̲R̲R̲O̲R̲

             Narrative


                 Depending of the PU state the following
                 action is taken:

                 -   if Active + (Standby)

                     o    Switchover
                     o    GO ̲SB ̲AC + report to Standby
                          PU
                     o    update configuration table

                 -   if Standby + (Active)

                     o    RESET PU
                     o    Report to active PU
                     o    Update configuration table

                 -   if Standby or Active + (offline)

                     o    RESET PU
                     o    Report to WDP ̲ROP
                     o    update configuration table



                 Flowgram


                     ref. fig. 4.2.3.4.3.5.f-1


   PROCEDURE PU ̲SOFT ̲ERROR(COUNT: 1..2)


   COUNT EQ 1? - NEXT = 2

   NEXT = 1


   RECPOL(PUEMT)(CC, CONBUF)

   CC EQ NO ̲CY? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(INTERN, PUH, NO ̲BUF)

   CONBUF.ADDRESS ̲ANSWER ̲SEM = PUHANS

   EQUIVALENCE(CONBUF, HELREG : CONTROL ̲COMMAND)

   HELREG.MESCOD = CONTROL

   EQUIVALENCE(CONFIG ̲TABLE.PU ̲N, MYREG: ARRAY(1..2)
   OF PU ̲STATE)

   MYREG(COUNT)EQ PU ̲ACTIVE? - REPORT = NO

             MYREG(NEXT) EQ STANDBY? - HELREG.CMD =
             SWITCHOVER, REPORT = 2

             HELREG. CMD = RESET, HELREG. INF(1) =
             COUNT, REPORT = 1

   REPORT = 1

   HELREG. CMD = RESET, HELREG. INF(1) = COUNT


   SEND(CONBUF, SYSSEM)

   RECEIV(PUHANS)(CONBUF)

   CONBUF.MESCOD EQ CONTROL ̲NACK? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(INTERN,
   PUH,

   SEND (CONBUF, PUEMT)                                                CCB)


   REPORT EQ NO?

   S̲E̲N̲D̲ ̲R̲E̲P̲O̲R̲T̲ (REPORT)


   END PU ̲SOFT ̲ERROR

             Figure 4.2.3.4.3.5.f-1.



4.2.3.4.3.5.g  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲R̲E̲P̲O̲R̲T̲

                 Narrative



                 Send a Message buffer to

                 -   Active PU if any and if 
                     PU ready for receiving the message

                 -   If no Active PU send to WDP ̲ROP
                     
                     via the LP ̲HANDLER



             Flowgram




             ref. fig. 4.2.3.4.3.5.g-1


   PROCEDURE SEND ̲REPORT(REPORT:1..NO ̲OF ̲REPORTS)


   CONFIG ̲TABLE.PU ̲N(1) EQ ACTIVE? SEM = PU1 SEM, COUNT
   = 1

   CONFIG ̲TABLE.PU ̲N(2) EQ ACTIVE? SEM = PU2 SEM, COUNT
   = 2

   SEM = LPHSEM

   RECPOL (HEASEM)(CC, LPMES)

   CC EQ NO ̲CY? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (INTERNAL, SERP, NO
   ̲BUF)

   LPMES. ADDDRESS ̲OF ̲DATA ̲BUF = TEXT(REPORT)

   SEND(LPHSEM, SEM)


   SEM EQ LPHSEM?

   G̲E̲T̲ ̲P̲U̲ ̲B̲U̲F̲(CCB ̲REPORT)(PU ̲BUF)

   EQUIVALENCE(PU ̲BUF, DREG: PU ̲HAND ̲COMMAND)

   REPORT EQ 2? DREG.INF(1) = GO ̲SB ̲AC, DREG.INF(15..28)
   = WDP.INF

   DREG.INF(1) = SB ̲PU ̲DOWN

   DREG.INF(2) = PU

   DREG.INF(3) = NO ̲KEEP ̲ALIVE

   PU ̲FL(COUNT) EQ 0? A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(EXTERNAL, BERP,
   NO ̲INT)

   PU ̲FL(COUNT) = PU ̲FL (COUNT)-1

   SEND(PU ̲BUF, SEM)


   END SEND ̲REPORT





              Fig. 4.2.3.4.3.5.g-1


4.2.3.4.3.5.h  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲I̲A̲L̲I̲Z̲E̲ ̲K̲E̲E̲P̲ ̲A̲L̲I̲V̲E̲

             Narrative


                 The TIM(PU) data element is activated
                 (TIM(PU) = MAXTIM). If the command
                 is from the Standby PU,
                 A report is sent to the active PU
                 (if present) 
                 (WDP ̲CMD, CCB ̲REPORT, SB ̲UP) and the
                 config ̲table is updated.



             Flowgram



             ref. fig. 4.2.3.4.3.5.h-1


   PROCEDURE INITIALIZE ̲KEEP ̲ALIVE (BUFFER: MESSAGE)

                                               (ANSWER:
                                               ANSWERS)
   ANSWER = OK

   BUFFER.ADDRESS ̲OF ̲RET ̲QUEUE EQ PU1 EMT? - COUNT
   = 1

   COUNT = 2


   EQUIVALENCE(BUFFER.DATBUF(4), REG: PU ̲HAND ̲COMMAND)

   CONFIG ̲TABLE.PU ̲N(COUNT) = REG.INF(1)

   REG.INF(1) EQ ACTIVE ̲PU?  WDP ̲TIME = REG.INF(2..15)

   COUNT EQ 1? - INDEX = 2, SEM = PU2SEM

   INDEX = 1, SEM = PU1SEM

   CONFIG ̲TABLE.PU ̲N(INDEX) NE PU ̲ACTIVE?

   GET ̲PU ̲BUF(CCB ̲REPORT)(PU ̲BUF)

   EQUIVALENCE (PU ̲BUF, DREG : PU ̲HAND ̲COMMAND)

   DREG.INF(1) = SB ̲PU ̲UP

   PU ̲FL(INDEX) EQ O? A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(EXTERNAL, PUH,
   NO ̲INIT)

   PU ̲FL(INDEX) = PU-FL(INDEX) - 1

   SEND(PU ̲BUF, SEM)


   TIM(COUNT) = MAXTIM


   END INITIALIZE ̲KEEP ̲ALIVE






              fig. 4.2.3.4.3.5.h-1


4.2.3.4.3.5.i  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲E̲T̲U̲R̲N̲ ̲Y̲O̲U̲ ̲A̲R̲E̲

             Narrative


                 The answer to who am I is returned
                 with the PU ̲NO


             Flowgram


             PROCEDURE RETURN ̲YOU ̲ARE(BUFFER: MESSAGE)
                                               (ANSWER
                                               : ANSWERS)
             ANSWER = OK

             GET ̲PU ̲BUF (YOU ̲ARE)(PU ̲BUF)

             BUFFER.ADDRESS ̲OF ̲RET ̲QUEUE EQ PU1 EMT?
             - PU ̲NO = 1,

             PU ̲NO = 2, SEM = PU2 SEM                                  SEM
                                                                       =
                                                                       PU1
                                                                       SEM


             PU ̲FL(PU ̲NO) EQ O? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (EXTERNAL,
                                               PUH,NO
                                               ̲INIT


             PU ̲BUF.INF(1) = PU ̲NO


             SEND (PU ̲BUF, SEM)


             END RETURN ̲YOU ̲ARE


4.2.3.4.3.5.j  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲U̲P̲D̲A̲T̲E̲ ̲T̲A̲B̲L̲E̲

             Narrative


                 The configuration is received from
                 the PU subsequent to:

                 -   Active PU start

                 -   Reinsertion of the WDP


                 The configuration is used for setting
                 up the configuration table and the
                 scan ̲tables.



             Flowgram




             ref. fig. 4.2.3.4.3.5.j-1


   PROCEDURE     UPDATE ̲TABLE (BUFFER: MESSAGE)

                                               (ANSWER
                                               : ANSWERS)

   ANSWER = OK

   EQUIVALENCE(BUFFER.DATBUF(4), REG: PU ̲HAND ̲COMMAND)

   CONFIG ̲TABLE = REG. INF(1..17)              

   BUFFER.ADDRESS ̲OF ̲RET.QUEUE EQ PU1 EMT? COUNT =
   2, NEXT=1 SEM=PU1SEM

   COUNT = 1, SEM = PU 2 SEM, NEXT = 2

   TIM(COUNT) EQ NO ̲TIM?

   CONFIG ̲TABLE.PU ̲N(COUNT) EQ PU ̲STANDBY?

   CONFIG ̲TABLE.PU ̲N(COUNT) = PU ̲STANDBY

   GET ̲PU ̲BUF(CCB ̲REPORT)(PU ̲BUF)

   EQUIVALENCE(PU ̲BUF, DEREG: PU ̲HAND ̲COMMAND)

   DREG. INF(1) = SB ̲PU ̲UP

   PU ̲FL(NEXT) EQ O? A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(EXTERNAL, PUH, NO
   ̲INIT)

   SEND ̲(PU ̲BUF, SEM)


   UPDATE ̲SCAN ̲TABLES


   END UPDATE ̲TABLES










              Fig. 4.2.3.4.3.5.j-1


4.2.3.4.4    L̲P̲ ̲H̲A̲N̲D̲L̲E̲R̲



4.2.3.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 functions of the LP ̲HANDLER module
             are

             -   Receive reports, error-reports and
                 command logs to be printed

             -   Receive status from the printer driver

                 o   Paper low
                 o   transmission failed
                 o   transmission ok


             If the printer has been out ̲of ̲service
             a report is sent to the PU when it is
             back again.



4.2.3.4.4.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

                 NA



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

             a1) T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

                 MESSAGE
                 PRINT ̲REPORT

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

                 LPHSEM
                 ROPANS
                 LPSEM

             b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

                 LPBUF
                 CONFIGTABLE.PU ̲N



             c)  L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲

                 SEM:     INTEGER
                 HEAD: 1..3
                 COUNTER: 2..4
                 COUNT: UP, DOWN
                 NEXT: BOOLEAN
                 HEAD ̲START: 1..2
                 HEAD ̲END: 1..2
                 LAST PRINT: REPORTS
                 START ̲PRINT %: POINTER
                 SIZE : BYTE



4.2.3.4.4.4 C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

             The following components are used by the
             LP ̲HANDLER


             -   LP ̲HANDLER
             -   SYNCHRONIZE
             -   OFFLINE PRINT
             -   POL ̲LP
             -   ONLINE ̲PRINT
             -   SEND ̲COUNTER
             -   SERVE ̲COUNTER
             -   SEND ̲HEADER
             -   RETURN ̲ASYN
             -   SEND ̲BREAK
             -   ANALYSE ̲ERROR (COMMON)



4.2.3.4.4.5 L̲P̲ ̲H̲A̲N̲D̲L̲E̲R̲ ̲D̲E̲S̲I̲G̲N̲

             The procedures contained in the LP ̲HANDLER
             process are shown on fig. 4.2.3.3-3.


4.2.3.4.4.5.a  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲L̲P̲ ̲H̲A̲N̲D̲L̲E̲R̲

             Narrative

                 Depending of the message code a subprocedure
                 is chosen for handling of the printout.

                 The answer to the printout is returned
                 to the sender.

                 Subsequent to a WDP ̲ROP failure the
                 LP drive is periodically requested
                 for status.


             Flowgram.



             Ref. fig. 4.2.3.4.4.5.a-1


   PROCEDURE LP ̲HANDLER

   LOOP

     RECEIV(LPHSEM)(LPBUF)

     EQUIVALENCE(LPBUF.DATBUF, REG: PRINT ̲REPORT)

     CASE REG.MESCOD OF:

         OFFPRI? - O̲F̲F̲L̲I̲N̲E̲ ̲P̲R̲I̲N̲T̲(LPBUF), SEM = RETURN
         ̲SEM

         STATUS ̲LP ̲ACK? - R̲E̲T̲U̲R̲N̲ ̲A̲S̲Y̲N̲ (1), SEM = RETURN
         ̲SEM

         STATUS ̲LP ̲NACK? - P̲O̲L̲ ̲L̲P̲,  SEM = RETURN ̲SEM

         NEXT = TRUE

     END CASE

   CONTINUE


   NEXT EQ FALSE?

   S̲Y̲N̲C̲H̲R̲O̲N̲I̲Z̲E̲ (LPBUF)(SYNC)

   SYNC EQ FALSE?

   REQ.MESCOD EQ MESSAGE ASCII?

         LPBUF.ADDRESS ̲OF ̲RET QUEUE EQ LPEMT? S̲E̲N̲D̲
         ̲A̲S̲Y̲N̲ (3, LPBUF)

         LPBUF ADDRESS ̲OF RET ̲QUEUE EQ PU1EMT? SEM
         = PU1SEM, HEAD = 1

         HEAD = 2, SEM = PU2SEM

   REQ.MESCOD EQ WDP ̲MES? - HEAD = 3
                                    SEM = RETURN ̲SEM
   A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(INTERN, ROPH, INF)

   O̲N̲L̲I̲N̲E̲ ̲P̲R̲I̲N̲T̲ (HEAD)

   SYNC EQ FALSE?

   NEXT EQ FALSE? - NEXT = TRUE

   S̲E̲N̲D̲ ̲C̲O̲U̲N̲T̲E̲R̲S̲

   LPBUF.ADDRESS ̲OF ̲ANSWER ̲SEM = DUMMY

   SEM EQ RETURN ̲SEM? - R̲E̲T̲U̲R̲N̲ ̲M̲E̲S̲S̲A̲G̲E̲(LPBUF)

   SEND(LPBUF, SEM)



   END ROP ̲HANDLER












             Figure 4.2.3.4.4.5.a-1.


4.2.3.4.4.5.b P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲Y̲N̲C̲H̲R̲O̲N̲I̲Z̲E̲

             Narrative:

                 If a message which has no connection
                 with the LDUs which are sent for print
                 (a number of LDUs), the message is
                 taken out of the queue a returned
                 to last position in the queue.


             Flowgram



             ref. fig. 4.2.3.4.4.5.b-1


   PROCEDURE SYNCHRONIZE (LPBUF: PRINT ̲REPORT)(STOP
   : BOOLEAN)

   SYNC

   BUSYFL EQ FALSE? -     HELREG. BUFTYP NE START ̲LDU?

                          BUSYFL = TRUE  

   CASE HELREG. BUFTYP OF:

     START ̲LDU, ENTIRE ̲LDU? - SEND(LPBUF, LPHSEM),

                                      SYNC = FALSE

     PART ̲LDU?

     LAST ̲LDU? - BUSYFL = FALSE


   END CASE


   END SYNCHRONIZE






















              Fig. 4.2.3.4.4.5.b-1


4.2.3.4.4.5.c  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲O̲F̲F̲L̲I̲N̲E̲ ̲P̲R̲I̲N̲T̲

             Narrative

                 If the messsage is the first to be
                 printed a header is printed before
                 the message is printed and a flag
                 (OFF FLAG = TRUE) is set.


                 Before the next messages received
                 are given over direct to the LPdriver,
                 a "tab"(4 spaces) are sent.

                 No offline messages are printed if
                 an online print not terminate instead
                 a break is sent to the offline PU.



                 Flowgram.

                 ref. fig. 4.2.3.4.4.5.c-1



   PROCEDURE OFFLINE ̲PRINT (LPBUF: MESSAGE)

   BUSYFL EQ TRUE? - SEND ̲BREAK, SEM = RETURN ̲SEM,
   NEXT = FALSE

   OFFLAG EQ TRUE?

   CONFIGTABLE.PU ̲N(1) EQ OFFLINE? HEAD = 1

   HEAD = 2

   COUNTER = 3

   S̲E̲R̲V̲E̲ ̲C̲O̲U̲N̲T̲E̲R̲ (COUNTER, UP)

   HEAD ̲START = 1

   HEAD ̲END = 2

   S̲E̲N̲D̲ ̲H̲E̲A̲D̲E̲R̲ (HEAD, HEAD ̲START, HEAD ̲END)

   LAST ̲PRINT = OFPRIN

   ROP ̲DOWN EQ TRUE?

   REC POL(SYNSEM)(SYNCBUF, CC)

   CC EQ NO ̲CY? ANALYSE ̲ERROR(INTERN, OFFL, NO ̲BUF)

   SEND (SYNCBUF, LPSEM)

   RECEIV(ROPANS)(SYNCBUF)

   SYNCBUF.MESCOD EQ MESSAGE ̲NACK? - RETURN ̲ASYN(2)

   SYNCBUF.MESCOD = MESSAGE ̲ACII

   LPBUF.ADDRESS ̲OF ̲ANSWER ̲SEM = ROPANS

   SEND(LPBUF, LPSEM)

   RECEIV(ROPANS)(LPBUF)

   LPBUF.MESCOD EQ MESSAGE ̲NACK? RETURN ̲ASYN(2)

   LPBUF.ADDRESS ̲OF ̲ANSWER ̲SEM = DUMMY

   END OFFLINE ̲PRINT
             Fig. 4.2.3.4.4.5.c - 1


4.2.3.4.4.5.d  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲E̲T̲U̲R̲N̲ ̲A̲S̲Y̲N̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲


                 Any change in the status of the ROP
                 results in an asynchron report to
                 SSC ̲HANDLER which sends it on to WAMCO
                 in SSC (SEM = RETURN ̲SEM)

                 The asynchron reports are:

                 -   ROP ̲UP
                 -   ROP ̲DOWN
                 -   PAPER ̲OUT
                 -   PAPER ̲IN



             Flowgram


             NA



4.2.3.4.4.5.e  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲P̲O̲L̲ ̲L̲P̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

                 After a specified period the WDP ̲ROP
                 is requested to send its new status.


             Flowgram.

             NA



4.2.3.4.4.5.f P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲O̲N̲L̲I̲N̲E̲ ̲P̲R̲I̲N̲T̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

                 For each messge (i.e. reports, error
                 reports, and log) a header is included
                 before the message is printed.

             F̲l̲o̲w̲g̲r̲a̲m̲

             Refer Figure 4.2.3.4.4.5.f-1


   PROCEDURE ONLINE ̲PRINT(HEAD: 1..3, LPBUF : PRINTREPORT)

   EQUIVALENCE (LPBUF.DATBUF(4), REG : PRINT ̲REPORT)

   BUSY.FL EQ TRUE?

   REG.CMO ̲TYPE NE COPSY ̲REPORT OR CMI ̲LOG OR
                     WDP ̲REPORT? - ANALYSE ̲ERROR (INTERN,ONLPR,
                     INF,)

   CASE REG CMD OF

     REPORT? - COUNTER = 3, HEAD ̲START = 2, HEAD ̲END
     = 2

     ERROR ̲REP? - COUNTER = 2, HEAD ̲START = 1, HEAD
     ̲END = 2

     LOG ̲INI? - COUNTER = 4, HEAD ̲START = 2, HEAD ̲END
     = 1

     LOG ̲COMP? - COUNTER = DUMMY, HEAD ̲START = 2, HEAD
     ̲END = 1

     OTHERS? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(INTERN, ONLPR, INF2)

   END CASE

   S̲E̲R̲V̲E̲ ̲C̲O̲U̲N̲T̲E̲R̲(COUNTER, UP)

   S̲E̲N̲D̲ ̲H̲E̲A̲D̲E̲R̲ (HEAD, HEAD ̲START, HEAD ̲END)

   ROP ̲DOWN EQ TRUE?

   REG. CMD ̲TYPE =  SPACE  ,  SPACE

   REG. CMD =  SPACE  ,  SPACE

   LPBUF ̲ADDRESS ̲OF ̲ANSWER ̲SEM = ROPANS

   SEND(LPBUF, LPSEM)

   RECEIVE(ROPAN)(LPBUF)

   LPBUF.MESCOD EQ MESSAGE ̲NACK? R̲E̲T̲U̲R̲N̲ ̲A̲S̲Y̲N̲ (2)

   COUNTER EQ 2? LAST ̲PRINT = ERROR ̲REP


   END ONLINE ̲PRINT

              Fig. 4.2.3.4.4.5.f-1


4.2.3.4.4.5.g  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲R̲V̲E̲ ̲C̲O̲U̲N̲T̲E̲R̲ ̲

             Narrative


                 The print-counter and the counter
                 specified (ERROR, TRANS, REPORT) are
                 incremented or decremented.


             Flowgram


             N/A



4.2.3.4.4.5.h  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲H̲E̲A̲D̲E̲R̲

             Narrative

                 If offline flag true send a "Break"
                 to the offline PU. Print the header
                 for the next message to be printed.


             Flowgram

             Refer figure 4.2.3.4.4.5.h-1


   PROCEDURE SEND ̲HEADER(HEAD, HEAD ̲START, HEAD ̲END)

   EQUIVALENCE(HEADBUF, REG: HEAD ̲BUFFER)

   LAST ̲PRINT EQ OFFPRIN OR ERROR ̲REP? - HEAD ̲START
   = 1

   RECPOL(HEASEM)(CC, PRIBUF)

   CC EQ NO ̲CY? - ANALYSE ̲ERROR(INTERN, SEHEAD, NO
   ̲BUF)

   CASE HEAD ̲START OF

     1? - START ̲PRINT % = HEAD ̲BUF.CTRL 1, SIZE = LONG
     ̲HEAD ̲SIZE

     2? - START ̲PRINT % = HEAD ̲BUF.CTRL 2, SIZE = SHORT
     ̲HEAD ̲SIZE

   END CASE

   START ̲PRINT % - 4 = MESCOD = ASCII

   PRIBUF.ADDRESS ̲OF ̲DATA ̲BUFFER = START ̲PRINT % -
   4

   HEAD ̲END EQ 1? - SIZE = SIZE - 3


   HEADBUF.HEAD(1..4) = HEADER(HEAD)

   PRIBUF.BYTE ̲SIZE = SIZE

   SEND (PRIBUF, LPSEM)

   RECEIV(LPSEM)(PRIBUF)

   SEND(PRIBUF, HEASEM)

   START ̲PRINT % - 4 EQ MESSAGE ̲NACK? RETURN ASYN(2)


   HEADBUF.CNTRLI = PAGESHIFT, LF, CR, SP, SP, SP


   END SEND ̲HEADER



              Fig. 4.2.3.4.4.5.h-1


4.2.3.4.4.5.i  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲B̲R̲E̲A̲K̲

             Narrative


                 A "BREAK" is sent to the offline PU
                 if

                 -   a log or
                 -   a printout (e.g. system status)
                     or
                 -   an errorreport


                 are received during printout of offline
                 communication.]



             Flowgram


             NA



4.2.3.4.4.5.j  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲C̲O̲U̲N̲T̲E̲R̲

             Narrative


                 Send the counter values taken from
                 the read buffer to the active PU if
                 present.


             Flowgram


             NA


4.2.3.4.5    S̲y̲s̲t̲e̲m̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲S̲Y̲S̲C̲O̲N̲)̲



4.2.3.4.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 functions performed by SYSCON are:

             -   receive and handle reports from the
                 CCB driver

                 o   change of the digital status
                 o   voltage too low in a crate
                 o   CCB driver bus errors detected

             -   receive direct operator commands

             -   receive command from the PU

                 o   control commands
                 o   monitoring requests

             The control/monitoring command are interpreted
             a command is sent to the CCB driver



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

             NA

             "monitor call"


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

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

                 MESSAGE                                               4.2.3.5.1
                 CONTROL ̲COMMAND               4.2.3.5.2
                 CONFIG ̲TABLE                                          4.2.3.5.3

             b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

                 MESSAGE.STATUS     (m)
                 MESSAGE.ADDRESS ̲OF ̲RET ̲QUEUE
                 MESSAGE.ADDRESS ̲DATA ̲BUF
                 MESSAGE.ADDRESS ̲ANSWER ̲SEM
                 MESSAGE.DAT ̲BUF    (m)

             c)  L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲



   TYPE      ANALOG ̲DATA ̲BUFFER =

                 RECORD

                     BUFHED : BUFFER ̲HEADER
                     ANADAT : ANALOG ̲DATA

                 END


   TYPE      DIGITAL ̲DATA ̲BUFFER =

                 RECORD

                     BUFHED: BUFFER ̲HEADER
                     DIGDAT: DIGITAL ̲DATA

                 END


   TYPE      CCB ̲CODE =

                 RECORD

                     CCB ̲AD: CCB ̲ADDRESS

                     CONTROL : CONTROL ̲CODE

                 END


   The buffers are used for communication with the
   CCB driver.


   TYPE      ANALOG ̲DATA =

                 RECORD


                     MESCOD: MESSAGE ̲CODE;
                     CCBCOD: CCB ̲CODE;
                     SIGN,
                     TENS,
                     UNITS,
                     DECIPO,
                     TENTHS,
                     SPARE: BYTE

                 END
   The analog data gives the voltage of the power supply
   monitored by the WDP via the CCB (Configuration
   Control Bus)


   TYPE      DIGITAL ̲DATA =

                 RECORD


                     MESCOD: MESSAGE ̲CODE;
                     CCBCOD: CCB ̲CODE;
                     DIGLSB,
                     DIGMSB: BYTE;

                 END
   The digital data gives the present status of the
   status signal (high/low) on a specified module (BSH
   ̲X or CCA).
   The status is monitored via the CCB


   TYPE      CCB ̲ERROR ̲MESSAGE =

                 RECORD

                     BUFHED: BUFFER ̲HEADER;
                     MESCOD: MESSAGE ̲CODE;

                 END


             A̲n̲a̲l̲o̲g̲ ̲B̲u̲f̲f̲e̲r̲ ̲F̲o̲r̲m̲a̲t̲

             Buffers containing data of analog values have the
             following format:


         0       MESSAGE ̲CODE

         1

         2       CCB-CODE

         3

         4       SIGN

         5       TENS

         6       UNITS

         7       DECIMAL POINT

         8       TENTHS

         9       SPARE


         CCB-CODE: Identifies the measured value.
             (See CCB-CODE format)


         SIGN
         TENS
         UNITS                         Measured value in ASCII
         DECIMAL POINT
         TENTHS                        (See ASCII-formats)


         D̲i̲g̲i̲t̲a̲l̲ ̲B̲u̲f̲f̲e̲r̲ ̲F̲o̲r̲m̲a̲t̲

         Buffers containing digital values have the following
         format:

         0       MESSAGE-CODE

         1   

         2       CCB-CODE

         3

         4       Digital value         LSB

         5                             MSB


         CCB-CODE:   Identifies the digital value to be controlled
                     or monitored.

                     (See CCB-CODE format)

                     When a message is returned from the CCB-driver,
                     the ACK/NACK information in the messagecode
                     refer to the bit(s) specified in the CCB-Code.

         Digital
         value:      The meaning of the digital value depends
                     on the matching message code.

                     I̲f̲ ̲R̲E̲A̲D̲:̲          The digital value is
                                       the input-value from
                                       the CCB-units.

                     I̲f̲ ̲W̲R̲I̲T̲E̲:̲         The digital value is
                                       the output-value to the
                                       CCB-units


         C̲C̲B̲-̲C̲O̲D̲E̲ ̲F̲o̲r̲m̲a̲t̲

         The CCB-CODE specifies the value to be controlled or
         monitored. This value can either be an analog or a
         digital depending on the message code.


         CCB-CODE    CCB-ADDRESS

                     CONTROL CODE      LSB

                                       MSB


         CCB-ADDRESS:
                     Specifies the address of the CCB-UNIT.


                     CCB-ADD = 0, 1, 2..........31


                     To identify the type of CCB-unit connected
                     to a concerned address, a table has to
                     be defined. The format of the table is
                     described in connection with the CCB-driver.


         CONTROL-CODE:      The format of the CONTROL-CODE depends
                            on the matching message code.

                            I̲f̲ ̲m̲e̲s̲s̲a̲g̲e̲ ̲c̲o̲d̲e̲ ̲=̲ ̲A̲N̲A̲L̲O̲G̲:̲

                            CONTROL-CODE: MSB = DUMMY

                                             LSB = 0: Channel
                                            0
                                                   1: Channel
                                            1

                                                  15: Channel
                                            15
                                             16-FFH: NOT VALID


                            I̲f̲ ̲m̲e̲s̲s̲a̲g̲e̲ ̲c̲o̲d̲e̲ ̲=̲ ̲D̲i̲g̲i̲t̲a̲l̲

                            The position of "1" in the CONTROL-CODE
                            specifies the bit(s) to be considered
                            in the digital value. The CONTROL-CODE
                            format is equal to the format of
                            the digital value.


4.2.3.4.5.4  S̲Y̲N̲C̲O̲N̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         The following components are contained in SYSCON process,
         the components are implemented as procedures.

         -   SYSCON
         -   CONF ̲HANDLING
         -   CONFIG ̲PU
         -   CONFIG ̲CU
         -   CONFIG ̲BSMX
         -   SWITCHOVER
         -   SEND ̲OPERATOR.REPORT
         -   SEND ̲ERROR ̲REPORT
         -   CONTROL ̲SEND
         -   SWITCH.BSMX
         -   SWITCH CU
         -   DISABLE ̲PU
         -   MASTERCLEAR
         -   RESET ̲PU
         -   SET ̲MAINTENANCE
         -   PU ̲CU ̲LINK



4.2.3.4.5.5  S̲Y̲S̲C̲O̲N̲ ̲D̲e̲s̲i̲g̲n̲ ̲

         The SYSCON consists of the main procedure SYSCON and
         a number of subprocedures. The procedures are shown
         on fig. 4.2.3.3-4c(b).



4.2.3.4.5.5.a  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲Y̲S̲C̲O̲N̲

         Narrative

             Wait until a message arrives in the SYSSEM.

             Get the message and interpret the "message code"
             for dispatching the handling of the message to
             the given procedure.

             Return the message ̲buffer to either the answer
             semaphore or the return semaphore.

         Flowgram

             ref. fig. 4.2.3.4.5.5.a-1



   PROCEDURE SYSCON

   WAIT (SYSSTART)

   CLEAR(SYSSEM) "The buffer linked to the SYSSEM is
                 released

   LOOP

         RECEIV(SYSSEM)(MESSAGE)

         CASE    MESCOD OF

             ERROR ̲CCB ̲DRIVER? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(EXTERNAL,
             SYSCON,                                                  STATUS)

             DIGITAL ̲CHANGE,

             ANALOG ̲CHANGE? - C̲O̲N̲F̲ ̲H̲A̲N̲D̲L̲I̲N̲G̲ (DATBUF)


             CONTROL? -                S̲E̲N̲D̲ ̲C̲O̲N̲T̲R̲O̲L̲(DATBUF)


             OTHERS? -      A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(INTERNAL,
                            SYSCON, MESCOD)


         END CASE

         ANSWER ̲REQUIRED? - SEND(MESSAGE, ANSWER ̲SEM)

         SEND(MESSAGE, RETURN ̲QUEUE)


   END LOOP


   END SYSCON






              Fig. 4.2.3.4.5.5.a-1


4.2.3.4.5.5.b  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲F̲ ̲H̲A̲N̲D̲L̲I̲N̲G̲

             Narrative:


                 The CCB address is read and depending
                 of the error-type the action can be:

                 -   switch over
                 -   close down
                 -   warning report (manual switch
                     change)
                 -   BSMX down


             Flowgram



                 ref. fig. 4.2.3.4.5.5.b.1


   PROCEDURE CONFIG ̲HANDLING(DATBUF: ANALOG ̲DATA/DIGITAL
   ̲DATA)

   RECPOL    (SYSEMT)(EMPT ̲BUFF, CC)

   CC EQ NO ̲CY? -    A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(INTERNAL, SYSCON,
                     NO ̲BUF)


   CASE CCBADD OF:

         PU? -   C̲O̲N̲F̲I̲G̲ ̲P̲U̲ (DATBUF)(INF1    )

         CU? -   C̲O̲N̲F̲I̲G̲ ̲C̲U̲ (DATBUF)(INF1    )

         BSMX? - C̲O̲N̲F̲I̲G̲ ̲B̲S̲M̲X̲ (DATBUF)(INF1...INF)

         REPORT = FALSE


   END CASE

   REPORT EQ FALSE? - REPORT = TRUE

   ACTIVE ̲PU EXISTING? - SEND ̲PU ̲REPORT(CCBBUF, EMTBUF)

   S̲E̲N̲D̲ ̲O̲P̲E̲R̲A̲T̲O̲R̲ ̲R̲E̲P̲O̲R̲T̲(CCBBUF, EMTBUF)



   END CONFIG ̲HANDLING
















              Fig. 4.2.3.4.5.5.b-1


4.2.3.4.5.5.c  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲F̲I̲G̲ ̲P̲U̲

             Narrative:

                 If the report from the CCB drivers
                 is disastrous (i.e. analog report,
                 PU disable manual) the action to be
                 taken is:

                 -   if A̲C̲T̲I̲V̲E̲ ̲P̲U̲ and STANDBY ̲PU; switchover

                 -   if A̲C̲T̲I̲V̲E̲ ̲P̲U̲ and OFFLINE ̲PU; closedown
                     PU

                 -   if S̲T̲A̲N̲D̲B̲Y̲ ̲P̲U̲; closedown PU

                 (the underlined PU reported in error).

                 For all other CCB driver report a
                 warning is sent to the active PU.


             Flowgram:


                 ref. fig. 4.2.3.4.5.5.c-1


   PROCEDURE CONFIG ̲PU(CCB ̲BUF: ANADAT/DIGDAT)(REPORT:
   BOOLEAN)

   PU ̲NO = DATBUF.CCB ̲ADDRESS

   DATBUF.MESCOD EQ ANALOG ̲CHANGE?

             CONFIG ̲TABLE.PU ̲N(PU ̲NO) EQ ERROR? - REPORT
             = FALSE

             INF1 = DISAST, INF3 = ANALOG

   MASKBIT = CCB.BUF.INF(2)

   MASKBIT AND PU ̲DISMASK EQ TRUE? - INF1 = DISAST
   INF3.DIGITAL

   MASKBIT AND PU ̲TEMP EQ TRUE? - INF1 = WARNING, INF3
   = TEMP

                                          INF2 = PU,
                                       INF4 = PU ̲NO


   INF(1) EQ WARNING?

   PU ̲NO EQ 1? PU ̲NEXT = 2, SEM = PU2SEM

   PU ̲NEXT = 1

   SEM = PU1SEM


   CONFIG ̲TABLE ̲PU ̲N(PU ̲NO) EQ PU ̲ACTIVE?

             CONFIG ̲TABLE.PU ̲N(PU ̲NEXT) EQ STANDBY?

             S̲E̲T̲R̲E̲S̲E̲T̲(PU ̲NO)                INF2 =
                                            PU

                                            INF1 =
                                            GO ̲SB ̲AC

   INF1 = SB ̲PU ̲DOWN                   S̲E̲T̲S̲W̲I̲T̲C̲H̲O̲V̲E̲R̲



   END CONFIG ̲PU






              Fig. 4.2.3.4.4.5.c-1


4.2.3.4.5.5.d  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲F̲I̲G̲ ̲C̲U̲

             Narrative:

                 If the active part of the channel
                 unit is reported erroneous a switchover
                 takes place.

                 Otherwise a SB ̲CU ̲DOWN report is sent.



             Flowgram.                 



                 ref. fig. 4.2.3.4.5.5.d-1


   PROCEDURE CONFIG ̲CU (CCB ̲BUF: ANADAT/DIGDAT)


   CCBBUF.MEXCOD EQ DIGITAL ̲CHANGE?


             CASE(DIGITAL ̲CHANGE OF

                 TEMP ̲C ̲DIG? -         INF2 = TEMP,
                                       INF3 = CU

                                       TEMP ̲DOWN? -
                                       INF1 = WARNING

                                       INF1 = NORMAL
                                       ̲AGAIN

                 MANUAL ̲SWITCH? - INF3 = CU, INF2 =
                 MANUAL ̲SWITCH

                                       SWITCH ̲AUTO?
                                       - INF1 = NORMAL
                                       ̲AGAIN

                                       INF1 = WARNING

                 END CASE

   CCBBUF.CONTROL GT 3? CU ̲N = 2

   CU ̲N = 1

   SET ̲CU ̲POWER ̲FLAG (CU ̲N)

   CONFIGTABLE.PU(CU.N) EQ PU ̲ACTIVE? - INF1 = GO ̲SB
   ̲AC

                                            INF2 =
                                            CU,INF3
                                            = ANALOG

                                            S̲E̲T̲S̲W̲I̲T̲C̲H̲O̲V̲E̲R̲


   CONFIGTABLE.PU(CU.N) EQ PU ̲STANDBY?

         CU ̲POWER ̲FLAG(CU ̲N) OK? - INF1 = SB ̲CU ̲UP

         INF1 = SB ̲CU ̲DOWN

         INF2 = ANALOG

   REPORT = FALSE

   END CONFIG ̲CU
              Fig. 4.2.3.4.5.5.d-1


4.2.3.4.5.5.e  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲F̲I̲G̲ ̲B̲S̲M̲X̲

             Narrative


                 If the BSMX unit SCANS a TDX ̲CONTROLLER
                 and the error monitored is in the
                 TDX controller:

                 -   if TDX CONTROLLER ACTIVE switchover
                     
                     (TDX Bus and PU)

                 -   otherwise report TDX down

                 If no TDX error is reported or the
                 unit only contains a BSMX:

                 -   if analog or false report, BSMX
                     down

                 -   otherwise WARNING REPORT


             Flowgram


                 ref. fig. 4.2.3.4.5.5.e-1


   PROCEDURE CONFIG ̲BSMX (CCB ̲BUF: ANADAT/DIGDAT)

   REPORT = TRUE

   ENTRY = CCBBUF.CCBADDRESS

   CONFIG ̲TABLE.BSMX(ENTRY) EQ TDX1 MASK? - TDX ̲N =
   1

   CONFIG ̲TABLE.BSMX(ENTRY) EQ TDX2 MASK? - TDX ̲N =
   2

   TDX ̲N = O

   INF1 = BSMX ̲DOWN

   INF2 = ENTRY

   CCBBUF.MESCODE EQ ANALOG? - CONFIGTABLE.BSMX(ENTRY)

                                       EQ NONE ̲BUS?
                                       REPORT = FALSE

                                INF3 = ANALOG

                                CONFIG ̲TABLE ̲BSMX(ENTRY)
                                = NONE ̲BUS

   CONFIGTABLE.BSMX(ENTRY) EQ NONE ̲BUS? REPORT = FALSE

   CCBBUF.CONTROL AND BSMX ̲ERR.MASK EQ FALSE? - INF3
   = DIGITAL

                                                                       
                                                                       CONFIG
                                                                       ̲TABLE
                                                                       ̲BSMX(ENTRY)

                                                                       
                                                                       NONE
                                                                       ̲BUS

   CCBBUF.CONTROL AND BSMX ̲SWITCHMASK EQ FALSE? - INF1
   = WARNING

                                                                       
                                                                       
                                                                       
                                                                       INF2
                                                                       =
                                                                       MANUAL
                                                                       ̲SWITCH

                                                                       
                                                                       
                                                                       
                                                                       INF3
                                                                       =
                                                                       BSMX

                                                                       
                                                                       
                                                                       
                                                                       INF4
                                                                       =
                                                                       ENTRY

   REPORT = FALSE

   TDX ̲N NE O? - C̲O̲N̲F̲I̲G̲ ̲T̲D̲X̲ (TDX ̲N)


   END


              Fig. 4.2.3.4.5.5.e-1


4.2.3.4.5.5.f  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲F̲I̲G̲ ̲T̲D̲X̲

             Narrative

                 For powerdown and digital errors action
                 to be taken are:

                 -   if active TDX bus: switchover

                 -   if non-active TDX bus: non active
                     TDX down report to the active
                     PU.

                 For power up and digital resets

                 -   report non active TDX up

                 Others report:

                 -   Temp up/down

                 -   switch auto/non auto


                 Flowgram






















            ref. fig. 4.2.3.4.5.5.f-1


   PROCEDURE CONFIG ̲TDX

   CASE CONFIGTABLE TDX (TDX ̲N) OF

         ACTIVE ̲TDX2?       CASE       CCBBUF.CONTROL
                                       OF:

                            POWER ̲DOWN? -   INF1 =
                            GO ̲SB ̲AC, INF2 = TDX

                                         INF3 = ANALOG,
                                S̲E̲T̲S̲W̲I̲T̲C̲H̲O̲V̲E̲R̲

                            DISAST ̲DIGITAL? INF1 =
                            GO ̲SB ̲AC, INF2 = TDX

                                         INF3 = DIGITAL,
                                INF4 = 
                                                                       
                                                                       
                                                                       S̲E̲T̲S̲W̲I̲T̲C̲H̲O̲V̲E̲R̲

                            ACTION = FALSE

                     END CASE

         NON ̲ACTIVE ̲TDX?-   CASE CCBBUF ̲CONTROL OF:

                                POWER DOWN? - INF1
                                = NON ̲ACTIVE ̲TDX ̲DOWN

                                            INF2 =
 ANALOG,

                                            CONFIG
 ̲TABLE ̲TDX(TDX ̲N)=
                                                  
         ERROR

                                DISAST ̲DIGITAL? INF1
                                = NON ̲ACTIVE ̲TDX ̲DOWN

                                                  
                                       INF2 = DIGITAL

                                                  
                                       CONFIG ̲TABLE.TDX(TDX
                                       ̲N) =
                                                  
       ERROR

                                ACTION = FALSE

                            END CASE



   ERROR? - CASE CCBBUF.CONTROL OF:

                 POWER ̲UP?-DIGITAL SWITCH ̲OK?-                         INF1
                                                                       =
                                                                       NON
                                                                       ̲ACTIVE
                                                                       ̲TDX
                                                                       ̲UP
                                                                       INF2
                                                                       =
                                                                       ANALOG,
                                                                       CONFIG.TABLE.TDX(TDX
                                                                       ̲N)
                                                                       =
                                                                       
                                                                       NO
                                                                       ̲ACTIVE
                                                                       ̲TDX


                 DISAST ̲DIGITAL ̲OK? POWER ̲MASK ̲OK?
                 -INF1 = NON ̲ACTIVE ̲
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       TDX
                                                                       ̲UP

                                                  
                                 INF2 = DIGITAL, 
                                                  
                                 CONFIG.TABLE.TDX
                                                  
                                 (TDX N) =
                                                  
                                  NON ̲ACTIVE ̲TDX
                 ACTION =  FALSE


             END CASE



   END CASE

   ACTION = FALSE?  ̲ CCBBUF.CONTROL AND BSMX ̲SWITCHMASK

                                            EQ FALSE?
                                            INF1 =
                                            WARNING
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       INF2
                                                                       =
                                                                       MANUAL
                                                                       ̲SWITCH
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       INF3
                                                                       =
                                                                       BSMX
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       INF4
                                                                       =
                                                                       ENTRY
                                                                       
                                                                       
                                                                       
                                                                       REPORT
                                                                       =
                                                                       TRUE

   REPORT = FALSE


   END CONFIG ̲TDX













              Fig. 4.2.3.4.5.5.f-1


4.2.3.4.5.5.g P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲O̲P̲E̲R̲A̲T̲O̲R̲ ̲R̲E̲P̲O̲R̲T̲

             Narrative


                 A report defining the error occurred
                 is sent to the WDP ̲ROP if no Active
                 PU exists.


             Flowgram


             NA



4.2.3.4.5.5.h  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲P̲U̲ ̲R̲E̲P̲O̲R̲T̲

             Narrative:

                 Send an error report to the active
                 PU.

                 The error report contains the following
                 info:

                 -   name of unit in error (PU, TDX,
                     BSMX)

                 -   the monitored status (digital
                     or analog)


                 The information is loaded into an
                 ASCII buffer taken from the SYSCON
                 EMPTY queue.


                 Flowgram


                 ref. fig. 4.2.3.4.5.5.h-1


   PROCEDURE SEND ̲PU ̲REPORT (CCBBUF: ANA ̲DIG ̲CHANGE)

   RECPOL (SYSEMT)(REPORT ̲M, CC)

   CC EQ NO ̲CY? ANALYSE ̲ERROR(INTERN, SEPU, NO ̲BUF)

   EQUIVALENCE (REPORT.M, REG: PU ̲REPORT)

   REG. MESCOD = MESSAGE ̲ASCII

   REG. LINE ̲NO = COPSY ̲LINE

   REG. HEADER = DATA

   REG. CMD ̲TYPE = WDP ̲CMD

   REG. CMD = CCB ̲REPORT

   REG. INF (1) = INF1

   REG. INF (2) = INF2

   REG. INF (3) = INF3

   REG. INF (4) = INF4

   REG. INF (5..14) = CCBBUF.INF (1..9)

   CCBBUF.MESCOD EQ STATUS ̲ANALOG? SIZE = ANALOG ̲REPORT
   ̲SIZE

   SIZE = DIGITAL ̲REPORT ̲SIZE

   REG.BUFHED.BYTE ̲LENGTH = SIZE

   PU ̲FL(PU ̲NEXT) EQ O? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(EXTERNAL,SYSCON,NO
   ̲INIT)

   PU ̲FL(PU ̲NEXT) = PU ̲FL(PU ̲NEXT) . 1

   SEND(REPORT ̲M, SEM)

   RECEIV(SYSANS)(REPORT ̲M)

   REPORT M.MESCOD EQ MESSAGE ̲NACK?- A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲(EXTERNAL,SYSCON,
                                            NO ̲PV ̲ACCEPT)
   SEND (REPORT ̲M, SYSEMT)

   END SEND ̲PU ̲REPORT
              Fig. 4.2.3.4.5.5.h-1


4.2.3.4.5.5.i  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲C̲O̲N̲T̲R̲O̲L̲

             Narrative:

                 The control commands are executed
                 via the CCB driver and an answer is
                 returned.


             Flowgram


             ref. fig. 4.2.3.4.5.5.i-1


   PROCEDURE SEND ̲CONTROL(DATBUF: CONTROL ̲COMMAND)(ANSWER)

   RECPOL(SYSEMT)(EMTMES, CC)

   CC EQ NO ̲CY? - ANALYSE ̲ERROR (INTERNAL, SYSCON,
   NO ̲BUF)

   EQUIVALENCE(EMTMES, HELREG: DIGITAL ̲DATA ̲BUFFER)

   HELREG.ADDRESS ̲ANSWER ̲SEMAPHORE = SYSANS

   HELREG.DIGDAT.MESCOD = CONTROL ̲DIGITAL ̲WRITE

   CASE DATBUF.COMMAND OF

         SWITCHOVER? - S̲W̲I̲T̲C̲H̲O̲V̲E̲R̲ ̲P̲U̲   (HELREG)

         RESET?      R̲E̲S̲E̲T̲ ̲P̲U̲          (HELREG)

         MASTER ̲CLEAR? - M̲A̲S̲T̲E̲R̲ ̲C̲L̲E̲A̲R̲ ̲P̲U̲    (HELREG)

         PU ̲DISABLE? -      D̲I̲S̲A̲B̲L̲E̲ ̲P̲U̲      (HELREG)

         SET ̲PU ̲MAINTEN? - P̲U̲ ̲M̲A̲I̲N̲T̲E̲N̲A̲N̲C̲E̲   (HELREG)

         LINK ̲PU ̲CU? -      PU L̲I̲N̲K̲ ̲C̲U̲                                 (HELREG)

         BSM ̲X-SWITCH?       -S̲W̲I̲T̲C̲H̲ ̲B̲S̲M̲X̲                              (HELREG)

         IO ̲SWITCH? -       S̲W̲I̲T̲C̲H̲ ̲C̲U̲                                  (HELREG)

   END CASE

   RECEIV(SYSANS)(HELREG)

   DATBUF.MESCOD = HELREG.MESCOD

   DATBUF.STATUS = HELREG.STATUS

   SEND (EMTBUF, SYSEMT)

   END SEND CONTROL




              Fig. 4.2.3.4.5.5.i-1


4.2.3.4.5.5.j  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲w̲i̲t̲c̲h̲o̲v̲e̲r̲

             Narrative


                 The following commands are sent to
                 the CCB driver:


                 -   disable and masterclear PU
                 -   reset masterclear
                 -   switch bus in CU
                 -   switch TDX ̲BUS (BSMX modules)

                 The CCB commands are subject to timeout.
                 A timeout or CCB NACK result in a
                 call of the error handling procedure.
                 

                 A switch report is included in the
                 go active command.

                 After each CCB command the configuration
                 table is updated.


             Flowgram

                 ref. fig. 4.2.3.4.5.5.j-1


   PROCEDURE SWITCHOVER ̲PU (HELREG: DIGITAL ̲DATA ̲BUFFER)
                                "answer returned in
                                message code.

   CONFIG ̲TABLE.PU(1) EQ ACTIVE? -     ADDRESS ̲1 =
                                       PU1CCB

   ADDRESS ̲1 = PU2CCB                       ADDRESS
                                            ̲2 = PU2CCB

   ADDRESS ̲2 = PU1CCB

   HELREG. CCBCODE = ADDRESS 1, MASTERCLEAR ̲AND ̲DISABLE
   ̲PU

   SEND (HELREG, CCBSEM)

   RECEIV(SYSANS)(HELREG)

   HELREG.MESCOD EQ NACK?

   RESET ̲ACK

   HELREG.CCBCODE = ADDRESS 1, RESET ̲MASTER ̲CLEAR

   SEND (HELREG, CCBSEM)

   RECEIV (SYSANS)(HELREG)

   HELREG.MESCOD EQ NACK?

   RESET ̲ACK

   HELREG.CCBCODE = ADDRESS 2, ENABLE ̲PU

   SEND (HELREG, CCBSEM)

   RECEIV(SYSANS)(HELREG)

   HELREG.MESCOD EQ NACK?

   RESET ̲ACK

   ADDRESS 1 EQ PU1CCB? - SET = IO ̲NOT ̲A ̲IO ̲B

   SET = IO ̲A ̲IO ̲NOT ̲B

   HELREG.CCBCOD = CU ̲ADD, SET

   SEND (HELREG, CCBSEM)

   END SWITCHOVER ̲PU
              Fig. 4.2.3.4.5.5.j-1


4.2.3.4.5.5.k P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲W̲I̲T̲C̲H̲ ̲B̲S̲M̲X̲

             Narrative

                 PARAM1 gives the busassignment.

                 PARAM2 specifies which of the first
                 BSMX modules to be controlled PARAM3
                 specifies which of the next five BSMX
                 modules to be controlled.

                 PARAM4 specifies the last BSHX module
                 to be controlled.


             Flowgram



                 ref. fig. 4.2.3.4.5.5.k-1


   PROCEDURE SWITCH ̲BSMX(NELREG: DIGITAL ̲DATA ̲BUFFER)

   SET SWITCH CODE(HELREG.PARAMS(1))

   COUNT1 = O

   LOOP1

         COUNT1 = COUNT 1+1

         COUNT2 = O

         COUNT1 EQ 1? - BITTEST = HELREG.PARAMS(2)

         BITTEST = HELREG.PARAMS(3)


         LOOP 2

             COUNT 2 = COUNT2 + 1

             BITTEST(COUNT2) EQ FALSE?

             BSMX ̲ADDRESS = (COUNT1) * 7 + COUNT2 +
             BSM ̲X ̲ADD ̲OFF
                                              "inserted
                                            in ENTBUF

             SEND(EMTBUF, CCBSEM)

             RECEIV(SYSANS)(EMTME)

             EMTMES.MES.CODE CCB ̲NACK? - ANSWER = NACK

             RESET BITTEST(COUNT2)


             COUNT2 EQ 7?  EXIT

         END LOOP 2

         COUNT1 EQ 3?   EXIT

   END LOOP1

   END SWITCH ̲BSMX



              Fig. 4.2.3.4.5.5.k-1


4.2.3.4.5.5.1 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲W̲I̲T̲C̲H̲ ̲C̲U̲

             Narrative:



                 The CCB command to be sent to via
                 the CCB driver to the channel unit
                 is given in param 1.


             Flowgram:


             NA


4.2.3.4.5.5.m  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲I̲S̲A̲B̲L̲E̲ ̲P̲U̲

             Narrative


                 The PU to be disabled is specified
                 in DATBUF.PARAM1 (TYPE CONTROL ̲COMMAND).

                 The CCB address is calculated and
                 a disable command is sent to the CCB
                 driver.


             Flowgram.




                 ref. fig. 4.2.3.4.5.5m-1