Previous 15994 Revisions Next

r7115 Thursday 21st January, 2010 at 20:24:48 UTC by Wilbert Pol
[PV1000] First attempt at inputs.
[src/mess/drivers]pv1000.c

src/mess/drivers/pv1000.c
r7114r7115
1111
1212static UINT8 *pv1000_ram;
1313static UINT8 pv1000_io_regs[8];
14static UINT8 pv1000_tmp;
1415
1516
1617static WRITE8_HANDLER( pv1000_io_w );
r7114r7115
4445
4546   switch ( offset )
4647   {
48   case 0x04:
49      /* Bit 1 = 1 => to pass checks in Amidar? */
50      /* Bit 0 = 0 => done reading joystick interface? */
51      data &= 0xFE;
52      if ( ( pv1000_io_regs[5] & 0x1F ) == 0x00 )
53      {
54         if ( pv1000_tmp == 0 )
55         {
56            data = ( data & 0xFD ) | 0x01;
57         }
58         pv1000_tmp = 0;
59      }
60      else
61      {
62         pv1000_tmp = 1;
63      }
64      break;
4765   case 0x05:
48      /* This input stuff is not working yet */
66      data = 0;
4967      if ( pv1000_io_regs[5] & 0x08 )
5068      {
5169         data = input_port_read( space->machine, "IN3" );
5270      }
5371      if ( pv1000_io_regs[5] & 0x04 )
5472      {
73         data = input_port_read( space->machine, "IN2" );
5574      }
5675      if ( pv1000_io_regs[5] & 0x02 )
5776      {
77         data = input_port_read( space->machine, "IN1" );
5878      }
5979      if ( pv1000_io_regs[5] & 0x01 )
6080      {
81         data = input_port_read( space->machine, "IN0" );
6182      }
6283      break;
6384   }
r7114r7115
6788
6889
6990static INPUT_PORTS_START( pv1000 )
70   PORT_START("IN3")
91   PORT_START( "IN0" )
92   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_PLAYER(1)
93   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START ) PORT_PLAYER(1)
94   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_PLAYER(2)
95   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_PLAYER(2)
96
97   PORT_START( "IN1" )
98   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_8WAY
99   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_8WAY
100   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_8WAY
101   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_8WAY
102
103   PORT_START( "IN2" )
104   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_8WAY
105   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_8WAY
106   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_8WAY
107   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_8WAY
108
109   PORT_START( "IN3" )
71110   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1)
72111   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1)
73112   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
r7114r7115
148187}
149188
150189
190static MACHINE_RESET( pv1000 )
191{
192   pv1000_io_regs[5] = 0;
193   pv1000_tmp = 0;
194}
195
196
151197static const gfx_layout pv1000_3bpp_gfx =
152198{
153199   8, 8,         /* 8x8 characters */
r7114r7115
173219
174220   MDRV_CPU_VBLANK_INT("screen", pv1000_irq)
175221
222   MDRV_MACHINE_RESET( pv1000 )
223
176224   MDRV_SCREEN_ADD( "screen", RASTER )
177225   MDRV_SCREEN_FORMAT( BITMAP_FORMAT_INDEXED16 )
178226   MDRV_SCREEN_REFRESH_RATE( 60 )
r7114r7115
183231   MDRV_PALETTE_INIT( pv1000 )
184232   MDRV_GFXDECODE( pv1000 )
185233
186   /* D65010G031 - Video & sound chip */
234   /* uPD4016c / D65010G031 - Video & sound chip */
187235   MDRV_VIDEO_UPDATE( pv1000 )
188236
189237   /* Cartridge slot */

Previous 15994 Revisions Next


© 1998-2018 The MESS Team