nnari.OZ.AU!comp.vuw.ac.nz!news.hn.netlink.co.nz!kcbbs!hbnews.kccs.co.nz!wn.planet.gen.nz!khantazi.wn.planet.gen.nz!banksie
Date: Fri, 1 Aug 1997 00:00:32 +1200
Subject: Comp.Sys.Acorn FAQ List Posting (Part 2/4)

Archive-name: acorn/faq/part2
Frequency: monthly

2.4) Are there any Acorn cards for IBM PC or compatible machines?

   Yes. Three cards in total :- 

 * Springboard. 
   ARM 2 processor.
   4096k Memory.
   8 MHz RAM.
   Brazil OS.

 * PC ARM development system. 
   Precursor to Springboard. Hardware functionally identical.

 * Ecolink. 
   An econet link card for the PC. 

----------------------------------------------------------------------------

2.5) What is a VIDC enhancer? Will I need one for my new multisync monitor?

   A VIDC enhancer is basically a clock change for your VIDC. Most Arcs (bar
the A540 and newer machines) have 24 MHz VIDC chips installed in them. A
VIDC enhancer increases this to 36 MHz allowing much higher resolution
screen modes to be displayed on your Arc. (800x600x16 or SVGA standard
becomes available.) You do not need one to use a Multisync monitor - the
standard VIDC handles that just fine. However having a VIDC enhancer is only
really useful if you do have a Multi-sync monitor. 

   Note a VIDC enhancer is unnecessary and incompatible with the RiscPC
range of machines. 
----------------------------------------------------------------------------

2.6) What configuration of serial cable should I use for modem work?

   Here follows a diagram of the necessary connections for common terminal
programs to work properly. They are as far as I know the informal standard
agreed upon by commercial comms software developers for the Arc. 

   Pins 1, 4, and 8 must be connected together inside the 9 pin plug. This
is to avoid the well known serial port chip bugs. The modem's DCD (Data
Carrier Detect) signal has been re-routed to the Arc's RI (Ring Indicator)
most modems broadcast a software RING signal anyway, and even then it's not
really necessary to detect it for the modem to answer the call.


 Arc (9 pin)                      Modem (25 pin)
 -----------                      --------------

 +---1---DCD
 |
 |   2---RxD------------------------RxD----3
 |
 |   3---TxD------------------------TxD----2
 |
 +---4---DTR------------------------DTR---20
 |
 |   5---0v-------------------------SG-----7
 |
 |   6---DSR------------------------CTS----5
 |
 |   7---RTS------------------------RTS----4
 |
 +---8---CTS

     9---RI-------------------------DCD----8
     
   Of course you can connect the Modem pin 20 to any one of pins 1, 4, or 8
on the Archimedes plug, as they are all connected together anyway. 

   Chocks Away Extra Missions (the flight simulator from 4th Dimension)
suggests that the serial cable be wired as above except that pins 1-4-6 are
connected together and the modem's CTS (pin 5) be connected to the Arc's pin
8 (ie the connections at pins 6 and 8 be swapped over at the Arc's end).
This has been tried and it also seems to work fine. 

   However newer Arc's like the A5000 have come out (and indeed the
occasional A310) with a `corrected` serial port. This newer serial port
operates as it should and is directly compatible with standard PC cables.
Older comms software about do not take this in account and assume that you
have a cable patched in the manner described above. If you do not use such a
patched cable on these `fixed` serial ports this software will generally
fail to work completely. (Usually hardware flow control fails.) 

   With the advent of the Risc PC a standard PC cable is advised. 
----------------------------------------------------------------------------

2.7) How can I get unfiltered sound from an Acorn machine?

   All Acorn machines are equipped with a sound filter designed to remove
high frequency harmonics from the sound output. However this does cause a
muffled feel to the sound as on some machines the filter is a little too
excessive and it filters out valid frequencies. Also the filter is optimised
for 20.833 kHz output and has less desirable results when the output rate is
changed. Accordingly people who do audio work often want to bypass the
filter. 

   On all machines bar the A3000 there is the Internal Auxiliary Audio
Connector (usually called link LK3), which can be easily plugged into to
provide the unfiltered output. This connector has 10 pins on it and is
usually found near the headphone socket on the motherboard. The pins are :- 

        1       Unfiltered Left
        2       Ground
        3       Filtered Left
        4       Ground
        5       Auxiliary Input
        6       Ground
        7       Filtered Right
        8       Ground
        9       Unfiltered Right
        10      Ground

Simply hook into the Unfiltered outputs. 

   On an A3000 you need two 10uF 16V ALEC capacitors. Look for chip LM324
(IC39) and hook the capacitors like this :- 

        Pin 1 --> --|+ |--- Unfiltered Left
        Pin 2 --> --|+ |--- Unfiltered Right

The Risc PC & A400 machines have a connector similar to the A5000. 

   There are several caveats to this procedure. Opening your machine may
void your warranty and most definitely should not be attempted if you are
unsure of the procedure. Do not unplug/plug the unfiltered audio output
while the machine is turned on, by bypassing the filter you also bypass the
normal protective circuitry for the audio output. 

   Finally you will hear higher harmonics present in the audio signal so you
will need to connect the signal to a filter of some kind to reduce this
extra noise. 
----------------------------------------------------------------------------

2.8) Can I connect a SCART monitor to my Acorn machine?

   If you have an older Acorn machine with a nine pin video socket, then yes
and here is the wiring diagram :-


    .------------------------.    Arc 9-pin plug
    \    1   2   3   4   5   /
     \                      /
      \    6   7   8   9   / Case
       '------------------'
        _____________________
       |19                  1|    SCART 21-pin plug
       | | | | | | | | | | | |
      /                      |
     / |  | | | | | | | | |  |
    /___20_________________2_| 21 (metal casing)

   A SCART connector is also known as a Euroconnector or a Peri-Television
connector. 

                Arc             SCART

Case            | ------------- 21              Case
Red             1 ------------- 15              Red
Green           2 ------------- 11              Green
Blue            3 ------------- 7               Blue
CSYNC           4 ------------- 20              Composite video input
Ground (0V)     6 -+---------+- 13              Red ground
Ground (0V)     7 -+         +- 9               Green ground
Ground (0V)     8 -+         +- 5               Blue ground
Ground (0V)     9 -+         +- 13              CVBS video ground

Ideally each ground wire should be linked to a separate Arc pin. Also,
depending on your SCART monitor, pin 16 may need a +5V input to it.
Unfortunately the Arc 9 pin socket does not provide a +5V output so this
will have to be sourced from somewhere else. 

   If you have a newer Acorn machine, with the 15 pin high density video
socket then you need this kind of wiring :-


       .--------------------.   15-pin VGA style plug
       \    1  2  3  4  5   /
        \ 6  7  8  9  10   /
         \ 11 12 13 14 15 /
          '--------------'

Connections:

Arc                               SCART

1 red ---------------------------- 15
2 green--------------------------- 11
3 blue---------------------------- 7
4 ID[2] nc
5 0V (test)
6 red rtn------------------------- 13
7 green rtn----------------------- 9
8 blue rtn------------------------ 5
                  75 ohms
9 +5V-------------/\/\/\/--------- 16
10 0V----------------------------- 17,18
12 ID[1]-------------------------- 8
11 ID[0] <--13 |
13 HSync -->11 |
                    120 ohms
14 CSync------------/\/\/\/------- 20
15 ID[3] nc

   Notice the two resistors. Also notice that the HSync output (pin 13) of
the 15-way plug has to be connected to the ID[0] input (pin 11) of the same
plug. (Be aware I have no direct confirmation that this wiring works .) 

   As is usual care must be taken when doing this procedure. Older Acorn
machine did not have their VIDC chips fully buffered and unplugging/plugging
cables from the video socket while the machine is turned on can cause damage
to the video circuitry. 
----------------------------------------------------------------------------

2.9) How do I make a Null modem cable?

   For starters you will need soldering skills and the necessary components.
Namely cable, connectors (9 pin female D-type), a soldering iron, solder and
the will to use them. All of these items, bar the will, can be found down at
the local electronic components store. Assuming you have them all then you
will need to decide what kind of machines you are hooking together. 

   There are three cases and I need to define a few terms. 

 * Archimedes is defined to be A300 series, A400 series (including the /I
   machines), R140, A540, A3000 (but not the A30x0 machines) and R260
   machines. 
 * RiscPC is defined to be both the RiscPC series but also the A5000, A4000,
   A30x0 & A4 machines. All of these machines have a 'PC Style' serial port
   that conforms closely to RS232 specifications. 
This means that if you are connecting your Acorn machine to a non Acorn
machine then generally treating the foreign machine as a RiscPC, in terms of
serial handling, will work. There are exceptions, Macintoshes in particular
have had non-standard serial ports and may require further research before
you can create a cable for them. 

   The cases are :- 

 * Archimedes to Archimedes 


 Arc (9 pin)                      Arc (9 pin)
 -----------                      -----------

 +---1---DCD                        DCD----1---+
 |                                             |
 |   2---RxD------------------------TxD----3   |
 |                                             |
 |   3---TxD------------------------RxD----2   |
 |                                             |
 +---4---DTR------------------------DTR----4---+
 |                                             |
 |   5---0v-------------------------0v-----5   |
 |                                             |
 |   6---DSR------------------------RTS----7   |
 |                                             |
 |   7---RTS------------------------DSR----6   |
 |                                             |
 +---8---CTS                        CTS----8---+
 |                                             |
 +---9---RI                         RI-----9---+

 * Archimedes to RiscPC 


 Arc (9 pin)                      RiscPC (9 pin)
 -----------                      --------------

 +---1---DCD                        RI-----9---+
 |                                             |
 |   2---RxD------------------------TxD----3   |
 |                                             |
 |   3---TxD------------------------RxD----2   |
 |                                             |
 +---4---DTR------------------------DTR----4   |
 |                                             |
 |   5---0v-------------------------0v-----5   |
 |                                             |
 |   6---DSR------------------------RTS----7   |
 |                                             |
 |   7---RTS------------------------CTS----8   |
 |                                             |
 +---8---CTS                        DSR----6---+
                                               |
     9---RI-------------------------DCD----1---+

 * RiscPC to RiscPC 


  RiscPC (9 pin)                   RiscPC (9 pin)
  --------------                   --------------

     2---RxD------------------------TxD----3
 
     3---TxD------------------------RxD----2
 
     4---DTR---------------------+--DSR----6
                                 |
     6---DSR--+                  +--RI-----9
              |                  |
     9---RI---+                  +--DCD----1
              |
     1---DCD--+---------------------DTR----4
 
     5---0v-------------------------0v-----5
                                
     8---CTS------------------------RTS----7
 
     7---RTS------------------------CTS----8

   Note that most PC compatible machines have 25 pin D type male ports for
their second COM port. You have two options in this case - either re-wire
the cable for the 25 pin port or you can buy a 9 to 25 pin converter plug.
Either solution works well. Here are the relevant pins for the 25 pin port :- 

  Pin No.  Function
  -------  --------
     8       DCD
     3       RX
     2       TX
     20      DTR
     7     GND (0v)
     4       RTS
     5       CTS

----------------------------------------------------------------------------

2.10) What are StrongARM dipswitch settings?

   The StrongARM card has a set of dipswitches on it that control the clock
speed of the processor. These can be altered but there are some important
caveats to mention first :- 

 * Don't change the links while the card has power. This can result in
   damage to your processor, always turn your machine off before changing
   settings.

 * By default two tracks on the back of the card constrain the card to never
   go faster than 202 MHz. Cutting these tracks invalidates your warranty,
   so only do this if you are prepared to replace the card.

 * The chip is officially rated for 202 MHz, running it faster than this
   speed can result in hardware damage to the processor and will shorten the
   chip's lifespan. Again, only do this if you are prepared to replace the
   card.

 * If you do cut the tracks remember that the card is a multi-layer one,
   cutting deeper may sever more tracks than you intended and render the
   card non-functional. 

   Without cutting the tracks, the dip switches can be used to slow the
processor down from 202MHz to 88MHz if required. Each switch sets one bit
making sixteen possible speed settings. This table summarises those speed
settings :- 

   Setting  Switch  Speed (MHz)
   ----------------------------
      0      uuuu       88.3
      1      uuuD       95.6
      2      uuDu       99.4
      3      uuDD      106.7
      4      uDuu      143.5
      5      uDuD      150.9
      6      uDDu      161.9
      7      uDDD      169.3
      8      Duuu      191.3
      9      DuuD      202.4
     10      DuDu      213.4
     11      DuDD      228.1
     12      DDuu      242.8
     13      DDuD      257.6
     14      DDDu      276.0
     15      DDDD      287.0

   u = up, D = down, MSB to the left.

(Thanks go to Dr. Nicko van Someren for this information.) 
----------------------------------------------------------------------------

Section 3: Configuration.

----------------------------------------------------------------------------

3.1) What is ADFSBuffers and what is the best setting for it?

   ADFSBuffers are Read Ahead and Write Behind buffers for ADFS on your
Archimedes. These are designed to improve the speed of filing operations by
doing work at optimum times. There are some side effects of using them
though. When active under RISC OS v2.00 and v2.01 discs must be dismounted
before being removed from the floppy drive. Failure to do so results in the
dreaded 'FileCore in use.' error. However if you are prepared to sacrifice
the speed improvement they give configuring the buffers to 0 does remove
this problem. (Or so I am informed.) 

   Under RISC OS v3.00, as supplied with the early A5000 machines, these
buffers generate a different problem and must always be configured off.
Failure to do so results in spurious errors when using the Hard Drive on an
early A5000. Symptoms include reformatting of crucial sectors of the disc,
disc address errors and general failure to save files to the drive. So when
using an A5000 with RISC OS 3.00 remember to configure them off! 

   With RISC OS v3.10 all of the old problems have been cured with a new one
introduced. Namely that if you have only a few ADFSBuffers configured and
are accessing the floppy drive then your machine can occasionally lock up
completely for you. It appears that any value of ADFSBuffers above 8 causes
that problem to be largely alleviated (read it only occurs rarely at these
settings). So under RISC OS 3.10 it is recommended that you set your
ADFSBuffers to 8+. There is a patch module available, called ADFSUtils, that
does fix this problem - contact your local dealer for a copy of it. 

   By default RISC OS 3.5 seems to have all of these problems cured and no
new bugs introduced. Under 3.5 the number of ADFSBuffers can be left at the
OS's discretion and generally the OS chooses a number based on the amount of
memory present in your RiscPC. Unfortunately this cannot be said of RISC OS
3.6, 3.7 or 3.5 using a softloaded copy of the 'extended' FileCore. When
running under these conditions if you have a hard drive partition larger
than 2 Gb then the buffers must be configured off to allow the drive to work. 

   As for the optimum settings for ADFSBuffers, from some speed tests
conducted on an A5000, then it has been observed that configuring the
maximum of 255 buffers increases drive access speeds by 40-50% (this varies
considerably with the type and make of drive) over accesses with no buffers
at all. However it achieves only a 15-20% gain over using 32 buffers. 

   All in all ADFSBuffers behave in a fashion standard for caches. Enlarging
the cache size does produce increasing gains, but they are increasingly
limited gains as the cache size enlarges. So 255 buffers is better than 128
buffers but not twice as good. However at the low end there does seem to be
a degree of synergy between the caches and the drive that means that 64
buffers is twice as good as 32 buffers. Accordingly I recommend that people
use at least 64 buffers, more if they can spare the RAM. 

----------------------------------------------------------------------------

3.2) How do I enable solid drags in RISC OS 3?

   Solid drags are controlled by bit 1 in byte 28 of the CMOS RAM. Setting
this bit enables solid drags on all solid drag 'aware' applications. However
setting this bit using a *FX command from the command line is a foolish way
to do it, as this will unset/set the other 7 bits in that byte which have
meaning to FileSwitch and the Wimp. Accordingly the recommended way to set
this bit is using a program like this BASIC one enclosed below :- 

   REM Toggle state of DragASprite bit in CMOS

   REM Read byte
   SYS "OS_Byte",161,&1C TO ,,byte%
   REM EOR byte with mask for bit 1
   byte% = byte% EOR %10
   REM Write byte back again
   SYS "OS_Byte",162,&1C,byte%
   END

Which safely sets bit 1 while preserving the settings of the other bits. 
----------------------------------------------------------------------------

Section 4: Hardware problems.

----------------------------------------------------------------------------

4.1) What do the hard drive error numbers mean?

   The error numbers returned indicate the type of error encountered.
Exactly why slightly more meaningful messages are not returned I am unsure.
The error codes meanings are as follows :- 

   ST506 error codes
   
   &01  ABT     Command abort has been accepted
   &02  IVC     Invalid command
   &03  PER     Command parameter error
   &04  NIN     Head positioning, disc access, or drive check before SPC has
                been issued 
   &05  RTS     TST command invalid after SPC
   &06  NUS     USELD for a selected drive has not been returned
   &07  WFL     Write fault has been detected on the ST506 interface
   &08  NRY     Ready signal has been negated
   &09  NSC     Seek completed (SCP) wasn't returned before a timeout
   &0A  ISE     SEK, or disc access command issued during seek
   &0B  INC     Next cylinder address greater than number of cylinders
   &0C  ISR     Invalid step rate: highest-speed seek specified in normal
                seek mode
   &0D  SKE     SEK or disc access command issued to drive with seek error
   &0E  OVR     Data overrun (memory slower than drive)
   &0F  IPH     Head address greater then number of heads
   &10  DEE     Error Correction Code (ECC) detected an error
   &11  DCE     CRC error in data area
   &12  ECR     ECC corrected an error
   &13  DFE     Fatal ECC error in data area
   &14  NHT     In CMPD command data mismatched from host and disc
   &15  ICE     CRC error in ID field (not generated for ST506)
   &16  TOV     ID not found within timeout
   &17  NIA     ID area started with an improper address mask
   &18  NDA     Missing address mark
   &19  NWR     Drive write protected
   
   IDE errors
   
   - As ST506, except:
   
   &02  IVC     Command aborted by controller
   &07  WFL     Write fault
   &08  NRY     Drive not ready
   &09  NSC     Track 0 not found
   &13  DFE     Uncorrected data error
   &16  TOV     Sector ID field not found
   &17  NIA     Bad block mark detected
   &18  NDA     No data address mark
   &20          No DRQ when expected
   &21          Drive busy when commanded
   &22          Drive busy on command completion
   &23          Controller did not respond within timeout
   &24          Unknown code in error register

----------------------------------------------------------------------------

4.2) What can I do with a 'Broken Directory' or a corrupt Free Space Map?

   There are various programs out there now which fix this problem. The PD
ones all are 'caveat emptor' programs but are worth trying if you vitally
need to recover some files, or just don't have the floppy disc/streamer
space to back your drive up. 

   In the FAQ maintainer's experience the utility 'fsck' (a shareware
utility available at good FTP sites near you) works reliably and well. The
distribution version does not work with the new FileCore but by registering
you can obtain a version that does repair the newer format discs. Fsck has
now spawned a commercial version, called Disc Doctor, which not only handles
all disc formats but allows the undeleting of files as well. Contact Oregan
Developments for more information on Disc Doctor. 

   Another shareware tool is DiscEdit - strictly speaking it is a disc
sector editor but it also contains routines for directory repair. Even so it
is recommended that if you have critical data on your drive you should use
one of these tools to recover the data and then reformat the drive. 
----------------------------------------------------------------------------

4.3) What does the power on self-test check?

   The power on self test was introduced with RISC OS 3.0 and later versions
of the OS. On power up your machine checks the hardware for physical faults
before letting you use it, hopefully signalling important errors to you
before further hardware damage can result. 

   The purple screen at power on indicates that the self-test has begun. A
brief ROM, RAM, VIDC and IOC test is performed and then the screen colour
changes to blue and a limited memory test [1] is performed, along with a
second test of the VIDC and IOC. When the screen returns to purple, the
machine is testing for an ARM3 (or better). At the end of this sequence the
screen colour is set to green (for pass) or red (for fail). If the tests
have all passed then the machine starts to boot and the RISC OS 3 welcome
screen is displayed. 

   If any test fails, the screen will remain red and the disc drive light
will blink a fault code. A short flash is used to indicate a binary '0' and
a long flash indicates a binary '1'. The bits are grouped into eight nybbles
(blocks of four bits) with the most significant bit first. 

   The lowest seven bits are a status word. The meaning of each bit is given
below in hex :-


00000001   Self-test due to power on
00000002   Self-test due to interface hardware
00000004   Self-test due to test link
00000008   Long memory test performed
00000010   ARM ID detected (ARM 3 fitted for non-RiscPC hardware)
00000020   Long memory test disabled
00000040   PC-style IO world detected
00000080   VRAM detected

   Bits 8-31 indicate the fault code and are described below. Not all the
bits are used. If the code is marked as reserved on the RiscPC this means
that error number is currently either unassigned or it's meaning on older
hardware is no longer sensible for the newer machines (and thus it's meaning
may be reassigned on the newer versions of the OS.)


00000100   CMOS RAM checksum error
00000200   ROM failed checksum test
00000400   MEMC CAM mapping failed (A reserved code on the RiscPC)
00000800   MEMC protection failed (A reserved code on the RiscPC)
00001000   (A reserved code on the RiscPC)
00002000   (A reserved code on the RiscPC)
00004000   VIDC Virq (video interrupt) timing failed
00008000   VIDC Sirq (sound interrupt) timing failed
00010000   CMOS unreadable
00020000   RAM control line failure
00040000   Long RAM test failure
00080000   (A reserved code on the RiscPC)
   Some third party VIDC enhancers on older hardware trigger the self test
to fail. If you are getting a failed self test with a VIDC enhancer, yet the
machine is working fine, enter and run this BASIC program and then save your
CMOS settings :- 

   REM Toggle state of power on self test bit in CMOS

   REM Read byte
   SYS "OS_Byte",161,&BC TO ,,byte%
   REM EOR byte with mask for bit 1
   byte% = byte% EOR %10000000
   REM Write byte back again
   SYS "OS_Byte",162,&BC,byte%
   END


This modifies the self test to cope with the VIDC enhancer. 

   [1] By limited it meant that it verifies the VRAM, if present, and checks
the first 4 Mb of RAM in the machine. (Or so I am told.) 
----------------------------------------------------------------------------

4.4) My Real Time Clock has paused, how do I restart it?

   This is a problem caused most often by 'rogue' software chatting to the
IIC bus and incorrectly setting the pause bit on the RTC control register.
Symptoms of this happening are that the time is always the same every time
you reboot and the software clock tends to run slightly slow (losing about a
minute every hour or so.). If you are experiencing these symptoms this
program should restart your RTC clock :- 

REM poke RTC control register
REM  Bit   0         1
REM   7   Count  ResetDivider
REM   6   Count  HoldLastCount
REM write 0 for normal operation, write &80 or &40 freezes RTC
DIM cmosdata% 16
!cmosdata%=&00000000
REM write 0 twice to RTC, first 0 is address- control reg
REM second is control reg value 0 is default i.e. clock on
SYS &240, &A0, cmosdata%,2
END

You will need to reset the time after running this program but hopefully
your RTC will keep the correct time from here on in. 

   If the same symptoms persist after trying this program contact your local
Acorn dealer as something more serious has gone wrong. Note that to check
that the symptoms are persisting you must reboot your machine after running
this program and having set the time. This is due to the way RISC OS
maintains a 'soft' copy of the real time clock and until you reboot it will
not be obvious whether your RTC has indeed started working again. 
----------------------------------------------------------------------------

4.5) Why doesn't *Speaker work on my machine?

   The *Speaker command does not work on new models of Acorn machines. The
A300, A400, A3000, A540, A5000 and A4 all had software control of the
built-in speaker. With newer machines this feature has been removed in
favour of a automatic hardware cut off of the speaker when a jack is
inserted into the sound socket on the machine. 

   However to ensure compatibility with old software the command *Speaker
has been left in the OS, it merely doesn't do anything. 
----------------------------------------------------------------------------

4.6) What can I do about my fan making excessive noise starting up?

   This is a problem primarily with the RiscPC machines caused by the fan
lubrication drying out. Symptoms generally include the fan making a lot of
noise when the machine starts and then, once warmed up, the noise going
away. Progressively the amount of warm up time gets longer and longer. 

   The solution, and this should only be attempted if you are confident in
handling your machine's internal components, is to strip the machine down to
it's base slice. Remove the label from the fan and the rubber bung from the
bearing. Place a drop of three-in-one oil (and not WD40) on the bearing.
Replace the bung and reassemble the machine, your problem should be cured. 
----------------------------------------------------------------------------

Section 5: Software Issues.

----------------------------------------------------------------------------

5.1) Why does DOSFS corrupt my files occasionally?

   Under RISC OS 3 DOS, and indeed with any other ImageFS filing system,
discs are treated as one large file and ADFS applies write-behind caching to
nearly everything it does. (See the question on ADFSBuffers for more details
about this.) This means while working on a DOS disc the entire disc is
treated as one large open file. 

   However as long as a file is held open the cache is not flushed out fully
till the machine is explicitly told to do so. This means when working with
non-ADFS format discs always dismount them before removing them from the
drive. With ADFS format discs this is not so critical, as files aren't held
open during most operations on them, but it is good to get into the habit of
dismounting floppy discs. 
----------------------------------------------------------------------------

5.2) Where can I obtain the latest version of module X?

   All patch modules, official Acorn OS extensions and the like can be
sourced from the Acorn ftp sites. Ideally your dealer will also have copies
of them too and you should be able to obtain them from them. (If they don't
you may like to pass on the ones from the ftp site, if you request them, so
that they are up to-date.) 
----------------------------------------------------------------------------

5.3) What are the current File-type allocation ranges?

   Acorn have reallocated the File-type ranges for applications. The new
ranges are :- 

  Non-user area

    &E00-&FFF   Acorn
    &B00-&DFF   Commercial software
    &A00-&AFF   Acornsoft, and other commercial software
    &400-&9FF   Commercial Software

  User area

    &100-&3FF   Non-commercial distributed software (ie PD)
    &000-&0FF   User's personal usage (ie non-distributed)

75% of the user area is for PD/Shareware, with allocations co-ordinated by
Acorn. If your software is going to be distributed, you should have an
allocated filetype to avoid clashes. 

   Acorn cannot publish it's master list of filetypes because, at any given
time, it will contain allocations made for products which have not yet been
announced. Therefore, Acorn would be in breach of confidence by doing so -
and the editing overhead for producing a sanitised list is too great. 

   However, all is not lost. Denis Howe maintains an unofficial list of
filetype allocations. This can be found at
http://wombat.doc.ic.ac.uk/acorn/doc/filetypes and includes details about
whether the allocation is an official one, a de facto one and what the file
contains. 
----------------------------------------------------------------------------

5.4) Is there a Modula 2 compiler for the Arc?

   Currently, no. Acorn did have, in the early days of the experimental ARM
work, an in house compiler. However this compiler was sufficiently unstable
and buggy to be un-releasable as commercial product and was only used
because in house support was available immediately to the users of the
compiler. When Olivetti invested in Acorn this technology went to them so
that Acorn no longer have even an in house Modula 2 compiler. 

   However some companies have stated intentions to produce Modula 2
compilers for the Arc. Whether these intentions become reality has yet to be
seen. 
----------------------------------------------------------------------------

5.5) What Public Domain Languages are available for Acorn machines?

   The answer to this is a list that is maintained by Gavin Wraith
(gavin@wraith.u-net.com). Accordingly updates, corrections and other
comments should all be sent to him. 
----------------------------------------------------------------------------

May 1997
This is a (necessarily partial) list of freely available programming
languages and programming tools for Acorn Risc OS computers. Some of the
items are in the public domain, some are not. I am well aware that many of
the items are also available in many other places. I will be grateful to
receive emendations and further items. Remember that hensa is mirrored at 

ftp://ftp.doc.ic.ac.uk/computing/systems/archimedes/collections/hensa/riscos 

   gavinw@sussex.ac.uk. 
----------------------------------------------------------------------------

Menu 

 * Further information 
 * Imperative Languages 
 * Object Oriented Languages 
 * Declarative Languages 
 * Forths 
 * Lisps 
 * ARM Object Code Assemblers 
 * AOF Tools 
 * Miscellaneous 

----------------------------------------------------------------------------

Further information 

 * Higher Education National Software Archive (Hensa). 
 * List of free compilers and interpreters maintained by D.Sharnoff and
A.Robenalt, and regularly posted to comp.compilers. Do not expect to find
anything specifically for ARM machines. 
 * Acorn FAQ. 
 * Compiler tools. 
Return to menu. 
----------------------------------------------------------------------------

Imperative Languages 
ADA bytecode interpreter From
ftp://micros.hensa.ac.uk/micros/arch/riscos/c/c052. ADA GNAT 3.01 compiler
From ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e095. ALGOL 68S From
ftp://ftp.cs.man.ac.uk/pub/chl/A68S CHARM From David Pilling ICON 9.1 By ftp
from ftp:cs.arizona.edu. or
ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e116. G77 0.5.19 GNU FORTRAN
From ftp://ftp.sp.ph.ic.ac.uk/pub/tsh/fortran.zip. From
ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e167. GCC GCC 2.7.2 GNU C,
C++, Objective C Compiler, release 1.0.7 From
ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b013. OBERON POT 1.33
(Portable Oberon Translator) From
ftp://micros.hensa.ac.uk/micros/arch/riscos/d/d132. PASCAL PC 4.09 Norcroft
DDE Compiler From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a122. 
PASCAL GPC 1.0.2 - Gnu Pascal Compiler From
ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e168. PERL 5.01 From
ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a049. PYTHON 1.42b From
ftp://ftp.infc.ulst.ac.uk/pub/users/chris RLAB 1.25 From
ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e022. TCL 7.4 From
ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e057. Return to menu. 
----------------------------------------------------------------------------

Object Oriented Languages 
ARMBOB 2.1 From ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b178. GC++ GNU
C++ 2.7.2 From ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b013. GNUST
1.1.1 Smalltalk-80 From ftp://micros.hensa.ac.uk/micros/arch/riscos/c/c045.
GRS From ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b062. LITTLEST 0.0
Little Smalltalk From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a102.
OBJECTIVE C GNU 2.7.2 From
ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b013. SATHER ISCI Sather 1.1
Mail to Peter Naulls SQUEAK Smalltalk 1.18 From
http://sumeru.stanford.edu/tim/pooters/squeak.html Return to menu. 
----------------------------------------------------------------------------

Declarative Languages 
BIBPROLOG 3.30 From ftp://micros.hensa.ac.uk/micros/arch/riscos/d/d005.
GOFER 2.30a (GoOd For Equational Reasoning) From
ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a262. See comp.lang.functional
FAQ. HOPE 4.02a From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a139.
HUGS 1.3 (Haskell Users Gofer System) From
ftp://micros.hensa.ac.uk/micros/arch/riscos/d/d041. See comp.lang.functional
FAQ. HU-PROLOG 1.62 Humboldt University Prolog From
ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e062 SML 4.0.01 Edinburgh
Interpreter From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a216. Return
to menu. 
----------------------------------------------------------------------------

Forths 
AFORTH 0.70 From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a293.
FORTHMACS 3.1 From ftp://micros.hensa.ac.uk/micros/arch/riscos/c/c073.
TILEFORTH 2.1 Portable C implementation From
ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a111. WIMPFORTH 1.0 From
ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e096. Return to menu. 
----------------------------------------------------------------------------

Lisps 
CLISP 01.01 Common Lisp From
ftp://micros.hensa.ac.uk/micros/arch/riscos/c/c189. FOOLSLISP 1.3 From
ftp://micros.hensa.ac.uk/micros/arch/riscos/c/c162. GNU SCHEME From
ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b105. SIOD 2.90 (Scheme In One
Defun) From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a275. Also see
George Carrette 's site. XLISP 1.60 From
ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a103. XLISP+ From
ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b076. Return to menu. 
----------------------------------------------------------------------------

ARM AOF Assemblers 
AOFLIB 0.07 create AOF files with the Basic Assembler. From
ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e108. AS 1.26b From
ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a132. ASM 2.01 From Plasma
Sphere BBS (tel.+44 1925 757920/1) EXTASM 1.00 From
ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b120 TLA 0.2a (The Last
Assembler) From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a119. Return
to menu. 
----------------------------------------------------------------------------

AOF Tools 
ADDFILE 0.05 From Plasma Sphere BBS (tel.+44 1925 757920/1). Embed data in
AOF files. DECAOFB 1.00 - decode AOF files. From
ftp://micros.hensa.ac.uk/micros/arch/riscos/d/d038. DISASMAOF 1.31 From
Archinet BBS (+44 1233 665918)- disassemble AOF file to Objasm source. From
ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b154 DRLINK 0.28 Linker From
ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b071 and From Plasma Sphere
BBS (tel.+44 1925 757920/1). MAKEALF 1.03 - tools for Chunk files. From
ftp://micros.hensa.ac.uk/micros/arch/riscos/d/d039. Return to menu. 
----------------------------------------------------------------------------

Miscellaneous 
J 6.2 (APL-like language) From
ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a165. Return to menu. 
----------------------------------------------------------------------------

----------------------------------------------------------------------------

5.6) Why does the RO3.5 desktop sometimes revert to the system font?

   This is due to a bug in the RISC OS 3.5 Wimp module. Applications that
have outline fonts in their icons and a validation string of R5 or R6
(slabbed icon) will trigger this bug and cause the desktop to revert to the
system font. There are two solutions to this problem depending on your level
of computer literacy. 

   The easiest solution, for people who are very shy of template editors, is
to complain to the author(s) of the application about this problem and get
them to fix it. If you are not shy of template editors you could also go in
and edit the applications templates so that none of the slabbed icons have
outline fonts in them. 
----------------------------------------------------------------------------

5.7) Why does ChangeFSI display a blank white window, not an image?

   Version 1.13S of ChangeFSI now has the RISC OS 3.6 JPEG support built
into it. However the code has been designed to fail ' gracefully ' if the
support code is not available in the OS. For instance when you run the
software on versions of the OS older than RISC OS 3.6. In this case a blank
white window is displayed. 

   To regain normal use of ChangeFSI go to the main menu and select Sprite
Output instead of JPEG output. Next time you load a picture, or re-process
the current one, an image will be displayed. The JPEG Output option is not
greyed out because even though no image is displayed you can still save the
processed file as a JPEG. 

   For those of you with RISC OS 3.5 the module can be obtained from Acorn's
FTP sites at :-

ftp://ftp.acorn.co.uk/pub/riscos/releases/spriteextend.arc 

Or if you are in New Zealand :-

ftp://ftp.acorn.co.nz/pub/riscos/releases/spriteextend.arc 

This can be softloaded in your Boot.PreDesk sequence to use it. 
----------------------------------------------------------------------------

5.8) What causes the 'nager:Sprites22' error?

   This is both a tricky and simple question to answer. The cause of the
error is unknown, but something is erroring. However rather than displaying
the error message RISC OS has a subtle bug in it that causes it to display
the above error message instead. The sequence goes like this :- 

 * An error occurs. 
 * The wimp realises it needs to load the hi-res toolsprites & loads them. 
 * The wimp then displays the error message. 

   Unfortunately the process of loading the his-res toolsprites over-writes
the buffer containing the original error block. (IE the block of memory with
the error number and error message in it.) What it overwrites it with is the
string 'WindowManager:Sprites22', which is a path reference to where the
hi-res toolsprites are to be found. 

   This error has been corrected in RISC OS 3.60 and, presumably, future
versions of the OS. (Thanks go to Alan Glover for this information.) 
----------------------------------------------------------------------------

Section 6: Viruses.

----------------------------------------------------------------------------

6.1) How can I protect against viruses?

   Pineapple Software have produced a program called !Killer, which is the
definitive means of checking for or killing viruses. See the next question. 

   Other than !Killer there are one or two commercial virus killers.
SmartKill is one of these and information about it can be obtained from
MGResearch. See section 6.2 for a listing of various virus killers and where
to obtain them. 

   There are also a few PD programs around, but these tend to detect only a
small subset of the viruses in circulation. !VKiller used to be OK, but it
is no longer maintained, is now seriously out of date and fails to work
under RISC OS 3. Out of the PD virus utilities the current best is Tor
Houghton's Scanner. This detects most known viruses and removes quite a few
as well and serves as a good secondary defence if Killer is unavailable to
you. Scanner should be available on various FTP/Email servers. 
----------------------------------------------------------------------------

6.2) Where can I obtain a virus killer?

   Various virus killers are out there. Here is a, probably incomplete, list
of those available. 

 * Killer 

   Killer is distributed by Pineapple Software. Who can be reached at :- 

     Suite 13/14,
     South Park Business Centre,
     310 Green Lane,
     Ilford,
     Essex IG1 1TX,
     England.
     Tel. +44 (181) 599 1476  Fax +44 (181) 598 2343
     via email :-
     sales@pineaple.demon.co.uk
     support@pineaple.demon.co.uk
     virus@pinesoft.demon.co.uk
   
   Or if you need a German version of the program you can contact Uffenkamp
Computer Systeme at :- 

      Gartenstr. 3,
      D-32130 Enger.
      Tel. +49 (5224) 978075 Fax +49 (5224) 978076
      via email :-
      ucsorder@ucs.de
      usupport@ucs.de
   
   Early versions (up to 1.26) are PD, but should not be used now as they
are ineffective against the new crop of viruses that have subsequently
appeared since it's release. 

   It is the FAQ maintainer's opinion that this is the commercial virus
killer to buy.

 * SmartKill 

   This is a commercial product put out by MGResearch. They can be reached
at :- 

      MGResearch, 46 Corringway, Church Crookham, Fleet, Hants, GU13 OAW,
         England.
   
   As far as I am aware no PD version of this has been released.

 * VZap 

   This is a shareware product released by Paul Vigay. Copies of it can be
obtained from either the Arcade BBS, Paul's own BBS Equinox ( UK 01705
871531 ) or from Paul's www site
http://rainbow.medberry.com/enigma/shareware.html. 

----------------------------------------------------------------------------
