WindowsからX1へのプログラム転送

ベーマガの投稿プログラム作品をWindows上のエミュレータで動かそうという試みです。
今回はX1/X1 turboです。
まず、ベーマガのプログラムリストをスキャナでスキャンします。
そして、フリーソフトの「Softi FreeOCR.net」でテキストファイルに変換します

、、、例によって豪快にミスるので、手作業で小まめに修正します。


問題となるのが、機種依存の文字です。写真はX1のキャラクタコードです。
四角形は「#」とかに変えてしまえば、なんとかなりますが、変えたくないひとは「chr$(コード番号)」に書き換えるといいでしょう。

他にカーソルを動かすための矢印型キャラクタもあります。

カーソル右 : CHR$(&H1C)
カーソル左 : CHR$(&H1D)
カーソル上 : CHR$(&H1E)
カーソル下 : CHR$(&H1F)

できあがったら、TXT_UTL.EXEを使って、テキストの改行コードを書き換えます(最後にEOFも追加してくれます)。

以下は「niru.txt」→「niru.bas」に変換するDOS上のコマンドの例です。
「******.txt」「******.bas」の***の部分は任意で変えてください。

TXT_UTL.EXE /R2 niru.txt niru.bas


メモ帳で見るとこんな感じです。改行されない状態になります。

それから、TAPSAVE.EXEを使って、テープのイメージ(tap)ファイルにします。

TAPSAVE.EXE niruna.tap niru.bas /A

「niru.bas」→「niruna.tap」に変換するDOSのコマンドです。
「******.tap」の***の部分は任意で名前を変えてください。
ファイルの文字コードアスキーなので、「/A」スイッチを付けておきます(「/B」スイッチではありません)。

イメージ(tap)ファイルは新規に作成しますので、ファイルの存在しない状態で実行させます。

X1エミュレータを実行させます。
エミュレータは「X millennium T-tune + ikaTune」というのを使わせて頂きました。

フリー化されたX68000と違って、X1関連のROMとシステムファイルはシャープの売り物なので、実物を所有しておいてください。
でないと非合法になってしまいます。

HuBASICを起動させた様子です。これはX1用&テープ用のHuBASIC(CZ-8CB01)です。
「CMT - OPEN」をメニュー選択して、テープのイメージを選択します。

最後に

load
run

もしくは

run ""

と入力すると、テープのイメージを読み込んで実行できます。

なお、テープ用のHuBASIC(CZ-8CB01)ではフロッピーディスクの読み書きが「できません」。

フロッピーディスクを読み書きするためにはCZ-8FB01(turboじゃないX1)やCZ-8FB02(X1 turbo)が必要です。これらは「DISK BASIC」と呼びます。

(フロッピーディスクの場合)

x1format.exe disk.2d

↑これでディスクのイメージを作ります。2Dだとサイズが320KBytesくらいあります。

x1save.exe disk.2d niru.bas /A

niru.basというファイルをディスクイメージに書き込む場合のDOSコマンドです。
「******.2d」「******.bas」の***の部分は任意で名前を変えてください。

エミュレータ上では、たとえばドライブ1にディスクを入れた場合、

files "1:"

で内容を確認できます。

load "1:niru.bas"
run

↑たとえば、「niru.bas」というファイルを読み込んで実行する場合のBASICのコマンドです。

load "CAS:"
run

↑DISK BASICでカセットテープを読み込む場合のBASICコマンドです。
「CAS」は小文字だとエラーが出てしまうので大文字で入力します。

(2021/01/13追記)
X1のHuBASIC関連ツールを自作してみました。
nicotakuya.hatenablog.com