mailto: blog -at- heyrick -dot- eu
David Pilling has released the source code to Ovation (note - not OvationPro!). Along with it is an interesting anecdote about the creation and history of the product.
As David says, there were four competing DeskTop Publisher (DTP) packages for the Archimedes (RISC OS):
That is order of arrival, not date order. Many people would argue that the de-facto DTP product for RISC OS was Impression and its various revisions, with Ovation as a runner-up. But don't think that means it is a has-been; for Ovation is a perfectly competent package in its own right.
The first product available was Acorn's own DTP package, carrying the horribly uninspiring name of "AcornDTP". It was created by GST Holdings, the same outfit that brought us 1stWord+ (ported from GEM). This was the first product that I purchased for RISC OS, when I bought my A3000. I found a copy of AcornDTP online so I downloaded it and fired it up.
Written in C and seemingly linked to ANSIlib (instead of Stubs), this program would allow you to lay out pages, but it was quite horrible in that you had to provide resources (stories, pictures, etc) and then place those into frames. It was, as you can see, quite limited. It was interesting to note that while it ran on an emulator, it was noticeably slow at reflowing text when the bar chart was moved. Goodness knows how that would have felt on an 8MHz ARM. The package was also only capable of editing one document at a time.
When I first took my new computer to (boarding) school, I was told that I had to keep the thing in the computer room. So I did. Well, it was barely a week when somebody pinched the AcornDTP floppies. Since I was doing what I was instructed, the school grudgingly paid out for the stolen software.
I went straight out and bought Ovation. Frankly, I could hug whoever stole those discs. Best damn thing... AcornDTP was a nice demo of Acorn's flexible font rendering and the interaction between that and the multitasking desktop, but frankly it sucked hairy donkey balls as a DTP package. Yes, you could lay out documents with it, it was capable of that much, but it just made the whole process so much harder than it needed to be. It had a few minor revisions (the one I downloaded had a later date than when I purchased), but more or less it was quietly forgotten about when better products came along, and along they came...
The second product, one might say the first serious DTP product, was Computer Concepts' "Impression". This was a monster of a program, a capable product, with a high degree of "not invented here" syndrome, and to top it off, the entire thing written in assembler. I had a de-dongled copy of Impression II many years ago. I used it to view documents that people supplied in that peculiar layout that was a directory containing all the pieces of the document. In my use of the software, I found it to be somewhat unpleasant in use. Powerful, yes. But not something that I would want to willingly inflict upon myself.
Being the big player in the RISC OS world, Impression was followed by Impression II, then Impression Style, then Impression Publisher, then Impression Publisher Plus (and a baby version - Impression Junior - was given away, I think to promote Style?).
The thing is, Computer Concepts had a habit of doing things the hard way. They thought that the early RISC OS desktop looked ugly so they created "ABI", their own 3D icon service. Acorn later saw the wisdom in 3D style icons and suddenly all the ugly icons were non-ugly. But Impression remained with ABI. Today, it still uses ABI and XAT (who were going to do the conversion) said in the Wishlist document about changing the ABI stuff to normal RISC OS windows and icons: Although this should be possible, it's going to be a major task. The way in which icons are defined in the ABI system is significantly different to the standard OS ones. Hence the reason for giving it a low priority at the moment.
XAT also says on the product page "Work on the 32-bit conversion of Impression-X is commencing well, although we haven't been able to spend as much time on the project as we had hoped." Note the date of the document. May 2006. Nearly a decade has passed since then and no 32 bit native version of Impression Publisher is available.
It is now being maintained and converted by, I believe, Richard Keefe; and while a version is available on !Store, you should note that it says that approximately 45% of the code has been converted so it still requires Aemulor in order to interact with the remaining 26 bit parts.
The other products might have lacked the "bloody hell that was fast" responsiveness of the Impression family, but you're seeing the pain and heartache of writing a major application in assembler and using all sorts of clever tricks along the way. I hope the project does get finished, the guy will deserve a free beer if he pulls it off. Hell, he deserves one now! I am plenty partial to assembler, but the idea of porting an entire complicated application such as that fills me with dread. Better him than me!
The final product is Ovation. A smaller offering written by David Pilling (of Hearsay, ArcFax, SparkFS (and loads more) fame) that was originally sold by Beebug. It came with a program disc, a work disc, a fonts disc, and it needed to be "installed" (something Beebug added) on to a copy disc, and you could only make two installations. Yes, Computer Concepts was right, it looked kind of ugly on RISC OS 2, but this wasn't the fault of Ovation - everything looked ugly on RISC OS 2. Thing was, when RISC OS 3 came along, it instantly looked much better. Actually, my software froze on RISC OS 3 as Beebug's fancy protection stuff was incompatible, but they issued an update on demand. This meant that I was without my DTP for a fortnight as updating meant posting the program disc to them and them posting back a version without the installer/protection nonsense. I suspect they should have just done that in the first place, but I guess they felt the need to compete with CC's stupid dongle.
As a DTP product, Ovation offered a minimal design - the page number and five buttons to the left of the horizontal scrollbar removed the need to have on-screen toolbars. This mattered back in those days - specifically MODE 12 is 640×256 (2:4 aspect) in 16 colours. Ovation, starting up, claimed 528KiB for itself (exactly 200KiB less than AcornDTP!) which meant that you could do more with the program. Printing a document was an amusing sequence of disc changes.
Life was much nicer on a machine with 4MiB and a harddisc. In this configuration, Ovation kicked ass - and was such a breeze to use that the first batch of issues of Frobnicate were written in Ovation; no problems putting together a forty page magazine, and I had plenty of tricks at my disposal, such as the ability to tweak the leading (said like "ledding", the inter-line spacing) if I needed an extra line at the end of an article. And unlike AcornDTP, much of it was designed directly within Ovation itself. I perceive Ovation to be like a nice word processor that can just do so much more. Unfortunately Ovation didn't get a lot of love from Beebug. After some time, they started to give it away as a freebie with other products, and then it was sold off to APDL. Following the sad death of David Holden, the catalogue of ADPL software is going to be made freely available. Some products have been released, the APDL specific software hasn't yet, so Ovation isn't currently available.
I don't know. Reading David's (Pilling) anecdotes, it seems as if the deciding factors for a DTP package were "what language is it written in?" (not that I noticed Ovation being particularly slow) and "does it look pretty?". I'm sorry, I think the question ought to be "can I get stuff done with this?". For me, with Ovation, that's a big YES.
It ought to go without saying that the DTP software on my Pi is OvationPro, and the word processor of choice on my PC for when I want something a little more capable than Notepad++ is...OvationPro! It isn't Ovation, it is David's next incarnation. In many ways the same, in many ways better. Think of it like XP was to Windows 95. That's OvationPro to Ovation. Familiar, compatible, and cross-platform. See? There are benefits to not writing an entire application in pure assembler!
Yes, I named four products and said that Ovation, the third, was the final. That's because I saw adverts for Tempest (by Clares) back in the day, and I hear some people even got to try demo discs and said it looked like a fantastic program. Sadly, as we well know, every bit of vapourware is fantastic. I have written some damned impressive vapourware myself. It's just the stuff I actually release that sucks. The vapourware is perfect, completely bug free, and works flawlessly on anything from a BBC Micro to a Pi.
Or for those of you without functional sarcasm detectors - Tempest was advertised, promoted, and then just vanished.
The source code
The source to Ovation is a maze of twisty passages, all alike.
It is built from the command line using a very non-standard process that David developed himself over the years (from countless years ago), custom libraries (because RISC_OSLib is crap, confusing, and buggy - and that's now - don't try to imagine what the first incarnations were like). There are also numerous issues of missing library references, which may be a side effect of the code being extracted from David's build system.
But don't think I'm complaining - all too many times the source code to old software has been lost or deleted or the author refuses to consider making it available. It doesn't matter that this won't build "out of the box", for it exists. That's the first massive hurdle cleared. Now the source exists, everything else is the downhill stretch to the finish line, don't you think?
I couldn't figure out David's build process (partly due to a lack of reading the rest of his website - he describes it on the opening page, duh!) so I decided the best thing to do would be to merge the sources into the application itself. I got an old copy of Ovation from a backup CD-ROM with the missing bits (templates, sprites, spellcheck dictionary, etc) and merged the code within. Then I wrote a MakeFile to assemble the release "with spellcheck" version (there is an option of a non-spellcheck version for machines with very restricted memory; but this isn't an issue in the 32 bit world).
As I mentioned, the build failed. So I worked through the compiler messages tracking down the missing function references and adding them. I was surprised to see some K&R style function definitions along the way.
Much of the 'library' code is within the "wz" source, but it does make a few references to external functions (polling and bbc_vdu) which are the same as their RISC_OSLib counterparts. So I extracted the polling code from RISC_OSLib (what an awful mess that code is - there's no need to go to all that pain to store the FP status, just set poll flag bit 24!!!) and converted it into a mini-library. I couldn't do anything with the bbc_vdu(w) functions as they were part of the "swi" code module and including that clashed with Ovation's own SWI code and then all hell broke loose (compiler messages aplenty!). Come on, it was basically half a dozen lines of assembler, so I rolled my own.
Looking at the code for RISC_OSLib's poll on the other monitor as I write this, I'm thinking I'll be rewriting that crap too... Does RISC_OSLib still officially support RISC OS 2? If not, why... oh, I know. It's a dank corner that smells of pee and nobody dares lurk there after nightfall...
Ovation's code is quite eccentric in places, but the guiding principle that must be remembered is that part of David's challenge was not only to make a good DTP package, but to make it functional on a 1MiB machine. I know, my original A3000 was exactly that until I upgraded it.
It took an evening, two KitKats, and three mugs of tea, but I got it to build and... ta-dah!
See? It is a competent piece of software. And it has been seen natively on everything from RISC OS 2.00 on an original Archimedes to RISC OS 5.23 on a Pi.
Which meant that I could have my own blast from the past and go right back to this........on my Pi! Epic!
Please note that while I check this page every so often, I am not able to control what users write; therefore I disclaim all liability for unpleasant and/or infringing and/or defamatory material. Undesired content will be removed as soon as it is noticed. By leaving a comment, you agree not to post material that is illegal or in bad taste, and you should be aware that the time and your IP address are both recorded, should it be necessary to find out who you are. Oh, and don't bother trying to inline HTML. I'm not that stupid! ☺
You can now follow comment additions with the comment RSS feed. This is distinct from the b.log RSS feed, so you can subscribe to one or both as you wish.
List all b.log entries
Return to the site index
PS: Don't try to be clever.
It's a simple substring match.
Last read at 11:40 on 2020/07/08.
© 2015 Rick Murray
This web page is licenced for your personal, private, non-commercial use only. No automated processing by advertising systems is permitted.
RIPA notice: No consent is given for interception of page transmission.