* 
* CHECK IBI FLAG LOGIC IS ENABLED 
*  BY EORFLG AND EORFLGEN.
* 
      JSB NOTWM     SET ERROR REPORTING MODE. 
      JSB CLCCF     CLF ON IBI. 
      JSB SFCIB     SFC ON IBI. IS IT CLEAR?
E042  DEF IOFLG      NO! I-O FLAG ERROR.
      JSB CACTV     DISABLE PPREQ.
      JSB SPPMD     SET ATN AND EOI.
      JSB SINPD     SET EOR FF. 
      JSB SFCIB     FLAG SHOULD NOT BE SET. IS IT?
E043  DEF IOFLG      YES! I-O FLAG ERROR. 
* 
* CHECK ABILITY TO SET THE IBI FLAG VIA EORFLG. 
* 
      JSB CONT      SET EOR 
      OCT 10200      FLAG ENABLE. 
      JSB SFSIB     I-O FLAG SHOULD BE SET. IS IT?
E044  DEF EOFEN      NO! EORFLG ERROR.
* 
* INSURE CRS CLEARS EORFLGEN. 
* 
      CLC INTP,C       CRS SHOULD CLEAR EORFLGEN. 
      JSB TIMOT     ALLOW IFC TO SETTLE.
      JSB CLCCF     CLC IBI,C.
      JSB SPPMD     SET 
      JSB SINPD      EOR FF.
      JSB SFCIB     FLAG SHOULD NOT SET. DID IT?
E045  DEF EOFEN     YES! EORFLG ERROR.
* 
* CHECK ABILITY TO CLOCK EORFLGEN LOW.
* 
      JSB CLCCF     CLEAR EOR FF. 
      JSB CONT      SET 
      OCT 10200      EORFLGEN.
      JSB CG3MC     CLEAR MODE CONTROL (EORFLGEN).
      JSB SPPMD     SET ATN AND EOI FF'S. 
      JSB SINPD     CLOCK EOR FF HIGH.
      JSB SFCIB     FLAG SHOULD NOT SET. DID IT?
E046  DEF EOFEN      YES! EORFLG ERROR. 
* 
* CHECK EORFLG LOW DOESN'T SET IBI FLAG.
* 
      JSB CLCCF     CLEAR EOR FF. 
      JSB CONT      SET 
      OCT 10200       EORFLGEN. 
      JSB SFCIB     FLAG SHOULD NOT SET. DID IT?
E047  DEF EOFEN      YES! EORFLG ERROR. 
      SKP 
* 
* THIS SECTION TESTS THE ABILITY TO CHECK 
*  STATUS ON THE DAV,RFD AND DAC SIGNALS. 
* 
      JSB PRWMS     SET ERROR REPORTING MODE. 
      LDA B7000     SET UP
      STA MASK        TEST MASK.
      JSB IFCMD     INITIALIZE IBI(DAV CLEARS). 
      JSB TIMOT     ALLOW TIME FOR IFC TO SETTLE. 
      LDB B3000     GET EXPECTED STATUS.
      JSB STAT      IS RFD-DAC HIGH,DAV CLEAR?
E050  DEF HANDS      NO! REPORT ERROR.
      JSB INITF     SET RFD FF. 
      JSB SLSTN     SET LISTEN. 
      CLB           FORM EXPECTED STATUS. 
      JSB STAT      IS DAV,RFD AND DAC LOW? 
E051  DEF HANDS      NO! REPORT ERROR.
      JSB LIAIB     CLEAR RFD FF. 
      LDB BIT10     GET EXPECTED STATUS.
      JSB STAT      IS RFD HIGH,DAV-DAC LOW?
E052  DEF HANDS      NO! REPORT ERROR.
      JSB INITF     SET RFDFF.
      CLB           FORM EXPECTED STATUS. 
      JSB STAT      IS RFD,DAC & DAV CLEAR? 
E053  DEF HANDS      NO! REPORT ERROR.
      JSB CONT      SET ATN,EOI 
      OCT 10270      AND EORFLGEN.
      JSB SINPD     CLOCK EOR FF HIGH.
      JSB INITF     CLEAR RFD FF. 
      JSB SEOI      CLEAR ATN.
      JSB STAT      ALL HANDSHAKE SIGNALS CLEAR?
E054  DEF HANDS      NO! REPORT ERROR.
      JSB CONT      SET ATN AND EOI AND 
      OCT 270        CLEAR MODE CONTROL.
      LDB BIT10     GET EXPECTED STATUS.
      JSB STAT      ONLY RFD SHOULD BE HIGH.
E055  DEF HANDS      NO! REPORT ERROR.
      JSB CONT      SET 
      OCT 10200      EORFLGEN.
      JSB CLCCF     CLEAR EOR FF. 
      JSB STAT      ONLY RFD SHOULD STILL BE HIGH.
E056  DEF HANDS      NO! REPORT ERROR.
      JSB INITF     SET RFD FF. 
      JSB CTLSN     CLEAR LISTEN MODE.
      LDB B3000     GET EXPECTED STATUS.
      JSB STAT      RFD & DAC HIGH? 
E057  DEF HANDS      NO! REPORT ERROR.
      LDB BIT10     GET EXPECTED STATUS.
      JSB SLSTN     SET LISTEN. 
      JSB SATN      SET ATTENTION.
      JSB STAT      RFD STILL HIGH? 
E060  DEF HANDS      NO! REPORT ERROR.
      SKP 
* 
* THIS SECTION TESTS THE ORAFLG AND ORAFLGEN LOGIC
* 
      JSB SDMOD     FORCE RFD 
      JSB SLSTN       LOW.
      JSB INITF     INITIALIZE OBR LOGIC FOR OUTPUT.
      LDB BIT13     GET EXPECTED STATUS.
      STB MASK      SET UP TEST MASK. 
      JSB STAT      GET IBI STATUS. ORAFLG HIGH?
E061  DEF ORAFL      NO! ORA FLG ERROR. 
      CLA           OUTPUT ZEROS
      JSB DATOT       TO IB DATA BUS. CLEAR OWRL FF.
      CLB           GET EXPECTED STATUS.
      JSB STAT      GET IBI STATUS, ORAFLG LOW? 
E062  DEF ORAFL      NO! ORAFLG ERROR.
      JSB NOTWM     SET ERROR REPORTING MODE. 
      CLC INTP,C       CLEAR ORAFLGEN IN CASE IT WAS SET. 
      JSB TIMOT     ALLOW IFC TO SETTLE.
      JSB INITF     INITIALIZE OBR LOGIC FOR OUTPUT.
      JSB SFCIB     IS FLAG SET?
E063  DEF ORAFL      YES! ORAFLG ERROR. 
* 
* TEST ABILITY TO SET ORAFLGEN. 
* 
      JSB CONT      SET 
      OCT 20200      ORAFLGEN.
      JSB SFSIB     I-O FLAG SET? 
E064  DEF ORAFL      NO! ORAFLG ERROR.
* 
* TEST ABILITY TO CLEAR ORAFLGEN. 
* 
      JSB CG3MC     CLEAR ORAFLGEN. 
      JSB CLCCF     CLC IBI,C. SHOULD STAY CLEAR. 
      JSB SFCIB     WAS ORAFLGEN CLEARED? 
E065  DEF ORAFL      NO! ORAFLG ERROR.
* 
* CHECK CRS CLEARS ORAFLGEN.
* 
      JSB CONT      SET 
      OCT 20200      ORAFLGEN.
      CLC INTP,C       CRS SHOULD CLEAR ORAFLGEN. 
      JSB TIMOT     ALLOW TIME FOR IFC TO SETTLE. 
      JSB CLCCF     CLC IBI,C. FLAG SHOULD STAY CLEAR.
      JSB SFCIB     DID CRS CLEAR ORAFLGEN? 
E066  DEF ORAFL      NO! ORAFLG ERROR.
* 
* THIS SECTION WILL TEST THE IRLFLGEN AND 
*  IRL FLG LOGIC. 
* THE PREVIOUS CLC INTP,C SHOULD HAVE INSURED PAKEN WAS CLEAR.
* 
      JSB PRWMS     SET ERROR REPORTING MODE. 
      JSB SINPD     CLOCK IRL FF HIGH.
      LDB BIT14     GET EXPECTED STATUS.
      STB MASK      SET UP TEST MASK. 
      JSB STAT      DID IRL FF GET SET? 
E067  DEF IRLFL      NO! IRL FLG ERROR. 
      SKP 
* 
* CHECK ABILITY TO CLEAR IRL FF.
* 
      LDB B100      RESET THE 
      STB ERRCD      ERROR CODE.
      JSB LIAIB     CLEAR IRL FF. INPUT BYTE CNTR 
*                                      SHOULD STAY LOW FROM PACKEN. 
      CLB           GET EXPECTED STATUS.
      JSB STAT      DID IRL FF CLEAR? 
E100  DEF IRLFL      NO! IRL FLG ERROR. 
* 
* CHECK ABILITY TO SET IRL FF.
* 
      JSB SINPD     CLOCK IRL FF HIGH.
      LDB BIT14     GET EXPECTED STATUS.
      JSB STAT      DID IRL FF GET SET? 
E101  DEF IRLFL      NO! IRL FLG ERROR. 
      JSB LIAIB     IF PACKEN CLEAR THEN INPUT BYTE 
      JSB SINPD      CNTR CLEAR. CLEAR IRL FF.
      JSB STAT      DID IRL FF CLEAR? 
E102  DEF IRLFL      NO! IRL FLG ERROR. 
      JSB CLCCF     CLC IBI,C.
      JSB SINPD     SET IRL FF FROM INPUT BYTE CNTR.
      JSB NOTWM     SET ERROR REPORTING MODE. 
      JSB SFCIB     IBI FLAG CLEAR? 
E103  DEF IRLFL      NO! IRL FLG ERROR. 
* 
* CHECK ABILITY TO SET IRLFLGEN.
* 
      JSB CONT      SET 
      OCT 40200      IRLFLGEN.
      JSB SFSIB     IS IBI FLAG SET NOW?
E104  DEF IRLFL      NO! IRL FLG ERROR. 
* 
* CHECK CRS CLEARS IRLFLGEN.
* 
      CLC INTP,C       CRS SHOULD CLEAR IRLFLGEN. 
      JSB CLCCF     CLC IBI,C.
      JSB SFCIB     IBI FLAG SHOULD BE CLEAR. 
E105  DEF IRLFL      NO! IRL FLG ERROR. 
* 
* CHECK ABILITY TO CLEAR IRLFLGEN.
* 
      JSB CONT      SET 
      OCT 40200      IRLFLGEN.
      JSB CG3MC     CLEAR IRLFLGEN. 
      JSB CLCCF     CLC IBI,C.
      JSB SFCIB     IS IBI FLAG STILL CLEAR?
E106  DEF IRLFL      NO! IRL FLG ERROR. 
      SKP 
* 
* THIS SECTION TESTS THE SRQFLGEN,SRQFLG,RFDFF,OBRLFF,
*  NSRQFLG,GENSRQEN AND SERIAL POLL MODE LOGIC. 
* 
* CHECK ABILITY TO SET AND CLEAR SRQFLG.
* 
      JSB IFCMD     SET IFC AND ACTIVE. 
      JSB TIMOT     ALLOW IFC TO SETTLE.
      JSB PRWMS     SET ERROR REPORTING MODE. 
      LDB BIT15     GET EXPECTED STATUS.
      STB MASK      SET UP TEST MASK. 
      JSB STAT      SRQFLG HIGH?
E107  DEF SRQFL      NO! REPORT ERROR.
      JSB CACTV     CLEAR ACTIVE. 
      CLB           GET EXPECTED STATUS.
      JSB STAT      SRQFLG LOW? 
E110  DEF SRQFL      NO! REPORT ERROR.
* 
* CHECK ABILITY TO CLEAR SRQFLGEN.
* 
      JSB CONT      SET 
      OCT 100200     SRQFLGEN.
      JSB CG3MC     CLEAR ALL FLAG ENABLES. 
      JSB NOTWM     SET ERROR REPORTING MODE. 
      JSB SACTV     SET ACTIVE. SRQFLG HIGH.
      JSB SFCIB     I-O FLAG CLEAR? 
E111  DEF SRQFL       NO! REPORT ERROR
* 
* CHECK ABILITY TO SET SRQFLGEN.
* 
      JSB CONT      SET 
SSRQE OCT 100200     SRQFLGEN.
      JSB SFSIB     DID IT SET? 
E112  DEF SRQFL      NO! REPORT ERROR.
* 
* CHECK CRS CLEARS SRQFLGEN.
* 
      CLC INTP,C       SHOULD CLEAR SRQFLGEN. 
      JSB TIMOT     ALLOW TIME FOR IFC TO SETTLE. 
      JSB CLCCF     CLC IBI,C.
      JSB IFCMD     TRIGGER IFC.
      JSB TIMOT     ALLOW TIME FOR IFC TO SETTLE. 
      JSB SFCIB     DID CRS CLEAR SRQFLGEN? 
E113  DEF SRQFL      NO! REPORT ERROR.
      SKP 
* 
* CHECK CONTROL WORD BIT 7 LOGIC WHICH ENABLES
*  CLOCKS TO TO FLGEN LOGIC.
* 
      JSB CONT      SHOULD NOT SET SRQFLGEN 
      OCT 100000     WITHOUT CONTROL BIT 7 SET. 
      JSB SFCIB     FLAG SHOULD BE CLEAR. IS IT?
E114  DEF SRQFL      NO! REPORT ERROR.
      LDA SSRQE     OUTPUT DATA WORD WHICH
      JSB DATOT      SHOULD NOT SET SRQFLGEN. 
      JSB SFCIB     I-O FLAG SHOULD NOT SET. DID IT?
E115  DEF SRQFL      YES! REPORT ERROR. 
      JSB CONT      SET 
      OCT 100200     SRQFLGEN.
      JSB SFSIB     I-O FLAG SHOULD SET. DID IT?
E116  DEF SRQFL      NO! REPORT ERROR.
* 
* CHECK NSRQFLG CAN GENERATE IBI FLAG AND 
*  CHECK NSRQFLG LOGIC. 
* 
      JSB CLCCF     SHOULD CLEAR IFCFLG.
      JSB SFCIB     NO I-O FLAG WITH IFCFLG CLEAR.
E117  DEF SRQFL     IF SET REPORT ERROR.
* 
* CHECK GENSRQEN LOGIC
* 
      JSB PRWMS     SET ERROR REPORTING MODE. 
      JSB CONT      SET 
      OCT 1200       GENSRQEN.
      JSB STALK     CLEAR LISTEN FF.
      JSB LIAIB     CLOCK RFDFF LOW. SRQFLG HIGH. 
      LDB BIT15     GET EXPECTED STATUS.
      STB MASK      SET TEST MASK.
      JSB STAT      IS SRQFLG HIGH? 
E120  DEF SRQFL      NO! REPORT ERROR.
      JSB STLAT     SET TALK AND LISTEN FF'S. 
      CLB           GET EXPECTED STATUS.
      JSB STAT      IS SRQFLG LOW?
E121  DEF SRQFL      NO! REPORT ERROR.
      JSB CG3MC     CLEAR GENSRQEN. 
      JSB STALK     CLEAR LISTEN MODE.
      JSB STAT      IS SRQFLG LOW?
E122  DEF SRQFL      NO! REPORT ERROR.
      JSB CONT      SET 
      OCT 1200       GENSRQEN.
      JSB INITF     INITIALIZE OBR LOGIC FOR OUTPUT.
      JSB STAT      IS SRQFLG LOW?
E123  DEF SRQFL      NO! REPORT ERROR.
      SKP 
* 
* CHECK CRS CLEARS GENSRQEN 
* 
      CLC INTP,C       CRS SHOULD CLEAR GENSRQEN. 
      JSB TIMOT     WAIT FOR IFC TO SETTLE. 
      JSB LIAIB     CLEAR RFD FF. 
      JSB CLCCF     ISSUE CLRINTFLG TO IBI. 
      JSB STAT      DID CRS CLEAR GENSRQEN? 
E124  DEF SRQFL      NO! REPORT ERROR.
* 
* CHECK FOR CROSSTALK ERROR IN THE MODE CONTROL LOGIC.
* 
      JSB CONT      SET ALL MODE CONTROLS 
      OCT 6600       EXCEPT GENSRQEN. 
      JSB STAT      I-O FLAG STILL CLEAR? 
E125  DEF SRQFL      NO! REPORT ERROR.
      JSB CONT      SET 
      OCT 1200       GENSRQEN.
      JSB INITF     INITIALIZE OBR LOGIC FOR OUTPUT.
      JSB STAT      SRQFLG CLEAR? 
E126  DEF SRQFL      NO! REPORT ERROR.
* 
* CHECK INPUT BYTE CNTR AND RFDFF LOGIC.
* 
      JSB CONT      SET PACKEN AND
      OCT 5200       GENSRQEN.
      JSB LIAIB     CLEAR RFD FF. 
      LDB BIT15     GET EXPECTED STATUS.
      JSB STAT      SRQFLG SET? 
E127  DEF SRQFL      NO! REPORT ERROR.
      JSB INITF     INITIALIZE OBR LOGIC FOR OUTPUT.
      JSB SINPD     CLEAR RFDFF.
E130  JSB STAT      SRQFLG HIGH?
      DEF SRQFL      NO! REPORT ERROR.
      JSB SINPD     SHOULD CLOCK RFDFF HIGH.
      CLB           GET EXPECTED STATUS.
      JSB STAT      SRQFLG LOW? 
E131  DEF SRQFL      NO! REPORT ERROR.
      JSB CONT      CLEAR 
      OCT 2          REN. 
      LDA BIT8      SET UP TEST 
      STA MASK       MASK.
      JSB STAT      DOES SRQ DRAG REN LOW ON IB?
E132  DEF RENF       YES! REPORT ERROR. 
      SKP 
* 
* CHECK OBRL FF INPUTS TO THE NSRQFLG LOGIC.
* 
      JSB SLSTN     SET LISTEN FF.
      JSB INITF     INITIALIZE OBR LOGIC FOR OUTPUT.
      JSB DATOT     SET OBRL FF.
      LDB BIT15     GET EXPECTED STATUS.
      JSB STAT      SRQFLG HIGH?
E133  DEF SRQFL      NO! REPORT ERROR.
      JSB INITF     INITIALIZE OBR LOGIC FOR OUTPUT.
      CLB           GET EXPECTED STATUS.
      JSB STAT      DID OBRL FF CLEAR?
E134  DEF SRQFL      NO! REPORT ERROR.
      JSB DATOT     SET OBRL FF.
      LDB BIT15     GET EXPECTED STATUS.
      JSB STAT      DID OBRL FF SET?
E135  DEF SRQFL      NO! REPORT ERROR.
      JSB STALK     SET TALK FF.
      CLB           GET EXPECTED STATUS.
      JSB STAT      IS SRQFLG CLEAR?
E136  DEF SRQFL      NO! REPORT ERROR.
      JSB CG3MC     CLEAR GENSRQEN. 
      JSB CTLSN     CLEAR TALK MODE.
      JSB STAT      SRQFLG LOW? 
E137  DEF SRQFL      NO! REPORT ERROR.
* 
* CHECK ABILITY OF SPMFLG AND ACTIVE
* LOGIC TO SET IBI FLAG.
* 
      JSB IFCMD     GENERATE IFC. 
      JSB TIMOT     ALLOW TIME FOR IFC TO SETTLE. 
      JSB SACTV     CLEAR ACTIVE FF.
      JSB SATN      SET ATN.
      LDA B30       SET 
      JSB DATOT       SPM FF. 
      JSB CACTV     CLEAR ACTIVE. 
      LDB BIT15     GET EXPECTED STATUS.
      JSB STAT      SRQFLG HIGH(NACTIVE AND SPM)? 
E140  DEF SRQFL      NO! REPORT ERROR.
      JSB IFCMD     CLEAR SPM FF. 
      JSB TIMOT     ALLOW IFC TO SETTLE.
      JSB CACTV     CLEAR ACTIVE. 
      CLB           GET EXPECTED STATUS.
      JSB STAT      DID SPM FF CLEAR? 
E141  DEF SRQFL      NO! REPORT ERROR.
      SKP 
* 
* CHECK NO DATA COMBINATION (EXCEPT 30B) WILL SET 
*  THE SPM FF.
* 
      JSB SATN      SET ATN.
      CLA           INITIALIZE DATA.
PTLOP CPA B30       IS THIS "SET THE SPM FF DATA"?
      JMP NOTST       YES! DON'T TEST PATTERN.
      JSB SACTV     GATE DATA TO IB.
      JSB DATOT     SHOULD NOT SET SPM FF.
      JSB CACTV     CLEAR ACTIVE. 
      STA CTLWD     PUT DATA IN CONTROL WORD. 
      JSB STAT      DID SPM FF SET? 
E142  DEF SPMFF      YES! REPORT ERROR. 
      RSS           SKIP ERROR CODE UPDATE. 
NOTST ISZ ERRCD     UPDATE ERROR CODE.
      CPA B177      END OF DATA?
      JMP CKSPM      YES! EXIT. 
      JSB DECEC      NO! DECREMENT ERROR NUMBER.
      INA           DO ANOTHER
      JMP PTLOP          PATTERN. 
* 
* CHECK 30B DATA WILL SET THE SPM FF. 
* 
CKSPM JSB SACTV     SET ACTIVE. 
      LDA B30       SET 
      JSB DATOT       SPM FF. 
      JSB CACTV     CLEAR ACTIVE. 
      LDB BIT15     GET EXPECTED STATUS.
      JSB STAT      DID SPM FF SET? 
E143  DEF SPMFF      NO! REPORT ERROR.
* 
* CHECK 31B WILL CLEAR THE SPM FF 
* 
      JSB CLCCF     CLEAR IFCFLG FF.
      JSB SACTV     GATE DATA TO IB.
      LDA B31       CLEAR 
      JSB DATOT      SPM FF.
      JSB CACTV     CLEAR ACTIVE. 
      CLB           GET EXPECTED STATUS.
      JSB STAT      DID SPM FF CLEAR? 
E144  DEF SPMFF      NO! REPORT ERROR.
      JSB SACTV     SET ACTIVE MODE.
      LDA B30       SET 
      JSB DATOT       SPM FF. 
      JSB STAT      SRQ FLG LOW?
E145  DEF SRQFL      NO! REPORT ERROR.
      SKP 
* 
* THIS SECTION WILL TEST THE PPPID(SW1) 
*  AND MYADDR(SW2) LOGIC. 
* 
      JSB CLCCF     CLEAR IFCFLG FF.
      LDA B17       SET UP
      STA MASK       DATA TEST MASK.
      CLA           SAVE EXPECTED 
      STA PATTN      STATUS WORD. 
PPLOP JSB DATOT     OUTPUT DATA.
      LDB PATTN     GET EXPECTED STATUS 
      JSB STAT      PPPID OK? 
E146  DEF PPFL2      NO! REPORT ERROR.
      CPA B377      END OF DATA PATTERNS? 
      JMP NXTST      YES! GO DO NEXT TEST.
      JSB DECEC      NO! DECREMENT ERROR COUNT. 
      CCE           SET E-REG FOR SHIFT.
      ELA           SHIFT PATTERN.
      ISZ PATTN     UPDATE EXPECTED STATUS. 
      JMP PPLOP     GO TRY ANOTHER PATTERN. 
* 
* CHECK IFCFLG FF FORCES PPPID TO 11B.
* 
NXTST JSB IFCMD     SET IFC.
      JSB TIMOT     ALLOW IFC TO SETTLE.
      LDB B11       GET EXPECTED STATUS.
      JSB STAT      IS PPPID=11B? 
E147  DEF PPFL2      NO! REPORT ERROR.
* 
* CHECK PPP ID ENABLED ONTO IB. 
* 
      JSB CTLSN     DISABLE OUTPUT DATA TO IB.
      JSB SINPD     CLOCK IB DATA TO INPUT REGISTER.
      CLB           EXPECTED DATA.
      JSB CDATA     GET ACTUAL DATA. IS IT OK?
E150  DEF BUSDF     NO! IB DATA NOT ONES. 
      JSB CONT      SET GENSRQEN AND
      OCT 1300       CLEAR TALK AND LISTEN. 
      JSB LIAIB     CLEAR RFD FF. 
      JSB SPPMD     SET ATN AND EOI.
      CLA           OUTPUT ZERO TO
      JSB DATOT       IBI.
      JSB SINPD     IB DATA SHOULD BE ZERO. 
      LDB EXPID     GET EXPECTED PPPID. 
      JSB CDATA     GET ACTUAL DATA. DOES IT COMPARE? 
E151  DEF PPFL2       NO! REPORT ERROR. 
      SKP 
* 
* CHECK MY ADDRESS LOGIC INCLUDING THE ABILITY
* TO SET AND CLEAR THE TALK AND LISTEN MODES. 
* THIS SECTION ALSO INSURES THE IBI RESPONDS
*  TO ONLY ONE ADDRESS. 
* 
      CCA           MARK
      STA NOLSN      NO LISTEN AND
      STA NOTAK       NO TALK INDICATORS. 
      CLA           INITIALIZE
TLLOP STA PATTN       TALK ADDR PATTERN.
      JSB CTLSN     CLEAR LISTEN. 
      JSB SATN      SET ATN.
      LDA PATTN     GET ADDRESS PATTERN.
      JSB DATOT     OUTPUT ADDRESS. 
      JSB STFIB     GET IBI 
      JSB LIAIB      STATUS.
      AND B140      MASK TO TALK-LISTEN STATUS BITS.
      SZA           IS TALK OR LISTEN SET?
      JMP PROTL      YES! GO CHECK FOR ERROR. 
TLOOP ISZ PATTN     UPDATE TEST PATTERN.
      LDA PATTN     GET TEST PATTERN. 
      CPA BIT7      END OF TEST?
      JMP NXTFC       YES! GO DO NEXT TEST. 
      JMP TLLOP       NO! GO CHECK NEXT DATA. 
      SKP 
* 
* INSURE ADDR LOGIC DID NOT RESPOND TO BIT5-6=0 
* 
PROTL STA SAVIO     SAVE ACTUAL INPUT.
      CLB           FORM EXPECTED STATUS. 
      LDA PATTN     GET OUTPUT PATTERN. 
      AND B140      MASK TO TALK-LISTEN CNTL BITS.
      SZA           WAS IS IT A TALK OR LISTEN? 
      JMP SK9        YES! CONTINUE NORMALLY.
      LDA SAVIO      NO! RESTORE ACTUAL STATUS. 
      JSB SENDM     SEND ERROR MESSAGE. 
E152  DEF MYADR     TALK-LSTN SET W/O CNTL. 
SK9   LDA PATTN     GET OUTPUT DATA AGAIN.
      AND B37       MASK TO ADDRESS.
      ISZ ERRCD     UPDATE ERROR NUMBER.
      CPA EXMYA     DOES ADDRESS COMPARE? 
      JMP SK10       YES! CONTINUE NORMALLY.
      LDA SAVIO     RESTORE ACTUAL STATUS.
      JSB SENDM     SEND ERROR MESSAGE. 
E153  DEF MYADR     ILLEGAL MYADDR DECODED. 
SK10  JSB DECEC     DECREMENT ERROR CODE. 
      LDA PATTN     GET ADDRESS PATTERN AGAIN.
      AND B40       STRIP TO BIT 5. 
      SZA           WAS THIS A LISTEN ADDRESS?
      STA NOLSN      YES! SAVE ADDRESS. 
      LDA PATTN     GET ADDRESS.
      AND B100      STRIP TO BIT 6. 
      SZA           WAS THIS A TALK ADDRESS?
      STA NOTAK      YES! SAVE ADDRESS. 
      JMP TLOOP     GO DO ANOTHER PATTERN.
NXTFC JSB NOTWM     SET ERROR REPORTING MODE. 
      ISZ ERRCD     UPDATE ERROR CODE.
      LDA NOLSN     GO SEE IF A LISTEN
E154  JSB CKMYA       ADDRESS WAS FOUND.
      JSB DECEC     DECREMENT ERROR CODE. 
      LDA NOTAK     GO SEE IF A TALK
E155  JSB CKMYA       ADDRESS WAS FOUND.
      SKP 
* 
* CHECK THE UNLISTEN AND UNTALK LOGIC. ALSO, CHECK THE
*  REST OF THE TALK AND LISTEN LOGIC. 
* 
* CHECK IFC WILL CLEAR LISTEN 
* 
      JSB PRWMS     SET ERROR REPORTING MODE. 
      LDA B100      SET UP
      STA MASK       TEST MASK. 
      JSB STLAT     SET TALK AND LISTEN FF'S. 
      JSB IFCMD     SHOULD CLEAR TALK-LISTEN FF.
      JSB TIMOT     ALLOW TIME FOR IFC TO SETTLE. 
      JSB STAT      DID IFC CLEAR LISTEN? 
E156  DEF LSTNF      NO! REPORT ERROR.
* 
* CHECK IFC WILL CLEAR TALK.
* 
      LDA B40       CHANGE STATUS MASK
      STA MASK       TO LOOK AT TALK FF.
      JSB STAT      DID IFC CLEAR TALK? 
E157  DEF TALKF      NO! REPORT ERROR.
* 
* CHECK UNTALK WILL CLEAR TALK
* 
      JSB SDMOD     CLEAR ATN.
      LDA EXMYA     GET CALCULATED MYADDR.
      INA           CHANGE TO CREATE UNTALK.
      IOR B100      FORM TALK ADDR DATA.
      STA HOLDD     SAVE FOR LATER TEST.
      JSB STALK     SET TALK FF.
      JSB DATOT     OUTPUT TALK ADDR DATA.
      JSB SATN      CLOCK TALK FF LOW.
      STA CTLWD     PUT DATA IN CONTROL WORD. 
      JSB STAT      DID TALK CLEAR? 
E160  DEF TALKF      NO! UNTALK DIDN'T WORK.
* 
* CHECK FOR NO TALK ADDR W/O DAV
* 
      JSB SLSTN     SET LISTEN MODE.
      LDA EXMYA     GET TALK ADDRESS. 
      IOR B100      FORM MY TALK ADDRESS. 
      JSB DATOT     OUTPUT IT.
      JSB STAT      TALK SHOULD NOT SET.
E161  DEF TALKF     TALK SET W/O ATN OR DAV.
      SKP 
* 
* CHECK FOR NO UNTALK W/O DAV.
* 
      JSB STALK     SET TALK FF.
      LDA HOLDD     GET UNTALK ADDR.
      JSB DATOT     SHOULD NOT CLEAR TALK.
      LDB B40       GET EXPECTED STATUS.
      JSB STAT      DID TALK CLEAR? 
E162  DEF TALKF      YES! UNTALK W/O DAV. 
* 
* CHECK FOR NO LISTEN W/O DAV.
* 
      LDA B100      SET TEST MASK TO
      STA MASK        LISTEN MODE.
      LDA EXMYA     FORM
      IOR B40          LISTEN ADDRESS.
      JSB DATOT     OUTPUT LISTEN DATA. 
      CLB           LISTEN SHOULD NOT SET 
      JSB STAT       W/O DAV. DID IT? 
E163  DEF LSTNF       YES! REPORT ERROR.
* 
* CHECK LISTEN DOES NOT OCCUR W/O DAV.
* 
      JSB STLAT     SET TALK AND LISTEN FF'S. 
      LDA B177      OUTPUT
      JSB DATOT      UNLISTEN DATA. 
      LDB B100      EXPECTED STATUS.
      JSB STAT      DID LISTEN CLEAR W/O DAV? 
E164  DEF LSTNF      YES! REPORT ERROR. 
* 
* THIS SECTION TESTS ALL LOGIC INVOLVED IN
*  TRANSFERRING DATA TO AND FROM THE IB.
* 
      CLA           SAVE DATA 
      STA HOLDD       FOR TEST. 
DLOP1 JSB CTLSN     CLEAR TALK AND LISTEN.
      JSB SATN      READY DATA LINES TO IB. 
      ISZ HOLDD     UPDATE DATA.
      LDA HOLDD     GET DATA TEST PATTERN.
      CPA BIT9      END OF TEST?
      JMP PACKT     GO DO PACK-WORD TEST. 
      JSB DATOT     OUTPUT PATTERN TO IB. 
      JSB SINPD     STROBE DATA IN FROM IB. 
      LDA HOLDD     GET EXPECTED DATA.
      STA CTLWD     PUT DATA IN CONTROL WORD. 
      AND B377      MASK TO LOWER BYTE. 
      STA B         SAVE DATA.
      JSB CDATA     CHECK INPUT DATA. IS IT OK? 
E165  DEF BUSDF      NO! REPORT FAILURE.
      JSB DECEC     DECREMENT ERROR CODE. 
      JMP DLOP1     GO DO ANOTHER PATTERN 
      SKP 
* 
* NOW TEST THE ABILITY TO SEND AND RECEIVE
*  16-BIT WORDS VIA THE IB. 
* 
PACKT ISZ ERRCD     UPDATE ERROR CODE.
      CLA           SET DATA
      STA HOLDD      PATTERN. 
      JSB CONT      SET 
      OCT 4200       PACKEN.
      JSB LIAIB     SET INPUT-BYTE CNTR.
DLOP2 JSB CTLSN     CLEAR LISTEN AND TALK.
      JSB SATN      SET ATTENTION.
      ISZ HOLDD     UPDATE DATA PATTERN.
      LDA HOLDD     GET DATA PATTERN
      JSB DATOT     PUT UPPER BYTE ON IB. 
      JSB DATOT     PUT LOWER BYTE ON IB. 
      JSB SINPD     PACK IN 
      JSB SINPD      ACTUAL WORD OFF IB.
      STA CTLWD     PUT DATA IN CONTROL WORD. 
      LDB HOLDD     GET EXPECTED WORD.
      BLF,BLF       SHIFT DATA TO UPPER BYTE. 
      ADB HOLDD     MERGE IN LOWER BYTE.
      JSB CDATA     VERIFY DATA. IS IT OK?
E166  DEF BUSDF      NO! REPORT FAILURE.
      CPB MIN1      LAST PATTERN CHECKED? 
      JMP SK11       YES! EXIT. 
      JSB DECEC      NO! DECREMENT ERROR CODE.
      JMP DLOP2     TRY ANOTHER PATTERN.
* 
* CHECK PACKEN LOW CLEARS INPUT REGISTER
*  BITS 8-15
* 
SK11  JSB CG3MC     CLEAR PACKEN. 
      JSB LIAIB     GET INPUT DATA. 
      CPA B377      DID PACKEN CLEAR IR8-15?
      JMP EOTST      YES! EXIT. 
      LDB B377       NO! GET EXPECTED DATA. 
      JSB SENDM     REPORT ERROR. 
E167  DEF BUSDF     INPUT REG # 377B. 
      SKP 
* 
* CHECK THE ENABLE OF THE ASCIIMODE LOGIC 
* 
EOTST LDA BIT7      SET ERROR CODE
      STA ERRCD      TO 200 FOR HLT 106000. 
      LDA BIT8      SET THE STATUS
      STA MASK       TEST MASK. 
      JSB CONT      SET THE REN FF
      OCT 603        AND ASCIIMODE. 
      LDA THREE     LOAD THE OBR WITH 3(LOCAL). 
      CLB           EXPECTED STATUS.
E200  JSB ASCOT     CHECK ASCII COMMAND.
      JSB CONT      SET THE 
      OCT 3          REN FF.
      LDB BIT8      GET EXPECTED STATUS.
      JSB STAT      OBRL FF DISALLOW ASCIIMODE? 
E201  DEF ASCIM      NO! REPORT ERROR.
      LDA B43       OBR BIT 5 SHOULD NOT ALLOW LOCAL. 
E202  JSB ASCOT     CHECK ASCII COMMAND.
      LDA B103      OBR BIT 6 SHOULD NOT ALLOW LOCAL. 
E203  JSB ASCOT     CHECK ASCII COMMAND.
      JSB CG3MC     CLEAR ASCIIMODE.
      LDA THREE     ASCIIMODE LOW SHOULD NOT ALLOW LOCAL. 
E204  JSB ASCOT     CHECK ASCII COMMAND.
* 
* INSURE CRS CLEARS ASCIIMODE.
* 
      CLB           FORM EXPECTED STATUS. 
      JSB CONT      SET ASCIIMODE HIGH
      OCT 603        AND REN HIGH.
      CLC INTP,C       GENERATE CRS.
      JSB TIMOT     WAIT FOR IFC TO SETTLE. 
      LDA TWO       ASCIIMODE SHOULD BE CLEAR FROM CRS. 
E205  JSB ASCOT     CHECK ASCII COMMAND.
      SKP 
                                                                                                                                                        