E.Suzuki dj98 READ FAQ
DJGPP98 FAQ を読む

djgppはフリーソフトなので紙のマニュアルはありませんが、電子ドキュメントはあります。これらは英語なのでちょっと気が引けてしまいますが、よんでみると結構読めるもんです。 ここでは 手っ取り早く 答えを得るために FAQ を読んでみることにしました。

DJGPP FAQ 1.00 の日本語訳を発見しました。やっぱり日本語だと楽でいいです。
Japanese FAQ/DOC Collection 和訳にこだわったリンク集
DJGPP FAQ 1.00 日本語訳 きちんとした日本語訳です

Contents
FAQとは
入手ファイル
readme.faq を読んでみる
djgpp.faq を読んでみる
FAQ を読んで調べる
終わりに


FAQとは

FAQとは Frequently-Asked Questions の略です。そのまま訳すと「よくたずねられる質問」、日本語風に直せば 「Q & A」といったところでしょう。FAQ は「知りたいこと」と「その答え」が対になってかかれているので割と簡単に知りたいことを探し出すことができます。手っ取り早く答えを得るためには FAQ を読むといいでしょう。


入手ファイル

FAQのアーカイブは ring server や riken などから入手してください。私は djgpp ver.1 を使っているので FAQ も ver.1 のものを落としてきます。
ring server から djgpp v1 faq リストを Download

早速これを展開します。djgpp を Install してあるディレクトリに移動して
a:\djgpp> unzip -d faq102.zip
とすると以下の三つのファイルがディレクトリ付きで展開されます。unzip には -d オプションをつけてください。そうしないとすべてのファイルがカレントディレクトリに展開されてしまいます。自信のない人は一回別のディレクトリで展開を練習してからやってみてください。
展開されるファイルは以下の通りです
a:\djgpp\docs\djgpp\readme.faq    FAQについての説明
a:\djgpp\docs\djgpp\whatsnew.faq  以前のFAQとの違い
a:\djgpp\docs\djgpp\djgpp.faq     FAQの本体


readme.faq を読んでみる

早速読んでみます。まずは readme.faq を私がわかるところだけ引用して、いい加減に訳してみます。「こんないい加減な訳は納得いかない」という人は、私に「この訳はいい加減なので何とかしなさい」というメールを送るかわりに「私のページにもっと完全な訳を載せたのでリンクを張りなさい」というメールを送ってください。すぐにリンクを張ります。

This is version 1.2 of the FAQ list for DJGPP.
これは DJGPP の FAQ リストの ver.1.2です

You should unzip this archive with PKUNZIP -d command from the
root directory of your DJGPP installation tree. The files will
be extracted to the docs/djgpp subdirectory.
このアーカイブを PKUNZIP -d コマンドで 、あなたが DJGPP を インストールしたディレクトリに unzip してください。ファイルは docs/djgpp というサブディレクトリに展開されます。

For those who are familiar with the previous versions, the file
WHATSNEW.FAQ describes the changes in this release.
以前のバージョンに詳しい人のために、WHATSNEW.FAQ というファイルがこのリリースでの変更点を説明します。

とまあ、こんな感じで結構読めてしまいます(そりゃそうだ、読めるところしか訳してないんだから)。読んでもわからないのは、英語だからではなくて充分な周辺知識がないからです。日本語で書かれていてもわからないものはわかりません。自分にわかる下地ができていれば英語でも日本語でも分かるのです。


djgpp.faq を読んでみる

まず、目次があります。目次があるっていうのはいいですね。よいガイドラインになります。メンテは大変そうですけどね。またまたいい加減に訳します。
Table of Contents:

0. If You Are In a Hurry
1. What is DJGPP?
2. Hardware and Software Requirements
3. Where and What to Download?
4. Where is the Documentation?
.......
目次
0.あなたが急いでいる場合
1.DJGPPとは何ですか
2.必要なハードとソフト
3.どこで何をダウンロードすればいいですか
4.ドキュメントはどこにありますか
......

それぞれの項目へ移動するとさらに細かい質問が並んでいます。
   0. If You Are In a Hurry
      ---------------------
      Q: Do you really mean I have to read this looongish FAQ list to get
         my answers?
      Q: I have this problem which I absolutely MUST solve NOW!  What do I
         do? 
      A: The questions in this documents are listed, as much as possible,
         in the order they appear when one goes through getting DJGPP,
         installing it and using it.  To quickly find an answer to your
         question, look first at the Table of Contents above.  If you
         don't find anything appropriate, search this FAQ for words which
         are pertinent to your problem.  Failing all that, here are some
         pointers to the most important topics in this FAQ list, in case
         this order, the contents table above and keyword search with the
         help of your favorite editor won't do their job for you:
Q:答えを得るためにこんな長ーいFAQを読めっていうのか?
Q:今すぐ解決しなければならない問題があります。どうすればいいですか?

A:このドキュメントには、DJGPPを入手してインストールして使っていく上で起こる疑問を可能な限り順番にならべてあります。あなたの疑問の回答をすばやく見つけるためにまず目次を見てください。もし関連事項が見つからなかったら、あなたの問題に関係ある言葉でこの FAQ を サーチして見てください。それでもだめだった場合、つまり目次に関連項目もなくエディターのサーチが何もヒットしなかった場合は、このFAQの重要なトピックについてのポインタを用意したのでそちらを見てください。

後半わからなかったのでぜんぜん英語と対応してませんが大筋はこんなもんでしょう。目次を見てだめだった人はエディターでサーチしろと書いてあります。電子ドキュメントのいいところはサーチができるところです。さらにこのFAQはプレーンテキストなので、お気に入りのエディターでサーチして関連項目を次々と見つけ出すことができるのです。このお気に入りのエディターってところが重要ですね。NetscapeやWindowsヘルプの検索は使いにくくていけません。やっぱりお気に入りのエディターに限ります。ちなみに私は VZ です。


FAQ を読んで調べる

以前、Turbo C でPC9800 の BIOS をコールして RS-232C 通信関数を作ったのですが、これを gcc に移植するときに問題に直面しました。受信バッファをコンベンショナルメモリに確保して BIOS をコールするときに セグメントとオフセットを渡さないといけないのですが、プロテクトモードのリニアアドレッシングの go32 でどうやってそれをやればいいのでしょう。これを FAQ で調べてみることにしました。

目次を見ると
18. Low-level DOS/BIOS and Hardware-oriented Programming

というのがあるのでここを読んでみることにします。すると
・BOIS をコールするには real-mode に切り替えないといけない
・go32は割り込みを補足して real-mode に切り替えてから再発行する
・サポートされてない割り込みをするときは _go32_dpmi_simulate_int()を使う
・詳しくは djdocXXX.zip というドキュメントを読んでください
・コンベンショナルメモリを確保するには_go32_dpmi_allocate_dos_memory()を使う

などなどが書いてあって _go32_dpmi_allocate_dos_memory() でバッファメモリを確保して _go32_dpmi_simulate_int() を使って割り込みを行うのだ、ということが書いてあります。
ただ、これらの未知の関数を使うには djdocXXX.zip を入手して関数のドキュメントを読まないといけないんですが、それはまた気が向いたら書きます。


おわりに

なにはともあれ、英語のドキュメントも周辺知識があればなんとなく読めてしまうものです。英語の文章を訳すのであれば完全に訳さなければならないかもしれませんが、単にドキュメントを読むのであれば、意味が分かって問題が解決すればいいので、文法などにこだわらずさらっと読めればいいと思います。
一番問題なのは「どこに自分のほしい情報が書いてあるか」を見つけ出すことでしょう。