
-----------------------------------
Insectoid
Wed Jun 16, 2010 4:47 pm

Morse code translator
-----------------------------------
So, I was bored and made this. There's some messy stuff in it (like the initialization of number sequences) but it works. Feel free to mess around with the 'speed' and 'freq' constants, though you need to stay in the hearing range for freq and any speed under 75 just sounds like a bunch of clicks. 


var letters : array 1..36 of string
const freq := 500 %frequency of blips
const speed := 75 %blip length modifier
%Boring manual assignment of blip sequences
letters (1) := "13"
letters (2) := "3111"
letters (3) := "3131"
letters (4) := "311"
letters (5) := "1"
letters (6) := "1131"
letters (7) := "331"
letters (8) := "1111"
letters (9) := "11"
letters (10) := "1333"
letters (11) := "313"
letters (12) := "1311"
letters (13) := "33"
letters (14) := "31"
letters (15) := "333"
letters (16) := "1331"
letters (17) := "3313"
letters (18) := "131"
letters (19) := "111"
letters (20) := "3"
letters (21) := "113"
letters (22) := "1113"
letters (23) := "133"
letters (24) := "3113"
letters (25) := "3133"
letters (26) := "3311"
%add 1-9+0 to the list, too lazy to make the computer figure it out.
letters (27) := "33333"
letters (28) := "13333"
letters (29) := "11333"
letters (30) := "11133"
letters (31) := "11113"
letters (32) := "11111"
letters (33) := "31111"
letters (34) := "33111"
letters (35) := "33311"
letters (36) := "33331"


proc tone (seq:string)
    for x: 1..length (seq)
        Music.Sound (freq, speed*strint(seq(x)))
        Music.SoundOff
        delay (round (1.5*speed))
    end for
end tone
loop
put "Enter a sentence to convert: "..
var text : string
get text : *
put "Morse code of \"" + text + "\":"
for x: 1..length (text)
    put text (x)+" "..
    if ord (text(x)) >= 97 and ord(text(x)) = 65 and ord(text(x)) 