4 ms·
I get what you're saying but I wouldn't personally call zeropage bytes _registers_, even though they are physically connected to internal ones. I treat them as
by Keyframe 2y ago
I get what you're saying but I wouldn't personally call zeropage bytes _registers_, even though they are physically connected to internal ones. I treat them as a special zone of memory that has special properties. There are many of these things and just like you would start with any of the old machines you'd first take a look at the memory map to see where's what and how to use it. Registers in a traditional sense would be those few mentioned of which you'd only ever really touch A, X, and Y.
- vardump 2y ago> even though they are physically connected to internal ones They're not physically connected, other than through the bus. I mean, zero page is part of DRAM.
- Keyframe 2y agoyou're right, I meant $0000 and $0001 which _are_ registers. The rest 254, yeah. Zeropage is a must on C64 at least. I don't know much about other platforms.
- RiverCrochet 2y agoSo 0 and 1 are connected to the 6510 I/O data direction and I/O data register, but there is still RAM there too. Seems the 6510 won't issue write signals to the bus for addresses 0 and 1, but the VIC can see them and it's readable through sprite collisions.
- RiverCrochet 2y agoOne reason to consider them equivalent to registers is that the cycle time for zero page and register-based instructions is the same (2-3 cycles). The full 16-bit instructions ("absolute") take at least 1 extra cycle and often 2 if crossing a page. Of course there is the Atari 2600 where you only have 128 of those bytes with RAM (80-FF) and the stack is set to page 0 instead of 1 (not that you'll use the stack a lot in an Atari 2600 program).