Форум Эму-Россия
http://forum.emu-russia.net/

Sega DMA
http://forum.emu-russia.net/viewtopic.php?f=13&t=5515
Страница 1 из 1

Автор:  Korben [ 15 июл 2014, 20:21 ]
Заголовок сообщения:  Sega DMA

Для запуска ДМА нужно:
1. поставить d4 - в Mode Set Register No. 2
2. длину в регистры 19-20
3. режим дма (+ стартовый адрес, если нужно) в регистры 21-23
4. запустить соответствующий longword в $C00004 (+ word в $C00000 для VRAM-Fill)

Вопрос: зачем в регистре 23 указывать режим, если он однозначно определен стартовой командой, посылаемой в $C00004 ?

Автор:  HardWareMan [ 16 июл 2014, 19:44 ]
Заголовок сообщения:  Re: Sega DMA

Изображение
Изображение
Изображение
Изображение

Автор:  Korben [ 16 июл 2014, 22:46 ]
Заголовок сообщения:  Re: Sega DMA

это я читал....
набросал табличку
Вложение:
Untitled-2.jpg
Untitled-2.jpg [ 12.65 КБ | Просмотров: 8216 ]
- для 'dma fill' и 'dma m68-> vram' значения одинаковые, т.е. брать адресат приходится из регистра 23....тогда зачем разные команды для запуска ДМА ?

Автор:  HardWareMan [ 20 июл 2014, 11:13 ]
Заголовок сообщения:  Re: Sega DMA

При использовании DMA нужно задать 2 точки для переноса данных. DMDx задают режим одной точки. CDx задают режим второй. Что не понятно? Естественно, можно сделать бессмысленную комбинацию пересылки одного и того же места в это же место (например режим копирования VRAM с указанием источника и приемника по тем же адресам). А что в твоей табличке вообще не понятно: где описания полей то?
Изображение
Изображение

Автор:  org [ 21 июл 2014, 11:26 ]
Заголовок сообщения:  Re: Sega DMA

Я тоже пытался понять, но не въеду) Все DMA-контроллеры которые я видел используют адрес источника, адрес приемника и направление копирования.

-- 21 июл 2014, 10:29 --

Ааа. Въехал...

DMD задают тип операции (VRAM<->RAM, Заполнение VRAM или VRAM<->VRAM). А CD задаёт направление + тип VRAM (VRAM/CRAM/VSRAM).

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/