思い出の手作りマイコン
もう使う事はないけれど、思い入れがあって何となく保存している物、ってあると思います。
でも、その存在すら忘れてしまうほど年月がたってしまう。
そして、ある時、ふと、思い出す。
いつもは、前進前進!と、がむしゃらに走っているけれど、たまに振り返ってみる。
あの頃の自分といまの自分を比べてみる。
あの頃はこうしたけど、いまならこうする。
あの頃はできなかったけど、いまならできる。
あの頃は、お金も、部品も満足に揃わなかった。
ハンダ付けも配線もヘタだった。
こんな簡単な物でも、動くまでには大変な努力が必要だった。
ひとは自己満足というかもしれないが、これを作ってすべてが始まった。
これは自分の第一歩だった。
■1号機 (1989年)
とりあえず使う事もないしなあ。どうしようかと、いままで何度も思ったけど、壊しても部品箱
のコヤシになるだけで面白くないし、他人にとってはどうでもいいシロモノだけど、こうして
その姿だけでもネット上に公開できればと思います。これを作った当時はインターネットは
無くて(一般には無くて)、まさか、こうやって発表する機会がくるなんて考えもしなかった。
なにしろ、音響カプラで、300か1200bpsでピーヒョロローの時代ですよ。
もともとは「ラジオの製作」の1983年頃の連載で、カードエッジのユニバーサル基板に、
CPUとかメモリとか、I/Oとか、各ブロックを1枚ずつ組み立てていって、最後にバックプレー
ン(スロット)に差し込んで、マイコンシステムを組み上げるというものでした。これが最後の
マイコン記事でしょう。筆者は、確か、坂本耕二さんでした。
(同様のシステムは、トラ技の神崎康宏さんのZ80マイコン記事がありました)
この1号機を作ったのは高校2年の春休みだったと思います。2年の終わりでした。1989年?
その前の夏ぐらいから、とぼしい小遣いの中から通販で部品を買って、部分的に組み立てて
いました。しかし配線ミスでICを焼いてしまったり、CPUの周辺のみ作っただけですから、プロ
グラムが走るわけでもなく、動作確認もできず、ラジオを近づけてノイズが聞こえるのを確かめて、
動いているのかなあ?と想像する程度でした。
測定器はテスターだけで、オシロはありませんでした。ROMライターも無いし、RAMに直接
トグルスイッチでDMAをする手段も持っていなかったので、そこまでしかできなかったのです。
いつまでもそんな事をしていてもしょうがないので、正月のお年玉を待って、それもそんなに
予算はありませんでしたが、いかに予算内におさめるか、拾ってきたテレビなどから部品取りを
したり、回路図を見て省略出来そうな部分を探したり、あれこれ工夫しながら作り直しました。
もともとの記事では、各ブロックを1枚ずつのカードに組むわけで、アドレスデコーダなんか
各々の基板に独立して付いていたわけです。でも回路図を総合的に見ていくと、別々のブロック
で共用できる部分が見えてきました。そのほか、この空きゲートが、こっちのブロックで使え
そうだ、とか。未熟でしたが、それなりに考えていたと思います。
部品は、手元にあったジャンクから部品取りしたほかは、サトー電気の通販を利用しました。
古いパソコン2台から部品取りをしています。日立MB−H1(これは壊れたのをもらった)と、
セガSC−3000Hだったと思います。SC−3000Hは片面基板だったので部品取りが容易
でした。
私は、Z80(DIP40ピン)をはんだごて1本で取り外すテクニックを開発しました(笑)。Z80を
持ち上げるような力をかけておいて、端子のハンダを端から端へはんだごてをスライドさせな
がら全体的に溶かしていくのです。そうしているうちに、だんだん浮いてきます。片方の列が
完全に浮いたら、あと半分は楽になります。
なにしろ地方だから、部品を売っている店などありません。抵抗1本だって入手するのは
大変でした。たとえば、4.7Kオームが必要だ!という時は、テレビのジャンク基板を隅から
隅まで、それこそ目を皿のようにしてカラーコードを読み、まあ、4.7Kだからキ・ムラ・アカと
(木村赤?)頭の中で何度も暗唱しながら探したのです。
手持ちのジャンク基板をいくつも探しても見つからない時だってありました。でも見つかった
時は、おおっ、あった!あった!という具合で、本当にもう、嬉しかったもんです。今じゃ、
抵抗1本で興奮するなんて事はありませんが・・・ヤッター!!という感じだったんです。
ところでラ製の記事のような、スロットに差し込む方式だと、フレームとかバックプレーンとか、
機構的な部品にお金がかかりそうで手が出ないと思いました。回路図を眺めながら、必要
なのはCPUブロック、メモリブロック、I/Oブロック、入力+表示ブロックの4つだから、4枚の
基板をつなぎ合わせて1枚にしたら、どうだろうと考えました。
お金が無いので、最初は、3枚で構成しようと考えていたと思います。部品が載りそうにない
ので、4枚になったと記憶しています。無理に詰めればできなくもないでしょうが、余裕をみて
4枚にしたことが成功につながった要因のひとつでしょう。
これが現物です。
上段 左:メモリブロック 右:CPUブロック
下段 左:I/Oブロック 右:入力+表示ブロック
配線の流れは、基本的に、このようになっています。
■ ← ■
↓
■ → ■
いま思えば、こういう風に回路がいじれるようにしておいたのが良かったと思います。
この4枚の基板を積み重ねるという方式もあったかもしれませんが、それでは改造や
測定が面倒だった。平面に展開したのは正解でした。
基板はサンハヤトのICB−505というユニバーサル基板を、4枚つなぎ合わせて構成して
います。確か、これが安かったし、ふちに電源用の銅箔パターンがあったのが便利でした。
大きいユニバーサル基板で、電源用のパターン付きは無かったと思います。
基板と基板のつなぎ目は、スズメッキ線を正弦波のようにグネグネ曲げて、お互いの基板に
またがってハンダ付けしました。よく銅箔がはがれないものだと思います。一応、補強用の
金具を入れてみたり、接着剤を塗ったりしてはいますが・・・。とりあえず、現在もしっかりして
いるのは事実です。
各ブロックの接続は、最小限の配線でスッキリしています。上の写真を見ながら考えると
良いと思いますが、もっとも配線が多いのは、メモリとCPUの間です。アドレス16本、データ
8本です。I/Oへの接続は、さらに減って、データ8本のほかアドレスデコードに必要な
アドレス線が数本となっています。
このように、ブロック同士の接続点をわかりやすくして配線をスッキリさせたのが成功の
要因だったと思います。
部品が揃ってから、いっきに三日間で組み上げました。確かリセット回路に問題があったぐ
らいで、一発で動いたと思います。
リセット回路の問題というのは、たしか、電解コンデンサの不良じゃなかったかと思います。
何しろジャンク基板から部品取りしたやつですから、不良になっていても不思議じゃありま
せん。
一番最後にリセット回路を組んだと記憶していますが、配線を見直しても間違ってなくて
電解コンデンサを交換したんじゃなかったかと思います。
ところで、ROMをどうやって書き込むかが重大な問題で、これができなければ完成できません。
学校の先生に話して、設備を使わせて頂きました。確かアドバンテストのROMライターだったと
思います。友人と、ダンプリストの読み合わせをしながら、何度も確かめて書き込みをしました。
破損に備えて、同じ内容を2個のROMに書きました。上の写真で、ROMが2個ささっていま
すが、1個は予備です。
なお、このROMは、その夏に壊れたMZ−1P07(MZ−2000用のプリンタ)から部品取りし
たものです。これを学校で、ROMイレーサを借りて消去し再利用しました。
ROMの遮光シールは、当時よく使っていた5インチフロッピーの、プロテクトシールがピッタリ
でした。
なお、ROMの書き込みは、基板の組み立て以前に済ませていたと記憶しています。基板の
組立が終わったら、すぐに動かしてみたいですからね。
その当時のダンプリストです。(全3頁)
ラ製の記事から手書きで書き写して、何度もチェックした跡が残っています。
上のほうが汚いですが、これは、たぶんレポート(学校の実習の報告書)を書くとき、ボール
ペンの先にインクがたまるたびに、ここにこすりつけて汚れを落としていた痕跡でしょう(笑)。
それでは、各ブロックを説明していきます。
まずは、CPUブロックです。
感電注意!のシールは、「写ルンです」の内部に貼ってあったシールでしょう。
写真屋さんの店先に、「ご自由にお持ち帰り下さい」と書いたカゴがあって、そこにフィルム
ケースや、使用済みの写ルンですが入っていました。それらをもらってきて、よくオモチャにして
いたものです。
でかいのがZ80で、左の3つのICはバッファのLS245です。アドレスとデータ用のバッファ
ですが、もともとの製作記事の回路ではスロットで拡張する方式なのでバッファが入っていま
す。こんなワンボードではバッファは無くても大丈夫だと思います。ICを抜いてジャンパーで
接続してみた事もあるかもしれませんが、記憶が定かではありません。
アドレス用は、片方向なのでLS244でも良いのですが、ピンの並びが、配線をする上で
不便なので、きれいに並んでいるLS245を好んで使っていました。
片方向の、ピンがきれいに並んでいるバッファとしてはLS541があります。なぜ使わなかっ
たのでしょう。当時は無かったのか?高かったのか?
あるいは、たぶん、どこまで変えて良いのかわからなくて、動かなくなるのが怖くて、
とりあえず製作記事に忠実に作ったのでしょう。
バッファの入れ方ですが、もし、各ブロックを1枚ずつのボードに組み立てていくのならば、
各ボードの出入り口にそれぞれバッファが必要なのは当然でしょう。しかし製作記事では
バッファが入っていたのはCPUブロックのみです。
本当は、各ブロック(デバイス)の出入り口にバッファを入れた方が良いでしょう。たとえば
PC−9801のCバスに、8255をのせた自作ボードをつっこんだりしていましたが、8255の
データバスにはバッファが必要です。なぜなら、同じデータバス上に存在する他のデバイス
をもドライブしなければならないからです。
もし各ボードごとにバッファを入れた場合でも、必ずしも良い事ばかりじゃなくて、バッファの
制御ロジックが複雑になるし、バッファを入れた事で最悪、タイミング的に厳しくなってウェイトを
入れる必要があることもあります。
感電注意シールの上のソケットは空ですが、もともとLS74用です。ここでクロックを1/2
分周してCPUに加えていました。製作記事の通りに作っただけですが、欲があったのか、IC
を抜き、バイパス用のジャンパー線を差し込んで、4MHz駆動にしてあります。CPUはもともと
4MHz仕様だし、メモリのアクセスタイムも問題ありません。
感電注意シールの下はLS04で、これはよく知られている、水晶発振回路です。あまりすすめ
られる回路じゃありません。いまなら水晶発振「器」を使いますね。EXO−3とかJXO−5とか。
右に並んでいるLEDは、8255の空きポートから、裏側に配線を延々とひっぱってきている
だけで、CPUにつながっているわけではありません。
あとから出力ポートのモニタ用に、LEDを追加しようとしたときに、ここの土地が空いていた、
というだけの理由でした(笑)。
右の写真ではLEDが点灯していますが、私は8255の設定コマンドを頭で覚えており、
キーを叩いて、文字通り、直接ポートを叩いて操作していたものです。55だ、AAだと、(16進数)
ガシャガシャ入力して表示させていました。
LEDの下にはオーディオアンプ回路があり、これも同様に8255の空きポートの1本をオーディオ
出力として、LM386で増幅し、右側のジャックに差し込んだ外付けスピーカを鳴らすようにしていまし
た。
ポートに1、0を、ある周期で出力すると音が出るわけです。
MZ−2000のマニュアルに、モニタプログラムのアセンブルリストが載っていまして、そこに、
音楽演奏をするルーチンが含まれていました。これを移植して、10曲ぐらい、データを作ったので
電子オルゴールとして機能します。
上の写真で、右下に見えているのはリセットボタンです。サイド型ですから、横から押します。
裏側の配線は、CPUからバッファICへの本数が多いです。これは、配線をする順番を
考えながら1本ずつつないでいきました。青と黄色の配線を先にやっているでしょう。そのあと
赤をやっています。もし逆にしたら、配線をかきわける必要があるし、よくある事ですが、被覆を
はんだごてで焼いてしまうでしょう。
この写真は、その部分の拡大です。
銅箔が黒ずんでいるのが、歴史を感じさせますなあ。京都や奈良に修学旅行で行きましたが
仏像や、歴史のある建物の銅の色にはまだまだ遠く及びません??
当時は、間違いなく配線をするだけでも精一杯だったのを思い出します。今なら、配線ミス
なんかひとつも無く組み立ててしまうし、部品レイアウトや、電源まわりの強化や、配線の順番に
気を使って、きれいに仕上げるという事は当たり前になっています。
でも当時は、そこまでできなかった。とにかく部品を載せて、配線していくだけで大変だった。
それでも、失敗した経験から、少しでも丁寧に組み立てようとして努力していたわけです。
ちなみに電線も通販で購入しましたが、当時はラッピングワイヤなど知りませんでした。
サトー電気から、切り売りの10色セットを買ったと思います。
次は、メモリブロックです。
上の2つ(銀色シール)がROM、下の2つはRAMです。
左上の黒いジャックは電源コネクタで、これは日立のMSXパソコンMB−H1から部品
取りして電源ボックスごと、そのまま移植したものです。よく見るとトグルスイッチがついて
いますが、これが電源スイッチです。
ROM、RAMいずれも8Kバイト品です。すなわち2764、5565ですね。
裏側の配線は、ひたすらにバス配線がしんどかったですね。ここが一番のヤマ場と言いましょう
か?コツは、下から順番に、あとの配線が干渉しないように考えながら配線をする事です。
この写真は、その部分の拡大です。
よく見ると、下のピンから順番に、交互に配線をつないでいます。
あとから、RAMのバッテリバックアップを追加しようとして、改造した痕跡もみられます。
そして、I/Oブロックです。
左側のコネクタはプリンタポートです。MSXやPC−6001、昔のPC−9801など、このタイプの
コネクタが多かったですね。
プリンタインターフェースは簡単で、8ビットのデータを出力しておいて、プリンタのBUSYを監視
してLならプリンタの準備ができているので、STBを負論理で1パルス出すと、プリンタが受け付け
ます。これですぐに印字されるわけではありません。改行コードが来るか、プリンタ内部のバッファが
満杯にならない限り、印字しないわけです。
その下のコネクタはカセットインターフェースのつもりでしたが、そこまで回路を組む余裕がありま
せんでした。リレーや、ハイブリッドICはその残骸です。セガのSC−3000Hから部品取りしたもので
す。ハイブリッドICは、訳も分からず取り外してきました。メーカーから資料がとれると思っていたの
ですが、結局問い合わせをするまでには至らず、よく考えればSC−3000Hの基板を解析しておけ
ば良かったと思う。もう捨ててしまっていた。
カセットインターフェースのPLAY/REC端子からと、たぶん8255のポートあたりからと、両方向
から逆にたどって、ハイブリッドICまでの回路を調べれば良かったのです。
8255が2個並んでいて、ちょっと変わっているのは、これらが「メモリマップドI/O」という事です。
通常はI/O空間上にマッピングしますが、これはなぜかメモリ空間上にあります。8255をアクセス
するときは、確かそれぞれ6000hと6200hから、じゃなかったかと思います。Z80のシステムでは
珍しいやり方です。
いま思うのですが、せっかく8255を2個搭載するなら、自由に使えるように拡張コネクタをつけて
おけば良かったなあ。当時とてもそこまで手がまわらなかっただろうし、基板の空きスペースもありま
せんね。
右側に並んでいる抵抗、トランジスタは、入力+表示ブロックの駆動回路を一部こちらのブロック
に実装したものです。555の発振回路で、CPUにINTが周期的に入り、それで7セグとキーボードを
ダイナミックスキャンしています。
最後に入力+表示ブロックです。
このキーボードは、昔のワンボードマイコンに使われていたものと同じだと思います。ひょっとした
ら、MZ−80Kもこれじゃなかったのかなと思います。
キーボードの左横の赤っぽい板は、7セグLEDが見やすいように貼り付けたものです。じつはコレ、
その後、進学して下宿していた長崎市内で、ゴミ捨て場から拾ってきたパチンコ台の7セグ部分から
取り外したものです。京楽のサン・スカーレットV7だったと思います。
上がアドレス4桁、下がデータ2桁の表示になっています。 ↓現在も動作します!!
じつは、入力+表示ブロックが最も簡単そうなので、ここから作り始めたのですが、7セグの並列配線は
面倒だったし、細かくてとても大変でした。でも、今回は絶対に完成させるという強い意志で、頑張って
仕上げたと思います。ちょっとでも線をはんだごてで焼いてしまったら、取り外してやり直しをしました。
だから、被覆が焦げた線は1本もないはずです。
配線には普通のビニール線を使っていたものだから、ハンダ付けの時に爪でおさえていると、
熱で被覆が柔らかくなっているので、跡が残ってしまうんですね。実際、あちこち残っていました。
よく見ると、オレンジ色の配線のハンダ付け箇所のそばの被覆に、爪の跡がついています。
それと7セグの紫色の配線がグネグネしていて気持ち悪いですね〜。
このマイコンは、作った時から、その後進学した専門学校を卒業した頃ぐらいまで使っていたと
思います。いろいろな勉強ができました。
自分で作ったプログラムを、ROMの空き領域に追加して、サブルーチンとして呼び出せるように
してあります。全てハンドアセンブルで、キーボードから1バイトずつ打ち込み、プリンタにダンプ
リストを出力するサブルーチンが完成するまでは、電源を切りませんでした。暴走させないように
気を付けていました。
ラ製の連載では、MSXなどに使われていたVDP(TMS9918)を搭載していて、私もMSXから
抜いたTMS9918とDRAMを別基板に配線して、このマイコンにつないでみました。しかし
使い方がわからず、資料もなく、電源が5V以外に必要だった事もあり、テレビ表示は動くまでには
至りませんでした。
そうそう、このマイコンを作った当時は、ニッパーで線をむいていました。それも、使い古しの
切れないヤツです。いま思えば、あきれるほどの根性です。
線の皮むきに使う道具は、ニッパー以外知りませんでした。その後、学校でワイヤーストリッパー
を見つけて、こんなに簡単に皮むきができるのかと、大感激しました。しかしマイコンの配線の
ように、電線の先端を少しむく、という用途には使いにくかったと思います。ハサミみたいな形
のものではなく、バネ仕掛けになっているやつです。
結局、島原まで行って、ホームセンターで新しいニッパーを買い、おおっ、新品はこんなに
切れ味が良いのかと、しばらくはニッパー派でした。
専門学校に進学してからだったかなあ。ホーザンの、青い柄のワイヤーストリッパーを買った
のは?いや、就職してからだったか。忘れた。とにかく、けっこう高いので、ニッパーでいいやと
思っていたのです。
その頃からラッピングワイヤーを使い始めました。最初は藤商電子から0.32φの青い線の
50mだったか100mだったか、リール巻きのを買って使っていました。
あとは、最初にいた会社で、0.26φの緑のラッピング線が標準で、個人でも同じようにして
現在に至っています。
最後に、このマイコンは学校の先生に頼まれて、同じものをもう1台作りました。同じといっても
基板は4枚合体じゃなくて、大きいのをもらいましたし、材料は全部支給してもらいました。今も
学校にあるか、先生が個人的に所有されていると思います。
★2009/01/10
動画を追加しました。 →こちら (9 10 11)
★
■2号機 (1990年)
数年前に分解したので存在しません。合掌。
でも写真は、どこかに残っています。
テトリス専用マシンとして作ったもので、LEDを10列20行並べた電光掲示板と、CPU基板から
構成されていました。MSX用のジョイスティックが接続可能でしたが、表示方式が完全にソフト
依存のもので、実際に作ったあとで、表示をダイナミック点灯するのは無理だと気づいて、
そのままボツ。
これを作った頃はテトリスにハマっていました。夜に、長崎プリンスホテルを見て、そうだ!
あれで対戦テトリスができないか?部屋の電灯をいっこずつ制御したらブロックが表示できる
のでは?と、ひそかな野望を抱いていたものです(笑)。
ご参考: 長崎プリンスホテル
専門学校の入学直後に、デンキのカホでパーツを買い集めてマイコンを作ろうとしたけれど
うまく動かなくて、その後、何度か作り直して、ようやくまともに動くようになった。それが2号機
だったんじゃないかな。
ロータリ式ディップスイッチを並べて、アドレスとデータを指定し、プログラムを1バイトずつ書き
込むというジゴクのサンチョーメ?のようなマシンでした。しかもお金がなくて、ディップスイッチが
4個しか買えず(1個が600円だったか、非常に高かった!)、アドレスが00FFh番地までしか
指定できません。
もっとも、ロータリ式ディップスイッチでマシン語を入力するのもそれくらいの容量が限界でしょう。
あまりグルグル回していると、ゆるゆるになって壊れてしまいそうです。
はじめてPSG(AY−3−8910)を使ったのも2号機です。レジスタに値を書き込んでいくと、
ボヨン!という音が出たと思います。たしか、8255経由で接続していたので、たいへん面倒くさ
い手順でアクセスしなければなりませんでした。
LEDを並べて電光掲示板を作るとき、配線が大変なので何か良い方法はないかと思ったら、
「マイコン回路の手ほどき」(白土義男/日本放送出版協会)という本の42頁に、「ワイヤリング
ペン」というものが紹介されていました。
これは何物かというと、ポリウレタン被覆のエナメル線です。ハンダごてで熱すると、被覆が
溶けて容易にハンダ付けできるそうです。電線の皮むきや予備ハンダの手間がありません。
こりゃいいやと思い、デンキのカホで見つけて買ってきました。これでLEDを配線すれば
ラクチンだなあと思ったら、思ったように被覆が溶けてくれないし、ピンセットで傷をつけたら
なんだかショートしそうだし、あまり良い印象を持たないまま、しまい込んでしまいました。
実は、最近また、ちょっと使い始めました。10年前以上前から、ほとんど使わないままの
状態で保存していて、まだタップリ残っています。
あのときにハンダ付けがうまくいかなかったのは、はんだごてのせいかもしれません。この
被覆が溶けるには結構高い温度が必要のようです。たしかあのときは、長い時間熱しないと
うまくハンダがまわらなかった。
現在は、細かい表面実装の部品が多くて、改造でジャンパー線をとばすのに、このポリウレタン
被覆線が活躍しそうですね。0.5mm間隔まで、1ピンずつ並べてハンダ付けする自信があります。
■3号機 (1991年)
2号機の反省をふまえて、さらに専門学校の卒業研究の課題として作った物です。
当時テレビでやっていた「新・スパイ大作戦」の影響を受けて「THE SPY BOX」という名前に
しました。
ビジネス系のコンピュータ学校だったので、ハードウェアまでやる人は他にいませんでした。
こういう携帯式のケースの中にコンピュータが入っているというのはあこがれていました。当時は
ノートパソコンはありませんでした。世の中には存在していたのかもしれないけど、学校には、
PC−9801LV21(ラップトップ)が何台かあり、実習の時に使いながら、こういうの欲しいなあと
思っていました。
このケースはどこかで見たことがあるかもしれませんが、本来は、カセットテープを入れておくもの
です。
これに、見栄えをよくするために?、黄色いプラスチック板を貼り付けて、おまけで「禁煙」プレート
を貼りました。深い意味はありません。
上フタにLED電光掲示板(32×24ドット、赤)があり、下は怪しいスイッチなどが付いています。
電光掲示板の前に貼ってある赤いシートは、ミッキーマウスの下敷きを切ったものです。
(後日記2005/10/23)
(よく見ると MAEDA COMPUTER 4 と書いてある・・・3号機じゃないんだ。)
(確か・・・専門学校に入学した直後に、初めてデンキのカホで部品を集めて、マイコンを1台作っ)
(たかもしれない。いや、CPUを作るんだと言って、ロジックICをでかい基板にゾロゾロ並べていた)
(やつが何号機だったのか、記憶が定かでない。)
卒業研究が終わったあとも、個人的にあれこれと改造をして楽しんでいました。
あとから追加したのは、プログラムがカセットテープにセーブ、ロードできるようにカセット
インターフェースと、赤外リモコンは付けたっけな。忘れました。
カセットインターフェースはうまく動きました。
外部から音声を入力してそれをメモリに記憶、カセットにデータとしてセーブしたものを、
早送り再生すると、音声らしく聞こえるのが面白かったですね。
MSX用のジョイパッドが2つ接続できるから、対戦ゲームも可能です。じつは対戦型
テトリスを作りたいなと思って、そうしたんです。
スピーカが付いているから音も出るし、オプション?のFMトランスミッタを差し込むジャック
もあります。RS−232Cインターフェースは、オーディオのステレオジャックを利用した、
TXD、RXD、GNDだけのものでした。これでモニタを走らせてデバッグができました。
MSX−TURBO RのMSX−DOS上でプログラムを開発していました。デバッグは、
シリアル通信の送信と受信のところだけ、アセンブル時の切り替えで、MSX−DOSの
1文字入力と表示に差し替え、MSX上で動かしていました。
メモリ空間は全てRAMで、ブートプログラムはどうやってロードするかというと、右に
あるパラレルポートを使うのです。これをパソコンのプリンタポートにつないで、パソコンで
簡単なBASICプログラムによりオブジェクトコードを送り込むと、こいつの内蔵ハードウェア
が(74HC393でした)アドレスをインクリメントしながらRAMに書き込んでいくという仕掛け
です。
しかもRAMはバッテリバックアップしています。
なぜか太陽電池が付いていますが、これはタダの飾りです。
これは確か拾い物で、道ばたに泥まみれで放置されていました。汚いケースを取り外し、中身
だけゲットしました。本来は自動車のバッテリーの自然放電を補うという目的のものです。
右の写真は底ですが、これはデンキのカホのジャンクコーナーにあった、オーディオ機器用の
足です。
さて内部を紹介します。度重なる改造で、グチャグチャになっております(笑)。
電源は単2ニッカド4本で、充電回路(といってもダイオードと抵抗だけ)を備えています。
大きい方の基板は3段になっていて、一番下がCPUボード、中がI/Oボード、上が
見えているLED駆動ボードです。
小さいのは、あとから追加したカセットインターフェースです。
大きい基板の3段重ねを横から見たところ。
もう、これ以上、分解して何かやろうという気をなくしてしまう配線です(笑)。
これを1本ずつはずしてやらないと一番下の心臓部(CPUボード)に触れる事ができま
せん。
I/Oボードの配線の様子です。
よく見ると、最初の配線はきれいに曲げて整理されていますが、あとから追加やら改造をした
ために、あっちこっちにジャンパー線が飛びまくっています。
卒業研究の期限までにギリギリ間に合わせようとした事をリアルに思い出します(笑)。
ロジックは全て74HCシリーズで、携帯用の機器ですから消費電流を節約しようとしました。
しかしLEDの電光掲示板が大食らいですから、1時間も使えなかったと思います。連続稼働で
40分ぐらいだったかな。
サウンド用ICのSN76489を搭載していましたが、鳴ったのか鳴らなかったのか忘れました。
電池駆動のシステムなのに、こういう電気を食いそうな部品は載せないほうがよかったかもし
れません。
これがLED電光掲示板の裏側です。
日付は「’91/9/19」と書いてあります。おおっ、いま気づいた。クイッククイック!
両面スルーホール無し感光基板です。これは自作しました。
インチ目の方眼シート(サンハヤト製で、カホで買ってきた)の上に透明フィルムを敷いて、
ただひたすら、インスタントレタリングを貼り込んでいきました。
焼き付けは、このフィルムと感光基板をガラスではさみ(確か、相棒のテレビ台から拝借した
のではなかったかと)、屋上にのぼって、日なたで、じーっと我慢です。片面の露光が終わったら
裏返して、また、じーっと我慢です。
ガラスは、完全に真っ平らだと考えがちですが、じつは違うんです。微妙に反っています。基板
とフィルムを2枚のガラスでサンドイッチしたら、密着している部分としていない部分があるのに
気づきました。密着していない部分は、像がボケるので、パターンが細くなってしまいます。
それと両面板なので、それぞれの面のフィルムがズレないように位置決めが重要です。あらか
じめ、位置決めをしてテープでつないでおきました。
両面の感光基板はけっこう高かったです。それが、1回目は焼き付けに失敗して、パターンが
無くなってしまいました。2回目も、かなり怪しかったのですが、結局、LEDの足を利用して、
隣同士を確実に接続して回避しました。
LEDの個数は32×24で768個です。
ガラスエポキシ基板なので、ふつうのドリル刃ではスムーズに穴開けができません。すぐに
切れなくなってしまいました。何本も買い込んで、つぶしてしまいました。
穴開けは同じ下宿の松本君に手伝ってもらいました。768×2(LEDは2本足)=1536穴
です。ジゴク!!
これは表側です。
なぜか相棒のサインがあります(笑)。
LEDを1000個買ったのも初めてで、これを1個ずつ、ブレッドボードに差し込んで、点灯試験を
してからハンダ付けしました。点灯しないものが数個あったと思います。1000個入り袋と
言っても、10個ぐらい余分に入っていました。
縦の1列をハンダ付けするたびに、ひとつずつ点灯試験をして、その列の作業は終わり、としま
した。
じつは卒業研究の発表には、電光掲示板だけ間に合わなくて、RS−232Cでのデバッグ
モニターの実演だけにしました。
確か、その翌日ぐらいに、電光掲示板が動くようになったと思います。
最初は、スキャンのスピードは速ければ速いほどいいんだと思って、最高のクロックを入れていま
した。しかし正常に表示できませんでした。
あとから、ためしに遅いクロックを入れてみたら正常に表示ができるようになって、なーんだ、と
思いましたね。
電光掲示板の機能としては、卒業研究のグループのみんなでフォントを全て手作りし、新・スパイ
大作戦のオープニングだったか、MISSION IMPOSSIBLEという文字が流れるようにしたり、
モザイクとか色々な表示効果を試しました。
それから、グラフィックのサブルーチンも開発しました。直線を引くには、DDAというアルゴリズム
を使いました。割り算が必要ないので速いし簡単なのです。
同様に円を描くサブルーチンにも挑戦しました。1/4円か、1/8円を描いて、対称にコピーして
いけば高速で描けますが、これは結局うまくいきませんでした。
なお、このLEDは、I/O空間にマッピングしています。00h〜7Fhまでです。つまり、画面に
対応すると・・・
00h 01h 02h 03h
04h 05h 06h 07h
08h ・・・・(略)
このように並んでいるわけです。I/Oのその番地へのアクセスは、VRAMへのアクセスになりま
す。
IN A,(C) などという命令がありますが、じつはCだけじゃなくて、BCレジスタの内容が
アドレスバスに出るので、I/O空間を64Kバイト利用する方法もあるのです。
OSというほどでもないけれど、アセンブラで3000行ほどのプログラムを作って、動かしていました。
最後の追い込みで、毎晩、徹夜をして明け方にコンビニに買い物に行き、食べ物を買ってきて
食べてまたプログラムを作り、疲れたらコタツでそのまま寝ていました。
起きて目が覚めたら、また続きをやって、ハンダ付けをして、疲れたらそのまま寝て、起きたら、
また続きを・・・という生活サイクルになっていました。
きつかったと言えばきつかったけれど、好きなことに夢中になれる時間って、とても幸せだった。
もう、そんな時間は、とれないと思います。