6502

NES(6502 assembly) Sprites movement

本秂侑毒 提交于 2020-04-07 05:42:07
问题 I am currently working on a NES(6502) assembly game but I dont understand how to make a sprite move.Heres how I think its supposed to works: (loop) LDA $200 ;will load into the A register the content of address $200,wich contain the Y postion of my sprite INA ;Increment the A register wich would increment the content of A wich is the Y position of my sprite..? However it seems that you cannot increment the A register accumulator because I get an error when trying to assemble with the INA

6502 and little-endian conversion

安稳与你 提交于 2020-01-23 10:09:34
问题 For fun I'm implementing an NES emulator. I'm currently reading through documentation for the 6502 CPU and I'm a little confused. I've seen documentation stating because the 6502 is little-endian so when using absolute addressing mode you need to swap the bytes. I'm writing this on an x86 machine which is also little-endian, so I don't understand why I couldn't simply cast to a uint16_t*, dereference that, and let the compiler work out the details. I've written some simple tests in google

Emulator Framework

不羁岁月 提交于 2019-12-21 02:37:07
问题 Are there any good open source frameworks for developing computer system emulators? I am particularly interested in something written in Python or Java that can reduce the effort involved in developing emulators for 8-bit processors (e.g. 6502, 6510, etc.). 回答1: Isn't the 6510 in the C64? You might be able to make use of the java libraries that emulate c64 code http://www.dreamfabric.com/c64/ http://www.jac64.com/jac64-java-based-c64-emulator.html If you aren't afraid of C++ try this general

What is an unused memory address?

为君一笑 提交于 2019-12-13 04:26:48
问题 Reading this HTML page on Commodore 64 memory allocations because I am interested in old computer hardware, I stumbled across a cell in the table that claims that the memory address is unused. What exactly does this entail? Does this mean that if you wanted to put something in that address you can put whatever you want? Confused, and would appreciate all answers. Thanks. 回答1: Memory maps should usually specify which programs use this memory. If they say "unused", this means that these

ca65 assembler and ld65 linker

那年仲夏 提交于 2019-12-10 18:49:05
问题 I'm beginning to use then ca65 assembler and ld65 linker on WIndows to create binary code for Commodore C64 computer, running on VICE emulator. I write this small "hello world" source on file "basic2.s" ;-------------------------------------- ; objetivo: assembly a header BASIC program ; to run binary code ; ; assembler: ca65 ; http://cc65.github.io/doc ; ; v101-c101 2018-08-09 13:50:53 A.Alonso ;----------------------------------------------------- PRINTTOKEN = $99 SYSTOKEN = $9e chrout =

6502 and little-endian conversion

半城伤御伤魂 提交于 2019-12-06 02:56:28
For fun I'm implementing an NES emulator. I'm currently reading through documentation for the 6502 CPU and I'm a little confused. I've seen documentation stating because the 6502 is little-endian so when using absolute addressing mode you need to swap the bytes. I'm writing this on an x86 machine which is also little-endian, so I don't understand why I couldn't simply cast to a uint16_t*, dereference that, and let the compiler work out the details. I've written some simple tests in google test and they seem to agree with me. // implementation of READ16 #define READ16(addr) (*(uint16_t*)addr)

Seeing how Instructions get Translated (Computer Architecture)

倾然丶 夕夏残阳落幕 提交于 2019-12-04 07:53:54
问题 Little bit of a confusing question. But Im really looking for learning some low level programming. Thing is, Dev boards like Arduino/Etc. really hide alot of whats going on. I have spent some time learning about Computer Architecture, Logic/Gates/Sequential Logic/etc.. (I went even as far as to learn the Physics of Semiconductors and Electronics related to it all, just to know what exactly is going on, as well as how Gates are made using CMOS Transistors and such). But thats about where it

6502 CPU Emulation

♀尐吖头ヾ 提交于 2019-12-03 05:12:00
问题 It's the weekend, so I relax from spending all week programming by writing a hobby project. I wrote the framework of a MOS 6502 CPU emulator yesterday, the registers, stack, memory and all the opcodes are implemented. (Link to source below) I can manually run a series of operations in the debugger I wrote, but I'd like to load a NES rom and just point the program counter at its instructions, I figured that this would be the fastest way to find flawed opcodes. I wrote a quick NES rom loader

6502 CPU Emulation

℡╲_俬逩灬. 提交于 2019-12-02 18:43:06
It's the weekend, so I relax from spending all week programming by writing a hobby project. I wrote the framework of a MOS 6502 CPU emulator yesterday, the registers, stack, memory and all the opcodes are implemented. (Link to source below) I can manually run a series of operations in the debugger I wrote, but I'd like to load a NES rom and just point the program counter at its instructions, I figured that this would be the fastest way to find flawed opcodes. I wrote a quick NES rom loader and loaded the ROM banks into the CPU memory. The problem is that I don't know how the opcodes are

Seeing how Instructions get Translated (Computer Architecture)

帅比萌擦擦* 提交于 2019-12-02 18:28:34
Little bit of a confusing question. But Im really looking for learning some low level programming. Thing is, Dev boards like Arduino/Etc. really hide alot of whats going on. I have spent some time learning about Computer Architecture, Logic/Gates/Sequential Logic/etc.. (I went even as far as to learn the Physics of Semiconductors and Electronics related to it all, just to know what exactly is going on, as well as how Gates are made using CMOS Transistors and such). But thats about where it ends....and I want to be able to understand how an Instruction (Like Hex/or Assembly/etc.. code) is