==Phrack Magazine==

            Volume Four, Issue Forty-Two, File 8 of 14

            USEFUL COMMANDS FOR THE TP3010 DEBUG PORT

                            BY G. TENET


   ALL OF THE COMMANDS LISTED BELOW, INDICATE A LENGTH IN ALL THE READ
COMMANDS. THE LENGTH OF THE READ COMMANDS MAY VARY DUE TO
CONFIGURATION OPTIONS AND SOFTWARE VERSION.

1)  L7FE,L,A,R200

   THIS COMMAND STRING WILL LOAD '7FE' INTO THE MEMORY POINTER
REGISTER THEN LOAD THE CONTENT OF '7FE' AND '7FF' INTO THE MEMORY
POINTER REGISTER. THE 'A' THEN INCREMENTS THE CONTENTS OF THE MEMORY
POINTER REGISTER.  THE 'R200' COMMAND THEN READS 200 BYTES BEGINNING
AT THE LOCATION SPECIFIED BY THE MEMORY POINTER REGISTER.
   THIS AREA IS USED FOR STORING THE LOADED CONFIGURATION. DUE TO THE
VARIABLE NATURE OF THE CONFIGURATION RECORDS, THE READ COMMAND MAY HAVE
TO BE MODIFIED DEPENDANT ON THE NUMBER OF LINES DEFINED, THE TYPE OF LINES
DEFINED (X780,3270) AND THE TYPE OF SOFTWARE LOADED (4.2X OR 5.0X).


2)  LC4,R3,LCC,R3  (4.2X SOFTWARE)
   L124,R3,L131,R3  (5.0X SOFTWARE)

   THIS COMMAND STRING WILL DISPLAY THE BUFFER MANAGER CONTROL BLOCK AREA
WHICH HAS BUFFER COUNTS WHICH MAY SUGGEST POSSIBLE PROBLEMS.


3)  L32C,R   (4.2X SOFTWARE)
   L29C,R   (5.0X SOFTWARE)

   THIS COMMAND STRING WILL DISPLAY THE NUMBER OF ACTIVE VC'S IN THE
TP3 AT THAT MOMENT.

   IF THIS COMMAND IS USED VIA THE LOCAL CONSOLE, THE VC COUNT WILL NOT
INCLUDE THE USER CONNECTION BECAUSE THERE WILL BE NO VC ON THE X.25 LINE
FOR THE LOCAL CONSOLE.

4)  L70,R60

   THIS COMMAND STRING WILL DISPLAY THE LCB (LINE CONTROL BLOCK) POINTER
FOR THE CONFIGURED LINES.

   THE ORDER THAT THE LCB POINTERS ARE ENTERED ARE: CONSOLE LCB, X.25 LCB,
LINE 1, LINE 2, LINE 3...LINE27.  ANY ZERO ENTRY IS AN UNCONFIGURED
LINE EACH LINE ENTRY IS TWO BYTES LONG.


5)  L300,L,R20    (4.2X SOFTWARE)
   L270,L,R20    (5.0X SOFTWARE)

   THIS COMMAND STRING WILL DISPLAY THE LCN VECTOR TABLE. THE ENTRIES ARE
FOR EACH ACTIVE LCN BEGINNING WITH LCN 0 THRU THE HIGHEST CONFIGURED
LCN. A 0000 ENTRY FOR AN LCN WILL INDICATE THAT THE LCN IS NOT ACTIVE.
A NON ZERO ENTRY WILL POINT TO THE DCB (DEVICE CONTROL BLOCK) OF THE
ASSOCIATED LINE/DEVICE.

6)  L1F1,L,R20     (4.2X SOFTWARE ONLY)

   THIS COMMAND STRING WILL DISPLAY THE PROTOCOL ID TABLE FOR THE
CONFIGURED/SUPPORTED PROTOCOLS. THE FORMAT OF THE OUTPUT
IS:
         999999999999...
         --  ----
         ! -- !  ----
         ! !  !   !...............POINTER TO THE SERVER TABLE   *****
         ! !  !...................POINTER TO THE PROTOCOL SERVICE ROUTINE
         ! !......................PROTOCOL ID NUMBER
         !                          01 =ITI (RITI AND LITI)
         !                          4B =X780
         !                          47 =NAP 3270
         !                          09 =DEBUG
         !........................NUMBER OF ENTRIES IN THIS TABLE


7)  L(ADDRESS OF THE SERVER TABLE),R20

   THE ADDRESS OF THE SERVER TABLE IS FOUND IN #6 (ABOVE)
 THIS COMMAND WILL DISPLAY THE SERVER TABLE IN THE FORMAT:

        99999999...
        --  ----
        ! -- !................ THIS IS THE ADDRESS OF THE FIRST FREE DCB
        ! !                     IN THE FREE DCB LIST. IF 0000 THEN THERE ARE
        ! !                     NO FREE DCB'S FOR THIS SERVER AND PROTOCOL.
        ! !.....................SERVER NUMBER
        !.......................NUMBER OF ENTRIES IN THIS TABLE


   THE POINTER IN THIS TABLE , IF PRESENT, WILL POINT TO THE NEXT AVAILABLE
DCB.  WITHIN THE DCB, THERE IS A POINTER AT DISPLACEMENT 18 AND 19 WHICH
WILL POINT TO THE NEXT FREE DCB. THE LAST FREE DCB WILL HAVE A
POINTER OF 0000.

   THE FOLLOWING COMMANDS ARE USED WITHIN THE TP3 DEBUG PORT TO
PERFORM THE INDICATED ACTIONS.  ONLY THE TP3325 WILL SUPPORT THE
[# LPU NUMBER] OPTIONS.  THE USE OF THE [# LPU NUMBER] OPTION IS ONLY
REQUIRED IF YOU WISH TO ADDRESS A DIFFERENT LPU NUMBER; EXCEPT FOR THE
'S' COMMAND WITH WHICH THE LPU MUST BE DEFINED.

    A SPACE CHARACTER MAY BE INCLUDED IN THE COMMAND AND THE COMMANDS
MAY BE STACKED (EXAMPLE:  L7FE ,L,A,R5,L#2,L 7FE,L,A,R5,L#3 7FE,L,A,R 5).

   THE TP3325 COMMANDS THAT DO NOT USE THE 'LPU' PARAMETER USE THE
LAST ASSIGNED LPU NUMBER.  (EXAMPLE:  L#27FE,R2,L#17FE,R4)
THE  FIRST LOAD COMMAND ADDRESSES LPU 2 AND THE NEXT LOAD COMMAND ADDRESSES
LPU 1.  THE READ OF TWO BYTES IS READING FROM LPU 2 AND THE READ OF FOUR
BYTES IS READING FROM LPU 1.

               A VALUE
                     INCREMENTS THE MEMORY ADDRESS POINTER.
                     (EXAMPLE:  A5 OR AFFE2 OR A#2EF)

               B VALUE
                     USED TO ENTER OR EXIT BINARY MODE.
                     (EXAMPLE:  B01 OR B00)

               C [# LPU NUMBER] VALUE
                     USED TO WARM OR COLD START A TP3325 LPU
                          (EXAMPLE:  C00 OR C#300)
                                 OR
                     USED TO WARM OR COLD START OTHER TP3.
                          (EXAMPLE:  C01 OR C#201)

               D VALUE
                     USED TO DECREMENT THE MEMORY POINTER.
                     (EXAMPLE:  D18 OR DFFE5 OR D#4IFF)

               E STRING
                     USED TO CHECK FOR A EQUAL COMPARE OF MEMORY DATA.
                     (EXAMPLE:  E00 OR E0F0304 OR E#20000)

               F STRING
                      USED TO FIND THE FIRST OCCURRENCE OF A STRING.
                      (EXAMPLE:  F0F0304 OR F08080202 OR F#308080404)

               G [# LPU NUMBER] VALUE
                     USED  TO  FIND THE ADDRESS OF A CONFIGURATION FILE IN
                     MEMORY.  THE LPU DEFINITION IN THE COMMAND DOES
                     NOT CHANGE THE LPU ASSIGNMENT IN THE DEBUG PORT.
                     (EXAMPLE:  GFE OR G01 OR G#301)

               I [# LPU NUMBER]
                     USED TO OBTAIN A LIST OF THE CONFIGURED LINE TYPES.
                     (EXAMPLE: I OR I#3)

               K [# LPU NUMBER] [14 DIGIT ADDRESS]
                     USED  TO  OBTAIN  THE LCB, ADDRESS TABLE POINTERS AND
                     LINE NUMBER ASSOCIATED WITH THE ADDRESS.
                     (EXAMPLE:  K31102120012301 OR K#2 311021250212)

               N STRING
                     USED TO CHECK FOR AN NON EQUAL COMPARISON.
                     (EXAMPLE:  N0F0304 OR N08080202 OR N#1 0F)

               P [# LPU NUMBER] PORT NUMBER
                     USED TO READ THE CONTENTS OF A SPECIFIC PORT REGISTER.
                     (EXAMPLE:  P45 OR P21 OR P#4 21)

               R VALUE
                     USED TO READ MEMORY DATA. THE QUANTITY IS INDICATED
                     BY THE 'VALUE'.
                     (EXAMPLE:  R18 OR R200)

               S [# LPU NUMBER] LINE NUMBER
                     USED TO OBTAIN DATA SET SIGNALS FOR THE DEFINED LINE
                     NUMBER.
                     (EXAMPLE:  S1 OR S#23 OR S)

               T     (TP3325 ONLY)

               W STRING
                     USED TO WRITE DATA INTO MEMORY.
                     (EXAMPLE:  W0E0304 OR W08080707)

               X [# LPU NUMBER]
                     USED TO DISPLAY THE DIFFERENCE BETWEEN THE STORED
                     CHECKSUM AND A CALCULATED CHECK SUM OF THE
                     OPERATING SOFTWARE.  THE LPU DEFINITION DOES
                     NOT CHANGE THE LPU ASSIGNMENT IN THE DEBUG PORT.
                     (EXAMPLE:  X OR X#2)

               Y     (TP3325 ONLY)
                     RETURNS NCC LOAD ADDRESS FROM EPROM

               Z     (TP3325 ONLY)
                     CRASHES APB AND XPB.  MAY HANG APB IF THE X.25
                     INTERFACE DOES NOT RESET.

               $ PORT A  -- ENABLE AUTOCONNECT
                      M  -- DISABLE AUTOCONNECT
                      B  -- BUSY
                      R  -- RESET
                      C  -- CLEAR

HARDWARE COMMANDS FOR THE TP3000

   'P' COMMAND DISPLAYS THE STATUS OF A SPECIFIED PERIPHERAL INTERFACE
DEVICE FOR THE CPU. FOLLOWING IS A LIST OF SOME OF THE MORE USEFUL ADDRESSES
WHICH CAN BE BENEFICIAL IF TRYING TO RESEARCH A PROBLEM.
THIS COMMAND IS A READ TO THE SPECIFIED DEVICE.  DEPENDANT ON THE DEVICE
BEING READ (THE ADDRESS), THE TP MAY CRASH.

     COMMAND                               INTERPRETATION
     =======                               ==============

TP3010
------
      P45                        READ CONSOLE READ REGISTER
                                   (BIT 2 THRU 6 SHOW THE POSITION OF
                                    THE FRONT PANEL ROTARY SWITCH)
                                   BIT 0 = NOT TIMEOUT STATUS (SEE P47)
                                   BIT 1 = NOT PBRST STATE (SEE P47)
                                   BIT 2 = NOT RESTART
                                   BIT 3 = NOT MEMORY SAVE
                                   BIT 4 = NOT TAPE LOAD
                                   BIT 5 = NOT PROGRAM SAVE
                                   BIT 6 = NOT DIAGNOSTICS
                                   BIT 7 = NOT SYSTEM GOOD
                                 IF BIT 6 THRU BIT 2 ARE ALL SET (EQUAL TO 1)
                                   THEN THE FRONT PANEL SWITCH IS IN
                                   THE X.25 LOAD POSITION.
      P47                        THIS COMMAND WILL CAUSE THE FRONT PANEL
                                    ALARM TO SOUND.

      P4D,P4D,P4D,P4D,P4D,P4D,P4D THE LAST RESPONSE WILL PROVIDE THE
                                    DOWN LINE LOAD EPROM REV. LEVEL
                                    FOR THE TP3010.
                                    EXAMPLE  43 = 'C' LEVEL
TP3005
------
      P23                            BIT 1 = 0  CONFIG MODE
                                             1  RUN MODE

       4.2X        5.XX                        COMMENTS
      ======      ======        ===========================================

        70          70           LCB VECTOR TABLE

                                 2 BYTES FOR EACH LINE IN THE TP. IF LINE IS
                                 NOT DEFINED , THEN ENTRY IS 0000. IF LINE
                                 IS DEFINED, THEN ADDRESS POINTS TO THE
                                 LCB (LINE CONTROL BLOCK)

        C0          120          BM CONTROL BLOCK
        C4          124          # CONTROL BUFFERS INITIALIZED
        C5          125          # CONTROL BUFFERS FREE
        C6          126          LOWEST # CONTROL BUFFERS (00 IS NONE LEFT)
                    12B          POINTER TO THE CONTROL BUFFERS
        CC          131          # BLOCK BUFFERS INITIALIZED
        CD          132          # BLOCK BUFFERS FREE
        CE          133          LOWEST # BLOCK BUFFERS REACHED (00 IS NONE
                                    LEFT)
                    138          POINTER TO BLOCK BUFFERS
        1F1                      POINTER TO PROTOCOL ID TABLE

        270         1F0          X.25 LCB
        27E         27E             # FRAMES DISCARDED
        27F         27F             # CRC ERRORS
        280         280             # REJECTS SENT
        281         281             # REJECTS RECEIVED
        282         282             # T1 TIME OUTS
        283         283             # COMMAND REJECTS SENT
        284         284             # COMMAND REJECTS RECEIVED
        285         285             # DISCONNECTS SENT
        286         286             # DISCONNECTS RECEIVED
        287         287             # SET MODE SENT
        288         288             # SET MODE RECEIVED
        289         289             # FRAME OVERFLOW RECEIVED
        28A         28A             # I FRAMES SENT
        28B         28B             # I FRAMES RECEIVED
        2B0         230               DMA LCB

        300         270               LCN VECTOR TABLE

                    29B               MAX. # LCN'S
        32C         29C               # OF ACTIVE LCN'S

        7FE         7FE               POINTER TO THE END OF THE OPERATING
                                      SYSTEM. THE NEXT BYTE IS THE BEGINNING
                                      CONFIGURATION TABLES.

       159           E9               TIME OF DAY CLOCK
       159           E9                 1/10 SECONDS
       15A           EA                 SECONDS
       15B           EB                 MIN.
       15C           EC                 HOURS
       15D           ED                 DAYS
       15E           EE                 DAYS

      DCB + 3        XX               PACKET REC. STATUS BYTE#1
                                        00 = READY
                                        01 = DTE WAITING
                                        02 = DCE WAITING
                                        04 = DATA TRANSFER
                                        08 = DTE CLEAR REQUEST SENT
                                        10 = DCE CLEAR INDICATION
                                        20 = DTE RESTART REQUEST
                                        40 = DTE RESET REQUEST
                                        80 = DCE RESET INDICATION
      DCB +18        XX               POINTER TO NEXT FREE DCB
                                        VALID ONLY IF THIS IS A FREE DCB

 ITI SPECIFIC LCB INFORMATION

                   LCB+27        PHYSICAL STATUS
                                 X'00' LINE DOWN/INACTIVE
                                 X'01' LINE HAS BEEN INACTIVATED
                                 X'02' LINE IS 'BUSY OUT'
                                 X'04' LINE IS BEING ACTIVATED
                                 X'08' LINE IS ACTIVE
                                 X'10' LINE IS BEING INACTIVATED

                   LCB+28        TDT2 COMMAND BYTE
                                 BIT 0 = 1  BUSY LINE
                                 BIT 1 = 1  CLEAR LINE
                                 BIT 2 = 1  RESET LINE
                                 BIT 3 - 7 NOT USED

                   LCB+5C        # BUFFERS ALLOCATED TO THIS LINE
                   LCB+5D        DRIVER ERROR COUNTER
                   LCB+5E        NO BUFFER ERROR COUNTER
                   LCB+5F        FLOW CONTROL ERROR COUNTER
                   LCB+60        PARITY ERROR COUNTER
                   LCB+61        OVER-RUN ERROR COUNTER
                   LCB+62        FRAMING ERROR COUNTER
                   LCB+74        BREAK TIMER
                   LCB+75        RING-OUT TIMER
                   LCB+76        RING-OUT COUNTER

 DSP 3270 LCB SPECIFIC INFORMATION

                   LCB+4F        CURRENT NO. SYNC PAIRS INSERTIONS
                   LCB+50        CURRENT NO. OF ERROR RETRIES
                   LCB+51        CURRENT NO. OF NAK RETRIES
                   LCB+52        CURRENT NO. OF ENQ RETRIES
                   LCB+53        RECEIVE ACK COUNTER
                   LCB+54        TRANSMIT ACK COUNTER
                   LCB+55        CTS  DROP-ERROR COUNTER
                   LCB+56        DCD  DROP-ERROR COUNTER
                   LCB+5A        CURRENT NO. WACK'S


 X780 LCB SPECIFIC INFORMATION

                   LCB+4F        CURRENT NO. OF SYNC PAIR INSERTIONS
                   LCB+50        CURRENT NO. OF ERROR RETRIES
                   LCB+51        CURRENT NO. OF NACK RETRIES
                   LCB+52        CURRENT NO. OF ENQ RETRIES
                   LCB+53        RECEIVE ACK COUNTER
                   LCB+54        TRANSMIT ACK COUNTER
                   LCB+55        CTS  DROP-ERROR COUNTER
                   LCB+56        DCD  DROP-ERROR COUNTER


COMMON DCB INFORMATION

                   DCB+6         BITS 5-7 PACKET SEND SEQ. NO. P(S)
                   DCB+7         BITS 5-7 PACKET REC. SEQ. NO. P(R)
                   DCB+8         LCN #
                   DCB+9         BITS 5-7 PACKET SEQ. NO. LAST CONFIRMED
                   DCB+A         BITS 5-7 PACKET SEQ. NO. LAST SENT TO NET
                   DCB+B         # PACKETS SENT
                   DCB+D         # PACKETS REC.
                   DCB+F         # RESETS SENT OR RECEIVED
                   DCB+14        # BUFFERS IN HOLD QUEUE
                   DCB+15        TIME VC WAS ESTABLISHED (SSMMHHDD)
                   DCB+31        DESTINATION NETWORK ADDRESS



   THE FOLLOWING IS A DESCRIPTION OF THE TP3006 X.25 INTERFACE FROM THE
SIO TO THE REAR PANEL CONNECTORS.

           SIO CHIP                     REAR PANEL CONNECTOR
         +--------------+
         |              |
         |        DTRB  |------------------->- DTR  20
         |        TXDB  |------------------->- TXD   2
         |        RTSA  |------------------->- LDL  13
         |        RTSB  |------------------->- RTS   4
         |        DTRA  |------------------->- LAL  19
         |        DCDA  |---<-----------+--->- CTR  18
         |              |               +---<- RLSD  8
         |        RXCA  |--+
         |        RXCB  |--+-------- ** ----<- RXC  17
         |              |                 +->- TXCE 24
         |              |            ** --+->- RXCE 11
         |        TXCA  |----+
         |        TXCB  |----+------ ** ----<- TXC  15
         |        DCDB  |----------- ** ----<- DSR   6
         |        CTSB  |-------------------<- CTS   5
         |        RXDA  |----+
         |        RXDB  |----+--------------<- RXD   3
         |        CTSA  |-------------------<- RI   22
         |              |
         +--------------+

                        <   INBOUND SIGNAL
                        >   OUT BOUND SIGNAL

   IF DSR AND TXC, THEN USE EXTERNAL CLOCKING.  IF DSR AND NO TXC,
THEN USE INTERNAL CLOCKING DERIVED FROM THE CONFIGURED LINE SPEED
PRODUCED FROM A CTC CHIP).  IF THE CLOCKING IS PRODUCED INTERNALLY,
THEN THE INTERNAL CLOCK IS ALSO PROVIDED ON PINS 11 AND 24
AT THE REAR PANEL.

   FOR THE TP3325, THE NETLINES ALWAYS USE THE EXTERNAL CLOCK SOURCE.
THE HARDWARE WAS CHANGED DURING REFINEMENT OF THE MOD ONE XPB.

   IF THE ATTACHED DEVICE IS PROVIDING CLOCKING AND THE TP3025 IS PROVIDING
CLOCKING, THE TP WILL DETECT THE CLOCKING AND WILL STOP CLOCKING. IN THE
CASE OF THE TP3025 HAVING BEEN RESET AND LOADED, IF A TP3005/3006 IS THEN
CONNECTED TO THE INTERFACE, THERE IS A RACE CONDITION WHERE THE DEVICE THAT
PROVIDES THE CLOCKING IS ARBITRARY.  THE HARDWARE LOGIC REQUIRES A RESET
TO OCCUR FOR THE TP3025 TO CHANGE PRIOR SELECTION OF 1) INTERNAL/EXTERNAL
CLOCKING AND 2) V35/RS232 INTERFACE AFTER A LOAD.

   THE DEBUG PORT "S" COMMAND WILL RETURN ONE HEX BYTE THAT REPRESENTS
THE DATA SET SIGNALS STATUS AT THE SIO CHIP FOR THE DEFINED LINE
(E.G. "S2" WILL RETURN THE DATA SET SIGNALS ON LINE 2).  THE UPPER HALF
OF THE BYTE IS USED TO REPRESENT THE DATA SET SIGNAL STATUS.

                   BIT  7  6  5  4  3  2  1  0
                        |  |  |  |  ==========
                        |  |  |  |   NOT USED
                        |  |  |  |
     DSR AT THE REAR ---+  |  |  +--- RTS AT THE REAR PANEL.
     DTR AT THE REAR  -----+  +------ CTS AT THE REAR PANEL.

    THE FOLLOWING IS A DESCRIPTION OF THE DEVICE INTERFACE FOR THE
SIO TO THE REAR PANEL.

              SIO CHIP                         REAR PANEL INTERFACE
         +--------------+
         |              |
         |          RXD | ------------------------<  2  TD
         |          TXD | ------------------------>  3  RD
         |          DCD | -<-----------+----------<  4  RTS
         |              |              +---------->  5  CTS
         |          DTR | ------------------------>  6  DSR
         |          RTS | ------------------------>  8  DCD
         |          RXC | -<--------- ** ---------< 11
         |              |  PIO DSR -- ** ---------< 20  DTR
         |              |          -- ** ---------> 15  TC
         |              |          -- **  --------> 17  RC
         |          TXC | -<--------- ** ---------< 24  TC
         |          CTS | -<----------------------< 18
         |              |
         |              |    PIO -----------------< 25
         |              |    PIO -----------------> 22
         |              |
         +--------------+

   WITH DTR TRUE ( PIN 20), RXC (PIN 11) IS CHECKED FOR AN INBOUND CLOCK
SIGNAL.  IF THERE IS A CLOCK SIGNAL, THEN THE SIO IS CLOCKED EXTERNALLY
FROM PIN 11 AND 24.  IF THERE IS NO CLOCK ON PIN 11 THEN AN INTERNAL CLOCK
SOURCE IS GATED TO THE SIO AND TO PIN 15 AND 17 ON THE REAR PANEL INTERFACE.

    THE OUTPUT OF THE DEBUG PORT 'S' COMMAND DISPLAYS ONE HEX BYTE THAT
IS A COMPOSITE OF THE DATA SET SIGNALS FROM THE PIO AND SIO CHIPS.  THE
OUTPUT BIT DEFINITIONS ARE THE SAME AS THE X.25 LINE BUT A NOTE NEEDS
TO MADE THAT THE X.25 IS A DTE INTERFACE AND THE DEVICE LINES ARE A
DCE INTERFACE.  THE UTILIZATION OF THE INBOUND RTS/CTS MAY NOT BE
REQUIRED FOR THE TP TO MAINTAIN THE INTERFACE.

   PINS 22 AND 25 ARE PAD DEPENDANT SO THEY MAY BE USED FOR
DIFFERENT FUNCTIONS THAN THOSE EXPECTED.

                  ALL NUMERIC VALUES ARE IN HEX.
                  COMMAND STRINGS CAN BE USED WHILE IN THE DEBUG PORT.

            ==============================================================<
            |    XCB DIRECTORY TABLE   (two bytes per entry)               >
            |  DEBUG |LOGGER| X.25 #0 | X.25 #1 | X.25 #2 | X.25 #3|.......
    L70,R24 |   DCB  |  DCB |   XCB   |   XCB   |   XCB   |  XCB   |        >
            |===============================================================>
                |        |        |       |            |        |
              XCB#0    XCB#1  | XCB#2   XCB#3     |  XCB#4    XCB#5
                              |   |       |       |    |        |
       +->>---------------->>-+   |       |    +>>+    |        |
       |                          |       |    |       |        |
       |    +<<----------------<<-+     L76,R2 |       |      L7A,R2
       |    |                                  |       |
       |    |  L74,L,R80                       | +<<---+ L78,L,R80
       |    |                                  | |
       |    +------------->>-------------->    | +--------->>------------->
       |    |  XCB        >>              >    | | XCB     >>             >
       |    +------------->>-------------->    | +--------->>------------->
       |                       | XCB+2D        |                 | XCB+2D
       |                       |            +>>+                 |
       |    +-<<---------------+            |   +-<<-------------+
       |    |                               |   |
       |    | L(XCB+2D),L,R((MAX.LCN*3)+3)  |   | L(XCB+2D),L,R((MAX.LCN*3)+3)
       |    |                               |   |
       |    +------------------>>-------->  |   +------------------>>-------->
       |    | LCN VECTOR TABLE >> ABCCDD >  |   | LCN VECTOR TABLE >> ABCCDD >
       B    |3 BYTES PER ENTRY >> ====== >  B   |3 BYTES PER ENTRY >> ====== >
       |    +------------------>>-------->  |   +------------------>>-------->
       |                            |       |                            |
       +--CC->>  TRUNK LCNS ----->  |       +--CC->>  CONCENTRATOR LCNS  |
       |         |LCN0 |LCN1 |...   |       |         |LCN0 |LCN1 |...   |
       |                            +--->>--+                            |
       |                                                                 |
       |   THREE BYTE LCN ENTRY ==> AB CC DD                             |
       |                             = == ==                             |
       |                             | |  |                              |
       |              XCB NUMBER ----+ |  |                              |
       |              LCN NUMBER ------+  +---- LCN TIMER                |
       |                                                                 |
       |                                                                 |
       +-<<-----------------------------------------------------<<-------+

           **  CC IS THE LCN NUMBER IN XCB B. B IN XCB #0 WILL POINT TO
               ==                           =  =
    XCB #4 IN THIS EXAMPLE. CC IN XCB #0 WILL GIVE THE LCN NUMBER USED IN
                            ==
    THE LCN VECTOR TABLES FOR XCB #4.


    1)   XCB OFFSETS             DEFINITION

          XCB + 09           CONTROL DATA SET SIGNAL STATUS
                                   BIT  4 = 1  RTS HIGH
                                        5 = 1  CTS HIGH
                                        6 = 1 DTR HIGH
                                        7 = 1 DSR HIGH
                                   THE S COMMAND RETRIEVES THIS LOC.
          XCB + 0B              POINTER TO LINE CONFIGURATION RECORD.

          XCB + 0E              NUMBER OF FRAMES DISCARDED.
          XCB + 0F              NUMBER OF CRC ERRORS

          XCB + 10              NUMBER OF REJECTS SENT
          XCB + 11              NUMBER OF REJECTS RECEIVED

          XCB + 12              NUMBER OF T1 TIMEOUT

          XCB + 13              NUMBER OF COMMAND REJECTS SENT
          XCB + 14              NUMBER OF COMMAND REJECTS RECEIVED

          XCB + 15              NUMBER OF DISCONNECTS SENT
          XCB + 16              NUMBER OF DISCONNECTS RECEIVED

          XCB + 17              NUMBER OF SET MODE SENT
          XCB + 18              NUMBER OF SET MODE RECEIVED

          XCB + 19              NUMBER OF FRAME OVERFLOW

          XCB + 1A              NUMBER OF I FRAMES SENT
          XCB + 1C              NUMBER OF I FRAMES RECEIVED

          XCB + 24              FLAG BYTE
                                 BIT 0 = 1   DCE-TO-DTE FLOW INIT
                                     1 = 1   DTE-TO-DCE FLOW INIT
                                     2 = 1   LINK RESET (DISC. OR SETMODE SENT
                                     3 = 1   DCE BUSY ( RNR SENT)
                                     4 = 1   IN TIMER RECOVERY
                                     5 = 1   SENT INTERNAL RESET. LAP RE-INIT.
                                     6 = 1   SET POLL BIT IN NEXT FRAME.

          XCB + 27              LINE STATUS
                                BIT 0 = 1  NOT ACTIVE
                                    1 = 1  DEACTIVATED
                                    2 = 1  BUSY-OUT
                                    3 = 1  ACTIVATING
                                    4 = 1  ACTIVE
                                    5 = 1  DEACTIVATING

          XCB + 2B              MAX. LCN PERMITTED
          XCB + 2C              CURRENT NUMBER OF LCN IN USE
          XCB + 2D              POINTER TO THE LCN VECTOR TABLE

          XCB + 47              'DISABLE/ ENABLE/ CLEAR COMMAND.
                                    NOT OPERATIONAL AT VERSION 1.01.
                                  01 - BUSY
                                  02 - CLEAR BUSY
                                  04 - RESET LINE

    2)   LCN VECTOR TABLE.
           ( XCB + 2D ,L,A (LCN ADDRESS),R3)
                   LCN ADDRESS = (LCN * 3)

          LCN + 0               BITS
                                0-3 - XCB DIRECTORY NUMBER.
                                4   - INIT CLEAR TIMER ON
                                5   - CLEAR INDICATION SENT
                                6   - CALL REQUEST SENT
                                7   - LCN ACTIVE
          LCN + 1               LCN NUMBER
                                 (SEE LCN + 0 , BITS 0-3 TO GET XCB NUMBER)
          LCN + 2               TIMER FOR LCN.