*Linuxでosa_dir2をビルドする試み ぼちぼちかいてみる。 $ find . -name "*.bat" -exec rm {} \; をやって、いらないバッチファイルを消して下さい。(diffを使って、パッチ時に自動で消す方法ってないのかな。) ** Patch |04/04/30|#ref(osa_dir2-2.patch)|いちおう動作する、と思う。| |04/04/29|#ref(osa_dir2.patch)|不完全。make runはできない。| ** 開発ツール [[GOをLinuxに!]]やら[[downloads/dev]]なりから入手。 - [[downloads/dev]]のものについてはこのようにコンパイルしてgoのあるところ(/usr/local/bin/goset006)にいれてください -- aksaはそのままgcc -o aksa aksa.c -- edimgもそのままgcc -o edimg edimg.c -- exe2sysはgcc -DWIN32 -o exe2sys exe2sys.c ** こめんと -*.batを消しわすれたので、勝手に消して下さい。$ find . -name "*.bat" -exec rm {} \; -- [[筆者]] SIZE(10){2004-04-29 (木) 20:28:14} - これらをコンパイルしてgoのあるところ(/usr/local/bin/goset006)にいれてください -- aksaはそのままgcc -o aksa aksa.c -- exe2sysはgcc -DWIN32 -o exe2sys exe2sys.c -- edimgはgcc -Dmain0=main -o edimg edimg.c -- [[筆者]] SIZE(10){2004-04-29 (木) 20:30:30} -edimgに-Dmain0=mainは不要です。というかそんなことしたら実行不能なバイナリになりませんか?-Dmain0に関する記述はGOでwin32アプリを作る場合ときのみ必要で、その他の場合は不要です。 -- [[K]] SIZE(10){2004-04-29 (木) 20:33:09} -おおいらなくなっていたんですね。気がつかなかった。main0をmainにかきかえるのが面倒だったのでしていました。普通にバイナリは実行できました -- [[筆者]] SIZE(10){2004-04-29 (木) 20:37:26} -copy from:OSASK0.PSF to:@: がうまくいかないとのことですが、非常に基本的なこととして、edimgが走っているときのカレントパスにOSASK0.PSFはちゃんと存在しているでしょうか。なければもちろんコピーはできません。copyはフルパスも書けますので、 copy from:/usr/~/OSASK0.PSF to:@: とかにしてもダメかどうかを確認するといいかもしれません。 -- [[K]] SIZE(10){2004-04-29 (木) 20:44:58} -ありがとうございます。ファイルは存在していますし、フルパスで指定しても駄目でした。OSASK0.PSFだけでなくosask_qe.sysからOSASK.SYSもだめです。ovrwritefile error. : @:OSASK.SYSで、ステータスは15です。 -- [[筆者]] SIZE(10){2004-04-29 (木) 20:49:03} -そのエラーはおかしいなあ。path[0] == '@' && path[1] == ':'のときは、そのエラーが出ないはずなのです。関数ovrwritefile()のerr:ラベルの直後に、printf("%d\n", path[0]);を挿入して、何が表示されるか教えてもらえますか? -- [[K]] SIZE(10){2004-04-29 (木) 21:03:22} -64とでました。%dではなく%cとすると'@'になりました。なんとなくpath[1]もしらべましたが、':'になっていました。いちおうif (j < 2)goto err;のまえでjの値をしらべると5でした。gccの問題なんですかね? -- [[筆者]] SIZE(10){2004-04-30 (金) 14:37:36} -gcc-2.96ではコンパイルが通らないけど、gcc-3.3.2ではコンパイルが通る。関係あるかな。 -- [[筆者]] SIZE(10){2004-04-30 (金) 16:14:32} -読み込んでいるディスクイメージが壊れているということはないですか?(圧縮してアップロードしてくれたらこちらでチェックします)。それと、他の人からの報告もあるといいですね。 -- [[K]] SIZE(10){2004-04-30 (金) 16:19:05} -アップロードするときは、ディスクイメージと、テストに使ったスクリプトをセットにしてもらえると助かります。 -- [[K]] SIZE(10){2004-04-30 (金) 16:20:30} -ほかのイメージでも試してみましたが駄目でした。いちおうosa_qemu以下のlhaを添付します -- [[筆者]] SIZE(10){2004-04-30 (金) 16:37:37} -イメージにも問題なさそうですねえ。FATがうまく読めていないのかなあ。関数ovrwrite()のerr:ラベルの直後に、printf("%d %d %d %d %d\n", fat[5], fat[6], fat[7], fat[8], fat[9]);を書き足したらどうなりますか? -- [[K]] SIZE(10){2004-04-30 (金) 16:54:59} -早速ありがとうございます。6 7 8 9 10とでました。listはできます。 -- [[筆者]] SIZE(10){2004-04-30 (金) 17:01:43} -おかしい!fatも正しいのになんでOSASK.SYSがオーバーコピーできないんだー!・・・うーんそれじゃあ、err:直後のprintfを次のように書き換えたらどうなりますか。printf("%d\n", j); -- [[K]] SIZE(10){2004-04-30 (金) 17:06:51} -5でした。 -- [[筆者]] SIZE(10){2004-04-30 (金) 17:09:39} -ああわかった! -- [[名無しさん]] SIZE(10){2004-04-30 (金) 17:11:01} -↑は僕です。バグ発見しました。10分待ってください。 -- [[K]] SIZE(10){2004-04-30 (金) 17:11:41} -関数writefile()とovrwritefile()にバグがありました。 -- [[K]] SIZE(10){2004-04-30 (金) 17:14:54} -ありがとうございます。こんなことに時間を割いてもらってしまって申し訳ないです。 -- ''筆者'' SIZE(10){2004-04-30 (金) 17:15:33} -http://k.hideyosi.com/edimg0e.lzh (18.7KB) をお試しください。 -- [[K]] SIZE(10){2004-04-30 (金) 17:19:43} -バグ発見のためにたくさん協力してくれてありがとうございました。 -- [[K]] SIZE(10){2004-04-30 (金) 17:20:20} -噛み降臨! あとで最終版パッチ書きます。明日orGW明けになるかも。 -- [[筆者]] SIZE(10){2004-04-30 (金) 17:28:54} -いちおう書いた。[[UNIXユーザーのために]]に追加してくださった人ダンケスコ -- [[筆者]] SIZE(10){2004-04-30 (金) 20:07:26} -考えてみると、z_osabin以下にシェルスクリプトを用意しないと逝けないのか。 -- ''筆者'' SIZE(10){2004-04-30 (金) 20:19:04} -edimg0eは重要なバージョンではありますがMLではリリース案内しません。10日以内に機能拡張してバージョン0fを作るので、それをML上で公開する予定です。一応ご連絡まで。 -- [[K]] SIZE(10){2004-05-01 (土) 14:56:44} -成功おめでとうございます。>osa_dir2-2 -- [[K]] SIZE(10){2004-05-01 (土) 14:57:45} -DOSのバッチファイルがわからん。だれかシェルスクリプトかいて。 -- ''筆者'' SIZE(10){2004-05-01 (土) 21:21:04} -メモだけ張っておく。書きかけ。もちろん汚い。相当間違っていても気にしないでね。DOSのgotoやらifやらerrorlevelなんて知らん。 叩き台 -- [[筆者]] SIZE(10){2004-05-01 (土) 21:53:45} #!/bin/sh TOOLPATH=${TOOLPATH:-"/usr/local/bin/goset006"} QEMU="make -r -C ../z_tools/qemu" make -r -C ../z_tools/osa_qemu if [ $1 == . ]; then $TOOLPATH/edimg @\!run_opt.txt || exit 1 $QEMU exit fi if [ $1 == .. ];then cp -f ../z_tools/osa_qemu/osaimgqe.bin ../z_tools/qemu/fdimage0.bin || exit 1 $QEMU exit fi cp -f $1.bin ../z_tools/\!built.bin || exit 1 $TOOLPATH/edimg @../z_tools/edimgopt.txt || exit 1 $QEMU -複数の引数や、.binのついた引数にも対応する予定。時間ない.qじゃ -- [[筆者]] SIZE(10){2004-05-01 (土) 21:58:53} -忘れないうちに思い付いたアルゴリズムのメモ。汚すぎ。 -- [[筆者]] SIZE(10){2004-05-01 (土) 23:00:35} for f in $@;do echo $f | sed s/.bin//g >> edimgopt2.txt;done -osa_dirの本家ページどこだか判らないんでここにコメント書かせてもらおうっと。便利便利、まあ個人的には欲張ってライセンス別に分けようとか思わなかったらそもそも悩まなかった気もするけど。・・・それはともかくうちでもmake runでcopyにいつも失敗するから何でと思ったんだけど原因は単純な話だった。パスの切り方がまずくてmake.batじゃなくて別パス(cygwin?)のmakeが呼ばれるらしく、こいつが内部コマンド解釈してくれないみたいなんだな。これと同じようにcp呼ぶ用にすればできるから・・・というか.\make runってすれば問題ないよな、考えてみれば。 -- [[名無しさん]] SIZE(10){2004-05-02 (日) 00:12:10} -とりあえず便利だと思ってもらえて何よりです。アプリ開発やOSASKでちょっと遊んだりするときにご活用ください。.\makeのほかに、make.batでもいけるかもしれません。 -- [[K]] SIZE(10){2004-05-02 (日) 00:57:32} -05/01に考えていたあるごりずむ、いま考えると意味不明。run.shもわからん。ヤメダヤメダ…スマソ。 -- ''筆者'' SIZE(10){2004-05-04 (火) 21:01:36} -そういえばOSASKに乗せるシェルスクリプト仕様ってどの辺まで定義されてるんだっけ?今更shだbatだで悩むならそれでっち上げて移植したほうが早かったりして^^; -- [[名無しさん]] SIZE(10){2004-05-05 (水) 00:02:03} -[[impressions]]ネタかな?ああでも冗談だからここでいいのか。なんか一人で納得してすみません。 -- [[K]] SIZE(10){2004-05-05 (水) 00:35:30} #comment