On Nov 30, 2021, at 11:27, Ralph Corderoy
<ralph(a)inputplus.co.uk> wrote:
... The point of that bit of history is they were not chip designers, but
knew electronics and programming. Wilson designed the ARM's instruction
set and it was a delight to code: very orthogonal, and every instruction
had four-bits of condition-flag test, e.g. Carry Set, and a bit to
indicate if this instruction should set the condition flags. Thus
several instructions in a row could test the condition flags set by an
instruction a few earlier and unaltered since; this cut the need for
quite a few branches. ...
I wrote a fair amount of PDP-11 assembler, back in the early 70's (about 10K LOC). I
was particularly happy with a routine that moved a cell between a pair of doubly-linked,
circular linked lists (a "free" list and a "busy" list).
The routine only had to modify six pointers, which isn't a hard problem. The cute
part was that it was able to do so using (IIRC) only eight or nine instructions. The
PDP-11's auto-increment mode obviated the need for separate index modification code.
I had previously written a fair amount of code for a Varian 620i, which had an AQX
architecture. The 620i wasn't _hard_ to program, but it _was_ a bit tedious. The
PDP-11, by comparison, was a programmer's delight.
Which brings me to a historical notion:
The DG Nova (
https://en.wikipedia.org/wiki/Data_General_Nova) came out in 1969, just a bit
before the PDP-11 (
https://en.wikipedia.org/wiki/PDP-11) My impression, when I (later
on) looked at the Nova ISA, was that they had moved in the right direction from the AQX
approach, but not quite far enough. DEC, IMNSHO, got it right. (ducking).
-r