EmbeddedRelated.com
Forums

PDP-11 and MSP430

Started by minicikdev April 20, 2006
Anders Lindgren wrote:
> I think the PDP-11 had eight 16 bit general
purpose register.

Yes, but at least one wasn't general purpose; it was the program
counter (r6?). The fact that it was accessable as a general register
made all kinds of nice tricks possible. IIRC the status register
was special as well (r7?)... but I might be dreaming.

The stack pointer could have been any of the others, but one was
used by convention.

> My guess is that PDP-11 influenced Motorolas
68000,

Definitely. The 68K doubled the registers by separating some
addressing vs arithmetic functions, which caused pain for the
compiler-writers.

 > which is turn
> influenced a lot of processors, including the
MSP430.

I doubt that's the sequence; the TMS9900 seems more likely as a
path of influence. I have a TMS9900 microprocessor data sheet
here somewhere :-). Nice architecture, pity the implementation
was so appallingly slow, worse even than the minicomputer it
integrated.

My first paid programming job was on a PDP11, in 1981. I'd looked
at its assembly in the form produced by our Pascal compiler, and
even tried to tweak the code to solve the Knight's Tour faster, but
I spent my first three days of paid programming employment writing
position-independent code in MACRO-11 for an RT-11 device driver.
It seemed quite a challenge at the time :-).

Clifford Heath.

Beginning Microcontrollers with the MSP430

----- Original Message ----- 
From: "Clifford Heath" <cjh@cjh@...>
To: <msp430@msp4...>
Sent: Thursday, April 20, 2006 10:41 AM
Subject: Re: [msp430] PDP-11 and MSP430


> Anders Lindgren wrote:
>> I think the PDP-11 had eight 16 bit general purpose register.
>
> Yes, but at least one wasn't general purpose; it was the program
> counter (r6?). The fact that it was accessable as a general register
> made all kinds of nice tricks possible. IIRC the status register
> was special as well (r7?)... but I might be dreaming.
>
> The stack pointer could have been any of the others, but one was
> used by convention.
>
>> My guess is that PDP-11 influenced Motorolas 68000,
>
> Definitely. The 68K doubled the registers by separating some
> addressing vs arithmetic functions, which caused pain for the
> compiler-writers.
>
> > which is turn
>> influenced a lot of processors, including the MSP430.
>
> I doubt that's the sequence; the TMS9900 seems more likely as a
> path of influence. I have a TMS9900 microprocessor data sheet
> here somewhere :-). Nice architecture, pity the implementation
> was so appallingly slow, worse even than the minicomputer it
> integrated.
>

I used the 9995 many years ago. I rather liked it and it was faster than 
anything else available at the time for doing integer arithmetic, which was 
why we used it (we needed something like three multiplies and a divide to be 
done as fast as possible). We couldn't afford the TI assembler for it so I 
wrote a cross-assembler using macros for the Microsoft Z80 assembler running 
on a TRS-80 Model I, and debugged my code using a simple monitor/debugger 
communicating with the TRS-80 via RS-232. It was interfaced to a Z80 which 
handled all the I/O. The final version had three 9995s operating in parallel 
for 3D position computation, with the Z80 displaying the co-ordinates on 
three LED displays.

One of its features was *lots* of register banks in RAM with very fast 
switching between them. That was very nice for doing things like passing 
parameters to sub-routines and interrupt handling as they could be 
overlapped.

Leon 


>> I used the 9995 many years ago. I rather liked it and it was
faster than
anything else available at the time for doing integer arithmetic, which was
why we used it

Yep, it was so fast it made the original 9900 chipset look like a heap of 
junk.

I never understood why it didn't take off big time as a product.

I used the 9995 in process control work ... in fact, it was a network of 
9995s.

(The app was coded in TI real-time Pascal, and I wrote a RPC library & tools

to allow real-time processes to be moved to any CPU with spare EPROM space 
and/or spare processor time. I also wrote a FP maths package which ran on 
just one of the CPU boards, fitted with a maths chip. The other CPUs 
"posted" their maths requests to the maths processor CPU board.)


----- Original Message ----- 
From: "Leon Heller" <leon.heller@leon...>
To: <msp430@msp4...>
Sent: Thursday, April 20, 2006 11:27 AM
Subject: Re: [msp430] PDP-11 and MSP430


> ----- Original Message ----- 
> From: "Clifford Heath" <cjh@cjh@...>
> To: <msp430@msp4...>
> Sent: Thursday, April 20, 2006 10:41 AM
> Subject: Re: [msp430] PDP-11 and MSP430
>
>
>> Anders Lindgren wrote:
>>> I think the PDP-11 had eight 16 bit general purpose register.
>>
>> Yes, but at least one wasn't general purpose; it was the program
>> counter (r6?). The fact that it was accessable as a general register
>> made all kinds of nice tricks possible. IIRC the status register
>> was special as well (r7?)... but I might be dreaming.
>>
>> The stack pointer could have been any of the others, but one was
>> used by convention.
>>
>>> My guess is that PDP-11 influenced Motorolas 68000,
>>
>> Definitely. The 68K doubled the registers by separating some
>> addressing vs arithmetic functions, which caused pain for the
>> compiler-writers.
>>
>> > which is turn
>>> influenced a lot of processors, including the MSP430.
>>
>> I doubt that's the sequence; the TMS9900 seems more likely as a
>> path of influence. I have a TMS9900 microprocessor data sheet
>> here somewhere :-). Nice architecture, pity the implementation
>> was so appallingly slow, worse even than the minicomputer it
>> integrated.
>>
>
> I used the 9995 many years ago. I rather liked it and it was faster than
> anything else available at the time for doing integer arithmetic, which 
> was
> why we used it (we needed something like three multiplies and a divide to 
> be
> done as fast as possible). We couldn't afford the TI assembler for it
so I
> wrote a cross-assembler using macros for the Microsoft Z80 assembler 
> running
> on a TRS-80 Model I, and debugged my code using a simple monitor/debugger
> communicating with the TRS-80 via RS-232. It was interfaced to a Z80 which
> handled all the I/O. The final version had three 9995s operating in 
> parallel
> for 3D position computation, with the Z80 displaying the co-ordinates on
> three LED displays.
>
> One of its features was *lots* of register banks in RAM with very fast
> switching between them. That was very nice for doing things like passing
> parameters to sub-routines and interrupt handling as they could be
> overlapped.
>
> Leon
>
>
>
> .
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
>
> 


>>> My guess is that PDP-11 influenced Motorolas 68000,

Back in the late 70s my software colleagues always said that the PDP-11, 
M6800, M6809, M68000 were all designed by SOFTWARE engineers.

It was clear to us that the Intel 8008, 8080, 8088, 8086 etc were designed 
by HARDWARE engineers ... just take a look at their architectures, 
instruction sets and opcode mnemonics!

The Data General NOVA was a bit different ... non-orthogonal, but nice to 
program in a peverse sort of way. Perhaps it was designed by software 
engineers who had very little scope to request hardware features?

(Both the PDP-11 and M68K could be microcoded - an advanced feature for the 
era.  PDP-11 microcode was used to implement features such as image 
processing opcode. The M6K microcoding had to be done by  Motorola: their 
Hong Kong branch marketed a 4 x microded 68K based chipset to emulate the 
IBM 370 ... but it disappeared without trace)


On Thu, 20 Apr 2006 19:41:33 +1000, Clifford wrote:

>Anders Lindgren wrote:
>> I think the PDP-11 had eight 16 bit general purpose register.
>
>Yes, but at least one wasn't general purpose; it was the program
>counter (r6?).

R7

>The fact that it was accessable as a general
register
>made all kinds of nice tricks possible. IIRC the status register
>was special as well (r7?)... but I might be dreaming.

I think the status register was located at an address, 177776 in
octal.

>The stack pointer could have been any of the
others, but one was
>used by convention.

Actually, there are instructions which use the SP (R6) implicitly. For
example, JSR, RTS, MARK, interrupts and RTI, as well as various
software traps like TRAP and EMT, as well as RTT.

For those who haven't done so already, these are my early comments on
the MSP-430 and the PDP-11 -- comparison-wise:

http://users.easystreet.com/jkirwan/new/msp430.html

For those interested in manuals or other related materials on the
PDP-11 and/or DEC, I like this one:

http://research.microsoft.com/users/GBell/Digital/DECMuseum.htm

Jon