フロントエンドコードをdecoderを使って実行しよう!

現状

ここに現状の動くデモがあります。 Load->StepInMsがおすすめ。Breakもできます。StepInもできます。

多分バグは直りました!

できました!!

上記のデモも更新しました!今後はAPIを増やして、付属のアプリケーションをどんどん実行していけるようにしたいです。

フロントエンドコード動作確認済みのアプリ

以下のUNIXコマンドでテキスト化したものをテキストボックスにペーストしてLoad->Executeで実行できます!

od -tx1 -An [FileName]

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

目的

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

参考になりそうなURL

  1. http://k.osask.jp/klog/?osecpu_0001
  2. http://osask.sourceforge.jp/w/634.html
    • hh4エンコードの基本
  3. page0054
    • 符号付きhh4エンコードの解説>(3) hh4のエンコードテーブル

現在の予想

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