The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Lawrence Stewart <stewart@serissa.com>
To: Marc Donner <marc.donner@gmail.com>
Cc: The Eunuchs Hysterical Society <tuhs@tuhs.org>
Subject: [TUHS] Re: who invented the link register
Date: Tue, 25 Oct 2022 17:03:15 -0400	[thread overview]
Message-ID: <ABFD430D-8566-4783-A0DF-94190760E44A@serissa.com> (raw)
In-Reply-To: <CALQ0xCDfGNXr=nSF_K9w1Th3VzzUihqjUQXNu=rPzZW1dRbDrQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5730 bytes --]

While we are chasing threads of the past, before our esteemed leader stomps on us for not being Unixy here…

The missing memo was M-649, which is listed in http://bitsavers.org/pdf/mit/mitre/MITRE_Archive/AC006_WHIRLWIND_I_Computer_Collection_at_Smithsonian.pdf <http://bitsavers.org/pdf/mit/mitre/MITRE_Archive/AC006_WHIRLWIND_I_Computer_Collection_at_Smithsonian.pdf> as being titled “Some New Orders for WWI” by C. W. Adams and R. P. Mayer.

M-668, the biweekly report from October 29. 1948 says  (see scan at end) the order SP (subprogram) is an old order but has been modified to place the contents of PC in the AR.  Uses of these orders are suggested in the Memo.

According to the description of it in M-669 (Biweekly report part III), the memo was 2 pages.


C. W. Adams is Prof Charles W. Adams, who wrote a couple of non-technical articles

https://dl.acm.org/doi/pdf/10.1145/609784.609795 <https://dl.acm.org/doi/pdf/10.1145/609784.609795>  “Small Problems on Large Computers"

https://dl.acm.org/doi/pdf/10.1145/1455270.1455271 <https://dl.acm.org/doi/pdf/10.1145/1455270.1455271>  “Small Computers in a Large World”

It was interesting to encounter references to J W Salzer and Alan Perlis in the various documents.

-Larry

E. P. Mayer was evidently an engineer on the Whirlwind probject. He’s mentioned all over in the context of circuit and block diagrams.

> On 2022, Oct 25, at 4:05 PM, Marc Donner <marc.donner@gmail.com> wrote:
> 
> There was a guy at IBM research who had a patent framed on his wall that he claimed was for indirect addressing.  Sadly, I don't remember his name.  I'll ask Peter Capek if he remembers who it was.
> 
> On the other hand, I'm now reading a book called "Turing's Cathedral" that goes into considerable length talking about what is essentially indirect addressing in the context of the evolution of the Von Neumann model and its limitations.
> =====
> nygeek.net <http://nygeek.net/>
> mindthegapdialogs.com/home <https://www.mindthegapdialogs.com/home>
> 
> 
> On Tue, Oct 25, 2022 at 2:27 PM Clem Cole <clemc@ccc.com <mailto:clemc@ccc.com>> wrote:
> I agree that sounds pretty conclusive. I knew Wheeler had used his JUMP with EDSAC, I had been wondering if Wilkes had something in his machine (EDSAC II) - sounds like it was proposed. But I would not be surprised if the idea was Wilkes, but Whirlwind implemented it.   They all talked to each other.
> 
> With apologies to Tom Lehrer ...
> "And then I write
> By morning, night,
> And afternoon,
> And pretty soon
> My name in Dnepropetrovsk is cursed, When he finds out I publish first."
> 
> ᐧ
> 
> On Tue, Oct 25, 2022 at 1:01 PM Lawrence Stewart <stewart@serissa.com <mailto:stewart@serissa.com>> wrote:
> I’ve just spent a fun hour looking at the old Whirlwind documents.  I think I agree with Angelo.
> 
> The 1947 block diagrams and time-pulse charts show that the original “SP” (subprogram) instruction transferred the low 11 bits of the instruction directly to the program counter.  They do not show the old program counter being saved in the AR register, nor is there yet the “TA” (transfer address) instruction to save the AR register to memory.
> 
> Evidently both these new features, which together provide a branch and link function were likely described in memo M-647, which is not scanned anywhere I can find.  It is called “Some new orders for WWI"
> 
> There was already logic for the program counter to drive the bus, and logic to capture the bus into the AR register, so the modification to SP to save the old program counter was likely pretty easy: drive the bus from the program counter, and capture it in AR, just by adding some new diodes to the sequencer.
> 
> Adding the Transfer Address instruction was likely also pretty easy, since there was a way for the AR register to drive the bus. 
> 
> With the new SP and TA, one would use SP to call a subroutine, and the first instruction of any subroutine would be TA to save the return address into the final location of the subroutine.  (TA only modified the low 11 bits of the 16 bit location)
> 
> Before these instructions, a subroutine call would require one additional memory location, to hold the return address for each point of call, and one additional instruction, one to load the return address into the accumulator and one to store it into the code at the end of the subroutine. (The latter could be the first instruction of the subroutine.)
> 
> Originally I thought that maybe David Wheeler invented the Link register, since he’s often credited with inventing the subroutine, but it looks like the particular thing he did was the idea of the “Wheeler Jump” where code explicitly stores the return address into the instruction at the end of the subroutine.  That idea was used in Whirlwind as well.  EDSAC I did not have link, but it was proposed for EDSAC II.  Whirlwind was likely first to implement.
> 
> > On 2022, Oct 25, at 4:35 AM, Angelo Papenhoff <aap@papnet.eu <mailto:aap@papnet.eu>> wrote:
> > 
> > On 25/10/22, Angelo Papenhoff wrote:
> >> Might be earlier than this, I just happen to know the Whirlwind somewhat
> >> well. It's late 40s machine, so you probably won't find anything *much*
> >> older.
> > 
> > Addendum: the original report from 1947 does not describe this behaviour
> > yet. The change came in oct. 1948. M-668 mentions it and refers to M-647,
> > which however is not available online.
> > So the concept of saving the resturn address in another register is at
> > least as old as oct. 1948, but again I wouldn't be surprised if some
> > even slightly earlier computer had it too.
> > 
> > aap
> 

[-- Attachment #2.1: Type: text/html, Size: 10410 bytes --]

[-- Attachment #2.2: Image.png --]
[-- Type: image/png, Size: 133413 bytes --]

  reply	other threads:[~2022-10-25 21:04 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-12 19:01 [TUHS] " ron minnich
2022-10-24 23:46 ` [TUHS] " Angelo Papenhoff
2022-10-25  8:35   ` Angelo Papenhoff
2022-10-25 17:00     ` Lawrence Stewart
2022-10-25 18:26       ` Clem Cole
2022-10-25 20:05         ` Marc Donner
2022-10-25 21:03           ` Lawrence Stewart [this message]
2022-10-26  4:45       ` Ralph Corderoy
2022-10-26  5:29         ` Angelo Papenhoff
2022-10-26  7:52           ` Marc Donner
2022-10-26 11:12         ` Larry Stewart
2022-10-25 22:24 ` Bakul Shah
2022-10-25 22:41   ` Harald Arnesen
2022-10-25 22:47   ` Robert Clausecker
2022-10-25 22:52 Noel Chiappa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ABFD430D-8566-4783-A0DF-94190760E44A@serissa.com \
    --to=stewart@serissa.com \
    --cc=marc.donner@gmail.com \
    --cc=tuhs@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).