mailto: blog -at- heyrick -dot- eu

Navi: Previous entry Display calendar Next entry
Switch to desktop version

FYI! Last read at 08:24 on 2024/05/05.

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:

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...


2015/10/24 v1.50

* 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
  Ovation$Dictionary.

* 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.
  It didn't.
  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
  document.
  
* 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).

 

 

Your comments:

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.

Add a comment (v0.11) [help?]
Your name:

 
Your email (optional):

 
Validation:
Please type 77706 backwards.

 
Your comment:

 

Navi: Previous entry Display calendar Next entry
Switch to desktop version

Search:

See the rest of HeyRick :-)