Если она была не выложена официально до этого, то значит просто ее нет.
По сути карта это прототип, в котором я хотел кое что проверить, но пока так и не проверил. Но с тех времен я немного больше получил информации и сейчас я бы делал по другому.
Вид для печати
Короче дошли руки до платы и я решил попробовать написать прошивку. И самое интересное в том, что тема вылежавшаяся несколько лет, теперь видится немного по другому. И теперь, можно сказать, что та версия платы практически бесполезна.
Емкости EPM7128 хватило, только для обычного спектрумовского режима в VGA развертки. О правильном бордере можно даже не мечтать.
Итого, данная плата может быть полезна только для любительских режимов, без бордерных извратов. Вобщем, я опробую саму идею видеокарты - по сути отладить асинхронный доступ к карте. И можно будет переходить к более толстой CPLD.
На предмет толстой CPLD просится EPM1270. :)
Пока меня интересует один вопрос как правильно организовать асинхронную запись в память видеокарты. Сейчас сделано так. В карте свой синхрогенератор и доступ к памяти организован как в спеке - фаза CPU, фаза Видео. Но так как комп и видеокарта работают между собой асинхронна, то фаза CPU может не совпадать с доступом процессора. Чтобы произвести корректную запись я полагаю надо защелкивать адреса и данные с шины процессора и в фазе CPU видеокарты производить запись. Вроде и работает, но не совсем корректно.
Вот пример кода как я делаю - может кто не замыленным взглядом посмотрит и скажет, где я там уперся.
Sync_count[1] - это сигнал синхрогенератора видеокатры 0 - фаза CPU, 1 - фаза Видео.Код:------------------------------------------------------------------------------------
-- Сигнал мультиплексирования страниц ОЗУ
------------------------------------------------------------------------------------
Ram_smx = CA[15] & CA[14]; -- сигнал SMX = A15 & A14
Ram_page = RAM0_Page_r[0].q & RAM0_Page_r[1].q & RAM0_Page_r[2].q;
------------------------------------------------------------------------------------
-- Выбор памяти ОЗУ
------------------------------------------------------------------------------------
Sel_ram = !(Ram_smx & Ram_page) & !(CA[14] & !CA[15]);
------------------------------------------------------------------------------------
-- Сигнал стробирования сигналов от процессора
------------------------------------------------------------------------------------
DData_reg[7..0].d = CD[7..0];
DData_reg[7..0].clk = !Sync_count[1].q;
DAddr_reg[13..0].d = CA[13..0];
DAddr_reg[14].d = 2mux1(GND, Ram_page, Ram_smx);
DAddr_reg[14..0].clk = !Sync_count[1].q;
RAM_write.d = C_MREQ # !C_RD # Sel_ram;
RAM_write.clk = !Sync_count[1].q;
------------------------------------------------------------------------------------
-- Запись в память
------------------------------------------------------------------------------------
Ram_we = 2mux1(Ram_write.q,VCC,Sync_count[1].q);
MWE = Ram_we;
REG_wrdata[].in = DData_reg[].q;
REG_wrdata[].oe = !Ram_we;
DATA_VID[] = REG_wrdata[].out;
MD[] = DATA_VID[].out;
Мысли у меня сейчас сумбурят, так что если что не понятно спрашивайте.
Можно поступить как инженеры-приставочники: там у VDP есть небольшой FIFO на запись. На 1-2 реже 4 (зависит от приставки). С чтением, конечно, вопрос.
А чтение практически не нужно, Память видеокарты отображается на память видео компьютера. Иными словами, что в компе, то и в карточке.
FIFO не совсем интресно. По сути можно попробовать защелкивать сигналы по сигналу MREQ, а в следующей фазе карты, после снятия сигнала MREQ перекидывать данные в память видюхи.
В Пентагоне сделано наоборот. Если фаза CPU приходится на фазу чтения ВК, фаза ВК смещается на шаг вперёд.
По сути фазы компьютера для видеокарты должны быть безразличны, у нее свои собственные могут быть фазы. Важно чтобы в момент записи в ОЗУ компьютера, видеокарта корректно записывала их себе.
На данный момент в память пишется и отображается. Но вот только с мусором пишется. А это значит не всегда корректно захватывается информация.
Очередная тема с мёртворождённым проектом, и ещё с выдержкой 5 лет, супер...
Насколько реальна работа данной карты на других клонах или она только для Феникса?