Program a Wimp application using text to describe what you want. The demo is available now.
To purchase the full version which is the same but has no limits on how many items you can create and gives you distribution rights to include the module with any software you write, please send £39.99 to sales@ro32.co.uk via PayPal and it will be emailed to you. The software is sent manually at the moment. It will usually be sent within 24 hours but may take longer over weekends or bank holidays. A VAT invoice can be provided on request.
If your program fits in the limits of the demo version, you can distribute your software with the demo version of the module and you will not need to purchase a full version copy.
Purchase the full version via PayPal:
Full list:
The ARM chip emulator.
This is a module that adds numerous instructions to your computer. There is a feature to add your own instructions if you are able to write a Risc OS module. All the framework is set up for you.
These instructions are very useful on many computers from RPCEmu right up to the latest Raspberry Pi where some of these instructions are missing. If you are getting an 'Undefined Instruction' error message this module may help.
You can also add your own instructions: An example module with source code is included in BASIC to add your own instruction to count the number of bits that are set in a register for those wanting to try adding new instructions. All the registers and status register are sent to your code in a table and you just need to modify the table entries and set R3 to indicate if you have completed the instruction.
The ARM encodings.
This shows the instructions ARM will execute by the binary number provided to the processor. Menu clicking on the main page provides a window of instructions to start with. Menu clicking on a binary number provides a menu to alter that 4-bit group. A right click will change a 0 or 1 to a question mark and multiple instructions are then shown for each 1 or 0 possible. Up to four question marks are permitted.
A program to copy files automatically using the multitasking system that Risc OS provides.
This can be useful on startup to move slower programs to the RAM disc which can be much faster than an SD card or USB pen. I use this myself for copying !GCC and !Scrap to the RAM disc which compiles C++ much quicker than leaving them on an SD card, especially when the source code is copied to the RAM disc too.
Download Copy to RAM for RISC OS
Fix DOS and Risc OS filetype issues.
This program can convert your programs from the unusable DOS filetypes, such as !RunImage,FF8 (type Data) to !RunImage (type FF8) by dragging the file to the DOS2RO icon. Any directory or application will have all the files converted. A save box will allow you to drag the converted files to a different location so you are not modifying the source files.
The program can convert either to Risc OS types or from Risc OS to DOS filetypes.
If immediate is ticked on the main menu this will convert anything dragged to the iconbar in place. Useful if you need to drag many files or wish to do each one by one.
Further, you can create a "!Fix" file. This makes an obey file that should be saved next to your application or inside it. This will change all the filetypes from DOS to Risc OS types if the user changes the filetype of the "!Fix" file to obey and runs it.
NEW: When !DOS2RO is running, any file named "!Fix" or "!Fix,feb" can be run by double-clicking the file even if it is not the correct filetype. A check is made to ensure that the file is a valid DOS2RO !Fix file before running it.
This is a very untested application and I accept no responsibility for any data loss. It is strongly recommended to copy anything you wish to convert to the RAM disk first.
Quick launch applications.
Launched on the far left side of your iconbar, this allows you to click the select button and then choose the program you wish to run. Adjust click to run a program and keep the menu open for fast launching of multiple applications.
Shift and click will open the directory that the program is in.
Some programs may need to be opened before they appear on your list. Your program list is saved across sessions.
Load in the newest version of a module that is known to your system.
This adds extra functionality to your module loading via *RmLoad commands that many applications use.
It does this by finding the newest version from:
When the newest version has been found in a file, it will loaded. If the newest version is already running then nothing will happen since you already have the newest.
* The newest version of the module will be copied into your Choices.ModNewest directory. This means that once seen, it will be used in the future to ensure your newest version is always loaded.
The newest version is decided by:
You can create a file called Ignore in your Choices.ModNewest directory with a list of module titles (not filenames) that will be ignored and RmLoad will work normally. Amulator is automatically ignored due to its unique version numbering - You do not want the newest Amulator loaded but the one that works with your processor.
Programmers and users can override the workings this module by the use *%RmLoad instead, with the % character in front of RmLoad.
Download ModNewest for RISC OS
A simple module that sets RunDir$Dir and RunDir$Path to the directory that the last file was run in. Like Obey$Dir but for any file type.
This has been reverse engineering from a 26-bit module I wrote in 2001 where the source code was long lost. This has now been 32-bitted and reworked from the module disassmbly.
Make Wimp applications using this module. All SWIs only use integers and strings for simplicity.
Say goodbye to blocks, window handles, menu formats, indirected strings, buffer lengths and memory management for controlling the Wimp*.
This is the Demo version. Limited numbers of windows, icons and menus can be made per application.
Using any language that supports SWI calls, you can quickly build a Wimp application by defining windows, menus, icons and more using text. No more window handles or icon numbers. Give everything a name instead. Common actions can be quickly added and very common actions are handled by TWimpDemo automatically.
TWimpDemo calls are simple. Most common actions can be performed via Update, Read, Open and Close.
REM Extend the work area of a window called mainwindow 500 OS units taller using BASIC and open it.
SYS "TWimpDemo_Update","mainwindow","add-height:500"
SYS "TWimpDemo_Open","mainwindow"
TWimpDemo_PollData can read in the information the Wimp sent you during the last Wimp poll to your application.
REM When responding to a drag ending, get the start and end window names if they are your TWimp windows. If they are not TWimp or not yours, the strings will be an empty string. Also get the position of the drag end in window coordinates instead of screen coordinates
SYS "TWimpDemo_PollData","start-drag-window end-drag-window" TO startwindow$,endwindow$
SYS "TWimpDemo_PollData","end-drag-wind-x end-drag-wind-y" TO x%,y%
REM The above has been done on two lines for clarity but could be done on a single line
TWimpDemo can create preformatted items. Save windows, about windows, discard cancel save and quit windows can all be made very quickly. Sliders, integer number icons, display icons, labels, pop-up menu icons, frames and more are quick to make with TWimpDemo handling the all default values, buffers and validation strings for you.
Garbage collection. TWimpDemo looks for your program ending or crashing and frees up the memory used. You can also claim memory via TWimpDemo and this will also be released if you program ends or crashes.
This alpha version should be compatible with the Risc OS 3.00 operating system or later. Tested on Risc OS 5.28, 5.30 and 3.71.
* Messages still currently require blocks and language support is in early stages. A future version will change this.
Download TWimp Demo
for RISC OS
© Copyright 2025 Graeme Shrimpton. VAT 809 2860 16