43
© 2002. Reproduction prohibited. Please inform Xephon of any infringement.
LA R3,SELMASK(R3) INDEX INTO SELECTION MASK BYTE @MC3
OI Ø(R3),*-* @MC3
EX R1,*-4 SET APPRIPRIATE BIT IN MASK @MC3
LM R1,R3,SAVESUB RESTORE WORK REGS @MC3
*******************************
* WRITE OUT RETRIEVED DATA
*******************************
OCCSELY DS ØH FIELD SELECTED.
ST R2,VALUELEN PASS LEN OF CLIST VARIABLE DATA
ST R3,VALUEPTR POINT TO DATA FOR CLIST VARIABLE
LA RØ,9(R2) ADD LEN FIELD DATA TO MSG LEN.
LM R2,R3,BUFPTRS RESTORE LEN AND ADDR OF SOURCE FIELD
FLDMSG DS ØH
LA R1,LINE TO INFO TO WRITE OUT (RØ=LEN)
CLI KLIST+1,2 WAS NOLIST SPECIFIED @MC7
BE *+8 YES, DONT DISPLAY DATA @MC7
BAL R14,SPUTMSG
BAL R1Ø,SCVAR WRITE CLIST VARIABLE
FLDNXT DS ØH
CLI KRG+1,1 IS FIELD A REPEAT-GROUP ? @MC7
BNE FLDNXTA NO, SINGLE FIELD @MC7
LM R2,R3,BUFPTRS RESTORE LEN AND ADDR OF SOURCE FIELD
*
* FOR REPEAT GROUP OCCURRENCES , PREPARE TO PROCESS NEXT OCCURRENCE.
* WHEN ALL ARE DONE, WRITE THE CLIST VARIABLE CONTAINING THE
* NUMBER OF OCCURRENCES (THE NUMBER OF CLIST VARIABLES CREATED).
*
LA R3,Ø(R2,R3) PAST OCCURRENCE
LA R2,4(R2) INCL LEN-FLD IN LEN OF OCCURRENCE
SR R4,R2 DECR LEN LEFT TO PROCESS
BP GETFØ5 PROCESS NEXT OCCURRENCE
* ALL DONE, CREATE VARIABLE WITH COUNT IN.
LA RØ,VARNUM POINT TO NUMBER OF OCCURRENCES
ST RØ,VALUEPTR PASS ADDR TO CLIST VAR. ROUTINE
MVC VALUELEN,VARNUML ..AND LENGTH OF IT
ZAP OCCNO,=PØ THIS FIELD IS NOT RPT GROUP DATA
BAL R1Ø,SCVAR CREATE VARIABLE WITH COUNT IN IT
MVI VARNUM,CØ RESET COUNT VAR FOR NEXT FIELD @MC3
MVC VARNUML,=F1' @MC3
* THRO TO NEXT ICHEACTN (FIELD)
* PROCESS NEXT FIELD
*
FLDNXTA DS ØH
LA R6,4(R6) TO NEXT ACTION POINTER
BCT R5,GETFLDS
ENDFLDS DS ØH
*
********************************************************************
*
* FREEMAIN STORAGE AND RETURN TO CALLER
Comentários a estes Manuais