d .TITLE QTMP .IDENT /V01.01 (01-84)/ , $JPIDEF  $SECDEF  .PSECT TMP_RWDATA,NOEXE,RD,WRT,LONG XFAO_DESC: .ASCID *!UL blocs disponibles* MESSAGE_DESC: .LONG 32  .LONG MESSAGE MESSAGE: .BLKB 32 MESSAGE_LONG: .BLKW 1 LJPILST: .WORD 4  .WORD JPI$_UIC  .LONG UIC x .LONG 0  .LONG 0 @UIC: .BLKL 1 USER_ADR: .BLKL 1 DIR_ADR: .BLKL 1 lALL: .ASCID /ALL/ ;QUALIFIEUR /ALL QUAL$ALL: .BLKB 1 ;PRESENCE DU QUALIFIEUR /ALL 4TITLE: .BLKB 1 ;TITRE DEJA ECRIT TITLE_DESC: .ASCID / Pid UIC Blocs Utilisateur Directory / BUFFER_DESC: .LONG 54 ` .LONG BUFFER BUFFER: .BLKB 54 ( FAO_DESC1: .ASCID *!XL !3OW,!3OW !10UL !AD !9AC* ; SECTION GLOBALE ASSOCIEE A LA TABLE DES PROCESSES GBLSECTION: .LONG 20$-10$ T .LONG 10$ 10$: .ASCII /TMP$PROCESS/  20$: GBLINADR: .LONG ^X200 .LONG ^X200 H GBLRETADR: .BLKL 2 DELAY: .LONG -600000000,-1 ;DELAI MAXIMUM DE REPONSE FACILITY_DESC: .LONG 2$-1$ t .LONG 1$ 1$: .ASCII /TMP/ <2$: MSGVECTOR: .LONG 1  .BLKL 1 h .PSECT TMP_RWCODE,EXE,RD,NOWRT,LONG  .ENTRY QTMP,^M<> 0 $SETIMR_S EFN=#32,DAYTIM=DELAY,ASTADR=TIMAST  BLBS R0,0$  BRW 100$ ;ERREUR \0$: PUSHL #3 ;DEMANDE DU NOMBRE DE BLOCS  CALLS #1,G^TMP $ PUSHR #^M  $CANTIM_S  POPR #^M P BLBS R0,1$ ;SORTIE NORMALE  BRW 100$ ;SORTIE AVEC ERREUR 1$: PUSHL R0 ;SAUVEGARDE DU STATUS |; CONSTITUTION DU MESSAGE  $FAO_S CTRSTR=FAO_DESC,OUTBUF=MESSAGE_DESC,- D OUTLEN=MESSAGE_LONG,P1=R1  MOVW MESSAGE_LONG,MESSAGE_DESC  PUSHAL MESSAGE_DESC p CALLS #1,G^LIB$PUT_OUTPUT  BLBS R0,2$ ;SORTIE NORMALE 8 BRW 100$ ;BRANCHEMENT EN ERREUR ; LISTE DES PROCESSES DE LA TABLE ; OBTENTION DE L'UIC d2$: $GETJPI_S ITMLST=JPILST  BLBS R0,3$ ;SORTIE NORMALE , BRW 100$ ;BENACHEMENT EN ERREUR ; RECHERCHE DU QUALIFIEUR /ALL 3$: PUSHAL ALL ;DESCRIPTEUR DU NOM X CALLS #1,G^CLI$PRESENT  MOVB R0,QUAL$ALL ;SAUVEGARDE DU RESULTAT ; MAPPING DE LA SECTION GLOBALE  $MGBLSC_S INADR=GBLINADR,RETADR=GBLRETADR,-  FLAGS=#SEC$M_EXPREG!SEC$M_SYSGBL,- L GSDNAM=GBLSECTION  BLBS R0,4$ ;SORTIE NORMALE  BRW 100$ ;BRANCHEMENT EN ERREUR x; LISTE DES PROCESSES 4$: MOVL GBLRETADR,R2 ;ADRESSE DE DEPART @ CLRB TITLE ;TITRE NON ECRIT 10$: TSTB 63(R2) ;TEST DE L'OCTET DE VALIDITE  BNEQ 13$ ;DONNEES VALIDES l BRW 30$ ;DONNEES NON VALIDES 13$: BLBS QUAL$ALL,15$ ;PRESENCE DU QUALIFIEUR /ALL 4! CMPL UIC,4(R2) ;COMPARAISON DES UICS ! BNEQ 30$ ;UIC DIFFERENT !15$: TSTB TITLE ;TEST DU TITRE `" BNEQ 20$ ;TITRE DEJA ECRIT " MOVB #1,TITLE ;INDICATEUR A 1 (# PUSHAL TITLE_DESC # CALLS #1,G^LIB$PUT_OUTPUT ;ECRITURE DU TITRE # BLBS R0,20$ ;SORTIE NORMALE T$ BRW 100$ ;BRANCHEMENT EN ERREUR $; CONSTITUTION DE LA LIGNE %20$: MOVAL 12(R2),USER_ADR % MOVAL 24(R2),DIR_ADR % $FAO_S CTRSTR=FAO_DESC1,OUTBUF=BUFFER_DESC,- H& P1=(R2),P2=6(R2),P3=4(R2),P4=8(R2),P5=#12,P6=USER_ADR,- & P7=DIR_ADR ' BLBC R0,100$ ;SORTIE EN ERREUR t' PUSHAL BUFFER_DESC ' CALLS #1,G^LIB$PUT_OUTPUT ;ECRITURE DE LA LIGNE <( BLBC R0,100$ ;SORTIE EN ERREUR (; PASSAGE A L'ENREGISTREMENT SUIVANT )30$: ADDL2 #64,R2 h) CMPL R2,GBLRETADR+4 ;TEST DE FIN ) BGEQ 40$ 0* BRW 10$ *40$: MOVL (SP)+,R0 ;RESTAURATION DU STATUS * BRW 120$ \+100$: MOVL R0,MSGVECTOR+4 ;STOCKAGE DE L'ERREUR + PUSHR #^M $, $PUTMSG_S MSGVEC=MSGVECTOR,FACNAM=FACILITY_DESC , POPR #^M ,120$: $EXIT_S CODE=R0 P- .END QTMP