AX メモリマップ
AX メモリマップ
システム メモリマップ
EGA/JEGA VRAM メモリマップ
JEGAに関するメモリマップ
グローバルエリア
アドレス | Word | 内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0040:0049 | Byte | 画面モード番号 | ||||||||||||||||||||
0040:004A | Word | 画面の1行の桁数 | ||||||||||||||||||||
0040:004C | Word | 1画面のページサイズ(バイト) | ||||||||||||||||||||
0040:004E | Word | VRAMのスタートアドレス | ||||||||||||||||||||
0040:0050 0040:005E |
Word | ページ0-7のカーソル位置(1バイト目:桁、2バイト目:行) | ||||||||||||||||||||
0040:0060 0040:0061 |
Byte | カーソルエンド位置 カーソルスタート位置 |
||||||||||||||||||||
0040:0062 | Byte | 現在表示されているページ番号(0-) | ||||||||||||||||||||
0040:0063 | Word | CRTCのI/Oアドレス | ||||||||||||||||||||
0040:0072 | Word | リセットフラグ | ||||||||||||||||||||
0040:0084 | Byte | 1画面の行数(-1の値) | ||||||||||||||||||||
0040:0085 | Byte | 1文字の縦のビット数 | ||||||||||||||||||||
0040:0087 | Byte | EGA内部ステータス | ||||||||||||||||||||
0040:0088 | Byte | JEGAボードディップスイッチ情報 | ||||||||||||||||||||
0040:00A8 | DWord | ビデオパラメータテーブルのアドレスポインタ | ||||||||||||||||||||
0040:00E0 | Word | 日本語グラフィックモード時の仮想VRAMのセグメントアドレス | ||||||||||||||||||||
0040:00E2 | Byte | 日本語グラフィックモード時の漢字第一バイトの文字コード | ||||||||||||||||||||
0040:00E3 | Byte | 日本語グラフィックモード時の漢字第一バイトのアトリビュートコード | ||||||||||||||||||||
0040:00E4 | Byte | AX日本語ステータス (※BIOS以外のプログラムが直接変更すべきでない)
|
||||||||||||||||||||
0040:00E9 | Byte | 現在のJEGAのRMOD1の設定値 | ||||||||||||||||||||
0040:00EA | Byte | 現在のJEGAのRMOD2の設定値 |
日本語テキストVRAM
テキストモードでは、偶数番地はキャラクタコード、奇数番地はアトリビュートデータとして解釈される。キャラクタコードが、シフトJISコードの第1バイトに当てはまるならば、次の1バイトをシフトJISコードの第2バイトとして解釈して全角文字を表示する。この時、モード設定で拡張アトリビュートが有効ならば、シフトJISコード第2バイトに付随するアトリビュートデータは拡張アトリビュートとして解釈される。拡張アトリビュートが無効であれば、第2アトリビュートは無視される。シフトJISコードの判断は行頭から行われる。行末の1バイトにシフトJISの第1バイトが書かれた場合、表示は半角スペースになる。そのため、行頭にシフトJISの第2バイトを書いても意図した表示にはならない。
基本アトリビュート
AX仕様のテキスト表示は、EGAのI/Oアドレス3C0hに位置するカラーパレットレジスタ16個をJEGA内部に重ねて持つことにより、64色中16色表示をサポートしている。JEGAモード時はバックグラウンドカラーはインデックス「黒」固定。スーパーインポーズモード時はいずれのモードでも、JEGAのテキスト画面が「黒」の部分にスレーブEGAの出力が表示される。
bit | EGA mode | JEGA mode |
---|---|---|
7 | Background Intensity/Blinking | Blinking |
6 | Background Color (Red) | Reverse |
5 | Background Color (Green) | VerticalLine |
4 | Background Color (Blue) | UnderLine |
3 | Intensity/ANK Character Group Select | |
2 | Foreground Color (Red) | |
1 | Foreground Color (Green) | |
0 | Foreground Color (Blue) |
拡張アトリビュート
全角文字の第2バイトのアトリビュート指定はこちらの拡張アトリビュートになる。
bit | JEGA mode |
---|---|
7 | ボールド(太文字) |
6 | 横倍角 |
5 | 縦倍角 |
4 | U/Lセレクト(上下選択) bit5が0の時、このビットは無効 bit5が1の時、 0: 縦倍角文字の上を表示 1: 縦倍角文字の下を表示 |
3 | R/Lセレクト(左右選択) bit6が0の時、このビットは無効 bit6が1の時、 0: 倍角文字の右を表示 1: 倍角文字の左を表示 |
2 | (予約ビット) |
1 | (予約ビット) |
0 | (予約ビット) |
漢字表示が行われるときはEGAチップのカーソル表示は機能していない。そこで、JEGAはEGAと同じI/Oアドレスにカーソルレジスタを持ち、その設定でカーソル表示を行っている。
シフトJISコードマップ
F0h-F3hは外字として指定できる全角文字(1024文字)。
文字表示フォーマットの例
縦倍角表示フォーマットの例
日本語グラフィックモード
JEGA画面モード52h, 53h時のメモリマップ
日本語グラフィックモード時の実VRAMの構造
VRAMは実VRAM(A000:0から始まる64KBx4プレーン)と仮想VRAM(メインメモリ中の4KB)を持つ。オフセットアドレスはInt10h/8300hをコールするとAXにVRAMの先頭アドレス、ES:BXに仮想テキストVRAMの先頭アドレスが返る。実VRAMへのアクセスはI/Oアドレス3C4h/3C5h:02hのプレーンマスクレジスタ(SR2)でプレーンを選択して行う。またI/Oアドレス3CEh/3CFh:04hの読み取りマップ選択レジスタ(GR4)で1つのプレーンを指定してデータを読むことができる。
bit | プレーンマスクレジスタ(SR2) | 読み取りマップ選択レジスタ(GR4) |
---|---|---|
7 | 0固定 | 0固定 |
6 | ||
5 | ||
4 | ||
3 | プレーン3 (I) | |
2 | プレーン2 (R) | 000: プレーン0 (B) 001: プレーン1 (G) 010: プレーン2 (R) 011: プレーン3 (I) |
1 | プレーン1 (G) | |
0 | プレーン0 (B) |