電子少年 た~さまの自叙伝・第2回 ~一つ知れば十の疑問~

前回、軽い冗談のつもりで書き始めてしまった私『た~さまの電子工作への道』への物語が意外に好評だったのか、とりあえず第2弾を書いてみることにしました。
でも、前回は非常にライトな言葉で表現できていたのですが、今回からはディープな単語がバシバシ登場してしまいます。


小学生の時にファミリーベーシックに出会い、ソフトウェア(の考え方)を独学で、いつのまにか体得していたのです。

https://…/2010/02/23/ 電子少年 た~さまの自叙伝・第1回 ~小学生高学年の出会い~

しかし、自由に使えるメモリ空間が2キロバイト以下では、すぐに限界が訪れたのでした。

パソコンにグレードアップ

やりたいことがメモリの制約で実現できない! もっと広大なメモリ空間でアレコレ試してみたい!


というわけで、8ビットのプロセッサZ80(4MHz)を搭載したシャープ製X1-Gモデル30を購入したのです。
なぜこの機種にしたのかは、メモリ不足で苦しんでいた時代が長かったので、(8ビット機の限界である)64キロバイトをフルに使えるリニアなメモリ空間に惚れたのです。(例えばNEC製は半分の32キロバイトは(たしか)ROMだった・・・・)

f:id:vfr750f2:20100130191700j:plain f:id:vfr750f2:20100224223507j:plain
・収納ゾーンの奥に今も眠るシャープX1G ・久しぶりに引っ張り出してみました

5インチフロッピーディスクドライブを2台も搭載しているんですよ!!(←当時はすごい贅沢だった。)
初めて使ったときは、その読み込みの早さに『すげぇ~』と感動したものです。

f:id:vfr750f2:20100228125522j:plain
・データのロード/セーブはカセットテープの時代から、一気にフロッピー! それは感動しました。

より広大なメモリ空間で思う存分にBASIC言語でプログラムをしつつ、動作速度に不満が出てきて、禁断の機械語にも手を出し始めます
機械語って、タダの数字の羅列。コンピュータはこの当時のZ80でも、最近のCore2 Duoでも数字を命令として実行する仕掛けは変わっておらず、効率の良い数字の羅列を命令として与えると最高の実行速度が得られるのです。その数字を直接人間が書く『機械語』は最高のパフォーマンスを発揮する魅惑の言語なのです!

f:id:vfr750f2:20100130192140j:plain f:id:vfr750f2:20100130192141j:plain
・これで勉強しました"マシン語(=機械語)プログラミング入門" ・何度も何度も目を通しました

その数字の羅列を作成するのは大変難儀な作業・・・・こういう作業こそコンピュータがやればよく、世の中にはその面倒な作業をやってくれる『アセンブラ』というソフトウェアが存在しているのですが、そんなもの買える財力が無く、全てハンドアセンブル!(←手で数字を書く作業を、軽蔑をこめてこう言うのです。)
この本には"アセンブラ"の機械語ソースコードが付属しており、これを入力すればアセンブラが入手できる!と喜んで購入したものの、とてもじゃないけど打ち込める量ではなくて断念・・・・。

f:id:vfr750f2:20100225213520j:plain
・これが機械語のプログラム(=ソースコード)

ハンドアセンブルをバカにしてはいけませんよ・・・・。
この時点で『アセンブラ』がどのようなものなのか触ったことがなかったので知らないのですが、後年に触ることになる『アセンブラが自動でやるべき作業を全て手作業で実施』していたため、リロケータブルとか後年に出てくる概念なんて最初から体得している訳で、非常に楽が出来ました。

でも、バグが見つかって1バイトコードが増えたときなんて地獄ですよ・・・・。全部アドレス計算やり直し!

そして、機械語プログラミングを通じてデジタル的な考え方・・・・2進数の演算を理解し、そしてどんな複雑な計算も『0』と『1』の論理演算やらシフト演算で表現出来るんだと悟るのです。
AND演算、OR演算、XOR演算にシフト、ローテイト、IN命令やOUT命令で周辺チップと通信をする・・・・この概念を体得することが後につながることになります。


ちなみに、この時期の愛読書(?)は・・・・

  • マイコンBASICマガジン(通称:ベーマガ)
  • パソコンサンデー(テレビ東京で毎週日曜日の午前10時ぐらいからの30分番組 まだ録画したVHSビデオ持っていますよ~)

でした。


その当時は、今のようなOA、FA分野の実用プログラムなんて知らないので、作成するといえばもっぱらゲーム
時が進み例えば世の中に"テトリス"とか"コラムス"がはやった頃、ゲームセンターでその動きをジーッと見て解析し、そのまんま自分で作って遊んでいました(←だって~、ゲーム買う金は無いけど暇はあるからね。)し、今でこそクイズゲームとか当たり前でしたけど、中学のクラスのみんなに呼びかけてクイズ問題を作ってもらってひたすら入力し、4人同時プレイのクイズゲームなども作ってみんなで遊んでいました・・・・。(この当時ではとっても画期的な発想でした。)

f:id:vfr750f2:20100228125201j:plain f:id:vfr750f2:20100228125202j:plain
・当時流行ったテトリス ・コラムス
・これをジーッと見て自分で作りました。背景の絵は真っ黒でしたけどね・・・・

社会人になった今も、自宅の本棚には当時いろいろと考えたことをまとめてあったノートが大切に保管されています。


色々と浮かんだアイデアを書き留めたり、設計したことを書き留めたり・・・・。
さすがにゲームのプログラム1本をマシン語で仕上げるには、色々と広範囲に設計しなければならず、考えたことを紙に記録しておかないとどんどん忘れてしまう・・・・(そしてこんなことを中学生の頃から実践していた自分はなんだったんだ・・・・)

f:id:vfr750f2:20100909225127j:plain f:id:vfr750f2:20100909225128j:plain
・たーさま技術ノート(の一部) ・フロー図とかアセンブラソースコードとか・・・・

学校の勉強なんかそっちのけで、自分で考えたことを形にすることに熱中・・・・
これぐらいディープな話しになると、周辺にいる大人に聞いても誰一人として正解を知らず、今みたいにインターネットも無く・・・・、全ては自分で実験して答えを導き出すカットアンドトライ!


今読み返しても、当時に何を考えていたのか、よく分かります。当時は苦労すれば苦労するほど、自分の想像以上のアウトプットが出来上がり、一喜一憂していたのです。

f:id:vfr750f2:20100909225129j:plain
・自分で作ったコラムスのソースコードの一部。Z80の機械語です。懐かしいでしょ~

その頃、私の方向性が決まる出会いがありました。


つづく。

 このシリーズの日記で登場する出来事はすべて事実なのですが、時系列の検証がいい加減です。その辺りは目をつぶってお楽しみくださいませ。
https://…/2010/09/14/ 電子少年 た~さまの自叙伝・第3回 ~私にでもできるのでは(?)(?)~