|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Дек 6, 2002 02:34:26 Привет всем! Могу ли я использовать граф. память для собственных нужд? Ведь в текстовом режиме она не нужна. Чего добру пропадать? Только вот проблема: в досе что ни запишешь, считывается только 0ffh. А в винодовс, кажется, все работает. В чем дело? |
|
|
Дата: Дек 6, 2002 02:45:11 · Поправил: comrade S video pamyati chitat nelzya. Na skolko ia znau, v Windows'e eto pamyat emulirovana, tak chto tam uzhe vsyo mozhno. |
|
|
Дата: Дек 6, 2002 08:28:52 Александр В текстовом режиме (по крайней мере EGA/VGA) в сегменте 0A000h лежит знакогенератор, чтобы получить туда доступ надо программировать видеоконтроллер. Принцип как это делается см. у Р.Вилтона (в nlib200.rtl от nu8 это сделано приятнее). |
|
|
Дата: Дек 6, 2002 16:48:44 comrade S video pamyati chitat nelzya Но ведь в графическом режиме можно! Да и в текстовом читать и писать в 0B8000h. Na skolko ia znau, v Windows'e eto pamyat emulirovana, tak chto tam uzhe vsyo mozhno. По крайней мере это объясняет различия. P2M В текстовом режиме (по крайней мере EGA/VGA) в сегменте 0A000h лежит знакогенератор, А почему тогда эта область заполнена только значениями 0FFh? чтобы получить туда доступ надо программировать видеоконтроллер. А какой доступ ты имеешь в виду? Спасибо! PS. Вы уж извините за такие вопросы. Просто где-то слышал, что видеопамять можно использовать для данных, а не получается :( |
|
|
Дата: Дек 9, 2002 04:18:29 Александр А почему тогда эта область заполнена только значениями 0FFh? Незнаю. Просто так я ее не читал. А какой доступ ты имеешь в виду? На чтение/запись. [code] ; Восстановить видеоконтроллер после прямого доступа к ; знакогенератору ОЗУ EGA / VGA. xor ax,ax mov ds,ax mov al,ds:[449h] and al,7Fh mov bx,0A06h .if al != 7 mov bh,0Eh .endif mov dx,3C4h mov ax,302h out dx,ax mov ax,304h out dx,ax mov dl,0CEh mov ax,1005h out dx,ax mov ax,bx out dx,ax mov ax,4 out dx,ax ... ; Приготовить видеоконтроллер для прямого доступа к ; знакогенератору ОЗУ EGA / VGA. mov dx,3C4h mov ax,402h out dx,ax mov ax,704h out dx,ax mov dl,0CEh mov ax,5 out dx,ax mov ax,406h out dx,ax mov ax,204h out dx,ax [/code] |
|
|
Дата: Дек 9, 2002 17:53:58 FF - отсутствующая память. В текстовом режиме по адресу 0a000:0 нет ничего, память отображается адаптером в адреса 0b800 или 0b000. А в режимах EGA/VGA графики как раз туда. Знакогенератор пишется по адресам отображения, после резрешения 2-й битовой плоскости. |
|
|
Дата: Дек 10, 2002 17:41:27 Помнится, в DOS'овские времена были некоторые программки (напр.VIDRAM), которые прямо присоединяли часть видеопамяти к области, доступной DOS. Я и сам писал что-то подобное. Что касается адресации с A000 или B800/B000 - это устанавливается значениями в портах видеоконтроллера. В текстовом режиме никак не используется 3-я битовая плоскость, при желании её вполне можно использовать. |
|
|
Дата: Дек 13, 2002 00:58:59 Спасибо большое за ответы. На днях попробую разобраться, испытать. А то, блин, времени совсем нет :((( Потом еще напишу, если что. Спасибо еще раз! |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.074 |