Best source for learning to program pdp 8/e

53 views
Skip to first unread message

will...@gmail.com

unread,
Jan 26, 2022, 10:19:50 PMJan 26
to
So,
I've got a spankin' brand new PDP-8/E (simulator) - thanks Bernhard for a masterpiece... Now, I want to learn all that I can about the machine and how it is programmed. I dug around all over the place and as far as I can tell, the best available book on programming the thing is 1975's Introduction to Programming (DEC-08-XINPA-A-D) 5th Edition. But, I'd like to hear other's opinions on this. I've also seen the PDP 8/E/F/M handbook and a few earlier handbooks, a 1969 PAL III Programming Manual and such. What other sources do folks remember from back in the day?

Will

Tim

unread,
Jan 27, 2022, 1:12:51 AMJan 27
to
Intro to Programming was the first book I read to learn to program on a pdp-8 in high school. From there you will be able to write small programs and move up to bigger programs.

Don Baccus

unread,
Jan 27, 2022, 9:45:07 AMJan 27
to
Bernhard's emulator is very nice indeed.

I recommend adding an additional 4K (or just fill it to 32K) to your emulated 8/e then run OS/8 for your programming environment. Just mount the provided disk image and boot it.

OS/8 includes an editor, PAL8, the linker and ODT ("Octal Debugging Technique" - a simple debugger) is built-in which allows for easier debugging. That's all you need to write simple assembly code.

You can "get" rather than "run" programs you assemble and link and then run it or single step it using the emulator's console if you want the low-level experience, and OS/8 doesn't interfere with your use of the peripherals on the machine, so you can still write your own code to read and write the emulated ASR33. The nice thing about the simple 'ole PDP-8 is that simple I/O for simple devices is, well, dead simple if interrupts are turned off ...

OS/8 provided by far the best development environment for the PDP-8.

Keep asking questions! I began writing PDP-8 code while a junior in High School and a program called OMSI Basic pretty much paid for my freshman year at Oregon State University (It was extraordinarily cheap back in the day) so I (along with others here) can provide help.

Scott Lurndal

unread,
Jan 27, 2022, 10:13:55 AMJan 27
to
"will...@gmail.com" <will...@gmail.com> writes:
>So,
>I've got a spankin' brand new PDP-8/E (simulator) - thanks Bernhard for a m=
>asterpiece... Now, I want to learn all that I can about the machine and how=
> it is programmed. I dug around all over the place and as far as I can tell=
>, the best available book on programming the thing is 1975's Introduction t=
>o Programming (DEC-08-XINPA-A-D) 5th Edition. But, I'd like to hear other's=
> opinions on this. I've also seen the PDP 8/E/F/M handbook and a few earlie=
>r handbooks, a 1969 PAL III Programming Manual and such. What other sources=
> do folks remember from back in the day?

Back in the day, I used the small computer handbook and programmed
mainly in Focal, PAL-D and Basic on TSS 8.24.

Johnny Billquist

unread,
Jan 27, 2022, 11:19:37 AMJan 27
to
On 2022-01-27 15:45, Don Baccus wrote:
> On Wednesday, January 26, 2022 at 10:12:51 PM UTC-8, Tim wrote:
>> On Wednesday, January 26, 2022 at 9:19:50 PM UTC-6, will...@gmail.com wrote:
>>> So,
>>> I've got a spankin' brand new PDP-8/E (simulator) - thanks Bernhard for a masterpiece... Now, I want to learn all that I can about the machine and how it is programmed. I dug around all over the place and as far as I can tell, the best available book on programming the thing is 1975's Introduction to Programming (DEC-08-XINPA-A-D) 5th Edition. But, I'd like to hear other's opinions on this. I've also seen the PDP 8/E/F/M handbook and a few earlier handbooks, a 1969 PAL III Programming Manual and such. What other sources do folks remember from back in the day?
>>>
>>> Will
>> Intro to Programming was the first book I read to learn to program on a pdp-8 in high school. From there you will be able to write small programs and move up to bigger programs.
>
> Bernhard's emulator is very nice indeed.
>
> I recommend adding an additional 4K (or just fill it to 32K) to your emulated 8/e then run OS/8 for your programming environment. Just mount the provided disk image and boot it.

I'd definitely throw in 32K. No reason not to.

> OS/8 includes an editor, PAL8, the linker and ODT ("Octal Debugging Technique" - a simple debugger) is built-in which allows for easier debugging. That's all you need to write simple assembly code.

OS/8 have several editors (including TECO), lots of different languages,
and utilities.

> You can "get" rather than "run" programs you assemble and link and then run it or single step it using the emulator's console if you want the low-level experience, and OS/8 doesn't interfere with your use of the peripherals on the machine, so you can still write your own code to read and write the emulated ASR33. The nice thing about the simple 'ole PDP-8 is that simple I/O for simple devices is, well, dead simple if interrupts are turned off ...

Which they normally are. OS/8 do not use the interrupt system at all.
You usually want to use the OS/8 device drivers to get device
independence in normal programs. But for playing around, you can just
ignore OS/8 and just go ahead and handle the machine just like if you
ran on bare metal.
Nothing special is needed to be done. Once your program starts, OS/8 is
basically no more, unless you explicitly call for it.

> OS/8 provided by far the best development environment for the PDP-8.

Possibly true. Depends on how you look at it. But it does provide you
with everything you'd normally want to do.

Johnny

Don Baccus

unread,
Jan 27, 2022, 12:21:14 PMJan 27
to
Yes, plenty of languages available, didn't mention that because he specifically discussed writing assembly code.

While the device drivers did provide some level of device independent programming capability, the console was usually driven directly using IOT instructions in a program in OS/8.

TECO is a very good editor, after all I was one of the two people who originally ported it to (then) PS/8 (later OS/8). And in the process sped up Russ Hamm's original implementation by a factor of three by rewriting the memory management part of the code. But the standard editor might be more approachable for those not familiar with TECO. I dunno ...

After OS/8 was out and established, I don't really know of any serious development that was done under the old Disk Monitor. There were the time sharing systems mostly for educational use (TSS/8 and EduComp), speciality systems like Dibol, etc, but for people writing code for embedded applications or to write more generalized stuff OS/8 was where it was at. And Educomp's software was developed under OS/8 though it was its own enclosed world (IIRC) when running.

Don Baccus

unread,
Jan 27, 2022, 12:24:12 PMJan 27
to
On Thursday, January 27, 2022 at 8:19:37 AM UTC-8, Johnny Billquist wrote:
True that general purpose programs running under OS/8 would leave interrupts off generally, as it was a single-user system, but plenty of embedded systems were interrupt-driven and developed under OS/8. RTS-8 systems supported OS/8 as a development environment too, though you could use a standalone system with OS/8 to do the development.

Tim

unread,
Jan 27, 2022, 12:56:27 PMJan 27
to
On Thursday, January 27, 2022 at 9:13:55 AM UTC-6, Scott Lurndal wrote:
> "will...@gmail.com" <will...@gmail.com> writes:

> Back in the day, I used the small computer handbook and programmed
> mainly in Focal, PAL-D and Basic on TSS 8.24.

Those also were my primary programming languages. For most of my time our TSS site was running 8.22B. Only towards the end did they
move up to 8.24. We got to help with some conversions. They didn't allow "normal" users to use the TALK command except to the console (K00).
Of course the console could talk to all other users. There were likely a few other things changed. There was even a professor working on a virtual
TSS/8 called TSV8 that would allow 8k to be used by one job (may have been all). He left the college before I started there so I have few details on
that and never saw it again.

Johnny Billquist

unread,
Jan 27, 2022, 1:30:59 PMJan 27
to
Well, my point was also partly that OS/8 itself not using interrupts,
and in fact if you enable interrupts, you're likely to break OS/8.

The FORTRAN IV RTS uses interrupts, but before calling any OS/8 device
drivers, it always turns them off, and then on again after the driver
returns.

RTS-8 certainly was interrupt driven as well, yes. And OS/8 could run as
sortof a task under RTS-8, which was pretty cool. But if you did any
development under OS/8 you had to build a new RTS-8 system, and boot
that. No way to dynamically add tasks to RTS-8.

Johnny

Johnny Billquist

unread,
Jan 27, 2022, 1:37:20 PMJan 27
to
Fair enough. But even with assembler, you have several...
PAL8, MACREL, SABR, RALF...

Not that I'd recommend any of the last two... ;-)

> While the device drivers did provide some level of device independent programming capability, the console was usually driven directly using IOT instructions in a program in OS/8.

Yeah. Much simpler than using the device driver, and allow for better
control. There were very few occasions where I used the TTY driver if I
just wanted to talk to the terminal.

> TECO is a very good editor, after all I was one of the two people who originally ported it to (then) PS/8 (later OS/8). And in the process sped up Russ Hamm's original implementation by a factor of three by rewriting the memory management part of the code. But the standard editor might be more approachable for those not familiar with TECO. I dunno ...

As far as I can remember, the standard editor wasn't much fun. But I
know what you mean with TECO. :-)
But there are other alternatives as well. VISTA is a very nice screen
oriented editor, if someone is more into that.

I wrote an Emacs implementation in TECO-8 as well. Pretty easy, actually.

And thanks for all the improvements to TECO-8. :-)

> After OS/8 was out and established, I don't really know of any serious development that was done under the old Disk Monitor. There were the time sharing systems mostly for educational use (TSS/8 and EduComp), speciality systems like Dibol, etc, but for people writing code for embedded applications or to write more generalized stuff OS/8 was where it was at. And Educomp's software was developed under OS/8 though it was its own enclosed world (IIRC) when running.

I don't think I ever even saw the disk monitor. Really looks like a
primitive grandfather of OS/8.

I used MULTOS-8 some as well, which was pretty cool. Multiuser PDP-8
system, where each user got his own virtual PDP-8 running OS/8. Require
no special hardware either (apart from the timeshare option and a
realtime clock).

And I know of Etos8, but I never used it.

Johnny

will...@gmail.com

unread,
Jan 27, 2022, 3:23:40 PMJan 27
to
Thanks everyone, for the hints. I was starting off the hard way - load rim, load bin, load symbolic editor, flip switches on the console, etc. I thought OS/8 was cheating :). I'll have to go that road and see how things play out.

Rich Alderson

unread,
Jan 27, 2022, 7:16:45 PMJan 27
to
OK, here's how good the Intro to Programming + Small Computer Handbook pair is:
I learned to program the PDP-8 using those, in order to add a set of commands
to PIP10 which would write a PDP-10 formatted DECtape from a text file in which
the PDP-10 binary was represented in SIXBIT text transferred via Charles Lasner's
KERMIT-12 program.

The purpose of this exercise was to write diagnostics for the KI-10 (second
generation PDP-10 processor) onto DECtape instead of having to run them from
paper tape, when we were restoring the KI at the museum.

Yes, I was already an assembly language programmer on PDP-10s and IBM System/360
processors (for 40 years at that point), but those books were sufficient for me
to perform the task I'd assigned myself...

--
Rich Alderson ne...@alderson.users.panix.com
Audendum est, et veritas investiganda; quam etiamsi non assequamur,
omnino tamen proprius, quam nunc sumus, ad eam perveniemus.
--Galen

steve...@gmail.com

unread,
Jan 28, 2022, 3:12:59 PMJan 28
to

I would recommend adding to the list:

AA-H609A-TA OS8 v3d Language Reference Manual

You can find it here:

http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/pdp8/os8/AA-H609A-TA_OS8_Language_Reference_Manual_Mar79.pdf

You will eventually run into questions that the other documents can't answer. The Language Reference Manual can answer many of those.


I would also add that there a lot of what an ex-boss of mine referred to as Grey Beards running around that have years of experience in pdp8 code. Feel free to ask questions, someone here will likely be able to answer them.


Cheers,

-- steve
Reply all
Reply to author
Forward
0 new messages