RALGOL - A PDP8 ALGOL 60

Boris Gimbarzevsky boris at summitclinic.com
Fri Jul 12 02:26:31 CDT 2019


Thanks for that link Charles and also thanks to Mark Kahrs for 
obituary on Roger Abbott.  I started out on PDP-8 in 1968 which was 
the first time I had hands on access to a computer at 
UofCalgary.  Would have loved to have had access to one when I did my 
MSc in neurophysiology in 1975 but obviously Oxford in 1972 had much 
better funding than Uof0 (University of Ottawa).  Roger Abbott had a 
PDP-8 to acquire data from his insect muscle preparations and noticed 
that 1972 Journal of Physiology papers no longer behind a paywall 
when was looking what type of research he was doing.  Uof0 was still 
using rotating smoked drum cylinders to record muscle twitches in 
some labs and the lab I was in had a high speed oscilloscope camera 
which one could use to shoot long strips of neuron spike activigy 
from a mouse cerebellar culture.  A technician was available to 
measure the time intervals between spikes and that's how I was 
supposed to do my project to look for connections between 
simultaneously recorded cells in the cultures.  My request for a 
computer was denied and I was given $200 to build an electronic 
device to time the spikes and send them to the Uof0 360 mainframe 
where my FORTRAN code generated cross-correlograms and other neat 
graphs on a line printer
   http://drgimbarzevsky.com/Computers/UofOTerminal/TerminalCircuitBoards1.html

Despite comments that I seemed to be working on a graduate degree in 
electrical engineering rather than neurophysiology, what I learned 
doing large scale TTL state-machine devices was invaluable when I 
moved to Vancouver and worked at UBC Pharmacology where lab computers 
were the norm and did my last bit of PDP-8 programming on a PDP-12 to 
speed up gathering data from a mouse diaphragm preparation which was 
easily done by rewriting the whole thing in PDP-8 and Link-8 
assembler.  The researcher whose machine it was used FOCAL for 
everything which made for horrendously slow data analysis.  That 
done, I finally got to play on what I still view as one of the best 
computers ever made, the PDP-11.

Fortunately at UBC there were a lot of researchers who mixed writing 
code and building their own hardware with doing their 
electrophysiologic experiments.  That was a neat time when dicussions 
we'd have were whether a particular bit of data acquisition was to be 
done with optimized assembler code vs building our own dedicated 
board which would plug into Unibus on 11/34.  I liked the latter 
approach but it was easier to debug PDP-11 ASM than  chasing down 
bugs on a custom interface board having to spend time writing custom 
diagnostics to see if things were really working as designed.

Have an old Algol book around from early 1970's and remember reading 
it then but liked FORTRAN more but most of my code was FORTRAN 
calling PDP-11 ASM functions on a PDP-11.  All my PDP-8 programs from 
early 1970's are on paper tape and have never been transferred to 
other media.  Algol 60 looks interesting enough to use given compact 
code and neat architecture that will try running it on PDP-8 
simulator someday.  Problem with simulators is that almost all of 
PDP-8 and PDP-11 code I wrote was to interface to A/D's and D/A's or 
parallel ports to run experiments.  Once got a C64, wrote graphing 
code in C64 Basic and photographed my TV which was way faster than 
writing code in PDP-11 ASM to display graphs and data on oscilloscope 
screen from D/A's.  Got into VB once PC's were cheaper than Macs and 
notice there's a lot of VB5 and VB6 code on Roger Abbott's final 
code.  VB6 is something I still use and once I get my VB6 code 
running under Wine, windoze will be a distant memory.

Was neat to see where other physiologists had been in early 1970's 
where it seemed I spend more time building the tools I needed to get 
the data I wanted than to do the experiments.

Boris Gimbarzevsky

>I played around with this algol 60 compiler for the PDP8 and succeeded in
>getting it to run. I have not found any other notes, so I thought that I
>would give a leg up to the next one that wants to work on it.
>
>-chuck
>
>--------
>
>This ALGOL 60 implementation for the PDP8 was written by Roger H. Abbott
>while he was at Oxford.
>
>The bits are here:
>http://www.bitsavers.org/bits/DEC/pdp8/papertapeImages/russ.ucs.indiana.edu/Langs/Algol/
>
>A copy of the manual here:
>https://archive.org/details/hack42_ROG_ALGOL_Compiler
>
>A paper here:
>http://pdp8.de/download/RogAlgol.pdf
>
>Mr. Abbotts business is here:
>http://www.angelfire.com/biz/rhaminisys/index.html
>
>The website or the host is a bit sketchy. The business is probably defunct.
>I found a link that said Mr. Abbott died in the early 2000.
>
>The system is two parts: the compiler and the runtime.
>
>This is all assuming the use of OS/8.
>
>To create the SV file for the compiler:
>.R ABSLDR
>*INTRUN.BN,ALGCOM.BN,COMOS8.BN$
>.SAVE SYS:ALGCOM.SV
>.R ALGCOM.SV
>
>To create the SV file for the runtime system/loader:
>.R ABSLDR
>*FPP.BN,ALGRUN.BN,RUNOS8.BN
>.SAVE SYS:RALGOL.SV
>.R RALGOL.SV
>
>There are other options for the FPP.BN for other hardware possibilities.
>FPEAE8.BN for the classic pdp8 EAE and FPPEAE.BN for the PDP8/e EAE. This
>needs some testings.
>
>Running an ALGOL program:
>
>.TYPE FLOAT.AL
>'BEGIN'
>   'REAL' A,B;
>   TEXT(1,"HELLO WORLD!");
>   SKIP(1);
>   A := 3.141592;
>   B := COS(A);
>   TEXT(1,"A = ");
>   RWRITE(1,A);
>   SKIP(1);
>   TEXT(1,"B = COS(A) = ");
>   RWRITE(1,B);
>'END'
>$$$$$
>
>.R ALGCOM
>
>ROGALGOL MK40
>OUT<IN*FLOAT<FLOAT
>
>SIZE 39
>
>.R RALGOL
>
>ROGALGOLOADER
>INPUT FILENAME ?*FLOAT.AC
>
>ENDS 0251
>^^PHELLO WORLD!
>A = +0.314159E+001
>B = COS(A) = -0.999999E+000
>^^PHELLO WORLD!
>A = +0.314159E+001
>B = COS(A) = -0.999999E+000
>^^C
>.
>
>The source AL file must end with a few $$$$ or an odd fault code will
>result. The fault codes are embedded in the source files as addresses.
>
>The compiler output file has the AC suffix.
>
>After the loader runs it will pause with a ^ prompt and the user will have
>to enter a ^P to proceed or ^C to quit.
>
>The manual is the best description for the user.




More information about the cctalk mailing list