LDA STN02 GET THE EXPECTED STATUS JSB STERB AND REPORT THE ERROR UJP *+2 SPC 1 NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 LDA IRAD1 SET UP THE INTERRUPT STA ADLNK RETURN ADDRESS JSB CAINT NOP SKP TSTE1 NOP AN INTERRUPT SHOULD BRING US TO CLF INTP THIS POINT. TURN OFF THE INT EIO01 CLC DVICE SYSTEM AND THE INT DEVICE RSA READ STATUS REGISTER AND EMSK3 STRIP OFF BITS 0-10 CPA STN03 PROPER STATUS? JMP *+7 YES, OVER THE ERROR DJP *+2 OFF MEM FOR ERROR LDB STN03 NO, GET EXPECTED STATUS JSB STERA AND REPORT THE ERROR UJP *+2 USER BACK ON AFTER ERROR SPC 1 RSB READ STATUS TO B-REGISTER LDA EMSK3 GET MASK VALUE AND B STRIP OFF DONT CARE BITS CPA STN03 TEST FOR CORRECT STATUS JMP *+5 OK, OVER ERROR DJP *+2 CRASH, OFF FOR REPORT LDA STN03 GET THE EXPECTED STATUS VALUE JSB STERB AND REPORT THE ERROR SPC 1 NOP CHANGE TO JMP *-N FOR LOOP/ SJP *+7 ENABLE THE SYSTEM MAP DJP *+2 DISABLE IF ERROR OCCURRED JSB TEER3 REPORT SJP DIDNT CAUSE JUMP SJP *+2 RE-ENABLE AFTER ERROR LDA IRAD2 SET UP THE NEXT STA ADLNK LINK ADDRESS ON BASE PAGE JSB CAINT GO CAUSE AN INTERRUPT. NOP TSTE2 NOP CLF INTP TURN THE INTERRUPT SYSTEM OFF EIO02 CLC DVICE AND TURN THE DEVICE OFF NOP CHANGE TO JMP *-N FOR LOOP/ RSA READ STATUS REGISTER AND EMSK3 STRIP UNNECESSARY BITS CPA STN04 PROPER STATUS WORD? JMP *+7 YES, OVER THE ERROR DJP *+2 NO, OFF MEM FOR ERROR REPORT LDB STN04 GET THE EXPECTED STATUS, JSB STERA AND REPORT THE ERROR SJP *+2 BACK ON AFTER ERROR SPC 1 RSB READ STATUS TO B LDA EMSK3 GET DONT CARE MASK AND B AND STRIP OFF DONT CARE BITS CPA STN04 TEST FOR CORRECT STATUS JMP *+5 OVER ERROR DJP *+2 OFF SYSTEM TO REPORT ERROR LDA STN04 GET THE EXPECTED VALUE JSB STERB AND REPORT THE ERROR SKP NOP CHANGE TO JMP *-N FOR LOOP/ DJP *+3 DISABLE MEM AND JUMP *+3 JSB TEER1 REPORT DJP FAILED TO JUMP LDA IRAD3 SET UP THE NEXT INTERRUPT STA ADLNK ADDRESS ON THE BASE PAGE CLA ZERO THE STA TECNT FALL THRU COUNTER JSB CAINT AND GO CAUSE AN INTERRUPT NOP CHANGE TO JMP *-N FOR LOOP/ SPC 1 TSTE3 NOP CLF INTP TURN OFF INTERRUPT EIO03 CLC DVICE SYSTEM AND DEVICE RSA READ STATUS REGISTER AND STN04 STRIP DON'T CARE BITS SZA,RSS STATUS SHOULD = ZERO JMP *+3 CLB GET EXPECTED VALUE IN B JSB STERA AND REPORT THE ERROR SPC 1 RSB GET THE STATUS IN B NOP CHANGE TO JMP *-N FOR LOOP/ LDA STN04 PUT MASK VALUE IN A AND B AND STRIP OFF DONT CARE BITS SZA,RSS TEST FOR CORRECT STATUS JMP *+3 CLA NOW GET EXPECTED STATUS JSB STERB AND REPORT THE ERROR SPC 1 NOP CHANGE TO JMP *-N FOR LOOP/ LDA IRAD4 PUT PROPER INDIRECT TARGET STA ADLNK ADDRESS IN THE ADDRESS LINK LDA IRAD5 AND IN SELECT CODE 5 STA M5LNK INTERRUPT LINK ADDRESS LDA OCT2K SET MPT FENCE OTA MEMSC AT 2000 NOP CHANGE TO JMP *-N FOR LOOP/ SKP STF INTP INTERRUPT SYSTEM ON STC MEMSC MEM PROTECT FEATURES ON RSA READ STATUS REGISTER AND EMSK4 MASK DONT CARE BITS SZA,RSS TEST FOR BIT 11 JMP *+4 YES, OVER THE ERROR LDB EMSK4 NO, GET THE PROPER STATUS WORD STB STEAP PUT DONT CARE MASK IN THE JSB JSB STERA AND REPORT THE ERROR SPC 1 RSB NOW READ STATUS TO B LDA EMSK4 GET THE MASK VALUE AND B STRIP OFF THE DONT CARE BITS SZA,RSS TEST FOR BIT 11 JMP *+4 OK, OVER THE ERROR LDA EMSK4 PHONEY STATUS DETECTED. STA STEBP PUT IT IN THE ERROR JSB JSB STERB AND REPORT THE ERROR SPC 2 NOP LDA CPTO CHECK TO SEE IF MPT AND OCT40 OPTION IS INSTALLED SZA,RSS IN THE COMPUTER JMP TSTE5+1 NO, OVER THIS TEST CLF INTP OFF INTERRUPT SYSTEM EIO04 STF DVICE MAKE THE DEVICE INTERRUPT EIO4A STC DVICE WHEN THE INTERRUPT SYSTEM IS ON STF INTP ON THE INTERRUPT SYSTEM NOP WAIT FOR INTERRUPT TO NOP OCCUR NOP CHANGE TO JMP *-N FOR LOOP/ CLF INTP OFF INT SYS TO REPORT FAILURE JSB ERMS,I MEM ALLOWED THE STC DEF E064 TO START PROCESSING JMP TSTE5+1 CONTINUE SPC 1 TSTE4 NOP IF WE GOT HERE, MEM PROTECT CLF INTP JSB ERMS,I FEATURES ALLOWED THE DEVICE DEF E065 TO INTERRUPT SPC 1 SKP TSTE5 NOP CLF INTP TURN OFF INTERRUPT SYSTEM CLF MEMSC TURN OFF MEM AND MPR EIO05 CLC DVICE DISALLOW INTERRUPT OF DVICE NOP CHANGE TO JMP *-N FOR LOOP/ RSA READ STATUS REGISTER AND EMSK4 STRIP DONT CARE BITS SZA,RSS BIT 11? JMP *+5 NO, GO AHEAD LDB EMSK4 ERROR, PM STILL ON STB STEAP PLACE MASK4 IN ERROR ROUTINE CLB GET EXPECTED STATUS JSB STERA AND REPORT ERROR SPC 1 RSB NOW READ STATUS TO B LDA EMSK4 GET MASK VALUE AND PLACE IT AND B IN THE ERROR ROUTINE SZA,RSS TEST FOR BIT 11 JMP *+5 GONE, OVER THE ERROR HANDLING LDA EMSK4 GET THE DONT CARE MASK STA STEBP AND PUT IT IN THE ERROR ROUTINE CLA EXPECTED STATUS, AND JSB STERB REPORT ON CONSOLE SPC 1 NOP CHANGE TO JMP *-N FOR LOOP/ CCA MAKE A REGISTER ALL ONES LFA LOAD FENCE NOP CHANGE TO JMP *-N FOR LOOP/ RSA READ STATUS REGISTER STA STEBP SAVE IN CASE OF ERROR AND EMSK5 MASK BITS 15-11 CPA EMSK5 GET THEM ALL BACK? JMP *+3 YES, HOP OVER ERROR LDB EMSK5 NO, PUT PROPER STATUS IN JSB LFAER B REGISTER, AND REPORT SPC 1 NOP CHANGE TO JMP *-N FOR LOOP/ LDA FPTN1 GET ALT 1S 0S PATTERN LFA LOAD THE FENCE NOP CHANGE TO JMP *-N FOR LOOP/ RSA READ STATUS REGISTER STA STEBP SAVE IN CASE OF ERROR AND EMSK5 LEAVE ONLY THE FENCE BITS CPA FPTN1 SAME AS LOADED? JMP *+3 YES, JUMP OVER ERROR LDB FPTN1 NO, GET VALID PATTERN FOR DISPLY JSB LFAER AND REPORT THE ERROR SKP LDA FPTN2 GET ALT 0S AND 1S PATTERN LFA LOAD THE FENCE NOP RSA READ STATUS REGISTER STA STEBP AND EMSK5 LEAVE ONLY THE FENCE BITS CPA FPTN2 SAME PATTERN AS LOADED? JMP *+3 YES, GO ON LDB FPTN2 NO, GET CORRECT PATTERN JSB LFAER AND REPORT SPC 1 LDA PTNPR INITIALIZE THE PATTERN STA EPAD1 TABLE POINTER AND LDA NDN04 THE TIMES THRU STA EPAD2 COUNTER NOP CHANGE TO JMP *-N FOR LOOP/ TSTE6 LDA EPAD1,I GET PATTERN 1 LFA LOAD THE FENCE REGISTER BITS RSB READ STATUS REG TO B NOP CHANGE TO JMP *-N FOR LOOP/ RSA READ STATUS REG TO A STA STEBP CPA B AND COMPARE THE TWO JMP *+2 COMPARES OK, JUMP OVER ERROR HLT JSB LFAER REPORT THE ERROR LDB EPAD1,I PUT THE SAME PATTERN INTO THE LFB FENCE USING B REGISTER LOAD NOP CHANGE TO JMP *-N FOR LOOP/ RSA PLACE STATUS REGISTER CONTENTS STA STEBP RSB IN A AND B REGISTER TO COMPARE CPA B AND COMPARE THE TWO JMP *+2 COMPARE OK. JSB LFBER REPORT LFB FAILURE ISZ EPAD1 BUMP THE POINTER ISZ EPAD2 AND XTHRU COUNTER JMP TSTE6 AND GO BACK FOR DIFFERENT PTN SKP NOP CHANGE TO JMP *-N FOR LOOP/ UJP *+2 ENABLE USER MAP LDA EPTN1 THE STATUS REGISTER LFA SHOULD NOW BE 0011001010101010 SPC 1 SSM STLOC SSM IN STATUS HOLD LOCATION NOP CHANGE TO JMP *-N FOR LOOP/ LDA STLOC GET THE PATTERN STORED BY SSM AND EMSK6 LEAVE ONLY THE FENCE REGISTER CPA EPTN1 CORRECT VALUE? JMP *+7 YES, OVER THE ERROR DJP *+2 LDB EPTN1 NO, GET THE EXPECTED STATUS STB SSER1 AND PLACE IN ERROR ROUTINE LDB STLC. GET THE ADDRESS JSB SSMER AND REPORT THE ERROR SPC 1 UJP *+2 REENABLE USER MAP LDA EPTN2 CHANGE THE STATUS REGISTER LFA VALUE TO 0011000101010101 SPC 1 SSM STLC.,I SSM INDIRECT TO STLOC NOP CHANGE TO JMP *-N FOR LOOP/ LDA STLOC GET THE PATTERN STORED,I AND EMSK6 LEAVE ONLY THE FENCE REGISTER CPA EPTN2 CORRECT VALUE? JMP *+9 YES, OVER THE ERROR DJP *+2 LDB EPTN2 NO, GET THE EXPECTED STATUS STB SSER1 AND PLACE IN ERROR ROUTINE LDB STLC. GET THE ADDRESS JSB SSMER AND REPORT THE ERROR UJP *+2 BACK ON AFTER ERROR REPORT SPC 1 LDA NO140 INITIALIZE AN OCTAL STA EPAD1 140 XTHRU COUNTER LDA STN01 INITIALIZE A POINTER STA EPAD2 TO ADDRESS 20K SSM EPAD2,I STORE STATUS REG IN EPAD2,I ISZ EPAD2 BUMP THE ADDRESS POINTER ISZ EPAD1 AND XTHRU COUNTER JMP *-4 DO AGAIN UNTIL XTHRU ROLLS OVER NOP CHANGE TO JMP *-N FOR LOOP/ SKP SPC 1 LDA STN01 REINITIALIZE THE STA EPAD2 POINTER AND LDA NO140 THE STA EPAD1 COUNTER NOP .SSMH LDA EPAD2,I GET THE SSMHD WORD AND EMSK6 STRIP THE UNNEEDED BITS NOP CPA EPTN2 SSM PATTERN? JMP *+9 YES, OVER THE ERROR DJP *+2 NO, OFF FOR ERROR LDB EPAD2 PUT THE ADDRESS STB SSER1 IN THE ERROR ROUTINE LDB EPAD2 GET THE EXPECTED STATUS JSB SSMER AND REPORT THE ERROR UJP *+2 BACK ON AFTER ERROR NOP CHANGE TO JMP *-N FOR LOOP/ ISZ EPAD2 BUMP THE POINTER ISZ EPAD1 AND XTHRU? JMP .SSMH NO, DO AGAIN SPC 1 LDA NO140 INITIALIZE AN STA EXTHR XTHRU COUNTER .JRS. DJP *+2 DISABLE M.E.M. CLF INTP LDA IRAD8 PUT NEXT ADDRESS STA ADLNK IN LINK ADDRESS JSB CAINT AND CAUSE AN INTERRUPT RTAD8 CLF INTP EIO10 CLC DVICE,C CLA ZERO A CLB AND B LFA AND FENCE STA STLOC AND STATUS LOCATION ADDRESS STA MEMSC AND MEM TRAP CELL RSA MAKE SURE THE STATUS SZA REGISTER IS ALL ZEROS JSB STERA WHOOPS, SOME THINGS WRONG NOP OK, NOW TRY THE JRS JRS STLOC CNTU1 JRS IN STLOC TO CONTINUE 1 NOP CHANGE TO JMP *-N FOR LOOP/ JSB TEER7 JRS DIDNT CAUSE JUMP NOP CHANGE TO JMP *-N FOR LOOP/ SKP CNTU1 RSA GET STATUS NOP SZA,RSS STILL ZERO? JMP *+5 YES, OVER THE ERROR CLB NO, GET EXPECTED STATUS LDX STLC. AND THE ADDRESS JSB JRSER THEN REPORT THE ERROR NOP CHANGE TO JMP *-N FOR LOOP/ LDA IRAD6 PUT NEXT ADDRESS IN STA ADLNK THE ADDRESS LINK NOP UJP *+2 ENABLE THE USER RSA MAKE SURE THE USER IS ON AND STN05 IF NOT, CPA STN05 REPORT THE ERROR JMP *+7 OVER THE ERROR HANDLING DJP *+2 DISABLE FOR ERROR REPORT LDB STN05 JSB STERA UJP *+2 REENABLE AFTER ERROR NOP LDA STN06 PUT NEXT STATUS STA STLOC INTO THE STATUS LOCATION JSB CAINT IF SO, CAUSE AN INTERRUPT NOP CHANGE TO JMP *-N FOR LOOP/ RTAD6 CLF INTP DISALLOW EIO08 CLC DVICE,C FURTHER INTERRUPTS NOP CHANGE TO JMP *-N FOR LOOP/ SJP *+2 GET INTO THE SYSTEM RSA GET THE STATUS REGISTER AND STN06 STRIP BITS 13-0 CPA STN06 CORRECT STATUS IN 15 AND 14? JMP *+7 YES, OVER THE ERROR DJP *+2 LDB STN07 NO, GET THE EXPECTED RESULTS JSB STERA AND REPORT THE ERROR SJP *+2 RE-ENABLE AFTER ERROR NOP CHANGE TO JMP *-N FOR LOOP JRS STLOC EADDR JRS USING STLOC TO EADDR NOP CHANGE TO JMP *-N FOR LOOP/ DJP *+2 CRASH IF STS RESTORED BUT NO JMP JSB TEER7 JRS DIDNT JUMP, REPORT SJP *+2 RE-ENABLE AFTER ERROR SKP EADDR RSA GET THE STATUS REGISTER NOP AND STN03 CPA STN03 JMP *+7 OVER THE ERROR DJP *+2 OFF FOR ERROR LDX STLC. GET ADDRESS FOR DISPLAY LDB STN03 JSB JRSER REPORT JRS FAILURE SPC 1 NOP SJP *+2 ENABLE THE SYSTEM AREA LDA IRAD7 PUT NEXT CONTINUATION ADDRESS STA ADLNK INTO THE LINK LDA STN07 PLACE MEM ON AT LAST INT(SYS) STA STLOC INTO RESTORE STATUS LOCATION NOP CHANGE TO JMP *-N FOR LOOP/ JSB CAINT CAUSE AN INTERRUPT NOP RTAD7 CLF INTP EIO09 CLC DVICE,C JRS STLOC CNTU2 JRS STLOC TO EADRS NOP CHANGE TO JMP *-N FOR LOOP/ DJP *+2 JSB TEER7 REPORT JRS DIDN'T JUMP SJP *+2 NOP CHANGE TO JMP *-N FOR LOOP/ CNTU2 RSA NOW GET STATUS REGISTER AND EMSK3 STRIP OFF DONT CARE BITS CPA STN07 CORRECT STATUS RESTORED? JMP *+9 OVER THE ERROR DJP *+2 LDX STLC. GET ADDRESS FOR ERROR ROUTINE LDB STN07 AND EXPECTED PATTERN JSB JRSER REPORT THE ERROR SJP *+2 NOP CHANGE TO JMP *-N FOR LOOP/ ISZ EXTHR DONE? JMP .JRS. NO, DO UNTIL EXTHR ROLLS OVER NOP DJP *+2 OFF THE M.E.M. CLF INTP AND THE INTERRUPT SYSTEM NOP JMP TST04,I SKP EMSK6 OCT 1777 EPINT DEF EPTN1 EPTN1 OCT 1466 EPTN2 OCT 333 OCT 1252 OCT 0525 STLOC OCT 0 STLC. DEF STLOC STEAP OCT 0 STEBP OCT 0 SSER1 OCT 0 SPC 2 TEER1 NOP LDY TEER1 JSB ERMS,I REPORT DJP DEF E050 FAILURE JMP TEER1,I SPC 1 TEER2 NOP LDY TEER2 JSB ERMS,I REPORT DJS DEF E051 FAILURE JMP TEER2,I MESSAGE SPC 1 TEER3 NOP LDY TEER3 JSB ERMS,I REPORT SJP DEF E052 FAILURE JMP TEER3,I MESSAGE SPC 1 TEER4 NOP LDY TEER4 JSB ERMS,I REPORT SJS DEF E053 FAILURE JMP TEER4,I MESSAGE SPC 1 TEER5 NOP LDY TEER5 JSB ERMS,I REPORT UJP DEF E054 FAILURE JMP TEER5,I MESSAGE SPC 1 TEER6 NOP LDY TEER6 JSB ERMS,I REPORT UJS DEF E055 FAILURE JMP TEER6,I MESSAGE SPC 1 TEER7 NOP LDY TEER7 JSB ERMS,I REPORT JRS DEF E056 FAILURE JMP TEER7,I SKP JRSER NOP JSB RGSVE LDY JRSER JSB ERMS,I REPORT JRS DEF E057 FAILURE JSB RGRS2 JMP JRSER,I SPC 1 SSMER NOP JSB RGSVE LDY SSMER JSB ERMS,I REPORT SSM DEF E060 FAILURE JSB RGRS2 JMP SSMER,I SPC 1 DJSER NOP LDY DJSER GET THE FAIL FLAG JSB ERMS,I AND REPORT DJS PLACED DEF E061 AN INCORRECT RETURN ADDRESS JMP DJSER,I SPC 1 SJSER NOP LDY SJSER GET THE FAIL FLAG JSB ERMS,I AND REPORT SJS PLACED DEF E062 AN INCORRECT RETURN ADDRESS JMP SJSER,I SPC 1 UJSER NOP LDY UJSER GET THE FAIL FLAG JSB ERMS,I AND REPFORT UJS PLACED DEF E063 AN INCORRECT RETURN ADDRESS JMP UJSER,I SPC 1 STERA NOP JSB RGSVE LDX STEAP GET THE DONT CARE MASK LDY STERA MAKE ADDRESS OF JSB ERMS,I REPORT STATUS DEF E064 ERROR JSB RGRS2 RESTORE X&Y JMP STERA,I SKP STERB NOP JSB RGSVE LDY STEAP LDX STEBP JSB ERMS,I REPORT RSB DEF E065 FAILURE JSB RGRS2 JMP STERB,I SPC 1 LFAER NOP JSB RGSVE LDX STEBP LDY LFAER JSB ERMS,I REPFORT LFA DEF E066 FAILURE JSB RGRS2 JMP LFAER AND EXIT SPC 1 LFBER NOP JSB RGSVE LDY LFBER LDX STEBP JSB ERMS,I REPORT LFB DEF E067 FAILURE JSB RGRS2 JMP LFBER,I SKP SPC 2 EMSK1 OCT 024000 TEST 04 MASK 1 RTAD2 DEF RTAD1 RETURN ADDRESS FOR DIS 1 EMSK2 OCT 034000 TEST 04 MASK 2 STN01 OCT 20000 STATUS REGISTER CONSTANT 1 RTAD4 DEF RTAD3 STN02 OCT 30000 R.TA5 DEF RTAD5 EMSK3 OCT 174000 STN03 OCT 160000 IRAD2 DEF TSTE2 STN04 OCT 120000 IRAD8 DEF RTAD8 IRAD3 DEF TSTE3 IRAD4 DEF TSTE4 IRAD5 DEF TSTE5 STN05 OCT 030000 IRAD6 DEF RTAD6 STN06 OCT 140000 IRAD7 DEF RTAD7 EMSK4 OCT 40000 EMSK5 OCT 3777 PTNPR DEF FPTNS EPAD1 OCT 0 EPAD2 OCT 0 NDN04 DEC -4 STN07 OCT 120000 EXTHR OCT 0 FPTNS OCT 0 OCT -1 FPTN1 OCT 2525 FPTN2 OCT 1252 IRAD1 DEF TSTE1 TECNT OCT 0 HED DCPC PORTS ENABLE TEST * * TST15 * * TEST 15 VERIFIES PROPER OPERATION OF THE HARDWARE AND FIRMWARE * REQUIRED TO ENABLE THE PORT A AND PORT B MAPS DURING A MAPPED * DCPC TRANSFER. * * TEST 15 IS MADE UP OF TWO SUBTESTS WHICH CAUSE DCPC TRANSFERS, * AND CHECK THE APPROPRIATE MAPPED ADDRESS TO ENSURE THE * CORRECT PORT MAP WAS ENABLED. * * IF AN ERROR IS DETECTED DURING THE EXECUTION OF TEST NN, AN * ERROR MESSAGE WILL BE OUTPUT ON THE CONSOLE, AND THE PROGRAM * WILL HALT THE COMPUTER. AT THIS TIME, THE OPERATOR CAN * DETERMINE THE CAUSE OF THE ERROR BY CHECKING THE FOLLOWING * REGISTERS: * * T REGISTER = ERROR CODE * Y REGISTER = ADDRESS OF FAILURE * *A REGISTER = ACTUAL PATTERN * *B REGISTER = EXPECTED PATTERN * *X REGISTER = PHYSICAL ADDRESS OF FAILING PATTERN * * * ONLY IF THE ERROR IS A DATA ERROR * SKP TST15 EQU * SPC 1 NOP JSB LODUP LOAD THE MAPS JSB ZORCH INTERRUPT CELLS JSB KFNCE AND FENCES SPC 1 LDA O1C01 NOW LOAD