AI and mainframe assembler

Generate JCL to Assemble


Does AI know JCL?

Prompt:
Generate JCL to invoke the HLASM to assemble, link and execute a program called MYBR14

ChatGPT generated this JCL:
//MYJOB     JOB (ACCT),'ASSEMBLE LINK EXEC',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1)
//ASMSTEP   EXEC PGM=ASMA90,REGION=4096K
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *
MYBR14   CSECT
         BR    14
         END   MYBR14
/*
//SYSLIB    DD  DSN=SYS1.MACLIB,DISP=SHR
//SYSPUNCH  DD  DUMMY
//SYSLIN    DD  DSN=&&OBJ,UNIT=VIO,SPACE=(TRK,(1,1)),DISP=(MOD,PASS)
//*
//LKEDSTEP  EXEC PGM=IEWL,REGION=4096K,
//             PARM='MAP,LET,LIST,XREF'
//SYSPRINT  DD  SYSOUT=*
//SYSLIN    DD  DSN=&&OBJ,DISP=(OLD,DELETE)
//SYSLMOD   DD  DSN=&&LOADSET(MYBR14),UNIT=VIO,
//             SPACE=(TRK,(1,1,1)),DISP=(MOD,PASS)
//SYSUT1    DD  UNIT=VIO,SPACE=(CYL,(1,1))
//*
//EXECSTEP  EXEC PGM=MYBR14
//STEPLIB   DD  DSN=&&LOADSET,DISP=(OLD,PASS)
//SYSOUT    DD  SYSOUT=*
//

My comments:

 

Grok generated this JCL:
//MYBR14JB JOB (ACCT),'ASSEMBLE LINK EXEC',CLASS=A,MSGCLASS=H,
//          NOTIFY=&SYSUID
//********************************************************************
//* JCL to assemble, link, and execute HLASM program MYBR14
//********************************************************************
//ASSEMBLE EXEC PGM=ASMA90,PARM='DECK,LIST'
//SYSLIB   DD DSN=SYS1.MACLIB,DISP=SHR
//SYSUT1   DD DSN=&&SYSUT1,SPACE=(CYL,(1,1)),UNIT=SYSDA
//SYSPUNCH DD DSN=&&OBJMOD,SPACE=(TRK,(10,10)),UNIT=SYSDA,
//            DISP=(NEW,PASS)
//SYSIN    DD DSN=USER.SOURCE(MYBR14),DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSLIN   DD DUMMY
//LINK     EXEC PGM=IEWL,PARM='MAP,LIST',COND=(0,LT,ASSEMBLE)
//SYSLIB   DD DSN=SYS1.LINKLIB,DISP=SHR
//SYSUT1   DD DSN=&&SYSUT1,SPACE=(CYL,(1,1)),UNIT=SYSDA
//SYSPRINT DD SYSOUT=*
//SYSLMOD  DD DSN=USER.LOADLIB(MYBR14),DISP=SHR
//SYSLIN   DD DSN=&&OBJMOD,DISP=(OLD,DELETE)
//EXEC     EXEC PGM=MYBR14
//STEPLIB  DD DSN=USER.LOADLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//

My comments:

 

Gemini generated this JCL:
//MYBR14J JOB (ACCOUNTING),'PROGRAMMER NAME',CLASS=A,MSGCLASS=X,
//         MSGLEVEL=(1,1),NOTIFY=&SYSUID
//*
//********************************************************************
//* JCL TO ASSEMBLE, LINK, AND EXECUTE AN HLASM PROGRAM
//********************************************************************
//*
//ASMLG    EXEC PROC=ASMACLG,PARM.ASM='DECK,NOOBJECT,LIST'
//*
//ASM.SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR
//         DD DSN=SYS1.MODGEN,DISP=SHR
//*
//ASM.SYSIN  DD *
MYBR14   CSECT
         BR    14
         END   MYBR14
/*
//*
//GO.SYSPRINT DD SYSOUT=*
//GO.SYSUDUMP DD SYSOUT=*
//

My comments:

 

Copilot generated this JCL:
//MYBR14   JOB (123),'HLASM JOB',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1)
//ASM      EXEC PGM=ASMA90,PARM='OBJECT,NODECK'
//SYSPRINT DD  SYSOUT=*
//SYSIN    DD  DSN=YOUR.SOURCE(MYBR14),DISP=SHR
//SYSLIB   DD  DSN=SYS1.MACLIB,DISP=SHR
//SYSLIN   DD  DSN=&&OBJ,UNIT=VIO,SPACE=(TRK,(1,1)),DISP=(MOD,PASS)
//*
//LINK     EXEC PGM=IEWL,PARM='LIST,NCAL'
//SYSPRINT DD  SYSOUT=*
//SYSLIN   DD  DSN=&&OBJ,DISP=(OLD,DELETE)
//SYSLMOD  DD  DSN=YOUR.LOADLIB(MYBR14),DISP=SHR
//SYSUT1   DD  UNIT=SYSDA,SPACE=(CYL,(1,1))
//*
//RUN      EXEC PGM=MYBR14
//STEPLIB  DD  DSN=YOUR.LOADLIB,DISP=SHR
//SYSOUT   DD  SYSOUT=*

My comments:

 

Claude generated this JCL:
//MYBR14JB JOB  (ACCT),'ASSEMBLE LINK GO',CLASS=A,MSGCLASS=A,
//             MSGLEVEL=(1,1),NOTIFY=&SYSUID
//*
//* STEP 1: ASSEMBLE THE PROGRAM
//*
//ASM      EXEC PGM=ASMA90,PARM='OBJECT,NODECK,NOLIST'
//SYSLIB   DD   DSN=SYS1.MACLIB,DISP=SHR
//         DD   DSN=SYS1.MODGEN,DISP=SHR
//SYSIN    DD   DSN=YOUR.SOURCE.LIBRARY(MYBR14),DISP=SHR
//SYSLIN   DD   DSN=&&OBJSET,DISP=(NEW,PASS),UNIT=SYSDA,
//             SPACE=(CYL,(1,1)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
//SYSPRINT DD   SYSOUT=*
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))
//*
//* STEP 2: LINK-EDIT THE PROGRAM
//*
//LKED     EXEC PGM=IEWL,PARM='MAP,LIST,LET,XREF'
//SYSLIB   DD   DSN=CEE.SCEELKED,DISP=SHR
//         DD   DSN=SYS1.CSSLIB,DISP=SHR
//SYSLIN   DD   DSN=&&OBJSET,DISP=(OLD,DELETE)
//         DD   DDNAME=SYSIN
//SYSLMOD  DD   DSN=&&GOSET(MYBR14),DISP=(NEW,PASS),UNIT=SYSDA,
//             SPACE=(CYL,(1,1,1)),DCB=(RECFM=U,BLKSIZE=6144)
//SYSPRINT DD   SYSOUT=*
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSIN    DD   *
  NAME MYBR14(R)
/*
//*
//* STEP 3: EXECUTE THE PROGRAM
//*
//GO       EXEC PGM=MYBR14
//STEPLIB  DD   DSN=&&GOSET,DISP=(OLD,DELETE)
//SYSPRINT DD   SYSOUT=*
//SYSOUT   DD   SYSOUT=*
//SYSIN    DD   *
/*
//

My comments:

My take on these results:

Same prompt, different results

You may get different results with the same prompt. As I've seen with creating images with chatbots, you can get different results on repeated requests. You will probably get different results if you use the same prompt I did.

This testing was performed in July 2025.


Return to Dave's AI and mainframe assembler page .

Last Updated: 2025-07-20
This web page is © 2025+ by David Alcock. All Rights Reserved.