エラー発生時に表示される番号は、エラーの種類を表しています。 何でこんな不親切なことをしてるのかはよく知らないんですが。 エラーコードとその意味は次のようになっています :-
ST506 のエラーコード &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 のエラーコード - ST506 と同じだが、以下の部分が異なっている: &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
こういう症状を直すためのプログラムは色々あります。 Public-Domain なものの一つに 'caveat emptor' というのがあり、これはファイルを修復したい場合や、ハードディスクのバックアップを取りたいのだけどフロッピーディスクやストリーマーを持っていない場合に役立つツールです。
FAQ 作成者としては、 'fsck' というユーティリティ( FTP サイトにあるシェアウェアです)が信頼性も高く、お勧めです。 配布されているバージョンを新しい FileCore で使用することはできませんが、レジストを行うことで使用することができるようになります。 現在、 fsck は商用ソフトウェアとなり、 Disc Doctor という名称になっています。 これはさまざまなフォーマットのディスクを扱えるだけでなく、謝って消去してしまったファイルを復活させる機能も持っています。 Disc Doctor については、 Oregan Developments へお尋ねください。
シェアウェアをもう一つ挙げると、 DiscEdit というのがあります。 厳密に言うとこれはディスクのセクタを編集するものになるのですが、ディレクトリ修復の機能も持っています。 重要なデータの入っているハードディスクがクラッシュした場合、これらのツールがあればデータの救出を行った後に再フォーマットを行うことができるので、何か一つ持っておくと良いでしょう。
商用ソフトウェアとして売られているディスク修復ツールは他にもあり、 Look Systems の ADFS Rescue というものがあります。これもお勧めです。
私が作成している Disc Commander は、バッドセクタの編集を手で行うためのツールです。 RISC OS 4 の、 F+ フォーマットのディスクを扱うこともできます。 しかし、これはディスクの自動修復機能を持っておらず、手作業で修復することに慣れた人向けのものです。
残念なことに、この FAQ を書いている時点 (訳者注: 1-Apr-2000)では、 RISC OS 4 で 'broken directory' を修正するためのソフトウェアはありません。 近いうちに出てくるといいのですが。
RISC OS 3.0 以降では、 power on self test を行うようになりました。 マシンの電源を入れた時にハードウェアが物理的に壊れていないかどうかのチェックが行われ、致命的な物に関してはこの時点でエラーを報告します。
電源投入時に紫色の画面になりますが、 これが self-test を行っている状態です。 まずは簡単に ROM, RAM, VIDC そして IOC のテストが行われ、この後に画面が青色になって limited memory test [1] 、およびと VIDC と IOC の second test が行われます。 これが終了すると画面は再び紫色に戻り、 ARM3 (およびそれ以降のプロセッサ)のテストが行われます。 これらのテストが終了後、画面の色は緑色(問題が無かった場合)もしくは赤色(問題があった場合)になります。 テストが全て問題無く終了すれば、 OS が起動して RISC OS 3 の welcome screen が表示されます。
テストのどこかで問題が見つかった場合、画面は赤色になってディスクドライブの LED が点滅して fault code を知らせます。 LED が短く光った場合は二進数の「0」を、長く光った場合は「1」を意味します。 Fault code は 8 ニブル( 1 ニブル = 4 ビット)あり、最上位のビット (MSB) から点滅を始めます。
下位 7 ビットはステータスを示しています。 各ビットの意味は以下の通りです。 :-
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
8 〜 31 番目のビットは下に示すような fault code です。 全てのビットが使用されている訳ではありません。 Reserved on the RiscPC となっている部分は、この部分に fault code が割り当てられていないか、もしくは古いハードウェアでは割り当てられていたものの現在では使用されていない code を意味します(新しいバージョンの RISC 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)
古いハードウェアにサードパーティー製の VIDC enhancer を載せることで、 self test に失敗することがあります。 もし、 VIDC enhancer を載せた状態で self test に失敗したもののマシンがきちんと動作しているようであれば、下の BASIC プログラムを実行させて CMOS の内容を変えておくと良いでしょう。 :-
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
これで、 VIDC enhancer を使用しても self test に失敗しなくなります。
[1] limited となっているのは、 VRAM が存在した場合はこれをチェックし、またマシンの最初の 4MB の領域をテストするからです(と私は聞いています)。
これは、「いい加減な」ソフトウェアが IIC (訳者注: I2C )バスを使用し、 RTC のコントロールレジスタをいじってしまうことで起こります。 これによって、マシンを再起動した場合に表示される時刻がいつも同じで、 software clock が微妙に遅くなる(一時間に一分程度遅れる)という症状が発生します。 もしこのようなことが起こった場合、次のプログラムを実行して RTC を再起動させましょう :-
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
このプログラムを実行した後に時刻を再度設定する必要がありますが、実行後は RTC が正しい時刻を刻むようになるでしょう。
ですが、このプログラムを実行しても同じような症状がみられる場合、ハードウェアに問題がある可能性がありますのでお近くの Acorn ディーラーにお問い合わせ下さい。 なお、このプログラムを実行し、時刻を再設定した後はマシンを再起動させないと症状が直ったかどうかが分かりません。 RISC OS は起動時に real time clock から値をコピーしてソフトウェアで時刻を管理するため、再起動しないと RTC がきちんと設定されたかどうかが分からないのです。
Acorn の新しいマシンでは *Speaker コマンドは動きません。 A300, A400, A3000, A540, A5000 および A4 の内蔵スピーカーは、ソフトウェアによって制御されています。 これより新しいマシンでは sound の端子にプラグを差すことで自動的にスピーカーからの出力がカットされるようになったため、この制御を行う機能が削除されたのです。
しかし、古いソフトウェアとの互換性を保つために、実際には何も起こらないものの *Speaker コマンドが OS に残っているという訳です。
これは主に RiscPC でみられる問題で、ファンのグリスが乾いてしまっているために起こるものです。 大抵はマシンの起動時にものすごくうるさい音がするものの、一旦起動してしまえば静かになります。 しかし、このうるさい音が鳴っている時間は段々延びていきます。
解決法は、マシンがどのように組み立てられているかを良く知らないとできません。 まず、マシンを分解し、ファンのラベルをはがしてベアリングの部分からゴムの部品 (rubber bung) を外します。 次に、ベアリングの部分に 3-IN-ONE oil ( WD-40 ではありません) (訳者注: 3-IN-ONE については WD-40 の web page を見て下さい) をたらします。 最後にゴムの部品を元に戻してマシンを組み立てれば修理完了です。
この問題は、低速な CD-ROM ドライブを搭載しているマシンを RISC OS 4 にアップグレードした場合に起こり、 CDFSSoftATAPI module が CD-ROM ドライブにアクセスするタイミングがはやすぎるのが原因です。 一つの解決策としては、 RISC OS 3.7 の soft-lodable な CDFSSoftATAPI を使用することです。これを !Boot.Choices.Boot.PreDesk ディレクトリにコピーし、 RISC OS 4 の CDFSSoftATAPI module を *UNPLUG で使用しないようにするのです。
私も RISC OS 4 にしてこの現象に遭遇していますので、もし同様の症状が起こった方はお気軽に私宛へメールして下さい。
Filer の再描画に伴うこのような問題は、パレットを持たない 256 色の sprite を使用するアプリケーションが原因です(これは RISC OS 3.7 のバグです)。 タスク固有の IIRC only な sprite がこの問題を引き起こし、Wimp によって使用されるアイコン (!Sprites や !Sprites22) では起こりません。 アプリケーションがロードされ、これが使用する 256 色の sprite にパレットを追加する時にハングアップが起こります。