From: Hársfalvi Levente (hlpublic_at_freestart.hu)
Date: 2005-10-14 10:30:26
Hi!, This is interesting. I'd been thinking on this problem when I coded on Plus/4 (similar memory corruption "effect" on messing up with $ff06, the $d011 equivalent in the TED). First I though this must be some problem with memory refresh, ...but, as Marko pointed out, if a program ran through a page, even that would completely refresh the whole 64k of ram, and even if it didn't, it especially should refresh the area where the code used to run. ...On the other hand, when you code, you meet the problem more frequently =-). Sometimes I inspected the content after the code hung, and found out that usually not more than one byte, but of /each/ $100 page did change... I guess that's pretty interesting... What coincidence of events in the C= should be physically capable of change the xth byte of _each_ page?... I guess whatever it is, it must have something to do with memory refesh... should that be a corruption of the memory refresh cycle itself, or the memory refresh counter's content, I don't know. I also noticed that not all computers are subject to this problem... I wonder how the "not subject" =-) ones manage to keep the memory content, if the digital logic is similarly buggy in all VIC-II and TED revisions (I seriously doubt that this has ever been changed). ...I have a late, "new" case C64 with the old (but late) MB. ...Once I had to swap its original VIC-II (a 6569R5) to a 6569R3. Whilst it never hanged before on $d011 effects, now it almost always did... Nothing but the VIC-II was swapped... I doubt that any digital logic should be differ in the the two VIC-IIs, and everything else, including ttls, rams, weren't changed... Would someone please solve the mistery?... =-) Levente Daniel Kahlin wrote: > On Wed, 12 Oct 2005, Spiro Trikaliotis wrote: > >> I always thought the VIC refreshed the DRAM simply by accessing it. If >> you "swap" A0-A7 and A8-15 inside of the VIC, the VIC just accesses >> every row while generating its screen ($0400-$07E7), as the last byte >> cycles through all possible values. Thus, it could refresh all 64 KB RAM >> just by displaying the screen. >> >> Is this wrong? Does the VIC really generate some refresh cycles? > > > This is correct. This is why messing with $d011, like FLD, FLI and > line-crunch may in some cases corrupt memory. This is especially true > with line-crunch. How sensitive a machine is to this is dependent on > which revision of the c64, and probably what type of DRAM chips there are > installed. > Also, the 256Kbit chips (41256) does not require you to cycle more than > the lowest 8-bits. You can put 41256 chips into a regular c64, and put > a very simple circuit for manual bank select on A8 if you like. > > /Daniel > > > Message was sent through the cbm-hackers mailing list > > Message was sent through the cbm-hackers mailing list
Archive generated by hypermail pre-2.1.8.