bochs
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* bochsのページ
*** bochs 2.1.1でサポートされる画面モード
-[[qemu]]もbochsのグラフィックルーチンが入っているので、...
-VGA
|mode|type|size|color|pages|buff-addr|
|0x00|text|40x25|4bit|8|0xb8000|
|0x01|text|40x25|4bit|8|0xb8000|
|0x02|text|80x25|4bit|8|0xb8000|
|0x03|text|80x25|4bit|8|0xb8000|
|0x04|graph|320x200|2bit|1|0xb8000|
|0x05|graph|320x200|2bit|1|0xb8000|
|0x06|graph|640x200|1bit|1|0xb8000|
|0x07|text|80x25|1bit|1|0xb0000|
|0x0d|graph|320x200|4bit|8|0xa0000|
|0x0e|graph|640x200|4bit|4|0xa0000|
|0x0f|graph|640x350|1bit|2|0xa0000|
|0x10|graph|640x350|4bit|1|0xa0000|
|0x11|graph|640x480|1bit|1|0xa0000|
|0x12|graph|640x480|4bit|1|0xa0000|
|0x13|graph|320x200|8bit|1|0xa0000|
|0x6a|graph|800x600|4bit|1|0xa0000|
--テキストモードのとき、フォントデータは0xa0000~0xa1fff...
---この件に対する註があるのでこめんと欄で確認のこと。
-VESA (ver.2.0)
|mode|size|color|window|linear|
|0x0100| 640x400| 8bit|○|○|
|0x0101| 640x480| 8bit|×|○|
|0x0102| 800x600| 4bit|○|×|
|0x0103| 800x600| 8bit|○|○|
|0x0105|1024x768| 8bit|○|○|
|0x0110| 640x480|15bit|○|○|
|0x0111| 640x480|16bit|○|○|
|0x0112| 640x480|24bit|○|○|
|0x0113| 800x600|15bit|○|○|
|0x0114| 800x600|16bit|○|○|
|0x0115| 800x600|24bit|○|○|
|0x0116|1024x768|15bit|○|○|
|0x0117|1024x768|16bit|○|○|
|0x0118|1024x768|24bit|○|○|
|0x0142| 640x480|32bit|○|○|
|0x0143| 800x600|32bit|○|○|
|0x0144|1024x768|32bit|○|○|
|0x0146| 320x200| 8bit|×|○|
--windowの項目は、0x0101と0x0102が逆なんじゃないかと思わ...
--15bitカラーモードのとき、このリザーブされている15bit目...
--32bitカラーモードのとき、上位8bitは任意の値であってよい...
--VGABIOSのASKA版では、0x0112、0x0115、0x0118が32bitカラ...
*** VESAファンクションを使わずに拡張グラフィックを使う方法
-メモリ
--物理アドレス0xe000_0000からの4MBがリニアアクセス用のVRAM
-I/Oポート
--0x01ce:ここに16bitライトアクセスしてレジスタ番号を書き...
--0x01cf:ここに16bitライトアクセスしてレジスタデータを書...
---レジスタ0x0000と0x0004と0x0005に関してはリードもできる...
-bochs拡張グラフィックの存在確認方法
--レジスタ0x0000に0xb0c2をライトする
---OUT_W(0x01ce, 0x0000);
---OUT_W(0x01cf, 0xb0c2);
--レジスタ0x0000をリードしてみる
---OUT_W(0x01ce, 0x0000); /* これを省略しないこと */
---IN_W(0x01cf);
--0xb0c2が読み出せたら存在していると判断
-画面モード切替方法
--以下の順序でレジスタをセットすると切り替えられる
--レジスタ0x0004に0x0000を設定
--レジスタ0x0001に解像度のxを設定(320, 640, 800, 1024の...
--レジスタ0x0002に解像度のyを設定(200, 400, 480, 600, 76...
--もちろんこれらの組み合わせは上記のVESAモードに存在する...
--レジスタ0x0003にカラーのbit数を設定(8, 15, 16, 24, 32)
--レジスタ0x0005に0x0000を設定
--レジスタ0x0004に0x0001を設定
---このときbit6を1にしてもよく、そうするとlinear指定した...
---このときbit7を1にしてもよく、そうするとVRAMが初期化さ...
--これだけで切り替わる(VGAレジスタをいじって640x480に切...
-リアルモードからのウィンドウアクセスのためのI/O
--レジスタ0x0005にセットすればよい。64KB単位。これで0xa00...
* こめんと欄
-bochs に限った話ではありませんが、テキストモードのフォン...
-bochsのテキストモードはエミュレートが完全ではないようで...
-情報ありがとうございます。 -- [[K]] SIZE(10){2004-10-30 ...
#comment
終了行:
* bochsのページ
*** bochs 2.1.1でサポートされる画面モード
-[[qemu]]もbochsのグラフィックルーチンが入っているので、...
-VGA
|mode|type|size|color|pages|buff-addr|
|0x00|text|40x25|4bit|8|0xb8000|
|0x01|text|40x25|4bit|8|0xb8000|
|0x02|text|80x25|4bit|8|0xb8000|
|0x03|text|80x25|4bit|8|0xb8000|
|0x04|graph|320x200|2bit|1|0xb8000|
|0x05|graph|320x200|2bit|1|0xb8000|
|0x06|graph|640x200|1bit|1|0xb8000|
|0x07|text|80x25|1bit|1|0xb0000|
|0x0d|graph|320x200|4bit|8|0xa0000|
|0x0e|graph|640x200|4bit|4|0xa0000|
|0x0f|graph|640x350|1bit|2|0xa0000|
|0x10|graph|640x350|4bit|1|0xa0000|
|0x11|graph|640x480|1bit|1|0xa0000|
|0x12|graph|640x480|4bit|1|0xa0000|
|0x13|graph|320x200|8bit|1|0xa0000|
|0x6a|graph|800x600|4bit|1|0xa0000|
--テキストモードのとき、フォントデータは0xa0000~0xa1fff...
---この件に対する註があるのでこめんと欄で確認のこと。
-VESA (ver.2.0)
|mode|size|color|window|linear|
|0x0100| 640x400| 8bit|○|○|
|0x0101| 640x480| 8bit|×|○|
|0x0102| 800x600| 4bit|○|×|
|0x0103| 800x600| 8bit|○|○|
|0x0105|1024x768| 8bit|○|○|
|0x0110| 640x480|15bit|○|○|
|0x0111| 640x480|16bit|○|○|
|0x0112| 640x480|24bit|○|○|
|0x0113| 800x600|15bit|○|○|
|0x0114| 800x600|16bit|○|○|
|0x0115| 800x600|24bit|○|○|
|0x0116|1024x768|15bit|○|○|
|0x0117|1024x768|16bit|○|○|
|0x0118|1024x768|24bit|○|○|
|0x0142| 640x480|32bit|○|○|
|0x0143| 800x600|32bit|○|○|
|0x0144|1024x768|32bit|○|○|
|0x0146| 320x200| 8bit|×|○|
--windowの項目は、0x0101と0x0102が逆なんじゃないかと思わ...
--15bitカラーモードのとき、このリザーブされている15bit目...
--32bitカラーモードのとき、上位8bitは任意の値であってよい...
--VGABIOSのASKA版では、0x0112、0x0115、0x0118が32bitカラ...
*** VESAファンクションを使わずに拡張グラフィックを使う方法
-メモリ
--物理アドレス0xe000_0000からの4MBがリニアアクセス用のVRAM
-I/Oポート
--0x01ce:ここに16bitライトアクセスしてレジスタ番号を書き...
--0x01cf:ここに16bitライトアクセスしてレジスタデータを書...
---レジスタ0x0000と0x0004と0x0005に関してはリードもできる...
-bochs拡張グラフィックの存在確認方法
--レジスタ0x0000に0xb0c2をライトする
---OUT_W(0x01ce, 0x0000);
---OUT_W(0x01cf, 0xb0c2);
--レジスタ0x0000をリードしてみる
---OUT_W(0x01ce, 0x0000); /* これを省略しないこと */
---IN_W(0x01cf);
--0xb0c2が読み出せたら存在していると判断
-画面モード切替方法
--以下の順序でレジスタをセットすると切り替えられる
--レジスタ0x0004に0x0000を設定
--レジスタ0x0001に解像度のxを設定(320, 640, 800, 1024の...
--レジスタ0x0002に解像度のyを設定(200, 400, 480, 600, 76...
--もちろんこれらの組み合わせは上記のVESAモードに存在する...
--レジスタ0x0003にカラーのbit数を設定(8, 15, 16, 24, 32)
--レジスタ0x0005に0x0000を設定
--レジスタ0x0004に0x0001を設定
---このときbit6を1にしてもよく、そうするとlinear指定した...
---このときbit7を1にしてもよく、そうするとVRAMが初期化さ...
--これだけで切り替わる(VGAレジスタをいじって640x480に切...
-リアルモードからのウィンドウアクセスのためのI/O
--レジスタ0x0005にセットすればよい。64KB単位。これで0xa00...
* こめんと欄
-bochs に限った話ではありませんが、テキストモードのフォン...
-bochsのテキストモードはエミュレートが完全ではないようで...
-情報ありがとうございます。 -- [[K]] SIZE(10){2004-10-30 ...
#comment
ページ名: