マイ・プロジェクトX 「リレー式電卓」
なかなかホームページ作りまでは手が回らなくて、とりあえずここは暫定です。文章は編集していません。思いつくまま
好き放題書き殴っています。ときどき修正しています。
2001年12月、私はリレー式電卓の「とりあえず足し算ができる」段階まで完成しました。使ったリレーは約800個です。
基板1枚にだいたい30個以下のリレーを実装して、基板は全部で36枚になりました。これをスチール棚5段に組み立てま
した。リレーの数が限られているので(お金があれば買い足すんですが)、4桁までしか計算できないし、小数点の処理は
無いし、わり算も省くつもりでおります。
あとは、引き算の問題点を修正するのと、かけ算機能を実装することです。リレーがあと200個しかないので、どうかなと
思います。できるだけ努力したいと思いますが、年越しになりそうです(このへん2001年12月初旬記す)。
なんで、これを作ろうと思ったのか。実際に「見てみたかった」のと、「欲しかった」からです。そして、「作ってみたかった」
からです。
後述しますが、昔のカシオのリレー式計算機に大きな影響を受けました。リレー式計算機って何?って、好奇心がわいて
きたものです。回路どうなってるんだろうとか、実際に動くところを見てみたいとか、興味はふくらむ一方でした。
余談ですが、私は中学生の頃、ある人からカシオの壊れたポケット電卓をもらいました。どうやら液晶の一部が割れてい
るようで、表示がおかしかったものです。くれた人は、壊れてるから捨ててもいいよと言っていました。
当時の自分がまずしたことは、その電卓の箱を梱包して、カシオに郵送して修理してもらうことでした。母親に、郵便局に
持っていってもらったのですが、「寸法が小さすぎる」との事で、発送できませんでした。タバコの箱ぐらいの大きさでした。
小さいのに一応、ヒモで縦横にしばっていて、なんだかかわいい小包でした(笑)。今なら大きい封筒に入れるとか、いろい
ろ考えるでしょうけど。なんて言ったらいいんだろう。ガキのささやかな願いの詰まったちっちゃい箱・・・。
でもよく考えたら、壊れているのは液晶だけのようです。これを交換すればいいんじゃないか。でもいくらするんだろう。
まさか5000円も1万円もしないだろう。ダメもとで・・・と、ヘタクソな字と文章で一生懸命に(自分で言うと変だが)カシオに
手紙を書き、液晶を分けてもらえませんかとお願いしました。すると数日後、エアパッキンにくるまれた液晶が送られてきて、
代金は確か¥1,400−だったと思います。確か後払いで、切手でもいいよと書いてあったと思います。
このときカシオ社内のどなたが対応して下さったのかわかりませんし、手元に何も残っていませんが、本当に感謝してい
ます。
そしておそるおそる電卓をバラし(精密ドライバーを持っていなかったので、カッターナイフの先を使ってネジを回しました)、
液晶を交換して再び組み立てました。すると・・・おお!!ちゃんと表示してる!!すごく感動しました。
その後も、ポケコン(PB−100とかPB−80)についての問い合わせなど、こんな中学生のガキのヘタクソな字のくだら
ん手紙に、カシオさんはそのつどきちんと回答を下さいました。
この電卓には時計とカレンダー機能があって、カレンダーモードにすると、+キーを押すたびにひと月ずつ未来へ進みまし
た。−キーでひと月ずつ過去に戻りました。なんとなくこのボタンを押しながら、表示される年月を見ていろいろ考えにふけっ
ていました。未来へ夢を、過去の思い出を。
自分の生まれた日、小学校に入った日、もう戻れない過去の日々。そして21世紀。この年この月この日、このとき自分は
何をしているんだろう、していたんだろうと・・・・・・。
名刺ぐらいの大きさで、薄っぺらくて、ボタンの押しにくい電卓でしたが・・・私に自信と、夢を与えてくれました。いまは使っ
ていませんし電池も入れていませんが、机の引き出しに大切にしまっています。
さて「リレー式電卓」とは何か。読んでそのまんまなんですが・・・わかりますか?
リレーって何かって?それはですね、一種のスイッチなんですね。小学校の理科で、釘にエナメル線を巻いて、電池をつな
いで、砂鉄やらクリップやらくっつけて遊んだことあるでしょう。これを「電磁石」といいます。
それと接点を組み合わせて一体にしたものがリレーで、電磁石に電流を流すと、接点がくっつく仕掛けになってるわけです。
説明図を次に示します。
リレーの電磁石に電流を流すことを励磁(れいじ)といいます。励磁したときに閉じる接点をA接点、反対に、
開く接点をB接点といいます。メーク接点、ブレーク接点ともいいます。コモン(共通端子)があって、AとB接点が
組になってるのをトランスファ接点といいます。トランスファ接点を使えば、正論理と負論理の信号が同時に得られる
という利点があるって書いてもわかってもらえるかなあ。基本だけど。それとマルチプレクサを作るときに信号の
切り替えが便利なんだな。ICのマルチプレクサと違って、リレーは接点だから双方向で使える。
2つのうちどっちかを選ぶという使い方のほかに、1つの信号をどっちに送るかという使い方もできる。
論理設計と回路設計の違いについて。マルチプレクサを論理回路で表現すれば、複数の入力をANDで選択して
ビットごとにORして出力する形になるが、もちろんリレー回路をそのように組むこともできる。しかしもっと簡単に
できる方法がある。それがトランスファ接点で切り替える方法。1ビットあたりリレー1個で済む。これが論理設計と
回路設計の違いを示す一例である。
回路が複雑だろうと単純だろうと、入力に対する出力が同じであれば、回路が単純なほうがいろんな点で有利になる。
部品点数が減らせるしスピードも速くなる。消費電力も少ない。
真空管でもトランジスタでもIC・LSIでも、スイッチング素子の違いだけで、原理的には全てスイッチの組み合わせ
で論理回路が構成されます。
もうモデムを使っていない人もいるでしょうけど、ダイヤルするとき(パルスダイヤルの人も少数派なのかなあ)
ブツッ、ブツツツツツ、ブツツツ、なんて音をたてるモデムがあったでしょ。あれはリレーで電話回線の直流ループ
を断続することで、ダイヤルパルスを送ってるんですね。電話工事のオッサンが、電柱にのぼってインカムみたい
なものを使ってますが、あれで電話をかけるときは、フックボタンを、ダイヤルパルスの「規格を意識しながら」、指で
チョンチョンチョンと押すというテクを使います。なんかすごいですね。そんな事しなくてもIC1個でできるじゃんとか
言いたいですね。まあ試験台の番号が単純な番号だから、それでいいんでしょうな。チョンチョンチョンだから、
番号はだいたい想像つくでしょう。いたずらするなよ。
自分の電話回線が混線した時に、TEの人が調べに来たんだが、そのとき、さっきの受話器をみの虫クリップで回線に
つないでテストしていた。こんなふうにやるんだな(ニヤリ)。結局、現象再現せずで、しょうがないからそのまま帰られた。
私は当時、毎日明け方にタイマーでパソコンを立ち上げて、パソコン通信のオートパイロットを走らせるようにしていたの
だが、またその夜(明け方)モデムが変な音をたてて、目が覚めてしまった。モデムがオフフックすると、ガサガサッとか、
いきなりツー、ツー、ツーと話中音がしていた。他の回線の通話音も聞こえていた。それでモデムが発信できずに、何度も
何度も変な音をたてていた。
眠くて頭に来たから、朝4時に故障係に電話して、今度こそは絶対つきとめろと命令した。昼、うちの前に電話工事のクレ
ーンがきて、線をいじっていた様子だった。そしたら電話がかかってきて、故障個所がわかりましたので、との事。目の前の
電柱に登っている人からの直通電話だ。なんかうれしかった。おーい(笑)。
さてリレーのOFF/ONをそれぞれ2進法の0、1に対応させれば、論理回路を作る事ができます。接点を直列に
つないでいけばAND(論理積)だし、並列にすればOR(論理和)になります。B接点を使えばNOT(論理否定)
ですね。実際には信号が逆流しないようにとか、遅延などを考えながら組んでいくんですが、簡単にいうとこれだけ
です。
記憶はどうするかというと、「自己保持(セルフホールド)回路」を使います。簡単に言うと、自分の接点がONする
と、自分のコイルに電流が流れるようにつないであるので、ON状態を維持するわけです。OFFにするのは、また
別のリレーからB接点をもってきて、このループを切断するようにつなぎこみます。
で、いきなり話が飛躍しますが、このリレーを配線していけば、コンピュータを作る事も、理論的には可能な
訳です。理論的にというか、過去には存在していました。現実問題として、コストとか、この時代にそこまでやる意味が
全くないとか、そんな事やってる暇ないとか色々ありますけど。
いまは電卓なんか、100円ショップで売ってますからね〜。最初信じられなかったですよ。まあ、値段相応に、
おもちゃっぽい奴だろうと思っていたら、キータッチもいい感じの奴があって驚いてしまいました。ちゃんと電池も
入って100円だからすごいよねえ。「こた〜え〜いっぱつ〜カシオミニ」なんて歌ってる場合じゃないですねえ。
年がバレますよね。あのころはカシオミニ¥12,800−だったのかな、たしか。
しかし電卓が欲しくてリレー式電卓を作ろうと思ったんじゃないんだ。それに買わなくても、家には電卓なんか
いくつも転がっている。
そういえば昔、オムロンの電卓が家にあったが、これは変な奴だった。+、−、=は単独のボタンじゃなくて、
+=(本当は縦に並んでいるのだが)とか−=というボタンになっていた。1−100=と操作したら−101と出た。
使い方は結局分からずじまいだった。誰か使い方の分かる方いませんか。
本をみると、かつて真空管やリレーでコンピュータを作った時代がありました。パラメトロンとかトランジスタもありました。
さすがアメリカ、「物量にものをいわせて強引に」、ENIACというコンピュータを作りました。これは真空管を18000本も
使っていました。いっぽう日本は資材がなくて、戦争末期は木の歯車で計算機を作って、大砲の弾道計算をしていたよう
です。これじゃ戦争に負けますよね。
日本はというと、戦前から取り組んでおられた方もいました。しかし本格的には戦後で、カシオの最初の計算機14A型(電
卓の元祖)がリレー式でした。また富士通は電卓とは違う路線、大形コンピュータとして、リレー式計算機を作りました。
この会社はもともと電話交換機メーカーですから、他社が真空管やトランジスタなどで苦労している中、あえて使い慣れた
リレーで、成功したんですね。
もちろん、そのころはWindowsなんかないですよ。いまの子供は、コンピュータ=Windowsと思ってるんじゃなかろうな。
もしそうだったら、おそろしいことだなあ。
以前、DOSマシンを、「これWindowsが動かないんですよ」と説明したら、「壊れてるんですか」なんて言われて、感覚
の違いにびっくりしたことがありました。
あー、思い出した。なんかむかつくよなあ。くそったれー。壊れてるなんて言うなよなー。あのなあ、むかしはなあ(オッサ
ンモード)、フロッピー1枚でワープロ動かして仕様書作ったりしてたんだぞお。ん?フロッピーは文書ファイルだけだろうって、
甘い甘い。DOSに一太郎3にATOKまで1枚に入ったのだ。文書はもう1枚のフロッピーに入れたけどね。そうBドライブだ。
うーん、フロッピー1枚にアセンブラ、テキストエディタ、通信ソフトを入れて、マイコンの開発環境として重宝していたっけな。
RAMディスクつくっとけばアセンブルも早かったし。しかし電源落とすときにフロッピーにコピーするのを忘れていて泣いた
よな。これでも、ほんの10年ぐらい前の話ですよ。
その前は、MZ−2000という8ビットのパソコンで、CPUは4MHzのZ80Aだった。4メガですよ4メガ。ギガヘルツじゃ
ないですよ。RAMなんか64KBでした。64MBじゃないですよ。当然ハードディスクなんかありません。1枚320KBの2D
(2HDではない)のフロッピー2枚でワープロを動かしてました。
ワープロソフトは、いまは無きキャリーラボのJETというやつ。
漢字を入力するには、まずF1を押して、読みを入力する。そうすると候補が出てくるので選ぶ。そのたびにフロッピーが、
ガガッ、ガガッと読みに行っていた。このソフトは独自の制御をしているらしく、起動の途中からディスクアクセス音が違って
いた。他のBASICなんかを起動するときは、カッ、カッ、カッ・・・と読みに行っていたが、JETの場合、起動の途中まで同じ
だが、ある時点から、ガガッ、ガーッ、と急に音が高くなってアクセスが速くなった。ディスクI/Oを極限チューニングしてい
るに違いない。
それとサウンドチップなんか無くて、1ビットのポートをON/OFFして音を出すカラクリだったが、同じくキャリーラボのゲー
ムで、和音が出るやつを持っていた(すでにテープが読めない状態で、動かす事はできないが)。1ビットで和音を出すテクは、
時間をずらして複数の音を順番に出力するんだったかな。私の相棒が、ポケコンでやっていたのを見たような気がする。
ちなみに、このパソコン一式は現在も実家にあり、つい最近電源を入れたら正常に動作していた。さすがにプリンタMZ−1P
07はインクリボンが無いので廃棄した。これは2台目で、1台目は印字中にヘッドから煙を吹いて止まった。
すごいと言えば、専門学校のときの担任が、PC88用「レッドウィング」の作者BANで、これで賞金50万を獲得した人だった。
昔の(10年以上前)I/Oをみると毎月、広告に載っている。PC88は、メインと、ディスク用と2つのCPUを積んでいた。本来
ディスク制御用として備わっているCPUだが、プログラムを実行する事もできた。このゲームは2つのCPUを巧みに操って
処理していた。この先生は、1年で辞めてしまって、今はどこにいるのかわからないが、当時Z80のプログラミング技法などを、
授業とは別に教わったりして本当にお世話になった。
当時の「レッドウィング」の広告:
ところで、何が言いたいかというと、コンピュータの本質ってものを教えていかねばならんと思う、ということです。簡単に
言えば。
基本的に、データの移動と加工でしかないのです。しょせん単純な機械なんです。
とにかく私は、テレビで、カシオのリレー電卓が動くのを見て感動したわけですよ。フタをあけて、中にズラッと並んだリレー
が見える状態で、動かしているシーンを見たんです。まあすごい。カシャカシャカシャ・・・って、騒々しく華々しくリレーの
集団が必死で?答えを求めてるわけです。
この動きは、リレーというメカ的な部品だから見られるわけで、純粋な電子回路だと真空管でもトランジスタでもICでも
基本的には音もなく動作するわけです。リレーだからこその特徴であります。
なんていったらいいんだろう、うーん、単純に、見て面白いじゃないですか! すごいですよ、あんなにたくさんのリレーが、
ワシャワシャワシャワシャ動いて、計算するんだから。「いかにも計算している」ふうに見えるじゃないですか。すごいですよ。
で、私は「こんなの欲しいなあ。直接見てみたいなあ」と、心の底から思いました。そして、探求が始まりました。もう10年
以上前のことです。
リレー演算回路に、数値を入力すると、多数のリレーが、ガシャガシャと動くカオス状態があり、ある信号に対してその結果
でまた別のリレーが動く。その結果でまた別のリレーが動く。こうして、安定を求めて動く。そして安定状態になり静寂が訪れる。
まるで、大勢の人間がゴチャゴチャと入り乱れたかと思うと、ピシャッと整列して、人文字を作っているかのようだ。
なんでリレーってこんなに面白いんだろう。ドミノ倒しを面白いと思う感覚と同じかなって思う。小さな努力をコツコツ積み上げ
て一気にパーッとカラクリが、すべてがうまく動いてゴールする。米粒をたくさん集めて食う農耕民族ならではの感覚か?
リレー計算機を作りたいという気持ちは、高校生の頃からありました。しかし予算的なことなど、なかなか前進することができま
せんでした。AND、OR、NOT、EXORのサンプル回路(リレー計4個)を作って、先生に見せるぐらいしかできませんでした。
実習で、リレーシーケンス回路をやったのが興味をもったきっかけかもしれません。100V用のでかいリレーをいろいろつないで
課題を実験していくわけですが、ボタンを押すとランプがついたり消えたり、リレーがカチカチ鳴って面白いと思いました。それと、
島原図書館にあった(最近、図書館の端末で調べたら無いと表示されたのだが・・・紛失したのか?)、「考える一族」(カシオ
4兄弟の物語)を読んだ事も興味をもったきっかけだと思う。
参考: 「考える一族 〜カシオ四兄弟・先端技術の航跡〜」 内橋克人著 新潮社 ISBN4-10-356501-2
C0023 \1100E
すでに絶版です。高校生の頃は島原図書館にあったが現在は無い。誰が紛失したんだ〜!!ちくしょー!!
これは、何年も探し求めて、最近やっとの思いで古本屋で見つけたものです。
これも見て下さい。「21世紀の創造主たち SONY&CASIOストーリー」(根本哲也著、脚本・高橋美幸、集英社)
何でこの本を知ったかというと、「計算機屋かく戦えり」(遠藤諭著、アスキー)の参考文献ページです。これ面白そう、欲
しいと思いました。やはり古本屋を探し回って、やっとというか、偶然見つけました。何軒回っても無いので、半分あきらめて
いました。
実家は、本屋もない町だから、面白い本は売ってないし手に入らなくて当たり前という感覚なのであきらめてしまうんですね。
島原市まで行けば本屋はありますが、やはり量が少ないし専門的なものはありません。雑誌と参考書ぐらいかなという感じ
です。
ついでに言うと、島原の大手家電店には、パソコンのソフトは有りません。パソコンや周辺機器は売っていますが、ソフトは
「取り寄せ」だそうです。店員からその言葉を聞いたとき、こういうのをカルチャーショックというのかなと、思いました。
ちょうどウィルス(バッドトランス)が流行していた頃で、対策ソフトを買いに行った時の事でした。建物は立派だしスペースも
あるしウィルスが流行しているから宣伝すれば売れるのにと思いました。
一説によれば、島原の人はソフトを買わないでコピーしているから、店に置いてないそうです(笑)。まあ、これは冗談ですよ。
小さい店には少しですが置いているところもあります。
リレーではなくてLSIの電卓ですが、カシオのfx−101という電卓を持っています。緑色に光る、蛍光表示管のやつです。
これはなかなか面白い動きをします。演算しているのが、表示のチラチラでわかるんですね。
数字を入れてsinなどを押すと、表示がパラパラパラパラパララララ・・・パッと変化して、だいたいひと呼吸ぐらいの時間です
かね、それから答えが出るんです。面白いのでわざわざこれを使っていました。
もともとは、ゴミ捨て場から拾ってきたものです。たぶん単3電池のおさえバネが少しサビていて接触が悪く電源が入らな
かったから壊れてると思って捨てたんでしょうね。こんなに面白いのに、もったいないですね。
ちなみにこの電卓は、「新・電子立国」のNC工作機械の回で出てきたと思います。むかしは作業員が図面をにらんで計算
しながらプログラムを作っていたそうですが、その再現シーンでこの電卓がでてきて活躍していたのでびっくりしました。表示の
パラパラパラパラ・・・も見られますよ。NHKって濃いよな。
テレビ番組は、NHKの「電子立国日本の自叙伝」で、電卓戦争の回だったと思う。「なんでスイッチで計算ができるんで
すか」と2人の出演者が悩んでいた様子。ついに来るものがきたという感じ。私は内心、ふふっ、オッサンには理解できん
かなと思っていた(こらこら)。そしてカシオのリレー計算機が次のシーンで出てきたわけだ。長い桁数のわり算をやってい
たが、延々とカシャカシャ・・・と狂ったように動き続けて最後に答えがカシャ、と出て止まった。これを見た2人は、はあー、
壮観でしたねえー、と。
ちなみに、カシオには現存せず、文具資料館に実働機があるらしい(東京浅草橋・日本文具博物館というようです)。
それ以前に、内橋克人の「考える一族」(カシオ4兄弟の物語)を図書館で読んでいて、こういうものが存在することは知って
いた。でも動いているところを見られるなんて感激だ。うおー!!
小学生の頃は、電卓って不思議だなあと思っていました。これで算数の宿題が早く片づくし(こら)、いったい中はどんな
仕組みになってるんだろうと思いました。オヤジはクソ真面目な人で、「子供は電卓を使ってはイカン」と、電卓を取り上げら
れてしまいました。でもそうやって規制されると、ますます興味が強くなってきました。火遊びするなと言われると火遊びした
くなるようなもんです。
最初は、「プログラミングというのは、あらゆる計算の組み合わせとその答えを記憶させることだ」と思いこんでいました。
すなわち、0+0=0、0+1=1、・・・、1+1=2、1+2=3・・・99999999+99999999=(略)のように、全ての計算
式と答えが入っていて、それを引き出してきているのだと考えていました。ある意味では正しいのですが。表から必要な定
数を引いてきて演算速度を上げるという処理もありますからね。初期のペンティアムでわり算のバグがありましたがこれは
表を利用していて、その表に問題がありました。
その頃みたテレビで、電卓の製造工場が紹介されていました。いま思えばあれは検査機械でしたが、棒が自動的に動い
て、ボタンを押していました。そのとき私は、これがプログラミングだと思いました。こうやって計算式と答えを覚え込ませて
るんだなあと。
それなら何か特別な操作で(隠しコマンド?)、その記憶をさせる方法があるんじゃないかと思いつき、ばあちゃん所有の
蛍光表示管のキヤノン電卓でボタンをいろいろ押しまくって試行錯誤を始めました。うまくいけば、1+1=100とか、デタラ
メな事もできるんじゃないかというたくらみです。そうしたら、ある押し方の組み合わせで、奇妙な表示になることを発見しま
した。ゲーム電卓はご存じでしょうか。UFOは、コの字を下に向けたような形でしたよね。おおっ、UFO出現だと喜んでいま
した。また、別の組み合わせでは、表示の文字が違う形になったり、通常ありえない形(6が裏返ったような形とか)とか、
空白の桁に数字が表示されたりしました。私は、この組み合わせを探索したものをメモして喜んでいました。
これも今はわかってるんですが、テンキーのスキャン信号と、表示のスキャン信号を共用しているから、ボタンの組み合わ
せによっては、その信号がショートするので、表示が変になるんですね。
結局、1+1=100にすることはできず極秘プロジェクトは玉砕、計算の原理は高校生になるまで知りませんでした。
クロスバー式電話交換機も、見ていて面白かった。たまたま学校に、教材として昔のPBX(構内交換機)が置いてあった
んだが、ジーコジーコとダイヤルを回し電話をかけると、ダイヤルに連動してリレーがカタカタ動いて、次にクロスバーがククッ
と動いて、で、また別のリレーがカチカチカチと、たぶんリング信号を送ってるんだと思うが、そうして相手の電話が鳴るわけ
だ。「もしもーし」。信号が伝わってる様子が目に見えて、たいへん興味深かった。見ていてすごく楽しいカラクリだった。
でも電話機をつなごうとして何度もショートしてしまい、ヒューズを何本も飛ばしてしまったっけ。切れたのが窓が白くなって
わかるプラグインタイプね。中がバネじかけになってて、ヒューズが切れると窓が白くなる。先生ごめんなさい。ヒューズの代わ
りに、裸線でつないで、何事もなかったように、こっそり元に戻してしまいました。
手元に「クロスバ基本回路(電気通信協会発行)」という昭和38年の本がある。10年前、古本屋で¥350−だった。これを
読むと、クロスバ交換機は、リレー(といっても何種類も使い分けていたようだ)に抵抗やコンデンサを巧みに組み合わせて
作られていたのがわかる。たとえばコンデンサに高い電圧を充電しておき、これによりリレーを通常より高速で立ち上げたり
した。抵抗は、遅延回路のほか、保護用にも使われていた。交換機の配線を、保守または工事中に誤って「地気」にしてしまう
事がある。それで接点が熔着してしまう事故を防ぐために、抵抗が挿入されていた。
まだシリコンダイオードは一般的でなく、「セレン整流器」がよく使われていた様子である。セレンのほうが価格が安いが
将来的にはシリコンダイオードが安くなって多く使われることになろうと書いてある。時代を感じさせるなあ・・・。
クロスバは注油さえ行えば40年は使えるとあった。なにしろ交換機の心臓部だから大事な部品だ。クロスバ接点と外部の
接点を直列にして保護していた。というのは、まずクロスバ接点を閉じてから、外部の接点を閉じるようにした。また開くときは、
外部の接点を開いてから、クロスバ接点を開くようにしていた。つまりクロスバ接点で火花が飛んで、消耗するのを防ぐわけだ。
同じような事は屋内配線のブレーカーでも言えるだろう。ブレーカーを落とすときは、まず、分岐回路のほうからひとつずつ
落とすべきだ。メインのスイッチを切るとき、全部の回路の電流が集中するから、火花が大きくなり接点が消耗する。分岐回路
を全部落としてからだと、電流は流れていないから接点は無傷だ。
逆に、電源を入れるときも、分岐回路を全部落としておいてから、まずメインを入れ、漏電ブレーカーを入れ、分岐回路をひとつ
ずつ入れていく。もし分岐回路に問題があれば、そこでブレーカーが落ちるから故障が判断できる。
デコーダ回路は、「選出回路」という名称だった。マイコンのアドレスデコーダでは、おおざっぱにデコードして回路を簡略化
する事があるが、このリレー回路でも同様に、必要なデコードだけにしぼって、リレーの個数を節約する方法が紹介されている。
「閉塞回路」とは、たぶんインターロック回路のことだと思う。優先順位の付け方もあった。
「計数回路」はカウンターであろう。いかにして最小限にリレーで確実な動作をさせるかというのがポイントのようである。
「変換回路」のページには、2−5進組み合わせ符号があった。ソロバンの5つ玉と同じであると述べてある。2−5進符号は
ソロバンと同じであるため、非常に簡単に加算回路を作る事ができるので計算機に使用されている、ともあった。
「蓄積回路」はレジスタの事であろう。「入ってくる情報によって状態が変化するものは全て蓄積素子として使用しうる」、という
書き出しだ。なにか達観した先人の知恵が伺いしれる?
「確認回路」は、誤り検出つまりパリティチェックとかを意味していると思う。自己保持の確認や、回路動作の完了の確認方法
などがあった。交換機はノンストップでなければならないので、障害発生をできるだけ少なくなるように配慮されているようだ。
ついでに、課金の仕組みはどうなってるんだろうという基本的な疑問があったが、この本を読んでもピンとこなかった。この本、
全体的に難しすぎるよー。
「クロスバ基本回路」 福富礼次郎/城水元次郎著 電気通信協会発行 昭和38年3月20日 ¥700
昔にさかのぼれば、子供の頃住んでいた家は、島原鉄道の駅前にあった。すぐ見えるところに大人の背丈ぐらいの金属の
箱が2つか3つか立っていて、こいつがカチカチカチカチ、四六時中、音をたてていたのだ。たぶん信号の制御装置だと思うが、
私は、この音に聞き惚れていたものだった。
銀色に塗られたその金属の箱は、幼い私にとって、巨大であり、かつ、不思議な興味深い存在であった。
たまに島鉄のメンテの人たちがやってきて、その金属の箱をあけるときは、中身にくぎづけになった。ハッキリとは覚えて
いないが、バッテリーらしき物とか、色々なメカが詰まっていたと思う。最高に興味をそそられる存在だった。もっとも、メンテの
オッサンたちにとっては、なんだこのガキ、危ないぞ邪魔だ、あっち行ってろぐらいしか思われなかっただろうなあ。
なんで列車が近づくと踏切の警報が鳴り出すのか疑問だった。それで小学校3年の頃だったか、2本の線路を電線でショート
させてみた。列車が近づくと線路がショートするのでわかるんだろうと仮定したため。しかし何も起きなかった。
私の住んでいた田舎町には、1977年頃まで、農村電話が各家庭にあった。電話番号なんか2桁か3桁だったと思う。うちの
は、ばあちゃんが商売をしていたためか、ちょっと高級な?、ハンドル付き「磁石式」とかいう奴だった。「悪ガキ」がいたずら
しないように、高いところに置いてあった。これを狙っていたので、私は身長が伸びたと思う。
農家には、スピーカーが内蔵された電話があった(ダイヤルなんか付いてない)。フックボタンの片方は赤くなっていて、
これを指で深く押すと緊急通話になるらしい。火災報知器のボタンと同様、押してみたくてたまらなかった。電話はNEC製だっ
た。古いロゴのやつね(ウェスタンエレクトリックのロゴのパクリ。というか、最初の頃は資本が入っていたためか?)。
このフック部分は、裏蓋をあけてネジをゆるめると、クルッと方向を変えて取り付ける事ができた。つまり壁掛けにも対応できる。
裏蓋は、厚紙というか、紙を圧縮して固めたような板だった。
スピーカーからは、昼になると音楽や放送が流れていた。たぶん農協が管理運営していたと思う。こうやってデンパでみんなを
洗脳していたわけだ(をいをい)。その回路はオイルコンデンサ経由でスピーカーとボリュームが回線に接続されており、受話器
オンフックで回線に流されている放送を聞くことができる仕掛けだ。フックスイッチでスピーカーの切り替えをしていたと思う。
オイルコンデンサは白いセトモノで、不要になった電話をばらしたとき、コンクリートに叩きつけて遊んでいた。中からベトベト
したオイルが出た。いま思い出して怖くなったが、PCBが入っていたかもしれない?
電話機の中身は大したことなかった。スピーカー以外はあまり利用価値がなさそうだった。ボリュームはガリっていた。ハイブ
リッドトランスらしき物と、NEC製のゲルマダイオードが入っていた。
受話器と送話器をとりはずして、これを直列に接続し、電池をつなぐと、音は小さいがメガホンみたいなシロモノができた。
アンプ無しでスピーカーが鳴ったわけだ。こんなふうにして、部品をとっていろいろ遊んでいた。
さて電話のハンドルをグリグリ回すと発電して、交換台を呼び出す。これを勘違いしている奴がいて、電話番号の数だけ回す
とか言っていた。警察なら110回まわすって。バカか〜。
スピーカータイプは、受話器をあげれば交換台が出る仕組みだったかと思う。
その交換台は、町の公民館に保存されていて、たまに行ったときにいじって遊んでいた。電話番号に対応するフダがたくさん
並んでいて、呼び出しがあるとそのロックがはずれてパタッ、とフダが開くわけだ。それで交換手が「何番におつなぎですかー」と
聞いて、相手を呼びだした後、通話する人同士のジャックにコードをつっこんで接続する。
それにしても通話が終わったなんてどうやって判断したんだろうね。一説によれば、交換手がたまにモニタ(傍受)して、通話
してなかったらコードを抜いて切断したらしい。なんてアバウトなんだ。田舎だから交換手も意外と知り合いだったりするんじゃ
ないか。プライバシーも何もない。そういえば表示ランプがあったから、それを見てオンフックされたかどうか確認していたかも
しれない。
あと、畑の真ん中に電柱がたっていて、スピーカーが取り付けられていた。これも農村電話のシステムの一部だった。たしか、
農作業している人を呼び出すのではなかったか。このスピーカーで「○○○さ〜んお電話ですよ〜」なんて呼び出していたんだ
ろうか。交換手が気を利かせて、彼女からよ〜とか言ったりしなかっただろうな。
小学校に入る前ぐらいに、この農村電話は撤去された。当時の電話帳をひそかに隠していたのだが、いつの間にか親が捨て
ていた模様。現存すればかなりマニアックなブツだと思う。古い家には、いまでも当時の名残の電話番号のフダを見ることができ
る。すりきれたアルミの銘板だったかと思う。電話番号は、自動交換に移行した際、番号が引き継がれたようだ。桁数が違うが、
310番だったとしたら、2310番というふうに。
そういえば最初の頃は、市内局番不要だった。いまはXX−YYYYとするが、当時はYYYYだけでよかった。XXが追加になった
時は、面倒くさかった。
そしてクロスバの頃は、受話器をあげてもすぐには「ツー」とはならなかったよね。1秒ぐらいしてから、ツーと聞こえた。そういえ
ば、公衆電話のダイヤルの真ん中に張り紙がなかったか?ツーと音がしてからダイヤルしなさいって。
ダイヤルすると、微妙なタイミングでミスったとき(とくにモデムのパルスダイヤル20PPS)、でかい声で「あなたがおかけになっ
た電話番号は・・・」とガンガン言うので難聴になるかと思った。そんなにでかい声で言わなくても聞こえてるよ。
これは最初、人がいちいち対応していると思いこんでいたので、悪ガキだった私は、その人を笑わせようと思っていろいろ下品な
ギャグで挑戦したものだ。エンドレステープとか、デジタル録音、音声合成という概念が当時私にはなかったのでしょうがない。
なんで人が対応していると思ったかというと、町内の電話交換局の入り口のところに、ラーメンのドンブリがあったからだ。それに
トイレも備えてあったから、この中に人がいて、24時間待機してるんだろうなと思ったのだ(じつは関係者が工事や点検の時に
たまたま出前をとっただけだと思うが)。ちなみに出前の電話は、ここから直通で、かけたんだろうか。例の受話器で(笑)。
そして、ダイヤルが終わってもすぐにはプルルルル・・・とはならなかったと思う。耳をすますと、「プツッ、カッツン、ヒーン(ごく小さ
い音)、ブツッ、プルルルル・・・」と聞こえた。遠距離にかける時は、もっと時間がかかったような気がする(今は、ダイヤルが終わる
とすぐプルルル・・・と鳴る。面白くない)。
そうそう、通話後、受話器を置いても、1〜2秒だったらすぐ受話器を持ち上げると、まだ回線がつながっていた。「まだつながって
るよ」と、友達と遊んでいたものだ。
117は、年が変わるときに何か違った事を言うのではとひらめいて、わざわざ12月31日23時59分から、テレホンピックアップで
録音する準備までして、その瞬間を待った事があった。でも117のお姉さん?はクールに仕事をこなした。普段通りのアナウンスで
変わらなかった。これは、あとになって、確か高校生クイズかウルトラクイズでこの問題がでてびっくりした。「あけましておめでとう
ございますと言う、マルかバツか?」。ありそうな話なのでひっかかった人が多かった。現実はそんなに甘くないのだ。でもやって
くれてもよさそうなもんじゃん。頼む>みかか
中学の頃は、ディスカウント店で安く売られていた輸入品の未認定電話を買ってきて、自分で勝手に配線して使っていた。電気
通信事業法なんか存在すら知らなかったから、無いことに等しい(ってそんなバカな)。
回線につないだら、何も音がしないのでおかしいと思って分解したら、受話器のスピーカーの配線のハンダが天ぷらで、はずれて
いた。いきなり顔面ネコパンチを食らった感じだ。さすがMADE IN HONGKONGだ。
ハンディホンといって、受話器一体型で壁掛けになっていた。こいつの着信音が鳴るところ(圧電ブザー)から、何か小さい音が
しているのに気づいた。耳をくっつけたら、ツツツツッ、ツツツツッ、ツツツツッ・・・と、かなり小さい音だが何かの信号音がしていた。
交換機が回線をスキャンしているのだろうか?そのほか、他の通話の音声も聞こえた。ラジオらしき音もしていた。並列につないで
いた自宅の電話の通話も傍受していた(笑)。
中学といえば、自分より1年先輩は、技術の授業で電話機のキットを作っていた。じつはそれが問題を起こして、NTTから苦情が
きて使用禁止になった。だいたい未認定の電話を、検査もしてないやつを勝手に回線につないで使うのは問題だ。よくこんなキット
が通用していたなと思う。もっとも、個人的にはすごく欲しかったけど・・・。
そもそも、電話に興味を持ったのが最初じゃなかったか。子供の頃、捨てられていたダイヤル電話機を父が拾ってきた。3台
あったので、これをなんとか使ってみたくなった。内線として。つなぎ方は自分で考えて、最初は電話機と電池を並列につないだが、
うまく声が伝わらないようだったので、直列にしたらうまくいった。その頃、農村電話が廃止され、家の電話はダイヤル式に置き換わり
つつあった。それで不要になった電話線がいくらでもあったので、家の中とか庭にその電線を張り巡らして、友達と電話ごっこをして
遊ぶのが楽しかった。
ところが!どうやって相手のベルを鳴らすかという課題にぶちあたった。乾電池じゃ鳴らない。ちくしょー。
愛車(自転車)にはブザーが付いていた。このブザーが使えないか。ブザーと電池を配線して、ベルの代用にしようとも考えたが、
それじゃ邪道のように思った。せっかくベルがあるのに、配線も増やしたくない。
どうやったらベルを鳴らすことができるんだろう。そして、なんでダイヤルを回せば相手につながるんだろうとか、実際の電話
回線には何ボルトかかってるんだろうとか、その電圧がひょっとしてベルを鳴らすポイントじゃないかとか、疑問がわきました。
たまたま電柱を見上げた時、なんか6600Vって書いてあって、電話線もその電柱についてるので、ああそうか、もしかしたら
6600ボルトなんだなと、思っていたこともあった(をいをい)。
それで、おそるおそる電話機のコードの先を、コンセントにつっこんでみました。そしたらベルが鳴るじゃないですか。リリリリ
リリリリリリ・・・と鳴り続けるじゃないですか。おお、ひょっとしたら100ボルトか?(近いけど違う)。いまじゃそんな恐ろしい事でき
ませんよ。
ちなみに当時は、電圧50ボルト以上が交流で、それ未満が直流だと思いこんでいました。なぜだか。
小学校には、電話に関する本がいくつかあって、小学生には難しい内容だったかもしれませんが、小学校入学前からアカデミア
やブリタニカ百科事典を読んでいた自分にとっては、別にどうという事はありませんでした。図書室にあった本には、ステップ・バイ・
ステップ交換機の写真なんかが載っていました。しかしベル電圧のことは書いてありませんでした。
学研の「放送と通信」「電気」などの図鑑は面白かったですが、私の疑問のすべてには答えてくれませんでした。
どうやってベルを鳴らすんだろうと、その疑問をずっと心の片隅に持ち続けて5年ぐらいたちました。たまたま小学校の放送室
に、NTTのパンフレットが転がっていたわけなんです。それには、電話線の電圧は、48ボルトですと書いてありました。これで
長年の疑問がとけました(でもベルを鳴らす電圧は48ボルトじゃないんですけどね。48ボルトは通話用ですよ)。
工業高校生になってから、電子技術の授業で電話の勉強をしたときに、ようやく全てを知ることができました。
それと小学生の頃にいじっていた電話機は、ベルの部分だけ取り出して、色を塗って夏休みの工作「風鈴」になって、天命を
全うしました(笑)。いい音で鳴りましたよ。もともとそういう物だからか。
しかし風鈴なんて、夏休みも終わりになって、あわててでっち上げたような感じだなあ(自爆)。
そういえばPBXの壊れたのを拾ってきて、いじったのも覚えています。これはクロスバー以前のもので、ステッピングリレー
が3つ付いていました。コイルに電圧をかけると、接点が1ステップ進むんですね。そうか、ダイヤルパルスでこれを駆動すれば
電話番号と接点が対応するわけだ。にゃるほどにゃるほど。
このへんの部品と、電話機からはずしたダイヤルを組み合わせて、簡単なゲーム機を作って遊んでいました。近所のおばさんが
やたらに「この子はすごい」と誉めるのには参りました。自分は、こんなつまんない物なにがすごいんだろうって思っていました。
確か数当てゲームだったんですが、ダイヤルを回すとルーレットが回る(ステッピングリレーが回る)ものです。つまり、結果は
ダイヤルを回す時点でわかってんですよね。何が数当てですかと、自分で作っていながらそう思ってました。自分で数当て
しても何も楽しくない。逆に、どうすればランダムな数字を作り出すことができるんだろうと、考えもしました。
ただ、豆電球がビカビカ光るし(自転車のライトから取ったやつ)、リレーがバタバタ騒がしいし、見た目はすごかったかなと、
思います。
またステッピングリレーは、カウンターの一種とも考えられますから、計算機に通じているとも言えます。
いや、脱線してしまいました。リレー電卓の話に戻ります。
最初は、AND、OR、NOT、EXORそれぞれリレー1個で実現する方法にたどりつき、興奮の絶頂にありました。しかーし!
あとで、この方法は確かにリレーの使用量が少なくて済むが、回路として組み合わせるときに生じる問題があり(信号が逆流
して前の段の回路に影響するんです)、ボツとなりました。おとなしく、一般的なリレーシーケンス回路の設計法でやることに
しました。信号の回り込みとか、いろいろごちゃごちゃ考えずにひたすら論理設計に集中できるからです。結果的にはこれが
完成への近道でした。
あまり回路に凝りすぎるのも考えものですね。前進できなくなります。当時のノートを見ると、基本的な2入力の論理素子は
全てリレー1個(2T接点)で実現できる!!などと書いてあります。
しかし実際には面倒なだけで、現実的ではありません。半導体のデジタル回路と同じように、H、Lレベルで信号を扱わなけ
ればならないのです。信号が逆流して、前の段に影響を与える事もあります。高価なリレーの数を節約するためには、回路に
凝る必要も全く無い訳ではなかったのですが・・・。
当時考えていた基本回路:
とくにEXORを考えたときはビョーキだった。まだ当時高校生だったが、通学途中もいろいろ考えてて、学校に着いてから、
階段をのぼりきったところで、ふっとひらめいた。そうだ、コイルの端子に、入力信号をつなげばEXORになるじゃないか。つまり
こういうことです。リレーのコイルは、(無極性という条件はありますが)必ずどっちかが電源側でもう一方がGND側でしょ。
それが逆になっても励磁されるわけ。0,1のときと、1,0のときに出力が1になるのがEXORでしょう。そういうことです。
そのときのメモが残っていました。大きく書いてあるのが、リレー2個での、それまで自分でベストと思っていた答え。右下に
小さく書いてあるのがリレー1個のやつ。
中学卒業前に、自分の理解の範囲内で計算機を設計しました。この計算機はちょっと変わった方式で、カウンタを使うもの
でした。カウンタを使っても計算機を作ることができます。野鳥の会とか、交通量調査とか、人数などを数えるのに使っている
数取器がありますよね。あれはボタンを押すたびに+1をやっています。
当時のノート(まだ残っていた!)から、計算方法を書いたページと、回路図を次に示します。
なんで入力ボタンにトランジスタがつながっているか。これは簡単な理由で、単に、どこかから回路をひっぱってきたからです。
チャタリング対策のためですが、当時は何も知らなかったから、こうしなきゃいけないと思っていた。
小学校の頃、学研の「科学」のふろくで、パスカルの計算機の原理を利用した計算機がありました。ダイヤルが4つあって、
それを付属の棒で時計回りに回すと足し算で、反時計回りだと引き算でした。カウンタは、これと同じようなものといえます。
10進カウンタIC(7490)を5個並べて、各桁にカウントアップのボタンを備えていました。数字を入力するには、たとえば
12345なら10000の位を1回、1000の位を2回・・・のように操作します。さらに54321を足すとすれば、同様に10000の位
を5回、1000の位を4回・・・のように押していくと、答えが表示されます。
引き算をどうするか考えて、自分でいろいろこじつけていったら、当時は言葉を知りませんでしたが「補数」という考え方にたど
りつきました。10の補数というものです。引く数が24680なら、これを補数に変換してから入力します。86420です。
24680−24680=0 は、24680+86420として足し算で計算します。どうですか?あれ、ゼロになるはずなのになりませ
んね。いま計算してみてわかりました。当時のマエダ理論、破れたり!111100となります。5桁処理なので一番上の1は無視
されるものと考えて下さい。それでも11100ですね。途中から9の補数でやらねばならんのではないでしょうか。再度、研究しな
いとだめですね。
設計・製作にあたって決めたルール:
(1)1種類のリレーしか使わない。
(2)機能モジュールごとに1枚の基板に製作する。
(3)まず動くものを作ることを優先する。
(4)配線はラッピングで行う(修正しやすい)。
(5)回路はラダー図で表現する。
(6)リレー以外の論理素子は使わない(リレーが不便とわかっていても、ダイオードなど使わない)。
1種類のリレーにこだわるのは、リレーを大量に仕入れて安くするためと、考えを統一したかったわけです。論理設計や、配線
のときにも、1種類のリレーだったら、単純に考えられるでしょ。何種類もあったら、ピン配置とか、使える接点数とか、いちいち
意識しないといけないじゃん。私はそんなに頭がよくないから、1種類にしないと頭が混乱します。
極端な話ですが、釘にエナメル線を巻き、スチール缶を切り開いて作った接点でリレーを組み、それをベニヤに打ち付けても
計算機ができるように、リレー以外の素子は使わない事にしました。ダイオードが使えるだけでもかなり違うんですが、まだ
半導体がなかった頃のコンピュータの開拓者、大先輩に敬意を表して、あえてリレーだけで挑戦することにしました。
考えを統一している事は他にもあって、たとえばリレーの接点は4または9ピンをコモン(+)とします。但し例外として、EXOR
回路を組んだときや、マルチプレクサの場合は、ここを出力側にしてもかまいません。
ラダー図を描くときは、原則として4または9ピンが左側(+側)に来るように描きます。
機能モジュールとは、エンコーダとか、レジスタとか、アダーとか、そういう機能をもった基板単体のことです。リレーを集めて
機能モジュールを作る。機能モジュールを集めて「レジスタ」や「演算回路」などの要素を作る。その集合が電卓になるというふうに
ボトムアップで仕事を進めていきました。
ところで、どうやってリレーでクロックを作るのかって?リレーは、機械的・電気的寿命の関係で、常時クロックをかけ続ける
わけにはいかんのです。必要なときだけ動かす事になります。だから必然的に非同期式論理回路になります。
クロックジェネレータは、リレーの遅延時間を利用して作ります。すなわち将棋倒しです。リレーをたくさんつないでいって、
次々にONしていくようにします。最初のリレーだけB接点にしておいて、1周したら、今度はOFFしていくようにします。で、また
1周したら今度はONしていくでしょう。これでクロックができるわけです。フリッカー回路とも言うようです。
別に、リレー1個に電解コンデンサ1個でも組めるけど、それじゃ面白くないじゃん。やっぱり、リレーをたくさんつないだら、
ジャージャージャーとすごくうるさくて楽しいですよ。このまま動かしていたらすぐ寿命に達するだろうなというスリルも楽しめます。
リレーでクロックを作ることは、ずいぶん長い間のテーマでした。最初は、フリッカーじゃなくて、なにか別の方式があって、それで
テレビでみたようなリレー電卓の動きになるのかなと思っていました。その方向で考えたのですがちっともわかりませんでした。
文献によれば、リレー回路は基本的に将棋倒し式であるという情報は得ていました。でも具体的にどうやって組むのかは不明
でした。「電子立国日本の自叙伝」のカシオ14A型の動作シーンを何度も何度も見ながら考えました。どうやったらできるのだろう?
リレーの鉄片が、上から下へと流れるように動いているのを見て、これがポイントじゃないかと思いました。リレーを直列につないで
いくと、すこしずつ遅延した信号が得られます。その出力をANDしたりORすれば、タイミングを作ることができますから。
本をみると、将棋倒しとしか書いてないわけですよ。だから、南谷教授の非同期式マイクロプロセッサみたいな、クロックを全く
必要とせず、回路素子の遅延時間のみで動くような回路になっているのかと思っていました。でも14A型の動きをみたら、タタタタ
タタタタタタタタタ・・・と一定周期で動いていたから、おそらくクロック源があって、それで制御用のカウンタを回しているとしか思えな
いわけです。
池田敏雄氏の論文に、1日に数十万回動作する可能性のあるリレーが存在する、という記述がありました。これはクロック源を
意味しているのか?
本当に非同期にしたかったら、前述の非同期式マイクロプロセッサに使われているC素子を利用して、信号線は、0と1でそれぞれ
1本ずつ設けます。ハードウェア的には、少々複雑になりそうです。
NHKの「サイエンスアイ」で、南谷教授の研究室が紹介された時の自分のノート。非同期式論理回路の基本原理をメモしている。
TITAC−2ホームページへ
ついでに、同じく「電子立国」でカシオの志村さんが言われていたこともいろいろ気になりました。志村さんはインタビューを受けた
ときは、まさか自分の発言がその後リレー電卓作りの参考にされるなんて想像もつかなかったでしょうね。発言は責任重大ですよ(笑)。
「足し算はかける1」だそうです。「計算の中心のかけ算にしておいて、足し算はかける1」と言っていたようです。たぶん、かけ算の
表を引く機構を組み込んでおいて、かけ算のときはそれを使うが、足し算のときはかける1で処理するのでしょう。かける1つまり、
スルーです。
14A型に平方根を追加するのにリレー数個で済んだらしいですが、一体どういうカラクリなのかと考えてしまいました。「考える一族」
によれば、樫尾俊雄は、まず平方根の求め方を思い出そうとしたそうです。なにか筆算でやる方法を学校で教わったっけなあ、と
思いながら、参考書を開くのも面倒だし、ということで、「いつものように」自力で考えたそうです。
方法は、ある数から1、3、5、7と奇数を順番に引いていく訳です。例として9の平方根は、9−1−3−5=0で、3回引けた事になり
ます。引けた回数が平方根3です。ところで小数点以下はどうするのか?
参考までに、平方根の求め方の一例を示します。
トラ技2002年1月号の広告では、★印は、100個以上30%OFF、500個以上50%OFFだそうです。げげっ。あの当時より
安いじゃないか。1000個買ったら1個¥50なんて! 東名電子さん、また1000個買いますからね(って、をいをい!!)。
1桁バージョン完成までの写真を発掘しましたので、ここに示します。
左から、モジュールの組み立てを始めた時の写真。
次の3つの基板は、テンキーエンコーダ、7セグデコーダ、レジスタです。
さらに次の写真は、テンキーエンコーダと7セグデコーダを、7セグLEDとテンキーにつないで、入力した数字がきちんと表示され
るかテストしているところ。
最後の写真は、大型アクリル板に基板を取り付けて、1桁バージョンの製作を始めたときのもの。
最初は1桁分だけ回路を作って、1+1=2ができるレベルね。リレーって意外と早いなって思った。まあ1桁だから、数ミリ秒で
答えが出るわな。カシャカシャカシャじゃなくて、[1]パチ、[+]パチ、[1]パチ、[=]パチ、だもん。じぇんじぇんおもしろくない。
これが、1998年3月頃の事でした。
これで一応「リレー電卓」らしき物ができたから、気分的にゆるんじゃったんだな。というか仕事が忙しくなった。あんまり忙しい
もんだから、「電気工事士試験」の日をすっかり忘れてしまって、気づいて机の引き出しから受験票を取り出したら、「はるか昔の
物語」になってしまっていた。受験料高いのにくそー。前の年に学科だけは合格していて、技能の再受験だけだったのに。
なんで技能が不合格だったかというと、線をむくときにペンチを使ったのがいけなかったらしい。一応、言い訳。
サラリーマンだから仕事が終わってからは、疲れてはんだごて握る時間あんまりないんだよね。なんかやってると
すぐ日付かわっちゃって、あーもう、寝ないと明日会社で眠いよなあと、毎日毎日欲求不満でフトンかぶって寝ていたよね。
すっかり会社の奴隷になっていたね。そうやって3年以上たってしまいました。
しかーし!たまに部屋の掃除をすると、1000個のリレーが目に付くわけだ。これそのままにしといたら、すっごい無駄遣いだよ
ねって、自分に問うんだ。自分を責めるんだ。うーん、しょうがねえなあ、突貫作業でやるかって思って、それからだな、本格的に
始めたのは。
この1桁バージョンを製作してみて思ったのは、とにかく電源まわりをしっかりしなければならないということ。リレー1個50mAなら
基板1枚あたり30個だから最大で1.5A食うことになります。最初は実験のため、クリップコードでつないでいましたが、線が細い
ため電圧が不安定で誤動作していました。
さて1桁分を作って思った事は、このまま同じ回路を4桁並べるには、あまりにも組み立て作業が大変ではないかということでした。
電源の容量の問題もありました。
カシャカシャカシャ・・・と動くにぎやかな電卓にしたいという気持ちもありました。それで、全部の桁を一括処理ではなく、10進数1桁
ずつ処理する方式にすることに決めました。これなら、加算回路を桁数分作ることはありません。
そうして、ようやく2001年秋、現バージョンの製作を開始したわけだ。今度は、ホームセンターで安く売ってるスチール棚を
使うことにした。棚1段ごとにアキュムレータ、演算回路、制御回路、のように分けて作ることにした。
リレーは1個あたり50ミリアンペアも電気を食うが(本当は100V用リレーなら電源の事で悩むこともなかったが手に入らな
かったからしょうがない。次善の策として24Vリレーなら10ミリアンペアぐらいで済むがやっぱり適当なものが入手できず、
それは各段ごとに5ボルト10アンペアの電源を置くことで解決した。これは秋月電子で1個1000円だった。安い!!んもう、
秋月さまさまだね。秋月電子のお陰様だね。
もし、電源がひとつだったら、それぞれの段に分配するのに、ぶっとい線がいるでしょ。じつは5ボルト35アンペアだったか、
でっかい電源も手に入れておいたんだけどそれだと配線が太くなくちゃいけない。銅棒(バスバー)でもひっつけようかなんて、
一時は思っていた。
最終的に、各段に「電源分配基板」を置き、そこから赤黒の線で、各基板へ電源をひっぱるようにした。電源分配基板内では、
電気工事に使うVVFケーブルをむいた、1.6ミリの銅線を用いた。さらに念のため4700マイクロファラッドの電解を1個くっつけ
た。
各段の電源は独立なので、お互いにプラス同士つながらないように配慮した。電源が立ち上がる前に、よそから電圧をかけら
れるとまずい。電源が立ち上がらなくなる可能性がある。GNDだけは、各段ごと太めの線でつなぐようにした。
スパイラルチューブとか、電源コードなどはディスカウントや100円ショップで買った。インシュロックは、近所のホームセンター
で500本入りを買った。
ラッピングポストとして使ったヘッダピン(40ピン2列)は、秋月電子で¥5,000−と安かったのでたくさん購入した。ユニバーサル
基板もそうだ。安いし使いやすい。何度も言うけど秋月電子のお陰ですよ。ほかにもキットはほとんど購入したし、今度何かサービス
してくださいね。
スチール棚のキットは、棚板が3枚しか入ってないからあと2枚買い足した。そして、高さが約1mなんだが、これだと邪魔くさい
ので、柱を半分の長さでぶった切って使う事にした。床板は、他の棚板より縦横5ミリ大きい。人間で言えば、足を広げてしっかり
立ってるような感じか。
あとはひたすら、棚板にドリルで穴をつっぽがす(長崎方言:穴をあけるという意味)作業に没頭した。これが9月ぐらいの話だ
ったか。
そして、作っておいたモジュール基板をかたっぱしからとりつけて、とりあえず通電したり信号をいじったりして、基本的な動作確認
から積み上げ始めた。
同時にブロック図やら回路図(というかラダー図だ)を描きながら、やっつけ仕事でハンダ付けやラッピングでモジュールの組み立て
をバシバシ進めた。基板内はラッピングで、基板同士はKV0.3の電線でハンダ付けで接続した。配線がすごい事になってしまって、
「そば」や「スパゲティ」を食べるとき、麺が電線に見えた。
配線ばかりやっていると、目玉に配線が焼き付いてしまって、目をつぶっても配線が見えるような気がするんだ(ビョーキ)。
「電卓」という言葉の意味を考えたら、普通は「電子式<卓上>計算機」なのだが、このリレー電卓は、「卓」そのものだな。
クロックジェネレータモジュールは、リレー24個の遅延で、ジャーーーという騒々しい音をたてて、6Hzぐらいのクロックが出ます。
しばらく鳴らしたままにしてたら、ちょっと音程が変わったぞ。壊れるんじゃないかと思ってやめたけど。
テンキーからの数字入力は、まずテンキーエンコーダで4ビットに変換される。つまり10進(0〜9)から2進数への変換だな。
ここで忘れてはいけないのが、「ストローブ信号」だ。キーが押されたという信号だ。0のときは数字が0000だから、何も押してない
ときと一緒でしょ。だからこのままだと0を入力したというのが判断できないよね。だからストローブ信号を使うんです。
ストローブ信号は、データが有効である期間中にアクティブでなければならん。データが有効という期間を示すためのストローブなんだし。
もしこのタイミングがいい加減だと、どの数字を押してもレジスタには0がロードされて、なんで動かないんだと悩むことになる(悩んだ
からなあ・・・)。
このタイミングをつくるには、またリレーの遅延を利用する。リレーを5個ぐらい直列(前の段のリレー接点で今の段のコイルを励磁
するようにつないでいく)につないで、テンキー入力の最初の立ち上がりからリレー2個分ぐらい遅れてストローブが立ち上がるように
して、リレー3個分ぐらいアクティブ状態を維持する。ちょっとしたワンショット回路ですな。こうやって細かいタイミングをつくる。
入力された数字は、テンポラリレジスタにロードされる。1桁入力するたびに、ストローブ信号でレジスタが左シフトされる。つまり
トコロテンだな。4ビットのレジスタを縦につないでるので、1ビットじゃなくて1桁ずつシフトする。
なおレジスタは、マルチプレクサとの組み合わせで、左右どっちでもシフトできるようにしてある。演算のときは1の位から計算しな
いといけないから、右シフトがいるし。それに入力を間違った時に1桁戻す機能が欲しかった。
当然のことながら、シフトクロックよりも先にシフト方向(マルチプレクサ切り替え信号)が確定してなければならん。
アキュムレータとテンポラリレジスタは、10進数1桁単位でのシフトレジスタだ。ビット単位でシフトさせる場合、4発パルスを作る事に
なるがそれでは制御部が複雑になる。4ビットつまり10進数1桁ずつシフトするのが合理的と考えた。1発クロックで1桁シフトする。
Dラッチを横に4つ並べて4ビットとする。これが1桁分で、さらに縦積みで4つつないだ。つまり4桁分という事になる。そしてラッチ間に
マルチプレクサを入れて、左右どちらにシフトするか選択できるようにした。左シフトなら右から来たのを、また右シフトなら、左から来た
のを自分に入れるようにする。ロードは右から1桁単位でシフト入力させる。並列ロードだとさらにマルチプレクサを追加する必要があり
もっと複雑になる。
あと、テンキーのストローブ信号は、表示の切り替えにも使っている。つまり数字を入力するときは、テンポラリレジスタを表示しなけ
ればならないでしょう。いま入力している数字が見える。そして、+などのコマンドキーを押すと、今度はアキュムレータの内容を表示す
る。さらに数字を入力すると、またテンポラリ表示に戻る。最後に=でアキュムレータ表示に切り替わって、演算結果が表示されるわ
けだ。
これは簡単だな。単にS−Rフリップフロップを作ればいいもん。切り替えのタイミングはシビアではない。何しろ見るのは人間だ。
ついでにレジスタには、シフト時に空いた桁に0を埋めていくか、あるいは、はみ出した桁をローテイトするか、選択できるように
マルチプレクサを追加した。テンポラリレジスタを演算のため右シフトしていくと、左からは0が入るから、最終的にゼロになる。これで
次回の入力に備えられる。
ローテイトはどんな場合に使うかというと、テンポラリの値を保持したいときだね。たとえばかけ算だ。かけ算は、足し算の繰り返しだ。
同じ数字を、かける数の回数だけ繰り返し、アキュムレータに足し込んでいくとかけ算になる。そのときに使う。
ん?かけ算はシフトでやれって? そりゃそうだが、制御的には、足し算の繰り返しのほうが簡単になるし、それに、演算の様子が
見て面白いじゃないですか。99×99=9801なんてやらせてみたいじゃないですか。ぴーしーきゅーはちまるいちだーって。
あれ、1×9999=ってどうなるんかな。何時間もかかるんじゃないだろうな。うはははは。1演算サイクル1秒としたら9999秒
かかるわけです。
できることなら、乗数と被乗数を比較して、小さいほうでかけ算の回数を設定するような回路にしたかったが、リレーが足りなかった
ので断念した。
いや、じつはかけ算に関しては、シフト式も考えにあった。そのためにはn倍回路というのが必要だった。BCD1桁単位で計算するから、
九九の表を組み込む必要があったのだ。ビット単位だったらANDで済むのにね。
九九の原理は、次のように考えた。
1 | 2 | 4 | 8 | |
1 | 1 | 2 | 4 | 8 |
2 | 2 | 4 | 8 | 16 |
4 | 4 | 8 | 16 | 32 |
8 | 8 | 16 | 32 | 64 |
これは、10年前、専門学校の学生だった頃に「発明」した、九九の表だ。2進数で九九の表ってあるのか?という思いつきからだと思う。
あるいは、メモリ上にテーブルを置いて、そこから引いてくることでかけ算を高速化しようとしていたのかもしれない(当時8ビットCPUには
かけ算命令がなかったので自分でかけ算プログラムを作るしかなかった)。
たとえば9×9=は、次のように計算する。9は1と8の足し算だから、1と8に○を付ける。縦軸と横軸両方に。
そして、縦と横の交わったところ(1、8、8、64)の数字を全部足し算する。1+8+8+64=81で、つまり9×9=81と
なる。
この表は2進数のかけ算を筆算でやるときの手順と比べてみると理解しやすいかもしれない。
この九九表だったら、暗記するのも簡単だと思う(小学校2年生の頃、九九を覚えきれないと早く帰してもらえなかった。帰る前に、
先生に口頭試問された。)。このとき、これがあれば苦労しなくて済んだのに。いや、暗算できないと苦しいか。
ウソでも間違いでも何でも適当に勢いで早口で言ってさっさと帰ればよかった。これが要領のいい生き方だ(違う)。
回路で実現するには、縦または横列ごとにANDして、全部足し算する。言葉で表現すると難しい。筆算でやるのと同じ手順になります。
2進法の場合は、桁をずらすと2倍になります。
九九というか、1+2+4+8の合計だから15×15まで対応できるぞ。1515表とでも言うかな。
当時のノート:
左が、九九表を圧縮しようと試みた時の落書きで、右は1515表にたどりついた時の感動が書き殴ってある。天にも昇る
気分だったらしい。
みんな小学校で九九を覚えさせられるが、もし覚えなかったら、あるいは忘れてしまったら、その人の人生にとってどういう
不都合があるだろうか。覚えなくちゃいけないものだろうか。自分は算数の授業が嫌いだったから、こんなヒネクレた事ばかり
考えていた。
授業中は面白くないし、ヒマで(おいおい)、机に鉛筆をたてて日時計の目盛りを刻むのに夢中だった時もあった。教室の
時計を見ながら、「よし1分たった、ここに印をつけよう」なんてやっていた。結構、正確だなと感心していた。
ところが、掃除などで机が動くと、日差しの角度がずれるからせっかくの日時計が役立たずになる。だから、机の脚の位置を
床にマーキングして、マメに直していた。あと、時計をにらみながら、何秒間、息が止められるか自分ひとりで授業中、何度も
遊んでいたこともあった。
確かに、九九は覚えなくても人生なんとかなるだろう。高校生になってから、数学者・矢野健太郎先生の本を読むようになっ
た。その本で、「ロシア式かけ算」のやり方を知った。このやり方だと、2倍と1/2だけ知っていれば良い(これは実はコンピュ
ータ向きなのだ。2進法で左シフトが2倍だし右シフトは1/2になる)。九九は知らなくても良いのだ。
ロシア式かけ算:
いや九九を知っていれば計算が速いだろうという意見もあるだろう。とくにソロバンを使うときはそうらしい(よく知らない)。
小学校でソロバンもやったが、面倒くさい事この上なかった。ソロバン塾に通っている連中は、余裕でこなしていたが、自分は
全然ついていけなかった。いまいち、ピンとこなかった。
1+1は、まず1を置くには玉をひとつ上に上げる。で、+1だから玉をもう1つ上に上げる。これで2だって・・・・・・なんか
だまされているような気がした。これが本当に、「計算をしている」ことなんだろうかと疑問に思った。
4+5は、まず下の段の4つの玉を上に上げる。次に上の段の玉を上に上げる。これで9だと。なんだそりゃ。じゃあ、これに
1を足しなさい。えっ、どうするんだろう。桁上がりだって。これじゃ自分の頭で計算しているのと同じじゃないか。こんな具合だった。
ソロバン塾に通っている連中は、すでにソロバンを必要としていなかった。なにやら指をゴソゴソ動かしていた。玉の状態を
頭で記憶し、かつ、暗算をしているらしい。よくそんな芸当ができるもんだ。自分だったら、暗算してたら玉の配置を忘れてしまう。
しかも、ふたりで道を歩きながら、「なんとか、歩」、「なんとか、金」って言い合っていた。これは頭の中で将棋をしているらしい。
将棋盤なんか覚えられるもんか。こいつら人間じゃない。異星人だ!!
ソロバンの問題集は、やたらに桁数のある足し算が何段も積み重なっていて、見るだけでウンザリした。気分が重くなった。
いちいち玉を動かしていくのが面倒くさかった。やっているうちに玉がずれて、訳が分からなくなって、なおさらイヤになった。
だから、片手でソロバンをガサガサやって、計算しているふりをしながら(これは先生に気を遣っているのだよ)、筆算のやり方で
問題を解いていた。だが私の脳は、ソロバン星人のようにいくつもの事を考えることはできず、片手のガサガサがごぶさたになっ
たりした。ソロバン星人なら、片手のガサガサやりながら筆算できるだろうな。
そもそも、ソロバンなんてものは電気が通じていない。幼い頃から、電気モノ以外に興味なかった自分にとって、これはただの
ローラースケートの代用品でしかなかった(商売をしていたばあちゃんが、でかいソロバンを持っていた。よくこの上にのっかって
叱られたものだ)。ばあちゃんのそろばんは、自分が小学校で使っていたものとは違っていた。玉が4つのところ5つもあった。
上の玉(5)は2つあったような気がする。使い方が違うのか?かなりの年代物だろうか。
小学校でソロバンの授業が終わった後も私のソロバンはピカピカのままだった。ご丁寧に名前まで彫り込んであったっけ。
もったいなかった。名前が彫ってなかったら売れたのに(違う)。
ソロバン推進派は、頭と指を使うから賢くなるという。電卓使うとバカになるという。このほうがよっぽどヒネクレている。もっと
柔軟に考えたい。電卓は家に何個も転がっているんだから無理に使わない事もないだろう。慣れてるならソロバンを使えば
いいじゃないか。頭の訓練になるならソロバンは練習しても良いだろう。別にどっちを使うとか使わないとか、そんな事をうるさく
言う必要はない。この世から電気がなくなったら、ソロバンじゃなくて手回し計算機を使うまでだ(笑)。
さっきのソロバンの賢くなる話は、どこに書いてあったかというと、もう何年も前のことだけど、島原の駅前のホカ弁のところに
ソロバン塾のポスターが貼ってあって、それに書いてあったと思う。弁当ができるのを待っている間に眺めていた。
あっ、電子という存在がなくなったら原子が安定しなくなるのかな。もしそうならあらゆる物質が崩壊しますよね。そしたらソロバンも
電卓も、人間という存在もなくなりますよね。それなら、こんな事で悩むこともないし、悩むものも、悩みという概念も存在しない。
そもそも、存在というものを認識する存在が・・・・・・無もないし、無というものもない(無限ループ)。
「考える一族」に、ソロバンと計算機の勝負のことが書かれていました。戦後、日本人がソロバンで、アメリカ人が機械式
計算機で勝負をした事があって、ソロバンが買ったという。だが、それを見た樫尾俊雄は、・・・(忘れました)・・・。とにかく、
ソロバンは熟練する必要があるが、計算機は、誰でもすぐに使える。今回、計算機が負けたのは、それが使いにくかったから
じゃないのか。
そして次の言葉をメモに書き付けました。「ソロバンは神経、されど計算機は技術なり」。これが数年後、しまい込んでいた
中から出てきて、樫尾4兄弟を計算機開発へと向かわせたようです。
カシオの14A型はリレー342個で、14桁までの四則演算までできるのに、なぜ今回のリレー式電卓は、リレー800個も使って、
4桁の足し算引き算しかできないのか。それはカシオのは、多接点のリレーを使っているからだと思う。例の番組で見た限りでは、
ひとつのリレーに8組ぐらい接点が付いていた。
一方、今回の電卓は、ひとつのリレーに接点が2組しかないから、多接点が欲しかったら、リレーのコイルを並列につないで、
接点数を稼ぐしかない。
こんなにたくさんのリレーを集めて物を作っていると、まるで、米をひとつぶずつ集めて、やっと茶碗一杯のご飯を食べるような感じが
する。農耕民族らしい。
それとカシオは、独自の設計に基づいていると思う。現物の回路図も見たことがないから想像でしか言えないが。数値の扱い
は、2進法じゃなくて、2−5進法だそうだ。バイカイナリコードといって、要するにソロバンだ。うちのは4ビット単位のBCD演算である。
ちなみに富士通のリレー計算機FACOM128も2−5進法だ(池田敏雄氏の論文による)。
池田敏雄氏の部下だった、石井康雄氏の著書「コンピュータ入門」(オーム社)。昭和45年8月30日発行。これも古本屋でゲット(手に
入れておいてよかった)。
さすが、池田氏のもとでリレー計算機を作っておられた方だけに、バイカイナリコード(2−5進)についてページがさいてある。
2−5進法コードは、ほとんどデコードされているようなものだから、表示回路を作るのは楽だと思う。カシオ14A型は、
0〜9までの豆電球を縦に並べて1桁の表示として、これを14組並べていた。ソロバンでいう5の珠がOFFかONかで、0〜4と
5〜9のグループに分ける。あとは4〜0の珠(ソロバンには0の珠は無いが)がそのまま豆電球に対応する。
アダーつまり加算回路とは、4ビット同士の足し算をする回路だ。この電卓では、1桁ずつ計算したいと思ったので、4ビットの
アダーをひとつ使った。ただ、そのままでは2進法で計算してしまう。BCD(2進化10進数)で処理したいので、そのための補正に、
もういっこアダーを追加した。10以上のときは6を足すと10進数に補正される。引き算は、補数を足し算することで実現する。
数値はBCD表現なので、符号は別にビットを設けて管理することにした。これが結構面倒くさい。かけ算のときは、数学で
勉強したように、プラス同士、マイナス同士のかけ算はプラスになり、プラスとマイナス同士のかけ算のときはマイナスになる。
これは簡単に論理が組める(EXOR)。ところが足し算引き算だと、大きさを比較する必要が生じた。なにかいい方法がないか
検討中。リレーが残り少ないし、符号は最後まで付けられないかも。
表示は、秋月の広告で見かけた、でっかい7セグLED。これだ!これは面白い。安いし(1個¥200−だったか)、これを
使うしかないね。ちなみにカシオ14A型リレー式計算機は、桁ごとに0〜9のランプが並んでいて、そのどれか1個が点灯
することで数字を表現した。これが14桁もあったわけだ。ヘビがうねるような表示になったりした。これでも面白いと思ったん
だけどね。こっちのほうが7セグより回路が簡単だしー。でもまあいいか。普通の電卓と同じ感覚で使えるようにしたいから、
7セグに決まり。色は赤です。これにスモークアクリルをかぶせました。数字に関しては4桁だが、エラーとマイナス表示の
ためにもう1桁、7セグLEDを追加しました。
7セグというと、一般のマイコン回路では、ハードウェアを簡単にするために「ダイナミック点灯」という技を使うのが普通
だが、リレーは、前にも述べたように、寿命の関係で常時動かすわけにはいかない。それにジャージャージャーとうるさい(や
れってか?)。だからスタティック点灯ということになる。つまり、桁ごとに7セグデコーダ回路が必要になったわけだ。作るのは
面倒くさかったが、先に作っておいたので、デバッグのときにレジスタの状態が簡単に確認できて助かった。
ちなみに、負論理で設計したら、リレーの個数が若干節約できた。点灯するセグメントの数と、消灯するセグメントの数どっちが
多いか少ないかって考えたら、負論理で組んだほうが簡単だった。
ふっふっふ、ちゃーんと「ゼロサプレス」も付けたのよ。当たり前じゃねえかって。まあこれが無いと、普通の電卓の感覚
にはならんよね。どういうことかというと、普通、電卓の電源を入れると「0.」って表示になるでしょ。これは、その存在すら
意識しないが、じつは、ゼロサプレスが働いているんだ。リーディング・ゼロサプレスという。先行する(上位桁の)ゼロを
消すわけだ。上の桁から順番に見ていって、ゼロなら表示しないように制御している。もしゼロサプレスがなかったら「0000.」の
ようになって、表示が見づらいだろう。
みんな、電卓を使うときは、こんな処理までやっているなんて夢にも思わないだろう。まあそれが当たり前なのだし、使う側は
意識する必要もないものだが、電源を入れた瞬間「ジャッ」と鳴るのは、ゼロサプレスが働いているんだ。
考え方としては、上の桁がゼロで、かつ、自分がゼロなら表示オフ(LEDのコモン電源を切る)するという制御だ。一番上の
桁は、自分より上の桁が存在しないから、自分がゼロなら表示しないという制御になる(ダミーとして、上位桁ゼロの信号を
アクティブに固定しておく)。1の位は、表示オフしたら表示が全部消えることになるから、ゼロサプレスしない。
こうやって上位桁から順番にゼロサプレスが進んでいくので、電源を入れた瞬間、表示を見ると一瞬0000と表示されて、
上位桁から順番にシュッと0が消えていく。
7セグデコーダと、そのゼロサプレス回路を設計していた時のメモ類。7セグの、点灯させるセグメントより消灯させる
セグメントのほうが少ないのがわかって、消灯するパターンにより回路を簡単にしたもの。
デコードをしている部分を見ると、8だけがデコードされていない。というのは、8は消灯させるセグメントがひとつもないから、
デコードする必要がないのである。この簡略化により、この電卓の仕様ではありえないが、10以上の値が入力されても8と表示される。
左のラダー図は、実際の回路のもの。シーケンス回路の描き方としては邪道っぽいが(笑)。
右のノートのメモは、7セグメントの点灯パターンを検討して、どのように簡略化するか考えたときのもの。
あとは、LEDを回路のあちこちに実装した。これで回路の状態が見えるようにした。何かトラブったとき、この5段ラックを
バラして、テスターであたっていくのはつらすぎる。だからレジスタの数値とか、基本的な制御信号は、LEDの点灯で見える
ようにした。装飾的な意味合いもあるけどね。昔みたいなむき出しのリレーだったら、中の接点がくっついたり離れたりするのが
見えるけど、今回使ったのはモールドリレーで中身が見えない。チップLEDをリレーのハンダ面に全部付けようかと思ったけど、
外から見えないし電気も食うから、断念した。
なおLEDはオレンジ色とした。これはたまたまジャンクで手元にたくさんあったのと、昔の豆電球を連想させる色だからだ(という
のはこじつけ)。
電卓だと書いてきたが、じつはCPUの一歩手前なんだ。ALUは当然備わっているし(算術演算だけなのでALUと書くのは変だが)、
+や=などのキーを命令として、シーケンス制御する回路も備わっている。そう、命令を解釈し実行する機能を持っている。
命令を解釈し実行する仕組みについて、「悟り」を開いた時のメモを次に示します。
いま思えば当たり前の事だが、当時はなかなか理解できなかったバカな私でした。
ちょうど学校帰りだったか、自宅の近くの畑のそばを歩いていて、いきなり脳に電波がさしこんできました(をいをい)。ヤッター!とか
叫んで走り、ノートに書き殴ったものです。
このままではハザードが出るので問題があります。但し考え方としては正解です。
あと一歩踏み出して、思い切ってCPUにすれば、電卓のプログラムを作ればいいから機能を追加するのが楽だな・・・・・・
って、どこかで聞いた話だと思ったら、ビジコン、インテルのマイクロプロセッサ開発物語じゃないか。アラアラ。
ビジコンといえば、数年前に仕事で上京した際、秋葉原近辺を同僚とクルマで走っていたら、あるビルにビジコンの看板
見つけましたよ。NHK電子立国で見たのと同じ。田舎者の私は感激しました。
参考文献: 「マイクロコンピュータの誕生 わが青春の4004」(嶋正利著 岩波書店)
危ない。もう一歩踏み出したら永遠の泥沼だ。だいいち、ROMやRAMをリレーで作るのか。4桁のレジスタ作るのも
しんどかったのに。
どのくらいしんどいかというと、今日運動会が終わってクタクタなのに、明日また同じ事やってくれと言われたような気分だ。
あさってもだ。
電卓なんか100円で売ってるが、100円のくせにM+とかMRとか、メモリ機能が付いている。今回のリレー電卓には、
メモリ機能は付いていない。チクショーメ。しかしそう簡単には実現できないのだ。さっき書いたように、4桁のレジスタだけで
棚1段分あって、配線がしんどい。
100円の電卓には機能的に劣るが、もともと値段を競争するとかそういう次元の問題ではないので関係ない。
というか、想像するリレーの数から考えれば、電卓のLSIってのは、相当な数のトランジスタを組み込んでいるんだなあと思う。
当たり前か。
しかしROMはトグルスイッチを並べていけばそれらしくできるぞ。きっと壮観だろうなあ。秋月で安いトグルスイッチを
大量購入して、パネルに穴ほがして(長崎方言)、つないでいけば・・・・・・(半分本気)。やっぱり秋月さまさまだ(くどい)。
アドレスデコーダはリレーで組む。トランスファ接点を階層にしていけば良い。そのデコード出力をトグルスイッチのコモンに
して、各スイッチの同じビットの出力を束ねていく。待てよ?これじゃ信号が回り込んでしまう。ダイオードを入れるか。いや、
それは最初に決めたからダメだ。ということは、トグルスイッチ1個につきリレー1個のコイルを駆動して、その出力をORして
いく。リレーが増えるが・・・。
全体の組み立てについては、「各基板への接続がわかりやすいように、ハーネスに番号チューブを付ける」ことと、「修理時に、
基板が取り外しやすいように工夫する」ことだった。そしてスチール棚の各段をはずして展開できるように、各段の配線は
長目にして、スパイラルチューブを巻いた。
以前、1桁バージョンを作った時には全然気づかなかったことだが(1桁だから気づかなかったと思うが)、テンキー入力は
BCDなのに演算をバイナリで行っていた。これは今回、4桁バージョンを作ろうとして気づいたことだ。なんで今まで気づか
なかったんだろう。
表示部に付けたかったのは、現在、加減乗除どの計算モードなのかを示すLEDである。一部の電卓には備わっていた
機能である。+−×÷に対応するLEDが点灯するようにした。
そして、+−×÷=を命令として扱う事にした。これを、命令レジスタスタックを通して入力するようにした。トコロテン2段だ。
どういうことかというと・・・。
123 ・・・ ここで、テンポラリレジスタに置数される。
+ ・・・ 命令レジスタ1段目に+が入る。
加算回路を通じてアキュムレータへTMPの内容が加算される(ロードされる)。
456 ・・・ テンポラリレジスタに置数される。
= ・・・ 命令レジスタ1段目にあった+が2段目へ、1段目には=が入る。
2段目の命令によりシーケンス回路が動作して足し算が実行される。
つまり、+を押した段階では、まだ足し算を実行しない。456を入力し、=を押して初めて足し算が実行される。命令は1個遅れ
て実行されるという方式。
演算シーケンスを制御するために、4ビットのジョンソンカウンタを設けた。最初の単体テストで、動きがおかしかった。途中で
チャタリングみたいな現象が起きて、2→3→4→5と変化すべきところが、なぜか、2→4→3→4→5と変化した。ここまで作って、
まさか基本的な設計ミスかと、一時はどうなるかと思っていた。これは2日間ぐらい悩んだが、結局、レジスタ基板の一部の
配線ミスが原因だった。ロジックのミスだと思いこんで、ロジック基板ばかり色々試行錯誤していたが・・・まあこんなもんだ。
長い間悩み苦しむわりに、原因は単純。
そうそう、パソコンにLANカードを取り付けたのにうまくネットワークがつながらない事があった。半日以上いじっていたか。
ひょっとしてLANカードがいかれてるか、相性が悪いのかと思って、近所の店で買ってきたがそれもダメだった。なぜだろう。
しばらくしてパソコンを見ると、LANのケーブルがささってない・・・。
最初の頃はちゃんとケーブルをさしていたんだろうけど、手元にあったLANカードをとっかえひっかえ試しているうちに、
差し込むのを忘れたのであろう・・・。コンセントに電源プラグをさしこんでないのに気づかずに、テレビがつかないって騒いでる
ような低次元の問題であった。つい難しいほうにばかり気が向いてしまいがちだ。
各基板端子への結線箇所は、ハンダ付けとし、必ず熱収縮チューブをかぶせる事とした。必要に応じて、インシュロックで
束線して、コードステッカーで棚板に固定する。また同一端子から複数の配線を出したい時は、別に中継基板を用意して、
そこで分岐するようにした。
熱収縮チューブは、熱をかけない事にした。あとから手直しや修理する可能性があるため。だったら普通のイラックスチューブで
いいじゃないか。いや、近所のホームセンターで売ってるのが熱収縮しかなかったのだ。
コードステッカーは、部品箱の中に5年ぐらい前のがあったので使おうと思ったが、なんと、両面テープのノリが乾いて、
パリパリになり接着力を失っていた。こんなじゃ、この電卓の将来が心配だ。
いろんな問題点にぶつかったが、そういう時は、ある程度考えはするが、あまり長引くようだったら、手っ取り早い方法を
考えて実行するように心がけてきたつもりだ。
とにかく、物を作ることを優先した。たとえば補数回路は、スルーと補数のどちらかを選択する必要があるが、ごちゃごちゃと
論理圧縮するよりも、単純に、マルチプレクサで入力をそのまま通すか、補数回路を通したのを通すか選択するだけにした。
+6の補正も、いちいち+6だけのために回路を組むんじゃなくて、フルアダーの入力の片方を+6に固定して使った。一部の
リレーが無駄だが、簡単でよい。
2001年12月11日。やっと引き算の問題の解決策がまとまった。最初の考えでは、引き算のやり方は、9の補数を足し
ていた。ところが計算結果がでたらめだった。再度、処理内容を見直したら、9ではなく10の補数にしなければならない事が
わかった。それと、計算結果をBCDに変換する+6補正回路を備えているが、引き算のときは+6してはいけない事がわかった。
それから、かけ算わり算を追加するため、棚をもう1段追加し、4段目と5段目の間に入れるため、「4.5段目」とした。家で
使っていた同型の棚をバラし、棚板と支柱を流用した。1段増設したことで、もとの支柱の長さが足りなくなったので、再度、
長いやつをノコでぶった切る事にした。
いま賃貸マンションに住んでいるので、ギコギコギコギコやっていると近所迷惑である。最悪、過激派か何かのアジトかと
思われるかもしれない。以前、警察の広告だったか、何か工作しているような怪しい音がしたら爆弾を作ってるアジトの可能性
とか書いてあった。
ところで、このリレー電卓の回路図はどうなっているかというと、まず、清書されたものは存在しない。基本モジュールである、
レジスタや、アダーは、シーケンサ用のラダー設計ツールを清書用に使っていたが、それ以後はすべて、ノートに殴り書きした
メモしか存在しない。それと自分の頭の中と、現物を見るしかない。
かなり勢いにまかせて突っ走ってきたので、図面を清書する余裕はなかった。まあ、量産品じゃないから良いという事にして
おこう。学校の教材にしてはどうかという提案もあったが、量産するには、配線がつらすぎる(笑)。
いろいろ改造のため、5段をバラして、壁にたてかけて並べたら、おそろしく複雑な物に見えた。かなりビョーキだと思った。さらに
もう1段追加しようとしている。かけ算とわり算のために。
もう、小数点処理を追加するのはあきらめようと思った。
ラダー図とは? その例をここに示します。これらは、リレー式電卓の制御ロジックの一部です。
そして、三菱のシーケンサ用に作成した、「ナイトライダー」のラダー図を、参考までに示します。
最新号の「トラ技」をみたら、以前リレーを買った業者の広告に、同じリレーの型番を発見した。単価¥100−だ。あのとき
は1000個まとめて買ったから割引で@¥70−だったっけ。むむっ、ひょっとしてまだ在庫いっぱいあるのかな。1000個
ぐらいあったら、電卓からCPUに改造して、リレー式ROMとリレー式RAMが追加できるぞ。まだ貯金少しあるしなあ・・・(げげっ)。
まてよ、レジスタよりRAMのほうが、リレー回路が単純じゃないか。S−Rフリップフロップに、入力と出力のゲート付ければ
できそうじゃないか。なぜ単純になるかというと、レジスタは、入力が変化したときに、出力が変化したらまずいわけだ。だから
S−Rフリフロをマスターとスレーブで2つ使っている。一方、RAMは、一般的には読み出しと書き込みは同時には発生しない。
リレーの数でいえば、だいたい半分ぐらいでできるんじゃないか・・・(おい、本気で作る気かよ。誰かヲレをトメテクレ・・・・・・)。
メモリセルひとつずつに、LEDをつけたら、プログラムの進行につれて表示がチラチラ光って、ステキだろうなあ・・・(本気?)。
そういえば秋月のユニバーサル基板、いままで使っていた奴がいつの間にか廃止になっていた。ちくしょう、もっと買いだめ
しとけばよかった。40枚しか買ってなかった。あと10枚買っておけばよかった。廃止というか、いままでのと同じサイズなんだが、
両面スルーホール基板になってた。
現物が手元に届いたので見たら、電源パターンがなくなっていた。銅箔テープでも貼るか。そうすると面積が減って、リレー
の実装可能個数が・・・。メッキ線にするか。でも細いよなあ。電源容量は大丈夫かなあ。
なーんて、難しく考えて悩んでいたら、なんてことはなかったのだ。基板の左右にそれぞれ、電源分配用にジャンパーポストを
40ピンずつ立てているが、この裏側に、屋内配線用の電線をむいた、φ1.6ミリの裸銅線をハンダ付けして、電源パターンの
代わりにすれば簡単じゃないか。電線は電気工事の練習のため、手元に転がっている。練習でいらなくなった線をむいて流用
すればいい。
秋月のユニバーサル基板は、一番古いのが少し透ける素材で、次が真っ白で、現在のはガラエポで濃い黄色のスルーホール
基板だ(よく見ると隅にUU18 PICO 200 94V−0というエッチング文字がある)。このリレー電卓には、3世代の基板が
入り乱れて実装されている。
リレー電卓の動作中、それぞれの機能部分に耳を近づけて聞いてみたら、当たり前だが、場所によっていろんな音が聞こえた。
クロックジェネレータは、ジャーーーと鳴るが、レジスタは4桁なので4発クロックが入り、タ・タ・タ・タと鳴る。こうやって耳をすまして
いると、なんともいえない快感がこみあげてきた。ああ、動いている・・・。
リレー電卓を作っていることは、ごく最近まで一部を除き、内緒で進めていた。だが私の部屋には、テレホーダイ時間帯のみ
生中継のライブカメラがあり、何かでかい物を作っている事は、バレバレだった。あれは何?と聞かれたが、ある程度できあがる
までは、あえて言わない事にした。だって作っている途中で色々言われたら、やる気なくなるかもしれないし。それに、完成して
から見せた方が、感動も大きいと思った。
基板にリレーを実装するのはハンダ付けだったが、基板内でリレー同士を接続するのはラッピングだ。ラッピングとは、
日本語で「無はんだ巻き付け接続」といって、端子に線を巻き付けて接続する方式のこと。ハンダ付けよりも信頼性が高いと
言われている。もともとは、ウエスタン・エレクトリック社で、電話交換機の配線をするために開発されたらしい。現在では活躍の
場も少なくなったが、まだまだ活躍している分野もある。
アポロ宇宙船に搭載されたコンピュータは、基板ユニットそのものは表面実装のハンダ付けだったが、バックパネルはラッピン
グだった。「電子立国日本の自叙伝」でそのコンピュータをみたが、配線がものすごかった。
ラッピング配線の例として、MC6809を使用した昔のコンピュータの基板写真があったので、参考までに掲載する。
ラッピングのとき線をむくが、とくに切れないワイヤストリッパで、狭い場所の線をむくのは指先が痛くなる。指先に力が
かかり、またすべりやすいからなおさら力がかかる。事務用品の指サックを買うのももったいないので、使い捨て手袋の親指と
人差し指部分を切り取り、左手の指にかぶせたら、線がすべらないし指も痛くなくなり作業がはかどった。
ラッピングを美しく?仕上げるコツは、配線の順番を考慮すること。どっち向きに巻いてるかにもよるが、ここでは時計回りに
巻いているとする。この場合は、下から上、あるいは右から左への順番で接続するようにする。次に、図で説明する。
この図のようにする事で配線がたるまずにきれいになる。
それから、複数箇所への接続で、どっちを先に配線すると線が交差しないかを考慮する。近いピンと遠いピンがあって、
先に遠いピンにつなぐとあとから接続した近いピンへの配線が重なってしまう。これは言葉で表現するのは難しい。
ラッピング線は、浮き上がりやすいので、配線する前に軽くしごいておくようにする。また、カンに近いが、どっち向きに
巻いてあったかによって、線のおさめ方を変えると浮き上がりにくい。線のクセで、線自身を固定させる。これもちょっと
言葉では難しい。
配線の浮きを防ぐコツだが、縦方向の線で横方向の線を押さえるような(縦横逆も言える)方法もある。これには、配線の
順番を考慮する必要がある。
手巻きツールを愛用しているが、その理由は、(1)軽い、(2)巻き加減がわかること。欠点は、やりすぎると、回す指が
痛くなること。電動ラッパーは誤って落とし、ビットをつぶすと悲惨なので、無造作に扱えない。たとえばヒモをつけて、
天井からつり下げるか、首から下げるようにして落とさないよう対策する。楽ではあるが、ビシバシ作業を進めるには身軽
ではない。そして手巻きツールは、逆に回せばアンラップ(配線取り外し)としてすぐ使える。
巻き加減についてだが、手巻きツールを使うと、指先の感覚で巻きの状態がわかる。線にキズがあって途中で切れた時は、
ブツッと来て軽くなる。巻き終わりは、極めて微妙だがプチ、ときて軽くなる。プチ、というのは、線のむき先端がツールを
抜けて押しつけられた証拠だ。
このリレー電卓では、リレーの実装密度を上げるためギリギリまで詰めたので、配線用のスペースが狭い。だから配線の
美しさまでは、あまり気を使う事ができなかった。
作業を手早くする工夫としては、初歩的ですが、線をカットしたらその時点で、むいておきます。もちろん今配線しようとして
いる線もむきます。こうすると、次の配線ですぐに巻き付けができます。むいてあるので、次の配線ピンをサッと決め、その次の
配線ピンの事を考えれば良いので速いです。
あとからむいても一緒じゃ?と思うかもしれませんが、工具を置いたり取ったりする時間を1サイクル節約したという事です。
いったんワイヤストリッパと線を手に握ったら、先の分までいっぺんに作業したほうが速いですね。
ワイヤーラッピングの道具3点セット。上からワイヤストリッパ、手巻きツール、ピンセットです。ピンセットは、薬箱なんかに
入っている貧弱なやつじゃ全然だめだ。このように、つくりがしっかりしているモノじゃないと仕事できない。
ラッピング配線が終わった後、基板を目視検査する。配線の接続先の誤りはわからないが、配線忘れは見つけられる。
まずリレーの1ピンと12ピンを見る。これはリレーのコイル接続である。ここに配線が接続されていなかったら配線忘れである。
それから接点だが、4−5あるいは4−3、そして9−10、9−8ピンが組で使われる。この組で、片方のピンしか接続
されていなかったら配線忘れ。とくにコモン(+)の4と9ピンを見る。動かない時はコモンを忘れている。
入出力端子への配線が全部揃っている事は当然である。
あと、複数の端子をハンダ盛りで接続すべき箇所で、動かないときにそこを忘れたのが原因だった事もあった。
アスキーの西和彦氏が、高校時代にリレー計算機を製作されたらしい。むかし読んだ「マイコンウォーズ(田原総一郎?)」に
書いてあったと思う。なんでも、「おばあちゃん」におねだりして、1個500円のリレーを450個買い込み、自力で設計して
組み立てたとか。
カシオ14A型や、富士通FACOM128などがテレビで紹介されたのをご覧になった方もおられると思いますが、リレーの
鉄片がパタパタ動いているのが見られました。今回のリレー電卓はどうなのかと聞かれた事がありますが、じつはリレーが、
モールドタイプといって、密封してあり中が見えないのです。その代わり、酸素に触れないので寿命が長いとか、ホコリが
入らないなどの利点があります。しかし中が見えず、見た目のインパクトに欠けるのでLEDをできるだけ付けました。
また、かつてのリレー計算機には、接触不良などから計算ミスを防ぐため、誤り検出回路がつきものだったようですが、
今回のリレー電卓には、特に誤り検出回路は付けていません。リレー自体の信頼性にかけています。
コンピュータの歴史を調べると、「リレー式計算機」というものがでてくるけど、実物を見たことがあるとか、あるいは動いて
いるところを見た、使った事があるという人は少ないと思います。私は、この機械を、母校の高校に持っていって後輩たちに
見せたいと思っています。教科書の知識だけじゃなくて先人の業績を「生きた教材」で訴えたいと思います。
数年前、テレビ朝日で富士通・池田敏雄氏の特集番組があったと聞くが、誰かビデオ持ってないかなと思う。そんなのが
あった事自体知らなかったぞ。FACOM128が動作するところが見られたらしい。マニアとしてはぜひ見たい。情報求む。
最近、教育テレビのある番組でもFACOM128が動作するところをやっていた。その事は後から知ったので見逃したが、
ホームページで、ちょっと画質は悪いが動画を見ることができた。
「年間放送予定」の「第7回 OSって何?」の中に、「#3 OSの始まり」というのがあって、そこの中にあります。「資料映像」と
いうところをクリックすると見られます。
http://www.nhk.or.jp/denno/index2.html
12月16日。やっと引き算が正常に動くようになった。本当に引き算には苦戦した。正しい結果が出ず、しかも現象は一定
しない。引き算すると、時々違った値を示していた。 それで色々試行錯誤して、ここ10日ぐらい悶々としていた。
最初は、9の補数で足し算していた。一般的には、2進法で、2の補数を使うのである。2の補数というのは、ビットの0/1を
反転したものに1を足した数である。これはほとんどの場合に使われている方式だ。
ところが、BCD演算は、ほとんどなじみがなかった。普段めったに使う事はなかった。使う場合でも、入力および出力は
BCDとしても、内部的には2進法で計算するようにして、面倒なBCDを避ける方法を選ぶと思う。
本をみると、9の補数を使うとあったのでその通りに作ってみた。あまり考えずに。そしたら、引き算の結果が変なので、
回路動作通りに手で計算したら、9の補数では正しい答えが出ない事がわかった。その後、あれこれ調べたり、誤った結果の
検証をしていく中で、10の補数を使うのが正しいように思われた。
最初のように本に書いてある事を鵜呑みにせず、いくつかの条件で手計算して正しい事を確かめ、それから作り始めた。
二度と同じ失敗はしない。当たり前だけど。最初から気を付けてればこんな回路の回り道はしなくて済んだ。
さあ修正できたぞ・・・・・・よし・・・・・・1234−1234=・・・あれ?1110になったぞ。0になるはずなのに。甘くない。
そういえば確か、引き算の時は、桁間のキャリを通さないのではなかったか。もしそうなら、確かに1110じゃなくて0000に
なる。
キャリの条件は、計算結果が10以上の場合または下位桁からのキャリ入力。ここに、引き算の場合、キャリを出さないように
B接点でゲートを入れた。いや、もともと入っていたのだが、場所が違っていて、なぜか下位桁からのキャリ入力に対して入って
いた。改造して、キャリ出力を引き算の場合のみ切断するようにつなぎ込んだ。
今度こそ大丈夫だと思ったが、再びダメ。0になるはずが8888になる。なんで8888になるか。アキュムレータに直接
ついているビット表示LEDをみると、16進数で言うAAAAになっていた。つまり各桁が10になっていた。BCDではあり得な
い数値だ。
なんで表示が8888になるか、7セグデコーダの仕様である。回路図をみたら、0〜7および9についてはそれぞれデコード
しているが、それ以外の数値については8と表示する。しかも、7セグの駆動を負論理でやっているから、8をデコードする必要は
無いわけだ(負論理とは、どのセグメントを点灯するか、ではなく、消灯する論理)。
AAAAになる原因は、+6補正が無効だからだ。さっきの改造では、引き算のとき10以上検出を切っている。つまり答えが
10以上でもそのままの値になってしまう。これは間違いだ。
キャリと+6は別に考えなければならない。足し算でも引き算でも計算結果が10以上なら+6補正は必要だ。一方、キャリは
引き算の場合のみ切断するように組まなければならない。これでやっと考えがまとまったので、修正したら、やった!やっと
正しく動いた・・・!!
正しく動いたといっても、時々答えが違うという問題がまだクリアできてないので、補数信号をクリップコードで手作業により
つないで動かした。
さて、引き算で時々答えが違ったのはなぜか。これは補数信号のタイミングが原因だった。これは、回路図を眺めていてふと、
もしかして補数のタイミングが遅れているのではないかと思いついた。しかし、回路をちょっと見たところリレー1個分の遅延しか
ないし、接点1個しか通ってないから単純この上なかった。だからいままで疑わなかったというか見過ごしていた。
補数信号にLEDを付けて、動かしてみると計算スタートに対してわずかに遅れて点灯しているように見えた。つまり、最初の
演算に対して、補数の生成タイミングが間に合わず不定状態だったりギリギリだったりするため、計算結果が違ったと考えた。
シーケンサはT0で待機していて、+・−・=などのボタンが押されると即スタートする。=を押すとすぐシーケンサがスタートするが、
じつは、命令レジスタは=を押して、離した瞬間に確定する。ひとつ前に押された−がコマンドレジスタから出力される
タイミングは、=を離した瞬間になるから、遅くなるのである。シーケンサがスタートするとすぐT1タイミングでアキュムレータの
ロードクロックが出るから、それまでに補数が間に合わないと、誤った結果を出力する事になる。
いろいろアクションを起こしてみると、前進するものである。何事も現場に聞け、という言葉を聞いたことがある。行き詰まった
ように感じても、いろいろやってみて、変化があれば何かヒントを得られるかもしれない。
この問題解決には、リレーの遅延回路で、細かいタイミングを作ることにした。コマンドレジスタは、ワンショットで短いパルスを
かける事とする。=を押している時間が長くても影響ないようにする。そして、少し遅れたタイミングで、シーケンサがスタート
するように組み直した。
これらの処理のため、リレー6個の遅延回路を利用した。このやり方は、ICのシフトレジスタで、時間的に少しずらした信号
をいくつか作り、それらをANDしたりORしたりして必要なタイミングパルスを作るのと同じようなものである。
その回路図とタイミングチャート:
じつは引き算には、まだ課題が残っている。今は、引く数より引かれる数の方が大きいか、等しい場合しか正常に計算でき
ない。つまりマイナスの場合に対応していない。BCDの場合は、この処理がちょっと面倒くさくなると思う。
それと、1234+5678−2468=4444のような計算は、まだ問題があり正しい答えが出ない。おそらくフラグをクリアして
いないのが原因と思う。
12月17日、昨夜はタイミングの調整のみ残して寝た。単純な問題なのに頭が回らなかったため。問題はすぐ解決した。
ところが、また新たな問題を発見した。引き算が正常に動くようになったと思ったが、甘かった。ちょっと気になって10−5=を
やってみたら、答えが15と出てしまった。
5(10に桁数を合わせるため、以後05と表記する)の補数は5だ。つまり10+5と同じになる。参ったなあ・・・。10位の1を
引く方法は無いんだろうか・・・。0の補数は0か。結局、補数をごちゃごちゃいじるより、「引き算回路」を設けた方が簡単じゃ
ないか?
ここで再び9の補数を思い出した。9の補数でさっきの計算をすると、答えが104となる。この上位の1を取り、1位に足すと
正しい答えになる。9の補数に戻すか?いやそれは難しい。1、10、100、1000位の順番で計算を進めていくように制御論理を
組んだので、最後に1を足すという処理は、大改造になる。処理がもう1ステップ以上増える。カウンタのビット数を増やし、
デコード回路も改造するのでリレーが増える。
こんなに引き算で苦しむのは、小学校1年生の居残り勉強以来である。九九も居残りだったが、まさかこの年になって再び
苦しむことになるとは、妙なものである。イヤな過去は一刻も早く、忘れ去りたいものだ。
ということで?、やはり引き算回路を追加することにした。足し算回路と引き算回路が同居するというゼイタクな作りである。
足し算だろうが引き算だろうが、両方の回路に入力され、リレーがガサガサと動く。結果は、足し算なら足し算回路の答えを、
引き算なら引き算回路の答えをマルチプレクサで選んで使う。まるで、下請けの町工場に仕事を出すだけ出して、おいしい方だけ
取って、もう一方には金を払わないようである。
ちょっと思いついたが、足し算回路と引き算回路の切り替えのほかに、これらを縦につないでおいて、どっちか使わない方の
片方の入力を0にしておけば、0を足す、あるいは0を引くという処理になって、つまり、スルーになるなあ。セコイかな。これは
思いつきだけで、実際には採用しないだろう。
12月18日。昨日から引き算回路を作ろうとしている。真理値表からゲート回路図を起こし、そしてラダー図を描いて、作り始
めた。とりあえず1ビット分だけできたので、通電して実際に動かしてみた。真理値表を用意して、その通りになっているか
ひとつひとつの組み合わせを試してみた。まずボロー入力を0にして、XとYの全ての組み合わせを試した。問題なし。次にボローを
1にしてみたら、ボロー出力の論理が逆なのを発見した。ゲート回路図の丸(論理反転)をひとつ見逃していた。ゲート回路図
では小さな間違いだが、ラダー図ではリレー1個の追加と、10本ぐらいの接続変更になった。
その回路図(1ビット分)を次に示します。修正は赤い字で書いています。
12月19日。引き算回路ができたので、現状の足し算回路と差し替えてみた。だが、またしても玉砕。デタラメな計算結果
が出た。最初は、補数回路を切っていなかったためだが、それだけではなかった。
あるいは、ほどほどにして、現在間違いなく動く足し算回路を利用して、かけ算回路を早く作ってしまうか。しかし、ラッピング線
の残りが少なくなったので、オヤイデ電気に注文した。500m巻きが消費税と送料込みで¥6,300−。2〜3日中には届くと
思う。それまで製作はスローダウン。
フロに入った後、地道に1ビットずつの挙動を調べていて気づいた。変化しないビットがある。基板をよく見たら、配線を1本
忘れていた。うっ、単体テストを怠っていた・・・。
まず5−と操作した。すると表示が5551になった。あれ?
いや、これは回路の動作としては仕様通りになっている。テンポラリからアキュムレータへのロードは、足し算回路を利用して、
0になっているアキュムレータへテンポラリを足す事で行っている。いまは仮に、足し算回路の代わりに引き算回路を入れている
ので、アキュムレータから引き算をする形になっている。
アキュムレータ (10進数で0000) 0000 0000 0000 0000
テンポラリ (10進数で0005) 0000 0000 0000 0101
−)-------------------------
1 1111 1111 1111 1011
各桁、10以上なので+6補正 0101 0101 0101 0001
つまりアキュムレータの値は5551になる。
うーむ、引き算で答えがマイナスになる場合は、上の桁がみんな1111になるのかもしれんな。そうすると、その補正回路が
必要になってくるのでは。それに+6補正は不要かもしれんな。1111になってる桁に対しては。
ボローがずっと上の桁まであがってくるから、1111になるわけだ。1111の場合は+6じゃなくて+1補正にして0にしたら
どうか。そして、一番上にはみだした1をマイナス符号にしたらどうか。(このへん要検討)
リレー電卓を作る前、夢で何度もリレー電卓を動かしていた。壁一面に、でかいリレーがたくさん並んでいて、自分は
脚立にのっかって、あっちこっちガチャガチャ動くのを眺めていた。なぜかスイッチは、屋内配線のブレーカーみたいなやつで
(夢の中だからデタラメですね)、それをバチバチやって操作した。何か操作すると、どこかのリレーがガチャガチャ動いて、
リレーの大合奏となり、見ていて壮観だった。目覚めると、もっと続きを見ていたかったと思った。夢にまで見るぐらいだから、
かなりのリレーフェチであろう。
ところで、全体の組み立ては、市販のスチール棚を利用したが、これに落ち着くまでずいぶん迷ったものだ。1桁バージョンは、
大きいアクリル板に、基板を8枚並べた。だがよく見ると、ネジ穴のところにヒビが入っていた。アクリルはこういうところが弱い。
衝撃で一気にパックリ割れてしまう心配があった。
スチール棚といっても、高級なものは棚板の裏側に、支えが渡してある。ここが邪魔になって基板取り付けの穴があけられ
ない。安い奴は、ただの鉄板だ。間違って踏んづけた事があるが、こんなにへこむかというぐらいグニャリとなってしまった・・・
手で曲げてそれらしく戻したけど。要するにヘナヘナである。
最初は、棚板だけ別売りで買い集めるという考えがなくて、この3段(キットのデフォルト値)に基板をスペーサで重ねていって
配線すると、メンテとか大変だなあと、ボケた事を考えていた。あるいは、天板と床板の2段だけにして、さきほどのアクリル板を
縦にL金具で固定していこうかという考えもあった。
最近までその方法でいくつもりで、ホームセンターでL金具とかビス、ナットを買い集めていた。でも何だかしっくりこなかった。
アクリルは高いし。
どういうプロセスを経て、現在のスチール棚にたどりついたか思い出せないが、本や資料を保管するために作った5段棚を
見ながら、ひょっとしてこれでいけるんじゃないかと思ったのだろう。こいつをバラして、支柱を半分ぐらいにぶった切って、
組み立てれば・・・と。
それと別売りのキャスターを取り付けて、移動できるようにしようと考えた。こいつが高くて、1個500円もした。4個買うと、
スチール棚3段キットと同じぐらいの値段になる。4個必要なのはわかっているのに、1個ずつ売ってるのが卑怯だ。1個しか
使わない人っているのか?
そうだ、増設用の棚板もそうだった。取り付けのボルトと金具は、棚板とセットになっていない。これまた別売りで、袋ごと
ドッサリ買わされてしまった。しかもこの金具のネジ溝が貧弱で、少しきつめにしめるとすぐバカになる。スチール棚キットに付属の、
ショボいスパナでしめたほうが、力をかけすぎないという意味では正解である。自分はモンキーでしめていた。
増設の棚板を買ったら、最初からキズが30cmぐらいついていた。色は白を選んでいたので、自分の車のタッチペイント
040(スーパーホワイト2)を使った。棚板を白にしたのは寸法線を記入して見やすいため。
利用したホームセンターは、2種類のメーカーの棚キットとパーツを販売していた。どっち用のパーツなのか混乱して、
いらない物を買ってしまった事がある。キャスターなど。
配線の固定には、100円ショップで買ったコードステッカーが大活躍した。15個ぐらい入って100円である。ホームセンター
だと、とてもそんな値段では買えない。スパイラルチューブも同じく1本100円だったが、どれも長さが同じと思ってそのまま
切らずに使ったら失敗した。短いのが混じっていたというか、どうも太さが違うものでは長さも違うようである。
12月22日。今日の昼ごろ、注文していたラッピングワイヤ500m巻が届いた。この宅配便の袋は破れていて、ガムテープが
貼ってあった。大丈夫か。最悪、袋だけ配達なんて事態になっていたかも?(笑)
学生の頃、下宿先から本を実家に送った事があった。店ではかったら22キロぐらいあって、道理で腕が折れそうだった。
20キロまでですと断られたが、ここまで来て引き下がるわけにはいかん。これを抱えて来た道を戻るなんて考えられない。
何とか20キロということで頼むとお願いした。その後、実家でその箱をみたら、底のガムテープが新しく貼り直してあった。
きっと底が抜けたに違いない。縦横たくみに組み合わせて本を詰め込んでいたから、さぞかし戻した人はパズルが大変だった
ろう。宅急便やさんごめんなさい。いまは重いとき、かならず底を補強していますので。
12月27日。しばらくここに書き込まないで製作に没頭していた。すでに4.5段目(かけ算のためのカウンタ回路)に必要な、
レジスタ基板2枚と、デクリメンタ基板2枚ができた。あとは基板同士を配線するだけ。
これらの基板で「ダウンカウンタ」を構成する。ダウンカウンタとは、ある数からカウントダウンをするもので、足し算を繰り返して
かけ算をするためには必要なものである。34×12=のとき、34を12回足すが、そのとき12をダウンカウンタにセットしておく。
そして足し算1回ごとにカウントダウンさせて、0になると演算終了とする。
かけ算は、桁をずらしながら足す方法もある。昔の手回し計算機と同じ方法だと思う。さっきの計算なら、12を4回足し、桁を
左にずらして12を3回足す。左に1桁ずらすのは10倍することになる。この方法なら足し算の回数が比較的少なくて済むが、
今回は採用しない事にした。制御が少々、複雑になりそう。
九九の回路を備えれば、12を3回足す事はない。待てよ?足し算の回路にこれを組み込めないか。足し算のループの中に、
九九回路を通せばいいのではないか。足し算のときは、かける1ってこの回路では?頭の中にそのイメージが浮かんだ。
・・・・・・ところが、実際に紙に書いてみると、そううまくはいかないようだった。
制御回路の大幅改造を避けるには、やはりダウンカウンタで、かける99なら99回の足し算をするしかない。その値が0に
なれば、演算サイクルを終了させるようにゲートを入れればいいから簡単だ。
かけるゼロをやったときに、演算がスタートしないようにするには、T0タイミングでダウンカウンタがゼロかどうか判定する。
また、かけ算の最後のサイクルを判定するタイミングもT0とする。ダウンカウンタがデクリメントするタイミングはT7だ。
ダウンカウンタのブロック図(下2桁分のみ)を次に示す。赤い字で書いているのは、シフト方向が当初と逆になった時の修正。
回路の「記憶」って何なのか?という質問を受けた。これを説明するのは大変だ。まず「リレー」というものから説明しないと
いけない。小学校の頃に釘に線を巻いて電磁石・・・(略)・・・。
簡単にいうと、家のテレビを思い出してもらいたい。リモコンの「電源」ボタンを押すとテレビがつく。この時、テレビは「ON」を記憶
しているとも考えられる。ON状態が維持されているからだ。再び「電源」を押すとOFFになる。これも同様に、OFF状態を記憶
していると考えられる。2進数に置き換えれば、0か1を記憶しているということになる。そういえばOA機器の電源スイッチに、
ONとかOFFじゃなくて1、0と書いてあるものもあった。
どういう仕組みかというと、テレビの場合は、電子回路にフリップフロップがあって(マイコンのポートとか)、それで電源スイ
ッチ(リレー)を制御している。なお、リモコン回路は、電源スイッチとは別電源で、コンセントが差してある限り通電している
ので、常時リモコン信号が受信できるわけだ。
だから、テレビを使わない時はコンセントから抜いておけば節電になりますと言うわけ。
ON/OFF状態を記憶するには、リレー単体だけでも可能である。自分の接点がONになったら、自分のコイルに電源が
つながるような接続にしておく。そうしておいてコイルに通電すると、その電流を切っても、電源から自分の接点を通りコイルに
通電するので、ON状態が保持される。これを自己保持回路という。これじゃ、ONのまま解除できないので、その電源を
切ってやるように、もう1個リレーを追加する。このリレーに通電すれば、接点が開放され自己保持が解除される。この接点
はB接点を使う。普段は導通していて、コイルに通電すると接点が開く仕組みだ。
一応、リレー2個でON/OFF状態が記憶できるフリップフロップができるが、現実の回路にそのまま適用することは
できない。自己保持のために接点によって電源がコイルに流れ込んでいる。入力側に電源が流れ込むことで、前の接続
回路に逆流して影響を与えることがあった。だからリレーをもう1個追加する。回路の仕様を、入力の場合「コイル受け」とする。
出力の場合「電圧出し」とする。そうすると逆流がない。
さらに、シフトクロックでロードさせるには、このフリップフロップを単純につないでいくのではまずい。ひとつの信号が最終段まで
伝わってしまい、全てのフリップフロップの値が同じになってしまう。だからゲートを入れて、かつ、フリップフロップをマスター
スレーブ構成にする。
この「リレー式電卓」に使ったリレーは1種類で、そのデータシートは、 http://www.fcl.fujitsu.com/products/relay/rl04_j.html
で入手できます。型番はBA5W−Kです。以前メーカ名は、高見澤だったが、その後、富士通高見澤コンポーネントとなり、
現在は富士通コンポーネントになった。
現物の写真:
1月1日。世間は「元旦」らしいが自分は「コテ初め」だ。世の中がどうなろうと自分にはどうでもよかった(笑)。年越しで
ダウンカウンタを作っていて、今日の夕方にようやく完成した。
ダウンカウンタ(以下、DCNと略する)は、かけ算のときに、足し算を繰り返す回数を数えるもので、2桁仕様とした。理由は、
この電卓が4桁までしか表示できないので2桁×2桁のかけ算ができれば良いことと、リレーの残り個数が少ないこと、それ
から、もし4桁の繰り返しとなれば時間が相当かかる事が考えられるため。
9999×1はどうするんだというツッコミは無しだ。そんなの、ほかの電卓で計算すればいいのである。
最初は、2桁で良いと思っていた。だからデクリメンタとレジスタ基板を2枚ずつしか作らなかった。ところが、その後いろいろ
考えていたら、2桁じゃまずい事に気づいた。かけ算のアルゴリズムを検討すると、DCNはアキュムレータの写しになる。
かけ算の演算中のみ、ダウンカウントする。
写しというのは、アキュムレータに数値がロードされる時、同時にDCNにも同じ数値がロードされること。アキュムレータが
4桁だから、DCNも4桁にしないとダメだ。
アキュムレータに1234がロードされた時、DCNが2桁しかなかったらDCNは12になってしまう(左シフトでロードされる
ため最後の2桁が残る)。
レジスタを2つ追加で作るのも大変だなあと、クロックを2発ごまかす回路でも組もうかと思った。だが余計に面倒くさそうだし、
結局はレジスタ基板を2枚追加した。デクリメンタは付けなかったが、最低限、ホールド/ロード切り替え用のマルチプレクサ
用のリレーだけは載せておいた。別に無くてもいいけど、あとからもしデクリメンタを追加することになれば、一応スペースだけ
でもあれば助かると思った。
ここまできて、リレーの残りが100個をきった。基板モジュールは何種類かあるが、一番多く作ったのはレジスタ基板だろう。
アキュムレータとテンポラリレジスタ、DCNそれぞれ4桁(基板4枚)かける3だから12枚。そして制御部に1枚、演算部に1枚。
合計14枚だ。リレーは基板1枚あたり30個だから、420個ものリレーがレジスタに使われている。
レジスタ基板を作るのはさすがにイヤになった。ここまできて、ある考えが頭の中をチラついている。もっとリレーを少なくする
方法があるんじゃないか。SRフリップフロップの入力にゲートを入れて、RSTにして、これを何段かつないだ場合、前の段の値が
全部つながってしまわないようにするには、ゲート信号を、最終段から最初の段までの順番で、少しずつずらして入れて
やればいいから、単純に半分でいいのでは、とか。
かけ算の方式については、繰り返しよりもシフトを使うほうが速いが、今回は実用を目的としていないので、繰り返しとした。
リレーではなく、電子回路ならば、どっちの方式だろうが一瞬で済む。中でどんなに愚かな事をしていても、外から見る限り
同じだ。だがリレーはメカ部品であり遅いため、アルゴリズムによって演算時間が大きく異なる。今回は「見せる」「聞かせる」
ために、時間のかかる「繰り返し」方式とした。
かけ算で思い出すのは、小学校の頃のことだ。校内で物置として使われていた空き部屋があった。そこに、大掃除のとき
入ったと思うが、なにやらベニヤ板を組み合わせて作った大きい木箱が転がっていた。そしてその表面には、1、2、3、4・・・9の
数字が2列書いてあり、電球が付いていた。何かの装置のようだった。
数字のところには釘の頭が出ていて、おそらく、釘の頭に電池をつなぐことで、数字の入力としたのではないかと思われる。
中をあけると、釘同士が電線でつないであった。釘と電線と電球以外は使われていなかった。
いつ頃、誰が作ったのかは分からないが、「計算機」を作った先生がいたのだろう。見た感じでは、かけ算を教えるために
作ったものと思われる。電気いじりが好きな自分は、この計算機に大変興味を持った。未完成でほったらかしになっているなら、
自分が回路を考えて、完成しようと思った。
当時は、「設計」に「落書き帳」を使っていた。小学校に入る前ぐらいに、この落書き帳の1ページに発電所を描き、それから
2本の線を延々と、最終ページまで描いていた。この途中のページには、友達の家とか、変電所とか適当に描いたと思う。
確か、配電系統図は、当時の愛読書だったアカデミア百科事典に概略が描いてあって、それをもとに、自分で展開したと思う。
ページとページをつなぐとき、神経質な自分は、線がページの境目で、きっちりつながるように描くことにこだわった。紙の断面まで
ボールペンで塗った。本当に電気が通じているような感覚だった。
おじが電力会社に勤務しており、その影響もあったと思う。当時は、父が電気工事の勉強をしていて、家に屋内配線図用の
テンプレートがあった。それを使って、家の中の配線図を描いて、見てもらったりしていた。そういえば最初はナイフで電線を
むいていて、危ないと怒られ、次にハサミを使うようになったっけ。で、そのハサミで通電しているコードを誤って切断してしまい、
バチッと停電して非難ゴーゴーだった。
さてかけ算回路だが、小学校で習う「豆電球と乾電池」の感覚で、1かける1から順番に回路を描いていった。なんだ
こんなの簡単じゃん。そう思った。最初のうちだけは・・・。
じょじょに九九を「豆電球と乾電池」に置き換えていっていたら、ある事に気づいた。あれ、変だぞ、違う結果が出る!なぜ?
そう、電流が別の回路に回り込んで、「豆電球と乾電池」だけでは、九九ができないのである。ここで、なぜあの木箱が
ほったらかしになっていたのか、私は悟ったのだった。
後で知ったが、ダイオードなどを組み合わせないとできないのだ。
学校のチャイムにも興味があった。木箱に入っていて、ガラスの小窓から中でメカが動くのが見えるやつだった。放送室
に置いてあって、これを眺めたいために、そしていろんな機械にさわれるので、放送部に入ったっけ。不純な動機ですね。
チャイムの動きを、鳴り終わるまでじっと見つめていた。なり始めは、モーターがジーッと鳴り出すのでわかる。ハンマーが
手前に引かれて、弦というか、金属棒に当たる事で音が出る。どんな順番でハンマーが動いているのか、そしてそれらの
メカの動きを堪能していた。鳴り終わると、あわてて教室に駆け戻った。
こういうカラクリってどうやって作るんだろう。そればっかり考えていた時期もあった。夢にまで見た。なぜか内容はメチャクチャ
だったが、今では珍しいテレビアンテナ用のナイフスイッチ(当時、家にいくつかあり、工作用に愛用していた)が夢にでてきて、
これを操作するとキンコンカンコンと鳴るという夢だった。
そうして図書室を探索していて、工作の本を見つけた。電飾の電球を点滅させるカラクリが紹介されていて、これは目から
ウロコだった。なにか複雑な回路がいるのかと思っていたが、その本のは、ブリキ缶に斜めにペンキを塗り、通電するところと
しないところを塗り分けていた。これをモーターで回転させ、複数の接点でなぞると、電球が点滅するという仕掛けだ。つまり
オルゴールのようなものだ。
使われている材料はどれもこれも、簡単に手にはいるものばかり、これならできると、喜んだ。結局ウヤムヤになって作ら
なかったけれど。
ただ、これは大きなヒントを与えてくれた。順序だった仕事をこなしていく、つまりプログラムが実行できるわけだ。
追加したい機能。
ほとんど意識しないが、一般の電卓には、目立たないが便利な機能がある。
1. =のあと数字が入力されたら、新しい計算とみなし、アキュムレータをクリアする。
2. コマンドキー再入力機能。引き算のつもりだったが誤ってプラスを押したとき、すぐマイナスを押せば良い。
例: 3+−2= の順で操作する。
3.連続計算(正式に何というか知らない)
これは市販の電卓で、できる奴とできない奴、また操作方法が違うものもあるが、標準的には、1+=====と、
=を押すと数字が増えていく。内部的にはどうやっているかというと、入力レジスタの値を保持しておいて、アキュムレ
ータに足し込んでいる。新しい数字を押すと、入力レジスタはクリアされる。
このうち現状のハードウェアで、容易に実現できそうなのが3である。かけ算をするためにも、入力レジスタを保持するように
なっていなければならない。
電卓の演算は基本的に、アキュムレータを中心に実行されていると思う。たとえば、1+2+と操作すると、そこまでの結果が
3と表示される。アキュムレータには3が入っている。続いて5+と操作すると、アキュムレータに入力レジスタの5が足されるので、
アキュムレータは8となる。
2だが、現状ではコマンドキーを押すとコマンドスタック(2段)がシフトされるので、このままでは再入力機能が実現できない。
コマンドキーが続けて入力されたかどうか判定する回路が必要になる。
1は、1+1=2をした後、続けて別の計算を、たとえば2+3=のように操作した場合、最初の計算の結果が影響しないという
ものだ。普段、電卓を使っているとこんな事は意識しないが、電卓を設計する側は、こういうところを配慮している。そのための
回路(論理)がわざわざ組み込まれているのだ。当たり前のように思うが、これがあるとないとでは大違いだ。神経質な人は、
次の計算にうつる時にいちいちACを押すだろうが(笑)。
これはどういうカラクリかというと、=のあと数字が入力されたら、新しい計算だと判断しアキュムレータをクリアしている。
Windowsの電卓でも、1+====・・・はできる。電卓を研究していると思う。以前のバージョンではできなかったような気が
するが勘違いか?
10年以上前の電卓には、ある程度のページ数のある説明書が添付されていたが、現在はどうだろう。最近買ったことがない
のでわからないが、箱の裏側に書いてある(裏側というか箱を開いた内側)か、紙1枚だと思う。100円で売ってる奴は説明書
すら無いかも??(未確認)
関数電卓は別として、一般の電卓なら誰でも操作方法は知っている、というか、普通の操作は、計算の手順通りだから説明書は
不要という考えもある。「警告!」とか、「注意!」とかのPL法の表記いらんだろう電卓には。「電子レンジに入れないでください」
とか、書くのかな。
一応、説明書に書いてある操作例は全部できるようにしたいと思っているが、あくまで希望であって、現実の問題たとえば
リレーが足りないとか、工作する体力がないとかで、できないかもしれない。
なんせ、メモリー機能を追加しようと思ったらそれだけでスチール棚1段か2段追加になる。こんな状況だから、なるべく
物理的に(ハードウェアで作るのだから)、実現可能な機能を優先したい。
昔の電卓といえば、たいてい裏側を見ると「BNマーク」があった。最近のには無い。うちの古い電卓fx−101(カシオの
関数電卓)には、ちゃんと付いている。最初、BNマークというのを知らず、なんだこの指みたいなマークはと思っていた。
で、比較的新しいEL−334L(シャープ)には、BNマークは無いがCEマークは有る。
ちなみにこのEL−334Lは、会社のゴミ箱で拾ったもので、コーヒーをこぼしたため捨てられたようだ。一応動作したが、
キーがベタベタして、押し込んだまま戻らないので、分解して洗浄した。基板以外、洗えそうな部分は全部、洗剤でよく洗った。
基板はアルコールで汚れを拭き取った。結果、新品とはいかないまでも、普通の状態に戻って、いまも現役。今回のリレー式
電卓のデバッグでは、検算用として大活躍。
fx−101だが、バグを見つけた。3−1−1−1=と操作すると、答えは0になるはずだが、マイナス0と表示される。マイナス
ゼロって何じゃ。5−5=でもマイナスゼロだ。一般的には、ゼロの場合、プラス符号としているので、マイナスゼロというのは
変だな。
この電卓は面白くて、ある数を入れて、COSとかSINなど押すと、表示がチラチラチラ・・・とクルクル変化してから答えが出る。
一生懸命考えているというふうに見えて、まるで生き物のようだ。
1位だけ数字が表示され、それがチラチラしている。それ以外の桁は表示されていないので、おそらく演算中は、ゼロサプレスの
回路を操作して表示を強制的に切っていると思う。1位だけはゼロサプレスの対象外だから、表示されているわけだ。チラチラを
よく見ると、計算結果の数字がいくつか確認できたので、左シフトしながら答えを押し込んでいき、最後に表示をONしているの
だろう。ビデオにとってスローで見て確認したい。
この動きをMPEGにしてアップロードしたかったが、ビデオがどうしても接写できず、文字がボケボケになってしまってダメ
だった。
カシオfx−101と、シャープEL−334L
おぉ〜!!二大巨匠メーカーが並んで登場だ。 この電卓、両方ともゴミ箱出身。運命の出会いってやつだねえ。
スキャナにのせて取り込んだ画像なので、ボケていますがお許し下さい。
おまけとして、私の所有している「計算尺」HEMMI NO.254WNの写真を示します。
平方、立方、三角関数、逆数、ログ、かけ算、わり算などができるスグレモノです。但し、持ち主の技量に左右されます。
私は、かけ算とわり算のやり方しか知りません(笑)。
まだ追加していない機能。
1.符号の処理(マイナスの数)
一応、符号ビット用のレジスタや、+/−符号変換キー、マイナス符号表示桁を備えているが、符号処理のための
論理をまだ作っていない。BCDなので、2進数の2の補数表現より符号の処理が複雑になる。
かけ算、わり算は、マイナス同士なら答えはプラス、片方がマイナスならマイナスとなって簡単に論理が組めるが、
問題は足し算引き算だ。足す数足される数、それぞれの符号がプラスかマイナスかだけじゃなく、どっちが大きいかも
判断して、結果の符号を決定しなければならない。マイナスの数の足し算は、引き算として処理するか、など検討している。
2.小数点
小数点位置の管理や、桁をずらす処理などがハードウェア的に規模が大きくなるため、断念した。
3.わり算
制御論理が複雑になり、また大幅改造が必要になるため、断念した。
わり算に小数点まで追加したら、これはもう大変だろう(笑)。
回路のデバッグだが、このように状況を詳しく書き記し、要点をまとめて対策を検討した・・・と理想っぽい話ではなく、実際は
このように、バリバリと書き殴っているのである(笑)。
頭で考えることに、手で書くのが追いつかないので、字がメチャメチャになってしまう。思考の速度で文章を書くには、
キーボードから打ち込むのがいいように思えるが、すぐにメモがとれて、自由に絵を描いたりできる紙と鉛筆に軍配が上がる。
いまは「手仕事」のものがずいぶん少ないんだなあ・・・。
というのは、じつは花森安治の「一銭五厘の旗」の中の、「重田なを」を読んで思った。
このおばあちゃんは袋物(ハンドバッグや財布)の職人だが、戦前は「歓呼してなをのハンドバッグをむかえた時流も」、
戦後は「手仕事は機械に追いかけられ、革はビニールに追いまくられはじめた」とある。
大量生産、大量消費の時代になったのだ。
そう、たとえば携帯電話なんかそうだ。まだ使える状態で一日7万個が捨てられているという。次々に新しい機種が出るし、
作りもおもちゃみたいで華奢だ。それに、電池が悪くなったから買おうと思ったら電池が高いから、結局、新しい電話を買う
ことになる。使用済みのものは、リサイクルしているともいうが、粉々につぶして溶かして、金とか銀を取り出してリサイクル
するのはいいかもしれないが、なんか間違っているような気もする。
(バックライトのLEDや、高周波デバイスにはガリウムヒ素が使われているが、粉砕したときに飛び散ってるんじゃないか?
大丈夫か?)
人の手を経ず、機械でドンドン作られて、安くなったのはある意味では良いが、作り手のたましいがこもらなくなった。だから
愛着もわかないし簡単にポンポン使い捨てにされるんだろうな。
その点、このリレー式電卓は、完全なる手仕事で、世界に1台しかないし、こいつのメンテができる人間もひとりしかいない。
この回路、設計方針、デザイン、配線のやり方など、あらゆる面に、職人の人生観、考え方、学んできたこと、性格が反映
されている。商品としての性能は、100円電卓には劣るかもしれないが、工芸品としての価値は・・・・・なーんて、宣伝して
みたり(笑)。結局、自己満足なんだけど(^_^;)
もうなんなんだか自分でもわけわからなくなってきたぞ。
ポリテクセンターに通っていた頃、リレーや、三菱のシーケンサを使ったシーケンス制御の授業があった。学校独自の
テキストがあったのだが、クラスメイト(といっても、20代から50代まで様々だったが)のひとりが、難しそうな本を持って
きていた。その人は、実は島原工高の大先輩だったりするのだが。
「遠方監視制御技術の実際」(日新電機株式会社 宮川房之助著/電気書院)という本である。遠方制御というのは、
この場合、発電所や変電所などの制御を意味している。
この本に書いてあるが、人里離れた原始林の中にある変電所で、水は2kmも山を下らないと入手できず、時にはクマも
出没するので人が住めないようなところに利用する。また人件費節約とか、その他もろもろの理由で、遠方制御をするそうだ。
リレー回路のところだけ部分的にコピーしたものしかないが、独特のノウハウというか、現在のシーケンサでは使って
ないような方法が見られる。
げげっと思ったのは、コンデンサに蓄えた電気によって、一瞬だけ1個のリレーを動作させるというもの。それ以上長い
時間ONしていると、他のリレーまで動作して、支障が出る回路に用いる。カウンター回路への応用例がのっていたが、
確かに「きわどい」と書いてある。それを使わない方式も紹介されていたが、まあ色々考えるものである。
「制御所側装置」として、実際の回路が紹介され、解説が付いていたがなんだか複雑すぎてさっぱりわからん。やっぱり
昔の人は頭が良かった?モノが無いなら無いで、創意工夫する力がすぐれていたんだという感じがする。
さて、最近になって「なぜスイッチで計算できるのか」という質問があった。いやあ、簡単ですよ。そういうふうに作ってある
から計算できるんです。・・・なんていう答えじゃだめですよね、ヤハリ。
コンピュータは、2進法で計算していると聞いたことがあるだろうか?
ふだん我々は、とくにそう言わないが10進法で計算している。一方、コンピュータの場合は、2進法で計算するほうが都合が
良いので、2進法で計算しているのだ。
なぜ2進法でなければならないか?
どこかで本の記述を見た記憶があるのだが、確かフォン・ノイマンの論文だったかと思う。コンピュータは何進法が適切かと
いう証明で、数式が書き連ねてあった。結論として、2と3の間の数字が出ていて(自然対数の底)、きりのよい数字という事で
2進法が良いという事だった。
学者はこんなふうに数式を書き連ねて証明しようとする。
われわれ電気屋は、もっと現実的な回答つまり、電気のオンとオフで2つの状態があるから2進法がいいんじゃない?と考える。
「電子計算機基礎論」(手塚慶一 編著/昭晃堂/昭和54年3月10日初版3刷発行)の4ページに、Nobert Wienerが
1940年頃に行った勧告文の内容が載っている。
その中で、「N個の数を表示するのに、何進法を用いるならば最も経済的であるか」という証明があり、表示装置のコストを
最小にする計算式より、自然対数の底eが求まっている。2か3進法になるが、実際には2値素子が多いことから2進法が最適とある。
はあ・・・何進数が最適なのかわざわざ証明するんだねえ・・・って思った。数学苦手だからなるべく避けたい(笑)。
要するに電気のオンオフで、2進法の1か0を表現するわけだ。
あとは、リレーを組み合わせて、入力に対して必要な出力が出るように作ってやればよい。
AとBの足し算だと、次のような組み合わせになる。
A B A+B 繰り上がり
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
2進法では、10進法の2がないから(0と1しかない)、10と表現する。1+1=10というわけだ。
さて足し算回路だが、A+Bが1になる条件を考えると、(Aが0であり、かつ、Bが1である) または (Aが1であり、
かつ、Bが0である) ということになる。繰り上がりの条件は、(Aが1であり、かつ、Bが1である) となる。このように、
入力に対して出力をどうするかの条件を決める。
2002/02/09
さて、デジカメで撮影した「リレー式電卓」の写真を公開します!!
この撮影時、6段積みの棚の最上段(表示・入力)のみ、取りはずして改造中でした。
全体の寸法は、高さ58センチ、横幅68センチ、奥行32センチです。
上の写真は、左から、[表示・操作部]、[制御部]、[前面]、[背面]です。
左から、[ディレイライン基板]、[ロジック基板2]、[テンキー(貧弱!)]、[テンキーエンコーダ基板の接続部]です。
テンキーが貧弱なのは、ボタンがジャンクコーナーで10個80円だったからですねえ・・・。
配線に番号チューブが付いていますが、これは以前、某所で自治体の防災表示板を作る仕事をしたときに、余りをもらった
んです。
2002/02/24
なんだ2月もそろそろ終わりか。早いもんだ。ずいぶん暖かくなってきたし、もう雪が降ることもないだろう。
そういえば・・・(いつも、こうやって思い出すんだ)・・・某出版社に、このリレー式電卓の件で、取材の話をしていたのだが
どうなったのだろう?
たしか12月中旬頃にメールを送って、向こうから了解の返事があって、日時は改めて連絡しますという事で待っていたのだ
が・・・たぶん忘れているかもしれない。
こちらから改めて催促したほうがいいのかどうか。もしこのままだったら、他社に交渉することも検討するか?
さて現状どうなのかというと、相変わらず足し算しかできない状態である。かけ算はどうなったか?動かないのである。困った。
いや、ずっと悪戦苦闘しているんじゃなくて、他にやる事があって、保留になっているんだな。こんなふうにブランクがあるのは
あまり良くないんだ・・・再開したときの障害になるから。
実際、久しぶりにロジックを見たら、なんでここはこんなムダな事してるんだろうとか、ここがこんなふうになってるのは、なにか
考えがあっての事だったっけなあ?とか、引っかかる事も少なくなかった。
ロジックを組むときは、頭の中にゴチャゴチャがモヤモヤしていて、それが一瞬ピントが合う瞬間があるわけですよ。それを
一気に、紙に書き写すというか?
勢いにのって、仕事をやっつけるから、あとから、どういう発想だったのか思い出せない事もあるんですね。
正直言って、ここまで組み上げてきて、忘れている部分もあるわけですよ。後になって出てきた問題点もあるし。
たとえば、アキュムレータが、ある数値の条件で、どうしてもクリアできないビットが残ってしまう。そのため、連続して計算する
時に、ゼロにならないもんだから次の計算に足されてしまう問題がある。これが、いろいろ調べたのだけど原因がいまだに
わからない。しょうがないから、いちいち電源を切ってクリアしている。
いっそのこと、アキュムレータの電源をパワーリレーで、一括で切ってしまう方式に変更して、これをアキュムレータのクリアと
するか?という考えもあるが、あまりスマートとは言えない。しかしどうやっても原因がわからないんだね・・・。
●2002年5月10日記
プロジェクト終了宣言!
いくつかのバグが解決しないまま、プロジェクトは一応、終了することにしました。私としては、自分でリレー計算機を設計製作
して、コンピュータの大先輩たちの通ってきた道を、疑似体験できた事が良かったと思います。
ついこの前、各段間のぶっとい配線(ブラブラ、ぐちゃぐちゃ)を整理して、インシュロックで固定しました。これで一応は、完成品の
体裁が整いました。
高校生の頃からの長い夢がかないました。こんなモノ作ったって何の役にも立たないですけど、もともと自己満足のプロジェクト
ですから・・・自分が満足できたのだからそれでじゅうぶんだと思っていましたが、みんなにも楽しんでもらえて、その事が嬉しかっ
たです。
中学の頃、友人と共同で、ちっちゃい田んぼを作り、稲を育ててわずかな量でしたが、米を収穫しました。
その米を精米して、炊き、うまいメシを食うその瞬間のエクスタシー。
リレー式計算機も同じだと思います。リレー1個ずつを配線して、膨大な量を組み上げ、その有機的結合が電卓という機能体として
完成し、キーを押すと回路が複雑にからみあって動き、結果を出す。その動きが視覚・聴覚にリアルに訴えかける。
ところで、ブツはでっかくて、邪魔になるので部屋の隅に移動させて、カバーをかけました。
もし学校関係で、情報処理教育の一環として?、教科書にちょっとしか歴史がのっていない、リレー計算機の現物を生徒に
見せたい(見たい)という要望がありましたら、喜んで協力させて頂きます。
まずは母校の島原工業高校に持っていこうと思っています。
パソコンとか、携帯電話とか、そういう機械の原理など一般人の手から離れてしまい、どういう仕組みになっているかなんて
考える人もほとんどいないでしょう。
でも原理的には同じなんですよね。間違っても、人間より賢くなって創造力もあるなんて事はないわけです。
単に、規模とか速度とか、容量とか、デバイスの違いだけの問題です。
LSIの中で何が起こっているかなんて、知る由もありませんが、しかしここには、リレーがあります。
目の前でひとつひとつのリレー接点が動き、それらが複雑に組み合わさって計算をしています。
その動いている音が聞こえます。なんとか目に見える速度で動いている様子が見えます。計算がリアルに感じられます。
原理に極めて近いものが、このリレー計算機なのです。
コンピュータとは何か。
インターネットやワード・エクセルが全てではありません。
それらは一部であって、可能性は無限にあると思います。下逸の世界に閉じこもっていたら、それだけで終わりです。
やはり基本を教育していく事が、非常に重要ではないかと思うんです。
CPUの中には、レジスタとか加算機があって、命令を解釈して実行していく仕掛けになっている。要するに、データの移動と
加工でしかないということ。人間よりは馬鹿な機械なのです。そのあたりを理解していれば、パソコンなどオモチャ同然です。
(えらく飛躍してるなあ・・・笑)
まあいろいろありましたが、ここ14年ぐらいの夢が成就したし、言いたい放題書いてスッキリしました。
夢は現実になりました。
それなら、また新しい夢を見ましょう。
ということで、これにて。
THE END
最後に、「病膏肓(こうこう)に入(い)る」とは、こういうことだったんだなーと思う。(最初から結論を決めてるなんて変ね)
●なお、この文章は、気が向いたら書き加えたり修正したりします。(終了)
●ご意見ご感想は mad@fsinet.or.jp へどうぞ。
↑このアドレスは現在、無効です。
●「1234+5678=6912」を計算しているビデオ画像(MPEG)を、ご覧ください(6MB)。ダウンロードする
>>> 2002/05/10記 <<<
このMPEGの内容ですが、1234+5678=6912が出たのに、なぜその後、カシャカシャ・・・と動いて6912と
再び表示されるのかという問い合わせがありました。
これは、演算中のLEDの点滅を見せるため、わざと空回りさせたものです(=を押しっぱなしにすると、レジスタが
ローテイトして、空回りします)。
なお画面上側の「これは体験版です。」という表示は、AVIからMPEGに変換したソフトが体験版だったからです。
>>> 2002/11/16記 <<< 以下のファイル3つも、ダウンロードできるようになりました。
●全体像は、こちらでビデオを見る事ができます。改造のためバラして展開したところを撮影しました(1.5MB)。ダウンロードする
●リレー基板をハンダ付けしているところ。基板1枚あたり1000点ぐらいのハンダ箇所があります(3MB)。ダウンロードする
ところでハンダの煙って、なんで、顔に向かってくるんでしょうねえ。みなさんそう思いません?(調査依頼するしか)。
●リレー基板をラッピング接続しているところ。ラッピングとは、細い線を端子に巻き付けていく接続方法です(6MB)。ダウンロードする
電動ラッパーも持っていますが、手巻きのほうが身軽なのです。ここで作業しているのは補数回路の部分です。