* PSDCCB
*D
*D    ESTE PROGRAMA SIRVE PARA COMPILAR TODOS LOS PROGRAMAS DE UN
*D    SISTEMA DE UNA DBD
*D
*D    SE LEEN LAS INCIALES DE DBD Y SE DESPLIEGA EL DISPOSITIVO,
*D    LA FECHA DE ULTIMA ACTUALIZACION DEL R15.
*D    SE LEE EL NUMERO DEL SISTEMA Y SE DESPLIEGA EL NOMBRE
*D    EN CASO DE AYUDA SE DESPLIEGAN LOS DEL R6
*D    SE LEE SI SE DESEAN LISTADOS DE COMPILACION.
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
      PROGRAMA 'Compilar programas de un sistema'
      DOCUMENTACION 1 4
*
      OPCION TERMINAL AREA 200 /RENGLON    /POS. 2 3    /LONG. 15 74 $
      /MARCO                   /TAB.   3 40            /TIEMPO  0  5 $
      /TECLAS-DE-FUNCION 1 'Terminar' 2 'Men£'   3 '*Ayuda' $
      5 'Sel.  Sis' /CONDICION-EJECUTA '/F' '/M' '/S' $
      /BN NORMAL   VI   NORMAL                                       $
      /COLOR    CELESTE    CELESTE NEGRO   BLANCO AZUL   AZUL BLANCO $
*
      /CAMPOS                                                        $
         3 3 INI-DBD                       DIS-DBD /ESC. /LONG. 30   $
             FEC-ACT /ESC.                 HOR-ACT /ESC.             $
         8 3 PRE-NUM-SIS    /LET.          NUM-SIS /VAR. /LEC.       $
             NOM-SIS  /ESC. /LONG. 28 11 3 PRECOM                    $
        13 3 TOT-COMP /ESC.
*
      OPCION TERMINAL AREA 201 /RENGLON 1 1 /POS. 13 5  $
      /LONG. 8 70 /MARCO /COLOR AMARILLO AMARILLO NEGRO  $
      /CONFIRMAR /CAMPOS $
           2 3 'Esta opcion sirve para compilar $
               $todos los programas de un Sistema.' $
           3 3 '-La PRIMERA pregunta se debe contestar $
               $con las iniciales de DBD.' $
           4 3 '-La SEGUNDA pregunta se debe contestar $
               $con el numero del Sistema,' $
           5 4 'en esta pregunta se puede dar $
               $F5 0 /S para seleccionar sistema.' $
           6 3 '-Al compilar los programas se puede $
               $especificar que se listen,' $
           7 4 'lo cual se contesta en la TERCERA $
               $pregunta.'
*
      IGUAL AREA N10 SUB-S
      OPCION TERMINAL AREA 202 /MENU /POS. 10 23 /LONG. 11 52 $
      /MARCO /BN NO-E VI NO-E $
      /TECLAS-DE-FUNCION 1 'Terminar' 2 'Men£' 3 '*Ayuda' $
      /COLOR BLANCO BLANCO NEGRO AZUL BLANCO BLANCO NEGRO $
      /CAMPOS 'Seleccione el Sistema:' /ENC. $
           NUM-SIS /VAR-OP. NOM-SIS /VAR-OP. SUB-S  /VAR-SEL.
*
      OPCION TERMINAL AREA 203 /RENGLON 1 1 /POS. 16 5 /LONG. 4 70 $
      /MARCO /COLOR NEGRO NEGRO BLANCO /CAMPOS $
         2 3 X60 /VAR.   3 3 'cuyos programas se compilan.'
*
      OPCION TERMINAL AREA 999 /ERROR $
       /COLOR NEGRO NEGRO BLANCO
*
      OPCION TERMINAL AREA 200 /DESPLEGAR
1     LEER TERMINAL EJECUTA 20 INI-DBD
      BUSCAR DISCO DOCSIS EJECUTA 3 PRIN-G1 INI-DBD
      LEER DISCO DOCSIS DIS-DBD
      ESCRIBIR TERMINAL DIS-DBD
      BUSCAR RECURRENTE DOCSIS 15 EJECUTA 2  SUP.
      LEER DISCO DOCSIS FEC-ACT HOR-ACT
      ESCRIBIR TERMINAL  FEC-ACT HOR-ACT
      EJECUTA 10
2     ERROR 'ERROR 2 EN PSDCCB' 'NO EXISTE FECHA DE ACTUALIZACION'
      FIN
3     ERROR 'DBD inexistente'
      EJECUTA 1
*
10    LEER TERMINAL EJECUTA 20 NUM-SIS
      BUSCAR RECURRENTE DOCSIS 6 EJECUTA 11 INF. NUM-SIS
      LEER DISCO DOCSIS NOM-SIS
      ESCRIBIR TERMINAL NOM-SIS
      EJECUTA 15
11    ERROR 'El sistema' NUM-SIS 'no existe.' $
       'de F5 O /B para buscarlo'
      EJECUTA 10
*
15    MOVER ' ' A X8
16    LEER TERMINAL EJECUTA 20 PRECOM
      SI PRECOM = 'NO' EJECUTA 51
      MOVER ',I,PA' A X8
      EJECUTA 51
*D
*D    PROCESAR CONDICIONES ESPECIALES, SOLO EN SEGUNDA
*D    PREGUNTA SE ACEPTA F5 o /S
*
      IGUAL AREA N10 NUM-INST-LECT
20    SACAR PARAMETROS CONDICION-EJECUTA COND $
             NUMERO-DE-LECTURAS NUM-INST-LECT
      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
      SI COND = 5 EJECUTA 21
      SI COND = -6 EJECUTA 21
      OPCION TERMINAL AREA 201 /DESPLEGAR /SALVAR-ANTERIORES /EMPALMAR
      OPCION TERMINAL AREA 201 /TERMINAR
      SI NUM-INST-LECT = 1 EJECUTA 1
      SI NUM-INST-LECT = 2 EJECUTA 10
      EJECUTA 16
21    SI NUM-INST-LECT = 2 EJECUTA 22
      ERROR 'F5 O /S solo en pregunta del sistema'
      SI NUM-INST-LECT = 1 EJECUTA 1
      EJECUTA 16
*D
*D    RECORRER EL R6 CON LOS SISTEMAS PARA QUE SE
*D    SELECCIONE UNO.
*
22    OPCION TERMINAL AREA 202 /DESPLEGAR /SALVAR-ANTERIORES /EMPALMAR
      SUB-S = 0
      OPCION DISCO DOCSIS ORD-R6 A NUM-SIS
23    BUSCAR RECURRENTE DOCSIS 6 EJECUTA 24 ORD.
      LEER DISCO DOCSIS NUM-SIS NOM-SIS TOT-NUM-GRU
      SI TOT-NUM-GRU = 0 EJECUTA 23
      ESCRIBIR TERMINAL NUM-SIS NOM-SIS
      IGUAL DOCSIS NUM-SIS NUM-SIS-V
      VECTOR NUM-SIS-V RANGO 1 31
      SUB-S = SUB-S + 1
      NUM-SIS-V ( SUB-S )  = NUM-SIS
      EJECUTA 23
24    LEER TERMINAL EJECUTA 26 SUB-S
      BUSCAR RECURRENTE DOCSIS 6 EJECUTA 25 INF. NUM-SIS-V ( SUB-S )
      OPCION TERMINAL AREA 202 /TERMINAR
      LEER DISCO DOCSIS NOM-SIS
      ESCRIBIR TERMINAL NOM-SIS
      EJECUTA 15
25    ERROR 'ERROR 1 PSDCCB' 'NO EXISTE GRUPO'
      FIN
*
26    SACAR PARAMETROS CONDICION-EJECUTA COND
      SI COND = 1 EJECUTA 1000
      SI COND = 2 EJECUTA 999
      OPCION TERMINAL AREA 203 /DESPLEGAR /EMPALMAR $
        /SALVAR-ANTERIORES
      MOVER 'Es necesario seleccionar el sistema de la DBD' A X60
      MOVER INI-DBD A X60 /AGREGAR
      ESCRIBIR TERMINAL X60
      OPCION TERMINAL AREA 203 /TERMINAR
      EJECUTA 24
*D
*D    SE RECORRE EL R7 PARA IR COMPILANDO POR GRUPOS,
*D    SE RECORRE EL R8 PARA SACAR INFORMACION DEL PROGRAMA
*D    A COMPILAR Y SE PASA AL T950
*
51    OPCION TEMPORAL 950 ESCRITURA ASCII
      ESCRIBIR TEMPORAL 950 '*C *INICIO*'
      TOT-COMP = 0
53    BUSCAR RECURRENTE DOCSIS 7 EJECUTA 60 ANT.
54    BUSCAR RECURRENTE DOCSIS 8 EJECUTA 53 ANT.
      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 54
55    ERROR 'ERROR 1 EN PSDCCB' '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
