z/OS Language Environment Programming Guide for 64-bit Virtual Addressing Mode
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Creating a message module table

z/OS Language Environment Programming Guide for 64-bit Virtual Addressing Mode
SA38-0689-00

Language Environment locates the user-created messages using a message module table that you code in assembler.

The message module table begins with a header that indicates the number of languages in the table. In Figure 1, for example, only English is used, so the first fullword of the header declares the constant F'1'.

Figure 1. Example of a message module table with one language
         TITLE 'UXMPMSGT'
UXMPMSGT CSECT
         DC   F'1'                number of languages
         DC   CL8'ENU     '       language identifier
         DC   A(TABLEENU)         pointer to first language table
TABLEENU DC   F'01'               lowest message number in module
         DC   F'100'              highest message number in module
         DC   CL8'EXMPLASM'       message module name
         DC   F'-1'               flags indicating the last...
         DC   F'-1'                 16-byte entry (a dummy entry)...
         DC   CL8'DUMMY'            in the language table
         END  UXMPMSGT

In the message module table in Figure 2, however, English and Japanese are used, so the first fullword of the header declares the constant F'2'. Following the message module table header are tables for each language.

Figure 2. Example of a message module table with two languages
         TITLE 'UZOGMSGT'
UZOGMSGT CSECT
         DC   F'2'                number of languages
         DC   CL8'ENU     '       first language identifier
         DC   A(TABLEENU)         pointer to first language table
         DC   CL8'JPN     '       second language identifier
         DC   A(TABLEJPN)         pointer to second language table
TABLEENU DC   F'01'               lowest message number in first module
         DC   F'100'              highest message number in first module
         DC   CL8'ZOGMSGE1'       first message module name
         DC   F'101'              lowest message number in second module
         DC   F'200'              highest message number in second module
         DC   CL8'ZOGMSGE2'       second message module name
         ⋮
         DC   F'-1'               flags indicating the last...
         DC   F'-1'                 16-byte entry (a dummy entry)...
         DC   CL8'DUMMY'            in the language table
TABLEJPN DC   F'01'               lowest message number in first module
         DC   F'100'              highest message number in first module
         DC   CL8'ZOGMSGJ1'       first message module name
         DC   F'101'              lowest message number in second module
         DC   F'200'              highest message number in second module
         DC   CL8'ZOGMSGJ2'       second message module name
         ⋮
         DC   F'-1'               flags indicating the last...
         DC   F'-1'                 16-byte entry (a dummy entry)...
         DC   CL8'DUMMY'            in the language table
         END  UZOGMSGT

Each language table has one or more 16-byte entries that indicate the name of a load module and the range of message numbers the module contains. The first fullword of each 16-byte entry contains the lowest message number within the corresponding module; the second fullword contains the highest message number for that module. The last 8 bytes of each 16-byte entry contain the name of the message module to be loaded. For example, in Figure 2, Japanese messages numbered 101–200 are found in module ZOGMSGJ2. Finally, each language table ends with a dummy 16-byte entry whose first two fullwords contain the flag F'-1' indicating the end of the language table.

Use an 8-character format for the title of the message module table: 'U' (to indicate that the table contains user-created messages), followed by a 3-character facility ID, followed by MSGT. For example, the title of the message module table for messages using a facility ID of XMP would be UXMPMSGT as shown in Figure 1; the title of the message module table for messages having a facility ID of ZOG would be UZOGMSGT as shown in Figure 2.

After you create the message module table:

  1. Assemble it into a loadable TEXT file using High Level assembler.
  2. Store the message module table in a library where it can be dynamically accessed while your routine is running.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014