*PSDCCE
      PROGRAMA 'Compilar programas usan un temporal'
      DOCUMENTACION 1 4
*D
*D    ESTE PROGRAMA SIRVE PARA COMPLIAR LOS PROGRAMAS QUE USAN
*D    UN TEMPORAL.
*
*     DEFINIR AREAS PARA PREGUNTAR POR TEMPORAL
*
      OPCION TERMINAL AREA 200 /RENGLON /POS. 5 5 /LONG. 8 70 $
      /MARCO /BN NO-E VI NO-E /TIEMPO 0 5 $
      /COLOR CELESTE CELESTE NEGRO BLANCO AZUL AZUL BLANCO $
      /TECLAS-DE-FUNCION 1 'Terminar' 2 'Men£' 3 '*Ayuda' $
      /CONDICION-EJECUTA '/F' '/M' $
      /INF-GLOBAL /TAB. 5 45 /CAMPOS 3 5 PRETEM PRE-NOM-TEM $
          PRECOM TOT-COMP /ESC.
*
      OPCION TERMINAL AREA 201 /COLUMNA 3 /POS. 9 20 /LONG. 11 18 $
      /MARCO /COLOR AMARILLO AMARILLO  NEGRO /BN VI NO-E $
      /CAMPOS NOM-TEM-PRO /ESC.
*
      OPCION TERMINAL AREA 202 /RENGLON 1 1 /POS. 11 5 /LONG. 9 70 $
      /MARCO /COLOR BLANCO BLANCO NEGRO /CONFIRMAR /CAMPOS $
      2 3 'Esta opcion sirve para compilar $
          $los programas que usen un' $
      3 3 'temporal de una o varias DBD' $
      4 3 '-Contestar SI a la PRIMER pregunta $
          $ocacionara se despliegen los' $
      5 4 'nombres de las temporales de las DBD $
          $para seleccionar uno.' $
      6 3 '-La SEGUNDA pregunta se debe contestar $
          $con el nombre del TEMPORAL.' $
      7 3 '-Al compilar los programas se puede $
          $especificar que se listen,' $
      8 4 'lo cual se contesta en la TERCERA $
          $pregunta.'
*
      OPCION TERMINAL AREA 999 /ERROR /COLOR NEGRO NEGRO BLANCO
*D
*D   PREGUNTAR SI SE DESPLIEGAN LON NOMBRES DE TEMPORALES, PARA
*D    ELLO SE RECORRE EL GRUPO DE LLAVES 4 EN FORMA SECUENCIAL Y
*D    SE ELIMINAN LOS DUPLICADOS.
*
1     OPCION TERMINAL AREA 200 /DESPLEGAR
      LEER TERMINAL EJECUTA 20 PRETEM
      SI PRETEM = 'NO' EJECUTA 5
      OPCION TERMINAL AREA 201 /DESPLEGAR /SALVAR-ANTERIORES $
         /EMPALMAR
      OPCION DISCO DOCSIS INICIO-G4
      IGUAL DOCSIS NOM-TEM-PRO NOM-TEM-PRO-ANT
      MOVER ' ' A NOM-TEM-PRO-ANT
2     BUSCAR DISCO DOCSIS EJECUTA 3 SEC-G4
      LEER DISCO DOCSIS NOM-TEM-PRO
      SI NOM-TEM-PRO = NOM-TEM-PRO-ANT EJECUTA 2
      ESCRIBIR TERMINAL NOM-TEM-PRO
      MOVER NOM-TEM-PRO A NOM-TEM-PRO-ANT
      EJECUTA 2
3     OPCION TERMINAL AREA 201 /TERMINAR
*D
*D    SE LEE EL NOMBRE DEL TEMPORAL Y SE VALIDA
*
5     LEER TERMINAL EJECUTA 20 PRE-NOM-TEM
      MOVER PRE-NOM-TEM A NOM-TEM-PRO
      BUSCAR DISCO DOCSIS EJECUTA 6 PRIN-G4 NOM-TEM-PRO
      EJECUTA 10
6     ERROR 'Temporal inexistente'
      EJECUTA 5
*D
*D    SE PREGUNTA SI SE SACAN LISTADOS DE COMPILACION
*
10    MOVER ' ' A X8
11    LEER TERMINAL EJECUTA 20 PRECOM
      SI PRECOM = 'NO' EJECUTA 51
      MOVER ',I,PA' A X8
      EJECUTA 51
*
20    SACAR PARAMETROS CONDICION-EJECUTA COND
      SI COND = 1 EJECUTA 1000
      SI COND = -1 EJECUTA 1000
      SI COND = -4 EJECUTA 1000
      SI COND = -5 EJECUTA 999
      SI COND = 2 EJECUTA 999
      OPCION TERMINAL AREA 202 /DESPLEGAR /SALVAR-ANTERIORES /EMPALMAR
      OPCION TERMINAL AREA 202 /TERMINAR
      EJECUTA 1
*D
*D    SE BUSCA POR NO PRINCIPAL EN EL GRUPO DE LLAVES 4 CON
*D    EL NOMBRE DE LA TABLA Y SE SACA INFORMACION PARA LA
*D    COMPILACION DEL R0 Y R8
*
51    OPCION TEMPORAL 950 ESCRITURA ASCII
      ESCRIBIR TEMPORAL 950 '*C *INICIO*'
      TOT-COMP = 0
      OPCION DISCO DOCSIS INICIO-G4
52    BUSCAR DISCO DOCSIS EJECUTA 60 NO-PRIN-G4 NOM-TEM-PRO
      LEER DISCO DOCSIS INI-DBD DIS-DBD
      LEER DISCO DOCSIS NOM-PRO DIS-PRO
      IGUAL AREA X2 INI-PRO-DBD
      CONVERTIR NOM-PRO A INI-PRO-DBD POS. 5 1 EJECUTA 55
      CONVERTIR NOM-PRO A INI-PRO-DBD POS. 6 2 EJECUTA 55
      ESCRIBIR TEMPORAL 950 '*M CLS-C,' INI-DBD ',' $
               DIS-DBD ',' INI-PRO-DBD ',' DIS-PRO  X8
      TOT-COMP = TOT-COMP + 1
      EJECUTA 52
55    ERROR 'ERROR 1 EN PSDCCE' 'ERROR AL CONVERTIR'
      FIN
*D
*D    SE ENVIA AL BATCH EL T950 PARA EFECTUAR LA COMPILACION.
*
60    ESCRIBIR TEMPORAL 950 '*C *FIN*'
      ESCRIBIR TERMINAL TOT-COMP
      OPCION TERMINAL AREA 200 /TERMINAR /INMEDIATA
      LLAMAR 'SIS/B '  950
999   FIN 'DCME'
1000  FIN
