If you are interested in StrongArm Software for the PC -
| Home |
| Product History |
| Product Overview |
| Program Categories |
| Install Overview |
| Pricing |
| Latest news |
| System requirements |
| Contact Strongarm |
The data monitoring system is designed to work from hard disc. The recommended directory structure is
indicated below:

Each of these entities (!CogProgs, !CogSys...) is a pseudo-application so each can have its own identifiable icon. When these pseudo-applications are 'run' by double-clicking, they will set system variables and/or open directory viewers of their contents. The actions to be carried out are specified in the respective !Run files within the pseudo-application.
The data monitoring system uses a resource area called !CogSys to keep a number of files
that are used by more than one program. !CogSys needs to be seen by the filer for correct operation so it
should either reside in the main directory of the hard disc or be run explicitly in the boot sequence.
The contents of !CogSys is shown below. The application !StrongHelp that resides in the main !CogSys
directory is the help engine currently used for all the program instructions.

The modules directory in !CogSys contains a few re-locatable modules required by some or
all of the programs. The modules in the current version of the system are:
Squash Version 0.20
RehabMod Version 3.00
PlayIt Version 1.35
BorderUtil Version 0.02
SpeakMod Version 2.06 (plus Basic program LoadSpeak)
Both 'Squash' and 'BorderUtil' are OS modules - 'BorderUtil' fixes a few bugs in RISC OS 3.1. 'Squash'
provides the software for compression and decompression used in a number of the programs. 'PlayIt' is a
module by Rick Hudson which is used for playing the sound samples. SpeakMod is the speech synthesis
module from the 'Speak' system by Jonathan Duddington. This module must be purchased separately and if
available will be used by several of the programs. 'RehabMod' is the data monitoring module written
specifically for the cognitive rehabilitation system by Chris Newton and myself. This module provides a
number of SWIs to pass data between individual programs and a controlling process and to provide support
for the use of alternative inputs such as 'Concept Keyboard' and digital joystick. The complete list of
SWIs follows.
CogSys_Init0_3 &80AC0
SWI to initialise the monitoring system. Looks for podules 0 -> 3
CogSys_Init3_0 &80AC1
SWI to initialise the monitoring system. Looks for podules 3 -> 0
CogSys_PutPatDat &80AC2
SWI to save the patient data in RAM
CogSys_GetPatData &80AC3
SWI to get the patient data from RAM
CogSys_PutProgramID &80AC4
SWI to save the program ID, no. of variables and max. no. of runs in RAM
CogSys_GetProgramID &80AC5
SWI to get the program ID from RAM
CogSys_PutInitValues &80AC6
SWI to store the initial values to be used in RAM
CogSys_GetInitValues &80AC7
SWI to retrieve the initial values to be used from RAM
CogSys_MonitoringOn &80AC8
SWI to turn the monitoring on
CogSys_MonitoringOff &80AC9
SWI to turn the monitoring off
CogSys_PutWimpData &80ACA
SWI to collect results in a multi-tasking environment
CogSys_GetDataSet &80ACB
SWI to get a data set from RAM
CogSys_ClearProgArea &80ACC
SWI to clear the program data area
CogSys_ClearDataArea &80ACD
SWI to clear the entire data area
CogSys_Init &80ACE
SWI to initialise IO system. Checks for I/O podule
CogSys_IOMonitorOn &80ACF
SWI to turn IO monitoring on.Called with:
R0 - delay in centi-seconds
R1 - shift key flag (&FF enables shift key)
CogSys_IOMonitorOff &80AD0
SWI to turn IO monitoring of
CogSys_loadIODef &80AD1
SWI to load key definitions from a file
R0 - pointer to filename (ASCIIZ string)
CogSys_clearIODef &80AD2
SWI to reset the key definitions table
CogSys_Status &80AD3
SWI to provide status on the IO monitoring system
CogSys_FinishIO &80AD4
SWI to reset the IO monitoring system
CogSys_Finish &80AD5
SWI to reset the monitoring system
Error numbers
&802400 - Not yet implemented
&802401 - Number of variables out of range
&802402 - Monitoring system not initialise
&802403 - Monitoring system already on
&802404 - Patient data string too short/long
&802405 - Program ID too short/long
&802406 - Monitoring system on
&802407 - Get results not initialised
&802408 - Unable to claim workspace
&802409 - IOMonitor system not initialise
&80240A - IOMonitor system already on
&80240B - IOMonitor system on
&80240C - Error loading IO definition file
&80240D - IO definition file not found
&80240E - Error in IO definition file
&80240F - Timer delay cannot be zero
The 'data' directory contains data files for the speech synthesis module and will only be
found if the Speak software has been purchased.
The 'debug' directory contains two items I use extensively for program development and
testing.
The 'drivers' directory contains software drivers for the 'PlayIt' module which plays the
sound samples. At present there are only two drivers - one for the standard sound system and one for the
16-bit system found on the RISC PC and above.
The 'overlays' directory contains the concept keyboard overlay definition files that are
used by a large number of the programs. Support for the concept keyboard device is provided by the
monitoring module. The filetype for an overlay file is &C83 . In the 'Utils' directory
there are two programs - !ConcKbd and !CKTest that are for respectively designing and testing the concept
keyboard overlays.
The last directory in !CogSys is 'Resources' which contains a utility called OS_Version
which is used by all of the programs to determine which version of the operating system is present. The
freeware terminal program !Connector and its supporting program !SerialDev are also present. Lastly there
is a text file called 'Messages' which contains the registration information. An example file is as
follows:
#Messages file for !CogSys
ID1:Licensed to:
ID2:The Manor House
ID3:Seaton, Devon
ID4:EX12 2AD, U.K.
The data monitoring system contains a pseudo application directory called !RehabData in which to store the results from monitored users. The structure of the !RehabData area is illustrated below.

Each user has his/her own directory area called !Userxxx. These are also pseudo-applications. By
default the users are numbered from 000 and the ID for each new user is just incremented by 1. Although
users can be created and modified manually, the '!MenuMaker' program does the job with a great deal more
ease and security. The details of the user area will be presented after a brief consideration of the
other contents of !RehabData.
In addition to the user areas, !RehabData contains directories called 'Defaults',
'Headers' and 'Wastebin'. 'Defaults' and 'Headers' contain information necessary for all aspects of the
monitoring to work correctly so these should not be deleted. The structure of each directory is
identical - each containing a single 'default' or 'header' file for each program.
The 'default' file for each program contains the following information about this
program:
1. The number of monitored variables
2. The system default value for each variable (these may be over-ridden for each user).
3. A descriptive label for each variable
4. A flag to indicate whether a particular variable would be using passed parameters (-1) or not (0).
5. The maximum allowed value
6. The minimum allowed value
7. Additional information regarding program usage
As an example the default file for the program !Amaze follows below:
#PNAME !Amaze
#NVARS 11
#COMNT Below are the default values for the Program & User
#C% 3
#D% 1
#E% 0
#F% 0
#G% 0
#H% 0
#I% 2
#J% 0
#K% 0
#L% 0
#M% 0
#COMNT Below are the variable descriptors
#C$ Level
#D$ Maze Number
#E$ Consecutive Corrects
#F$ Moves
#G$ Errors
#H$ Elapsed Time
#I$ Input Choice
#J$ Number of Tries
#K$ Number of duff moves
#L$ Number of Helps
#M$ Cumulative Errors
#C! -1
#D! -1
#E! 0
#F! 0
#G! 0
#H! 0
#I! -1
#J! 0
#K! 0
#L! 0
#M! 0
#C+ 12
#D+ 4
#E+ 0
#F+ 0
#G+ 0
#H+ 0
#I+ 3
#J+ 0
#K+ 0
#L+ 0
#M+ 0
#C- 1
#D- 1
#E- 0
#F- 0
#G- 0
#H- 0
#I- 1
#J- 0
#K- 0
#L- 0
#M- 0
#PERF N/A
#NTRIES 0
#NSAVES 0
#FDATE Wed,15 May 1991
#MDATE Not yet determined
#LDATE Wed,07 Aug 1991
The 'header' file for each program contains the labels used for the stored data files and
are used by the !PatData program. The file for the program !Amaze follows:
"Date", "Condition", "Maze#","#Correct","#Moves","#Errors", "Time", "Input","#Tries","#Duff
Moves","#Helps","#CumErr"
The 'Wastebin' directory is used to store all the data files for any users who have been
deleted from the system. This is purely a safeguard against accidental loss of data.
The structure of an individual user's data area is illustrated below.

The results for each program attempted are stored in a file with the same name. These files have a
file type of &DFE and are known as CSV (comma separated variables or values) files. These files are a
standard format used on the Acorn and other platforms. A very short example data file for the program
!VocMatch is as follows:
"Date", "Level", "Number of Matches", "Number of Moves", "Time Taken"
"Thu,04 Jan 1996.17:09:54",3,6,14,4105
"Sat,24 Feb 1996.00:13:34",3,6,11,4063
"Tue,02 Sep 1997.10:49:42",3,6,10,2019
The labels on the first line come from the 'header' file for the particular program
The file named System_Log is a text file which shows the history of usage by that
particular user. An example file follows:
Mon,10 Mar 1997.23:46:59 Config file loaded
Mon,10 Mar 1997.23:47:02 Program !Anagram1 Started
Mon,10 Mar 1997.23:49:26 Results for !Anagram1 saved
Sat,15 Mar 1997.00:33:19 Config file loaded
Sat,15 Mar 1997.00:36:06 Config file loaded
Sat,15 Mar 1997.00:37:02 Program !MathGame Started
Sat,15 Mar 1997.00:37:47
No Results for ADFS::HardDisc4.$.Rehab.!RehabData.!User000. were saved.
Thu,12 Jun 1997.07:32:51 Config file loaded
Thu,12 Jun 1997.07:35:50 Program !Anagram1 Started
Thu,12 Jun 1997.07:36:03
No Results for ADFS::HardDisc4.$.Rehab.!RehabData.!User000. were saved.
Tue,17 Jun 1997.07:28:20 Config file loaded
Tue,02 Sep 1997.10:48:54 Config file loaded
Tue,02 Sep 1997.10:49:01 Program !VocMatch Started
Tue,02 Sep 1997.10:49:44 Results for !VocMatch saved
Tue,02 Sep 1997.11:16:53 Config file loaded
Tue,02 Sep 1997.11:17:01 Program !Silly Started
Tue,02 Sep 1997.11:20:18 Results for !Silly saved
Tue,02 Sep 1997.11:25:41 Config file loaded
Tue,02 Sep 1997.11:25:50 Program !Silly Started
Tue,02 Sep 1997.11:28:32 Results for !Silly saved
Tue,02 Sep 1997.11:36:32 Config file loaded
Tue,02 Sep 1997.11:36:40 Program !Silly Started
Tue,02 Sep 1997.11:40:44 Results for !Silly saved
As you can see by examining this file, the 'system log' provides quite detailed and useful information
about the way and extent that any user makes of the system.
The file named CFG is the menu file produced at initialisation and altered with !MenuMaker. In the
example below, the user is allowed to choose from any of 29 named programs. In addition the path for
storing data (datapath) is passed.
#ID 000
#NAME Hutch Curry
#DATAPATH ADFS::HardDisc4.$.Rehab.!RehabData.!User000.
#PROGS 29
#1 !Anagram1
#2 !ColMatch
#3 !DesMatch
#4 !FaceMatch
#5 !Flash
#6 !Grafix
#7 !KeyFind
#8 !LocationL
#9 !LocationS
#10 !LocationT
#11 !MathGame
#12 !MemStory
#13 !ObjectNam
#14 !ObjectsL
#15 !ObjectsS
#16 !ObjLocL
#17 !ObjLocS
#18 !ObMatch
#19 !Pairs
#20 !PAL
#21 !Pelmanism
#22 !Pics
#23 !QCount
#24 !ReactTime
#25 !Silly
#26 !Snakes
#27 !Stories
#28 !Stroop_a
#29 !VocMatch
The programs for the Cognitive Rehabilitation System are stored in a pseudo application
directory called !CogProgs. Each of the programs has a name starting with '!' e.g. '!Amaze'. A typical
contents of !CogProgs is shown below.

The monitoring system software and a number of accessory programs normally reside in the
!CogTools directory. However the location of these programs is unimportant for their operation and they
may reside anywhere. A typical contents of !CogTools is shown below.

Operational details for both single and multi-user versions of the monitoring and menu making software (and !PatData) are in their respective manuals.