DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦97f6f2290⟧ TextFile

    Length: 4096 (0x1000)
    Types: TextFile
    Names: »MORSE2.PAS«

Derivation

└─⟦08ea08c61⟧ Bits:30003924 PolyPascal programmer
    └─ ⟦this⟧ »MORSE2.PAS« 

TextFile

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»