[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: DMA 4 meg v. 8 meg



On 5/6/2011 4:21 PM, Michael J. Mahon wrote:
Charlie wrote:
On 5/5/2011 4:03 PM, Michael J. Mahon wrote:

Charlie<charlieDOTd@verEYEzon.net> wrote:

On 5/5/2011 1:21 AM, David Empson wrote:

Michael Black<et472@ncf.ca> wrote:

On Wed, 4 May 2011, KP wrote:

I have a 4 meg RAM card in the memory slot of my ROM 03 IIgs. I have
often heard that only the first 4 megs of expansion-card RAM is DMA-
compatible. Can somebody explain what DMA actually is?

Does this mean that AppleWorks v5.1 will only recognize 5 megs (1
meg
motherboard RAM + 4 meg expansion card RAM) even if I put an 8 meg
expansion RAM card in the memory card slot?

Does this mean that the second 4 meg of expansion card RAM is useful
only as a RAM disk, and not as memory for programs to access, in
order
to store long documents that the user is editing, graphics being
opened from disk, sounds being edited, HyperStudio stacks, etc.?

I see the specific question wasn't answered.

It won't mean a thing for your purposes.

Unless you have something that takes control of the Apple bus in
order to
directly control the RAM, lack of DMA won't matter to you.


And for a IIgs, the only cards I can think of which use DMA are the
Apple High-Speed SCSI card, and the RamFAST SCSI card. If you don't
have
either of them, you don't need to worry about DMA.

Is anyone else aware of any other DMA-capable cards that are likely to
be used in a IIgs?


The Carte Blanche card. As for how likely they are to be used on a
IIgs,
I might be the only one.


I thought the JAT firmware only eavesdropped--no DMA...


That's true in the video module. There is also a DMA module in the JAT
firmware code. What it is used for would be better answered by Alex
Freed, but it could be to load files from the SD card.

But that has nothing to do with the Apple II bus.

Possibly we are talking about two different things. I thought by "JAT firmware" you meant the code and/or bitstream that programs the FPGA.

That code seems to be putting an address on the bus and pulling the /DMA line low. I'm no expert on the code but here are some relevant lines from the cb1.v module. AppleDMA is the output from the DMA module which is pretty much just making sure the timing is right to do the DMA.
--------------------
assign 	BUS_A = AppleDMA ? DMA_addr : 16'bz;
// Meaning if the timing is right put an address on the Apple bus else leave the bus alone.

assign 	BUS_DMA = AppleDMA ? 1'b0 : 1'bz;
// Meaning if the timing is right pull the /DMA line low else leave it alone.
--------------------
However, I don't see it writing any data to the bus only reading it from the bus, if that makes a difference.
--------------------
if(AppleDMA) dma_data  <= BUS_D;
--------------------
And dma_data is used by the Z80 stuff.

In fact, it would be a *very bad* idea to create any Apple peripheral
that relied upon DMA to function. Since DMA discipline is so poorly
supported by most cards, DMA-using cards are almost all incompatible
with each other.

I also have an Apple HS SCSI card which I believe uses DMA. So far they seem to be co-existing OK. What should I be looking for in terms of incompatibility?

Everyone avoided it like the plague, except for Z80 cards and the like,
which got away with it only because they were the only cards in the
machine using DMA.

As mentioned above the Carte Blanche card has a Z80 core that it uses for the JAT menu.

Charlie