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.