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/src/gen.benchmark | 98 ++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 app/speedtest/1986/src/gen.benchmark (limited to 'app/speedtest/1986/src/gen.benchmark') 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 ; + + + -- cgit v1.2.3