home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* PCTIME.INC *)
- (* ------------------------------------------------------ *)
- TYPE TimeStringType = String[15];
- Registers = RECORD CASE INTEGER OF
- 1 : (ax, bx, cx, dx, bp, si,
- di, ds, es, flags : INTEGER);
- 2 : (al, ah, bl, bh, cl, ch,
- dl, dh : BYTE);
- END;
-
- VAR regs8088 : Registers;
- Stunden : integer;
- Minuten : integer;
- Sekunden : integer;
- Sekundenrest : integer;
-
- PROCEDURE ResetTime;
- BEGIN
- WITH regs8088 DO BEGIN
- ax := $2C00;
- MsDos(regs8088);
- Stunden := ch; Minuten := cl;
- Sekunden := dh; Sekundenrest := dl;
- END;
- END;
-
- PROCEDURE TimeInString(VAR t : TimeStringType);
- VAR a : STRING[2]; h, m, s, r : INTEGER;
- BEGIN
- WITH regs8088 DO BEGIN
- ax := $2C00 ;
- MsDos(regs8088) ;
- h := ch - Stunden;
- m := cl - Minuten;
- s := dh - Sekunden;
- r := dl - Sekundenrest;
- IF r < 0 THEN BEGIN
- r := r + 100; s := Pred(s);
- END;
- IF s < 0 THEN BEGIN
- s := s + 60; m := Pred(m);
- END;
- IF m < 0 THEN BEGIN
- m := m + 60; h := Pred(h);
- END;
- Str(s + r/100:6:2, t); t := t + 's ';
- IF (m > 0) OR (h > 0) THEN BEGIN
- Str(m:2, a); t := a + 'm ' + t;
- END;
- IF h > 0 THEN BEGIN
- Str(h:2, a); t := a + 'h ' + t;
- END;
- END;
- END;
-
- FUNCTION TimeStr : TimeStringType;
- VAR t : TimeStringType;
- BEGIN
- TimeInString(t);
- TimeStr := t;
- END;
-
- PROCEDURE WriteTime;
- BEGIN
- Write(TimeStr);
- END;
-
- PROCEDURE WriteLnTime;
- BEGIN
- WriteLn(TimeStr);
- END;
-
- (* var i,anz : integer;
- x1, x2, z : real; *)
- (* ------------------------------------------------------ *)
- (* Ende von PCTIME.INC *)