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

s-os関係

やっと終わりが見えてきました。あとはWZD、REALが正常に動かないのと、Lisp-85で関数のセーブ・ロードの動作だけです。WZDが動かないとSmall-Cが吐き出すアセンブラソースをアセンブル出来なくて手詰まりに。関連するオWLK、WLB、プティマイザーやMAKEも動かせない状況です。REALもコマンドプロンプトまで行かないのでお手上げです。Lisp-85は1つだけナンパシミュレーションというゲームがあるのですけど、打ち込めば動かすところまで行けますが、セーブ・ロードできないとなるとステートセーブで保持という最悪の形をとれば保存できますが、いまいちスマートでないので乗り気ではありません。FuzzyBASICの拡張もうまく行かないのでそれも謎だったり。

SLANGはかなり動いていて、あとは浮動小数点パッケージの連動で躓いてます。ローダーが新しいものになってからSOROBANがうまく動かないみたいで、何が原因か良く分ってません。magiFORTHは自分が加えたプログラム(ワード)を含んだシステムとして保存すればいいので、ファイルI/O機能を含めた状態で保存しておきました。これで使いたいプログラムをテキストで記述してロードさせれば動かせます。何でもかんでも追加すると巨大なシステムになってしまうのが難点でしょうか。

いろいろ動かしてみて、個人的に好きな言語はFuzzyBASICがいい感じです。マイクロソフト系のBASICとだいぶ違うので移植の手間があるものの、機能的には素晴らしいです。SLANGもプログラム構造的に好みで、Cライクに使えそうなのがいい感じです。括弧の扱いが面白くて、組み合わせがあってれば何を使ってもいいというのが。S-OSでは中括弧がチェッカー、べたキャラなので大括弧、小括弧を使うか、BEGIN、ENDを使ってもいいので利用次第です。

Emuz-2000 Tf-Editionのペースト機能

機能アップが再開されてから一番大きい追加機能の1つにコピー&ペースト機能がありますが、コピー機能は表示画面の内容をクリップボードへ転送でき、テキストエディタ等にペーストしてテキスト化できる機能です。こちらは特に問題なく機能してますが、ペースト機能がちょっと動作がおかしい感じです。

これらの機能を使う上で、emuz2000_charcode.txtというファイルを参照してコード変換してると思われます。MZにあってWinddowsに無い文字コードは代替えで仕方ないです。カナが全角になるのは好みの問題と思うので、自分で直せばいいと思われます。オリジナルのtxtで間違いがあるのは、カナの「シ」で、「セ」となってるので変更しないとペーストしたとき正常に変換されません。「セ」をペーストした場合、最初に「シ」と判断されるみたいなので、手直しした方がいいでしょう。まあ、これはそれほど問題ではないのですが、80文字を超えてる場合に81文字目のペーストで文字が入るときと入らないケースがあるみたいです。画面が80文字モードの時に発生してますが、40文字モードの時にどうなるかは試してません。確か見た目では入っていたような気がするのですけど、あとでLISTコマンドでリスト表示したとき欠落してるケースがありました。細かくテストしてないので曖昧かも。

機能を多用してないので不自由を感じませんけど、もう少し調べて問題があれば報告したいです。といっても、作者のメールアドレスがわからないので気づいてもらうしか手がないのかな?

機種依存的なものか?

bj1

bj3
S-OS上のソフトでSLANGで書かれたブラックジャックをコンパイルしてエラー0となったので動かしましたらタイトル画面が崩れて悩みました。ソースを何度も見直しても原因がわからず。仕方なく、PC-8801エミュレータを起動してS-OSを動かして動作確認してみたら、88側では問題無く動いた。BET時のキー反応も異なり、MZではウエイトが必要なくらいでした。
ブラックジャック本体は同じバイナリなので違いはS-OS本体かエミュレーション的な問題か。実機で試せないので何とも言えません。
まあ、現状でもベット処理以外は何とか遊べるレベルなのでいいですけどね。

あと、S-OS関係はSmall-Cコンパイラ関係が残るだけ。REALが動かない問題もあるけど。Small-Cでサンプルをコンパイルするとディスク内容がぐちゃぐちゃになるので1から見直さないと。
気分転換にBASICプログラムを打ち込む予定。月刊RAMの掲載ソフトが恐らく最後の1本を入手したのでそれを。あと、パソコンサンデーのテキストにもソフト掲載があると知ったのでその情報も欲しい。

ステートセーブ書き換えツール

Oh!X関係の対応をしてましたが、やはりCRCタイプのダンプの対応が必要となってきたのでツールをバージョンアップしました。CRCの算出方法を探るのに時間がかかりましたが、一般的なCRC16の算出ロジックで問題ないみたいなので、それを組み込みました。
参考にしたのはhttp://page.freett.com/seaside/index.htmlのhttp://page.freett.com/seaside/vip/crc/CRC.htm。このページが検索でヒットしたもので。生成多項式も同じだったのですごく助かった。

一応1ブロック分(128バイト)を書き換えテストしてみたら、特に問題なく動きました。1行が8バイトに満たない最後のブロックも問題なさそうです。あとはOh!Xのダンプリストの印刷と読取革命の認識力の相性が気になるところ。

いろいろと

打ち込み関係はほとんど終わりました。大物はOh!XのRPGとI/OのqPascalだけ。OCRがばっちり認識してくれればすぐ終わりますけど、曖昧だと時間がかかると思われます。

気分転換も兼ねて、S-OS関係を。止まっていたSLANG関係をいじってみました。ソースをコンパイルして通るものと通らないものがあって謎だったのですが、原因がわかりました。問題はE-MATEとかEDC-Tが勝手に挿入するタブコードでした。打ち込みでスペース入力してるのですが、勝手にタブを入れてしまうらしい。そもそもSLANGがタブコードを無視しないのかが謎です。そういう設定があるのか良く分らないので、もう一度本編の記事を読んで調べてみようと思います。文字列内もタブを入れるのはどうなんだろうね。
取りあえず、タブコードを取り除くとコンパイルが通るので、FEを使ってソースを見直し、タブを全部取り除いて対処しました。今日はI-MYのコンパイルで時間切れ。

そういえば、Amazonのアフェリエイトでギフト券を貰いました。2006年から始めて約8年間かけて500円程度の収入でした。これで生活してる人ってどんだけ踏ませてるのかと思うと、それはそれですごいと思う。かなりえぐいことをしないと生活できないと思ったよ。Googleの方もいまいちなのでサーバ維持の足しにもならなかったり。

ダンプリストをOCRで

フリーウェアをいくつか試しましたけど、当時のダンプリストをOCRでテキスト化してもあまりうまく行かなかった。テキスト化しても誤認識が多くて一から手打ちした方が早かったりした。久々にOCR関係の検索をしてみると、読取革命が認識率が高いという話がちらほら。パナソニックの製品で、現在はVer.15らしい。検索した記事ではVer.14が良いという話でしたが、パナソニックのページから最新版の体験版をダウンロードして試してみました。

最新版だと、ダンプリスト部分の認識が縦や横のまばらな認識で、ある程度テキスト化は出来るものの、256バイトの塊としては認識されなかった。Ver.14の体験版を探してきて、それを使ってみると問題なく塊で認識できた。しかも+1 +2とかの行も正確にテキスト化できてましたし、認識率はかなり高めです。難点は、汚れやかすみなどで文字が正常でない場合だけ。8とBの認識ミスも少なかった。1が小文字のLやIとして認識されてしまうのは仕方ないですけど。これを知ってればハッピーブッシュマンも2時間くらいで入力できたかも?って思った。アレの打ち込みは3か月かかったので、今回の認識率には本当に驚いた。
試用期間は10日なので、それまでに大物を入力しておきたいです。旧バージョンの入手も何とか考えないと。

ハッピーブッシュマン

happybushman4
やっと動いた。BASIC部分のtypoもありましたけど、マシン語部分のtypoを見つけるのが厳しかった。マシン語部分は大半がシナリオと絵のデータで、それなりに動いてしまうのでミスがわかりにくかった。

このゲームはアドベンチャーゲームで、カナ入力で進めていくものです。動き回るものではなく、前に進むと戻るでシーンを切り替え、そのシーンでのコマンド入力で謎を解いていくといったものです。コマンドも眠る/寝るとか火をおこす/火をつけるなどの柔軟性が多少あるので難易度が多少下がってるかも。それでも単語探しがメインになるので難しい部類と思われます。
PONYCAから出ていたソフトですが、雑誌(ムック)に掲載されてました。この時代、雑誌などにメーカー提供のソフトが載ることが普通にあったのでパソコン成熟時代にはありがたい事でした。お金のある人はテープを購入すればいいですけど、お金のない少年たちは雑誌代と自分の労力で頑張るしかなかった。

あけおめ

年末の多忙な業務も終わり、元旦の午前中は疲れ果てて何もできず。
午後から先日マシン語部分の入力が終わったハッピーブッシュマンのBASIC部分を打ち込みまして、何とか動かすところまでこぎつけました。
マシン語部分はチェックサムが合ってるから大丈夫・・・という訳でもなく、前後間違えて8/16バイトの1行分を正確に入れてるとチェックサムだけは合うという状態になるので結構厳しかったりします。I/Oなどの256バイト単位のチェックサムとか縦サムがあるとだいぶ正確になるのですけどね。

何とか動くようになりました。当時テープで約3000円のソフトが3本(MZ以外で1本)載ってムック販売されてたのはありがたかった。これに限らず、ソフトが未成熟だった時代には雑誌に市販ソフトがよく掲載されていましたので、お金がない自分のような人たちは必死に打ち込んで楽しました。

これで雑誌掲載分の大半が終わりました。あとはI/O関係のツールとかOh!MZの一部のものだけです。入手できてない雑誌もありますけど、入手しているものを片づけていかねば。一番の大物はOh!MZ(X)のThe Cave of DarkとI/OのqPascalかな。マイコンゲームの本のタロットカードもデータが大きくて打ち込んでなかったり。

EmuZ-2000 TF-Editionバージョンアップ

最近未チェックだったのですが、久々にチェックしたらバージョンが上がっていた。細かいバグを直すかもって話はあったのですが、最新版はテキストのコピー&ペースト機能が実装されるとは。これが出来ると、BASICのソースをWindowsのテキストファイルで入力しておいて、ペーストして入力とか、BASICソースをテキストに保存できそうです。これを発展させれば、他の機種のBASICソースをテキスト化して相互移動も可能になるかも。

ヘッダサイズの変更はないみたいですので、うちのツールも問題なく動きます。まあ、ステートセーブのヘッダが変わってメインメモリの位置が変わっても、オフセットの値を変更してフォーマットチェックを外せば対応できますけどね。この機能を駆使すれば他のエミュレータのステートセーブでも使える・・・と思って機能追加していたりする、

開始アドレスが不明

学研から出ていた雑誌であるマイコンライフ1984年7月号掲載のセーバー・パート1の打ち込みが終わりました。メモリーに展開して保存方法を確認しようと思って記事を読み返してみましたが、開始アドレスの記載がありませんでした。プログラムは2つに分かれてますが、どちらも最初にデータが配置されているっぽくて、プログラム本体がどこなのか不明です。適当にジャンプしてみましたけど、モニターに戻るか暴走するかでお手上げ状態です。打ち間違いで暴走している可能性もありますけど、判断しようがないです。

84年代は、8,10,12月号を持ってますけど、記事の訂正は見つかりませんでした。11月号ってことはなさそうですので、9月号が最後の頼みの綱です。なかなかヤフオクに出ないので、最悪はバイナリを逆アセンブルして解析するしかないかも。