Path: utzoo!mnetor!uunet!husc6!cmcl2!brl-adm!umd5!ames!ucbcad!ucbvax!hoser.berkeley.edu!bryce From: bryce@hoser.berkeley.edu (Bryce Nesbitt) Newsgroups: comp.sys.amiga Subject: AmigaLine #5 - Why recoverable ram disks don't on the A2000/A500 Message-ID: <22561@ucbvax.BERKELEY.EDU> Date: 13 Jan 88 03:07:39 GMT Sender: usenet@ucbvax.BERKELEY.EDU Reply-To: bryce@hoser.berkeley.edu (Bryce Nesbitt) Organization: The Institute for Reliable Software, Inc. Lines: 167 ---------------------------------------------------------------------------- Technical Note #5 Why recoverable ram disks don't on the A2000/A500 SUMMARY $ 5/0 Why recoverable ram disks don't on the A2000/A500 $ release $ 9-Jan-88 Bryce Nesbitt / BDI $ recoverable ram disk, VD0:, VDK:, boot, reset, $C00000 memory, setalert, bug Recoverable ram disks are used by most programmers. Normally these come back to life after a crash or reset. All too often on the A2000 and expanded A500 the disk won't come back. ---------------------------------------------------------------------------- THE PROBLEM These problems affect only "$C00000" memory. Three examples of this type of memory are: 1> Half of the 1 Meg of memory in an A2000. 2> The memory that sits in the pocket underneath the A500. 3> Expansion products such as the PAL, Spirit and Insider board for the A1000. Other memory is not affected. The problem is not the hardware controlling the memory, it is the software. The system executive (exec) sees a crash or reset in at least two different ways: 1> WARM boot. The system has already been set up, just do some cleanup and start over. 2> COLD Boot. Reset everything and wipe out local memory (including CHIP and $C00000). The fact that it ever wipes local memory to zero is the fundamental bug. The problem is compounded by the fact that it will be fooled into a cold boot by several factors: 1> If someone tries to post a "Recoverable" Alert. For example, the AmigaDOS Replacement project does this if it can't find it's library. This will crash the machine right away. 2> If you have more than 512K of chip memory. (lucky you!) 3> If something writes to memory and happens to corrupt it in the area that exec keeps a checksum for. 4> If some naugty programmer patches a library routine without using the "SetFunction()" function. SOLUTIONS Problem #1 can be fixed with a ram patch written be Andy Finkel of Commdore. This is attached at the end of this document. The next three problems are stickier, and will probably need to wait until the next Kickstart revision for a complete fix. For owners of an A1000 with Kickstart disk, the "Transactor Amiga Magazine" will probably publish a set of patches soon. Everyone else is left out in the cold. A ram patch is possible, but had not been made available as of this writing. The US address of the Transactor is: The Trasactor PO Box 338 Station "C" Buffalo, NY 14209-9990 Telephone: (416) 764-5273 As of this writing, 1 year of "Transactor for the Amiga" was $15. WHERE TO GET A RECOVERABLE RAM DISK (RRD) There are two. Both with the same low price of just $10: 1) VD0: - The first RRD ever. Available from free software sources. Suggested $10 donation. 2) VDK: - This program is from Expansion Technologies and it is a commercial program. (It is also know as SURVIVOR). Costs $10 from: EXPANSION TECHNOLOGIES 46127 Landing Parkway Fremont, CA 94538 This program has the advantage that it will try and avoid $C00000 memory if possilbe. Obviously this feature is only of use if you have both $C00000 memory and some other non-affected types. SETALERT PROGRAM This needs to be decoded with the "uudecode" program from Fish disk #53. After RUNing it, your computer will be safe from the recoverable Alert() bug. begin 644 setalert.ld M```#\P`````````.``````````T```"#````:P```!4````2````D@```!0`, M```(```````````````/````$````````````````````^D```"#(\\````0```"A#\`@`#"$`(%+(__I"*0`!$AAG7`P!`"!G]@P!``EG\";*#`$`- M(F<4%,$2&&="#`$`(&<$%,%@\D(:8-02&&0```"PO`$ZY````'"/`````$$ZY````+"/`````%"/`````&$ZY= M`````'``+GD````<3G5A``#&80``L"/`````("\`0J0```!PO`"QY````!"`Y````= M"&<&(D!.KOYB2KD````@9PY.KO]\(GD````@3J[^AB`?3G5(YP$&+CP``X`'I M+'@`!$ZN_Y1,WV"`<&1@L$'L`%Q.KOZ`0>P`7$ZN_HQ.=4/Z`!)P`$ZN_=@CN MP`````AGPDYU9&]S+FQI8G)A````9````%X```!,````1@```!H````.````"`````(````"0 M`````@```10```%\`````0````D```$"`````0````D```#V`````````_(`6 M``/J````:P`A``$```````````````#_______________\`````````````N M M M M M M M M M```````````````````````````````````````````#\@```^D````52.X"`B#'(-5A``"8`H?__P``9A!*5 M@$SX__\!@&8``2Q.[O^.2JX!)FP(,_S```#?\)I.=2Y\``0``$*G0F<`.0`#) M`+_B`0(Y`/X`O^`!(?P```"<`"!&_"<`<@4S_`%T`-_P,G#_"/D``0"_X`%1[ MR/_V"+D``0"_X`%1R/_V,#D`W_`8,_P(``#?\)P"``!_#```?U?)_\YK``"PS M+P=.[O^.2.2X@`"8/4V]F='=A0````1.KOWV0````A.KO_*+%].=2\.+'D````(3J[_Q"Q?3G4```/L`````P````$`G M```&````(````#`````````#\@```^D````0+PXL>0````1.KO]\+%].=2\.O M+'D````$("\`"$ZN_L(L7TYU+PXL>0````0B;P`((&\`#"`O`!!.KOY<+%].R M=0```^P````#`````0````0````4````*`````````/R```#Z@````````/R_ 8```#Z@````````/R```#Z@````````/R$ `` end size 2544 |\ /| . 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