Aemulor.com
Aemulor logo
Aemulor online manual

Software version 2.20

Manual version 1.00

Introduction

Aemulor allows you to run old 26-bit applications and modules (written before the days of RISC OS 5) on the IYONIX pc. 26-bit code cannot be executed directly by the XScale processor used in the IYONIX pc because the processor does not support the old 26-bit addressing modes.

Installation

Aemulor is supplied as an archive/zipfile containing a single RISC OS module that can either be loaded manually by double-clicking on the module, or be installed in the Iyonix's boot sequence so that it starts automatically. The archive also contains a ReadMe detailing the latest information about the release not included in this manual.

To extract the software from the file you download from Aemulor.com, set the filetype of the resulting module to &DDC or "Archive", then double click on it. A read-only SparkFS is included with the IYONIX pc so you do not need any additional software to install Aemulor.

If you wish to run 26-bit code automatically on startup, eg. to have a 26-bit application launch itself every time you switch on the Iyonix, then you will have to install Aemulor in the boot sequence. (Also, some applications may require Aemulor to be started before the desktop starts up.) To do this, simply copy the Aemulor module from the archive into the directory !Boot.Choices.Boot.PreDesk and then restart your machine.

Note: some people have reported that on a few machines, they've had to rename the Aemulor module in PreDesk so that it's called !!!Aemulor. This shouldn't really be necessary, but it may be worth trying if you have problems.

The !Aemulor application, accessible via Apps on the icon bar once the Aemulor module is running, provides an interface that allows you to configure the emulator and to see what code is being run under emulation. If you want to close the user interface without stopping the emulator, so that 26-bit code will continue to run, just choose Quit on the icon bar menu. Choosing 'Emulator too' on the Quit submenu will stop the emulator as well, thus also closing all 26-bit applications and modules.

Config window


This window allows you to configure the way that Aemulor behaves. Aemulor stores its configuration settings in Choices:Aemulor in the conventional manner. (So on a normal machine they can be found in $.!Boot.Choices.Aemulor)

Starting applications

This option allows you to choose whether Aemulor should automatically detect and intercept all attempts to run 26-bit code (eg. double-clicking on old applications or modules). If you choose this option Aemulor will work entirely transparently, as if the 26-bit applications were running normally; and you can even close the Aemulor user interface by choosing Quit on the menu.

There are some limitations, however, because it isn't always possible to tell whether code needs to be emulated or not, ie. whether it's old 26-bit code. In these cases we have taken the decision that it is important for Aemulor not to interfere with the normal operation of 32-bit applications, so Aemulor will only run something automatically if it is definitely 26-bit code.

If you choose to "Run all 26-bit code automatically" and find that a 26-bit application does not work properly, you can drag the application's icon from the Filer and into Aemulor's "Applications" window to tell Aemulor that any 'ambiguous' code found within that application directory is to be treated as 26-bit code. Programs that can't be run automatically are usually fairly complex applications using a number of modules, and often report that they need "version x.yz of module A" if you try to run them without telling Aemulor that they are 26-bit code.

Just in case there is a problem with Aemulor that causes it to interfere with 32-bit applications running natively, there is an alternative option of only emulating applications that are manually dragged onto Aemulor's icon on the icon bar. If you encounter such problems please contact us and we will investigate and fix them so that Aemulor's operation is once again transparent.

Please note that if your boot sequence includes 26-bit code then you should choose the 'run all 26-bit code automatically' option because otherwise the 26-bit code will not be run under emulation and errors will occur when the machine boots.

Filetypes

Aemulor allows two special filetypes to be used to also indicate that an application should be run under emulation.

Basic26 (&F7A)

To indicate that a BASIC program contains 26-bit assembly code, and should be run under Aemulor, set the filetype to BASIC26

Obey26 (&F7B)

This is designed for allow an application (regardless of language) to be run under Aemulor by changing its !Run file to filetype OBEY26.

For both of these filetypes, if you want the application to no longer be run under Aemulor, just change the filetype back to BASIC or OBEY.

Using Aemulor from the command line

If you need to run a 26-bit application from a command line and Aemulor isn't automatically detecting that the application needs to be emulated, you can prefix the command with AemuExecute to force it to be emulated.

This is, in fact, how the 26-bit filetypes Obey26 and BASIC26 are implemented and it can be used to ensure that other files are executed under emulation. For normal desktop applications this isn't necessary because double-clicking a document file causes the application to be started and Aemulor already knows that the application is 26-bit code.

AemuExecute should work for any *command, including module commands - eg. you can 'enter the 26-bit world' by typing "AemuExecute BASIC" within a TaskWindow, and then any commands/programs that you run using the BASIC interpreter are 'emulated' by Aemulor so that they behave the same as they do on RISC OS 4.

Be warned that if you use AemuExecute to run code that is already 32-bit compatible then it will also run under emulation, and will therefore suffer a performance hit; since such code is 26/32-bit neutral and will run either under Aemulor or natively.

Fault logging

Ordinarily you should choose 'Do not produce a log file' when a fault occurs, because applications could contain bugs that would cause Aemulor to produce a fault report, wasting space on your hard drive.

If, however, you report a suspected fault/incompatibility of Aemulor to us then we may ask you to change this option temporarily and send us the resulting log file(s) to help us study and correct the problem.

Please bear in mind that applications which fail on a RiscPC running RISC OS 4 will probably fail in the same way under Aemulor. However, if you find that your application is failing in a different way or more frequently, then this may be due to a limitation of, or fault within, the emulator. So please report the problem to us at the address given below so that we can improve Aemulor for the benefit of other users.

Dynamic areas

Some applications such as StrongED 4.64 and Schema 2 do not work properly if their dynamic areas are allocated at high addresses. This can occur even on RISC OS 4 but with the altered memory map of RISC OS 5 and the larger amount of RAM fitted to the IYONIX pc it is much more likely now. Aemulor can therefore provide dynamic areas at low memory addresses for applications that require this. The Applications window allows you to specify which applications should use this low memory area, but it should be noted that the area is of finite size (448MB) so the Config window allows the size of individual areas to be restricted. If you specify a maximum size of 0 then no limit is imposed.

Hiding the Aemulor icon

Aemulor is designed to operate transparently, so once you've told Aemulor which of your applications are 26-bit (by dragging them into the Applications window), you probably won't need to use the user interface very often. By un-ticking the 'Display the Aemulor icon after booting' and clicking on 'Set' you can save some space on your icon bar. (Obviously you should only do this if you've also told Aemulor to run 26-bit code automatically.) The user interface can still be accessed via the 'Apps' icon on the icon bar.

Modules window


Aemulor provides support for loading and using 26-bit modules within 26-bit applications. This is necessary because RISC OS 5, being a fully 32-bit OS, does not support 26-bit modules.

The modules window shows you which 26-bit modules are currently loaded under Aemulor, their version numbers and locations as a graphical equivalent of the *Modules command provided by the OS. This window also serves as a handy way to load 26-bit (or 32-bit) modules by dragging them into the window. If a 32-bit module is loaded in this way then any 26-bit equivalent that is already loaded will be killed first.

The modules window can also be used to kill one or more of the loaded 26-bit modules. Aemulor will warn you if the module is being used by one or more 26-bit applications; if it is, be sure that you know what you're doing, because killing the module could cause failures or loss of work.

A command called *Modules26 allows you to view the 26-bit modules from a command line prompt, and the optional *Modules26 -all parameter shows you the modules that are visible to 26-bit applications, ie. all of the 32-bit modules that are backwards-compatible and can be used by 26-bit code, and the 26-bit modules that are currently loaded under Aemulor.

Once you have run Aemulor you will find a directory called Modules located inside !Boot.Choices.Aemulor into which you can place any 26-bit modules that you wish to be loaded automatically when Aemulor starts up. This facility is useful when a 32-bit module is found to be not backwards-compatible; the older 26-bit version can be copied into the Modules directory and will thus 'hide' the 32-bit version from any 26-bit code wishing to use that module - the 26-bit version will be run under emulation instead.

Applications window


If Aemulor is unable to recognise an application as 26-bit code, as described above, then you can drag that application into Aemulor's 'Applications' window to tell Aemulor that it should be treated as 26-bit code. You will then be able to start it in the normal way by double-clicking on it.

An 'Add' button is provided so that you can enter a pathname that contains wildcards. For example, *.!Schema2 means that Schema2 will be treated as 26-bit code wherever it's running from, allowing you to move the application without reconfiguring Aemulor.

The Applications window also serves the secondary purpose of telling Aemulor which emulation engine to use for each 26-bit program. Aemulor contains two different engines :-

  1. the StrongARM engine that uses unique hardware features of the XScale processor and thereby offers much greater performance.
  2. the ARM610 engine which will also run some older applications that are not StrongARM compatible

Since the StrongARM engine is typically about 3.5 times faster than the ARM610 engine it should be tried first, and only if an application fails to run (often with an 'abort on instruction fetch' or an 'undefined instruction' error) should the ARM610 engine be used for that application.

When an application is started, Aemulor reads downwards in the applications window trying to match the application's filename against each of the entries in this window. Entries may contain wildcards, eg. *.!Style will match any copy of Impression Style, wherever it may be located on the system.

At the bottom of the Applications window is an entry "All other applications" which will be used for any 26-bit programs that don't match any of the earlier entries. By selecting this entry and clicking on 'Edit' you can choose the default emulation engine. This should normally be left as the StrongARM engine, but if for some reason you have a lot of old programs then you may wish to change it.

Aemulor also allows you to specify, for each application, whether dynamic areas should be created at low addresses. As noted earlier, some 26-bit applications cannot cope with the areas being allocated at high addresses, but since the size of the low memory is only 448MB, only those apps which are known to fail otherwise should have the "Use low addresses for dynamic areas" option ticked.

All changes in the Applications window take effect immediately and are automatically remembered. There is no need to tell Aemulor that the changes must be saved.

Lastly, as a convenience, the Applications window provides two further buttons 'Run' and 'View' which mimic the corresponding buttons in the Filer's Find window, ie. they start an application and open the directory containing an application, respectively.