summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/includes/svision.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/includes/svision.h')
-rw-r--r--src/mess/includes/svision.h134
1 files changed, 3 insertions, 131 deletions
diff --git a/src/mess/includes/svision.h b/src/mess/includes/svision.h
index 7f9e5bb18b5..21d5ab39795 100644
--- a/src/mess/includes/svision.h
+++ b/src/mess/includes/svision.h
@@ -8,6 +8,7 @@
#define SVISION_H_
#include "cpu/m6502/m65c02.h"
+#include "audio/svis_snd.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
@@ -31,14 +32,13 @@ struct tvlink_t
int palette_on;
};
-class svision_sound_device; // defined below
-
class svision_state : public driver_device
{
public:
svision_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
+ m_sound(*this, "custom"),
m_cart(*this, "cartslot"),
m_reg(*this, "reg"),
m_videoram(*this, "videoram"),
@@ -46,7 +46,6 @@ public:
m_joy2(*this, "JOY2"),
m_palette(*this, "palette") { }
- svision_sound_device *m_sound;
int *m_dma_finished;
svision_t m_svision;
svision_pet_t m_pet;
@@ -75,6 +74,7 @@ public:
protected:
required_device<cpu_device> m_maincpu;
+ required_device<svision_sound_device> m_sound;
required_device<generic_slot_device> m_cart;
required_shared_ptr<UINT8> m_reg;
required_shared_ptr<UINT8> m_videoram;
@@ -87,132 +87,4 @@ protected:
memory_bank *m_bank2;
};
-
-/*----------- defined in drivers/svision.c -----------*/
-
-void svision_irq( running_machine &machine );
-
-
-/*----------- defined in audio/svision.c -----------*/
-
-
-//**************************************************************************
-// TYPE DEFINITIONS
-//**************************************************************************
-
-enum SVISION_NOISE_Type
-{
- SVISION_NOISE_Type7Bit,
- SVISION_NOISE_Type14Bit
-};
-
-struct SVISION_NOISE
-{
- SVISION_NOISE() :
- on(0),
- right(0),
- left(0),
- play(0),
- type(SVISION_NOISE_Type7Bit),
- state(0),
- volume(0),
- count(0),
- step(0.0),
- pos(0.0),
- value(0)
- {
- memset(reg, 0, sizeof(UINT8)*3);
- }
-
- UINT8 reg[3];
- int on, right, left, play;
- SVISION_NOISE_Type type;
- int state;
- int volume;
- int count;
- double step, pos;
- int value; // currently simple random function
-};
-
-struct SVISION_DMA
-{
- SVISION_DMA() :
- on(0),
- right(0),
- left(0),
- ca14to16(0),
- start(0),
- size(0),
- pos(0.0),
- step(0.0),
- finished(0)
- {
- memset(reg, 0, sizeof(UINT8)*5);
- }
-
- UINT8 reg[5];
- int on, right, left;
- int ca14to16;
- int start,size;
- double pos, step;
- int finished;
-};
-
-struct SVISION_CHANNEL
-{
- SVISION_CHANNEL() :
- on(0),
- waveform(0),
- volume(0),
- pos(0),
- size(0),
- count(0)
- {
- memset(reg, 0, sizeof(UINT8)*4);
- }
-
- UINT8 reg[4];
- int on;
- int waveform, volume;
- int pos;
- int size;
- int count;
-};
-
-
-// ======================> svision_sound_device
-
-class svision_sound_device : public device_t,
- public device_sound_interface
-{
-public:
- svision_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- ~svision_sound_device() { }
-
-protected:
- // device-level overrides
- virtual void device_start();
-
- // sound stream update overrides
- virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
-
-public:
- DECLARE_WRITE8_MEMBER( svision_sounddma_w );
- DECLARE_WRITE8_MEMBER( svision_noise_w );
-
-public:
- int *dma_finished();
- void sound_decrement();
- void soundport_w(int which, int offset, int data);
-
-private:
- sound_stream *m_mixer_channel;
- SVISION_DMA m_dma;
- SVISION_NOISE m_noise;
- SVISION_CHANNEL m_channel[2];
-};
-
-extern const device_type SVISION;
-
-
#endif /* SVISION_H_ */