cost 126 ms
解释部分代码c64 6502汇编 - Explain a part of the code c64 6502 Assembly

尝试理解代码 在下面的网站中是一个代码,一个带有波浪状运动的滚动条。 总的来说,我也很了解代码。 我不太明白的是,他为什么以这种方式使用 Ypos 和 Yposh。 那么,为什么 0 -2 位被 7 屏蔽并存储在 Ypos 中? 为什么这些值然后向右移动 3 并存储在 Yposh 中? 这个代码你可 ...

应用负 HMP0 值时渲染 ATARI-2600 精灵时出现问题 - Trouble Rendering ATARI-2600 Sprite When Negative HMP0 Values Are Applied

ATARI-2600 问题有人吗? 当一个字节存储在 TIA HMP0 寄存器中时,将对粗光束 position 应用精细 position 调整。Stella 手册说该值可以是 -8 到 7 之间的任何值。其中 -8 是(1000 二进制),7 是( 0111 二进制),因为半字节被读取为二进 ...

我从来不需要使用 ($nn,x) 寻址模式。 什么是它有用的例子? - I've never had a need to use the ($nn,x) addressing mode. What's an example of something it's useful for?

我已经多次使用($nn),y ,这几乎是 6502 的基本方法,即迭代 arrays。 但我从来没有发现($nn,x)的用途。 我唯一考虑过使用它的时间是x = 0 。 似乎可以使用STA ($nn,x)解决的任何问题都可以使用硬编码指针轻松完成,例如在此示例中写入 Konami VRC6 声音硬 ...

2022-07-22 13:33:32   2   38    6502  
是否有一种逻辑算法可以为给定的输入生成唯一的输出? - Is there a logical algorithm to generate unique outputs for the given inputs?

我有一个需要输出唯一格式化字节的输入表。 算法输出的字节只需打开 1 位,即可提供 8 个独特的输出。 只要每个输入具有唯一的输出,输入就不必与特定的输出相关。 以下是所有可能的输入和输出的列表。 输入:-00001000 -00001001 -00000001 -00000101 -000001 ...

6502 代码中的高效多重间接寻址 - Efficient multiple indirection in 6502 code

问题 我正在查看一个 6502 程序,该程序具有多个字节数组(对应于特定语音的音效数据),它们的长度各不相同。 目前,这涉及显式迭代第一个(如果排队),然后是第二个等,并且每个语音都有一组单独的音量、延迟等变量,因此代码设置为使用这些硬编码标签。 我想把它变成一个循环,索引这些额外的变量和音效数据 ...

如何从 6502 (cc65) 上的 C 访问没有前导 _ 的汇编语言符号 - How to access assembly language symbols without a leading _ from C on 6502 (cc65)

我正在使用 cc65 用 6502 汇编语言编写一些代码。 因为我生活在 2022 年而不是 1979 年,并且可以使用比目标平台强大一百万倍的开发机器,所以我正在为 C 中的汇编语言代码编写单元测试。 显然 C 和汇编语言的调用约定是不同的,所以我有一堆接受 C 风格 arguments 然后调用 ...

我想我已经解决了光栅中断文本/位图模式,但我有这个奇怪的文本错误 - I think I have solved raster interrupts text/bitmap mode but I have this weird text error

汇编:CBM prg Studio。 大家好,圣诞快乐,节日快乐:)在我的中断中,文本 output 是怎么回事? 我必须在这里遗漏一些明显的东西,但请看一下附图...... 它应该说: “进入第一个候选人的范围……” *位图显示 “开始我的 Y/N?” 看看所附的图像,自己看看。 下面是代码。 ...

如何在 6502 汇编程序中正确使用中断处理程序? - How to properly use interrupt handlers in 6502 Assembler?

我是汇编新手,所以这个问题听起来可能很愚蠢,但究竟应该在光栅中断处理程序中实现哪种类型的代码? 所以我知道在呈现所需的光栅线时会调用此处理程序。 但这似乎只发生一次(如果我确认中断)。 除非我清除屏幕或重绘它的相关部分,否则不会再次调用处理程序例程,对吗? 那么使用中断有什么意义呢? 如果有这样的 ...

在 6502 汇编程序中编写子程序的最佳方式? - Best way of writing subroutines in 6502 Assembler?

我是汇编程序的新手,所以这里有一个简单的问题: 我的自定义子例程更改X 、 Y和A寄存器。 他们操纵这些以产生所需的结果。 在例程启动时将这些值推送到堆栈并在RTS之前恢复它们是否是个好主意? 我的意思是,这样我就可以编写可以从任何地方调用的例程,而不会弄乱“状态”或影响其他例程。 但是这样使用 ...

将 memory 地址传递给 C64 汇编中的子程序? - Passing memory address to subroutine in C64 Assembly?

那么如何将“scr1”作为“param”传递给 function? 我知道这是一个 memory 地址,所以它不适合 1 字节寄存器。 最好的方法是什么? 编辑: 感谢您的回答,下面发布的解决方案效果很好。 但这同时使用了 X 和 Y 寄存器? 如果“函数”调用依赖于 X 或 Y 或我自己的代码需 ...

Apple IIe 6502 组件存取盘 - Apple IIe 6502 Assembly Accessing Disk

我目前正在为需要从磁盘读取/写入文件的 Apple IIe 编写程序。 在阅读我在网上找到的关于 Apple II 汇编语言的书籍时,我遇到了用于访问磁带端口的$C060子程序,但我似乎找不到可以访问磁盘驱动器的子程序. 有没有这样的监控命令? 如果没有,我将如何在程序期间从磁盘读取/写入文件? ...

6510/6502 C64 键盘输入打印到屏幕并存储在内存中的问题 - 6510/6502 C64 Keyboard input print to screen & store in memory issue

有了这个,但是通过查看我的 c64 参考书的屏幕显示部分,我在下面输入的字符正确打印到屏幕上,但是当稍后从内存中再次打印时,它们不是。 :( 基本上,如果输入“A”,我会得到黑色的黑桃符号,“S”作为心形符号返回,“X”作为俱乐部符号返回。 我必须声明这在我以用户身份输入时不会发生,并且看到我的 ...

6502 通过 TXA 和 TAX 使用 CMP BNE 进行循环 - 6502 Looping using CMP BNE via TXA & TAX

刚刚学习了存储数据的整个过程,我是一个完全的低级编程新手,所以请温和。 但是为什么这个简单的代码不起作用,到目前为止它只是用我的简单预设测试数字 #08 填充 $1000 地址的 00 字节,我想通过这样循环我会看到前 8 个字节在调试器中每个包含 08在 1000 美元的地址,但不行。 我认为使用 ...

6502汇编:16位减法进位结果 - 6502 assembly: carry result in 16bit subtraction

我已经恢复了多年前为实现一些新功能所做的旧 6502 仿真器。 在测试期间,我发现了一些错误,肯定是由于我的实现中的错误。 我必须循环执行 16 位减法,直到结果为负:很简单,不是吗? 这是一个例子: 现在,问题是确定哪个分支到 select 或找到不同的解决方案。 如果 V2 减法清除进位,则BC ...

当被乘数在累加器中时,如何与6502中的加法和移位算法相乘? - How to multiply with add and shift algorithm in 6502 when the multiplicand is in the accumulator?

所以我试图通过使用 add 和 shift 来进行乘法运算。 我想将被乘数存储在累加器中,将被乘数存储在 X 寄存器中。 我真的不知道为什么我的代码不起作用,但我怀疑这是因为被乘数在累加器中并将产品放在单独的寄存器中。 到目前为止,这是我的代码: 谢谢您的帮助 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM