現在地

HD1-6120ボード(ソフトウェア編)


テーマ:

予告どおりソフトウェア編です。これまでの「ソフトウェア編」ではモニタ程度のものが動いていることが多かったと思いますが、今回はプログラムの実行ができているらしいとわかる程度です。

最も簡単なテストプログラムは実行開始番地で無限ループさせるものでしょう。

HD1-6120(IM6100も)は0FFFH番地から実行を始めますので、ここに0FFFH番地へのJMP命令を置きます。これを実行させておいてアドレスバスの状態を観察するとA0A11までがすべて"H"になっていて0FFFH番地を読み続けていることがわかります。

次に異なるアドレスでループさせてみます。

HD1-6120でダイレクトにJMPできる先は、同ページ(アドレスの上位5ビットが同じ)か0ページ(アドレスの上位5ビットがすべて0)だけです。それ以外へ飛びたいときは同ページか0ページにアドレスを書いておいて間接アドレッシングを使います。ここでは簡単に0ページで試してみます。

EMILY Boardで書き込む
まず「h 2」で16ビット(ビッグエンディアン)に切り替えています。

続いて1FFEH, 1FFFH番地に041H番地へのJMP命令(0A41H)を書き込みます。EMILY Boardはバイト毎にアドレスが振られているので、HD1-6120からは0FFFH番地に相当します。

同様に082H, 083H(HD1-6120からは041H)番地にも同じ命令を書き込みます。

最後にtrでリセット状態を解除して実行します。

以前MN1613ボードの検討時に作ったアドレスバス表示ボードで見てみます。
アドレスバスの表示
左端がRD、右側12個がA11A0です。

HD1-6120ではビット0がMSBですが、ここではEMILY Boardに合わせてMSBをA11で表します。

A0A6が点灯しているので041Hにアクセスしていることがわかります。

左端(RD)が点灯し、隣(WR)が消灯していることから読み出しのみが行なわれていることもわかります。

いつもならこの程度動いていることがわかったところでUniversal Monitorの移植を始めるところなのですが、今回はいくつか考えなくてはならないことがあります。

  1. いつものアセンブラASが非対応

    短いテストプログラムくらいならともかくモニタをハンドアセンブルするのはさすがに嫌なのでアセンブラを何とかしなくてはなりません。

    • ASxxxx はIM6100に対応しています
    • MN1613でしたようにASを対応させる
  2. EMILY Boardの対応

    このままでも使えないことはありませんが、以下の点で不便です。

    • ワードアドレス対応しないと毎回アドレス換算しなくてはならない
    • データシートは8進表記なので8進での表示・入力に対応させたい
  3. Universal Monitorの仕様

    ワード単位はMN1613でも対応しましたが、以下の点どうするか仕様を考えないといけません。

    • 8進の扱い(常に8進・8進/16進切り替えなど)
    • DUMP時のASCII表示をどうするか

とりあえずEMILY Boardの対応からと考えているのですが、これも仕様をどうするか悩ましいのです。

かなり大きな変更になるので一緒に盛り込めるものは盛り込みたいのですが、32ビット対応とか、8X300などで必要になりそうな複数メモリ空間とか、いろいろと欲が出てきてしまって...

参考文献・関連図書: 
HD-6120データシート, Harris.

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
※ コメントは原則公開です。個別のご相談などは「ご意見・ご要望」からお願いします。