From 98cab31fc3659e33aef260efca55bf9f1753164c Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 11 Feb 2019 11:49:19 +0100 Subject: Add source files from Michael --- app/speedtest/1986/doc/MEM64180.PRT | 103 +++ app/speedtest/1986/doc/MEMATARI.PRT | 101 +++ app/speedtest/1986/doc/MEMB108.PRT | 99 +++ app/speedtest/1986/doc/MEMB1082.PRT | 112 +++ app/speedtest/1986/doc/MEMBIC10.PRT | 100 +++ app/speedtest/1986/doc/MEMBIC8.PRT | 101 +++ app/speedtest/1986/doc/MEMCLA15.PRT | 100 +++ app/speedtest/1986/doc/MEMRUC12.PRT | 101 +++ app/speedtest/1986/doc/MEMV30.PRT | 100 +++ app/speedtest/1986/src/convert operation | 396 +++++++++ app/speedtest/1986/src/gen.benchmark | 98 +++ app/speedtest/1986/src/integer operation | 614 +++++++++++++ app/speedtest/1986/src/notice | 102 +++ app/speedtest/1986/src/real operation | 519 +++++++++++ app/speedtest/1986/src/run down logic | 429 +++++++++ app/speedtest/1986/src/speed tester | 209 +++++ app/speedtest/1986/src/text operation | 1401 ++++++++++++++++++++++++++++++ 17 files changed, 4685 insertions(+) create mode 100644 app/speedtest/1986/doc/MEM64180.PRT create mode 100644 app/speedtest/1986/doc/MEMATARI.PRT create mode 100644 app/speedtest/1986/doc/MEMB108.PRT create mode 100644 app/speedtest/1986/doc/MEMB1082.PRT create mode 100644 app/speedtest/1986/doc/MEMBIC10.PRT create mode 100644 app/speedtest/1986/doc/MEMBIC8.PRT create mode 100644 app/speedtest/1986/doc/MEMCLA15.PRT create mode 100644 app/speedtest/1986/doc/MEMRUC12.PRT create mode 100644 app/speedtest/1986/doc/MEMV30.PRT create mode 100644 app/speedtest/1986/src/convert operation create mode 100644 app/speedtest/1986/src/gen.benchmark create mode 100644 app/speedtest/1986/src/integer operation create mode 100644 app/speedtest/1986/src/notice create mode 100644 app/speedtest/1986/src/real operation create mode 100644 app/speedtest/1986/src/run down logic create mode 100644 app/speedtest/1986/src/speed tester create mode 100644 app/speedtest/1986/src/text operation (limited to 'app/speedtest/1986') 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 ; -- cgit v1.2.3