[iyonix-support] RM comands

  • From: John Harrison <john@xxxxxxxxxxxxxxxx>
  • To: Iyonix support <iyonix-support@xxxxxxxxxxxxx>
  • Date: Fri, 24 Jun 2011 11:28:05 +0100

Apologies for top posting, to provide context for anyone who missed the
original.

I implemented Martin's solution, and since I have Eureka, I included the
extra command.

It works fine so long as Eureka is in the mix of 26-bit applications run in
a session.  

If Eureka hasn't bee loaded when the last 26-bit application quits, then
the command trying to kill the non-existent EurekaUtils generates an error.
It also terminates the process, so Aemulor is left running, and the count
of 26 bit applications is not decremented.

I solved the problem by including:

RMEnsure EurekaUtils RMLoad <Boot$Dir>.^.Apps.!Eureka.EurUtils

Regards

--------------------
> The basic problem is that one wants Aemulor to be loaded when needed,
> then quit when finished with, so it doesn't interfere with 32 bit apps
> unnecessarily. If you have more than one 26 bit app running, then you
> want Aemulor to only quit when the last 26 bit app is quit. "Would the
> last one to leave please put out the lights".

> So, take the !Run file of your 26 bit application, rename it !Run2, and
> (optionally) filetype it as Obey26.

> Then create another Obey (NOT Obey26) file, name it !Run and enter the
> following :

> || Test to see if Aemulor is loaded; if not, then load it
> RMEnsure Aemulor 0 RMLoad ADFS::4.$.Apps.!AemulorPro

> || Increment a system variable, Aemu$tasks by one, since we are about to
> ||  ||run this application.
> SetEval Aemu$tasks <Aemu$tasks> +1

> || Then run the application
> Run <Obey$Dir>.!Run2

> || On quitting :

> SetEval Aemu$tasks <Aemu$tasks> -1 IF Aemu$tasks =0 THEN RMKILL Aemulor

> || NOTES : This application's !Run file has been renamed to !Run2. This
> || new !Run file has been added to load Aemulor, since this application
> || requires Aemulor so as to run on a 32 bit RISC OS. It checks to see
> || if Aemulor was running first, presumably loaded by some other
> || application. If not, then it loads Aemulor. Also it increments the
> || Aemu$Tasks variable so we know another 26 bit ||app is running. Then,
> || on quitting, it decrements Aemu$tasks by one, then checks its
> || ||value. If aemu$tasks now equals zero, Aemulor can also be quit
> || (RMKilled). Otherwise it is left running, for the remaining 26 bit
> || apps.

> || Note that if you load this application, then another which also 
> || ||requires Aemulor but does not have one of these !Run files to reset
> || Aemu$tasks, then quitting this application, may also cause the second
> || one to be  ||terminated.

> Note that I keep Aemulor in the Apps directory on my hard disc.

> Also , if you use !Eureka, this leaves a 26 bit module behind when it
> quits. You need to add : AemuExecute RMKill EurekaUtils

-- 
John Harrison
Website http://jaharrison.me.uk
---
To alter your preferences or leave the group, 
visit //www.freelists.org/list/iyonix-support
Other info via //www.freelists.org/webpage/iyonix-support
List-related queries to iyonix-support-moderators@xxxxxxxxxxxxx

Other related posts: