C -------------------------- C I MOTS DE CONTROLE SEGMENT I C -------------------------- C C EN GENERAL , LES SEGMENTS PRESENTS EN MEMOIRE SONT LIES C PAR UN CHAINAGE AUX AUTRES SEGMENTS D'UNE MEME CATEGORIE C CE DOUBLE CHAINAGE CIRCULAIRE EST REALISE A L'AIDE DE 2 C POINTEURS (PRECEDENT ET SUIVANT , VOIR : MSIDP ET MSIDS) C POUR CHAQUE CATEGORIE , UN SEGMENT OCCULTE , MATERIALISE C LA TETE DE LA CHAINE CORRESPONDANTE . C C C ** C O N S T A N T E S S E G M E N T *** C C MSLSM LONGUEUR MINIMUM D'UN SEGMENT EN MOTS C MSLZ1 LONGUEUR ZONE DE CONTROLE : EN TETE DU SEGMENT C MSLZ2 LONGUEUR ZONE DE CONTROLE : EN FIN DU SEGMENT C MSLCZ LONGUEUR ZONE DE CONTROLE : TOTAL C %IF UNIX64,WIN64 MACRO , MSLSM = 6 %ELSE MACRO , MSLSM = 8 %ENDIF MACRO , MSLZ1 = 4 MACRO , MSLZ2 = 1 MACRO , MSLCZ = (MSLZ1+MSLZ2) C C SCHEMA DES M O T S D E C O N T R O L E D'UN SEGMENT C C ------------------------------------------ ------------ C I MSLS1 I MSIDE I MSIDP I MSIDS I DONNEES I MSLS2 I C ------------------------------------------ ------------ C C IS INDICE DU SEGMENT : JSG(IS+I),I=1,LS C LS LONGUEUR DU SEGMENT , EN MOTS . C C MSLS1(IS) LONGUEUR DU SEGMENT , EN MOTS C MSIDE(IS) INDICE DU DESCRIPTEUR DU SEGMENT C MSIDP(IS) INDICE DU DESCRIPTEUR DU SEGMENT PRECEDENT C MSIDS(IS) INDICE DU DESCRIPTEUR DU SEGMENT SUIVANT C MSLS2(IS) LONGUEUR DU SEGMENT , EN MOTS C MACRO , MSLS1(IS) = JSG(IS+1) MACRO , MSIDE(IS) = JSG(IS+2) MACRO , MSIDP(IS) = JSG(IS+3) MACRO , MSIDS(IS) = JSG(IS+4) MACRO , MSLS2(IS) MSLS2 = JSG(IS+MSLS1(IS)) PSEUDO , LSG JSG(IS+(LSG))=LSG ENDMACRO C MACRO , MSZERO(IS) PSEUDO , LZERO JSG(IS+1)=LZERO JSG(IS+2)=LZERO JSG(IS+3)=LZERO JSG(IS+4)=LZERO ENDMACRO C C MSEGM (IS) LE BLOC MEMOIRE EST IL UN SEGMENT ? C MSEGMG(IS) LE BLOC MEMOIRE A GAUCHE EST IL UN SEGMENT ? C MACRO , MSEGM (IS) = (JSG(IS+1).GT.0) MACRO , MSEGMG(IS) = (JSG(IS ).GT.0) MACRO , MSLSP (IS) = JSG(IS) C C****** TYPE DE DESACTIVATION D'UN SEGMENT (CF OOODES) C EXEMPLE : C CALL OOODES (IP,NDES) C NDES=LNOMOD-1 C MACRO , (LNOMOD,LMOD,MNOMOD,MMOD) C C C ----------------------------- C I DONNEES D'UN SUPER SEGMENT I C ----------------------------- C C C MSLMARK LONGUEUR DU MARQUEUR C MSMARK LONGUEUR D'UN SUPER SEGMENT C (SOMME DES LONGUEURS DES COMPOSANTS) C MACRO , MSLMARK = ( ((8+MSLCZ+MSLSM-1)/MSLSM)*MSLSM ) MACRO , MSMARK(IS) = JZZ(IS+MSLZ1+1) C C ETAT DES COMPOSANTS D'UN SUPER SEGMENT EN NOMBRE DE SEGMENTS C MACRO , ( STACTIF , STINACT , STLNOMOD , STLMOD * , STMNOMOD , STMMOD , STOTAL ) C C ACCES A L'ETAT D'UN SUPER SEGMENT EN FONCTION DU TYPE D'UN C COMPOSANT C MACRO , MSMKISS(ITYP)=MZMKSS(MDMKSS(ITYP)) C C MSMKSTAT COMPTEURS D'ETAT STATISTIQUE C MACRO , MSMKSTAT(IS,ISTAT) = JZZ(IS+MSLZ1+1+ISTAT) C C ETATS D'UN SUPER SEGMENT C MACRO , S S ACTIF(IS)= * (MSMKSTAT(IS,STACTIF ).EQ.MSMKSTAT(IS,STOTAL)) MACRO , S S HLRU(IS) = * ((MSMKSTAT(IS,STINACT ).EQ.MSMKSTAT(IS,STOTAL)) * .OR. (MSMKSTAT(IS,STLNOMOD).EQ.MSMKSTAT(IS,STOTAL)) * .OR. (MSMKSTAT(IS,STLMOD ).EQ.MSMKSTAT(IS,STOTAL))) MACRO , S S HMRU(IS)= * ((MSMKSTAT(IS,STMNOMOD).EQ.MSMKSTAT(IS,STOTAL)) * .OR. (MSMKSTAT(IS,STMMOD ).EQ.MSMKSTAT(IS,STOTAL))) * ((MSMKSTAT(IS,STLNOMOD) * +MSMKSTAT(IS,STACTIF ).EQ.MSMKSTAT(IS,STOTAL)) * .OR. (MSMKSTAT(IS,STLMOD ) * +MSMKSTAT(IS,STACTIF ).EQ.MSMKSTAT(IS,STOTAL))) * ((MSMKSTAT(IS,STMNOMOD) * +MSMKSTAT(IS,STACTIF ).EQ.MSMKSTAT(IS,STOTAL)) * .OR. (MSMKSTAT(IS,STMMOD) * +MSMKSTAT(IS,STACTIF ).EQ.MSMKSTAT(IS,STOTAL))) C C----------------------------------------------------------------------- C
© Cast3M 2003 - Tous droits réservés.
Mentions légales