MS-DOSプログラマーズ・バイブル
内部構造とシステム・コールとデバイス・ドライバと…
阿部 英志 著
B5判 360ページ
定価2,670円(税込)
JAN9784789834810
1989年10月15日発行
大変恐縮ですが,こちらの商品は品切れ絶版となりました.
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モジュール