| |
Majikeyric
Registered: Sep 2002 Posts: 83 |
How does linecrunch work ?
Hi everybody !!!!
Can someone explain or point me to a web site where I could find information about linecrunch ???
I think it allows to scroll bitmaps but I don't know how ???
thanks. |
|
... 16 posts hidden. Click here to view all posts.... |
| |
Cybernator
Registered: Jun 2002 Posts: 154 |
Yago wrote:
"To recognize the both CIAs (6526 & 8???), try the Program "diag" which might be found here..."
Wait a minute, I've never seen 85xx CIA. New C64s are based on 85xx chips, except for the CIA. It still 6526 with "A" after the number. Or maybe there're some 85xx based CIAs which are unknown to me? If possible, please check the number of the CIAs in your C64.
Btw, please explain something more about the "shiftlock detection" you mentioned (or send me a link if there's any).
|
| |
Stryyker
Registered: Dec 2001 Posts: 465 |
My newer C64 had red LED. |
| |
yago
Registered: May 2002 Posts: 332 |
Quote: Yago wrote:
"To recognize the both CIAs (6526 & 8???), try the Program "diag" which might be found here..."
Wait a minute, I've never seen 85xx CIA. New C64s are based on 85xx chips, except for the CIA. It still 6526 with "A" after the number. Or maybe there're some 85xx based CIAs which are unknown to me? If possible, please check the number of the CIAs in your C64.
Btw, please explain something more about the "shiftlock detection" you mentioned (or send me a link if there's any).
Concerning differences between left shift and shiftlock:
This is an excerpt from C=Hacking #7:
You can use this feature to distinquish between the left
shift and the shift lock keys, although they are connected
to same hardware lines. The shift lock key has smaller
resistance than the left shift. If you make both CIA 1
ports to outputs (write $FF to $DC03 and $DC01) prior
reading the left shift key, only shift lock can change the
values you read from CIA 1 port B ($DC01).)
Have Fun,
Zed Yago
|
| |
ChristopherJam
Registered: Aug 2004 Posts: 1378 |
So I've been playing with line crunch a little, but if I try to do it within the display area, I've only managed to crunch every second row of characters.
(eg, I can get VIC to display 8 lines of row 3, then 1 line of row 4, then 8 lines of row 5, then 1 line of row 6)
Within row 3, I tell VIC to delay row 4 by a line, then trigger row 4 at the time I would for FLI (ie with the three char bug area visible). I can then start row 5 in any of the next 7 lines.
Is crunching multiple adjacent rows down to single adjacent lines only possible if you start in the upper border, before the first char row has been displayed? |
| |
ChristopherJam
Registered: Aug 2004 Posts: 1378 |
Never mind, got it working now :D |
| |
Raistlin
Registered: Mar 2007 Posts: 552 |
I'm starting to code my first linecruncher (!) .. and hitting some snags. I can only get it to scroll 0-14px (!) instead of the 0-15px that I of course want...
Across 16 frames, I'm doing these D011 writes (VSYNC, HSYNC):-
Frame0: V01, H15 (D011 = $30) and V48, H09 (D011 = $31)
Frame1: V01, H15 (D011 = $31) and V49, H09 (D011 = $32)
...
Frame6: V01, H15 (D011 = $36) and V54, H09 (D011 = $37)
Frame7: V01, H15 (D011 = $37) and V54, H09 (D011 = $30)
Frame8: V01, H15 (D011 = $30)
Frame9: V01, H15 (D011 = $31)
..
Frame15: V01, H15 (D011 = $37)
These are the only $d011 writes that I do...
Frame7 and Frame8 end up the same .. so it seems that I have something out of step somehow - both frame 7 and 8 of course have a final $d011 value of $30... so I assume I'm doing -something- wrong here..?
Any help/advice at all would be great............ |
| |
Raistlin
Registered: Mar 2007 Posts: 552 |
One more small note with what I'm trying to do here ... I'm -hoping- that I can do 0-15px linecrunch-based scrolling without losing any of the vertical height of the screen .. ie. retaining all 24chars (192px). |
| |
Krill
Registered: Apr 2002 Posts: 2839 |
Still not quite sure what you want to achieve, tbh. :)
Linecrunching does not lose you any char rows, but the wrapping point (screen offset $03ff->0 mid-row) and shifted screen contents below that become a bit cumbersome to handle.
One crunched char row equals upscrolling by 7 rasterlines, and you'd normally combine linecrunching with FLD (empty lines filled with $3fff idle pattern) for pixel-wise hardware Y-scrolling. |
| |
Raistlin
Registered: Mar 2007 Posts: 552 |
Ahhh, thanks Krill! That was the last piece of the puzzle - and explains why I could only get 0-14px working instead of 0-15px (0-7px coming from the smooth scroll of D011 plus 0px or 7px depending on whether I crunched a line).
I have it working in my test function now... tomorrow I'll see whether I can get it working in a more useful way :-) |
| |
Krill
Registered: Apr 2002 Posts: 2839 |
Glad i could help!
So the missing piece of the puzzle was that you'd set YSCROLL again after the crunched line, so you'd have 0..7 pixels of scroll-range above plus another 0..7 pixels of scroll-range below the crunched rows?
Or that you'd need to crunch 3 char rows (not just 2) in order to scroll up by 15 pixels? =) |
Previous - 1 | 2 | 3 - Next |