Страница 1 из 1

ISA видеокарта и МК

Добавлено: Сб июл 12, 2008 04:34:37
Аксель
Решил я подключить ISA видеокарту к МК.
МК будет восьмибитный atmel. ISA видеокарта: есть в наличии парочка EGA и sVGA контроллеров (все подозреваются в возможности работать в восьмибитном режиме).
Первая цель - какой-то стандартный текстовый режим, и вывести надпись на дисплей ("Превед мир.")


Есть такой вопрос: с чего начать? Я надеюсь на вашу помощь.
Помогут и линки на похожие темы, в т.ч. на программирование биос'а.

Немножко уже начал: шина ISA

Дальше: Вывод на терминал (дисплей). Эта информация справедлива и для VGA???
(Там далее по тексту советуют почаще пользовать биос, а надо обходиться без него...)


Про инициализацию дисплея биосом:
...происходит передача управления командой CALL FAR по адресу Seg:Offs = C000:0003h на инициализационную процедуру Video BIOS(EGA/VGA). Эта процедура настраивает видеоадаптер, переустанавливает вектор прерывания INT 10h (Video Service) на сервисную процедуру Video BIOS, выдает заставку видеоадаптера и возвращает управление вызвавшей процедуре System BIOS командой RET FAR. - Заставку видеокарта сама (без управления внешним CPU) не показывает, а только хранит сам исполняемый код для х86, правильно?


Адресация памяти видеокарты, та же, как и при работе видеокарты в компьютере?



Микросхема 6845 имеет 18 управляющих регистров, пронумерован-
ных от 0 до 17. Первые 10 регистров фиксируют горизонтальные и
вертикальные параметры дисплея.

Эти регистры, автоматически устанавливаются BIOS при изменении режима экрана. Не советуем экспериментировать с этими регистрами, поскольку имеется возможность испортить терминал(Было что-то такое у ЕГА). Регистры имеют размер 8 бит, но некоторые связаны в пары, чтобы хранить 16-битные величины. Пары #10-11 и #14-15 устанавливают форму и местоположение курсора. Пара #12-13 управляет страницами дисплея . Пара #16-17 сообщает позицию светового пера . Большинство регистров доступно только для записи; только регистр адреса курсора можно и читать и писать, а регистр светового пера предназначен только для чтения. EGA имеет 6 добавочных регистров, которые связаны с техническими деталями.

Доступ ко всем 18 регистрам осуществляется через один и тот же
порт, адрес которого для цветного адаптера равен 3D5H. Для записи в регистр адаптера надо сначала в регистр адреса, расположенный в порте 3D4H для цветного, послать номер требуемого регистра. Тогда следующий байт, посланный в порт с адресом 3D5H будет записан в этот регистр. Для парных регистров надо: сначала записать в адресный регистр, потом в первый регистр пары, потом снова в адресный регистр и, наконец, во второй регистр пары.



Вопрос:
Т.е. Если я хочу отослать МК данные в регистр видеокарты (непарный), то

1. Я устанавливаю число 3D4H в линию адресации ISA.
2. Устанавливаю в линию данных ISA число(номер) желаемого регистра.
3. Линией управления ISA "даю команду" видеокарте считать адрес и данные в этот адрес (Порт видеоадаптера).
4. Я устанавливаю число 3D5H в линию адресации ISA.
5. Устанавливаю в линию данных ISA число(записываемое в регистр).
6. Линией управления ISA "даю команду" видеокарте считать адрес и данные в этот адрес (регистр видеоадаптера).

???

Добавлено: Сб июл 12, 2008 19:56:45
Пухич
Ну в общем-то так. Пока без конкретики сложно давать советы. Вообще же эмуляция шины ISA не есть трудность, я в свое время делал эмулятор ее, управляемый вручную или компом (не смейтесь). Главное в том, чтобы знать какие команды засылать и по каким адресам. А тут вам ваши ресурсы в помощь.

Кстати, было бы удобно, если бы ваш МК имел внешнюю шину.