ディスクBIOS
ディスクBIOS
BIOSでフロッピーディスクを操作する必要はほとんどありません。なぜなら、BIOSでフロッピーディスクを操作するためには、ディスクの種類(2DD、2HD(1.21、1.25、1.44)によって依存してしまうし、データーをファイル単位では扱えないからです。
BIOSでフロッピーディスクを読み書きしなければならない場合は、以下の場合ぐらいかと思われます。
・OSそのものを作りたい場合
・コピープロテクトなど直接ディスクに対して操作を行いたい場合
・ディスクイメージの吸い出しソフトを作りたい場合
・IBM標準フォーマットのデーターをどうしても読まないといけない時
IBM標準フォーマットは、オフコンや汎用機で使われるフォーマット形式ですが、MS-DOSやWindowsでは読み出しができないため、どうしてもこの形式のフロッピーのデーターを吸出したい場合にはBIOSを使うしかない、なんて話は詳しく知りません。なぜなら、私はオフコンというものを見たことがありません。
BIOSでフロッピーディスクを読み書きしなければならない場合は、以下の場合ぐらいかと思われます。
・OSそのものを作りたい場合
・コピープロテクトなど直接ディスクに対して操作を行いたい場合
・ディスクイメージの吸い出しソフトを作りたい場合
・IBM標準フォーマットのデーターをどうしても読まないといけない時
IBM標準フォーマットは、オフコンや汎用機で使われるフォーマット形式ですが、MS-DOSやWindowsでは読み出しができないため、どうしてもこの形式のフロッピーのデーターを吸出したい場合にはBIOSを使うしかない、なんて話は詳しく知りません。なぜなら、私はオフコンというものを見たことがありません。
フロッピーディスクの構造
BIOSでフロッピーディスクを扱うためには、まずはフロッピーディスクの構造を理解する必要があります。8ビット機時代からパソコンを使っていた人は
誰もが一度はコピープロテクトの解析などをしていて
詳しい人が多いと思われますが、現在は既にDOS/VやWindowsからパソコンを使い始めた人の方が多いと思われますので、フロッピーディスクの構造から説明します。
ただし、これは独自研究ですので間違った事を言ってる箇所があるかもしれません。正確な知識が欲しい方はググって他のサイトも調べた方が良いと思います。ここでは、あくまでBIOSでフロッピーを読み書きする場合に最低限必要な知識のみ説明します。
フロッピーディスクには、8インチ、5インチ、3.5インチなどがあります。8インチと5インチは紙、3.5インチはプラスチックのケースに入っていますが、いずれも中には黒い磁器で情報を記録した円盤が入っています。外側からトラック0、トラック1、トラック2…という風にトラックに分かれています。
ここで「トラック」とは陸上トラックを思い出してもらえばわかると思います。
つまり、レコードやロールケーキのような渦状ではなく、木の年輪やバームクーヘンのように同心円がいくつも重なっている状態になっています。陸上トラックは正確には円じゃないんですけど、とにかく陸上トラックの1つのコースに該当するものを「トラック」と呼びます。
さらに、このトラックがセクタという部屋に分かれています。
「フロッピーは円なのに、どこがセクタ0なのか?」という疑問が出ると思いますが、これはフロッピーには内側に穴(インデックスホール)が開いていて、センサーがインデックスホールを感知した時にヘッドをがある場所がセクタ00という事になっています。
また、フロッピーディスクのうち、2D、2DD、2HDのように2がつく形式は両面形式といって、裏表の両面にデーターを記録する方式です。この場合、裏と表で同じトラック番号が存在してしまうのですが、これをヘッド番号で区別します。
フロッピーは裏と表だけだから良いのですが、ハードディスクは鉄の円盤(スプラッタ)が複数枚入ってますので、それぞれスプラッタごとに表/裏にヘッドがついています。
というように、BIOSでハードディスクをじかに扱うと、搭載されているハードディスクのスプラッタ数に依存するプログラムになってしまいます。ハードディスクは本来、IDEやSCSI等の規格が合致すればどんなものでも使えなければならないので、ハードディスクのBIOS経由でのアクセスはOSに任せた方が良いでしょう。まあ、OSそのものを開発したいというのであれば話は別ですが。
ただし、これは独自研究ですので間違った事を言ってる箇所があるかもしれません。正確な知識が欲しい方はググって他のサイトも調べた方が良いと思います。ここでは、あくまでBIOSでフロッピーを読み書きする場合に最低限必要な知識のみ説明します。
フロッピーディスクには、8インチ、5インチ、3.5インチなどがあります。8インチと5インチは紙、3.5インチはプラスチックのケースに入っていますが、いずれも中には黒い磁器で情報を記録した円盤が入っています。外側からトラック0、トラック1、トラック2…という風にトラックに分かれています。
ここで「トラック」とは陸上トラックを思い出してもらえばわかると思います。
つまり、レコードやロールケーキのような渦状ではなく、木の年輪やバームクーヘンのように同心円がいくつも重なっている状態になっています。陸上トラックは正確には円じゃないんですけど、とにかく陸上トラックの1つのコースに該当するものを「トラック」と呼びます。
さらに、このトラックがセクタという部屋に分かれています。
「フロッピーは円なのに、どこがセクタ0なのか?」という疑問が出ると思いますが、これはフロッピーには内側に穴(インデックスホール)が開いていて、センサーがインデックスホールを感知した時にヘッドをがある場所がセクタ00という事になっています。
また、フロッピーディスクのうち、2D、2DD、2HDのように2がつく形式は両面形式といって、裏表の両面にデーターを記録する方式です。この場合、裏と表で同じトラック番号が存在してしまうのですが、これをヘッド番号で区別します。
フロッピーは裏と表だけだから良いのですが、ハードディスクは鉄の円盤(スプラッタ)が複数枚入ってますので、それぞれスプラッタごとに表/裏にヘッドがついています。
というように、BIOSでハードディスクをじかに扱うと、搭載されているハードディスクのスプラッタ数に依存するプログラムになってしまいます。ハードディスクは本来、IDEやSCSI等の規格が合致すればどんなものでも使えなければならないので、ハードディスクのBIOS経由でのアクセスはOSに任せた方が良いでしょう。まあ、OSそのものを開発したいというのであれば話は別ですが。
フロッピーディスクの種類
フロッピーディスクの種類には、大きさの違い、密度の違い、フォーマットの違い、等(注1)があります。
大きさの違い
8インチディスク(標準フロッピー)、5インチディスク(ミニフロッピー)(注2)、3.5インチディスク(マイクロフロッピー)があります。今は8インチどころか5インチもほとんど見かけません。かろうじて3.5インチはまだ専用ワープロ等の需要があるため販売されているようですが。
8インチと5インチは紙に、3.5インチは円盤がプラスチックケースに入っています。PC-8801/PC-9801シリーズ全盛期は5インチがほとんどで、3.5インチは富士通FM-77シリーズや一部小型のPC-9801のみ搭載されていたのですが、ノートパソコン(DynaBook、98Noteなど)が世に広まった頃から一気に3.5インチが主流になり、その後5インチ搭載機種は一部のデスクトップのみになってしまいました。
ラップトップのJ-3100は最初から3.5インチが標準で使われていました。
密度の違い
2D、2DD、2HDがあります。(いや、もちろん2EDとか2TDとか他にもあるのですが) 2Dと2DDはトラックの数が違うだけで、メディアも2Dよりも2DDの方が出荷時チェックが厳しいだけですが、2HDは2DDよりもさらに高密度で書き込むため、メディア自体が別です。5インチは2DDと2HDは見た目がまったく同じですが、3.5インチは右下に穴が開いています。もちろん、穴の違いだけではなく円盤の磁性体の密度も異なります。
2HDディスクのフォーマットの違い
これがとってもやっかいです。交流の周波数に60Hzと50Hzがあったり、レール幅が狭軌や標準軌があるのと並び、日本3大やっかいの1つです(うそ)。同じ2HDのフロッピーでも3.5インチのものについては、各メーカーでフォーマット形式や書き込み密度に違いがあるのです。
IBM PC/ATでは8インチ、5インチ、3.5インチで書き込みのセクタ割りや密度が異なっていたのですが、これを日本のメーカーではNECは8インチ、東芝は5インチの形式を3.5インチに採用したのでややこしくなりました。
1.25 (77トラック 1024×8セクタ )
IBM PC/ATでは8インチフロッピーに採用されたフォーマット形式で、PC-9801では5インチや3.5インチでもこの形式が採用されました。この形式では78、79、80トラックは使いません。というのも、8インチフロッピーというのは外側と内側でトラックの1周の長さが著しく異なり、内側の3トラックは1周が短くなりすぎて使えなかったのでした。
1.21 (80トラック 512×15セクタ)
IBM PC/ATでは5インチ2HDに採用された形式で、J-3100は3.5インチでもこの形式が採用されました。なので、J-3100用のソフトというと標準でこの形式になっているし、東芝DOS3.1でフォーマットするとこの形式でフォーマットされます。この形式のことを「2HC」と呼ぶ場合もあります
1.44 (80トラック 512×18セクタ)
IBM PC/ATで3.5インチHDで採用された形式で、DOS/V機が主流になってからは2HDのフロッピーはほぼこの形式になりました。もちろん、現在のWindows機でもこの形式です。
ここで問題なのは、1.21/1.25はセクタ割りが異なるだけで密度は同じなので良いのですが、1.44でフォーマットするためには1.21/1.25よりも高密度で書き込まねばならないため、ヘッドの読み書きの密度も切り替えなければならないという事です。
つまり、
・2DD
・2HDの1.21/1.25MBフォーマット
・2HDの1.44フォーマット
はそれぞれ書き込む密度が異なるという事です。この3種類の密度で書き込めるフロッピーディスク装置を「3モードFD」と呼びます。
大きさの違い
8インチディスク(標準フロッピー)、5インチディスク(ミニフロッピー)(注2)、3.5インチディスク(マイクロフロッピー)があります。今は8インチどころか5インチもほとんど見かけません。かろうじて3.5インチはまだ専用ワープロ等の需要があるため販売されているようですが。
8インチと5インチは紙に、3.5インチは円盤がプラスチックケースに入っています。PC-8801/PC-9801シリーズ全盛期は5インチがほとんどで、3.5インチは富士通FM-77シリーズや一部小型のPC-9801のみ搭載されていたのですが、ノートパソコン(DynaBook、98Noteなど)が世に広まった頃から一気に3.5インチが主流になり、その後5インチ搭載機種は一部のデスクトップのみになってしまいました。
ラップトップのJ-3100は最初から3.5インチが標準で使われていました。
密度の違い
2D、2DD、2HDがあります。(いや、もちろん2EDとか2TDとか他にもあるのですが) 2Dと2DDはトラックの数が違うだけで、メディアも2Dよりも2DDの方が出荷時チェックが厳しいだけですが、2HDは2DDよりもさらに高密度で書き込むため、メディア自体が別です。5インチは2DDと2HDは見た目がまったく同じですが、3.5インチは右下に穴が開いています。もちろん、穴の違いだけではなく円盤の磁性体の密度も異なります。
2HDディスクのフォーマットの違い
これがとってもやっかいです。交流の周波数に60Hzと50Hzがあったり、レール幅が狭軌や標準軌があるのと並び、日本3大やっかいの1つです(うそ)。同じ2HDのフロッピーでも3.5インチのものについては、各メーカーでフォーマット形式や書き込み密度に違いがあるのです。
IBM PC/ATでは8インチ、5インチ、3.5インチで書き込みのセクタ割りや密度が異なっていたのですが、これを日本のメーカーではNECは8インチ、東芝は5インチの形式を3.5インチに採用したのでややこしくなりました。
1.25 (77トラック 1024×8セクタ )
IBM PC/ATでは8インチフロッピーに採用されたフォーマット形式で、PC-9801では5インチや3.5インチでもこの形式が採用されました。この形式では78、79、80トラックは使いません。というのも、8インチフロッピーというのは外側と内側でトラックの1周の長さが著しく異なり、内側の3トラックは1周が短くなりすぎて使えなかったのでした。
1.21 (80トラック 512×15セクタ)
IBM PC/ATでは5インチ2HDに採用された形式で、J-3100は3.5インチでもこの形式が採用されました。なので、J-3100用のソフトというと標準でこの形式になっているし、東芝DOS3.1でフォーマットするとこの形式でフォーマットされます。この形式のことを「2HC」と呼ぶ場合もあります
1.44 (80トラック 512×18セクタ)
IBM PC/ATで3.5インチHDで採用された形式で、DOS/V機が主流になってからは2HDのフロッピーはほぼこの形式になりました。もちろん、現在のWindows機でもこの形式です。
ここで問題なのは、1.21/1.25はセクタ割りが異なるだけで密度は同じなので良いのですが、1.44でフォーマットするためには1.21/1.25よりも高密度で書き込まねばならないため、ヘッドの読み書きの密度も切り替えなければならないという事です。
つまり、
・2DD
・2HDの1.21/1.25MBフォーマット
・2HDの1.44フォーマット
はそれぞれ書き込む密度が異なるという事です。この3種類の密度で書き込めるフロッピーディスク装置を「3モードFD」と呼びます。
コラム IBM標準フォーマット (77トラック 256×26セクタ)
オフコンやメインフレームで使われていたフォーマットで、8インチ2D、5インチ2HD、3.5インチ2HDのディスクを、トラック0のみ128×26で、残りのトラック1~76を256×26セクタでフォーマットした形式です。
IBM社のパソコンであるDOS/Vの1.44フォーマットとは互換性が全くなく、通常パソコンでは読むことができません。BIOSを使って直接セクタリードするか、そのようにして作られたツールを使うしかありません。さらに、IBM標準フォーマットを5インチや3.5インチで採用したのは日本のみで、パソコンでいうところの1.44MBの密度で書き込む仕様ではありません。そのため、書き込まれる密度はJ-3100でかつて使われていた1.21MBフォーマットと同じですので、たとえ専用のソフトを作る/使うにしても、3.5インチのIBM標準フォーマットのフロッピーを読むためには、1.21MBフォーマットの読み込めるドライブが必要です。
東芝ではTPシリーズから3.5インチドライブが採用され、 それまで5インチ搭載のTOSBAC Qシリーズの資産の継承用に、TPシリーズ用外付け5インチドライブというのが用意されました。 しかし、残念ながら東芝ではこれをパソコン用のフロッピーにコンバートするツールが用意さませんでした。 それに、たとえサードパーティ製のツールを用いてIBM標準フォーマットのフロッピーをパソコンで読み込む事ができたとしても、 オフコンではそのほとんどがEBCDICコードを採用しており、 パソコンで使うためにはシフトJISやUTF-8に変換しなければならないという問題もありました。 したがって、東芝のオフコンの資産をパソコンでリプレースするためには、残念ながらプリントアウトして手で入れなおした方がよっぽど早いというのが現状のようです。
オフコンやメインフレームで使われていたフォーマットで、8インチ2D、5インチ2HD、3.5インチ2HDのディスクを、トラック0のみ128×26で、残りのトラック1~76を256×26セクタでフォーマットした形式です。
IBM社のパソコンであるDOS/Vの1.44フォーマットとは互換性が全くなく、通常パソコンでは読むことができません。BIOSを使って直接セクタリードするか、そのようにして作られたツールを使うしかありません。さらに、IBM標準フォーマットを5インチや3.5インチで採用したのは日本のみで、パソコンでいうところの1.44MBの密度で書き込む仕様ではありません。そのため、書き込まれる密度はJ-3100でかつて使われていた1.21MBフォーマットと同じですので、たとえ専用のソフトを作る/使うにしても、3.5インチのIBM標準フォーマットのフロッピーを読むためには、1.21MBフォーマットの読み込めるドライブが必要です。
東芝ではTPシリーズから3.5インチドライブが採用され、 それまで5インチ搭載のTOSBAC Qシリーズの資産の継承用に、TPシリーズ用外付け5インチドライブというのが用意されました。 しかし、残念ながら東芝ではこれをパソコン用のフロッピーにコンバートするツールが用意さませんでした。 それに、たとえサードパーティ製のツールを用いてIBM標準フォーマットのフロッピーをパソコンで読み込む事ができたとしても、 オフコンではそのほとんどがEBCDICコードを採用しており、 パソコンで使うためにはシフトJISやUTF-8に変換しなければならないという問題もありました。 したがって、東芝のオフコンの資産をパソコンでリプレースするためには、残念ながらプリントアウトして手で入れなおした方がよっぽど早いというのが現状のようです。
(注1) ここでは、片面/両面の違いは扱いません。
(注2) 正確には5.25インチですが、ここでは5インチに統一します。
(注2) 正確には5.25インチですが、ここでは5インチに統一します。
3モードFD
J-3100シリーズでは、一部の上位機種を除きVGA対応のDynaBookV386やJ-3100ZS/ZD/ZXシリーズより前の機種では、2モードFD(720KB、1.21MB)でした。また、3モードFDは東芝日英DOS5.0、東芝DOS5.0/V、東芝DOS6.2/V、東芝Windows3.1で使えましたが、他社のOS(IBM
PC-DOSやDR-DOS)では3モードFDは対象がい(東芝ダイヤル3100担当者:談)だそうです。
したがって、DynaBookV386やJ-3100ZS/ZD/ZXより前の機種では上位機種を除き1.44フォーマットは読み書き/フォーマットはできませんし、VGA搭載機種に東芝以外のDOS/Vを入れた場合に、1.21/1.25の読み書き/フォーマットはサポート外です(できるかもしれませんが)。
一般的に3モードFDというのは、元々IBM PC/ATにはないもので、各ドライブメーカーでそれぞれで作られたものです。そのため、ドライブのメーカーによってコントロール方法が異なります。東芝機では東芝製ドライブのみ使われており、東芝ブランドのDOS/VやWindows3.1では東芝製ドライブのドライバーのみが入っています。したがって、他者のOS(IBM PC-DOSやDR DOS)では3モードがサポート対象外なのです。
手持ちの資料が古い(94年版)ので、1.21MBがどのモデルまでサポートされたかは不明です。最低でも手持ちのBREZZA(初期モデル)ではサポートされていました。
フロッピーディスク対応機種
したがって、DynaBookV386やJ-3100ZS/ZD/ZXより前の機種では上位機種を除き1.44フォーマットは読み書き/フォーマットはできませんし、VGA搭載機種に東芝以外のDOS/Vを入れた場合に、1.21/1.25の読み書き/フォーマットはサポート外です(できるかもしれませんが)。
一般的に3モードFDというのは、元々IBM PC/ATにはないもので、各ドライブメーカーでそれぞれで作られたものです。そのため、ドライブのメーカーによってコントロール方法が異なります。東芝機では東芝製ドライブのみ使われており、東芝ブランドのDOS/VやWindows3.1では東芝製ドライブのドライバーのみが入っています。したがって、他者のOS(IBM PC-DOSやDR DOS)では3モードがサポート対象外なのです。
手持ちの資料が古い(94年版)ので、1.21MBがどのモデルまでサポートされたかは不明です。最低でも手持ちのBREZZA(初期モデル)ではサポートされていました。
フロッピーディスク対応機種
機種 | 720KB | 1.21MB | 1.44MB |
---|---|---|---|
DynaBookV486A | ● | ● | ● |
EZ486 | ● | ● | ● |
J-3100GT-VX | ● | ● | ● |
J-3100GT-XD | ● | ● | ● |
J-3100GT-XS | ● | ● | ● |
J-3100PV (Vモデル、Jモデル) | ● | ● | ● |
SysmtemVX | ● | ● | ● |
SV566・560・466 | ● | ● | |
DynaNote | ● | ● | ● |
DynaBookV486C | ● | ● | ● |
DynaBookV486E | ● | ● | ● |
DynaBookV486 | ● | ● | ● |
DynaBookEZ (無印) | ● | ● | ● |
DynaBookV386 | ● | ● | ● |
DynaBook386 | ● | ● | |
DynaBook286 | ● | ● | |
DynaBook (SS001/SS002/SS02E) | ● | ● | |
J-3100ZS/ZD/ZX | ● | ● | ● |
J-3300 | ● | ● | ● |
J-3100SGX | ● | ● | ● |
J-3100SGT | ● | ● | |
J-3100GXS | ● | ● | ● |
J-3100GT-SX | ● | ● | |
J-3100GX | ● | ● | |
J-3100GL | ● | ● | ● |
J-3100GT | ● | ● | |
J-3100SL | ● | ● | |
J-3100GT | ● | ● | |
J-3100B | ● |
※入力ミスの可能性もありますので、正式なデーターについてはメーカーにお問い合わせください。教えてくれるかどうかわかりませんが・・・
ディスク割り込み
拡張INT13H非対応
ディスク割り込みは、必要なパラメーターをレジスタやメモリにセットした後、 INT13Hを発行します。なお、このOOh!Dynaは東芝J-3100シリーズに関する資料ですので、他社のPC/AT機および東芝のJ-3100PV2以降の機種では当てはまらない場合があります。DCGA専用のファンクションについては「このファンションはDCGA専用です」と注釈を入れています。
手持ちの資料が古く(1994年版)拡張INT13Hに対応しておりません。そのため、古いシステムの解析など、どうしても古い機種用の資料が必要な場合のみご利用ください。これから作る場合は、BIOSではなくOS割り込みをご利用ください。
ドライブ番号
フロッピーディスクとハードディスク(やハードRAM)では異なり、OS割り込みのような連番にはなりません。ドライブ番号の最上位ビットが立っているとハードディスク(やハードRAM)で、最上位ビットが立ってないとフロッピーディスクという事になります。
フロッピー1台目・・・00H
フロッピー2台目・・・01H
ハードディスク1台目・・・80H
ハードディスク2台目・・・81H
フロッピーディスクはケーブルの先が1台目、中間が2台目、ハードディスクはプライマリーマスター、セカンダリーマスター、プライマリースレーブ、セカンダリースレーブの順で割り当てられると思われますが、残念ながら実験した事がないので未確認です。申し訳ありません。
FDDパラメーター
INT13Hがフロッピーにアクセスするために必要なテーブルです。INT 1EHの割り込みベクタアドレスに格納されています。
ディスク割り込みは、必要なパラメーターをレジスタやメモリにセットした後、 INT13Hを発行します。なお、このOOh!Dynaは東芝J-3100シリーズに関する資料ですので、他社のPC/AT機および東芝のJ-3100PV2以降の機種では当てはまらない場合があります。DCGA専用のファンクションについては「このファンションはDCGA専用です」と注釈を入れています。
手持ちの資料が古く(1994年版)拡張INT13Hに対応しておりません。そのため、古いシステムの解析など、どうしても古い機種用の資料が必要な場合のみご利用ください。これから作る場合は、BIOSではなくOS割り込みをご利用ください。
ドライブ番号
フロッピーディスクとハードディスク(やハードRAM)では異なり、OS割り込みのような連番にはなりません。ドライブ番号の最上位ビットが立っているとハードディスク(やハードRAM)で、最上位ビットが立ってないとフロッピーディスクという事になります。
フロッピー1台目・・・00H
フロッピー2台目・・・01H
ハードディスク1台目・・・80H
ハードディスク2台目・・・81H
フロッピーディスクはケーブルの先が1台目、中間が2台目、ハードディスクはプライマリーマスター、セカンダリーマスター、プライマリースレーブ、セカンダリースレーブの順で割り当てられると思われますが、残念ながら実験した事がないので未確認です。申し訳ありません。
FDDパラメーター
INT13Hがフロッピーにアクセスするために必要なテーブルです。INT 1EHの割り込みベクタアドレスに格納されています。
オフセット | ビット | |||||||
---|---|---|---|---|---|---|---|---|
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
+0 | ステップレートタイム | ヘッドアローンドタイム | ||||||
+1 | ヘッドロードタイム、 DMAモード | |||||||
+2 | モーターオフタイム (*55msec) | |||||||
+3 | セクタ長 | |||||||
+4 | 1トラックあたりのセクタ数 | |||||||
+5 | ギャップ長 | |||||||
+6 | データー長 | |||||||
+7 | フォーマット時のギャップ長 | |||||||
+8 | フォーマット時のデーターパターン | |||||||
+9 | ヘッドセッティングタイム(msec) | |||||||
+10 | モーターオンタイム(*125msec) | |||||||
+11 | 最大トラック番号 | |||||||
+12 | 転送レート |
セクタ長(2ビット)
00: 128バイト
01: 256バイト
10: 512バイト
11: 1024バイト
HDDパラメーター
HDDパラメーターは、割り込みベクタアドレスINT 41Hにマスター、INT 46Hにスレーブのディスクのパラメーターが格納されます。という事は、この割り込みでサポートされるハードディスクは2台までで、E-IDE(とかUltraATAとかSATA)には対応していません。E-IDE以降は拡張INT13Hを使いますが、手持ちの資料が古い(1994年版)ので、ここでは無印IDEのみ扱います。
00: 128バイト
01: 256バイト
10: 512バイト
11: 1024バイト
HDDパラメーター
HDDパラメーターは、割り込みベクタアドレスINT 41Hにマスター、INT 46Hにスレーブのディスクのパラメーターが格納されます。という事は、この割り込みでサポートされるハードディスクは2台までで、E-IDE(とかUltraATAとかSATA)には対応していません。E-IDE以降は拡張INT13Hを使いますが、手持ちの資料が古い(1994年版)ので、ここでは無印IDEのみ扱います。
+0 +1 +2 +3+4 +5+6 +7 +8 +9 +10 +11 +12+13 +14 +15 |
総シリンダ数 ヘッド数 ライト補償開始シリンダ 制御バイト ヘッド退避シリンダ 1トラックあたりのセクタ数 ECCバイト数 |
ハードRAM
直訳すると硬いランダムアクセスメモリー・・・って、それじゃ意味がわからないですね。要するに、ハードディスクの円盤の代わりにRAMを使うのでハードRAM、という和製英語です。
この頃にも「RAMディスク」という、メモリーをハードディスク代わりにする技術はあったのですが、電源を切ると内容が失われてしまったので、一時ファイルの保存用ぐらいにしか使えませんでした。ハードRAMはバッテリーで内容が保存されているので、バッテリーが切れるまでは内容は保たれます。とはいえ現在のSSDドライブと違い、ッテリーがなくなると内容が失われます。
ハードRAMに対しては、コントローラーリセットは行われずステータスリードしてもエラーは返りません。ただし、ハードディスクに対するプログラムがそのまま流用できるように、エラーにはならないようになっています。
AH=00H コントローラーリセット
直訳すると硬いランダムアクセスメモリー・・・って、それじゃ意味がわからないですね。要するに、ハードディスクの円盤の代わりにRAMを使うのでハードRAM、という和製英語です。
この頃にも「RAMディスク」という、メモリーをハードディスク代わりにする技術はあったのですが、電源を切ると内容が失われてしまったので、一時ファイルの保存用ぐらいにしか使えませんでした。ハードRAMはバッテリーで内容が保存されているので、バッテリーが切れるまでは内容は保たれます。とはいえ現在のSSDドライブと違い、ッテリーがなくなると内容が失われます。
ハードRAMに対しては、コントローラーリセットは行われずステータスリードしてもエラーは返りません。ただし、ハードディスクに対するプログラムがそのまま流用できるように、エラーにはならないようになっています。
AH=00H コントローラーリセット
入力 | 出力 |
---|---|
AH 00H DL ドライブ番号 |
AH ステータス CF=1ならエラー |
フロッピーディスクコントローラー、ハードディスクコントローラーをリセットします。ハードディスクの場合はHDDパラメーターがセットされます。ハードRAMではエラーにはなりませんが、何もしません。ステータスについては、AH=01のところで説明します。
AH=01H ステータスリード
AH=01H ステータスリード
入力 | 出力 |
---|---|
AH 01H DL ドライブ番号 |
AH ステータス CF=1ならエラー |
最後に実行した処理のエラーステータスを読みます。ハードRAMの場合はエラーは発生せずAH=00が返ります。
ステータス | 発生箇所 | 意味 |
---|---|---|
FFH | HDD | 有効な操作に失敗した |
E0H | HDD | 不良HDD |
CCH | HDD | 選択したHDDが書き込みに失敗した |
BBH | HDD | 未定義エラー |
AAH | HDD | ドライブ動作不可 |
80H | FDD/HDD | タイムアウト |
40H | FDD/HDD | シークエラー |
20H | FDD/HDD | フロッピーディスク/ハードディスクコントローラーに障害が生じた |
11H | HDD | 訂正可能なECCエラー |
10H | FDD/HDD | CRCエラー/訂正不可能なECCエラー |
0BH | HDD | 不良トラック検出 |
0AH | HDD | 不良セクタ検出 |
09H | FDD/HDD | 64KB以上のDMA転送を行おうとした |
08H | FDD | DMAオーバーラン |
07H | HDD | ドライブの初期化ができない |
06H | FDD | メディアが交換された |
05H | HDD | リセットの失敗 |
04H | FDD/HDD | セクタが見つからない |
03H | FDD | ライトプロテクトされたフロッピーに書き込もうとした |
02H | FDD/HDD | アドレスマークが見つからない |
01H | FDD/HDD | 不正なコマンド |
00H | FDD/HDD | エラーなし |
AH=02H シーク&リード
フロッピーディスク
ハードディスク
|
フロッピーディスクとハードディスクで若干違うのは、ハードディスクはシリンダ番号が1バイトでは足りないため、CXレジスタの10ビットが割り当てられます。逆に言えば10ビットしか割り当てられてません。それが「8.4GBの壁」を生み出す要員ともなっています。
また、BIOSではヘッド番号として8ビット取ってあるのですが、IDEの規格ではヘッド番号に4ビットしか扱えないため、結果IDEのディスクを拡張INT13H非対応のBIOSで扱うと、504MBまでしか扱えません。これが「504MBの壁」です。
ハードRAMの場合、容量が4MB以下のものはFDD、4MBを超えるものはHDDとして扱います。
AH=03H シーク&ライト
また、BIOSではヘッド番号として8ビット取ってあるのですが、IDEの規格ではヘッド番号に4ビットしか扱えないため、結果IDEのディスクを拡張INT13H非対応のBIOSで扱うと、504MBまでしか扱えません。これが「504MBの壁」です。
ハードRAMの場合、容量が4MB以下のものはFDD、4MBを超えるものはHDDとして扱います。
AH=03H シーク&ライト
フロッピーディスク
ハードディスク
|
読み込み/書き込みの違いがあるだけで、パラメーターは読み込みと同じです。
AH=04H シーク&リード&ベリファイ
フロッピーディスク
ハードディスク
|
読み込んだ後にベリファイを行う以外は、AH=02Hと同じです。
AH=05H シーク&フォーマット
フロッピーディスク
+0 トラック番号 +1 ヘッド番号 +2 セクタ番号 +3 データー長 00H 128 01H 256 02H 512 03H 1024 この書式のデーターを、セクタ数分用意します。 フロッピーディスクをフォーマットする前に、事前にAH=17セットメディア/ドライブか、AH=18セットメディアタイプのいずれかを実行しておく必要があります。 ハードディスク
+0 00H良セクタ 80H不良セクタ +1 セクタ番号 ハードディスクに対しては、あくまで論理フォーマット(つまり、良セクタ・不良セクタのマークおよび、セクタ番号の割り振り)を行うためのものであり、セクタ長は指定できません。 PC/AT互換機用のハードディスクは出荷時に512セクタでローレベルフォーマット済であり、PC-9801のようにローレベルフォーマットをする必要はありません。また、PC/AT互換機のハードディスクのセクタ長は512と決まっており、BIOSでローレベルフォーマットはサポートされていません。 |
AH=08H リードドライブタイプパラメーター
フロッピーディスク
ハードディスク
|
AH=09H ドライブパラメーターセット HDD専用
入力 | 出力 |
---|---|
AH 09H DL ドライブ番号 |
AH ステータス CF=1ならエラー |
AH=0AH シーク&リード LONG HDD専用
入力 | 出力 |
---|---|
AH 0AH ES:BX バッファアドレス CH シリンダ番号の下位8ビット CL シリンダ番号の上位2ビット/セクタ番号 DH ヘッド番号 DL ドライブ番号 |
AH ステータス CF=1ならエラー |
このファンクションはハードディスク専用です。また、DCGA専用です。AH=02Hとはデーターの後にECCコードを格納する所が違います。そのため、バッファは1セクタ当たりECCコード分だけ4バイト多く(つまり516バイト)
確保しなければなりません。
AH=0BH シーク&ライト LONG HDD専用
入力 | 出力 |
---|---|
AH 0BH ES:BX バッファアドレス CH シリンダ番号の下位8ビット CL シリンダ番号の上位2ビット/セクタ番号 DH ヘッド番号 DL ドライブ番号 |
AH ステータス CF=1ならエラー |
このファンクションはハードディスク専用です。また、DCGA専用です。AH=03Hとはデーターの後にECCコードを格納する所が違います。そのため、バッファは1セクタ当たりECCコード分だけ4バイト多く(つまり516バイト)
確保しなければなりません。
AH=0CH シーク HDD専用
入力 | 出力 |
---|---|
AH 0CH ES:BX バッファアドレス CH シリンダ番号の下位8ビット CL シリンダ番号の上位2ビット DH ヘッド番号 DL ドライブ番号 |
AH ステータス CF=1ならエラー |
このファンクションはハードディスク専用です。ハードディスクの指定のヘッドを指定位置にシークします。
AH=0DH HDCリセット HDD専用
入力 | 出力 |
---|---|
AH 0DH DL ドライブ番号 |
AH ステータス CF=1ならエラー |
このファンクションはハードディスク専用です。
AH=10H テストドライブレディ HDD専用
AH=10H テストドライブレディ HDD専用
入力 | 出力 |
---|---|
AH 10H DL ドライブ番号 |
AH ステータス CF=1ならエラー |
このファンクションはハードディスク専用です。また、DCGA専用です。HDDがパワーオン時の安定動作中に入ったかどうか、シークが完了したかどうか確認する時に使います。
AH=11H ヘッド退避 HDD専用
入力 | 出力 |
---|---|
AH 11H DL ドライブ番号 |
AH ステータス CF=1ならエラー |
このファンクションはハードディスク専用です。
AH=14H 自己診断 HDD専用
入力 | 出力 |
---|---|
AH 14H DL ドライブ番号 |
AH ステータス CF=1ならエラー |
このファンクションはハードディスク専用です。また、DCGA専用です。ハードディスクのセルフテストを実行し、結果をAHレジスタに返します。
AH=15H リードドライブタイプ
入力 | 出力 |
---|---|
AH 15H DL ドライブ番号 |
AH ドライブタイプ 00H ドライブなし 01H FDD メディアチェンジ検出機能なし 2D 02H FDD メディアチェンジ検出機能あり 2DD/2HD 03H HDD 70H ハードRAM CX:DX セクタ総数(HDD、ハードRAMの場合のみ) |
AHにドライブタイプが返ります。HDDかハードRAMの場合は、CX:DXレジスタにセクタ総数が32ビットで返します。
AH=16H リードディスクチェンジ FDD専用
入力 | 出力 |
---|---|
AH 16H DL ドライブ番号 |
AH ステータス 00H 入れ替えられてない 01H ドライブ番号が無効 06H 入れ替えられた 80H メディアが入ってない CF=1なら入れ替えられたまたはエラー |
このファンクションはFDD専用です。フロッピーディスクが入れ替えられたかどうかをチェックします。
AH=17H セットメディアドライブ FDD専用
入力 | 出力 |
---|---|
AH 17H AL モード DL ドライブ番号 |
AH ステータス 00H 入れ替えられてない 01H ドライブ番号が無効 06H 入れ替えられた 80H メディアが入ってない CF=1なら入れ替えられたまたはエラー |
このファンクションはFDD専用です。また、DCGA専用です。AH=05Hでフォーマットする前に、メディアが交換されたかどうかをチェックします。もし、メディアが交換されていた場合(CF=1、AH=06H)は、このファンクションを再度実行する必要があります。
ALレジスタにはモードをセットしますが、ドライブが2D、2DD、2DD/2HDによってセットする値が異なります。
・2Dドライブの場合:01H
・2DDドライブの場合:2DDなら01H、2Dなら02H
・2DD/2HDドライブの場合: 2DDなら01H、2Dなら02H、2HDなら03H
このファンクションはDCGA専用なので、VGA対応にするのであればAH=18Hを使用する必要があります。
ALレジスタにはモードをセットしますが、ドライブが2D、2DD、2DD/2HDによってセットする値が異なります。
・2Dドライブの場合:01H
・2DDドライブの場合:2DDなら01H、2Dなら02H
・2DD/2HDドライブの場合: 2DDなら01H、2Dなら02H、2HDなら03H
このファンクションはDCGA専用なので、VGA対応にするのであればAH=18Hを使用する必要があります。
AH=18H セットメディアドライブ FDD専用
入力 | 出力 |
---|---|
AH 18H CH 最大トラック番号 CL 最大セクタ番号 DL ドライブ番号 |
AH エラーコード CF=1ならエラー ES:DI パラメーターテーブルのアドレス |
このファンクションはFDD専用です。こちらはVGAモードでも使う事ができます。AH=05Hフォーマットの前に実行する必要があります。パラメーターテーブルについては、この節の最初の方に書いてあります。もし、メディアが交換されていた場合(CF=1、AH=06H)は、このファンクションを再度実行する必要があります。
AH=70H セットドライブモード FDD専用
入力 | 出力 |
---|---|
AH 70H AL モード 01H 2DD/2HD(1.21MB) 02H 2HD(1.44MB) BX 0000H DL ドライブ番号 |
AH エラーコード CF=1ならエラー BX 1234H |
このファンクションはFDD専用です。 このファンクションはDCGA専用で、日英DOS5.0の日本語モード専用です。
3モードFDを、1.44MBモードにするか、1.21MB(または720KB)モードにするかを指定します。
このファンクションが使える環境は限られますので、まずはBXレジスタに0000Hをセットしておき、INT 70Hをコールした後BXレジスタをチェックしてください。1234Hがセットされていない場合は、このファンクションがサポートされていません。といいますのも、もともとDOS/Vには「3モードFD」という概念がなく、3.5インチ2HDは1.44MBしか想定されていないためです。
ただし、東芝DOS5.0/Vや東芝DOS6.2/VにはFD12.SYSという3モードFDを使用可能にするドライバがあり、それを組み込む事でこのファンクションが使用可能になります。このドライバは東芝製ドライブ専用ですので、おそらく他社製DOS/V機では使えないと思われます。
3モードFDを、1.44MBモードにするか、1.21MB(または720KB)モードにするかを指定します。
このファンクションが使える環境は限られますので、まずはBXレジスタに0000Hをセットしておき、INT 70Hをコールした後BXレジスタをチェックしてください。1234Hがセットされていない場合は、このファンクションがサポートされていません。といいますのも、もともとDOS/Vには「3モードFD」という概念がなく、3.5インチ2HDは1.44MBしか想定されていないためです。
ただし、東芝DOS5.0/Vや東芝DOS6.2/VにはFD12.SYSという3モードFDを使用可能にするドライバがあり、それを組み込む事でこのファンクションが使用可能になります。このドライバは東芝製ドライブ専用ですので、おそらく他社製DOS/V機では使えないと思われます。
DOS割り込み
BIOSを使ったディスクのリード/ライトは、ハードディスクのスプラッタ数やヘッド数に依存するだけでなく、存在するドライブ番号もアプリ側でチェックしなければならず、あまりにも手間がかかりすぎます。そこでOS割り込みのセクタリード/ライト機能を使う方法を紹介します。これなら、ドライブ番号はOSが認識しているドライブレターに相当する値をセットするだけですし、セクタ番号もトラックやシリンダやヘッドに関係なく連番で指定できるため、ハードへの依存性の低いアプリになります。
ただし、MS-DOS割り込みを使った方法では16bitFATにしか対応しておらず、扱えるHDDのサイズは最大でも2GBになります。また、Windows環境下で実行すると、大抵はウイスル扱いされて強制停止させられてしまうと思います。さらに、ディスクをセクタ単位で読み書きするのは非常に危険で、最悪ハードディスクの中身が全部パーという事態にもなりかねません。できる限りこれらのファンクションは使わない方が良いです。
アブソリュートディスクリード INT 25H
ただし、MS-DOS割り込みを使った方法では16bitFATにしか対応しておらず、扱えるHDDのサイズは最大でも2GBになります。また、Windows環境下で実行すると、大抵はウイスル扱いされて強制停止させられてしまうと思います。さらに、ディスクをセクタ単位で読み書きするのは非常に危険で、最悪ハードディスクの中身が全部パーという事態にもなりかねません。できる限りこれらのファンクションは使わない方が良いです。
アブソリュートディスクリード INT 25H
入力 | 出力 |
---|---|
AL 装置番号(0=A、1=B、2=C …) CX 読み込むセクタ数 DX 論理セクタ番号 DS:BX バッファアドレス |
CF=1ならエラー AL エラーコード 00H 書込み禁止 02H ドライブの準備ができてない 04H データーエラー 06H シークエラー 08H セクタが見つからない 0AH 書き込みができない 0CH その他のエラー |
ディスクからセクタ単位でデーターをDS:BXで指定したアドレスに読み込みます。セクタ番号はトラックやシリンダやヘッドを気にする必要がなく、OSが認識している順に0から連番が順に割り当てられます。これを論理セクタ番号といいます。
ただし、この方法ではセクタ番号が16bit幅しかないため、512×65535 = 32MBまでしかアクセスする事ができません。そこで、DOSの5.0以降では、32MB以上のパーティションにアクセスするために以下の方法が用意されています。
ただし、この方法ではセクタ番号が16bit幅しかないため、512×65535 = 32MBまでしかアクセスする事ができません。そこで、DOSの5.0以降では、32MB以上のパーティションにアクセスするために以下の方法が用意されています。
入力 | 出力 |
---|---|
AL 装置番号(0=A、1=B、2=C …) CX -1 DS:BX パラメータアドレス +0+1+2+3 セクタ番号 +4+5 セクタ数 +6+7+8+9 バッファアドレス |
CF=1ならエラー AL エラーコード 01H 無効なパラメーター 02H その他のエラー 03H 書込み禁止 04H セクタが見つからない 06H シークエラー 08H DMAオーバーラン 10H CRCエラー 20H コントローラーエラー 40H シークエラー 80H 接続機構が応答障害 |
CXレジスタに-1をセットする事で、32MB以上のパーティション対応の読み方をするという意味になります。この方法ではセクタ番号が32ビットまで拡張されたため、理論的には2TBまで扱えます。ただし、MS-DOSは16bit
FATしか対応していないため、「2GBの壁」の制約もあります。
この方法を使うとDOSのバージョンに依存してしまうため、プログラムの頭でDOSのバージョンもチェックしておいた方がいいと思います。
この方法を使うとDOSのバージョンに依存してしまうため、プログラムの頭でDOSのバージョンもチェックしておいた方がいいと思います。
; DOSのバージョンチェック MOV AH,30H INT 21H CMP AL,5 JAE KARENT MOV AH,09H MOV DX,OFFSET MES4 INT 21H JMP OWARI
INT 25H、INT 26Hともに割り込みから戻ってきたときに、元のフラグレジスタは割り込み内部でPUSHされたまま戻ってきます。割り込みから戻ったときにPOPFしてしまうとCF=1でエラーかどうかの判定ができないので、使ってないレジスタにPOPするか、SPを+2してスタックポインターを元に戻さなければなりません。
以下の例では、エラーチェックをせずにAXレジスタにPOPしていますが、これだとエラーコードがわからなくなるのであまり良くないです。
以下の例では、エラーチェックをせずにAXレジスタにPOPしていますが、これだとエラーコードがわからなくなるのであまり良くないです。
;------------ セクタリード SREAD = $ MOV AX,CS MOV [BSEG],AX MOV SI,OFFSET BUFF MOV [BOFF],SI MOV AL,[DRNO] MOV BX,OFFSET PACKET MOV CX,-1 INT 25H POP AX PACKET DD 0 DW 1 BOFF DW 0 BSEG DW 0
アブソリュートディスクライト INT 26H
入力 | 出力 |
---|---|
AL 装置番号(0=A、1=B、2=C …) CX 書き込むセクタ数 DX 論理セクタ番号 DS:BX バッファアドレス |
CF=1ならエラー AL エラーコード 00H 書込み禁止 02H ドライブの準備ができてない 04H データーエラー 06H シークエラー 08H セクタが見つからない 0AH 書き込みができない 0CH その他のエラー |
読み込みと書き込みの違いだけで、ほとんどINT 25Hと同じです。リードと同様、32MB以上のパーティションに対応するために、DOS5.0以上では以下の方法が用意されています。
入力 | 出力 |
---|---|
AL 装置番号(0=A、1=B、2=C …) CX -1 DS:BX パラメータアドレス +0+1+2+3 セクタ番号 +4+5 セクタ数 +6+7+8+9 バッファアドレス |
CF=1ならエラー AL エラーコード 01H 無効なパラメーター 02H その他のエラー 03H 書込み禁止 04H セクタが見つからない 06H シークエラー 08H DMAオーバーラン 10H CRCエラー 20H コントローラーエラー 40H シークエラー 80H 接続機構が応答障害 |
;------------ セクタライト MOV AL,[DRNO] MOV BX,OFFSET PACKET MOV CX,-1 INT 26H POP AX PACKET DD 0 DW 1 BOFF DW 0 BSEG DW 0
壁
DOS割り込みにしても、BIOSコールにしても、設計段階では十分に余裕を持って設計したつもりだったのでしょう。しかし、ハードディスクの容量はOSやBIOSの設計者の想像をはるかに超えたスピードで進化してしまい、ツギハギで規格を追加したため、いたるところに容量の壁ができてしまいました。
32MBの壁
MS-DOS 3.1ではセクタ番号を16ビットで管理していたため、1パーティションあたり最大のセクタ数が65535になってしまいました。そのため、1パーティションあたり32MBまでしか扱えません。そこで、DOS5.0以降では(注:東芝で4.0はなかったので割愛します)セクタ番号が32ビットに拡張され、理論的には2TBまで使用できるようになりました。(ただしDOSは2GBの壁の制約も受けます)
504MBの壁
拡張INT13Hに対応していないBIOSでは、シリンダ番号が10ビットしか割り当てられてません。また、BIOSではヘッド番号として8ビット取ってあるのですが、IDEの規格ではヘッド番号に4ビットしか扱えないため、結果としてIDEのディスクを拡張INT13H非対応のBIOSで扱うと、504MBまでしか扱えなくなります。
2GBの壁
E-IDEを使う事によって「ヘッド番号が4ビットしかない」という制約はなくなりますが、それとは別にMS-DOSでは16bit FATしか対応していないため、1パーティションの最大サイズは2GBになります。この制約は32bit FATが採用されたWindows95 OSR2の登場まで続きました。
8.4GBの壁
E-IDEを使い、32bit FATを使っても、INT 13Hで扱うシリンダ番号が10ビットしかないため、どうしてもハードディスク1台で扱える最大サイズが8.4GBになってしまいます。この制約を破るためには、拡張INT 13H対応のマザーボードを使うしかありません。ただし、BIOSアップデートを行う事によって拡張INT 13H対応になる場合もあります。
137GBの壁
E-IDEでは当初論理セクタ番号(LBA)は28ビット幅でした。そのため137GBまでしか使えませんでした。そこで、LBAを48ビットまで拡張したドライブがMaxtor社から発売され、現在(2011年)もこの方式が主流になっています。これで理論上128ペタバイトまでの容量を作る事ができます。
137GB以上のハードディスクを扱うためにはBIOSやOSが対応していなければなりません。OSはWindows2000はSP3、WindowsXPはSP1以降を当てることで対応するようになります。VISTAやWindows7では標準で対応しています。BIOSの方はアップデートで対応できるものもあります。
32MBの壁
MS-DOS 3.1ではセクタ番号を16ビットで管理していたため、1パーティションあたり最大のセクタ数が65535になってしまいました。そのため、1パーティションあたり32MBまでしか扱えません。そこで、DOS5.0以降では(注:東芝で4.0はなかったので割愛します)セクタ番号が32ビットに拡張され、理論的には2TBまで使用できるようになりました。(ただしDOSは2GBの壁の制約も受けます)
504MBの壁
拡張INT13Hに対応していないBIOSでは、シリンダ番号が10ビットしか割り当てられてません。また、BIOSではヘッド番号として8ビット取ってあるのですが、IDEの規格ではヘッド番号に4ビットしか扱えないため、結果としてIDEのディスクを拡張INT13H非対応のBIOSで扱うと、504MBまでしか扱えなくなります。
2GBの壁
E-IDEを使う事によって「ヘッド番号が4ビットしかない」という制約はなくなりますが、それとは別にMS-DOSでは16bit FATしか対応していないため、1パーティションの最大サイズは2GBになります。この制約は32bit FATが採用されたWindows95 OSR2の登場まで続きました。
8.4GBの壁
E-IDEを使い、32bit FATを使っても、INT 13Hで扱うシリンダ番号が10ビットしかないため、どうしてもハードディスク1台で扱える最大サイズが8.4GBになってしまいます。この制約を破るためには、拡張INT 13H対応のマザーボードを使うしかありません。ただし、BIOSアップデートを行う事によって拡張INT 13H対応になる場合もあります。
137GBの壁
E-IDEでは当初論理セクタ番号(LBA)は28ビット幅でした。そのため137GBまでしか使えませんでした。そこで、LBAを48ビットまで拡張したドライブがMaxtor社から発売され、現在(2011年)もこの方式が主流になっています。これで理論上128ペタバイトまでの容量を作る事ができます。
137GB以上のハードディスクを扱うためにはBIOSやOSが対応していなければなりません。OSはWindows2000はSP3、WindowsXPはSP1以降を当てることで対応するようになります。VISTAやWindows7では標準で対応しています。BIOSの方はアップデートで対応できるものもあります。
参考文献
『J-3100解析ハンドブック』 1989年 土屋勝著 ナツメ社
『DOS/Vテクニカル・リファレンス・マニュアル』 1993年 芦達剛著 ソフトバンク
『J-3100シリーズ・テクニカルマニュアル』 1994年 南部武彦著 ソフトバンク
『ATOK読本』 1994年 山田祥平 ジャストシステム
『東芝パソコンハンドブック94年版』 平成6年3月1日
このページの先頭へ
『J-3100解析ハンドブック』 1989年 土屋勝著 ナツメ社
『DOS/Vテクニカル・リファレンス・マニュアル』 1993年 芦達剛著 ソフトバンク
『J-3100シリーズ・テクニカルマニュアル』 1994年 南部武彦著 ソフトバンク
『ATOK読本』 1994年 山田祥平 ジャストシステム
『東芝パソコンハンドブック94年版』 平成6年3月1日
広告