home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 8 / 008.d81 / barchart (.txt) < prev    next >
Commodore BASIC  |  2022-08-26  |  3KB  |  134 lines

  1. 100 rem bar graph (interactive data entry)
  2. 104 printchr$(14)"[144]":poke53280,5:poke53281,1
  3. 105 print"[147] [212]his program requires a 1520 [208]rinter/"
  4. 106 print"[208]lotter or similar device.  "
  5. 107 print:print"[196]o you have this type of device?";
  6. 108 poke198,0:wait198,1:getk$:ifk$<>"y"andk$<>"n"then108
  7. 109 printk$:ifk$="n"then63000
  8. 110 open4,6,0    :rem print ascii data
  9. 120 open1,6,1    :rem plot x,y data
  10. 130 open2,6,2    :rem color
  11. 140 open3,6,3    :rem character size
  12. 145 print#4:print#4:print#4,"bar chart":print#4
  13. 147 print#4:print#4:print#4:print#4:print#4:print#4:print#4
  14. 150 gosub 980    :rem main title
  15. 170 c=1:gosub950 :rem sub title
  16. 180 print#1,"m";0,-360
  17. 190 print#4
  18. 200 print#1,"m";35,0 :rem pen to 35,0
  19. 210 print#1,"d";35,500 :rem draws y axis
  20. 215 print#1,"d";35,-200
  21. 220 print#1,"h"
  22. 230 print#1,"m";35,0
  23. 240 print#1,"d";500,0 :rem draws x axis
  24. 250 fori=-200to500step25 :rem ticks marks
  25. 260 print#1,"m";30,i
  26. 270 print#1,"d";35,i
  27. 280 next i
  28. 290 :
  29. 300 for i=1to l
  30. 310 c=i     :gosub950
  31. 320 h=a(i)*5:gosub590
  32. 330 nexti
  33. 340 :
  34. 350 for i=1 to l
  35. 360 c=i     :gosub950
  36. 370 h=a(i)*5:gosub670
  37. 380 nexti
  38. 390 :
  39. 400 print#1,"h"
  40. 410 print#4
  41. 420 :
  42. 430 for i=1 to l
  43. 440 c=i:s=1:gosub950
  44. 450 x=0:y=0:gosub800
  45. 460 nexti
  46. 470 :
  47. 480 a$=t$
  48. 490 c=3:s=2    :gosub950
  49. 500 x=80:y=540 :gosub890
  50. 510 a$=s$
  51. 520 c=2:s=1    :gosub950
  52. 530 x=90:y=510 :gosub890
  53. 540 :
  54. 550 print#1,"h":print#4:print#4:print#4
  55. 553 print#4:print#4:print#4:print#4:print#4
  56. 554 gosub1105
  57. 555 open7,6,7:print#7:rem reset plotter
  58. 560 close4:close1:close2:close3:close7
  59. 570 end
  60. 580 :
  61. 590 rem==write box==
  62. 600 x(i)=(i-1)*36*2+36:w=36
  63. 610 print#1,"m";x(i),0
  64. 620 print#1,"d";x(i),h
  65. 630 print#1,"d";x(i)+w,h
  66. 640 print#1,"d";x(i)+w,0
  67. 650 return
  68. 660 :
  69. 670 rem==fill box==
  70. 680 x(i)=(i-1)*36*2+36:w=36
  71. 690 print#1,"m";x(i),0
  72. 692 if h=>0then700
  73. 694 if h<0then735
  74. 700 for j=0to h step2
  75. 705 print#1,"d";x(i)+w,j
  76. 710 print#1,"d";x(i)+w,j+1
  77. 715 if j+1>h then 735
  78. 720 print#1,"d";x(i),j+1
  79. 725 print#1,"d";x(i),j+2
  80. 730 next j
  81. 735 for j=0toh step -2
  82. 740 print#1,"d";x(i)+w,j
  83. 745 print#1,"d";x(i)+w,j-1
  84. 750 if j-1<h then 770
  85. 755 print#1,"d";x(i),j-1
  86. 760 print#1,"d";x(i),j-2
  87. 765 next j
  88. 770 return
  89. 780 :
  90. 790 rem==character y==
  91. 800 print#1,"m";x,y:print#4
  92. 810 ss=(2^s)*10
  93. 820 for m=1 to len(a$)
  94. 830 print#1,"m";x(i)+9,ss/5
  95. 840 print#4,mid$(a$,m,1)
  96. 850 next m
  97. 860 print#1,"m";0,ss*4/5*len(a$)+ss*2+y:print#4
  98. 870 return
  99. 880 :
  100. 890 rem==character x==
  101. 900 print#1,"m";x,y
  102. 920 print#4,a$
  103. 930 print#1,"m";x,-y+40*s:print#4:return
  104. 940 :
  105. 950 rem==color,size==
  106. 960 print#2,c:print#3,s:return
  107. 970 :
  108. 980 print chr$(147)
  109. 990 input"enter main title";t$
  110. 1000 input"enter sub title";s$
  111. 1010 input"enter number of data points 1-6";l
  112. 1020 if l<1 or l>6 then goto 1010
  113. 1030 fori=1tol
  114. 1040 print" ":print"data point",i
  115. 1050 input"enter name 1-6 chars";a$(i)
  116. 1055 if len(a$(i))>6 then goto1050
  117. 1060 input"enter size -40-40";a(i)
  118. 1070 if a(i)<-40 or a(i)>40 then goto1060
  119. 1080 next i
  120. 1090 return
  121. 1100 :
  122. 1105 print#2,2
  123. 1110 print#4,"data points....."
  124. 1120 for i=1 to l
  125. 1130 print#4,a$(i),a(i)
  126. 1140 nexti
  127. 1150 print#4:print#4:print#4
  128. 1160 print#4:print#4:print#4
  129. 1170 return
  130. 63000 rem    connect back to l.s.
  131. 63001 print"[147]     [211]orry, this won't work for you."
  132. 63002 print"load"chr$(34)"payload"chr$(34)",8":print"run"
  133. 63004 poke198,0:poke631,13:poke632,13:poke198,2:end
  134.