those would be helpful, please, yes!
    On Thursday, June 4, 2020, 12:08:45 PM EDT, Dan at Poodles 
<[email protected]> wrote:  
 
 If you need/want the other compatibility MACROS and subroutines, just let me 
know.  

-----Original Message-----
From: IBM Mainframe Assembler List [mailto:[email protected]] On 
Behalf Of Doug Wegscheid
Sent: Thursday, June 4, 2020 10:55 AM
To: [email protected]
Subject: Re: Convert *signed* EBCDIC to packed decimal

 Binyamin, Dan, thanks. I *am* currently using ASSIST to get things prototyped, 
so this will go *really* far in helping me out. Thanks.

    On Thursday, June 4, 2020, 11:52:18 AM EDT, Dan at Poodles 
<[email protected]> wrote:  
 
 Subroutine XXXXDECO:

V100    TITLE 'XXXXDECO'
00010001
*        PUNCH ' CATALR XXXXDECO'
00020001
XXXXDECO CSECT
00030001
**--> MODULE : XXXXDECO EXTENDED DECIMAL OUTPUT CONVERSION MODULE * * *
00040001
*        XXXXDECO IS CALLED BY MACRO XDECO TO CONVERT A REGISTER      *
00050001
*        VALUE TO EDITED DECIMAL IN A 12 BYTE AREA, WITH SIGN.        *
00060001
*        ENTRY CONDITIONS :                                          *
00070001
*  R14= ADDRESS OF XDECOB DSECT CREATED BY XDECO                    *
00080001
*  R15= ENTRY POINT ADDRESS =V(XXXXDECO)                            *
00090001
*        EXIT CONDITIONS :                                            *
00100001
*  EDITED 12-BYTE RESULT OF REGISTER ARGUMENT STORED AT ADDRESS ARG. *
00110001
*        USES DSECT: XDECOB                                          *
00120001
*        NAMES: XXDO----                                              *
00130001
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00140001
        USING *,15                NOTE ENTRY POINT USING FOR BASE
00150001
        USING XDECOB,14          NOTE XDECO CONTROL BLOCK
00160001
        STM  1,2,XXDOSAVE        SAVE WORK REGISTERS
00170001
        LR    2,0                MOVE @ AREA WHERE CAN BE USED
00180001
        L    0,XDECOV            GET VALUE TO BE CONVERTED
00190001
        CVD  0,XXDODWOR          CONVERT THE VALUE
00200001
        MVC  0(12,2),XXDODECP    MOVE EDIT PATTERN IN
00210001
        LA    1,11(2)            SET UP FOR NEG NUMBER FOR EDMK
00220001
        EDMK  0(12,2),XXDODWOR+2  EDIT THE VALUE OVER
00230001
        BNM  XXDORETN            SKIP INSERTION OF - IF >= 0
00240001
        BCTR  1,0                MOVE @ POINTER BACK 1
00250001
        MVI  0(1),C'-'          INSERT - IN FRONT OF FIRST DIGIT
00260001
XXDORETN LM    1,2,XXDOSAVE        RESTORE WORKING REGS
00270001
        SPM  14                  RESTORE ORIGINAL COND CODE
00280001
        B    XDECORET            RETURN TO CALLING XDECO
00290001
        SPACE 1
00300001
XXDODECP DC    X'402020202020202020202120'    EDIT PATTERN
00310001
XXDODWOR DS    D                  WORKAREA
00320001
XXDOSAVE DS    2F                  SAVE AREA FOR REGS 1-2
00330001
        DROP  14,15              DROP BASE REGISTERS
00340001
        EJECT
00350001
XDECOB  DSECT
00360001
**--> DSECT : XDECOB    CONTROL BLOCK CREATED BY XDECO MACRO  * * * * *
00370001
*        AN XDECOB IS CREATED FOR EACH XDECO CALL, AND CONTAINS THE  *
00380001
*        @ XXXXDECO MODULE, SAVEWORDS FOR REGS R14,R15,R0, AND A WORD *
00390001
*        FOR THE VALUE TO BE CONVERTED TO DECIMAL.                    *
00400001
*        XDECOB IS USED ONLY IN MODULE XXXXDECO.                      *
00410001
*        GENERATION: XDECO                                            *
00420001
*        NAMES: XDECO---                                              *
00430001
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00440001
        DS    V(XXXXDECO)        ADCON TO GET HERE
00450001
        DS    3F                  SAVE AREA FOR REGS 14,15,0
00460001
XDECOV  DS    F                  VALUE FOR CONVERSION
00470001
XDECORET LM    14,0,4(14)          RETURN POINT @
00480001
        END  ,
00490001
    

Reply via email to