KM-Z80 webは、HTML5による、SHARP MZ-80Kのエミュレーターです。

HTML5の機能のうち使用しているものは、以下の通りです。

これら3つの機能がすべてそろっている環境(FireFoxやChromeなど)での使用が理想的です。 が、Audio APIが使えなくても音が鳴らないだけですし、FileReaderが使えなくても、あらかじめロードされている整数型BASICを走らせることは可能です。

kmz80web.htmlにブラウザでアクセスすると、以下のように表示されます。

kmz80web

黒い画面が、40文字×25行の、ディスプレイです。 その下は、キーボードです。ここをクリックすることで文字入力が可能ですが、PCのキーボードからも入力できます。 その左下、緑色のポッチは、キー入力選択(英数かカナか)で、緑の時は英数、赤の時はカナ入力です(PCのキーボードではTabキーで切り替えできます)。 その右側はZ80 CPUの動作速度を示します。 PCではほとんどの場合MZ-80Kと同じ2 MHzで動作しますが、モバイル環境では少し遅くなるかもしれません。 その下、「Set MZT」のボタンは、カセットテープからのプログラムのロードに相当します(後ほど説明します)。 「Help」は、現在閲覧中のヘルプファイルを表示させるときに使います。

この状態で、整数型BASIC( KM-BASIC )がすでにロードされています。「GOTO$1200」と入力し、ENTERを押すと、以下のようにBASICが使える状態になります。

kmz80web07

また、ブラウザでアクセスするURLを「kmz80web.html?start=1200」とすると、上記の入力を省略して、すぐにBASICが使えるようになります。

kmz80web07

カセットテープのプログラムをロードするには、それをバイナリファイルに変換したもの(MZTファイル、MZFファイルなど)を介して行います。 「Set MZT」ボタンを押すと、ファイルのアップロードモードになるので、MZT/MZFファイルを選択してください。 この際、Web上に存在するMZT/MZFファイルをURLで直接選択することもできます(ブラウザの種類によります)。

MZT/MZFファイルのセットに成功すると、下にファイル名とファイルサイズが表示されます。

kmz80web07

「LOAD」と入力しENTERを押すと、プログラムがロードされ、実行されます。

kmz80web07
kmz80web07

エミュレーターの中で、カセットテープにセーブする命令を実行すると、下に「Save MZT」というリンクが表示されます。

kmz80web07

このリンクをクリックすると、MZTファイルを保存することができます。右クリックでファイル名を付けて保存することもできます。

なお、KM-Z80 webはデバッグ機能を搭載しており、ブレークポイントの設定やステップ実行を行うことができます。 デバッグ機能を使用するには、kmz80web.html?debug=1にアクセスして下さい。 次のような画面になるはずです。

kmz80web07

「Step」を押すか、「Stop at」を押してブレークポイントを設定し、設定したアドレスに到達すると、以下のように表示が変わります。

kmz80web07

「Step」を押すたびに、Z80命令を一つずつ実行します。 ステップ実行から抜けたいときは、「Cont」を押してください。 「Log to」を押してアドレスを設定すると、そのアドレスに到達するまで実行し、そのログを下に表示します。 「Dump」を押すと、指定したアドレスのHexダンプが表示されます。

起動時のパラメーターは、?debug=1以外に ?start=スタートアドレス ?dumplist=1 ?ramsize=RAMサイズ(KB単位) ?worker=1 ?vsync=1 があります。