2: 2008-12-29 (月) 06:53:49 |
現: 2024-01-08 (月) 12:58:41 k-tan |
- | * 「ぐいぐい01」のアプリフォーマット | + | TITLE:x |
| + | * 「ぐいぐい01」のアプリフォーマット [#f8fb8cf8] |
| -(by [[K]], 2008.12.29) | | -(by [[K]], 2008.12.29) |
- | *** 註 | + | *** 註 [#u5026115] |
- | -所詮はOSASK-HB向けなのでまあ暫定的なものです。とりあえず2008.12.29時点で最新定のabcdw007での仕様を書きました。ちなみにabcdw008でもこの仕様のままの予定です。 | + | -所詮はOSASK-HB向けなのでまあ暫定的なものです。とりあえず2008.12.29時点で最新のabcdw007での仕様を書きました。ちなみにabcdw008でもこの仕様のままの予定です。 |
| + | -基本的にここに書いてあることを理解する必要はありません。bim2g01が勝手に生成してくれるので。 |
| -旧仕様については[[GUIGUI01/man0003]]に記述が残してあります。見比べると分かりますが、実はほとんど変わっていません。 | | -旧仕様については[[GUIGUI01/man0003]]に記述が残してあります。見比べると分かりますが、実はほとんど変わっていません。 |
- | *** 基本構造 | + | *** 基本構造 [#y59a9d4a] |
| -最初の2バイトがシグネチャで、0x47 0x01。 | | -最初の2バイトがシグネチャで、0x47 0x01。 |
| --大文字小文字アルファベット+0x00~0x1fの組み合わせは他でも使うかもしれないので、誰かがもし下記に似たフォーマットを独自に設計して利用するつもりなら避けてもらえると個人的にはありがたい。 | | --大文字小文字アルファベット+0x00~0x1fの組み合わせは他でも使うかもしれないので、誰かがもし下記に似たフォーマットを独自に設計して利用するつもりなら避けてもらえると個人的にはありがたい。 |
- | -その次はトップレベルのタグ総数。 | + | -その次はルート内のタグ総数。 |
- | --この値が0だと小プログラム向け簡易形式になる。1以上なら通常形式。簡易形式ではgh4によるフラグが後続し(これは通常形式のトップレベルタグ[03]で記述される内容)、その後はバイト単位でのアラインの後、ファイル終端まですべてコードセクションのイメージと見なされる。簡易形式ではデータセクションやリロケーション情報、スタックサイズ指定なども一切できない。 | + | --この値が0だと小プログラム向け簡易形式になる。1以上なら通常形式。簡易形式ではgh4によるフラグが後続し(これは通常形式のルート内タグ[03]で記述される内容)、その後はバイト単位でのアラインの後、ファイル終端まですべてコードセクションのイメージと見なされる。簡易形式ではデータセクションやリロケーション情報、スタックサイズ指定なども一切できない。 |
| -それ以降はすべてタグ。 | | -それ以降はすべてタグ。 |
| -数値はたいてい[[GUIGUI01/man0004]]の(1)の方法でエンコードされている。以下これをgh4エンコードと呼ぶ。 | | -数値はたいてい[[GUIGUI01/man0004]]の(1)の方法でエンコードされている。以下これをgh4エンコードと呼ぶ。 |
| | | |
| 47 01 -- シグネチャ。 | | 47 01 -- シグネチャ。 |
- | 2_ -- トップレベルタグ数2(この場合は[0D]が2個)。 | + | 2_ -- ルート内タグ数2(この場合は[0D]が2個)。 |
| _8 D3 -- [0D] セクション開始タグ、ネスト内タグ数3。 | | _8 D3 -- [0D] セクション開始タグ、ネスト内タグ数3。 |
| 0_ -- [00] NOPなタグ。 | | 0_ -- [00] NOPなタグ。 |
| | | |
| 47 01 -- シグネチャ。 | | 47 01 -- シグネチャ。 |
- | 2_ -- トップレベルタグ数0。つまり簡易形式。 | + | 0_ -- ルート内タグ数0。つまり簡易形式。 |
| _1 -- フラグ1。つまり、CALL([ESI]);の自動挿入あり、自動改行有効、rjcあり、初期値テーブルなし。 | | _1 -- フラグ1。つまり、CALL([ESI]);の自動挿入あり、自動改行有効、rjcあり、初期値テーブルなし。 |
| 50 13 68 ... 6C 64 00 -- コードセクションの中身。実際にはこの前に FF 16 の2バイトが追加され、 | | 50 13 68 ... 6C 64 00 -- コードセクションの中身。実際にはこの前に FF 16 の2バイトが追加され、 |
| 末尾にC3の1バイトも足される。 | | 末尾にC3の1バイトも足される。 |
| | | |
- | *** タグのフォーマット | + | *** タグのフォーマット [#c25108f5] |
| -タグ番号はすべてgh4でエンコード。このルールはネスト内のタグでも有効。 | | -タグ番号はすべてgh4でエンコード。このルールはネスト内のタグでも有効。 |
| -[00] : | | -[00] : |
| --最初にgh4があって、これが文字列の個数に相当。そしてその個数の回数だけ「各文字列長に相当するgh4と文字列そのものに相当する4bit配列」を繰り返す。 | | --最初にgh4があって、これが文字列の個数に相当。そしてその個数の回数だけ「各文字列長に相当するgh4と文字列そのものに相当する4bit配列」を繰り返す。 |
| -[28]以降のタグ番号については、どんなフォーマットを取るかの規定はまだない。 | | -[28]以降のタグ番号については、どんなフォーマットを取るかの規定はまだない。 |
- | *** タグのコード(ルート内) | + | *** タグのコード(ルート内) [#u97cac61] |
| -[00] 何もしない。NOPなタグ。パディングなどで使いたければ使う。 | | -[00] 何もしない。NOPなタグ。パディングなどで使いたければ使う。 |
| ---- | | ---- |
| -[18] コメントタグ。このタグ内の記述はすべて無視する。 | | -[18] コメントタグ。このタグ内の記述はすべて無視する。 |
| -上記以外はリザーブ。 | | -上記以外はリザーブ。 |
- | *** タグのコード(セクション記述タグ内) | + | *** タグのコード(セクション記述タグ内) [#u4e6e8b0] |
| -[00] 何もしない、NOPなタグ。パディングなどで使いたければ使う。 | | -[00] 何もしない、NOPなタグ。パディングなどで使いたければ使う。 |
| ---- | | ---- |