trunk/src/emu/machine/rtc65271.c
| r19001 | r19002 | |
| 13 | 13 | * Support DSE mode? |
| 14 | 14 | |
| 15 | 15 | Raphael Nabet, 2003-2004 |
| 16 | R. Belmont, 2012 |
| 16 | 17 | */ |
| 17 | 18 | |
| 18 | 19 | #include "emu.h" |
| r19001 | r19002 | |
| 161 | 162 | { |
| 162 | 163 | memset(m_regs,0, sizeof(m_regs)); |
| 163 | 164 | memset(m_xram,0, sizeof(m_xram)); |
| 165 | |
| 166 | m_regs[reg_B] |= reg_B_DM; // Firebeat assumes the chip factory defaults to non-BCD mode (or maybe Konami programs it that way?) |
| 164 | 167 | } |
| 165 | 168 | |
| 166 | 169 | //------------------------------------------------- |
| r19001 | r19002 | |
| 225 | 228 | systime.local_time.hour -= 12; |
| 226 | 229 | } |
| 227 | 230 | else |
| 231 | { |
| 228 | 232 | m_regs[reg_hour] = 0; |
| 229 | | m_regs[reg_hour] |= systime.local_time.hour ? systime.local_time.hour : 12; |
| 233 | } |
| 234 | |
| 235 | // Firebeat indicates non-BCD 12-hour mode has 0-based hour, so 12 AM is 0x00 and 12 PM is 0x80 |
| 236 | m_regs[reg_hour] |= systime.local_time.hour; // ? systime.local_time.hour : 12; |
| 230 | 237 | } |
| 231 | 238 | m_regs[reg_weekday] = systime.local_time.weekday + 1; |
| 232 | 239 | m_regs[reg_monthday] = systime.local_time.mday; |
| r19001 | r19002 | |
| 310 | 317 | /* data register */ |
| 311 | 318 | switch (m_cur_reg) |
| 312 | 319 | { |
| 320 | case reg_A: |
| 321 | reply = m_regs[m_cur_reg] & ~reg_A_DV; |
| 322 | reply |= 0x20; // indicate normal RTC operation |
| 323 | break; |
| 324 | |
| 313 | 325 | case reg_C: |
| 314 | 326 | reply = m_regs[m_cur_reg]; |
| 315 | 327 | m_regs[m_cur_reg] = 0; |