MSX 快速マシン語ゲーム集「ファイナル麻雀」


ブログラムはマシン語プログラムをロードするBASICのプログラム「リスト1」と、2本のマシン語プログラム「リスト2」「リスト3」に分かれていますが、2本目のマシン語プログラム「リスト3」はディスクのワークエリアに及んでいますので、そのままではディスク実機で動作させることができません。
よって「リスト3」の開始アドレスを-1000HオフセットしたB300Hから入力・配置してディスクのワークエリアを回避し、ロード後にブロック転送で元のアドレスに転送して実行するようにしました。
具体的には以下のとおりにします。
・「リスト1」を以下のように修正またはリンク先のテキストファイルを保存。(ダウンロード環境によっては改行が反映されないことがあるので適宜修正してください。)
10 CLEAR 5,&HB2F3
20 BLOAD"INIT.BIN",R
30 BLOAD"EXEC.BIN":FOR I=&HB2F4 TO &HB2FF:READ A$:POKE I,VAL("&H"+A$):NEXT:DEF USR=&HB2F4:I=USR(0):DEF USR=&HC300:I=USR(0):DATA 21,3F,D9,11,3F,E9,01,40,26,ED,B8,C9

http://parupu.chu.jp/hatena/program/kaisoku/FINAL.TXT
・「リスト2」を入力して「INIT.BIN」で保存。
・「リスト3」を-1000HオフセットしたB300H~D93FHに入力して「EXEC.BIN」で保存。

「リスト1」を実行すると「リスト2」をロード・実行し、少し時間をかけてタイトル画面を表示します。その後自動的に「リスト3」をロード・実行してゲームが始まります。

画面はまあまあキレイです。牌の指定はカーソルキーではなくキーボードで操作するため多少操作性が悪いです。

1局目から役満のチャンスでしたが残念ながら流局。

コンピュータにあがられました。コンピュータは結構強くなかなかあがれません。

どんどん点を削られ瀕死の状態でしたが安い手であがりました。

その後も良いところなくゲームオーバーw

何度もプレイしていたところ、コンピューターがチョンボしたのにこちらの点が削られるという現象が発生しました。バグなのかどうかわかりませんが、これ以降発生せず再現しないので原因不明です。