%begin

   %routine Fail(%string(255) S)
      Select Output(0)
      Printstring(S);  Newline
      %stop
   %end

   %string(255) In, Out
   %externalstring(255)%fnspec QS %alias "3L_IMP_QUALIFIER_S"(%string(255) S)
   In = QS("IN")
   Out = QS("OUT")
   Fail("-in missing") %if In = ""
   Fail("-out missing") %if Out = ""
   Printstring("overwrite input_") %if In = Out
   %begin
      %on 9 %start
         Fail("Cannot access ".In)
      %finish
      Open Input(1, In)
   %end
   %begin
      %on 9 %start
         Fail("Cannot create ".Out)
      %finish
      Open Output(1, Out)
   %end

   %begin
      %integer s
      %on 9 %start
         %return
      %finish
      select input(1)
      select output(1)
      %cycle
         Readsymbol(S)
         %if 32 <= S <= 126 %start
            Printsymbol(S)
         %else %if S = 10
            Printsymbol(S)
         %finish  
      %repeat
   %end
%end
