PiDP-10 notes

165 views
Skip to first unread message

Francis King

unread,
Oct 18, 2025, 6:24:52 AMOct 18
to PiDP-10
Please find here my notes on the PiDP-10.


Comments and thoughts please

Ric Werme

unread,
Oct 19, 2025, 8:45:18 AMOct 19
to PiDP-10
First very brief notes:

Slide 1:
Expect to be flamed for using this color.  I've forgotten  the details, but the burgundy color was adopted in the post Ken Olsen era and was never used in any PDP-10 document.  It is much hated by people who miss the KO days.  Finding the right logo is getting disturbingly hard, refer to PiDP-10 docs, see also:
Whatever you do, keep the square dots over the "i"s.  Round dots will get you flamed.

Slide 7:
"pdpcontrol start N" doesn't mention N=0 for BLINKY.  I hope to get N=3 for my binary clock and lights display.

Slide 59:
Your description of S/B isn't complete, I'd have to check the manual.  I may have never used a MOVES, but I recently wrote a SETZB to zero ACs 0 and 6.

Slide 61:
You say "The PDP-10 doesn’t have a stack pointer as such"
I've seen others say that too, but I've never thought that.  Perhaps it's because I later encountered systems that have a dedicated stack pointer whereas and AC on the -10 can be used as a stack pointer.  AC0 generally never is, as it isn't indexable, and people generally need to do things like "AOS 0(P)" to do  a skip return.  Occasionally I've written code that uses a second stack purely for data that is used across multiple subroutines and warrants its own stack pointer.

Perhaps "Any accumulator can be used as a stack pointer, but AC17 is typically used as it's an index register and out of the way of other uses for accumulators."
[Other uses include contiguous blocks of registers or executing code from the fast ACs on KAs and KIs.]

Slide 64:
You say "At the end of the subroutine, POPJ P does the reverse of PUSHJ"
Please add the comma after "POPJ P".  I.e. "POPJ P,".  What you wrote, at least on a KA-10, will use AC0 as the stack pointer (we normally use that as 36 Boolean flags) and do the wrong thing.

Jon Jackson

unread,
Oct 19, 2025, 10:30:10 AMOct 19
to Ric Werme, PiDP-10
Hmmm, I can download the file, but my Powerpoint 2021 says it cannot open it (after clicking the "needs repair" button).

--
You received this message because you are subscribed to the Google Groups "PiDP-10" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-10+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/pidp-10/2be11018-3b97-47ef-b1f5-686390ccdb7cn%40googlegroups.com.
Message has been deleted

Francis King

unread,
Oct 19, 2025, 11:18:46 AMOct 19
to PiDP-10
I have now added a PDF file alongside an updated PPT file.

Jon Jackson

unread,
Oct 19, 2025, 11:29:04 AMOct 19
to Francis King, PiDP-10
Sorry for my earlier comment.  Coffee is now in hand and brain is now functionial.  File is now open.

Preston Briggs

unread,
Oct 19, 2025, 4:06:06 PMOct 19
to PiDP-10
Here's a link to an emacs manual of the appropriate vintage

Ric Werme

unread,
Oct 20, 2025, 11:49:52 PMOct 20
to PiDP-10
More notes.  Very good job overall.

Slide 19:
You say to use:  :CREATE filename1 filename2
Did you mean to say:  :CREATE filename1

Slide 20:
You say: :DELETE filename filename2
Did you mean to say: :DELETE filename

Slide 51:
I don't remember ever thinking of the opcode as being 7 bits with a 2 bit mode.  If anything, I think of half word opcodes starting wit 5 and test opcodes starting with 6.  While it does fit several instructions, I tend to think of instructions like MOVEI and MOVEM, but never think of MOVES.  I'd be inclined to drop your mode field and look more like page 014 in the manual you reference.

Slide 52:
"Includes bits 0 .. 6" - I'd say 0 .. 8.
"Three octal digits" - that's what I'd say, it implies 0 .. 8, not  "0 .. 6 with trailing 00 bits" or how you describe device codes.
"Functions include" - I'd add and new first item, "Memory fetch and store"
"Arithmetic, integer and single precision" should be "Arithmetic, integer and single precision floating point"
"Jump, push, pop" - How about "Compare, test, skip, and jump?"  Push and pop are memory store and fetch.

Slide 53, 54:
I recommend making it clear that the mode only applies to some instructions.
You could discuss a three bit mode for the 3xx opcodes, but I've always thought of the suffixes as "whatever I need."  I know that -a is xx4, but only because of the TOPS-10 null job "AOJA 0,1" has opcode 344.

Slide 60:
"A block is defined using BLOCK" - I'd say "A block of memory is ..."

Slide 64:
There's a formatting problem - "stack" is split across two lines:
"The value at the top of the stac
k is put into the program
 counter;"

On Saturday, October 18, 2025 at 6:24:52 AM UTC-4 francis...@gmail.com wrote:

Eric Swenson

unread,
Oct 21, 2025, 11:49:26 AMOct 21
to Ric Werme, PiDP-10
No he didn’t. Filenames in ITS consists of two sixbit names, called FN1 and FN2, back in the day. The full path spec of a file is” DEV:DIR;FN1 FN2”, where DEV is the device, DIR is the directory, and FN1 and FN2 are the components of the file name. To create a new file called FOO TXT, you would enter:

:CREATE FOO TXT<enter>

All ITS file commands can take the four components of a pathname or leave out any of them with suitable defaults. So this applies to the :DELETE, :PRINT, etc. commands.

Ric Werme

unread,
Oct 22, 2025, 11:30:04 AMOct 22
to PiDP-10
Ah, thank you for the correction, I should have figured that out.

Francis King

unread,
Oct 23, 2025, 3:47:13 PMOct 23
to PiDP-10
Thank you everyone for your input, which has gone into the PowerPoint deck.
Reply all
Reply to author
Forward
0 new messages