LDB TSTA5 AND THE TABLE POINTER LDX NSTA3 AND THE NEGATIVE COUNT XMM THEN LOAD THE MAP REGISTERS NOP CHANGE TO JMP *-N FOR LOOP/ LDA MAPSK GET MASK CONSTANT AND TSTA5,I STRIP OFF NON-RETURNABLE BITS STA B PUT IN B TO COMPARE LDA MAPSK GET THE CONSTANT AGAIN AND TSTA4,I STRIP OFF THE BITS CPA B COMPARE THE TWO WORDS JMP BUMPR COMPARISON OK, JUMP OVER ERROR FA1 LDX TSTA2 GET REGISTER LDY FAD1 AND ADDRESS JSB ERMS,I REPORT SINGLE MAP DEF E033 XMM FAILURE BUMPR ISZ TSTA2 BUMP REGISTER NUMBER POINTER ISZ TSTA1 AND XTHRU COUNTER. XTHRU? JMP TSTA. NO, DO IT FOR ANOTHER REGISTER NOP YES, CONTINUE SKP SPC 1 * SINGLE MAP XMM - LOAD, READ AND COMPARE. SPC 1 JSB LTONE LOAD THE LOAD TABLE W/ALL ONES JSB RDZRO AND CLEAR THE READ TABLE * CLA,INA RESET THE STA WHCON WHICH ONE POINTER TST.A CLA LOAD THE SYSTEM MAP REGISTERS LDB LTSYS WITH THE CONTENTS OF THE LDX OCT40 TABLE NAMED LTSYS XMM NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 CLA LDB RTSYS NOW READ BACK THE LDX NON40 SYSTEM MAP INTO RTSYS XMM NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA LTSYS COMPARE THE LDB RTSYS LOAD AND READ JSB TBCMP TABLES. JSB SMERR DID NOT COMPARE, REPORT ERROR NOP CONTINUE (CHANGE TO JMP *-N FOR LOOP/) SPC 2 LDA OCT40 LOAD THE USER MAP REGISTERS LDB LTUSR LDX OCT40 WITH THE CONTENTS OF LTUSR XMM NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA OCT40 READ BACK THE LDB RTUSR USER MAP REGISTERS LDX NON40 INTO RTUSR XMM NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA LTUSR COMPARE THE USER MAP LDB RTUSR LOAD AND READ JSB TBCMP TABLES JSB SMERR DID NOT COMPARE, REPORT ERROR NOP CHANGE TO JMP *-N FOR LOOP/ SPC 2 LDA OC100 LOAD THE PORTA MAP REGISTERS LDB LTPTA WITH THE CONTENTS OF LDX OCT40 THE TABLE NAMED LTPTA XMM NOP CHANGE TO JMP *-N FOR LOOP/ SKP LDA OC100 NOW READ BACK THE LDB RTPTA PORTA MAP REGISTERS LDX NON40 INTO RTPTA XMM WITH XMM NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA LTPTA COMPARE THE PORTA MAP LDB RTPTA LOAD AND READ JSB TBCMP TABLES JSB SMERR DID NOT COMPARE, REPORT ERROR SPC 3 LDA OC140 LOAD THE PORTB MAP REGISTERS LDB LTPTB WITH THE CONTENTS OF LDX OCT40 THE TABLE NAMED LTPTB XMM NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA OC140 NOW READ BACK THE LDB RTPTB PORT B MAP REGISTERS LDX NON40 INTO RTPTB XMM NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA LTPTB COMPARE THE PORTB MAP LDB RTPTB LOAD AND READ JSB TBCMP TABLES JSB SMERR DID NOT COMPARE, REPORT ERROR SPC 1 JSB PTNCG CHANGE THE PATTERN JMP TST.A AND DO AGAIN SKP SPC 1 * BOUNDRY AREA XMM SPC 1 JSB RDZRO ZERO THE READ TABLE LDA OCT33 STARTING WITH REGISTER 27 LDB LTBSU FOR 12 REGISTERS, DO AN LDX DEC12 ACROSS THE BOUNDRIES LOAD XMM NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA OCT33 READ BACK LDB RTBSU THE BOUNDRY AREA LOAD LDX NDN12 INTO RTBSU XMM NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA LTBSU COMPARE THE BOUNDRY LDB RTBSU AREA LOAD AND READ JSB BACMP TABLES JSB BAERR ERROR DETECTED, REPORT. SPC 1 LDA OCT73 STARTING WITH REGISTER 59 LDB LTBUA FOR 12 REGISTERS, DO AN LDX DEC12 ACROSS THE BOUNDRY XMM XMM NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA OCT73 NOW READ BACK THE LDB RTBUA BOUNDRY AREA TO THE LDX NDN12 READ TABLE RTBUA XMM NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA LTBUA COMPARE THE BOUNDRY AREA LDB RTBUA BETWEEN THE USER AND PORTA JSB BACMP MAP REGISTERS JSB BAERR ERROR DETECTED, REPORT IT SPC 2 LDA OC133 STARTING WITH REGISTER 91 LDB LTBAB FOR 12 REGISTERS, DO LDX DEC12 AN ACROSS THE BOUNDRIES XMM XMM NOP SPC 1 LDA OC133 READ BACK THE BOUNDRY LDB RTBAB AREA REGISTERS INTO LDX NDN12 THE READ TABLE AREA XMM NOP SPC 1 LDA LTBAB COMPARE THE TWO TABLES LDB RTBAB FOR PROPER EXECUTION JSB BACMP OF XMM BETWEEN PORTSA&B JSB BAERR ERROR DETECTED, REPORT IT. SKP * ALL MAP REGISTERS XMM - LOAD, READ AND COMPARE SPC 1 JSB RDZRO ZERO THE READ TABLE AREA LDA PTRN1 AND PLACE AN ALTERNATE LDB PTRN2 ONES AND ZEROS PATTERN JSB MKTBL IN THE LOAD TABLE AREA. OCT 074000 NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 CLA LOAD THE ENTIRE CONTENTS LDB LTSYS OF THE LOAD MAP TABLE LDX DE128 INTO THE MAP REGISTERS. XMM NOP SPC 1 CLA NOW READ ALL FOUR MAPS LDB RTSYS INTO THE MEMORY TABLE LDX ND128 NAMED RDTBL. XMM NOP SPC 1 JSB ALCMP COMPARE TABLES JSB XALER ERROR DETECTED, REPORT NOP JMP TST00,I EXIT XMM ROUTINE SPC 5 ND128 DEC -128 TSTA1 OCT 0 TEST 00 SCRATCH PAD 1 TSTA2 OCT 0 TEST 00 SCRATCH PAD 2 TSTA3 OCT 0 TEST 00 SCRATCH PAD 3 TSTA4 DEF LDTBL FAD1 DEF FA1 NSTA3 OCT -1 TSTA5 DEF RDTBL WHCON OCT 0 DEC12 DEC 12 NDN12 DEC -12 OC133 OCT 133 DE128 DEC 128 SKP PTNCG NOP LDA WHCON GET WHICH ONE POINTER CPA OCT01 CHANGE TO PATTERN ZEROS? JMP CH1ST YES, CHANGE THEM CPA OCT02 NO, CHANGE TO ALTERNATE 1S-0S? JMP CH2ND YEP, DO IT CPA OCT03 NO. CHANGE TO ALTERNATE 0S-1S? JMP CH3RD YES, DO ALT. 0S AND 1S. CPA OCT04 NO, HOW ABOUT 3D 1S AND 0S? JMP CH4TH O.K., DO CPA OCT05 NO, THEN IT MUSTBE JMP CH5TH 3D 0S AND 1S. CH1ST JSB LTZRO CLEAR OUT THE LOAD TABLE ISZ WHCON BUMP WHICH ONE POINTER JMP PTNCG,I AND BACK TO ROUTINE SPC 1 CH2ND LDA PTRN1 GET PATTERN ONE LDB A IN THE A&B REGISTERS JSB MKTBL AND PUT IT IN OCT 074000 THE READ TABLE ISZ WHCON BUMP THE WHICH ONE POINTER, JMP PTNCG,I AND BACK TO THE ROUTINE SPC 1 CH3RD LDA PTRN2 GET PATTERN TWO LDB A TABLE WITH AN JSB MKTBL ALTERNATE 1S AND OCT 074000 ZEROS PATTERN ISZ WHCON BUMP WHICH ONE POINTER JMP PTNCG,I AND EXIT SPC 1 CH4TH LDA PTRN1 PUT NEW LDB PTRN2 PATTERN JSB MKTBL IN THE LOAD OCT 074000 TABLE, ISZ WHCON INCREMENT WHICH ONE POINTER JMP PTNCG,I AND EXIT SPC 1 CH5TH LDA PTRN2 PUT NEW REVERSE LDB PTRN1 PATTERN JSB MKTBL IN THE LOAD OCT 074000 TABLE ISZ PTNCG BUMP THE RETURN ADDRESS JMP PTNCG,I AND CONTINUE. SKP SMERR NOP JSB RGSVE SAVE THE REGISTERS LDX REGNR GET FAILING ADDRESS LDY SMERR MAKE THE JSB ERMS,I REPORT XMM DEF E034 FAILURE JSB RGRS2 RESTORE X&Y JMP TCPHR CONTINUE SPC 3 BAERR NOP JSB RGSVE LDX REGNR LDY BAERR JSB ERMS,I REPORT XMM DEF E035 FAILURE JSB RGRS2 JMP BCPHR SPC 5 XALER NOP JSB RGSVE LDX REGNR LDY XALER JSB ERMS,I REPORT XMM DEF E036 FAILURE JSB RGRS2 JMP TCPHR CONTINUE SPC 3 SKP BACMP NOP STA BACM1 INITIALIZE THE LOAD AND READ STB BACM2 REGISTER ADDRESS POINTERS. LDA LTSYS CALCULATE THE CMA,INA STARTING REGISTER ADA BACM1 NUMBER AND PLACE IN STA REGNR THE REGISTER NUMBER LDA NDN12 INITIALIZE THE STA BACM3 XTHRU COUNTER BACM. LDA MAPSK MASK BITS 13-10 AND BACM2,I FROM THE EXPECTED STA B PLACE IN B TO COMPARE LDA MAPSK MASK OFF BITS 13-10 AND BACM1,I FROM THE ACTUAL CPA B AND COMPARE THE TWO JMP *+3 YES, JUMP OVER ERROR JMP BACMP,I PATTERN AND GO REPORT IT. BCPHR NOP CONTINUE UNTIL XTHRU ISZ REGNR BUMP THE REGISTER NUMBER ISZ BACM1 THE READ TABLE POINTER ISZ BACM2 THE LOAD TABLE POINTER ISZ BACM3 THE XTHRU JMP BACM. NO XTHRU, DO AGAIN ISZ BACMP XTHRU COMPLETE, BUMP OVER ERROR JMP BACMP,I AND BACK TO CALLER SPC 1 BACM1 OCT 0 BACM2 OCT 0 BACM3 OCT 0 SPC 3 ALCMP NOP ******************************** LDA LTSYS * * LDB RTSYS * COMPARE * JSB TBCMP * ALL FOUR * JMP ALCMP,I * MAPS * NOP * IF ANY ERROR DETECTED * LDA LTUSR * * LDB RTUSR * REPORT BACK TO CALLER * JSB TBCMP * * JMP ALCMP,I * IF NO ERRORS * LDA LTPTA * DETECTED. * LDB RTPTA * * JSB TBCMP * BUMP RETURN * JMP ALCMP,I * ADDRESS AND * LDA LTPTB * EXIT. * LDB RTPTB * * JSB TBCMP * * JMP ALCMP,I * * ISZ ALCMP * * JMP ALCMP,I ******************************** HED MEM DIAGNOSTIC - LOAD/STORE MAPS * * TEST 03 STARTS WITH THE SYA INSTRUCTION (LOAD SYSTEM MAP) * AND PLACES THE CONTENTS OF LOAD SYSTEM MAP TABLE (LTSYS) * INTO THE SYSTEM MAP REGISTERS. SYA IS USED AGAIN, THIS TIME * USING A NEGATIVE SIGN BIT IN THE TABLE ADDRESS TO READ THE * CONTENTS OF THE SYSTEM MAP REGISTERS INTO THE READ SYSTEM MAP * TABLE (RTSYS). THEN THE LOAD AND READ TABLE CONTENTS ARE * COMPARED TO INSURE PROPER OPERATION AND EXECUTION OF THE SYA * INSTRUCTION. NOW, A DIFFERENT PATTERN IS ESTABLISHED IN THE * LOAD SYSTEM MAP TABLE AND THE PROCESS IS REPEATED THIS TIME * USING SYB, WHICH IS THE B-REGISTER COUNTERPART OF SYA. * * THIS SAME SCHEME IS REPEATED USING INSTRUCTIONS AND LOAD AND * READ TABLES TO INSURE PROPER EXECUTION OF: * * USA LOAD/READ USER MAP FROM/TO THE A-REGISTER * USB LOAD/READ USER MAP FROM/TO THE B-REGISTER * * PAA LOAD/READ PORTA MAP FROM/TO THE A-REGISTER * PAB LOAD/READ PORTA MAP FROM/TO THE B-REGISTER * * PBA LOAD/READ PORTB MAP FROM/TO THE A-REGISTER * PBB LOAD/READ PORTB MAP FROM/TO THE B-REGISTER * * WHEN THESE EIGHT INSTRUCTIONS HAVE BEEN VERIFIED FOR PROPER * EXECUTION.INDIVIDUALLY, THEY ARE TESTED TO MAKE SURE THEY * DO NOT INTERFERE WITH THE EXECUTIONS OF ONE ANOTHER, AND THE * TEST IS EXITED. * * * CALLING SEQUENCE: LDA/B TABLE * SYA/B * * * * IF AN ERROR IS DETECTED WHILE EXECUTING TST03, THE ERROR CODE * AND FAILING INSTRUCTION ARE OUTPUT ON THE COUNSOLE, AND THE * PROGRAM HALTS THE COMPUTER. AT THIS TIME THE T,A,B,X AND Y * REGISTERS CAN BE INTERROGATED TO DETERMINE THE CAUSE AND * LOCATION OF THE ERROR, AND WHERE IN THE PROGRAM IT WAS * DETECTED. * * THE FORMAT FOR DETERMINING THESE CONDITIONS AND LOCATION IS AS * FOLLOWS: * * T REGISTER = HALT CODE * A REGISTER = GOOD PATTERN * B REGISTER = BAD PATTERN * X REGISTER = FAILING REGISTER NUMBER * Y REGISTER = ADDRESS OF FAILURE SKP TST03 EQU * SPC 1 NOP JSB CLTBL ZERO BOTH LOAD AND READ TABLES LDA PTRN1 ESTABLISH THE LDB PTRN2 FIRST PATTERN JSB MKTBL IN THE LOAD MAP OCT 040000 TABLE SPC 1 LDA LTSYS LOAD THE SYSTEM MAP REGISTERS SYA USING THE SYA INSTRUCTION NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA RTSYS READ THE SYSTEM MAP REGISTERS IOR MASKO INTO THE CONTENTS OF THE SYA SYSTEM READ TABLE NOP SPC 1 LDA LTSYS GET THE LOAD AND LDB RTSYS READ TABLE POINTERS JSB TBCMP AND COMPARE THE TWO. JSB SYAER ERROR DETECTED, REPORT IT. JSB CLTBL ZERO THE LOAD/READ TABLES SPC 2 LDA PTRN2 ESTABLISH THE SECOND LDB PTRN1 PATTERN IN JSB MKTBL THE LOAD MAP OCT 040000 TABLE LDB LTSYS LOAD THE SYSTEM MAP REGISTERS SYB USING SYB NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA RTSYS SET UP ADDRESS WITH THE IOR MASKO NEGATIVE SIGN BIT LDB A AND TRANSFER TO B-REGISTER. SYB READ THE SYSTEM MAP INTO RTSYS NOP SPC 1 LDA LTSYS COMPARE THE LOAD LDB RTSYS AND READ TABLES TO JSB TBCMP VERIFY PROPER EXECUTION JSB SYBER ERROR DETECTED, REPORT SKP JSB CLTBL ZERO LOAD AND READ TABLES LDA PTRN1 ESTABLISH PATTERN 1 LDB PTRN2 IN THE LOAD TABLE JSB MKTBL FOR THE USER MAP OCT 020000 REGISTERS. LDA LTUSR EXECUTE THE USA INSTRUCTION USA NOP SPC 1 LDA RTUSR NOW READ THE USER MAP REGISTERS IOR MASKO INTO THE CONTENTS OF THE READ USA TABLE USING USA NOP SPC 1 LDA LTUSR COMPARE THE LOAD AND LDB RTUSR READ TABLES TO VERIFY PROPER JSB TBCMP EXECUTION OF THE USA INST. JSB USAER ERROR DETECTED, REPORT SPC 2 LDA PTRN2 ESTABLISH PATTERN TWO LDB PTRN1 IN THE LOAD TABLE JSB MKTBL FOR THE USER MAP OCT 020000 REGISTERS. LDB LTUSR LOAD THE USER MAP REGISTERS WITH USB LOAD TABLE CONTENTS USING USB NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA RTUSR NOW READ THE USER MAP REGISTERS IOR MASKO INTO THE RTUSR TABLE POINTER LDB A TO BY THE CONTENTS USB OF THE B REGISTER NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA LTUSR COMPARE THE LOAD AND LDB RTUSR READ TABLES TO VERIFY JSB TBCMP PROPER EXECTUION OF USB JSB USBER ERROR DETECTED, REPORT. SKP JSB CLTBL ZERO THE LOAD AND READ TABLES LDA PTRN1 ESTABLISH PATTERN ONE LDB PTRN2 IN THE LOAD TABLE JSB MKTBL FOR THE PORTA MAP OCT 010000 REGISTERS LDA LTPTA EXECUTE THE PAA INSTRUCTION WITH PAA PAA NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA RTPTA READ THE PORTA MAP REGISTERS IOR MASKO INTO THE CONTENTS OF THE READ PAA TABLE USING PAA NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA LTPTA COMPARE THE TWO TABLES TO LDB RTPTA VERIFY PROPER EXECUTION OF JSB TBCMP THE PAA INSTRUCTION. JSB PAAER ERROR DETECTED, REPORT SPC 2 LDA PTRN2 NOW REVERSE THE PATTERN LDB PTRN1 IN THE PORTA LOAD TABLE JSB MKTBL TO ESTABLISH A PATTERN OCT 010000 TO CHECK PAB LDB LTPTA EXECUTE THE PAB INSTRUCTION WITH PAB PAB NOP SPC 1 LDA RTPTA READ BACK INTO THE READ TABLE IOR MASKO USING THE PAB INSTRUCTION LDB A AND THE NEGATIVE PAB ADDRESS POINTER NOP SPC 1 LDA LTPTA COMPARE THE TWO TABLES TO LDB RTPTA VERIFY PROPER EXECUTION OF JSB TBCMP THE PAB INSTRUCTION. JSB PABER ERROR DETECTED, REPORT. SKP JSB CLTBL ZERO THE LOAD AND READ TABLES LDA PTRN1 ESTABLISH PATTERN ONE LDB PTRN2 IN THE LOAD TABLE JSB MKTBL CONTENTS OF THE OCT 4000 PORTB MAP LDA LTPTB EXECUTE THE PBA INSTRUCTION PBA LOADING THE PORTB MAP NOP SPC 1 LDA RTPTB NOW, USING THE NEGATIVE SIGN IOR MASKO BIT OF THE POINTER, REVERSE PBA DIRECTION OF THE INSTRUCTION NOP SPC 1 LDA LTPTB COMPARE THE TWO TABLES CONTENTS LDB RTPTB TO VERIFY PROPER EXECUTION OF JSB TBCMP THE PBA INSTRUCTION JSB PBAER ERROR DETECTED, REPORT SPC 2 LDA PTRN2 REVERSE THE PATTERN LDB PTRN1 IN THE LOAD TABLE JSB MKTBL CONTENTS OF THE OCT 4000 PORTB MAP. LDB LTPTB EXECUTE THE PBB INSTRUCTION PBB NOP SPC 1 LDA RTPTB REVERSE THE SIGN BIT OF IOR MASKO THE BREG POINTER, AND LDB A EXECUTE THE PBB PBB NOP SPC 1 LDA LTPTB COMPARE THE TWO TABLES TO LDB RTPTB VERIFY PROPER EXECUTION OF JSB TBCMP THE PBB INSTRUCTION JSB PBBER ERROR DETECTED, REPORT. SKP JSB RDZRO CLEAR THE READ TABLE LDA PTRN1 LOAD ALTERNATE LDB A ONES AND ZEROS JSB MKTBL INTO THE LOAD OCT 040000 SYSTEM TABLE LDA PTRN2 LOAD ALTERNATE LDB A ZEROS AND ONES JSB MKTBL INTO THE LOAD OCT 020000 USER TABLE LDA PTRN1 LOAD AN ALTERNATE ONES- LDB PTRN2 ZEROS THEN ZEROS-ONES JSB MKTBL PATTERN INTO THE OCT 010000 LOAD PORTA TABLE LDA PTRN2 LOAD AN ALTERNATE ZEROS- LDA PTRN1 ONES,THEN ONES-ZEROS JSB MKTBL PATTERN INTO THE OCT 04000 LOAD PORTB TABLE NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDB LTSYS LOAD SYSTEM MAP REGISTERS SYB * LDB LTUSR LOAD USER MAP REGISTERS USB * LDB LTPTA LOAD THE PORTA MAP REGISTERS PAB * LDB LTPTB LOAD THE PORTB MAP REGISTERS PBB * LDA RTSYS READ BACK IOR MASKO THE SYSTEM MAP REGISTERS SYA * LDA RTUSR READ BACK THE IOR MASKO USER MAP REGISTERS USA * LDA RTPTA READ BACK THE IOR MASKO PORTA MAP REGISTERS PAA * LDA RTPTB READ BACK THE IOR MASKO PORTB MAP REGISTERS PBA * SKP JSB ALCMP COMPARE ALL FOUR MAPS JSB INFER ERROR DETECTED, REPORT LDA RTPTB NOW REVERSE THE IOR MASKO SEQUENCE PBA INTERFERENCE LDA RTPTA CHECK IOR MASKO FOR PAA OVERLAY LDA RTUSR OF IOR MASKO REGISTER USA CONTENTS LDA RTSYS * IOR MASKO * SYA SPC 1 JSB ALCMP COMPARE ALL FOUR MAPS JSB INFER INTERFERENCE ERROR DETECTED. NOP CHANGE TO JMP *-N FOR LOOP/ JMP TST03,I EXIT. SKP SYAER NOP JSB RGSVE LDX REGNR LDY SYAER JSB ERMS,I REPORT SYA DEF E037 FAILURE JSB RGRS2 JMP TCPHR SPC 2 SYBER NOP JSB RGSVE LDX REGNR LDY SYBER