電子趣味の部屋

電子系のガジェットやアプリ開発等の趣味の話題を書いてます

ブラウザで動作するシンプルなZ80アセンブラ

ブラウザで動作するシンプルなZ80アセンブラを公開しました

OneChipBook(MSX BOOK)を手に入れてから久しぶりにMSXで色々と遊んでいます。
なにかアセンブラで作りたいと思いましたが、MSX上で作成するのは疲れるので普通にテキストエディタで作りたいので良いアセンブラを探したのですが、なかなか手軽に使えそうなものがありませんでした。
また最近のクロスアセンブラは微妙に書式が異なったりしているので、『MSX2テクニカル・ハンドブック』のサンプルコード等はそのままでは構文エラーになったりました。

そこで条件に合うシンプルで手軽に扱えるシンプルなZ80アセンブラを作りましたので、公開します。

JS Z80ASM ブラウザで動作するシンプルなZ80アセンブラ
https://www.uosoft.net/jsz80asm/

まだ動作するようになったばかりのα版です。手元のサンプルソースが少なく、全てのオペランドも確認したわけではない状態です。
多くの人に使用してもらえるとデバッグ情報も集まることを期待して公開しました。
何か在りましたらコメント欄へお願いします。

ブラウザで動作して、アセンブラコードを記述したテキストファイルを選択するとアセンブルするので、[バイナリファイルを保存]ボタンを押すとバイナリファイルを保存できます。
動作は全てJavascriptのコード内で完結しているので、全てローカル環境で動作してます。

アセンブラの書式は『MSX-DOSスーパーハンドブック』に収録されているDOS版アセンブラ(ASM.COM)で扱える形式を参考にしてます。
例として以下の様なソースをアセンブルできます。

        ORG    0100H
    
BDOS    EQU    0005H

        LD     C,09H
        LD     DE,HELLO
        CALL   BDOS
        RET
HELLO:  DB     "Hello World.$", 0

        END

アセンブラされたバイナリを保存して拡張子を"com"でファイル名を変更すると、そのままMSX-DOSで実行できます。

アセンブラ自体の主要な機能(ソースの文字列をセット、アセンブル、バイナリデータの取得、アセンブル情報の取得)は1個のクラスで作成しているので、こちらもreadme.md等ドキュメントを整備してからGithubで公開しようと思ってます。