DISCLAIMER This document file was created by scanning the original document and then editing the scanned text. As much as possible, the original text format was restored. The original page breaks have been removed. The original spelling and grammar has been preserved. The assembler listing of the original document is not included in this document. B. Baehr (bb@balloo.han.de), Feb. 22, 1999 PRODUCT CODE: MAINDEC-8E-D0MB-D PRODUCT TEST: KE8-E (EAE) INSTRUCTION TEST 2 MULTIPLY AND DIVIDE DATE CREATED: FEBRUARY 9, 1972 MAINTAINER: DIAGNOSTIC GROUP AUTHOR: ED FORTMILLER COPYRIGHT © 1972 DIGITAL EQUIPMENT CORPORATION 1. ABSTRACT -------- THE PDP-8/E EAE (KE8-E) MULTIPLY-DIVIDE TEST, TESTS AND EXERCISES THE MULTIPLY AND DIVIDE HARDWARE OF THE KE8-E OPTION. FIXED NUMBERS WITH PREDETERMINED SOLUTIONS, AND RANDOM NUMBERS WITH SIMULATED SOLUTIONS ARE USED. THE ABILITY TO OPERATE WITH THE INTERRUPT ENABLED IS ALSO TESTED. 2. REQUIREMENTS ------------ 2.1 EQUIPMENT --------- PDP-8/E OR /M PROCESSOR, KE8-E OPTION, AND AN ASR 33/35 TELETYPE ARE REQUIRED. 2.2 STORAGE ------- LOCATIONS 0000 THROUGH 7570 ARE USED. 2.3 PRELIMINARY PROGRAMS -------------------- ALL PROCESSOR RELATED TEST PROGRAMS MUST HAVE BEEN RUN SUCCESSFULLY. THIS PROGRAM ASSUMES THAT THE PROCESSOR AND TELE- TYPE ARE OPERATING CORRECTLY, AND THAT ALL OTHER KE8-E INSTRUCTIONS OTHER THAN "MUY" AND "DVI" HAVE BEEN TESTED AND OPERATE CORRECTLY. 3. LOADING PROCEDURE -----------------3.1 METHOD ------ THE BINARY LOADER IS USED TO LOAD THE PROGRAM INTO ANY DESIRED FIELD.4. STARTING PROCEDURE ------------------4.1 CONTROL SWITCH SETTINGS ----------------------- SR0=1 HALT AFTER CURRENT ROUTINE. PROGRAM HALTS AT THE COMPLETION OF THE CURRENT TEST ROUTINE. THE COMPLETED ROUTINE NUMBER IS DISPLAYED IN THE AC. SR1=0 SELECT MODE OF OPERATION ACCORDING TO SR10 AND SR11. SR1=1 SELECT THE ROUTINE NUMBER WHICH IS IN SR9-11. IF WHILE RUNNING THE PROGRAM SR1 IS SET TO A "1", THE PROGRAM WILL HALT WITH THE CURRENT ROUTINE NUMBER DISPLAYED IN THE AC. TO SELECT A NEW ROUTINE AT THIS POINT, PLACE THE NEW DESIRED ROUTINE IN SR9-11 AND PRESS CONTINUE, THE NEW ROUTINE NUMBER WILL NOW BE DISPLAYED IN THE AC. SR2=1 LOOP ROUTINE. CURRENT ROUTINE IS REPEATED.SR3=1 LOOP PROGRAM. ENTIRE PROGRAM IS REPEATED.SR4=1 LOCK ON TEST. THE TEST CURRENTLY BEING EXECUTED IS REPEATED.SR5=0 PRINT ON ERROR.SR5=1 HALT ON ERROR.SR6=1 HALT AFTER PRINT. PROGRAM HALTS AFTER ERROR PRINTOUT.SR7=1 PRINT FAILURE RATE. THE PROGRAM PRINTS THE NUMBER OF FAILURES PER HUNDRED REPETITIONS OF THE SAME TEST. PROGRAM HALTS AFTER THE PRINTOUT. SR5 MUST BE SET FOR THE PRINTOUT TO OCCUR.SR8=1 PRINT SIMULATION AND/OR ENTER SCOPE LOOP. FOR ROUTINES 0 AND 1 PROGRAM PRINTS MULTIPLY SIMULATION AND ENTERS MULTIPLY SCOPE LOOP. FOR ROUTINES 2 AND 3 THE PROGRAM PRINTS DIVIDE SIMULATION AND ENTERS THE DIVIDE SCOPE LOOP. FOR ROUTINES 4 THROUGH 7 PROGRAM ENTERS THE EXERCISER SCOPE LOOP FOR THE INDIVIDUAL ROUTINE. SR5 MUST BE SET TO 0 FOR THIS OPTION TO BECOME ACTIVE.SR9-11 SR9 SR10 SR11WITH X 0 0 EXECUTE EACH ROUTINE IN "A" AND "B" MODES.SR1=0 X 0 1 EXECUTE EACH ROUTINE IN "A" AND "B" MODES. X 1 0 SELECT "A" MODE. X 1 1 SELECT "B" MODE.SR9-11 SR9 SR10 SR11WITH 0 0 0 SELECT ROUTINE 0. FIXED MULTIPLY TEST.SR1=1 0 0 1 SELECT ROUTINE 1. RANDOM MULTIPLY TEST. 0 1 0 SELECT ROUTINE 2. FIXED DIVIDE TEST. 0 1 1 SELECT ROUTINE 3. RANDOM DIVIDE TEST. 1 0 0 SELECT ROUTINE 4. MULTIPLY/DIVIDE EXERCISE TEST. 1 0 1 SELECT ROUTINE 5. MULTIPLY/DIVIDE EXERCISE TEST. 1 1 0 SELECT ROUTINE 6. MULTIPLY/DIVIDE EXERCISE TEST. 1 1 1 SELECT ROUTINE 7. MULTIPLY/DIVIDE EXERCISE TEST. 4.2 STARTING ADDRESS ---------------- THIS PROGRAM STARTS AT LOCATION 0200.4.3 PROGRAM AND/OR OPERATOR ACTION ------------------------------ WITH THE PROGRAM LOADED IN CORE PROCEED AS FOLLOWS: A. INSURE TELETYPE IS ON-LINE. B. LOAD ANY PAPER TAPE IN THE TELETYPE READER AND TURN IT ON. IF AN ERROR OCCURS, TURN THE TELETYPE READER OFF TO DETERMINE IF THE CAUSE WAS FROM INTERRUPT INTERACTION. C. LOAD ADDRESS 0200. PRESS CLEAR AND CONTINUE. D. PROGRAM HALTS AT LOCATION 0201. E. SET ANY DESIRED OPTIONS IN SR AND PRESS CONTINUE. IF SR1 WAS SET THE PROGRAM WILL HALT AT LOCATION 4574 WITH THE SELECTED ROUTINE NUMBER IN THE AC. SET SR1=0 AND SELECT THE DESIRED MODE OF OPERATION IN SR10 AND 11, THEN PRESS CONTINUE. F. THE PROGRAM WILL HALT AT PROGRAM END HALT (LOCATION 0250) AFTER THE LAST ROUTINE HAS BEEN EXECUTED, PROVIDED NO LOOP OPTIONS HAVE BEEN SET. NOTE: FOR A NORMAL PROGRAM RUN, SET SR SWITCHES TO 0000. PROGRAM WILL RUN FROM START TO FINISH, EXECUTING EACH ROUTINE IN "A" AND "B" MODES, PRINTING ALL ERRORS AS THEY OCCUR. 5. OPERATING PROCEDURE -------------------5.1 PROGRAM AND/OR OPERATOR ACTION ------------------------------5.1.1 NORMAL PROGRAM HALTS -------------------- LOCATION 0201 START HALT. THIS HALT OCCURS AT THE START OF THE PROGRAM TO PERMIT SETTING OF SR OPTIONS. SET ANY DESIRED OPTIONS IN THE SR AND PRESS CONTINUE. LOCATION 0251 PROGRAM END HALT. THIS HALT OCCURS UPON COMPLETION OF LAST ROUTINE, IF THE LOOP PROGRAM OPTION IS NOT SET. SET ANY DESIRED OPTIONS IN THE SR AND PRESS CONTINUE. LOCATION 0301 ROUTINE HALT. THIS HLT OCCURS AT THE COMPLETION OF THE CURRENT ROUTINE IF SR0 IS SET. PRESSING CONTINUE RESUMES THE PROGRAM. LOCATION 0320 ROUTINE SELECT HALT. THIS HALT OCCURS IF WHILE RUNNING THE PROGRAM SR1 IS SET. THE ROUTINE PRESENTLY BEING EXECUTED IS DISPLAYED IN THE AC. IF A NEW ROUTINE IS TO BE SELECTED LEAVE SR1 SET AND PLACE THE NEW ROUTINE NUMBER IN SR9-11 AND PRESS CONTINUE. IF NO NEW ROUTINE IS DESIRED SET SR1=0 AND THE DESIRED MODE OF OPERATION IN SR10 AND 11 AND PRESS CONTINUE. THE PROGRAM WILL START EXECUTION WITH ROUTINE 0. LOCATION 4574 MODE SELECTION HALT. THIS HALT OCCURS AS THE RESULT OF SELECTING A ROUTINE. SET SR1=0 AND SELECT THE DESIRED MODE OF OPERATION IN SR10 AND 11. PRESS CONTINUE.6. ERRORS ------6.1 PROGRAM AND/OR OPERATION ACTION -------------------------------- THE PURPOSE OF THIS PROGRAM IS TO DETECT OPERATION ERRORS IN THE MULTIPLY-DIVIDE HARDWARE. UPON DETECTION OF AN ERROR, THE PROGRAM EITHER HALTS, OR GIVES AN ERROR PRINTOUT DEPENDING ON THE SETTING OF SR5. IN ORDER TO AID IN PINPOINTING THE CAUSE OF AN ERROR, ADD- ITIONAL SR OPTIONS ARE AVAILABLE TO THE USER. SR6, HALT AFTER PRINT OPTION. HALTS THE PROGRAM TO PERMIT USER TO EXAMINE THE LATEST ERROR AND DETERMINE IF IT IS THE ONE HE WISHES TO TROUBLESHOOT. SR7, PRINT FAILURE RATE OPTION. INFORMS THE USER OF THE FREQUENCY OF AN ERROR. A HIGH RATE OF FAILURE ERROR SHOULD BE EASIER TO TROUBLE SHOOT THAN AN INTERMITTENT ERROR. IF THE USER WISHES TO TROUBLESHOOT USING THE PRESENT SET OF SYMPTOMS, HE CAN THEN SET SR8. SR8, PRINT SIMULATION AND ENTER SCOPE LOOP OPTION, CAUSES PRINTOUT OF THE CORRECT CONTENTS OF THE LINK, AND OF THE AC AND MQ REGISTERS FOR EACH COUNT OF THE STEP COUNTER. FOLLOWING THE SIMULATION PRINTOUT THE PROGRAM ENTERS A MULTIPLY OR DIVIDE SCOPE LOOP, DEPENDING ON THE ROUTINE CURRENTLY IN EXECUTION. ROUTINES 4 THROUGH 7 DO NOT GIVE A SIMULATION PRINTOUT, BUT MERELY ENTER THEIR RESPECTIVE SCOPE LOOPS. NO PRINTOUTS WILL OCCUR UNLESS SR5 IS SET TO 0. IF SR5 IS SET TO HALT ON ERROR, AND THE USER WISHES TO OBTAIN PRINTOUTS FOR THE CURRENT FAILURE HE MAY OBTAIN THEM BY SETTING SR5 TO 0. (TO PRINT POSITION).6.2 ERROR HALTS AND DESCRIPTION --------------------------- LOC 1310 MULTIPLY ERROR HALT. THE AC DISPLAYS NUMBER OF ROUTINE WHERE FAILURE OCCURRED. (ROUTINE 0 OR 1.) PRESS CONTINUE TO RESUME TESTING, OR SET SR5 TO 0 TO OBTAIN ERROR PRINTOUTS. LOC 1511 DIVIDE ERROR HALT. THE AC DISPLAYS NUMBER OF ROUTINE WHERE FAILURE OCCURRED. (ROUTINE 2 OR 3.) PRESS CONTINUE TO RESUME TESTING, OR SET SR5 TO 0 TO OBTAIN ERROR PRINTOUTS. LOC 4327 MULTIPLY/DIVIDE EXERCISE ERROR HALT. THE AC DISPLAYS NUMBER OF ROUTINE WHERE FAILURE OCCURED (ROUTINES 4,5,6,OR 7). PRESS CONTINUE TO RESUME TESTING, OR SET SR5 TO 0 TO OBTAIN ERROR PRINTOUT. LOC 1044 UNEXPECTED INTERRUPT HALT. A DEVICE OTHER THAN TELETYPE READER OR PRINTER HAS INTERRUPTED. TURN OFF DEVICE. PRESS CONTINUE.6.3 ERROR PRINTOUTS ---------------6.3.1 MULTIPLICATION FAILURE ERROR PRINTOUTS --------------------------------------- MUYERR L C(AC) C(MQ) C(MB) MODE "X" PROB 0 000000000000 101000100001 111100000110 A- GOOD 0 100110000010 101111000110 111100000110 BAD 0 100101000010 101111000110 111100000110 SCA 000000001100 B- ERRORS PER HUNDRED: 0100 SCCNT L C(AC) C(MQ) SC0 0 000000000000 101000100001 SC1 0 011110000011 101000010000 SC2 0 001111000001 101010001000 SC3 0 000111100000 011010100010 SC4 0 000011110000 011010100010 C- SC5 0 000001111000 001101010001 SC6 0 011110111111 000110101000 SC7 0 001111010000 100011010100 SC8 0 000111101111 110001101010 SC9 0 000011110111 111000110101 SC10 0 011111111110 111100011010 SC11 0 001111111111 011110001101 FNRSLT 0 100110000010 101111000110 PRINTOUTS A,B,AND C ARE SHOWN IN THE ORDER IN WHICH THEY OCCUR. PRINTOUTS B AND C DO NO OCCUR WITHOUT PRINTOUT A. PRINTOUT A OCCURS AFTER A MULTIPLICATION FAILURE IF SR5 IS OFF. OTHERWISE, THE PROGRAM STOPS AT MUYERR HALT. THIS PRINTOUT OCCURS IN ROUTINES 0 AND 1 ONLY. MUYERR =MULTIPLICATION ERROR; MODE OF OPERATION PROB =ORIGINAL C(L), C(AC), C(MQ), C(MB) GOOD =CORRECT C(L), C(AC), C(MQ), C(MB) RESULTS BAD =INCORRECT C(L), C(AC), C(MQ), C(MB) RESULTS SCA =CONTENTS OF STEP COUNTER AFTER EXECUTION OF MUY INSTRUCTION. PRINTOUT B INDICATES THE NUMBER OF ERRORS PER 100 TRIES. SR7 MUST BE ON TO OBTAIN THIS PRINTOUT. PRINTOUT C IS A STEP BY STEP DISPLAY OF WHAT THE CORRECT CONTENTS OF THE LINK, AC AND MQ SHOULD BE DURING EXECUTION OF EACH FAILING MULTIPLY OPERATION. EACH LINE DISPLAYS THE CONTENTS OF THE REGISTERS AT THE START OF EACH STEP COUNTER COUNT. AN ADDITIONAL LINE LABELED FNRSLT IS PRINTED AFTER SC11 TO DISPLAY THE FINAL REGISTER CONTENTS AT END OF STEP COUNT 11. SR8 MUST BE ON TO OBTAIN THIS PRINTOUT. UPON TERMINATION OF THE PRINTOUT, THE PROGRAM ENTERS A SCOPE LOOP THAT CONTINUOUSLY EXECUTES THE FAILING MULTIPLY OPERATION, IN ORDER TO PERMIT SCOPING OF THE REGISTERS. 6.3.2 DIVISION FAILURE ERROR PRINTOUTS -------------------------------- DIVERR L C(AC) C(MQ) C(MB) MODE "X" PROB 0 000000000111 000111000111 000000001000 A- GOOD 0 000000000111 111000111000 000000001000 BAD 0 000000000111 111000111000 000000001000 SCA 000000001101 B- ERRORS PER HUNDRED: 0100 SCCNT L C(AC) C(MB) SC0 0 000000000111 000111000111 SC1 0 000000000001 001110001110 SC2 0 000000001100 011100011101 SC3 1 111111110111 111000111011 C- SC4 1 111111111110 110001110111 SC5 0 000000001100 100011101110 SC6 1 111111110111 000111011100 SC7 1 111111111110 001110111000 SC8 0 000000001100 011101110001 SC9 1 111111110111 111011100011 SC10 1 111111111110 110111000111 SC11 0 000000001100 101110001110 SC12 1 111111110111 011100011100 SC13 1 111111111111 111000111000 FNRST 0 000000000111 111000111000 PRINTOUTS A,B, AND C ARE SHOWN IN THE ORDER IN WHICH THEY OCCUR. PRINTOUTS B AND C DO NOT OCCUR WITHOUT PRINTOUT A. PRINTOUT A OCCURS AFTER A DIVISION FAILURE IF SR5 IF OFF. OTHERWISE, THE PROGRAM STOPS AT DIVERR HALT. THIS PRINTOUT OCCURS IN ROUTINES 2 AND 3 ONLY. DIVERR =DIVISION ERROR; MODE OF OPERATION PROB =ORIGINAL C(L), C(AC), C(MQ), C(MB) GOOD =CORRECT C(L), C(AC), C(MQ), C(MB) RESULTS BAD =INCORRECT C(L), C(AC), C]Q), C(MB) RESULTS SCA =CONTENTS OF STEP COUNTER AFTER EXECUTION OF DVI INSTRUCTION. PRINTOUT B INDICATES THE NUMBER OF ERRORS PER 100 TRIES. SR7 MUST BE ON TO OBTAIN THIS PRINTOUT. PRINTOUT C IS A STEP BY STEP DISPLAY OF WHAT THE CORRECT CONTENTS OF THE LINK, AC, AND MQ SHOULD BE DURING EXECUTION OF THE FAILING DIVIDE OPERATION. EACH LINE DISPLAYS THE CONTENTS OF THE REGISTERS AT THE START OF EACH STEP COUNTER COUNT. AN ADDITIONAL LINE LABELED FNRSLT IS PRINTED AFTER SC0 IN CASE OF DIVIDE OVERFLOW, OR AFTER SC13 IN CASE OF A NORMAL DIVIDE OPERATION TO DISPLAY THE FINAL CONTENTS OF THE REGISTERS AT END OF LAST STEP COUNT. SR8 MUST BE ON TO OBTAIN THIS PRINTOUT UPON TERMINATION OF THE PRINTOUT, THE PROGRAM ENTERS A SCOPE LOOP THAT CONTINUALLY EXECUTES THE FAILING DIVIDE OPERATION, IN ORDER TO PERMIT SCOPING OF THE REGISTERS.6.3.3 MULTIPLY DIVIDE EXERCISER ERROR PRINTOUTS ----------------------------------------- PROB AXB\B=A A=7243 B=1130 EXERR L C(AC) C(MQ) MODE "X" A- GOOD 0 000000000000 111010100011 BAD 1 011111000011 101110010010 B- ERRORS PER HUNDRED: 0100 PROB AXB\BXB\A=B A=7243 B=1130 EXERR L C(AC) C(MQ) MODE "X" C- GOOD 0 000000000000 001001011000 BAD 0 100011100111 000100100011 D- ERRORS PER HUNDRED: 0000 PROB AXB\BXB\AXA\A=B A=7243 B=1130 EXERR L C(AC) C(MQ) MODE "X" E- GOOD 0 000000000000 001001011000 BAD 0 001001010110 000111110011 F- ERRORS PER HUNDRED: 0100 PROB AXB\BXB\AXA\AXA\B=A A=7243 B=1130 EXERR L C(AC) C(MQ) MODE "X" G- GOOD 0 000000000000 111010100011 BAD 0 011010001100 101110101101 H- ERRORS PER HUNDRED: 0100 PRINTOUTS B,D,F, AND H DO NOT OCCUR WITHOUT THEIR PRECEDING PRINTOUTS. SR7 MUST BE ON FOR THESE PRINTOUTS TO OCCUR. THEY INDICATE THE NUMBER OF TIMES A PROBLEM FAILED PER 100 TRIES. PRINTOUT A OCCURS DURING EXECUTION OF ROUTINE 4. PRINTOUT C OCCURS DURING EXECUTION OF ROUTINE 5. PRINTOUT E OCCURS DURING EXECUTION OF ROUTINE 6. PRINTOUT G OCCURS DURING EXECUTION OF ROUTINE 7. SR5 MUST BE OFF FOR PRINTOUTS A,C,E, OR G TO OCCUR. PRINTOUTS A,C,E, AND G HAVE THE FOLLOWING FORMAT: PROB DESCRIPTION OF MULTIPLY-DIVIDE EXERCISE USED. A=XXXX B=XXXX VALUES FOR A AND B USED DURING THE EXERCISE. EXERR MULTIPLY-DIVIDE EXERCISER ERROR AND THE MODE THAT FAILED. ("A" OR "B") GOOD CORRECT C(L),C(AC), AND C(MQ) RESULTS. BAD INCORRECT C(L),C(AC), AND C(MQ) RESULTS.7. RESTRICTIONS ------------7.1 STARTING RESTRICTIONS --------------------- ONLY THOSE ADDRESSES GIVEN IN SECTION 4.2 SHOULD BE USED.8. MISCELLANEOUS -------------8.1 EXECUTION TIME -------------- THE TELETYPE BELL WILL RING AT THE END OF 7 PROGRAM PASSES WHICH IS APPROXIMATELY EVERY MINUTE AND "KE8 2" WILL BE PRINTED OUT APPROXIMATELY EVERY 10 MINUTES. 8.2 OSCILLOSCOPE SETUP ------------------ THE FOLLOWING OSCILLOSCOPE SETUP IS RECOMMENDED FOR VIEWING REGISTER BITS FOR A MULTIPLY OR DIVIDE PROBLEM. TIME BASE - .5 US/DIV SYNC - DRAWING M8340-0-1 MODULE TYPE - M8340 IC E24 PIN 6 FUNCTION SC=0L NOTE: SYNC ON NEGATIVE SLOPE. PROBE A - SAME AS SYNC. PROBE B - LINK, AC, AND MQ FLIP-FLOPS.9. PROGRAM DESCRIPTION -------------------9.1 PROGRAM ORGANIZATION -------------------- THE PDP-8/E EAE (KE8-E) MULTIPLY-DIVIDE TEST IS ORGANIYED AS FOLLOWS: A. CONTROL ROUTINE. THIS ROUTINE CONTROLS PROGRAM SEQUENCES BY HONORING OPTIONS SET IN SR0 THROUGH SR4, AND SR9 THROUGH SR11. B. SUBROUTINES C. TEST ROUTINES, EIGHT ROUTINES. ONE PROGRAM PASS CONSISTS OF 7 PASSES THROUGH THESE ROUTINES.9.2 MAJOR SUBROUTINES ----------------- THERE ARE THREE MAJOR SUBROUTINES. EACH OF THESE SUBROUTINES IS CALLED ON BY ONE OR MORE TEST ROUTINES. THESE SUBROUTINES CONTROL TESTING, ERROR DETECTION, ERROR PRINTOUTS, SIMULATION, AND SCOPE LOOPS. A. MULTIPLY TEST SUBROUTINE. CALLED ON BY TEST ROUTINES 0 AND 1. THE CALLING ROUTINE PROVIDES THE ADDRESS OF A TABLE CONTAINING MULTIPLICATION OPERANDS AND THE EXPECTED RESULTS, AND THE NUMBER OF TESTS IN THE TABLE. B. DIVIDE TEST SUBROUTINE. CALLED ON BY TEST ROUTINES 2 AND 3. THE CALLING ROUTINE PROVIDES THE ADDRESS OF A TABLE CONTAINING DIVISION OPERANDS AND THE EXPECTED RESULTS, AND THE NUMBER OF TESTS IN THE TABLE. C. MULTIPLY-DIVIDE EXERCISER TEST SUBROUTINE. CALLED ON BY TEST ROUTINES 4, 5, 6, AND 7. THE CALLING ROUTINE MOVES 2 OPERANDS TO SYMBOLIC LOCATIONS A AND B, PROVIDES THE SUBROUTINE WITH THE ADDRESS OF EXERCISE TO USE, AND THE ADDRESS OF THE CORRECT RESULT. 9.3 TEST ROUTINES ------------- THE PROGRAM CONTAINS EIGHT TEST ROUTINES NUMBERED FROM 0 THROUGH 7. TEST ROUTINE 0. FIXED MULTIPLY TEST. MUY INSTRUCTION IS TESTED USING 55 FIXED TESTS. TEST ROUTINE 1. RANDOM MULTIPLY TEST. MUY INSTRUCITON IS TESTED USING 500 TESTS WHOSE OPERANDS ARE DETERMINED AT RANDOM. THE RESULTS OF THESE TESTS ARE DETERMINED THROUGH SIMULATION. TEST ROUTINE 2. FIXED DIVIDE TEST. DVI INSTRUCTION IS TESTED USING 40 FIXED TESTS. TEST ROUTINE 3. RANDOM DIVIDE TEST. DVI INSTRUCTION IS TESTED USING 333 TESTS WHOSE OPERANDS ARE DETERMINED AT RANDOM. THE RESULTS OF THESE TESTS ARE DETERMINED THROUGH SIMULATION. TEST ROUTINE 4. MULTIPLY/DIVIDE EXERCISE TEST. THE ROUTINE GENERATES 700 SETS OF TWO NON-ZERO RANDOM NUMBERS. EACH SET OF NUMBERS IS USED TO TEST THE ABILITY OF THE HARDWARE TO PERFORM SUCCESSIVE MULTIPLY AND DIVIDE OPERATIONS. THIS ROUTINE CHECKS FOR CORRECT RESULTS USING THE PROBLEM AXB/B=A. TEST ROUTINE 5. MULTIPLY/DIVIDE EXERCISE TEST. USING THE NUMBER SET GENERATED BY ROUTINE 4, THIS ROUTINE CHECKS FOR CORRECT RESULTS USING THE PROBLEM AXB/BXB/A=B. TEST ROUTINE 6. MULTIPLY/DIVIDE EXERCISE TEST. USING THE NUMBER SET GENERATED BY ROUTINE 4, THIS ROUTINE CHECKS FOR CORRECT RESULTS USING THE PROBLEM AXB/BXB/AXA/A=B. TEST ROUTINE 7. MULTIPLY/DIVIDE EXERCISE TEST. USING THE NUMBER SET GENERATED BY ROUTINE 4, THIS ROUTINE CHECKS FOR CORRECT RESULTS USING THE PROBLEM AXB/BXB/AXA/AXA/B=A. NOTE: IF THROUGH PROGRAM SEQUENCE MODIFICATION EITHER OF ROUTINES 5 THROUGH 7 IS EXECUTED PRIOR TO EXECUTION OF ROUTINE 4, THE ROUTINE CURRENTLY BEING EXECUTED WILL GENERATE A NUMBER SET, AND THE ROUTINE FOLLOWING WILL USE THIS NUMBER SET FOR THEIR TESTS. IN NORMAL OPERATION, ROUTINE 4 GENERATES A NUMBER SET EVERY TIME IT IS EXECUTED, AND THE ROUTINES FOLLOWING USE THE NUMBER SET GENERATED BY ROUTINE 4. THE REASON THIS IS TO PERMIT EASIER ISOLATION OF A FAILURE. ROUTINE 4 PERFORMS ONE MUY, AND ONE DVI INSTRUCTION. ROUTINE 5 PERFORMS THE SAME MUY AND DVI INSTRUCTION, PLUS ANOTHER MUY AND DVI INSTRUCTION. BY USING THE SAME DATA, SHOULD A FAILURE OCCUR IN ROUTINE 5, THE FAILURE IS THE LOCALIYED TO THE SECOND MUY OR SECOND DVI INSTRUCTION.