This article is from the comp.sys.acorn FAQ, by Paul Vigay with numerous contributions by others.
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