      LDB OCT14      PORT A 
      LDX OCT30     REGISTER 1
      XMS 
      SPC 1 
      LDA O1C41      AND LOAD THE 
      LDB OCT15      PORT B 
      LDX OCT30 
      XMS            REGISTER 1 
      SPC 1 
      LDB THRTK     GET THE PATTERN TABLE POINTER 
      LDY NDN10     INITIALIZE A XTHRU = 10 
      LDA PTRN1     PUT A PATTERN 
      LDX PTRN2 
      STA B,I       INTO THE
      INB           DCPC SOURCE 
      STX B,I 
      INB 
      ISY           ADDRESSES 
      JMP *-6 
      SPC 1 
      LDY NDN10     MAKE A XTHRU=10 
      LDB TWNTK     LOGICAL ADDRESS POINTER 
      STB NPONT      SET THE POINTER
      LDB THRTK     INITIALIZE A
      STB XPONT     PHYSICAL ADDRESS POINTER
      SPC 1 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
T.NN1 LDA DMACW     GET CONTROL WORD 1
      OTA DMA.6     OUTPUT TO CHANNEL 1 
      CLC DMA.2     SETUP TO LOWER CHANNEL
      LDA NPONT     GET THE TRANSFER ADDRESS
      OTA DMA.2     OUTPUT TO LOW CHANNEL 
      STC DMA.2     HIT IT
      CCA           MAKE A NEGATIVE 1 
      OTA DMA.2     OUTPUT WORD COUNT 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SJP *+2       ON THE SYSTEM 
      CCA           SET FIRST TIME
      STA NFLAG     THRU FLAG 
      SKP 
NNIO4 STC DVICE,C    HIT THE BOARD
      STC DMA.6,C   OUTPUT TRANSFER COMMAND 
      SPC 1 
NSFS1 SFS DMA.6     WAIT
      JMP *+2            LOOP W/TIMER 
      JMP NCTU1     DONE, NOW GO CHECK THE XFR
      LDA NFLAG     GET FIRST TIME THRU FLAG
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SZA           FIRST TIME THRU?
      JMP *+6       YEP, GO THRU THE TIMER
      JSB TRNOF 
      JSB ERMS,I    NO, TELL THE OPERATOR 
      DEF E242      SOMETHING IS WRONG, THEN
      OCT 103042    DO THE NON-CONTINUE 
      JMP *-1       THING 
      LDA NTMGC     DO AN 8 MILLISECOND TIMER 
      JSB TMRR,I
      CLA           AND CLEAR THE 
      STA NFLAG     FIRST TIME THRU FLAG
      JMP NSFS1     NOW GO BACK AND CHECK THE FLAG
NCTU1 DJP *+2       OFF THE SYSTEM AREA 
      NOP           CHANGE TO JMP *-N FOR LOOP
      JSB RDFDV     GO GET THE WORD FROM DVICE
NTPD1 CPA XPONT,I    SAME AS THE ONE DCPC SENT OUT? 
      JMP N.CT1     YES, OVER THE ERROR 
      JSB RGSVE 
      LDB XPONT,I   NO, GET THE EXPECTED PATTERN
      LDX XPONT     THE ADDRESS OF THE FAILURE
      LDY NTPA1     AND THE FAILURE FLAG
      JSB ERMS,I    NO, TELL OPERATOR 
      DEF E243
      JSB RGRS2     RESTORE X AND Y 
N.CT1 ISZ NPONT     BUMP THE ADDRESS POINTER
      ISZ XPONT     BUMP COMPARE POINTER
      ISY           THEN THE XTHRU COUNTER
      JMP T.NN1     AND DO AGAIN UNTIL ROLLOVER 
      SKP 
      LDY NDN10     ZERO
      CLA           THE FIRST 
      LDB THR2K     TEN 
      STA B,I       LOCATIONS 
      INB           OF
      ISY           PAGE
      JMP *-3 
      SPC 1 
      LDY NDN10     INITIALIZE AN XTHRU COUNTER 
      LDB TWNTK     SETUP AN INPUT
      STB NPONT     ADDRESS POINTER 
      LDB THR2K     INITIALIZE
      STB XPONT      COMPARE POINTER
      LDA PTRN1     GET THE PATTERN 
      JSB WRTDV     OUTPUT AND CLOCK THRU DVICE 
      SPC 1 
T.NN2 LDA DMACW     GET THE CONTROL WORD
      OTA DMA.7     OUTPUT  TO #7 
      CLC DMA.3     SWITCH ON TO ACCEPT 
      LDA NPONT 
      IOR DMAIW     DIRECTION 
      OTA DMA.3     CONTROL WORD
      STC DMA.3      HIT IT 
      CCA           NOW, OUTPUT 
      OTA DMA.3     THE WORD COUNT
      SPC 1 
      STA NFLAG     SET THE FIRST TIME THRU FLAG
      SJP *+2       ENABLE SYSTEM 
NNIO5 STC DVICE,C 
      STC DMA.7,C   START XFER
NSFS2 SFS DMA.7     WAIT
      JMP *+2           LOOP
      JMP NCTU2     DONE, GO EXIT 
      LDA NFLAG     FIRST TIME
      SZA           THRU SFS LOOP?
      JMP *+6       YES, OVER THE ERROR 
      JSB TRNOF 
      JSB ERMS,I    NO, TELL THE OPERATOR 
      DEF E242      TO CHECK DCPC 
      OCT 103042    THEN
      JMP *-1           HANG
      LDA NTMGC     OFF TO THE
      JSB TMRR,I    TIMER 
      CLA           CLEAR THE 
      STA NFLAG     FIRST TIME THRU LOOP
      JMP NSFS2     AND CHECK THE FLAG AGAIN
      SKP 
NCTU2 DJP *+2 
      LDA XPONT,I 
      CPA PTRN1 
NTPD2 JMP N.CT2 
      LDB PTRN1 
      LDX XPONT 
      LDY NTPA2 
      JSB ERMS,I    REPORT
      DEF E244
      SPC 2 
N.CT2 ISZ NPONT     INCREMENT 
      ISZ XPONT     POINTERS
      ISY           AND XTHRU 
      JMP T.NN2     DO AGAIN UNTIL ROLLOVER 
      NOP 
      JMP TST15,I 
      SPC 3 
RDFDV NOP 
RDVC1 LIA DVICE     READ FROM THE DEVICE
      JMP RDFDV,I 
      SPC 3 
WRTDV NOP 
NNIO1 OTA DVICE 
NNIO2 STC DVICE,C 
      JMP WRTDV,I 
      SKP 
THRTK OCT 30000 
NPONT OCT 0 
XPONT OCT 0 
O1C01 OCT 110 
O1C41 OCT 150 
DMA.2 EQU 2 
DMA.3 EQU 3 
DMA.6 EQU 6 
DMA.7 EQU 7 
DMACW OCT 100000
NFLAG OCT 0 
NTMGC OCT 10
DMAIW OCT 100000
NTPA1 DEF NTPD1 
NTPA2 DEF NTPD2 
E242  ASC 15,E242 NO DCPC FLAG AFTER 10 MS/ 
E243  ASC 17,E243 PORT A NOT ENABLED BY DCPC6/
E244  ASC 17,E244 PORT B NOT ENABLED BY DCPC7/
E236  ASC 5,E236 PAA/ 
E237  ASC 5,E237 PAA/ 
      HED **MEM DIAGNOSTIC** - CROSS STORE/LOAD/COMPARE 
* 
*    TEST 05 -
* 
*    TEST 05 WILL TEST THE FOLLOWING INSTRUCTIONS:
* 
*          XSA/B     CROSS STORE
*          XLA/B     CROSS LOAD 
*          XCA/B     CROSS COMPARE
* 
*    THESE INSTRUCTIONS FUNCTION THE SAME AS THE BASE SET STORE 
*    LOAD AND COMPARE INSTRUCTIONS.  A STORE, LOAD OR COMPARE 
*    OPERATION IS PERFORMED USING THE A OR B REGISTER AND AN
*    ADDRESS FROM THE ALTERNATE MAP.  IF MEM IS DISABLED, XSA/B,
*    XLA/B AND XCA/B ACCESS PHYSICAL MEMORY 
* 
*     SINCE THE DEFAULT CASE IS A LOAD/STORE/COMPARE, THE MEMORY MAP
*     IS CHANGED PRIOR TO EXECUTION OF TST05, SUCH THAT THE MAPPED
*     ADDRESS AND THE LOGICAL ADDRESS WILL BE ON TWO DIFFERENT PAGES
*     THE MEMORY MAP WILL BE REINSTATED AT THE CONCLUSION OF THIS 
*     TEST
* 
*    CALLING SEQUENCE:   XSA
*                        DEF ADDR(I)
* 
* 
*     IF AN ERROR IS DETECTED WHILE EXECUTING TST05, THE ERROR CODE 
*     AND FAILING INSTRUCTION WILL BE OUTPUT TO THE CONSOLE, AND THE
*     PROGRAM WILL HALT THE COMPUTER.  AT THIS TIME, THE REGISTERS
*     CAN BE INTERROGATED TO DETERMINE THE CAUSE, LOCATION, ETC. OF 
*     THE ERROR.
* 
*     THE FORMAT FOR DETERMINING THESE CONDITIONS IS AS FOLLOWS:
* 
*              T REGISTER = HALT CODE 
*            * A REGISTER = PATTERN 
*            * B REGISTER = PATTERN 
*              X REGISTER = PHYSICAL TARGET ADDRESS OF INSTRUCTION
*              Y REGISTER = ADDRESS OF FAILURE
* 
* 
*  * NOTE:
*         THE ACTUAL PATTERN WILL BE FOUND IN THE REGISTER
*         REFERENCED BY THE CROSS INSTRUCTION, AND THE EXPECTED 
*         PATTERN WILL BE FOUND IN THE OTHER REGISTER.
      SKP 
      ORG 10000B
TST05 EQU * 
      SPC 1 
      NOP 
      JSB LODUP 
      LDA TWNTK     CONFIGURE TEST FOR DESTINATION
      STA .USA1       ADDRESS = 1. LOCATION IN
      STA T5EAD         PAGE 8(DEC) 
      LDA TWN2K           & 1. LOCATION IN
      STA .SSA1             PAGE 9(DEC) 
      STA T5EA2 
      LDA CLA       RESTORE ALL CLA INSTR. FOR THIS 
      STA FHREA+2     TEST RUN
      STA FHRED 
      STA FHREG+2 
      STA FHREJ+2 
      IOR OCT1K     RESTORE ALL CLB INSTR.
      STA FHREM+2 
      STA FHREJ+2 
      JSB TEST5     GO DO TEST
* 
CLA   CLA           CONFIGURE TEST FOR DESTINATION
      STA .USA1       ADDRESS = A-REG 
      STA T5EAD 
      STA .SSA1 
      STA T5EA2 
      STA FHREA+2   CHANGE CLA INSTR. TO NOP'S
      STA FHRED 
      STA FHREG+2 
      STA FHREJ+2 
      STA FHREM+2   CHANGE CLB INSTR. TO NOP
      JSB TEST5     GO DO TEST
* 
      CLA,INA       CONFIGURE TEST FOR DESTINATION
      STA .USA1       ADDRESS = B-REG 
      STA T5EAD 
      STA .SSA1 
      STA T5EA2 
      LDA CLA       RESTORE CLA INSTR. FOR THIS TEST
      STA FHREA+2     RUN 
      STA FHRED 
      STA FHREG+2 
      STA FHREJ+2 
      CLA           CHANGE CLB INSTR. TO NOP
      STA FHREP+2 
      JSB TEST5     GO DO TEST
      JMP TST05,I     THEN EXIT TEST
* 
      SPC 1 
TEST5 NOP 
      SJP *+2       ENABLE SYSTEM MAP REGISTERS 
      LDA PTRN1     GET A RECOGNIZABLE PATTERN AND
FERRA XSA .USA1,I   XSTORE PTRN1 ON PAGE 10 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      DJP *+2       DISABLE THE MEM 
      LDA .USA1,I   GO GET WHAT WAS XSTORED 
      CPA PTRN1     GET IT BACK RIGHT?
      JMP FHREA      YES, OVER THE ERROR
      LDB PTRN1      NO, GET THE EXPECTED 
      LDX T5EAD     PUT ADDRESS OF ERROR IN X 
      LDY FERDA      GET FAIL FLAG
      JSB ERMS,I     AND REPORT THE FAILURE 
      DEF E100
      NOP 
      SPC 1 
FHREA SJP *+2       REENABLE THE SYSTEM MAP 
      CLA           CHANGE THE VALUE OF A AND 
FERRB XLA .USA1,I    XLOAD FROM USER AREA 
      CPA PTRN1     DID THE XLOAD SUCCESSFULLY? 
      JMP FHREB     YES, OVER THE ERROR 
      DJP *+2 
      LDB PTRN1     GET THE EXPECTED PATTERN
      LDX T5EAD      THE ADDRESS OF THE FAILURE 
      LDY FERDB      AND ERROR FLAG 
      JSB ERMS,I    NOW REPORT USING
      DEF E101       XLA FAILURE MESSAGE
      SJP *+2       REENABLE THE SYSTEM 
      SPC 1 
FHREB LDA PTRN1     GET THE PATTERN TO COMPARE
FERRC XCA .USA1,I    XCOMPARE WITH WORD XSTORED 
      JMP FHREC     XCOMPARE OK, OVER THE ERROR 
      DJP *+2       DISABLE MEM TO REPORT ERROR 
      LDX T5EAD     ADDRESS OF FAILURE
      LDY FERDC     FAILURE FLAG
      JSB ERMS,I    REPORT THE
      DEF E102      ERROR 
      SPC 1 
      SJP *+2       SYS BACK ON 
FHREC LDA PTRN2     GET A DIFFRENT PATTERN TO XSTORE
FERRD XSA .USA1,I   XSTORE PATTERN 2
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      DJP *+2       DISABLE THE MAP TO GET AT WHAT
      LDA .USA1,I    WAS STORED BY THE XSA INTSR. 
      CPA PTRN2      COMPARE THE WORD WITH PATTERN 2
      JMP FHRED     COMPARED OK, JUMP OVER THE ERROR
      LDB PTRN2     GET THE EXPECTED
      LDX T5EAD      THE FAILING ADDRESS
      LDY FERDD      AND THE FAIL FLAG
      JSB ERMS,I    REPORT THE
      DEF E100       ERROR
      SPC 1 
      SJP *+2       SYS BACK ON 
FHRED CLA           CHANGE THE A REGISTER VALUE 
FERRE XLA .USA1,I   AND CROSS LOAD FROM THE USER MAP
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      CPA PTRN2     WAS THE PROPER PATTERN FOUND? 
      JMP FHREE     OVER THE ERROR
      DJP *+2       OFF SYSTEM
      LDB PTRN2     GET THE EXPECTED PATTERN
      LDY FERDE     AND THE ERROR FLAG
      LDX T5EAD      THE ADDRESS OF THE ERROR 
      JSB ERMS,I     AND REPORT THE ERROR 
      DEF E101
      SPC 1 
FHREE LDA PTRN2     GET THE EXPECTED PATTERN AND
FERRF XCA .USA1,I    XCOMPARE TO THE STORED PATTERN 
      JMP FHREF     OVER THE ERROR
      DJP *+2       DISABLE 
      LDX T5EAD     GET FAILURE ADDRESS 
      LDY FERDF     AND THE ERROR FLAG
      JSB ERMS,I    NOW REPORT THE
      DEF E102      FAILURE 
      SPC 1 
FHREF UJP *+2       ENABLE THE USER 
      LDA PTRN1     GET A RECOGNIZABLE PATTERN IN A,
FERRG XSA .USA1,I    AND XSTORE INTO THE SYSTEM AREA
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      DJP *+2       DISABLE MAPS
      LDA .SSA1,I   GET THE STORED PATTERN
      CPA PTRN1      IS IT THE SAME PATTERN?
      JMP FHREG      YES, OVER THE ERROR
      LDB PTRN1      NO, GET THE EXPECTED PATTERN 
      LDX T5EA2      THE FAILURE ADDRESS
      LDY FERDG      GET THE FLAG 
      JSB ERMS,I     REPORT THE 
      DEF E103       ERROR
      SPC 1 
FHREG UJP *+2       REENABLE THE SYSTEM MAP 
      CLA           CHANGE THE PATTERN IN A 
FERRH XLA .USA1,I   XLOAD FROM THE SYSTEM AREA
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      CPA PTRN1     COMPARE THE XLOADED PATTERN 
      JMP FHREH     COMPARE OK, OVER THE ERROR
      DJP *+2       COMPARE FAILED
      LDB PTRN1     REPORT
      LDX T5EA2      THE
      LDY FERDH      ERROR
      JSB ERMS,I
      DEF E104
      SPC 1 
      UJP *+2 
FHREH LDA PTRN1     GET THE PATTERN 
FERRI XCA .USA1,I   XCOMPARE IT TO THE SYSTEM AREA
      JMP FHREI     OK, OVER THE ERROR
      DJP *+2       DISABLE TO REPORT 
      LDX T5EA2     GET DATA FOR
      LDY FERDI          DISPLAY
      JSB ERMS,I    REPORT THE
      DEF E105      ERROR 
      UJP *+2        REENABLE 
      SPC 1 
FHREI LDA PTRN2     GET A NEW PATTERN 
FERRJ XSA .USA1,I    AND STORE IT IN THE SYSTEM MAP 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      DJP *+2       DISABLE THE MAPS
      LDA .SSA1,I   GET THE PATTERN XSTORED 
      CPA PTRN2      SAME AS THE XSTORED PATTERN? 
      JMP FHREJ 
      LDB PTRN2 
      LDX T5EA2 
      LDY FERDJ 
      JSB ERMS,I
      DEF E103
      SPC 1 
FHREJ UJP *+2 
      CLA           CHANGE THE A REGISTER VALUE 
FERRK XLA .USA1,I   XLOAD FROM SYSTEM AREA
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      CPA PTRN2     PATTERN THE SAME? 
      JMP FHREK 
      DJP *+2 
      LDB PTRN2 
      LDX T5EA2 
      LDY FERDK 
      JSB ERMS,I
      DEF E104
      UJP *+2 
      SPC 1 
FHREK LDA PTRN2 
FERRL XCA .USA1,I   XCOMPARE IT TO SYSTEMS MAP
      JMP FHREL 
      DJP *+2 
      LDX T5EA2 
      LDY FERDL 
      JSB ERMS,I
      DEF E105
      SPC 2 
FHREL SJP *+2 
      LDB PTRN1     GET A RECOGNIZABLE PATTERN IN B 
FERRM XSB .USA1,I   XSTORE B TO USER AREA 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      DJP *+2       DISABLE THE SYSTEM MAP REGISTERS
      LDB .USA1,I    AND LOAD B WITH THE XSTORED
      CPB PTRN1      CONTENTS.  COMPARE OK? 
      JMP FHREM 
      LDA PTRN1 
      LDY FERDM 
      LDX T5EAD 
      JSB ERMS,I
      DEF E106
      SPC 1 
FHREM SJP *+2 
      CLB           CHANGE THE VALUE OF B REGISTER
FERRN XLB .USA1,I   XLOAD B FROM THE USER MAP 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      CPB PTRN1     COMPARE TO XSTORED ADDRESS VALUE
      JMP FHREN 
      DJP *+2 
      LDA PTRN1 
      LDY FERDN 
      LDX T5EAD 
      JSB ERMS,I
      DEF E107
      SJP *+2 
      SPC 1 
FHREN LDB PTRN1 
FERRO XCB .USA1,I        COMPARE TO USER MAP AREA 
      JMP FHREO 
      DJP *+2 
      LDY FERDO 
      LDX T5EAD 
      JSB ERMS,I
      DEF E110
      SPC 1 
FHREO UJP *+2 
      LDB PTRN1     GET A NEW PATTERN 
FERRP XSB .USA1,I   XSTORE INTO THE SYSTEM AREA 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      DJP *+2       DISABLE THE MAPS
      LDB .SSA1,I   GET THE XSTORED VALUE 
      CPB PTRN1      AND COMPARED TO PATTERN 1
      JMP FHREP 
      LDA PTRN1 
      LDY FERDP 
      LDX T5EA2 
      JSB ERMS,I
      DEF E111
      SPC 1 
FHREP UJP *+2 
      CLB           CHANGE THE B REGISTER VALUE 
FERRQ XLB .USA1,I   XLOAD B FROM THE SYSTEM AREA
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      CPB PTRN1      WAS THE CROSS LOAD SUCCESSFUL? 
      JMP FHREQ 
      DJP *+2 
      LDA PTRN1 
      LDY FERDQ 
      LDX T5EA2 
      JSB ERMS,I
      DEF E112
      SPC 1 
      UJP *+2 
FHREQ LDB PTRN1 
FERRR XCB .USA1,I        XCOMPARE TO THE SYSTEM AREA
      JMP FHRER 
      DJP *+2 
      LDY FERDR 
      LDX T5EA2 
      JSB ERMS,I
      DEF E113
FHRER NOP 
      DJP *+2 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      JMP TEST5,I   AND EXIT SUBROUTINE 
      SKP 
.USA1 DEF USSA1 
.SSA1 DEF SSSA1 
T5EAD OCT 0 
T5EA2 OCT 0 
NDN25 DEC -25 
FERDA DEF FERRA 
FERDB DEF FERRB 
FERDC DEF FERRC 
FERDD DEF FERRD 
FERDE DEF FERRE 
FERDF DEF FERRF 
FERDG DEF FERRG 
FERDH DEF FERRH 
FERDI DEF FERRI 
FERDJ DEF FERRJ 
FERDK DEF FERRK 
FERDL DEF FERRL 
FERDM DEF FERRM 
FERDN DEF FERRN 
FERDO DEF FERRO 
FERDP DEF FERRP 
FERDQ DEF FERRQ 
FERDR DEF FERRR 
      SPC 3 
FLOAD NOP 
      LDA OCT10 
      LDB FLTBL 
      LDX OCTWO 
      XMM 
      JMP FLOAD,I 
      SPC 2 
FLTBL DEF FLTBX 
FLTBX OCT 11,10 
E100  ASC 5,E100 XSA/ 
E101  ASC 5,E101 XLA/ 
E102  ASC 5,E102 XCA/ 
E103  ASC 5,E103 XSA/ 
E104  ASC 5,E104 XLA/ 
E105  ASC 5,E105 XCA/ 
E106  ASC 5,E106 XSB/ 
E107  ASC 5,E107 XLB/ 
E110  ASC 5,E110 XCB/ 
E111  ASC 5,E111 XSB/ 
E112  ASC 5,E112 XLB/ 
E113  ASC 5,E113 XCB/ 
      HED *** XMS ***  -  EXCHANGE MAPS AND MEMORY SEQUENTIALLY 
* 
* 
* 
* 
*     XMS - EXCHANGE MAPS AND MEMORY SEQUENTIALLY 
* 
*           CALLING SEQUENCE: 
* 
*              LDA WORD1
*              LDB WORD2
*              LDX WORD3
*              XMS
* 
* 
*     WORD FORMATS: 
* 
*     WORD1 - MAP ADDRESS OF THE FIRST REGISTER TO BE 
*             LOADED BY THE XMS INSTRUCTION 
* 
*     WORD2 - STARTING VALUE OF THE SEQUENTIALLY LOADED 
*             VALUE 
* 
*     WORD3 - NUMBER OF REGISTERS TO BE LOADED.  WORD3
*             CAN ONLY BE A POSITIVE VALUE. 
* 
* 
* 
* 
*     TST01 VERIFIES PROPER OPERATION OF THE XMS
*     (EXCHANGE MAP AND MEMORY) MACRO INSTRUCTION.
* 
*     EACH MAP IS SEQUENTIALLY LOADED, READ AND 
*     COMPARED FOR ACCURACY OF LOAD/READ OPERATION
*     AND THEN ALL FOUR MAPS SEQUENTIALLY LOADED
*     AND VERIFIED
* 
* 
*     IF AN ERROR IS DETECTED IN RUNNING TST01, THE MESSAGE 
*     "E030 XMS" IS REPORTED AND THE COMPUTER HALTS WITH 102030 
*     DISPLAYED, AND THE A,B,X AND Y REGISTERS CONTAINING THE 
*     FOLLOWING INFORMATION:
* 
*              A=GOOD PATTERN 
*              B=BAD PATTERN
*              X=FAILING REGISTER NUMBER
*              Y=ADDRESS OF FAILURE 
* 
* 
      SKP 
TST01 EQU * 
      SPC 1 
      NOP 
      JSB RDZRO     ZERO THE READ TABLE 
      CLA           SEQUENTIALLY
      CLB            LOAD THE SYSTEM
      LDX OCT40      MAP REGISTERS
      XMS            USING THE XMS INSTRUCTION
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      CLA           SET UP A TABLE
      JSB MKSTB          FOR COMPARISON 
      CLA           DO THE XMS
      LDB RTSYS      TO MEMORY USING
      LDX NON40      RTSYS AS A CATCHER 
      XMM 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 2 
      LDA LTPTB     POINT TO READ 
      LDB RTSYS          AND SEQUENCE CONTROL TABLES
      JSB TBCMP               AND COMPARE THE TWO.
      JSB XMSER     GO REPORT THE ERROR 
      SPC 2 
      LDA OCT40     SEQUENTIALLY (FROM OCTAL 40)
      CLB            LOAD UP THE USER 
      LDX OCT40      MAP REGISTERS
      XMS 
      SPC 1 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      LDA OCT40     READ
      LDB RTUSR      BACK THE USER
      LDX NON40      MAP REGISTERS USING
      XMM            THE XMM INSTRUCTION
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SPC 1 
      LDA LTPTB     COMPARE 
      LDB RTUSR         THE TWO 
      JSB TBCMP               TABLES
      JSB XMSER     GO REPORT THE ERROR 
      SPC 1 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      LDA OC100     FROM OCTAL 100
      CLB            SEQUENTIALLY LOAD
      LDX OCT40      THE PORT 1 MAP 
      XMS            WITH THE XMS INSTRUCTION 
      SPC 1 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      LDA OC100     NOW READ
      LDB RTPTA      THE PORT 1 MAP INTO
      LDX NON40      RTPTA USING THE
      XMM               XMM INSTRUCTION 
      NOP           CHANGE TO JMP *-N FOR LOOP/ 
      SKP 
      LDA LTPTB          COMPARE
      LDB RTPTA          THE TWO TABLES 
      JSB TBCMP 
      JSB XMSER     GO REPORT THE ERROR 
      SPC 1 
                                  