ページへ戻る

− Links

 印刷 

tek1 のバックアップ差分(No.4) :: OSASK計画

osaskwiki:tek1 のバックアップ差分(No.4)

« Prev[4]  Next »[5]
3: 2004-05-31 (月) 21:21:42 ソース[6] 4: 2004-06-02 (水) 13:09:27 ソース[7]
Line 9: Line 9:
--註: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です。
Line 16: Line 17:
-その展開後のサイズを上記のブロックサイズで割って、いくつのブロックがアーカイブに含まれるか計算します。このブロック数によって、これ以降のフォーマットが決まります。 -その展開後のサイズを上記のブロックサイズで割って、いくつのブロックがアーカイブに含まれるか計算します。このブロック数によって、これ以降のフォーマットが決まります。
--レベル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ブロック
Line 57: Line 58:
--(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を足す。
Line 63: Line 65:
--(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としよう。
Line 87: Line 90:
--s7sで読み取った際に3バイトで終わったのなら0x4080を加える。 --s7sで読み取った際に3バイトで終わったのなら0x4080を加える。
--s7sで読み取った際に4バイトで終わったのなら0x204080を加える。 --s7sで読み取った際に4バイトで終わったのなら0x204080を加える。
 +--s7sで読み取った際に5バイトで終わったのなら0x10204080を加える。
--以下略。 --以下略。
« Prev[4]  Next »[5]