現在地

マイコン

マイコン

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

SBC1802

テーマ:

カテゴリー:

またもや 電脳伝説@vintagechips さんのボード、SBC1802です。


しばらく前に基板入手していたのですが、SuperHやらH8やらやっていて後回しになっていました。部品はほぼ手持ちでそろったので一気に組み上げたところです。

27256は十分持っているので焼いてもよかったのですが、とりあえず手持ちのROMエミュレータを載せています。

いつものように搭載部品を見ていきます。

Z8S180 SL1960

テーマ:

カテゴリー:

Z8S180の最後で触れたSL1960、手に入らないだろうと思っていましたが、なんと入手できました。


Z8S18020VSGのSL1960リビジョンと呼ばれるものです。

これが初期のZ8S180でしたが、Zilogは1997年に改良版をリリースしました。

これだけなら旧版は製造終了になるはずでしたが、新版にはエラッタが見つかりしかも回避困難な場合があることがわかりました。そこで旧版も並行して生産し続け「SL1960」を付けて区別したということのようです。

新旧どちらもZ8S180なのでややこしいことになっています。

AKI-H8

テーマ:

カテゴリー:

SH7045ボードも動いたことですし、次はH8でも動かしてみようと何枚か買った記憶のあるAKI-H8を探していました。


最初に見つけたのはH8/3048搭載のこのボード、表面実装のIC以外は未実装のキット版ですね。

未組み立ての状態で説明書や部品一式とともに出てきました。

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を有効にするのはかなり面倒です。

ページ