|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 4096 (0x1000)
Types: TextFile
Names: »MORSE2.PAS«
└─⟦08ea08c61⟧ Bits:30003924 PolyPascal programmer
└─⟦this⟧ »MORSE2.PAS«
PROGRAM morse2;
TYPE
str255 = STRING(.255.);
str78 = STRING(.78.);
VAR
klartekst : str255;
tekst, tegn : str78;
ch : CHAR;
i, istart, islut, l : INTEGER;
BEGIN
WRITE(CLRHOM);
WRITELN('Fra morsetekst til alm. tekst');
WRITELN;
WRITELN('Kun prikker, streger og mellemrum er tilladt');
WRITELN('Evt. andre tegn vil blive opfattet som mellemrum');
WRITELN('Ulovlige morsetegn vil blive oversat til ''*''');
WRITELN('Indtast klarteksten (# alene stopper):');
WRITELN;
klartekst := '';
REPEAT
WRITE(': ');
BUFLEN := 78;
READLN(tekst);
IF tekst <> '#'
THEN
BEGIN
tekst := tekst + ' ';
l := LEN(tekst);
i := 1;
REPEAT
istart := i;
WHILE (i < l) AND (tekst(.i.) <> '.')
AND (tekst(.i.) <> '-') DO
i := i + 1;
islut := i;
IF islut - istart > 1
THEN klartekst := klartekst + ' ';
tegn := '';
WHILE (i < l) AND ((tekst(.i.) = '.') OR (tekst(.i.) = '-')) DO
BEGIN
tegn := tegn + tekst(.i.);
i := i + 1;
END;
IF tegn <> ''
THEN
BEGIN
IF tegn = '.'
THEN ch := 'e'
ELSE IF tegn = '-'
THEN ch := 't'
ELSE IF tegn = '..'
THEN ch := 'i'
ELSE IF tegn = '.-'
THEN ch := 'a'
ELSE IF tegn = '-.'
THEN ch := 'n'
ELSE IF tegn = '--'
THEN ch := 'm'
ELSE IF tegn = '...'
THEN ch := 's'
ELSE IF tegn = '..-'
THEN ch := 'u'
ELSE IF tegn = '.-.'
THEN ch := 'r'
ELSE IF tegn = '-..'
THEN ch := 'd'
ELSE IF tegn = '.--'
THEN ch := 'w'
ELSE IF tegn = '-.-'
THEN ch := 'k'
ELSE IF tegn = '--.'
THEN ch := 'g'
ELSE IF tegn = '---'
THEN ch := 'o'
ELSE IF tegn = '....'
THEN ch := 'h'
ELSE IF tegn = '-...'
THEN ch := 'b'
ELSE IF tegn = '.-..'
THEN ch := 'l'
ELSE IF tegn = '..-.'
THEN ch := 'f'
ELSE IF tegn = '...-'
THEN ch := 'v'
ELSE IF tegn = '--..'
THEN ch := 'z'
ELSE IF tegn = '-.-.'
THEN ch := 'c'
ELSE IF tegn = '-..-'
THEN ch := 'x'
ELSE IF tegn = '.--.'
THEN ch := 'p'
ELSE IF tegn = '.-.-'
THEN ch := 'æ'
ELSE IF tegn = '---.'
THEN ch := 'ø'
ELSE IF tegn = '--.-'
THEN ch := 'q'
ELSE IF tegn = '-.--'
THEN ch := 'y'
ELSE IF tegn = '.---'
THEN ch := 'j'
ELSE IF tegn = '.--.-'
THEN ch := 'å'
ELSE ch := '*';
klartekst := klartekst + ch;
END;
UNTIL i = l;
END; (* IF *)
klartekst := klartekst + ' ';
UNTIL tekst = '#';
WRITELN;
WRITELN(klartekst);
END.
«eof»