| |
itch
Registered: Aug 2006 Posts: 24 |
scrolling with $d011
Hi! .. I made a nice working screen scroller from the bottom to the top of the screen. It worked fine and looked good in VICE thet is .. BUT when i tested the code at my c64c it did don't work properly... Chars disapering and whole linse invisible...
I used default screen adress ( $0400 ), and copied the default font from rom to ram ( as hardware reference manual told me ), and pointed vic to the new char adress.
What could be wrong ?
//itch |
|
... 26 posts hidden. Click here to view all posts.... |
| |
itch
Registered: Aug 2006 Posts: 24 |
Quote: vertical hardware scrolling is known to be failing on some c64s. it depends on the memory model. this trick modifyes the timing of the vic's ram refresh, and some memory type doesnt likes that -> the memory slowly gets eatan up by garbage. I have my bets that you have this problem.
Hmmm .. ok .. But this scroller is a ordenary scroll .. Nothing fancy ...
scrolllda $d011
and #%00000111
tax
dex
bmi supp
dec $d011 |
| |
itch
Registered: Aug 2006 Posts: 24 |
Quote: vertical hardware scrolling is known to be failing on some c64s. it depends on the memory model. this trick modifyes the timing of the vic's ram refresh, and some memory type doesnt likes that -> the memory slowly gets eatan up by garbage. I have my bets that you have this problem.
Okay but this is a ordenary scroll , nothing fancy ..
scroll
lda $d011
and #%00000111
tax
dex
bmi supp
dec $d011
...
...
supp
lda $d011
and #247
ora #7
sta $d011
lda $0428
sta $0400
lda $0429
sta $0401
...
...
somthing like that ... i ofcourse insert new data on last row of the screen ... |
| |
Devia
Registered: Oct 2004 Posts: 401 |
If you're not using the timers, remember to disable the timer interrupt, otherwise excessive interrupts "might" occur. This can result in the behaviour you describe and will seem to occur randomly on some machines or maybe not at all on others, since it all depends on when you start your code.
sei
...some shit
lda #$7f
sta $dc0d
sta $dd0d
lda $dc0d
...enable your ints
cli
The final lda clears any "pending" interrupts and thus is VERY important here.
|
| |
Style
Registered: Jun 2004 Posts: 498 |
Devia: Alot of my early stuff suffers from this :)
|
| |
HCL
Registered: Feb 2003 Posts: 728 |
Oh, a vertical scroller :). I think we all got fooled here and started talking about a VSP-scroller. Doh! Then i see no reason why your vertical scroller shouldn't work on a real c64. I do have a c64 in the basement with some corrupted memory chips though.. some (small) programs work anyway, but others don't. Haven't really investigated which part of the memory that fails though, but maybe you have the same problem. |
| |
Style
Registered: Jun 2004 Posts: 498 |
scroll
lda $d011
and #%00000111
tax
dex
bmi supp
dec $d011
...
...
supp
lda $d011
and #247 *** Dont you mean #248?
ora #7
sta $d011
lda $0428
sta $0400
lda $0429
sta $0401
...
|
| |
algorithm
Registered: May 2002 Posts: 705 |
When I had a 'real' c64, VSP would occasionally crash the machine. (sometimes grey dots would also occur when changing colors and sometimes not) A new C64 power supply got rid of the previous memory corruption problem |
| |
itch
Registered: Aug 2006 Posts: 24 |
Quote: If you're not using the timers, remember to disable the timer interrupt, otherwise excessive interrupts "might" occur. This can result in the behaviour you describe and will seem to occur randomly on some machines or maybe not at all on others, since it all depends on when you start your code.
sei
...some shit
lda #$7f
sta $dc0d
sta $dd0d
lda $dc0d
...enable your ints
cli
The final lda clears any "pending" interrupts and thus is VERY important here.
Thanx, I'll try this later tonight. |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
slap an lda $dd0d to the code above aswell |
| |
itch
Registered: Aug 2006 Posts: 24 |
Quote: Oh, a vertical scroller :). I think we all got fooled here and started talking about a VSP-scroller. Doh! Then i see no reason why your vertical scroller shouldn't work on a real c64. I do have a c64 in the basement with some corrupted memory chips though.. some (small) programs work anyway, but others don't. Haven't really investigated which part of the memory that fails though, but maybe you have the same problem.
Yes a vertical scroller, sorry if i diden't get that trough :)..
I hate to see YET another one of my C64's die :( But it's the circle of life i guess.
If the irq timing stuff doesn't work, i will have to accept the death of my machine ...
Thankyou all for helping me out EVEN though it was just a vertical scroll. :) |
Previous - 1 | 2 | 3 | 4 - Next |