Previous 199869 Revisions Next

r17459 Saturday 25th August, 2012 at 02:04:46 UTC by Angelo Salese
JUST A MOMENT / NON SLOT ... messages putted in VRAM
[src/emu]emu.mak
[src/emu/video]m50458.c* m50458.h*
[src/mame/drivers]nss.c

trunk/src/mame/drivers/nss.c
r17458r17459
296296#include "emu.h"
297297#include "cpu/z80/z80.h"
298298#include "machine/eeprom.h"
299#include "video/m50458.h"
299300#include "includes/snes.h"
300301
301302
r17458r17459
529530   ---- ---x  RTC /CS           (0=Low/Select, 1=High/No)
530531*/
531532   /* TODO */
533   ioport("RTC_OSD")->write(data, 0xff);
532534}
533535
534536static ADDRESS_MAP_START( bios_io_map, AS_IO, 8, nss_state )
r17458r17459
594596   PORT_BIT( 0x08, IP_ACTIVE_HIGH,IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit)
595597   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line)
596598
599   PORT_START("RTC_OSD")
600   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("m50458", m50458_device, set_clock_line)
601   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("m50458", m50458_device, write_bit)
602   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("m50458", m50458_device, set_cs_line)
603
597604   PORT_START("SERIAL1_DATA1_L")
598605   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Button A") PORT_PLAYER(1)
599606   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("P1 Button X") PORT_PLAYER(1)
r17458r17459
719726   16*18
720727};
721728
722static const gfx_layout nss_char_layout_16x16 =
723{
724   16,16,
725   RGN_FRAC(1,1),
726   1,
727   { 0 },
728   { 0, 1, 2, 3, 4, 5, 6, 7,8,9,10,11,12,13,14,15 },
729   { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
730   16*16
731};
732729
733
734730/* decoded for debugging purpose, this will be nuked in the end... */
735731static GFXDECODE_START( nss )
736732   GFXDECODE_ENTRY( "chargen",   0x00000, nss_char_layout_16x18,    0, 1 )
737   GFXDECODE_ENTRY( "m50458_gfx",   0x00000, nss_char_layout_16x16,    0, 1 )
738733GFXDECODE_END
739734
740735static MACHINE_CONFIG_START( snes, nss_state )
r17458r17459
783778
784779   MCFG_EEPROM_ADD("eeprom", nss_eeprom_intf)
785780
781   MCFG_M50458_ADD("m50458",4000000) /* TODO: clock */
782
786783   MCFG_GFXDECODE( nss )
787784   MCFG_PALETTE_LENGTH(2)
788785   MCFG_MACHINE_START( nss )
r17458r17459
806803   ROM_LOAD("m50458_char.bin",     0x0000, 0x1200, BAD_DUMP CRC(011cc342) SHA1(d5b9f32d6e251b4b25945267d7c68c099bd83e96) ) \
807804   ROM_REGION( 0x1000, "m50458_gfx", ROMREGION_ERASEFF ) \
808805   ROM_LOAD("m50458_char_mod.bin", 0x0000, 0x1000, BAD_DUMP CRC(8c4326ef) SHA1(21a63c5245ff7f3f70cb45e217b3045b19d0d799) ) \
809   ROM_REGION( 0x1000, "m50458_vram", ROMREGION_ERASE00 ) \
810806   ROM_REGION( 0x2000, "dspprg", ROMREGION_ERASEFF) \
811807   ROM_REGION( 0x800, "dspdata", ROMREGION_ERASEFF)
812808
trunk/src/emu/video/m50458.c
r0r17459
1/***************************************************************************
2
3Mitsubishi M50458 OSD chip
4
5***************************************************************************/
6
7#include "emu.h"
8#include "video/m50458.h"
9
10
11
12//**************************************************************************
13//  GLOBAL VARIABLES
14//**************************************************************************
15
16// device type definition
17const device_type M50458 = &device_creator<m50458_device>;
18
19
20//**************************************************************************
21//  LIVE DEVICE
22//**************************************************************************
23
24//-------------------------------------------------
25//  m50458_device - constructor
26//-------------------------------------------------
27
28m50458_device::m50458_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
29   : device_t(mconfig, M50458, "m50458", tag, owner, clock)
30{
31
32}
33
34
35//-------------------------------------------------
36//  device_validity_check - perform validity checks
37//  on this device
38//-------------------------------------------------
39
40void m50458_device::device_validity_check(validity_checker &valid) const
41{
42}
43
44
45//-------------------------------------------------
46//  device_start - device-specific startup
47//-------------------------------------------------
48
49void m50458_device::device_start()
50{
51
52}
53
54
55//-------------------------------------------------
56//  device_reset - device-specific reset
57//-------------------------------------------------
58
59void m50458_device::device_reset()
60{
61}
62
63
64//**************************************************************************
65//  READ/WRITE HANDLERS
66//**************************************************************************
67
68WRITE_LINE_MEMBER( m50458_device::write_bit )
69{
70   m_latch = state;
71}
72
73WRITE_LINE_MEMBER( m50458_device::set_cs_line )
74{
75   m_reset_line = state;
76
77   if(m_reset_line != CLEAR_LINE)
78   {
79      printf("Reset asserted\n");
80      m_cmd_stream_pos = 0;
81      m_current_cmd = 0;
82      m_osd_state = OSD_SET_ADDRESS;
83   }
84}
85
86/*
870x7e: "JUST A MOMENT"
880x81: "NON SLOT"
89*/
90
91WRITE_LINE_MEMBER( m50458_device::set_clock_line )
92{
93   if (m_reset_line == CLEAR_LINE)
94   {
95      if(state == 1)
96      {
97         //printf("%d\n",m_latch);
98
99         m_current_cmd = (m_current_cmd >> 1) | ((m_latch<<15)&0x8000);
100         m_cmd_stream_pos++;
101
102         if(m_cmd_stream_pos == 16)
103         {
104            switch(m_osd_state)
105            {
106               case OSD_SET_ADDRESS:
107                  m_osd_addr = m_current_cmd;
108                  m_osd_state = OSD_SET_DATA;
109                  break;
110               case OSD_SET_DATA:
111                  printf("%04x %04x\n",m_osd_addr,m_current_cmd);
112
113                  m_osd_addr++;
114                  /* Presumably wraps at 0x127? */
115                  if(m_osd_addr > 0x127) { m_osd_addr = 0; }
116                  break;
117            }
118
119            m_cmd_stream_pos = 0;
120            m_current_cmd = 0;
121         }
122      }
123   }
124}
trunk/src/emu/video/m50458.h
r0r17459
1/***************************************************************************
2
3Mitsubishi M50458 OSD chip
4
5***************************************************************************/
6
7#pragma once
8
9#ifndef __M50458DEV_H__
10#define __M50458DEV_H__
11
12
13
14//**************************************************************************
15//  INTERFACE CONFIGURATION MACROS
16//**************************************************************************
17
18#define MCFG_M50458_ADD(_tag,_freq) \
19   MCFG_DEVICE_ADD(_tag, M50458,_freq) \
20
21
22//**************************************************************************
23//  TYPE DEFINITIONS
24//**************************************************************************
25
26typedef enum
27{
28   OSD_SET_ADDRESS = 0,
29   OSD_SET_DATA
30} m50458_state_t;
31
32
33// ======================> m50458_device
34
35class m50458_device :   public device_t
36{
37public:
38   // construction/destruction
39   m50458_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
40
41   // I/O operations
42   WRITE_LINE_MEMBER( write_bit );
43   WRITE_LINE_MEMBER( set_cs_line );
44   WRITE_LINE_MEMBER( set_clock_line );
45
46protected:
47   // device-level overrides
48   virtual void device_validity_check(validity_checker &valid) const;
49   virtual void device_start();
50   virtual void device_reset();
51
52   int m_latch;
53   int   m_reset_line;
54   int   m_clock_line;
55   int m_current_cmd;
56   int m_cmd_stream_pos;
57   UINT16 m_osd_addr;
58
59   m50458_state_t m_osd_state;
60};
61
62
63// device type definition
64extern const device_type M50458;
65
66
67
68//**************************************************************************
69//  GLOBAL VARIABLES
70//**************************************************************************
71
72
73
74#endif
trunk/src/emu/emu.mak
r17458r17459
292292   $(EMUVIDEO)/huc6272.o      \
293293   $(EMUVIDEO)/i8275.o      \
294294   $(EMUVIDEO)/k053250.o      \
295   $(EMUVIDEO)/m50458.o      \
295296   $(EMUVIDEO)/mc6845.o      \
296297   $(EMUVIDEO)/msm6255.o      \
297298   $(EMUVIDEO)/pc_cga.o      \
r17458r17459
302303   $(EMUVIDEO)/ramdac.o      \
303304   $(EMUVIDEO)/resnet.o      \
304305   $(EMUVIDEO)/rgbutil.o      \
305   $(EMUVIDEO)/s2636.o         \
306   $(EMUVIDEO)/s2636.o      \
306307   $(EMUVIDEO)/saa5050.o      \
307308   $(EMUVIDEO)/sed1330.o      \
308309   $(EMUVIDEO)/tlc34076.o      \
r17458r17459
310311   $(EMUVIDEO)/tms9927.o      \
311312   $(EMUVIDEO)/tms9928a.o      \
312313   $(EMUVIDEO)/upd3301.o      \
313   $(EMUVIDEO)/v9938.o         \
314   $(EMUVIDEO)/v9938.o      \
314315   $(EMUVIDEO)/vector.o      \
315316   $(EMUVIDEO)/voodoo.o      \
316317

Previous 199869 Revisions Next


© 1997-2024 The MAME Team