Как установить графический режим?
Приведем примеры установки 15 различных графических режимов: от 320x200x16 до 800x600x16M.
Цветов | 16 | 256 | 32k | 64k | 16M |
Разрешение | Номера графических режимов |
320x200 | 0Dh | 13h | 10Dh | 10Eh | 10Fh |
640x480 | 12h | 101h | 110h | 111h | 112h |
800x600 | 102h | 103h | 113h | 114h | 115h |
Двузначные моды - стандартные VGA, устанавливаются через 0 функцию 10h прерывания. Hомер моды устанавливается в al.
procedure SetVgaMode(mode:byte); assembler;
asm
mov al,[mode] {al <- номер режима}
xor ah,ah {ah <- функция 0 }
int 10h {прерывание $10 }
end;
Трехзначные моды - VESA, устанавливаются через 4Fh функцию 2 подфункцию. В ax - 4F02h, в bx - номер моды.
procedure SetVesaMode(mode:word); assembler;
asm
mov bx,[mode] {bx <- номер режима }
mov ax,4F02h {ah <- функция 4Fh; al <- подфункция 2}
int 10h {прерывание $10 }
end;
Если надо проверить, установился режим или нет, то смотришь, что в регистре ah:
00h - все ok
01h - режим не установился
Для возврата обратно в текстовый режим достаточно вызвать:
SetVgaMode(3); {Установить текстовый режим 80х25}