Some additional JOSS info

I wrote to RAND about some key materials in the JOSS document set that cannot be found online. They sent me some additional items. Although the “JOSS User’s Reference Manual” could not be found, he did copy Bryan and Smith’s “JOSS Language”, which is less of a reference and more point-form than I expected, but still filled with useful info.

JOSS is a mess. I had no idea how much so until I started reading the Language guide and found all of these one-off additions that make no sense whatsoever. For instance:

Do part 2.

Will jump to part 2 of the code, run it, and return. Ok, basically GOSUB. Whereas the otherwise similar but found in no other reference:

(Do part 2.)

Will instead run part 2 and then return to the command line. What?!

And then consider things that are seemingly simple until you see the examples in this document. For instance, to delete a loaded program and its data, like BASIC’s NEW, you would do:

Delete all.

But then there’s the variations. Like this example from the manual:

Delete x, part 3, all forms.

Yes, this deletes the variable x, all the steps in part 3, and the forms. Why in gods name anyone would want to do that in a single statement is beyond my pay grade. Or how about this one:

Type x+5, all steps.

WHY?! Or how about this one:

Let A be sparse.

That’s right, it says that A is some sort of sparse array. Apparently, which I say because I have not seen it used or even mentioned in any other documentation, this simply treats any previously un-Set array entry as a zero. Note that JOSS tracks every variable assignment using Set, and responds with the helpful “V = ???” if you haven’t Set/Demanded that one yet. So if you were to Set A(5)=1 and then Type A it would seemingly print only (5), so to get it to print an array of 0,0,0,0,5, you needed to use this statement.

I was going to try to have a beta of my interpreter out shortly, but I need to go for a long walk before looking at this again!

4 Likes

That does sound a bit ad-hoc.

Mind you, a sparse array could be quite appealing - it would allow the implementation to use less storage, probably at some cost to performance. One could imagine an array indexed by years, which has nearly 2000 unused elements at the beginning. Or an array of primes, which is mostly zeros in a more sporadic way.

Did you receive anything that is not already here?

Yes, I got PR-5377, which is the JOSS Language manual. It is the closest thing to a formal description I’ve seen to date.

The PDF is locked, and I’m not sure what the re-distribution would be.

1 Like

Forgive me if you’ve already been down this path, but I have done a preliminary pass of Shaw’s archive at The Smithsonian. There is a huge amount of JOSS stuff there, although I was after IPL and LT, not JOSS. I have a “mole” in DC who can do some occasional digging if you like. Better would be if you are in the DC vicinity. (When I’m not typing on a microscope slide I’ll post the finder, if you like.)

Is that JOSS-I specifically, or JOSS-II too? I have been helping out with the PDP-6 version, so I’m interested in getting more material.

1 Like

Interesting… it doesn’t actually say one way or the other.

What it does say is that the earlier versions were considered to be “basic JOSS” and later additions resulted in “extended JOSS”, and that this manual covers both without distinction.

I assume this implies it is the PDP-6 version, and thus JOSS-II.

It is not a long document, only about 19 half-pages (it’s printed sideways) and only 8 of those are actually a language description.

1 Like

For what it’s worth, Don Kunker at Burroughs wrote an implementation of Cliff Shaw’s JOSS for the B5500 in the mid-1960s. Originally called BOSS, it was later renamed INTERP. The source (in B5500 Extended ALGOL) has survived and can be found as SYMBOL/INTERP on the Mark XIII Release Zip Archive [corrected].

There are two documents, a preliminary write-up by Kunker from 1965, and a more formal manual from 1966. Both are available from the Burroughs Corporation archive at the Charles Babbage Institute in Minneapolis:

  • “BOSS, Burroughs Open Shop System,” CBI-90-74 Box 67 Folder 15 (16 pages)
  • “INTERP a Conversational Program for the Burroughs B 5500 Time Sharing System,” CBI-90-74 Box 67, folder 5 (25 pages).

I have copies of these, but can’t post them publicly without permission from CBI. If you’re interested, please contact me.

I have a web-based emulator for the B5500 and have tried running this, but the emulator’s datacom implementation is weak and the program doesn’t work properly. I’m sure it’s an emulator problem, but have never gotten back to working on it.

2 Likes