3: 2004-05-31 (月) 21:21:42 |
4: 2004-06-02 (水) 13:09:27 |
| --註:OSACMP形式はこの1バイトに先立って16バイトのシグネチャとnバイトの展開後のサイズに関する情報が付属する。これについては後述。 | | --註:OSACMP形式はこの1バイトに先立って16バイトのシグネチャとnバイトの展開後のサイズに関する情報が付属する。これについては後述。 |
| --bit0:0です。もしここが1なら以降のバイトに何らかの拡張情報が存在します。 | | --bit0:0です。もしここが1なら以降のバイトに何らかの拡張情報が存在します。 |
| + | ---実はこの先頭バイトがs7符号になっている。 |
| --bit1:0です。tek2ではここが1になる場合もありますが、tek1では常に0です。 | | --bit1:0です。tek2ではここが1になる場合もありますが、tek1では常に0です。 |
| --bit2-5:ブロックサイズです。0001ならブロックサイズ512バイト、0010なら1KB、・・・0111ならブロックサイズ32KB、・・・1111ならブロックサイズ8MBです。 | | --bit2-5:ブロックサイズです。0001ならブロックサイズ512バイト、0010なら1KB、・・・0111ならブロックサイズ32KB、・・・1111ならブロックサイズ8MBです。 |
| -その展開後のサイズを上記のブロックサイズで割って、いくつのブロックがアーカイブに含まれるか計算します。このブロック数によって、これ以降のフォーマットが決まります。 | | -その展開後のサイズを上記のブロックサイズで割って、いくつのブロックがアーカイブに含まれるか計算します。このブロック数によって、これ以降のフォーマットが決まります。 |
| --レベル0フォーマット:1ブロック | | --レベル0フォーマット:1ブロック |
- | --レベル1フォーマット:2~256ブロック(bit6が1なら、1ブロックの場合もある) | + | --レベル1フォーマット:2~256ブロック(bit6が1なら、1ブロックでもこれになる) |
| --レベル2フォーマット:257~65536ブロック | | --レベル2フォーマット:257~65536ブロック |
| --レベル3フォーマット:63357~16777216ブロック | | --レベル3フォーマット:63357~16777216ブロック |
| --(1)まず符号寿命Aと符号寿命Bを寿命切れにセット(これらはただの整数カウンタです)。 | | --(1)まず符号寿命Aと符号寿命Bを寿命切れにセット(これらはただの整数カウンタです)。 |
| --(2)もし符号寿命Aが寿命切れだったら、byとlzのUC0符号パラメータとこれらの寿命を読み込む。 | | --(2)もし符号寿命Aが寿命切れだったら、byとlzのUC0符号パラメータとこれらの寿命を読み込む。 |
| + | ---フォーマット的には、寿命、by、lzの順番 |
| --(3)符号寿命Aを1カウント進めて年をとらせる。 | | --(3)符号寿命Aを1カウント進めて年をとらせる。 |
| --(4)byの値を整数で取得。その値に1を足す。 | | --(4)byの値を整数で取得。その値に1を足す。 |
| --(7)lzの値を整数で取得。その値に1を足す。この回数だけ(8)~(12)を繰り返す。 | | --(7)lzの値を整数で取得。その値に1を足す。この回数だけ(8)~(12)を繰り返す。 |
| --(8)もし符号寿命Bが寿命切れだったら、dsとcpのUC0符号パラメータとこれらの寿命を読み込む。 | | --(8)もし符号寿命Bが寿命切れだったら、dsとcpのUC0符号パラメータとこれらの寿命を読み込む。 |
| + | ---フォーマット的には、寿命、ds、cp、cpの最低値(2bit)の順番 |
| --(9)符号寿命Bを1カウント進めて年をとらせる。 | | --(9)符号寿命Bを1カウント進めて年をとらせる。 |
| --(10)dsの値を整数で取得。これに-1をXOR。そうすると、-1以下の整数になる。これをdとしよう。 | | --(10)dsの値を整数で取得。これに-1をXOR。そうすると、-1以下の整数になる。これをdとしよう。 |
| --s7sで読み取った際に3バイトで終わったのなら0x4080を加える。 | | --s7sで読み取った際に3バイトで終わったのなら0x4080を加える。 |
| --s7sで読み取った際に4バイトで終わったのなら0x204080を加える。 | | --s7sで読み取った際に4バイトで終わったのなら0x204080を加える。 |
| + | --s7sで読み取った際に5バイトで終わったのなら0x10204080を加える。 |
| --以下略。 | | --以下略。 |
| | | |