Thursday 21 November 2024

As telas do Mainframe são escritas em uma linguagem fonte chamada BMS. O mapa BMS para descrever uma tela deve ser codificado usando a sintaxe do Assembler do Mainframe. Nesta sintaxe, cada comando é uma macro de Assembler, cujas regras gerais são:

  • Label da macro – Da coluna 1 à coluna 8 do editor(opcional).
  • Nome das macros – A partir da coluna 10.
  • Argumentos da macro - A partir da coluna 16 até a coluna 71.
  • Os argumentos devem ser separados por vírgula. Não deve haver espaços entre argumentos.
  • Havendo um espaço na área de comandos, todo o texto restante da linha é considerado comentário.
  • Um caracter na coluna 72 indica continuação da linha. A continuação deve se iniciar na coluna 16 da próxima linha.
  • A ultima linha do fonte deve ter a palavra END na coluna 10.

O mapa BMS é formado pela combinação de 3 macros:

DFHMSD – Define um conjunto de telas (Mapset).

DFHMDI – Define uma tela.

DFHMDF – Define um campo de tela.

O fonte de um mapa BMS deve ter uma macro DFHMSD definindo o mapset, uma macro DFHMDI para cada tela do mapset, e após cada macro DFHMDI deverá haver uma macro DFHMDF para cada campo da tela. Encerrar o mapa BMS com uma macro:

DFHMSD  TYPE=FINAL

Um mapa BMS terá o seguinte aspecto:

MAPSET DFHMSD ....
TELA1 DFHMDI ....
CAMPO

DFHMDF

DFHMDF

....
------------------ ------------- ....
TELA2

DFHMDI

DFHMDF

....
CAMPO DFHMDF ....
------------------ ------------- ....
  DFHMSD TYPE=FINAL
  END  

Depois de escrito o fonte da tela, deve-se compila-lo e esta compilação gerará:

  • Um modulo objeto da tela usado pelo TCP (Terminal control program) para gerar os comandos de tela no protocolo 3270.
  • Uma área copy (book) com os campos da tela para ser inserida no programa Cobol.