trunk/src/mame/drivers/namcos23.c
| r29324 | r29325 | |
| 1497 | 1497 | DECLARE_WRITE16_MEMBER(iob_p4_w); |
| 1498 | 1498 | DECLARE_READ16_MEMBER(iob_p6_r); |
| 1499 | 1499 | DECLARE_WRITE16_MEMBER(iob_p6_w); |
| 1500 | | DECLARE_READ16_MEMBER(iob_gun_r); |
| 1500 | DECLARE_READ8_MEMBER(iob_gun_r); |
| 1501 | 1501 | DECLARE_READ16_MEMBER(iob_analog_r); |
| 1502 | 1502 | DECLARE_DRIVER_INIT(s23); |
| 1503 | 1503 | TILE_GET_INFO_MEMBER(TextTilemapGetInfo); |
| r29324 | r29325 | |
| 2985 | 2985 | |
| 2986 | 2986 | // Time Crisis lightgun |
| 2987 | 2987 | |
| 2988 | | READ16_MEMBER(namcos23_state::iob_gun_r) |
| 2988 | READ8_MEMBER(namcos23_state::iob_gun_r) |
| 2989 | 2989 | { |
| 2990 | 2990 | UINT16 xpos = m_lightx->read(); |
| 2991 | 2991 | UINT16 ypos = m_lighty->read(); |
| r29324 | r29325 | |
| 2993 | 2993 | |
| 2994 | 2994 | switch(offset) |
| 2995 | 2995 | { |
| 2996 | | case 0: return xpos; |
| 2997 | | case 1: return ypos; |
| 2998 | | case 2: return ypos; |
| 2999 | | default: break; |
| 2996 | case 0: return xpos&0xff; |
| 2997 | case 1: return ypos&0xff; |
| 2998 | case 2: return ypos&0xff; |
| 2999 | case 3: return xpos>>8; |
| 3000 | case 4: return ypos>>8; |
| 3001 | case 5: return ypos>>8; |
| 3000 | 3002 | } |
| 3001 | 3003 | |
| 3002 | 3004 | return 0; |
| 3003 | 3005 | } |
| 3004 | 3006 | |
| 3005 | 3007 | static ADDRESS_MAP_START( timecrs2iobrdmap, AS_PROGRAM, 16, namcos23_state ) |
| 3006 | | AM_RANGE(0x7000, 0x700f) AM_READ(iob_gun_r) |
| 3008 | AM_RANGE(0x7000, 0x700f) AM_READ8(iob_gun_r, 0xffff) |
| 3007 | 3009 | AM_IMPORT_FROM( s23iobrdmap ) |
| 3008 | 3010 | ADDRESS_MAP_END |
| 3009 | 3011 | |