Specifications

140 IBM System z Personal Development Tool: Volume 3 Additional Topics
//A EXEC ASMACLG,PARM.C=’NOXREF’,PARM.L=’NOLIST,NOMAP’
//C.SYSIN DD *
PRINT NOGEN
ICSFAA CSECT
ICSFAA AMODE 31
ICSFAA RMODE 24
STM 14,12,12(13) SAVE CALLER’S REGISTERS
LR 12,15 USE ENTRY-POINT BASE REGISTER
USING ICSFAA,12
LR 2,13 GET A(CALLER’S SAVEAREA)
LA 13,SAVEAREA GET A(MY SAVEAREA)
USING SAVEAREA,13 MORE ‘USING’ SPACE
ST 2,SAVEAREA+4 CHAIN OLD TO NEW
ST 13,8(2) CHAIN NEW TO OLD
*
* OPEN FILES AND CHECK RESULTS
*
A1 OPEN (PRINTD,(OUTPUT))
TM PRINTD+48,X’10’ CHECK SYSPRINT OPEN STATUS
BZ ERROR1
*
* GET RANDOM NUMBERS AND PRINT THEM
*
LA 7,20 GET 20 RANDOM NUMBERS
LOOP1 CALL CSNBRNG,(RETC,REASC,EXDL,EXD,FORM,RANNUM)
CLC RETC(4),SZEROS
BNE ERROR2
LA 1,RANNUM WHERE TO START HEX CONVERSION
BAL 10,AHEXLINE
MVC PRINTLNE(80),SBLANKS
MVC PRINTLNE(21),=C’RANDOM NUMBER (HEX) =’
MVC PRINTLNE+22(16),SWOUT
PUT PRINTD,PRINTLNE
BCT 7,LOOP1
CLOSEALL CLOSE (PRINTD)
RETURN L 13,4(13) GET A(CALLER’S SAVE AREA)
LM 14,12,12(13) RESTORE CALLER’S REGISTERS
SR 15,15 SET RETURN CODE
BR 14 EXIT
*
* SIMPLE ERROR HANDLING.
*
ERROR1 WTO ‘UNABLE TO OPEN SYSPRINT DD STATEMENT’
B RETURN
*
ERROR2 WTO ‘NON-ZERO RETURN CODE’
B RETURN
*
PRINTD DCB DSORG=PS,MACRF=(PM),DDNAME=SYSPRINT,LRECL=80, X
RECFM=FB,BLKSIZE=8000
* VARIOUS WORK AREAS AND CONSTANTS
PRINTLNE DC CL80’ ‘
RETC DC F’0’ RETURN CODE (ICSF)
REASC DC F’0’ REASON CODE (ICSF)
EXDL DC F’0’ EXIT DATA LENGTH (ICSF)