> The fly in that ointment would be PL/S constructs like this one in
> the DCBD macro:
>
> %DCBD: MACRO KEYS(DATASET_ORG,DEVICE_TYPE,BASED_VALUE);
> ANS('?' || MACLABEL || ' DCBDP ' || MACKEYS || ';') SKIP;
> %END DCBD;
>
> Or this one in DCBE:
>
> DCBE: MACRO KEYS(END_OF_DATA_NAME,GET_SIZE,
> BLOCK_TOKEN_SIZE,
> EA_DSCB,
> CAPACITY_MODE,
> NCP_MULTIPLIER,ACCUM_MULTIPLIER,
> VERIFY_STRIPES,READ_PAST_EOD,
> BLOCK_SIZE,BUFFER_RMODE,SYNAD_NAME,
> LOC,
> SYNC);
> ANS('?' || MACLABEL || ' DCBEP ' || MACKEYS || ';') SKIP
> COL(5);
> %END DCBE;
>
> What is any sane conversion program supposed to make out of that? I
> would think that the DSECT conversion program would have to use the
> PL/S preprocessor code under the covers to translate that into
> something that could be used to convert to C. Plus have the PL/S
> unique macros like "DCBDP" and "DCBEP" in those two examples (yeah,
> fat chance of that...).
>
> At one point I actually thought of trying to use the PL/S parts to
> translate DSECT macros to C as an interesting side project but gave
> up when I saw that stuff.
>
> I have found that using the EDCDSECT options 'NOLC,EQU
> (DEF,BIT,BITL)' produces reasonable results that don't need too much
> manual tweaking to be useful. The results are consistent enough
> that you can write pre- and post-processors to automate some of the
> most common tweaks needed (like converting "CHAR[8]" to "void *
> __ptr64" where appropriate or converting generated struct's to
> typedef struct's).
The PL/X structure and Assembler DSECT for the DCBE are in
SYS1.MACLIB(IHADCBE) .
Jim Mulder z/OS System Test IBM Corp. Poughkeepsie, NY
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN