mgxlib

mgxlib

mgxlibってなによ。

「mgxlib」というのは、MOGESYSTEMの「はりぼてOS 向けの ライブラリ」のプロジェクトです。
まあ、OS実装に役立つライブラリを作ろうと思います。

投稿する。

mgxlibはKL-01ライセンスです。
ですが、moge32一人で寂しくやるのもどうかな…と思ったので、
投稿形式をとることにしました。
ですので、必要事項とルールを守って強力なライブラリをみなさんで作っていきましょう!

約束事

ではルール・必要事項を説明します。
まずはルールです。

ルール

1. 他人のコードを編集しない。
2. 関数名のはじめは「mgxlib_」ではじめる。

ちなみに、moge32がライブラリ化する際に、ソースを編集したり、採用しない場合があります。
ご了承ください。

次に必要事項です。

必要事項

1. 作者(必ず書いてください!)
2. 言語・コンパイラ(C言語かNASK、NASMでコンパイル・アセンブルできるものがいいです。)
3. プログラムの分類(自分で勝手に項目を作ってもらって構いません。)
4. コメント(ノーコメントでもいいですが書いていただけるといいですね。)
5. ソースコード or ソースの掲載ページへのリンク。


作者名はなるべく書いてください。
作者名を書けば、採用された場合なんとreadmeの作者一覧に!!
(採用されなくても、スペシャルサンクスのところに入れておきますのでご安心を。)
書かなかった場合はソースコード中のコメントでは「noname」としておきます。

投稿しようぜ!のコーナー。


投稿例。

作者 moge32
言語 C
分類 電源管理
コメント リセットします。
ソース 下記。
void mgxlib_reset()
{
    unsigned char io = 0x02;
    io_cli();        // 割り込み禁止
    while ((io & 0x02) != 0) {
        io = io_in8(0x64);
    }
    io_out8(0x64, 0xfe);
    while(1) io_hlt();    // 寝る。
}

投稿しよう!

作者 hikarupsp
言語 NASK
分類 PIT_Beep
コメント hrb-wikiから来ました。ビープ音の単純制御。
ソース 下記。CHNOSProjectで使用。
#C言語側での関数宣言
#void PIT_Beep_On(void); //ビープ音を開始する。
#void PIT_Beep_Off(void); //ビープ音を停止する。
#void PIT_Beep_Set(unsigned int fq); //ビープ音の周波数を、fqHzに変更する。
# //fqの値
# //C:262 C#:277 D:294 D#:311 E:330 F:349 F#:370
# //G:392 G#:415 A:440 A#:466 B:494 C:523

_PIT_Beep_On:
  in    al,0x61
   or    al,0x03
   and    al,0x0f
   out    0x61,al
   ret

_PIT_Beep_Off:
  in    al,0x61
   and    al,0xd
   out    0x61,al
   ret

_PIT_Beep_Set:
  mov    eax,1193180
   mov    edx,0x00000000
   mov    ecx,[esp+4]
   div    ecx
   mov    edx,eax
   mov    al,0xb6
   out    0x43,al
   mov    eax,edx
   out    0x42,al
   shr    eax,8
   out    0x42,al
   ret

作者 moge32
言語 C
分類 グラフィックス
コメント 「0xff00c6」のようなカラーコードを8bitカラーにします。
ソース 下記。
int color_hex2code(int col) {
    int r, g, b;
    r = col & 0xff0000;
    g = col & 0x00ff00;
    b = col & 0x0000ff;
    if (r != 0) r /= 43;
    if (g != 0) g /= 43;
    if (b != 0) b /= 43;
    return 16 + r + g * 6 + b * 36;
}


  • 最終更新:2011-08-25 10:55:48

このWIKIを編集するにはパスワード入力が必要です

認証パスワード