3

私はコンピューターと C++ の知識をかなり長い間構築してきましたが、さらに理解を深めるためにエミュレーターを作成してみようと決心しました。TI-83 エミュレータ (Zilog Z80 CPU 上で動作) を作ってみたいと思っています。現在、次の 2 つの問題があります。

1 つ目は、現在の命令を指す「PC」レジスタが 16 ビットしかないことですが、ダウンロードした Ti-83 ROM は 256Kb です。16 ビットのデータが 64Kb を超えるアドレスを指しているのはどのように想定されているのでしょうか?

次に、ROM のエントリ ポイントはどこですか。実行は 0x0000 から開始されますか?

ありがとう、うまくいけば、これがどのように機能するかについて少し理解するのを手伝ってくれるでしょう。

4

2 に答える 2

0

256K の一部を一度に 64K アドレス空間の一部にマップするように設定できる、プロセッサ コアの外側にプログラム可能なページング レジスタが存在する可能性が最も高いです。それをエミュレートする必要があります。これについては、公式または非公式のドキュメントで確認できることを願っています。回路図または PCB がある場合は、外部 PAL またはロジック チップのコレクションとして表示されることさえあります。

z80がリセット時に実行を開始する場所を頭の中で忘れていますが、エミュレーターを作成するために必要なツールであるプロセッサーのマニュアルで見つけることができると確信しています。

使用されているコアが真に z80 であり、ある種のカスタム拡張バージョンではないことを確認する必要があります。

そしてもちろん、誰かがすでにこれを行っていると確信しているので、あなたのプロジェクトは学習に重点を置いている可能性が高いですが、十分に長く取り組んだ場合、最終的には利用可能なソリューションを超える可能性があります.

于 2011-02-25T23:06:43.837 に答える
0

開発者ガイドでは、メモリがどのように配置されるかについて説明していますが、実際にマッピングがどのように機能するかについては説明していません。

短いバージョン: アドレス空間は 4 つの 16K ページに分割され、最初のページは常に 32 ページのフラッシュ ROM のページ 0 にマップされます。

于 2011-02-26T02:24:26.033 に答える