ページへ戻る

− Links

 印刷 

guide​/C :: OSASK計画

osaskwiki:guide/C

ページ内コンテンツ
  • GO(C言語)でOSASKアプリを作ってみよう、のページ
      • まずは開発環境の入手
      • プロジェクト作成
      • ソース作成
      • どうやって実行ファイルを作るの?
      • どうやってテスト実行するの?
      • 雑な説明
      • もっと詳しく説明してくれー
  • こめんと欄

GO(C言語)でOSASKアプリを作ってみよう、のページ anchor.png[1]

  • (by K[2], 2005.03.15)
Page Top

まずは開発環境の入手 anchor.png[5]

  • downloads​/dev[6]のページへ行って、最新版のところの、「tolset08」というやつをダウンロードしてください(lzhでもsarでもどっちでもOK)。
    • 2MB強ありますが、これはCコンパイラとかテストラン用のOSASKやエミュレータなどが入っているせいです。すみません。
    • もしかしたらバージョンアップしてtolset09とかになっているかもしれません。その辺は臨機応変でお願いします。
    • 2006.05.08での最新版はtolset_h[7]です。
    • Win95/98/Meの人はフォルダ名を少し直す必要があります(こめんと欄 2006.07.29 参照)。
  • これをどこでもいいですので、適当なところに解凍します。
Page Top

プロジェクト作成 anchor.png[8]

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

ソース作成 anchor.png[9]

  • さて、それでは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);
    }
    
Page Top

どうやって実行ファイルを作るの? anchor.png[10]

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

どうやってテスト実行するの? anchor.png[11]

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

雑な説明 anchor.png[12]

  • 結局のところ、これはAPIを呼び出しているだけです。lib_で始まる関数は全てAPI呼び出しです。
Page Top

もっと詳しく説明してくれー anchor.png[13]

Page Top

こめんと欄 anchor.png[17]

  • すみません、make run のところでエラーが出るのですが、どうすればよいですか? -- coze 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 2005-06-27 (月) 21:06:43
  • これはおそらくCygwin環境だと思われます。Cygwinのデフォルトではcopyコマンドに干渉するため、こういうエラーが出るのです。たぶん環境変数PATHに「C:¥cygwin¥bin」みたいなパスが追加されていると思います。それを削除すればとりあえずうまくいくようになります。・・・この問題はどちらかというとtolset側の問題であるというよりはCygwinが過剰にWindowsに干渉していることが問題だと思いますので、tolsetの不具合ではないと僕は思っています。ですからこれ以上の対策が必要だと思われる場合は、Cygwin側に対処を要望してください。 -- K[2] 2005-06-27 (月) 21:32:02
  • Kさん、ありがとうございます。C:¥cygwin¥bin へのパスを外す事で、うまく実行できました。 -- coze 2005-06-27 (月) 22:04:32

  • すみません。また make run でつまづいてしまいました。Win95 で実行しています。make はうまくいっていて、chelo.bin は無事に作成できました(451 バイト)。それから make run を実行してみますと -- coze[18] 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[18] 2005-08-07 (日) 12:09:13
  • eqmu.exeはタイプミスでしょうか、じゃなかったらファイルが間違ってるので直せば動くかもしれません。makeにたよらずに、qemuを直接実行してみると、何か分かるかもしれません。fdimage0.binがqemuと同じディレクトリにあれば動くと思うんですが。 -- くーみん 2005-08-07 (日) 17:22:46
  • くーみんさん、ありがとうございます。eqmu.exe は、掲示板に書き込む際にタイプミスしていました。すみません。実際には qemu.exe となっています。それで make を使わずにやってみました。 -- coze[18] 2005-08-07 (日) 21:16:01
C:¥osa¥tolset08¥z_tools¥qemu>qemu.exe -L . -m 32 -localtime -std-vga -fda fdimage0.bin
ファイル 'C:¥OSA¥TOLSET08¥Z_TOOLS¥QEMU¥QEMU.EXE' またはその構成ファイルが見つかりません。
パスとファイル名が正しいか、すべての必要なライブラリが利用可能であるか、確認してください。
  • となってしまいます……。上記を実行するときに、タイトルバーに「プログラム開始エラー」と書かれたダイアログボックスが表示されます(ウィンドウの中には、! マークのアイコンと OK ボタンのみで、テキストは何も書かれていないです)。dir コマンドを実行すると下のようになりました。 -- coze[18] 2005-08-07 (日) 21:16:30
C:¥osa¥tolset08¥z_tools¥qemu>dir

.              <DIR>        05-08-07  10:17 .
..             <DIR>        05-08-07  10:17 ..
BIOS     BIN        65,536  04-11-16   7:10 bios.bin
MAKEFILE                68  05-01-12  11:51 Makefile
VGABIOS  BIN         9,651  04-04-24   1:29 vgabios.bin
QEMU     EXE       249,344  04-11-16   7:10 qemu.exe
FDIMAGE0 BIN     1,474,560  05-08-07  10:18 fdimage0.bin
SDL      DLL       125,952  04-11-16   7:11 SDL.dll
         7 個          1,925,111 バイトのファイルがあります.
         2 ディレクトリ   440,139,776 バイトの空きがあります.
  • そういえば、おいらのWindows95(Libretto50)ではqemuが動きませんでした(OSC2005-Doの会場でわかったという…)。ひょっとしたらWin95はqemu非対応かも知れません。 -- あっきぃ[19] 2005-08-07 (日) 21:22:37
  • あっきぃさんの場合も僕と同じようなエラーメッセージですか? Win95 では動かないというのもあるのかもしれませんね。僕はこういったことにうといので、少しずつ弄ってみようと思います。ありがとうございました。 -- coze[18] 2005-08-09 (火) 00:51:59
  • たしかおいらはバッチファイルからだったと思います。きっとバッチファイルでは分からないエラーが出力されているんだと思います。 -- あっきぃ 2005-08-09 (火) 00:58:09
  • うーん、Win95ではtolset08の「make run」がうまく行かない可能性があるのかもしれませんね。後日こちらでも実験してみたいと思います。他の人で、似たような現象を経験した人、もしくはWin95だけど問題なく動いた人、おられましたらご報告ください。 -- K[2] 2005-08-09 (火) 13:55:41
  • NEC PC-9821 Nb7、Win95 で make run を試してみました。実行してみると、上の場合と同様のエラーが表示されました。その際、「プログラム開始エラー」ダイアログが出て「IPHLPAPI.DLL が見つかりません」と表示されました。何かの参考になればと思います。 -- coze 2005-09-17 (土) 18:08:40
  • IPHLPAPI.DLLはIEに含まれるものだそうです。 -- mac12 2006-07-28 (金) 22:23:19
  • Win95対策版は既にあります。上記にあるとおり最新版のtolset_hを使ってください。z_toolsの中のqemuフォルダをqemu_ntと改名し、qemu_9xフォルダをqemuと改名すれば準備完了です。 -- K[2] 2006-07-29 (土) 09:30:27

Last-modified: 2010-04-10 (土) 00:00:00 (JST) (319d) by k-tan