mailto: blog -at- heyrick -dot- eu
Ovation - here it is!
First up, I must correct a previous assertion. I was under the impression that Ovation was a product of the Really Good Software Company believing it to be the commercial part of APDL. This, it seems, was not the case and Ovation was an APDL product. I'm a twat - but, hey, when was that ever in doubt?
As Aaron has not had the time to sort out the APDL site, what with all of the RISC OS stuff, he has said that I can place Ovation here in the interim period. It will, in time, be a free release on http://apdl.org.uk/, so pop by there once in a while, and also take a look at what else is on offer.
Without any further ado:
- The application! (341KiB, zip) - unzip it, run it, enjoy it.
(this should be a complete, self contained, version of Ovation; tested on my Pi...)
- The source code! (405KiB, zip) - this is one for the geeks.
(note that this version of the source builds as a DDE application from a MakeFile; it is a bit different to David's original code)
Here's what has changed since David's sources (and, I presume, the APDL release):
Ovation v1.50 - Rick'sMods (based upon v1.49)
This is a 32 bit application built on a RaspberryPi. Going forward in this
incarnation, no attempt is going to be made to retain compatiblity with
RISC OS 2. I would be extremely surprised if this impacts ANYBODY at all...
* Converted so a DDE style application that builds the with-spellcheck version.
* Changed inefficient RISC_OSLib-derived polling code to 14 lines of assembler...
* Created a Sprites22 file for better looking sprites and icons (in as much as
my (in)famously lame drawing abilities permit).
* Ovation will now load Sprites22 if it exists. Due to how Ovation was designed,
this was actually a surprisingly simple modification.
2015/11/04 v1.50 *released*
* Undid the previous changes to the Menus. It seems to have been a quirk of my
machine at that moment in time, the original menu set works fine now (!?); so
no point fiddling with something that isn't broken...
* Tweaked AutoRun.!OArtWorks to correctly load ArtWorks modules (my version was
incorrectly setting OvationPro$ArtWorks - that might have been something that
I missed up back circa Y2K or so...whenever it was I changed to OvationPro!)
* Changed all occurances of Ovation$Path to Ovation$Dir.
* Changed OvationDictionary$Path (neither a path nor in Ovation namespace) to be
* Templates file now just called "Templates". Older "Templates2" discarded.
* As RISC OS 2 is deprecated and the spellcheck build is "default", it was possible
to trim a lot of junk from !Run (and hardwire suitable defaults in the code).
Accordingly, the following system variables have no purpose any more:
Ovation$Dither - RISC OS has supported dithering for aeons.
Ovation$FontMan3 - RISC OS has supported rotated fonts for aeons.
Ovation$Spell - Spellcheck version is now 'assumed'.
Ovation$Sprite3 - RISC OS has supported rotated sprites for aeons.
Ovation$Templates - RISC OS 2 or 3 style Template selection
* Drastic modifications to the !Run file.
(plus a lot of comments to make things easier)
* On the Pi, Ovation requires 500K (application space) plus it creates a Dynamic
Area that is initially 80K. Therefore, the least Ovation requires is 580K. In
the !Run file, this is rounded up to 608K (to be a multiple of a 32K page).
This requirement is the first thing in the !Run file. Just before running the
program, the WimpSlot is set to 512K - enough to run the main program (again,
rounded to next highest 32K increment).
Things may be different on a machine that doesn't support Dymanic Areas; with
a little luck Ovation will get itself running and then manage its own slot...
[in case you can't read between the lines, this means "it wasn't tested" ;-) ]
* Compiled on a RaspberryPi (non-ZPP custom build of RISC OS 5.21).
Tested on RaspberryPi with Frobnicate magazine, issue #1 (it's on Arcade BBS).
Tested with text frame import.
Tested with Sprite image import, plus rotated 38 degrees (randomly chosen angle).
Tested with JPEG image import (JPEG rotation not supported).
Tested with DrawFile image import, plus rotated 38 degrees.
Tested with ArtWorks image import (Startup splash screen within !AWViewer).
Tested with ArtWorks image import (Pi -> $.Documents.Images.ArtWorks.Apple5).
...and the ArtWorks images both able to be rotated 38 degrees. ;-)
Tested with line drawing - default narrow black line. Arbitrary start/end.
Tested with line drawing - 2mm red dot-dash line with arrows at each end.
Frobnicate looks correct, so text flowing not tested. Assumed to work...
Spellcheck tested on Frobnicate. Works but many faults due to the use of
technical words not in the dictionary...though I can see I spelled
"seperate" incorrectly. Pffft!
* OH MY GOD. SO MUCH PAIN!
Yup. After the above tests, I decided to fire up my ZPP version of RISC OS
to see how Ovation fared.
Is the short answer.
The logfile for loading Frobnicate #1 ran to some 40K and about 30 entries.
Since that was worrying but not frightening... time to warm up the compiler
and abuse the assert() statement...
* ZeroPain quashed - was trying to read an error number from a returned error
block (in fo.addtocache)....that is NULL if there was no error. This cropped
up when trying to open a new document.
* ZeroPain quashed - a rather horrible pile of checks in act.setactives() was
checking if "!act->box" (among other things) and then ORing a check with
"(act->box)->type". If act->box is NULL, where's ->type supposed to be?
Now split into multiple checks. This cropped up when trying to open a new
* ZeroPain quashed - Acorn's DrawFile code (Drawfiles.note_fontcat) was
setting a "size of font header" value without bothering to check if the font
header even existed. This cropped up when loading Frobnicate #1 which has
like a bazillion DrawFiles in it.
* ZeroPain quashed - vi.inspaqy was looking at the value of test->y which would
fail if test was NULL. This cropped up when loading Frobnicate #1 - no idea
what this function does, but it was broken and now it ain't. ;-)
* ZeroPain quashed - vec.setsrc was not coping with vlsrcp returning NULL. This
cropped up when dragging a large image box around.
* ZeroPain quashed - drag.gotextdrag was not checking if box was NULL. This
cropped up when clicking in the borders to drag a guideline.
* ZeroPain code is contained within conditionals "ZEROPAIN" with original code as
the #else clause, in case you want to revert for testing changes (etc).
* Tested on a RaspberryPi with ZPP build of RISC OS 5.23. Originally the same
tests as given above; then going through and testing pretty much every menu
option (plus dragging some stuff around).
The notable omission here is PRINTING. It's gone midnight and I haven't even
made dinner yet, so you'll have to excuse me NOT testing that part tonight.
However, it seems that everything else works with ZeroPain module INACTIVE
(so a problem would crash the application).
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! ☺ ADDING COMMENTS DOES NOT WORK IF READING TRANSLATED VERSIONS.
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.
|David Pilling, 5th November 2015, 02:47|
Interesting to see all those system variables for things now standard. Also the ZPP errors raise a smile. Oops.
|Nick Prince, 24th April 2016, 18:00|
Thanks for the updated Ovation. I have used Ovation on and off since the days of floppy discs from BeeBug and have the APDL cd rom version. Many years ago, BeeBug public=shed a set of Ovation tools that dded a simple toolbox to it. That doesn't run in 32-bit systems. Any idea if this can be updated? It is on the shiny disc of Risc User (BeeBug's Risc OS magazine) history.
(Felicity? Marte? Find out!)
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 15:52 on 2021/01/22.
© 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.