summaryrefslogtreecommitdiffstatshomepage
path: root/trunk/src/emu/machine/generic.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/emu/machine/generic.h')
-rw-r--r--trunk/src/emu/machine/generic.h177
1 files changed, 177 insertions, 0 deletions
diff --git a/trunk/src/emu/machine/generic.h b/trunk/src/emu/machine/generic.h
new file mode 100644
index 00000000000..3cc006c5e5e
--- /dev/null
+++ b/trunk/src/emu/machine/generic.h
@@ -0,0 +1,177 @@
+/*********************************************************************
+
+ generic.h
+
+ Generic simple machine functions.
+
+ Copyright Nicola Salmoria and the MAME Team.
+ Visit http://mamedev.org for licensing and usage restrictions.
+
+*********************************************************************/
+
+#pragma once
+
+#ifndef __MACHINE_GENERIC_H__
+#define __MACHINE_GENERIC_H__
+
+
+
+/***************************************************************************
+ CONSTANTS
+***************************************************************************/
+
+/* total # of coin counters */
+#define COIN_COUNTERS 8
+
+/* memory card actions */
+#define MEMCARD_CREATE 0
+#define MEMCARD_INSERT 1
+#define MEMCARD_EJECT 2
+
+
+
+/***************************************************************************
+ FUNCTION PROTOTYPES
+***************************************************************************/
+
+
+/* ----- initialization ----- */
+
+/* set up all the common systems */
+void generic_machine_init(running_machine &machine);
+
+
+
+/* ----- tickets ----- */
+
+/* return the number of tickets dispensed */
+int get_dispensed_tickets(running_machine &machine);
+
+/* increment the number of dispensed tickets */
+void increment_dispensed_tickets(running_machine &machine, int delta);
+
+
+
+/* ----- coin counters ----- */
+
+/* write to a particular coin counter (clocks on active high edge) */
+void coin_counter_w(running_machine &machine, int num, int on);
+
+/* return the coin count for a given coin */
+int coin_counter_get_count(running_machine &machine, int num);
+
+/* enable/disable coin lockout for a particular coin */
+void coin_lockout_w(running_machine &machine, int num, int on);
+
+/* return current lockout state for a particular coin */
+int coin_lockout_get_state(running_machine &machine, int num);
+
+/* enable/disable global coin lockout */
+void coin_lockout_global_w(running_machine &machine, int on);
+
+
+
+/* ----- NVRAM management ----- */
+
+/* load NVRAM from a file */
+void nvram_load(running_machine &machine);
+
+/* save NVRAM to a file */
+void nvram_save(running_machine &machine);
+
+
+
+/* ----- memory card management ----- */
+
+/* create a new memory card with the given index */
+int memcard_create(running_machine &machine, int index, int overwrite);
+
+/* "insert" a memory card with the given index and load its data */
+int memcard_insert(running_machine &machine, int index);
+
+/* "eject" a memory card and save its data */
+void memcard_eject(running_machine &machine);
+
+/* returns the index of the current memory card, or -1 if none */
+int memcard_present(running_machine &machine);
+
+
+
+/* ----- miscellaneous bits & pieces ----- */
+
+/* set the status of an LED */
+void set_led_status(running_machine &machine, int num, int value);
+
+
+
+/* ----- interrupt enable and vector helpers ----- */
+
+void generic_pulse_irq_line(device_t *device, int irqline);
+void generic_pulse_irq_line_and_vector(device_t *device, int irqline, int vector);
+void cpu_interrupt_enable(device_t *device, int enabled);
+READ8_HANDLER( interrupt_enable_r );
+WRITE8_HANDLER( interrupt_enable_w );
+
+
+
+/* ----- common interrupt callbacks ----- */
+
+INTERRUPT_GEN( nmi_line_pulse );
+INTERRUPT_GEN( nmi_line_assert );
+
+INTERRUPT_GEN( irq0_line_hold );
+INTERRUPT_GEN( irq0_line_pulse );
+INTERRUPT_GEN( irq0_line_assert );
+
+INTERRUPT_GEN( irq1_line_hold );
+INTERRUPT_GEN( irq1_line_pulse );
+INTERRUPT_GEN( irq1_line_assert );
+
+INTERRUPT_GEN( irq2_line_hold );
+INTERRUPT_GEN( irq2_line_pulse );
+INTERRUPT_GEN( irq2_line_assert );
+
+INTERRUPT_GEN( irq3_line_hold );
+INTERRUPT_GEN( irq3_line_pulse );
+INTERRUPT_GEN( irq3_line_assert );
+
+INTERRUPT_GEN( irq4_line_hold );
+INTERRUPT_GEN( irq4_line_pulse );
+INTERRUPT_GEN( irq4_line_assert );
+
+INTERRUPT_GEN( irq5_line_hold );
+INTERRUPT_GEN( irq5_line_pulse );
+INTERRUPT_GEN( irq5_line_assert );
+
+INTERRUPT_GEN( irq6_line_hold );
+INTERRUPT_GEN( irq6_line_pulse );
+INTERRUPT_GEN( irq6_line_assert );
+
+INTERRUPT_GEN( irq7_line_hold );
+INTERRUPT_GEN( irq7_line_pulse );
+INTERRUPT_GEN( irq7_line_assert );
+
+
+
+/* ----- generic watchdog reset handlers ----- */
+
+/* 8-bit watchdog read/write handlers */
+WRITE8_HANDLER( watchdog_reset_w );
+READ8_HANDLER( watchdog_reset_r );
+
+/* 16-bit watchdog read/write handlers */
+WRITE16_HANDLER( watchdog_reset16_w );
+READ16_HANDLER( watchdog_reset16_r );
+
+/* 32-bit watchdog read/write handlers */
+WRITE32_HANDLER( watchdog_reset32_w );
+READ32_HANDLER( watchdog_reset32_r );
+
+
+
+/* ----- generic input port helpers ----- */
+
+/* custom handler */
+CUSTOM_INPUT( custom_port_read );
+
+#endif /* __MACHINE_GENERIC_H__ */