2019-09-25 23:20 — asano
カテゴリー:
EMILY Boardで動かした2番目のCPUは東芝 TLCS-90の一員TMP90P802APです。
TMP90P802APを動作させるために新たに作ったのはこの基板だけです。
基板上の部品はほんのわずかです。見えているものの他、CPUソケットの内側にパスコンと若干のプルアップ抵抗があります。
CPUのTMP90P802APの左にあるのはTTL-232R-5V用のシリアルコネクタ、内蔵UARTに接続されています。
右上には9.8304MHzのオシレータ、12.5MHzまではいけますが内蔵ボーレートジェネレータを使いたかったのでこれにしています。
右端のソケットはEEPROM用に準備したものです。これはEMILY Boardのためのもので動作には直接関係ありません。
TMP90P802APは直接RD, WR信号を出してくれるのでグルーロジックのようなものは一切必要ありませんでした。ペリフェラル類も無いのでアドレスデコーダも省略しています。
裏面を見るとほとんどの線がCPUとコネクタ間を一対一で結んでいるのがわかりますね。
もちろんプロセッサによってはそれなりのグルーロジックを必要とするでしょうが、手っ取り早くいろいろなプロセッサを試せそうです。大量の積みプロセッサを一気に消化できることが期待できます。
さて、このボードですが懸念していたEAも予想通りで意外とあっさり動作しました。EA="L"にしておくと内蔵ROMが無効になりアドレス0000H~1FFFHも外部バスが有効になり外部メモリから起動できるようになります。内蔵のRAM・ペリフェラルは使えます。
ハマったのはデフォルトでWDTが有効になっていたこと、ループさせているはずがどこかに飛んでいってしまうのでちょっと悩みましたね。
ソフトウェアはいつものようにUniversal Monitorを移植してみました。前に書いたようにZ80とソースレベルで非常に良く似ています。それでZ80用のソースをコピーして修正しました。主な変更点は以下です。
- WDTの無効化を追加
- I/O関係
コンソール関係は書き直しています。I/O空間が無くメモリマップトI/OになっているのはZ80との大きな違いです。 - Aレジスタ
SUB
,CPL
などAレジスタを暗黙で使っていた命令は、TLCS-90では明示的にAを書く必要があります。
Universal Monitorでは割り込みは一切使っていないのでこの程度の変更で動作するようになりました。コンソールはEMILY Board経由および内蔵シリアルともに動作確認できています。
コメントを追加