From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 29747 invoked from network); 25 Oct 2022 17:01:02 -0000 Received: from minnie.tuhs.org (50.116.15.146) by inbox.vuxu.org with ESMTPUTF8; 25 Oct 2022 17:01:02 -0000 Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 61C6940F26; Wed, 26 Oct 2022 03:00:49 +1000 (AEST) Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) by minnie.tuhs.org (Postfix) with ESMTPS id D017B40154 for ; Wed, 26 Oct 2022 03:00:41 +1000 (AEST) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 0AE215C01CC; Tue, 25 Oct 2022 13:00:41 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Tue, 25 Oct 2022 13:00:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=serissa.com; h= cc:cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1666717241; x= 1666803641; bh=8kx8NPGLm55zNKc2iDXeYP6Pk71/FRCfGQJcEX6eBS0=; b=G a1h+RnqXJUqgIgZsX1R3ifsEkqGWD2WztqUd8y1ne2RndcYgBCTamv3BNNaHkGTS Qy/6bJzNsiGOk/uwU2LAaKUhMKJINaoth/7Fq0Rd2NCxLzr8rVS2uiUSi1wTX9z7 1AjiwzP7wKlMZLJ+4SUMPuYEwm/SineaBVBL2gbzklWnyZh35v+PUtPRuZUCG4Wi TMf0xxE4hNzdEwFZnL7q17iUD49Bt/IFmyZxxCkV3hqOSezTpTZANE7MR6qZ8WM9 hYos6Qx+t/vQ9yb8TeP1+Xqogl+DQYUjDjQjZogf/rHm0rQ3lZWnR8C5vCkxAVhG NeB4dElbwyUd2RArRzzDw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1666717241; x= 1666803641; bh=8kx8NPGLm55zNKc2iDXeYP6Pk71/FRCfGQJcEX6eBS0=; b=o RSnQEMot3uRTjZ3XXN8AJ5PS+ICmYStHWDVMhZKRHiXrCR+8gc9JI//DYebg25em ZzE7cSAMmzxnRDg5eBAkITrYLbN/0P2uMVQxhspW2rpxsKsbqj/A6/loUTiAv2Y/ 5+2v/UaGv+XWJZDLgOF1p7vZawoP8VFo/1KDxDdvbKcbtzZKZKErqEDh7jf12EiX tq0WlfoPhgHuH2T+pnDNYvaX6QZuapp6w9/HizPgr4k6b4at2tUL1kwKA4S59qsO TC5TEDtERjJqxyPmgUqrSQ4CumlL7rAvO1jjDzxSrjjikX2WRdl4lJ2eBEHZBuj4 u3FdT/GY0nuR8rhgVMPhw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvgedrtddtgdejkecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpegtggfuhfgjffevgffkfhfvofesthhqmhdthhdtjeenucfhrhhomhepnfgrfihr vghntggvucfuthgvfigrrhhtuceoshhtvgifrghrthesshgvrhhishhsrgdrtghomheqne cuggftrfgrthhtvghrnhepleevtdffledukefgvedutdeliefhteegffetvefgjeehkeef heeiudfgvdffiefgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilh hfrhhomhepshhtvgifrghrthesshgvrhhishhsrgdrtghomh X-ME-Proxy: Feedback-ID: ibf61458d:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 25 Oct 2022 13:00:40 -0400 (EDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) From: Lawrence Stewart In-Reply-To: Date: Tue, 25 Oct 2022 13:00:39 -0400 Content-Transfer-Encoding: quoted-printable Message-Id: References: To: Angelo Papenhoff , ron minnich X-Mailer: Apple Mail (2.3696.120.41.1.1) Message-ID-Hash: QNEB3ZAOREDFXFVOAVKLUDP4FMJLCY6Y X-Message-ID-Hash: QNEB3ZAOREDFXFVOAVKLUDP4FMJLCY6Y X-MailFrom: stewart@serissa.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tuhs.tuhs.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: The Eunuchs Hysterical Society X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: who invented the link register List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: I=E2=80=99ve 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 = =E2=80=9CSP=E2=80=9D (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 =E2=80=9CTA=E2=80=9D (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 =E2=80=9CSome 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.=20 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=E2=80=99s often credited with inventing the = subroutine, but it looks like the particular thing he did was the idea = of the =E2=80=9CWheeler Jump=E2=80=9D 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 wrote: >=20 > 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. >=20 > 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. >=20 > aap