MC68EC020
MC68030, MC68040, MC68060にはMMUやFPUの有無によってMC68EC030などの廉価版が存在します。MC68020には外せるユニットがないので廉価版は無いと思っていましたが...
MC68EC020はありました。これは1999年製の16MHz版、日本製なんですね。
MC68020との機能的な違いはメモリ空間が16MBしかないことです。
機能以外ではパッケージがプラスチックPGAになっています。
マイクロプロセッサ・マイクロコントローラ等です。
MC68030, MC68040, MC68060にはMMUやFPUの有無によってMC68EC030などの廉価版が存在します。MC68020には外せるユニットがないので廉価版は無いと思っていましたが...
MC68EC020はありました。これは1999年製の16MHz版、日本製なんですね。
MC68020との機能的な違いはメモリ空間が16MBしかないことです。
機能以外ではパッケージがプラスチックPGAになっています。
前回無事にZ8001が動作したわけですが、あれは以前中国から買ったもので念のため製作と並行して国内でZ8003も調達していました。
東芝製のTMPZ8003P-6、Z8003のセカンドソース品です。
Z8003というのはZ8001を仮想記憶対応したもので、MC68000に対するMC68010のようなものです。同様にZ8002に対するZ8004というのもありますが、セグメント無しの仮想記憶という需要はあまりなかったためか見かけませんね。
Universal Monitor Z8000は現在のところZ8002のみの対応です。これは実行環境がSBCZ8002しかないためですが、Z8001は持っているので何とか動かしてみようというのが今回のお話です。
アドレスエラー・バスエラーについて今度こそ終わりにするつもりです。
MC68040からは大きな方向転換があったように感じます。
複雑度は増しているはずなのにスタックに積まれる情報は減っているのです。前にもMC68010の判別(補足)に書きましたが、命令の再開を諦めて頭からやり直す方針のようです。
まずはアドレスエラーの場合です。
3回目は残りですが書ききれるかなぁ。さらに1回増えてしまうかもしれません。
ここからは自分の手で動かしたことはないのでマニュアルを元にざっくり書いていきます。
この両者はソフトウェアから見た例外処理はほぼ共通のようなのでまとめて書きます。
これらではエラー発生時の状況によってスタックに積まれる情報量に違いがあるようです。キリの悪いところで発生すると保存しないといけない項目が増えるということなのかな。
どちらが使われたかはSP+6の上位4ビットでわかります。
まずは少ない場合から。
HD1-6120ボードを作ってから約2年、ASが使えるようになったのでUniversal Monitorの移植に着手しました。
ボード完成以来ソフトウェア編での無限ループ確認くらいしかしていなかったのですが、やっとまともなプログラムが動かせます。いくつかあった問題は、ASはIM6100対応を行ない、EMILY Boardも12ビット8進表示モードを作ったことでほぼ解決しています。
残るUniversal Monitorの仕様は... 常に8進表示でダンプ時のASCII表示は無しとすることにします。
そう決まればあとは黙々と実装するのみです。
現在 D(ump), G(o), S(et) の各コマンドができて L(oad) はインテルHEXのみ実装してデバッグ中といった状況です。
ある程度のプログラムを書いてこのIM6100の癖がわかってきたので書いてみたいと思います。
前回、ピギーバックのROMと内蔵RAMで動作したので、今回は外部RAMを追加してみます。
ハードウェア的には未実装だった74HC04, 74HC573, 62256を載せるだけです。
ソフトウェアとしては、内蔵ROM(ピギーバック含む)有効モードで起動するとポートD,FはポートになっているのでMM(Memory Mapping)レジスタを設定してバスに切り替えないといけません。
Universal Monitorのソースに追加しなくてはと読み始めたところ、MMレジスタの設定は既に書かれていました。uPD78C10ボードを動かしたときに、内蔵ROM無効の場合はROMアクセスのためにポートD,Fは自動でバス設定になるのですが、念のためにMMレジスタも設定していたようです。
先日のuPD78CG14E、QUIPなのでユニバーサル基板では扱いづらい上にμPD7800ともピン配置が大きく異なるのでuPD7800Gボードを流用するわけにもいかず...
別な基板発注するついでに専用基板起こしてみました。
写真はとりあえず動作したところです。
I/Oピンを引き出すためのコネクタと外部RAMが未実装ですが、Universal Monitorは動きます。RAMが内蔵の256バイトしかないので大したことはできませんが。
このボードは以下のようなコンセプトで作っています。
前回に引き続きピギーバック品をもう一つ。
沖のMSM85C154です。
対応するマスクROM品はMSM83C154で、これは80C51の拡張版です。本家のIntelは開発用としてはUV-EPROM内蔵の8751/87C51を用意していました
ROM無しタイプはI/Oピンが減ることもさることながらROMへの配線が面倒ですし、UV-EPROM内蔵タイプは専用ライタやアダプタが必要になるので、個人的にはピギーバックタイプは好きですね。ROMエミュレータを使えるのもメリットです。