* Floyd's triangle 21/06/2018 FLOYDTRI PROLOG L R5,NN nn BCTR R5,0 -1 M R4,NN nn*(nn-1) SRA R5,1 /2 A R5,NN m=(nn*(nn-1))/2+nn; max_value CVD R5,XDEC binary to packed decimal (PL8) EDMK ZN,XDEC+4 packed dec (PL4) to char (CL8) S R1,=A(ZN) r1=number of spaces L R9,=A(L'ZN+1) length(zn08)+1 SR R9,R1 s=length(m)+1 SR R8,R8 k=0 LA R6,1 i=1 DO WHILE=(C,R6,LE,NN) do i=1 to nn LA R10,PG pgi=0 LA R7,1 j=1 DO WHILE=(CR,R7,LE,R6) do j=1 to i LA R8,1(R8) k=k+1 XDECO R8,XDEC k LA R11,XDEC+12 +12 SR R11,R9 -s LR R2,R9 s BCTR R2,0 -1 EX R2,MVCX mvc @PG+pgi,@XDEC+12-s,LEN=s AR R10,R9 pgi+=s LA R7,1(R7) j++ ENDDO , enddo j XPRNT PG,L'PG print buffer LA R6,1(R6) i++ ENDDO , enddo i EPILOG MVCX MVC 0(0,R10),0(R11) mvc PG,XDEC NN DC F'14' number of rows PG DC CL80' ' buffer XDEC DS CL12 temp ZN DC X'4020202020202020' mask CL8 7num YREGS END FLOYDTRI