      JSB ERMS,I    REPORT SYB
      DEF E040       FAILURE
      JSB RGRS2 
      JMP TCPHR 
      SPC 2 
USAER NOP 
      JSB RGSVE 
      LDX REGNR 
      LDY USAER 
      JSB ERMS,I    REPORT USA
      DEF E041       FAILURE
      JSB RGRS2 
      JMP TCPHR 
      SPC 2 
USBER NOP 
      JSB RGSVE 
      LDX REGNR 
      LDY USBER 
      JSB ERMS,I    REPORT USB
      DEF E042       FAILURE
      JSB RGRS2 
      JMP TCPHR 
      SPC 2 
PAAER NOP 
      JSB RGSVE 
      LDX REGNR 
      LDY PAAER 
      JSB ERMS,I    REPORT PAA
      DEF E043       FAILURE
      JSB RGRS2 
      JMP TCPHR     CONTINUE
      SKP 
PABER NOP 
      JSB RGSVE 
      LDX REGNR 
      LDY PABER 
      JSB ERMS,I    REPORT PAB
      DEF E044       FAILURE
      JSB RGRS1 
      JMP TCPHR     CONTINUE
      SPC 2 
PBAER NOP 
      JSB RGSVE 
      LDX REGNR 
      LDY PBAER 
      JSB ERMS,I    REPORT PBA
      DEF E045       FAILURE
      JSB RGRS2 
      JMP TCPHR     CONTINUE
      SPC 2 
PBBER NOP 
      JSB RGSVE 
      LDX REGNR 
      LDY PBBER 
      JSB ERMS,I    REPORT PBB
      DEF E046       FAILURE
      JSB RGRS2 
      JMP TCPHR     CONTINUE
      SPC 2 
      SPC 2 
INFER NOP 
      JSB RGSVE 
      LDX REGNR 
      LDY INFER 
      ADY NEG01 
      JSB ERMS,I    REPORT
      DEF E047       INTERFERENCE ERROR 
      JSB RGRS2 
      JMP INFER,I 
      HED MAP LOAD - REGISTER COMPLETION TEST 
* 
*     TST22 
* 
*     TEST SS VERIFIES PROPER OPERATION OF THE HARDWARE AND FIRMWARE
*     REQUIRED TO INCREMENT THE A,B AND X REGISTERS DURING THE
*     EXECUTION OF THE M.E.M. MAP LOADING INSTRUCTIONS. 
* 
*     TEST SS IS MADE UP OF SIX SUBTESTS, EACH EXECUTING ONE MAP
*     LOADING INSTRUCTION, AND THEN VERIFYING THE CORRECT VALUE OF
*     A,B AND X REGISTERS.  THE SIX INSTRUCTIONS USED FOR THIS
*     TEST ARE: 
* 
*              XMM  XMS  SYA  USA  PAA  PBA 
* 
*     IF AN ERROR IS DETECTED DURING THE EXECUTION OF THIS TEST, AN 
*     ERROR MESSAGE WILL BE OUTPUT ON THE CONSOLE, AND THE PROGRAM
*     WILL HALT THE COMPUTER.   AT THIS TIME THE OPERATOR WILL BE 
*     ABLE TO DETERMINE THE CAUSE OF THE ERROR BY CHECKING THE
*     FOLLOWING REGISTERS:
* 
*              T REGISTER = ERROR CODE
*            * A REGISTER = COUNT AT COMPLETION 
**           * B REGISTER = COUNT AT COMPLETION 
*            * X REGISTER = COUNT AT COMPLETION 
*              Y REGISTER = ADDRESS OF ERROR
* 
*   * NOTE: 
*          IF THE ERROR IS A OR B REGISTER, THE FAILING REGISTER
*          WILL CONTAIN THE ACTUAL VALUE, AND THE ALTERNATE REGISTER
*          WILL CONTAIN THE EXPECTED VALUE.  IF THE FAILURE PERTAINS
*          TO THE X REGISTER, THE A REGISTER WILL CONTAIN THE 
*          EXPECTED VALUE 
      SKP 
TST22 EQU * 
      SPC 1 
      NOP 
      CLA           SET DIFFERENT 
      LDB OCT40      VALUES FOR THE 
      LDX OCT40      A,B AND X REGISTERS
      XMM           EXECUTE THE INSTRUCTION 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
SA1   CPA OCT40     IS A THE CORRECT VALUE? 
      JMP SA2        YES, OVER THE ERROR
      JSB RGSVE      NO, SAVE THE REGISTERS 
      LDB OCT40      PUT EXPECTED VALUE IN B
      LDY SD1        GET THE FAIL FLAG
      JSB ERMS,I     AND REPORT THAT THE
      DEF E304       A REGISTER HAS THE WRONG VALUE 
      JSB RGRST     RESTORE THE REGISTERS 
      SPC 1 
SA2   CPB OC100     NOW IS B THE CORRECT VALUE? 
      JMP SA3        YES, OVER THE ERROR
      JSB RGSVE      SAVE THE REGISTERS 
      LDA OC100      GET THE EXPECTED 
      LDY SD2        AND THE FAIL FLAG, 
      JSB ERMS,I     THEN REPORT
      DEF E305       THE ERROR
      JSB RGRST     RESTORE THE REGISTERS 
      SPC 1 
SA3   CXA           A_X 
      SZA,RSS       IS X = 0? 
      JMP SA4       YES, OVER THE ERROR 
      CLA           NO, CLEAR A FOR DISPALY 
      LDY SD3       Y=FAIL FLAG 
      JSB ERMS,I    AND REPORT
      DEF E306       X NOT = TO ZERO
      SPC 2 
SA4   CLA           SET UP
      LDB OCT01      FOR TESTING
      LDX OC177      REGISTERS
      XMS            AFTER AN XMM 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 2 
SA5   CPA OC177     IS A CORRECT? 
      JMP SA6        YES, OVER THE ERROR
      JSB RGSVE      NO, SAVE THE REGISTERS 
      LDY SD5        GET THE FAIL FLAG
      LDB OC177      THE EXPECTED VALUE 
      JSB ERMS,I     AND
      DEF E307       REPORT THE ERROR 
      JSB RGRST     NOW RESTORE AND CONTINUE
      SKP 
SA6   CPB OC200     IS B CORRECT? 
      JMP SA7        YES, OVER THE ERROR
      LDA OC200      NO, A=EXPECTED VALUE 
      LDY SD6        Y=FAIL FLAG
      JSB ERMS,I     REPORT B=INCORRECT 
      DEF E310       VALUE
      SPC 1 
SA7   CXA           A=X 
      SZA,RSS       X=0?
      JMP SA8        YES, OVER
      CLA            NO.
      LDY SD7 
      JSB ERMS,I     REPORT 
      DEF E311
      SPC 1 
SA8   LDA LTSYS     NOW EXECUTE 
      SYA            SYA
      CPA LTUSR     WAS A INCREMENTED?
      JMP SA9        YES, OVER THE ERROR
      LDB LTUSR     NO, B=EXPECTED
      LDY SD8           Y=FAIL FLAG 
      JSB ERMS,I    REPORT
      DEF E312      ERROR 
      LDA LTUSR     GET NEXT VALUE
      SPC 1 
SA9   USA           EXECUTE USA 
      CPA LTPTA      A CORRECTLY INCREMENTED? 
      JMP SA10       YES, OVER THE ERROR
      LDB LTPTA      NO, B=EXPECTED VALUE 
      LDY SD9            Y=FAIL FLAG
      JSB ERMS,I    REPORT
      DEF E313       FAILURE
      LDA LTPTA     GET NEXT VALUE
      SPC 1 
SA10  PAA 
      CPA LTPTB     A= CORRECT VALUE
      JMP SA11       YES, OVER THE ERROR
      LDB LTPTB      NO, B=EXPECTED VALUE 
      LDY SA10           Y=FAIL FLAG
      JSB ERMS,I     REPORT 
      DEF E314       FAILURE
      LDA LTPTB     GET NEXT VALUE
      SPC 1 
SA11  PBA 
      CPA LTPTC     A INCREMENTED CORRECTLY 
      JMP SA12       YES, OVER ERROR
      LDB LTPTC      NO, B=EXPECTED 
      LDY SD11           Y=FAIL FLAG
      JSB ERMS,I     REPORT 
      DEF E315       FAILURE
      SPC 2 
SA12  NOP            AND
      JMP TST22,I    EXIT TEST
      SKP 
LTPTC DEF LDTBL+128 
SD1   DEF SA1 
SD2   DEF SA2 
SD3   DEF SA3+1 
SD5   DEF SA5 
SD6   DEF SA6 
SD7   DEF SA7+1 
SD8   DEF SA8+2 
SD9   DEF SA9+1 
SD10  DEF SA10+1
SD11  DEF SA11+1
OC200 OCT 201 
      SPC 1 
      HED PROTECTED MODE PRESET TEST
* 
*     TST10 
* 
*     TEST 10 VERIFIES PROPER OPERATION OF THE HARDWARE AND FIRMWARE
*     REQUIRED TO SET AND CLEAR STATUS REGISTER BIT 11 (PROTECTED 
*     MODE) AND THE BASE PAGE FENCE.
* 
*     TEST 10 STARTS BY INVOKING PROTECTED MODE, CHECKING THE MEM 
*     STATUS REGISTER FOR THE CORRECT STATE OF BIT 11, THEN 
*     PROTECTED MODE IS FORCED OFF PROGRAMMATICALLY, AND THE STATE
*     OF STATUS REGISTER BIT 11 IS AGAIN TESTED.
* 
*     THE MESSAGE "H115 PRESS HALT, PRESET, RUN IN LESS THAN TEN
*     SECONDS" IS OUTPUT ON THE CONSOLE, PROTECTED MODE IS AGAIN
*     INVOKED, AND THE PROGRAM STARTS A TEN SECOND TIMER. 
* 
*     IF THERE IS NO CONSOLE AVAILIABLE, THE PROGRAM WILL INFORM
*     THE OPERATOR THAT THE PROTECTED MODE PRESET TEST IS NEXT TO BE
*     EXECUTED  BY HALTING WITH 107026 DISPLAYED IN THE MEMORY DATA 
*     REGISTER.  THE OPERATOR MUST THEN PRESS RUN TO START THE
*     TEST. 
* 
*     THE OPERATOR MUST THEN PRESS HALT, PRESET  AND RUN, THEN
*     THE STATE OF STATUS REGISTER BIT 11 IS TESTED TO VERIFY THAT
*     PRESET TURNS PROTECTED MODE OFF, AND THE BASE PAGE FENCE IS 
*     TESTED TO INSURE THAT PRESET ALSO ZEROS THE BASE PAGE FENCE 
* 
*     IF AN ERROR IS DETECTED IN TST10, THE MESSAGE "E114 PM NOT
*     SET BY STC 05" OR "E116 PM OR MEM FENCE NOT CLEARED BY
*     PRESET"  WILL BE OUTPUT, AND THE PROGRAM HALTS THE COMPUTER.
* 
*     IN THE EVENT THE PROTECTED MODE IS UNABLE TO BE TURNED
*     OFF, IT IS NOT POSSIBLE TO EITHER HALT THE COMPUTER, OR 
*     OUTPUT AN ERROR MESSAGE ON THE CONSOLE, SO THE FOLLOWING
*     WILL DONE TO INFORM THE OPERATOR THAT THE PROGRAM WAS 
*     UNABLE TO OFF THE PROTECTED MODE, OR PRESET DID NOT 
*     DISABLE PROTECTED MODE: 
*             THE EXTEND REGISTER WILL FLASH ON AND OFF 
*             AT APPROXIMATELY ONE-HALF SECOND INTERVALS. 
* 
*     AT THIS TIME, THE OPERATOR MUST PRESS HALT AND
*     CORRECT THE PROBLEM, AS THE EXTEND REGISTER INDICATION
*     WILL CONTINUE UNTIL HALT IS PRESSED.
* 
*     WHEN TEST 10 IS COMPLETE, THE MESSAGE "H117 PRESET
*     TEST COMPLETE" WILL BE OUTPUT ON THE CONSOLE, AND 
*     CONTROL IS PASSED BACK TO THE EXECUTIVE.
      SKP 
TST10 EQU * 
      SPC 1 
      NOP 
      JSB KFNCE     LOAD THE MEM + MPT FENCES 
      JSB JLOAD      AND THE MEM MAPS AND THE 
      JSB ZORCH      INTERRUPT TRAP CELLS 
      SPC 1 
      JSB PMON      SET PROTECTED MODE
      RSA           GET THE STATUS REGISTER 
      AND PMSTS     ISOLATE THE PM BIT (11) 
      SZA            = 1? 
      JMP ICNT1     YES, OVER THE ERROR 
      JSB OFFPM     NO, OFF PM, INTP AND SYSTEM 
      JSB ERMS,I    REPORT NO PM OR NO
      DEF E114      STATUS REGISTER BIT 11
      SPC 1 
ICNT1 LDA IIR1.     SET UP AN MEM VIOLATION 
      STA M5LNK      RETURN ADDRESS LINK
      STA MEMSC     CAUSE AN MPT/MEM FENCE VIOLATION
      SPC 1 
IIRA1 NOP           VIOLATION RETURN ADDRESS
      RSA           GET STATUS REGISTER CONTENTS
      AND PMSTS     ISOLATE THE PM BIT (11) 
      SZA            = 0? 
      JMP IERR1     NO, GO FLASH THE E-REGISTER 
      JSB TRNOF     YES, TURN OFF INTP AND SYSTEM 
      LDB BIT.8     CHECK THE SWITCH REGISTER 
      JSB SWRT,I    TO SEE IF 
      JMP IENDX     SUPPRESSION DESIRED, EXIT 
      SPC 1 
      LDA 112B      CONSOLE 
      SZA,RSS         PRESENT?
      JSB NOTTY         NO, GO DO THE WARNING HALT
      SPC 1 
      JSB MSGC,I    TELL OPERATOR 
      DEF H115      HLT-PRESET-RUN
      SPC 1 
      CCA           LOAD THE MEM FENCE
      LFA           WITH ALL ONES 
      JSB PMON      PRIVELEGED MODE - ON
      LDA ITMRC     GET TIMING CONSTANT 
      JSB TMRR,I    START A 10 SECOND TIMER 
      NOP 
      RSA           GET THE STATUS
      STA ITMP1     SAVE IT 
      AND PMSTS     MAKE SURE PM IS OFF 
      SZA           OFF???
      JMP IERR1     NO, ERROR DETECTED
      JSB TRNOF     YES, OFF THE INTERRUPT SYS
      NOP 
      SKP 
      LDA ITMP1     GET THE STATUS BACK 
      SZA,RSS       DID PRESET CLEAR IT?
      JMP *+3       YES, OVER THE ERROR 
      JSB ERMS,I    NO, REPORT THE
      DEF E116       ERROR
      JSB MSGC,I     TELL OP TEST IS COMPLETE 
      DEF H117
IENDX NOP 
      JMP TST10,I   EXIT
      SKP 
IERR1 CME           BLINK EXTEND REGISTER 
      ISZ SVPD1     WAIT
      JMP *-1           LOOP
      JMP *-3       HANG UP IN THE LOOP 
      SPC 1 
ITMRC DEC 10000 
IIR1. DEF IIRA1 
ITMP1 OCT 0 
PMSTS OCT 4000
BIT.8 OCT 10400 
      SPC 2 
E114  ASC 13,E114 PM NOT SET BY STC 05/ 
H115  ASC 13,H115 PRESS HALT-PRESET-RUN 
      ASC 13, IN LESS THAN 10 SECONDS/
E116  ASC 16,E116 PM OR MEM FENCE NOT CLEARED 
      ASC 6, BY PRESET/ 
H117  ASC 13,H117 PRESET TEST COMPLETE/ 
      SPC 3 
NOTTY NOP 
      ISZ NOTTY     BUMP PAST THE 
      ISZ NOTTY       MSG AND DEF, AND
E326  OCT 107026          HALT CODE 326 
      JMP NOTTY,I   NOW GO DO THE PRESET TEST 
      SPC 2 
*     MESSAGES
E226  ASC 5,E226 XMM/ 
E227  ASC 5,E227 XMM/ 
E230  ASC 5,E230 XMS/ 
E231  ASC 5,E231 XMS/ 
E232  ASC 5,E232 SYA/ 
E233  ASC 5,E233 SYA/ 
E234  ASC 5,E234 USA/ 
E235  ASC 5,E235 USA/ 
      HED STATUS-FENCE REGISTER 
*     TEST 04 
* 
*     TEST 04 VERIFIES PROPER OPERATION OF THE HARDWARE AND FIRMWARE
*     OF THE MEMORY EXPANSION MODULE STATUS REGISTER AND THE SET OF 
*     INSTRUCTIONS USED IN TEST 04 TO EXERCISE IT.
* 
*     THESE INSTRUCTIONS ARE: 
* 
*         DJP - DISABLE M.E.M. AND JUMP 
*         DJS - DISABLE M.E.M. AND JUMP SUBROUTINE
*         SJP - ENABLE SYSTEM MAP AND JUMP
*         SJS - ENABLE SYSTEM MAP AND JUMP SUBROUTINE 
*         UJP - ENABLE USER MAP AND JUMP
*         UJS - ENABLE USER MAP AND JUMP SUBROUTINE 
*         RSA/B READ STATUS REGISTER INTO A/B REGISTER
*         LFA/B LOAD FENCE REGISTER FROM A/B REGISTER 
*         SSM - STORE STATUS IN MEMORY
*         JRS - JUMP AND RESTORE STATUS 
* 
*     TEST 04 CHECKS THE STATUS REGISTER BITS BY EXECUTING ONE OF 
*     THE ABOVE INSTRUCTIONS, THE INTERRUPT SYSTEM, AND THE PROTECT 
*     FEATURES OF M.E.M. TO ESTABLISH VALIDITY OF THE VARIOUS STATUS
*     REGISTER BITS.
* 
*     THE INITIAL CHECKING IS DONE THRU THE A-REGISTER REFERENCE
*     (RSA-LFA) INSTRUCTIONS.  ONCE IT IS ESTABLISHED THAT THE
*     A-REGISTER REFERENCE INSTRUCTIONS EXECUTE PROPERLY, THE 
*     B-REGISTER COUNTERPARTS ARE CHECKED.
* 
*     AFTER ALL BITS OF THE STATUS REGISTER, AND ALL OF THE ABOVE 
*     INSTRUCTIONS ARE CHECKED, CONTROL IS RETURNED TO THE CONTROL
*     PROGRAM.
* 
*     IF AN ERROR IS DETECTED WHILE TST04 IS BEING EXECUTED, A
*     MESSAGE WILL BE OUTPUT TO THE CONSOLE, AND THE ERROR ROUTINE
*     WILL HALT THE COMPUTER. 
* 
*     TO DETERMINE THE CAUSE OF THE ERROR, THE OPERATOR MUST CHECK
*     THE FOLLOWING REGISTERS:
* 
*         T REGISTER = HALT CODE
*         A REGISTER = STATUS BIT(S) WHICH FAILED * 
*         B REGISTER = STATUS BIT(S) WHICH FAILED * 
*         X REGISTER = STATUS REGISTER AT FAILURE 
*         Y REGISTER = ADDRESS OF FAILURE 
* 
*  *NOTE.  IN THE CASE OF REGISTER REFERENCE INSTRUCTIONS, THE
*          REGISTER REFERENCED WILL CONTAIN ACTUAL(BAD) DATA, AND 
*          THE ALTERNATE REGISTER WILL CONTAIN THE EXPECTED(GOOD) 
*          DATA.
* 
      SKP 
      ORG 6000B 
TST04 EQU * 
      SPC 1 
      NOP 
      JSB ZORCH     PUT JSB,I INSTRUCTION IN CELLS
      JSB LODUP     LOAD UP THE MAPS
      NOP 
      SPC 1 
      DJP *+3       DISABLE THE MEM AND JUMP *+3
      JSB TEER1     GO AND REPORT THE ERROR 
      RSA           READ MEM STATUS REGISTER
      NOP 
      AND EMSK1     MASK OFF DONT CARE BITS 
      SZA,RSS       TEST TO SEE IF THE
      JMP *+3       PROPER STATUS RETURNED.  OVER 
      CLB           ERROR DETECTED, GET EXPECTED
      JSB STERA     STATUS AND REPORT THE ERROR 
      SPC 1 
      RSB           NOW READ THE STATUS TO B-REG
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      LDA EMSK1     PUT THE MASK VALUE IN A 
      AND B         STRIP OFF THE DONT CARE BITS
      SZA,RSS       TEST FOR PROPER STATUS
      JMP *+3 
      CLA           ERROR DETECTED, GET THE EXPECTED
      JSB STERB      STATUS AND REPORT THE ERROR
      SPC 1 
      DJS *+3       DISABLE AND JSB *+3 
RTAD1 JSB TEER2     NO JSB, REPORT
      NOP           SUBROUTINE RETURN ADDRESS 
      RSA           READ MEM STATUS REGISTER
      NOP 
      AND EMSK1     ELIMINATE DONT CARE BITS
      SZA,RSS       TEST TO SEE PROPER STATUS 
      JMP *+3       OK, OVER THE ERROR JSB
      CLB           ERROR IN STATUS RETURNED, 
      JSB STERA      REPORT ON CONSOLE
      SPC 1 
      RSB           READ STATUS TO B REGISTER 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      LDA EMSK1     PLACE MASK VALUE IN A 
      AND B         STRIP OFF DONT CARE BITS
      SZA,RSS       TEST FOR PROPER STATUS RETURN 
      JMP *+3       OK, OVER THE ERROR
      CLA           ERROR DETECTED, PUT THE EXPECTED
      JSB STERB      VALUE IN A AND REPORT. 
      SPC 1 
      LDA RTAD1+1 
      CPA RTAD2     COMPARE RETURN ADDRESS
      JMP *+2       ADDRESS CORRECT, CONTINUE 
      JSB DJSER     ADDRESS NOT CORRECT, REPORT 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SKP 
      SJP *+7       ENABLE SYSTEM & JUMP
      DJP *+2        OFF SYSTEM IF NO JUMP
      JSB TEER3     REPORT SJP DIDNT JUMP 
      SPC 1 
      SJP *+2       RE-ENABLE AFTER ERROR 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      RSA           READ STATUS REGISTER
      AND EMSK2     STRIP OFF DON'T CARE BITS 
      CPA STN01     PROPER STATUS?
      JMP *+7       OVER THE ERROR
      DJP *+2       DISABLE TO REPORT ERROR 
      LDB STN01     NO, GET THE EXPECTED VALUE
      JSB STERA     REPORT ERROR
      SJP *+2       SYSTEM BACK ON AFTER ERROR
      SPC 2 
      RSB           NO READ STATUS TO B-REG 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      LDA EMSK2     PLACE MASK VALUE IN A 
      AND B         STRIP OFF DONT CARE BITS
      CPA STN01     PROPER STATUS?
      JMP *+5        YES, OVER THE ERROR
      DJP *+2        NO, OFF MEM TO REPORT ERROR
      LDA STN01      GET THE EXPECTED VALUE IN A
      JSB STERB      AND REPORT THE PROBLEM 
      SPC 1 
      DJP *+3       DISABLE THE MEM AND JUMP *+3
      JSB TEER1     REPORT DJP PROBLEM
      RSA           READ STATUS REGISTER IN A 
      AND EMSK2     ELIMINATE DONT CARE BITS
      SZA,RSS       TEST FOR PROPER STATUS
      JMP *+3       PROPER STATUS RETURNED
      CLB           WRONG STATUS IN BITS 13 & 11, 
      JSB STERA     REPORT ON CONSOLE 
      SPC 1 
      RSB           READ STATUS TO B
      LDA EMSK2     GET MASK VALUE AND
      AND B         STRIP OFF DONT CARE BITS
      SZA,RSS       TEST FOR PROPER STATUS RETURNED 
      JMP *+3       YES, OVER THE ERROR 
      CLA           NO, GET EXPECTED VALUE AND
      JSB STERB      REPORT ON THE CONSOLE
      SPC 1 
      SJS *+7       ENABLE THE SYSTEM AND JSB 
RTAD3 DJP *+2       CRASH, NO JSB 
      JSB TEER4     REPORT ON CONSOLE 
      SJP *+2       MEM BACK ON AFTER ERROR 
      SKP 
      NOP           RETURN ADDRESS
      LDA *-1       GET THE CALCULATED RETURN ADDR. 
      CPA RTAD4      AND COMPARE TO RETURN
      JMP *+6        RETURN ADDRESS OK, OVER THE ERR
      DJP *+2        RETURN ADDRESS WRONG, REPORT 
      JSB SJSER      RETURN ADDRESS WRONG, REPORT 
      SJP *+2       MEM BACK ON AFTER ERROR 
      SPC 1 
      RSA           READ THE STATUS REGISTER
      AND EMSK2     GET RID OF DONT CARE BITS 
      CPA STN01     BIT 13 ON?
      JMP *+7        YES, OVER ERROR HANDLING 
      DJP *+2        NO, MEM OFF FOR REPORT 
      LDB STN01      GET WHAT STATUS SHOULD BE
      JSB STERA     REPORT THE ERROR
      SJP *+2       REENABLE THE ERROR
      SPC 1 
      RSB           NOW READ STATUS TO B
      LDA EMSK2     GET MASK VALUE AND
      AND B          STRIP OFF DONT CARE BITS 
      CPA STN01     TEST FOR PROPER STATUS
      JMP *+7       OK, OVER THE ERROR
      DJP *+2       ERROR, OFF MEM TO REPORT
      LDA STN01     GET PROPER STATUS 
      JSB STERB      AND REPORT FAILURE 
      SJP *+2       BACK ON AFTER ERROR 
      SPC 1 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      UJP *+7       ENABLE USER MAP & JUMP
      DJP *+2       DISABLE FOR ERROR 
      JSB TEER5     REPORT UJP DIDN'T JUMP
      UJP *+2       RE-ENABLE AFTER ERROR 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      RSA           READ STATUS REGISTER
      AND EMSK2     STRIP DONT CARE BITS
      CPA STN02     GOT PROPER STATUS?
      JMP *+3       YES, JUMP OVER ERROR
      LDB STN02     NO, GET EXPECTED STATUS 
      JSB STERA     REPORT ERROR
      SPC 1 
      RSB           READ STATUS REG TO B
      LDA EMSK2     GET THE MASK VALUE
      AND B         STRIP OFF THE DONT CARE BITS
      CPA STN02     IS STATUS CORRECT?
      JMP *+7       YES, OVER THE ERROR 
      DJP *+2       NO, OFF USER TO REPORT
      LDA STN02     GET THE EXPECTED PATTERN
      JSB STERB      AND REPORT THE ERROR 
      UJP *+2       BACK ON AFTER ERROR 
      SKP 
      SPC 1 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SJP *+5 
      DJP *+2       WHOOPS, OFF MEM 
      JSB TEER3     SJP DIDNT JUMP
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      UJS *+7       ENABLE AND JSB
RTAD5 DJP *+2       NO JSB, OFF THE SYSTEM
      JSB TEER6     AND REPORT NO JSB 
      UJP *+2       BACK  ON AFTER ERROR
      NOP           JSB RETURN ADDRESS
      LDA *-1       GET RETURN ADDRESS
      CPA R.TA5 
      JMP *+6        YES OVER ERROR HANDLING
      DJP *+2        OFF FOR ERROR
      JSB UJSER     NO, REPORT ADDRESS ERROR
      UJP *+2        BACK ON AFTER ERROR
      SPC 1 
      NOP 
      RSA           READ STATUS REGISTER
      AND EMSK2     STRIP DONT CARE BITS
      CPA STN02     IS STATUS CORRECT?
      JMP *+7        YES CONTINUE 
      DJP *+2        WHOOPS 
      LDB STN02      NO, GET EXPECTED STATUS
      JSB STERA      AND REPORT 
      UJP *+2        BACK ON AFTER ERROR
      RSB           GET STATUS REGISTER IN B
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      LDA EMSK2     PUT MASK VALUE IN A 
      AND B         MASK DONT CARE BITS 
      CPA STN02     TEST FOR PROPER STATUS
      JMP *+7        STATUS IS OK, OVER ERROR 
      DJP *+2        OFF USER FOR ERROR 
                                                                                                                        