* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code
@ 2019-10-19 14:40 Doug McIlroy
2019-10-19 18:32 ` Abhinav Rajagopalan
0 siblings, 1 reply; 39+ messages in thread
From: Doug McIlroy @ 2019-10-19 14:40 UTC (permalink / raw)
To: tuhs, dbrock
I was about to add a footnote to history about
how the broad interests and collegiality of
Bell Labs staff made Space Travel work, when
I saw that Ken beat me to telling how he got
help from another Turing Award winner.
> while writing "space travel,"
> i could not get the space ship integration
> around a planet to keep from either gaining or
> losing energy due to floating point errors.
> i asked dick hamming if he could help. after
> a couple hours, he came back with a formula.
> i tried it and it worked perfectly. it was some
> weird simple double integration that self
> corrected for fp round off. as near as i can
> ascertain, the formula was never published
> and no one i have asked (including me) has
> been able to recreate it.
If I remember correctly, the cause of Ken's
difficulty was not roundoff error. It
was discretization error in the integration
formula--probably f(t+dt)=f(t)+f'(t)dt.
Dick saw that the formula did not conserve
energy and found an alternative that did.
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-19 14:40 [TUHS] Space Travel, was New: The Earliest UNIX Code Doug McIlroy @ 2019-10-19 18:32 ` Abhinav Rajagopalan 2019-10-19 18:44 ` Abhinav Rajagopalan ` (2 more replies) 0 siblings, 3 replies; 39+ messages in thread From: Abhinav Rajagopalan @ 2019-10-19 18:32 UTC (permalink / raw) To: Doug McIlroy; +Cc: tuhs [-- Attachment #1: Type: text/plain, Size: 2592 bytes --] Forgive me for both hijacking this thread, and to address my amateurish gnawing concern, but how was it be possible to write differential/integral equations at an assembly/machine level at the time, especially in machines such as the PDP-7 and such which had IIRC just 16 instructions and operated on the basis of mere words, especially the floating point math being done. Surmising from some personal experience that writing mathematical programs is hard even now, although there exist certain functional paradigms, and specialised environments such as MATLAB or Mathematica. The complexity seems to remain the same if not more now, due to the vast oodles of data to handle stemming from the nature of the world. Were they loaded as just words as any other instruction or were there separate coprocessors that did the number crunching? I'm guessing Fortran-ish kind of implementations were done, but the hardware level computation itself I just can't process. It just blows my mind now thinking backwards in terms of those monster machines being loaded with trails of paper tape instructions to play Space Travel. Being born in the late 90's doesn't help me too. Also, on a related note, don't know if you've watched the interview <https://youtu.be/EY6q5dv_B-o> of Ken done by Brian at the Vintage Comptuer Federation 2019, there might be a few surprises lurking around the middle of that when they discuss pipes and grep. Thank you! On Sat, Oct 19, 2019 at 8:11 PM Doug McIlroy <doug@cs.dartmouth.edu> wrote: > I was about to add a footnote to history about > how the broad interests and collegiality of > Bell Labs staff made Space Travel work, when > I saw that Ken beat me to telling how he got > help from another Turing Award winner. > > > while writing "space travel," > > i could not get the space ship integration > > around a planet to keep from either gaining or > > losing energy due to floating point errors. > > i asked dick hamming if he could help. after > > a couple hours, he came back with a formula. > > i tried it and it worked perfectly. it was some > > weird simple double integration that self > > corrected for fp round off. as near as i can > > ascertain, the formula was never published > > and no one i have asked (including me) has > > been able to recreate it. > > If I remember correctly, the cause of Ken's > difficulty was not roundoff error. It > was discretization error in the integration > formula--probably f(t+dt)=f(t)+f'(t)dt. > Dick saw that the formula did not conserve > energy and found an alternative that did. > -- Abhinav Rajagopalan [-- Attachment #2: Type: text/html, Size: 4652 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-19 18:32 ` Abhinav Rajagopalan @ 2019-10-19 18:44 ` Abhinav Rajagopalan 2019-10-19 19:19 ` Clem Cole 2019-10-19 20:12 ` [TUHS] How to do differential/integral on a PDP-7, was: Space Travel Michael Kjörling 2 siblings, 0 replies; 39+ messages in thread From: Abhinav Rajagopalan @ 2019-10-19 18:44 UTC (permalink / raw) To: Doug McIlroy; +Cc: tuhs [-- Attachment #1: Type: text/plain, Size: 3283 bytes --] After some poking around, a Program library (PDP-7) and a Floating point reference manual for a PDP-8 turned up and is now slowly dawning on me that libraries could exist back then too, and that complex polynomials could also be written into routines albeit a bit tedious. http://www.bitsavers.org/pdf/dec/pdp7/DIGITAL-7-30-A_FltPtPkg.pdf http://bitsavers.trailing-edge.com/pdf/dec/pdp8/software/DEC-08-YQYB-D_PDP-8_Floating-Point_System_Programmers_Reference_Manual_Sep69.pdf On Sun, Oct 20, 2019 at 12:02 AM Abhinav Rajagopalan < abhinavrajagopalan@gmail.com> wrote: > Forgive me for both hijacking this thread, and to address my amateurish > gnawing concern, but how was it be possible to write differential/integral > equations at an assembly/machine level at the time, especially in machines > such as the PDP-7 and such which had IIRC just 16 instructions and operated > on the basis of mere words, especially the floating point math being done. > Surmising from some personal experience that writing mathematical programs > is hard even now, although there exist certain functional paradigms, and > specialised environments such as MATLAB or Mathematica. The > complexity seems to remain the same if not more now, due to the vast oodles > of data to handle stemming from the nature of the world. > > Were they loaded as just words as any other instruction or were there > separate coprocessors that did the number crunching? I'm guessing > Fortran-ish kind of implementations were done, but the hardware level > computation itself I just can't process. > > It just blows my mind now thinking backwards in terms of those > monster machines being loaded with trails of paper tape instructions to > play Space Travel. Being born in the late 90's doesn't help me too. > > Also, on a related note, don't know if you've watched the interview > <https://youtu.be/EY6q5dv_B-o> of Ken done by Brian at the Vintage > Comptuer Federation 2019, there might be a few surprises lurking around the > middle of that when they discuss pipes and grep. > > Thank you! > > On Sat, Oct 19, 2019 at 8:11 PM Doug McIlroy <doug@cs.dartmouth.edu> > wrote: > >> I was about to add a footnote to history about >> how the broad interests and collegiality of >> Bell Labs staff made Space Travel work, when >> I saw that Ken beat me to telling how he got >> help from another Turing Award winner. >> >> > while writing "space travel," >> > i could not get the space ship integration >> > around a planet to keep from either gaining or >> > losing energy due to floating point errors. >> > i asked dick hamming if he could help. after >> > a couple hours, he came back with a formula. >> > i tried it and it worked perfectly. it was some >> > weird simple double integration that self >> > corrected for fp round off. as near as i can >> > ascertain, the formula was never published >> > and no one i have asked (including me) has >> > been able to recreate it. >> >> If I remember correctly, the cause of Ken's >> difficulty was not roundoff error. It >> was discretization error in the integration >> formula--probably f(t+dt)=f(t)+f'(t)dt. >> Dick saw that the formula did not conserve >> energy and found an alternative that did. >> > > > -- > > Abhinav Rajagopalan > > > -- Abhinav Rajagopalan [-- Attachment #2: Type: text/html, Size: 7320 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-19 18:32 ` Abhinav Rajagopalan 2019-10-19 18:44 ` Abhinav Rajagopalan @ 2019-10-19 19:19 ` Clem Cole 2019-10-19 19:50 ` Henry Bent 2019-10-19 20:12 ` [TUHS] How to do differential/integral on a PDP-7, was: Space Travel Michael Kjörling 2 siblings, 1 reply; 39+ messages in thread From: Clem Cole @ 2019-10-19 19:19 UTC (permalink / raw) To: Abhinav Rajagopalan; +Cc: The Eunuchs Hysterical Society, Doug McIlroy [-- Attachment #1: Type: text/plain, Size: 3071 bytes --] Abhinav -- it is still done today. For Intel's MKL we must have a team of programmers that specialize in writing math at the lowest levels. DEC, CDC, Cray, IBM did the same thing back in the day. Check out: Intel Math Kernel Library (*a.k.a.* MKL) <https://software.intel.com/en-us/mkl>. On Sat, Oct 19, 2019 at 2:34 PM Abhinav Rajagopalan < abhinavrajagopalan@gmail.com> wrote: > Forgive me for both hijacking this thread, and to address my amateurish > gnawing concern, but how was it be possible to write differential/integral > equations at an assembly/machine level at the time, especially in machines > such as the PDP-7 and such which had IIRC just 16 instructions and operated > on the basis of mere words, especially the floating point math being done. > Surmising from some personal experience that writing mathematical programs > is hard even now, although there exist certain functional paradigms, and > specialised environments such as MATLAB or Mathematica. The > complexity seems to remain the same if not more now, due to the vast oodles > of data to handle stemming from the nature of the world. > > Were they loaded as just words as any other instruction or were there > separate coprocessors that did the number crunching? I'm guessing > Fortran-ish kind of implementations were done, but the hardware level > computation itself I just can't process. > > It just blows my mind now thinking backwards in terms of those > monster machines being loaded with trails of paper tape instructions to > play Space Travel. Being born in the late 90's doesn't help me too. > > Also, on a related note, don't know if you've watched the interview > <https://youtu.be/EY6q5dv_B-o> of Ken done by Brian at the Vintage > Comptuer Federation 2019, there might be a few surprises lurking around the > middle of that when they discuss pipes and grep. > > Thank you! > > On Sat, Oct 19, 2019 at 8:11 PM Doug McIlroy <doug@cs.dartmouth.edu> > wrote: > >> I was about to add a footnote to history about >> how the broad interests and collegiality of >> Bell Labs staff made Space Travel work, when >> I saw that Ken beat me to telling how he got >> help from another Turing Award winner. >> >> > while writing "space travel," >> > i could not get the space ship integration >> > around a planet to keep from either gaining or >> > losing energy due to floating point errors. >> > i asked dick hamming if he could help. after >> > a couple hours, he came back with a formula. >> > i tried it and it worked perfectly. it was some >> > weird simple double integration that self >> > corrected for fp round off. as near as i can >> > ascertain, the formula was never published >> > and no one i have asked (including me) has >> > been able to recreate it. >> >> If I remember correctly, the cause of Ken's >> difficulty was not roundoff error. It >> was discretization error in the integration >> formula--probably f(t+dt)=f(t)+f'(t)dt. >> Dick saw that the formula did not conserve >> energy and found an alternative that did. >> > > > -- > > Abhinav Rajagopalan > > > [-- Attachment #2: Type: text/html, Size: 5505 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-19 19:19 ` Clem Cole @ 2019-10-19 19:50 ` Henry Bent 2019-10-19 19:55 ` [TUHS] Space Travel related question Thomas Paulsen 2019-10-19 20:24 ` [TUHS] Space Travel, was New: The Earliest UNIX Code Arthur Krewat 0 siblings, 2 replies; 39+ messages in thread From: Henry Bent @ 2019-10-19 19:50 UTC (permalink / raw) To: Clem Cole; +Cc: The Eunuchs Hysterical Society, Doug McIlroy [-- Attachment #1: Type: text/plain, Size: 4459 bytes --] I think the astonishment is not so much that tailored specialty floating point libraries exist, or that programmers are able to squeeze performance out of processors using hardware floating point and/or vector units. What is impressive to me is that floating point was being done on processors that had essentially no hardware support for floating point whatsoever, and that the processors in question were running at what we would consider infinitesimally slow speeds by the standards of what is inside my barely modern home thermostat. These hacks make me think of the "demoscene" folks who write programs for early '80s home 8 bit microcomputers in assembly. The idea is to squeeze as much apparent visual performance out of a system as possible, so an example might be scrolling characters across the screen while a wireframe cube rotates in the background, all on a Commodore VIC-20 with 4K of RAM. The idea is to start with a mathematically sound algorithm but then cut every corner possible and account for every single timing bug and hardware quirk. It's a fun demonstration for two or three minutes but I imagine that after an hour or two the numerical inaccuracies would set in, just as described earlier in this thread. -Henry On Sat, 19 Oct 2019 at 15:20, Clem Cole <clemc@ccc.com> wrote: > Abhinav -- it is still done today. For Intel's MKL we must have a team > of programmers that specialize in writing math at the lowest levels. DEC, > CDC, Cray, IBM did the same thing back in the day. Check out: Intel > Math Kernel Library (*a.k.a.* MKL) <https://software.intel.com/en-us/mkl>. > > > On Sat, Oct 19, 2019 at 2:34 PM Abhinav Rajagopalan < > abhinavrajagopalan@gmail.com> wrote: > >> Forgive me for both hijacking this thread, and to address my amateurish >> gnawing concern, but how was it be possible to write differential/integral >> equations at an assembly/machine level at the time, especially in machines >> such as the PDP-7 and such which had IIRC just 16 instructions and operated >> on the basis of mere words, especially the floating point math being done. >> Surmising from some personal experience that writing mathematical programs >> is hard even now, although there exist certain functional paradigms, and >> specialised environments such as MATLAB or Mathematica. The >> complexity seems to remain the same if not more now, due to the vast oodles >> of data to handle stemming from the nature of the world. >> >> Were they loaded as just words as any other instruction or were there >> separate coprocessors that did the number crunching? I'm guessing >> Fortran-ish kind of implementations were done, but the hardware level >> computation itself I just can't process. >> >> It just blows my mind now thinking backwards in terms of those >> monster machines being loaded with trails of paper tape instructions to >> play Space Travel. Being born in the late 90's doesn't help me too. >> >> Also, on a related note, don't know if you've watched the interview >> <https://youtu.be/EY6q5dv_B-o> of Ken done by Brian at the Vintage >> Comptuer Federation 2019, there might be a few surprises lurking around the >> middle of that when they discuss pipes and grep. >> >> Thank you! >> >> On Sat, Oct 19, 2019 at 8:11 PM Doug McIlroy <doug@cs.dartmouth.edu> >> wrote: >> >>> I was about to add a footnote to history about >>> how the broad interests and collegiality of >>> Bell Labs staff made Space Travel work, when >>> I saw that Ken beat me to telling how he got >>> help from another Turing Award winner. >>> >>> > while writing "space travel," >>> > i could not get the space ship integration >>> > around a planet to keep from either gaining or >>> > losing energy due to floating point errors. >>> > i asked dick hamming if he could help. after >>> > a couple hours, he came back with a formula. >>> > i tried it and it worked perfectly. it was some >>> > weird simple double integration that self >>> > corrected for fp round off. as near as i can >>> > ascertain, the formula was never published >>> > and no one i have asked (including me) has >>> > been able to recreate it. >>> >>> If I remember correctly, the cause of Ken's >>> difficulty was not roundoff error. It >>> was discretization error in the integration >>> formula--probably f(t+dt)=f(t)+f'(t)dt. >>> Dick saw that the formula did not conserve >>> energy and found an alternative that did. >>> >> >> >> -- >> >> Abhinav Rajagopalan >> >> >> [-- Attachment #2: Type: text/html, Size: 6882 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* [TUHS] Space Travel related question 2019-10-19 19:50 ` Henry Bent @ 2019-10-19 19:55 ` Thomas Paulsen 2019-10-19 20:19 ` Warner Losh 2019-10-19 20:24 ` [TUHS] Space Travel, was New: The Earliest UNIX Code Arthur Krewat 1 sibling, 1 reply; 39+ messages in thread From: Thomas Paulsen @ 2019-10-19 19:55 UTC (permalink / raw) To: tuhs s there a authentic space travel release available in C for Linux? ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel related question 2019-10-19 19:55 ` [TUHS] Space Travel related question Thomas Paulsen @ 2019-10-19 20:19 ` Warner Losh 0 siblings, 0 replies; 39+ messages in thread From: Warner Losh @ 2019-10-19 20:19 UTC (permalink / raw) To: Thomas Paulsen; +Cc: The Eunuchs Hysterical Society [-- Attachment #1: Type: text/plain, Size: 162 bytes --] On Sat, Oct 19, 2019, 1:56 PM Thomas Paulsen <thomas.paulsen@firemail.de> wrote: > s there a authentic space travel release available in C for Linux? > Nope > [-- Attachment #2: Type: text/html, Size: 659 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-19 19:50 ` Henry Bent 2019-10-19 19:55 ` [TUHS] Space Travel related question Thomas Paulsen @ 2019-10-19 20:24 ` Arthur Krewat 1 sibling, 0 replies; 39+ messages in thread From: Arthur Krewat @ 2019-10-19 20:24 UTC (permalink / raw) To: tuhs On 10/19/2019 3:50 PM, Henry Bent wrote: > The idea is to squeeze as much apparent visual performance out of a > system as possible, so an example might be scrolling characters across > the screen while a wireframe cube rotates in the background, all on a > Commodore VIC-20 with 4K of RAM. You ain't lived until you try to take Impossible Mission from the Commodore 64, and convert it to an Atari 7800 using that Maria steaming-pile-of-doodoo. Talk about optimizing ;) art k. ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] How to do differential/integral on a PDP-7, was: Space Travel 2019-10-19 18:32 ` Abhinav Rajagopalan 2019-10-19 18:44 ` Abhinav Rajagopalan 2019-10-19 19:19 ` Clem Cole @ 2019-10-19 20:12 ` Michael Kjörling 2019-10-19 20:40 ` Arthur Krewat 2019-10-21 4:55 ` Dave Horsfall 2 siblings, 2 replies; 39+ messages in thread From: Michael Kjörling @ 2019-10-19 20:12 UTC (permalink / raw) To: tuhs On 20 Oct 2019 00:02 +0530, from abhinavrajagopalan@gmail.com (Abhinav Rajagopalan): > Forgive me for both hijacking this thread, and to address my amateurish > gnawing concern, but how was it be possible to write differential/integral > equations at an assembly/machine level at the time, especially in machines > such as the PDP-7 and such which had IIRC just 16 instructions and operated > on the basis of mere words, especially the floating point math being done. As long as you have the basic instructions (which pretty much any computer capable of doing useful arithemtic calculations will need anyway), you can implement the rest of what you need using those building blocks. Specific _hardware_ support for floating point calculations is not needed. If nothing else, you can always implement your own routines to do fixed-point multi-word arithmetic. Really about all you need for that is the basic arithmetic and binary operations, the concept of a carry or overflow flag, and conditional and unconditional jumps. With the _possible_ exception of a carry flag of some kind, a digital computer really wouldn't be very useful without those! From there to emulating floating-point instead is not a huge leap. Given that, the kind of equations you can use the computer to solve is just a matter of how fast you need to have the answers. Emulation might be slow, and implementing your own might not be pretty by today's standards where we're taught to rely on standard libraries, but it definitely can get the job done. If you want an example that might perhaps be easier to relate to, on the IBM PC, it wasn't until the Pentium that you could actually count on having a floating-point unit available. The 8086/8088, 80186, 80286, 80386 and 80486 all either didn't ever include a FPU on-die, or only some variants included a FPU. (In the IBM PC world, that's pretty much from 1981 to the late 1990s.) On some systems, and with some of those CPUs, a FPU was an extra chip the user would install, or have someone install, on the motherboard; with others, the user could choose to purchase variants with or without a FPU. As a result, for the better part of two decades, PC software that needed the ability to do floating-point calculations but couldn't require a separate hardware FPU shipped with support for emulating floating point in software. Again, the emulation was slower, but it got the job done, and it allowed running the software on a huge portion of the hardware base which otherwise wouldn't have been able to do so. -- Michael Kjörling • https://michael.kjorling.se • michael@kjorling.se “The most dangerous thought that you can have as a creative person is to think you know what you’re doing.” (Bret Victor) ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] How to do differential/integral on a PDP-7, was: Space Travel 2019-10-19 20:12 ` [TUHS] How to do differential/integral on a PDP-7, was: Space Travel Michael Kjörling @ 2019-10-19 20:40 ` Arthur Krewat 2019-10-19 21:15 ` Michael Kjörling 2019-10-21 5:14 ` Dave Horsfall 2019-10-21 4:55 ` Dave Horsfall 1 sibling, 2 replies; 39+ messages in thread From: Arthur Krewat @ 2019-10-19 20:40 UTC (permalink / raw) To: tuhs On 10/19/2019 4:12 PM, Michael Kjörling wrote: > As long as you have the basic instructions (which pretty much any > computer capable of doing useful arithemtic calculations will need > anyway), you can implement the rest of what you need using those > building blocks. Specific_hardware_ support for floating point > calculations is not needed. Not to mention, if you start using log/alog tables, and/or sin/cos/tan tables, and interpolation, you can quickly ramp up computation speed for simple games that have a small matrix of coordinates. Something like EMPIRE becomes quite easy. Imagine my distress when, after cutting my teeth on a PDP-10, that working on a 6502 I had to do my own division. Oh, the HORROR! art k. ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] How to do differential/integral on a PDP-7, was: Space Travel 2019-10-19 20:40 ` Arthur Krewat @ 2019-10-19 21:15 ` Michael Kjörling 2019-10-21 5:14 ` Dave Horsfall 1 sibling, 0 replies; 39+ messages in thread From: Michael Kjörling @ 2019-10-19 21:15 UTC (permalink / raw) To: tuhs On 19 Oct 2019 16:40 -0400, from krewat@kilonet.net (Arthur Krewat): > Not to mention, if you start using log/alog tables, and/or sin/cos/tan > tables, and interpolation, you can quickly ramp up computation speed for > simple games that have a small matrix of coordinates. Indeed; like I said, at some point, it becomes just a matter of how quickly you need the answer. It's not really _difficult_ to do any of this if you're willing to wait a while to learn the value of 1/2. It's a little more involved if you want log10(e^pi * pi^e) _fast_. After all, Apollo navigated to, around, and back from, the Moon, using an on-board computer that today would barely run that thermostat that someone mentioned. 2048 15+1-bit word RAM (3840 bytes, plus parity), 36864 15+1-bit word ROM (69120 bytes, again plus parity). It could display three general-purpose five-digit decimal numbers, each with sign, plus three specific-purpose two-digit decimal numbers, and was operated using a 19-key keyboard (0-9, plus, minus, and a few function keys). In fairness, a lot of the heavier calculations were performed by Mission Control on the ground and the results were uplinked either digitally or via voice transmission to the spacecraft, but still... Those programmers didn't exactly have the luxury of, when they realized they were running out of memory, just sending along the rest of the software on tape and telling the user to load it on an as-needed basis. Premature optimization is the root of all evil in 99% of the cases, but in that last 1%, a targeted optimization effort is exactly what you need. -- Michael Kjörling • https://michael.kjorling.se • michael@kjorling.se “The most dangerous thought that you can have as a creative person is to think you know what you’re doing.” (Bret Victor) ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] How to do differential/integral on a PDP-7, was: Space Travel 2019-10-19 20:40 ` Arthur Krewat 2019-10-19 21:15 ` Michael Kjörling @ 2019-10-21 5:14 ` Dave Horsfall 2019-10-21 5:23 ` Lars Brinkhoff 1 sibling, 1 reply; 39+ messages in thread From: Dave Horsfall @ 2019-10-21 5:14 UTC (permalink / raw) To: The Eunuchs Hysterical Society On Sat, 19 Oct 2019, Arthur Krewat wrote: > Not to mention, if you start using log/alog tables, and/or sin/cos/tan > tables, and interpolation, you can quickly ramp up computation speed for > simple games that have a small matrix of coordinates. Something like > EMPIRE becomes quite easy. Star Wars on a GT-40, which Andrew Hume (formerly UNSW, who is now at Bell last I heard) reverse-engineered to support three players, not two. Oddly enough, DEC Field Circus stopped replacing GT-40 switch consoles after that (certain keys were worn out)... > Imagine my distress when, after cutting my teeth on a PDP-10, that > working on a 6502 I had to do my own division. Oh, the HORROR! And you tell that to the young people of day, and they won't believe you... Now, where did I put my Z-80 full ANSI C Compiler... -- Dave ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] How to do differential/integral on a PDP-7, was: Space Travel 2019-10-21 5:14 ` Dave Horsfall @ 2019-10-21 5:23 ` Lars Brinkhoff 2019-10-21 13:59 ` John P. Linderman 2019-10-26 2:09 ` Dave Horsfall 0 siblings, 2 replies; 39+ messages in thread From: Lars Brinkhoff @ 2019-10-21 5:23 UTC (permalink / raw) To: Dave Horsfall; +Cc: The Eunuchs Hysterical Society Dave Horsfall wrote: > Star Wars on a GT-40, which Andrew Hume (formerly UNSW, who is now at > Bell last I heard) reverse-engineered to support three players, not > two. Does that still exist? ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] How to do differential/integral on a PDP-7, was: Space Travel 2019-10-21 5:23 ` Lars Brinkhoff @ 2019-10-21 13:59 ` John P. Linderman [not found] ` <68553366-4E6F-4E17-8903-282C67186D16@humeweb.com> 2019-10-26 2:09 ` Dave Horsfall 1 sibling, 1 reply; 39+ messages in thread From: John P. Linderman @ 2019-10-21 13:59 UTC (permalink / raw) To: Lars Brinkhoff; +Cc: The Eunuchs Hysterical Society, Andrew Hume [-- Attachment #1: Type: text/plain, Size: 454 bytes --] Andrew left Bell Labs for AT&T Labs when Alcatel took over the Bell Labs name. He is/was reachable at andrew@humeweb.com. I'm cc-ing him. He might enjoy the goings-on here. On Mon, Oct 21, 2019 at 1:24 AM Lars Brinkhoff <lars@nocrew.org> wrote: > Dave Horsfall wrote: > > Star Wars on a GT-40, which Andrew Hume (formerly UNSW, who is now at > > Bell last I heard) reverse-engineered to support three players, not > > two. > > Does that still exist? > [-- Attachment #2: Type: text/html, Size: 861 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
[parent not found: <68553366-4E6F-4E17-8903-282C67186D16@humeweb.com>]
* Re: [TUHS] How to do differential/integral on a PDP-7, was: Space Travel [not found] ` <68553366-4E6F-4E17-8903-282C67186D16@humeweb.com> @ 2019-10-26 2:24 ` Dave Horsfall 0 siblings, 0 replies; 39+ messages in thread From: Dave Horsfall @ 2019-10-26 2:24 UTC (permalink / raw) To: Andrew Hume; +Cc: The Eunuchs Hysterical Society [-- Attachment #1: Type: text/plain, Size: 269 bytes --] On Mon, 21 Oct 2019, Andrew Hume wrote: > the gt40??? oh my lord! good job i am en route to the bell labs 50th > anniversary. > its been a long time since i heard the name “Dave Horsfall”! Yep :-) Although now retired, I'm still active in Unix projects. -- Dave ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] How to do differential/integral on a PDP-7, was: Space Travel 2019-10-21 5:23 ` Lars Brinkhoff 2019-10-21 13:59 ` John P. Linderman @ 2019-10-26 2:09 ` Dave Horsfall 1 sibling, 0 replies; 39+ messages in thread From: Dave Horsfall @ 2019-10-26 2:09 UTC (permalink / raw) To: The Eunuchs Hysterical Society On Mon, 21 Oct 2019, Lars Brinkhoff wrote: >> Star Wars on a GT-40, which Andrew Hume (formerly UNSW, who is now at >> Bell last I heard) reverse-engineered to support three players, not >> two. > > Does that still exist? Most unlikely; a lot of stuff got lost from those days :-( -- Dave ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] How to do differential/integral on a PDP-7, was: Space Travel 2019-10-19 20:12 ` [TUHS] How to do differential/integral on a PDP-7, was: Space Travel Michael Kjörling 2019-10-19 20:40 ` Arthur Krewat @ 2019-10-21 4:55 ` Dave Horsfall 2019-10-21 19:21 ` Paul Winalski 1 sibling, 1 reply; 39+ messages in thread From: Dave Horsfall @ 2019-10-21 4:55 UTC (permalink / raw) To: The Eunuchs Hysterical Society [-- Attachment #1: Type: text/plain, Size: 657 bytes --] On Sat, 19 Oct 2019, Michael Kjörling wrote: > If you want an example that might perhaps be easier to relate to, on the > IBM PC, it wasn't until the Pentium that you could actually count on > having a floating-point unit available. [...] Am I the only one who remembers the Defectium (as we called it)? Intel denied the the problem until their noses got rubbed into it, after which they instructed Sales to refuse replacements for any chip that failed after using a demo program that demonstrated said defect, claiming that it would hardly ever happen. Err, would you fly on an aircraft designed by Defectiums? Or cross a bridge, etc? -- Dave ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] How to do differential/integral on a PDP-7, was: Space Travel 2019-10-21 4:55 ` Dave Horsfall @ 2019-10-21 19:21 ` Paul Winalski 2019-10-21 19:38 ` Kurt H Maier 0 siblings, 1 reply; 39+ messages in thread From: Paul Winalski @ 2019-10-21 19:21 UTC (permalink / raw) To: Dave Horsfall; +Cc: The Eunuchs Hysterical Society On 10/21/19, Dave Horsfall <dave@horsfall.org> wrote: > > Am I the only one who remembers the Defectium (as we called it)? Intel > denied the the problem until their noses got rubbed into it, after which > they instructed Sales to refuse replacements for any chip that failed > after using a demo program that demonstrated said defect, claiming that it > would hardly ever happen. I'm sure that's become a textbook case study in classes on public relations. It really WAS an obscure corner case, and every CPU chip has an errata list, but that's not the point. Intel would have been far better off admitting the problem and replacing the chips at the get-go. In the end they had to replace them anyway, and the $$$ cost to Intel's reputation way outstripped the cost of replacing the chips. David Letterman even did a "9.9998 reasons to buy genuine Intel" routine. That for me was the definitive proof that computers had gone mainstream in society. > Err, would you fly on an aircraft designed by Defectiums? Or cross a > bridge, etc? I'm much more alarmed by the lack of memory error detection and correction on a lot of modern computers. This is one of my big concerns with the use of GPUs for heavy-duty computation. GPUs typically don't have memory with error detection because the worst that happens if there's a memory error in the GPU is you get a bad pixel or two displayed. I'd not like to cross a bridge whose design software used CUDA. -Paul W. ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] How to do differential/integral on a PDP-7, was: Space Travel 2019-10-21 19:21 ` Paul Winalski @ 2019-10-21 19:38 ` Kurt H Maier 0 siblings, 0 replies; 39+ messages in thread From: Kurt H Maier @ 2019-10-21 19:38 UTC (permalink / raw) To: Paul Winalski; +Cc: The Eunuchs Hysterical Society On Mon, Oct 21, 2019 at 03:21:34PM -0400, Paul Winalski wrote: > > I'm much more alarmed by the lack of memory error detection and > correction on a lot of modern computers. This is one of my big > concerns with the use of GPUs for heavy-duty computation. GPUs > typically don't have memory with error detection because the worst > that happens if there's a memory error in the GPU is you get a bad > pixel or two displayed. I'd not like to cross a bridge whose design > software used CUDA. > This might be true of gaming cards and low-end workstation cards, but the higher-end Quadro cards and all the dedicated GPGPUs have had at least ECC since at least the Maxwell era. Of course, nobody does a single run and stamps the drawings, so the process itself should catch these problems, but any correctly-configured CAD workstation or compute cluster has error-correcting memory, both on the system and in the accelerators. AMD's Radeon Pro and Intel's Xeon Phi accelerators do ECC as well. khm ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code @ 2019-10-19 13:13 Doug McIlroy 0 siblings, 0 replies; 39+ messages in thread From: Doug McIlroy @ 2019-10-19 13:13 UTC (permalink / raw) To: tuhs Apropos of OCR on shabby typewriting, I've had good luck with doing the OCR twice with the paper differently positioned, then using diff to spot discrepancies. For a final proofreading, a team of two--one reading the original aloud, the other checking the copy, works much faster and more accurately than a single person checking side-by-side texts. Doug ^ permalink raw reply [flat|nested] 39+ messages in thread
* [TUHS] Space Travel, was New: The Earliest UNIX Code
@ 2019-10-18 11:52 Doug McIlroy
2019-10-18 18:36 ` Steffen Nurpmeso
2019-10-26 15:10 ` Lars Brinkhoff
0 siblings, 2 replies; 39+ messages in thread
From: Doug McIlroy @ 2019-10-18 11:52 UTC (permalink / raw)
To: tuhs
> 10-36-55.pdf user-mode programs: pool game
This game, written by ken, used the Graphic 2. One of its
earliest tests--random starting positions and velocities on
a frictionless table with no collision detection--produced
a mesmerizing result. This was saved in a program called
"weird1", which was carried across to the PDP11.
Weird1 was a spectacular accidental demonstration of structure
in pseudo-random numbers. After several minutes the dots
representing pool balls would evanescently form short local
alignments. Thereafter from time to time ever-larger alignments
would materialize. Finally in a grand climax all the balls
converged to a single point.
It was stunning to watch perfect order emerge from apparent
chaos. One of my fondest hopes is to see weird1 revived.
Doug
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-18 11:52 Doug McIlroy @ 2019-10-18 18:36 ` Steffen Nurpmeso 2019-10-18 20:19 ` SPC 2019-10-26 15:10 ` Lars Brinkhoff 1 sibling, 1 reply; 39+ messages in thread From: Steffen Nurpmeso @ 2019-10-18 18:36 UTC (permalink / raw) To: tuhs [-- Attachment #1: Type: text/plain, Size: 2011 bytes --] Doug McIlroy wrote in <201910181152.x9IBq95P001809@coolidge.cs.Dartmouth\ .EDU>: |> 10-36-55.pdf user-mode programs: pool game | |This game, written by ken, used the Graphic 2. One of its |earliest tests--random starting positions and velocities on |a frictionless table with no collision detection--produced |a mesmerizing result. This was saved in a program called |"weird1", which was carried across to the PDP11. | |Weird1 was a spectacular accidental demonstration of structure |in pseudo-random numbers. After several minutes the dots |representing pool balls would evanescently form short local |alignments. Thereafter from time to time ever-larger alignments |would materialize. Finally in a grand climax all the balls |converged to a single point. | |It was stunning to watch perfect order emerge from apparent |chaos. One of my fondest hopes is to see weird1 revived. Not about random orders chaos, no, quite the opposite, but the IOCCC context 2012 was won by endoh1, a fluid simulator using "Smoothed-particle hydrodynamics (SPH)", and the "marching squares" algorithm to render particles. If the defaults for gravity (1 -> 0), pressure (4 -> 1) and viscosity (8 -> 2) are changed entertaining effects can be seen. It is like swirling, not self-organizing order out of chaos, but i wanted to post it nonetheless because of some properties of the code, for example the IOCCC Makefile introduces "make love", may also echo "You are not expected to understand this", and what else can be expected. The xxx.txt is an input file i made for this post, the competition ones are neat (a fountain, for example), but for normal gravity etc. $ make endoh1_color $ ./endoh1_color < xxx.txt And spend some time. |Doug --End of <201910181152.x9IBq95P001809@coolidge.cs.Dartmouth.EDU> --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt) [-- Attachment #2: endoh1_color.c --] [-- Type: text/x-csrc, Size: 2275 bytes --] # include<stdio.h>// .IOCCC Fluid- # # include <unistd.h> //2012 _Sim!_ # # include<complex.h> //|||| ,____. |||||| # # define c y+=( x=ctanh( -cabs/* # # */(4[t ]-=20) /2+9)* 3+3)*// # # define f(p,e) for(p/* # # */=a;e ,p<r;p +=5)/// # # define z(e,i) f(p,p/* # ## */[i]=e)f(q,w=cabs (d=*p- *q)/2- 1)if(0 <(x=1- w))p[i]+=w*/// ## double complex a [ 97687] ,*p,*q ,*r=a, w=0,d; char b[97687]=/* ## ## */"GO\x1b[2J\x1b[" "1;1H" ,*o=b, *t;int x,y,j; void h(int e){/** ## ## */for( t=b;b+ 24045> (t+=12 );c 6, sprintf (t,/** ## ## */"%c" "[48%" "c5;%" "03dm" "%c",3 *9,e,c 36,e/* ## ## */?(t- b)%960 ?(15-t [11])[ "\x23" "/\\_" "\\"/* ## ## */"||" ",//|" ".-`' "]:10: 0)) y= 0020,c 01;}/* ## ## */void g( int i){7[t +=i]|= x/=2;* t+=y=p [2];/* ## ## */}int main() {for(;( x=getc (stdin ))>0;)w =10</* ## ## */x?32 <x?4[* r++=w,r]=w+1,*r= r[5]=x ==35,r+=9:0,w-I/* ## ## */:(x= w+02); for(;;puts(o),o =b+6){ z(p[1]*9,2)w;z/* ## ## */(G,3 )(d*(3 -p[2]-q[2])*P +p[4]* V-q[4]*V )/p/* ## #### #### ############################################################################### **###########################################################################*/ [2];h(0 );f(p,* p+= p[4]+=p [3]/10*!p [1] )(t =b+ 16+ (x= *p* I)* 12+ 960 *(y =*p /2) ,x= 0<= x&& 79> x&& 0<= y&& 23> y?x =16 ,g( 0),g(12), g(+ 948 ),g (12 ),0 :0) ;h( 59) ;;; usleep( 12321); }return 0;} /*IOCCC '12 **/ [-- Attachment #3: Makefile --] [-- Type: text/plain, Size: 4048 bytes --] #!/usr/bin/env make # # 2012 makefile # # This work by Landon Curt Noll, Simon Cooper, and Leonid A. Broukhis # is licensed under: # # Creative Commons Attribution-ShareAlike 3.0 Unported License. # # See: http://creativecommons.org/licenses/by-sa/3.0/ ################ # tool locations ################ # SHELL= /bin/bash CP= cp CPP= cpp GUNZIP= gunzip LD= ld MAKE= make RM= rm SED= sed TAR= tar TRUE= true # Set X11_LIBDIR to the directory where the X11 library resides # X11_LIBDIR= /usr/X11R6/lib # Set X11_INCLUDEDIR to the directory where the X11 include files reside # X11_INCDIR= /usr/X11R6/include # Compiler warnings # #CWARN= #CWARN= -Wall -W CWARN= -Wall -W -pedantic # compiler standard # #CSTD= #CSTD= -ansi CSTD= -std=c99 # compiler bit architecture # # Some entries require 32-bitness: # ARCH= -m32 # # Some entries require 64-bitess: # ARCH= -m64 # # By default we assume nothing: # ARCH= # optimization # # Most compiles will safely use -O2. Some can use only -O1 or -O. # A few compilers have broken optimizers or this entry make break # under those buggy optimizers and thus you may not want anything. # #OPT= #OPT= -O #OPT= -O1 OPT= -O2 #OPT= -O3 # Libraries needed to build # LIBS= -lm # default flags for ANSI C compilation # CFLAGS= ${CWARN} ${CSTD} ${ARCH} ${OPT} # ANSI compiler # # Set CC to the name of your ANSI compiler. # # Some entries seem to need gcc. If you have gcc, set # both CC and MAY_NEED_GCC to gcc. # # If you do not have gcc, set CC to the name of your ANSI compiler, and # set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : # to disable such programs. # CC= cc #CC=clang MAY_NEED_GCC= gcc ############################## # Special flags for this entry ############################## # ENTRY= endoh1 DATA= column.txt column2.txt column3.txt corners.txt dripping-pan.txt \ evaporation.txt flat.txt fountain.txt funnel.txt funnel2.txt \ funnel3.txt leidenfrost.txt logo.txt pour-out.txt tanada.txt ALT_OBJ= endoh1_color.o ALT_ENTRY= endoh1_color # The factor of gravity # G=0 # The factor of pressure # P=1 # The factor of viscosity # V=2 ################# # build the entry ################# # all: ${ENTRY} ${DATA} @${TRUE} ${ENTRY}: ${ENTRY}.c ${CC} ${CFLAGS} -DG=$G -DP=$P -DV=$P $< -o $@ ${LIBS} # alternative executable # alt: ${ALT_ENTRY} @${TRUE} endoh1_deobfuscate: endoh1_deobfuscate.c ${CC} ${CFLAGS} -DG=$G -DP=$P -DV=$P $< -o $@ ${LIBS} endoh1_color: endoh1_color.c ${CC} ${CFLAGS} -DG=$G -DP=$P -DV=$P $< -o $@ ${LIBS} # data files # data: ${DATA} @${TRUE} ############### # utility rules ############### # everything: all alt clean: ${RM} -f ${ENTRY}.o ${ALT_OBJ} clobber: clean ${RM} -f ${ENTRY} ${ALT_ENTRY} nuke: clobber @${TRUE} dist_clean: nuke @${TRUE} install: @echo "Surely you're joking Mr. Feynman!" @${TRUE} # backwards compatibility # build: all @${TRUE} ################## # 133t hacker rulz ################## # love: @echo 'not war?' @${TRUE} haste: $(MAKE) waste @${TRUE} waste: @echo 'waste' @${TRUE} easter_egg: @echo you expected to mis-understand this $${RANDOM} magic @echo chongo '<was here>' "/\\oo/\\" @echo Readers shall be disallowed from not being unable to partly misunderstand this partocular final echo. # Understand the history of "I Am the Walrus" and # and in particular John Lennon's remarks on that # song and you might be confused about these next # rules in a different way. :-) # supernova: nuke @-if [ -r .code_anal ]; then \ ${RM} -f .code_anal_v3; \ else \ echo "You are not expected to understand this"; \ fi @${TRUE} deep_magic: @-if [ -r .code_anal ]; then \ ccode_analysis --deep_magic 1c2c85c7a02c55d1add91967eca491d53c101dc1 --FNV1a_hash 256-bit "${ENTRY}"; \ else \ echo "Understand different"; \ fi @${TRUE} magic: deep_magic @-if [ -r .code_anal ]; then \ ccode_analysis --mode 21701 --level 23209 --FNV1a_hash 256-bit "${ENTRY}"; \ else \ echo "These aren't the droids you're looking for Mr. Spock!"; \ fi @${TRUE} [-- Attachment #4: xxx.txt --] [-- Type: text/plain, Size: 1844 bytes --] @ ############################################################################### # xxxxxxxxxxxxxxxxxxxxxxxxxxxx # # xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # # # # # # # # # # xxxxxxxxxxxxxxxxxxxxxx # # xxxxxxxxxxxxxxxxxxxxxx # # xxxxxxxxxxxxxxxxxxxxxx # # # # # # # # # # # # # # # # @@@@@@@@@@@@@@@@@@@@@@ # # @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@ # # @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@ # # # ############################################################################### ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-18 18:36 ` Steffen Nurpmeso @ 2019-10-18 20:19 ` SPC 2019-10-18 22:04 ` Ken Thompson via TUHS 0 siblings, 1 reply; 39+ messages in thread From: SPC @ 2019-10-18 20:19 UTC (permalink / raw) To: The Eunuchs Hysterical Society [-- Attachment #1: Type: text/plain, Size: 322 bytes --] Well, It appears that CHM has published an article about "Space Travel" code... https://computerhistory.org/blog/the-earliest-unix-code-an-anniversary-source-code-release/ Cordiales saludos / Kind Regards. Gracias | Regards - Saludos | Greetings | Freundliche Grüße | Salutations -- *Sergio Pedraja* -- [-- Attachment #2: Type: text/html, Size: 1784 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-18 20:19 ` SPC @ 2019-10-18 22:04 ` Ken Thompson via TUHS 2019-10-18 23:20 ` Arthur Krewat 2019-10-29 2:18 ` Lawrence Stewart 0 siblings, 2 replies; 39+ messages in thread From: Ken Thompson via TUHS @ 2019-10-18 22:04 UTC (permalink / raw) To: SPC; +Cc: The Eunuchs Hysterical Society while writing "space travel," i could not get the space ship integration around a planet to keep from either gaining or losing energy due to floating point errors. i asked dick hamming if he could help. after a couple hours, he came back with a formula. i tried it and it worked perfectly. it was some weird simple double integration that self corrected for fp round off. as near as i can ascertain, the formula was never published and no one i have asked (including me) has been able to recreate it. i look forward to the OCR of the code. On Fri, Oct 18, 2019 at 1:20 PM SPC <spedraja@gmail.com> wrote: > > Well, It appears that CHM has published an article about "Space Travel" code... > > https://computerhistory.org/blog/the-earliest-unix-code-an-anniversary-source-code-release/ > > Cordiales saludos / Kind Regards. > > Gracias | Regards - Saludos | Greetings | Freundliche Grüße | Salutations > -- > Sergio Pedraja > -- ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-18 22:04 ` Ken Thompson via TUHS @ 2019-10-18 23:20 ` Arthur Krewat 2019-10-19 0:57 ` G. Branden Robinson 2019-10-29 2:18 ` Lawrence Stewart 1 sibling, 1 reply; 39+ messages in thread From: Arthur Krewat @ 2019-10-18 23:20 UTC (permalink / raw) To: tuhs On 10/18/2019 6:04 PM, Ken Thompson via TUHS wrote: > while writing "space travel," > i could not get the space ship integration > around a planet to keep from either gaining or > losing energy due to floating point errors. > i asked dick hamming if he could help. after > a couple hours, he came back with a formula. > i tried it and it worked perfectly. it was some > weird simple double integration that self > corrected for fp round off. as near as i can > ascertain, the formula was never published > and no one i have asked (including me) has > been able to recreate it. > > This reminds me of an experiment I performed comparing speeds of x86 assembler, and C, when I first started working in it. The experiment was to generate a 3D cube wireframe, and rotate it about any (or all three) of it's axes, moving it X degrees at a time. Simple vector math, really. Included perspective, so that the back-end of the wireframe cube would look smaller than the front side. I had been an assembler snob, having started in MACRO-10 on a KA10 PDP-10 in 9th grade. I always assumed assembler would be faster for anything, given the right amount of optimization. The assembler side of the experiment, I did the CGA graphics directly. I think in the C version, I used the built-in library that came with it. I no longer have the source for the C version, but I do, for the assembler version. I didn't have an 8087 floating point accelerator, so I wrote my assembler example to use two 16-bit words of integers, combining them for a 31-bit integer value with sign. Timing 1000 rotations, the assembler version took X amount of time. The C version took X*1.5 Now mind you, the C version used real floating point, and a software floating point library with no hardware accelerator. At that point, I realized C was the way to go. It had passed my experiment with flying colors. The C compiler, I believe, was from Computer Innovations, Copyright (c)1981,82,83,84,85 The reason this is similar to Ken's statement above: In the assembler version, the cube would deform quite a bit before the run would finish. A 31-bit integer didn't accurately reflect the result of the math. Over time, that slight inaccuracy really added up. The accuracy of the C version using floats was spot on. So while I basically cheated for the assembler version, causing the deformation of the cube over time, the C version was 100% accurate even though it was slower. I wonder, is there something inherently different between PDP-11/7 floats and Intel's leading to the inaccuracy Ken mentions? Was the PDP-11 (or the -7) floating point that much different than IEEE-754 ? art k. ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-18 23:20 ` Arthur Krewat @ 2019-10-19 0:57 ` G. Branden Robinson 2019-10-19 1:11 ` Arthur Krewat 0 siblings, 1 reply; 39+ messages in thread From: G. Branden Robinson @ 2019-10-19 0:57 UTC (permalink / raw) To: tuhs [-- Attachment #1: Type: text/plain, Size: 2776 bytes --] At 2019-10-18T19:20:35-0400, Arthur Krewat wrote: > I didn't have an 8087 floating point accelerator, so I wrote my > assembler example to use two 16-bit words of integers, combining them > for a 31-bit integer value with sign. > > Now mind you, the C version used real floating point, and a software > floating point library with no hardware accelerator. At that point, I > realized C was the way to go. It had passed my experiment with flying > colors. The C compiler, I believe, was from Computer Innovations, > Copyright (c)1981,82,83,84,85 > > The reason this is similar to Ken's statement above: In the assembler > version, the cube would deform quite a bit before the run would > finish. A 31-bit integer didn't accurately reflect the result of the > math. Over time, that slight inaccuracy really added up. The accuracy > of the C version using floats was spot on. So while I basically > cheated for the assembler version, causing the deformation of the cube > over time, the C version was 100% accurate even though it was slower. > > I wonder, is there something inherently different between PDP-11/7 > floats and Intel's leading to the inaccuracy Ken mentions? Was the > PDP-11 (or the -7) floating point that much different than IEEE-754 ? It sounds like it could be a simple matter of precision to me. It takes 32 bits to store a single-precision floating point value. Double-precision requires 64. In IEEE 754, the significand is 53 bits (52 bits plus the implicit leading 1). I can never remember the C type promotion rules without looking them up, but IIRC at least in some circumstances C promotes floats to doubles, at least for intermediate results. And the software floating-point library you used could well have done the same, or perhaps it used doubles all the way internally. Either of these could have prevented accumulated roundoff. I've heard, with a level of conviction somewhere between folklore and formal demonstration[1], that for many practical numerical problems, single-precision is just not quite good enough, but double-precision is ample. Somewhere between 24 and 53 bits of significant, perhaps, there is a sweet spot. The wisdom I've absorbed is, if you have to do floating-point, use doubles, unless you can clearly and convincingly articulate why you absolutely need more precision, or can get away with less. (For same 3D game-rendering applications, half-precision is adequate.) A non-quantified "single-precision will be faster" declaration should be understood to include a lot of "!!1!11" punctuation after it, and such people should be handled as delicately as any other Gentoo user. Regards, Branden [1] Example: Ben Klemens, _21st-Century C_, O'Reilly. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-19 0:57 ` G. Branden Robinson @ 2019-10-19 1:11 ` Arthur Krewat 0 siblings, 0 replies; 39+ messages in thread From: Arthur Krewat @ 2019-10-19 1:11 UTC (permalink / raw) To: tuhs On 10/18/2019 8:57 PM, G. Branden Robinson wrote: > and such people should be handled as delicately as any other Gentoo user. You sir, win the Internet today ;) ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-18 22:04 ` Ken Thompson via TUHS 2019-10-18 23:20 ` Arthur Krewat @ 2019-10-29 2:18 ` Lawrence Stewart 1 sibling, 0 replies; 39+ messages in thread From: Lawrence Stewart @ 2019-10-29 2:18 UTC (permalink / raw) To: The Eunuchs Hysterical Society > On 2019, Oct 18, at 6:04 PM, Ken Thompson via TUHS <tuhs@minnie.tuhs.org> wrote: > > while writing "space travel," > i could not get the space ship integration > around a planet to keep from either gaining or > losing energy due to floating point errors. > i asked dick hamming if he could help. after > a couple hours, he came back with a formula. > i tried it and it worked perfectly. it was some > weird simple double integration that self > corrected for fp round off. as near as i can > ascertain, the formula was never published > and no one i have asked (including me) has > been able to recreate it. > > i look forward to the OCR of the code. > I think this must be a variant of “Symplectic Integration”. My son had an internship at Mitre having something to do with orbit determination and I got to reading papers about it. Symplectic integration is what you want for systems described by a Hamiltonian, such as orbits because the usual integrators (Euler, Runge-Kutta) don’t conserve the interchange between position and momentum, or something like that. As far as I can tell, this sort of stuff started getting published in the 1980s, so Hamming may well have tossed it off earlier and just not written it up. Could be a nice historical footnote for the development of orbit calculations. Could be fun to reverse engineer the code. -L ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-18 11:52 Doug McIlroy 2019-10-18 18:36 ` Steffen Nurpmeso @ 2019-10-26 15:10 ` Lars Brinkhoff 1 sibling, 0 replies; 39+ messages in thread From: Lars Brinkhoff @ 2019-10-26 15:10 UTC (permalink / raw) To: Doug McIlroy; +Cc: tuhs Doug McIlroy <doug@cs.dartmouth.edu> writes: >> 10-36-55.pdf user-mode programs: pool game > > This game, written by ken, used the Graphic 2. One of its > earliest tests--random starting positions and velocities on > a frictionless table with no collision detection--produced > a mesmerizing result. This is what the pool game looks like: https://github.com/simh/simh/issues/754#issuecomment-546611076 ^ permalink raw reply [flat|nested] 39+ messages in thread
* [TUHS] New: The Earliest UNIX Code - From the Collection of the Software History Center, Computer History Museum @ 2019-10-17 19:21 Lyle Bickley 2019-10-17 20:44 ` [TUHS] Space Travel, was New: The Earliest UNIX Code Warren Toomey 0 siblings, 1 reply; 39+ messages in thread From: Lyle Bickley @ 2019-10-17 19:21 UTC (permalink / raw) To: tuhs THE EARLIEST UNIX CODE: AN ANNIVERSARY SOURCE CODE RELEASE http://bit.ly/31pWcvM Cheers, Lyle -- 73 NM6Y Bickley Consulting West Inc. https://bickleywest.com "Black holes are where God is dividing by zero" ^ permalink raw reply [flat|nested] 39+ messages in thread
* [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-17 19:21 [TUHS] New: The Earliest UNIX Code - From the Collection of the Software History Center, Computer History Museum Lyle Bickley @ 2019-10-17 20:44 ` Warren Toomey 2019-10-17 22:39 ` Warner Losh ` (2 more replies) 0 siblings, 3 replies; 39+ messages in thread From: Warren Toomey @ 2019-10-17 20:44 UTC (permalink / raw) To: tuhs On Thu, Oct 17, 2019 at 12:21:05PM -0700, Lyle Bickley wrote: > THE EARLIEST UNIX CODE: AN ANNIVERSARY SOURCE CODE RELEASE > http://bit.ly/31pWcvM Thanks Lyle. Yay, one of the two artifacts I've been waiting for has dropped. This is the second half of the PDP-7 source code "book", of which we've only had the first half from Norman Wilson. We now have the source to Space Travel, plus roff and sh, for the PDP-7! I've broken the single PDF from CHM into several sections and put them here: https://www.tuhs.org/Archive/Distributions/Research/McIlroy_v0/ 09-1-35.pdf user-mode programs: maths functions, ln, ls, moo,nm 10-36-55.pdf user-mode programs: pool game 11-56-91.pdf user-mode programs: pd, psych, rm, rn, roff, salv, sh 12-92-119.pdf user-mode programs: space travel 13-120-147.pdf user-mode programs: stat, tm, t (B interpreter?) 14-148-165.pdf user-mode programs: ttt, un We may also have the B interpreter, but I'm not sure about that. Cheers all, Warren ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-17 20:44 ` [TUHS] Space Travel, was New: The Earliest UNIX Code Warren Toomey @ 2019-10-17 22:39 ` Warner Losh 2019-10-17 22:51 ` Warren Toomey 2019-10-18 3:01 ` Warren Toomey 2019-10-18 5:07 ` Lars Brinkhoff 2 siblings, 1 reply; 39+ messages in thread From: Warner Losh @ 2019-10-17 22:39 UTC (permalink / raw) To: Warren Toomey; +Cc: The Eunuchs Hysterical Society [-- Attachment #1: Type: text/plain, Size: 1138 bytes --] On Thu, Oct 17, 2019 at 2:45 PM Warren Toomey <wkt@tuhs.org> wrote: > On Thu, Oct 17, 2019 at 12:21:05PM -0700, Lyle Bickley wrote: > > THE EARLIEST UNIX CODE: AN ANNIVERSARY SOURCE CODE RELEASE > > http://bit.ly/31pWcvM > > Thanks Lyle. Yay, one of the two artifacts I've been waiting > for has dropped. This is the second half of the PDP-7 source > code "book", of which we've only had the first half from > Norman Wilson. > > We now have the source to Space Travel, plus roff and sh, for > the PDP-7! > > I've broken the single PDF from CHM into several sections and > put them here: > > https://www.tuhs.org/Archive/Distributions/Research/McIlroy_v0/ > > 09-1-35.pdf user-mode programs: maths functions, ln, ls, moo,nm > 10-36-55.pdf user-mode programs: pool game > 11-56-91.pdf user-mode programs: pd, psych, rm, rn, roff, salv, sh > 12-92-119.pdf user-mode programs: space travel > 13-120-147.pdf user-mode programs: stat, tm, t (B interpreter?) > 14-148-165.pdf user-mode programs: ttt, un > > We may also have the B interpreter, but I'm not sure about that. > Have these been OCR'd yet? Or just the scans? Warner [-- Attachment #2: Type: text/html, Size: 1791 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-17 22:39 ` Warner Losh @ 2019-10-17 22:51 ` Warren Toomey 2019-10-18 5:59 ` Lars Brinkhoff 0 siblings, 1 reply; 39+ messages in thread From: Warren Toomey @ 2019-10-17 22:51 UTC (permalink / raw) To: Warner Losh; +Cc: The Eunuchs Hysterical Society No OCRs yet. Warren On 18 October 2019 8:39:34 am AEST, Warner Losh <imp@bsdimp.com> wrote: >On Thu, Oct 17, 2019 at 2:45 PM Warren Toomey <wkt@tuhs.org> wrote: >> This is the second half of the PDP-7 source >> code "book", of which we've only had the first half from >> Norman Wilson. >> >> We now have the source to Space Travel, plus roff and sh, for >> the PDP-7! >Have these been OCR'd yet? Or just the scans? > >Warner -- Sent from my Android phone with K-9 Mail. Please excuse my brevity. ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-17 22:51 ` Warren Toomey @ 2019-10-18 5:59 ` Lars Brinkhoff 2019-10-18 9:30 ` SPC 2019-10-18 17:36 ` Nemo 0 siblings, 2 replies; 39+ messages in thread From: Lars Brinkhoff @ 2019-10-18 5:59 UTC (permalink / raw) To: Warren Toomey; +Cc: The Eunuchs Hysterical Society Warren Toomey wrote: > Warner Losh wrote: >>> We now have the source to Space Travel, plus roff and sh, for the >>> PDP-7! >>Have these been OCR'd yet? Or just the scans? > No OCRs yet. Warren What is everyone's experience with source code OCR? I have tried it a few times, and the resutls haven't been that good. In my experience it's about as much effort as typing it manually. I'm working on a GRAPHICS-2 simulation so we can run Space Travel. Obviously I'd like a machine readable version of the program. However, I'm not volunteering to do all the typing myself. ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-18 5:59 ` Lars Brinkhoff @ 2019-10-18 9:30 ` SPC 2019-10-18 17:36 ` Nemo 1 sibling, 0 replies; 39+ messages in thread From: SPC @ 2019-10-18 9:30 UTC (permalink / raw) To: The Eunuchs Hysterical Society [-- Attachment #1: Type: text/plain, Size: 461 bytes --] El vie., 18 oct. 2019 8:00, Lars Brinkhoff <lars@nocrew.org> escribió: > > What is everyone's experience with source code OCR? I have tried it a > few times, and the resutls haven't been that good. In my experience > it's about as much effort as typing it manually. > I use Office Lens with my móviles. Impressive results (for good) in some moments. Cordiales saludos / Best Regards / Salutations / Freundliche Grüße ----- Sergio Pedraja [-- Attachment #2: Type: text/html, Size: 1307 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-18 5:59 ` Lars Brinkhoff 2019-10-18 9:30 ` SPC @ 2019-10-18 17:36 ` Nemo 1 sibling, 0 replies; 39+ messages in thread From: Nemo @ 2019-10-18 17:36 UTC (permalink / raw) To: The Unix Hysterical Society On 18/10/2019, Lars Brinkhoff <lars@nocrew.org> wrote: > Warren Toomey wrote: >> Warner Losh wrote: >>>> We now have the source to Space Travel, plus roff and sh, for the >>>> PDP-7! >>>Have these been OCR'd yet? Or just the scans? >> No OCRs yet. Warren > > What is everyone's experience with source code OCR? I have tried it a > few times, and the resutls haven't been that good. In my experience > it's about as much effort as typing it manually. Doug had an excellent comment on OCR: https://minnie.tuhs.org/pipermail/tuhs/2019-February/017474.html ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-17 20:44 ` [TUHS] Space Travel, was New: The Earliest UNIX Code Warren Toomey 2019-10-17 22:39 ` Warner Losh @ 2019-10-18 3:01 ` Warren Toomey 2019-10-18 5:07 ` Lars Brinkhoff 2 siblings, 0 replies; 39+ messages in thread From: Warren Toomey @ 2019-10-18 3:01 UTC (permalink / raw) To: tuhs On Fri, Oct 18, 2019 at 06:44:38AM +1000, Warren Toomey wrote: > We now have the source to Space Travel, plus roff and sh, for > the PDP-7! > I've broken the single PDF from CHM into several sections. A few people have asked me if the scans have been OCR'd yet. The answer is no. Also, the input is not easily recognisable with automated OCR technology: I've already tried. We will have to hand transcribe the files as we did with the first half. There is already a PDP7 Unix mailing list from the past resurrection effort. If you'd like to join and help out with the transcribing, please e-mail me and I'll add you to the list. The list archive is: https://minnie.tuhs.org/pipermail/pdp7-unix/ Cheers, Warren ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-17 20:44 ` [TUHS] Space Travel, was New: The Earliest UNIX Code Warren Toomey 2019-10-17 22:39 ` Warner Losh 2019-10-18 3:01 ` Warren Toomey @ 2019-10-18 5:07 ` Lars Brinkhoff 2019-10-18 5:10 ` Lars Brinkhoff 2 siblings, 1 reply; 39+ messages in thread From: Lars Brinkhoff @ 2019-10-18 5:07 UTC (permalink / raw) To: Warren Toomey; +Cc: tuhs Warren Toomey wrote: > We now have the source to Space Travel Is it here, and if so, which pages? https://archive.computerhistory.org/resources/access/text/2019/09/102785108-05-001-acc.pdf ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-18 5:07 ` Lars Brinkhoff @ 2019-10-18 5:10 ` Lars Brinkhoff 2019-10-18 13:37 ` Warner Losh 0 siblings, 1 reply; 39+ messages in thread From: Lars Brinkhoff @ 2019-10-18 5:10 UTC (permalink / raw) To: Warren Toomey; +Cc: tuhs >> We now have the source to Space Travel > Is it here, and if so, which pages? Oh, the PDF is searchable. Very nice. Page 109. ^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [TUHS] Space Travel, was New: The Earliest UNIX Code 2019-10-18 5:10 ` Lars Brinkhoff @ 2019-10-18 13:37 ` Warner Losh 0 siblings, 0 replies; 39+ messages in thread From: Warner Losh @ 2019-10-18 13:37 UTC (permalink / raw) To: Lars Brinkhoff; +Cc: The Eunuchs Hysterical Society [-- Attachment #1: Type: text/plain, Size: 373 bytes --] On Thu, Oct 17, 2019, 11:10 PM Lars Brinkhoff <lars@nocrew.org> wrote: > >> We now have the source to Space Travel > > Is it here, and if so, which pages? > > Oh, the PDF is searchable. Very nice. Page 109. > Searchable means at least some ocr uas happened. I have had at best mediocre results trying to ocr the cb unix file. Maybe these will be different. Warner > [-- Attachment #2: Type: text/html, Size: 978 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
end of thread, other threads:[~2019-10-29 2:19 UTC | newest] Thread overview: 39+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-10-19 14:40 [TUHS] Space Travel, was New: The Earliest UNIX Code Doug McIlroy 2019-10-19 18:32 ` Abhinav Rajagopalan 2019-10-19 18:44 ` Abhinav Rajagopalan 2019-10-19 19:19 ` Clem Cole 2019-10-19 19:50 ` Henry Bent 2019-10-19 19:55 ` [TUHS] Space Travel related question Thomas Paulsen 2019-10-19 20:19 ` Warner Losh 2019-10-19 20:24 ` [TUHS] Space Travel, was New: The Earliest UNIX Code Arthur Krewat 2019-10-19 20:12 ` [TUHS] How to do differential/integral on a PDP-7, was: Space Travel Michael Kjörling 2019-10-19 20:40 ` Arthur Krewat 2019-10-19 21:15 ` Michael Kjörling 2019-10-21 5:14 ` Dave Horsfall 2019-10-21 5:23 ` Lars Brinkhoff 2019-10-21 13:59 ` John P. Linderman [not found] ` <68553366-4E6F-4E17-8903-282C67186D16@humeweb.com> 2019-10-26 2:24 ` Dave Horsfall 2019-10-26 2:09 ` Dave Horsfall 2019-10-21 4:55 ` Dave Horsfall 2019-10-21 19:21 ` Paul Winalski 2019-10-21 19:38 ` Kurt H Maier -- strict thread matches above, loose matches on Subject: below -- 2019-10-19 13:13 [TUHS] Space Travel, was New: The Earliest UNIX Code Doug McIlroy 2019-10-18 11:52 Doug McIlroy 2019-10-18 18:36 ` Steffen Nurpmeso 2019-10-18 20:19 ` SPC 2019-10-18 22:04 ` Ken Thompson via TUHS 2019-10-18 23:20 ` Arthur Krewat 2019-10-19 0:57 ` G. Branden Robinson 2019-10-19 1:11 ` Arthur Krewat 2019-10-29 2:18 ` Lawrence Stewart 2019-10-26 15:10 ` Lars Brinkhoff 2019-10-17 19:21 [TUHS] New: The Earliest UNIX Code - From the Collection of the Software History Center, Computer History Museum Lyle Bickley 2019-10-17 20:44 ` [TUHS] Space Travel, was New: The Earliest UNIX Code Warren Toomey 2019-10-17 22:39 ` Warner Losh 2019-10-17 22:51 ` Warren Toomey 2019-10-18 5:59 ` Lars Brinkhoff 2019-10-18 9:30 ` SPC 2019-10-18 17:36 ` Nemo 2019-10-18 3:01 ` Warren Toomey 2019-10-18 5:07 ` Lars Brinkhoff 2019-10-18 5:10 ` Lars Brinkhoff 2019-10-18 13:37 ` Warner Losh
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).