KM-Z80 webは、HTML5による、SHARP MZ-80Kのエミュレーターです。
HTML5の機能のうち使用しているものは、以下の通りです。
これら3つの機能がすべてそろっている環境(FireFoxやChromeなど)での使用が理想的です。 が、Audio APIが使えなくても音が鳴らないだけですし、FileReaderが使えなくても、あらかじめロードされている整数型BASICを走らせることは可能です。
kmz80web.htmlにブラウザでアクセスすると、以下のように表示されます。
黒い画面が、40文字×25行の、ディスプレイです。 その左下、緑色のポッチは、キーボードの入力選択(英数かカナか)で、緑の時は英数、赤の時はカナ入力です(Tabキーで切り替えできます)。 その右側はZ80 CPUの動作速度を示します。 PCではほとんどの場合MZ-80Kと同じ2 MHzで動作しますが、モバイル環境では少し遅くなるかもしれません。 その下、「Set MZT」のボタンは、カセットテープからのプログラムのロードに相当します(後ほど説明します)。
この状態で、整数型BASIC( KM-BASIC )がすでにロードされています。「GOTO$1200」と入力し、ENTERを押すと、以下のようにBASICが使える状態になります。
また、ブラウザでアクセスするURLを「kmz80web.html?start=1200」とすると、上記の入力を省略して、すぐにBASICが使えるようになります。
カセットテープのプログラムをロードするには、それをバイナリファイルに変換したもの(MZTファイル、MZFファイルなど)を介して行います。 「Set MZT」ボタンを押すと、ファイルのアップロードモードになるので、MZT/MZFファイルを選択してください。 この際、Web上に存在するMZT/MZFファイルをURLで直接選択することもできます(ブラウザの種類によります)。
MZT/MZFファイルのセットに成功すると、下にファイル名とファイルサイズが表示されます。
「LOAD」と入力しENTERを押すと、プログラムがロードされ、実行されます。
エミュレーターの中で、カセットテープにセーブする命令を実行すると、下に「Save MZT」というリンクが表示されます。
このリンクをクリックすると、MZTファイルを保存することができます。右クリックでファイル名を付けて保存することもできます。
なお、KM-Z80 webはデバッグ機能を搭載しており、ブレークポイントの設定やステップ実行を行うことができます。 デバッグ機能を使用するには、kmz80web.htmlのヘッダー部分で、"./debug.js"の埋め込みをコメントアウトで無効にしてあるところ、コメントアウトをはずして有効にしてください。 次のような画面になるはずです。
「Step」を押すか、「Stop at」を押してブレークポイントを設定し、設定したアドレスに到達すると、以下のように表示が変わります。
「Step」を押すたびに、Z80命令を一つずつ実行します。 ステップ実行から抜けたいときは、「Cont」を押してください。 「Log to」を押してアドレスを設定すると、そのアドレスに到達するまで実行し、そのログを下に表示します。 「Dump」を押すと、指定したアドレスのHexダンプが表示されます。