現在地

マイコン

マイコン

マイクロプロセッサ・マイクロコントローラ等です。

SH7045ボードを動かす(ソフトウェア編)

なんとかSCIが動くようになったのでUniversal Monitorの移植に取り掛かれます。

SuperHファミリはここで取り上げるプロセッサとしてはモダンな部類ですが、アセンブリで書くとなるとかなり癖が強いですね。慣れるまでは結構てこずりました。

移植の過程で気になった点をいくつか上げてみます。

定数の制限

SuperHの大きな特徴の一つはすべての命令が16ビット長ということです。これはオペコード部の長さではなくオペランドを含めても16ビットということですから、大きな値やアドレスを持つことができません。

即値は一部の命令で8ビットのものがありますが、さすがに8ビット程度では意味がないので絶対アドレッシングは存在しません。

SH7045ボードを動かす(ハードウェア編)

テーマ:

カテゴリー:

以前お見せしたSH7045ボードを動かしてみたくなってこんなボードを作ってみました。

あのボードは電源さえつなげば動かせるはずなのですが、今さらRS-232よりUSBシリアルのほうが便利、EMILY Boardに接続してみたい、ちょっとした実験などするのにユニバーサルエリアが欲しい、といった理由です。


電源はEMILY Boardから供給しますが、スタンドアローンで動かす場合は右上のコネクタからも+5Vを供給できます。

シリアルポートは写真では見にくいですが左下のところに6ピンのコネクタ(TTL-232R-5V用)を設けてあります。

NSC800

テーマ:

カテゴリー:

先日のZ80180アダプタとともにNSC800アダプタの基板もいただいていますのでデバイス買ってみました。Rレジスタや未定義命令の挙動も見てみたいですし。


National SemiconductorのNSC800N-4I、4Iは4MHzで動作温度範囲が-40~+85°Cを表します。1988年製ですね。

Z280固有の初期化(その1)

Z280は特別な初期化をしなくても高速なZ80として動作するので何もしていませんでしたが、Z180の初期化を加えたのでZ280でもやってみました。ゆくゆくはトラップの対応などもやってみたいと考えています。

以下はCPU判別でZ280であると判定されたところです。

Zilog Z8S180

テーマ:

カテゴリー:

Z180の判別と初期化でHD64180RとHD64180Z(Z180)の判別ができましたが、そうなるとZ8S180の判別もしたくなります。これは持っていないので新たに調達しました。


Zilog Z8S18010VSG、10MHz版になります。Z8S180には33MHz版などという高速なものもありますが目的が目的なのでこれで十分です。

デートコードは2007、なんと2020年製ですね。このZ8S180は現行品なので買ったのもいつものeBayやAliExpressではなくて真っ当なルートです。

まずはそのまま載せ替えてみます。

Z180の不正命令TRAPを捕まえよう

Z8S180の前にやってみたいことがあります。

Z180には未定義な命令を実行しようとした時に発生するTRAP割り込みというものがあります。これを捕まえてRST 38Hによるブレークのようにアドレスやレジスタが表示できれば便利でしょう。

ということで調べ始めたのですが、思った以上にハードルが高く簡単ではありませんでした。

まず未定義な命令を実行しようとした時に何が起こるかです。

  1. ITC(Interrupt TRAP Control)レジスタのTRAPビットが1になる
  2. PCの値がスタックに積まれる
  3. 論理アドレス0000Hにジャンプする

えっ、0000Hってリセットと同じではないですか。MMUで論理アドレス0000Hに異なる物理アドレスを設定していれば問題ありませんが、ROM, RAMともに16kBしかないSBCZ80でこのためだけにMMUを有効にするのはかなり面倒です。

SH7045ボード

テーマ:

カテゴリー:

しばらく前に出てきたまま忘れていたボード、思い出したので動かせないか調べ始めました。


SH/7045のボードですね。シルクにはありませんが、秋月で買ったようなかすかな記憶があります。

秋月のサイトを見てもさすがに取り扱いは無い(買ったのは10年どころではない昔のはず)ですが、「回路図集」の中にキットの説明書がありました。やはり記憶はあっていたようです。

表面実装部品は実装済みだったはずなので自分で付けたのはコネクタ・ソケット・水晶・ケミコンだけです。

ページ