mieki256's diary



2019/05/21(火) [n年前の日記]

#1 [mz][python] MZ-700用BASICプログラムをテキスト出力するツールを書いてみた

MZ-700 S-BASIC、MZ-700 Hu-BASIC、及び、SP-5030用のBASICプログラムが入ってる .mzt を読み込んでテキスト出力するツールを、Python 2.7 を使って書いてみた。

_mieki256/pymztbas2txt: Convert SP-5030/S-BASIC/Hu-BASIC program to text.

動作確認環境は、Windows10 x64 1809 + Python 2.7.16 32bit。

おそらく何かしらのバグが残ってそうだけど…。手元ではそこそこ変換できてるっぽいので一応公開。

使い方。 :

使い方は以下。

--target xxxx で、対象のBASIC種類を指定する。sp5030, sbasic, hubasic が指定できる。
python pymztbas2txt.py --target sp5030 MZT_FILE
python pymztbas2txt.py --target sbasic MZT_FILE
python pymztbas2txt.py --target hubasic MZT_FILE

--jp をつけると、shift-jis (全角カタカナ)を交えた出力になる。指定無しなら、全てASCIIコードで出力する。
python pymztbas2txt.py --target hubasic --jp MZT_FILE

通常は標準出力に出力するので、ファイル保存したいときはリダイレクトを使う。
python pymztbas2txt.py --target hubasic --jp MZT_FILE > temp.txt

ヘルプ表示も可能。
python pymztinfo.py --help

ちなみに、ASCIIコード以外は、「{80}」「{FF}」といった感じで出力することにした。カーソル移動を示す文字は、「{↓}」「{←}」といった感じで、また、大文字・カタカナ、小文字・ひらがなを切り替える文字は、「{lower}」「{upper}」といった感じで出力。とにかく、「{」と「}」が出てきたら、その文字は MZ-80K/1200/700特有の、今時のフォントでは表示できない文字、ということで。

bas2txtを使ったほうが良いかも。 :

ちなみに、MZ-700 S-BASIC、Hu-BASIC 用プログラムをテキストに変換するツールとしては、C言語で書かれた bas2txt というツールが既に存在しているので、そちらを使ったほうが確実だし早いわけで。

_We Love MZ-700

ソースが大変参考になりました。ありがたや。

さておき、今回書いたツールの特徴としては…。
  • SP-5030 にも対応したつもり。
  • Python で書いてあるから改変が容易。
といったところかなと…。まあ、本来はもっと違うことをしてみたくて、その下準備として試しに書いてみた感じなのですが。

MZシリーズ特有の文字を表示できないものか。 :

今時の環境で、MZシリーズ特有の文字を表示できないものか…。専用フォントを作成してどうにか、というのは無理かな…。

以上、1 日分です。

過去ログ表示

Prev - 2019/05 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project