ソードm5へ、2013年より愛を込めて3


時代を彩った名機たち

第二回記事からの続き

 

Amazon Kindleストア専売の電子書籍『時代を彩った名機たち』の中で紹介されているパソコンの中に、ソードm5(発売は1982年)というものがあります。私、岩井浩之はそのm5のファンクラブで会長を務めていた経験がありますので、少しだけ当時の思い出を語らせていただこうと思います。

 

m5で最も多く使われていたプログラム言語は、BASIC-Gという「ゲーム向けBASIC」でした。後にセガサターン用BASICとしてアスキーから発売された『GAME BASIC for SEGASATURN』が、m5のBASIC-Gを参考にしていた…というエピソードからも、完成度の高さが伺えます

 

BASIC-Gはいろいろな命令文が「ゲームを作る」ことを前提にしていたため、非常にゲームが作りやすかったのですが、一番の弱点はRAM(メモリ)の少なさでした。カタログ数値では8KB(プログラムを8,000文字くらい保存できます)あるはずのメインメモリも、実質的にソースコードを記述できる文字数は約6,800文字でした。この文字数を多いと感じるか少ないと感じるかは人それぞれでしょうけれども、


10 FOR I=1 TO 100
20 PRINT I
30 NEXT
40 PRINT “END”


たったこれだけのプログラムを書くだけでも50文字以上使ってしまうのですから、ちょっと複雑なゲームを作ろうとすると、あっという間に足りなくなってしまうのです。

 

そこで僕が考えたのは、「10 」などの行番号を減らすことで、1行につき3~4文字減らすというテクニックでした。たとえば前述のプログラムですと52バイト使っていますが、以下の記述方法ですと、42文字…10文字分のメモリ節約になります。


10 FOR I=1 TO 100:PRINT I:NEXT:PRINT “END”

 

さらに、行番号を1桁減らして「10 FOR~」ではなく「1 FOR~」というように変更すれば、もう1文字減らせます。たかが1文字ですが、全体で何100行とプログラムを記述していくことを考えると、1行につき1文字減らせるんですから、大きな節約になります。

 

さらにさらに! m5の命令群の中にはいくつか「FOR I=1 TO 100」を「FORI=100TO100」というように、途中にスペース(空白)を入れなくても認識してくれる命令文があったので、それらの命令文についてはスペースを入れないことで、さらに数文字ずつ削っていきました。

 

こうして極限までダイエットをしたプログラムは、普通にプログラムを組んだ場合と較べて2~3割は内容を多く詰め込むことができます…が、プログラム経験がおありの方なら、こうしたプログラミング手法がいかに危険であるか、気付いていらっしゃる方もおられると思います。そう、こうした詰め込みプログラムは後からプログラムのソースコードを読み返しても解読性が著しく低く、作った本人ですら修正(デバッグ)や改修(メンテナンス)が非常に難しいプログラムとなっているのです。

 

このため、僕は最初のうちは普通にプログラムを記述しながら、容量が足りなくなりそうになる度に途中で少しずつソースコードを切り詰めていく、という作り方を行っていました。

 

それから数十年。僕は仕事であるWebサイトのソースコードを眺めていたのですが、その時、どこかで見たような…懐かしい、プログラムの超詰め込みソースコードを見つけたのです。それは…「Googleマップ」です。

 

Googleマップの場合、メモリ節約というよりはソースコードの解読を難解にすることを目的としていそうな気もしますが、Googleマップのソースコード画面を眺めていると、非常に懐かしい気分にさせてくれます。

 

もしかしたら、GoogleマップのJavaScriptプログラマさんも、僕と同じようなパソコン少年だったのかもしれません。

 

第四回の記事へ続く

 

【商品情報】
商品名:時代を彩った名機たち~1980年代・国産パソコン戦国時代を振り返る
価格 :250円 ※購入前にビューワアプリ(下記参照)のインストールが必要
販売先:Amazon Kindleストア

閲覧環境:
Kindle for iPhone(iPhone/iPad/iPod touch用)、
Kindle for Android(Android携帯/タブレット用)、
Kindle Fire/HD/HD 8.9Kindle Paperwhite

カテゴリ: 新刊情報
タグ: , , , , , , , , , ,