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-D0LB-D PRODUCT TEST: KE8-E (EAE) INSTRUCTION TEST 1 DATE CREATED: FEBRUARY 9, 1972 MAINTAINER: DIAGNOSTIC GROUP AUTHOR: ED FORTMILLER COPYRIGHT © 1972 DIGITAL EQUIPMENT CORPORATION 1. ABSTRACT -------- THIS PROGRAM IS A TEST OF ALL THE KE8-E EAE INSTRUCTIONS. (EXCEPT MULTIPLY AND DIVIDE). 2. REQUIREMENTS ------------ 2.1 EQUIPMENT -------- PDP-8/E OR /M PROCESSOR, KE8-E OPTION, AND A TELETYPE ARE REQUIRED. 2.2 STORAGE ------- LOCATION 0000 THROUGH 7600 ARE USED. 2.3 PRELIMINARY PROGRAMS -------------------- ALL PROCESSOR RELATED TEST PROGRAMS MUST HAVE BEEN RUN SUCCESSFULLY. 3. LOADING PROCEDURE ----------------- 3.1 METHOD ------ THE BINARY LOADER IS USED TO LOAD THE PROGRAM INTO ANY DE- SIRED FIELD. REFER TO THE BINARY LOADER DOCUMENTATION IF UNFAMILIAR WITH ITS USE. 4. STARTING PROCEDURE ------------------ 4.1 CONTROL SWITCH SETTING ---------------------- CONTROL SWITCH SETTINGS DO NOT APPLY TO STEP COUNTER, GT, MODE, AND COMBINED TESTS. AN ERROR WILL BE INDICATED BY A PROGRAM HALT. SR0=1 HALT ON ERROR SR1=1 SCOPE MODE (REPEAT PATTERN AND/OR TEST) SR2=1 PRINT ERROR INFORMATION SR3=1 DO NOT EXIT CURRENT TEST. SR10=11 SR10 SR11 0 0 EXECUTE TEST IN "A" AND "B" MODES 0 1 EXECUTE TEST IN "A" AND "B" MODES. 1 0 SELECT "A" MODE. 1 1 SELECT "B" MODE. 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 ADDRESS 0200. C. SET ANY DESIRED OPTIONS IN THE SR. D. PRESS CLEAR AND CONTINUE. NOTE: FOR A NORMAL PROGRAM RUN, SET SR SWITCHES TO 5000. PROGRAM WILL RUN CONTINUOUSLY EXECUTING THE TEST IN "A" AND "B" MODES UNLESS AN ERROR IS DETECTED AT WHICH TIME THE ERROR INFORMATION WOULD BE PRINTED OUT AND THEN THE PROGRAM WILL HALT. 5. ERRORS ------ 5.1 PROGRAM AND/OR OPERATOR ACTION. ------------------------------- THE PURPOSE OF THIS PROGRAM IS TO DETECT OPERATION ERRORS IN THE KE-8 HARDWARE. UPON DETECTION OF AN ERROR, THE PROGRAM EITHER HALTS, OR GIVES AN ERROR PRINTOUT DE- PENDING ON THE SETTING OF SR 0 AND 2. 5.2 ERROR HALTS AND DESCRIPTION --------------------------- LOC 0236 MQL FAILED TO CLEAR THE AC OR THE LINK WAS CLEARED. LOC 0447 MQL FAILED TO CLEAR THE AC OR THE LINK WAS SET. LOC 0562 MQL FAILED TO LOAD THE MQ OR MQA FAILED TO LOAD THE AC. LOC 0727 MQL FAILED TO LOAD THE MQ OR MQA FAILED TO LOAD THE AC. LOC 1054 MQA FAILED TO "INCLUSIVE OR" THE MQ WITH THE AC. LOC 1222 MQA FAILED TO "INCLUSIVE OR" THE MQ WITH THE AC. LOC 1301 SAM INSTRUCTION FAILED. LOC 1414 SAM INSTRUCTION FAILED. LOC 1477 SHL INSTRUCTION FAILED. LOC 1631 SHL INSTRUCTION FAILED. LOC 1716 LSR INSTRUCTION FAILED. LOC 2031 LSR INSTRUCTION FAILED. LOC 2116 ASR INSTRUCTION FAILED. LOC 2231 ASR INSTRUCTION FAILED. LOC 2516 DPSZ INSTRUCTION FAILED. LOC 2637 DPIC INSTRUCTION FAILED. LOC 2703 DPIC INSTRUCTION FAILED. LOC 3014 DCM INSTRUCTION FAILED. LOC 3124 DAD INSTRUCTION FAILED. LOC 3274 DAD INSTRUCTION FAILED. LOC 3434 DST INSTRUCTION FAILED. LOC 3531 DST INSTRUCTION FAILED. LOC 3653 NORMALIZE INSTRUCTION FAILED. LOC 4336 NORMALIZE INSTRUCTION FAILED. LOC 4520 NORMALIZE INSTRUCTION FAILED. LOC 4605 EAE NOP SKIPPED. LOC 4610 EAE NOP MODIFIED THE AC. LOC 4614 EAE NOP MODIFIED THE MQ. LOC 4622 EAE CLA SKIPPED. LOC 4624 EAE CLA FAILED TO CLEAR THE AC. LOC 4630 EAE CLA MODIFIED THE MQ. LOC 4637 AC OR MQ NOT CLEARED BY CAM. LOC 4650 SWP FAILED. LOC 4655 SWP FAILED. LOC 4666 ACL FAILED. LOC 4710 DLD (CAM DAD) FAILED. LOC 4715 DLD (CAM DAD) FAILED. LOC 4736 DDZ (CAM DST) FAILED. 4741 4744 LOC 4752 "B" MODE NORMALIZE FAILED TO CLEAR AC. LOC 5004 CLEAR KEY FAILED TO SET "MODE A" OR DPSZ FAILED. LOC 5010 SWAB FAILED TO SET "MODE B" OR DPSZ FAILED. LOC 5015 SWBA FAILED TO SET "MODE A". LOC 5023 CAF FAILED TO SET "MODE A". LOC 5031 SCL OR SCA ERROR. 5040 5047 5056 5065 5074 5103 5112 5117 5126 5135 5145 5155 LOC 5163 ACS INSTRUCTION FAILED 5170 5205 5210 LOC 5220 RTF INSTRUCTION FAILED TO SET GT FLAG TO 0 OR GTF FAILED TO GET IT. LOC 5230 RTF INSTRUCTION FAILED TO SET GT FALG TO 1 OR GTF FAILED TO GET IT. LOC 5236 SGT SKIPPED WITH GT FLAG NOT SET. LOC 5243 SGT FAILED TO SKIP WITH GT FLAG SET. LOC 5252 SWBA FAILED TO CLEAR THE GT FLAG. 5.3 ERROR PRINTOUTS --------------- 5.3.1 MQL TESTS ---------- MQLT MODE A (OR B) AC 1 000000000011 0-AC 1 000000000001 MQLT MQL INSTRUCTION TEST WITH LINK SET TO A 1. AC THE ORIGINAL C(AC) AND C(L). 0-AC C(AC) AND C(L) AFTER THE MQL INSTRUCTION WAS EXECUTED. NOTE THAT BIT 11 OF AC SHOULD EQUAL 0. MQLT1 MODE A (OR B) AC 0 000000000001 0-AC 0 000000000001 MQLT MQL INSTRUCTION TEST WITH LINK SET TO A 0. AC THE ORIGINAL C(AC) AND C(L) 0-AC C(AC) AND C(L) AFTER THE MQL INSTRUCTION WAS EXECUTED. NOTE THAT BIT 11 OF THE AC SHOULD EQUAL 0. 5.3.2 MQA TESTS --------- MQAT MODE A (OR B) AC 1 000000000001 MQL)1 000000000000 MQA) MQAT MQA MQL INSTRUCTION TEST WITH THE LINK SET TO A 1. AC THE ORIGINAL C(AC) AND C(L). MQL MQA THE C(AC) AND C(L) AFTER THE EXECUTION OF AN MQL INSTRUCTION FOLLOWED BY AN MQA IN- STRUCTION. NOTE THAT BIT 11 OF THE AC SHOULD BE A 1. MQAT1 MODE A (OR B) AC 0 100000000000 MQL) 0 011111111111 MQA) MQAT1 MQL,MQA INSTRUCTION TEST WITH THE LINK SET TO A 0. AC THE ORIGINAL C(AC) AND C(L). MQL,MQA THE C(AC) AND C(L) AFTER THE EXECUTION OF AN MQL INSTRUCTION FOLLOWED BY AN MQA INSTRUCTION. NOTE THAT THE C(AC) SHOULD BE 4000. MQAT2 MODE A (OR B) AC 1 111111111110 MQ 000000000001 MQVAC 1 000000000000 MQAT2 MQA INSTRUCTION TEST. AC ORIGINAL C(AC) AND C(L). MQ ORIGINAL C(MQ). MQVAC THE C(AC) AND C(L) AFTER THE EXECUTION OF AN MQA INSTRUCTION. NOTE THAT THE C(AC) SHOULD BE 7777. MQAT3 MODE A (OR B) AC 0 111111111110 MQ 000000000001 MQVAC 0 000000000000 MQAT3 MQA INSTRUCTION TEST. AC ORIGINAL C(L) AND C(AC). MQ ORIGINAL C(MQ). MQVAC THE C(AC) AND THE C(L) AFTER THE EXECUTION OF AN MQA INSTRUCTION. NOTE THAT THE C(AC) SHOULD BE 7777. 5.3.3 SAM TESTS --------- SAM TEST 0 (OR 1) MODE B C(L) C(AC) C(MQ) C(GT) C(SC) PROBLEM 1 000000111111 000001000000 0 000000000000 SIMULATED 0 000000000001 000001000000 1 000000000000 ACTUAL 0 000000000000 000001000000 1 000000000000 PROBLEM THE CONTENTS OF THE REGISTERS PRIOR TO ISSUING A SAM INSTRUCTION. SIMULATED WHAT THE RESULTS SHOULD BE. ACTUAL WHAT THE RESULTS WERE FROM THE EXECUTION OF A SAM INSTRUCTION. NOTE THAT AC SHOULD BE 0001 IN THE "ACTUAL". 5.3.4 SHL TESTS --------- SHL TEST 0 (OR 1) 0003 SHIFTS MODE A (OR B) C(L) C(AC) C(MQ) C(GT) C(SC) PROBLEM 1 000100100001 000100000001 0 000000000010 SIMULATED 0 100100001000 100000001000 0 000000000000 ACTUAL 0 100100000000 100000001000 0 000000000000 PROBLEM THE CONTENTS OF THE REGISTERS PRIOR TO ISSUING AN SHL INSTRUCTION. THE NUMBER CONTAINED IN C(SC) IS THE CONTENTS OF THE ADDRESS FOLLOWING THE SHL INSTRUCTION. SIMULATED WHAT THE RESULTS SHOULD BE. ACTUAL WHAT THE RESULTS WERE FROM THE EXECUTION OF AN SHL INSTRUCTION. 5.3.5 LSR TESTS --------- LSR TEST 1 (OR 0) 0004 SHIFTS MODE B (OR A) C(L) C(AC) C(MQ) C(GT) C(SC) PROBLEM 1 000000111111 000000001111 0 000000000100 SIMULATED 0 000000000011 111100000000 1 000000011111 ACTUAL 0 000000000011 111100000000 0 000000011111 PROBLEM THE CONTENTS OF THE REGISTERS PRIOR TO ISSUING AN LSR INSTRUCTION. THE NUMBER CONTAINED IN C(SC) IS THE CONTENTS OF THE ADDRESS FOLLOWING THE LSR INSTRUCTION. SIMULATED WHAT THE RESULTS SHOULD BE. ACTUAL WHAT THE RESULTS WERE FROM THE EXECUTION OF AN LSR INSTRUCTION. NOTE THAT THE C(GT) SHOULD BE 1 IN THE "ACTUAL". 5.3.6 ASR TESTS --------- ASR TEST 0 (OR 1) 0002 SHIFTS MODE B (OR A) C(L) C(AC) C(MQ) C(GT) C(SC) PROBLEM 0 000000000110 000000100001 1 000000000010 SIMULATED 1 110000000001 100000001000 0 000000011111 ACTUAL 1 110000000001 000000001000 0 000000011111 PROBLEM THE CONTENTS OF THE REGISTERS PRIOR TO ISSUING AN ASR INSTRUCTION. THE NUMBER CONTAINED IN C(SC) IS THE CONTENTS OF THE ADDRESS FOLLOWING THE ASR INSTRUCTION. SIMULATED WHAT THE RESULTS SHOULD BE. ACTUAL WHAT THE RESULTS WERE FROM THE EXECUTION OF AN ASR INSTRUCTION. NOTE THAT THE C(MQ) SHOULD BE 4010 IN THE "ACTUAL". 5.3.7 DPSZ TESTS ---------- DPSZ TEST 0 MODE B NO SKIP OCCURRED C(L) C(AC) C(MQ) C(GT) C(SC) PROBLEM 0 000000000000 000000000000 0 000000000000 SIMULATED 0 000000000000 000000000000 0 000000000000 ACTUAL 0 000000000000 000000000000 0 000000000000 PROBLEM THE CONTENTS OF THE REGISTERS PRIOR TO ISSUING A DPSZ INSTRUCTION. SIMULATED WHAT THE REGISTERS SHOULD BE AFTER ISSUING THE DPSZ INSTRUCTION. ACTUAL WHAT THE REGISTERS WERE AFTER ISSUING THE DPSZ INSTRUCTION. NOTE WITH AC ANC MQ BOTH ZERO A SKIP FAILED TO OCCUR. DPSZ TEST 0 MODE B SKIP OCCURRED C(L) C(AC) C(MQ) C(GT) C(SC) PROBLEM 0 000000000000 000000000001 0 000000000000 SIMULATED 0 000000000000 000000000000 0 000000000000 ACTUAL 0 000000000000 000000000000 0 000000000000 PROBLEM THE CONTENTS OF THE REGISTER PRIOR TO ISSUING A DPSZ INSTRUCTION. SIMULATED WHAT THE REGISTERS SHOULD BE AFTER ISSUING THE DPSZ INSTRUCTION. ACTUAL WHAT THE REGISTERS WERE AFTER ISSUING THE DPSZ INSTRUCTION. NOTE WITH MQ NON ZERO A SKIP OCCURRED. DPSZ TEST 0 MODE B REG MODIFIED C(L) C(AC) C(MQ) C(GT) C(SC) PROBLEM 0 000000000001 000000000000 0 000000000000 SIMULATED 0 000000000001 000000000000 0 000000000000 ACTUAL 0 000000000000 000000000000 0 000000000000 PROBLEM THE CONTENTS OF THE REGISTERS PRIOR TO ISSUING A DPSZ INSTRUCTION. SIMULATED WHAT THE REGISTERS SHOULD BE AFTER ISSUING THE DPSZ INSTRUCTION. ACTUAL WHAT THE REGISTERS WERE AFTER ISSUING THE DPSZ INSTRUCTION. NOTE THAT THE C(AC) SHOULD BE 0001 IN THE "ACTUAL". 5.3.8 DPIC TESTS ---------- DPIC TEST 0 (OR 1) MODE B C(L) C(AC) C(MQ) C(GT) C(SC) PROBLEM 1 000000000000 000000000000 0 000000000000 SIMULATED 0 000000000000 000000000001 0 000000000000 ACTUAL 0 000000000000 000000000000 0 000000000000 PROBLEM THE CONTENTS OF THE REGISTERS PRIOR TO ISSUING A DPIC INSTRUCTION. SIMULATED WHAT THE REGISTERS SHOULD BE AFTER THE ISSUING OF A DPIC INSTRUCTION. ACTUAL WHAT THE REGISTERS WERE AFTER ISSUING THE DPIC INSTRUCTION. NOTE THAT THE C(AC) SHOULD BE 0001 IN THE "ACTUAL". 5.3.9 DCM TESTS --------- DCM TEST 0 (OR 1) MODE B C(L) C(AC) C(MQ) PROBLEM 1 000000000000 000000000001 0 000000000000 SIMULATED 0 111111111111 111111111111 0 000000000000 ACTUAL 0 111111111111 111111111110 0 000000000000 PROBLEM THE CONTENTS OF THE REGISTERS PRIOR TO ISSUING A DCM INSTRUCTION. SIMULATED WHAT THE REGISTERS SHOULD BE AFTER THE ISSUING OF A DCM INSTRUCTION. ACTUAL WHAT THE REGISTERS WERE AFTER ISSUING THE DCM INSTRUCTION. NOTE THAT THE C(MQ) SHOULD BE 7777. 5.3.10 DAD TESTS --------- DAD TEST 0 (OR 1) MODE B C(L) C(AC) C(MQ) C(GT) C(SC) PROBLEM 0 000000011111 000011110101 0 000000000000 TO BE ADDED 111111100000 111100001010 SIMULATED 0 111111111111 111111111111 0 000000000000 ACTUAL 0 111111111111 111111111110 0 000000000000 PROBLEM THE CONTENTS OF THE REGISTERS PRIOR TO ISSUING A DAD INSTRUCTION. TO BE ADDED THE CONTENTS OF THE TWO ADDRESS TO BE ADDED TO THE AC AND MQ. SIMULATED WHAT THE REGISTERS SHOULD BE AFTER THE ISSUING THE DAD INSTRUCTION. ACTUAL WHAT THE REGISTERS WERE AFTER ISSUING THE DAD INSTRUCTION. NOTE THAT C(MQ) SHOULD BE 7777 IN THE ACTUAL. 5.3.11 DST TESTS --------- DST TEST 0 (OR 1) MODE B REG BEFORE DST AFTER DST C(L) 1 1 C(AC) 111111111111 111111111111 C(MSH) 000000000000 C(MQ) 111110111110 111110111110 C(LSH) 111110111110 BEFORE DST THE CONTENTS OF THE REGISTERS BEFORE ISSUING A DST INSTRUCTION. AFTER DST WHAT THE REGISTERS WERE AFTER ISSUING THE DST INSTRUCTION. MSH IS WHAT DST STORED FOR THE AC. LSH IS WHAT DST STORED FOR THE MQ NOTE THAT THE C(MSH) SHOULD BE 7777. 5.3.12 NORMALIZE TESTS --------------- NMIT C(AC) C(MQ) MODE A (OR B) 000000000000 010101010101 NMI 010101010100 000000000000 SCAT 000000001100 SCA 000000001100 NMIT NORMALIZE AND STEP COUNTER TEST. ORIGINAL C(AC) AND C(MQ). (5.3.12 CONT'D) NMI C(AC) AND C(MQ) AFTER THE NMI INSTRUCTION WAS EXECUTED. SCAT THE CORRECT COUNT OF THE STEP COUNTER AFTER THE NORMALIZE INSTRUCTION WAS EXECUTED. SCA THE ACTUAL COUNT IN THE STEP COUNTER AS READ INTO THE AC BY THE SCA INSTRUCTION AFTER THE NORMALIZE INSTRUCTION WAS EXECUTED. NOTE THAT BIT 11 OF AC IN ERROR. C(AC) SHOULD EQUAL TO 2525. 5.4 TABLE OF INSTRUCTIONS --------------------- THE FOLLOWING TABLE CONTAINS THE TEST MNEMONICS, STARTING ADDRESS, ERROR HALT ADDRESS AND INSTRUCTION TESTED. STARTING ERROR MNEMONIC INSTRUCTIONS ADDRESS HALT -------- ------------ -------- ----- MQLT MQL 0204 0236 MQLT1 MQL 0400 0447 MQAT MQL,MQA 0503 0562 MQAT1 MQL,MQA 0650 0727 MQAT2 MQA 1000 1054 MQAT3 MQA 1135 1222 SAMTS0 SAM 1245 1301 SAMTS1 SAM 1333 1414 SHLTS0 SHL 1430 1477 SHLTS1 SHL 1600 1631 LSRTS0 LSR 1646 1716 LSRTS1 LSR 2000 2031 ASRTS0 ASR 2046 2116 ASRTS1 ASR 2200 2231 DPSZS0 DPSZ 2246 2516 DPITS0 DPIC 2600 2637 DPITS1 DPIC 2653 2703 DCMTS0 DCM 2717 3014 DADTS0 DAD 3030 3124 DADTS1 DAD 3200 3274 DSTTS0 DST 3310 3434 DSTTS1 DST 3450 3531 NORMT NMI,SCA 3600 3653 NORMT1 NMI,SCA 4200 4336 NORMT2 NMI 4400 4520 COMTST NOP,CLA,ACL,CAM 4600 4605-4744 SWP,DLD,DDZ,NMI MDTST DPSZ,SWAB,SWBA 0200 5004-5023 TSCL SCL,ACS 0200 5031-5210 GTTST GTF,RTF,SGT 0200 5220-5252 6. DESCRIPTION ----------- THE KE8 EAE INSTRUCTION TEST 1, TESTS THE FOLLOWING EXTENDED ARITHMETIC ELEMENT INSTRUCTIONS: MQL, MQA, SHL, LSR, ASR, DPSZ, DPIC, DCM, DAD, DST, NMI, SWAB, SWBA, SGT, RTF, AND GTF. THE EXTENDED ARITHMETIC ELEMENT IS TESTED USING PATTERNS NECESSARY TO DETECT AND ISOLATE ERRORS. IF A FAILURE DOES OCCUR, THE TEST WILL PRINTOUT THE ERROR INFORMATION AND/OR HALT AT A PREDETERMINED ERROR HALT ACCORDING TO THE SR SETTING. 7. EXECUTION TIME -------------- ONE COMPLETE PROGRAM PASS TAKES APPROXIMATELY 6 MINUTES AND AT THE END OF EACH PASS "KE8 1" WILL BE PRINTED OUT ON THE TELETYPE.