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