-
Notifications
You must be signed in to change notification settings - Fork 0
/
ecos.html
639 lines (584 loc) · 32.4 KB
/
ecos.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>fritzm.github.io - PDP-11/45: ECOs</title>
<meta name="description" content="">
<meta name="author" content="Fritz Mueller">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="https://fritzm.github.io/theme/html5.js"></script>
<![endif]-->
<!-- Le styles -->
<link href="https://fritzm.github.io/theme/bootstrap.min.css" rel="stylesheet">
<link href="https://fritzm.github.io/theme/bootstrap.min.responsive.css" rel="stylesheet">
<link href="https://fritzm.github.io/theme/local.css" rel="stylesheet">
<link href="https://fritzm.github.io/theme/pygments.css" rel="stylesheet">
<!-- Photoswipe -->
<link rel="stylesheet" href="https://fritzm.github.io/theme/photoswipe.css">
<link rel="stylesheet" href="https://fritzm.github.io/theme/default-skin/default-skin.css">
<script src="https://fritzm.github.io/theme/photoswipe.min.js"></script>
<script src="https://fritzm.github.io/theme/photoswipe-ui-default.min.js"></script>
<script src="https://fritzm.github.io/galleries.js"></script>
<script type="text/javascript">
var pswipe = function(gname, index) {
var pswpElement = document.querySelectorAll('.pswp')[0];
var items = galleries[gname];
var options = { index: index };
var gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, items, options);
gallery.init();
};
</script>
<!-- So Firefox can bookmark->"abo this site" -->
<link href="https://fritzm.github.io/feeds/all.rss.xml" rel="alternate" title="fritzm.github.io" type="application/rss+xml">
</head>
<body>
<div class="navbar">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="https://fritzm.github.io">fritzm.github.io</a>
<div class="nav-collapse">
<ul class="nav">
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="content">
<div class="row">
<div class="span9">
<div class='article'>
<div class="content-title">
<h1>PDP-11/45: ECOs</h1>
Sun 07 June 2020
by <a class="url fn" href="https://fritzm.github.io/author/fritz-mueller.html">Fritz Mueller</a>
</div>
<div><p><em>[A catch-up article, documenting discoveries of Jan/Feb 2019 and some additional research while writing
up.]</em></p>
<p>Okay, per last article, specifics of parity-handling on my CPU indicate that it is missing several significant
ECOs. I spent some time seeing if I could dig up and/or puzzle out more details on ECOs issued for the CPU,
MMU, FPU, chassis, power supplies, and peripherals. What I could find I will summarize here.</p>
<h3>ECO Designations</h3>
<p>This material is excerpted from
<a href="http://bitsavers.org/pdf/dec/pdp8/pdp8e/PDP-8E_ECO_LOG_Dec74.pdf">PDP-8E_ECO_LOG_Dec74.pdf</a> on bitsavers. Of
particular note is the distinction between "ECOs", implemented at the factory, and "FCOs", designed to be
implemented in the field. The latter are distinguishable by the presence of an additional letter inserted in
their identifier:</p>
<blockquote>
<p><strong>ECO IDENTIFIER</strong></p>
<p>Every ECO that is issued for a product is entered in the DEC-O-LOG with an identification number that
includes the equipment type or option number, followed by a unique sequential number. For example, the ECO
identifier “LA30-00053" is assigned to the 53rd ECO issued for the LA30 DECwriter.</p>
<p><strong>FIELD DISTRIBUTION</strong></p>
<p>Depending upon the nature of the engineering change, ECOs are categorized in one of five groups, which are
assigned letter codes <em>F, D, DF, P, and M.</em> The appropriate field distribution code for the ECO appears on
the first line of the DEC-O-LOG entry. </p>
<p><ul>
<em>F Code:</em> When the ECO has been engineered for field retrofit, it is coded “F”. <em>A Field Change Order</em> (FCO)
is prepared by Field Service. The FCO provides a complete description of the engineering change and includes
instructions for making the change to existing equipment installations.</p>
<p>When an F-coded ECO is issued, a letter code is inserted as the first character of the sequential ECO
identifier number. The letter code indicates the level of urgency or importance of the ECO as follows:</p>
<p><ul><pre style="border: none; background-color: inherit">
A Mandatory change - highest priority D Low Priority change
B Mandatory change E Optional change for product improvement
C Mandatory change if specified
trouble symptoms are observed
</pre></ul></p>
<p><ul><ul><ul>
<div style="text-align:center"><strong>NOTE</strong></div></p>
<p><strong>All ECOs issued for a product are entered into the DEC-O-LOG. Usually, the publication process that
produces updated DEC-O-LOG pages is triggered by an F-coded ECO. At that time, any D, DF, P, or M-coded ECOs
that precede the latest FCO are also published to provide a complete history of all ECO activity for the
product.</strong>
</ul></ul></ul></p>
<p><em>D Code:</em> An ECO that changes the design of an equipment in production is coded “D”. This category includes
changes to: </p>
<p><ul>
Production models, as a normal step in the design phase of a new product.</p>
<p>All future production units of a specific equipment type or option, and the ECO is not to be retrofitted. </p>
<p>Production units that include special features ordered by a specific customer.
</ul></p>
<p>ECOs that are coded “D” are not retrofitted into existing units installed in the field. They are entered in
the DEC-O-LOG for information purposes, and customers can purchase them from DEC.</p>
<p><em>DF Code:</em> The “DF" field distribution code is assigned to ECOs that change the design of products that have
been released to the field in limited quantity, when the retrofit is essentially a part of the design
process.</p>
<p><em>P Code:</em> When an ECO is issued solely for the purpose of changing engineering drawings or other engineering
documentation, it is coded P (for Prints).</p>
<p><em>M Code:</em> When an ECO is issued to change mechanical parts, structural components, or other items that do
not affect existing units in the field, it is coded "M". M-coded ECOs cannot be purchased for retrofit.
</ul></p>
<p><strong>ML, DD, and WL REVISIONS</strong></p>
<p>A <em>Master Drawing List</em> (ML) or a <em>Drawing Directory</em> (DD) lists all engineering drawings included in the
engineering drawing set for a specific product or option. If an ECO causes any drawing in that set to be
revised, the ML or DD is revised to indicate the latest revisions of all drawings in the set. The revision
code for the ML or DD that reflects the ECO is included in the first line of that ECO entry in the
DEC-O-LOG.</p>
<p>A <em>Wire List</em> (WL) is used to indicate all wired connections for an equipment or option System Unit. If an
ECO calls for changes in this wiring, the WL is appropriately revised. The revision code for the WL that
reflects the ECO is included in the first line of that ECO entry in the DEC-O-LOG.</p>
</blockquote>
<h3>DEC-O-LOGs on Bitsavers</h3>
<p>Unfortunately, at time of writing the selection of DEC-O-LOGs archived at bitsavers
(<a href="http://bitsavers.trailing-edge.com/pdf/dec/fieldService/dec-o-log/">here</a>) is pretty sparse with respect to
the '11/45. There is a 1974 log for the M8105 TMC CPU board, a 1973 log for the M8108 SSR MMU
board, and that's pretty much it for the '11/45 :-(</p>
<p>Here's an entry from the M8105 log that <em>is</em> found there, relating to the subject of the previous article:</p>
<p><img style="display:block; margin-left:auto; margin-right:auto" src="/images/pdp11/M8105-D0005.jpg" title="FCO
M8105-D0005"/></p>
<p>Unfortunately, no cut/jump list here (some log entries do contain these). There is a bunch of useful info to
be gleaned, though:</p>
<ul>
<li>
<p>The complete trap parity to 114 mod involved all of the M8100 (DAP), M8103 (RAC), M8105 (TMC), M8106 (UBC)
boards, plus mods to the processor wire-wrap backplane.</p>
</li>
<li>
<p>All of these FCOs are given prefix "D", meaning DEC viewed fixing these in the field as "low priority".</p>
</li>
<li>
<p>A <em>reason</em> for the change is given: "Parity errors are time consuming to detect..." I suppose what they
mean is that adding code to sniff for possible parity errors, in order to distinguish these from other
possible sources of trap 4, was getting in the way of handling the other trap 4 sources promptly. I can't
see that there would be any difference in processor overhead per se in dispatching between vector 4 and
vector 114?</p>
</li>
<li>
<p>Machines which would trap parity to 114 as-delivered were phased into production starting in March 1973.
This is consistent with the low serial number and component date codes in my machine, confirming its
manufacture somewhere in 1972.</p>
</li>
<li>
<p>The note about the MS11-B/C (M8110 SMC) is also interesting, in conjunction with fact that the re-work
is called out for "all core-parity PDP-11/45's".</p>
</li>
</ul>
<h3>PDP-11/45 11/50 MOS Memory Troubleshooting Guide</h3>
<p>As it turns out, <a href="http://www.bitsavers.org/www.computer.museum.uq.edu.au/pdf/DEC-11-HMSTS-A-D%20PDP-11-45,%2011-50%20MOS%20Memory%20Troubleshooting%20Guide.pdf">this
document</a>
is a bit of a gold mine, containing a complete list of ECO's for the '11/45 CPU/MMU/FPU modules, console, and
backplane, as of 1974. There are brief notes, dates, and revision codes for each.</p>
<p>In the case of the M8105, we can compare this with the DEC-O-LOG we do have on bitsavers. This shows that the
"Notes" in the troubleshooting guide in some cases give information not included in the corresponding
DEC-O-LOG entries. For example, the DEC-O-LOG entry for M8105-00002 says only:</p>
<ul><blockquote>
Change disable gate in priority arbitration.
</blockquote></ul>
<p>...while the troubleshooting guide offers a bit more explanation:</p>
<ul><blockquote>
Corrects FP TRAPS to location 4 where BRs below 7 occur at the same time.
</ul>
</blockquote>
<p>The troubleshooting guide also calls out several "clusters" of interdependent ECOs:</p>
<ul>
<li>
<p><strong>Parity</strong>, as remarked above: M8100-00003, M8103-00005, M8105-00005, M8106-00007/00008/00012/00012A,
KB11-A-00015, and M8110-00018.</p>
<p>Separately, M8106-00003, from August 1972, is annotated "Adds disable jumper for UNIBUS PARITY", as
observed missing in my hardware in the previous article.</p>
</li>
<li>
<p><strong>CMP.B, BIT.B</strong>: M8100-00002A, KB11-A-00006. These are dated June, 1972. Hmm, I should check these
instructions on my machine...</p>
</li>
<li>
<p><strong>Speed-up</strong>: M8104-00002, M8106-00005A, KB11-A-00012A/00013. Not sure what is "sped up" here, but perhaps
Unibus signaling; the M8106 change is annotated "Clear MSYN with T1".</p>
</li>
</ul>
<p>Also of note are a few items that seem to relate directly to previously observed behaviors of my machine:</p>
<ul>
<li>
<p><strong>KM11 uPB</strong>: M8109-00015 "CPU fails to halt on selected ROM state when micro program break mode is set on
maintenance card. Detected when running a test sequence not containing a pause, i.e., 150ns cycle time." Ah
ha! I had run across this (mis)behavior previously, noted <a href="https://fritzm.github.io/diagnostics-5.html">here</a>.</p>
</li>
<li>
<p><strong>Slots 26-28</strong>: KB11-A-0008 "Signal missing in small peripheral controller slots in KB11-A (slots 26-28)."
Another ah ha... This seems likely related to issues noted <a href="https://fritzm.github.io/serial-console.html">here</a>.</p>
</li>
<li>
<p><strong>Burnt +5V Trace</strong>: KB11-00001: "Reworks backpanels with 24 AWG wire in parallel with +5 V etch." This may
explain the burnt trace and "extra red wire" as noted <a href="https://fritzm.github.io/initial-power-on.html">here</a>. </p>
</li>
</ul>
<h3>Jay Jaeger DEC-O-LOG Microfiche Transcriptions</h3>
<p>After an ask on the cctalk mailing list, Jay Jaeger commented that he has some complete sets of DEC-O-LOGs on
microfiche! Though he has no equipment with which to scan fiche, he very kindly took the time to manually
transcribe those that seemed like they might be of most interest to me (thanks, Jay!) Jay has made his
transcriptions publicly available <a href="https://drive.google.com/open?id=0B2v4WRwISEQRWWFFdVpCZWFTZEU">here</a>, under
pdf/dec/fieldService/dec-o-log.</p>
<p>There is a lot there, and it's worth a read. Here are some excerpts I found relevant to discussions and
investigations here:</p>
<ul>
<li>
<p>On the parity rework:</p>
<blockquote>
<p>M8100-C0003 CODE: F CS C Etch C JAN-73 [FCO]</p>
<p>Problem: Parity errors require the generation of trap vector 114<br>
Correction: Modify trap vector logic<br>
Required on all 11/45 systems with parity</p>
</blockquote>
<p>
<blockquote>
<p>M8103-C0005 CODE: F CS F MAR-73 [FCO]</p>
<p>Problem: Parity errors need special abort logic to assert ZAP signal<br>
Correction: Modify ZAP gate on RACA</p>
</blockquote>
<p>
<blockquote>
<p>M8105-D0005 CODE: F CS F MAR-73 [FCO]</p>
<p>Parity errors are time consuming to detect through vector 4. Core parity requires these changes:
M8100-D0003, M8103-D0005, M8105-D0005, M8106-D0007, KB11A-D0015 and M8106-D0008</p>
<p>FCO's may be installed separately - each FCO relies upon the others only to fully implement parity.</p>
<p>NOTE: MS11-B/C semiconductor parity memories with etch revision B M8110s will NOT function properly
with these FCOs. A new M8110 is being designed to function with these FCOs.</p>
</blockquote>
<p>
<blockquote>
<p>M8106-D0007 CODE: F CS: J [FCO]</p>
<p>Problem: Parity errors are time consuming to detect through vector 4<br>
Correction Allow processor to trap to 114 for parity errors.</p>
</blockquote>
<p>
<blockquote>
<p>M8106-D0008 CODE: F CS: K MAR-73 [FCO]</p>
<p>Problem: UNIBUS parity errors cause machine to halt<br>
Correction: Disable UBCB UNI PERF [ 1 ] L from generating UBCB PARITY ERR SET L.</p>
</blockquote>
<p>
<blockquote>
<p>M8106-C0012 CODE: F CS: M JUN-73 [FCO]</p>
<p>Problem: MOS Parity memory is too tight<br>
Correction: Strobe parity errors sooner<br>
NOTE: See M8106-C0012A</p>
<p>Rework in parity systems with M7259 or etch revision C M8110s, rework all systems with parity and all
PDP11-45s at next PM.</p>
<p>M8106-C0012A CODE: F JUN-73 [FCO]</p>
<p>The rework procedure in M8106-C0012 in steps #25 and #26 incorrectly references an R22. Should be R20.</p>
</blockquote>
<p>
<blockquote>
<p>KB11A-D0015 CODE: F DD:M WL:L [FCO] MAR-73</p>
<p>Problem: Detection of parity errors through vector 4 is slow.<br>
Correction: Detect parity errors through vector 114.</p>
<p>Wire Adds: D11D2 to A06P1, E12A1 to F11F1, C09K1 to E12A1</p>
<p>NOTE: This FCO must be installed in conjunction with the following FCOs to implement core parity:
M8100-D0003, M8103-D0005, M8106-D0007 and M8106-D0008. Each of these related FCOs may be installed
separately.</p>
<p>Note that MS11-B/C semiconductor parity memories with etch revision B M8110s will NOT function properly
when above FCOs are installed. A new M8110 is being designed to function with these FCOs.</p>
</blockquote>
<p>Okay, much of this confirms deductions worked out in the previous article. The big additional clue here
is that we actually have the backplane wire adds this time!</p>
<ul>
<li>
<p>D11D2 to A06P1: This forwards UBCB PARITY ERR L, already at the TMC card, on to DAPE E7. This provides
parity condition input to the extended trap vector generation logic explored in the previous article.</p>
</li>
<li>
<p>E12A1 to F11F1 and C09K1 to E12A1: These relate to enhanced abort processing -- they distribute UBCB PE
ABORT L to TMCC E87, TMCE E38, and RACA E52, which I have not previously inspected.</p>
</li>
</ul>
<p>Looking at the RAC changes first, we have this:</p>
<p><img style="display:block; margin-left:auto; margin-right:auto" src="/images/pdp11/RACA-ZAP.jpeg"
title="RACA ZAP"/></p>
<p>...which, per expectation, is not implemented on the RAC board I am running; no connection from CK1 to
E52, and no connection from E52 to E101. The ZAP signal is used to force the microcode counter to 200 on
a trap or on power up, kicking off the exception handling microcode flow on sheet FLOWS 12. I'm not sure
why parity required special plumbing here; by my read a parity error should end up setting TMCC ABORT H
which should also result in a ZAP?. My guess would be the special plumbing allows the trap to be taken at
an earlier clock phase?</p>
<p>On the TMC we have these:</p>
<p><img style="display:block; margin-left:auto; margin-right:auto" src="/images/pdp11/TMCC-E87.jpeg"
title="TMCC E87"/>
<p>
<img style="display:block; margin-left:auto; margin-right:auto" src="/images/pdp11/TMCE-E38.jpeg"
title="TMCE E38"/></p>
<p>Also related to abort signaling, and also not implemented on my machine (no connection from FF1 to E87 or
E38, pins 12 and 10 common on E38). So perhaps the reason to move parity to its own trap vector wasn't to
avoid extra discrimintation logic in the trap 4 handler, but rather to enable an accelerated abort path
without affecting extablished behavior of the other machine exceptions on vector 4? Curious...</p>
</li>
<li>
<p>On CMP.B, BIT.B:</p>
<blockquote>
<p>M8100-A002A CODE: DF JUN-72 [FCO]</p>
<p>Problem: Disposition code on M8100-A0002 is 02: phase-in<br>
Correction: Change to code 03: rework immediately.<br>
Problem: CMP.B and BIT.B instructions with SM0 and DM0 and DF7 will destroy the PC<br>
Correction: Inhibit PCB clock under those conditions</p>
</blockquote>
<p>The troubleshooting guide mentions that that this change also needs KB11-A-00006, but that is not included
in Jay's transcript (bummer).</p>
<p>In any case, the description here tells us a lot more about the exact nature of the bug. <code>SM0</code>, <code>DM0</code>,
<code>DF7</code> here are microcode conditions; collectively this description implicates a CMP or BIT instruction,
either byte or word length, with two registers as arguments, and the second argument being the PC (R7).</p>
<p>CMP or BIT should <em>not</em> modify their second argument, but inspection of the the microcode flows shows that
under this particular set of conditions the flow (<code>FET.00</code>, <code>FET.10</code>, <code>IRD.00</code>, <code>EXC.90</code>) is shared with
many other E/class instructions which <em>should</em> do. So an update inhibit derived from existing microcode
outputs to distinguish this particular set of conditions is needed, and thus this FCO.</p>
<p>Here again the schematics hold some clues. The relevant bit is the net for CLKPCB H on drawing DAPJ:</p>
<p><img style="display:block; margin-left:auto; margin-right:auto" src="/images/pdp11/DAP-CLKPCB.jpeg"
title="DAPJ CLKPCB H"/></p>
<p>The AND terms of E42 serve as inhibits for the update signal, which otherwise sources from TIGC T1 H via
E43. The top three terms in the diagram inhibit on cases of <code>UPCB=2 * ~SF7</code>, <code>UPCB=0</code>, or <code>UPCB=3 *
~DF7</code> (with some term elimination on the first case). This would be the vanilla implementation of the
UPCB microcode signals.</p>
<p>The bottom-most AND term seems to be the one involved in the FCO. This adds an additional inhibit,
<code>UPCB=3 * ICLASS * UPWE</code>, which would be active in the situation described in the FCO description. Some
minor additional clues here are that the handwriting for the signal names here doesn't quite match the
rest of the drawing and that the backplane pin assignment for bringing in UPWE00 is not contiguous with
the others in this net; together these suggest revision. From this we could also guess that the missing
corresponding KB11-A-00006 probably involves bringing signal RACB UPWE00 H to pin E06V2.</p>
<p>Inspection of my DAP modules shows the predicted changes implemented around E42 with green-wires, so it
looks like my machine <em>did</em> get this FCO, either in the factory or the field: </p>
<p><img src='/images/pdp11/DAP-E42_thumbnail_tall.jpeg' title='Evidence of FCO M8100-A00002A around E42 on DAP board' onclick='pswipe("pdp11",84);'/></p>
<p>Next time I have the machine fired up I'll experiment with some BIT instructions from the front panel and
make sure.</p>
</li>
<li>
<p>On the "speedup" fixes:</p>
<blockquote>
<p>M8106-A0005 CODE: F CS: F DEC-72 [FCO]</p>
<p>Problem: Present board not meeting cycle time specifications for UNIBUS.<br>
Correction: Add logic changes.<br>
NOTE: This FCO must be installed in conjunction with FCO KB11A-A0012</p>
</blockquote>
<p>
<blockquote>
<p>M8106-A005A CODE: F JAN-73 [FCO]</p>
<p>Problem 1: Rework procedure in M8106-A0005 is incorrect.<br>
Correction 1:<br>
In step #2 changed E83-11 to E83-13<br>
In step #4 change R23 to R22<br>
Problem 2: The assembly hole drawing does not specify which side of the board etch cut #13 is on<br>
Correction 2: Side 2</p>
</blockquote>
<p>
<blockquote>
<p>KB11A-A0012 CODE: F DD: J WL: J DEC-72 [FCO]</p>
<p>Problem: 11/45 processor does not meet UNIBUS cycle time specification.<br>
Correction: Correct KB11-A back panel attached ADD/DELETE sheet and install FCO M8106-A0005 to UBC
module.</p>
</blockquote>
<p>
<blockquote>
<p>KB11A-A012A CODE: F DEC-72 [FCO]</p>
<p>Problem: Not all the add/deletes listed on sheet 2 of KB11A-A0012 are necessary for this retrofit.<br>
Correction: use the ADD/DELETE sheet included in this supplement for FCO KB11A-A0012.</p>
</blockquote>
<p>
<blockquote>
<p>KB11A-E0013 CODE: F DD: K WL: K JAN-73 [FCO]</p>
<p>Problem: Improve performance of PDP-11/45 processor as UNIBUS master.<br>
Correction: Revise KB11-A Wire List as defined the ADD/DELETE sheet and install etch revision C M8104
module</p>
<p>NOTE: This FCO completes the total FCO package necessary for improving the speed performance of the
PDP-11/45 with core memory. Note prerequisite FCOs are KB11A-A0012, KB11A-A012A and M8106-A0005.</p>
</blockquote>
<p>Well, definitely Unibus timing related then. There is not very much info to start from here, and logs for
the M8104 module are also missing from Jay's transcripts (perhaps not issued since no F-coded ECOs for
this board?)</p>
<p>We <em>do</em> see from above, though:</p>
<ul>
<li>Involvement of M8106 E83 (sheet UBCB, driving CLR DESKEW L). Handwriting and "white out" artifacts
around this gate on the engineering drawings also suggest rework.</li>
<li>Involvement of M8106 R22 (also sheet UBCB, pull up on fastbus parity error handling)</li>
<li>The troubleshooting guide annotates M8106 00005 "CLR MSYN with T1". Handwriting mismatch on the clock
input of the MSYN flip-flop (sheet UBCB, E79) may be related.</li>
<li>At least 13 etch cuts existed in the FCO (!)</li>
</ul>
<p>Looking through the drawings a bit more here after this, I noticed for the first time (doh!) that there is
an updated set of Unibus timing diagrams <em>explicitly</em> to be used with M8104 rev C and post- KB11-A-E00013.
The differences seem to be around the bus long pause cycle. This prompted another look through the 1972
and 1976 KB11-A maintenance manual, and sure enough, in section 8.7.2 of the 1976 version we find:</p>
<blockquote>
<p>ECO KBl l-A No. 13 ("Speed-up ECO"), in conjunction with Revision C or higher of the PDR Module (M8104),
has changed the data transfer operations. Explanations of both versions are presented in this paragraph.
(In general, ECO KB11-A No. 13 eliminated the bus long pause cycle.)</p>
</blockquote>
<p>...followed by much description of the signalling differences between pre- and post- KB11-A-E00013
machines. This can definitely be mined for further clues.</p>
<p>I did verify that at least some of this rework is <em>not</em> implemented on my M8106 boards (specifically,
configuration of E83 on my boards does not match either of the apparent revisions in the drawings).
Definitely a lot more work to do puzzling this one out. Even though I'll continue to investigate the
details of this change, it probably ends up being too much to undertake without complete documentation.</p>
</li>
<li>
<p>On KM11 uPB Break:</p>
<blockquote>
<p>M8019-C0015 CODE: F CS: R CS: M3 APR-74 [FCO]</p>
<p>Problem: CPU fails to halt on selected ROM state when Micro Program break mode is set on maintenance
card. The problem is detected when running a test sequence not containing a pause 150 nsec cycle time.
Correction: Delete U/L: CTRL latch flipflop and add latch at input gating. Test by running a branch
dot with ROM match at 343.</p>
<p>FOR ETCH REVISION C:</p>
<p>Cuts:<br>
Side 2 at E12 pin 9<br>
Side 2 E32 pin 9 to E31 pin 13<br>
Side 2 E32 pin 9 to E32 pin 10<br>
Side 2 at E42 pin 13<br>
Remove jumper E22 pin 14 to E35 pin 7</p>
<p>Jumpers:<br>
E12 pin 9 to E22 pin 11<br>
E42 pin 13 to E35 pin 7<br>
E42 pin 8 to E32 pin 9<br>
E32 pin 10 to E31 pin 13</p>
<p><em>(etch revision F instructions ellided; in Jay's transcript linked above)</em></p>
<p>NOTE: Etch revision F boards are reworked from CS revision P to R. Etch revision C boards are reworked
from CS revision M2 to M3.</p>
</blockquote>
<p>My M8109 timing generator is etch C. There are a lot of ECOs on this board, culminating in CS level M2
ahead of this FCO. In principle, many/most of these are verifiable by inspection, based on information
contained in Jay's transcripts.</p>
<p>This one is a bit deep, and I haven't really covered much about the M8109 yet. I'll probably take up
analysis of this problem, the associated FCO fix, and inspection/determination of the revision level of
my board as its own topic in a future article. I'd like to implement this fix if it proves not
overly complicated.</p>
</li>
<li>
<p>On slots 26-28:</p>
<blockquote>
<p>KB11A-B0008 CODE: DF DD: E WL: E SEP-72 [FCO] </p>
<p>Problem: Small peripheral controller slots in KB11-A panel, slots 26 thru 28, are not wired to accept
some quad module controllers: NPG, PA, PB, LTC, ACLO, DCLO and +15V are missing. Correction: Revise
wiring to include signals listed above.</p>
</blockquote>
<p>Wow, lots missing from these slots besides the +15V and NPG I had noticed. In other correspondence, Jay
mentions that the DL11 (with which I was having trouble in these slots) is explicitly mentioned elsewhere
in this FCO.</p>
</li>
<li>
<p>On the burnt-trace / extra wire situation:</p>
<blockquote>
<p>KB11-00001 CODE: D May-72 [ECO] </p>
<p>Problem: Etch carrying +5V current from Mate-n-Lock pins to backpanel pins is not heavy enough to carry
required current. Correction: Run 24AWG wire in parallel with etch on panels which already have
Mat-n-Lock assembly installed. Increase thickness of conductor with solder bead if Mate-n-Lock assembly
not installed. PDP-11/45 system serial number 101 and later.</p>
</blockquote>
<p>Sounds about right, though the excerpt does not mention the exact trace or connector.</p>
</li>
</ul>
<p>There are a good handful of others described in the DEC-O-LOG transcriptions as well. Probably worth making a
chronological (rather than topical) pass through each of the logs and each of my boards. For another time...</p>
<h3>Things still sought</h3>
<ul>
<li>
<p>Somebody to scan Jay's DEC-O-LOG fiche, so the complete contents can be made available on bitsavers. Jay
kindly offered to lend these out to have them scanned. If you have the equipment for this and would be
interested in helping out, please drop a line on the cctalk mailing list!</p>
</li>
<li>
<p>Information from FCO "kits", including cut/jump lists, diagrams, and instructions. I've not yet seen any
of these, so I'm unsure what form they take, or where we might find them?</p>
</li>
<li>
<p>Alternate versions of the '11/45 engineering drawings. These can be quite useful for puzzling out the
contents of ECOs by visually "diffing" them. So far I have only seen the June 1974 and April 1976 versions,
which are currently available at bitsavers.</p>
</li>
<li>
<p>PDP-11/45 backplane wirelists. I have never seen one of these. The wirelist section in the commonly
available PDP-11/45 engineering drawing sets actually describes the power harness, and not the backplane.</p>
</li>
</ul></div>
<hr>
</div>
</div>
<div class="span3">
<div class="well" style="padding: 8px 0; background-color: #FBFBFB;">
<ul class="nav nav-list">
<li class="nav-header">
Site
</li>
<li><a href="https://fritzm.github.io/archives.html">Archives</a>
<li><a href="https://fritzm.github.io/tags.html">Tags</a>
<li><a href="https://fritzm.github.io/feeds/all.rss.xml" rel="alternate">RSS feed</a></li>
</ul>
</div>
<div class="well" style="padding: 8px 0; background-color: #FBFBFB;">
<ul class="nav nav-list">
<li class="nav-header">
Categories
</li>
<li><a href="https://fritzm.github.io/category/arcade-games.html">Arcade Games</a></li>
<li><a href="https://fritzm.github.io/category/math.html">Math</a></li>
<li><a href="https://fritzm.github.io/category/micros.html">Micros</a></li>
<li><a href="https://fritzm.github.io/category/pdp-11.html">PDP-11</a></li>
<li><a href="https://fritzm.github.io/category/programming.html">Programming</a></li>
<li><a href="https://fritzm.github.io/category/radios.html">Radios</a></li>
</ul>
</div>
<div class="social">
<div class="well" style="padding: 8px 0; background-color: #FBFBFB;">
<ul class="nav nav-list">
<li class="nav-header">
Social
</li>
<li><a href="http://facebook.com/fritzmueller">facebook</a></li>
<li><a href="http://instagram.com/infrafritz">Instagram</a></li>
<li><a href="http://www.linkedin.com/pub/fritz-mueller/a/679/62/">LinkedIn</a></li>
<li><a href="http://jsfiddle.net/user/fritzm/fiddles/">JSFiddle</a></li>
<li><a href="https://github.com/fritzm">GitHub</a></li>
</ul>
</div>
</div>
</div>
</div> </div>
<footer>
<br />
<p><a href="https://fritzm.github.io">fritzm.github.io</a> © Fritz Mueller 2023</p>
</footer>
</div> <!-- /container -->
<!-- Photoswipe -->
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
<div class="pswp__bg"></div>
<div class="pswp__scroll-wrap">
<div class="pswp__container">
<div class="pswp__item"></div>
<div class="pswp__item"></div>
<div class="pswp__item"></div>
</div>
<div class="pswp__ui pswp__ui--hidden">
<div class="pswp__top-bar">
<div class="pswp__counter"></div>
<button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
<button class="pswp__button pswp__button--share" title="Share"></button>
<button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
<button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
<div class="pswp__preloader">
<div class="pswp__preloader__icn">
<div class="pswp__preloader__cut">
<div class="pswp__preloader__donut"></div>
</div>
</div>
</div>
</div>
<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
<div class="pswp__share-tooltip"></div>
</div>
<button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
</button>
<button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
</button>
<div class="pswp__caption">
<div class="pswp__caption__center"></div>
</div>
</div>
</div>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="https://fritzm.github.io/theme/bootstrap-collapse.js"></script>
</body>
</html>