home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib29a.dsk / DECEMBER.1986 / MAKE.TRK.TABLES.bas < prev    next >
BASIC Source File  |  2023-02-26  |  12KB  |  308 lines

  1. 10  REM  **********************
  2. 20  REM  *  MAKE.TRK.TABLES   *
  3. 30  REM  *  BY COLIN FRENCH   *
  4. 40  REM  * COPYRIGHT (C) 1986 *
  5. 50  REM  * BY MICROSPARC, INC *
  6. 60  REM  * CONCORD, MA  01742 *
  7. 70  REM  **********************
  8. 80  ONERR  GOTO 3080
  9. 90  TEXT : HOME : VTAB 5: LOMEM: 35840
  10. 100  PRINT  TAB( 5)"FORMULA NIBBLE TABLE GENERATOR": PRINT 
  11. 110  PRINT : PRINT "MAKING XBYTE & XBIT..."
  12. 120 X1 = 239:BYT = 28672:BIT = 28928
  13. 130  POKE BYT,X1: POKE BYT +1,X1
  14. 140  POKE BIT,3: POKE BIT +1,5
  15. 150 X = 2:BYT = BYT +X:BIT = BIT +X:X1 = X1 +1
  16. 160  FOR N = 0 TO 3:X = X +1: IF X >256  THEN 250
  17. 170  POKE BYT,X1: POKE BIT,N *2
  18. 180 BYT = BYT +1:BIT = BIT +1: NEXT 
  19. 190 X1 = X1 +1: IF X1 = 256  THEN X1 = 0
  20. 200  FOR N = 0 TO 2:X = X +1: IF X >256  THEN 250
  21. 210  POKE BYT,X1: POKE BIT,N *2 +1
  22. 220 BYT = BYT +1:BIT = BIT +1: NEXT 
  23. 230 X1 = X1 +1: IF X1 = 256  THEN X1 = 0
  24. 240  GOTO 160
  25. 250  PRINT : PRINT "MAKING SCRNLO & SCRNHI..."
  26. 260  FOR Y = 0 TO 191
  27. 270 Y1 =  INT(Y/64)
  28. 280 Y2 =  INT((Y -Y1 *64)/8)
  29. 290 Y3 = Y -Y1 *64 -Y2 *8
  30. 300 ADD = 8192 +Y1 *40 +Y2 *128 +Y3 *1024
  31. 310  POKE 29184 +Y,ADD - INT(ADD/256) *256
  32. 320  POKE 29376 +Y, INT(ADD/256)
  33. 330  NEXT 
  34. 340  PRINT : PRINT "POKEING LEFT TRACK EDGE PATTERNS..."
  35. 350  FOR N = 0 TO 127: READ D: POKE 29568 +N,D: NEXT 
  36. 360  DATA  127,126,124,121,114,101,74,0
  37. 370  DATA  1,3,7,15,31,63,127,0
  38. 380  DATA  63,126,124,121,114,101,74,0
  39. 390  DATA  0,0,1,3,7,15,31,0
  40. 400  DATA  15,30,60,121,114,101,74,0
  41. 410  DATA  0,0,0,0,1,3,7,0
  42. 420  DATA  3,6,12,25,50,101,74,0
  43. 430  DATA  0,0,0,0,0,0,1,0
  44. 440  DATA  85,42,84,41,82,37,74,0
  45. 450  DATA  0,1,2,5,10,21,42,0
  46. 460  DATA  37,42,84,41,82,37,74,0
  47. 470  DATA  0,0,0,1,2,5,10,0
  48. 480  DATA  5,10,20,41,82,37,74,0
  49. 490  DATA  0,0,0,0,0,1,2,0
  50. 500  DATA  1,2,4,9,18,37,74,0
  51. 510  DATA  0,0,0,0,0,0,0,0
  52. 520  PRINT : PRINT "POKEING RIGHT TRACK EDGE PATTERNS..."
  53. 530  FOR N = 0 TO 127: READ D: POKE 29696 +N,D: NEXT 
  54. 540  DATA  127,126,124,120,112,96,64,0
  55. 550  DATA  85,43,87,47,95,63,127,0
  56. 560  DATA  63,126,124,120,112,96,64,0
  57. 570  DATA  85,42,85,43,87,47,95,0
  58. 580  DATA  47,94,60,120,112,96,64,0
  59. 590  DATA  85,42,85,42,85,43,87,0
  60. 600  DATA  43,86,44,88,48,96,64,0
  61. 610  DATA  85,42,85,42,85,42,85,0
  62. 620  DATA  85,42,84,40,80,32,64,0
  63. 630  DATA  84,41,82,37,74,21,42,0
  64. 640  DATA  21,42,84,40,80,32,64,0
  65. 650  DATA  85,42,84,41,82,37,74,0
  66. 660  DATA  37,74,20,40,80,32,64,0
  67. 670  DATA  85,42,85,42,84,41,82,0
  68. 680  DATA  41,82,30,72,16,32,64,0
  69. 690  DATA  85,42,85,42,85,42,85,0
  70. 700  PRINT : PRINT "POKEING WHITE CENTER LINE PATTERNS..."
  71. 710  FOR N = 0 TO 7: READ D: POKE 29824 +N,D: NEXT 
  72. 720  DATA  3,6,12,24,48,96,96,0
  73. 730  PRINT : PRINT "POKEING TRACK EDGE PATTERN ADDRESSES..."
  74. 740  FOR N = 0 TO 31: READ D: POKE 29832 +N,D: NEXT 
  75. 750  DATA  128,144,160,176,136,152,168,184
  76. 760  DATA  192,208,224,240,200,216,232,248
  77. 770  DATA  0,16,32,48,8,24,40,56
  78. 780  DATA  64,80,96,112,72,88,104,120
  79. 790  PRINT : PRINT "POKEING SIZES OF TRACK SEGMENTS..."
  80. 800  FOR N = 0 TO 3: POKE 29888 +N,0: NEXT 
  81. 810  FOR N = 4 TO 11: POKE 29888 +N,1: NEXT 
  82. 820  FOR N = 12 TO 19: POKE 29888 +N,2: NEXT 
  83. 830  FOR N = 20 TO 23: POKE 29888 +N,3: NEXT 
  84. 840  PRINT : PRINT "MAKING TRACK WIDTH TABLE..."
  85. 850  FOR N = 0 TO 39: POKE 29912 +N,N *2 +4: NEXT 
  86. 860  PRINT : PRINT "MAKING PERSPEC & PERFRC TABLES..."
  87. 870  FOR N = 0 TO 127
  88. 880 V =  INT((127 -N) *6.4 +0.5)
  89. 890 VH =  INT(V/256):VL = V -VH *256
  90. 900  POKE 29952 +N,VH: POKE 30208 +N,VL: NEXT 
  91. 910  FOR N = 128 TO 255
  92. 920 V =  INT((255 -N) *6.4 +64717.5)
  93. 930 VH =  INT(V/256):VL = V -VH *256
  94. 940  POKE 29952 +N,VH: POKE 30208 +N,VL: NEXT 
  95. 950  PRINT : PRINT "POKEING YLIMIT TABLE..."
  96. 960  FOR N = 0 TO 23: READ D: POKE 30464 +N,D: NEXT 
  97. 970  DATA  101,98,95,92,90,88,86,84
  98. 980  DATA  82,80,78,76,75,74,73,72
  99. 990  DATA  71,70,69,68,67,66,65,64
  100. 1000  PRINT : PRINT "MAKING GRASS PATTERN..."
  101. 1010  FOR N = 0 TO 39  STEP 2
  102. 1020  POKE 30488 +N,42: POKE 30489 +N,85
  103. 1030  NEXT 
  104. 1040  PRINT : PRINT "POKEING ROADSIDE POST PATTERNS..."
  105. 1050  FOR N = 0 TO 63: READ D: POKE 30560 +N,D: NEXT 
  106. 1060  DATA  127,126,124,120,112,96,64,0
  107. 1070  DATA  1,3,7,15,31,63,127,0
  108. 1080  DATA  63,126,124,120,112,96,64,0
  109. 1090  DATA  0,0,1,3,7,15,31,0
  110. 1100  DATA  15,30,60,120,112,96,64,0
  111. 1110  DATA  0,0,0,0,1,3,7,0
  112. 1120  DATA  3,6,12,24,48,96,64,0
  113. 1130  DATA  0,0,0,0,0,0,1,0
  114. 1140  PRINT : PRINT "POKEING POST PATTERN ADDRESSES..."
  115. 1150  FOR N = 0 TO 15: READ D: POKE 30624 +N,D: NEXT 
  116. 1160  DATA  96,112,128,144,119,119,119,119
  117. 1170  DATA  104,120,136,152,119,119,119,119
  118. 1180  PRINT : PRINT "POKEING POST SIZES..."
  119. 1190  FOR N = 0 TO 3: POKE 30640 +N,0: NEXT 
  120. 1200  FOR N = 4 TO 11: POKE 30640 +N,1: NEXT 
  121. 1210  FOR N = 12 TO 19: POKE 30640 +N,2: NEXT 
  122. 1220  FOR N = 20 TO 23: POKE 30640 +N,3: NEXT 
  123. 1230  PRINT : PRINT "POKEING POST DRAWING PARAMETERS..."
  124. 1240  FOR N = 0 TO 95: READ D: POKE 30664 +N,D: NEXT 
  125. 1250  DATA  102,99,96,93,91,89,87,85
  126. 1260  DATA  83,81,79,77,76,75,74,73
  127. 1270  DATA  72,71,70,69,68,67,66,65
  128. 1280  DATA  75,75,74,74,73,73,72,72
  129. 1290  DATA  71,71,70,70,69,69,68,68
  130. 1300  DATA  67,67,66,66,65,65,64,64
  131. 1310  DATA  115,109,103,97,90,85,80,75
  132. 1320  DATA  70,65,60,55,49,45,41,37
  133. 1330  DATA  33,29,25,21,16,13,10,7
  134. 1340  DATA  111,105,99,93,87,82,77,72
  135. 1350  DATA  67,62,57,52,47,43,39,35
  136. 1360  DATA  31,27,23,19,15,12,9,6
  137. 1370  PRINT : PRINT "POKEING DIGIT BIT PATTERNS..."
  138. 1380  FOR N = 0 TO 87: READ D: POKE 30760 +N,D: NEXT 
  139. 1390  DATA  30,51,51,51,51,51,51,30
  140. 1400  DATA  12,14,12,12,12,12,12,30
  141. 1410  DATA  30,51,48,28,14,3,3,63
  142. 1420  DATA  30,51,48,28,48,48,51,30
  143. 1430  DATA  48,56,60,54,51,127,48,48
  144. 1440  DATA  63,3,3,31,48,48,51,30
  145. 1450  DATA  30,51,3,31,51,51,51,30
  146. 1460  DATA  63,48,24,12,6,6,6,6
  147. 1470  DATA  30,51,51,30,51,51,51,30
  148. 1480  DATA  30,51,51,51,62,48,51,30
  149. 1490  DATA  0,0,0,0,0,0,0,0
  150. 1500  PRINT : PRINT "POKEING IN DIGIT ADDRESSES..."
  151. 1510  FOR N = 0 TO 15: POKE 30848 +N,N *8 +40
  152. 1520  POKE 30864 +N,120: NEXT 
  153. 1530  PRINT : PRINT "POKEING IN TEXT LINE ADDRESSES..."
  154. 1540  POKE 30880,208: POKE 30881,208
  155. 1550  FOR N = 2 TO 7: POKE 30880 +N,80: NEXT 
  156. 1560  POKE 30888,58: POKE 30889,62
  157. 1570  FOR N = 2 TO 7: POKE 30888 +N,N *4 +27: NEXT 
  158. 1580  PRINT : PRINT "POKEING LEFT FRONT TIRE BIT PATTERNS..."
  159. 1590  FOR N = 0 TO 191: READ D: POKE 30896 +N,D: NEXT 
  160. 1600  DATA  112,127,127,127,127,127,127,127
  161. 1610  DATA  15,12,0,0,0,0,0,12
  162. 1620  DATA  0,48,3,0,0,0,0,0
  163. 1630  DATA  3,0,64,0,0,0,0,0
  164. 1640  DATA  128,224,128,224,128,224,128,124
  165. 1650  DATA  128,152,128,152,128,152,128,152
  166. 1660  DATA  128,152,128,216,128,212,128,213
  167. 1670  DATA  160,213,0,0,0,0,0,0
  168. 1680  DATA  0,96,127,127,127,127,127,127
  169. 1690  DATA  3,64,31,0,0,0,0,15
  170. 1700  DATA  0,60,60,0,0,0,0,96
  171. 1710  DATA  0,0,64,0,0,0,0,0
  172. 1720  DATA  128,152,128,152,128,134,128,134
  173. 1730  DATA  128,134,192,129,192,129,192,129
  174. 1740  DATA  192,129,192,193,192,213,128,213
  175. 1750  DATA  130,213,0,0,0,0,0,0
  176. 1760  DATA  0,0,127,127,127,127,127,127
  177. 1770  DATA  0,64,127,0,0,0,126,0
  178. 1780  DATA  0,63,60,0,0,0,64,1
  179. 1790  DATA  0,0,0,0,0,0,0,0
  180. 1800  DATA  176,128,176,128,140,128,140,128
  181. 1810  DATA  140,128,140,128,131,128,131,128
  182. 1820  DATA  131,128,131,192,131,212,131,213
  183. 1830  DATA  169,213,0,0,0,0,0,0
  184. 1840  PRINT : PRINT "POKEING RIGHT FRONT TIRE BIT PATTERNS...";
  185. 1850  FOR N = 0 TO 191: READ D: POKE 31088 +N,D: NEXT 
  186. 1860  DATA  0,127,127,127,127,127,127,0
  187. 1870  DATA  0,126,0,0,63,0,0,0
  188. 1880  DATA  127,1,1,0,0,64,1,0
  189. 1890  DATA  0,0,30,0,0,0,0,0
  190. 1900  DATA  128,134,128,134,128,152,128,152
  191. 1910  DATA  128,152,128,152,128,224,128,224
  192. 1920  DATA  128,224,130,224,170,224,170,225
  193. 1930  DATA  170,229,0,0,0,0,0,0
  194. 1940  DATA  96,127,127,127,127,127,127,3
  195. 1950  DATA  0,30,0,120,0,0,0,0
  196. 1960  DATA  124,1,1,0,0,3,0,0
  197. 1970  DATA  0,0,30,0,0,0,0,0
  198. 1980  DATA  140,128,140,128,176,128,176,128
  199. 1990  DATA  176,128,192,129,192,129,192,129
  200. 2000  DATA  192,129,194,129,234,129,170,129
  201. 2010  DATA  170,133,0,0,0,0,0,0
  202. 2020  DATA  120,127,127,127,127,127,127,127
  203. 2030  DATA  7,6,0,24,0,0,0,0
  204. 2040  DATA  0,24,1,0,96,0,0,0
  205. 2050  DATA  0,0,96,0,0,0,0,0
  206. 2060  DATA  131,128,131,128,131,128,131,128
  207. 2070  DATA  140,128,140,128,140,128,140,128
  208. 2080  DATA  140,128,142,128,170,128,170,128
  209. 2090  DATA  170,133,0,0,0,0,0,0
  210. 2100  PRINT : PRINT "POKEING TIRE PATTERN ADDRESSES..."
  211. 2110  FOR N = 0 TO 31: READ D: POKE 31280 +N,D: NEXT 
  212. 2120  DATA  176,240,48,0,120,120,121,0
  213. 2130  DATA  208,16,80,0,120,121,121,0
  214. 2140  DATA  112,176,240,0,121,121,121,0
  215. 2150  DATA  144,208,16,0,121,121,122,0
  216. 2160  PRINT : PRINT "POKEING LEFT-HAND BIT PATTERNS..."
  217. 2170  FOR N = 0 TO 143: READ D: POKE 31312 +N,D: NEXT 
  218. 2180  DATA  0,112,127,3,0,124,127,3
  219. 2190  DATA  0,124,127,3,0,124,127,3
  220. 2200  DATA  0,124,127,3,0,124,127,0
  221. 2210  DATA  0,124,127,0,0,124,127,0
  222. 2220  DATA  96,124,127,0,120,124,127,12
  223. 2230  DATA  120,124,127,60,126,124,127,60
  224. 2240  DATA  0,112,127,3,0,124,127,3
  225. 2250  DATA  0,124,127,3,0,124,127,3
  226. 2260  DATA  96,124,127,3,120,124,127,12
  227. 2270  DATA  120,124,127,60,126,124,127,60
  228. 2280  DATA  126,115,127,60,126,15,6,63
  229. 2290  DATA  126,127,121,63,126,127,127,15
  230. 2300  DATA  96,124,127,3,120,124,127,12
  231. 2310  DATA  120,124,127,60,126,124,127,60
  232. 2320  DATA  126,115,127,60,126,15,6,63
  233. 2330  DATA  126,127,121,63,126,127,127,15
  234. 2340  DATA  126,127,127,15,120,127,127,3
  235. 2350  DATA  120,127,127,3,96,127,127,0
  236. 2360  PRINT : PRINT "POKEING RIGHT-HAND BIT PATTERNS..."
  237. 2370  FOR N = 0 TO 143: READ D: POKE 31456 +N,D: NEXT 
  238. 2380  DATA  96,127,31,3,24,127,31,15
  239. 2390  DATA  30,127,31,15,30,127,31,63
  240. 2400  DATA  30,127,103,63,126,48,120,63
  241. 2410  DATA  126,79,127,63,120,127,127,63
  242. 2420  DATA  120,127,127,63,96,127,127,15
  243. 2430  DATA  96,127,127,15,0,127,127,3
  244. 2440  DATA  96,127,7,0,96,127,31,0
  245. 2450  DATA  96,127,31,0,96,127,31,0
  246. 2460  DATA  96,127,31,3,24,127,31,15
  247. 2470  DATA  30,127,31,15,30,127,31,63
  248. 2480  DATA  30,127,103,63,126,48,124,63
  249. 2490  DATA  126,79,127,63,120,127,127,63
  250. 2500  DATA  96,127,7,0,96,127,31,0
  251. 2510  DATA  96,127,31,0,96,127,31,0
  252. 2520  DATA  96,127,31,0,0,127,31,0
  253. 2530  DATA  0,127,31,0,0,127,31,0
  254. 2540  DATA  0,127,31,3,24,127,31,15
  255. 2550  DATA  30,127,31,15,30,127,31,63
  256. 2560  PRINT : PRINT "POKEING HAND PATTERN ADDRESSES..."
  257. 2570  FOR N = 0 TO 15: READ D: POKE 31600 +N,D: NEXT 
  258. 2580  DATA  80,128,176,0,122,122,122,0
  259. 2590  DATA  224,16,64,0,122,123,123,0
  260. 2600  PRINT : PRINT "POKEING INSTRUMENT NEEDLE BIT PATTERNS..";
  261. 2610  FOR N = 0 TO 159: READ D: POKE 31616 +N,D: NEXT 
  262. 2620  DATA  129,192,129,192,128,128,192,130
  263. 2630  DATA  192,130,192,130,209,192,209,192
  264. 2640  DATA  129,192,129,192,128,128,192,130
  265. 2650  DATA  208,130,212,128,149,192,129,192
  266. 2660  DATA  129,192,129,192,128,128,212,130
  267. 2670  DATA  212,130,128,128,129,192,129,192
  268. 2680  DATA  129,192,149,192,212,128,208,130
  269. 2690  DATA  192,130,128,128,129,192,129,192
  270. 2700  DATA  209,192,209,192,192,130,192,130
  271. 2710  DATA  192,130,128,128,129,192,129,192
  272. 2720  DATA  193,194,193,194,192,130,192,130
  273. 2730  DATA  192,130,128,128,129,192,129,192
  274. 2740  DATA  129,202,129,202,192,130,192,130
  275. 2750  DATA  192,130,128,128,129,192,129,192
  276. 2760  DATA  129,192,129,200,128,170,192,138
  277. 2770  DATA  192,130,128,128,129,192,129,192
  278. 2780  DATA  129,192,129,192,128,128,192,170
  279. 2790  DATA  192,170,128,128,129,192,129,192
  280. 2800  DATA  129,192,129,192,128,128,192,130
  281. 2810  DATA  192,138,128,170,129,200,129,192
  282. 2820  PRINT : PRINT "POKEING INSTRUMENT PATTERN ADDRESSES..."
  283. 2830  FOR N = 0 TO 31: READ D: POKE 31776 +N,D: NEXT 
  284. 2840  DATA  128,144,160,176,192,208,224,240
  285. 2850  DATA  0,16,0,0,0,0,0,0
  286. 2860  DATA  123,123,123,123,123,123,123,123
  287. 2870  DATA  124,124,0,0,0,0,0,0
  288. 2880  PRINT : PRINT "POKEING STARTING LIGHTS BIT PATTERNS..."
  289. 2890  FOR N = 0 TO 47: READ D: POKE 31808 +N,D: NEXT 
  290. 2900  DATA  128,133,224,149,160,149,160,149
  291. 2910  DATA  160,149,128,149,0,0,0,0
  292. 2920  DATA  192,131,240,142,216,139,240,142
  293. 2930  DATA  216,139,224,130,0,0,0,0
  294. 2940  DATA  32,1,56,5,40,5,40,5
  295. 2950  DATA  40,5,32,1,0,0,0,0
  296. 2960  PRINT : PRINT "POKEING LIGHT PATTERN ADDRESSES..."
  297. 2970  FOR N = 0 TO 15: READ D: POKE 31856 +N,D: NEXT 
  298. 2980  DATA  64,80,96,0,124,124,124,0
  299. 2990  DATA  16,19,22,0,0,0,0,0
  300. 3000  FOR N = 1 TO 5: PRINT : NEXT 
  301. 3010  PRINT "===== ALL FINISHED!! =====": PRINT 
  302. 3020  PRINT "INSERT DISK YOU WANT TO SAVE THE TABLES"
  303. 3030  PRINT "ON AND PRESS <RETURN> ";
  304. 3040  GET Z$: PRINT : PRINT "SAVING TABLES..."
  305. 3050  PRINT  CHR$(4)"BSAVE TRK.TABLES,A$7000,L$C80"
  306. 3060  PRINT "SAVE COMPLETED."
  307. 3070  END 
  308. 3080  HOME : TEXT : VTAB 12: PRINT "ERROR " PEEK(222)" IN LINE " PEEK(218) +256 * PEEK(219): END