Z8000 CALR命令

カテゴリー:

前回予告したように今回はCALR命令について書いてみようと思います。

CALR命令は相対サブルーチンコール命令で、JPに対してJRがあるようにCALLに対してあるのがこれです。同様に相対番地でメモリアクセスするLDR命令や、アドレスを取得するLDAR命令もあります。

Z80の位置独立なコードを書けない(著しく困難)問題に対処しています。

SBCZ8002(ソフトウェア編)

カテゴリー:

前回ハードウェアが無事に動作するようになったのでUniversal Monitorの移植してみました。

年末から初期化部分などを細々と書いていましたが、本格的に書き始めたのは年が明けてボードが動き始めてからです。それでも3日にはI(n)/O(ut), R(egister)コマンドまで動作しましたからこれまでの最速記録ですね。確かに慣れてきたという側面はありますが、Z8000がアセンブリ言語で書きやすいプロセッサだというのは間違いないでしょう。

今回はその過程で気になった点についていくつか書いてみたいと思います。

リセットの怪

シャープのマニュアルによるとZ8002のリセット時の動作について以下のように書かれています。

Z8002では,最初のサイクルで,0002H番地からFCWを読み出し,0004HH番地からPCを読み出し,つぎの最初の命令フェッチ・サイクルからプログラムがスタートする。

SBCZ8002(動作編)

テーマ:

カテゴリー:

2021年、今年もどうぞ宜しくお願いいたします。

さて昨年末に組み立てたまま動かずに悩んでいたSBCZ8002ですが、動作するようになりましたのでその顛末を書いておきます。

まずはすぐに使える周波数カウンタとテスタで見られるところから見ていきました。

A0はリセット直後は変化ありますがその後は"L"のままです。

A1A11は次のような周期で変化し続けています。

SBCZ8002(組み立て編)

テーマ:

カテゴリー:

愛用しているアセンブラAS、最近Z8000に対応しました。そういえばZ8002のボードSBCZ8002を買ったままになっていたのを思い出し、組み立ててみました。


いつもの 電脳伝説@vintagechips さん作のボードです。

先日のSBCF8ではいくつか手持ちのない部品があって代用しましたが、今回は必要な部品はすべて手持ちがあったので買出しなど不要でいきなり組み立てに入れました。

RCA CDP1806

テーマ:

カテゴリー:

いつ買ったものか忘れてしまったのですが、そう昔ではなかったと思います。去年だったか、今年になってからだったか...


このCDP1806ACEはCDP1802の後継プロセッサ、以前取り上げたCDP1802はHarris時代のものでしたが、これはオリジナルのRCAマーキングです。

これCDP1804~1806の3種あり、CDP1802からの主な改良点はそれぞれ以下の通りです。

F8へUniversal Monitorを移植(その2)

カテゴリー:

前回サブルーチン呼び出しの方法で終わってしまったので、今回は実際にUniversal Monitorでどうしたか書いていきたいと思います。

前回書いたようにサブルーチン呼び出しが2段を超えると一気に大変になります。

それではUniversal Monitorで呼び出しが深い箇所をどう対処したか、いくつかの例を見てみます。

F8へUniversal Monitorを移植(その1)

カテゴリー:

SBCF8が動きましたので早速Universal Monitorを移植してみます。

以前のSC/MPも癖が強かったですが、このF8もそれに劣らず癖の強いプロセッサです。

  1. コードフェッチ以外のメモリアクセスはすべてDC0レジスタ間接でなくてはならず、常にポストインクリメントされます。もう一つあるDC1(アクセスには使えない)との間で値の交換が出来るのがせめてもの救いです。
  2. サブルーチン呼び出しはスタックではなく戻り番地はスタックレジスタPC1に退避されます。

Pages