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

⟦87adbd239⟧ Wang Wps File

    Length: 23560 (0x5c08)
    Types: Wang Wps File
    Notes: CPS/SDS/006               
    Names: »1064A «

Derivation

└─⟦53e9d9273⟧ Bits:30006039 8" Wang WCS floppy, CR 0063A
    └─ ⟦this⟧ »1064A « 

WangText

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

…02…CPS/SDS/006

…02…HKI/810801…02……02…
I/O CONTROL
…02……02…CAMPS








4.2.2    L̲T̲U̲X̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲



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



4.2.2.1.1    F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲B̲r̲e̲a̲k̲d̲o̲w̲n̲

         The LTUX Handler Sub-Package implements the definition
         of terminals in DAMOS TMS sense for the following external
         devices/channels:

         VDU
         Medium Speed Teleprinter
         Papertape Reader/Puncher
         TRC/Point-to-Point/Teleprinter
         OCR

         Figures 4.2.2.1.1-1 - 26 present the functional breakdown.








            Figure 4.2.2.1.1-1 to 4.2.2.1.1-26



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

         The numbers refer to the functional breakdown in section
         4.2.2.1.1.

         I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲ ̲(̲1̲.̲1̲,̲ ̲2̲.̲1̲,̲ ̲3̲.̲1̲,̲ ̲4̲.̲1̲,̲ ̲5̲.̲1̲)̲

         This function sets up the protocol (= device/line handler)
         private data area within the STI handler.

         C̲h̲a̲n̲n̲e̲l̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲1̲.̲2̲,̲ ̲2̲.̲2̲,̲ ̲3̲.̲2̲,̲ ̲4̲.̲2̲,̲ ̲5̲.̲2̲)̲

         This function configures the LTUX Function Sub-package
         for the communication type and sets up V24 accordingly.

         C̲o̲n̲t̲r̲o̲l̲ ̲C̲h̲a̲n̲n̲e̲l̲

         This function is the capability of the creator of the
         channel to request status information, to modify configuration
         and to set up channel.

         -   For all handlers to request statistics

         -   For VDU handler to initialize the VDU and to request
             actual settings within the VDU.

         C̲l̲o̲s̲e̲ ̲C̲h̲a̲n̲n̲e̲l̲

         This function is the reverse of OPEN All transfers
         shall be cancelled.

         S̲u̲b̲d̲e̲v̲i̲c̲e̲ ̲A̲l̲l̲o̲c̲a̲t̲i̲o̲n̲ ̲(̲1̲.̲2̲.̲4̲)̲

         The VDU handler shall as the only one within the LTUX
         Handler sub-package support the concept of multidropped
         terminals on a single channel since the VDU is configured
         with three splits each defined as two terminals, one
         for data, one for control. The channel control function
         here covers the capability to create more than one
         terminal and the coordination of terminal creation.

         T̲e̲r̲m̲i̲n̲a̲l̲ ̲C̲o̲n̲t̲r̲o̲l̲

         This function deals with creation and deletion of sub-devices
         in DAMOS sense as well as control functions such as
         definition of "Break". For VDUs a multiple set of terminals
         is defined for one channel.


         D̲a̲t̲a̲ ̲T̲r̲a̲n̲s̲f̲e̲r̲

         This function group is a cover for data transfer for
         the device/lines.

         V̲D̲U̲

         Output request control. To select next output to be
         performed. The output may originate from any of the
         terminals defined for data interface.

         Input request control. To select which input shall
         be processed next. As the input is a two-way communication
         an arm command followed by input from the terminal,
         it must be coordinated with output:

         I̲n̲p̲u̲t̲/̲O̲u̲t̲p̲u̲t̲ ̲S̲c̲h̲e̲d̲u̲l̲i̲n̲g̲

         The functions to coordinate output for arm commands
         as well as output of data are collected under this
         heading.

         V̲D̲U̲ ̲C̲o̲m̲m̲u̲n̲i̲c̲a̲t̲i̲o̲n̲

         The Handler communicates with the VDU by transferring
         data to the LTUX function sub-package, which forwards
         these data.

         M̲S̲T̲P̲,̲ ̲P̲T̲P̲,̲ ̲T̲R̲C̲/̲P̲T̲P̲

         Data transfer for these devices/lines are transparent
         to the handler, except that timeouts or errors are
         returned to the handler.

         O̲C̲R̲

         The data transfer for the OCR is protocol controlled.
         The next input from the OCR is requested when an outstanding
         input request is available. The protocol is fully controlled
         by the OCR handler.





4.2.2.2  S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The LTUX Handler Subpackage is organized as a set of
         protocol routines (DAMOS Term) within the STI handler.

         The Low Speed Line Handler handles MSTP, PTP/PTR and
         TRC/Point-to-Point interfaces.

         The OCR Handler handles the OCR.

         The VDU Handler handles the VDU.

         For the software hierarchy the numbers correspond to
         the numbering in the corresponding flowgram.



4.2.2.2.1    V̲D̲U̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The hierarchy corresponding to the control flow in
         section 4.2.2.3.1 is shown in figure 4.2.2.2.1-1 to
         13.

         The VDU Handler consists of two major parts.

         The first part, accessed via the request entry, handles
         all TMS initiated requests.

         The second part, accessed via the TDX response received
         entry handles asynchronous answers to requested data
         transfers.










           Figures 4.2.2.2.1-1 to 4.2.2.2.1-13


4.2.2.2.2    O̲C̲R̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The OCR Handler consists of two parts. The first part,
         accessed via the request entry, handles all TMS initiated
         requests. The second part, accessed via the TDX response
         received entry handles asynchronous answers to requested
         data transfers.

         The OCR Handler software break down is shown in figure
         4.2.2.2.2-1 to -9.














            Figures 4.2.2.2.2-1 to 4.2.2.2.2-9



4.2.2.2.3    L̲o̲w̲ ̲S̲p̲e̲e̲d̲ ̲L̲i̲n̲e̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲(̲L̲S̲L̲H̲)̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The LSLH has two major software parts.

         One part is servicing all requests from TMS (called
         the request entry), the other part servicing TDX responses
         signalling that a transfer or part of a transfer has
         been completed.

         Figures 4.2.2.2.3-1 to -8 give the hierarchy of routines.








            Figures 4.2.2.2.3-1 to 4.2.2.2.3-8


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



4.2.2.3.1    V̲D̲U̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲F̲l̲o̲w̲

         The VDU handler transfers data from/to a number of
         sources to/from the LTUX.

         The sources are:

         1)  The creator of the channel will by means of Control
             Channel commands set up the VDU. The Control Channel
             commands are output followed by input.

         2)  Output from data terminals.

         3)  Input to data terminals.

         4)  Input of control info.

         The environment is shown in figure 4.2.2.3.1-1 and
         the data transport mechanisms in fig. 4.2.2.3.1-2.








            Figures 4.2.2.3.1-1 to 4.2.2.3.1-2



   VDU HANDLER REQUEST ENTRY (1.1)

   CHANNEL COMMAND

   S̲U̲B̲D̲E̲V̲I̲C̲E̲ ̲C̲O̲M̲M̲A̲N̲D̲ ̲(̲1̲.̲1̲.̲1̲)̲           C̲H̲A̲N̲N̲E̲L̲ ̲C̲O̲M̲M̲A̲N̲D̲
                                       ̲(̲1̲.̲1̲.̲2̲)̲

   


   P̲E̲N̲D̲I̲N̲G̲ ̲R̲E̲Q̲U̲E̲S̲T̲ ̲H̲A̲N̲D̲L̲I̲N̲G̲ ̲(̲1̲.̲3̲)̲






   SUBDEVICE COMMAND (1.1.1)


   SUBDEVICE NOT CREATED         PUT ERROR CODE

   DELETE                        D̲E̲L̲E̲T̲E̲ ̲S̲U̲B̲D̲E̲V̲I̲C̲E̲ ̲(̲1̲.̲1̲.̲1̲.̲1̲)̲

   CONTROL                       C̲O̲N̲T̲R̲O̲L̲ ̲S̲U̲B̲D̲E̲V̲I̲C̲E̲ ̲(̲1̲.̲1̲.̲1̲.̲2̲)̲

   INPUT                         R̲E̲Q̲U̲E̲S̲T̲ ̲I̲N̲P̲U̲T̲ ̲(̲1̲.̲1̲.̲1̲.̲3̲)̲

   ACK INPUT                     A̲C̲K̲ ̲I̲N̲P̲U̲T̲ ̲(̲1̲.̲1̲.̲1̲.̲4̲)̲

   OUTPUT                        R̲E̲Q̲U̲E̲S̲T̲ ̲O̲U̲T̲P̲U̲T̲ ̲(̲1̲.̲1̲.̲1̲.̲5̲)̲

   INIT OUTPUT                   I̲N̲I̲T̲ ̲O̲U̲T̲P̲U̲T̲ ̲(̲1̲.̲1̲.̲1̲.̲6̲)̲

   OUTPUT/INPUT                  R̲E̲Q̲U̲E̲S̲T̲ ̲O̲U̲T̲P̲U̲T̲/̲I̲N̲P̲U̲T̲
                                 ̲(̲1̲.̲1̲.̲1̲.̲7̲)̲

   INIT OUTPUT/INPUT             I̲N̲I̲T̲ ̲O̲U̲T̲P̲U̲T̲/̲I̲N̲P̲U̲T̲ ̲(̲1̲.̲1̲.̲1̲.̲8̲)̲

   REQUEST OUTPUT/INPUT          R̲E̲Q̲U̲E̲S̲T̲ ̲O̲U̲T̲P̲U̲T̲/̲I̲N̲P̲U̲T̲
                                 ̲(̲1̲.̲1̲.̲1̲.̲9̲)̲

   ACK OUTPUT/INPUT              A̲C̲K̲ ̲O̲U̲T̲P̲U̲T̲/̲I̲N̲P̲U̲T̲ ̲(̲1̲.̲1̲.̲1̲.̲1̲0̲)̲

   CANCEL                        C̲A̲N̲C̲E̲L̲ ̲(̲1̲.̲1̲.̲1̲.̲1̲1̲)̲








   DELETE SUBDEVICE (1.1.1.1)


   SET SUBDEVICE NOT CREATED

   ANSWER PENDING REQUESTS

   MARK ONGOING REQUESTS DUMMY

   IS KEYBOARD CURSOR CURRENTLY IN THIS SPLIT

                                                     
                                     PROCESS
                                                     
                                       NEXT
                                                     
                                      INPUT




   CONTROL SUBDEVICE (1.1.1.2)



   REQUEST INPUT (1.1.1.3)

   SUBDEVICE DATA TYPE?                   PUT ERROR

   INPUT ALREADY PENDING                  PUT ERROR
   FOR THIS SUBDEVICE?

   INPUT OF HIGHER
   PRIORITY PENDING?


   CANCEL ANY LOWER
   PRIORITY PENDING INPUT                 PUT PENDING




   K̲E̲Y̲B̲O̲A̲R̲D̲ ̲S̲P̲L̲I̲T̲ ̲C̲O̲N̲T̲R̲O̲L̲
   (̲1̲.̲1̲.̲1̲.̲3̲.̲1̲)̲






   KEYBOARD-SPLIT
   CONTROL (1.1.1.3.1)


   OUTPUT OPERATION ACTIVE

   GENERATE KEYBOARD
   SPLIT SELECT AND
   UNBLOCK KEYBOARD
   COMMAND

   ISSUE TDX OUTPUT REQUEST

   PUT PENDING                                  PUT PENDING
…02…AND ACTIVE

   PUT OUTPUT AND
   OUTPUT/INPUT REQUEST
   FOR THIS SPLIT
   WAIT




   ACK INPUT (1.1.1.4)

   RELEASE BUFFER



   REQUEST OUTPUT (1.1.1.5)


   SUBDEVICE TYPE DATA

   LOAD ERROR CODE                         R̲E̲Q̲U̲E̲S̲T̲ ̲O̲U̲T̲P̲U̲T̲
                                           D̲A̲T̲A̲ ̲(̲1̲.̲1̲.̲1̲.̲5̲.̲1̲)̲




   REQUEST OUTPUT DATA (1.1.1.5.1)


   OUTPUT PENDING                RETURN "TOO MANY REQUESTS"
   ON SUBDEVICE?

   ANY OTHER OUTPUT
   QUEUED FOR CHANNEL

   WAIT

                                 PUT PENDING

   MARK OUTPUT QUEUED            RETURN
   FOR CHANNEL                   "REQUEST QUEUED"

   RETURN OUTPUT
   BUFFER

   





   INIT OUTPUT (1.1.1.6)


   REQUEST TDX TRANSMISSION



   REQUEST OUTPUT/INPUT (1.1.1.7)


   SUBDEVICE TYPE DATA?

                                        R̲E̲Q̲U̲E̲S̲T̲ ̲O̲U̲T̲P̲U̲T̲/̲I̲N̲P̲U̲T̲
   LOAD ERROR CODE                      D̲A̲T̲A̲ ̲(̲1̲.̲1̲.̲1̲.̲7̲.̲1̲)̲






   REQUEST OUTPUT/INPUT DATA (1.1.1.7.1)


   OUTPUT/INPUT PENDING ON      RETURN "TOO MANY REQUESTS"
   SUBDEVICE

   ANY OTHER OUTPUT
   QUEUED FOR CHANNEL?

   KEYBOARD CURSOR 
   CURRENTLY IN THIS SPLIT?

   MARK OUTPUT QUEUED                     PUT PENDING
   FOR CHANNEL

   RETURN OUTPUT                          RETURN
   BUFFER                                 "REQUEST QUEUED"


   PUT PENDING AND ACTIVE



   INIT OUTPUT/INPUT (1.1.1.8)


   REQUEST TDX TRANSMISSION




   REQUEST OUTPUT/INPUT IN (1.1.1.9)


   REQUEST TDX INPUT



   ACK OUTPUT/INPUT (1.1.1.10)


   RELEASE BUFFER


   OUTPUT/INPUT TERMINATED

                                         RESET PENDING
                                 CONDITION





   CANCEL (1.1.1.11)


   REFERRED OPERATION PENDING
   BUT NOT ACTIVE

   REFERRED OPERATION                                
    REMOVE
   NOT PENDING                                       
    PENDING
                                                     
                                  CONDTION

                            RETURN ERROR             
    RETURN
                                                     
                                  COMPLETION

   SET OPERATION DUMMY

   RETURN COMPLETION



   CHANNEL COMMAND (1.1.2)

   INITIALIZE                    I̲N̲I̲T̲I̲A̲L̲I̲Z̲E̲ ̲(̲1̲.̲1̲.̲2̲.̲1̲)̲

   CREATE SUBDEVICE              C̲R̲E̲A̲T̲E̲ ̲S̲U̲B̲D̲E̲V̲I̲C̲E̲ ̲(̲1̲.̲1̲.̲2̲.̲2̲)̲

   OPEN                          O̲P̲E̲N̲ ̲(̲1̲.̲1̲.̲2̲.̲3̲)̲

   REQ. CONTROL                  R̲E̲Q̲.̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲(̲1̲.̲1̲.̲2̲.̲4̲)̲

   INIT CONTROL                  I̲N̲I̲T̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲(̲1̲.̲1̲.̲2̲.̲5̲)̲

   GET CONTROL RESPONSE          C̲O̲N̲T̲R̲O̲L̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲(̲1̲.̲1̲.̲2̲.̲6̲)̲

   ACK CONTROL                   A̲C̲K̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲(̲1̲.̲1̲.̲2̲.̲7̲)̲

   CLOSE                         C̲L̲O̲S̲E̲ ̲(̲1̲.̲1̲.̲2̲.̲8̲)̲



   INITIALIZE (1.1.2.1)


   BUILD MEMORY AREA ACCORDING TO SPECIFIED
   MAXIMUM NUMBER OF SUBDEVICES



   CREATE SUBDEVICE (1.1.2.2)


   SUBDEVICE ALREADY CREATED

                                 RETURN ERROR

   SET SUBDEVICE CREATED



   OPEN (1.1.2.3)


   ISSUE OPEN TO LTUX WITH
   VDU AND BAUDRATE SPECIFIED

   CREATE TDX LOGICAL LINE

   PUT PENDING

   ISSUE TDX CONTROL READ



   REQ CONTROL (1.1.2.4)

   CONTROL TRANSFER ALREADY PENDING


                                           RETURN ERROR

   TYPE VDU     V̲D̲U̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲(̲1̲.̲1̲.̲2̲.̲4̲.̲1̲)̲

   TYPE LTUX    L̲T̲U̲X̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲(̲1̲.̲1̲.̲2̲.̲4̲.̲2̲)̲

   OTHER        RETURN ERROR



   VDU CONTROL (1.1.2.4.1)


   ANY OTHER DATA OUTPUT
   QUEUED FOR CHANNEL

   MARK OUTPUT QUEUED

   RETURN OUTPUT                 PUT PENDING
   BUFFER

                                 RETURN
                                 "REQUEST QUEUED"
   PUT PENDING AND ACTIVE



   LTUX CONTROL (1.1.2.4.2)


   PUT PENDING LTUX CONTROL

   RETURN OUTPUT BUFFER



   INIT CONTROL (1.1.2.5)


   TYPE LTUX

   ISSUE TDX OUTPUT              ISSUE TDX OUTPUT
   DATA CHANNEL                  CONTROL CHANNEL



   CONTROL RESPONSE (1.1.2.6)


   TYPE LTUX?

   REQUEST TDX INPUT             REQUEST TDX INPUT
   DATA                          CONTROL



   ACK CONTROL (1.1.2.7)


   RELEASE BUFFER

   CONTROL TERMINATED?

                                 RESET PENDING CONDITION



   CLOSE (1.1.2.8)


   RETURN ALL PENDING OPERATIONS

   ISSUE CLOSE TO LTUX



   TDX RESPONSE RECEIVED ENTRY (1.2)


   CONTROL IN                    C̲O̲N̲T̲R̲O̲L̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲I̲N̲ ̲(̲1̲.̲2̲.̲1̲)̲

   CONTROL OUT                   C̲O̲N̲T̲R̲O̲L̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲O̲U̲T̲
                                 ̲(̲1̲.̲2̲.̲2̲)̲

   DATA IN                       D̲A̲T̲A̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲I̲N̲ ̲(̲1̲.̲2̲.̲3̲)̲

   DATA OUT                      D̲A̲T̲A̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲O̲U̲T̲ ̲(̲1̲.̲2̲.̲4̲)̲




   P̲E̲N̲D̲I̲N̲G̲ ̲R̲E̲Q̲U̲E̲S̲T̲ ̲H̲A̲N̲D̲L̲I̲N̲G̲ ̲(̲1̲.̲3̲)̲



   CONTROL RESPONSE IN (1.2.1)


   OUTPUT ANSWER?                O̲U̲T̲P̲U̲T̲ ̲A̲N̲S̲W̲E̲R̲ ̲(̲1̲.̲2̲.̲1̲.̲1̲)̲

   COMMAND ANSWER?               C̲O̲M̲M̲A̲N̲D̲ ̲A̲N̲S̲W̲E̲R̲ ̲(̲1̲.̲2̲.̲1̲.̲2̲)̲

   ASYNC. REPORT?                R̲E̲P̲O̲R̲T̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲(̲1̲.̲2̲.̲1̲.̲3̲)̲



   OUTPUT ANSWER (1.2.1.1)


   OUTPUT REQUEST

                                              RETURN 
                                              COMPLETION
   VDU CONTROL OR
   OUTPUT/INPUT?
                                 NO ERROR     PUT NOT
                                              PENDING
                                 PUT DUMMY
   (SPLIT SELECT)                RETURN
                                 ANSWER



   COMMAND ANSWER (1.2.1.2)


   OPEN?    SET OPEN              RETURN COMPLETION

   LTUX CONTROL      GENERATE RESPONSE
   STATISTICS?

   CLOSE             RETURN ANSWER




   REPORT RESPONSE (1.2.1.3)


   UNEXPECTED V24 CHANGE

   LTUX ERROR
                                 CLOSE
                                 (except LTUX close)
   F̲U̲N̲C̲T̲I̲O̲N̲ ̲K̲E̲Y̲
   H̲A̲N̲D̲L̲I̲N̲G̲ ̲(̲1̲.̲2̲.̲1̲.̲3̲.̲1̲)̲
                                 ASYNCHRONOUS REPORT



   FUNCTION KEY HANDLING (1.2.1.3.1)


   BREAK?                        ASYNCHRONOUS
   (SYSTEM KEY)                  REPORT

   ANSWER REQUEST                CANCEL ALL
   INPUT WITH FK                 PENDING AND ACTIVE
                                 TRANSFERS

   PUT NOT PENDING

   RESET WAIT FOR THIS SPLIT



   CONTROL RESPONSE OUT (1.2.2)



   DATA RESPONSE IN (1.2.3)


   DUMMY?                      D̲U̲M̲M̲Y̲ ̲D̲A̲T̲A̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲I̲N̲
                               ̲(̲1̲.̲2̲.̲3̲.̲1̲)̲

   OUTPUT?                     O̲U̲T̲P̲U̲T̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲I̲N̲ ̲(̲1̲.̲2̲.̲3̲.̲2̲)̲

   OUTPUT/INPUT?               O̲U̲T̲P̲U̲T̲/̲I̲N̲P̲U̲T̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲I̲N̲
                               ̲(̲1̲.̲2̲.̲3̲.̲3̲)̲

   VDU CONTROL?                V̲D̲U̲ ̲D̲A̲T̲A̲ ̲I̲N̲ ̲(̲1̲.̲2̲.̲3̲.̲4̲)̲



   DUMMY DATA RESPONSE IN  (1.2.3.1)


   TEST RECORDS RECEIVED

   FINISHED

   ISSUE TDX READ WITH           PUT NOT PENDING
   THE SAME BUFFER               REMOVE DUMMY



   OUTPUT RESPONSE IN (1.2.3.2)


   TEST RETURNED DATA

   FINISHED WITH NO ERROR?

   SOME ERROR?    E̲R̲R̲O̲R̲ ̲I̲N̲P̲U̲T̲

   NEXT REQUEST NOT
   QUEUED                        PUT NOT PENDING

   RETURN BUFFER 
   ASYNCHRONOUSLY TO
   TMS                           RETURN BUFFER

                                 RETURN COMPLETION



   OUTPUT/INPUT RESPONSE IN (1.2.3.3)


   TEST RETURNED RECORDS

   FINISHED WITH NO ERROR?

   SOME ERROR?    E̲R̲R̲O̲R̲ ̲I̲N̲P̲U̲T̲

   NEXT REQUEST NOT
   QUEUED                        PUT NOT PENDING

   RETURN BUFFER 
   ASYNCHRONOUSLY TO
   TMS                           RETURN BUFFER

                                 RETURN COMPLETION



   VDU DATA IN (1.2.3.4)


   TEST RETURNED DATA

   FINISHED WITH NO ERROR?

   SOME ERROR?    E̲R̲R̲O̲R̲ ̲I̲N̲P̲U̲T̲

   NEXT REQUEST NOT
   QUEUED                        PUT NOT PENDING

   RETURN BUFFER 
   ASYNCHRONOUSLY TO
   TMS                           RETURN BUFFER

                                 RETURN COMPLETION



   DATA RESPONSE OUT (1.2.4)


   DUMMY?             D̲U̲M̲M̲Y̲ ̲D̲A̲T̲A̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲O̲U̲T̲ ̲(̲1̲.̲2̲.̲4̲.̲1̲)̲

   OUTPUT?            O̲U̲T̲P̲U̲T̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲O̲U̲T̲ ̲(̲1̲.̲2̲.̲4̲.̲2̲)̲

   OUTPUT/INPUT?      O̲U̲T̲P̲U̲T̲/̲I̲N̲P̲U̲T̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲O̲U̲T̲ ̲(̲1̲.̲2̲.̲4̲.̲3̲)̲

   VDU CONTROL?       V̲D̲U̲ ̲D̲A̲T̲A̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲O̲U̲T̲ ̲(̲1̲.̲2̲.̲4̲.̲4̲)̲

   KEYBOARD SPLIT?    S̲P̲L̲I̲T̲ ̲S̲E̲L̲E̲C̲T̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲(̲1̲.̲2̲.̲4̲.̲5̲)̲



   DUMMY DATA RESPONSE OUT (1.2.4.1)


   PUT NOT PENDING



   OUTPUT RESPONSE OUT (1.2.4.2)


   FINISHED

   CONTINUATION REQUEST
   NOT QUEUED?

   RETURN BUFFER TO 
   TMS ASYNCHRONOUSLY



   OUTPUT/INPUT RESPONSE OUT (1.2.4.3)


   OUTPUT FINISHED

   CONTINUATION REQUEST
   NOT QUEUED?

   RETURN BUFFER TO 
   TMS ASYNCHRONOUSLY



   VDU DATA RESPONSE OUT (1.2.4.4)


   OUTPUT FINISHED

   CONTINUATION REQUEST
   NOT QUEUED?

   RETURN BUFFER TO 
   TMS ASYNCHRONOUSLY



   SPLIT SELECT RESPONSE OUT (1.2.4.5)



   PENDING REQUEST HANDLING (1.3)


   PENDING ACTIVE TRANSFER?

   KEYBOARD SPLIT CONTROL PENDING  PROCESS

   CHANNEL CONTROL PENDING         PROCESS

   SPLIT = 0

   LOOP

      NO MORE SPLITS?  EXIT

      PENDING OUTPUT         PROCESS   EXIT

      PENDING OUTPUT/INPUT   PROCESS   EXIT

      NEXT SPLIT

   POOL



4.2.2.3.2    O̲C̲R̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲F̲l̲o̲w̲

         The OCR handler transfers data from the LTUX to a requestor
         of data.

         The environment for the OCR handler is shown in figure
         4.2.2.3.2-1 and the data transfer mechanism in 4.2.2.3.2-2.







                  Figure 4.2.2.3.2-1 - 2




   OCR HANDLER REQUEST ENTRY (2.1)


   CHANNEL COMMAND

   S̲U̲B̲D̲E̲V̲I̲C̲E̲ ̲C̲O̲M̲M̲A̲N̲D̲ ̲(̲2̲.̲1̲.̲1̲)̲     C̲H̲A̲N̲N̲E̲L̲ ̲C̲O̲M̲M̲A̲N̲D̲ ̲(̲2̲.̲1̲.̲2̲)̲




   P̲E̲N̲D̲I̲N̲G̲ ̲R̲E̲Q̲U̲E̲S̲T̲ ̲H̲A̲N̲D̲L̲I̲N̲G̲ ̲(̲2̲.̲3̲)̲



   SUBDEVICE COMMAND (2.1.1)


   SUBDEVICE NOT CREATED         PUT ERROR CODE

   DELETE?                       D̲E̲L̲E̲T̲E̲ ̲S̲U̲B̲D̲E̲V̲I̲C̲E̲ ̲(̲2̲.̲1̲.̲1̲.̲1̲)̲

   CONTROL?                      C̲O̲N̲T̲R̲O̲L̲ ̲S̲U̲B̲D̲E̲V̲I̲C̲E̲ ̲(̲2̲.̲1̲.̲1̲.̲2̲)̲

   INPUT?                        R̲E̲Q̲U̲E̲S̲T̲ ̲I̲N̲P̲U̲T̲ ̲(̲2̲.̲1̲.̲1̲.̲3̲)̲

   ACK INPUT?                    A̲C̲K̲ ̲I̲N̲P̲U̲T̲ ̲(̲2̲.̲1̲.̲1̲.̲4̲)̲

   CANCEL?                       C̲A̲N̲C̲E̲L̲ ̲(̲2̲.̲1̲.̲1̲.̲5̲)̲

   OTHER?                        P̲U̲T̲ ̲E̲R̲R̲O̲R̲



   DELETE SUBDEVICE (2.1.1.1)


   SET SUBDEVICE NOT CREATED

   ANSWER PENDING REQUEST

   MARK ONGOING REQUEST DUMMY



   CONTROL SUBDEVICE (2.1.1.2)



   REQUEST INPUT (2.1.1.3)

   2 INPUTS PENDING              RETURN
                                 "TOO MANY REQUESTS"

   ONE INPUT PENDING             BUT PENDING RETURN
                                 "QUEUED"

   (NO PENDING INPUT)

   STX BUT                       ISSUE TDX READ
   ETB/ETX NOT RECEIVE           PUT "QUEUED"

   STX NOT RECEIVED              PUT PENDING PUT
                                 "QUEUED"

   ISSUE ACK PUT "QUEUED"



   ACK INPUT (2.1.1.4)

   SET NOT PENDING



   CANCEL (2.1.1.5)


   REQUESTS NOT PENDING          PUT ERROR

   ANSWER REQUEST

   PUT DUMMY




   CHANNEL COMMAND (2.1.2)


   INITIALIZE                    I̲N̲I̲T̲I̲A̲L̲I̲Z̲E̲ ̲(̲2̲.̲1̲.̲2̲.̲1̲)̲

   CREATE SUBDEVICE              C̲R̲E̲A̲T̲E̲ ̲S̲U̲B̲D̲E̲V̲I̲C̲E̲ ̲(̲2̲.̲1̲.̲2̲.̲2̲)̲

   OPEN                          O̲P̲E̲N̲ ̲(̲2̲.̲1̲.̲2̲.̲3̲)̲

   REQ. CONTROL                  R̲E̲Q̲.̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲(̲2̲.̲1̲.̲2̲.̲4̲)̲

   INIT CONTROL                  I̲N̲I̲T̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲(̲2̲.̲1̲.̲2̲.̲5̲)̲

   GET CONTROL RESPONSE          C̲O̲N̲T̲R̲O̲L̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲(̲2̲.̲1̲.̲2̲.̲6̲)̲

   ACK CONTROL                   A̲C̲K̲.̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲(̲2̲.̲1̲.̲2̲.̲7̲)̲

   CLOSE                         C̲L̲O̲S̲E̲ ̲(̲2̲.̲1̲.̲2̲.̲8̲)̲



   INITIALIZE (2.1.2.1)


   BUILD MEMORY AREA FOR ONE SUBDEVICE



   CREATE SUBDEVICE (2.1.2.2)


   ALREADY CREATED

                                 RETURN ERROR

   SET SUBDEVICE CREATED



   OPEN (2.1.2.3)


   ISSUE OPEN TO LTUX

   CREATE TDX LOGICAL LINE

   PUT PENDING

   ISSUE TDX CONTROL READ



   REQ. CONTROL (2.1.2.4)


   CONTROL ALREADY PENDING       PUT ERROR

   PUT PENDING

   RETURN OUTPUT BUFFER



   INIT CONTROL (2.1.2.5)


   NOT LTUX CONTROL

                                 RETURN ERROR

   ISSUE LTUX CONTROL            PUT NOT PENDING



   CONTROL RESPONSE (2.1.2.6)

   REQUEST TDX CONTROL INPUT



   ACK CONTROL (2.1.2.7)


   RELEASE BUFFER

   PUT NOT PENDING



   CLOSE (2.1.2.8)


   RETURN ALL PENDING OPERATIONS

   ISSUE CLOSE TO LTUX



   TDX RESPONSE RECEIVED ENTRY (2.2)


   CONTROL IN                    C̲O̲N̲T̲R̲O̲L̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲I̲N̲ ̲(̲2̲.̲2̲.̲1̲)̲

   CONTROL OUT                   C̲O̲N̲T̲R̲O̲L̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲O̲U̲T̲
                                 ̲(̲2̲.̲2̲.̲2̲)̲

   DATA IN                       D̲A̲T̲A̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲I̲N̲ ̲(̲2̲.̲2̲.̲3̲)̲

   DATA OUT                      D̲A̲T̲A̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲O̲U̲T̲ ̲(̲2̲.̲2̲.̲4̲)̲




   P̲E̲N̲D̲I̲N̲G̲ ̲R̲E̲Q̲U̲E̲S̲T̲ ̲H̲A̲N̲D̲L̲I̲N̲G̲ ̲(̲2̲.̲3̲)̲



   CONTROL RESPONSE IN (2.2.1)


   COMMAND ANSWER?

   (ASYNCHRONOUS REPORT)         C̲O̲M̲M̲A̲N̲D̲ ̲A̲N̲S̲W̲E̲R̲ ̲(̲2̲.̲2̲.̲1̲.̲1̲)̲

   PARITY ERROR

   CLOSE         M̲E̲S̲S̲A̲G̲E̲ ̲E̲R̲R̲O̲R̲
                 (̲2̲.̲2̲.̲5̲)̲

   ISSUE
   ASYNCHRONOUS
   REPORT




   ISSUE TDX CONTROL READ



   COMMAND ANSWER (2.2.1.1)


   CLOSE RESPONSE       SET CLOSED         PUT NOT PENDING
                        RETURN ANSWER

   STATISTICS REQUEST   RETURN STATISTICS  PUT NOT PENDING
   (LTUX CONTROL)

   (OPEN)

   ERROR                RETURN ERROR       PUT NOT PENDING

   BUILD DATA BLOCK
   WITH DC1

   ISSUE BLOCK
   TO TDX



   CONTROL RESPONSE OUT (2.2.2)



   DATA RESPONSE IN (2.2.3)

   PENDING REQUEST DUMMY

   TEST RECORDS RECEIVED         TEST RECORDS
                                 RECEIVED

                                 FINISHED

   D̲A̲T̲A̲ ̲I̲N̲ ̲(̲2̲.̲2̲.̲3̲.̲1̲)̲             ISSUE TDX     PUT NOT
                                 PENDING
                                 READ

                                               REMOVE
                                 DUMMY




   DATA IN (2.2.3.1)


   STX?                          P̲R̲O̲C̲ ̲S̲T̲X̲ ̲(̲2̲.̲2̲.̲3̲.̲1̲.̲1̲)̲

   ETX IN BLOCK                  P̲R̲O̲C̲ ̲E̲T̲X̲ ̲(̲2̲.̲2̲.̲3̲.̲1̲.̲2̲)̲

   STX BEFORE ETX                M̲E̲S̲S̲A̲G̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲2̲.̲2̲.̲5̲)̲

   END OF SEQUENCE               P̲R̲O̲C̲ ̲E̲O̲S̲ ̲(̲2̲.̲2̲.̲3̲.̲1̲.̲3̲)̲

   NO INPUT                      R̲E̲P̲O̲R̲T̲ ̲A̲S̲Y̲N̲C̲

   RETURN BUFFER TO TMS 




   PROC STX (2.2.1)


   PENDING INPUT

   SET STX RECEIVED              ISSUE ACK




   PROC ETX (2.2.2)


   NO INPUT                      ASYNCHRONOUS REPORT

   RETURN

   ISSUE ACK



   PROC EOS (2.2.3)


   NO INPUT                      ERROR

   RETURN BUFFER

   SET ETB RECEIVED



   DATA RESPONSE OUT (2.2.4)


   ACK/NAK                       A̲C̲K̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲(̲2̲.̲2̲.̲4̲.̲1̲)̲

   DC1 (OPEN)                    O̲P̲E̲N̲ ̲T̲E̲R̲M̲I̲N̲A̲T̲E̲ ̲(̲2̲.̲2̲.̲4̲.̲2̲)̲



   ACK RESPONSE (2.2.4.1)


   ETX?

   ISSUE TDX READ



   OPEN TERMINATE (2.2.4.2)


   RETURN COMPLETION 



   MESSAGE ERROR (2.2.5)


   RETURN ERROR

   SET NEXT RESPONSE TO NAK

   SIMULATE ETX RECEIVED



   PENDING REQUEST HANDLING (2.3)


   PENDING ONGOING TRANSFER?

   (NEXT INPUT)

   STX BUT ETB/ETX NOT RECEIVED  ISSUE TDX READ

   STX NOT RECEIVED

   ISSUE ACK