Here are some small programs I've written for myself. They can run with RISC OS 3 (and maybe with RISC OS 2 too), but in any case, use them at your own risk. They are Public Domain; do whatever you want with them. This archive contains 7 programs with their ARM source: * rbd (absolute): rbd allows to put an image ramdomly chosen among a list of images on the desktop background (pinboard backdrop). ChangeFSI is used, so that the images may be in any format recognized by it. Usage: rbd ; see the ARM source to know the syntax. Note: ChangeFSI must have been seen before you run rbd. It's very convenient to use an obey file containing a line like: %TaskWindow ".rbd " Then you can run this file in different ways, and it fully multitasks. You can also set it as a repeating alarm... * crc (absolute): crc calculates the 16-bit CRC of one or several files. Usage: crc ... * files (absolute): files gives information (length, CRC, date and time of the last modification) about all the files in a directory, with recursion in the directories. * logring (module): logring logs the phone ringings. See the ARM source for more information. Note that, with the current version, the serial input buffer must be enabled (perform a SYS"OS_Byte",2,2 in BASIC, or load a terminal emulator, like !Connector). * accounter (module): yet another system usage accounting utility! Before RMLoading this module, you must set two variables: Accounter$File and Accounter$Time. Accounter$File contains the file name (with full path) where the data will be stored. Some data will periodically be stored so that you always know when your computer is switched off or rebooted even without a shutdwon. Accounter$Time is a number that contains the period, in seconds (it must be a number... so set it with *SetEval); if it is 0, then no datum is periodically stored. For example, you can have the following lines executed during the boot (Obey file...): Set Accounter$File Boot:wtmp SetEval Accounter$Time 300 RMEnsure Accounter 1.00 RMLoad System:modules.accounter Four *commands are provided: *AcList [] displays all or only the last n entries of the file; *AcTime displays the total time the computer has been up; *AcWoff disables the periodical writes; *AcWon reenables the periodical writes (after reading the possible new value of Accounter$Time). There are 4 types of entries: 'N' (on)....... when module is loaded (initialised). 'F' (off)...... when a shutdown has completed. 'K' (killed)... when module is killed. 'L' (loaded)... last time the module was seen loaded. When the total time is calculated (AcTime), types 'F', 'K' and 'L' are equivalent to 'off'. An 'off' after an 'off' is ignored. So is an 'on' after an 'on'. I picked up some ideas from the following programs (but the whole code is mine): ac (by Jason O'Broin) and !TimeSpent (by Andrew D Miles). You can convert an untidied wtmp file in the ac format into my format (which is similar) by replacing the first character 'S' with an 'N'. * soundrestore (module): soundrestore allows to save the sound state and to restore it later. * TopIconBar (module): 2 versions (tib and tib2); tib2 requires RISC OS 3. When the mouse reaches the bottom of the screen (Y = 0): * if all the buttons are released [tib2: and there is no open menu], the icon bar is automatically brought to the front; * if the menu button is pressed and the other buttons are released, the icon bar is sent to the back. Note: there is no good method under RISC OS to know whether a menu is open or not; so we assume here that a menu is a window that: * is in front of the icon bar (in the window stack), * has a title bar, no back icon and no close icon, * has a button type equal to 0. * has a work area maximum x >= 2^18. If you want to reassemble them, you must define a h$Path, with the files RegNames (supplied here) and SWINames (which can be generated by !SWIgen) in its directories. No bug is currently known. If you find one, please send a bug report to: Vincent Lefevre Vincent Lefèvre e-mail: vincent@vinc17.net WWW (home page): http://www.vinc17.net/ WWW (Acorn/RISC OS page): http://www.vinc17.net/acorn/