Infocom on PDP-11

Allison ajp166 at bellatlantic.net
Mon May 9 09:34:26 CDT 2005


>
>Subject: Re: Infocom on PDP-11
>   From: Paul Koning <pkoning at equallogic.com>
>   Date: Mon, 09 May 2005 09:58:58 -0400
>     To: cctalk at classiccmp.org

> Allison> IBM360 like a PDP-8????  Explain please.
>
>Small directly addressable range (128 words for the 8, 4k for the
>360) is what I was thinking about.

Not unusual for machine that address a larger memory with shorter 
words or worse use a extended memory hack.

However the PDP-8 is a bit different.  You have a direct addressing 
of 128 words in the current field and Page zero field.  Makes it 
easier to have variables that can be accesses from anywhere in the 
4k frame and since the EMA allows for I&D you can still access the
zero'th field from code anywhere in the 32kW space. Also the 8 
autoindex memory locations are in zero field.  Programming the -8
is a good exercise in what is really needed, and how to exploit 
it. 

>I believe the main reason is to make the code smaller.  P-code
>compilers have been used on the PDP-11 (the Algol compiler was ported
>there, and Fortran-4 was P-code).  Basic-Plus is P-code of course, and
>so is Forth.  Then there is UCSD Pascal.

Actually it also allows one other thing.  Machines like the PDP-8 
only address 4k, they got to 32kW with EMA and using the IL 
interpreter to do the memory management so programs can exceed
4k hides a lot of stuff the compiler would have to deal with.

The PDP-11 is a good stack machine so doing any programming style 
on that ends up compact and fairly fast.  I used to run UCSD Psystem
on an 11/23, not bad.

>Sure.  But my point is that, even when you have NO help from the
>processor instruction set, you can do a block oriented language.  The

I figured that was a given if the basic addressing range was large 
enough to reasonably fit the code.

>Cyber is about the most unhelpful architecture you can find: no stack,
>no autoincrement registers, function call works by writing the return
>address into the first word of the function, etc.  And sure enough,

Never looked at the Cyber, sounds like the other earlier PDP-n systems.
The PDP-8 has the same subroutine call as Cyber, the return address
is the first byte of the routine. The problem for the -8 programmer 
is that subroutine must be in the same 4k bank otherwise you have 
to invoke a small potload of code to set up a bank change then do 
the call (JMS I,target).

>Wirth bitched a lot about that, but the compiler works, anyway.  In
>fact, it worked well enough that the first VMS Pascal compiler was a
>quick hackjob on the Cyber compiler -- you can still see the Cyber
>code patterns when you look at the VAX machine code that VAX Pascal
>V1.0 generates -- which is quite hilarious.

Never saw V1 of the VMS Pascal. Sound like the typical things that 
happen when you try to reuse code across widely different archetectures.

I have to admit I'm a bit soft for anything PDP-8 or "8" like and
as a result I have an 8f, DecmateIII, 6100 and 6120 based hardware.
I suspect it was from my first contact with one 36 years ago.  I've 
worked with just about every 8bitter save for the 2650.  But the minis
are definately different from any micro.

Allison




More information about the cctalk mailing list