Previous 199869 Revisions Next

r33935 Wednesday 17th December, 2014 at 14:38:36 UTC by R. Belmont
(MESS) More hp16500b progress (nw)
[src/mess/drivers]hp16500.c

trunk/src/mess/drivers/hp16500.c
r242446r242447
1616    IRQ 5 = 814a
1717    IRQ 6 = 35c8 (jump 840120)
1818    IRQ 7 = 35d4 (jump 840120)
19
19
2020****************************************************************************/
2121
2222#include "emu.h"
r242446r242447
4444   DECLARE_READ8_MEMBER  (vram_r);
4545   DECLARE_WRITE8_MEMBER (mask_w);
4646   DECLARE_WRITE8_MEMBER (val_w);
47   DECLARE_READ32_MEMBER(vbl_state_r);
48   DECLARE_WRITE32_MEMBER(vbl_ack_w);
4749
4850   INTERRUPT_GEN_MEMBER(vblank);
4951
r242446r242447
5153   UINT32 m_palette[256], m_colors[3], m_count, m_clutoffs;
5254};
5355
56READ32_MEMBER(hp16500_state::vbl_state_r)
57{
58   return 0x03000000;   // bit 0 set means the interrupt handler advances the pSOS tick counter.
59}
60
61WRITE32_MEMBER(hp16500_state::vbl_ack_w)
62{
63   m_maincpu->set_input_line(M68K_IRQ_1, CLEAR_LINE);
64}
65
5466static ADDRESS_MAP_START(hp16500_map, AS_PROGRAM, 32, hp16500_state)
5567   AM_RANGE(0x00000000, 0x0001ffff) AM_ROM AM_REGION("bios", 0)
5668   AM_RANGE(0x0020f000, 0x0020f003) AM_WRITE(palette_w)
5769
58   AM_RANGE(0x00200000, 0x0020efff) AM_RAM
70   AM_RANGE(0x00202800, 0x00202803) AM_WRITE(vbl_ack_w)
71   AM_RANGE(0x00203000, 0x00203003) AM_WRITE(vbl_ack_w)
72   AM_RANGE(0x00209800, 0x00209803) AM_READ(vbl_state_r)
5973
74   AM_RANGE(0x0020b800, 0x0020b8ff) AM_RAM   // system ram test is really strange.
75
6076   AM_RANGE(0x00600000, 0x0061ffff) AM_WRITE16(vram_w, 0xffffffff)
6177   AM_RANGE(0x00600000, 0x0067ffff) AM_READ8  (vram_r, 0x00ff00ff)
6278   AM_RANGE(0x00700000, 0x00700003) AM_WRITE8 (mask_w, 0xff000000)
r242446r242447
6682
6783INTERRUPT_GEN_MEMBER(hp16500_state::vblank)
6884{
69   m_maincpu->set_input_line(M68K_IRQ_1, HOLD_LINE);
85   m_maincpu->set_input_line(M68K_IRQ_1, ASSERT_LINE);
7086}
7187
7288void hp16500_state::video_start()
r242446r242447
121137   }
122138   else if (mem_mask == 0x00ff0000)
123139   {
124      UINT8 tmpcolor = (data>>16) & 0xff;
140      m_colors[m_count++] = (data>>14) & 0xfc;
125141
126      if ((tmpcolor & 0xf0) == 0x00)
127      {
128         tmpcolor |= (tmpcolor << 4);
129      }
130
131      m_colors[m_count++] = tmpcolor;
132
133142      if (m_count == 3)
134143      {
135144         m_palette[m_clutoffs] = rgb_t(m_colors[0], m_colors[1], m_colors[2]);


Previous 199869 Revisions Next


© 1997-2024 The MAME Team