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

⟦4eb8685dd⟧ Wang Wps File

    Length: 73115 (0x11d9b)
    Types: Wang Wps File
    Notes: CPS/SDS/029               
    Names: »1825A «

Derivation

└─⟦35f7ff388⟧ Bits:30006086 8" Wang WCS floppy, CR 0132A
    └─ ⟦this⟧ »1825A « 

WangText



I…07…H…0a…H…0d…H…0e…H…02…H…06…G…09…G…0d…G…00…G
G…06…F…08…F…0b…F…0d…F…00…F
F…06…E…09…E…0c…E…0f…E   D…08…D…0a…D…0e…D…02…D D…07…C…0a…C…0e…C…01…C
C…05…B…09…B…0c…B…00…B   B…06…A…08…A…0b…A…0e…A…01…A…05…@…09…@…0e…@…01…@ ?…08…?…86…1
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   …02…
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   …02…
                   
                   
                   …02…
                   
                   
                   
                   
                   
                   
                   
                   

…02…CPS/SDS/029

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








4.2.9.6  C̲o̲m̲m̲o̲n̲ ̲C̲F̲H̲ ̲p̲r̲o̲c̲e̲d̲u̲r̲e̲s̲

         The CFH common procedures are divided into 7 categories
         of procedures:

         a)  T̲D̲X̲ ̲S̲Y̲S̲T̲E̲M̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲S̲

             1:  BSM ̲X ̲HANDLE
             2:  BSM ̲X ̲LTUX ̲CONTROL
             3:  LTUX ̲HANDLE
             4:  SET ̲CHAIN ̲STATUS
             5:  LTUX ̲LINE ̲HANDLE
             6:  CHAIN ̲CONF ̲DISP
             7:  CREATE ̲LTUX
             8:  DELETE ̲LTUX

         b)  L̲T̲U̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲S̲

             9:  LTU ̲HANDLE
             10: SET ̲LTU ̲CHAIN ̲STATUS
             11: LTU ̲LINE ̲HANDLE
             12: LTU ̲CHAIN ̲CONF ̲DISP
             13: CREATE ̲LTU
             14: DELETE ̲LTU
             15: LOAD ̲LTU ̲FW

         c)  C̲O̲M̲M̲O̲N̲ ̲T̲D̲X̲ ̲L̲T̲U̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲S̲

             16: GET ̲PROFILE
             17: CHECK ̲PROFILE

         d)  L̲O̲W̲ ̲L̲E̲V̲E̲L̲ ̲D̲I̲S̲K̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲S̲

             18: MOUNT ̲DISK
             19: DISMOUNT ̲DISK
             20: ASSIGN ̲DISK
             21: DEASSIGN ̲DISK
             22: INCLUDE ̲A ̲MIRRORED ̲DISK
             23: EXCLUDE ̲A ̲MIRRORED ̲DISK
             24: GET ̲DISK ̲DATA


         e)  H̲I̲G̲H̲ ̲L̲E̲V̲E̲L̲ ̲D̲I̲S̲K̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲S̲

             25: GET ̲ROOT ̲MOV
             26: GET ̲ROOT ̲FIX
             27: READ ̲FM ̲FILE
             28: WRITE ̲TO ̲FILE
             29: LOOK ̲UP
             30: DIS ̲MANTLE
             31: COPY ̲FILES
             32: COPY ̲MODIFIED ̲SOFTWARE
             33: FIND ̲DIR ̲FILES
             34: SET ̲SOFTWARE ̲VERSIONS
             35: PRINT ̲SW ̲VERSIONS ̲OP ̲CMD

         f)  W̲A̲T̲C̲H̲D̲O̲G̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲S̲

             36: WDP ̲CONTROL

         g)  C̲O̲R̲O̲U̲T̲I̲N̲E̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲S̲

             37: NOTIFY ̲LONG
             38: NOTIFY ̲CMD
             39: NOTIFY ̲LINE ̲COROUTINE
             40: COMMON ̲NOTIFY ̲LINE ̲COROUTINES
             41: COUNT



4.2.9.6.1    B̲S̲M̲ ̲X̲ ̲H̲A̲N̲D̲L̲E̲



4.6.9.6.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 procedure switches a BSM ̲X as indicated in the
         "status" field. Also, the BSM ̲X table is updated.


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

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

         a)  BSM ̲X ̲HANDLE(NEW ̲REC: BSMX ̲REC)(CC:INTEGER)

         b)  BSM ̲X ̲HANDLE(R0, R7, 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̲

         R0 pointer to NEW ̲REC
         R6 link

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

         R7 CC



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

             BSM ̲X ̲REC  DBD
             BSM ̲X ̲SWITCH,
             ACTIVE ̲BUS, NONE ̲BUS, OTHER ̲BUS  SSC.IF

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

             CONFIG ̲TABLE SSC SOMMON
             BSM ̲X ̲TABLE  DBD
             NEW ̲REC      I/F DATA

             KEY ̲BUF      CFH.VARIOUS
             SEND ̲BUF     CFH.VARIOUS

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

             WDP ̲CCB ̲FAILED :  SSC.COMMON

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

             NEW ̲REC.NO
             NEW ̲REC.STATUS (m)
             KEY ̲BUF.KEY (m)


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

             VAR BSM ̲X ̲INDIC: INTEGER



4.2.9.6.1.4  D̲e̲s̲i̲g̲n̲

         Flowgram. See fig. 4.2.9.6.1.4-1


         PROCEDURE

         BSM ̲X ̲HANDLE(NEW ̲REC: BSM ̲X ̲REC)(CC: INTEGER)

         VAR     BSM ̲X ̲INDIC: INTEGER

         BEGIN

             BSM ̲X ̲INDIC.BIT(NEW ̲REC. NO -1) = 1

                 CASE NEW ̲REC. STATUS OF

                 ACTIVE? WDP ̲CONTROL ( BSM ̲X ̲SWITCH, ACTIVE
                 ̲BUS,
                                               BSM ̲X ̲INDIC)(CC)


                 OUT ̲OF ̲SERVICE? WDP ̲CONTROL (BSM ̲X ̲SWITCH,
                 NONE ̲BUS,
                                               BSM ̲X ̲INDIC)(CC)

                 OFF LINE? WDP ̲CONTROL(BSM ̲X ̲SWITCH, OTHER ̲BUS,
                                               BSM ̲X ̲INDIC)(CC)

             END CASE

             …06…1         …02…   …02…   …02…   …02…   …02…                     …02…   
                                
         CC NE 0?

                                               CC = WDP ̲CCB
                                               ̲FAILED

                                               NEW ̲REC. STATUS
                                               = ERROR

             KEY ̲BUF.KEY = NEW ̲REC. NO

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


             CONFIG ̲TABLE.BSM ̲X(NEW ̲REC.NO) = NEW ̲REC.STATUS

         END ̲BSM ̲X ̲HANDLE











                    Fig. 4.2.9.6.1.4-1


4.2.9.6.2    B̲S̲M̲ ̲X̲ ̲L̲T̲U̲X̲ ̲C̲O̲N̲T̲R̲O̲L̲



4.2.9.6.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 procedure is invoked, when a status change at a
         BSM ̲X has occurred. If a BSM ̲X is to be taken out of
         service, it is examined if the LTUXs in the BSM ̲X chain
         are in service. If so, they are dismantled.

         If a BSM ̲X is to be set active and the chain LTUXs
         are defined in-service, then the LTUXs are created.

         Also, the "chain status" for the chain LTUX ̲lines are
         updated.



4.2.9.6.2.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)  BSM ̲X ̲LTUX ̲CONTROL(OLD ̲REC, NEW ̲REC: BSMX ̲REC)
                                               (CC: INTEGER)

                 BSMX ̲REC see DBD

         b)  BSM ̲X ̲LTUX CONTROL(R0, R1, R7, 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̲

         R0  pointer to NEW ̲REC
         R1  pointer to OLD ̲REC
         R6  link

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

         R7  CC


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

             B̲S̲M̲ ̲X̲ ̲R̲E̲C̲ DBD

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

             LTUX ̲TABLE:(DBD)
             NEW ̲REC,   
             OLD ̲REC   :(I/F data)

             KEY ̲BUF,
             SEND ̲BUF  : CFH VARIOUS

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

             HW ̲ERROR  : SSC.COMMON

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

             LTUX ̲TABLE (m)
             NEW ̲REC.NO
             NEW ̲REC.STATUS
             OLD ̲REC.STATUS
             KEY ̲BUF.KEY (m)

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

             VAR LTUX ̲REC ̲D: LTUX ̲REC          (DBD)
             I,CI:   INTEGER



4.2.9.6.2.4  D̲e̲s̲i̲g̲n̲

         F̲l̲o̲w̲g̲r̲a̲m̲. See fig. 4.2.9.6.2.4-1


   PROCEDURE BSM ̲X ̲LTUX ̲CONTROL(OLD ̲REC, NEW ̲REC:                      BSM
                                                                       ̲X
                                                                       ̲REC)(CC:INTEGER)

   VAR LTUX ̲REC ̲D: LTUX ̲REC

   VAR I,CI: INTEGER

   BEGIN

      CC = 0

      CASE NEW ̲REC. STATUS OF

         ACTIVE? OLD ̲REC. STATUS EQ ACTIVE?

                 I = 1

                 LOOP

                     I = I + 1
                     KEY ̲BUF.KEY = 2 * NEW ̲REC.NO +
                     I
                     SEARCH ̲ENTRY(LTUX ̲TABLE,RC4 ̲BUF,ALL
                     ̲MASK,SEND ̲BUF) 
                                                                       (LTUX
                                                                       ̲REC
                                                                       ̲D)

                     LTUX ̲REC ̲D.STATUS NE IN ̲SERVICE?

                     CREATE ̲LTUX(LTUX ̲REC ̲D)(CI)

                     CI EQ 0?

                     CC = HW ̲ERROR

                     LTUX ̲REC ̲D.STATUS = ERROR
                     KEY ̲BUF.KEY = LTUX ̲REC ̲D.NO
                     UPDATE ̲ENTRY(LTUX ̲TABLE,SEND ̲BUF,KEY
                     ̲BUF,ALL ̲MASK,
                                                                       LTUX
                                                                       ̲REC
                                                                       ̲D)


                     SET ̲CHAIN ̲STATUS(LTUX ̲REC ̲D, NEW
                     ̲REC. STATUS)

                     I EQ 2?    EXIT

                 END ̲LOOP

                 continues


         OUT ̲SERVICE, OFFLINE, ERROR?

             OLD ̲REC. STATUS NE ACTIVE

             I = 1

             LOOP

                 I=I + 1
                 KEY ̲BUF.KEY = 2 x NEW ̲REC. NO + I
                 SEARCH ̲ENTRY(LTUX ̲TABLE,KEY ̲BUF,ALL
                 ̲MASK,SEND ̲BUF)
                                                                       (LTUX
                                                                       ̲REC
                                                                       ̲D)

                 LTUX ̲REC ̲D. STATUS NE IN ̲SERVICE

                 DELETE ̲LTUX(LTUX ̲REC ̲D. NO)

                 SET ̲CHAIN ̲STATUS(LTUX ̲REC ̲D, NEW ̲REC.
                 STATUS)


                 I EQ 2?                       EXIT


             END ̲LOOP



         END ̲CASE


   END ̲BSM ̲X ̲LTUX ̲CONTROL













               Fig. 4.2.9.6.2.4-1


4.2.9.6.3    L̲T̲U̲X̲ ̲H̲A̲N̲D̲L̲E̲



4.2.9.6.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 procedure is invoked, when a status
             change at a LTUX has occurred.

             The BSM ̲X chain consisting of

             -   a BSM ̲X
             -   a LTUX
             -   4 LTUX lines

             is handled.

             The LTUX is created, if

             -   the BSM ̲X status and
             -   the new BSM ̲X status are
                 active/in-service respectively.

                 The LTUX is deleted (dismantled),
                 if 

             -   the old LTUX status was in-service


                 The LTUX table is updated and the
                 chain-status for the appropriate LTUX
                 is requested set.





4.2.9.6.3.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)  LTUX ̲HANDLE(OLD ̲REC, NEW ̲REC: LTUX
                 ̲REC)(CC: INTEGER)

                                               LTUX
                                               ̲REC                     (DBD)

             b)  LTUX ̲HANDLE (R0, R1, R7, 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̲

             R0  pointer to NEW ̲REC
             R1  pointer to OLD ̲REC
             R6  link

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

             R7  CC



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

                 LTUX ̲REC:                     DBD

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

                 BSMX ̲TABLE,
                 LTUX ̲TABLE (m):               DBD
                 OLD ̲REC,
                 NEW ̲REC:                      (I/F-data)
                 KEY ̲BUF,
                 SEND ̲BUF:                     CFH
                                               ̲VARIOUS

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

                 EXEC ̲OK,
                 HW ̲ERROR:                     SSC.COMMON



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

                 NEW ̲REC.NO
                 NEW ̲REC.STATUS
                 OLD ̲REC.STATUS
                 KEY ̲BUF.KEY (m)

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

                 VAR BSM ̲X ̲STATUS: HW ̲STATUS   DBD
                 CONST BSM ̲X.STATUS ̲MASK = 2



4.2.9.6.3.4  D̲e̲s̲i̲g̲n̲

             Flowgram. See fig. 4.2.9.6.3.4-1


   PROCEDURE LTUX ̲HANDLE(OLD ̲REC, NEW ̲REC: LTUX ̲REC)(CC:
   INTEGER)

   VAR BSM ̲X ̲STATUS: HW ̲STATUS

   CONST BSM ̲X ̲STATUS ̲MASK = 2

   BEGIN

      CC = EXEC ̲OK

      CASE NEW ̲REC. STATUS OF

      IN ̲SERVICE?    KEY ̲BUF.KEY = (NEW ̲REC. NO + 1)/2
                     SEARCH ̲ENTRY(BSMX ̲TABLE, KEY ̲BUF,BSM
                     ̲X ̲STATUS ̲MASK,
                                                                       SEND
                                                                       ̲BUF)(BSM
                                                                       ̲X
                                                                       ̲STATUS)

                     BSM ̲X ̲STATUS NE ACTIVE?

                     OLD ̲REC. STATUS NE IN ̲SERVICE?

                     DELETE ̲LTUX (NEW ̲REC. NO)


                     CREATE ̲LTUX(NEW ̲REC)(CC)

                     CC EQ ? 0

                     CC = HW ̲ERROR

                     NEW ̲REC. STATUS = ERROR


      OTHER?     OLD ̲REC. STATUS NE IN ̲SERVICE?

                     DELETE ̲LTUX (NEW ̲REC. NO)

                     BSM ̲X ̲STATUS = NIL


   END ̲CASE


   continues


   KEY ̲BUF. KEY = NEW ̲REC. NEW ̲REC ̲NO

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

      NEW ̲REC. STATUS EQ IN ̲SERVICE AND        OR
      OLD ̲REC. STATUS NE IN ̲SERVICE


      NEW ̲REC. STATUS NE IN ̲SERVICE AND
      OLD ̲REC. STATUS EQ IN ̲SERVICE


                                               SET
                                               ̲CHAIN
                                               ̲STATUS(NEW
                                               ̲REC,
                                               BSM
                                               ̲X ̲STATUS)



   END ̲LTUX ̲HANDLE




























               Fig. 4.2.9.6.3.4-1


4.2.9.6.4.1  S̲E̲T̲ ̲C̲H̲A̲I̲N̲ ̲S̲T̲A̲T̲U̲S̲

             The procedure searches for a given LTUX
             the appropriate LTUX-line table entries
             and invokes the CHAIN ̲CONF ̲DISP procedure
             per line.

             The procedure is invoked by

             -   BSM ̲X ̲HANDLE
             -   LTUX ̲HANDLE



4.2.9.6.4.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)  SET ̲CHAIN ̲STATUS(LTUX ̲REC ̲D:LTUX ̲REC,BSM
                 ̲X ̲STATUS:
                                                                 HW
                                                                 ̲STATUS)

                     LTUX ̲REC see DBD

             b)  SET ̲CHAIN ̲STATUS(R3, R4, 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̲

             R3  pointer to LTUX ̲REC ̲D
             R4  BSM ̲X ̲STATUS
             R6  link

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


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

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

                 LTUX ̲REC,
                 HW ̲STATUS: DBD

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

                 LTUX ̲REC ̲D,
                 BSM ̲X ̲STATUS:                 I/F-data
                 LTUX ̲LINE ̲TABLE:              DBD
                 KEY ̲BUF,
                 SEND ̲BUF:                     CFH.VARIOUS

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

                 LTUX ̲LINE ̲TABLE
                 LTUX ̲REC ̲D.NO
                 LTUX ̲REC ̲D.STATUS
                 BSM ̲X ̲STATUS
                 KEY ̲BUF.KEY (m)

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

                 VAR I: INTEGER
                 VAR LINE ̲REC: LTUX ̲LINE ̲REC



4.2.9.6.4.4  D̲e̲s̲i̲g̲n̲

             Flowgram. See fig. 4.2.9.6.4.4-1


   PROCEDURE SET ̲CHAIN ̲STATUS(LTUX ̲REC ̲D: LTUX ̲REC,BSM
   ̲X ̲STATUS:HW ̲STATUS)

   VAR I:INTEGER

   VAR LINE ̲REC: LTUX ̲LINE ̲REC

   BEGIN

      I = 0

      LOOP

         I = I + 1
         KEY ̲BUF.KEY = (LTUX ̲REC ̲D.NO ̲1) * 4 + I
         SEARCH ̲ENTRY(LTUX ̲LINE ̲TABLE,KEY ̲BUF,ALL ̲MASK,SEND
         ̲BUF)(LINE ̲REC)

         CHAIN ̲CONF ̲DISP(LINE ̲REC,LINE ̲REC,LTUX ̲REC
         ̲D.STATUS,BSM ̲X ̲STATUS)

         I EQ 4?     EXIT

      END ̲LOOP


   END ̲SET ̲CHAIN ̲STATUS





















               Fig. 4.2.9.6.4.4-1


4.2.9.6.5    L̲T̲U̲X̲ ̲L̲I̲N̲E̲ ̲H̲A̲N̲D̲L̲E̲



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

             The procedure is invoked when a LTUX-line
             status change has occurred due to either

             -   an error
             -   or an operator command

             The procedure searches the

             -   BSM ̲X status
             -   LTUX status

             for the corresponding chain and invokes
             the CHAIN ̲CONF ̲DISP procedure.



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

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

             a)  LTUX ̲LINE ̲HANDLE(OLD ̲REC,NEW ̲REC:
                 LTUX ̲LINE ̲REC)

                                               LTUX
                                               ̲LINE
                                               ̲REC
                                               see
                                               DBD

             b)  LTUX ̲LINE ̲HANDLE (R0, R1, 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̲

             R0 pointer to NEW ̲REC
             R1 pointer to OLD ̲REC
             R6 link

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


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

                 LTUX ̲LINE ̲REC : DBD

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

                 OLD ̲REC
                 NEW ̲REC                       : I/F
                                               data
                 BSM ̲X ̲TABLE,
                 LTUX ̲TABLE: DBD
                 KEY ̲BUF (m),
                 SEND ̲BUF: CFH.VARIOUS

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

                 NEW ̲REC.STATUS
                 OLD ̲REC, NO

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

                 VAR BSM ̲X ̲STATUS, LTUX ̲STATUS : HW
                 ̲STATUS    (DBD)

                 CONST BSM ̲X ̲STATUS ̲MASK = 2



4.2.9.6.5.4  D̲e̲s̲i̲g̲n̲

             Flowgram. See fig. 4.2.9.6.5.4-1


   PROCEDURE LTUX ̲LINE ̲HANDLE(OLD ̲REC, NEW ̲REC: LTUX
   ̲LINE ̲REC)

   VAR LTUX ̲STATUS, BSM ̲X ̲STATUS: HW ̲STATUS

   CONST BSM ̲X ̲STATUS ̲MASK = 2

   BEGIN 

      CASE NEW ̲REC.STATUS OF

         IN ̲SERVICE? KEY ̲BUF.KEY = (OLD ̲REC.NO + 7)/8
                                SEARCH ̲FIELD(BSMX ̲TABLE,KEY
                                ̲BUF,BSM ̲X ̲STATUS ̲MASK,

                                               SEND
                                               ̲BUF)(BSM
                                               ̲X ̲STATUS)

                                KEY ̲BUF.KEY = (OLD
                                ̲REC.NO +3)/4

                                SEARCH ̲FIELD(LTUX ̲TABLE,KEY
                                ̲BUF,LTUX ̲STATUS ̲MASK,

                                               SEND
                                               ̲BUF)(LTUX
                                               ̲STATUS)

                                CHAIN ̲CONF ̲DISP(OLD
                                ̲REC,NEW ̲REC,
                                               LTUX
                                               ̲STATUS,BSM
                                               ̲X ̲STATUS)


         OTHER?                 CHAIN ̲CONF ̲DISP(OLD
                                ̲REC, NEW ̲REC,NIL, NIL)


         END CASE



   END












               Fig. 4.2.9.6.5.4-1


4.2.9.6.6    C̲H̲A̲I̲N̲ ̲C̲O̲N̲F̲ ̲D̲I̲S̲P̲



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

             The procedure updates the "chain-status"
             for a BSM ̲X, LTUX, LTUX ̲line chain.

             The configuration display is updated if
             a "chain-status" change has occurred.

             If the chain-status is changed from in-service
             to out-of-service and an error has occurred
             in the chain a TEMCO, DEMCO, CEMCO coroutine
             is notified.

             In the operator only mode (OPERATOR ̲PHASE
             = TRUE) the time coroutine is not notifed.

             In supervisor only mode (SUPERVISOR ̲PHASE
             = FALSE)

             -   THE PU is shut down if an error occurs
                 in

                 -   one of the supervisor VDUs
                 -   one of the supervisor printers

             -   the line coroutines are not notified

             If a supervisor VDU chain-status is set
             in-service then the associated supervisor
             coroutine is notified.



4.2.9.6.6.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)  CHAIN ̲CONF ̲DISP(OLD ̲REC,NEW ̲REC:LTUX
                 ̲LINE REC,
                                NEW ̲LTUX ̲STATUS,NEW
                                ̲BSM ̲X ̲STATUS:HW STATUS)

                     LTUX ̲LINE ̲REC, HW ̲STATUS see DBD.OP



             b)  CHAIN ̲CONF ̲DISP(R0, R1, R2,R3, 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̲

             R0  NEW ̲REC
             R1  OLD ̲REC
             R2  NEW ̲LTUX ̲STATUS
             R3  NEW ̲BSM ̲X ̲STATUS
             R6  link

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



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

                 INSERT ̲SUPERVISOR,LINE ̲ERROR  : SSC.COMMON
                 LTUX ̲LINE ̲REC,
                 HW ̲STATUS:     DBD

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

                 OLD ̲REC,
                 NEW ̲REC,
                 NEW ̲LTUX ̲STATUS,
                 NEW ̲BSM ̲X ̲STATUS:             I/F
                                               data
                 LTUX ̲LINE ̲TABLE:              DBD
                 KEY ̲BUF,
                 SEND ̲BUF, SUPV ̲ROPS,
                 SUPERVISOR ̲ONLY ̲PHASE, OPERATOR ̲ONLY
                 ̲PHASE: CFH.VARIOUS 

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

                 OLD ̲REC. CHAIN ̲STATUS
                 NEW ̲REC. CHAIN ̲STATUS (m)
                 NEW ̲REC.NO
                 KEY ̲BUF.KEY (m)



             c)  L̲o̲c̲a̲l̲


                 VAR OLD ̲CS, NEW ̲CS: HW ̲STATUS DBD

                 VAR DIRECTION: CONF ̲CMD       SSC.COMMON

                 VAR PROFILE: PROFILE TYPE     SSC.COMMON

                 VAR PROFILE ̲ARC: PROFILE ̲OUT  CFH.VARIOUS

                 VAR FOUND: BOOLEAN



4.2.9.6.6.4  D̲e̲s̲i̲g̲n̲

             Flowgram. See 4.2.9.6.6.4-1


   PROCEDURE

   CHAIN ̲CONF ̲DISP(OLD ̲REC, NEW ̲REC: LTUX ̲LINE ̲REC,
                     NEW ̲LTUX ̲STATUS,NEW ̲BSM ̲X ̲STATUS:
                     HW ̲STATUS)

   VAR OLD ̲CS,NEW ̲CS:           HW ̲STATUS
       DIRECTION: CONF ̲CMD

   BEGIN

      OLD ̲CS = OLD ̲REC. CHAIN ̲STATUS

      NEW ̲REC. STATUS EQ        ?          NEW CS =
                                IN ̲SERVICE
      NEW ̲LTUX ̲STATUS EQ
      NEW ̲BSM ̲X ̲STATUS EQ IN ̲SERVICE

      NEW ̲CS = OUT ̲OF ̲SERVICE

      NEW ̲REC. CHAIN ̲STATUS = NEW ̲CS
      KEY ̲OUT.KEY = NEW ̲REC.NO
      UPDATE ̲ENTRY(LTUX ̲LINE ̲TABLE, KEY ̲BUF, ALL ̲MASK,
      NEW ̲REC)

      NEW ̲SC EQ OLD ̲CS?

      NEW ̲CS EQ IN ̲SERVICE?     DIRECTION = UP

      DIRECTION = DOWN


      CONF ̲DISPLAY(DIRECTION, NEW ̲REC. TYPE ̲DEV, NIL)

      DIRECTION EQ DOWN AND
      NEW ̲REC. STATUS EQ ERROR OR              ?
      NEW ̲LTUX ̲STATUS EQ ERROR OR
      NEW ̲BSM ̲X ̲STATUS EQ ERROR

                                               HANDLE
                                               ̲ONLY
                                               ̲MODES

      DIRECTION EQ UP?  HANDLE ̲SUPV ̲VDUS

   END ̲CHAIN ̲CONF ̲DISP





            Fig. 4.2.9.6.6.4-1 (1/3)



   PROCEDURE

   HANDLE ̲ONLY ̲MODES

   VAR PROFILE = PROFILE ̲TYPE
       FOUND:    BOOLEAN
       PROFILE ̲REC: PROFILE ̲OUT

   BEGIN

      GET ̲PROFILE(NEW ̲REC. TYPE ̲DEV)(PROFILE, PROFILE
      ̲REC, FOUND)

      PROFILE ̲REC. CONNECTED EQ FALSE OR
      FOUND EQ FALSE                           ?

      OPERATOR ̲ONLY ̲PHASE EQ TRUE?

      SUPERVISOR ̲ONLY ̲PHASE EQ TRUE?

             CASE PROFILE OF

                 TERMINAL ̲P?  PROFILE ̲REC.NO EQ 1 OR
                                     PROFILE ̲REC.NO
                                EQ 2

                                               REPORT
                                               ̲ERROR(SUPV
                                               ̲ONLY
                                               ̲E, NIL)
                                               PU ̲DOWN(SUPV
                                               ̲ONLY
                                               ̲E, NIL)


                 DEVICE ̲P?

                     I = 0

                     LOOP

                                I = I + 1

                                PROFILE ̲REC. NO EQ
                                SUPV ̲ROPS (I) ?

                                                  REPORT
                                               ̲ERROR(SUPV
                                               ̲ONLY
                                               ̲E, NIL)
                                                  PU
                                               ̲DOWN(SUPV
                                               ̲ONLY
                                               ̲E, NIL)
                                I EQ 4?  EXIT

                     END ̲LOOP

             END CASE

      NOTIFY ̲LINE ̲COROUTINE(PROFILE; PROFILE:REC. NO;
      LINE ̲ERROR, 0)

   END ̲HANDLE ̲ONLY ̲MODES
            Fig. 4.2.9.6.6.4-1 (2/3)


   PROCEDURE

   HANDLE ̲SUPV ̲VDUS

   VAR   PROFILE :   PROFILE ̲TYPE

         FOUND       :          BOOLEAN

         PROFILE ̲REC:           PROFILE ̲OUT

   BEGIN

      GET ̲PROFILE (NEW ̲REC.TYPE ̲DEV)(PROFILE,PROFILE
      ̲REC,FOUND)

      FOUND EQ       TRUE       AND
      PROFILE EQ TERMINAL ̲P     AND
      PROFILE ̲REC.   NO EQ 1    OR

      PROFILE ̲REC.   NO EQ 2


                                NOTIFY ̲LINE ̲COROUTINE(PROFILE,

                                   PROFILE ̲REC.NO,INSERT
                                ̲SUPERVISOR,0)



   END


















            Fig. 4.2.9.6.6.4-1 (3/3)



 4.2.9.6.7   C̲r̲e̲a̲t̲e̲ ̲L̲T̲U̲X̲



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

             Creates a LTUX as a "subdevice" to the
             TIA.

             Asynchroneous error reports related to
             the LTUX are to be sent to DEVICE ̲SE and
             are identified via U ̲SDID.

             An errorreport is generated if a hardware
             completion code is received during the
             creation.



4.2.9.6.7.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 ̲LTUX(LTUX ̲REC ̲D: LTUX ̲REC)(CC:
                 INTEGER)

             b)  CREATE ̲LTUX(R3, R7, 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̲

             R3 pointer to LTUX ̲REC ̲D
             R6 link

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

             R7 CC
             R0- R6 destr.


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

                 LTUX ̲REC:      DBD

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

                 LTUX ̲CC;REC ̲D  I/F data

                 TIA ̲CON,
                 DEVICE ̲REC:    CFH.VARIOUS
                 LTUX ̲PARAMS ̲D;
                 LTUX ̲CON (m):  SSC.COMMON

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

                 DEVICE ̲REC.SDA (m)
                 DEVICE ̲REC.V ̲SDID.PROFILE ̲TYPE (m)
                 DEVICE ̲REC.V ̲SDID.LOGICAL ̲NO (m)
                 DEVICE ̲REC.PROTOCOL ̲ID (m)
                 DEVICE ̲REC.SD ̲TYPE (m)
                 DEVICE ̲REC.ACCESS ̲LEVEL (m)
                 DEVICE ̲REC.SELECT ̲By ̲TMS (m)
                 DEVICE ̲REC.PARAMS (m)

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

                 VAR NO: INTEGER



4.2.9.6.7.4  D̲e̲s̲i̲g̲n̲

             Flowgram. See fig. 4.2.9.6.7.4-1


   PROCEDURE CREATE ̲LTUX (LTUX ̲REC ̲D: LTUX ̲REC)(CC:
   INTEGER)

   VAR BSM ̲X ̲NO, NO: INTEGER

   BEGIN

      BSM ̲X ̲NO = (LTUX ̲REC ̲D.NO + 1) /2

      LTUX ̲REC ̲D.NO LOG AND 1 EQ 1? NO = 1

      NO = 2

      DEVICE ̲REC. SDA = BSM ̲X ̲NO SHIFT 4 + NO

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

      DEVICE ̲REC. U ̲SDID. PORT ̲NO = LTUX ̲REC ̲D. NO

      DEVICE ̲REC. PROTOCOL ̲ID = LTUX ̲M ̲PROTOCOL

      DEVICE ̲REC. SD ̲TYPE = CONTROLLER

      DEVICE ̲REC. ACCESS ̲LEVEL = NIL

      DEVICE ̲REC. SELECT ̲BY ̲TMS = NIL

      DEVICE ̲REC. PARAMS = LTUX ̲PARAMS ̲D


      CASE CREATE ̲SUBDEVICE(TIA ̲CON, DEVICE ̲REC, DEVICE
      ̲SE)
                                (LTUX ̲CON(LTUX ̲REC
                                ̲D.NO), CC) OF

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

                 HW? REPORT ̲ERROR(LTUX ̲CC, DEVICE ̲REC)


             END ̲CASE

      END ̲CASE

   END ̲CREATE ̲LTUX




               Fig. 4.2.9.6.7.4-1


4.2.9.6.8    D̲e̲l̲e̲t̲e̲ ̲L̲T̲U̲X̲



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

             Dismantles a LTUX user connection.

             The dismantling is signalled to TEMCO,
             DEMCO, CEMCO by setting LTUX ̲CON( ) =
             - 1.



4.2.9.6.8.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)  DELETE ̲LTUX(LTUX ̲NO: 1..MAX ̲LTUXs)

                                MAX ̲LTUXs see DBD.
                                global

             b)  DELETE ̲LTUX(R0, R7

             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̲

             R0 LTUX ̲NO
             R6 link

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

             R0 - R7 destr.


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

             a1) C̲o̲n̲s̲t̲a̲n̲t̲s̲

                 MAX ̲LTUXS:     DBD

             a2) D̲a̲t̲a̲

                 LTUX ̲CON       SSC.COMMON

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

             c)  L̲o̲c̲a̲l̲

                 VAR CC: INTEGER

                 VAR CONN: USER ̲CONNECTION ̲TYPE                  DBD



4.2.9.6.8.4  D̲e̲s̲i̲g̲n̲

             Flowgram. See fig. 4.2.9.6.8.4-1


   PROCEDURE

   DELETE ̲LTUX(LTUX ̲NO: 1..MAX ̲LTUXs)

   VAR CONN: USER ̲CONNECTION ̲TYPE

   VAR CC:   INTEGER

   BEGIN

      CONN = LTUX ̲CON(LTUX ̲NO)

      LTUX ̲CON(LTUX ̲NO) = -1

      CASE DISMANTLE (CONN)(CC) OF

         ERROR? ANALYZE ̲ERROR(CC, 0)

      END ̲CASE

   END ̲DELETE ̲LTUX
























               Fig. 4.2.9.6.8.4-1


4.2.9.6.9    L̲T̲U̲ ̲H̲A̲N̲D̲L̲E̲



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

             The procedure is invoked, when a LTU status
             change has occurred due to the

             -   occurrence of an error
             -   execution of an operator command

             The LTU is created and loaded, if the
             new status is active.

             The LTU is dismantled if the new status
             is non-active.

             The LTU table is updated and the LTU-line
             table entry field "chain status" is updated.



4.2.9.6.9.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)  LTU ̲HANDLE(OLD ̲REC, NEW ̲REC: LTU ̲REC)(CC:INTEGER)

                     LTU ̲REC see DBD.

             b)  LTU ̲HANDLE8R0, R1, R7, 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̲

             R0 pointer to NEW ̲REC
             R1 pointer to OLD ̲REC
             R6 link

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

             R7 CC


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

                 LTU ̲REC                       DBD

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

                 OLD ̲REC,
                 NEW ̲REC                       :I/F
                                               data
                 LTU ̲TABLE      :DBD
                 KEY ̲BUF,
                 SEND ̲BUF:      CFH.VARIOUS

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

                 LTU ̲LOAD ̲ERROR,
                 HW ̲ERROR       : SSC.COMMON
 
             b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

                 OLD ̲REC.STATUS
                 NEW ̲REC
                 NEW ̲REC.NO
                 NEW ̲REC.STATUS
                 KEY ̲BUF.KEY    (m)

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



4.2.9.6.9.4  D̲e̲s̲i̲g̲n̲

             Flowgram See fig. 4.2.9.6.9.4-1


   PROCEDURE

   LTU ̲HANDLE(OLD ̲REC, NEW ̲REC:): LTU ̲REC)(CC:INTEGER)


   BEGIN

      CC = 0

      CASE NEW ̲REC. STATUS OF

         IN ̲SERVICE? OLD ̲REC.STATUS NE IN ̲SERVICE?

                                DELETE ̲LTU(NEW ̲REC.NO)

                                CREATE ̲LTU(NEW ̲REC)(CC)

                                CC EQ 0?       LOAD
                                               ̲LTU
                                               ̲FW(NEW
                                               ̲REC)(CC)

                                               CC EQ
                                               0?

                                               CC =
                                               LTU
                                               ̲LOAD
                                               ̲ERROR

                                               NEW
                                               ̲REC.STATUS
                                               = ERROR

                                CC = HW ̲ERROR

                                NEW ̲REC. STATUS = ERROR

         OTHER?                 OLD ̲REC. STATUS NE
                                IN ̲SERVICE

                                DELETE ̲LTU(NEW ̲REC.NO)


      END ̲CASE

      KEY ̲BUF.KEY = NEW ̲REC.NO

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

         NEW ̲REC. STATUS EQ IN ̲SERVICE AND
         OLD ̲REC. STATUS NE IN ̲SERVICE         or

         NEW ̲REC. STATUS NE IN ̲SERVICE AND
         OLD ̲REC. STATUS EQ IN ̲SERVICE

                                SET ̲LTU ̲CHAIN ̲STATUS
                                (NEW ̲REC)



   END ̲LTU ̲HANDLE

               fig. 4.2.9.6.9.4-1


4.2.9.6.10       S̲E̲T̲ ̲L̲T̲U̲ ̲C̲H̲A̲I̲N̲ ̲S̲T̲A̲T̲U̲S̲



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

             The procedure searches for the specified
             LTU the entries for the corresponding
             LTU-lines and invokes the LTU ̲CHAIN ̲CONF
             ̲DISP procedure.



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

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

             a)  SET ̲LTU ̲CHAIN ̲STATUS(LTU ̲REC ̲I): LTU
                 ̲REC)
                                LTU ̲REC ̲D  see DBD

             b)  SET ̲LTU ̲CHAIN ̲STATUS(R3, 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̲

             R3 pointer to LTU ̲REC ̲D
             R6 link

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



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

                 LTU ̲REC                       (DBD)

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

                 LTU ̲REC ̲D      :I/F data
                 LTU ̲LINE ̲TABLE  DBD
                 KEY ̲BUF
                 SEND ̲BUF       :CFH.VARIOUS



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

                 LTU ̲REC ̲D.NO
                 LTU ̲REC ̲D.STATUS
                 KEY ̲BUF.KEY (m)

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

                 VAR I:         INTEGER
                 VAR LINE ̲REC: LTU ̲LINE ̲REC    (DBD)



4.2.9.6.10.4 D̲e̲s̲i̲g̲n̲

             Flowgram. See fig. 4.2.9.6.4-1.


   PROCEDURE SET ̲LTU ̲CHAIN ̲STATUS(LTU ̲REC ̲D:   LTU
                                               ̲REC)

   VAR I: INTEGER

   VAR LINE ̲REC: LTU ̲LINE ̲REC

   BEGIN

      I = 0

      LOOP

         I = I + 1
         KEY ̲BUF.KEY = (LTU ̲REC ̲D.NO-1)/2 + I
         SEARCH ̲ENTRY(LTU ̲LINE ̲TABLE,KEY ̲BUF, ALL ̲MASK,SEND
         ̲BUF)(LINE ̲REC)

         LTU ̲CHAIN ̲CONF ̲DISP(LINE ̲REC, LINE ̲REC, LTU
         ̲REC ̲D.STATUS)

         I EQ 2?     EXIT


      END ̲LOOP


   END ̲SET ̲LTU ̲CHAIN ̲STATUS




















               Fig. 4.2.9.6.10.4-1


4.2.9.6.11       L̲T̲U̲ ̲L̲I̲N̲E̲ ̲H̲A̲N̲D̲L̲E̲



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

             The procedure is invoked, when

             -   an error has occurred

             -   an operator command is executed.


             The corresponding LTU status is looked
             up and the LTU ̲CHAIN ̲CONF ̲DISP procedure
             called.



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

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

             a)  LTU ̲LINE ̲HANDLE(OCD ̲REC, NEW ̲REC:
                 LTU ̲LINE ̲REC)

                                LTU ̲LINE ̲REC see DBD)

             b)  LTU ̲LINE ̲HANDLE (R0, R1, 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̲

             R0 pointer to NEW ̲REC
             R1 pointer to OLD ̲REC
             R6 link


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


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

                 LTU ̲LINE ̲REC:  DBD

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

                 OLD ̲REC,
                 NEW ̲REC        :              I/F
                                               data
                 LTU ̲TABLE:     DBD
                 KEY ̲BUF,
                 SEND ̲BUF:      CFH.VARIOUS

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

                 NEW ̲REC.STATUS
                 OLD ̲REC.NO
                 KEY ̲BUF.KEY (m)

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

                 VAR            LTU ̲STATUS: HW ̲STATUS(DBD
                 CONST          LTU ̲STATUS ̲MASK = 4



4.2.9.6.11.4 D̲e̲s̲i̲g̲n̲

             Flowgram. See fig. 4.2.9.6.11.4-1


   PROCEDURE LTU ̲LINE ̲HANDLE(OLD ̲REC, NEW ̲REC: LTU
   ̲LINE ̲REC)

   VAR LTU ̲STATUS:   HW.STATUS

   CONST LTU ̲STATUS ̲MASK = 4

   BEGIN

      CASE NEW ̲REC.STATUS OF



         IN ̲SERVICE? KEY ̲BUF.KEY = (OLD ̲REC.NO + 1)
                     /2
                                SEARCH         (LTU
                                               ̲TABLE,
                                               KEY
                                               ̲BUF,
                                               LTU
                                               ̲STATUS
                                               ̲MASK,
                                               SEND
                                               ̲BUF)(LTU
                                               ̲STATUS)


                                LTU ̲CHAIN ̲CONF ̲DISP                    (OLD
                                                                       ̲REC,NEW
                                                                       ̲REC,
                                                                       LTU
                                                                       ̲STATUS)


         OTHER?  LTU ̲CHAIN ̲CONF ̲DISP (OLD ̲REC, NEW
                 ̲REC, NIL)


      END ̲CASE



   END LTU ̲LINE ̲HANDLE


















               Fig. 4.2.9.6.11.4-1


4.2.9.6.12       L̲T̲U̲ ̲C̲H̲A̲I̲N̲ ̲C̲O̲N̲F̲ ̲D̲I̲S̲P̲.̲



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

             The procedure updates the "chain-status"
             for a LTU, LTU-line chain.

             The configuration display is updated,
             if a "chain-status" change has occurred.

             If the chain status is changed from in-service
             to out of service and an error has occurred
             in the chain a CEMCO coroutine is notified.

             In the

             -   operator-only-phase
             -   supervisor-only-phase

             the CEMCO coroutines are not notifed.



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

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

             a)  LTU ̲CHAIN ̲CONF ̲DISP(OLD ̲REC,NEW ̲REC:
                 LTU ̲LINE ̲REC,
                                               NEW
                                               ̲LTU
                                               ̲STATUS:
                                               HW ̲STATUS)

                 LTU ̲LINE ̲REC; HW ̲STATUS, see DBD

             b)  LTU ̲CHAIN ̲CONF ̲DISP(R0, R1, R2, 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̲

             R0 pointer to NEW ̲REC
             R1 pointer to OLD ̲REC
             R2 NEW ̲LTU ̲STATUS
             R6 link

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


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

                 LTU ̲LINE ̲REC,
                 HW ̲STATUS (DBD)

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

                 OLD ̲REC,
                 NEW ̲REC,
                 NEW ̲LTU ̲STATUS:               I/F
                                               DATA
                 LTU ̲LINE ̲TABLE:               DBD
                 KEY ̲BUF,
                 SEND ̲BUF
                 OPERATOR ̲ONLY ̲PHASE,
                 SUPERVISOR ̲ONLY ̲PHASE:        CFH.VARIOUS

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

                 OLD ̲REC.CHAIN ̲STATUS
                 NEW, REC.CHAIN ̲STATUS (m)
                 NEW ̲REC.STATUS
                 NEW ̲REC.TYPE ̲DEV
                 NEW ̲REC.NO
                 KEY ̲BUF .KEY (m)

             c)  L̲o̲c̲a̲l̲

                 VAR OLD ̲CS, NEW ̲CS:           HW ̲STATUS
                                               (DBD)

                 VAR DIRECTION: CONF ̲CMD       (SSC.COMMON)

                 VAR PROFILE: PROFILE ̲TYPE     (SSC.COMMON)

                 VAR PROFILE ̲REC: PROFILE ̲OUT  (CFH.VARIOUS)

                 VAR FOUND: BOOLEAN



4.2.9.6.12.4 D̲e̲s̲i̲g̲n̲

             Flowgram. See fig. 4.2.9.6.12.4-1.


   PROCEDURE

   LTU ̲CHAIN ̲CONF ̲DISP(OLD ̲REC, NEW ̲REC: LTU ̲LINE ̲REC,
                                NEW ̲LTU ̲STATUS: HW
                                ̲STATUS)

      VAR OLD ̲CS, NEW ̲CS: HW ̲STATUS
          DIRECTION: CONF ̲CMD
          PROFILE:    PROFILE ̲TYPE
          FOUND: BOOLEAN

      BEGIN

         OLD ̲CS = OLD ̲REC. CHAIN ̲STATUS

         NEW ̲REC. STATUS EQ IN ̲SERVICE AND
         NEW ̲LTU ̲STATUS EQ IN ̲SERVICE       ?  NEW
                                               ̲CS =
                                               IN ̲SERVICE

         NEW ̲CS = OUT ̲OF ̲SERVICE

         NEW ̲REC. CHAIN ̲STATUS = NEW ̲CS
         KEY ̲BUF.KEY = NEW ̲REC. NO
         UPDATE ̲ENTRY(LTU ̲LINE ̲TABLE,KEY ̲BUF, ALL ̲MASK,SEND
         ̲BUF,NEW ̲REC)

         NEW ̲CS EQ OLD ̲CS?

         NEW ̲CS EQ IN ̲SERVICE?  DIRECTION = UP

         DIRECTION = DOWN

         CONF ̲DISPLAY(DIRECTION, NEW ̲REC.TYPE ̲DEV,
         NIL)


         DIRECTION EQ DOWN AND
         NEW ̲REC. STATUS EQ ERROR OR  ?
         NEW ̲LTU ̲STATUS EQ ERROR OR

             GET ̲PROFILE (NEW ̲REC:TYPE ̲DEV, NEW ̲REC.NO)(PROFILE,PROFILE
             ̲REC
                 OPERATOR ̲ONLY ̲PHASE EQ TRUE   OR
                 SUPERVISOR ̲ONLY ̲PHASE EQ TRUE OR
                 PROFILE ̲REC. CONNECTED EQ FALSE                       OR
                                                                       
                                                                       ?
                 FOUND EQ FALSE
                 NOTIFY ̲LINE ̲COROUTINE(PROFILE,PROFILE
                 ̲REC.NO,LINE ̲ERROR,0)


   END ̲LTU ̲CHAIN ̲CONF ̲DISP

               Fig. 4.2.9.6.12.4-1


4.2.9.6.13       C̲r̲e̲a̲t̲e̲ ̲L̲T̲U̲



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

             Assigns a LTU as a TMS "device". Asynchronous
             errorreports related to the LTU are sent
             to DEVICE ̲SE and are identified via U
             ̲SDID.

             An errorreport is generated, if a hardware
             completion code is received during the
             creation.



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

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

             a)  CREATE ̲LTU(LTU ̲REC ̲D): LTU ̲REC)(CC:
                 INTEGER)

                 LTU ̲REC see DBD.OP

             b)  CREATE ̲LTU(R0, R7, 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̲

             R0 pointer to LTU ̲REC ̲D

             R6 link

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

             R7 CC


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

                 LTU ̲REC                       :DBD
                 NEW ̲TMS ̲DEVICE                :DAMOS.IOS.TMS

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

                 LTU ̲REC ̲D,
                 ASSIGN ̲REC:    I/F data
                 NICS ̲TARE ̲LOCAL ̲LTU ̲PARAMS ̲D,
                 NICS ̲TARE ̲REMOTE ̲LTU ̲PARAMS ̲D,
                 SCARS ̲CCIS ̲LTU ̲PARAMS ̲D,
                 LTU ̲P,
                 DEVICE ̲SE,
                 LTU ̲CON (m):   SSC.COMMON
                 TMS ̲ID:                       DBD

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

                 ASSIGN ̲REC.TYPE ̲DEV
                 ASSIGN ̲REC ̲PARAMS (m)
                 ASSIGN ̲REC ̲LDN (m)
                 ASSIGN ̲REC.U ̲SDID. PROFILE ̲TYPE (m)
                 ASSIGN ̲REC.U ̲SAID.LOGICAL ̲NO (m)
                 ASSIGN ̲REC. SEC ̲PROF (m)

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



4.2.9.6.13.4 D̲e̲s̲i̲g̲n̲

             Flowgram. See fig. 4.2.9.6.13.4-1


   PROCEDURE

   CREATE ̲LTU(LTU ̲REC ̲D = LTU ̲REC)(CC: INTEGER)


   BEGIN

      CASE ASSIGN ̲REC.TYPE ̲DEV OF

         NICS ̲TARE ̲LOCAL?       ASSIGN ̲REC.PARAMS =

                                               NICS
                                               ̲TARE
                                               ̲LOCAL
                                               ̲LTU
                                               ̲PARAMS
                                               ̲D

         NICS ̲TARE ̲REMOTE?      ASSIGN ̲REC.PARAMS =

                                               NICS
                                               ̲TARE
                                               ̲REMOTE
                                               ̲LTU
                                               ̲PARAMS
                                               ̲D

         SCARS ̲CCIS?            ASSIGN ̲REC.PARAMS =

                                               SCARS
                                               ̲CCIS
                                               ̲LTU
                                               ̲PARAMS
                                               ̲D

      END ̲CASE

      ASSIGN ̲REC. LDN = LTU ̲ADDRESSES(LTU ̲REC ̲0.NO)

      ASSIGN ̲REC. U ̲SDID. PROFILE ̲TYPE = LTU ̲P

      ASSIGN ̲REC. U ̲SDID. PROF ̲NO = LTU ̲REC. NO

      ASSIGN ̲REC. SEC ̲PROF = O

      CASE ASSIGN ̲TMS ̲DEVICE(TMS ̲ID, ASSIGN ̲REC, DEVICE
      ̲SE)

                                (LTU ̲CON(LTU ̲REC ̲D.NO),
                                CC)

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

                 HW? REPORT ̲ERROR(LTU ̲CC, ASSIGN ̲REC)

                 END ̲CASE


      END ̲CASE


   END ̲ASSIGN ̲LTU

               Fig. 4.2.9.6.13.4-1


4.2.9.6.14       D̲e̲l̲e̲t̲e̲ ̲L̲T̲U̲



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

             Dismantles a LTU user connection. The
             dismantling is signalled to CEMCO by setting.

             LTU ̲CON(  ) = -1.



4.2.9.6.14.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)  DELETE ̲LTU(LTU ̲NO: 1..MAX ̲LTUS)

             b)  DELETE ̲LTU(R0, 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̲

             R0  LTU ̲NO
             R6  link

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

             R0 - R7            dest.



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

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

                 MAX ̲LTUS:      DBD

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

                 LTU ̲NO:                       I/F
                                               data
                 LTU ̲CONN:      SSC.COMMON

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

                 LTU ̲CONN(LTU ̲NO)              (m)


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

                 VAR CONN: USER ̲CONNECTION ̲TYPE (SSC.COMMON)

                 "keep the information of the line
                 to be dismantle.

                 VAR CC: INTEGER

                 used as completion code



4.2.9.6.14.4 D̲e̲s̲i̲g̲n̲

             Flowgram. See fig. 4.2.9.6.14.4-1


   PROCEDURE

   DELETE ̲LTU(LTU ̲NO:           1.. MAX ̲LTUS)

   VAR CC: INTEGER

   VAR CONN: USER ̲CONNECTION ̲TYPE

   BEGIN

      CONN = LTU ̲CON(LTU ̲NO)

      LTU ̲CON(LTU ̲NO) = -1

      CASE DISMANTLE (CONN)(CC)


         ERROR? ANALYZE ̲ERROR (CC, 0)


      END ̲CASE


   END ̲DELETE ̲LTU





















               Fig. 4.2.9.6.14.4-1


4.2.9.6.15       L̲o̲a̲d̲ ̲L̲T̲U̲ ̲F̲W̲



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

             The procedure copies a LTU firmware file
             to a LTU memory.

             The LTU is specified by a type

             -   NICS TARE LOCAL

             -   NICS TARE REMOTE

             -   SCARS CCIS


             and a part number in the LTUX ̲REC ̲D input
             parameter.



4.2.9.6.15.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)  LOAD ̲LTU ̲FW(LTU ̲REC ̲D: LTU ̲REC)(CC:
                 INTEGER)

                     LTU ̲REC: DBD

             b)  LOAD ̲LTU ̲FW(R0, R6, R7)

             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̲

             R0  pointer LTU ̲REC ̲D
             R6  link

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

             R7  CC


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

                 FDCB ̲INDEX,
                 FILE ̲ADDRESS;
                 BUFFER ̲LIST ̲ELEMENT:          DAMOS.IOS
                 LTU ̲REC                       :                 DBD

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

                 BNLOCALLOWER   :              DAMOS.IOS
                 MIR ̲MOVING,
                 LTU ̲FW ̲MEM ̲SIZE               :                 DBD

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

                 WRK,
                 LTU ̲CON                       :                 SSC
                                                                 ̲COMMON

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

                 LTU ̲FW ̲NAME ̲LIST              :                 CFH.LOAD

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

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

                 VAR            F ̲SPEC:        FILE
                                               ̲ADDRESS
                 BLE            :              BUFFER
                                               ̲LIST
                                               ̲ELEMENT
                 ROOT ̲DIR, OWN ̲DIR, FILE ̲OBJ:  FDCB
                                               ̲INDEX
                 NO ̲OF ̲XFERS, XFER, F ̲ADDR:    INTEGER



4.2.9.6.15.4 D̲e̲s̲i̲g̲n̲

             The LOAD ̲LTU ̲FW is described via 2 flowgrams
             in figure 4.2.9.6.15.4-1.


   PROCEDURE

   LOAD ̲LTU ̲FW(LTU ̲REC ̲D: LTU ̲REC)(CC: INTEGER)

   VAR ROOT ̲DIR, OWN ̲DIR, FILE ̲OBJ: FDCB ̲INDEX

       NO ̲OF ̲XFERS, XFER, F ̲ADDR: INTEGER

   BEGIN

      GET ̲ROOT ̲MOV(MIR ̲MOVING)(ROOT ̲DIR)

      LOOK ̲UP(ROOT ̲DIR, SSC ̲DIR)(OWN ̲DIR)

      LOOK ̲UP(OWN ̲DIR, LTU ̲FW ̲NAME ̲LIST(LTU ̲REC ̲D.TYPE
      ̲DEV)(FILE ̲OBJ)

      NO ̲OF ̲XFERS = LTU ̲FW ̲MEM ̲SIZE * 1024/SIZE(WRK)

      F ̲ADDR = 0

      XFER = 0

      LOOP

         XFER = XFER + 1

         READ ̲FM ̲FILE(WRK, F ̲ADDR, SIZE(WRK), FILE
         ̲OBJ)(CC)

         CC NE 0?    EXIT

         WRITE ̲TO ̲LTU(WRK, F ̲ADDR, SIZE(WRK), LTU ̲CON(LTU
         ̲REC ̲D.NO))(CC)

         CC NE 0?    EXIT

         F ̲ADDR = F ̲ADDR + SIZE(WRK)

         XFER EQ NO ̲OF ̲XFERS?   EXIT

      END ̲LOOP


   END ̲LOAD ̲LTU ̲FW



          Fig. 4.2.9.6.15.4-1 (1 of 2)


   PROCEDURE

   WRITE ̲TO ̲LTU(MEM ̲ADDR: INTEGER, F ̲ADDR: INTEGER,
   F ̲SIZE: INTEGER,
                     FILE ̲OBJ: FDCB ̲INDEX)(CC: INTEGER)

   VAR F ̲SPEC: FILE ̲ADDRESS

      BLE: BUFFER ̲LIST ̲ELEMENT

   INIT BLE.KIND = BN LOCALLOWER

         BLE.LINK = NIL

   BEGIN

      F ̲SPEC.FIRST ̲BYTE = F ̲ADDR

      F ̲SPEC.BYTE ̲COUNT = F ̲SITE

      BLE ̲ADDR = MEM ̲ADDR

      BLE. SIZE = F ̲SIZE/2

      CASE APPEND ̲CONTROL(FILE ̲OBJ, F ̲SPEC, BLE)(F
      ̲SPEC, CC) OF

         ERROR? CASE ANALYZE ̲ERROR(CC, HW, EOF, 2)

                 EOF, 
                 HW?

             END ̲CASE

      END ̲CASE

         F ̲SPEC. TRANSFERRED ̲BYTES NE BLE. SIZE ?

                                               F ̲SIZE
                                               = F
                                               ̲SPEC.TRANSFERRED
                                               ̲BYTES

   END ̲WRITE ̲TD ̲LTU






          Fig. 4.2.9.6.15.4-1 (2 of 2)


4.2.9.6.16       G̲E̲T̲ ̲P̲R̲O̲F̲I̲L̲E̲



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

             The procedure searches in the

             -   terminal table
             -   device table
             -   channel table

             for a given port of a given type and returns
             the

             -   logical terminal no or
             -   logical device no or
             -   logical channel no

             and the connected boolean for the profile,
             which contains the port.



4.2.9.6.16.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)  GET ̲PROFILE(PORT ̲TYPE:PERIPHERAL ̲TYPE,PORT
                 ̲NO: INTEGER)
                 (PROFILE:PROFILE ̲TYPE,PROFILE ̲REC:PROFILE
                 ̲OUT,
                                                                       FOUND:BOOLEAN)

             b)  GET ̲PROFILE(R0, R1, R2, R3, R4, 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̲

             R0  PORT ̲TYPE                     (kept)
             R1  PORT ̲NO                                               (kept)
             R3  pointer to PROFILE ̲REC        (kept)
             R6  link

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

             R2  PROFILE
             R4  FOUND
             R5 - R7                                                   (destr)


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

                 PERIPHERAL ̲TYPE               :DBD
                 PROFILE ̲TYPE   :SSC.COMMON
                 PROFILE ̲OUT    :CFH.VARIOUS

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

                 PORT ̲TYPE,
                 PORT ̲NO,
                 PROFILE,
                 PROFILE ̲REC,
                 FOUND                         :I/F
                                               data
                 TERMINAL ̲TABLE,
                 DEVICE ̲TABLE,
                 CHANNEL ̲TABLE  :DBD
                 KEY ̲BUF,
                 SEND ̲BUF       :CFH.VARIOUS

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

                 PROFILE (m)
                 FOUND (m)
                 PROFILE ̲REC.CONNECTED
                 KEY ̲BUF.KEY (m)

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

                 VAR PORT: PORT ̲ID                                     DBD
                 CONST CP ̲PORT = 16
                 "indicates the field PORT ̲ID in CHANNEL
                 ̲PROFILE used for searching in CHANNEL
                 ̲TABLE

                 CONST CP ̲OUT = 9
                 "indicates the fields LC ̲NO and CONNECTED
                 in CHANNEL ̲PROFILE, used for searching
                 in CHANNEL ̲TABLE

                 CONST DP ̲PORT = 64
                 "indicates the field PORT ̲ID in DEVICE
                 ̲PROFILE used for searching in DEVICE
                 ̲TABLE

                 CONST DP ̲OUT = 33
                 "indicates the fields LD ̲NO and CONNECTED
                 in DEVICE ̲PROFILE used for searching
                 in DEVICE ̲TABLE.


             CONST TP ̲PORT = 1024
             "indicates the field PORT ̲ID in TERMINAL
             ̲PROFILE used for searching in TERMINAL
             ̲TABLE.

             CONST TP ̲OUT = 257
             "indicates the fields LT ̲NO and BLOCKED
             in TERMINAL ̲PROFILE used for searching
             in TERMINAL ̲TABLE.



4.2.9.6.16.6 D̲e̲s̲i̲g̲n̲

             Flowgram. See 4.2.9.6.16.4-1


   PROCEDURE

   GET ̲PROFILE(PORT ̲TYPE: PERIPHERAL ̲TYPE,PORT ̲NO:
   INTEGER)
               (PROFILE:PROFILE ̲TYPE,PROFILE ̲REC:PROFILE
             ̲OUT,FOUND:BOOLEAN)

   VAR PORT: PORT ̲ID

   CONST CP ̲PORT = 16,          CP ̲OUT = 9
         DP ̲PORT = 64,          DP ̲OUT = 33
         TP ̲PORT = 1024,TP ̲OUT = 257

   BEGIN

      PORT.NO = PORT ̲NO

      PORT.TABLE ̲ID = LTUX ̲LINE ̲TABLE

      CASE PORT ̲TYPE OF

         VDU?    PROFILE = TERMINAL ̲P
                 PORT.TABLE ̲ID = LTUX ̲LINE ̲TABLE
                 KEY ̲BUF.KEY = PORT
                 SEARCH ̲ONE ̲SECONDARY(TERMINAL ̲TABLE,
                 SEND ̲BUF,KEY ̲BUF,
                                               TP ̲PORT;
                                               TP ̲OUT)(FOUND,PROFILE
                                               ̲REC)
                                               PROFILE
                                               ̲REC.CONNECTED
                                               = INVERSE
                                               PROFILE
                                               ̲REC.CONNECTED
         PTR,PTP, OCR, MTP ̲ROP,LTP?

                 PROFILE = DEVICE ̲P
                 PORT.TABLE ̲ID = LTUX ̲LINE ̲TABLE
                 KEY ̲BUF.KEY = PORT
                 SEARCH ̲ONE ̲SECONDARY(DEVICE ̲TABLE,SEND
                 ̲BUF,KEY ̲BUF,
                                               DP ̲PORT,
                                               DP ̲OUT)(FOUND,PROFILE
                                               ̲REC)

         OTHER?      PROFILE = CHANNEL ̲P

                     PORT ̲TYPE EQ TRC ̲PTOP? PORT.TABLE
                     ̲ID = LTUX ̲LINE ̲TABLE

                     PORT.TABLE ̲ID = LTU ̲LINE ̲TABLE

                     KEY ̲BUF. KEY = PORT

                     SEARCH ̲ONE ̲SECONDARY(CHANNEL ̲TABLE,
                     SEND ̲BUF, KEY ̲BUF,
                                               CP ̲PORT,
                                               CP ̲OUT)(FOUND,
                                               PROFILE
                                               ̲REC)

      END ̲CASE

   END ̲GET ̲PROFILE
               Fig. 4.2.9.6.16.4-1


4.2.9.6.17       C̲H̲E̲C̲K̲ ̲P̲R̲O̲F̲I̲L̲E̲



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

             The procedure checks, if any of the lines
             in the interval:

             -   first ̲no till first ̲no + no  ̲of ̲entries
                 in a specified table

             -   either the LTUX ̲LINES ̲table or

             -   the LTU ̲LINE table

             are used in an

             -   unblocked terminal profile or

             -   connected device, channel profile.

             The return parameter is

             true = no lines connected/unblocked

             false:  at least one line connected/unblocked



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

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

             a)  CHECK ̲PROFILE(TABLE: TABLE ̲ID ̲TYPE,
                     FIRST ̲NO: INTEGER, NO ̲OF ̲ENTRIES:
                     1..8)
                                (CHECK ̲OK: BOOLEAN)

             b)  CHECK ̲PROFILE(R0, R1, R2, R3, 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̲

             R0  TABLE                         (kept)
             R1  FIRST ̲NO       (kept)
             R2  NO ̲OF ̲ENTRIES  (kept)
             R6  link


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

             R3  CHECK ̲OK

             R4 - R7                           (destr.)



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

                 TABLE ̲ID ̲TYPE  DBD

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

                 TABLE,
                 FIRST ̲NO,
                 NO ̲OF ̲ENTRIES,
                 CHECK ̲OK:      I/F data
                 LTUX ̲LINE ̲TABLE:              DBD
                 KEY ̲BUF,
                 SEND ̲BUF:      CFH.VARIOUS

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

                 KEY ̲BUF.KEY

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

                 VAR LINE ̲REC ̲X:               LTUX
                                               ̲LINE
                                               ̲REC
                                               (DBD)
                 use to keep the information of a LTUX

                 VAR LINE ̲REC ̲U: LTU ̲LINE ̲REC  (DBD)
                 use to keep the information of a LTU

                 VAR CHAIN ̲STATUS: HW ̲STATUS   (DBD)
                 "indicates the status of a line

                 VAR LINE ̲TYPE: PERIPHERAL ̲TYPE                        (DBD)
                 "indicates the DEV ̲TYPE of a line

                 VAR I: INTEGER
                 "use as counter in a loop"


             VAR PROFILE: PROFILE ̲TYPE         (SSC.COMMON)

             VAR PROFILE ̲REC: PROFILE ̲OUT      (CFH.VARIOUS)

             VAR FOUND: BOOLEAN



4.2.9.6.17.4 D̲e̲s̲i̲g̲n̲

             Flowgram. See fig. 4.2.9.6.17.4-1


   PROCEDURE CHECK ̲PROFILE(TABLE: TABLE ̲ID ̲TYPE,
                                               FIRST
                                               ̲NO:
                                               INTEGER
                                               NO ̲OF
                                               ̲ENTRIES:
                                               1..8)(CHECK
                                               ̲OK:BOOLEAN)

      VAR    LINE ̲REC ̲X:        LTUX ̲LINE ̲REC
             LINE ̲REC ̲J:        LTU ̲LINE ̲REC
             CHAIN ̲STATUS: HW ̲STATUS
             LINE ̲TYPE: PERIPHERAL ̲TYPE
             I : INTEGER
             PROFILE: PROFILE ̲TYPE
             PROFILE ̲REC: PROFILE ̲OUT
             FOUND: BOOLEAN

   BEGIN

      CHECK ̲OK = TRUE

      I = FIRST ̲NO - 1

      LOOP

         I = I + 1

         KEY ̲BUF.KEY = I

         TABLE EQ LTUX ̲LINE ̲TABLE?

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

                      SEARCH ̲ENTRY(TABLE,KEY ̲BUF,ALL
                     ̲MASK,SEND ̲BUF)
                                               (LINE
                                               ̲REC
                                               ̲X)

                      CHAIN ̲STATUS = LINE ̲REC ̲X.CHAIN
                     ̲STATUS
                      LINE ̲TYPE = LINE ̲REC ̲X. DEV ̲TYPE

         CHAIN ̲STATUS = LINE ̲REC ̲U.CHAIN ̲STATUS
         LINE ̲TYPE = LINK ̲REC ̲U. DEV ̲TYPE  

         CHAIN ̲STATUS NE IN ̲SERVICE?

         GET ̲PROFILE(LINE ̲TYPE, I)(PROFILE, PROFILE
         ̲REC, FOUND)

         FOUND EQ TRUE AND
         PROFILE ̲REC. CONNECTED = EQ TRUE      ?
                                               CHECK
                                               ̲OK =
                                               FALSE,
                                               EXIT

         I EQ NO ̲OF ̲ENTRIES + FIRST ̲NO?  EXIT

      END ̲LOOP

END ̲CHECK ̲PROFILE                              Fig.
                                               4.2.9.6.17.4-1


4.2.9.6.18       M̲O̲U̲N̲T̲ ̲D̲I̲S̲K̲



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

             The procedure mounts a volume(specified
             via a volume-name) on either

             -   the floppy disk or
             -   the offline disk



4.2.9.6.18.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)  MOUNT ̲DISK(DISK:              FLOPPY
                                               ̲DISK..OFFLINE
                                               ̲DISK,
                                   VOL:        VOLUME
                                               ̲NAME)(CC:
                                               INTEGER)

             b)  MOUNT ̲DISK(R0, R1, R6, R7)

             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̲

             R0      DISK
             R1      printer to VOL
             R6      LINK

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

             R0..R6             (destr.) 
             R7                 CC




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

                 FLOPPY ̲DISK..OFFLINE ̲DISK     :SSC
                                               COMMON
                 VOLUME ̲NAME
                 SINGLE ̲VOL                    :DAMOS.IOS

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

                 DISK, VDU                     (I/F
                                               DATA)

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

                 IN ̲DISK,
                 IN ̲VOLUME,
                 WRONG ̲VOLUME ̲NAME,
                 VOLUME ̲NAME ̲IS ̲USED           : DAMOS

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

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

                 VAR FMS:       FILE ̲SYSTEM ̲NAME (DAMOS.IOS)
                     DEVICE:    DEVICE ̲NAME    (DAMOS.IOS)



4.2.9.6.18.4 D̲e̲s̲i̲g̲n̲

             Refer to figure 4.2.9.6.18.4 for a flowgram.


   PROCEDURE MOUNT ̲DISK(DISK: FLOPPY ̲DISK..OFFLINE
   ̲DISK,VOL:VOLUME ̲NAME)
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       (CC:
                                                                       INTEGER)
      VAR FMS: FILE ̲SYSTEM ̲NAME
      DEVICE: DEVICE ̲NAME

   BEGIN

      GET ̲DISK ̲DATA(DISK)(FMS, DEVICE, NIL)

      CASE MOUNT (FMS, DEVICE,VOL,SINGLE ̲VOL) OF

         ERROR?  CASE ANALYZE ̲ERROR(CC,4,IN ̲DISK,
                                                  
                                                  
                                                IN
                                               ̲VOLUME
                                                  
                                                  
                                                VOLUME
                                               ̲NAME
                                               ̲IS ̲USED,
                                                  
                                                  
                                                WRONG
                                               ̲VOLUME
                                               ̲NAME)
                                                  OF

                                WRONG ̲VOLUME ̲NAME,
                                VOLUME ̲NAME ̲ISE ̲USED,
                                IN ̲DISK, IN ̲VOLUME
                                ?
   
                     END ̲CASE 


      END ̲CASE


   END ̲MOUNT ̲DISK























               Fig. 4.2.9.6.18.4-1


4.2.9.6.19       D̲I̲S̲M̲O̲U̲N̲T̲ ̲D̲I̲S̲K̲



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

             The procedure dismounts a volume (specified
             via a volume-name) on either

             -   the floppy disk or

             -   the offline disk



4.2.9.6.19.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)  DISMOUNT ̲DISK(DISK: FLOPPY ̲DISK..OFFLINE
                 ̲DISK,
                                            VOL: VOLUME
                                ̲NAME)(CC: INTEGER)

             b)  DISMOUNT ̲DISK (R0, R1, R6, R7)

             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̲

             R0  DISK
             R1  printer to VOL
             R6  LINK

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

             R0..R6             (destr.)
             R7                 CC


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

                 FLOPPY ̲DISK,OFFLINE ̲DISK:     DBD
                 VOLUME ̲NAME,                  DAMOS.IOS

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

                 DISK, VOL:                    I/F
                                               DATA

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

                 IN ̲DISK,
                 IN ̲VOLUME,
                 NON ̲EXISTING ̲VOLUME           :DAMOS

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

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

                 VAR FMS:       FILE ̲SYSTEM ̲NAME (DAMOS
                                ̲IOS)



4.2.9.6.19.4 D̲e̲s̲i̲g̲n̲

             Refer to figure 4.2.9.6.19.4-1 for a flowgram.


   PROCEDURE DISMOUNT ̲DISK(DISK:FLOPPY ̲DISK..OFFLINE
   ̲DISK,VOL:VOLUME ̲NAME)

      VAR FMS: FILE ̲SYSTEM ̲NAME                (CC:
                                               INTEGER)

      BEGIN

         GET ̲DISK ̲DATA (DISK)(FMS, NIL, NIL)





         CASE DISMOUNT(FMS, VOL)(CC) OF

             ERROR?  CASE ANALYZE ̲ERROR(CC,2, IN ̲DISK,
                     IN ̲VOLUME,NON ̲
                                                  
                                                  
                                                  
                                                 EXISTING
                                               ̲VOLUME)
                                               OF

                                NON ̲EXISTING ̲VOLUME,
                                IN ̲DISK, IN ̲VOLUME?

                     END ̲CASE


         END ̲CASE


   END ̲DISMOUNT ̲DISK




















               Fig. 4.2.9.6.19.4-1


4.2.9.6.20       A̲S̲S̲I̲G̲N̲ ̲D̲I̲S̲K̲



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

             The procedure assigns a

             -   floppy disk or an
             -   offline disk

             towards FMS ̲MOVING


             Asynchronous reports are sent to the DEVICE
             ̲SE synchronization element.



4.2.9.6.20.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)  ASSIGN ̲DISK(DISK: FLOPPY ̲DISK..OFFLINE
                 ̲DISK)(CC:INTEGER

             b)  ASSIGN ̲DISK (R0, R6, R7)

             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̲

             R0  DISK
             R6  LINK

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

             R0..R6             (destr.)
             R7  CC



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

                 FLOPPY ̲DISK..OFFLINE ̲DISK     :DBD

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

                 DISK                                                  :I/F
                                                                       DATA
                 DEVICE ̲SE                     :SSC.COMMON

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

                 VOLUME ̲MOUNTED                :DAMOS

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

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

                 VAR FMS: FILE ̲SYSTEM ̲NAME,
                     DEVICE: DEVICE ̲NAME,
                     ATTR: NEW ̲LOGICAL ̲DEVICE  DAMOS.IOS



4.2.9.6.20.4 D̲e̲s̲i̲g̲n̲

             Refer to figure 4.2.9.6.20.4-1 overleaf
             for a flowgram.


   PROCEDURE ASSIGN ̲DISK(DISK: FLOPPY ̲DISK ..OFFLINE
   ̲DISK)(CC:INTEGER)

   VAR FMS:  FILE ̲SYSTEM ̲NAME

       DEVICE: DEVICE ̲NAME

         ATTR: NEW ̲LOGICAL ̲DEVICE

   BEGIN


      GET ̲DISK ̲DATA (DISK)(FMS, DEVICE, ATTR)

      CASE ASSIGN ̲DEVICE(FMS, ATTR, DEVICE, DEVICE
      ̲SE)(CC) OF

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

                 CASE ANALYZE ̲ERROR(CC,1,DEVICE ̲NAME
                 ̲IN ̲USE)OF

                     DEVICE ̲NAME ̲IN ̲USE?

                                CASE DEASSIGN(FMS,DEVICE)(CC)
                                OF

                                 ERROR? CASE ANALYZE
                                ̲ERROR(CC,1,VOLUME ̲MOUNTED)
                                OF

                                          VOLUME ̲MOUNTED?

                                        END ̲CASE ̲ANALYZE

                                 OK? CASE ASSIGN ̲DEVICE(FMS,ATTR,DEVICE,DEVICE
                                ̲
                                                  
                                                  
                                SE)(CC)OF

                                          ERROR? ANALYZE
                                ̲ERROR(CC,0)

                                   END ̲CASE ̲ASSIGN

                                END ̲CASE ̲DEASSIGN

                 END ̲CASE ̲ANALYSE

      END ̲CASE ̲ASSIGN


   END ̲ASSIGN ̲DISK










               Fig. 4.2.9.6.20.4-1


4.2.9.6.21       D̲E̲A̲S̲S̲I̲G̲N̲ ̲D̲I̲S̲K̲



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

             The procedure deassigns (in FMS sense)

             -   a floppy disk
             -   an offline disk
             -   the fixed head and the moving head
                 mirrored disks.



4.2.9.6.21.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)  DEASSIGN ̲DISK(DISK: OPERATOR ̲DISKS)(CC:
                 INTEGER)

             b)  DEASSIGN ̲DISK(R0, R6, R7)

             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̲

             R0  DISK
             R6  LINK

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

             R0..R6             (destr.)
             R7  CC


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

                 OPERATOR ̲DISKS,
                 MIR1 ̲FIXED, 
                 MIR1 ̲MOVING                   :DBD

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

                 DISK                                                  :I/F
                                                                       DATA

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

                 VOLUME ̲MOUNTED                : DAMOS



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

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

                 VAR FMS: FILE ̲SYSTEM ̲NAME
                 DEVICE: DEVICE ̲NAME
                 ATTR: NEW ̲LOGICAL ̲DEVICE
                 CC: INTEGER



4.2.9.6.21.4 D̲e̲s̲i̲g̲n̲

             Refer to figure 4.2.9.6.21.4-1 for a flowgram.


   PROCEDURE DEASSIGN ̲DISK(DISK: OPERATOR ̲DISKS)(CC
   : INTEGER)

   VAR FMS: FILE ̲SYSTEM ̲NAME
      DEVICE: DEVICE ̲NAME
      ATTR: NEW ̲LOGICAL ̲DEVICE

   BEGIN

      (DISK EQ MIRRORED 1 or
       DISK EQ MIRRORED 2)      ?
       GET ̲DISK ̲DATA(DISK)(FMS, DEVICE, ATTR)

      CASE DEASSIGN(FMS, DEVICE)(CC) OF

         ERROR? DISK NE OFFLINE ̲DISK? ANALYZE ̲ERRROR(CC,0)

                 CASE ANALYZE ̲ERROR(CC,1VOLUME ̲MOUNTED)
                 OF

                     VOLUME ̲MOUNTED?

                 END ̲CASE

      END ̲CASE

                 GET ̲DISK ̲DATA(MIR1 ̲FIXED)(FMS,DEVICE,ATTR)

                 CASE DEASSING(FMS,DEVICE)(CC) OF

                     ERROR? ANALYZE ̲ERROR(CC,0)

                 END ̲CASE

                 GET ̲DISK ̲DATA(MIR1 ̲MOVING)(FMS, DEVICE,
                 ATTR)

                 CASE DEASSIGN(FMS, DEVICE)(CC) of

                     ERROR? ANALYZE ̲ERROR(CC, 0)

                 END ̲CASE



   END ̲DEASSIGN ̲DISK









               Fig. 4.2.9.6.21.4-1


4.2.9.6.22       I̲N̲C̲L̲U̲D̲E̲ ̲A̲ ̲M̲I̲R̲R̲O̲R̲E̲D̲ ̲D̲I̲S̲K̲



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

             Takes a

             -   fixed head and a corresponding

             -   moving head

             mirrored disk into mirrored operation.



4.2.9.6.22.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)  INCLUDE ̲A ̲MIRRORED ̲DISK(DISK: MIRRORED1..MIRRORED2)

                                                  
                                               (CC:
                                               INTEGER)

             b)  INCLUDE ̲A ̲MIRRORED ̲DISK(R0, R6, R7)

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

             R0  DISK
             R6  LINK

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

             R0..R6             (destr.)
             R7  CC



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

                 MIRRORED1..MIRRORED2          :DBD
                 SECTION ̲ADDRESS                                       :DAMOS.IDS



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

                 MAX ̲MIRRORED ̲FIXED ̲SECTORS,
                 MAX ̲MIRRORED ̲MOVING ̲SECTORS,
                 FMS ̲MOVING, FMS ̲FIXED,
                 MIRM, MIRF.                   : DBD
                 MIR ̲MOVING ̲ATTR(1..2),
                 MIR ̲FIXED ̲ATTR(1..2)          :SSC.COMMON

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

                 DISK, CC                      :I/F
                                               DATA

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

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

                 VAR SECTOR ̲SPEC:  SECTOR ̲ADDRESS                      (DAMOS)
                 CI: INTEGER
                 DISK ̲NO: 1..2



4.2.9.6.22.4 D̲e̲s̲i̲g̲n̲

             Refer to the flowgram in figure 4.2.9.6.22.4-1.


   PROCEDURE INCLUDE ̲A ̲MIRRORED ̲DISK(DISK:MIRRORED1..MIRRORED2)
                                                  
     (CC:INTEGER)

   VAR SECTOR ̲SPEC : SECTOR ̲ADDRESS
         CI: INTEGER, DISK ̲NO: 1..2

   BEGIN

      CASE DISK OF

         MIRRORED1? DISK ̲NO = 1
         MIRRORED2? DISK ̲NO = 2

      END ̲CASE
      CC = 0
      CASE START ̲DUALISE(FMS ̲MOVING, MIR ̲MOVING ̲ATTR(DISK
      ̲NO),
                                               MIRM)(CI)
                                               OF
             ERROR? ANALYZE ̲ERROR(CI,0)

      END ̲CASE

      SECTOR ̲SPEC. FIRST ̲SECTOR = 0

      SECTOR ̲SPEC. SECTOR ̲COUNT = MAX ̲MIRRORED ̲MOVING
      ̲SECTORS

      CASE DUALISE ̲SECTORS(FMS ̲MOVING,SECTOR ̲SPEC,MIRM)(SECTOR
      ̲SPEC,CI) OF

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

                 HW? CC = CI

                 END ̲CASE

      END ̲CASE

      CASE FINISH ̲DUALISE(FMS ̲MOVING, MIRM)(CI) OF

         ERROR?      ANALYZE ̲ERROR(CI, 0)

      END ̲CASE

      CASE ̲START ̲DUALIZE(FMS ̲FIXED,MIR ̲FIXED ̲ATTR(DISK
      ̲NO),MIRF)(CI) OF

         ERROR? ANALYZE ̲ERROR(CI, 0)

      END ̲CASE


      continues…86…1…02…  …02…  …02…  …02…   …02…   …02…   …02…          …02…         
          …02…                       
             continued


      SECTOR ̲SPEC.FIRST ̲SECTOR = 0

      SECTOR ̲SPEC.SECTOR ̲COUNT = MAX ̲MIRRORED ̲FIXED
      ̲SECTORS

      CASE DUALIZE ̲SECTORS(FMS ̲FIXED, SECTOR ̲SPEC,
      MIRF)(SECTOR ̲SAVE, CI) OF

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

                     HW? CC = CI


                 END ̲CASE

      END ̲CASE

      CASE FINISH ̲DUALISE(FMS ̲FIXED, MIRF)(CI) OF

         ERROR? ANALYZE ̲ERROR(CI, 0)

   END ̲CASE


   END ̲INCLUDE ̲A ̲MIRRORED ̲DISK


4.2.9.6.23       E̲X̲C̲L̲U̲D̲E̲ ̲A̲ ̲M̲I̲R̲R̲O̲R̲E̲D̲ ̲D̲I̲S̲K̲



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

             Takes a single

             -   fixed head and a corresponding

             -   moving head

             mirrored disk out of mirrored service.



4.2.9.6.23.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)  EXCLUDE ̲A ̲MIRRORED ̲DISK(DISK: MIRRORED1..MIRRORED2)

             b)  EXCLUDE ̲A ̲MIRRORED ̲DISK(R0, 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̲

             R0:     DISK
             R6:     LINK

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

             R0..R7             (destr)





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

                 MIRRORED1..MIRRORED2          DBD

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

                 FMS ̲MOVING,
                 FMS ̲FIXED,
                 MIRM,
                 MIRF                                                  DBD
                 MIR ̲MOVING ̲ATTR,
                 MIR ̲FIXED ̲ATTR                SSC.COMMON

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

                 DISK                                                  I/F
                                                                       DATA

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

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

                 VAR DISK ̲NO:   1..2
                 CI:                           INTEGER



4.2.9.6.23.4 D̲e̲s̲i̲g̲n̲

             Refer to figure 4.2.9.6.23.4-1 overleaf
             for a flowgram.


   PROCEDURE EXCLUDE ̲A ̲MIRRORED ̲DISK(DISK:MIRRORED1..MIRRORED2)

   VAR DISK ̲NO:INTEGER


   BEGIN

         CASE DISK OF

             MIRRORED1? DISK ̲NO = 1

             MIRRORED2  DISK ̲NO = 2

         END ̲CASE
         CASE DISCARD(FMS ̲MOVING,MIRM,MIR ̲MOVING ̲ATTR(DISK
         ̲NO)(CI)OF 

             ERROR? ANALYZE ̲ERROR(CC, 0) 

         END ̲CASE
         CASE DISCARD(FMS ̲FIXED, MIRF, MIR ̲FIXED ̲ATTR(DISK
         ̲NO)(CI)OF

             ERROR? ANALYZE ̲ERROR CC, 0) 


         END CASE


   END ̲EXCLUDE ̲A ̲MIRRORED ̲DISK







               Fig. 4.2.9.4.23.4-1


4.2.9.6.24       G̲E̲T̲ ̲D̲I̲S̲K̲ ̲D̲A̲T̲A̲



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

             Determines depending on the disk type:

             -   the file system name
             -   the device name
             -   the attributes to be used during assign
                 of a disk



4.2.9.6.24.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)  GET ̲DISK ̲DATA(DISK: DISK ̲TYPE)
                                (FMS: FILE ̲SYSTEM ̲NAME,
                                DEVICE: DEVICE ̲NAME,
                                ATTR: NEW ̲LOGICAL ̲DEVICE)

             b)  GET DISK DATA (R0, R4, R5, R6, R7)

             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̲

             R0  DISK
             R6  LINK

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

             R4  pointer to FMS
             R5  pointer to DEVICE
             R7  pointer to ATTR


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

                 FILE ̲SYSTEM ̲NAME,
                 DEVICE ̲NAME,
                 NEW ̲LOGICAL ̲DEVICE                                    :DAMOS
                                                                       ̲IOS
                 DISK ̲TYPE                     :DBD

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

                 FMS ̲MOVING,
                 FLOP, OFFL, MIRF, MIRM        :DBD

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

                 DISK                                                  :I/F
                                                                       DATA
                 FLOPPY ̲DISK ̲ATTRIBUTES,
                 OFFLINE ̲DISK ̲ATTRIBUTES,
                 MIR ̲FIXED ̲ATTRIBUTES(1..2),
                 MIR ̲MOVING ̲ATTRIBUTES(1..2)   :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̲



4.2.9.6.24.4 D̲e̲s̲i̲g̲n̲

             Refer to the flowgram in figure 4.2.9.6.24.2-1


   PROCEDURE GET ̲DISK ̲DATA(DISK: DISK ̲TYPE)(FMS: FILE
   ̲SYSTEM NAME,
                                               DEVICE:
                                               DEVICE
                                               ̲NAME,
                                               ATTR:
                                               NEW
                                               ̲LOGICAL
                                               ̲DEVICE

   BEGIN

         CASE DISK ̲OF

             FLOPPY ̲DISK? -     FMS =          FMS
                                               ̲MOVING

                                DEVICE =FLOP

                                ATTR =         FLOPPY
                                               ̲DISK
                                               ̲ATTRIBUTES

             OFFLINE ̲DISK?      FMS =          FMS
                                               ̲MOVING

                                DEVICE = OFFL

                                ATTR =          OFFLINE
                                               ̲DISK
                                               ̲ATTRIBUTES

             MIR1 - FIXED?      FMS =           FMS
                                               ̲FIXED

                                DEVICE = MIRF

                                ATTR =   MIR ̲FIXED
                                ̲ATTRIBUTES(1)

             MIR1-MOVING?       FMS =          FMS
                                               ̲MOVING

                                DEVICE = MIRM

                                ATTR = MIR ̲MOVING ̲ATTRIBUTES(1)

             MIR2-FIXED?                       FMS
                                               = FMS
                                               ̲FIXED

                                DEVICE = MIRF

                                ATTR = MIR ̲FIXED ̲ATTRIBUTES(2)

             MIR2-MOVING?       FMS = FMS ̲MOVING

                                DEVICE = MIRM

                                ATTR = MIR ̲MOVING ̲ATTRIBUTES(2)

      END ̲CASE

   END
               Fig. 4.2.9.6.24.4-1


4.2.9.6.25       G̲E̲T̲ ̲R̲O̲O̲T̲ ̲M̲O̲V̲



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

             Fetches a FDCB ̲INDEX for the root-directory
             on the volume specified from the FMS ̲MOVING
             file system.



4.2.9.6.25.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)  GET ̲ROOT ̲MOV(NAME:VOLUME ̲NAME)(DIR:
                 FDCB ̲INDEX)(CC:INTEGER)

             b)  GET ̲ROOT ̲MOV(R0, R5, R6, R7)

                 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̲

                 R0     pointer to NAME
                 R6     LINK

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

                 R0 - R6                       (destr)
                 R5     DIR
                 R7     CC



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

                 VOLUME ̲NAME,
                 FDCB ̲INDEX:      DAMOS.IOS

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

                 NAME, DIR                      : I/F
                                               DATA

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

                 FMS ̲MOVING                     : DBD
                 NON ̲EXISTING ̲VOLUME : DAMOS
             b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

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



4.2.9.6.25.4 D̲e̲s̲i̲g̲n̲

             Refer to the flowgrams in figure 4.2.9.6.25.4-1


   PROCEDURE

   GET ̲ROOT ̲MOV(NAME: VOLUME ̲NAME)(DIR: FDCB ̲INDEX,CC
   : INTEGER)


   BEGIN


      CASE GET ̲ROOT(FMS ̲MOVING, NAME)(DIR, CC) OF

         ERROR? ANALYZE ̲ERROR(CC, 1, NON ̲EXISTING ̲VOLUME)

      END ̲CASE


   END ̲GET ̲ROOT ̲MOV





























               Fig. 4.2.9.6.25.4-1


4.2.9.6.26       G̲E̲T̲ ̲R̲O̲O̲T̲ ̲F̲I̲X̲



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

             Fetches a FDCB ̲INDEX for the root-directory
             on the volume specified from the FMS ̲FIXED
             filesystem.



4.2.9.6.26.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)  GET ̲ROOT ̲FIX(NAME: VOLUME ̲NAME)(DIR:
                 FDCB ̲INDEX)

             b)  GET ̲ROOT ̲FIX(R0, R6, R7)

             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̲

             R0  pointer to NAME
             R6  LINK

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

             R0..R6     (destr)
             R7      DIR


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

                 VOLUME ̲NAME,
                 FDCB ̲INDEX:    :DAMOS.IOS

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

                 NAME, DIR:                    :I/F
                                               DATA

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

                 FMS ̲FIXED                     :DBD

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

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



4.2.9.4.26.4 D̲e̲s̲i̲g̲n̲

             Refer to the flowgram in figure 4.2.9.6.26.4-1


   PROCEDURE

   GET ̲ROOT ̲FIX(NAME: VOLUME ̲NAME)(DIR: FDCB ̲INDEX)

   BEGIN

      CASE GET ̲ROOT(FMS ̲FIXED, NAME)(DIR, CC) OF

         ERROR? ANALYZE ̲ERROR(CC, 0)


      END ̲CASE


   END ̲GET ̲ROOT ̲FIX






























Fig. 4.2.9.6.26.4-1…86…1…02…  …02…  …02…  …02…   …02…   …02…   …02…  …02…       …02…              …02…              
         
4.2.9.6.27       R̲E̲A̲D̲ ̲F̲M̲ ̲F̲I̲L̲E̲



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

             Copies a disk area from an open file to
             a contiguous memory area.

             The disk area and memory areas are specified
             via a

             -   start address

             -   size



4.2.9.6.27.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)  READ ̲FM ̲FILE(MEM ̲ADDR:        INTEGER,
                                 F ̲ADDR:       INTEGER,
                                 F ̲SIZE:       INTEGER,
                                 FILE ̲OS):     FDCB
                                               ̲INDEX)
                                (CC:INTEGER)

             b)  READ ̲FM ̲FILE(R0, R1, R2, R3, R6, R7)

             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̲

             R0      MEM ̲ADDR
             R1      F ̲ADDR
             R2      F ̲SIZE
             R3      FILE ̲OBJ
             R6      LINK

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

             R2      F ̲SIZE (NO of transferred bytes)
             R7      CC
             R7..R6     (destr.)


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

                 END ̲OF ̲FILE, HW,
                 FDCB ̲INDEX,
                 FILE ̲ADDRESS,
                 BUFFER ̲LIST ̲ELEMENT           :DAMOS.IOS

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

                 BNLOCALLOWER                  :DAMOS.IOS

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

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

                 VAR F ̲SPEC                                            :FILE
                                                                       ̲ADDRESS
                 BLE                                                   :BUFFER
                                                                       ̲LIST
                                                                       ̲ELEMENT



4.2.9.6.27.4 D̲e̲s̲i̲g̲n̲

             Refer figure 4.2.9.6.27.4-1


   PROCEDURE

   READ ̲FM ̲FILE(MEM ̲ADDR: INTEGER, F ̲ADDR:INTEGER,
   F ̲SIZE: INTEGER,
                                               FILE
                                               ̲OBJ:
                                               FDCB
                                               ̲INDEX)(CC:INTEGER)

   VAR   F ̲SPEC: FILE ̲ADDRESS

   VAR   BLE:    BUFFER ̲LIST ̲ELEMENT

   INIT  BLE.KIND = BN LOCAL LOWER

         BLE.LINK = NIL

   BEGIN

         F ̲SPEC.FIRST ̲BYTE = F ̲ADDR

         F ̲SPEC.BYTE ̲COUNT = F ̲SIZE

         BLE.ADDR = MEM ̲ADDR

         BLE ̲SIZE = F ̲SPEC. BYTE ̲COUNT/2

         CASE READ ̲BYTES(FILE ̲OBJ, F ̲SPEC, BLE)
                        (F ̲SPEC, CC)           OF

             ERROR? CASE ANALYZE ̲ERROR(CC, HW, END
             ̲OF ̲FILE, 2)

                     HW, END ̲OF ̲FILE?

         END ̲CASE
         F ̲SPEC. TRANSFERRED ̲BYTES NE BLE. SIZE) AND
         CC EQ  END ̲OF ̲FILE                       
             ?


                        F ̲SIZE = F ̲SPEC. TRANSFERRED
                        ̲BYTES



   END ̲READ ̲FM ̲FILE






               Fig. 4.2.9.6.27.4-1


4.2.9.6.28       W̲R̲I̲T̲E̲ ̲T̲O̲ ̲F̲I̲L̲E̲



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

             Copies a contiguous memory area to an
             open file.

             The memory area is specified via

             -   a start address
             -   a size


             The disk area is specified via

             -   a start address
             -   a size



4.2.9.6.28.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)  WRITE ̲TO ̲FILE(NEW ̲ADDR:       INTEGER,
                                F ̲ADDR:        INTEGER,
                                F ̲SIZE:                                INTEGER,         FILE
                                                                                        ̲OBJ: INTEGER)
                                (CC:                                   INTEGER)

             b)  WRITE ̲TO ̲FILE(R0, R1, R2, R3, R6,
                 R7)

             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̲

             R0      MEM ̲ADDR
             R1      F ̲ADDR
             R2      F ̲SIZE
             R3      FILE ̲OBJ
             F6      LINK

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

             R7      CC
             R0..R6  (destr.)


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

                 END ̲OF ̲FILE, HW,
                 FDCB ̲INDEX,
                 FILE ̲ADDRESS,
                 BUFFER ̲LIST ̲ELEMENT           :DAMOS.IOS

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

                 BN LOCAL LOWER                DAMOS.IOS

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

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

                 VAR F ̲SPEC:    FILE ̲ADDRESS
                 BLE:                          BUFFER
                                               ̲LIST
                                               ̲ELEMENT



4.2.9.6.28.4 D̲e̲s̲i̲g̲n̲

             Refer the flowgram in figure 4.2.9.6.28.4-1.


   PROCEDURE

   WRITE ̲TO ̲FILE(MEM ̲ADDR: INTEGER, F ̲ADDR: INTEGER,
   F ̲SIZE: INTEGER,
                                FILE ̲OBJ: FDCB ̲INDEX)(CC:
                                INTEGER)

   VAR F ̲SPEC:   FILE ̲ADDRESS

   VAR BLE:      BUFFER ̲LIST ̲ELEMENT

   INIT BLE.KIND = BNLOCALLOWER

         BLE.LINK = NIL


   BEGIN

      F ̲SPEC.FIRST ̲BYTE = F ̲ADDR

      F ̲SPEC.BYTE ̲COUNT = F ̲SIZE

      BLE. ADDR = MEM ̲ADDR

      BLE.SIZE = F ̲SIZE/2

      CASE MODIFY ̲BYTES(FILE ̲OBJ, F ̲SPEC, BLE)(F ̲SPEC,
      CC) OF

         ERROR? CASE ANALYZE ERROR(CC, HW, END ̲OF ̲FILE,
         2) OF

                 HW, END ̲OF ̲FILE?

             END ̲CASE


      END ̲CASE

      F ̲SPEC.TRANSFERRED ̲BYTES NE BLE.SIZE AND ?
      CC EQ END ̲OF ̲FILE
                                               F ̲SIZE
                                               = F
                                               ̲SPEC.TRANSFERRED
                                               ̲BYTES


   END ̲WRITE ̲TD ̲FILE




               Fig. 4.2.9.6.28.4-1


4.2.9.6.29       L̲O̲O̲K̲ ̲U̲P̲



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

             Looks up a specified file in a specified
             directory and returns a FDCB-INDEX of
             the file looked up.



4.2.9.6.29.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)  LOOK ̲UP(DIR:FDCB ̲INDEX, FILE: FILE
                 ̲NAME)(CC:INTEGER)
                        (REF: FDCB ̲INDEX)

             b)  LOOK ̲UP(R0, R1, R5 R6, R7)

             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̲

             R0  DIR
             R1  pointer to FILE
             R6  LINK

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

             R5  REF
             R7  CC



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

                 FDCB ̲INDEX,
                 FILE ̲NAME:                    DAMOS.IOS

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

                 DIR, FILE, REF I/F DATA

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

                 NON ̲EXISTING ̲NAME             :DAMOS

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

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



4.2.9.6.29.4 D̲e̲s̲i̲g̲n̲

             Refer to the flowgram in figure 4.2.9.6.29.4-1
             overleaf


   PROCEDURE LOOK ̲UP(DIR: FDCB ̲INDEX, FILE: FILE ̲NAME)
                                (REF: FDCB ̲INDEX, CC
                                : INTEGER)

   BEGIN



      CASE LOOKUP(DIR, FILE)(REF) OF


         ERROR? ANALYZE ̲ERROR(CC, 1, NON ̲EXISTING ̲NAME)


      END ̲CASE



   END



























               Fig. 4.2.9.6.29.4-1


4.2.9.6.30       D̲I̲S̲ ̲M̲A̲N̲T̲L̲E̲



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

             Dismantles an object/FDCB ̲INDEX.



4.2.9.6.30.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)  DIS ̲MANTLE (REF)

             b)  DIS ̲MANTLE (R0, 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̲

             R0  REF
             R6  LINK

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

             R0..R7     destr.



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

                 FDCB ̲INDEX                                            :DAMOS.IOS

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

                 REF                                                   :I/F
                                                                       DATA

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

                 CC: INTEGER





4.2.9.6.30.4 D̲e̲s̲i̲g̲n̲

             Refer the flowgram in figure 4.2.9.6.30.4-1


   PROCEDURE DIS ̲MANTLE(REF: FDCB ̲INDEX)

   VAR CC = INTEGER

   BEGIN

      CASE DISMANTLE(REF) OF

         ERROR? ANALYZE ̲ERROR(CC, 0)

      END ̲CASE


   END































               Fig. 4.2.9.6.30.4-1


4.2.9.6.31       C̲O̲P̲Y̲ ̲F̲I̲L̲E̲S̲



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

             Copies a number of files(specified in
             a file name list) from a specified directory
             (FM ̲DIR) to a specified directory (TO
             ̲DIR).



4.2.9.6.31.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)  COPY ̲FILES(FILE ̲LIST: FILE ̲NAME ̲LIST,
                                NO ̲OF ̲FILES: INTEGER,
                                FM ̲DIR: FDCB ̲INDEX,
                                TO ̲DIR: FDCB ̲INDEX)(COPY
                                ̲INF: COPY ̲INF ̲TYPE)

             b)  COPY ̲FILES (R0, R1, R2, R3, R6, R7)

             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̲

             R0  pointer to FILE ̲LIST
             R1  NO ̲OF ̲FILES
             R2  FM ̲DIR
             R3  TO ̲DIR
             R6  LINK

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

             R0 - R6    destr.
             R7      pointer COPY ̲INF


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

             COPY ̲INF ̲TYPE:                    CFH.VARIOUS
             FILE ̲NAME,
             FDCB ̲INDEX,
             END ̲OF ̲FILE, HW:   DAMOS.IOS

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

             WRK:                              CFH.VARIOUS
             FILE ̲LIST,
             NO ̲OF ̲FILES,
             FM ̲DIR,
             TO ̲DIR:                           I/F
                                               DATA

             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: INTEGER
                 EOF ̲REACHED: BOOLEAN
                 F ̲ADDR: INTEGER
                 F ̲SIZE: INTEGER



4.2.9.6.31.4 D̲e̲s̲i̲g̲n̲

             Refer to the flowgram in figure 4.2.9.6.31.4-1


   PROCEDURE COPY ̲FILES(FILE ̲LIST: FILE ̲NAME ̲LIST,
                        NO ̲OF ̲FILES: INTEGER, FM ̲DIR:
                        FDCB ̲INDEX,
                        TO ̲DIR: FDCB ̲INDEX)(INF: COPY
                        ̲INF ̲TYPE)

   VAR I: INTEGER
         EOF ̲REACHED: BOOLEAN
         F ̲ADDR: INTEGER
         F ̲SIZE: INTEGER
   "TYPE FILE ̲NAME ̲LIST = ARRAY (1..NO ̲OF ̲FILES) OF
   FILE ̲NAME

   BEGIN

      I = 0

      LOOP

         I = I + 1

         LOOK ̲UP(FM ̲DIR, FILE ̲LIST(I)(FM ̲FILE,CC

         CC NE 0?    INF.CC                    = CC)
                     INF.FM ̲TO  = FM
                     INF.FILE   = FILE ̲LIST (I)
                       EXIT

         LOOK ̲UP(TO ̲DIR, FILE ̲LIST(I))(TO ̲FILE, CC)

         CC NE 0?    INF.CC                    = CC
                     INF.FM ̲TO  = TO
                     INF.FILE   = FILE ̲LIST(I)
                     DISMANTLE (FM ̲FILE)
                       EXIT

         EOF ̲REACHED = FALSE

         F ̲ADDR = 0
         F ̲SIZE = SIZE (WRK)
         LOOP

             READ ̲FM ̲FILE(WRK, F ̲ADDR, F ̲SIZE, FM ̲FILE)(F
             ̲SIZE, CC)

             CC EQ HW? EXIT; INF.FM ̲TO = FM

             CC EQ END ̲OF ̲FILE? EOF ̲REACHED = TRUE

             WRITE ̲TO ̲FILE(WRK, F ̲ADDR, F ̲SIZE, TO
             ̲FILE)(CC)

             CC EQ HW? INF.FM ̲TO = TO          EXIT

             EOF ̲REACHED EQ TRUE?              EXIT

             F ̲ADDR = F ̲ADDR + SIZE(WRK)

      END ̲LOOP



      I EQ NO ̲OF ̲FILES? EXIT
                                                                       INF.CC
                                                                       =
                                                                       CC
                                                                       INF.FILE
                                                                       =
                                                                       FILE
                                                                       ̲LIST(I)
      END ̲LOOP ̲I


   DIS ̲MANTLE (FM ̲FILE)

   DIS ̲MANTLE (TO ̲FILE)




END ̲COPY ̲FILES

































               Fig. 4.2.9.6.31.4-1


4.2.9.6.32       C̲O̲P̲Y̲ ̲M̲O̲D̲I̲F̲I̲E̲D̲ ̲S̲W̲



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

             The procedure copies

             -   the boot file (system software) or
             -   the COPSY and child process load files
                 (application software) or
             -   the garble file or
             -   a patch file

             from one disk to another as indicated
             in the FROM ̲TO field in the input parameter
             SW ̲TO ̲BE ̲LOADED ̲REC. The source directory
             (FM ̲DIR) and destination directory (TO
             ̲DIR) into which the above files are placed
             are found. Via the FIND ̲DIR ̲FILES procedure
             also the first file to be copied and the
             number of files to be copied are determined.

             If an error occurs then the

             -   erronous file
             -   erronous disk
             -   CC

             is returned.



4.2.9.6.32.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)  COPY ̲MODIFIED ̲SOFTWARE(SW ̲TO ̲BE ̲LOADED
                 ̲REC:SW ̲TO ̲BE ̲LOADED
                                (COPY ̲INF: MODIFY ̲INF)

             b)  COPY ̲MODIFIED ̲SOFTWARE (R0, R6, R7)

             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̲

             R0  pointer to SW ̲TO ̲BE ̲LOADED ̲REC
             R6  link


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

             R0 - R6    destr.
             R7      printer to COPY ̲INF



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

                 FLOPPY ̲DISK, OFFLINE ̲DISK, MIRRORED:
                 DBD
                 SW ̲TO ̲BE ̲LOADED                                       
                                                                       :
                                                                       SSC.COMMON
                 FDCB ̲INDEX,
                 FILE ̲NAMES                                            
                                                                       :DAMOS.IOS
                 MODIFY ̲INF, COPY ̲INF ̲TYPE      :CFH.VARIOUS

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

                 SW ̲TO ̲BE ̲LOADED ̲REC, CC         I/F
                                               DATA
                 READ ̲MASK, KEY ̲BUF,SEND ̲BUF    :CFH.VARIOUS

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

                 NON ̲EXISTING ̲TO ̲DIRECTORY,
                 NON ̲EXISTING ̲PROM ̲DIRECTORY,
                 NON ̲EXISTING ̲TO ̲VOLUME,
                 NON ̲EXISTING ̲FROM ̲VOLUME       : SSC.COMMON
                 SYS ̲GEN, MIR ̲MOVING            : DBD
                 NON ̲EXISTING ̲VOLUME            : DAMOS

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

                 DISK ̲TABLE                                            
                                                                       :
                                                                       DBD

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

                 DISK ̲TABLE(FLOPPY ̲DISK).VOLUME

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

                 VAR FLOPPY ̲VOL :VOLUME ̲NAME
                 FM ̲DIR,TO ̲DIR, FM ̲ROOT ̲DIR, TO ̲ROOT
                 ̲DIR: FDCB ̲INDEX
                 DIR, FIRST ̲FILE: FILE ̲NAME
                 NO ̲OF ̲FILES: INTEGER



4.2.9.6.32.4 D̲e̲s̲i̲g̲n̲

             Refer to figure 4.2.9.6.32.4-1 for a flowgram.


   PROCEDURE

   COPY ̲MODIFIED ̲SOFTWARE(SW ̲TO ̲BE ̲LOADED ̲REC: SW ̲TO
   ̲BE ̲LOADED)
                                                                       (COPY
                                                                       ̲INF:MODIFY
                                                                       ̲INF)
   VAR FLOPPY ̲VOL: VOLUME ̲NAME
         FM ̲DIR, TO ̲DIR, FM ̲ROOT ̲DIR, TO ̲ROOT ̲DIR:
         FDCB ̲INDEX
         DIR, FIRST ̲FILE:       FILE ̲NAME
         NO ̲OF ̲FILES = INTEGER

   BEGIN

      KEY ̲BUF. KEY = FLOPPY ̲DISK
      READ ̲MASK = 4             "VOLUME 

      SEARCH ̲ENTRY(DISK ̲TABLE,KEY ̲BUF,READ.MASK,
             SEND ̲BUF)(FLOPPY ̲VOL)

      CASE SW ̲TO ̲BE ̲LOADED ̲REC.FROM ̲TO OF

         FLOP ̲OFFL?

             GET ̲ROOT ̲MOV(FLOPPY ̲VOL)(FM ̲ROOT ̲DIR)(CC)
             CC EQ NON ̲EXISTING ̲VOLUME?
                      CC=NON ̲EXISTING ̲TO ̲VOLUME
                      DISMANTLE (FM ̲ROOT ̲DIR)
             GET ̲ROOT ̲MOV(SYS ̲GEN)(TO ̲ROOT ̲DIR)(CC)
             CC EQ NON ̲EXISTING ̲VOLUME?
                         CC = NON ̲EXISTING ̲FROM ̲VOLUME

         FLOP ̲MIRR?
                 GET ̲ROOT ̲MOV(FLOPPY ̲VOL)(FM ̲ROOT ̲DIR)(CC)
                 CC EQ NON ̲EXISTING ̲VOLUME?
                                 CC=NON ̲EXISTING ̲TO
                                ̲VOLUME
                                 DISMANTLE (FM ̲ROOT
                                ̲DIR)
                 GET ̲ROOT ̲DIR(MIR ̲MOVING)(TO ̲ROOT ̲DIR)(CC)
                 CC NE 0?
                         ANALYZE ̲ERROR(CC,0)

         OFFL ̲MIRR?
                 GET ̲ROOT ̲MOV(SYS ̲GEN)(FM ̲ROOT ̲DIR)(CC)
                 CC EQ NON ̲EXISTING ̲VOLUME?
                        CC=NON ̲EXISTING ̲TO ̲VOLUME
                        DISMANTLE (FM ̲ROOT ̲DIR)
                 GET ̲ROOT ̲MOV(MIR ̲MOVING)(TO ̲ROOT ̲DIR,CC)
                 CC NE 0 ?
                        ANALYZE ̲ERROR (CC,0)

continued...…86…1…02…  …02…  …02…  …02…   …02…   …02…   …02…  …02…       …02…             
 …02…                       
continued..
         MIRR ̲OFFL?  
                 G̲E̲T̲ ̲R̲O̲O̲T̲ ̲M̲O̲V̲(MIR ̲MOVING)(FM ̲ROOT ̲DIR)(CC)
                     CC NE 0?
                                 A̲N̲A̲L̲Y̲Z̲E̲ ̲E̲R̲R̲O̲R̲ (CC,0)
                     G̲E̲T̲ ̲R̲O̲O̲T̲ ̲M̲O̲V̲(SYS ̲GEN)(TO ̲ROOT
                     ̲DIR,CC)
                     CC EQ NON ̲EXISTING ̲VOLUME?
                                 CC = NON ̲EXISTING
                                ̲FROM ̲VOLUME

         MIRR ̲FLOP?  
                 G̲E̲T̲ ̲R̲O̲O̲T̲ ̲M̲O̲V̲(MIR ̲MOVING)(FM ̲ROOT ̲DIR)(CC)
             CC NE 0?
                         ANALYZE ̲ERROR (CC,0)
                 G̲E̲T̲ ̲R̲O̲O̲T̲ ̲M̲O̲V̲(FLOPPY ̲VOL)(TO ̲ROOT ̲DIR)(CC)
                 CC EQ NON ̲EXISTING ̲VOLUME?
                         CC = NON ̲EXISTING ̲FROM ̲VOLUME

      END ̲CASE

      CC NE 0? COPY ̲INF.CC = CC

      F̲I̲N̲D̲ ̲D̲I̲R̲ ̲F̲I̲L̲E̲S̲(SW ̲TO ̲BE ̲LOADED)(DIR, FIRST ̲FILE,
      NO ̲OF ̲FILES)

      L̲O̲O̲K̲ ̲U̲P̲(FM ̲ROOT ̲DIR, DIR((FM ̲DIR,CC)

      DISMANTLE (FM ̲ROOT ̲DIR)

      CC NE 0?   COPY ̲INF.CC = NON ̲EXISTING ̲FROM ̲DIRECTORY

      L̲O̲O̲K̲ ̲U̲P̲(TO ̲ROOT ̲DIR, DIR)(TO ̲DIR,CC)

      DISMANTLE (TO ̲ROOT ̲DIR)

      CC NE 0?   COPY ̲INF.CC = NON ̲EXISTING ̲TO ̲DIRECTORY
                 DIS ̲MANTLE(FM ̲DIR)

      C̲O̲P̲Y̲ ̲F̲I̲L̲E̲S̲(FIRST ̲FILE, NO ̲OF ̲FILES, FM ̲DIR, TO
      ̲DIR)(COPY ̲INF)

      COPY ̲INF.CC NE 0? F̲I̲N̲D̲ ̲E̲R̲R̲O̲R̲ ̲D̲I̲S̲K̲(COPY ̲INF, SW
      ̲TO ̲BE ̲LOADED)
                                               (COPY
                                               ̲INF)

      DISMANTLE(FM ̲DIR)
      DISMANTLE(TO ̲DIR)

END ̲COPY ̲MODIFIED ̲SOFTWARE



               Fig. 4.2.9.6.32.4-1


   PROCEDURE

   FIND ̲ERROR ̲DISK(COPY ̲INF: COPY ̲INF ̲TYPE, SW ̲REC:
   SW ̲TO ̲BE ̲LOADED ̲REC)
                                                                       (COPY
                                                                       ̲INF:
                                                                       MODIFY
                                                                       ̲INF)

   BEGIN

      CASE SW ̲REC.FROM ̲TO OF

         FLOP ̲OFFL? COPY ̲INF. FM ̲TO EQ FM?
                                               COPY
                                               ̲INF.DISK
                                               = FLOPPY
                                               ̲DISK

                     COPY ̲INF.DISK = OFFLINE ̲DISK

         FLOP ̲MIRR?  COPY ̲INF.FM ̲TO EQ FM?
                                               COPY
                                               ̲INF.DISK
                                               = FLOPPY
                                               ̲DISK

                     COPY ̲INF.DISK = MIRRORED1

         OFFL ̲MIRR?  COPY ̲INF.FM ̲TO EQ FM?
                                               COPY
                                               ̲INF.DISK
                                               = OFFLINE
                                               ̲DISK

                     COPY ̲INF.DISK = MIRRORED1

         MIRR ̲OFFL? COPY ̲INF.FM ̲TO EQ FM?
                                               COPY
                                               ̲INF.DISK
                                               = MIRRORED1

                     COPY ̲INF. DISK = OFFLINE ̲DISK

         MIRR ̲FLOP? COPY ̲INF.FM ̲TO EQ DM?
                                               COPY
                                               ̲INF.
                                               DISK
                                               = MIRRORED1

                     COPY ̲INF.DISK = FLOPPY ̲DISK

      END ̲CASE

   END ̲FIND ̲ERROR ̲DISK


4.2.9.6.33       F̲I̲N̲D̲ ̲D̲I̲R̲ ̲F̲I̲L̲E̲S̲



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

             Depending on the type of software to be
             loaded, the name of the directory and
             the list of file to be loaded are found.



4.2.9.6.33.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)  FIND ̲DIR ̲FILES (SW ̲TO ̲BE ̲LOADED ̲REC:
                 SW ̲TO ̲BE ̲LOADED)
                                (DIR: FILE ̲NONE, FIRST
                                ̲FILE: FILE ̲NAME,
                                NO ̲OF ̲FILES: INTEGER)

             b)  FIND ̲DIR ̲FILES (R0, R1, R2, R3, 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̲

             R0  pointer to SW ̲TO ̲BE ̲LOADED ̲REC
             R   link

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

             R0, R4, R5, R7
             R1  DIR
             R2  FIRST ̲FILE
             R3  NO ̲OF ̲FILES
             R6      (DESTR)