On Tue, Feb 27, 2018 at 2:46 PM, Rich Alderson via cctalk < cctalk@classiccmp.org> wrote: > > Fast forward 20 years, to Living Computer Museum, where a KI-10 based > DEC-1070 > was undergoing restoration. Diagnostics were needed, so the resident > TOPS-20 > programmer laid hands on the MAINDEC sources for the KI-10 and proceeded to > compile them all and generate paper tapes of the results. All went > smashingly > well until the multiplication test. > > The diagnostic source for this test uses a macro to build a set of test > values > for X**2 where X is a power of 2. Internally, Macro-20 uses the IMULM > instruction to build the results. In the KA-10 manual, IMULx of 2**35 * > 2**35 > is supposed to store the high order part of the result into the 36 bit word > addressed by the instruction, and set the overflow bit. > > On the Toad-1 (and on the Toad-2 prior to our discovery of this bug), a > zero is > stored instead. Since we compiled the KI-10 diagnostics on the Toad-1, > this > incorrect result was placed on the diagnostic paper tape, and the KI-10 > seemed > to fail the diagnostic. Imagine our chagrin when days of trying to > correct the > problem led to the conclusion that the diagnostic was incorrect. > > Rich >
This is a great story! And it probably indicates that when developing the Toad-1 this particular diagnostic was never run from an original DEC generated tape or the Toad-1 would have failed the diagnostic. Alternatively assembling the diag on the restoration project would have yielded a working multiply. So is someone going to fix the multiply instruction in the 20+ year old Toad? <grin> -- Doug Ingraham PDP-8 SN 1175