Télécharger menage.eso

Retour à la liste

Numérotation des lignes :

  1. C MENAGE SOURCE PV 17/03/22 21:15:06 9370
  2. C SUPPRIMER LES SEGMENTS INDESIRABLES
  3. C
  4. SUBROUTINE MENAGE(IAUTOM)
  5. *
  6. IMPLICIT INTEGER(I-N)
  7. integer iautom
  8. integer icolac
  9. integer iplaob, iplaoc
  10. integer iretou
  11. integer mactip, nomlus
  12. -INC CCOPTIO
  13. -INC CCASSIS
  14. -INC CCNOYAU
  15. -INC TMLCHA8
  16. -INC SMELEME
  17. -INC SMTABLE
  18. -INC SMLENTI
  19. -INC SMCOORD
  20.  
  21. SEGMENT ITLAC(0)
  22. INTEGER OOOVAL
  23. *
  24. CHARACTER*4 CMOT
  25. SAVE IPLAOC,MACTIP
  26. DATA IPLAOC /0/
  27. *
  28. segdes mcoord
  29. call lircha(cmot, 0,iretou)
  30. if( iretou.ne.0) then
  31. if( cmot .eq.'OBLI')go to 1
  32. call refus
  33. endif
  34. if(iautom.eq.0) then
  35. IF(IPLAOC.EQ.0) THEN
  36. IPLAOC= OOOVAL(3,1)
  37. MACTIP= OOOVAL(3,3)
  38. RETURN
  39. ELSE
  40. IPLAOB=OOOVAL(3,1)
  41. IF( IPLAOB . LT . IPLAOC + MACTIP*0.05) RETURN
  42. ENDIF
  43. call chleha(1,0,0,0)
  44. iautom=1
  45. endif
  46. 1 CONTINUE
  47. * horodatage
  48. call ooohor(0,0)
  49.  
  50. C * attention aux assistants ....
  51. if (NBESC.NE.0.and.imestr.ne.0) then
  52. if (iimpi .eq. 1234)
  53. & write(ioimp,*) ' il faut bloquer les assistants'
  54. mestra=imestr
  55. SEGACT MESTRA*MOD
  56. if (iimpi .eq. 1234)
  57. & write(ioimp,*) ' assistants en attente'
  58. * on passe en mode force
  59. call ooofrc(1)
  60. * lodesl=.true.
  61. call setass(1)
  62. end if
  63.  
  64. * on passe en mode force
  65. * on met NOMLU a 1 pour bloquer le decodage des instructions
  66. NOMLUS=NOMLU
  67. nomlu=1
  68. segini itlac
  69. call ecrcha('NOOP')
  70. call tasspo(itlac,icolac,meleme,1)
  71. segdes meleme
  72. *
  73. * icolac ,cree dans tasspo pointe sur les piles d'objets accessibles
  74. *
  75. CALL MENAG5(ICOLAC,0)
  76. *
  77. * QUELLE PLACE RESTE T'IL MAINTENANT
  78. IPLAOC=OOOVAL(3,1)
  79. MACTIP= OOOVAL(3,3)
  80. IF(IIMPI.NE.0) write(IOIMP,12) IPLAOB,IPLAOC
  81. 12 FORMAT( ' place occupée avant apres ',2I8)
  82. * CALL PLAC
  83. * CALL LIRENT(IPLRES,1,IRETOU)
  84. * EST-CE SUFFISANT ??
  85. * INTERR(1)=IPLRES
  86. * IF (IPLADE.NE.0.AND.IPLRES.LT.IPLADE) CALL ERREUR(436)
  87. * restauration de nomlu
  88. NOMLU=NOMLUS
  89. C * attention aux assistants ....
  90. if (NBESC.NE.0.and.imestr.ne.0) then
  91. C * il faut liberer le segment de dialogue
  92. mestra=imestr
  93. * repasser en mode normal
  94. call ooofrc(0)
  95. SEGDES MESTRA
  96. * lodesl=.false.
  97. call setass(0)
  98. end if
  99. C JYY
  100. SEGDES MCOORD
  101. END
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  

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