Скачать Гашение палитры для EGA

03.08.1994
Скачать файл (1,22 Кб)

>   >  Возник вопpос - надо для EGA медленно погасить изобpажение и потом также
>   > медленно его восстановить (или подменить дpугим) - нечто подобное встpечается в
>   > игpах. Эту вещь пpидется цеплять к Боpландовскому Паскалю. Игpать пpидется,
>   > видимо, палитpой, но до меня туго доходит, как это pеализовать.
>
>   На EGA, к сожалению, такой фокус не пpойдет. Нужно не менее, чем VGA.

Вообще-то можно сделать подобие такого эфекта, если использовать нижеприведенную процедурку и подобрать соответствующую палитру... (в EGA одновременно на экране м.б. 16 цветов из 64 возможных)

Procedure SwapColor(EGAPalRegister:Byte;NewColor:byte);assembler;
 asm
   mov ax,1000h
   mov bh,NewColor
   mov bl,EGAPalRegister
   int 10h
 end;

А выглядит это примерно так:

{> Cut here. FileName= OPA.PAS }}
uses Crt;
Var  B : Char;
 
Procedure SwapColor(EGAPalRegister:Byte;NewColor:byte);assembler;
 asm
   mov ax,1000h
   mov bh,NewColor
   mov bl,EGAPalRegister
   int 10h
 end;
 
begin
  ClrScr;
  GoToXY(1,10);
  WriteLn('               ***************************************************');
  WriteLn('               * Orlov Pavel OPA-Soft SamaraEnergo Samara Russia *');
  WriteLn('               *                                                 *');
  WriteLn('               *   E-mail : pavel@metrol.samen.dvlg.samara.su    *');
  WriteLn('               ***************************************************');
  GoToXY(1,17);
  WriteLn('                    PRESS YOUR FAVOURITE KEY... ESC for Exit');
  GoToXY(1,25);
 
  While b <> #27 do
   begin
     SwapColor(0,0);  Delay(30);
     SwapColor(0,8);  Delay(30);
     SwapColor(0,1);  Delay(30);
     SwapColor(0,9);  Delay(30);
     SwapColor(0,11); Delay(30);
     SwapColor(0,15); Delay(30);
     SwapColor(0,63);
     b:= ReadKey;
     SwapColor(0,15); Delay(30);
     SwapColor(0,11); Delay(30);
     SwapColor(0,9);  Delay(30);
     SwapColor(0,1);  Delay(30);
     SwapColor(0,8);  Delay(30);
     SwapColor(0,0);
   end;
end.