On Monday, 14 August 2017 at 10:16:57 -0700, Paul McJones wrote:
> On Aug 14, 2017, at 9:09 AM, Paul Winalski
<paul.winalski(a)gmail.com> wrote:
>
>>> ...
>
> The FORTRAN II arithmetic IF, with its three-way branch, was probably
> introduced to facilitate use of the conditional branch instructions of
> the IBM 704, which test the value of the accumulator and take a branch
> accordingly:
>
> TMI (transfer on minus)
> TMP (transfer on plus)
My reference says TPL.
TZE
(transfer on zero)
TNZ (transfer on not zero)
It takes at most two of these instructions to implement the arithmetic IF.
And the 709 added CAS (compare accumulator with storage): it skips
0, 1, or 2 instructions depending on whether the contents of the
accumulator are algebraically greater, equal, or less than the
contents of the referenced memory location.
It was my understanding that the 704 had this instruction too, and
that it was almost certainly the background for arithmetic IF.
Unfortunately, no reference I can find can confirm or deny this
supposition. Another one is
http://www.quadibloc.com/comp/cp0309.htm,
which compares the instruction sets, but it's not categorical enough
for my liking. But if I interpret it correctly, CAS was implemented
on the 704.
Do you see a proof of the contrary?
In passing, my document also mentions the Honeywell 516, better known
to Unix people as IMP. It, too, had a CAS-like instruction.
Greg
--
Sent from my desktop computer.
Finger grog(a)lemis.com for PGP public key.
See complete headers for address and phone numbers.
This message is digitally signed. If your Microsoft mail program
reports problems, please read
http://lemis.com/broken-MUA