| |
stiggity Account closed
Registered: Jul 2013 Posts: 5 |
c64 garbage collection, NEED HELP!!!
I came across a real nice "aftermarket" c64 garbage collection routine. I spent 2 hours on the source, and got it able to
compile in my assembler (64tass). but, all comments are in
German. Im writing a BBS program for the 64, and it runs and
works, but it will pause for 10/12/15 seconds here and there. And anyone not knowing its collecting garbage, may
drop carrier. I would like to intermingle this code, into my own project, but believe its a little above my skills level. If anyone is into c64 telecom, and thinks they could help me out, be my guest. I can describe, and explain how my memory is laid-out, with the BBS. So if you think your good, and believe this code _can_ be intermingled, I can fully credit you in docs, manual, website, and email support. Thanks. Id rather go back and forth via E-mail, rather than posting the source here. I'm safe! :)
-Thanks,
--Steve
stiggity99(@)Comcast.net |
|
| |
Urban Space Cowboy
Registered: Nov 2004 Posts: 45 |
1. Don't sign your posts.
2. What garbage collection routine from where? Like give a link or something.
3. The best way to deal with garbage collection is to not make garbage strings in the first place -- cut down on those A$=A$+(whatever) type assignments! If you absolutely can't live without them, try putting in an X=FRE(1) now and then to force a garbage collect and smooth out the bumps somewhat.
4. Any more specific advice can't be done without analyzing what your code's doing now. BBS software is a mostly-solved problem and you aren't doing yourself any favors by being stingy with your code. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
"try putting in an X=FRE(1) now and then to force a garbage collect and smooth out the bumps somewhat."
yep. the typical solution for BBS is to do that at the prompt. |
| |
stiggity Account closed
Registered: Jul 2013 Posts: 5 |
cowboy: chill, playah..
im not trying to be stingy with my source.
Obviously, you have never written a BBS prg for the
c64.
goepaz: Im trying my best...
-Steve |
| |
stiggity Account closed
Registered: Jul 2013 Posts: 5 |
Plus, I have already set my end of basic pointers to $9000, where MORE of my BBS machine code lies..
So there's only SO MANY bytes of memory!!
and to have a nice bbs prg (Similar to Image BBS), it has to be highly modular. BASIC and ML.. with the speed of today's hard drives for the 64 or (128( which I wrote a BBS package for also)) loading modules here or there, really doesn't distract the user from the board. BUT!! waiting 15 seconds to collect garbage while reading bulletins is frustrating.. So, in short.. I haven't the slightest clue, on how this collection routine is b0rking me....im pretty sure its copying the basic ROM, and putting it in RAM. Which 100% goes against my BBS structure grain..i store code from $A000 - $BFFF If ANYONE want's too see this source, btw.. CHRISTIAN LOTT, contacted me, obtained the source, and quickly translated all the German comments to english, re-formatted it, and did a 100% bang-up job on it.
(Those are the types of ML coders I appreciate.)
email me: stiggity99(at)COMCAST.net
--Steve |
| |
The Phantom
Registered: Jan 2004 Posts: 360 |
Sounds like the buffer is on. How to fix it, I've no clue ;)
Had a similar issue with Evil Term
Sorry can't really help further.. We never fixed the issue. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
well if you want people to help, then you should post the code (or link to it)
however, it will need to copy the rom to ram because there is no other way to hook into it (there is no vector for the garbage collection). the only way to get around that would be to manually call the garbage collection every now and then (as said, at each prompt and/or after each message should do the trick - however, once you do that you can probably get away also by simply using fre(0) the same way) |
| |
TheRyk
Registered: Mar 2009 Posts: 2246 |
even
X=FRE(1)
will not solve the problem of an exponentially slowing down GC, the only difference is that you decide when GC takes place.
Quote:The best way to deal with garbage collection is to not make garbage strings in the first place
After a terrible experience when fixing a BASIC game
Murder V1.2 <- GC gets slower and slower while the game stays as crappy as it just is...
I'd even go further and say "Don't use strings at all", sounds weird but there are many other ways. |
| |
stiggity Account closed
Registered: Jul 2013 Posts: 5 |
How do I 'properly' post my source??
-Stig |
| |
TheRyk
Registered: Mar 2009 Posts: 2246 |
Quote: How do I 'properly' post my source??
-Stig
use tags square bracket "[" 4 chars "code" square bracket "]" then of course your code and finally "[/" 4 chars "code" square bracket "]" |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
and if its more than a couple of lines, upload it somewhere and link to it. or use something like pastebin.com |
... 14 posts hidden. Click here to view all posts.... |
Previous - 1 | 2 | 3 - Next |