maindec: Added the usual collection, with intact symlinks
[pdp8.git] / sw / maindec / eae_8e / maindec-08-dhkea-a-d.txt
1 DISCLAIMER
2
3 This document file was created by scanning the
4 original document and then editing the scanned
5 text. As much as possible, the original text
6 format was restored. The original page breaks
7 have been removed. The original spelling and
8 grammar has been preserved. The assembler
9 listing of the original document is not
10 included in this document.
11
12 B. Baehr (bb@balloo.han.de), Feb. 19, 1999
13
14
15
16
17
18
19
20
21
22
23 IDENTIFICATION
24
25
26
27 PRODUCT CODE: MAINDEC-08-DHKEA-A-D
28 REPLACES: MAINDEC-8E-DORA-D
29
30 PRODUCT NAME: KE8-E EAE EXTENDED MEMORY
31 EXERCISER
32
33 DATE CREATED: AUGUST 31, 1972
34
35 AUTHOR: E. FORTMILLER
36
37
38
39 COPYRIGHT © 1971, 1972
40 DIGITAL EQUIPMENT CORPORATION
41
42
43
44
45
46
47
48
49
50
51 1. ABSTRACT
52 --------
53
54 THE KE8-E EXTENDED MEMORY EXERCISER IS A TEST OF THE
55 KE8-E "B MODE" INSTRUCTIONS WHICH DURING THE DEFER
56 CYCLE USE THE WORD FOLLOWING THE INSTRUCTION TO OBTAIN
57 THE OPERAND. THE CAPABILITY OF EACH INSTRUCTION TO
58 ACCESS EVERY MEMORY FIELD FROM EVERY MEMORY FIELD
59 THROUGH NON-AUTO INDEX AND AUTO INDEX, IS TESTED.
60
61 THE FOLLOWING IS A LIST OF THE INSTRUCTIONS IN THE
62 SEQUENCE THEY ARE TESTED.
63
64 A. DOUBLE PRECISION ADD (DAD)
65
66 B. DOUBLE PRECISION STORE (DST)
67
68 C. MULTIPLY (MUY)
69
70 D. DIVIDE (DVI)
71
72 2. REQUIREMENTS
73 ------------
74
75 2.1 EQUIPMENT
76 ---------
77
78 PDP-8/E PROCESSOR WITH AT LEAST 4K OF MEMORY,
79 KE8-E OPTION, AND A TELETYPE ARE REQUIRED.
80
81 2.2 STORAGE
82 -------
83
84 LOCATIONS 0000 THROUGH 7300.
85
86 2.3 PRELIMINARY PROGRAMS
87 --------------------
88
89 ALL PROCESSOR AND MEMORY RELATED TEST PROGRAMS, AND KE8-E
90 INSTRUCTION TESTS 1 AND 2 MUST HAVE BEEN RUN SUCCESSFULLY.
91
92 3. LOADING PROCEDURE
93 ------------------
94
95 THE BINARY LOADER IS USED TO LOAD THE PROGRAM INTO ANY DESIRED
96 FIELD. REFER TO THE BINARY LOADER DOCUMENTATION IF UNFAMILIAR
97 WITH ITS USE.
98 \f
99 4. STARTING PROCEDURE
100 ------------------
101
102 4.1 CONTROL SWITCH SETTINGS
103 -----------------------
104
105 SR0=0 HALT ON ERROR
106 SR0=1 NO HALT ON ERROR
107
108 SR1=0 NO LOOP
109 SR1=1 SCOPE LOOP (REPEAT PATTERN)
110
111 SR2=0 PRINT ON ERROR
112 SR2=1 NO PRINT ON ERROR
113
114 SR3=0 SEQUENTIALLY RUN TESTS
115 SR3=1 SELECT TEST ACCORDING TO SR4-6.
116
117 SR3=1 SR4 SR5 SR6
118 0 0 0 SELECT DAD TEST
119 0 0 1 SELECT DST TEST
120 0 1 0 SELECT MUY TEST
121 0 1 1 SELECT DIV TEST
122 1 0 0 SELECT DAD AUTO INDEX TEST
123 1 0 1 SELECT DST AUTO INDEX TEST
124 1 1 0 SELECT MUY AUTO INDEX TEST
125 1 1 1 SELECT DIV AUTO INDEX TEST
126
127 SR7=0 RELOCATE IF SR3 AND 8 ARE BOTH 0.
128 SR7=1 HOLD IF
129
130 SR8=0 SEQUENTIALLY CHANGE DF IF SR3=0
131 SR8=1 HOLD DF
132
133 SR9-11 STARING DATA FIELD
134 (ONLY READ AT START TIME)
135
136 9 10 11
137
138 0 0 0 DF0
139 0 0 1 DF1
140 0 1 0 DF2
141 0 1 1 DF3
142 1 0 0 DF4
143 1 0 1 DF5
144 1 1 0 DF6
145 1 1 1 DF7
146
147 4.2 STARTING ADDRESS
148 ----------------
149
150 THIS PROGRAM STARTS AT LOCATION 0200.
151
152 4.3 PROGRAM AND/OR OPERATOR ACTION
153 ------------------------------
154
155 WITH PROGRAM LOADED IN CORE PROCEED AS FOLLOWS:
156
157 A. INSURE TELETYPE IS ON-LINE.
158
159 B. LOAD ADDRESS 0200.
160
161 C. SET ANY DESIRED OPTIONS IN THE SR.
162
163 D. PRESS CLEAR AND CONTINUE.
164
165 E. TYPE IN THE VALUE OF THE HIGHEST MEMORY IN THE SYSTEM
166 FOLLOWED BY A CARRIAGE RETURN.
167 (EG, 0 FOR 4K, 1 FOR 8K ON UP TO 7 FOR 32K)
168 IF THE INCORRECT NUMBER WAS TYPED, TYPE RUBOUT AND THEN
169 RETYPE THE MEMORY FIELD VALUE.
170
171 NOTE:
172
173 FOR A NORMAL PROGRAM RUN, LOAD THE PROGRAM IN FIELD 0. SET SR TO
174 0200 AND PRESS LOAD ADDRESS. NOW SET SR TO 0000 AND PRESS CLEAR
175 AND CONTINUE, AND RESPOND TO THE TELETYPE WITH THE VALUE OF THE
176 HIGHEST FIELD FOLLOWED BY A CARRIAGE RETURN. THE PROGRAM WILL
177 NOW ACCESS EVERY FIELD FROM EVERY FIELD. AT THE COMPLETION
178 OF A COMPLETE PROGRAM PASS, "KE8-EME" WILL BE TYPED ON THE
179 TELETYPE.
180 \f
181 5. ERRORS
182 ------
183
184 5.1 ERROR HALTS AND DESCRIPTION
185 ---------------------------
186
187 LOC 0225 THE SELECTED STARTING DF IN SR9-11 WAS HIGHER THAN
188 THE HIGHEST MEMORY FIELD DEFINED ON THE TELETYPE.
189
190 LOC 0256 DOUBLE PRECISION ADD (DAD) INSTRUCTION FAILED.
191
192 LOC 0343 DOUBLE PRECISION ADD (DAD) INSTRUCTION FAILED
193 USING AUTO-INDEX.
194
195 LOC 0450 DOUBLE PRECISION STORE (DST) INSTRUCTION FAILED.
196
197 LOC 0560 DOUBLE PRECISION STORE (DST) INSTRUCTION FAILED
198 USING AUTO-INDEX.
199
200 LOC 0637 MULTIPLY INSTRUCTION FAILED.
201
202 LOC 0746 MULTIPLY INSTRUCTION FAILED USING AUTO-INDEX.
203
204 LOC 1066 DIVIDE INSTRUCTION FAILED.
205
206 LOC 1250 DIVIDE INSTRUCTION FAILED USING AUTO-INDEX
207
208 LOC 1505 RELOCATION ERROR.
209
210 LOC 2411 DIVIDE OVERFLOW IN SIMULATION. THIS ERROR SHOULD
211 NEVER OCCUR. (PROCESSOR ERROR)
212
213 LOC 2555 AUTO INDEX ERROR DURING EXECUTION OF
214 AN EAE INSTRUCTION.
215 \f
216 5.2 ERROR PRINTOUTS
217 ---------------
218
219 5.2.1 DAD TEST'S
220 ----------
221
222 DAD TEST ERROR
223
224 IF 0 DF 1
225 MQ ADDR 3000
226 AC ADDR 3001
227
228 L AC MQ
229
230 ORIGINAL 0 4776 5000
231 TO BE ADDED 3001 3000
232 SIMULATED 1 0000 0000
233 ACUTAL 1 0000 0001
234
235 DAD AUTO INDEX TEST ERROR
236
237 IF 0 DF 1
238
239 MQ ADDR 3000
240 AC ADDR 3001
241
242 L AC MQ
243
244 ORIGINAL 0 4776 5000
245 TO BE ADDED 3001 3000
246 SIMULATED 1 0000 0000
247 ACTUAL 1 0000 0001
248
249 IF INDICATES THE FIELD THE PROGRAM IS IN.
250
251 CF INDICATES THE FIELD "DAD" WAS ACCESSING.
252
253 MQ ADDR ADDRESS IN THE DATA FIELD THAT CONTAINS THE LEAST
254 SIGNIFICANT 12 BITS OF THE 24 BIT WORD TO BE ADDED.
255
256 AC ADDR ADDESS IN THE DATA FIELD THAT CONTAINS THE MOST
257 SIGNIFICANT 12 BITS OF THE 24 BIT WORD TO BE
258 ADDED.
259
260 ORIGINAL THE CONTENTS OF THE REGISTER PRIOR TO ISSUING
261 A "DAD" INSTRUCTION.
262
263 TO BE ADDED THE CONTENTS OF THE TWO ADDRESSES TO BE ADDED
264 TO THE AC AND MQ.
265
266 SIMULATED WHAT THE RESULTS SHOULD BE.
267
268 ACTUAL WHAT THE RESULT WAS.
269
270 NOTE: THE ACTUAL MQ SHOULD BE 0000.
271 \f
272 5.2.2 DST TEST'S
273 ----------
274
275 DST TEST ERROR
276
277 IF 0 DF 0
278
279 MQ ADDR 3000
280 AC ADDR 3001
281
282 REG BEFORE DST AFTER DST
283
284 C(L) 0 0
285 C(MQ) 3000 3000
286 C(MQ ADDR) 3000
287 C(AC) 3001 3001
288 C(AC ADDR) 0000
289
290 DST AUTO INDEX TEST ERROR
291
292 IF 1 DF 1
293
294 MQ ADDR 3000
295 AC ADDR 3001
296
297 REG BEFORE DST AFTER DST
298
299 C(L) 0 0
300 C(MQ) 3000 3000
301 C(MQ ADDR) 3000
302 C(AC) 3001 3001
303 C(AC ADDR) 0000
304
305 IF INDICATES THE FIELD THE PROGRAM IS IN.
306
307 DF INDICATES THE FIELD "DST" WAS STORING IN.
308
309 MQ ADDR ADDRESS IN THE "DF" THAT THE MQ IS TO BE STORED
310
311 AC ADDR ADDRESS IN THE "DF" THAT THE AC IS TO BE STORED
312
313 BEFORE DST WHAT THE REGISTERS WERE PRIOR TO ISSUING A "DST"
314 INSTRUCTION.
315
316
317 AFTER DST WHAT THE REGISTERS WERE AFTER DST
318 WAS EXECUTED.
319
320 NOTE: THE CONTENTS OF THE AC ADDR SHOULD BE 3001.
321 \f
322 5.2.3 MUY TEST'S
323 ----------
324
325 MUY TEST ERROR
326
327 IF 0 DF0
328
329 MULTIPLICAND ADDR 3000
330
331 L MTPL AC MQ SC
332
333 ORIGINAL 0 4777 0000 3000
334 SIMULATED 0 1677 5000 0014
335 ACTUAL 0 1677 5001 0014
336
337 MUY AUTO INDEX TEST ERROR
338
339
340 IF 0 DF 0
341
342 MULTIPLICAND ADDR 3000
343
344 L MTPL AC MQ SC
345
346 ORIGINAL 0 4777 0000 3000
347 SIMULATED 0 1677 5000 0014
348 ACTUAL 0 1677 5001 0014
349
350 IF INDICATES THE FIELD THE PROGRAM IS IN.
351
352 DF INDICATES THE FIELD THE MULTIPLICAND IS IN.
353
354 MULTIPLICAND ADDR ADDRESS WHERE THE MULTIPLICAND
355 IS LOCATED.
356
357 MTPL THE MULTIPLICAND.
358
359 ORIGINAL CONTENTS OF REGISTERS PRIOR TO ISSUING A
360 MULTIPLY INSTRUCTION.
361
362 SIMULATED WHAT THE RESULTS SHOULD BE.
363
364 ACTUAL WHAT THE RESULTS WERE.
365
366 NOTE: ACTUAL MQ SHOULD BE 5000.
367 \f
368 5.3.4 DIV TEST'S
369 ----------
370
371 DIV TEST ERROR
372
373 IF 0 DF 0
374
375 DIVISOR ADDR 3000
376
377 L DIVS AC MQ SC
378
379 ORIGINAL 0 4777 1377 5000
380 SIMULATED 0 4000 3777 0015
381 ACTUAL 0 4001 3777 0015
382
383 DIV AUTO INDEX TEST ERROR
384
385 IF 0 DF 0
386
387 DIVISOR ADDR 3000
388
389 L DIVS AC MQ SC
390
391 ORIGINAL 0 4777 1377 4777
392 SIMULATED 0 4000 3777 0015
393 ACTUAL 0 4001 3777 0015
394
395 IF INDICATES THE FIELD THE PROGRAM IS IN.
396
397 DF INDICATES THE FIELD THE DIVISOR IS IN.
398
399 DIVISOR ADDR ADDRESS WHERE THE DIVISOR IS LOCATED.
400
401 DIVS THE DIVISOR.
402
403 ORIGINAL CONTENTS OF THE REGISTERS PRIOR TO ISSUING
404 A DIVIDE INSTRUCTION.
405
406 SIMULATED WHAT THE RESULTS SHOULD BE.
407
408 ACTUAL WHAT THE RESULTS WERE.
409
410 NOTE: ACTUAL AC SHOULD BE 4000.
411 \f
412 5.3.5 AUTO-INDEX FAILURE
413 ------------------
414
415 DAD, (DST), (MUY), OR (DIV) AUTO INDEX TEST ERROR
416
417 IF 0 DF0
418
419 AI10 SHOULD BE 3001
420 AI10 IS 3000
421
422 "SHOULD BE" IS THE CONTENTS OF AUTO INDEX REGISTER 10 BEFORE
423 EXECUTING A EAE INSTRUCTION IN ADDRSS 0007.
424
425 "IS", IS THE CONTENTS OF THE AUTO INDEX REGISTER
426 AFTER THE EXECUTION OF THE EAE INSTRUCTION.
427
428 NOTE: AI10 "IS" SHOULD BE 3001.
429 SWITCH REGISTER SETTINGS DO NOT APPLY
430 TO THIS TYPE OF ERROR. AN ERROR OF THIS
431 TYPE WILL BE PRINTED FOLLOWED BY A HALT.
432 PRESSING CONTINUE (NOT CLEAR AND CONTINUE)
433 WILL ENTER A SCOPE LOOP.
434
435 6.0 MISCELLANEOUS
436 -------------
437
438 6.1 EXECUTION TIME
439 --------------
440
441 AT THE COMPLETION OF ONE COMPLETE PROGRAM PASS, "KE8 EME",
442 WILL BE PRINTED ON THE CONSOLE TELETYPE UNLESS SR2=1,
443 WHICH WOULD ONLY RING THE TELETYPE BELL.
444
445 AMOUNT OF MEMORY
446 (TIME MIN:SEC)
447
448 4K 8K 12K 16K
449 0:2.5 0:11 0:25 0:45
450
451 20K 24K 28K 32K
452 1:15 1:45 2:30 3:30
453
454 7.0 PROGRAM DESCRIPTION
455 -------------------
456
457 SEE DESCRIPTION AT THE BEGINNING OF EACH TEST IN THE
458 PROGRAM LISTING.