IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Doubt in WTO Macro's Executable form


IBM Mainframe Forums -> PL/I & Assembler
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
dsivapradeep

New User


Joined: 06 Jul 2012
Posts: 43
Location: INDIA

PostPosted: Sun Oct 14, 2012 8:30 pm
Reply with quote

Hi,

I'm learning WTO macro's executable form and tried the below simple code to display 'Hello World' message.
Code:

WTOVAR START             
       BALR 12,0         
       USING *,12       
       WTO MF=(E,WTOMSG)
       BR 14             
WTOMSG DC AL2(WTOEND-*,0)
MESSAGE DC C'HELLO WORLD'
WTOEND EQU *             
      END WTOVAR         

I din't understand the WTOMSG contents i.e. AL2(WTOEND-*,0).
WTOEND-* is referring to which location and why is second parameter here 0?
Can anyone tell me what happened here?
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Sun Oct 14, 2012 9:00 pm
Reply with quote

for portablility it would be wiser to use for the <message part>

Code:
WTO MF=L


but why not look at the manuals Yourself for the various wto formats ?


z/OS V1R10.0 MVS Programming Assembler Services Guide
publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA2A680/CCONTENTS?SHELF=IEA2BK91&DN=SA22-7605-10&DT=20080523015946

z/OS V1R10.0 MVS Programming Assembler Services Reference Vol 2 (IARR2V-XCTLX)
publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA2A990/CCONTENTS?SHELF=IEA2BK91&DN=SA22-7607-14&DT=20080601235844

z/OS V1R10.0 MVS Programming Authorized Assembler Services Guide
publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA2A890/CCONTENTS?SHELF=IEA2BK91&DN=SA22-7608-13&DT=20080602053331

z/OS V1R10.0 MVS Programming Authorized Assembler Services Reference Vol 4 (SETFRR-WTOR)

publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA2A480/CCONTENTS?SHELF=IEA2BK91&DN=SA22-7612-10&DT=20080523094252
Back to top
View user's profile Send private message
prino

Senior Member


Joined: 07 Feb 2009
Posts: 1306
Location: Vilnius, Lithuania

PostPosted: Sun Oct 14, 2012 9:01 pm
Reply with quote

Ever thought about stressing your lonely grey cell by reading the manual?
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Sun Oct 14, 2012 9:04 pm
Reply with quote

here is a working sample from an old installation

Code:


         TITLE 'IPOWTO    - OPERATIONS COMMUNICATION'                   00010000
*/* LIB: IPO1.SAMPLIB                                                   00020000
*/* OBJ: IPO1.LINKLIB                                                   00030000
*/* GDE: CBIPO MVS CUSTOMIZATION                                        00040000
*/* DOC: THIS PROGRAM PROVIDES PROGRAMMER TO OPERATOR COMMUNICATION.    00050000
*********************************************************************** 00060000
* $MOD(IPOWTO) PROD(PROCESS):                                 /*@D1C*/* 00070000
*                                                                     * 00080000
*             MODULE NAME = IPOWTO                            /*@D1C*/* 00090000
*                                                                     * 00100000
*             DESCRIPTIVE NAME =  MVS CUSTOM-BUILT IPO                * 00110000
*       SUPPLIED PROGRAM FOR PROGRAMMER TO COMMUNICATE WITH OPERATOR  * 00120000
*                                                                     * 00130000
*             COPYRIGHT = 5751-CS1 IBM CORP 1983, 1988                * 00140000
*                                                                     * 00150000
*             STATUS = RELEASE 1.0                                    * 00160000
*                                                                     * 00170000
*             FUNCTION =                                              * 00180000
*                SERVICE THE COMMUNICATIONS NEEDS OF A PROGRAM TO THE * 00190000
*                CONSOLE OPERATOR BY READING SYSIN AND ISSUING WTO'S  * 00200000
*                TO DISPLAY THESE MESSAGES TO THE OPERATOR.  THE      * 00210000
*                PROGRAM THEN ISSUES A WTOR:                          * 00220000
*               'ENTER C TO CONINUE PROCESSING OR R TO REPEAT DISPLAY'* 00230000
*                                                                       00240000
*             OPERATION =                                             * 00250000
*        IPOWTO  READS CARD IMAGES FROM SYSIN AND THEN        /*@D1C*/* 00260000
*        (1) DISPLAYS THEM TO THE OPERATOR USING WTO MACRO            * 00270000
*        (2) WRITES THEM TO SYSPRINT USING PUT MACRO                  * 00280000
*        (3) ISSUES A WTOR MACRO TO LET THE OPERATOR CONTINUE         * 00290000
*            PROCESSING (REPLY C) OR TO REPEAT DISPLAY (REPLY R)      * 00300000
*        NOTE THAT IF A PARM IS PASSED, IT IS USED AS FIRST MESSAGE   * 00310000
*                                                                     * 00320000
*              NOTES =                                                * 00330000
*                                                                     * 00340000
*                 DEPENDENCIES = CHARACTER IS EBCDIC.  REASSEMBLE     * 00350000
*                    IF A DIFFERENT CHARACTER SET IS NEEDED.          * 00360000
*                                                                     * 00370000
*                 RESTRICTIONS = MUST SUPPLY DCB ATTRIBUTES ON        * 00380000
*                    SYSPRINT DD CARD, E.G.                           * 00390000
*                    DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)              * 00400000
*                                                                     * 00410000
*                PATCH LABEL = N/A                                    * 00420000
*                                                                     * 00430000
*             MODULE TYPE = PROCEDURE                                 * 00440000
*                                                                     * 00450000
*                PROCESSOR = ASM                                      * 00460000
*                                                                     * 00470000
*                MODULE SIZE = 1K                                     * 00480000
*                                                                     * 00490000
*                ATTRIBUTES = PROTECT KEY 8, NONREUSABLE              * 00500000
*                                                                     * 00510000
*             ENTRY POINTS = IPOWTO   (ONLY ENTRY POINT)      /*@D1C*/* 00520000
*                                                                     * 00530000
*                LINKAGE =  // EXEC PGM=IPOWTO                /*@D1C*/* 00540000
*                                                                     * 00550000
*             INPUT = REGISTER 1 POINTS TO PARM FIELD ON EXEC CARD    * 00560000
*                                                                     * 00570000
*             OUTPUT = WTO OF PARM FIELD IF AVAILABLE                 * 00580000
*                      WTO OF SYSIN CARD IMAGES                       * 00590000
*                      WTOR TO OPERATOR ASKING FOR PERMISSION TO      * 00600000
*                           CONTINUE PROCESSING OR REDISPLAY MSG.     * 00610000
*                                                                     * 00620000
*             EXIT - NORMAL = AT PROGRAM END VIA BRANCH REGISTER 14   * 00630000
*                                                                     * 00640000
*                OUTPUT = NONE                                        * 00650000
*                                                                     * 00660000
*                RETURN CODE = ZERO                                   * 00670000
*                                                                     * 00680000
*             EXIT - ERROR = NONE                                     * 00690000
*                                                                     * 00700000
*             EXTERNAL REFERENCES =  NONE                             * 00710000
*                                                                     * 00720000
*                ROUTINES = NONE                                      * 00730000
*                                                                     * 00740000
*                DATA AREAS = NONE                                    * 00750000
*                                                                     * 00760000
*                CONTROL BLOCKS = NONE                                * 00770000
*                                                                     * 00780000
*             TABLES = NONE                                           * 00790000
*                                                                     * 00800000
*             MACROS = WTO,WTOR                                       * 00810000
*                                                                     * 00820000
*             CHANGE ACTIVITY :                                       * 00830000
*                                                                     * 00840000
*  $D1 = DCR6052,1.0,063086,CAO:  RENAMED WTO TO IPOWTO DUE TO        * 00850000
*                                 CONFUSION WITH CUSTOMERS            * 00860000
*                                 (ACTUALLY AN ACTIVITY RECORD 6052   * 00870000
*                                 RECORDED AS DCR TO ADHERE TO CHANGE * 00880000
*                                 FLAGGING STANDARDS)                 * 00890000
*                                                                     * 00900000
*                                                                     * 00910000
*                                                                     * 00920000
*             MESSAGES = NO ERROR MESSAGES ISSUED                     * 00930000
*                                                                     * 00940000
*             ABEND CODES = 013 IF DCB ATTRIBUTES NOT SUPPLIED ON     * 00950000
*                           SYSPRINT DD CARD                          * 00960000
*                                                                     * 00970000
*********************************************************************** 00980000
*        REGISTER USAGE FOLLOWS...                                    * 00990000
R0       EQU   0                   WORK REG                           * 01000000
R1       EQU   1                   PTR TO INPUT PARM                  * 01010000
R2       EQU   2                   WORK REG                           * 01020000
R11      EQU   11                  PTR TO FIRST MESSAGE IF NOZERO PARM* 01030000
R12      EQU   12                  BASE REG                           * 01040000
R13      EQU   13                  PTR TO IPOSAVE                     * 01050000
R14      EQU   14                  LINKAGE REG                        * 01060000
R15      EQU   15                  LINKAGE REG                        * 01070000
ML       EQU   70                  MSG LENGTH                         * 01080000
*********************************************************************** 01090000
IPOWTO   CSECT                     BEGINING OF PROGRAM         /*@D1C*/ 01100000
         USING *,R12               SET UP BASE REG                      01110000
         SAVE  (14,12),,IPO.WTO..&SYSDATE    SAVE REGESTERS             01120000
         LR    R12,R15             SET UP ADDRESSABILITY                01130000
         LR    R2,R13              SAVE ADDR OF PREVIOUS SAVEAREA       01140000
         LA    R13,IPOSAVE         POINT TO CURRENT SAVEAREA            01150000
         ST    R13,8(R2)           LINK PREVIOUS SAVEAREA TO IPOSAVE    01160000
         ST    R2,4(R13)           LINK IPOSAVE TO PREVIOUS SAVEAREA    01170000
         LR    R11,R1              PTR PARM ADDR - FIRST COMMAND        01180000
         L     R11,0(R11)          SAVE ADDR OF PARM IN R11             01190000
IPOPARM  LH    R2,0(R11)           LENGTH TO R2                         01200000
         C     R2,=F'0'            PARM LENGTH = 0?                     01210000
         BE    IPOGETIN            YES - GET RECORD FROM SYSIN          01220000
         C     R2,=A(ML)           COMPARE LENGTH OF TO MAX LENGTH      01230000
         BNH   IPOMOVE             LENGTH OF PARM OKAY                  01240000
         LA    R2,ML               RESET PARM LENGTH TO MAX             01250000
IPOMOVE  MVC   IPOMSG,=CL(ML)' '   CLEAR OUT MSG AREA                   01260000
         BCTR  R2,0                LENGTH-1 FOR MVC                     01270000
         EX    R2,IPOMVC           MOVE PARM INTO MSGAREA               01280000
         B     IPOGOTIN            PROCESS FIRST MSG                    01290000
IPOGETIN TM    INPUT+48,X'10'      INPUT FILE OPEN?                     01300000
         BO    IPOGET              BR IF SO                             01310000
         OPEN  (INPUT)             OPEN IT                              01320000
         TM    INPUT+48,X'10'      DID IT OPEN                          01330000
         BZ    IPOEND              NO - NO VERICATION (NO WTOR)         01340000
IPOGET   GET   INPUT               READ RECORD FROM SYSIN               01350000
         MVC   IPOMSG,0(R1)        MOVE ML CHAR OF INPUT TO MSG AREA    01360000
IPOGOTIN CLC   IPOMSG,=CL(ML)' '   TEST FOR BLANK MESSAGE               01370000
         BE    IPOGETIN            SKIP BLANK RECORD                    01380000
         MVC   IPOWTOL+4(ML),IPOMSG PLUG WTO MSG                        01390000
         WTO   MF=(E,IPOWTOL)      DISPLAY MSG                          01400000
         TM    OUTPUT+48,X'10'     OUTPUT FILE OPEN?                    01410000
         BO    IPOOUT              BR IF SO                             01420000
         OPEN  (OUTPUT,(OUTPUT))   OPEN IT                              01430000
         TM    OUTPUT+48,X'10'     DID OUTPUT OPEN                      01440000
         BZ    IPOOUTNO            NO - SKIP OUTPUT                     01450000
IPOOUT   PUT   OUTPUT,IPOMSG       SAME MSG TO OUTPUT FILE              01460000
IPOOUTNO B     IPOGETIN            READ NEXT RECORD                     01470000
IPOEOD   MVI   IPORPECB,0          CLEAR OUT ECB FOR REPLY              01480000
         WTOR  'REPLY C TO CONTINUE PROCESSING OR R TO REPEAT DISPLAY',X01490000
               IPOREPLY,1,IPORPECB,ROUTCDE=(1,5,11)                     01500000
         WAIT  1,ECB=IPORPECB      WAIT FOR OPERATOR TO REPLY           01510000
         CLI   IPOREPLY,C'C'       IS IT CONTINUE?                      01520000
         BE    IPOEND              YES - CONTINUE PROCESSING            01530000
         CLI   IPOREPLY,C'R'       IS IT REPEAT MESSAGE?                01540000
         BNE   IPOEOD              NO - ASK OPERATOR AGAIN              01550000
         CLOSE (INPUT)             YES - REPEAT MSG - CLOSE INPUT       01560000
         B     IPOPARM             GO TO FIRST MSG                      01570000
IPOEND   L     R13,IPOSAVE+4       RESTORE R13                          01580000
         RETURN (14,12),T,RC=0     RETURN TO MVS                        01590000
OUTPUT   DCB   DDNAME=SYSPRINT,DSORG=PS,MACRF=(PM)                      01600000
INPUT    DCB   DDNAME=SYSIN,DSORG=PS,MACRF=(GL),EODAD=IPOEOD            01610000
IPOMVC   MVC   IPOMSG(0),2(R11)    EXEC INSTRUCTION TO MOVE PARM        01620000
IPOSAVE  DS    18F                 IPOSAVE AREA                         01630000
IPORPECB DC    F'0'                ECB FOR WTOR                         01640000
IPOAREA  DC    0F'0',AL2(ML+4,0)   LENGTH FOR OUTPUT IF RECFM=VB        01650000
IPOMSG   DC    CL(ML)' '           STORAGE FOR ONE MSG                  01660000
IPOPAD   DC    CL(80-ML)' '        PAD TO 80 CHARACTERS                 01670000
IPOREPLY DS    CL1                 REPLY FOR WTO                        01680000
IPOWTOL  WTO   '1234567891123456789212345678931234567894123456789512345X01690000
               678961234567897',ROUTCDE=(1,5,11),DESC=(7),MF=L          01700000
         LTORG                   , LTORG NEEDED FOR ADDRESSABILITY      01710000
         END                     , END OF PROGRAM                       01720000
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Mon Oct 15, 2012 7:32 am
Reply with quote

Hello,

Another thing that can easily be done, but more than 99% of the time, Should Not. . .

None of the systems i've supported in more than 20 years allow developers to issue WTOs.

Why does someone believe this is needed or even appropriate?
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> PL/I & Assembler

 


Similar Topics
Topic Forum Replies
No new posts PRINTOUT macro PL/I & Assembler 0
No new posts create rexx edit Macro that edits the... CLIST & REXX 3
No new posts To Remove spaces (which is in hex for... JCL & VSAM 10
No new posts Issues with executing a REXX MACRO th... TSO/ISPF 4
No new posts Facing issue in Run Edit Macro Job CLIST & REXX 9
Search our Forums:

Back to Top