Questions tagged [6502]
For 6502 series of processors, including hardware and assembly language questions. Use with [hardware] for the hardware interface in particular.
195 questions
11votes
3answers
2kviews
Why does Burger Time ROM contain EOR and ROR instructions that don’t actually execute as such?
I disassembled Burger Time (Data East set 1) arcade game from MAME as I always do when I want to reverse engineer a game. This is a 6502 processor, which I know pretty well as I coded & reversed a ...
6votes
0answers
478views
Why does Super Mario Bros (NES) preemptively clear the hidden 1UP flag before Mario hits the block?
I'm analyzing the disassembled code of Super Mario Bros. (NES) and came across some logic related to hidden 1UP mushrooms. While debugging the game alongside the code, I noticed something unexpected: ...
7votes
3answers
1kviews
Fastest quasi-random function in 6502?
I am hacking around with the Oric Atmos computer, and it has an interesting video display scheme, involving attribute values which change the behaviour (ink/paper colours, blinking, invert) according ...
2votes
1answer
375views
Removing Graphics, but not Sprites on C64
I am trying to remember that removing all graphic elements, but not sprites. The aim is to disable DMA and ease to open side borders etc... As I remember it was an option at $D011, but it seems it ...
5votes
2answers
732views
How to insert custom code into Super Mario Bros. NES file
I have a hobby project requiring adding some code to Super Mario Bros NES file. Specifically I want to display custom text (at least 22 letters and numbers, but more likely above 100 characters) after ...
5votes
1answer
361views
Apple IIe Enhanced not following BEQ correctly
I'm running the example code from Assembly Lines chapter 5 programs 2A and 2B which print the entire character map for the Apple II and then are supposed to break, however my code is looping ...
13votes
6answers
3kviews
How similar were the MC6800 and MOS 6502?
When reading about the history of the 6502 CPU, it is regularly pointed out that Chuck Peddle had previously worked on the MC6800 CPU at Motorola. As well, it is stated that the goal when creating the ...
5votes
2answers
347views
Why did CSG add a NEG instruction?
The Commodore 65CE02, among many excellent additions, contains one I don't understand: the NEG instruction. This certainly serves a purpose on machines without the equivalent of the SBC, like the PDP-...
5votes
2answers
2kviews
Was BCD a limiting factor on 6502 speed?
In a comment on https://retrocomputing.stackexchange.com/a/30215/4274 supercat made this interesting remark: I think the critical paths with regard to cycle rate occurred while doing BCD math. A ...
4votes
1answer
461views
Why didn't Commodore run the 6502 at 2 MHz? [closed]
The Atari 800, in 1979, ran the 6502 at 1.79 MHz. That rounds to 2, and was presumably a 6502A rated for 2 MHz, underclocked. Why did Commodore keep running their 6502 computers at 1 MHz, even the 64 ...
19votes
2answers
5kviews
Did the NES CPU save die area by omitting BCD?
The NES CPU was a copy of the 6502 with the BCD circuitry removed. As I understand it, this modification was motivated by a theory that BCD was the only part of the 6502 that was actually patented, so ...
3votes
0answers
271views
What process node enabled the 6502 to reach 2 MHz? [duplicate]
The original version of the 6502 was rated for 1 MHz, but before the end of the decade, the CPU was available in a 2 MHz version. Presumably what changed was Dennard scaling: make the transistors ...
3votes
2answers
427views
NES vs SMS ROM speed
The NES used a 6502-derived CPU at 1.79 MHz. The Sega Master System used a Z80 at 3.58 MHz. How did they differ in terms of what speed grade ROM they required in their respective cartridges? I know it'...
16votes
2answers
824views
Why did Acorn use the 6502?
It is an interesting quirk of the British microcomputer industry, that the main vendor of cheap microcomputers, Sinclair, used the better, more expensive CPU (Z80), whereas the main vendor of better, ...
11votes
2answers
2kviews
Why does the BRK instruction set the B flag?
On the 6502, the brk instruction is a software interrupt. Like any other interrupt, it pushes the status word to the stack and then the program counter, before transferring control to an interrupt ...