summaryrefslogtreecommitdiff
path: root/app/speedtest
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2019-02-11 11:49:19 +0100
committerLars-Dominik Braun <lars@6xq.net>2019-02-11 11:49:39 +0100
commit98cab31fc3659e33aef260efca55bf9f1753164c (patch)
treef1affa84049ef9b268e6c4f521f000478b0f3a8e /app/speedtest
parent71e2b36ccd05ea678e62e32ee6245df2b8d6ac17 (diff)
downloadeumel-src-98cab31fc3659e33aef260efca55bf9f1753164c.tar.gz
eumel-src-98cab31fc3659e33aef260efca55bf9f1753164c.tar.bz2
eumel-src-98cab31fc3659e33aef260efca55bf9f1753164c.zip
Add source files from Michael
Diffstat (limited to 'app/speedtest')
-rw-r--r--app/speedtest/1986/doc/MEM64180.PRT103
-rw-r--r--app/speedtest/1986/doc/MEMATARI.PRT101
-rw-r--r--app/speedtest/1986/doc/MEMB108.PRT99
-rw-r--r--app/speedtest/1986/doc/MEMB1082.PRT112
-rw-r--r--app/speedtest/1986/doc/MEMBIC10.PRT100
-rw-r--r--app/speedtest/1986/doc/MEMBIC8.PRT101
-rw-r--r--app/speedtest/1986/doc/MEMCLA15.PRT100
-rw-r--r--app/speedtest/1986/doc/MEMRUC12.PRT101
-rw-r--r--app/speedtest/1986/doc/MEMV30.PRT100
-rw-r--r--app/speedtest/1986/src/convert operation396
-rw-r--r--app/speedtest/1986/src/gen.benchmark98
-rw-r--r--app/speedtest/1986/src/integer operation614
-rw-r--r--app/speedtest/1986/src/notice102
-rw-r--r--app/speedtest/1986/src/real operation519
-rw-r--r--app/speedtest/1986/src/run down logic429
-rw-r--r--app/speedtest/1986/src/speed tester209
-rw-r--r--app/speedtest/1986/src/text operation1401
17 files changed, 4685 insertions, 0 deletions
diff --git a/app/speedtest/1986/doc/MEM64180.PRT b/app/speedtest/1986/doc/MEM64180.PRT
new file mode 100644
index 0000000..36f495e
--- /dev/null
+++ b/app/speedtest/1986/doc/MEM64180.PRT
@@ -0,0 +1,103 @@
+#type("17.klein")#
+ BASIS 108 mit 64180, SHARD 8, 64180/6.144
+ =========================================
+
+
+Wiederholungsfaktor fr schnelle Operationen : 32766
+Wiederholungsfaktor fr langsame Operationen : 16384
+Gesamtlaufzeit (CPU): 98.95774 msec
+
+ Steuerkonstrukte
+
+FOR REP .12208 msec
+WHILE REP .11903 msec
+UNTIL REP .10682 msec
+IF .03968 msec
+SELECT .17701 msec
+PROC .29299 msec
+PROC (INT) .35097 msec
+PROC (INT, INT) .40896 msec
+ ---------------
+ 1.61754 msec
+ Integer Operationen
+
+INT := (Paketdaten) .05188 msec
+INT := (Prozedurdaten) .07630 msec
+INT := (Parameter) .12818 msec
+ROW INT [i] .24416 msec
+INT = .06409 msec
+INT <= .06409 msec
+INT + .07630 msec
+INT * .18312 msec
+DIV .34487 msec
+INCR .05493 msec
+MOD .36623 msec
+abs (INT) .89727 msec
+min (INT , INT) .89117 msec
+ ----------------
+ 3.44259 msec
+ Real Operationen
+
+REAL := .07935 msec
+ROW REAL [i] .29299 msec
+REAL = .18617 msec
+REAL <= .13123 msec
+REAL + .44864 msec
+REAL * 1.36718 msec
+REAL / 2.64892 msec
+INCR 1.08344 msec
+MOD 5.84106 msec
+abs (REAL) .99799 msec
+min (REAL, REAL) .94610 msec
+ -----------------
+ 14.02307 msec
+ Text Operationen
+
+TEXT := (1) .08545 msec
+TEXT := (10) .45169 msec
+TEXT := (30) .55545 msec
+ROW TEXT [i] .30214 msec
+TEXT = (1) .10682 msec
+TEXT = (10) .35097 msec
+TEXT = (30) .58903 msec
+TEXT <= (1) .20753 msec
+TEXT <= (10) .38454 msec
+TEXT <= (30) .61649 msec
+TEXT * (Faktor 1) 1.41305 msec
+CAT (1) .34792 msec
+TEXT + (1) 1.15669 msec
+TEXT + (10) 2.22778 msec
+TEXT + (30) 2.73437 msec
+length (1) .07935 msec
+length (10) .07630 msec
+length (30) .08240 msec
+SUB (1) .17701 msec
+SUB (10) .17701 msec
+SUB (30) .22890 msec
+subtext (TEXT, INT, INT) (1) .22584 msec
+subtext (TEXT, INT, INT) (10) .22584 msec
+subtext (TEXT, INT, INT) (30) .27773 msec
+replace (TEXT, TEXT, INT) (1) .24721 msec
+replace (TEXT, TEXT, INT) (10) .24416 msec
+replace (TEXT, TEXT, INT) (30) .32045 msec
+text (TEXT, INT, INT) (1) 2.45971 msec
+text (TEXT, INT, INT) (10) 2.37426 msec
+text (TEXT, INT, INT) (30) 2.75268 msec
+pos (TEXT, TEXT, INT) (1) .30825 msec
+pos (TEXT, TEXT, INT) (10) .32351 msec
+pos (TEXT, TEXT, INT) (30) .42422 msec
+ ----------------
+ 22.53475 msec
+ Konvertierungs Operationen
+
+int (REAL) 2.21266 msec
+real (INT) 1.15058 msec
+int (TEXT) 10.32104 msec
+text (INT) 1.98376 msec
+text (INT, INT) 6.70776 msec
+text (REAL) 28.53393 msec
+text (REAL, INT, INT) 6.24389 msec
+code (INT) .07630 msec
+code (TEXT) .10987 msec
+ -----------------
+ 57.33979 msec
diff --git a/app/speedtest/1986/doc/MEMATARI.PRT b/app/speedtest/1986/doc/MEMATARI.PRT
new file mode 100644
index 0000000..7512919
--- /dev/null
+++ b/app/speedtest/1986/doc/MEMATARI.PRT
@@ -0,0 +1,101 @@
+ ATARI ST 68000-8
+ =====================
+
+
+Wiederholungsfaktor fr schnelle Operationen : 32766
+Wiederholungsfaktor fr langsame Operationen : 16383
+
+
+ Steuerkonstrukte
+
+FOR REP .64701 msec
+WHILE REP .54630 msec
+UNTIL REP .43338 msec
+IF .31130 msec
+SELECT .93389 msec
+PROC 1.43441 msec
+PROC (INT) 1.67247 msec
+PROC (INT, INT) 1.91967 msec
+
+
+ Integer Operationen
+
+INT := (Paketdaten) .36318 msec
+INT := (Prozedurdaten) .39370 msec
+INT := (Parameter) .58292 msec
+ROW INT [i] 1.05597 msec
+INT = .43643 msec
+INT <= .43643 msec
+INT + .50967 msec
+INT * .69890 msec
+DIV .73857 msec
+INCR .39980 msec
+MOD .75383 msec
+abs (INT) 3.92175 msec
+min (INT , INT) 3.86987 msec
+
+
+ Real Operationen
+
+REAL := .38760 msec
+ROW REAL [i] 1.06513 msec
+REAL = .85149 msec
+REAL <= .71721 msec
+REAL + .94305 msec
+REAL * 2.80168 msec
+REAL / 5.93298 msec
+INCR 3.35409 msec
+MOD 15.60154 msec
+abs (REAL) 4.12928 msec
+min (REAL, REAL) 3.98584 msec
+
+
+ Text Operationen
+
+TEXT := (1) .56461 msec
+TEXT := (10) 1.04376 msec
+TEXT := (30) 2.43850 msec
+ROW TEXT [i] 1.26350 msec
+TEXT = (1) .68974 msec
+TEXT = (10) 1.04376 msec
+TEXT = (30) 2.26759 msec
+TEXT <= (1) 1.08954 msec
+TEXT <= (10) 1.17195 msec
+TEXT <= (30) 2.39578 msec
+TEXT * (Faktor 1) 6.59525 msec
+CAT (1) 1.67552 msec
+TEXT + (1) 5.10590 msec
+TEXT + (10) 7.75194 msec
+TEXT + (30) 10.13245 msec
+length (1) .48221 msec
+length (10) .48221 msec
+length (30) .50357 msec
+SUB (1) .99188 msec
+SUB (10) .98883 msec
+SUB (30) 1.47409 msec
+subtext (TEXT, INT, INT) (1) 1.13532 msec
+subtext (TEXT, INT, INT) (10) 1.13227 msec
+subtext (TEXT, INT, INT) (30) 1.61448 msec
+replace (TEXT, TEXT, INT) (1) 1.15058 msec
+replace (TEXT, TEXT, INT) (10) 1.18721 msec
+replace (TEXT, TEXT, INT) (30) 1.73350 msec
+text (TEXT, INT, INT) (1) 10.85882 msec
+text (TEXT, INT, INT) (10) 10.23012 msec
+text (TEXT, INT, INT) (30) 11.81102 msec
+pos (TEXT, TEXT, INT) (1) 1.51682 msec
+pos (TEXT, TEXT, INT) (10) 1.56565 msec
+pos (TEXT, TEXT, INT) (30) 2.35000 msec
+
+
+ Konvertierungs Operationen
+
+int (REAL) 9.87304 msec
+real (INT) 5.28597 msec
+int (TEXT) 50.36318 msec
+text (INT) 5.92077 msec
+text (INT, INT) 26.21010 msec
+text (REAL) 124.03101 msec
+text (REAL, INT, INT) 27.72996 msec
+code (INT) .49747 msec
+code (TEXT) .65922 msec
+
diff --git a/app/speedtest/1986/doc/MEMB108.PRT b/app/speedtest/1986/doc/MEMB108.PRT
new file mode 100644
index 0000000..ac9527c
--- /dev/null
+++ b/app/speedtest/1986/doc/MEMB108.PRT
@@ -0,0 +1,99 @@
+ Basis108 HD64180-6.144
+ ===========================
+
+Wiederholungsfaktor fr schnelle Operationen : 32766
+Wiederholungsfaktor fr langsame Operationen : 16383
+
+
+ Steuerkonstrukte
+
+FOR REP .17701 msec
+WHILE REP .18312 msec
+UNTIL REP .14344 msec
+IF .08545 msec
+SELECT .30214 msec
+PROC .48831 msec
+PROC (INT) .57682 msec
+PROC (INT, INT) .66838 msec
+
+
+ Integer Operationen
+
+INT := (Paketdaten) .10377 msec
+INT := (Prozedurdaten) .14344 msec
+INT := (Parameter) .21974 msec
+ROW INT [i] .38760 msec
+INT = .12208 msec
+INT <= .12513 msec
+INT + .14344 msec
+INT * .24721 msec
+DIV .57377 msec
+INCR .10987 msec
+MOD .60734 msec
+abs (INT) 1.57480 msec
+min (INT , INT) 1.41915 msec
+
+
+ Real Operationen
+
+REAL := .13429 msec
+ROW REAL [i] .41506 msec
+REAL = .28993 msec
+REAL <= .20143 msec
+REAL + .70805 msec
+REAL * 2.18519 msec
+REAL / 4.24220 msec
+INCR 1.73350 msec
+MOD 9.34505 msec
+abs (REAL) 1.55344 msec
+min (REAL, REAL) 1.47409 msec
+
+
+ Text Operationen
+
+TEXT := (1) .15565 msec
+TEXT := (10) .39980 msec
+TEXT := (30) .68058 msec
+ROW TEXT [i] .43338 msec
+TEXT = (1) .19227 msec
+TEXT = (10) .40286 msec
+TEXT = (30) .78740 msec
+TEXT <= (1) .35708 msec
+TEXT <= (10) .44864 msec
+TEXT <= (30) .82708 msec
+TEXT * (Faktor 1) 2.29201 msec
+CAT (1) .57987 msec
+TEXT + (1) 1.84948 msec
+TEXT + (10) 2.89324 msec
+TEXT + (30) 3.16792 msec
+length (1) .14649 msec
+length (10) .14344 msec
+length (30) .15260 msec
+SUB (1) .30825 msec
+SUB (10) .30825 msec
+SUB (30) .39370 msec
+subtext (TEXT, INT, INT) (1) .36318 msec
+subtext (TEXT, INT, INT) (10) .36318 msec
+subtext (TEXT, INT, INT) (30) .44253 msec
+replace (TEXT, TEXT, INT) (1) .41201 msec
+replace (TEXT, TEXT, INT) (10) .41506 msec
+replace (TEXT, TEXT, INT) (30) .53409 msec
+text (TEXT, INT, INT) (1) 4.08961 msec
+text (TEXT, INT, INT) (10) 3.72337 msec
+text (TEXT, INT, INT) (30) 4.05298 msec
+pos (TEXT, TEXT, INT) (1) .51578 msec
+pos (TEXT, TEXT, INT) (10) .54019 msec
+pos (TEXT, TEXT, INT) (30) .66227 msec
+
+
+ Konvertierungs Operationen
+
+int (REAL) 3.59519 msec
+real (INT) 1.92272 msec
+int (TEXT) 17.15803 msec
+text (INT) 1.99902 msec
+text (INT, INT) 9.44882 msec
+text (REAL) 45.09553 msec
+text (REAL, INT, INT) 10.03479 msec
+code (INT) .14039 msec
+code (TEXT) .19532 msec
diff --git a/app/speedtest/1986/doc/MEMB1082.PRT b/app/speedtest/1986/doc/MEMB1082.PRT
new file mode 100644
index 0000000..b52bb8a
--- /dev/null
+++ b/app/speedtest/1986/doc/MEMB1082.PRT
@@ -0,0 +1,112 @@
+#type("17.klein")#
+ Basis108/Urlader #326 HD64180-6.144 10.10.86
+ =====================================
+
+Wiederholungsfaktor fr schnelle Operationen : 32766
+Wiederholungsfaktor fr langsame Operationen : 16383
+
+Anmerkung: In der Version 1.8.0 (Urlader 175 #326) ist der Basis in fast
+allen Punkten schneller geworden als mit Urlader 173 #073 (bis zu 40%!).
+
+Langsamer sind die Vergleichsoperationen bei Texten auf dem Heap und die
+Integermultiplikation, sowie abhngige davon (ROW-TEXT Subscript mit mehr
+als zwei Elementen), da bei diesem Benchmakr die EUMEL0-INT-Multiplikation
+nicht durch den HD64180-Prozessorbefehl MULT ersetzt wurde.
+
+Der FMOV Befehl (REAL :=) ist schneller als auf der
+M24, sowie einige Vergleiche von langen Texten. Der Test auf der M24 war mit
+einem V30 Prozessor durchgefhrt worden.
+
+
+ Steuerkonstrukte
+
+FOR REP .17396 msec
+WHILE REP .17396 msec
+UNTIL REP .14955 msec
+IF .05799 msec
+SELECT .24721 msec
+PROC .41201 msec
+PROC (INT) .49441 msec
+PROC (INT, INT) .66532 msec
+
+
+ Integer Operationen
+
+INT := (Paketdaten) .07630 msec
+INT := (Prozedurdaten) .11292 msec
+INT := (Parameter) .18922 msec
+ROW INT [i] .34182 msec
+INT = .08851 msec
+INT <= .09156 msec
+INT + .10987 msec
+INT * .25942 msec
+DIV .48831 msec
+INCR .07630 msec
+MOD .51578 msec
+abs (INT) 1.28792 msec
+min (INT , INT) 1.27876 msec
+
+
+ Real Operationen
+
+REAL := .10987 msec (schneller als M24)
+ROW REAL [i] .40591 msec
+REAL = .25636 msec
+REAL <= .17701 msec
+REAL + .63175 msec
+REAL * 1.93798 msec (schneller als M24)
+REAL / 3.75084 msec
+INCR 1.55649 msec
+MOD 8.37148 msec
+abs (REAL) 1.43441 msec
+min (REAL, REAL) 1.35812 msec
+
+
+ Text Operationen
+
+TEXT := (1) .11903 msec
+TEXT := (10) .64091 msec
+TEXT := (30) .59513 msec
+ROW TEXT [i] .42727 msec
+TEXT = (1) .14955 msec (schneller als M24)
+TEXT = (10) .50052 msec
+TEXT = (30) .66838 msec (schneller als M24)
+TEXT <= (1) .29299 msec
+TEXT <= (10) .54019 msec
+TEXT <= (30) .71415 msec (schneller als M24)
+TEXT * (Faktor 1) 2.03259 msec
+CAT (1) .49136 msec
+TEXT + (1) 1.66331 msec
+TEXT + (10) 2.57889 msec
+TEXT + (30) 2.79863 msec
+length (1) .10987 msec
+length (10) .10987 msec
+length (30) .11597 msec
+SUB (1) .25026 msec
+SUB (10) .25026 msec
+SUB (30) .32351 msec
+subtext (TEXT, INT, INT) (1) .32045 msec
+subtext (TEXT, INT, INT) (10) .32045 msec
+subtext (TEXT, INT, INT) (30) .39370 msec
+replace (TEXT, TEXT, INT) (1) .34792 msec
+replace (TEXT, TEXT, INT) (10) .35097 msec
+replace (TEXT, TEXT, INT) (30) .45779 msec
+text (TEXT, INT, INT) (1) 3.54331 msec
+text (TEXT, INT, INT) (10) 3.40902 msec
+text (TEXT, INT, INT) (30) 3.75084 msec
+pos (TEXT, TEXT, INT) (1) .43643 msec
+pos (TEXT, TEXT, INT) (10) .45779 msec
+pos (TEXT, TEXT, INT) (30) .56461 msec
+
+
+ Konvertierungs Operationen
+
+int (REAL) 3.17097 msec
+real (INT) 1.65110 msec
+int (TEXT) 14.84160 msec
+text (INT) 2.84746 msec
+text (INT, INT) 9.62888 msec
+text (REAL) 41.02728 msec
+text (REAL, INT, INT) 8.95746 msec
+code (INT) .10682 msec
+code (TEXT) .15260 msec
diff --git a/app/speedtest/1986/doc/MEMBIC10.PRT b/app/speedtest/1986/doc/MEMBIC10.PRT
new file mode 100644
index 0000000..259688d
--- /dev/null
+++ b/app/speedtest/1986/doc/MEMBIC10.PRT
@@ -0,0 +1,100 @@
+ BICOS SYSTEM 286/20 80286-10
+ ===================================
+
+
+Wiederholungsfaktor fr schnelle Operationen : 32766
+Wiederholungsfaktor fr langsame Operationen : 16383
+
+
+ Steuerkonstrukte
+
+FOR REP .03357 msec
+WHILE REP .02747 msec
+UNTIL REP .02442 msec
+IF .01221 msec
+SELECT .07630 msec
+PROC .08240 msec
+PROC (INT) .09461 msec
+PROC (INT, INT) .10987 msec
+
+
+ Integer Operationen
+
+INT := (Paketdaten) .01526 msec
+INT := (Prozedurdaten) .02136 msec
+INT := (Parameter) .03357 msec
+ROW INT [i] .09766 msec
+INT = .02136 msec
+INT <= .02136 msec
+INT + .01831 msec
+INT * .06104 msec
+DIV .07019 msec
+INCR .01221 msec
+MOD .07019 msec
+abs (INT) .31435 msec
+min (INT , INT) .25331 msec
+
+
+ Real Operationen
+
+REAL := .04273 msec
+ROW REAL [i] .12818 msec
+REAL = .10071 msec
+REAL <= .06714 msec
+REAL + .24416 msec
+REAL * .92474 msec
+REAL / 1.70604 msec
+INCR .49441 msec
+MOD 3.42733 msec
+abs (REAL) .37234 msec
+min (REAL, REAL) .33877 msec
+
+
+ Text Operationen
+
+TEXT := (1) .04883 msec
+TEXT := (10) .24721 msec
+TEXT := (30) .20448 msec
+ROW TEXT [i] .14039 msec
+TEXT = (1) .06104 msec
+TEXT = (10) .20753 msec
+TEXT = (30) .31740 msec
+TEXT <= (1) .10987 msec
+TEXT <= (10) .21669 msec
+TEXT <= (30) .32656 msec
+TEXT * (Faktor 1) .49747 msec
+CAT (1) .18312 msec
+TEXT + (1) .45169 msec
+TEXT + (10) .74162 msec
+TEXT + (30) .77825 msec
+length (1) .04273 msec
+length (10) .04273 msec
+length (30) .04273 msec
+SUB (1) .09461 msec
+SUB (10) .09156 msec
+SUB (30) .12208 msec
+subtext (TEXT, INT, INT) (1) .11597 msec
+subtext (TEXT, INT, INT) (10) .11597 msec
+subtext (TEXT, INT, INT) (30) .14344 msec
+replace (TEXT, TEXT, INT) (1) .12208 msec
+replace (TEXT, TEXT, INT) (10) .12208 msec
+replace (TEXT, TEXT, INT) (30) .15565 msec
+text (TEXT, INT, INT) (1) .80877 msec
+text (TEXT, INT, INT) (10) .83928 msec
+text (TEXT, INT, INT) (30) .96136 msec
+pos (TEXT, TEXT, INT) (1) .15870 msec
+pos (TEXT, TEXT, INT) (10) .16480 msec
+pos (TEXT, TEXT, INT) (30) .20143 msec
+
+
+ Konvertierungs Operationen
+
+int (REAL) .79045 msec
+real (INT) .35708 msec
+int (TEXT) 4.05603 msec
+text (INT) .61649 msec
+text (INT, INT) 2.32253 msec
+text (REAL) 12.34511 msec
+text (REAL, INT, INT) 2.25539 msec
+code (INT) .03968 msec
+code (TEXT) .05493 msec
diff --git a/app/speedtest/1986/doc/MEMBIC8.PRT b/app/speedtest/1986/doc/MEMBIC8.PRT
new file mode 100644
index 0000000..315e1c2
--- /dev/null
+++ b/app/speedtest/1986/doc/MEMBIC8.PRT
@@ -0,0 +1,101 @@
+ BICOS 286/20 INTEL80286-8
+ ==========================================
+
+
+Wiederholungsfaktor fr schnelle Operationen : 32766
+Wiederholungsfaktor fr langsame Operationen : 16383
+
+
+ Steuerkonstrukte
+
+FOR REP .04273 msec
+WHILE REP .03968 msec
+UNTIL REP .03357 msec
+IF .01831 msec
+SELECT .10071 msec
+PROC .10377 msec
+PROC (INT) .12208 msec
+PROC (INT, INT) .13734 msec
+
+
+ Integer Operationen
+
+INT := (Paketdaten) .01831 msec
+INT := (Prozedurdaten) .02442 msec
+INT := (Parameter) .04273 msec
+ROW INT [i] .12513 msec
+INT = .02442 msec
+INT <= .02136 msec
+INT + .02442 msec
+INT * .07935 msec
+DIV .08545 msec
+INCR .01831 msec
+MOD .08545 msec
+abs (INT) .39980 msec
+min (INT , INT) .32045 msec
+
+
+ Real Operationen
+
+REAL := .05188 msec
+ROW REAL [i] .16480 msec
+REAL = .12208 msec
+REAL <= .08240 msec
+REAL + .30825 msec
+REAL * 1.17805 msec
+REAL / 2.16688 msec
+INCR .63175 msec
+MOD 4.30324 msec
+abs (REAL) .47000 msec
+min (REAL, REAL) .42117 msec
+
+
+ Text Operationen
+
+TEXT := (1) .06104 msec
+TEXT := (10) .30519 msec
+TEXT := (30) .25636 msec
+ROW TEXT [i] .17396 msec
+TEXT = (1) .07935 msec
+TEXT = (10) .25636 msec
+TEXT = (30) .39675 msec
+TEXT <= (1) .13734 msec
+TEXT <= (10) .26857 msec
+TEXT <= (30) .40896 msec
+TEXT * (Faktor 1) .61954 msec
+CAT (1) .22890 msec
+TEXT + (1) .57377 msec
+TEXT + (10) .93389 msec
+TEXT + (30) .98883 msec
+length (1) .04883 msec
+length (10) .05188 msec
+length (30) .05188 msec
+SUB (1) .11903 msec
+SUB (10) .11903 msec
+SUB (30) .15565 msec
+subtext (TEXT, INT, INT) (1) .14344 msec
+subtext (TEXT, INT, INT) (10) .14955 msec
+subtext (TEXT, INT, INT) (30) .18006 msec
+replace (TEXT, TEXT, INT) (1) .15565 msec
+replace (TEXT, TEXT, INT) (10) .15565 msec
+replace (TEXT, TEXT, INT) (30) .19532 msec
+text (TEXT, INT, INT) (1) 1.02545 msec
+text (TEXT, INT, INT) (10) 1.06208 msec
+text (TEXT, INT, INT) (30) 1.21467 msec
+pos (TEXT, TEXT, INT) (1) .20143 msec
+pos (TEXT, TEXT, INT) (10) .21058 msec
+pos (TEXT, TEXT, INT) (30) .25331 msec
+
+
+ Konvertierungs Operationen
+
+int (REAL) .99799 msec
+real (INT) .44864 msec
+int (TEXT) 5.13947 msec
+text (INT) .78130 msec
+text (INT, INT) 2.93597 msec
+text (REAL) 15.58323 msec
+text (REAL, INT, INT) 2.85662 msec
+code (INT) .04883 msec
+code (TEXT) .07019 msec
+
diff --git a/app/speedtest/1986/doc/MEMCLA15.PRT b/app/speedtest/1986/doc/MEMCLA15.PRT
new file mode 100644
index 0000000..cd9213e
--- /dev/null
+++ b/app/speedtest/1986/doc/MEMCLA15.PRT
@@ -0,0 +1,100 @@
+
+ Classis AT 15 MHz / 80286
+ =========================
+
+Wiederholungsfaktor fr schnelle Operationen : 32766
+Wiederholungsfaktor fr langsame Operationen : 16383
+
+
+ Steuerkonstrukte
+
+FOR REP .02442 msec
+WHILE REP .02136 msec
+UNTIL REP .01831 msec
+IF .00916 msec
+SELECT .04883 msec
+PROC .05188 msec
+PROC (INT) .06104 msec
+PROC (INT, INT) .06714 msec
+
+
+ Integer Operationen
+
+INT := (Paketdaten) .00610 msec
+INT := (Prozedurdaten) .01221 msec
+INT := (Parameter) .02136 msec
+ROW INT [i] .06104 msec
+INT = .00916 msec
+INT <= .00916 msec
+INT + .00916 msec
+INT * .03662 msec
+DIV .04273 msec
+INCR .00916 msec
+MOD .04273 msec
+abs (INT) .18006 msec
+min (INT , INT) .16786 msec
+
+
+ Real Operationen
+
+REAL := .02442 msec
+ROW REAL [i] .08240 msec
+REAL = .07019 msec
+REAL <= .04883 msec
+REAL + .16786 msec
+REAL * .62260 msec
+REAL / 1.12312 msec
+INCR .33571 msec
+MOD 2.29506 msec
+abs (REAL) .25331 msec
+min (REAL, REAL) .22584 msec
+
+
+ Text Operationen
+
+TEXT := (1) .03052 msec
+TEXT := (10) .15870 msec
+TEXT := (30) .13429 msec
+ROW TEXT [i] .09156 msec
+TEXT = (1) .03968 msec
+TEXT = (10) .13734 msec
+TEXT = (30) .21058 msec
+TEXT <= (1) .07325 msec
+TEXT <= (10) .14039 msec
+TEXT <= (30) .21364 msec
+TEXT * (Faktor 1) .32656 msec
+CAT (1) .11903 msec
+TEXT + (1) .30214 msec
+TEXT + (10) .49441 msec
+TEXT + (30) .51883 msec
+length (1) .02442 msec
+length (10) .02442 msec
+length (30) .02442 msec
+SUB (1) .06104 msec
+SUB (10) .06104 msec
+SUB (30) .08240 msec
+subtext (TEXT, INT, INT) (1) .07630 msec
+subtext (TEXT, INT, INT) (10) .07630 msec
+subtext (TEXT, INT, INT) (30) .09156 msec
+replace (TEXT, TEXT, INT) (1) .07935 msec
+replace (TEXT, TEXT, INT) (10) .07935 msec
+replace (TEXT, TEXT, INT) (30) .10377 msec
+text (TEXT, INT, INT) (1) .54325 msec
+text (TEXT, INT, INT) (10) .55545 msec
+text (TEXT, INT, INT) (30) .63480 msec
+pos (TEXT, TEXT, INT) (1) .10071 msec
+pos (TEXT, TEXT, INT) (10) .10682 msec
+pos (TEXT, TEXT, INT) (30) .13123 msec
+
+
+ Konvertierungs Operationen
+
+int (REAL) .54630 msec
+real (INT) .23500 msec
+int (TEXT) 2.72844 msec
+text (INT) .41506 msec
+text (INT, INT) 1.55039 msec
+text (REAL) 8.32570 msec
+text (REAL, INT, INT) 1.56870 msec
+code (INT) .02747 msec
+code (TEXT) .03357 msec
diff --git a/app/speedtest/1986/doc/MEMRUC12.PRT b/app/speedtest/1986/doc/MEMRUC12.PRT
new file mode 100644
index 0000000..b9a8225
--- /dev/null
+++ b/app/speedtest/1986/doc/MEMRUC12.PRT
@@ -0,0 +1,101 @@
+#type ("17.klein")#
+ ruc-AT 80286/12 MHz
+ ========================
+
+
+Wiederholungsfaktor fr schnelle Operationen : 32766
+Wiederholungsfaktor fr langsame Operationen : 16383
+
+
+ Steuerkonstrukte
+
+FOR REP .03052 msec
+WHILE REP .03052 msec
+UNTIL REP .02747 msec
+IF .01221 msec
+SELECT .06409 msec
+PROC .06714 msec
+PROC (INT) .07935 msec
+PROC (INT, INT) .08851 msec
+
+
+ Integer Operationen
+
+INT := (Paketdaten) .00916 msec
+INT := (Prozedurdaten) .01221 msec
+INT := (Parameter) .02747 msec
+ROW INT [i] .07935 msec
+INT = .01526 msec
+INT <= .01221 msec
+INT + .01221 msec
+INT * .04883 msec
+DIV .05493 msec
+INCR .00916 msec
+MOD .05799 msec
+abs (INT) .22584 msec
+min (INT , INT) .21364 msec
+
+
+ Real Operationen
+
+REAL := .03052 msec
+ROW REAL [i] .10682 msec
+REAL = .08851 msec
+REAL <= .06409 msec
+REAL + .21058 msec
+REAL * .79351 msec
+REAL / 1.42831 msec
+INCR .42727 msec
+MOD 2.91155 msec
+abs (REAL) .32045 msec
+min (REAL, REAL) .28383 msec
+
+
+ Text Operationen
+
+TEXT := (1) .03968 msec
+TEXT := (10) .20143 msec
+TEXT := (30) .16786 msec
+ROW TEXT [i] .11292 msec
+TEXT = (1) .04883 msec
+TEXT = (10) .17091 msec
+TEXT = (30) .26552 msec
+TEXT <= (1) .08851 msec
+TEXT <= (10) .18006 msec
+TEXT <= (30) .27162 msec
+TEXT * (Faktor 1) .42422 msec
+CAT (1) .14955 msec
+TEXT + (1) .38149 msec
+TEXT + (10) .62260 msec
+TEXT + (30) .66532 msec
+length (1) .03357 msec
+length (10) .03357 msec
+length (30) .03357 msec
+SUB (1) .07630 msec
+SUB (10) .07630 msec
+SUB (30) .09766 msec
+subtext (TEXT, INT, INT) (1) .09766 msec
+subtext (TEXT, INT, INT) (10) .09461 msec
+subtext (TEXT, INT, INT) (30) .11903 msec
+replace (TEXT, TEXT, INT) (1) .10377 msec
+replace (TEXT, TEXT, INT) (10) .10071 msec
+replace (TEXT, TEXT, INT) (30) .13123 msec
+text (TEXT, INT, INT) (1) .68974 msec
+text (TEXT, INT, INT) (10) .71415 msec
+text (TEXT, INT, INT) (30) .81182 msec
+pos (TEXT, TEXT, INT) (1) .12818 msec
+pos (TEXT, TEXT, INT) (10) .13429 msec
+pos (TEXT, TEXT, INT) (30) .16786 msec
+
+
+ Konvertierungs Operationen
+
+int (REAL) .69279 msec
+real (INT) .29909 msec
+int (TEXT) 3.45480 msec
+text (INT) .52799 msec
+text (INT, INT) 1.95935 msec
+text (REAL) 10.56583 msec
+text (REAL, INT, INT) 1.98376 msec
+code (INT) .03357 msec
+code (TEXT) .04883 msec
diff --git a/app/speedtest/1986/doc/MEMV30.PRT b/app/speedtest/1986/doc/MEMV30.PRT
new file mode 100644
index 0000000..0d259be
--- /dev/null
+++ b/app/speedtest/1986/doc/MEMV30.PRT
@@ -0,0 +1,100 @@
+ M 24 mit V 30 V 30 /8Mhz
+ =============================
+
+
+Wiederholungsfaktor fr schnelle Operationen : 32766
+Wiederholungsfaktor fr langsame Operationen : 16383
+
+
+ Steuerkonstrukte
+
+FOR REP .07325 msec
+WHILE REP .07019 msec
+UNTIL REP .06409 msec
+IF .03968 msec
+SELECT .18006 msec
+PROC .18312 msec
+PROC (INT) .21058 msec
+PROC (INT, INT) .24416 msec
+
+
+ Integer Operationen
+
+INT := (Paketdaten) .03052 msec
+INT := (Prozedurdaten) .04273 msec
+INT := (Parameter) .07325 msec
+ROW INT [i] .20143 msec
+INT = .04273 msec
+INT <= .03968 msec
+INT + .04273 msec
+INT * .12513 msec
+DIV .13734 msec
+INCR .03052 msec
+MOD .13734 msec
+abs (INT) .58292 msec
+min (INT , INT) .54325 msec
+
+
+ Real Operationen
+
+REAL := .13123 msec
+ROW REAL [i] .26857 msec
+REAL = .20143 msec
+REAL <= .14039 msec
+REAL + .51273 msec
+REAL * 2.10584 msec
+REAL / 3.72337 msec
+INCR 1.11091 msec
+MOD 7.51389 msec
+abs (REAL) .77825 msec
+min (REAL, REAL) .70500 msec
+
+
+ Text Operationen
+
+TEXT := (1) .10071 msec
+TEXT := (10) .48526 msec
+TEXT := (30) .55545 msec
+ROW TEXT [i] .28078 msec
+TEXT = (1) .17701 msec
+TEXT = (10) .40896 msec
+TEXT = (30) .75078 msec
+TEXT <= (1) .21974 msec
+TEXT <= (10) .42727 msec
+TEXT <= (30) .77214 msec
+TEXT * (Faktor 1) 1.03766 msec
+CAT (1) .36929 msec
+TEXT + (1) .95221 msec
+TEXT + (10) 1.69688 msec
+TEXT + (30) 1.94104 msec
+length (1) .08545 msec
+length (10) .08545 msec
+length (30) .08851 msec
+SUB (1) .18922 msec
+SUB (10) .18922 msec
+SUB (30) .26247 msec
+subtext (TEXT, INT, INT) (1) .24110 msec
+subtext (TEXT, INT, INT) (10) .23805 msec
+subtext (TEXT, INT, INT) (30) .29299 msec
+replace (TEXT, TEXT, INT) (1) .24721 msec
+replace (TEXT, TEXT, INT) (10) .24721 msec
+replace (TEXT, TEXT, INT) (30) .32656 msec
+text (TEXT, INT, INT) (1) 1.72740 msec
+text (TEXT, INT, INT) (10) 1.77013 msec
+text (TEXT, INT, INT) (30) 2.27675 msec
+pos (TEXT, TEXT, INT) (1) .32351 msec
+pos (TEXT, TEXT, INT) (10) .33266 msec
+pos (TEXT, TEXT, INT) (30) .40591 msec
+
+
+ Konvertierungs Operationen
+
+int (REAL) 1.68467 msec
+real (INT) .75993 msec
+int (TEXT) 8.32570 msec
+text (INT) .93389 msec
+text (INT, INT) 4.52298 msec
+text (REAL) 26.61295 msec
+text (REAL, INT, INT) 5.20662 msec
+code (INT) .08240 msec
+code (TEXT) .11292 msec
diff --git a/app/speedtest/1986/src/convert operation b/app/speedtest/1986/src/convert operation
new file mode 100644
index 0000000..903f2e5
--- /dev/null
+++ b/app/speedtest/1986/src/convert operation
@@ -0,0 +1,396 @@
+PACKET convert DEFINES real to int,
+ int to real,
+ text to int,
+ int to text,
+ int to text 2,
+ real to text,
+ real to text 2,
+ code int,
+ code text :
+
+
+(***************************************************************************)
+(* *)
+(* Autor: A. Steinmann Copyright (C): HRZ - Unibi *)
+(* *)
+(***************************************************************************)
+
+
+INT VAR index,
+ first int,
+ i ;
+
+
+REAL VAR begin,
+ end,
+ act result,
+ first real ;
+
+
+TEXT VAR single text :: "*",
+ free text ;
+
+
+
+
+PROC real to int (INT CONST frequency) :
+
+ first real := 1.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ i := int (first real)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ real to int s (frequency)
+
+END PROC real to int ;
+
+
+
+
+PROC real to int s (INT CONST frequency) :
+
+ first real := 1.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ i := int (first real)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("int (REAL)", act result * msec factor (frequency) - for corr)
+
+END PROC real to int s ;
+
+
+
+
+PROC int to real (INT CONST frequency) :
+
+ first int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first real := real (first int)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int to real s (frequency)
+
+END PROC int to real ;
+
+
+
+
+PROC int to real s (INT CONST frequency) :
+
+ first int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first real := real (first int)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("real (INT)", act result * msec factor (frequency) - for corr)
+
+END PROC int to real s ;
+
+
+
+
+PROC text to int (INT CONST frequency) :
+
+ free text := "1111" ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := int (free text)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text to int s (frequency)
+
+END PROC text to int ;
+
+
+
+
+PROC text to int s (INT CONST frequency) :
+
+ free text := "1111" ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := int (free text)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("int (TEXT)", act result * msec factor (frequency) - for corr)
+
+END PROC text to int s ;
+
+
+
+
+PROC int to text (INT CONST frequency) :
+
+ first int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := text (first int) ;
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int to text s (frequency)
+
+END PROC int to text ;
+
+
+
+
+PROC int to text s (INT CONST frequency) :
+
+ first int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := text (first int) ;
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("text (INT)", act result * msec factor (frequency) - for corr)
+
+END PROC int to text s ;
+
+
+
+
+PROC int to text 2 (INT CONST frequency) :
+
+ first int := 1 ;
+ i := 3 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := text (first int, i)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int to text 2 s (frequency)
+
+END PROC int to text 2 ;
+
+
+
+
+PROC int to text 2 s (INT CONST frequency) :
+
+ first int := 1 ;
+ i := 3 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := text (first int, i)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("text (INT, INT)", act result * msec factor (frequency) - for corr)
+
+END PROC int to text 2 s ;
+
+
+
+
+PROC real to text (INT CONST frequency) :
+
+ first real := 1.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := text (first real)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ real to text s (frequency)
+
+END PROC real to text ;
+
+
+
+
+PROC real to text s (INT CONST frequency) :
+
+ first real := 1.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := text (first real)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("text (REAL)", act result * msec factor (frequency) - for corr)
+
+END PROC real to text s ;
+
+
+
+
+PROC real to text 2 (INT CONST frequency) :
+
+ first real := 1.0 ;
+ i := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := text (first real, i, i)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ real to text 2 s (frequency)
+
+END PROC real to text 2 ;
+
+
+
+
+PROC real to text 2 s (INT CONST frequency) :
+
+ first real := 1.0 ;
+ i := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := text (first real, i, i)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("text (REAL, INT, INT)", act result * msec factor (frequency) - for corr)
+
+END PROC real to text 2 s ;
+
+
+
+
+PROC code int (INT CONST frequency) :
+
+ i := 65 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := code (i)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ code int s (frequency)
+
+END PROC code int ;
+
+
+
+
+PROC code int s (INT CONST frequency) :
+
+ i := 65 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := code (i)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("code (INT)", act result * msec factor (frequency) - for corr)
+
+END PROC code int s ;
+
+
+
+
+PROC code text (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := code (single text)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ code text s (frequency)
+
+END PROC code text ;
+
+
+
+
+PROC code text s (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := code (single text)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("code (TEXT)", act result * msec factor (frequency) - for corr)
+
+END PROC code text s ;
+
+
+END PACKET convert ;
diff --git a/app/speedtest/1986/src/gen.benchmark b/app/speedtest/1986/src/gen.benchmark
new file mode 100644
index 0000000..bb53ecc
--- /dev/null
+++ b/app/speedtest/1986/src/gen.benchmark
@@ -0,0 +1,98 @@
+(***************************************************************************)
+(* *)
+(* Autor: A. Steinmann Copyright (C): HRZ - Unibi *)
+(* *)
+(***************************************************************************)
+
+
+LET max quantity = 99,
+ pagelength = 20 ;
+
+ROW max quantity TEXT VAR prog list ;
+
+INT VAR prog counter :: 0,
+ namelength :: 0,
+ counter,
+ storage size,
+ used storage ;
+
+
+
+PROC announce (TEXT CONST prog name) :
+
+ prog counter INCR 1 ;
+ prog list [prog counter] := prog name ;
+ IF NOT exists (prog name)
+ THEN fetch (prog name, archive)
+ FI ;
+ IF LENGTH prog name > namelength
+ THEN namelength := LENGTH prog name
+ FI ;
+
+END PROC announce ;
+
+
+
+PROC execute :
+
+ INT CONST first page :: 1,
+ last page :: (prog counter DIV pagelength) + 1 ;
+
+ INT VAR pagenumber,
+ linenumber,
+ act linenumber,
+ act first line,
+ act last line ;
+
+ FOR page number FROM first page UPTO last page
+ REP act first line := (pagenumber - 1) * pagelength + 1 ;
+ act last line := min (prog counter, pagenumber * pagelength) ;
+ FOR act line number FROM act first line UPTO act last line
+ REP display (""1""4"") ;
+ display (" Stand der Benchmark Insertierung ") ;
+ IF last page > 1
+ THEN display ("(" + text (pagenumber) + ". von " + text (last page) + " Seiten) :")
+ ELSE display (":")
+ FI ;
+ display (""13""10""13""10"") ;
+ FOR linenumber FROM act first line UPTO act last line
+ REP IF linenumber = act linenumber
+ THEN display (" " + ""15""8"" + prog list [linenumber] + ""14""8""5"")
+ ELSE display (" " + prog list [linenumber] + ""5"")
+ FI ;
+ display (""13""10"")
+ PER ;
+ display (""6"" + code (act linenumber - act first line + 2) + code (namelength + 20)) ;
+ insert (prog list [act linenumber]) ;
+ #forget (prog list [act linenumber], quiet)#
+ PER
+ PER ;
+ display (""1""4"") ;
+ display ("Insertierung abgeschlossen!") ;
+ display (""13""10"") ;
+ IF yes ("Benchmark starten")
+ THEN do ("test speed")
+ FI ;
+
+END PROC execute ;
+
+
+
+check off ;
+announce ("notice") ;
+announce ("run down logic") ;
+announce ("integer operation") ;
+announce ("real operation") ;
+announce ("text operation") ;
+announce ("convert operation") ;
+announce ("speed tester") ;
+
+
+display (""1""4"") ;
+execute ;
+release (archive) ;
+#forget ("gen.benchmark", quiet) ;#
+check on ;
+
+
+
diff --git a/app/speedtest/1986/src/integer operation b/app/speedtest/1986/src/integer operation
new file mode 100644
index 0000000..90ef0f2
--- /dev/null
+++ b/app/speedtest/1986/src/integer operation
@@ -0,0 +1,614 @@
+PACKET integer operation DEFINES int assign global,
+ int assign local,
+ int assign param,
+ int equal,
+ int lequal,
+ int abs,
+ int min,
+ int incr,
+ row int,
+ int div,
+ int mod,
+ int add,
+ int mult :
+
+
+(***************************************************************************)
+(* *)
+(* Autor: A. Steinmann Copyright (C): HRZ - Unibi *)
+(* *)
+(***************************************************************************)
+
+
+ROW 10 INT VAR introw ;
+
+
+REAL VAR begin,
+ end,
+ act result,
+ int assign factor ;
+
+
+INT VAR first int,
+ second int,
+ third int,
+ rest,
+ i ,
+ index ;
+
+
+
+PROC int assign global (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int
+ END REP ;
+ end := clock (0);
+
+ act result := end - begin ;
+
+ int assign global s (frequency)
+
+END PROC int assign global ;
+
+
+
+
+PROC int assign global s (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int
+ END REP ;
+ end := clock (0);
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ int assign factor := act result * msec factor (frequency) - for corr ;
+
+ notice result ("INT := (Paketdaten)", int assign factor) ;
+
+END PROC int assign global s ;
+
+
+
+
+PROC int assign local (INT CONST frequency) :
+
+ INT VAR number one :: 0,
+ number two :: 1 ;
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ number one := number two
+ END REP ;
+ end := clock (0);
+
+ act result := end - begin ;
+
+ int assign local s (frequency)
+
+END PROC int assign local ;
+
+
+
+
+PROC int assign local s (INT CONST frequency) :
+
+ INT VAR number one :: 0,
+ number two :: 1 ;
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ number one := number two
+ END REP ;
+ end := clock (0);
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("INT := (Prozedurdaten)", act result * msec factor (frequency) - for corr) ;
+
+END PROC int assign local s ;
+
+
+
+
+PROC int assign param (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 1 ;
+ int assign (first int, second int, frequency) ;
+ first int := 0 ;
+ int assign s (first int, second int, frequency)
+
+END PROC int assign param ;
+
+
+
+
+PROC int assign (INT VAR one, INT CONST two, frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ one := two
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+END PROC int assign ;
+
+
+
+
+PROC int assign s (INT VAR one, INT CONST two, frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ one := two
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("INT := (Parameter)", act result * msec factor (frequency) - for corr) ;
+
+END PROC int assign s ;
+
+
+
+
+PROC row int (INT CONST frequency) :
+
+ i := 7 ;
+ int row [i] := 0 ;
+ first int := 10000 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ introw [i] := first int
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ row int s (frequency)
+
+END PROC row int ;
+
+
+
+
+PROC row int s (INT CONST frequency) :
+
+ i := 7 ;
+ int row [i] := 0 ;
+ first int := 10000 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ introw [i] := first int
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("ROW INT [i]", act result * msec factor (frequency) - for corr) ;
+
+END PROC row int s ;
+
+
+
+
+PROC int equal (INT CONST frequency) :
+
+ first int := 10 ;
+ second int := 10 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF first int = second int
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int equal s (frequency)
+
+END PROC int equal ;
+
+
+
+
+PROC int equal s (INT CONST frequency) :
+
+ first int := 10 ;
+ second int := 10 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF first int = second int
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("INT =", act result * msec factor (frequency) - for corr)
+
+END PROC int equal s ;
+
+
+
+
+PROC int lequal (INT CONST frequency) :
+
+ first int := 10 ;
+ second int := 11 ;
+ begin := clock(0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF first int <= second int
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int lequal s (frequency)
+
+END PROC int lequal ;
+
+
+
+
+PROC int lequal s (INT CONST frequency) :
+
+ first int := 10 ;
+ second int := 11 ;
+ begin := clock(0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF first int <= second int
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("INT <=", act result * msec factor (frequency) - for corr)
+
+END PROC int lequal s ;
+
+
+
+
+PROC int add (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 1 ;
+ third int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int + third int
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int add s (frequency)
+
+END PROC int add ;
+
+
+
+
+PROC int add s (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 1 ;
+ third int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int + third int
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("INT +", act result * msec factor (frequency) - for corr)
+
+END PROC int add s ;
+
+
+
+
+PROC int mult (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 99 ;
+ third int := 11 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int * third int
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int mult s (frequency)
+
+END PROC int mult ;
+
+
+
+
+PROC int mult s (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 99 ;
+ third int := 11 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int * third int
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("INT *", act result * msec factor (frequency) - for corr)
+
+END PROC int mult s ;
+
+
+
+
+PROC int div (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 10001 ;
+ third int := 99 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int DIV third int
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int div s (frequency)
+
+END PROC int div ;
+
+
+
+
+PROC int div s (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 10001 ;
+ third int := 99 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int DIV third int
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("DIV", act result * msec factor (frequency) - for corr)
+
+END PROC int div s ;
+
+
+
+
+PROC int mod (INT CONST frequency) :
+
+ first int := 9999 ;
+ second int := 55 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ rest := first int MOD second int
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int mod s (frequency)
+
+END PROC int mod ;
+
+
+
+
+PROC int mod s (INT CONST frequency) :
+
+ first int := 9999 ;
+ second int := 55 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ rest := first int MOD second int
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("MOD", act result * msec factor (frequency) - for corr)
+
+END PROC int mod s ;
+
+
+
+
+PROC int incr (INT CONST frequency) :
+
+ first int:= 0 ;
+ second int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int INCR second int
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int incr s (frequency)
+
+END PROC int incr ;
+
+
+
+
+PROC int incr s (INT CONST frequency) :
+
+ first int:= 0 ;
+ second int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int INCR second int
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("INCR" , act result * msec factor (frequency) - for corr) ;
+
+END PROC int incr s ;
+
+
+
+
+PROC int abs (INT CONST frequency) :
+
+ first int := - 10000 ;
+ second int := 0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ second int := abs (first int)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int abs s (frequency)
+
+END PROC int abs ;
+
+
+
+
+PROC int abs s (INT CONST frequency) :
+
+ first int := - 10000 ;
+ second int := 0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ second int := abs (first int)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("abs (INT)", act result * msec factor (frequency) - for corr) ;
+
+END PROC int abs s ;
+
+
+
+
+PROC int min (INT CONST frequency) :
+
+ i := 0 ;
+ first int := 9999 ;
+ second int := 10000 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ i := min (first int, second int)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int min s (frequency)
+
+END PROC int min ;
+
+
+
+
+PROC int min s (INT CONST frequency) :
+
+ i := 0 ;
+ first int := 9999 ;
+ second int := 10000 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ i := min (first int, second int)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("min (INT , INT)", act result * msec factor (frequency) - for corr) ;
+
+END PROC int min s ;
+
+
+END PACKET integer operation ;
diff --git a/app/speedtest/1986/src/notice b/app/speedtest/1986/src/notice
new file mode 100644
index 0000000..ea1bca9
--- /dev/null
+++ b/app/speedtest/1986/src/notice
@@ -0,0 +1,102 @@
+PACKET notice DEFINES notice material,
+ notice heading,
+ notice operation,
+ notice result,
+ notice frequency,
+ notice runtime,
+ output mem :
+
+
+(***************************************************************************)
+(* *)
+(* Autor: A. Steinmann Copyright (C): HRZ - Unibi *)
+(* *)
+(***************************************************************************)
+
+
+FILE VAR mem ;
+
+
+
+PROC notice result (TEXT CONST operation, REAL CONST runtime) :
+
+ TEXT VAR layout :: "" ;
+
+ layout CAT (operation + (40 - LENGTH operation) * " " + text (runtime, 10, 5) + " msec") ;
+ putline (mem, layout)
+
+END PROC notice result ;
+
+
+
+PROC notice material (TEXT CONST name) :
+
+ TEXT VAR layout :: "" ;
+
+ layout CAT (" " + name) ;
+ line (mem, 4) ;
+ putline (mem, layout) ;
+ layout := " " + LENGTH name * "=" ;
+ putline (mem, layout) ;
+ line (mem, 3)
+
+END PROC notice material ;
+
+
+
+PROC notice heading (TEXT CONST name) :
+
+ TEXT VAR layout :: "" ;
+
+ layout CAT (" " + name) ;
+ line (mem,2) ;
+ putline (mem, layout) ;
+ line (mem, 1) ;
+
+ display (""6""+code(21)+code(0)) ;
+ display (""5""13"") ;
+ display (""15""+" "+name+" "+""14"")
+
+END PROC notice heading ;
+
+
+
+PROC notice frequency (INT CONST frequency 1, frequency 2) :
+
+ line (mem, 1) ;
+ put (mem, "Wiederholungsfaktor fr schnelle Operationen : "+text (frequency 1)) ;
+ line (mem, 1) ;
+ put (mem, "Wiederholungsfaktor fr langsame Operationen : "+text (frequency 2)) ;
+ line (mem, 1)
+
+END PROC notice frequency ;
+
+
+
+PROC notice operation (TEXT CONST operation) :
+
+ display(""6""+code(22)+code(0)) ;
+ display (""5""13"") ;
+ display (""15""+" "+ operation +" "+""14"") ;
+
+END PROC notice operation ;
+
+
+
+PROC notice runtime (REAL CONST runtime) :
+
+ line (mem, 3) ;
+ putline (mem, "Gesamtlaufzeit : " + text (runtime)) ;
+
+END PROC notice runtime ;
+
+
+
+PROC output mem :
+
+ mem := sequential file (output, "memory")
+
+END PROC output mem ;
+
+
+END PACKET notice ;
diff --git a/app/speedtest/1986/src/real operation b/app/speedtest/1986/src/real operation
new file mode 100644
index 0000000..2d63d1b
--- /dev/null
+++ b/app/speedtest/1986/src/real operation
@@ -0,0 +1,519 @@
+PACKET real operation DEFINES real assign,
+ row real,
+ real add,
+ real mult,
+ real div,
+ real incr,
+ real mod,
+ real equal,
+ real lequal,
+ real abs,
+ real min :
+
+
+(***************************************************************************)
+(* *)
+(* Autor: A. Steinmann Copyright (C): HRZ - Unibi *)
+(* *)
+(***************************************************************************)
+
+
+ROW 10 REAL VAR real row ;
+
+
+
+INT VAR index,
+ i ;
+
+
+REAL VAR begin,
+ end,
+ first real,
+ second real,
+ third real,
+ rest,
+ act result,
+ real assign factor ;
+
+
+
+
+PROC real assign (INT CONST frequency) :
+
+ first real := 0.0 ;
+ second real := 1.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first real := second real
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ real assign s (frequency)
+
+END PROC real assign ;
+
+
+
+
+PROC real assign s (INT CONST frequency) :
+
+ first real := 0.0 ;
+ second real := 1.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first real := second real
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ real assign factor := act result * msec factor (frequency) - for corr ;
+
+ notice result ("REAL :=", real assign factor) ;
+
+END PROC real assign s ;
+
+
+
+
+PROC row real (INT CONST frequency) :
+
+ first real := 1.0 ;
+ i := 7 ;
+ real row [i] := 0.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ real row [i] := first real
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ row real s (frequency)
+
+END PROC row real ;
+
+
+
+
+PROC row real s (INT CONST frequency) :
+
+ first real := 1.0 ;
+ i := 7 ;
+ real row [i] := 0.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ real row [i] := first real
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("ROW REAL [i]", act result * msec factor (frequency) - for corr) ;
+
+END PROC row real s ;
+
+
+
+
+PROC real equal (INT CONST frequency) :
+
+ first real := 10.0 ;
+ second real := 10.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF first real = second real
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ real equal s (frequency)
+
+END PROC real equal ;
+
+
+
+
+PROC real equal s (INT CONST frequency) :
+
+ first real := 10.0 ;
+ second real := 10.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF first real = second real
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("REAL =", act result * msec factor (frequency) - for corr)
+
+END PROC real equal s ;
+
+
+
+
+PROC real lequal (INT CONST frequency) :
+
+ first real := 10.0 ;
+ second real := 11.0 ;
+ begin := clock(0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF first real <= second real
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ real lequal s (frequency)
+
+END PROC real lequal ;
+
+
+
+
+PROC real lequal s (INT CONST frequency) :
+
+ first real := 10.0 ;
+ second real := 11.0 ;
+ begin := clock(0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF first real <= second real
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("REAL <=", act result * msec factor (frequency) - for corr)
+
+END PROC real lequal s ;
+
+
+
+
+PROC real add (INT CONST frequency) :
+
+ first real := 0.0 ;
+ second real := 1.0 ;
+ third real := 1.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first real := second real + third real
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ real add s (frequency)
+
+END PROC real add ;
+
+
+
+
+PROC real add s (INT CONST frequency) :
+
+ first real := 0.0 ;
+ second real := 1.0 ;
+ third real := 1.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first real := second real + third real
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("REAL +", act result * msec factor (frequency) - for corr) ;
+
+END PROC real add s ;
+
+
+
+
+PROC real mult (INT CONST frequency) :
+
+ first real := 0.0 ;
+ second real := 1.001 ;
+ third real := 1.001 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first real := second real * third real
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ real mult s (frequency)
+
+END PROC real mult ;
+
+
+
+
+PROC real mult s (INT CONST frequency) :
+
+ first real := 0.0 ;
+ second real := 1.001 ;
+ third real := 1.001 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first real := second real * third real
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("REAL *", act result * msec factor (frequency) - for corr) ;
+
+END PROC real mult s ;
+
+
+
+
+PROC real div (INT CONST frequency) :
+
+ first real := 0.0 ;
+ second real := 10000.0 ;
+ third real := 1.0001 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first real := second real / third real
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ real div s (frequency)
+
+END PROC real div ;
+
+
+
+
+PROC real div s (INT CONST frequency) :
+
+ first real := 0.0 ;
+ second real := 10000.0 ;
+ third real := 1.0001 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first real := second real / third real
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("REAL /", act result * msec factor (frequency) - for corr) ;
+
+END PROC real div s ;
+
+
+
+
+PROC real incr (INT CONST frequency) :
+
+ first real := 0.0 ;
+ second real := 1.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first real INCR second real
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ real incr s (frequency)
+
+END PROC real incr ;
+
+
+
+
+PROC real incr s (INT CONST frequency) :
+
+ first real := 0.0 ;
+ second real := 1.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first real INCR second real
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("INCR", act result * msec factor (frequency) - for corr) ;
+
+END PROC real incr s ;
+
+
+
+
+PROC real mod (INT CONST frequency) :
+
+ first real := 9999.9 ;
+ second real := 21.21 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ rest := first real MOD second real
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ real mod s (frequency)
+
+END PROC real mod ;
+
+
+
+
+PROC real mod s (INT CONST frequency) :
+
+ first real := 9999.9 ;
+ second real := 21.21 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ rest := first real MOD second real
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("MOD", act result * msec factor (frequency) - for corr) ;
+
+END PROC real mod s ;
+
+
+
+
+PROC real abs (INT CONST frequency) :
+
+ first real := 0.0 ;
+ second real := - 12345.6 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first real := abs (second real)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ real abs s (frequency)
+
+END PROC real abs ;
+
+
+
+
+PROC real abs s (INT CONST frequency) :
+
+ first real := 0.0 ;
+ second real := - 12345.6 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first real := abs (second real)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("abs (REAL)", act result * msec factor (frequency) - for corr) ;
+
+END PROC real abs s ;
+
+
+
+
+PROC real min (INT CONST frequency) :
+
+ first real := 10000.0 ;
+ second real := 1.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ rest := min (first real, second real)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ real min s (frequency)
+
+END PROC real min ;
+
+
+
+
+PROC real min s (INT CONST frequency) :
+
+ first real := 10000.0 ;
+ second real := 1.0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ rest := min (first real, second real)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("min (REAL, REAL)", act result * msec factor (frequency) - for corr) ;
+
+END PROC real min s ;
+
+
+END PACKET real operation ;
diff --git a/app/speedtest/1986/src/run down logic b/app/speedtest/1986/src/run down logic
new file mode 100644
index 0000000..49f0f0f
--- /dev/null
+++ b/app/speedtest/1986/src/run down logic
@@ -0,0 +1,429 @@
+PACKET run down logic DEFINES for loop,
+ msec factor,
+ for corr,
+ while loop,
+ until loop,
+ if,
+ select,
+ proc,
+ proc one param int,
+ proc two param int :
+
+
+(***************************************************************************)
+(* *)
+(* Autor: A. Steinmann Copyright (C): HRZ - Unibi *)
+(* *)
+(***************************************************************************)
+
+
+INT VAR first int,
+ second int,
+ index ;
+
+REAL VAR for loop corr,
+ begin,
+ end,
+ int incr corr,
+ act result ;
+
+BOOL VAR is initialized :: FALSE,
+ situation :: TRUE ;
+
+
+
+PROC for loop (INT CONST frequency) :
+
+ notice operation ("FOR LOOP") ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ for loop s (frequency)
+
+END PROC for loop ;
+
+
+
+PROC for loop s (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ for loop corr := act result * msec factor (frequency) ;
+
+ notice result ("FOR REP",for loop corr)
+
+END PROC for loop s ;
+
+
+
+PROC initialize int incr corr (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int INCR second int
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ initialize int incr corr s (frequency)
+
+END PROC initialize int incr corr ;
+
+
+
+PROC initialize int incr corr s (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int INCR second int
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ int incr corr := act result * msec factor (frequency) - for corr ;
+
+END PROC initialize int incr corr s ;
+
+
+
+PROC while loop (INT CONST frequency) :
+
+ IF NOT is initialized
+ THEN initialize int incr corr (frequency)
+ FI ;
+
+ notice operation ("WHILE LOOP") ;
+ first int := 0 ;
+ second int := 1 ;
+ begin := clock (0) ;
+ WHILE first int < frequency
+ REP
+ first int INCR second int
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ while loop s (frequency)
+
+END PROC while loop ;
+
+
+
+PROC while loop s (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 1 ;
+ begin := clock (0) ;
+ WHILE first int < frequency
+ REP
+ first int INCR second int
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("WHILE REP", act result * msec factor (frequency) - int incr corr) ;
+
+END PROC while loop s ;
+
+
+
+PROC until loop (INT CONST frequency) :
+
+ IF NOT is initialized
+ THEN initialize int incr corr (frequency)
+ FI ;
+
+ notice operation ("UNTIL LOOP") ;
+ first int := 1 ;
+ second int := 1 ;
+ begin := clock (0) ;
+ REP
+ first int INCR second int
+ UNTIL first int > frequency
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ until loop s (frequency)
+
+END PROC until loop ;
+
+
+
+PROC until loop s (INT CONST frequency) :
+
+ first int := 1 ;
+ second int := 1 ;
+ begin := clock (0) ;
+ REP
+ first int INCR second int
+ UNTIL first int > frequency
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > act result
+ THEN act result := end - begin
+ FI ;
+
+ notice result("UNTIL REP", act result * msec factor (frequency) - int incr corr)
+
+END PROC until loop s ;
+
+
+
+PROC if (INT CONST frequency) :
+
+ notice operation ("IF") ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF situation
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ if s (frequency)
+
+END PROC if ;
+
+
+
+PROC if s (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF situation
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("IF", act result * msec factor (frequency) - for corr) ;
+
+END PROC if s ;
+
+
+
+PROC select (INT CONST frequency) :
+
+ notice operation ("SELECT") ;
+ first int := 0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ SELECT first int OF
+ CASE 0 :
+ OTHERWISE
+ END SELECT
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ select s (frequency)
+
+END PROC select ;
+
+
+
+PROC select s (INT CONST frequency) :
+
+ first int := 0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ SELECT first int OF
+ CASE 0 :
+ OTHERWISE
+ END SELECT
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("SELECT", act result * msec factor (frequency) - for corr) ;
+
+END PROC select s ;
+
+
+
+PROC proc (INT CONST frequency) :
+
+ notice operation ("PROC") ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ nilproc
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ proc s (frequency)
+
+END PROC proc ;
+
+
+
+PROC proc s (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ nilproc
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("PROC", act result * msec factor (frequency) - for corr) ;
+
+END PROC proc s ;
+
+
+
+PROC proc one param int (INT CONST frequency) :
+
+ notice operation ("PROC one param INT") ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ nilproc (first int)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ proc one param int s (frequency)
+
+END PROC proc one param int ;
+
+
+
+PROC proc one param int s (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ nilproc (first int)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("PROC (INT)", act result * msec factor (frequency) - for corr) ;
+
+END PROC proc one param int s ;
+
+
+
+PROC proc two param int (INT CONST frequency) :
+
+ notice operation ("PROC two param INT") ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ nilproc (first int, second int)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ proc two param int s (frequency)
+
+END PROC proc two param int ;
+
+
+
+PROC proc two param int s (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ nilproc (first int, second int)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("PROC (INT, INT)", act result * msec factor (frequency) - for corr) ;
+
+END PROC proc two param int s ;
+
+
+
+PROC nilproc :
+END PROC nilproc ;
+
+
+
+PROC nilproc (INT CONST number one) :
+END PROC nilproc ;
+
+
+
+PROC nilproc (INT CONST number one, number two) :
+END PROC nilproc ;
+
+
+
+REAL PROC for corr :
+
+ for loop corr
+
+END PROC for corr ;
+
+
+
+REAL PROC msec factor (INT CONST frequency) :
+
+ 1000.0 / real (frequency)
+
+END PROC msec factor ;
+
+
+END PACKET run down logic ;
diff --git a/app/speedtest/1986/src/speed tester b/app/speedtest/1986/src/speed tester
new file mode 100644
index 0000000..37f937f
--- /dev/null
+++ b/app/speedtest/1986/src/speed tester
@@ -0,0 +1,209 @@
+PACKET speed tester DEFINES test speed :
+
+
+(***************************************************************************)
+(* *)
+(* Autor: A. Steinmann Copyright (C): HRZ - Unibi *)
+(* *)
+(***************************************************************************)
+
+
+PROC test speed :
+
+ INT VAR frequency 1,
+ frequency 2 ;
+
+ TEXT VAR name of material,
+ name of the heart of material,
+ high,
+ low ;
+
+ REAL VAR begin,
+ end ;
+
+
+ page ;
+ cursor (1,3) ;
+ out (""15""+" EUMEL SPEED TESTER "+" "+" EUMEL SPEED TESTER "+" "+" EUMEL SPEED TESTER "+""14"") ;
+ cursor (1,6) ;
+ put ("Bitte gib Name/Typbezeichnung des Test-PC ein") ;
+ line ;
+ getline (name of material) ;
+ line ;
+ put ("Bitte gib Prozessortyp/Taktfrequenz ein") ;
+ line ;
+ getline (name of the heart of material) ;
+ line ;
+ name of material CAT " " ;
+
+ output mem ;
+ notice material (name of material + name of the heart of material) ;
+
+ REP
+ output mem ;
+ putline ("Bitte gib Genauigkeitsfaktor fuer schnelle Operationen ein") ;
+ put ("Voreingestellt ist maxint --> ") ;
+ getline (high) ;
+ line ;
+ IF high = ""
+ THEN frequency 1 := 32766
+ ELSE frequency 1 := int (high)
+ FI ;
+ putline ("Bitte gib Genauigkeitsfaktor fuer langsame Operationen ein") ;
+ put ("Voreingestellt ist maxint Div 2 --> ") ;
+ getline (low) ;
+ IF low = ""
+ THEN frequency 2 := maxint DIV 2
+ ELSE frequency 2 := int (low)
+ FI ;
+ notice frequency (frequency 1, frequency 2) ;
+
+ begin := clock (0) ;
+
+
+ test run down logic ;
+ test integer operation ;
+ test real operation ;
+ test text operation ;
+ test convert ;
+
+ end := clock (0) ;
+ page ;
+ put ("Gesamtlaufzeit : ") ;
+ put (time (end-begin)) ;
+ line (2) ;
+ put ("Taste drcken oder warten") ;
+ pause (600) ;
+
+
+ page ;
+ cursor (1,5) ;
+ out (""5""13"") ;
+ IF yes ("Ergebnis anschauen")
+ THEN edit ("memory") ;
+ page
+ FI ;
+
+ cursor (1,5) ;
+ out (""5""13"") ;
+ IF yes ("Ergebnis loeschen")
+ THEN forget ("memory",quiet)
+ FI ;
+
+ cursor (1,5) ;
+ out (""5""13"")
+ UNTIL no ("Neuer test")
+ END REP .
+
+
+test run down logic :
+
+notice heading ("Steuerkonstrukte") ;
+
+for loop (frequency 1) ;
+while loop (frequency 1) ;
+until loop (frequency 1) ;
+if (frequency 1) ;
+select (frequency 1) ;
+proc (frequency 1) ;
+proc one param int (frequency 1) ;
+proc two param int (frequency 1) .
+
+
+
+test integer operation :
+
+notice heading ("Integer Operationen") ;
+
+int assign global (frequency 1) ;
+int assign local (frequency 1) ;
+int assign param (frequency 1) ;
+row int (frequency 1) ;
+int equal (frequency 1) ;
+int lequal (frequency 1) ;
+int add (frequency 1) ;
+int mult (frequency 1) ;
+int div (frequency 1) ;
+int incr (frequency 1) ;
+int mod (frequency 1) ;
+int abs (frequency 1) ;
+int min (frequency 1) .
+
+
+
+test real operation :
+
+notice heading ("Real Operationen") ;
+
+real assign (frequency 1) ;
+row real (frequency 1) ;
+real equal (frequency 1) ;
+real lequal (frequency 1) ;
+real add (frequency 1) ;
+real mult (frequency 2) ;
+real div (frequency 2) ;
+real incr (frequency 1) ;
+real mod (frequency 2) ;
+real abs (frequency 1) ;
+real min (frequency 1) .
+
+
+
+test text operation :
+
+notice heading ("Text Operationen") ;
+
+text assign 1 (frequency 1) ;
+text assign 10 (frequency 1) ;
+text assign 30 (frequency 1) ;
+row text (frequency 1) ;
+text equal 1 (frequency 1) ;
+text equal 10 (frequency 1) ;
+text equal 30 (frequency 1) ;
+text lequal 1 (frequency 1) ;
+text lequal 10 (frequency 1) ;
+text lequal 30 (frequency 1) ;
+text mult (frequency 1) ;
+cat (frequency 1) ;
+text add 1 (frequency 1) ;
+text add 10 (frequency 2) ;
+text add 30 (frequency 2) ;
+text length 1 (frequency 1) ;
+text length 10 (frequency 1) ;
+text length 30 (frequency 1) ;
+text sub 1 (frequency 1) ;
+text sub 10 (frequency 1) ;
+text sub 30 (frequency 1) ;
+subtext 1 (frequency 1) ;
+subtext 10 (frequency 1) ;
+subtext 30 (frequency 1) ;
+replace 1 (frequency 1) ;
+replace 10 (frequency 1) ;
+replace 30 ( frequency 1) ;
+text 1 (frequency 2) ;
+text 10 (frequency 2) ;
+text 30 (frequency 2) ;
+pos 1 (frequency 1) ;
+pos 10 (frequency 1) ;
+pos 30 (frequency 1) .
+
+
+
+test convert :
+
+notice heading ("Konvertierungs Operationen") ;
+
+real to int (frequency 1) ;
+int to real (frequency 1) ;
+text to int (frequency 2) ;
+int to text (frequency 1) ;
+int to text 2 (frequency 2) ;
+real to text (frequency 2) ;
+real to text 2 (frequency 2) ;
+code int (frequency 1) ;
+code text (frequency 1) ;
+
+
+END PROC test speed ;
+
+END PACKET speed tester
diff --git a/app/speedtest/1986/src/text operation b/app/speedtest/1986/src/text operation
new file mode 100644
index 0000000..30ad2ba
--- /dev/null
+++ b/app/speedtest/1986/src/text operation
@@ -0,0 +1,1401 @@
+PACKET text operation DEFINES text assign 1,
+ text assign 10,
+ text assign 30,
+ row text,
+ text mult,
+ cat,
+ text equal 1,
+ text equal 10,
+ text equal 30,
+ text lequal 1,
+ text lequal 10,
+ text lequal 30,
+ text add 1,
+ text add 10,
+ text add 30,
+ text length 1,
+ text length 10,
+ text length 30,
+ text sub 1,
+ text sub 10,
+ text sub 30,
+ subtext 1,
+ subtext 10,
+ subtext 30,
+ replace 1,
+ replace 10,
+ replace 30,
+ text 1,
+ text 10,
+ text 30,
+ pos 1,
+ pos 10,
+ pos 30 :
+
+
+(***************************************************************************)
+(* *)
+(* Autor: A. Steinmann Copyright (C): HRZ - Unibi *)
+(* *)
+(***************************************************************************)
+
+
+ROW 10 TEXT VAR text row ;
+
+INT VAR index,
+ i,
+ j ;
+
+REAL VAR begin,
+ end,
+ act result,
+ text assign factor ;
+
+TEXT VAR single text :: "*",
+ short text :: "ELAN/EUMEL",
+ long text :: "Ein Multi User Betriebssystem!",
+ free text ;
+
+
+
+
+PROC text assign 1 (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := single text
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text assign 1 s (frequency)
+
+END PROC text assign 1 ;
+
+
+
+
+PROC text assign 1 s (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := single text
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ text assign factor := act result * msec factor (frequency) - for corr ;
+
+ notice result ("TEXT := (1)", text assign factor)
+
+END PROC text assign 1 s ;
+
+
+
+
+PROC text assign 10 (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := short text
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text assign 10 s (frequency)
+
+END PROC text assign 10 ;
+
+
+
+
+PROC text assign 10 s (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := short text
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("TEXT := (10)", act result * msec factor (frequency) - for corr)
+
+END PROC text assign 10 s ;
+
+
+
+
+PROC text assign 30 (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := long text
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text assign 30 s (frequency)
+
+END PROC text assign 30 ;
+
+
+
+
+PROC text assign 30 s (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := long text
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("TEXT := (30)", act result * msec factor (frequency) - for corr)
+
+END PROC text assign 30 s ;
+
+
+
+
+PROC row text (INT CONST frequency) :
+
+ i := 7 ;
+ text row [i] := "" ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ text row [i] := single text
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ row text s (frequency)
+
+END PROC row text ;
+
+
+
+
+PROC row text s (INT CONST frequency) :
+
+ i := 7 ;
+ text row [i] := "" ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ text row [i] := single text
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("ROW TEXT [i]", act result * msec factor (frequency) - for corr)
+
+END PROC row text s ;
+
+
+
+
+PROC text equal 1 (INT CONST frequency) :
+
+ free text := single text ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF free text = single text
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text equal 1 s (frequency)
+
+END PROC text equal 1 ;
+
+
+
+
+PROC text equal 1 s (INT CONST frequency) :
+
+ free text := single text ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF free text = single text
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("TEXT = (1)", act result * msec factor (frequency) - for corr)
+
+END PROC text equal 1 s ;
+
+
+
+
+PROC text equal 10 (INT CONST frequency) :
+
+ free text := short text ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF free text = short text
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text equal 10 s (frequency)
+
+END PROC text equal 10 ;
+
+
+
+
+PROC text equal 10 s (INT CONST frequency) :
+
+ free text := short text ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF free text = short text
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("TEXT = (10)", act result * msec factor (frequency) - for corr)
+
+END PROC text equal 10 s ;
+
+
+
+
+PROC text equal 30 (INT CONST frequency) :
+
+ free text := long text ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF free text = long text
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text equal 30 s (frequency)
+
+END PROC text equal 30 ;
+
+
+
+
+PROC text equal 30 s (INT CONST frequency) :
+
+ free text := long text ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF free text = long text
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("TEXT = (30)", act result * msec factor (frequency) - for corr)
+
+END PROC text equal 30 s ;
+
+
+
+
+PROC text lequal 1 (INT CONST frequency) :
+
+ free text := single text ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF free text <= single text
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text lequal 1 s (frequency)
+
+END PROC text lequal 1 ;
+
+
+
+
+PROC text lequal 1 s (INT CONST frequency) :
+
+ free text := single text ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF free text <= single text
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("TEXT <= (1)", act result * msec factor (frequency) - for corr)
+
+END PROC text lequal 1 s ;
+
+
+
+
+PROC text lequal 10 (INT CONST frequency) :
+
+ free text := short text ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF free text <= short text
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text lequal 10 s (frequency)
+
+END PROC text lequal 10 ;
+
+
+
+
+PROC text lequal 10 s (INT CONST frequency) :
+
+ free text := short text ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF free text <= short text
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("TEXT <= (10)", act result * msec factor (frequency) - for corr)
+
+END PROC text lequal 10 s ;
+
+
+
+
+PROC text lequal 30 (INT CONST frequency) :
+
+ free text := long text ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF free text <= long text
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text lequal 30 s (frequency)
+
+END PROC text lequal 30 ;
+
+
+
+
+PROC text lequal 30 s (INT CONST frequency) :
+
+ free text := long text ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF free text <= long text
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("TEXT <= (30)", act result * msec factor (frequency) - for corr)
+
+END PROC text lequal 30 s ;
+
+
+
+
+PROC text mult (INT CONST frequency) :
+
+ i := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := i * single text
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text mult s (frequency)
+
+END PROC text mult ;
+
+
+
+
+PROC text mult s (INT CONST frequency) :
+
+ i := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := i * single text
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("TEXT * (Faktor 1)", act result * msec factor (frequency) - for corr)
+
+END PROC text mult s ;
+
+
+
+
+PROC cat (INT CONST frequency) :
+
+ free text := "" ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text CAT single text ;
+ free text := ""
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ cat s (frequency)
+
+END PROC cat ;
+
+
+
+
+PROC cat s (INT CONST frequency) :
+
+ free text := "" ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text CAT single text ;
+ free text := ""
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("CAT (1)", act result * msec factor (frequency) - for corr)
+
+END PROC cat s ;
+
+
+
+
+PROC text add 1 (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := single text + single text
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text add 1 s (frequency)
+
+END PROC text add 1 ;
+
+
+
+
+PROC text add 1 s (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := single text + single text
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("TEXT + (1)", act result * msec factor (frequency) - for corr)
+
+END PROC text add 1 s ;
+
+
+
+PROC text add 10 (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := short text + short text
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text add 10 s (frequency)
+
+END PROC text add 10 ;
+
+
+
+
+PROC text add 10 s (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := short text + short text
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("TEXT + (10)", act result * msec factor (frequency) - for corr)
+
+END PROC text add 10 s ;
+
+
+
+
+PROC text add 30 (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := long text + long text
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text add 30 s (frequency)
+
+END PROC text add 30 ;
+
+
+
+
+PROC text add 30 s (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := long text + long text
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("TEXT + (30)", act result * msec factor (frequency) - for corr)
+
+END PROC text add 30 s ;
+
+
+
+
+PROC text length 1 (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ i := length (single text)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text length 1 s (frequency)
+
+END PROC text length 1 ;
+
+
+
+
+PROC text length 1 s (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ i := length (single text)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("length (1)", act result * msec factor (frequency) - for corr)
+
+END PROC text length 1 s ;
+
+
+
+
+PROC text length 10 (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ i := length (short text)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text length 10 s (frequency)
+
+END PROC text length 10 ;
+
+
+
+
+PROC text length 10 s (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ i := length (short text)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("length (10)", act result * msec factor (frequency) - for corr)
+
+END PROC text length 10 s ;
+
+
+
+
+PROC text length 30 (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ i := length (long text)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text length 30 s (frequency)
+
+END PROC text length 30 ;
+
+
+
+
+PROC text length 30 s (INT CONST frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ i := length (long text)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("length (30)", act result * msec factor (frequency) - for corr)
+
+END PROC text length 30 s ;
+
+
+
+
+PROC text sub 1 (INT CONST frequency) :
+
+ i := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := single text SUB i
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text sub 1 s (frequency)
+
+END PROC text sub 1 ;
+
+
+
+
+PROC text sub 1 s (INT CONST frequency) :
+
+ i := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := single text SUB i
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("SUB (1)", act result * msec factor (frequency) - for corr)
+
+END PROC text sub 1 s ;
+
+
+
+
+PROC text sub 10 (INT CONST frequency) :
+
+ i := 7 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := short text SUB i
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text sub 10 s (frequency)
+
+END PROC text sub 10 ;
+
+
+
+
+PROC text sub 10 s (INT CONST frequency) :
+
+ i := 7 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := short text SUB i
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("SUB (10)", act result * msec factor (frequency) - for corr)
+
+END PROC text sub 10 s ;
+
+
+
+
+PROC text sub 30 (INT CONST frequency) :
+
+ i := 17 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := long text SUB i
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text sub 30 s (frequency)
+
+END PROC text sub 30 ;
+
+
+
+
+PROC text sub 30 s (INT CONST frequency) :
+
+ i := 17 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := long text SUB i
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("SUB (30)", act result * msec factor (frequency) - for corr)
+
+END PROC text sub 30 s ;
+
+
+
+
+PROC subtext 1 (INT CONST frequency) :
+
+ i := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := subtext (single text , i, i)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ subtext 1 s (frequency)
+
+END PROC subtext 1 ;
+
+
+
+
+PROC subtext 1 s (INT CONST frequency) :
+
+ i := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := subtext (single text , i, i)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("subtext (TEXT, INT, INT) (1)", act result * msec factor (frequency) - for corr)
+
+END PROC subtext 1 s ;
+
+
+
+
+PROC subtext 10 (INT CONST frequency) :
+
+ i := 7 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := subtext (short text , i, i)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ subtext 10 s (frequency)
+
+END PROC subtext 10 ;
+
+
+
+
+PROC subtext 10 s (INT CONST frequency) :
+
+ i := 7 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := subtext (short text , i, i)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("subtext (TEXT, INT, INT) (10)", act result * msec factor (frequency) - for corr)
+
+END PROC subtext 10 s ;
+
+
+
+
+PROC subtext 30 (INT CONST frequency) :
+
+ i := 17 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := subtext (long text , i, i)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ subtext 30 s (frequency)
+
+END PROC subtext 30 ;
+
+
+
+
+PROC subtext 30 s (INT CONST frequency) :
+
+ i := 17 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := subtext (long text , i, i)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("subtext (TEXT, INT, INT) (30)", act result * msec factor (frequency) - for corr)
+
+END PROC subtext 30 s ;
+
+
+
+
+PROC replace 1 (INT CONST frequency) :
+
+ i := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ replace (single text, i, single text)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ replace 1 s (frequency)
+
+END PROC replace 1 ;
+
+
+
+
+PROC replace 1 s (INT CONST frequency) :
+
+ i := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ replace (single text, i, single text)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("replace (TEXT, TEXT, INT) (1)", act result * msec factor (frequency) - for corr)
+
+END PROC replace 1 s ;
+
+
+
+
+PROC replace 10 (INT CONST frequency) :
+
+ i := 7 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ replace (short text, i, single text)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ replace 10 s (frequency)
+
+END PROC replace 10 ;
+
+
+
+
+PROC replace 10 s (INT CONST frequency) :
+
+ i := 7 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ replace (short text, i, single text)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("replace (TEXT, TEXT, INT) (10)", act result * msec factor (frequency) - for corr)
+
+END PROC replace 10 s ;
+
+
+
+
+PROC replace 30 (INT CONST frequency) :
+
+ i := 17 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ replace (long text, i, single text)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ replace 30 s (frequency)
+
+END PROC replace 30 ;
+
+
+
+
+PROC replace 30 s (INT CONST frequency) :
+
+ i := 17 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ replace (long text, i, single text)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("replace (TEXT, TEXT, INT) (30)", act result * msec factor (frequency) - for corr)
+
+END PROC replace 30 s ;
+
+
+
+
+PROC text 1 (INT CONST frequency) :
+
+ i := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := text (single text, i, i)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text 1 s (frequency)
+
+END PROC text 1 ;
+
+
+
+
+PROC text 1 s (INT CONST frequency) :
+
+ i := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := text (single text, i, i)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("text (TEXT, INT, INT) (1)", act result * msec factor (frequency) - for corr)
+
+END PROC text 1 s ;
+
+
+
+
+PROC text 10 (INT CONST frequency) :
+
+ i := 7 ;
+ j := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := text (short text, j, i)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text 10 s (frequency)
+
+END PROC text 10 ;
+
+
+
+
+PROC text 10 s (INT CONST frequency) :
+
+ i := 7 ;
+ j := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := text (short text, j, i)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("text (TEXT, INT, INT) (10)", act result * msec factor (frequency) - for corr)
+
+END PROC text 10 s ;
+
+
+
+
+PROC text 30 (INT CONST frequency) :
+
+ i := 17 ;
+ j := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := text (long text, j, i)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ text 30 s (frequency)
+
+END PROC text 30 ;
+
+
+
+
+PROC text 30 s (INT CONST frequency) :
+
+ i := 17 ;
+ j := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ free text := text (long text, j, i)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("text (TEXT, INT, INT) (30)", act result * msec factor (frequency) - for corr)
+
+END PROC text 30 s ;
+
+
+
+
+PROC pos 1 (INT CONST frequency) :
+
+ i := 1 ;
+ j := 0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ j := pos (single text, single text, i)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ pos 1 s (frequency)
+
+END PROC pos 1 ;
+
+
+
+
+PROC pos 1 s (INT CONST frequency) :
+
+ i := 1 ;
+ j := 0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ j := pos (single text, single text, i)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("pos (TEXT, TEXT, INT) (1)", act result * msec factor (frequency) - for corr)
+
+END PROC pos 1 s ;
+
+
+
+
+PROC pos 10 (INT CONST frequency) :
+
+ i := 1 ;
+ j := 0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ j := pos (short text, single text, i)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ pos 10 s (frequency)
+
+END PROC pos 10 ;
+
+
+
+
+PROC pos 10 s (INT CONST frequency) :
+
+ i := 1 ;
+ j := 0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ j := pos (short text, single text, i)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("pos (TEXT, TEXT, INT) (10)", act result * msec factor (frequency) - for corr)
+
+END PROC pos 10 s ;
+
+
+
+
+PROC pos 30 (INT CONST frequency) :
+
+ i := 1 ;
+ j := 0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ j := pos (long text, single text, i)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ pos 30 s (frequency)
+
+END PROC pos 30 ;
+
+
+
+
+PROC pos 30 s (INT CONST frequency) :
+
+ i := 1 ;
+ j := 0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ j := pos (long text, single text, i)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("pos (TEXT, TEXT, INT) (30)", act result * msec factor (frequency) - for corr)
+
+END PROC pos 30 s ;
+
+
+END PACKET text operation ;