自分の始めてのコンピュータ EX-80を復活させてみました。1980年くらいに秋葉原の角田無線で購入したものです。
当時NEC製のTK-80がヒットして、後発だったためかEX-80はそれほどヒットしなかったと思います。ワンボードマイコンはその後のPC-8001などの発売で、無くなっていきました。EX-80はTK-80にはないTV出力を持ち凝った作りになっています。カセットインターフェースもTK-80は原始的なトーンバーストでしたが、EX-80はその後標準的に使われる事になるカンサスシティースタンダードでした。
マイコン雑誌RAMの「マイコン手づくり塾」に掲載された構成図です。
1975年にアメリカではAltairが発売され、同じ年の暮れに完全互換のIMSAIが発売されたようです。76年には日本でもTK-80が発売されました。EX-80は78年で廉価版のEX-80Aが79年に発売されました。
TK-80に対してEX-80はずいぶん遅れた感じがしますが、実は東芝は独自アーキテクチャの12ビットマイコン TLCS-12Aを使ったキット(EX-12/5)を先に発売していて、EX-80はその後に出たためのようです。
キットではなくパーツを集めて自作という方法もあったのですが、ROMをどうするかの問題もあり、中学生の私は難しかったと思います。
昔の8ビットのCPUは他にもいろいろあるので、あまり複雑なことはせずできるだけオリジナルのままで使えるようにすることを目指します。
電源ユニットがわけあってずいぶん前に無くしていて、電源を用意するところからです。手持ちの5Vと12Vの出力がある電源を使う事にしました。8080はこれ以外に-5Vが必要なのですが、これはLTC1144で作る事にしました。EX-80の定格は5Vが2.5Aで12Vと-5Vが0.5Aと結構大きいです。
追記:実家を整理したら出てきました。PANAFACOMのLA14A-Aを一緒に買っていたようです。この頃はまだスイッチング電源が普及してなくて、でっかいトランスとトランジスターで作られています。
電解コンデンサーはEX-80に合わせて昔のものを使ってみました。最近の電解コンデンサーは黒いものが多いですが、この頃はグレーのものがほとんどでした。
同じ8080を使ったNEC製のワンボードマイコンTK-80は自力のチャージポンプで-5Vを作っていて外部からの供給は必要なかったようです。
私の持っているEX-80は後期に廉価版として販売されたEX-80Aという製品で7セグが省かれていて、表示はテレビをつないでつないで行います。また初期の製品ではセラミックパッケージのICが使われていたようですが、私のものは全て黒いプラスチックパッケージです。
EX-80Aは本体価格65000円だったようです。これがなければ今の私はなく中学生の私にこれを買ってくれた両親に感謝しています。
テレビとの接続はアンテナ(RF)で、まだ手元に地上波アナログがあったころのVHSのビデオがありそれで受信して、コンポジット出力をov511なUSBモジュールを使ってMacのアプリmacamで確認してみました。
初代のファミコンもRFでのテレビ出力で、AV(コンポジット)出力に改造しているページを見つけて同じようにしてみたのですが、うまくいきませんでした。
80年頃のテレビにはほとんどAV入力がなくて、一部高級機種のみについていました。そのためファミコンなどはRFで放送と同じ電波の信号でテレビに接続していました。
毎回ビデオを使うのはちょっと不便なので、アナログチューナー付きov511を押し入れから探して、これをつかって表示するようにしてみました。
macamのov511のサポートコードは私が書いたのですが、チューナーサポートコードは入れていませんでした。このコードを書く前にFreeBSD上でVIDというオープンソースをいじっていて、そちらにはチューナーサポートのコードを入れた事を思い出して、macamにもおなじように入れてみました。
チューナーサポートはビデオのデコーダー(SAA7111A)の入力切替の設定とチューナーモジュール(FI1236MK2)に周波数の設定をI2Cでおこなっています。地上波アナログ放送が終わって、このモジュールはもう使うことないと思っていましたが、こんな再利用方法があるとは思いもしませんでした。
「プログラム例題集」にサウンド関係のプログラムもあるので、macamのov511サポートにオーディオ用のPT2313Lの制御も入れてみました。以前探した時はI2Cの記載がないデーターシートしかなかったのですが、今回探したら見つかりました。PT2313LのI2Cは1バイト単位なので、一度に二つ設定するようにしました。
EX-80にはテンキーが付いていて、バイナリをこつこつ入力する事もできますが、さすがにしんどいので、カセットインターフェースの信号でMacからバイナリを送り込む事を試してみました。Javaで昔FSKのプログラムを書いていたので、それをちょっと改造してみたのですが、うまくいきません。いろいろ調べてみたのですが、分からないのでオーディオ信号ではなくTTLレベルの信号をFTDIのチップのBITBANGでクロックとデータを直接送り込む作戦にしました。J9,J10のジャンパーをコネクタ側にしてコネクタにFT232Rを接続します。
試行錯誤してどうにかデータが受信されるようになりましたがチェックサムでエラーになります。
この機種のチェックサムは送信データの総和+チェックサムが0になる値を設定する必要がありました。
バイナリが送れるようになったので、オープンソースのクロスアセンブラを探してみました。8080とZ80は互換があるのでZ80のアセンブラも使えますが、ニモニックが違っています。せっかくなので8080のニモニックのアセンブラがないか探したらありました。
これで以下の「プログラム例題集」の最初にあるコードをアセンブルしてみました。
ORG 8200H
START XRA A
MOV L,A
LOOP1 INR B
MVI H,80H
MVI A,82H
LOOP2 MOV M,B
INX H
CMP H
JNZ LOOP2
JMP LOOP1
% asm8080 shima.asm
shima.binができるのでexldaで送り込みます。[LDA]ボタンを押して以下を実行します。
% exlda shima.bin
[RUN]ボタンで実行してSW2をBITにします。
FT232RはFT2232Dに変更しました。
EX-80はTTLを組み合わせてDMAをおこなっていたりして、かなり複雑です。
オプションのROMソケットが2つあるのですが、2708用で+12Vと-5Vが出てるので2716などは使えません。
当時の電子工作系の王道はハム(アマチュア無線)でしたが、自分の住んでいたところから試験会場までが遠くて試験を受けることができなかったので、マイコンをいじるようになりました。角田無線は今は小売はやってませんが、今もあるビルの階段を上って左側の小さいスペースに、いろいろワンボードマイコンがあったような記憶があります。(角田ビルは2021年に取り壊されたようです)
アマチュア無線の試験は数年前にハムフェアーの時に晴海じゃなくてビッグサイトで受けてどうにか4級(電話級)に受かりました。
EX-80のすぐ後にPC-8001を手に入れ、外部からデータを流し込む方法はなんとなく考えていたのですが、それを実現するのに40年もかかりました。
8080の最初の頃の開発環境はセルフではなくTOSBACやPDP-11だったようです。ネットで調べてみたら、Fortrunで書かれた8080のクロスアセンブラがPDP-11 RSX上に有ったようです。おそらくこれらのホストのttyにROMライターを接続して、アセンブルしたバイナリを送って焼いていたのではないかと思われます。
実はこのEX-80は最初に作った時にはちゃんと動かなく、地元の駅の前にあった東芝系の会社にお願いして、担当部署に送ってもらって直してもらいました。結構がんばって自分で調べたのですがだめで、だめもとでその会社に相談した記憶がなんとなくあります。
自分の中でEX-80と洋楽の「Just the Two of Us」がなんかつながった記憶になってる。EX-80を手に入れた時期にヒットしていたからだと思う。
追記
使わなくなったSCSIケーブル(50pin)をちょん切ってコネクタにつないでみました。
PIOと+12V,-5V以外を全て出してあります。
以前試してうまくできなかったコンポジット出力をもう一度トライしたところうまくいきました。ちょっと綺麗になります。
トランジスタはジャンク袋に入っていたものです。ピンの並びは違いますが2SC1815と同じ特性のようです。
Common Source Code ProjectにEX-80のエミュレータがありますが、ROMのイメージがないと使えないようです。
電源をコネクタにしました。(2024/11/14)
8080関係のページ