MZ-80K/C用ベーシックコンパイラーを使おう



諏訪工房さんで公開されている整数型ベーシックコンパイラー for MZ-80K/C, MZ-1200を紹介、おすすめするページです。


コンパイラはMZ-80K/C/1200の環境でしか動きません(MZ-700WINの場合)が、コンパイル後のOBJ(マシン語)ファイルはMZ-700/1500の環境でも動作します。MZ-80の貴重なフリーのBASIC(コンパイラ)、素敵です。


※ 追記 EmuZ-700とMZ-700用MZNEWMONITORとの組み合わせでも動くみたいですが、なんとMZ-700実機のROMとの組み合わせでは上手く動きません(^^;
あと、MZ-700環境で使う場合、MZ-80用のコンパイラなので英小文字に対応していなかったり、グラフィック文字の入力とかがMZ-700と違ったりするので注意が必要です。


おすすめポイントです。
● コンパイラはMZ-80K/C/1200用MZNEWMONOTORで動作するので、実機が無くても導入できます。(MZ-700WINの場合)

● コンパイル後のOBJ(マシン語)ファイルは加えてMZ-700/1500環境でも動作します。多くの人に楽しんでもらうことができます。

● BASICコンパイラなので、SP-5030とかMZ-700用S-BASIC、Hu-BASICに比べて実行速度が速いです。

● コンパイル後は単体のOBJ(マシン語)ファイルで動作するので、BASICをロードしておく必要がないです。

●  PasocomMiniMZ-80Cでも動くと思います。



注意点です。
● MZ-80K/C/1200用なので、色は基本2色です。(MZ-700用にVRAM属性領域にPOKEすればカラー化することも可能)

● MZ-80K/C/1200とMZ-700ではキーボード配列が違います。両方での動作を期待する場合、注意が必要です。ゲームを作る場合、カーソル移動キーの違いが大きいと思います。

● MZ-80K/C/1200とMZ-700では、プログラムの実行スピードに差があります。MZ-700のほうが速いです。


MZ-700WINで使う
コンパイラはMZ-700WIN0.53での使用がおすすめです。
MZ-700WINにMZ-80K/C/1200用MZNEWMONITORとキーボード をセットすることで使うことができます。







さあ、使ってみましょう


使い方はマニュアルを参照してください。
注意点は、配列変数を使う時は必ずDIM文が必要とか、大きい文字列を文字変数に入れる場合コンパイル前にSTRLEN(n)しておく必要があるとか、でしょうか。
私はMUSIC文がSP-5030と同じというのを理解しておらず、間違えました(^^;

COMPILEでコンパイル、SAVEでソースのセーブ、BSAVEでコンパイル後のマシン語OBJファイルのSAVEです。



ここでの注意点として、RUNで実行する前にはエミュレータのステートセーブしておくと良いと思います。実行すると止まらなかったりするので(^^;

あと、MZ-700WINはMZ-80用の設定でもMZ-700の速度で動いてしまう様です。
別のMZ-80のエミュレータで動作確認すると良いと思います。

MZ-80のエミュレータにはweb上で動くものもある様です。

KM-Z80 web スマホ改

ただし、こちらは実機とは違う拡張が行われていて,画面が砂嵐のような状態になることがあります。

B000 AF 01 FF FF ED 79 C9 (CR)
B007 (Shift+Break)
*GB000 (CR)

上記を入力することで独自に拡張された機能がOFFになり通常仕様になるということです。


CANDYN




CANDY(マイコンBASICマガジン1985年8月号掲載 MZ-700S-BASIC用プログラム)を移植してみました。キャンディはアルファベットで表現しています(^^;
MZ-80K/1200とMZ-700で別プログラムになっています。実行速度の差の調整と、MZ700WINなどでのエミュレータ側の時計の不具合に対応したためです。
公開の許可をいただいた作者の@info_ymcat迎霧狼慢さんに感謝いたします。

candyn4zip

MZ-700用プログラムのカラー化
CANDYNは、MZ-80KとMZ-700実行速度の差とか、他にも問題があり、M-80KとMZ-700/1500で別プログラムにしています。

MZ-700用を別プログラムにするのなら、どうせならカラー化すれば良いのでは、とみんな思っていたことでしょう。私も思いました(^^;

アーカイブを更新し、MZ-700用プログラムをカラー化しました。

MZ-80用コンパイラであっても、VRAM属性領域にPOKEすることでカラー化が可能です。
具体的には、

X,Y座標の文字色を白、背景色を黒に指定した例です。
最後の&H70のところを変えることで、色を指定します。
(10進数なら指定する文字色のコードを16倍して、指定する背景色のコードを足した数字です。この例では112)

更にこれに&H80を足した値を書き込めば、ひらがなと英小文字も使えます。(この場合は&HF0になります)
追記 MZ-700/1500の実機のROMでは、コンパイラでPRINT文を使うと平仮名、英小文字が無効になるみたいです。


余談ですが、MZ-700WIN0.53はMZ-80用MZNEWMONITORとキーボードをセットした状態でもMZ-700として動いていて、コンパイラで作業しながら実行してみることが可能です。今回の場合は都合が良かったです(^^;

あと、バンク切り替えの状態も気にする必要があるのかもしれませんが、起動直後はVRAM.,I/Oのバンクになっているはずなので、ここでは考えなくていいことにしています(^^;








DumpListEditor
PC-8001を懐かしむページの@bugfire01さんのダンプリスト入力補助ツールDumpListEditorがMZ-80用整数型BASICコンパイラに対応されました。
Windows上でソースファイルを編集し、なんとそのままMZTファイルにすることができます。


最初に同梱の2つのフォント(MZ-FontとMZ-Font-Symbol)をインストール(開いてインストールボタンを押す)しておきます。

言語リストからBASIC Compiler(MZ)を選択します。
書き出しボタンでMZTファイルを生成できて、すぐMZ700WINに読み込みコンパイルできます。すごいです!!

逆にMZTファイルをドラッグドロップで読み込み、ファイル整理タブからBASIC入力に送るボタンでファイルが編集できます。(うまくいかない場合は選択ファイルを再解析ボタンを押す)

なんと、EmuZ-80KのWAVファイルの読み込みにも対応しています。BASICコンパイラだけでなく、ファイル形式の変換ツールとしても使えそうです。


※ @bugfire01さんのツイッターより便利な使い方

毎回モデルをMZ-80Kに切り替えるのが面倒だと思います。
DumpListEditor.iniをエディタで開いていただき、下記の行の先頭「;」を削除するとMZ状態で起動します(するはずw)
;Model = MZ-80K

CTRL+マウスホイールでFontサイズが変わります


強力なツールの登場で、作業性が大幅に良くなりました!!



ナンテコッタイ99

DumpListEditorも使い、ナンテコッタイ99(マイコンBASICマガジン1989年12月号掲載 MZ-700S-BASIC用プログラム)をMZ-80用整数型BASICコンパイラへ移植してみました。(MZ-700/1500専用)
楽しいカードゲームです。スピードが少し速くなり、楽しさも少しアップしたように思います(^^;
公開の許可をいただいた作者の@mappi_pymdさんに感謝いたします。

nantec.zip



   
トップページへ
トップ