Forum unknown
· Hardware
#1 MEG Ram Expansion
21 messages in this thread
Unless the memory is hidden away somewhere (like the $080000 of C. Erving's
original piggyback scheme), you'll really miss the autoconfiguration if you
plan on hooking up anything else that's autoconfiguring. The thing is that
the allocation of the non-reserved 8 megabytes takes place early in the
booting process.
Everything that's autoconfiguring will normally be assigned non-conflicting
addresses to run at, and even if they somehow end up conflicting, the
hardware supports a collision-detect mechanism to take care of warning you
immediately about this (possibly preventing damage to your conflicting
boards). If you have a some internal memory, its got to be hardwired into
a particular address space. Chances are, you'll be wired into non-reserved
memory, since there's not that much in the way of reserved memory that you
could possibly use. The autoconfiguration mechanism can't possibly know
about this extra memory, and so has a very good chance of overlapping.
You then go and ADDMEM, or whatever, but its too late by then, and any
number of weird things can happen once you actually start using this
illegally positioned memory. That's the real big disadvantage to
non-autoconfiguring memory; of course, you don't get the benefits of saving
on Chip memory and leaving AddMem off of every disk, either, but neither of
these is particularly dangerous to your hardware, the first problem can
be. And by the way, there's not nearly enough free power for an internal 8
megs. -0Dave
Hazy,
Is there any way to tell the autoconfig routines that you absolutely MUST be
configured at a certain address?
Regards, Larry.
Not that I know of. Though maybe, I haven't looked over the autoconfig
software that closely. The board would CERTAINLY have to autoconfig anyway,
since it would have to be visible to the system during the autoconfiguration
process, which happens before the main system is up.
-Dave
I see. Too bad. I have an idea for something that might have to reside in a
particular place, though I suppose with some extra work it could be made to
allow it to go anywhere.
Regards, Larry.
Sorry, I can't find anything in the documentation that indicates a good way
of fixing a board in a particular address range. The software definable
loaction of all PICs and the logic necessary for autoconfiguration
certainly get in the way of home brew stuff with this machine. There is
one slightly nasty way to get a fixed memory address that won't fight too
much with autoconfiguration stuff, at least in current Amigas. What you do
is pick an Amiga-reserved memory location that doesn't have anything really
in it. This prevents an autoconfigured thing from grabbing your address
space the same time you're trying.
Then you preform the address detection on your board and lock out internal
selection via the overlay (/OVR) input. Now, overlay seems to have a
number of problems, the worst being that the timing on this is VERY
critical. And its not a really nice way of interfacing to the Amiga, but
can do in a pinch. I suppose another solution would be to re-configure
anything that conflicts with your board. Essentially, you hook up your
fixed address board, set so that a port on it somewhere must be written by
you before the thing will respond. Then boot up your Amiga as usual. You
look at the add-ons to see if anything is sitting in your chosen location.
If it is, you re-configure it so that it goes somewhere else. This could
require some tricky software, but it should be a bit more upward compatible
than the previous way. I don't know for certain if there's any other way,
though I've never read of one. -Hazy
I will take a look at another way of doing it, though I don't hold out much
hope for it. The reconfiguring sounds like the way to go, unless we decide
that we never want to do it on any future models, in which case we will
just grab a slice of chip memory and leave it there.
I was told yesterday that decoding memory to $C00000 was a source of
conflict on some planned CBM products. I understood this was directly from
CBM. Do you have anything to add? Do you work for CBM?
Jon, just a note to keep you from looking foolish, Dave (Hazy) Haynie is
one of the engineers at Commodore in West Chester. He is now designing the
new Amigas, so I think his word is quite a good source of information.
Jon, just a note to keep you from looking foolish, Dave (Hazy) Haynie is
one of the engineers at Commodore in West Chester. He is now designing the
new Amigas, so I think his word is quite a good source of information.
Yea, I do work for CBM. About all that I can say is that $C00000 is a 1.2
supported area for a possible on-board cheap memory expansion, like the one
I posted here. If you've got any Amiga expansion specs, you'll notice
that $C00000 is listed as reserved memory. Thus, NOTHING that hooks up to
the expansion port is allowed to use this memory. Whether CBM or anyone
else markets a thing. Properly executed expansion hardware is told by 1.2
where to go, so this is never a problem anyway.
Since nothing that hooks up is located at a fixed address, and nothing that
hooks up will ever be located in reserved memory at $C00000, its a safe
location to use. This is not to imply that a future Amiga system wouldn't
use the $C00000 area for something, but as that's an internal system issue,
not an expansion issue, there's no possible conflict. You can (and really
should) put the piggyback RAM at $C00000, if you're going to put it
anywhere. That's something officially supported by OS 1.2.
As for my modifications, that's something that I've come up with, and I
believe will work well. Its not officially blessed by C-A or CBM in any
way, shape, or form, from a hardware point of view. Of couse, neither is
the original piggyback modification. -Dave (who REALLY works for Commodore
Technology, often confused with CBM, since they're different branches
(Engineering vs. Manufacturing) of the same international corporation.)
Hazy, I was chatting with a fellow yesterday about addon memory, and he
asked if I had a Mfg. number from CBM yet. I said I didn't, and didn't need
one. His next comment made me stop and think. He seems to think that if we
don't have one on the memory expansion, that other expansion devices (non
memory) might not have one either, and that there could be a conflict when
the driver for the other device is linked in. ie. that it might add the
driver giving the address of our memory. I am skeptical, but of course
remain open to suggestions. <grin>
We are trying to implement a minimal autoconfig without resorting to PALs
because we will want to supply bare boards only, and not bother with having
to supply PALs.
Hazy, I was chatting with a fellow yesterday about addon memory, and he
asked if I had a Mfg. number from CBM yet. I said I didn't, and didn't need
one. His next comment made me stop and think. He seems to think that if we
don't have one on the memory expansion, that other expansion devices (non
memory) might not have one either, and that there could be a conflict when
the driver for the other device is linked in. ie. that it might add the
driver giving the address of our memory. I am skeptical, but of course
remain open to suggestions. <grin>
We are trying to implement a minimal autoconfig without resorting to PALs
because we will want to supply bare boards only, and not bother with having
to supply PALs.
Thanks for the reply. $C00000 sounded ideal, and I became quite concerned
when I was told that it might cause problems in the future. I haven't
modified my machine yet because I'm concerned about making my software
incompatible with other people's machines. I've been writing a column on
Forth for Amazing Computing, and I've already goofed several times. I
really NEED expansion memory just so that I can write programs which behave
themselves properly.
Thanks for the reply. $C00000 sounded ideal, and I became quite concerned
when I was told that it might cause problems in the future. I haven't
modified my machine yet because I'm concerned about making my software
incompatible with other people's machines. I've been writing a column on
Forth for Amazing Computing, and I've already goofed several times. I
really NEED expansion memory just so that I can write programs which behave
themselves properly.
Yea, I do work for CBM. About all that I can say is that $C00000 is a 1.2
supported area for a possible on-board cheap memory expansion, like the one
I posted here. If you've got any Amiga expansion specs, you'll notice
that $C00000 is listed as reserved memory. Thus, NOTHING that hooks up to
the expansion port is allowed to use this memory. Whether CBM or anyone
else markets a thing. Properly executed expansion hardware is told by 1.2
where to go, so this is never a problem anyway.
Since nothing that hooks up is located at a fixed address, and nothing that
hooks up will ever be located in reserved memory at $C00000, its a safe
location to use. This is not to imply that a future Amiga system wouldn't
use the $C00000 area for something, but as that's an internal system issue,
not an expansion issue, there's no possible conflict. You can (and really
should) put the piggyback RAM at $C00000, if you're going to put it
anywhere. That's something officially supported by OS 1.2.
As for my modifications, that's something that I've come up with, and I
believe will work well. Its not officially blessed by C-A or CBM in any
way, shape, or form, from a hardware point of view. Of couse, neither is
the original piggyback modification. -Dave (who REALLY works for Commodore
Technology, often confused with CBM, since they're different branches
(Engineering vs. Manufacturing) of the same international corporation.)
I will take a look at another way of doing it, though I don't hold out much
hope for it. The reconfiguring sounds like the way to go, unless we decide
that we never want to do it on any future models, in which case we will
just grab a slice of chip memory and leave it there.
Sorry, I can't find anything in the documentation that indicates a good way
of fixing a board in a particular address range. The software definable
loaction of all PICs and the logic necessary for autoconfiguration
certainly get in the way of home brew stuff with this machine. There is
one slightly nasty way to get a fixed memory address that won't fight too
much with autoconfiguration stuff, at least in current Amigas. What you do
is pick an Amiga-reserved memory location that doesn't have anything really
in it. This prevents an autoconfigured thing from grabbing your address
space the same time you're trying.
Then you preform the address detection on your board and lock out internal
selection via the overlay (/OVR) input. Now, overlay seems to have a
number of problems, the worst being that the timing on this is VERY
critical. And its not a really nice way of interfacing to the Amiga, but
can do in a pinch. I suppose another solution would be to re-configure
anything that conflicts with your board. Essentially, you hook up your
fixed address board, set so that a port on it somewhere must be written by
you before the thing will respond. Then boot up your Amiga as usual. You
look at the add-ons to see if anything is sitting in your chosen location.
If it is, you re-configure it so that it goes somewhere else. This could
require some tricky software, but it should be a bit more upward compatible
than the previous way. I don't know for certain if there's any other way,
though I've never read of one. -Hazy
I see. Too bad. I have an idea for something that might have to reside in a
particular place, though I suppose with some extra work it could be made to
allow it to go anywhere.
Regards, Larry.
Not that I know of. Though maybe, I haven't looked over the autoconfig
software that closely. The board would CERTAINLY have to autoconfig anyway,
since it would have to be visible to the system during the autoconfiguration
process, which happens before the main system is up.
-Dave
Hazy,
Is there any way to tell the autoconfig routines that you absolutely MUST be
configured at a certain address?
Regards, Larry.