TMS9900 のファームウェアの問題は「とりあえず Stuart さんとこのバイナリがおかしい、またはそのまま ROM に書くものではない?」状態なので、気分転換に上記のボード(というほどの工作ではない)を作成しました。この石のレポートはすでに
HD68P05V07で工作 ~超古代文明「電子立国日本」の遺物を使って工作してみた。。~: Cafe2.54
で上がっていますが、ここでは
http://www.bitsavers.org/components/motorola/6805/ からの
Motorola AN-852 の簡易モニタを載ぜて試しています。
回路は AN-852 ほとんどそのままですが、一応載せましょう。
部品は先行例より少なく、水晶やめてセラミック振動子にしています。
- HD68P05V07
- MBM2732A-30: たまたまこれがあったので使った、というだけです。特に今回は周波数を多少落としているので2732ならどこのものでも問題がないはず。これにしたのは2732(25V品) のライタを出してくるのが面倒だったため。なお、ROMソケットの Pin2 はNCなので、28pin ROM を用いる時はその対処を。pin1 と pin2 間をHBの鉛筆で線引する程度でいいかも。
- 3.58MHz 3端子セラミック振動子:秋月 - 今回これだけ(3月頃に)新規に買った。
- 4.7kΩ SIP 集積抵抗 :使用したのは x9 品ですが、x6 以上で手に入りやすそうなものを。
- 1μF 積層セラミック :パスコン
- 10μF 16V 電解:手持ちの都合。
- 100μF 16V電解
- LED
- タクトスイッチ
- 基板:秋月C基板
- 40pin, 28pin 各ソケット
- 引き出し用端子
- シリアル用引き出し端子
- 電源端子
- ジャンパ用端子 2x2:シリアルを 9600bps 固定にするならいらないです。
AN-852 のソースは asl でアセンブルしました。先頭の '*' をコメントとして見てくれないので asl 側に修正を入れているのと、現状 PADDING コマンド周りが変で 6805 アセンブルが通らないので黙らせるハックを入れています。
それ以外に、
- 449行からのシリアル I/O ルーチンで、「CMOS なんとか」という部分は全部コメントアウトする。NMOS版とCMOS版は命令実行サイクルが異なり、これはその補正用です。
- 最後のところの onemil, wheel は飛び先がないので、monit と同じ場所に向ける。
あと文字列書式は直す必要がありますが、数行です。
シリアルはジャンパにショートピン無しで 9600bps、2stopbit, noparity, 8bit です。
モニタコマンドはソースを見てください。小さいモニタですが、コマンドをエコーバックしてくれないので、やや使い勝手が悪いかなぁ。ローカルエコーバックが容易にできるターミナルならいいんでしょうけど。
なお、一応セラミック振動子波形はこんな感じ (CH1 が 5pin, 2 が 6pin) で、かなりマージンがあるのでこんなものかと。