top - download
⟦7e94dd49e⟧ Wang Wps File
Length: 48860 (0xbedc)
Types: Wang Wps File
Notes: CPS/SDS/029
Names: »1836A «
Derivation
└─⟦796ed5a45⟧ Bits:30006090 8" Wang WCS floppy, CR 0142A
└─ ⟦this⟧ »1836A «
WangText
(…00……00……00……00…1…02……00……00…1
0…08…0…09…0…0a…0…0c…0…0d…0…0e……11……02……11……07……10……0b……10……0f……10……02……10… …0f……09……0f……0c……0f……00……0f…
…0f……05……0e……08……0e……0c……0e……00……0e… …0e……07……0d……0b……0d……0f……0d……01……0d……02……0d……06……86…1 …02… …02… …02…
…02…CPS/SDS/029
…02…820514 …02……02…
SYSTEM STATUS AND CONTROL
DETAILED DESIGN SPECIFICATION …02……02…CAMPS
4.2.9.4.10 C̲r̲e̲a̲t̲e̲ ̲P̲e̲r̲i̲p̲h̲e̲r̲a̲l̲s̲
4.2.9.4.10.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The module "creates" the CAMPS peripherals:
- disks and volumes
- TDX devices (STI, TIA, BSM ̲X, LTUX, LINES)
- LTU devices (LTU, LINES)
based upon a device specification in the port tables.
For a disk the creation implies
- a FMS assign of a controller
- a FMS mount of a volume.
For the TDX system a generic tree structure is created
as specified in figure 4.2.9.4.10.1-1.
TEMCO, DEMCO and CEMCO create the sub devices at the
LTUX lines. This structure is not shown, but for
non ̲VDU devices it consists of a single sub device
(a TMS terminal). For VDUs the branch consists of a
VDU and 6 sub-devices (TMS terminals) referring to
a data and control connection per split (3 exists).
For the LTU system a generic tree structure is created
as specified in figure 4.2.9.4.10.1-2. CEMCO creates
the sub devices at the LTU lines. For non NICS ̲TARE
lines a single sub device "TMS terminal" is created.
For NICS ̲TARE lines two sub devices (TMS "terminals")
are created.
For LTUs a bootload of firmware is supported.
Any brands in the TDX/LTU tree structure reports to
the DEVICE ̲SE.
TDX SYSTEM GENERIC TREE STRUCTURE…01…Fig. 4.2.9.4.10.1-1
LTU SYSTEM GENERIC TREE STRUCTURE…01…Fig. 4.2.9.4.10.1-2
4.2.9.4.10.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲
a) CREATE ̲PERIPHERALS
b) CREATE ̲PERIPHERALS (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 ̲R7 (destr.)
4.2.9.4.10.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
The create ̲peripherials module contains/references
the procedures specified in figure 4.2.9.4.10.3-1.
Figure 4.2.9.4.10.3-1
a) C̲R̲E̲A̲T̲E̲ ̲P̲E̲R̲I̲P̲H̲E̲R̲A̲L̲S̲
Dispatches to procedures handling
- disk creation
- STI, TIA, BSM ̲X, LTUX creation
- LTU creation and load.
b) I̲N̲I̲T̲I̲A̲L̲ ̲D̲I̲S̲K̲ ̲S̲E̲T̲ ̲U̲P̲
The
- offline disk and the
- floppy disk
are assigned/mounted according to the contents
of the DISK ̲TABLE.
Also, the configuration display is updated.
c) D̲E̲T̲E̲R̲M̲I̲N̲E̲ ̲A̲C̲T̲I̲V̲E̲ ̲T̲D̲X̲ ̲B̲U̲S̲ ̲N̲O̲
For non switchover start ̲up types PU number 1 uses
TDX ̲bus 1 and PU number 2 uses TDX ̲bus 2.
After a switchover the above selection method is
also used; however, if the thereby selected TDX
̲bus is specified erroneous in the PU ̲TABLE the
opposite (the former active) TDX ̲bus is selected.
d) T̲D̲X̲ ̲L̲I̲N̲E̲S̲ ̲C̲R̲E̲A̲T̲E̲
The procedure scans all
- BSM ̲TABLE
- LTUX ̲TABLE
entries and
- switches BSM ̲Xs
- creates LTUX
as the entry status specifies.
For LTUX lines the
- chain status and the
- configuration display
is updated.
e) B̲S̲M̲ ̲X̲ ̲A̲C̲T̲I̲O̲N̲
The BSM ̲X specified in the procedure call is switched
to the TDX ̲bus stated in the BSM ̲X table.
f) L̲T̲U̲X̲ ̲A̲C̲T̲I̲O̲N̲
The LTUX specified in the procedure call is created
via TMS.
g) L̲T̲U̲X̲ ̲L̲I̲N̲E̲ ̲A̲C̲T̲I̲O̲N̲
The "chain-status" for the chain
- LTUX line
- LTUX
- BSM ̲X
is calculated.
The "LTUX line table" chain-status is updated if
a change has occurred.
Also, the configuration display is updated, if
the new chain-status is in ̲service.
h) L̲T̲U̲ ̲L̲I̲N̲E̲S̲ ̲C̲R̲E̲A̲T̲E̲ ̲L̲O̲A̲D̲
Refer below.
i) L̲T̲U̲ ̲L̲I̲N̲E̲ ̲H̲E̲L̲P̲
Actions similar to the TDX lines create are taken,
but a LTU firmware bootload is supported.
j) A̲S̲S̲I̲G̲N̲ ̲S̲T̲I̲
The "TMS device" STI is assigned. The user specified
device identification (U ̲SDID), which is inserted
in device reports from TMS to the
DEVICE ̲SE (COPSY syncronization element used for
all TMS/FMS reports), is set to STI ̲P.
If a hardware error occurs during creation an emergency
close-down is executed.
k) C̲R̲E̲A̲T̲E̲ ̲T̲I̲A̲
The TIA is created as a "TMS controller" and as
a sub-device to the STI. TMS reports are sent to
DEVICE ̲SE and are identified by a U ̲SDID.PROFILE
equal to TIA ̲P.
If a hardware error occurs during creation an emergency
close-down is ececuted.
4.2.9.4.10.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a1) T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MIRRORED ̲1, MIRRORED ̲2, FLOPPY ̲DISK, OFFLINE ̲DISK,
DISK ̲IN ̲SERVICE, DISK ̲MOUNTED, DISK ̲ERROR,
VOLUME ̲ERROR,
TIA1, TIA2,
OFFL ̲DISK, FLOP ̲DISK,
DEAD1, DEAD2,
ACTIVE, IN ̲SERVICE,
PU ̲REC, BSM ̲X ̲REC, LTUX ̲REC, LTUX ̲LINE ̲REC, LTU
̲REC,
LTU ̲LINE ̲REC,
DISK ̲PARAM : DBD
STI ̲P, TIA ̲P : SSC.COMMON
TDX ̲BUS ̲PROTOCOL : DBD.COMMON
CONTROLLER : DAMOS.IOS
SET ̲STATUS,
UP : SSC.COMMON
a2) C̲o̲n̲s̲t̲a̲n̲t̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
ALL ̲MASK,
MAX ̲BSM ̲XS, MAX ̲LTUXS, MAX ̲LTUS,
TMS ̲ID,
STI ̲MODULE ̲ADDRESS, TIA1 ̲MODULE ̲ADDRESS,
TIA2 ̲MODULE ̲ADDRESS : DBD.COMMON
IN ̲DISK, IN ̲VOLUME : DAMOS.IOS
a3) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
STI ̲CON, TIA ̲CON,
ASSIGN ̲REC, DEVICE ̲REC,
ACTIVE ̲TDX ̲BUS ̲NO,
SEND ̲BUF, KEY ̲BUF,
START ̲UP ̲TYPE ̲D : CFH.VARIOUS
STI ̲PARAMS ̲D, TIA ̲PARAMS ̲D,
PU ̲NO,
DEVICE ̲SE,
STI ̲CC, TIA ̲CC : SSC.COMMON
a4) T̲a̲b̲l̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
DISK ̲TABLE (m),
PU ̲TABLE (m),
BSM ̲X ̲TABLE (m),
LTUX ̲TABLE (m),
LTUX ̲LINE ̲TABLE (m),
LTU ̲TABLE (m),
LTU ̲LINE ̲TABLE(m),
: DBD.COMMON
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
All entries and fields in the referenced tables
are read and updated.
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR CMD : DISK ̲PARAM
VAR STATUS : DISK ̲STATUS
VAR PU ̲REC ̲D : PU ̲REC
VAR BSM ̲X ̲NO, LTUX ̲NO, LINE ̲NO : INTEGER
VAR BSM ̲X ̲ACTIVE, LTUX ̲IN ̲SERVICE : BOOLEAN
CONST STATUS ̲MASK = BIT0
specifies DISK ̲PARAM status field
VAR BSM ̲X ̲OUT : BSM ̲X ̲REC
VAR LTUX ̲OUT : LTUX ̲REC
VAR LINE ̲OUT : LTUX ̲LINE ̲REC
VAR OLD ̲CS : HW ̲STATUS
VAR LTU ̲NO, LINE ̲NO : INTEGER
VAR LTU ̲OUT : LTU ̲REC
VAR LINE ̲OUT ̲U : LTU ̲LINE ̲REC
4.2.9.4.10.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE
CREATE ̲PERIPHERALS
BEGIN
INITIAL ̲DISK ̲SET ̲UP
ASSIGN ̲STI
DETERMINE ̲ACTIVE ̲TDX ̲BUS ̲NO
CREATE ̲TIA (ACTIVE ̲TDX ̲BUS ̲NO)
TDX ̲LINES ̲CREATE
LTU ̲LINES ̲CREATE ̲LOAD
END ̲CREATE ̲PERIPHERALS
Figure 4.2.9.4.10.5-1
PROCEDURE
INITIAL ̲DISK ̲SET ̲UP
CONST STATUS ̲MASK = BIT0 "specify
status field
VAR CMD : DISK ̲PARAM
VAR STATUS : DISK ̲STATUS
BEGIN
KEY ̲BUF.KEY = MIRRORED ̲1
UPDATE ̲ENTRY (DISK ̲TABLE, SEND ̲BUF, KEY ̲BUF, STATUS
̲MASK,
DISK
̲IN ̲SERVICE)
KEY ̲BUF.KEY = MIRRORED ̲2
UPDATE ̲ENTRY (DISK ̲TABLE, SEND ̲BUF, KEY ̲BUF, STATUS
̲MASK,
DISK
̲IN ̲SERVICE)
KEY ̲BUF.KEY = OFFLINE ̲DISK
SEARCH ̲ENTRY(DISK ̲TABLE,KEY ̲BUF,STATUS ̲MASK,
SEND
̲BUF)(STATUS)
STATUS NE DISK ̲IN ̲SERVICE?
ASSIGN ̲DISK (OFFLINE ̲DISK)
CONF ̲DISPLAY(SET ̲STATUS, OFFL ̲DISK, STATUS)
KEY ̲BUF.KEY = FLOPPY ̲DISK
SEARCH ̲ENTRY (DISK ̲TABLE, KEY ̲BUF, ALL ̲MASK, SEND
̲BUF)(CMD)
(CMD.STATUS NE DISK ̲IN ̲SERVICE AND
CMD.STATUS NE DISK ̲MOUNTED )?
ASSIGN ̲DISK (FLOPPY ̲DISK)
CMD.STATUS NE MOUNTED?
MOUNT ̲DISK (FLOPPY ̲DISK, CMD.VOLUME)(CC)
CC EQ IN ̲DISK? STATUS = DISK ̲ERROR
CC EQ IN ̲VOLUME? STATUS = VOLUME ̲ERROR
UPDATE ̲ENTRY (DISK ̲TABLE, SEND ̲BUF, KEY ̲BUF,
STATUS ̲MASK,STATUS)
CONF ̲DISPLAY (SET ̲STATUS, FLOP ̲DISK, STATUS)
END ̲INITIAL ̲DISK ̲SET ̲UP
Figure 4.2.9.4.10.5-2
PROCEDURE
DETERMINE ̲ACTIVE ̲TDX ̲BUS ̲NO
VAR PU ̲REC ̲D : PU ̲REC
BEGIN
KEY ̲BUF.KEY = 1
SEARCH ̲ENTRY (PU ̲TABLE, KEY ̲BUF, ALL ̲MASK,
SEND ̲BUF)(PU
̲REC ̲D)
(START ̲UP ̲TYPE ̲D EQ SB1 DR
START ̲UP ̲TYPE ̲D EQ SB2 )?
ACTIVE ̲TDX ̲BUS ̲NO = PU ̲NO
CASE PU ̲NO OF
1? PU ̲REC ̲D.TDX ̲2 ̲STATUS = IN ̲SERVICE
2? PU ̲REC ̲D.TDX ̲1 ̲STATUS = IN ̲SERVICE
END ̲CASE
Figure 4.2.9.4.10.5-3 (1/2)
CASE PU ̲NO OF
1? - PU ̲REC ̲D.TDX ̲1 ̲STATUS EQ ERROR?
ACTIVE ̲TDX ̲BUS
̲NO=2
ACTIVE ̲TDX ̲BUX ̲NO = 1
2? - PU ̲REC ̲D.TDX ̲2 ̲STATUS EQ ERROR?
ACTIVE ̲TDX ̲BUS
̲NO = 1
ACTIVE ̲TDX ̲BUS ̲NO = 2
END ̲CASE
ACTIVE ̲TDX ̲BUS ̲NO EQ 1?
PU ̲REC ̲D.TDX ̲1 ̲STATUS = ACTIVE
CONFIG ̲TABLE.TDX(1)=ACTIVE
CONFIG ̲TABLE.TDX(2)=PU ̲REC ̲D.TDX
̲1 ̲STATUS
CONF ̲DISPLAY (SET ̲STATUS, TIA1,
ACTIVE)
CONF ̲DISPLAY (SET ̲STATUS, TIA2,
PU ̲REC ̲D.
TDX
̲2 ̲STATUS)
PU ̲REC ̲D.TDX ̲2 ̲STATUS = ACTIVE
CONFIG ̲TABLE.TDX(1)-PU ̲REC ̲D.TDX ̲1 ̲STATUS
CONF ̲DISPLAY (SET ̲STATUS, TIA1, PU ̲REC ̲D.TDX ̲1
̲STATUS
CONFIG ̲TABLE.TDX(2) = ACTIVE
CONF ̲DISPLAY (SET ̲STATUS, TIA2, ACTIVE)
UPDATE ̲ENTRY (PU ̲TABLE,SEND ̲BUF,KEY ̲BUF,ALL ̲MASK,
PU ̲REC ̲D)
END ̲DETERMINE ̲ACTIVE ̲TDX ̲BUS ̲NO
Figure 4.2.9.4.10.5-3 (2/2)
PROCEDURE
TDX ̲LINES ̲CREATE
VAR BSM ̲X ̲NO, LTUX ̲NO, LINE ̲NO, CC : INTEGER
VAR BSM ̲X ̲ACTIVE,
LTUX ̲IN ̲SERVICE : BOOLEAN
BEGIN
BSM ̲X ̲NO = 0
LOOP
BSM ̲X ̲NO = BSM ̲X ̲NO+1
BSM ̲X ̲ACTION ()(BSM ̲X ̲ACTIVE)
LTUX ̲NO = 0
LOOP
LTUX ̲NO = LTUX ̲NO+1
BSM ̲X ̲ACTIVE NE TRUE
LTUX ̲ACTION()(LTUX ̲IN ̲SERVICE)
LINE ̲NO = 0
LOOP
LINE ̲NO = LINE ̲NO+1
LTUX ̲LINE ̲ACTION
LINE ̲NO EQ 4 EXIT
END ̲LOOP
LTUX ̲NO EQ 2? EXIT
END ̲LOOP
BSM ̲X ̲NO EQ MAX ̲BSM ̲XS? EXIT
END ̲LOOP
END ̲TDX ̲LINES ̲CREATE
Figure 4.2.9.4.10.5-4
PROCEDURE BSM ̲X ̲ACTION () (BSM ̲X ̲ACTIVE:BOOLEAN)
VAR BSM ̲X ̲OUT:BSM ̲X ̲REC
BEGIN
KEY ̲BUF.KEY = BSM ̲X ̲NO
SEARCH ̲ENTRY (BSM ̲X ̲TABLE, KEY ̲BUF, ALL ̲MASK, SEND
̲BUF)
(BSM ̲X ̲OUT)
BSM ̲X ̲HANDLE (BSM ̲X ̲OUT)(CC)
(CC NE 0 OR
BSM ̲X ̲OUT.STATUS NE ACTIVE )?
BSM ̲X ̲ACTIVE = FALSE
BSM ̲X ̲ACTIVE = TRUE
END ̲BSM ̲X ̲ACTION
Figure 4.2.9.4.10.5-5
PROCEDURE LTUX ̲ACTION()(LTUX ̲IN ̲SERVICE : BOOLEAN)
VAR LTUX ̲OUT : LTUX ̲REC
BEGIN
KEY ̲BUF.KEY = (BSM ̲X ̲NO -1) * 2 + LTUX ̲NO
SEARCH ̲ENTRY(LTUX ̲TABLE,KEY ̲BUF,ALL ̲MASK,SEND ̲BUF)(LTUX
̲OUT)
LTUX ̲OUT.STATUS NE IN ̲SERVICE?
CREATE ̲LTUX (LTUX ̲OUT)(CC)
CC = 0? LTUX ̲IN ̲SERVICE
= FALSE
LTUX ̲IN ̲SERVICE = TRUE
LTUX ̲IN ̲SERVICE = FALSE
CC NE 0? LTUX ̲OUT.STATUS = ERROR
UPDATE ̲ENTRY (LTUX ̲TABLE, SEND ̲BUF,
KEY ̲BUF, ALL ̲MASK,
LTUX ̲OUT)
END ̲LTUX ̲ACTION
Figure 4.2.9.4.10.5-6
PROCEDURE LTUX ̲LINE ̲ACTION
VAR LINE ̲OUT : LTUX ̲LINE ̲REC
VAR OLD ̲CS : HW ̲STATUS
BEGIN
KEY ̲BUF.KEY = 8 x (BSM ̲X ̲NO -1) +2 x (LTUX ̲NO-1)MODULE
2+1
+
LINE ̲NO
SEARCH ̲ENTRY (LTUX ̲LINE ̲TABLE, KEY ̲BUF, ALL ̲MASK,
SEND ̲BUF)
(LINE ̲OUT)
OLD ̲CS = LINE ̲OUT.CHAIN ̲STATUS
(BSM ̲X ̲ACTIVE EQ TRUE AND
LTUX ̲IN ̲SERVICE EQ TRUE AND
LINE ̲OUT.STATUS EQ IN ̲SERVICE )?
LINE ̲OUT.CHAIN ̲STATUS = IN ̲SERVICE
CONF ̲DISPLAY (UP, LINE ̲OUT.TYPE
̲DEV, NIL)
LINE ̲OUT.CHAIN ̲STATUS = OUT ̲OF ̲SERVICE
OLD ̲CS EQ LINE ̲OUT.CHAIN ̲STATUS?
UPDATE ̲ENTRY (LTUX ̲LINE ̲TABLE, SEND ̲BUF, KEY ̲BUF,
ALL ̲MASK,
LINE ̲OUT)
END ̲LTUX ̲LINE ̲ACTION
Figure 4.2.9.4.10.5-7
PROCEDURE
LTU ̲LINES ̲CREATE ̲LOAD
VAR LTU ̲NO : 1.. MAX ̲LTUS
LINE ̲NO : 1.. 2
LTU ̲OUT : LTU ̲REC
BEGIN
LTU ̲NO = 0
LOOP
LTU ̲NO = LTU ̲NO +1
KEY ̲BUF.KEY = LTU ̲NO
SEARCH ̲ENTRY (LTU ̲TABLE, KEY ̲BUF, ALL ̲MASK,
SEND ̲BUF)
(LTU ̲OUT)
LTU ̲OUT.STATUS NE IN ̲SERVICE?
CREATE ̲LTU (LTU ̲OUT) (CC)
CC NE 0? LTU ̲OUT.STATUS = ERROR
UPDATE ̲ENTRY (LTU ̲TABLE, SEND ̲BUF,
KEY ̲BUF,
ALL ̲MASK,
LTU ̲OUT)
LOAD ̲LTU ̲FW (LTU ̲OUT)(CC)
CC NE 0? LTU ̲OUT.STATUS = ERROR
UPDATE ̲ENTRY (LTU ̲TABLE, SEND ̲BUF,
KEY ̲BUF,
ALL ̲MASK,
LTU ̲OUT)
LINE ̲NO = 0
LOOP
LINE ̲NO = LINE ̲NO +1
LTU ̲LINE ̲HELP
LINE ̲NO EQ 2? EXIT
END ̲LOOP
LTU ̲NO EQ MAX ̲LTUXS? EXIT
END ̲LOOP
END ̲LTU ̲LINES ̲CREATE
Figure 4.2.9.4.10.5-8
PROCEDURE
LTU ̲LINE ̲HELP
VAR OLD ̲CS : HW ̲STATUS
VAR LINE ̲OUT ̲U : LTU ̲LINE ̲REC
BEGIN
KEY ̲BUF.KEY = 2 x (LTU ̲NO -1) + LINE ̲NO
SEARCH ̲ENTRY (LTU ̲TABLE, KEY ̲BUF, ALL ̲MASK, SEND
̲BUF)
(LINE
̲OUT ̲U)
OLD ̲CS = LINE ̲OUT.CHAIN ̲STATUS
LTU ̲OUT ̲U.STATUS EQ IN ̲SERVICE AND
LINE ̲OUT ̲U.STATUS EQ IN ̲SERVICE )?
LINE ̲OUT ̲U.CHAIN ̲STATUS = IN
̲SERVICE
CONF ̲DISPLAY (UP, LINE ̲OUT ̲U.TYPE
̲DEV, NIL)
LINE ̲OUT ̲U.CHAIN ̲STATUS = OUT ̲OF ̲SERVICE
OLD ̲CS EQ LINE ̲OUT ̲U.CHAIN ̲STATUS?
UPDATE ̲ENTRY (LTU ̲LINE ̲TABLE, 2 x (LTU ̲NO -1) +
LINE ̲NO,
LINE ̲OUT ̲U)
END ̲LTU ̲LINE ̲HANDLE
Figure 4.2.9.4.10.5-9
PROCEDURE
ASSIGN ̲STI
BEGIN
ASSIGN ̲REC.PARAMS = STI ̲PARAMS ̲D
ASSIGN ̲REC.LDN = STI ̲MODULE ̲ADDRESS
ASSIGN ̲REC.U ̲SDID.PROFILE = STI ̲D
ASSIGN ̲REC.U ̲SDID.PORT ̲NO = 0
ASSIGN ̲REC.SEC ̲PROF = 0
CASE ASSIGN ̲TMS ̲DEVICE (TMS ̲ID, ASSIGN ̲REC, DEVICE
̲SE)
(STI ̲CON, CC) OF
ERROR? CASE ANALYZE ̲ERROR (CC, 1, HW) OF
HW? PU ̲DOWN (STI ̲CC, ASSIGN ̲REC)
END ̲CASE
END ̲CASE
END ̲ASSIGN ̲STI
Figure 4.2.9.4.10.5-10
PROCEDURE
CREATE ̲TIA (TIA ̲NO : 1..2)
BEGIN
CASE TIA ̲NO OF
1? DEVICE ̲REC.SDA = TIA1 ̲MODULE ̲ADDRESS
2? DEVICE ̲REC.SDA = TIA2 ̲MODULE ̲ADDRESS
END ̲CASE
DEVICE ̲REC.U ̲SDID.PROFILE = TIA ̲P
DEVICE ̲REC.U ̲SDID.PORT ̲NO = TIA ̲NO
DEVICE ̲REC.PROTOCOL ̲ID = TDX ̲BUS ̲PROTOCOL
DEVICE ̲REC.SD ̲TYPE = CONTROLLER
DEVICE ̲REC.ACCESS ̲LEVEL = NIL
DEVICE ̲REC.SELECT ̲BY ̲TMS = NIL
DEVICE ̲REC.PARAMS = TIA ̲PARAMS ̲D
CASE CREATE ̲SUBDEVICE (STI ̲CON, DEVICE ̲REC, DEVICE
̲SE)
(TIA ̲CON, CC) OF
ERROR? CASE ANALYSE ̲ERROR (CC, l, HW) OF
HW? PU ̲DOWN (TIA ̲CC, DEVICE ̲REC)
END ̲CASE
END ̲CASE
END ̲CREATE ̲TIA
Figure 4.2.9.4.10.5-11
4.2.9.4.11 O̲P̲E̲R̲A̲T̲O̲R̲ ̲O̲N̲L̲Y̲ ̲M̲O̲D̲E̲
4.2.9.4.11.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The operator ̲only ̲mode is entered in WARM1 start-up,
if so specified by the operator in the start-up command.
In operator ̲only ̲mode, the queues are initialised,
but no processes operating on queues are started.
In the operator ̲only ̲mode, the operator can:
- delete CIFs
- lead modified software
- print software versions
- terminate the operator ̲only ̲mode.
The operator ̲only ̲mode may be terminated by
- closing the CAMPS system e.g. subsequent to a loading
of new software/patches.
- continue CAMPS operation e.g. subsequent to having
deleted a CIF.
4.2.9.4.11.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) OPERATOR ̲ONLY ̲MODE
b) OPERATOR ̲ONLY ̲MODE (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R6 link.
4.2.9.4.11.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
The operator ̲only ̲mode contains and references the
procedures/modules specified in Figure 4.2.9.4.11.3-1.
Operator Only Mode Module Components
Figure 4.2.9.4.11.3-1.
Figure 4.2.9.4.11.3-1
4.2.9.6.11.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a1) T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
SW ̲TO ̲BE ̲LOADED,
CLOSE ̲TYPE,
COPSY ̲GARBLE ̲PARAMS,
DISK ̲SW ̲VERSION,
CMI ̲COMMANDS ̲TO ̲COPSY : SSC.COMMON
CIF ̲REFERENCE ̲NUMBER, VIEW ̲REFERENCE,
QEL ̲ATTRIBUTES, SUBQUEUE ̲REFERENCE : DBD.CSF
MODIFY ̲INF : CFH.VARIOUS
a2) C̲o̲n̲s̲t̲a̲n̲t̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
OPERATOR ̲ONLY ̲CMDS ̲PROC,
CMD ̲TYPE ̲ERROR : CFH.VARIOUS
NO ̲CIF ̲FOUND
COPY ̲MODIFIED, LOAD ̲PATCH ̲HEADER,
NOT ̲ALLOWED ̲IN ̲OPERATOR ̲ONLY ̲MODE : SSC.COMMON
NO ̲QEL ̲FOUND : DBD
a3) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
CAMPS ̲PHASE
CFH ̲OS, LONG ̲OS, : SSC.COMMON
LONG ̲OP : CFH.VARIOUS
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
N.A.
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR MODE ̲TERMINATED : BOOLEAN
VAR G ̲INF : BOOLEAN
VAR CC : INTEGER
VAR CIF ̲REF : VIEW ̲REFERENCE
VAR ATTRIBUTES : QEL ̲ATTRIBUTES
VAR QUEUE : SUBQUEUE ̲REFERENCE
4.2.9.4.11.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
a) O̲P̲E̲R̲A̲T̲O̲R̲ ̲O̲N̲L̲Y̲ ̲M̲O̲D̲E̲
Receives operator ̲only ̲mode commands from the CMI
until an operator ̲only ̲terminated command is received.
HW errorhandling is supported.
b) O̲P̲E̲R̲A̲T̲O̲R̲ ̲O̲N̲L̲Y̲ ̲C̲M̲D̲S̲
Dispatches depending on the command type. For the
operator-only ̲terminated, where the system is to
close-down, the CMI command close-down-terminated
is awaited. Reception of this makes CFH
- notify the WDP via a reset command
- master clear the PU.
c) D̲E̲L̲E̲T̲E̲ ̲S̲P̲E̲C̲I̲F̲I̲C̲ ̲C̲I̲F̲
Deletes the CIF specified by the operator by deleting
each view of the CIF.
d) D̲I̲S̲K̲ ̲H̲A̲N̲D̲L̲E̲
The action to be executed on the floppy disk is
determined.
Now floppy disk commands are rejected.
e) F̲L̲O̲P̲P̲Y̲ ̲D̲I̲S̲K̲ ̲A̲C̲T̲I̲O̲N̲
REQUESTS EXECUTION OF
- assign
- deassign
- mount
- dismount
of the floppy disk.
The configuration display is updated.
PROCEDURE OPERATOR ̲ONLY ̲MODE
VAR MODE ̲TERMINATED : BOOLEAN
VAR G ̲INF : COPSY ̲GARBLE ̲PARAMS
G ̲INF.ERROR ̲TYPE = COPSY ̲LONG ̲ERROR
G ̲INF.USER ̲ACTION = CONTINUE
G ̲INF.ERROR ̲COR = CFH ̲COR
G ̲INF.ERROR ̲LOC = OPERATOR ̲ONLY ̲CMDS ̲PROC
BEGIN
CAMPS ̲PHASE = OPERATOR ̲ONLY ̲PHASE
LOOP ̲SERVE ̲CFH ̲OS
WAIT ̲OPSEM (CFH ̲OS)(LONG ̲OP)
CASE LONG ̲OP.CMD ̲TYPE OF
DEVICE ̲ERROR,
WDP ̲CMD? HW ̲ERROR ̲HANDLING (LONG ̲OP)
CMI ̲CMD ̲L? OPERATOR ̲ONLY ̲CMDS()
(MODE ̲TERMINATED)
MODE ̲TERMINATED EQ TRUE? EXIT
OTHER? G ̲INF.ERROR ̲INFO(1) = CMD ̲TYPE
̲ERROR
COPSY ̲SEND ̲GARBLE (LONG ̲OP, G ̲INF)
END ̲CASE
SIGNAL ̲OPSEM (LONG ̲OS, LONG ̲OP)
END ̲LOOP
END ̲OPERATOR ̲ONLY ̲MODE
Fig. 4.2.9.4.11.5-1
PROCEDURE OPERATOR ̲ONLY ̲CMDS()(MODE ̲TERMINATED:BOOLEAN)
VAR CC:INTEGER
COPSY ̲INF : MODIFY ̲INF
INF : RECORD
CC : INTEGER
FILE: FILE ̲NAME
END
BEGIN
MODE ̲TERMINATED = FALSE
EQUIVALENCE(LONG ̲OP.CMD, CMD:CMI ̲COMMANDS ̲TO ̲COPSY)
CC = 0
CASE CMD OF
DELETE ̲CIF? EQUIVALENCE(LONG ̲OP.(INF(2),CIF:CIF
̲ID)
DELETE ̲SPECIFIC ̲CIF(CIF ̲NAME)
OPERATOR ̲ONLY ̲TERMINATED?
EQUIVALENCE (LONG ̲OP.INF(2).BYTE,
CLOSE ̲MODE:CLOSE
̲TYPE)
CLOSE MODE EQ CONTINUE?
MODE ̲TERMINATED
= TRUE
CLOSE ̲DOWN ̲TERMINATED?
WDP ̲CONTROL(RESET, PU ̲NO, NIL)(CC)
PU ̲DOWN (ORDERED ̲CLOSE, NIL)
"programmed master
clear
LOAD ̲MODIFIED ̲SW? EQUIVALENCE(LONG ̲OP ̲INF(2),
PARAMS:SW ̲TO
̲BE ̲LOADED)
COPY ̲MODIFIED ̲SOFTWARE (PARAMS)
(COPY
̲INF)
COPY ̲INF.CC EQ 0?
COPY ̲INF.DISK EQ MIRRORED1?
PU ̲DOWN(COPY ̲MODIFIED,COPY
̲INF)
REPORT ̲ERROR(COPY ̲MODIFIED,COPY
̲INF)
CC = COPY ̲INF.CC
PRINT ̲SW ̲VERSION? EQUIVALENCE(LONG ̲OP.INF(2)
DISK ̲SPEC:DISK ̲SW ̲VERSION)
PRINT ̲SW ̲VERSIONS ̲OP ̲CMD(DISK
̲SPEC)
(INF.CC,INF.FILE)
INF.CC EQ 0?
DISK ̲SPEC EQ OFFLINE ̲SW?
REPORT ̲ERROR
(LOAD ̲PATCH ̲HEADER,INF)
CC = INF.CC
PU ̲DOWN(LOAD ̲PATCH ̲HEADER,INF)
DISK ̲DRIVE ̲ASSIGNMENT? EQUIVALENCE(LONG ̲OP.INF(2),
NEW ̲REC: DISK ̲PARAM)
DISK ̲HANDLE(NEW ̲REC)
OTHER? CC = NOT ̲ALLOWED ̲IN ̲OPERATOR ̲ONLY ̲MODE
END ̲CASE
SEND ̲SSC ̲REPLY(LONG ̲OP.REF,LONG ̲OP.INF(1), CC)
END ̲OPERATOR ̲ONLY ̲CMDS
Fig. 4.2.9.4.11.5-2
PROCEDURE
DELETE ̲SPECIFIC ̲CIF (CIF ̲NAME: CIF ̲REFERENCE ̲NUMBER)(CC)
VAR CIF ̲REF: VIEW ̲REFERENCE
ATTRIBUTES: QEL ̲ATTRIBUTES
QUEUE: SUBQUEUE ̲REFERENCE
FIRST: BOOLEAN
BEGIN
FIRST=TRUE
LOOP
GET ̲CIF(CIF ̲NAME)(CIF ̲REF,ATTRIBUTES,QUEUE,CC)
CASE CC OF
NO ̲QEL ̲FOUND? FIRST EQ TRUE ? CC=NO ̲CIF
̲FOUND
CC = [
EXIT
OTHER? ANALYZE ̲ERROR(CC,0)
END ̲CASE
DISMANTLE ̲VIEW(CIF ̲REF)(CC)
CC NE 0? ANALYZE ̲ERROR(CC,0)
FIRST = FALSE
END ̲LOOP
END ̲DELETE ̲SPECIFIC ̲CIF
Fig. 4.2.9.4.11.5-3
PROCEDURE
DISK ̲HANDLE (NEW ̲REC : DISK ̲PARAM)
VAR OLD ̲REC : DISK ̲PARAM
VAR ACTION : DISK ̲ACTION
BEGIN
KEY ̲BUF.KEY = NEW ̲REC.DISK
SEARCH ̲ENTRY(DISK ̲TABLE,KEY ̲BUF,ALL ̲MASK,SEND ̲BUF)(OLD
̲REC)
CASE NEW ̲CMD. DISK OF
MIRRORED1,
MIRRORED2?- ACTION=NOT ̲LEGAL
FLOPPY ̲DISK?- ACTION=FLOPPY ̲DISK ̲ACTION ̲TABLE
(OLD ̲REC.STATUS,NEW ̲REC.STATUS))
OFFLINE ̲DISK?- ACTION=NOT ̲LEGAL
END CASE NEW ̲CMD.DISK
ACTION EQ NO ̲OP? CC=NO ̲OPERATION
ACTION EQ REFUSE? CC=STATUS ̲CHANGE ̲ILLEGAL
ACTION EQ NOT ̲LEGAL? CC=NOT ̲ALLOWED ̲IN ̲OPERATOR ̲ONLY
̲MODE
ACTION EQ UPDATE?
CC=EXEC ̲OK
UPDATE ̲ENTRY(DISK ̲TABLE,SEND ̲BUF,KEY ̲BUF,ALL
̲MASK,
NEW ̲REC)
FLOPPY ̲DISK ̲ACTION (ACTION) (CC)
SEND ̲SSC ̲REPLY (Q ̲CONTENTS, CMI ̲QEL,CC)
END
Figure 4.2.9.4.11.5-4
PROCEDURE FLOPPY ̲DISK ̲ACTION(ACTION:DISK ̲ACTION)(CC: INTEGER)
BEGIN
CASE ACTION OF
MOUNT ̲A? MOUNT ̲DISK(NEW ̲REC.DISK, NEW ̲REC.VOLUME)(CC)
CASE CC OF
IN ̲VOLUME? NEW ̲REC.STATUS=VOLUME ̲ERROR
CC=HW ̲ERROR
IN ̲DISK? NEW ̲REC.STATUS=DISK ̲ERROR
CC=HW ̲ERROR
WRONG ̲VOLUME ̲NAME?
CC=WRONG ̲VOLUME ̲NAME ̲X
VOLUME ̲NAME ̲IS ̲USED?
CC ̲VOLUME ̲NAME ̲IS ̲USED
̲X
END CASE
DISMOUNT A? DISMOUNT ̲DISK(NEW ̲REC.DISK,NEW ̲REC.VOLUME)(CC)
CASE CC OF
IN ̲VOLUME? NEW ̲REC.STATUS=VOLUME
̲ERROR
CC=HW ̲ERROR
IN ̲DISK? NEW ̲REC.STATUS=DISK
̲ERROR
CC=HW ̲ERROR
NON ̲EXISTING ̲VOLUME?
CC=NON ̲EXISTING ̲VOLUME
̲X
END ̲CASE
ASSIGN ̲A? ASSIGN ̲DISK(NEW ̲REC.DISK)(NIL)
DEASSIGN ̲A? DEASSIGN ̲DISK(NEW ̲REC.DISK)(NIL)
END CASE
CC NE [ AND CC NE HW ̲ERROR?
KEY ̲BUF.KEY = NEW ̲REC.DISK
UPDATE ̲ENTRY(DISK ̲TABLE,SEND ̲BUF,KEY ̲BUF,ALL ̲MASK,NEW
̲REC)
CONF ̲DISPLAY (SET ̲STATUS,FLOP ̲DISK, NEW ̲REC.STATUS)
END ̲FLOPPY ̲DISK ̲ACTION
Figure 4.2.9.4.11.5-5
4.2.9.4.12 S̲U̲P̲E̲R̲V̲I̲S̲O̲R̲ ̲O̲N̲L̲Y̲ ̲M̲O̲D̲E̲
4.2.9.4.12.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The supervisor only made is entered in WARM1 start-up,
if so specified in the start command.
The supervisor only mode requires the following peripherals.
- supervisor VDU - supervisor
printers
In the supervisor only mode the message queue contents
is frozen and the only commands applicable are the
- supervisor queue control at restart commands.
The supervisor only mode is left, when the supervisor
enters the CAMPS ̲GO command, which is sent to the SYQ.
Having received this the
- supervisor VDUs are signed off
- supervisor printers are stopped.
4.2.9.4.l2.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SUPERVISOR ̲ONLY ̲MODE
b) SUPERVISOR ̲ONLY ̲MODE (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲r̲e̲g̲i̲s̲t̲e̲r̲
R6 link
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0..R7 (destr.)
4.2.9.4.l2.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
The supervisor ̲only ̲modr module contains and references
to procedures are specified in figure 4.2.9.4.l2.3-1
Fig. 4.2.9.4.12.3-1…01…SUPERVISOR ̲ONLY ̲MODE MODULE COMPONENTS
4.2.9.4.l2.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a1) T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
TERMINAL ̲P, DEVICE ̲P,
START ̲SUPV, STOP ̲SUPV,
CFH ̲SUBTYPE,
COPSY ̲GARBLE ̲PARAMS : SSC.COMMON
SUPERVISOR ̲PRINTER ̲PARAMETER ̲TYPE,
CAMPS ̲GO : DBD
a2) C̲o̲n̲s̲t̲a̲n̲t̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
SERVE ̲CFH ̲OS ̲IN ̲SUPU ̲ONLY ̲MODE ̲PROC = CFH. VARIOUS
a3) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
CAMPS ̲PHASE,
CFH ̲OS, LONG ̲OS : SSC. COMMON
SUPV ̲ROPS,
LONG ̲OP : CFH.VARIOUS
a4) T̲a̲b̲l̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
LOG ̲D ̲TO ̲LOCAL : SSC.COMMON
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR I,J: INTEGER
VAR LOCAL ̲DNO: l.. NO ̲OF ̲SADS
VAR FOUND: BOOLEAN
VAR FURTHER ̲ACTION: BOOLEAN
VAR G ̲INF : COPSY ̲GARBLE ̲PARAMS
4.2.9.4.l2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
a) S̲U̲P̲E̲R̲V̲I̲S̲O̲R̲-̲O̲N̲L̲Y̲-̲M̲O̲D̲E̲ ̲
The procedure requests
- start of supervisor VDU subprocesses
- start of the supervisor printer subprocesses
- awaits the supervisor CAMPS ̲GO command
- stop of supervisor VOV subprocesses
- stop of supervisor printers
b) S̲T̲A̲R̲T̲-̲S̲T̲O̲P̲-̲S̲U̲P̲E̲R̲V̲I̲S̲O̲R̲S̲
Signals to the TEMCO coroutines l and 2, which
administers the supervisor VOU subprocesses.
c) S̲T̲A̲R̲T̲-̲S̲T̲O̲P̲-̲S̲U̲P̲V̲-̲R̲O̲P̲S̲
Signals to the DEMCO coroutives, (specified in
system parameters) which administeres the supervisor
printers.
d) S̲E̲R̲V̲E̲-̲C̲F̲H̲-̲ ̲O̲S̲-̲I̲N̲-̲S̲U̲P̲V̲-̲O̲N̲L̲Y̲-̲M̲O̲D̲E̲
The procedures serves the CFH ̲OS and performes
a dispatch.
Hardware errorhandling is supported.
The only allowed supervisor command is the CAMPS
̲GO command.
e) C̲M̲I̲-̲C̲M̲D̲S̲-̲I̲N̲-̲S̲U̲P̲V̲-̲O̲N̲L̲Y̲-̲M̲O̲D̲E̲
The commands are returned.
d) S̲U̲P̲V̲-̲C̲M̲D̲S̲-̲I̲N̲-̲S̲U̲P̲V̲-̲O̲N̲L̲Y̲-̲M̲O̲D̲E̲
The only supervisor command is
- CAMPS ̲GO
which makes COPSY enter online operation.
PROCEDURE SUPERVISOR ̲ONLY ̲MODE
BEGIN
CAMPS ̲PHASE=SUPERVISOR ̲ONLY ̲PHASE
START ̲STOP ̲SUPERVISORS (START ̲SUPV)
GET ̲SYSTEM ̲PARAMS (SUPV ̲PRINTER ̲PARAMETER) (SUPV ̲ROPS)
START ̲STOP ̲SUPV ̲ROPS (SUPV ̲ROPS,START ̲SUPV)
SERVE ̲CFH ̲OS ̲IN ̲SUPV ̲ONLY ̲MODE
START ̲STOP ̲SUPERVISORS (STOP ̲SUPV)
START ̲STOP ̲SUPV ̲ROPS (SUPV ̲ROPS, STOP ̲SUPV)
END ̲SUPERVISOR ̲ONLY ̲MODE
Figure 4.2.9.4.l2.5 ̲l…86…1 …02… …02… …02… …02… …02… …02…
PROCEDURE START ̲STOP ̲SUPERVISORS (CMD:CFH ̲SUBTYPE)
BEGIN
NOTIFY ̲LINE ̲COROUTINE (TERMINAL ̲P,l, CMD,0)
NOTIFY ̲LINE ̲COROUTINE (TERMINAL ̲P,2, CMD,0)
END ̲START ̲STOP ̲SUPERVISORS
Fig. 4.2.9.4.12.5-2
PROCEDURE START ̲STOP ̲SUPV ̲ROPS(SUPV ̲ROPS:SUPV ̲PRINTER
̲PARAMETER ̲TYPE,
CMD: CFH ̲SUBTYPE)
VAR I,J: INTEGER
VAR LOCAL ̲DNO: l..NO ̲OF ̲SADS
VAR FOUND: BOOLEAN
BEGIN
EQUIVALENCE (SUPV ̲ROPS, ROPS : ARRAY (l..4))
I = O
LOOP ̲I
I = I + l
LOCAL ̲DNO = LOG ̲D ̲TO ̲LOCAL(ROPS (I))
"Examine if ROP is already started"
J = 0
FOUND = FALSE
LOOP J
J = J + l
J GE I? EXIT
ROPS(J)EQ ROPS(I) ? FOUND = TRUE , EXIT
END ̲LOOP ̲J
FOUND EQ TRUE?
NOTIFY ̲LINE ̲COROUTINE(DEVICE ̲P,LOCAL ̲DNO,
CMD,0)
I EQ 4 ? EXIT
END ̲LOOP ̲I
END ̲START ̲STOP ̲SUPV ̲ROPS
Figure 4.2.9.4.12.5-3
PROCEDURE SERVE ̲FH ̲OS ̲IN ̲SUPV ̲ONLY-MODE
VAR FURTHER ̲ACTION: BOOLEAN
VAR G ̲INF: COPSY ̲GARBLE ̲PARAMS
INIT G ̲INF. ERROR ̲TYPE = COPSY ̲LONG ̲ERROR
G ̲INF. USER ̲ACTION = CONTINUE
G ̲INF. ERROR ̲COR = CFH ̲COR
G ̲INF. ERROR ̲LOC = SERVE ̲CFH ̲OS ̲IN ̲SUPV ̲MODE ̲PROC
BEGIN
FURTHER ̲ACTIONS = FALSE
LOOP
WAIT ̲OPSEM (CFH ̲OS)(LONG ̲OP)
CASE LONG ̲OP. CMD ̲TYPE OF
DEVICE ̲ERROR,
WDP ̲CMD? HW ̲ERROR ̲HANDLING (LONG ̲OP)
CMI ̲CMD ̲L? CMI ̲CMDS ̲IN ̲SUPV ̲ONLY ̲MODE
SUPV ̲CMD? SUPV ̲CMDS ̲IN ̲SUPV ̲ONLY ̲MODE (FURTHER
̲ACTION)
OTHER? G ̲INF. ERROR ̲INFO(l) = CMD ̲TYPE ̲ERROR
COPSY ̲SEND ̲GARBLE(LONG ̲OP, G ̲INF)
END CASE LONG ̲OP.CPH.MAINTYPE
SIGNAL ̲OPSEM(LONG ̲OS, LONG ̲OP)
FURTHER ̲ACTION EQ TRUE? EXIT
END ̲LOOP
END ̲SERVE ̲CFH ̲OS ̲IN ̲SUPV ̲ONLY ̲MODE
Fig. 4.2.9.4.12.5-4…86…1 …02… …02… …02… …02… …02… …02…
PROCEDURE CMI ̲CMDS ̲IN ̲SUPV ̲ONLY ̲MODE
BEGIN
CC = RUNNING ̲IN ̲SUPV ̲ONLY ̲MODE
SEND ̲SSC-REPLY(LONG ̲OP.REF,LONG-OP ̲INF (l),(CC)
"REF indicates whether the queue element specified
in INF(l) references a buffer or queue info
END ̲CMI ̲CMDS ̲IN ̲SUPV ̲ONLY ̲MODE
Figure 4.2.9.4.l2.5-5…86…1 …02… …02… …02… …02… …02… …02…
PROCEDURE SUPV ̲CMDS ̲IN ̲SUPV ̲ONLY ̲MODE (FURTHER ̲ACTION:
BOOLEAN)
BEGIN
LONG ̲OP.CMD EQ CAMPS ̲GO?
FURTHER ̲ACTION = TRUE
CC = OK
CC = ILLEGAL ̲COMMAND
SEND ̲SSC ̲REPLY (LONG ̲OP.REF, LONG ̲OP.INF(l),CC)
END ̲SUPV ̲CMDS ̲IN ̲SUPV ̲ONLY ̲MODE
Figure 4.2.9.4.l2.5 - 6
4.2.9.5.…02…C̲O̲M̲M̲O̲N̲ ̲C̲F̲H̲ ̲D̲A̲T̲A̲
The CFH data is divided into
- CONFIG segment data
- load file data
- inherit data
- various
4.2.9.5.l. C̲O̲N̲F̲I̲G̲ ̲s̲e̲g̲m̲e̲n̲t̲ ̲d̲a̲t̲a̲
The CONFIG segment contains data to be used in creation
of
- processes
- the mirrored disks
- inheritance data
It contains the following tables, which are defined
below
- PROCESS CONF
- MIRRORED ̲DISK ̲CONF
- TMP ̲LOAD ̲TABLE
- CSF ̲LOAD ̲TABLE
- TMP ̲ENVIRONMENT
- CSF ̲ENVIRONMENT
4.2.9.5.l.l. P̲R̲O̲C̲E̲S̲S̲ ̲D̲A̲T̲A̲
COPSY childsprocesses are created based upon configuration
data for each child process type.
(refer overleaf)
The following abbreviations are used.
- PS : program segment
- DS : data segment
- PPS : process parameter segment
The PROCESS ̲CONF contains
- file names for PS,DS are PPS
- params to be used during CREATE ̲SEGMENT
- a P ̲C ̲B to be used during CREATE ̲PROCESS
- a RESOURCES specification to be used during
CREATE PROCESS
- attributes to define a subprocess to CSF
- the MAX ̲COUNT i.e. number of errors detect-
ed, before the process is retired
- the errortype (VITAL,DUMMY,RETIRABLE) for
the childprocess
- the TMS funtions, which the new process may
execute. Specified during OFFER
- a TMS resource specification to be used
during USER ̲ON
- specify if FMS ̲FIXED and/or FMS ̲MAING is used.
If so,
- specify resources to be used during USER ̲ON
VAR PROCESS ̲CONF = ARRAY (CHILD ̲PROCESS ̲TYPE) of
PROCESS ̲CONF ̲TYPE
TYPE PROCESS ̲CONF ̲TYPE =
RECORD
PS ̲FILE,
DS ̲FILE,
PPS ̲FILE : FILE ̲NAME
PS ̲PARAMS,
DS ̲PARAMS,
PPS ̲PARAMS : SEGMENT ̲ATTR
̲TYPE
P ̲C ̲B : PROCESS ̲CREATION
̲BLOCK
RESOURCES : RAT ̲SPEC
ATTRIBUTES : SUBPROCESS ̲ATTRIBUTES
MAX ̲COUNT : INTEGER
E ̲TYPE : ERROR ̲PROCESS
̲TYPE
CHILD ̲TMS ̲ACCESS ̲RIGHTS : ACCESS ̲TYPES
TMS ̲RESOURCES ̲SPEC : FMS ̲RESOURCE
̲SPEC
FIXED ̲USED : BOOLEAN
FMS ̲FIXED ̲RESOURCES : FMS ̲RESOURCE
̲SPEC
MOVING ̲USED : BOOLEAN
FMS ̲MOVING ̲RESOURCES : FMS ̲RESOURCE
̲SPEC
END
4.2.9.5.l.2 M̲i̲r̲r̲o̲r̲e̲d̲ ̲d̲i̲s̲k̲ ̲d̲a̲t̲a̲
The mirrored disk data consists of
- FMS CREATE, ENTER, PROTECT data to be used
during creation of files on an empty mirrored
disk
a) M̲i̲r̲r̲o̲w̲e̲d̲ ̲d̲i̲s̲k̲ ̲c̲o̲n̲f̲i̲g̲u̲r̲a̲t̲i̲o̲n̲ ̲d̲a̲t̲a̲
The data describes:
- the files to be created and inserted in the
Root directory. For each file is specified
a name and a protect list defining
- users of the file
- access rights of the users
- a number of directories to be created and inserted
in the ROOT directory.
For each directory is specified a number of
files to be created and entered into the directory.
Also a protect list per file is specified.
TYPE PROTECT ̲LIST =
RECORD
MAX ̲TO ̲PROTECT: INTEGER
ACC: ARRAY (l..MAX
̲TO ̲PROTECT)OF
ACCESS ̲DESCRIPTION.
END
CREATE ̲SINGLE =
RECORD
ATTR : NEW ̲ATTRIBUTES
NAME : FILE ̲NAME
PROT : PROTECT ̲LIST
END
CREATE ̲LIST =
RECORD
MAX ̲TO ̲CREATE : INTEGER
C ̲SINGLE: ARRAY (l..MAX ̲TO ̲CREATE)
OF
CREATE ̲SINGLE
END
DIRECTORY ̲LIST =
RECORD
CREATE ̲DIRECTORY : CREATE ̲SINGLE
CREATE ̲FILES : CREATE LIST
END
VOLUME ̲DESCR =
RECORD
FILES ̲IN ̲ROOT : CREATE ̲LIST
MAX ̲OWN ̲DIRECTORIES : INTEGER
D ̲LIST : ARRAY(l..MAX
̲OWN ̲DIRECTORIES)
OF DIRECTORY
̲LIST
END
MIR ̲CONF=
RECORD
FIXED ̲VOL ̲CONF : VOLUME ̲DESCR
MIR ̲VOL ̲CONF : VOLUME ̲DESCR
END
VAR MIRRORED ̲DISKS ̲CONF : MIR ̲CONF
4.2.9.5.l.3 I̲n̲h̲e̲r̲i̲t̲a̲n̲c̲e̲ ̲T̲a̲b̲l̲e̲s̲
The inheritance date consists of
- a TMP ̲LOAD ̲TABLE
- a CSF ̲LOAD ̲TABLE
- a CFS ̲ENVIRONMENT
- a TMP ̲EMVIRONMENT
a) T̲M̲P̲ ̲L̲o̲a̲d̲ ̲T̲a̲b̲l̲e̲
VAR TMP
̲LOAD
̲TABLE
:
TMP
̲LOAD
̲TYPE
The table defines the object indexes
to be used by
TMP to address a given subprocess
- TMP ̲RSE(response syncronization
element)
- DS (data segment)
b) C̲S̲F̲ ̲L̲o̲a̲d̲ ̲T̲a̲b̲l̲e̲
VAR CSF
̲LOAD
̲TABLE
:
CSF
̲LOAD
̲TYPE
The table defines the object indices
to be used by CSF to address a given
subprocess'
- MMON-RSEs
c) C̲S̲F̲ ̲E̲n̲v̲i̲r̲o̲n̲m̲e̲n̲t̲
VAR CSF
̲ENVIRONMENT
:
CSF
̲ENVIRONMENT
̲TYPE
Specifies the objects to be inherited
by CFS i.e.
- objects defined by global inherit
constants
- all MMON ̲RSE
and corresponding capabilities.
d) T̲M̲P̲ ̲E̲n̲v̲i̲r̲o̲n̲m̲e̲n̲t̲
VAR TMP
̲ENVIRONMENT
:
TMP
̲ENVIRONMENT
̲TYPE
TYPE TMP
̲ENVIRONMENT
̲TYPE
=
RECORD
HEAD
:
ENV
̲TEMPLATE
̲HEAD
ELEMS
:
ARRAY
(l..TMP
̲ELEMS)
OF
HERITAGE
̲ELEM
END
CONST
TMP ̲ELEMS = GLOBAL ̲INH ̲SIZE
+ 2 x PROCESS ̲INH ̲SIZE
Specifies the objects to be inherited
by TMP i.e.
- objects defined by global inherit
constants
- all TMP ̲RSE object indexes
- all DS(data segment) object indexes
and corresponding capabilities.
4.2.9.5.2 L̲o̲a̲d̲ ̲F̲i̲l̲e̲ ̲D̲a̲t̲a̲
The load file date describes
- file name lists
- patch data
- DAMOS load file headers
4.2.9.5.2.l F̲i̲l̲e̲ ̲N̲a̲m̲e̲ ̲L̲i̲s̲t̲
a) L̲O̲A̲D̲ ̲F̲I̲L̲E̲ ̲L̲I̲S̲T̲
CONST MAX
̲LOAD
̲FILES
=
VAR LOAD
̲FILE
̲LIST=
ARRAY(l..MAX
̲LOAD
̲FILES)OF
FILE
̲NAME
Contains the filenames for the files
in the
-INITIAL ̲SSC/MODIFIED ̲SSC
directories.
b) F̲o̲r̲m̲a̲t̲ ̲N̲a̲m̲e̲ ̲L̲i̲s̲t̲
VAR FORMAT
̲NAME
̲LIST
=
ARRAY
(l..MAX
̲FORMAT
̲FILES)
OF
FILE
̲NAME
c) P̲A̲T̲C̲H̲ ̲F̲I̲L̲E̲ ̲N̲A̲M̲E̲ ̲L̲I̲S̲T̲
VAR PATCH ̲FILE ̲NAME ̲LIST = ARRAY (l..MAX
̲PATCH ̲FILES)
OF
FILE
̲NAME
d) L̲T̲U̲ ̲F̲W̲ ̲N̲A̲M̲E̲ ̲L̲I̲S̲T̲
VAR LTU
̲FW
̲NAME
̲LIST
=
ARRAY
(NICS-TARE
̲LOCAL..
SCARS
̲CCIS)OF
FILE
̲NAME
4.2.9.5.2.l P̲A̲T̲C̲H̲ ̲D̲A̲T̲A̲
VAR PATCH ̲TABLE = ARRAY(l..MAX
̲PATCH ̲FILES) OF
RECORD
PROC ̲TYPE : CHILD ̲PROCESS ̲TYPE
SEG ̲TYPE : SEG
VERSION : INTEGER
END
Contains an extract of the information
in the patchfileheader. Set by the
- SET ̲PATCH ̲TABLE procedure
VAR PATCH ̲MASK: INTEGER
"Bit I set implies that PATCHFILE (I)
is to be used during start-up.
The PATCH ̲MASK is set by the operator
in the start-up command.
TYPE PATCH ̲FILE ̲HEADER =
RECORD
MEM ̲OFF ̲SET: INTEGER words
segment off-set
SIZE: INTEGER
no of words in patch
CHECKSUM: INTEGER
Sum of the patchfile
words
VERSION: INTEGER
PROC ̲TYPE: CHILD ̲PROCESS ̲TYPE
SEG ̲TYPE : SEG
only PROGRAM,DATA
and PPS are applicable
END
Describes the fileheader information for
a single patchfile.
4.2.9.5.2.3 L̲o̲a̲d̲ ̲F̲i̲l̲e̲ ̲H̲e̲a̲d̲e̲r̲
A CAMPS load file is organized as shown
below, as it only contains one segment:
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
LOAD
̲FILE ̲HEADER
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
FILE ̲SIZE SEGMENT
̲HEADER
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
SEGMENT(S)
(object
code)
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
TYPE
BOUND ̲ENV =
RECORD:
BOUNDS: BOUNDS;
ENVIRONMENT: INTEGER; "pointer to env ̲template
(ODT)
"relative to start of
PPS
END;
This type is impressed the PARAM ̲STACK in the PPS during
system generation and the
- BOUNDS
- Environment
are initialized.
The LOAD ̲SEGMENT module copies the
- BOUNDS
- Environment
into the PROGRESS ̲CONFIG ̲P ̲C ̲B during PPS load.
4.2.9.5.3 I̲n̲h̲e̲r̲i̲t̲a̲n̲c̲e̲ ̲D̲a̲t̲a̲
The inheritance data here specified are a supplement
to the inheritance tables in section 4.2.9.5.l.4.
They includes the COMMON ̲ENVIRONMENT table, which is
not included in the CONFIG segment.
4.2.9.5.3.1 C̲O̲M̲M̲O̲N̲ ̲E̲N̲V̲I̲R̲O̲N̲M̲E̲N̲T̲
VAR COMMON ̲ENVIRONMENT : COMMON ̲ENVIRONMENT ̲TYPE
TYPE COMMON ̲ENVIRONMENT ̲TYPE =
RECORD
HEAD : ENV ̲TEMPLATE ̲HEAD
ELEMS: ARRAY(l..CSF ̲SHARED ̲SEGM) OF HERITAGE
̲ELEM
END
INIT
"COMMON ̲INVIRONMENT. HEAD. MAX ̲ENTRIES = defined locally
COMMON ̲ENVIRONMENT.HEAD. HERITAGE ̲SIZE= GLOBAL ̲INH
̲SIZE
COMMON ̲ENVIRONMENT.ELEMS(i).INDEX = i
COMMON ̲ENVIRONMENT.ELEMS(i). CV = refer overleaf
The common invironment contains the objects specified
in the "global inherit constants".
The objects are inherited to all COPSY child processes.
4.2.9.5.3.2 V̲a̲r̲i̲o̲u̲s̲ ̲I̲n̲h̲e̲r̲i̲t̲a̲n̲c̲e̲ ̲d̲a̲t̲a̲
CONST GLOBAL ̲INH ̲SIZE = CSF ̲SHARED ̲SEGM
Number of objects inherited to any child process.
CONST PROCESS ̲INH ̲SIZE = NO ̲OF ̲PROCESSES-COPSY ̲P
̲NO+l
Number of child processes plus COPSY
CONST DS ̲CV =
data segment capability vector
(access rights
for a child)
CONST PS ̲CV =
program sequent capability vector
CONST PPS-̲CV =
PPS capability vector
CONST SYNC ̲EL ̲CV =
syncronization element capability
vector
4.2.9.5.4 V̲A̲R̲I̲O̲U̲S̲ ̲C̲F̲H̲ ̲C̲O̲M̲M̲O̲N̲ ̲D̲A̲T̲A̲
TYPE INH ̲OBJS =
RECORD
MMON ̲RSE : OBJ ̲INDEX
QMON ̲RSE : OBJ ̲INDEX
TMP ̲RSE : OBJ ̲INDEX
PS ̲OBJ : OBJ ̲INDEX
DS ̲OBJ : OBJ ̲INDEX
PPS ̲OBJ : OBJ ̲INDEX
END
Specifies the object indexes to be created
by CFH per process.
The objects are saved in the PROCESS ̲TABLE,
where each entry is impressed INH ̲OBJS
type.
VAR SEGM ̲CONFIG =
RECORD
CONFIG ̲FILE : FILE ̲NAME
CONFIG ̲VERSION = ARRAYS (INIT
̲APPL ̲SW..MODI ̲APPL ̲SW)
OF INTEGER
TMP ̲SHARED ̲FILE : FILE ̲NAME
CSF ̲SHARED ̲FILE : FILE ̲NAME
END
Contains data for the CONFIG,TMP ̲SHARED
and CSF ̲SHARED files
TYPE SEG =
(PROGRAM ̲SEG,
DATA ̲SEG,
PPS ̲SEG,
TMP ̲SHARED ̲SEG,
CSF ̲SHARED ̲SEG,
CONFIG ̲SEG,
GET ̲ENTRYPOINT ̲SEG,
RESTORE ̲SEG)
Identifies the types of segments handled.
VAR WRK : ARRAY (1..256) OF INTEGER
Used for temporary storage.
VAR STI ̲CON : FDCB ̲INDEX
Handle of the STI received during ASSIGN.
VAR TIA ̲CON : FDCB ̲INDEX
Handle of the TIA received during CREATE
̲SUBDEVICE
VAR ASSIGN ̲REC : NEW ̲TMS ̲DEVICE (IOS.TMS)
Record used during ASSIGN of STI,TIA,MAP
device.
VAR DEVICE ̲REC : NEW ̲TMS ̲SUBDEVICE
(IOS.TMS)
Record used during CREATE ̲SUBDEVICE of
LTUs and TIAs
VAR START ̲DTG : DTG ̲TYPE
Start-up time specified by operator
VAR OPERATOR ̲ONLY, SUPERVISOR ̲ONLY:
BOOLEAN
Specifies if the operator only/supervisor
only
mode is to be entered.
VAR START ̲UP ̲TYPE ̲D : START ̲UP ̲TYPE
The type of start-up as specified by the
operator
VAR LOAD ̲SW ̲TYPE : INITIAL ̲SW.MODIFIED
̲SW
The operator specification of whether
COPY child-processes
are to be started from the SSC ̲DIR ̲INITIAL
or SSC ̲
DIR ̲MODIFIED directory.
VAR COUNT ̲ANSWER : LONG ̲OP ̲TYPE
Used when COUNT signals to CFH-OS.
The CMD ̲TYPE and CMD indicate the answer.
VAR NO ̲OF ̲OUTSTANDING ̲ANSWERS: INTEGER
set by CFH and decremented by COUNT. It
defines the COPSY Coroutines not having
signalled to CFH ̲S.
VAR KEY ̲BUF : SINGLE PARAM
Used for searching in a table
VAR SEND ̲BUF: TMP ̲PARAM
Used for searching in a table
VAR READ ̲MASK : BIT ̲MASK
Used for searching in a table
VAR LONG ̲OP : LONG ̲OP ̲TYPE
TYPE
CLOSE ̲DOWN ̲TYPE = (ORDERED ̲CLOSE ̲DOWN,
ORDERED
̲SWITCHOVER)
Used during operator command handling
to distinguish ordered closedown from
ordered switchover.
TYPE
PHASE ̲TYPE : (INITIAL,FINAL,LINE ̲PROCESSES,
COPSY ̲ENVIRONMENT,CLEANED
̲UP,TERMINATE)
Defines the close-down phases.
VAR SUPV ̲ROPS : SUPV ̲PRINTER ̲PARAMETER
̲TYPE
Contain the supervisor printers.
Set during supervisor only mode and is
used by the
CHAIN ̲CONF ̲DISPLAY procedure to determine
if a supervisor printer is errorneous.
PROFILE ̲OUT =
RECORD
NO : INTEGER
CONNECTED : BOOLEAN
END
Used to extract the logical no and connected
fields from a profile.
TYPE
LOAD ̲IN ̲TYPE =
RECORD
FILE : FILE ̲NAME
SEG ̲SIZE : LPN
SEG ̲TYPE : SEG
SUBP ̲TYPE : SUBPROCESS ̲TYPE
G ̲PROC : l..NO ̲OF ̲PROCESSES
SSC ̲DIR : FDCB ̲INDEX
START ̲UP ̲DIR : FDCB ̲INDEX
NO ̲OF ̲CHILD ̲OBJ: INTEGER
SEGM : OBJ ̲INDEX
END
Specifies data transferred to the LOAD ̲SEGMENT module
to load a segment.
The following information are specified
- filename
- size of memory segment in pages
- segment type
- subprocess type containing the segment
- CAMPS process no.
- directory for the SSC ̲DIR (used to look-up patchfiles)
- directory for the above file
- number of objects in the child object descriptor
table
- an object index for the segment to be loaded
VAR TRACE ̲FMS ̲RESOURCES : FMS ̲RESOURCE ̲SPEC
Resources to be used to USER ̲ON a process,
which is to generate trace output.
CONST GARBLE = ADDRESS ("GARBLE")
The filename of the GARBLE file
VAR ACTIVE ̲TDX ̲BUS ̲NO = l..2
Specifies the active TDX bus number
TYPE
COPY ̲INF ̲TYPE =
RECORD
CC : INTEGER
FILE : FILE ̲NAME error
file
FM ̲TO : (FM,TO) error
in the source or
destination
indication.
END
Specifies return information from some
high level common CFH disk procedures.
TYPE
MODIFY ̲INF =
RECORD
CC : INTEGER
FILE : FILE ̲NAME error
file
DISK : OPERATOR ̲DISK "error
disk"
END
Specifies return information from some
high level disk common CFH procedures.
CONST DEFINE ̲Q ̲PROFILES
̲PROC
=
l
AWAIT ̲GO ̲ACTIVE
̲PROC
= 2
CMI ̲COMMANDS
̲PROC
= 3
ONLINE ̲OPERATION
̲PROC
=
4
OPERATOR ̲ONLY
̲CMDS ̲PROC
= 5
SERVE ̲CFH
̲OS ̲IN ̲SUPV
̲ONLY ̲MODE
̲PROC = 6
TMS ̲ERRORHANDLING
̲PROC
=
7
CCB ̲REPORT
̲HANDLING ̲PROC
= 8
CLOSE ̲DOWN
̲PROCESS ̲PROC
= 9
Procedure specification in CFH garble
reports.
CONST CMD ̲TYPE ̲ERROR
= l
CMD ̲ERROR
= 2
U ̲SDID ̲PROFILE
̲ERROR
= 3
WDP ̲REP ̲ERROR
= 4
ANSWER ̲ERROR
= 5
User info specifications in CFH garble
reports.
VAR MIRRORED ̲DISK ̲ACTION ̲TABLE: ACTION
̲TABLE refer fig. 4.2.9.5.4-1. Used
to determine the action to be perfomred
on a mirrored disk
VAR FLOPPY ̲DISK ̲ACTION ̲TABLE: ACTION ̲TABLE
refer fig. 4.2.9.5.4-1. Used to determine
the action to be performed on a floppy
disk.
VAR OFFLINE ̲DISK ̲ACTION ̲TABLE: ACTION
̲TABLE refer fig. 4.2.9.5.4-2. Used
to determine to action to be performed
on an offline disk.
TYPE DISK ̲ACTIONS = (NO ̲OP,
REFUSE,
UPDATE,
ASSIGNE,
INCLUDE,
DISCARD,
MOUNT,
DISMOUTN)
TYPE ACTION ̲TABLE = ARRAY (DISK ̲STATUS) OF
ARRAY (DISK ̲STATUS) OF
DISK ̲ACTIONS
Figure 4.2.9.5.4-1 DISK DECISION TABLES
Figure 4.2.9.5.4-2 DISK DECISION TABLES
CONST MAX ̲MIRRORED ̲MOVING ̲SECTORS =
MAX ̲MIRRORED ̲FIXED ̲SECTORS =
Number of sectors to be copied, when a mirrored disk
is inserted into mirrored operation
CONST FLOPPY ̲DISK ̲HANDLER ̲OBJ ̲INDEX = 0
OFFLINE ̲DISK ̲HANDLER ̲OBJ ̲INDEX = 1
MIR1 ̲MOVING ̲HANDLER ̲OBJ ̲INDEX = 2
MIR1 ̲FIXED ̲HANDLER ̲OBJ ̲INDEX = 3
MIR2 ̲MOVING ̲HANDLER ̲OBJ ̲INDEX = 4
MIR2 ̲FIXED ̲HANDLER ̲OBJ ̲INDEX = 5
INIT FLOPPY ̲DISK ̲ATTR.KIND = FD ̲SINGLE
FLOPPY ̲DISK ̲ATTR.LOGDEV = FLOPPY ̲DISK ̲HANDLER
̲
OBJ ̲INDEX
FLOPPY ̲DISK ̲ATTR.UNIT =
FLOPPY ̲DISK ̲ATTR.SUBUNIT =
OFFL ̲DISK ̲ATTR.KIND = SMD80
OFFL ̲DISK ̲ATTR.LOGDEV = OFFLINE ̲DISK
̲HANDLER ̲
OBJ
̲INDEX
defines assigne parameters for the
- floppy disk
- offline-disk
VAR MIR ̲FIXED ̲ATTR,
MIR ̲MOVING ̲ATTR: LOGICAL ̲DUAL
̲DEVICE
INIT MIR ̲FIXED ̲ATTR(0).KIND = MMD82
MIR ̲FIXED ̲ATTR(0).LOGDEV = MIR1 ̲FIXED ̲HANDLER
̲OBJ INDEX
MIR ̲FIXED ̲ATTR(0).UNIT = 0
MIR ̲FIXED ̲ATTR(0).SUBUNIT= 0
MIR ̲FIXED ̲ATTR(1).KIND = MMD82
MIR ̲FIXED ̲ATTR(1).LOGDEV = MIR1 ̲FIXED ̲HANDLER
̲OBJ INDEX
MIR ̲FIXED ̲ATTR(1).UNIT = 0
MIR ̲FIXED ̲ATTR(1).SUBUNIT= 0
MIR ̲MOVING ̲ATTR(0).KIND = MMD82
MIR ̲MOVING ̲ATTR(0).LOGDEV = MIR1 ̲MOVING ̲HANDLER
̲OBJ INDEX
MIR ̲MOVING ̲ATTR(0).UNIT = 0
MIR ̲MOVING ̲ATTR(0).SUBUNIT= 0
MIR ̲MOVING ̲ATTR(1).KIND = MMD82
MIR ̲MOVING ̲ATTR(1).LOGDEV = MIR1 ̲MOVING ̲HANDLER
̲OBJ INDEX
MIR ̲MOVING ̲ATTR(1).UNIT = 0
MIR ̲MOVING ̲ATTR(1).SUBUNIT= 0
Defines the assigne parameters for the mirrored disks.