summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2008-04-02 08:27:45 +0000
committer Aaron Giles <aaron@aarongiles.com>2008-04-02 08:27:45 +0000
commit125e286bdaa0544c50a13126aedfc46acbcf7143 (patch)
treeccc05633c6a51867d0c2e033bb07b68d917fe614 /src
parenta4a7ea967c710896ae6f576f33192b3780c63ba7 (diff)
From Dirk Best:
Astrocade update: - Update src/mame/includes/astrocde.h to use an XTAL value - Clear interrupts if they are no longer valid - Add the knob inputs
Diffstat (limited to 'src')
-rw-r--r--src/mame/includes/astrocde.h2
-rw-r--r--src/mame/video/astrocde.c22
2 files changed, 23 insertions, 1 deletions
diff --git a/src/mame/includes/astrocde.h b/src/mame/includes/astrocde.h
index df6ade4faf3..1f168bc3330 100644
--- a/src/mame/includes/astrocde.h
+++ b/src/mame/includes/astrocde.h
@@ -6,7 +6,7 @@
#include "sound/custom.h"
-#define ASTROCADE_CLOCK (14318180/2)
+#define ASTROCADE_CLOCK (XTAL_14_31818MHz/2)
#define AC_SOUND_PRESENT (0x01)
#define AC_LIGHTPEN_INTS (0x02)
diff --git a/src/mame/video/astrocde.c b/src/mame/video/astrocde.c
index 348ff733b5d..ef2e67502cc 100644
--- a/src/mame/video/astrocde.c
+++ b/src/mame/video/astrocde.c
@@ -439,7 +439,10 @@ static void astrocade_trigger_lightpen(running_machine *machine, UINT8 vfeedback
{
/* bit 0 controls the interrupt mode: mode 0 means assert until acknowledged */
if ((interrupt_enable & 0x01) == 0)
+ {
cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, interrupt_vector & 0xf0);
+ timer_set(video_screen_get_time_until_vblank_end(machine->primary_screen), NULL, 0, interrupt_off);
+ }
/* mode 1 means assert for 1 instruction */
else
@@ -476,7 +479,10 @@ static TIMER_CALLBACK( scanline_callback )
{
/* bit 2 controls the interrupt mode: mode 0 means assert until acknowledged */
if ((interrupt_enable & 0x04) == 0)
+ {
cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, interrupt_vector);
+ timer_set(video_screen_get_time_until_vblank_end(machine->primary_screen), NULL, 0, interrupt_off);
+ }
/* mode 1 means assert for 1 instruction */
else
@@ -556,6 +562,22 @@ READ8_HANDLER( astrocade_data_chip_register_r )
case 0x17: /* keypad column 3 */
result = readinputportbytag_safe("KEYPAD3", 0xff);
break;
+
+ case 0x1c: /* player 1 knob */
+ result = readinputportbytag_safe("P1_KNOB", 0xff);
+ break;
+
+ case 0x1d: /* player 2 knob */
+ result = readinputportbytag_safe("P2_KNOB", 0xff);
+ break;
+
+ case 0x1e: /* player 3 knob */
+ result = readinputportbytag_safe("P3_KNOB", 0xff);
+ break;
+
+ case 0x1f: /* player 4 knob */
+ result = readinputportbytag_safe("P4_KNOB", 0xff);
+ break;
}
return result;