Просмотр полной версии : Компьютер ZXM-777
Вот решил вынести все обсуждения по даннному компу в отдельную тему.
Вся информация теперь доступна на страничкеhttp://micklab.ru/My%20Computer/ZXM777.htm
Электрик
13.01.2006, 23:37
Увеличение частоты CPU с сохранением частоты интов. На спеке и звук, и картинка к интам привязаны - очень удобно. Мультиколоры ессна съедут неизвестно куда, но это уже частности.
Увеличение частоты CPU с сохранением частоты интов. На спеке и звук, и картинка к интам привязаны - очень удобно. Мультиколоры ессна съедут неизвестно куда, но это уже частности.
В моем понимании так. Цикл обращения процессора к памяти 3 или 4 такта, естественно без WAIT. В фазу H1 =0 ( ~1,75МГц) вмещается 2 такта процессора. Естествеено он успевает либо зачитать, либо записать. Остальные 1 или 2 такта поппадают на видео, но это уже не страшно. Так вот если увеличтить только частоту процессора, то в фазу H1 =0 влезут все 3 или 4 такта, а на видео надо ставить WAIT.
Это получается "хромое" турбирование. Другой путь - поднять и частоту H1 - вместо 1,75Мгц -> 3,5МГц. Закономерность сохранится, но видео улетит, т.e запись видео тоже надо сдвинуть.
Или я все таки ошибаюсь.
Пытался в свое время турбировать по схемке для пентагона, но чет я помню какойто сигнал не нашел, так и забил на это дело, честно уже страшно лезть в него было, он и так уже оброс здоровенным количеством проводов.......
CityAceE
14.01.2006, 11:05
Вот решил вынести все обсуждения по даннному компу в отдельную тему.
Вполне можно было разделить и уже существующую. В общем-то ещё не поздно разделить то, что было и соединить с этой веткой. Я думаю, так будет правильнее. Нужно лишь попросить об этом кого-нибудь из модераторов этого раздела.
В моем понимании так. Цикл обращения процессора к памяти 3 или 4 такта, естественно без WAIT. В фазу H1 =0 ( ~1,75МГц) вмещается 2 такта процессора. Естествеено он успевает либо зачитать, либо записать. Остальные 1 или 2 такта поппадают на видео, но это уже не страшно. Так вот если увеличтить только частоту процессора, то в фазу H1 =0 влезут все 3 или 4 такта, а на видео надо ставить WAIT.
Принцип примерно такой. Проц Z80 обычно обрабатывает команды за 4 такта частоты CLK, или кратно четырем. Бывают конечно комманды исполняемые за 7, 15 тактов, но округленно это кратно 4. В Спектруме все реализовано таким образом, чтобы за 4 такта частоты CLK мы могли 2 раза обратиться к памяти видеоконтроллером (для байта пикселей и байта атрибутов) и 2 раза процом.Поскольку в 4 такта, обычно только один такт занят процессором и появилась возможность турбирования - второй такт при 3,5Мгц с вероятностью ~50-80% оказывается холостым для памяти. Таким образом при увеличении частоты проца до 7Мгц мы получаем производительность на уровне 150-180%, по сравнению с обычными 3,5Мгц. Наиболее хорошо (больший прирост производительности) турбируется Пентагон, из-за особенности его схемотехники (буферизация данных видеоконтроллера).
Принцип примерно такой. Проц Z80 обычно обрабатывает команды за 4 такта частоты CLK, или кратно четырем. Бывают конечно комманды исполняемые за 7, 15 тактов, но округленно это кратно 4. В Спектруме все реализовано таким образом, чтобы за 4 такта частоты CLK мы могли 2 раза обратиться к памяти видеоконтроллером (для байта пикселей и байта атрибутов) и 2 раза процом.Поскольку в 4 такта, обычно только один такт занят процессором и появилась возможность турбирования - второй такт при 3,5Мгц с вероятностью ~50-80% оказывается холостым для памяти. Таким образом при увеличении частоты проца до 7Мгц мы получаем производительность на уровне 150-180%, по сравнению с обычными 3,5Мгц. Наиболее хорошо (больший прирост производительности) турбируется Пентагон, из-за особенности его схемотехники (буферизация данных видеоконтроллера).
Накидал я схемку турбы(один мультиплексор, коммутирующий сигналы работы с памятью - короче их поднял в два раза), на выходных попробую собрать - интересно что получится. :)
Максагор
17.01.2006, 22:27
Принцип примерно такой. Проц Z80 обычно обрабатывает команды за 4 такта частоты CLK, или кратно четырем. Бывают конечно комманды исполняемые за 7, 15 тактов, но округленно это кратно 4. В Спектруме все реализовано таким образом, чтобы за 4 такта частоты CLK мы могли 2 раза обратиться к памяти видеоконтроллером (для байта пикселей и байта атрибутов) и 2 раза процом.Поскольку в 4 такта, обычно только один такт занят процессором и появилась возможность турбирования - второй такт при 3,5Мгц с вероятностью ~50-80% оказывается холостым для памяти. Таким образом при увеличении частоты проца до 7Мгц мы получаем производительность на уровне 150-180%, по сравнению с обычными 3,5Мгц. Наиболее хорошо (больший прирост производительности) турбируется Пентагон, из-за особенности его схемотехники (буферизация данных видеоконтроллера).
Интересно тогда, а как в таком случае турбировали Профик до 15МГц (вживую не видел, но неоднократно слышал и их прайсы с упоминание данной скорости читал)? Ну, Спринтер с его 21МГц тоже интересно рассмотреть поближе...
Поскольку в 4 такта, обычно только один такт занят процессором и появилась возможность турбирования - второй такт при 3,5Мгц с вероятностью ~50-80% оказывается холостым для памяти.
Т.е. проще говоря турба "включается" только на командах, которые не работабт с памятью/портами?
Интересно тогда, а как в таком случае турбировали Профик до 15МГц
Самому было интересно когда впервые об этом услышал. Причем интересно было в большей степени как они обычный проц на такую частоту разогнали. Что до остального, то думаю фишка в том, что там две линейки памяти. В штатном включении это конечно не поможет, но если четные байты расположить в одной линейке, а нечетные в другой, то количество "окон" доступа к памяти можно увеличить в два раза.
Что до остального, то думаю фишка в том, что там две линейки памяти. В штатном включении это конечно не поможет, но если четные байты расположить в одной линейке, а нечетные в другой, то количество "окон" доступа к памяти можно увеличить в два раза.
По состоянию А0? А что произойдёт, если будет обращение к двух чётным байтам?
По состоянию А0? А что произойдёт, если будет обращение к двух чётным байтам?
В кодах команды байты всегда по разным A0. Что же до ситуации с LDIR думаю, конечно что одинаковый A0 возможен. Но, вероятность невелика, и возможно механизм Turbo предусматривает торможение для такого случая. Хотя все это IMHO.
Т.е. проще говоря турба "включается" только на командах, которые не работабт с памятью/портами?
Моя мысль такая, может и не правильная, поднять частоты процессора и обращения к памяти( при этом память сама должна быть шустрая - без wait все же интересней), кроме чтения видео. В результате турба будет полноценной.
deathsoft
18.01.2006, 21:18
Ну, Спринтер с его 21МГц тоже интересно рассмотреть поближе...
У спринтера был не Z80 а Z80-совместимый микроконтроллер (от Zilog), который мог работать на частотах чуть ли не до 40МГц. Информация была доступна на сайте Петерс+ (там была страничка с подробным описанием спринтера), доступна ли сейчас не знаю.
Блин, чудеса. На выходных попробовал турбу, пока облом. В нормальном режиме стоял до этого проц 1858ВМ1. Ставлю взамен Z84006 - типа на 6Мгц. Запускаю пока еще не турбу. Вроде работает, потом хряк и basic 48. Думаю что то я не то сделал, ставлю обратно наш проц - работает нормально. Вопрос возник наш 1858ВМ1 - сможет на 7Мгц работать или нет. И что же могло случиться с"буржуйским камнем".
Повторюсь что в норамльном режиме наш работает, а z84006 теперь только basic. А как хотелось попробовать тубо режим :(
Блин, чудеса. На выходных попробовал турбу, пока облом. В нормальном режиме стоял до этого проц 1858ВМ1. Ставлю взамен Z84006 - типа на 6Мгц. Запускаю пока еще не турбу. Вроде работает, потом хряк и basic 48. Думаю что то я не то сделал, ставлю обратно наш проц - работает нормально. Вопрос возник наш 1858ВМ1 - сможет на 7Мгц работать или нет. И что же могло случиться с"буржуйским камнем".
Повторюсь что в норамльном режиме наш работает, а z84006 теперь только basic. А как хотелось попробовать тубо режим :(
Вполне возможно из-за различий в командах работы с портами. Конкретно что сейчас не спрашивай, я просто не помню на память, но вроде все CMOS версии Z80 такие. Если очень надо, могу поискать конкретней (или спроси у CHRV, быстрее будет).
Вполне возможно из-за различий в командах работы с портами. Конкретно что сейчас не спрашивай, я просто не помню на память, но вроде все CMOS версии Z80 такие. Если очень надо, могу поискать конкретней (или спроси у CHRV, быстрее будет).
У ВМ1 не генерится М1 во время HALT и еще чето с фронтами там не так (на ТУрбо2+ специальный замедлитель сигнала RAS делать приходится когда ВМ1 ставишь).
На Спринтере используется Z84C1516 - частота максимальная 16мгц но разогнан до 21мгц.
Ура я увидел турбу в действии на z84006, правда не долго. Проц похоже битый. Сначала минуту работает как надо, потом минут пять работает в basic 48, а затем полностью отрубается ( также он ведет себя и в нормальном режиме). Короче - скорость клавы впечатляет, только вот снег на экране уберу и дисковод надо попробовать. Но это после того как проц заменю. Наши 1858ВМ1 в количестве 3 штук не запустились в турбе вообще. Проц z80A -пытался что то там показать, но сорвался.
Наши 1858ВМ1 в количестве 3 штук не запустились в турбе вообще. Проц z80A -пытался что то там показать, но сорвался.
Я использую в Turbo2+ z0840008
Я использую в Turbo2+ z0840008
Ну на счет этого проца - в последнем письме на мыле уже я с тобой согласился. :)
Вопрос другой - снег на экране, может я чего упустил? Может это зависит от серии логики микросхем( 155, 555, 1533 ...)?
Ну на счет этого проца - в последнем письме на мыле уже я с тобой согласился. :)
Вопрос другой - снег на экране, может я чего упустил? Может это зависит от серии логики микросхем( 155, 555, 1533 ...)?
Видимо wait в турбе неправильно работает. Или вообще не работает.
Видимо wait в турбе неправильно работает. Или вообще не работает.
Правильно, его нет вообще. Я использую полноценную турбу - все частоты работы с памятью (H0,H1, RAS) подняты в 2 раза, благо статика позволяет такую скорость работы. Причем работает он нормально, не сбивается.
Кажется я нашел причину снега, в турбе не корректно записывается видеоинформация в регистры ИР16, типа шлейфик в один, два пикселя получается.
Буду дальше думать.
Ура, благодаря Роману Чунину у меня появились процы на 8мГц - теперь работы по турбированию возобновлятся. А пока их оджидал, закончил реставрацию схем от сего компьютера. Их получилось две. Условно я их назвал вариант 1993(схема которая у меня была) и вариант 1994(прислал Conan). Короче я их прерисовал в pdf варианте. Так что, кому интересно обращайтесь - вышлю.
Так что, кому интересно обращайтесь - вышлю.
А может стоит выложить в "Списке отечественного..."?
А может стоит выложить в "Списке отечественного..."?
Могу и туда, просто "закидываю удочки" - в смысле если не будет возражений - закину.
Тут пока возился с турбой, кстати удвоенная частота работы процессора и памяти впечатляют - экран очищается мгновенно. Но пока есть некоторые недоделки. А именно не могу запустить на импротном варианте Z80 (Z084008). Убрав турбу - там тоже не заработал. Но вернув старый формирователь клоков процессора, а именно сигнал RAS/ и CLKZ были равны - о чудо заработал. Но при таком раскладе статика работает не стабильно. Сейчас формирователь таков частота CLKZ опережает RAS/ yна пол такта. Причем при этом Z0840008 отказывается работать, Z840006, который я считал битым, работает нестабильно. Однако наш отечественный 1858ВМ1 работает и при старом формирователе и при новом стабильно. Так вот вопрос - кто нить подскажет инфу на наш 1858ВМ1, желательно с диаграммами, чтобы сравнить чем они отличаются. Неужели буржуйские процы такие капризные - вот нашими я уже начинаю годится :) :)
Продолжаю кричать в пустоту :mad: . Где же вы знатоки Z80, которых в форуме великое множество. Или это только пустые разговоры.
Даю пищу для размышления - проведя некотрые исследования установил
1858ВМ1 - аналог обычного Z80 без букв;
Т34ВМ1 - аналог подобных Z80А
немецкий U880 - что то подобие по архитектуре Z8400B.
Выводы я сделал из следущего вложения.
По старой схеме работали все процы.
По новой работали только 1858ВМ1 и Z80.
Z80A, Z0840008 - черный экран.
Z8400B и U880 - работали, но с постоянной амнезией и очень сильно рвались в BASIC 48.
Всего исследовано было
1858ВМ1 - 3шт.
Т34ВМ1 - 1шт.
Z80 - 1шт.
Z80A - 1шт.
Z8400B - 1шт.
U880 - 2шт.
Z0840008 - 5шт.
Из всего этого я делаю вывод о том что какие то длительности у 1858ВМ1 длинней
чем у Z80A. Так вот знатоки подскажите какие из них? Надеюсь на ответ.
Михаил, я бы посмотрел на перечисленные проблемы с другой стороны. Дело в том, что вероятные причины сбоев это отличия касающиеся буферизации (или ее отсутствия) у Z80 различных производителей. Попадалась обзорная статья (уже не вспомню где, но может другие подскажут) по различным Z80. В частности внутренняя буферизация CLK может привести к задержкам относительно него всех выходных сигналов процессора. А буферизация шин адреса и данных дает специфическую задержку только этих сигналов. К тому же технология (не путать с топологией) Z80 могла отличаться, что так же приводило к разбросу характеристик (например, из-за разных уровней «0» и «1»). В критичном с точки зрения времянок режиме, все это могло вылезти (и вылезало ранее) в виде различных сбоев. А уж про повышенные (по сравнению с паспортными) частоты разговор отдельный.
Михаил, я бы посмотрел на перечисленные проблемы с другой стороны. Дело в том, что вероятные причины сбоев это отличия касающиеся буферизации (или ее отсутствия) у Z80 различных производителей. Попадалась обзорная статья (уже не вспомню где, но может другие подскажут) по различным Z80. В частности внутренняя буферизация CLK может привести к задержкам относительно него всех выходных сигналов процессора. А буферизация шин адреса и данных дает специфическую задержку только этих сигналов. К тому же технология (не путать с топологией) Z80 могла отличаться, что так же приводило к разбросу характеристик (например, из-за разных уровней «0» и «1»). В критичном с точки зрения времянок режиме, все это могло вылезти (и вылезало ранее) в виде различных сбоев. А уж про повышенные (по сравнению с паспортными) частоты разговор отдельный.
Спасибо, чоть откликнулись, у меня уж мозги закипели. Но я поясню все это проверялось при нормальной частоте. При повышенной могут работать только Z0840008(черный экран) и Z8400B(периодическая амнезия). У меня возникает только одно предположение, что длительности RD/ и MREQ/ у 1858ВМ1 более продолжительней чем у Z80А. И возможно по этому данные пролетают мимо проца. Но это требует подтвеждения.
Ну посколько реальной помощи не от кого было ждать :( , пришлось самому разбираться. Так вот все дело было в длительности сигнала записи в память WE/.
Пришлось вернуть схему формирования CLКZ назад, но при этом чуть изменил схему формирования WE/.
Теперь работают все имеющиеся у меня Z80 и клоны. Изменения в приложении.
Теперь до окончания турбо режима осталось пару штрихов. А именно - сколько периодов тактовой частоты в INT. Вроде это уже где то обсуждалось - напомните пожалуйста.
Продолжаю исследования турбирования, свободного времени ах как мало :( . Короче произвел первое включение с процами на 8 Мгц( Роман тебе спасибо -все процы замечательно работают). Короче чудо - экран чистится мгновенно - даже ВГ93 работала, каталог вывела мгновенно. ПОка еще INT не делал. А теперь о грусном - опять проблемы с памятью. Тут я посчитал задержки(максимальные) 140 -150 нс, а по расчетам должно быть 110 нс. Вот сейчас ищу микрухи 531 серии. Кстати видео пришлось тоже доработать - выкинул 3 ИР16, а поставил ИР23 и ИР10 - а то в турбе видео глючило. Да блин заморочей много, но интересно.
Продолжаю исследования турбирования, свободного времени ах как мало :( . Короче произвел первое включение с процами на 8 Мгц( Роман тебе спасибо -все процы замечательно работают). Короче чудо - экран чистится мгновенно - даже ВГ93 работала, каталог вывела мгновенно. ПОка еще INT не делал. А теперь о грусном - опять проблемы с памятью. Тут я посчитал задержки(максимальные) 140 -150 нс, а по расчетам должно быть 110 нс. Вот сейчас ищу микрухи 531 серии. Кстати видео пришлось тоже доработать - выкинул 3 ИР16, а поставил ИР23 и ИР10 - а то в турбе видео глючило. Да блин заморочей много, но интересно.
Майк давай переходи на ПЛМки, хорош морочаться с логикой.
Программатор для ПЛМ реально делается за полчаса. ;)
Товарищи модераторы, убедительная просьба вернуть мой пост с вложением ZX-777 2005, который был перенесен в тему про ПЛИС, в эту тему. Данная схема не содержит ни одной ПЛИСины, а приведен вариант со статикой.
А то как бы вруном и лгуном не прослыть. :)
Продолжаю переодически попытки турбировать свой комп. После облома с 70 нс памятью решил поставить 55нс от Самсунга. Уже стало получше, но вердикт такой 48кб в турбе будет работать без проблем. Откопал старую материнку от PC поставил 20нс память - ура заработало. Так что чтобы полноценно получить турбу при старой логике (серии 555 или 1533) необходима память для 128кб - 20нс, для 48Кб - 55нс.
Но скорость работы впечатляет. Boot ZYX ZAX просто колбасится. Теперь думаю надо INT привести в порядок(уменьшить в два раза). Кстати говоря я WAIT не подрубал вообще, и дисковод и AY работают без сбоев. Одним словом рулез :v2_yahoo:
Orionsoft
11.06.2006, 00:38
пришлите материалы по теме плз ...
пришлите материалы по теме плз ...
Как с INTом разберусь, внесу в схему изменения(а их несколько и они пока в терадке набросаны) и выложу в форум.
Полдня погонял комп в турбе - уже не хочется его в реале включать. Кстати запустил несколько дем - что тут началось. Все онли пентагон - стали куски проглатывать, рассинхронизация полная. 7Reality хоть и синхронизирована, но часть эффектов тоже пропало. Вот тут и нужен правильный INT. Кстати скажите кто-нить. Длительность прерывания 32 такта, так где то говорилось. Так вот эти такты считать тактами CPU(CLK) или такты синхрогенератора(H0)? А то совсем чуть-чуть осталось.
Кстати один баг нашелся. К ВГ93 обращаются гораздо чаще и микросхем 155 серии там не должно быть. Из-за этого эти микрухи разогреваются - и короче дисковод виснет, а с ним и весь комп. Заменил все на 1533. Уже как полдня пашет без сбоев. И еще проверял на двух процах. Z840008 - 2000 года работает на ура.
Z8400B - 89 года сваливается в BASIC 48 (но это мы уже проходили - тайминг другой и память его кидает).
Сегодня начал INT укорачивать - блин уже пол-схемы перепахал с доработками. Кстати как я понял из доки по Z80 длительность INT не должна быть короче самой длинной по тактам команды Z80, а именно 23 такта. Ну для более простой обработки наверно сделали 32 такта (3,5МГЦ). Короче в турбе их укорачиваем вдвое.
Но перед этим решил приколотся - запустил тест от Caro версии 1.1 - результат замера вов сех страницах по 139776 попугаев :v2_finge: . Вот сами и оцените возможности турбы. После того, как INT укорочу тоже замер произведу.
Сегодня INT укоротил. Изменениия только видны в нескольких программах. Boot ZYX ZAX вроде видна синхронизация. В демках все колбасится по старому. Тут я начал тупить. Ведь по логике тактов стало вдвое больше пролетать, по идея прога быстрее пролетат, музыка как правило синхронизируется по прерыванию. Произвел замер попугаев - те же 139776. Посему, если не трудно, владельцы турбо машин произведите замер тактов. И ответьте - в турбо режиме демки работают или колбасятся. Короче как старые проги ведут себя в турбе?
Да, раз сервак упал :v2_scare: - вложение со схемой тоже осталось на горелом винте. Так что кто не успел посмотреть схему турбированного компа(ZX-777Turbo), я могу еще раз залить. :( Однако вот как бывает :(
Тут вот забомбил диспечер памяти на 512Кб в ATF16V8B (типа PAL), вроде как работает, но вот вопрос возник. Как считаются задержки от входа до выхода в PAL? В описании на микруху указана 15нс. Но ведь можно такую формулу заколбасить. Или это указывается при максимально возможной комбинации.
Поделитесь мыслями.
Тут вот забомбил диспечер памяти на 512Кб в ATF16V8B (типа PAL), вроде как работает, но вот вопрос возник. Как считаются задержки от входа до выхода в PAL? В описании на микруху указана 15нс. Но ведь можно такую формулу заколбасить. Или это указывается при максимально возможной комбинации.
Поделитесь мыслями.
По идее это должно быть гарантированое время прохода сигнала от пина до пина (вход/выход).
По идее это должно быть гарантированое время прохода сигнала от пина до пина (вход/выход).
Да блин, интересно получается. Заменил одной микрухой ATF16V8B вроде бы корпусов 5 (КП11, 2 вентиля ЛА3, 2 вентиля ЛЕ1). По идее задержки уменьшаются до 15 нс, один фиг память на 55нс не работает(только на 20нс и меньше). Короче модернизировать надо глобально :( .
Вот оформил схемку и выкладываю очередную доработку - теперь комп имеет 512Кб. Выбор страниц идет D6 и D7 порта 7FFDh. Хотя тут возникли в программах косяки - камень в огород программеров, которые плохо отслеживают, какие страницы включают(относится это к демомейкерам). Сначала подумал - это у меня косяк - запустил командер Ковалевского - он чесно написал что комп содержит 512Кб, но я тут для проверки дискетку забитую под завязку решил скопировать на другую. Он всего лишь два раза обратился к дисководу(две сессии чтения), т.е. он использует всю доступную память. Но для пущей убедительности -я позапускал все проги. Сбоев ни каких не возникло. Так что "товарищи" программисты все же следите за битами припереключении страниц, раз стандарт есть. :v2_wink2:
Ну а теперь собственно вложение:
схема;
файл прошивки ATF16V8B - мое первое изыскание в PALах.
P.S. Схема работает только с быстрой памятью (20нс) :v2_frown: . Исследования продолжаются.
Orionsoft
08.07.2006, 18:43
файл прошивки ATF16V8B - мое первое изыскание в PALах.
а можно глянуть на исходник jed ?
а можно глянуть на исходник jed ?
Да собственно почему и нет.
Только не пинайте сильно - в этом деле я делаю первые шаги :) . Использовал прогу Wincupl. Кстати одна нога там не ипользуется (выв 11) - думал сделать отключение ПЗУ, но пока не стал.
Только переименуйте его в *.pld.
Кстати сейчас есть задумки синхрогененратор (логику) запихать в такие микрухи.
Блин, PAL оказались интересные штуки. Все мультиплесоры(КП13 и КП11), которые работают с памятью запихнул в PAL. Еще несколько деньков погоняю - выложу свои наработки. Только пока опять работает с быстрой памятью - еще осталось саму логику работы с памятью запихнуть - может тогда времена выравнятся. Но в целом интересно.
Вот просматривал схему Scorpiona - у него тоже есть одна PAL-ка. Кстати не у кого не завалялась прошивка PALки. Интересно посмотреть как раньше люди решали проблемы схемотехники.
Orionsoft
15.07.2006, 20:40
- у него тоже есть одна PAL-ка.
а разве эта EPM - PAL ?
сам бы хотел бы эту прошивку - у меня зеленная плата бездыханна
а разве эта EPM - PAL ?
сам бы хотел бы эту прошивку - у меня зеленная плата бездыханна
Судя по описанию Altera - это аналог PAL16V8, ну или что-то подобное. Это я говорю об EP220PC - такую микросхему я видел на схеме.
А почему ты решил , что в твоей плате неисправна PALка.
Orionsoft
15.07.2006, 22:58
А почему ты решил , что в твоей плате неисправна PALка.
ёё физичиски нет
ёё физичиски нет
Понятно, сочувствую.
Хотя три решения все равно есть:
1) Искать прошивку может кто в форуме откликнется.
2) Собрать на монтажке схемку с платы без PAL, там все сигналы на логике собраны.
3) Найти плату и считать содержимое PAL и потом прошить аналог.
Я бы посмотрел содержимое из-за любопытства, как они сигнал RAS запихали без триггерного выхода(или с триггерным). У меня пока получается облом.
Можно конечно попытаться найти плату и извлечь от туда микруху на предмет изучения.
Вот выкладываю свои наработки в GAL изысканиях.
Сразу говорю схема работает только в нормальном режиме, с памятью 128кб(КЭШ) имеет два незначительных артефакта.
Спасибо писателям дем 7 Reality и Illusion, очень помогают определять глюки с памятью. Другие проги не запускал из-за ограниченности свободного времени.
Посему ее назвал бетой. Буду и дальше доводить до ума, но время наш злейший враг, его почему то никогда не хватает :(.
Кому интересно может посмотреть прошивки. Может дельное что скажете. Буду очень признателен если кто найдет ошибки в логике.
Жду ваших советов и коментариев.
В догонку выкладываю фотки платы.
Итак любителям килограммов МГТФа посвящается :).
Что то скачиваю и открываю файл части 2 , там папка пустая, странно...
Что то скачиваю и открываю файл части 2 , там папка пустая, странно...
Это двух томный архив, открываешь первый архив, а там при извлечении или просмотре автоматически откроется второй.
В догонку выкладываю фотки платы.
Итак любителям килограммов МГТФа посвящается :).
Даааааа.... ЗАЧОТТ однозначно....:v2_clapp: :v2_clap2: :v2_clapp: :v2_clap2:
Особенно мне понравился фрагмент ИЕ10 и Ир22 на кусочке миллемитровки....:v2_yahoo:
Молодец!
Вот если ты еще и плату разведешь под это дело...
Даааааа.... ЗАЧОТТ однозначно....:v2_clapp: :v2_clap2: :v2_clapp: :v2_clap2:
Особенно мне понравился фрагмент ИЕ10 и Ир22 на кусочке миллемитровки....:v2_yahoo:
Молодец!
Вот если ты еще и плату разведешь под это дело...
Там ир10, а не ие10. Да пока монтажек не было, пришлось на картонке слепить.
Естественно моя мечта это все развести, но надо еще до ума довести,
добавить HDD контроллер и клаву заменить на современную PS2 и ZX-BUS. После этого сяду разводить.
Там ир10, а не ие10. Да пока монтажек не было, пришлось на картонке слепить.
Естественно моя мечта это все развести, но надо еще до ума довести,
добавить HDD контроллер и клаву заменить на современную PS2 и ZX-BUS. После этого сяду разводить.
на базе чего ХДД будешь делать?
Клаву - попробуй как у CARO ,а проще поговори с ним да внедри его схему в свою.
Ну BUS - это не проблема я думаю....
3-4 АП6...
на базе чего ХДД будешь делать?
Клаву - попробуй как у CARO ,а проще поговори с ним да внедри его схему в свою.
Ну BUS - это не проблема я думаю....
3-4 АП6...
HDD - наверно на базе контроллера Nemo;
Клаву и мышь - своя разработка, порт FE в контроллер полностью(чтение, запись) и расширение мышиного DF, типа
FADF, FBDF, FFDF - как были;
FCDF - расширение для мыши(типа под современные)
F9DF - чтение сканов клавиш напрямую;
F0DF - системный регистр(управление турбой, страницой ПЗУ по FB и т.д.)
Ну это пока мысли.
Короче думал я думал и решил отказаться от немовской распортовки HDD(слишком беспечное расточительство портов), а взять скорпионовскую упрощенную.
Типа для CS0 = #F8BE - #FFBE
CS1 = #F0BE - #F7BE
ну и #D8BE - без изменений
Конфликтов не возникнет у работающих с HDD программ?
И еще вопрос - какие порты часов по глюку используются(переменные HDD хранить надо)?
И еще вопрос - какие порты часов по глюку используются(переменные HDD хранить надо)?
А можно вопрос - зачем их хранить и чего ты там собрался хранить? Геометрию винта? Зачем? Винты уже сто лет как умеют определяться автоматически, и даже в BIOSах PC давным-давно уже имеется Autodetect, которым все нормальные люди пользуются.
А можно вопрос - зачем их хранить и чего ты там собрался хранить? Геометрию винта? Зачем? Винты уже сто лет как умеют определяться автоматически, и даже в BIOSах PC давным-давно уже имеется Autodetect, которым все нормальные люди пользуются.
Ну это я к слову сказал, вообще меня интересовали адреса портов. А хранить в памяти найдется чего.:)
Ну это я к слову сказал, вообще меня интересовали адреса портов. А хранить в памяти найдется чего.
Hi! В общем схема часов по глюку есть в одном из номеров журнала Черная Ворона. В каком не скажу, но кажется №3 или №4. Еще можешь поковырять прошивку Gluck Reset Service, которую дорабатывал AlCo, там тоже должны встречаться процедуры и порты работы с часами. Адреса портов не помню, но что-то вроде ~FEE7.
Hi! В общем схема часов по глюку есть в одном из номеров журнала Черная Ворона. В каком не скажу, но кажется №3 или №4. Еще можешь поковырять прошивку Gluck Reset Service, которую дорабатывал AlCo, там тоже должны встречаться процедуры и порты работы с часами. Адреса портов не помню, но что-то вроде ~FEE7.
Спасибо за наводку, посмотрю.
Думал я думал по поводу часов, все равно мысля свое сварганить.
Вот мысли такие:
Порты переферии:
#F0BE ... #FFBE - регистры HDD;
#D8BE - запись/чтение старшего байта HDD;
#DEBE - запись адреса микросхемы RTC;
#DFBE - запись/чтение данных микросхемы RTC;
#7EBE - запись/чтение в IRR, IRS микросхемы ВН59;
#7FBE - запись/чтение в IRM микросхемы ВН59;
#6EBE - запись/чтение регистров данных ВВ51;
#6FBE - запись/чтение регистра команд ВВ51.
Очень класно на ATF16V8 порты раскладываются.
Сейчас дорисовываю схему и буду потихоньку отлаживать.
Кстати попутно вопрос, а никто не пытался извращаться с атрибутами.
Чтобы было на байт информации 2 цвета, т.е. стандартный экран 256x192, а затем второй экран 256x192 атрибутов (байт информации 2 цвета).
cr0acker
28.04.2007, 14:22
А где перечень элементов? И значения резюков и кондеров?
А где перечень элементов? И значения резюков и кондеров?
Ты про схему на PALках, то это бета версия, есть некоторые недоработки. А если тебе интересны номиналы, то они совпадают из предыдущих схем. Но если не найдешь - то за выходные постараюсь файлик перечня забомбить.
Вот нашлась свободная минутка, решил исправить недоработки.
Вопрос к спектрумовским гуру такой.
Я пытался разобрать кадровую развертку компа оригинала.
приблизительно так получалось
0 - начало видимой части
192 - конец видимой части, начало бордюра, перезагрузка счетчиков в
72
112 - начало кадрового импульса
128 - конец кадрового импулса
192 - сброс счетчиков.
Если перевести в линейку, то:
0 - начало видимой части
192 - конец видимой части, начало бордюра
232 - начало кадрового импульса
248 - конец кадрового импульса
312 - сброс счетчиков
У меня оказалось, немного не так 240 - начало кадрового импульса и 256 конец кадрового импульса.
Я считаю что демка Лира, 6 часть, с осцилографом которая, у меня неправильно отображается на экране из за этого.
Народ объясните если что не так.
"Чтобы было на байт информации 2 цвета, т.е. стандартный экран 256x192, а затем второй экран 256x192 атрибутов (байт информации 2 цвета)."
Вроде у меня так ...
"Чтобы было на байт информации 2 цвета, т.е. стандартный экран 256x192, а затем второй экран 256x192 атрибутов (байт информации 2 цвета)."
Вроде у меня так ...
Ты это про что.
Я лишь спросил о правильности формирования кадрового импульса. А Информация и цвет выводится правильно.
Свершилось наконец то, сегодня получил свою "прелесть" :)
Попробую поскорее собрать.
Короче пока я рисовал схему, появлялись идеи и это шло до бесконечности. Плюнул, думаю хоть простой 128кб собрать.
Итак я ограничился обычными 128Кб SRAM, добавил шину ZX-BUS. И обозвал его ZXM-777. Заказал платку, а сейчас понял что лажанулся с патернами разъемов.
Один разъем зеркально зафигачил - придется теперь его распинать на дыбе. Вот посмотрите что получилось. Гуру PCADа не пинайте сильно за разводку - у меня и так целый месяц ушел на разведение платы. :)
Эх, будет потом что в рамочку вставить :)
Симпатишная платка получилась жаль только что не зелёная =)
А где заказывал и в каком количестве и в какую цену получилось ?
Симпатишная платка получилась жаль только что не зелёная =)
А где заказывал и в каком количестве и в какую цену получилось ?
Я не стал зеленую заказывать, и правильно сделал из-за возможных ошибок. Как и сказал чуток с патернами разъемов пролетел. Ну и для отладки конечно. Я ее спаял, осталось только прошить измененные PALки. Фотку собранной выложу попозже(отмыть надо :))
Заказывал 2 платы в "Резонит" (Зеленоград).
Получилось где то 800 рублей за плату из-за подготовки производства. А так стоимость ее гораздо меньше была бы.
P.S. Поправил цену платы, ошибся счетом, извиняюсь.
Вот спаял плату. Вот фотка что получилось.
Теперь осталось кабелюки распаять.
Блин рульные штуки эти палки. Включил свою плату, матрац висит, ну у меня сначало тоже все повисло :) от досады. Начал все измерять проверять - блин выбор не той страницы ПЗУ получилось выход триггера не тот использовал. Но благодаря палки исправил этот недостаток путем программного инвертирования сигнала. Да а если на рассыпухе делал, пришлось бы резать дорожку.
:) PALки и GALки рулят :)
........
:) PALки и GALки рулят :)
Ты ,кстати, чем AFT-ки шьёшь?
А Латис у тебя есть?
Ты ,кстати, чем AFT-ки шьёшь?
А Латис у тебя есть?
Шью пока что на работе "ChipProg". Латиса нет, покупаю только то что могу в Москве в Платане или Чупа Чупсе достать. ATF они более распространенные.
Шью пока что на работе "ChipProg". Латиса нет, покупаю только то что могу в Москве в Платане или Чупа Чупсе достать. ATF они более распространенные.
почем они?
а 22в10 есть?
чиппрог 2? плюс?
почем они?
а 22в10 есть?
чиппрог 2? плюс?
На счет чиппрога, который дорогой. Я сейчас не помню с плюсами или без.
Ну я брал ATF16V8 в Платане, сейчас точно не скажу текущую цену, но меньше тридцатника это точно.
22V10 у меня нет, да и в продаже их тоже нет.
Да в принципе по стоимости они сравниваются с EPM3032, а у последних ног то по более(наверное) и в продаже есть. Я их буду использовать в последущей версии своего компа. Ну типа для самообразования :)
........
Да в принципе по стоимости они сравниваются с EPM3032, а у последних ног то по более(наверное) и в продаже есть. Я их буду использовать в последущей версии своего компа. Ну типа для самообразования :)
ну не люблю я плцц.....:v2_blink::v2_devil:
дип мне симпатичнее.....:v2_wink:
да и три вольта напрягают....
ну не люблю я плцц.....:v2_blink::v2_devil:
дип мне симпатичнее.....:v2_wink:
да и три вольта напрягают....
А что три вольта, ну да будет еще один стабилизатор. А вводы-выводы толерантны 5В. Да и мне интресно дальше топать(медленно но всетаки).
А что три вольта, ну да будет еще один стабилизатор. А вводы-выводы толерантны 5В. Да и мне интресно дальше топать(медленно но всетаки).
согласен!
если есть желание топать - то надо плевать на предрассудки,как у меня....:v2_cool::v2_thumb:
Народ помоему пролетало где то. В турбе какие то тайминги в прошивке надо увеличить, чтобы дисковод работал стабильнее. Киньтесь инфой если не сложно.
Народ тут сталкнулся с одной необычностью. зависает комп при записи впорт. Короче происходит это в этом куске кода и в этих адресах!!!!
seg000:B3EF loc_0_B3EF: ; CODE XREF: sub_0_B3E1+7j
seg000:B3EF ld c, 0FDh ; '¤'
seg000:B3F1
seg000:B3F1 loc_0_B3F1: ; CODE XREF: sub_0_B3E1+19j
seg000:B3F1 ld b, 0FFh
seg000:B3F3 out (c), a
seg000:B3F5 ld b, 0BFh ; '┐'
seg000:B3F7 outd
seg000:B3F9 dec a
seg000:B3FA jp p, loc_0_B3F1
seg000:B3FD ret
Вот здесь, после записи в порт - комп при возврате из подпрограммы зависает.
Это кусок из плеера Sound Trackera. В других музыкальных модулях не вылетает.
И так со всеми процами.
Дополнительные сведения, вытащил муз проц - работает. Ставил другой одна фигня. Все остальные проги работают с музыкой замечательно.
Какие есть соображения?
Н.......... ; CODE XREF: sub_0_B3E1+7j
seg000:B3EF ld c, 0FDh ; '¤'
......
чет как то с кодировочкой сложности...или тока у мну?
чет как то с кодировочкой сложности...или тока у мну?
Да нет у всех - кусок из дизассемблера IDA.
А так это фрагмент кода из LYRA II где бутылка качается. Вот она и виснет. Все остальные компо играют. Прога не битая. Но почемуто виснет из-за муз сопроца - парадокс. :(
balu_dark
28.01.2008, 15:14
кстати - а не вызвано ли это задержкой в цепи M1 проца подключенной к схеме управления музпроцом ? в маркировке сигнала могу ошибаться но суть его - показать начало выполнения процом текущей команды. и еще - тактируется ето у тебя от одного генератора что и проц?
кстати - а не вызвано ли это задержкой в цепи M1 проца подключенной к схеме управления музпроцом ? в маркировке сигнала могу ошибаться но суть его - показать начало выполнения процом текущей команды. и еще - тактируется ето у тебя от одного генератора что и проц?
M1 у меня к сопроцу вообще не идет, я разруливаю все по IORQ. В смыле тактируется одним генератором? Частота на сопроц подается 1,75МГц как и положено.
Да и другие проги так себя вели бы. Здесь какая то коллизия возникает, только пока немогу вычислить.
Интересно как может сопроц подвесить комп, только если подвесит шину данных, но тогда бы улетел сразу, а так подпрограмма завершается до конца. :(
AlexCrush
28.01.2008, 20:55
M1 у меня к сопроцу вообще не идет, я разруливаю все по IORQ. В смыле тактируется одним генератором?
ЭЭ, а как же цикл подтверждения прерывания - когда IORQ и M1 активны вместе? если сопроцессор случайно откликнется (ну малоли, адрес мог и совпасть) и выдаст на шину данные, то они прочитаются вместо FF, соответственно вектор прерывания будет другой в IM0 и IM2.
В большинстве софта это учтено 257-байтной таблицей векторов прерываний, но вдруг именно тут - нет?
ЭЭ, а как же цикл подтверждения прерывания - когда IORQ и M1 активны вместе? если сопроцессор случайно откликнется (ну малоли, адрес мог и совпасть) и выдаст на шину данные, то они прочитаются вместо FF, соответственно вектор прерывания будет другой в IM0 и IM2.
В большинстве софта это учтено 257-байтной таблицей векторов прерываний, но вдруг именно тут - нет?
Ну в оригинальном компе было без M1, но похоже у меня немного другие тайминги получились. Давно слышал про эти таблицы, даже сам когда то делал в своих прогах. Только уже не помню - это делалось из-за возможных нестабильностей шины данных или как? (сам уже не вспомню).
Вот кусок инициализации из этой демки. Сюда приходит после загрузки.
seg000:DAC0 di
seg000:DAC1 ld a, 3Bh ; ';'
seg000:DAC3 ld i, a
seg000:DAC5 im 2
seg000:DAC7 ld a, 18h
seg000:DAC9 ld (0FFFFh), a
seg000:DACC ld a, 0C3h ; '├'
seg000:DACE ld (0FFF4h), a
seg000:DAD1 ld hl, loc_0_DB0E
seg000:DAD4 ld (0FFF5h), hl
AlexCrush
28.01.2008, 22:18
seg000:DAC0 di
seg000:DAC1 ld a, 3Bh ; ';'
seg000:DAC3 ld i, a
seg000:DAC5 im 2
Значит I=0x3b, а по 0x3b00 -0x3C00 в фирменном 48ROM - FF-ки. Т.е. на первый взгляд всё в порядке, при любом векторе прочитанном по M1+IORQ все должно быть идентично.
Однако, в Unreal 0.30 галочка "Unstable Data Bus" тоже вешает Lyra2-бутылочку ...
Глянул исходники Unreal - там эта галочка действует так:
1. если выключена, то адрес, откуда читается вектор прерываний = I*0x100 + 0xFF.
2. Если включена, то адрес = I*0x100 + случайное число.
В случае если ROM оригинальный - все работает хорошо. Если же там по адресам 3b00-3c00 не FF - то вешается.
Вроде как бы все ясно...
Значит I=0x3b, а по 0x3b00 -0x3C00 в фирменном 48ROM - FF-ки. Т.е. на первый взгляд всё в порядке, при любом векторе прочитанном по M1+IORQ все должно быть идентично.
Однако, в Unreal 0.30 галочка "Unstable Data Bus" тоже вешает Lyra2-бутылочку ... Я пока не понял почему
Вот и я не пойму, в прерывание он же входит, запихивает в врегистры муз сопроца, выходит из плеера, а куда фиг его знает :(
AlexCrush
28.01.2008, 22:41
Проверь свою ПЗУ - я выше пост поправил. У меня вышло, что
1. если ПЗУ модифицированное (по адресам 3BXX не FF) и стоит галочка Unstable Data Bus - вешается.
2. если ПЗУ модифицированное (по адресам 3BXX не FF) и НЕ стоит галочка Unstable Data Bus - не вешается.
3. если ПЗУ оригинальное то не вешается в любом случае.
Вобщем, мой вывод: по-правильному, M1 нужно заводить на схему выборки музпроцессора, об этом еще в ЗХ-Ревю писали в 1995м годе. То что в оригинале было не так - это проблемы оригинала :)
Проверь свою ПЗУ - я выше пост поправил. У меня вышло, что
1. если ПЗУ модифицированное (по адресам 3BXX не FF) и стоит галочка Unstable Data Bus - вешается.
2. если ПЗУ модифицированное (по адресам 3BXX не FF) и НЕ стоит галочка Unstable Data Bus - не вешается.
3. если ПЗУ оригинальное то не вешается в любом случае.
Вобщем, мой вывод: по-правильному, M1 нужно заводить на схему выборки музпроцессора, об этом еще в ЗХ-Ревю писали в 1995м годе. То что в оригинале было не так - это проблемы оригинала :)
Короче я попробую посадить M1 муз процу. Но тогда вопрос. Если подтверждение прерывания происходит по IORQ и M1, то логичнее всего M1 подавать на дешифратор портов. А то така штука может случится с любым совпадающим портом на чтение.
ПЗУ вроде нормальное.
AlexCrush
29.01.2008, 09:04
Если подтверждение прерывания происходит по IORQ и M1
Без всяких "если" - это факт, указанный в доках Z80.
то логичнее всего M1 подавать на дешифратор портов. А то така штука может случится с любым совпадающим портом на чтение.
Да, нужно заводить на дешифратор портов. Если где-то это не сделано - то это ошибка, так как IORQ+RD не гарантирует, что идет чтение порта, быть может идет подтверждение прерывания.
Кстати, M1+IORQ можно использовать для генерации сигнала INT с плавающей длительностью и гарантией однократного захода в прерывание в любом случае. Т.е. логика INT:
1. по КСИ устанавливаем INT
2. Сбрасываем по
а) истечении 64х тактов (можно юзать один из счетчиков гориз. развертки)
б) по M1+IORQ
Имхо, это самая надежная схема формирования INT (была тут тема про INT в турборежиме...)
ПЗУ вроде нормальное.
Вроде :) ?
10 FOR I FROM 0 TO 255
20 PRINT PEEK (15104+I)
30 NEXT I
Должны быть только 255
б) по M1+IORQ
Имхо, это самая надежная схема формирования INT (была тут тема про INT в турборежиме...)Такая схема применялась в первых Балтиках,
в результате многие программы отказывались работать.
Приходилось делать доработку.
Evgeny Muchkin
29.01.2008, 10:47
Такая схема применялась в первых Балтиках,
в результате многие программы отказывались работать.
Приходилось делать доработку.
Ой... caro, Ты меня смутил. Получается на ИР16 это далеко не лучший вариант формирователся ИНТ?
Ой... caro, Ты меня смутил. Получается на ИР16 это далеко не лучший вариант формирователся ИНТ?
Евгений - у вас паранойя....:v2_lol:
Читаем зонова.....
"........."..........Сигнал INT теперь формируется цифровым способом , его длительность жестко задана и равна 9mks, причем сделано так, что в программах, чувствительных к длительности сигнала INT и ранее работавших неправильно в режиме Turbo из-за повторного захвата прерывания, теперь этого не происходит. Во всех других моделях ”компьютеров, которые мы выбираем”, этот дефект, по нашим сведениям, присутствует..........."
Ой... caro, Ты меня смутил. Получается на ИР16 это далеко не лучший вариант формирователся ИНТ?Схема на ИР16 после подтверждения прерывания еще не снимает INT,
добавляется еще один машинный цикл, что и достаточно для нормальной работы.
Схема на ИР1 после подтверждения прерывания еще не снимает INT,
добавляется еще один машинный цикл, что и достаточно для нормальной работы.
ир1 отличается от ир16 - только три-стабиле?
б) по M1+IORQ
Имхо, это самая надежная схема формирования INT (была тут тема про INT в турборежиме...)
(Стёр, потому что нагнал :) ) M1+IORQ и есть сигнал сменить уровень /INT.
AlexCrush
29.01.2008, 11:09
Такая схема применялась в первых Балтиках,
в результате многие программы отказывались работать.
Приходилось делать доработку.
А в чем причина "отказывались работать" никто не выяснял? С чем это связано?
Как помогает продление INT-а на такт? Ведь прерывание-то уже схвачено.
Очень хочется разобраться в этом вопросе.
Спасибо Александр за высказанную мысль. Подал сегодня M1 на PALку, отвечающую за порты. Действительно бутылка заработала.
И еще вопрос ко всем.
Ситуация такова. Изначально мы в меню, выбираем BASIC 48 и видим такую картинку(1). Да это стандартная надпись. Далее я нажимаю клавишу Enter и вываливаемся типа в дыр дос(2). Далее клавиши озвучиваются но ничего не выводится.
Какие мысли по этому поводу?
AlexCrush
29.01.2008, 21:11
Ситуация такова. Изначально мы в меню, выбираем BASIC 48 и видим такую картинку(1). Да это стандартная надпись. Далее я нажимаю клавишу Enter и вываливаемся типа в дыр дос(2).
Блин, где-то и когда-то я такое видел. По-моему это происходило когда один веселый человек втыкал контроллер флопика в свой магик на ходу ;-) То есть сигнал DOS внезапно становился активен, без захода в окно #3D00.
Думаю в твоем случае таких зверств не происходит, и наверное, проблема где-то в районе формирователя сигнала DOS (который активен в момент когда включена теневая ПЗУ TR-DOS) - быть может в дешифраторе адреса окна. То есть при нажатии enter бэйсик делает переход куда-то в свои дебри, что ошибочно приводит к активации сигнала DOS.
Так что надо проверять узел его формирования, быть может сопелька где висит...
формирователя сигнала DOS (который активен в момент когда включена теневая ПЗУ TR-DOS) - быть может в дешифраторе адреса окна. То есть при нажатии enter бэйсик делает переход куда-то в свои дебри, что ошибочно приводит к активации сигнала DOS.
У меня такое тоже подозрение возникло, что активируется сигнал DOS, но!
Прикол сейчас стоит проц Z0840008, ставлю Z8400B работает в бейсике 48 нормально. Меняю обратно - картина возращается. :(
У меня такое тоже подозрение возникло, что активируется сигнал DOS, но!
Прикол сейчас стоит проц Z0840008, ставлю Z8400B работает в бейсике 48 нормально. Меняю обратно - картина возращается. :(
Названия проца точные?
один из них случаем не Z84С - кмосовый?
Названия проца точные?
один из них случаем не Z84С - кмосовый?
Нет у них названия как написал:
Z0840008PSC(2000 год выпуска)
Z8400B(1989 год выпуска)
AlexCrush
30.01.2008, 08:15
Прикол сейчас стоит проц Z0840008, ставлю Z8400B работает в бейсике 48 нормально. Меняю обратно - картина возращается. :(
Тогда можно предположить разную нагрузочную способность выходных линий этих процессоров, и как следствие, перегрузку одной (или нескольких) адресных линий в случае Z0840008, в результате чего неверно срабатывает селектор окна DOS.
Хотя формальная логика подсказывает что более новый и более высокоскоростной (8мгц) Z0840008 должен иметь большую нагрузочную способность выходов...
Тогда можно предположить разную нагрузочную способность выходных линий этих процессоров, и как следствие, перегрузку одной (или нескольких) адресных линий в случае Z0840008, в результате чего неверно срабатывает селектор окна DOS.
Хотя формальная логика подсказывает что более новый и более высокоскоростной (8мгц) Z0840008 должен иметь большую нагрузочную способность выходов...
Сегодня добрался до осцилографа. Начав тут проверять какие адресные линии косячат. Короче ставлю на щуп на адрес A11, бац работает. Убираю не работает. Беру емкость на 20пф ставлю на землю. Бац работает.
Тут меня смутило. То ли проц всетаки подгорел во время моих глумлений, либо косяк в плате(дефект дорожки). Завтра попробую еще такой проц поставить.
Сегодня добрался до осцилографа. Начав тут проверять какие адресные линии косячат. Короче ставлю на щуп на адрес A11, бац работает. Убираю не работает. Беру емкость на 20пф ставлю на землю. Бац работает.
Тут меня смутило. То ли проц всетаки подгорел во время моих глумлений, либо косяк в плате(дефект дорожки). Завтра попробую еще такой проц поставить.
думаю проц.
было у мне такое.
пришлось резать, и через два инвертора ЛН пропускать.
Тока тогда нагрузку держал.
думаю проц.
было у мне такое.
пришлось резать, и через два инвертора ЛН пропускать.
Тока тогда нагрузку держал.
Поставил тошибовский Z84C00-8, работает.
Короче железку я закончил. Может и есть баги, то они пока заныкались. А посему выкладываю весь проект. Я наконец то собрал свою "прелесть". Вроде работает и ладно. Единственое осталось поковырятся в дыр досе, дабы изменить константы работы с дисководом в турбе.
Итак проект завершен, PALки оказались немного тормознутыми, но все же получить удалось турбину. Ох как Диззи обновляет экраны - прелесть.
Спасибо всем!
Закончил разводку своего нового спека(модификация 256Кб на DRAM) - уже уложился за неделю, правда коряво все равно :) получается. Пока будут делать плату, попробую разобраться с ПЗУ ДЫР ДОС . А то как то не с первого раза в турбе диск схватывает, а именно пока диск крутится проблем не. А как только остановится, то сначала он раскручивается, но все циклы ожидания прошли. А так погонял на работе целый день, отработал без глюков.
p.s. Проект лежит до конца месяца, кому интересно смотрите, скачивайте, потом удалю чтобы не засорять место.
Что то я сглючил и переписал свой старый пост. Посему читать нужно предыдущий пост. :confused:
Alexey1979
08.02.2008, 22:22
Короче железку я закончил. :v2_thumb:
А есть какой нить аналог W24512-20 :v2_conf2:
Трудно будет достать.
:v2_thumb:
А есть какой нить аналог W24512-20 :v2_conf2:
Трудно будет достать.
Ее достать не так уж и трудно :) (если поискать) - это кэш память от старых четверок. А так любая статическая память с организацией 64Кбx8. Она может еще называться примерно 61С512. Главное тайминги - не более 20 (возможно 25) нс. Это уж издержки моего огорода с PALками. :D
Тут ковырнул TR-DOS на предмет работы турбы, пока разобрался с начальным стартом, когда возникает сообщение "NO DISK"
Вроде теперь срабатывает - сообщение не вылезает при первоначальной раскрутке диска.
Буду рад, если кто подскажет адреса функций, где есть возможные задержки.
Заметил траблу с атрибутами, посему поправил схему и прошивки(DD6, DD11 и DD15). Также добавил вариант разводки платы под разъемы IDC, для установки платы в стандартный AT MiniTower. Размеры платы срисовывались с 386SX машины. Предыдущий пост содержащий проект удалил, вот архивы с изменениями.
Вот получил я свою прелесть - зеленую платку своего компика. Самому качество изготовления понравилось. Еще есть плата и на 256кб динамике - потом выложу, когда ей начну заниматься.
Буду надеятся что не внес других ошибок пока исправлял недочеты схемы :)
Плата действительно очень аккуратная получилась. Вообще проект суперский. Респект автору, главное не забрасывай:v2_thumb:.
Плата действительно очень аккуратная получилась. Вообще проект суперский. Респект автору, главное не забрасывай:v2_thumb:.
Спасибо за мнение, стараюсь не забрасывать, так как еще есть куда стремиться :), тем более это для души самое то.
Сегодня включил собранную платку - заработала. Время потестировать не было. Посему как протестирую, так выложу фотку собранной платы.
А пока следующая моя модификация, пока еще только будет отлаживаться - ZXM-777 256кб DRAM, турбо 7МГц.
Краткая спецификация. Эмуляция PS2 клавиатуры, PS2 мыши и Dandy джойстика контроллером на плате, память DRAM организацией 256кбх4 от старой видюшки.
Да.... правильно сказано, лучшее враг хорошего. Накосячил я, забыл перенести часть изменений в новую плату, - без мгтфа опять не обошлось :( Обломс. Так что в ранее выложенном проекте есть ошибки, как поправлю - выложу обновленный. Вот так вот, надо обязательно мысли сразу записывать, а не потом вспоминать, что менял.
Вот сфоткал собранную платку на статике. Снизу вид портят несколько проводков, посему только со стороны деталей.
scooby-do
12.04.2008, 00:09
круто!
круто!
Дык я и сам тащусь. Если бы не моя спешка - не было бы проводов с другой стороны. Но благо нашел самый тонкий МГТФ. Не так заметно.
Вот закончил тестирование. Вроде стал работать. Еще осталось приделать мелкий звуковой усилитель, сначала не догадался его прилепить :). Одну особенность заметил, все процы с буквой C (Z84C...) работают без проблем. А вот Z084xxx всячески капризничают - мощи то и не хватает палками рулить то.
Ну да ладно, как усилок прилеплю - выложу исправленный проект.
Тут занялся еще вопросом изучения динамики. Получил такой матрац и все(но тоже какой то он неправильный), хотя по осцилу программа в ПЗУ работает - порты сканирует.
Есть мысли у кого - понимаю что где то накосячил, с ходу не соображу. Пните если что.
balu_dark
14.04.2008, 22:26
А счетчики адресов экрана-считают у тебя?
А счетчики адресов экрана-считают у тебя?
Счетчики я уже проверял по осцилографу - все считатют и сбрасывают как надо.
Error404
15.04.2008, 11:26
Чем обслуживаются PS/2 клава и мышь? И что и где применительно к 777 можно посмотреть об этом?
RAS и WE проверь
Сегодня с утреца, когда голова еще всяким мусором не была забита нашел неправильный сигнал, WE - не так формировался. RAS и CAS еще вчера роверял - все было в норме. Итого все заработало. Мой комп на динамике на 50% тоже фурыкает(не проверял дисковод и саунд). Осталось в мегу запихать клаву, мышь и джойст.
Возвращаясь к компу на статике - прикрутил MC34119(у нас аж два аналога) орет зараза :) - рульный девайс. Дешево и сердито :)
Добавлено через 4 минуты
Чем обслуживаются PS/2 клава и мышь? И что и где применительно к 777 можно посмотреть об этом?
Это применительно только к моим компам типа ZXM-777 и то начиная с последней модификации на динамике. К оригиналу это никаким боком не относится. А так планируется использовать мегу8535(8515).
И наверное уже пора тему переименовать в "Компьютер ZXM-777", так как про оригинал было написано не много и то как над ним извращаться в сторону вживления статики и разгона до турбы. :)
Error404
16.04.2008, 01:39
Осталось в мегу запихать клаву, мышь и джойст.........
Это применительно только к моим компам типа ZXM-777 и то начиная с последней модификации на динамике. К оригиналу это никаким боком не относится. А так планируется использовать мегу8535(8515).
обслуга клавы (PS/2 ?), мыши (PS/2 ?) и джойстика самописная или используются какие-то открытые исходники? 8535 - 16 МГЦ, т.е. схема будет использовать WAIT?
обслуга клавы (PS/2 ?), мыши (PS/2 ?) и джойстика самописная или используются какие-то открытые исходники? 8535 - 16 МГЦ, т.е. схема будет использовать WAIT?
Джойстик точно самописный будет - так от Dandy, вроде готового эмулятора не было. Он будет эмулироваться в Kempston джойстик
А клаву и мышь возможно 50x50, идейкам всеравно и воспользуюсь какими нибудь умными, а писать самому придется :). Частота 14МГц - в моем компе кварц один. Для Waitа выход есть, а там поэкспеременитрую.
Сегодня руки дошли до палкодера от NedoPC.
Что же с уверенностью могут сказать - работает в связке с моим компом.
Вот маленький скриншотик с тв тюнера(на телеке думаю тоже будет работать)
P.S. на днях выложу обновленный проект со статикой.
P.S.S Ewgeny7 Просьба переименовать тему на "Компьютер ZXM-777" Я думаю так будет правильнее.
scooby-do
16.04.2008, 23:33
Даа, круто.. нету слов, потому сижу молчу и тихо читаю)
Error404
17.04.2008, 12:11
Вот сфоткал собранную платку на статике. Снизу вид портят несколько проводков, посему только со стороны деталей.
А где изготавливал плату? Какой размер платы, сколько штук делал и сколько за это ободрали?
А где изготавливал плату? Какой размер платы, сколько штук делал и сколько за это ободрали?
Изготавливал все там же, "Резонит", заказывал по 2 платы со статикой и динамикой. Обошлось это все - 600 руб за плату = 2400руб(с доставкой до Ленинградского вокзала).
Размеры платы 220x170мм. На вопрос почему такая большая - я не профессиональный схемотехник, я любитель.
Итак вроде оформил ревизию 02 на "ZXM-777 128Kb Turbo". Буду надеятся, что не забыл внести все изменения. А посему вот проектик. Кому надо смотрите, скачивайте - проект будет лежать до конца месяца.
Во первых выражаю благодарность модератору, тема благополучно переименовалась, спасибо.
Ну и во вторых на суд кидаю фотку собранной платы на динамике "ZXM-777 256Kb DRAM Turbo". Количество микрух сократилось до 40(вместо 44), с увеличением возможностей. К палкам ATF16V8 прибавились еще и ATF20V8(PALCE20V8). Осталось его чуток подотладить и собственно будет выложен проект на всеобщее обозрение. :)
Посмотрев на спецфикацию портов от BC, выудил, так сказать застолбил за собой портик с адресом #1FDF - порт чтения значения "Dandy" джойстика. Ну и собственно эмулируется это и в порт #1F. Если никто особо не против - я его забрал :)
Итак эмуляция джойстика завершена(отлаживаю), вот страничка спецификации о порте джойстика.
В принипе я не настаиваю на счет именно этого порта, и могу забрать любой свободный из #XXDF; :)
Example626
21.10.2008, 06:05
Mick, вопрос возник по первому варианту.
Почему у тебя в схеме коммутации адресов памяти используются мультиплексоры с тактовыми входами?
Для организации какой-то задержки? Ведь если процессор выставит адрес, то на шину памяти он попадёт с задержкой, если RAS/ сдвинут по фазе. А если не сдвинут, то он может защёлкнуться раньше, чем адрес сформируется процессором.
То же самое и с видеоадресацией.
Поясни, пожалуйста.
PS Обратил внимание, что тот же RAS/ используется и для тактирования самого процессора. В общем, немного покумекав, подумал, что эта задержка (на полтакта) особо не повредит. Но для чего-то это было надо...
Да - и ещё графическая ошибка:
У тебя в схеме вывод CLC процессора обозначен как логический, к тому же активный по низкому уровню. По-моему, он тактовый и положительный.
И ещё - в даташите по Z80 указано, что вход CLC при управлении от ТТЛ-схемы должен быть подтянут к +5В резистором на 330 Ом. Я что-то не нашёл его у тебя.
И возник ещё вопрос (хотя это уже, наверное, к знатокам Z80) - так как вход CLC процессора является однофазным и тактуется положительным перепадом, используется ли в нём отрицательный перепад этого же сигнала? И если да, то для чего.
Интерес вызван в связи с тем, что планируется возможность использовать тактирование несимметричными импульсами. Как это повлияет на работу процессора?
Mick, вопрос возник по первому варианту.
Почему у тебя в схеме коммутации адресов памяти используются мультиплексоры с тактовыми входами?
Для организации какой-то задержки? Ведь если процессор выставит адрес, то на шину памяти он попадёт с задержкой, если RAS/ сдвинут по фазе. А если не сдвинут, то он может защёлкнуться раньше, чем адрес сформируется процессором.
То же самое и с видеоадресацией.
Поясни, пожалуйста.
Вообщем так, мультиплексоры типа КП13 применены из-за более длительном формировании адресов памяти выше 64кб. Т.е. если спек был бы 48 то хватило бы поставить КП11. А так необходимо как бы зафиксировать адрес. А так как архитектура похожа на стандартные спеки с объединеной памятью, поэтому и адреса видеопамяти фиксируются теми же мультиплексорами.
PS Обратил внимание, что тот же RAS/ используется и для тактирования самого процессора. В общем, немного покумекав, подумал, что эта задержка (на полтакта) особо не повредит. Но для чего-то это было надо...
Да - и ещё графическая ошибка:
У тебя в схеме вывод CLC процессора обозначен как логический, к тому же активный по низкому уровню. По-моему, он тактовый и положительный.
И ещё - в даташите по Z80 указано, что вход CLC при управлении от ТТЛ-схемы должен быть подтянут к +5В резистором на 330 Ом. Я что-то не нашёл его у тебя.
Как я тебе писал, схема может содержать ошибки, потому как ее не трассировал. Сначало я перерисовал схему от ZX-777, потом стал ее редактировать, когда ставил опыты. Тот оригинальный сигнал RAS/ подавался на ножку процессора через повторитель и назывался CLKZ/(кстати он остался и подятнут к питанию). Посему конечно это опечатка. А сдвинуты на полтакта из-за того что оригинальная схема была на динамической памяти и соответсвенно этот сигнал был RAS/ а прямой(не сдвинутый) был CAS/ Собственно так и оставил, хотя помоему там при изменении сигналов на прямой - комп стабильностью не обладал. Возможно(я склонен к такому мнению) сдвиг на полтакта дает возможность зафиксировать устоявшиеся(правильные, стабильные) адреса.
И возник ещё вопрос (хотя это уже, наверное, к знатокам Z80) - так как вход CLC процессора является однофазным и тактуется положительным перепадом, используется ли в нём отрицательный перепад этого же сигнала? И если да, то для чего.
Интерес вызван в связи с тем, что планируется возможность использовать тактирование несимметричными импульсами. Как это повлияет на работу процессора?
Насколько я помню нессиметричными импульсами подается сигнал в Scorpionе ZS256, по крайней мере в турбе. Хотя могу и ошибиться.
Example626
22.10.2008, 19:23
Не совсем понятно, почему КП11 на той же статике применить нельзя. Но это частности - КП13 действительно более чётко должен фиксировать адрес. Главное, чтобы это вовремя происходило - такт RAS/ как раз, наверное, подходит.
И ещё - думаю, как можно обойтись одним корпусом в буфере данных ОЗУ. Там два - на вход и на выход. Надо что-то типа АП6 туда придумать.
Не совсем понятно, почему КП11 на той же статике применить нельзя.
Объясню по другому. Я тоже сначала думал так, но не совсем так оказалось. Если бы мы делали 48кб вариант, то этих мультиплексоров хватило бы. А вот в 128 версии, когда старшие адреса(A14 и A15) участвуют в формировании адреса страниц памяти, то тут начинаются гонки. Видимо это заметно когда запускаешь демы, которые сильно рулит страницами - как правило вылет проги :)
Если же сравнивать с динамической памятью, то у нее тоже есть регистры адреса, находящиеся внутри микросхемы).
Добавлено через 3 минуты
И ещё - думаю, как можно обойтись одним корпусом в буфере данных ОЗУ. Там два - на вход и на выход. Надо что-то типа АП6 туда придумать.
В стандартном варианте на выход данные необходимо тоже защелкивать, так как тактовки команд неодинаковы, то можешь спокойно попасть на чтение информации из видеопамяти, а не откуда ты хочешь. На запись можешь АП6 или АП5 ставить спокойно. У меня ИР22 на запись выполняет роль буфера, ну и чтобы не плодить номиналы :)
Example626
23.10.2008, 04:25
Если бы мы делали 48кб вариант, то этих мультиплексоров хватило бы. А вот в 128 версии, когда старшие адреса(A14 и A15) участвуют в формировании адреса страниц памяти, то тут начинаются гонки.
Ну на Pentagon-128 справляются КП11.
В стандартном варианте на выход данные необходимо тоже защелкивать, так как тактовки команд неодинаковы, то можешь спокойно попасть на чтение информации из видеопамяти, а не откуда ты хочешь.
Вот именно - поэтому и надо подумать, как этого избежать.
Ну на Pentagon-128 справляются КП11.
Ты про динамику прочитал что я писал - там уже внутри регистры. И при применении динамики нет необходимости в дополнительной фиксации адресов.
Вот именно - поэтому и надо подумать, как этого избежать.
Для применения КП11 и одного буфера данных этого необходимо изменить подход к доступу к памяти. Стандартный не подойдет.
обслуга клавы (PS/2 ?), мыши (PS/2 ?) и джойстика самописная или используются какие-то открытые исходники? 8535 - 16 МГЦ, т.е. схема будет использовать WAIT?
Вот руки добрались, накатал поодержку клавы - без WAIT не обойтись(увы), особенности обработки прерываний меги.
Ну и то нормально, не надо искать старую клаву. Когда закончу весь проект - выложу на обозрение.
Ура машинка на динамике заработала. :)
Только вопрос - командер Ковалевского(версия 3.03) определяет память поключенную через порт 1FFDh или нет? А то пишет мне, что 128кб, а у меня то 256кб.
Если нет, киньтесь в меня прогой которая проверяет память через порт 1FFDh
Сегодня проверял эмуляцию кемпстона джойстика используя джойстик от Денди. Все знают что в Денди есть дополнительные кнопки, которые как бы для Спека никак не участвуют. Но вот посетила меня мысль, а что если выделить порт переназначения этих кнопок, т.е. если в игре присутсвуют дополнительные кнопки(выбор предметов, как в Диззи или еще какие), то можно на них назначить иммитацию нажатие клавиш. В результате выигрыш - не надо тянуться к клаве, а наслаждаться игрой с одним джойстом. Для этого надо будет запустить перед игрой программу переназначальщик :)
По крайней мере я в своем клоне такую возможность попробую сделать.
Схему чёта не нашол, всю тему перелопатил.
Схему чёта не нашол, всю тему перелопатил.
А что ты хотел найти?
А что ты хотел найти?
Хотелось бы посмотреть на схемку ZXM-777 в SRAM варианте, или если есть возможность то обе.
Хотелось бы посмотреть на схемку ZXM-777 в SRAM варианте, или если есть возможность то обе.
Правда непонятно в каких двух вариантах ты хотел увидеть, но чтобы больше не возвращатся к этив вопросам выложил в первом посте две ссылки на схемы.
1) Компьютер ZX-777 c 128кб SRAM памяти. Предупреждаю сразу что проверку на ошибки схемы, кроме диспечера памяти, не проверялось.
2) Компьютер ZXM-777 с 128кб SRAM памяти и турбо режимом. Здесь применены микросхемы программируемой логики ATF16V8. Прошивки прилагаются.
Можно вопросик по схеме:
1) Компьютер ZX-777 c 128кб SRAM памяти.
Элемент DD67.1 это какая то задержка чтоли?
Добавлено через 13 минут
Попробовал просимулировать, по времянкам одно и тоже получается, что с DD67.1, что без него напрямую.
Можно вопросик по схеме:
Элемент DD67.1 это какая то задержка чтоли?
Добавлено через 13 минут
Попробовал просимулировать, по времянкам одно и тоже получается, что с DD67.1, что без него напрямую.
Тут помоему я не о том написал, сейчас посмотрю тот элемент, пардонте.
Посмотрел, этот элемент из оригинальной схемы. Причину постановки авторами я тебе вряд ли скажу. Возможно задержка была необходима для корректоной работы синхрогенератора видео.
Создал страничку с информацией по моим наработкам в данном направлении http://www.micklab.narod.ru/ZXM777.htm
Так сказать, вдруг кто захочет посмотреть.
Mick, на спеке 15 цветов, а не 16. То же касается и странички про Феникс.
Mick, на спеке 15 цветов, а не 16. То же касается и странички про Феникс.
Ошибся малость, уже поправил.
По просьбе трудящихся сделал гербер файлы печатной платы своего компьютера ZXM-777. Но так как ревизию 01 я когда то сам собирал, а вот ревизию 02 не стал делать, так как там мало изменений, то герберы будут именно 02 ревизии. С файлами можно ознакомится на странице http://micklab.ru/My%20Computer/ZXM777.htm
Кроме того снимается так называемый копирайт, тоесть производите кто хотите, сообщать мне об это не надо.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot