Previous 15994 Revisions Next

r8795 Tuesday 17th August, 2010 at 01:20:23 UTC by Angelo Salese
[A310]: Fixed IRQ status/request/mask register reading
[src/mame/machine]archimds.c

src/mame/machine/archimds.c
r8794r8795
5353
5454#define CONTROL         0
5555#define IRQ_STATUS_A    4
56#define IRQ_REQUEST_A   5
5657#define IRQ_MASK_A       6
5758#define IRQ_STATUS_B   8
59#define IRQ_REQUEST_B   9
5860#define IRQ_MASK_B      10
5961#define FIQ_STATUS      12
62#define FIQ_REQUEST     13
6063#define FIQ_MASK      14
6164
6265void archimedes_request_irq_a(running_machine *machine, int mask)
r8794r8795
367370         case IRQ_STATUS_A:
368371            return (ioc_regs[IRQ_STATUS_A] & 0x7f) | 0x80; // Force IRQ is always '1'
369372
373         case IRQ_REQUEST_A:
374            return (ioc_regs[IRQ_STATUS_A] & ioc_regs[IRQ_MASK_A]);
375
376         case IRQ_MASK_A:
377            return (ioc_regs[IRQ_MASK_A]);
378
379         case IRQ_STATUS_B:
380            return (ioc_regs[IRQ_STATUS_B]);
381
382         case IRQ_REQUEST_B:
383            return (ioc_regs[IRQ_STATUS_B] & ioc_regs[IRQ_MASK_B]);
384
385         case IRQ_MASK_B:
386            return (ioc_regs[IRQ_MASK_B]);
387
370388         case FIQ_STATUS:
371389            return (ioc_regs[FIQ_STATUS] & 0x7f) | 0x80; // Force FIQ is always '1'
372390
391         case FIQ_REQUEST:
392            return (ioc_regs[FIQ_STATUS] & ioc_regs[FIQ_MASK]);
393
394         case FIQ_MASK:
395            return (ioc_regs[FIQ_MASK]);
396
373397         case 16:   // timer 0 read
374398            return ioc_timerout[0]&0xff;
375399         case 17:
r8794r8795
598622      g = (val & 0x00f0) >> 4;
599623      r = (val & 0x000f) >> 0;
600624
625      if(reg == 0x40 && val & 0xfff)
626         logerror("WARNING: border color write here!\n");
627
601628      palette_set_color_rgb(space->machine, reg >> 2, pal4bit(r), pal4bit(g), pal4bit(b) );
602629   }
603630   else if (reg >= 0x80 && reg <= 0xbc)

Previous 15994 Revisions Next


© 1998-2018 The MESS Team