Cycle-steal DMA controller design
Posted: Wed Mar 12, 2014 11:36 am
For those who have been following my "First Steps" in the Newbies thread, as well as read my Introduction post, my interest in the 6502 is mainly in the 65816, having done some simple SNES programming and looking at datasheets as a prerequisite to eventually build my own ham radio equipment.
More specifically, I'm interested in taking advantage of seemingly lesser-used features of the '816 and applying them to a new design- possibly the Emulation/Memory Lock lines, the ABORT signal... I feel as if the '816 is underutilized. The one underused feature that I want to tackle first for the '816 is that of Cycle-Steal DMA. I find the concept in and of itself very interesting (particularly taking full advantage of the bus bandwidth when the '816 is busy internally), and creating a DMA controller is something that I've wanted to do on an FPGA to signify that I fully understand the DMA process- not only for the '816, but for other architectures such as the IBM PC and 8237 controller. Reading some other threads on here, it appears I'm not alone in the interest.
At least as far as I can tell, there are no DMA controller ICs currently made suited for the '816 (although I think Zilog might make one still- have to check). I want to use this thread to throw out ideas and receive feedback for a cycle-steal DMA controller suited to the '816 that can be programmed using a CPLD or FPGA. I want to get started programming this thing before my simple development PCB with the '816 in "First Steps" is ready, so this thread will develop in tandem.
More specifically, I'm interested in taking advantage of seemingly lesser-used features of the '816 and applying them to a new design- possibly the Emulation/Memory Lock lines, the ABORT signal... I feel as if the '816 is underutilized. The one underused feature that I want to tackle first for the '816 is that of Cycle-Steal DMA. I find the concept in and of itself very interesting (particularly taking full advantage of the bus bandwidth when the '816 is busy internally), and creating a DMA controller is something that I've wanted to do on an FPGA to signify that I fully understand the DMA process- not only for the '816, but for other architectures such as the IBM PC and 8237 controller. Reading some other threads on here, it appears I'm not alone in the interest.
At least as far as I can tell, there are no DMA controller ICs currently made suited for the '816 (although I think Zilog might make one still- have to check). I want to use this thread to throw out ideas and receive feedback for a cycle-steal DMA controller suited to the '816 that can be programmed using a CPLD or FPGA. I want to get started programming this thing before my simple development PCB with the '816 in "First Steps" is ready, so this thread will develop in tandem.