Я бы взял.
Вид для печати
Я бы взял.
ZXM-SoundCard rev.04 HiEnd возьму собранную, слотовое решение, чтобы в скорпион воткнуть.
Mick, что там с производством "полной" версии то?
Печатные платы облегченной ревизии сделали, сегодня я их получил.
Фото печатной платы.
http://s006.radikal.ru/i215/1306/2b/b6ce49edf44bt.jpg
Фото кликабельно, нет почему то значка увеличить. Там что то радикал химичит на своем сайте.
В барахолкке тоже фото поместил.
Собрал девайс, фото будет позже и первым делом решил проверить на так сказать "правильном" компьютере всех времен и народов - Pentevo. Проверялось на конфигурации baseconf20110929 и evoreset044. Свежие у меня не идут, разбираться лень.
Как известно, базовая конфигурация блокирует доступ к внешним портам, если они имеются внутри платы. Такими портами для нашей платы являются FFFDh и xxFFh
Вобщем думал как обойти этот маразм и придумал.
1. Отслеживаем запись в порт не по IORQ =0, а по MREQ = 1
2. Сигнал DOS не используем, а чтобы не было колизии с портом контроллера флоповода, то доступ к этому порту на нашей карте возможен только с адресов 4000...FFFFh. Иными словами из ПЗУ (0000....3FFFh) порт этот недоступен.
Но я думаю это ограничение не сильно народ обидит :)
По крайней мере сегодня я с самого утра гоняю карту работает нормально. Так что ЫЫЫ ты неправ :)
Для тех кому интересен исходник CPLDшки:
Тут конечно лишние оказались 3 бита данных, ну пусть уж будут :)Код:TITLE "ZXM-SounCard Light System Logic";
FUNCTION 2mux1 (a, b, sel) RETURNS (y);
SUBDESIGN DD2
(
A1, A9, A10, A11, A14, A15 : INPUT; % адреса %
WR, RD, MREQ, IORQ, RES : INPUT; % сигналы управления %
ENDOS, IOEN : INPUT;
DB[7..0] : INPUT; % шина данных %
8CLK : INPUT; % вход тактовой частоты для SAA1099 %
PEVO, PRTFF : INPUT;
CSSAA : OUTPUT; % выбор микросхемы SAA1099 %
CCLK : OUTPUT; % выход тактовой частоты SAA1099 %
)
VARIABLE
SELECT : NODE;
ENIO : NODE;
ENIO_EVO : NODE;
CSIO : LCELL;
STRB_ADDR : DFF; % триггер адреса %
SAA_DIS : DFF;
CSFF_EX : NODE;
CSFF_N : NODE;
CSFF : LCELL;
CSFFFD : LCELL;
SEL_CHIP : DFF;
GET_STAT : DFF;
FM_DIS : DFF;
BEGIN
DEFAULTS
STRB_ADDR = 0;
SAA_DIS = 1;
SEL_CHIP = 0;
GET_STAT = 1;
FM_DIS = 1;
END DEFAULTS;
% Формирователь сигнала выбора портов клмпьютеров, отличных от Pentevo PEVO =1 %
ENIO = IORQ # IOEN # ENDOS;
% Формирователь сигнала защиты от колизии портов FF контроллера дисковода - только для Pentevo %
STRB_ADDR.d = A14 # A15;
STRB_ADDR.clrn = RES;
STRB_ADDR.clk = MREQ # RD;
% Формирователь сигнала выбора портов кoмпьютеров типа Pentevo PEVO =0 %
ENIO_EVO = !MREQ # IOEN # !STRB_ADDR.q;
% Формирователь сигнала выбора портов%
CSIO = 2mux1(ENIO_EVO, ENIO, PEVO);
% Формирователь сигнала выбора микросхемы SAA1099 - порты #4FF и #5FF PRTFF = 0 %
CSFF_EX = A14 # A15 # A11 # !A10 # A9 # !A1;
% Формирователь сигнала выбора микросхемы SAA1099 - порты #0FF и #1FF PRTFF = 1 %
CSFF_N = A14 # A15 # !A1;
% Формирователь сигнала выбора микросхемы SAA1099 - порт #FF %
CSFF = 2mux1(CSFF_EX, CSFF_N, PRTFF);
CSSAA = CSFF # CSIO;
% Формирователь сигнала выбора порта #FFFD %
CSFFFD = !A1 & A14 & A15 & !CSIO;
% Выбор внутреннего регистра осуществляется при записи номера регистра #Fxxxx в виртуальном регистре %
SELECT = !(DB[7] & DB[6] & DB[5] & DB[4] & !WR & CSFFFD);
% Бит выбора микросхемы SAA1099 %
SAA_DIS.d = DB[3];
SAA_DIS.prn = RES;
SAA_DIS.clk = SELECT;
% Управление тактовой частотой SAA1099 %
CCLK = !SAA_DIS.q & 8CLK;
%================= Резервные регистры ==================================== %
% Бит выбора микросхемы YM2203%
SEL_CHIP.d = DB[0];
SEL_CHIP.clrn = RES;
SEL_CHIP.clk = SELECT;
% Бит статуса %
GET_STAT.d = DB[1];
GET_STAT.clk = SELECT;
GET_STAT.prn = RES;
% Бит управления FM %
FM_DIS.d = DB[2];
FM_DIS.clk = SELECT;
FM_DIS.prn = RES;
END;
P.S. Обнаружился косяк, поставил я микруху 74HCT00 а она сволочь кварц не заводит. Пока запустил с толкача, т.е. через кондер.
Надо поискать HC00 (с ней вроде на прошлых платах стартовал нормально).
Так что, кто чистые печатки хотел можете уже отмечаться в барахолке. Их могу уже начинать рассылать :)