nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 08:54



Reply to topic  [ 84 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next
Robotron EC1834 
Author Message
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Mixa64 wrote:
Но если команда IN или OUT 16-разрядная, то внешний обмен также 16-разрядный, без преобразования в два 8-разрядных цикла.

Вот мы тоже к этому пришли. Теперь пытаемся понять, как это починить.

Проанализировал работу 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 бит в родном слоте.


Attachments:
1.png
1.png [ 43.55 KiB | Viewed 8107 times ]


Last edited by Vic3Dexe on 25 Sep 2018 03:45, edited 1 time in total.

25 Sep 2018 03:28
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Чес гря, меня очень смущает простота решения. Что помешало создателям этого роботрона сделать то же самое?

Наверно имеет смысл поднять D14 на панельку, дабы не резать дороги, и ноги 10, 11 отогнуть.
Элемент ИЛИ есть свободный у D37 (13 нога на +5 сидит, можно оторвать, наверное).


25 Sep 2018 03:41
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Хм, интересно, действительно вроде не сложно. Попробую. На материнке кстати есть SPARE элементы, в одном из углов платы - три посадочных места под DIP. Да, дорожки не буду резать, либо подниму на панельку, либо ножки отогну. Спасибо, будем пробовать.

_________________
https://t.me/tronix_blog


25 Sep 2018 03:46
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 459
Location: Москва
Reply with quote
А регистр D24, открываемый на локальную шину AD0-7 от D11, в этих самых искусственных 8-разрядных циклах не участвует? Не анализировал, но выглядит подозрительно.


25 Sep 2018 04:22
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Mixa64 wrote:
А регистр D24, открываемый на локальную шину AD0-7 от D11, в этих самых искусственных 8-разрядных циклах не участвует? Не анализировал, но выглядит подозрительно.

Точно. Пропустил.
Регистр хранит младшую половинку (т.е. результат первого чтения шины), и открывается "в проц" при чтении старшей половинки, которая из D22 попадает куда следует.
Таким образом, проц видит целое слово.

Значит, нужно вместо MEMR подать на D11.10 ~(/MEMR & /XIOR). Ну или MEMR | ~/XIOR.


25 Sep 2018 06:36
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Сегодня спаял доработку по схеме 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, пускай и с одной видеокартой, но получили :kruto:

PS: МГТФ потом уложу покрасивше, просто не думал, что с первого раза стартанет :mrgreen:


Attachments:
P81006-154417_измен.размер.jpg
P81006-154417_измен.размер.jpg [ 538.94 KiB | Viewed 7991 times ]
P81006-154408_измен.размер.jpg
P81006-154408_измен.размер.jpg [ 514.96 KiB | Viewed 7991 times ]

_________________
https://t.me/tronix_blog
06 Oct 2018 06:19
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Не возжелал гроботрон работать с 8037 DMA. Продолжительно пищит спикером и все.

_________________
https://t.me/tronix_blog


06 Oct 2018 08:43
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Поздравляю!
Надеюсь, на D32.13 по-прежнему /XMEMW приходит? Там не нужно добавлять сигналы IO, как я думал изначально, это сигнал от DMA. За разворот D22 при процовых обменах отвечает DT/R, и его достаточно.


06 Oct 2018 23:37
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Vic3Dexe wrote:
Надеюсь, на D32.13 по-прежнему /XMEMW приходит?


Да, там я не трогал, там только /XMEMW.

_________________
https://t.me/tronix_blog


06 Oct 2018 23:43
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Tronix wrote:
Не возжелал гроботрон работать с 8037 DMA. Продолжительно пищит спикером и все.

Вовремя не увидел - сразу сказал бы, что можно и не пробовать, для начала программирование контроллера совсем другое.


07 Oct 2018 00:14
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
По не заработавшим картам - надо смотреть анализатором, что им не нравится.
Начать, например, с PVGA1A-JK, она хотя бы что-то показывает.
Выставить режим и попробовать выполнить запись в видеопамять, смотреть D0..D7, /MEMR на шине.

Хотя... стоп, причем тут вообще память? Память и так работала же нормально...

Да, еще такой момент - 8 битные обмены не сломались?


07 Oct 2018 00:21
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Vic3Dexe wrote:
Хотя... стоп, причем тут вообще память? Память и так работала же нормально...

Да, еще такой момент - 8 битные обмены не сломались?


Нет, не сломались. Видеокарточка EGA на чипе CityGate D10 как раз 8-битными обменами и общается, поэтому и заработала прошлый раз без доработок. Работает и сейчас. Так же работает XT-IDE в режиме "Compatible mode", то есть так же 8-битными обменами (который и раньше работал).

Посмотреть могу, но действительно не очень ясно что смотреть. Память то и раньше работала, и сейчас видимо работает. Потому что работает расширитель памяти 384Kb стандартный роботроновский. Так же работает новодельная плата Lo-tech EMS 2Mb. Она то точно восьмибитная, полюбому окно в 64Кб маппит, и работает нормально (тесты EMS проходит, да тот же CheckIt нормально EMS тестирует без ошибок).

_________________
https://t.me/tronix_blog


07 Oct 2018 00:40
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
newold86 wrote:
Вовремя не увидел - сразу сказал бы, что можно и не пробовать, для начала программирование контроллера совсем другое.


Я подозревал -) Но все-таки попробовал, дел то на 5 минут на панельку поднять... Хотел было занопить проверку DMA в биосе, где он там проц вешает, но потом понял что идея так себе. Если уж по хорошему, то нужно наверное брать инициализацию из XT BIOS.

_________________
https://t.me/tronix_blog


07 Oct 2018 00:45
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Ладно, тогда давай думать логически.
Мусор в атрибутах был и остался, значит он не связан с IO. Поэтому нужно понять откуда этот мусор лезет - либо его туда пишет проц (т.е. мусор уже на шине), либо проблема в кривой инициализации карты, и при записи слова сама карта кладет в 1 плейн что попало.
Поэтому таки неплохо было бы посмотреть шину.
Как вариант - почитать все регистры VGA, а т.к. выводить их некуда (нифига не видно) - сложить в файл. Затем сравнить с эталоном. CRT можно не читать - развертка в норме. Нужны ATC, GC, ну и синхронизатор, он тоже там завязан.

И кстати, судя по скрину на первой странице, там мусор и в символах, вроде экран пробелами должен заполняться, а не вот этим.


07 Oct 2018 01:34
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Vic3Dexe wrote:
И кстати, судя по скрину на первой странице, там мусор и в символах, вроде экран пробелами должен заполняться, а не вот этим.


Согласен, значит и в символах мусор. Вообщем, на скорую руку прикрутил кварцевый генератор на 48МГц к CPLD, таким образом я начинаю грабить сигналы с иса по какому-либо тригеру. За один период CLK я записываю в SRAM пять байт, и вроде должен успеть это сделать - 8Мгц * 5 = 40 МГц. Что-то там еще у Котельникова было на этот счет, только напрочь не помню что. Но вроде общий смысл - "хочешь без джитера грабить - множь частоту на три, не ошибешься." Ну да ладно, это на скорую руку и вроде с простеньким тестом более менее работает:

mov ax,55AAh
mov dx,03d0h
out dx,ax

Соответственно начинаю грабить данные по записи в порт 0x3d0. Получилась такая картинка:

 PulseView
Attachment:
logik123.png
logik123.png [ 104.42 KiB | Viewed 7936 times ]


Внизу Parallel20 - это декодированная ША, Parallel - ШД. Вроде нормально.
Вопрос теперь на что поставить тригер? На запись в 0xB8000?

_________________
https://t.me/tronix_blog


07 Oct 2018 03:05
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 84 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next

Who is online

Users browsing this forum: No registered users and 8 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

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.