OS自作入門 14日目/30日(画面の高解像度化)
OS自作入門 14日目/30日(画面の高解像度化)
1.はじめに
14日目では、画面の解像度を320×240から変更する。
2.harib11d
画面の解像度を640×480に変更する。
- 上記のために
asmhead.asm
の修正
No. | 対象ファイル | 修正内容 |
---|---|---|
1 | asmhead.asm | テキストの通りに修正 |
テキストの通りに実行すると、何も表示されない。小一時間ほど調べたが解決できなかったため、harib11e
を実施。
※この問題については、harib11e
の中で解決
3.harib11e
任意の解像度を設定する。任意の解像度が設定できない場合、320×240の解像度で起動する。
harib11d
と同じくasmhead.asm
の修正
No. | 対象ファイル | 修正内容 |
---|---|---|
1 | asmhead.asm | テキストの通りに修正 |
4.harib11dの問題解決
正常に動作したharib11e
のVRAM
のアドレスをint型で画面に出力したところ-50331648
を示した。これを16進数に変換する手順は下記の通り
No. | 処理 | 結果 |
---|---|---|
1 | -1を掛けて正の数にする | 50331648 |
2 | 16進数に変換する | 0x03000000 |
3 | 基数を求める(bit反転して1を足す) | 0xfd000000 |
3の手順については、2の補数表現で検索
上記より、VRAM
のアドレスを求めることができたので、harib11e
のVRAM
を0xfd000000
で実行する。
5.harib11f,g
キーボードの入力をwindowに出力する。harib11g
の時点では1文字のみの出力
- 上記のために
bootpack.c
の修正
No. | 対象ファイル | 修正内容 |
---|---|---|
1 | bootpack.c | テキストの通りに修正 |
6.harib11h,i
キーボードの入力をwindowに出力する。harib11g
から進化し、文字列として表示することができ削除もできる。
- 上記のために
bootpack.c
の修正
No. | 対象ファイル | 修正内容 |
---|---|---|
1 | bootpack.c | テキストの通りに修正 |