[Simh] pdp11 and unix

John Forecast john at forecast.name
Sat Feb 27 15:55:08 EST 2016


> On Feb 27, 2016, at 2:01 PM, Paul Koning <paulkoning at comcast.net> wrote:
> 
> 
>> On Feb 26, 2016, at 7:13 PM, Clem Cole <clemc at ccc.com> wrote:
>> 
>> 
>> On Fri, Feb 26, 2016 at 6:28 PM, Nigel Williams <nw at retrocomputingtasmania.com> wrote:
>> Perhaps not unusual for the 1960s but laborious none-the-less.
>> 
>> ​Depends who you are.   For grins look for the original Cray-1 "assembler" box.   You'll discover there are no mnemonics like "add", "branch" - just octal codes.   Seymor didn't need them. ​
> 
> Obviously, to get an assembler you'd first have to bootstrap *that*, unless you could write a cross-assembler.  And early assemblers weren't necessarily all that fancy.  
> 
> I've been reading some 1950s era computer descriptions, for machines without assemblers.  Opcodes are simply written as op/addr so you'd remember, say, that 0 is add and 6 is store, and so forth.  A machine introduced in Holland in 1958 -- the EL-X1 -- had a very bare-bones assembler, or slightly smart loader, depending on how you'd want to think about it.  Just a few hundred instructions; it had opcodes like "0A" (add to A) or "6S" (store S register).  And it had symbolic addresses, but you couldn't label individual locations, only "paragraphs" because symbols were only pairs of one of 13 letters, i.e., a max of 169 symbols per program.  Still, with that primitive tool some large software was written, such as the world's first ALGOL compiler.
> 
> It isn't really all that much harder than a modern assembler once you get used to the different look.
> 
> 	paul
> 

When I was in secondary school in the mid-1960’s, I had a weekend job as an operator on the
Atlas 2 (Titan) at Cambridge University in the UK and later worked as a junior programmer there over the summer when I went to university. Atlas instructions were fixed format (10-bit opcode field, 2 7-bit B-register addresses and a 24-bit memory address) and the assembler
accepted numeric input for each of the fields. I still remember some of the basic instructions:

	121		3	0	5			would load 5 into B-register 3
	121	    127	0	addr			would jump to addr since B127 was the “PC”

The hardware did not include a subroutine call instruction so you had to use an “Extracted”
(sort of like a trap to BIOS) IIRC:

     1362		0	0	addr			would call the routine at addr and leave a return
								link in B90
	121	    127    90	0			would return from the subroutine

This was the first computer I had contact with and it really wasn’t that hard to remember the
basics although there were something like 300 instructions and a similar number of extracodes!

  John.

> _______________________________________________
> Simh mailing list
> Simh at trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh



More information about the Simh mailing list