| |
Krill
Registered: Apr 2002 Posts: 2980 |
$D016 bit 5
There is this mysterious bit early on in the KERNAL reset routine:
FCEF: 8E 16 D0 STX $D016 ; VIC: Control Register 2 with X being anything in [0..5].
Now, some people [who?] claim that without this store to $d016, some [which?] cartridges won't start [citation needed].
However, $D016 apparently used to have a mysterious "reset bit" in supposedly early VIC-II revisions (those with only 5 not 9 luma steps, and then the early ones of those).
| Bit 5 | Reset-Bit: 1 = Stop VIC (no Video Out, no RAM |
| | refresh, no bus access) | Could this be the reason why some things on some machines (?) won't start without that store to $D016?
Do any machines still exist where setting $D016 to, say, $f8 would crash them (when running code from RAM)?
Or did this "reset bit" never exist? =) |
|
... 66 posts hidden. Click here to view all posts.... |
| |
Monte Carlos
Registered: Jun 2004 Posts: 361 |
It's good to have different sights on the same thing, although if it gets a one man show, the constructive discussion suffers a lot. |
| |
Krill
Registered: Apr 2002 Posts: 2980 |
What iAN CooG and Monte Carlos said.
Quoting GroepazAFAIK this bit is only needed/used in the VICII of the MAX Machine. If at all :) Quoting tlrThe reset bit does not do anything on the 6569R1. I'm guessing early 6567's, maybe only prototypes even?
How likely is it that some (NTSC) C-64 have one of those early VIC-II revisions?
And if unlikely, why could a cartridge fail to start without that store to $d016? |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
Quote:How likely is it that some (NTSC) C-64 have one of those early VIC-II revisions?
"uncommon but not rare" :) The first batch(es) had the early VICIIs (obviously) - whats probably unlikely is that someone is still using these (64 cycles and everything)
Quote:And if unlikely, why could a cartridge fail to start without that store to $d016?
Could be as simple as "some broken code relies on the value in the register", who knows - i'd like to know who made those claims about which cartridges though (that would give us a chance to answer that question, perhaps). |
| |
Krill
Registered: Apr 2002 Posts: 2980 |
Quoting Groepaz i'd like to know who made those claims about which cartridges though (that would give us a chance to answer that question, perhaps). Will ask them to chime in. One of the best current coders on this machine, though, with many games under the belt. =)
Was stumped as well by a bug report of one of the testers and the fix.
Some sort of (yet unemulated) VIC-II startup state (unrelated to the reset bit) that only gets unlocked by a store to $D016 is ruled out? |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
I'd never rule out weird things like that.... That strange behaviour with one of the sprites that some VICII show was also quite unexpected :)
But as said, without knowing more details its all (a bit pointless) speculation. Once we know these, we can knock up tests and ask people to run them - and we can find out what exactly is happening. |
| |
Martin Piper
Registered: Nov 2007 Posts: 723 |
http://janklingel.de/wordpress/wp-content/uploads/2020/08/MOS-6..
"The RES bit (bit 5) of register $d016 has no function on the VIC 6567/6569 examined as yet. On the 6566, this bit is used to stop the VIC."
6566...
Wikipedia: "MOS Technology 6566 – designed for SRAM/non-muxed address lines (used in the MAX Machine)"
So... SRAM, no need for refresh, by normal reading or by scheduling forced row address _RAS strobes. |
| |
Martin Piper
Registered: Nov 2007 Posts: 723 |
I suppose from the German: https://riff.2ix.at/c64/vic-txt.html
Das RES-Bit (Bit 5) von Register $d016 ist bei den bisher untersuchten VIC 6567/6569 ohne Funktion. Beim 6566 dient dieses Bit dazu, den VIC zu stoppen. |
| |
tlr
Registered: Sep 2003 Posts: 1790 |
Quoting KrillCould this be the reason why some things on some machines (?) won't start without that store to $D016?
Do any machines still exist where setting $D016 to, say, $f8 would crash them (when running code from RAM)?
Or did this "reset bit" never exist? =)
Is there an example of a particular cartridge lacking that store, not starting on a certain machine?
I think that store was usually omitted when replicating the startup code. I for one never included it. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
That said, it'd also be interesting where AAY64 copied the info from - i only remember that bit being described as "stop" or "test" bit (whatever that means).
And who owns a Max Machine and can run test programs? :) |
| |
tlr
Registered: Sep 2003 Posts: 1790 |
Quoting chatGPZThat said, it'd also be interesting where AAY64 copied the info from - i only remember that bit being described as "stop" or "test" bit (whatever that means).
It's called RES here: http://archive.6502.org/datasheets/mos_6567_vic_ii_preliminary...
Mapping the C64 states:
Bit 5: Bit 5 controls the VIC-II chip Reset line. Setting this bit
to 1 will completely stop the video chip from operating. On older
64s, the screen will go black. It should always be set to 0 to insure
normal operation of the chip.
Quoting chatGPZAnd who owns a Max Machine and can run test programs? :)
Looks like Macbeth might have one judging from recent videos. |
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 - Next |