// P1 port is the control port for Music Synth and Dac 
// Port P1[7:0] 
// P1[7] -- Valid Signal
// P1[6] -- DAC/Synth -- 0=DAC and 1=Synth
// P1[5:4]-- 
//      If DAC 00 - Volume, 01, Trebble, 10, Base
//      If Synth 10 - Note, 01, Velocity,
// system commands assigned for Volume, Base and Treble 
//                               240     241       242

#include <8051.h>
void serial_init(){
        TMOD = 0x20;
        SCON = 0x50;
        TH1  = 0xFD;
        TL1  = 0xFD;
        TR1  = 1;
}
void serial_send(unsigned char dat){
        while(!TI);
        TI = 0;
        SBUF = dat;
}
unsigned char serial_read(){
        while(!RI);
        RI = 0;
        return SBUF;
}
void main (void) 
{
   unsigned char a, b, c,final_a,final_b,final_c;
   
   a=0;
   b=0;
   c=0;
   serial_init();
   while (1)
   {
      a=serial_read();
      final_a =a ;
      P2=final_a;
      
      b=serial_read();
      final_b =b;
      P2=final_b;
      
      c=serial_read();
      final_c = c;
      P2=final_c;
      
      if (final_a == 240 ) 
      {
         P0=b;
         P1=128;
      }
      if (final_a == 241 ) 
      {
         P0=final_b;
         P1=144;
      }
      if (final_a == 242 ) 
      {
         P0=final_b;
         P1=160;
      }
      if (final_a < 240 && final_a >= 128 ) 
      {
         P0=final_b;
         P1=224;
         P0=final_c;
         P1=208;
      }
    }   
}
