100 PROGRAM "CaesarCi.bas" 110 STRING M$*254 120 INPUT PROMPT "String: ":M$ 130 DO 140 INPUT PROMPT "Key (1-25): ":KEY 150 LOOP UNTIL KEY>0 AND KEY<26 160 PRINT "Original message: ";M$ 170 CALL ENCRYPT(M$,KEY) 180 PRINT "Encrypted message: ";M$ 190 CALL DECRYPT(M$,KEY) 200 PRINT "Decrypted message: ";M$ 210 DEF ENCRYPT(REF M$,KEY) 220 STRING T$*254 230 LET T$="" 240 FOR I=1 TO LEN(M$) 250 SELECT CASE M$(I) 260 CASE "A" TO "Z" 270 LET T$=T$&CHR$(65+MOD(ORD(M$(I))-65+KEY,26)) 280 CASE "a" TO "z" 290 LET T$=T$&CHR$(97+MOD(ORD(M$(I))-97+KEY,26)) 300 CASE ELSE 310 LET T$=T$&M$(I) 320 END SELECT 330 NEXT 340 LET M$=T$ 350 END DEF 360 DEF DECRYPT(REF M$,KEY) 370 STRING T$*254 380 LET T$="" 390 FOR I=1 TO LEN(M$) 400 SELECT CASE M$(I) 410 CASE "A" TO "Z" 420 LET T$=T$&CHR$(65+MOD(ORD(M$(I))-39-KEY,26)) 430 CASE "a" TO "z" 440 LET T$=T$&CHR$(97+MOD(ORD(M$(I))-71-KEY,26)) 450 CASE ELSE 460 LET T$=T$&M$(I) 470 END SELECT 480 NEXT 490 LET M$=T$ 500 END DEF