Previous 199869 Revisions Next

r20321 Friday 18th January, 2013 at 18:41:26 UTC by Wilbert Pol
(MESS) Added microvision software list (nw)
[hash]microvision.xml*
[src/mess/drivers]microvsn.c

trunk/hash/microvision.xml
r0r20321
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3<softwarelist name="microvision" description="Milton Bradley MicroVision cartridges">
4<!--
5The following board types are known to exist:
64952 REV-A - used for tms1100 games, 2 varations exist, one with and one without paddle circuitry
74952-79 REV-B - used for tms1100 games, 2 variations exists, one with and one without paddle circuitry
84971-REV-C - used for i8021 based game(s). Found in Connect Four
97924952D02 - used for shrink DIP version of the tms1100. Found in Super Blockbuster
10
11The "pcb" feature is used to indicate the baord type
12The "paddle" feature is used to indicate whether there is paddle circuitry on the board
13The "rc" feature is used to indicate the source of the clock signal
14-->
15
16<!--
17   <software name="alienrdr">
18      <description>Alien Raiders</description>
19      <year>1981</year>
20      <publisher>Milton Bradley</publisher>
21
22      <part name="cart" interface="microvision_cart">
23         <feature name="pcb" value="4952-79 REV-B" />
24         <feature name="paddle" value="yes" />
25         <feature name="rc" value="100pf/23.2K" />
26         <dataarea name="rom" size="2048">
27            <rom name="m34009-n1" size="2048" crc="" sha1="" offset="0" />
28         </dataarea>
29      </part>
30   </software>
31-->
32
33<!--
34   <software name="Baseball">
35      <description>Baseball</description>
36      <year>1980</year>
37      <publisher>Milton Bradley</publisher>
38
39      <part name="cart" interface="microvision_cart">
40         <feature name="pcb" value="4952-79 REV-B" />
41         <feature name="paddle" value="yes" />
42         <feature name="rc" value="100pf/23.2K" />
43         <dataarea name="rom" size="2048">
44            <rom name="mp3479-n1nll_4063" size="2048" crc="" sha1="" offset="0" />
45         </dataarea>
46      </part>
47   </software>
48-->
49
50   <software name="blckbstr">
51      <description>Blockbuster</description>
52      <year>1979</year>
53      <publisher>Milton Bradley</publisher>
54
55      <part name="cart" interface="microvision_cart">
56         <feature name="pcb" value="4952 REV-A" />
57         <feature name="paddle" value="yes" />
58         <feature name="rc" value="100pf/23.2K" />
59         <dataarea name="rom" size="2048">
60            <rom name="mp3450a" size="2048" crc="ifd18ea6d" sha1="30203278d7f2b0817e59bdf7e451be2d64a90f5a" offset="0" />
61         </dataarea>
62      </part>
63   </software>
64
65<!--
66   <software name="bowling">
67      <description>Bowling</description>
68      <year>1979</year>
69      <publisher>Milton Bradley</publisher>
70
71      <part name="cart" interface="microvision_cart">
72         <!- - also seen with 4952 REV-A - ->
73         <feature name="pcb" value="4952-79 REV-B" />
74         <feature name="paddle" value="no" />
75         <feature name="rc" value="100pf/23.2K" />
76         <dataarea name="rom" size="2048">
77            <rom name="mp3475nll_4972" size="2048" crc="" sha1="" offset="0" />
78
79   </software>
80-->
81
82   <software name="connect4">
83      <description>Connect Four</description>
84      <year>1979</year>
85      <publisher>Milton Bradley</publisher>
86
87      <part name="cart" interface="microvision_cart">
88         <feature name="pcb" value="4971-REV-C" />
89         <feature name="paddle" value="yes" />
90         <dataarea name="rom" size="1024">
91            <!-- 8021 on cart has no label -->
92            <rom name="connect4.bin" size="1024" crc="bdd8660b" sha1="971f9117dc809f7b9796134208b47ea34990ae71" offset="0" />
93         </dataarea>
94      </part>
95   </software>
96
97<!--
98   <software name="cosmichu">
99      <description>Cosmic hunter</description>
100      <year>1981</year>
101      <publisher>Milton Bradley</publisher>
102
103      <part name="cart" interface="microvision_cart">
104         <feature name="pcb" value="4952-79 REV-B" />
105         <feature name="paddle" value="no" />
106         <feature name="rc" value="100pf/23.2K" />
107         <dataarea name="rom" size="2048">
108            <rom name="m34017-n1" size="2048" crc="" sha1="" offset="0" />
109         </dataarea>
110      </part>
111   </software>
112-->
113
114   <software name="mindbstr">
115      <description>Mindbuster</description>
116      <year>1979</year>
117      <publisher>Milton Bradley</publisher>
118
119      <part name="cart" interface="microvision_cart">
120         <feature name="pcb" value="4952 REV-A" />
121         <feature name="paddle" value="no" />
122         <feature name="rc" value="100pf/21.0K" />
123         <dataarea name="rom" size="2048">
124            <rom name="mp3457nll_4976" size="2048" crc="d5dc1f7d" sha1="9e53bd7e9b718ced3bffbdd50cf9ea1547183ea3" offset="0" />
125         </dataarea>
126      </part>
127   </software>
128
129   <software name="phsrstrk">
130      <description>Star Trek Phaser Strike</description>
131      <year>1979</year>
132      <publisher>Milton Bradley</publisher>
133
134      <part name="cart" interface="microvision_cart">
135         <feature name="pcb" value="4952-79 REV-B" />
136         <feature name="paddle" value="no" />
137         <feature name="rc" value="100pf/21.0K" />
138         <dataarea name="rom" size="2048">
139            <rom name="mp3454" size="2048" crc="c7768d04" sha1="e477d49fc835649164cff5ed158ee31dcf244efc" offset="0" />
140         </dataarea>
141      </part>
142   </software>
143
144<!--
145   <software name="pinball">
146      <description>Pinball</description>
147      <year>1980</year>
148      <publisher>Milton Bradley</publisher>
149
150      <part name="cart" interface="microvision_cart">
151         <feature name="pcb" value="4952-79 REV-B" />
152         <feature name="paddle" value="yes" />
153         <feature name="rc" value="100pf/21.0K" />
154         <dataarea name="rom" size="2048">
155            <rom name="mp3455nll_4974" size="2048" crc="" sha1="" offset="0" />
156         </dataarea>
157      </part>
158   </software>
159-->
160
161<!--
162   <software name="seaduel">
163      <description>Sea Duel</description>
164      <year>1980</year>
165      <publisher>Milton Bradley</publisher>
166
167      <part name="cart" interface="microvision_cart">
168         <feature name="pcb" value="4952-79 REV-B" />
169         <feature name="paddle" value="no" />
170         <feature name="rc" value="100pf/39.4K" />
171         <dataarea name="rom" size="2048">
172            <rom name="mp3496-n1_4064" size="2048" crc="" sha1="" offset="0" />
173         </dataarea>
174      </part>
175   </software>
176-->
177
178<!--
179   <software name="sprblock">
180      <description>Super Blockbuster</description>
181      <year>1979</year>
182      <publisher>Milton Bradley</publisher>
183
184      <part name="cart" interface="microvision_cart">
185         <feature name="pcb" value="7924952D02" />
186         <feature name="paddle" value="yes" />
187         <feature name="rc" value="100pf/23.2K" />
188         <dataarea name="rom" size="2048">
189            <rom name="m34047-n2ll_4241" size="2048" crc="" sha1="" offset="0" />
190         </dataarea>
191      </part>
192   </software>
193-->
194
195   <software name="vegasslt">
196      <description>Veags Slots</description>
197      <year>1979</year>
198      <publisher>Milton Bradley</publisher>
199
200      <part name="cart" interface="microvision_cart">
201         <feature name="pcb" value="4952 REV-A" />
202         <feature name="paddle" value="no" />
203         <feature name="rc" value="100pf/23.2K" />
204         <dataarea name="rom" size="2048">
205            <rom name="mp3474nll_4975" size="2048" crc="4500c1d9" sha1="d49522dbe265e71b86488b5533d01bc9050811c9" offset="0" />
206         </dataarea>
207      </part>
208   </software>
209
210</softwarelist>
Property changes on: trunk/hash/microvision.xml
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/xml
trunk/src/mess/drivers/microvsn.c
r20320r20321
2323
2424#define LOG 0
2525
26enum cpu_type
27{
28   CPU_TYPE_I8021,
29   CPU_TYPE_TMS1100
30};
3126
32
3327class microvision_state : public driver_device
3428{
3529public:
r20320r20321
6054   DECLARE_WRITE16_MEMBER(tms1100_write_o);
6155   DECLARE_WRITE16_MEMBER(tms1100_write_r);
6256
57   // enums
58   enum cpu_type
59   {
60      CPU_TYPE_I8021,
61      CPU_TYPE_TMS1100
62   };
63
64   enum pcb_type
65   {
66      PCB_TYPE_4952_REV_A,
67      PCB_TYPE_4952_9_REV_B,
68      PCB_TYPE_4971_REV_C,
69      PCB_TYPE_7924952D02,
70      PCB_TYPE_UNKNOWN
71   };
72
73   enum rc_type
74   {
75      RC_TYPE_100PF_21_0K,
76      RC_TYPE_100PF_23_2K,
77      RC_TYPE_100PF_39_4K,
78      RC_TYPE_UNKNOWN
79   };
80
6381   cpu_type    m_cpu_type;
82   pcb_type   m_pcb_type;
83   rc_type      m_rc_type;
6484
6585protected:
6686   required_device<dac_device> m_dac;
r20320r20321
162182      case CPU_TYPE_TMS1100:
163183         m_i8021->suspend( SUSPEND_REASON_DISABLE, 0 );
164184         m_tms1100->resume( SUSPEND_REASON_DISABLE );
185
186         switch ( m_rc_type )
187         {
188            case RC_TYPE_100PF_21_0K:
189               static_set_clock( m_tms1100, 550000 );
190               break;
191
192            case RC_TYPE_100PF_23_2K:
193            case RC_TYPE_UNKNOWN:   // Default to most occuring setting
194               static_set_clock( m_tms1100, 500000 );
195               break;
196
197            case RC_TYPE_100PF_39_4K:
198               static_set_clock( m_tms1100, 300000 );
199               break;
200         }
165201         break;
166202   }
167203}
r20320r20321
450486   }
451487   else
452488   {
489      // Copy rom contents
453490      memcpy(rom1, image.get_software_region("rom"), file_size);
491
492      // Set default setting for PCB type and RC type
493      state->m_pcb_type = microvision_state::PCB_TYPE_UNKNOWN;
494      state->m_rc_type = microvision_state::RC_TYPE_UNKNOWN;
495
496      // Detect settings for PCB type
497      const char *pcb = software_part_get_feature((software_part*)image.part_entry(), "pcb");
498
499      if ( pcb != NULL )
500      {
501         static const struct { const char *pcb_name; microvision_state::pcb_type pcbtype; } pcb_types[] =
502            {
503               { "4952 REV-A", microvision_state::PCB_TYPE_4952_REV_A },
504               { "4952-79 REV-B", microvision_state::PCB_TYPE_4952_9_REV_B },
505               { "4971-REV-C", microvision_state::PCB_TYPE_4971_REV_C },
506               { "7924952D02", microvision_state::PCB_TYPE_7924952D02 }
507            };
508
509         for (int i = 0; i < ARRAY_LENGTH(pcb_types) && state->m_pcb_type == microvision_state::PCB_TYPE_UNKNOWN; i++ )
510         {
511            if (!mame_stricmp(pcb, pcb_types[i].pcb_name))
512            {
513               state->m_pcb_type = pcb_types[i].pcbtype;
514            }
515         }
516      }
517
518      // Detect settings for RC types
519      const char *rc = software_part_get_feature((software_part*)image.part_entry(), "rc");
520
521      if ( rc != NULL )
522      {
523         static const struct { const char *rc_name; microvision_state::rc_type rctype; } rc_types[] =
524            {
525               { "100pf/21.0K", microvision_state::RC_TYPE_100PF_21_0K },
526               { "100pf/23.2K", microvision_state::RC_TYPE_100PF_23_2K },
527               { "100pf/39.4K", microvision_state::RC_TYPE_100PF_39_4K }
528            };
529
530         for ( int i = 0; i < ARRAY_LENGTH(rc_types) && state->m_rc_type == microvision_state::RC_TYPE_UNKNOWN; i++ )
531         {
532            if (!mame_stricmp(rc, rc_types[i].rc_name))
533            {
534               state->m_rc_type = rc_types[i].rctype;
535            }
536         }
537      }
454538   }
539
540   // Mirror rom data to maincpu2 region
455541   memcpy( rom2, rom1, file_size );
456542
457543   // Based on file size select cpu:
r20320r20321
461547   switch ( file_size )
462548   {
463549      case 1024:
464         state->m_cpu_type = CPU_TYPE_I8021;
550         state->m_cpu_type = microvision_state::CPU_TYPE_I8021;
465551         break;
466552
467553      case 2048:
468         state->m_cpu_type = CPU_TYPE_TMS1100;
554         state->m_cpu_type = microvision_state::CPU_TYPE_TMS1100;
469555         break;
470556   }
471557   return IMAGE_INIT_PASS;
r20320r20321
555641   MCFG_CARTSLOT_MANDATORY
556642   MCFG_CARTSLOT_INTERFACE("microvision_cart")
557643   MCFG_CARTSLOT_LOAD(microvision_cart)
644
645   /* Software lists */
646   MCFG_SOFTWARE_LIST_ADD("cart_list","microvision")
558647MACHINE_CONFIG_END
559648
560649

Previous 199869 Revisions Next


© 1997-2024 The MAME Team