PasocomMiniに関するメモ

HAL研究所のPasocomMini MZ-80Cに関する自作ツールや覚え書きなど。


目次


テープのロード・セーブについて

モニタルーチンによるロード・セーブ

PasocomMiniでのテープへのアクセスは、基本的にHAL-MONITORのコマンドとSP-5030初期バージョン (ファイル名が「BASIC SP-5030」のもの) にしか対応していないようです。KM-BASICや多段ロードなど、独自にモニタルーチンを呼ぶプログラムではうまく動きません。

そこで、モニタルーチンを使ってテープアクセスするプログラム全般に対して、SmileBASIC側でテープアクセスを肩代わりするプログラムを書いてみました。ロード・セーブを行うモニタルーチンである$0021〜$002Aにブレイクポイントを仕掛け、呼ばれたらMZエミュレータのメモリに対して読み書きを行ってリターンする、というものです。KM-BASIC、S-OS SWORD、HAL-MONITORでの「ネ木1 ネ木4 →  」などで動作確認を行いました。モニタルーチン$002D (VERIFY) には未対応です。

残念ながら、SP-5030後期バージョン (ファイル名が「SP-5030」のもの) では動かないと思われます。I/O1982年4月号「カンフルZP-5039B」記事によると、後期バージョンではモニタルーチンを呼ばずに独自プログラムでロードを行っているそうです。

参考: http://retropc.net/ohishi/museum/mz80k2.htm

使い方

  1. MZ上でロードしたい.mztファイルを、SDカードの/PCM/SB/以下に保存します。
  2. 多段ロードなど複数のインフォメーションブロックを持つファイルの場合は、インフォメーションブロックごとにファイルを分割してください。
  3. SmileBASIC上でテープアクセスプログラムをload,runしておきます。
  4. F12キーで制御をMZエミュレータ側に移し、ロードやセーブを行います。
  5. F12キーで制御をSmileBASIC側に移し、「load file name?」や「save file name?」に対しファイル名を入力します。

オートスタート

PasocomMini付属のHAL-MONITORでは、MZT形式のファイルをロードした後、Gコマンドで実行を指示する必要があります。これをオートスタート動作に変更するパッチを書きました。リセットするごとにパッチを当てないといけないので、実用性はあまりなさそうですが。

  1. SmileBASIC上でパッチをload,runします。
  2. MZエミュレータ上でLDコマンドを使い、MZTファイルをロードします。

テープダイアログについてのメモ

LOADやSAVE用のダイアログが表示される条件を調べてみました。


デバッガ

MZエミュレータ用の簡単なデバッガです。

デバッガのコマンド

help, ? コマンド一覧
quit デバッガ終了
reset エミュレータのリセット
d[ump] メモリダンプ
write メモリへの書き込み
dis[asm] 逆アセンブル
load ファイルからメモリにロード
save メモリをファイルにセーブ
reg[ister] Z80レジスタのセット
stack スタック表示
b[reak] ブレイクポイント設定/解除
s[tep] 1命令実行
t[race] 1命令実行 (CALLも1命令として扱う)
g[o] ブレイクがかかるのを待つ
run エミュレータ実行開始
stop エミュレータ一時停止
files SBファイル表示
win[dow] エミュレータ表示位置を簡易指定

BASICインタプリタ

SmileBASIC上で動くBASICインタプリタです。テキストファイルを読み込んで、MZエミュレータ上で動作しているかのように入出力を行います。SP-5030互換を目指したのですが、実物を持っていないので互換性の度合いについては不明です。マイコンBASICマガジンなどに掲載されたMZ-80C用プログラムがいくつか動くのを確認しました。

(※2017.12.20追記:INPUTとPEEKに不具合があったので修正しました)
(※2018.2.27追記:DIMとONに不具合があったので修正しました)

使い方

  1. 実行したいBASICプログラムを入力します。文法はSP-5030準拠です。
  2. SmileBASIC上でBASICインタプリタをload、runします。
  3. 実行速度を聞かれるので答えます。Enterのみだとデフォルト速度になります。
  4. 1で保存したプログラムのファイル名を入力します。(長いプログラムは読み込みに少々時間がかかります)
  5. F12キーを押してMZ側に制御を移します。

BASICプログラムの入力方法

  1. 共通
  2. SmileBASICエディタで入力する場合
  3. 他のパソコンなどで入力する場合

その他注意事項


その他メモ


参考文献


トップ > 雑多なもの > PasocomMiniに関するメモ