I have the code above , and it counts from one to 999.But i want to change it
to count from 1001 to 10001. Im started changing the initial value of SUM and its type
from " SUM DC P'01' " to " SUM DC H'1001' " it doesn't work! When i compile the code
i receive the abnormal error S0C7. Anyone can help me ?
Thanks,
c.s.
ADD CSECT
ADD AMODE 31
ADD RMODE 24
*
*--------------------------------------------------------------------*
* *
* register equates *
* *
*--------------------------------------------------------------------*
*
R0 EQU 0 register 0
R1 EQU 1 register 1
R2 EQU 2 register 2
R3 EQU 3 register 3
R4 EQU 4 register 4
R5 EQU 5 register 5
R6 EQU 6 register 6
R7 EQU 7 register 7
R8 EQU 8 register 8
R9 EQU 9 register 9
R10 EQU 10 register 10
R11 EQU 11 register 11
BASEREG EQU 12 base register
SAVEREG EQU 13 save area register
RETREG EQU 14 caller's return address
ENTRYREG EQU 15 entry address
RETCODE EQU 15 return code
EJECT
*
*--------------------------------------------------------------------*
* *
* standard entry setup, save area chaining, establish *
* base register and addressibility *
* *
*--------------------------------------------------------------------*
*
USING ADD,ENTRYREG establish addressibility
B SETUP branch around eyecatcher
DC CL8'ADD' program name
DC CL8'&SYSDATE' program assembled date
SETUP STM RETREG,BASEREG,12(SAVEREG) save caller's registers
BALR BASEREG,R0 establish base register
DROP ENTRYREG drop initial base register
USING *,BASEREG establish addressibilty
LA ENTRYREG,SAVEAREA point to this program save area
ST SAVEREG,4(,ENTRYREG) save address of caller's save
* area
ST ENTRYREG,8(,SAVEREG) save address of this program
* save area
LR SAVEREG,ENTRYREG point to this program savearea
EJECT
*
*--------------------------------------------------------------------*
* *
* program body *
* *
*--------------------------------------------------------------------*
LOOPINIT DS 0H
SR R2,R2
L R2,COUNTER
*
LOOP DS 0H
*
ZAP TOT,SUM
ED OUT,TOT
MVC LINE+1(77),STATLIN
MVC LINE+77(4),OUT
BAL R7,WRITELNE
MVC OUT,=X'40202020'
AP SUM,ONE
*
BCT 2,LOOP
*
*
*--------------------------------------------------------------------*
* *
* standard exit - restore caller's registers and *
* return to caller *
* *
*--------------------------------------------------------------------*
*
EXIT DS 0H halfword boundary alignment
L SAVEREG,4(,SAVEREG) restore caller's save area addr
L RETREG,12(,SAVEREG) restore return address register
LM R0,BASEREG,20(SAVEREG) restore all regs. except reg15
BR RETREG return to caller
EJECT
*
WRITELNE DS 0H
*--------------------------------------------------------------------*
* Open output files, write record, wait for completion, close file *
*--------------------------------------------------------------------*
OPEN (PRTLINE,OUTPUT)
PUT PRTLINE,LINE
BAL R8,WAITWRIT
CLOSE (PRTLINE)
BR R7
*
WAITWRIT DS 0H
*--------------------------------------------------------------------*
* waits for the 100ths of seconds specifed in WAITINT *
*--------------------------------------------------------------------*
STIMER WAIT,BINTVL=WAITINT
BR R8
*--------------------------------------------------------------------*
* *
* storage and constant definitions. *
* print output definition. *
* *
*--------------------------------------------------------------------*
*
STATLIN DS 0CL77
DC C'THIS IS A TEST PROGRAM NUMBER #0001! '
DC C'THIS IS THE CONTENT OF YOUR TOT COUNTER '
*
LINE DS 0CL81
DC C' '
DS CL80
PRTLINE DCB DSORG=PS,DDNAME=PRTLINE,MACRF=PM, X
RECFM=FA,LRECL=81,BLKSIZE=81
SUM DC P'01'
ONE DC P'01'
TOT DS PL2
OUT DC X'40202020'
SAVEAREA DC 18F'-1' register save area
COUNTER DC F'999'
WAITINT DC F'10' Time to wait in 100ths second
END ADD
ADD AMODE 31
ADD RMODE 24
*
*--------------------------------------------------------------------*
* *
* register equates *
* *
*--------------------------------------------------------------------*
*
R0 EQU 0 register 0
R1 EQU 1 register 1
R2 EQU 2 register 2
R3 EQU 3 register 3
R4 EQU 4 register 4
R5 EQU 5 register 5
R6 EQU 6 register 6
R7 EQU 7 register 7
R8 EQU 8 register 8
R9 EQU 9 register 9
R10 EQU 10 register 10
R11 EQU 11 register 11
BASEREG EQU 12 base register
SAVEREG EQU 13 save area register
RETREG EQU 14 caller's return address
ENTRYREG EQU 15 entry address
RETCODE EQU 15 return code
EJECT
*
*--------------------------------------------------------------------*
* *
* standard entry setup, save area chaining, establish *
* base register and addressibility *
* *
*--------------------------------------------------------------------*
*
USING ADD,ENTRYREG establish addressibility
B SETUP branch around eyecatcher
DC CL8'ADD' program name
DC CL8'&SYSDATE' program assembled date
SETUP STM RETREG,BASEREG,12(SAVEREG) save caller's registers
BALR BASEREG,R0 establish base register
DROP ENTRYREG drop initial base register
USING *,BASEREG establish addressibilty
LA ENTRYREG,SAVEAREA point to this program save area
ST SAVEREG,4(,ENTRYREG) save address of caller's save
* area
ST ENTRYREG,8(,SAVEREG) save address of this program
* save area
LR SAVEREG,ENTRYREG point to this program savearea
EJECT
*
*--------------------------------------------------------------------*
* *
* program body *
* *
*--------------------------------------------------------------------*
LOOPINIT DS 0H
SR R2,R2
L R2,COUNTER
*
LOOP DS 0H
*
ZAP TOT,SUM
ED OUT,TOT
MVC LINE+1(77),STATLIN
MVC LINE+77(4),OUT
BAL R7,WRITELNE
MVC OUT,=X'40202020'
AP SUM,ONE
*
BCT 2,LOOP
*
*
*--------------------------------------------------------------------*
* *
* standard exit - restore caller's registers and *
* return to caller *
* *
*--------------------------------------------------------------------*
*
EXIT DS 0H halfword boundary alignment
L SAVEREG,4(,SAVEREG) restore caller's save area addr
L RETREG,12(,SAVEREG) restore return address register
LM R0,BASEREG,20(SAVEREG) restore all regs. except reg15
BR RETREG return to caller
EJECT
*
WRITELNE DS 0H
*--------------------------------------------------------------------*
* Open output files, write record, wait for completion, close file *
*--------------------------------------------------------------------*
OPEN (PRTLINE,OUTPUT)
PUT PRTLINE,LINE
BAL R8,WAITWRIT
CLOSE (PRTLINE)
BR R7
*
WAITWRIT DS 0H
*--------------------------------------------------------------------*
* waits for the 100ths of seconds specifed in WAITINT *
*--------------------------------------------------------------------*
STIMER WAIT,BINTVL=WAITINT
BR R8
*--------------------------------------------------------------------*
* *
* storage and constant definitions. *
* print output definition. *
* *
*--------------------------------------------------------------------*
*
STATLIN DS 0CL77
DC C'THIS IS A TEST PROGRAM NUMBER #0001! '
DC C'THIS IS THE CONTENT OF YOUR TOT COUNTER '
*
LINE DS 0CL81
DC C' '
DS CL80
PRTLINE DCB DSORG=PS,DDNAME=PRTLINE,MACRF=PM, X
RECFM=FA,LRECL=81,BLKSIZE=81
SUM DC P'01'
ONE DC P'01'
TOT DS PL2
OUT DC X'40202020'
SAVEAREA DC 18F'-1' register save area
COUNTER DC F'999'
WAITINT DC F'10' Time to wait in 100ths second
END ADD