Loading Basic on PiDP-8/I

117 views
Skip to first unread message

rgsim...@gmail.com

unread,
Nov 17, 2022, 5:42:28 PM11/17/22
to PiDP-8
Looking for some help on getting 8K Basic running on my PiDP-8/I.  Back in the old days, circa 1972, I ran Basic on our school's PDP-8/E all the time.  Any help appreciated.  Thanks.

Michael J. Kupec

unread,
Nov 17, 2022, 6:51:11 PM11/17/22
to rgsim...@gmail.com, PiDP-8
Was it Basic, or Focal8? 
My HS had 3 PDP8/e’s and a PDP8/I that had 8k ram (vs 4K in the e’s), a high speed paper tape reader, and two ASR-33’s. The 8e’s ran Focal8 most of the time and the 8i ran PAL3 for those who wanted to learn assembly.  The HS paper tape reader was a blessing to have for running PAL3 as it made loading that assembler a breeze Vs the clunky ASR reader. 

Sent from my iPhone

On Nov 17, 2022, at 5:42 PM, rgsim...@gmail.com <rgsim...@gmail.com> wrote:

Looking for some help on getting 8K Basic running on my PiDP-8/I.  Back in the old days, circa 1972, I ran Basic on our school's PDP-8/E all the time.  Any help appreciated.  Thanks.

--
You received this message because you are subscribed to the Google Groups "PiDP-8" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-8+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pidp-8/923bb48a-92a6-4618-839d-3603bdb3ecbbn%40googlegroups.com.

rgsim...@gmail.com

unread,
Nov 17, 2022, 7:17:05 PM11/17/22
to PiDP-8
Michael,
It was Basic, no one ran Focal, there was no need.  We had just a single 8/E with 8K, a high speed paper tape reader, and 3 ASR-33s.  My computer teacher was smart. Before we were taught high level languages, he taught us machine code and then introduced us to assembler.   He wanted us to understand how the computer worked with code and data.  For instance, it wasn't enough to have the computer accept characters from the ASR-33 console, you had to echo those characters back to the ASR-33 so you could see what you had typed.  Fun stuff.

Roy

Rick Murphy

unread,
Nov 17, 2022, 10:14:54 PM11/17/22
to rgsim...@gmail.com, PiDP-8
Try looking for EDUSystem-10, which (if I'm remembering correctly) is 8K Basic, single user. 
    -Rick



--
Rick Murphy, D. Sc., CISSP-ISSAP, K1MU/4, Annandale VA USA

John O'Donnell

unread,
Nov 18, 2022, 3:15:24 AM11/18/22
to Rick Murphy, k1...@gmail.com, pid...@googlegroups.com

It warms my heart to hear that 50 years later someone is looking for Edu-10. I spent the summer of ’72 and some of ’73 working on it, adding immediate-evaluation mode and other fun things.

I showed up for a summer job at the mill and was given the assembly code and a long list of features to add. Mark Bramhall who had moved on to PDP/11 work had originally written it. Getting to use TECO and a PDP/10 for development was a big step forward from my high school’s 8/e with ASR33 paper tape…

All the code was in field 0, user programs were in field 1. Imagine my delight when I found that there were 4 free memory locations left in Field 0. Yup, 4, count’em 4, thanks Mark.

Hmm, if we move this subroutine to Field 1 we can make some space. Hmm, if I move the location of this constant down in page 0, I can use this other instruction that references it as the constant I need for this other piece of the code... I’m particularly proud and horrified at the latter…

Next semester in the compiler course discussion of interpreters the professor said, “of course nobody would ever just code an interpreter that re-read the text during execution.” I raised my hand…

John O'Donnell

unread,
Nov 18, 2022, 3:17:31 AM11/18/22
to Rick Murphy, k1...@gmail.com, pid...@googlegroups.com

Oh, I forgot to mention, part 2…. “Of course nobody would ever code an interpreter that re-read the text from the beginning during execution of a FOR loop to find the beginning of a loop…” Anybody notice that if you moved your FOR loops to the beginning of the program that they ran faster?

Mike Katz

unread,
Nov 18, 2022, 12:00:03 PM11/18/22
to Rick Murphy, rgsim...@gmail.com, PiDP-8
My first computer was a PDP-8/L with 4K of Core and a single Teletype ASR-33 running EduSystem 5 (1972)
My high school had a PDP-8/E, 12K Core, TD8-E, TU56 and EduSystem 25 from OS/8

The different versions of DEC's EduSystems:

EduSystem 5 -     4K RAM & 1 Teletype ASR-33
EduSystem 10 -   4K RAM w/ROM Boot & 1 Teletype ASR-33
EduSystem 15 -   4K RAM, 256 Word ROM (TD8E Boot), TD8-E DECtape controller and 1 or more DECtape drives & 1 Teletype ASR-33
EduSystem 20 -   8K RAM, Power Fail/Restart, Hardware Bootstrap & 1 to 4 Teletype ASR-33 (add 4K and support for 4 more teletypes)
EduSystem 25 - 12K RAM, Power Fail/Restart, Hardware Bootstrap, DECtape & 1 to 5 Teletype ASR-33 (add 4K and support for 3 more teletypes)
EduSystem 30 -   4K RAM, Power Fail/Restart, Hardware Bootstrap, 32K DECdisk (DF32), Optical Mark Card reader (or punch card reader or high speed reader/punch) & Teletype ASR-33
EduSystem 40 -   8K RAM (12K for 5 or more Teletypes), Hardware Bootstrap, 32K DECdisk or TD8-E DECtape (TD8-E), Card Reader & 1 to 8 Teletype ASR-33
EduSystem 50 - 24K RAM,  High Speed Paper Tape Reader, 262K High Speed Disk (RF8-E), Dual DECtape w/controller & 1 to 16 Teletype ASR-33
                             16K RAM without DECtape for 1 to 8 Teletype ASR-33

Steve Tockey

unread,
Nov 19, 2022, 2:27:07 PM11/19/22
to PiDP-8

You can at least find links to a PiDP-8/i machine-readable .bn file, the .pa source code file, a .pdf of the original DEC programmer's manual, and some other stuff here:


I've tried several times to get it to run and have been unsuccessful. For me it at least prints "READY." but goes crazy on my first key press.


Good luck,

-- steve

Steve Tockey

unread,
Nov 19, 2022, 2:30:48 PM11/19/22
to PiDP-8

Rick,
8K Basic and EDUSystem 10 are completely different things. EDU 10 is 4k only, and 8K is (obviously) 8K. The closest relative to 8K Basic is the LAB-8/e Basic that allowed some amount of lab data acquisition and control code to be written in BASIC instead of, say, PAL-8.


-- steve

Steve Tockey

unread,
Nov 19, 2022, 2:46:14 PM11/19/22
to PiDP-8

For what it's worth, I re-created EDUSystem 20 (version C) and got it running on my PiDP-8/i. I did a bit-wise compare of my re-created .BN image with an original 1970's real paper tape and except for a different self-starting binary loader on the front end, it is an exact match. As part of that whole process I also re-created a pretty-close-to-exact clone of the .PA source code. So if anyone wants to run Edu20C on a PiDP-8/i, it works quite well.

Edu20C can use a full 32K and supports up to 8 concurrent users. It also has some extended string manipulation commands (LINPUT, CAT, LEN, etc.) from Edu25 that aren't documented in the EDUSystem Handbook. The only real down side to Edu20C on a PiDP-8/i is that it is paper-tape only which is a bit inconvenient because you need to drop into SIMH to attach paper tapes for reading and writing. On the other hand, it runs circles around 110 baud ASR-33's (smile).

My first programming experience was in 1975 on a 24K 8/e with 4 ASR-33's (two at neighboring high schools) and a 300 CPS optical high speed paper tape reader.

Cheers,

-- steve

Steve Tockey

unread,
Nov 19, 2022, 3:19:13 PM11/19/22
to PiDP-8

Roy,
Turns out it is an already-solved problem with SIMH's simulated line printer device, see the earlier thread at:


Two workable solutions are either:

1) Deposit the value 7000 into address 06644 before starting 8K BASIC

2) In SIMH, give the command 'set lpt disabled' before starting 8K BASIC

Either of these have the effect of making the LPT go away, it's a stuck ready flag that's killing 8K BASIC. With either of those two done, 8K BASIC does run on a PiDP-8/i although without LPT support.


Happy programming,

-- steve

Steve Tockey

unread,
Nov 19, 2022, 3:29:39 PM11/19/22
to PiDP-8

And a third option appears to also work:

3) In SIMH, give the command 'attach lpt <some rPi path + filename>' before starting 8K BASIC. This way, you should be able to actually use the simulated line printer.

I haven't fully tested everything, but it would make sense that after line-printing something from 8K BASIC that you would need to drop back into SIMH and 'detach lpt' to close the rPi simulated output file. But I would assume that you would now need to 'attach lpt <some  other rPi path + filename>' or 8K BASIC will probably crash just like before when you go back to it.

Cheers,

-- steve

Steve Tockey

unread,
Nov 19, 2022, 3:48:05 PM11/19/22
to PiDP-8

Roy,
One more thing... You wrote:

"It was Basic, no one ran Focal, there was no need.  We had just a single 8/E with 8K, a high speed paper tape reader, and 3 ASR-33s."

All of my earlier messages about the officially DEC-named "8K BASIC" (as referenced in the alt.sys.pdp8.narkive site) is moot as that 8K BASIC is single-user only. So if you were really running multi-user BASIC on an 8K -8/e then it was almost certainly EDUSystem 20. All other implementations of BASIC on a PDP-8 were either single-user only and/or required magnetic media like DECTapes or RK05s. The good news could be that, as noted earlier, I do have Edu20C running on PiDP-8/i's so if that's really what you were using then it is covered.


-- steve


Peter Long

unread,
Nov 20, 2022, 1:05:35 AM11/20/22
to Steve Tockey, PiDP-8
Steve

Do you have a convenient link to your EDUSystem 20 (version C)  that you would be willing share

Thanks

Peter  
 
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-8+unsubscrib...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pidp-8/1a59af94-fdf8-4b5b-a942-baa3f0fb9543n%40googlegroups.com.

Steve Tockey

unread,
Nov 20, 2022, 3:35:32 PM11/20/22
to PiDP-8

Peter,
Yes, happy to share. Start here in DropBox:


The folder EduSystem 20 version C has everything needed to run Edu20C on the PiDP-8/I. The README.txt file explains everything about the source code, the listing, the simulated paper tape image file, and a PiDP-8/I boot script if you want to be able to boot into Edu20C as a built-in boot option. For example, I never use the built-in ETOS boot option (Inst Field = 6) so I replaced 6.script with my own. Booting my PiDP-8/I's with Inst Field = 6 brings up Edu20C instead of ETOS.

The folder Self Starting Binary Loader holds all the source code and a README.txt about the self-starting BIN loader that's grafted on to the front of the EDU20C paper tape image. It's not the original EDU20C version that came from DEC--which is actually pretty clunky--this is a much cleaner one I derived from the DEC standard BIN Loader. They are functionally equivalent, at least.

BIN to RIM Formatter is the source code and listing for the utility I wrote to translate a simulated BIN loader format paper tape into RIM loader format. I'm including it for completeness as this would be required if you ever wanted to re-build Edu20C completely from the ground up as I was trying to do.

Binary Compare is another utility I wrote to compare what's on a simulated BIN format paper tape  to what's in core memory. I own a real pdp8/e and have the original 1970's punched paper tape for Edu20C that we ran at our high school. I got an optical paper tape reader I could connect to a RPi 3B+ and read in that original tape so I could do a bit-wise compare to my reconstruction. I wanted to make sure that they matched exactly and that I didn't introduce any defects along the way--there aren't any now. There can be other possible uses of BINCMP so again, I'm tossing it out there for completeness.

LF to CR is another utility that I use frequently. On the one hand, I'm spoiled and don't like using any of the OS/8 editors like EDIT and TECO for significant editing any more. I definitely prefer a visual editor like Text Edit on the RPi. On the other hand, I don't like using any of the other utilities for getting *nix files into OS/8 (e.g., OS8View). This is my solution to that problem. I use SIMH to attach the edited file I want read in to PTR:. Then in OS/8 it's simply a matter of running LF2CR to read in that file and format it into OS/8. It's as if the edited file is coming in on paper tape. Note that the basic problem is that OS/8 uses Carriage Return (<CR>) as the end-of-line character while *nix uses Line Feed (<LF>). This program simply pre-pends a <CR> to every <LF> in the incoming character stream and writes it out as an OS/8 file. There's a slight booting up problem in getting this file into your OS/8 system the very first time if you want to use it without using one of the other *nix to OS/8 utilities. That problem can be easily solved by a couple of lines of TECO, let me know if you want.


Finally, there's another DropBox folder, FYI:


This one has a bunch of simulated DECTape images for several of the programming languages available on the PDP-8, like
    PAL-8
    BASIC
    FORTRAN II
    FORTRAN IV
    COBOL
    ALGOL
    PASCAL

Somebody a while back wanted them and it was a nice distraction for me in the middle of lockdown. Start with the README.txt file, it explains everything. On the other hand, if you want one of these compilers added to your RK05 system, it could be a simple matter of mounting the right DECTape image(s) and copying a few files. Each language tape pair includes at least one example source program that was successfully compiled and executed so I know each one of them actually works. A PDF of DEC's OS/8 Programming Languages Reference Manual is included, covering PAL-8, BASIC, FORTRAN-II, and FORTRAN IV. Manuals for COBOL and ALGOL are also included. I could never find a manual for this version of OS/8 PASCAL but it's mostly straight forward from some of the examples and I'm willing to answer any questions about it as PASCAL is my go-to language on PDPs (-8, -11, and -10).


Cheers,

-- steve




On Saturday, November 19, 2022 at 10:05:35 PM UTC-8 pl...@insys.com.au wrote:
Steve

Do you have a convenient link to your EDUSystem 20 (version C)  that you would be willing share

Thanks

Peter  

--
You received this message because you are subscribed to the Google Groups "PiDP-8" group.

Peter Long

unread,
Nov 20, 2022, 4:45:53 PM11/20/22
to Steve Tockey, PiDP-8
Steve

Brilliant - much appreciated

Peter 
 
--- Original message ---
Subject: Re: [pidp8] Loading Basic on PiDP-8/I
From: Steve Tockey <steve...@gmail.com>
To: PiDP-8 <pid...@googlegroups.com>
Reply all
Reply to author
Forward
0 new messages