Code Astro ex_Turbo Basic? to QB64 première partie
Publié : dim. 23/avr./2023 9:41
bjr à tous voilà
j'ai un code astro très vieux exTurbo Basic? converti en QB64
si quelqu'un connais bien et a du temps pour convertir ce code
en PureBasic. merci
Cdt
première partie
j'ai un code astro très vieux exTurbo Basic? converti en QB64
si quelqu'un connais bien et a du temps pour convertir ce code
en PureBasic. merci
Cdt
première partie
Code : Tout sélectionner
THEME:
CLOSE: CLEAR
PI = 3.14159265359#: Z = 57.2957795131#: KEY OFF
'
' presentation
'
DIM L(3, 16), L2(3, 16), A$(11), B$(16), A%(1, 100), A1%(100), A2%(100)
CLS: SCREEN 1, 1: COLOR 1, 1: PRINT: PRINT
PRINT TAB(9); "**** THEME ASTRAL ****": PRINT: PRINT
PRINT " INFORMATIONS POUR ETABLIR UN THEME ": PRINT
PRINT: PRINT TAB(17); "LE JOUR": PRINT: PRINT TAB(17); "LE MOIS": PRINT: PRINT TAB(17); "L'ANNEE": PRINT: PRINT TAB(17); "L'HEURE": PRINT: PRINT TAB(17); "LA LATITUDE": PRINT: PRINT TAB(17); "LA LONGITUDE": FOR I = 0 TO 10: NEXT
A$(0) = "BELIER": A$(1) = "TAUREAU": A$(2) = "GEMEAUX": A$(3) = "CANCER": A$(4) = "LION"
A$(5) = "VIERGE": A$(6) = "BALANCE": A$(7) = "SCORPION": A$(8) = "SAGITTAIRE"
A$(9) = "CAPRICORNE": A$(10) = "VERSEAU": A$(11) = "POISSONS"
B$(0) = "SOLEIL": B$(1) = "LUNE": B$(2) = "MERCURE": B$(3) = "VENUS": B$(4) = "MARS"
B$(5) = "JUPITER": B$(6) = "SATURNE": B$(7) = "URANUS": B$(8) = "NEPTUNE"
B$(9) = "PLUTON": B$(10) = "A S C": B$(11) = "M C"
B$(13) = "MAISON XI": B$(14) = "MAISON XII": B$(15) = "MAISON II": B$(16) = "MAISON III"
'
' saisie et recherche par nom
DEBUT:
'################# Bloc suivant mis en commentaire ##################### provoque une erreur ??
'IF INDEX = 1 THEN 350 'mis en commentaire
'OPEN "I", 1, "A%" 'mis en commentaire
'FOR I = 0 TO 1: FOR J = 1 TO 100 'mis en commentaire
'INPUT #1, A$: A%(I, J) = VAL(A$): A$ = "00" 'mis en commentaire
' NEXT 'mis en commentaire
'NEXT 'mis en commentaire
'CLOSE 'mis en commentaire
'###########################################################################
INDEX = 1
350:
SCREEN 0, 1: WIDTH 80: COLOR 11, 1, 9: CLS: GOSUB 24100
364:
LOCATE 4, 8: INPUT NOM$: IF NOM$ = "" THEN 364
365:
LOCATE 4, 50: INPUT PRE$: IF PRE$ = "" THEN 365
I = ASC(NOM$): J = ASC(PRE$)
A = 0: OPEN "R", 1, "NOM", 82: FIELD #1, 15 AS N$, 15 AS PR$, 2 AS J$, 2 AS M$, 4 AS AA$, 8 AS LU$, 7 AS LX$, 8 AS PF$, 7 AS U$, 7 AS U4$, 7 AS HH$
390:
A = A + 1: IF A > 100 THEN CLOSE: GOTO 2330
IF I = A%(0, A) AND J = A%(1, A) THEN 410 ELSE GOTO 390
410:
GET #1, A: IF NOM$ = LEFT$(N$, LEN(NOM$)) AND PRE$ = LEFT$(PR$, LEN(PRE$)) THEN 420 ELSE GOTO 390
420:
COLOR 14: LOCATE 4, 7: PRINT ": "; N$: LOCATE 4, 49: PRINT ": "; PR$: LOCATE 13, 25: PRINT "CE NOM EST IL CELUI RECHERCHE";: Z$ = INPUT$(1): IF Z$ = "O" THEN NOM$ = N$: PRE$ = PR$ ELSE GOTO 390
LOCATE 13, 25: PRINT " "
LOCATE 6, 10: PRINT J$: JJ = VAL(J$): LOCATE 6, 36: PRINT M$: MM = VAL(M$): LOCATE 6, 63: PRINT AA$: LOCATE 8, 11: PRINT HH$: AA = VAL(AA$)
LOCATE 8, 39: PRINT LU$: LU = VAL(LU$): U = VAL(U$): U4 = VAL(U4$): HH = VAL(HH$): LOCATE 8, 66: PRINT LX$: LX = VAL(LX$): PF = VAL(PF$): CLOSE
H = ((HH - INT(HH)) / .6 + INT(HH)) / 24: J = JJ + H: A1 = AA: M = MM:
T = (A1 * 365) + (31 * (M - 1)) + J: IF M <= 2 THEN A1 = A1 - 1
T = T + INT(A1 / 4) - INT(A1 / 100) + INT(A1 / 400): IF M > 2 THEN T = T - INT((M - 1) * .4 + 2.7)
TTT = T - 694325!
O = 4.1867 - 9.2422E-04 * TTT: NELU = 360 * ((O / PI / 2) - INT(O / PI / 2))
LUNO = 3.40339 + 2 * PI * TTT / 3231.5: LUNO = 360 * ((LUNO / PI / 2) - INT(LUNO / PI / 2))
OPEN "R", 1, "L0$", 150: FIELD #1, 150 AS L0$: GET #1, A: L4$ = L0$: CLOSE: L0$ = ""
OPEN "R", 1, "L1$", 150: FIELD #1, 150 AS L0$: GET #1, A: L1$ = L0$: CLOSE: L0$ = ""
OPEN "R", 1, "L2$", 150: FIELD #1, 150 AS L0$: GET #1, A: L2$ = L0$: CLOSE: L0$ = ""
OPEN "R", 1, "L3$", 150: FIELD #1, 150 AS L0$: GET #1, A: L3$ = L0$: CLOSE: L0$ = ""
A = 1: C = 1: E = 1: G = 1: FOR I = 0 TO 16: B = INSTR(A, L4$, " "):
D = INSTR(C, L1$, " "): F = INSTR(E, L2$, " "): H = INSTR(G, L3$, " ")
IF A > B THEN B = 150
IF C > D THEN D = 150
IF E > F THEN F = 150
IF G > H THEN H = 150
A$ = MID$(L4$, A, B - A): L(0, I) = VAL(A$): A$ = MID$(L1$, C, D - C): L(1, I) = VAL(A$):
A$ = MID$(L2$, E, F - E): L(2, I) = VAL(A$)
A$ = MID$(L3$, G, H - G): L(3, I) = VAL(A$): SWAP A, B: SWAP C, D:
SWAP E, F: SWAP G, H: A = A + 1: C = C + 1: E = E + 1: G = G + 1: NEXT
GOTO 1500
MEMORISATION:
' memorisation
'
GOSUB 24000: LOCATE 12, 32: PRINT "1 ---- SAUVEGARDE": LOCATE 14, 32: PRINT "2 ---- ANNULATION": LOCATE 16, 32: PRINT "LISTE DES CLIENTS"
LOCATE 20, 32: PRINT "ENTREZ VOTRE CHOIX": Z$ = INPUT$(1)
A = VAL(Z$): ON A GOTO SAUVE, ANNUL, CLIENT
CLIENT:
GOSUB 24000: GOTO 1500
SAUVE:
GOSUB 24000
LOCATE 13, 22: PRINT "VOULEZ VOUS SAUVEGARDER CE NOM ? O/N": Z$ = INPUT$(1): IF Z$ <> "O" THEN GOSUB 24000: GOTO 1500
A = 0: OPEN "R", 1, "NOM", 82: FIELD #1, 15 AS N$, 15 AS PR$, 2 AS J$, 2 AS M$, 4 AS AA$, 8 AS LU$, 7 AS LX$, 8 AS PF$, 7 AS U$, 7 AS U4$, 7 AS HH$
I = ASC(NOM$): J = ASC(PRE$): LSET U$ = RIGHT$(STR$(U), LEN(STR$(U)) - 1): LSET HH$ = RIGHT$(STR$(HH), LEN(STR$(HH)) - 1)
LSET N$ = NOM$: LSET PR$ = PRE$: JJ$ = STR$(JJ): JJ$ = RIGHT$(JJ$, LEN(JJ$) - 1): LSET J$ = JJ$: MM$ = STR$(MM): MM$ = RIGHT$(MM$, LEN(MM$) - 1): LSET M$ = MM$: A1$ = STR$(AA): A1$ = RIGHT$(A1$, LEN(A1$) - 1): LSET AA$ = A1$: LSET LU$ = STR$(LU): LSET LX$ = STR$(LX)
A1$ = STR$(PF): A1$ = RIGHT$(A1$, LEN(A1$) - 1): LSET PF$ = A1$: LSET U4$ = RIGHT$(STR$(U4), LEN(STR$(U4)) - 1)
800:
A = A + 1: IF A = 100 THEN LOCATE 15, 15: PRINT "LE FICHIER EST PLEIN LA SAUVEGARDE EST LA DERNIERE"
IF A%(0, A) <> 0 THEN 800 ELSE PUT #1, A
OPEN "O", 2, "A%": A%(0, A) = I: A%(1, A) = J: FOR I = 0 TO 1: FOR J = 1 TO 100: A$ = STR$(A%(I, J)): PRINT #2, A$: A$ = "": NEXT: NEXT: CLOSE
OPEN "R", 1, "L0$", 150: OPEN "R", 3, "L1$", 150: OPEN "R", 2, "L2$", 150: FIELD #1, 150 AS L0$: FIELD #3, 150 AS L1$: FIELD #2, 150 AS L2$
FOR I = 0 TO 2: Z$ = "": FOR J = 0 TO 16: A$ = STR$(L(I, J)): A$ = RIGHT$(A$, LEN(A$) - 1): Z$ = Z$ + A$ + " ": NEXT: IF I = 0 THEN LSET L0$ = Z$
IF I = 1 THEN LSET L1$ = Z$
IF I = 2 THEN LSET L2$ = Z$
NEXT
PUT #1, A: PUT #2, A: PUT #3, A: CLOSE
OPEN "R", 1, "L3$", 150: FIELD #1, 150 AS L3$
Z$ = "": FOR J = 0 TO 16: A$ = STR$(L(3, J)): A$ = RIGHT$(A$, LEN(A$) - 1): Z$ = Z$ + A$ + " ": NEXT: LSET L3$ = Z$: PUT #1, A: CLOSE: GOSUB 24000: GOTO 1500
ANNUL:
' annulation
'
GOSUB 24000
LOCATE 15, 22: PRINT "VOULEZ VOUS ANNULER CE THEME ? O/N": Z$ = INPUT$(1): IF Z$ = "O" THEN 1050 ELSE GOSUB 24000: GOTO 1500
1050:
I = ASC(NOM$): J = ASC(PRE$)
A = 0: OPEN "R", 1, "NOM", 82: FIELD #1, 15 AS N$, 15 AS PR$, 2 AS J$, 2 AS M$, 4 AS AA$, 8 AS LU$, 7 AS LX$, 8 AS PF$, 7 AS U$, 7 AS U4$, 7 AS HH$
1070:
A = A + 1: IF A > 100 THEN LOCATE 22, 22: PRINT "CE NOM N'EXISTE PAS": GOSUB 25000: CLOSE: GOSUB 24000: GOTO 1500
IF I = A%(0, A) AND J = A%(1, A) THEN GET #1, A: GOTO 1090 ELSE GOTO 1070
1090:
IF NOM$ = LEFT$(N$, LEN(NOM$)) AND PRE$ = LEFT$(PR$, LEN(PRE$)) THEN A%(0, A) = 0: A%(1, A) = 0: CLOSE ELSE GOTO 1070
OPEN "O", 1, "A%": FOR I = 0 TO 1: FOR J = 1 TO 100: A$ = STR$(A%(I, J)): A$ = RIGHT$(A$, LEN(A$) - 1): PRINT #1, A$: A$ = "": NEXT: NEXT: CLOSE #1
1110 GOSUB 24000: GOTO 1500
1500: ' menu
'
COLOR 14: LOCATE 11, 5: PRINT "1---- ETABLIR UN AUTRE THEME"
LOCATE 13, 5: PRINT "2---- POSITION DES PLANETES": LOCATE 15, 5: PRINT "3---- ASPECTS": LOCATE 17, 5: PRINT "4---- CARTE"
LOCATE 19, 5: PRINT "5---- TRANSITS": LOCATE 11, 45: PRINT "6---- POLES"
LOCATE 13, 45: PRINT "7---- PROGRESSIONS": LOCATE 15, 45: PRINT "8---- SAUVEGARDE THEME"
LOCATE 17, 45: PRINT "9---- ANALYSE CARTE": LOCATE 19, 44: PRINT "10---- ARRET": LOCATE 21, 30: INPUT "ENTREZ VOTRE CHOIX "; Z$: PP = VAL(Z$)
ON PP GOTO 2290, 2060, 2000, 2370, 2530, 2430, 2480, MEMORISATION, 2600, 2700
GOTO 1500
2000:
' aspects
GOSUB ASP: GOSUB 24000: GOTO 1500
TASP:
LOCATE 9, 1: PRINT "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹"
LOCATE 10, 1: PRINT "º ³ ³ ³ ³ º"
LOCATE 11, 1: PRINT "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹"
FOR I = 12 TO 22: LOCATE I, 1: PRINT "º ³ ³ ³ ³ º": NEXT
LOCATE 23, 1: PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ";
RETURN
ASP:
GOSUB TASP: LOCATE 10, 3: PRINT "CONJONCTION"
COL = 0: LIG = 12
'EN CONJONCTION
BS = 8: BI = 0: GOSUB ASP1
'EN OPPOSITION"
IF LIG <> 12 THEN GOSUB ASP2
LOCATE 10, COL * 16 + 1: PRINT " OPPOSITION ": EA = 8: AP = 180: GOSUB ASP3
'TRIGONE"
IF LIG <> 12 THEN GOSUB ASP2
LOCATE 10, COL * 16 + 1: PRINT " TRIGONE ": EA = 6: AP = 120: GOSUB ASP3
'EN CARRE
IF LIG <> 12 THEN GOSUB ASP2
LOCATE 10, COL * 16 + 1: PRINT " CARRE ": EA = 6: AP = 90: GOSUB ASP3
'EN SEXTIL"
IF LIG <> 12 THEN GOSUB ASP2
LOCATE 10, COL * 16 + 2: PRINT " SEXTILE ": EA = 5: AP = 60: GOSUB ASP3
GOSUB 25000: RETURN
ASP3:
BS = AP + EA: BI = ABS(AP - EA)
ASP1:
FOR O = 0 TO 10: FOR K = O + 1 TO 11: DI = Z * ABS(L(0, O) - L(0, K)): IF DI > BS THEN DI = 360 - DI
IF DI > BS OR DI < BI THEN GOTO ASP4
A$ = B$(O) + "-" + B$(K): IF COL = 0 THEN I = 2 ELSE I = 1
LOCATE LIG, COL * 16 + I: PRINT A$
LIG = LIG + 1: IF LIG > 22 THEN LIG = 12: COL = COL + 1: IF COL = 6 THEN COL = 0: GOSUB 24000: GOSUB TASP
ASP4:
NEXT: NEXT: RETURN
ASP2:
COL = COL + 1: LIG = 12: IF COL = 5 THEN COL = 0: GOSUB 24000: GOSUB TASP
RETURN
' position
2060:
GOSUB POSITION: GOTO 1500
POSITION: ' position des planetes
LOCATE 9, 1: PRINT "ÌÍÍÍÍÍÍÍÍÍÑÍÑÍÍÍÍÍÍÍÑÍÍÍÍÍÊÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÊÍÍÑÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍ͹º PLANETE ³P³ PAS ³ POSITION ³ SIGNE º PLANETE ³ POSITION ³ SIGNE º";
PRINT "ÌÍÍÍÍÍÍÍÍÍØÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍ͹";
FOR I = 1 TO 11: PRINT "º ³ ³ ³ ³ º ³ ³ º";: NEXT
PRINT "ÈÍÍÍÍÍÍÍÍÍÏÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍͼ";
FOR P = 0 TO 16
IF P = 10 THEN LOCATE 12, 46: PRINT B$(P); ELSE IF P < 10 THEN LOCATE 12 + P, 2: PRINT B$(P); ELSE LOCATE (P - 11) + 13, 46: PRINT B$(P);
G = INT((L(0, P) * Z) / 30): L = (L(0, P) * Z) - G * 30: L3 = INT(L): L4 = INT((L - INT(L)) * 60)
L3$ = RIGHT$(STR$(L3), LEN(STR$(L3)) - 1): IF LEN(L3$) = 1 THEN L3$ = "0" + L3$
L4$ = RIGHT$(STR$(L4), LEN(STR$(L4)) - 1): IF LEN(L4$) = 1 THEN L4$ = "0" + L4$
L5 = INT(60 * (L * 100 - INT(L * 100))): L5$ = RIGHT$(STR$(L5), LEN(STR$(L5)) - 1): IF LEN(L5$) = 1 THEN L5$ = "0" + L5$
IF P > 9 THEN 2200
XX = (L(1, P) - L(0, P)) * Z: IF ABS(XX) > 20 AND (L(0, P) * Z) < 20 THEN XX = XX - 360
IF ABS(XX) > 20 AND (L(0, P) * Z) > 340 THEN XX = XX + 360
IF XX < 0 THEN LOCATE 12 + P, 12: PRINT "R";: XX = ABS(XX)
LOCATE 12 + P, 14: PRINT USING "###.##"; ABS(INT(XX) + INT((XX - INT(XX)) * 60) / 100)
2200:
IF P < 10 THEN LOCATE 12 + P, 23: PRINT USING "&ø&'&"; L3$; L4$; L5$
IF P < 10 THEN LOCATE 12 + P, 34: PRINT A$(G): GOTO 2210
IF P <> 12 AND P > 9 THEN LOCATE (P - 10) + 12, 58: PRINT USING "&ø&'&"; L3$; L4$; L5$: LOCATE (P - 10) + 12, 70: PRINT A$(G) ELSE GOTO 2210
2210 NEXT
LOCATE 19, 46: PRINT "P.FORTUNE";: XX = PF * Z: G = INT(XX / 30): XX = XX - G * 30: L3 = INT(XX): L4 = INT((XX - INT(XX)) * 60)
L3$ = RIGHT$(STR$(L3), LEN(STR$(L3)) - 1): IF LEN(L3$) = 1 THEN L3$ = "0" + L3$
L4$ = RIGHT$(STR$(L4), LEN(STR$(L4)) - 1): IF LEN(L4$) = 1 THEN L4$ = "0" + L4$
L5 = INT(60 * (XX * 100 - INT(XX * 100))): L5$ = RIGHT$(STR$(L5), LEN(STR$(L5)) - 1)
IF LEN(L5$) = 1 THEN L5$ = "0" + L5$
LOCATE 19, 58: PRINT USING "&ø&'&"; L3$; L4$; L5$: LOCATE 19, 70: PRINT A$(G)
LOCATE 20, 46: PRINT "NOEUD.L";: XX = NELU: G = INT(XX / 30): XX = XX - G * 30: L3 = INT(XX): L4 = INT((XX - INT(XX)) * 60)
L3$ = RIGHT$(STR$(L3), LEN(STR$(L3)) - 1): IF LEN(L3$) = 1 THEN L3$ = "0" + L3$
L4$ = RIGHT$(STR$(L4), LEN(STR$(L4)) - 1): IF LEN(L4$) = 1 THEN L4$ = "0" + L4$
L5 = INT(60 * (XX * 100 - INT(XX * 100))): L5$ = RIGHT$(STR$(L5), LEN(STR$(L5)) - 1): IF LEN(L5$) = 1 THEN L5$ = "0" + L5$
LOCATE 20, 58: PRINT USING "&ø&'&"; L3$; L4$; L5$: LOCATE 20, 70: PRINT A$(G)
LOCATE 21, 46: PRINT "LUNE NOIRE";: XX = LUNO: G = INT(XX / 30): XX = XX - G * 30: L3 = INT(XX): L4 = INT((XX - INT(XX)) * 60)
L3$ = RIGHT$(STR$(L3), LEN(STR$(L3)) - 1): IF LEN(L3$) = 1 THEN L3$ = "0" + L3$
L4$ = RIGHT$(STR$(L4), LEN(STR$(L4)) - 1): IF LEN(L4$) = 1 THEN L4$ = "0" + L4$
L5 = INT(60 * (XX * 100 - INT(XX * 100))): L5$ = RIGHT$(STR$(L5), LEN(STR$(L5)) - 1): IF LEN(L5$) = 1 THEN L5$ = "0" + L5$
LOCATE 21, 58: PRINT USING "&ø&'&"; L3$; L4$; L5$: LOCATE 21, 70: PRINT A$(G)
LOCATE 24, 1, 0: GOSUB 25000: GOSUB 24000: RETURN
2290:
' nouveau theme
'
CLS: FOR I = 0 TO 3: FOR J = 0 TO 16: L(I, J) = 0: NEXT: NEXT: NOM$ = "": PRE$ = "": GOTO DEBUT
2330:
'
' calcul du theme puis calcul pour j+1
'
AB = 0: GOSUB CALCUL1: AB = 1: IF JJ = 31 THEN J = 1 ELSE J = JJ + 1: M = MM
IF JJ = 31 THEN M = MM + 1
IF MM = 12 AND JJ = 31 THEN M = 1: A = AA + 1 ELSE A = AA
LA = LU: LO = LX: H = HH: P = 0: IF M <= 2 THEN A = A - 1: M = M + 12
GOSUB CALCUL2: GOSUB POSITION: GOSUB 24000: GOTO 1500
PRECAL:
' premiere partie du calcul
'
N = M: FOR J = 0 TO 10: N = M + E * SIN(N): NEXT
R = A - A * E * COS(N): L = W + 2 * ATN(SQR((1 + E) / (1 - E)) * TAN(N / 2)): RETURN
' seconde partie des calcul
SECCAL:
W = L - D: L = ATN(COS(I) * SIN(W) / COS(W)) + D: IF COS(W) < 0 THEN L = L + PI
E = SIN(W) * SIN(I): E = ATN(E / SQR(-E * E + 1))
I = R * COS(E) * COS(L) + X: J = R * COS(E) * SIN(L) + Y: L = ATN(J / I): IF I < 0 THEN L = L + PI
30170 '
TABUSING:
L = (L * Z) / 360: L = 360 * (L - INT(L)): IF AB > 3 THEN RETURN
L(AB, P) = L / Z: P = P + 1
RETURN
CALCUL1:
AB = 0
'
' entree des coordonnees
'
COLOR 14
JOUR:
LOCATE 6, 10: INPUT J: JJ = J: IF J < 1 OR J > 31 THEN GOTO JOUR ELSE LOCATE 6, 10: PRINT JJ
MOIS:
LOCATE 6, 36: INPUT M: MM = M: IF M < 1 OR M > 12 THEN GOTO MOIS ELSE LOCATE 6, 36: PRINT USING "##"; MM
ANNEE:
LOCATE 6, 63: INPUT A: AA = A: LOCATE 6, 63: PRINT USING "####"; AA
HEURES:
LOCATE 8, 11: INPUT H: HH = H: IF H < 0 OR H > 24 THEN GOTO HEURES ELSE LOCATE 8, 11: PRINT USING "##.##"; HH
LATITUDE:
LOCATE 8, 39: INPUT LA: LU = LA: IF ABS(LA) > 90 THEN GOTO LATITUDE ELSE LOCATE 8, 39: PRINT USING "###.##"; LU
LONGITUDE:
LOCATE 8, 66: INPUT LO: LX = LO: IF ABS(LO) > 360 THEN GOTO LONGITUDE ELSE LOCATE 8, 66: PRINT USING "####.##"; LX
P = 0: H = ((H - INT(H)) / .6 + INT(H)) / 24: LO = LO / Z: LA = LA / Z: J = J + H
IF M <= 2 THEN A = A - 1: M = M + 12
COLOR 14
CALCUL2:
' calcul de T
'
T = INT(A * 365.25) + INT(30.6001 * (M + 1)) + J - INT(A / 100) + INT(INT(A / 100) / 4)
T = (T - 694000! - 23.5) / 36525!
IF AB > 0 THEN GOTO SOLEIL ELSE A1 = AA: M = MM
NN = (A1 * 365) + (31 * (M - 1)) + J: IF M <= 2 THEN A1 = A1 - 1
NN = NN + INT(A1 / 4) - INT(A1 / 100) + INT(A1 / 400): IF M > 2 THEN NN = NN - INT((M - 1) * .4 + 2.7)
TTT = NN - 694325!
O = 4.1867 - 9.2422E-04 * TTT: NELU = 360 * ((O / PI / 2) - INT(O / PI / 2))
LUNO = 3.40339 + 2 * PI * TTT / 3231.5: LUNO = 360 * ((LUNO / PI / 2) - INT(LUNO / PI / 2))
SOLEIL:
' soleil
'
A = 1.00000101778#: E = .016751 - .000042 * T: M = .000004 + 6.25658 + T * 628.301946#
W = T * .030005 - 1.37496
U = .40932 - T * .000227: B = COS(U): C = SIN(U): GOSUB PRECAL: X = R * COS(L): Y = R * SIN(L)
GOSUB TABUSING: IF AB = 4 THEN RETURN
LUNE:
' lune
'
D = 6.12152 + T * 7771 + T * .377194 + .000004: N = 5.168 + T * 8328 + T * .691104
F = .196365 + T * 8433 + T * .46629
L = 4.71996 + .000007 + T * 8399 + T * .709144 + .109759 * SIN(N) + .022236 * SIN(D + D - N) + .01149 * SIN(D + D) + .003728 * SIN(N + N) - .003239 * SIN(M) - .001996 * SIN(F + F)
L = L + .001026 * SIN(D + D - N - N) + 9.990002E-04 * SIN(D + D - M - N) + .000931 * SIN(D + D + N) + .000801 * SIN(D + D - M) + .000716 * SIN(N - M) - .000606 * SIN(D) - .000532 * SIN(M + N) + .000267 * SIN(D + D - F - F) - .000219 * SIN(F + F + N) - .000192 * SIN(F + F - N)
GOSUB TABUSING: IF AB = 5 THEN RETURN
MERCURE:
' mercure
'
A = .38709830982#: E = .205614 + T * .000002: I = .122223 + T * .000032: M = 1.78511 + .000002 + T * (2608 + .787533)
W = 1.3247 + T * .027148: D = .822852 + T * .020686: GOSUB PRECAL
GOSUB SECCAL: IF AB = 6 THEN RETURN
VENUS:
' venus
'
A = .72332981996#: E = .006821 - T * .000048: I = .05923 + T * .000018
M = 3.71062 + .000006 + T * (1021 + .328349)
W = 2.27178 + .000007 + T * .024575: D = 1.3226 + T * .015705: GOSUB PRECAL: GOSUB SECCAL
IF AB = 7 THEN RETURN
MARS:
' mars
'
A = 1.52367934191#: E = .093313 + T * .000092: I = .032294 - T * .000012: M = 5.57666 + .000001 + T * (334 + .053484)
W = .032127 * T - .449977: D = .851484 + T * .013456: GOSUB PRECAL: GOSUB SECCAL: IF AB = 8 THEN RETURN
JUPITER:
' jupiter
'
K = 2.34976 + T * .711349: A = 5.20260319132# + .000001 - .000026 * COS(K): E = .048335 + T * .000164 + .000361 * SIN(K) + .000129 * COS(K)
I = .020842 - T * .000099: M = 3.93272 + .000001 + T * (52 + .965368) + .007442 * COS(K) + .003176 * SIN(K)
W = .222022 + T * .028099 - .007386 * COS(K) + .002607 * SIN(K): D = 1.73561 + .000005 + T * .017637
GOSUB PRECAL: GOSUB SECCAL: IF AB = 9 THEN RETURN
SATURNE:
' saturne
'
A = 9.55490959574# + .000047 + .000057 * SIN(K) + .000293 * COS(K): E = .055892 - T * .000346 - .000793 * SIN(K) + .001338 * COS(K)
I = .043503 - T * .000068: M = 3.0624 + .000063 + T * (21 + .320095) - .0383 * SIN(K) - .014478 * COS(K)
W = 1.5899 + .000063 + T * .034181 + .024079 * SIN(K) + .014295 * COS(K): D = 1.96856 + T * .01524 + .000004
GOSUB PRECAL
GOSUB SECCAL: IF AB = 10 THEN RETURN
URANUS:
' uranus
'
K = 4.95802 + .000008 + T * .148533: A = 19.21844606178# + .00004 - .003824 * COS(K): E = .046344 - T * .000027 - .000335 * SIN(K) + .0021 * COS(K)
I = .013482 + T * .000011: M = 1.26796 + T * (7 + .476626) - .030225 * SIN(K) - .005875 * COS(K)
W = 2.99409 + T * .025908 + .045305 * SIN(K) + .007306 * COS(K)
D = 1.2824 + .000018 + T * .008703: GOSUB PRECAL: GOSUB SECCAL: IF AB = 11 THEN RETURN
NEPTUNE:
' neptune
'
A = 30.11038686942# + .00057 + .01058 * COS(K): E = .008997 + T * .000006 + .00044 * SIN(K) + .000426 * COS(K)
I = .031054 - T * .000167: M = .658524 + T * 3.81287 - .056901 * SIN(K) + .047519 * COS(K)
W = .815546 + T * .024863 + .046558 * SIN(K) - .048498 * COS(K): D = 2.28082 + T * .01918
GOSUB PRECAL: GOSUB SECCAL: IF AB = 12 THEN RETURN
PLUTON:
' pluton
'
A = 39.438712# + .00071: E = .250236: I = .299681: M = 4.0006 + .000035 + T * (2 + .536813): W = 3.90971: D = 1.91532
GOSUB PRECAL: GOSUB SECCAL: IF AB = 13 THEN RETURN
MC:
' milieu du ciel
'
T1 = T - H / 36525!: TS = .27692 + (100 + .002136) * T1 + .000001 * T1 * T1: TS = (TS - INT(TS)) * 2 * PI
TS = TS + (6.30038 + .000008) * H - LO: IF TS > 2 * PI THEN TS = TS - 2 * PI
L(AB, 11) = ATN(SIN(TS) / (COS(TS) * B)): IF (B * COS(TS)) < 0 THEN L(AB, 11) = L(AB, 11) + PI
IF L(AB, 11) < 0 THEN L(AB, 11) = L(AB, 11) + 2 * PI
ASCENDANT:
' ascendant
'
A = SIN(U) * TAN(LA) + COS(U) * SIN(TS): L = ATN(-COS(TS) / A) + PI: IF A < 0 THEN L = L + PI
GOSUB TABUSING: IF AB = 0 THEN U4 = TS
IF AB = 0 AND LU <= 65 THEN GOSUB MAISON
31210 PF = L(0, 1) - L(0, 0): IF PF < 0 THEN PF = PF + 2 * PI
31220 PF = PF + L(0, 10): IF PF > 2 * PI THEN PF = PF - 2 * PI: RETURN ELSE RETURN
MAISON:
' calcul des maisons
'
IF ABS(LU) = 48.84 THEN T3 = 21.65: T4 = 38: T2 = 48.84: GOTO MAIS
IF ABS(LU) = 0 THEN T2 = 0: T3 = 0: T4 = 0: GOTO MAIS
IF ABS(LU) < 44 THEN T5 = INT(ABS(LU) + .5): GOTO MAIS1
IF ABS((LU - INT(LU))) < .25 THEN T5 = INT(ABS(LU)): GOTO MAIS1
IF ABS((LU - INT(LU))) >= .25 AND ABS((LU - INT(LU))) <= .75 THEN T5 = ABS(INT(LU)) + .5 ELSE T5 = ABS(INT(LU)) + 1
MAIS1:
OPEN "R", 2, "DATA", 6: FIELD #2, 3 AS C$, 3 AS D$: GET #2, T5 * 2: A$ = C$: B$ = D$: T3 = VAL(A$): T4 = VAL(B$): CLOSE: T2 = ABS(LU)
MAIS:
T1 = T3 / Z: T6 = TS - PI / 3: J = 13: IF LU >= 0 THEN GOSUB MAI1 ELSE GOSUB MAI2
T1 = T4 / Z: T6 = TS - PI / 6: J = 14: IF LU >= 0 THEN GOSUB MAI1 ELSE GOSUB MAI2
T1 = T4 / Z: T6 = TS + PI / 6: J = 15: IF LU >= 0 THEN GOSUB MAI1 ELSE GOSUB MAI2
T1 = T3 / Z: T6 = TS + PI / 3: J = 16: IF LU >= 0 THEN GOSUB MAI1 ELSE GOSUB MAI2
RETURN
MAI1:
A = SIN(U) * TAN(T1) + COS(U) * SIN(T6): L = ATN(-COS(T6) / A) + PI: IF A < 0 THEN L = L + PI
IF L > 2 * PI THEN L(AB, J) = L - 2 * PI ELSE L(AB, J) = L
RETURN
MAI2:
A = SIN(U) * TAN(-T1) + COS(U) * SIN(T6): L = ATN(-COS(T6) / A) + PI: IF A < 0 THEN L = L + PI
IF L > 2 * PI THEN L(AB, J) = L - 2 * PI ELSE L(AB, J) = L
RETURN
2350 GOTO 1500
2360 '
2370 ' graphisme
2380 '
2390
2400 COLOR 14, 9: CLS: GOSUB GRAPH: GOSUB RETOUR
2410 GOTO 1500
GRAPH:
' graphisme
'
SCREEN 2:
CIRCLE (320, 100), 130, 3: CIRCLE (320, 100), 92, 3
FOR R = 0 TO 330 STEP 30
A = R * PI / 180: I = 65: J = 46: GOSUB G720: NEXT
P = 1: FOR R = 15 TO 345 STEP 30: A = R * PI / 180:: E = INT(R / 30) * 4: PRESET (1, 1)
X = 315 + 2 * 55 * COS(A): Y = 95 - .85 * 55 * SIN(A)
ON P GOSUB G090, G110, G120, G130, G140, G150, G160, G170, G180, G190, G200, G220
P = P + 1: NEXT: GOTO G230
G090:
PRESET (1, 1): GET (1, 1)-(25, 25), A2%()
CIRCLE (1, 16), 10, 3, 0, 1.57: CIRCLE (19, 16), 10, 3, 1.57, 3.145: PSET (10, 17)
GET (0, 0)-(20, 20), A1%(): PUT (X - 5, Y - 10), A1%(), OR: PUT (0, 0), A2%(), AND: RETURN
G110:
CIRCLE (10, 10), 8, 3: LINE (10, 6)-(15, 4): LINE (10, 6)-(5, 4): GET (0, 0)-(20, 20), A1%()
PUT (X - 5, Y - 5), A1%(), OR: PUT (0, 0), A2%(), AND: RETURN
G120:
CIRCLE (10, 11), 9, 3, .6919, 2.3902: CIRCLE (10, 1), 9, 3, 3.9627, 5.4723
GET (0, 0)-(20, 20), A1%(): PUT (X - 4, Y), A1%(), OR: PUT (0, 0), A2%(), AND: RETURN
G130:
CIRCLE (4, 14), 4, 3: CIRCLE (16, 17), 4, 3: LINE (4, 12)-(19, 12): LINE (17, 19)-(2, 19)
GET (0, 0)-(20, 20), A1%(): PUT (X - 5, Y - 11), A1%(), OR: PUT (0, 0), A2%(), AND: RETURN
G140:
CIRCLE (2, 14), 2, 3: CIRCLE (18, 14), 2, 3, 3.145: CIRCLE (10, 10), 6, 3, 0, 3.145
LINE (4, 14)-(4, 10): LINE (16, 14)-(16, 10): GET (0, 0)-(20, 20), A1%()
PUT (X - 5, Y - 8), A1%(), OR: PUT (0, 0), A2%(), AND: RETURN
G150:
CIRCLE (4, 7), 3, 3, 0, 3.141: CIRCLE (11, 7), 3, 3, 0, 3.141: CIRCLE (17, 12), 3, 3, 3.145
LINE (1, 7)-(1, 14): LINE (8, 6)-(8, 14): LINE (14, 6)-(14, 12): LINE (19, 10)-(14, 16)
GET (0, 0)-(20, 20), A1%(): PUT (X - 5, Y - 5), A1%(), OR: PUT (0, 0), A2%(), AND: RETURN
G160:
LINE (1, 9)-(19, 9): CIRCLE (10, 11), 3, 3, 3.145: LINE (1, 11)-(7, 11)
LINE (13, 11)-(19, 11): GET (0, 0)-(20, 20), A1%()
PUT (X - 5, Y - 5), A1%(), OR: PUT (0, 0), A2%(), AND: RETURN
G170:
CIRCLE (4, 7), 3, 3, 0, 3.145: CIRCLE (11, 7), 3, 3, 0, 3.145: CIRCLE (17, 12), 3, 3, 3.145
LINE (1, 7)-(1, 14): LINE (8, 6)-(8, 14): LINE (14, 6)-(14, 12)
GET (0, 0)-(20, 20), A1%(): PUT (X - 5, Y - 5), A1%(), OR: PUT (0, 0), A2%(), AND: RETURN
G180:
CIRCLE (10, 10), 2, 3: LINE (0, 10)-(20, 10): PSET (18, 9): PSET (18, 11)
GET (0, 0)-(20, 20), A1%(): PUT (X - 5, Y - 5), A1%(), OR: PUT (0, 0), A2%(), AND: RETURN
G190:
LINE (1, 8)-(1, 14): CIRCLE (11, 5), 10, 3, 3.5, 5: CIRCLE (14, 7), 4, 3
LINE (10, 10)-(15, 14): GET (0, 0)-(20, 20), A1%()
PUT (X - 5, Y - 5), A1%(), OR: PUT (0, 0), A2%(), AND: RETURN
G200:
LINE (0, 9)-(4, 5): LINE (4, 5)-(8, 9): LINE (8, 9)-(12, 5): LINE (12, 5)-(16, 9)
LINE (16, 9)-(20, 5): LINE (0, 12)-(4, 8): LINE (4, 8)-(8, 12)
LINE (8, 12)-(12, 8): LINE (12, 8)-(16, 12)
LINE (16, 12)-(20, 8): GET (0, 0)-(20, 20), A1%(): PUT (X - 4, Y - 4), A1%(), OR
PUT (0, 0), A2%(), AND: RETURN
G220:
CIRCLE (10, 14), 9, 3, .6919, 2.3902: CIRCLE (10, 5), 9, 3, 3.9627, 5.4723
CIRCLE (16, 7), 2, 3: CIRCLE (16, 12), 2, 3: GET (0, 0)-(20, 20), A1%()
PUT (X - 4, Y - 5), A1%(), OR: PUT (0, 0), A2%(), AND: RETURN
G230:
' MAISON
I = 65: J = 80
A = L(0, 13): GOSUB G680: LOCATE 1, 1, 0: PRINT "XI": PRINT: PRINT: PRINT: PRINT: GET (0, 0)-(20, 20), A1%(): PUT (XX - 5, YY - 5), A1%(), OR: PUT (0, 0), A2%(), AND
A = L(0, 13) + PI: GOSUB G680: LOCATE 1, 1, 0: PRINT "V": PRINT: PRINT: PRINT: PRINT: GET (0, 0)-(20, 20), A1%(): PUT (XX - 5, YY - 5), A1%(), OR: PUT (0, 0), A2%(), AND
A = L(0, 14): GOSUB G680: LOCATE 1, 1, 0: PRINT "XII": PRINT: PRINT: PRINT: PRINT: GET (0, 0)-(25, 10), A1%(): PUT (XX - 5, YY - 5), A1%(), OR: PUT (0, 0), A2%(), AND
A = L(0, 14) + PI: GOSUB G680: LOCATE 1, 1: PRINT "VI": PRINT: PRINT: PRINT: PRINT: GET (0, 0)-(20, 20), A1%(): PUT (XX - 5, YY - 5), A1%(), OR: PUT (0, 0), A2%(), AND
A = L(0, 15): GOSUB G680: LOCATE 1, 1, 0: PRINT "II": PRINT: PRINT: PRINT: PRINT: GET (0, 0)-(20, 20), A1%(): PUT (XX - 5, YY - 5), A1%(), OR: PUT (0, 0), A2%(), AND: GET (0, 0)-(32, 8), A2%()
A = L(0, 15) + PI: GOSUB G680: LOCATE 1, 1, 0: PRINT "VIII": PRINT: PRINT: PRINT: PRINT: GET (0, 0)-(32, 8), A1%(): PUT (XX - 5, YY - 5), A1%(), OR: PUT (0, 0), A2%(), AND: GET (0, 0)-(20, 20), A2%()
A = L(0, 16): GOSUB G680: LOCATE 1, 1, 0: PRINT "III": PRINT: PRINT: PRINT: PRINT: GET (0, 0)-(25, 10), A1%(): PUT (XX - 5, YY - 5), A1%(), OR: PUT (0, 0), A2%(), AND
A = L(0, 16) + PI: GOSUB G680: LOCATE 1, 1, 0: PRINT "IX": PRINT: PRINT: PRINT: PRINT: GET (0, 0)-(20, 20), A1%(): PUT (XX - 5, YY - 5), A1%(), OR: PUT (0, 0), A2%(), AND
' MC
A = L(0, 11) + PI: I = 65: J = 90: GOSUB G680
A = L(0, 11): GOSUB G680: GET (0, 0)-(20, 20), A2%(): LOCATE 1, 1: PRINT "MC": GET (0, 0)-(20, 20), A1%(): PUT (XX - 10, YY - 10), A1%(), OR: PUT (0, 0), A2%(), AND
' AS
A = L(0, 10) + PI: GOSUB G680: A = L(0, 10): GOSUB G680: LOCATE 1, 1, 0: PRINT "AS": GET (0, 0)-(20, 20), A1%(): PUT (XX - 10, YY - 10), A1%(), OR: PUT (0, 0), A2%(), AND
' SOL
A = L(0, 0): GOSUB G680: CIRCLE (10, 10), 10, 3: PSET (10, 10): GET (0, 0)-(20, 20), A1%(): PUT (XX - 5, YY - 5), A1%(), OR: PUT (0, 0), A2%(), AND
' LUN
A = L(0, 1): GOSUB G680: CIRCLE (10, 10), 10, 3, 1.5725, 4.7175: LINE (10, 6)-(10, 14): GET (0, 0)-(20, 20), A1%(): PUT (XX - 10, YY - 10), A1%(), OR: PUT (0, 0), A2%(), AND
' MER
A = L(0, 2): GOSUB G680: CIRCLE (10, 10), 8, 3: LINE (10, 13)-(10, 18): LINE (7, 16)-(13, 16): LINE (0, 3)-(10, 6): LINE (20, 3)-(10, 6): GET (0, 0)-(20, 20), A1%(): PUT (XX - 10, YY - 10), A1%(), OR: PUT (0, 0), A2%(), AND
' VEN
A = L(0, 3): GOSUB G680: CIRCLE (10, 10), 8, 3: LINE (10, 13)-(10, 18): LINE (7, 16)-(13, 16): GET (0, 0)-(20, 20), A1%(): PUT (XX - 10, YY - 10), A1%(), OR: PUT (0, 0), A2%(), AND
' MAR
A = L(0, 4): GOSUB G680: CIRCLE (10, 10), 8, 3: LINE (10, 6)-(20, 3): PSET (19, 3): PSET (19, 4): GET (0, 0)-(20, 20), A1%(): PUT (XX - 10, YY - 10), A1%(), OR: PUT (0, 0), A2%(), AND
' JUP
A = L(0, 5): GOSUB G680: LINE (2, 10)-(18, 10): LINE (2, 10)-(5, 3): LINE (5, 18)-(18, 3): GET (0, 0)-(20, 20), A1%(): PUT (XX - 10, YY - 10), A1%(), OR: PUT (0, 0), A2%(), AND
' SAT
A = L(0, 6): GOSUB G680: CIRCLE (6, 10), 5, 3, 0, 3.145: CIRCLE (14, 11), 4, 3, 3.145: LINE (0, 14)-(3, 5): GET (0, 0)-(20, 20), A1%(): PUT (XX - 10, YY - 10), A1%(), OR: PUT (0, 0), A2%(), AND
' URA
A = L(0, 7): GOSUB G680: LINE (2, 8)-(18, 8): LINE (2, 3)-(2, 11): LINE (10, 3)-(10, 11): LINE (18, 3)-(18, 11): CIRCLE (10, 15), 7, 3: GET (0, 0)-(20, 20), A1%(): PUT (XX - 10, YY - 10), A1%(), OR: PUT (0, 0), A2%(), AND
' NEP
A = L(0, 8): GOSUB G680: CIRCLE (10, 8), 8, 3, 3.145: LINE (10, 5)-(10, 17): LINE (7, 15)-(13, 15): LINE (6, 5)-(2, 9): LINE (14, 5)-(18, 9): GET (0, 0)-(20, 20), A1%(): PUT (XX - 10, YY - 10), A1%(), OR: PUT (0, 0), A2%(), AND
' PLU
A = L(0, 9): GOSUB G680: LINE (2, 15)-(18, 15): LINE (2, 5)-(2, 15): LINE (2, 5)-(16, 5): LINE (16, 5)-(16, 10): LINE (16, 10)-(2, 10): GET (0, 0)-(20, 20), A1%(): PUT (XX - 10, YY - 10), A1%(), OR: PUT (0, 0), A2%(), AND
' PF
I = 65: J = 80
A = PF: GOSUB G680: CIRCLE (10, 10), 8, 3: LINE (5, 10)-(15, 10): LINE (10, 7)-(10, 13): GET (0, 0)-(20, 20), A1%(): PUT (XX - 5, YY - 5), A1%(), OR: PUT (0, 0), A2%(), AND
' LUNE NOIRE
A = LUNO / Z: GOSUB G680: CIRCLE (10, 10), 8, 3, 1.5725, 4.7175: LINE (10, 7)-(10, 13): PAINT (8, 10), 3: GET (0, 0)-(20, 20), A1%(): PUT (XX - 5, YY - 5), A1%(), OR: PUT (0, 0), A2%(), AND
' NOEUD LUNAIRE
A = NELU / Z: GOSUB G680
CIRCLE (2, 10), 2, 3: CIRCLE (18, 10), 2, 3: CIRCLE (10, 10), 6, 3, 3.145, 6.28: GET (0, 0)-(20, 20), A1%(): PUT (XX - 5, YY - 8), A1%(), OR: PUT (0, 0), A2%(), AND
' aspects
EA = 6: AP = 120: GOSUB G730: EA = 5: AP = 60: GOSUB G730: EA = 7: AP = 180: GOSUB G730: EA = 6: AP = 90: GOSUB G730: Z$ = INPUT$(1): SCREEN 0: RETURN
G680:
' affichage des traits
'
X = 320 + 2 * (I * COS(A)): Y = 100 - .85 * I * SIN(A): XX = 320 + 2 * (J * COS(A))
YY = 100 - .85 * J * SIN(A): X1 = 320 + 2 * ((J - 10) * COS(A)): Y1 = 100 - .85 * (J - 10) * SIN(A)
LINE (X, Y)-(X1, Y1): RETURN
G720:
X = 320 + 2 * (I * COS(A)): Y = 100 - .85 * I * SIN(A): XX = 320 + 2 * (J * COS(A))
YY = 100 - .8 * J * SIN(A): LINE (X, Y)-(XX, YY): RETURN
G730:
' affichage des aspects
'
BS = AP + EA: BI = ABS(AP - EA): FOR O = 0 TO 11: FOR K = O + 1 TO 11: DI = Z * ABS(L(0, O) - L(0, K))
IF DI > BS THEN DI = 360 - DI
IF DI > BS OR DI < BI THEN GOTO G800
X = 320 + 90 * COS(L(0, O)): Y = 100 - .85 * 45 * SIN(L(0, O)): XX = 320 + 90 * COS(L(0, K))
YY = 100 - .85 * 45 * SIN(L(0, K)): LINE (X, Y)-(XX, YY)
G800:
NEXT: NEXT: RETURN