問題タブ [z80]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
120 参照

assembly - ti-83+ アセンブリ ピクセル移動プログラムが機能しない

このコードを作成して、矢印キーとエンターボタンを使用して画面領域内でピクセルを移動し、プログラムを停止しました。これまでのすべての提案でうまく機能しているように見えますが、ピクセルの配置がめちゃくちゃです。

どのコードブロックを何と置き換える必要があるかを言うと、私にとって最も簡単です。

0 投票する
2 に答える
792 参照

assembly - LR35902 アセンブリを使用して、独自の非 ASCII チャームマップを 10 進数として使用して、符号なし 16 ビット整数を HL からテキストに変換する

LR35902 (ゲームボーイの Z80 に似た CPU) のルーチンを作成する方法を理解する必要があります。これは HL の内容 (それが指す場所ではなく、格納されている実際の数値) を取得し、それを 1 から 5 に変換します。 (HL は 16 ビットであるため、実際の値は 0 から 65,535 の範囲になります) 10 進法を使用した非 ASCII* 文字。印刷するルーチンがあり、先頭のゼロを切り取る方法を簡単に見つけることができます。

必要なのは、少なくともこの関数の疑似コードと、せいぜい実際のRGBDS LR35902 ASM ルーチンだけです。

*ASCII の代わりに、私は独自の 1 文字あたり 1 バイトのチャームマップを使用します。このマップでは、文字 0 は 16 進バイト $17 で、9 まで増加すると $20 になります。

0 投票する
1 に答える
93 参照

assembly - dec を使用して遅延を作成する際の問題

Z80 アセンブリを使用してゲームボーイ プログラミングの実験を開始しましたが、奇妙なものを見つけました。

遅延を作成するために使用されるコードのスニペットを見つけました。

それをいじってみると、dec bc を 2 回書き込むと遅延が短くなることがわかりましたが、3 回書き込むと 1 回または 2 回使用するよりも遅延が長くなります。dec偶数のステートメントを使用すると遅延が短縮されるのはなぜですか?

編集:遅延を呼び出すコードのスニペットは次のとおりです。

0 投票する
2 に答える
707 参照

simulator - z80.info のデコードで IM0/1 は何を意味しますか?

私は(さらに別の)Z80シミュレーターを書いている最中です。z80.info サイトのデコード ページを使用しています。

ルックアップ/ディスサンブリ テーブルのセクションでは、インデックス 1 と 5 の割り込みモードが IM0/1 であることが示されています。このテーブルは、IM 命令 (ED) X=1、Z=6 から参照されます。

IM0/1 の正確な意味は何ですか?

公式の指示ではないことはわかっていますが、文書化されていない指示もサポートしようとしています。

0 投票する
4 に答える
2435 参照

assembly - A レジスタを XOR すると、Z80 の F レジスタのキャリー ビットはどのようにクリアされますか?

Zilog Z80 プロセッサに関する本を読んでいます。著者は、考えられる理由でキャリー ビットをクリアしたいときはいつでも、次のいずれかを行います。

それはFレジスタにあるCビットにどのように影響しますか? 言い換えれば、あるレジスター (A) で操作を実行すると、別のレジスター (F) にどのように影響するでしょうか?

0 投票する
1 に答える
714 参照

z80 - Z80 NMI は再入可能ですか?

私が収集したものから、Z80 NMI 割り込み (0x66) は、NMI ピンのエッジ検出からトリガーされます。まだ NMI ハンドラ コード内にあるときに別のエッジが検出された場合 (RETN がまだ実行されていない場合) はどうなりますか?

NMI は再入可能ですか? Z80 は現在のアドレスをスタックにプッシュし、再び 0x66 から開始しますか?

0 投票する
1 に答える
520 参照

compilation - TI 84+ の破損した .8xp ファイル

TI 84+ 電卓用にいくつかのプログラムを作成しようとしています。.8xp実際のデバイスで入力するよりもはるかに簡単なので、デスクトップの基本的なテキスト エディターで書き込み、ファイルにコンパイルしています。.8xp次に、TI Connect を介してファイルを電卓に渡したいと思います。

しかし、デスクトップに書いたプログラムは「壊れているか無効」であるため、電卓に転送されません。私の TI Basic コードには構文エラーはなく、コンピューター上の TI エミュレーターで完全に動作します。

問題を実験するために、デスクトップと電卓でまったく同じプログラムを作成しました。16 進ファイルを比較すると、.8xpほとんど同じですが、わずかに異なります。これは単に、.8xpファイルのコンパイラが正しく動作していないためですか? その場合、実際の電卓ではなくエミュレータで実行されるのはなぜですか? コンパイラがコンパイルに苦労する可能性があるため、自分のコンピュータで TI Basic でプログラミングするときに避けるべき特定の関数はありますか? これらの破損したファイルの問題を修正する方法を知っている人はいますか? 私も無駄にグーグルを熟読してきました。

ファイルは、アセンブリ.8xpを使用する TI-84+ 用のユーザー作成プログラム ファイルです。z80ワビアイテムエミュレーターを使用しています。

編集:これは、同じではない 2 つの .8xp ファイルです。1 つはコンピューターで作成してコンパイルしたもので、もう 1 つは電卓で作成したものです。プログラムのコードは次のとおりです。

私の電卓から:

私のコンピューターから:

さらに、破損または無効であるとされる私のプログラムの .8xp を以下に示します。コードはゲーム チェッカー用です (まだいくつかの深刻な最適化が必要であることを覚えておいてください)。