Robotron EC1834

16-битные ПЦ-совместимые компьютеры с процессорами 8086/8088/80286 работающие под управлением ДОС

Moderator: Shaos

Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: Robotron EC1834

Post by Vic3Dexe »

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 бит в родном слоте.
You do not have the required permissions to view the files attached to this post.
Last edited by Vic3Dexe on 25 Sep 2018 03:45, edited 1 time in total.
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: Robotron EC1834

Post by Vic3Dexe »

Чес гря, меня очень смущает простота решения. Что помешало создателям этого роботрона сделать то же самое?

Наверно имеет смысл поднять D14 на панельку, дабы не резать дороги, и ноги 10, 11 отогнуть.
Элемент ИЛИ есть свободный у D37 (13 нога на +5 сидит, можно оторвать, наверное).
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: Robotron EC1834

Post by Tronix »

Хм, интересно, действительно вроде не сложно. Попробую. На материнке кстати есть SPARE элементы, в одном из углов платы - три посадочных места под DIP. Да, дорожки не буду резать, либо подниму на панельку, либо ножки отогну. Спасибо, будем пробовать.
Mixa64
Doomed
Posts: 481
Joined: 25 Aug 2009 07:02
Location: Москва

Re: Robotron EC1834

Post by Mixa64 »

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

Re: Robotron EC1834

Post by Vic3Dexe »

Mixa64 wrote:А регистр D24, открываемый на локальную шину AD0-7 от D11, в этих самых искусственных 8-разрядных циклах не участвует? Не анализировал, но выглядит подозрительно.
Точно. Пропустил.
Регистр хранит младшую половинку (т.е. результат первого чтения шины), и открывается "в проц" при чтении старшей половинки, которая из D22 попадает куда следует.
Таким образом, проц видит целое слово.

Значит, нужно вместо MEMR подать на D11.10 ~(/MEMR & /XIOR). Ну или MEMR | ~/XIOR.
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: Robotron EC1834

Post by Tronix »

Сегодня спаял доработку по схеме 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:
You do not have the required permissions to view the files attached to this post.
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: Robotron EC1834

Post by Tronix »

Не возжелал гроботрон работать с 8037 DMA. Продолжительно пищит спикером и все.
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: Robotron EC1834

Post by Vic3Dexe »

Поздравляю!
Надеюсь, на D32.13 по-прежнему /XMEMW приходит? Там не нужно добавлять сигналы IO, как я думал изначально, это сигнал от DMA. За разворот D22 при процовых обменах отвечает DT/R, и его достаточно.
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: Robotron EC1834

Post by Tronix »

Vic3Dexe wrote: Надеюсь, на D32.13 по-прежнему /XMEMW приходит?
Да, там я не трогал, там только /XMEMW.
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: Robotron EC1834

Post by newold86 »

Tronix wrote:Не возжелал гроботрон работать с 8037 DMA. Продолжительно пищит спикером и все.
Вовремя не увидел - сразу сказал бы, что можно и не пробовать, для начала программирование контроллера совсем другое.
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: Robotron EC1834

Post by Vic3Dexe »

По не заработавшим картам - надо смотреть анализатором, что им не нравится.
Начать, например, с PVGA1A-JK, она хотя бы что-то показывает.
Выставить режим и попробовать выполнить запись в видеопамять, смотреть D0..D7, /MEMR на шине.

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

Да, еще такой момент - 8 битные обмены не сломались?
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: Robotron EC1834

Post by Tronix »

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

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

Посмотреть могу, но действительно не очень ясно что смотреть. Память то и раньше работала, и сейчас видимо работает. Потому что работает расширитель памяти 384Kb стандартный роботроновский. Так же работает новодельная плата Lo-tech EMS 2Mb. Она то точно восьмибитная, полюбому окно в 64Кб маппит, и работает нормально (тесты EMS проходит, да тот же CheckIt нормально EMS тестирует без ошибок).
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: Robotron EC1834

Post by Tronix »

newold86 wrote: Вовремя не увидел - сразу сказал бы, что можно и не пробовать, для начала программирование контроллера совсем другое.
Я подозревал -) Но все-таки попробовал, дел то на 5 минут на панельку поднять... Хотел было занопить проверку DMA в биосе, где он там проц вешает, но потом понял что идея так себе. Если уж по хорошему, то нужно наверное брать инициализацию из XT BIOS.
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: Robotron EC1834

Post by Vic3Dexe »

Ладно, тогда давай думать логически.
Мусор в атрибутах был и остался, значит он не связан с IO. Поэтому нужно понять откуда этот мусор лезет - либо его туда пишет проц (т.е. мусор уже на шине), либо проблема в кривой инициализации карты, и при записи слова сама карта кладет в 1 плейн что попало.
Поэтому таки неплохо было бы посмотреть шину.
Как вариант - почитать все регистры VGA, а т.к. выводить их некуда (нифига не видно) - сложить в файл. Затем сравнить с эталоном. CRT можно не читать - развертка в норме. Нужны ATC, GC, ну и синхронизатор, он тоже там завязан.

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

Re: Robotron EC1834

Post by Tronix »

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

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

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

 PulseView
logik123.png

Внизу Parallel20 - это декодированная ША, Parallel - ШД. Вроде нормально.
Вопрос теперь на что поставить тригер? На запись в 0xB8000?
You do not have the required permissions to view the files attached to this post.