見出し画像

黎明期のPCゲーム開発記 (3) 〜マシン語の沼に入る〜

前回の「第2回」では、N88-BASIC で作ったゲームと市販のゲームとの処理速度の違いから、マシン語の勉強を始めようと決意する頃まででした。
第3回の今回は、マシン語の勉強を始めた頃のお話です。

自分のパソコンを買う!

高校生になって、それまでより少しは自由になるお金が増えたのと、これに加えて親の援助もあって、はじめて自分専用の「パソコン」を買ったのはこの頃です。当時、大阪の日本橋は関西における電気製品のメッカで、何軒も回って最安値のお店で「PC-880mkII FR」を買いました。それまで使っていたパソコンを考えたら、当然の選択かなと思います。

では私の周辺のパソコン事情はどうだったかというと、

中学校の先輩は「X1シリーズ」
友人の一人は同じく「PC-88シリーズ (SR以降)」
別の友人は「FM-7 シリーズ」

を持っていたように記憶しています。少しずつですが、各家庭にパソコンが普及し始める頃だったのもしれません。

さあこれで、「マシン語でゲームを作るんだ!」

となるわけなのですが、まあ全くやり方なんて分からないし、そのためのツールもない。

「PC-Techknow 8801mkII」を開いてみる、本屋に行って立ち読みしてみる、何が何やら分からない。。。

MON コマンドと出会う

ただ一つ分かったのは、N88-BASIC に MON というコマンドがある事。そしてこのコマンドは、内部のマシン語コードを見ることが出来るというものでした。

この MON コマンド、とても便利なんです。D コマンドは、開始アドレスと終了アドレスを指定して実行すると、その間のメモリの内容を16進数のダンプ形式で表示してくれます。また L コマンドは、開始アドレスを指定すると、そこから始まるマシン語コードを「ニモニック(人間に分かる言語)」で表示してくれました。このコマンドはとても重宝しました。

しかし、MON コマンドにも問題点はありました。L コマンドで表示されるニモニックは「8080」CPU 用のものだったのです。この頃のコンピュータ事情に詳しい方ならお分かりかとは思いますが、PC-8801 シリーズには「Z80」というCPU が搭載されています。Z80 は 8080 の上位互換で、8080 にはなくて Z80 には存在する命令があり、その命令をリストするときには「???」と表示されたのです。これが分かるのには相当時間がかかった記憶がありますが、ともかく MON コマンドのおかげで、「マシン語 (Z80 アセンブラ)」がどういうものなのか、少しずつ理解できるようになっていきました (もちろん、Z80 に関する書籍は買い漁っていたからでもあるのですが)。

2冊の書籍と衝撃の行動

PC-8801 シリーズを使って「マシン語でゲーム」というモチベーションを維持してくれたのは、この2冊の書籍のおかげと言っても過言ではありません。

・マシン語ゲームプログラミング - PC-8801 mkII SR (アスキー・メディアワークス)
・PC‐8801 mkII SR/FR/MR活用研究 (電波新聞社)

「マシン語ゲームプログラミング」はその名のごとく、(シューティングゲームだったかな?)ゲームを作り上げていくのに必要な知識を与えてくれました。
もう一冊の「PC‐8801 mkII SR/FR/MR活用研究」は、PC-8801 シリーズの内部の話や、確か「サブシステム」にまで言及していたように記憶しています。

これらの本の助けを借りながら、少しずつ少しずつ、マシン語(Z80)というものを理解し、小さなものであればプログラムを書けるようになっていきました。

ただ・・・ゲームを作るのにはほど遠い
どうするか・・・

私は意を決して「ある衝撃の行動」を取ることになるのですが、その頃私は、すでに17〜18歳になっていました。

この記事が気に入ったらサポートをしてみませんか?