|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Вот мы тоже к этому пришли. Теперь пытаемся понять, как это починить. Проанализировал работу bus steering (D-триггеры). Оно запускается при наличии трех условий: - имеется обмен с памятью (/MEMR = 0 или /MEMW = 0 на D32.4.5.6), назовем сигнал MEMRW по аналогии - это не RAM на матери (т.е. за 640к) и она не умеет обмен словом (/MEMCS16 = 1) на D88.8.9.10, пусть будет MEMBYTE - обмен именно словом (VA0 = /BHE = 0 на D33.1.2.3), пусть будет CPUWORD Тогда на D34.4 появится запускающий фронт. А вот на D59.10 появляется фронт сброса при подъеме /MEMR или /MEMW. IORW, который подмешивается на D7 там нужен для обычных байтовых обменов, т.к. D22 также отвечает за передачу байта со старшей половины в младшую при обмене по нечетному адресу. Суммируя: - нам нужно обеспечить фронт на D34.4 при ((MEMRW & MEMBYTE) | (IORW & /IOCS16)) & CPUWORD - нам нужно обеспечить фронт на D59 при (MEMRW | IORW) Для простоты пока предположим, что /IOCS16 = 1. Если делать полноценный /IOCS16, то там чуть сложнее, но тоже решаемо. При текущей схеме все IO-обмены с картами станут 8-битными, даже если карта и умеет 16 бит в родном слоте.
Last edited by Vic3Dexe on 25 Sep 2018 03:45, edited 1 time in total.
|
25 Sep 2018 03:28 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Чес гря, меня очень смущает простота решения. Что помешало создателям этого роботрона сделать то же самое?
Наверно имеет смысл поднять D14 на панельку, дабы не резать дороги, и ноги 10, 11 отогнуть. Элемент ИЛИ есть свободный у D37 (13 нога на +5 сидит, можно оторвать, наверное).
|
25 Sep 2018 03:41 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Хм, интересно, действительно вроде не сложно. Попробую. На материнке кстати есть SPARE элементы, в одном из углов платы - три посадочных места под DIP. Да, дорожки не буду резать, либо подниму на панельку, либо ножки отогну. Спасибо, будем пробовать.
|
25 Sep 2018 03:46 |
|
|
Mixa64
Doomed
Joined: 25 Aug 2009 07:02 Posts: 459 Location: Москва
|
А регистр D24, открываемый на локальную шину AD0-7 от D11, в этих самых искусственных 8-разрядных циклах не участвует? Не анализировал, но выглядит подозрительно.
|
25 Sep 2018 04:22 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Точно. Пропустил. Регистр хранит младшую половинку (т.е. результат первого чтения шины), и открывается "в проц" при чтении старшей половинки, которая из D22 попадает куда следует. Таким образом, проц видит целое слово. Значит, нужно вместо MEMR подать на D11.10 ~(/MEMR & /XIOR). Ну или MEMR | ~/XIOR.
|
25 Sep 2018 06:36 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Сегодня спаял доработку по схеме Vic3Dexe. Внезапно, заработало с первого раза. Начал работать XT-IDE в режиме Hi-Speed, завелась EGA видеокарта на чипе VC-001, завелась VGA на чипе ACUMOS AVGA1. То есть обмен словами с портами IO пошел. Но не завелась Trident TVGA9000C с доработанным ALE. Так же не завелась Realtek RTG3105E. Ну да ладно, может быть им какой-нибудь DMA не нравится 8257 вместо обычного 8237. Я правда не вкуриваю в чем собственно разница, кроме трансферов по 16Кб максимум у 8257 против 64Кб у 8237 (вроде бы). Ну да ладно, можно попробовать его на панельку поднять и заменить на 8237, благо PIN-to-PIN. Только бы BIOS гроботроновский не взбрыкнул... А, еще абсолютно не поменялось никак поведение ISA-8 видеокарты PVGA1A-JK. Как был мусор в атрибутах, так и остался (фото в первом посте этой темы). Но в принципе, я доволен. Все-таки VGA, пускай и с одной видеокартой, но получили PS: МГТФ потом уложу покрасивше, просто не думал, что с первого раза стартанет
|
06 Oct 2018 06:19 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Не возжелал гроботрон работать с 8037 DMA. Продолжительно пищит спикером и все.
|
06 Oct 2018 08:43 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Поздравляю! Надеюсь, на D32.13 по-прежнему /XMEMW приходит? Там не нужно добавлять сигналы IO, как я думал изначально, это сигнал от DMA. За разворот D22 при процовых обменах отвечает DT/R, и его достаточно.
|
06 Oct 2018 23:37 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Да, там я не трогал, там только /XMEMW.
|
06 Oct 2018 23:43 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Вовремя не увидел - сразу сказал бы, что можно и не пробовать, для начала программирование контроллера совсем другое.
|
07 Oct 2018 00:14 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
По не заработавшим картам - надо смотреть анализатором, что им не нравится. Начать, например, с PVGA1A-JK, она хотя бы что-то показывает. Выставить режим и попробовать выполнить запись в видеопамять, смотреть D0..D7, /MEMR на шине.
Хотя... стоп, причем тут вообще память? Память и так работала же нормально...
Да, еще такой момент - 8 битные обмены не сломались?
|
07 Oct 2018 00:21 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Нет, не сломались. Видеокарточка EGA на чипе CityGate D10 как раз 8-битными обменами и общается, поэтому и заработала прошлый раз без доработок. Работает и сейчас. Так же работает XT-IDE в режиме "Compatible mode", то есть так же 8-битными обменами (который и раньше работал). Посмотреть могу, но действительно не очень ясно что смотреть. Память то и раньше работала, и сейчас видимо работает. Потому что работает расширитель памяти 384Kb стандартный роботроновский. Так же работает новодельная плата Lo-tech EMS 2Mb. Она то точно восьмибитная, полюбому окно в 64Кб маппит, и работает нормально (тесты EMS проходит, да тот же CheckIt нормально EMS тестирует без ошибок).
|
07 Oct 2018 00:40 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Я подозревал -) Но все-таки попробовал, дел то на 5 минут на панельку поднять... Хотел было занопить проверку DMA в биосе, где он там проц вешает, но потом понял что идея так себе. Если уж по хорошему, то нужно наверное брать инициализацию из XT BIOS.
|
07 Oct 2018 00:45 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Ладно, тогда давай думать логически. Мусор в атрибутах был и остался, значит он не связан с IO. Поэтому нужно понять откуда этот мусор лезет - либо его туда пишет проц (т.е. мусор уже на шине), либо проблема в кривой инициализации карты, и при записи слова сама карта кладет в 1 плейн что попало. Поэтому таки неплохо было бы посмотреть шину. Как вариант - почитать все регистры VGA, а т.к. выводить их некуда (нифига не видно) - сложить в файл. Затем сравнить с эталоном. CRT можно не читать - развертка в норме. Нужны ATC, GC, ну и синхронизатор, он тоже там завязан.
И кстати, судя по скрину на первой странице, там мусор и в символах, вроде экран пробелами должен заполняться, а не вот этим.
|
07 Oct 2018 01:34 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Согласен, значит и в символах мусор. Вообщем, на скорую руку прикрутил кварцевый генератор на 48МГц к CPLD, таким образом я начинаю грабить сигналы с иса по какому-либо тригеру. За один период CLK я записываю в SRAM пять байт, и вроде должен успеть это сделать - 8Мгц * 5 = 40 МГц. Что-то там еще у Котельникова было на этот счет, только напрочь не помню что. Но вроде общий смысл - "хочешь без джитера грабить - множь частоту на три, не ошибешься." Ну да ладно, это на скорую руку и вроде с простеньким тестом более менее работает: mov ax,55AAh mov dx,03d0h out dx,ax Соответственно начинаю грабить данные по записи в порт 0x3d0. Получилась такая картинка: PulseView Внизу Parallel20 - это декодированная ША, Parallel - ШД. Вроде нормально. Вопрос теперь на что поставить тригер? На запись в 0xB8000?
|
07 Oct 2018 03:05 |
|
|
Who is online |
Users browsing this forum: No registered users and 11 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|