crossroads[30]我が青春のMZ-2000(プログラミング編)
── 若林健一 ──

投稿:  著者:



こんにちは、若林です。前回に引き続き、私自身のパソコン初めて物語、プログラミング編です。

●きっかけは無線・電子工作雑誌

実はパソコンに関心を持つ前、アマチュア無線に憧れた時期がありました。子供でも免許が取れて、世界中と交信できる(英語はできないのに)というところに心を惹かれ、「初歩のラジオ」や「ラジオの製作」などの無線・電子工作関係雑誌を読み漁っていました。

当時は「初歩のラジオ」を「初ラ(しょら)」「ラジオの製作」を「ラ製(らせい)」と呼び、それぞれの派閥ができるほどで、自宅近くの小さな書店にも置いていましたから、それなりに人気のあった本だったと思います。

これらの無線・電子工作関係雑誌でも、パソコンが取り上げられるようになったことが、パソコンと出会うきっかけでした。




とはいえ中学生のこと、「プログラミングを勉強しよう」といった高尚なことは考えておらず、「パソコンがあればゲームができる!」ぐらいの動機付けでしかなかったのですが。

NEC、シャープ、富士通など、パソコンを発売するメーカーが増えるにつれて、パソコンに割かれる誌面が多くなり、ついには「ラ製」の別冊として「マイコンBASICマガジン」という、BASICによるプログラミング専門の冊子がつくようになりました。

私は「初ラ派」だったのですが、「マイコンBASICマガジン」の登場により「ラ製」に浮気するようになり、お小遣いの少ない中学生には二つの月刊誌を毎月買うのは厳しいこともあって、「ラ製」一本に。

そして「マイコンBASICマガジン」が別冊から独立し、月刊誌になった時には「マイコンBASICマガジン」だけになっていきました。

●写経の日々

「マイコンBASICマガジン」には、読者の投稿プログラムが多数掲載されていました。

パソコンを持っていてもソフトがなければただの箱。でも、高いパッケージソフトはなかなか買えない。今のように無料のアプリがダウンロードできる時代ではありませんでしたから、「本に載っているプログラムを打ち込む」というのがソフトを安く手にいれる唯一の方法でした。

当時のパソコンは、メーカーや機種によってBASICの仕様が異なっていたので「マイコンBASICマガジン」には、対応機種によって分類して掲載されていました。

最初はプログラミングに関する知識がまったくありませんから、自分の機種用のプログラムをただひたすら打ち込むしかありません。見たままを打ち込んでいく、いわゆる「写経」と呼ばれるやり方です。

本に載っているものを見たままを打ち込みますが、当然打ち間違いがあります。打ち間違えば動かないので、どこを間違ったのか見直さなければなりません。

しかし、そもそもBASICをわかっていないので、どこが間違っているをすぐに見つけられないことも多く、ひたすら見比べてのバグ取りとなります。

写経→見比べ→写経→見比べを繰り返すうちに、少しつづBASICが分かるようになり、プログラムが動かない原因の見当がつくようになり、単純な「見比べ」作業は減っていきす。

ここまでくると、少しずつですがオリジナルのプログラムも作れるようになり、自分で作ったプログラムをきっかけに新しいことに出会い、それについて調べて、また更に理解が深まります。

もちろん、Google検索がない時代ですから、調べるのもすべて紙の本です。今でもプログラミング初学者が「写経」することはありますが、当時は「写経」しかなかった時代だったのです。

●移植への挑戦

BASICでプログラムが作れるようになってくると、「他の機種用のプログラムを自分の機種で動かしたい」という欲求が現れて来ます。別の機種用のプログラムを作り変えることを「移植」と言います。

「移植」するには、自分の機種の知識だけではなく、移植元機種の知識も必要になりますし、それをどのように置き換えるか? を考えるという高度な取り組みになります。たとえ、その目的が「ゲームをしたい」であったとしても。

当時の人気機種は、NECのPC-8001や8801でしたので「マイコンBASICマガジン」に掲載されているプログラムも、PC-8001や8801用のものが多く、私はそれらをどうしてもMZ-2000で動かしたかったのです。

「移植」には、単に記述方法の違いを置き換えるだけで済む簡単なものと、移植先のBASICにない機能をどのようにしてカバーするかを考える複雑なものの二種類があります。

前者は、それぞれの機種のBASIC言語仕様がわかれば大して難しくはありませんが、後者はなかなか難しい。命令不足は自力でどうすることもできず、より高機能なMZ-2000用の他社製BASICを購入して対応したこともありました。

起動時にBASICを読み込む仕様だった、MZ-2000だったからできた技とも言えますが、そもそも純正のBASICの機能不足が原因とも言えるので、そこは褒めたものかどうか迷います。

移植ができるようになれば、BASICに関してはほぼ一人前と言えると思います。

●森巧尚さんのこと

「マイコンBASICマガジン」に関連して、もうひとつ面白いエピソードがあります。

当時「マイコンBASICマガジン」に多数の作品を投稿していた中に、森巧尚(もりよしなお)さんという方がいらっしゃったのですが、今はそのご本人と一緒にCoderDojoの活動をさせていただいています。

自分が一生懸命打ち込んでいたプログラムの作者の方と一緒に、子供達にプログラミングを教える活動をしているというのは、なんとも感慨深いものです。

しかも、大阪のCoderDojoでは、森さんにBASICをサポートしてもらっている子供もいて、自分も森さんのプログラムを写経して、移植して、プログラムを覚えたのかと思うと、なんとも不思議な感覚です。

●動機付けが大切

当時はただひたすら「ゲームがしたい」という一心でやってきたことでしたが、何事も動機付けされるものがあるということは大切です。

この時の経験が、後の職業プログラマーとしての基礎になったわけで、子供たちにプログラミングを教えるところにもつながっているのですから。

今の子供たちは私たちの頃よりもずっと恵まれた環境にありますが、私たちは不便な時代だったからこそ頑張れたとも言えます。今は、自分で打ち込まなくても、面白いアプリがダウンロードで手に入りますからね。

しかし、作ることの面白さはダウンロードアプリでは味わえない世界ですから、ここをしっかり伝えていきたいと思っています。


【若林健一 / kwaka1208】
http://kwaka1208.net/aboutme/


CoderDojo奈良・生駒の開催予定
http://coderdojo-nara-ikoma.github.io/

奈良:10月16日(日)午後