home *** CD-ROM | disk | FTP | other *** search
/ Phoenix CD 2.0 / Phoenix_CD.cdr / 24b / pcmbench.zip / BENCH12.BAS < prev    next >
BASIC Source File  |  1988-03-01  |  5KB  |  188 lines

  1. 100 'BENCH12.BAS         VERSION 1.0.0
  2. 200 '    CREATED BY BILL MACHRONE  06-83
  3. 300 '    MODIFIED BY MIKE O'CONE
  4. 400 '    Modified 2/15/86 by Charles Petzold:
  5. 410 '      Line 3800:  SYSTEM on termination.
  6. 420 '      Line 17610-20: CLOSE and KILL file after File Update Test.
  7. 430 '
  8. 500 '                          PC MAGAZINE
  9. 600 '                   A ZIFF-DAVIS PUBLICATION
  10. 700 '
  11. 800 KEY OFF :CLS :CLEAR
  12. 900 COLOR 0,7
  13. 1000 LOCATE 3,25  :PRINT "       BASIC BENCHMARKS      "    
  14. 1100 LOCATE 4,25  :PRINT "-----------------------------"
  15. 1200 LOCATE 5,25 :PRINT  "--PPPPPPPP-----CCCCCCCCCCCC--"
  16. 1300 LOCATE 6,25 :PRINT  "--PPPPPPPPP----CCCCCCCCCCCC--"
  17. 1400 LOCATE 7,25 :PRINT  "--PPPP---PPP---CCCC----CCCC--"
  18. 1500 LOCATE 8,25 :PRINT  "--PPPP---PPP---CCCC----CCCC--"
  19. 1600 LOCATE 9,25 :PRINT  "--PPPP---PPP---CCCC----CCCC--"
  20. 1700 LOCATE 10,25 :PRINT "--PPPPPPPPP----CCCC----------"
  21. 1800 LOCATE 11,25 :PRINT "--PPPPPPPP-----CCCC----CCCC--"
  22. 1900 LOCATE 12,25 :PRINT "--PPPP---------CCCC----CCCC--"
  23. 2000 LOCATE 13,25 :PRINT "--PPPP---------CCCC----CCCC--"
  24. 2100 LOCATE 14,25 :PRINT "--PPPP---------CCCCCCCCCCCC--"
  25. 2200 LOCATE 15,25 :PRINT "--PPPP---------CCCCCCCCCCCC--"
  26. 2300 LOCATE 16,25 :PRINT "-----------------------------"
  27. 2400 LOCATE 17,25 :PRINT "      BENCHMARK TEST #12     "
  28. 2500 COLOR 7,0
  29. 2600 '
  30. 2700 '
  31. 2800 '
  32. 2900 CL$=STRING$(79,32)
  33. 3000 LOCATE 6,60 :PRINT "TEST #" TAB(70) "DURATION"
  34. 3100 LOCATE 21,1 :PRINT CL$
  35. 3200 LOCATE 19,10 :PRINT "1. INTEGER ADDITION #1" :LOCATE 19,50 :PRINT "5. DATA LOOKUP"
  36. 3300 LOCATE 20,10 :PRINT "2. INTEGER ADDITION #2" :LOCATE 20,50 :PRINT "6. EMPTY LOOP"
  37. 3400 LOCATE 21,10 :PRINT "3. FLOATING POINT" :LOCATE 21,50 :PRINT "7. FILE UPDATE"
  38. 3500 LOCATE 22,10 :PRINT "4. STRING CONCATENATION" :LOCATE 22,50 :PRINT "8. ALL"
  39. 3600 LOCATE 1,55 :PRINT "                 "
  40. 3700 LOCATE 1,20 :LINE INPUT;"ENTER TEST SELECTION OR ENTER 'Q' TO QUIT ";SEL$
  41. 3800 IF SEL$="Q" OR SEL$="q" THEN SYSTEM
  42. 3900 SEL%=VAL(SEL$)
  43. 4000 IF SEL%<1 OR SEL%>8 THEN GOTO 3600
  44. 4100 LOCATE 1,1 :PRINT CL$
  45. 4200 LOCATE 1,25 :COLOR 16,7 :PRINT "        PLEASE WAIT          " :COLOR 7,0
  46. 4300 IF SEL%=8 THEN GOTO 5300
  47. 4400 IF SEL%=1 THEN GOSUB 7100
  48. 4500 IF SEL%=2 THEN GOSUB 8200
  49. 4600 IF SEL%=3 THEN GOSUB 9300
  50. 4700 IF SEL%=4 THEN GOSUB 10700
  51. 4800 IF SEL%=5 THEN GOSUB 12100
  52. 4900 IF SEL%=6 THEN GOSUB 14200
  53. 5000 IF SEL%=7 THEN GOSUB 15300
  54. 5100 LOCATE 8,60 :PRINT RE1$ TAB(70) RE2$
  55. 5200 GOTO 6800
  56. 5300 'SEL%=8
  57. 5400 GOSUB 7100
  58. 5500 LOCATE 8,60 :PRINT RE1$ TAB(70) RE2$
  59. 5600 GOSUB 8200
  60. 5700 LOCATE 9,60 :PRINT RE1$ TAB(70) RE2$
  61. 5800 GOSUB 9300
  62. 5900 LOCATE 10,60 :PRINT RE1$ TAB(70) RE2$
  63. 6000 GOSUB 10700
  64. 6100 LOCATE 11,60 :PRINT RE1$ TAB(70) RE2$
  65. 6200 GOSUB 12100
  66. 6300 LOCATE 12,60 :PRINT RE1$ TAB(70) RE2$
  67. 6400 GOSUB 14200
  68. 6500 LOCATE 13,60 :PRINT RE1$ TAB(70) RE2$
  69. 6600 GOSUB 15300
  70. 6700 LOCATE 14,60 :PRINT RE1$ TAB(70) RE2$
  71. 6800 LOCATE 1,25 :COLOR 0,7 :PRINT "       TESTING COMPLETE      " :COLOR 7,0
  72. 6900 LOCATE 2,28 :PRINT "HIT ANY KEY TO CONTINUE ";
  73. 7000 Z$=INKEY$ :IF Z$="" THEN GOTO 7000 ELSE GOTO 800
  74. 7100 '
  75. 7200 'INTEGER ADDITION #1 SUBROUTINE (INTADD.BAS)
  76. 7300 '
  77. 7400 '
  78. 7500  TIME$ = "0"
  79. 7600 WHILE X < 10000
  80. 7700  X = X + 1
  81. 7800 WEND
  82. 7900 '
  83. 8000 RE1$="1" :RE2$=TIME$
  84. 8100 RETURN
  85. 8200 '
  86. 8300 'INTEGER ADDITION #2 SUBROUTINE (INTADD2.BAS)
  87. 8400 '
  88. 8500 '
  89. 8600  TIME$ = "0"
  90. 8700 FOR X = 1 TO 10000
  91. 8800  V = V + 1
  92. 8900 NEXT X
  93. 9000 '
  94. 9100 RE1$="2" :RE2$=TIME$
  95. 9200 RETURN
  96. 9300 '
  97. 9400 'FLOATING POINT SUBROUTINE (FP.BAS)
  98. 9500 '
  99. 9600 '
  100. 9700  DEFINT X
  101. 9800  TIME$ = "0"
  102. 9900 FOR X = 1 TO 10000
  103. 10000  A=0:B=1234.56:C=78.9
  104. 10100  A=B*C
  105. 10200  A=B/C
  106. 10300 NEXT X
  107. 10400 '
  108. 10500 RE1$="3" :RE2$=TIME$
  109. 10600 RETURN
  110. 10700 '
  111. 10800 'STRING CONCATENATION SUBROUTINE (CONCAT.BAS)
  112. 10900 '
  113. 11000 '
  114. 11100  DEFINT X
  115. 11200  TIME$ = "0"
  116. 11300 FOR X = 1 TO 10000
  117. 11400  A$ = "This is a string"
  118. 11500  B$ = "This is a longer string with lots of words in it."
  119. 11600  C$ = A$+B$
  120. 11700 NEXT X
  121. 11800 '
  122. 11900 RE1$="4" :RE2$=TIME$
  123. 12000 RETURN
  124. 12100 '
  125. 12200 'DATA LOOKUP SUBROUTINE (LOOKUP.BAS) 
  126. 12300 '
  127. 12400 '
  128. 12500  DEFINT B-Z
  129. 12600  DIM A(25)
  130. 12700  TIME$ = "0"
  131. 12800 FOR X = 1 TO 1000
  132. 12900  RESTORE 13500
  133. 13000  FOR LOOP = 1 TO 25
  134. 13100   READ A(LOOP)
  135. 13200   NEXT LOOP
  136. 13300  NEXT X
  137. 13400 '
  138. 13500 DATA 1,2,3,4,5
  139. 13600 DATA 6,7,8,9,10
  140. 13700 DATA 11,12,13,14,15
  141. 13800 DATA 16,17,18,19,20
  142. 13900 DATA 21,22,23,24,25
  143. 14000 RE1$="5" :RE2$=TIME$
  144. 14100 RETURN
  145. 14200 '
  146. 14300 'EMPTY LOOP SUBROUTINE (EMPTY)
  147. 14400 '
  148. 14500 '
  149. 14600 'empty.bas
  150. 14700  TIME$ = "0"
  151. 14800 FOR X = 1 TO 10000
  152. 14900 NEXT X
  153. 15000 '
  154. 15100 RE1$="6" :RE2$=TIME$
  155. 15200 RETURN
  156. 15300 '
  157. 15400 'FILE UPDATE SUBROUTINE (UPDATE.BAS)
  158. 15500 '
  159. 15600 '
  160. 15700  TIME$ = "0"
  161. 15800  DEFINT X
  162. 15900 OPEN "R",1,"BENCH12.DAT", 132
  163. 16000 FIELD #1, 132 AS RECORD$
  164. 16100 NUMRECS=1000
  165. 16200 FOR X = 1 TO NUMRECS
  166. 16300  PUT #1,X
  167. 16400 NEXT X
  168. 16500 'read records back.
  169. 16600 FOR X = 1 TO NUMRECS
  170. 16700  GET #1,X
  171. 16800 NEXT X
  172. 16900 'modify and rewrite records.
  173. 17000 FOR X = 1 TO NUMRECS
  174. 17100  GOSUB 17900
  175. 17200  LSET RECORD$ = "Modified"
  176. 17300  GOSUB 18100
  177. 17400 NEXT X
  178. 17500 '
  179. 17600 RE1$="7" :RE2$=TIME$
  180. 17610 CLOSE #1
  181. 17620 KILL "BENCH12.DAT"
  182. 17700 RETURN
  183. 17800 '
  184. 17900 GET #1,X
  185. 18000 RETURN
  186. 18100 PUT #1,X
  187. 18200 RETURN
  188.