2017/08/26

MSXのマシン語入力を考える

MSXマガジンやMSXFANの投稿プログラムをアーカイブしよう…などと高尚な思いは無いけれど、気になったプログラムをOCR読み取り~エミュレータ上でデバッグしながらコツコツと溜めている。

BASICプログラムに関してはテキストファイル化したものをロードすれば良いのだけれど、古いMSXマガジンに掲載されているようなマシン語モニタにダンプリストを入力するようなものを省力化できないか試してみたことのメモ書き。

他機種だと色々なツールがあるがMSX用だと無い?
(以下メモ)
とりあえずは、MSXマガジン1986年7月号掲載のマシン語モニタを題材としたが、大まかな流れとしては
  1. 誌面をスキャナで取り込み~OCRでテキスト化
    OCRソフトはフリーのもの、市販の評価版をいくつか試してみたが、こちらのWEBサービスのものが優秀な感じ。
    但し、生成されるテキストファイルの文字コードがUnicodeのため注意。
  2. 生成されたテキストファイル修正。
  3. テキスト→BIN化
    とりあえずは、こちらのツールを使用。
  4. デバッグ
    とりあえずは、こちらの『リアルタイムチェックサム付ダンプ』を使用。
    今回のプログラムではチェックサムはASCIIとなるが、自分の環境ではリアルタイムにチェックサムが更新されないようだった。(ページを送ったりすると更新される。)
  5. BSAVE形式のヘッダー追加。
    あまりよく調べていないが、
      FE(固定値?) <開始番地> <終了番地> <実行番地?>
    …この7バイトを与えるようだ。
 この手順でエミュレータ上で動作は確認できたがスマートじゃない感じ。
 まずはマシン語モニタは使えるようになったので、BASICで良いからテキストファイル読み込み~ヘッダー追加をMSX上で行うものを作ってみようかな?

ゲーム作れと言われると無理だけど、これくらいはできるだろう。多分…。


(2017.8.29追記)
追記というか、自己否定。
えらく面倒なことをやってしまったが、もっと端的にMSX BASIC上で
  1. テキストファイルをオープン
  2. HEX化して誌面で指定されたメモリアドレスへ書き込み
  3. BSAVE
あとはマシン語モニタで間違いが無いか確認、修正すれば良いわけだし。

一体、何考えてたんですかね…。(他人事)

0 件のコメント:

コメントを投稿