6: 2009-01-11 (日) 09:36:05 [6] | 現: 2024-01-08 (月) 12:58:42 k-tan[7] [8] | ||
---|---|---|---|
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 38: | Line 39: | ||
-現在文字コードを(互換性を乱さない範囲で)改良したらどうなるか研究中。このアイデアの細部は僕の考案物ですが、大枠はneriさんのほうが何日も先です。・・・なおここに出ているabcdw012は仕様変更を伴わない単なる仕様拡張なので、急いでリリースしたりする予定はありません。だからもうすぐか?なんて期待しないでください(笑)。 | -現在文字コードを(互換性を乱さない範囲で)改良したらどうなるか研究中。このアイデアの細部は僕の考案物ですが、大枠はneriさんのほうが何日も先です。・・・なおここに出ているabcdw012は仕様変更を伴わない単なる仕様拡張なので、急いでリリースしたりする予定はありません。だからもうすぐか?なんて期待しないでください(笑)。 | ||
-やっぱりこの表がないと楽しくないので(笑)書いておくことにします。 | -やっぱりこの表がないと楽しくないので(笑)書いておくことにします。 | ||
- | -以下にここまでの成果(多分これが限界でもあると思う)を書いておきます。[2009.01.10更新] | + | -以下にここまでの成果(多分これが限界でもあると思う)を書いておきます。[2009.01.14更新] |
| |hello |hello-c |chars |echo |echo-c |cpy |cpy-c |makefont-c |sjisconv-c| | | |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| | |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| | |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| | |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''| | + | |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''| | + | |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:?| | |COM64plus用|RIGHT:18? |検討中? |RIGHT:14 |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:?| | ||
|DOS用 |RIGHT:22 |RIGHT:? |RIGHT:17 |RIGHT:19 |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:?| | |DOS用 |RIGHT:22 |RIGHT:? |RIGHT:17 |RIGHT:19 |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:? |RIGHT:?| | ||
Line 50: | Line 52: | ||
|echo|RIGHT:6バイト|コマンドライン引数のエコーバック| | |echo|RIGHT:6バイト|コマンドライン引数のエコーバック| | ||
|chars|RIGHT:13バイト|キャラクターコード0x20から0x7eを出力| | |chars|RIGHT:13バイト|キャラクターコード0x20から0x7eを出力| | ||
- | |hello|RIGHT:16バイト|コンソールに"hello, world¥n"を出力| | + | |hello|RIGHT:16バイト|コンソールに"hello, world\n"を出力| |
|cpy|RIGHT:45バイト|ファイルのコピーと連結とtek圧縮解除| | |cpy|RIGHT:45バイト|ファイルのコピーと連結とtek圧縮解除| | ||
|makefont|RIGHT:72バイト|テキストデータからフォントデータを作る| | |makefont|RIGHT:72バイト|テキストデータからフォントデータを作る| | ||
|calc1|RIGHT:86バイト|コマンドライン計算機(整数演算のみ)| | |calc1|RIGHT:86バイト|コマンドライン計算機(整数演算のみ)| | ||
+ | -512バイト以下で有用なアプリ一覧 | ||
+ | |hexdump|RIGHT:168バイト|ファイルの16進ダンプ表示| | ||
+ | |calendar|RIGHT:358バイト|カレンダー表示| | ||
---- | ---- | ||
-2009.01.11 | -2009.01.11 | ||
-現在考えている一般公開プラン:半年おきの更新。夏至と冬至。 | -現在考えている一般公開プラン:半年おきの更新。夏至と冬至。 | ||
-毎月リリースは結局アプリの入れ替えレベルの(ほとんど無意味な)リリースに終わることも少なくなかったので、これは再開したくない。でも年に一度はあまりに間隔が長すぎる。それでこれくらいならいいかなと。 | -毎月リリースは結局アプリの入れ替えレベルの(ほとんど無意味な)リリースに終わることも少なくなかったので、これは再開したくない。でも年に一度はあまりに間隔が長すぎる。それでこれくらいならいいかなと。 | ||
- | * こめんと欄 | + | |
- | - 急いでいりリースすることはないはずだったのに、結局abcdw012をアップロードしました。 http://osask.jp/files/ まあhelloの最小記録更新記念ってことで。 -- [[K]] &new{2009-01-10 (土) 20:05:36}; | + | -ちょっとした思い付きで、カレンダーアプリを作りました(夏至とかを話題にしたせいで思いついた)。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 |
(This host) = http://osask.net