home *** CD-ROM | disk | FTP | other *** search
/ AppleDisk Magazine Miscellaneous Programs / AppleDisk_Misc_Programs_3.dsk / COSTELLAZIONI / COSTELLAZIONI.bas < prev   
Encoding:
BASIC Source File  |  1987-01-01  |  9.1 KB  |  230 lines

  1. 100  REM    *********************
  2. 110  REM    *                   *
  3. 120  REM    *   COSTELLAZIONI   *
  4. 130  REM    * - Riccardo Ronco  *
  5. 140  REM    *                   *
  6. 150  REM    *    (C) 1990 by    *
  7. 160  REM    *     AppleDISK     *
  8. 170  REM    *                   *
  9. 180  REM    *********************
  10. 190 :
  11. 200  IF  PEEK(104) = 8  THEN  POKE 104,96: POKE 103,1: POKE 24576,0: PRINT  CHR$(4);"RUN COSTELLAZIONI": END 
  12. 210  HGR2 : PRINT  CHR$(4);"BLOAD COSTELL.PIC,A$4000": FOR K = 1 TO 5000: NEXT 
  13. 220  PRINT  CHR$(4);"BLOAD COSTELL.SHAPES,A$800"
  14. 230  POKE 232,0: POKE 233,8
  15. 240  POKE 230,32: CALL 62450: POKE 230,64: CALL 62450
  16. 250  CLEAR :D$ =  CHR$(4): PRINT  CHR$(21): PRINT : TEXT : HOME 
  17. 260  DIM X(24),Y(24),SI$(11)
  18. 270  FOR X = 768 TO 783: READ A: POKE X,A: NEXT 
  19. 280  DATA  173,85,192,169,32,133,230,96,173,84,192,169,64,133,230,96 
  20. 290  ONERR  GOTO 320
  21. 300  PRINT : PRINT D$"PR#4": PRINT  CHR$(1): PRINT D$"PR#0": REM *** ABILITA MOUSE ***
  22. 310  GOTO 540
  23. 320  POKE 216,0: IF  PEEK(222) < >3  THEN  PRINT "ERRORE...": END 
  24. 330  INVERSE : PRINT "       C O S T E L L A Z I O N I        ";: PRINT "     DI RICCARDO RONCO - APPLEDISK      ": NORMAL 
  25. 340  FOR K = 1 TO 3: PRINT  CHR$(7): NEXT : VTAB 10: PRINT "SPIACENTE, QUESTO PROGRAMMA RICHIEDE": PRINT "UN MOUSE COLLEGATO ALLO SLOT 4."
  26. 350  END 
  27. 360  REM *** SPAZIO PER LE SUBROUTINES ***
  28. 370  REM *** LETTURA FILE COSTELL.DATA,L47 ***
  29. 380  HOME : HGR2 : HGR : POKE  -16302,0
  30. 390  HCOLOR= 3: SCALE= 1: ROT= 0
  31. 400  PRINT D$;"OPEN COSTELL.DATA,L47"
  32. 410 VF = IN +VI -1
  33. 420 K = 1
  34. 430  FOR X = VI TO VF
  35. 440  PRINT D$;"READ COSTELL.DATA,R";X
  36. 450  INPUT X$: INPUT Y$: INPUT S$: INPUT N$: INPUT C$: INPUT M$: PRINT D$
  37. 460 XX =  VAL(X$):YY =  VAL(Y$):S =  VAL(S$)
  38. 470 X(K) = XX:Y(K) = YY:K = K +1
  39. 480  POKE 230,32: XDRAW (5 -S) AT XX,YY
  40. 490  POKE 230,64: XDRAW (5 -S) AT XX,YY
  41. 500  NEXT X
  42. 510  POKE 230,32: HPLOT 0,0 TO 279,0 TO 279,191 TO 0,191 TO 0,0: XDRAW 6 AT 0,0
  43. 520  POKE 230,64: HPLOT 0,0 TO 279,0 TO 279,191 TO 0,191 TO 0,0: XDRAW 6 AT 0,0
  44. 530  PRINT D$;"CLOSE": RETURN 
  45. 540 HT = 2:SN = 6:HL = 2: PRINT D$;"FRE"
  46. 550 HL$(0) = "       C O S T E L L A Z I O N I        "
  47. 560 HL$(1) = "     DI RICCARDO RONCO - APPLEDISK      "
  48. 570 SI$(1) = "COSTELLAZIONI IN PRIMAVERA"
  49. 580 SI$(2) = "COSTELLAZIONI IN ESTATE"
  50. 590 SI$(3) = "COSTELLAZIONI IN AUTUNNO"
  51. 600 SI$(4) = "COSTELLAZIONI IN INVERNO"
  52. 610 SI$(5) = "COSTELLAZIONI NEL BLOCCO CIRCUMPOLARE"
  53. 620 SI$(6) = "FINE"
  54. 630  GOSUB 2240
  55. 640  ON CS GOTO 650,850,1110,1330,1550,1710
  56. 650 HT = 2:SN = 8:HL = 1
  57. 660 HL$(0) = "       COSTELLAZIONI IN PRIMAVERA       "
  58. 670 SI$(1) = "BOOTES"
  59. 680 SI$(2) = "CORONA BOREALIS"
  60. 690 SI$(3) = "LEO"
  61. 700 SI$(4) = "HIDRA"
  62. 710 SI$(5) = "LIBRA"
  63. 720 SI$(6) = "VIRGO"
  64. 730 SI$(7) = "CORVUS"
  65. 740 SI$(8) = "MENU PRINCIPALE"
  66. 750  GOSUB 2240
  67. 760  ON CS GOTO 770,780,790,800,810,820,830,840
  68. 770 VI = 1:IN = 7: GOTO 1810
  69. 780 VI = 8:IN = 7: GOTO 1810
  70. 790 VI = 15:IN = 10: GOTO 1810
  71. 800 VI = 25:IN = 17: GOTO 1810
  72. 810 VI = 42:IN = 4: GOTO 1810
  73. 820 VI = 46:IN = 10: GOTO 1810
  74. 830 VI = 56:IN = 6: GOTO 1810
  75. 840  GOTO 540
  76. 850 HT = 2:SN = 11:HL = 1
  77. 860 HL$(0) = "         COSTELLAZIONI IN ESTATE        "
  78. 870 SI$(1) = "AQUILA"
  79. 880 SI$(2) = "CAPRICORNUS"
  80. 890 SI$(3) = "CYGNUS"
  81. 900 SI$(4) = "DELPHINUS"
  82. 910 SI$(5) = "HERCULES"
  83. 920 SI$(6) = "LYRA"
  84. 930 SI$(7) = "OPHIUCHUS"
  85. 940 SI$(8) = "SAGITTA"
  86. 950 SI$(9) = "SAGITTARIUS"
  87. 960 SI$(10) = "SCORPIUS"
  88. 970 SI$(11) = "MENU PRINCIPALE"
  89. 980  GOSUB 2240
  90. 990  ON CS GOTO 1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100
  91. 1000 VI = 62:IN = 9: GOTO 1810
  92. 1010 VI = 71:IN = 12: GOTO 1810
  93. 1020 VI = 83:IN = 6: GOTO 1810
  94. 1030 VI = 89:IN = 5: GOTO 1810
  95. 1040 VI = 94:IN = 13: GOTO 1810
  96. 1050 VI = 107:IN = 6: GOTO 1810
  97. 1060 VI = 113:IN = 23: GOTO 1810
  98. 1070 VI = 136:IN = 4: GOTO 1810
  99. 1080 VI = 140:IN = 18: GOTO 1810
  100. 1090 VI = 158:IN = 20: GOTO 1810
  101. 1100  GOTO 540
  102. 1110 HT = 2:SN = 9:HL = 1
  103. 1120 HL$(0) = "        COSTELLAZIONI IN AUTUNNO        "
  104. 1130 SI$(1) = "AQUARIUS"
  105. 1140 SI$(2) = "ARIES"
  106. 1150 SI$(3) = "CETUS"
  107. 1160 SI$(4) = "ANDROMEDA E PEGASO"
  108. 1170 SI$(5) = "PERSEUS (PERSEO)"
  109. 1180 SI$(6) = "PISCES"
  110. 1190 SI$(7) = "PISCIS AUSTRINUS"
  111. 1200 SI$(8) = "TRIANGULUM"
  112. 1210 SI$(9) = "MENU PRINCIPALE"
  113. 1220  GOSUB 2240
  114. 1230  ON CS GOTO 1240,1250,1260,1270,1280,1290,1300,1310,1320
  115. 1240 VI = 178:IN = 24: GOTO 1810
  116. 1250 VI = 202:IN = 3: GOTO 1810
  117. 1260 VI = 205:IN = 15: GOTO 1810
  118. 1270 VI = 220:IN = 20: GOTO 1810
  119. 1280 VI = 240:IN = 19: GOTO 1810
  120. 1290 VI = 259:IN = 17: GOTO 1810
  121. 1300 VI = 276:IN = 7: GOTO 1810
  122. 1310 VI = 283:IN = 3: GOTO 1810
  123. 1320  GOTO 540
  124. 1330 HT = 2:SN = 9:HL = 1
  125. 1340 HL$(0) = "        COSTELLAZIONI IN INVERNO        "
  126. 1350 SI$(1) = "AURIGA"
  127. 1360 SI$(2) = "CANCER"
  128. 1370 SI$(3) = "CANIS MAJOR"
  129. 1380 SI$(4) = "CANIS MINOR"
  130. 1390 SI$(5) = "ERIDANUS"
  131. 1400 SI$(6) = "GEMINI"
  132. 1410 SI$(7) = "LEPUS"
  133. 1420 SI$(8) = "ORION"
  134. 1430 SI$(9) = "MENU PRINCIPALE"
  135. 1440  GOSUB 2240
  136. 1450  ON CS GOTO 1460,1470,1480,1490,1500,1510,1520,1530,1540
  137. 1460 VI = 286:IN = 9: GOTO 1810
  138. 1470 VI = 295:IN = 5: GOTO 1810
  139. 1480 VI = 300:IN = 6: GOTO 1810
  140. 1490 VI = 306:IN = 3: GOTO 1810
  141. 1500 VI = 309:IN = 14: GOTO 1810
  142. 1510 VI = 323:IN = 10: GOTO 1810
  143. 1520 VI = 333:IN = 8: GOTO 1810
  144. 1530 VI = 341:IN = 9: GOTO 1810
  145. 1540  GOTO 540
  146. 1550 HT = 2:SN = 6:HL = 1
  147. 1560 HL$(0) = "  COSTELLAZIONI NEL BLOCCO CIRCUMPOLARE "
  148. 1570 SI$(1) = "CASSIOPEA"
  149. 1580 SI$(2) = "CEPHEUS"
  150. 1590 SI$(3) = "DRACO"
  151. 1600 SI$(4) = "URSA MAJOR"
  152. 1610 SI$(5) = "URSA MINOR"
  153. 1620 SI$(6) = "MENU PRINCIPALE"
  154. 1630  GOSUB 2240
  155. 1640  ON CS GOTO 1650,1660,1670,1680,1690,1700
  156. 1650 VI = 350:IN = 6: GOTO 1810
  157. 1660 VI = 356:IN = 11: GOTO 1810
  158. 1670 VI = 367:IN = 19: GOTO 1810
  159. 1680 VI = 386:IN = 8: GOTO 1810
  160. 1690 VI = 394:IN = 7: GOTO 1810
  161. 1700  GOTO 540
  162. 1710 HT = 12:SN = 3:HL = 1
  163. 1720 HL$(0) = "             FINE PROGRAMMA             "
  164. 1730 SI$(1) = "MENU PRINCIPALE"
  165. 1740 SI$(2) = "PRODOS"
  166. 1750 SI$(3) = "APPLESOFT"
  167. 1760  GOSUB 2240
  168. 1770  ON CS GOTO 1780,1790,1800
  169. 1780  GOTO 540
  170. 1790  TEXT : HOME : PRINT D$"BYE"
  171. 1800  TEXT : HOME : END 
  172. 1810  REM *** VISUALIZZAZIONE ***
  173. 1820  GOSUB 370: REM *** LETTURA E DISEGNO COSTELL ***
  174. 1830 X1 = 0:Y1 = 0:X2 = 0:Y2 = 0
  175. 1840  PRINT D$"IN#4"
  176. 1850  INPUT "";XM,YM,SM: IF SM = 2  THEN A = 1: GOTO 1990
  177. 1860  IF SM <0  THEN A = 2: GOTO 1990
  178. 1870 XM =  INT(XM/3.666):YM =  INT(YM/5.356)
  179. 1880  PRINT D$"IN#0"
  180. 1890  CALL 776: XDRAW 6 AT X1,Y1: XDRAW 6 AT XM,YM:X1 = XM:Y1 = YM
  181. 1900  CALL 768
  182. 1910  PRINT D$"IN#4"
  183. 1920  INPUT "";XM,YM,SM: IF SM = 2  THEN A = 1: GOTO 1990
  184. 1930  IF SM <0  THEN A = 2: GOTO 1990
  185. 1940 XM =  INT(XM/3.666):YM =  INT(YM/5.356)
  186. 1950  PRINT D$"IN#0"
  187. 1960  XDRAW 6 AT X2,Y2: XDRAW 6 AT XM,YM:X2 = XM:Y2 = YM
  188. 1970  IF XM >255  THEN  POKE 790,1: POKE 792,(XM -256): POKE 791,YM: GOTO 1840
  189. 1980  POKE 790,0: POKE 791,YM: POKE 792,XM: GOTO 1840
  190. 1990  POKE  -16368,0: PRINT D$"IN#0": PRINT : PRINT D$"PR#4": PRINT  CHR$(0): PRINT D$"PR#0": PRINT 
  191. 2000  IF A = 2  THEN  POKE 230,32: CALL 62450: POKE 230,64: CALL 62450: GOTO 540
  192. 2010  IF A = 1  THEN YM =  PEEK(791):XM =  PEEK(792) + PEEK(790) *256: GOTO 2020
  193. 2020 XA = XM -3:XB = XM +3:YA = YM -3:YB = YM +3
  194. 2030  FOR X = 1 TO IN
  195. 2040  IF X(X) > = XA  AND X(X) < = XB  AND Y(X) > = YA  AND Y(X) < = YB  THEN CH = X:X = IN: GOTO 2070
  196. 2050  NEXT 
  197. 2060  PRINT  CHR$(7): GOTO 1770
  198. 2070  REM *** CONFERMA INDIVIDUAZIONE ***
  199. 2080  POKE 230,64: HPLOT 0,YM TO XM -5,YM: HPLOT XM +5,YM TO 279,YM: HPLOT XM,0 TO XM,YM -5: HPLOT XM,YM +5 TO XM,191
  200. 2090  FOR X = 1 TO 2500: NEXT 
  201. 2100  HOME : TEXT : HOME : INVERSE : PRINT "  CARATTERISTICHE DELLA STELLA SCELTA  "
  202. 2110 R = VI +CH -1: PRINT D$"OPEN COSTELL.DATA": PRINT D$"READ COSTELL.DATA,R";R: INPUT A: INPUT A: INPUT A: INPUT N$: INPUT C$: INPUT M$: PRINT D$: PRINT D$"CLOSE"
  203. 2120  VTAB 5: PRINT "< NOME >": VTAB 10: PRINT "< COLORE >": VTAB 15: PRINT "< MAGNITUDINE >": NORMAL 
  204. 2130  IF N$ = ""  THEN N$ = "NOME NON PRESENTE"
  205. 2140  IF C$ = ""  THEN C$ = "COLORE NON PRESENTE"
  206. 2150  IF M$ = ""  THEN M$ = "MAGNITUDINE NON PRESENTE"
  207. 2160  VTAB 7: PRINT N$: VTAB 12: PRINT C$: VTAB 17: PRINT M$
  208. 2170  FOR X = 1 TO  LEN(M$): IF  MID$ (M$,X,1) = "("  THEN  VTAB 19: PRINT "STELLA DOPPIA DI CUI UNA VARIABILE": GOTO 2220
  209. 2180  IF  MID$ (M$,X,1) = "#"  THEN  VTAB 19: PRINT "STELLA VARIABILE AD ECLISSE": GOTO 2220
  210. 2190  IF  MID$ (M$,X,1) = "E"  THEN  VTAB 19: PRINT "STELLA DOPPIA": GOTO 2220
  211. 2200  IF  MID$ (M$,X,1) = "-"  THEN  VTAB 19: PRINT "STELLA VARIABILE": GOTO 2220
  212. 2210  NEXT 
  213. 2220  POKE 230,32: CALL 62450: POKE 230,64: CALL 62450
  214. 2230  VTAB 23: PRINT "PREMI RETURN PER PROSEGUIRE.";: GET A$: PRINT : GOTO 1820
  215. 2240  TEXT : HOME 
  216. 2250  INVERSE : FOR X = 0 TO HL -1: PRINT HL$(X);: NEXT X: PRINT : NORMAL 
  217. 2260 CS = 1
  218. 2270  FOR X = 1 TO SN: IF X = CS  THEN  INVERSE 
  219. 2280  VTAB HL +2 +X +X *(SN <9): HTAB HT: PRINT SI$(X): NORMAL 
  220. 2290  NEXT X
  221. 2300  VTAB 23: PRINT "<- -> SELEZIONE, RETURN CONFERMA."
  222. 2310  POKE  -16368,0
  223. 2320 K =  PEEK( -16384): IF K <128  THEN 2320
  224. 2330  POKE  -16368,0:K = K -128: IF K < >8  AND K < >11  AND K < >21  AND K < >10  AND K < >13  THEN 2320
  225. 2340 OS = CS
  226. 2350  IF K = 8  OR K = 11  THEN CS = CS -1:CS = CS *(CS >0) +SN *(CS = 0): GOSUB 2380: GOTO 2320
  227. 2360  IF K = 21  OR K = 10  THEN CS = CS +1:CS = CS *(CS < = SN) +(CS = SN +1): GOSUB 2380: GOTO 2320
  228. 2370  RETURN 
  229. 2380  VTAB HL +2 +OS +OS *(SN <9): HTAB HT: PRINT SI$(OS)
  230. 2390  VTAB HL +2 +CS +CS *(SN <9): INVERSE : HTAB HT: PRINT SI$(CS): NORMAL : RETURN