The purpose of this page is to pass on some software for (the operating system) Risc OS
This OS is in existance from 1987 on, first on the ARM-equipped Archimedes computer. ARM is now in almost every telephone.
There are a number of older machines that are no more in production and even rare, like RiscPC's and Iyonixes.
New machines based on modern ARM processors are still in production. A quick internet search will find them quickly.
If you want cheap, almost any raspberrypi (www.raspberrypi.com) will do. Only the latest models, CM5, RPI5 and RPI500 cannot run RiscOS natively anymore but can run it in a virtual machine (Risc_OS_Linux_Binary) or under emulation in the RPCEmu emulator, www.marutan.net/rpcemu/
A free operating system for recent hardware is available at www.riscosopen.org or (an alternative version with shedloads of free and modern software) www.riscosdev.com.
The current most modern RiscOS version number is now at 5.31.
All the files on the site you are looking at, are zipped so if they have no .zip extension, in your RiscOS desktop, filetype them to 'archive'.
Click on the blue headlines to download the files.
!RegGraph
Zap-like editor only for BBC-Basic, with utilities.
This project was started as an utility to convert assembler-listings into a graphical form.
When programming in (ARM) assembler, you are likely to end up with more variables than registers. Typically 50 variables for 12-14 registers.
A graphical representation allows you to easily see which variables you can combine, and where some registers can be pushed on stack safely to make place for more variables.
This is also super useful when you have to change an existing program, as you can see where registers are free to use.
It also alerts you of errors, e.g. uninitialised registers. It has a database of the RiscOS SWI's as listed in the PRM's, in order to judge which registers are needed with that SWI.
The registergraph looks a bit like the music notation system Klavarskribo. One horizontal line for each instruction, 16 or more vertical lines where in-use state of registers is shown.
As you can easily see where you can use one register for multiple variables, and see lines following branch jumps, it is fairly easy to construct assembler with optimal register use that works first time.
To make it more useful an editor was built around it with the usual text manipulation features, and some utilities like cross-referencer (per routine and global; global also lets you see which variables are never assigned or used).
For individual variables you can see in which subroutine they are DIMmed, used as a parameter, read out or assigned.
program cruncher (among more, variablename-shortening and converting everything into an ~lzw-compressed executable; also BBC-era programs), simple program check (eg. check for correct IF/ELSE/ENDIF,CASE/ENDCASE pairings, #parameters for each subroutine, () [] {} correctness),
printing (to a series of jpegs to avoid Riscos printing problems), character designer, treeview how procedures and functions are interrelated, a calculator with bitlength up to 128 that can also calculate primes (128-bit, little Fermat method) and crc-polynomes (32-bit)(polynomes with 2^n-1 loop length only, fairly fast).
!ArchiEmu
The first versions of the now ubiquitous ARM processor were used in a series of computers by the British company Acorn. The Archimedes 305 and 310 were released in 1987, and, a few machinetypes and operating system versions later, they were replaced by the RiscPC. The chips used in the RiscPC and later machines were so much different that a lot of earlier software did not run anymore, a good moment to write an emulator, !A310Emu.
It turned out that some games and demos required features that I could not add to this older version. So, start anew and try to implement the versatility that the old version lacked. Sooner or later it turns out that new versions also can no more be adapted to fresh insights. That's life. this program is at the verge of it, especially the screen, floppy and harddisc-image handling cry out for improvement.
The archive contains the emulator itself, and a few example setups.
You can add other OS'es than version 3.11 too, it recognises them automatically.
Tested with Arthur 0.30 and 1.20, Riscos 2.00 and 2.01, Riscos 3.10, 3.11, 3.19, and 3.20, with memorysizes from 0.5 Mb up to 16 Mb. The Readme file has more info where to get more software to revive those days.
The emulator can be used both in multitasking and singletasking.
Supports 2 Harddisc images up to almost 500 Mb each, HostFS and it passes through Midi commands (Sibelius!), if MIDIUSB is active in the host.
!Sudoku12
Solve and create various types of Sudokus, inc. Hexadoku, jigsaw, Sudokumix. This distribution also contains BASIC and Python versions of a singletasking Calcudoku solver.
!A310Emu
An older Archimedes-emulator for Strongarm-equipped RiscPC's & Iyonix ,for Arthur 0.30, 1.20, RO200, RO3.11, memorysizes 0M5-16M (depending on OS).
Sound and low-bit-per-pixel screenmodes must be improved. Supports two virtual ST506 harddiscs up to 256 Mb each.
It was effectively abandoned when I started !ArchiEmu, so not everything works, or has bugs.
Adapted for Beagleboard and RaspberryPi.
It's no longer maintained, it misses some features that !ArchiEmu has.
Nonogram
A program to solve the Nonogram/Griddler/Japanese-picture puzzles. It was mainly written because of the challenge to find an algorithm for these problems. Which is more complicated than it is with Sudoku's.
!Keyboard
Utility to enter keypresses by clicking with mouse on icons. Useful if you forgot to take a keyboard with you, or if you want to enter special characters (it has a submenu for the most common ones). Three different keyboard layouts, can also type into open menus.
Patches for some programs to work in the RaspberryPi 3, and a program to create them
A few very useful programs ceased to work when tried with Riscos on the Raspberry Pi 3. RPI3 has a processor with no SWP instruction. instead it uses two other instructions, LDREX and STREX. PatchSWP replaces SWP with these two. In the RiscOS universe, SWP is almost only used in programs compiled with gcc that expected to be run in a multicore environment. The codefragments where SWP occurs are predictable, which makes replacing easy if these fragments can be recognised.
The patch files can be put into the !Patch directory in the Utilities folder. E.g. SDFS::0.$.Utilities.!Patch.
The files can also be adapted directly, you do not need !Patch.
The PatchSWP application has its own help file.
An Electron emulator.
The Electron (1983/4) was brought to market as a less expensive BBC computer. Upto now this emulation can read ADFS floppy images, UEF cassette files. Multi- and Singletasking, loading and saving of complete machine state, DFS discs.
An prime number generator
A fairly useless prime number generator, it can also decompose numbers into their factors. For a program based on the sieve of Eratosthenes, it can handle fairly big numbers (theoretically up to 2^96, practically 2^80). It's more of an exercise in how to write a fast generator rather than something useful, because usefullness starts at 2^1024.
Lingo assistent.
Lingo is/was een spelprogramma om een 5 of 6 letterwoord te raden.
InvLingo is een multitasking progr dat lijkt op hoe op www.nieuwsblad.be/woordkraker dit spel wordt gepresenteerd. Laat InvLingo een woord voorstellen, voer dit in op de site, voer de teruggegeven kleurcodes in in InvLingo en voer het nieuwe voorstel door InvLingo in bij Woordkraker. Uiteraard kun je ook tegen het programma zelf spelen.