Télécharger ooomrd.eso

Retour à la liste

Numérotation des lignes :

ooomrd
  1. C OOOMRD SOURCE PV090527 26/04/24 08:23:15 12524
  2. SUBROUTINE OOOMRD (LRET,PSEG)
  3. C--------------------------------------------------------------------
  4. C
  5. C LIRE UN ENREGISTREMENT DE UN OU PLUSIEURS SEGMENTS
  6. C
  7. C ->LRET 1 PLUS DE PLACE MEMOIRE
  8. C 2 OK
  9. C
  10. C PSEG INDICE DU DESCRIPTEUR DU SEGMENT A IMPLANTER EN MEMOIRE
  11. C
  12. C PROGRAMMEUR : MOUGIN
  13. C MODIF : 04/11/88 STOP SI ERREUR FATALE
  14. C MODIF : 02/01/89 SUPPRIMER L'ARGUMENT LRET DU CALL OOODRD
  15. C MODIF : 09/01/89 UTILISER LE OOOMIN SIMPLIFIE
  16. C MODIF : 17/01/89 UTILISER LE OOOMWD SIMPLIFIE
  17. C MODIF : 17/01/89 SUPPRIMER L'ARGUMENT IRET
  18. C
  19. C--------------------------------------------------------------------
  20. C
  21. %INC IOOADR
  22. %INC IOOADZ
  23. %INC IOODES
  24. %INC IOOSGM
  25. %INC IOOWCOM
  26. POINTEUR PSEG.PSEG
  27. C
  28. C****** SEGMENT ISOLE :
  29. C DEMANDER LA PLACE NECESSAIRE EN ZONE ACTIVE
  30. C COMPOSANT D'UN SUPER SEGMENT :
  31. C IMPLANTER UN MARQUEUR +PLACE NECESSAIRE
  32. C -SEGMENT DE CATEGORIE MARQUEUR
  33. C -INACTIF DANS LA CHAINE LRU
  34. C -ADRESSE DISQUE DU SUPER SEGMENT
  35. C -LONGUEUR DU SUPER SEGMENT
  36. C
  37. ICAT = MDCAT(MDTYP(PSEG))
  38. LSX = MDLEN(PSEG)
  39. C
  40. IF (ICAT.EQ.MDISOLE) THEN
  41. 100 CALL OOOMIN (LRET,ZMEMDYN,ISX,LSX)
  42. IF (LRET.EQ.1) THEN
  43. IF (TESOOO) CALL OOOWER (' OOOMRD => OOOMWD')
  44. CALL OOOMWD (LRET,LSX)
  45. IF (TESOOO) CALL OOOWER (' OOOMRD <= OOOMWD')
  46. IF (LRET.EQ.1) RETURN
  47. GO TO 100
  48. ENDIF
  49. ELSE
  50. MAXDEF = MZJSM(DEF)
  51. MAXACT = MZJSM(MAXACTIF)
  52. LSMK = LSX+(MSLMARK)
  53. LSEG = LSMK-MSLCZ
  54. IF (TESOOO) CALL OOOWER (' OOOMRD => OOOINI')
  55. IDMK=-1
  56. CALL OOOINI (LRET,IDMK,LSEG)
  57. IF (TESOOO) CALL OOOWER (' OOOMRD <= OOOINI')
  58. IF (LRET.EQ.1) RETURN
  59. C
  60. ISMK=MDISG(IDMK)
  61. MSLS1(ISMK) = MSLMARK
  62. MSLS2(ISMK) = MSLMARK
  63. MSIDE(ISMK) = IDMK
  64. MDTYP(IDMK) = MDLTYP(MDMARK,MDMEM,MDINACT,MDLRU,0)
  65. MDTRK(IDMK) = MDTRK(PSEG)
  66. IDEA = MDACHN(LRU)
  67. MDCHN , IDEA(IDMK)
  68. C RECTIFIE LES STATISTIQUES
  69. MZQCHN(ACTIF) =MZQCHN(ACTIF)-LSX
  70. MZJSM(ACTUEL) = MZJSM(ACTUEL)-LSX
  71. MZJSM(DEF) =MAX(MZJSM(ACTUEL),MAXDEF)
  72. MZJSS(ACTACTIF)= MZJSS(ACTACTIF)-1
  73. MZJSM(ACTACTIF)= MZJSM(ACTACTIF)-LSMK
  74. MZJSM(MAXACTIF)=MAX(MZJSM(ACTACTIF)+(MSLMARK),MAXACT)
  75. C
  76. MSMARK(ISMK)=LSX
  77. ISX=ISMK+(MSLMARK)
  78. ENDIF
  79. C
  80. C****** LIRE LE SEGMENT ET LE TRANSFERER EN MEMOIRE
  81. C
  82. ITRK = MDTRK(PSEG)
  83. CALL OOODRD (MZPTRK,ITRK,JSG(ISX+1),LSX)
  84. C
  85. C
  86. C****** IMPLANTER EN MEMOIRE LE OU LES SEGMENTS LUS
  87. C SEGMENT ISOLE :
  88. C -TYPE INACTIF
  89. C -CHAINE LRU
  90. C COMPOSANTS DE SUPER SEGMENTS
  91. C -TYPE INACTIF
  92. C -POINTE SUR LE MARQUEUR
  93. C -CHAINES LRU
  94. C -INITIALISATION DE L'ETAT DU SUPER SEGMENT
  95. C
  96. ISG=ISX
  97. C
  98. 200 LSG = MSLS1(ISG)
  99. IDE = MSIDE(ISG)
  100. MDISG(IDE)=ISG
  101. MDTRK(IDE)=ITRK
  102. IF (ICAT.EQ.MDISOLE) THEN
  103. MDTYP(IDE)=MDLTYP(MDISOLE,MDMEM,MDINACT,MDLRU,0)
  104. IDEA=MDACHN(LRU)
  105. MDCHNP , IDEA(IDE)
  106. ELSE
  107. MDTYP(IDE)=MDLTYP(MDBLOCK,MDMEM,MDINACT,MDLRU,0)
  108. MDMK(IDE)=IDMK
  109. IDEA=MDACHN(CLRU)
  110. MDCHNP , IDEA(IDE)
  111. MSMKSTAT(ISMK,STINACT)=MSMKSTAT(ISMK,STINACT)+1
  112. MSMKSTAT(ISMK,STOTAL) =MSMKSTAT(ISMK,STOTAL)+1
  113. ENDIF
  114. C
  115. MZJSS(RAPPEL)=MZJSS(RAPPEL)+1
  116. MZJSM(RAPPEL)=MZJSM(RAPPEL)+LSG
  117. C
  118. ISG=ISG+LSG
  119. IF (ISG.LT.ISX+LSX) GO TO 200
  120.  
  121. MZJSM(LUS)=MZJSM(RAPPEL)
  122. C
  123. LRET = 2
  124.  
  125. END
  126.  
  127.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales