[comp.sys.amiga] internal RAM expansion

pmy@boole.acc.virginia.edu (Pete Yadlowsky) (01/06/88)

Hi all -

I recently installed a Spirit Technologies RAM board (1.5M + clock) in
my A1000. I liked the idea of bringing my favorite computer up to 2M
without hanging a box off the side. Anyway, I have a vague recollection
of someone here warning of some possible drawbacks to this type of
memory...something about memory at $C00000?

The reason I'm asking is that my Amiga has been behaving a bit oddly.
I've been working on a multi-tasked MIDI application (a sequencer)
which spawns a "clock" task, which uses timer.device in a loop to
generate clock "ticks". These ticks are then passed as MIDI timing
messages to any task that may request them. All of this seemed to be
working...the clock was ticking...sequences were being recorded (from
serial.device via MIDI interface)...and being played back...
BUT, every once in a while, some file currently in RAM: would somehow
wind up corrupted. "Hmmm...", said I.

Then, I added an Intuition window and a console device to the main
program, so I could use both keyboard and mouse as control inputs. Now,
sometimes the program works, and sometimes it hangs. The guru's
incantation is "00000004 00(some address in $C00000 block)". I've found
the exact source statement at which the program dies, but there's nothing
in it that should cause such behaviour (yeah, right...it's a subroutine
call, BTW, but one that is called successfully elsewhere). I've carefully
checked all memory allocations (and de-allocations), tried upping the
stack, made sure I'm AddTask'ing correctly...nothing...
I've run diagnostics on the expansion RAM, and they look just rosey.
Of course, the problem may have nothing to do with memory. Also, the
subroutine mentioned above is part of a .library for which I don't
have source.

Well, without boring you with too many unfathomable details...any ideas?


-- 
Pete Yadlowsky
Academic Computing Center
University of Virginia
e-mail: pmy@vivaldi.acc.virginia.EDU

joe@ut-sally.UUCP (Joe Hitchens) (01/07/88)

In article <378@boole.acc.virginia.edu> pmy@boole.acc.virginia.edu (Pete Yadlowsky) writes:
>Hi all -
>
>I recently installed a Spirit Technologies RAM board (1.5M + clock) in
>my A1000...
>
>The reason I'm asking is that my Amiga has been behaving a bit oddly.
>...
>
>Well, without boring you with too many unfathomable details...any ideas?
>-- 
>Pete Yadlowsky
>Academic Computing Center
>University of Virginia
>e-mail: pmy@vivaldi.acc.virginia.EDU

One thing you my want to be aware of:
I have this exact same board.  And had some trouble at first, like strange
Guru's for no discernable reason.
Then I noticed that where I should have had close to 2 Meg of free ram when
first booting up, I only had about 1.5 total. (1.5M + 512K chip).
Well this seemed strange that I should have what looked like exactly .5M
too little Fast ram.  Then I remembered the business in the Docs about
those 3 little jumpers that would allow you to set up for .5, 1.0 or 1.5 Meg
by different combinations of jumpers on/off.  And I also recalled the 
METAL SHIELDING that goes right on top of that board with the TALL jumper
pins sticking up! (You can see where this is going, can't you).
Anyway, naturally, I took the thing apart and put a piece of formica on top
of the pins where the metal shielding came down on them and put it back 
together.  Bingo, 1.5 Meg Fast ram.
You might want to try this.
j.h.
(You, it bugs me that they didn't even mention the possibly that this could
 happen.  Especially when it seemed so overwhelmingly likely?)

barsh@stsci.EDU (John Barshinger) (01/07/88)

I also have a spirit 1.5 MB board internal board, I haven't run into
any similar problems so I can't answer your question, However I would
like to pose another one.

I've had my 1.5MB board for about six months approx.  All of the
sudden out of the blue, I get the error "Clock not found" when
executing Spirit.readclock.  Anybody know what's wrong?  My
battery can be dead already, can it?  They say it should last
~17 years depending on the weather...

			thanx in advance, 

					jrbii
					~~~~~



-- 
	        John Barshinger	
		Space Telescope Science Institute
		Baltimore, MD 21218
		plink:jrbii | bix:jrbii | barsh@stsci.edu

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

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

pmy@boole.acc.virginia.edu (Pete Yadlowsky) (01/07/88)

In article <181@stsci>, barsh@stsci.EDU (John Barshinger) writes:
> 
> I've had my [Spirit] 1.5MB board for about six months approx.  All of the
> sudden out of the blue, I get the error "Clock not found" when
> executing Spirit.readclock.  Anybody know what's wrong?  My
> battery can be dead already, can it?  They say it should last
> ~17 years depending on the weather...

Yep, I've seen that one, too. I tried re-booting a couple of times, 
then I ran setclock. The problem went away. Hasn't come back. So,
setclock'll fix it, but that doesn't explain anything. Weird.


-- 
Pete Yadlowsky
Academic Computing Center
University of Virginia
e-mail: pmy@vivaldi.acc.virginia.EDU

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

In article <382@boole.acc.virginia.edu> pmy@boole.acc.virginia.edu (Pete Yadlowsky) writes:
> 
> I've had my [Spirit] 1.5MB board for about six months approx.  All of the
> sudden out of the blue, I get the error "Clock not found" when
> executing Spirit.readclock.  Anybody know what's wrong?

Some program crashed, and wrote randomly to memory.  It hit the
"KickStart" bit in the clock (no, really, that's the name!).
The Kickstart bit turned the clock off.

You need to "setclock".  This will re-kick the oscilator into life.
If it does not say something to the effect of "resetting clock...
please wait 2 seconds" then get the new disk from Spirit.

Betcha did'nt know your A1000 now has TWO Kickstart disks :-).


(You might also want them to fix the board... it can be flakey)

** This chip is an Thomson/Mostek Zeropower RAM w/clock.  Ram, battery,
crystal all in one package.  Anyone ever though of a use for 2040 bytes
of battery-backed ram on the Amiga?  (assuming you need to run a disk
program to read it?)

|\ /|  . 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

joe@ut-sally.UUCP (Joe Hitchens) (01/09/88)

In article <22454@ucbvax.BERKELEY.EDU> bryce@hoser.berkeley.edu (Bryce Nesbitt) writes:
>
>** This chip is an Thomson/Mostek Zeropower RAM w/clock.  Ram, battery,
>crystal all in one package.  Anyone ever though of a use for 2040 bytes
>of battery-backed ram on the Amiga?  (assuming you need to run a disk
>program to read it?)
>

I thought of something, but haven't done it yet.  I was making a nice little
24 hour alarm clock when I thought of a neat use for that ram.
I could make the alarm clock remember an alarm time way in the future, like
at 0:00 on Jan. 1, 2000, by storing it in that RAM.
Or more than one, say an alarm that poped up a window every year on your
birthday, or like that.
And if you didn't have the Spirit Clock, you could make the 24hr alarm
check for a recognizable/unlikely-random code in that ram space, if
it isn't there, it is just a 24 hour alarm clock.

Another idea I had was to put KickStart in ROM after modifying it to run
a piece of code that asks for a password you have held in the clock ram.
(and of course refuse to continue booting unless you get it right).

j.h.

bobb@tekfdi.TEK.COM (Robert Bales) (01/11/88)

In article <10029@ut-sally.UUCP> joe@ut-sally.UUCP (Joe Hitchens) writes:

>>Anyone ever though of a use for 2040 bytes of battery-backed ram on the
>>Amiga?  (assuming you need to run a disk program to read it?)

>Another idea I had was to put KickStart in ROM after modifying it to run
>a piece of code that asks for a password you have held in the clock ram.
>(and of course refuse to continue booting unless you get it right).

Be sure to checksum the password so that if (when) the battery dies, the
machine doesn't expect the random (to you) contents of memory as a password,
before it lets you do anything (including reinstalling the password). You
could be guessing for a long time. . . .

   Bob Bales
   Tektronix, Inc.

I help Tektronix make their instruments. They don't help me make my opinions.