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。
おそらく何かしらのバグが残ってそうだけど…。手元ではそこそこ変換できてるっぽいので一応公開。
_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 が指定できる。
--jp をつけると、shift-jis (全角カタカナ)を交えた出力になる。指定無しなら、全てASCIIコードで出力する。
通常は標準出力に出力するので、ファイル保存したいときはリダイレクトを使う。
ヘルプ表示も可能。
ちなみに、ASCIIコード以外は、「{80}」「{FF}」といった感じで出力することにした。カーソル移動を示す文字は、「{↓}」「{←}」といった感じで、また、大文字・カタカナ、小文字・ひらがなを切り替える文字は、「{lower}」「{upper}」といった感じで出力。とにかく、「{」と「}」が出てきたら、その文字は MZ-80K/1200/700特有の、今時のフォントでは表示できない文字、ということで。
--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
ソースが大変参考になりました。ありがたや。
さておき、今回書いたツールの特徴としては…。
_We Love MZ-700
ソースが大変参考になりました。ありがたや。
さておき、今回書いたツールの特徴としては…。
- SP-5030 にも対応したつもり。
- Python で書いてあるから改変が容易。
◎ MZシリーズ特有の文字を表示できないものか。 :
今時の環境で、MZシリーズ特有の文字を表示できないものか…。専用フォントを作成してどうにか、というのは無理かな…。
[ ツッコむ ]
以上、1 日分です。