                         A M S C A L L


      Questa routine si puo' richiamare con una CALL da un qualunque
programma Cobol o Assembler e consente di dare comandi IDCAMS dall'interno
del programma. Puo' cioe' essere il programma stesso a fare DELETE/DEFINE,
LISTCAT, REPRO ecc. generando come variabili interne al programma quelle
che in un normale step IDCAMS sono le schede di SYSIN. Naturalmente, e'
consigliabile dare i comandi IDCAMS in uno step separato, dovunque
possibile, evitando l'uso di questa routine; puo' invece essere usata
in tutti quei casi in cui, al momento della scrittura del job, non e'
possibile sapere quali comandi o file dovranno essere coinvolti dall'IDCAMS.


      Uso per il cobol:

            CALL 'AMSCALL' USING LEN-FIELD COMANDO

      dove:
            LEN-FIELD   PIC   S9(7)      COMP  VALUE +nnn.
            COMANDO     PIC   X(nnn).

      Uso per l'assembler:
            CALL AMSCALL,(LENFIELD,COMANDO),VL   (omettere 'VL' in DOS)

      dove:
            LENFIELD    DC    F'nnn'
            COMANDO     DS    CLnnn

  In "LENFIELD" vi sara' la lunghezza del campo "COMANDO" (cioe' nnn)
  ("LENFIELD" deve avere un valore compreso tra 40 e 10000)
  "COMANDO" e' la variabile che contiene i comandi IDCAMS, scritti
  esattamente allo stesso modo delle normali schede IDCAMS.
  "COMANDO" puo' essere spezzato in piu' variabili purche':
  - siano contigue
  - la somma delle loro lunghezze sia messa in LEN-FIELD

      Poiche' questo programma fa corrispondere al 'COMANDO' in input
uno o piu' record di SYSIN lunghi 70 caratteri, si consiglia di spezzare
il comando in tante variabili lunghe 70 ognuna delle quali abbia
senso compiuto come se fosse una linea di SYSIN; usare come al solito
il '-' per proseguire il comando sulla linea successiva.
Al ritorno al programma chiamante, in "LEN-FIELD" e' impostato il return
code.
Nota: in MVS 'SYSPRINT' non deve essere aperto dal programma chiamante
perche' usato dall'IDCAMS per i suoi messaggi; in Dos SYSLIST puo'
essere aperto: in questo caso i messaggi dell'IDCAMS verranno mischiati
alle altre righe di stampa prodotte dal programma.
Non si puo' usare questa routine in un programma CICS.


      Ecco un esempio di programma cobol che richiama AMSCALL:


       IDENTIFICATION DIVISION.
       PROGRAM-ID.   PROVA1.
       AUTHOR. PIERO.
      ****************************************************************
      * PROVA RICHIAMO DELLA ROUTINE AMSCALL                         *
      ****************************************************************
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT  IS  COMMA.
      ****************************************************************
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77  LEN-FIELD   PIC   S9(7)      COMP  VALUE  +210.
       77  COMANDO     PIC   X(70) VALUE
                   '     DELETE PROVA.PIERO.ELENCO    -          '.
       77  FILLER1     PIC   X(70) VALUE
                   '            CLUSTER PURGE '.
       77  FILLER2     PIC   X(70) VALUE
                   '     LISTCAT NAME CAT(CATALOGO.SYSWK3) '.
      ****************************************************************
       PROCEDURE DIVISION.
       INIZIO.
           MOVE +210 TO LEN-FIELD.
           CALL 'AMSCALL' USING LEN-FIELD COMANDO.
           DISPLAY 'RC= ' LEN-FIELD.
       FINE.
           STOP RUN.
      ********************************************************* END *


