问题标签 [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.
assembly - ti-83+ 组件像素移动程序不工作
我编写了这段代码,使用箭头键和输入按钮在屏幕区域中移动一个像素来停止程序。到目前为止,它似乎确实与所有建议一起工作得更好,但是它的像素位置搞砸了。
如果您说需要替换哪个代码块以及用什么替换,这对我来说是最简单的。
assembly - 使用我自己的非 ASCII 字符映射作为十进制,使用 LR35902 程序集将无符号 16 位整数从 HL 转换为文本
我需要弄清楚如何为 LR35902(Game Boy 的类似 Z80 的 CPU)制作一个例程,它将获取 HL 的内容(不是它指向的位置,存储在其中的实际数字)并将其转换为 1 到 5 (实际值范围从 0 到 65,535,因为 HL 是 16 位)使用十进制系统的非 ASCII* 字符。我有要打印的例程,并且可以很容易地找到一种裁剪前导零的方法。
我所需要的只是这个函数的至少一些伪代码和一个实际的RGBDS LR35902 ASM 例程。
*我使用自己的 1-byte-per-character charmap 代替 ASCII,其中字符 0 是十六进制字节 $17,一直增加到 9,即 $20。
assembly - 使用 dec 创建延迟的问题
我已经开始尝试使用 Z80 程序集进行 Gameboy 编程,但我发现了一些奇怪的东西。
我发现了一段用于创建延迟的代码:
在玩这个的时候,我发现写 dec bc 两次可以缩短延迟,但是写 3 次会使延迟比使用一次或两次更长。为什么有偶数个dec
语句会缩短延迟?
编辑:这是调用延迟的代码片段:
variables - 如何在 Z80 装配体中创建变量?
我正在尝试创建一个包含十六进制值的简单变量0xffff
。我已经能够将它作为一个宏来使用SET
,但我无法让它与类似的东西一起使用ld _time,$ffff
。如何将值加载到 中_time
?
assembly - Z80 的 BCD 减法程序
该程序取自Programming the Z80一书,该程序旨在进行 x 字节 BCD 减法,x 可以是任何整数,这是通过计算两个操作数的字节并通过循环依次执行减法指令,但是在这里,我们将假设这两个数字具有相同的字节数,我们将其称为COUNT
. 这些号码的地址是N1
和N2
以及后面的地址。我的问题在代码的注释中。
simulator - z80.info解码中的IM0/1是什么意思?
我正在编写(又一个)Z80 模拟器。我正在使用z80.info 站点上的解码页面。
在查找/分解表的部分中,它说对于索引 1 和 5,中断模式是 IM0/1。该表参照 IM 指令 (ED) X=1, Z=6。
IM0/1 到底是什么意思?
我知道这不是官方说明,但我也在努力支持无证说明。
assembly - Z80中的A寄存器异或如何清除F寄存器的进位位?
我正在阅读一本关于 Zilog Z80 处理器的书,其中每当作者出于某种可能的原因想要清除进位位时,他都会执行以下任何操作:
这对 F 寄存器中的 C 位有何影响?换句话说,对某个寄存器 (A) 执行操作如何影响另一个寄存器 (F)?
z80 - Z80 NMI 是可重入的吗?
据我所知,Z80 NMI 中断(0x66)是由 NMI 引脚的边缘检测触发的。当仍在 NMI 处理程序代码中(RETN 尚未执行)检测到另一个边缘时会发生什么?
NMI 是可重入的吗?Z80 是否只是将当前地址压入堆栈并再次从 0x66 开始?
compilation - TI 84+ 的损坏的 .8xp 文件
我正在尝试为我的 TI 84+ 计算器编写一些程序。我正在桌面上的基本文本编辑器中编写,然后编译成.8xp
文件,因为它比在实际设备上输入要容易得多。然后我想.8xp
通过 TI Connect 将文件传递给我的计算器。
但是,我在桌面上编写的程序并没有传输到计算器,因为它们“已损坏或无效”。我的 TI Basic 代码中没有语法错误,它在我电脑上的 TI 仿真器上完美运行。
我已经在我的桌面和计算器上编写了完全相同的.8xp
程序来试验这个问题,当我比较hex 文件时,它们几乎相同,但略有不同。这仅仅是因为我的.8xp
文件编译器无法正常工作吗?如果是这样,为什么它会在我的模拟器而不是实际的计算器中运行?在我的计算机上使用 TI Basic 进行编程时,是否应该避免某些功能,因为编译器可能很难编译?有谁知道如何解决这些损坏的文件问题?我一直在细读谷歌也无济于事。
如果有帮助,.8xp
文件是用户为 TI-84+ 编写的程序文件,它使用z80
汇编。我正在使用 Wabbitemu 模拟器。
编辑:这是两个不同的 .8xp 文件。一个是写在我的电脑上然后编译的,另一个是写在我的计算器上的。该程序的代码是:
从我的计算器:
从我的电脑:
此外,这是我的程序的 .8xp,据称它已损坏或无效。该代码适用于 Checkers 游戏(请记住,它仍然需要一些认真的优化):