自分がどうプログラムを覚えたか。最初は高校で汎用機を弄った。言語はFORTRANだった。表示はWRITE / FORMATだった。面倒で嫌になったけど、今思えばここで知らないうちに基礎は作られた気がする。学校にはTK80が置いてあったが、実は正直あまり興味がなかった。理由は電卓と同じ表示だったから。これも面倒としか思わなかった。
その後、ユニーやカトー無線電気館に置いてあったBASICマスターレベルⅡだとかTRS-80だとか。特にBASICマスターレベルⅡは取説まで売り場においてあって、BASICプログラムを見様見真似で入力したら、UFOが右から左にすいーっと移動して。これまた今から思えば何の変哲もないプログラムだけど、当時の内藤は大感激した。そもそもキーボードを押すと、それに応じた文字が表示されるだけですげーと思ってた頃だから、UFOが動くなんてなんだこりゃという状態。

そこからはパソコンに興味が集中しました。月刊アイ・オーとかを毎月購入して読み漁り、NEC PC-8001 が欲しくて堪らなくなります。当時毎月のように掲載されていた芸夢狂人さんが PCG8100 に対応させたゲームをドカドカ載せていたこともあり、すっかりこの組み合わせが欲しくて欲しくて。2年間新聞配達のアルバイトをして、やっと手に入れてます。高校3年の時です。
プログラムはBASICから始めました。対戦型のバックギャモンを作っています。思い出補正が入っているとは思いますが、初めて作った割にはよく出来ていたという記憶が。ソースも何も残っていないので、今となってはですが。そのBASICは何の苦労もなく使っていました。おそらく高校の時に学んだFORTRANのおかげなのだと思います。そして、すぐに実行速度の遅さに愕然として、マシン語を覚えたいと考えるようになります。
月刊アイ・オーに掲載された芸夢狂人さんが執筆されたZ80マシン語講座っぽいコラムを読んで、Acc(アキュムレータ)とHLレジスタの存在を知ります。掲載された命令は僅かなモノでしたが、画面転送を理解して手始めにカミカゼというゲームを敵の移動部分だけマシン語で作りました。アセンブラ使ってないです。マシン語直書きです。ノートに目一杯コードを書き殴っています。多少のコード変更があっても良いように、ルーチンの後方には余白を入れるようにしていました。
※ 多少時間軸がズレてますが気にしないように^^;
この経験から、カセットテープや手作業での開発に限界を感じて、またしこしことお金を貯めて、工人舎の 5"FDD ドライブとキャリーラボの C-DOS / BASE-80 を手に入れます。BASIC から入った自分としては、ザイログ形式のアセンブラに馴染めず、A=50 とかマルチステートメントが使える BASE-80 は最高のアセンブラに感じました。唯一購入した参考書が Z80 のニーモニック解説です。本の題名は「パソコンPCシリーズ 8001 6001 ハンドブック」。これは今でも私の手元に残っていますが、この本無くして、Z80 の理解はなかったと言えます。

ということで、やっぱり最初に学校で FORTRAN を学んでいたのが一番大きかったんだなあと思いました。今は義務教育でプログラミングを教えてるらしいので、基礎は出来ていると思います。だから大事なのは、如何に興味を持つか…ですね。今どきだと画面に文字が出ただけでは感動しないので、大変だとは思います^^;
まとめると…
- 基礎を学校で学んだ
- BASICを見様見真似で学んだ
- マシン語を雑誌のコラムを読んで学んだ
- 参考書を購入して独学
つまり、基礎のうちは独学ではなく他から学んでいますデス。今はネットで基礎を学べる…のは良いのですが、何も分からない人がどこから手を付けて良いのかわからないのと同様で、情報が多すぎてどこからってのが全く分からないんですよね。だから、分かる人に教えてもらうのが一番の近道だと思います。
あと、基礎のうちは教えてもらうのは一人に限定してください。複数の人から教えを乞うと間違いなく混乱します。理由は答えが一つじゃないためです。例えば、基礎講座のサイトとか、言語の基礎本とかも、あれこみ読むのではなくて、基礎を卒業するまでは一つに絞ってください。どうしても理解できない場合は、新しい人や教材を完全に最初から学び直しましょう。
コメント