You are here

EMILY Board +8 (ソフトウェア編)


テーマ:

前回EMILY Boardの16ビットバス化のハードウェアに書きました。今回はソフトウェアについてです。

4k×8bitのメモリ空間2つがターゲットCPUにどう見えるかはCPUボードのハードウェアによって決まります。

それではEMILY Boardのコンソールから各種コマンドでアクセスする場合にはどう見えるのが良いのでしょうか?

ターゲットからの見え方に合わせないと不便ですが、あまり自由度を高くすると設定が難しくなります。とりあえず必要最小限ということで以下のモードを用意しました。

  1. EMILY Board単独モード
    EMILY Board本体のメモリを0x0000~0x0FFFに配置します。0x1000~0xFFFFにもイメージが見えます。EMILY Board +8側のメモリにはアクセスできません。
  2. 16ビットモード
    EMILY Board側のメモリが0x0000~0x1FFEの偶数アドレスに、EMILY Board +8側のメモリが0x0001~0x1FFFの奇数アドレスに配置されます。0x2000~0xFFFFにイメージが見えるのは上と同様です。
  3. 8k×8ビットモード
    EMILY Board側のメモリが0x0000~0x0FFFに、EMILY Board +8側のメモリが0x1000~0x1FFFに配置されます。0x2000~0xFFFFにイメージが見えるのは上と同様です。

3.があれば1.は不要な気もしますが、例えばMC6800などでROM化するコードが0xF800~0xFFFFにあるようなときにちょっと便利です。EMILY Board単体で動作させるためにはD0D7を使うことになり、3.では0x0000~0x0FFFに配置されます。アドレスが0xF800~0xFFFFなHEXファイルをLコマンドでロードすると0x1800~0x1FFFにロードされるので正常に動作しません。動作させるためにはL F000などとオフセット指定する必要があります。

今回は見送りましたが、2.の偶数と奇数を反転させたモードも用意した方が良いかもしれませんね。

コンソール機能のための共有メモリのアドレス設定も変更が必要でした。

これまでは0x0000~0x000F, 0x0010~0x001F, ..., 0x0FF0~0x0FFFから選択できるようになっていました。これを0x1FF0~0x1FFFまで選択可能にしたほか、0x0000, 0x0002, 0x0004, ..., 0x001Eのようにアドレス1つおきや、0x1000, 0x1004, ..., 0x103Cのような4アドレスごと、さらには0x0801, 0x0803, ..., 0x081Fのような設定も可能にしました。

これは例えば12ビットCPUや16ビット単位でしかメモリアクセスできないCPUへの対応のためです。


Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
※ コメントは原則公開です。個別のご相談などは「ご意見・ご要望」からお願いします。