Vadik, если не сложно, прогони на своем самопале vector speed test 1.0 при всех возможных вариантах частот (если не путаю 1,5/3/6 МГц). Было бы здорово увидеть результат с еще одного реала, кроме оригинального 06Ц, результат которого приведен.
Вид для печати
Vadik, если не сложно, прогони на своем самопале vector speed test 1.0 при всех возможных вариантах частот (если не путаю 1,5/3/6 МГц). Было бы здорово увидеть результат с еще одного реала, кроме оригинального 06Ц, результат которого приведен.
Запускал vector speed test вот такая картинка. Из за чего пока непонимаю.
Из-за неправильного формирования сигнала "INTE" которого нет у Z80 может быть такой результат работы теста?
А это результат на какой частоте?
на всех частотах такой результат
Спасибо за тест. Вполне возможно, что такой результат связан с длительностью INTа. Он у тебя сейчас фиксированной длины или "гасится" по какому-то условию?
---------- Post added 06.11.2009 at 00:14 ---------- Previous post was 05.11.2009 at 23:51 ----------
Могу предположить следующее - сразу после разрешения прерывания в инициализации теста происходит прерывание, отсюда все нули. Ноль для EI мне пока непонятен.
---------- Post added at 00:20 ---------- Previous post was at 00:14 ----------
Тяжелый случай, я забыл, что после EI в инициализации поставил NOP, так что и с EI все понятно.
---------- Post added at 00:22 ---------- Previous post was at 00:20 ----------
Vadik, чтобы переделать тест для твоего компьютера, мне нужно знать длительность запроса на прерывание или условие его (запроса) убирания.
У меня сделано так: Кадровый синхроимпульс с видеоконтролера приходит на триггер К555ТМ2 (подобно заводской схемы "Вектора" и микросхеме D28.2), а вместо сигнала INTE на входе "S" тригера D28.2 я подал сигнал с видеоконтолера который сбрасывает тригер когда "луч" переходит с бордюра на основное поле экрана
ну да, наверно
Завтра сделаю спецвариант.
Я хотел спросить. Как правильней работа прерываний, как я сделал или как в оригинале
Сделал 2 варианта - один в расчете на долгий запрос прерывания, а второй - на очень долгий. Если не трудно, попробуй оба.
Вложение 14099
В оригинале намного удобнее и правильнее, т.к. не нужно с помощью задержки выжидать, когда кончится запрос на прерывание, чтобы повторно не попасть в обработчик.
результаты теста vstLFLE.rom
Ещё
Vadik, спасибо за результаты. Попытался перевести в число такт/команду, получается немного странновато. Сколько у тебя строк в кадре (с учетом бордюров и синхры/гашения)? А тактов в строке при 3 МГц?
---------- Post added at 22:01 ---------- Previous post was at 21:58 ----------
Может у тебя тактовая чуть больше, чем 1,5/3/6?
---------- Post added at 22:21 ---------- Previous post was at 22:01 ----------
Попробовал в b2m подобрать частоту, на которой будет как у тебя на рис. 3 МГц. При 3148KHz получается очень близко (разница буквально в одну команду).
Либо у тебя нестандартная длительность кадра, и не 50 Гц, а примерно 47,65 Гц.
Или комбинированный вариант - и частота чуть выше и кадр чуть длиннее :)
Кварц у меня на 12000к,значит при делении счетчиком К555ИЕ7 частота должна быть равна 1.5/3/6/0.75. Как посчитать количество строк я незнаю, но мне кажется что частота кадровых импульсов у меня меньше чем 50Гц, а измерить мне нечем.
Может из заниженой частоты кадров так получилось?
Когда я сравнивал с эмуляторами мне показалось что AY-музыка в эмуляторах играла быстрее, чем на "самопале".
Если все же опорная частота строго 12, и если длительность строки стандартная (64 мкс), то получается, что у тебя в кадре не 312, а 328 строк. Соответственно кадровая частота, как я писал выше, примерно 47,65 Гц. При таких параметрах сигнала более чем возможны проблемы с тюнерами при захвате. Может и ТВ не все воспринимают.
Когда я начал собирать я незадумывался о точных расчётах всех сигналов, да и приборов нет чтобы настраивать,вобщем собирал по логике работы узлов настоящего Вектора.
Сейчас нарисую свою схему видеоконтролера(быстро, но неакуратно) и выложу.
Может подскажите что неправильно.
К сожалению, в схемотехнике я очень слаб, но здесь есть люди, которые хорошо разбираются в таких делах. Если выложите схему, думаю всем будет только польза.
Я проверял на разных телевизорах:
Советский "Горизонт"-работает стабильно, без замечаний
Современный "RUBIN"- работает тоже стабильно (Через "Скарт")
LCD "Samsung" (Через "Скарт")-синхронизация иногда срывается как по строкак так и по кадрам
LCD "NOVEX 15" "(Через "Скарт")-синхра стабильная но наблюдается отсутствие нижнего бордюра
Подключил к ТВ тюнеру Win TV HVR-1110 работает нормально
Схема формирования синхроимпульсов "Самопала". Рисовал быстро поэтому неакуратно. Рисую продолжение.
Vadik, В твоем самопале наверное нет циклов ожидания для выравнивания на начало машинного цикла, что есть в оригинальном векторе?
Тогда у тебя быстродействие получается выше чем на реальном векторе с Z80, т.к. там далеко не все команды за 4 такта выполняются.
Vadik так и писал, что у него нет никаких тормозов проца, результаты vst этому полностью соответсвуют. Просто получается, что у него в дополнение к нетормозному процу еще и промежуток между прерываниями не 312 строк, а 328. Или строки длиннее.
Тогда на него равняться ни есть гуд
схема микропроцессорной части самопала, почти готова на данный момент
Vadik, можно уточнить длительность строки, прогнав следующий тестик на твоем компе при частоте 3 МГц:
Вложение 14237
Если длительность строки 192 такта, то края полоски на бордюре будут строго вертикальные (желательно увидеть скриншот). Число тактов между прерываниями уже известно после прогона vst. В результате можно будет точно сказать, сколько строк между прерываниями.
Вот
Ага, оказалось, что в строке у тебя не 192 такта, к тому же еще и строк до активной части изображения меньше, чем в оригинале. Вот еще один вариант, я на 99,99% уверен, что он даст вертикальную линию на бордюре
Вот ветикальные. Интересно сколько строк получается?
Yes!
Получается, что при 3 МГц:
196 тактов в строке (вектор - 192)
320 строк в кадре (вектор - 312)
32 строки от прерывания до активной области изображения (вектор - 40 строк)
Это сильно плохо?
Смотря какие цели преследовать. Частота кадров 47,8 Гц - это однозначно плохо, музычка по прерываниям чуть медленнее играет, совместимость с ТВ и тюнерами (теоретически) хуже, хотя, как я понял, у тебя все "устройства отображения информации" работают нормально.
У меня шкурный вопрос - ты уже пробовал macaroids, king's valley, а вот этот Jet Set пробовал? Он для z80, быстрый, звук через AY. Без модифицированного КД должен работать в ч/б варианте.
Полностью копировать Вектор я не собирался, к тому же я мало надеялся что у меня хоть чтото получится.
king's valley,macaroids проверял,больше понравился king's valley.
Jet Set только сейчас попробовал, интересная игрушка.
С кадровой частотой я ещё повожусь, но я плохо разбираюсь в точных математических расчётах, типа тактах в строке.
Спасибо за скрин jet set, я рад, что он работает на реале.
IMHO, главный недостаток твоего компа на данный момент - запрос прерываний длинноватый и фиксированный.
Я сейчас попробую переделать по схеме Омского адаптера Z80
Вот фото железа(в разборе)
Допаял схему формирования сигнала INTE из Омского адаптера Z80
запускал Vst.rom
Vadik, это здорово, но если ты сделал оригинальный омский вариант, то там вроде была засада с обработкой прерываний во время выполнения команд z80 с префиксами. Можно попытаться это проверить таким тестиком
Вложение 14267
Если прерывания не "теряются", то цифры должны увеличиваться примерно каждую секунду. Если цифры идут заметно медленнее, чем секунды (или вобще цифры не показывается), значит прерывания при выполнении двухбайтовых команд не обрабатываются.
Есть доработка на этот случай
Вопрос в том, годится ли она для всех частот, в т.ч. 1,5 и 6.
Проверил. Цифры 3-4 секунды идут нормально потом небольшая пауза и снова 3-4 сек норм пауза....и т.д.
Это на 3Мгц потом проверю на 6Мгц