| |
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.... |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
I still don't understand :) You mean the reset routine would set and then unset the bit? (I think we could find out by disassembling MAXBasic or MultiMAX) |
| |
tlr
Registered: Sep 2003 Posts: 1790 |
Quote: I still don't understand :) You mean the reset routine would set and then unset the bit? (I think we could find out by disassembling MAXBasic or MultiMAX)
Yes.
Or perhaps starting the thing without a cart or with a dummy cart and see what happens? |
| |
oziphantom
Registered: Oct 2014 Posts: 490 |
Quote: i was trying to remember more and then i came across the ECM mode + Bitmap-mode-enabled-at-the-same-time-"bug" again which actually does the black screen thing - but it does not crash. Perhaps the screen blackening happened and i was unable to do anything onscreen and identified that as a halt (i had no monitoring back in the day, let alone real knowledge :shrug:)
so i am not sure if it is actually true that the C128 halted, i just read this thread and remembered "wait i experienced exactly this!" and hastily commented - while i actually should only have asked if this was tried an a C128.
so my apologies, maybe that was a mixed up memory. but it surely was not d030. anyways. maybe i'll dig out the c128 i got in 2015 and try there again later - ofcourse it will most likely not be the same HW revision. Nevermind.
The C128 does have a test bit that stops output, but its on D030 and doesn't use the D016 one as far as I know. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
Quote:Or perhaps starting the thing without a cart or with a dummy cart and see what happens?
Then it simply does nothing :) But yes, it'd be interesting if the monitor syncs or not in that case
Quote:The C128 does have a test bit that stops output, but its on D030
Technically the test bit in $d030 doesn't "stop output" - the line counter increases by 1 every cycle when it is set, it still produces a video signal though. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
Quote:I think we could find out by disassembling MAXBasic
It writes 0 first (at the beginning of the reset routine), then 8 (in the VICII register init loop). So it doesn't toggle bit5. |
| |
Monte Carlos
Registered: Jun 2004 Posts: 360 |
According to C64 Wiki the 6566 is a revision used in NTSC machines. So not wonder if the PAL world wonders about the reset bit.
https://www.c64-wiki.de/wiki/VIC |
| |
tlr
Registered: Sep 2003 Posts: 1790 |
Quote: According to C64 Wiki the 6566 is a revision used in NTSC machines. So not wonder if the PAL world wonders about the reset bit.
https://www.c64-wiki.de/wiki/VIC
The 6566 is used solely in the MAX Machine which is only available in NTSC, yes. |
| |
Fungus
Registered: Sep 2002 Posts: 688 |
I have never seen one in the wild with a 6566. I have seen R4 6567 (less lumas) and R5 6A though. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
As said, its only used in the MAX Machine, it wouldn't work in a C64 even. THAT part is clear :) |
| |
Fungus
Registered: Sep 2002 Posts: 688 |
Yeah, someone should correct that in that wiki. |
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 - Next |