-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMORSE.BAS
81 lines (72 loc) · 1.41 KB
/
MORSE.BAS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
DECLARE FUNCTION MORSEC$ (CHAR$)
DIM MESSAGE AS STRING
OPEN "INPUT.STR" FOR INPUT AS 1
LINE INPUT #1, MESSAGE$
LET RESULT$ = ""
FOR I = 1 TO LEN(MESSAGE$)
LET C$ = UCASE$(MID$(MESSAGE$, I, 1))
IF I <> 1 THEN RESULT$ = RESULT$ + " "
RESULT$ = RESULT$ + MORSEC$(C$)
NEXT I
PRINT RESULT$
SYSTEM
FUNCTION MORSEC$ (CHAR$)
SELECT CASE CHAR$
CASE "A"
MORSEC$ = ".-"
CASE "B"
MORSEC$ = "-..."
CASE "C"
MORSEC$ = "-.-."
CASE "D"
MORSEC$ = "-.."
CASE "E"
MORSEC$ = "."
CASE "F"
MORSEC$ = "..-."
CASE "G"
MORSEC$ = "--."
CASE "H"
MORSEC$ = "...."
CASE "I"
MORSEC$ = ".."
CASE "J"
MORSEC$ = ".---"
CASE "K"
MORSEC$ = "-.-"
CASE "L"
MORSEC$ = ".-.."
CASE "M"
MORSEC$ = "--"
CASE "N"
MORSEC$ = "-."
CASE "O"
MORSEC$ = "---"
CASE "P"
MORSEC$ = ".--."
CASE "Q"
MORSEC$ = "--.-"
CASE "R"
MORSEC$ = ".-."
CASE "S"
MORSEC$ = "..."
CASE "T"
MORSEC$ = "-"
CASE "U"
MORSEC$ = "..-"
CASE "V"
MORSEC$ = "...-"
CASE "W"
MORSEC$ = ".--"
CASE "X"
MORSEC$ = "-..-"
CASE "Y"
MORSEC$ = "-.--"
CASE "Z"
MORSEC$ = "--.."
CASE " "
MORSEC$ = "/"
CASE ELSE
MORSEC$ = ""
END SELECT
END FUNCTION