      LDA OC140     STARTING W/ OCTAL 140 
      CLB 
      LDX OCT40      THE PORT B MAP REGISTERS 
      XMS            USING THE XMS INSTRUCTION
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      LDA OC140     USING XMS, READ 
      LDB RTPTB 
      LDX NON40      MAP REGISTERS INTO RTPT2 
      XMM            USING XMM
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      LDA LTPTB     COMPARE THE CONTENTS
      LDB RTPTB      OF THE LOAD AND READ 
      JSB TBCMP      TABLE USING TBCMP
      JSB XMSER      REPORT ERROR 
      NOP 
      SPC 1 
      CLA           NOW LOAD ALL
      CLB            FOUR MAPS SEQUENTIALLY 
      LDX OC177 
      XMS 
      NOP 
      SPC 1 
      CLA           READ BACK 
      LDB RTSYS      THE SEQUENTIALLY 
      LDX NO177      LOADED 
      XMM            MAPS NOW 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      JSB SQALL     MAKE A SEQUENTIAL TABLE TO COMPR
      JSB AL.CP,I   COMPARE ALL THE TABLES
      JSB XMSER 
      NOP 
* 
      LDY NDTTH     INIT. 200 XTHRU COUNTER 
      CLA           LOAD EACH MAP 
      STA CLFLG     ZERO CHECK FLAG FOR COMPARE JSB 
      CLB            REGISTER WITH
CRA01 LDX OCT01      ITS ADDRESS
CRA02 XMS            VALUE USING XMS
      ISY           INCREMENT XTHRU COUNTER - DONE? 
      JMP CRA01     NO, GO BACK & DO AGAIN
      SPC 1 
      JSB CRACK     GO CHECK
* 
*     REGISTER ADDRESS COMPLEMENT TEST
* 
      LDY NDTTH     INIT. 200 XTHRU COUNTER 
      CCA           SET CHECK 
      STA CLFLG         FLAG TO ONES
      CLA           START W/REGISTER 0
      LDB ND2TH     USING 1777 AS STARTING VALUE
CRA06 LDX OCT01     PUT THE COMPLEMENT VALUE OF THE 
CRA04 XMS            ADDRESS INTO THE REGISTER
      ADB NEG02     DECREMENT B TO THE NEXT VALUE 
      ISY           XTHRU?
      JMP CRA06     NO, DO AGAIN
      JSB CRACK     YES, FINISHED NOW VERIFY
      JMP TST01,I   EXIT TEST 1 
CRACK NOP 
      LDA CLFLG     GET CHECK FLAG
      SZA           ADDRESS CHECK?
      JMP PTONS     NO, ADDRESS COMPLEMENT
      STA CONST     YES, USE ZERO TO START
      LDA OCT01      AND INCREMENT ARITH
      STA ARITH      OPERATION. 
      LDA CRA03     PUT OPERATION ADDRESS IN SPADB
      STA SPADB      IN CASE AN ERROR IS DETECTED.
      SPC 1 
CRA07 LDY NDTTH     INIT XTHRU COUNTER
      CLA           INITIALIZE SCRATCH
      STA SPADA      PAD ALPHA
CRSTR LDA SPADA     GET STARTING REGISTER VALUE 
      LDB BFFAD     POINT TO BUFFER ADDRESS 
      LDX NEG01     COUNT OF ONE, DIRECTION TO MEM
      XMM           DO IT!
      SPC 1 
      STA SPADA     SAVE A FOR NEXT XTHRU 
      LDA B.FAD     GET VALUE READ BY XMM 
      CPA CONST     CORRECT VALUE?
      JMP CORVF     YES, OVER ERROR ROUTINE 
      JSB RGSVE     SAVE THE REGISTERS VALUES 
      LDB CONST     GET THE EXPECTED VALUE
      LDX SPADA     AND FAILING REGISTER ADDRESS
      LDY SPADB     ADDRESS OF THE FAILURE
      JSB ERMS,I    REPORT ERROR
      DEF E030       USING XMS ERROR MSG
      JSB RGRST     RESTORE REGISTER VALUES 
      SPC 1 
CORVF LDB CONST     UPDATE
      ADB ARITH      THE COMPARE
      STB CONST      CONSTANT 
      ISY           XTHRU?
      JMP CRSTR     NO DO AGAIN 
      JMP CRACK,I   YES, EXIT 
      HED REGISTER CRUSHER
*     TST25 
* 
*     TEST 25 TESTS EACH BIT IN EVERY MAP REGISTER TO INSURE NO 
*     INTERFERENCE WITH EVERY OTHER BIT IN EVERY OTHER ADDRESS. 
* 
*     DUE TO THE LENGTHY EXECUTION TIME OF THIS TEST, IT IS NOT A 
*     PART OF THE STANDARD TESTS, BUT MUST BE CALLED BY THE OPERATOR
*     USING SWITCH REGISTER SELECTION.
* 
      SKP 
TST25 EQU * 
      SPC 1 
      NOP 
* 
      CLA           INITIALIZE: 
      STA REGUT      REGISTER UNDER TEST POINTER
      STA SPADA      VALUE 1 SCRATCH PAD
POINC STA REGAL      ALTERNATE REGISTER POINTER 
      STA SPADB      VALUE 2 SCRATCH PA2
      SPC 1 
POIND LDA REGUT     GET REGISTER UNDER TEST NUMBER
      LDB SPADA      AND VALUE 1
      CPA REGAL     REGUT = REGAL 
      JSB RGLCK 
      LDX OCT01     CHARACTER COUNT = 1 
      XMS           TRANSFER
      SPC 1 
POINA LDA REGAL     PUT VALUE 2 
      LDB SPADB      INTO THE 
      LDX OCT01      ALTERNATE
MARK1 XMS            REGISTER 
      SPC 1 
      LDA REGUT     READ
      LDB BFFAD      BACK THE 
      LDX NEG01      REGISTER 
      XMM            UNDER TEST 
      LDA B.FAD     DID THE VALUE 
      CPA SPADA      CHANGE?
      JMP *+2       NO, JUMP OVER THE ERROR ROUTINE 
      JSB CRERA     YES, GO REPORT ERROR
      SPC 1 
      ISZ SPADB     BUMP VALUE 2
      LDA SPADB     GET VALUE 2 
      CPA TUI0T      TOO LARGE? 
      JMP *+2        YES, GO SET UP FOR NEXT VALUE1 
      JMP POINA     NO, DO AGAIN
      CLA           RESET 
      STA SPADB       VALUE2
      ISZ SPADA       AND BUMP VALUE 1
      LDA SPADA     NOW CHECK VALUE1
      CPA TUI0T      TOO LARGE? 
      JMP *+2        YES, GO ON TO NEXT REGAL 
      JMP POIND      NO, GO BACK FOR NEXT VALUE1
      SPC 1 
      CLA 
      STA SPADA     RESET SPADA 
      ISZ REGAL     INCREMENT ALT REGISTER POINTER
      LDA REGAL      CHECK FOR REGAL
      CPA TUIIT      OVERFLOW VALUE 
      JMP *+2        TOO LARGE, GO RESET
      JMP POIND     DO AGAIN FOR ALL VALUES OR REGAL
      ISZ REGUT     BUMP REGISTER UNDER TEST POINTER
      LDA REGUT      CHECK FOR LAST 
      CPA TUIIT 
      JMP *+3 
      CLA 
      JMP POINC 
      SPC 1 
EXT25 JMP TST25,I 
      SPC 3 
RGLCK NOP 
      CPA NDNTH 
      JMP EXT25 
      ISZ REGAL 
      JMP RGLCK,I 
      SPC 2 
NDNTH OCT 177 
      SPC 1 
AL.CP DEF ALCMP 
      SKP 
XMSER NOP 
      STA XMER1     SAVE THE A AND B REGISTER 
      STB XMER2      CONTENTS FOR DISPLAY AT HALT 
      STX XMER3     ALSO THE X AND Y
      STY XMER4     REGISTERS 
      LDY XMSER     GET ADDRESS OF THE FAILURE JSB
      LDX REGNR     AND THE FAILING REGISTER
      ADY NEG01     MAKE Y= THE FAILING ADDRESS 
      JSB ERMS,I    REPORT XMS
      DEF E030       FAILURE
      LDX XMER3     RESTORE 
      LDY XMER4      X AND Y
      JMP TCPHR     CONTINUE
      SPC 1 
XMER1 OCT 0 
XMER2 OCT 0 
XMER3 OCT 0 
XMER4 OCT 0 
E030  ASC 5,E030 XMS/ 
      SPC 3 
CRERA NOP 
      JSB RGSVE     SAVE STATE OF REGISTERS 
      LDA SPADA     GET EXPECTED VALUE FOR DISPLAY
      LDX REGUT     GET FAILING REGISTER NUMBER 
      LDY .MRK1     GET ADDRESS OF FAILURE
      JSB ERMS,I     REPORT FAILURE USING 
      DEF E047
      JSB RGRST     RESTORE THE REGISTERS 
      JMP CRERA,I   AND RETURN
      SKP 
PTONS LDA ND2TH     INITIALIZE: 
      STA CONST          ADDRESS COMPLEMENT VARIABLE
      LDA NEG01 
      STA ARITH          ARITH. OPERATOR
      LDA CRA05           AND 
      STA SPADB          ADDRESS OF OPERATION 
      JMP CRA07 
      SPC 5 
NDTTH OCT -200
ND2TH OCT 1777
CONST OCT 0 
ARITH OCT 0 
CRA03 DEF CRA02 
CRA05 DEF CRA04 
SPADA OCT 0 
SPADB OCT 0 
CLFLG OCT 0 
BFFAD DEF B.FAD 
B.FAD OCT 0 
REGUT OCT 0 
REGAL OCT 0 
.MRK1 DEF MARK1 
TUI0T OCT 2000
TUIIT OCT 200 
      HED MEM DIAGNOSTIC - VIOLATION REGISTER 
* 
*     TST11 
* 
*     TEST 11VERIFIES PROPER OPERATION OF THE HARDWARE AND FIRMWARE 
*     REQUIRED TO IDENTIFY AND REPORT PROTECTED MODE VIOLATIONS 
*     CAUSED BY TRYING TO LOAD, STORE OR ENTER AREAS OF MEMORY WHICH
*     ARE DESIGNATED AS PROTECTED BY THE DMS. 
* 
*     TEST 11IS MADE UP OF THREE SUBTESTS:
* 
*             1 - READ VIOLATION
*             2 - WRITE VIOLATION 
*             3 - BASE PAGE VIOLATION 
* 
*     IF AN ERROR IS DETECTED DURING THE EXECUTION OF TST11, THE
*     PROGRAM WILL OUTPUT AN ERROR MESSAGE ON THE CONSOLE, AND THEN 
*     HALT THE COMPUTER.  THE OPERATOR MAY THEN DETERMINE THE CAUSE-
*     OF THE ERROR BY CHECKING THE T REGISTER, WHICH WILL CONTAIN 
*     THE HALT CODE, AND THE Y REGISTER, WHICH WILL CONTAIN THE 
*     ADDRESS OF THE FAILURE
* 
* 
      SKP 
TST11 EQU * 
      SPC 1 
      NOP 
      JSB ZORCH     PUT JSB,I'S INTO DVICE AND MEMSC
      JSB JLOAD     SETUP MAP REGISTERS TO RUN TST11
      JSB KFNCE 
      SPC 1 
* 
*               READ VIOLATION CAUSED BY A LOAD 
* 
      SPC 1 
      LDA JRA01     SET UP VIOLATION INTERRUPT
      STA M5LNK     RETURN ADDRESS IN ADDRESS LINK
      LDA PTRN1     PLACE A RECOGNIZABLE PATTERN
      STA TWNTK,I   ON THE READ PROTECTED PAGE
      CLA           ZERO THE A REGISTER 
      JSB PMON      TURN PM INTSYS AND SYSTEM ON
JA1   LDA TWNTK,I 
      JSB OFFPM     MUST HAVE BEEN SUCESSFUL
      LDY JD1       GET FAIL FLAG 
      JSB ERMS,I      BY FORCE, AND REPORT
      DEF E136
JRD01 NOP 
      JSB TRNOF     OFF INT AND SYS MAP 
      CPA TWNTK,I   WAS THE LOAD SUCCESSFUL?
      JSB JERR1     YES, REPORT THE FAILURE 
      RVA           GET VIOLATION REGISTER CONTENTS 
      SSA,RSS       READ VIOLATION DETECTED?
      JSB JERR3     NO,REPORT 
      RVB           NOW, DOES RVB 
      SSB,RSS       ALSO WORK?
      JSB JERR4 
      SPC 1 
*               WRITE VIOLATION CAUSED BY A STORE 
      SPC 1 
      LDA JRA02     PLACE NEXT VIOLATION INTERRUPT
      STA M5LNK     RETURN ADDRESS IN LINK WORD 
      CLA           ZERO ADDRESS
      STA TWN2K,I   22000B
      JSB PMON      ON PM, INTSYS, AND SYSTEM MAP 
      LDA PTRN1     GET PATTERN TO STORE
JA2   STA TWN2K,I   TRY TO STORE IN PROTECTED MEMORY
      JSB OFFPM     NO VIOLATION INTERRUPT
      LDY JD2       GET THE FAIL FLAG 
      JSB ERMS,I    REPORT NO INTERRUPT 
      DEF E137
JRD02 NOP 
      JSB TRNOF     OFF INTSYS AND SYSTEM MAP 
JA3   LDA TWN2K,I   GET THE WORD
      SZA,RSS       BETTER BE ZERO
      JMP *+5       IT IS, OVER THE ERROR 
      LDY JD3 
      JSB ERMS,I     IT IS NOT, REPORT THAT 
      DEF E140       WRITE WAS ALLOWED IN PM
      RVA           NOW GET VIOLATION REGISTER
      AND WVSWD     STRIP DONT CARE BITS
      CPA WVSWD     BIT 14 SHOW UP IN VIOL. REG?
      JMP *+2       YES, OVER THE ERROR 
      JSB JERR5     NO, REPORT THE PROBLEM
      RVB           NOW VERIFY
      STB A         THAT RVB
      AND WVSWD     ALSO WORKS
      CPA WVSWD     FOR WRITE VIOLATION 
      JMP *+2       IT DOES, OVER THE ERROR 
      JSB JERR4 
      NOP 
      SPC 1 
*               BASE PAGE VIOLATION 
      SPC 1 
      LDA JRA03     PUT NEXT CONTINUATION ADDRESS 
      STA M5LNK     IN M5 LINK ADDRESS
      JSB PMON      TURN ON PROTECTED MODE
      LDA MPJSB     GET MPJSB (IN CASE NO PROTECT)
JA4   STA MEMSC     TRY TO STORE UNDER BP FENCE 
      JSB OFFPM     FAILURE, OFF PM 
      LDY JD4       GET FAIL FLAG 
      JSB ERMS,I    REPORT THE ERROR
      DEF E141      USING BP VIOLATION MESSAGE
      SPC 1 
JRD03 NOP 
      RVA           GET VIOLATION REGISTER CONTENTS 
      JSB TRNOF     OFF THE INTSYS AND SYSTEM MAP 
      AND BPVSW     ELIMINTE THE UNNEEDED BITS
      CPA BPVSW     IS THE BP VIOLATION SET?
      JMP *+2        YES, OVER THE ERROR
      JSB JERR7      NO, REPORT THE ERROR 
      LDA JRA04      SETUP TO 
      STA M5LNK       TRY A JUMP
      LDA JRA05       UNDER THE 
      STA ADLNK       BASE PAGE FENCE 
      JSB PMON       ON THE PROTECT FEATURES
JIO01 JMP DVICE     TRY TO JUMP TO DVICE SELECT CODE
      SPC 1 
JRD05 NOP 
      JSB OFFPM 
      LDY JRD05     GET ERROR FLAG
      JSB ERMS,I     AND REPORT WE WERE 
      DEF E142       ABLE TO JUMP UNDER THE BPF 
      SPC 1 
JRD04 NOP 
      RVA           GET VIOLATION  REGISTER 
      JSB TRNOF     OFF INTP & SYS
      AND BPVSW     BP
      CPA BPVSW       VIOLATION?
      JMP *+2       YES, OVER THE ERROR 
      JSB JERR8     NO, GO REPORT THE ERROR 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SKP 
      LDA UFNCE     SET STATUS REGISTER 
      LFA           10 ON 
      LDA JRA06     UPDATE THE RETURN 
      STA M5LNK     FROM INTERRUPT ADDRESS
      JSB PMON      ON PROTECTED MODE 
JA5   STA ADLNK     TRY TO STORE IN PB PROTECT
      JSB OFFPM     MADE IT, OFF PROTECTED MODE 
      LDY JD5       GET THE FAIL FLAG 
      JSB ERMS,I    REPORT WE COULD STORE INTO
      DEF E323      BP PROTECTED AREA 
      SPC 1 
JRD06 NOP 
JA6   RVA           GET VIOLATION REGISTER
      AND BPVSW     CHECK FOR VIOLATION 
      CPA BPVSW      REGISTER BIT 13
      JMP ENDJJ     OK, OVER THE ERROR
      LDY JD6       NO, GET FAIL FLAG 
      JSB ERMS,I    AND REPORT THE ERROR
      DEF E324       USING E324 MESSAGE.
ENDJJ JSB TRNOF     OFF THE INTP AND SYSTEM 
      NOP 
      JMP TST11,I   EXIT THE TEST 
      SKP 
JRA01 DEF JRD01 
JRA02 DEF JRD02 
JRA03 DEF JRD03 
JRA04 DEF JRD04 
JRA05 DEF JRD05 
JRA06 DEF JRD06 
JD1   DEF JA1 
JD2   DEF JA2 
JD3   DEF JA3 
JD4   DEF JA4 
JD5   DEF JA5 
JD6   DEF JA6 
WVSWD OCT 40000 
BPVSW OCT 20000 
UFNCE OCT 2100
      SPC 1 
JERR1 NOP 
      LDY JERR1 
      JSB ERMS,I
      DEF E143
      JMP JERR1,I 
      SPC 1 
JERR3 NOP 
      LDY JERR3 
      JSB ERMS,I    REPORT RVA OR 
      DEF E144       VR BIT 15 PROBLEM
      JMP JERR3,I    PROBLEM
      SPC 1 
JERR4 NOP 
      LDY JERR4 
      JSB ERMS,I
      DEF E145
      JMP JERR4,I 
      SPC 1 
      SPC 1 
JERR5 NOP 
      LDY JERR5 
      JSB ERMS,I
      DEF E146
      JMP JERR5,I 
      SPC 1 
JERR7 NOP 
      LDY JERR7 
      JSB ERMS,I
      DEF E147
      JMP JERR7,I 
      SPC 1 
JERR8 NOP 
      LDY JERR8 
      JSB ERMS,I
      DEF E150
      JMP JERR8,I 
      SKP 
E136  ASC 9,E136 NO READ MEMV/
E137  ASC 10,E137 NO WRITE MEMV/
E140  ASC 11,E140 PM ALLOWED WRITE/ 
E141  ASC 8,E141 NO BP MEMV/
E142  ASC 14,E142 JMP ALLOWED WITHIN BPF/ 
E143  ASC 11,E143 PM ALLOWED READ/
E144  ASC 5,E144 RVA/ 
E145  ASC 5,E145 RVB/ 
E146  ASC 5,E146 RVA/ 
E147  ASC 5,E147 RVA/ 
E150  ASC 5,E150 RVA/ 
E323  ASC 8,E323 NO BP MEMV/
E324  ASC 5,E324 RVA/ 
      HED MOVE WORDS INSTRUCTIONS 
* 
*     TST06 
* 
*     TEST 06 VERIFIES PROPER OPERATION OF THE HARDWARE AND FIRMWARE
*     REQUIRED TO EXECUTE THE FOLLOWING INSTRUCTIONS: 
* 
*              MWF - MOVE WORDS FROM THE ALTERNATE MAP
*              MWI - MOVE WORDS INTO THE ALTERNATE MAP
*              MWW - MOVE WORDS WITHIN THE ALTERNATE MAP
* 
*     THESE MACRO INSTRUCTIONS MOVE A STRING OF WORDS USING THE 
*     ALTERNATE PROGRAM MAP AS THE SOURCE AND/OR DESTINATION. 
* 
*     TEST 06 IS MADE UP OF THREE SUBTESTS, THE SET OF TESTS
*     EXERCISING THE MWF MACRO INSTRUCTION, THE SET OF TESTS
*     EXERCISING THE MWI MACRO INSTRUCTION, AND THE SET OF TESTS
*     EXERCISING THE MWW MACRO INSTRUCTION. 
* 
*     EACH MACRO INSTRUCTION IS TESTED WITH THE SYSTEM AND THEN WITH
*     THE USER AS THE ENABLED MAP 
* 
*     IF AN ERROR IS DETECTED DURING THE EXECUTION OF TST06, AN 
*     ERROR MESSAGE IS OUTPUT TO THE CONSOLE, AND THE ROUTINE HALTS 
*     THE COMPUTER.  THE OPERATOR MAY THEN CHECK THE FOLLOWING
*     REGISTER TO DETERMINE THE CAUSE OF THE ERROR HALT:
* 
*              T REGISTER = HALT CODE 
*              A REGISTER = ACTUAL PATTERN
*              B REGISTER = EXPECTED PATTERN
*              X REGISTER = PHYSICAL ADDRESS OF ACTUAL PATTERN
*              Y REGISTER = ADDRESS OF FAILURE
      SKP 
      ORG 12000B
TST06 EQU * 
      SPC 1 
      NOP 
      LDB TWNTK     GET A STARTING ADDRESS OF 20K 
      JSB MEMAD     DO A MEMORY ADDRESS 20K-40K 
      LDB TWN2K     GET A STARTING ADDRESS OF 22K 
      JSB GZERO     ZERO THE NEXT PAGE. 
      JSB LODUP     LOAD UP THE MAP REGISTERS 
      SPC 1 
      SJP *+2       ENABLE THE SYSTEM MAP 
      LDA TWNTK     GIVING BOTH SOURCE
      LDB TWNTK      AND DESTINATION 20K ADDRESS
      LDX MASK7      AND A COUNT OF 7,
      MWF            MOVE WORDS FROM USR-SYS
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE THE M.E.M.
      LDA TWN2K     GET THE ACTUAL
      LDB TWNTK      AND EXPECTED VALUES
      LDX NDN07      COUNT OF 7 
      JSB GCOMP     COMPARE SOURCE AND DEST.
      JSB MFUR1     COMPARE FAILED, REPORT
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      SJP *+2       RE-ENABLE THE SYSTEM MAP
      LDA TWNTK      SOURCE (USER) ADDR 
      LDB TWNTK      DESTINATION (SYSTEM) ADDR
      LDX OCT2K     COUNT OF 2000(OCTAL)
      MWF           MOVE EM 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE M.E.M.
      LDA TWN2K     ACTUAL ADDRESS
      LDB TWNTK     EXPECTED ADDRESS
      LDX NON2K     COUNT OF 2K 
      JSB GCOMP     COMPARE THE TWO 
      JSB MFUR1      ERROR DETECTED, REPORT 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      LDB TWN2K      WRITE A MEMORY ADDRESS 
      JSB MEMAD      IN THE 22K AREA (SOURCE) 
      LDB TWNTK      AND ZERO THE 
      JSB GZERO      20K (DESTINATION) AREA 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      UJP *+2       ENABLE THE USER MAP 
      LDA TWNTK     POINTERS TO PAGES 
      LDB TWNTK     10&11 
      LDX MASK7     COUNT OF 7
      MWF           MOVE WORDS
      SPC 1 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      DJP *+2       DISABLE M.E.M.
      LDA TWNTK     POINT TO THE SOURCE AND 
      LDB TWN2K      DESTINATION AREAS
      LDX NDN07     COUNT OF SEVEN
      JSB GCOMP     COMPARE SOURCE AND DEST.
      JSB MFSR1      ERROR DETECTED, REPORT 
      SPC 1 
      UJP *+2       RENABLE THE USER MAP
      LDA TWNTK     POINT TO SOURCE(SYSTEM) 
      LDB TWNTK      AND DESTINATION (USER) 
      LDX OCT2K     AND MOVE A WHOLE
      MWF            PAGE USING MWF 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE MEM 
      LDA TWNTK     POINT TO ACTUAL 
      LDB TWN2K      AND EXPECTED, AND
      LDX NON2K      COMPARE THE PAGES
      JSB GCOMP     COMPARE SOURCE AND DEST.
      JSB MFSR1      ERROR DETECTED, REPORT 
      JSB GINIT     SETUP POINTER AND COUNTER 
OLPG1 LDB TWNTK     GET SOURCE ADDRESS
      NOP             CHANGE TO JMP *-N FOR LOOP/ 
      JSB CHPTN     CHANGE THE PATTERN
      SPC 1 
      SJP *+2       ENABLE THE SYSTEM MAP REGISTERS 
      LDA TWNTK     POINT TO PAGE 10 USER 
      LDB TWNTK      AND TO PAGE 10 SYSTEM
      LDX OCT2K     COUNT OF 2K(OCTAL)
      MWF           MOVE WORDS FROM 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE M.E.M.
      LDA TWN2K     ACTUAL
      LDB TWNTK     EXPECTED POINTERS 
      LDX NON2K     COUNT OF 2000 
      JSB GCOMP     COMPARE THE TWO 
      JSB MFUR1      ERROR DETECTED 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      ISY           ROLLOVER YET??
      JMP OLPG1      NO, DO AGAIN 
      SPC 2 
      SPC 3 
      JSB GINIT     SETUP POINTER AND COUNTER 
OLPG2 LDB TWN2K     GET SOURCE ADDRESS
      NOP 
      JSB CHPTN     CHANGE THE SOURCE PATTERN 
      SPC 1 
      UJP *+2       ENABLE THE USER MAP REGISTERS 
      LDA TWNTK     POINT TO ADDRESS PAGE 10
      LDB TWNTK      BOTH USER AND SYSTEM 
      LDX OCT2K     2000(8) COUNT 
      MWF           MOVE WORDS FROM SYSTEM TO USER
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      DJP *+2       DISABLE THE M.E.M.
      LDA TWNTK     GET ACTUAL AND
      LDB TWN2K     EXPECTED POINTERS 
      LDX NON2K     COUNT 
      JSB GCOMP     COMPARE THE TWO 
                                                                                                                                                                                                                                                  