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. 19, 1999 IDENTIFICATION PRODUCT CODE: MAINDEC-08-DHKEA-A-D REPLACES: MAINDEC-8E-DORA-D PRODUCT NAME: KE8-E EAE EXTENDED MEMORY EXERCISER DATE CREATED: AUGUST 31, 1972 AUTHOR: E. FORTMILLER COPYRIGHT © 1971, 1972 DIGITAL EQUIPMENT CORPORATION1. ABSTRACT -------- THE KE8-E EXTENDED MEMORY EXERCISER IS A TEST OF THE KE8-E "B MODE" INSTRUCTIONS WHICH DURING THE DEFER CYCLE USE THE WORD FOLLOWING THE INSTRUCTION TO OBTAIN THE OPERAND. THE CAPABILITY OF EACH INSTRUCTION TO ACCESS EVERY MEMORY FIELD FROM EVERY MEMORY FIELD THROUGH NON-AUTO INDEX AND AUTO INDEX, IS TESTED. THE FOLLOWING IS A LIST OF THE INSTRUCTIONS IN THE SEQUENCE THEY ARE TESTED. A. DOUBLE PRECISION ADD (DAD) B. DOUBLE PRECISION STORE (DST) C. MULTIPLY (MUY) D. DIVIDE (DVI)2. REQUIREMENTS ------------2.1 EQUIPMENT --------- PDP-8/E PROCESSOR WITH AT LEAST 4K OF MEMORY, KE8-E OPTION, AND A TELETYPE ARE REQUIRED.2.2 STORAGE ------- LOCATIONS 0000 THROUGH 7300.2.3 PRELIMINARY PROGRAMS -------------------- ALL PROCESSOR AND MEMORY RELATED TEST PROGRAMS, AND KE8-E INSTRUCTION TESTS 1 AND 2 MUST HAVE BEEN RUN SUCCESSFULLY.3. LOADING PROCEDURE ------------------ THE BINARY LOADER IS USED TO LOAD THE PROGRAM INTO ANY DESIRED FIELD. REFER TO THE BINARY LOADER DOCUMENTATION IF UNFAMILIAR WITH ITS USE. 4. STARTING PROCEDURE ------------------4.1 CONTROL SWITCH SETTINGS ----------------------- SR0=0 HALT ON ERROR SR0=1 NO HALT ON ERROR SR1=0 NO LOOP SR1=1 SCOPE LOOP (REPEAT PATTERN) SR2=0 PRINT ON ERROR SR2=1 NO PRINT ON ERROR SR3=0 SEQUENTIALLY RUN TESTS SR3=1 SELECT TEST ACCORDING TO SR4-6. SR3=1 SR4 SR5 SR6 0 0 0 SELECT DAD TEST 0 0 1 SELECT DST TEST 0 1 0 SELECT MUY TEST 0 1 1 SELECT DIV TEST 1 0 0 SELECT DAD AUTO INDEX TEST 1 0 1 SELECT DST AUTO INDEX TEST 1 1 0 SELECT MUY AUTO INDEX TEST 1 1 1 SELECT DIV AUTO INDEX TEST SR7=0 RELOCATE IF SR3 AND 8 ARE BOTH 0. SR7=1 HOLD IF SR8=0 SEQUENTIALLY CHANGE DF IF SR3=0 SR8=1 HOLD DF SR9-11 STARING DATA FIELD (ONLY READ AT START TIME) 9 10 11 0 0 0 DF0 0 0 1 DF1 0 1 0 DF2 0 1 1 DF3 1 0 0 DF4 1 0 1 DF5 1 1 0 DF6 1 1 1 DF74.2 STARTING ADDRESS ---------------- THIS PROGRAM STARTS AT LOCATION 0200.4.3 PROGRAM AND/OR OPERATOR ACTION ------------------------------ WITH 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. E. TYPE IN THE VALUE OF THE HIGHEST MEMORY IN THE SYSTEM FOLLOWED BY A CARRIAGE RETURN. (EG, 0 FOR 4K, 1 FOR 8K ON UP TO 7 FOR 32K) IF THE INCORRECT NUMBER WAS TYPED, TYPE RUBOUT AND THEN RETYPE THE MEMORY FIELD VALUE. NOTE: FOR A NORMAL PROGRAM RUN, LOAD THE PROGRAM IN FIELD 0. SET SR TO 0200 AND PRESS LOAD ADDRESS. NOW SET SR TO 0000 AND PRESS CLEAR AND CONTINUE, AND RESPOND TO THE TELETYPE WITH THE VALUE OF THE HIGHEST FIELD FOLLOWED BY A CARRIAGE RETURN. THE PROGRAM WILL NOW ACCESS EVERY FIELD FROM EVERY FIELD. AT THE COMPLETION OF A COMPLETE PROGRAM PASS, "KE8-EME" WILL BE TYPED ON THE TELETYPE. 5. ERRORS ------5.1 ERROR HALTS AND DESCRIPTION --------------------------- LOC 0225 THE SELECTED STARTING DF IN SR9-11 WAS HIGHER THAN THE HIGHEST MEMORY FIELD DEFINED ON THE TELETYPE. LOC 0256 DOUBLE PRECISION ADD (DAD) INSTRUCTION FAILED. LOC 0343 DOUBLE PRECISION ADD (DAD) INSTRUCTION FAILED USING AUTO-INDEX. LOC 0450 DOUBLE PRECISION STORE (DST) INSTRUCTION FAILED. LOC 0560 DOUBLE PRECISION STORE (DST) INSTRUCTION FAILED USING AUTO-INDEX. LOC 0637 MULTIPLY INSTRUCTION FAILED. LOC 0746 MULTIPLY INSTRUCTION FAILED USING AUTO-INDEX. LOC 1066 DIVIDE INSTRUCTION FAILED. LOC 1250 DIVIDE INSTRUCTION FAILED USING AUTO-INDEX LOC 1505 RELOCATION ERROR. LOC 2411 DIVIDE OVERFLOW IN SIMULATION. THIS ERROR SHOULD NEVER OCCUR. (PROCESSOR ERROR) LOC 2555 AUTO INDEX ERROR DURING EXECUTION OF AN EAE INSTRUCTION. 5.2 ERROR PRINTOUTS ---------------5.2.1 DAD TEST'S ---------- DAD TEST ERROR IF 0 DF 1 MQ ADDR 3000 AC ADDR 3001 L AC MQ ORIGINAL 0 4776 5000 TO BE ADDED 3001 3000 SIMULATED 1 0000 0000 ACUTAL 1 0000 0001 DAD AUTO INDEX TEST ERROR IF 0 DF 1 MQ ADDR 3000 AC ADDR 3001 L AC MQ ORIGINAL 0 4776 5000 TO BE ADDED 3001 3000 SIMULATED 1 0000 0000 ACTUAL 1 0000 0001 IF INDICATES THE FIELD THE PROGRAM IS IN. CF INDICATES THE FIELD "DAD" WAS ACCESSING. MQ ADDR ADDRESS IN THE DATA FIELD THAT CONTAINS THE LEAST SIGNIFICANT 12 BITS OF THE 24 BIT WORD TO BE ADDED. AC ADDR ADDESS IN THE DATA FIELD THAT CONTAINS THE MOST SIGNIFICANT 12 BITS OF THE 24 BIT WORD TO BE ADDED. ORIGINAL THE CONTENTS OF THE REGISTER PRIOR TO ISSUING A "DAD" INSTRUCTION. TO BE ADDED THE CONTENTS OF THE TWO ADDRESSES TO BE ADDED TO THE AC AND MQ. SIMULATED WHAT THE RESULTS SHOULD BE. ACTUAL WHAT THE RESULT WAS. NOTE: THE ACTUAL MQ SHOULD BE 0000. 5.2.2 DST TEST'S ---------- DST TEST ERROR IF 0 DF 0 MQ ADDR 3000 AC ADDR 3001 REG BEFORE DST AFTER DST C(L) 0 0 C(MQ) 3000 3000 C(MQ ADDR) 3000 C(AC) 3001 3001 C(AC ADDR) 0000 DST AUTO INDEX TEST ERROR IF 1 DF 1 MQ ADDR 3000 AC ADDR 3001 REG BEFORE DST AFTER DST C(L) 0 0 C(MQ) 3000 3000 C(MQ ADDR) 3000 C(AC) 3001 3001 C(AC ADDR) 0000 IF INDICATES THE FIELD THE PROGRAM IS IN. DF INDICATES THE FIELD "DST" WAS STORING IN. MQ ADDR ADDRESS IN THE "DF" THAT THE MQ IS TO BE STORED AC ADDR ADDRESS IN THE "DF" THAT THE AC IS TO BE STORED BEFORE DST WHAT THE REGISTERS WERE PRIOR TO ISSUING A "DST" INSTRUCTION. AFTER DST WHAT THE REGISTERS WERE AFTER DST WAS EXECUTED. NOTE: THE CONTENTS OF THE AC ADDR SHOULD BE 3001. 5.2.3 MUY TEST'S ---------- MUY TEST ERROR IF 0 DF0 MULTIPLICAND ADDR 3000 L MTPL AC MQ SC ORIGINAL 0 4777 0000 3000 SIMULATED 0 1677 5000 0014 ACTUAL 0 1677 5001 0014 MUY AUTO INDEX TEST ERROR IF 0 DF 0 MULTIPLICAND ADDR 3000 L MTPL AC MQ SC ORIGINAL 0 4777 0000 3000 SIMULATED 0 1677 5000 0014 ACTUAL 0 1677 5001 0014 IF INDICATES THE FIELD THE PROGRAM IS IN. DF INDICATES THE FIELD THE MULTIPLICAND IS IN. MULTIPLICAND ADDR ADDRESS WHERE THE MULTIPLICAND IS LOCATED. MTPL THE MULTIPLICAND. ORIGINAL CONTENTS OF REGISTERS PRIOR TO ISSUING A MULTIPLY INSTRUCTION. SIMULATED WHAT THE RESULTS SHOULD BE. ACTUAL WHAT THE RESULTS WERE. NOTE: ACTUAL MQ SHOULD BE 5000. 5.3.4 DIV TEST'S ---------- DIV TEST ERROR IF 0 DF 0 DIVISOR ADDR 3000 L DIVS AC MQ SC ORIGINAL 0 4777 1377 5000 SIMULATED 0 4000 3777 0015 ACTUAL 0 4001 3777 0015 DIV AUTO INDEX TEST ERROR IF 0 DF 0 DIVISOR ADDR 3000 L DIVS AC MQ SC ORIGINAL 0 4777 1377 4777 SIMULATED 0 4000 3777 0015 ACTUAL 0 4001 3777 0015 IF INDICATES THE FIELD THE PROGRAM IS IN. DF INDICATES THE FIELD THE DIVISOR IS IN. DIVISOR ADDR ADDRESS WHERE THE DIVISOR IS LOCATED. DIVS THE DIVISOR. ORIGINAL CONTENTS OF THE REGISTERS PRIOR TO ISSUING A DIVIDE INSTRUCTION. SIMULATED WHAT THE RESULTS SHOULD BE. ACTUAL WHAT THE RESULTS WERE. NOTE: ACTUAL AC SHOULD BE 4000. 5.3.5 AUTO-INDEX FAILURE ------------------ DAD, (DST), (MUY), OR (DIV) AUTO INDEX TEST ERROR IF 0 DF0 AI10 SHOULD BE 3001 AI10 IS 3000 "SHOULD BE" IS THE CONTENTS OF AUTO INDEX REGISTER 10 BEFORE EXECUTING A EAE INSTRUCTION IN ADDRSS 0007. "IS", IS THE CONTENTS OF THE AUTO INDEX REGISTER AFTER THE EXECUTION OF THE EAE INSTRUCTION. NOTE: AI10 "IS" SHOULD BE 3001. SWITCH REGISTER SETTINGS DO NOT APPLY TO THIS TYPE OF ERROR. AN ERROR OF THIS TYPE WILL BE PRINTED FOLLOWED BY A HALT. PRESSING CONTINUE (NOT CLEAR AND CONTINUE) WILL ENTER A SCOPE LOOP.6.0 MISCELLANEOUS -------------6.1 EXECUTION TIME -------------- AT THE COMPLETION OF ONE COMPLETE PROGRAM PASS, "KE8 EME", WILL BE PRINTED ON THE CONSOLE TELETYPE UNLESS SR2=1, WHICH WOULD ONLY RING THE TELETYPE BELL. AMOUNT OF MEMORY (TIME MIN:SEC) 4K 8K 12K 16K 0:2.5 0:11 0:25 0:45 20K 24K 28K 32K 1:15 1:45 2:30 3:307.0 PROGRAM DESCRIPTION ------------------- SEE DESCRIPTION AT THE BEGINNING OF EACH TEST IN THE PROGRAM LISTING.