summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/includes/mw8080bw.h
blob: 5bbbe3c44e37f8111f3fdcc9541f50d14c9bdb10 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
/***************************************************************************

    Midway 8080-based black and white hardware

****************************************************************************/


#define MW8080BW_MASTER_CLOCK				(19968000)
#define MW8080BW_CPU_CLOCK					(MW8080BW_MASTER_CLOCK / 10)
#define MW8080BW_PIXEL_CLOCK				(MW8080BW_MASTER_CLOCK / 4)
#define MW8080BW_HTOTAL						(0x140)
#define MW8080BW_HBEND						(0x000)
#define MW8080BW_HBSTART					(0x100)
#define MW8080BW_VTOTAL						(0x106)
#define MW8080BW_VBEND						(0x000)
#define MW8080BW_VBSTART					(0x0e0)
#define MW8080BW_VCOUNTER_START_NO_VBLANK	(0x020)
#define MW8080BW_VCOUNTER_START_VBLANK		(0x0da)
#define MW8080BW_INT_TRIGGER_COUNT_1		(0x080)
#define MW8080BW_INT_TRIGGER_VBLANK_1		(0)
#define MW8080BW_INT_TRIGGER_COUNT_2		MW8080BW_VCOUNTER_START_VBLANK
#define MW8080BW_INT_TRIGGER_VBLANK_2		(1)

/* +4 is added to HBSTART because the hardware displays that many pixels after
   setting HBLANK */
#define MW8080BW_HPIXCOUNT		(MW8080BW_HBSTART + 4)


/*----------- defined in drivers/mw8080bw.c -----------*/

extern UINT8 *mw8080bw_ram;
extern size_t mw8080bw_ram_size;

MACHINE_DRIVER_EXTERN( mw8080bw_root );
MACHINE_DRIVER_EXTERN( invaders );
extern const char layout_invaders[];

#define SEAWOLF_GUN_PORT_TAG			("GUN")

#define TORNBASE_CAB_TYPE_UPRIGHT_OLD	(0)
#define TORNBASE_CAB_TYPE_UPRIGHT_NEW	(1)
#define TORNBASE_CAB_TYPE_COCKTAIL		(2)
UINT8 tornbase_get_cabinet_type(void);

#define DESERTGU_GUN_X_PORT_TAG			("GUNX")
#define DESERTGU_GUN_Y_PORT_TAG			("GUNY")
void desertgun_set_controller_select(UINT8 data);

void clowns_set_controller_select(UINT8 data);

void spcenctr_set_strobe_state(UINT8 data);
UINT8 spcenctr_get_trench_width(void);
UINT8 spcenctr_get_trench_center(void);
UINT8 spcenctr_get_trench_slope(UINT8 addr);

UINT16 phantom2_get_cloud_counter(void);
void phantom2_set_cloud_counter(UINT16 data);

#define INVADERS_CAB_TYPE_PORT_TAG		("CAB")
#define INVADERS_P1_CONTROL_PORT_TAG	("CONTP1")
#define INVADERS_P2_CONTROL_PORT_TAG	("CONTP2")

UINT32 invaders_in2_control_r(void *param);
UINT8 invaders_is_flip_screen(void);
void invaders_set_flip_screen(UINT8 data);
int invaders_is_cabinet_cocktail(void);

#define BLUESHRK_SPEAR_PORT_TAG			("SPEAR")


/*----------- defined in machine/mw8080bw.c -----------*/

MACHINE_START( mw8080bw );
MACHINE_RESET( mw8080bw );


/*----------- defined in audio/mw8080bw.c -----------*/

WRITE8_HANDLER( midway_tone_generator_lo_w );
WRITE8_HANDLER( midway_tone_generator_hi_w );

MACHINE_DRIVER_EXTERN( seawolf_audio );
WRITE8_HANDLER( seawolf_audio_w );

MACHINE_DRIVER_EXTERN( gunfight_audio );
WRITE8_HANDLER( gunfight_audio_w );

MACHINE_DRIVER_EXTERN( tornbase_audio );
WRITE8_HANDLER( tornbase_audio_w );

MACHINE_DRIVER_EXTERN( zzzap_audio );
WRITE8_HANDLER( zzzap_audio_1_w );
WRITE8_HANDLER( zzzap_audio_2_w );

MACHINE_DRIVER_EXTERN( maze_audio );
void maze_write_discrete(UINT8 maze_tone_timing_state);

MACHINE_DRIVER_EXTERN( boothill_audio );
WRITE8_HANDLER( boothill_audio_w );

MACHINE_DRIVER_EXTERN( checkmat_audio );
WRITE8_HANDLER( checkmat_audio_w );

MACHINE_DRIVER_EXTERN( desertgu_audio );
WRITE8_HANDLER( desertgu_audio_1_w );
WRITE8_HANDLER( desertgu_audio_2_w );

MACHINE_DRIVER_EXTERN( dplay_audio );
WRITE8_HANDLER( dplay_audio_w );

MACHINE_DRIVER_EXTERN( gmissile_audio );
WRITE8_HANDLER( gmissile_audio_1_w );
WRITE8_HANDLER( gmissile_audio_2_w );
WRITE8_HANDLER( gmissile_audio_3_w );

MACHINE_DRIVER_EXTERN( m4_audio );
WRITE8_HANDLER( m4_audio_1_w );
WRITE8_HANDLER( m4_audio_2_w );

MACHINE_DRIVER_EXTERN( clowns_audio );
WRITE8_HANDLER( clowns_audio_1_w );
WRITE8_HANDLER( clowns_audio_2_w );

MACHINE_DRIVER_EXTERN( shuffle_audio );
WRITE8_HANDLER( shuffle_audio_1_w );
WRITE8_HANDLER( shuffle_audio_2_w );

MACHINE_DRIVER_EXTERN( dogpatch_audio );
WRITE8_HANDLER( dogpatch_audio_w );

MACHINE_DRIVER_EXTERN( spcenctr_audio );
WRITE8_HANDLER( spcenctr_audio_1_w );
WRITE8_HANDLER( spcenctr_audio_2_w );
WRITE8_HANDLER( spcenctr_audio_3_w );

MACHINE_DRIVER_EXTERN( phantom2_audio );
WRITE8_HANDLER( phantom2_audio_1_w );
WRITE8_HANDLER( phantom2_audio_2_w );

MACHINE_DRIVER_EXTERN( bowler_audio );
WRITE8_HANDLER( bowler_audio_1_w );
WRITE8_HANDLER( bowler_audio_2_w );
WRITE8_HANDLER( bowler_audio_3_w );
WRITE8_HANDLER( bowler_audio_4_w );
WRITE8_HANDLER( bowler_audio_5_w );
WRITE8_HANDLER( bowler_audio_6_w );

MACHINE_DRIVER_EXTERN( invaders_samples_audio );
MACHINE_DRIVER_EXTERN( invaders_audio );
WRITE8_HANDLER( invaders_audio_1_w );
WRITE8_HANDLER( invaders_audio_2_w );

MACHINE_DRIVER_EXTERN( blueshrk_audio );
WRITE8_HANDLER( blueshrk_audio_w );

MACHINE_DRIVER_EXTERN( invad2ct_audio );
WRITE8_HANDLER( invad2ct_audio_1_w );
WRITE8_HANDLER( invad2ct_audio_2_w );
WRITE8_HANDLER( invad2ct_audio_3_w );
WRITE8_HANDLER( invad2ct_audio_4_w );



/*----------- defined in video/mw8080bw.c -----------*/

VIDEO_UPDATE( mw8080bw );

VIDEO_UPDATE( spcenctr );

VIDEO_UPDATE( phantom2 );
VIDEO_EOF( phantom2 );

VIDEO_UPDATE( invaders );