SH_
_reg_write_2(SH_(BCR2), BSC_BCR2_VAL);
_reg_write_2(SH_(PCR), BSC_PCR_VAL);
_reg_write_2(SH_(RTCSR), BSC_RTCSR_VAL);
_reg_write_2(SH_(RTCNT), BSC_RTCNT_VAL);
_reg_write_2(SH_(RTCOR), BSC_RTCOR_VAL);
_reg_write_2(SH_(RFCR), BSC_RFCR_VAL);
_reg_write_2(SH_(FRQCR), FRQCR_VAL);
_reg_write_4(SH_(CCR), 0x1);
SH_(7709);
SH_(7709A);
SH_(7707);
_reg_write_2(SH_(RTCSR), 0xa594);
_reg_write_2(SH_(RTCNT), 0xa500);
_reg_write_2(SH_(RFCR), 0xa400);
evtcode = _reg_read_4(SH_(INTEVT));
_reg_write_1(SH_(TOCR), TOCR_TCOE);
_reg_write_2(SH_(TCR0), TCR_TPSC_P4);
_reg_bset_1(SH_(TSTR), TSTR_STR0);
t1 = _reg_read_4(SH_(TCNT0));
t2 = _reg_read_4(SH_(TCNT0));
_reg_write_1(SH_(RCR1), 0);
_reg_write_1(SH_(RCR2), SH_RCR2_ENABLE | SH_RCR2_START);
_reg_bclr_1(SH_(RCR1), SH_RCR1_CIE);
uint8_t r = _reg_read_1(SH_(RCR1));
_reg_write_1(SH_(RCR1), r);
dt->dt_ ## x = bcdtobin(_reg_read_1(SH_(R ## y ## CNT)))
} while ((_reg_read_1(SH_(RCR1)) & SH_RCR1_CF) && --retry > 0);
r = _reg_read_1(SH_(RCR2));
_reg_write_1(SH_(RCR2), (r & ~SH_RCR2_START) | SH_RCR2_RESET);
_reg_write_1(SH_(R ## x ## CNT), bintobcd(dt->dt_ ## y))
_reg_write_1(SH_(RCR2), r);
r = _reg_read_1(SH_(RCR2));
_reg_bclr_1(SH_(TSTR), TSTR_STR##x); \
_reg_write_4(SH_(TCNT ## x), 0xffffffff); \
_reg_bset_1(SH_(TSTR), TSTR_STR##x); \
(0xffffffff - _reg_read_4(SH_(TCNT ## x)))
_reg_write_2(SH_(TCR0), 0);
_reg_write_2(SH_(TCR1), 0);
_reg_write_2(SH_(TCR2), 0);
_reg_write_1(SH_(RCR1), 0);
_reg_write_1(SH_(TSTR), 0);
_reg_write_2(SH_(TCR0), TCR_TPSC_P16);
_reg_write_2(SH_(TCR0),
_reg_bset_1(SH_(RCR2), SH_RCR2_ENABLE);
_reg_write_2(SH_(TCR1), TCR_TPSC_P4);
_reg_write_1(SH_(TSTR), 0);
return 0xffffffff - _reg_read_4(SH_(TCNT2));
_reg_bclr_1(SH_(TSTR), TSTR_STR0);
_reg_write_2(SH_(TCR0), TCR_UNIE | TCR_TPSC_P16);
_reg_write_2(SH_(TCR0), TCR_UNIE |
_reg_write_4(SH_(TCOR0), sh_clock.hz_cnt);
_reg_write_4(SH_(TCNT0), sh_clock.hz_cnt);
_reg_bset_1(SH_(TSTR), TSTR_STR0);
_reg_write_2(SH_(TCR1), TCR_UNIE | TCR_TPSC_P4);
_reg_write_4(SH_(TCOR1), 0xffffffff);
_reg_write_2(SH_(TCR2), TCR_TPSC_P4);
_reg_write_4(SH_(TCOR2), 0xffffffff);
_reg_bset_1(SH_(TSTR), TSTR_STR2);
trapcode = _reg_read_4(SH_(TRA)) >> 2;
printf("INTEVT=0x%x", _reg_read_4(SH_(INTEVT)));
_reg_write_4(SH_(PTEH), asid);
_reg_write_2(SH_(BBRA), 0); /* disable channel A */
_reg_write_2(SH_(BBRB), 0); /* disable channel B */
_reg_write_4(SH_(EXPEVT), EXPEVT_RESET_MANUAL);