ファミリーベーシック

ファミリーベーシック写真
写真をクリックすると拡大します

私が始めて購入したパソコン。1984年6月発売。希望小売価格14800円。


任天堂の「ファミリーコンピューター」用の周辺機器として設計されており、カートリッジスロットにベーシックカートリッジを、拡張コネクタにキーボードを差すことでファミリーコンピューターでBASICが使えてしまうという優れもの。キーボードにはさらにカセットデッキをつなぎ、プログラムの保存を行うことができた。

BASICのフリーエリアは2Kbyte(のちに拡張された)。このフリーエリアはすべてS-RAMとして確保されていて、BASICカートリッジ内に電池を内蔵することで、カセットテープを使わないでも一時的なプログラム保存ができた・・・が、実際のところ、確実性が低すぎて、私はあまり使った覚えがない。


ファミコンのカートリッジコネクタは接触不良を起こしやすいため、保存スイッチを入れようとカートリッジに触れた瞬間に接触不良でプログラムが消えることがあった。これで泣いた人は多い…

CPUは、当然ファミコンと同じ6502の任天堂カスタムバージョン。これは、6502から10進演算命令を取り去り、PSG機能をチップ内に持ったものだった。

BASICの特徴

ファミリーベーシックのBASICは、NS-HuBASICという名称で、その名のとおりSHARP-Hudson系のBASICをベースに改良を加えたものだった(先頭のNは、任天堂だと思われる)。数値は全て16bit整数型となっていた。

文字セットはASCIIに準じるがアルファベットは大文字のみで、かわりにカタカナが充実していた。なんと、濁点や半濁点はどくりつしておらず、すべてフォントとして用意されているのだ。日本語を中心に考えたのは、使用年齢層が低いことに対する考慮であろう。

このBASICで特徴的なのは、ファミコンのゲーム機ならではの機能である、スプライトとバックグラウンド(BG)画面の扱いを簡単にしていることだ。

BG画面はいわゆるテキスト画面のことだが、ファミコンはBG画面2枚分の表示メモリを持っている。この2枚は、重ねて表示することはできないが、縦横いずれかの方向につなげてスクロール表示することはできる。(これはカートリッジ内の配線で決定される。ファミベーにはスクロール命令はないが、横方向に繋げられていた)

で、ファミベーではこの2画面のうち1画面をBASICのテキスト表示に使用し、もう1面を自由に絵を描ける面とした。絵は、BASICから呼び出せる専用エディタで作成する。元々がテキストのような表示方式なので、用意されたパターンの組み合わせで絵を描くことしか出来なかったが、工夫次第で面白い絵が描けた。ここで描かれた絵は、BASIC命令1発でBASICで表示されているテキスト面にコピーすることが可能で、少ないフリーエリアで作られたゲームでも、かなり華やかな画面構成を持てるのが特徴だった。

スプライトキャラクター例  これで用意された背景の上に、スプライトをなめらかに動かすことが出来る。スプライトは16×16dotのものを表示可能で、これもパターンはあらかじめ決められていた。
 左にそのパターンの一部を挙げる。クリックしてもらえれば全パターンが見られる。

スプライトの表示方法は2種類あり、1つは普通に指定した位置に、指定されたパターンを表示する方法。もう1つは、指定した位置から、指定された方向に、指定された速度で、アニメまでしながら勝手に動いてくれる表示方法だった。この2つはそれぞれ8枚まで表示可能で、画面上には合計で16枚のスプライトが表示できた。

ファミコンのスプライトの大きさの単位は8×8dotで、同時に64枚まで表示できる。ファミベーでの表示方法は、効率的とは言えなかったが、遅いBASICでも十分なめらかに動くスプライトが表示できることで、画期的なものだった。

このBASICは、Ver.3まで発売された。

Ver.1は、発売直後、数ヵ月のあいだバンドルされたもの。私が手にいれたのはこのバージョンだったが、その後友人が買ったのは、すべてVer.2になっていた。

Ver.2とVer.1の違いは、SCR$という関数が追加されたことだけである。しかし、この関数の機能「画面に表示されているキャラクタコードを調べる」があるのとないのでは、つくれるゲームの幅が全然違っていたのである。


私はこの命令が欲しくてしょうがなく、任天堂のサポートセンターに電話したところ、任天堂は無償で交換に応じてくれた。このサービスは、どうも「苦情を言ったもの」のみに行われたようだが、当時の任天堂ユーザーサポートは非常に親切で、なにか問題があるとすぐに新品に交換してくれた。

Ver.3は、別売りの形で発売された。差別化するためか、カートリッジの色も黒から赤に変更された。

Ver.3最大の特徴は、フリーエリアが倍(4Kbyte)になったこと、サンプルとして4本のゲームがROMに入っていたこと、プログラム作成の支援命令(RENUMなど)が作られたことなどであった。しかし、宣伝でやっていたような、音声感知機能はついていない。

(TVCMで、コントローラー2に付いているマイクに向かって「ふぁみりーべーしっくせんようかせっと、ぶいすり〜〜〜〜」と叫ぶと、画面上にハートが描かれるというプログラムを紹介していたので、マイクの入力を見る命令がついたのだと思っている人間が多かった。ちなみに、このゲームはサンプルのうちの1つである)


マイクは本来 I/O ポートに接続されています。そして、6502 の I/O はメモリマップされています。なので、マイク入力を知りたければ「PEEKで読む」だけでいいのです。(具体的には、PEEK(&H4016) する)
 これは、V3 ではなく、V1 でも出来ることでした。

ファミリーベーシックの作った「文化」

ファミベーは、値段が安かったこともあってかなりの人間が買ったようだ。その大半は「思っていたほど簡単にゲームが作れない」「作れたとしてもプロ作品に比べて見劣りする」などの理由で脱落したようだが、それでもファミリーベーシックは様々なパソコン雑誌で扱われるようになった。

最初に扱いを始めたのは、おそらくマイコンベーシックマガジンだったのではないかと思う。ベーマガでは、ファミベーの発売直後にすでに緊急レポートの形で読者投稿のゲームが掲載され、その後は毎月1〜2本のペースで投稿作品が掲載された。(私も何度か紹介していただいた)

HudsonSoftでは、ファミベーでゲームを作るための入門書を、カセットテープ付きのマンガとして発売した。カセットテープには本で作ったサンプルプログラムが収められていた。


少年メディア12003.2.14
 話題となっている「本」を押入れから発見したので掲載…

 「少年メディア」というMookシリーズの第1巻。(2巻はロードランナーのコンストラクションとベーシックの組み合わせだったらしい)
 ロードランナー、ナッツ&ミルク、4人打ち麻雀の「必勝法」と、ベーシックの解説が載っている。もちろん、すべてハドソンがプログラムしたものだ。(麻雀とベーシックは任天堂から発売)

 本誌は全部で256ページだが、半分以上の141ページがBASICの解説となっている。
 BASIC解説は漫画で描かれていて、2本のサンプルゲームのプログラムを解説しながらノウハウが覚えられるようになっている。そして、漫画の後には「応用編」として、8本のプログラムリストが掲載されている。
 これらのプログラムは、付属してくるカセットテープにも収められていた。

 ゲームの必勝法の方は、どこが必勝法だかわからない(麻雀の必勝法があるなら教えていただきたい)ながらも、ストーリーを強引に紹介する漫画などがついていて笑える。どうも、必勝法部は小学校低学年、BASIC解説は高学年を想定しているようで、全体的に1冊の本としたのに無理を感じる。


プログラムポシェットでも、ファミベーのプログラムが載った。おそらく、始めてファミベーの「マシン語作品」を掲載したのはこの雑誌だと思う。(内容は冗談プログラムだったとはいえ)

そして、「文化」を押し進めた2つの車輪は、Beepと「バッ活」ことバックアップ活用テクニックだった。バッ活はファミリーベーシックを道具として、ファミコンのハード構造を徹底的に探った。Beepは、メモリが少なく、制限の多いファミベーの制約を打ち破るため、ファミベーのソフト構造を徹底的に探った。

その成果は、まずBeepに現われ始め、やがてベーマガ等でもあたりまえのように見られるようになる。

徹底的に効率化されたプログラムは、プログラムの無駄を省き、ROMに用意された命令を使わない。

プログラムが内部に格納されるとき、1文字の変数は1Byte、数値は2Byteであることを利用し、よく使われる数値は全て変数にしてしまい、空白を全て省き、マルチステートメント時に特定条件で「:」が省けるバグを利用し、同じくIF文でTHENが省けるバグを利用し、出来る限り論理演算式を使い、DATA文は流れの届かないIF命令の後ろに詰め込まれた。

ファミコンがメモリマップドI/Oだったのを利用し、音楽はPOKEを使って演奏し、スプライトはPOKEを使って表示し、配列には本体のワークメモリの余りを利用し、時には背景用のV-RAMにもデータが詰め込まれた。


容易に想像できるが、究極のメモリ効率は、完全機械語化によってもたらされた。他のパソコンを持っている人はともかく、ファミリーベーシックの小さなメモリではアセンブラはつくれない。そこで、アセンブル作業はほとんどの人が手で行っていたようである。ちなみに、すべてハンドアセンブルでメモリを効率化するのは並大抵の努力ではない。

バッ活ではさらに、ディスクシステム(なんと、カートリッジは32KのRAMだ)で動作するBASICを作り上げてしまった。ここらへんになると、私は試していないので紹介できないのが残念である。

おまけ:ファミコンのさらにディープな話題(パソコンに詳しい人向き)

(ページ作成 1996-10-01)
(最終更新 2003-02-14)

戻る     次記事:ファミベー全キャラ
トップページへ

-- share --

33219

-- follow --




- Reverse Link -