OS自作入門 / 2008/08/30 (Sat) / 編集 |
まぁ省略しすぎて読んでも意味が分からないかもしれないけど、、、
fontを作成(8x16)
........
...**...
...**...
...**...
...**...
..*..*..
..*..*..
..*..*..
..*..*..
.******.
.*....*.
.*....*.
.*....*.
***..***
........
........
↓
バイナリ化
↓
_hankaku:
DB バイナリ化したデータたくさん
(保存位置はASCIIコードに準処しておくと便利)
C言語からアクセスするには
extern char hankaku[サイズ]
あとは「hankaku + 'A' * 16」とかでメモリ中のAのフォント位置を指定できるので、0のとこは黒、1のとこは白になるようにVRAMに書き込む(putfont_asc()、putfont8を参照)
ようはAAを描く->バイナリ化して保存しとく->使うときに呼び出してVRAMを使って(ドット絵みたいに)画面に表示、マウスカーソルとかも似た感じ
まぁソースコードと見比べればこれくらいのメモで思い出せるだろう、、、
fontを作成(8x16)
........
...**...
...**...
...**...
...**...
..*..*..
..*..*..
..*..*..
..*..*..
.******.
.*....*.
.*....*.
.*....*.
***..***
........
........
↓
バイナリ化
↓
_hankaku:
DB バイナリ化したデータたくさん
(保存位置はASCIIコードに準処しておくと便利)
C言語からアクセスするには
extern char hankaku[サイズ]
あとは「hankaku + 'A' * 16」とかでメモリ中のAのフォント位置を指定できるので、0のとこは黒、1のとこは白になるようにVRAMに書き込む(putfont_asc()、putfont8を参照)
ようはAAを描く->バイナリ化して保存しとく->使うときに呼び出してVRAMを使って(ドット絵みたいに)画面に表示、マウスカーソルとかも似た感じ
まぁソースコードと見比べればこれくらいのメモで思い出せるだろう、、、
PR
OS自作入門 / 2008/08/29 (Fri) / 編集 |
31 void init_palette(void)
32 { 33 static unsigned char table_rgb[16 * 3] = {
34 0x00, 0x00, 0x00, /* 0:黒 */
35 0xff, 0x00, 0x00, /* 1:明るい赤 */
(中略)
50 };
51 set_palette(0, 15, table_rgb);
でもって[OS-Wiki]VGAのビデオDAコンバータんとこにある「パレットのアクセスの手順」によると
57 void set_palette(int start, int end, unsigned char *rgb)
58 {
59 int i, eflags;
60 eflags = io_load_eflags(); /* 割り込み許可フラグの値を記録する */ 61 io_cli(); /* 許可フラグを0にして割り込み禁止にする */
62 io_out8(0x03c8, start);//パレット番号を設定
63 for (i = start; i <= end; i++) {
64 io_out8(0x03c9, rgb[0] / 4);//パレットの色を設定
65 io_out8(0x03c9, rgb[1] / 4);
66 io_out8(0x03c9, rgb[2] / 4);
67 rgb += 3;
68 }
69 io_store_eflags(eflags); /* 割り込み許可フラグを元に戻す */
70 return;
71 }
でパレットの設定ができるらしい、ちなみにio_out8()は「portに繋がっている装置にdataを出力する」というものらしい。 読み出しは0x03c7にパレット番号を書き込み、0x03c9を3回読み込むとRGBの順番で出力されるんだとか
この後
20 p = (char *) 0xa0000; /* 番地を代入 */
21
22 for (i = 0; i <= 0xffff; i++) {
23 p[i] = i & 0x0f;
24 }
とするとディスプレイに縞模様が出力されるらしい!なんでやねん!?
まぁ先日の記事を後で修正しておくので「なぜVRAMに書き込む事になるのか?」はそこ参照(大雑把にいうと「*(p+i)==p[i]」だから)、縞模様になるのはパレットで「色番号0は黒」とか設定してあるから「p[i] = i & 0x0f;(VRAM=色番号)」でVRAMに色番号0から15までを交互に代入することによって縞模様になる、たぶん。(変数名をvramにすればわかりやすいんじゃね?とか思ったがなぜpのままなんだろう?)
未選択 / 2008/08/28 (Thu) / 編集 |
『若年者就職基礎能力修得証明書』が届いた、厚生労働大臣名とか書いてあったので舛添さんのサインがはいってるのかと思ったら「厚生労働大臣」「厚生労働大臣の印」が印刷されていた、まぁ国家資格でもないんだからそんなもんかw
就職活動に役立つのかは不明、てかたぶん意味ないだろうな〜認知度的に
本題が終わってしまったのでニュース
[人生VIP職人ブログwww]「涼宮ハルヒちゃんの憂鬱」アニメ化、「にょろーん、ちゅるやさん」も
まじかw すっごくみたいんだけどいつ放送なんだ?
今期のアニメはほとんど見逃してしまったな、、、
来期は『とらドラ』と「とある魔術の禁書目録」が見たいんだが見逃さないように気をつけなくては、、、『コードギアス』の無料配信も見逃したしなぁ、、、
[人生VIP職人www]「アクセル踏むとすぐにスピード出ます」と注意しなかったディーラーを送検
なぜだw そんなこともわからないやつは運転すんなww てゆうか150km/hってどう考えても確信犯だろ、いくらなんでもすぐにアクセルはなせば150もでないだろwww
就職活動に役立つのかは不明、てかたぶん意味ないだろうな〜認知度的に
本題が終わってしまったのでニュース
[人生VIP職人ブログwww]「涼宮ハルヒちゃんの憂鬱」アニメ化、「にょろーん、ちゅるやさん」も
まじかw すっごくみたいんだけどいつ放送なんだ?
今期のアニメはほとんど見逃してしまったな、、、
来期は『とらドラ』と「とある魔術の禁書目録」が見たいんだが見逃さないように気をつけなくては、、、『コードギアス』の無料配信も見逃したしなぁ、、、
[人生VIP職人www]「アクセル踏むとすぐにスピード出ます」と注意しなかったディーラーを送検
なぜだw そんなこともわからないやつは運転すんなww てゆうか150km/hってどう考えても確信犯だろ、いくらなんでもすぐにアクセルはなせば150もでないだろwww