MN1613のステップ実行(その1)
以前、MN1613のリセット時に何かあるようだと書きましたが、このまま放置するのは気持ち悪いので少し追ってみることにしました。
16チャンネル以上のロジアナでもあれば簡単なのでしょうが残念ながら持っていません。
幸いMN1613のメモリアクセスはハンドシェイクなのでそれを利用してステップ実行を試みることにします。
手っ取り早く追加してみたのがこの回路です。
個人的に製作してきたものの紹介です。
電子的なものがほとんどですが、そうでないものも出来るだけ出していきたいと思っています。
回路図、ソースコードなどは出来ればすべて載せたいのですが、以下の理由で難しいものが多いです。
残っていないのではなく、そもそも書かないことが多かったためです。
もちろん仕事ならば書きますが。
特に古いものでは雑誌など掲載のものをベースにしているものがあり、オリジナルと分離できないものは公開できません。
5インチや8インチのフロッピーだったり、PC-9801フォーマットだったりして読むのが難しいものがあります。
以前、MN1613のリセット時に何かあるようだと書きましたが、このまま放置するのは気持ち悪いので少し追ってみることにしました。
16チャンネル以上のロジアナでもあれば簡単なのでしょうが残念ながら持っていません。
幸いMN1613のメモリアクセスはハンドシェイクなのでそれを利用してステップ実行を試みることにします。
手っ取り早く追加してみたのがこの回路です。
前回は簡単なテストプログラムを動かしましたが、その後アセンブラもある程度動作するようになったのでいつものUniversal Monitorを移植することにします。
しばらくボードを動かしていなかったので念のためにもう一度小さなプログラムを試してみましたが、何故か動作が変というかいきなり暴走している感じです。
原因はいくつか考えられます。
ハンドアセンブルと比較したり、以前と同じコードを試したりで3.で無いことはすぐに判明しました。
ハードウェア編に引き続き動作確認をしていきます。
ソケットにデバイスを搭載する前に電源などの確認は済ませてあります。電源逆接などで貴重なデバイスを失うわけにはいきません。
データシートによるとRSTを解除後にSTRTが必要に読めたので、STRTをGNDに接続していました(後にSTRTはプルアップしていても動くことがわかりました)。
クロックは38ピンX2に入れているので、念のためX1を確認してみると同じ12MHzが出ています。
TLCS-90ボード, SC/MPボードにはEEPROM用のソケットを用意したと書きましたが、使えるようになりました。
また未搭載だった6502ボードにも追加しました。
このEEPROMはEMILY BoardのAVRマイコンに接続されていて、設定情報とターゲット用ソフトウェアを保存できます。これで毎回ソフトウェアをPCから転送しなくてすみます。
前回、EMILY Boardの16ビットバス化のハードウェアに書きました。今回はソフトウェアについてです。
4k×8bitのメモリ空間2つがターゲットCPUにどう見えるかはCPUボードのハードウェアによって決まります。
それではEMILY Boardのコンソールから各種コマンドでアクセスする場合にはどう見えるのが良いのでしょうか?
ターゲットからの見え方に合わせないと不便ですが、あまり自由度を高くすると設定が難しくなります。とりあえず必要最小限ということで以下のモードを用意しました。
EMILY Boardの16ビットバスへの拡張ボード「EMILY Board +8」を製作しました。
8ビット分のメモリを持ったボードでEMILY Boardと組み合わせて使用します。
基板面積がもったいない気もしますが、スタックする都合とコネクタの配置からサイズは変更できません。
EMILY BoardからマイコンATmega164を外したようなものです。コネクタの配置はもちろん、ICの配置もEMILY Boardと合わせてあります。ソケット下のC,R類の位置は若干異なっていますが。
SC/MPボードへのモニタの移植が一段落つきました。新しいプロセッサへの移植は毎回似たような流れで行なっていますので、その流れを書いてみたいと思います。
6502ボードとTLCS-90ボードがあっさり動作したので、調子に乗って3枚目を作ってみました。
これがそれ、SC/MPボードです。正確にはSC/MP(ISP-8A/500)ではなくSC/MP II(INS8060N)ですが、ソフトウェア的には両者は一緒です。
上の方に写っているのはEMILY Board、16ビット対応用のコネクタが追加されています(配線はまだ途中です)。
EMILY Boardで動かした2番目のCPUは東芝 TLCS-90の一員TMP90P802APです。
TMP90P802APを動作させるために新たに作ったのはこの基板だけです。
基板上の部品はほんのわずかです。見えているものの他、CPUソケットの内側にパスコンと若干のプルアップ抵抗があります。
CPUのTMP90P802APの左にあるのはTTL-232R-5V用のシリアルコネクタ、内蔵UARTに接続されています。