Télécharger oooynf.eso

Retour à la liste

Numérotation des lignes :

oooynf
  1. C OOOYNF SOURCE PV090527 26/04/24 08:23:36 12524
  2. SUBROUTINE OOOYNF (LRET,PSEG,LSEG)
  3. C-------------------------------------------------------------------
  4. C
  5. C INITIALISATION D'UN SEGMENT FIXE
  6. C
  7. C ->LRET 1 PLUS DE PLACE MEMOIRE
  8. C 2 OK
  9. C
  10. C ->PSEG POINTEUR DESIGNANT LE SEGMENT CREE
  11. C LSEG NOMBRE DE MOTS DE DONNEES DU SEGMENT
  12. C
  13. C PROGRAMMEUR : MOUGIN
  14. C MODIF : 09/01/89 UTILISER OOOMIN SIMPLIFIE
  15. C MODIF : 25/01/89 UTILISER OOODEX SIMPLIFIE
  16. C MODIF : 25/01/89 SUPPRIMER L'ARGUMENT IRET
  17. C
  18. C-------------------------------------------------------------------
  19. C
  20. %INC IOOADR
  21. %INC IOOADZ
  22. %INC IOODES
  23. %INC IOOSGM
  24. %INC IOOWCOM
  25. POINTEUR PSEG.PSEG
  26. C
  27. IF (LSEG.LE.0) GO TO 901
  28. C
  29. C S'ASSURER QU'IL Y A UN DESCRIPTEUR
  30. C
  31. IF (-MDIDS(MZIDE1).EQ.MZIDE1) THEN
  32. IF (TESOOO) CALL OOOWER ('OOOINI => OOODEX : ADD DESCRIPTEURS')
  33. CALL OOODEX (LRET,MZNDEX)
  34. IF (TESOOO) CALL OOOWER ('OOOINI <= OOODEX : FIN')
  35. IF (LRET.EQ.1) RETURN
  36. ENDIF
  37. C
  38. LSG = LSEG+MSLCZ
  39. 110 CALL OOOMIN (LRET,ZMEMFIX,ISEG,LSG)
  40. IF (LRET.EQ.1) THEN
  41. CALL OOOMWF (LRET,LSG)
  42. IF (LRET.EQ.1) RETURN
  43. GO TO 110
  44. ENDIF
  45. C
  46. C****** ENLEVE LE DESCRIPT DE LA CHAINE DES DESCRIPT. LIBRES
  47. C
  48. PSEG = -MDIDS(MZIDE1)
  49. MDIDS(MZIDE1) = MDIDS(PSEG)
  50. MDIDP(-(MDIDS(PSEG)))=-MZIDE1
  51. C
  52. C****** IMPLANTATION SEGMENT
  53. C
  54. C INDICE:ISEG,LG:LSG,DESCRIPT:PSEG
  55. C INITIALISER LE DESCRIPTEUR DU SGM:
  56. C INSERER DANS LA CHAINE DES SEGMENTS ACTIFS
  57. MDZERO(PSEG)=0
  58. C IMPLANTATION MEMOIRE DU SGM DE LG (LSG)
  59. MSIDE(ISEG) = PSEG
  60. MDISG(PSEG) = ISEG
  61. MDTYP(PSEG) = MDLTYP(MDFIXE,MDMEM,MDACT,0,0)
  62. C
  63. IDA = MDACHN(FIXE)
  64. MDCHNP , IDA(PSEG)
  65. C MAJ DES STATS/SGM ET /MOTS: NBRE ACTUEL ET MAX DEFINI
  66. C NBRE ACTIF ET MAX ACTIF
  67. MZJSS(ACTUEL) = MZJSS(ACTUEL)+1
  68. MZJSM(ACTUEL) = MZJSM(ACTUEL)+LSG
  69. MZJSS(DEF) = MAX(MZJSS(DEF),MZJSS(ACTUEL))
  70. MZJSM(DEF) = MAX(MZJSM(DEF),MZJSM(ACTUEL))
  71. MZJSS(ACTACTIF)=MZJSS(ACTACTIF)+1
  72. MZJSS(MAXACTIF)=MAX(MZJSS(MAXACTIF),MZJSS(ACTACTIF))
  73. MZJSM(ACTACTIF)=MZJSM(ACTACTIF)+LSG
  74. MZJSM(MAXACTIF)=MAX(MZJSM(MAXACTIF),MZJSM(ACTACTIF))
  75. C
  76. LRET = 2
  77. RETURN
  78. C-----------------------------------------------------------------------
  79. C
  80. C MESSAGES D'ERREUR
  81. C
  82. 901 CALL OOOERR (LSEG,1,'LONGUEUR DU SEGMENT INVALIDE')
  83. STOP 16
  84. END
  85.  
  86.  

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