リストを印刷して細かくチェックして何とか動くものになった。それでも文法エラーが残ってたり、オーバーフローするケースがあって苦労した。前者は一目瞭然なのでわかりやすいですけど、後者はかなり苦戦した。エラーが出るところは通常通らないルーチンみたいで、どこかで間違えてジャンプしてるとわかったものの、当時のマシンのBASICは文字列の検索とか便利な機能は改造したBASIC以外できないので探すのに苦労します。
エミュレータの場合、本体のメインメモリーをファイルへ書き出せるので、バイナリエディタのstirlingを使ってメモリ内を検索することで対処した。SB-5520、MZ-1Z001は行番号を2バイトの符号なし整数で保持してますが、GOTOやGOSUBのとび先はテキストイメージの文字列でそのまま保持されるので検索が楽だった。バイナリで保持されてたら、10進→16進に変換→インテル形式に置き換えて16進検索しなければならないので面倒です。余力があれば、このメモリーイメージを参照してテキストイメージのBASICソース編集ツールを作りたいです。そうすれば、スキャナでBASICを取り込んでツールにペーストしてBASICを打ち込むって技が使えそうな予感。まあ、罫線などの特殊文字をどうするかって問題もありますし、OCRの性能もそんなによくないので厳しいところですが。夢は広がりつつもニッチだから需要もなさそうだよね。
「MZ-2000」カテゴリーアーカイブ
EXCITING BASE BALLその2
一通り打ち込み終わった。
で、動かしてみるとErrorの連続。まあ、正しく打ち込んだつもりでも、打ち間違いが結構ありますからね。理由の1つはわかってる。SHIFTキーを
押して打ち込むもので、括弧とかイコール記号などはSHIFTキーの押し込みが甘いと正常に打ち込めない場合がありますから。この手の間違いは文
法エラーで引っかかるので良い方。問題はオーバーフローとかの演算エラー。どこかの代入での打ち間違いですが、エラーが起きる行と違うところ
の間違いが多いので前後を見直して訂正しなければならない。GOTOとGOSUBを打ち間違ったり、GOTOなどのとび先が間違って引き起こすネスティン
グエラーも厄介です。
今回初めてメモリー不足のエラーをみたよ。ソースが大きいのもありますけど、実行すると配列などの変数で消費するメモリーも大きくて結構ぎり
ぎりで動いてる感じなのが何とも。打ち込みには2000モードでMZ-1Z001にI/O掲載のパワーアップモニターを適用したものを使ってますが、それだ
とメモリーが足りなくなる。素のBASICで動かして残りメモリーが1000バイト程度あまってた。改めて大きなプログラムだと思ったよ。
これから一通り打ち込みを確認してみる。それでも見落とすエラーもあったり…。
EXCITING BASE BALL
I/O 1983年5月号のMZ-80B/2000用ソフトである。
標準のBASICで約1000行ある巨大なソフトの1つ。
打ち込みだして大体6割くらい打ち終わった。
当時、まだMZ-2000を持ってなくて、文房具屋に置いてあったMZ-80Bでいろいろとソフトを打ち込んでましたが、店先なのであまり長居も許され
ず、長いソフトは打ち込めなかった。なので詳細はこれからだったり。
BASICのゲームの場合、ここまで長いのは珍しいです。ソフトは内容を盛りだくさんにすればソースも長くなるものです。長ければ面白いとはいえ
ませんけど、それだけ機能はあるという証拠か。面白さの観点からすると、1画面に収まるようなショートプログラムでも楽しめるものがありますし。
BASICの場合、動作の検証するのが面倒です。インタープリタなので実際に動かないと間違いがわからないので、あまり通らないロジックにバグが
あると発見されないケースもありますし。構文エラーなどは表面化しやすいですけど、代入される値が違ってたりすると特に厳しいです。ソースを
目で見て確認しますけど、それでも見落とすケースが結構あるので何とも。
マシン語のダンプリストの場合は、チェックサムがあるのでそれである程度間違いもわかり、打ち込み終われば大抵動くのでダンプリストの方が楽
に思えます。うちのツールでダンプリストをテキスト入力して一気に変換してますが、OCRの精度もあまりよくない場合は訂正で苦労しますけど
ね。それでも8KBとか打ち込みたくないサイズです。q-PASCALなんて48KBくらいあるみたいなのでどうしようか考え中。
MZ-2000とか
エミュレータを使って当時の雑誌からひたすら打ち込み中。
本体は既にありませんし、持ってたソフトもハードと一緒に処分してたのがかなり悔やまれます。オークションなどを使って最低限のソフトを入手し、残ってた冬至の雑誌や、これまたオークションで手に入れた雑誌から打ち込み中です。
I/Oはツールやハード周りが多いので入力して無いのが結構ありますが、ゲームや言語などはあと少しで終わります。BASICの長編であるEXCITING BASE BALLがまだなのと、言語ものでq-PASCALとかFORTRANが残ってます。言語ものはそれで動くソフトが無いと入力してもただのコレクションになるだけですけどね。マイコンゲームの本のものが着手できて無いからこれも打ち込みたい。
PiOはすべて入力完了。BASICコンパイラで動くもの以外は何とか遊ぶことができます。BASICコンパイラもI/Oに記事があったのですけど、オブジェクトを生成中にループする問題があって、何度も見直してますけどよくわからず。EXAS MZコンパイラが手に入ればいいですけど、オークションに出ても恐らく高額になるので難しいです。
月刊マイコンは手元にあるものは全部終わり。あと入手できてない雑誌が1つあるみたで、それがなかなか入手できないので厳しいところです。
現在メインで打ち込んでるのがBASICマガジン。ラジオの製作時代のもので未入手が1冊、月刊化してからので未入手が1冊だけで一式あるのですけど、260本中90本しか終わって無いので、あと170本あったりする。量的にはそんなに長くないのですが、地味に長めなのがあったりするのが厳しいところです。
Oh!MZが完全に整理できて無いので全体数は不明。S-OS関係は当時打ち込んだソフトがFDベースで残ってるのでメジャーなものは大抵揃ってます。問題は84年以前の雑誌が入手できて無いのでこれも何とかしたいところ。
あと当時記事が載ってた雑誌はぽPOPCOM、テクノポリス、ASCIIあたりですが、これらは入手困難でして。POPCOMは微妙なソフトが結構乗ってたとおもいますし、倉庫番も載ってた記憶も。人気がある雑誌なので厳しいところです。テクノポリスは何故か一番人気で最悪1冊数千円したりする。とても手が出せる状態じゃないのでこれも頭が痛いです。CG絡みでも何本か載ってたりするので、見たらそれまでだし、だからといって当時のドット数じゃ…ってところで特に厳しい。
まあ、完全に自己満足で終わりですけど、それが楽しいってことで。