News News
Befunge Befunge
Doom Doom
Inform Inform
Quake Quake
   - BeagleBoard
   - Code
   - Games
   - Utilities
   - Miscellaneous

Misc Misc
Links Links
Contact Contact

FIQProf/profanal for RISC OS

Release 6 (15/2/2020): fiqprof.zip (42,031 bytes). Source code included. Suitable for HAL-based RISC OS 5 machines.

What they do

FIQProf is a BASIC program that configures a HAL timer to generate FIQs, and then installs a small routine on the FIQ vector which samples a selection of CPU registers and performance counters when the timer interrupts. This data is stored into a buffer which can then later be saved to disc.

profanal is a single-tasking C program designed to analyse the log buffer generated by FIQProf. It can produce human-readable timelines and graphs of CPU activity and performance counter values. From the module list that is generated by FIQProf it is able to identify what module the CPU is in. It also supports the loading of GPA-format map/symbol files as produced by Acorn/Castle/ROOL C/C++, allowing the source file, function & line to be identified. Absolute files containing embedded function names can also be loaded.


  • Release 6 - 15/2/2020
    • Fixed FIQProf to record the correct information for PMP DAs
    • Fixed FIQProf to cope with recent Iyonix ROMs which use HAL_TimerIRQClear
    • Fixed profanal to not lose track of the high processor vectors when 'loadrom' is used
    • Changed FIQProf to construct a module containing the FIQ handler, so it can reclaim the FIQ vector if the OS (or other software) temporarily takes it over via Service_ClaimFIQ / Service_ReleaseFIQ (which can happen frequently with modern versions of RISC OS 5)
  • Release 5 - 1/9/2012
    • Added support for 'loadsyms' and 'loadrom' commands
    • Added support for HALs that use HAL_TimerIRQClear to clear timer interrupts (e.g. BCM2835)
    • Added support for kernels that run with high processor vectors enabled
  • Release 4 - 12/2/2011
    • Added support for recording and displaying the IOP321 & Cortex-A8 performance counters
    • Updated FIQProf to save the dynamic area list
    • Made the 'Application_space' module shrink itself to the appropriate size if Aemulor is active
  • Release 3 - 28/9/2010
    • Added loadabs function for loading absolute files with embedded function names
  • Release 2 - 4/10/2009
    • Corrected loading of GPA files
  • Release 1 - 20/9/2009
    • First version


FIQProf and profanal are Public Domain software.

Page last modified 08/07/2020