6502相关内容
我是ASM新手,我正在尝试解决如何为以下代码创建延迟: org $1000 loop: inc $d021 jmp loop 推荐答案 我想注释已经足够清楚了。 每帧(1/50秒)更改颜色的代码示例 sei ; enable interrupts loop1: lda #$fb ; wait for vertical retr
..
阅读此关于Commodore 64内存分配的HTML页面,因为我对旧的计算机硬件感兴趣,我偶然发现该表中的一个单元格声称该内存地址未使用。这到底意味着什么?这是否意味着如果您想在该地址中放一些东西,就可以放任何您想放的东西?感到困惑,将不胜感激。谢谢。 解决方案 内存映射通常应指定哪些程序使用此记忆。如果他们说“未使用”,则意味着这些指定的程序不使用该地址。在这里您可以更好地看到它: ht
..
为了娱乐,我正在实现NES模拟器。我目前正在阅读有关6502 CPU的文档,感到有些困惑。 我看过文档说明,因为6502是低位优先的,因此在使用时绝对寻址模式需要交换字节。我是在x86机上编写的,这台机器也是低端的,所以我不明白为什么我不能简单地转换为uint16_t *,然后取消引用,然后让编译器确定细节。 我在Google测试中写了一些简单的测试,他们似乎同意我的观点。 /
..
是否有用于开发计算机系统仿真器的良好开源框架?我对用Python或Java编写的可以减少开发8位处理器仿真器(例如6502、6510等)的工作量特别感兴趣。 解决方案 C64上不是6510吗? 您也许可以使用模拟c64代码的Java库 http://www.dreamfabric.com/c64/ http://www.jac64.com/jac64-java-based-c
..
今天是周末,所以我通过编写一个爱好项目来花整周的时间来放松自己。 昨天我写了一个MOS 6502 CPU仿真器的框架,寄存器,堆栈,内存和所有操作码均已实现。 (链接到下面的源代码) 我可以在编写的调试器中手动运行一系列操作,但是我想加载NES rom并仅指向程序 我写了一个快速的NES rom loader并将ROM bank加载到CPU内存中。 问题是我不知道操作码是如
..
我目前正在开发NES(6502)组装游戏,但我不了解如何进行精灵移动。在这里,我认为它应该起作用: (循环) LDA $ 200;将地址$ 200的内容加载到A寄存器中,其中包含我的sprite INA的Y位置;将A寄存器增加会增加我的精灵的Y位置的内容。 但是,您似乎无法递增A寄存器累加器,因为在尝试汇编时出现错误INA指令..所以我有点迷失了。我应该使用STA而不
..
然后我开始在Windows上使用ca65汇编器和ld65链接器为在VICE模拟器上运行的Commodore C64计算机创建二进制代码。 我在文件“ basic2.s”中写了这个小的“ hello world”源代码。 ; -------------------------------------- ; objetivo:汇编头BASIC程序 ;运行二进制代码 ; ;汇编程序:ca
..
如果您阅读了我的其他问题,您就会知道我已经花了这个周末一起使用6502 CPU仿真器作为编程练习。 CPU仿真器基本上是完整的,并且从我有限的测试来看似乎相当准确,但是它的运行速度非常快,我想将其调节到机器的实际时钟速度。 我当前的测试循环是: //无限循环。 而(1 == 1) { CPU.ClockCyclesBeforeNext--; if(CPU.Cloc
..
有点混乱的问题。但我真的在寻找一些低级程序设计。事情就是,开发板像Arduino / Etc。真的隐藏了很多事情。 我花了一些时间了解计算机体系结构,逻辑/门/顺序逻辑等(我甚至去了学习与所有这些相关的半导体和电子学的物理学,只是为了知道究竟是怎么回事,以及如何使用CMOS晶体管等等)。 但是关于它结束的地方....我想能够理解一个指令(像Hex /或Assembly / etc ..
..
一个令人困惑的问题点点。但是我真的找学习一些低层次的编程。事情是,开发板一样的Arduino /等。真的隐藏了很多的怎么回事。 我已经花了一些时间来学习计算机体系结构,逻辑/门/时序逻辑/等。(我去甚至远学半导体以及电子有关的所有的物理,只知道到底是怎么回事上,以及盖茨是如何使用的CMOS晶体管等等)制成。 但是关于它的尽头....我希望能够了解一个指令(像六角/或组件/等。code)通过简单
..