尝试理解代码 在下面的网站中是一个代码,一个带有波浪状运动的滚动条。 总的来说,我也很了解代码。 我不太明白的是,他为什么以这种方式使用 Ypos 和 Yposh。 那么,为什么 0 -2 位被 7 屏蔽并存储在 Ypos 中? 为什么这些值然后向右移动 3 并存储在 Yposh 中? 这个代码你可 ...
尝试理解代码 在下面的网站中是一个代码,一个带有波浪状运动的滚动条。 总的来说,我也很了解代码。 我不太明白的是,他为什么以这种方式使用 Ypos 和 Yposh。 那么,为什么 0 -2 位被 7 屏蔽并存储在 Ypos 中? 为什么这些值然后向右移动 3 并存储在 Yposh 中? 这个代码你可 ...
我看了 Ben eater 视频,它是关于基于 6502 芯片构建计算机的,我卡在了第 3 部分(汇编语言 VS 机器代码)。 他正在对 32k EEPROM 进行编程,并通过汇编编程使 LED 闪烁。 这是他使用的汇编程序http://sun.hasenbraten.de/vasm/这是他的代码 ...
ATARI-2600 问题有人吗? 当一个字节存储在 TIA HMP0 寄存器中时,将对粗光束 position 应用精细 position 调整。Stella 手册说该值可以是 -8 到 7 之间的任何值。其中 -8 是(1000 二进制),7 是( 0111 二进制),因为半字节被读取为二进 ...
我已经多次使用($nn),y ,这几乎是 6502 的基本方法,即迭代 arrays。 但我从来没有发现($nn,x)的用途。 我唯一考虑过使用它的时间是x = 0 。 似乎可以使用STA ($nn,x)解决的任何问题都可以使用硬编码指针轻松完成,例如在此示例中写入 Konami VRC6 声音硬 ...
我有一个需要输出唯一格式化字节的输入表。 算法输出的字节只需打开 1 位,即可提供 8 个独特的输出。 只要每个输入具有唯一的输出,输入就不必与特定的输出相关。 以下是所有可能的输入和输出的列表。 输入:-00001000 -00001001 -00000001 -00000101 -000001 ...
问题 我正在查看一个 6502 程序,该程序具有多个字节数组(对应于特定语音的音效数据),它们的长度各不相同。 目前,这涉及显式迭代第一个(如果排队),然后是第二个等,并且每个语音都有一组单独的音量、延迟等变量,因此代码设置为使用这些硬编码标签。 我想把它变成一个循环,索引这些额外的变量和音效数据 ...
我正在使用 cc65 用 6502 汇编语言编写一些代码。 因为我生活在 2022 年而不是 1979 年,并且可以使用比目标平台强大一百万倍的开发机器,所以我正在为 C 中的汇编语言代码编写单元测试。 显然 C 和汇编语言的调用约定是不同的,所以我有一堆接受 C 风格 arguments 然后调用 ...
汇编:CBM prg Studio。 大家好,圣诞快乐,节日快乐:)在我的中断中,文本 output 是怎么回事? 我必须在这里遗漏一些明显的东西,但请看一下附图...... 它应该说: “进入第一个候选人的范围……” *位图显示 “开始我的 Y/N?” 看看所附的图像,自己看看。 下面是代码。 ...
我试图弄清楚你是如何使用带有汇编的 6502 微处理器(使用 vasm 编译器)绘制到 Adafruit 1743 的。 I've searched through the data sheets (found here: https://www.mouser.com/datasheet/2/7 ...
我是汇编新手,所以这个问题听起来可能很愚蠢,但究竟应该在光栅中断处理程序中实现哪种类型的代码? 所以我知道在呈现所需的光栅线时会调用此处理程序。 但这似乎只发生一次(如果我确认中断)。 除非我清除屏幕或重绘它的相关部分,否则不会再次调用处理程序例程,对吗? 那么使用中断有什么意义呢? 如果有这样的 ...
我是汇编程序的新手,所以这里有一个简单的问题: 我的自定义子例程更改X 、 Y和A寄存器。 他们操纵这些以产生所需的结果。 在例程启动时将这些值推送到堆栈并在RTS之前恢复它们是否是个好主意? 我的意思是,这样我就可以编写可以从任何地方调用的例程,而不会弄乱“状态”或影响其他例程。 但是这样使用 ...
那么如何将“scr1”作为“param”传递给 function? 我知道这是一个 memory 地址,所以它不适合 1 字节寄存器。 最好的方法是什么? 编辑: 感谢您的回答,下面发布的解决方案效果很好。 但这同时使用了 X 和 Y 寄存器? 如果“函数”调用依赖于 X 或 Y 或我自己的代码需 ...
我目前正在为需要从磁盘读取/写入文件的 Apple IIe 编写程序。 在阅读我在网上找到的关于 Apple II 汇编语言的书籍时,我遇到了用于访问磁带端口的$C060子程序,但我似乎找不到可以访问磁盘驱动器的子程序. 有没有这样的监控命令? 如果没有,我将如何在程序期间从磁盘读取/写入文件? ...
我有一堆 LLVM IR / BC 文件,目前,我正在使用clang编译为带有 LTO 的本机代码: 在这里,我使用了三种输入文件: .ll文件是 LLVM IR 文件 .bc文件是 LLVM BC 文件 .o文件是一个 ELF 文件( file将其报告为ELF 32-bit L ...
我编写了一个小的 6502 程序来循环访问内存并使用 STA 零页间接寻址将值存储在 128 个连续的内存位置,但该程序似乎无法正常工作。 它应该将值 $01 的 128 个副本存储到内存地址 $0400 之后,但它没有。 我究竟做错了什么? ...
有了这个,但是通过查看我的 c64 参考书的屏幕显示部分,我在下面输入的字符正确打印到屏幕上,但是当稍后从内存中再次打印时,它们不是。 :( 基本上,如果输入“A”,我会得到黑色的黑桃符号,“S”作为心形符号返回,“X”作为俱乐部符号返回。 我必须声明这在我以用户身份输入时不会发生,并且看到我的 ...
刚刚学习了存储数据的整个过程,我是一个完全的低级编程新手,所以请温和。 但是为什么这个简单的代码不起作用,到目前为止它只是用我的简单预设测试数字 #08 填充 $1000 地址的 00 字节,我想通过这样循环我会看到前 8 个字节在调试器中每个包含 08在 1000 美元的地址,但不行。 我认为使用 ...
我已经恢复了多年前为实现一些新功能所做的旧 6502 仿真器。 在测试期间,我发现了一些错误,肯定是由于我的实现中的错误。 我必须循环执行 16 位减法,直到结果为负:很简单,不是吗? 这是一个例子: 现在,问题是确定哪个分支到 select 或找到不同的解决方案。 如果 V2 减法清除进位,则BC ...
我是汇编程序编程的新手,想让 6502 从 0 计数到 65536,并希望对代码有所帮助。 我必须使用 2 个字节(字),但问题是 INC 命令只增加一个字节。 ...
所以我试图通过使用 add 和 shift 来进行乘法运算。 我想将被乘数存储在累加器中,将被乘数存储在 X 寄存器中。 我真的不知道为什么我的代码不起作用,但我怀疑这是因为被乘数在累加器中并将产品放在单独的寄存器中。 到目前为止,这是我的代码: 谢谢您的帮助 ...