It's funny how the instruction codes from your first computer stick in your head, probably taking up valuable space that could be used for more productive things. I didn't need an instruction code sheet to write up a square root routine and print out the results.
I also have a long history with the peculiar dialect of Algol 58 that was available on the B205. The Algol 58 compiler was just waiting to be tried. It uses the card reader and line printer of the day, both IBM units. IBM must have loved it when ElectroData, CRC, Logistics Research or other small computer vendors sold a new computer in the mid-1950s. It meant another IBM 089, 407 and 523 going out on rent for them!
I had a transcribed magnetic tape listing of the Algol compiler sitting on my laptop computer that I knew worked well enough to generate code for at least a few simple programs (see post below.)
Could I coax it to run in Paul's emulator before he finished implementing the Cardatron read and write commands? And what about the magnetic tape units that it needed? Hmmmm....
There is a a paper tape option in the compiler but I had never tried to make it run. But I had worked with it enough to know there were only a very few references to tape and cards - perhaps if I put in a couple of patches? I also knew where the various table started in the compiler so I could safely put my patches there.
The compiler only uses two Cardatron Write commands so patching that to use the Flexowriter went quickly. The one Cardatron Read command could be replaced by a PaperTape Read and we'd be good to go. I was soon ready to test!
Of course, I had chosen years ago to put my simulated mag-tape into an Excel format with block numbers, a separate column for the sign digit and a few other things not compatible with Paul's standard paper tape format. Excel has wonderful sort and arithmetic capabilities; a new paper-tape version was ready in a jiffy.
I wasn't sure my system would ever come back and read a second card after the first, so my first program was squeezed onto a single line:
X=40; Y=50; X1=X + Y + 3.14; STOP; FINISH;I anticipated great success, pressed Start and waited. Of course, it didn't work. I found a couple of minor bugs in the emulator which Paul promptly fixed and the next day I had success!
Any old-timers with Algol experience will likely recognize the program code beginning in memory location 71.
I now have the compiler working with multiple lines of input. It is still a bit Kludgy since the source code has to be input in "Cardatron format," which is more than a bit peculiar to the uninitiated. And the codes for special characters are also oddball. I developed a webpage with a workaround for that.
No comments:
Post a Comment