Several years ago Cameron Hayne was a member of our club. Recently, I wrote to ask him what he was up to these days. Here is his reply. Cameron Hayne is the author of the well-known program, TIMACHINE, which many of us are familiar with. I thought there was sufficient interest in the letter to carry it in our newsletter.
Cameron also sent me several pages of annotated assembly code of TIMACHINE pertaining to the problem mentioned by Bob Mitchell in his article. Maybe a club member can take a crack at modifying it.
April 4/90
Dear George,
I very much enjoyed receiving and reading your letter. Sorry to be so long in responding – I just never seem to have any spare time, and I was hoping to be able to do more to answer your question about Timachine’s output on large printers.
Of course I remember you; in fact l recognised the address on the envelope. Glad to hear that the club is still alive and well, and I’m not at all surprised to find you still playing such a vital role in keeping it a going concern. Thanks for the news about Ariel and the Club. I was pleased to receive the newsletter too – very good quality. As I said, I wanted to find out more about what might be causing the Timachine problem but I can’t seem to find my power supply for the 2068 and hence can’t examine the Timachine code to try to suggest a solution.
We moved into this, our ist house, in September, and somehow the computer equipment hasn’t all surfaced yet! I periodically give another look, but haven’t found the power supply yet so am temporarily a frustrated non-user of the 2068. I’d really like to try out a few programs on our 1 2/3-year-old son, Alexander, as well as many other things. I was looking over some of my notes on Timachine and found some correspondence with Hisoft, who took over the maintenance of the Spectrum version of Timachine (“HiSoft Basic Compiler”) after / ported it to the 128 machine. Apparent/y some users there had problems that.sound similar to what you describe when they were sending Timachine printouts to their large printers.
The tentative conclusion that we reached was that some printer driver routines (as used with these printers) were not supporting the PRINT AT command and that my use of this command via the RST #10 instruction in the Timachine code is causing the problem. One example printout that I was sent by Hisort seemed to indicate that the printer driver did not accept the use of the “AT” control code and instead did a carriage return, corrupting the contents of the machine register HL in doing so. As indicated above, without my machine running, I can’t give a solution but maybe if I give you some relevant sections of the Timachine assembly code, you or someone else in the club could figure out a fix. So here’s what the code for the LIST command in Timachine looks like. (Some Timachine code follows…GFC)
Anyway, I thought perhaps you and others might find the above assembly code fragments of interest just to see how it’s done.
What am I doing now? Well, I seem to spend most of my time at my job, where there’s always more to do than time or people to do it. I’ve been 3 years at this company now. It’s called Visual Edge Software, and has about 15 employees. There were only 4 when I started, so it’s been growing rapidly. I must say that my experience in writing Timachine, and the reading I did then, was instrumental in helping me to get this job.
The company produces software for the scientific and engineering market. The machines that the software works on are work-stations, which is a class of computer one step up from a personal computer. These machines typically cost from $10k to $50K, and have memory of 8 or 16 megabytes, and disk space (hard disks) of 100 to 300 megabytes. The company has around 15 machines of various makes (Sun, Hewlett Packard, Silicon Graphics, AT&T,…) all networked together so that each machine can access the disk drives of the other machines. They all use the UNIX operating system.
My work the first two years was on a program called VISEDGE, which allows scientists to visualise their data (the results of a calculation or an experiment) by reading it in, displaying it on screen with the use of colour-coding, and then rotating the image to get a better view, zoom in on one small section, etc. I’m talking about images in 3-dimensional space; for example the values of the temperature and pressure in a volume of gas inside a turbine. The user turns a knob and the image turns in real time. Quite fun.
The last year has been spent on a different project which is a tool for programmers that helps them create iconic user-interfaces for their programs. By iconic user-interfaces / mean something like the Macintosh user interface. It seems that most manufacturers have decided to standardize on a windowing system/graphical user-interface called X Windows. This has become a near standard for work-station class machines, and is likely to trickle down to PC-class machines eventually.
Anyway, our program is called VIM (User Interface Management for X windows), and what it does is allow the user (i.e. the programmer) to sketch his user interface on screen by choosing various components (buttons, windows, scrollers, etc.), and then our program generates the source code fin C language) that will create the desired user-interface.
I forgot to mention that all the programming at Visual Edge is done in the C language.
Anyway, l’ve got to go to bed so l can wake up to take care of Alexander when he wakes up tomorrow morning (about 6AM!)
Hope this letter wasn’t too hard to read – I figured it would wait even longer if / waited for a good time to type it at work. Please feel free to publish any part of this letter in Sinc Link or to edit the information into an article.
Cameron Hayne.