JR-300エミュレータの続編その1

ほそぼそとJR-300エミュレータの開発を続けている!

ここんところ実務でバタバタしてるので、1日で取り組める時間が1時間も無い(T-T)

でもちょっとずつでも続けていられればいいかな!

飽きっぽい性格なので、どこでやめちゃうかドキドキしてる(T-T)

せめてエミュレータのバイナリ公開まで行けるといいなぁ…。

 

でもJR会が予定された事からエミュレータを作る気になり、それをツイートした流れからJR-300をお持ちの方まで現れた!

JR-300本体の写真も載せてくださったのは本当に感謝でしかない!

写真や資料はどれも果てしなく参考になる!!

想像していたJR-200とJR-300の切り替えはディップスイッチで行うみたいだ。

 

RS-232Cがついているのは分かったけれど、BASICインタプリタの中にはシリアルっぽいファイルディスクリプトが存在しない(存在するのはCAS0:のみ)。

ということはプログラムのロードとかが出来ない???

うーん、謎ましい感じだ!(^-^)

 

JR-300の情報については本当に欲しい!

動く実機があれば開発してるエミュレータの答え合わせも出来るのだけど…うぬぬ。

 

デモンストレーション

JR-300のデモンストレーションの気になるところを修正した。

もちろん修正したのはデモプログラムではなく、エミュレータ側だ(^^;

 

円グラフの色がおかしい。

多分、グラフの中に色が塗られるのが正しいんだと思うけれど、なぜか塗られない。

 

その前に……実は円の描画が正しく実装されていないのだ(^^;

Xデー(JR会)に間に合わせるため、エミュレータの実装をズルしてる部分があった!

まぁこの手のズルっこはどこかでダメになるものだ(^^;;;

 

計算式を見直したところ、最後の1ドットが描画されていなかった!(T^T)

急いでると些細な事でバグが出る…orz

おっしゃ!ちゃんと直った!(^-^)

 

ちなみに棒グラフの一番下、赤い帯しか見えてないんだけど、ここは赤の背景、赤の文字で「ソノタ」とかかれているらしい。アトリビュートと文字の色解釈が間違っているのかと思ったが、どうもそうではなさそう…。

この謎はもう少し引きずりそうだ!

 

画面に飛行機が横切ると、テキストで青が残ってしまう問題。

 

これはスペース(' ')[$20]が背景色青で設定されている。

この場所以外でもスペースを別アトリビュートで置いてたりする。

わざわざ色を設定して置いてることから、なにか意味がありそうなんだけど…。

でもスペースが置かれてるし…。

デモの開発途中で仕様変更になった名残なのかも…??

 

仕方ないのでスペースは何色の背景で描画されようとも透過するようにしてみた。

してみた…というのがアレですが、正解がわからないので仕方がない(T-T)

 

飛行機の後方にカーソルが表示されちゃってるけど、これは気にしないで(^^;;

デバッグで動かしてるとカーソルが消えないのだw

 

一通り動いてるデモをツイートしてみたので、ぜひ見てみてほしい(^-^)

 

速度について

上のツイートに速度について書いているが、ここで詳しく説明をしたい。

Z80CPUのエミュレーションは大雑把ではあるが4MHzくらいに調整した。

 

サブCPU(おそらく6802)はフルスピード、つまりZ80側から見るとノーウェイトで動いてる。

Z80の1命令でどんな処理も終わってしまっているのだ(^^;;

デモの中にあったスプレッドシートの画面が瞬時に表示されてるのは、このせいだ。

この先、きちんとサブCPU側の処理遅延を入れていけば、上から下にだららーっと表示されていくのが見えるほど遅い…と思う!

 

さらにGDCもすべてノーウェイト動作だ。

LINEはコマンド発行後はGDC側で全処理が行われるので、Z80側から見たらノーウェイトで線が引かれている。

PAINTが遅く見えるのは、処理の途中でZ80側の処理が挟み込まれるから。Z80がちゃんと遅いのでPAINT自体も遅くなる…という事だw

 

この先、エミュレータをちゃんと作り込んでいくと、全体的にどんどん遅くなる(^^;;

デバッグ中はもちろんフルスピードだよ!(^o^)/

 

この先はBASICでのPCG定義(おそらくDEF CHR?)など、まだ解析できてない部分がたくさんあるので、その辺りを確認していこうと考えている!

のんびり行くよー!(^^)

 

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