データベース復旧
本日(2019-09-26)15:00頃、データベースに不整合を発生させてしまいました。
バックアップから復元しましたが、コメントの書き込みが失われた可能性があります。
心当たりのある方はお手数ですが再書き込みしていただけないでしょうか。
そのほか気になる点などありましたら「ご意見・ご要望」から連絡いただけると助かります。
本日(2019-09-26)15:00頃、データベースに不整合を発生させてしまいました。
バックアップから復元しましたが、コメントの書き込みが失われた可能性があります。
心当たりのある方はお手数ですが再書き込みしていただけないでしょうか。
そのほか気になる点などありましたら「ご意見・ご要望」から連絡いただけると助かります。
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そっくりなことです。バイナリの互換性はありませんが、ソースからアセンブルしなおせば移植は容易なのではないかと思います。
そもそもこれはパソコン的用途ではなく組み込みをターゲットにしていますから、バイナリ互換性は必要ないと考えたのでしょう。
むしろバイナリ互換性を捨てたことで変なしがらみを切り捨てたといえるのかもしれません。
以前「NEC PC-PR3000PSモジュール」でコントローラモジュールを紹介しました。残りは手放したと思っていたのですが...
フロントパネルのカバー部分、操作ボタンや設定のスイッチが入っていたように思います。
おそらく機種名が書かれていたので記念に取ってあったのでしょう。
マニュアルも残っていました。
今回はメモリ基板の現状と今後の予定を書いてみます。
まずは今動いているところです。
ターゲットCPU基板がまだ1枚も完成していないのでターゲット側からのアクセスは未確認ですが、ただ接続するだけなのであまり心配はしていません。
ROMエミュレータではアクセス中はターゲットからのアクセス不能になり暴走するのでアクセス中"L"になる信号を用意していましたが、せっかくDPSRAMを使っていることでもありRAMアクセスとは独立させています。
前回に引き続きメモリ基板についてです。今回はDPSRAM構成になった理由を書いてみたいと思います。
これまでに検討した方式には次のようなものがあります。
起動させるだけならこれでも構いませんが、何らかのモニタを動作させようとすると最低限コンソールが必要です。