Copy Link
Add to Bookmark
Report
Phrack Inc. Volume 04 Issue 42 File 07
==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.