8088ボード(ハードウェア編)
HD1-6120ボードはちょっと置いておいて、また新たなCPUボード作ってみました。
今回もEMILY Board用です。
EMILY Boardは外付けパラレルROMで動かせる知っている限りのプロセッサを動かせるようにと計画したものなので、よほど変態的なプロセッサでない限り工夫すれば繋がるはずです。今回の8088は素直な部類ですね。
いつものように基板を見ていきます。
個人的に製作してきたものの紹介です。
電子的なものがほとんどですが、そうでないものも出来るだけ出していきたいと思っています。
回路図、ソースコードなどは出来ればすべて載せたいのですが、以下の理由で難しいものが多いです。
残っていないのではなく、そもそも書かないことが多かったためです。
もちろん仕事ならば書きますが。
特に古いものでは雑誌など掲載のものをベースにしているものがあり、オリジナルと分離できないものは公開できません。
5インチや8インチのフロッピーだったり、PC-9801フォーマットだったりして読むのが難しいものがあります。
HD1-6120ボードはちょっと置いておいて、また新たなCPUボード作ってみました。
今回もEMILY Board用です。
EMILY Boardは外付けパラレルROMで動かせる知っている限りのプロセッサを動かせるようにと計画したものなので、よほど変態的なプロセッサでない限り工夫すれば繋がるはずです。今回の8088は素直な部類ですね。
いつものように基板を見ていきます。
予告どおりソフトウェア編です。これまでの「ソフトウェア編」ではモニタ程度のものが動いていることが多かったと思いますが、今回はプログラムの実行ができているらしいとわかる程度です。
最も簡単なテストプログラムは実行開始番地で無限ループさせるものでしょう。
HD1-6120(IM6100も)は0FFFH番地から実行を始めますので、ここに0FFFH番地へのJMP
命令を置きます。これを実行させておいてアドレスバスの状態を観察するとA0~A11までがすべて"H"になっていて0FFFH番地を読み続けていることがわかります。
次に異なるアドレスでループさせてみます。
HD1-6120でダイレクトにJMP
できる先は、同ページ(アドレスの上位5ビットが同じ)か0ページ(アドレスの上位5ビットがすべて0)だけです。それ以外へ飛びたいときは同ページか0ページにアドレスを書いておいて間接アドレッシングを使います。ここでは簡単に0ページで試してみます。
去年入手したHD1-6120、ボード作りかけのまま時間が経ってしまいましたがやっと動くところまでたどり着きました。
いつものようにEMILY Boardを利用します。HD1-6120は12ビットバスなのでEMILY Board +8が必須となります。
基板の表側、搭載部品を見ていきます。
もちろん40ピンの大きなのがご本尊HD1-6120-9です。
前回は開発環境を準備したところまで書きました。あとは目的の論理を書くだけと言いたいところですが、ちょっと気になることがあるので先に試してみることにします。
それは以下のような箇所があることです。
オープンドレインによる(負論理の)ワイヤードORです。上の2つは実際は独立したオープンドレインバッファではなくLSIの出力がオープンドレインになっています。
残念ながらGAL16V8にはオープンドレイン出力の機能はありません。探すとオープンドレイン対応のGAL16VP8というものが存在したようなのですが、今さら入手は難しいでしょう。念のためにAliExpressとeBayを見てみましたが発見できませんでした。
ちょっと訳あってGAL動かしてみました。
これまでにも勤め人時代にAltera(今はIntelになっています)のEPM7128とかLatticeのLC5256MVなんかは使ったことがありました。公式には私はソフトウェア担当だったのですが、いろいろあって回路やこのようなPLDの設計も何度かやる機会もあったのです。
個人的にはGALやXilinxのXC9500など必要になったら使えるようにデバイス調達したり書き込み環境準備したりしていたのですが、いつも汎用ロジックで何とかなってしまい実践する機会がありませんでした。
そんな中、機会が到来しました。
TMS9995ボードにUniversal Monitorの基本部分(D,G,Sコマンド)の移植ができましたので、アセンブリ言語でプログラミングしてみて感じたことを書いてみようと思います。
何年も前に入手したままになっていたTMS9995、やはり動かしてナンボだと思うのでEMILY Boardで動かしてみることにしました。
EMILY Board用のCPUボードはいつも似たようなものになります。
これ、自然とそうなるというだけではなく、敢えてそうしている面もあります。EEPROMとオシレータとかどのボードにもある部分はなるべく共通にして機械的に作業できるようにしています。このボードにはありませんがアドレスラッチなども同様です。
まずは表面から。
しばらく前に手に入れたRP2A03、ボード作って動かしてみました。
このようにCPUを安直に動かすにはEMILY Boardが楽です。新規に作ったハードウェアはこのボード1枚、ソフトウェアもUniversal Monitorをそのまま使用しました。
基板の配線が終わったら電源ラインの確認後、発振器とCPUのみ搭載してクロックの確認を行ないます。M2(6502のφ2相当)にCLKを12分周したクロックが出てくればひとまずOKです。
動かないまま保留しているWDCのW65C02ですが、先日efialtes_htnさんよりVihを満たせていないのではないかとのコメントを頂き、入力ピンの電圧を確認してみました。
実測でもそれぞれ4.98V, 5.00V, 4.98Vと問題ありませんでした。