Recently I got a
request from Dr. Julian Hill an ex student of Dr John Griffiths at the
University of Leeds¹ for the listing of the Apple II version of PPP-MO
(Pariser-Parr-Pople Molecular Orbital)
a program I did in 1982²
The request was in this form: (the more pregnant
pass of our conversation are reported)
Do you still have the program? I am now
a school teacher and I teach computing and chemistry. I would like a
copy of your program to show my students how powerful Pascal is as a
language. We are still using Pascal to teach programming.
I'm happy to ear that there are still some one in the world
teaching programming, non only making mess with the current fashion
anarchical C! Microsoft docet!
I agree with you. It is important to teach good programming.
Pascal is still, I think, the best language for this.
your request gave me an idea: the PPP program can be useful for
historical and teaching purpose. I would publish it on my site...
...The main difference between the various versions is on the
graphic output management as each compiler had different primitives.
Using the data for Disperse Red 1,
I was able to confirm that the new program gave the
same results I calculated using the Algol program 20
years ago. This predicts an absorption maximum of 451nm,
which is within 2nm of the measured experimental value
of 453nm when using cyclohexane as the solvent.
It is fantastic that you have
gone to so much effort to recover the code and to make
it available for others to use on your web site. I think
the only thing left to do is to rewrite the manual.
As my very small contribution to this project, I have
updated the manual and have provide this as both a Microsoft
Word and a PDF document. I have checked that the
input file in the document matches the output results
and have supplied these as attachments.
Note: I can't judge the dimension of the Julian Hill
contribute. What I can tell for sure is that had been
a determinant contribute, as without it this page were
never been written and the program
listing would have been sleeping in its disk somewhere
in my office :-).
I believe it is useful to know what could be done with a 64k and 1
Mhz machine in the days where a 2 Giga 2.4 Mhz machine can be
considered old and slow if it isn't a quad processor!
The original program
was segmented due the memory limitations and optimized
very, very deeply to reach the goal of a 12 hours run
for a 20 atoms molecule. The calculations for the same
molecule in a today machine terminate before you can
take up your sight after pressing the return key (not
all people digitize without looking at the keyboard!!)
At the moment I haven't the original Apple II copy of the program,
as I have the disk but I have not the Apple II. The
listing were copied from paper and it is not tested!
The copy for Borland
Turbo Pascal 3 was what I sent to Julian and at
the beginning was wrong, as few lines of code were lost
during the several transfers (at that time the serial
port transfer were used, the USB key was invented some
time later!). With the help of Julian I could test it,
as he sent me the manual,
the input data
and a test run,
correct it and be aware of the correctness of the results.
So now I can publish it
The manuals available are the original
one of the Algol program, the readme
file of the Apple II translation and the new
revision of the original documentation, modified
for the new version of the program made by Julian. It
contains a new test run.
At the moment I have not the original version of the
plot program. I remember it was implemented using Turtle
graphic (available for UCSD pascal on Apple II). I include
of it for Turtle graphic of Turbo Pascal 3. I did
a new version implemented using the Windows GDI. I didn't
used the Windows GUI to keep the dimensions of the program
reasonable. The graphic is useful only to test the correctness
of input and I don't believe it could not be correct
it would use the biggest part of the program size! I
did an openGL version of the program (not fully correct)
and I may be will do a Windows GUI version, for comparative
Another program I decided to publish is the lisp implementation
of A* algorithm I wrote to search the minimum cost path
between two assigned configuration of a molecule. The
program was written for Univac 1100 Lisp
¹Department of Colour Chemistry, The University, Leeds LS2 9JT, UK
ICI Colours and Fine Chemicals, Hexagon House, Blackley, Manchester
M9 3DA, UK
²Castellani Giorgio F., Jan C.J. Bart
Color prediction of organic dye molecules on a microcomputer - A readily
available form of the PPP-MO method for teaching and research
Dyes Pigm (84) P. 165-70; Vol. 5; No 3;
³Griffiths, J. Hill, B Fishwich
The Application of PPP-MO Theory to the halochromism
of 4-aminoazobenzene dyes Dyes
Pigm. Vol. 15, No. 4, P. 307-317