働き出してから(その3)


BSDの利用するためのPC9801用端末ソフトは情報工学科の教員の一言と、僕の楽しそうっていうのだけで作ることになった。といっても、専門学校でそんなソフトの作り方を習ったわけではないので手探りでつくり始めることになる。基本設計としてはキーボードからの入力を受けて、これをRS232Cポートに出す。RS232Cからの入力があれば、CRTポートに出す。これを永久ループで回すという感じ。

 for(;;) {
  key = key_input();
  if (NULL != key ) rs232c_out(key);
  rs_data = rs232c_input();
 if (NULL != rs_data) crt_out(rs_data);


こんな感じだったような気がする。ちなみに処理系はTurbo-C Ver1.5だったと思う。DOSのRS232Cドライバだと9600bps以上になるとデータを取りこぼしたりしたので、BIOSをコールしたり、キーボードもBIOSを使わないとSTOPやCtl-Cでプログラムが強制終了してしまうので、こっちもBIOSを使ったりした。CRTの方はDOSのシステムコールを利用した。そのために、termcapファイルにDOSのエスケープシーケンスを登録した。日本語のコードの関係でJIS-7.Shift-JIS,EUCコードが来ても表示できるようにしたり、どのコードで送り出すか切り替えられるようにしたりした。

PC98は”`”が無いので、これをどれかのキーに代替えして、表示を”’”で青く表示するようにしたりもした。”`”がないとshell scriptでこまるしね。

その後、Tektronixのグラフィックターミナルのシーケンスをサポートする機能を追加したりしたんだけど、機能が足りなくってまともには使えなかった。ちゃんと使えるようにしたかったけど、hterm(確か東大の方がつくった物だったと記憶している)という僕が作ったのよりはるかにいいのが出てきたのでそれを使うようにしたので、自作のターミナルソフトはそのうち触らないようになった。

ちなみにデジタル電話回線は19200bpsまで対応していたので、僕のつくったターミナルソフトもこれに追従出来るようにはなっていたと思う。あ、ATコマンドを自動実行してソフトを起動すると自動的にVAX-11/785につながるようにもしたなー。

この時の漢字コード関係のルーチンを作った経験は後にいくつかのソフトを作るときに役に立った。一つはtinという電子ニュースリーダーがあったのだけど、これを日本語に対応させるための改造を行って、個人的に使っていた。その後、どこかの方が日本語tinを作っていたけど、個人的には自分で作ったものを使っていた。ちなみに、周りの人達はNEmacs上でGNUSを使っていた。
もうひとつはACOSというメインフレームがその時にセンターにはあったのだけど、ある教員がFACOMでつかっていたデータをACOSで使えるようにして欲しいとの以来があった。中身は、漢字コードのテキストデータだということだったので、DUMPしてみてどんなコードなのかを確認した。で、たしかEUCだったと思う。ACOSはシフトインのあとにJISをEBCDECにしたコードがきて、シフトアウトがくるという形式だった。ここまで分かればあとは簡単だった。ACOS上でC言語で感じの変換プログラムを書き、JCLを書いて、磁気テープからよみだしたデータを変換してHDに書きだすということをするだけだった。

まだまだ続く)
働き出してから(その2)

VAX-11/785ともう一つSony Tektronix 4404というAI Workstationも導入されていた。これはマニアックなせいかあまり使われなかった。これには、UniflexというUnixライクなOSがのっていた。オプションは”ー”ではなく”+”で付けるというのが面白かった。言語環境はC言語、Franz Lisp(商用版)、Smalltalk-80が載っていた。残念ながらあまり使われることはなかったと記憶している。もったいなかったなー。

VAX-11/785にはいよいよバークレーからBSD-UNIXが届いてインストールということになった。ただ、当初予定していた4.2ではなく、4.3だった。ライセンスの関係上Unix SYSTEM-Vのライセンスを取らないといけなかったので、これも、持っていた。でも、SYSTEM-Vを使うことはなかった。

届いたBSD-UNIXのパッケージには8inch 2Dのブートフロッピーと磁気テープ3本?、タイプセッタで印刷されていたマニュアル(綴じらておらず、ラップで巻かれていた)が入っていた。マニュアルは当然英語しかなかった(オーマイガッ!)。情報工学科の教員とマニュアルを読み始めた。僕はインストールマニュアル。英語なんかからっきしだったので正直まいった。それでも、なんとかかんとか読んでインストール。もうあまり覚えてないけど、ブートフロッピーからブートローダがメモリにロードされ、次に、テープからminirootをロードして実行し、これで、磁気テープからHDに書きこむというものだったと思う。HDのパーティションの割り方とは覚えてないけど、マニュアルに型番ごとのスライスの仕方が載っていたような気がする。(違ったかなー?)

4.3BSDは標準カーネルだと使用していたVAX-11/785に付いていたRS232C拡張ボードを認識してくれなかった。なので、カーネルを作り替える必要があった。マニュアルを見ながら割り込みアドレスをカーネルのコンフィギュレーション・ファイルに書きこんでリコンパイルとあるので、拡張ボードの割り込みアドレスを調べて試してみた。しかし、どうやっても認識しなかった。で、DECのエンジニアにお願いした。(もともとそういう契約だったみたい)すると、なんとVMSとUnixではアドレスの表記の仕方が違っていたらしい。そこまではわからなかった。で、無事にすべてのボードが認識された。

このころまだEthernetなどの構内ネットワークはなかった。なので、デジタル電話回線を利用してVAX-11/785と、その時には導入されていたACOS900というメインフレームを利用出来るようにした。これも入職前に決定していたらしい。ACOS900のターミナルソフトはNEC整のがありそれを利用してもらった。しかし、VAX(というかUnix用)のがなかった。で、ある先生がつくってみないかとおっしゃったので、楽しそうだったので作ってみることにしたw.

そして、まだまだ続く!
働き出してからのお話(その1)

ある大学に就職してそこの計算機センターというところで働き出した。1986年の事だった。その1で書いたようにコンピュータについては専門学校で触りだしたので正直まだまだ素人という域だったと思う。ただ、楽しいと感じていた時期でもあった。

まだできたての大学ということもあり計算機センターの職員と言っても僕ともう一人しかいなかった。で、コンピュータもまだなく、就職した年の夏になってDECのスーパーミニコンVAX-11/785とSony TektronixのAI Workstation 4404というのが入ってきた。僕はVAXの担当となった。これにはあとでBSD 4.2を載せる予定だと聞かされたが、導入時はVMSが載っていた。で、DECの日本支社(池袋のサンシャイン)に講習に行かされた。これは結構面白かった。

講習室にはVT100がズラーッとあってそこでいろいろなことを学んだ。もちろんオペレーションの仕方。プログラミング等。プログラミングはDEC-FORTRANで講習をうけたりした。で、VAX-FORTRANにはC言語のように構造体があって、それを使ってプログラミング(たぶんその時の講習では僕だけw)していたけど、どうしても構造体のあたりでコンパイルエラーがでて、上手くコンパイルできかかった。なので、講習してくれているオネイサンにきいたけど、結局原因はわからなかったw.その後、データトリーブといのもうけた。これは、DECのVAX用DataBaseでそれなりに面白かった。アセンブラの講習も受けたけど、ものすごい高機能なアセンブラで驚いたりもした。

講習が終わって大学にもどりVAXの運用を始めた。といっても、本命はBSD-UNIXなのでVMSの間は基本みんなのおもちゃw.VMSにはVAX-FORTRAN,VAX-LISPがのっていた。C言語もあったような気もするけど、記憶が定かでないw.FORTRANは数名の教員が使いたいと言ってやってきた。このVT220JというCRT端末が5台RS232Cケーブルで接続されていた。Jとつくけど、表示できるのはいわゆる半角カナだけ。ちなみにコンソールはDECWriterというTeleTypeターミナルで、CRTではなくプリンターにキーボードが付いたようなやつだった。(Unixつかいならわかるよねw)

このころ僕は日々のオペレーション意外に、VAXを使いたいという教員に対して使い方等を教えたり、時々やってくる見学の高校生にいろいろ説明したりしていた。で、一度見学に来た女子高生にVAX-LISPで階乗の計算プログラムを見せて、1000の階乗を実行させてみた。これは、こんな計算も数秒でできるよ!っていうのを見せたかったんだけど、結果として出てきた数字の羅列をみて、「気持ち悪い!」っていわれてがっくりした(爆笑)。

まだまだ、続きます。

参考:
VAX-11/785
http://ja.wikipedia.org/wiki/VAX

Sonytektronix 4404
http://www.youtube.com/watch?v=8yxCJfayW-8