apple1.rom
JAG 沖縄支部の勉強会にて、ばいなりあんな下地さんという方と話してて、逆アセはプログラムにさせた方が絶対良い、という結論になりました。python で何とかできんかな、という事で repl 上で確認してみました。
とりあえず
以下。
>>> f = open("./apple1.rom", "rb") >>> cmd = f.read(1) >>> cmd '\xd8' >>> cmd = f.read(1) >>> cmd 'X' >>>
表示できるソレは文字として出力されるな。色々試行錯誤した結果、encode というナニがあるとの事。
>>> cmd.encode("hex_codec") '58' >>>
これでコマンドは確認できますな。これまで読み込んだ所では
- d8 (CLD i)
- 58 (CLI i)
次は何だったか。
>>> cmd '\xa0' >>>
- a0 (LDY #)
# は即値なので 1 byte だな。
>>> mnemonic = f.read(1) >>> mnemonic '\x7f' >>>
- a0 7f (LDY #)
になるのか。次。
>>> cmd = f.read(1) >>> cmd '\x8c' >>>
この命令は 2 byte だな。
>>> mnemonic = f.read(2) >>> mnemonic '\x12\xd0' >>>
- 8c $12d0 (STY a)
なんとなくここに書いてあるソレと合致はしてるので大丈夫かな。
あとは無理矢理ループさせて EOF まで、なのかな。でも
0000360 d012 fb30 128d 60d0 0000 0f00 ff00 0000 0000400
な末端部分の処理をどうしたものやら。