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

⟦43d1bf6a6⟧ Wang Wps File

    Length: 60427 (0xec0b)
    Types: Wang Wps File
    Notes: CPS/SDS/028               
    Names: »2026A «

Derivation

└─⟦4e34bac2f⟧ Bits:30006102 8" Wang WCS floppy, CR 0161A
    └─ ⟦this⟧ »2026A « 

WangText



G…05…G…07…*…08…*…0a…*…0c…*…0e……14……09……14……0a……14……0c……14……0d……14……0f……14……01……14…        …14……05……14……07……13……09……13……0c……13……0e……13……0f……13……01……13…
…13…              …13……06……12……08……12……0a……12……0b……12……0d……12……0f……12……01……12……06……11……0a……11……0c……11……0e……11……0f……11……01……11…
…11……05……11……07……10……09……10……0b……10……0d……10……0f……10…              …0f……08……0f……0a……0f……86…1
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              …02…
              
              
              
              
              
              
              
              
              
              
              …02…
              
              
              …02…
              
              
              
              
              
              
              
              

…02…CPS/SDS/028

…02…820514…02……02…
I/O
 CONTROL
DETAILED
 DESIGN
 SPECIFICATION…02……02…CAMPS








CANCEL ̲RESERVE ̲OUTPUT ̲BUFFER                                     (IF
                                                                 ̲PARAM
                                                                 :
                                                                 SPI
                                                                 ̲PARAM,
             SUBDEV : SUBDEV ̲DATA)
             (CC : COMPLETION ̲CODE)

CANCEL ̲RESERVE ̲OUTPUT ̲BUFFER (IF ̲PARAM: SPI ̲PARAM,
                       SUBDEV:SUBDEV ̲DATA)
                       (CC:COMPLETION ̲CODE)

RR = IF ̲PARAM.REQ ̲RECORD

CASE RR. WORD 3 OF

   CONTROL ?     C̲A̲N̲C̲E̲L̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲(̲F̲i̲g̲ ̲4̲.̲1̲.̲5̲.̲7̲.̲5̲.̲2̲-̲7̲)̲

   DATA ?        CANCEL ̲SUBDEV ̲OUTPUT (SUBDEV)()

END CASE

CC=OK

RETURN



























                    Fig 4.2.3.4.5.5-7


RELEASE ̲OUTPUT ̲BUFFER               (IF ̲PARAM : SPI ̲PARAM,
                                    SUBDEV : SUBDEV ̲DATA)
                                    (CC : COMPLETION ̲CODE)

BREF = IF ̲PARAM. BUFFER ̲ENTRY

BREF EQ OWN ̲SDID. SUBDEVICE ̲ ?
IF.CONTROL ̲BUFFER ̲ENTRY

CANCEL ̲SUBDEV ̲OUTPUT(SUBDEV)()       TERMINATE ̲ONGOING ̲CONTROL()()

RETURN



































Fig 4.2.3.4.5.5-8…86…1     …02…        …02…                        …02…                    
     
TRANSMIT ̲OUTPUT ̲BUFFER              (IF ̲PARAM : SPI ̲PARAM,
                                                                 SUBDEV
                                                                 :
                                                                 SUBDEV
                                                                 ̲DATA)
                                                                 (CC
                                                                 :
                                                                 COMPLETION
                                                                 ̲CODE)

BREF = IF ̲PARAM. BUFFER ̲ENTRY

BUFFER = BREF. PAGE ̲START

START = BREF. BUFFER ̲ADDR

SIZE = BREF. BUFFER ̲SIZE

TYPE = BUFFER (START + BUFFER ̲TYPE ̲OFFSET)

TYPE INDICATE CONTROL?              C̲O̲N̲T̲R̲O̲L̲ ̲O̲U̲T̲P̲U̲T̲ ̲1̲0̲

CASE SUBDEV. PROTOCOL. TYPE OF

              DATA?                 D̲A̲T̲A̲ ̲O̲U̲T̲P̲U̲T̲ ̲1̲7̲

              LCB?                  L̲C̲B̲ ̲O̲U̲T̲P̲U̲T̲ ̲1̲8̲

              ACK?                  A̲C̲K̲ ̲O̲U̲T̲P̲U̲T̲ ̲1̲9̲

              OTHER?    PROTOCOL ̲ERROR (NT ̲SUBDEVICE ̲IF ̲9)

END CASE

RETURN


















Fig. 4.2.3.4.5.5-9…86…1     …02…        …02…                        …02…                   
      
              C̲O̲N̲T̲R̲O̲L̲ ̲O̲U̲T̲P̲U̲T̲ ̲1̲0̲

              CONTROL ̲TYPE = BUFFER (START + CONTROL ̲REQUEST ̲OFFSET)

              CASE CONTROL ̲TYPE OF

                                    INPUT ̲REQUEST                I̲N̲P̲U̲T̲
                                                                 ̲R̲E̲Q̲U̲E̲S̲T̲
                                                                 ̲1̲1̲

                                    CANCEL ̲INPUT ̲REQUEST?        C̲A̲N̲C̲E̲L̲
                                                                 ̲I̲N̲P̲U̲T̲
                                                                 ̲R̲E̲Q̲U̲E̲S̲T̲
                                                                 ̲1̲5̲

                                    CANCEL ̲OUTPUT?               C̲A̲N̲C̲E̲L̲
                                                                 ̲O̲U̲T̲P̲U̲T̲
                                                                 ̲1̲6̲

                                    OTHER?    PROTOCOL ̲ERROR (NT
                                    ̲SUBDEVICE ̲IF ̲10)

              END CASE

              CONTROL ̲COMPLETE EQ FALSE?

              NEXT ̲CONTROL () (CCP)

              CCP NE OK?

              NOTIFY ̲CONTROL ̲BUFFER () ()
























Fig. 4.2.3.4.5.5-10…86…1     …02…        …02…                        …02…                   
      
I̲N̲P̲U̲T̲ ̲R̲E̲Q̲U̲E̲S̲T̲ ̲1̲1̲

SUBDEV. INPUT ̲QEL, REQUESTOR = SUBDEVICE

              Load LDU

SUBDEV. INPUT ̲QEL. REQ ̲REF = BUFFER (START +
                                                 INPUT ̲REQUEST ̲LDU
                                    ̲OFFSET)

CASE SUBDEV. PROTOCOL. TYPE OF

              DATA?                 D̲A̲T̲A̲ ̲I̲N̲P̲U̲T̲ ̲1̲2̲

              LCB?                  L̲C̲B̲ ̲I̲N̲P̲U̲T̲ ̲1̲3̲

              ACK?                  A̲C̲K̲ ̲I̲N̲P̲U̲T̲ ̲1̲4̲

              OTHER?    PROTOCOL ERROR (NT ̲SUBDEVICE ̲IF ̲11)

END CASE



























Fig. 4.2.3.4.5.5-11…86…1   …02…          …02…                        …02…                   
      
              D̲A̲T̲A̲ ̲I̲N̲P̲U̲T̲ ̲1̲2̲

              REQUEST ̲IN ̲CONV ̲INPUT (SUB. INPUT ̲QEL, SUBDEV. PRIORITY)
              ()

              CONTROL ̲COMPLETE = TRUE










































Fig. 4.2.3.4.5.5-12…86…1   …02…          …02…                        …02…                   
      
              L̲C̲B̲ ̲I̲N̲P̲U̲T̲ ̲1̲3̲

              REQUEST ̲DATA ̲INPUT (SUBDEV. INPUT ̲QEL, SUBDEV. PRIORITY)

                                            (CCP, BUFFER ̲REF)

              CCP NE OK?

              SEND ̲INPUT ̲REQUEST (0) ()

              CONTROL ̲COMPLETE = TRUE




































Fig. 4.2.3.4.5.5-13…86…1     …02…        …02…                        …02…                   
      
              A̲C̲K̲ ̲I̲N̲P̲U̲T̲ ̲1̲4̲

                                    This input is not expected but
                                    legal

              LOAD CONTROL BUFFER WITH
              RECEPTION STATE = NOT ̲EXPECTED

              RETURN ̲INPUT ̲DATA (SUBDEV. INPUT ̲QEL, BREF) ()

              CONTROL ̲COMPLETE = FALSE




































Fig. 4.2.3.4.5.5.14…86…1     …02…        …02…                        …02…                   
      
C̲A̲N̲C̲E̲L̲ ̲I̲N̲P̲U̲T̲ ̲R̲E̲Q̲U̲E̲S̲T̲ ̲1̲5̲

LDU = BUFFER (START + CANCEL ̲INPUT ̲LDU ̲OFFSET)

QEL = SUBDEV. INPUT ̲QEL

LDU NE QEL. REQ ̲REF

QEL. REQUESTOR NE SUBDEVICE?

CASE SUBDEV. PROTOCOL. TYPE OF

              DATA?                 CANCEL ̲IN ̲CONV ̲INPUT (QEL) (1)

              LCB?                  CANCEL ̲INPUT (QEL) ()

              OTHER?                PROTOCOL ̲ ̲ERROR (NT ̲SUBDEVICE
                                    ̲14)

END CASE

              No responce expected

CONTROL ̲COMPLETE = TRUE
























Fig. 4.2.3.4.5.5-15…86…1     …02…        …02…                        …02…                   
      
C̲A̲N̲C̲E̲L̲ ̲O̲U̲T̲P̲U̲T̲ ̲1̲6̲

              Search LDU in QELS

LDU = BUFFER (START + CANCEL ̲OUTPUT ̲LDU ̲OFFSET)

INDEX = 1

LOOP

              QEL = SUBDEV. QELS (INDEX)

              LDU EQ QEL. REQ ̲REF?  FOUND = TRUE

              INDEX GE MAX ̲SUBDEV ̲OUTQELS?                       FOUND
                                                                 =
                                                                 FALSE

              INDEX + 1

END LOOP

FOUND EQ FALSE?

CASE SUBDEV. PROTOCOL. TYPE OF

              DATA?                 CANCEL ̲OUT ̲CONV ̲OUTPUT (QEL)
                                    ()

              LCB?                  CANCEL ̲OUTPUT (QEL) ()

              ACK?                  CANCEL ̲ACK ̲OUTPUT (QEL) ()

              OTHER?                PROTOCOL ̲ERROR (NT ̲SUBDEVICE
                                    ̲16)

END CASE

QEL. REQUESTOR = NONE

INSERT (SUBDEV. OUTPUT ̲EMPTY, QEL) ()

CONTROL ̲COMPLETE = TRUE








Fig. 4.2.3.4.5.5-16…86…1     …02…        …02…                        …02…                   
      
 D̲A̲T̲A̲ ̲O̲U̲T̲P̲U̲T̲ ̲1̲7̲

SEND ̲OUT ̲CONV ̲BUFFER (TYPE, SIZE) ()

TYPE INDICATE END OF DATA ?

                                                                 SUBDEV.
                                                                 OUTPUT
                                                                 ̲STATE
                                                                 =
                                                                 IDLE







































Fig. 4.2.3.4.5.5-17…86…1     …02…        …02…                        …02…                   
      
L̲C̲B̲ ̲O̲U̲T̲P̲U̲T̲ ̲1̲8̲

TYPE INDICATE START ̲OF ̲LDU?
OR ENTIRE LDU

SIZE 1 = SIZE                       SETUP ̲FIRST ̲OUTPUT ̲BUFFER
                                                                 (SIZE)
                                                                 (SIZE
                                                                 1)

SEND ̲OUTPUT ̲BUFFER (TYPE, SIZE 1)()

TYPE INDICATE END OF DATA?

                                                                 SUBDEV.
                                                                 OUTPUT
                                                                 ̲STATE
                                                                 =
                                                                 IDLE

































Fig. 4.2.3.4.5.5-18…86…1     …02…        …02…                        …02…                   
      
A̲C̲K̲ ̲O̲U̲T̲P̲U̲T̲ ̲1̲9̲

SEND ̲ACK ̲BUFFER (TYPE, SIZE) ()

TYPE INDICATE END OF DATA?

                                                                 SUBDEV.
                                                                 OUTPUT
                                                                 ̲STATE
                                                                 =
                                                                 IDLE







































Fig. 4.2.3.4.5.5-19…86…1     …02…        …02…                        …02…                   
      
NOTIFY ̲SUBDEVICE ̲FIRST ̲OUTPUT ̲BUFFER (QEL : IO ̲QEL,
                                                         BREF : POINTER)

QEL. ADDI = OWN ̲SDID. OUT ̲CONV?

                                                                 NOTIFY
                                                                 ̲OUT
                                                                 ̲CONV
                                                                 ̲OUTPUT
                                                                 ̲BUFFER
                                                                 (QEL,
                                                                 BREF)
                                                                 ()

SETUP ̲FIRST ̲OUTPUT ̲BUFFER
                                    (BREF) ()

RETURN ̲OUTPUT ̲BUFFER (QEL) ()

RETURN
































Fig. 4.2.3.4.5.5-20…86…1     …02…        …02…                        …02…                   
      
NOTIFY ̲SUBDEVICE ̲SUBSEQUENT ̲OUTPUT ̲BUFFER
                                    (QEL : IO ̲QEL, BUFFER ̲REF : POINTER
              All output single LDU

PROTOCOL ̲ERROR (NT ̲SUBDEVICE ̲IF ̲21)

RETURN








































Fig. 4.2.3.4.5.5-21…86…1     …02…        …02…                        …02…                   
      
SUBDEVICE ̲OUTPUT ̲RESULT (QEL : IO ̲QEL, BUFFER ̲REF : POINTER) ()

QEL. ADDI EQ OWN ̲ SDID. OUTCONV?

                                                                 OUT
                                                                 ̲CONV
                                                                 ̲OUTPUT
                                                                 ̲RESULT
                                                                 (QEL,
                                                                 BREF)
                                                                 ()

              Put the subdevice LDU into the result

BUFFER = BUFFER ̲REF. PAGE ̲START

START = BUFFER ̲REF. BUFFER ̲ADDR

BUFFER (START + TRANSMISSION ̲START ̲LDU ̲OFFSET) =
                                               QEL. REQ ̲REF

SUBDEV = QEL. ADDI. SDDREF

INSERT (SUBDEV. OUTPUT ̲EMPTY, QEL) ()

RETURN ̲INPUT ̲DATA (QEL, BUFFER ̲REF) ()

RETURN
























Fig. 4.2.3.4.5.5-22…86…1     …02…        …02…                        …02…                   
      
NOTIFY ̲SUBDEVICE ̲INPUT ̲REQUEST ̲BUFFER
                                    (QEL : IO ̲QEL, BREF : POINTER)()

SEND ̲INPUT ̲REQUEST (0) ()

RETURN









































Fig. 4.2.3.4.5.5-23…86…1     …02…        …02…                        …02…                   
      
NOTIFY ̲SUBDEVICE ̲FIRST ̲INPUT ̲DATA (QEL : IO ̲QEL,
                                           BUFFER ̲REF : POINTER)()

BUFFER = BUFFER ̲REF. PAGE ̲START

START = BUFFER ̲REF. BUFFER ̲ADDR

QEL. ADDI EQ OWN ̲SDID.              P̲A̲R̲E̲N̲T̲ ̲D̲A̲T̲A̲ ̲2̲6̲
SUBDEVICE ̲IF

D̲A̲T̲A̲ ̲F̲O̲R̲ ̲S̲U̲B̲D̲E̲V̲I̲C̲E̲ ̲2̲5̲

RETURN


































Fig. 4.2.3.4.5.5-24…86…1     …02…        …02…                        …02…                   
      
D̲A̲T̲A̲ ̲F̲O̲R̲ ̲S̲U̲B̲D̲E̲V̲I̲C̲E̲ ̲2̲5̲ ̲

              Copy subdevice data id

BUFFER (START + LDU ̲ ̲HEAD ̲OFFSET) = QEL. REQ ̲REF

RETURN ̲INPUT ̲DATA (QEL, BUFFER ̲REF) ()








































Fig. 4.2.3.4.5.5-25…86…1     …02…        …02…                        …02…                   
      
P̲A̲R̲E̲N̲T̲ ̲D̲A̲T̲A̲ ̲2̲6̲

TYPE = BUFFER (START + BUFFER ̲TYPE ̲OFFSET)

TYPE DOES NOT INDICATE
ENTIRE ̲LDU?                         PROTOCOL ̲ERROR (NT ̲
                                                                 SUBDEVICE
                                                                 ̲IF
                                                                 ̲)

SEGTYP = BUFFER (START + NT ̲SEGMENT ̲TYPE
                                    OFFSET)

IS = QEL. REQ ̲REF

IS. BUFFER ̲ENTRY. DEVICE ̲BUFFER ̲ID = BUFFER ̲REF

COPY BUFFER ̲REF ADDRESS PARAMETERS TO
IS. BUFFER ̲ENTRY ADDRESS PARAMETERS

SEGTYP EQ LCB?

                                                                 L̲C̲B̲
                                                                 ̲I̲N̲P̲U̲T̲
                                                                 ̲2̲7̲

NOTIFY ̲IN ̲CONV ̲DATA
(QEL,IS. BUFFER ̲ENTRY)()























Fig. 4.2.3.4.5.5-26…86…1     …02…        …02…                        …02…                   
      
L̲C̲B̲ ̲I̲N̲P̲U̲T̲ ̲2̲7̲

BE = IS. BUFFER ̲ENTRY

BE. BUFFER ̲ADDR + 2

BE. BUFFER ̲SIZE-2

BUF = BE. PAGE ̲ADDR

STRT = BE. BUFFER ̲ADDR

BUF (STRT + BUFFER ̲TYPE ̲OFFSET) = DATA, ENTIRE ̲LDU

CASE EXTRACT ̲FIRST (OWN ̲SDID, SUBDEVICE ̲IF. LCB ̲IN ̲REC) (QEL) OF

              FAIL?    INSERT (OWN ̲SDID, SUBDEVICE ̲IF. LCB ̲IN ̲Q,
              BE)

              PASS?    NOTIFY ̲SUBDEVICE ̲FIRST ̲INPUT ̲DATA (QEL, BE)

END CASE


























Fig. 4.2.3.4.5.5-27…86…1     …02…        …02…                        …02…                   
      
NOTIFY ̲SUBDEVICE ̲INPUT ̲DATA
                                    (QEL : IO ̲QEL, BUFFER ̲REF : POINTER)()

RETURN ̲INPUT ̲DATA (QEL, BUFFER ̲REF)()

RETURN









































Fig. 4.2.3.4.5.5-28…86…1     …02…        …02…                        …02…                   
      
SUBDEVICE ̲INPUT ̲RESULT (QEL : IO ̲QEL, BUFFER ̲REF : POINTER) ()

QEL.ADDI. EQ OWN ̲SDID?              P̲A̲R̲E̲N̲T̲ ̲D̲A̲T̲A̲ ̲3̲1̲

D̲A̲T̲A̲ ̲F̲O̲R̲ ̲A̲ ̲S̲U̲B̲D̲E̲V̲I̲C̲E̲ ̲3̲0̲ ̲

RETURN








































Fig. 4.2.3.4.5.5-29…86…1     …02…        …02…                        …02…                   
      
D̲A̲T̲A̲ ̲F̲O̲R̲ ̲A̲ ̲S̲U̲B̲D̲E̲V̲I̲C̲E̲ ̲3̲0̲

BUFFER = BUFFER ̲REF. PAGE ̲START

START = BUFFER ̲REF. BUFFER ̲ADDR

BUFFER (START + RECEPTION ̲STATUS ̲LDU ̲OFFSET) =
              QEL. REQ ̲REF

RETURN ̲INPUT ̲DATA (QEL, BUFFER ̲REF) ()





































Fig. 4.2.3.4.5.5-30…86…1         …02…   …02…   …02…   …02…                                      
     
              P̲A̲R̲E̲N̲T̲ ̲D̲A̲T̲A̲ ̲3̲1̲

                                    The protocol has failed, the
                                    subdevice is removed by SSC.


              RELEASE ̲INPUT ̲BUFFER (BUFFER ̲REF) ( )








































                     Figure 4.2.3.4.5.5-31


         CANCEL ̲SUBDEV ̲OUTPUT(SUBDEV:SUBDEV ̲DATA)()

         CASE SUBDEV.PROTOCOL.TYPE OF

             DATA?   D̲A̲T̲A̲ ̲3̲3̲

             LCB?    L̲C̲B̲ ̲3̲4̲

             ACK?    A̲C̲K̲ ̲3̲5̲

             OTHER?  PROTOCOL ̲ERROR (NT ̲SUBDEVICE ̲IF ̲)

         END CASE


         RETURN































                  Figure 4.2.3.4.5.5-32


         D̲A̲T̲A̲ ̲3̲3̲

         QEL = SUBDEV.OUT ̲QEL

         SUBDEV.OUTPUT ̲STATE = IDLE

         CANCEL ̲OUT ̲CONV ̲OUTPUT (QEL)()

         INSERT (SUBDEV.OUTPUT ̲EMPTY, QEL)()






































                  Figure 4.2.5.4.5.5-33


         L̲C̲B̲ ̲3̲4̲

         QEL = SUBDEV.OUT ̲QEL

         SUBDEV.OUTPUT ̲STATE = IDLE

         CANCEL ̲OUT ̲CONV ̲OUTPUT (QEL)()

         INSERT (SUBDEV.OUTPUT ̲EMPTY, QEL)()






































                  Figure 4.2.5.4.5.5-34


         A̲C̲K̲ ̲3̲5̲

         QEL = SUBDEV.OUT ̲QEL

         SUBDEV.OUTPUT ̲STAT = IDLE

         CANCLE ̲ACK ̲OUTPUT(QEL)()








































                  Figure 4.2.3.4.5.5-35


     INITIALIZE ̲SUBDEVICE ̲INTERFACE(PARAM:OPEN ̲SUBDEVICE
     ̲PARAM)()

     P = OWN ̲SDID.SUBDEVICE ̲IF

     P.CONTROL ̲STATE = IDLE

     INIT ̲QD (P.ONGOING ̲CONTROL)()

     INIT ̲QD(P.PENDING ̲CONTROL)()

     INTI CONTROL ̲BUFFER ̲ENTRY

     INIT ̲OUT ̲CONV (PARAM:OPEN ̲SUBDEVICE ̲PARAM)()

     INIT ̲IN ̲CONV(PARAM: OPNE ̲SUBDEVICE ̲PARAM)()

     INIT ̲IS ̲DATA()()

     RETURN




























                Figure 4.2.3.4.5.5-36


         INIT ̲IS ̲DATA ()()

         ISP = OWN ̲SDID.SUBDEVICE ̲IF.IS

         INDEX = 1

         LOOP

             IS = ISP(INDEX)

             INITIALIZE IS

             INSERT (OWN ̲SDID.SUBDEVICE ̲IF.IS ̲EMTPY, IS)()

             INDEX GE SUBDEVICE ̲INPUT ̲MAX

             INDEX + 1

         END LOOP

         RETURN


























                  Figure 4.2.3.4.5.5-37


4.2.3.4.6    N̲T̲ ̲S̲P̲I̲ ̲m̲o̲d̲u̲l̲e̲

         Refer 4.1.5.2



4.2.3.4.7    NT ̲EHP module

         Refer 4.1.5.1

         Modify such that TMS calls to 

             ENABLE ̲INPUT
             GET ̲OUTPUT ̲BUFFER

         are returned with CC = NOT ̲IMPLEMENTED

         Delete calls to

             CANCEL ̲USER ̲OPERATION
             USER ̲OUTPUT
             ACK ̲DATA ̲INPUT
             ENABLE ̲INPUT
             GET ̲OUTPUT ̲BUFFER


4.2.3.4.8    N̲T̲ ̲I̲N̲P̲U̲T̲ ̲C̲O̲N̲V̲E̲R̲T̲E̲R̲ ̲m̲o̲d̲u̲l̲e̲



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

         The NT INPUT CONVERTER module converts the incoming
         NT data into IOC records used internally in CAMPS.
         This means put lines into separate IOC records based
         on:

         -   "CR, CR, LF" or "CR, LF" terminates a normal line
             and marks the IOC record with LINE ̲FLAG

         -   More than 69 data characters lead to a termination
             of the 69 characters in a record marked DATA ̲FLAG

         -   Encountered SI, SO are ignored (does not count)

         -   Other control characters make the record in collection
             be terminated with DATA ̲FLAG and the control characters
             be collected in a record marked CONTROL ̲FLAG



4.2.3.4.8.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲

         The module has following functional entries

         INIT ̲IN ̲CONV(PARAM: OPEN ̲SUBDEVICE ̲PARAM)( )

         CLEAN ̲IN ̲CONV( ) ( )

         REQUEST ̲IN ̲CONV ̲INPUT(QEL: IO ̲QEL, PRI: PRIORITY ̲TYPE)(
         )

         RELEASE ̲IN ̲CONV ̲BUFFER( ) ( )

         NOTIFY ̲IN ̲CONV ̲DATA(BREF: POINTER)( )

         CANCEL ̲IN ̲CONV ̲INPUT(QEL: IO ̲QEL)( )



         The module calls following functional entries of other
         modules

         NOTIFY ̲SUBDEVICE ̲FIRST ̲INPUT ̲DATA(QEL: IO ̲QEL,
                               BREF: POINTER)( )

         NOTIFY ̲SUBDEVICE ̲INPUT ̲DATA(QEL: IO ̲QEL, BREF: POINTER)(
         )

         SUBDEVICE ̲INPUT ̲RESULT(QEL: IO ̲QEL, BREF: POINTER)(
         )

         RELEASE ̲INPUT ̲SUPPORT ̲BUFFER(BREF: POINTER)( )

         The module shares following procedure with other modules

         INIT ̲INPUT ̲CONVERT(STATE: INP ̲CONV ̲STATE)( )

         INPUT ̲CONVERT(STATE: INP ̲CONV ̲STATE, BREF1: POINTER,
                       BREF2: POINTER)( )



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

         B̲a̲s̲i̲c̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲

         INIT ̲IN ̲CONV
         CLEAN ̲IN ̲CONV

         R̲e̲q̲u̲e̲s̲t̲o̲r̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲

         REQUEST ̲IN ̲CONV ̲INPUT
         RELEASE ̲IN ̲CONV ̲BUFFER
         CANCEL ̲IN ̲CONV ̲INPUT

         D̲a̲t̲a̲ ̲N̲o̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         NOTIFY ̲IN ̲CONV ̲DATA

         L̲o̲c̲a̲l̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲

         EMPTY ̲IN ̲CONV ̲DATA ̲Q
         NEXT ̲IN ̲CONV


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

         TYPE    IN ̲CONV ̲DATA = RECORD

                     STATE        :(IDLE, ACTIVE, CANCELLED)

                     PENDING      : QD

                     ONGOING      : QD

                     BUFFER ̲ENTRY : BUFFER ̲ENTRY ̲RECORD

                     BUFFER       : ARRAY(1..IN ̲CONV ̲BUF ̲WORD
                                  ̲SIZE)
                                    OF INTEGER

                     DATA ̲Q       : QD

                     CONV         : INP ̲CONV ̲STATE

         END



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



         INIT ̲IN ̲CONV (PARAM: OPEN ̲SUBDEVICE ̲PARAM)( )

         I   = OWN ̲SDID.IN ̲CONV

         I.STATE = IDLE

         INIT ̲QD(I.PENDING)( ) 

         INIT ̲QD(I.ONGOING)( )

         MAKE    I.BUFFER ̲ENTRY POINT TO I.BUFFER

         INIT ̲QD(I.DATA ̲Q)( )

         INIT ̲INPUT ̲CONVERT(I.CONV)( )

         RETURN




























                   Figure 4.2.3.4.8.5-1



         CLEAN ̲IN ̲CONV( )( )

         EMPTY ̲IN ̲CONV ̲DATA ̲Q( )( )

         RETURN








































                   Figure 4.2.3.4.8.5-2



         REQUEST ̲IN ̲CONV ̲INPUT(QEL: IO ̲QEL, PRI: PRIORITY ̲TYPE)(
         )

         I = OWN ̲SDID.IN ̲CONV

         QUEUE ̲PRIORITIZED(I.PENDING, QEL, PRI)( )

         I.STATE NE IDLE?

         NEXT ̲IN ̲CONV( )(CCP)

         RETURN


































                   Figure 4.2.3.4.8.5-3



         RELEASE ̲IN ̲CONV ̲BUFFER( )( ) 

         INPUT WAS COMPLETE?      NEXT ̲IN ̲CONV( )(CCP)

         DATA ̲Q EMPTY?

         CONVERT BY CA TO INPUT ̲CONVERT


         RETURN
































                   Figure 4.2.3.4.8.5-4



         CANCEL ̲IN ̲CONV ̲INPUT(QEL: IO ̲QEL)( )

         I = OWN ̲SDID.IN ̲CONV

         CASE    QEL.QUEUE OF

             I.ONGOING?           C̲A̲N̲C̲E̲L̲ ̲O̲N̲G̲O̲I̲N̲G̲

             I.PENDING?           C̲A̲N̲C̲E̲L̲ ̲P̲E̲N̲D̲I̲N̲G̲

             OTHER?

         END CASE

         RETURN






























                   Figure 4.2.3.4.8.5-5



         C̲A̲N̲C̲E̲L̲ ̲O̲N̲G̲O̲I̲N̲G̲

         I.STATE = CANCELLED

         DELETE DATA ̲Q CONTENT
         UP UNTIL AND INCLUDING
         END OF MESSAGE SEGMENT

         COMPLETE MESSAGE DELETE?

                                  I.STATE = IDLE

         CASE    EXTRACT ̲FIRST(I.ONGOING)(QEL) OF

             FAIL?   PROTOCOL ̲ERROR(NT ̲IN ̲CONV ̲6)

             PASS?

         END CASE

         I.STATE NE IDLE?

         NEXT ̲IN ̲CONV( )(CCP)























                   Figure 4.2.3.4.8.5-6



         C̲A̲N̲C̲E̲L̲ ̲P̲E̲N̲D̲I̲N̲G̲

         CASE    EXTRACT ̲SPECIFIED(I.PENDING, QEL)( ) OF

             FAIL?   PROTOCOL ̲ERROR(NT ̲IN ̲CONV ̲7)

             PASS?

         END CASE




































                   Figure 4.2.3.4.8.5-7



         NOTIFY ̲IN ̲CONV ̲DATA(BREF: POINTER)( )

         I = OWN ̲SDID.IN ̲CONV

         I.STATE EQ CANCELLED?

                              BUFFER INDICATE END ̲EOM = TRUE
         I.STATE EQ IDLE?     OF MESSAGE

                              EOM = FALSE

         CONVERT DATA

                              RELEASE ̲INPUT ̲SUPPORT ̲BUFFER(BREF)(
                              )

                              EOM NE TRUE?

                              I.STATE = IDLE

                              NEXT ̲IN ̲CONV( )( )



         RETURN





















                   Figure 4.2.3.4.8.5-7



         EMPTY ̲IN ̲CONV ̲DATA ̲Q( )( )

         LOOP

             CASE    EXTRACT ̲FIRST(OWN ̲SDID.IN ̲CONV.DATA ̲Q)(BUF)
                     OF

                 FAIL?

                 PASS?        RELEASE ̲INPUT ̲BUFFER(BUF)( )

             END CASE

         END LOOP

         RETURN
































                   Figure 4.2.3.4.8.5-8



         NEXT ̲IN ̲CONV( )(CC = COMPLETION ̲CODE)

         I = OWN ̲SDID.INPUTTER

         CASE    EXTRACT ̲FIRST(I.PENDING)(QEL) OF

             FAIL?   CC = NO ̲PENDING ̲INPUT

             PASS?

         END CASE

         QUEUE(I.ONGOING, QEL)( )

         I.STATE = ACTIVE

         IF DATA ̲Q IS NOT EMPTY CONVERT
         BY CALL TO INPUT ̲CONVERT

         IF BUFFER FULL OR MESSAGE COMPLETE
         NOTIFY REQUESTOR OF DATA

         CC = OK

         RETURN




















                   Figure 4.2.3.4.8.4-8



4.2.3.4.9    N̲T̲ ̲O̲U̲T̲P̲U̲T̲ ̲C̲O̲N̲V̲E̲R̲T̲E̲R̲ ̲M̲o̲d̲u̲l̲e̲



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

         This module converts the IOC records received from
         the application into segments for transmission over
         the NT link.

         Segments are generated as entire ̲LDU's and always filled
         to the size of 512 bytes except for the last segment
         of a message.



4.2.3.4.9.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲

         The NT ̲OUTPUT ̲CONVERTER module is interfaced via following
         calls

         INIT ̲OUT ̲CONV(PARAM: OPEN ̲SUBDEVICE ̲PARAM)( )

         CLEAN ̲OUT ̲CONV( )( )

         REQUEST ̲OUT ̲CONV ̲OUTPUT(QEL: IO ̲QEL, PRI: PRIORITY)
                     (CC: COMPLETION ̲CODE, BREF: POINTER)

         REQUEST ̲NEXT ̲OUT ̲CONV ̲BUFFER( )(CC: COMPLETION ̲CODE,
                                         BREF: POINTER)

         SEND ̲OUT ̲CONV ̲BUFFER(TYPE: BUFFER ̲TYPES,
                              SIZE: INTEGER)( )

         CANCEL ̲OUT ̲CONV(QEL: IO ̲QEL)( )

         NOTIFY ̲OUT ̲CONV ̲OUTPUT ̲BUFFER(QEL: IO ̲QEL, BREF ̲POINTER)(
         )

         OUT ̲CONV ̲OUTPUT ̲RESULT(QEL: IO ̲QEL, BREF: POINTER)(
         )

         The NT ̲OUTPUT ̲CONVERTER module calls following entries
         of other modules

         REQUEST ̲DATA ̲OUTPUT(QEL: IO ̲QEL, PRI: PRIORITY ̲TYPE)
                            (CC: COMPLETION ̲CODE, BREF: POINTER)

         SEND ̲OUTPUT ̲BUFFER (TYPE: BUFFER ̲TYPES, LENGTH: INTEGER)


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

         B̲a̲s̲i̲c̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲

         INIT ̲OUT ̲CONV
         CLEAN ̲OUT ̲CONV

         E̲n̲t̲r̲y̲ ̲P̲o̲i̲n̲t̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲

         REQUEST ̲OUT ̲CONV ̲OUTPUT
         REQUEST ̲NEXT ̲OUT ̲CONV ̲BUFFER
         SEND ̲OUT ̲CONV ̲BUFFER
         NOTIFY ̲OUT ̲CONV ̲OUTPUT ̲BUFFER
         CANCEL ̲OUT ̲CONV ̲OUTPUT
         OUT ̲CONV ̲OUTPUT ̲RESULT

         L̲o̲c̲a̲l̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲

         REQUEST ̲OUT ̲CONV ̲BUFFER
         RELEASE ̲OUT ̲CONV ̲BUFFER
         CANCEL ̲REQUEST ̲OUT ̲CONV ̲BUFFER



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

         TYPE OUT ̲CONV ̲DATA = RECORD

                 STATE                  : (IDLE, FIRST ̲BUFFER,
                                        
                                          SUBSEQUENT ̲BUFFER,
                                          
                                          CANCELLED)

                 BUFFER ̲STATE           : (NO ̲BUF, PENDING ̲RESERVE,
                                          DELIVERED)

                 PENDING                : QD

                 ONGOING                : QD

                 WAIT ̲COMPLETION        : QD

                 BUFFER ̲ENTRY           : POINTER

                 OUTPUT ̲BUFFER ̲ENTRY    : POINTER

                 BUFFER ̲POOL            : OUT ̲CONV ̲BUFFER ̲POOL

                 CONVERT                : OUT ̲CONVERT ̲STATUS

                 CONVERT ̲STATE          : (IDLE, OUT ̲BUFFER
                                        ̲FULL,
                                           INPUT ̲BUFFER ̲EMPTY




                 OUT ̲QELS         : ARRAY(1..NT ̲OUT ̲CONV ̲OUT
                                  ̲QELS)
                                    OF IO ̲QEL

                 OUT ̲EMPTY        : QD

                 INPUT ̲BUFFER ̲TYPE: BUFFER ̲TYPES

                 REQ ̲RECORD       : REQ ̲RECORD ̲TYPE

             END


         TYPE    BUF ̲CONV ̲BUFFER ̲POOL = RECORD

                 REQ ̲Q            : QD

                 EMPTY            : QD

                 BUFFER           : ARRAY(1..OUT ̲CONV ̲BUFFER
                                  ̲SIZE)
                                    OF BYTES

                 BUFFER ̲ENTRY     : BUFFER ̲ENTRY

             END




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





  REQUEST ̲OUT ̲CONV ̲OUTPUT(QEL: IO ̲QEL, PRIORITY: PRIORITY
  ̲TYPE)
                           (CC: COMPLETION ̲CODE, BUFFER
                     ̲ REF:POINTER)

  QUEUE ̲PRIORITIZED(OWN ̲SDID.OUT ̲CONV.PENDING, PRIORITY,
  QEL)( )

  OWN ̲SDID.OUT ̲CONV.STATE         CC = REQUEST ̲QUEUED
  NE IDLE               ?

  NEXT ̲OUT ̲CONV( )(CCP)

  CCP NE OK?     CC = REQUEST ̲QUEUED

  OWN ̲SDID.OUT ̲CONV.BUFFER ̲STATE = DELIVERED

  BUFFER ̲REF = OWN ̲SDID.OUT ̲CONV.BUFFER ̲ENTRY

  CC = OK



  RETURN























               Figure 4.2.3.4.9.5.1



  REQUEST ̲NEXT ̲OUT ̲CONV ̲BUFFER( )(CC: COMPLETION ̲CODE,
                                  BUFFER ̲ENTRY: POINTER)

  OWN ̲SDID.OUT ̲CONV.BUFFER ̲STATE = PENDING ̲RESERVE

  REQUEST ̲OUT ̲CONV ̲BUFFER(OWN ̲SDID.OUT ̲CONV.REQ ̲RECORD)
                         (CCP, BUFFER ̲REF)

  CCP EQ REQUEST ̲QUEUED?          CC = REQUEST ̲QUEUED

  OWN ̲SDID.OUT ̲CONV.BUFFER ̲ENTRY = BUFFER ̲ENTRY

  OWN ̲SDID.OUT ̲CONV.BUFFER ̲STATE = DELIVERED

  CC = OK


  RETURN


























               Figure 4.2.3.4.9.5-2




  SEND ̲OUT ̲CONV ̲BUFFER(TYPE: BUFFER ̲TYPES, SIZE: INTEGER)
                      ( )

  SAVE LDU FOR BUFFERS CONTAINING LDU ̲ID

  0 = OWN ̲SDID.OUT ̲CONV

  0.INPUT ̲BUFFER ̲TYPE = BUFFER ̲TYPES

  0.CONVERT.IN ̲SIZE = SIZE

  CONVERT ̲STATE EQ IDLE?

                                  G̲E̲T̲ ̲B̲U̲F̲F̲E̲R̲

                                  NONE ̲AVAILABLE?

                                                    0.CONVERT
                                  ̲STATE =
                                                    AWAIT
                                  ̲OUTPUT ̲B

  OUTPUT ̲CONVERT(0.BUFFER ̲ENTRY, 0.OUTPUT ̲BUFFER ̲ENTRY,
                 0.CONVERT, 0.CONVERT ̲STATE)( )

  0.CONVERT ̲STATE EQ?
  OUT ̲BUFFER ̲FULL OR
  IDLE                            SEND ̲OUTPUT ̲BUFFER(ENTIRE
                                  ̲LDU,
                                  0.CONVERT.OUT ̲SIZE)(
                                  )

  0.CONVERT ̲STATE EQ INPUT ̲BUFFER ̲ENTRY?
         OR IDLE
                                       RELEASE ̲OUT ̲CONV
                                  ̲BUFFER(0.
                                       BUFFER ̲ENTRY)(
                                  )

                 0.INPUT ̲BUFFER ̲TYPE
                 INDICATE END OF LDU  ?


                                       PROC ̲FOR ̲END ̲OF
                                  ̲OUT ̲CONV( )( )


  RETURN



               Figure 4.2.3.4.9.5-3



  G̲E̲T̲ ̲B̲U̲F̲F̲E̲R̲

  CASE   EXTRACT ̲FIRST(0.OUT ̲EMPTY)(QEL) OF

      FAIL?      PROTOCOL ̲ERROR(NT ̲OUT ̲CONV ̲Y)

      PASS?

  END CASE

  QEL.REQUESTOR = SUBDEVICE ̲IF

  QEL.REQ ̲REF = ADDRESS OF OWN ̲SDID.OUT ̲CONV

  REQUEST ̲DATA ̲OUTPUT(QEL, SUBDEVICE ̲PRIORITY)
                     (CCP, BUFREF)

  CCP NE OK?         NONE ̲AVAILABLE = TRUE

  NON ̲AVAILABLE = FALSE

  0.OUTPUT ̲BUFFER ̲ENTRY = BUFREF























               Figure 4.2.3.4.9.5-4



  NOTIFY ̲OUT ̲CONV ̲OUTPUT ̲BUFFER(QEL: IO ̲QEL, BREF: POINTER)(
  )

  0 = OWN ̲SDID.OUT ̲CONV

  0.OUTPUT ̲BUFFER ̲ENTRY = BREF

  OUTPUT ̲CONVERT(0.BUFFER ̲ENTRY, 0.OUTPUT ̲BUFFER ̲ENTRY,
                 0.CONVERT, 0.CONVERT ̲STATE)( )

  0.CONVERT ̲STATE EQ OUT ̲BUFFER ̲FULL?
  OR IDLE                             SEND ̲OUTPUT ̲BUFFER
                                     (ENTIRE ̲LDU, 0.CONVERT.OUT
                                  ̲SIZE)

  0.CONVERT ̲STATE EQ INPUT ̲BUFFER ̲EMP-
  TY OR IDLE  ?

                                     RELEASE ̲OUT ̲CONV
                                  ̲BUFFER
                                    (0.BUFFER ̲ENTRY)(
                                  )

                 0.INPUT ̲BUFFER ̲TYPE
                 INDICATE END OF LDU  ?


                                      PROC ̲FOR ̲END ̲OF
                                  ̲OUT ̲CONV
                                      ( )( )

  RETURN


















               Figure 4.2.3.4.9.5-5



  CANCEL ̲OUT ̲CONV(QEL: IO ̲QEL)( )

  0 = OWN ̲SDID.OUT ̲CONV

  CASE   QEL.QUEUE OF

     0.PENDING?      C̲A̲N̲C̲E̲L̲ ̲P̲E̲N̲D̲I̲N̲G̲

       0.ONGOING?                 C̲A̲N̲C̲E̲L̲ ̲O̲N̲G̲O̲I̲N̲G̲

     OTHER?          PROTOCOL ̲ERROR(NT ̲OUT ̲CONV ̲6)

  END CASE

  RETURN






























               Figure 4.2.3.4.9.5-6



  C̲A̲N̲C̲E̲L̲ ̲P̲E̲N̲D̲I̲N̲G̲

  CASE   EXTRACT SPECIFIED(D.PENDING, QEL)( ) OF

     FAIL?       PROTOCOL ̲ERROR(NT ̲OUT ̲CONV ̲7)

     PASS?

  END CASE




































               Figure 4.2.3.4.9.5-7



  C̲A̲N̲C̲E̲L̲ ̲O̲N̲G̲O̲I̲N̲G̲

         The ongoing can not be cancelled.










































               Figure 4.2.3.4.9.5-8



  REQUEST ̲OUT ̲CONV ̲BUFFER(REQ: REQ ̲RECORD)
                         (CC: COMPLETION ̲CODE,
                          BUFFER ̲REF: POINTER)

  CASE   EXTRACT ̲FIRST(OWN ̲SDID.OUT ̲CONV.BUFFER ̲POOL.EMPTY)(BUF)
         OF

     FAIL?   INSERT(REQ, OWN ̲SDID.OUT ̲CONV.BUFFER ̲POOL.REQ
             ̲Q)( )

             CC = REQUEST ̲QUEUED

     PASS?   BUFFER ̲REF = BUF

             CC = OK

  END CASE

  RETURN




























               Figure 4.2.3.4.9.5-9



  RELEASE ̲OUT ̲CONV ̲BUFFER(BUF: POINTER)( )

  BUF.BUFFER ̲SIZE = OUT ̲CONV ̲BUFFER ̲SIZE

  CASE   EXTRACT ̲FIRST(OWN ̲SDID.OUT ̲CONV.BUFFER ̲POOL.REQ
         ̲Q)(REQ) OF

     FAIL?   INSERT(BUF, OWN ̲SDID.OUT ̲CONV.BUFFER ̲POOL.EMPTY)(
             )

     PASS?   NOTIFY ̲OUT ̲CONV ̲BUFFER(REQ, BUF)

  END CASE

  RETURN
































               Figure 4.2.3.4.9.5-10



  CANCEL ̲REQUEST ̲OUT ̲CONV ̲BUFFER(REQ: REQ ̲RECORD)( )

  CASE   EXTRACT ̲SPECIFIED(REQ, OWN ̲SDID.OUT ̲CONV.BUFFER
         ̲POOL.
                                  REQ ̲Q) ( ) OF

     FAIL?   PROTOCOL ̲ERROR(NT ̲OUT ̲CONV ̲11)

     PASS? 

  END CASE

  RETURN

































               Figure 4.2.3.4.9.5-11




4.2.3.4.10   N̲T̲ ̲P̲R̲O̲T̲O̲C̲O̲L̲ ̲m̲o̲d̲u̲l̲e̲



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

  This module hands an asynchronous report to the SSC.



4.2.3.4.10.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲

  The module has one functional entry

  NOTIFY ̲INTERRUPT (BUFFER ̲ENTRY: POINTER) (  ) and two
  for init/delete

  INITIALIZE ̲PROTOCOL ̲DATA (PARAM: OPEN ̲SUBDEVICE ̲PARAM)()

  CLEAN ̲PROTOCOL ̲DATA\( ) ( )     


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

  NOTIFY ̲INTERRUPT
  INITIALIZE ̲PROTOCOL ̲DATA
  CLEAN ̲PROTOCOL ̲DATA



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

  Refer section 4.2.2.7.1 for NICS ̲TARE level 2 asynchronous
  reports (interrupts).

  Loads the SDID record STATUS ̲REPORT



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




   NOTIFY ̲INTERRUPT (BUFFER ̲ENTRY: POINTER) (  )

   BUFFER = BUFFER ̲ENTRY.PAGE ̲START

   START = BUFFER ̲ENTRY.BUFFER ̲ADDR

   IT ̲TYP = BUFFER(START + INTERRUPT ̲TYPE ̲OFFSET)

   IT ̲TYP EQ LINK ̲FAILURE?

   IT ̲TYP EQ EDC ̲FAILURE?

   PRI = EXT ̲D ̲STATUS ̲PRI       PRI = EXT ̲D ̲FAILURE
                                ̲PRI 

   ALLOW ̲STATUS ̲REPORT(PRI) (CCP)

   CCP NE OK?

   S = OWN ̲SDID. STATUS ̲REPORT

   EQUIVALENCE (S.INFO, 0 ̲ST: SD ̲OTHER ̲STATUS ̲REC)

   CASE IT ̲TYPE OF

         LINK ̲FAILURE?                         S.STATUS
                                               = SD
                                               ̲FAILURE

                                S.INFO ̲SIZE = 1

                                S.INFO(0) = NT ̲LINK
                                ̲FAIL

         EDC ̲FAILURE?                          S.STATUS
                                               = SD
                                               ̲FAILURE

                                S.INFO ̲SIZE = 1

                                S.INFO(0) = NT ̲EDC
                                ̲FAIL

         MANUAL ̲SYNC            S.STATUS = SD ̲OTHER
                                ̲STATUS

                                S.INFO ̲SIZE = 2

                                O ̲ST.ACTION ̲TYPE =
                                DEVICE ̲ACTION

                                O ̲ST. ACTION ̲SUBTYPE
                                = NT ̲MAN ̲SYNC

         continues


         continued

         INCOMING ̲RESET?        S.STATUS = SD ̲OTHER
                                ̲STATUS

                                S. INFO ̲SIZE = 2

                                O ̲ST.ACTION ̲TYPE =
                                DEVICE ̲ACTION

                                O ̲ST.ACTION ̲SUBTYPE
                                = NT ̲INC ̲RESET

         OTHER?  PROTOCOL ̲ERROR (NT ̲PROTOCOL ̲1)

   END CASE

   SEND ̲STATUS ̲REPORT ( ) ( )

   RELEASE ̲INPUT ̲BUFFER (BUFFER ̲REF) (  )

   RETURN


























               Fig. 4.2.3.4.10.5-1


         INITIALIZE ̲PROTOCOL ̲DATA (PARAM: OPEN ̲SUBDEVICE
         ̲PARAM) (  )


         RETURN


         CLEAN ̲PROTOCOL ̲DATA (  ) (  )


         RETURN



































               Fig. 4.2.3.4.10.5-2


4.2.3.4.11   N̲T̲ ̲D̲A̲T̲A̲ ̲I̲N̲P̲U̲T̲T̲E̲R̲ ̲m̲o̲d̲u̲l̲e̲

             Refer 4.1.5.3

             Delete calls to

             CONTROLLER ̲INPUT ̲RESULT
             NOTIFY ̲CONTROLLER ̲INPUT ̲REQUEST ̲BUFFER
             NOTIFY ̲CONTROLLER ̲FIRST ̲INPUT ̲DATA
             NOTIFY ̲CONTROLLER ̲INPUT ̲DATA

             and same with "CONTROLLER"  "PROTOCOL"
                                  "CONTROLLER"  "SUBDEVICE"



4.2.3.4.12   N̲T̲ ̲D̲A̲T̲A̲ ̲O̲U̲T̲P̲U̲T̲T̲E̲R̲ ̲m̲o̲d̲u̲l̲e̲

             Refer 4.1.5.4

             Delete calls to

             SUBDEVICE ̲OUTPUT ̲RESULT
             NOTIFY ̲SUBDEVICE ̲FIRST ̲OUTPUT ̲BUFFER
             NOTIFY ̲SUBDEVICE ̲SUBSEQUENT ̲OUTPUT ̲BUFFER

             and same with "CONTROLLER" and "PROTOCOL"

              instead of "SUBDEVICE".



4.2.3.4.13    N̲T̲ ̲D̲A̲T̲A̲ ̲U̲S̲E̲R̲ ̲I̲N̲T̲E̲R̲F̲A̲C̲E̲ ̲m̲o̲d̲u̲l̲e̲

             Refer 4.1.5.5



4.2.3.4.14 N̲T̲ ̲D̲A̲T̲A̲ ̲S̲P̲I̲ ̲m̲o̲d̲u̲l̲e̲

             Refer 4.1.5.2

             Delete calls to

             CLEAN ̲SUBDEVICES
             CLEAN ̲PROT ̲CONT
             CLEAN ̲CONTROLLER
             CLEAN ̲PROTOCOL ̲DATA


             NOTIFY ̲PROT ̲CONT ̲OUTPUT ̲BUFFER
             NOTIFY ̲PROT ̲CONT ̲OF ̲RESPONSE
             NOTIFY ̲INTERRUPT
             INITIALIZE ̲CONTROLLER
             INITIALIZE ̲SUBDEVICE ̲INTERFACE
             INITIALIZE ̲PROT ̲CONT
             INITIALIZE ̲PROTOCOL ̲DATA
             RELEASE ̲INPUT ̲B
             RESERVE ̲OUTPUT ̲BUFFER
             CANCEL ̲RESERVE ̲OUTPUT ̲BUFFER
             RELEASE ̲OUTPUT ̲BUFFER
             TRANSMIT ̲OUTPUT ̲BUFFER
             WANT ̲TO ̲CLOSE



4.2.3.4.15   N̲T̲ ̲D̲A̲T̲A̲ ̲E̲H̲P̲ ̲m̲o̲d̲u̲l̲e̲

             Refer 4.1.5.1

             Modify such that calls to

             OPEN ̲SUBDEVICE, ENABLE ̲CONTROL ̲INPUT,
             GET ̲CONTROL ̲BUFFER are answered with
             CC = NOT ̲IMPLEMENTED

             Delete calls to

             OPEN ̲SUBDEVICE
             ENABLE ̲CONTROL ̲INPUT
             GET ̲CONTROL ̲BUFFER
             ACK ̲CONTROL ̲INPUT
             CONTROLLER ̲OUTPUT
             CANCEL ̲CONTROLLER ̲OPERATION


4.2.3.4.16   C̲S̲ ̲I̲N̲P̲U̲T̲T̲E̲R̲ ̲m̲o̲d̲u̲l̲e̲

             Refer 4.1.5.3

             Delete calls to

             SUBDEVICE ̲INPUT ̲RESULT
             NOTIFY ̲SUBDEVICE ̲INPUT ̲REQUEST ̲BUFFER
             NOTIFY ̲SUBDEVICE ̲FIRST ̲INPUT ̲DATA
             NOTIFY ̲SUBDEVICE ̲INPUT ̲DATA

             and same with

             "SUBDEVICE"   "PROTOCOL"



4.2.3.4.17   C̲S̲ ̲O̲U̲T̲P̲U̲T̲T̲E̲R̲ ̲m̲o̲d̲u̲l̲e̲

             Refer 4.1.5.4

             Delete calls to

             SUBDEVICE ̲OUTPUT ̲RESULT
             NOTIFY ̲SUBDEVICE ̲FIRST ̲OUTPUT ̲BUFFER
             NOTIFY ̲SUBDEVICE ̲SUBSEQUENT ̲OUTPUT ̲BUFFER

             and same with "SUBDEVICE"  "PROTOCOL"



4.2.3.4.18    C̲S̲ ̲C̲O̲N̲T̲R̲O̲L̲L̲E̲R̲ ̲m̲o̲d̲u̲l̲e̲

             Refer 4.1.5.6



4.2.3.4.19 C̲S̲ ̲P̲R̲O̲T̲ ̲C̲O̲N̲T̲ ̲m̲o̲d̲u̲l̲e̲

             Refer 4.1.5.8

             Delete calls to

             SUBDEVICE ̲PROT ̲CONT ̲RESULT
             NOTIFY ̲SUBDEVICE ̲PROT ̲CONT ̲BUFFER


4.2.3.4.20 C̲S̲ ̲U̲S̲E̲R̲ ̲I̲N̲T̲E̲R̲F̲A̲C̲E̲ ̲m̲o̲d̲u̲l̲e̲

         Refer 4.1.5.5

         Modify so that input and output passes CS ̲INPUT ̲CONVERTER
         and CS ̲OUTPUT ̲ CONVERTER modules respectively.



         Modify OWN ̲SDID to include

         OUT ̲CONV: OUT ̲CONV ̲DAT

         IN ̲CONV:  IN ̲CONV ̲DATA

         Add to USER ̲INPUT ̲DATA

         IS: ARRAY (1..USER ̲INPUT ̲MAX)
             OF IS ̲ELEMENT

         IS ̲EMPTY: QD



































                   Figure 4.2.3.4.20-1


         INITIALIZE ̲USER ̲DATA(PARAM:OPEN ̲SUBDEVICE ̲PARAM)()

             input

         OWN ̲SDID.USER.INPUT.STATE = IDLE

         OWN ̲SDID.USER.INPUT.REQ ̲STATE = IDLE

         INIT ̲QD(OWN ̲SDID.USER.INPUT.DATA ̲Q)()

         OWN ̲SDID.USER.INPUT, DATA ̲G ̲SIZE = 0

         OWN ̲SDID.USER.INPUT,PART ̲BUFFER ̲REF = FALSE

             output

         OWN ̲SDID.USER.OUTPUT.STATE = IDLE

         INIT ̲QD (OWN ̲SDID,USER.OUTPUT.EMPTY)()

         INDEX = 1

         LOOP

             INSERT (OWN ̲SDID.USER.OUTPUT.EMPTY
                     OWN ̲SDID.USER.OUTPUT.QELS(INDEX))()

             INDEX GE MAX ̲USER ̲OUTPUTS?

             INDEX + 1

         END LOOP

         INIT ̲IS ̲DATA(PARAM)()

         RETURN











                   Figure 4.2.3.4.20-2


         CLEAN ̲USER ̲DATA()()

         CLEAN ̲IN ̲CONV ̲DATA()()


         RETURN









































                   Figure 4.2.3.4-20-3


         ENABLE ̲INPUT(PARS: ENABLE ̲PARAM)(CC:COMPLETION ̲CODE)

             TMS only requests are buffer at a time

         OWN ̲SDID.USER.INPUT.REQ ̲STATE = ACTIVE

         OWN ̲SDID.USER.INPUT.BUF ̲SIZE =
                     PARS.BUF ̲SIZE

         PARS.H ̲OPID = OWN ̲SDID.USER.INPUT.QEL

         OWN ̲SDID.USER.INPUT.STATE?
         NE IDLE


         S̲E̲T̲U̲P̲ ̲I̲N̲P̲U̲T̲ ̲2̲            G̲E̲T̲ ̲N̲E̲X̲T̲ ̲I̲N̲P̲U̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲3̲


         RETURN




























                   Figure 4.2.3.4.20-4


         S̲E̲T̲U̲P̲ ̲I̲N̲P̲U̲T̲ ̲5̲

         EQUIVALENCE (OWN ̲SDID.USER.INPUT.QEL, QEL: IO ̲QEL)

         QEL.REQ ̲REF = PARS.OPID

         QEL ̲REQUESTOR = USER

         REQEUST ̲N ̲CONV ̲INPUT (QEL, USER ̲PRIORITY)()

         CC = REQUEST ̲QUEUED




































                   Figure 4.2.3.4.20-5


 G̲E̲T̲ ̲N̲E̲X̲T̲ ̲I̲N̲P̲U̲T̲ ̲B̲U̲F̲F̲E̲R̲

     Data?

 OWN ̲SDID.USER.INPUT
 DATA ̲Q ̲SIZE LE ZERO     ?          Pending Result?

     Put data references      OWN ̲SDID.USER.INPUT  
                                                       CC=REQUEST
     in reply                 STATE NE PENDING ̲RESULT? 
                                                       ̲QUEUED

 RETURN ̲DATA()()              RETURN ̲RESULT()()


     Load return parameters

 PARS.BYTE ̲COUNT = 
 OWN ̲SDID.REPLY.BYTE ̲COUNT

 PARS.PAGE ̲ADDR =
 OWN ̲SDID.REPLY.PAGE ̲ADDR

 PARS.BYTE ̲ADDR =
 OWN ̲SDID.REPLY.BYTE ̲ADDR

 PARS.BUFFER ̲TYPE =
 OWN ̲SDID.REPLY.BUFFER ̲TYPE

 CC = OWN ̲SDID.REPLY.RESULT

















               Figure 4.2.3.4.20-6



 ACK ̲DATA ̲INPUT()()

     Result returned?

 OWN ̲SDID.USER.INPUT.STATE    OWN ̲SDID.USER.INPUT.
 EQ RESULT ̲RETURNED        ?  STATE = IDLE

     Was only part buffer returned

 OWN ̲SDID.USER.INPUT.PART ̲
 BUFFER ̲RET?

     Release buffer

 CASE EXTRACT ̲FIRST(OWN ̲SDID.USER.INPUT.DAT ̲Q)(BUF)
 OF

     FAIL?   PROTOCOL ̲ERROR(USER ̲IF ̲2 ̲4)

     PASS?

 END CASE

 OWN ̲SDID.USER.INPUT.DATA ̲Q ̲SIZE-1

 RELEASE ̲IN ̲CONV ̲BUFFER(BUF)()

 OWN ̲SDID.USER.INPUT.         OWN ̲SDID.USER.
 STATE EQ COMPLETE     ?      INPUT.STATE = IDLE



 RETURN














               Figure 4.2.3.4.20-7


 GET ̲OUTPUT ̲BUFFER(PARS:GET ̲BUFFER ̲PARAM)(CC:COMPLETION
 ̲CODE)

     Only one request at a time, but several completed
     outputs may wait for answers

 OWN ̲SDID.USER.OUTPUT.STATE ?
 NE IDLE


 S̲E̲T̲ ̲O̲U̲T̲P̲U̲T̲                   R̲E̲Q̲U̲E̲S̲T̲ ̲N̲E̲X̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲3̲




 RETURN
































               Figure 4.2.3.4.20-8


 S̲E̲T̲U̲P̲ ̲O̲U̲T̲P̲U̲T̲ ̲9̲

 CASE EXTRACT ̲FIRST(OWN ̲SDID.USER.OUTPUT.EMPTY)(QEL)
 OF

     FAIL?     CC = TOO ̲MANY ̲REQUESTS

     PASS?

 END CASE

 OWN ̲SDID.USER.OUTPUT.STATE = ACTIVE

 QEL.ADDI = ACTIVE

 QEL.REQ ̲REF = PARS.OPID

 QEL ̲REQUESTOR = USER

 OWN ̲SDID.USER.OUTPUT.ACTIVE = QEL

 REQUEST ̲OUT ̲CONV ̲OUTPUT(QEL,USER ̲PRIORITY)(CCP, BUFFER
 ̲REF)

 CCP NE OK?          CC = CCP

 RETURN ̲FIRST ̲DATABUFFER(QEL, BUFFER ̲REF)()

 QEL.ADDI = IDLE

 LOAD ̲BUFFER ̲RETURN(PARS)()

 CC = OK
















               Figure 4.2.3.4.20-9


 R̲E̲Q̲U̲E̲S̲T̲ ̲N̲E̲X̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲1̲0̲

 QEL = OWN ̲SDID.USER.OUT3.ACTIVE

 QEL.ADDI = ACTIVE

 REQUEST ̲NEXT ̲OUT ̲CONV ̲BUFFER()(CCP, BUFFER ̲REF)

 CCP NE OK?       CC = CCP

 RETURN ̲NEXT ̲DATA ̲BUFFER (QEL,BUFFER ̲REF)()

 QEL.ADDI = IDLE

 LOAD ̲BUFFER ̲RETURN (PARS)()

 CC = OK






























               Figure 4.2.3.4.20-10


 USER ̲OUTPUT(PARMS:INIT ̲OUTPUT ̲PARAM)(CC:COMPLETION
 ̲CODE)

 TYPE = PARMS.BUFFER ̲TYPE

 TYPE IS ENTIRE ̲LDU
 OR ̲START ̲OF ̲LDU        ?

 ADD = LDU ̲DATA ̲OFFSET        ADD = START ̲LDU ̲DATA ̲OFFSET


 BYTE ̲COUNT = PARMS ̲BYTE ̲COUNT)()

 TYPE INDICATES END OF DATA?

                              OWN ̲SDID.USER.OUTPUT.STATE
                              = IDLE



 SEND ̲OUT ̲CONV ̲BUFFER (TYPE, BYTE ̲COUNT)()

     All responses to outputs are asynchronous

 CC = REQUEST ̲QUEUED

 OWN ̲SDID.USER.OUTPUT.ACTIVE.ADDI = ACTIVE

 RETURN






















               Figure 4.2.3.4.2-11


 NOTIFY ̲USER ̲FIRST ̲OUTPUT ̲BUFFER
                     (QEL: IO ̲QEL,BUFFER ̲REF:POINTER)()


 QEL.ADDI ̲EQ ̲OWN ̲SDID.OUT ̲CONV

                              NOTIFY ̲BUT ̲CONV ̲OUTPUT
                              ̲BUFFER

 RETURN ̲FIRST ̲DATABUFFER      (QEL,BREF)()
 QEL,BREF)()

 QEL.ADDI = IDLE

 SEND ̲OPERATIONS ̲REPLY()()


 RETURN






























               Figure 4.2.3.4.20-12


 NOTIFY ̲USER ̲SUBSEQUENT ̲OUTPUT ̲BUFFER
                     (QEL:IO ̲QEL, BUFFER ̲REF: POINTER)()


 QEL.ADDI EQ OWN ̲SDID.OUT ̲CONV?

 RETRUN ̲NEXT ̲DATABUFFER(QEL,  PROTOCOL ̲ERROR(CS ̲USER
                              ̲)
                 BUFFER ̲REF)()

 SEND ̲OPERATIONS ̲REPLY()()



 RETURN

































               Figure 4.2.3.4.20-13


 USER ̲OUTPUT ̲RESULT (QEL:IO ̲QEL,BUFFER

 QEL ̲ADDI EQ OWN ̲SDID, OUT ̲CONV?

                                  OUT ̲CONV ̲OUTPUT ̲RESULT
                                  (QEL,BREF)()

     Release queue element

 QUEUE (OWN ̲SDID.USER.OUTPUT,EMPTY,QEL)()

 QEL.REQUESTOR = NONE

 QEL.ADDI = IDLE


 RETURN ̲OUTPUT ̲RESULT (QEL, BUFFER ̲ENTRY)

 SEND ̲OPERATIONS ̲REPLY()()

 RELEASE ̲INPUT ̲BUFFER (BUFFER ̲ENTRY)()


 RETURN























                  4.2.3.4.20-14


 NOTIFY ̲USER ̲INPUT ̲REQUEST ̲BUFFER (QEL: IO ̲QEL, BREF:
 POINTER)()

 SEND ̲INPUT ̲REQUEST (0)()


 RETURN









































                  4.2.3.4.20-15


 USER ̲INPUT ̲RESULT(QEL:TO ̲QEL, BUFFER ̲REF:POINTER)()

 QEL.ADDI EQ OWN ̲SDID.USER       P̲A̲R̲E̲N̲T̲ ̲D̲A̲T̲A̲


 U̲S̲E̲R̲ ̲D̲A̲T̲A̲

 RETURN







































               Figure 4.2.3.4.20-16


 P̲A̲R̲E̲N̲T̲ ̲D̲A̲T̲A̲

     The protocol has failed. The Subdevice is removed
     by SSC


 RELEASE ̲INPUT ̲BUFFER(BUFFER ̲REF)()








































               Figure 4.2.3.4.20-17


 U̲S̲E̲R̲ ̲D̲A̲T̲A̲

 QEL.REQUESTOR = NONE

 BUFFER = BUFFER ̲ENTRY.PAGE ̲START

 START = BUFFER ̲ENTRY.BUFFER ̲ADDR

 RESULT = BUFFER (START + RECEPTION ̲START ̲CODE ̲OFFSET)


 OWN ̲SDID.USER.INPUT.RESULT = RESULT

 OWN ̲SDID.USER.INPUT.STATE = PENDING ̲RESULT

     Data awaited?

 OWN ̲SDID.USER.INPUT.DATA ̲Q ̲SIZE GE 1?

 OWN ̲SDID.USER.INPUT.REQUEST ̲STATUS?
 EQ IDLE

                                           No data awaited

 RETURN ̲RESULT()()

 SEND ̲OPERATION ̲REPLY()()


 RELEASE ̲INPUT ̲BUFFER(BUFFER ̲ENTRY)()

















               Figure 4.2.3.4.20-18



 NOTIFY ̲USER ̲FIRST ̲INPUT ̲DATA (QEL: IO ̲QEL,
                              BUFFER ̲REF: POINTER)()

 BUFFER = BUFFER ̲REF.PAGE ̲START

 START = BUFFER ̲REF.BUFFER ̲ADDR

 QEL.ADDI EQ OWN ̲SDID.USER    PARENT DATA 20


 USER ̲INPUT ̲DATA(QEL,BUFFER ̲REF)()



































               Figure 4.2.3.4.20-19


 P̲A̲R̲E̲N̲T̲ ̲D̲A̲T̲A̲ ̲2̲0̲

 TYPE = BUFFER (START + BFFER ̲TYPE ̲OFFSET)()


 TYPE DOES ̲NOT ̲INDICATE
 ENTIRE ̲LDU              ?    PROTOCOL ̲ERROR(RS ̲USER
                              ̲INTERFACE ̲)

 IS = QEL ̲REQ ̲REF

 IS.BUFFER ̲ENTRY.DEVICE ̲BUFFER ̲ID = BUFFER ̲REF

 COPY BUFFER DESCRIPTOR TO IS.BUFFER ̲ENTRY

 NOTIFY ̲IN ̲CONV ̲DATA(IS.BUFFER ̲ENTRY)()
































               Figure 4.2.3.4.20-20


 USER ̲INPUT ̲DATA (QEL:IO ̲QEL, BUFFER ̲ENTRY: POINTER)()


 INSERT (BUFFER ̲ENTRY, OWN ̲SDID.USER.INPUT.DATA ̲Q)

 OWN ̲SDID.USER.INPUT.DATA ̲Q ̲SIZE + 1

 IS DATA ̲Q ̲SIZE GT 1?

 NEXT ̲DATA ̲QEL()()

     No request just now

 OWN ̲SDID.USER.INPUT.
 REQUEST ̲STATUS EQ IDLE ?

 RETURN ̲DATA ()()

 SEND ̲OPERATIONS ̲REPLY()()

 RETURN


























               Figure 4.2.3.4.20-21


 NOTIFY ̲USER ̲INPUT ̲DATA (QEL: IO ̲QEL,
                     BUFFER ̲REF: POINTER)()

 USER ̲INPUT ̲DATA (QEL, BUFFER ̲REF)()


 RETURN








































               Figure 4.2.3.4.20-22


4.2.3.4.21 C̲S̲ ̲S̲P̲I̲ ̲m̲o̲d̲u̲l̲e̲

         Refer 4.1.5.2

         Delete calls to

         CLEAN ̲SUBDEVICES
         INITIALIZE ̲SUBDEVICE ̲INTERFACE
         RELEASE ̲INPUT ̲B
         RESERVE ̲OUTPUT ̲BUFFER
         CANCEL ̲RESERVE ̲OUTPUT ̲BUFFER
         RELEASE ̲OUTPUT ̲BUFFER
         TRANSMIT ̲OUTPUT ̲BUFFER
         WANT ̲TO ̲CLOSE



4.2.3.4.22   C̲S̲ ̲E̲H̲P̲ ̲m̲o̲d̲u̲l̲e̲

         Refer 4.1.5.1

         Modify sent that call to

         OPEN ̲SUBDEVICE is answered CC = NOT ̲IMPLEMENTED

         Delete call to

         OPEN ̲SUBDEVICE




4.2.3.4.23   C̲S̲ ̲I̲N̲P̲U̲T̲ ̲C̲O̲N̲V̲E̲R̲T̲E̲R̲ ̲M̲o̲d̲u̲l̲e̲

         Refer NT INPUT CONVERTER MODULE 4.2.3.4.8.

         Modify interface to access USER INTERFACE instead of
         
         SUBDEVICE INTERFACE



4.2.3.4.24   C̲S̲ ̲O̲U̲T̲P̲U̲T̲ ̲C̲O̲N̲V̲E̲R̲T̲E̲R̲ ̲m̲o̲d̲u̲l̲e̲

         Refer NT OUTPUT CONVERTER module 4.2.3.4.9.

         Modify interface to USER INTERFACE instead of
         SUBDEVICE INTERFACE





4.2.3.4.25   C̲S̲ ̲P̲R̲O̲T̲O̲C̲O̲L̲ ̲M̲o̲d̲u̲l̲e̲



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

         This module hands an asynchronous report to the SSC.



4.2.3.4.25.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲

         The module has one functional entry 

         NOTIFY ̲INTERRUPT (BUFFER ̲ENTRY: POINTER) (  )

         and two for init/delete

         INITIALIZE ̲PROTOCOL ̲DATA (PARAM: OPEN ̲SUBDEVICE ̲PARAM)(
         )
         CLEAN ̲PROTOCOL ̲DATA (  ) (  )



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

         NOTIFY ̲INTERRUPT
         INITIALIZE ̲PROTOCOL ̲DATA
         CLEAN ̲PROTOCOL ̲DATA



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

         Refer section 4.2.2.7.2 for CCIS/SCARS level 2 asynchronous
         reports (interrupts)

         Loads the SDID record STATUS ̲REPORT



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



   NOTIFY ̲INTERRUPT (BUFFER ̲ENTRY : POINTER)  (  )

   BUFFER = BUFFER ̲ENTRY. PAGE ̲START

   START = BUFFER ̲ENTRY. BUFFER ̲ADDR

   IT ̲TYPE = BUFFER (START + INTERRUPT ̲TYPE ̲OFFSET)

   IT ̲TYPE EQ RX ̲DISC?

   IT ̲TYPE EQ TX ̲DISC?

   PRI = EXT ̲D ̲STATUS ̲PRI       PRI = EXT ̲D ̲FAILURE
                                ̲PRI

   ALLOW ̲STATUS ̲REPORT (PRI)(CCP)

   CCP NE OK?

   S = OWN ̲SDID.STATUS ̲REPORT

   EQUIVALENCE (S.INFO, O ̲ST: SD ̲OTHER ̲STATUS ̲REC)

   CASE IT ̲TYPE OF

         RX ̲DISC?               S.INFO (O) = CS ̲RX
                                ̲DISC

         TX ̲DISC?               S.INFO (O) = CS ̲TX
                                ̲DISC

                                               S.INFO
                                               ̲SIZE
                                               = 1

                                               S.STATUS
                                               = SD
                                               ̲FAILURE

         RX ̲CONN?               S.STATUS = SD ̲OTHER
                                ̲STATUS

                     S. INFO ̲SIZE = 2

                     O ̲ST.ACTION ̲TYPE = DEVICE ̲ACTION

                     O ̲ST.ACTION ̲SUBTYPE = CS ̲RX ̲CONN

         OTHER?  PROTOCOL ̲ERROR (CS ̲PROTOCOL ̲1)

   END CASE

   SEND ̲STATUS ̲REPORT ( ) ( )

   RELEASE ̲INPUT ̲BUFFER (BUFFER ̲REF) ( )

   RETURN
               Fig. 4.2.3.4.25.5-1


   INITIALIZE ̲PROTOCOL ̲DATA (PARAM: OPEN ̲SUBDEVICE
   ̲PARAM)(  )


   RETURN


   CLEAN ̲PROTOCOL ̲DATA ( )  ( )


   RETURN



































               Fig. 4.2.3.4.25.5-2


4.2.3.5  C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲D̲a̲t̲a̲

             Refer 4.1.4.3 IOC handler data

4.2.3.6  C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲

             These are

                 INIT ̲INPUT ̲CONVERT
                 INPUT ̲CONVERT

                 INIT ̲OUTPUT ̲CONVERT
                 OUTPUT ̲CONVERT



4.2.3.6.1    I̲N̲P̲U̲T̲ ̲c̲o̲n̲v̲e̲r̲t̲ ̲r̲o̲u̲t̲i̲n̲e̲s̲

             INIT ̲INPUT ̲CONVERT sets up the state initially

             INPUT CONVERT converts input data in the
             form received over an external protocol
             controlled line to IOC record: 

             -   "CR, CR, LF" or "CR, LF" terminates
                 a normal line and marks the IOC record
                 with LINE ̲FLAG

             -   More than N characters (69 or 80)
                 leads to terminatiuon of the N characters
                 in a record marked DATA ̲FLAG

             -   Encountered SI, SO are deleted

             -   Other control characters are returned
                 in records marked with CONTROL ̲FLAG.
                 The data which was in conversion is
                 marked with DATA ̲FLAG.



4.2.3.6.2    O̲U̲T̲P̲U̲T̲ ̲c̲o̲n̲v̲e̲r̲t̲ ̲r̲o̲u̲t̲i̲n̲e̲s̲

             These converts opposite the INPUT convert
             routines
             (refer 4.2.3.6.1).





4.2.3.7  S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲i̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

             The interface is described in separate
             sections for

             NICS-TARE LTU Functions Subpackage
             CCIS-SCARS LTU Functions Subpackage

             below.


4.2.3.7.1    L̲T̲U̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲-̲ ̲N̲I̲C̲S̲ ̲T̲A̲R̲E̲ ̲L̲T̲U̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲s̲
             ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         H̲A̲N̲D̲L̲E̲R̲ ̲-̲ ̲L̲T̲U̲ ̲P̲R̲O̲T̲O̲C̲O̲L̲ ̲S̲O̲F̲T̲W̲A̲R̲E̲ ̲I̲N̲T̲E̲R̲F̲A̲C̲E̲

         The interface is via queues 

         Per NICS TARE channel one LTU-CR80D channel with a
         control and a data subchannel is used.

         The two Subchannels (Data and Status) are here defined
         as Data Channel and as Control Channel and combined
         with the direction, they are defined as:

         DATA OUT
                                         Direction: Handler
                                         - LTU

         CONTROL OUT

         DATA IN                         Direction: LTU - Handler

         CONTROL IN

         Interfaces are defined according to CSS-MIC/040/FNC/0001.

         It is specified by a number of parameters some according
         to the common standard, some specific for this interface.

         Although some parameters below are directly specified
         as numbers, all constant parameters and error codes
         are compile time constants with a describing name.
         



         a)  I̲n̲p̲u̲t̲ ̲r̲e̲q̲u̲e̲s̲t̲

             An input request signals to the LTU, that the handler
             is ready to receive a LDU of Data.

         b)  C̲a̲n̲c̲e̲l̲ ̲i̲n̲p̲u̲t̲ ̲r̲e̲q̲u̲e̲s̲t̲

             Cancel specified input requests of DATA if pending.

         c)  C̲a̲n̲c̲e̲l̲ ̲o̲u̲t̲p̲u̲t̲

             If a data buffer is still queued for the protocol
             and transmission has not started a cancel shall
             be as if the databuffer was never queued and a
             response Transmission Cancelled returned.

         d)  R̲e̲p̲o̲r̲t̲ ̲S̲t̲a̲t̲u̲s̲ ̲r̲e̲q̲u̲e̲s̲t̲

             This command is used for command of protocol and
             level 1 opening and closing.
             Details below.

         e)  O̲p̲e̲n̲ ̲C̲h̲a̲n̲n̲e̲l̲

             Used to enable the CR80-LTU interface. No parameters.

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

             Used to disable the CR80-LTU interface.



         B̲u̲f̲f̲e̲r̲s̲

         Buffers for CONTROL and DATA are of the same size,
         but the handler only use the part of the buffer specified
         in the detailed interface below.

         The LTU per channel supplies the handler with 3 buffers.

         S̲e̲c̲u̲r̲i̲t̲y̲ ̲r̲e̲q̲u̲i̲r̲e̲m̲e̲n̲t̲s̲ ̲t̲o̲ ̲b̲u̲f̲f̲e̲r̲h̲a̲n̲d̲l̲i̲n̲g̲

         The LTU overwrites databuffers for output after a successful
         transmission. The LTU overwrites input data buffers
         after they are returned to the LTU.



         D̲A̲T̲A̲ ̲B̲U̲F̲F̲E̲R̲S̲

         The interface data buffers are laid out as follows:

         1.byte      buffer type as of CSS-MIC/040/FNC/0001
                     section 3.1.2 
                     bit 0,1  entire LDU
                     bit 2    transparent data

         2.byte      LDU sequence number

         3.byte      Segment-Type

         4.byte      =0  Spare

         5 - 517     Data of one segment.

         The length of the data is taken from the buffer-header.

         For DATA OUT, the Handler will in most cases of type
         Intermediate generate segments of 512 bytes. (For performance
         estimates, it can be assumed, that the average length
         of these types is at least 450.)

         For DATA IN, the Handler accepts any length, but will
         assume an average as above of at least 450.

         The Segment-Type parameter defining the buffer as a
         segment of

             Intermediate segment of message = 0

             Last segment of message            = 1

             LCB segment                     = 2

         C̲O̲N̲T̲R̲O̲L̲ ̲B̲U̲F̲F̲E̲R̲S̲

         The interface control buffers are laid out as follows:

         1.byte  Buffer type as of CSS-MIC/040/FNC/0001 section
                 3.1.2 

         2.byte  Status type
                 For Control Out as defined in CSS-MIC/040/FNC/0001
                 section 3.1.2, where code 3: report status
                 request is reserved for general commands to
                 the protocol

         3.byte through max. Parameters.



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

         D̲a̲t̲a̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲. The Data interface has already been
         defined above except for acknowledge of input segments
         (see below).

         C̲o̲n̲t̲r̲o̲l̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The Control interface is according to CSS-MIC/040/FNC/0001
         for the outgoing control types.

         Input request, Cancel input request, Cancel output,
         Open channel and Close channel.

         Commands to the protocol and level 1 are issued as
         report status request with corresponding channel state
         answers (see below).

         For the incoming control types Transmission status
         and Reception status the interface is as described
         in CSS-MIC/040/FNC/0001. The Asyncronous Reports (interrupt)
         are generated when asyncronous events occurs. Channel
         Status are responses to commands to the protocol.

         C̲o̲m̲m̲a̲n̲d̲s̲ ̲t̲o̲ ̲t̲h̲e̲ ̲p̲r̲o̲t̲o̲c̲o̲l̲ ̲(̲"̲r̲e̲p̲o̲r̲t̲ ̲s̲t̲a̲t̲u̲s̲ ̲r̲e̲q̲u̲e̲s̲t̲"̲)̲

         E̲n̲a̲b̲l̲e̲      Level 1 is enabled
                     Protocol parameters defined

         Parameters from handler:

                     1. - 2.byte         Standard

                     3. byte             Identifier

                     4. byte             Command Code = 1 (ENABLE)

                     5. - 9.byte         Level 1 parameters

                     5. byte             Definition Local/Remote
                                         Tare
                                         = 0 Local Tare
                                         = 1 Remote Tare



                     6. byte             Baudrate
                                         Hex 1 through 8 reserved
                                         for 50 - 300 baud

                                         Hex 9    600 baud

                                         Hex A   1200 baud

                                         Hex B   2400 baud

                                         Hex C - Reserved

                     7. byte             Level 1 timeout (Remote
                                         Tare)
                                         Specified in units
                                         of 100 ms. 1 = 100
                                         ms  255 = 25.5 seconds.
                     8. byte             Retry count level 1
                                         (Remote Tare).
                                         Value 0 - 10.

                     9. byte             Spare = 0

                     10. - 19 byte       Level 2 parameters

                     10. byte            Block size
                                         0:  32 bytes
                                         1:  64 bytes
                                         2: 128 bytes
                                         3: 256 bytes
                                         4: 512 bytes

                     11. byte            ACKTO Timeout in steps
                                         of 100 ms
                                         1 = 100 ms  255 = 25.5
                                         seconds

                     12. byte            ACKLTO Timeout in steps
                                         of 100 ms
                                         1 = 100 ms  255 = 25.5
                                         seconds

                     13. byte            Spare = 0

                     14. byte            Max N count 1 - 99

                     15. byte            Max L count 1 - 99

                     16. byte            Max R count 1 - 99

                     17. - 19.byte       Spare = 0





         O̲p̲e̲n̲ ̲E̲D̲C̲    Correspond to open specified in SDS/006/section
                     4.1.3.6.3.4.

                     1. - 2.byte         Standard

                     3. byte             Identifier

                     4. byte             Command Code = 2 (OPEN
                                         ̲EDC)

         C̲L̲O̲S̲E̲ ̲E̲D̲C̲   Correspond to Close specified in SDS/006/section
                     4.1.3.6.3.4.

                     1. - 2. byte        Standard

                     3. byte             Identifier

                     4. byte             Command Code = 3 (CLOSE
                                         ̲EDC)



         R̲E̲D̲E̲F̲I̲N̲E̲ ̲E̲D̲C̲ ̲p̲a̲r̲a̲m̲e̲t̲e̲r̲s̲         Redefines (also during
                                         normal operation) the
                                         EDC parameters.

                     1. - 2. byte        Standard

                     3. byte             Identifier

                     4. byte             Command Code = 4 (REDEF
                                         ̲ EDC ̲PARAMS)

                     5. - 14.byte        Correspond to byte
                                         # 10 - 19 of the ENABLE
                                         command.
         C̲o̲l̲l̲e̲c̲t̲ ̲S̲t̲a̲t̲i̲s̲t̲i̲c̲s̲



         The EDC protocol and Level 1 shall maintain 16 bit
         counters for

         Number of successfully transmitted message blocks

         Number of successfully transmitted LCB's

         Number of received message blocks

         Number of received LCB's

         Number of retransmitted message blocks

         Number of retransmitted LCB's

         Number of transmitted RR blocks

         Number of correctly received RR blocks

         Number of sync retries on level 1 (Remote Tare)

         Request format

                     1. - 2. byte        Standard

                     3. byte             Identifier

                     4. byte             Command Code = 5 (STATISTICS)

         The command shall read and reset the counters above.

         P̲r̲o̲t̲o̲c̲o̲l̲ ̲s̲t̲a̲t̲u̲s̲ ̲+̲ ̲L̲e̲v̲e̲l̲ ̲1̲ ̲S̲t̲a̲t̲u̲s̲

         This command requests the current state of the Protocol
         and of Level 1.

                     1. - 2. byte        Standard

                     3. byte             Identifier

                     4. byte             Command Code = 6 (EDC
                                         ̲STATUS)


         A̲c̲k̲n̲o̲w̲l̲e̲d̲g̲e̲

         The Handler acknowledges segments as received from
         the EDC.

                     1. - 2. byte        Standard

                     3. byte             = 0

                     4. byte             Command Code = 7 (Acknowledge)

                     5. byte             LDU number of received
                                         segment

         No response on acknowledge.

         R̲e̲s̲p̲o̲n̲s̲e̲s̲ ̲t̲o̲ ̲C̲o̲m̲m̲a̲n̲d̲s̲ ̲(̲"̲c̲h̲a̲n̲n̲e̲l̲ ̲s̲t̲a̲t̲u̲s̲"̲)̲

         E̲n̲a̲b̲l̲e̲ ̲r̲e̲s̲p̲o̲n̲s̲e̲

                     1. - 2. byte        Standard

                     3. byte             The Identifier given
                                         in enable

                     4. byte             = Enable Command Code

                     5. byte             = 0  Enable OK
                                           0  (Erroneous parameter)
                                         = 5  Unknown Tare type
                                         = 6  Illegal Baud Rate
                                         = 7  Level 1 retry
                                         count out of range
                                         = 8  Blocksize illegal
                                         = 9  N count out range
                                         = 10 L count out range
                                         = 11 R count out range



         O̲p̲e̲n̲ ̲E̲D̲C̲ ̲R̲e̲s̲p̲o̲n̲s̲e̲

                     1. - 2.byte         Standard

                     3. byte             The Identifier given
                                         in Open EDC

                     4. byte             Open EDC command code

                     5. byte             = 0  Open EDC OK
                                           0  error
                                         1: Level 1 setup failed
                                         2: Level 1 link failed
                                         3: EDC irrecoverable
                                         error during await
                                         incoming startup
                                         4: Close Command during
                                         Open.

         C̲l̲o̲s̲e̲ ̲E̲D̲C̲ ̲R̲e̲s̲p̲o̲n̲s̲e̲

                     1. - 2. byte        Standard

                     3. byte             The Identifier given
                                         in CLOSE ̲EDC

                     4. byte             CLOSE ̲EDC Command Code

                     5. byte             = 0  Close OK.

         R̲e̲d̲e̲f̲i̲n̲e̲ ̲E̲D̲C̲ ̲p̲a̲r̲a̲m̲e̲t̲e̲r̲s̲ ̲r̲e̲s̲p̲o̲n̲s̲e̲

                     1. - 2. byte        Standard

                     3. byte             The Identifier

                     4. byte             REDEF ̲EDC ̲PARAMS Command
                                         Code

                     5. byte             Error Code (See Enable
                                         response)



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

         16 bit values are returned with the most significant
         byte as higher numbered.

                     1. - 2. byte        Standard

                     3. byte             The Identifier

                     4. Byte             STATISTICS Command
                                         Code

                     5. - 6. byte        = 0

                     7. - 8. byte        Transmitted message
                                         blocks

                     9. - 10 byte        Transmitted LCB's

                     11. - 12 byte       Received message blocks

                     13. - 14 byte       Received LCB's

                     15. - 16 byte       Retransmitted message
                                         blocks

                     17. - 18 byte       Retransmitted LCB's

                     19. - 20 byte       Transmitted RR blocks

                     21. - 22 byte       Received RR blocks

                     23. - 24            Level 1 retry count



         P̲r̲o̲t̲o̲c̲o̲l̲ ̲S̲t̲a̲t̲u̲s̲ ̲+̲ ̲L̲e̲v̲e̲l̲ ̲1̲ ̲S̲t̲a̲t̲u̲s̲ ̲r̲e̲s̲p̲o̲n̲s̲e̲

                     1. - 2 byte         Standard

                     3. byte             The Identifier          
                     4. byte             EDC ̲STATUS Command
                                         Code

                     5. byte             = 0

                     6. byte             Level 1 status
                                         State Numbers as of
                                         SDS/006/4.1.3.6.3.2
                                         for Remote Tare with
                                         
                                         0:  Not enabled
                                         or

                                         State numbers as of
                                         SDS/006/4.1.3.6.3.1
                                         for Local Tare
                                         0: Not enabled
                                         1: Enabled
                                         2: Setting Up
                                         3: Running
                                         4: Clearing Down

                     7. byte             EDC states

                                         0: Disabled
                                           Others as of CPS/SDS/006
                                           section 4.1.3.6.3.4

         S̲t̲a̲n̲d̲a̲r̲d̲ ̲r̲e̲s̲p̲o̲n̲s̲e̲s̲

         Transmission status

             TX-error                    2: Link failed

         Reception status

                                         1: Input request cancelled
                                         by command

                                         2: Input request cancelled
                                         due to EDC reset or
                                         Close.



         A̲s̲y̲n̲c̲r̲o̲n̲o̲u̲s̲ ̲R̲e̲p̲o̲r̲t̲ ̲f̲r̲o̲m̲ ̲E̲D̲C̲ ̲+̲ ̲L̲e̲v̲e̲l̲ ̲1̲

         General format

                     1. byte          Standard

                     2. byte          2: Asyncroneous Report

                     3. byte          Code

                                      2: Link Failure

                                      12: EDC Failure (irrecoverable
                                      error)

                                      13: Manual Sync

                                      14: Incoming reset (Set
                                      B received)

         These reports are generated as specified in SDS/006/
         section 4.1.3.6.3.1 through 4.1.3.6.3.4.

         The Incoming reset is reported in all cases except
         open EDC and has the effect that all input requests
         for the manual are cleared with code "EDC reset or
         Close" cancelled (=2).


4.2.3.7.2    L̲T̲U̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲C̲C̲I̲S̲/̲S̲C̲A̲R̲S̲ ̲L̲T̲U̲ ̲F̲U̲N̲C̲T̲I̲O̲N̲
             ̲S̲U̲B̲P̲A̲C̲K̲A̲G̲E̲
         I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The CR80 I/F-table is organized like this (see also
         CSS-MIC/040/FNC/0001):

         Channel 0:                   Debug communication between
                                      line handler and LTU

         Channel 1:                   General purpose LTU configuration
                                      communication

         Channel 3:                   Logical channel 1

         Channel 5:                   Logical channel 2


         The following control commands are implemented:

         REOPEN:     Change parameters in protocol
         SET ̲UP ̲LINK: Connect protocol level 2
         DISC ̲LINK:  Disconnect protocol level 2
         SET ̲UP ̲LINES: Set up statuslines according to X21 bis
         DISC ̲LINES: Disconnect statuslines according to X21
                     bis
         SET ̲V24:    Set specified circuit on optional V24-connector
                     (2)

         The following status commands are implemented:

         READ ̲V24:   Read specified circuit on optional V24-connector
                     (2)

         STATISTIC:  Read and reset statistic information about
                     the actual datatransfer in this protocol

         All buffers are entire LDU's though there is no control
         of this.

         The following control commands are accepted:

         a)  Input request
         b)  Cancel input request
         c)  Cancel output
         d)  Report status request
         e)  Open channel



         The following responses can be returned to CR80:

         a)  Transmission status
         b)  Interrupt
         c)  Channel status

         A further description of how the different commands
         are interpreted in the LTU and how the responses are
         interpreted in the CR80 is given on the next pages.


         a)  I̲n̲p̲u̲t̲ ̲r̲e̲q̲u̲e̲s̲t̲:̲

             No databuffers are sent to level 3 without an "Input
             request" is pending. Level 3 do not have more than
             7 "Input request"s pending.

         b)  C̲a̲n̲c̲e̲l̲ ̲i̲n̲p̲u̲t̲ ̲r̲e̲q̲u̲e̲s̲t̲s̲:̲

             This will be executed of the mentioned "Input request"
             has not already been used.

             No response.

         c)  C̲a̲n̲c̲e̲l̲ ̲o̲u̲t̲p̲u̲t̲:̲

             This command will only be executed if the protocol
             has not taken the buffer in question (see"Transmission
             status"). Response will only be returned if the
             cancelling succeeds. This response will be "TX
             cancelled".

         d)  R̲e̲p̲o̲r̲t̲ ̲s̲t̲a̲t̲u̲s̲ ̲r̲e̲q̲u̲e̲s̲t̲:̲

             This command is a cover for all the special control
             commands and status commands which are implemented
             in the protocol. The next pages give a further
             description of these.

         e)  O̲p̲e̲n̲ ̲c̲h̲a̲n̲n̲e̲l̲:̲

             This command is the same as "REOPEN" in the "Report
             status request"; only will there not be sent any
             response to this command and the parameters begin
             from the 1 byte after "Control code".



         f)  I̲n̲t̲e̲r̲r̲u̲p̲t̲

             This is sent when the Rx-protocol has changes mode
             (disconnected   connected) or when the Tx-protocol
             without CR80-command gets disconnected.

             The "interrupt" will have 1 parameter, which informs
             about the direction of mode-transition.


             Parameter                Current protocol state:
              ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
             ̲ ̲


                 0                    Rx-protocol connected

                 1                    Rx-protocol disconnected

                 2                    Tx-protocol disconnected


         g)  T̲r̲a̲n̲s̲m̲i̲s̲s̲i̲o̲n̲ ̲s̲t̲a̲t̲u̲s̲:̲

             This is sent when the protocol takes a databuffer
             or when a databuffer is cancelled by the "Cancel
             output"-command.

             When the protocol takes a databuffer, it sends
             a "Tx OK" and the buffer cannot be cancelled by
             the "Cancel output"-command.

             When the databuffer is cancelled by the "Cancel
             output"-command, the response is "Tx cancelled".


         A "Report status request" - command buffer will look
         like this:


         1 byte      Buffer type
         2 byte      Control type
         3 byte      Identifier
         4 byte      Status type
         5 byte      Spare
         6 byte      Parameter 1
                     Parameter 2
                     -"-  -"-


         The response to a "Report status request" will be a
         "Channel status", which will look like this:

         1 byte      Buffer type
         2 byte      Control type
         3 byte      The identifier
         4 byte      Status type
         5 byte      Error-code
         6 byte      Parameter 1
                     Parameter 2
                     -"-   -"-


         A response will have the same "Status type" as the
         command it is a response to.

         R̲E̲O̲P̲E̲N̲:̲


         1. Parameter (1 byte):       Max. no. of retransmissions

         2. Parameter (1 byte):       Max. no. of outstanding
                                      frames

         3. Parameter (1 byte):       Time out time

         4. Parameter (1 byte):       Baudrate out

         The Tx-protocol level 2 shall be disconnected to execute
         this command.

         If the user does not want to change one or more of
         the parameters in the protocol, these must be set to
         OFFH.




         Parameter                      Limits         Default
          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
         ̲ ̲ ̲

         Max no.of retransmissions      127            8

         Max no.of outstanding frames     7            7

         Time out time                200ms-50sec      10sec

         Baudrate out                  50-48000        4800


         Timeout time = Timeout parameter * 200 msec

         S̲E̲T̲ ̲U̲P̲ ̲L̲I̲N̲K̲:̲

         No parameters

         The Tx-protocol level 2 shall be disconnected to execute
         this command.

         D̲I̲S̲C̲ ̲L̲I̲N̲K̲:̲

         No parameters

         The Tx-protocol level 2 shall be connected or connecting
         and not already be going to disconnected mode to execute
         this command.

         This command is the only which can result in the errortype
         2.

         S̲E̲T̲ ̲U̲P̲ ̲L̲I̲N̲E̲S̲

         No parameters

         The Tx-protocol level 2 shall be disconnected to execute
         this command.

         D̲I̲S̲C̲ ̲L̲I̲N̲E̲S̲:̲

         No parameters.

         The protocol level 2 shall be disconnected to execute
         this command.




             S̲E̲T̲ ̲V̲2̲4̲:̲

             1. Parameter (1 byte):      Set/reset/no
                                         change of
                                         RTS (IO5)
             2. Parameter (1 byte):      Set/reset/no
                                         change of
                                         DTR (108/1)


             The protocol level 2 shall be disconnected
             to execute this command.


             Set current        Reset curcuit                        no
                                                                     change:
              ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
             ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

                 0CH                     03H                         anything
                                                                     else


             R̲e̲a̲d̲ ̲V̲2̲4̲:̲

             1. Parameter (1 byte):         Read/no
                                            read of
                                            CTS (106)
             2. Parameter (1 byte):         Read/no
                                            read of
                                            DSR (107)

             This command will always be executed.


             Read curcuit                No read of
                                         curcuit
              ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
             ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

                 0C0H                       anything
                                            else

             The response will be:

             1. Parameter (1 byte):         CTS (106)/not
                                            read
             2. Parameter (1 byte):         DSR (107)/not
                                            read

             Curcuit on         Curcuit off Curcuit
                                            not read
              ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
             ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

                 0CCH           0C3H        00H


             S̲T̲A̲T̲I̲S̲T̲I̲C̲:̲


         1.Parameter (1 byte):  Reset/no reset of no.
                                of transmissions
         2.Parameter (1 byte):  Reset/no reset of no.
                                of retransmissions
         3.Parameter (1 byte):  Reset/no reset of no.
                                of received I-frames
                                without error
         4.Parameter (1 byte):  Reset/no reset of no.
                                of CRC-errors
         5.Parameter (1 byte):  Reset/no reset of no.
                                of frames too long
         6.Parameter (1 byte):  Reset/no reset of no.
                                of frames too short
         7.Parameter (1 byte):  Reset/no reset of no.
                                of DCD-drops


                 Reset              No Reset
                  ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

                  OH                anything else


             The response will be:

         1. Parameter (2 bytes): No. of transmissions
         2. Parameter (2 bytes): No. of retransmissions
         3. Parameter (2 bytes): No. of received I-frames
         without error
         4. Parameter (1 byte):  No. of CRC-errors
         5. Parameter (1 byte):  No. of frames too
         long
         6. Parameter (1 byte):  No. of frames too
         short
         7. Parameter (1 byte):  no. of DCD-drops



             A 2-byte-parameter has have LSB first.