[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Real Speed of GS RAM slot?
dempson@actrix.gen.nz (David Empson) writes:
> In article <37hp3q$9dk@er3.rutgers.edu>, Kid <neiderma@er3.rutgers.edu> wrote:
> >
> > Does the IIGS RAM card area run faster than 1MHz? Just thinking
> > that it woul dbe nice to have combination RAM and SCSI controller
> > or somesuch...
>
> Yes, the RAM slot runs at the IIgs's "fast" speed (2.8 MHz).
>
> Any I/O device using the slot would have to be accessed outside the
> normal RAM address space, i.e. in bank $80 to $DF, or $E2 to $EF. It
> would have to detect its address by monitoring the bank address on the
> data bus, and would not work reliably with other DMA devices (except
> possibly the RAMFast SCSI card).
None of these banks could be seen at the memory expansion slot because
there isn't any signal lines to define the difference between bank 80 and
00 (the highest bit isn't confered to the slot). The RAM and ROM
addressing is quite different, and you could decode the ROMDISK area of
memory (since there haven't been any ROMDISKs for the GS) and get control
in banks F0 to FB (768k - enough room for a video screen ;^)
> The RAM slot doesn't have many of the control signals available on the
> standard slots, and doesn't have all the power rails.
>
> I very much doubt it would be able to do DMA itself, unless it did
> something horrible like ABORTing the processor and forcing it to
> re-execute instructions.
You couldn't even do this from the memory expansion slot. (unless you had
a wire to connect to the READY pin of the 65816). However, if you needed
to DMA, and the card had RAM itself, this could be done behind the CPU.
That is you could clock the RAM faster than 2.8 MHz, allow it to buffer
the address the CPU wants, and do 'DMA' during the other cycles. Of
course, you can only access the RAM on the card, and the amount of RAM on
the motherboard is inaccessable. (that is the memory address lines are
read only - they tell you what the CPU wants to R/W, and are not connected
to the address bus as such) Hence you would need to know whether you're
on a ROM 1 or 03 and alter your address accordingly (the first bank of RAM
on your card would be 02 for a ROM 1, but $11 for an 03)
> Another possibility would be for a dual card system: a standard slot
> card with another card in the memory expansion slot, and a direct
> connection between them.
A much less elegant approach, but does sort out your DMA problems (you
would need to rewrite your system software so that it only ever asked to
DMA onto the expanded RAM rather than motherboard RAM (or have it write to
the card RAM and then have a s/w patch to transport it where it's needed)
If you're gonna make a slot based card, there's no need to make a second
in the ME slot unless you want the CPU to have direct access to large
chunks of memory from your second function (since the card expands memory
_and_ does something else) This is silly because DMA is much quicker
(even at 1 MHz) than getting the CPU to do the work of shifting data.
cheers
ntt@cleese