ページへ戻る

− Links

 印刷 

GUIGUI01​/memo22 のバックアップソース(No.2) :: OSASK計画

osaskwiki:GUIGUI01/memo22 のバックアップソース(No.2)

« Prev[4]  Next »[5]
* ぐいぐい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なんてやっている人いないでしょうね・・・。

* こめんと欄

#comment

« Prev[4]  Next »[5]