ZX Spectrum Astronomy: Discover the Heavens on Your Computer: cap. 8/2.B

Is a part of release: ZX Spectrum Astronomy: Discover the Heavens on Your Computer
File size: 7404
md5: cf63100f35445128310cc4f019e998af
  9 REM **********************
  10 REM  Mapa de estrellas
  11 REM ********************
  15 RESTORE 16: FOR f=USR "n" TO USR "n"+7: READ i: POKE f,i: NEXT f
  16 DATA BIN 00111000,0,BIN 01111000,BIN 01000100,BIN 01000100,BIN 01000100,BIN 01000100,0
  20 BORDER 0: PAPER 0: INK 9: CLS : DIM e$(32): LET G=100/60
  30 PRINT  PAPER 5;"   Constelaciones y estrellas   "
  40 LET t$="(mapa)"
  50 LET j=15: LET l=35
  59 REM ***********************
  60 REM Pantalla inicial/Selec.
  61 REM ***********************
  70 FOR n=1 TO z: PRINT AT n-(j AND n>j),0+(j AND n>j);(" " AND n<10);n;" ";n$(n): NEXT n
  80 PRINT  PAPER 1;AT 16,j;"31 prima.";t$;AT 17,j;"32 verano";t$;AT 18,j;"33 oto#o ";t$;AT 19,j;"34 invie.";t$;AT 20,j; PAPER 4;"35 mapa cielo"
  90 INPUT  INK 6;"selecciona No. ";m: IF m<1 OR m>35 THEN  GO TO 90
  100 PRINT #0; INK 5;"Trazado rapido o lento (r/l)": PAUSE 0: CLS : LET pa=1: IF INKEY$="l" THEN  LET pa=50
  109 REM ***********************
  110 REM Va a mapa de estaciones
  111 REM **********************
  120 IF m>30 THEN  GO TO m*10
  129 REM *********************
  130 REM *Constelacion simple
  131 REM *********************
  140 PRINT " ";n$(m);"  +=AS";a$(m);"DC";b$(m);CHR$ 130;AT 11,15; INK 4;"+"
  150 PRINT  INK 3;AT 1,13;"norte";AT 11,1;"este";AT 11,26;"oeste";AT 20,13;"sur": GO SUB 1210
  160 PRINT  INK 4;AT 20,1;"<5";CHR$ 130;">"
  170 LET sc=4
  175 FOR n=1 TO CODE z$(m)-64
  180 LET dx=VAL c$(m,n, TO 2)
  185 LET dy=VAL c$(m,n,3 TO )
  190 PLOT  dx*sc,dy*sc
  195 DRAW  BRIGHT 1;1,1: DRAW 1,-1: DRAW -1,-1
  200 PAUSE pa: NEXT n
  209 REM ***********************
  210 REM *Copia o Menu
  211 REM ***********************
  220 PRINT #0; PAPER 5; INK 9;"c para COPIA, m para MENU     "
  225 BEEP .6[J],40: BEEP .1 TO ,30
  230 PAUSE 0: IF INKEY$="c" THEN  PRINT AT 0,0; INVERSE 1; OVER 1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,: COPY SCREEN$ : INPUT "": GO TO 220
  240 GO TO 20
  299 REM **********************
  300 REM *goto condicional
  301 REM **********************
  310 PRINT " prima.";t$,: LET x1=-3: GO TO 1000
  320 PRINT " verano";t$,: LET x1=5: GO TO 1000
  330 PRINT " oto#o";t$,: LET x1=13: GO TO 1000
  340 PRINT " invierno";t$,: LET x1=-11: GO TO 1000
  350 PRINT " Mapa anual:  sur a las 9pm": LET hi=150: LET sc=.52R: LET x1=5: GO TO 1030
  999 REM **********************
  1000 REM  Traza mapa estaciones
  1001 REM *********************
  1010 LET sc=1: LET hi=50
  1020 PRINT "< 25";CHR$ 130;">"; PAPER 4;AT 21,0;" este horiz.   sur  horiz. oeste": GO TO 1060
  1030 FOR n=17 TO 21: PRINT  PAPER n-16;AT n,0;e$: NEXT n
  1040 PRINT AT 16,0;" oto#o   verano  prima.  invier."
  1050 FOR n=1 TO 3: PLOT  n*64,40: DRAW 0,10: NEXT n
  1060 GO SUB 1210: FOR f=1 TO z
  1070 PRINT #0;n$(f)
  1080 LET zx=VAL a$(f)
  1090 LET x=zx+(zx-INT zx)/G
  1100 LET y=VAL b$(f)
  1110 FOR n=1 TO CODE z$(f)-64
  1120 LET dx=VAL c$(f,n, TO 2)
  1130 LET dy=VAL c$(f,n,3 TO )
  1140 LET xx=(x1*15-x*20+380+dx)*sc
  1150 IF x1=13 AND xx>480 THEN  LET xx=xx-480
  1160 LET yy=(y*1.5+hi+dy)*sc
  1170 IF xx<0 OR xx>255 OR yy<0 OR yy>175 THEN  GO TO 1190
  1179 REM *********************
  1180 PLOT  xx,yy
  1181 REM *********************
  1190 NEXT n: PAUSE pa: INPUT "": NEXT f: GO TO 220
  1199 REM **********************
  1200 REM  Dibuja un encuadre
  1201 REM *********************
  1210 PLOT  0,0: DRAW 0,175: DRAW 255,0: DRAW 0,-175: DRAW -255,0: RETURN 
  1999 REM ********************
  2000 REM  Programa cargador
  2001 REM ********************
  2010 LET z$="": POKE 23609,100
  2020 LET z=30
  2030 DIM n$(z,11): DIM a$(z,5): DIM b$(z,3): DIM c$(z,17,4)
  2040 FOR n=1 TO z
  2050 CLS : INPUT "nombre de la constelacion No.";(n),t$: IF LEN t$>11 THEN  GO SUB 2230: GO TO 2050
  2060 LET n$(n)=t$: PRINT t$
  2070 INPUT "ASC.=?"; LINE t$: LET e=VAL t$: IF e<0 OR e>=25 THEN  GO SUB 2230: GO TO 2070
  2080 LET a$(n)=t$: PRINT "ASC";t$
  2090 INPUT "DEC.=?"; LINE t$: LET e=VAL t$: IF ABS e>=90 THEN  GO SUB 2230: GO TO 2090
  2100 LET b$(n)=t$: PRINT "DEC";t$
  2110 INPUT "co=?"; LINE h$: IF CODE h$-64>17 THEN  GO SUB 2230: GO TO 2110
  2120 LET z$=z$+h$: PRINT "co=";h$
  2130 FOR f=1 TO CODE h$-64
  2140 INPUT (f);"=?"; LINE t$
  2142 LET e1=VAL t$( TO 2)
  2145 LET e2=VAL t$(3 TO )
  2150 IF e1<0 OR e2<0 OR e1>63 OR e2>43 THEN  GO SUB 2230: GO TO 2140
  2160 LET c$(n,f)=t$: PRINT (" " AND f<10);f;"=";t$: BEEP .1 TO ,-10
  2170 NEXT f: BEEP 1,1
  2180 INPUT "Datos correctos?(s/n)"'"o grabacion(p) ";q$
  2190 IF q$="n" THEN  GO TO 2050
  2195 IF q$="p" THEN  GO TO 9990
  2200 NEXT n: PRINT #0; FLASH 1;"Lista completa": GO TO 9990
  2230 PRINT #0; FLASH 1;"Error": BEEP .5 COPY ,30: PAUSE 100: RETURN 
  9980 REM *********************
  9990 SAVE         "cap. 8/1" LINE 1
  9991 REM *********************
  9992 BEEP 1,1
  9995 PRINT #0;"rebobina cinta y da PLAY para   verificar": VERIFY d1"cap. 8/1"
  9996 BEEP 1,1
  31232 DEF FN OAquila     CapricornusLyra       Scorpius   Delphinus  Cygnus     Sagitta    Hercules   SagittariusPerseus    Pegasus    Auriga     Bootes     Taurus     Corona Bor Draco      Orion      Cassiopeia Leo        Canis MajorUrsa Major Corvus     Gemini     Hydra      Virgo      Andromeda  Cancer     Libra      Serpens    Cetus      STR$ [L]19.5021.1219.1217.1020.5420.4820.1217.3018.5003.5523.0505.5515.0504.4516.1518.3005.5501.2011.0007.1011.5012.4007.4009.5512.5201.2508.5015.3216.0001.42CHR$ _+02-18+36-34+13+35+19+28-26+40+16+40+29+15+28+60+01+59+15-24+54-17+22-10+00+38+17-19+07-04NOT  COPY 2315292531283331463648373018402046104808                            512852285025421040083510261427152418232120223521                    412639243927352334173718                                            50395137523854345429542547304429422737193608310624062110201524152515352437243622392240173716                                            343323123117392649334719561041354036                                3623402242204321                                                    36013617412647263833473650415112540935342621232423262023            2233262927203029312228163420402345294615411640104106                3108301331193522362940324432453747404425451946162930                0819103832373218411252066112384038303632                            400430163227354143294726472246234912                                5704540547073819282826343338413541224223                            142919403421372040203923382437265032503351334716591360124607        4526472345204219401937203624                                        36073715411342092620243026323435343738364328522557236227            322938323933432737153916411743154706350452215322542939105527543253372729312337243819401841144622                                        5534523745324427492349165913411226282621231424071420                26123116341246104727392936193320                                    27270419312239341626412712265225562862275710560943103314            342235213412421343104020                                            302933343029382039134318521250075721602150244431                    6040603658375640574154404736412233132816261721101310                17212106261429373127362045215524                                    55094512361829252228461440214225442530363039                        34373527342229134410                                                3921472638353228421331103008                                        38383636333337324126382035173607                                    033103380840103112272022301133034015451254016213                     INPUT Fe COPY  DRAW  COPY  NEW >= COPY <= COPY RNDLEN >RNDSIN HLZJLFQFIDNMMJIJOGNQGMHNFLMHKEGHLQpig▝UUUUjl#mVAL  LLIST COS  READ [U] SAVE ![U] RANDOMIZE  COPY  CLEAR  COPY FN  DIM 2INT  SAVE ▝5CHR$ /x▝V[D]y COPY  DRAW  COPY LN  SAVE ▞5<=VAL$ EXP  RANDOMIZE ▚d OR #                                 T(mapa)