I'm working on an assignment for class, so I'm still not very literate with assembly language, and we are working on Control Blocks. I'm a grad student, and before this class I've taken a regular Assembly language class about 3 yrs ago. This is a class on the Z/Os. So my Assembly skills are pretty rusty.
On to the question, we are to navigate through a set of task related control blocks, I'm getting stuck when moving the Jobname from the TIOT to JOBNAME in the GETTIOT Routine.. I keep getting an ABEND when I do MVC JOBNAME(8),TIOCNJOB. Well actually when I print it.. is when I get the actual error.
Here is the output from the run.
http://ideone.com/PtapO
//........ JOB ,'JC',MSGCLASS=H,REGION=2048K
//STEP1 EXEC ASMACLG
//C.SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR
// DD DSN=KC02.SYS2.MACLIB,DISP=SHR
// DD DSN=KC02.CSCI464.MACLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
COPY ASMMSP
PRINT NOGEN
EQUREGS
MAIN CSECT
STM 14,12,12(13) SAVES ALL CALLING REGS EXCEPT R13
LR 12,15 LOADS ADDRESS OF MAIN INTO R12
USING MAIN,12 SETS R12 AS BASE REGISTER
LA 14,MAINSAVE WHERE REGISTERS ARE STORED WHEN CALL
ST 13,4(,14) BACKWARD POINTER STORED
ST 14,8(,13) FORWARD POINTER STORED
LR 13,14 R13 POINTED TO MAIN'S SAVE AREA
PGMDUMP
*
* Csect main processing logic goes here.
*
BAL R10,GETPSA GETS PSA
BAL R10,GETTCB GETS TCB
BAL R10,GETTIOT GETS TIOT
XPRNT JOBNAME,8
*
L 13,4(,13) LOADS ADDRESS OF CALLING ROUTINE REGS
LM 14,12,12(13) RELOADS CALLING ROUTINE'S REGISTERS
BR 14 RETURN CONTROL
***********************************************************************
* STORAGE FOR MAIN *
***********************************************************************
LTORG
MAINSAVE DS 18F
*
*
*---------------------------------------------------------------------*
* GETPSA Routine - get the PSA ADDR *
*---------------------------------------------------------------------*
GETPSA DS 0H Routine entry point.
STM R0,R15,PSAVE SAVES ALL REGS
*
LA R5,0 GET THE ADDR OF PSA
USING PSA,R5 SET ADDRESSABILITY TO PSA
*
LM R6,R4,PSAVE RESTORES ALL REGISTERS BUT 5
BR R10 RETURN TO MAIN
***********************************************************************
* STORAGE FOR GETPSA *
***********************************************************************
PSAVE DS 16F REGISTERS SAVED HERE
*
*
*---------------------------------------------------------------------*
* GETTCB Routine - get the TCB ADDR *
*---------------------------------------------------------------------*
GETTCB DS 0H Routine entry point.
STM R0,R15,TSAVE SAVES ALL REGS
*
L R5,PSATOLD GET THE ADDR OF TCB FROM PSA
USING TCB,R5 SET ADDRESSABILITY TO TCB
*
LM R6,R4,TSAVE RESTORES ALL REGISTERS BUT 5
BR R10 RETURN TO MAIN
***********************************************************************
* STORAGE FOR GETTCB *
***********************************************************************
TSAVE DS 16F REGISTERS SAVED HERE
*
*
*---------------------------------------------------------------------*
* GETTIOT Routine - get the TIOT ADDR AND STORE JOB AND STEP NAME *
*---------------------------------------------------------------------*
GETTIOT DS 0H Routine entry point.
STM R0,R15,TIOSAVE SAVES ALL REGS
*
L R6,TCBTIO GET THE ADDR OF TIOT FROM TCB
USING TIOT1,R6 SET ADDRESSABILITY TO TIOT
MVC JOBNAME(8),TIOCNJOB STORE JOBNAME
MVC STEPNAME(8),TIOCPSTN STORE STEP NAME
*
LM R7,R5,TIOSAVE RESTORES ALL REGISTERS BUT 6
BR R10 RETURN TO MAIN
***********************************************************************
* STORAGE FOR GETTIOT *
***********************************************************************
TIOSAVE DS 16F REGISTERS SAVED HERE
*
JOBNAME DS CL8'A' STORE JOB NAME
STEPNAME DS CL8 STORE STEP NAME FOR NON-PROCS
*
*
*
***********************************************************************
*** DSECTS FOR SYSTEM CONTROL BLOCKS ***
***********************************************************************
*---------------------------------------------------------------------*
* TIOT Dsect. *
*---------------------------------------------------------------------*
TIOT DSECT
IEFTIOT1
*---------------------------------------------------------------------*
* PSA Dsect. *
*---------------------------------------------------------------------*
IHAPSA
*---------------------------------------------------------------------*
* TCB Dsect. *
*---------------------------------------------------------------------*
IKJTCB
IHAEPIE
/*
//L.SYSLIB DD DSN=KC02293.SYS2.CALLIB,DISP=SHR
//G.STEPLIB DD DSN=KC02293.CSCI464.LOADLIB,DISP=SHR
//G.SPX$DUMP DD SYSOUT=*
//G.XPRNT DD SYSOUT=*
//G.XSNAPOUT DD SYSOUT=*
//STEP1 EXEC ASMACLG
//C.SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR
// DD DSN=KC02.SYS2.MACLIB,DISP=SHR
// DD DSN=KC02.CSCI464.MACLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
COPY ASMMSP
PRINT NOGEN
EQUREGS
MAIN CSECT
STM 14,12,12(13) SAVES ALL CALLING REGS EXCEPT R13
LR 12,15 LOADS ADDRESS OF MAIN INTO R12
USING MAIN,12 SETS R12 AS BASE REGISTER
LA 14,MAINSAVE WHERE REGISTERS ARE STORED WHEN CALL
ST 13,4(,14) BACKWARD POINTER STORED
ST 14,8(,13) FORWARD POINTER STORED
LR 13,14 R13 POINTED TO MAIN'S SAVE AREA
PGMDUMP
*
* Csect main processing logic goes here.
*
BAL R10,GETPSA GETS PSA
BAL R10,GETTCB GETS TCB
BAL R10,GETTIOT GETS TIOT
XPRNT JOBNAME,8
*
L 13,4(,13) LOADS ADDRESS OF CALLING ROUTINE REGS
LM 14,12,12(13) RELOADS CALLING ROUTINE'S REGISTERS
BR 14 RETURN CONTROL
***********************************************************************
* STORAGE FOR MAIN *
***********************************************************************
LTORG
MAINSAVE DS 18F
*
*
*---------------------------------------------------------------------*
* GETPSA Routine - get the PSA ADDR *
*---------------------------------------------------------------------*
GETPSA DS 0H Routine entry point.
STM R0,R15,PSAVE SAVES ALL REGS
*
LA R5,0 GET THE ADDR OF PSA
USING PSA,R5 SET ADDRESSABILITY TO PSA
*
LM R6,R4,PSAVE RESTORES ALL REGISTERS BUT 5
BR R10 RETURN TO MAIN
***********************************************************************
* STORAGE FOR GETPSA *
***********************************************************************
PSAVE DS 16F REGISTERS SAVED HERE
*
*
*---------------------------------------------------------------------*
* GETTCB Routine - get the TCB ADDR *
*---------------------------------------------------------------------*
GETTCB DS 0H Routine entry point.
STM R0,R15,TSAVE SAVES ALL REGS
*
L R5,PSATOLD GET THE ADDR OF TCB FROM PSA
USING TCB,R5 SET ADDRESSABILITY TO TCB
*
LM R6,R4,TSAVE RESTORES ALL REGISTERS BUT 5
BR R10 RETURN TO MAIN
***********************************************************************
* STORAGE FOR GETTCB *
***********************************************************************
TSAVE DS 16F REGISTERS SAVED HERE
*
*
*---------------------------------------------------------------------*
* GETTIOT Routine - get the TIOT ADDR AND STORE JOB AND STEP NAME *
*---------------------------------------------------------------------*
GETTIOT DS 0H Routine entry point.
STM R0,R15,TIOSAVE SAVES ALL REGS
*
L R6,TCBTIO GET THE ADDR OF TIOT FROM TCB
USING TIOT1,R6 SET ADDRESSABILITY TO TIOT
MVC JOBNAME(8),TIOCNJOB STORE JOBNAME
MVC STEPNAME(8),TIOCPSTN STORE STEP NAME
*
LM R7,R5,TIOSAVE RESTORES ALL REGISTERS BUT 6
BR R10 RETURN TO MAIN
***********************************************************************
* STORAGE FOR GETTIOT *
***********************************************************************
TIOSAVE DS 16F REGISTERS SAVED HERE
*
JOBNAME DS CL8'A' STORE JOB NAME
STEPNAME DS CL8 STORE STEP NAME FOR NON-PROCS
*
*
*
***********************************************************************
*** DSECTS FOR SYSTEM CONTROL BLOCKS ***
***********************************************************************
*---------------------------------------------------------------------*
* TIOT Dsect. *
*---------------------------------------------------------------------*
TIOT DSECT
IEFTIOT1
*---------------------------------------------------------------------*
* PSA Dsect. *
*---------------------------------------------------------------------*
IHAPSA
*---------------------------------------------------------------------*
* TCB Dsect. *
*---------------------------------------------------------------------*
IKJTCB
IHAEPIE
/*
//L.SYSLIB DD DSN=KC02293.SYS2.CALLIB,DISP=SHR
//G.STEPLIB DD DSN=KC02293.CSCI464.LOADLIB,DISP=SHR
//G.SPX$DUMP DD SYSOUT=*
//G.XPRNT DD SYSOUT=*
//G.XSNAPOUT DD SYSOUT=*