このページの最後へ 次の項目へ 表紙へ

Section 4: ハードウェアのトラブル

4.1) ハードディスクのエラーで表示される番号の意味を教えて下さい。

エラー発生時に表示される番号は、エラーの種類を表しています。 何でこんな不親切なことをしてるのかはよく知らないんですが。 エラーコードとその意味は次のようになっています :-

   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

目次へ


4.2) 'Broken Directory' が起こった時や Free Space Map が壊れた場合はどうすればいいの?

こういう症状を直すためのプログラムは色々あります。 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' を修正するためのソフトウェアはありません。 近いうちに出てくるといいのですが。

目次へ


4.3) Power on self-test って何をチェックしてるの?

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 の領域をテストするからです(と私は聞いています)。

目次へ


4.4) Real Time Clock が止まっちゃったので、動くようにしたいんですが。

これは、「いい加減な」ソフトウェアが 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 がきちんと設定されたかどうかが分からないのです。

目次へ


4.5) 私のマシンでは *Speaker が動かないのですが…

Acorn の新しいマシンでは *Speaker コマンドは動きません。 A300, A400, A3000, A540, A5000 および A4 の内蔵スピーカーは、ソフトウェアによって制御されています。 これより新しいマシンでは sound の端子にプラグを差すことで自動的にスピーカーからの出力がカットされるようになったため、この制御を行う機能が削除されたのです。

しかし、古いソフトウェアとの互換性を保つために、実際には何も起こらないものの *Speaker コマンドが OS に残っているという訳です。

目次へ


4.6) 起動時にファンがうるさいんですが、何とかなりませんか?

これは主に RiscPC でみられる問題で、ファンのグリスが乾いてしまっているために起こるものです。 大抵はマシンの起動時にものすごくうるさい音がするものの、一旦起動してしまえば静かになります。 しかし、このうるさい音が鳴っている時間は段々延びていきます。

解決法は、マシンがどのように組み立てられているかを良く知らないとできません。 まず、マシンを分解し、ファンのラベルをはがしてベアリングの部分からゴムの部品 (rubber bung) を外します。 次に、ベアリングの部分に 3-IN-ONE oil ( WD-40 ではありません) (訳者注: 3-IN-ONE については WD-40 の web page を見て下さい) をたらします。 最後にゴムの部品を元に戻してマシンを組み立てれば修理完了です。

目次へ


4.7) RISC OS 4 にアップグレードしたら、 CD-ROM が 'Drive Empty' と駄々をこねます。

この問題は、低速な 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 にしてこの現象に遭遇していますので、もし同様の症状が起こった方はお気軽に私宛へメールして下さい。

目次へ


4.8) かなり古いモデルの Risc PCで filer window を再描画させると、何故か時々ハングアップします。

Filer の再描画に伴うこのような問題は、パレットを持たない 256 色の sprite を使用するアプリケーションが原因です(これは RISC OS 3.7 のバグです)。 タスク固有の IIRC only な sprite がこの問題を引き起こし、Wimp によって使用されるアイコン (!Sprites や !Sprites22) では起こりません。 アプリケーションがロードされ、これが使用する 256 色の sprite にパレットを追加する時にハングアップが起こります。

目次へ



次の項目へ このページの最初へ