ooomrd
C OOOMRD SOURCE PV090527 26/04/24 08:23:15 12524 SUBROUTINE OOOMRD (LRET,PSEG) C-------------------------------------------------------------------- C C LIRE UN ENREGISTREMENT DE UN OU PLUSIEURS SEGMENTS C C ->LRET 1 PLUS DE PLACE MEMOIRE C 2 OK C C PSEG INDICE DU DESCRIPTEUR DU SEGMENT A IMPLANTER EN MEMOIRE C C PROGRAMMEUR : MOUGIN C MODIF : 04/11/88 STOP SI ERREUR FATALE C MODIF : 02/01/89 SUPPRIMER L'ARGUMENT LRET DU CALL OOODRD C MODIF : 09/01/89 UTILISER LE OOOMIN SIMPLIFIE C MODIF : 17/01/89 UTILISER LE OOOMWD SIMPLIFIE C MODIF : 17/01/89 SUPPRIMER L'ARGUMENT IRET C C-------------------------------------------------------------------- C %INC IOOADR %INC IOOADZ %INC IOODES %INC IOOSGM %INC IOOWCOM POINTEUR PSEG.PSEG C C****** SEGMENT ISOLE : C DEMANDER LA PLACE NECESSAIRE EN ZONE ACTIVE C COMPOSANT D'UN SUPER SEGMENT : C IMPLANTER UN MARQUEUR +PLACE NECESSAIRE C -SEGMENT DE CATEGORIE MARQUEUR C -INACTIF DANS LA CHAINE LRU C -ADRESSE DISQUE DU SUPER SEGMENT C -LONGUEUR DU SUPER SEGMENT C ICAT = MDCAT(MDTYP(PSEG)) LSX = MDLEN(PSEG) C IF (ICAT.EQ.MDISOLE) THEN 100 CALL OOOMIN (LRET,ZMEMDYN,ISX,LSX) IF (LRET.EQ.1) THEN IF (TESOOO) CALL OOOWER (' OOOMRD => OOOMWD') CALL OOOMWD (LRET,LSX) IF (TESOOO) CALL OOOWER (' OOOMRD <= OOOMWD') IF (LRET.EQ.1) RETURN GO TO 100 ENDIF ELSE MAXDEF = MZJSM(DEF) MAXACT = MZJSM(MAXACTIF) LSMK = LSX+(MSLMARK) LSEG = LSMK-MSLCZ IF (TESOOO) CALL OOOWER (' OOOMRD => OOOINI') IDMK=-1 CALL OOOINI (LRET,IDMK,LSEG) IF (TESOOO) CALL OOOWER (' OOOMRD <= OOOINI') IF (LRET.EQ.1) RETURN C ISMK=MDISG(IDMK) MSLS1(ISMK) = MSLMARK MSLS2(ISMK) = MSLMARK MSIDE(ISMK) = IDMK MDTYP(IDMK) = MDLTYP(MDMARK,MDMEM,MDINACT,MDLRU,0) MDTRK(IDMK) = MDTRK(PSEG) IDEA = MDACHN(LRU) MDCHN , IDEA(IDMK) C RECTIFIE LES STATISTIQUES MZQCHN(ACTIF) =MZQCHN(ACTIF)-LSX MZJSM(ACTUEL) = MZJSM(ACTUEL)-LSX MZJSM(DEF) =MAX(MZJSM(ACTUEL),MAXDEF) MZJSS(ACTACTIF)= MZJSS(ACTACTIF)-1 MZJSM(ACTACTIF)= MZJSM(ACTACTIF)-LSMK MZJSM(MAXACTIF)=MAX(MZJSM(ACTACTIF)+(MSLMARK),MAXACT) C MSMARK(ISMK)=LSX ISX=ISMK+(MSLMARK) ENDIF C C****** LIRE LE SEGMENT ET LE TRANSFERER EN MEMOIRE C ITRK = MDTRK(PSEG) CALL OOODRD (MZPTRK,ITRK,JSG(ISX+1),LSX) C C C****** IMPLANTER EN MEMOIRE LE OU LES SEGMENTS LUS C SEGMENT ISOLE : C -TYPE INACTIF C -CHAINE LRU C COMPOSANTS DE SUPER SEGMENTS C -TYPE INACTIF C -POINTE SUR LE MARQUEUR C -CHAINES LRU C -INITIALISATION DE L'ETAT DU SUPER SEGMENT C ISG=ISX C 200 LSG = MSLS1(ISG) IDE = MSIDE(ISG) MDISG(IDE)=ISG MDTRK(IDE)=ITRK IF (ICAT.EQ.MDISOLE) THEN MDTYP(IDE)=MDLTYP(MDISOLE,MDMEM,MDINACT,MDLRU,0) IDEA=MDACHN(LRU) MDCHNP , IDEA(IDE) ELSE MDTYP(IDE)=MDLTYP(MDBLOCK,MDMEM,MDINACT,MDLRU,0) MDMK(IDE)=IDMK IDEA=MDACHN(CLRU) MDCHNP , IDEA(IDE) MSMKSTAT(ISMK,STINACT)=MSMKSTAT(ISMK,STINACT)+1 MSMKSTAT(ISMK,STOTAL) =MSMKSTAT(ISMK,STOTAL)+1 ENDIF C MZJSS(RAPPEL)=MZJSS(RAPPEL)+1 MZJSM(RAPPEL)=MZJSM(RAPPEL)+LSG C ISG=ISG+LSG IF (ISG.LT.ISX+LSX) GO TO 200 MZJSM(LUS)=MZJSM(RAPPEL) C LRET = 2 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales