TX-0 世界初のホビーマシン
目次
ハック!
ところで、MIT には…TMRCに限らず…以前から「ハック」という隠語がありました。
綿密に計画され、大胆に実行される…壮大ないたずらなどに使われる言葉です。
今でも行われている、こうした「ハック」は、Wired や MIT 150周年記念ページで見ることが出来ます。
TMRC では、鉄道模型を改良したりした際も「手際のよいハックだった」などと、この言葉を使用していました。
そして今、夜間に EAM に忍び込み、勝手に集計機をプログラムするのは、彼らにとって一番楽しいハックでした。
彼らはやがて集計機の使い方を完全にマスターし、次は IBM 704 をいじってみたい…と考えていました。
しかし、それは許されません。
プログラムの授業を受けているものでも、出来ることはパンチカードに穴をあけることどまりで、後の操作は IBM オペレーターに頼まなくてはならないのです。
教授を拝み倒したり、IBM のオペレーターと個人的に仲良くなったりして、やっと部屋に入れてもらえたものもいました。
しかし、そこでできることは、憧れの機械を目の前にして、ただ眺めているだけです。
やっとのことで「スタートボタン」を押させてもらえたものもいましたが、それが操作の限界でした。
ある時、教授の手伝いをしている一部の大学院生が、IBM 704 を直接いじることが許されたらしい。
そこで彼らが作ったものは、横一列に並んだパイロットランプを順次点灯させ、一番端が点灯した瞬間にボタンを押すと、点灯していく方向が逆になる、と言うプログラムだった。
非常に単純だが、正しいタイミングでボタンを押し続ける限り、光の点が行ったり来たりする、「卓球」ゲームだったらしい。
さて、そんな彼らに、「TX-0 を自由に触ってよい」という、夢のような話が舞い込んだのです。
もちろん彼らは引き受けました。約束はちゃんと守り、「利用者のいないときだけ」TX-0 を使用します。
そのために深夜にプログラムをしたり、本来の利用者が「こない」ことを期待して、一日中 TX-0 の近くで待っていたり…彼らの一日は、TX-0 を中心に回っていました。
彼らはものすごい勢いで TX-0 のプログラムを行います。
一応 TX-0 には、リンカーンラボで作られたアセンブラやデバッガがありましたが、学生たちはそれらよりも高機能なものを次々作り出しました。
誰かが作ったプログラムは、パンチテープの形で書類棚の引き出しに置かれています。それを別の誰かが改良することも自由でした。
みんなが次々に自分のアイディアを持ち寄り、新しいプログラムが付け加えられ、別の人間によって改良され、各種ツールはどんどん性能がよくなっていきます。
先に書いたように、TX-0 には opr という命令があり、ビットの指定により複数の命令を組み合わせた動作を実行できました。
学生たちの作ったアセンブラでは、この「ビットの組み合わせ」のうち、よく使うものにあらかじめ名前を付けてあり、普通の命令のように記述することが出来ました。
もう、「4つしか命令がない」ことを気にする必要はないのです。
さらにのちには、よく使う命令に限らず「自分が考えた組み合わせ」に名前を付ける機能や、複数行にわたる命令の組み合わせに名前を付け、すぐに呼び出せる機能まで持つようになりました。
(現代でいうところの、定数定義やマクロ定義です)
TX-0 では、必ずデータをメモリ上に用意する必要がありました。アキュムレータに 1 を足すだけでも、「1」と書いたメモリを準備し、そのアドレスを参照するようにプログラムを書かなくてはならないのです。
学生達が作ったアセンブラは、このような面倒も無くしていました。アキュムレータに 1 を足したいのであれば、 add (1 と書くだけでよいのです。
そうすると、自動的にアセンブラが空きメモリを見つけ、そこにデータを置いたうえで、そのアドレスを参照するように変換してくれます。
見た目はアセンブラのままですが、ちょっとした高級言語でした。
しかし、学生たちが一番楽しんだのは、このような「役立つ」プログラムではありませんでした。
この、自分が自由に使えるコンピューターで、いかに無駄なことをさせるかに心血を注いだのです。
たとえば、ある学生はTX-0を「計算機」として使うためのプログラムを作りました。
計算機だって当時は高価なものでしたが、計算機とコンピューターでは次元が違うものです。わざわざコンピューターを使って計算機の真似をさせるというのは、あまりにも無駄な利用方法でした。
また、別の学生は TX-0と、接続されたキーボードとプリンタを使って「ただのタイプライタ」にするプログラムを作り上げました。
これらのプログラムは「不経済計算機」「不経済タイプライタ」などと呼ばれ…今でいう「才能の無駄遣い」ですね。
そのばかばかしい利用法は学生の間で大人気だったのですが、多くの教授陣は理解を示さなかったようです。
多分、「不経済タイプライタ」で入力した文字が、紙にタイプされるだけでなく画面にも表示されたもの。
キーボードからタイプした文字が画面に表示される、というのは、当時ものすごいことだった。
ところで、フリッカーは動画撮影のために生じたもので、TX-0 のディスプレイがこんなに見にくかったわけではない。
教授たちが理解を示さなかったのは、それらのプログラムが単純に無価値だからです。
しかし、どんなプログラムであっても、バグを出さないように動かすには、それなりの能力が必要でした。
綿密に計画して、大胆に作り上げる。それがばかばかしいものであるほど、実行する価値がある。
プログラムを行うことは、MIT の伝統である「ハック」そのものでした。彼らはプログラム自体を楽しんだのです。出来上がったプログラムの価値なんて、問題ではありません。
また、少し違う「無駄な利用法」としては、コンピューターと三目ならべをする、迷路を作ってコンピューターに解かせる、などのプログラムもありました。
これらは最初期のテレビゲームのうちの一つとされています。
…ライトペンでタッチ操作しているところを出したかったので手も合成したのだが、いろいろ無理したので不自然になりました (^^;
最初は、ネズミは迷路の中を右往左往しながらチーズを探しますが、一度ゴールすると、2度目からは最短ルートでゴールまで進むようになります。
画面はもちろん動画より生成。左下の方にあるのがチーズ(ゴール)で、左上からネズミがスタートしたところ。
(重ね合わせたので、隣のマスにもいるように見える。本当は画面上にネズミは1匹で、マスを動いていく)
Tic-Tac-Toe と Mouse in Maze は、プログラムが残されていますのでTX-0エミュレータで遊ぶことが出来ます。