Latest News
!System updates

Development tools
C/C++ Tools

Writing 32-bit code
32-bit introduction
32-bit overview
32-bit technical
Memory issues
Developer tools
Paul Skirrow's Guide (PDF)
Download area

32-bit APIs
API changes
CallASWI
FileCore

RISC OS 5
Overview
BBC BASIC
CDFS driver
OS_ClaimDeviceVector behaviour
CDFS
Draw clipping
GraphicsV
HAL
Internet
UTF8 & Japanese support
International IME support
MIMEMap
Module PostInit/Final
PCI Manager
PDumper
Podules
Resource allocation
SCSI
Service Calls
UCS fonts
USB
WIMP API Changes
WIMP Flags

IYONIX pc
DDR memory
Help system
Keyboard layout
Miscellaneous
PCI slots

Opportunities

Iyonix Ltd
IYONIX home page
Contact details

   

CallASWI 0.03

Document version 0.30, 14th January 2003

With the introduction of the StrongARM processor and the accompanying update to RISC OS 3.70, a module "CallASWI" was made available which implemented the four new SWIs which were added for users of the older RISC OS 3.60, 3.50 and 3.10.

This enabled application programmers and library writers to use the new calls freely without any worries about backwards compatibility. There is no performance penalty for the use of these SWIs via the CallASWI module. One slight caveat is that older machines will not know the names of these SWIs; they would have to be called by number from BASIC.

Version 0.03 includes all of the features of earlier versions which are now obsolete, applications authors may freely distribute the newer version which is available from http://www.iyonix.com/32bit/download/CASWI.zip

History

CallASWI 0.01

CallASWI added the following 4 SWIs
     OS_CallASWI
     OS_CallASWIR12
     OS_PlatformFeatures
     OS_SynchroniseCodeAreas

CallASWI 0.02

This had a minor bug fix to ensure Service_Reset was trapped so that the module ensured that the SWIs remained available over a BREAK or CTRL-BREAK

CallASWI 0.03

The latest release of CallASWI (0.03) adds another 4 SWIs which have been introduced to RISC OS 5.00 and later. These are:
     OS_LeaveOS (&7C)
     OS_ReadLine32 (&7D)
     OS_SubstituteArgs32 (&7E)
     OS_HeapSort32 (&7F)

The details of the latter three SWIs are covered elsewhere in the 32 bit documentation, the extra SWI "OS_LeaveOS" has the opposite sense to "OS_EnterOS" and likewise takes no parameters.

The advantage of OS_LeaveOS is that it will cause callbacks to occur which can massively improve applications where only a quick bit of work is required in supervisor mode, yet it may be some time before any callbacks are triggered.

Again, there is a caveat in that BASIC won't be able to perform a name to number lookup on the SWI name.

Applications authors can now freely use the new SWIs in their programs and not worry about backwards compatibility by adding lines to their !Run file, such as

     *RMENSURE UtilityModule 5.00 RMENSURE CallASWI 0.03 
        RMLOAD System:Modules.CallASWI
     *RMENSURE UtilityModule 5.00 RMENSURE CallASWI 0.03 
        Error You need CallASWI 0.03 or later

Note that each * command should be on one line. The check on the UtilityModule ensures that the CallASWI module is loaded on versions prior to RISC OS 5.00.

© 2006 IYONIX Ltd 32-bit RISC OS