[comp.sys.amiga] AmigaLine #5 - Why recoverable ram disks don't on the A2000/A500

bryce@hoser.berkeley.edu (Bryce Nesbitt) (01/13/88)

----------------------------------------------------------------------------
			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```"#(\\````<D
M(\`````D(\@````H+'D````$(\X````$D\E.KO[:*$!*K`"L9P``]F$``;J1\
MR"`L`*SEB"`P"!#EB$CG`#!%^0```*Q'^0```"P@0'``$!A",`@`)L@@.0``P
M`"0@>0```"A#\`@`#"$`(%+(__I"*0`!$AAG7`P!`"!G]@P!``EG\";*#`$`-
M(F<4%,$2&&="#`$`(&<$%,%@\D(:8-02&&<P#`$`(F?R#`$`*F8@$A@,`0!.?
M9P8,`0!N9@1R"F`.#`$`16<&#`$`968"<AL4P6#,0A)"DR`\````*)"+1H#D5
MB$S?#`!(>0```"PO`$ZY````'"/`````$$ZY````+"/`````%"/`````&$ZY=
M`````'``+GD````<3G5A``#&80``L"/`````("\`0J<D0"`J`"1G$"QY````W
M""!`(B@``$ZN_X(B*@`@9R@D/````^U.KO_B(\`````0(\`````4(\`````8\
M9PKEB"!`*6@`"`"D3KD`````<`!@!"`O``0N>0```!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<GD```````/L````&`````$```'V```!L@``/
M`:8```&8```!B@```6H```%D```!7@```3X```$L```!'````0X```$(````;
M_````.X```#>````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.<P5
M`"0O``P@+P`0)CD````$3KD`````+SP`````2'G___^4+P-.N0```"1*@D_O,
M``QG#DAY`````$ZY`````%B/0J=.N0```!!8CTS?``Q.=0`````#[`````$`!
M```#````-@````$````*````1@````$````&````/`````$````*````%```L
M``$````$````&@````$````*````*`````$````!````#@````````/R```#:
MZ@```!)!;&5R="!S970*``!#;W!Y<FEG:'0@,3DX-R`@0V]M;6]D;W)E+4%M<
M:6=A+"!);F,N($%L;"!2:6=H=',@4F5S97)V960```````/R```#Z0```)(S5
M_$```-_PFB`\2$5,4+"X``!G``!P(<```$'X`0`@QR#5(#@`!`@```!F6"Q`N
MT*X`)E*`9DX@//'BT\0O`+"?9CA*AVL^0>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.<A,G(*</]1R/_^4<G_^B0N`@)P_[2`9W9/[_\X1]=!^@"N(`)(1
M0`P```%F!D'Z`(I@#@@"`!]F"$I`9P1!^@"E85I!^@"U851"&T'Z`-1#[@("9
M1?H`0DZN_?9#^@#C<`!.KOW82H!G&"9.+$!"@$'7<BA.KO^F)$`B3BQ+3J[^4
M8D_O`,A"N```</\M0`("(`I,WTR$3G46P$(33G5"&Q;89OQ0VTYU(#P``@``1
M4X!N_$YP('@`!$[0)@].;W0@96YO=6=H(&UE;6]R>2X@`"8/4V]F='=A<F4@H
M1F%I;'5R92X@`"8/4F5C;W9E<F%B;&4@06QE<G0N(`#J#U!R97-S(&QE9G0@,
M;6]U<V4@8G5T=&]N('1O(&-O;G1I;G5E+@".'D=U<G4@365D:71A=&EO;B`C;
M)3`X;'@N)3`X;'@`:6YT=6ET:6]N+FQI8G)A<GD`86QE<G0N:&]O:PT*````D
M`^P````!````!````)8````````#\@```^D````42.<`.BAO`!0@;P`8(F\`+
M'$7Z`#I/[_]T)D\L>0````1.KOWV</]*&U?(__Q&@&<2+P!(;P`$2%1.N0``-
M``!/[P`,3^\`C$S?7`!.=1;`3G4```/L`````0````D````Z`````````_(`?
M``/I````""\")"\`"$AO``PO`B\Y````%$ZY`````$_O``PD'TYU```#[```V
M``$````%````%`````$````!````#@````````/R```#Z@````````/R```#$
MZ0````````/R```#Z0````](YS`"+'D````(3.\`#@`03J[_T$S?0`Q.=0``%
M+PXL>0````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