V20-MBCエミュレータの開発 その2

ドハマり中…

エミュレータの開発進捗を報告したいんだけど、驚くほどのドハマり中…。

写真を見て欲しい。

f:id:PocketGriffon:20200820100451p:plain

↑これは実機(V20-MBC)で動かした写真。

何の変哲も無い、変数に小数点の値を代入するプログラム。

入力してLISTすればその通りに表示される。

 

そして↓こっちが私が開発中のエミュレータの画像。

f:id:PocketGriffon:20200820100616p:plain

うーん…ちゃんと表示されない。

 

中で起きている事はほぼ全部把握出来ている。

プログラムを打ち込んでリターンを押した瞬間に、内部的に中間コードに置き換わり、1.5が本来ならば単精度実数値として格納される。それが…なぜか私のエミュレータでは倍精度に置き換わろうとして値が失われてしまう。失われる事もおかしな話だ。

そして壊れた数値を表示しようとして表示が化ける…というプロセスだ。

 

で、問題は、ここまで状況が理解出来ているというのにバグの原因が特定出来ないって事。

アセンブラのコードにして数百行という短いプログラムの間で、だ。

少なくともその数百行の中に矛盾は存在せず、正しいコードのように思える。

となると、もっと前の段階で間違いが起きているのか、そもそもマシン語コードとしての根本的な誤解をしているか、かなぁ…と思っている。

 

こんなバグに3日以上も悩まされてるよ…orz

久しぶりに脳みそ使ってる感じがしてならない(^^;;

 

明るい報告が出来なくて申し訳ないけれども、諦めずに頑張ってます!

もっと楽しい記事をブログに書きたいなぁ!(^-^;

 

それではまた次回!(^-^)ノ