Got the name wrong: Computer Engineering: A DEC View of Hardware Systems Design On Wed, Mar 13, 2024 at 9:41 AM ron minnich wrote: > by the way, I realize that random number urban legend sounds ridiculous, > in light of how hardware design is done today, but those of you who did > hardware design in those days (guilty!), and had access to -11 > schematics and boards, might wonder if it's not possible. There was a > habit, in those days, for performance reasons, of subbing transparent > latches for flip-flops to gain a little time. An engineer I knew at Amdahl > said that was a pretty hot topic there. Certainly, the technique of design > for testability was not really in wide use in the -11 days. Gordon Bell's > book "Computer Design" is particularly instructive. > > E.g., how did you verify the floating point on your new machine? Put an > older machine next to a new machine, do lots of computation, see if there > is disagreement, you've found a bug in the new machine, right? Maybe. > Sometimes, you discover the older machine had a bug the newer one did not > ... happened more than once, including on the 360 to 370 transition. > > On Tue, Mar 12, 2024 at 6:09 PM ron minnich wrote: > >> There used to be an urban legend about multiply overflow and the PDP 11. >> >> This would’ve been circa 1976. Someone from DEC told us that on a >> multiply overflow, the contents of the destination register would be “kind >> of” random. I was never able to verify that claim. But that might explain >> this code. >> >> On Tue, Mar 12, 2024 at 16:05 Jonathan Gray wrote: >> >>> On Tue, Mar 12, 2024 at 08:55:02AM -0400, Russ Cox wrote: >>> > Hi all (and TUHS), >>> > >>> > The Third Edition rand(III) page [1] ends with >>> > >>> > WARNING The author of this routine has been writing >>> > random-number generators for many years and has >>> > never been known to write one that worked. >>> > >>> > My understanding is that Ken wrote the rand implementation. >>> > But I'm curious about the origin of this warning. >>> > I had assumed that Ken wrote it as a combination warning+joke, >>> > but Rob suggested that to him it didn't sound like Ken and >>> > perhaps Doug or Dennis had written it. Does anyone remember? >>> > >>> > Separately, I am trying to find out what the very first >>> > Unix rand implementation was. In the TUHS archives, >>> > the incomplete V2 sources contain a reference to srand >>> > in cmd/bas0.s [2], but there is no definition in the tree. >>> > The V3 man pages list it, but as far as I can tell full >>> > library sources do not appear in the TUHS archives >>> > until the V6 snapshot. The V6 rand [3] is: >>> > >>> > rand: >>> > mov r1,-(sp) >>> > mov ranx,r1 >>> > mpy $13077.,r1 >>> > add $6925.,r1 >>> > mov r1,r0 >>> > mov r0,ranx >>> > bic $100000,r0 >>> > mov (sp)+,r1 >>> > rts pc >>> >>> matches V5: >>> https://www.tuhs.org/cgi-bin/utree.pl?file=V5/usr/source/s3/rand.s >>> Distributions/Research/Dennis_v5/v5root.tar.gz >>> >>> >>> > >>> > Perhaps this is the original rand as well? It is hard to imagine >>> > a much simpler one, other than perhaps removing the addition, >>> > but doing so would create a sequence of only odd numbers. >>> > >From the man page description it sounds like this has to be the >>> > original generator, perhaps with different constants. >>> > >>> > Thanks! >>> > >>> > Best, >>> > Russ >>> > >>> > [1] >>> > >>> https://github.com/dspinellis/unix-history-repo/blob/Research-V3/man/man3/rand.3 >>> > [2] >>> > >>> https://github.com/dspinellis/unix-history-repo/blob/Research-V2/cmd/bas0.s >>> > [3] >>> > >>> https://github.com/dspinellis/unix-history-repo/blob/Research-V6/usr/source/s3/rand.s >>> >>