{ (c) 1998 CREEQ <creeq@web.de> }
program datum_und_zeit_holen_mit_Alarm;
uses Crt, Dos;
type datum_typ = record tag, monat, jahr, wochentag : word;
 		 end;
     zeit_typ  = record stunde, minute, sekunde, sek100 : word;
                 end;
     zeitung_typ  = record hour, minut, second, sek10 : word;
                 end;
var datum : datum_typ;
    zeit, zeit1, zeit2 : zeit_typ;
    zeit3 : zeitung_typ;
    i : longint;
    x : zeit_typ;
    b : integer;
label 1,2,3,4,5,6;
procedure sierenen;
label 10,20,30;
begin
  b := 50;
10:repeat
  sound(b);
  inc(b,10);
  if b = 1000 then goto 20;
  delay(10);
  until keypressed;
  goto 30;
20:repeat
  sound(b);
  dec(b,10);
  if b = 50 then goto 10;
  delay(10);
  until keypressed;
  goto 30;
30:nosound;
end;
procedure uhrzeit(var z : zeit_typ);
begin
  with z do
  gettime(stunde, minute, sekunde, sek100);
end;
procedure uhrzeit_ausgeben(z : zeit_typ);
begin
  with z do
  begin
    write(stunde:2,':',minute:2,':');
    writeln(sekunde:2,'.',sek100);
  end;
end;
begin
  clrscr;
  write('momentane Uhrzeit: ');
  uhrzeit(zeit1);
  uhrzeit_ausgeben(zeit1);
  writeln('Alarmzeit:');
  write('Stunde: ');
  with x do
  readln(stunde);
  write('Minute: ');
  with x do
  readln(minute);
  write('Sekunde: ');
  with x do
  readln(sekunde);
  begin
  with datum do
  getdate(jahr, monat, tag, wochentag);
  with datum do
4:  repeat
      if keypressed then goto 5;
      delay(100);
      clrscr;
      write('                               ');
      uhrzeit(zeit1);
      uhrzeit_ausgeben(zeit1);
      with zeit3 do
      gettime(hour, minut, second, sek10);
      with x do
      begin
        with zeit3 do
        if stunde = hour then goto 1;
      end;
  goto 4;
  until keypressed;
  1:
  with x do
    begin
      with zeit3 do
      if minute = minut then goto 2;
    end;
  goto 4;
  2:with x do
    begin
      with zeit3 do
      if sekunde = second then goto 3;
    end;
  goto 4;
  goto 5;
  3:sierenen;
  5:
  end;
end. 
