! PRINTD PRINT DOUBLE WORD INTEGERS !W.S.C. 28TH FEB 1977 !LAST UPDATED 02/03/77 12:50 %EXTERNALROUTINE PRINTD(%INTEGER N1,N2,SP,DEC) ! !TO PRINT OUT DOUBLE WORDS,1000 S IN N1 !UP TO 1000 IN N2.SP IS TOTAL SPACE !AS IN A WRITE COMMAND.IF DEC#0 THE LAST !TWO DIGITS ARE PRINTED AFTER A DECIMAL POINT. ! %BYTEINTEGERARRAY N(0:7) %INTEGER I,P,S,M1,M2 I=10000 P=0 M1=N1 S=-1 %WHILE I>0 %CYCLE N(P)=M1//I %IF N(P)#0 %AND S=-1 %THEN S=P M1=M1-(N(P)*I) I=I//10 P=P+1 %REPEAT I=100 M2=N2 %WHILE I>0 %CYCLE N(P)=M2//I %IF N(P)#0 %AND S=-1 %THEN S=P M2=M2-(N(P)*I) I=I//10 P=P+1 %REPEAT %IF S=-1 %START SPACES(SP-1) PRINTSYMBOL('0') %FINISH %ELSE %START %IF DEC#0 %AND S>5 %THEN S=5 I=SP-(8-S) %IF I<0 %THEN I=0 SPACES(I) %CYCLE I=S,1,7 PRINTSYMBOL('0'+N(I)) %IF DEC#0 %AND I=5 %THEN PRINTSYMBOL('.') %REPEAT %FINISH %END %ENDOFFILE