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=-1.0 required=5.0 tests=MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 7308 invoked from network); 25 Oct 2022 22:53:00 -0000 Received: from minnie.tuhs.org (50.116.15.146) by inbox.vuxu.org with ESMTPUTF8; 25 Oct 2022 22:53:00 -0000 Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 6A41041DC2; Wed, 26 Oct 2022 08:52:56 +1000 (AEST) Received: from mercury.lcs.mit.edu (mercury.lcs.mit.edu [18.26.0.122]) by minnie.tuhs.org (Postfix) with ESMTPS id 54E3641DC1 for ; Wed, 26 Oct 2022 08:52:52 +1000 (AEST) Received: by mercury.lcs.mit.edu (Postfix, from userid 11178) id 6FC1818C073; Tue, 25 Oct 2022 18:52:51 -0400 (EDT) To: tuhs@tuhs.org Message-Id: <20221025225251.6FC1818C073@mercury.lcs.mit.edu> Date: Tue, 25 Oct 2022 18:52:51 -0400 (EDT) From: jnc@mercury.lcs.mit.edu (Noel Chiappa) Message-ID-Hash: TWUN3PWUTX3IVXHPJIPAOS2AHIJZHIAU X-Message-ID-Hash: TWUN3PWUTX3IVXHPJIPAOS2AHIJZHIAU X-MailFrom: jnc@mercury.lcs.mit.edu 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: jnc@mercury.lcs.mit.edu 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: > From: ron minnich > I know branch and link was in the 360; was it earlier? Well, as I understand it, branch and link (BAL and BALR) did a couple of different things (if I have this wrong, I hope someone will correct me). It was a subroutine call, but it also loaded a base register. (Those were used to deal with the /360's bizarro memory management, which was not 'base and bounds, with a user's virtual address space starting at zero', like a lot of contemporary machines. Rather, a process saw its actual physical memory location, so depending on where in memoty a process was loaded, it would be executing at different addresses visible to it; the base registers were used to deal with that. This made swapping complicated, since it had to be swapped back in to the same location.) Which function of BALR are you enquiring about? The subroutine call part? > From: Angelo Papenhoff > The Whirlwind used the A register for this purpose. ... > 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. The only machines older than Whirlwind I know of are the ACE (design; not implemented until later) and EDVAC. I have ACE stuff, but i) the documentation is really wierd, and hard to read, and ii) it's really bizarre (it didn't have opcodes; different registers did different things). There were subroutines written for it, but it's not clear how they were called. The EDVAC, the only thing I have on it is von Neumann's draft, and it's even harder to read than Turing's ACE Report! Noel