|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Andrey Voitenkov 2:5020/400 10 Mar 2004 23:00:20 To : Eugene Grosbein Subject : Re: странный случай --------------------------------------------------------------------------------
Eugene Grosbein wrote:
[...]
> Компилируем в ./vesareg, загрузившись без телевизора говорим рутом:
> ./vesareg > 80x25.vg
>
> Перезагрузившись с телевизором, говорим рутом:
> ./vesareg -w < 80x25.vg
>
> Ура, имеем нормальную консоль. Кто-нибудь может дать хорошее объяснение
> происходящему? Разумеется, не на уровне комментариев
> /* записать 0x19 в reg */, а по сути?
>
По сути она сохраняет внутренние регистры CGA(и выше) видеоконтроллера в
файл (в момент времени, когда установлен нормальный видеорежим). Потом
просто восстанавливает состояния контроллера (и получаем нормальный
видеорежим).
3D4 - это индексный порт, в него пишется индекс внутреннего регистра,
к которому потом будет обращение через порт 3D5.
Единственное, чего я не понимаю, это вот:
- --- cut ---
outb(0x3d4,0x11);
outb(0x3d5,crtc[0x11]&0x7f);
- --- cut ---
Hадо доку по контроллеру смотреть, скорее всего это команда
инициализации или сброса состояния.
--
mccloud@
--- ifmail v.2.15dev5.3
* Origin: Volia ISP (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/1184707d452df.html, оценка из 5, голосов 10
|