Re: PC-card (4)

g.baltissen_at_hccnet.nl
Date: 2001-04-12 22:15:36

Hallo David,

> Um, no, you don tneed the wide window ;)  The 8237 register set is NOT 
> more than 32 bytes, and DMA has nothing to do with I/O windows ;)

and

> I still maintain we dont need >256 bytes for the control set ;)  If we 
> need to transfer more than 128/256 bytes in a chunk, it should be DMA'ed 
> anyway

I think there are some misunderstandings but they could partly be blamed 
due to language problems (from my side :).

First you say "you don't need the wide window", then you talk about 
"controlset".
I presume you mean with controlset all the I/O that the C64 needs to 
perform the actions. The 8237 is 16 bytes and for what I have in mind I 
need less then 8 bytes.

If we forget the DMA at all for the moment, then we need a way to address 
that 16 MB of memory plus a lot of I/O. The C64 cannot address this so we 
need about the same technique the C64 use to switch between I/O, CHARROM 
and RAM: Bankswitching. Bankswitching is in fact selecting different 
selectlines. What we need here is pageswapping, the same technique used 
with EMS, Expanded Memory S (???), on a PC. The memory area where all this 
Expanded memory is situated is called frame (that's what I meant with 
"window")  The amount memory which fits in such a frame is a page. 
I think you agree if I say the bigger the page the lesser you have to swap. 
That's why I prefer a 256 byte frame or window.

The above is the basic interface I had in mind.


DMA on a PC works in the way that an I/O-peripheral outputs a stream of 
bytes which the 8237 directs to the right memory locations one by one after 
each other. Of course the oway round is possible as well.
This is what I had in mind when talking about adding DMA to the interface. 

Now I have the idea that what you mean with DMA is what the REU does: it 
copies/swappes an amount of memory situated outside the C64 from/to/with an 
amount of memory inside the C64. I haven't thought about this idea. But you 
need two 8237's to perform this trick. And then you need 32 bytes for the 
DMA alone. 
If we only had to deal with memory, then you are absolutely correct with 
saying you don't need any window. I even can dream up a scheme where you 
use DMA to read/write from/to the I/O area. But imagine what an amount of 
instructions are needed to send ONE char to a printer....  With this in 
mind we definitly need a window. The only thing we could discuss is the 
size of the window. My intuition tells me to stick to the 256-byte version. 
I could give you several reasons to support this feeling.

The result of this little story is that now my goal will be using two 
8237's to get a REU like copy-function. This will make a more effective use 
of great numbers of attached memory.

I hope I cleared some misunderstandings (maybe only from my side) and I 
certainly hope I didn't only enlarge it. 

Groetjes, Ruud

http://Ruud.C64.org/



-
This message was sent through the cbm-hackers mailing list.
To unsubscribe: echo unsubscribe | mail cbm-hackers-request@dot.tml.hut.fi.

Archive generated by hypermail 2.1.1.