{============================================== ====================} 
  Procedure DrawScreen; 
  Var 
  x, y: Integer; 
  s: String [80]; 
  tmp: String [6]; 
  begin 
  Bar (Base2, 0,0,319,9,8); 
  FillBase (Base2, 3200,9600, $ 03030303); 
  for y: = 0 to 15 do 
  for x: = 0 to 31 do 
  DrawOSpr (Base2, x * 10,40 + y * 10, BrickHgt, BrickWdt, @ BrickSpr); 
  s: = 'ю ~ SIEGE ~ ю Level:'; 
  Str (Level, tmp); 
  While Byte (tmp [0]) <2 do tmp: = 'ь' + tmp; 
  s: = s + tmp + 'ю Score:'; 
  Str (Score, tmp); 
  While Byte (tmp [0]) <5 do tmp: = 'ь' + tmp; 
  s: = s + tmp + 'ю'; 
  DrawString (Base2, 1,1, s); 
  end; 
  {============================================== ====================} 
  Procedure DrawMan; 
  begin 
  if StoneY = 0 then 
  begin 
  DrawTSpr (Base2, ManX * 8,20, ManHgt, ManWdt, @ ManSpr [2]); 
  DrawTSpr (Base2, ManX * 8 +4,17, StoneHgt, StoneWdt, @ StoneSpr); 
  end else 
  begin 
  DrawTSpr (Base2, ManX * 8,20, ManHgt, ManWdt, @ ManSpr [1]); 
  DrawTSpr (Base2, StoneX, StoneY, StoneHgt, StoneWdt, @ StoneSpr); 
  Inc (StoneY, 10); 
  if StoneY> 199 then 
  begin 
  StoneY: = 0; 
  if Combo <7 then ComboString (ComboStr [Combo]) else ComboString ('Kiiler!'); 
  Combo: = 0; 
  end; 
  end; 
  end; 
  {============================================== ====================} 
  Procedure CheckCollisions; 
				
				
				
				
			  Var 
  i: Byte; 
  begin 
  if StoneY> 0 then 
  for i: = 1 to MaxEnemies do 
  With Enemies [i] do 
  if not Free and not Falling then 
  begin 
  if ((StoneX +8> X) and (StoneX 
 ((StoneY +8> Y) and (StoneY 
 begin 
  Falling: = true; 
  D: = 0; 
  Inc (Score); 
  Inc (Kills); 
  Inc (Combo); 
  end; 
  end; 
  end; 
  {============================================== ====================} 
  Procedure NextLevel; 
  Var 
  i: Byte; 
  begin 
  Timer: = MemL [Seg0040: $ 006C]; 
  Inc (Level); 
  for i: = 1 to 30 do 
  begin 
  ClearBase (Base2); 
  DrawScreen; 
  DrawTSpr (Base2, ManX * 8,20, ManHgt, ManWdt, @ ManSpr [1 + Byte (i and 1 = 1)]); 
  DrawString (Base2, 132,80, 'Level' + Char ($ 30 + Level)); 
  WaitRetraceMode; 
  CopyBase (Base2, Base1); 
  While Timer = MemL [Seg0040: $ 006C] do; 
  Timer: = MemL [Seg0040: $ 006C]; 
  end; 
  EnemyLimit: = (1 + Level) * 20; 
  EnemyDelay: = 0; 
  Kills: = 0; 
  ca: = 0; 
  end; 
  Procedure GameOverProc; 
  Var 
  i: Byte; 
  begin 
  ClearBase (Base2)...