Télécharger ooofix.eso

Retour à la liste

Numérotation des lignes :

ooofix
  1. C OOOFIX SOURCE PV090527 26/04/24 08:23:08 12524
  2. SUBROUTINE OOOFIX (PSEG,N)
  3. C--------------------------------------------------------------------
  4. C
  5. C FIXATION/LIBERATION D'UN SEGMENT FIXE
  6. C
  7. C TRANSFERT DU SEGMENT DE LA ZONE DYNAMIQUE <--> ZONE FIXE
  8. C
  9. C PSEG DESIGNE LE SEGMENT A TRAITER
  10. C
  11. C N 0 LIBERATION --> LE SEGMENT RESTE ACTIF
  12. C 1 FIXATION --> LE SEGMENT EST ACTIVE
  13. C
  14. C PROGRAMMEUR : MOUGIN
  15. C MODIF : 03/11/88 CALL OOOXXX ... => SEGXXX ...
  16. C MODIF : 03/01/89 SUPPRIMER L'ARGUMENT LRET DU CALL OOOSUS
  17. C MODIF : 25/01/89 SUPPRIMER L'ARGUMENT IRET DU CALL OOOYNF
  18. C MODIF : 1/10/89 H_MULLEMAN MISE A JOUR MDCAT
  19. C---------------------------------------------------------------------
  20. C
  21. %INC IOOADR
  22. %INC IOOADZ
  23. %INC IOODES
  24. %INC IOOSGM
  25. C
  26. POINTEUR PSEG.PSEG
  27. POINTEUR IDE.IPP
  28. SEGMENT , IPP
  29. INTEGER III(LSG-1)
  30. ENDSEGMENT
  31. MACRO , (LIBERATION,FIXATION)
  32. C
  33. IDE=PSEG
  34. IF (N.LT.0 .OR. N.GT.1) RETURN
  35. IFIX=N+1
  36. C
  37. C****** CONTROLES DE VRAISEMBLANCE
  38. C
  39. IF (IFIX.EQ.FIXATION) THEN
  40. SEGACT /ERR=901/ IDE
  41. IF (MDCAT(MDTYP(IDE)).EQ.MDBLOCK) CALL OOOSUS (MDMK(IDE))
  42. ELSE
  43. IF (MDCAT(MDTYP(IDE)).NE.MDFIXE) GO TO 902
  44. ENDIF
  45. C
  46. C****** CREATION D'UNE COPIE DU SEGMENT EN ZONE MEMOIRE FIXE OU
  47. C DYNAMIQUE SUIVANT LE CAS
  48. C
  49. ISG=MDISG(IDE)
  50. LSG=MSLS1(ISG)-(MSLCZ)
  51. IF (IFIX.EQ.FIXATION) THEN
  52. CALL OOOYNF (LRET,IPP,LSG)
  53. IF (LRET.EQ.1) GO TO 901
  54. ELSE
  55. SEGINI /ERR=901/ IPP
  56. ENDIF
  57. ISG=MDISG(IDE)
  58. ISP=MDISG(IPP)
  59. CALL OOOZMV(JSG(ISG+MSLZ1+1),JSG(ISP+MSLZ1+1),LSG)
  60. MZJSS(DEPLACES)=MZJSS(DEPLACES)+1
  61. MZJSM(DEPLACES)=MZJSM(DEPLACES)+LSG
  62. C
  63. C****** ECHANGE DES SEGMENTS
  64. C
  65. MDCHN , IPP(IDE)
  66. MSECH , IDE(IPP)
  67. MDTYP(IDE)=MDTYP(IPP)
  68. MDCAT(MDTYP(IPP))=MDISOLE
  69. SEGSUP , IPP
  70. RETURN
  71. C---------------------------------------------------------------
  72. C
  73. C MESSAGES D'ERREUR
  74. C
  75. 901 CALL OOOERR (0,0,'PAS ASSEZ DE PLACE MEMOIRE')
  76. STOP 16
  77. 902 CALL OOOERR (IDE,-1,'LIBERATION SEGMENT NON FIXE')
  78. STOP 16
  79. END
  80.  
  81.  

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