サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
3: 2004-05-31 (月) 21:21:42 ソース 4: 2004-06-02 (水) 13:09:27 ソース
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を加える。
--以下略。 --以下略。

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。