MZ-2000」カテゴリーアーカイブ

セーバー・パート1

saver
実行アドレスがわからず動かせなかったのですが、ダンプリストを何気に眺めてたらそれらしきアドレスがわかったので実行してみたら動いたよ。$4790が開始アドレスだった。
さすがにチェックサムなしのマシン語プログラムなので打ち間違いがあると思ったのですが、幸いにもデモが動く部分は問題なく打ち込めてたみたいでした。グラフィックデータが打ち間違ってるので画面が少し乱れてます。ゲームも開始できますが、衝突判定でプログラムが停止してしまうので、打ち間違いがあるのは確実です。目視でしかデバッグできませんが、打ち間違いを探してみます。

TF-Editionのペースト機能

Ver0.95.3ですが、カナの句点が半濁点に置き換わるのに気づきました。
MZ-2000で句点は$A1で、emuz2000_charcode.txtで相当する文字は全角の句点になってます。ペーストしてみると半濁点になってしまうという。MZ-2000の半濁点である$DFに相当する文字をペーストしてみると、半濁点になるので入れ替わってるというわけではなさそうです。バージョンによって違うのかどうかは未確認です。
ソースを眺めてみると、copypaste_pastekbddataのテーブル内で$A1と$DFに相当してると思われる値が同じなのが気になってます。これが原因なのかなと思いますが、キー入力の処理を調べてみないと値がわからないので憶測の領域です。
現時点では、句点はペースト後に手打ちで直してるので実害なしです。WindowsのテキストベースでBASICプログラムを管理する人は要注意かも。

あけおめ

今更ですけど。
年末年始の激務から落ち着いて普通に戻ったといったところでしょうか。

サーバマシンをメンテしてたら、noip_updaterが問題があるらしく、メンテしてる人もないらしいので一か月以内に消されるらしい。まあ、元々細かいコンパイルオプションの指定もできないので個別にコンパイルして入れたほうがいいのかなとか思ってたところだったり。それ以前に、定期的にIPアドレスを送り込むスクリプトのほうが役に立ってたりするのでこれまでですかね。
素の状態だと、IPアドレスが変わらないと更新をしない仕様。強制的に書き換える為のifdefがあるのですが、有効にしても書き換えで失敗するケースがあるのがわかってます。再起動すると書き換えられるので、再起動で書き換える処理と同じ処理を行うように直さないと使えなかったりする。ぐぐるとbashスクリプトが見つかると思うので、それを使ってcronで動かすほうが確実に処理できていいと思う。

打ち込み関係は、Oh!MZ、ASCIIが全部終わった。漏れを見つけたら後で対応予定。マイコンライフが大量に残ってるので、それを片付けつつ、ゲームライブラリーも打ち込んでいく予定。

と思ってたのですが、FM音源エミュレータのhootを更新してて時間が食われた。最新にしたらDirectXが必須になってて動かなくて焦った。更新があったデータファイルの更新をして、88関係はあらかたデータを対応させました。まあ、それ以外は所有してないのでどうでもよかったり。

打ち込み関係

あとI/OはAuto2000だけとなった。汎用データ処理プログラムでビジネスでも十分使えそうかは不明ですが、結構巨大なプログラムなので頑張って打ち込みます。ASCIIを整理してたら打ち込んでないのがいくつかあるので、終わったらこちらをやりたいです。
他の雑誌は、ROMROMが壊滅的、RAMは目次が大抵わかりましたけど、まだまだ情報不足。マイコンライフは82年代がプログラムリスト部分が別冊なので、これまた集めにくい状態です。内容は特化された技術計算物が多いので手に入るならって感じかな。

Super BASE

キャリーラボ製のアセンブラですが、命令がBASICライクなのが特徴的。WICSとかキャリーラボ関係のプログラムはこれで書かれてたりする。
使ってみて気づいたのですが、エミュレータでペースト機能にてソースを入力していたら、1行ペーストが終わると2行分改行されてしまう現象が。設定で環境を変えても変わらなかったので、BASE側の問題かな?と思ったのですが、別途エミュレータを起動してBASEを起動させてペーストしたら問題なく機能してた。これで問題解決!と思ったら再発したり…。まあ、余計に改行が入っても行削除で対応できるので問題ないですけどね。

EDAS

もう一度BASICを再起動させ、EDASをロードし、ソースを読み直してアセンブルしたらエラーのフラグがちゃんと入ってた。良く分らん時は時間を空けて自分の頭の中もリフレッシュしてからやらないとハマるってことですかね。焦らずじっくりやっていこうかと思います。

アセンブラのソース物

I/Oのアセンブラのソース物を打ち込んでしまおうと思って取り掛かりました。アセンブルしたソースを掲載してる場合、バイナリ部分だけ打ち込めば動くのですが、大きなものになると見直しも大変なのでソースで入力してEDASでバイナリ作戦を実行中と。

まずはソースジェネレータを。これはバイナリ部分がなく、ソース掲載だったのでEDAS必須という。実際にEDASを使うのは初めてですが、Iコマンドでソースを挿入してる時にある程度文法チェックしてるのはいい感じかも。モード設定でチェックの有無を指定できるのですが、チェックがあった方が打ち間違いの早期発見になるのでいいです。
アセンブルして致命的というかこのフェーズでのエラーは表示してくれるのでわかりやすいのですが、ラベルとかオペランドの打ち間違いでアドレスをフィックスアップできてないものを特定するのに戸惑いました。リスト付でアセンブルし、リストの1カラム目がエラーを示すフラグだったとは。チェックするのに画面では無理なので、プリンタのプラグインで出力先をPDF化できるプリンタ指定にし、PDF出力したものをチェックして確認できました。
そして、これを書いてる時点で、フラグが無いのにエラーがカウントされてるのが謎すぎる。もう少し調べてみないとダメっぽい。

q-PASCAL

やっと打ち込み終わりました。$2400から$C2FFの32KB超えの巨大なダンプリストでしたので時間がかかりました。以前600dpiでスキャンしたものだとOCRでうまく認識しなくて手動で打ち込みかな?と思ってたのですが、800dpiでスキャンし直して512バイトくらいで区切って画像を生成し、サイズも大きめにリサイズしてOCRへかけたら、かなり認識度も高く変換できました。

80Bでの動作は問題なさそうだった。PASCAL自体はプログラムを書いたことが無いのですが、多少の知識があるので読むことはできるレベルです。あとで余裕が出来たらもう少しいじってみたいですね。

Oh!MZ創刊号

探していた1冊ですけど、やっと入手できそうです。
ソフトの掲載は恐らくないと思いますけど、入手したらじっくり見てみようかと思ってます。
あと82年7月、8月号(2号、3号)が手に入ると全部揃いますけど、主要記事のコピーを入手してるので手に入れば欲しいところです。

雑誌関係は、I/Oの後期が結構歯抜けになってるので苦戦してます。テクポリは絶ぼ的か。LOGiNも記事がいまいち不明なので進まず。マイコンライフが初期の頃の別冊となってるものが厳しい感じです。
まだまだ打ち込み終わるのに時間がかかりそうです。

打ち込み関係

先日入手したおもしろゲームランドの続きからすべて打ち込み終わりました。頂いた資料分はすべて終わりです。
ピラニア君の一週間がどうもX1用らしく動きそうにないのでテキスト化しただけで終わってます。動作環境の記述がなく、Hu-BASICっぽく感じましたが、PCG機能って使えたのか不明です。dB-BASICだとPCG機能がありますが、GPRINTで行うので移植が必要ですが、恐らくドットパターンが違うと思うので移植するのは面倒そう。今から市販版の入手も難しいですし、実テープはdB-IBASICコンパイラでも失敗してるので厳しいところ。
PUT PUT GOLFはマシン語部分が巨大でしたが、マップデータらしく、00が多く含まれていたので楽だった。BASIC部分のOCR変換ミスを探す方が大変だった。一応全コース正常に表示出来るのを確認できたので大丈夫でしょう。よくできたゲームで入賞しても不思議ではない出来に思えました。
引き続きI/O関係の続きを入力しつつ一覧も完璧にしたいです。