 /*ADD ADC ADI ACI*/
//if(byh == 8 || by == 0xce || by == 0xc6) {  

/*
 *
 * This function executes ADD, ADC, ADI, ACI.
 *
 */


 int add_c_i(int by, int byl, int byh, float *lap)
 {
  int m1 = 0, m2 ;
  *lap = (byl == 6 || byl == 0xe) ? 7.0 / 3.0 : 4.0 / 3.0;
  if(byh != 0xc) {
	if(byl == 6 || byl == 0xe)    reg[6] = mhlr();
	if(byl > 7) {
		m1 = rf[7];
		byl -= 8;
	}
	m2 = reg[byl];
  }
  else {
	*lap = 7.0 / 3.0;
	if(by == 0xce)
		m1 = rf[7];
	m2 = memr(++rpc);
  }
  rf[3] = ( ((m2 & 0xf) + (reg[7] & 0xf) + m1) > 15);
  reg[7] += m2 + m1;
  rf[7] = (reg[7] > 0xff);
  reg[7] &= 0xff;
  setrf(reg[7]);
  return(0);
 }

