d .TITLE GETTMP .IDENT /V01.01 (01-84)/ , $CLIDEF  $ACCDEF ; DEMANDE DE FICHIERS TEMPORAIRES X .PSECT TMP_RWDATA,NOEXE,RD,WRT,LONG BLOCKS: .ASCID /BLOCKS/ NUMBERDESC: .LONG 12  .LONG NUMBER NUMBER: .BLKB 12 LVALUE: .BLKL 1 FACILITY_DESC: .LONG 2$-1$  .LONG 1$ x1$: .ASCII /TMP/ 2$: @MSGVECTOR: .LONG 1  .BLKL 1 DELAY: .LONG -600000000,-1 ;DELAI MAXIMUM DE REPONSE lMESSAGE: .WORD ACC$K_INSMESG ;INSERTION D'UN MESSAGE  .BYTE 12 4 .LONG 2 STATUS: .BLKL 1 NBLOCKS: .BLKL 1 ` MESSAGE_DESC: .LONG MESSAGE_DESC-MESSAGE ;DESCRIPTEUR DU MESSAGE .LONG MESSAGE ( .PSECT TMP_RWCODE,EXE,RD,NOWRT,LONG .ENTRY GETTMP,^M<> PUSHAL BLOCKS ;DESCRIPTEUR DU NOM T CALLS #1,G^CLI$PRESENT BLBS R0,10$  BRW 100$ ;BRANCHEMENT EN ERREUR 10$: PUSHAL NUMBERDESC ;DESCRIPTEUR DU BUFFER PUSHAL BLOCKS ;DESCRIPTEUR DU NOM H CALLS #2,G^CLI$GET_VALUE CMPL R0,#SS$_NORMAL  BEQL 20$ t BRW 100$ ;BRANCHEMENT EN ERREUR ; RECHERCHE DU PREMIER BLANC <20$: LOCC #^A/ /,NUMBERDESC,NUMBER  PUSHAL VALUE ;ADRESSE DE LA VALEUR NUMERIQUE  PUSHAL NUMBER ;ADRESSE DE LA CHAINE h SUBL3 R0,NUMBERDESC,-(SP) ;LONGUEUR DE LA CHAINE RESTANTE  CALLS #3,G^LIB$CVT_DTB ;CONVERSION 0 BLBS R0,30$  MOVL #TMP$_CONVERT,R0 ;ERREUR DE CONVERSION  BRW 100$ ;BRANCHEMENT EN ERREUR \; TEST DU NOMBRE DE BLOCS 30$: CMPL VALUE,#12 $ BGEQ 32$ ;VALEUR SUFFISANTE  MOVL #TMP$_BADVALUE,R0  BRW 100$ ;BRANCHEMENT EN ERREUR P32$: $SETIMR_S EFN=#32,DAYTIM=DELAY,ASTADR=TIMAST  BLBS R0,35$  BRW 100$ ;ERREUR |35$: PUSHL VALUE ;NOMBRE DE BLOCKS  PUSHL #1 ;DEMANDE D'ALLOCATION D CALLS #2,G^TMP  PUSHR #^M  MOVL R0,STATUS p MOVL VALUE,NBLOCKS  $SNDACC_S MSGBUF=MESSAGE_DESC 8 POPR #^M  $EXIT_S CODE=R0 ; TRAITEMENT DES ERREURS d100$: MOVL R0,MSGVECTOR+4 ;STOCKAGE DE L'ERREUR  PUSHR #^M , $PUTMSG_S MSGVEC=MSGVECTOR,FACNAM=FACILITY_DESC  POPR #^M  $EXIT_S CODE=R0 X .END GETTMP