ページへ戻る

− Links

 印刷 

guide​/C のバックアップソース(No.5) :: OSASK計画

osaskwiki:guide/C のバックアップソース(No.5)

« Prev[4]  Next »[5]
* GO(C言語)でOSASKアプリを作ってみよう、のページ
-(by [[K]], 2005.03.15)

-姉妹ページ
--[[guide/nask]]:C言語じゃなくてnaskでやりたい人
--[[guide/ASKA]]:C言語じゃなくてASKAでやりたい人

*** まずは開発環境の入手
-[[downloads/dev]]のページへ行って、''最新版''のところの、「tolset08」というやつをダウンロードしてください(lzhでもsarでもどっちでもOK)。
--2MB強ありますが、これはCコンパイラとかテストラン用のOSASKやエミュレータなどが入っているせいです。すみません。
--もしかしたらバージョンアップしてtolset09とかになっているかもしれません。その辺は臨機応変でお願いします。
-これをどこでもいいですので、適当なところに解凍します。

*** プロジェクト作成
-次に、新規にアプリを作りますので、z_new_oというディレクトリを探してください。これをコピーして、同じディレクトリにペーストします。すると、「コピー ~ z_new_o」とかいう名前のフォルダができます。これを「chelo」にリネームしてください。
--もちろん他の好きな名前でもいいですよ。
-改名が済んだら、cheloの中に入って、Makefileを探し、これをテキストエディタで開きます。とりあえずはメモ帳で十分です。
-そして一番上の行のTARGETの記述を以下のように直します。
 TARGET     = chelo
-最後にcheloの中で 右クリック→新規作成→テキストドキュメント とやって、新規テキストドキュメントを作ります。そしてこれを、「chelo.c」に改名します。拡張子を変更するとどうたらこーたらとかいいますが、無視してOKしてください。

*** ソース作成
-さて、それではchelo.cを開いて、以下のソースをがしがしと入力してください。
 #include <guigui00.h>
 #define AUTO_MALLOC   0

 void OsaskMain()
 {
     struct LIB_WINDOW *window;
     struct LIB_TEXTBOX *wintitle, *textbox;

     lib_init(AUTO_MALLOC);
     window = lib_openwindow(AUTO_MALLOC, 0x0200, 136, 48);
     wintitle = lib_opentextbox(0x1000, AUTO_MALLOC, 0,  5, 1,  0,  0, window, 0x00c0, 0);
     textbox  = lib_opentextbox(0x0000, AUTO_MALLOC, 0, 12, 1, 16, 16, window, 0x00c0, 0);
     lib_putstring_ASCII(0x0000, 0, 0, wintitle, 0, 0, "chelo");
     lib_putstring_ASCII(0x0000, 0, 0, textbox,  0, 0, "hello, world");
     lib_waitsignal(0x0001, 0, 0);
 }

*** どうやって実行ファイルを作るの?
-まず、コンソールを開きます。開き方は使っているOSによって違います。
--Win2000, WinXPなどのNT系: !cons_nt.batをダブルクリック
--Win95, Win98などの9X系: !cons_9x.batをダブルクリック
-コンソールが出てきたら、makeとだけうってEnterを押してください。
-これだけでリンクまで全自動でやってくれます。
-できたアプリは、chelo.binです。
--tolset08で作った場合は多分452バイトです。

*** どうやってテスト実行するの?
-同じくコンソールから、make runとだけうってEnterを押してください。
-しばらく待っていると、勝手にOSASKがエミュレータ環境で起動します。
-で、pokonの一番上の、 !BUILT.BIN を実行してください。
-うまくいけばウィンドウが表示されます。

*** 雑な説明
-結局のところ、これはAPIを呼び出しているだけです。lib_で始まる関数は全てAPI呼び出しです。

*** もっと詳しく説明してくれー
-続編:[[guide/wintro0000]]
~
~
-待てない人のための参考資料:
--I.Tak.さんのAPI資料: http://user.ecc.u-tokyo.ac.jp/~t40370/osask/p0cref.html
--[[GUIGUI00_man]]

* こめんと欄
-すみません、make run のところでエラーが出るのですが、どうすればよいですか? -- ''coze'' &new{2005-06-27 (月) 21:04:37};

 C:\osask\tolset08\chelo>make

 C:\osask\tolset08\chelo>..\z_tools\make.exe
 ../z_tools/make.exe -r chelo.bin
 make.exe[1]: Entering directory `C:/osask/tolset08/chelo'
 ../z_tools/sjisconv.exe -s chelo.c chelo.ca
 ../z_tools/cc1.exe -I../z_tools/guigui00/  -Os -Wall -quiet -o chelo.gas chelo.ca
 ../z_tools/gas2nask.exe -a chelo.gas chelo.nas
 ../z_tools/nask.exe chelo.nas chelo.obj
 ../z_tools/obj2bim.exe @../z_tools/guigui00/guigui00.rul out:chelo.bim stack:64k map:
 chelo.map chelo.obj
 ../z_tools/bim2bin.exe in:chelo.bim out:chelo.org malloc:256k mmarea:0 -v48a
 ../z_tools/bim2bin.exe -osacmp in:chelo.org out:chelo.bin -tek5 clv:5 eopt: eprm:
 rm chelo.gas chelo.nas chelo.ca
 make.exe[1]: Leaving directory `C:/osask/tolset08/chelo'

 C:\osask\tolset08\chelo>ls
 !cons_9x.bat  Makefile   chelo.bin  chelo.c.1~  chelo.obj  make.bat
 !cons_nt.bat  chelo.bim  chelo.c    chelo.map   chelo.org

 C:\osask\tolset08\chelo>make run

 C:\osask\tolset08\chelo>..\z_tools\make.exe run
 ../z_tools/make.exe -r chelo.bin
 make.exe[1]: Entering directory `C:/osask/tolset08/chelo'
 make.exe[1]: `chelo.bin' is up to date.
 make.exe[1]: Leaving directory `C:/osask/tolset08/chelo'
 copy chelo.bin ..\z_tools\!built.bin
 process_begin: CreateProcess((null), copy chelo.bin ..\z_tools\!built.bin, ...) failed.
 make (e=2): 指定されたファイルが見つかりません。
 ..\z_tools\make.exe: *** [run] Error 2
-make, make run を実行すると上のようになります。 -- ''coze'' &new{2005-06-27 (月) 21:06:43};
-これはおそらくCygwin環境だと思われます。Cygwinのデフォルトではcopyコマンドに干渉するため、こういうエラーが出るのです。たぶん環境変数PATHに「C:\cygwin\bin」みたいなパスが追加されていると思います。それを削除すればとりあえずうまくいくようになります。・・・この問題はどちらかというとtolset側の問題であるというよりはCygwinが過剰にWindowsに干渉していることが問題だと思いますので、tolsetの不具合ではないと僕は思っています。ですからこれ以上の対策が必要だと思われる場合は、Cygwin側に対処を要望してください。 -- [[K]] &new{2005-06-27 (月) 21:32:02};
-Kさん、ありがとうございます。C:\cygwin\bin へのパスを外す事で、うまく実行できました。 -- ''coze'' &new{2005-06-27 (月) 22:04:32};
-すみません。また make run でつまづいてしまいました。Win95 で実行しています。make はうまくいっていて、chelo.bin は無事に作成できました(451 バイト)。それから make run を実行してみますと -- [[coze]] &new{2005-08-07 (日) 12:06:48};

 qemu.exe -L . -m 32 -localtime -std-vga -fda fdimage0.bin
 process_begin: CreateProcess(C:/osa/tolset08/z_tools/qemu/qemu.exe, eqmu.exe -L . -m 32 -localtime -std-vga -fda fdimage0.bin, ...) failed.
 make (e=1157): このアプリケーションの実行に必要なライブラリファイルのうちの1つが見つかりません。
 make.exe[1] *** [ALL] Error 1157
 make.exe[1]: Leaving directory 'C:/osa/tolset08/z_tools/qemu'
 C:\OSA\TOLSET08\Z_TOOLS\make.EXE: *** [run] Error 2
-となります。ライブラリファイルが見つからないと言っているのですが、具体的にどのファイルが見つかっていないのでしょうか? -- [[coze]] &new{2005-08-07 (日) 12:09:13};
-eqmu.exeはタイプミスでしょうか、じゃなかったらファイルが間違ってるので直せば動くかもしれません。makeにたよらずに、qemuを直接実行してみると、何か分かるかもしれません。fdimage0.binがqemuと同じディレクトリにあれば動くと思うんですが。 -- ''くーみん'' &new{2005-08-07 (日) 17:22:46};

#comment

« Prev[4]  Next »[5]