RTC_WRITE
RTC_WRITE( RTC_CONTROL, ctrl | RTC_SET );
RTC_WRITE( RTC_SECONDS, sec );
RTC_WRITE( RTC_MINUTES, min );
RTC_WRITE( RTC_HOURS, hour + pm);
RTC_WRITE( RTC_DAY_OF_MONTH, day );
RTC_WRITE( RTC_MONTH, mon );
RTC_WRITE( RTC_YEAR, year );
if (wday >= 0) RTC_WRITE( RTC_DAY_OF_WEEK, wday );
RTC_WRITE( RTC_CONTROL, ctrl & ~RTC_SET );
writeb(RTC_WRITE, ioaddr + RTC_CONTROL);
writeb(RTC_WRITE, pdata->ioaddr + RTC_CONTROL);
writeb(RTC_WRITE | (century & RTC_CENTURY_MASK), ioaddr + RTC_CENTURY);
writeb(RTC_WRITE, ioaddr + RTC_CONTROL);
writeb(RTC_WRITE, ioaddr + RTC_CONTROL);
writeb(RTC_WRITE | (century & RTC_CENTURY_MASK), ioaddr + RTC_CENTURY);
writeb(flags | RTC_WRITE, ioaddr + RTC_FLAGS);
writeb(flags & ~RTC_WRITE, ioaddr + RTC_FLAGS);
writeb(flags | RTC_WRITE, ioaddr + RTC_FLAGS);
writeb(flags & ~RTC_WRITE, ioaddr + RTC_FLAGS);
writeb(flags | RTC_WRITE, pdata->ioaddr + RTC_FLAGS);
writeb(flags & ~RTC_WRITE, pdata->ioaddr + RTC_FLAGS);