工作
個人的に製作してきたものの紹介です。
電子的なものがほとんどですが、そうでないものも出来るだけ出していきたいと思っています。
回路図、ソースコードなどは出来ればすべて載せたいのですが、以下の理由で難しいものが多いです。
- 回路図については無いものが多い
- どうせ1台しか作らないのだから紙に線を引くのと、実際に配線する手間は大して違わない。
- バス配線などは書かなくてもわかる(各デバイスのD0同士を接続するなど)。ずらすなど注意を要するところだけメモがあれば困らない。
- 雑誌などの記事・データシート・アプリケーションノート等を参考にしたところはそれを見ながら配線すればよい。
- 著作権的に公開でない
- 古いメディアに入っている
- 本当に失われた
残っていないのではなく、そもそも書かないことが多かったためです。
もちろん仕事ならば書きますが。
特に古いものでは雑誌など掲載のものをベースにしているものがあり、オリジナルと分離できないものは公開できません。
5インチや8インチのフロッピーだったり、PC-9801フォーマットだったりして読むのが難しいものがあります。
TMS9995ボード (ソフトウェア編)
TMS9995ボードにUniversal Monitorの基本部分(D,G,Sコマンド)の移植ができましたので、アセンブリ言語でプログラミングしてみて感じたことを書いてみようと思います。
- 豊富なレジスタ
16と数が多いだけではなく基本的に対等なのでやりくりに苦労することがあまりありません。まぁ実態はメモリの一部なので直接メモリアクセスするのに比べメリットは少ない(命令長が短くなる・一部レジスタ専用の命令がある)ですが。
TMS9995ボード (ハードウェア編)
何年も前に入手したままになっていたTMS9995、やはり動かしてナンボだと思うのでEMILY Boardで動かしてみることにしました。
EMILY Board用のCPUボードはいつも似たようなものになります。
これ、自然とそうなるというだけではなく、敢えてそうしている面もあります。EEPROMとオシレータとかどのボードにもある部分はなるべく共通にして機械的に作業できるようにしています。このボードにはありませんがアドレスラッチなども同様です。
まずは表面から。
RP2A03を動かしてみた
しばらく前に手に入れたRP2A03、ボード作って動かしてみました。
このようにCPUを安直に動かすにはEMILY Boardが楽です。新規に作ったハードウェアはこのボード1枚、ソフトウェアもUniversal Monitorをそのまま使用しました。
基板の配線が終わったら電源ラインの確認後、発振器とCPUのみ搭載してクロックの確認を行ないます。M2(6502のφ2相当)にCLKを12分周したクロックが出てくればひとまずOKです。
W65C02続報
動かないまま保留しているWDCのW65C02ですが、先日efialtes_htnさんよりVihを満たせていないのではないかとのコメントを頂き、入力ピンの電圧を確認してみました。
- BE, RDY, SOB
これらはVihとしてVDD×0.7 = 3.5V以上を要求しますが、10kΩでVDDにプルアップされており問題ないと考えられます。実測でもそれぞれ4.98V, 5.00V, 4.98Vと問題ありませんでした。
MUTIF09
Universal Monitorを移植しようと組み立てたMUTIF09、他の石も載せてからと思っていましたが時間かかりそうなのでとりあえず現状です。
MUTIF09はKasumi YOSHINO(JA1UMI)氏のシングルボードコンピュータボードで、資料はBOOTH・プリント基板はオレンジピコショップにて入手可能です。Universal Monitor移植に最低限必要なもの(と手持ちがあって迷いのないものの一部)を搭載しています。
それでは基板上の部品を見ていきます。
MN1613のステップ実行(その2)
MN1613のステップ実行(その1)以降、少し進展がありました。
一つ目はアドレスバスとMEMR, MEMWをLED表示する基板を用意したこと、これで1本ずつテスタで電圧を測る必要がなくなりました。
本当はIOR, IOW, FSYCなども見たいところなのですが、EMILY Boardのリボンケーブルを利用する形にしたので諦めました。アドレスの上位4ビットは未使用ピンに割り当てたのですが、あまり今回だけの信号を割り当てるのは避けたかったのです。数も少ないことですしテスタ対応すればすむことです。
データバスはコネクタまでは準備したのですがLEDは未実装です。ステップ動作中でもメモリの内容はEMILY Board側から自由に参照・変更できるのでとりあえず無くても何とかなりそうだからです。
MN1613のステップ実行(その1)
以前、MN1613のリセット時に何かあるようだと書きましたが、このまま放置するのは気持ち悪いので少し追ってみることにしました。
16チャンネル以上のロジアナでもあれば簡単なのでしょうが残念ながら持っていません。
幸いMN1613のメモリアクセスはハンドシェイクなのでそれを利用してステップ実行を試みることにします。
手っ取り早く追加してみたのがこの回路です。
MN1613ボード(モニタ移植編)
前回は簡単なテストプログラムを動かしましたが、その後アセンブラもある程度動作するようになったのでいつものUniversal Monitorを移植することにします。
しばらくボードを動かしていなかったので念のためにもう一度小さなプログラムを試してみましたが、何故か動作が変というかいきなり暴走している感じです。
原因はいくつか考えられます。
- ボードかCPUが壊れてしまった
- (リセット動作には不明な点が多いので)以前動いたのは偶然だった
- アセンブラが誤ったコードを吐いている
ハンドアセンブルと比較したり、以前と同じコードを試したりで3.で無いことはすぐに判明しました。
MN1613ボード(動き始めました編)
ハードウェア編に引き続き動作確認をしていきます。
ソケットにデバイスを搭載する前に電源などの確認は済ませてあります。電源逆接などで貴重なデバイスを失うわけにはいきません。
データシートによるとRSTを解除後にSTRTが必要に読めたので、STRTをGNDに接続していました(後にSTRTはプルアップしていても動くことがわかりました)。
クロックは38ピンX2に入れているので、念のためX1を確認してみると同じ12MHzが出ています。