Saturday, May 7, 2016

Help from one of the original IRIS Designers, Dan Paymar

This page is a part of the "Understanding IRIS" collection:

We had the privilege of meeting Dan Paymar in person last October, and we had a very nice discussion about his history and memories with Point 4, and computers of his interest prior to this.  Dan wrote the entire BASIC interpreter for IRIS, and wrote most of the time-sharing systems for IRIS.

We just contacted Dan to allow him the opportunity to see our progress here, and give us any comments on the documentation we've compiled on these pages so far.  Here was his response.  On this page, Dan's words will be in italics:


One of the things [David] mentions is block zero. It was indeed the boot up block, but it was called BZUP (Block Zero Utility Program). It was a simple debugging program that could be used in an emergency if the system wouldn't boot. I think the commands were similar to one on the PDP-8.

If you're using one of the later versions of IRIS then BASIC won't run on a non-Point 4 computer because it depends on the floating point decimal arithmetic routines that were micro coded into the computer.



After reading this, I looked at the LU0 file (the version with the highest-order bit dropped, so we can read the text strings), and found 9 instances of the string "BZUP".  But I am not sure whether they were just references or comments, or the actual debugging program that Dan refers to.

As far as "one of the later versions of IRIS", we are working with R7.5, so I don't know if this qualifies as one of the "later versions" or not.  We shall see.  We may have to use reNOVAte after all, since it must have been designed (by Bruce Ray) to handle those "floating point decimal arithmetic routines that were micro coded into the computer".  As of right now, I don't know where SimH does or not.

The following day, without us asking or saying anything further to him, Dan followed up with this:


IRIS 7.5 may have been early enough to have the software decimal routines. There were many page zero pointers, one of which was use for the FP routines. The word "decimal" was actually a JSR indirect through one of those pointers. If you can pinpoint that pointer in page zero you can see if it points to software subroutines or invokes the computer's built-in FP decimal routines.

All such pointers were in page zero words 1 - 177 octal. RAM space 200 -577 was actually the first block of any application.

You might be able to tell be the date of REX. Even the very first Point 4 machine had the FP routines built in, and that's when IRIS was changed to use them.

I'm not sure, but even later versions of IRIS may have had the FP software so it could still run on DG machines.

BTW, are you aware of the Pico-N? That was a little device that plugged onto the wire-wrap pins of the frame. If it was absent, a disguised piece of code would zero out all of memory.



Incidentally, we find Dan's name listed as author of one of the programs on our system's LU0:





I don't remember anything about BUILDXF, and I don't know exactly when the Pico-N was first used, but it was before the first Point 4 computer.

I moved to Durango, CO, in 1980 and wasn't involved in system programming after that. IRIS 9 was in development, so version 8 was the last released while I was there. I was working on ASGOL (an assembler/ALGOL hybrid) but never got it running under IRIS.

Let me know if you want details on what parts of the system I coded myself.



I find the text strings "JSR" and "Decimal" many times throughout our LU0 restoration.

As I recall, DECIMAL translated to JSR @.DEC where .DEC was a page zero pointer to the actual decimal FP routines. When running on a Point 4 computer, the code at that point would invoke the computer's built-in FP routines.

Gee, it's so long since I've used any assembler language, you bring back memories. Today I program in Xojo on a Mac, and at the moment we're on vacation so i'm stuck with the small screen of a 13" laptop. Somehow that doesn't seem so restrictive when I recall that 48 years ago I coded the BASIC interpreter in 8k bytes of RAM, using only a Model 33 Teletype for I/O.


And we find JSR @.DEC exactly once on our LU0:

JSR @.DEC has also made it into David's extract of PZ.


Dan, up until now, I was thinking that IRIS was designed to run on the Point 4, but the more I re-read all you and others have said about this, was IRIS written to originally run on the DG Nova, before the Point 4 processor hardware was created?


Every time you write, my memory digs up more details.

Actually it was the other way around. The Point 4 computer was created to run IRIS.

Working in my home office, I designed and coded the BASIC interpreter in 1968 for a 4k DG Nova. Most of the coding was finished before I even had a computer to work on. Another consultant wrote the FP binary arithmetic and conversion routines, but I had it working with simple 16-bit integer arithmetic before he delivered the FP routines.

Then the boss, Paul M Davies, who apparently still lives at 2415 Windward in Newport Beach, found a bright high school senior, Ira Baxter, who worked with me to expand it into a 4-user timesharing system. We finally got another memory board, expanding the machine to 8k words (16k bytes). There was no hard drive, so everything still had to be saved on paper tape.

Later we finally got a 256k drum memory and another HS student, and put a 16-user system in a new junior college in El Toro. The OS was named TEX (Timesharing Executive). 

It was several years later that the system was renamed IRIS, and TEX changed to REX. It was a real time system because everything was interrupt driven and could respond to external events.

So everything was on DG Novas and later a clone (Symentec?) for about ten years before the first Point 4 computer existed. The Point 4 had dynamic RAM memory; the Nova and the other machine had magnetic core memory with 2.6 microsecond cycle.

Somewhere along the line the application programmers complained about the roundoff errors that occur when converting between decimal and binary, and i responded by writing the FP decimal routines and extending the precision to 14 decimal digits, and the interpreter was renamed Business Basic.


You want nostalgia, here's a pic of me about the time I started on the BASIC interpreter.


A couple quick comments. Ira [Baxter] and I worked together to turn my BASIC interpreter into a 4-user timesharing system. IRIS came much later, long after Ira left EDS. Also, the first Nova had a 1.4 uSec cycle.


This page is a part of the "Understanding IRIS" collection.  

No comments:

Post a Comment