Previous 199869 Revisions Next

r34569 Friday 23rd January, 2015 at 20:42:45 UTC by Angelo Salese
Getting palette is always a good start.
[/branches/kale/src/mess/drivers]c65.c

branches/kale/src/mess/drivers/c65.c
r243080r243081
2525   c65_state(const machine_config &mconfig, device_type type, const char *tag)
2626      : driver_device(mconfig, type, tag),
2727         m_maincpu(*this, "maincpu"),
28         m_screen(*this, "screen")
28         m_screen(*this, "screen"),
29         m_palette(*this, "palette"),
30         m_palred(*this, "redpal"),
31         m_palgreen(*this, "greenpal"),
32         m_palblue(*this, "bluepal")
33         
2934   { }
3035
3136   // devices
3237   required_device<cpu_device> m_maincpu;
3338   required_device<screen_device> m_screen;
39   required_device<palette_device> m_palette;
40   required_shared_ptr<UINT8> m_palred;
41   required_shared_ptr<UINT8> m_palgreen;
42   required_shared_ptr<UINT8> m_palblue;
43   
3444   DECLARE_READ8_MEMBER(vic4567_dummy_r);
3545   DECLARE_WRITE8_MEMBER(vic4567_dummy_w);
36
46   DECLARE_WRITE8_MEMBER(PalRed_w);
47   DECLARE_WRITE8_MEMBER(PalGreen_w);
48   DECLARE_WRITE8_MEMBER(PalBlue_w);
49   
3750   // screen updates
3851   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3952   DECLARE_PALETTE_INIT(c65);
r243080r243081
4558   virtual void machine_reset();
4659
4760   virtual void video_start();
61private:
62   void PalEntryFlush(UINT8 offset);
4863};
4964
5065void c65_state::video_start()
r243080r243081
89104
90105}
91106
107void c65_state::PalEntryFlush(UINT8 offset)
108{
109   m_palette->set_pen_color(offset, pal4bit(m_palred[offset]), pal4bit(m_palgreen[offset]), pal4bit(m_palblue[offset]));
110}
111
112WRITE8_MEMBER(c65_state::PalRed_w)
113{
114   m_palred[offset] = data;
115   PalEntryFlush(offset);
116}
117
118WRITE8_MEMBER(c65_state::PalGreen_w)
119{
120   m_palblue[offset] = data;
121   PalEntryFlush(offset);
122}
123
124WRITE8_MEMBER(c65_state::PalBlue_w)
125{
126   m_palgreen[offset] = data;
127   PalEntryFlush(offset);
128}
129
130
92131static ADDRESS_MAP_START( c65_map, AS_PROGRAM, 8, c65_state )
93132   AM_RANGE(0x00000, 0x01fff) AM_RAM // TODO: bank
94133   AM_RANGE(0x0c800, 0x0cfff) AM_ROM AM_REGION("maincpu", 0xc800)
95   AM_RANGE(0x0d000, 0x0d07f) AM_READWRITE(vic4567_dummy_r,vic4567_dummy_w)
96   // 0x0d000, 0x0d07f VIC-4567
134   AM_RANGE(0x0d000, 0x0d07f) AM_READWRITE(vic4567_dummy_r,vic4567_dummy_w) // 0x0d000, 0x0d07f VIC-4567
97135   // 0x0d080, 0x0d09f FDC
98136   // 0x0d0a0, 0x0d0ff Ram Expansion Control (REC)
99   // 0x0d100, 0x0d1ff Red Palette
100   // 0x0d200, 0x0d2ff Green Palette
101   // 0x0d300, 0x0d3ff Blue Palette
137   AM_RANGE(0x0d100, 0x0d1ff) AM_RAM_WRITE(PalRed_w) AM_SHARE("redpal")// 0x0d100, 0x0d1ff Red Palette
138   AM_RANGE(0x0d200, 0x0d2ff) AM_RAM_WRITE(PalGreen_w) AM_SHARE("greenpal") // 0x0d200, 0x0d2ff Green Palette
139   AM_RANGE(0x0d300, 0x0d3ff) AM_RAM_WRITE(PalBlue_w) AM_SHARE("bluepal") // 0x0d300, 0x0d3ff Blue Palette
102140   // 0x0d400, 0x0d4*f Right SID
103141   // 0x0d440, 0x0d4*f Left  SID
104142   // 0x0d600, 0x0d6** UART
r243080r243081
107145   // 0x0dc00, 0x0dc** CIA-1
108146   // 0x0dd00, 0x0dd** CIA-2
109147   // 0x0de00, 0x0de** Ext I/O Select 1
110   // 0x0df00, 0x0df** Ext I/O Select 2
148   AM_RANGE(0x0df00, 0x0dfff) AM_RAM // 0x0df00, 0x0df** Ext I/O Select 2 (RAM window?)
111149   AM_RANGE(0x20000, 0x3ffff) AM_ROM AM_REGION("maincpu",0)
112150ADDRESS_MAP_END
113151
r243080r243081
181219
182220PALETTE_INIT_MEMBER(c65_state, c65)
183221{
222   // TODO: initial state?
184223}
185224
186225static MACHINE_CONFIG_START( c65, c65_state )


Previous 199869 Revisions Next


© 1997-2024 The MAME Team