  word  XText, YText;   // Положение текста на экране
  word  textcolor, textbackground; // Это и так ястно...


void  WriteSymbol(char);
void  WriteString(word, word);
//---------------------------------

// Здесь печатается Сюмбол
void  WriteSymbol(char smb)
   byte color;
{
   if (smb==13) {YText++; return;}
   if (smb==10) {XText=2; return;}

   ES = 0xB800;
   DX = YText*80+XText*2;
   ESBYTE[DX] = smb;

   color = textbackground<<4|textcolor;
   ESBYTE[DX+1] = color;

   XText++;

   IF (XText>79)
   {
     XText=0;
     YText++;
   }
}


// Вывод строки на экран
// Строка - это поток сюмболов (см. выше)
word  WriteString(word  seg, word ofs)
  word  i;
  byte  smb;
{
  $push fs

  FS = seg;
  i = 0;


  while (FSBYTE[ofs+i])
  {
      WriteSymbol(FSBYTE[ofs+i]);
      i++;
  }

  $pop fs

  return i;
}


// Изменение координат виртуального курсора
void fastcall gotoXY(AX, BX)
{
  XText = AX;
  YText = BX;
}