User Tools

Site Tools


mmbasic_original:morse_bas

MORSE.BAS

This module is part of the original MMBasic library. It is reproduced here with kind permission of Hugh Buckle and Geoff Graham. Be aware it may reference functionality which has changed or is deprecated in the latest versions of MMBasic.

100 'SAMPLE PROGRAM TO DEMONSTRATE THE MAXIMITE
105 'Morse code - MORSE.BAS 20101211 Ver 1:00 Reg Gauci
110 '
115 'A dash = 3 dots.
120 'The space between the signals forming the same letter is equal to 1 dot
125 'The space between 2 letters is equal to 3 dots
130 'The space between 2 words is equal to 7 dots
135 'Change freq to change frequency (Hz) of the sound
140 'Change dit to change the tone spacing
145 freq = 2000 : dit = 40 : dah = dit*3 : WORDdelay = dit*3 : LINEdelay = dit*7
150 '
155 DIM morse$(122)
160 FOR A = 32 TO 122
165    READ morse$(A)
170 NEXT A
175 '
180 CLS
185 PRINT
190 PRINT:PRINT "Illegal characters are ignored." :PRINT
195 PRINT "CTRL+C to exit"
200 PRINT:PRINT "Type a message and see it appear as Morse Code." :PRINT
205 INPUT "What is your message "; message$
210 PRINT
215 '
220 L = LEN(message$)                           'L equals the number of character in the message
225 '
230 FOR char = 1 TO L                           'Loop L times
235   ch$ = morse$(ASC(MID$(message$,char,1)))  'enter the value of the read character from morse$ into chr$
240 '
245   FOR ditdah = 1 TO LEN(ch$)                'Loop for the number of dots and dashes in morse$
250     IF MID$(ch$, ditdah, 1) = " " THEN      'if a space is encountered print a space and pause for WORDdelay
255       PRINT " ";
260       PAUSE WORDdelay
265     ELSE
270       IF MID$(ch$, ditdah, 1) = "." THEN    'if a dot is encountered print a dit sound a dit and pause for length of a dit + WORDdelay
275         PRINT ".";
280         SOUND freq, dit
285         PIN(0) = 1
290         PAUSE dit
295         PIN(0) = 0
300         PAUSE WORDdelay
305       ELSE
310         PRINT "-";                          'otherwise it is a dah print a dah sound a dah and pause for length of a dah + WORDdelay
315         SOUND freq, dah
320         PIN(0) = 1
325         PAUSE dah
330         PIN(0) = 0
335         PAUSE WORDdelay
340       ENDIF
345     ENDIF
350   NEXT ditdah
355 PRINT " ";
360 NEXT char                                   'loop until all Morse items for current input are done
365 '
370 PRINT "   ";
375 PAUSE LINEdelay                             'Pause for the lenght of Wspc
380 '
385 PRINT : PRINT
390 INPUT "Go again (Y/N)"; Z$: IF UCASE$(LEFT$(Z$, 1))="Y" THEN 195
395 END
400 '
405 '
410 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
415    DATA    " "      '      space   32      
420    DATA    ""       '      !       33      
425    DATA    .-..-.   '      "       34      Quotation
430    DATA    ""       '      #       35      
435    DATA    ""       '      $       36      
440    DATA    ""       '      %       37      
445    DATA    ""       '      &       38      
450    DATA    .----.   '      '       39      Apostrophy
455    DATA    -.--.-   '      (       40      Bracket
460    DATA    -.--.-   '      )       41      Bracket
465    DATA    ""       '      *       42      
470    DATA    ""       '      +       43      
475    DATA    --..--   '      ,       44      Comma
480    DATA    -....-   '      -       45      Hyphen
485    DATA    .-.-.-   '      .       46      Full Stop
490    DATA    -..-.    '      /       47      Slash
495    DATA    -----    '      0       48      
500    DATA    .----    '      1       49      
505    DATA    ..---    '      2       50      
510    DATA    ...--    '      3       51      
515    DATA    ....-    '      4       52      
520    DATA    .....    '      5       53      
525    DATA    -....    '      6       54      
530    DATA    --...    '      7       55      
535    DATA    ---..    '      8       56      
540    DATA    ----.    '      9       57      
545    DATA    ---...   '      :       58      Colon
550    DATA    ""       '      ;       59      
555    DATA    ""       '      <       60      
560    DATA    -...-    '      =       61      Equal
565    DATA    ""       '      >       62      
570    DATA    ..--..   '      ?       63      Question
575    DATA    .--.-.   '      @       64      AT
580    DATA    .-       '      A       65      
585    DATA    -...     '      B       66      
590    DATA    -.-.     '      C       67      
595    DATA    -..      '      D       68      
600    DATA    .        '      E       69      
605    DATA    ..-.     '      F       70      
610    DATA    --.      '      G       71      
615    DATA    ....     '      H       72      
620    DATA    ..       '      I       73      
625    DATA    .---     '      J       74      
630    DATA    -.-      '      K       75      
635    DATA    .-..     '      L       76      
640    DATA    --       '      M       77      
645    DATA    -.       '      N       78      
650    DATA    ---      '      O       79      
655    DATA    .--.     '      P       80      
660    DATA    --.-     '      Q       81      
665    DATA    .-.      '      R       82      
670    DATA    ...      '      S       83      
675    DATA    -        '      T       84      
680    DATA    ..-      '      U       85      
685    DATA    ...-     '      V       86      
690    DATA    .--      '      w       87      
695    DATA    -..-     '      X       88      
700    DATA    -.--     '      Y       89      
705    DATA    --..     '      Z       90      
710    DATA    ""       '      [       91      
715    DATA    ""       '      \       92      
720    DATA    ""       '      ]       93      
725    DATA    ""       '      ^       94      
730    DATA    ""       '      _       95      
735    DATA    ""       '      `       96      
740    DATA    .-       '      a       97      
745    DATA    -...     '      b       98      
750    DATA    -.-.     '      c       99      
755    DATA    -..      '      d       100     
760    DATA    .        '      e       101     
765    DATA    ..-.     '      f       102     
770    DATA    --.      '      g       103     
775    DATA    ....     '      h       104     
780    DATA    ..       '      i       105     
785    DATA    .---     '      j       106     
790    DATA    -.-      '      k       107     
795    DATA    .-..     '      l       108     
800    DATA    --       '      m       109     
805    DATA    -.       '      n       110     
810    DATA    ---      '      o       111     
815    DATA    .--.     '      p       112     
820    DATA    --.-     '      q       113     
825    DATA    .-.      '      r       114     
830    DATA    ...      '      s       115     
835    DATA    -        '      t       116     
840    DATA    ..-      '      u       117     
845    DATA    ...-     '      v       118     
850    DATA    .--      '      w       119     
855    DATA    -..-     '      x       120     
860    DATA    -.--     '      y       121     
865    DATA    --..     '      z       122     
mmbasic_original/morse_bas.txt · Last modified: 2024/01/19 09:39 by 127.0.0.1