home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1986 April / 64er_Magazin_86-04_1986_Markt__Technik_de.d64 / lms.bas (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  6KB  |  195 lines

  1. 100 rem ------ lms-auswerteprogramm v2.0
  2. 101 rem ------- 11/85  (c) franz stoiber
  3. 110 print chr$(14);chr$(8): poke 808,225: zf=6
  4. 120 e$="[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192] [197]nde [192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
  5. 130 poke 53280,15: poke 53281,15: poke 646,zf: gosub 1440
  6. 140 bl$="                                        "
  7. 150 ra=53248: pu=253: l=22: cl=985.248: r=.05
  8. 160 k0=2^8: k1=2^16: k2=2^24: k3=2^32: k4=k1-1: k5=63999: k6=10
  9. 170 rd=40679: at=40710: ab=40535: nr=40918
  10. 180 p1=40926: p2=p1+1: p3=p1+2: p4=p1+3: p5=p1+4: p6=p1+5: p7=p1+6: p8=p1+7
  11. 200 j=0: k=80: p=ra
  12. 210 kz$="      [206]r   [193]nz        msek    msek/[193]nz"
  13. 220 sys at,6,5,"[205]essung ..............   m"
  14. 230 sys at,6,7,"[193]nzeige ab [206]r ........   a"
  15. 240 sys at,6,9,"[214]orhergehende [211]eite ..   ^"
  16. 250 sys at,6,11,"[206]aechste [211]eite ....... return"
  17. 260 sys at,6,13,"[211]umme ................   s"
  18. 270 sys at,6,15,"[196]rucken ..............   d"
  19. 280 sys at,6,17,"[200]ilfe ................   h"
  20. 290 sys at,6,19,"[197]nde .................   e"
  21. 300 poke 198,0: sys at,0,24,"    [215]eiter mit: m/a/^/return/s/d/h/e   [146]";
  22. 310 poke 2023,160: poke 56295,zf
  23. 320 get a$: if a$="" then 320
  24. 330 if a$="m" then 430
  25. 340 if a$="a" then 450
  26. 350 if a$="^" then 490
  27. 360 if a$=chr$(13) then 540
  28. 370 if a$="s" then 570
  29. 380 if a$="d" then 720
  30. 390 if a$="h" then 1010
  31. 400 if a$="e" then 1030
  32. 410 goto 300
  33. 420 rem ------------------------ messung
  34. 430 poke 808,237: print chr$(9);"[147]";: sys 40160
  35. 440 rem --------------------- anzeige ab
  36. 450 gosub 1930: if f then 300
  37. 460 gosub 1440: gosub 1480
  38. 470 p=p-8: gosub 1130: goto 300
  39. 480 rem ------------------------ zurueck
  40. 490 gosub 1930: if f then 300
  41. 500 p=p-(zz+l-1)*8
  42. 510 if p<ra then p=ra
  43. 520 gosub 1130: goto 300
  44. 530 rem ---------------------------- vor
  45. 540 gosub 1930: if f then 300
  46. 550 gosub 1130: goto 300
  47. 560 rem -------------------------- summe
  48. 570 gosub 1930: if f then 300
  49. 580 gosub 1440
  50. 590 sys at,5,4,"[211]umme": sys at,5,5,"[163][163][163][163][163]"
  51. 600 gosub 1480: gosub 1580
  52. 610 p=p-8: s=0
  53. 620 gosub 1080
  54. 630 if z>zb then 670
  55. 640 gosub 1370
  56. 650 s=s+t: sys at,30,10,z
  57. 660 goto 620
  58. 670 sys at,30,10,"      "
  59. 680 t=s: t$="": gosub 1400
  60. 690 sys at,5,17,"[211]umme =";t$;" msek"
  61. 700 p=ra: goto 300
  62. 710 rem ------------------------ drucken
  63. 720 gosub 1930: if f then 300
  64. 730 gosub 1440
  65. 740 sys at,5,4,"[196]rucken": sys at,5,5,"[163][163][163][163][163][163][163]"
  66. 750 gosub 1480: gosub 1580: p=p-8: s=0
  67. 760 sys at,5,15,"[196]rucker [207].[203]. ?"
  68. 770 sys at,5,16,"[215]eiter mit beliebiger [212]aste"
  69. 780 poke 198,0: wait 198,1: poke 198,0
  70. 790 open 4,4,7: poke 768,185: print#4,"";: poke 768,139
  71. 800 if st then sys at,8,22," [196]rucker nicht bereit [146]": close 4: goto 300
  72. 810 if k<80 then pl$="": gosub 1830: goto 830
  73. 820 sys at,0,15,bl$;: sys at,0,16,bl$;
  74. 830 f=0: pl$=""
  75. 840 gosub 1080
  76. 850 if z>zb then 960
  77. 860 gosub 1320
  78. 870 gosub 1370
  79. 880 s=s+t: t$="": b$="            "
  80. 890 gosub 1400
  81. 900 if az<2 then 920
  82. 910 b$="": t=t/az: az=0: goto 890
  83. 920 pl$=pl$+"  "+z$+az$+t$+b$
  84. 930 if f=0 then f=1: goto 840
  85. 940 gosub 1830
  86. 950 goto 830
  87. 960 if f then gosub 1830
  88. 970 t=s: t$="": gosub 1400
  89. 980 pl$="       [211]umme ="+t$+" msek": gosub 1830
  90. 990 close 4: p=ra: goto 300
  91. 1000 rem ------------------------- hilfe
  92. 1010 gosub 1440: goto 220
  93. 1020 rem -------------------------- ende
  94. 1030 gosub 1440: sys at,5,13,"[194]itte [197]nde bestaetigen (j/n):  [146]";
  95. 1040 get a$: if a$="" then 1040
  96. 1050 if a$="j" then sys at,35,13,"j": sys 64738
  97. 1060 sys at,0,13,bl$;: goto 220
  98. 1070 rem ----------  werte aus ram lesen
  99. 1080 p=p+8: ph=int(p/k0): pl=p-ph*k0
  100. 1090 poke pu,pl: poke pu+1,ph: sys rd
  101. 1100 z=peek(p1)+peek(p2)*k0
  102. 1110 return
  103. 1120 rem -----------  ausgabe bildschirm
  104. 1130 print "[147]    [206]r   [193]nz        msek    msek/[193]nz    "
  105. 1140 m1=0: m2=0: c1$=" ": c2$=" "
  106. 1150 for zz=1 to l
  107. 1160 :gosub 1080
  108. 1170 :if z=k4 then p=p-8: print e$;: goto 1280
  109. 1180 :gosub 1320
  110. 1190 :gosub 1370
  111. 1200 :if t>m1 then m1=t: l1=zz: c1$="_"
  112. 1210 :t$=""
  113. 1220 :gosub 1400
  114. 1230 :if az<2 then 1260
  115. 1240 :t=t/az: if t>m2 then m2=t: l2=zz: c2$="_"
  116. 1250 :az=0: goto 1220
  117. 1260 :print z$;az$;t$
  118. 1270 next
  119. 1280 if c1$="_" then sys at,24,l1+1,c1$;
  120. 1290 if c2$="_" then sys at,36,l2+1,c2$;
  121. 1300 return
  122. 1310 rem ----------  aufbereitung nr,anz
  123. 1320 z$=right$("     "+str$(z),6)
  124. 1330 az=peek(p3)+peek(p4)*k0
  125. 1340 az$=right$("     "+str$(az),6)
  126. 1350 return
  127. 1360 rem ---------------  zeit errechnen
  128. 1370 t=(peek(p5)+peek(p6)*k0+peek(p7)*k1+peek(p8)*k2)/cl
  129. 1380 return
  130. 1390 rem ------------  aufbereitung zeit
  131. 1400 tr=t+r: th=int(tr): tl=int((tr-th)*k6)
  132. 1410 t$=t$+right$("         "+str$(th),10)+"."+right$(str$(tl),1)
  133. 1420 return
  134. 1430 rem -------------------  kopfzeilen
  135. 1440 print "[147]  [204]aufzeit  -  [205]ess  -  [211]ystem   [214]2.0   ";
  136. 1450 print "  (c) 11/85 [160][198]ranz [211]toiber              "
  137. 1460 return
  138. 1470 rem ----------  eingabe zeilennr ab
  139. 1480 ro=8: sys at,5,ro,"[193]b [206]r  ?  ";: gosub 1650
  140. 1490 if a$="     " then za=0: sys at,14,ro,za: goto 1520
  141. 1500 za=val(a$): if za<=k5 then sys at,0,22,bl$;: goto 1520
  142. 1510 sys at,6,22,"    [218]eilennummer zu gross    [146]";: goto 1480
  143. 1520 zh=int(za/k0): zl=za-zh*k0: poke nr,zl: poke nr+1,zh
  144. 1530 sys ab: p=peek(pu)+peek(pu+1)*k0
  145. 1540 p=p-8: gosub 1080
  146. 1550 if z<k4 then return
  147. 1560 sys at,6,22," [218]eilennummer nicht gefunden [146]";: goto 1480
  148. 1570 rem ---------  eingabe zeilennr bis
  149. 1580 ro=10: sys at,5,ro,"[194]is [206]r ?  ";: gosub 1650
  150. 1590 if a$="     " then zb=k5: sys at,14,ro,zb: return
  151. 1600 zb=val(a$): if zb>=za then 1620
  152. 1610 sys at,5,22,"  [218]eilennr bis < [218]eilennr ab  [146]";: goto 1580
  153. 1620 if zb>k5 then zb=k5
  154. 1630 sys at,0,22,bl$;: return
  155. 1640 rem ----------------  zahl eingeben
  156. 1650 n=1: rc=1024+14+40*ro: co=rc+54272: poke 198,0
  157. 1660 for i=1 to 5: poke co+i,zf: next
  158. 1670 if n>5 then n=5
  159. 1680 if n<1 then n=1
  160. 1690 po=rc+n: poke po,peek(po)+128
  161. 1700 get c$: if c$="" then 1700
  162. 1710 if c$>="0" and c$<="9" then poke po,asc(c$): n=n+1: goto 1670
  163. 1720 if c$=chr$(157) then poke po,peek(po)-128: n=n-1: goto 1670
  164. 1730 if c$=chr$(29) then poke po,peek(po)-128: n=n+1: goto 1670
  165. 1740 if c$=chr$(20) then sys at,15,ro,"     ";: goto 1650
  166. 1750 if c$=chr$(13) then poke po,peek(po)-128: goto 1770
  167. 1760 goto 1700
  168. 1770 a$=""
  169. 1780 for i=1 to 5
  170. 1790 :a$=a$+chr$(peek(rc+i))
  171. 1800 next
  172. 1810 return
  173. 1820 rem ----------------  zeile drucken
  174. 1830 if k<68 then 1900
  175. 1840 if k<73 then print# 4,"": k=k+1: goto 1840
  176. 1850 j=j+1: print# 4,"": print# 4,""
  177. 1860 print# 4,"   [204]aufzeit - [205]ess - [211]ystem  [214]2.0";
  178. 1870 print# 4,"     (c) [198]ranz [211]toiber 11/85      [211]eite: ";right$(str$(j+100),2)
  179. 1880 print# 4,"": print# 4,"": print# 4,kz$;kz$: print# 4,""
  180. 1890 k=8
  181. 1900 print# 4,pl$: k=k+1
  182. 1910 return
  183. 1920 rem -------------- test auf messung
  184. 1930 pp=p: f=0: p=ra-8: a$=""
  185. 1940 gosub 1080
  186. 1950 for i=p1 to p8: a$=a$+chr$(peek(i)): next
  187. 1960 if a$="lms-f.s." then 1990
  188. 1970 sys at,6,22," [203]eine [205]essung gelaufen ! [146]"
  189. 1980 f=1: return
  190. 1990 gosub 1080
  191. 2000 if z<k4 then p=pp: return
  192. 2010 sys at,6,21," [215]aehrend der [205]essung war "
  193. 2020 sys at,6,22,"  kein [208]rogramm geladen!  [146]"
  194. 2030 goto 1980
  195.