Самый известный и удобный(IMHO) графический режим для ДОСа - под номером 13h - естесственно стандартными модулями Паскаля не поддерживается, но оно и не надо... Все остальные режимы (в том числе и VESA) может и не намного сложнее в работе (на низком уровне, я имею ввиду), но гораздо тормознее и непонятнее (вначале).
Для тех, кто не в курсе, что такое видеорежим 13h, поясняю:
mode 13h - MCGA (VGA) 320x200x256 (8-битный цвет)
видеопамять проецируется на ОЗУ одной страницей в 64000 байт, т.е. целиком умещается в один сегмент! и даже в реальном режиме процессора весь экран доступен без переключения страниц !!!
например рисование точки в этой режиме выглядит так:
Код
procedure putpixel(x,y: integer; c: byte);
begin
mem[$A000:y*320+x]:=c;
end;
где $A000 - адрес сегмента ОЗУ, в который проецируется видеопамять в графических режимах VGA (CGA и EGA вроде с $B000), к слову: в текстовом режиме видеопамять доступна с адреса $B800...
как включить этот режим ?
Код
procedure setmode(mode: byte); assembler;
asm
mov ah,0; //команда (0-установка видеорежима)
mov al,mode;
int 10h; //видео-служба BIOSа
end;
вызываем setmode($13) для переключения туда и setmode(3) обратно в текстовый (перед выходом)
это необходимый минимум для работы с графикой, и никаких модулей Graph подключать не нужно (он и не будет работать)
потом принесу свой модуль, если кому надо, там и с палитрой работа есть (причем даже в текстовом режиме палитру можно менять, и в любых графических, кроме 3х-цветного CGA разве что
)