      CPA 2         LOC 2 OK? 
      RSS           YES 
      JMP BADMP     NO.SOMETHING IS WRONG 
      LDA JSB3I     RESTORE JSB 3,I 
      STA MP         INSTRUCTION IN 5 
      LDA PMPER     POINT LOC 3 TO INIT 
      STA 3          PARITY ERROR HANDLING ROUTINE
      LDA I.1       SET MP PRESENT
      IOR FWORD      BIT IN FLAG WORD 
      STA FWORD 
GONE  LDA THALT     RESTORE TRAP CELL 
      STA 2          TO LOC 2 
      CLF INT       INSURE NO INTERRUPTS
      STF MP        INSURE P.E. IS ON 
      LDA I2000     DISABLE CALL
      STA PJMP       TO INIT & ALLOW OVERLAYING 
      JMP IL224 
PARCK CLF MP        TURN OFF PE & CLEAR BIT 15 OF VR
      LIA MP        GET VIOLATING ADDRESS 
      STA B         ALSO IN B 
      LDA I7777     CHECK IF IN MODULE 0
      CMA 
      AND B 
      SZA 
      JMP UH.OH     NO
E101A OCT 106001    PARITY ERROR IN MODULE 0
      JMP *-1       IRRECOVERABLE 
UH.OH ADB I7777     FORM A LAST WORD OF MEMORY
E110  OCT 106010    FIX PROBLEM OR ENTER A NEW UPPER
*                                   LIMIT IN B AND PRESS RUN OR 
*                                   LEAVE VALUE IN B AND USE THAT 
*                                   FOR AN UPPER LIMIT. 
      JMP GOTIT     CONTINUE WITH VALUE 
IL224 LDA MSIZE     ONLY 4K 
      CPA I7777      PRESENT? 
      RSS           YES 
      JMP IL222     NO.LEAVE FWORD ALONE
      LDA I2        OR IN 
      IOR FWORD      4K PRESENT 
      STA FWORD       FLAG
      JMP IL223     SKIP NEXT SECTION 
IL222 LDB I6177     MOVE
      LDA CONF       THE
      STA PWCNT,I     CONFIGURATOR
      LDA MSIZE        LOCATIONS
      AND I70K          DOWN
      IOR I6500          TO 
      JSB PMOVE,I         6177-7377 
      LDA TRAP      PUT 
      LDB B10K       HALT 
LP218 STA B,I         106075'S
      CPB MSIZE        IN 
      JMP IL223         UNUSED
      INB                MEMORY 
      JMP LP218 
IL223 LDA PMDCK     SET UP STARTING 
      STA SAVAD      SOURCE ADDRESS 
      LDB B131      DESTINATION STARTING ADDRESS
LP220 LDA SAVAD,I   MOVE A
      STA B,I        WORD 
      CPB PEMCK     DONE? 
      JMP IL226     YES 
      INB           NO.BUMP 
      ISZ SAVAD      POINTERS 
      JMP LP220     CONTINUE
IL226 LDA PMDCK     SET UP
      STA SAVAD      POINTERS 
      LDB B131        AGAIN 
LP221 LDA SAVAD,I   GET SOURCE WORD 
      CPA B,I       MOVED OK? 
      RSS           YES 
      JMP IER       NO.ERROR
      CPB PEMCK     DONE? 
      JMP IL227     YES 
      INB           NO. BUMP
      ISZ SAVAD      POINTERS 
      JMP LP221     CONTINUE
IER   STB SAVAD     SAVE ADDRESS
      LDB B,I       GET BAD DATA IN B 
E104B OCT 106004    MODULE 0 HAS FAILURE
      LDA SAVAD     GET FAILING 
      LDB SAVAD      ADDRESS IN A & B 
E105B OCT 106005    FATAL ERROR IN MODULE 0 
      JMP *-1       IRRECOVERABLE 
IL227 LDA JMP05     SET MODULE 0 CHECK LOW
      STA PMJMP,I    TO JMP TO CONTROL SECTION
      LDA I4777     SET 
      LDB IM4K       UP 
      STA PLIM,I      PARITY
      STB PHIM,I       ERROR
      LDA I777          ROUTINE 
      LDB IM131          FOR MODULE 
      STA PLLIM,I         0 CHECK 
      STB PHLIM,I          (LOW)
      LDA PTBL3     POINT TO LOW
      STA PTBL4,I    PATTERN TABLE
      JMP PMDCK,I   GO START MODULE 0 CHECK 
* 
*     FLASHES S,E & O-REGISTERS TO INDICATE MEMORY PROTECT
*     WON'T TURN OFF
* 
FLASH CLE 
      CLO 
      CLA 
L614  OTA SWREG 
      INA,SZA 
      JMP *-1 
      LIA SWREG 
      CMA 
      OTA SWREG 
      CLA 
      INA,SZA 
      JMP *-1 
      SOS 
      JMP L612
      CLO 
      JMP L613
L612  STO 
L613  INA,SZA 
      JMP *-1 
      CME 
      INA,SZA 
      JMP *-1 
      JMP L614
      HED CONSTANTS,LINKS AND STORAGE FOR INIT
I.1   DEC 1 
I2    OCT 2 
I.3   DEC 3 
PMJMP DEF IL206-PAGE  TRANSFER POINT IN MD0CK 
PTBL4 DEF PITBL-PAGE  LINK TO PATTERN TABLE POINTER 
PHLIM DEF HLIM-PAGE  LINK TO HLIM(LOW)
PLLIM DEF LLIM-PAGE  LINK TO LLIM(LOW)
PTBL3 DEF ITBL-PAGE  LINK TO PATTERN TABLE(LOW) 
PEMCK DEF PM0CK-PAGE  END OF MODULE 0 CHECK LOW 
I777  OCT 777 
PVIOL DEF VIOLI+1   RETURN ADR FOR MP VIOLATION 
PHNDL DEF HANDL     DEF IN 3 FOR INIT 
CONF  OCT 1200      #OF WORDS IN CONFIGURATOR 
I2000 OCT 2000
PMDCK DEF MD0CK     START OF MODULE 0 CHECK 
PMPER DEF IPAR      DEF TO PAR ERROR ROUTINE IN INIT
PHIM  DEF HLIM      LINK TO HIGH LIMIT FOR P.E. 
PLIM  DEF LLIM      LINK TO LOW LIMIT FOR P.E.
I4777 OCT 47777 
I6177 OCT 6177
I6500 OCT 6500
I7777 OCT 7777
JMP01 JMP FLASH     MEMORY PROTECT WON'T TURN OFF 
I70K  OCT 70000 
SHALT OCT 106015    SPECIAL TRAP CELL HALT FOR NO MP
THALT OCT 106077
JSB3I JSB 3,I       JSB 3,I INSTRUCTION 
PATT3 OCT 125252
IM10K OCT -10000
IM4K  OCT -4000 
IM131 OCT -131
I.M10 DEC -10 
TEMP1 BSS 1 
      HED ERROR ROUTINE 
* 
*     PROCESSES DATA ERRORS 
* 
*     CALLING SEQUENCE: 
* 
*     A=DATA WRITTEN
*     B=FAILING ADDRESS 
*     JSB ERROR 
* 
      ORG 1400B 
ERROR NOP 
      STA AERR      SAVE
      STB BERR       A & B
      STB PERR      INITIALIZE PERR TO BASE ADDRESS 
      CLF MP        INSURE P.E. OFF DURING ERROR RTN
      CCA           INITIALIZE MERR 
      STA MERR       TO BASE MEMORY 
      LDB BIT14      SUPPRESS 
      JSB SWRCK       ERROR HALTS?
      JMP L632        YES 
      LDA TSTNO     IN DMS
      CPA B16        TESTS? 
      JSB FXMEM     YES.GO FIND PAGE # & ADDRESS
      LDB BIT5      ENTER ERRORS
      JSB SWRCK      IN ERROR TABLE?
      JMP PENTR,I   YES 
L626  LDA PTST,I    GET TEST #
      IOR HLT00      AND FORM 
      STA EHALT       ERROR HALT
      LDA AERR      GOOD DATA 
      LDB BERR,I    BAD DATA(DATA READ) 
EHALT BSS 1         ERROR HALT
      LDA PERR      FAILING ADDRESS IN A
      LDB MERR      ONES OR PAGE # IN B 
H27   HLT 27B       HALT FOR ADDRESS
L632  LDA AERR      RESTORE 
      LDB BERR       A & B
      STF MP        TURN P.E. BACK ON 
      JMP ERROR,I 
      HED FXMEM 
* 
*     DETERMINE PAGE ADDRESS AND PUT IN PERR
*     DETERMINE PAGE # AND PUT IN MERR
* 
FXMEM NOP 
      LDA BERR      GET 
      AND B1777      PAGE ADDRESS 
      STA PERR        IN PERR 
      LDA BERR      FORM
      LDB SAVE3      THE
      AND B76K        REGISTER #
      ALF              FROM 
      RAL,RAL           SAVE3 
      ADA M10       ALLOW FOR 8K START POINT
      CMA           CALCULATE 
L625  INA,SZA,RSS    THE
      JMP L641        PAGE
      INB              NUMBER 
      JMP L625
L641  STB MERR      PUT IT IN MERR
      JMP FXMEM,I 
      HED P.E.
*     HANDLES PARITY ERRORS 
* 
P.E.  NOP 
      STA AP.E.     SAVE A
      CLF INT       RE-DISABLE INTERRUPTS 
      LIA MP        GET VIOLATION REGISTER
      CLF MP        TURN OFF PARITY ERROR 
      SSA           PARITY ERROR BIT 15 OF VR SET?
      JMP L609      YES.OK
      STA SAVAD     SAVE ADDRESS
      LDA TSTNO     CURRENTLY IN
      CPA B14        MEMORY PROTECT TEST? 
      JMP PL140,I   YES.GO THERE
      CPA B16       IN DMS TEST?
      JMP L637      YES 
E102B OCT 106002    ERRONEOUS MP VIOLATION
      JMP *-1       IRRECOVERABLE 
L609  AND .32K      MASK OFF BIT 15 
      STA SAVAD     SAVE ADDRESS
      CMA,INA       IS P.E. 
      ADA B7777      LOCATED
      SSA             ABOVE 7777? 
      JMP L610      YES 
      LDA SAVAD     NO.BAD ADDRESS
      LDB SAVAD      IN A & B 
E101D OCT 106001    PARITY ERROR IN MODULE 0
      JMP *-1       IRRECOVERABLE 
L610  STB BP.E.     SAVE B
      LDA TSTNO     IN TEST 
      CPA B7         TST07? 
      JMP L642      YES 
      LDA TSTNO     IN TEST 
      CPA B16        TST16? 
      RSS           YES 
      JMP L611      NO.ADDRESS IS IN BASE MEMORY
      LDA SAVAD     GO FIND 
      STA BERR       PAGE ADDRESS AND 
      JSB FXMEM       PAGE NUMBER 
      LDA SAVE8     IS TST16 DOING
      CPA B7         TST07? 
      RSS           YES 
      JMP L611      NO.USE ERROR ROUTINE
      LDA PERR      FAILING PAGE ADDRESS
      LDB MERR      FAILING PAGE NUMBER 
      JMP E34       GO HALT 
L642  LDA SAVAD     FAILING ADDRESS(BASE MEMORY)
      CCB           BASE MEMORY FLAG
E34   HLT 34B       LET USER DECIDE 
      JMP L615      CONTINUE ALL BUT TST07
L611  LDA AP.E.     USE ERROR 
      LDB SAVAD      ROUTINE TO 
      JSB ERROR       REPORT ERROR
L615  LDA AP.E.     RESTORE 
      LDB BP.E.      REGISTERS
      STF MP        TURN PARITY ERROR BACK ON 
      JMP P.E.,I    CONTINUE TESTING
L637  LDA TESTS     IS THE MEMORY 
      AND B10K       PROTECT TEST 
      SZA             ALSO SELECTED?
      JMP PL140,I   YES.GO THERE
      JMP E102B     NO.ERRONEOUS MP VIOLATION 
BADMP EQU * 
E114  OCT 106014    MEMORY PROTECT FAILURE
      JMP *-1       IRRECOVERABLE 
       SPC 6
* 
*     CHECKS SWITCH-REGISTER FOR THE BIT IN THE B-REGISTER. 
* 
*     CALLING SEQUENCE: 
* 
*     LDB BIT 
*     JSB SWRCK 
*     RETURN P+1 IF SET 
*     RETURN P+2 IF CLEAR 
* 
SWRCK NOP 
      JSB PDBNC,I 
      AND B 
      SZA 
      JMP SWRCK,I 
      ISZ SWRCK 
      JMP SWRCK,I 
      SPC 2 
*         PROGRAM CONSTANTS,LINKS & STORAGE 
B77   OCT 77
SAVE1 BSS 1 
SAVE3 BSS 1 
SAVE4 BSS 1 
SAVE5 BSS 1 
SAVE6 BSS 1 
SAVE7 BSS 1 
SAVE8 BSS 1 
MAXPG NOP           MAXIMUM PAGE #
PTBL5 BSS 1         POINTER TO CHECKERBOARD PATTERN 
PTBL7 BSS 1         LINK TO ROWS & COLUMNS PATTERN
PTBL9 BSS 1         LINK TO DISTURBANCE PATTERN 
      HED ERROR TABLE AREA
      ORG 1600B 
ETABL EQU *         ERROR TABLE STARTING ADDRESS
* 
*     SPECIAL PROGRAM CONSTANTS 
* 
      ORG 1776B 
MSIZE BSS 1         LAST WORD OF MEMORY 
* 
*     FLAG WORD FOR VARIOUS PARAMETERS
* 
*     BIT #    PARAMETER PRESENT IF SET 
*      0       MEMORY PROTECT 
*      1       4K MEMORY PRESENT
* 
FWORD NOP           START WITH NONE 
      HED CONTROL SECTION 
*     CONTROLS EXECUTION OF VARIOUS TEST SECTIONS 
* 
      ORG 2000B 
      LDA PP.E.     SET P.E INTERRUPTS TO 
      STA 3          GO TO P.E. ROUTINE 
      LDA B777      SET UP DEFAULT
      STA TESTS      SET OF TESTS 
      CLA           SET PASS
      STA PASS       COUNTER TO 0 
      LDB PETBL     CLEAR ERROR 
L508  STA B,I        TABLE AND
      CPB PENTL       SUMMARY 
      JMP L512          AREA
      INB 
      JMP L508
L512  LDA MSIZE     SET UP DEFAULT
      STA UPPER      TEST LIMITS OF 
      LDB B10K        10000-X7777 OR
      LDA FWORD        0-7777 FOR 4K
      RAR,SLA 
      CLB 
      STB LOWER 
L500  CLA           CLEAR TEST
      STA TSTNO      NUMBER 
      STA HFLAG       AND SKIP BIT 15 FLAG
      JSB CKBTS     USER SELECTION OR NEW LIMITS? 
L501  LDB TSTNO     NO.GET CURRENT TEST # 
      CMB           1'S COMP. -TEST # 
      LDA TESTS     GET TESTS WORD
      RAR           GET BIT FOR 
      INB,SZB        CURRENT TEST 
      JMP *-2         SECTION IN BIT 15 POSITION
      SSA,RSS       DO THIS TEST? 
      JMP L502      NO
L505  LDA FWORD     ONLY 4K OF
      RAR,SLA        MEMORY PRESENT?
      JMP L513      YES.GO DECIDE ON TEST 
L514  JSB CKTST     CHECK TEST AREA BOUNDARIES
      LDA PTEST     BUILD TEST
      ADA TSTNO      POINTER AND
      LDA A,I         AND GO
      JSB A,I          DO IT
L503  LDA FWORD     ONLY 4K OF
      RAR,SLA        MEMORY PRESENT?
      JMP L518      YES.SKIP HALTS & RESTORING
      LDA TRAP      PUT 
      LDB B10K       HALT 
L517  STA B,I         106075'S
      CPB MSIZE        IN 
      JMP L516          TEST
      INB                AREA 
      JMP L517
L516  LDA MSIZE     RESTORE 
      AND B70K       CONFIGURATOR 
      ADA B6500 
      LDB A 
      LDA B1200 
      STA PWCNT,I 
      LDA PCONF 
      JSB PMOVE,I 
L518  JSB CKBTS     USER SELECTION OR NEW LIMITS? 
      LDA HFLAG     SKIP THE SW-REG 
      SZA            BIT 15 CHECK?
      JMP L504      YES 
      LDB BIT15     NO.IS BIT 
      JSB SWRCK      15 OF SW-REG SET?
      RSS           YES 
      JMP L504      NO
      LDA TSTNO     GET TEST # IN A 
H76   HLT 76B       HALT BETWEEN TEST SECTIONS
L504  CLA           CLEAR SKIP BIT
      STA HFLAG      15 FLAG
      LDB BIT13     IS SW-REG 
      JSB SWRCK      BIT 13 SET?
      JMP L505      YES.REPEAT TEST SECTION 
      LDA TSTNO     DONE ALL
      CPA LTEST      TESTS? 
      JMP L506      YES 
      ISZ TSTNO     NO.BUMP 
      JMP L501       TEST # 
L506  ISZ PASS      BUMP PASS COUNT 
      JMP L507      GO CHECK FOR LOOP ON PASS 
      CCA           STICK PASS
      STA PASS       COUNT AT 
      JMP L507        MAX # OF BITS 
L507  LDB BIT12     LOOP ON 
      JSB SWRCK      DIAGNOSTIC?
      JMP L500      YES 
      LDA PASS      NO.GET PASS COUNT IN A
H77   HLT 77B       END OF PASS 
      JMP L500      DO ANOTHER PASS 
USER  CLB           LOAD REGISTERS WITH 
      LDA TESTS      THE CURRENT SET OF TESTS 
H75   HLT 75B       HALT FOR USER SELECTION 
      SZA,RSS       DEFAULT SET OF TESTS? 
      LDA B777      YES 
      STA TESTS     STORE AS NEW SET OF TESTS 
      LIA SWREG     CLEAR BIT 9 
      AND N1001 
      OTA SWREG 
      LDA TESTS     SELECTED
      AND BIT14      TST16
      SZA,RSS         FOR EXECUTION?
      JMP L500      NO.RESTART PASS 
      CLA           DEFINE MAP
      CLB            REGISTERS 0-7
      LDX B10         TO BE PAGES 0-7 
      XMS 
      LDA B1777     START AT PAGE 1000(DECIMAL) 
      SJP L649      ENABLE SYSTEM MAPS
L649  STA MAXPG     SAVE IT 
      ADA M10       GET DOWN
      SSA            TO PAGE 7? 
      JMP E36       YES 
      LDA B10       DEFINE MAP
      LDB MAXPG      REGISTER 10 TO BE
      LDX .1          CURRENT MAXPG 
      XMS 
      LDB B20K      TRY TO
      CCA            WRITE
      STA B,I         ONES THERE
      LDA B,I       GET ONES
      CPA M1         BACK?
      JMP L651      YES.FOUND MAXPG 
      SZA,RSS       NO.GET ZEROS BACK?
      JMP L650      YES.GO DROP A PAGE
      LDB MAXPG     NO.SOMETHING'S WRONG
E402  OCT 107002    LET USER DECIDE 
      STB A         GET RID 
      AND B1777      OF DON'T 
      STA MAXPG       CARES 
L651  LDA MSIZE     DOES
      ALF            MAXPG
      RAL,RAL         EQUAL 
      AND B77          THE BASE 
      CPA MAXPG         MEMORY? 
      JMP E36       NO
      LIA SWREG     YES.SAVE
      STA TEMP3      S-REG
      LDA MAXPG     PUT MAXPG 
      OTA SWREG      IN S-REG 
      LDB .M16      DELAY 
      ISZ A          FOR
      JMP *-1         APPROXIMATELY 
      ISZ B            5 SECONDS
      JMP *-3 
      LDA TEMP3     RESTORE 
      OTA SWREG      S-REG
      DJP L500      TURN OFF MAPS & START NEW PASS
L650  LDA MAXPG     DROP
      ADA .M1        MAXPG
      JMP L649        ONE PAGE
E36   HLT 36B       NO EXPANDED MEMORY FOUND
      DJP USER      TRY AGAIN 
L502  CCA           SKIP SW-REG 
      STA HFLAG      BIT 15 
      JMP L516        CHECK 
ABORT JSB PDBNC,I   DEBOUNCE S-REG
      LDA TSTNO     IN TEST 
      CPA B16        TST16? 
      JMP L515      YES 
L519  CCA           RESET 
      STA BACKP      BACKGROUND 
      CLA             AND TEST
      STA TESTP        PATTERNS 
      LDA LOWER     GET CURRENT TEST
      LDB UPPER      LIMITS IN A & B
H64   HLT 64B       ENTER NEW LIMITS
*                                   PRESS PRESET,RUN
L510  JSB CHKUP     CHECK UPPER LIMIT 
E65   HLT 65B       RE-ENTER UPPER
      JSB CHKUP     CHECK UPPER LIMIT 
E30   HLT 30B       LAST CHANCE TO CHANGE UPPER 
      STA LOWER     GO WITH WHAT
      STB UPPER      USER HAS 
L509  ADA M10K      LOWER-10000 
      SSA,RSS       LOWER<10000?
      JMP L511      NO.OK 
      LDA LOWER     YES.RESTORE 
      LDB UPPER      LIMITS 
E67   HLT 67B       RE-ENTER LOWER
      JMP L510      TRY AGAIN 
L511  LDB UPPER 
      CMB,INB       -UPPER
      ADB LOWER     +LOWER
      SSB,RSS       LOWER GREATER THAN OR = UPPER?
      JMP *+5 
      LIA SWREG     CLEAR BIT 0 
      AND N2
      OTA SWREG 
      JMP L500      NO.RESTART PASS W/NEW TEST AREA 
      LDA LOWER     YES.RESTORE 
      LDB UPPER      LIMITS 
E66   HLT 66B       RE-ENTER LIMITS 
      JMP L510      TRY AGAIN 
L513  LDA TSTNO     TRYING TO DO THE
      CPA B10          MODULE 0 CHECK?
      JMP L514      YES.OK
      CPA LTEST     NO.TRYING TO DO MICROCODED TEST?
      JMP L514      YES.OK
H61   HLT 61B       USER SELECTED TEST & ONLY 4K
      JMP L503      SKIP TEST SECTION 
L515  LDA SAVE6     RESTORE TEST
      LDB SAVE7      LIMITS 
      STA LOWER 
      STB UPPER 
      DJP L519      DISABLE MAPS & ABORT
      HED CKBTS,CHKUP,CKTST 
* 
*     CHECKS S-REG BITS 0 & 9 
* 
CKBTS NOP 
      LDB BIT0      IS S-REG
      JSB SWRCK      BIT 0 ON?
      JMP ABORT     YES 
      LDB BIT9      IS S-REG
      JSB SWRCK      BIT 9 ON?
      JMP USER      YES 
      JMP CKBTS,I   NO.DONE 
* 
*     CHECK UPPER LIMIT OF TESTING IN B 
* 
CHKUP NOP 
      STA LOWER     SAVE NEW
      STB UPPER      LIMITS 
      CMB,INB       -UPPER
      ADB MSIZE     +MAX ADDRESS
      SSB,RSS       UPPER>MAX?
      JMP L509      NO.OK 
      LDB UPPER     YES.RESTORE BAD UPPER 
      JMP CHKUP,I 
* 
*     CHECKS TESTS SELECTED AND CURRENT TEST AREA LIMITS FOR 4K 
*     BOUNDARY COMPATIBILITY
* 
CKTST NOP 
      LDA TESTS     SELECTED TST07,TST11, 
      AND MASK3      TST12
      SZA 
      JSB PCK4K,I   YES.GO CHECK BOUNDARIES 
      JMP CKTST,I   NO.RETURN 
H35   HLT 35B       INFORM USER OF LIMIT PROBLEMS 
      JMP ABORT     TRY NEW LIMITS
      HED PATTERN TABLES
* 
*     CHECKERBOARD PATTERN TABLE
* 
TBL   EQU * 
      OCT 101       M0 EOR M6(TI 4030,4050) 
M1    OCT -1
* 
*     ROWS AND COLUMNS PATTERN TABLE
*     CONTAINS BITS IN ADDRESS TO CREATE ROWS OR COLUMNS
* 
TBL1  EQU * 
      OCT 100       M6(TI 4030,4050)-ROWS 
      OCT 10        M3(TI 4030,4050)-COLUMNS
      OCT -1
* 
*     DISTURBANCE PATTERN TABLE 
* 
TBL2  EQU * 
      OCT 110       M6,M3(TI 4030,4050) 
      OCT 100       M6(TI 4030,4050)
      OCT 10        M3(TI 4030,4050)
      OCT -1
                                                                                  