Top logo

Welcome to Analay

Math and Layout Software for the Commodore Amiga

History of Analay

The idea of Analay was born in the very early 90ies. My math teacher was using a math program to plot graphs of functions and hand them out in our math class in high school. I believe he used the program MatheAss. What always annoyed me about those prints was that they were pixely and not to scale. 9 pin dot matrix printers were just heading south and many people were using 24 pin printers, and inkjet printers started to become affordable. So there was no good reason not to have a high-quality printout of function graphs. So I decided to write a program that combined two things: A math program for analysis, and a layout program to bring your function analays to paper in high quality.
 
Analay did also layout formulas in a nice way. A LaTeX-like notation was used to enter the formulas. While Analay only supported a small portion of the LaTeX formatting capabilities, and LaTeX certainly did a better job in fotmatting formulas, it was enough for typical stuff you encounter in high-school and even beyond.
 
Development started on an Amiga 500. I upgraded it with an accelerator board later on: A Stormbringer board with an 68030@50MHz and an 68882@60MHz with 9 MB of RAM. I believe, there were also 68040-boards for the Amiga 500, but nevertheless I had one of the fastest Amiga 500 around :-). It became quite hot in the summer, so I usually operated it without the cover and a few fans placed inside. Together with an A2024 monitor and a resolution of 1024x1024, it was quite a nice workstation! I used it until the year 2000, when I bought my first laptop and installed Linux on it.
 
Memory was always an issue. I never had enough RAM for the linker. The linker used an incredible amount of RAM, but I had reached the limits of my hardware. Eventually, I had to get rid of the garbage collector in Oberon in order to reduce code size. Still, 9 MB was not enough.

Public Keyfile

Analay was released as Shareware, a popular distribution model in the 90ies. Everybody could download and use the program for free. However, some functions were not available in the free version. That were the functions for saving and printing. The full version cost 30 Deutsche Mark (around 15 Euros). The functions were enabled with a personalized keyfile that I sent out to the users. For all of you who still want to use Analay, here is a public keyfile for everybody. If you still use Analay, it would be great if you dropped me a line.
 
Download Analay.keyfile

Analay v1.0

I began writing Analay in Modula-II, which was the first high-level language I learned (besides BASIC, I guess that doesn't count :-) ). After I had already written a significant portion of the code, I switched to Oberon. I bought the Amiga Oberon-compiler, written by Fridtjof Siebert, which basically ended in a complete rewrite of the code. Still, the structure of the code somewhat remained the same.
Analay screenshot
It was my first big software project. This becomes obvious when you look at the structure of the code :-). Also, it seems that comments were quite expensive back then, so apparently I could not afford them as a high-school student. The source code is structured as follows (from my memory more than 20 years later): The major difference between Analay v1.0 and Analay v1.1 was the language independency and the translation to English. David Thompson from Kentucky helped me a lot polishing the English, that was really great! The final version was Analay v1.12, that fixed a crash some people had when printing. I never had the crash on my Amiga, and neither did any of my beta-testers. One evening, a user called me. He was experiencing the crash. Finally, I was in live contact with someone on whose machine it crashed. After a few hours of sending patch files over the telephone line via Modem (yeah, good old times), the bug was fixed. The cause was plain simple. In order to print in high-quality, I was opening a huge invisible screen. I believe I was asking intuition to open an NTSC-screen, for some reason. On Amigas that did not support NTSC that didn't work out properly. Or was it PAL?
 
Analay was running in several tasks (today we would call it threads, but the Amiga operating system did not know the difference between processes and threads). The math mode and the layout mode were running in separate tasks, so you could work independently in them. Also, the UI dialog for changing the axis range of a window was started as a separate task. Any update to the axis range was directly reflected in the respective window with the functions. Seems quite natural today, but it was not back then. Even today, blocking UI dialogs keep getting on my nerves.
 
For all who are interested, here is the code. I release it under the GPL v2. I don't know if anybody will ever compile this again (there is no real point in doing it ...), but if you do, please drop me a line!
 
Download the Analay v1.12 source code

Analay v2.0

Analay v2.0 was underway, but it was never finished. I simply packed too much into it, so I never got it done. Here are the key features that you missed: I did not use MUI, which was very popular at the time. Instead, I wrote my very own responsive GUI. I don't know why. It cost a lot of time, but I just felt like doing it. It was working quite nicely and I could easily integrate it with my multi-threaded architecture as I wished. I also remember spending a lot of time on the native support of True Type fonts. I implemented some caching algorithms based on AVL trees. I never finished it.
 
For all who are interested, here is the code. I release it under the GPL v2. I believe this is the latest version of the code. Please note that I never finished it. It was more or less a complete rewrite of v1.x. The structure of the code should be a little nicer than the structure of the old code. I did not bother deleting the .old-files, it's merely an archive of my old working directory. If you are getting into this, please drop me a line!
 
Download the Analay v2.0 source code
Imprint - Data protection