サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
1: 2008-11-13 (木) 19:39:21 ソース 2: 2008-11-13 (木) 21:44:44 ソース
Line 2: Line 2:
-(by [[K]], 2008.11.13) -(by [[K]], 2008.11.13)
*** 註 *** 註
--所詮はOSASK-HB向けなのでまあ暫定的なものです。+-所詮はOSASK-HB向けなのでまあ暫定的なものです。とりあえず2008.11.13時点で最新のabcdw003での仕様を書きました。
*** 基本構造 *** 基本構造
-最初の2バイトがシグネチャで、0x47 0x01。 -最初の2バイトがシグネチャで、0x47 0x01。
-それ以降はすべてタグ。 -それ以降はすべてタグ。
--数値はすべて[[]]の方法でエンコードされている。+-数値はたいてい[[GUIGUI01/memo01]]の(6)の方法でエンコードされている。以下これをeh4エンコードと呼ぶ。
---- ----
--(例)helloc1.g01 (いわゆる27バイトの"hello, world\n") +-(例)hellok0.g01 (いわゆる27バイトの"hello, world\n") 
--47 01 -- シグネチャ + 47 01 8D 19 4A 2A FF D5 35 01 24 8D 68 65 6C 6C 
--8D 29 4A 89 35 00 00 00 00 E9 1C 00 00 ...+ 6F 2C 20 77 6F 72 6C 64 0A 44 03 
 + 
 + 47 01 -- シグネチャ。 
 + 8D 1_ -- [0D] セクション開始タグ, ネスト内タグ数1。 
 +   _9 4_A 2A -- [14] イメージ展開タグ, イメージ長 0x2a = 42。つまり21バイト。 
 +     FF D5 35 01 24 ... 0A 44 03 -- コードセクションの中身。 
 + 
 +*** タグのフォーマット 
 +-タグ番号はすべてeh4でエンコード。このルールはネスト内のタグでも有効。 
 +-[00] : 
 +--後続パラメータなし。 
 +-[01]~[0B] : 
 +--何らかの数値を指定。後続パラメータは1つで、eh4でエンコード。 
 +-[0C]~[0F] : 
 +--ネスト構造型タグ。タグの中にタグが複数含まれるタグ(0や1つの場合もあるが)。まず一つのパラメータがeh4で記述され、それがネスト内に含まれるタグの数を表す。 
 +--ネストの中にネストのタグが含まれることも当然ありうるが、その場合はネスト全体でタグ数1と数える。上記の例を参照のこと。 
 +-[10]~[17] : 
 +--バイナリ記述用タグ。eh4ではないエンコードのビット列などを格納するために使われている。まず一つのパラメータがeh4で記述され、それがこのタグ内に含まれるバイナリの長さを表す。ただしこの長さはバイト単位でもビット単位でもなく、4bit単位である。 
 +-[18]~[1f] : 
 +--書きつかれたので詳細は後日。 
 +*** タグのコード(ルート内) 
 +-[00] 何もしない。NOPなタグ。パディングなどで使いたければ使う。 
 +---- 
 +-[01] リザーブ。 
 +-[02] リザーブ。 
 +-[03] rjcフラグとファイルアクセスレベルの指定。bit0がrjcフラグ。bit1-2がファイルアクセスレベル。 
 +-[04] スタックサイズの指定(指数部)。 
 +--このタグを見つけると自動的に仮数部のデフォルトが1に設定される。したがって仮数部も指定するときは、先にこのタグで指数部を指定してからにする。0で4KB単位(=スタックサイズ=仮数部×4KB)、1で16KB単位、2で64KB単位、3で256KB単位、以下省略。 
 +--スタックについて全く指定がない場合、デフォルトの設定が使われる。デフォルトでは、指数部=4KB、仮数部=256。つまり1MB。 
 +-[05] スタックサイズの指定(仮数部)。(指定された値+1)が仮数部になる。 
 +-[06] リザーブ。 
 +-[07] リザーブ。 
 +-[08] malloc用領域のサイズ指定(指数部)。指定方法はスタックサイズと同じ。 
 +--デフォルトは、指数部=4KB、仮数部=512。つまり2MB。 
 +-[09] malloc用領域のサイズ指定(仮数部)。指定方法はスタックサイズと同じ。 
 +-[0A] メモリマップトファイル用の領域のサイズ指定(指数部)。指定方法はスタックサイズと同じ。 
 +--デフォルトは、指数部=4KB、仮数部=256。つまり1MB。 
 +-[0B] メモリマップトファイル用の領域のサイズ指定(仮数部)。指定方法はスタックサイズと同じ。 
 +---- 
 +-[0C] コメントタグ。このタグ内の記述はすべて無視する。 
 +-[0D] セクション記述タグ。下記参照。 
 +---- 
 +-上記以外はリザーブ。 
 +*** タグのコード(セクション記述タグ内) 
 +-[00] 何もしない、NOPなタグ。パディングなどで使いたければ使う。 
 +---- 
 +-[01] セクションタイプ指定。 
 +--このタグの指定がない場合、最初に記述されたセクションならセクションタイプ0がデフォルト。以前にセクション記述タグがあった場合は、(直前のセクションタイプ+1)がデフォルト。 
 +-[02] アライン指定タグ。デフォルトのアラインは4KB。 
 +-[04] これはセクションタイプによって意味が異なる。 
 +--コードセクション(セクションタイプ0)の場合は、エントリポイントの指定。デフォルトはゼロ。 
 +--bssセクション(セクションタイプ2)の場合は、セクションサイズ(仮数部)の指定。 
 +---スタックなどとは違って+1はない。デフォルトでは0。指数部のデフォルトは1バイト。 
 +---- 
 +-[0C] コメントタグ。このタグ内の記述はすべて無視する。 
 +---- 
 +-[14] セクションイメージタグ。バイナリデータをそのまま記述。 
 +---- 
 +-[19] コンパクト型リロケーション情報。書きつかれたので詳細は後日。 
 +---- 
 +-上記以外はすべてリザーブ。

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

目次
メンバー一覧


最新の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コミュニティによって管理・運営されています。