3: 2008-12-23 (火) 15:30:18 [6] | 4: 2008-12-23 (火) 15:30:18 [7] | ||
---|---|---|---|
Line 57: | Line 57: | ||
---内容[5 0] モード変更("6"+1.5B=2.0B) 長さ[12] 内容[hello, world] 内容[3] | ---内容[5 0] モード変更("6"+1.5B=2.0B) 長さ[12] 内容[hello, world] 内容[3] | ||
--しかしこれでは16.5バイトだ。COM64plusに追いつくにはもっと減らさなければ! | --しかしこれでは16.5バイトだ。COM64plusに追いつくにはもっと減らさなければ! | ||
- | --さらにモード変更について考察した結果、たとえばモード変更をしたくなる場所というのはほとんど決まっていた。ようするに文字列を指定する場所や、バッファを指定する場所である。しかも指定値はほとんど決まって8bit配列モードだった。 | + | --さらにモード変更について考察した結果、モード変更をしたくなる場所というのはほとんど決まっていた。ようするに文字列を指定する場所や、バッファを指定する場所である。しかも指定値はほとんど決まって8bit配列モードだった。 |
--そういうことなら、こんな分かりきったことのために毎回2.0バイトも使うなんて非効率的過ぎる。そこで、APIパケットの文脈がこういう場所に差し掛かったときには、パケットに「モード変更:8bit配列モード」のコードを自動挿入させることにした。ただこれだけだと他のモードにする方法(もしくはモード変更しない方法)がなくなって柔軟性が損なわれるので、この文脈に差し掛かったときのパケット先頭が4bitの"5"なら、この"5"を読み捨てて自動挿入もしないということにした。これでこうなった。 | --そういうことなら、こんな分かりきったことのために毎回2.0バイトも使うなんて非効率的過ぎる。そこで、APIパケットの文脈がこういう場所に差し掛かったときには、パケットに「モード変更:8bit配列モード」のコードを自動挿入させることにした。ただこれだけだと他のモードにする方法(もしくはモード変更しない方法)がなくなって柔軟性が損なわれるので、この文脈に差し掛かったときのパケット先頭が4bitの"5"なら、この"5"を読み捨てて自動挿入もしないということにした。これでこうなった。 | ||
---内容[5 0] モード変更(0.5B) 長さ[12] 内容[hello, world] 内容[3] | ---内容[5 0] モード変更(0.5B) 長さ[12] 内容[hello, world] 内容[3] |
(This host) = http://osask.net