DATE
PROG
TRN
<
<
< D E F I N I T I O N S G E N E R A L E S :
<
<
XUNDEF:: VAL -1 < POUR NE DEFINIR QUE LES 'XX...' DANS LES
< FICHIERS DE DEFINITION...
CALL #SIP DEFINITION CTTE#
<
< PREPARATION DE L'APPEL DE #SIP UTILITAIRES# :
<
XXXDEF: VAL XUNDEF
XXXLOC: VAL XUNDEF
XXXTAB: VAL XUNDEF
XXXPRO: VAL XUNDEF
CALL #SIP UTILITAIRES#
<
<
< D E F I N I T I O N D E L ' I M A G E :
<
<
XXXVEC: VAL XUNDEF < AFIN DE NE DEFINIR QUE LES 'XXVEC'...
CALL #SIP VECTEUR 512#
XXXVEC: VAL XXVEC1 < DEFINITION DES CONSTANTES IMAGE/VECTEUR.
CALL #SIP VECTEUR 512#
PAGE
<
<
< O P T I O N S D ' A S S E M B L A G E :
<
<
XOPT01: @
XWOR%1: VAL KOLF=FMASK+KOLTES=FVAL
XWOR%1: VAL KOLC=FMASK+KDP=FVAL?XWOR%1
XWOR%2: VAL KOLTED=FMASK+KOL0=FVAL
XWOR%2: VAL KOLTEF=FMASK+KOL0+KOLON=FVAL?XWOR%2
XWOR%3: VAL XWOR%2=XWOR%1-KOL0 < LONGUEUR DU SYMBOLE COURANT...
XWOR%4: VAL MSYMBI=FMASK+KOL0=FVAL
XWOR%4: VAL MSYMBL=FMASK+XWOR%3=FVAL?XWOR%4
XWOR%5: VAL XWOR%4=FCSYMT < ETAT DU SYMBOLE 'XOPT01'...
XWOR%6: VAL XWOR%5=FCSIGN
XWOR%7: VAL XWOR%5(MSYMBN)MSYMBN=FCSIGN
IF XWOR%6*XWOR%7,XEIF%,,XEIF%
XOPT01:: VAL EXIST < TRACE GRAPHIQUE, ET VERIFICATIONS CROI-
< SEES DES EQUATIONS CALCULEES...
XEIF%: VAL ENDIF
PAGE
<
<
< B A S D E L A M E M O I R E :
<
<
ZERO: EQU $
DZS PEPROG-D+Z
<
< POINT D'ENTREE :
<
ENTRY: EQU $
LRM A,K
WORD DEBUT < POINT D'ENTREE DU PROGRAMME,
WORD STACK-DEPILE < INITIALISATION DE LA PILE.
PSR A
RSR < ON EFFECTUE AINSI UN 'GOTO' 'DEBUT'...
PAGE
<
<
< M E S S A G E S :
<
<
TABLE
<
< BUFFER BANDE :
<
LBUFMT: @
XWOR%1: VAL KOLF=FMASK+KOLTES=FVAL
XWOR%1: VAL KOLC=FMASK+KDP=FVAL?XWOR%1
XWOR%2: VAL KOLTED=FMASK+KOL0=FVAL
XWOR%2: VAL KOLTEF=FMASK+KOL0+KOLON=FVAL?XWOR%2
XWOR%3: VAL XWOR%2=XWOR%1-KOL0 < LONGUEUR DU SYMBOLE COURANT...
XWOR%4: VAL MSYMBI=FMASK+KOL0=FVAL
XWOR%4: VAL MSYMBL=FMASK+XWOR%3=FVAL?XWOR%4
XWOR%5: VAL XWOR%4=FCSYMT < ETAT DU SYMBOLE 'LBUFMT'...
XWOR%6: VAL XWOR%5=FCSIGN
XWOR%7: VAL XWOR%5(MSYMBN)MSYMBN=FCSIGN
IF XWOR%6*XWOR%7,XEIF%,,XEIF%
LBUFMT:: VAL 4096
XEIF%: VAL ENDIF
BUFMT: EQU $
DZS LBUFMT/NOCMO
<
<
< C O M M O N :
<
<
COMMON
COM: EQU $
<
< MOT DESTINE AU BLOC FLOTTANT :
<
COMFLO: WORD NILK < MOT "BIDON" DESTINE AU BLOC FLOTTANT
< POUR QU'IL Y FIT SES MERDES...
ATSFLO: WORD TSFLO < POUR TESTER DE TEMPS EN TEMPS 'COMFLO'...
<
< INDICATEURS DE CONTROLE :
<
XWOR%1: VAL W+W < SEUIL DU MODULE,
XWOR%2: VAL XWOR%1*XWOR%1 < CARRE DU SEUIL DU MODULE,
MODUL: FLOAT <XWOR%2<K<K < SEUIL DE DEFINITION DE LA FRONTIERE
< DE L'ENSEMBLE DE MANDELBROT.
IERASE: WORD NEXIST < EFFACER ('EXIST'), OU NON ('NEXIST')
< L'ECRAN 512...
IVIDEO: WORD NEXIST < ECRIRE ('EXIST') L'IMAGE COURANTE SUR LE
< DISQUE VIDEO OU PAS ('NEXIST').
IQUIT: WORD NEXIST < S'ARRETER ('EXIST') OU PAS ('NEXIST')
< APRES CHAQUE IMAGE (POINT D'ARRET).
PASIX: WORD W < PAS DE BALAYAGE DE L'AXE REEL,
PASIY: WORD W < PAS DE BALAYAGE DE L'AXE IMAGINAIRE.
SIZEX: WORD W < LARGEUR DE MARQUAGE DES POINTS,
SIZEY: WORD W < HAUTEUR DE MARQUAGE DES POINTS.
NIMAGE: WORD NILK < NOMBRE D'IMAGES A GENERER PAR INTER-
< POLATION ENTRE LA FENETRE 'DEPART' ET
< LA FENETRE 'ARRIVEE'.
IBANDE: WORD NEXIST < CHOIX DU MODE D'"ENTREE" DE LA FONCTION :
< 'NEXIST' : ELLE EST CALCULEE A PARTIR
< DE LA FORMULE ALEATOIRE RECUR-
< SIVE,
< 'EXIST' : ELLE EST LUE SUR BANDE, ET
< ALORS ON A INTERET A FAIRE :
< (ALPHA)=0...
ABLOC0: WORD K < NUMERO DU PREMIER BLOC A LIRE SUR LA
< BANDE MAGNETIQUE.
< NOTA : SI (ABLOC0)<0 : ON TRAVAILLE EN
< SEQUENTIEL STRICT, SANS JAMAIS RE-
< INITIALISER L'ADRESSE COURANTE
< SUR LA BANDE...
ILAMBD: WORD NEXIST < CHOIX DE LA FONCTION ITEREE :
< 'NEXIST' : Z <-- Z**2+C,
< 'EXIST' : Z <-- LAMBDA*(Z**2+C),
< OU 'LAMBDA' EST UN NOMBRE
< COMPLEXE DONT LE MODULE
< POURRA VALOIR 1...
LAMBDR: FLOAT <NILK<NILK<NILK < PARTIE REELLE DE 'LAMBDA',
LAMBDI: FLOAT <NILK<NILK<NILK < PARTIE IMAGINAIRE DE 'LAMBDA'.
F0R: FLOAT <NILK<NILK<NILK < POUR INITIALISER LE CUMUL
F0I: FLOAT <NILK<NILK<NILK < DE L'ITERATION Z <-- Z**2+C.
ITRACE: WORD NEXIST < INDICATEUR DU TRACE DE LA "TRAJECTOIRE"
< DE LA TRANSFORMATION :
< 'NEXIST' : PAS DE TRACE,
< 'EXIST' : TRACE.
IQUITR: WORD NEXIST < INDICATEUR D'ARRET APRES CHAQUE TRACE
< D'UNE TRAJECTOIRE :
< 'NEXIST' : PAS D'ARRET,
< 'EXIST' : ARRET.
NTRACE: WORD XXNOIR < NIVEAU INITIAL MOINS UN DU TRACE DE LA
< "TRAJECTOIRE" DE LA TRANSFORMATION,
PTRACE: WORD I < PAS D'INCREMENTATION DES NIVEAUX DE
< TRACE (SI (PTRACE)=0, ON TRACE TOUT AVEC
< LE NIVEAU 'NTRACE').
IJULIA: WORD EXIST < INDIQUE LE TYPE DE L'ENSEMBLE QUE L'ON
< CONSTRUIT :
< 'NEXIST' : ENSEMBLE DE MANDELBROT, SOIT :
< INIT : Z <-- CTTE,
< ITER : Z <-- Z**2+COURANT.
< 'EXIST' : ENSEMBLE DE JULIA, SOIT :
< INIT : Z <-- COURANT,
< ITER : Z <-- Z**2+CTTE.
< OU 'CTTE' ET 'COURANT' DESIGNENT RESPEC-
< TIVEMENT UNE CONSTANTE COMPLEXE, ET LE
< NOMBRE COMPLEXE COURANT.
IRAYON: WORD NEXIST < DOIT-ON ('EXIST') OU PAS ('NEXIST')
< VISUALISER LES "RAYONS", C'EST-A-DIRE
< L'ARGUMENT TETA=ARCTG(ZI/ZR) DU NOMBRE
< COMPLEXE (ZR,ZI) OBTENU EN FIN D'ITE-
< RATION.
<
< FENETRE DE DEPART :
<
PR0D: FLOAT <NILK<NILK<NILK < LIMITE REELLE INFERIEURE,
PR1D: FLOAT <NILK<NILK<NILK < LIMITE REELLE SUPERIEURE.
PI0D: FLOAT <NILK<NILK<NILK < LIMITE IMAGINAIRE INFERIEURE,
PI1D: FLOAT <NILK<NILK<NILK < LIMITE IMAGINAIRE SUPERIEURE.
<
< FENETRE D'ARRIVEE :
<
PR0A: FLOAT <NILK<NILK<NILK < LIMITE REELLE INFERIEURE,
PR1A: FLOAT <NILK<NILK<NILK < LIMITE REELLE SUPERIEURE.
PI0A: FLOAT <NILK<NILK<NILK < LIMITE IMAGINAIRE INFERIEURE,
PI1A: FLOAT <NILK<NILK<NILK < LIMITE IMAGINAIRE SUPERIEURE.
<
< FENETRE COURANTE :
<
PR0: FLOAT <NILK<NILK<NILK < LIMITE REELLE INFERIEURE,
PR1: FLOAT <NILK<NILK<NILK < LIMITE REELLE SUPERIEURE.
PI0: FLOAT <NILK<NILK<NILK < LIMITE IMAGINAIRE INFERIEURE,
PI1: FLOAT <NILK<NILK<NILK < LIMITE IMAGINAIRE SUPERIEURE.
<
< DONNEES DE L'INTERPOLATION NON LINEAIRE :
<
F3: FLOAT 3.0
F5: FLOAT 5.0
F6: FLOAT 6.0
F8: FLOAT 8.0
COEF: FLOAT <NILK<NILK<NILK < POIDS DE L'INTERPOLATION BARYCENTRIQUE.
COEFR0: EQU COEF < RAPPORT DE PASSAGE DU PAS REEL INFERIEUR
< P(I) AU PAS P(I+1).
COEFR1: EQU COEF < RAPPORT DE PASSAGE DU PAS REEL SUPERIEUR
< P(I) AU PAS P(I+1).
COEFI0: EQU COEF < RAPPORT DE PASSAGE DU PAS IMAGINAIRE INFE
< RIEUR P(I) AU PAS P(I+1).
COEFI1: EQU COEF < RAPPORT DE PASSAGE DU PAS IMAGINAIRE SUPE
< RIEUR P(I) AU PAS P(I+1).
EPSI: FLOAT <NILK<NILK<NILK < POUR CALCULER 'COEF'...
<
< RELAIS DIVERS :
<
ADEB9: WORD DEBUT9
AINIT1: WORD INIT01
AGEN01: WORD GEN01
AGEN02: WORD GEN02
<
< CONSTANTES FLOTTANTES DE BASE :
<
F0: FLOAT <K<K<K < REMISE A ZERO FLOTTANTE...
F1: FLOAT <W<K<K < L'UNITE EN FLOTTANT...
<
< DONNEES DIVERSES :
<
NIVOC: WORD NILK < NIVEAU COURANT DE MARQUAGE.
XXXLOC: VAL YYYFLO < 'YYYFLO'.
CALL #SIP UTILITAIRES#
<
< DEMANDE DE TEMPORISATION
< APRES EFFACEMENT :
<
TEMPO: BYTE NVPSER;FONDOR
WORD NILK < INUTILE...
WORD XXXMOY < 2 PETITES SECONDES...
XXXLOC: VAL YYYGOT < 'YYYGOT'.
CALL #SIP UTILITAIRES#
XXXVEC: VAL XXVEC2 < DEFINITION DES DONNEES DU VECTEUR 512...
CALL #SIP VECTEUR 512#
APOINT: WORD POINT < SOUS-PROGRAMME DE MARQUAGE D'UN POINT
< DE COORDONNEES (X), DONT LE NIVEAU EST
< CALCULE VIA LA TABLE 'LNIVO'.
ALNIVO: WORD LNIVO,X < TABLE DE CORRESPONDANCE DES NIVEAUX POUR
< LE SOUS-PROGRAMME 'POINT'.
<
< ACCES AUX REGISTRES DE CONTROLE :
<
ACTRL1: WORD RCTRL1
ACTRL2: WORD RCTRL2
<
< POUR LE CALCUL DU LOGARITHME :
<
POLLO1: FLOAT <NILK<NILK<NILK < VARAIBLE DE MANOEUVRE...
POLLO2: FLOAT <NILK<NILK<NILK
POLLO3: FLOAT <NILK<NILK<NILK
POLLO4: FLOAT 0.7071067 < RACINE(2)/2.
POLLO5: FLOAT 1.2920088 < COEFFICIENTS
POLLO6: FLOAT 2.6398577 < DU
POLLO7: FLOAT 1.656763 < DEVELOPPEMENT.
POLLO8: EQU F05 < CONSTANTE 1/2.
POLLO9: FLOAT 0.6931472 < LN(2).
<
< POUR LE CALCUL DE L'EXPONENTIELLE :
<
POLEX1: EQU POLLO1 < VARIABLE DE MANOEUVRE...
POLEX2: EQU POLLO2
POLEX3: EQU POLLO3
POLEX4: FLOAT 1.442695 < LOG2(E).
POLEX5: WORD NILK < RELEVE DE L'EXPOSANT
POLEX6: EQU F1 < 1.0
POLEX7: FLOAT 2 < 2.
POLEX8: FLOAT 87.417488 < COEFFICIENTS
POLEX9: FLOAT 0.0346573 < DU
POLEY0: FLOAT -17830.91 < DEVELOPPEMENT.
POLEY1: FLOAT 9.9545955
SIGNE: WORD NILK < POUR DETERMINER LE SIGNE DE X**Y...
<
< POUR CALCULER
< LES EXPOSANTS :
<
XXMASK:: VAL MOCG
XX7F:: VAL '7F < MAXIMUM POSITIF,
XX80:: VAL -'80 < MIMIMUM NEGATIF.
<
< CALCUL D'UNE PUISSANCE QUELCONQUE :
<
ARAK: WORD RAK < CALCUL DE LA PUISSANCE P/(2**Q) D'UN
< NOMBRE...
EXPOP: FLOAT <NILK<NILK<NILK < EXPOSANT REEL.
<
< DONNEES D'ITERATION DE LA
< TRANSFORMATION COMPLEXE :
<
ZR: FLOAT <NILK<NILK<NILK < VALEUR COURANTE
ZI: FLOAT <NILK<NILK<NILK < DU CUMUL COMPLEXE.
CR: FLOAT <NILK<NILK<NILK < NOMBRE COMPLEXE
CI: FLOAT <NILK<NILK<NILK < COURANT 'C'.
DELTAR: FLOAT <NILK<NILK<NILK < LARGEUR REELLE DE LA FENETRE,
DELTAI: FLOAT <NILK<NILK<NILK < LARGEUR IMAGINAIRE DE LA FENETRE.
FNC: FLOAT <XMAX+Z<K<K < LARGEUR DE L'ECRAN,
FNL: FLOAT <YMAX+Z<K<K < HAUTEUR DE L'ECRAN.
F2: FLOAT <W+W<K<K
PAGE
<
<
< L O C A L :
<
<
LOCAL
LOC: EQU $
<
< GESTION DU DISQUE VIDEO :
<
BUFVIW: BYTE "J";KCR
XWOR%1: VAL '0000000@@@@(MOCD
XWOR%3: VAL $-BUFVIW*NOCMO
IF XWOR%1-K,XEIF%,,XEIF%
XWOR%3: VAL XWOR%3-W
XEIF%: VAL ENDIF
LBUFVW:: VAL XWOR%3 < LONGUEUR DE LA COMMANDE AU DISQUE
< VIDEO...
XWOR%2: VAL COSBT?XASSIM=FMASK(K?NVPVDK=FCINST
DEMVIW: BYTE XWOR%2;FAVW < COMMANDE DE L'ECRITURE SUR LE DISQUE
< VIDEO...
WORD BUFVIW=FCTA*NOCMO
WORD LBUFVW
BUFVIR: DZS W < BUFFER DE LECTURE DES ACQUITTEMENTS.
LBUFVR:: VAL $-BUFVIR*NOCMO
DEMVIR: BYTE XWOR%2;FAVR < LECTURE DES ACQUITTEMENTS DU DISQUE.
WORD BUFVIR=FCTA*NOCMO
WORD LBUFVR
<
< GESTION DU DEROULEUR :
<
NVPMT:: VAL '0B < 'NVP' D'ACCES AU DEROULEUR DE BANDES.
DEMMT: BYTE NVPMT;XFMTWA < DEMANDE D'ECRITURE A ACCES DIRECT.
WORD BUFMT=FCTA*NOCMO
WORD LBUFMT
WORD NILK < ADRESSE DU BLOC COURANT.
DEMMTM: BYTE NVPMT;XFMTTM < DEMANDE D'ECRITURE D'UN 'TAPE-MARK'.
IBUFMT: WORD LBUFMT-Z+I < INDEX COURANT DU BUFFER 'MT',
ZBUFMT: WORD LBUFMT-Z+I < POUR LES TESTS "BUFFER PLEIN"...
ABUFMT: WORD BUFMT,X < ET RELAI D'ACCES...
<
< DONNEES D'ACCES AU CURSEUR :
<
CURSOR: BYTE "N";NILK < CARACTERE DE DEBLOCAGE DU
< CURSEUR (ERREUR A PRIORI).
CURSOY: WORD NILK < COORDONNEE 'Y' D'UN POINT,
CURSOX: WORD NILK < COORDONNEE 'X' D'UN POINT.
LCURSO:: VAL $-CURSOR*NOCMO < LONGUEUR DU BUFFER DE CURSEUR...
NLIN: EQU VECTNL < NBRE DE LIGNES/IMAGE-1.
C3: WORD 3 < POUR MULTIPLIER
C4: WORD 4 < PAR 4/3...
OG: BYTE NVPIN;FAVOG < OPEN GRAPHIQUE DE LA CONSOLE.
CU: BYTE NVPIN;FAVCU < MISE EN FONCTION DU CURSEUR GRAPHIQUE.
WORD K < (AMDEM)=0...
LCU: BYTE NVPIN;FAVRG < LECTURE CURSEUR GRAPHIQUE DE LA CONSOLE.
WORD CURSOR-ZERO*NOCMO
WORD LCURSO
CG: BYTE NVPIN;FAVCG < CLOSE GRAPHIQUE DE LA CONSOLE.
<
< SIMULATION D'UNE REDUCTION
< DE LA PRECISION DU CALCUL :
<
WMODUL: FLOAT <NILK<NILK<NILK < VALEUR DE 'MODUL' APRES REDUCTION
< EVENTUELLE DE LA PRECISION...
XREDUC: @
XWOR%1: VAL KOLF=FMASK+KOLTES=FVAL
XWOR%1: VAL KOLC=FMASK+KDP=FVAL?XWOR%1
XWOR%2: VAL KOLTED=FMASK+KOL0=FVAL
XWOR%2: VAL KOLTEF=FMASK+KOL0+KOLON=FVAL?XWOR%2
XWOR%3: VAL XWOR%2=XWOR%1-KOL0 < LONGUEUR DU SYMBOLE COURANT...
XWOR%4: VAL MSYMBI=FMASK+KOL0=FVAL
XWOR%4: VAL MSYMBL=FMASK+XWOR%3=FVAL?XWOR%4
XWOR%5: VAL XWOR%4=FCSYMT < ETAT DU SYMBOLE 'XREDUC'...
XWOR%6: VAL XWOR%5=FCSIGN
XWOR%7: VAL XWOR%5(MSYMBN)MSYMBN=FCSIGN
IF XWOR%6*XWOR%7,XEIF%,,XEIF%
XREDUC:: VAL NEXIST < PAS DE REDUCTION DE PRECISION A PRIORI...
XEIF%: VAL ENDIF
IF XREDUC-EXIST,XEIF%9,,XEIF%9
AREDUC: WORD REDUC < SOUS-PROGRAMME DE SIMULATION...
REDUCA: WORD MMOT < MASQUE SUR LES 16 PREMIERS BITS,
REDUCB: WORD MMOT < MASQUE SUR LES 16 DERNIERS BITS.
XEIF%9: VAL ENDIF
<
< DONNEES DE CALCUL DE 'ARCTG' :
<
ATGT1: FLOAT <NILK<NILK<NILK < ZONE DE TRAVAIL NUMERO 1,
ATGT2: FLOAT <NILK<NILK<NILK < ZONE DE TRAVAIL NUMERO 2,
ATGT3: FLOAT <NILK<NILK<NILK < ZONE DE TRAVAIL NUMERO 3.
ATGSDX: WORD NILK < INDICATEUR "SIGNE DE X ARGUMENT":
< = 0 : POSITIF OU NUL;
< < 0 : NEGATIF.
ATGPSC: FLOAT 0.0548862 < TG(PI/12).
ATGPS2: FLOAT 1.5707963 < PI/2.
ATGPS3: FLOAT 1.0471975 < PI/3.
ATGPS6: FLOAT 0.5235988 < PI/6.
ATGUN: EQU F1
ATGR3: FLOAT 1.7320508 < RACINE(3).
ATGP1: FLOAT 0.6031058 < COEFFICIENTS
ATGP2: FLOAT 0.0516045 < (P1,P2,P3,P4)
ATGP3: FLOAT 0.5591371 < DU
ATGP4: FLOAT 1.4087812 < POLYNOME.
AARCTG: WORD ARCTG < SOUS-PROGRAMME DE CALCUL.
PI: FLOAT 3.1415927 < PI,
DEUXPI: FLOAT 6.2831853 < 2*PI.
F255: FLOAT <XXN255<K<K < POUR PASSER D'UN ANGLE (EN NOMBRE DE
< TOURS) A UN NIVEAU DE GRIS...
PAGE
<
<
< T A B L E D E T R A N S C O D A G E D E S N I V E A U X :
<
<
< ARGUMENTS D'ASSEMBLAGE :
< ND=DIVISEUR DES NIVEAUX DE 'LNIVO' (0 OU 2),
< NI=TRANSLATION DES NIVEAUX DE 'LNIVO' (0 OU 128)...
<
<
NI: @
XWOR%1: VAL KOLF=FMASK+KOLTES=FVAL
XWOR%1: VAL KOLC=FMASK+KDP=FVAL?XWOR%1
XWOR%2: VAL KOLTED=FMASK+KOL0=FVAL
XWOR%2: VAL KOLTEF=FMASK+KOL0+KOLON=FVAL?XWOR%2
XWOR%3: VAL XWOR%2=XWOR%1-KOL0 < LONGUEUR DU SYMBOLE COURANT...
XWOR%4: VAL MSYMBI=FMASK+KOL0=FVAL
XWOR%4: VAL MSYMBL=FMASK+XWOR%3=FVAL?XWOR%4
XWOR%5: VAL XWOR%4=FCSYMT < ETAT DU SYMBOLE 'NI'...
XWOR%6: VAL XWOR%5=FCSIGN
XWOR%7: VAL XWOR%5(MSYMBN)MSYMBN=FCSIGN
IF XWOR%6*XWOR%7,XEIF%,,XEIF%
NI:: VAL XXNOIR < LE NIVEAU INITIAL SERA LE NIVEAU NOIR.
XEIF%: VAL ENDIF
ND: @
XWOR%1: VAL KOLF=FMASK+KOLTES=FVAL
XWOR%1: VAL KOLC=FMASK+KDP=FVAL?XWOR%1
XWOR%2: VAL KOLTED=FMASK+KOL0=FVAL
XWOR%2: VAL KOLTEF=FMASK+KOL0+KOLON=FVAL?XWOR%2
XWOR%3: VAL XWOR%2=XWOR%1-KOL0 < LONGUEUR DU SYMBOLE COURANT...
XWOR%4: VAL MSYMBI=FMASK+KOL0=FVAL
XWOR%4: VAL MSYMBL=FMASK+XWOR%3=FVAL?XWOR%4
XWOR%5: VAL XWOR%4=FCSYMT < ETAT DU SYMBOLE 'ND'...
XWOR%6: VAL XWOR%5=FCSIGN
XWOR%7: VAL XWOR%5(MSYMBN)MSYMBN=FCSIGN
IF XWOR%6*XWOR%7,XEIF%,,XEIF%
ND:: VAL W < PAS DE DIVISEUR DES NIVEAUX...
XEIF%: VAL ENDIF
LNIVO: EQU $
NTRN
XWOR%1: VAL NIV256+NOCMO-E/NOCMO
XWOR%2: VAL NIV256/NOCMO(K=FCREST
TRN
XWOR%3: VAL NIV256+XWOR%2
< INCREMENT DES OCTETS GAUCHES,
XWOR%4: VAL XWOR%3+NOCMO-Z
< INCREMENT DES OCTETS DROITS.
NTRN
<*******************************************************************************
DO XWOR%1
BYTE K=FCDO)MFFFF+N-Z*NOCMO+XWOR%3/ND+NI;K=FCDO)MFFFF+N-Z*NOCMO+XWOR%4/ND+NI
XWOR%5: VAL '0000000@@@@ < RECUPERATION DU DERNIER MOT,
<*******************************************************************************
TRN
IF XWOR%2-K,,XEIF%,
XWOR%5: VAL XWOR%5(MOCG < DANS LE CAS D'UNE TABLE DE LONGUEUR
< IMPAIRE, ON EFFACE LE DERNIER OCTET
< GENERE,
$EQU $-D < ON REVIENT D'UN MOT EN ARRIERE,
WORD XWOR%5 < ET ON REGENERE LE DERNIER MOT...
XEIF%: VAL ENDIF
NLS
DO XC512
FLOAT <NILK<NILK<NILK < LIGNE PRECEDENTE.
LST
PAGE
<
<
< P I L E D E T R A V A I L :
<
<
STACK: EQU $
DZS 64
PROG
XXXVEC: VAL XXVEC3 < DEFINITION DES PROGRAMMES VECTEUR 512...
CALL #SIP VECTEUR 512#
PAGE
<
<
< M A R Q U A G E D ' U N P O I N T :
<
<
< FONCTION :
< CE SOUS-PROGRAMME MARQUE
< LE POINT ARGUMENT (X,Y) AVEC
< COMME NIVEAU, LE NIVEAU ARGU-
< MENT (A) TRANSCODE VIA LA TA-
< BLE 'LNIVO', CE QUI PERMET PAR
< EXEMPLE LA SUPERPOSITION DE
< PLUSIEURS IMAGES, EN FAISANT
< QUE LEURS TABLES 'LNIVO' SOIENT
< COMPLEMENTAIRES...
<
<
< ARGUMENTS :
< (A)=NIVEAU,
< (X,Y)=COORDONNEES DU POINT.
<
<
< RESULTAT :
< (A)=NIVEAU TRANSCODE.
<
<
POINT: EQU $
<
< TRANSCODAGE DU NIVEAU :
<
PSR X < SAUVEGARDE DE LA COORDONNEE 'X'...
LR A,X < (X)=NIVEAU ARGUMENT,
LBY &ALNIVO < (A)=NIVEAU TRANSCODE,
PLR X < RESTAURE :
< (X)=COORDONNEE 'X'.
<
< MARQUAGE DU POINT :
<
BSR ASTORP < MARQUAGE : (X,Y) <-- (A)...
<
< ET RETOUR :
<
RSR
PAGE
<
<
< T E S T P E R I O D I Q U E D E ' C O M F L O ' :
<
<
< FONCTION :
< CE SOUS-PROGRAMME EST
< APPELE DERRIERE CHAQUE
< 'FDV' EXPLICITE AINSI
< QU'APRES LES APPELS DE
< 'RAC' ET 'CRAMR'...
<
<
TSFLO: EQU $
PSR A
LA COMFLO < TEST DE 'COMFLO' PAR UN 'LA' AFIN DE NE
< PAS MODIFIER LES CODES (CARY & CO)...
JAE TSFLO1 < OK...
QUIT XXQUIT < E R R E U R P R O G R A M M E ...
< ON A :
< (A)=INDICATEURS FLOTTANTS...
< BIT 0 : UNDERFLOW,
< BIT 1 : OVERFLOW,
< BIT 2 : DIVISION PAR ZERO,
< BIT 3 : 'FIX' IMPOSSIBLE.
STZ COMFLO < PUIS RAZ, CAR CES INDICATEURS SONT
< REMANENTS...
TSFLO1: EQU $
PLR A
RSR
XXXPRO: VAL YYYGOT < 'YYYGOT'.
CALL #SIP UTILITAIRES#
XXXPRO: VAL YYYFLO < 'YYYFLO'.
CALL #SIP UTILITAIRES#
PAGE
<
<
< C A L C U L D ' U N E P U I S S A N C E
< Q U E L C O N Q U E R E E L L E ' P ' :
<
<
< ARGUMENT :
< (A,B)=NOMBRE 'N' ARGUMENT,
<
<
< RESULTAT :
< (A,B)='N' A LA PUISSANCE P.
<
<
RAK: EQU $
PSR Y
<
<
< L O G N E P E R I E N :
<
<
LOGN: EQU $
STZ SIGNE < =0 : SIGNE "+" A PRIORI...
FCAZ
JGE LOGN1 < POSITIF...
IC SIGNE < =1 : SIGNE "-"...
LOGN1: EQU $
LR A,Y
FABS
ANDI XXMASK
#/FST# POLLO3
FAD POLLO4
#/FST# POLLO2
LR Y,A
SWBR A
SARS XXMASK=K
FLT
#/FST# POLLO1
#/FLD# POLLO3
FSB POLLO4
FDV POLLO2
#/FST# POLLO3
FMP POLLO3
FNEG
FAD POLLO7
#/FST# POLLO2
#/FLD# POLLO6
FDV POLLO2
FAD POLLO5
FMP POLLO3
FSB POLLO8
FAD POLLO1
FMP POLLO9
<
<
< G E S T I O N D U S I G N E D E L ' E X P O S A N T :
<
<
PSR A,B < SAVE LE 'LOG'...
#/FLD# EXPOP
FABS
BSR AROND < ON PREND LA PARTIE ENTIERE (PAR EXCES
< OU PAR DEFAUT) DE LA VALEUR ABSOLUE DE
< L'EXPOSANT...
TBT NBITMO-B < QUELLE EST SA PARITE ???
JC RAK1 < IMPAIRE, 'SIGNE' RESTE TEL QUEL...
STZ SIGNE < PAIRE : ON FORCE "+" (SIGNE INCHANGE)...
RAK1: EQU $
PLR A,B < RESTAURATION DU LOG,
FMP EXPOP < ET ON CALCULE P*LOG...
<
<
< E X P O N E N T I E L L E :
<
<
EXP: EQU $
FMP POLEX4
#/FST# POLEX3
FIX
STA POLEX5
FLT
FCAM POLEX3
JNV EXPON3
#/FLD# POLEX6
#/FST# POLEX3
JMP EXPON5
EXPON3: EQU $
CPZ POLEX3
JGE EXPON4
DC POLEX5
LA POLEX5
FLT
EXPON4: EQU $
FSB POLEX3
FNEG
#/FST# POLEX2
FMP POLEX2
#/FST# POLEX1
FAD POLEX8
#/FST# POLEX3
#/FLD# POLEY0
FDV POLEX3
FAD POLEX1
FMP POLEX9
FAD POLEY1
FSB POLEX2
#/FST# POLEX3
#/FLD# POLEX7
FMP POLEX2
FDV POLEX3
FAD POLEX6
#/FST# POLEX3
EXPON5: EQU $
SWBR A
SARS XXMASK=K
AD POLEX5
CPI XX7F
JG $ < E R R E U R P R O G R A M M E ...
CPI XX80
JGE EXPON6
#/FLD# F0 < ON PREND LE MINIMUM...
JMP EXPON7
EXPON6: EQU $
XWOR%1: VAL XXMASK=K
XWOR%1: VAL -XWOR%1
ANDI XXMASK>XWOR%1
STA POLEX5
LA POLEX3
ANDI XXMASK
AD POLEX5
EXPON7: EQU $
CPZ SIGNE < PRISE EN COMPTE DU SIGNE SIMULE :
JE EXP1 < POSITIF, ON LAISSE LE RESULTAT TEL QUEL..
FNEG < NEGATIF, ON INVERSE...
EXP1: EQU $
BSR ATSFLO
PLR Y
RSR
PAGE
<
<
< C A L C U L D E L A F O N C T I O N ' A R C T G ' :
<
<
< ARGUMENT:
< (A,B)=VALEUR ARGUMENT.
<
<
< RESULTAT:
< (A,B)='ARCTG' DE L'ARGUMENT EN RADIANS.
<
<
ARCTG: EQU $
<
< SAUVEGARDES ET INITIALISATIONS.
<
PSR X,L
STZ ATGSDX < ARGUMENT 'X' POSITIF OU NUL A PRIORI.
FCAZ
JGE ARCTG1
DC ATGSDX < ARGUMENT 'X' NEGATIF.
ARCTG1: EQU $
FABS < U = ABS(X).
FCAM ATGUN
JGE ARCTG2
<
< U < 1 : J RECOIT 0.
<
LXI K
JMP ARCTG3
ARCTG2: EQU $
<
< U >= 1 : J RECOIT 2 ET U RECOIT 1/U.
<
LXI W+W < J = 2.
FST ATGT1
FLD ATGUN
FDV ATGT1 < U = 1/U.
ARCTG3: EQU $
FCAM ATGPSC < COMPARER U A TG(PI/12).
JG ARCTG4
<
< U <= TG(PI/12) : J RECOIT J+2.
<
ADRI I+I,X < J = J + 2.
JMP ARCTG5
ARCTG4: EQU $
<
< U > TG(PI/12) : J RECOIT J+1 ET
< U RECOIT (U * RACINE(3) - 1) / (RACINE(3) + U).
<
ADRI I,X < J = J + 1.
FST ATGT1
FMP ATGR3
FSB ATGUN
PSR A,B
FLD ATGR3
FAD ATGT1
FST ATGT1
PLR A,B
FDV ATGT1 < U=(U*RACINE(3)-1)/(RACINE(3)+U).
ARCTG5: EQU $
<
< FORMER Y = U * P(U ** 2) LES COEFFICIENTS DU POLYNOME ETANT ATGP1, ATGP2
< ATGP3 ET ATGP4. ON CALCULE :
< Y = U * (P1 - P2 * U ** 2 + (P3 / (P4 + U ** 2)).
<
FST ATGT1 < TRAV1 = U.
FMP ATGT1
FST ATGT3 < TRAV3 = U ** 2.
FAD ATGP4
FST ATGT2
FLD ATGP3
FDV ATGT2
FAD ATGP1
PSR A,B
FLD ATGP2
FMP ATGT3
FST ATGT3
PLR A,B
FSB ATGT3 < Y = P(U ** 2).
FMP ATGT1 < Y = U * P( U ** 2).
FST ATGT1 < TRAV1 = U * P (U ** 2).
<
< BRANCHEMENT SELON VALEUR DE J (REGISTRE 'X').
<
ADRI -I-I,X
CPZR X
JE ARCTG6
JL ARCTG7
ADRI -I,X
CPZR X
JE ARCTG8
<
< FAIRE Y = PI / 2 - Y.
<
FLD ATGPS2
JMP ARCTG9
ARCTG8: EQU $
<
< FAIRE Y = PI / 3 - Y.
<
FLD ATGPS3
ARCTG9: EQU $
FSB ATGT1 < - Y.
JMP ARCTG6
ARCTG7: EQU $
<
< FAIRE Y = PI / 6 + Y.
<
FAD ATGPS6
ARCTG6: EQU $
<
< AFFECTER A Y LE SIGNE DU X ARGUMENT.
<
CPZ ATGSDX < SIGNE DU X ARGUMENT.
JL ARCTGA
<
< X ARGUMENT POSITIF OU NUL, IL FAUT QUE Y LE SOIT.
<
FCAZ
JGE ARCTGB
FNEG
JMP ARCTGB
ARCTGA: EQU $
<
< X ARGUMENT NEGATIF, IL FAUT QUE Y LE SOIT.
<
FCAZ
JL ARCTGB
FNEG
ARCTGB: EQU $
<
< RESTAURATIONS ET FIN...
<
PLR X,L
RSR
PAGE
IF XREDUC-EXIST,XEIF%9,,XEIF%9
<
<
< S I M U L A T I O N D ' U N E P R E C I S I O N
< D E C A L C U L I N F E R I E U R E :
<
<
< ARGUMENT :
< (A,B)=NOMBRE FLOTTANT SUR 32 BITS,
< (REDUCA,REDUCB)=MASQUE SUR 32 BITS DES 32 BITS DE (A,B)
< A CONSERVER.
<
<
< RESULTAT :
< (A,B)=NOMBRE FLOTTANT EN PRECISION REDUITE.
<
<
REDUC: EQU $
AND REDUCA < REDUCTION DES 16 PREMIERS BITS,
XR A,B
AND REDUCB < REDUCTION DES 16 DERNIERS BITS.
XR A,B
RSR
XEIF%9: VAL ENDIF
PAGE
<
<
< P O I N T D ' E N T R E E :
<
<
DEBUT: EQU $
<
< INITIALISATION DES REGISTRES :
<
LRM C,L,K
WORD COM+DEPBAS < POSITIONNEMENT DE 'C',
WORD LOC+DEPBAS < DE 'L',
WORD STACK-DEPILE < ET DE 'K'.
<
< CONNEXION A LA 'CDA' :
<
CPZ IBANDE < GENERE-T'ON UNE BANDE ???
JNE GEN51 < OUI, PAS DE CONNEXION 'CDAJ'...
LAI PAGER
BSR AGPCDA < AFIN D'ATTEINDRE LA MEMOIRE DU '68000'
< ET LA MEMOIRE 'SOLAR' QUI LA PRECEDE
< AFIN D'Y METTRE 'BUF'...
GEN51: EQU $
<
<
< E N T R Y D E R E B O U C L A G E :
<
<
DEBUT4: EQU $
DEBUT9: EQU $
<
< MODIFICATION A PRIORI DU 'PRESC' :
<
LRM A
WORD DEBUT5 < POUR 'XXXPRE'...
ACTD XXXPRE < ON CHANGE ALORS SYSTEMATIQUEMENT APRES
< PASSAGE ICI LE 'PRESC' DU PROGRAMME, AFIN
< DE REVENIR SUR LA VISUALISATION APRES
< CHAQUE ALT-MODE (VIA 'DEBUT5'...).
<
< INITIALISATION A PRIORI
< DU TRACE DES "TRAJECTOIRES" :
<
LRM A,B,X,Y
WORD CORBT?BANTI=FMASK(K=FCINST
WORD MMOT
WORD K
WORD COSBT?VELODD=FMASK(K?VECTSB=FCINST
STA VECANT < PAS D'ANTI-ALIASING,
STB VEPOIN < PAS DE POINTILLE,
STX VEDECA < PAS DE DECALAGE DES NIVEAUX,
STY VECTRS < MODE 'SBT' EN LOGIQUE BINAIRE.
<
< PREPARATION DE LA VALEUR
< DE SEUIL DU MODULE DES
< NOMBRES COMPLEXES :
<
#/FLD# MODUL
IF XREDUC-EXIST,XEIF%9,,XEIF%9
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
XEIF%9: VAL ENDIF
#/FST# WMODUL
<
< INITIALISATION DU GESTIONNAIRE
< DE BANDES MAGNETIQUES (A PRIORI) :
<
LA ABLOC0
JAL INIT20 < ON FERA DU SEQUENTIEL STRICT...
STA DEMMT+ARGESC < ADRESSE DU PREMIER BLOC A LIRE,
INIT20: EQU $
STZ IBUFMT < POUR FORCER LA PREMIERE LECTURE...
<
< CALCUL DES PAS D'INTERPOLATIONS :
<
< NOTONS 'D', 'C' ET 'A' RESPECTIVE-
< MENT UNE COORDONNEE DE 'DEPART',
< 'COURANTE' ET D''ARRIVEE'. NOTONS
< AUSSI 'K' LE RAPPORT DE PASSAGE DE
< L'IMAGE 'I' A L'IMAGE 'I+1'.
< ON CHOISIT UNE RELATION BARYCENTRI-
< QUE DU TYPE :
<
< C=K*C+(1-K)*A,
<
< SOIT :
<
< C=K*(C-A)+A,
<
< AVEC INITIALEMENT :
<
< C=D.
<
< CALCUL DE 'COEF' :
<
< ON PREND :
< COEF=EPSI**(1/(N-1)),
<
LA NIMAGE < (A)=NOMBRE D'IMAGES A GENERER...
CPI W
JLE INT01 < IL N'Y EN A QU'UNE SEULE...
ADRI -I,A < IL Y EN A PLUS D'UNE, LE NOMBRE DE PAS
< ET DONC LE NOMBRE D'IMAGES MOINS UNE...
FLT
#/FST# FWORK < ET SAVE...
#/FLD# F1 < 1,
FDV FWORK < 1/(N-1),
#/FST# EXPOP < ET SAVE...
#/FLD# EPSI < EPSI,
BSR ARAK < ELEVATION A LA PUISSANCE (EXPOP)...
#/FST# COEF < COEF=EPSI**(1/(N-1)).
INT01: EQU $
<
< INITIALISATION DE LA
< FENETRE COURANTE :
<
#/FLD# PR0D
#/FST# PR0 < LIMITE REELLE INFERIEURE,
#/FLD# PR1D
#/FST# PR1 < LIMITE REELLE SUPERIEURE.
#/FLD# PI0D
#/FST# PI0 < LIMITE IMAGINAIRE INFERIEURE,
#/FLD# PI1D
#/FST# PI1 < LIMITE IMAGINAIRE SUPERIEURE.
<
< CHARGEMENT DU NOMBRE D'IMAGES :
<
LX NIMAGE < (X)=NOMBRE D'IMAGES A GENERER.
<
<
< I N I T I A L I S A T I O N S :
<
<
INIT01: EQU $
PSR X < SAUVEGARDE DU NOMBRE D'IMAGES A
< GENERER...
<
< DEFINITION DE LA FENETRE
< D'OBSERVATION DE L'ENSEMBLE
< DE MANDELBROT :
<
#/FLD# PR1 < DROITE,
FSB PR0 < DROITE-GAUCHE,
FDV FNC < (DROITE-GAUCHE)/512,
#/FST# DELTAR < SOIT LA LARGEUR REELLE...
#/FLD# PI1 < HAUT,
FSB PI0 < HAUT-BAS,
FDV FNL < (HAUT-BAS)/512,
#/FST# DELTAI < SOIT LA HAUTEUR REELLE...
<
<
< G E N E R A T I O N D E L ' I M A G E :
<
<
GEN69: EQU $
CPZ IBANDE < GENERE-T'ON UNE BANDE ???
JNE GEN69N < OUI, PAS D'EFFACEMENT...
CPZ IERASE < FAUT-IL EFFACER ???
JE GEN69N < NON...
IF NEXIST-K,,XEIF%,
IF ATTENTION : LE TEST CI-DESSUS EST IDIOT !!!
XEIF%: VAL ENDIF
<
< EFFACEMENT DE L'ECRAN :
<
XWOR%1: VAL NIV256=K
IF BIT>XWOR%1-NIV256,,XWOR%,
IF ATTENTION : LE CALCUL DU MASQUE SELECTANT TOUS
IF LES PLANS EST ABSURDE !!!
XWOR%: VAL ENDIF
LAI NIV256-MASK)MOCD
STA MCDAJ
LA ARPLAN < (A)=ADRESSE DU REGISTRE DE SELECTION...
BSR APWCDA < ET ON SELECTIONNE TOUS LES PLANS...
LAI ERASE
STA MCDAJ
LA ARCMD
BSR APWCDA < EFFACEMENT DE L'ECRAN, ET REINITIALISA-
< TION DE TOUS LES REGISTRES...
LAD TEMPO
SVC < ET ON FAIT UN PETIT DODO...
LAI XCTRL1
STA MCDAJ
LA ACTRL1
BSR APWCDA < INITIALISATION DE 'CTRL1'.
LAI XCTRL2
STA MCDAJ
LA ACTRL2
BSR APWCDA < INITIALISATION DE 'CTRL2'.
<
< RECUPERATION DE L'IMAGE :
<
GEN69N: EQU $
LY VECTNL < (Y)=PARTIE IMAGINAIRE,
GEN01: EQU $
LX VECTNC < (X)=PARTIE REELLE.
GEN02: EQU $
PSR X,Y < SAUVEGARDE DE (REELLE,IMAGINAIRE)...
<
< INITIALISATION DE LA TRACE
< DES "TRAJECTOIRES" :
<
CPZ ITRACE < FAUT-IL TRACER LES "TRAJECTOIRES" ???
JE GEN60 < NON...
IF NEXIST-K,,XEIF%,
IF ATTENTION : LE TEST CI-DESSUS EST IDIOT !!!
XEIF%: VAL ENDIF
LR X,A < OUI :
SLLS XXDEDX
STA VECGX2 < INITIALISATION DU
LR Y,A
SLLS XXDEDY
STA VECGY2 < VECTEUR A TRACER.
LA NTRACE
STA VECTNI < ET DU NIVEAU INITIAL...
GEN60: EQU $
<
< PASSAGE DES COORDONNEES
< ECRAN (X,Y) AU NOMBRE
< COMPLEXE 'C' COURANT :
<
LR X,A < REELLE,
FLT
FMP DELTAR < MISE DANS LA FENETRE,
FAD PR0 < ET TRANSLATION,
#/FST# CR < SOIT LA PARTIE REELLE DE 'C'.
LR Y,A < IMAGINAIRE,
FLT
FMP DELTAI < MISE DANS LA FENETRE,
FAD PI0 < ET TRANSLATION,
#/FST# CI < SOIT LA PARTIE IMAGINAIRE DE 'C'.
<
< INITIALISATION DU CUMUL 'Z' :
<
#/FLD# F0R
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
#/FST# ZR
#/FLD# F0I
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
#/FST# ZI
CPZ IJULIA < QUEL EST L'ENSEMBLE A CONSTRUIRE ???
JE GEN70 < 'MANDELBROT' : LES INITIALISATIONS SONT
< DONC BONNES.
IF NEXIST-K,,XEIF%,
IF ATTENTION : LE TEST PRECEDENT EST IDIOT !!!
XEIF%: VAL ENDIF
<
< CAS DE L'ENSEMBLE DE 'JULIA', IL
< FAUT PERMUTER (CR,CI) ET (ZR,ZI) :
<
#/FLD# ZR < ZR,
PSR A,B
#/FLD# ZI < ZI,
PSR A,B
#/FLD# CR
#/FST# ZR < ZR <-- CR,
#/FLD# CI
#/FST# ZI < ZI <-- CI,
PLR A,B
#/FST# CI < CI <-- ANCIEN ZI,
PLR A,B
#/FST# CR < CR <-- ANCIEN ZR.
GEN70: EQU $
<
< ITERATION DE LA TRANSFORMATION
< Z <-- Z**2+C :
<
NIVCUR:: VAL XXN255 < NIVEAU DE MARQUAGE DU CURSEUR.
LIMITE:: VAL NIVCUR+Z-I < NOMBRE D'ITERATIONS MAXIMAL ACCEPTE.
< (LIMITE A CAUSE DU CURSEUR...)
LRM X
WORD LIMITE < (X)=NOMBRE D'ITERATIONS.
GEN03: EQU $
#/FLD# ZI < ZI,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
FMP ZI < ZI**2,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
#/FST# FWORK < ET SAVE...
#/FLD# ZR < ZR,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
FMP ZR < ZR**2,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
FSB FWORK < ZR**2-ZI**2, SOIT LA PARTIE REELLE DU
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
< CARRE DU NOMBRE COMPLEXE (ZR,ZI),
PSR A,B < ET SAVE...
#/FLD# ZR < ZR,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
FMP ZI < ZR*ZI,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
FMP F2 < 2*ZR*ZI, SOIT LA PARTIE IMAGINAIRE DU
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
< CARRE DU NOMBRE COMPLEXE (ZR,ZI),
FAD CI
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
#/FST# ZI < ET ITERATION :
PLR A,B
FAD CR
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
#/FST# ZR < Z <-- Z**2+C...
CPZ ILAMBD < FAUT-IL MULTIPLIER PAR 'LAMBDA' ???
JE GEN69L < NON...
IF NEXIST-K,,XEIF%,
IF ATTENTION : LE TEST CI-DESSUS EST IDIOT !!!
XEIF%: VAL ENDIF
FMP LAMBDR < ZR*LR,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
#/FST# FWORK < ET SAVE...
#/FLD# ZI < ZI,
FMP LAMBDI < ZI*LI,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
FNEG < -ZI*LI,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
FAD FWORK < ZR*LR-ZI*LI,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
PSR A,B < ET SAVE LA FUTURE PARTIE REELLE...
#/FLD# ZR < ZR,
FMP LAMBDI < ZR*LI,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
#/FST# FWORK < ET SAVE...
#/FLD# ZI < ZI,
FMP LAMBDR < ZI*LR,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
FAD FWORK < LR*ZI+LI*ZR,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
#/FST# ZI < ET ITERATION :
PLR A,B
#/FST# ZR < Z <-- LAMBDA*(Z**2+C).
GEN69L: EQU $
<
< TRACE EVENTUELLE DE LA "TRAJECTOIRE"
< DE LA TRANSFORMATION (ON MARQUE LE
< CHAINAGE (Z(N),(Z(N+1))) :
<
CPZ ITRACE < FAUT-IL TRACER LES "TRAJECTOIRES" ???
JE GEN61 < NON...
IF NEXIST-K,,XEIF%,
IF ATTENTION : LE TEST CI-DESSUS EST IDIOT !!!
XEIF%: VAL ENDIF
PSR A,B < SAVE 'ZR'.
LA VECTNI
AD PTRACE
STA VECTNI < NIVEAU DE TRACE DU VECTEUR COURANT.
LA VECGX2
LB VECGY2
STB VECGY1 < ET
STA VECGX1 < CHAINAGE DE L'ORIGINE...
#/FLD# ZR
FSB PR0
FDV DELTAR
FIX
SLLS XXDEDX
STA VECGX2 < GENERATION DE LA
#/FLD# ZI
FSB PI0
FDV DELTAI
FIX
SLLS XXDEDY
STA VECGY2 < NOUVELLE EXTREMITE...
BSR AVE512 < ET TRACE DE LA "TRAJECTOIRE"...
PLR A,B < RESTAURE 'ZR'...
GEN61: EQU $
<
< TEST DE CONVERGENCE :
<
FMP ZR < ZR**2,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
#/FST# FWORK < ET SAVE...
#/FLD# ZI < ZI,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
FMP ZI < ZI**2,
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
FAD FWORK < ZR**2+ZI**2, SOIT LE CARRE DU MODULE
NLS
IF XREDUC-EXIST,XEIF%9,,XEIF%9
LST
BSR AREDUC < SIMULATION D'UN MANQUE DE PRECISION
< DANS LES CALCULS...
NLS
XEIF%9: VAL ENDIF
LST
< DU NOMBRE COMPLEXE (ZR,ZI).
FCAM WMODUL < EST-ON DANS OU HORS DE L'ENSEMBLE ???
JGE GEN04 < ON VIENT D'EN SORTIR...
JDX GEN03 < A PRIORI ON Y RESTE, ON CONTINUE DONC
< L'ITERATION DE : Z <-- Z**2+C...
ADRI I,X < POUR RETOMBER SUR NOS PIEDS...
GEN04: EQU $
IF NEXIST-K,,XEIF%,
IF ATTENTION : LE TEST QUI SUIT EST IDIOT !!!
XEIF%: VAL ENDIF
CPZ IRAYON < FAUT-IL TRACER LES RAYONS ???
< (NOTA : ON APPELLE "RAYON" LES ARGUMENTS
< TETA=ARCTG(ZI/ZR) DES NOMBRES COMPLEXES
< OBTENUS EN FIN D'ITERATION.
JE GEN80 < NON, LE NIVEAU DE MARQUAGE SERA LE NOMBRE
< D'ITERATIONS.
<
< OUI, LA COULEUR DE MARQUAGE
< SERA LE "RAYON" :
<
FCMZ ZR < LA TANGENTE NE SERAIT-ELLE PAS INFINIE ??
JNE GEN81 < NON...
#/FLD# ATGPS2 < OUI, L'ARGUMENT VAUT DONC +/- PI/2.
FCMZ ZI < "+" OU "-" ???
JGE GEN82 < +PI/2.
FNEG < -PI/2,
FAD DEUXPI < OU 3*PI/2...
JMP GEN82 < VERS LE CALCUL DU NIVEAU...
GEN81: EQU $
#/FLD# ZI < 'ZR' N'EST PAS NUL,
FDV ZR < ON CALCULE DONC LA TANGENTE DE L'ARGUMENT
FABS < AFIN DE CALCULER L'ARC-TANGENTE DANS
< LE SEGMENT (0,PI/2)...
BSR AARCTG < PUIS L'ARC-TANGENTE.
FCMZ ZR
JGE GEN83
FCMZ ZI
JGE GEN84
FAD PI < ZR<0 ET ZI<0 : PI+ARCTG...
JMP GEN89
GEN84: EQU $
FSB PI
FNEG < ZR<0 ET ZI>=0 : PI-ARCTG...
JMP GEN89
GEN83: EQU $
FCMZ ZI
JGE GEN85
FSB DEUXPI
FNEG < ZR>=0 ET ZI<0 : 2*PI-ARCTG...
JMP GEN89
GEN85: EQU $ < ZR>=0 ET ZI>=0 : ARCTG...
GEN89: EQU $
GEN82: EQU $
FDV DEUXPI < QUE L'ON PASSE DE 'RADIANS' EN NOMBRE
< DE TOURS,
FMP F255 < ET QUE L'ON CONVERTIT EN NIVEAU...
BSR AROND
JMP GEN86 < VERS SA MISE EN PLACE...
<
< MARQUAGE DES POINTS AVEC
< LE NOMBRE D'ITERATIONS :
<
GEN80: EQU $
IF Z-I,,XEIF%,
IF ATTENTION : CE QUI SUIT EST IDIOT !!!
XEIF%: VAL ENDIF
ADRI -Z,X < AFIN DE CALCULER UN NIVEAU DE GRIS...
LR X,A < (A)=NIVEAU DE GRIS DU POINT COURANT,
GEN86: EQU $
PLR X,Y < (X,Y)=POINT COURANT,
<
< MARQUAGE DU POINT (X,Y) :
<
PSR X,Y < ON LE SAUVE...
STA NIVOC < AINSI QUE LE NIVEAU COURANT...
LR X,B < (B)=COORDONNEE 'X'.
LX SIZEY < (X)=HAUTEUR DES POINTS.
GEN10: EQU $
PSR B,X
LX SIZEX < (X)=LARGEUR DES POINTS.
GEN11: EQU $
LR B,A < (A)=COORDONNEE 'X' ET VALIDATION :
JAL GEN12 < HORS-ECRAN...
CP VECTNC
JG GEN12 < HORS-ECRAN...
LR Y,A < (A)=COORDONNEE 'Y' ET VALIDATION :
JAL GEN12 < HORS-ECRAN...
CP VECTNL
JG GEN12 < HORS-ECRAN...
LA NIVOC < LE POINT COURANT EST DANS L'ECRAN :
< (A)=NIVEAU A MARQUER...
XR B,X
<
< CHOIX DU MODE DE GENERATION :
<
CPZ IBANDE < EN FAIT DOIT-ON ECRIRE UNE BANDE ???
JE GEN21 < NON...
<
< OUI, GENERATION D'UNE BANDE :
<
PSR A,X
LX IBUFMT < (X)=INDEX DE L'OCTET COURANT,
STBY &ABUFMT < (A)=OCTET COURANT...
ADRI I,X < ET PREPARATION DE
STX IBUFMT < L'ACCES SUIVANT...
<
< TEST DE L'ETAT DU BUFFER :
<
LR X,A < (A)=INDEX COURANT :
CP ZBUFMT < LE BUFFER A-T'IL ETE VIDE (OU EST-CE
< L'ETAT INITIAL) ???
JL GEN31 < NON...
<
< CAS OU LE BUFFER EST PLEIN :
<
GEN32: EQU $
LAD DEMMT < (A)=ADRESSE DE LA DEMANDE,
SVC < QUE L'ON ENVOIE...
JE GEN33 < OK...
QUIT XXQUIT < E R R E U R D ' A S S I G N A T I O N..
JMP GEN32 < ET ON RE-TENTE...
GEN33: EQU $
IC DEMMT+ARGESC < PREPARATION DE L'ADRESSE DU BLOC SUIVANT,
STZ IBUFMT < (A)=INDEX DU PREMIER OCTET.
GEN31: EQU $
PLR A,X
JMP GEN20 < THAT'S ALL...
<
< NON, ON GENERE UNE IMAGE :
<
GEN21: EQU $
BSR APOINT < MARQUAGE DU POINT (X,Y) AVEC LE
< NIVEAU (A)...
GEN20: EQU $
XR B,X
GEN12: EQU $
ADRI I,B < BALAYAGE HORIZONTAL...
JDX GEN11
PLR B,X < RESTAURATION DE L'ABSCISSE (B) DE DEBUT
< DE LIGNE...
ADRI I,Y < BALAYAGE VERTICAL...
JDX GEN10
PLR X,Y < ET RESTAURATION DU POINT COMPLEXE
< COURANT...
<
< ARRET EVENTUEL APRES CHAQUE POINT :
<
CPZ IQUITR < FAUT-IL S'ARRETER ???
JE GEN62 < NON...
IF NEXIST-K,,XEIF%,
IF ATTENTION : LE TEST CI-DESSUS EST IDIOT !!!
XEIF%: VAL ENDIF
QUIT XXQUIT < OUI...
GEN62: EQU $
<
< PASSAGE AU POINT (X,Y) ET
< DONC AU NOMBRE COMPLXE 'C' SUIVANT :
<
LR X,A
SB PASIX < PROGRESSION REELLE,
LR A,X
JAL GEN02X < OUI...
BR AGEN02 < NON...
GEN02X: EQU $
LR Y,A < OUI...
SB PASIY < PROGRESSION IMAGINAIRE,
LR A,Y
JAL GEN01X < OUI...
BR AGEN01 < NON...
GEN01X: EQU $
<
< OUI, TRAITEMENT DE FIN...
<
CPZ IQUIT < FAUT-IL S'ARRETER ???
JE GEN410 < NON...
IF EXIST-K,XEIF%,,XEIF%
IF ATTENTION : LE TEST CI-DESSUS EST IDIOT !!!
XEIF%: VAL ENDIF
QUIT XXQUIT < OUI...
GEN410: EQU $
CPZ IBANDE < A-T'ON GENERE UNE BANDE ???
JNE GEN400 < OUI, PAS D'ECRITURE VIDEO...
CPZ IVIDEO < FAUT-IL ECRIRE ???
JE GEN400 < NON...
IF EXIST-K,XEIF%,,XEIF%
IF ATTENTION : LE TEST CI-DESSUS EST IDIOT !!!
XEIF%: VAL ENDIF
PSR X < OUI :
LAD DEMVIW
SVC < ON ECRIT L'IMAGE COURANTE...
LAD DEMVIR
SVC < ET ON ATTEND L'ACQUITTEMENT...
PLR X
GEN400: EQU $
<
< PASSAGE A L'IMAGE SUIVANTE :
<
PLR X < (X)=NOMBRE D'IMAGES A GENERER...
JDX INT02
CPZ IBANDE < A-T'ON GENERE UNE BANDE ???
JE GEN41 < NON...
LAD DEMMTM
SVC < OUI, ON ECRIT UN 'TAPE-MARK'...
GEN41: EQU $
QUIT XXQUIT < C'EST FINI...
BR ADEB9 < ET ON ITERE EVENTUELLEMENT...
<
< INTERPOLATION :
<
INT02: EQU $
#/FLD# PR0 < C,
FSB PR0A < C-A,
FMP COEFR0 < (C-A)*K,
FAD PR0A < (C-A)*K+A,
#/FST# PR0 < NOUVELLE LIMITE REELLE INFERIEURE...
#/FLD# PR1 < C,
FSB PR1A < C-A,
FMP COEFR1 < (C-A)*K,
FAD PR1A < (C-A)*K+A,
#/FST# PR1 < NOUVELLE LIMITE REELLE SUPERIEURE...
#/FLD# PI0 < C,
FSB PI0A < C-A,
FMP COEFI0 < (C-A)*K,
FAD PI0A < (C-A)*K+A,
#/FST# PI0 < NOUVELLE LIMITE IMAGINAIRE INFERIEURE...
#/FLD# PI1 < C,
FSB PI1A < C-A,
FMP COEFI1 < (C-A)*K,
FAD PI1A < (C-A)*K+A,
#/FST# PI1 < NOUVELLE LIMITE IMAGINAIRE SUPERIEURE...
BR AINIT1 < ET ON PASSE A L'IMAGE SUIVANTE...
<
<
< E N T R Y A L T - M O D E :
<
<
DEBUT5: EQU $
QUIT XXQUIT < A T T E N T E ...
LRM C,L,K < ON REINITIALISE 'C', 'L' ET 'K' AU CAS
< D'UNE RE-ENTREE PAR UN 'ALT-MODE'...
WORD COM+DEPBAS < 'C',
WORD LOC+DEPBAS < 'L',
WORD STACK-DEPILE < 'K'.
<
< GESTION DU CURSEUR GRAPHIQUE :
<
CURS01: EQU $
LAD OG
SVC 0 < OPEN GRAPHIQUE.
LAD CU
SVC 0 < MISE EN FONCTION CURSEUR.
LAD LCU
SVC 0 < LECTURE DU CURSEUR.
<
< PASSAGE DE L'ESPACE GRAPHIQUE
< A L'ESPACE MOYENNE DEFINITION :
<
LA CURSOY < Y(CURSEUR).
MP C4 < POUR ATTEINDRE
DV C3 < TOUTE LA VIDEO...
SLRS SIZYVI/XL512=K < REDUCTION VIDEO.
LR A,Y < Y=Y(CURSEUR VIDEO).
LA CURSOX < X(CURSEUR).
SLRS SIZXVI/XC512=K < REDUCTION VIDEO.
LR A,X < X=X(CURSEUR VIDEO).
LBY CURSOR < A=COMMANDE ASSOCIEE.
<
< ANALYSE DE LA COMMANDE :
<
< COMMANDES RECONNUES :
<
< C : MARQUAGE SEUL DU CURSEUR,
< F : MEMORISATION DE LA FENETRE D'ARRIVEE REDUITE
< AU POINT COURANT (X,Y),
< G : VERS LE DEBUT DU PROCESSUS DE GENERATION...
<
CPI "C"
JNE CURS03 < ???
<
< MARQUAGE DU CURSEUR SEUL :
<
LAI NIVCUR
BSR APOINT < MARQUAGE DU POINT (X,Y) AVEC LE NIVEAU
< MAXIMAL...
JMP CURS01 < ET ON ITERE LE CURSEUR...
CURS03: EQU $
CPI "F"
JNE CURS02 < ???
<
< MEMORISATION DE LA FENETRE
< D'ARRIVEE (IDENTIQUE ET RE-
< DUITE AU POINT VISE) :
<
LR X,A < X,
FLT
FMP DELTAR < X*(DROITE-GAUCHE)/512,
FAD PR0 < GAUCHE+X*(DROITE-GAUCHE)/512,
#/FST# PR0A < SOIENT LES LIMITES INFERIEURES
#/FST# PR1A < ET SUPERIEURES REELLES.
LR Y,A < Y,
FLT
FMP DELTAI < Y*(HAUT-BAS)/512,
FAD PI0 < BAS+Y*(HAUT-BAS)/512,
#/FST# PI0A < SOIENT LES LIMITES BASSES
#/FST# PI1A < ET HAUTES IMAGINAIRES.
JMP CURS01 < ET ON ITERE LE CURSEUR...
CURS02: EQU $
CPI "G"
JNE CURS01 < ???
<
< LANCEMENT DE LA GENERATION
< DE L'ENSEMBLE :
<
BSR AGOTO
WORD DEBUT4 < (A)=ADRESSE D'ITERATION SUR ALT-MODE...
PAGE
<
<
< U P D A T E S :
<
<
$EQU PR0D
FLOAT -2.0 < A GAUCHE DE LA FENETRE DE DEPART,
$EQU PR1D
FLOAT 0.5 < A DROITE DE LA FENETRE DE DEPART.
$EQU PI0D
FLOAT -1.25 < EN BAS DE LA FENETRE DE DEPART,
$EQU PI1D
FLOAT 1.25 < EN HAUT DE LA FENETRE DE DEPART.
$EQU NIMAGE
WORD W < NOMBRE D'IMAGES A GENERER.
$EQU EPSI
FLOAT 0.000010 < EPSILON DE CALCUL DE 'COEF'.
<
< DEFINITION DE LA FENETRE D'ARRIVEE ('NUMFAR') :
<
FAR01:: VAL K < FENETRE D'ARRIVEE STANDARD.
FAR02:: VAL '0@@@@+I < FENETRE D'ARRIVEE HOMOTHETIQUE NON ROTEE.
FAR03:: VAL '0@@@@+I < FENETRE D'ARRIVEE DANS LES FILAMENTS.
FARNN:: VAL '0@@@@ < DERNIERE FENETRE...
NUMFAR: @
XWOR%1: VAL KOLF=FMASK+KOLTES=FVAL
XWOR%1: VAL KOLC=FMASK+KDP=FVAL?XWOR%1
XWOR%2: VAL KOLTED=FMASK+KOL0=FVAL
XWOR%2: VAL KOLTEF=FMASK+KOL0+KOLON=FVAL?XWOR%2
XWOR%3: VAL XWOR%2=XWOR%1-KOL0 < LONGUEUR DU SYMBOLE COURANT...
XWOR%4: VAL MSYMBI=FMASK+KOL0=FVAL
XWOR%4: VAL MSYMBL=FMASK+XWOR%3=FVAL?XWOR%4
XWOR%5: VAL XWOR%4=FCSYMT < ETAT DU SYMBOLE 'NUMFAR'...
XWOR%6: VAL XWOR%5=FCSIGN
XWOR%7: VAL XWOR%5(MSYMBN)MSYMBN=FCSIGN
IF XWOR%6*XWOR%7,XEIF%,,XEIF%
NUMFAR:: VAL FARNN < DERNIERE FENETRE A PRIORI...
XEIF%: VAL ENDIF
IF NUMFAR-FAR01,XEIF%,,XEIF%
$EQU PR0A
FLOAT -0.73000 < A GAUCHE DE LA FENETRE D'ARRIVEE,
$EQU PR1A
FLOAT -0.73000 < A DROITE DE LA FENETRE D'ARRIVEE.
$EQU PI0A
FLOAT 0.22429 < EN BAS DE LA FENETRE D'ARRIVEE,
$EQU PI1A
FLOAT 0.22429 < EN HAUT DE LA FENETRE D'ARRIVEE.
XEIF%: VAL ENDIF
IF NUMFAR-FAR02,XEIF%,,XEIF%
$EQU PR0A
FLOAT -1.792 < A GAUCHE DE LA FENETRE D'ARRIVEE,
$EQU PR1A
FLOAT -1.745 < A DROITE DE LA FENETRE D'ARRIVEE.
$EQU PI0A
FLOAT -0.25 < EN BAS DE LA FENETRE D'ARRIVEE,
$EQU PI1A
FLOAT 0.25 < EN HAUT DE LA FENETRE D'ARRIVEE.
XEIF%: VAL ENDIF
IF NUMFAR-FAR03,XEIF%,,XEIF%
$EQU PR0A
FLOAT -0.234254 < A GAUCHE DE LA FENETRE D'ARRIVEE,
$EQU PR1A
FLOAT -0.234254 < A DROITE DE LA FENETRE D'ARRIVEE.
$EQU PI0A
FLOAT 0.828110 < EN BAS DE LA FENETRE D'ARRIVEE,
$EQU PI1A
FLOAT 0.828110 < EN HAUT DE LA FENETRE D'ARRIVEE.
XEIF%: VAL ENDIF
$EQU LAMBDR
FLOAT <W<K<K < PARTIE REELLE DE 'LAMBDA',
$EQU LAMBDI
FLOAT <K<K<K < PARTIE IMAGINAIRE DE 'LAMBDA'.
$EQU F0R
FLOAT <K<K<K < VALEUR INITIALE DU CUMUL
$EQU F0I
FLOAT <K<K<K < DE Z <-- Z**2+I.
PAGE
<
<
< T A B L E D E S S Y M B O L E S :
<
<
IF '00000000000@,XEIF%,,XEIF%
EST
XEIF%: VAL ENDIF
DATE
END DEBUT
Copyright © Jean-François COLONNA, 2022-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2022-2024.