サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
2: 2009-01-09 (金) 13:40:34 ソース 現: 2024-01-08 (月) 12:58:42 k-tan ソース
Line 1: Line 1:
-* ぐいぐい01に関するメモ-22+TITLE:x 
 +* ぐいぐい01に関するメモ-22 [#i32c90fd]
-(by [[K]], 2009.01.09) -(by [[K]], 2009.01.09)
-メモのうち重要な部分をそのうちまとめてまともなページを作る -メモのうち重要な部分をそのうちまとめてまともなページを作る
-*** (37) 2009.01.09以降の近況+*** (37) 2009.01.09以降の近況 [#fc598b90]
-以前の近況ページ([[GUIGUI01/memo14]])がもう長くなってきたので、以降はこっちに書くことにします、気分も新たに。 -以前の近況ページ([[GUIGUI01/memo14]])がもう長くなってきたので、以降はこっちに書くことにします、気分も新たに。
-現在efg01の仕様変更は予定していません。検討しているのは、仕様拡張だけです。ただし.g01アプリのほうは、仕様変更したいことがいくつかあります。 -現在efg01の仕様変更は予定していません。検討しているのは、仕様拡張だけです。ただし.g01アプリのほうは、仕様変更したいことがいくつかあります。
Line 16: Line 17:
   /* fomrat.code.align:1 でも同じこと */    /* fomrat.code.align:1 でも同じこと */
 }  }
 + 
 file: {  file: {
   ../z_tools/guigui01/golibc.lib    ../z_tools/guigui01/golibc.lib
Line 22: Line 23:
   /* このセクションはin:の後に指定したものと見なされる */    /* このセクションはin:の後に指定したものと見なされる */
 }  }
 + 
 label: {  label: {
   startup    startup
Line 34: Line 35:
-と書くこともできるようになります(そういう意味ではもはやRULEFILEというMakefile変数名は適切ではないですが)。 -と書くこともできるようになります(そういう意味ではもはやRULEFILEというMakefile変数名は適切ではないですが)。
-それと現在、obj2bimはfixobjという機能も有していますが、一つのアプリに複数の機能を持たせてもいい事はないので(usageが長くなって分かりにくい)、この機能をfixobj.g01で独立させて、obj2bimは本来のリンク処理専用にするつもりです。obj2bimはこれで2KBくらい小さくなるのではないかと思います。golib00も小さくなるでしょう。というか多分みんなnaskで.objを生成しているので、今ではfixobjなんてやっている人いないでしょうね・・・。 -それと現在、obj2bimはfixobjという機能も有していますが、一つのアプリに複数の機能を持たせてもいい事はないので(usageが長くなって分かりにくい)、この機能をfixobj.g01で独立させて、obj2bimは本来のリンク処理専用にするつもりです。obj2bimはこれで2KBくらい小さくなるのではないかと思います。golib00も小さくなるでしょう。というか多分みんなnaskで.objを生成しているので、今ではfixobjなんてやっている人いないでしょうね・・・。
 +----
 +-2009.01.10
 +-現在文字コードを(互換性を乱さない範囲で)改良したらどうなるか研究中。このアイデアの細部は僕の考案物ですが、大枠はneriさんのほうが何日も先です。・・・なおここに出ているabcdw012は仕様変更を伴わない単なる仕様拡張なので、急いでリリースしたりする予定はありません。だからもうすぐか?なんて期待しないでください(笑)。
 +-やっぱりこの表がないと楽しくないので(笑)書いておくことにします。
 +-以下にここまでの成果(多分これが限界でもあると思う)を書いておきます。[2009.01.14更新]
 +|          |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|
 +|abcdw014用 |RIGHT:''16''|RIGHT:''67''|RIGHT:''13''|RIGHT:''6''|RIGHT:''50''|RIGHT:''45''|RIGHT:''119''|RIGHT:''188''|RIGHT:''376''|
 +|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バイト|コマンドライン計算機(整数演算のみ)|
 +-512バイト以下で有用なアプリ一覧
 +|hexdump|RIGHT:168バイト|ファイルの16進ダンプ表示|
 +|calendar|RIGHT:358バイト|カレンダー表示|
 +----
 +-2009.01.11
 +-現在考えている一般公開プラン:半年おきの更新。夏至と冬至。
 +-毎月リリースは結局アプリの入れ替えレベルの(ほとんど無意味な)リリースに終わることも少なくなかったので、これは再開したくない。でも年に一度はあまりに間隔が長すぎる。それでこれくらいならいいかなと。
 +
 +-ちょっとした思い付きで、カレンダーアプリを作りました(夏至とかを話題にしたせいで思いついた)。372バイトです。指定した月だけ表示するのと、1年分全部表示するのを選べます。「ぐいぐい01」アプリの中では、なかなかに実用的といえるアプリです。またフルアセンブラ化したアプリとしても最大記録です。1年分を出力させると2KBを超えるのですが、372バイトのプログラムから2KBも出てくると、なんだかお得感があります(笑)。このアプリのDOS版とかを作ってサイズ比較すると、helloやcharsやechoよりも現実的かもしれません。僕はあまりやる気がしませんが(というか負ける気がしない)。 http://osask.jp/files/
 +--こんなのが出ます。
 + >efg01 calendar.g01 2009 1
 + 
 +         Jan 2009
 + 
 + Sun Mon Tue Wed Thu Fri Sat
 +                   1  2  3
 +   4  5  6  7  8  9  10
 +  11  12  13  14  15  16  17
 +  18  19  20  21  22  23  24
 +  25  26  27  28  29  30  31
 + 
 +----
 +-2009.01.14
 +-abcdw013を開発中。もちろん今回もバイナリレベルでの上位互換は確保。.g01限定の簡易圧縮形式を導入して、アプリを13~17バイトくらい小さくします。
 +--これはどういうことかというと、tek圧縮では基本的に一般のデータフォーマットとの誤認を避けるために、15バイトにも及ぶ非常に長いヘッダを採用しています。これは基本的にはいい設計思想だと今も思っているので変える気はないのですが、一方で、アプリを究極的に小さくしたいという目的のためには、少々じゃまになっています。
 +--またabcdw012までの方法で.g01アプリを圧縮すると当然2バイトのg01シグネチャも圧縮することになるのですが、これのせいで結果的にファイル全体の傾向の予測にノイズが入るようなことになって、圧縮率が(わずかですが)下がっています。そこで、ヘッダ部分は圧縮対象からはずして、ヘッダ以降のみを圧縮してやるという方式を導入します(もちろん従来の形式もそのまま使えます)。
 +--そうするとg01ヘッダがある時点でフォーマット誤認の心配はないので、15バイトのヘッダはただのゴミです。ということでカットします。こうしてこのカット分だけアプリが小さくなるというわけです。
 +----
 +-2009.01.29
 +-.g01にもsprintf的なものを導入したほうがいいんじゃないかと仙台で思った。でも本当にそうなのか検討する時間がない・・・。
-* こめんと欄+* こめんと欄 [#i622c325] 
 +- 急いでリリースすることはないはずだったのに、結局abcdw012をアップロードしました。  http://osask.jp/files/ まあhelloの最小記録更新記念ってことで。 -- [[K]] &new{2009-01-10 (土) 20:05:36}; 
 +- abcdw013をアップロードしました。ドキュメントはhideyosiさんの苦労をしのんで改良しましたが、はたして役に立ってくれるでしょうか・・・。 -- ''K'' &new{2009-01-15 (木) 19:16:01}; 
 +- abcdw013にはバグがあったので、バグを直してabcdw014を作りました。 -- ''K'' &new{2009-01-15 (木) 22:19:16}; 
 +- abcdw015をアップロードしました。要望の多かったキー入力に対応しています。まあまだいたらないところはいろいろありますが、これでWin/Linuxで共通に使えるバイナリをコンパクトに作るという点では、コンソールアプリ限定なら、少しは使えるはずです。 -- ''K'' &new{2009-09-23 (水) 17:43:58}; 
 +- abcdw017をIRCでリリースしたらうまく行っているようなので、そのまま一般公開しました。 http://osask.jp/ からたどれます。APIを増やしてtcnsのゲームを追加しました。 -- ''K'' &new{2009-10-06 (火) 01:35:42};
#comment #comment

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。