А почему, если адаптеры совместимые, не взять родные BIOS'ы ???Vic3Dexe wrote:В данный момент дописываю видео-биос (int 10h).
8086+FPGA
Moderator: Shaos
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: Реальный 8086/88 + FPGA
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
8086+FPGA
И держать их 3 штуки почти одинаковых в памяти? Тем более в ега-биосе МОРЕ багов. Обнаруживаются простым сравнением с VGA-биосом. Тем более, что они рассчитаны на возможную установку вторым номером CGA/MDA. Да плюс ненужные тесты памяти и отдельных чипов ега. Зачем это все себе тащить?newold86 wrote: А почему, если адаптеры совместимые, не взять родные BIOS'ы ???
Last edited by Vic3Dexe on 16 Feb 2016 16:48, edited 1 time in total.
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: Реальный 8086/88 + FPGA
Насколько я понял, при создании адаптеров пошли по пути не моделирования функциональности (как у меня в CGA), а по пути (практически) полного воссоздания внутренней структуры адаптеров ? Если так, откуда брали подробную информацию по всему этому ?
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
8086+FPGA
Нет, я как раз повторял функционал, но кое-где для этого понадобилось понять структуру карты.
В сети полно инфы по организации EGA/VGA (оттуда и брал), но стоит копнуть чуть глубже - начинаются нестыковки. Поэтому месяца два ушло просто на понимание как оно работает до регистров включительно. Единственный регистр, который я не знаю как оформить - byte panning в CRT-контроллере у VGA. Ну и фиг с ним.
В сети полно инфы по организации EGA/VGA (оттуда и брал), но стоит копнуть чуть глубже - начинаются нестыковки. Поэтому месяца два ушло просто на понимание как оно работает до регистров включительно. Единственный регистр, который я не знаю как оформить - byte panning в CRT-контроллере у VGA. Ну и фиг с ним.
Last edited by Vic3Dexe on 16 Feb 2016 16:48, edited 1 time in total.
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
8086+FPGA
Подумал, что будет нелишним список литературы. Не упоминаю тут всякие взаимокопипасты разных Фроловых и пр. википедий. Неинтересно и очевидно. Только хардкор 
Во-1 первоисточники:
- IBM EGA tech ref
Несмотря на приличное кол-во ошибок и иногда просто бессмысленные фразы, содержит сокровище, а именно схему электрическую принципиальную оригинального EGA. Оттуда я почерпнул бОльшую часть инфы. На той же страничке можно стащить аналогичные доки (со схемами!) на CGA и MDA.
- IBM VGA/XGA tech ref
Увы, без схемы, да она и не помогла бы по причине изначальной однокристалльности VGA. Описания регистров похожи на таковые из егашного мануала - расплывчато, но если подумать...
Во-2 по мотивам:
- VGA Programmers Master Reference Manual by Andrew Scott
Документ на 90% состоит из воды, причем первая половина - на 100% (ее можно не читать вообще). Зато вторая половина дает представление о некоторых неочевидных моментах (сдвиговые регистры в GC как пример). Впрочем, тоже не без бредятины.
- INTRODUCTION TO MODE X by Robert Schmidt
Несмотря на всю попсовость (а также наличие ОЧЕНЬ серьезной ошибки) сей опус, точнее его картинки, помогли мне повернуть мозги в правильное русло. За что и отмечен.
- О том, почему в CGA-режимах EGA-монитор не покажет 64 цвета.
Многое объясняет, несмотря на непритязательный вид - маст хэв.
Буду дописывать по мере борьбы со склерозом.

Во-1 первоисточники:
- IBM EGA tech ref
Несмотря на приличное кол-во ошибок и иногда просто бессмысленные фразы, содержит сокровище, а именно схему электрическую принципиальную оригинального EGA. Оттуда я почерпнул бОльшую часть инфы. На той же страничке можно стащить аналогичные доки (со схемами!) на CGA и MDA.
- IBM VGA/XGA tech ref
Увы, без схемы, да она и не помогла бы по причине изначальной однокристалльности VGA. Описания регистров похожи на таковые из егашного мануала - расплывчато, но если подумать...
Во-2 по мотивам:
- VGA Programmers Master Reference Manual by Andrew Scott
Документ на 90% состоит из воды, причем первая половина - на 100% (ее можно не читать вообще). Зато вторая половина дает представление о некоторых неочевидных моментах (сдвиговые регистры в GC как пример). Впрочем, тоже не без бредятины.
- INTRODUCTION TO MODE X by Robert Schmidt
Несмотря на всю попсовость (а также наличие ОЧЕНЬ серьезной ошибки) сей опус, точнее его картинки, помогли мне повернуть мозги в правильное русло. За что и отмечен.
- О том, почему в CGA-режимах EGA-монитор не покажет 64 цвета.
Многое объясняет, несмотря на непритязательный вид - маст хэв.
Буду дописывать по мере борьбы со склерозом.
Last edited by Vic3Dexe on 16 Feb 2016 16:48, edited 1 time in total.
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Реальный 8086/88 + FPGA
Вот тут несколько сомнительные сведения... За давностью времени проверять уже смысла нет,Vic3Dexe wrote:- О том, почему в CGA-режимах EGA-монитор не покажет 64 цвета.
хотя всё железо у меня в полной сохранности в кладовке.

На своем 286-м компьютере с EGA-картой наблюдал очень интересные режимы!

Поскольку монитор у меня был в то время - "Электроника 32 ВТЦ 202", то характерные для EGA
режимы разверток он не понимал, а я не стал вмешиваться в его электронику.
На типичных EGA режимах синхронизация срывалась просто, но вот на игре "Поле Чудес"
синхронизация была устойчивой, только часть картинки уходила за экран вниз.

И такой-же режим я наблюдал еще в одном интересном эксперименте. Когда уже я сам
работал на приличной машине под Win 98, я на этой 286-й делал эксперименты по различной
установке Win 3.1, поскольку оказался у меня оригинальный дистрибутив на дискетах.
Так самый интересный эксперимент заключался в том, что на 286-ю машину с EGA-картой
можно поставить Win 95!

Win 95 должна ставиться не из дистрибутива, а как апгрейд Win 3.1 - был такой вариант.
При этом синхронизация на "Электронике 32 ВТЦ 202" устойчивая, но весь низ рабочего стола -
также внизу за экраном вместе с кнопкой "Start".

Если помнить горячие клавиши Win 95, то он даже пытался шевелиться!

того же Проводника приводил к краху системы. А вот Блокнот и Пейнт - тужились поработать,
как, впрочем, и Пасьянс.

P.S. Черт возьми.. когда даешь ссылку на древние игры, вечно начитаешься чего-то, чего сам не знал!

Краткий курс истории фирмы SIERRA ON-LINE
iLavr
-
- God
- Posts: 1388
- Joined: 02 Jan 2006 02:28
- Location: Abakan
Re: Реальный 8086/88 + FPGA
[offtop]
А вот 16bit версию тогда ещё Windows Commander, в последнее время известного как Total Commander, я запускал в Win 3.1.
[/offtop]
Хм. Первый раз о таком слышу, ибо вроде бы как Win95 позиционировалась аки 32bit only.Lavr wrote:Так самый интересный эксперимент заключался в том, что на 286-ю машину с EGA-картой
можно поставить Win 95!![]()
А вот 16bit версию тогда ещё Windows Commander, в последнее время известного как Total Commander, я запускал в Win 3.1.
[/offtop]
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
8086+FPGA
Не совсем понял, что именно сомнительно по ссылке.Lavr wrote: На своем 286-м компьютере с EGA-картой наблюдал очень интересные режимы!![]()
Поскольку монитор у меня был в то время - "Электроника 32 ВТЦ 202", то характерные для EGA
режимы разверток он не понимал, а я не стал вмешиваться в его электронику.
На типичных EGA режимах синхронизация срывалась просто, но вот на игре "Поле Чудес"
синхронизация была устойчивой, только часть картинки уходила за экран вниз.![]()
Если предположить (я просто не в курсе), что Электроника была CGA-подобной, то вполне логично, что EGA-режимы она не умела (частоты повыше) или умела не до конца.
И в статье речь немного о другом - что если подключен EGA монитор к EGA-карте, но заказан 200-строчный режим (полярности синхры NN), то монитор забивал на R'B' линии, а G' воспринимал как интенсивность, т.е. вел себя как CGA с 4 линиями цвета, итого имея 16 цветов, хотя карта способна отдать 64. Что объясняет разницу в значениях регистров ATC для нативных EGA-режимов и CGA-эмуляции.
Или я чего-то не так понял?
А у Вас оригинальная IBM EGA или клон? Потому что с регистрами курсора у меня беда. Оно-то работает, но 100% не так, как надо бы. А проверить мне не на чем, самое старое железо - целерон 2 ГГц

Last edited by Vic3Dexe on 16 Feb 2016 16:49, edited 1 time in total.
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Реальный 8086/88 + FPGA
А вот это я с удивлением слышу!jdigreze wrote:вроде бы как Win95 позиционировалась аки 32bit only.

32-битного и 16-битного кодов у них даже основные библиотеки в 2-х экземплярах,
это уже я сам проверил на своей Win98.
Собственно, поэтому эту линию Win и бросили развивать - нельзя обеспечить устойчивость
системы при таком "винигрете".
iLavr
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Реальный 8086/88 + FPGA
Я предполагаю, что программированием EGA, вероятно, можно достичь и желаемой глубины цвета,Vic3Dexe wrote:Не совсем понял, что именно сомнительно по ссылке.
...
Или я чего-то не так понял?
раз уж можно сделать EGA режимы с CGA разверткой.
Сейчас просто это всё неактуально получается - на современном нелучевом мониторе изыски настройки не увидишь.
Мне почему интересно было - из документации вроде как получалось, что можно программированием EGA
загнать её в режим сходный с разверткой "Специалиста" - хотел в эмуляторе такой режим сделать...
Полагаю, что клон... ибо кто бы мне припас оригинальную IBM EGA на Горбухе за приемлемую цену в то время...Vic3Dexe wrote:А у Вас оригинальная IBM EGA или клон? Потому что с регистрами курсора у меня беда.
Вот типа такой EGA-карта у меня была:

Оригинал сейчас глянуть не смогу - далеко это все уже сложено, разбирать шкаф неохота...
iLavr
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
8086+FPGA
Можно вполне. Карта будет отдавать полный 6-битный цвет. Затык ведь в мониторе, который думает, что он подключен к CGA-адаптеру при 200 строках.Lavr wrote: Я предполагаю, что программированием EGA, вероятно, можно достичь и желаемой глубины цвета,
раз уж можно сделать EGA режимы с CGA разверткой.
Меня другое смущает - в EGA-биосе нет защиты от включения EGA-режимов (т.е. 350 строк) при CGA-мониторе. Я понимаю что баги, но не до такой же степени...
EGA будет выдавать любую развертку - и CGA, и спектрум, и что угодно, что влезет в регистры. Там есть ограничения на минимальные значения (напр. для VGA длина строки мин. 25 символов), но они не сильно мешают. Вопрос в том, на каком мониторе это смотреть. У меня старых мониторов нет, поэтому я и сделал 2 фиксированных растра - 640х480 и 720х400 для 8- и 9-битных символов соотв.Lavr wrote: Сейчас просто это всё неактуально получается - на современном нелучевом мониторе изыски настройки не увидишь.
Мне почему интересно было - из документации вроде как получалось, что можно программированием EGA
загнать её в режим сходный с разверткой "Специалиста" - хотел в эмуляторе такой режим сделать...
Что касается изысков настройки... Ну да, многое не увидишь. Но кое-что можно сделать - оверскан (он же бордер), "полосатые" CGA-символы, имитация MDA-монитора с любым VGA-доступным цветом люминофора и т.п. Да и вышеупомянутый эффект (EGA-монитор на CGA-карте) - все это уже есть.
Клон, на оригинале поболее микрух было.Lavr wrote: Вот типа такой EGA-карта у меня была:
Last edited by Vic3Dexe on 16 Feb 2016 16:49, edited 1 time in total.
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Реальный 8086/88 + FPGA
A у меня они, наверное уже к сожалению, все сохранились...Vic3Dexe wrote:У меня старых мониторов нет...


Начиная с этой самой CGA-"Электроники", настоящими EGA, VGA и заканчивая SVGA.
Все в рабочем состоянии, и рука выкинуть не поднимается - я же их "с трудом доставал"!

Чертовы "чемоданы без ручки"!

iLavr
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
Re: Реальный 8086/88 + FPGA
Да, проблема известная. Место занимают, а выкинуть жалко/невозможно.
У самого когда-то было то ли 8 то ли 9 ч/б ламповых телеков. Служили донорами друг для друга, т.к. купить нормальный в 90х мы не могли.
У самого когда-то было то ли 8 то ли 9 ч/б ламповых телеков. Служили донорами друг для друга, т.к. купить нормальный в 90х мы не могли.
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
8086+FPGA
Видеокарта более-менее готова, по крайней мере, в ближайшее время я ее трогать не буду.
Работают все режимы, вроде даже безглючно, горизонтальный паннинг, подчеркивание. Не проверял line compare, я не знаю точно как оно должно быть.
Биос толком не тестил, не падает - и ладно, детально буду смотреть, когда будет с чего загрузить тестилки.
Код карты выкладываю, рассчитана на работу совместно с процом на одну микруху SRAM 1Mx16 <20 ns, причем на 16-битную шину. 8-битные обращения надо соотв. пускать по младшей или старшей половине в зав. от адреса.
В принципе, там все или почти все комментировано, если что - спрашивайте.
Распаял все оставшееся, общий вид ниже. Плата не отмыта, не заморачивался. В панельки пока не ставил тиньку, RTC и контроллер флопа.
Работают все режимы, вроде даже безглючно, горизонтальный паннинг, подчеркивание. Не проверял line compare, я не знаю точно как оно должно быть.
Биос толком не тестил, не падает - и ладно, детально буду смотреть, когда будет с чего загрузить тестилки.
Код карты выкладываю, рассчитана на работу совместно с процом на одну микруху SRAM 1Mx16 <20 ns, причем на 16-битную шину. 8-битные обращения надо соотв. пускать по младшей или старшей половине в зав. от адреса.
В принципе, там все или почти все комментировано, если что - спрашивайте.
Распаял все оставшееся, общий вид ниже. Плата не отмыта, не заморачивался. В панельки пока не ставил тиньку, RTC и контроллер флопа.
You do not have the required permissions to view the files attached to this post.
Last edited by Vic3Dexe on 16 Feb 2016 16:49, edited 1 time in total.
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
8086+FPGA
Закончил 8042 и Int09/Int16, модуль прикручиваю, прерывания не так интересны, т.к. слизаны с оригинального биоса с некоторым причесыванием и допиливанием управления светодиодами.
Есть все необходимое, нет управления резетом (не суть важно), команд теста интерфейсов клавомыши и остальных откровенно бесполезных команд.
Не тестил одновременную работу клавы и мыши, пока не до того.
Я всех обманул. Память у меня работает на 25 МГц, а не на 50. Запутался в собственных частотах.
А обнаружил я сие, когда решил-таки победить глюк, терзавший меня довольно давно - при копировании BIOS из сериальной флешки циклона в основную память (перед стартом машины), данные рандомно бились. Особенно хорошо это было заметно на искажениях шрифтов.
Грешил на signaltap (встроенный анализатор в циклоне), т.к. небольшие изменения его конфига то устраняли проблему, то возвращали.
И только когда я озаботился подсчетом и проверкой CRC того, что, копировалось, я осознал масштабы проблемы - данные портились ВСЕГДА!
Причина банальна - данные я читал на 14 МГц, а писал в память на 12.5 (задействован только один из двух "DDR"-контроллеров). Соотв., контроллер тупо не успевал складировать то, что сыпалось из флешки. Решение также банально - снижение частоты чтения до 10 МГц.
Запустил контроллер флопа (i82077A-1). Процессорный интерфейс успешно взлетел, команды выполняет. Приводы пока не цеплял, надо раскурить int13, там IBM наворотила (не иначе как с целью запутать вероятного меня). Здорово помогло вот это. Несмотря на то, что я и бинарник неплохо читаю, комментарии были нелишними.
И вопрос:
откуда в 3F1h (это "FDC status B", существующий сугубо у ps/2) некие ID биты? Я так понимаю, это какой-то особенный контроллер, но гугл также в растерянности.
Есть все необходимое, нет управления резетом (не суть важно), команд теста интерфейсов клавомыши и остальных откровенно бесполезных команд.
Не тестил одновременную работу клавы и мыши, пока не до того.
Я всех обманул. Память у меня работает на 25 МГц, а не на 50. Запутался в собственных частотах.
А обнаружил я сие, когда решил-таки победить глюк, терзавший меня довольно давно - при копировании BIOS из сериальной флешки циклона в основную память (перед стартом машины), данные рандомно бились. Особенно хорошо это было заметно на искажениях шрифтов.
Грешил на signaltap (встроенный анализатор в циклоне), т.к. небольшие изменения его конфига то устраняли проблему, то возвращали.
И только когда я озаботился подсчетом и проверкой CRC того, что, копировалось, я осознал масштабы проблемы - данные портились ВСЕГДА!
Причина банальна - данные я читал на 14 МГц, а писал в память на 12.5 (задействован только один из двух "DDR"-контроллеров). Соотв., контроллер тупо не успевал складировать то, что сыпалось из флешки. Решение также банально - снижение частоты чтения до 10 МГц.
Запустил контроллер флопа (i82077A-1). Процессорный интерфейс успешно взлетел, команды выполняет. Приводы пока не цеплял, надо раскурить int13, там IBM наворотила (не иначе как с целью запутать вероятного меня). Здорово помогло вот это. Несмотря на то, что я и бинарник неплохо читаю, комментарии были нелишними.
И вопрос:
Code: Select all
MOV DX,3F1H ; I.D. PORT
IN AL,DX
NOP
MOV BX,0FFFFH ; BUS PRECHARGE
AND AL,0F8H ; KEEP I.D. BITS
AND @HF_CNTRL,11111110B ; RESET DUAL BIT
CMP AL,CARD_ID ;это 50h
JNE NO_ID
OR @HF_CNTRL,1 ; SET DUAL BIT
You do not have the required permissions to view the files attached to this post.
Last edited by Vic3Dexe on 16 Feb 2016 16:50, edited 1 time in total.