// (c)2000 Wega(2:5055/141.10@FidoNet) & Din(2:5055/141.11@FidoNet)

#warning FALSE

// Графический режим 320x200x256
:fastcall GRAPHMODE()
{
 AX=13h; $int 10h
}


// Текстовой режим 80x25
:fastcall TEXTMODE()
{
 AX=3; $int 10h
}

// Ожидает перерисовки экрана видеоадаптером
:WaitRetrace()
{
 asm{
  mov DX,03DAh
V1:
  in AL,DX
  and AL,08H
  jnz V1
V2:
  in AL,DX
  and AL,08H
  jz V2
 }
}


// Установка палитры
// Пареметры: word <первый цвет>, <кол-во цветов>, dword <смещение источника данных RGB>
:fastcall SetVgaPalette(BX,CX,EDX)
{
  $push ES
  ES=DS;
  AX=1012h;
  $int 10h
  $pop ES
}

// Вывод на экран видеобуфера
// Параметры: ничего
:void fastcall PutVideoBuf()
{
 $push DS
  EDI=0A0000h; ESI=VideoBuf; DS=ES; ECX=16000; $rep $movsd
 $pop DS
}

// Очистка видеобуфера
// Параметры: ничего
:void fastcall ClearVideoBuf()
{
  EDI=VideoBuf; ECX=16000; EAX=0; $rep $stosd
}
