プログラミング

TK-80のHTML5によるエミュレーター

2012年11月4日

2012-11-04-zk80web.png
ZK-80 web ver 0.4 スナップショット(起動はこちら

先月、HTML5を用いてMZ-80Kのエミュレーターを作成した記事を書いた。

キモの部分は、CPUのエミュレーションとディスプレイの表示なので、そこがクリアできていればいろいろと応用が利く。CPUは当時の流行のZ80で、PC-8001・PC-8801などがそれに相当する。

また、Z80は、8080という当時の主流だったCPUのアッパーコンパチブルなので、そういったコンピューターにも応用可能である。

そんな中に、TK-80という、30年以上前に発売されていた1ボードマイコンがある。

TK-80といえば、私が中学生だったか高校生だった頃、雑誌の広告に載せられていたのを見て、購入寸前の所まで行っていたマイコンである(実際には、TK-80E)。触ったことはないのだが、どんな物なのだろうかという興味はずっとあった。

で、手元にZ80 CPUのエミュレーターがある。TK-80の仕様も、小松さんのNEC TK-80というページとか、AVRとZ80でTK-80のレプリカを制作なさった方の資料ページとか、中日電工の菱田さんのZ80マイコン組立キットND80ZⅢのページなどを参考にすると、だいたい分かる。なら、作ってしまおうということになった。

初期のバージョンでは、中日電工のND80ZⅢの取り扱いマニュアルを参考にモニタープログラムを作成し、使わせていただいた。そうして出来たエミュレーターを触ったのが、私の初めてのTK-80の体験である。

10年ほど前に、アスキー出版社から「復活!TK-80」という本が出版されていて、それを通じてTK-80に触れた方も、大勢いらっしゃると思う。残念ながら私は、それが出版された時点でその本の存在に気がつかず、今となっては絶版となり手に入らなくなっている。

そんな中で、自作のエミュレーターでTK-80に触れたときの感覚は新鮮で、もしこれを中学生・高校生の時に手にしていれば、人生が変わっていた可能性が大である。エンジニアになっていたかも知れない。

閑話休題、最初に出来たTK-80のバージョンでは、ほぼすべてのコードがスクラッチから書いた物なので、GPLもしくはLGPLで公開したくなった。それには、モニタープログラムの著作権の問題がある。MZ-80の場合は、フリーのライセンスのモニタープログラムが存在したので、それを使ったが、TK-80ではそういった物は公開されていない。

そこで、モニタープログラムも自作することにした。仕様はだいたい分かっているし、そんなに大規模な物でもないので、それほど時間をかけずに完成することが出来た。決して褒められたアセンブリではないかも知れないけれど、一応動くので、良し。そんなで出来た最初の公開バージョンが、これである
2012-11-04-mk80web.png
これで楽しんでいるうち、ふと思って、5x5キーボードの部分の画像をWikipediaのTK-80高解像度写真の物と取り替えてみた(非公開バージョン)。これが、素晴らしかった!当然ながら、次の公開バージョンではこういった物にしたくなる。それに、キーを叩くときの音も入れば最高である。そこで、TwitterでLGPLで使えるキー音をどなたかから頂けないか、募集してみた。
2012-11-04-wanted.png

すると、さすがTwitter。本当にそれを供与していただけたのだ。有り難うございました、@triringさん(それに、RTしていただいた方々も)。加えて、供給していただいたファイルの中には、キーボードも含めた画像もある。これらを用いて、この記事の冒頭にあるインターフェースのエミュレーターを作成することが出来た。しかも、著作権はすべてのファイルに関して、LGPLにすることが出来た。11月4日現在の最新版は、ver 0.4

これは、いずれPIC(PIC32MX)を使った1チップで、ワンボードに仕上げる予定である。同様の物はYouTube上に見つけることが出来るが、私の場合はあくまで1チップが目標。(追記:PIC32MX120F032Bを使ったボードの製作例は、こちらです。)

ところで、今やTK-80の実機はほとんど手に入れることが出来ない物になっているが、それと同等以上のマイコンが、現在でも販売されていて入手することが出来る。実機に興味のある方は、中日電工のZ80マイコン組立キットND80ZⅢの購入を考えてみるのも、良いかも知れない。

コメント

hal (2016年12月17日 07:22:15)

はじめまして、
PICで作られた由、唯々驚愕しております。
私もトライしてみたくなりました。
ちなみに、TK-80の実機を持っています。
長いこと電気が入っていませんがまだ動くと思います。
初期の版なのでセラミックパッケージです。
TK-80BSに組み込んであります。
ひきつづき、読ませていただきたいと思います。

安藤八郎 (2024年3月13日 08:39:20)

「素晴らしいです(懐かしい!)。
しかし、WEB上にある「Try ZK-80 web ver 0.4」をクリックすると正常に動作するのですが、ダウンロードしたファイルを新たに作成したディレクトリに展開し、「zk80web.html」をダブルクリックすると「FireFox」上で起動しますが、8ケタあるLEDが1つしか表示されず、16進キーボードも表示されません(「ファイルが選択されていません」と表示されます)。
自分はHTML自体に詳しくないのですが、原因を教えて頂けないでしょうか(Webサーバーを立ち上げる必要があるのでしょうか)。
よろしくお願いします。

Katsumi (2024年3月14日 12:11:27)

そうですね、ダウンロードしたファイルを直接実行すると、そうなります。ver 0.5でも同じ現象でした。

これはブラウザーのセキュリティー対策で、以前よりもダウンロードしたファイルの扱いが厳しくなりました。開発当初は、ブラウザーによっては実行できていたのですが、今ではどのブラウザーでも駄目ですね。

XAMPPなどでローカルサーバーを立ち上げるか、webサーバーを構築する契約をするか、GitHubなどでの静的htmlを表示するサービスを利用するか、という所が、解決策です。

安藤八郎 (2024年3月14日 12:52:13)

ありがとうございます。
トライしてみたいと思います。

コメント送信