ROT13: proc options(main); Rot13: proc (c) returns (char (1)); dcl c char (1); dcl low char(26) init ('abcdefghijklmABCDEFGHIJKLM'); dcl hig char(26) init ('nopqrstuvwxyzNOPQRSTUVWXYZ'); dcl i bin fixed (15); i = index (low, c); if (i ^= 0) then return (substr(hig,i,1)); i = index (hig,c); if (i ^= 0) then return (substr(low,i,1)); return (c); end Rot13; dcl c char(1); dcl eof bit(1) init ('0'b); on endfile(sysin) begin; eof='1'b; end; do while (^eof); get edit (c) (a(1)); put edit (Rot13(c)) (a(1)); end; end ROT13;