Re: VIC-II initialization.

From: Michiel Boland <michiel_at_boland.org>
Date: Sat, 29 May 2021 21:56:13 +0200
Message-ID: <cee00478-e138-27ae-7a9e-d3534c04c537_at_boland.org>
On 5/29/21 7:45 PM, tokafondo wrote:
> I've been studying the VIC-II datasheet and how the C64 initializes it when
> booting.
> 
> The only thing I've seen while booting is
> 
> LDX $#FF
> [...]
> STX $D016

This may be a leftover from the commodore max, where apparently there was a 
reset bit in the VIC-II that could be set to 1 to stop the chip. But this bit 
does nothing in the commodore 64.

I believe all registers in the VIC chip are initially zero, except for registers 
that are implemented using S/R-latches, which may contain random data. I haven't 
looked at this for a while but I think the sprite collision registers and the 
lower bits of the interrupt register use S/R-latches or something similar.

I think the light pen registers also sometimes contain random data after 
powerup, not sure exactly how that works.

Also famously the sprite counters are not initialized at powerup so these 
contain random data. (Although these are not available as registers.)

All VIC-II registers are intialized later by the kernal.

Cheers
Michiel
Received on 2021-05-29 22:00:41

Archive generated by hypermail 2.3.0.