Реальный 8086/88 + FPGA

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

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Mixa64 wrote:Вы схему оригинального CGA смотрели, анализировали?
Безусловно. Но мы не знаем предпосылок этих решений. И мы знаем весь объём
схемотехнических решений с тех пор и до сего дня.
Mixa64 wrote:Бывают решения компромиссные, вынужденные, а бывают нелепые, как будто бы
второпях делали или студенту поручили.
А Вы бы сейчас сделали видеоконтроллер Apple I, как его сделал Стив Возняк?
Я бы - нет...
Mixa64 wrote:не спорю...
И правильно! CGA сделали так, как его уже сделали, спорь... не спорь. :wink:
iLavr
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

А у меня вот тоже проблемы с видеоконтроллером. Сначала сделал с разрешением 640х480, как наиболее стандартный. Потом обнаружил, что 480 не очень хорошо делится на 25 (строк в текстовом режиме). Далее вспомнил, что стандартный текстовый режим DOS был 640х400.

Думал, что переделка займет 5 минут. Строчная синхронизация у этих режимов одинаковая, кадровая - естественно, частота другая, да и полярность кадрового импульса положительная вместо отрицательной.

Переделал, включил - картинка быстро плывет вверх. Мониторы (один довольно древний, второй - совсем современный) определяют режим как 720х400, хотя даже по осциллографу вроде синхронизация четко отвечает режиму 640х400.

Перепробовал все, что пришло в голову - ноль результата. Может, кто скажет что-нибудь умное ? И вообще, кто в курсе - монитор режим исключительно по синхронизации определяет, или еще как-то RGB и Blank для этого использует (хотя понимаю, что говорю глупости) ?
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

По VGA-режимам я вот тут инфу накопал кое-какую:

viewtopic.php?t=8869&postdays=0&postorder=asc&start=18
Я тут за главного - если что шлите мыло на me собака shaos точка net
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

Дело в том, что я информации общего плана за последние пару часов перечитал уже дикое количество, но никаких мыслей новых, что еще попробовать, так и не появилось...
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

Так, а сейчас я офигел конкретно... Опять запустил работающий режим 640х480, но добавил смену полярности кадрового синхроимпульса с помощью переключателя на отладочной плате. Появилась картинка, щелкнул переключателем, картинка исчезла. Но только на секунду или две, потом появилась опять !!! Я даже осциллографом посмотрел, чтобы быть уверенным, что полярность меняется.

Короче, ЖК монитору фирмы Acer 2005 г.в. все равно, в какой полярности приходит кадровый синхроимпульс (строчный еще не пробовал), он все равно четко опознает режим, просто задумавшись на пару секунд.
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

newold86 wrote:Дело в том, что я информации общего плана за последние пару часов перечитал уже дикое количество, но никаких мыслей новых, что еще попробовать, так и не появилось...
Ну частоты померь частотометром - если дисплей определяет режим неправильно, значит есть причина...
Я тут за главного - если что шлите мыло на me собака shaos точка net
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

Частоты до последней цифры после запятой правильные - естественно, с этого разбирательство и начал...
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

newold86 wrote:Частоты до последней цифры после запятой правильные - естественно, с этого разбирательство и начал...
А найти старый комп, выставить на нём 640x400 и осциллографом сравнить?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Post by jdigreze »

LCD мониторы развёртку определяют не по полярностям, а сравнивают с внутренней эталонной. Ищи монитор типа Samsung 3Ne, тот точно определяет по полярностям.
Кстати, 640х400 режима нет в стандарте, есть 640х350, есть 720х400. Текстовый режим VGA - 720х400 (матрица символа 9х16, Fh=31,469 kHz, Fv=70,087 Hz, полярности Sh=Negative,Sv=positive).
640x350 унаследован от EGA с матрицей символа 8х14.
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

jdigreze wrote:Кстати, 640х400 режима нет в стандарте
Как так нет? Ведь достаточно в Гугле набрать vga timing 640 400, выпадет куча результатов. Даже утверждается, что именно этот режим включался при загрузке DOS...

Хотя я готов поверить - ничего другого уже не остается...
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

А какая разница для монитора сколько пикселов в строке? Главное чтобы времена синхроимпульсов и кол-во строк совпадало, а сама строка - по сути аналоговая в VGA, нет?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

Shaos wrote:А какая разница для монитора сколько пикселов в строке? Главное чтобы времена синхроимпульсов и кол-во строк совпадало, а сама строка - по сути аналоговая в VGA, нет?...
Блин, ну и почему я сам о таких элементарных вещах не подумал ??? Наверное, немного больше спать нужно...
jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Post by jdigreze »

newold86 wrote:Как так нет? Ведь достаточно в Гугле набрать vga timing 640 400, выпадет куча результатов. Даже утверждается, что именно этот режим включался при загрузке DOS...

Хотя я готов поверить - ничего другого уже не остается...
Ну сам посчитай 80х9=720, 25х16=400. Это и есть стандартный текстовый экран. А так да, количество пикселей по горизонтали пофиг, лишь бы в тайминги укладывался.
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

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

Вот еще обнаружил, тоже добавило к списку задач:

The width of CGA, EGA, MCGA, and VGA text characters is 8 pixels. In the case of VGA however, 9 pixels are actually used for displaying the characters. The 9th pixel is appended to the right end of each pixel row. If the character being displayed has an ASCII code ranging from 192 to 223 and the 8th pixel in a given pixel row is on, the 9th pixel in that row will be on also. If the 8th pixel in the row is off or the ASCII code for the character is not in the range 192 to 223, the 9th pixel will not be turned on.
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

Вроде почти разобрался с видео - оказывается, у меня синхронизация абсолютно нормально работает, это просто текст действительно бежал по экрану из-за неправильной переделки контроллера на другое разрешение (я наплодил кучу счетчиков, взаимоотношения между которыми уже сам перестал понимать).

Вот думаю - сделать нормальный VGA-шный текстовый режим полностью заново, оставить нынешний - для тестовых целей вполне годится, или вообще ну его все нафиг ?