フロントエンドコードを解読しよう!

目的

WebCPU_VM(OSECPU-VMのJavaScriptによる実装)でフロントエンドコードを直接実行できるようにするために、バックエンドコードへ変換するための情報を集める。

参考になりそうなURL

  1. http://k.osask.jp/klog/?osecpu_0001
  2. http://osask.sourceforge.jp/w/634.html

現在の予想

app0023(bball)の解読

まだ途中です…やっと命令境界がみえてきた!fcodeのおかげです。

:シグネチャ
05e1
:DATA(type:0x03, size:0x20)
ae3a0 == 2E 3 20
:データ本体
c4 64 bb 3d a4 1d 81 09
5a 05 35 11 17 2c 07 51
07 77 17 9c 35 b7 5a c3
81 bf a4 ab bb 8b c4 64
6 5 0 8f = 6 5 0 F
88 0 1 0 = 8 0 1 0
88 1 1 0 = 8 1 1 0
4 3 2 6 = 4 3 2 6
6 6 b8 88 = 6 6 38 8
88 2 2 0 = 8 2 2 0
88 3 2 0 = 8 3 2 0
4 95 4 5 aa = 4 15 4 5 2A
a5 4 0 1 = 25 4 0 1
4 95 4 bf ac 1 = 4 15 4 3F 2C 1
1 = 1
a5 4 87 2 = 25 4 7 2
4 5 3 85 = 4 5 3 5
1 = 1

現状の解析コード

****LoadFrontEndBinaryText****
2E:DATA(type:0x3, length:0x20); [C464BB3DA41D81095A053511172C07510777179C35B75AC381BFA4ABBB8BC464]
06:LOOP.Begin(R5, initBy:0x0, endUntil:0xF);
08:LMEM(R0, P1, reserved:0x0);
08:LMEM(R1, P1, reserved:0x0);
04-03:PLIMEM(P2, Offset:0x6);
06:LOOP.Begin(R6, initBy:0x38, endUntil:0x8);
08:LMEM(R2, P2, reserved:0x0);
08:LMEM(R3, P2, reserved:0x0);
04-15:SUB(R4, R5, x:0x2A);
25:CMPG(R4, R0, x:0x1);
04-15:SUB(R4, R3F, x:0x2C);
01:LABEL
01:LABEL
25:CMPG(R4, R7, x:0x2);
04-05:03:drawLine(mode:0x5);
01:LABEL
****LoadFrontEndBinaryText End****

疑問点メモ

まだ作成中…

コメント欄(間違いの指摘や、情報を知っている方は教えてください!)


コメントお名前NameLink

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS