PROGRAM Float
?
?  timing test displayed in TDI Modula 2 advertisement
?  Amazing Computing Volume2 #8,1987 p.75
?  program averages 1.42 seconds on 68000 in single precision
?  program averages .44 seconds on 68020 in single precision
?  program averages 19.08 seconds on 68000 in double precision
?  program averages .36 seconds on 68020/68881 in double precision
?
?
REAL X,Y
INTEGER I
DATA (X,1.)
TYPE DateStamp IS RECORD
   INTEGER DAYS,MINUTES,TICKS
ENDTYPE
DateStamp A,B

SUBPROGRAM
   SUBROUTINE ElapsedSeconds

I=DOSTIME(@A)  ; ? get initial system time
FOR I=1 TO 1000
   Y=SIN(X)
   Y=LN(X)
   Y=EXP(X)
   Y=SQRT(X)
   Y=ATAN(X)
   X=X+.01
NEXT I
I=DOSTIME(@B) ;  ? get final system time
PRINT "Reported Time:",
ElapsedSeconds(@A,@B)
END
SUBROUTINE ElapsedSeconds
PARAMETER
   PTR_TO DateStamp TBEGIN,TEND
LOCAL
   INTEGER TotSeconds
&QUICK 0
TotSeconds=0
TotSeconds=(TEND.DAYS-TBEGIN.DAYS)*4320000+(TEND.MINUTES-TBEGIN.MINUTES)*3000+(TEND.TICKS-TBEGIN.TICKS)
PRINT TotSeconds/(50.0)
GRETURN
END
