エミュレータ開発状況
「PC-1350でプログラミングをしてみたい!」
…というピュアな気持ちから始めている開発環境作りの一環としてのエミュレータ。
段々と動き始めましたw
↑上の画面は、起動直後に「MODE」キーを(擬似的に内部で)押してプログラムモードに切り替えたところ。
↑プログラムを入力してLISTをしたところ。
実際にキーを打ち込んでるワケじゃないw
プログラムでは文字列を用意し、それを適宜I/Oポートの状態に変換しながら出力している。PC-1350のBASIC ROMがI/Oポートを読み取り、エミュレータ内部に取り込まれていく…という感じ。
上のBASICプログラムは↓こんな感じでプログラムに直書きされている。
見て分かるとおり、やっつけな感じがすごいw
「a」は内部的にMODEキーに変換され、「b」はENTERだw
PC-1350(というかほとんどのBASIC)は、行番号付きの文字列が入力されると、それを内部コード(中間コード)に変換をしてメモリに配置する。そのため、ENTERが押されたあとは忙しい事が多く、次のキーデータを入れるまでの「間」が必要となる。そんな辺りも試してみてはタイミングを手作業で調整していってる。
実行するとこんな感じ(^^)
ちなみにメモリはフル実装としたw
白状しちゃうと、メモリ容量はプログラム的に何もしていない。
でもCE-202M(16KB)があると認識されているので、おそらくメモリに書いて読んでとやってみて、実際にデータが書き込めたらメモリがある…と判断しているのかな…
そのうちちゃんと調べてみようと思う。
せっかくのPC-1350なので、グラフィックスにも挑戦してみたい!
ということでこんなプログラムを書いてみたw
同じプログラムを実機で実行すると、約9秒掛かるけれども、エミュレータなら一瞬だ。
この先の予定
なぜこのエミュレータを作っているのかといえば、この先の開発をラクにするために他ならない。エミュレータで既存の何かを動かそうという気持ちはないが、きっと普通に動く(^^;
最終的に目指している開発環境は、ホストマシンで開発→シリアルで実機に送り込み実行だ。もちろんそのまま実機を利用して開発をしても良いけれども、老い先短いおっさんとしては、出来るだけラクをしたい気持ちが強いw 若い時みたいなパワーは出せないよ!(ToT)
開発中のエミュレータの、シリアルとファイルを繋げてやり(言葉にすると簡単だけどw)、実機と同じような感じでプログラムを読み込ませ、実行出来る準備を整える。そうすれば実機で動いているのと(基本は)変わらないはずだ。
あとはアセンブラをどうするか…。
エミュレータを作ってみて(内部では逆アセンブラも動いてる)分かってきたが、アセンブラコードとしてはとても素直なモノのようだ。カッコがあったり無かったりしてアドレッシングが変わってしまうような事もない。先日開発した6301用のアセンブラをちょろっと改造すれば、半日も掛からずに作れてしまいそう…うむむどうしようw(これは作りそうな予感)
ここまで作ってみて気が付いたが、まだ1行もSC61860のコードを書いてないw
実際にそのCPUでプログラムを作ったことが無かったとしても、エミュレータは問題なく作れるって事だ(^^;;
ではまた次回!(^^)ノ