41 lines
597 B
Plaintext
41 lines
597 B
Plaintext
#COMPILE EXE
|
|
#COMPILER PBWIN 9.05
|
|
#DIM ALL
|
|
|
|
FUNCTION ROT13(BYVAL a AS STRING) AS STRING
|
|
LOCAL p AS BYTE PTR
|
|
LOCAL n AS BYTE, e AS BYTE
|
|
LOCAL res AS STRING
|
|
|
|
res = a
|
|
p = STRPTR(res)
|
|
n = @p
|
|
DO WHILE n
|
|
SELECT CASE n
|
|
CASE 65 TO 90
|
|
e = 90
|
|
n += 13
|
|
CASE 97 TO 122
|
|
e = 122
|
|
n += 13
|
|
CASE ELSE
|
|
e = 255
|
|
END SELECT
|
|
|
|
IF n > e THEN
|
|
n -= 26
|
|
END IF
|
|
@p = n
|
|
INCR p
|
|
n = @p
|
|
LOOP
|
|
FUNCTION = res
|
|
END FUNCTION
|
|
|
|
'testing:
|
|
|
|
FUNCTION PBMAIN () AS LONG
|
|
#DEBUG PRINT ROT13("abc")
|
|
#DEBUG PRINT ROT13("nop")
|
|
END FUNCTION
|