diff --git a/20230530/morse-03.c b/20230530/morse-03.c
index e19e0769a0e53e584cc929638c35e1023c0ebbdf..e10b831cd7039d607d7cda793f05fec241cfffd1 100644
--- a/20230530/morse-03.c
+++ b/20230530/morse-03.c
@@ -43,10 +43,13 @@ int main (void)
         uint8_t mask = 1;
         int l = morse_length[c];
         for (int i = 0; i < l; i++)
-          if (bits & mask)
-            printf ("-");
-          else
-            printf (".");
+          {
+            if (bits & mask)
+              printf ("-");
+            else
+              printf (".");
+            mask <<= 1;
+          }
         printf ("\",\n");
       }
   return 0;
diff --git a/20230530/morse-04.c b/20230530/morse-04.c
index a6a734543644f3111eb6f04e0495f0ca6cbd3c0d..2cb1e692f672716afce1fb0c64a965be36a64c0c 100644
--- a/20230530/morse-04.c
+++ b/20230530/morse-04.c
@@ -1,62 +1,62 @@
   ['0'] = "-----",
-  ['1'] = ".....",
-  ['2'] = ".....",
-  ['3'] = ".....",
-  ['4'] = ".....",
+  ['1'] = ".----",
+  ['2'] = "..---",
+  ['3'] = "...--",
+  ['4'] = "....-",
   ['5'] = ".....",
-  ['6'] = "-----",
-  ['7'] = "-----",
-  ['8'] = "-----",
-  ['9'] = "-----",
-  ['A'] = "..",
-  ['B'] = "----",
-  ['C'] = "----",
-  ['D'] = "---",
+  ['6'] = "-....",
+  ['7'] = "--...",
+  ['8'] = "---..",
+  ['9'] = "----.",
+  ['A'] = ".-",
+  ['B'] = "-...",
+  ['C'] = "-.-.",
+  ['D'] = "-..",
   ['E'] = ".",
-  ['F'] = "....",
-  ['G'] = "---",
+  ['F'] = "..-.",
+  ['G'] = "--.",
   ['H'] = "....",
   ['I'] = "..",
-  ['J'] = "....",
-  ['K'] = "---",
-  ['L'] = "....",
+  ['J'] = ".---",
+  ['K'] = "-.-",
+  ['L'] = ".-..",
   ['M'] = "--",
-  ['N'] = "--",
+  ['N'] = "-.",
   ['O'] = "---",
-  ['P'] = "....",
-  ['Q'] = "----",
-  ['R'] = "...",
+  ['P'] = ".--.",
+  ['Q'] = "--.-",
+  ['R'] = ".-.",
   ['S'] = "...",
   ['T'] = "-",
-  ['U'] = "...",
-  ['V'] = "....",
-  ['W'] = "...",
-  ['X'] = "----",
-  ['Y'] = "----",
-  ['Z'] = "----",
-  ['a'] = "..",
-  ['b'] = "----",
-  ['c'] = "----",
-  ['d'] = "---",
+  ['U'] = "..-",
+  ['V'] = "...-",
+  ['W'] = ".--",
+  ['X'] = "-..-",
+  ['Y'] = "-.--",
+  ['Z'] = "--..",
+  ['a'] = ".-",
+  ['b'] = "-...",
+  ['c'] = "-.-.",
+  ['d'] = "-..",
   ['e'] = ".",
-  ['f'] = "....",
-  ['g'] = "---",
+  ['f'] = "..-.",
+  ['g'] = "--.",
   ['h'] = "....",
   ['i'] = "..",
-  ['j'] = "....",
-  ['k'] = "---",
-  ['l'] = "....",
+  ['j'] = ".---",
+  ['k'] = "-.-",
+  ['l'] = ".-..",
   ['m'] = "--",
-  ['n'] = "--",
+  ['n'] = "-.",
   ['o'] = "---",
-  ['p'] = "....",
-  ['q'] = "----",
-  ['r'] = "...",
+  ['p'] = ".--.",
+  ['q'] = "--.-",
+  ['r'] = ".-.",
   ['s'] = "...",
   ['t'] = "-",
-  ['u'] = "...",
-  ['v'] = "....",
-  ['w'] = "...",
-  ['x'] = "----",
-  ['y'] = "----",
-  ['z'] = "----",
+  ['u'] = "..-",
+  ['v'] = "...-",
+  ['w'] = ".--",
+  ['x'] = "-..-",
+  ['y'] = "-.--",
+  ['z'] = "--..",