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