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.