TURBO PASCAL

Новости           

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности

От автора

 

Q:> 2.2.1 Как писать/читать напрямую в видеопамять (в т. ч. и в DPMI)

A:> Писать напрямую в видео память намного быстрее и удобнее, чем выводить символы на экран через БИОС. Строго говоря, процедура Write (WriteLN) тоже может писать в видео память напрямую. Тем не менее обычно лучше пользоваться своими процедурами для вывода символов. В реале видео память располагается начиная с $B800:0000. Hа каждый символ отводится 2 байта: сам символ и его атрибуты. Таким образом на экран 80*25 нужно 4000 байт. В DPMI никаких принципиальных отличий нет. Просто вместо адреса $B800:0000 нужно писать типизированную константу SegB800, которая будет указывать при прогоне на начало видеопамяти. Таким образом определив следующий массив
var
Screen: Array[1..2000,1..2] of byte absolute $B800:0;
мы получаем доступ к любому символу и его атрибуту по порядковому номеру символа. Т.е. для точки (1,1)
Screen[1,1] будет ASCII код того, что на экране, а
Screen[1,2] - его атрибуты.

На первую страницу
Rambler's Top100 Яндекс цитирования Rambler's Top100 PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросампрошу писать на электронный адрес

Hosted by uCoz