Appendix 1: Technical Notes and Reference

Appendix 1.1: Production Notes Relating to this Thesis

This thesis was produced on my own Acorn A5000 computer using TechWriter version 2.00. Figures are either Acorn 'sprites' or Acorn 'draw' files - in the case of the sprites they are generally 8-bits deep with 24-bit grey scale palettes (i.e. 256 levels of grey). The majority of diagrams have been produced by hand using Acorn Draw.

Figures 3.9, 3.12 and 3.13 were created using the screen save utility in HV-2 and are 64-level 'false grey' images, that is they contain colours which map onto a linear grey scale when printed or displayed on a monochrome monitor (see Section 3.4.1).

Figure 3.15 was created by using the system command *SSave to save the system sprite area after breaking into the HV-2 program by pressing Escape during a spin analysis session (Section 3.6.6). The individual 'false grey' images were then imported one at a time into Acorn Draw before being incorporated into the film strips.

Figure 4.11 was scanned from an original 6" ´ 4" colour photograph using an Apple 8-bit monochrome scanner and translated from a TIFF file into an Acorn sprite using ChangeFSI version 0.95. No gamma correction or post-processing was required.

Figures 5.2, 5.3 and 5.7 were 'cut' onto a Kodak Photo CD from the original 35mm colour negatives and exported via PhotoView version 0.09 in the form of 32-bit Acorn sprites, then translated into 8-bit grey-scaled sprites, with a gamma correction of 1.2, using ChangeFSI version 0.95. Finally they were processed slightly (brightness and contrast adjustments) using Process version 1.15 in order to look acceptable in 300 dpi laser prints.

Appendix 1.2 Some Specially Useful Features of Acorn RISC OS

A number of features of Acorn RISC OS make the Archimedes and A5000 range of computers very suitable for this project. The most important are detailed below with a brief description of their usefulness in the software developed for this research programme. As well as providing a background for those unfamiliar with Acorn RISC OS, this should also allow any other researchers to more easily translate the software to run on other machines.

Sprites: These are the native 'bit mapped' picture elements under RISC OS. A range of utilities for sprite manipulation are provided within the operating system and BASIC V - the latter take the form of PLOT commands with special action codes. The built-in sprite functions and PLOT codes have been used to to provide a mini animated display in the spin analysis animation of HV-2 (PROCspin_analysis, line 17230, Appendix 4) as described in Section 3.6.6. The approach used here was that the sprites were stored in the 'system' sprite area; this has the disadvantage that they are in the shared memory area which has to be of a fixed size once the program is run. In HV-3, on the other hand, sprites are stored in a 'user' sprite area, the size of which is flexible. Access to the user sprite area in HV-3 is more extensive but must be effected using software interrupt (SWI) calls available via "OS_SpriteOp". This is described on page 1-761 of the RISC OS 3 Programmer's Reference Manuals.

Application shells and !RunImage files: Within the Acorn desktop environment, programs can be grouped within 'application shells', which are directories with names which start with an exclamation mark. Each application shell has an icon associated with it as well as a number of small files and the main program file, usually called !RunImage. The exclamation mark signifies to the file system that the file is associated with an application shell. An example of an application shell is !MultiGrab; its icon and annotated filer window are shown in Fig. A1.

The small files called !Boot, !Run, !Sprites and !Sprites22 are intrinsic parts of the application shell - they allow the programmer to set memory arrangements or screen mode (for example) before the main program is run. More information can be found in the RISC OS 3 User Guide and Programmer's Reference Manuals.

Figure A1: A screen shot of part of the desktop showing part of the main program folder (top window) and the application shell (lower window) which contains the MultiGrab program, in the form of the !RunImage file, together with its associated small files. The MultiGrab icon is intended to represent the video sync pulses which are used to digitise multiple video frames.

BASIC's In-Line Assembler: This extremely useful feature of BBC BASIC V allows one to include assembly language source code within BASIC programs and compile it at run-time using BASIC's variables, PROC and FN utilities as well as conditional assembly and in-line looping (by including a FOR .. NEXT loop within the assembler). These features have been very important in the process of developing fast screen redraw routines and so on. For examples, see PROCasm_flexiplot (line 18260) and PROCasm_decompress (line 17460) in HV-3 (Appendix 5).

Appendix 1.3 Comments on the Program Listings

All programs produced for this research project have been written in BBC BASIC V. Some of these progams include machine code sections, for maximum speed of execution; for instance the screen redraw code in HV-2 and HV-3. The machine code sections appear as numbered lines of BASIC code, usually with one instruction per line. Generally the process of assembling the machine code has been handled at run-time by procedures called PROCasm_codename where 'codename' is the name of the specific function required. An example is 'decompress' in the program HV-1.

Programs in this appendix have been indexed by procedure (PROC) name, with respect to the logical line numbers. The lines numbers are generally arbitrary except in a few cases where DATA statements are pointed to by line-specific RESTORE commands.

Each program listing consists of an initial index followed by the main listing. Listings of main program code are printed in two-column format in 7 point fixed space Courier font, and should thus be amenable to reading by any Optical Character Recognition (OCR) application assuming that this OCR package can be set to recognise the font and character set. Only ASCII-compatible characters have been used.

Copies of this software are of course available on disc from the author, though no assumptions can be made concerning the suitability or otherwise of this software for use in a particular system, and no responsibility is taken for any damage or loss of data as a result of the use or misuse of this software or any part of it.