ooofix
C OOOFIX SOURCE PV090527 26/04/24 08:23:08 12524 SUBROUTINE OOOFIX (PSEG,N) C-------------------------------------------------------------------- C C FIXATION/LIBERATION D'UN SEGMENT FIXE C C TRANSFERT DU SEGMENT DE LA ZONE DYNAMIQUE <--> ZONE FIXE C C PSEG DESIGNE LE SEGMENT A TRAITER C C N 0 LIBERATION --> LE SEGMENT RESTE ACTIF C 1 FIXATION --> LE SEGMENT EST ACTIVE C C PROGRAMMEUR : MOUGIN C MODIF : 03/11/88 CALL OOOXXX ... => SEGXXX ... C MODIF : 03/01/89 SUPPRIMER L'ARGUMENT LRET DU CALL OOOSUS C MODIF : 25/01/89 SUPPRIMER L'ARGUMENT IRET DU CALL OOOYNF C MODIF : 1/10/89 H_MULLEMAN MISE A JOUR MDCAT C--------------------------------------------------------------------- C %INC IOOADR %INC IOOADZ %INC IOODES %INC IOOSGM C POINTEUR PSEG.PSEG POINTEUR IDE.IPP SEGMENT , IPP INTEGER III(LSG-1) ENDSEGMENT MACRO , (LIBERATION,FIXATION) C IDE=PSEG IF (N.LT.0 .OR. N.GT.1) RETURN IFIX=N+1 C C****** CONTROLES DE VRAISEMBLANCE C IF (IFIX.EQ.FIXATION) THEN SEGACT /ERR=901/ IDE IF (MDCAT(MDTYP(IDE)).EQ.MDBLOCK) CALL OOOSUS (MDMK(IDE)) ELSE IF (MDCAT(MDTYP(IDE)).NE.MDFIXE) GO TO 902 ENDIF C C****** CREATION D'UNE COPIE DU SEGMENT EN ZONE MEMOIRE FIXE OU C DYNAMIQUE SUIVANT LE CAS C ISG=MDISG(IDE) LSG=MSLS1(ISG)-(MSLCZ) IF (IFIX.EQ.FIXATION) THEN CALL OOOYNF (LRET,IPP,LSG) IF (LRET.EQ.1) GO TO 901 ELSE SEGINI /ERR=901/ IPP ENDIF ISG=MDISG(IDE) ISP=MDISG(IPP) CALL OOOZMV(JSG(ISG+MSLZ1+1),JSG(ISP+MSLZ1+1),LSG) MZJSS(DEPLACES)=MZJSS(DEPLACES)+1 MZJSM(DEPLACES)=MZJSM(DEPLACES)+LSG C C****** ECHANGE DES SEGMENTS C MDCHN , IPP(IDE) MSECH , IDE(IPP) MDTYP(IDE)=MDTYP(IPP) MDCAT(MDTYP(IPP))=MDISOLE SEGSUP , IPP RETURN C--------------------------------------------------------------- C C MESSAGES D'ERREUR C 901 CALL OOOERR (0,0,'PAS ASSEZ DE PLACE MEMOIRE') STOP 16 902 CALL OOOERR (IDE,-1,'LIBERATION SEGMENT NON FIXE') STOP 16 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales