      JMP BYCMP,I     EXIT THIS ROUTINE 
      SKP 
MBFU1 NOP 
      STY GPAD1 
      LDY MBFU1 
      JSB MBFU3     BUILD AND REPORT
      LDY GPAD1 
      JMP MBFU1,I   ERROR MESSAGE BUFFER AND RETURN 
      SPC 1 
MBFU2 NOP 
      STY GPAD1 
      LDY MBFU2 
      JSB MBFU3     BUILD AND REPORT ERROR MESSAGE
      LDY GPAD1 
      JMP .GCOM     THEN BACK TO THE COMPARE ROUTINE
      SPC 1 
MBFU3 NOP 
      JSB ERMS,I
      DEF E130
      JMP MBFU3,I   EXIT
      SPC 2 
MBFS1 NOP 
      STY GPAD1 
      LDY MBFS1 
      JSB MBFS3     BUILD AND REPORT ERROR MESSAGE
      LDY GPAD1 
      JMP MBFS1,I   AND EXIT
      SPC 1 
MBFS2 NOP 
      STY GPAD1 
      LDY MBFS2 
      JSB MBFS3     BUILD AND REPORT ERROR MESSAGE
      LDY GPAD1 
      JMP .GCOM     THEN BACK TO COMPARE ROUTINE
      SPC 1 
MBFS3 NOP 
      JSB ERMS,I
      DEF E131
      JMP MBFS3,I   EXIT
      SPC 1 
MBTU1 NOP 
      STY GPAD1 
      LDY MBTU1 
      JSB MBTU3 
      LDY GPAD1 
      JMP MBTU1,I 
      SKP 
MBTU2 NOP 
      STY GPAD1 
      LDY MBTU2 
      JSB MBTU3 
      LDY GPAD1 
      JMP .GCOM 
      SPC 1 
MBTU3 NOP 
      JSB ERMS,I
      DEF E132
      JMP MBTU3,I 
      SPC 1 
MBTS1 NOP 
      STY GPAD1 
      LDY MBTS1 
      JSB MBTS3 
      LDY MBTS1 
      JMP MBTS1,I 
      SPC 1 
MBTS2 NOP 
      STY GPAD1 
      LDY MBTS2 
      JSB MBTS3 
      LDY GPAD1 
      JMP .GCOM 
      SPC 1 
MBTS3 NOP 
      JSB ERMS,I
      DEF E133
      SPC 1 
MBWS1 NOP 
      STY GPAD1 
      LDY MBWS1 
      JSB MBWS3 
      LDY GPAD1 
      JMP MBWS1,I 
      SPC 1 
MBWS2 NOP 
      STY GPAD1 
      LDY MBWS2 
      JSB MBWS3 
      LDY GPAD1 
      JMP .GCOM 
      SPC 1 
MBWS3 NOP 
      JSB ERMS,I
      DEF E134
      JMP MBWS3,I 
      SKP 
MBWU1 NOP 
      STY GPAD1 
      LDY MBWU1 
      JSB MBWU3 
      LDY GPAD1 
      JMP MBWU1,I 
      SPC 1 
MBWU2 NOP 
      STY GPAD1 
      LDY MBWU2 
      JSB MBWU3 
      LDY MBWU2 
      JMP .GCOM 
      SPC 1 
MBWU3 NOP 
      JSB ERMS,I
      DEF E135
      JMP MBWU3,I 
      SPC 2 
HPAD1 OCT 0 
HPAD2 OCT 0 
HPAD3 OCT 0 
UMASK OCT 177400
E130  ASC 5,E130 MBF/ 
E131  ASC 5,E131 MBF/ 
E132  ASC 5,E132 MBI/ 
E133  ASC 5,E133 MBI/ 
E134  ASC 5,E134 MBW/ 
E135  ASC 5,E135 MBW/ 
      HED VIOLATION REGISTER - MAP REGISTER BITS
* 
*     TST21 
* 
*     TEST 21 VERIFIES PROPER OPERATION OF THE HARDWARE AND FIRMWARE
*     REQUIRED TO DISPLAY THE PAGE ON WHICH A VIOLATION HAS OCCURRED
* 
*     TEST 21 CAUSES SEVERAL VIOLATIONS TO BE REPORTED, AND TESTS 
*     THE VIOLATION MAP BITS FOR CORRECT VALUE. 
* 
*     IF AN ERROR IS DETECTED DURING THE EXECUTION OF TST21, AN 
*     ERROR MESSAGE IS OUTPUT ON THE TERMINAL, AND THE PROGRAM HALTS
*     THE COMPUTER.  AT THIS TIME, THE OPERATOR MAY DETERMINE THE 
*     CAUSE OF THE ERROR BY CHECKING THE CONTENTS OF THE FOLLOWING
*     REGISTERS:
* 
*              T REGISTER = ERROR CODE
*              A REGISTER = ACTUAL PATTERN
*              B REGISTER = EXPECTED PATTERN
*              Y REGISTER = ADDRESS OF FAILURE
      SKP 
TST21 EQU * 
      SPC 1 
      NOP 
      JSB ZORCH     PUT JSB'S IN INTERRUPT CELLS
      JSB KFNCE     LOAD UP THE FENCE REGISTERS 
      JSB LODUP     LOAD THE MAP REGISTERS
      LDA OCT10     NOW 
      LDB RPNTR     PUT 
      LDX OCT06     PROTECTED 
      XMM           BITS IN MAPS
      SPC 1 
      LDA RD1       PUT INTERRUPT 
      STA M5LNK      ADDRESS IN LINK
      JSB PMON      ON THE PROTECTED MODE 
      STA TWN4K,I   AND FORCE A WRITE VIOLATION 
      SPC 1 
RA1   NOP 
      JSB TRNOF     OFF INTP AND SYS
      RVA           GET THE VIOLATION REGISTER
      AND RMASK     MASK OFF ALL BUT MAP BITS 
RA2   CPA OCT12 
      JMP ROVR1     YES, OVER THE ERROR 
      SPC 1 
      LDB OCT12     NO, GET THE EXPECTED PAGE 
      LDY RD2        THE FAIL FLAG, 
      JSB ERMS,I     AND REPORT WRONG 
      DEF E316
      SPC 2 
ROVR1 LDA RD3       UPDATE THE
      STA M5LNK      RETURN ADDRESS 
      JSB PMON      ON THE PM SYSTEM
      STA THR2K,I   VIOLATE PAGE 15 
      SPC 1 
RA3   NOP 
      JSB TRNOF     OFF INTP AND SYS
      RVA           GET VIOLATION REGISTER
      AND RMASK     ISOLATE MAP REGISTER BITS 
RA4   CPA OCT15      RIGHT PAGE?
      JMP ROVR2      YES, OVER THE ERROR
      SPC 1 
      LDB OCT15     GET EXPECTED PAGE NUMBER
      LDY RD4        AND FAIL FLAG
      JSB ERMS,I     NOW REPORT THE ERROR 
      DEF E301
      SPC 2 
ROVR2 LDA RD5       UPDATE
      STA M5LNK      RETURN ADDRESS 
      JSB PMON
      SKP 
      SPC 1 
RA5   NOP 
      JSB TRNOF     OFF INTP + SYS
      RVA 
      AND RMASK     ISOLATE MAP REGISTER
RA6   SZA,RSS        PAGE ZERO? 
      JMP ROVR3      YES, OVER THE ERROR
      CLB           NO, GET EXPECTED NUMBER 
      LDY RD6        FAIL FLAG
      JSB ERMS,I     AND REPORT 
      DEF E302
      SPC 2 
ROVR3 LDA RD7       UPDATE
      STA M5LNK      RETURN ADDRESS 
      JSB PMON      ON PROTECTED MODE 
      STA TWN2K,I    NOW STORE FOR ALL ONES 
      SPC 1 
RA7   NOP 
      JSB TRNOF     OFF INTP AND SYS
      RVA           GET VIOLATION REGISTER
      AND RMASK     ISOLATE MAP BITS
RA8   CPA OCT11 
      JMP ROVR4      YES, OVER THE ERROR
      LDB RMASK      GET THE EXPECTED VALUE 
      LDY RD8        FAIL FLAG
      JSB ERMS,I     REPORT THE 
      DEF E303
      SPC 2 
ROVR4 NOP 
      JMP TST21,I 
      SKP 
RPNTR DEF *+1 
      OCT 040010,041777,040012,040013,040014,040015 
RD1   DEF RA1 
RD2   DEF RA2 
RD3   DEF RA3 
RD4   DEF RA4 
RD5   DEF RA5 
RD6   DEF RA6 
RD7   DEF RA7 
RD8   DEF RA8 
RMASK OCT 77
      HED WRITE VIOLATIONS
* 
*     TST12 
* 
*     TEST 12 VERIFIES PROPER OPERATION OF THE HARDWARE AND FIRMWARE
*     REQUIRED TO SUCESSFULLY DETECT AND REPORT A PROTECTED MODE
*     WRITE VIOLATION, AS WELL AS PREVENT THE WRITE OPERATION FROM
*     ALTERING PROTECTED MEMORY.
* 
*     TEST 12 IS MADE UP OF FIVE SUBTESTS WHICH FIRST ATTEMPT A 
*     WRITE INTO PROTECTED MEMORY, INSURE THAT THE PROTECT FEATURES 
*     CAUSE A MEMV INTERRUPT, AND THEN CHECK TO INSURE THAT THE 
*     WRITE DID NOT CHANGE MEMORY.
* 
*     THE FIVE INSTRUCTIONS USED TO FOR TEST 12 ARE:
* 
*              MBI  MBW  MWI  MWW  XSA
* 
*     IF AN ERROR IS DETECTED DURING THE EXECUTION OF TEST KK, AN 
*     ERROR MESSAGE WILL BE OUTPUT ON THE CONSOLE, AND THE PROGRAM
*     HALTS THE COMPUTER.  THE OPERATOR MAY THEN DETERMINE THE
*     CAUSE OF THE ERROR BY CHECKING THE T REGISTER, WHICH WILL 
*     CONTAIN THE ERROR CODE, AND THE Y REGISTER, WHICH WILL CONTAIN
*     THE ADDRESS OF THE FAILURE. 
* 
* 
      SKP 
      ORG 14000B
TST12 EQU * 
      SPC 1 
      NOP 
      JSB ZORCH     LOAD UP INTERRUPT CELLS 
      JSB JLOAD             MAPS AND
      JSB KFNCE             FENCE 
      SPC 1 
      SPC 1 
      LDA KRT01     PUT RETURN ADDRESS
      STA M5LNK     IN VIOLATION INTERRUPT RETURN 
      JSB PMON      ON PROTECTED MODE 
      LDA TWNTK      ATTEMPT
      LDB TWNTK      A NON-PRIVELEGED 
      LDX KCONT      MBI INSTRUCTION
      NOP            CHANGE TO JMP *-N FOR LOOP/
KA1   MBI 
      JSB OFFPM     TURN OFF PM TO REPORT ERROR 
      LDY KD1       GET FAILURE FLAG
      JSB ERMS,I    AND REPORT THE FAILURE
      DEF E151
      SPC 1 
KRA01 NOP           VIOLATION INTERRUPTED HERE
      JSB TRNOF     OFF THE INTSYS AND SYS MAP
      JSB WTVCK     CHECK WRITE VIOLATION BIT 
      JMP *+5 
      LDY WTVCK     GET FAIL FLAG 
      JSB ERMS,I
      DEF E152
      SPC 1 
      LDA KRT02     PLACE NEXT RETURN 
      STA M5LNK     ADDRESS INTO M5LNK
      LDA TWNTK      ATTEMPT A
      LDB TWNTK      PROTECTED MODE 
      LDX KCONT      EXECUTION
      NOP            OF A 
      JSB PMON       MBW
KA2   MBW            INSTRUCTION
      JSB OFFPM 
      LDY KD2       GET FAIL FLAG 
      JSB ERMS,I    AND REPORT
      DEF E153
      SPC 1 
KRA02 NOP 
      JSB TRNOF     OFF THE INTSYS AND SYSMAP 
      JSB WTVCK     CHECK WRITE PROTECT BIT 
      JMP *+5       OK
      LDY WTVCK     NO, FAIL
      JSB ERMS,I
      DEF E154
      SKP 
      LDA KRT03     PLACE NEXT VIOLATION
      STA M5LNK     INTERRUPT ADDRESS IN M5LNK
      LDA TWN6K      NOW ATTEMPT
      LDB TWN2K      EXECUTION
      LDX KCONT      OF A 
      JSB PMON      PROTECTED MODE-ON 
KA3   MWI           MOVE WORDS INTO INSTRUCTION 
      JSB OFFPM 
      LDY KD3       GET THE FAIL FLAG 
      JSB ERMS,I    AND REPORT
      DEF E155      NO MEMV 
      SPC 1 
KRA03 NOP           VIOLATION RETURNS TO HERE 
      JSB TRNOF     OFF THE INTERRUPT SYSTEM ETC
      JSB WTVCK     CHECK BIT14 
     JMP *+5       OK 
      LDY WTVCK     NO, FAIL
      JSB ERMS,I
      DEF E156
      SPC 1 
      LDA KRT04     NEXT RETURN 
      STA M5LNK     ADDRESS INTO M5LNK
      LDA TWN6K      NOW TRY TO 
      LDB TWNTK      EXECUTE
      LDX KCONT      A MWW
      NOP            INSTRUCTION
      JSB PMON       IN PM. 
KA4   MWW 
      JSB OFFPM 
      LDY KD4       GET THE FAIL FLAG 
      JSB ERMS,I    AND REPORT
      DEF E157
      SPC 1 
KRA04 NOP           RETURN FROM VIOLATION INTERRUPT 
      JSB TRNOF     OFF INTP AND SYS
      JSB WTVCK 
      JMP *+5 
      LDY WTVCK 
      JSB ERMS,I
      DEF E160      ********
      SPC 1 
      LDA KRT06     UPDATE
      STA M5LNK      M5LNK
      NOP 
      JSB PMON      ON PROTECTED MODE 
KA5   XSA TWNTK     ATTEMPT A CROSS STORE 
      JSB OFFPM 
      LDY KD5 
      JSB ERMS,I
      DEF E161
      SPC 1 
KRA06 NOP           VIOLATION RETURN ADDRESS
      JSB TRNOF     OFF INTSYS
      JSB WTVCK     CHECK WRITE VIOLATION BIT 
      JMP *+5 
      LDY WTVCK 
      JSB ERMS,I
      DEF E162
      NOP 
      JMP TST12,I 
      SPC 2 
KD1   DEF KA1 
KD2   DEF KA2 
KD3   DEF KA3 
KD4   DEF KA4 
KD5   DEF KA5 
E151  ASC 5,E151 MBI/ 
E152  ASC 5,E152 MBI/ 
E153  ASC 5,E153 MBW/ 
E154  ASC 5,E154 MBW/ 
E155  ASC 5,E155 MWI/ 
E156  ASC 5,E156 MWI/ 
E157  ASC 5,E157 MWW/ 
E160  ASC 5,E160 MWW/ 
E161  ASC 5,E161 XSA/ 
E162  ASC 5,E162 XSA/ 
      HED READ VIOLATIONS 
* 
*     TST16 
* 
*     TEST 16 VERIFIES PROPER OPERATION OF THE HARDWARE AND FIRMWARE
*     REQUIRED TO SUCESSFULLY DETECT AND REPORT A PROTECTED MODE
*     READ VIOLATION. 
* 
* 
*     TST16 IS MADE UP OF FOUR SUBTESTS WHICH FIRST ATTEMPT A READ
*     FROM PROTECTED MEMORY, THEN INSURE THAT THE PROTECT FEATURES
*     CAUSE A MEMV INTERRUPT, AND TEST THE VIOLATION REGISTER TO
*     INSURE THE CORRECT STATE OF THE READ VIOLATION BIT. 
* 
*     THE FOUR INSTRUCTIONS USED FOR TST16 ARE: 
* 
*              MWW  MWI  MBW  MBI 
* 
*     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. THE OPERATOR MAY THEN DETERMINE THE 
*     CAUSE OF THE ERROR BY CHECKING THE T REGISTER, WHICH WILL 
*     CONTAIN THE ERROR CODE, AND THE Y REGISTER, WHICH WILL CONTAIN
*     THE ADDRESS OF THE FAILURE. 
* 
* 
* 
      SKP 
TST16 EQU * 
      SPC 1 
      NOP 
      JSB ZORCH 
      JSB KFNCE 
      JSB OLOAD 
      SPC 1 
      LDA OXDR1 
      STA M5LNK     ADDRESS INTO M5LNK
      LDA TWNTK      NOW TRY TO 
      LDB TWNTK      EXECUTE
      LDX KCONT      A MWW
      NOP            INSTRUCTION
      JSB PMON       IN PM. 
      MWW 
      JSB OFFPM 
      LDY OFFPM 
      JSB ERMS,I
      DEF E245
OXTR1 NOP 
      JSB TRNOF     OFF INTP AND SYS
      JSB RDVCK     CHECK IT WAS A READ VIOLATION 
      JMP *+5       IT WAS, OVER THE ERROR
      LDY RDVCK     GET THE FAILURE FLAG
      JSB ERMS,I     AND REPORT THE ERROR 
      DEF E246
      SPC 1 
      LDA OXDR2 
      STA M5LNK     INTERRUPT ADDRESS IN M5LNK
      LDA TWNTK      NOW ATTEMPT
      LDB TWNTK      EXECUTION
      LDX KCONT      OF A 
      JSB PMON      PROTECTED MODE-ON 
      MWI           MOVE WORDS INTO INSTRUCTION 
      JSB OFFPM 
      LDY OFFPM     SET ERROR FLAG ADDRESS
      JSB ERMS,I
      DEF E247
      SPC 1 
OXTR2 NOP 
      JSB TRNOF     OFF THE INTSYS AND SYSMAP 
      JSB RDVCK     CHECK IT WAS A READ VIOLATION 
      JMP *+5       IT WAS, OVER THE ERROR
      LDY RDVCK     GET THE FAILURE FLAG
      JSB ERMS,I     AND REPORT THE ERROR 
      DEF E250
      SKP 
      LDA OXDR3 
      STA M5LNK     ADDRESS INTO M5LNK
      LDA FORTK      ATTEMPT
      LDB FORTK      P.M. 
      LDX KCONT      EXECUTION
      NOP            OF A 
      JSB PMON       MBW
      MBW            INSTRUCTION
      JSB OFFPM 
      LDY OFFPM     SET ERROR FLAG ADDRESS
      JSB ERMS,I
      DEF E251
      SPC 1 
OXTR3 NOP 
      JSB TRNOF 
      JSB RDVCK     CHECK IT WAS A READ VIOLATION 
      JMP *+5       IT WAS, OVER THE ERROR
      LDY RDVCK     GET THE FAILURE FLAG
      JSB ERMS,I     AND REPORT THE ERROR 
      DEF E252
      SPC 1 
      LDA OXDR4 
      STA M5LNK     IN VIOLATION INTERRUPT RETURN 
      JSB PMON      ON PROTECTED MODE 
      LDA FORTK 
      LDB FORTK 
      LDX KCONT      MBI INSTRUCTION
      NOP            CHANGE TO JMP *-N FOR LOOP/
      MBI 
      JSB OFFPM     TURN OFF PM TO REPORT ERROR 
      LDY OFFPM     SET ERROR FLAG ADDRESS
      JSB ERMS,I
      DEF E253
      SPC 1 
OXTR4 NOP 
      JSB TRNOF 
      JSB RDVCK     CHECK IT WAS A READ VIOLATION 
      JMP *+5       IT WAS, OVER THE ERROR
      LDY RDVCK     GET THE FAILURE FLAG
      JSB ERMS,I     AND REPORT THE ERROR 
      DEF E254
      SPC 1 
      NOP 
      JMP TST16,I 
      SKP 
OXDR1 DEF OXTR1 
OXDR2 DEF OXTR2 
OXDR3 DEF OXTR3 
OXDR4 DEF OXTR4 
E245  ASC 5,E245 MWW/ 
E246  ASC 5,E246 MWW/ 
E247  ASC 5,E247 MWI/ 
E250  ASC 5,E250 MWI/ 
E251  ASC 5,E251 MBW/ 
E252  ASC 5,E252 MBW/ 
E253  ASC 5,E253 MBI/ 
E254  ASC 5,E254 MBI/ 
      SPC 1 
      SPC 1 
OLOAD NOP 
      JSB JLOAD 
      LDA OCT11 
      LDB OCT11 
      LDX OCT03 
      XMS 
      JMP OLOAD,I 
KRT01 DEF KRA01 
KRT02 DEF KRA02 
KRT03 DEF KRA03 
KRT05 DEF KRA05 
KRT06 DEF KRA06 
KRT07 DEF KRA07 
KCONT OCT 100 
KRT04 DEF KRA04 
KXFRW OCT 100001
      HED PRIVILEGED INSTRUCTIONS 
* 
*     TST13 
* 
*     TEST 13 VERIFIES PROPER OPERATION OF THE HARDWARE AND FIRMWARE
*     REQUIRED TO SUCESSFULLY DETECT AND REPORT A PROTECTED MODE
*     PRIVILEGED INSTRUCTION VIOLATION. 
* 
*     THIS TEST IS MADE UP OF EIGHT SUBTESTS WHICH INSURE PRIVILEGED
*     INSTRUCTIONS WILL CAUSE A MEMV INTERRUPT IF THE USER MAP IS 
*     ENABLED, AND WILL NOT CAUSE A VIOLATION IF THE SYSTEM MAP IS
*     ENABLED.
* 
*     THE INSTRUCTIONS USED FOR THIS TEST ARE:
* 
*              JRS  DJP  DJS  SJP  SJS  UJP  UJS  LFA 
* 
*     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.  THE OPERATOR MAY THEN DETERMINE THE
*     CAUSE OF THE ERROR BY CHECKING THE T REGISTER WHICH WILL
*     CONTAIN THE ERROR CODE, AND THE Y REGISTER, WHICH WILL CONTAIN
*     THE ADDRESS OF THE ERROR
      SKP 
TST13 EQU * 
      SPC 1 
      NOP 
      JSB LODUP     LOAD MAPS 
      JSB ZORCH     STORE JSB'S 
      JSB KFNCE     SET UP THE FENCES 
      SPC 1 
      LDA LRAD1     PUT NEXT RETURN 
      STA M5LNK     ADDRESS LINK
      JSB PMONU     ON PM W/USER MAP ENABLED
      JRS STS TRG   JMP AND RESTORE STATUS IF WE CAN
STS   OCT 024100    STATUS WORD 
TRG   NOP           TARGET ADDRESS
      JSB OFFPM     FORCE PM OFF
      LDY TRG       GET THE FAILURE FLAG
      JSB ERMS,I    AND REPORT
      DEF E163      NO MEMV 
      SPC 1 
LLRA1 NOP 
      JSB TRNOF     OFF PM TO CHECK 
      JSB PIVCK     BIT 12 OF THE VIOLATION REGISTER
      JMP *+5 
      LDY PIVCK 
      JSB ERMS,I
      DEF E164
      LDA LRAD2     PUT THE ERROR ROUTINE 
      STA M5LNK     ADDRESS IF IT VIOLATES W/SYSTEM 
      JSB PMON      ON PM 
      SSM LLSTS     PUT STATUS IN MEMORY LLSTATUS 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      JRS LLSTS NXT DO JMP AND RESTORE IN PM SYSTEM 
NXT   JSB OFFPM 
      JMP LOVR1     OVER THE ERROR
LLRA2 NOP 
      JSB TRNOF     OFF INTP AND SYS
                                                                                                                                  