It has been quite a while since I posted an entry on the Datatron Blog.
I have been working at recovering the ALGOL 58 compiler for way too long and thought I should, perhaps, post an interim working copy of the beast. Paul posted a brief description of Don Knuth's development of this compiler in a post back in 2015 on this blog. (I wasn't kidding when I said "way too long", was I?)
Earlier this year, I had the chance to have breakfast with my old friend, Richard Schlotfeldt, fellow alum of the University of Portland and a very experienced Burroughs 205 programmer. Richard was handing off to me an extremely rare piece of Burroughs 205 documentation, Basic Principles of the Datatron Computing system, by John Scott Campbell, published in 1957 and also known as TP4000. Just try finding one of these - I have been looking for years.
Richard said to me, "Now as I understand it, you guys have a copy of the ALGOL compiler, but can't get any data into the programs or back out. Is that right?"
Harsh but fair!
I decided that I had better quit seeking perfection in my recovery project and publish something after seven years of part-time bit-fiddling.
So, accompanying this blog post is a complete working copy of the ALGOL compiler for the Burroughs 205 and an attached incomplete but adequate (for most purposes) copy of the subroutines required for most calculations and any associated input and output.
Here are the details:
The compiler is complete and authentic as distributed by Burroughs in the early 1960s. The sample program in the manual employing Simpson's Rule compiles and executes with the correct answer.
The code for EXP and LOG are authentic originals
The code for SQRT, SIN and COS are duplicates of Knuth's code found at Clevite Corporation.
The code for WRITE was painstakingly reconstructed from this preliminary Don Knuth code found attached to the relics utilized by Paul to resurrect EASY and MEASY.
The code for READ is strictly my own work and at present will only read integer values from cards. This is not as a great a limitation as it might appear since the ten-digit integer 5131415927 is identical to the result that would be loaded from 3.1415927 if it were successfully processed by the original READ.
And here is what is still incomplete and on my current "to do" list in priority order. I hope it won't take much more time to complete these items, Just don't look at my track record.
ARCTAN is not implemented
WRITE does not handle the Cardatron Punch as an output option.
PTREAD and PTWRITE are not implemented
I will be publishing a number of posts about the recovery process and some other interesting tidbits of Datatron lore in the near future while working on the above listed items.
The compiler and subroutines exist as a .CSV file which can be loaded as a Magnetic tape on Unit 5 of Paul Kimpel's emulator. It can be found here.
A copy of the Simpson Rule integration procedure exists as a text file to be found here.
A program to list powers of 2 exists as a text file to be found here.
Links to these three programs can also be found at the upper right of this blog.
No comments:
Post a Comment