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

⟦12ff2a218⟧ Wang Wps File

    Length: 46089 (0xb409)
    Types: Wang Wps File
    Notes: CPS/SDS/029               
    Names: »1808A «

Derivation

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

WangText



…1e……08……1e……09……1e……0d……1e……0e……1e……01……1e……02……1e……06……1e……07……1d……0b……1d……0c……1d……00……1d……01……1d…    …1d……05……1c……08……1c……09……1c……0a……1c……0c……1c……0d……1c……02……1b……09……1b……0a……1b……0c……1b……0d……1b……00……1b……02……1b…
…1b……07……1a……0a……1a……0b……1a……00……1a……02……1a…
…1a……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.5    T̲e̲r̲m̲i̲n̲a̲l̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲



4.2.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 Terminal Monitoring and Control (TEMCO) functions
         are detailed on figure 4.2.5.1-1. The functions performed
         are described in the following sections.



4.2.5.1.1    V̲D̲U̲ ̲C̲o̲n̲t̲r̲o̲l̲

         The VDU Control functions are detailed in figure 4.2.5.1.1-1.



4.2.5.1.1.1 S̲i̲g̲n̲-̲O̲n̲

         The Sign-on functions are decomposed as defined in
         figure 4.2.5.1.1.1-1 overleaf.

         The Sign-on command will result in a log record.

         If the user depresses the SYSTEM key and enters the
         command SION, COPSY prompts the user for the identification
         code and the password in the system line.

         On entry the characters are not displayed.

         If either one or both are invalid, COPSY responds by
         displaying error message 1 (INVALID ENTRY) in the system
         line.

         For the two supervisor positions it is not checked
         if ID code entered is contained in the operator list
         of the terminal profile.

         The absence of a reply within 3 minutes or if after
         three attempts a valid entry is not made, COPSY blocks
         the keyboard (supervisor terminal positions are not
         blocked), and sends a security report to the supervisor
         printer.







            Figure 4.2.5.1-1 to 4.2.5.1.1.1-1



         If ID code and password both are valid, the system
         will present a menu that reflects the user's capabilities
         at the terminal.

         If the user has not any of the possible capabilities
         at the terminal, COPSY will generate an error message
         for a preset period of time, after which the terminal
         is automatically signed off and format K2 is displayed.

         After sign-on the associated release position queue
         and the associated printer queue are updated in the
         capability array of the terminal subprocess.



4.2.5.1.1.2 S̲i̲g̲n̲ ̲O̲f̲f̲

         The sign-off functions are decomposed as defined in
         figure 4.2.5.1.1.2-1 overleaf.

         The sign-off command will result in a log record.

         If the user depresses the SYSTEM key and enters the
         command SIOF, the terminal is returned to unattended
         operation (format K2). The time at which the unattended
         operation commenced will be displayed.



                   Figure 4.2.5.1.1.2-1



4.2.5.1.1.3 A̲s̲s̲i̲g̲n̲

         The assign functions are decomposed as defined in figure
         4.2.5.1.1.3-1 overleaf.

         At system generation time 2 terminal positions are
         designated as supervisor position and one of the two
         terminal positions is assigned as the active supervisor
         position.

         If a supervisor at the inactive supervisor position
         depresses the SYSTEM key and enters the command ASSG
         the terminal position becomes the active supervisor
         position. The effect on the presently active supervisor
         position will be similar to cancel.



                   Figure 4.2.5.1.1.3-1



4.2.5.1.1.4 R̲e̲l̲e̲a̲s̲e̲ ̲S̲e̲c̲u̲r̲i̲t̲y̲ ̲I̲n̲t̲e̲r̲r̲o̲g̲a̲t̲i̲o̲n̲

         The release security interrogation functions are decomposed
         as defined in figure 4.2.5.1.1.4-1 overleaf.

         Invocation of Release security interrogation will result
         in a generation of Statistics.

         The releaser is requested to enter his password in
         the system line. On entry the characters are not displayed.
         If the password is correct, then COPSY responds with
         response message 32 (PASSWORD VALID).

         If the password is wrong COPSY outputs error code 1
         (INVALID ENTRY). The absence of a reply within 3 mintues
         or if after three attempts a valid entry is not made,
         TEMCO signs off the user, blocks the terminal (Supervisor
         terminal positions are never blocked), and sends a
         Security report to the supervisor printer.






                   Figure 4.2.5.1.1.4-1


4.2.5.1.1.5 S̲e̲c̲u̲r̲i̲t̲y̲ ̲W̲a̲r̲n̲i̲n̲g̲

         The Security warning functions are decomposed as defined
         in figure 4.2.5.1.1.5-1 overleaf.

         Invocation of Security warning will result in a log
         record and generation of statistics.

         The security warning will be performed by displaying
         a warning message. The message will be displayed in
         the display area. After the warning message the user
         is requested to enter a security code in the system
         line.

         On entry the characters are not displayed.

         If the entry is invalid COPSY will output error code
         1 (INVALID ENTRY). If after 3 attempts a valid entry
         is not made or a reply is not made within 3 minutes
         COPSY signs off the user, blocks the keyboard (supervisor
         terminal positions are never blocked), and sends a
         Security report to the supervisor printer.






                   Figure 4.2.5.1.1.5-1



4.2.5.1.1.6 S̲e̲c̲u̲r̲i̲t̲y̲ ̲I̲n̲t̲e̲r̲r̲o̲g̲a̲t̲i̲o̲n̲

         The Security interrogation functions are decomposed
         as defined in figure 4.2.5.1.1.6-1 overleaf.

         Invocation of Security interrogation will result in
         a log record and generation of Statistics.

         The user is requested to enter his password in the
         system line. On entry the characters are not displayed.
         If the password is correct, then COPSY responds with
         response message 32 (PASSWORD VALID).

         If the password is wrong COPSY outputs error code 1
         (INVALID ENTRY).

         The absence of a reply within 3 minutes or if after
         tree attempts a valid entry is not made, COPSY signs
         off the user, blocks the keyboard (supervisor terminal
         positions are never blocked), and sends a Security
         report to the supervisor printer.





                   Figure 4.2.5.1.1.6-1



4.2.5.1.1.7 C̲l̲o̲s̲e̲-̲D̲o̲w̲n̲

         The Close-down functions are decomposed as defined
         in figure 4.2.5.1.1.7-1 overleaf.

         The commands "initial close down" and "final close
         down" are sent after operator specification of ordered
         close down/switchover of a PU. When a "initial closedown"
         is received, the time to close down is displayed in
         the system line. After receipt of a "final close down"
         the IO-connection to the VDU is dismantled even if
         the user still is signed on.



                   Figure 4.2.5.1.1.7-1



4.2.5.1.2    V̲D̲U̲ ̲L̲o̲g̲i̲c̲a̲l̲ ̲H̲a̲n̲d̲l̲e̲

         The VDU Logical Handle functions are detailed in figure
         4.2.5.1.2-1.



4.2.5.1.2.1 B̲l̲o̲c̲k̲ ̲T̲e̲r̲m̲i̲n̲a̲l̲

         The Block Terminal functions are decomposed as defined
         in figure 4.2.5.1.2.1-1 overleaf.

         The supervisor can block a terminal position (not the
         two Supervisor terminal positions) by entering a BLOCK
         command:

         After reception of a BLOCK command COPSY will sign-off
         the user, block the keyboard and generate a log record.





                    Figure 4.2.5.1.2-1



                   Figure 4.2.5.1.2.1-1



4.2.5.1.2.1 U̲n̲b̲l̲o̲c̲k̲ ̲T̲e̲r̲m̲i̲n̲a̲l̲

         The Unblock terminal functions are decomposed as defined
         in figure 4.2.5.1.2.1-1 overleaf.

         The supervisor can unblock a terminal position by entering
         an UNBLOCK command.

         After reception of an UNBLOCK command COPSY will unblock
         the keyboard and if key status is on, display the K1
         format.






                   figure 4.2.5.1.2.1-1



4.2.5.1.3    V̲D̲U̲ ̲E̲v̲e̲n̲t̲s̲ ̲M̲ ̲a̲n̲d̲ ̲C̲

         The VDU EVENTS M and C functions are detailed on figure
         4.2.5.1.3-1.



4.2.5.1.3.1 A̲s̲y̲n̲c̲h̲r̲o̲n̲o̲u̲s̲ ̲R̲e̲p̲o̲r̲t̲

         The Asynchronous Report functions are decomposed as
         defined in figure 4.2.5.1.3.1-1 overleaf.

         The IOS will send an Asynchronous Report when:

         -   The keylock on the terminal is changed to either
             the locked or unlocked position

         -   the system key is depressed.

         Turning the security-key to the off position will cause
         the contents of the screen to become blank and the
         device storage to be erased. If the transactions Sign-on
         and Security procedures are in progress the terminal
         will be blocked and signed off and a security report
         will be generated.

         Depressing the SYSTEM KEY when the terminal position
         is signed-on, will force COPSY to output the High Level
         Menu with the common capabilities of the Terminal and
         and User-Profile filled in.



4.2.5.1.3.2 C̲o̲n̲t̲r̲o̲l̲ ̲K̲e̲y̲s̲

         When the transactions Sign-on, Sign-off, and Security
         procedures are in progress the only valid entry of
         the control keys is the ENTER-key.

         The activation of all other control keys (an exception
         is the SYSTEM-key) will have no effect.





4.2.5.1.4    U̲p̲d̲a̲t̲e̲ ̲P̲r̲o̲f̲i̲l̲e̲

         The supervisor may change a terminal profile, while
         the terminal is blocked. After a terminal profile is
         changed, TEMCO receives a TERMINAL ̲PROFILE ̲CHANGE command
         specifying that a terminal profile is changed.



4.2.5.1.5    Q̲u̲e̲u̲e̲,̲ ̲S̲u̲b̲p̲r̲o̲c̲e̲s̲s̲ ̲S̲e̲c̲u̲r̲i̲t̲y̲

         Q̲u̲e̲u̲e̲ ̲A̲c̲c̲e̲s̲s̲ ̲P̲r̲o̲f̲i̲l̲e̲

         The access profiles for the release queue (VUS ̲RELQ),
         the receive queue (VUS ̲ARRQ) are changed when the supervisor
         specifies that one of the terminal profiles,"defining"
         the above mentioned queue profiles, has been changed.

         S̲u̲b̲p̲r̲o̲c̲e̲s̲s̲ ̲A̲c̲c̲e̲s̲s̲ ̲P̲r̲o̲f̲i̲l̲e̲

         After a user is signed-on and before a START-command
         is sent to the terminal subprocess, the access profile
         of the terminal subprocess is set according to fig.
         4.2.5.1.5-1 to fig. 4.2.5.1.5-5.

         After a user is signed-off, the access profile of the
         terminal subprocess is set to no rights (all bits are
         set to zero).

         S̲u̲b̲p̲r̲o̲c̲e̲s̲s̲ ̲C̲a̲p̲a̲b̲i̲l̲i̲t̲y̲ ̲A̲r̲r̲a̲y̲

         After a user is signed-on and before a START ̲USER command
         is sent to the terminal subprocess, the queue access
         rights of the subprocess is set according to fig. 4.2.5.1.5-6
         to fig. 4.2.5.1.5-8.

         After a user is signed-off the access rights (function
         mask.) defined in fig. 4.2.5.1.5-6 to fig. 4.2.5.1.5-8
         are set to no rights.  The reference to the release
         queue and the associated release position queue in
         the USER subprocess capability array are removed.

         The capasbility array of the SUPV-subprocess is not
         changed by TEMCO.











              Fig. 4.2.5.1.5-1/2/3/4/5/6/7/8



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

         On system start-up TEMCO determines the position of
         the security key if the terminal position is unblocked.

         The access profiles for the release queue (VUS ̲RELQ),
         the receive queue (VUS ̲RCCQ) and the answer, response,
         retrieve queue (VUS ̲ARRQ) are set by TEMCO according
         to fig. 4.2.5.1.7-1 to fig. 4.2.5.1.7-3.





         Figure 4.2.5.1.7-1 to figure 4.2.5.1.7-3




4.2.5.1.8    E̲r̲r̲o̲r̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲

         TEMCO recognizes the following software error types:

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

             These errors relate to input validity check in
             the operation semaphore VDU ̲OS or in the queue
             VDU ̲RQ. An error is reported via the procedure
             COPSY ̲SEND ̲GARBLE.

         2)  I̲n̲t̲e̲r̲n̲a̲l̲

             These errors relate to errors from system calls
             and internal logical errors. System call errors
             are reported via the procedure ANALYSE ̲ERROR. Internal
             logical errors are reported via the procedure COPSY
             ̲SEND ̲GARBLE.



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

         The Terminal Monitoring and Control (TEMCO) functions
         are implemented in one coroutine per terminal position.

         The TEMCO program is decomposed as defined in fig.
         4.2.5.2-1.

         The program is implemented in 3 modules and a number
         of common procedures.




                      fig. 4.2.5.2-1



         21 states for TEMCO are defined:

         -   INITIAL
         -   BLOCKED
         -   SUPV ̲POSITION ̲DOWN
         -   UNATTENDED ̲OPERATION
         -   SION ̲REPLY ̲1
         -   SION ̲REPLY ̲2
         -   SION ̲REPLY ̲3
         -   SION ̲YES
         -   ATTENDED ̲OPERATION
         -   WAIT ̲ASSG ̲REPLY
         -   REL ̲SEC ̲REPLY ̲1
         -   REL ̲SEC ̲REPLY 2
         -   REL ̲SEC ̲REPLY 3
         -   SEC ̲INT ̲REPLY ̲1
         -   SEC ̲INT ̲REPLY ̲2
         -   SEC ̲INT ̲REPLY ̲3
         -   SEC ̲WAR ̲REPLY ̲1
         -   SEC ̲WAR ̲REPLY ̲2
         -   SEC ̲WAR ̲REPLY ̲3
         -   WAITING
         -   WAIT ̲ASSG ̲REPLY

         33 input types are defined:

         -   REMOVE ̲ASSG
         -   ASSG ̲REMOVED
         -   SET ̲ACCES ̲PROFILES
         -   START ̲COR
         -   CLOSE ̲INITIAL
         -   CLOSE ̲FINAL
         -   LINE ̲ERROR
         -   START ̲SUPV
         -   STOP ̲SUPV
         -   TERMINAL ̲PROFILE ̲CHANGE
         -   BLOCK ̲TERMINAL
         -   UNBLOCK ̲TERMINAL
         -   SYSTEM-KEY
         -   KEY ̲ON
         -   KEY ̲OFF
         -   SIOF
-        -   SION
         -   ASSG
         -   SUPV
         -   MDCO
         -   MSOS
         -   USER


         -   INPUT ̲SYSTEM ̲LINE
         -   INVALID ̲INDATA
         -   INVALID ̲KEY
             INSERT ̲SUPV
         -   INVALID ̲ENTRY
         -   TIME ̲OUT
         -   REL ̲SEC ̲INT
         -   S ̲INTERROGATION
         -   S ̲WARNING
         -   S ̲BOTH
         -   CLEAR ̲SYSTEM ̲LINE

         Every input type and state defines the next state of
         TEMCO and the action to be executed. E.g. if the input
         type is SIOF and the present state of TEMCO is SION
         ̲YES, the next state of TEMCO is UNATTENDED ̲OPERATION
         and the action to be executed is SIOF, see table 4.2.5.2-1
         to table 4.2.5.2-6.


              Table 4.2.5.2-1  to 4.2.5.2-6



         The fields marked with * in table 4.2.5.2-1 to table
         4.2.5.2-5 are explained below:

         *a: if key-status = on then new-state = unattended
             operation else new-state = unmanned.

         *b: supervisor positions are never blocked, new-state
             = supv-position-down.

         *c: if supervisor position then action = illegal action.

         *d: if supervisor position then new state = unattended
             operation.

         *e: supervisor position are never blocked, new state
             = unmanned.

         *f: if invalid then new state = sion-reply-2.

         *g: if invalid then new state = sion-reply-3.

         *h: if invalid then new state = blocked if supervisor
             then new state = unattended operation.

         *i: if invalid then new-state = sec-war-reply-1

         *j: if invalid then new-state = sec-war-reply-2

         *k: if invalid then new-state = sec-int-reply-2

         *l: if invalid then new-state = sec-int-reply-3

         *m: if invalid then new-state = rel-sec-reply-2

         *n: if invalid then new-state = rel-sec-reply-3

         *o: if already assigned as active supervisor position
             then new-state = sion-yes

         *p: if the user profile and terminal profile do not
             contain the chosen capability then new-state =
             sion-yes


             Note 4.2.5.2-6




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

         A blockdiagram for TEMCO fig. 4.2.5.3-1 showing data
         and control logic is depicted overleaf.

         A simplified flow-gram for the main program is shown
         in fig. 4.2.5.3-2.

         State diagrams for TEMCO are defined in fig. 4.2.5.3-3
         to fig. 4.2.5.3-7.



fig. 4.2.5.3-1/2/3/5/6/7…86…1         …02…   …02…   …02…   …02…                                 
          
         INITIALIZATION

         LOOP

             WAIT OPERATION SEMAPHORE

             ACTION = ACTION ̲TABLE (OLD ̲STATE, INPUT)

             NEW ̲STATE =  STATE ̲TABLE (OLD ̲STATE, INPUT)

             CALL ACTION ̲MODULE (ACTION)

             OLD ̲STATE = NEW ̲STATE

         END LOOP
































Fig. 4.2.5.3-2…01…At Simplified Flowgram for the main program


               Fig. 4.2.5.3-3 to 4.2.5.3-7


4.2.5.4.1    M̲a̲i̲n̲ ̲P̲r̲o̲g̲r̲a̲m̲



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

         The main program module initializes the coroutine.
         Thereafter it reads and interprets the operations send
         to the coroutine from the configuration handler, the
         command dispatcher, the IOC-control, or the timer monitor.
         The type of input to the coroutine is determined. A
         new state of the TEMCO is determined and the action
         to take, according to the type of input received, is
         calculated. The action to perform is executed in the
         two actions modules.



4.2.5.4.1.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲

         None.



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

         The TEMCO main module contains the following procedures,
         see fig. 4.2.5.4.1.3-.1.

         a)  C̲F̲H̲ ̲T̲ ̲C̲M̲D̲

             The procedure determines the type of CFH command
             sent to TEMCO.

         b) S̲U̲P̲V̲ ̲T̲ ̲C̲M̲D̲

             The procedure determines the type of supervisor
             command sent to TEMCO.

         c)  T̲E̲P̲ ̲T̲ ̲C̲M̲D̲

             The procedure determines the type of command sent
             from the terminal subprocess.

         d)  M̲M̲O̲N̲ ̲T̲ ̲C̲M̲D̲

             The procedure determines the type of MMON request
             sent to TEMCO.


                    Fig. 4.2.5.4.1.3-1


         e)  T̲M̲O̲N̲ ̲C̲M̲D̲ ̲T̲

             The procedure determines the type of reply sent
             from the timer monitor.

         f)  I̲O̲C̲ ̲S̲T̲A̲T̲U̲S̲ ̲T̲

             The procedure determines the type of status sent
             from IOC.

         g)  I̲O̲C̲ ̲K̲E̲Y̲ ̲R̲E̲P̲L̲Y̲ ̲T̲ ̲

             The procedure determines which key was depressed.
              If the ENTER-key was activated and the state of
             TEMCO is UNATTENDED ̲OPERATION or SION ̲YES the command
             entered by the user is read.

         h)  T̲E̲M̲C̲O̲ ̲C̲M̲D̲ ̲T̲

             The procedure determines the type of input sent
             from another TEMCO coroutine.

             The two coroutine which runs the two possible supervisor
             terminals use this procedure.



4.2.5.4.1.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ ̲f̲o̲r̲ ̲t̲h̲e̲ ̲M̲a̲i̲n̲ ̲P̲r̲o̲g̲r̲a̲m̲

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

         S̲S̲C̲ ̲C̲O̲M̲M̲O̲N̲

         CFH ̲CMD
         SUPV ̲CMD
         TEP ̲CMD
         MMON ̲CMD
         IOC ̲CMD

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

         S̲S̲C̲ ̲C̲O̲M̲M̲O̲N̲

         VDU ̲OS
         SHORT ̲OS
         T.TNO



         T̲E̲M̲C̲O̲ ̲C̲O̲M̲M̲O̲N̲

         VAR T.ACTION ̲TABLE: ACTION ̲TABLE
             T.STATE:                  STATE ̲TYPE
             T.INPUT:                  INPUT ̲TYPE
             T.ACTION:                 ACTION ̲TYPE
             T.CMD:                    INTEGER
             T.SUPV ̲QEL ̲REF:           QEL-REFERENCE
             T ̲OP:                     SHORT ̲OP ̲TYPE
             T.TIME ̲TO ̲CLOSE:          TIME ̲FORMAT
             T.TEP ̲QEL ̲REF:            QEL ̲REFERENCE
             T.MMON ̲REF:               INTEGER
             T.ATTRIBUTES:             QEL-ATTRIBUTES
             T.CC:                     INTEGER
             T.QEL:                    QEL ̲REFERENCE
             T.CLOSE ̲DOWN:             BOOLEAN
             T.RECEIVE ̲KEYS ̲ON:        BOOLEAN
         CONST NO ̲OF STATES =          19

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

         VAR T.CMD ̲TYPE:               S.CMD ̲TYPE ̲(SSC COMMON)
         T.KEY:                        INTEGER


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

 PROCEDURE TEMCO ̲MAIN

 BEGIN
     EQUIVALENCE (RUNNING ̲COROUTINE,T: TERMINAL ̲COROUTINE)

     T.REPLY ̲Q.MAIN ̲QUEUE  = VDU ̲RQ

     T.REPLY ̲Q.SUB ̲QUEUE = T.TNO

     T.REPORT ̲Q.MAIN ̲QUEUE = SPIP ̲REPQ

     T.REPORT ̲Q.SUB ̲QUEUE = O

     T.EVENT ̲ID = O

     T.LOG ̲Q.MAIN ̲QUEUE = SYSTEM ̲Q

     T.LOG ̲Q.SUB ̲QUEUE = IN ̲LOG ̲Q

     T.STATE = T.INITIAL

     LOOP FOREVER

         WAIT ̲OPSEM (VDU ̲OS (T.TNO)) (T ̲OP)

         T.OP = T ̲OP

         T.CMD ̲TYPE = T ̲OP.CMD ̲TYPE

         T.CMD = T ̲OP.CMD



       CASE ̲T.CMD ̲TYPE OF

             TEMCO ̲CMD?                T̲E̲M̲C̲O̲ ̲C̲M̲D̲ ̲T̲

             CFH ̲CMD?                  C̲F̲H̲ ̲C̲M̲D̲ ̲T̲

             SUPV ̲CMD?                 S̲U̲P̲V̲ ̲C̲M̲D̲ ̲T̲

             TEP ̲CMD?                  T̲E̲P̲ ̲C̲M̲D̲ ̲T̲

             MMON ̲CMD?                 M̲M̲O̲N̲ ̲C̲M̲D̲ ̲T̲

             TMON ̲CMD?                 T̲M̲O̲N̲ ̲C̲M̲D̲ ̲T̲

             IOC ̲CMD?                  I̲O̲C̲ ̲S̲T̲A̲T̲U̲S̲ ̲T̲

             IOC ̲REPLY?                I̲O̲C̲ ̲K̲E̲Y̲ ̲R̲E̲P̲L̲Y̲
                                       ̲T̲

             OTHER?                    T.INPUT=INVALID
                                       ̲INDATA

       END CASE

       SIGNAL ̲OPSEM (SHORT ̲OS, T OP)

       EQUIVALENCE(TEMCO ̲ACTION ̲TABLE(T.STATE+T.INPUT*NO
       ̲OF ̲STATES)
                                          NEW: ACTION
             ̲STATE)

       T.ACTION = NEW ACTION

       T.STATE = NEW.NEW ̲STATE

       A̲C̲T̲I̲O̲N̲ ̲M̲O̲D̲U̲L̲E̲ (T.ACTION)

    END LOOP

 END PROCEDURE




 PROCEDURE TEMCO ̲CMD ̲T

 BEGIN

     CASE T.CMD OF

         REMOVE ̲ASSG?                  T.INPUT=T ̲REMOVE
                                       ̲ASSG

         ASSG ̲REMOVED?                 T.INPUT=T ̲ASSG
                                       ̲REMOVED

         OTHER?                        T.INPUT=T ̲INVALID
                                       ̲INDATA

     END CASE

 END PROCEDURE






 PROCEDURE CFH ̲CMD ̲T

 BEGIN

     CASE T.CMD OF

         SET ̲ACCESS ̲PROFILES? T.INPUT=T ̲SET ̲ACCESS ̲PROFILES

         INSERT ̲SUPV?     T.INPUT=INSERT ̲SUPVISOR ̲TERM

         START ̲COR?       T.INPUT=T ̲START ̲COR

         CLOSE ̲INITIAL?   T.INPUT=T ̲CLOSE INITIAL

                          T.TIME ̲TO ̲CLOSE=T ̲OP.REFERENCE

                          T.CLOSE ̲DOWN=TRUE

         CLOSE ̲FINAL?     T.INPUT=CLOSE ̲FINAL

         LINE ̲ERROR?      T.INPUT=T ̲LINE ̲ERROR

         START ̲SUPV?      T.INPUT=T ̲START ̲SUPV

         STOP ̲SUPV?       T.INPUT=T ̲STOP ̲SUPV

         OTHER?           T.INPUT=T ̲INVALID ̲INDATA

     END CASE

 END PROCEDURE


 PROCEDURE  SUPV ̲CMD ̲T

 BEGIN

     T.SUPV ̲QEL ̲REF=T ̲OP.REFERENCE

     CASE T.CMD OF

       BLOCK ̲TERMINAL?      T.INPUT=T ̲UNBLOCK ̲TERMINAL

       UNBLOCK ̲TERMINAL?    T.INPUT=T ̲BLOCK ̲TERMINAL

       TERMINAL ̲PROFILE ̲CHANGE? T.INPUT=T ̲TERMINAL ̲PROFILE
       ̲CHANGE

       OTHER?                T.INPUT=T ̲INVALID ̲INDATA

     END

 END PROCEDURE


 PROCEDURE TEP ̲CMD ̲T

 BEGIN

     T.TEP ̲QEL ̲REF=T ̲OP.REFERENCE

     T.CMD EQ RELEASE ̲SECURITY ̲INTERROGATION? T.INPUT=T
     ̲REL ̲SEC ̲
                                                   
                                                INT

     T.INPUT=T ̲INVALID ̲INDATA

 END PROCEDURE


 PROCEDURE MMON ̲CMD ̲T

 BEGIN

     T.MMON ̲REF=T ̲OP.REFERENCE

     CASE T.CMD OF

         S ̲INTERROGATION?    T.INPUT=T ̲S ̲INTERROGATION

         S ̲WARNING?          T.INPUT=T ̲S ̲WARNING

         S ̲BOTH?             T.INPUT=T ̲S ̲BOTH

         OTHER?              T.INPUT=T ̲INVALID ̲INDATA

     END CASE

 END PROCEDURE


 PROCEDURE TMON ̲CMD ̲T

 BEGIN

 WAIT ̲SYSTEM ̲CALL(T ̲OP)(T.ATTRIBUTESS, T.QEL
                            T.SUBQUEUE, CC):ERROR ̲OK

 T.ATTRIBUTES.HEADER.FLAG EQ 15 AND T.ATTRIBUTES.HEADER.SUBTYPE
                                                                 EQ
                                                                 TIM
                                                                 OUT
                                                                 ̲EVENT?

                                       T.INPUT.CLEAR
                                       ̲SYS ̲LINE
 T.ATTRIBUTES.HEADER.FLAGS NE T.EVENT ̲ID?

 T.ATTRIBUTES.HEADER.SUBTYPE NE TIMEOUT ̲EVENT?

 T.INPUT=T ̲TIME ̲OUT

 DISMANTLE(T.QEL)(CC): ERROR ̲OK


 END

 END PROCEDURE


 PROCEDURE IOC ̲STATUS ̲T

 BEGIN

     CASE T.CMD OF

         SYSTEM ̲KEY?        T.INPUT=T ̲SYSTEM ̲KEY

         KEY ̲OFF?           T.INPUT=T ̲KEY ̲OFF

         KEY ̲ON?            T.INPUT=T ̲KEY ̲ON

         OTHER?             T.INPUT=T ̲INVALID ̲INDATA

     END

 END PROCEDURE


 PROCEDURE IOC ̲KEY ̲REPLY ̲T

 BEGIN

 CASE WAIT ̲SYSTEM ̲CALL(T ̲OP)(T.KEY, T.CC): ERROR ̲OK

     ERROR?                ANALYZE ̲ERROR(T.CC,O)

 END

 T.RECEIVE ̲KEY ̲ON=FALSE

 T.KEY NE F ̲ENTER?   T.INPUT=T ̲INVALID ̲KEY


 T.STATE EQ UNATTENDED ̲OPERATION?

 T.STATE EQ SION ̲YES?   R̲E̲A̲D̲ ̲S̲Y̲S̲T̲E̲M̲ ̲L̲I̲N̲E̲ (1, 4, NIL,
 FALSE)(T.IN)

                              CASE T.IN OF

 T.INPUT=T ̲INPUT ̲SYSTEM ̲LINE    SION?  T.INPUT=T ̲SIDN

                                ASSG?  T.INPUT=T ̲ASSG

                                SUPV?  T.INPUT=T ̲SUPV

                                MDCO?  T.INPUT=T ̲SUPV

                                MSOS?  T.INPUT=T ̲MSO

                                USER?  T.INPUT=T ̲USER

                                SIOF?  T.INPUT=T ̲SIOF

                                OTHER? - T.INPUT=T ̲INVALID
                 ̲ENTRY


                              END CASE


 END PROCEDURE


4.2.5.4.2    A̲c̲t̲i̲o̲n̲ ̲M̲o̲d̲u̲l̲e̲ ̲1̲



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

         The action determined in the main program (TEMCO ̲MAIN)
         is executed in this module.



4.2.5.4.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)  ACTION ̲MODULE ̲1(T.ACTION:ACTION ̲TYPE)

         b)  ACTION ̲MODULE ̲1(R5,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̲

             R5 action to be performed
             R6 Link

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

             None.




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

         The action module 1 contains the following procedures,
         see fig. 4.2.5.4.2.3-1

         a)  S̲E̲T̲ ̲P̲R̲O̲F̲I̲L̲E̲S̲ ̲T̲

             The changes made in the terminal profile results
             in:


             -   for USER update its queue profiles
             -   for MDCO, MSO update subprocess to logical
                 terminal no table.

         b)  T̲E̲M̲C̲O̲ ̲I̲N̲I̲T̲ ̲T̲

             The procedure displays format K1 if the terminal
             position is not blocked and the security key is
             in the on position.


                    Fig. 4.2.5.4.2.3-1


         c)  F̲ ̲C̲L̲O̲S̲E̲ ̲D̲O̲W̲N̲ ̲O̲N̲ ̲T̲

             The procedure dismantles the connections to the
             terminal and signals to the CFH ̲S semaphore.

         d)  F̲ ̲C̲L̲O̲S̲E̲ ̲D̲O̲W̲N̲ ̲T̲

             The procedure sends a CLOSE ̲DOWN command to the
             terminal subprocess, and dismantles all VDU connections.
             The CFH ̲S semaphore counter is incremented.

         e)  S̲T̲O̲P̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲T̲

             The procedure blocks the terminal (supervisor terminals
             are never blocked) and a warning report is sent.

         f)  S̲T̲O̲P̲ ̲S̲I̲O̲N̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲T̲

             The procedure sends a STOP command to the terminal
             subprocess, and blocks the terminal (supervisor
             terminals are never blocked)

         g)  B̲L̲O̲C̲K̲ ̲T̲E̲R̲M̲ ̲T̲

             The procedure blocks the terminal sends a reply
             to the supervisor. (if supvisor terminal specified
             VALIDIATION ̲NOT ̲OK is returned) reply to the supervisor.

         h)  B̲L̲O̲C̲K̲ ̲S̲T̲O̲P̲ ̲T̲E̲R̲M̲ ̲T̲

             The procedure sends a BLOCK ̲TERM command to the
             terminal subprocess, and blocks the terminal ref.
             BLOCK ̲TERM ̲T 

         i)  U̲N̲B̲L̲O̲C̲K̲ ̲B̲ ̲T̲

             The procedure changes the BLOCKED field to FALSE
             in the terminal profile, displays format K1, (if
             key-status is ON) and sends a reply to the supervisor.

         j)  S̲I̲O̲F̲ ̲T̲

             The procedure displays format K2, updates the terminal-profile,
             the user profile and sends a log record.



         k)  S̲I̲O̲N̲ ̲E̲N̲T̲R̲Y̲ ̲T̲

             The procedure prompts the user for the identification
             code and the password in the system line.

         l)  S̲E̲N̲D̲ ̲R̲E̲M̲O̲V̲E̲ ̲A̲S̲S̲G̲ ̲T̲

             The procedure sends a REMOVE ̲ASSG command to the
             other TEMCO "supervisor"coroutine.

         m)  S̲T̲A̲R̲T̲ ̲S̲U̲P̲V̲ ̲C̲M̲D̲ ̲T̲

             The procedure starts supervisor subprocess and
             changes the profile of the supervisor subprocess.If
             both the terminal and user profile contains the
             capability.

         n)  S̲T̲A̲R̲T̲ ̲M̲D̲C̲O̲ ̲C̲M̲D̲ ̲T̲

             The procedure starts subprocess. If the terminal
             and user profile both contains the capabiltiy.

         o)  S̲T̲A̲R̲T̲ ̲M̲S̲O̲S̲ ̲C̲M̲D̲ ̲T̲

             The procedure starts the MSO subprocess. If both
             the terminal and user profile contains the capability

         p)  S̲T̲A̲R̲T̲ ̲U̲S̲E̲R̲ ̲C̲M̲D̲ ̲T̲

             The procedure starts the USER subprocess. If both
             the terminal and user profile contains the capability.

         q)  I̲N̲S̲E̲R̲T̲ ̲S̲U̲P̲E̲R̲V̲I̲S̲O̲R̲ ̲T̲

             The connections to the supervisor terminal are
             created (subsequent to the repair of the terminal)
             and if key-status is on the K1 format is displayed.

         r)  I̲L̲L̲E̲G̲A̲L̲ ̲A̲C̲T̲I̲O̲N̲ ̲T̲

             The procedure call COPSY ̲SEND ̲GARBLE with specified
             params.



         s)  S̲T̲O̲P̲ ̲R̲E̲P̲L̲Y̲ ̲M̲

             The security interrogation/warning is stopped and
             the completion code specified in the call returned
             to the message monitor (supervisor terminals are
             never blocked) and the terminal is blocked.

         t)  S̲T̲O̲P̲ ̲R̲E̲P̲L̲Y̲ ̲T̲ ̲

             The release security interrogation is stopped and
             the completion code TERMINAL ̲BLOCKED is returned
             to the TEP subprocess (supervisor terminal are
             never blocked) and the terminal is blocked.



4.2.5.4.2.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ ̲f̲o̲r̲ ̲A̲c̲t̲i̲o̲n̲ ̲M̲o̲d̲u̲l̲e̲ ̲1̲

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

         S̲S̲C̲ ̲C̲O̲M̲M̲O̲N̲

         CONST SUPV ̲P ̲NO
         CONST FIRST ̲USER ̲P ̲NO

         VAR T.TNO:              LOGICAL ̲TERMINAL ̲NO ̲TYPE
             T.LTUX ̲LINE ̲REC:    LTUX ̲LINE ̲REC
             T.LINE ̲TABLE:       PORT ̲TABLE ̲TYPE

         T̲E̲M̲C̲O̲ ̲C̲O̲M̲M̲O̲N̲ ̲

         VAR

             T.ACC:                 ACCESS ̲PROFILE
             T.TERMINAL ̲PROFILE:    TERMINAL ̲PROFILE
             T.STATE:               STATE ̲TYPE
             T.KEY ̲BUF:             SINGLE ̲PARAM
             T.CC:                  INTEGER
             T.SEND ̲BUF:            TMS ̲PARAMS
             T.SYSTEM ̲CONTR ̲FDCB:   FDCB ̲INDEX
             T.SYSTEM ̲DATA ̲FDCB:    FDCB ̲INDEX
             T.FORMAT ̲CONTR ̲FDCB:   FDCB ̲INDEX
             T.FORMAT ̲DATA ̲FDCB:    FDCB ̲INDEX
             T.REPLY:               ANSWER ̲TEP ̲TEMCO
             T.USER ̲PROFILE:        USER ̲PROFILE
             T.CAPABILITIES:        (NONE, ONE, MORE)
             T.CAP:                 FCT ̲CAPABILITY ̲TYPE


             T.EVENT ̲ID:             INTEGER
             T.ACTION:              ACTION ̲TYPE
             T.RESTART ̲MODE:        BOOLEAN
             T.TIME ̲TO ̲CLOSE:       RELATIVE ̲TIME
             T.ACTUAL ̲CAP:          FCT ̲CAPABILITY ̲TYPE

         VAR

             MSOS ̲TERMINALS = ARRAY(1..4) OF LOGICAL ̲TERMINAL
             ̲NO

             MDOS ̲TERMINALS = ARRAY(1..4) OF LOGICAL ̲TERMINAL
             ̲NO





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

         PROCEDURE ACTION ̲MODULE ̲1(T.ACTION: ACTION ̲TYPE)

         BEGIN

             CASE T.ACTION OF

                 SET ̲PROFILES?        S̲E̲T̲ ̲P̲R̲O̲F̲I̲L̲E̲S̲ ̲T̲

                 TEMCO ̲INIT?          T̲E̲M̲C̲O̲ ̲I̲N̲I̲T̲ ̲T̲

                                      T.RESTART ̲MODE = F̲A̲L̲S̲E̲

                 I ̲CLOSE ̲DOWN ̲?       D̲I̲S̲P̲L̲A̲Y̲ ̲C̲L̲O̲S̲I̲N̲G̲
                                      T̲I̲M̲E̲(T.TIME ̲TO ̲CLOSE)

                 F ̲CLOSE ̲DOWN ̲OFF?    SIGNAL ̲SEM(CFH ̲S)

                 F ̲CLOSE ̲DOWN ̲ON?     F̲ ̲C̲L̲O̲S̲E̲ ̲D̲O̲W̲N̲ ̲O̲N̲ ̲T̲

                 F ̲CLOSE ̲DOWN?        F̲ ̲C̲L̲O̲S̲E̲ ̲D̲O̲W̲N̲ ̲T̲

                 STOP ̲TERMINAL?       S̲T̲O̲P̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲T̲

                 STOP ̲SION ̲TERMINAL?  S̲T̲O̲P̲ ̲S̲I̲O̲N̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲T̲

                 TERMINAL ̲PROFILE ̲CHANGED?
                                      S̲E̲T̲ ̲P̲R̲O̲F̲I̲L̲E̲S̲ ̲T̲

                 BLOCK ̲TERM?          B̲L̲O̲C̲K̲ ̲T̲E̲R̲M̲ ̲T̲

                 BLOCK ̲STOP ̲TERM?     B̲L̲O̲C̲K̲ ̲S̲T̲O̲P̲ ̲T̲E̲R̲M̲ ̲T̲

                 UNBLOCK ̲B?           U̲N̲B̲L̲O̲C̲K̲ ̲B̲ ̲T̲

                 SIOF ̲K2?             D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ (INVALID
                                      ENTRY)

                 SIOF?                S̲I̲O̲F̲ ̲T̲

                 SION ̲ENTRY?          S̲I̲O̲N̲ ̲E̲N̲T̲R̲Y̲ ̲T̲

                 SEND ̲REMOVE ̲ASSG?    S̲E̲N̲D̲ ̲R̲E̲M̲O̲V̲E̲ ̲A̲S̲S̲G̲ ̲T̲

                 START ̲SUPV ̲CMD?      S̲T̲A̲R̲T̲ ̲S̲U̲P̲V̲ ̲C̲M̲D̲ ̲T̲



                 INSERT ̲SUPERVISOR ̲TERM
                                      I̲N̲S̲E̲R̲T̲ ̲S̲U̲P̲E̲R̲V̲I̲S̲O̲R̲ ̲T̲

                 START ̲SUPV ̲ONLY?     T̲E̲M̲C̲O̲ ̲I̲N̲I̲

                                      T.RESTART ̲MODE = TRUE

                 START ̲MDCO ̲CMD?      S̲T̲A̲R̲T̲ ̲M̲D̲C̲O̲ ̲C̲M̲D̲ ̲T̲

                 START ̲MSOS ̲CMD?      S̲T̲A̲R̲T̲ ̲M̲S̲O̲S̲ ̲C̲M̲D̲ ̲T̲

                 START ̲USER-CMD?      S̲T̲A̲R̲T̲ ̲U̲S̲E̲R̲ ̲C̲M̲D̲ ̲T̲


                 FIRST ̲ID ̲CODE ̲PASSWORD ̲ENTRY..NO ̲ACTION?

                                      A̲C̲T̲I̲O̲N̲ ̲M̲O̲D̲U̲L̲E̲ ̲2̲(T.ACTION)

                 OTHER?               I̲L̲L̲E̲G̲A̲L̲ ̲A̲C̲T̲I̲O̲N̲ ̲T̲

             END CASE

         END PROCEDURE


         PROCEDURE SET ̲PROFILES ̲T

         T.OLD ̲CAP = T.TERMINAL ̲PROFILE.CAP

         T.KEY ̲BUF = T.TNO

         S̲E̲A̲R̲C̲H̲ ̲E̲N̲T̲R̲Y̲ (TERMINAL ̲TABLE,T.KEY ̲BUF,ALL ̲MASK,T.WRK)

                      (T.TERMINAL ̲PROFILE)



         S̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲P̲R̲O̲F̲I̲L̲E̲


         T.CHANGE ̲MASK = T.TERMINAL ̲PROFILE.CAPXOR T.OLD ̲CAP

         T.CHANGE ̲MASK AND MSO EQ 0?

         S̲E̲T̲ ̲M̲S̲O̲ ̲S̲U̲B̲P̲R̲O̲C̲E̲S̲S̲ ̲N̲O̲

         T.CHANGE ̲MASK AND MDCO EQ 0?

         S̲E̲T̲ ̲M̲D̲C̲O̲ ̲S̲U̲B̲P̲R̲O̲C̲E̲S̲S̲.̲N̲O̲



         T.CMD EQ TEMCO ̲CMD? - SIGNAL ̲SEM (CFH ̲S)

         T.REPLY = EXECUTION ̲OK

         S̲E̲N̲D̲ ̲R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲S̲U̲P̲V̲ (T.REPLY)

         END SET ̲PROFILE ̲T




   PROCEDURE SET ̲MDCO ̲SUBPROCESS ̲NO

   FOUND = FALSE

   COUNT = 0


   T.TERMINAL ̲PROFILE-CAP AND MDCO EQ0?-T ̲COMP=T.TNO,T
   ̲INSERT=NIL

   T ̲COMP = NIL

   T ̲INSERT = T.TNO

   LOOP "find entry to insert/remove the MDCO index"

         COUNT = COUNT + 1

         MSO ̲TERMINAL (COUNT) NE T ̲COMP?

         MSO ̲TERMINAL (COUNT) = T ̲INSERT

         FOUND = TRUE


         FOUND EQ TRUE OR COUNT EQ MAX ̲MDCO?  EXIT

   END LOOP

   FOUND EQ FALSE? - T.GARB ̲INF.ERROR ̲TYPE=SET ̲PROF

                     T.GARB ̲INF.ERROR ̲LOC = SET ̲MDCO ̲SUB

                     C̲O̲P̲S̲Y̲ ̲S̲E̲N̲D̲ ̲G̲A̲R̲B̲L̲E̲ (NIL,T.GARB ̲INF)

   END SET ̲MSO ̲SUBPROCESS ̲NO














   PROCEDURE SET ̲MSO ̲SUBPROCESS ̲NO

   FOUND = FALSE

   COUNT = 0


   T.TERMINAL ̲PROF.KE CAP AND MSO EQ 0?-T ̲COMP=T.TNO,T
   ̲INSERT=NIL

   T ̲COMP = NIL

   T ̲INSERT = T.TNO

   LOOP "find entry to insert/remove the MSO index

         COUNT = COUNT + 1

         MSO ̲TERMINAL (COUNT) NE T ̲COMP?

         MSO ̲TERMINAL (COUNT) = T ̲INSERT

         FOUND = TRUE


         FOUND EQ TRUE OR COUNT EQ MAX ̲MSO?   EXIT

   END LOOP

   FOUND EQ FALSE?-T.GARB ̲INF.ERROR ̲TYPE=SET ̲PROF

                   T.GARB ̲INF ̲ERROR ̲LOC =SET ̲MSO ̲SUB

                   C̲O̲P̲S̲Y̲ ̲S̲E̲N̲D̲ ̲G̲A̲R̲B̲L̲E̲ (NIL,T.GARB ̲INF)

   END SET ̲MSO ̲SUBPROCESS ̲NO





PROCEDURE SET ̲QUEUE ̲PROFILE

T.ACC.MOST = T.TERMINAL ̲PROFILE.SH.MOST

T.ACC:LEAST = T.TERMINAL ̲PROFILE.SH ̲LEAST LOG OR

      T.TERMINAL ̲PROFILE.CAP

T.ACC MOST = EXERCISE LOG OR
           (MESSAGE ̲IND SHIFTLL ITEM ̲TYPE ̲SHIFT
           (COMMENT ̲INO SHIFTLL ITEM ̲TYPE ̲SHIFT
           (REL ̲RET ̲IND SHIFTLL ITEM ̲TYPE ̲SHIFT

REG ̲ACC = T.ACC  "vus answer,response,retireve queue

T.QUEUE ̲PRO = FIRST ̲VUS.ANS ̲RES ̲RET ̲Q + T.TNO - 1

SET.PROFILE (REG ̲ACC,T.QUEUE ̲PRO,T.REPLY ̲Q)(CC):ERROR
 ̲OK

T.ACC:MOST = EXERCISE

T.TERMINAL ̲PROFILE.USER ̲CAP LOG AND (RELS LOG = R PREP)EQ
 0?

T.ACC.MOST = T.ACC.MOST LOG OR SET ̲RELS ̲PREP


T.TERMINAL.PROFILE.USER ̲CAP LOG AND RECV EQ 0?

T.ACC.MOST = T.ACC.MOST LOG OR SET ̲RECV

REG ̲ACC = T.ACC

T.QUEU ̲PRO = FIRST ̲VUS ̲RECEIVE ̲Q + T-TNO -1 "VUS receive
 queue

SET ̲PROFILE (REG ̲ACC,T.QUEUE ̲PRO,T.REPLY ̲Q)(CC): ERROR
 ̲OK

T.ACC.MOST = EXERCISE

T.TERMINAL ̲PROFILE.USER ̲CAP LOG AND RELS EQ 0?

T.ACC.MOST = T.ACC ̲MOST LOG OR

           (MESSAGE ̲IND SHIFTLL ITEM ̲TYPE ̲SHIFT) LOG OR
           (MSG ̲RELEASE SHIFTLL APPL ̲FIELD ̲SHIFT)

REG ̲ACC = T.ACC

T.QUEUE ̲PRO = FIRST ̲VUS ̲RELEASE.Q + T.TNO - 1 "VUS release
 queue

SET ̲PROFILE (REG ̲ACC,T.QUEUE.PRO,T.REPLY ̲Q)(CC) : ERROR
 ̲OK

END SET ̲QUEUE ̲PROFILE


   PROCEDURE TEMCO ̲INIT ̲T

   T.RESTART ̲MODE EQ TRUE?

   D̲E̲F̲I̲N̲E̲ ̲T̲E̲M̲C̲O̲ ̲F̲O̲R̲M̲A̲T̲ ̲H̲A̲N̲D̲L̲E̲R̲

   T.TERMINAL ̲PROFILE.BLOCKED EQ TRUE? T.STATE = BLOCKED

   T.KEY ̲BUF.KEY = T.TERMINAL ̲PROF.PORT ̲ID.NO

   S̲E̲A̲R̲C̲H̲ ̲E̲N̲T̲R̲Y̲ (LTUX ̲LINE ̲TA@BLE,T.KEY ̲BUF,ALLMASK,T.SEND
   ̲BUF)
                (T.LTUX ̲LINE.RECORD)

   (T.LTUM ̲LINE ̲RECORD.TYPE ̲DEV NE VDU) OR
                                                     ?
   (T.LTUX ̲LINE ̲RECORAD.CHAIN ̲STATUS EQ FALSE)

                REPORT ̲ERROR (         )
                T.KEY ̲BUF.KEY = T.TNO
                T.TERMINAL ̲PROFILE.BLOCKED = TRUE

                U̲P̲D̲A̲T̲E̲ ̲E̲N̲T̲R̲Y̲ (TERMINAL ̲TABLE,T.SEND.BUF,T.KEY.BUF,
                              TEMCO ̲TERM ̲MASK,T.TERMINAL.PROFILE-KEY
                                                     
                         STATUS)

                 T.STATE = BLOCKED

   C̲R̲E̲A̲T̲E̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲

   T.REPLY NE EXECUTION ̲OK?  T.STATE = INITIAL

   G̲E̲T̲ ̲K̲E̲Y̲ ̲P̲O̲S̲I̲T̲I̲O̲N̲

   T.TERMINAL ̲PROFILE.KERY ̲STATUS EQ OFF? T.STATE = UNMANNED

   T.STATE = UNATTENDED ̲OPERATION

   D̲I̲S̲P̲L̲A̲Y̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲F̲O̲R̲M̲A̲T̲ (K1)

   END TEMCO ̲INIT ̲T



   PROCEDURE DEFINE ̲TEMCO ̲FORMAT ̲HANDLER

   INIT ̲FORMAT (TEMCO ̲SPLITS, FORMATS,     )(CC)

   DEFINE ̲FORMAT ̲AREA (SPLIT ̲SYS.REC) (INTERFACE ̲NO,CC)

   T.SYS ̲SPLIT = INTERFACE ̲NO

   DEFINE ̲FORMAT ̲AREA (SPLIT ̲FORMAT ̲REC)(INTERFACE ̲NO.CC)

   T.FORMAT ̲SPLIT = INTERFACE ̲NO

   END DEFINE ̲TEMCO ̲FORMAT ̲HANDLER











   PROCEDURE F ̲CLOSE ̲DOWN ̲ON ̲T

   BEGIN

       C̲U̲T̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲

       SIGNAL ̲SEM (CFH)

   END





   PROCEDURE F ̲CLOSE ̲DOWN ̲T

   BEGIN

       S̲T̲O̲P̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲S̲U̲B̲P̲R̲O̲C̲E̲S̲S̲ (CLOSE ̲DOWN)

       K̲E̲Y̲ ̲O̲F̲F̲ ̲B̲L̲O̲C̲K̲E̲D̲ ̲T̲

       C̲U̲T̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲

       T.SIGN = OFF

       S̲E̲T̲ ̲U̲S̲E̲R̲ ̲P̲R̲O̲F̲I̲L̲L̲E̲ ̲S̲I̲G̲N̲ ̲T̲O̲ (T.SIGN,T.USER ̲PROFILE
       ̲USER ̲ID)

       SIGNAL ̲SEM (CFH ̲S)

   END


   PROCEDURE STOP ̲TERMINAL ̲T

       BEGIN

       T.TERMINAL ̲PROFILE.CAP LOG AND SUPV NE NUL? T.STATE=SUPV
       ̲
                                                   POSITION
                           ̲DOWN
                                                   CUT
                           ̲CONNECTION

       B̲L̲O̲C̲K̲ ̲P̲A̲S̲S̲I̲V̲E̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲


       STATE = BLOCKED


   END





 PROCEDURE STOP ̲SION ̲TERMINAL ̲T

 BEGIN

   S̲E̲N̲D̲ ̲S̲E̲C̲U̲R̲I̲T̲Y̲ ̲R̲E̲P̲O̲R̲T̲ (WARN ̲HW ̲IN ̲TERM) 

   T.TERMINAL ̲PROFILE.CAP LOGAND SUPV NULL?T.STATE=SUPV.POSITION
   ̲DOWN
                                             S̲T̲O̲P̲.̲A̲C̲T̲I̲V̲E̲S̲U̲P̲V̲
                       ̲T̲E̲R̲M̲I̲N̲A̲L̲

   B̲L̲O̲C̲K̲ ̲A̲C̲T̲I̲V̲E̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲



 END


   PROCEDURE BLOCK ̲TERM ̲T

   BEGIN

       T.TERMINAL ̲PROFILE.CAP EQ SUPV?    T.REPLY=VALIDATION
       ̲NOT ̲OK


       B̲L̲O̲C̲K̲ ̲P̲A̲S̲S̲I̲V̲E̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲


       T.REPLY=EXECUTION ̲OK

       S̲E̲N̲D̲ ̲R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲S̲U̲P̲V̲(̲T̲.̲R̲E̲P̲L̲Y̲)̲

   END





   PROCEDURE BLOCK ̲STOP ̲TERM ̲T

   T.REPLY = EXECUTION ̲OK

   T.TERMINAL ̲PROFILE-CAP LOGAND SUPV NE NUL? T.REPLY
   = 

                                             VALIDATION
                           ̲NOT ̲OK

   B̲L̲O̲C̲K̲ ̲A̲C̲T̲I̲V̲E̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲

   S̲E̲N̲D̲ ̲R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲S̲U̲P̲V̲ (T.REPLY)

   END BLOCK ̲STOP TERM ̲T




   PROCEDURE UNBLOCK ̲B ̲T

   BEGIN

       T.TERMINAL ̲PROFILE-BLOCKED = FALSE

       G̲E̲T̲ ̲K̲E̲Y̲ ̲P̲O̲S̲I̲T̲I̲O̲N̲

       T.TERMINAL ̲PROFILE KEY ̲STATUS EQ OFF? T.STATE =
       UNMANNED

       D̲I̲S̲P̲L̲A̲Y̲ ̲F̲O̲R̲M̲A̲T̲ ̲(̲K̲1̲)̲

       T.STATE = UNATTENDED ̲OPERATION

       T.REPLY = EXECUTION ̲OK

       S̲E̲N̲D̲ ̲R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲S̲U̲P̲V̲(T.REPLY)

   END





   PROCEDURE SIOF ̲T

   BEGIN

       DISPLAY ̲TERMINAL ̲FORMAT(K2)

       T.KEY ̲BUF.KEY=T.TNO

       T.TERMINAL ̲PROFILE.SIGN = OFF

       T.TERMINAL ̲PROFILE-CURRENT ̲CAP = NUL

       U̲P̲D̲A̲T̲E̲ ̲E̲N̲T̲R̲Y̲(TERMINAL ̲TABLE,T.SEND ̲BUF,T.KEY ̲BUF,
                   TEM ̲TERM ̲MACK,T.TERMINAL ̲PROFILE CURRENT
       ̲CAP)

       S̲E̲T̲ ̲U̲S̲E̲R̲ ̲P̲R̲O̲F̲I̲L̲E̲ ̲S̲I̲G̲N̲ ̲T̲O̲ (OFF,T.USER ̲PROFILE.USER
       ̲ID)
                                (T.BLOCKED)

       S̲E̲N̲D̲ ̲L̲O̲G̲ ̲R̲E̲C̲O̲R̲D̲(K1,E ̲SIGNED ̲OFF)

   END


   PROCEDURE SION ̲ENTRY ̲T

   BEGIN





       R̲E̲Q̲U̲E̲S̲T̲ ̲T̲I̲M̲E̲ ̲O̲U̲T̲ ̲T̲



       D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲(ENTER ̲YOUR ̲ID ̲CODE,PASSWORD)




   END



   PROCEDURE SEND ̲REMOVE ̲ASSG ̲T

   BEGIN

       T.TERMINAL.CAP LOGAND SUPV EQ 0?

       T.TERMINAL.ASSG EQ TRUE?    D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲(INVALID
       ̲ENTRY)

                                   T.SUPPRESSION = FALSE

                                   R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲T̲

       T.I=1                       T.STATE = SION ̲YES

       T.TNO NE 1?

       T.I=2

       WAIT ̲OPSEM(SHORT ̲OS)(T ̲OP)

       T ̲OP.CMD=REMOVE ̲ASSG

       T ̲OP.CMD ̲TYPE=TEMCO ̲CMD

       SIGNAL ̲OPSEM(VDU ̲OS(T.I),T ̲OP)

   END


   PROCEDURE START ̲SUPV ̲CMD ̲T

   BEGIN

       T.ACTUAL ̲CAP LOGAND SUPV EQ 0?

       T.TERMINAL ̲PROFILE.ASSG NE TRUE?

                                    D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲(INVALID
       ENTRY)

                                      T.SUPPRESSION =
       FALSE

                                      R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲
       ̲T̲

                                      T.STATE=SION ̲YES

       T.CAP = SUPV

       S̲T̲A̲R̲T̲ ̲U̲S̲E̲R̲(T.CAP)



   END


   PROCEDURE START ̲MDCO ̲CMD ̲T

   BEGIN


       T.ACTUAL ̲CAP LOGAND MDCO EQ 0?-DISPLAY ̲RESPONSE(INVALID
       ̲
                                                     
                            ENTRY)

                                      T.SUPPRESSION =
                           FALSE

                                      R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲
       ̲T̲

                                      T.STATE=SION ̲YES

       T. CAP = MDCO


       S̲T̲A̲R̲T̲ ̲U̲S̲E̲R̲(T.CAP)



   END


   PROCEDURE START ̲MSOS ̲CMD ̲T

   BEGIN

       T.ACTUAL ̲CAP LOGAND MSO EQ 0?-DISPLAY ̲RESPONSE(INVALID
       ̲
                                                     
                             ENTRY)

                                     T.SUPPRESSION =FALSE

                                     RECEIVE ̲CONTROL ̲T

                                     T.STATE=SION ̲YES

       T.CAP = MSO


       START ̲USER(T.CAP)



   END


   PROCEDURE START ̲USER ̲CMD ̲T

   BEGIN


       T.ACTUALCAP LOGAND USER EQ0?-D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲(INVALID
       ̲ENTRY)

                                    T.SUPPRESSION = FALSE

                                    R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲T̲

                                   T.STATE=SION ̲YES

       T.CAP = USER

       S̲T̲A̲R̲T̲ ̲U̲S̲E̲R̲(T.CAP)



   END


4.2.5.4.3    A̲c̲t̲i̲o̲n̲ ̲M̲o̲d̲u̲l̲e̲ ̲2̲



4.2.5.4.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲d̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         The action determined in the main program (TEMCO ̲MAIN)
         and not executed in the ACTION ̲MODULE-1 is executed
         in this module.



4.2.5.4.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)  ACTION ̲MODULE ̲2 (T.ACTION:ACTION ̲TYPE)
         b)  ACTION ̲MODULE ̲2 (R5, 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̲

         R 5 action to be performed
         R 6 link

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

         None


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

         The action module 2 contains the following procedure,
         see fig. 4.2.5.4.3-1.

         a)  F̲I̲R̲S̲T̲ ̲I̲D̲ ̲C̲O̲D̲E̲ ̲P̲A̲S̲S̲W̲O̲R̲D̲ ̲E̲N̲T̲R̲Y̲ ̲T̲ ̲

             The procedure checks the id-code and password entered
             in the system line, if either one or both are invalid,
             error message 1 is displayed in the system line.
             If both id-code and password are valid and the
             user has more possible capabilities at the 
             terminal the high level menu is displayed. If the
             user has one capability at the terminal a START
             ̲USER Command is sent to a terminal subprocess.
             If the user has none of the possible capabilities
             at the terminal, TEMCO generates an error message
             13 for a preset period of time, after which the
             terminal is automatically signed off and format
             K2 is displayed.



                    figure 4.2.5.4.3-1


  PROCEDURE INSERT ̲SUPERVISOR ̲T


  T.TNO NE 1 OR 2?   T.GARB ̲INF.ERROR ̲TYPE = INS ̲SUPV

                       T.GARB ̲INF. ERROR ̲LOC = INS ̲SUPV
 ̲T

                       C̲O̲P̲S̲Y̲ ̲S̲E̲N̲D̲ ̲G̲A̲R̲B̲L̲E̲ (NIL,T.GARP
 ̲INF)

                     T.STATE = SUPV.POSITION ̲DOWN

  C̲R̲E̲A̲T̲E̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲

  T.REPLY NE EXECUTION ̲OK?  ̲ T.STATE = SUPV ̲POSITION
  ̲DOWN

  G̲E̲T̲ ̲K̲E̲Y̲ ̲P̲O̲S̲I̲T̲I̲O̲N̲

  T.TERMINAL ̲PROFILE.KEY ̲STATUS EQ OFF? T.STATE = UNMANNED

  T.STATE = UNATTENDED ̲OPERATION

  D̲I̲S̲P̲L̲A̲Y̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲F̲O̲R̲M̲A̲T̲ (K1)


  END INSERT ̲SUPERVISOR ̲T




         b)  T̲H̲I̲R̲D̲ ̲I̲D̲ ̲C̲O̲D̲E̲ ̲P̲A̲S̲S̲W̲O̲R̲D̲ ̲E̲N̲T̲R̲Y̲ ̲T̲

             The procedure checks the id-code and password entered
             in the system line, if either one or both are invalid
             TEMCO , blocks the terminal, sends a security report
             to the supervisor printer. If both id-code and
             password are valid and the user has more possible
             capabilities at the terminal the high level menu
             is displayed. If the user has one capability at
             the terminal a START ̲USER Command is sent to a
             terminal subprocess. If the user has none of the
             possible capabilities at the terminal, TEMCO generates
             an error message 13 for a preset period of time,
             after which the terminal is automatically signed
             off and format K2 is displayed.

         c)  R̲E̲ ̲S̲E̲ ̲I̲N̲ ̲R̲E̲P̲L̲Y̲ ̲T̲

             The procedure checks the password entered in the
             system line.  If the password is valid and OK reply
             is sent to the terminal subprocess. If the password
             is invalid TEMCO outputs error message 1 in the
             system line.

         d)  T̲H̲I̲R̲D̲ ̲R̲E̲ ̲S̲E̲ ̲I̲N̲ ̲R̲E̲P̲L̲Y̲ ̲T̲

             The procedure checks the password entered in the
             system line, if the password is valid an OK reply
             is sent to the terminal subprocess. If the password
             is invalid TEMCO blocks the terminal, sends a security
             report to the supervisor printer and a STOP ̲USER
             Command is sent to the terminal subprocess.

         e)  S̲E̲C̲ ̲C̲O̲D̲E̲ ̲E̲N̲T̲R̲Y̲ ̲T̲

             The procedure checks the security code entered
             in the system line, if the security code is valid
             an OK-reply is sent to MMON. If the security code
             is invalid TEMCO outputs error message 1 in the
             system line.



         f)  T̲H̲I̲R̲D̲ ̲S̲E̲C̲ ̲C̲O̲D̲E̲ ̲E̲N̲T̲R̲Y̲ ̲T̲ ̲

             The procedure checks the security code entered
             in the system line, if the security code is valid
             an OK-reply is sent to MMON. If the security code
             is invalid a NOT ̲OK reply is sent to MMON,  the
             terminal is blocked, a security report is sent
             to the supervisor printer and a STOP ̲USER Command
             is sent to the terminal subprocess.

         g)  P̲A̲S̲S̲W̲O̲R̲D̲ ̲E̲N̲T̲R̲Y̲ ̲T̲

             The procedure checks the password entered in the
             system line, if the password is valid an OK-reply
             is sent  to MMON. If the password is invalid TEMCO
             outputs error message 1 in the system line.

         h)  T̲H̲I̲R̲D̲ ̲P̲A̲S̲S̲W̲O̲R̲D̲ ̲E̲N̲T̲R̲Y̲ ̲T̲

             The procedure checks the password entered in the
             system line, if the password is valid an OK-reply
             is sent to MMON. If the password is invalid a NOT
             ̲OK reply is sent to MMON, the terminal is blocked,
             a security report is sent to the supervisor printer
             and a STOP ̲USER Command is sent to the terminal
             subprocess.

         i)  S̲I̲O̲N̲ ̲T̲I̲M̲E̲ ̲O̲U̲T̲ ̲T̲

             The procedure dismantles the connection to the
             VDU, changes the BLOCKED field in the terminal
             profile to TRUE and sends a security report to
             the supervisor printer.

         j)  R̲E̲L̲ ̲S̲E̲C̲ ̲I̲N̲T̲ ̲C̲M̲D̲ ̲T̲ ̲

             The procedure prompts the user for the password
             in the system line.


         k)  S̲ ̲I̲N̲T̲E̲R̲R̲O̲G̲A̲T̲I̲O̲N̲ ̲C̲M̲D̲ ̲T̲

             The procedure prompts the user for the password
             in the systemline, sends statistics and sends a
             log report.

         l)  S̲ ̲W̲A̲R̲N̲I̲N̲G̲ ̲C̲M̲D̲ ̲T̲ ̲

             The procedure prompts the user for the sercurity
             code in the systemline, sends statistics and a
             log report.

         m)  S̲ ̲B̲O̲T̲H̲ ̲C̲M̲D̲ ̲T̲

             The procedure sets the boolean T ̲BOTH to TRUE and
             calls the procedure S ̲INTERROGATION ̲CMD ̲T.

         n)  K̲E̲Y̲ ̲O̲N̲ ̲U̲ ̲T̲

             The procedure updates the terminal profile and
             displays format K 1.

         o)  K̲E̲Y̲ ̲O̲F̲F̲ ̲B̲L̲O̲C̲K̲E̲D̲ ̲T̲

             The procedure changes the KEY ̲STATUS field to OFF
             in the terminal profile.


         p)  K̲E̲Y̲ ̲O̲F̲F̲ ̲S̲Y̲S̲ ̲C̲O̲N̲ ̲T̲

             The procedure calls the procedure KEY ̲OFF ̲BLOCKED
             ̲T dismantles the connection to the VDU and sends
             a security report.

         q)  K̲E̲Y̲ ̲O̲F̲F̲ ̲T̲

             The procedure blocks the terminal, sends a security
             report to the supervisor printer and sends a BLOCK
             ̲TERM command to the terminal subprocess.

         r)  S̲Y̲S̲T̲E̲M̲ ̲K̲E̲Y̲ ̲A̲T̲T̲ ̲O̲P̲ ̲T̲

             The procedure sends a STOP ̲USER command to the
             terminal subprocess, displays high level menu and
             calls the procedure RECEIVE ̲CONTROL ̲T.

         s)  A̲S̲S̲G̲ ̲F̲A̲L̲S̲E̲ ̲T̲ ̲

             The procedure changes the field ASSG to FALSE in
             the terminal profile and sends an ASSG ̲REMOVED
             reply to a TEMCO coroutine.

         t)  A̲S̲S̲G̲ ̲S̲T̲O̲P̲ ̲T̲


             If a user is signed on as supervisor at the terminal
             a STOP ̲USER command is sent to the terminal subprocess.
             The ASSG field in the terminal profile is changed
             to FALSE, the high level menu is displayed and
             a ASSG ̲REMOVED reply is sent to a TEMCO coroutine.


         u)  A̲S̲S̲G̲ ̲R̲E̲P̲L̲Y̲ ̲T̲

             The procedure changes the field ASSG to TRUE in
             the terminal profile and displays high level menu.



4.2.5.4.3.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ ̲f̲o̲r̲ ̲a̲c̲t̲i̲o̲n̲ ̲m̲o̲d̲u̲l̲e̲ ̲2̲

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

         CAPABILITY ̲TYPE = (NONE, ONE, MORE)


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

         S̲S̲C̲ ̲C̲O̲M̲M̲O̲N̲

         VAR
           T.TNO : LOGICAL ̲TERMINAL ̲NO ̲TYPE

         T̲E̲M̲C̲O̲ ̲C̲O̲M̲M̲O̲N̲

         VAR
           T.ACTION: ACTION ̲TYPE
           T.INPUT : INPUT ̲TYPE
           T.TERMINAL ̲PROFILE : TERMINAL ̲PROFILE
           T.REPLY : BOOLEAN
           T.CAPABILITIES : CAPABILITY ̲TYPE
           T.CAP : FCT ̲CAPABILITY ̲TYPE
           T.BOTH : BOOLEAN "if MMON command=BOTH then T.BOTH=TRUE
           else
                                                       T.BOTH
                 = FALS
           T.KEY ̲BUF : KEY ̲BUF ̲TYPE
           T.CHANGE ̲MASK : BITMASK
           T.SEND ̲BUF : TMP ̲PARAMS
           T ̲OP: ̲ SHORT ̲OP ̲TYPE


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

             T ̲OP : SHORT ̲OP ̲TYPE
             T.I  : INTEGER