                         ==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.
