中学生のとき

中学1年のとき、友人から工学社の「マシン語入門」という本を譲ってもらう(*1)。譲ってもらったといっても、中学生にしては高価な1500円という値段で売りつけられたとも言える。ちなみに定価1800円だ。この本は高校卒業ころまでお世話になった本で、現在の自分に非常に影響を与えた本であった。

  • Z80を例にとって、マイコンの動作原理をハードウェアとソフトウェアの 両面から説明。実際に実機を作るための回路図つき。
  • 6802のマシン語の説明とマシン語によるプログラミングの仕方。ハード ウェアの改造方法なども回路図つきで説明。
  • 6502での円周率の計算。実際に100桁くらいもとめていた。
  • 8080によるマイコンの製作記事。
  • TK80上で動くゲーム「スタートレック」(知る人ぞ知るゲーム)のプログラム。

といった内容の本である。この本のおかげでマシン語プログラミングに興味を持ち、大学入学までは以降のほとんどの自作プログラミングはBASICとマシン語で作った。

中学1年の後半、ナショナルのパソコンJR-100を買ってもらう。このマシンは「消しゴムキーボード」で有名であった。MPUは、カタログ上では「MN1800(6802相当)」と出ているが、6802にインデックスレジスタアドレッシングモードを使えるように拡張した富士通のMB8861である。日立のパソコン「ベーシックマスターJr.」もこのMPUを使っていた。そのおかげで、ベーシックマスター用のマシン語ゲームソフトからJR-100に移植するのは楽であった。I/Oアドレス(といっても68系はI/OがメインメモリにメモリマップドI/Oである)とか、BIOSルーチンのアドレスを書き換えるだけだったので。

JR-100にはにはリセットキーなるものがなかった。マシンがハングアップしたら電源を一度切らないといけない。自作プログラムを作っていると、よくハングアップするのだが、まだセーブしていないプログラムがハングアップしたりするとショックが非常に大きい。そこで、MPUのリセット信号をON/OFFするスイッチを付けることにした。通常は常に+5VがかかっているMPUのリセット端子の基板上のパターンを切断して、+5Vとグラウンド間を接続するスイッチを取り付けた。こうすればリセットしてもメモリ上の内容は消えないので、非常にありがたい。

このマシンに対する思い入れはまだまだ尽きないのだが、それを述べるのはまた別の機会に譲る。

電機店のマイコンコーナーに行って触り放題だったマイコンのキーボードの前に長時間座り続け、雑誌に載っていたプログラムを打ち込んでBASICの勉強(本当はゲーム)をしていた。

このころの主なパソコンは、

  • NECのPC-8001, PC-8801, PC-6001
  • シャープのMZ-80シリーズ
  • 日立のベーシックマスター
  • 東芝のパソピア
  • アップルのApple2
  • その他、VIC-1001, FX-80, TRS-80, ...

といったところ。もっと他にもあったような気がするけどよく覚えてない。 時代もめちゃくちゃかもしれない。。。

同じころ、友人がNECの「PC-8001」を買った。当時、工学社の「I/O」と いう雑誌にはPC-8001のゲーム(もちろんマシン語)がほぼ毎月載っていた。 それも知る人ぞ知る「芸夢狂人」氏が作ったゲームがほとんどである。今 考えると恐るべきパワーだ。そのゲームを友人と二人で16進数をひたすら 打ち込んだ。一人が数を読み上げ、一人がキーを打つ。これを延々と数時 間続ける。これもまた今考えると恐るべきパワーだ。執念とも言えるだろ う。しかし打ち込んだ結果つまらないゲームだったりすると、力が抜ける ことこのうえない。今考えてもショッキングだ。このころ売られていたソ フトはカセットテープで供給されているのがほとんどである。I/O誌に載っ たゲームも売られていたが、この場合はゲームを楽しみたい人が買うとい う側面の他に、16進数を打ち込むのがイヤな人が買うという側面もあった と思う。

しばらくして別の友人がNECのPC-6001を買った。このマシンはBASIC 言語から内蔵のPSG音源を使って3重和音までの音楽演奏ができるという、 私にとってはすごいマシンであった。ちなみに小学校高学年ころからシン セサイザーに興味があった。このころからコンピュータの性能の判断基準 (というか欲しいと思う基準)に、「音楽演奏ができること」というものが 加わっている。コンピュータによる音楽演奏には非常に惹かれるものがあ り、ゲームセンターにマイクロカセットレコーダーを持ち込んで、ゲーム 機のスピーカーにマイクをくっつけてゲーム音楽を録音したこともあった。 音楽といっても効果音的なものが多かったが。今ではゲーム音楽のCDがた くさん売られるようになったが、あのころ私に行動力があったら…ゲーム 音楽CD(レコード)で一儲けできたかも。

話をもどす。PC-6001には音楽演奏機能があったので、よく友人の家に行っ ては楽譜から音楽データを入力しては聞いて楽しんでいた。音楽演奏用にはMML(Music Macro Language)という拡張を BASICに施したものを使う。

(例)チューリップ

10 PLAY "O4CDE2CDE2GEDCDED2CDE2CDE2GEDCDEC2GGEGAAG2EEDDC2"

(あなたのお使いのブラウザにJavaがインストールされていれば、MMLプレイヤで実際に演奏できます。上記の""で囲まれた部分をコピーしてお試ししてみてください)

もちろん「I/O」誌からのマシン語ゲームの打ち込みもやった。PC-6001で は、当時はまだあまり有名でなかった「T&Eソフト」の独壇場であった。

このころの私の購読していた雑誌:

  • ラジオの製作 (電波新聞社) 略称「ラ製(らせい)」
  • 初歩のラジオ (誠文堂新光社) 略称「初ラ(しょら)」
  • I/O (工学社)
  • マイコン (電波新聞社)
  • マイコンBASICマガジン (電波新聞社) 略称「ベーマガ」

ベーマガはラ製の付録時代から持っていたがほとんど捨ててしまった。もっ たいなかったかな。

だんだんと自分でもBASICやマシン語(68系)のプログラミングを始めるよ うになった。始めて作ったゲームは「スキーゲーム」(自作プログラムの代表格がスキーゲームではないでしょうか。当時プログラミングを始めた人は、一度はスキーゲームを作ったはず)。始めて雑誌に投稿 したゲーム(見事にボツ)は「(忘れた…最近記憶力がない)」。今風に言え ばどちらも「縦スクロール型アクションゲーム」であろう。JR-100で BASICとマシン語を使って作成した。前者は説明するまでもないが、山頂 からふもとまでチェックポイントを通過しながら降りてくるというもの。 後者はビルの1Fから屋上まで、上からどんどん降りてくるモンスターをか わしながら登っていくというもの。芸夢狂人氏の作った同名のゲームの移植である。

中学3年の時は、あまり変化がない。受験勉強を特にやったというほどではないのだが。このころは秋葉原に行ってもマイコン屋に行くことがほとんど。そんな中で、JR-100>AntiquePC:JR-100]]による音楽演奏に興味を持つ。JR-100では周波数を特定のメモリに書き込み、適当な長さのループを回すことによって一つの音を出力する。したがって、音楽として複数の順に鳴らそうとすると、BASICのDATA文に音階を表す数値と音長を表す数値をペアで音符の数だけ並べ、それをREAD文で読み出しながら演奏することになる。最初のころはそれでも興味深く、あらゆる楽譜からデータを入力した。小学校のときからの音楽の教科書や副読本はすべて保存していたため、入力する楽譜には困らなかった。しかしそのうち和音を鳴らしたくて鳴らしたくてしょうがなくなる。そこで和音を構成する各音を高速で切り替えれば和音に聞こえるだろうというアイデアにより実験してみたところ、非常に汚い音となってしまった。周波数を切り替える時にブツっとした音が聞こえてしまい、それが本来の和音の音よりも長い時間聞こえてしまうことで、音がにごってしまうらしい。その後の実験によると、

  • 曲中に含まれる最短音符の1/4の長さを基本長として音を切り替える。
  • 和音は2和音程度に収める。3和音以上ではあまりきれいに聞こえない。

ということが分かった。例えば曲中に含まれる最短音符が8分音符の場合、32分音符を基本とする。そしてドとミの和音を4分音符として出力したければ、

C16E16C16E16C16E16C16E16 (16分音符でドミドミドミドミ)

と切り替えると割ときれいに聞こえる。難点は、速いテンポの曲が演奏できないということである。何故かは考えてみてください。

そして高校入学と同時にNECのPC-8801mk2を買ってもらう。

タイトルとURLをコピーしました