Silverlight3でZ-80のエミュレータを作成してみました。

| | コメント(0) | トラックバック(0)

弊社で推進している、おなじみのSilverlight3で、

Z-80 のエミュレータを作成してみました。

こんな感じです。

z80_1.jpg

次の画面は、「About SLZ-80」ボタンを押して、説明文をだしたところです。

計算をさせたまま、画面全体を倒したりできちゃいます。

z80_2.jpg

 

ギグのホームページからご覧いただけるようにしました。

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が暴走しだしたらご愛敬。

摩神語(マシン語 : 死語) の宿命とおもってたのしんでください。

 

 

トラックバック(0)

このブログ記事を参照しているブログ一覧: Silverlight3でZ-80のエミュレータを作成してみました。

このブログ記事に対するトラックバックURL: http://ariyukitano.sakura.ne.jp/mt/mt-tb.cgi/89

コメントする

2009年12月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

アーカイブ

ウェブページ