議論/userlib/API


Top / 議論 / userlib / API

Mona Application(2004/02/08 更新)

userlib.hで定義されているMonaApplicationを継承した
アプリケーションクラスを作成する。
 
ここでは myApplicationを作成してみる。
 
class myApplication : public MonaApplication {
 
  public:
    myApplication(char* name);
    virtual ~myApplication() {}
 
  public:
    virtual int main(); // ここがmain処理
    virtual void onKeyDown(int keycode, int modifiers); // 必要であればオーバーライド
};
 
// コンストラクタ 必ず :MonaApplication(name)をつけること。
myApplication::myApplication(char* name) : MonaApplication(name) {
}
 
 
// メイン処理
int myApplication::main() {
 
    //  printf
    printf("Hello World\n");
 
    // 四角形描画
    Screen screen;
    screen.fillRect16(10, 10, 40, 50, Color::rgb(105, 141, 148));
 
    // 共有メモリを作る
    MemoryMap* mm = MemoryMap::create();
 
    // 自分の0x90005000にpidの0x90000000を4096バイトマッピングする
    mm->map(pid, 0x90000000, 0x90005000, 4096);
    strcpy((char*)0x90005000, "data share Mona");
 
    /* floppy read/write test */
    StorageDevice* device = new Floppy(Floppy::FLOPPY_1);
 
    printf("device block size=%d\n", device->getBlockSize());
 
    device->open();
    device->write(5, (byte*)buf, 2);
 
    memset(buf, (byte)0x00, 1024);
 
    device->read(5, (byte*)buf, 2);
    device->close();
    delete device;
 
    for (int i = 0; i < 10; i++) {
        printf("[%x]", buf[i]);
    }
    printf("\n--------------------------\n");
 
    for (int i = 0; i < 10; i++) {
        printf("[%x]", buf[512 + i]);
    }
   Screen* virtualScreen = new VirtualScreen();
   virtualScreen->fillRect16(50, 50, 40, 40, Color::rgb(0x12, 0x34, 0x56));
   printf("%s", Screen::bitblt(&screen, 0, 0, 40, 40, virtualScreen, 50, 50) ? "OK" : "NG");
 
    return 0;
}
 
// キーが押されたときの処理をここに書きます
void myApplication::onKeyDown(int keycode, int modifiers) {
    printf("down");
}
 
// 通常のC++のmain関数でアプリケーションをnewしてください。
// コンストラクタに渡す名称を手がかりにメッセージが送信されますので
// ロードされたファイル名を正確に渡してあげてください。
int main() {
 
    monaApp = new myApplication("HELLO.ELF");
    monaApp->main();
}
monaapplication.gif

マッピング

ファイル読み込み

オブジェクト指向API草案

オブジェクト指向APIグループ分け

具体実装

コメント

コメントはありません。 コメント/議論/userlib/API?

お名前:

MENU

now: 4

リンク


最新の20件
2018-10-07 2018-09-20 2018-09-03 2018-05-09 2017-09-29 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-05-29 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 6018, today: 3, yesterday: 2

添付ファイル: filemonaapplication.gif 688件 [詳細] filemonamouse.zip 406件 [詳細]

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:48:02 (3887d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.056 sec.