procedure reset_mys;
begin
r.ax:=$0000;
intr($33,r);
end;
procedure show_mys;
begin
r.ax:=$0001;
intr($33,r);
end;
procedure cancel_mys;
begin
r.ax:=$0002;
intr($33,r);
end;
procedure window_mys(x1,y1,x2,y2:integer);
begin
r.ax:=$0007;
r.cx:=x1;
r.dx:=x2;
intr($33,r);
r.ax:=$0008;
r.cx:=y1;
end;
procedure where_is_mys(var x,y:integer);
begin
r.ax:=$0003;
intr($33,r);
x:=r.cx;
y:=r.dx;
end;
procedure set_mys(x,y:integer);
begin
r.ax:=$0004;
r.cx:=x;
r.dx:=y;
intr($33,r);
end;
function left:boolean;
begin
r.ax:=$0005;
r.bx:=0;
intr($33,r);
if (r.ax and 1)=1 then begin left:=true; r.bx:=3; end
else left:=false;
end;
function right:boolean;
begin
r.ax:=$0005;
r.bx:=1;
intr($33,r);
if (r.ax and 2)=2 then begin right:=true; r.bx:=3; end
else right:=false;
end;
function middle:boolean;
begin
r.ax:=$0005;
r.bx:=2;
intr($33,r);
if (r.ax and 4)=4 then middle:=true
else middle:=false;
end;
procedure graphical_mys ( hsx, hsy : integer; var c );
var r : registers;
begin
r.ax:=9; r.bx:=word(hsx);
r.cx:=word(hsy); r.dx:=ofs(c); r.es:=seg(c);
intr(int_mysky,r);
end; { nastav_g_kurzor }
procedure set_arrow;
begin
graphical_mys(x_sipka,y_sipka,k_sipka);
end; { nastav_sipku }
procedure set_clock;
begin
graphical_mys(x_hodinky,y_hodinky,k_hodinky);
end; { nastav_hodinky }
procedure set_reverse_clock;
begin
graphical_mys(x_hodinky,y_hodinky,k_ihodinky);
end; { nastav_ihodinky }
procedure set_cross;
begin
graphical_mys(x_kriz,y_kriz,k_kriz);
end; { nastav_kriz }
procedure set_reverse_cross;
begin
graphical_mys(x_xkriz,y_xkriz,k_xkriz);
end; { nastav_kriz }
procedure set_otaznik;
begin
graphical_mys(x_otaznik,y_otaznik,k_otaznik);
end; { nastav_otaznik }
{*****************************************}
{*** relativni pozice mysky ***}
{*****************************************}
procedure volani_mysky ( sluzba : byte; var par1, par2, par3, par4 : word );
var r : registers;
begin
r.ax:=sluzba; r.bx:=par2;
r.cx:=par3; r.dx:=par4;
intr(int_mysky,r);
par1:=r.ax; par2:=r.bx;
par3:=r.cx; par4:=r.dx;
end; { volani_mysky }
procedure relative_position_mys ( var x, y : integer );
var d : word;
xx : word absolute x;
yy : word absolute y;
begin
volani_mysky(11,d,d,xx,yy);
end; { relativni_pozice_mysky }
procedure mickey_mouse ( x, y : word );
var d : word;
begin
volani_mysky(15,d,d,x,y);
end; { mickey_mouse }
{*************************************************}
{*** skryti mysky v zadane oblasti ***}
{*************************************************}
procedure hide_mys_in ( x1, x2, y1, y2 : word );
var r : registers;
begin
r.ax:=16;
r.cx:=x1; r.si:=x2;
r.dx:=y1; r.di:=y2;
intr(int_mysky,r);
end; { schovej_mysku_v }
{*******************************************}
{*** dvojnasobna rychlost mysky ***}
{*******************************************}
procedure double_speed_mys ( k : word );
var d : word;
begin
volani_mysky(19,d,d,d,k);
end; { dvoj_rychlost_mysky }
procedure reset_stisku;
var d : word;
procedure stisk_mysky ( co : word; var kolik, x, y : word );
var tl : word;
begin
kolik:=co;
volani_mysky(5,tl,kolik,x,y);
end; { stisk_mysky }
procedure pusteni_mysky ( co : word; var kolik, x, y : word );
var tl : word;
begin
kolik:=co;
volani_mysky(6,tl,kolik,x,y);
end; { pusteni_mysky }
begin
stisk_mysky(leve_tlacitko,d,d,d);
pusteni_mysky(leve_tlacitko,d,d,d);
stisk_mysky(prave_tlacitko,d,d,d);
pusteni_mysky(prave_tlacitko,d,d,d);
end; { reset_stisku }