The following example builds and updates and MPB, then invokes
the MMS translate function to obtain the translated message. There
are more examples for each MMS macro (BLDMPB, QRYLANG, TRANMSG, UPDTMPB)
in the
z/OS MVS Programming: Assembler Services Reference ABE-HSP and
the
z/OS MVS Programming: Assembler Services Reference IAR-XCT.
TRANSMPB CSECT
TRANSMPB AMODE 31
TRANSMPB RMODE ANY
STM 14,12,12(13)
BALR 12,0
USING *,12
ST 13,SAVE+4
LA 15,SAVE
ST 15,8(13)
LR 13,15
*
***********************************************************************
* OBTAIN WORKING STORAGE AREA *
***********************************************************************
GETMAIN RU,LV=STORLEN,SP=SP230
LR R4,R1
*
***********************************************************************
* CREATE MPB HEADER SECTION *
***********************************************************************
*
BLDMPB MPBPTR=(R4),MPBLEN=MPBL,MSGID=MSGID, C
MSGIDLEN=MIDLEN
*
***********************************************************************
* ADD SUBSTITUTION DATA TO MPB FOR DAY 3, TUESDAY *
***********************************************************************
*
LR R2,R4
A R2,MPBL
USING VARS,R2
*
UPDTMPB MPBPTR=(R4),MPBLEN=MPBL,SUBOOFST=VARS, C
TOKEN=TOKN,TOKLEN=TOKL,TOKTYPE=TOKT, C
SUBSDATA=SDATA,SUBSLEN=SDATAL
*
USING MIO,R3
LA R3,VARSLEN OBTAIN LENGTH OF VARS AREA
AR R3,R2 CALCULATE ADDRESS MIO
LA R5,MLEN GET LENGTH OF MIO
AR R5,R3 CALCULATE ADDRESS OF OUTPUT BUFFER
ST R4,VARSINBF CREATE ADDRESS LIST
*
***********************************************************************
* ISSUE TRANSLATE TO OBTAIN MESSAGE TEXT REPRESENTED BY THE *
* CREATED MPB *
***********************************************************************
*
TRANMSG MIO=MIO,MIOL=MIOLEN,INBUF=(VARSINBF,ONE), C
OUTBUF=(R5),OUTBUFL=OUTAREAL,LANGCODE=LC
*
***********************************************************************
* FREE STORAGE AREA *
***********************************************************************
*
FREEMAIN RU,LV=STORLEN,SP=SP230,A=(4)
*
L 13,SAVE+4
LM 14,12,12(13)
BR 14
DROP
***********************************************************************
MPBL DC A(MPBLEN)
MSGID DC CL10'MSGID2'
MIDLEN DC A(MIDL)
TOKN DC CL3'DAY'
TOKL DC F'3'
TOKT DC CL1'3'
SDATA DC CL1'3'
SDATAL DC A(SDL)
MIOLEN DC A(MLEN)
OUTAREAL DC A(STORLEN-(MPBLEN+VARSLEN+MLEN))
ONE DC F'1'
LC DC CL3'JPN'
SAVE DC 18F'0'
SP230 EQU 230
STORLEN EQU 512
SDL EQU 6
MIDL EQU 6
MPBLEN EQU (MPBVDAT-MPB)+(MPBMID-MPBMSG)+(MPBSUB-MPBSB)+MIDL+SDL
MLEN EQU (MIOVDAT-MIO)+MIOMSGL
R1 EQU 1
R2 EQU 2
R3 EQU 3
R4 EQU 4
R5 EQU 5
***********************************************************************
DSECT
CNLMMPB
CNLMMCA
CNLMMIO
VARS DSECT
VARSINBF DS F
VARSAREA DS CL24
VARSLEN EQU *-VARS
END TRANSMPB