diff options
author | Ramiro Polla <ramiro.polla@gmail.com> | 2014-11-05 15:10:40 +0100 |
---|---|---|
committer | Ramiro Polla <ramiro.polla@gmail.com> | 2014-11-07 05:00:57 +0100 |
commit | 613ad8165dd2ad1104803dec9117163020c44db1 (patch) | |
tree | 197cc4537ac914f5b269f225c587d2caa84a0c4b /src/emu/cpu/upd7810 | |
parent | ef53b9356f1b28815823a4f1a6c3814a08644998 (diff) |
upd7810: ECNT clear control happens after capture control
Diffstat (limited to 'src/emu/cpu/upd7810')
-rw-r--r-- | src/emu/cpu/upd7810/upd7810.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/emu/cpu/upd7810/upd7810.c b/src/emu/cpu/upd7810/upd7810.c index 0f9c77e5d0a..3790f6c981c 100644 --- a/src/emu/cpu/upd7810/upd7810.c +++ b/src/emu/cpu/upd7810/upd7810.c @@ -1313,22 +1313,6 @@ void upd7810_device::handle_timers(int cycles) IRR |= INTFE0; if (ETM1 == ECNT) IRR |= INTFE1; - /* How and When ECNT is Cleared */ - switch (ETMM & 0x0c) - { - case 0x00: /* clear ECNT */ - break; - case 0x04: /* free running */ - if (0 == ECNT) - ITF |= INTOV; /* set overflow flag if counter wrapped */ - break; - case 0x08: /* reset at falling edge of CI or TO */ - break; - case 0x0c: /* reset if ECNT == ETM1 */ - if (ETM1 == ECNT) - ECNT = 0; - break; - } /* Conditions When ECNT Causes a CO0 Output Change */ if (((0x00 == (ETMM & 0x30)) && (ETM0 == ECNT)) || /* set CO0 if ECNT == ETM0 */ /* ((0x10 == (ETMM & 0x30)) prohibited */ @@ -1367,6 +1351,22 @@ void upd7810_device::handle_timers(int cycles) break; } } + /* How and When ECNT is Cleared */ + switch (ETMM & 0x0c) + { + case 0x00: /* clear ECNT */ + break; + case 0x04: /* free running */ + if (0 == ECNT) + ITF |= INTOV; /* set overflow flag if counter wrapped */ + break; + case 0x08: /* reset at falling edge of CI or TO */ + break; + case 0x0c: /* reset if ECNT == ETM1 */ + if (ETM1 == ECNT) + ECNT = 0; + break; + } } } |