34年前のホビー機械

 私が例のシャープ株式会社(以下、シャープと略称します。)のニュースを知ったのは、奇しくもシャープ製14型ブラウン管テレビに映し出された映像からでした。2010年頃に、それまで30年近く観ていた私専用のカラーテレビに、市販の外付け地デジチューナーをつなぎました。それを今になっても、日常私は視聴しています。いまだに私は、あの薄型で大きな画面の液晶テレビをどの電器メーカーからも買っていないわけです。
 ブラウン管テレビの画面は、最近流行の液晶テレビのそれと比べると、例えば人間の顔の輪郭や肌がソフトに見えたり、少し横にふくれて見えます。また、画面の両端が、少し切れてしまっています。それでも、よく映っているので、今より画面の大きな液晶テレビに買い替えようとは思っていません。dボタンも無ければ、番組表も出て来ないですが、あまり不便を感じません。
 その14型ブラウン管テレビの前面には、その画面の中央下に、"SHARP"と銘打ってあります。そのように、高機能でも、飛びぬけて便利でもありません。普通にテレビの画面を観ているだけですが、買って30年近くなるのに、少しも飽(あ)きがきません。
 ところで、シャープと言えば、電卓の『エルシーメイト』が、私の若い頃には有名でした。その電卓は、当時のヒット商品の一つでした。『電卓』とは、『電子式卓上計算機』の略称です。
 ここで余談ですが、なぜ『電気式』でなくて『電子式』なのかという説明をしたいと思います。この機械は、その内部が数多くの電子部品で構成されていました。電子部品とは、ダイオードトランジスタコンデンサーや抵抗などのことです。微弱な電気信号のオン・オフを2進法の原理で並列処理(8本または16本の信号を同時に並列して処理します。)して、四則演算などの数値演算をするためにAND・OR・XOR・フリップフロップ回路を無数に組み合わせて、複雑な電気回路を構成しています。それらの回路を構成する電子パーツ(電子部品)のほとんどを、限りなく小型化かつ集積化(つまり、IC化して、さらにLSI化)したものを、電卓という機械のために使っていたわけです。電卓本体の中の、そうした無数の電子部品の固まりが、私たちの頭の代わりに、数値の計算をしてくれていたと言えます。
 こうした、いわゆる半導体チップと呼ばれるものが初めて使われた機械が、当時の電卓だったわけです。一方、現代は、家電をはじめとするあらゆる機械に半導体マイクロチップが組み込まれています。それが普通になってしまったので、電卓という機械が当時は画期的なものだったということが、なかなか理解できないかもしれません。電卓で実務的な計算ができることなんか、当たり前すぎて面白くも何ともないと、現在の私たちは、誰でもが思っているのかもしれません。21世紀の現代では、電卓が、誰でもが買いたくなるようなヒット商品の一つになるなどということは、全く考えられないことなのです。
 さらに、今から30数年前のあの頃には、21世紀の現代では失われてしまった、ある種の『夢』がありました。それが一体何だったのかを、現在の私たちは、誰でもが知りたいと思っているはずです。その『夢』は、ムダなものとして切り捨てられて、そのまま過去に埋没してしまったらしいのです。それを過去の記憶から掘り起こしてあげるには、それなりの努力を必要とすると考えられます。
 例えば、それは『人工知能』に対する思い一つとっても、今とは違かったと思います。『人工知能』をその名に恥じることのないものとして、立派なものに育てようとする気持ちが、人間の側にあったような気がします。結局、それは自己満足に終わってしまったかもしれませんが、そうした意識の上に、あの頃の私たちの『夢』は成り立っていたはずなのです。
 現代の私たちは、「機械が人にとって代わるもの」を『人工知能』と見ています。そのことに、私たちは明るい未来を期待して、そうなることを好意的に感じています。しかし一方、私たちは、その願望とは裏腹に、「『人工知能』が、私たち人間にとって代わって、私たち一人一人の職業および仕事を奪いはしまいか。」と危惧してもいます。
 さて、ここで冷静に考えてみてください。「『人工知能』が人間にとって代わる」ということは、コンピュータ自身が勝手に考えついたことではなくて、人間の誰かが考えたことです。このコンピュータ・システムの開発を推進しようとしている人間すなわちクライアントが、望んで期待している『夢』なのです。言い換えれば、そのようなコンピュータ・システムの開発を支援しているクライアントの、その要求にすぎません。つまり、「『人工知能』が、私たち人間にとって代わって、私たち一人一人の職業および仕事を奪おうとしている」のは、一見すると、知能を持ったコンピュータに責任があるかのように見えますが、本当の責任の所在は、そのようなシステムの開発を要求したクライアントにあるのです。
 これと似た例として、自動運転のできる自動車が交通事故を起こした場合が考えられます。これも一見すると、交通事故を起こした自動車が悪いと、その責任を機械に押しつけそうですが、全てを機械のせいにして済むとは考えられません。結局は、人間の誰かが責任を負わなければならなくなると考えられます。
 私たちの大半は、「現在人間に任されている職業や仕事の約半分は将来的に、人並みの知能を持ったコンピュータにとって代わられる。」と聞いて、そんな将来に不安を感じます。けれども、その研究と開発にお金を出しているクライアントの立場になってみると、それではすこぶる不満と言えましょう。費用対効果を考えてみても、「機械が人間にとって代わる」その達成率が100%に限りなく近くなければ納得がいかないのが、クライアントの本心と言えましょう。
 「いっそうのこと、人間にとって代わって、『人工知能』に世界を支配させたらいいじゃないか。」とSFまがいのことを、クライアントは要求するかもしれません。クライアントの思い通りに、『人工知能』で世界的に経済や政治や軍事を動かせたら、これほど大きな『夢』の達成とその成功は他に無いかもしれません。
 けれども、それこそ『夢の無い話』だと、私は思うのです。そこには、20世紀に考えられていた、それとは別の『夢』のかけらさえ感じられないからです。人間の作ったものとして、その名に恥じてしまうものならば、それは、いずれその存在価値を失います。
 基本的なことですが、コンピュータという機械は、人間が正しくコントロール(制御)できてこそ、使って意味のある機械であると言えます。21世紀に入って、どういうわけか人間は、結果を出すことを必要上に急ぐようになったと思われます。まるでコンピュータと競争でもしているかのように、社会では即戦力が求められて、即断即決と、即座に結果が求められることが、全ての成功に結びつくと考えられています。(それが全て良くないとは申しませんが)それにそぐわないものは、たとえ、それが私たちにとって大事な『夢』であっても、無用の長物(ちょうぶつ)として、捨て去られてしまうのです。よって、人間がコンピュータを正しくコントロール(制御)して使うことができなくなるような日々が来ることも、そう遠くはないのかもしれません。
 世の中がそうならないためにも、私は書いておきたいことがあります。今から30数年前のあの頃にあった、ある種の『夢』とはどういうものであったのかを、私は以下に具体的に述べておきたいと思います。
 私は、今から35年前に、文学部の学生だったくせに、電子計算機実習という授業(他の学部の公開講座)を1年間受講していました。たまたまその授業が毎週月曜日の6時限目にあったため、その授業が終わる時間が来ても、大学の計算機室に居残って、FORTRANのプログラムを機械に打ち込んでいました。そして、衣類のタンスの大きさほどもある計算機で実際にプログラムを動作させて、その計算結果を用紙にプリントさせたりして、実習をさせてもらっていました。
 そして、その1年間が終わってしまっても、私とコンピュータとの縁は切れませんでした。私は、東京大学でアルバイトをして貯めたお金で、ポケットコンピュータを自発的に買って、一人でプログラムを打ち込んで遊んでいました。ポケットコンピュータ(略してポケコン)をなぜ私は選んだのかと申しますと、当時私はパーソナルコンピュータ(略してパソコン)を買うだけのお金を持っていなかったからです。
 でも、そのことが私の大学生活を大きく変えるきっかけとなりました。私は、教科書やノートと一緒に、そのポケコンをカバンに入れて持ち歩いていました。大学の人気(ひとけ)の無いキャンパスで、授業時間の合間に、授業の予習・復習をする時以外は、ポケコンを取り出して、BASICで既に動いているゲームを好き勝手に改造して遊んでいました。34年前のポケコンは、現在の薄型ノートパソコンやスマートフォンと同じくらい軽いものでした。(ただし、それをやっていたからといって就職に有利だったわけでもなく、ガールフレンドもできませんでした。)
 後に、私はコンピュータのソフトウェアを開発する会社に就職しましたが、私が大学時代にポケコンをいじっていたのは、その就職や仕事に就くことが目的だったわけではありません。結果として、そうなったというだけのことでした。
 それでは、私の『夢』はどこにあったのかと申しますと、自ら機械に打ち込んだプログラムというものによって、そのポケコンを自動的に操作できることにあったのだと思います。つまり、コンピュータというもの(機械)を、私自身の思いのままにコントロール(制御)することによって、若い私は一種特別な快感をおぼえていたのです。
 シャープのポケットコンピュータそれ自体は、電卓やワープロのように一定の目的にしか使えない、いわゆる『専用機』ではありませんでした。むしろ、当時のコンピュータの共通の特徴、すなわち、『汎用性』というものを引き継いだ機械が、そのポケコンだったのです。つまり、シャープが、このポケコンを発売した当初は、「これは○○のために使う専用機械ですよ。」という説明がされていませんでした。汎用性があるから、実務(ビジネス)計算用にも、フィールドワーク用にも、ゲーム用にも、ホビー用にも、学生の教育用にも、アレにもコレにも、何にでも使えますよ、というような感じで売られていたと思います。結局、ポケコンを具体的に何に使うかは、それを買った人それぞれに任されていました。その機械を上手く使おうと、下手に使おうと、その責任は買った側の使い方に任されていたのです。それが、このポケコンという機械の最大の特徴だったのです。
 よって、現在私がそれを『ホビー機械』と呼んだのは、あくまでも私一人の意見にすぎないと言えましょう。あくまでも長い年月の結果として、私は、そのポケコンを『ホビー機械』として扱ってきたということにすぎません。別に、この機械を下に見て馬鹿にしているわけではありません。私の持っているポケコンPC−1500は、使われているCPUが、LH5801という型番の、シャープのオリジナルで開発された8ビット・マイクロチップです。そのチップに接続されている周辺コントロールLSIチップも、LH5810という型番の、シャープのオリジナルで開発されたものです。こうした自社開発による製品が、世間に出回るということは、かなりの技術力が当時のシャープにあったと言えましょう。
 私は、この電卓のお化けともいうべきPC−1500というポケコンを買う半年前に、PC−1210というポケコンも、アルバイトで貯めたお金で買っていました。しかし、そっちのポケコンは、開発途上の液晶装置に問題があったらしくて、今から15年くらい前に、液晶画面の内部で液漏れを起こしてしまい、全く使えなくなってしまいました。しかし、PC−1500のポケコンのほうは、単三乾電池4本を本体に差し込むと、今でもちゃんと動作してくれます。そこで、そのポケコンの英数字キーボタンを押して、以下の簡単なBASICのプログラムを入力してみました。

10:CLEAR :WAIT 15
30:GCURSOR 137:GPRINT "0000000018387E7E3C"
40:FOR I=1TO 128STEP 8
60:GCURSOR I
70:GPRINT "00000000000000000383838"
80:NEXT I
90:GOTO 30

 1行しかない液晶画面の左から右へ3×3ドットの大きさのボールが次々に移動して、画面の右端にしゃがみこんでいる人がボールを捕球している、というようなアニメーションをこのプログラムによって見ることができます。それを見ても、このポケコンという機械が、従来の電卓とは違う代物であることがわかると思います。
 つまり、この機械は、通常の電卓と同じような1行の液晶画面を持っていますが、それよりも横に長い液晶画面になっています。しかも、それは、電卓と同じような形状であるにもかかわらず、BASICプログラムの命令によってグラフィック・パターンを自在にコントロールすることが可能になっているのです。GPRINT命令とGCURSOR命令の組み合わせによって、液晶画面上の7×156ドットを1ドット単位でONまたはOFF指定して、自由にドットを表示することができるのです。
 また、WAIT命令によって、液晶画面に文字やドットを表示する命令(PRINT命令、GPRINT命令など)の表示実行スピードを0.1秒単位で変化させることができます。例えば、”WAIT 10”とすれば、前述の表示命令の実行直後に1秒のウェイト(あるいはインターバル)を入れて、次に来る表示命令の実行を遅らせることができます。または、”WAIT 0”をあらかじめ指定しておくと、最初の表示命令の指定が、次に来る表示命令の指定に従って上書きされてしまいやすくなります。液晶画面の表示は、CPUによるBASICプログラムの次の命令の実行を遅らせないと、残像現象が無くて見えづらいことがあります。そんな時には、このWAIT命令を入れて、液晶画面の表示を見やすくすることができるのです。
 なお、CURSOR命令やGCURSOR命令で、液晶画面に文字やドットの表示を始める位置をBASICのプログラムから指定することもできます。
 しかしながら、このようなプログラムでは、3×3ドットの四角いボールが左から右へ次々と流れていくだけで、その単純な動きを見ているだけで、すぐに飽きてしまいます。そこで、上のプログラムに若干の改造を試みてみました。

10:CLEAR :WAIT 10
20:DIM A$(2)*6,B$(2)*10
22:A$(0)="070707":A$(1)="1C1C1C":A$(2)="707070"
24:B$(0)="070C7F7F1C":B$(1)="18387E7E3C":B$(2)="70387E7E3C"
30:P=1
35:GCURSOR 137:GPRINT "00000000";B$(P)
40:FOR I=1TO 128STEP 8
50:N$=INKEY$
52:IF N$<>"Q" GOTO 56
54:IF P>0 LET P=P-1
56:IF N$<>"Z" GOTO 60
58:IF P<2 LET P=P+1
60:GCURSOR I
70:GPRINT "0000000000000000";A$(P)
75:GCURSOR 141:GPRINT B$(P)
80:NEXT I
90:GOTO 30

 主な改造点は、行番号の20番台と50番台の追加です。また、変数の新たな追加にあります。ポケコンPC−1500のBASICでは、あらかじめに定義することなく標準で用意されているAからZまでの26個の変数エリアがあります。それを数値の変数として使う場合は、AとかBとかIとかPとして、BASICのプログラムの中で使います。また、それを文字列の変数として使う場合は、A$とかB$とかN$として、$を付けた変数として、BASICのプログラムの中で使います。以上は、ポケコンPC−1210のBASICと共通な部分でしたが、それプラスのことがポケコンPC−1500のBASICではできました。26個の標準の変数エリアとは別に、DIM命令によって、(一次元または二次元の)配列変数を定義することができます。例えば、”DIM A$(2)*6”とすると、6文字分の文字列が格納できる、A$という名前の文字列変数が(2+1)個分の配列として、メモリ上に確保されます。A$(0)=”ABCDEF”とかA$(1)=”1C1C1C”という感じでBASICのプログラムの中で使えます。
 行番号の50番台を見てもらうとわかりますが、”N$=INKEY$”という命令文が使われています。それによって、ポケコンのキーボタンから、どのボタンが押されたかをチェックすることができるようになります。Qのボタンが押されていれば、INKEY$の命令実行時に、N$にQの文字コードが入ります。また、Zのボタンが押されていれば、INKEY$の命令実行時に、N$にZの文字コードが入ります。
 液晶画面上では、ボールが左から右に流れているように見えるため、そのボールの高さを左手の指で操作できるように、ポケコンの左端に近いQとZのボタンを選んでみました。Qのボタンは、ボールを高目に変化させるために使えるようにして、Zのボタンは、ボールを低目に変化させるために使えるようにしました。
 そのボールの高さによって、A$(0)(高目のボールのドット・パターン)とA$(1)(真ん中の高さのボールのドット・パターン)とA$(2)(低目のボールのドット・パターン)を、数値変数P(初期値は1)によって選択して、液晶画面上に表示できるようにしました。Qボタンが押されていれば、ボールの位置は高目に変化します。逆に、Zボタンが押されていれば、ボールの位置は低めに変化します。(行番号22と30と、50番台)
 ついでに、ボールの高さが変化するのに合わせて、画面の右端のボールを捕球する人のドット・パターンも変化するようにしてみました。ボールの高さに合わして、ボールをキャッチするのに適切なポーズを人がとっているように見えると思います。B$(0)、B$(1)、B$(2)のそれぞれの文字列変数の配列に、それぞれのボールの高さに合わせたキャッチャーのシルエットを表示させるためのドット・イメージを入れてみました。(行番号24と75)
 わかりにくかったと思いますが、このホビー機械で使うことのできる、BASICのプログラムを具体的な例によって説明を試みてみました。要は、こんな電卓まがいの機械でも、そこに内蔵されているBASICなどのコンピュータ・ソフトウェアによって、液晶画面や英数字キーボタンのコントロール(制御)が簡単にできてしまうということなのです。もっとも、私自身には、コンピュータ・システムの技術開発力があるとは、とても思えません。そうかと言って、ポケコンをビジネスで十分に使いこなしているとも、とてもじゃないけど言えません。つまり、私は、それらとは違う恩恵を、そのポケコンから与えられてきたと言えます。
 これは私の意見ですが、このシャープのポケットコンピュータにつきあえばつきあうほど、それを作ったシャープの技術者の、至高かつ孤高の技術開発力に近寄ることができないことを思い知らされます。おそらく、それは私が一生を賭けてもたどり着けないものなのでしょう。せめて、いくらか距離を置いてでもいいから、それにちょっとだけ軽く触れられるだけでも、幸せと思うべきなのかもしれません。
 私が、そのポケットコンピュータに抱いていた『夢』とは、この世に稼働しているほとんどのコンピュータ・システムが原理的には、そのようなポケコンと同じようなことができるということでした。当然のことですが、こうしたポケコンのような機械をインターネットにつないで、悪用するなどということはやってはいけないことです。そうではなくて、私が直接手に触れることのできるポケットコンピュータを、世の中に普及している数多くのコンピュータのひな形(モデル)の一つとして見ることができる、ということが大切だと思うのです。
 実際、このポケコンは、コンピュータと一般的に呼ばれる機械の、そのひな形(モデル化したもの)にすぎないと思います。その意味で、ポケコンにできることは限られているという見方もあると思います。しかし、それを上回るメリットもあると、私は思います。コンピュータという機械が、プログラムを組むことによってコントロール(制御)できるということを、実際にその機械をいじって経験できることこそ、人間にとっては大切だと私は思います。それを実現してくれる、つまり、『夢のある機械』の一つが、このポケットコンピュータだったと、私には思えるのです。