[Info-vax] OT: PDP-11 history in arstechnica
chris
chris-nospam at tridac.net
Wed Mar 16 20:07:07 EDT 2022
On 03/16/22 18:30, Johnny Billquist wrote:
> On 2022-03-16 01:25, chris wrote:
>> On 03/15/22 02:18, Rich Alderson wrote:
>>> chris<chris-nospam at tridac.net> writes:
>>>
>>>> On 03/15/22 01:22, Simon Clubley wrote:
>>>>> On 2022-03-14, Bob Gezelter<gezelter at rlgsc.com> wrote:
>>>>>> On Monday, March 14, 2022 at 7:47:34 PM UTC-4, Arne Vajhøj wrote:
>>>>>>> https://arstechnica.com/gadgets/2022/03/a-brief-tour-of-the-pdp-11-the-most-influential-minicomputer-of-all-time/
>>>>>>>
>>>
>>>>>> Arne,
>>>
>>>>>> Not sure where the author of the arstechnica piece saw "$" for
>>>>>> immediate
>>>>>> mode, e.g., mov $10,r0. MACRO-11 as I new it, always used a "#",
>>>>>> e.g., MOV
>>>>>> #SS.XYZ,R0.
>>>
>>>>>> Spent lots of time writing and generating assembler for RSX-11
>>>>>> systems and
>>>>>> relatives, e.g., P/OS. Did many interesting things.
>>>
>>>>>> - Bob Gezelter, http://www.rlgsc.com
>>>
>>>>> DEC versus AT&T syntax (and yes, I know the following is Intel not
>>>>> DEC,
>>>>> but it's much the same thing here for the syntax you mention):
>>>
>>>>> https://wiki.osdev.org/Opcode_syntax
>
> The article is actually mixing Unix and DEC notations wildly, as well as
> having various errors in there.
>
>>>>> Perfectly normal and expected. Also note "mov src, dest" instead of
>>>>> "mov dest, src".
>>>
>>>> Yes, from, to, left to right. Same for 68000 series as well. Intel
>>>> always were a bit backward in that respect...
>>>
>>>>> Expect to see more of it in your future. :-)
>>>
>>> "DEC" syntax, hmm? Macro-10:
>>>
>>> MOVE 17,SUMWHR
>>> ADDI 17,37
>>> MOVEM 17,ELSWHR
>>>
>>> The "destination" AC always follows the opcode immediately, the
>>> effective
>>> address of the "source" comes after the comma. Note that since there
>>> are
>>> "to-memory" instructions, the notion of "source" vs. "destination" is
>>> not
>>> particularly useful...
>
> This is one of the things I most dislike about Macro-10 actually. :-D
>
>> Perhaps, but people no longer program in octal, nor have to worry about
>> where the opcode field etc is in the instruction stream. Not familiar
>> with Macro-10 syntax, but assume that would be source -> destination as
>> well.
>
> That's what "MOVE" vs. "MOVEM" is. MOVE moves from memory, MOVEM moves
> to memory. But arguments are always "accumulator,address", independent
> of which direction data goes.
>
Quite similar to some 8 bit micro architecture, where everything is
relative to either the accumulator or an index register. No concept
of source or destination as in pdp11 and others. Data General Nova
was an accumulator / index register machine as well, vastly inferior
to the pdp11.
>> Just saying, read left to right, move something from a source to a
>> destination, so the dec pdp11 macro syntax is more natural. Having
>> worked with a lot of micros, some of which are quite primitive and
>> badly thought out, the PDP11 was light years ahead. Instructions
>> like sob, to create a tight loop in 3 lines of macro were truly
>> revolutionary and being of the sixties, always wondered what
>> those guys must have been smoking...
>
> Yes, Macro-11 is rather natural. And *very* much like Macro-32.
> However, SOB was not in the original instruction set of the PDP-11. It's
> an extension.
>
> But why 3 lines of macro? For many things, it's just 2...
>
> 10$: MOV (R0)+,(R1)+
> SOB R2,10$
>
> Johnny
Yes the basic loop is just 2 lines, ignoring initialisation, but the
point is that that instruction was pretty high level for a machine
that must have been designed around 1968.
Do have the 1970 11/05 and 11/10 handbook and it was just the those
two that lacked the sob instruction. Used it all the time here and yes,
nearly always the same registers for variables, loop counters, addresses
etc...
Chris
More information about the Info-vax
mailing list