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
|
/*************************************************************************
Incredible Technologies/Strata system
(8-bit blitter variant)
**************************************************************************/
#include "video/tlc34076.h"
#include "video/tms34061.h"
#define YBUFFER_COUNT 15
class itech8_state : public driver_device
{
public:
itech8_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_tlc34076(*this, "tlc34076"),
m_visarea(0, 0, 0, 0){ }
required_device<tlc34076_device> m_tlc34076;
rectangle m_visarea;
UINT8 m_grom_bank;
UINT8 m_blitter_int;
UINT8 m_tms34061_int;
UINT8 m_periodic_int;
UINT8 m_sound_data;
UINT8 m_pia_porta_data;
UINT8 m_pia_portb_data;
UINT8 m_z80_ctrl;
UINT8 m_z80_port_val;
UINT8 m_z80_clear_to_send;
UINT16 m_sensor0;
UINT16 m_sensor1;
UINT16 m_sensor2;
UINT16 m_sensor3;
UINT8 m_curvx;
UINT8 m_curvy;
UINT8 m_curx;
INT8 m_xbuffer[YBUFFER_COUNT];
INT8 m_ybuffer[YBUFFER_COUNT];
int m_ybuffer_next;
int m_curxpos;
int m_last_ytotal;
UINT8 m_crosshair_vis;
UINT8 m_blitter_data[16];
UINT8 m_blit_in_progress;
UINT8 m_page_select;
offs_t m_fetch_offset;
UINT8 m_fetch_rle_count;
UINT8 m_fetch_rle_value;
UINT8 m_fetch_rle_literal;
struct tms34061_display m_tms_state;
UINT8 *m_grom_base;
UINT32 m_grom_size;
UINT8 m_grmatch_palcontrol;
UINT8 m_grmatch_xscroll;
rgb_t m_grmatch_palette[2][16];
DECLARE_WRITE8_MEMBER(itech8_nmi_ack_w);
DECLARE_WRITE8_MEMBER(blitter_w);
DECLARE_WRITE8_MEMBER(rimrockn_bank_w);
DECLARE_WRITE8_MEMBER(pia_portb_out);
DECLARE_WRITE8_MEMBER(sound_data_w);
DECLARE_WRITE8_MEMBER(gtg2_sound_data_w);
DECLARE_READ8_MEMBER(sound_data_r);
DECLARE_WRITE8_MEMBER(grom_bank_w);
DECLARE_WRITE16_MEMBER(grom_bank16_w);
DECLARE_WRITE16_MEMBER(display_page16_w);
DECLARE_WRITE16_MEMBER(palette16_w);
DECLARE_WRITE8_MEMBER(itech8_palette_w);
DECLARE_WRITE8_MEMBER(itech8_page_w);
DECLARE_READ8_MEMBER(itech8_blitter_r);
DECLARE_WRITE8_MEMBER(itech8_blitter_w);
DECLARE_WRITE8_MEMBER(itech8_tms34061_w);
DECLARE_READ8_MEMBER(itech8_tms34061_r);
DECLARE_WRITE8_MEMBER(grmatch_palette_w);
DECLARE_WRITE8_MEMBER(grmatch_xscroll_w);
DECLARE_CUSTOM_INPUT_MEMBER(special_r);
DECLARE_CUSTOM_INPUT_MEMBER(gtg_mux);
DECLARE_WRITE8_MEMBER(pia_porta_out);
DECLARE_WRITE8_MEMBER(ym2203_portb_out);
DECLARE_DRIVER_INIT(rimrockn);
DECLARE_DRIVER_INIT(grmatch);
DECLARE_DRIVER_INIT(peggle);
DECLARE_DRIVER_INIT(slikshot);
DECLARE_DRIVER_INIT(neckneck);
DECLARE_DRIVER_INIT(arligntn);
DECLARE_DRIVER_INIT(hstennis);
DECLARE_DRIVER_INIT(sstrike);
virtual void machine_reset();
virtual void video_start();
DECLARE_VIDEO_START(slikshot);
DECLARE_MACHINE_START(sstrike);
UINT32 screen_update_itech8_2layer(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
UINT32 screen_update_itech8_grmatch(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
UINT32 screen_update_slikshot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
UINT32 screen_update_itech8_2page(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
UINT32 screen_update_itech8_2page_large(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(generate_nmi);
TIMER_CALLBACK_MEMBER(irq_off);
TIMER_CALLBACK_MEMBER(behind_the_beam_update);
TIMER_CALLBACK_MEMBER(delayed_sound_data_w);
TIMER_CALLBACK_MEMBER(blitter_done);
TIMER_DEVICE_CALLBACK_MEMBER(grmatch_palette_update);
inline UINT8 fetch_next_raw();
inline void consume_raw(int count);
inline UINT8 fetch_next_rle();
inline void consume_rle(int count);
void perform_blit(address_space &space);
void itech8_update_interrupts(int periodic, int tms34061, int blitter);
};
/*----------- defined in machine/slikshot.c -----------*/
DECLARE_READ8_HANDLER( slikz80_port_r );
DECLARE_WRITE8_HANDLER( slikz80_port_w );
DECLARE_READ8_HANDLER( slikshot_z80_r );
DECLARE_READ8_HANDLER( slikshot_z80_control_r );
DECLARE_WRITE8_HANDLER( slikshot_z80_control_w );
|