4: 2008-12-23 (火) 15:30:18 [6] | 現: 2024-01-08 (月) 12:58:42 k-tan[7] [8] | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | * ぐいぐい01に関するメモ-15 | + | TITLE:x |
+ | * ぐいぐい01に関するメモ-15 [#rb6fe09e] | ||
-(by [[K]], 2008.12.23) | -(by [[K]], 2008.12.23) | ||
-メモのうち重要な部分をそのうちまとめてまともなページを作る | -メモのうち重要な部分をそのうちまとめてまともなページを作る | ||
- | *** (30) helloの改良の歴史 (118→18) | + | *** (30) helloの改良の歴史 (118→16) [#zad2ee96] |
-(参考として)''DOS''の.COM形式: | -(参考として)''DOS''の.COM形式: | ||
--22バイトが限界 | --22バイトが限界 | ||
Line 70: | Line 71: | ||
['G' 01 で2バイト] [セクション記述子1バイト] | ['G' 01 で2バイト] [セクション記述子1バイト] | ||
[5 0 12 "hello, world" 3 の内容で14.5バイト、フォーマット制御で0.5バイト] | [5 0 12 "hello, world" 3 の内容で14.5バイト、フォーマット制御で0.5バイト] | ||
- | -COM64plusではまだ末尾CALL(EBP)の自動挿入は導入していないらしいが、たぶん導入することになるのではないかと思われる。 | + | --COM64plusではまだ末尾CALL(EBP)の自動挿入は導入していないらしいが、たぶん導入することになるのではないかと思われる。 |
- | + | -''17バイトのhello'': | |
- | * こめんと欄 | + | --2009.01.02に思いついた。APIパケットが1つしかないときは3を全く使わなくてもよくなった(逆にAPIパケットを2つ以上連続させるときは、先頭と末端に3を置く)。またslot番号0はファンクション5番のデフォルトとなり、このデフォルトを変更する場合は!4を置いてその後に目的の値を置くことになった。デフォルトのままでよければ、何も指定しなくていい。 |
+ | ['G' 01 で2バイト] [セクション記述子1バイト] | ||
+ | [5 12 "hello, world" の内容で13.5バイト、フォーマット制御で0.5バイト] | ||
+ | -''16バイトのhello'': | ||
+ | --2009.01.10に思いついた。コンソールへの文字列出力のとき、デフォルトの文字列は当然ASCIIなので(.g01ではモードを変更しないと日本語などは出せない)、いつも7bitしか必要ないのに1bitの0を補って8bit出力していることになっていた。これはなんかムダじゃないか?他ではものすごくがんばっているのにここでこんなムダを容認していいのか?ということで、7バイト出力するごとにMSBを集めて、これが0でなければもう一文字表示できるようにした。 | ||
+ | ['G' 01 で2バイト] [セクション記述子1バイト] | ||
+ | [5 12 "hello, world" の内容で12.5バイト、フォーマット制御で0.5バイト] | ||
+ | --最近ではすっかりこの内部形式に慣れてしまい、27バイト程度で限界だと思えた過去の自分が不思議でしょうがない(笑)。 | ||
+ | * こめんと欄 [#b35e8820] | ||
#comment | #comment |
(This host) = http://osask.net