ホームページ目次1995年前の話次の話

BASICの基本3命令

1995年11月21日

もう十年以上BASICという言語を使っていないが、昔は、貧乏人(アマ チュア)が自由に使える言語といったらこれくらいしか無かった。私も貧乏だっ たので使っていた。

私がどの程度使っていたかというと、ほんの短い数行から十数行の命令をテ ストするためくらいであった。まあ、BASICの入門書にのっている、命令 の解説に付属してある、その命令の動作説明のためだけの短いやつ。あれと同 様の短いプログラムばかりを毎日毎日やっていた。

実は、私はBASICであまりプログラムを作ったことはないのです。昔の パソコン(マイコン)雑誌には、長いBASICのプログラムが良く載ってい たのですが、とてもああいうのは入れる気がしませんでした。だから、カセッ トに入ったプログラムを手に入れ、ロードしては動かして、「なんだ、また動 かん」とつぶやいていた程度しかBASICの使用経験はありません。仕方が ないので、そのBASICプログラムを投稿して来た人に連絡して、やむをえ ず自分で勝手にバグ取りして、雑誌に掲載できるように直してあげていた程度 の実力でした。とてもBASICで長いプログラムを書くなんて気はありませ んでした。

....というのが、私のBASICの使用経験であります。

それで、安田講堂を有する某大学に駐屯しているとき、同僚がシャープのPC -1500なるポケットコンピュータ(ポケコン)を持って来た。これにBASI Cが入っていたのである。まあ、それまでは、ちゃんとしたデカイパソコンに しかBASICは入っていなかったのだが、ごく普通のBASICが動く持ち 歩き可能なものが出たのである。これは、仕事とか勉強などそっちのけで遊ぶ しかない、ということで遊び始めた。

で、最初に確かめた命令は何か。当然、BASICの基本3命令で、あり、

と思ってはいけない。BASICが動くパソコンを手にして最初に考えつく 命令といったら、 に決まっているだろうが。この3命令の存在をまず確認する。といっても、 CALL命令の確認はちょっと難しいので、とりあえずPEEKとPOKEを確認する。こ れで、ROMの部分を確認するプログラムをちょいと作る。当然、BASIC インタープリタなるものが、ROMになってどこかに存在する訳だ。

そこまで分かったら、今度はBASICインタープリタの部分の16進ダン プを取るプログラムを急きょ作るのであった。いっちょまえに、このポケコン、 小さなアルプス製のプリンタというかプロッタといった方が妥当なようなもの がついていたので、それで延々とインタープリタ部分をダンプしてしまった。

ダンプが済んだら、ダンプ内容の解析である。16進数が延々と並んでいて、 CPUも分からないコンピュータの命令の解読、これはとんでもない難事業と 思うだろう。でも、まず、BASICの命令語はそのままアスキーコードで入っ ていたので、どんな命令が存在するかは全て分かった。マニュアルに存在しな い命令も、こうすりゃ全て分かるのだ。

もちろん、プリントに非常に時間がかかるので、安田講堂の地下にもぐり込 んで時間潰しをする。そう、そこは、あの全学連が暴れたところ、占拠したと ころである。そのころ、そこは、東大生協書籍部が入っていたので、本を物色 していたのであった。

で、ずーーーーと暇潰しをしてから研究室に帰ってくると、プリントアウト の結果が床に転がっているので、巻取って、紙に張って、コピーを取って、解 読作業の準備をするのであった。

すぐに分かるのが、リターン命令である。この命令はかなり頻繁に出てくる のである。で、とりあえずこのリターン命令ではないかな、と思われるアドレ スに対してCALLしてみるのである。何事もなくすぐ帰ってくると成功であ る。

それからあとは、どうしたか覚えていない。とにかく、何日間かかけて、仕 事も研究も忘れて、解読の日々を送った。で、ある程度の解読ができたのであ るが、さすが時間がかかる。こういうときには、自分達だけで解読するのは大 変なので、全国の解読家に呼びかけるに限るということで、雑誌に中間報告の 形で発表した。

そうしたら、いたんだよ。ガンガン解読してきた暇なやつが。当然、大学生 だったが。で、解読したマシン語だけで、液晶のドットを自由に操作して、弾 がビュンビュン飛び交うようなポケコンゲームを作っちゃったりして遊んだん だ。もちろん、本にして発売もしたけどね。

私のBASICの思い出というと、せいぜいこんなものしかないのでありま す。ね、だから、私はBASICのことを余り知りません。インタープリタや コンパイラを作ったくらいだけれども、そういう話はまたの機会にしよう。


ホームページ目次1995年前の話次の話