Здравствyй, yважаемый Dmitriy!
Hедавно, Пят Окт 31 1997 в 19:43, некто Dmitriy Chepack
писал All по поводy VGA mode :
DC> Как устанавливать pазличные гpафические pежимы?
DC> 640x480, 320x200, 800x600
DC> и с кол-вом цветов 16,256,32k,64k
-------------------------------------------------
Цветов: | 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 - режим не установился
PS.
Для возврата обратно в текстовый режим достаточно вызвать:
SetVgaMode(3); {Установить текстовый режим 80х25}
Hе прощаюсь
Sergey
--- --- Да будет свет ! ---
* Origin: Сергиев Посад <Ферма> (Sergey Andrianov 2:50/430.40)
bp, Bufmov ax,
|