それから、それから・・・?

(掲載当時は2005年です) 戻る  次へ

BASICのPRINT文が格納された場所をメモリーダンプで見つけた筆者は、さっそく別のアドレスへコピーして貼り付け、そこからスタートさせる実験を開始しました。
 ドキドキしながらスタートボタンを押しました。その瞬間、TK-80はまったく動かなくなり、リセットする以外何も受け付けなくなってしまいました。初めて経験する暴走です。マシン語の世界はきびしい、そう簡単に行くわけがありませんでした。
『そうそう……。どこの世界もきびしいもんよ』

 さらに参考文献を読み、マシン語の16進データには意味があることに気付き、すこしは理解することができるようになりました。さらに、マイコンの構造も徐々にわかりだし、文字を表示させるにはVRAMと呼ばれるワークエリアとは別の記憶部分があり、ここに16進コードを書きこむとそのコードに対応した文字が表示される。そのコードのことをキャラクターコードとか、アスキーコードとか呼ぶのだということがわかりました。

 何かを表示させるためには、表示させる場所を指定して、文字列のデータを順にVRAMへ書きこんで行けばいいのです。ただ、画面のいちばん下に何かを書き込んでも画面はスクロールしてくれませんでした。BASICプログラムでは画面の下に文字列を書き込むと、ワープロのように上へスクロールしてくれるので次々文字を入れていくことができましたが、マシン語では一切スクロールはしてくれません。これもプログラムで何とかしなければいけないようです。

 ようするになにもかもプログラムしなければいけないということを悟りました。
『なんか、めんどくさいもんね。マシン語って』
 そう、本当にめんどくさいものなんです。マシン語は……。

 そして、もっとショッキングなことは、プログラムが誤っていても何もしてくれないこと、ただ瞬時に暴走して動かなくなり、ひどいときは苦労して入れたプログラムを根こそぎグチャグチャに消し去る時がありました。

 BASIC言語のときは画面のスクロールも自動でしたし、誤った文法を書き込むとエラー表示が出て知らせてくれたのに、このマシン語というのは、エラーが起きても知ったこっちゃなしで暴れ回り、まったくわがままの極めとしか、いいようがありませんでした。ほんとうにマシン語にメリットはあるのか? 正直いって勉強しようという意欲がだんだん薄れてきました。しかし、ある出来事をきっかけに筆者はマシン語、さらにはアセンブラの世界にのめり込んでいくのです。
『なんか、ドキドキするね』
 つづきは、コマーシャルのあとで……。
『あほっ!』








BASIC言語とマシン語、そしてアセンブラ言語




BASIC言語はたいへんわかりやすい
(月刊マイコン 1978年5月号より)





マシン語(赤線部分)とアセンブラ言語(青線)
上記は8080をCPUにした例です
(月刊マイコン 1978年5月号より)


写真をご覧ください。最初の写真がBASIC言語で、次がマシン語とそれを意味するアセンブラ言語です。正確にはこの部分をニーモニックといい、このような書き方をしてプログラムするのがアセンブラになります。
 『たしかに、BASICは意味がなんとなくわかるね。ところでなぜこの写真は歪んでいるの?』
当時プリンターがありませんでしたのでモニター画面をそのまま写真にしているんです。
 『ほぇぇぇぇぇ~』






 'ある'出来事というのは、画面いっぱいに同じ文字を書きこむプログラムを走らせた時でした。雑誌の例題に載っていた、そのプログラムを入力してスタートさせてみました。すると画面いっぱいにその文字が瞬時に出ました。
『あたりまえでしょ。そういうふうにプログラムしたんだから』
いやいや、あまりにも瞬間過ぎたんですよ。スタートボタンを押したその瞬間に画面が文字で埋まるんです。マシン語の実力を知らない筆者は、悲しいことに、また暴走したんだと思っていました。
『悲しいねぇ』
そうです。本気で間違っていると思っていました。

しかし、何度プログラムを見なおしても間違っている場所はありませんでした。〝目からうろこ〟です。BASICではどんなに最速になるように工夫をしても、画面の上から順に表示する文字が並んでいくのが見えていたのです。

 ずっと、そのような世界でプログラムをしていたので、コンピューターの速さとはこの程度だと思っていました。なのにマシン語で同じことをすると、目をどんなにこらしても文字が並んでいくようすが見えないんです。ほんとに瞬間です。一瞬にして画面いっぱいに表示されるのです。しばらくは訳がわかりませんでした。

 これが初めて実感するCPU(コンピューター)の本当の速度でした。超スーパー高速カメラで見ればBASICのように順番に文字が並んでいくようすが映し出されると思いますが、人間の目には見えません。これがCPUの世界と人間の世界とのギャップです。
 『ふぇぇぇ~。何か、すごそう』
でしょ。コンピューターの速さを目の当りにすると鳥肌が立ちますよ。

 『じゃぁ。現代のCPU(コンピューター)はもっと速いわけ?』
はい、おそらくこのころから比べると1000倍以上速いCPUが登場しています。
 『そうかなぁ……? そうは感じられないけどなぁ……。
だいぶ前になるけど、クロック400MHzのパソコンから1GHzのパソコンに乗り換えたときもそんなに速くなったように感じなかったけどなぁ。速度が2.5倍になったわけでしょ?』
 それはしょうがないんです。ハードの速度が2.5倍になってもソフト(プログラム)の方が古いパソコンとの互換性を考えたり、生産性の方を重視してしまった結果、ハードほど急速な進歩はしていないんです。ただただ、プログラムが巨大化しているだけのように思えます。口の悪い技術者に言わせると「大メシ喰らいの×××野郎!」だそうです。

 『ちょっ、ちょっとそれはひどいよ。もう少しオブラートに包んでよ』
 失礼しました。「メモリーばかり消費する。あまり知的でない男の子!」だそうです。ただ、今はだいぶ進歩してますから安心してください。というか、ハードの方がそろそろ限界に来ているという感じが……。

 でも、昔と比べるとソフトの進歩もものすごいですよ。現代のプログラムのレベルを二十歳代の大人としたら、当時のレベルは生まれたばかりで歩けるどころか、寝返りも打てない赤ん坊です。とてもとても、太刀打ちできません。それに、みなさんもCPUの速さを見ていますよ。
 『うそぉ?』
 ほんとうです。

 ワープロソフトなんかで何ページかに渡って書いてある文章が、どのページでも瞬時に表示されているでしょ。それも、いくつものプログラムが同時に走っていてあの速度ですよ。別にプログラムごとにCPUがあるわけではありません。1個のCPUで処理しているんです。ただ、当たり前すぎて気がつかないだけです。
 『ほんとだ』


 CPUの真の速度を経験した日を境に、筆者はBASICからマシン語、そしてアセンブラの世界にどっぷりと浸かって行くのはごく自然でした。
『地獄の始まりやね』
 そのとおり……。(悲)