6: 2008-04-28 (月) 23:16:58 |
現: 2024-01-08 (月) 12:58:41 ゲスト |
- | * ぐいぐい01に関するメモ-02 | + | TITLE:x |
| + | * ぐいぐい01に関するメモ-02 [#l07c0929] |
| -(by [[K]], 2008.04.27) | | -(by [[K]], 2008.04.27) |
| -メモのうち重要な部分をそのうちまとめてまともなページを作る | | -メモのうち重要な部分をそのうちまとめてまともなページを作る |
- | *** (9) no-relocation仕様について | + | *** (9) no-relocation仕様について [#f0f6dbc4] |
| -本来の.g01形式にはリロケーション情報というものが存在する。これはアプリケーションプログラム内のプログラムやデータがどのアドレスにロードされるか分からないので(「ぐいぐい00」や「はりぼてOS」のアプリでは0番地にロードされると前もって分かっていた)、.objのような情報を持っているという意味である(プログラムとしては未完成でもある)。efg01やOSがアプリケーションを実行する直前にメモリ上でリンカのような処理をして、通常の状態になる。 | | -本来の.g01形式にはリロケーション情報というものが存在する。これはアプリケーションプログラム内のプログラムやデータがどのアドレスにロードされるか分からないので(「ぐいぐい00」や「はりぼてOS」のアプリでは0番地にロードされると前もって分かっていた)、.objのような情報を持っているという意味である(プログラムとしては未完成でもある)。efg01やOSがアプリケーションを実行する直前にメモリ上でリンカのような処理をして、通常の状態になる。 |
| -nr仕様というのは、このリロケーション情報をもたない.g01アプリのことである。これはefg01やOSにとっては処理が減るので楽だが、その分アプリが自前でリンクに相当する処理を行わなければならない。 | | -nr仕様というのは、このリロケーション情報をもたない.g01アプリのことである。これはefg01やOSにとっては処理が減るので楽だが、その分アプリが自前でリンクに相当する処理を行わなければならない。 |
| --echonr0.g01 ([OSASK 00103]) | | --echonr0.g01 ([OSASK 00103]) |
| --calcnr0.g01 ([OSASK 00103]) | | --calcnr0.g01 ([OSASK 00103]) |
- | *** (10) efg01はもしかしてOS? | + | *** (10) efg01はもしかしてOS? [#o161c91a] |
- | -(ここだけ口調変更) | + | -(ここだけ文調変更) |
| -Windows上で超小さいアプリたちがせっせと動いて、ひとりでわくわくしています。僕から見るとWindowsはやたらと大きくてムダの多いアプリしかない印象なので、もはや別のOSのようです。・・・とそんなことを思っていたら、もしかしてefg01はOSであると言い張れば、そうかもしれない気がしてきました(まあOSだと言い張るにはもうちょっと規模が大きくならないと説得力不足ですが)。 | | -Windows上で超小さいアプリたちがせっせと動いて、ひとりでわくわくしています。僕から見るとWindowsはやたらと大きくてムダの多いアプリしかない印象なので、もはや別のOSのようです。・・・とそんなことを思っていたら、もしかしてefg01はOSであると言い張れば、そうかもしれない気がしてきました(まあOSだと言い張るにはもうちょっと規模が大きくならないと説得力不足ですが)。 |
| -たとえばWindows3.1はMS-DOSのアプリでもあったけれど、やっぱりOSなわけです。TownsOSもMS-DOSのRUN386.EXEというアプリの上に構築されたものでしたが、やっぱりOSなわけです。だからもしefg01上で動作するシェルもどきができたりしたら、efg01もOSといえなくはない日が来るかもしれません。 | | -たとえばWindows3.1はMS-DOSのアプリでもあったけれど、やっぱりOSなわけです。TownsOSもMS-DOSのRUN386.EXEというアプリの上に構築されたものでしたが、やっぱりOSなわけです。だからもしefg01上で動作するシェルもどきができたりしたら、efg01もOSといえなくはない日が来るかもしれません。 |
| -今のところabcdwは標準関数ばかり使って実装されているので、Linux版も簡単に作れそうです。そのうちやってみたいです。Linux上でもこんな小さいアプリが動くようになったら感激です。 | | -今のところabcdwは標準関数ばかり使って実装されているので、Linux版も簡単に作れそうです。そのうちやってみたいです。Linux上でもこんな小さいアプリが動くようになったら感激です。 |
| | | |
- | *** (11) 暫定版アプリサイズ比較 | + | *** (11) 暫定版アプリサイズ比較 [#u22c8bd0] |
| -(多分たまに更新する -- 「ぐいぐい01」の実装状況が改善したら) | | -(多分たまに更新する -- 「ぐいぐい01」の実装状況が改善したら) |
| ~ | | ~ |
| -hello対決 | | -hello対決 |
| --アセンブラでも何でもあり部門: | | --アセンブラでも何でもあり部門: |
- | |新OSASK|RIGHT:27|hellok0.g01 [OSASK 00101]| | + | |新OSASK|RIGHT:16|hello.g01 (abcdw012)| |
| |DOS-Extender|RIGHT:44|579.zipより http://osask.jp/boyaki04.html| | | |DOS-Extender|RIGHT:44|579.zipより http://osask.jp/boyaki04.html| |
- | |「はりぼてOS」|RIGHT:52|hello6.hrb 近日公開| | + | |「はりぼてOS」|RIGHT:52|hello6.hrb [OSASK 00105]| |
| |Linux|RIGHT:59|http://www.muppetlabs.com/~breadbox/software/tiny/ の hello-2.2.17.asm| | | |Linux|RIGHT:59|http://www.muppetlabs.com/~breadbox/software/tiny/ の hello-2.2.17.asm| |
| |旧OSASK|RIGHT:128|hellok1.bin http://osask.jp/boyaki04.html| | | |旧OSASK|RIGHT:128|hellok1.bin http://osask.jp/boyaki04.html| |
- | |win32|RIGHT:157|http://maglog.jp/bwc/Article260141.html| | + | |win32|RIGHT:157|http://blog.livedoor.jp/blackwingcat/archives/62262.html| |
| |DOS(非IA-32)|RIGHT:22|http://osask.jp/boyaki04.html| | | |DOS(非IA-32)|RIGHT:22|http://osask.jp/boyaki04.html| |
| |Human68k(非IA-32)|RIGHT:23|http://osask.jp/boyaki04.html| | | |Human68k(非IA-32)|RIGHT:23|http://osask.jp/boyaki04.html| |
| ~ | | ~ |
| --C言語限定標準的な書き方部門: | | --C言語限定標準的な書き方部門: |
- | |新OSASK|RIGHT:89|helloc4.g01 近日公開| | + | |新OSASK|RIGHT:68|helloc.g01 (abcdw009)| |
| |「はりぼてOS」|RIGHT:102|hello4.hrb| | | |「はりぼてOS」|RIGHT:102|hello4.hrb| |
| |旧OSASK|RIGHT:231|helloc7.bin http://osask.jp/boyaki04.html| | | |旧OSASK|RIGHT:231|helloc7.bin http://osask.jp/boyaki04.html| |
| ~ | | ~ |
| --C言語限定何でもあり部門: | | --C言語限定何でもあり部門: |
- | |新OSASK|RIGHT:87|helloc5.g01 近日公開| | + | |新OSASK|RIGHT:67|helloc1.g01 (abcdw012)| |
| |「はりぼてOS」|RIGHT:102|hello4.hrb| | | |「はりぼてOS」|RIGHT:102|hello4.hrb| |
| |旧OSASK|RIGHT:176|helloc9.bin http://osask.jp/boyaki04.html| | | |旧OSASK|RIGHT:176|helloc9.bin http://osask.jp/boyaki04.html| |
| --アセンブラでも何でもありだけどウィンドウ内表示に限定部門: | | --アセンブラでも何でもありだけどウィンドウ内表示に限定部門: |
| |新OSASK||たぶん1位(予定)| | | |新OSASK||たぶん1位(予定)| |
- | |「はりぼてOS」|RIGHT:82|winhelo4.hrb 近日公開| | + | |「はりぼてOS」|RIGHT:81|winhelo4.hrb改 [OSASK 00105] ( MOV EBX,EAX を XCHG EAX,EBX に)| |
| |旧OSASK|RIGHT:128|hellok1.bin http://osask.jp/boyaki04.html| | | |旧OSASK|RIGHT:128|hellok1.bin http://osask.jp/boyaki04.html| |
| |win32|RIGHT:157|http://maglog.jp/bwc/Article260141.html| | | |win32|RIGHT:157|http://maglog.jp/bwc/Article260141.html| |
| ~ | | ~ |
| + | -chars対決 |
| + | -cpy対決 |
| + | -hexdump対決 |
| + | -calendar対決 |
| -bball対決 | | -bball対決 |
| -invader対決 | | -invader対決 |
| --旧OSASK | | --旧OSASK |
| --新OSASK | | --新OSASK |
| + | -tolset対決 |
| + | | |bim2g01 |obj2bim |gas2nask |naskcnv0 |sjisconv | golib00 |bim2hrb |makefont |bin2obj |aksa |nask | |
| + | |win32 |RIGHT:4,608|RIGHT:12,800|RIGHT:11,155|RIGHT:3,584|RIGHT:2,560|RIGHT:4,608|RIGHT:4,096|RIGHT:3,072|RIGHT:4,096|RIGHT:8,192|RIGHT:27,648| |
| + | |abcdw006|RIGHT:1,956|RIGHT:7,211 |RIGHT:5,114|RIGHT:2,050|RIGHT:912 |RIGHT:2,749|RIGHT:987|RIGHT:691 |RIGHT:983 |RIGHT:5,311|RIGHT:23,314| |
| + | |新OSASK|RIGHT:1,542|RIGHT:6,272 |RIGHT:4,559 |RIGHT:1,491|RIGHT:376 |RIGHT:2,386|RIGHT:384|RIGHT:72 |RIGHT:477 |RIGHT:4,700|RIGHT:22,824| |
| + | //--(註)bim2g01の比較としては新OSASK版は2,138なのだが、これは双方にバグがあり、新OSASK版のみ修正してサイズが増えた。 |
| | | |
| -注釈 | | -注釈 |
| ---- | | ---- |
| -[[K]]の感想: | | -[[K]]の感想: |
- | -ライバルは旧OSASKとかDOS-Extenderくらいしかないだろうと高をくくっていたら、なんと「はりぼてOS」が大健闘。シンプルゆえの強さだろうか。特にhello4.hrbとhelloc2.g01の対決は参った。差はわずかに5バイトなのだが、将来「ぐいぐい01」用のライブラリを充実させても勝てる気がしない・・・(註:このときは107vs102で負けていた)。 | + | -ライバルは旧OSASKとかDOS-Extenderくらいしかないだろうと高をくくっていたら、なんと「はりぼてOS」が大健闘。シンプルゆえの強さだろうか。特にhello4.hrbとhelloc2.g01の対決はまいった。差はわずかに5バイトなのだが、将来「ぐいぐい01」用のライブラリを充実させても勝てる気がしない・・・(註:このときは107vs102で負けていた)。 |
| --というのは「ぐいぐい01」用のサイズ増加の原因はスタートアップルーチンやAPI呼び出し部分なのだが、ここは「ぐいぐい01」の特徴である「どのOS上でも実行可能にする」のせいでアドレス決めうちCALLやソフトウェア割り込みなどが利用できないため、どうしても減らせる気がしない。 | | --というのは「ぐいぐい01」用のサイズ増加の原因はスタートアップルーチンやAPI呼び出し部分なのだが、ここは「ぐいぐい01」の特徴である「どのOS上でも実行可能にする」のせいでアドレス決めうちCALLやソフトウェア割り込みなどが利用できないため、どうしても減らせる気がしない。 |
| --helloc2.g01では107バイトで上記の通り負けていたのだが、必死に考えてうまい方法を発見。helloc4.g01で89バイトになり、「はりぼてOS」に勝てた。 | | --helloc2.g01では107バイトで上記の通り負けていたのだが、必死に考えてうまい方法を発見。helloc4.g01で89バイトになり、「はりぼてOS」に勝てた。 |
| --よくよく見てみれば、hello対決では「ぐいぐい00」は「はりぼてOS」に全敗じゃないか・・・。恐るべし「はりぼてOS」! | | --よくよく見てみれば、hello対決では「ぐいぐい00」は「はりぼてOS」に全敗じゃないか・・・。恐るべし「はりぼてOS」! |
| | | |
- | * こめんと欄 | + | * こめんと欄 [#w801d338] |
| - efg01でgoogle検索したらトップになってたー。意外にユニーク? -- [[K]] &new{2008-04-27 (日) 23:33:44}; | | - efg01でgoogle検索したらトップになってたー。意外にユニーク? -- [[K]] &new{2008-04-27 (日) 23:33:44}; |
| | | |
| #comment | | #comment |