SC/MPボード(ハードウェア編)
6502ボードとTLCS-90ボードがあっさり動作したので、調子に乗って3枚目を作ってみました。
これがそれ、SC/MPボードです。正確にはSC/MP(ISP-8A/500)ではなくSC/MP II(INS8060N)ですが、ソフトウェア的には両者は一緒です。
上の方に写っているのはEMILY Board、16ビット対応用のコネクタが追加されています(配線はまだ途中です)。
マイクロプロセッサ・マイクロコントローラ等です。
6502ボードとTLCS-90ボードがあっさり動作したので、調子に乗って3枚目を作ってみました。
これがそれ、SC/MPボードです。正確にはSC/MP(ISP-8A/500)ではなくSC/MP II(INS8060N)ですが、ソフトウェア的には両者は一緒です。
上の方に写っているのはEMILY Board、16ビット対応用のコネクタが追加されています(配線はまだ途中です)。
COP402Mとともに入手したのがこれです。
MotorolaのMC68HC11A0FNです。
このMC68HC11シリーズにはメモリ容量や搭載するI/Oデバイスによってさまざまなバリエーションが存在します。
型番の「A0」の部分がバリエーションを表していて、この「A0」はROM無しのものになります。
続く「FN」はPLCCパッケージであることを表します。他にDIPの「P」などもあり、本当はそちらが欲しかったのですが入手しやすかったのはこのPLCCでした。
最後の行の末尾「8922」がデートコードですから1989年製、これでも30年モノですね。
今度のは他の石を買うついでに1つ試しに買ってみたものです。
National SemiconductorのCOP402MN、ROM内蔵が基本なファミリですがこれは珍しくROM外付けタイプになっています。
買うときに確認したのは、ROMを外付けできること、データシートを入手できること、(可能なら)アセンブラが入手できることくらいだったのですが...
いざ動かそうと思ってデータシートをよくよく確認したら厄介なシロモノでした。
まずROMは確かに外付けできるのですが、メモリ空間は1k×8bitしかありません。しかも読み出し専用です。
RAMは64×4bitを内蔵しています。外部バスは無いので増設はできません。ここであれっ4bit幅と思ってデータシートのブロック図を見るとALUも4bit幅なので、型番の「4」は4bitを表しているようですね。
EMILY Boardで動かした2番目のCPUは東芝 TLCS-90の一員TMP90P802APです。
TMP90P802APを動作させるために新たに作ったのはこの基板だけです。
基板上の部品はほんのわずかです。見えているものの他、CPUソケットの内側にパスコンと若干のプルアップ抵抗があります。
CPUのTMP90P802APの左にあるのはTTL-232R-5V用のシリアルコネクタ、内蔵UARTに接続されています。
メモリ基板、確かにメモリではあるのですがそれだけでもないので「EMILY Board」と名付けました。
Environment for Microprocessor Introduction ... の略というのはもちろん後からのこじつけで、二式大型飛行艇の連合国側コードネームからの命名です。
これだけではなんなのでこれまで書かなかった資料編をお送りします。
まずは基板上部のCPUボードへのコネクタです。
ハードウェア編に続いて今回はソフトウェア編です。
最初のテストはJMP
でループを作ってみます。これは3バイト命令なのできりの良いアドレスに配置すればA0, A1が変化しA2以降のアドレスは変化しません。
これでメモリ基板から読んで実行できていることがわかります。メモリ基板のターゲット側ポートはこれまで未確認だったのですが、ここで確認が取れました。
この後はメモリへの書き込みなど一つずつ確認していくのが堅実だとは思いますが、一気にUniversal Monitorの移植に進むことにしました。
実はこの時点ではR65C51 ACIAは未搭載だったのでメモリ基板のコンソール機能を利用します。この機能も未確認なのでまずはオープニングメッセージを表示するところまで移植してみます。
6502のアセンブリ言語を書くのは初めてです。
メモリ基板: 現状と今後の予定で製作中と書いた6502ボードが動き出しました。今回はハードウェア編です。
メモリボードに接続することを前提にしているので6502以外には6551 ACIAを積んでいるだけです。
メモリボードの共有メモリ経由でコンソールが使えればACIAは無くても困らないのですが、6551を使ってみたいという気持ちもあって搭載してみました。
表側、上のコネクタはメモリボードへの接続用です。
東芝製のこんなマイコンが手に入りました。
TMP90P802AP、あまり聞いたことの無い型番ですがTLCS-90という東芝の独自アーキテクチャのものです。
このTLCS-90の面白いところはアセンブリ言語のソースコードレベルでZ80そっくりなことです。バイナリの互換性はありませんが、ソースからアセンブルしなおせば移植は容易なのではないかと思います。
そもそもこれはパソコン的用途ではなく組み込みをターゲットにしていますから、バイナリ互換性は必要ないと考えたのでしょう。
むしろバイナリ互換性を捨てたことで変なしがらみを切り捨てたといえるのかもしれません。
今回はメモリ基板の現状と今後の予定を書いてみます。
まずは今動いているところです。
ターゲットCPU基板がまだ1枚も完成していないのでターゲット側からのアクセスは未確認ですが、ただ接続するだけなのであまり心配はしていません。
ROMエミュレータではアクセス中はターゲットからのアクセス不能になり暴走するのでアクセス中"L"になる信号を用意していましたが、せっかくDPSRAMを使っていることでもありRAMアクセスとは独立させています。
前回に引き続きメモリ基板についてです。今回はDPSRAM構成になった理由を書いてみたいと思います。
これまでに検討した方式には次のようなものがあります。
起動させるだけならこれでも構いませんが、何らかのモニタを動作させようとすると最低限コンソールが必要です。