%EXTERNALROUTINE COMPRS(%STRING(63) S) %EXTERNALROUTINESPEC COPY(%STRING(63) SA) %EXTERNALROUTINESPEC DESTROY(%STRING(63) SB) %EXTERNALROUTINESPEC DEFINE(%STRING(63) SC) %EXTERNALROUTINESPEC CLEAR(%STRING(63) SD) %EXTERNALINTEGERFNSPEC RETURNCODE %BYTEINTEGERARRAY BUF(1:255) %OWNINTEGER NL=10,CR=13 %INTEGER I %ON %EVENT 9 %START SELECTOUTPUT(0) SELECTINPUT(0) CLOSESTREAM(1) CLOSESTREAM(2) CLEAR("1") CLEAR("2") DESTROY(S) COPY("XTEMP,".S) %IF RETURNCODE=0 %THEN DESTROY("XTEMP") %STOP %FINISH DEFINE ("ST01,".S) %IF RETURNCODE#0 %THEN %STOP SELECTINPUT(1) DEFINE("ST02,XTEMP") SELECTOUTPUT(2) %CYCLE STRING(ADDR(BUF(1)))="" %WHILE NEXTSYMBOL = NL %THEN SKIPSYMBOL %CYCLE I=2,1,255 %IF NEXTSYMBOL = NL %THEN %EXIT READSYMBOL(BUF(I)) %REPEAT %IF I>2 %THEN %START I=I-1 I=I-1 %WHILE (BUF(I)=32 %OR BUF(I)=CR) %AND I>0 BUF(1)=I PRINTSTRING(STRING(ADDR(BUF(1)))) NEWLINE %FINISH %ELSE NEWLINE %REPEAT %END %ENDOFFILE