Previous 15994 Revisions Next

r995 Tuesday 18th September, 2007 at 11:04:43 UTC by Wilbert Pol
[H6280] Improvements to the handling of taking of delayed interrupts. (Also submitted to mamedev)
[src/emu/cpu/h6280]h6280.c

src/emu/cpu/h6280/h6280.c
r994r995
102102        - Added 1 delay when accessing the VDC or VCE areas.
103103        - Implemented low and high speed cpu modes.
104104
105    Changelog, version 1.11, 18/09/07: (Wilbert Pol)
106
107        - Improvements to the handling of taking of delayed interrupts.
108
105109******************************************************************************/
106110#include "debugger.h"
107111#include "h6280.h"
r994r995
228232   int in;
229233   h6280_ICount = cycles;
230234
235   if ( h6280.irq_pending == 2 ) {
236      h6280.irq_pending--;
237   }
238
231239   /* Execute instructions */
232240   do
233241    {
r994r995
243251      insnh6280[in]();
244252
245253      if ( h6280.irq_pending ) {
246         h6280.irq_pending--;
247         if ( ! h6280.irq_pending ) {
248            CHECK_AND_TAKE_IRQ_LINES;
254         if ( h6280.irq_pending == 1 ) {
255            if ( !(P & _fI) ) {
256               h6280.irq_pending--;
257               CHECK_AND_TAKE_IRQ_LINES;
258            }
259         } else {
260            h6280.irq_pending--;
249261         }
250262      }
251263
r994r995
255267         if(h6280.timer_value<=0)
256268         {
257269            if ( ! h6280.irq_pending )
258               h6280.irq_pending = 2;
270               h6280.irq_pending = 1;
259271            while( h6280.timer_value <= 0 )
260272               h6280.timer_value += h6280.timer_load;
261273            set_irq_line(2,ASSERT_LINE);
r994r995
508520      /* --- the following bits of info are returned as NULL-terminated strings --- */
509521      case CPUINFO_STR_NAME:                     strcpy(info->s, "HuC6280");            break;
510522      case CPUINFO_STR_CORE_FAMILY:               strcpy(info->s, "Hudsonsoft 6280");      break;
511      case CPUINFO_STR_CORE_VERSION:               strcpy(info->s, "1.10");            break;
523      case CPUINFO_STR_CORE_VERSION:               strcpy(info->s, "1.11");            break;
512524      case CPUINFO_STR_CORE_FILE:                  strcpy(info->s, __FILE__);            break;
513525      case CPUINFO_STR_CORE_CREDITS:               strcpy(info->s, "Copyright (c) 1999, 2000 Bryan McPhail, mish@tendril.co.uk"); break;
514526

Previous 15994 Revisions Next


© 1998-2018 The MESS Team