現在地
マイコン
マイコン
マイクロプロセッサ・マイクロコントローラ等です。
6502ボード(ソフトウェア編)
ハードウェア編に続いて今回はソフトウェア編です。
最初のテストはJMP
でループを作ってみます。これは3バイト命令なのできりの良いアドレスに配置すればA0, A1が変化しA2以降のアドレスは変化しません。
これでメモリ基板から読んで実行できていることがわかります。メモリ基板のターゲット側ポートはこれまで未確認だったのですが、ここで確認が取れました。
この後はメモリへの書き込みなど一つずつ確認していくのが堅実だとは思いますが、一気にUniversal Monitorの移植に進むことにしました。
実はこの時点ではR65C51 ACIAは未搭載だったのでメモリ基板のコンソール機能を利用します。この機能も未確認なのでまずはオープニングメッセージを表示するところまで移植してみます。
6502のアセンブリ言語を書くのは初めてです。
6502ボード(ハードウェア編)
カテゴリー:
メモリ基板: 現状と今後の予定で製作中と書いた6502ボードが動き出しました。今回はハードウェア編です。
メモリボードに接続することを前提にしているので6502以外には6551 ACIAを積んでいるだけです。
メモリボードの共有メモリ経由でコンソールが使えればACIAは無くても困らないのですが、6551を使ってみたいという気持ちもあって搭載してみました。
Toshiba TMP90802AP
カテゴリー:
東芝製のこんなマイコンが手に入りました。
TMP90P802AP、あまり聞いたことの無い型番ですがTLCS-90という東芝の独自アーキテクチャのものです。
このTLCS-90の面白いところはアセンブリ言語のソースコードレベルでZ80そっくりなことです。バイナリの互換性はありませんが、ソースからアセンブルしなおせば移植は容易なのではないかと思います。
そもそもこれはパソコン的用途ではなく組み込みをターゲットにしていますから、バイナリ互換性は必要ないと考えたのでしょう。
メモリ基板: 現状と今後の予定
カテゴリー:
今回はメモリ基板の現状と今後の予定を書いてみます。
まずは今動いているところです。
- 4k×8bitのRAMはホスト側から(シリアル経由で)アクセスできています。
ターゲットCPU基板がまだ1枚も完成していないのでターゲット側からのアクセスは未確認ですが、ただ接続するだけなのであまり心配はしていません。
- シリアルからのコマンドでRESET信号を発生させることができます。ちょっとしたオマケ機能です。起動用のプログラムをRAMにロード後リセットできたら便利かなと。
ROMエミュレータではアクセス中はターゲットからのアクセス不能になり暴走するのでアクセス中"L"になる信号を用意していましたが、せっかくDPSRAMを使っていることでもありRAMアクセスとは独立させています。
メモリ基板: DPSRAMを使った理由
カテゴリー:
前回に引き続きメモリ基板についてです。今回はDPSRAM構成になった理由を書いてみたいと思います。
これまでに検討した方式には次のようなものがあります。
- SRAM only
一番最初に考えたのはSRAMのみを使うものです。256kbit(32k×8bit)SRAMを2つ使えば多くの8ビットCPUのメモリ空間を満たすことが可能です。これをROMエミュレータと同様に切り替えて使います。ターゲットと同時にアクセスすることはできませんので、アクセスするときはターゲットCPUをリセットしておきます。ターゲットとして特定のCPUを想定しないのでZ80のBUSRQやWAITのような信号を使ってアービタを実装するわけにはいきません。起動させるだけならこれでも構いませんが、何らかのモニタを動作させようとすると最低限コンソールが必要です。
メモリ基板
カテゴリー:
作りかけで何度も中断し放置してきたメモリ基板がやっと動き出しました。
これ構想しはじめたのは何年も前、製作に着手してからでも半年近く経過しています。一気にやれば大して配線量はないんですけどね。
ここでも紹介しているように歴史的なプロセッサを多数持っていますし、珍しいのを見かけて買ってしまうことも多くどんどん増えています。できれば単なるコレクションではなく動かしたいと思っているのですが...
今時のマイコンは高速なので、周辺回路(最低限メモリとUARTなど)をエミュレーションさせる方法もあります。AVRマイコンなどのGPIOをターゲットのバスに直結してあとはソフトウェアで処理するわけです。これはこれで面白いとは思いますが、個人的にはちょっと違う気がします。
もっと6502
G65SC816
MB8861 と MB8870
カテゴリー:
予告どおり富士通のMB8861, MB8870です。
MB8861はMotorola MC6800の相当品ですが、いくつか独自の命令が追加されています。これは1979年製のようですね。
パッケージは中央に大きな円と下側に溝のある富士通独特の特徴あるスタイルです。今回は国内調達したのであまり心配はないのですが、海外からだとこのパッケージは(ニセモノの可能性が低いということで)安心材料の一つといえそうです。
さて、追加された命令の詳細を知りたいところなのですが、富士通のデバイスはデータシートの入手が難しいことが多く、このMB8861も入手できていません。ハード的にはMC6800と差し替え可能ということで、「リンク」に挙げたサイトの情報と実験をもとに動かしていきます。