物 置


img
ひとやすみ ひとやすみ…



■ 物 置


88 実機でテストする際にマシン語バイナリから BASIC リストに変換して RS-232C で転送して実行、というのは定石だけど
BASIC のフリーエリアの制限とか DATA 文での格納効率の悪さ(C3,80,B2 みたいな)とかで色々悩みどころが多かった。
そこで xdisk2.bas を参考に、より効率的に変換と展開が出来るようにした python スクリプトを作ってみたので(恥を忍んで)公開。

BasEnc.py

DATA 文でなく「'」リマークで記述する。エンコードはオリジナルと同じく 8bit を 7bit に分割してキャラコードに変換。
おおよそ一行あたり 64〜65byte を格納できる。
元は DATA 文で一行ごとに CRC チェックを行うが、basenc では全体で一括チェックを行う。
一行ごとに BASIC に戻らないのでより速い展開が可能。
オプションで実行アドレスを指定でき、BASIC に戻ることなく実行できる(ので BASIC ワークエリアを潰す展開も可能)。
オリジナルは 59byte 単位での展開だったが basenc は BASIC リストの終端 = バイナリの終端でぴったり展開できる。
などなど。

$ basenc.py Input.bin LoadAdr [ExecAdr] で変換、
PC88 側では「load"COM:N81XN"」でロード、実行する。

おそらくこの手のツールは 88 だけでなく PC80/mk2/SR などでも需要がありそうなのだけれど、そちらは CMT エミュレータなどで
代替できているのだろうか。本当に欲しいのは P6 シリーズ向けなのだけれど…。

しばらく使ってみて大丈夫そうなら PC88 開発のトップページあたりにソースコード付きで放り込んでおく。

▲ TOP