
//if(byh == 0xb || by == 0xf6 || by == 0xfe)  {    /*ORA CMP ORI CPI */

/*
 *
 * This function executes ORA, CMP, ORI, CPI.
 *
 */
      


 int ora_cmp_i(int by, int byl, int byh, float *lap)
 {
  int data;
  *lap = (byl == 6 || byl == 0xe) ? 7.0 / 3.0 : 4.0 / 3.0;
  if(byh == 0xb) {
	if(byl == 6 || byl == 0xe) reg[6] = mhlr();
	data = (byl < 8) ? reg[byl] : reg[byl - 8];
  }
  else  data = memr(++rpc);
  if(byl < 8) {
	reg[7] |= data;
	rf[7] = 0;
	rf[3] = 0;
	setrf(reg[7]);
  }
  else {
	rf[7] = (reg[7] < data);
	data = data | 0xff00;
	data = ~data;
	data++;
	rf[3] = ( ((data & 0xf) + (reg[7] & 0xf)) > 15);
	setrf( (data + reg[7]) & 0xff);
  }
  return(0);
 }

