6502

    1

    1答えて

    私は最初のNESエミュレータをC言語で書いています。目標は、通常のゲームでゲームをプレイするためには、理解しやすく正確なサイクルを作ることですハードウェアの速度。 6502のテクニカルリファレンスを掘り下げると、命令が複数のCPUサイクルを消費するように思えます。また、特定の条件(分岐など)に応じてサイクルも異なります。私の計画は、読み取りと書き込みの機能を作成し、switchを使用してモードをア

    0

    2答えて

    私の6502/NESエミュレータのための命令関数を作成している間、私は符号付きバイトと2の補数のコンセプトを6502で理解しています。つまり、BMIなどの分岐命令は、負の数で算術演算を行う命令もあります。また、負のフラグは、アキュムレータの7番目のビットを検出します。 (2の補数) これは、メモリ内のすべてのバイトが符号化されていて、メモリをint8_t CPUMEMORY[0x10000];とし

    1

    1答えて

    私は現在、LogiSimで6502のサブセットを開発中です。現段階では、実装する部品と切り離すことができるものを決定しています。私の主なリソースの1つはHanson's Block Diagramです。 現在、命令が制御線にどの程度正確にデコードされているかを判断しようとしています。以下の図には、デコードROMとランダム制御ロジックの2つの部分があります。 どのように正確に6502は、制御ラインに

    1

    2答えて

    私は、古い6502プロセッサが、特に任天堂エンターテイメントシステムでどのように動作するかを理解しようとしています。私を混乱させ続ける一つのことは、すべてのアセンブリ命令がRAM-RAMコマンドを処理するように見えるので、システムが関連するデータをROMからRAMに移動する方法です。例えば、ゲームがマリオの敵をロードする必要があった場合、CPUはどのようにロードして関連する領域を特定し、ロードしま

    3

    2答えて

    私は6502を多く書いていますが、並列配列はデータを格納する構造よりも優れているということです。 あなたがCであなたが構造 static Monster s_monsters[] = { { 5, 1, 0, "orc", }, { 50, 10, 5, "dragon", }, { 10, 3, 1, "goblin", }, }; それとも、格納することがで

    0

    2答えて

    私は、ユーザーが入力を入力できるようにする簡単なプログラムを作成しており、ユーザーが特定のキーを入力したときにプログラムを終了します。しかし、現在私が現在持っているコードはどこにあるのか分かりません。 OBJ $8000 KYBD EQU $C000 STROBE EQU $C010 COUT EQU $FDED HOME EQU $FC58

    6

    1答えて

    新しいC64プロジェクトでは、複数色の文字モードでソフトウェアスプライトを使用する予定です。私の考えは、スーパーインポーズの「弾丸」スプライトデータを使用してデータをタイルすることです。 アドレス「TILESET」にタイルセットデータを、スプライトデータを「SPRITE」にできます。そして、私はこの2つを組み合わせて、動的に計算されたバックグラウンドを持つ弾丸を準備し、アドレス 'SUPERIMP

    1

    1答えて

    私はこの6502エミュレータでしばらくの間作業していますが、私は単純なエンハンスドBASIC ROMを動作させるために取り組んでいます。正確なクロックタイミングがないにもかかわらず、エミュレータはAllSuiteA.asmを通過しました。 EhBASICでは、そのアドレスに読み込みが行われたときに、$ F001の値を出力することによって出力を得ることができました。 しかし、入力プロセスをエミュレー

    3

    1答えて

    ほとんどのエミュレータは、特定の命令がルックアップテーブル内で取るサイクル数を格納し、必要に応じて(たとえばページ境界を越えるとき)任意の条件サイクルを追加します。 アドレッシングモードとメモリの読み書きだけに基づいて命令が実行するサイクル数を手続きで判断する方法があるのだろうかと思います。 例として、即時または相対アドレッシングを使用するすべての命令が2サイクルかかることに気付きました。 ゼロペ

    6

    1答えて

    私は、このCodebase64 Tutorialに続くkernalルーチンを使ってディスクファイルを書き込む方法を学ぼうとしています。 下記のAcme Crossassemblerで書かれた自分のルーチンをコピーしました。これは、ファイルを開くことに失敗し、エラーメッセージを表示します。私はC64プログラマーズ・リファレンスを使用して以下に記載されている基本的なルーチンを用意しました ; Defi