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

⟦8d0432203⟧ Wang Wps File

    Length: 14020 (0x36c4)
    Types: Wang Wps File
    Notes: FIX/1200/PSP/0079         
    Names: »3126A «

Derivation

└─⟦dfa2fde64⟧ Bits:30006137 8" Wang WCS floppy, CR 0266A
    └─ ⟦this⟧ »3126A « 

WangText



E…0a…E…0c…E…0e…E…0f…E…00…E…02…E…05…6…86…1
      
      
      
      
      
      
      
   …02…   
      
   …02…   
 …02…     
      
 

     3126A…02…FIX/1200/PSP/0079

…02…APE/851115…02……02…#
  
Q-INIT
 PROCEDURE
 PSP
…02…HFJ/821206…02…FK
 7809








                                       T̲A̲B̲L̲E̲ ̲O̲F̲ ̲C̲O̲N̲T̲E̲N̲T̲S̲


   1 SCOPE .............................................. 0001
…02…     1.1 Introduction ................................. 0001
     1.2 Abbreviations .................................. 0002

   2 APPLICABLE DOCUMENTS ............................... 0003

   3 MODULE SPECIFICATIONS .............................. 0004
     3.1 Functional Capabilities ........................ 0004
     3.2 Interface Description .......................... 0005
     3.3 Processing ..................................... 0006
       3.3.1 Initialization of Queue Data ............... 0006
     3.4 Data Organization .............................. 0010
       3.4.1 Queue Data Area Overview ................... 0010
       3.4.2 Data Description ........................... 0013
         3.4.2.1 Format of Header ....................... 0015
         3.4.2.2 Format of Q STATUS Table ............... 0016
         3.4.2.3 Format of GR ̲HEAD Table ................ 0017
         3.4.2.4 Format of the SI HEAD Table ............ 0018
         3.4.2.5 Format of Q HEAD Table ................. 0018
         3.4.2.6 Format of Q PROC Table ................. 0021
         3.4.2.7 Format of Q POOL Table ................. 0022
       3.4.3 Compile Time Parameters .................... 0023
     3.5 Storage Allocation ............................. 0024
     3.6 Performance Characteristics .................... 0025
     3.7 Limitations .................................... 0026
     3.8 Error Codes/Error Locations .................... 0027
     3.9 Listing References ............................. 0028



   4 QUALITY ASSURANCE .................................. 0029
     4.1 Qualification Tests ............................ 0029

   5 PREPARATION FOR DELIVERY ........................... 0030



1        S̲C̲O̲P̲E̲

         This document describes the Q-INIT procedure, which is run during system intitialization
         in order to layout the Q-AREA, used by QACCESS-monitor.

1.1      I̲n̲t̲r̲o̲d̲u̲c̲t̲i̲o̲n̲

         The procedure initializes the Q-AREA with the necessary pointers and a pool of free Q-elements



1.2      A̲b̲b̲r̲e̲v̲i̲a̲t̲i̲o̲n̲s̲

         Please refer to FIKS DATA INTERFACE FIX/0100/MAN/0004.






























2        A̲P̲P̲L̲I̲C̲A̲B̲L̲E̲ ̲D̲O̲C̲U̲M̲E̲N̲T̲S̲































3        M̲O̲D̲U̲L̲E̲ ̲S̲P̲E̲C̲I̲F̲I̲C̲A̲T̲I̲O̲N̲S̲

3.1      F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲C̲a̲p̲a̲b̲i̲l̲i̲t̲i̲e̲s̲

         The procedure will layout and initialize the Q-AREA on a memory page, in a specific location
         both defined in critical region CONFIG.

         CONFIG is after layout updated with the next free location in the specified page.



3.2      I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         The only interface used by Q-INIT procedure is access and update of critical region CONFIG.

         Q ̲INIT reads the following:

         o   QPAGE, page for Q ̲DATA area
         o   NO ̲TERMINALS; no. of msg. terminals
         o   MAX ̲NO ̲TERM; total no. of queue-term
         o   PRINT ̲Q ̲THRESH; print-queue threshold
         o   MAX ̲NO ̲QUEUE ̲EL; total no. of queue-elem.
         o   MAX ̲NO ̲QUEUE ̲EL ̲NON ̲PRIV; threshold for non priviledged call
         o   DT ̲TERMINAL; supervisor distribution terminal number
         o   CCIS ̲STATUS; FIKS/FODCCIS Link presence indication   o TOP ̲OF ̲MEMORY; last used location
                                                                    in page

         Q ̲INIT updates the following:

         o   QOFFSET; ref. to Q ̲AREA on Q ̲PAGE
         o   TOP ̲OF ̲MEMORY; see above




3.3      P̲r̲o̲c̲e̲s̲s̲s̲i̲n̲g̲

3.3.1    I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲Q̲u̲e̲u̲e̲ ̲D̲a̲t̲a̲

         Function

         The purpose of the procedure is to initialize the queue area and tables for the queue description:

         o   Q ̲POOL
         -   link elements to empty queue 
         -   zeroise queue elements
         -   set length of pool

         o   Q ̲PROC
         -   load the defined process names

         o   Q ̲HEAD 
         -   establish reference to empty queue
         -   zeroise elements, except the empty queue header
         -   initialize M ̲CONTROL with flag
         for:    establish reference to Q ̲PROC table
                 invocation of process
                 status update
                 initialize threshold values

         o   SI ̲HEAD
         -   establish queue count
         -   establish reference to Q ̲PROC table
         -   establish reference to Q ̲HEAD table



         o   GR ̲HEAD
         -   establish group count
         -   establish reference to Q ̲PROC table
         -   establish reference to Q ̲HEAD TABLE

         o   Q ̲STATUS
         -   zeroise the control map.



































                                        Q ̲INIT Flowchart
                                         Fig. 3.3.1-1.1



































                                        Q ̲INIT Flowchart
                                         Fig 3.3.1-1.2



3.4      D̲a̲t̲a̲ ̲O̲r̲g̲a̲n̲i̲z̲a̲t̲i̲o̲n̲

3.4.1    Q̲u̲e̲u̲e̲ ̲D̲a̲t̲a̲ ̲A̲r̲e̲a̲ ̲O̲v̲e̲r̲v̲i̲e̲w̲

         The queue data area is a set of tables required to support the processing.

         Q̲u̲e̲u̲e̲ ̲t̲a̲b̲l̲e̲s̲ ̲d̲e̲f̲i̲n̲e̲d̲:̲

         Q̲u̲e̲u̲e̲ ̲p̲o̲o̲l̲ (Q ̲POOL)

         The pool is a common data area containing the queue elements linked together according to
         the current access requests.
         The free queue elements are linked together to constitute the empty queue.

         Q̲u̲e̲u̲e̲ ̲H̲e̲a̲d̲e̲r̲ (Q-̲HEAD)

         The table contains for each defined queue the references to the elements in the queue pool,
         for describing the actual queue. In addition it contains queue characteristica, and reference
         to a process identifier giving the "queue receiver".

         G̲r̲o̲u̲p̲ ̲H̲e̲a̲d̲e̲r̲ (GR ̲HEAD)

         The table contains for each defined group of queues, a reference to the queue (via Q ̲HEAD)
         with the highest precedence inside the group.



         Q̲u̲e̲u̲e̲ ̲r̲e̲c̲e̲i̲v̲e̲r̲ ̲p̲r̲o̲c̲e̲s̲s̲ ̲(Q ̲PROC)

         The table contains for each defined queue/group a process indentification of the queue receiver
         process which shall be activated when an element is entered into a previous empty queue.

         Q̲u̲e̲u̲e̲ ̲S̲t̲a̲t̲u̲s̲ ̲C̲h̲a̲n̲g̲e̲ ̲(Q ̲STATUS)

         The table contains for the terminal queues a 'change map' indicating if a change has occured
         since the last status display request.

         S̲i̲n̲g̲l̲e̲ ̲h̲e̲a̲d̲e̲r̲ ̲(SI ̲HEAD)

         The table contains for each defined single queue for a terminal a reference to the first
         queue in the Q ̲HEAD table for that terminal.


































                                General Queue Structure Overview



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

         Q̲u̲e̲u̲e̲ ̲t̲a̲b̲l̲e̲s̲ ̲i̲m̲p̲l̲e̲m̲e̲n̲t̲a̲t̲i̲o̲n̲

         The different tables which constitutes the queue complex are organized as shown below:















































                                 Q Addressing Concept Overview
                                          Fig. 3.4.2-1



3.4.2.1  F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲H̲e̲a̲d̲e̲r̲

         The Header contains the overall Q-AREA semphore, various save locations and pinters to the
         different tables in the Q-AREA.

            SEMAPHORE           Q-AREA semaphore
            ORIG ̲PSW            original PSW for process
            PSW1                process PSW w. interrrupt dis.
            DATA ̲PSW            PSW for Q-AREA page
            PROCESS ̲BASE
            P ̲QIOCB             pointer to QIOCB in process area
            NON ̲PRIV ̲THR        threshold of non. priv. call
            QIOCB ̲SAVE  o       save area QIOCB W1
            -    -      1                       W2
            -    -      2                       W3
            -    -      3                       W4
            -    -      4                       W5
            QWORK       0       register save area
               .        .       for QACCESS-procedures
               .        .
               .        .
            -  .     -  7 

            Q ̲POINTERS, P ̲QST
                         ATUS   pointers to other
                    P ̲SIHEAD    tables
                    P ̲GRHEAD
                    P ̲QHEAD
                    P ̲QPROC
                    P ̲QPOOL



3.4.2.2  F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲Q̲ ̲S̲T̲A̲T̲U̲S̲ ̲T̲a̲b̲l̲e̲

         The table contains for each terminal (physical device)

         a bit pattern indicating if a change has occurred to a queue for that terminal since last
         status request.

                                           M ̲TERM   1
 
                                           M ̲TERM   2

                             M ̲TERM   3       Fixed size
                                              = 30 words






                                           M ̲TERM 30


         M ̲TERM n : control bit pattern

                    15  14  13                3  2  1  0




                not used 
                                 bit set when corresponding
                                 queue has changed.


3.4.2.3  F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲G̲R̲-̲H̲E̲A̲D̲ ̲T̲a̲b̲l̲e̲

         The table contains for each defined terminal the corresponding indexes to the header table
         Q ̲HEAD, for the first queue of the group of queues for that terminal.

                1                N ̲GROUP
         …0e…term…0f…
                                      P ̲QHEAD       one entry per
                2                                   terminal
         …0e…term…0f…




                                       o
                                       o
                                       o
                 m
         …0e…term…0f…



         N ̲GROUP  :              number of queues inside group

         P ̲QHEAD  :              reference to Q ̲HEAD table of highest precedence queue inside group


3.4.2.4  F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲t̲h̲e̲ ̲S̲I̲ ̲H̲E̲A̲D̲ ̲T̲a̲b̲l̲e̲

         The table contains for each defined single queue the corresponding indexes to the header
         table Q ̲HEAD

         The layout is as given for the GR ̲HEAD table.

         N ̲GROUP:    number of queues inside the   "terminal"

         P ̲QHEAD:    reference the Q ̲HEAD table of first queue of the termibal single queues

3.4.2.5  F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲Q̲ ̲H̲E̲A̲D̲ ̲t̲a̲b̲l̲e̲

         The table contains for each defined queue, empty queue, and single and part of group queues,
         the description of the related elements in the pool, which constitiutes the queue.

         queue o     P ̲FIRST                 one entry
                     P ̲LAST                  per queue
                     L ̲THRESH
                     L ̲ACTUAL
                     M ̲CONTROL
                     

         queue 1

                          o
                          o
                          o

         queue m


         P ̲FIRST     :           reference to first element in queue

         P ̲LAST      :           reference to last element in queue

         L ̲THRESH    :           threshold set for queue

         L ̲ACTUAL    :           actual langth of queue

         M ̲CONTROL   :           control mask, see next page



         The empty queue (queue = 0) is described
         in the same way as an active queue:

         L ̲TRESH                 : total length of queue

         L ̲ACTUAL                : length of empty queue

         M CONTROL               : not used

         F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲M̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲ ̲:̲

         5 4 3 2 1 1
         1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0

                                        entry active/pending
                                        read

                                        status update

                                        invocation of process
                                        queue blocked
                                        not used

                                        process number to
                                        be activated


         N̲o̲t̲e̲

         The queue head entries for members in one group are located consecutively in order.


3.4.2.6  F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲Q̲ ̲P̲R̲O̲C̲ ̲T̲a̲b̲l̲e̲

         The table contains the process names and index reference numbers to be used in activation
         of a queue receiver process.



         …0f…process  1…0e…
                                  V ̲PROCESS        one entry per
                                                   process to be
                                  process          activated
                                  
                                  name

                                  N ̲IDENT
         process  2

                                     o
                                     o
                                     o
         process m




         V ̲PROCESS  :            name in ASCII of the process to be activated.

         N ̲IDENT:                corresponding name identification number, obtained from the system
                                 in initialization phase.



3.4.2.7  F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲Q̲ ̲P̲O̲O̲L̲ ̲T̲a̲b̲l̲e̲

         The table contains the queue elements.

                                 L ̲QPOOL

         queue element 1         P ̲FORWARD

                                 P ̲BACKWARD

                                 XMTCB

                                 V ̲TIME


         queue element 2


                                    o
                                    o
                                    o
         queue element m


         P ̲FORWARD               :  reference to next element in the actual queue.

         P ̲BACKWARD              :  reference to previous element in the actual queue.

         XMTCB                   :  index of MTCB related

         VTIME                   :  time tag of element

         L ̲QPOOL                 :  total length of pool



3.4.3    C̲o̲m̲p̲i̲l̲e̲ ̲T̲i̲m̲e̲ ̲P̲a̲r̲a̲m̲e̲t̲e̲r̲s̲

         N ̲GROUP                 :  number of group queues in the terminal queue

         V ̲PROCESS               :  name of processes to be activated

         P̲a̲r̲a̲m̲e̲t̲e̲r̲s̲ ̲d̲e̲f̲i̲n̲e̲d̲ ̲i̲n̲ ̲C̲r̲i̲t̲i̲c̲a̲l̲ ̲R̲e̲g̲i̲o̲n̲ ̲C̲O̲N̲F̲I̲G̲

         L ̲THRESH                :  threshold values for each queue.

         N ̲TERM                  :  number of terminals/pseudo terminals

         L ̲QPOOL                 :  length of queue element pool

         PQAREA                  :  page of Q data area

         OFSQAREA                :  offset of Q data area in page



3.5      S̲t̲o̲r̲a̲g̲e̲ ̲A̲l̲l̲o̲c̲a̲t̲i̲o̲n̲

         Please refer to chapter 3.4



3.6      P̲e̲r̲f̲o̲r̲m̲a̲n̲c̲e̲ ̲C̲h̲a̲r̲a̲c̲t̲e̲r̲i̲s̲t̲i̲c̲s̲

         The Q-INIT-program is run as background process during system initialization. The program
         is removed after being run.



3.7      L̲i̲m̲i̲t̲a̲t̲i̲o̲n̲s̲

         Critical Region CONFIG must exist when the program is run, and there must be sufficient space
         left in the memory page specified for the Q-AREA.



3.8      E̲r̲r̲o̲r̲ ̲C̲o̲d̲e̲s̲/̲E̲r̲r̲o̲r̲ ̲L̲o̲c̲a̲t̲i̲o̲n̲s̲

         The only errors that can occur will be in relation to critical region access.

         Please refer CSS/302/PSP/0008.



3.9      L̲i̲s̲t̲i̲n̲g̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

         Please refer to SCCLDD and S/W Library FIXLIB



4        Q̲U̲A̲L̲I̲T̲Y̲ ̲A̲S̲S̲U̲R̲A̲N̲C̲E̲

4.1      Q̲u̲a̲l̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲T̲e̲s̲t̲s̲

         Please refer to System Test Report S010 - S090



5        P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲ ̲F̲O̲R̲ ̲D̲E̲L̲I̲V̲E̲R̲Y̲

         Please refer to SCCLDD