えらーこれくしょん です。最近では、「えらこれ」というより「あれこれ」と化しているような・・・
 >というわけで、「あれこれ」に改題!


現在の内容

98起動時シーケンス
ITF解析方法
起動時エラー解説
98グラフィックス
SCSI/IDE機器接続インターフェース
用語説明



98起動時シーケンス


・CPUチェック

CPUの動作が正常であるかチェックします。
CPUのステッピングID、リビジョンIDなどはシステムメモリ部分に待避されます。

・CPUフラグが正常に動作しているか。
※CPUフラグに値を直接ロードして、条件ジャンプ命令群に突入します。
 正常に動作しているのなら抜けてきます。 この段階で動作していないと「ぴぽ」とも
 いいません。
・CPUレジスタのチェック。

・リセット起動か、CPUリセット復帰モードか判別して、復帰モードなら戻る。
 このとき、SYSTEMSHUTDOWNが指定されていたら、表示して無限ループ。

・延々PCIや周辺チップの初期設定

「ぴぽ」

・ソフトウェアDIPスイッチなどのチェック
 ここで狂っているとSET SOFTWARE DIPSWITCH表示&リセット

・ITF CHECK
 メモリのサムチェックをします。(ITFとか98のBIOSは、合計が0になるよう
 になっています。)
 駄目だった場合、BEEP音の無限ループ。

・外部ハードウェアをチェックして、パリティエラーが発生しているかチェック

・BASEMEMORYERRORチェック

・CPUをプロテクトモードに切り替えて様々なチェック
 PROTECT MODE ERROR
 ADDRESS 20 LINE ERROR

・SIMM SETTING ERRORチェック

ここから先はエラーだけ。解説はもうちょい・・・

・TEXT VIDEO RAM ERROR

・MEMORY SWITCH ERROR

・PARITY ERROR − BASEM EMORY

・PARITY ERROR − EXTENDED MEMORY

・MEMORY 000KB OK

・MEMORY ERROR
・PARITY ERROR   0000

・外字用漢字RAMチェック
 KANJI CG RAMERROR

・VRAMチェック
 GRAPHICS VIDEO RAM ERROR
・サムチェック
 ROM SUM ERROR
・ラップアラウンドのチェック  ADDRESS20LINEERROR
・タイマチェック
 TIMER ERROR

・DMAチェック
 DMA ERROR

・タイマ割り込みチェック
 TIMER INTRUPPT ERROR

・SIMMメモリチェック
 SIMM SETTING ERROR

・メモリチェック
 xxxKB OKの表示
 128KB単位でチェック。

続く・・・



・ITF解析方法

x86系のプロセッサでは、リセット動作がかかるとFFFFFFF0番地にジャン
プするように設計されています。
実際には、外部ハードウェアがFFFF0にマッピングしますので、リアルモードの
1Mの最後の部分がリセットベクタになります。

(この部分の動作に関係しているのが、MTSA−M1Tの#A20コントロールで
 す。ここが正常に動作しないと、あらぬメモリを参照して、なにも書かれていない
 部分を突っ走る事になります)

ここには、16バイトの余裕しかないので、通常ジャンプ命令が書かれているはずで
す。
JMP FD80:0等

なお、WIN95実行状態では、この部分には別の命令がマッピングされていて、
リセットが行えないようになっています。
これは、DOS/V互換マシン共に、共通の約束事です。よって、解析するにはDO
Sから行います。

あとは、ここからたぐっていくと、FD80:4あたりからリセット動作時の処理が
行われます。
CPUだけリセット動作と、電源ONの違いは、CPUだけでは分からないので、外
部FF(フリップフロップ)にある内容(2ビット)で、ウォームスタートやSYS
TEMSHUTDOWNやリセットなどの判別を行えるようにFFを設定します。
リセットを行うのであれば、BIOS>ITFに切り替えて処理を実行するようにな
っています。

BIOSがポートに値をセットした瞬間ITFに切り替わってしまうので、いったん
メモリの最上位(0:400のシステム共通域)に、

OUT DX,EAX (ここで外部ハードウェアがBIOS>ITF化する)
WBINVD (キャッシュを書き戻す。推定2000クロックの命令)

JMP FFFF:0 (ITFのここにJMP F800:4000といった命
             令が書かれているはずです。ITFは、4000hから
             実行が開始されます)

といった命令を書き込んでいます。

ここにジャンプさせ、メインメモリ上で実行させる事によって、自分自身が実行中の
BIOSをITFに切り替えても、動作しつづける事が出来るわけです。

ITFの先頭からはCPUチェックから始まってありとあらゆる場所のチェックをし
ています。

・ITFを抜き出すには

BIOSをITFに切り替えて出力すればいい事がわかります。
しかーし、ITFにはDISKBIOSがありません。
そして、BIOSに戻すための方法はITFに書いてあります。
(ITFに切り替える方法から推測する方法もあります。
 要は元に戻すわけです)
書き出しには自分自身の力を使用するしかないのです。
具体的には、フロッピーのDISKBIOSを書くのが一番早いでしょう。
(あんまり難しくはないですが、面倒です。PIC、DMA、FDCをコントロール
しなければならないので。光○のゲームはこんな面倒な事をしてまでプロテクトチェ
ックしてましたけど)

その時の注意

mov dx,534h
in al,dx
xor al,1
out dx,al

の動作を行うと、そのままの状態ではリセットしてしまうようなので、
この部分だけは最後に設定するようにずらしたほうがよいでしょう。

裏技:98には、STOPキーを押しながらたちあげると、メモリの初期化などを
スキップして立ち上がるホットスタート機能があります。
この機能を利用すれば、DOSの起動時に初期化されないVRAMなどにITFの内容
を転送しておけば、DOS上でVRAMの内容を保存するだけで保存可能です。
ITFOUTはこの原理を使用した物です。



98起動時に出るエラー:その原因など




PROCESSOR ERROR

98NAもしくはNA/Cで発生した悪名高きエラー。
プロセッサのステッピングIDやリビジョンが違っていると表示される。

原因:NECの意地悪
症状:CPUを交換できない
対処:ROM改造して引っかからないように改造する。



ROM SUM ERROR

ROMのチェックサムが合っていないときに表示されるエラーです。

原因:ROMを改造した
   フラッシュメモリの内容化け
症状:左上表示+ビープ
対処:1.ESC+HELP+9 を押しながら電源を入れる。
   2.サムの結果が正しくなるようにダミーデータを入れる。
   3.サムキルする。(笑)



KANJI CG RAM ERROR

漢字の外字用RAM(だとおもわれる)が壊れたときに表示される

原因:故障でしょうね
対処:修理に出してください。 それか叩く。



GRAPHICS VIDEO RAM ERROR

98標準グラフィックである、256KのVRAMが壊れたときに表示される

原因:故障でしょうね
対処:修理に出してください。 それか叩く。



TIMER ERROR

タイマICが壊れたときに表示される

原因:故障でしょうね
対処:修理に出してください。 それか叩く。



DMA ERROR

DMAが壊れたときに表示される

原因:故障でしょうね
対処:修理に出してください。 それか叩く。



TIMER INTERRUPT ERROR

タイマIC・割り込みコントローラが壊れたときに表示されます。
(正確に言うと、インターバルタイマをかけたにもかかわらず、割り込みが発生しないとき)

原因:故障でしょうね
対処:修理に出してください。 それか叩く。



CACHE RAM ERROR

1次キャッシュが壊れたときに表示されるようです。
これが出るってかなりやばいのでは・・・

原因:故障でしょうね
対処:CPUの交換



2ND CACHE RAM ERROR

2次キャッシュがおかしな時に表示されます。

原因:2次キャッシュが壊れた クロックアップについていけない 異常加熱
   差込不良・接触不良など
対処:交換 クロックを下げる 熱をさげる きちんと差し込む



CACHE ERROR
2ND CACHE ERROR

RAMエラーはテストしたときにおかしかったのに対し、こちらは制御できなかった
りしたときに表示されるようです。



EXTENDED GVRAM ERROR

E0000 〜 E8000のエリアにあるVRAMが壊れているときに表示されます。



SYSTEM SHUTDOWN

CPUが起動したときに、外部レジスタにアクセスして現在の起動が、電源ONかリセットであるか
などをしらべる機構が存在します。
これは、システムの要求でCPUだけリセットをかける必要がある時(286の欠陥的仕様のため、
プロテクトモードからリアルモードに戻る事が出来なく、唯一の方法はCPUにリセットをかける事
であった。しかしリセットをかけるとCPUはすべて忘れてしまうため、外部にレジスタ(この場合
2ビット程度だが)を用意して、その状態を見る事で、あらかじめセットしておいた復帰先になにご
ともなかったかのように戻る事が出来る)等のために用意されている、外部レジスタが特定の値のとき
にこのエラーが発生する。

原因:I/Oアクセスに問題があり、本来意図的に設定しないとでない値になってしまっていると
思われる
対処:クロックアップなどが原因?



TEXT VIDEO RAM ERROR

テキスト用の画像メモリが壊れているときに表示される

原因:故障でしょうね
対処:修理に出してください



MEMORY SWITCH ERROR

メモリスイッチの内容が異常な時に表示されます。
メモリスイッチは、TEXTVRAMの後ろの方にマッピングされていますが、
この部分がCPUの暴走・異常電源断(バッテリ切れ)などにより変更された場合表示されます。

原因:故障・事故
対処:再設定・再起動



EMS ERROR

ハードウェアEMSの制御が出来ないときに表示されます。
特に現在では関係のないエラーです。
そういえば、NECのDOSには、NEC製用のEMS制御ルーチンが組み込まれているとか。
このルーチンを外す事でいくらかメモリ使用量を減らす事が出来る。



MEMORY ERROR

メモリチェックでエラーが発生したときに表示されます。
このエラーにはいくつかバリエーションがあります。
メモリの先頭にバッファとして、作業エリアや制御移行エリアを確保したりするので、
その際にチェックされ、エラーがあったりしたときに出ます。



BASE MEMORY ERROR

640Kのエリアで、メモリエラーが発生したときに表示されます。



PARITY ERROR

パリティチェックでエラーが発生したときに表示されます。
エラーが発生すると、NMI割り込みあたりでエラー処理が行われます。



MEMORY SIZE ERROR

コンベンショナルメモリ(640Kエリア)が、メモリスイッチに設定されている 容量と食い違ったときに発生します。
最近の機種では意図的に行わないと発生しないとか。

YUUJIさんサンクス!



PARITY ERROR - BASE MEMORY

640Kエリアでパリティエラーが発生したときに表示されます。
大体これらのエラーが発生するときは、CPUの交換やクロックアップ
などで、不安定な状態になっているときに表示される事が多く、
実際にメモリが壊れている事はまずないと思います。



PARITY ERROR - EXTENDED MEMORY

640K以上のエリアでパリティエラーが発生したときに表示されます。



AV RAM ERROR

どこにあるんでしょう・・・このメモリ・・・
ひょっとしたら、先頭のAは表示されない文字かも。そうなるとVRAMか。
ということで、画像メモリが壊れているとき表示されます。



2ND CACHE BOARD SETTING ERROR

これはそのものずばりだと思うのですが・・・
なんでしょう?



SET THE SOFTWARE DIP-SWITCH

ESC+HELP+9+RESETでシステムを初期化すると、再起動時にこのメッセージが
出ます。

また、何らかの原因により、再起動時に発生したという話もあります。



SOUND ERROR

サウンドとはいっても、PCM周りの制御だと思います。
このデバイスの制御に失敗すると表示されます。



PROTECTED MODE ERROR

プロテクトモードに切替えが出来なかったときに表示されます。



SIMM SETTING ERROR
SIMM SETTING ERROR SLOT 1,2

そのものずばりだと思いますが、メモリが正常に認識できないときに表示されます。



PROCESSOR UPDATE DATA ERROR

このエラーは、プロセッサのマイクロコードのアップデートができなかったときに表示されます。

プロセッサのバグにより、命令がうまく実行できない場合など、プロセッサに内蔵した64ワード
ほどのマイクロコードバッファに新たな動作を定義し、その命令がきたときにそちらを実行させる
ことにより、バグをつぶすことができるようになります。

BIOSでは、代行処理をさせるように設定を行ったりしますが、アップデートするかどうかを、ステッ
ピング等を見て、決定しています。(何種類か登録されているようです)
そのため、「プロセッサのステッピングID」が違っていたりした場合などでも、発生する可能性
があります。

よって、このエラーが表示されたからといって、気にするほどのことではありません。
新しいチップでは、すでにアップデートする内容は、対処されているはずです。
※PentiumIIプロセッサのFIST命令のバグなどをつぶすのに使用されたりしています。
※いちいち表示されるのが目障りなので、登録ステッピングなどを更新する目的でプロセッサ情報
 アップデートディスクを作ったのかもしれません。(エラーにみえますから)



ADDRES 20 LINE ERROR

アドレス20ラインとは、その昔286で発生したバグに端を発しています。
8086までは、アドレスラインに20本のラインが走っていたのですが、
このままでは、扱えるメモリは最大1Mバイトまでしか、制御できません。

286以降では最大16Mバイトまで扱えるようになったので、アドレスライン
は24本に増えました。

ところで、86ではセグメント+オフセットというメモリのアドレッシングを行います。

たとえば、

E000 + 0000

と現され、この実際のアドレスは、 セグメント*16+オフセットで計算されます。

例では、E0000 になります。
(10進数で1桁ずらすという事は、10倍・10分の1を現します。16進数では、
1桁ずらすという事は16倍・16分の1に相当します)

ここで、FFFF + 10 を計算すると、 100000になってしまいます。
86では、20ビットしかなかったので、00000になるのですが、始末の悪い事に
286以降では、24ビット有効なため、100000が有効になってしまいます。

そこで、これを00000にするため、21以降のラインに対して有効・無効を制御
する回路が付け加えられました。

これが、アドレス20ラインゲートです。

このゲートは通常、I/Oポート F0 F2 F6 などで制御されますが、うまく制御でき
なくなる事があります。
I/Oアクセスに問題が発生するときが一番多いと思われます。

MTSA−M1Tで制御しているのは、CPU制御ピンのゲートで、起動時の実行開始
アドレスを正常な位置にするためのマスクであるといわれています。



注意

再起動(エラーなどで強制リセット)した直後にエラーが発生する事がよくあるが、これはCPUだけが再起動しているものの、
周りの制御チップがリセットされていないため、うまく制御が行えず、エラーが発生しているものと思われる。
結構珍しいエラーが見れるので、おもしろいかも。
これが原因で表示されたエラーは実害はないので、特に気にする必要はない。リセットすれば直るものが多い。

なお、これらのエラーが毎回出るようであれば、何らかの問題があると思った方がよい。

また、クロックアップなどを行っており、限界を超えた場合なども、発生することがある。



あまり役に立たない用語説明


壊れている
メモリデバイスに関しては、データを書き込み、その書き込んだ通りにデータが読み出せるか
どうかチェックする事で正常・異常を判定しています。
そのチェックするメモリが、なんらかの原因(バンク切り替え)でメモリに正常にアクセスで
きない状態が発生したりすると発生する事もあります。


チェックサム
データが正しいかどうか判断するために、データ全体を足した値などを保存しておき、
その値と、今回の計算結果を照らし合わせて正当かどうかを判断するのに使われる値。
ADDサム+XORサムを組み合わせるのが一般的で、98ROMもこれ。

サムキル
チェックサムの計算部分をカットして、すべて正しく認識させる方法。
スーファミのゲームとかでよく使われた、対クソゲー最終奥義。


DMA
ダイレクトメモリアクセスと呼ばれる、データ転送用チップ。
高速で多チャンネルなほど貴ばれる。



・構造説明

ドライブ構造

・基本構造
通常、HDDは「ハードディスク」と呼ばれているように、硬い金属製の円盤でできている。
この円盤を回転させ、それをヘッドで読み書きすることで、データの記録を行う。

ディスクは、1枚だけでなく、複数枚入っている場合がほとんどで、それぞれの表と裏を
使用する。
物理的には、ディスク1枚につき、ヘッドは2つある事になる。
このディスク上には磁性体が塗られており、さらに潤滑油も塗られている。
ヘッドとディスクの距離は非常に狭く、ちょっとした衝撃などで接触すると、ディスク上の
磁性体が剥げてしまう場合がある。
ヘッドは通常回転による風圧などで浮いているので、停止状態ではディスク表面に接触して
いる。
停止するときは、「シッピングゾーン」と呼ばれるエリアに移動し、そこで動作を停止する。
このエリアのディスクの表面は、わざとざらざらさせており、停止状態で接触したヘッドが
ディスク表面に張り付くのを防いでいる。(潤滑油が固まった状態では張り付いて固まって
しまうことがある)
なお、通常のHDDでは、アクセスするときヘッドをわずかに上昇させ、非接触状態でアクセス
する。ディスク表面に近いほど信号を読み取りやすいからである。
また、磁気情報をより強く読み取るための材料を用いたヘッドを用いることもある。
(MRヘッドや、GMRヘッド等)
しかしながら、非接触状態では限度があるため、実験段階ではあるが、接触状態でアクセスする
HDDも存在する。この場合、ヘッドの摩耗が問題になるが、材料や特別な潤滑剤を用いることで、
防いでいるようだ。


・寿命
ヘッドを移動するボイスコイルの寿命
ディスクを回転させるスピンドルモータの寿命
ディスクの回転を支えるベアリングの寿命
熱・電源入切の過渡電流による制御回路基板のチップの寿命
などがある。
※動圧軸受けタイプのHDDの場合ベアリングは使用されていない。回転圧力により、溝に流された
 オイルがベアリングの役割を果たすからである。


・フォーマット(初期化)
フォーマットとは、ディスク表面にデータを記録できる構造を作成する処理のことである。
この構造をどの程度作成するかによって、種類が異なる。

種類には、
・物理フォーマット
・論理フォーマット

がある。

物理フォーマットには、さらに

・ローレベルフォーマット
・コマンドレベルフォーマット

に分けられる。
通常行われているのは、コマンドレベルのフォーマットであり、ディスクの表面を完全にフォーマット
するわけではない。
(さらに厳密なローレベルフォーマットとただのローレベルフォーマットに別れるものもあるようだ)

ディスクの表面には、「フォーマットしてはいけない」領域が存在するからである。
これは、サーボセクタ・トラックと呼ばれているもので、ディスク上を移動するヘッドが現在どこに
いるをか調べるための特殊なデータが書き込まれている場所である。
ハードディスクなどのヘッド移動では、現在どこにいるかを調べるために、フィードバック方式を
採用している。
サーボセクタなどを見つけることにより、そこに書き込まれている位置情報から現在地を割り出す。
フィードフォワード方式では、高度なサーボ機構が必要になり、HDDごときに許される機構ではない
からである。

このサーボセクタに異常があれば、現在地がわからず、ヘッドが振り切れたままになり、ボイスコイル
が焼き切れることになる。

コマンドレベルフォーマットの場合、そういった場所をフォーマットせずに、手順通りにデータエリアを
フォーマットする。(HDDに許可を得て行うレベルである)

通常、ディスクには、
・シリンダ
・トラック
・セクタ
が存在する。
ディスクには、同心円上にデータを記録するエリアが存在する。
この同心円をシリンダと呼ぶ。
通常シリンダには、表と裏があり、さらに複数枚のディスクがあるので、それぞれを分けるために、
トラックがある。
シリンダ1ディスク1表、トラック1
シリンダ1ディスク1裏、トラック2
シリンダ1ディスク2表、トラック3
シリンダ1ディスク2裏、トラック4
などとなる。

このトラックは、セクタで区切られており、それぞれのセクタには、セクタIDとデータ、エラー訂正
用情報にわけられる。

セクタIDは、現在のセクタ番号などを管理しており、データエリアにはデータ、エラー訂正情報には
データをエラーチェック・訂正するための情報が記録されている。

ディスク上に記録されるデータは、そのまま記録されるわけではなく、変調して記録される。
たとえば、1が非常に多く続くデータを記録する場合、そのまま記録したのでは、1の論理レベル
である、5V(例えば)などが連続して出力されることになる。
これは回路にとって非常に不安定であり、電源電圧の変動などで微妙に変化した場合などに、1の
論理レベルのスレッショルド(5Vを1、0Vを0として場合、2.5V程度を基準とし、それを超える
か超えないかで判定する)を超えてしまう場合がある。
そのため、なるべくデータが1と0を反転しつづけるように一定のルールを決めてデータを変更し、
記録している。(1が3個続くと0を1個、それ以外は3個おきに0を挿入のようにして冗長にする)
このとき、1が3個続いているにもかかわらず、0が次に検出されないといった特殊なデータを
作り出すことができ、これを特殊データとして扱うことができる。
(検出されないクロックビットにより、「ミッシングクロック」と呼ぶ)
この特殊データは、IDの先頭などにつけられており、一般的なデータとの区別に使用されている。


・ディスクの一般的なフォーマット後の論理構造

BOOTSECTOR(ブートセクタ MBR マスターブートレコードなどとも呼ぶ)
FAT
DIRECTORYENTRY
DATAERIA

に分けられる。

ブートセクタは、起動用プログラムなどが書き込まれる部分である。
ディスクの素性をあらわすデータなども書き込まれている。

FATは、ファイルアロケーションテーブルで、ディスク上に散らばるデータの構造などを
管理する部分である。
また、予備が用意されている。

ディレクトリエントリは、記録されているファイルの名前、時刻、属性、FATエントリ番号
などを管理している。

一般的なDOS形式の場合、ディレクトリエントリは数が決められている。
これはルートディレクトリに相当する。
このサイズが決まらないと、データエリアがどこから始まるか決められないからである。
フロッピーディスクでは、192エントリーが最高である。
1エントリー32バイトで、192*32=6144(6キロ)バイト(6セクタ)分の容量が確保されている。
LFN(ロングファイルネーム)では、複数エントリーを使用することで、長い名前を
実現している。そのため、エントリーを早く使い切ってしまう。
また、LFNかどうかは一定のルールで名前をつけることにより実現されているため、
LFN非対応でディレクトリエントリを見ると、特殊なエントリが見える。が、そのまま
でも互換性のためアクセスできるようになっている。

サブディレクトリは、サブディレクトリエントリファイルとして処理されるため、
制限はない。が、サブディレクトリもファイルのため、ディスクの容量を消費する。


98グラフィックス

一般的な、98の画面表示関係には、

1.640*400(200) 8,16色モード
2.640*480 256色モード
3.ウィンドウアクセラレータモード
4.ハイレゾモード

がある。このうち、98独自に持っているモードは、1と2と4番である。このうち、1番と2番を解説する。
余談であるが、640*400モードはアスペクト比が1:1ではない。そのため、ドットが若干つぶれた形に
なってしまう。(画面比率が4:3に対して、ドットの比が4:3になっていないため、ドットが歪む。その比率を
アスペクト比と呼ぶ)

98の画面を構成している図を図1に示す。
Fig1.98グラフィック構成図

・映像選択回路には、「アナログスイッチ」もしくは「リレー」が用いられており、映像信号を切り替える
 回路である。(切り替えるときにカチッと音がする機種はリレーが採用されている)
 なお、98に対応しているディスプレイドライバや、RGBINをもつ機種では、
 この機能を利用して画面に表示する画像を切り替えている。
 ATリファレンスドライバや、RGBINがない機種では、外部に切り替え機を用意するか、
 ディスプレイに複数のケーブルをつなげるなどして、手動で切り替え動作を実現しなければならない。

・ウィンドウアクセラレータおよびVRAMは、9821以降で採用されている部分である。
 VRAMを9821グラフィックスと共有していることがある。

・CRTC(カソードレイチューブコントローラー)は、98のテキスト画面を表示するチップである。
 このチップが漢字などのキャラクターを表示する。

・GDC(グラフィックディスプレイコントローラー)テキスト側 は、テキスト表示をするチップである。
 画面のサイズや、分割、ファンクションキー表示、色、カーソル表示などを担当している。
 また、テキスト文字による線や円なども描画できるが、描画コマンドは一般的につかわれない。

・GDCグラフィック側 は、グラフィック描画を担当するチップである。
 また、EGC搭載機種では、GDCからのVRAM描画に対してもEGC機能が有効である。

・テキスト・グラフィック合成について
 グラフィック側のGDCはスレーブモードで動作しており、マスターモードで動作しているテキスト側GDC
 にクロック同期している。このため、画像の合成が可能である。
 しかしながら、初期に作られた98では、テキスト画面が1ドット横にずれた状態で合成されてしまう。
 後期型マシンでは、この問題は解消されているのであるが、それまでに作られたソフトウェアが、これを考慮
 して、1ドットずらした状態で作ってあるため、元に戻すわけにも行かず、そのままにされている。
 が、起動時メニューで「プラズマディスプレイを使用する」を選択すると、このずれを直せる。

・GC EGCについて
 GC(グラフィックチャージャ)は、98のグラフィックを構成しているVRAMに対するCPUのアクセスを
 強化するものである。EGCはさらに機能が強化されたが、その機能は複雑でNECが非公開にしたため、
 あまり使われなかった。
 GCはVM以降、EGCはVX以降で採用されている。

・VRAM構成
 VRAMは、デジタル8色しか表示できない機種には、RGBの計3プレーン搭載されている。
 最終的に、3つのプレーンは合成されて、1つに重ねて表示される。
 4096色中16色表示可能マシンでは、さらに1プレーン搭載されている。また、アナログパレット
 機能が搭載された。
 そして、これらのVRAMは1部の機種を除いて2組あり、表示側と描画側に切り替えて使用する
 ことができた。
 
 余談であるが、一部のEPSON互換機では表と裏をあわせて1つに統合することにより、256色表示可能な
 マシンもあった。
 もっと余談であるが、この98グラフィックス相当の機能をテキスト描画に採用した、X68000なる
 マシンもあった。

・GDCクロックについて
 GDCには2種類のクロックがあり、2.5MHzモードと、5MHzモードである。
 実際に製品にラインナップされていたものは、6,7,8MHzのタイプであり、2.5や5MHzの  製品はない。
 2.5MHzモードと、5MHzモードではクロックのほかに、異なる部分が出てくる。
 5MHzモードでは、IMビットが1になり、有効に機能しない部分が出てくるのだ。
 そのため、CURSORFORMコマンドなどが使用不可能になり、画面が乱れるソフトが出てくる。
 98では、一般的に初期設定は2.5MHzモードなのだが、21辺りから発売されたマシンでは5MHz
 モードが標準モードになっている。

・21グラフィックスについて
 9821では、ようやく待望のグラフィックス機能が強化された。
 (この時代では、グラフィックス機能が98の弱点になってしまっていた)
 そのスペックは、640*480、16777216色中256色同時発色(この、同時発色という文字を見ると、
 昔FM77で4096色同時発色可能というマシンがあったが、あちらは1ラインにつき16色までという制限
 があったのを思い出す)可能である。

 この21グラフィックスには、EGCは使用不可能である。
 代わりに、PEGC(グラフィックドライバの名前からユーザーがそう呼んでいる名前)が搭載された。
 PEGCを利用するためには、1ドット=1バイトのパックドピクセルモードから、1ドット=1ビット*8プレーン
 のプレーンピクセルモードに切り替えなくてはならない。
 プレーンアクセスモードで、PEGC機能を有効にすることにより、パックドピクセルモードの8分の1で
 同様の効果が得られることになる。
 が、グラフィックアクセラレータの普及により、その役目を終えたと判断されたPEGCは削除され、
 現在の21ではパックドピクセルモードしか動作しない。

SCSI/IDE機器接続インターフェース

・BIOS

これらの機器には、BIOSが搭載されていることが多い。
このBIOSは、いったい何者で何をしているのだろうか?

BIOSとは、Basic Input / Output Systemの略語である。
標準入出力システムと言う意味だ。
そのインターフェースのもつ機能に対して、入力と出力(ものによっては片方)を提供する。


ただし、これはDOSで使用する時の話で、Win95などでは、デバイスドライバが同様の
機能を提供する。デバイスドライバがない場合は、BIOSを経由してアクセス可能にする
のだが、いかんせんBIOSは、リアルモード(16ビットモード)で動作するもののため、
Win95のネイティブモード(本来のモードと言う意味 プロテクトモードとも呼ぶ)から
呼び出すためには、CPUモードを切り替える必要がある。
そのため、パフォーマンスが大幅にさがる。また、このモードでは、保護機能も一部機能
しなくなるので、システム的にも安定とは言い難い。
また、WinNTでは32ビットでないBIOSは、上記のような理由やプリエンプティブなマルチタスク
を実現するための障害になるためサポートされない。


まず、インターフェースのBIOSは起動する時に、本体のBIOSにより、メモリの空きエリアにマッピングされる。
ただし、これはPnP(プラグアンドプレイ)が機能しているときである。
PnP機能をOFFにしていた場合や、手動設定するしかない機器についてはこの限りではない。

なお、一般的な構成のマシンの場合、起動は本体BIOSから行われる。
これはいかなる機器を搭載していたとしても同様である。そうでないマシンは特殊である。

このマッピングされたあと、そのBIOSのデバイスエントリポインタに対して呼び出しが行われる。
通常ここには、初期化ルーチンなどが置かれる。

初期化は、ストレージデバイスのインターフェースの場合、接続機器の検出、リセットなどを行う。
そして、接続機器を検出がある場合(インターフェースの作り込みによるが)、標準DISKBIOSに
自分にアクセスするための、UA(ユニットアドレス)をBIOSに登録し、そのUAのときの呼び出し先も
登録する。
DOSなどは、現在使用可能なUAに対して呼び出しを行い、それらの機器がDOSが管理するものである場合、
認識、ドライブとしてアクセス可能にする。
つまり、DISKBIOSに自分の存在を通知してあった場合、自動的にSCSIなどの追加機器の認識が行われる
という構造になっているのだ。

よって、BIOSを切り離してあった場合は、自分でBIOS相当の認識機能とアクセス機能を持ったドライバ
を記述しない限りDOSからはアクセスできない。
ただし、SCSIのASPIなどではこの限りではないが、一部SCSIボードは、BIOSにASPIの機能を実装して
あり、切り離してしまうと使用不可能なものもあるそうだ。


役に立つかもしれない用語説明

独断と偏見、そしてこのページなどで使われている用語についての説明集です。

ALU(えーえるゆー) 演算論理回路のこと。
だいたい、プロセッサ内部にある。
CPU(しーぴーゆー)
MPU(えむぴーゆー)
Central Processing Unit
Micro Processing Unit
の略語。(メーカーによって名称が異なる)
中央処理装置(中央演算処理装置)等と呼ばれる。
ノイマン系アーキテクチャの設計のため、記憶装置を別に用意する必要がある。
また、設計思想によりCISC系プロセッサと、RISC系プロセッサに大別できる。
CISC(しすく) 命令を、プロセッサ内部に格納されたマイクロコードで解釈・実行する
プロセッサのこと。
マイクロコードにより実行されるので、動作速度はハードワイヤードロジック
(専用論理回路)により構成されたものより遅くなる。
近年では、ハードワイヤードロジックも組み込むことで、高速化しているものが多い。
RISC(りすく) 命令を、ハードワイヤードロジック(専用論理回路)で解釈・実行するプロセッサのこと。
ハードワイヤードロジックで実行されるので高速であるが、回路が複雑になり、
それゆえ単純な命令しか搭載できなかった。
しかし、近年の回路技術の進歩により、複雑な命令も搭載されている。
マイクロコード(まいくろこーど) CPU内部に埋め込まれたROMに格納されている、制御命令のことである。
CPUの各ユニットをコントロールする命令が書き込まれている。
たとえば、レジスタに値をメモリからロードする命令があった場合、
メモリアクセス回路に指令を出して、指定のアドレスのデータを取ってくる。 指定されたレジスタを内部データバスに接続。
データが入った状態で、保持状態に移行。
などと、回路状態を制御する命令がかかれているのだ。
もっとも、こんな単純な命令はハードワイヤードロジックで構成されているが。
DSP(でぃーえすぴー) デジタルシグナルプロセッサのこと。計算専用に最適化されたCPUともいえる。
高速化のため、あらゆる手段で演算クロックを減らす工夫がされている。
演算能力だけなら最高性能を持つ。
レジスタ(れじすた) プロセッサ内部にあり、演算結果を格納しておくための一時記憶装置。
一般的に、CISCプロセッサはレジスタの数が少ない。
メーカーによっては、このレジスタのビット数でプロセッサのビット数を表している
こともある。
ベクトルレジスタ(べくとるれじすた) 巨大なレジスタ(1Kbit以上である)で、複数の数値を大量に入れ込むことができる
レジスタ。512個の数値同士を一度に加算などできる。
スーパーコンピューターに採用されている事が多い。
スーパースカラ(すーぱーすから) 命令の実行ユニット(整数演算ユニット)を複数持つことによって、同時に2つ以上の
命令を実行する機構のこと。
命令を同時に実行できるかは、命令の組み合わせによって決定される。
浮動小数点演算ユニット
(ふどうしょうすうてんえんざんゆにっと)
実数をあつかう演算ユニット。内部では1.06e-05などの形式で数値を扱うため、
小数点が動いて見えることからこの名が付いた。
パイプライン(ぱいぷらいん) 命令は通常、プリフェッチ・デコード・実行・(あれば)ライトステージなどの
段階を踏んで実行されるが、実行中はプリフェッチユニットなどは停止していることになる。
そこで、それぞれのユニットが、別々に動作できるようにしたもの。
ユニットの数がパイプラインの段数となる。
実行ユニットが命令を実行中も、プリフェッチユニットは次の命令をメモリから
読み込むなどの動作が行える。
しかし、条件分岐命令(実行した結果によって次の命令の読込先を変更する命令)
があった場合、先読みした命令が無駄になることがある。
これをパイプラインハザード等と呼び、パイプラインの内容をいったん破棄し、
再び処理を始めることになる。
このとき、パイプラインが深いとペナルティクロックが大きい。
一般的に6段を超えると、スーパーパイプラインと呼ぶ。
バレルシフタ(ばれるしふた) シフト命令を最短のクロックで動作させることを目的とした、シフト回路。
多ビットのシフト命令が高速で行える。
バリアトラップ(ばりあとらっぷ) 命令を実行した事による、例外処理をトラップするための命令・モード。
常に例外が発生したかを監視することは、負荷が大きいので、例外の発生が予測
される場合にのみ設定する。
RISCプロセッサ等に搭載されている。
ノイマンアーキテクチャ(のいまんあーきてくちゃ) 処理装置と記憶装置で構成した処理回路のこと。
処理装置は、記憶装置から命令を取り出し実行する。
処理装置と記憶装置をつなぐ速度が性能を決定する要因。
ロード・ストアアーキテクチャ
(ろーど・すとああーきてくちゃ)
RISCで主に採用されている設計方法。
メモリからの読込、書き出しは ロード命令・ストア命令のみで行える。
内部での命令同士の衝突を減らすことができる。
ハーバードアーキテクチャ
(はーばーどあーきてくちゃ)
バスを分離した構造のこと。
現在では、改良型ハーバードアーキテクチャが一般的。
命令の読込系と、データの読み書き系を完全に分離し、データーの読み書きを行い
ながらも、次の命令を実行できる。
DSPでよく採用されている。
条件分岐予測(ぶうらんちぷれでぃくしょん) 条件分岐予測命令がどこに分岐するかを、予測するための回路。
分岐先を予測することによって、パイプラインハザードを減らすための工夫。
予測するための、いろいろな方式がある。
遅延分岐(でぃれいどぶらんち) パイプラインハザードを原理的に排除した分岐命令。
分岐が確定したとしても、パイプライン内の命令は破棄されない。
DSPやRISCプロセッサでよく採用されている。
Memory(めもり) 記憶装置のこと。
一般的にメモリとだけいった場合、
物理的には、半導体で構成されたメモリを指す。
論理的には、主記憶装置を指す。
大容量である方が望ましい。
Cache(きゃっしゅ) 記憶装置の動作速度の不足を補うために、読み書きがあった時、その内容を記憶し、
次から要求したメモリ内容が、キャッシュの記憶にあった場合、そのデータを渡す
事により、動作速度の向上を行うもの。
普通、記憶装置よりも高速で動作する媒体を使用する。
L1,L2(えるわん、えるつー) キャッシュの階層をあらわす。Level-1,Level-2の意味。
普通、階層が低い(Level-1,Firstともいう)ほど高速性が要求され、高価な部品と
なる。そのため低容量が多い。(専用品はこの限りではない)
プリフェッチユニット(ぷりふぇっちゆにっと) あらかじめ先読みしておくユニット。
プリフェッチしたデータはプリフェッチキューにおかれる。
一般的にメモリに対して最低の優先権を持つ。
バッファ(ばっふぁ) データを一時的にためておく場所のこと。
一時的であるため、本来の記憶場所よりも低容量で高速な事が多い。
キュー(きゅー) 筒。一方からしかデータが入らない。
でてくる順番は一番最初に入れたものからである。
類:FIFO
FIFO(えふあいえふおー) ファーストインファーストアウトの略。
最初に入れたものが最初にでてくるバッファのこと。
類:キュー
対:LIFO,FILO
LIFO(えるあいえふおー)
FILO(えふあいえるおー)
ファーストインラストアウト、ラストインファーストアウトの略。
最初に入れたものが最後にでてくる。
最後に入れたものが最初にでてくるバッファのこと。
感覚的には、普通の箱に近い。最初に入れたものは、上のものを取り除かねば
取り出せない。
対:FIFO
ASIC(えーしっく) 専用設計されたカスタムチップのこと。
大量に生産すればコストを下げられる。
FPGA プログラムにより、内部の論理回路を自由にかける、PLDの一種。PLDの中では大規模。
XILINXやALTERAなどのチップが有名。
GAL(がる)
PAL(ぱる)
プログラムにより、内部の論理回路を自由にかける、PLDの一種。小規模。
GALは何回でも書き換え可能。たしか商品名。
ただし、セキュリティヒューズをとばすと、読み書き不可。
パリティ(ぱりてぃ) 偶数・奇数のこと。
コアメモリ(こあめもり) 磁気で記憶するメモリ。網の目上に配線し、配線の交点にフェライトコア(たしか)を
配置して、その部分で記憶する。
フェライトコア(ふぇらいとこあ) 日本が発明した、磁性素材。
RAM(らむ) ランダムアクセスメモリ。その昔はRWM、リードライトメモリとも呼ばれた。
読み込み、書き込み可能で一般的には高速。
SRAM(えすらむ) スタティックラムの略。静的の意味。
主な内部回路がFFで構成されているため、動作を高速にできる。
消費電力も少ないのだが、最近では高速で動作させるため、トランジスタを
飽和状態で動作させたりするので、一概に消費電力が少ないとはいえないようだ。
FF(えふえふ) フリップフロップの略。
トランジスタ2個が対向して設置され、一方の出力が他方の入力に入るという、
回路を構成しており、状態を保持しておける。
DRAM(でぃーらむ) ダイナミックラムの略。動的の意味。
主な内部回路がコンデンサで構成されており、電気をためることで状態を記憶する。
ただし、コンデンサに蓄えた電力は短時間で放電してしまうため、常にリフレッシュ
と呼ばれる動作を行って保持しなければならない。
また、1ビットあたりにおける回路素子の数が小さいため、大容量になるが、アドレスを
指定する信号線の数が膨大になる。
そのため、アドレスを2つにわけ、それぞれの信号を切り替えて指定することにより、
信号線を共有して、減らしている。
それが、RAS(ロウアドレスセレクト)とCAS(カラム以下略)である。
FPRAM(えふぴーらむ) DRAMの一種。
ファーストページモード搭載のDRAM。
CASとRASの指定の仕方を工夫して、高速に指定できるようにしたもの。
EDORAM(いーでぃーおーらむ) エクステンデットデータアウトラムの略。
FPRAMよりも長時間データを出力することにより、RASやCASの指定の合間に
データを取得できるよう改良したもの。
今まで無駄にしていた時間を使用することにより、高速化された。
SDRAM(えすでぃーらむ) シンクロナスディーラムの略。
最初にアドレスを指定した後、クロックに同期してデータの送受信を行う
モードが搭載されており、アドレス指定の回数が減るため高速に動作する。
CASレイテンシの指定は、アドレスを指定してから、データの送受信が開始
されるまでの時間である。
ECC(いーしーしー) エラーコレクトコーディックの略。
エラー訂正可能な情報をあわせて格納することにより、エラーが発生した場合、
訂正して正しいデータにすることができる。
これは計算上の信頼性をあげるためであって、エラーがでるメモリはそもそも使いもの
にならない。
RDRAM(あーるでぃーらむ) ラムバス接続用のメモリである。
シリアル接続されており、コマンドなどで高速な転送を行う。
ROM(ろむ) リードオンリーメモリーの略。読み出し専用メモリのこと。
MASK ROM(ますくろむ) 製造時に内容が決まっているメモリ。
後から書き込みしたり、変更したりはできない。
大量生産時などに向く。
PROM(ぴーろむ) 内部がヒューズで構成されており、焼き切るとその内容になる。
一度書き込んだ後は、変更ができない。
EPROM(いーぴーろむ) 内容を何度でも書き換えることのできるメモリのこと。
しかし、内部構造の劣化により、書き換える回数には限度がある。
UV-EPROMとE-EPROMがある。
UVEPROM(ゆうぶいいーぴーろむ) 記憶内容の消去に紫外線を用いるEPROM。
チップの上部に紫外線照射用の窓がついている。
EEPROM(いーいーぴーろむ)) 記憶内容の消去が電気的に行えるEPROM。
FLASH Memory(ふらっしゅめもりー) EEPROMであるが、コマンドで制御ができ、記憶内容の消去をブロック単位などで行える特徴を持つ。
SASI(さしー) ハードディスク接続用インターフェースのこと。
Shugart Associates System Interfaceの略。
シュガート社の開発したインターフェース。
8台まで接続可能で、1ドライブあたりの最大容量は80MB。
8ビットパラレル転送で、パリティなし。
SCSI(すかじー) 元はハードディスクの接続用インターフェースで、最近では一般的な拡張機器増設用バス。
Small Computer System Interfaceの略。
現在の規格では、8〜16ビットのパラレル転送をおこなう。
IDE(あいでーいー) ハードディスク接続用インターフェースのこと。
細かい部分をはしょってあるため、安価に製造できる。
2台まで接続可能で、ドライブはマスターモードとスレーブモードで動作する。
EIDE(えんはんすどあいでーいー) IDEを拡張した規格で、ハードディスク以外も接続可能にしたバス。
デイジーチェーン(でいじーちぇーん) 雛菊の冠のこと。
機器を次々と後ろにつなげていく様子が、雛菊で作った冠の用にみえることから、
この名前を使っている。
ATAPI(あたぴー) EIDEにハードディスク以外を接続した場合、それらの機器をこう呼ぶ。
シリアル(しりある) データを直列に扱う方法。
一度に送信できるのは1ビットであり、データを送受信するの手間がかかる。
しかし、転送速度を簡単にあげられるので高速転送が可能である。
現在では、数Gビット〜数十Gビットの速度で転送可能である。
パラレル(ぱられる) データを並列に扱う方法。
多数のビットを同時に送信することにより、データ転送が簡略化できる。
すべての信号線が同時にアクティブになるのを保証できないため、高速転送を
行うのは難しくなってしまうため、データの転送速度はシリアルにはかなわない。
CCU(しーしーゆー) 通信ポートのこと。
一般的にはシリアル通信ポートであるRS232Cポートのこと。
RS232C(あーるえすにーさんにーしー) シリアル接続の規格。現在使用されているのは、RS232Eくらいの速度であるが、
一般的な名称になってしまったので、これが使われている。
アドレスデコーダ(あどれすでこーだ) アドレス信号を解釈して、有功か無効かを判別する回路のこと。
メモリにつければ、どのメモリチップを有効にするのかの判別を行い、
周辺回路につければ、I/Oアクセスを解釈して、どの機能を使用するのかの判別を行う。
このアドレスデコーダの設計により、最大メモリの搭載量などがきまってしまう。
PIC(ぴっく) プログラマブルインタラプトコントローラーの略。
プログラム可能な割り込みコントローラーのことで、CPUの割り込み処理を管理する。
優先順位の制御や、CPUにどの割り込みがかかったのかを知らせる機能を持つ。
インタラプトルーターなどとも呼ぶ。