home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib40a.dsk / MARCH.1991 / ALCHEMY.DEMO.bas < prev    next >
BASIC Source File  |  2023-02-26  |  8KB  |  206 lines

  1. 1  REM   ******************************
  2. 2  REM   * ALCHEMY.DEMO               *
  3. 3  REM   * BY JERRY JONGERIUS         *
  4. 4  REM   * COPYRIGHT(C) 1991          *
  5. 5  REM   * MINDCRAFT PUBL. CORP.      *
  6. 6  REM   * CONCORD, MA 01742          *
  7. 7  REM   ******************************
  8. 8  REM 
  9. 1000  PRINT : PRINT  CHR$(4);"BRUN ALCHEMY"
  10. 1010  PRINT  CHR$(21): DIM OP$(15)
  11. 1020 SET =  -1:CLR =  -2
  12. 1030 DIS =  -3:SW =  -4
  13. 1040 EXR =  -5:LFT =  -6
  14. 1050 UP =  -7:CIR =  -8
  15. 1060 BOX =  -9
  16. 1070 OP$(1) = "ANIMATED BOX"
  17. 1080 OP$(2) = "THREE GRAPHICS PAGES"
  18. 1090 OP$(3) = "EXCLUSIVE-OR"
  19. 1100 OP$(4) = "FLIP - LEFT/RIGHT"
  20. 1110 OP$(5) = "FLIP - UP/DOWN"
  21. 1120 OP$(6) = "CIRCLE - SPEED CONTRAST"
  22. 1130 OP$(7) = "ELLIPSE - SPEED CONTRAST"
  23. 1140 OP$(8) = "CIRCLE - WORLD"
  24. 1150 OP$(9) = "CIRCLE - OLYMPICS"
  25. 1160 OP$(10) = "CIRCLE - CBS"
  26. 1170  TEXT : HOME : PRINT  CHR$(17)
  27. 1180 HEAD$ = "****************************************": REM  40 *s
  28. 1190  HOME : PRINT HEAD$;
  29. 1200  PRINT  SPC( 8);"<< HI-RES ALCHEMY DEMO >>"
  30. 1210  PRINT  SPC( 10)"BY JERRY JONGERIUS": PRINT  SPC( 6)"(C) 1991 MINDCRAFT PUBL. CORP.": PRINT HEAD$
  31. 1220  FOR L = 1 TO 10: HTAB 9 - LEN( STR$(L)): VTAB 7 +L: PRINT "<";L;">";"  ";OP$(L): NEXT 
  32. 1230  HTAB 8: PRINT "<Q>  QUIT"
  33. 1240  VTAB 21: PRINT "WHICH NUMBER (1-10) ": PRINT "(WHILE DRAWING, <ESC> RETURNS HERE)"
  34. 1250  VTAB 21: HTAB 21: INPUT "";N$
  35. 1260  IF N$ = "Q"  OR N$ = "q"  THEN  HOME : END 
  36. 1270 N =  VAL(N$): IF N <1  OR N >10  THEN  PRINT  CHR$(7): GOTO 1250
  37. 1280  ON N GOSUB 1300,1540,1740,1940,2150,2360,2530,2610,2750,2860
  38. 1290  POKE  -16368,0: GOTO 1170
  39. 1300  REM **********************
  40. 1310  REM *                    *
  41. 1320  REM *    ANIMATED BOX    *
  42. 1330  REM *                    *
  43. 1340  REM **********************
  44. 1350  HOME 
  45. 1360 ST = .035:C = 0: HCOLOR= 3
  46. 1370  FOR Y = 1 TO 2:P =  USR(CLR),Y,0: NEXT 
  47. 1380  FOR Y = 1 TO 2: FOR X = 0 TO 2:P =  USR(BOX),Y,X,X,279 -X,191 -X: NEXT : NEXT 
  48. 1390 C = 0:D = 5:E = 5
  49. 1400 A = 30 * COS(C) +125:B = 30 * SIN(C) +70
  50. 1410  HCOLOR= 3
  51. 1420 P =  USR(BOX),1,A,B,A +40,B +40
  52. 1430 P =  USR(DIS),1,1
  53. 1440  HCOLOR= 0:P =  USR(BOX),2,D,E,D +40,E +40
  54. 1450  HCOLOR= 3
  55. 1460 C = C +ST:D = 30 * COS(C) +125:E = 30 * SIN(C) +70
  56. 1470 P =  USR(BOX),2,D,E,D +40,E +40
  57. 1480 P =  USR(DIS),2,1
  58. 1490  HCOLOR= 0
  59. 1500 P =  USR(BOX),1,A,B,A +40,B +40
  60. 1510 C = C +ST
  61. 1520  IF  PEEK( -16384) = 155  THEN  RETURN 
  62. 1530  GOTO 1400
  63. 1540  REM **********************
  64. 1550  REM *                    *
  65. 1560  REM *    THREE PAGES     *
  66. 1570  REM *                    *
  67. 1580  REM **********************
  68. 1590  HOME : HCOLOR= 3
  69. 1600  VTAB 12: HTAB 13: INVERSE : PRINT "DRAWING PICTURES": NORMAL 
  70. 1610  FOR X = 1 TO 3:Z =  USR(CLR),X,0: NEXT 
  71. 1620  FOR Y = 0 TO 78  STEP 6: FOR X = 0 TO 2:Z =  USR(BOX),1,X +Y,X +Y,279 -X -Y,159 -X -Y: NEXT : NEXT 
  72. 1630 Z =  USR(CIR),2,140,80,30,30,.05:Z =  USR(BOX),2,110,50,170,110
  73. 1640 Z =  USR(CIR),3,140,80,30,10,.05
  74. 1650 Z =  USR(CIR),3,140,80,10,30,.05
  75. 1660  FOR X = 1 TO 3:P(X) = X: NEXT 
  76. 1670 Z =  USR(DIS),1,2:B = 1
  77. 1680  HOME : VTAB 23: PRINT "WHICH PAGE (1-3)? ";
  78. 1690  GET A$: IF A$ =  CHR$(27)  THEN  RETURN 
  79. 1700 A =  VAL(A$): IF A <1  OR A >3  THEN  PRINT  CHR$(7);: GOTO 1690
  80. 1710 Z =  USR(SW),P(A),1
  81. 1720 Q = P(A):P(A) = 1:P(B) = Q
  82. 1730 B = A: GOTO 1680
  83. 1740  REM **********************
  84. 1750  REM *                    *
  85. 1760  REM *    EXCLUSIVE-OR    *
  86. 1770  REM *                    *
  87. 1780  REM **********************
  88. 1790  HOME :P = 1
  89. 1800  PRINT "DRAW IN WHICH COLOR ";
  90. 1810  GET A$:A =  VAL(A$): IF A = 0  OR A = 4  OR A >7  THEN  PRINT  CHR$(7);: GOTO 1810
  91. 1820 Z =  USR(SET),P:Z =  USR(CLR),P,0:Z =  USR(DIS),P,2: HCOLOR= A
  92. 1830  FOR X = 0 TO 80  STEP 4
  93. 1840 Z =  USR(BOX),P,140 -X,X,140 +X,160 -X
  94. 1850  NEXT 
  95. 1860 B = 127: GOSUB 1900
  96. 1870 B = 128: GOSUB 1900
  97. 1880 B = 255: GOSUB 1900
  98. 1890  HOME : VTAB 23: PRINT "PRESS ANY KEY TO RETURN TO MENU ";: GET A$: RETURN 
  99. 1900  HOME : VTAB 23: PRINT "PRESS A KEY TO EOR THE PAGE WITH ";: INVERSE : PRINT B;: NORMAL : PRINT " ";: GET A$
  100. 1910 Z =  USR(EXR),1,B
  101. 1920  HOME : VTAB 23: PRINT "PRESS ANY KEY TO RETURN PAGE TO NORMAL ";: GET A$
  102. 1930 Z =  USR(EXR),1,B: RETURN 
  103. 1940  REM **********************
  104. 1950  REM *                    *
  105. 1960  REM *      F/F L/R       *
  106. 1970  REM *                    *
  107. 1980  REM **********************
  108. 1990  HOME : PRINT "DRAW IN WHICH COLOR ";
  109. 2000  GET A$:A =  VAL(A$): IF A = 0  OR A = 4  OR A >7  THEN  PRINT  CHR$(7);: GOTO 2000
  110. 2010  HCOLOR= A:S = .01:P = 1
  111. 2020 Z =  USR(SET),P
  112. 2030 Z =  USR(CLR),P,0
  113. 2040 Z =  USR(DIS),P,2
  114. 2050  FOR C = 0 TO 10
  115. 2060 Z =  USR(BOX),P,50 -C,30 -C,50 +C,130 +C
  116. 2070 Z =  USR(BOX),P,100 -C,30 -C,100 +C,130 +C
  117. 2080 Z =  USR(BOX),P,70 -C,80 -C,80 +C,80 +C
  118. 2090 Z =  USR(BOX),P,160 -C,90 -C,160 +C,130 +C
  119. 2100 Z =  USR(BOX),P,160 -C,60 -C,160 +C,60 +C
  120. 2110  NEXT 
  121. 2120  HOME : VTAB 23: PRINT "PRESS ANY KEY TO FLIP PICTURE ";
  122. 2130  GET A$: IF A$ =  CHR$(27)  THEN  RETURN 
  123. 2140 Z =  USR(LFT),P: GOTO 2120
  124. 2150  REM **********************
  125. 2160  REM *                    *
  126. 2170  REM *     FLIP U/D       *
  127. 2180  REM *                    *
  128. 2190  REM **********************
  129. 2200  HOME : PRINT "DRAW IN WHICH COLOR ";
  130. 2210  GET A$:A =  VAL(A$): IF A = 0  OR A = 4  OR A >7  THEN  PRINT  CHR$(7);: GOTO 2210
  131. 2220  HCOLOR= A:S = .01
  132. 2230 P = 1
  133. 2240 Z =  USR(SET),P
  134. 2250 Z =  USR(CLR),P,0
  135. 2260 Z =  USR(DIS),P,2
  136. 2270 Z =  USR(BOX),1,80,50,190,120
  137. 2280 Z =  USR(BOX),1,84,54,166,116
  138. 2290  HPLOT 80,120 TO 70,115 TO 70,45
  139. 2300  HPLOT 80,50 TO 70,45 TO 180,45 TO 190,50
  140. 2310  HPLOT 90,15 TO 130,47 TO 170,15
  141. 2320 Z =  USR(CIR),1,174,60,3,3,.1:Z =  USR(CIR),1,182,60,3,3,.1
  142. 2330  HOME : VTAB 23: PRINT "PRESS ANY KEY TO FLIP PICTURE ";
  143. 2340  GET A$: IF A$ =  CHR$(27)  THEN  RETURN 
  144. 2350 Z =  USR(UP),P: GOTO 2330
  145. 2360  REM **********************
  146. 2370  REM *                    *
  147. 2380  REM *  CIRCLE - CONTRAST *
  148. 2390  REM *                    *
  149. 2400  REM **********************
  150. 2410 H2 = 25:S = .03
  151. 2420  HOME : HGR : HCOLOR= 3
  152. 2430  VTAB 23: PRINT "BASIC VERSION": FOR X = 1 TO 300: NEXT 
  153. 2440 P1 = 100:P2 = 96:H1 = 25
  154. 2450  FOR X = 0 TO 3.14159/2  STEP S
  155. 2460 A = H1 * COS(X):B = H2 * SIN(X)
  156. 2470  HPLOT P1 +A,P2 +B: HPLOT P1 -A,P2 +B
  157. 2480  HPLOT P1 -A,P2 -B: HPLOT P1 +A,P2 -B: NEXT 
  158. 2490  VTAB 23: PRINT "THE M/L VERSION"
  159. 2500 Z =  USR(CIR),1,P1 +80,P2,H1,H2,S
  160. 2510  FOR X = 1 TO 500: NEXT 
  161. 2520  VTAB 23: PRINT "PRESS ANY KEY TO RETURN TO THE MENU ";: GET A$: RETURN 
  162. 2530  REM **********************
  163. 2540  REM *                    *
  164. 2550  REM * ELLIPSE - CONTRAST *
  165. 2560  REM *                    *
  166. 2570  REM **********************
  167. 2580  REM 
  168. 2590 H2 = 50:S = .02: GOTO 2420
  169. 2600  REM 
  170. 2610  REM **********************
  171. 2620  REM *                    *
  172. 2630  REM *   CIRCLE - WORLD   *
  173. 2640  REM *                    *
  174. 2650  REM **********************
  175. 2660  HOME 
  176. 2670 J1 = .01:J2 = .01: HCOLOR= 3
  177. 2680 Z =  USR(SET),2:Z =  USR(CLR),Z,0:Z =  USR(DIS),Z,1: FOR X = 0 TO 2:Z =  USR(BOX),Z,X,X,279 -X,191 -X: NEXT 
  178. 2690  HPLOT 140,16 TO 140,174: FOR X = 10 TO 90  STEP 10
  179. 2700 Z =  USR(CIR),Z,140,95,X,80,J1
  180. 2710  IF  PEEK( -16384) = 155  THEN  RETURN 
  181. 2720  NEXT 
  182. 2730 Z =  USR(CIR),Z,140,95,90,14,J2
  183. 2740  POKE  -16368,0: GET A$: RETURN 
  184. 2750  REM **********************
  185. 2760  REM *                    *
  186. 2770  REM *  CIRCLE - OLYMPICS *
  187. 2780  REM *                    *
  188. 2790  REM **********************
  189. 2800  HOME : HCOLOR= 3:Z =  USR(SET),1:Z =  USR(CLR),Z,0:Z =  USR(DIS),Z,2
  190. 2810 C2 = 50: RESTORE : FOR K = 1 TO 3: READ C1: GOSUB 2840: NEXT :C2 = 78: FOR K = 1 TO 2: READ C1: GOSUB 2840: NEXT 
  191. 2820  POKE  -16368,0
  192. 2830  VTAB 23: PRINT "PRESS ANY KEY TO RETURN TO THE MENU ";: GET A$: RETURN 
  193. 2840  FOR X = 1 TO 3:Z =  USR(CIR),Z,C1,C2,25 +X,25 +X,.02: NEXT : RETURN 
  194. 2850  DATA  140,80,200,110,170
  195. 2860  REM *********************
  196. 2870  REM *                   *
  197. 2880  REM *   CIRCLE - CBS    *
  198. 2890  REM *                   *
  199. 2900  REM *********************
  200. 2910  HOME : HCOLOR= 3:Z =  USR(SET),1:Z =  USR(CLR),Z,0:Z =  USR(DIS),Z,2
  201. 2920 X = 140:Y = 80:H1 = 50:H2 = H1/2:S = .01
  202. 2930 Z =  USR(CIR),Z,X,Y,H1,H1,S
  203. 2940 Z =  USR(CIR),Z,X,Y,H2,H2,S
  204. 2950 Z =  USR(CIR),Z,X,Y,H1,H2,S
  205. 2960  VTAB 23: PRINT "PRESS ANY KEY TO RETURN TO THE MENU ";
  206. 2970  POKE  -16368,0: GET A$: RETURN