      SSA,RSS      BUFFER FULL         OCT 15, 1974 
      JMP SWRT1    NO/OUTPUT CHARACTER
      CLA          RESET BUFFER 
      CLB,INB      HALF FULL
      JSB BSTAT 
      NOP 
LSID2 LDA PRCV1    WAIT UNTIL 
      STA $EQ5,I   BUFFER EMPTY 
      JMP TEST
*                                                                               
*                                                                               
LSIE  EQU * 
      LDA EQT25,I  STATUS WORD
      SSA          DEVICE INTERRUPT ON
      JMP TBRAK    YES
      ALF,ALF 
      RAL          BREAK CONDITION
      SSA          ON 
      JMP LSID     YES
      SLA,RSS      BUFFER EMPTY 
      JMP TEST
      CLA          RESET BUFFER 
      CLB,INB      EMPTY
      JSB BSTAT 
      NOP 
      LDA EQT35,I  CHECK FOR DIRECTIVE
      LDB EQT36,I  AND TIMER
      JSB DRCTV    DIRECTIVE
      LDA SEND     NO DIRECTIVE 
      STA $EQ5,I   OUTPUT WORD
      JSB SWRIT 
*                                                                               
LSIK  EQU * 
      CLA          AUTO SPEED INTERRUPT 
LSTB  EQU * 
      CLB 
      JSB BSTAT    PROCESS BOARD STATUS 
      NOP 
      CLF 0        INHIBIT INTERRUPTS 
      LDB $EQ1     SET EQT
      STB EQTB     BASE 
      LDB $EQ5,I   GOOD-INDICATE CONTINUE 
      JSB EQT24,I  CALL LOGICAL CONTROL 
      JMP LSIK1    COMPLETE 
      JSB DRCTV    CHECK DIRECTIVES 
      JMP TEST
LSIK1 EQU * 
      LDA IDLE     LINE STATE 
      STA $EQ5,I   EQUALS IDLE
      JSB DONE
*                                                                               
LSIF  EQU * 
      LDA EQT25,I  STATUS WORD
      ALF,ALF      BUFFER 
      SSA,RSS      EMPTY ON 
      JMP TEST     NO 
      LDA $EQ15,I 
      AND RCVON    RESET TX BIT 
      STA $EQ15,I  TO COMPLETE
      JSB DONE
*                                                                               
*                                                                               
LSIG EQU *
      CLA          RECEIVE INTERRUPT
LSTC EQU *
      CCB 
      JSB BSTAT    CHECK STATUS 
      JMP TRBRK    LINE ERROR 
      SSA          TIMEOUT
      JMP TRBRK    TIMER REQUEST
      JMP STATB    NO 
LSIG1 EQU * 
      CLF 0        INHIBIT SYSTEM INTERRUPTS
      LDB $EQ1     WHILE IN LOGICAL DRIVER
      STB EQTB     EQT BASE 
      LDB $EQ5,I   CALL LOGICAL 
      JSB EQT22,I  READ ENTRY 
      JSB DONE     COMPLETE 
STATA JSB DRCTV    CHECK DIRECTIVE
      JSB STAT     GET DATA & STATUS
STATB LDA FRED     DATA WORD
      SSA,RSS      VALID DATA 
      JMP TEST     NO 
      RAL          MOVE SPECIAL CHAR BIT
      SSA,RSS      SPECIAL CHARACTER
      JMP SETBT    NO/ TURN ON 12 
MOVEB RAR          RIGHT POSITION 
      AND RB1T$    MASK OFF BITS
      JMP LSIG1    PASS TO LOGICAL
SETBT IOR B12$     SPECIAL BIT ON 
      JMP MOVEB 
TEST  EQU * 
      ISZ C.74     CONTINUE 
      JSB RTRN     RETURN 
*                                                                               
LSIH  EQU * 
      CLF 0 
      LDA EQT25,I  STATUS WORD
      SSA,RSS      DEVICE INTERRUPT 
      JMP RTRNI    NO 
      AND S$CC     DATA SET READY ON
      SZA,RSS      YES
      JMP LSIG     NO/TELL LOGICAL
      LDA EQT25,I  STATUS WORD
      AND P02$     CARRIER DOWN YET?
      SZA,RSS 
      JMP C2E      YES
      JMP TEST     NO/WAIT FOR CARRIER DOWN 
*                                                                               
TBRAK EQU * 
      JSB CLC      INHIBIT INTERRUPTS 
      LDB EQT19,I  SECONDARY
      RBL          CHANNEL
      SSB,RSS      ON 
      JMP SET10    NO 
      AND P09$     SBB & DSR
      CPA P08$     DSR ON 
      JMP *+2      YES
      JMP SET10    NO/LINE ERROR
      LDA $EQ6,I   RX STATUS WORD 
      ALF,ALF      BREAK TEST 
      RAR,SLA      BIT ON 
      JMP TEST     YES
      LDA $EQ6,I   NO/SET BREAK BIT 
      IOR B09$     FIRST TIME 
      STA $EQ6,I   THROUGH
      CLA          TELL 
      IOR B12$     LOGICAL
      JMP LDID1 
*                                                                               
SET10 EQU * 
      LDA $EQ15,I  TRANS CONTROL WORD 
      ALF          LINE 
      RAL          ERROR
      SSA          PREVIOUS 
      JMP *+5      YES
      LDA $EQ15,I  NO/SET 
      IOR B109$    LINE ERROR & DONE
      STA $EQ15,I  BIT
      JMP LSID     TELL LOGICAL 
      JMP TEST
*                                                                               
TRBRK EQU * 
      SSA          TIMING REQUEST 
      JMP TLOG     YES
      LDA $EQ15,I  LINE ERROR 
      ALF          DETECTED 
      RAL          PREVIOUSLY 
      SSA 
      JMP TLOG     YES
      LDA $EQ15,I  NO 
      IOR B109$    SET LINE ERROR 
      STA $EQ15,I  AND DONE BIT 
TLOG  JSB CLC      INHIBIT BOARD INTERRUPTS 
      LDA SOMEW    GET ERROR BIT
      JMP LSIG1    TELL LOGICAL 
*                                                                               
DONE  EQU * 
      NOP 
      LDA $EQ6,I   REMOVE 
      AND DUNBT    BREAK
      STA $EQ6,I   BIT
      LDA $EQ15,I  TX CONTROL WORD
      ALF          BIT 10 ON
      RAL 
      SSA          YES
      JMP DONE3    LINE ERROR 
      LDA $EQ15,I  SET BIT 9
      IOR B09$     DONE BIT 
      STA $EQ15,I 
      ALF          WE 
      SSA          ARE
      JMP DONE1    TRANSMITTING 
DONE2 EQU * 
      LDA $EQ15,I  TX CONTROL WORD
      AND ERRBT    REMOVE BIT 10
      STA $EQ15,I 
      JSB CLC      INHIBIT INTERRUPTS 
      JSB DQT      DEQUE TIMERS 
      LDA IDLE     RETURN ENTRY POINT 
      STA $EQ5,I   POINT
      JSB RTRN
DONE3 EQU * 
      JSB STC      FORCE FINAL INTERRUPT
      JSB STF      FOR LINE ERROR T/O 
      LDA $EQ15,I 
      AND ERRBT    REMOVE ERROR BIT 10
      STA $EQ15,I 
      JSB DQT      DEQUE TIMERS 
      LDA IDLE     RETURN ENTRY 
      STA $EQ5,I   POINT
      JMP TEST
*                                                                               
*                                                                               
DONE1 EQU * 
      LDA PRCV2    RETURN 
      STA $EQ5,I   ENTRY POINT
      LDA $EQ15,I  REMOVE 
      AND DUNBT    COMPLETE 
      STA $EQ15,I  BIT
      JMP TEST
*                                                                               
SAVE  EQU * 
      NOP 
      CLA,INA 
      STA RTX      INDICATE INTERRUPT 
      LDA SAVE
      ADA N03$     CALCULATE
      LDA A,I      RETURN ADDRESS 
      STA EXIT
      JMP SAVE,I
*                                                                               
INTON EQU * 
      NOP 
      LDB N01$     INTERRUPT
      STB IFLAG    SYSTEM 
      CLB          ON 
      SFC 0        STORE
      STB IFLAG    ZERO 
      JMP INTON,I 
*****************************************************                           
*                                                   *                           
*         COMMON RETURN                             *                           
*                                                   *                           
*****************************************************                           
*                                                                               
RTRN  EQU * 
      NOP 
      LDA $EQ15,I  COMPLETE 
      ALF,ALF      BIT
      RAR          ON 
      SLA,RSS      DISABLE BOARD INTERRUPTS 
      JSB STC      ENABLE INTERRUPTS
      LDA RTX      DETERMINE
      SZA,RSS      RETURN TYPE
      JMP RTRN1    I.74 
      SLA,RSS 
      JMP RTRN0    LOGICAL TIMER
RTRN2 EQU * 
      LDB $EQ14,I  GET XMISSION LOG 
      LDA SAVA     LOAD RTN CODE
      ISZ IFLAG    INT SYSTEM ON? 
      STF 0        ENABLE INTERRUPTS
      JMP C.74,I
*                                                                               
RTRN1 EQU * 
      LDA SAVA     LOAD RTN CODE
      ISZ IFLAG    INT SYSTEM ON? 
      STF 0        ENABLE INTERRUPTS
      JMP I.74,I
RTRN0 ISZ IFLAG    INT SYSTEM ON? 
      STF 0 
      JMP LTIM,I
*                                                                               
*****************************************************                           
*                                                   *                           
*         DEQUEUE TIMERS                            *                           
*                                                   *                           
*****************************************************                           
DQT   EQU * 
      NOP 
      LDA $EQ16,I  LOGICAL TIMER
      SSA,RSS      IN PROGRESS
      JMP DQT1     NO 
      ELA,CLE,ERA  YES
      STA $EQ16,I  CLEAR FLAG 
      CLA 
      LDB EQT31 
      ADB N01$
      JSB $TIME    CANCEL REQUEST 
DQT1  EQU * 
      JMP DQT,I 
*                                                                               
*****************************************************                           
*              BOARD STATUS CHECK                   *                           
*              B=-1 READ, 0 CONTROL, +1 WRITE       *                           
*              P+1 BAD STATUS, P+2 GOOD STATUS      *                           
*                                                   *                           
*****************************************************                           
BSTAT EQU * 
      NOP 
      STA COMP     CLEAR COMPOSITE STATS
      ADB STATX 
      LDA EQT19,I  FULL DUX SYSTEM
      SSA 
      ADB P06$     YES/NEW TABLE
      AND S$SBB    ISOLATE SEC CHANNEL
      RAL,RAL 
      XOR P01$     IF NOT SET FAKE IT 
      IOR EQT25,I 
      AND B,I 
      CPA B,I      CHECK STATUS 
      JMP BST1     OK 
      LDA P04$     BAD
      ADA COMP     UPDATE 
      STA COMP     INDICATE LINE ERROR
BST3  EQU * 
      LDA EQT25,I 
      AND DEVBT 
      IOR B13$
      JSB OTA 
      ADB P03$     GET MASK 
      LDA EQT25,I 
      AND M40$
      SZA,RSS      DATA ERROR 
      JMP *+3      NO 
      ISZ COMP
      ISZ COMP
      LDA EQT25,I 
      AND BREAK    BREAK ON 
      SZA,RSS      YES
      JMP *+2      NO 
      ISZ COMP
      LDA COMP     GET COMPOSITE STATUS 
      AND B,I      SAVE SELECTED BITS 
      ALF,ALF      POSITION 
      ALF          FOR
      STA B        LOGICAL
      LDA FRED
      AND RBYT$ 
      IOR B        FORM COMPOSITE 
      STA SOMEW    STORE COMPOSITE
      LDA CLR 
      JSB OTA 
REGRP EQU * 
      LDA SOMEW 
      JMP BSTAT,I 
*                                                                               
BST1  EQU * 
      ISZ BSTAT    RETURN +2
      JMP BST3
*                                                                               
*                                                                               
STATX DEF *+2 
RSTAT OCT 12       -1-READ VALUE
      OCT 12       0-CONTROL VALUE
      OCT 31       +1-WRITE VALUE 
      OCT 16       READ VALUE(TIMEOUT,LINE & DATA ERROR)
      OCT 16       CONTOL(TIMEOUT,LINE & DATA ER) 
      OCT 15       WRITE(TIMEOUT,LINE ERROR,BREAK)
FSTAT OCT 10       -1-READ
      OCT 10       0-CONTROL
      OCT 30       +1-WRITE 
      OCT 16       READ 
      OCT 16       CONTROL
      OCT 15       WRITE
*****************************************************                           
*                                                                               
*         CONFIGURE BOARD FOR RECEIVE                                           
*                                                                               
*****************************************************                           
RCVI  EQU * 
      NOP 
      LDA $EQ6,I   RESET
      IOR B15$     INTERFACE
      JSB FDON     FULL DUX STSTEM
      IOR M40$     SBA ON 
      JSB OTA 
      LDA DEVR     RESET ENABLE 
      JSB OTA      WORD 
      LDA CLR      RESET
      JSB OTA      STATUS 
      LDA EQT34,I  OUTPUT CHARACTER 
      JSB OTA      FRAME CONTROL
      JMP RCVI,I
*****************************************************                           
*                                                   *                           
*         CONFIGURE BOARD FOR SEND                  *                           
*                                                   *                           
*****************************************************                           
SNDI  EQU * 
      NOP 
      LDA $EQ15,I  RESET
      IOR B15$     INTERFACE
      JSB OTA 
      LDA DEVST    RESET ENABLE 
      JSB OTA      WORD 
      LDA CLR      RESET
      JSB OTA      STATUS 
      LDA EQT34,I  CHARACTER FRAME CONTROL
      AND ECHO     ECHO BIT OFF 
      JSB OTA 
      LDA EQT19,I  SECONDARY CHANNEL
      RAL          BIT
      SSA,RSS      ON 
      JMP SNDI,I   NO 
      LDA P01$     YES
      IOR B13$     OUT PUT SBB
      JSB OTA      BIT EQUALS ONE 
      JMP SNDI,I
      NOP 
FDON  EQU * 
      NOP 
      LDB EQT19,I  IS IT FULL DUX 
      SSB          NO 
      IOR M200$    KEEP CA ON 
      JMP FDON,I
*                                                                               
*****************************************************                           
OTA   EQU * 
      NOP 
O1    OTA SC
      JMP OTA,I 
*                                                                               
*****************************************************                           
STC   EQU * 
      NOP 
O2    STC SC
      JMP STC,I 
*                                                                               
*****************************************************                           
CLC   EQU * 
      NOP 
O3    CLC SC
      JMP CLC,I 
*                                                                               
*****************************************************                           
STAT  EQU * 
      NOP 
O3A   CLC SC
O4    LIA SC,C
      STA EQT25,I 
O2A   STC SC
O4A   LIA SC
      STA FRED
      JMP STAT,I
*                                                                               
****************************************************                            
STF   EQU * 
      NOP 
O5    STF SC
      JMP STF,I 
*                                                                               
*****************************************************                           
*                                                                               
SETIO EQU * 
*                                                   *                           
*****************************************************                           
      NOP 
      CPA LAST     ALREADY CONFIGURED 
      JMP SETIO,I  YES
      STA LAST     NO 
      ADA CLCO     FORM CLC INSTRUCTION 
      STA O3
      STA O3A 
      ADA N4K      FORM STC INSTRUCTION 
      ADA B09$
      STA O2
      STA O2A 
      ADA N64$     FORM OTA INSTRUCTION 
      XOR B09$
      STA O1
      ADA N64$     FORM LIA INSTRUCTION 
      STA O4
      STA O4A 
      LDA LAST
      ADA STFO     FORM STF INSTRUCTION 
      STA O5
      JMP SETIO,I 
TBL0  DEF *+1 
      OCT 0        EXTERNAL CLOCK 
      OCT 3        110 BAUD 
      OCT 4        134.5 BAUD 
      OCT 5        150 BAUD 
      JSB BAUDB    220.BAUD 
      OCT 6        300 BAUD 
      JSB BAUDB    440 BAUD 
      OCT 7        600 BAUD 
      JSB BAUDB 
      OCT 11       1200 BAUD
      JSB BAUDB    1760 BAUDX 
      OCT 13       2400 BAUD
      OCT 14       3600 BAUD
      OCT 15       4800 BAUD
      OCT 16       7200 BAUD
      OCT 17       9600 BAUD
BAUDB ISZ SAVA
      JSB RTRN
*****************************************************                           
*                                                   *                           
*         EQT LINKAGE TABLE                         *                           
*                                                   *                           
*****************************************************                           
EQT19 NOP          BOARD PARAMETERS 
EQT20 NOP          CHAR FRAME CONTROL 
EQT21 NOP 
EQT22 NOP          LREAD
EQT23 NOP          LWRIT
EQT24 NOP          LCNTL
EQT25 NOP          I/F BOARD STATUS 
EQT27 NOP          DVR74 TIMER PROCESSOR
EQT31 NOP          LOGICAL TIMER PROCESSR 
EQT34 NOP          COUNTER FOR NULL O/P 
EQT35 NOP          FIRST CHARACTER O/P
EQT36 NOP          TIMER STORAGE
*                                                                               
*         BASE PAGE CONSTANTS                                                   
*                                                                               
#     EQU 53B 
N01$  EQU #-1 
N02$  EQU #-2 
N03$  EQU #-3 
N04$  EQU #-4 
N05$  EQU #-5 
N06$  EQU #-6 
N07$  EQU #-7 
N08$  EQU #-8 
N09$  EQU #-9 
N10$  EQU #-10
N64$  EQU #-11
P00$  EQU # 
P01$  EQU #+1 
P02$  EQU #+2 
P03$  EQU #+3 
P04$  EQU #+4 
P05$  EQU #+5 
P06$  EQU #+6 
P07$  EQU #+7 
P08$  EQU #+8 
P09$  EQU #+9 
P10$  EQU #+10
P17$  EQU #+11
P64$  EQU #+12
M17$  EQU #+13
M37$  EQU #+14
M77$  EQU #+15
M177$ EQU #+16
RBYT$ EQU #+17     OCT377 
LBYT$ EQU #+18     OCT177400
M3777 EQU #+19     OCT 3777 
M1777 EQU #+120    OCT177700
*         BASE PAGE VARIABLES                                                   
##    EQU 202B
$EQ1  EQU ##+1
$EQ3  EQU ##+3     UNIT SELECT CODE 
$EQ4  EQU ##+4     STATUS 
$EQ5  EQU ##+5     LINE STATE 
$EQ6  EQU ##+6     RX CONTROL WORD
$EQ9  EQU ##+9     CURRENT I/O REQUEST
$EQ10 EQU ##+10    PARAMETER 1
$EQ11 EQU ##+11    PARAMETER 2
$EQ14 EQU ##+14    TRANSMISSION LOG 
$EQ15 EQU ##+15    TX CONTROL WORD
$EQ16 EQU ##+16    TIMER FLAGS
$EQ17 EQU ##+17    EXTENSION LINK 
AOPEN EQU P02$     AWAITING OPEN
ARING EQU P01$     AWAITING RING
AUTOS EQU P10$
B09$  OCT 1000
B10$  OCT 2000
B109$ OCT 3000
B11$  OCT 4000
B12$  OCT 10000 
B13$  OCT 20000 
B14$  OCT 40000 
B15$  OCT 100000
BREAK OCT 100 
CDOFF OCT 177677
CLCO  CLC 0 
CLOSE EQU P00$     CLOSED 
CLR   OCT 50077 
COMP  NOP 
DEVR  OCT 10012 
DEVBT OCT 37
DEVST OCT 10033 
DUNBT OCT 176777
ECHO  OCT 177757
EQTB EQU 300B 
ERRBT OCT 171777
EXIT  NOP 
FRED  NOP          DATA CHARACTER 
IDLE  EQU P03$     IDLE 
IFLAG NOP 
INCD  OCT 103 
LAST  NOP 
MPTFL EQU 271B     MEMORY PROTECT FLAG
M20$  OCT 20
M40$  OCT 40
M60$  OCT 60
M100$ OCT 100 
M200$ OCT 200 
M400$ OCT 400 
M700$ OCT 700 
N4K   OCT 174000
PRCV1 EQU P06$     PRE TO RCV#1 
PRCV2 EQU P07$     PRE TO RCV#2 
PRCV3 EQU P08$     PRE TO RCV#3 
PSND  EQU P04$     PREPARE TO SEND
RB1T$ OCT 4377
RCVON OCT 173777
RECV  EQU P09$     RECEIVE
RHOLD NOP 
RTX   NOP 
SAVA  NOP 
SCODE NOP 
SEND  EQU P05$     SEND 
SOMEW NOP 
SPEC  OCT 60400 
STFO  STF 0 
SWORD NOP 
S$SBB EQU B14$     SECONDARY RECEIVE
S$CC  EQU P08$     DATA SET READY 
S$CE  EQU P02$     RINGING
TBT1  NOP 
TCONT OCT -400
TCON1 NOP 
      END 
                                                                                                                                                                                              