     sign *= -1;
   }
 
+  // return the pwm value
   return (char)(128+(sign*sine[pstn]));
 }
 
+// sets the character buffer, the current character being sent
 void setCbuff(){
     int i = 0;
-    for(i = 0; i < (sizeof(baudot_letters)/sizeof(char)); i++){
-      
+
+    // Note: the <<2)+3 is how we put the start and stop bits in
+    // the baudot table is MSB on right in the form 000xxxxx
+    // so when we shift two and add three it becomes 0xxxxx11 which is
+    // exactly the form we need for one start bit and two stop bits when read
+    // from left to right
+
+    // try to find a match of the current character in baudot
+    for(i = 0; i < (sizeof(baudot)/sizeof(char)); i++){
+
+      // look in letters
       if(msg[bytePstn] == baudot_letters[i]) {
+
+        // if coming from numbers, send shift to letters
         if(shiftToNum == 1){
           shiftToNum = 0;
           charbuf = ((baudot[31])<<2)+3;

        }
      }      
      
      sym = charbuf;
      pflag = 1;
    }


void setSymb(char mve){

    // if its a 1 set change to dmark other wise set change to dspace
    if((charbuf&(0x01<<mve))>>mve) {
      change = dmark;
    } else {
