home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / MADTRB28.ZIP / FUNCTION.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1984-11-11  |  3.4 KB  |  144 lines

  1. (*    THIS SOURCE CODE CONTAINS SEVERAL USEFUL FUNCTIONS FOR TURBO PASCAL.
  2.       THIS IS A SOURCE CODE AND SHOULD NOT BE COMPILED SEPARATELY.  IN
  3.       ORDER TO USE THESE FUNCTIONS, A PROGRAM USING THESE SHOULD INCLUDE
  4.       THE STATEMENT '{$I FUNCTION.PAS}', AND THIS PROGRAM SHOULD BE ON
  5.       THE SAME DISK AS THE CALLING PROGRAM.     *)
  6.  
  7. TYPE
  8.    ZZZZZ1 = STRING[1];
  9.    ZZZZZ5 = STRING[11];
  10.    ZZZZZ2 = STRING[80];
  11.  
  12. FUNCTION TAB(TABSPACE:INTEGER): ZZZZZ1;
  13.    BEGIN
  14.    GOTOXY(TABSPACE, WHEREY);
  15.    TAB:='';
  16.    END;
  17.  
  18. FUNCTION SPC(SPCE:INTEGER): ZZZZZ2;
  19.    TYPE
  20.       ZZZZZ3=STRING[80];
  21.  
  22.    VAR
  23.       ZZZZZ4:ZZZZZ3;
  24.  
  25.    BEGIN
  26.    ZZZZZ4:='';
  27.    WHILE SPCE<>0 DO
  28.       BEGIN
  29.       SPCE:=SPCE-1;
  30.       ZZZZZ4:=ZZZZZ4+' ';
  31.       END;
  32.    SPC:=ZZZZZ4;
  33.    END;
  34.  
  35. FUNCTION MIN(INT1, INT2:INTEGER):INTEGER;
  36.    BEGIN
  37.    IF INT1>INT2 THEN MIN:=INT2 ELSE MIN:=INT1;
  38.    END;
  39.  
  40. FUNCTION MAX(INT1, INT2:INTEGER):INTEGER;
  41.    BEGIN
  42.    IF INT1>INT2 THEN MAX:=INT1 ELSE MAX:=INT2;
  43.    END;
  44.  
  45. FUNCTION MINR(REAL1, REAL2:REAL):REAL;
  46.    BEGIN
  47.    IF REAL1>REAL2 THEN MINR:=REAL2 ELSE MINR:=REAL1;
  48.    END;
  49.  
  50. FUNCTION MAXR(REAL1, REAL2:REAL):REAL;
  51.    BEGIN
  52.    IF REAL1>REAL2 THEN MAXR:=REAL1 ELSE MAXR:=REAL2;
  53.    END;
  54.  
  55. PROCEDURE SWITCH(VAR INT1, INT2:INTEGER);
  56.    VAR
  57.       TEMP: INTEGER;
  58.  
  59.  
  60.    BEGIN
  61.    TEMP:=INT1;
  62.    INT1:=INT2;
  63.    INT2:=TEMP;
  64.    END;
  65.  
  66. PROCEDURE SWITCHR(VAR REAL1, REAL2:REAL);
  67.    VAR
  68.       TEMP: REAL;
  69.  
  70.    BEGIN
  71.    TEMP:=REAL1;
  72.    REAL1:=REAL2;
  73.    REAL2:=TEMP;
  74.    END;
  75.  
  76. FUNCTION DATE:ZZZZZ5;
  77.  
  78.    TYPE
  79.       RESULT = RECORD
  80.                AX,BX,CX,DX,BP,SI,DI,DS,ES,FLAGS: INTEGER;
  81.                END;
  82.       STRING11 = STRING[11];
  83.  
  84.    VAR
  85.       DATERESULT: RESULT;
  86.       PARTDATE, TMPDATE: STRING11;
  87.  
  88.    BEGIN
  89.       PARTDATE := '           ';
  90.       DATERESULT.AX := $2A00;
  91.       INTR($21,DATERESULT);
  92.       STR(DATERESULT.DX DIV 256, TMPDATE);
  93.       IF LENGTH(TMPDATE) = 1 THEN TMPDATE := ' ' + TMPDATE;
  94.       INSERT(TMPDATE, PARTDATE, 1);
  95.       PARTDATE[3] := '-';
  96.       STR(DATERESULT.DX MOD 256, TMPDATE);
  97.       IF LENGTH(TMPDATE) = 1 THEN TMPDATE := ' ' + TMPDATE;
  98.       INSERT(TMPDATE, PARTDATE, 4);
  99.       PARTDATE[6] := '-';
  100.       STR(DATERESULT.CX, TMPDATE);
  101.       INSERT(TMPDATE, PARTDATE, 7);
  102.       DATE := PARTDATE;
  103.    END;
  104.  
  105. FUNCTION TIME: ZZZZZ5;
  106.  
  107.    TYPE
  108.       RESULT = RECORD
  109.                AX,BX,CX,DX,BP,SI,DI,DS,ES,FLAGS: INTEGER;
  110.                END;
  111.       STRING11 = STRING[11];
  112.  
  113.    VAR
  114.       TIMERESULT: RESULT;
  115.       PARTTIME, TMPTIME: STRING11;
  116.  
  117.    BEGIN
  118.       PARTTIME := '           ';
  119.       TIMERESULT.AX := $2C00;
  120.       INTR($21,TIMERESULT);
  121.       STR(TIMERESULT.CX DIV 256, TMPTIME);
  122.       IF LENGTH(TMPTIME) = 1 THEN TMPTIME := ' ' + TMPTIME;
  123.       INSERT(TMPTIME, PARTTIME, 1);
  124.       PARTTIME[3] := ':';
  125.       STR(TIMERESULT.CX MOD 256, TMPTIME);
  126.       IF LENGTH(TMPTIME) = 1 THEN TMPTIME := '0' + TMPTIME;
  127.       INSERT(TMPTIME, PARTTIME, 4);
  128.       PARTTIME[6] := ':';
  129.       STR(TIMERESULT.DX DIV 256, TMPTIME);
  130.       IF LENGTH(TMPTIME) = 1 THEN TMPTIME := '0' + TMPTIME;
  131.       INSERT(TMPTIME, PARTTIME, 7);
  132.       PARTTIME[9] := ':';
  133.       STR(TIMERESULT.DX MOD 256, TMPTIME);
  134.       IF LENGTH(TMPTIME) = 1 THEN TMPTIME := '0' + TMPTIME;
  135.       INSERT(TMPTIME, PARTTIME, 10);
  136.       TIME := PARTTIME;
  137.    END;
  138.  
  139. FUNCTION FLOAT(INT1: INTEGER): REAL;
  140.  
  141.    BEGIN
  142.       FLOAT:=INT1/1;
  143.    END;
  144.