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
Return to the index.

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.

Another commercial disc repair application is available from Look Systems, called ADFS Rescue which is also recommended.

Return to the index.

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.)

Return to the index.

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.

Return to the index.

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.

Return to the index.

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.

Return to the index.

Return to Index page
Comments and Feedback