フォロー

プログラミングは、ファミリーベーシックが最初だ。

ファミコンに専用カートリッジとキーボードを接続して、パソコンのように自分でプログラムを入力して、動かすことができるという代物だ。

別売りの周辺機器で、作ったプログラムを保存するための『データレコーダー』という記録装置があり、カセットテープに音として記録することもできた。

当時はたしか小学4年生ぐらいで、添付されていた取扱説明書をすり切れるまで(実際ページがかなりちぎれた)何度も読み返しながら、やれることは全部やってみて、肌で身につけていった感じ。

V3も買ってもらい、こちらも同様に説明書から知り得ることは何でも試してみた。V3はメモリも倍増していたし、取扱説明書も判型が小さくなって厚みがどっと増えて読み応えがあり、さらに面白かった。

当時はインターネットのようなものは無かったので、情報は友達から見聞きする話や書籍だけが頼り。

マイコンBASICマガジン(ベーマガ)という、読者が作ったオリジナルゲームのソースコードが掲載された本があり、そこにはいろいろなパソコンの各機種向けにそれぞれ数本掲載されていた。実に貴重な情報だった。

ファミリーベーシック向けのプログラムも確か月に2〜3本掲載されていて、これを目で見てキーボードで打ち込み、だいたいどこか間違っているので、よくよく確認しながら直して、動かして感動し、改造したり作りを真似したりして血肉にした。

また、連載コーナーでファミコンのマシン語講座があり、毎号かじりついて必死に覚えた。

BASICでは到底できない、CPUやメモリ、周辺チップの機能に直接アクセスするという、市販されているゲームと同じレベルでファミコンを制御できる技術に興奮し、ニーモニックをノートに手書きして、16進数のコードに変換し、ノートの上で横に16個ずつ並べていって、ジャンプ命令の飛び先を計算して穴埋めし、BASICを使ってメモリに実際に書き込んで実行するという面倒くさい手順を踏みながら、手探りで動くように直したりしていた。夢中だった。

ベーマガは、投稿して掲載されると、当時で原稿料が10,000円もらえた。源泉徴収されて9,000円になるんだったかな。後に7,000円ぐらいに下がった気がする。これも大きな目標になった。

そういう背景があって、後にパソコンに触れた時は、BASICはそこそこにして、アセンブラでコードを書いていた。まだモニター上で16進ダンプを入力するレベルからだったが、ファミリーベーシックより格段に便利で、後にMASMなどでニーモニックが直接バイナリに変換される(ラベルを書いておけば相対アドレスを自動的に解決してくれる!)のは感動モノだった。

C言語は、そういう背景があって、アセンブラより遙かに便利な、高度なアセンブラとして使うところからのスタートだった。教本はK&R(カーニハン&リッチー)が基本だったと思う。柴田望洋さんの本もだいぶ読んだ気がする。

C言語から始めた人が苦労するポインタの概念は、ネイティブだったため何の苦労もなく、どちらかというとスタックの使い方やレジスタをいちいち退避する無駄なコードにイライラしていたように思う。

C言語時代は、アルゴリズムとデータ構造について学んだことが大きい。サーチやソート、データ圧縮などなど。

C言語が多分高校1年生の頃で、学校でCOBOLを教える授業などもあったけど、あまりにもヒマなので授業中は内職ばかりしていた。

ファミリーベーシックから入ったワケで、基本的にはゲームを作ることが目的のプログラミングだったが、C言語以降は、結局のところ周辺ツールやライブラリばかり作っていた。

ドット絵を描くためのドット絵エディタを作って、グラフィック担当の友達に使ってもらったり、マップエディタを作ったり、そこそこ広い2Dマップを表示してスクロールさせる部品を作ったり、パソコン同士をRS-232Cケーブルで接続して、複数人で遊ぶ為の通信プログラムを書いたり。

高校を卒業し専門学校に入ってPrologやLispを教わったのが本当の意味で人から教わった最初のもので、それまでは知的好奇心だけで突き進んでいた。AI関係だったので、イライザだ、エキスパートシステムだ、遺伝的アルゴリズムだ、というあたりね。卒業生で一番有力だった就職先はヴァル研究所だった気がする。たぶん当時の応用分野は、乗換案内ソフトの最短経路探索とか、日本語変換ソフトの形態素解析から学習などの機能改善とか、そういう分野だったと思う。

私は卒業後は印刷屋になったので、結局プロにはならなかった。

それが、何の因果か、今はプルリクを送る日々を送っているw

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。