弊社で推進している、おなじみのSilverlight3で、
Z-80 のエミュレータを作成してみました。
こんな感じです。
次の画面は、「About SLZ-80」ボタンを押して、説明文をだしたところです。
計算をさせたまま、画面全体を倒したりできちゃいます。
ギグのホームページからご覧いただけるようにしました。
http://www.expertgig.com/slsample/sl_z80emu/SL_Z80emuTestPage.aspx
Silverlight3ランタイムを入れていない方は、ぜひインストールして
ためしてみてください。
いまのところ、Ver0.1とかなり控えめなバージョンで公開してしまいますが、
Z80の命令すべてのデバッグがまだ完了していないのと、
アセンブラも搭載する予定ですが、まだ途中ということでこのようなバージョンに
なっています。
私は、ソフト業界に身を置いている一人として、
かねてより、機会があったらエミュレータを作成してみたいなと
思っていましたが、時間的に余裕がなかったため、しばらく手をつけなかったのですが、
Silverlightの登場がVBやDelphi、ブラウザの登場と匹敵するくらい
私にインパクトを与えてくれましたので、最新の技術と30年前の技術を
結びつけてみました。
現在、ギグでは、業務システムのSilverlight化を推進しておりますので、
このサンプルで是非Silverlightを体感して、みなさんの業務アプリで
この技術を生かすことを想像してみてください。きっとたのしくなると思います。
このz80 エミュレータは、 Silverlight と Z-80にちなんで、
「 SLZ-80 emu 」 という名前にしました。
最初に簡単なデモプログラムがセットされるようにしてありますので、
画面したに並んだボタンの左から2番目の「RUN CPU」を押せば、
プログラムが作動します。
一番左の「SET INI」で割込周期を10000とか100000とか大きな数値にすれば、
実行スピードが速くなります。これは、LED表示関連の表示更新割込みを
何クロック毎に行うかという設定です。
自分でプログラムを作って読み込ませたいときは、
次のフォーマットでファイルを作成してください。
プログラムフォーマット
--------------------------------------------------
F5 ; PUSH AF
C5 ; PUSH BC
D5 ; PUSH DE
E5 ; PUSH HL
3E FF ; LD A, FFh
2A 00 D0 ; LD HL, D000h
77 ;LD (HL),A
E1 ;POP HL
D1 ;POP DE
C1 ;POP BC
F1 ;POP AF
-------------------------------------------------
16進数の命令を並べて、コメントは「;」セミコロンを書くというシンプルなものです。
この例では、コメントにアセンブリ言語で記述してますが、
この書き方がわかりやすくていいと思います。
もちろんただ単純に
F5C5D5E53EFF2A00D0....
と記述するだけでもいいですし、
F5 C5 D5 E5 3E FF 2A 00 D0 ....
スペースをいれてもOKです。
このファイルを拡張子 .htx として保存して
「LOAD PROGRAM」ボタンをおして読み込んで実行してみてください。
実行開始番地の指定は、「SET INI」ボタンで設定してください。
プログラムを間違えて、Z80が暴走しだしたらご愛敬。
摩神語(マシン語 : 死語) の宿命とおもってたのしんでください。
コメントする