[comp.sys.amiga] Non-Recovering Recoverable Ram Disk

schwager@uiucdcsm.cs.uiuc.edu (10/21/87)

I've got an annoying problem.  I've got an Amiga 500 with A501 ram
expansion.  I've got ASDG's recoverable ram disk.  It doesn't recover!
I use Manx Aztec C 3.4a, and I like to put everything on ram disk when
I work- includes (the ones I need, anyhow), compiler, assembler, linker,
c.lib, and microemacs; in addition to my most often used cli commands.

But when I've got a lot of stuff in vd0: and crash the system
(which I manage to do quite often), the recoverable ram disk is no
longer there on warm reboot, and I have to copy the stuff into it all
over again.  My RRD is 512K big (the high track is set to 61), and I am
using mem type 5... the fast ram.  When  I get 736 blocks used (ie, 368K),
the RRD works fine.  But if I have 744 used, it is wiped upon reboot.
I tried changing the size of the RRD, but it doesn't seem to help.  As
long as I get above some number which is close to 740, the RRD doesn't
R.  What could be wrong?  Thanks.
-mike schwager
-- {ihnp4,convex,pur-ee}!uiucdcs!schwager   schwager%uiuc@csnet-relay.arpa
	University of Illinois, Dept. of Computer Science

dillon@CORY.BERKELEY.EDU (Matt Dillon) (10/21/87)

:I've got an annoying problem.  I've got an Amiga 500 with A501 ram
:expansion.  I've got ASDG's recoverable ram disk.  It doesn't recover!
:I use Manx Aztec C 3.4a, and I like to put everything on ram disk when
:I work- includes (the ones I need, anyhow), compiler, assembler, linker,
:c.lib, and microemacs; in addition to my most often used cli commands.
:
:But when I've got a lot of stuff in vd0: and crash the system
:(which I manage to do quite often), the recoverable ram disk is no
:longer there on warm reboot, and I have to copy the stuff into it all
:over again.  My RRD is 512K big (the high track is set to 61), and I am

	Simply that the A500 also uses FASTMEM when available rather than
CHIP ram.... If you fill up VD0:, rebooting the computer overwrites some of
it.  You need to make your VD0: small enough so the stuff the system puts in
FASTMEM on boot (before you remount VD0:) doesn't overwrite it.

	Additionaly, if you tell VD0: to be so big, and it runs out of memory,
nasty things will happen.

	Better make it smaller.... 256K maybe.  VD0: was designed for people
with larger expansion memories anyway.  Mine is approx 1 Meg with a 2 Meg
expansion.

					-Matt

nelson@cg-atla.UUCP (Blake Nelson X7083) (10/26/87)

In article <7200019@uiucdcsm> schwager@uiucdcsm.cs.uiuc.edu writes:
>
>expansion.  I've got ASDG's recoverable ram disk.  It doesn't recover!
>I use Manx Aztec C 3.4a, and I like to put everything on ram disk when
>I work- includes (the ones I need, anyhow), compiler, assembler, linker,
>c.lib, and microemacs; in addition to my most often used cli commands.

	I'm using Lattice 3.10, 2M expansion, 1.2M-1.6M vd0:. System
	will not survive warm boot if vd0: is fairly full.

>But when I've got a lot of stuff in vd0: and crash the system
>(which I manage to do quite often), the recoverable ram disk is no
>longer there on warm reboot, and I have to copy the stuff into it all
>over again. 
>-mike schwager

	Any solutions from net-land greatly appreciated. By the way.
	Just downloaded vd0: 2 days ago. Looks like a good product.
	Thanks Perry. Well worth the $10.00 ($12.50 when the problem 
	is solved).

---------------------------------------------------------------------------
Disclaimer: All screw ups are mine. If demand is sufficient I will be gald
		to share.

sjm@well.UUCP (Stephen Moehle) (10/27/87)

 In article <7200019@uiucdcsm> schwager@uiucdcsm.cs.uiuc.edu writes:
 >
 >expansion.  I've got ASDG's recoverable ram disk.  It doesn't recover!
 >I use Manx Aztec C 3.4a, and I like to put everything on ram disk when
 >I work- includes (the ones I need, anyhow), compiler, assembler, linker,
 >c.lib, and microemacs; in addition to my most often used cli commands.

	  If you have an A500 or A2000 with some true fast memory (more than 
the 1 Meg of chip bus memory) and use slowmemlast to place the 512k of
slow fast memory at the end of the free memory list, vd0: will allocate
first out of this slow fast memory which is at a fairly low address.  When
a reboot occures, this memory is likely to get trashed and bye-bye vd0:.
It seems that slowmemlast confuses vd0: in its attempts to allocate memory
from high addresses down.

Stephe

daveh@cbmvax.UUCP (10/29/87)

in article <4320@well.UUCP>, sjm@well.UUCP (Stephen Moehle) says:
> Summary: vd0: and slowmemlast
>  In article <7200019@uiucdcsm> schwager@uiucdcsm.cs.uiuc.edu writes:
>  >
>  >expansion.  I've got ASDG's recoverable ram disk.  It doesn't recover!
>  >I use Manx Aztec C 3.4a, and I like to put everything on ram disk when
>  >I work- includes (the ones I need, anyhow), compiler, assembler, linker,
>  >c.lib, and microemacs; in addition to my most often used cli commands.
> 
> 	  If you have an A500 or A2000 with some true fast memory (more than 
> the 1 Meg of chip bus memory) and use slowmemlast to place the 512k of
> slow fast memory at the end of the free memory list, vd0: will allocate
> first out of this slow fast memory which is at a fairly low address.  When
> a reboot occures, this memory is likely to get trashed and bye-bye vd0:.

Right effect, wrong details.

The extra motherboard memory, the "slow fast" memory, is actually very high
in physical memory; it starts at $C00000.  In contrast, CHIP RAM starts at
$000000 and expansion bus memory can start at $200000, but always ends by
$9FFFFF.

The problem with this extra memory is the way the OS detects it.  Normally,
on a machine without such memory, there are custom chip registers at $C00000.
The Amiga OS checks memory at $C00000 and up, something like 64K or 128K at
a time, to see if it's memory or chips there.  This test involves writing
one word in each tested block, and the data that was there is wiped out.  It's
unfortunate, but no recoverable RAM disks were around when 1.2 was written,
so they never considered this possibility.

> It seems that slowmemlast confuses vd0: in its attempts to allocate memory
> from high addresses down.

I suspect that vd0: finds the logical end of RAM.  If you run SlowMemLast
before you start up vd0:, this memory will be put at the end of the list,
where vd0: is looking.  I'm not sure what vd0: would do if started up prior
to SlowMemLast; that really depends on the allocation scheme that vd0: 
uses (Perry, you listening?).  I suppose a modified SlowMemLast could
accept an amount of memory to make even farther back in the list than the
SlowMem; would that require renaming the program to SlowMemAlmostLast?

> Stephe
-- 
Dave Haynie     Commodore-Amiga    Usenet: {ihnp4|caip|rutgers}!cbmvax!daveh
   "The B2000 Guy"              PLINK : D-DAVE H             BIX   : hazy
    "Computers are what happen when you give up sleeping" - Iggy the Cat