Last Update 2003/12/05
MS-DOSプログラマーズ・バイブル
内部構造とシステム・コールとデバイス・ドライバと…

阿部 英志 著
B5判 360ページ
定価2,670円(税込)
JAN9784789834810
1989年10月15日発行
[絶版1998.2] MS-DOSプログラマーズ・バイブル
大変恐縮ですが,こちらの商品は品切れ絶版となりました.

 C言語とアセンブリ言語を用いた応用プログラムの作成に必須となる技術情報を,システム・コールの使いかたとデバイス・ドライバの作りかたを中心に,MS-DOS ver3.30に基づいて具体的に解説しました.

目次

第1部 MS-DOSの構造とプログラム開発

第1章 MS-DOSの概要
 1-1 MS-DOSの変遷
  CP/Mコンパチ期
  バージョン1.25から2.11へ
  バージョン3.10
  各種のユーティリティ
 1-2 MS-DOSでのプログラム開発手順
  エディット
  アセンブル/コンパイル
  ライブラリの作成/保守
  リンク
  バイナリ・ファイル化
  デバッグ
 1-3 プログラム開発ユーティリティ
  EDLIN
  MASM
  LINK
  CREF
  LIB
  EXE2BIN
  MAPSYM
  SYMDEB
  CodeView
  MAKE

第2章 マクロ・アセンブラMASM
 2-1 MASMの特徴
 2-2 8086CPUのセグメント
  セグメント方式のアドレッシング機構
  セグメント方式の長所と短所
  論理セグメント
 2-3 アセンブリ言語の記述
  トークンとデリミタとセパレータ
  名前
  ステートメント
   * nameフィールド
   * operationフィールド
   * operandフィールド
   * commentフィールド
 2-4 ディレクティブ(疑似命令)
  モジュール・プログラミング
   * モジュール名
   * セグメントの定義
   * セグメント・レジスタの仮定
   * セグメントのグループ化
   * セグメントの簡略化定義
   * プロシージャの定義
   * PROCディレクティブによる/パラメータ宣言
  ラベル
   * LABELディレクティブによる定義
   * NEARラベルの定義
  外部参照
  データの定義と初期化
   * データの構造化
  マクロ機能
   * マクロの定義
   * リピート・ディレクティブ
  条件アセンブル
  演算子
   * セグメント演算子
   * 型演算子
   * 子数値演算子
   * 関係演算子
   * 演算子の評価順位

第3章 MS-DOSの内部構造
 3-1 MS-DOSのブート
  ブート手順
   * IPL
   * IO.SYS/MSDOS.SYSのロード
   * 初期化
   * CONFIG.SYS
   * COMMAND.COMのロード
   * AUTOEXEC.BATの実行
  config.sysファイル
   * BREAKコマンド
   * DEVICEコマンド
   * FILESコマンド
   * BUFFERSコマンド
   * FCBSコマンド
   * LASTDRIVEコマンド
   * SHELLコマンド
   * COUNTRYコマンド
 3-2 プログラムのロードと実行
  プロセスの起動
  EXECシステム・コール
  プロセスの終了
  PSP(Program SegmentPrefix)
   * PSPの構造
  環境変数と環境
  実行プログラムのメモリ・モデル
   * EXEモデル
   * COMモデル

第4章 MS-DOSのファイル・アクセス
 4-1 ファイル構造
  ディスク上の領域
   * 1Mバイト・フォーマットの場合
   * 640Kバイト・フォーマットの場合
  FATとクラスタ
  ディレクトリ・エントリ
   * ディレクトリ・エントリの構造
  FAT
   * 12/16ビットのFAT長
   * FATの構造とファイルの関係
  ディスク・バッファ
 4-2 ファイル・ハンドルとFCB
  FCB
   * 基本FCBの構造
   * 拡張FCBの構造
  ファイル・ハンドル

第二部 MS-DOSのプログラム・インターフェース

第5章 MS-DOSの内部割り込み
 5-1 内部割り込み
  MS-DOSで使用できる内部割り込み
 5-2 内部割り込みの機能と使い方

第6章 MS-DOSのファンクション・リクエスト
 6-1 ファンクション・リクエストの種類と呼び出し方法
  INT21Hによる方法
  PSPを使用する方法
  CP/M流の方法
 6-2 コンソール入出力関連のファンクション
 6-3 外部入出力に関するファンクション
 6-4 プロセス管理に関するファンクション
 6-5 メモリ管理に関するファンクション
 6-6 タイマ設定に関するファンクション
 6-7 システム設定に関するファンクション
 6-8 ディスク管理に関するファンクション
 6-9 FCB関係のファンクション
 6-10 階層ディレクトリ管理に関するファンクション
 6-11 ファイル・ハンドルに関するファンクション
 6-12 デバイス制御に関するファンクション
 6-13 MS-Networksに関するファンクション

第7章 システム・コール応用プログラム集
 7-1 文字と文字列の操作
  英小文字を大文字に変換する
   * upper.c
   * uppersub.asm
  ASCIIコードを表示する
   * code.c
   * codesub.asm
  文字列を入出力する
   * gstr.c
   * gstrsub.asm
  プリンタ/AUX出力を行う
   * praux.c
   * prauxsub.asm
 7-2 時刻・日付の操作
  ストップ・ウォッチ
   * keyin.c
   * keyinsub.asm
  日付と時刻を得る
   * tm.assm
  DOSのバージョンを取り出す
   * gver.c
   * gversub.asm
 7-3 メモリ/プロセスの操作
  子プロセスを実行する
   * Child.asm
  メモリ・ブロックの操作を行う
   * maloc.c
   * malocsub.asm
  除算エラーを検出する
   * divset.asm
   * div0.asm
  割り込みエントリ・アドレスを表示する
   * gint.c
   * gintsub.asm
 7-4 ディスク/ファイルの操作
  ディスクのリセット/カレント・ドライブの変更を行う
   * dres.c
   * dressb.asm
  ディスク情報を得る
   * getd.c
   * getsub.asm
  FCBによるファイル・アクセスを行う
   * fcb.c
   * fcbsub.asm
  ファイルのタイム・スタンプを変更する
   * stmp.c
   * stmpsub.asm
  デバイス・データを調べる
   * gdev.c
   * gdevsub.asm
  メディア変換の可能性を調べる
   * media.c
   * mediasub.asm
 7-5 ディレクトリの操作
  サブ・ディレクトリを作成する
   * mkd.c
   * mkdsub.asm
  サブ・ディレクトリを削除する
   * rmd.c
   * rmdsub.asm
  カレント・ディレクトリの表示/変更を行う
   * chd.c
   * chdsub.asm
  階層ディレクトリを操作する
   * d.c
   * dsub.asm

第三部 デバイス・ドライバと拡張メモリ

第8章 MS-DOSのデバイス・ドライバ
 8-1 構造と呼び出しの手順
  デバイス・ドライバの呼び出し
  デバイス・ヘッダ
   * リンク情報
   * デバイスの属性
   * ストラテジおよび割り込みルーチンへのポインタ
   * デバイス名またはユニット数
  コマンド・パケット
   * レコード長
   * 論理装置コード
   * デバイス・コマンド・コード
   * ステータス
 8-2 I/Oリクエスト・コマンド
   * INIT
   * MEDIA CHECK(ブロック・デバイス)
   * BUILD BPB(ブロック・デバイス)
   * READ,WRITE&VERIFY
   * NON-DETRUCTIVEREAD&NO WAIT キャラクタ・デバイス)
   * STATUS(キャラクタ・デバイス)
   * FLUSH(キャラクタ・デバイス)
   * DEVICE OPEN/CLOSE
   * REMOVABLE
   * MEDIA(ブロック・デバイス)
   * Genric IOCTL
   * Get/Set LogicalDrive Map
 8-3 デバイス・ドライバのデバッグ方法
   * デバイス・ドライバを組み込んでデバッグする
   * デバイス・ドライバをプログラムとしてデバッグする

第9章 MS-DOSの拡張メモリ
 9-1 内部メモリの限界と拡張メモリ
  内部メモリの限界
  拡張メモリ
  拡張メモリの動作
  拡張メモリの利用方法
   * EMMの存在を確認する
   * システムの環境を調べる
   * 拡張メモリの要求
   * 論理ページのマッピング(対応づけ)
   * マッピング情報の保存と復元
   * 拡張メモリの返却
 9-2 EMMファンクション

Appendix A PC-9801シリーズのBIOS
   * キーボードBIOS
   * グラフLIO
Appendix B グラフィック・コンソール・ドライバの作成
   * グラフィック・コンソール・ドライバの処理
   * グラフィック・コンソール・ドライバの構成
   * seg.h
   * graph.asm
   * struc.h
   * graphc.cモジュール
   * glio.cモジュール
   * graphsub.asmモジュール
   * st.asmモジュール
   * gtestc.モジュール
Appendix C RAMディスク・ドライバの作成
   * RAMディスク・ドライバの構成
   * seg.h
   * ram.asm
   * struc.h
   * ram.cモジュール
   * ramSub.asm
   * st.aモジュール