* 
MPCK1 EQU * 
      OCT 107005    HALT ON PARITY ERROR
      JMP *-1 
* 
* CHECK IF MEMORY PROTECT IS PRESENT
* 
MEMPR NOP 
      LDA CPTO      CHECK COMPUTER
      AND BT5         TYPE & OPTIONS
      SZA               FOR 
      ISZ MEMPR           MEM PROTECT 
      JMP MEMPR,I 
* 
* TURN OFF MEMORY PROTECT LOGIC 
* 
MTNOF NOP 
      CLC MPPAR     TURN OFF MEM PROTECT
      LDA TSH       RESTORE 
      STA MPPAR       TRAP CELL HALT
      CLF INTP      CLEAR INTERRUPT SYS 
      JSB LTN       PRINT TEST-CASE NUMBER
E012  JSB ERMS,I    REPORT ERROR
      DEF ME012,I 
      DEF ME00
      JMP MTNOF,I   EXIT
* 
IIO   NOP 
      STB IOSC,I    STORE RTN ADDR IN TRAP CELL 
      JSB TOINT     TURN ON I-O 
      JMP IIO,I     EXIT
* 
TOINT NOP 
SC1   STC CH        SET CONTROL AND 
SC2   STF CH          FLAG ON I-O DEVICE
      JMP TOINT,I   EXIT
* 
* CHECK IF INTP OCCURRED
* 
CKINT NOP 
SC5   CLF CH        TURN OFF FLAG AND 
SC6   CLC CH          CONTROL ON I-O DEVICE 
      CLF INTP      TURN OFF INTP SYS 
      LDA INTFL     TEST IF INTP
      SZA             OCCURRED
      JMP CKINT,I   EXIT
      JSB LTN       OK - EXIT 
E013  JSB ERMS,I    REPORT ERR
      DEF ME013,I 
      DEF ME00
      JMP CKINT,I   EXIT
* 
* 
* 
* 
* THE FOLLOWING INSTRUCTIONS CBT, CMW, MBT, SFB ARE TESTED
* FOR INTERRUPTABILITY.  THE DIAGONSTIC PROGRAMME HOLDS A 
* PENDING INTERRUPT DURNING THE EXECUTION OF INSTRUCTION
* UNDER TEST.  DURNING THE EXECUTION OF THE INSTRUCTION 
* THE U-CODE WILL ALLOW FOR THE INTERRUPT TO BE HANDLED.
* THE FIRST PENDING INTERRUPT IS HANDLED BY ROUTINE RTX.
* ROUTINE RTX ONLY HANDLES THE FIRST PENDING INTERRUPT
* AND CHECKS THE ADDRESS OF THE INSTRUCTION ALLOWING THE
* INTERRUPT TO BE PROCESSED.  DEPENDING UPON THE INSTRUCTION
* AND THE DATA TEST PARAMETER USED THE U-CODE MAY MODIFY
* THE P-REGISTER OR TARGET ADDRESS MAKING IT IMPRACTICAL
* TO VERIFY THE ADDRESS WHEN THE SUBSEQUENT INTERRUPT OCCURS. 
* THEREFORE, ROUTINE RTXZ WILL HANDLE ALL INTERRUPTS AFTER
* ROUTINE RTX HAS HANDLED THE FIRST PENDING INTERRUPT.
* 
* CHECK ADDR OF INTP
* 
RTXX  NOP 
RTX   STA RTXX      MODIFY RTN ADDR 
      NOP           DEBUG 
      JSB TOIO      TURN OFF I-O
      CPA B         CHECK INTP LOCATION 
      JMP *+5       OK
      JSB LTN       REPORT ERR
E014  JSB ERMS,I
      DEF ME014,I 
      DEF ME00
      LDB JSBX      LOAD INTP TRAP CELL 
      STB IOSC,I      WITH ADDR OF RTXZ 
      JSB TOINT     TURN ON I-O DEVICE
      LDA AREG      RESTORE 
      LDB BREG        A & B REG 
      STF INTP      TURN ON INTP SYS
      JMP RTXX,I    EXIT
* 
RTXZ  NOP 
      CLF INTP      TURN OFF INTP SYST
      JSB SABEO     SAVE REGS 
      JSB TOIO      TURN OFF I-O DEVICE 
      NOP           DEBUG 
      LDA AREG      RESTORE 
      LDB BREG        A & B REG 
      NOP           DEBUG 
      JSB TOINT     TURN ON INTP DEVICE 
      STF INTP      TURN OF INTP SYST 
      JMP RTXZ,I    RETURN TO MACRO 
* 
TOIO  NOP 
      CLF INTP      TURN OFF INTP SYST
SC3   CLF CH        TURN OFF
SC4   CLC CH          I-O DEVICE
      JMP TOIO,I    EXIT
* 
XINST NOP 
      CLA 
      LDB INSTX 
      STB SAVB
XINT1 LDB SAVB,I
      CPB .M1 
      JMP XINST,I   EXIT
      STA SAVB,I    RESTORE NOP 
      ISZ SAVB      NEXT LOCATION 
      JMP XINT1 
* 
      HED DIAGNOSTIC PROGRAM CONTROL
      ORG 2000B 
STEX  CLC INTP,C    TURN I/O SYSTEM OFF 
      CLE 
      LDA DSN 
      LDB HDMX
      JSB O2AS,I
      JSB MSGC,I    OUT PUT IT
      DEF HDMS
      LDA CPTO      GET COMPUTER TYPE AND OPTIONS 
      AND BT5       MASK OFF MPT BIT
      SZA           IS MPT CONFIG. ?
      JMP *+3       YES, SKIP MESSAGE 
      JSB MSGC,I    PRINT MESSAGE 
      DEF MH001     MPT NOT PRESENT 
      CLA           CLEAR PASS
      STA EOLC        COUNT 
EXCZ  LDB SW9       CHECK FOR USER SELECTION REQ
      JSB SWRT,I
      JMP USR       IT'S USERS CHOICE 
NUSR  LDA STDA      GET STANDARD TEST RUN 
      LDB STDB      * 
      JMP EXC 
* 
USR   LIA SW
      AND MBT9
      OTA SW
      LDA SINA      RETRIEVE PREVIOUS RUN 
      LDB SINB
      HLT 75B       WAIT FOR USER INPUT 
EXC   STA UINA      SAVE
      STB UINB        USER
      STA SINA          INPUT 
      STB SINB            PROGRAM 
      CCA           SET TEST NUMBER 
      STA TSTN      =-1 
      STA CFTT
      CLA 
      STA TSTA      CLEAR TEST RUN FLAG 
      SPC 2 
EXCL  LDA UINA      RESTORE A REG.
      LDB UINB      RESTORE B REG.
      ERA,RAL       ROTATE
      ERB             FIRST 
      ERA               TEST BIT
      STA UINA      SAVE POSITIONS
      STB UINB
      ISZ TSTN      MOVE TEST UP ONE
      NOP 
XCL1  LDA TSTN
      ADA TSTP      GET IT'S
      LDA A,I         ADDRESS 
      CPA .M1       IS IT END OF LIST 
      JMP EOL       YES 
      LDB UINB
      SSB,RSS       SHOULD IT BE RUN? 
      JMP EXCL      NO
      STA TSTA      YES - SAVE TEST ADDRESS 
      JSB XINST     RESTORE NOP IN 3'RD WORD OF MACRO 
      JSB ITCH      INITIALIZE TRAP CELL HALTS
      CLA           CLEAR 
      STA TN2         TEST-CASE NUM 
      JSB TSTA,I    GO DO TEST
.EXRT LDA TSTN      DISPLAY TEST NUMBER IF HALTED 
      LDB SW15      CHECK FOR HALT AT END OF TEST 
      JSB SWRT,I
      HLT 76B       YES WAIT FOR OPERATOR 
      LDB SW9       CHECK FOR ABORT 
      JSB SWRT,I
      JMP USR       YES 
      LDB SW13      CHECK FOR LOOP ON ROUTINE 
      JSB SWRT,I
      JMP XCL1      YES - LOOP
      JMP EXCL      CONTINUE
* 
EOL   LDA TSTA      CHECK IF ANY TESTS WERE RUN 
      SZA,RSS       ? 
      JMP NUSR      NO  SO PICK UP STANDARD RUN 
      LDA EOLC      UP DATE PASS COUNT
      INA 
      STA EOLC
      CCE 
      LDB PSCA      GET PASS COUNT
      ADB .+2         ADDRESS 
      JSB O2AS,I    CONVERT IT
      JSB MSGC,I    CALL PRINT ROUTINE
PSCA  DEF PSC 
      LDB SW12      CHECK FOR LOOP ON DIAG. 
      JSB SWRT,I
      JMP *+3       YES 
      LDA EOLC
      HLT 77B       NO WAIT AND DISPLAY PASS COUNT
      LDA SINA      RESTORE ORIGINAL
      LDB SINB        PROGRAM 
      JMP EXCZ      DO IT ALL AGAIN 
      SKP 
*         MESSAGE OUTPUT WITH OUT HALT
* 
.MSGC NOP           ENTRY 
      JSB MSG       OUTPUT MESSAGE
      OCT 2000      SWITCH 10 CHECK 
      JMP .MSGC,I   RETURN TO CALLER
* 
*         MESSAGE OUTPUT WITH HALT
* 
.MSGH NOP           ENTRY 
      JSB MSG       OUTPUT MESSAGE
      OCT 2000      SWITCH 10 CHECK 
      LDA HLT       GET HALT CODE 
      STA *+2       PUT IT IN PLACE 
      LDA SAVA      RESTORE A REGISTER
      NOP           HALT FOR DISPLAY
      JMP .MSGH,I   RETURN TO CALLER
* 
*         ERROR MESSAGE WITH HALT 
* 
.ERMS NOP           ENTRY 
      JSB MSG       OUTPUT MESSAGE
      OCT 4000      SWITCH 11 CHECK 
      CLA 
      LDB SW14      CHECK SWR BIT 14 TO SUPPRESS
      JSB SWRT,I    HALT
      STA *+3       PUT  HALT IN PLACE
      LDA SAVA      RESTORE A & B 
      LDB SAVB
HLT   NOP           WAIT FOR OPERATOR 
      JMP .ERMS,I   RETURN TO CALLER
      SKP 
*         OUTPUT MESSAGE
* 
MSG   NOP 
      STA SAVA      SAVE A AND B REGISTERS
      STB SAVB
      LDB MSG,I     GET SWITCH REGISTER BIT 
      LDA MSG 
      ADA .M2       DECREMENT RETURN ADDRESS
      STA MSG 
      JSB SWRT,I    CHECK TO SUPPRESS MESSAGE 
      JMP MSG0      YES 
      LDA MSG,I     CHECK IF ERROR
      LDA A,I 
      ELA,CLE,ERA 
      LDA A,I       IF SO 
      ALF,ALF 
      AND .177
      CPA A.E 
      JSB CFTN      CHECK TO OUTPUT TEST NUMBER 
      LDA MSG,I     NO RETRIEVE FORMAT
      LDB A,I         ADDRESS 
      ELB,CLE,ERB 
      CLA,CLE 
      JSB FMTR,I
MSG0  LDA MSG,I     CONVERT HALT CODE 
      LDB A,I         FROM ASCII STRING 
      ELB,CLE,ERB 
      CCA,CCE 
      JSB AS2N,I
      STA N2AO      SAVE RESULT 
      AND .300      DECODE
      LDB H2          HALT CODE 
      CPA .100
      LDB H6
      CPA .200
      LDB H3
      CPA .300
      LDB H7
      LDA N2AO      GET HALT NUMBER 
      AND .77 
      IOR B 
      STA HLT       SAVE IT 
MSG1  LDA MSG,I 
      LDA A,I 
      SSA,RSS 
      JMP MSG2
      ISZ MSG,I 
      LDB MSG 
      ADB .+2 
      LDB B,I 
      JSB SWRT,I
      JMP MSG1
      LDA MSG,I 
      LDB A,I 
      ELB,CLE,ERB 
      CLA,CLE 
      JSB FMTR,I
      JMP MSG1
MSG2  ISZ MSG,I     ADJUST RETURN POINTERS
      ISZ MSG 
      ISZ MSG 
      ISZ MSG 
      LDA SAVA      RESTORE A AND B REGISTERS 
      LDB SAVB
      JMP MSG,I 
      SKP 
CFTN  NOP 
      LDA TSTN      GET TEST NUMBER 
      CPA CFTT      IS IT THE SAME ONE? 
      JMP CFTN,I    YES SKIP OUTPUT 
      STA CFTT      NO - THEN UPDATE IT 
      CLE 
      LDB PCB 
      JSB I2AS,I
      LDB PCBX
      STB .TSTN 
      CLA 
      JSB SLOP,I
      CLA,CLE 
      LDB TSTF
      JSB FMTR,I
      JMP CFTN,I
      SPC 2 
* 
N2AO  NOP 
IOAD  NOP 
      STA IOAD      SAVE NUMBER 
      AND .+7       CONVERT FIRST 
      IOR .60         NUMBER
      STA B         SAVE IT 
      LDA IOAD      GET 
      RAR,RAR         SECOND
      RAR                 NUMBER
      AND .+7       CONVERT 
      IOR .60         IT
      ALF,ALF       MOVE TO UPPER HALF
      IOR B         ADD LOWER 
      JMP N2AO,I      AND RETURN
* 
*         SWITCH REGISTER CHECK 
* 
.SWRT NOP 
      STA N2AO      SAVE A REGISTER 
      LIA SW        GET SWITCH REG. 
      AND B         MASK OUT BIT
      SZA,RSS       IS IT UP? 
      ISZ .SWRT     NO
      LDA N2AO      RESTORE A REGISTER
      LIB SW        LET B = SWITCH REGISTER 
      JMP .SWRT,I   RETURN TO CALLER
* 
*         INITIALIZE TRAP CELL HALTS
* 
ITCH  NOP 
      LDA TSH       GET STARTING TRAP CELL HALT 
      LDB .+2       GET FIRST TRAP CELL LOCATION
TSHL  STA B,I       PUT IT IN PLACE 
      CPB .77       AM I FINISHED 
      JMP ITCH,I    YES 
      INB             NEXT ADDRESS
      JMP TSHL
* 
* 
*         PUT JSB INSTRUCTION IN TRAP CELL
* 
TCJI  NOP 
      LDB JSBI      GET INSTRUCTION 
      STB IOSC,I    PUT IT IN TRAP CELL 
      LDA TCJI,I    GET LOCATION
      STA 3B        SAVE IT FOR JSB INSTRUCTION 
      ISZ TCJI      ADJUST RETURN 
      JMP TCJI,I    RETURN TO CALLER
* 
JSBI  JSB 3B,I      JSB INSTRUCTION 
* 
* 
*         INITIALIZE SELECT CODE I/O INSTRUCTIONS 
* 
ISC   NOP 
      STA IOSC      SAVE SELECT CODE
IOL   LDA B,I       GET ADDRESS OF LOCATION 
      CPA IOM       IS IT THE TERMINATOR
      JMP ISC,I     YES RETURN TO CALLER
      STA SAVA      SAVE ADDR 
      LDA A,I       GET INSTR 
      AND IOM       MASK OFF OLD SELECT CODE
      IOR IOSC      ADD IN NEW SELECT CODE
      STA SAVA,I       RESTORE  IT
      INB           MOVE TO NEXT ADDRESS
      JMP IOL       DO IT 
* 
* 
*         CONFIGURATION SECTION 
* 
.CONF JSB CONF      CONFIG I-O CHANNEL
      JMP STEX      RETURN TO DIAG CONTROL
CONF  NOP 
      CLC INTP,C    TURN I/O SYSTEM OFF 
CON1  LIA SW        GET SELECT CODE AND OPTIONS 
      STA USSC      SAVE THEM 
      AND .77       ELIMINATE OPTIONS 
      LDB A 
      CMB,INB       CHECK THAT SC > 7 
      ADB .+7 
      SSB           ? 
      JMP *+3       OK GO ON
      HLT 73B       NO
      JMP CON1      TRY AGAIN 
      LDB IOID      INITIALIZE TEST I/O 
      JSB ISC         INSTRUCTIONS
      CLA           CLEAR 
      OTA SW          SWITCH REGISTER 
      HLT 74B       ALLOW OPERATOR TO CHANGE SR OPTIONS 
      JMP CONF,I    GO TO EXEC CONTROL SECTION
      HED TEST THE LOAD BYTE INSTRUCTION  LBT 
TST00 EQU * 
LBTT  NOP 
      JSB MOVE      PUT "LBT" 
      DEF MLBT        IN MESSAGE STRING 
      LDA A.LBT     ADDR OF LBT TEST TABLE
      STA TP        STORE ADDR IN TABLE POINTER 
LBT1  JSB NXTP      NEXT TEST PARAM FROM TEST TABLE 
      JMP LBT2      EXECUTE TEST
      JMP LBTT,I    EXIT TEST 
LBT2  JSB LBA       SET UP ADDR 
      CCA           PRESET A-REG
      NOP           DEBUG 
      LDB WRD1,I    LOAD B-REG WITH ADDR
      NOP           DEBUG 
      LBT           EXECUTE LOAD BYTE INSTR 
      NOP           DEBUG 
      JSB SABEO     SAVE A,B,E,O-REGS 
      JSB CKLB      CHECK RESULT
      JMP LBT1      NEXT TEST CASE
* 
* 
* LBT TEST TABLE
* 
LBTTB EQU * 
* 
*     MEANING OF THE TABLE ENTRIES: 
* 
*     FIRST:    BYTE ADDR OF VALUE TO BE LOADED 
*     SECOND:   BYTE ADDR OF RESULT STORED
* 
      DEC 0,0 
      DEC 1,1 
      DEC 2,2 
      DEC 3,3 
      DEC 4,4 
      DEC 5,5 
      DEC 6,6 
      DEC 7,7 
      DEC 8,8 
* 
* TERMINATOR
* 
      DEC -1
      HED TEST THE STORE BYTE INSTRUCTION  SBT
TST01 EQU * 
SBTT  NOP 
      JSB MOVE      PUT "SBT" 
      DEF MSBT        IN MESSAGE STRING 
      LDA A.SBT     ADDR OF SBT TEST TABLE
      STA TP        STORE ADDR IN TABLE POINTER 
      CLA           CLEAR 
      JSB STDS        DATA STRING 
SBT1  JSB NXTP      NEXT TEST PARAM FROM TEST TABLE 
      JMP SBT2      EXECUTE TEST
      JMP SBTT,I    EXIT TEST 
      JMP SBT4      EXECUTE MPT TEST
SBT2  JSB LBA       GET BYTE ADDR 
      JSB SBA       GET DATA ADDR 
      LDA WRD2,I    GET DATA
      LDB WRD1,I    GET BYTE ADDR FOR DESTINATION 
      NOP           DEBUG 
      SBT           EXECUTE STORE BYTE INSTR
      NOP           DEBUG 
SBT3  JSB SABEO     SAVE A,B,E,O-REGS 
      JSB CKSB      CHECK RESULT
      JMP SBT1      NEXT TEST CASE
* 
*  TEST MEMORY PROTECT
* 
SBT4  JSB MEMPR     CHECK IF MPT IS PRESENT 
      JMP SBT4B     MPT NOT AVAILABLE 
      CLA           CLEAR 
      JSB STDS        DATA STRING 
      JSB LBA       GET BYTE ADDR 
      JSB SBA       GET DATA ADDR 
      LDA SBTMP     INTP ADDR 
      JSB MEMTN     TURN ON MPT LOGEC 
      LDA WRD2,I    GET DATA
      LDB WRD1,I    GET BYTE ADDR FOR DESTINATION 
      NOP           DEBUG 
      SBT           EXECUTE STORE BYTE INSTR
      NOP           DEBUG 
      JSB MTNOF     MPT FAILED, REPORT ERR
      JMP SBT4N     NEXT TEST-CASE
* 
SBT4B ISZ TP        ADJUST TABLE POINTER
      ISZ TP          FOR 
SBT4N ISZ TP            NEXT PARAM
      JMP SBT1
* 
* SBT TEST TABLE
* 
SBTTB EQU * 
* 
*     MEANING OF THE TABLE ENTRIES: 
* 
*     FIRST:    BYTE ADDR OF VALUE TO BE STORED 
*     SECOND:   BYTE ADDR WHERE TO BE STORED
*     THIRD:    CHECK RESULT
* 
      DEC 10,0,5
      DEC 11,0,6
      DEC 10,4,8
      DEC 11,4,7
      DEC 10,0,9
      DEC 11,8,5
      DEC 10,8,4
* 
* MEMORY PROTECT
* 
      DEC -2,10,0,4 
* 
* TERMINATOR
* 
      DEC -1
      HED TEST THE COMPARE BYTE INSTRUCTION  CBT
TST02 EQU * 
CBTT  NOP 
      JSB MOVE      PUT "CBT" 
      DEF MCBT        IN MESSAGE STRING 
      LDA A.CBT     ADDR OF CBT TEST TABLE
      STA TP        STORE ADDR IN TABLE POINTER 
CBT1  JSB NXTP      NEXT TEST PARAM FROM TEST TABLE 
      JMP CBT2      EXECUTE TEST
      JMP CBTT,I    EXIT TEST 
      JMP CBT4      EXECUTE INTERRUPT TEST
CBT2  JSB DSABR     SET UP ADDR FOR SOURCE & DESTINATION
      JSB WCX       GET WORD COUNT
      LDA WRD1      LOAD A & B-REG
      LDB WRD2        WITH ADDR 
      NOP           DEBUG 
CBTA  CBT WCP       EXECUTE COMPARE BYTE INSTR
      JSB CPSK0     RECORD
      JSB CPSK1       SKIP
      JSB CPSK2         RESULT
CBT3  JSB CKSK      CHECK SKIP RESULT 
      JMP CBT1      NEXT TEST CAST
* 
* TEST CBT INSTR WITH INTERRUPT 
* 
CBT4  CLF INTP      TURN OFF INTP 
      LDB JSB2      GET INTP ADDR 
      JSB IIO       TURN ON I-O 
      JSB DSABR     SET UP ADDR FOR SOURCE & DESTINATION
      JSB WCX       GET WORD COUNT
      LDA WRD1      LOAD A & B-REGS 
      LDB WRD2        WITH ADDR 
      NOP           DEBUG 
      STF INTP      TURN ON INTP SYST 
II2   CBT WCP       EXECUTE CBT INSTR 
      JSB CISK0,I   RECORD
      JSB CISK1,I     SKIP
      JSB CISK2,I       RESULT
      CLF INTP      TURN OFF INTP SYST
      JSB TOIO      TURN OFF I-O
      JMP CBT3      CHECK RESULT
* 
RT2   NOP 
      CLF INTP      TURN OFF INTP SYST
      JSB SABEO     SAVE REGS 
      NOP           DEBUG 
      LDA RT2       ADDR OF INTERRUPTING INSTR
      LDB PTR2      EXP ADDR
      NOP           DEBUG 
      JMP RTX       INTP ROUTINE
* 
* 
* CBT TEST TABLE
* 
CBTTB EQU * 
* 
*     MEANING OF THE TABLE ENTRIES: 
* 
*     FIRST:    BYTE ADDR OF STRING 1 
*     SECOND:   BYTE ADDR OF STRING 2 
*     THIRD:    WORD COUNT VALUE
*     FOURTH:   SKIP RESULT 
* 
      DEC 6,7,8,0 
      DEC 8,9,8,1 
      DEC 8,10,8,2
* 
* INTERRUPT PARAMETER 
* 
      DEC -2,6,7,8,0
      DEC -2,8,9,8,1
      DEC -2,8,10,8,2 
* 
* TERMINATOR
* 
      DEC -1
      HED TEST THE SCAN BYTE INSTRUCTION  SFB 
TST03 EQU * 
SFBT  NOP 
      JSB MOVE      PUT "SFB" 
      DEF MSFB        IN MESSAGE STRING 
      LDA A.SFB     ADDR OF SFB TEST TABLE
      STA TP        STORE ADDR IN TABLE POINTER 
SFB1  JSB NXTP      NEXT TEST PARAM FROM TEST TABLE 
      JMP SFB2      EXECUTE TEST
      JMP SFBT,I    EXIT TEST 
      JMP SFB4      EXECUTE INTP TEST 
SFB2  JSB DSABR     SET UP ADDR FOR SOURCE & DESTINATION
      LDA WRD1,I    TEST & TERMINATION WORD 
      LDB WRD2      ADDR OF STRING
      NOP           DEBUG 
      SFB           EXECUTE SCAN BYTE INSTR 
      JSB CPSK0     RECORD
      JSB CPSK1       SKIP
      JSB CPSK2         RESULT
SFB3  NOP           DEBUG 
      JSB CKSK      CHECK SKIP RESULT 
      JSB CKSF      CHECK FOR PROPER TERMENATION
      NOP           DEBUG 
      JMP SFB1      NEXT TEST CASE
* 
* TEST SFB WITH INTERRUPT 
* 
SFB4  CLF INTP      TURN OFF INTP SYST
      LDB JSB3      GET INTP ADDR 
      JSB IIO       TURN ON I-O DEVICE
      JSB DSABR     SET UP ADDR 
      LDA WRD1,I    TEST AND DESTINATION WORD 
      LDB WRD2      STRING ADDR 
      NOP           DEBUG 
      STF INTP      TURN OF INTP SYST 
II3   SFB           EXECUTE SFB INSTR 
      JSB CISK0,I   RECORD
      JSB CISK1,I     SKIP
      JSB CISK2,I       RESULT
      JSB TOIO      TURN OFF I-O DEVICE 
      JMP SFB3      NEXT TEST-CASE
* 
RT3   NOP 
      CLF INTP      TURN OFF INTP SYST
      JSB SABEO     SAVE REGS 
      LDA RT3       ADDR OF INTP INSTR
      LDB PTR3      EXP ADDR
      NOP           DEBUG 
      JMP RTX       JUMP TO INTP ROUTINE
* 
* 
* SFB TEST TABLE
* 
SFBTB EQU * 
* 
*     MEANING OF THE TABLE ENTRIES: 
* 
*     FIRST:    ADDR OF TERMINATION BYTE
*     SECOND:   ADDR OF TEST BYTE 
*     THIRD:    SKIP RESULT 
*     FOURTH:   DATA RESULT 
* 
      DEC 13,11,0,15
      DEC 14,12,1,16
* 
* INTERRUPT PARAMETER 
* 
      DEC -2,13,11,0,15 
      DEC -2,14,12,1,16 
* 
* TERMINATOR
* 
      DEC -1
                                                                                                                                                                                                                                                    