OS自作入門の13日目その1
OS自作入門の13日目その1です。
初版第六刷のP250から252までです。
やっと13日目のその1です。
でもなんだか内容を忘れてきてしまってたりして。。
それでは、勉強を始めます。
①文字を書く部分を一つの関数にまとめる。
下記のような部分が4箇所出てくるので、
それを一つの関数にまとめ、プログラム数を減らします。
boxfill8(buf_win, 160, COL8_C6C6C6, 40, 28, 119, 43);
putfonts8_asc(buf_win, 160, 40, 28, COL8_000000, s);
sheet_refresh(sht_win, 40, 28, 120, 44);
↓
void putfont8_asc_sht(struct SHEET *sht,int x,int y,int c,int b,char *s,int l)
{
boxfill8(sht->buf,sht->bxsize,b,x,y,x+l*8-1,y+15);
putfont8_asc(sht->buf,sht->bxsize,x,y,c,s);
sheet_refresh(sht,x,y,x+l*8,y+16);
return;
}
結果的に2行減ります。
②長ーいif分を省略
HariMainの中に、キーボード、マウス、タイマバッファへの書き込みが
あるかないかを判断する条件式がありますが、タイマを増やした時に
面倒くさい事になります。(下記)
if (fifo8_status(&keyfifo) + fifo8_status(&mousefifo) + fifo8_status(&timerfifo)
+ fifo8_status(&timerfifo2) + fifo8_status(&timerfifo3) == 0)
そこで、タイマ用のバッファを一つにまとめます。
すると上の式が、
if (fifo8_status(&keyfifo) + fifo8_status(&mousefifo) +
fifo8_status(&timerfifo) == 0)
にまとまります。
この時に、どのタイマが終わったかどうかは、
HariMainの中で、
i=fifo8_get(&timerfifo)
で、各タイマのdataを受け取って、その情報を元に
どのタイマが終わったかを判断し、例えば"10[sec]"というふうに
表示します。
今日はここまでです。
次は、性能の測定です!
« OS自作入門の12日目その4 | トップページ | 機械製図 »
「OS自作入門」カテゴリの記事
- OS自作のための勉強について(2009.05.20)
- OS自作入門の復習(2008.08.31)
- ひさしぶりのOS自作入門(2008.08.10)
- OS自作入門の3日目再読み返し(2008.04.05)
- OS自作入門読み返し(再)(2008.03.15)
コメント
この記事へのコメントは終了しました。



![米田 聡: 図解&シム 電子回路の基礎のキソ 回路シミュレータで初めてでも簡単! [サイエンス・アイ新書]](http://ec1.images-amazon.com/images/I/11qgQBimr9L.jpg)

弊店はブランドコピー時計N品、
ロレックスコピー時計、パネライレプリカ時計、
シャネルレプリカ時計、ブライトリングレプリカ時計、
ウブロレプリカ時計、IWC コピー時計、
二年以内に人的破壊でない故障は無料で修理をします。
正規品と同等品質のコピー品を低価でお客様に提供します。
安心して購入して下さい。
自身が使用するだけでなく、入学、卒業、誕生日、結婚のお祝い等のギフトにもご利用ください。
偽物ブランド時計 https://www.yutee007.com/protype/list-199.html
投稿: 偽物ブランド時計 | 2020年5月28日 (木) 08時47分