DF'SIF ARCTG' ED'SIF ARCTG' IN0 IDP "SIF ARCTG" PAGE < < A R C T G ( X ). < < ARGUMENT: < A-B = X ARGUMENT (FLOTTANT). < < RESULTAT: < A-B = ARCTG(X) (FLOTTANT), EXPRIME EN RADIANS. < < ATTENTION: < PREVOIR QUELQUES MOTS DANS LA PILE DE L'APPELANT. < < NOTA: < LA METHODE DE CALCUL UTILISEE EST TIREE DE L'OUVRAGE < "CALCUL DES FONCTIONS DE BASE SUR L'IBM-360" - DEPARTEMENT < DE CALCUL ELECTRONIQUE DE L'X, PAR J-M GUILLEMIN < ET D. GRILLOT - AOUT 67. < LOCAL LNF:: VAL 2 < LONGUEUR MOTS D'UN NOMBRE FLOTTANT. ATGLOC: EQU $ ATGT1: DZS LNF < ZONE DE TRAVAIL 1. ATGT2: DZS LNF < ZONE DE TRAVAIL 2. ATGT3: DZS LNF < ZONE DE TRAVAIL 3. ATGSDX: DZS 1 < 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: FLOAT 1.0 ATGR3: FLOAT 1.7320508 < ^^ RACINE DE 3. < COEFFICIENTS P1, P2, P3, P4 DU POLYNOME: ATGP1: FLOAT 0.6031058 ATGP2: FLOAT 0.0516045 ATGP3: FLOAT 0.5591371 ATGP4: FLOAT 1.4087812 PROG ARCTG: EQU $ < E N T R Y ' A R C T G ( X ) '. < SAUVEGARDES ET INITIALISATIONS. PSR X,L LX 'FF80,C < A CAUSE DU BLOC FLOTTANT. PSR X LRM L WORD ATGLOC+'80 STZ ATGSDX < X ARGUMENT POSITIF OU NUL A PRIORI. FCAZ JGE ARCTG1 DC ATGSDX < X ARGUMENT NEGATIF. ARCTG1: EQU $ FABS < U = ABS(X). FCAM ATGUN JGE ARCTG2 < U < 1 : J RECOIT 0. LXI 0 JMP ARCTG3 ARCTG2: EQU $ < U >= 1 : J RECOIT 2 ET U RECOIT 1/U. LXI 2 < 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 2,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 1,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 -2,X CPZR X JE ARCTG6 JL ARCTG7 ADRI -1,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 STX 'FF80,C < C'ETAIT A CAUSE DU BLOC FLOTTANT. PLR X,L RSR :F :F < <<'SIF ARCTG' DF'SIF COS' ED'SIF COS' IN0 IDP "SIF COS" < < SOUS-PROGRAMME DE CALCUL DU COSINUS < TABLE DE TRANSMISSION POINTEE PAR REGISTRE A < - MOT1 ET MOT2 : X EN FLOTTANT < - MOT3 ET MOT4 : Y EN FLOTTANT(RESULTAT) < DEF COS LOCAL ZZZ080: EQU $ ZZZ081: DZS 2 < NB EN FLOTTANT ZZZ082: DZS 2 ZZZ083: DZS 1 < SIGNE ZZZ084: WORD '6403;'87ED < 2*PI ZZZ085: WORD '6402;'87ED < PI ZZZ086: WORD '6401;'87ED < PI/2 ZZZ087: EQU ZZZ086 < CSTES DU POLYNOME ZZZ088: WORD 'AD00;'5110 ZZZ089: WORD '51FD;'9A2C ZZZ090: WORD 'B3F9;'6CCE ZZZ091: WORD '4FF4;'6BDD WORD ZZZ080+'80 PROG COS: EQU $ PSR A,B,L,W LRP L < INIT. DE LA BASE L LB -2,L LR B,L LR A,W < @ TABLE PARAM. FLD 0,W FSB ZZZ086 FNEG FST ZZZ081 STZ ZZZ083 JAGE ZZZ092 FNEG FST ZZZ081 IC ZZZ083 ZZZ092: EQU $ FDV ZZZ084 FIX FLT FMP ZZZ084 FSB ZZZ081 FNEG FCAM ZZZ085 JL ZZZ093 FSB ZZZ085 IC ZZZ083 ZZZ093: EQU $ FCAM ZZZ086 JL ZZZ094 FSB ZZZ085 FNEG ZZZ094: EQU $ FDV ZZZ086 FST ZZZ081 FMP ZZZ081 FST ZZZ082 FMP ZZZ091 FAD ZZZ090 FMP ZZZ082 FAD ZZZ089 FMP ZZZ082 FAD ZZZ088 FMP ZZZ082 FAD ZZZ087 FMP ZZZ081 DC ZZZ083 JNE ZZZ095 FNEG ZZZ095: EQU $ FST 2,W PLR A,B,L,W RSR :F :F < <<'SIF COS' DF'SIF COSINUS' ED'SIF COSINUS' IN0 IDP "SIF COSINUS" PAGE < < < C A L C U L D ' U N S I N U S E T D ' U N C O S I N U S : < < < ARGUMENT : < A=ADRESSE D'UNE TABLE DE 4 MOTS CONTENANT < L'ANGLE TETA, PUIS A LA SUITE LE RESUL- < TAT SIN(TETA). < < DSEC ARGSIN: EQU $ XXTETA: DZS 2 < ANGLE TETA ARGUMENT, XXSINU: DZS 2 < RESULTAT SIN(TETA). LOCAL SINLOC: EQU $ XX2322: FLOAT 506 XX2120: FLOAT 420 XX1918: FLOAT 342 XX1716: FLOAT 272 XX1514: FLOAT 210 XX1312: FLOAT 156 XX1110: FLOAT 110 XX0908: FLOAT 72 XX0706: FLOAT 42 XX0504: FLOAT 20 XX0302: FLOAT 6 XXPI: FLOAT 3.1415926 XX2PI: FLOAT 6.2831853 XXPI2: FLOAT 1.5707963 XX3PI2: FLOAT 4.7123889 XXTETB: DZS 2 < TETA ARGUMENT TRANSLATE... XXTETC: DZS 2 < TETA ARGUMENT TRANSLATE AU CARRE. XX0001: FLOAT 1 XXASIN: WORD SIN < PROGRAMME DE CALCUL DU SINUS. PROG USE W,ARGSIN < < < C A L C U L D U S I N U S : < < SIN: EQU $ PSR A,B,L,W LRM L WORD SINLOC+'80 < BASE L, LR A,W < BASE W SUR L'ARGUMENT. < < TRANSLATION DE TETA : < FLD XXTETA FDV XX2PI < TETA/(2*PI). FIX FLT FSB XXTETA FNEG < TETA MODULO 2*PI. FCAM XXPI2 JLE SIN1 < 0<=TETB<=(PI/2). FSB XXPI < TETB <-- TETB-PI. FCAM XXPI2 JLE SIN2 < (PI/2)<TETB<=(3*PI/2). FSB XXPI < TETB <-- TETB-PI. FNEG SIN2: EQU $ FNEG SIN1: EQU $ FST XXTETB < ET VOILA LE TETA TRANSLATE... FMP XXTETB FST XXTETC < TETC=TETB*TETB. < < CALCUL DE LA SERIE : < FNEG FDV XX2322 FAD XX0001 FMP XXTETC FDV XX2120 FSB XX0001 FMP XXTETC FDV XX1918 FAD XX0001 FMP XXTETC FDV XX1716 FSB XX0001 FMP XXTETC FDV XX1514 FAD XX0001 FMP XXTETC FDV XX1312 FSB XX0001 FMP XXTETC FDV XX1110 FAD XX0001 FMP XXTETC FDV XX0908 FSB XX0001 FMP XXTETC FDV XX0706 FAD XX0001 FMP XXTETC FDV XX0504 FSB XX0001 FMP XXTETC FDV XX0302 FAD XX0001 FMP XXTETB FST XXSINU < ET VOILA LE TRAVAIL... FABS FCAM XX0001 < VALIDATION DU RESULTAT... JLE SIN3 < OK, INFERIEUR A 1... WORD '1E16 < ???? SIN3: EQU $ PLR A,B,L,W RSR < < < C A L C U L D U C O S I N U S : < < COS: EQU $ PSR A,B,L,W LRM L WORD SINLOC+'80 < BASE L, LR A,W < W BASE LES ARGUMENTS. FLD XXTETA PSR A,B < SAUVEGARDE DU TETA ARGUMENT. FLD XXPI2 FSB XXTETA < (PI/2)-TETA. FST XXTETA < NOUVEL ARGUMENT : LR W,A < A=ADRESSE ARGUMENT. BSR XXASIN < CALCUL DE SIN((PI/2)-TETA)=COS(TETA). PLR A,B FST XXTETA < RESTAURATION DU TETA... PLR A,B,L,W RSR :F :F < <<'SIF COSINUS' DF'SIF COTG' ED'SIF COTG' IN0 IDP "SIF COTG" < < SOUS-PROGRAMME DE CALCUL DE LA COTANGENTE < TABLE DE TRANSMISSION POINTEE PAR REGISTRE A < - MOT1 ET MOT2 : X EN FLOTTANT < - MOT3 ET MOT4 : Y EN FLOTTANT(RESULTAT) < DEF COTG LOCAL ZZZ130: EQU $ ZZZ131: DZS 2 < NB EN FLOTTANT ZZZ132: DZS 2 ZZZ146: DZS 2 ZZZ147: WORD '7F7F;'FFFF < +INFINI ZZZ148: WORD '807F;'0001 < -INFINI ZZZ149: WORD ZZZ150 < SP DE CALCUL DU SINUS ZZZ133: DZS 1 < SIGNE ZZZ134: WORD '6403;'87ED < 2*PI ZZZ135: WORD '6402;'87ED < PI ZZZ136: WORD '6401;'87ED < PI/2 ZZZ137: EQU ZZZ136 < CSTES DU POLYNOME ZZZ138: WORD 'AD00;'5110 ZZZ139: WORD '51FD;'9A2C ZZZ140: WORD 'B3F9;'6CCE ZZZ141: WORD '4FF4;'6BDD WORD ZZZ130+'80 < RELAI VERS LE LOCAL PROG COTG: EQU $ PSR A,B,L,W LRP L < INIT. DE LA BASE L LB -2,L LR B,L LR A,W < @ TABLE PARAM. FLD 0,W BSR ZZZ149 FST ZZZ146 FLD 0,W FSB ZZZ136 FNEG BSR ZZZ149 FCMZ ZZZ146 JE ZZZ151 FDV ZZZ146 ZZZ153: EQU $ FST 2,W PLR A,B,L,W RSR ZZZ151: EQU $ FCAZ JL ZZZ152 FLD ZZZ147 JMP ZZZ153 ZZZ152: EQU $ FLD ZZZ148 JMP ZZZ153 ZZZ150: EQU $ FST ZZZ131 STZ ZZZ133 JAGE ZZZ142 FNEG FST ZZZ131 IC ZZZ133 ZZZ142: EQU $ FDV ZZZ134 FIX FLT FMP ZZZ134 FSB ZZZ131 FNEG FCAM ZZZ135 JL ZZZ143 FSB ZZZ135 IC ZZZ133 ZZZ143: EQU $ FCAM ZZZ136 JL ZZZ144 FSB ZZZ135 FNEG ZZZ144: EQU $ FDV ZZZ136 FST ZZZ131 FMP ZZZ131 FST ZZZ132 FMP ZZZ141 FAD ZZZ140 FMP ZZZ132 FAD ZZZ139 FMP ZZZ132 FAD ZZZ138 FMP ZZZ132 FAD ZZZ137 FMP ZZZ131 DC ZZZ133 JNE ZZZ145 FNEG ZZZ145: EQU $ RSR END :F :F < <<'SIF COTG' DF'SIF EXP' ED'SIF EXP' IN0 IDP "SIF EXP" < < SOUS-PROGRAMME DE CALCUL DE L'EXPONENTIELLE < TABLE DE TRANSMISSION POINTEE PAR REGISTRE A < - MOT1 ET MOT2 : X EN FLOTTANT < - MOT3 ET MOT4 : Y EN FLOTTANT(RESULTAT) < - MOT5 : CODE RETOUR (0-BON;1-ERREUR) < DEF EXP LOCAL ZZZ020: EQU $ ZZZ021: DZS 2 < NB EN FLOTTANT ZZZ022: DZS 2 ZZZ023: DZS 2 ZZZ024: WORD '5C01;'551E < LOG A BASE 2 DE E ZZZ025: DZS 1 < RELEVE DE L'EXPOSANT ZZZ026: WORD '4001;'0000 < 1.0 ZZZ027: WORD '4002;'0000 < 2.0 ZZZ028: WORD '5707;'6AE1 < CSTES DU POLYNOME ZZZ029: WORD '46FC;'FA70 ZZZ030: WORD 'BA0F;'5917 ZZZ031: WORD '4F04;'A303 ZZZ032: WORD 'FF00 < MASQUE WORD ZZZ020+'80 < RELAI VERS LE LOCAL PROG EXP: EQU $ < POINT D'ENTREE PSR A,B,L,W LRP L < INIT. DE LA BASE L LB -2,L LR B,L LR A,W < @ TABLE PARAM. STZ 4,W < CODE DE RETOUR A ZERO FLD 0,W < ERREUR SI NB<0 FMP ZZZ024 FST ZZZ023 FIX JV ZZZ038 STA ZZZ025 FLT FCAM ZZZ023 JNV ZZZ033 FLD ZZZ026 FST ZZZ023 JMP ZZZ035 ZZZ033: EQU $ CPZ ZZZ023 JGE ZZZ034 DC ZZZ025 LA ZZZ025 FLT ZZZ034: EQU $ FSB ZZZ023 FNEG FST ZZZ022 FMP ZZZ022 FST ZZZ021 FAD ZZZ028 FST ZZZ023 FLD ZZZ030 FDV ZZZ023 FAD ZZZ021 FMP ZZZ029 FAD ZZZ031 FSB ZZZ022 FST ZZZ023 FLD ZZZ027 FMP ZZZ022 FDV ZZZ023 FAD ZZZ026 FST ZZZ023 ZZZ035: EQU $ SWBR A SARS 8 AD ZZZ025 CPI '7F JG ZZZ038 CPI -'80 JGE ZZZ036 LAI 0 SBT 8 < GENERATION DU 0 FLOTTANT. LBI 0 JMP ZZZ037 ZZZ036: EQU $ ANDI 'FF STA ZZZ025 LA ZZZ023 AND ZZZ032 AD ZZZ025 ZZZ037: EQU $ FST 2,W ZZZ039: EQU $ PLR A,B,L,W RSR ZZZ038: EQU $ LAI 1 < ERREUR STA 4,W JMP ZZZ039 END :F :F < <<'SIF EXP' DF'SIF LOGN' ED'SIF LOGN' IN0 IDP "SIF LOGN" < < SOUS-PROGRAMME DE CALCUL DE LOGARITHME NEPERIEN < TABLE DE TRANSMISSION POINTEE PAR REGISTRE A < - MOT1 ET MOT2 : X EN FLOTTANT < - MOT3 ET MOT4 : Y EN FLOTTANT(RESULTAT) < - MOT5 : CODE RETOUR (0-BON;1-ERREUR) < DEF LOGN LOCAL ZZZ000: EQU $ ZZZ001: DZS 2 < NB FLOTTANT ZZZ002: DZS 2 ZZZ003: DZS 2 ZZZ004: WORD '5A00;'8279 < RACINE(2)/2 ZZZ005: WORD '5201;'B046 < CSTES DU DEVELOPPEMENT ZZZ006: WORD '5402;'79B7 ZZZ007: WORD '6A01;'0867 ZZZ008: WORD '4000;'0000 < CSTE 0.5 ZZZ009: WORD '5800;'B90C < CSTE LN(2) ZZZ010: WORD 'FF00 < MASQUE WORD ZZZ000+'80 < RELAI VERS LE LOCAL PROG LOGN: EQU $ < POINT D'ENTREE PSR A,B,Y,L,W < PROTEGER LES REGISTRES UTILES LRP L < INIT. DE LA BASE L LB -2,L LR B,L LR A,W < @ TABLE PARAM. STZ 4,W < CODE DE RETOUR A ZERO FLD 0,W < ERREUR SI NB<0 LR A,Y FCAZ JLE ZZZ011 AND ZZZ010 FST ZZZ003 FAD ZZZ004 FST ZZZ002 LR Y,A SWBR A SARS 8 FLT FST ZZZ001 FLD ZZZ003 FSB ZZZ004 FDV ZZZ002 FST ZZZ003 FMP ZZZ003 FNEG FAD ZZZ007 FST ZZZ002 FLD ZZZ006 FDV ZZZ002 FAD ZZZ005 FMP ZZZ003 FSB ZZZ008 FAD ZZZ001 FMP ZZZ009 FST 2,W JMP ZZZ012 ZZZ011: EQU $ LAI 1 < ERREUR (NB<0) STA 4,W ZZZ012: EQU $ PLR A,B,Y,L,W RSR END :F :F < <<'SIF LOGN' DF'SIF POL-CART' ED'SIF POL-CART' IN0 IDP "SIF POL-CART" SIN @ IF 3='F700,XWOR%,,XWOR% EOT #SIF SINUS# XWOR%: VAL 0 PAGE < < < P A S S A G E P O L A I R E - C A R T E S I E N : < < < ARGUMENT : < A=ADRESSE D'UNE TABLE DEFINI EN DSEC. < < DSEC ARGCAR: EQU $ XXRHO: DZS 2 < RAYON POLAIRE, XXTET: DZS 2 < TETA EN RADIANS, XXFLX: DZS 2 < RESULTAT X, XXFLY: DZS 2 < RESULTAT Y. LOCAL CARLOC: EQU $ XXARG: DZS 4 < ARGUMENT POUR LE SINUS... XXBSIN: WORD SIN < SOUS-PROGRAMME DU SINUS, XXBCOS: WORD COS < SOUS-PROGRAMME DU COSINUS. PROG USE W,ARGCAR CART: EQU $ PSR A,B,L,W LRM L WORD CARLOC+'80 < BASE L, LR A,W < W BASE LES ARGUMENTS. FLD XXTET XWOR%: VAL XXTETA-ARGSIN FST XXARG+XWOR% < TRANSMISSION DE TETA. LAD XXARG < A=ADRESSE ARGUMENT. BSR XXBSIN < CALCUL DU SINUS, XWOR%: VAL XXSINU-ARGSIN FLD XXARG+XWOR% < RECUPERATION DU SINUS... FMP XXRHO FST XXFLY < Y=RHO*SIN(TETA). LAD XXARG < A=ADRESSE ARGUMENT. BSR XXBCOS < CALCUL DU COSINUS, XWOR%: VAL XXSINU-ARGSIN FLD XXARG+XWOR% < RECUPERATION DU COSINUS... FMP XXRHO FST XXFLX < X=RHO*COS(TETA). PLR A,B,L,W RSR :F :F < <<'SIF POL-CART' DF'SIF POLAIRE' ED'SIF POLAIRE' IN0 IDP "SIF POLAIRE" < < SOUS-PROGRAMME DE CALCUL DE COORDONNEES POLAIRES < A PARTIR DE COORDONNEES CARTESIENNES < - MOT1 ET MOT2 : X EN FLOTTANT < - MOT3 ET MOT4 : Y EN FLOTTANT < - MOT5 ET MOT6 : RESULTAT RHO < - MOT7 ET MOT8 : RESULTAT THETA < DEF POL LOCAL ZZZ040: EQU $ ZZZ041: DZS 1 < MAX ZZZ042: WORD 'FF00 < MASQUE ZZZ043: DZS 2 < NB EN FLOTTANT ZZZ044: DZS 2 Z100: DZS 2 ZZZ045: WORD '4A00;'0000 < CSTES ZZZ046: WORD '6CFF;'0000 ZZZ047: WORD '7000;'0000 ZZZ048: WORD '47FF;'544C ZZZ049: WORD ZZZ050 < SS-PROG ZZZ056: WORD '0080;'0000 < ZERO DPI: FLOAT 6.2832 PI: FLOAT 3.1416 PIS2: FLOAT 1.5708 UN: FLOAT 1 PPIS2: FLOAT 1E-2 TC0: WORD '5100;'F3A7 < CSTES POUR ARCTG TC1: WORD '6CFF;'4920 TC2: WORD '6CFB;'6B37 TC3: WORD '5100;'F3AB TC4: WORD '5100;'74D5 TC5: WORD '71FD;'7E2D WORD ZZZ040+'80 < RELAI VERS LE LOCAL PROG POL: EQU $ PSR A,B,X,Y,L,W LRP L < INIT. DE LA BASE L LB -2,L LR B,L LR A,W < @ TABLE PARAM. FLD 0,W < RHO=SQRT(X**2+Y**2) FMP 0,W FST ZZZ043 FLD 2,W FMP 2,W FAD ZZZ043 FCAZ JE ZZZ053 LR A,Y ANDI 'FF SWBR A SARS 1 AD ZZZ056 TBT 8 JNC ZZZ051 RBT 8 STA ZZZ041 LR Y,A AND ZZZ042 FST ZZZ044 FMP ZZZ045 FAD ZZZ046 JMP ZZZ052 ZZZ051: EQU $ STA ZZZ041 LR Y,A ORI 'FF FST ZZZ044 FMP ZZZ047 FAD ZZZ048 ZZZ052: EQU $ BSR ZZZ049 SWBR A BSR ZZZ049 AD ZZZ041 SWBR A ZZZ053: EQU $ FST 4,W FLD 2,W < THETA=ARCTG(Y/X) FDV 0,W JNV Z001 FLD PIS2 FCMZ 2,W JGE Z002 FAD PI Z002: EQU $ FST 6,W PLR A,B,X,Y,L,W RSR Z001: EQU $ FST ZZZ043 LYI 0 LXI 0 FCAZ JNE Z003 FLD ZZZ056 FCMZ 0,W JGE Z002 FLD PI JMP Z002 Z003: EQU $ JG Z004 LYI 1 FNEG FST ZZZ043 Z004: EQU $ FCAM UN JLE Z005 FLD UN FDV ZZZ043 FST ZZZ043 LXI 1 FCAM PPIS2 JL Z009 Z005: EQU $ FMP ZZZ043 FST ZZZ044 FMP TC5 FAD TC4 FMP ZZZ044 FAD TC3 FST Z100 FLD ZZZ044 FMP TC2 FAD TC1 FMP ZZZ044 FAD TC0 FMP ZZZ043 FDV Z100 Z009: EQU $ CPZR X JE Z006 FSB PIS2 ADRI -1,Y Z006: EQU $ CPZR Y JE Z007 FNEG Z007: EQU $ FCMZ 0,W JGE Z008 FAD PI JMP Z002 Z008: EQU $ FCMZ 2,W JGE Z002 FAD DPI JMP Z002 ZZZ050: EQU $ FST ZZZ043 FLD ZZZ044 FDV ZZZ043 FAD ZZZ043 SWBR A AD ZZZ042 RSR END < < SOUS-PROGRAMME DE CALCUL DE COORDONNEES POLAIRES < A PARTIR DE COORDONNEES CARTESIENNES < - MOT1 ET MOT2 : X EN FLOTTANT < - MOT3 ET MOT4 : Y EN FLOTTANT < - MOT5 ET MOT6 : RESULTAT RHO < - MOT7 ET MOT8 : RESULTAT THETA < DEF POL LOCAL ZZZ040: EQU $ ZZZ041: DZS 1 < MAX ZZZ042: WORD 'FF00 < MASQUE ZZZ043: DZS 2 < NB EN FLOTTANT ZZZ044: DZS 2 Z100: DZS 2 ZZZ045: WORD '4A00;'0000 < CSTES ZZZ046: WORD '6CFF;'0000 ZZZ047: WORD '7000;'0000 ZZZ048: WORD '47FF;'544C ZZZ049: WORD ZZZ050 < SS-PROG ZZZ056: WORD '0080;'0000 < ZERO DPI: FLOAT 6.2832 PI: FLOAT 3.1416 PIS2: FLOAT 1.5708 UN: FLOAT 1 PPIS2: FLOAT 1E-2 TC0: WORD '5100;'F3A7 < CSTES POUR ARCTG TC1: WORD '6CFF;'4920 TC2: WORD '6CFB;'6B37 TC3: WORD '5100;'F3AB TC4: WORD '5100;'74D5 TC5: WORD '71FD;'7E2D WORD ZZZ040+'80 < RELAI VERS LE LOCAL PROG POL: EQU $ PSR A,B,X,Y,L,W LRP L < INIT. DE LA BASE L LB -2,L LR B,L LR A,W < @ TABLE PARAM. FLD 0,W < RHO=SQRT(X**2+Y**2) FMP 0,W FST ZZZ043 FLD 2,W FMP 2,W FAD ZZZ043 FCAZ JE ZZZ053 LR A,Y ANDI 'FF SWBR A SARS 1 AD ZZZ056 TBT 8 JNC ZZZ051 RBT 8 STA ZZZ041 LR Y,A AND ZZZ042 FST ZZZ044 FMP ZZZ045 FAD ZZZ046 JMP ZZZ052 ZZZ051: EQU $ STA ZZZ041 LR Y,A ORI 'FF FST ZZZ044 FMP ZZZ047 FAD ZZZ048 ZZZ052: EQU $ BSR ZZZ049 SWBR A BSR ZZZ049 AD ZZZ041 SWBR A ZZZ053: EQU $ FST 4,W FLD 2,W < THETA=ARCTG(Y/X) FDV 0,W JNV Z001 FLD PIS2 FCMZ 2,W JGE Z002 FAD PI Z002: EQU $ FST 6,W PLR A,B,X,Y,L,W RSR Z001: EQU $ FST ZZZ043 LYI 0 LXI 0 FCAZ JNE Z003 FLD ZZZ056 FCMZ 0,W JGE Z002 FLD PI JMP Z002 Z003: EQU $ JG Z004 LYI 1 FNEG FST ZZZ043 Z004: EQU $ FCAM UN JLE Z005 FLD UN FDV ZZZ043 FST ZZZ043 LXI 1 FCAM PPIS2 JL Z009 Z005: EQU $ FMP ZZZ043 FST ZZZ044 FMP TC5 FAD TC4 FMP ZZZ044 FAD TC3 FST Z100 FLD ZZZ044 FMP TC2 FAD TC1 FMP ZZZ044 FAD TC0 FMP ZZZ043 FDV Z100 Z009: EQU $ CPZR X JE Z006 FSB PIS2 ADRI -1,Y Z006: EQU $ CPZR Y JE Z007 FNEG Z007: EQU $ FCMZ 0,W JGE Z008 FAD PI JMP Z002 Z008: EQU $ FCMZ 2,W JGE Z002 FAD DPI JMP Z002 ZZZ050: EQU $ FST ZZZ043 FLD ZZZ044 FDV ZZZ043 FAD ZZZ043 SWBR A AD ZZZ042 RSR END :F :F < <<'SIF POLAIRE' DF'SIF SIN' ED'SIF SIN' IN0 IDP "SIF SIN" < < SOUS-PROGRAMME DE CALCUL DU SINUS < TABLE DE TRANSMISSION POINTEE PAR REGISTRE A < - MOT1 ET MOT2 : X EN FLOTTANT < - MOT3 ET MOT4 : Y EN FLOTTANT(RESULTAT) < DEF SIN LOCAL ZZZ060: EQU $ ZZZ061: DZS 2 < NB EN FLOTTANT ZZZ062: DZS 2 ZZZ063: DZS 1 < SIGNE ZZZ064: WORD '6403;'87ED < 2 PI ZZZ065: WORD '6402;'87ED < PI ZZZ066: WORD '6401;'87ED < PI/2 ZZZ067: EQU ZZZ066 < CSTES DU POLYNOME ZZZ068: WORD 'AD00;'5110 ZZZ069: WORD '51FD;'9A2C ZZZ070: WORD 'B3F9;'6CCE ZZZ071: WORD '4FF4;'6BDD WORD ZZZ060+'80 < RELAI VERS LE LOCAL PROG SIN: EQU $ PSR A,B,L,W LRP L < INIT. DE LA BASE L LB -2,L LR B,L LR A,W < @ TABLE PARAM. FLD 0,W FST ZZZ061 STZ ZZZ063 JAGE ZZZ072 FNEG FST ZZZ061 IC ZZZ063 ZZZ072: EQU $ FDV ZZZ064 FIX FLT FMP ZZZ064 FSB ZZZ061 FNEG FCAM ZZZ065 JL ZZZ073 FSB ZZZ065 IC ZZZ063 ZZZ073: EQU $ FCAM ZZZ066 JL ZZZ074 FSB ZZZ065 FNEG ZZZ074: EQU $ FDV ZZZ066 FST ZZZ061 FMP ZZZ061 FST ZZZ062 FMP ZZZ071 FAD ZZZ070 FMP ZZZ062 FAD ZZZ069 FMP ZZZ062 FAD ZZZ068 FMP ZZZ062 FAD ZZZ067 FMP ZZZ061 DC ZZZ063 JNE ZZZ075 FNEG ZZZ075: EQU $ FST 2,W PLR A,B,L,W RSR :F :F < <<'SIF SIN' DF'SIF SINH' ED'SIF SINH' IN0 IDP "SIF SINH" < < SOUS-PROGRAMME DE CALCUL DU SINUS HYPERBOLIQUE < TABLE DE TRANSMISSION POINTEE PAR REGISTRE A < - MOT1 ET MOT2 : X EN FLOTTANT < - MOT3 ET MOT4 : Y EN FLOTTANT(RESULTAT) < - MOT5 : CODE RETOUR (0-BON;1-ERREUR) < DEF SINH LOCAL ZZZ180: EQU $ ZZZ181: DZS 2 < NB EN FLOTTANT ZZZ182: DZS 2 ZZZ183: DZS 2 ZZZ184: WORD '5C01;'551E < LOG A BASE 2 DE E ZZZ185: DZS 1 < RELEVE DE L'EXPOSANT ZZZ186: WORD '4001;'0000 < 1.0 ZZZ187: WORD '4002;'0000 < 2.0 ZZZ188: WORD '5707;'6AE1 < CSTES DU POLYNOME ZZZ189: WORD '46FC;'FA70 ZZZ190: WORD 'BA0F;'5917 ZZZ191: WORD '4F04;'A303 ZZZ192: WORD 'FF00 < MASQUE WORD ZZZ180+'80 < RELAI VERS LE LOCAL PROG SINH: EQU $ PSR A,B,L,W LRP L < INIT. DE LA BASE L LB -2,L LR B,L LR A,W < @ TABLE PARAM. STZ 4,W < CODE DE RETOUR A ZERO FLD 0,W < ERREUR SI NB<0 FMP ZZZ184 FST ZZZ183 FIX JV ZZZ198 STA ZZZ185 FLT FCAM ZZZ183 JNV ZZZ193 FLD ZZZ186 FST ZZZ183 JMP ZZZ195 ZZZ193: EQU $ CPZ ZZZ183 JGE ZZZ194 DC ZZZ185 LA ZZZ185 FLT ZZZ194: EQU $ FSB ZZZ183 FNEG FST ZZZ182 FMP ZZZ182 FST ZZZ181 FAD ZZZ188 FST ZZZ183 FLD ZZZ190 FDV ZZZ183 FAD ZZZ181 FMP ZZZ189 FAD ZZZ191 FSB ZZZ182 FST ZZZ183 FLD ZZZ187 FMP ZZZ182 FDV ZZZ183 FAD ZZZ186 FST ZZZ183 ZZZ195: EQU $ SWBR A SARS 8 AD ZZZ185 CPI '7F JG ZZZ198 CPI -'80 JGE ZZZ196 LAI 0 SBT 8 < GENERATION DU 0 FLOTTANT... LBI 0 JMP ZZZ197 ZZZ196: EQU $ ANDI 'FF STA ZZZ185 LA ZZZ183 AND ZZZ192 AD ZZZ185 ZZZ197: EQU $ FST ZZZ181 FLD ZZZ186 FDV ZZZ181 FNEG FAD ZZZ181 FDV ZZZ187 FST 2,W ZZZ199: EQU $ PLR A,B,L,W RSR ZZZ198: EQU $ LAI 1 < ERREUR STA 4,W JMP ZZZ199 END :F :F < <<'SIF SINH' DF'SIF SINUS' ED'SIF SINUS' IN0 IDP "SIF SINUS" < < SOUS-PROGRAMME DE CALCUL DU SINUS < TABLE DE TRANSMISSION POINTEE PAR REGISTRE A < - MOT1 ET MOT2 : X EN FLOTTANT < - MOT3 ET MOT4 : Y EN FLOTTANT(RESULTAT) < LOCAL ZSC060: EQU $ ZSC062: DZS 2 < X*X. ZSCZA0: FLOAT 0.7853981 ZSCZA1: FLOAT -0.8074543E-1 ZSCZA2: FLOAT 0.249001E-2 ZSCZA3: FLOAT -0.3595E-4 ZSCZB0: FLOAT 1 ZSCZB1: FLOAT -0.3084242 ZSCZB2: FLOAT 0.1584991E-1 ZSCZB3: FLOAT -0.31888E-3 ZSC4SP: FLOAT 1.2732395 < 4/PI. ZSCZA: WORD 0 ZSCZQ: FLOAT 0 ZSCZR: FLOAT 0 ZSCZS: FLOAT 0 ZSCZM1: FLOAT -1 ZSCZ1: EQU ZSCZB0 PROG COS: EQU $ < ENTRY 'COS'. PSR A,B,L,W LR A,W < W BASE LA DEMANDE... LAI 2 < CAS DU 'COS'. JMP ZSC080 SIN: EQU $ PSR A,B,L,W LR A,W < W BASE LA DEMANDE... LAI 0 < A PRIORI, X>=0... FCMZ 0,W < TEST DU SIGNE DE X ??? JGE ZSC080 < X>=0, LAI 4 < NON, X<0... ZSC080: EQU $ LRM L WORD ZSC060+128 < L=BASE DU LOCAL... STA ZSCZA < A=0, 2, 4 SUIVANT QU'IL S'AGIT DU < 'SIN', DU 'COS'... FLD 0,W < ANGLE ARGUMENT. FABS FMP ZSC4SP PSR A,B < SAUVEGARDE DE 4*ABS(X)/PI FIX FLT FST ZSCZQ < Q=INT(4*ABS(X)/PI), PLR A,B < A,B=4*ABS(X)/PI. FSB ZSCZQ FST ZSCZR < R=4*ABS(X)/PI-Q. FLD ZSCZQ FIX AD ZSCZA ANDI 7 < Q0 = Q + A MODULO 8. JAE ZSC090 < CAS Q0=0, ADRP A JMP ZSC091 < CAS Q0=1, JMP ZSC092 < CAS Q0=2, JMP ZSC093 < CAS Q0=3, JMP ZSC094 < CAS Q0=4, JMP ZSC095 < CAS Q0=5, JMP ZSC096 < CAS Q0=6, ZSC097: EQU $ < CAS Q0=7. FLD ZSCZ1 FSB ZSCZR FST ZSCZR < R=1-R. FNEG FST ZSCZS < S=-R. JMP ZSC08A ZSC096: EQU $ < CAS Q0=6. FLD ZSCZM1 FST ZSCZS < S=-1. JMP ZSC08B ZSC095: EQU $ < CAS Q0=5. FLD ZSCZ1 FSB ZSCZR FST ZSCZR < R=1-R. FLD ZSCZM1 FST ZSCZS < S=-1. JMP ZSC08B ZSC094: EQU $ < CAS Q0=4. FLD ZSCZR FNEG FST ZSCZS < S=R. JMP ZSC08A ZSC093: EQU $ < CAS Q0=3. FLD ZSCZ1 FSB ZSCZR FST ZSCZR < R=1-R. FST ZSCZS < S=R. JMP ZSC08A ZSC092: EQU $ < CAS Q0=2. FLD ZSCZ1 FST ZSCZS < S=1. JMP ZSC08B ZSC091: EQU $ < CAS Q0=1. FLD ZSCZ1 FSB ZSCZR FST ZSCZR < R=1-R. FLD ZSCZ1 FST ZSCZS < S=1. JMP ZSC08B ZSC090: EQU $ < CAS Q0=0. FLD ZSCZR FST ZSCZS < S=R. ZSC08A: EQU $ LRM A WORD ZSCZA0 < A=ADRESSE DE LA SERIE 'A'. JMP ZSC081 ZSC08B: EQU $ LRM A WORD ZSCZB0 < A=ADRESSE DE LA SERIE 'B'. ZSC081: EQU $ PSR W LR A,W < W=ADRESSE DE LA SERIE 'A' OU 'B'. ZSCZC0: VAL 0 < PREMIER TERME DE LA SERIE, ZSCZC1: VAL 2 < SECOND, ZSCZC2: VAL 4 < TROISIEME, ZSCZC3: VAL 6 < QUATRIEME. FLD ZSCZR FMP ZSCZR < ANGLE*ANGLE. FST ZSC062 < X2... FLD ZSCZ1 < INITIALISATION A 1... PSR A,B FLD ZSCZC0,W FST ZSCZQ < INITIALISATION DU CUMUL. PLR A,B FMP ZSC062 < CALCUL DE X2... PSR A,B FMP ZSCZC1,W FAD ZSCZQ FST ZSCZQ < C0+C1*X2. PLR A,B FMP ZSC062 < CALCUL DE X4... PSR A,B FMP ZSCZC2,W FAD ZSCZQ FST ZSCZQ < C0+C1*X2+C2*X4. PLR A,B FMP ZSC062 < CALCUL DE X6... FMP ZSCZC3,W FAD ZSCZQ FMP ZSCZS PLR W FST 2,W PLR A,B,L,W RSR :F :F < <<'SIF SINUS' DF'SIF SPHERIQUE' ED'SIF SPHERIQUE' IN0 IDP "SIF SPHERIQUE" < < SOUS-PROGRAMME DE CALCUL DE COORDONNEES CARTESIENNES < A PARTIR DE COORDONNEES SPHERIQUES < TABLE DE TRANSMISSION POINTEE PAR LE REGISTRE A: < - MOT1 ET MOT2 : RHO EN FLOTTANT < - MOT3 ET MOT4 : THETA EN FLOTTANT < - MOT5 ET MOT6 : PHI EN FLOTTANT < - MOT7 ET MOT8 : X EN FLOTTANT(RESULTAT) < - MOT9 ET MOT10 : Y EN FLOTTANT(RESULTAT) < - MOT11 ET MOT12 : Z EN FLOTTANT(RESULTAT) < DEF SPHERE LOCAL ZZZ200: EQU $ ZZZ201: DZS 2 < NB EN FLOTTANT ZZZ202: DZS 2 ZZZ216: WORD ZZZ217 < SP DE CALCUL DU SINUS ZZZ203: DZS 1 < SIGNE ZZZ204: WORD '6403;'87ED < 2*PI ZZZ205: WORD '6402;'87ED < PI ZZZ206: WORD '6401;'87ED < PI/2 ZZZ207: EQU ZZZ206 < CSTES DU POLYNOME ZZZ208: WORD 'AD00;'5110 ZZZ209: WORD '51FD;'9A2C ZZZ210: WORD 'B3F9;'6CCE ZZZ211: WORD '4FF4;'6BDD ZZZ218: DZS 2 < NB EN FLOTTANT WORD ZZZ200+'80 < RELAI VERS LE LOCAL PROG SPHERE: EQU $ PSR A,B,L,W LRP L LB -2,L LR B,L LR A,W FLD 4,W BSR ZZZ216 FMP 0,W FST 10,W FLD 4,W FSB ZZZ206 FNEG BSR ZZZ216 FMP 0,W FST ZZZ218 FLD 2,W BSR ZZZ216 FMP ZZZ218 FST 8,W FLD 2,W FSB ZZZ206 FNEG BSR ZZZ216 FMP ZZZ218 FST 6,W PLR A,B,L,W RSR ZZZ217: EQU $ FST ZZZ201 STZ ZZZ203 JAGE ZZZ212 FNEG FST ZZZ201 IC ZZZ203 ZZZ212: EQU $ FDV ZZZ204 FIX FLT FMP ZZZ204 FSB ZZZ201 FNEG FCAM ZZZ205 JL ZZZ213 FSB ZZZ205 IC ZZZ203 ZZZ213: EQU $ FCAM ZZZ206 JL ZZZ214 FSB ZZZ205 FNEG ZZZ214: EQU $ FDV ZZZ206 FST ZZZ201 FMP ZZZ201 FST ZZZ202 FMP ZZZ211 FAD ZZZ210 FMP ZZZ202 FAD ZZZ209 FMP ZZZ202 FAD ZZZ208 FMP ZZZ202 FAD ZZZ207 FMP ZZZ201 DC ZZZ203 JNE ZZZ215 FNEG ZZZ215: EQU $ RSR END :F :F < <<'SIF SPHERIQUE' DF'SIF SQRT' ED'SIF SQRT' IN0 IDP "SIF SQRT" < < SOUS-PROGRAMME DE CALCUL DE LA RACINE CARREE < TABLE DE TRANSMISSION POINTEE PAR REGISTRE A < - MOT1 ET MOT2 : X EN FLOTTANT < - MOT3 ET MOT4 : Y EN FLOTTANT(RESULTAT) < - MOT5 : CODE RETOUR (0-BON;1-ERREUR) < DEF SQRT LOCAL ZZZ040: EQU $ ZZZ041: DZS 1 < MAX ZZZ042: WORD 'FF00 < MASQUE ZZZ043: DZS 2 < NB EN FLOTTANT ZZZ044: DZS 2 ZZZ045: WORD '4A00;'0000 < CSTES ZZZ046: WORD '6CFF;'0000 ZZZ047: WORD '7000;'0000 ZZZ048: WORD '47FF;'544C ZZZ049: WORD ZZZ050 < SS-PROG ZZZ056: WORD '0080 < CSTE WORD ZZZ040+'80 < RELAI VERS LE LOCAL PROG SQRT: EQU $ PSR A,B,Y,L,W LRP L < INIT. DE LA BASE L LB -2,L LR B,L LR A,W < @ TABLE PARAM. STZ 4,W < CODE DE RETOUR A ZERO FLD 0,W FCAZ JL ZZZ054 JE ZZZ053 LR A,Y ANDI 'FF SWBR A SARS 1 AD ZZZ056 TBT 8 JNC ZZZ051 RBT 8 STA ZZZ041 LR Y,A AND ZZZ042 FST ZZZ044 FMP ZZZ045 FAD ZZZ046 JMP ZZZ052 ZZZ051: EQU $ STA ZZZ041 LR Y,A ORI 'FF FST ZZZ044 FMP ZZZ047 FAD ZZZ048 ZZZ052: EQU $ BSR ZZZ049 SWBR A BSR ZZZ049 AD ZZZ041 SWBR A ZZZ053: EQU $ FST 2,W ZZZ055: EQU $ PLR A,B,Y,L,W RSR ZZZ054: EQU $ LAI 1 < ERREUR STA 4,W JMP ZZZ055 ZZZ050: EQU $ FST ZZZ043 FLD ZZZ044 FDV ZZZ043 FAD ZZZ043 SWBR A AD ZZZ042 RSR :F :F < <<'SIF SQRT' DF'SIF TG' ED'SIF TG' IN0 IDP "SIF TG" < < SOUS-PROGRAMME DE CALCUL DE LA TANGENTE < TABLE DE TRANSMISSION POINTEE PAR REGISTRE A < - MOT1 ET MOT2 : X EN FLOTTANT < - MOT3 ET MOT4 : Y EN FLOTTANT(RESULTAT) < DEF TG LOCAL ZZZ100: EQU $ ZZZ101: DZS 2 < NB EN FLOTTANT ZZZ102: DZS 2 ZZZ116: DZS 2 ZZZ117: WORD '7F7F;'FFFF < +INFINI ZZZ118: WORD '807F;'0001 < -INFINI ZZZ119: WORD ZZZ120 < SP DE CALCUL DU SINUS ZZZ103: DZS 1 < SIGNE ZZZ104: WORD '6403;'87ED < 2*PI ZZZ105: WORD '6402;'87ED < PI ZZZ106: WORD '6401;'87ED < PI/2 ZZZ107: EQU ZZZ106 < CSTES DU POLYNOME ZZZ108: WORD 'AD00;'5110 ZZZ109: WORD '51FD;'9A2C ZZZ110: WORD 'B3F9;'6CCE ZZZ111: WORD '4FF4;'6BDD WORD ZZZ100+'80 <RELAI VERS LE LOCAL PROG TG: EQU $ PSR A,B,L,W LRP L < INIT. DE LA BASE L LB -2,L LR B,L LR A,W < @ TABLE PARAM. FLD 0,W FSB ZZZ106 FNEG BSR ZZZ119 FST ZZZ116 FLD 0,W BSR ZZZ119 FCMZ ZZZ116 JE ZZZ121 FDV ZZZ116 ZZZ123: EQU $ FST 2,W PLR A,B,L,W RSR ZZZ121: EQU $ FCAZ JL ZZZ122 FLD ZZZ117 JMP ZZZ123 ZZZ122: EQU $ FLD ZZZ118 JMP ZZZ123 ZZZ120: EQU $ FST ZZZ101 STZ ZZZ103 JAGE ZZZ112 FNEG FST ZZZ101 IC ZZZ103 ZZZ112: EQU $ FDV ZZZ104 FIX FLT FMP ZZZ104 FSB ZZZ101 FNEG FCAM ZZZ105 JL ZZZ113 FSB ZZZ105 IC ZZZ103 ZZZ113: EQU $ FCAM ZZZ106 JL ZZZ114 FSB ZZZ105 FNEG ZZZ114: EQU $ FDV ZZZ106 FST ZZZ101 FMP ZZZ101 FST ZZZ102 FMP ZZZ111 FAD ZZZ110 FMP ZZZ102 FAD ZZZ109 FMP ZZZ102 FAD ZZZ108 FMP ZZZ102 FAD ZZZ107 FMP ZZZ101 DC ZZZ103 JNE ZZZ115 FNEG ZZZ115: EQU $ RSR :F :F < <<'SIF TG' DF'SIF CARTESIENNE' ED'SIF CARTESIENNE' IN0 IDP "SIF CARTESIENNE" < < SOUS-PROGRAMME DE CALCUL DE COORDONNEES CARTESIENNES < A PARTIR DE COORDONNEES POLAIRES < TABLE DE TRANSMISSION POINTEE PAR REGISTRE A < - MOT1 ET MOT2 : RHO EN FLOTTANT < - MOT3 ET MOT4 : THETA EN FLOTTANT < - MOT5 ET MOT6 : X EN FLOTTANT(RESULTAT) < - MOT7 ET MOT8 : Y EN FLOTTANT(RESULTAT) < DEF CART LOCAL ZZZ160: EQU $ ZZZ161: DZS 2 < NB EN FLOTTANT ZZZ162: DZS 2 ZZZ176: WORD ZZZ177 < SP DE CALCUL DU SINUS ZZZ163: DZS 1 < SIGNE ZZZ164: WORD '6403;'87ED < 2*PI ZZZ165: WORD '6402;'87ED < PI ZZZ166: WORD '6401;'87ED < PI/2 ZZZ167: EQU ZZZ166 < CSTES DU POLYNOME ZZZ168: WORD 'AD00;'5110 ZZZ169: WORD '51FD;'9A2C ZZZ170: WORD 'B3F9;'6CCE ZZZ171: WORD '4FF4;'6BDD WORD ZZZ160+'80 < RELAI VERS LE LOCAL PROG CART: EQU $ PSR A,B,L,W LRP L < INIT. DE LA BASE L LB -2,L LR B,L LR A,W < @ TABLE PARAM. FLD 2,W FSB ZZZ166 FNEG BSR ZZZ176 FMP 0,W FST 4,W FLD 2,W BSR ZZZ176 FMP 0,W FST 6,W PLR A,B,L,W RSR ZZZ177: EQU $ FST ZZZ161 STZ ZZZ163 JAGE ZZZ172 FNEG FST ZZZ161 IC ZZZ163 ZZZ172: EQU $ FDV ZZZ164 FIX FLT FMP ZZZ164 FSB ZZZ161 FNEG FCAM ZZZ165 JL ZZZ173 FSB ZZZ165 IC ZZZ163 ZZZ173: EQU $ FCAM ZZZ166 JL ZZZ174 FSB ZZZ165 FNEG ZZZ174: EQU $ FDV ZZZ166 FST ZZZ161 FMP ZZZ161 FST ZZZ162 FMP ZZZ171 FAD ZZZ170 FMP ZZZ162 FAD ZZZ169 FMP ZZZ162 FAD ZZZ168 FMP ZZZ162 FAD ZZZ167 FMP ZZZ161 DC ZZZ163 JNE ZZZ175 FNEG ZZZ175: EQU $ RSR :F :F < <<'SIF CARTESIENNE'