* ぐいぐい01に関するメモ-22 -(by [[K]], 2009.01.09) -メモのうち重要な部分をそのうちまとめてまともなページを作る *** (37) 2009.01.09以降の近況 -以前の近況ページ([[GUIGUI01/memo14]])がもう長くなってきたので、以降はこっちに書くことにします、気分も新たに。 -現在efg01の仕様変更は予定していません。検討しているのは、仕様拡張だけです。ただし.g01アプリのほうは、仕様変更したいことがいくつかあります。 --仕様変更=従来のものが動かなくなるような改造 --仕様拡張=従来のものはそのまま動くような改造 -現在、golib00はコマンドラインの一部をファイルに書いておく機能を有しています。またobj2bimのルールファイルも本来はコマンドラインにも書けるようにしておくべきだと思っています。しかしこういうことを個別のアプリで不統一に実現するべきではないと僕は考えています。 -ということで、すべてのコマンドで incl:ファイル名 という記述を許すことにして、これが指定された場合は、コマンドラインのその部分をファイルの内容で置き換えさせることにしようかと思っています。こうすることで外部ファイルに置いた内容も「ぐいぐい01」の強力なコマンドライン取得APIだけで統一的に扱えるようになるわけです。またそこに記載されたファイルパスもアプリには見えなくなり、とても安全になります(ここでいう安全は、OSASK的な意味での安全であって、世間一般のセキュリティ感覚とは別)。 -これと前後して、コマンドライン中に /* */ の表記も許すことにしようと思っています。 //: は簡易コメントです。そしてこれをやると、たぶんobj2bimのルールファイルの書式はかなり変わります。 format { code { align:1 logic:0 file:0x20 } data { align:8 logic:stack_end file:code_end } /* stack_endなどはアプリの中でdefineする機能を付けて解決 */ /* fomrat.code.align:1 でも同じこと */ } file: { ../z_tools/guigui01/golibc.lib /* ../z_tools/guigui01/gg01libc.lib */ /* このセクションはin:の後に指定したものと見なされる */ } label: { startup } -ちなみに上記をわざわざ別ファイルにしてincl:しなければいけないということではないので、Makefile等を使っているのなら、 RULEFILE = incl:guigui01.rul -の代わりに、 RULEFILE = format.code { align:1 logic:0 file:0x20 } \ format.data { align:8 logic:stack_end file:code_end } \ file:../z_tools/guigui01/golibc.lib label:startup -と書くこともできるようになります(そういう意味ではもはやRULEFILEというMakefile変数名は適切ではないですが)。 -それと現在、obj2bimはfixobjという機能も有していますが、一つのアプリに複数の機能を持たせてもいい事はないので(usageが長くなって分かりにくい)、この機能をfixobj.g01で独立させて、obj2bimは本来のリンク処理専用にするつもりです。obj2bimはこれで2KBくらい小さくなるのではないかと思います。golib00も小さくなるでしょう。というか多分みんなnaskで.objを生成しているので、今ではfixobjなんてやっている人いないでしょうね・・・。 ---- -2009.01.10 -現在文字コードを(互換性を乱さない範囲で)改良したらどうなるか研究中。このアイデアの細部は僕の考案物ですが、大枠はneriさんのほうが何日も先です。・・・なおここに出ているabcdw012は仕様変更を伴わない単なる仕様拡張なので、急いでリリースしたりする予定はありません。だからもうすぐか?なんて期待しないでください(笑)。 -やっぱりこの表がないと楽しくないので(笑)書いておくことにします。 -以下にここまでの成果(多分これが限界でもあると思う)を書いておきます。[2009.01.10更新] | |hello |hello-c |chars |echo |echo-c |cpy |cpy-c |makefont-c |sjisconv-c| |abcdw006用 |RIGHT:27 |RIGHT:86 |RIGHT:33 |RIGHT:? |RIGHT:156 |RIGHT:? |RIGHT:612 |RIGHT:691 |RIGHT:912| |abcdw007用 |RIGHT:18 |RIGHT:69 |RIGHT:14 |RIGHT:13 |RIGHT:71 |RIGHT:? |RIGHT:342 |RIGHT:347 |RIGHT:507| |abcdw008用 |RIGHT:18 |RIGHT:69 |RIGHT:14 |RIGHT:''6''|RIGHT:51 |RIGHT:''45''|RIGHT:138 |RIGHT:207 |RIGHT:395| |abcdw009用 |RIGHT:17 |RIGHT:68 |RIGHT:''13''|RIGHT:''6''|RIGHT:''50''|RIGHT:''45''|RIGHT:''134''|RIGHT:''203''|RIGHT:''389''| |abcdw012用 |RIGHT:''16''|RIGHT:''67''|RIGHT:''13''|RIGHT:''6''|RIGHT:''50''|RIGHT:''45''|RIGHT:''134''|RIGHT:''203''|RIGHT:''389''| |COM64plus用|RIGHT:18? |検討中? |RIGHT:14 |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:?| |DOS用 |RIGHT:22 |RIGHT:? |RIGHT:17 |RIGHT:19 |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:?| -100バイト未満のアプリ一覧 |echo|RIGHT:6バイト|コマンドライン引数のエコーバック| |chars|RIGHT:13バイト|キャラクターコード0x20から0x7eを出力| |hello|RIGHT:16バイト|コンソールに"hello, world\n"を出力| |cpy|RIGHT:45バイト|ファイルのコピーと連結とtek圧縮解除| |makefont|RIGHT:72バイト|テキストデータからフォントデータを作る| |calc1|RIGHT:86バイト|コマンドライン計算機(整数演算のみ)| * こめんと欄 - 急いでいりリースすることはないはずだったのに、結局abcdw012をアップロードしました。 http://osask.jp/files/ まあhelloの最小記録更新記念ってことで。 -- [[K]] &new{2009-01-10 (土) 20:05:36}; #comment
(This host) = http://osask.net