System requirements of ARM Tube OS binary
Greg Cook, 8 March 2021

CRC RevEng has been tested on a 16MB SPROW ARM7TDMI Coprocessor running
ARM Tube OS version 0.45, with OS 1.20 on the host.  Installation on
disc is strongly recommended.
The following filing systems are known to be compatible:-

- Opus EDOS 0.4, patched by EDOSPAT versions 4.90, 5.64 or 7.04
- Opus DDOS 3.15 and higher with DFSfix installed (see below)
- Slogger Challenger 1.03 or 2.00 with Chafix installed (see below)
- Acorn DFS 1.20/1.21 (part of DNFS 3.00/3.01) with DFSfix installed
- Acorn DFS 2.26, as supplied with the GoMMC interface (PDFS226.BIN),
  with DFSfix installed

Although DDOS and Challenger serve RAM discs, the CRC RevEng image
must be loaded from floppy disc on these systems.

To load and run the ARM Tube OS binary successfully, the Disc Filing
System (DFS) on the host computer must support at least the following:
- Full 32-bit address handling within *RUN (image loading and execution)
- Ability to load images >64 KiB to the coprocessor.
- Tolerance of OSARGS calls with A=2, Y=0 (read NFS version).
- The functions performed by DFSfix must be implemented, either as
  faithful emulations of RISC OS or by translation to similar existing
  calls.

Running CRC RevEng

As an 'absolute' application, CRC RevEng cannot be called from within
BBC BASIC.  CRC RevEng must run in the Supervisor.  To abandon BBC BASIC
(losing the current BASIC program and environment) and launch the
Supervisor, enter:-

	*GOS

CRC RevEng can then be run as a *command, or explicitly as an object:

	*reveng -h
	*Run reveng -m crc-64/xz -d

Once CRC RevEng has been loaded, it can be invoked or reinvoked without
reloading the image, using *Go:-

	*Load reveng
	[exchanging discs]
	*Go ; -m crc-32/iso-hdlc -A 32 -c -X -f r.dfsnet

	*reveng -h
	*Go ; -m crc-16/ibm-sdlc -c 313233343536373839

Estimated brute force search times, including loading time, and progress
report intervals on the SPROW ARM7TDMI Coprocessor are as follows:-

CRC	Codeword	*Cache On	*Cache Off
width	lengths		Runtime	Reports	Runtime	Reports
(bits)	(bytes)

32	5,5,6		    9s	     -	     9s	     -
32	8,8,7		15h06m	56m36s	120h53m	 7h33m
32	9,9,8		31h07m	58m20s	259h04m	 8h06m
64	12,11,12,12,17,	   45s	     -	  5m09s	     -
	11,12,8,9*

*First nine codewords from the CRC-64/XZ entry in the CRC Catalogue.

The ARM Tube OS binary also runs as a statically-linked image under
RISC OS, at twice the size of the RISC OS binary.

ANSIlib is provided by RISC OS Open Limited for testing purposes only,
and so neither the availability of the ARM Tube OS binary nor its
compatibility with either ARM Tube OS or RISC OS are guaranteed.  See
Documents.DDE.32bit.Intro in the DDE distribution.

DFSfix and Chafix

These are small utilities for the BBC Micro computer which intercept
filing system calls to Acorn DFS and certain third-party DFS ROMs, to
provide an enhanced filing system interface.
The new interface is useful to all programs, but when a simple
RISC OS program using the ANSI C Library is run on an attached SPROW
ARM7TDMI Coprocessor with its built-in ARM Tube OS firmware, DFSfix
emulates just enough of RISC OS's FileSwitch API for the program to
read and write files on Acorn DFS discs through the ARM Tube OS.

DFSfix is only for use with Acorn DFS and Opus DDOS.
Chafix is only for use with Slogger Challenger.

To install DFSfix, enter the following (once) after pressing BREAK:

	*dfsfix

The supplied binary is assembled to reside in the sector buffer of
file handle &15.  This preserves compatibility with all the BBC Micro's
facilities, as long as at most four files are opened simultaneously -
a limit seldom reached in practice.

To install Chafix, enter the following (once) after pressing BREAK:

	*chafix
	*FX18

The supplied binary is assembled to reside in the user-defined character
area, where it occupies the locations defining characters 128 to 154
(and their aliases).  Depending on the font explosion state, at least
five user-defined characters remain free.  The installer uses the soft
key area temporarily and the *FX18 command resets the soft keys to their
initial state.

The assembler program listing for DFSfix and Chafix is included, to
allow reassembly to another base address or selection of extended
features.  Assembly options are documented in the listing.
