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

⟦7e94dd49e⟧ Wang Wps File

    Length: 48860 (0xbedc)
    Types: Wang Wps File
    Notes: CPS/SDS/029               
    Names: »1836A «

Derivation

└─⟦796ed5a45⟧ Bits:30006090 8" Wang WCS floppy, CR 0142A
    └─ ⟦this⟧ »1836A « 

WangText

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

…02…CPS/SDS/029

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









4.2.9.4.10   C̲r̲e̲a̲t̲e̲ ̲P̲e̲r̲i̲p̲h̲e̲r̲a̲l̲s̲



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

         The module "creates" the CAMPS peripherals:

         -   disks and volumes

         -   TDX devices (STI, TIA, BSM ̲X, LTUX, LINES)

         -   LTU devices (LTU, LINES)

         based upon a device specification in the port tables.

         For a disk the creation implies

         -   a FMS assign of a controller

         -   a FMS mount of a volume.

         For the TDX system a generic tree structure is created
         as specified in figure 4.2.9.4.10.1-1.

         TEMCO, DEMCO and CEMCO create the sub devices at the
         LTUX lines. This structure is not shown, but for
         non ̲VDU devices it consists of a single sub device
         (a TMS terminal). For VDUs the branch consists of a
         VDU and 6 sub-devices (TMS terminals) referring to
         a data and control connection per split (3 exists).

         For the LTU system a generic tree structure is created
         as specified in figure 4.2.9.4.10.1-2. CEMCO creates
         the sub devices at the LTU lines. For non NICS ̲TARE
         lines a single sub device "TMS terminal" is created.
         For NICS ̲TARE lines two sub devices (TMS "terminals")
         are created.

         For LTUs a bootload of firmware is supported.

         Any brands in the TDX/LTU tree structure reports to
         the DEVICE ̲SE.














































 
  TDX SYSTEM GENERIC TREE STRUCTURE…01…Fig. 4.2.9.4.10.1-1
















































  LTU SYSTEM GENERIC TREE STRUCTURE…01…Fig. 4.2.9.4.10.1-2


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

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

         a)  CREATE ̲PERIPHERALS

         b)  CREATE ̲PERIPHERALS (R6)

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

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

         R6  LINK

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

         R0 ̲R7 (destr.)



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

         The create ̲peripherials module contains/references
         the procedures specified in figure 4.2.9.4.10.3-1.



                  Figure 4.2.9.4.10.3-1



         a)  C̲R̲E̲A̲T̲E̲ ̲P̲E̲R̲I̲P̲H̲E̲R̲A̲L̲S̲

             Dispatches to procedures handling

             -   disk creation

             -   STI, TIA, BSM ̲X, LTUX creation

             -   LTU creation and load.

         b)  I̲N̲I̲T̲I̲A̲L̲ ̲D̲I̲S̲K̲ ̲S̲E̲T̲ ̲U̲P̲



             The

             -   offline disk and the

             -   floppy disk

             are assigned/mounted according to the contents
             of the DISK ̲TABLE.

             Also, the configuration display is updated.

         c)  D̲E̲T̲E̲R̲M̲I̲N̲E̲ ̲A̲C̲T̲I̲V̲E̲ ̲T̲D̲X̲ ̲B̲U̲S̲ ̲N̲O̲

             For non switchover start ̲up types PU number 1 uses
             TDX ̲bus 1 and PU number 2 uses TDX ̲bus 2.

             After a switchover the above selection method is
             also used; however, if the thereby selected TDX
             ̲bus is specified erroneous in the PU ̲TABLE the
             opposite (the former active) TDX ̲bus is selected.

         d)  T̲D̲X̲ ̲L̲I̲N̲E̲S̲ ̲C̲R̲E̲A̲T̲E̲

             The procedure scans all

             -   BSM ̲TABLE

             -   LTUX ̲TABLE

             entries and

             -   switches BSM ̲Xs

             -   creates LTUX

             as the entry status specifies.

             For LTUX lines the

             -   chain status and the

             -   configuration display

             is updated.


         e)  B̲S̲M̲ ̲X̲ ̲A̲C̲T̲I̲O̲N̲

             The BSM ̲X specified in the procedure call is switched
             to the TDX ̲bus stated in the BSM ̲X table.

         f)  L̲T̲U̲X̲ ̲A̲C̲T̲I̲O̲N̲

             The LTUX specified in the procedure call is created
             via TMS.

         g)  L̲T̲U̲X̲ ̲L̲I̲N̲E̲ ̲A̲C̲T̲I̲O̲N̲

             The "chain-status" for the chain

             -   LTUX line

             -   LTUX

             -   BSM ̲X

             is calculated.

             The "LTUX line table" chain-status is updated if
             a change has occurred.

             Also, the configuration display is updated, if
             the new chain-status is in ̲service.

         h)  L̲T̲U̲ ̲L̲I̲N̲E̲S̲ ̲C̲R̲E̲A̲T̲E̲ ̲L̲O̲A̲D̲

             Refer below.

         i)  L̲T̲U̲ ̲L̲I̲N̲E̲ ̲H̲E̲L̲P̲

             Actions similar to the TDX lines create are taken,
             but a LTU firmware bootload is supported.

         j)  A̲S̲S̲I̲G̲N̲ ̲S̲T̲I̲

             The "TMS device" STI is assigned. The user specified
             device identification (U ̲SDID), which is inserted
             in device reports from TMS to the
             DEVICE ̲SE (COPSY syncronization element used for
             all TMS/FMS reports), is set to STI ̲P.
             If a hardware error occurs during creation an emergency
             close-down is executed.


         k)  C̲R̲E̲A̲T̲E̲ ̲T̲I̲A̲

             The TIA is created as a "TMS controller" and as
             a sub-device to the STI. TMS reports are sent to
             DEVICE ̲SE and are identified by a U ̲SDID.PROFILE
             equal to TIA ̲P.

             If a hardware error occurs during creation an emergency
             close-down is ececuted.



4.2.9.4.10.4 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̲

             MIRRORED ̲1, MIRRORED ̲2, FLOPPY ̲DISK, OFFLINE ̲DISK,
             DISK ̲IN ̲SERVICE, DISK ̲MOUNTED, DISK ̲ERROR,
             VOLUME ̲ERROR,

             TIA1, TIA2,
             OFFL ̲DISK, FLOP ̲DISK,

             DEAD1, DEAD2,

             ACTIVE, IN ̲SERVICE,

             PU ̲REC, BSM ̲X ̲REC, LTUX ̲REC, LTUX ̲LINE ̲REC, LTU
             ̲REC,
             LTU ̲LINE ̲REC,
             DISK ̲PARAM               :   DBD

             STI ̲P, TIA ̲P             :   SSC.COMMON

             TDX ̲BUS ̲PROTOCOL         :   DBD.COMMON

             CONTROLLER               :   DAMOS.IOS

             SET ̲STATUS,

             UP                       :   SSC.COMMON





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

             ALL ̲MASK,

             MAX ̲BSM ̲XS, MAX ̲LTUXS, MAX ̲LTUS,

             TMS ̲ID,

             STI ̲MODULE ̲ADDRESS, TIA1 ̲MODULE ̲ADDRESS,

             TIA2 ̲MODULE ̲ADDRESS               : DBD.COMMON

             IN ̲DISK, IN ̲VOLUME                :  DAMOS.IOS

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

             STI ̲CON, TIA ̲CON,
             ASSIGN ̲REC, DEVICE ̲REC,

             ACTIVE ̲TDX ̲BUS ̲NO,
             SEND ̲BUF, KEY ̲BUF,

             START ̲UP ̲TYPE ̲D                  : CFH.VARIOUS

             STI ̲PARAMS ̲D, TIA ̲PARAMS ̲D,

             PU ̲NO,
             DEVICE ̲SE,
             STI ̲CC, TIA ̲CC                   : SSC.COMMON

         a4) T̲a̲b̲l̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             DISK ̲TABLE    (m),
             PU ̲TABLE      (m),
             BSM ̲X ̲TABLE   (m),
             LTUX ̲TABLE    (m),
             LTUX ̲LINE ̲TABLE (m),
             LTU ̲TABLE     (m),
             LTU ̲LINE ̲TABLE(m),
                                               : DBD.COMMON

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

             All entries and fields in the referenced tables
             are read and updated. 


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

             VAR    CMD : DISK ̲PARAM

             VAR    STATUS : DISK ̲STATUS

             VAR    PU ̲REC ̲D : PU ̲REC

             VAR    BSM ̲X ̲NO, LTUX ̲NO, LINE ̲NO : INTEGER

             VAR    BSM ̲X ̲ACTIVE, LTUX ̲IN ̲SERVICE : BOOLEAN

             CONST  STATUS ̲MASK = BIT0

             specifies DISK ̲PARAM status field

             VAR    BSM ̲X ̲OUT : BSM ̲X ̲REC

             VAR    LTUX ̲OUT : LTUX ̲REC

             VAR    LINE ̲OUT : LTUX ̲LINE ̲REC

             VAR    OLD ̲CS : HW ̲STATUS

             VAR    LTU ̲NO, LINE ̲NO : INTEGER

             VAR    LTU ̲OUT : LTU ̲REC

             VAR    LINE ̲OUT ̲U : LTU ̲LINE ̲REC



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



         PROCEDURE

         CREATE ̲PERIPHERALS

         BEGIN

             INITIAL ̲DISK ̲SET ̲UP

             ASSIGN ̲STI

             DETERMINE ̲ACTIVE ̲TDX ̲BUS ̲NO

             CREATE ̲TIA (ACTIVE ̲TDX ̲BUS ̲NO)

             TDX ̲LINES ̲CREATE

             LTU ̲LINES ̲CREATE ̲LOAD

         END ̲CREATE ̲PERIPHERALS




























                  Figure 4.2.9.4.10.5-1


  PROCEDURE

  INITIAL ̲DISK ̲SET ̲UP

  CONST STATUS ̲MASK = BIT0                  "specify
                                  status field

  VAR CMD : DISK ̲PARAM

  VAR STATUS : DISK ̲STATUS

  BEGIN
      KEY ̲BUF.KEY = MIRRORED ̲1
      UPDATE ̲ENTRY (DISK ̲TABLE, SEND ̲BUF, KEY ̲BUF, STATUS
      ̲MASK,
                                                 DISK
                                  ̲IN ̲SERVICE)
      KEY ̲BUF.KEY = MIRRORED ̲2
      UPDATE ̲ENTRY (DISK ̲TABLE, SEND ̲BUF, KEY ̲BUF, STATUS
      ̲MASK,
                                                 DISK
                                  ̲IN ̲SERVICE)
      KEY ̲BUF.KEY = OFFLINE ̲DISK
      SEARCH ̲ENTRY(DISK ̲TABLE,KEY ̲BUF,STATUS ̲MASK,
                                                SEND
                                  ̲BUF)(STATUS)
      STATUS NE DISK ̲IN ̲SERVICE?

      ASSIGN ̲DISK (OFFLINE ̲DISK)

      CONF ̲DISPLAY(SET ̲STATUS, OFFL ̲DISK, STATUS)
      KEY ̲BUF.KEY = FLOPPY ̲DISK
      SEARCH ̲ENTRY (DISK ̲TABLE, KEY ̲BUF, ALL ̲MASK, SEND
      ̲BUF)(CMD)

      (CMD.STATUS NE DISK ̲IN ̲SERVICE AND
       CMD.STATUS NE DISK ̲MOUNTED )?

      ASSIGN ̲DISK (FLOPPY ̲DISK)

      CMD.STATUS NE MOUNTED?
      MOUNT ̲DISK (FLOPPY ̲DISK, CMD.VOLUME)(CC)
      CC EQ IN ̲DISK?   STATUS = DISK ̲ERROR
      CC EQ IN ̲VOLUME? STATUS = VOLUME ̲ERROR

      UPDATE ̲ENTRY (DISK ̲TABLE, SEND ̲BUF, KEY ̲BUF,
                                         STATUS ̲MASK,STATUS)

      CONF ̲DISPLAY (SET ̲STATUS, FLOP ̲DISK, STATUS)

  END ̲INITIAL ̲DISK ̲SET ̲UP
               Figure 4.2.9.4.10.5-2


  PROCEDURE

  DETERMINE ̲ACTIVE ̲TDX ̲BUS ̲NO

  VAR  PU ̲REC ̲D : PU ̲REC

  BEGIN

      KEY ̲BUF.KEY = 1

      SEARCH ̲ENTRY (PU ̲TABLE, KEY ̲BUF, ALL ̲MASK,
                                         SEND ̲BUF)(PU
                              ̲REC ̲D)

      (START ̲UP ̲TYPE ̲D EQ SB1 DR
       START ̲UP ̲TYPE ̲D EQ SB2 )?

      ACTIVE ̲TDX ̲BUS ̲NO = PU ̲NO

      CASE   PU ̲NO  OF

          1?  PU ̲REC ̲D.TDX ̲2 ̲STATUS = IN ̲SERVICE

          2?  PU ̲REC ̲D.TDX ̲1 ̲STATUS = IN ̲SERVICE

      END ̲CASE





















            Figure 4.2.9.4.10.5-3 (1/2)


              CASE   PU ̲NO  OF

                  1? - PU ̲REC ̲D.TDX ̲1 ̲STATUS EQ ERROR?

                                        ACTIVE ̲TDX ̲BUS
                                  ̲NO=2

                       ACTIVE ̲TDX ̲BUX ̲NO = 1

                  2? - PU ̲REC ̲D.TDX ̲2 ̲STATUS EQ ERROR?

                                        ACTIVE ̲TDX ̲BUS
                                  ̲NO = 1

                       ACTIVE ̲TDX ̲BUS ̲NO = 2

              END ̲CASE

      ACTIVE ̲TDX ̲BUS ̲NO EQ 1?

                      PU ̲REC ̲D.TDX ̲1 ̲STATUS  = ACTIVE
                      CONFIG ̲TABLE.TDX(1)=ACTIVE
                      CONFIG ̲TABLE.TDX(2)=PU ̲REC ̲D.TDX
                      ̲1 ̲STATUS
                      CONF ̲DISPLAY (SET ̲STATUS, TIA1,
                      ACTIVE)
                      CONF ̲DISPLAY (SET ̲STATUS, TIA2,
                      PU ̲REC ̲D.
                                                  TDX
                              ̲2 ̲STATUS)


      PU ̲REC ̲D.TDX ̲2 ̲STATUS = ACTIVE

      CONFIG ̲TABLE.TDX(1)-PU ̲REC ̲D.TDX ̲1 ̲STATUS

      CONF ̲DISPLAY (SET ̲STATUS, TIA1, PU ̲REC ̲D.TDX ̲1
      ̲STATUS

      CONFIG ̲TABLE.TDX(2) = ACTIVE

      CONF ̲DISPLAY (SET ̲STATUS, TIA2, ACTIVE)

      UPDATE ̲ENTRY (PU ̲TABLE,SEND ̲BUF,KEY ̲BUF,ALL ̲MASK,
      PU ̲REC ̲D)

  END ̲DETERMINE ̲ACTIVE ̲TDX ̲BUS ̲NO




            Figure 4.2.9.4.10.5-3 (2/2)


  PROCEDURE

  TDX ̲LINES ̲CREATE

  VAR BSM ̲X ̲NO, LTUX ̲NO, LINE ̲NO, CC : INTEGER

  VAR BSM ̲X ̲ACTIVE,

      LTUX ̲IN ̲SERVICE : BOOLEAN

  BEGIN

      BSM ̲X ̲NO = 0

      LOOP

          BSM ̲X ̲NO = BSM ̲X ̲NO+1
          BSM ̲X ̲ACTION ()(BSM ̲X ̲ACTIVE)

          LTUX ̲NO = 0

          LOOP

              LTUX ̲NO = LTUX ̲NO+1
              BSM ̲X ̲ACTIVE NE TRUE
              LTUX ̲ACTION()(LTUX ̲IN ̲SERVICE)

              LINE ̲NO = 0

              LOOP

                  LINE ̲NO = LINE ̲NO+1
                  LTUX ̲LINE ̲ACTION
                  LINE ̲NO EQ 4   EXIT

              END ̲LOOP

              LTUX ̲NO EQ 2?    EXIT

          END ̲LOOP

          BSM ̲X ̲NO EQ MAX ̲BSM ̲XS?  EXIT

      END ̲LOOP

  END ̲TDX ̲LINES ̲CREATE

               Figure 4.2.9.4.10.5-4


  PROCEDURE BSM ̲X ̲ACTION () (BSM ̲X ̲ACTIVE:BOOLEAN)

  VAR BSM ̲X ̲OUT:BSM ̲X ̲REC

  BEGIN

      KEY ̲BUF.KEY = BSM ̲X ̲NO

      SEARCH ̲ENTRY (BSM ̲X ̲TABLE, KEY ̲BUF, ALL ̲MASK, SEND
      ̲BUF)
                                                    
                                  (BSM ̲X ̲OUT)

      BSM ̲X ̲HANDLE (BSM ̲X ̲OUT)(CC)

      (CC NE 0 OR
       BSM ̲X ̲OUT.STATUS NE ACTIVE )?

                      BSM ̲X ̲ACTIVE = FALSE

      BSM ̲X ̲ACTIVE = TRUE

  END ̲BSM ̲X ̲ACTION


























               Figure 4.2.9.4.10.5-5


  PROCEDURE LTUX ̲ACTION()(LTUX ̲IN ̲SERVICE : BOOLEAN)

  VAR LTUX ̲OUT : LTUX ̲REC

  BEGIN

      KEY ̲BUF.KEY = (BSM ̲X ̲NO -1) * 2 + LTUX ̲NO

      SEARCH ̲ENTRY(LTUX ̲TABLE,KEY ̲BUF,ALL ̲MASK,SEND ̲BUF)(LTUX
      ̲OUT)

      LTUX ̲OUT.STATUS NE IN ̲SERVICE?

      CREATE ̲LTUX (LTUX ̲OUT)(CC)

      CC = 0?                            LTUX ̲IN ̲SERVICE
                                  = FALSE

          LTUX ̲IN ̲SERVICE = TRUE

      LTUX ̲IN ̲SERVICE = FALSE

      CC NE 0?    LTUX ̲OUT.STATUS = ERROR

                  UPDATE ̲ENTRY (LTUX ̲TABLE, SEND ̲BUF,
                                   KEY ̲BUF, ALL ̲MASK,
                                  LTUX ̲OUT)

  END ̲LTUX ̲ACTION





















               Figure 4.2.9.4.10.5-6


  PROCEDURE LTUX ̲LINE ̲ACTION

  VAR  LINE ̲OUT : LTUX ̲LINE ̲REC

  VAR  OLD ̲CS   : HW ̲STATUS

  BEGIN

      KEY ̲BUF.KEY = 8 x (BSM ̲X ̲NO -1) +2 x (LTUX ̲NO-1)MODULE
      2+1
                                                    +
 LINE ̲NO

      SEARCH ̲ENTRY (LTUX ̲LINE ̲TABLE, KEY ̲BUF, ALL ̲MASK,
      SEND ̲BUF)
                                                    
                                    (LINE ̲OUT)

      OLD ̲CS = LINE ̲OUT.CHAIN ̲STATUS

      (BSM ̲X ̲ACTIVE EQ TRUE AND
       LTUX ̲IN ̲SERVICE EQ TRUE AND
       LINE ̲OUT.STATUS EQ IN ̲SERVICE )?

                      LINE ̲OUT.CHAIN ̲STATUS = IN ̲SERVICE
                      CONF ̲DISPLAY (UP, LINE ̲OUT.TYPE
                      ̲DEV, NIL)

      LINE ̲OUT.CHAIN ̲STATUS = OUT ̲OF ̲SERVICE

      OLD ̲CS EQ LINE ̲OUT.CHAIN ̲STATUS?

      UPDATE ̲ENTRY (LTUX ̲LINE ̲TABLE, SEND ̲BUF, KEY ̲BUF,
      ALL ̲MASK,
                                                    
                                     LINE ̲OUT)



  END ̲LTUX ̲LINE ̲ACTION















               Figure 4.2.9.4.10.5-7


  PROCEDURE

  LTU ̲LINES ̲CREATE ̲LOAD

  VAR  LTU ̲NO : 1.. MAX ̲LTUS
      LINE ̲NO : 1.. 2
      LTU ̲OUT : LTU ̲REC

  BEGIN

      LTU ̲NO = 0

      LOOP
          LTU ̲NO = LTU ̲NO +1
          KEY ̲BUF.KEY = LTU ̲NO
          SEARCH ̲ENTRY (LTU ̲TABLE, KEY ̲BUF, ALL ̲MASK,
          SEND ̲BUF)
                                                    
                                    (LTU ̲OUT)

          LTU ̲OUT.STATUS NE IN ̲SERVICE?

          CREATE ̲LTU (LTU ̲OUT) (CC)

          CC NE 0?    LTU ̲OUT.STATUS = ERROR

                      UPDATE ̲ENTRY (LTU ̲TABLE, SEND ̲BUF,
                      KEY ̲BUF,
                                           ALL ̲MASK,
                                  LTU ̲OUT)

          LOAD ̲LTU ̲FW (LTU ̲OUT)(CC)

          CC NE 0?  LTU ̲OUT.STATUS = ERROR

                    UPDATE ̲ENTRY (LTU ̲TABLE, SEND ̲BUF,
                  KEY ̲BUF,
                                           ALL ̲MASK,
                                  LTU ̲OUT)

          LINE ̲NO = 0

          LOOP
              LINE ̲NO = LINE ̲NO +1
              LTU ̲LINE ̲HELP
              LINE ̲NO EQ 2?    EXIT
          END ̲LOOP

          LTU ̲NO EQ MAX ̲LTUXS?   EXIT

      END ̲LOOP

  END ̲LTU ̲LINES ̲CREATE
               Figure 4.2.9.4.10.5-8


  PROCEDURE

  LTU ̲LINE ̲HELP

  VAR  OLD ̲CS : HW ̲STATUS

  VAR  LINE ̲OUT ̲U : LTU ̲LINE ̲REC

  BEGIN

      KEY ̲BUF.KEY = 2 x (LTU ̲NO -1) + LINE ̲NO

      SEARCH ̲ENTRY (LTU ̲TABLE, KEY ̲BUF, ALL ̲MASK, SEND
      ̲BUF)
                                                  (LINE
                              ̲OUT ̲U)

      OLD ̲CS = LINE ̲OUT.CHAIN ̲STATUS

      LTU ̲OUT ̲U.STATUS EQ IN ̲SERVICE AND
      LINE ̲OUT ̲U.STATUS EQ IN ̲SERVICE )?  

                          LINE ̲OUT ̲U.CHAIN ̲STATUS = IN
                          ̲SERVICE

                      CONF ̲DISPLAY (UP, LINE ̲OUT ̲U.TYPE
                      ̲DEV, NIL)

      LINE ̲OUT ̲U.CHAIN ̲STATUS = OUT ̲OF ̲SERVICE


      OLD ̲CS EQ LINE ̲OUT ̲U.CHAIN ̲STATUS?

      UPDATE ̲ENTRY (LTU ̲LINE ̲TABLE, 2 x (LTU ̲NO -1) +
      LINE ̲NO,
                                                    
                               LINE ̲OUT ̲U)

  END ̲LTU ̲LINE ̲HANDLE















               Figure 4.2.9.4.10.5-9


  PROCEDURE

  ASSIGN ̲STI

  BEGIN

      ASSIGN ̲REC.PARAMS     =  STI ̲PARAMS ̲D

      ASSIGN ̲REC.LDN        =  STI ̲MODULE ̲ADDRESS

      ASSIGN ̲REC.U ̲SDID.PROFILE = STI ̲D

      ASSIGN ̲REC.U ̲SDID.PORT ̲NO = 0

      ASSIGN ̲REC.SEC ̲PROF   =  0

      CASE ASSIGN ̲TMS ̲DEVICE (TMS ̲ID, ASSIGN ̲REC, DEVICE
      ̲SE)
                                     (STI ̲CON, CC) OF

          ERROR?  CASE   ANALYZE ̲ERROR (CC, 1, HW) OF

                     HW?  PU ̲DOWN (STI ̲CC, ASSIGN ̲REC)

                  END ̲CASE

      END ̲CASE

  END ̲ASSIGN ̲STI

















              Figure 4.2.9.4.10.5-10


  PROCEDURE

  CREATE ̲TIA (TIA ̲NO : 1..2)

  BEGIN

      CASE  TIA ̲NO OF

          1?  DEVICE ̲REC.SDA = TIA1 ̲MODULE ̲ADDRESS
          2?  DEVICE ̲REC.SDA = TIA2 ̲MODULE ̲ADDRESS

      END ̲CASE

      DEVICE ̲REC.U ̲SDID.PROFILE = TIA ̲P

      DEVICE ̲REC.U ̲SDID.PORT ̲NO = TIA ̲NO

      DEVICE ̲REC.PROTOCOL ̲ID    = TDX ̲BUS ̲PROTOCOL

      DEVICE ̲REC.SD ̲TYPE        = CONTROLLER

      DEVICE ̲REC.ACCESS ̲LEVEL   = NIL

      DEVICE ̲REC.SELECT ̲BY ̲TMS  = NIL

      DEVICE ̲REC.PARAMS         = TIA ̲PARAMS ̲D

      CASE  CREATE ̲SUBDEVICE (STI ̲CON, DEVICE ̲REC, DEVICE
      ̲SE)
                                    (TIA ̲CON, CC) OF

          ERROR?  CASE  ANALYSE ̲ERROR (CC, l, HW) OF

                     HW? PU ̲DOWN (TIA ̲CC, DEVICE ̲REC)

                  END ̲CASE

      END ̲CASE

  END ̲CREATE ̲TIA








              Figure 4.2.9.4.10.5-11


4.2.9.4.11   O̲P̲E̲R̲A̲T̲O̲R̲ ̲O̲N̲L̲Y̲ ̲M̲O̲D̲E̲


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

         The operator ̲only ̲mode is entered in WARM1 start-up,
         if so specified by the operator in the start-up command.

         In operator ̲only ̲mode, the queues are initialised,
         but no processes operating on queues are started.

         In the operator ̲only ̲mode, the operator can:

         -   delete CIFs

         -   lead modified software

         -   print software versions

         -   terminate the operator ̲only ̲mode.

         The operator ̲only ̲mode may be terminated by

         -   closing the CAMPS system e.g. subsequent to a loading
             of new software/patches.

         -   continue CAMPS operation e.g. subsequent to having
             deleted a CIF.



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

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

         a)  OPERATOR ̲ONLY ̲MODE

         b)  OPERATOR ̲ONLY ̲MODE (R6)

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

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

         R6 link.


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

         The operator ̲only ̲mode contains and references the
         procedures/modules specified in Figure 4.2.9.4.11.3-1.

         Operator Only Mode Module Components 
         Figure 4.2.9.4.11.3-1.









                  Figure 4.2.9.4.11.3-1



4.2.9.6.11.4 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̲

             SW ̲TO ̲BE ̲LOADED,
             CLOSE ̲TYPE,
             COPSY ̲GARBLE ̲PARAMS,
             DISK ̲SW ̲VERSION,
             CMI ̲COMMANDS ̲TO ̲COPSY             :  SSC.COMMON

             CIF ̲REFERENCE ̲NUMBER, VIEW ̲REFERENCE,

             QEL ̲ATTRIBUTES, SUBQUEUE ̲REFERENCE :  DBD.CSF

             MODIFY ̲INF                         :  CFH.VARIOUS

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

             OPERATOR ̲ONLY ̲CMDS ̲PROC,

             CMD ̲TYPE ̲ERROR                     :  CFH.VARIOUS

             NO ̲CIF ̲FOUND

             COPY ̲MODIFIED, LOAD ̲PATCH ̲HEADER,
             NOT ̲ALLOWED ̲IN ̲OPERATOR ̲ONLY ̲MODE  :  SSC.COMMON

             NO ̲QEL ̲FOUND                       :  DBD

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

             CAMPS ̲PHASE 
             CFH ̲OS, LONG ̲OS,                    :  SSC.COMMON

             LONG ̲OP                             :  CFH.VARIOUS


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

             N.A.

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

             VAR  MODE ̲TERMINATED : BOOLEAN
             VAR  G ̲INF   :  BOOLEAN
             VAR  CC      :  INTEGER
             VAR  CIF ̲REF :  VIEW ̲REFERENCE
             VAR  ATTRIBUTES : QEL ̲ATTRIBUTES
             VAR  QUEUE   :  SUBQUEUE ̲REFERENCE



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

         a)  O̲P̲E̲R̲A̲T̲O̲R̲ ̲O̲N̲L̲Y̲ ̲M̲O̲D̲E̲

             Receives operator ̲only ̲mode commands from the CMI
             until an operator ̲only ̲terminated command is received.
             HW errorhandling is supported.

         b)  O̲P̲E̲R̲A̲T̲O̲R̲ ̲O̲N̲L̲Y̲ ̲C̲M̲D̲S̲

             Dispatches depending on the command type. For the
             operator-only ̲terminated, where the system is to
             close-down, the CMI command close-down-terminated
             is awaited. Reception of this makes CFH

             -   notify the WDP via a reset command

             -   master clear the PU.

         c)  D̲E̲L̲E̲T̲E̲ ̲S̲P̲E̲C̲I̲F̲I̲C̲ ̲C̲I̲F̲

             Deletes the CIF specified by the operator by deleting
             each view of the CIF.


         d)  D̲I̲S̲K̲ ̲H̲A̲N̲D̲L̲E̲

             The action to be executed on the floppy disk is
             determined.

             Now floppy disk commands are rejected.

         e)  F̲L̲O̲P̲P̲Y̲ ̲D̲I̲S̲K̲ ̲A̲C̲T̲I̲O̲N̲

             REQUESTS EXECUTION OF
             -   assign
             -   deassign
             -   mount
             -   dismount

             of the floppy disk.

             The configuration display is updated.



         PROCEDURE OPERATOR ̲ONLY ̲MODE

         VAR  MODE ̲TERMINATED : BOOLEAN

         VAR  G ̲INF : COPSY ̲GARBLE ̲PARAMS
              G ̲INF.ERROR ̲TYPE  =  COPSY ̲LONG ̲ERROR
              G ̲INF.USER ̲ACTION =  CONTINUE
              G ̲INF.ERROR ̲COR   =  CFH ̲COR
              G ̲INF.ERROR ̲LOC   =  OPERATOR ̲ONLY ̲CMDS ̲PROC

         BEGIN

             CAMPS ̲PHASE = OPERATOR ̲ONLY ̲PHASE

             LOOP ̲SERVE ̲CFH ̲OS

                 WAIT ̲OPSEM (CFH ̲OS)(LONG ̲OP)

                 CASE  LONG ̲OP.CMD ̲TYPE OF

                     DEVICE ̲ERROR,

                     WDP ̲CMD?    HW ̲ERROR ̲HANDLING (LONG ̲OP)

                     CMI ̲CMD ̲L?  OPERATOR ̲ONLY ̲CMDS()
                                 (MODE ̲TERMINATED)

                                 MODE ̲TERMINATED EQ TRUE?  EXIT

                     OTHER?  G ̲INF.ERROR ̲INFO(1) = CMD ̲TYPE
                     ̲ERROR
                             COPSY ̲SEND ̲GARBLE (LONG ̲OP, G ̲INF)

                 END ̲CASE

                 SIGNAL ̲OPSEM (LONG ̲OS, LONG ̲OP)

             END ̲LOOP

         END ̲OPERATOR ̲ONLY ̲MODE






                   Fig. 4.2.9.4.11.5-1



   PROCEDURE  OPERATOR ̲ONLY ̲CMDS()(MODE ̲TERMINATED:BOOLEAN)

   VAR  CC:INTEGER
           COPSY ̲INF : MODIFY ̲INF
           INF : RECORD
                   CC  :  INTEGER
                   FILE:  FILE ̲NAME
                 END
   BEGIN
       MODE ̲TERMINATED = FALSE
       EQUIVALENCE(LONG ̲OP.CMD, CMD:CMI ̲COMMANDS ̲TO ̲COPSY)
       CC = 0
       CASE  CMD OF
           DELETE ̲CIF?  EQUIVALENCE(LONG ̲OP.(INF(2),CIF:CIF
           ̲ID)
                        DELETE ̲SPECIFIC ̲CIF(CIF ̲NAME)
           OPERATOR ̲ONLY ̲TERMINATED? 
                           EQUIVALENCE (LONG ̲OP.INF(2).BYTE,
                                         CLOSE ̲MODE:CLOSE
               ̲TYPE)
                           CLOSE MODE EQ CONTINUE? 
                                         MODE ̲TERMINATED
               = TRUE
           CLOSE ̲DOWN ̲TERMINATED?
                           WDP ̲CONTROL(RESET, PU ̲NO, NIL)(CC)
                           PU ̲DOWN (ORDERED ̲CLOSE, NIL)
                           
                                         "programmed master
                           clear
           LOAD ̲MODIFIED ̲SW?  EQUIVALENCE(LONG ̲OP ̲INF(2),
                                          PARAMS:SW ̲TO
                           ̲BE ̲LOADED)
                             COPY ̲MODIFIED ̲SOFTWARE (PARAMS)
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       (COPY
                                                                       ̲INF)
                             COPY ̲INF.CC EQ 0?
                             COPY ̲INF.DISK EQ MIRRORED1?
                                  PU ̲DOWN(COPY ̲MODIFIED,COPY
                           ̲INF)
                             REPORT ̲ERROR(COPY ̲MODIFIED,COPY
                           ̲INF)
                             CC = COPY ̲INF.CC
           PRINT ̲SW ̲VERSION? EQUIVALENCE(LONG ̲OP.INF(2)
                             DISK ̲SPEC:DISK ̲SW ̲VERSION)
                             PRINT ̲SW ̲VERSIONS ̲OP ̲CMD(DISK
                           ̲SPEC)
                                     (INF.CC,INF.FILE)
                             INF.CC EQ 0?
                                DISK ̲SPEC EQ OFFLINE ̲SW?
                                  REPORT ̲ERROR
                                  (LOAD ̲PATCH ̲HEADER,INF)
                                  CC = INF.CC
                            PU ̲DOWN(LOAD ̲PATCH ̲HEADER,INF)
           DISK ̲DRIVE ̲ASSIGNMENT? EQUIVALENCE(LONG ̲OP.INF(2),
                                  NEW ̲REC: DISK ̲PARAM)
                                  DISK ̲HANDLE(NEW ̲REC)
           OTHER?  CC = NOT ̲ALLOWED ̲IN ̲OPERATOR ̲ONLY ̲MODE

       END ̲CASE

       SEND ̲SSC ̲REPLY(LONG ̲OP.REF,LONG ̲OP.INF(1), CC)
   END ̲OPERATOR ̲ONLY ̲CMDS
                           Fig. 4.2.9.4.11.5-2


   PROCEDURE

   DELETE ̲SPECIFIC ̲CIF (CIF ̲NAME: CIF ̲REFERENCE ̲NUMBER)(CC)

   VAR CIF ̲REF:  VIEW ̲REFERENCE
       ATTRIBUTES: QEL ̲ATTRIBUTES
       QUEUE: SUBQUEUE ̲REFERENCE
       FIRST: BOOLEAN

   BEGIN

       FIRST=TRUE

       LOOP



           GET ̲CIF(CIF ̲NAME)(CIF ̲REF,ATTRIBUTES,QUEUE,CC)

           CASE CC OF

              NO ̲QEL ̲FOUND? FIRST EQ TRUE ?  CC=NO ̲CIF
           ̲FOUND

                            CC = [

                                               EXIT

              OTHER?  ANALYZE ̲ERROR(CC,0)

           END ̲CASE

           DISMANTLE ̲VIEW(CIF ̲REF)(CC)

           CC NE  0? ANALYZE ̲ERROR(CC,0)

           FIRST = FALSE

       END ̲LOOP

   END ̲DELETE ̲SPECIFIC ̲CIF







                Fig. 4.2.9.4.11.5-3



PROCEDURE

DISK ̲HANDLE (NEW ̲REC : DISK ̲PARAM)

VAR OLD ̲REC : DISK ̲PARAM

VAR ACTION : DISK ̲ACTION

BEGIN

   KEY ̲BUF.KEY = NEW ̲REC.DISK

   SEARCH ̲ENTRY(DISK ̲TABLE,KEY ̲BUF,ALL ̲MASK,SEND ̲BUF)(OLD
   ̲REC)

   CASE NEW ̲CMD. DISK OF

       MIRRORED1,

       MIRRORED2?- ACTION=NOT ̲LEGAL

       FLOPPY ̲DISK?- ACTION=FLOPPY ̲DISK ̲ACTION ̲TABLE
                                (OLD ̲REC.STATUS,NEW ̲REC.STATUS))

       OFFLINE ̲DISK?- ACTION=NOT ̲LEGAL

   END CASE NEW ̲CMD.DISK

   ACTION EQ NO ̲OP?   CC=NO ̲OPERATION

   ACTION EQ REFUSE?   CC=STATUS ̲CHANGE ̲ILLEGAL

   ACTION EQ NOT ̲LEGAL?   CC=NOT ̲ALLOWED ̲IN ̲OPERATOR ̲ONLY
   ̲MODE

   ACTION EQ UPDATE?

               CC=EXEC ̲OK

               UPDATE ̲ENTRY(DISK ̲TABLE,SEND ̲BUF,KEY ̲BUF,ALL
               ̲MASK,
                                                     
                                 NEW ̲REC)

   FLOPPY ̲DISK ̲ACTION (ACTION) (CC)

   SEND ̲SSC ̲REPLY (Q ̲CONTENTS, CMI ̲QEL,CC)

END


               Figure 4.2.9.4.11.5-4


PROCEDURE FLOPPY ̲DISK ̲ACTION(ACTION:DISK ̲ACTION)(CC: INTEGER)

BEGIN

   CASE ACTION OF

       MOUNT ̲A? MOUNT ̲DISK(NEW ̲REC.DISK, NEW ̲REC.VOLUME)(CC)

               CASE CC OF

                   IN ̲VOLUME? NEW ̲REC.STATUS=VOLUME ̲ERROR

                               CC=HW ̲ERROR

                   IN ̲DISK?    NEW ̲REC.STATUS=DISK ̲ERROR

                               CC=HW ̲ERROR

                   WRONG ̲VOLUME ̲NAME?

                               CC=WRONG ̲VOLUME ̲NAME ̲X

                   VOLUME ̲NAME ̲IS ̲USED?

                               CC ̲VOLUME ̲NAME ̲IS ̲USED
                               ̲X

               END CASE

       DISMOUNT A? DISMOUNT ̲DISK(NEW ̲REC.DISK,NEW ̲REC.VOLUME)(CC)

                   CASE CC OF

                       IN ̲VOLUME? NEW ̲REC.STATUS=VOLUME
                       ̲ERROR

                                  CC=HW ̲ERROR

                       IN ̲DISK?   NEW ̲REC.STATUS=DISK
                       ̲ERROR

                                  CC=HW ̲ERROR

                       NON ̲EXISTING ̲VOLUME?

                                  CC=NON ̲EXISTING ̲VOLUME
                               ̲X

                   END ̲CASE


       ASSIGN ̲A? ASSIGN ̲DISK(NEW ̲REC.DISK)(NIL)

       DEASSIGN ̲A? DEASSIGN ̲DISK(NEW ̲REC.DISK)(NIL)

   END CASE

   CC NE [ AND CC NE HW ̲ERROR?

   KEY ̲BUF.KEY = NEW ̲REC.DISK

   UPDATE ̲ENTRY(DISK ̲TABLE,SEND ̲BUF,KEY ̲BUF,ALL ̲MASK,NEW
   ̲REC)

   CONF ̲DISPLAY (SET ̲STATUS,FLOP ̲DISK, NEW ̲REC.STATUS)

END ̲FLOPPY ̲DISK ̲ACTION
































               Figure 4.2.9.4.11.5-5


4.2.9.4.12   S̲U̲P̲E̲R̲V̲I̲S̲O̲R̲ ̲O̲N̲L̲Y̲ ̲M̲O̲D̲E̲


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

         The supervisor only made is entered in WARM1 start-up,
         if so specified in the start command.                   
         The supervisor only mode requires the following peripherals.

         -   supervisor VDU                                       - supervisor
                                                                    printers

         In the supervisor only mode the message queue contents
          is frozen and the only commands applicable are the
         

         -   supervisor queue control at restart commands.

         The supervisor only mode is left, when the supervisor
         enters the CAMPS ̲GO command, which is sent to the SYQ.

         Having received this the

         -   supervisor VDUs are signed off

         -   supervisor printers are stopped.



4.2.9.4.l2.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲ 

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

         a)  SUPERVISOR ̲ONLY ̲MODE

         b)  SUPERVISOR ̲ONLY ̲MODE (R6) 

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


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

         R6 link  

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

         R0..R7      (destr.)



4.2.9.4.l2.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲ 

         The supervisor ̲only ̲modr module contains and references
         to procedures are specified in figure 4.2.9.4.l2.3-1















































Fig. 4.2.9.4.12.3-1…01…SUPERVISOR ̲ONLY ̲MODE MODULE COMPONENTS


4.2.9.4.l2.4 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̲ 

             TERMINAL ̲P, DEVICE ̲P,
             START ̲SUPV, STOP ̲SUPV,
             CFH ̲SUBTYPE,
             COPSY ̲GARBLE ̲PARAMS                     : SSC.COMMON
             SUPERVISOR ̲PRINTER ̲PARAMETER ̲TYPE,

             CAMPS ̲GO                                : DBD


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

             SERVE ̲CFH ̲OS ̲IN ̲SUPU ̲ONLY ̲MODE ̲PROC = CFH. VARIOUS
             


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

             CAMPS ̲PHASE,
             CFH ̲OS, LONG ̲OS                     : SSC. COMMON
             

             SUPV ̲ROPS,
             LONG ̲OP                             : CFH.VARIOUS


         a4) T̲a̲b̲l̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             LOG ̲D ̲TO ̲LOCAL                      : SSC.COMMON


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


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

             VAR  I,J: INTEGER

             VAR  LOCAL ̲DNO: l.. NO ̲OF ̲SADS

             VAR  FOUND: BOOLEAN

             VAR  FURTHER ̲ACTION: BOOLEAN

             VAR G ̲INF : COPSY ̲GARBLE ̲PARAMS






4.2.9.4.l2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲ 

         a)  S̲U̲P̲E̲R̲V̲I̲S̲O̲R̲-̲O̲N̲L̲Y̲-̲M̲O̲D̲E̲ ̲

             The procedure requests
             - start of supervisor VDU subprocesses
             - start of the supervisor printer subprocesses
             - awaits the supervisor CAMPS ̲GO command
             - stop of supervisor VOV subprocesses
             - stop of supervisor printers


         b) S̲T̲A̲R̲T̲-̲S̲T̲O̲P̲-̲S̲U̲P̲E̲R̲V̲I̲S̲O̲R̲S̲

             Signals to the TEMCO coroutines l and 2, which
             administers the supervisor VOU subprocesses.


         c) S̲T̲A̲R̲T̲-̲S̲T̲O̲P̲-̲S̲U̲P̲V̲-̲R̲O̲P̲S̲

             Signals to the DEMCO coroutives, (specified in
              system parameters) which administeres the supervisor
             printers.


         d) S̲E̲R̲V̲E̲-̲C̲F̲H̲-̲ ̲O̲S̲-̲I̲N̲-̲S̲U̲P̲V̲-̲O̲N̲L̲Y̲-̲M̲O̲D̲E̲

             The procedures serves the CFH ̲OS and performes
             a dispatch.
             Hardware errorhandling is supported.
             The only allowed supervisor command is the CAMPS
             ̲GO command.


         e) C̲M̲I̲-̲C̲M̲D̲S̲-̲I̲N̲-̲S̲U̲P̲V̲-̲O̲N̲L̲Y̲-̲M̲O̲D̲E̲

             The commands are returned.

         d) S̲U̲P̲V̲-̲C̲M̲D̲S̲-̲I̲N̲-̲S̲U̲P̲V̲-̲O̲N̲L̲Y̲-̲M̲O̲D̲E̲

             The only supervisor command is
             - CAMPS  ̲GO
             which makes COPSY enter online operation.





PROCEDURE SUPERVISOR ̲ONLY ̲MODE


BEGIN


   CAMPS ̲PHASE=SUPERVISOR ̲ONLY ̲PHASE


   START ̲STOP ̲SUPERVISORS (START ̲SUPV)


   GET ̲SYSTEM ̲PARAMS (SUPV ̲PRINTER ̲PARAMETER) (SUPV ̲ROPS)


   START ̲STOP ̲SUPV ̲ROPS (SUPV ̲ROPS,START ̲SUPV)


   SERVE ̲CFH ̲OS ̲IN ̲SUPV ̲ONLY ̲MODE


   START ̲STOP ̲SUPERVISORS (STOP ̲SUPV)


   START ̲STOP ̲SUPV ̲ROPS (SUPV ̲ROPS, STOP ̲SUPV)


END ̲SUPERVISOR ̲ONLY  ̲MODE




















Figure 4.2.9.4.l2.5 ̲l…86…1   …02…     …02…   …02…   …02…      …02…    …02…                         
          
PROCEDURE START ̲STOP ̲SUPERVISORS (CMD:CFH ̲SUBTYPE)


BEGIN


   NOTIFY ̲LINE ̲COROUTINE (TERMINAL ̲P,l, CMD,0)

   NOTIFY ̲LINE ̲COROUTINE (TERMINAL ̲P,2, CMD,0)

END ̲START ̲STOP ̲SUPERVISORS


































                Fig. 4.2.9.4.12.5-2


PROCEDURE START ̲STOP ̲SUPV ̲ROPS(SUPV ̲ROPS:SUPV ̲PRINTER
 ̲PARAMETER ̲TYPE,
                                          CMD: CFH ̲SUBTYPE)

VAR  I,J: INTEGER
VAR  LOCAL ̲DNO: l..NO ̲OF ̲SADS
VAR  FOUND: BOOLEAN
BEGIN
    EQUIVALENCE (SUPV ̲ROPS, ROPS : ARRAY (l..4))
    I = O

    LOOP ̲I

             I = I + l

         LOCAL ̲DNO = LOG ̲D ̲TO ̲LOCAL(ROPS (I))

                 "Examine if ROP is already started"

         J = 0

         FOUND = FALSE

         LOOP J

         J = J + l

         J GE  I? EXIT

         ROPS(J)EQ  ROPS(I) ?   FOUND = TRUE ,   EXIT

         END ̲LOOP ̲J


             FOUND EQ TRUE?

             NOTIFY ̲LINE ̲COROUTINE(DEVICE ̲P,LOCAL ̲DNO,
             CMD,0)


             I  EQ  4  ?  EXIT

         END ̲LOOP ̲I


END ̲START ̲STOP ̲SUPV ̲ROPS


               Figure 4.2.9.4.12.5-3


PROCEDURE SERVE ̲FH ̲OS ̲IN ̲SUPV ̲ONLY-MODE
VAR  FURTHER ̲ACTION: BOOLEAN
VAR  G ̲INF: COPSY ̲GARBLE ̲PARAMS
INIT G ̲INF. ERROR ̲TYPE   = COPSY ̲LONG ̲ERROR
     G ̲INF. USER ̲ACTION = CONTINUE
     G ̲INF. ERROR ̲COR   = CFH ̲COR
     G ̲INF. ERROR ̲LOC   = SERVE ̲CFH ̲OS ̲IN ̲SUPV ̲MODE ̲PROC

BEGIN
   FURTHER ̲ACTIONS = FALSE

   LOOP

      WAIT ̲OPSEM (CFH ̲OS)(LONG ̲OP)

      CASE   LONG ̲OP. CMD ̲TYPE   OF

         DEVICE ̲ERROR,

         WDP ̲CMD?  HW ̲ERROR ̲HANDLING (LONG ̲OP)

         CMI ̲CMD ̲L?  CMI ̲CMDS ̲IN ̲SUPV ̲ONLY ̲MODE

         SUPV ̲CMD?    SUPV ̲CMDS ̲IN ̲SUPV ̲ONLY ̲MODE (FURTHER
 ̲ACTION)

         OTHER?   G ̲INF. ERROR ̲INFO(l) = CMD ̲TYPE ̲ERROR

                  COPSY ̲SEND ̲GARBLE(LONG ̲OP, G ̲INF)


     END CASE  LONG ̲OP.CPH.MAINTYPE

     SIGNAL ̲OPSEM(LONG ̲OS, LONG ̲OP)

     FURTHER ̲ACTION EQ TRUE?         EXIT

   END ̲LOOP

END ̲SERVE ̲CFH ̲OS ̲IN ̲SUPV ̲ONLY ̲MODE







Fig. 4.2.9.4.12.5-4…86…1   …02…     …02…   …02…   …02…      …02…    …02…                          
         
PROCEDURE CMI ̲CMDS ̲IN ̲SUPV ̲ONLY ̲MODE

BEGIN

   CC = RUNNING ̲IN ̲SUPV ̲ONLY ̲MODE

   SEND ̲SSC-REPLY(LONG ̲OP.REF,LONG-OP ̲INF (l),(CC)
   "REF  indicates whether the queue element specified
         in INF(l) references a buffer or queue info 

END ̲CMI ̲CMDS ̲IN ̲SUPV ̲ONLY ̲MODE















Figure 4.2.9.4.l2.5-5…86…1   …02…     …02…   …02…   …02…      …02…    …02…                         
          
PROCEDURE SUPV ̲CMDS ̲IN ̲SUPV ̲ONLY ̲MODE (FURTHER ̲ACTION:
 BOOLEAN)


BEGIN

   LONG ̲OP.CMD EQ CAMPS ̲GO?

        FURTHER ̲ACTION = TRUE

        CC = OK

   CC = ILLEGAL ̲COMMAND

   SEND ̲SSC ̲REPLY (LONG ̲OP.REF, LONG ̲OP.INF(l),CC)

END ̲SUPV ̲CMDS ̲IN ̲SUPV ̲ONLY ̲MODE









              Figure 4.2.9.4.l2.5 - 6


4.2.9.5.…02…C̲O̲M̲M̲O̲N̲ ̲C̲F̲H̲ ̲D̲A̲T̲A̲

         The CFH data is divided into

         - CONFIG segment data

         - load file data

         - inherit data

         - various


4.2.9.5.l.   C̲O̲N̲F̲I̲G̲ ̲s̲e̲g̲m̲e̲n̲t̲ ̲d̲a̲t̲a̲

         The CONFIG segment contains data to be used in creation
         of

         - processes
         - the mirrored disks
         - inheritance data

         It contains the following tables, which are defined
         below

         - PROCESS CONF

         - MIRRORED ̲DISK ̲CONF

         - TMP ̲LOAD ̲TABLE

         - CSF ̲LOAD ̲TABLE

         - TMP ̲ENVIRONMENT

         - CSF ̲ENVIRONMENT


4.2.9.5.l.l. P̲R̲O̲C̲E̲S̲S̲ ̲D̲A̲T̲A̲

             COPSY childsprocesses are created based upon configuration
             data for each child process type.
             (refer overleaf)

             The following abbreviations are used.

             - PS   :   program segment
             - DS   :   data    segment
             - PPS  :   process parameter segment

             The PROCESS ̲CONF contains

             - file names for PS,DS are PPS
             - params to be used during CREATE ̲SEGMENT
             - a P ̲C ̲B to be used during CREATE ̲PROCESS
             - a RESOURCES specification to be used during
               CREATE PROCESS 

             - attributes to define a subprocess to CSF

             - the MAX ̲COUNT i.e. number of errors detect-
               ed, before the process is retired

             - the errortype (VITAL,DUMMY,RETIRABLE) for
               the childprocess

             - the TMS funtions, which the new process may
               execute. Specified during OFFER

             - a TMS resource specification to be used 
               during USER ̲ON

             - specify if FMS ̲FIXED and/or FMS ̲MAING is used.
               If so,

             - specify resources to be used during USER ̲ON



VAR  PROCESS ̲CONF      = ARRAY (CHILD ̲PROCESS ̲TYPE) of
 PROCESS ̲CONF ̲TYPE

TYPE PROCESS ̲CONF ̲TYPE =

  RECORD

   PS ̲FILE,

   DS ̲FILE,

   PPS ̲FILE                             : FILE ̲NAME

   PS ̲PARAMS,

   DS ̲PARAMS,

   PPS ̲PARAMS                           : SEGMENT ̲ATTR
   ̲TYPE

   P ̲C ̲B                                : PROCESS ̲CREATION
   ̲BLOCK

   RESOURCES                            : RAT ̲SPEC

   ATTRIBUTES                           : SUBPROCESS ̲ATTRIBUTES

   MAX ̲COUNT                            : INTEGER

   E ̲TYPE                               : ERROR ̲PROCESS
   ̲TYPE

   CHILD ̲TMS ̲ACCESS ̲RIGHTS              : ACCESS ̲TYPES

   TMS ̲RESOURCES ̲SPEC                   : FMS ̲RESOURCE
   ̲SPEC

   FIXED ̲USED                           : BOOLEAN

   FMS ̲FIXED ̲RESOURCES                  : FMS ̲RESOURCE
   ̲SPEC

   MOVING ̲USED                          : BOOLEAN

   FMS ̲MOVING ̲RESOURCES                 : FMS ̲RESOURCE
   ̲SPEC

END


4.2.9.5.l.2 M̲i̲r̲r̲o̲r̲e̲d̲ ̲d̲i̲s̲k̲ ̲d̲a̲t̲a̲

         The mirrored disk data consists of

         -   FMS CREATE, ENTER, PROTECT data to be used
             during creation of files on an empty mirrored
             disk


         a)  M̲i̲r̲r̲o̲w̲e̲d̲ ̲d̲i̲s̲k̲ ̲c̲o̲n̲f̲i̲g̲u̲r̲a̲t̲i̲o̲n̲ ̲d̲a̲t̲a̲

             The data describes:

             -   the files to be created and inserted in the
                 Root directory. For each file is specified
                 a name and a protect list defining 

                 - users of the file

                 - access rights of the users

             -   a number of directories to be created and inserted
                 in the ROOT directory.

                 For each directory is specified a number of
                 files to be created and entered into the directory.
                 Also a protect list per file is specified.



         TYPE    PROTECT ̲LIST  =

             RECORD
                 MAX ̲TO ̲PROTECT:     INTEGER
                 ACC:                ARRAY (l..MAX
                 ̲TO ̲PROTECT)OF
                                     ACCESS ̲DESCRIPTION.
             END

             CREATE ̲SINGLE  =

             RECORD
                 ATTR   : NEW ̲ATTRIBUTES
                 NAME   : FILE ̲NAME
                 PROT   : PROTECT ̲LIST
             END

             CREATE ̲LIST =

             RECORD
                 MAX ̲TO ̲CREATE : INTEGER
                 C ̲SINGLE:  ARRAY (l..MAX ̲TO ̲CREATE)
                 OF
                 CREATE ̲SINGLE
             END

             DIRECTORY ̲LIST =

             RECORD
                 CREATE ̲DIRECTORY : CREATE ̲SINGLE
                 CREATE ̲FILES     : CREATE LIST 
             END

             VOLUME ̲DESCR   =

             RECORD

                 FILES ̲IN ̲ROOT :       CREATE ̲LIST
                 MAX ̲OWN ̲DIRECTORIES : INTEGER
                 D ̲LIST :              ARRAY(l..MAX
                 ̲OWN ̲DIRECTORIES)
                                       OF DIRECTORY
                 ̲LIST
             END

             MIR ̲CONF=

             RECORD
                 FIXED ̲VOL ̲CONF : VOLUME ̲DESCR
                 MIR ̲VOL ̲CONF   : VOLUME ̲DESCR
             END

         VAR     MIRRORED ̲DISKS ̲CONF : MIR ̲CONF


4.2.9.5.l.3 I̲n̲h̲e̲r̲i̲t̲a̲n̲c̲e̲ ̲T̲a̲b̲l̲e̲s̲

             The inheritance date consists of

             - a TMP ̲LOAD ̲TABLE

             - a CSF ̲LOAD ̲TABLE

             - a CFS ̲ENVIRONMENT

             - a TMP ̲EMVIRONMENT

             a)  T̲M̲P̲ ̲L̲o̲a̲d̲ ̲T̲a̲b̲l̲e̲

                 VAR                                             TMP
                                                                 ̲LOAD
                                                                 ̲TABLE
                                                                 
                                                                 :
                                                                 
                                                                 TMP
                                                                 ̲LOAD
                                                                 ̲TYPE

                 The table defines  the object indexes
                 to be used by
                 TMP to address a given subprocess

                 -  TMP ̲RSE(response syncronization
                 element)
                 -  DS (data segment)

             b)  C̲S̲F̲ ̲L̲o̲a̲d̲ ̲T̲a̲b̲l̲e̲

                 VAR                                             CSF
                                                                 ̲LOAD
                                                                 ̲TABLE
                                                                 
                                                                 :
                                                                 CSF
                                                                 ̲LOAD
                                                                 ̲TYPE

                 The table defines the object indices
                 to be used by CSF to address a given
                 subprocess'
                 - MMON-RSEs

             c)  C̲S̲F̲ ̲E̲n̲v̲i̲r̲o̲n̲m̲e̲n̲t̲

                 VAR                                             CSF
                                                                 ̲ENVIRONMENT
                                                                 :
                                                                 CSF
                                                                 ̲ENVIRONMENT
                                                                 ̲TYPE

                 Specifies the objects to be inherited
                 by CFS i.e.
                 - objects defined by global inherit
                 constants
                 - all MMON ̲RSE
                 and corresponding capabilities.

             d)  T̲M̲P̲ ̲E̲n̲v̲i̲r̲o̲n̲m̲e̲n̲t̲

                 VAR                                             TMP
                                                                 ̲ENVIRONMENT
                                                                 
                                                                 :
                                                                 TMP
                                                                 ̲ENVIRONMENT
                                                                 ̲TYPE

                 TYPE                                            TMP
                                                                 ̲ENVIRONMENT
                                                                 ̲TYPE
                                                                 =

                     RECORD
                                                                 HEAD
                                                                 
                                                                 
                                                                 :
                                                                 
                                                                 ENV
                                                                 ̲TEMPLATE
                                                                 ̲HEAD
                                                                 ELEMS
                                                                 
                                                                 :
                                                                 
                                                                 ARRAY
                                                                 (l..TMP
                                                                 ̲ELEMS)
                                                                 OF
                                                                 HERITAGE
                                                                 ̲ELEM
                     END



                 CONST

                     TMP ̲ELEMS  =  GLOBAL ̲INH ̲SIZE
                     + 2 x PROCESS ̲INH ̲SIZE

                 Specifies the objects to be inherited
                 by TMP i.e.
                 - objects defined by global inherit
                 constants
                 - all TMP ̲RSE object indexes
                 - all DS(data segment) object indexes
                 and corresponding capabilities.



4.2.9.5.2    L̲o̲a̲d̲ ̲F̲i̲l̲e̲ ̲D̲a̲t̲a̲

             The load file date describes
             - file name lists
             - patch data
             - DAMOS load file headers



4.2.9.5.2.l F̲i̲l̲e̲ ̲N̲a̲m̲e̲ ̲L̲i̲s̲t̲

             a)  L̲O̲A̲D̲ ̲F̲I̲L̲E̲ ̲L̲I̲S̲T̲

                 CONST                                           MAX
                                                                 ̲LOAD
                                                                 ̲FILES
                                                                 =

                 VAR                                             LOAD
                                                                 ̲FILE
                                                                 ̲LIST=
                                                                 
                                                                 
                                                                 ARRAY(l..MAX
                                                                 ̲LOAD
                                                                 ̲FILES)OF
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 FILE
                                                                 ̲NAME

                 Contains the filenames for the files
                 in the
                 -INITIAL ̲SSC/MODIFIED ̲SSC
                 directories.

             b)  F̲o̲r̲m̲a̲t̲ ̲N̲a̲m̲e̲ ̲L̲i̲s̲t̲

                 VAR                                             FORMAT
                                                                 ̲NAME
                                                                 ̲LIST
                                                                 =
                                                                 ARRAY
                                                                 (l..MAX
                                                                 ̲FORMAT
                                                                 ̲FILES)
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 OF
                                                                 FILE
                                                                 ̲NAME


             c)  P̲A̲T̲C̲H̲ ̲F̲I̲L̲E̲ ̲N̲A̲M̲E̲ ̲L̲I̲S̲T̲

                 VAR PATCH ̲FILE ̲NAME ̲LIST = ARRAY (l..MAX
                     ̲PATCH ̲FILES)
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 OF
                                                                 FILE
                                                                 ̲NAME




             d)  L̲T̲U̲ ̲F̲W̲ ̲N̲A̲M̲E̲ ̲L̲I̲S̲T̲

                 VAR                                             LTU
                                                                 ̲FW
                                                                 ̲NAME
                                                                 ̲LIST
                                                                 =
                                                                 ARRAY
                                                                 (NICS-TARE
                                                                 ̲LOCAL..
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 SCARS
                                                                 ̲CCIS)OF
                                                                 FILE
                                                                 ̲NAME



4.2.9.5.2.l P̲A̲T̲C̲H̲ ̲D̲A̲T̲A̲

             VAR     PATCH ̲TABLE      = ARRAY(l..MAX
                     ̲PATCH ̲FILES) OF

                 RECORD

                     PROC ̲TYPE  :  CHILD ̲PROCESS ̲TYPE
                     SEG  ̲TYPE  :  SEG
                     VERSION    :  INTEGER

                 END

             Contains an extract of the information
             in the patchfileheader. Set by the
              - SET ̲PATCH ̲TABLE procedure


             VAR     PATCH ̲MASK: INTEGER
             "Bit I set implies that PATCHFILE (I)
             is to be used during start-up.

             The PATCH ̲MASK is set by the operator
             in the start-up command.



         TYPE    PATCH ̲FILE ̲HEADER =

             RECORD
                 MEM ̲OFF ̲SET:   INTEGER  words
                                segment off-set

                 SIZE:          INTEGER
                                no of words in patch

                 CHECKSUM:   INTEGER
                                Sum of the patchfile
                     words


                 VERSION:   INTEGER
                 PROC ̲TYPE: CHILD ̲PROCESS ̲TYPE

                 SEG ̲TYPE : SEG
                                 only PROGRAM,DATA
                     and PPS are applicable

             END

             Describes the fileheader information for
             a single patchfile.




4.2.9.5.2.3 L̲o̲a̲d̲ ̲F̲i̲l̲e̲ ̲H̲e̲a̲d̲e̲r̲


             A CAMPS load file is organized as shown
             below, as it only contains one segment:

                        ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲     
                      
                                                LOAD
                     ̲FILE ̲HEADER
                        ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

                        ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
             FILE ̲SIZE                          SEGMENT
             ̲HEADER
                        ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                                  
                           
                        ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲


                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 SEGMENT(S)



                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 (object
                                                                 code)
                        ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲


         TYPE

           BOUND ̲ENV =
             RECORD:
                BOUNDS:        BOUNDS;
                ENVIRONMENT:   INTEGER; "pointer to env ̲template
                                           (ODT)
                                        "relative to start of
                                              PPS
             END;

         This type is impressed the PARAM ̲STACK in the PPS during
         system generation and the 

         - BOUNDS
         - Environment

         are initialized.

         The LOAD ̲SEGMENT module copies the

         - BOUNDS
         - Environment

         into the PROGRESS ̲CONFIG ̲P ̲C ̲B during PPS load.







4.2.9.5.3    I̲n̲h̲e̲r̲i̲t̲a̲n̲c̲e̲ ̲D̲a̲t̲a̲

         The inheritance data here specified are a supplement
         to the inheritance tables in section 4.2.9.5.l.4.

         They includes the COMMON ̲ENVIRONMENT table, which is
         not included in the CONFIG segment.



4.2.9.5.3.1 C̲O̲M̲M̲O̲N̲ ̲E̲N̲V̲I̲R̲O̲N̲M̲E̲N̲T̲

         VAR     COMMON ̲ENVIRONMENT : COMMON ̲ENVIRONMENT ̲TYPE

         TYPE    COMMON ̲ENVIRONMENT ̲TYPE =

             RECORD
                 HEAD : ENV ̲TEMPLATE ̲HEAD
                 ELEMS: ARRAY(l..CSF ̲SHARED ̲SEGM) OF HERITAGE
                 ̲ELEM

             END


         INIT

         "COMMON ̲INVIRONMENT. HEAD. MAX ̲ENTRIES = defined locally

          COMMON ̲ENVIRONMENT.HEAD. HERITAGE ̲SIZE= GLOBAL ̲INH
         ̲SIZE

          COMMON ̲ENVIRONMENT.ELEMS(i).INDEX     = i

          COMMON ̲ENVIRONMENT.ELEMS(i). CV       = refer overleaf

         The common invironment contains the objects specified
         in the "global inherit constants".

         The objects are inherited to all COPSY child processes.


4.2.9.5.3.2 V̲a̲r̲i̲o̲u̲s̲ ̲I̲n̲h̲e̲r̲i̲t̲a̲n̲c̲e̲ ̲d̲a̲t̲a̲

         CONST   GLOBAL ̲INH ̲SIZE = CSF ̲SHARED ̲SEGM

         Number of objects inherited to any child process.

         CONST   PROCESS ̲INH ̲SIZE = NO ̲OF ̲PROCESSES-COPSY ̲P
                 ̲NO+l

         Number of child processes plus COPSY



             CONST   DS ̲CV =
                     data segment capability vector
                     (access rights
                     for a child)

             CONST   PS ̲CV =
                     program sequent capability vector

             CONST   PPS-̲CV =
                     PPS capability vector

             CONST   SYNC ̲EL ̲CV =
                     syncronization element capability
                     vector



4.2.9.5.4    V̲A̲R̲I̲O̲U̲S̲ ̲C̲F̲H̲ ̲C̲O̲M̲M̲O̲N̲ ̲D̲A̲T̲A̲


         TYPE        INH ̲OBJS =

                 RECORD
                     MMON ̲RSE          :     OBJ ̲INDEX
                     QMON ̲RSE          :     OBJ ̲INDEX
                     TMP  ̲RSE          :     OBJ ̲INDEX
                     PS   ̲OBJ          :     OBJ ̲INDEX
                     DS   ̲OBJ          :     OBJ ̲INDEX
                     PPS  ̲OBJ          :     OBJ ̲INDEX
                 END

             Specifies the object indexes to be created
             by CFH per process.

             The objects are saved in the PROCESS ̲TABLE,
             where each entry is impressed  INH ̲OBJS
             type.


             VAR     SEGM ̲CONFIG  =

                 RECORD

                     CONFIG ̲FILE        :  FILE ̲NAME
                     CONFIG ̲VERSION = ARRAYS (INIT
                     ̲APPL ̲SW..MODI ̲APPL ̲SW)
                                             OF INTEGER
                     TMP ̲SHARED ̲FILE    :  FILE ̲NAME
                     CSF ̲SHARED ̲FILE    :  FILE ̲NAME

                 END

             Contains data for the CONFIG,TMP ̲SHARED
             and CSF ̲SHARED files 


             TYPE    SEG =
                 (PROGRAM ̲SEG,
                 DATA ̲SEG,
                 PPS ̲SEG,
                 TMP ̲SHARED ̲SEG,
                 CSF ̲SHARED ̲SEG,
                 CONFIG ̲SEG,
                 GET ̲ENTRYPOINT ̲SEG,
                 RESTORE ̲SEG)

             Identifies the types of segments handled.


             VAR     WRK : ARRAY (1..256) OF INTEGER
             Used for temporary storage.


             VAR     STI ̲CON : FDCB ̲INDEX
             Handle of the STI received during ASSIGN.


             VAR     TIA ̲CON : FDCB ̲INDEX
             Handle of the TIA received during CREATE
             ̲SUBDEVICE


             VAR     ASSIGN ̲REC : NEW ̲TMS ̲DEVICE (IOS.TMS)
             Record used during ASSIGN of STI,TIA,MAP
             device.


             VAR     DEVICE ̲REC : NEW ̲TMS ̲SUBDEVICE
                     (IOS.TMS)
             Record used during CREATE ̲SUBDEVICE of
             LTUs and TIAs




             VAR     START ̲DTG : DTG ̲TYPE
             Start-up time specified by operator


             VAR     OPERATOR ̲ONLY, SUPERVISOR ̲ONLY:
                     BOOLEAN
             Specifies if the operator only/supervisor
             only
              mode is to be entered.

             VAR     START ̲UP ̲TYPE ̲D : START ̲UP ̲TYPE
             The type of start-up as specified by the
             operator


             VAR     LOAD ̲SW ̲TYPE : INITIAL ̲SW.MODIFIED
                     ̲SW
             The operator specification of whether
             COPY child-processes
             are to be started from the SSC ̲DIR ̲INITIAL
             or SSC ̲
             DIR ̲MODIFIED directory.


             VAR     COUNT ̲ANSWER : LONG ̲OP ̲TYPE  
                        
             Used when COUNT signals to CFH-OS.
             The CMD ̲TYPE and CMD indicate the answer.

             VAR  NO ̲OF ̲OUTSTANDING ̲ANSWERS: INTEGER
             set by CFH and decremented by COUNT. It
             defines the COPSY Coroutines not having
             signalled to CFH ̲S.



             VAR     KEY ̲BUF : SINGLE PARAM
             Used for searching in a table


             VAR     SEND ̲BUF: TMP ̲PARAM
             Used for searching in a table 


             VAR     READ ̲MASK : BIT ̲MASK
             Used for searching in a table


             VAR     LONG ̲OP : LONG ̲OP ̲TYPE


             TYPE
             CLOSE ̲DOWN ̲TYPE = (ORDERED ̲CLOSE ̲DOWN,
                                                ORDERED
                                         ̲SWITCHOVER)

             Used during operator command handling
             to distinguish ordered closedown from
             ordered switchover.


             TYPE
             PHASE ̲TYPE : (INITIAL,FINAL,LINE ̲PROCESSES,
                           COPSY ̲ENVIRONMENT,CLEANED
                     ̲UP,TERMINATE)
             Defines the close-down phases.


             VAR     SUPV ̲ROPS : SUPV ̲PRINTER ̲PARAMETER
                     ̲TYPE
             Contain the supervisor printers.
             Set during supervisor only mode and is
             used by the
             CHAIN ̲CONF ̲DISPLAY procedure to determine
             if a supervisor printer is errorneous.


             PROFILE ̲OUT =

                 RECORD

                     NO : INTEGER
                     CONNECTED : BOOLEAN

                 END

             Used to extract the logical no and connected
             fields from a profile.




         TYPE

         LOAD ̲IN ̲TYPE =

             RECORD
                 FILE           :  FILE ̲NAME
                 SEG ̲SIZE       :  LPN
                 SEG ̲TYPE       :  SEG
                 SUBP ̲TYPE      :  SUBPROCESS ̲TYPE
                 G ̲PROC         :  l..NO ̲OF ̲PROCESSES
                 SSC ̲DIR        :  FDCB ̲INDEX
                 START ̲UP ̲DIR   :  FDCB ̲INDEX
                 NO ̲OF ̲CHILD ̲OBJ:  INTEGER
                 SEGM           :  OBJ ̲INDEX
             END


         Specifies data transferred to the LOAD ̲SEGMENT module
         to load a segment.

         The following information are specified

         - filename
         - size of memory segment in pages
         - segment type
         - subprocess type containing the segment
         - CAMPS process no.
         - directory for the SSC ̲DIR (used to look-up patchfiles)
         - directory for the above file
         - number of objects in the child object descriptor
         table
         - an object index for the segment to be loaded


         VAR     TRACE ̲FMS ̲RESOURCES : FMS ̲RESOURCE ̲SPEC
                 Resources to be used to USER ̲ON a process,
                 which is to generate trace output.

         CONST GARBLE = ADDRESS ("GARBLE")
         The filename of the GARBLE file


         VAR     ACTIVE ̲TDX ̲BUS ̲NO = l..2
                 Specifies the active TDX bus number




             TYPE
             COPY ̲INF ̲TYPE =

                 RECORD

                     CC      :  INTEGER
                     FILE    :  FILE ̲NAME         error
                     file 
                     FM ̲TO   :  (FM,TO)           error
                     in the source or
                                                  destination
                     indication.

                 END

             Specifies return information from some
             high level common CFH disk procedures.

             TYPE
             MODIFY ̲INF =

                 RECORD

                     CC      :  INTEGER
                     FILE    :  FILE ̲NAME         error
                     file 
                     DISK    :  OPERATOR ̲DISK    "error
                     disk"


                 END

             Specifies return information from some
             high level disk common CFH procedures.


             CONST                       DEFINE ̲Q ̲PROFILES
                                         ̲PROC     
                                                 =
                                         l
                                         AWAIT ̲GO ̲ACTIVE
                                         ̲PROC     
                                                  
                                         = 2
                                         CMI ̲COMMANDS
                                         ̲PROC     
                                                  
                                            = 3
                                         ONLINE ̲OPERATION
                                         ̲PROC     
                                                  =
                                         4
                                         OPERATOR ̲ONLY
                                         ̲CMDS ̲PROC
                                                  
                                           = 5
                                         SERVE ̲CFH
                                         ̲OS ̲IN ̲SUPV
                                         ̲ONLY ̲MODE
                                         ̲PROC = 6
                                         TMS ̲ERRORHANDLING
                                         ̲PROC     
                                                 =
                                         7
                                         CCB ̲REPORT
                                         ̲HANDLING ̲PROC
                                                  
                                          = 8
                                         CLOSE ̲DOWN
                                         ̲PROCESS ̲PROC
                                                  
                                           = 9

             Procedure specification in CFH garble
             reports.



             CONST                       CMD ̲TYPE ̲ERROR
                                                  
                                                  
                                          = l
                                         CMD ̲ERROR
                                                  
                                                  
                                               = 2
                                         U ̲SDID ̲PROFILE
                                         ̲ERROR    
                                                  
                                          = 3
                                         WDP ̲REP ̲ERROR
                                                  
                                                  
                                           = 4
                                         ANSWER ̲ERROR
                                                  
                                                  
                                            = 5


             User info specifications in CFH garble
             reports.


             VAR MIRRORED ̲DISK ̲ACTION ̲TABLE: ACTION
                 ̲TABLE refer fig. 4.2.9.5.4-1. Used
                 to determine the action to be perfomred
                 on a mirrored disk

             VAR FLOPPY ̲DISK ̲ACTION ̲TABLE: ACTION ̲TABLE
                 refer fig. 4.2.9.5.4-1. Used to determine
                 the action to be performed on a floppy
                 disk.

             VAR OFFLINE ̲DISK ̲ACTION ̲TABLE: ACTION
                 ̲TABLE refer fig. 4.2.9.5.4-2. Used
                 to determine to action to be performed
                 on an offline disk.

         TYPE DISK ̲ACTIONS =  (NO ̲OP,
                              REFUSE,
                              UPDATE,
                                ASSIGNE,
                                INCLUDE,
                              DISCARD,
                              MOUNT,
                              DISMOUTN)

         TYPE ACTION ̲TABLE =  ARRAY (DISK ̲STATUS)  OF
                              ARRAY (DISK ̲STATUS)  OF
                                      DISK ̲ACTIONS










     Figure 4.2.9.5.4-1 DISK DECISION TABLES







     Figure 4.2.9.5.4-2 DISK DECISION TABLES


         CONST   MAX ̲MIRRORED ̲MOVING ̲SECTORS =
                 MAX ̲MIRRORED ̲FIXED ̲SECTORS =

         Number of sectors to be copied, when a mirrored disk
         is inserted into mirrored operation

         CONST   FLOPPY ̲DISK ̲HANDLER ̲OBJ ̲INDEX = 0
                 OFFLINE ̲DISK ̲HANDLER ̲OBJ ̲INDEX = 1
                 MIR1 ̲MOVING ̲HANDLER ̲OBJ ̲INDEX = 2
                 MIR1 ̲FIXED ̲HANDLER ̲OBJ ̲INDEX = 3
                 MIR2 ̲MOVING ̲HANDLER ̲OBJ ̲INDEX = 4
                 MIR2 ̲FIXED ̲HANDLER ̲OBJ ̲INDEX = 5

         INIT    FLOPPY ̲DISK ̲ATTR.KIND =       FD ̲SINGLE
                 FLOPPY ̲DISK ̲ATTR.LOGDEV =     FLOPPY ̲DISK ̲HANDLER
                                               ̲
                                                       OBJ ̲INDEX

                 FLOPPY ̲DISK ̲ATTR.UNIT =
                 FLOPPY ̲DISK ̲ATTR.SUBUNIT =

                 OFFL ̲DISK ̲ATTR.KIND =         SMD80
                 OFFL ̲DISK ̲ATTR.LOGDEV =       OFFLINE ̲DISK
                                               ̲HANDLER ̲
                                                        OBJ
                                               ̲INDEX

         defines assigne parameters for the

         -   floppy disk
         -   offline-disk

         VAR     MIR ̲FIXED ̲ATTR,
                 MIR ̲MOVING ̲ATTR:              LOGICAL ̲DUAL
                                               ̲DEVICE

         INIT    MIR ̲FIXED ̲ATTR(0).KIND =      MMD82
                 MIR ̲FIXED ̲ATTR(0).LOGDEV =    MIR1 ̲FIXED ̲HANDLER
                                               ̲OBJ INDEX
                 MIR ̲FIXED ̲ATTR(0).UNIT =      0
                 MIR ̲FIXED ̲ATTR(0).SUBUNIT=    0

                 MIR ̲FIXED ̲ATTR(1).KIND =      MMD82
                 MIR ̲FIXED ̲ATTR(1).LOGDEV =    MIR1 ̲FIXED ̲HANDLER
                                               ̲OBJ INDEX
                 MIR ̲FIXED ̲ATTR(1).UNIT =      0
                 MIR ̲FIXED ̲ATTR(1).SUBUNIT=    0

                 MIR ̲MOVING ̲ATTR(0).KIND =     MMD82
                 MIR ̲MOVING ̲ATTR(0).LOGDEV =   MIR1 ̲MOVING ̲HANDLER
                                               ̲OBJ INDEX


                 MIR ̲MOVING ̲ATTR(0).UNIT =     0
                 MIR ̲MOVING ̲ATTR(0).SUBUNIT=   0

                 MIR ̲MOVING ̲ATTR(1).KIND =     MMD82
                 MIR ̲MOVING ̲ATTR(1).LOGDEV =   MIR1 ̲MOVING ̲HANDLER
                                               ̲OBJ INDEX
                 MIR ̲MOVING ̲ATTR(1).UNIT =     0
                 MIR ̲MOVING ̲ATTR(1).SUBUNIT=   0

         Defines the assigne parameters for the mirrored disks.