home *** CD-ROM | disk | FTP | other *** search
-
- UNIT GIFMISC;
- {
- Modul GIFMISC für Programm GIF
-
- * Prozeduren, die den UNITS zur Verfügung stehen müssen, aber nicht
- * als Overlays geladen werden sollen
-
- Paul Schubert, Rottweiler Str. 8, D6000 Frankfurt /M 1, 069 / 231145
-
- }
- {$F+}
-
-
- INTERFACE
-
-
- USES DOS,TPCRT,TPSTRING
- ,TPMOUSE,TPTIMER
- ,SELECTD,SVGA1
- ,GIFVAR
- ;
-
-
- FUNCTION PATHNAME(NAME:STRING):STRING;
- PROCEDURE AUS;
- PROCEDURE CHECKESC;
- PROCEDURE NEWDELAY(ZEIT:WORD);
- PROCEDURE NEWI1C; INTERRUPT;
- PROCEDURE MYEXIT;
-
-
- IMPLEMENTATION
-
-
- PROCEDURE NEWI1C;
- VAR I,J : INTEGER;
- BEGIN
- IF ANIMATE THEN BEGIN
- FOR I := 1 TO CRZ DO BEGIN
- WITH CR[I] DO BEGIN
- DEC(COUNT);
- IF COUNT <= 0 THEN BEGIN
- COUNT := TIME;
- IF INCR < 0 THEN BEGIN
- FOR J := 1 TO ABS(INCR) DO BEGIN
- COL := DIAPAL[STOP];
- MOVE(DIAPAL[START],
- DIAPAL[SUCC(START)],
- SIZEOF(VGAPALETTETYP) - 3 * (256 - STOP + START));
- DIAPAL[START] := COL;
- END; { NEXT J }
- END ELSE BEGIN
- FOR J := 1 TO INCR DO BEGIN
- COL := DIAPAL[START];
- MOVE(DIAPAL[SUCC(START)],
- DIAPAL[START],
- SIZEOF(VGAPALETTETYP) - 3 * (256 - STOP + START));
- DIAPAL[STOP] := COL;
- END; { NEXT J }
- END;
- END;
- END; { WITH }
- END; { NEXT I }
- END; { IF ANIMATE }
- END; { NEWI1C }
-
-
- PROCEDURE NEWDELAY(ZEIT:WORD);
- VAR START,STOP : LONGINT;
- R : REAL;
- CH1 : CHAR;
- BEGIN
- START := READTIMER;
- REPEAT
- R := ELAPSEDTIME(START,STOP); { ZEITVERBRATER IST FÜR 20 MHz- NEAT NÖTIG }
- STOP := READTIMER;
- UNTIL (ROUND(ELAPSEDTIME(START,STOP)) >= (10 * LONGINT(ZEIT))) OR
- KEYPRESSED OR MOUSEPRESSED;
- CH1 := ' ';
- WHILE KEYPRESSED DO CH1 := READKEY;
- IF CH1 = ^[ THEN AUS;
- END;
-
-
- PROCEDURE CHECKESC;
- VAR MKB : WORD;
- BEGIN
- IF KEYPRESSED THEN BEGIN
- IF READKEY = ^[ THEN AUS;
- WHILE KEYPRESSED DO IF READKEY = ^[ THEN AUS;
- END;
- IF MOUSEPRESSED THEN BEGIN
- MKB := READKEYORBUTTON;
- IF MKB = MOUSERT THEN AUS;
- END;
- END; { CHECKESC }
-
-
- PROCEDURE MYEXIT;
- BEGIN
- IF OLDI1C <> NIL THEN SETINTVEC($1C,OLDI1C);
- EXITPROC := EXITSAVE;
- END; { MYEXIT }
-
-
- PROCEDURE AUS;
- BEGIN
- {$I-}
- CHDIR(QUELLDIR);
- {$I+}
- IF NOT GRAPHEXIT THEN TEXTMODE(CO80);
- HALT(3);
- END; { AUS }
-
-
- { DIE ETWAS UMFANGREICHERE AUFBEREITUNG DES PATHNAMENS IST LEIDER NICHT
- ZU UMGEHEN !
- }
- FUNCTION PATHNAME(NAME:STRING):STRING;
- VAR S : STRING;
- BEGIN
- IF LENGTH(NAME) = 0 THEN BEGIN
- PATHNAME := '';
- EXIT;
- END;
- S := JUSTPATHNAME(NAME);
- IF NOT (S[LENGTH(S)] IN ['\',':']) THEN S := S + '\';
- PATHNAME := S;
- END; { PATHNAME }
-
-
- END.
-