Path: utzoo!mnetor!uunet!seismo!sundc!pitstop!sun!decwrl!ucbvax!hoser.berkeley.edu!bryce From: bryce@hoser.berkeley.edu (Bryce Nesbitt) Newsgroups: comp.sys.amiga Subject: Re: internal RAM expansion Message-ID: <22420@ucbvax.BERKELEY.EDU> Date: 6 Jan 88 23:47:22 GMT References: <378@boole.acc.virginia.edu> Sender: usenet@ucbvax.BERKELEY.EDU Reply-To: bryce@hoser.berkeley.edu (Bryce Nesbitt) Distribution: na Organization: The Logic Foundation Lines: 66 In article <> pmy@boole.acc.virginia.edu (Pete Yadlowsky) writes: > >I recently installed a Spirit Technologies RAM board (1.5M + clock) in >my A1000.... Anyway, I have a vague recollection >of someone here warning of some possible drawbacks to this type of >memory...something about memory at $C00000? There are three Kickstart bugs dealing with $C00000 memory. I believe this is a complete list: 1> On a "recoverable" alert the system thinks that execbase is corrupt. It thus wipes all of $C00000 to zero, destroying any recoverable ram disk in the process. This can be fixed by changing a $00FF0001 to ($C00276 OR $00000676) EOR $FFFFFF) early in the Alert() routine. This bug affects only users, not programs. I'm told that it was not fixed in Kickstart V1.21. Programmers can work arround the bug by using DisplayAlert(). Users can get a program Andy Finkel wrote called "SetAlert". This was posted to comp.sys.amiga eons ago. Perhaphs the comp.binaries archives have a copy. 2> On a COLD boot, or a boot after the system has detected exec corruption, the system sizes $C00000 memory. This process in done in a manner that destroys one word of memory every 256K. A slightly more clever test could eliminate the need to write within the $C00000 range. 3> After the "one word every 256K test" the system wipes all of $C00000 memory to zero. This means you will never see the effect of "one word every 256K"... if that happens you memory will also be wiped to zero. The first is a bug. The second two affect recoverable ram disks. My Kickstart fixes these bugs, naturally. (I have a Spirit also). I will not distribute this Kickstart until after the Transactor for Amiga article on the subject breaks. The $C00000 memory is desirable in some ways on the Amiga. It frees chip memory and speeds up operation of the machine during heavy chip use. execbase, gfxbase and the supervisor stack all end up in chip unless $C00000 is present. Interrupt latency is a lot less with fast $C00000 memory (says the person working on serial handlers). Exec could be re-coded to swap the supervisor stack into normal autoconfig memory after expansion. This would obviously sell more Amigas :-). >The reason I'm asking is that my Amiga has been behaving a bit oddly... >BUT, every once in a while, some file currently in RAM: would somehow >wind up corrupted. "Hmmm...", said I. TEST your program on another Amiga. If it stands up to repeated bashing on that machine, send your Spirit back for a refund. They create $C00000 memory via a method SPECIFICALLY FORBIDDEN by Commodore. It can be flakey. (The method is pulling *OVR with an A series PAL. No qualification with *AS... adding that within the PAL makes things much worse.) |\ /| . Ack! (NAK, SOH, EOT) {o O} . bryce@hoser.berkeley.EDU -or- ucbvax!hoser!bryce (or try "cogsci") (") U "Your theory is crazy... but not crazy enought to be true." -Niels Bohr