Previous 199869 Revisions Next

r32940 Friday 24th October, 2014 at 21:20:00 UTC by Jon Sturm
(MESS) ti85: add basic support for the TI-84 Plus

Adds known dump of TI-84 Plus which has been sent to a mess dev and supports
enough asic functionality that it boots and runs.

Fixed up model enum to match style from the apple2 and used it to add support
for where the ti84p differs from the ti84pse.

Consolidated code for the 15Mhz calculators so there is less duplicated code
between the ti83pse, ti84pse and ti84 support code.
[hash]astrocde.xml vsmile_cart.xml
[src/emu/bus]bus.mak
[src/emu/bus/astrocde]rom.c rom.h slot.c slot.h
[src/emu/cpu/powerpc]ppc.h ppccom.c
[src/emu/video]upd7220.c
[src/mame/drivers]cobra.c firebeat.c gts3.c gts3a.c gts80.c gts80a.c gts80b.c hornet.c inder.c spinb.c vamphalf.c
[src/mess]mess.lst mess.mak
[src/mess/drivers]a5105.c alphasma.c apc.c astrocde.c dmv.c mz3500.c pc9801.c qx10.c ti85.c vt240.c
[src/mess/includes]ti85.h
[src/mess/machine]ti85.c

trunk/hash/astrocde.xml
r241451r241452
55   <software name="280zzap">
66      <description>280 Zzzap / Dodgem</description>
77      <year>1978</year>
8      <publisher>Bally</publisher>
8      <publisher>Bally Mfg. Corp.</publisher>
99      <part name="cart" interface="astrocde_cart">
1010         <dataarea name="rom" size="2048">
1111            <rom name="280zzap.bin" size="2048" crc="e4d285e5" sha1="0de670d6f78e3011e84fefc65f70544cdad3320e" offset="0" />
r241451r241452
2828      <description>ADS System Monitor (Prototype)</description>
2929<!-- <note>This prototype was found in the collection of Arcadian editor Bob Fabris.</note> -->
3030      <year>19??</year>
31      <publisher>&lt;unknown&gt;</publisher>
31      <publisher>Larry Hanson</publisher>
3232      <part name="cart" interface="astrocde_cart">
3333         <dataarea name="rom" size="2048">
3434            <rom name="adssm.bin" size="2048" crc="b8d4df61" sha1="93ffa31d308e62a1f0b09f20489bd620a08de37b" offset="0" />
r241451r241452
3939   <software name="amazmaze">
4040      <description>Amazing Maze / Tic-Tac-Toe</description>
4141      <year>1979</year>
42      <publisher>Bally</publisher>
42      <publisher>Bally Mfg. Corp.</publisher>
4343      <part name="cart" interface="astrocde_cart">
4444         <dataarea name="rom" size="2048">
4545            <rom name="amazmaze.bin" size="2048" crc="cd57c485" sha1="8c833f077830db847caad91a3f040ac7ddcd33f8" offset="0" />
r241451r241452
5050   <software name="artiduel">
5151      <description>Artillery Duel</description>
5252      <year>1982</year>
53      <publisher>Astrocade</publisher>
53      <publisher>Astrocade Inc.</publisher>
5454      <part name="cart" interface="astrocde_cart">
5555         <dataarea name="rom" size="4096">
5656            <rom name="artiduel.bin" size="4096" crc="4f372019" sha1="24f6accc59301773e7471a831a5e3312c61694b0" offset="0" />
r241451r241452
5858      </part>
5959   </software>
6060
61   <software name="artiduelp1" cloneof="artiduel">
62      <description>Artillery Duel (Prototype 19820523)</description>
63      <year>1982</year>
64      <publisher>Astrocade</publisher>
65      <part name="cart" interface="astrocde_cart">
66         <dataarea name="rom" size="4096">
67            <rom name="artillery duel (5-23) (1982)(astrocade inc.)(proto).bin" size="4096" crc="2227f488" sha1="e8b9a13b5b712ff5e2269813271777956d69be3c" offset="0" />
68         </dataarea>
69      </part>
70   </software>
71
72   <software name="artiduelp2" cloneof="artiduel">
73      <description>Artillery Duel (Prototype Alt)</description>
74      <year>1982</year>
75      <publisher>Astrocade</publisher>
76      <part name="cart" interface="astrocde_cart">
77         <dataarea name="rom" size="4096">
78            <rom name="artillery duel (1982)(astrocade inc.)(proto).bin" size="4096" crc="53f75720" sha1="376027b2974aa73e523dc0c139f723168a379ece" offset="0" />
79         </dataarea>
80      </part>
81   </software>
82
83   <software name="artiduelp3" cloneof="artiduel">
84      <description>Artillery Duel (Prototype Alt 2)</description>
85      <year>1982</year>
86      <publisher>Astrocade</publisher>
87      <part name="cart" interface="astrocde_cart">
88         <dataarea name="rom" size="2048">
89            <rom name="artillery duel (1982)(astrocade inc.)(proto)[a].bin" size="2048" crc="2521a6ec" sha1="4b02162dd5503e08479929be36de5a6648410310" offset="0" />
90         </dataarea>
91      </part>
92   </software>
93
9461   <software name="artjello" supported="no">
9562      <description>Artillery Duel / O-Jello</description>
9663<!-- <note>This is one of several BASIC conversions sold by Mike White.  It requires cartridge swapping.</note> -->
r241451r241452
10673   <software name="astrobat">
10774      <description>Astro Battle</description>
10875      <year>1979</year>
109      <publisher>Bally</publisher>
76      <publisher>Bally Mfg. Corp.</publisher>
11077      <part name="cart" interface="astrocde_cart">
11178         <dataarea name="rom" size="4096">
11279            <rom name="astrobat.bin" size="4096" crc="0b5298bc" sha1="cdf7a2a8608c3e90d0cc8a4b751276b76de72f8c" offset="0" />
r241451r241452
11885      <description>Bally BASIC</description>
11986<!-- <note>The original release of BASIC used an external 300 baud interface (not emulated) to load and save programs.</note> -->
12087      <year>1978</year>
121      <publisher>Bally</publisher>
88      <publisher>Bally Mfg. Corp.</publisher>
12289      <part name="cart" interface="astrocde_cart">
12390         <dataarea name="rom" size="4096">
12491            <rom name="bbasic.bin" size="4096" crc="90e276aa" sha1="abb85bc19419a1d81c698884f81a53d85806885d" offset="0" />
r241451r241452
13097      <description>Bally BASIC (Astrovision)</description>
13198<!-- <note>The updated release of BASIC used an internal 2000 baud interface (not emulated) to load and save programs.</note> -->
13299      <year>1981</year>
133      <publisher>Astrovision</publisher>
100      <publisher>Astrovision Inc.</publisher>
134101      <part name="cart" interface="astrocde_cart">
135102         <dataarea name="rom" size="4096">
136103            <rom name="astrobas.bin" size="4096" crc="70514687" sha1="a2ac8995a6217b7190aa9b18f49261c0ed3c6b5a" offset="0" />
r241451r241452
141108   <software name="bbasdemo">
142109      <description>Bally BASIC Demo</description>
143110      <year>1978</year>
144      <publisher>Bally</publisher>
111      <publisher>Bally Mfg. Corp.</publisher>
145112      <part name="cart" interface="astrocde_cart">
146113         <dataarea name="rom" size="8192">
147114            <rom name="bbasdemo.bin" size="8192" crc="007e70d5" sha1="6ed1f49e6581ecea5328e3c5f99026afd7f1f7e4" offset="0" />
r241451r241452
175142
176143   <software name="colorbas">
177144      <description>Bally Color BASIC (Prototype)</description>
178<!-- <note>This prototype was sent to Arcadian editor Bob Fabris from Jay Fenton. Support for the 300 baud interface isn't fully enabled in this version.</note> -->
145<!-- <note>This prototype comes from the collection of Arcadian editor Bob Fabris. While the name Color BASIC was sometimes used to refer to what eventually became Hot Rod Bally BASIC by Jay Fenton (eventually sold on tape in limited quantities), this appears to be an unrelated modification of Bally BASIC by Larry Hanson. Support for the 300 baud interface isn't fully enabled in this version.</note> -->
179146      <year>19??</year>
180      <publisher>Bally</publisher>
147      <publisher>Larry Hanson and Bally Mfg. Corp.</publisher>
181148      <part name="cart" interface="astrocde_cart">
182149         <dataarea name="rom" size="4096">
183150            <rom name="colorbas.bin" size="4096" crc="e1c30ede" sha1="7b5fa4cd585081c5d51127d32d02a33ed44b5843" offset="0" />
r241451r241452
188155   <software name="ballypin">
189156      <description>Bally Pin</description>
190157      <year>1979</year>
191      <publisher>Bally</publisher>
158      <publisher>Bally Mfg. Corp.</publisher>
192159      <part name="cart" interface="astrocde_cart">
193160         <dataarea name="rom" size="4096">
194161            <rom name="ballypin.bin" size="4096" crc="3f431613" sha1="05b680777aa9639620c790f0590d96416d49bf94" offset="0" />
r241451r241452
211178   <software name="biorhy">
212179      <description>BioRhythm</description>
213180      <year>1981</year>
214      <publisher>Astrovision</publisher>
181      <publisher>Astrovision Inc.</publisher>
215182      <part name="cart" interface="astrocde_cart">
216183         <dataarea name="rom" size="4096">
217184            <rom name="biorhy.bin" size="4096" crc="fc4bd27c" sha1="1ba84a04ea5d7d87c213d978fecc188a4a8517a6" offset="0" />
r241451r241452
222189   <software name="blckjack">
223190      <description>Black Jack / Acey Deucey / Poker</description>
224191      <year>1979</year>
225      <publisher>Bally</publisher>
192      <publisher>Bally Mfg. Corp.</publisher>
226193      <part name="cart" interface="astrocde_cart">
227194         <dataarea name="rom" size="4096">
228195            <rom name="blckjack.bin" size="4096" crc="78d45a11" sha1="7b92e3ad161e31926a730780d1f28015310dd7d7" offset="0" />
r241451r241452
230197      </part>
231198   </software>
232199
233   <software name="brb10p" cloneof="brb10">
234      <description>Blue RAM BASIC 1.0 (Prototype)</description>
235      <!-- <note>Requires RAM expansion</note> -->
236      <year>1980</year>
237      <publisher>Perkins Engineering</publisher>
238      <part name="cart" interface="astrocde_cart">
239         <dataarea name="rom" size="4096">
240            <rom name="blue ram basic 1.0 (1980)(perkins engineering)(proto)[not playable].bin" size="4096" crc="2fa59f1e" sha1="ef27b8863b05afe58259fdf5755e919699485e4f" offset="0" />
241         </dataarea>
242      </part>
243   </software>
244
245   <software name="brb10">
200   <software name="brbsic10">
246201      <description>Blue RAM BASIC 1.0</description>
247202      <!-- <note>Requires RAM expansion</note> -->
248203      <year>1980</year>
r241451r241452
254209      </part>
255210   </software>
256211
257   <software name="brb11">
212   <software name="brbsic11">
258213      <description>Blue RAM BASIC 1.1</description>
259214      <!-- <note>Requires RAM expansion</note> -->
260215      <year>1981</year>
r241451r241452
292247   <software name="bowling">
293248      <description>Bowling (Prototype)</description>
294249      <year>198?</year>
295      <publisher>Astrocade</publisher>
250      <publisher>Astrocade Inc.</publisher>
296251      <part name="cart" interface="astrocde_cart">
297252         <dataarea name="rom" size="4096">
298253            <rom name="bowling.bin" size="4096" crc="1f8bc8ba" sha1="de27100803a414989d538ca34fc1b3e122dfac78" offset="0" />
r241451r241452
303258   <software name="brckyard">
304259      <description>Brickyard / Clowns</description>
305260      <year>1978</year>
306      <publisher>Bally</publisher>
261      <publisher>Bally Mfg. Corp.</publisher>
307262      <part name="cart" interface="astrocde_cart">
308263         <dataarea name="rom" size="4096">
309264            <rom name="brckyard.bin" size="4096" crc="28f9e502" sha1="4c1a9efcd4435f6a79dc2212c4d0d17ea753809c" offset="0" />
r241451r241452
337292   <software name="checkers">
338293      <description>Checkers (Prototype)</description>
339294      <year>19??</year>
340      <publisher>Bally</publisher>
295      <publisher>Bally Mfg. Corp.</publisher>
341296      <part name="cart" interface="astrocde_cart">
342297         <dataarea name="rom" size="2048">
343298            <rom name="checkers.bin" size="2048" crc="757bab8f" sha1="9ef927e88e3f799276966b569c2402f6b25be416" offset="0" />
r241451r241452
384339   <software name="colbook">
385340      <description>Coloring Book (Prototype)</description>
386341      <year>198?</year>
387      <publisher>Astrocade</publisher>
342      <publisher>Astrocade Inc.</publisher>
388343      <part name="cart" interface="astrocde_cart">
389344         <dataarea name="rom" size="8192">
390345            <rom name="colbook.bin" size="8192" crc="14f36aba" sha1="41eaaa061ed47996219b70bc0ed7d6a19c4b3c28" offset="0" />
r241451r241452
394349
395350   <software name="conan">
396351      <description>Conan The Barbarian!</description>
397<!-- <note>While Astrocade never completed Conan, it was eventually published in incomplete form by Dave Carson Software, which added its own copyright screen.</note> -->
352<!-- <note>While Astrocade Inc. never completed Conan, it was eventually published in incomplete form by Dave Carson Software, which added its own copyright screen.</note> -->
398353      <year>1985</year>
399      <publisher>Astrocade and Dave Carson Software</publisher>
354      <publisher>Astrocade Inc. and Dave Carson Software</publisher>
400355      <part name="cart" interface="astrocde_cart">
401356         <dataarea name="rom" size="8192">
402357            <rom name="conan.bin" size="8192" crc="8a6adbfe" sha1="8b0d3125b805d57b9958b0e7a4f0e9d1a70f6353" offset="0" />
r241451r241452
407362   <software name="conanp" cloneof="conan">
408363      <description>Conan The Barbarian! (Prototype)</description>
409364      <year>1982</year>
410      <publisher>Astrocade</publisher>
365      <publisher>Astrocade Inc.</publisher>
411366      <part name="cart" interface="astrocde_cart">
412367         <dataarea name="rom" size="8192">
413368            <rom name="conanp.bin" size="8192" crc="15b1afea" sha1="bc4f757271fca69e0de3973f43d363c4474e2fb7" offset="0" />
r241451r241452
430385   <software name="cosmicrd">
431386      <description>Cosmic Raiders</description>
432387      <year>1983</year>
433      <publisher>Astrocade</publisher>
388      <publisher>Astrocade Inc.</publisher>
434389      <part name="cart" interface="astrocde_cart">
435390         <dataarea name="rom" size="8192">
436391            <rom name="cosmicrd.bin" size="8192" crc="2a77b3fb" sha1="09ae145e3dbfd132f5130a0cbb508f4fbcf35bee" offset="0" />
r241451r241452
441396   <software name="cosmicrda" cloneof="cosmicrd">
442397      <description>Cosmic Raiders (Proto, Alt)</description>
443398      <year>198?</year>
444      <publisher>Astrocade</publisher>
399      <publisher>Astrocade Inc.</publisher>
445400      <part name="cart" interface="astrocde_cart">
446401         <dataarea name="rom" size="8192">
447402            <rom name="cosmicra.bin" size="8192" crc="869b692e" sha1="b71b81eeaf10b59efb1b51d88b1e758305d5f1e4" offset="0" />
r241451r241452
452407   <software name="cosmicrdb" cloneof="cosmicrd">
453408      <description>Cosmic Raiders (Proto, Alt 2)</description>
454409      <year>198?</year>
455      <publisher>Astrocade</publisher>
410      <publisher>Astrocade Inc.</publisher>
456411      <part name="cart" interface="astrocde_cart">
457412         <dataarea name="rom" size="8192">
458413            <rom name="cosmica2.bin" size="8192" crc="37670f78" sha1="30044130dd3b41295351fa3905d53e26e52b3745" offset="0" />
r241451r241452
464419      <description>Cosmic Raiders (Proto v3.5)</description>
465420<!-- <note>An identical ROM was dumped from a cart labeled version 2.8.</note> -->
466421      <year>198?</year>
467      <publisher>Astrocade</publisher>
422      <publisher>Astrocade Inc.</publisher>
468423      <part name="cart" interface="astrocde_cart">
469424         <dataarea name="rom" size="8192">
470425            <rom name="cosmic35.bin" size="8192" crc="e3d723a0" sha1="337cdffe2260dc6d36d674fa35047cb5a3598bf9" offset="0" />
r241451r241452
475430   <software name="cosmicrd36" cloneof="cosmicrd">
476431      <description>Cosmic Raiders (Proto v3.6)</description>
477432      <year>198?</year>
478      <publisher>Astrocade</publisher>
433      <publisher>Astrocade Inc.</publisher>
479434      <part name="cart" interface="astrocde_cart">
480435         <dataarea name="rom" size="8192">
481436            <rom name="cosmic36.bin" size="8192" crc="00b6fe88" sha1="5a3772b8524361b174c761ef759659b4a63166fa" offset="0" />
r241451r241452
483438      </part>
484439   </software>
485440
486   <software name="cclimber">
487      <description>Crazy Climber</description>
488      <year>2011</year>
489      <publisher>Riff Raff Games</publisher>
490      <part name="cart" interface="astrocde_cart">
491         <dataarea name="rom" size="8192">
492            <rom name="crazy climber (2011)(riff raff games)[ccv054f].bin" size="8187" crc="bf864c44" sha1="3fc71a3061ddc39788920b27ce11d0ea545e3da6" offset="0" />
493         </dataarea>
494      </part>
495   </software>
496
497441   <software name="dealdemo">
498442      <description>Dealer Demo</description>
499443      <year>1978</year>
500      <publisher>Bally</publisher>
444      <publisher>Bally Mfg. Corp.</publisher>
501445      <part name="cart" interface="astrocde_cart">
502446         <dataarea name="rom" size="4096">
503447            <rom name="dealdemo.bin" size="4096" crc="16b77b44" sha1="302ad18ea17b12a474ebbba1a882d8aad8cf5e94" offset="0" />
r241451r241452
508452   <software name="dogpatch">
509453      <description>Dogpatch</description>
510454      <year>1980</year>
511      <publisher>Bally</publisher>
455      <publisher>Bally Mfg. Corp.</publisher>
512456      <part name="cart" interface="astrocde_cart">
513457         <dataarea name="rom" size="2048">
514458            <rom name="dogpatch.bin" size="2048" crc="77bed6ba" sha1="263e6372392bc37a2228eb455d1477dcd41d9104" offset="0" />
r241451r241452
528472   </software>
529473
530474   <software name="fawn">
531      <description>Fawn Dungeon (Prototype, first version)</description>
475      <description>Fawn Dungeon (Prototype)</description>
532476<!-- <note>Barry McCleave sent two prototype versions of this game to Arcadian editor Bob Fabris, but it was never completed.</note> -->
533477      <year>1981</year>
534478      <publisher>Barry McCleave</publisher>
r241451r241452
540484   </software>
541485
542486   <software name="fawna" cloneof="fawn">
543      <description>Fawn Dungeon (Prototype, second version)</description>
487      <description>Fawn Dungeon (Prototype, Alt)</description>
544488<!-- <note>Barry McCleave sent two prototype versions of this game to Arcadian editor Bob Fabris, but it was never completed.</note> -->
545489      <year>1981</year>
546490      <publisher>Barry McCleave</publisher>
r241451r241452
566510   <software name="football">
567511      <description>Football</description>
568512      <year>1978</year>
569      <publisher>Bally</publisher>
513      <publisher>Bally Mfg. Corp.</publisher>
570514      <part name="cart" interface="astrocde_cart">
571515         <dataarea name="rom" size="4096">
572516            <rom name="football.bin" size="4096" crc="fc8998a9" sha1="1d07b45162fab5497fe0a3d4ccb1b33bfd47177a" offset="0" />
r241451r241452
575519   </software>
576520
577521   <software name="ziggyjx">
578      <description>Fun With Vectors - Ziggy (Prototype JX label)</description>
522      <description>Fun With Vectors - Ziggy (JX label) (Prototype)</description>
579523<!-- <note>This demo comes from a collection of old ROMs released by Richard Degler.</note> -->
580524      <year>1985</year>
581525      <publisher>Richard Degler</publisher>
r241451r241452
587531   </software>
588532
589533   <software name="ziggymo">
590      <description>Fun With Vectors - Ziggy (Prototype MO label)</description>
534      <description>Fun With Vectors - Ziggy (MO label) (Prototype)</description>
591535<!-- <note>This demo comes from a collection of old ROMs released by Richard Degler.</note> -->
592536      <year>1985</year>
593537      <publisher>Richard Degler</publisher>
r241451r241452
601545   <software name="galactic">
602546      <description>Galactic Invasion</description>
603547      <year>1981</year>
604      <publisher>Astrovision</publisher>
548      <publisher>Astrovision Inc.</publisher>
605549      <part name="cart" interface="astrocde_cart">
606550         <dataarea name="rom" size="4096">
607551            <rom name="galactic.bin" size="4096" crc="ba558eb7" sha1="939857d621715b831d558bcb2fd2f0f9e9b37676" offset="0" />
r241451r241452
612556   <software name="galaxian">
613557      <description>Galaxian</description>
614558      <year>1981</year>
615      <publisher>Astrovision</publisher>
559      <publisher>Astrovision Inc.</publisher>
616560      <part name="cart" interface="astrocde_cart">
617561         <dataarea name="rom" size="4096">
618562            <rom name="galaxian.bin" size="4096" crc="d75e9672" sha1="fb13e40c9ebadcb68beb7294a732ecf1b2f2ec30" offset="0" />
r241451r241452
620564      </part>
621565   </software>
622566
623   <software name="golddig">
624      <description>Golddigger, Goldrush (Prototype, 19840811))</description>
625      <year>1984</year>
626      <publisher>Dave Carson and Ken Lill</publisher>
627      <part name="cart" interface="astrocde_cart">
628         <dataarea name="rom" size="2048">
629            <rom name="golddigger, goldrush (8-11-84) (1984)(dave carson and ken lill)(proto).bin" size="2048" crc="20755476" sha1="3537ded59d46a539e05a5f178a409346f1673bd9" offset="0" />
630         </dataarea>
631      </part>
632   </software>
633
634   <software name="golddiga" cloneof="golddig">
635      <description>Golddigger, Goldrush (Prototype Alt)</description>
636      <year>198?</year>
637      <publisher>Dave Carson and Ken Lill</publisher>
638      <part name="cart" interface="astrocde_cart">
639         <dataarea name="rom" size="2048">
640            <rom name="golddigger, goldrush (198x)(dave carson and ken lill)(proto).bin" size="2048" crc="994661a1" sha1="ca71326eb5cd243d2240804bb314235d96b45380" offset="0" />
641         </dataarea>
642      </part>
643   </software>
644
645   <software name="golddigb" cloneof="golddig">
646      <description>Golddigger, Goldrush (Prototype Alt 2)</description>
647      <year>198?</year>
648      <publisher>Dave Carson and Ken Lill</publisher>
649      <part name="cart" interface="astrocde_cart">
650         <dataarea name="rom" size="2048">
651            <rom name="golddigger, goldrush (198x)(dave carson and ken lill)(proto)[a].bin" size="2048" crc="face3b05" sha1="a54d2eb5f304fb83ad125560b0e555b0d1beb9ae" offset="0" />
652         </dataarea>
653      </part>
654   </software>
655
656567   <software name="grandprx">
657568      <description>Grand Prix</description>
658569      <year>1981</year>
659      <publisher>Astrovision</publisher>
570      <publisher>Astrovision Inc.</publisher>
660571      <part name="cart" interface="astrocde_cart">
661572         <dataarea name="rom" size="4096">
662573            <rom name="grandprx.bin" size="4096" crc="7b3b7b70" sha1="fd133dc402b6ecbcc718ffb895a16e07979ab329" offset="0" />
r241451r241452
725636   <software name="lttrmtch">
726637      <description>Letter Match / Spell 'n Score / Crosswords</description>
727638      <year>1978</year>
728      <publisher>Bally</publisher>
639      <publisher>Bally Mfg. Corp.</publisher>
729640      <part name="cart" interface="astrocde_cart">
730641         <dataarea name="rom" size="4096">
731642            <rom name="lttrmtch.bin" size="4096" crc="2cf68f93" sha1="266f6978b8f9e6bad36dc21031193ca93cd55be4" offset="0" />
r241451r241452
767678      </part>
768679   </software>
769680
770   <software name="mazemanp" cloneof="mazeman">
771      <description>Mazeman (Prototype)</description>
772      <year>1984</year>
773      <publisher>Dave Carson Software</publisher>
774      <part name="cart" interface="astrocde_cart">
775         <dataarea name="rom" size="4096">
776            <rom name="mazeman (1984)(dave carson software)(proto).bin" size="4096" crc="af649678" sha1="f296ebdfe1a8c4f1dacf06914be1918b92f4d2b3" offset="0" />
777         </dataarea>
778      </part>
779   </software>
780
781681   <software name="matk">
782682      <description>Missile Attack</description>
783683      <!-- <note>Mike White sold a version of ICBM Attack hacked to work with a regular controller.</note> -->
r241451r241452
803703
804704   <software name="muncher">
805705      <description>Muncher</description>
806      <!-- <note>This Pac-Man clone was originally developed by Astrocade, but never released by them due to legal challenges.  Phillip Harris and Alternative Engineering took the prototype, changed the name to Muncher, and manufactured some for sale through the Arcadian newsletter.  More copies were later sold by Esoterica.</note> -->
706      <!-- <note>This Pac-Man clone was originally developed by Astrocade Inc., but never released by them due to legal challenges.  Phillip Harris and Alternative Engineering took the prototype, changed the name to Muncher, and manufactured some for sale through the Arcadian newsletter.  More copies were later sold by Esoterica.</note> -->
807707      <year>1983</year>
808      <publisher>Astrocade, Phillip Harris, and Alternative Engineering</publisher>
708      <publisher>Astrocade Inc., Phillip Harris, and Alternative Engineering</publisher>
809709      <part name="cart" interface="astrocde_cart">
810710         <dataarea name="rom" size="8192">
811711            <rom name="muncher.bin" size="8192" crc="e4726657" sha1="02f37ded48b1fb9ba0a2d7e45f5b0a85eaecb1c8" offset="0" />
r241451r241452
815715
816716   <software name="musicmak">
817717      <description>Music Maker</description>
818<!-- <note>While Astrocade never released Music Maker, it was eventually published by Dave Carson Software, which added its own copyright screen.</note> -->
718<!-- <note>While Astrocade Inc. never released Music Maker, it was eventually published by Dave Carson Software, which added its own copyright screen.</note> -->
819719      <year>1985</year>
820      <publisher>Astrocade and Dave Carson Software</publisher>
720      <publisher>Astrocade Inc. and Dave Carson Software</publisher>
821721      <part name="cart" interface="astrocde_cart">
822722         <dataarea name="rom" size="8192">
823723            <rom name="musicmak.bin" size="8192" crc="b242ef84" sha1="8101424ebbc2a31d7e750b6d00f01e657fd97cf8" offset="0" />
r241451r241452
826726   </software>
827727
828728   <software name="musicmakp" cloneof="musicmak">
829      <description>Music Maker (Prototype v3.7)</description>
729      <description>Music Maker v3.7 (Prototype)</description>
830730      <year>1982</year>
831      <publisher>Astrocade</publisher>
731      <publisher>Astrocade Inc.</publisher>
832732      <part name="cart" interface="astrocde_cart">
833733         <dataarea name="rom" size="8192">
834734            <rom name="musicmap.bin" size="8192" crc="a76828d0" sha1="924cecf006f91bf49f2bcc1e14c55646a0ee93ff" offset="0" />
r241451r241452
836736      </part>
837737   </software>
838738
839   <software name="musicmakp2" cloneof="musicmak">
840      <description>Music Maker (Prototype Alt)</description>
841      <year>1982</year>
842      <publisher>Astrocade</publisher>
739   <software name="nodie">
740      <description>No-Die!</description>
741<!-- <note>Dave Carson detailed how to hack Muncher to give infinite lives in the Arcadian newsletter.  Mike White sold this hacked version as No-Die!.</note> -->
742      <year>1984</year>
743      <publisher>Astrocade Inc., Dave Carson, and Mike White</publisher>
843744      <part name="cart" interface="astrocde_cart">
844745         <dataarea name="rom" size="8192">
845            <rom name="music maker (1981)(astrocade inc.)(proto).bin" size="7376" crc="cc97a150" sha1="6a35509709497151f4f810a958fc5abf3852afc6" offset="0" />
746            <rom name="nodie.bin" size="8192" crc="784b256a" sha1="8dd34f2428a65ac590a26b25904a96e6f04e01d2" offset="0" />
846747         </dataarea>
847748      </part>
848749   </software>
849750
850   <software name="nodie">
851      <description>No-Die!</description>
852<!-- <note>Dave Carson detailed how to hack Muncher to give infinite lives in the Arcadian newsletter.  Mike White sold this hacked version as No-Die!.</note> -->
853      <year>1984</year>
854      <publisher>Astrocade, Dave Carson, and Mike White</publisher>
751   <software name="pacman">
752      <description>Pac-Man (Prototype)</description>
753<!-- <note>This prototype was eventually renamed Muncher and sold through the Arcadian newsletter.</note> -->
754      <year>198?</year>
755      <publisher>Astrocade Inc.</publisher>
855756      <part name="cart" interface="astrocde_cart">
856757         <dataarea name="rom" size="8192">
857            <rom name="nodie.bin" size="8192" crc="784b256a" sha1="8dd34f2428a65ac590a26b25904a96e6f04e01d2" offset="0" />
758            <rom name="pacman.bin" size="8192" crc="17363546" sha1="3d0e2b3fc4adfd0297a609bd78eb8b557414ea23" offset="0" />
858759         </dataarea>
859760      </part>
860761   </software>
r241451r241452
883784      </part>
884785   </software>
885786
886   <software name="pacman">
887      <description>Pac-Man (Prototype)</description>
888<!-- <note>This prototype was eventually renamed Muncher and sold through the Arcadian newsletter.</note> -->
889      <year>198?</year>
890      <publisher>Astrocade</publisher>
891      <part name="cart" interface="astrocde_cart">
892         <dataarea name="rom" size="8192">
893            <rom name="pacman.bin" size="8192" crc="17363546" sha1="3d0e2b3fc4adfd0297a609bd78eb8b557414ea23" offset="0" />
894         </dataarea>
895      </part>
896   </software>
897
898   <software name="pacmana" cloneof="pacman">
899      <description>Pac-Man (Prototype Alt)</description>
900      <year>198?</year>
901      <publisher>Astrocade</publisher>
902      <part name="cart" interface="astrocde_cart">
903         <dataarea name="rom" size="8192">
904            <rom name="pac-man (198x)(astrocade inc.)(proto)[a].bin" size="8192" crc="ca3a67dd" sha1="fc5cd6ec56e0f2d3acf7acfd4dbc560bdf63c768" offset="0" />
905         </dataarea>
906      </part>
907   </software>
908
909   <software name="pacmaze">
910      <description>Pacmaze (Prototype)</description>
911      <year>198?</year>
912      <publisher>Dave Carson Software</publisher>
913      <part name="cart" interface="astrocde_cart">
914         <dataarea name="rom" size="4096">
915            <rom name="pacmaze (198x)(dave carson software)(proto).bin" size="4096" crc="cff3a6cc" sha1="f8d1b6eb9c4e148b76a46bda7ca3e976abeba056" offset="0" />
916         </dataarea>
917      </part>
918   </software>
919
920787   <software name="paperbck">
921788      <description>Paperback Writer (Prototype)</description>
922789      <year>1986</year>
r241451r241452
931798   <software name="pirate">
932799      <description>Pirate's Chase</description>
933800      <year>1982</year>
934      <publisher>Astrocade</publisher>
801      <publisher>Astrocade Inc.</publisher>
935802      <part name="cart" interface="astrocde_cart">
936803         <dataarea name="rom" size="4096">
937804            <rom name="pirate.bin" size="4096" crc="7b1b206a" sha1="3ad79a4381441c7f28479ad6b50c9105ca1ba7e4" offset="0" />
r241451r241452
959826
960827   <software name="rainbow2">
961828      <description>Rainbow v2 (Prototype)</description>
962<!-- <note>This prototype was found in the collection of Arcadian editor Bob Fabris. The full name of the author is unknown, and the first version has not been found.</note> -->
829<!-- <note>This prototype was found in the collection of Arcadian editor Bob Fabris. The first version has not been found.</note> -->
963830      <year>19??</year>
964      <publisher>Hanson</publisher>
831      <publisher>Larry Hanson</publisher>
965832      <part name="cart" interface="astrocde_cart">
966833         <dataarea name="rom" size="2048">
967834            <rom name="rainbow2.bin" size="2048" crc="3883484a" sha1="888d0de155b53606466393560119ea355edd11ce" offset="0" />
r241451r241452
972839   <software name="redbaron">
973840      <description>Red Baron / Panzer Attack</description>
974841      <year>1978</year>
975      <publisher>Bally</publisher>
842      <publisher>Bally Mfg. Corp.</publisher>
976843      <part name="cart" interface="astrocde_cart">
977844         <dataarea name="rom" size="4096">
978845            <rom name="redbaron.bin" size="4096" crc="a1c7e129" sha1="e0602c7485f511d6aa29d669967b101de79ddb15" offset="0" />
r241451r241452
1006873   <software name="seawolf">
1007874      <description>Seawolf / Missile</description>
1008875      <year>1978</year>
1009      <publisher>Bally</publisher>
876      <publisher>Bally Mfg. Corp.</publisher>
1010877      <part name="cart" interface="astrocde_cart">
1011878         <dataarea name="rom" size="2048">
1012879            <rom name="seawolf.bin" size="2048" crc="a021735e" sha1="4c2ca46ab5a00dc2eb252ee900b2760b758a2162" offset="0" />
r241451r241452
1075942   <software name="soccerp">
1076943      <description>Soccer (Prototype)</description>
1077944      <year>198?</year>
1078      <publisher>Astrocade</publisher>
945      <publisher>Astrocade Inc.</publisher>
1079946      <part name="cart" interface="astrocde_cart">
1080947         <dataarea name="rom" size="8192">
1081948            <rom name="soccerp.bin" size="8192" crc="7de08d9a" sha1="955b138b4db95e8a7c35ff958724440bd75d5fc2" offset="0" />
r241451r241452
1087954      <description>Soccer (Prototype, Alt)</description>
1088955<!-- <note>Dumped from a cart labeled 'Soccer / Dribbling'.</note> -->
1089956      <year>198?</year>
1090      <publisher>Astrocade</publisher>
957      <publisher>Astrocade Inc.</publisher>
1091958      <part name="cart" interface="astrocde_cart">
1092959         <dataarea name="rom" size="4096">
1093960            <rom name="soccera.bin" size="4096" crc="fd633ca9" sha1="39ac51f18eb6ceb8e1f766f4d13d4c0ed7af1f85" offset="0" />
r241451r241452
1099966      <description>Soccer (Prototype, Alt 2)</description>
1100967<!-- <note>Dumped from a cart labeled 'Soccer 8-5'.</note> -->
1101968      <year>198?</year>
1102      <publisher>Astrocade</publisher>
969      <publisher>Astrocade Inc.</publisher>
1103970      <part name="cart" interface="astrocde_cart">
1104971         <dataarea name="rom" size="8192">
1105972            <rom name="soccera2.bin" size="8192" crc="7c2858dd" sha1="a6fd25d85124e4c3f005f25c067a0b60a7a617c3" offset="0" />
r241451r241452
1110977   <software name="soccera3">
1111978      <description>Soccer (Prototype, Alt 3)</description>
1112979      <year>198?</year>
1113      <publisher>Astrocade</publisher>
980      <publisher>Astrocade Inc.</publisher>
1114981      <part name="cart" interface="astrocde_cart">
1115982         <dataarea name="rom" size="8192">
1116983            <rom name="soccera3.bin" size="8192" crc="5cb41426" sha1="a6cee6a0bc7a7bfe506b1089b431629e8b57dc04" offset="0" />
r241451r241452
1121988   <software name="soccera4">
1122989      <description>Soccer (Prototype, Alt 4)</description>
1123990      <year>198?</year>
1124      <publisher>Astrocade</publisher>
991      <publisher>Astrocade Inc.</publisher>
1125992      <part name="cart" interface="astrocde_cart">
1126993         <dataarea name="rom" size="8192">
1127994            <rom name="soccera4.bin" size="8192" crc="4f5e93d5" sha1="5ea2b708df06b09abd63b58e03229efecb98d464" offset="0" />
r241451r241452
1132999   <software name="solarcnq">
11331000      <description>Solar Conqueror</description>
11341001      <year>1983</year>
1135      <publisher>Astrocade</publisher>
1002      <publisher>Astrocade Inc.</publisher>
11361003      <part name="cart" interface="astrocde_cart">
11371004         <dataarea name="rom" size="8192">
11381005            <rom name="scnquer.bin" size="8192" crc="d15ce025" sha1="3185285687a1b4f643329bea94cba398e1b3ed4b" offset="0" />
r241451r241452
11431010   <software name="solarcnqp28" cloneof="solarcnq">
11441011      <description>Solar Conqueror (Prototype v2.8)</description>
11451012      <year>198?</year>
1146      <publisher>Astrocade</publisher>
1013      <publisher>Astrocade Inc.</publisher>
11471014      <part name="cart" interface="astrocde_cart">
11481015         <dataarea name="rom" size="8192">
11491016            <rom name="scquer28.bin" size="8192" crc="0709b022" sha1="90900ec2c1fb9d476db22fd479400a6315230f9f" offset="0" />
r241451r241452
11541021   <software name="solarcnqp39" cloneof="solarcnq">
11551022      <description>Solar Conqueror (Prototype v3.9)</description>
11561023      <year>198?</year>
1157      <publisher>Astrocade</publisher>
1024      <publisher>Astrocade Inc.</publisher>
11581025      <part name="cart" interface="astrocde_cart">
11591026         <dataarea name="rom" size="8192">
11601027            <rom name="scquer39.bin" size="8192" crc="8612cc7a" sha1="eba87f0296ff0759eb25a094ea98fd05d9eb91b6" offset="0" />
r241451r241452
11661033      <description>Solar Conqueror (Prototype)</description>
11671034<!-- <note>Dumped from a cart labeled 'Solar Conquer CES Chicago 1982'.</note> -->
11681035      <year>1982</year>
1169      <publisher>Astrocade</publisher>
1036      <publisher>Astrocade Inc.</publisher>
11701037      <part name="cart" interface="astrocde_cart">
11711038         <dataarea name="rom" size="8192">
11721039            <rom name="scquerp.bin" size="8192" crc="4a229478" sha1="99139da1e5b8a52251033de6902b537d3f9ab6bc" offset="0" />
r241451r241452
11771044   <software name="songs">
11781045      <description>Songs (Prototype)</description>
11791046      <year>19??</year>
1180      <publisher>Bally</publisher>
1047      <publisher>Bally Mfg. Corp.</publisher>
11811048      <part name="cart" interface="astrocde_cart">
11821049         <dataarea name="rom" size="4096">
11831050            <rom name="songs.bin" size="4096" crc="fe6182b3" sha1="a269b21309b7849b6a3e248417be9316db31e4e6" offset="0" />
r241451r241452
11851052      </part>
11861053   </software>
11871054
1188   <software name="songsa" cloneof="songs">
1189      <description>Songs (Prototype Alt)</description>
1190      <year>19??</year>
1191      <publisher>Bally</publisher>
1192      <part name="cart" interface="astrocde_cart">
1193         <dataarea name="rom" size="8192">
1194            <rom name="songs (19xx)(bally mfg. corp.)(proto)[a].bin" size="8192" crc="36a3d077" sha1="892720fb69a1d7bb158d857176374c113ab545ca" offset="0" />
1195         </dataarea>
1196      </part>
1197   </software>
1198
11991055   <software name="songsu" cloneof="songs">
12001056      <description>Songs (Prototype, Unfinished)</description>
12011057<!-- <note>This was dumped from a ROM in Richard Degler's collection.  At some point, it's had data from the Blue RAM Utility added to the end of it.</note> -->
12021058      <year>19??</year>
1203      <publisher>Bally</publisher>
1059      <publisher>Bally Mfg. Corp.</publisher>
12041060      <part name="cart" interface="astrocde_cart">
12051061         <dataarea name="rom" size="8192">
12061062            <rom name="songsu.bin" size="8192" crc="16326f8c" sha1="c2f980f59367f4ff80c96fc173c83c0b29c1bc8f" offset="0" />
r241451r241452
12111067   <software name="spacefrt">
12121068      <description>Space Fortress</description>
12131069      <year>1981</year>
1214      <publisher>Astrocade</publisher>
1070      <publisher>Astrocade Inc.</publisher>
12151071      <part name="cart" interface="astrocde_cart">
12161072         <dataarea name="rom" size="4096">
12171073            <rom name="spacefrt.bin" size="4096" crc="519cc707" sha1="d1d4527128cad5446cdd4d4f0dfa7194cb50aaef" offset="0" />
r241451r241452
12191075      </part>
12201076   </software>
12211077
1222   <software name="spacefrtp" cloneof="spacefrt">
1223      <description>Space Fortress (Prototype)</description>
1224      <year>1981</year>
1225      <publisher>Astrocade</publisher>
1226      <part name="cart" interface="astrocde_cart">
1227         <dataarea name="rom" size="2048">
1228            <rom name="space fortress (1981)(astrocade inc.)(proto).bin" size="2048" crc="cf5012bd" sha1="08510e05c81192908bb62330dc825e1f63052584" offset="0" />
1229         </dataarea>
1230      </part>
1231   </software>
1232
1233   <software name="spaceinv">
1078   <software name="invaders">
12341079      <description>Space Invaders</description>
12351080      <year>1979</year>
1236      <publisher>Bally</publisher>
1081      <publisher>Bally Mfg. Corp.</publisher>
12371082      <part name="cart" interface="astrocde_cart">
12381083         <dataarea name="rom" size="4096">
12391084            <rom name="invaders.bin" size="4096" crc="52964c1f" sha1="aecaa45ed1d74ebf882120da75c006ae502e94c1" offset="0" />
r241451r241452
12411086      </part>
12421087   </software>
12431088
1244   <software name="spaceinvp" cloneof="spaceinv">
1245      <description>Space Invaders (Prototype)</description>
1246      <year>197?</year>
1247      <publisher>Bally</publisher>
1248      <part name="cart" interface="astrocde_cart">
1249         <dataarea name="rom" size="2048">
1250            <rom name="space invaders (197x)(bally mfg. corp.)(proto).bin" size="2048" crc="a542f4b2" sha1="46b2396ce3223a8e709a819e674726e6bf0d026e" offset="0" />
1251         </dataarea>
1252      </part>
1253   </software>
1254
12551089   <software name="spedmath">
12561090      <description>Speed Math / Bingo Math</description>
12571091      <year>1978</year>
1258      <publisher>Bally</publisher>
1092      <publisher>Bally Mfg. Corp.</publisher>
12591093      <part name="cart" interface="astrocde_cart">
12601094         <dataarea name="rom" size="2048">
12611095            <rom name="spedmath.bin" size="2048" crc="7d30312a" sha1="8f500f1e2144169bb94214eaa2863dcf6590b926" offset="0" />
r241451r241452
12661100   <software name="starbttl">
12671101      <description>Star Battle</description>
12681102      <year>1979</year>
1269      <publisher>Bally</publisher>
1103      <publisher>Bally Mfg. Corp.</publisher>
12701104      <part name="cart" interface="astrocde_cart">
12711105         <dataarea name="rom" size="2048">
12721106            <rom name="starbttl.bin" size="2048" crc="d54a74c8" sha1="00f8c65ed73f6ce134c1e4e0af7c5aa91a287951" offset="0" />
r241451r241452
12781112      <description>Stweek</description>
12791113<!-- <note>This was an internal tool for developing sound effects.</note> -->
12801114      <year>19??</year>
1281      <publisher>Bally</publisher>
1115      <publisher>Bally Mfg. Corp.</publisher>
12821116      <part name="cart" interface="astrocde_cart">
12831117         <dataarea name="rom" size="2048">
12841118            <rom name="stweek.bin" size="2048" crc="e4f3766a" sha1="a8170dba7126ff6acb56686a46362bb36bebd799" offset="0" />
r241451r241452
13021136      <description>Tests</description>
13031137<!-- <note>This was an internal tool for testing hardware.</note> -->
13041138      <year>19??</year>
1305      <publisher>Bally</publisher>
1139      <publisher>Bally Mfg. Corp.</publisher>
13061140      <part name="cart" interface="astrocde_cart">
13071141         <dataarea name="rom" size="4096">
13081142            <rom name="tests.bin" size="4096" crc="49df19eb" sha1="581f592845ffca65f1336b521d03c57309a6f91c" offset="0" />
r241451r241452
13251159   <software name="wizard">
13261160      <description>The Incredible Wizard</description>
13271161      <year>1982</year>
1328      <publisher>Astrocade</publisher>
1162      <publisher>Astrocade Inc.</publisher>
13291163      <part name="cart" interface="astrocde_cart">
13301164         <dataarea name="rom" size="8192">
13311165            <rom name="wizard.bin" size="8192" crc="1395b130" sha1="da366390c91e24206b5034bc525e98f2a3ce5f86" offset="0" />
r241451r241452
13341168   </software>
13351169
13361170   <software name="wizardp" cloneof="wizard" supported="no">
1337      <description>The Incredible Wizard (Prototype, Bad Dump)</description>
1171      <description>The Incredible Wizard (Prototype)</description>
13381172<!-- <note>This was dumped from a working prototype cart, but the cart was sold before it was realized that the dump was bad.</note> -->
13391173      <year>198?</year>
1340      <publisher>Astrocade</publisher>
1174      <publisher>Astrocade Inc.</publisher>
13411175      <part name="cart" interface="astrocde_cart">
13421176         <dataarea name="rom" size="8192">
13431177            <rom name="wizardp.bin" size="8192" crc="a0cba256" sha1="262c731967b193ece4e1d395e7cb3e8ce9c4fc2c" offset="0" status="baddump"/>
r241451r241452
13481182   <software name="baseball">
13491183      <description>Tornado Baseball / Handball / Hockey / Tennis</description>
13501184      <year>1978</year>
1351      <publisher>Bally</publisher>
1185      <publisher>Bally Mfg. Corp.</publisher>
13521186      <part name="cart" interface="astrocde_cart">
13531187         <dataarea name="rom" size="4096">
13541188            <rom name="baseball.bin" size="4096" crc="5be548cc" sha1="4dda98d6cf257652fd179eca137b69b67e38b8c6" offset="0" />
r241451r241452
14151249      </part>
14161250   </software>
14171251
1418   <software name="war">
1419      <description>War (Second Printing)</description>
1420      <year>2012</year>
1421      <publisher>Riff Raff Games</publisher>
1422      <part name="cart" interface="astrocde_cart">
1423         <dataarea name="rom" size="8192">
1424            <rom name="war (2012)(riff raff games)[second printing].bin" size="7931" crc="c1faf1bf" sha1="bca64e756b1f1c23a6b78d90a14541e44161371b" offset="0" />
1425         </dataarea>
1426      </part>
1427   </software>
1428
14291252   <software name="yahtgold" supported="no">
14301253      <description>Yahtzee / Golddigger</description>
14311254<!-- <note>This is one of several BASIC conversions sold by Mike White.  It requires cartridge swapping and a RAM expansion.</note> -->
r241451r241452
14391262   </software>
14401263
14411264   <software name="yesternv">
1442      <description>Yesterday (Prototype, no vibrato)</description>
1265      <description>Yesterday (no vibrato) (Prototype)</description>
14431266<!-- <note>Of all Richard Degler's adaptations of George Moses' Beatles tape programs, only this one was actually sold in limited quantities.  The version sold hadn't had vibrato added yet, though.</note> -->
14441267      <year>1986</year>
14451268      <publisher>Richard Degler and George Moses</publisher>
r241451r241452
14511274   </software>
14521275
14531276   <software name="yesterv">
1454      <description>Yesterday (Prototype, with vibrato)</description>
1277      <description>Yesterday (with vibrato) (Prototype)</description>
14551278      <year>1986</year>
14561279      <publisher>Richard Degler and George Moses</publisher>
14571280      <part name="cart" interface="astrocde_cart">
r241451r241452
14621285   </software>
14631286
14641287</softwarelist>
1288
1289
trunk/hash/vsmile_cart.xml
r241451r241452
77
88<!--
99
10- Known V.Smile Edutainment Smartridges (thanks to Cowering and Team Europe)
10- Known V.Smile games (thanks to Team Europe and Cowering)
1111
1212
1313V.Smile Motion:               80-08****  (Smartridges are orange)
1414V.Smile Smartbook Software:   80-089***  (Smartridges are red)
1515V.Smile:                      80-09****  (Smartridges are purple, some are gray because of plastic defects)
16V.Smile Baby                  80-099***  (Smartridges are yellow, incompatible with TV based V.Smile consoles)
1716
1817Addons (w/ yellow Smartridges)
19V.Smile Smart Keyboard    80-091440(US)
20V.Smile Smart Keyboard    80-091443(UK)
21V.Smile PC Pal            80-03600(US)
22V.Smile Art Studio        80-67000(US)
23V.Smile Art Studio        80-67003(UK)
24V.Smile Jamming Gym Class 80-91320(US)
25V.Smile Dance'n'Learn     80-91323(UK)
26V.Smile Defi Gym          80-91325(GE)
18V.Smile Smart Keyboard    80-091440 (US)
19V.Smile Smart Keyboard    80-091443 (UK)
20V.Smile PC Pal            80-03600 (US)
21V.Smile Art Studio        80-67000 (US)
22V.Smile Art Studio        80-67003 (UK)
23V.Smile Jamming Gym Class 80-91320 (US)
24V.Smile Dance'n'Learn     80-91323 (UK)
2725
2826- Not compatible with V.Smile games, left as documentation
2927V.Flash (V.Smile Pro):        80-093***
r241451r241452
3230
3331Language:
3432********0 = US
35********1 = Italy
33********1 =
3634********2 = Netherlands
3735********3 = UK
3836********4 = Germany
3937********5 = France
40********6 =
4138********7 = Spain
4239
4340
4441
454280-084000(US)   | Action Mania
4680-084004(GE)   | Sportskanone
4780-084005(FR)   | Sporti Folies
4380-084004(GER)  | Sportskanone
4480-084005(FRA)  | Sporti Folies
484580-084020(US)   | Dora's Fix It Adventure
4980-084022(NL)   | Dora's Reparatie Avontuur
504680-084023(UK)   | Dora's Fix-It Adventure
5180-084025(FR)   | Les Adventures De Dora Apprentie Mecano
5280-084024(GE)   | Doras Reparatur-Abenteuer
5380-084040(US)   | Scooby-Doo! - Funland Frenzy (is V.Motion)
4780-084025(FRA)  | Les Adventures De Dora Apprentie Mecano
4880-084024(GER)  | Doras Reparatur-Abenteuer
4980-084040(US)   | Scooby-Doo! - Funland Frenzy
545080-084043(UK)   | Scooby-Doo! - Funland Frenzy
5580-084044(US)   | Scooby-Doo! - Im Lernpark
5680-084045(FR)   | Scooby-Doo - Panique A Funland
5180-084045(FRA)  | Scooby-Doo - Panique A Funland
575280-084060(US)   | Thomas and Friends - Engines Working Together
585380-084063(UK)   | Thomas and Friends - Engines Working Together
5980-084064(GE)   | Thomas - Freunde halten zusammen
5480-084064(GER)  | Thomas - Freunde halten zusammen
605580-084080(US)   | Wall-E
615680-084083(UK)   | Wall-E
6280-084084(GE)   | Wall-E
6380-084085(FR)   | Wall-E
6480-084087(SP)   | Wall-E
5780-084084(GER)  | Wall-E
5880-084085(FRA)  | Wall-E
5980-084087(SPA)  | Wall-E
656080-084100(US)   | Wonder Pets - Save the Animals!
666180-084103(UK)   | Wonder Pets - Save the Animals!
6780-084120(US)   | Kung Fu Panda - Path of the Panda
6880-084123(UK)   | Kung Fu Panda - Path of the Panda
6980-084124(GE)   | Kung Fu Panda - Der Weg des Panda
7080-084125(FR)   | Kung Fu Panda - La mission de Po
6280-084120(US)   | Kung Fu Panda
6380-084124(GER)  | Kung Fu Panda - Der Weg des Panda
6480-084125(FRA)  | Kung Fu Panda - La mission de Po
716580-084140(US)   | Spidey & Friends
7280-084144(GE)   | Spider-Man & Freunde - Geheime Missionen
73-
6680-084144(GER)  | Spider-Man & Freunde - Geheime Missionen
746780-084160(US)   | Little Einsteins
7580-084164(GE)   | Kleine Einsteins
7680-084167(SP)   | Little Einsteins
77-
6880-084164(GER)  | Kleine Einsteins
786980-084180(US)   | Mickey Mouse Clubhouse
7980-084184(GE)   | Micky Maus Wunderhaus
80-
7080-084184(GER)  | Micky Maus Wunderhaus
817180-084200(US)   | Nascar Academy - Race Car Superstar
82-
837280-084220(US)   | Snow Park Challenge
8480-084224(GE)   | Wintersport
85-
7380-084224(GER)  | Wintersport
867480-084240(US)   | Ni Hao Kai Lan
87-
887580-084260(US)   | My Pet Puppy (unreleased??)
897680-084263(UK)   | My Pet Puppy
9080-084264(GE)   | Mein erster Hund
9180-084267(SP)   | Dakota y su mascota
92-
7780-084264(GER)  | Mein erster Hund
937880-084280(US)   | Wild Waves
9480-084285(FR)   | Martin le Dauphin
95-
967980-084300(US)   | Soccer Challenge
9780-084304(GE)   | Fußball Meisterschaft
9880-084305(FR)   | Football Challenge
99-
8080-084304(GER)  | Fußball Meisterschaft
8180-084305(FRE)  | Football Challenge
1008280-084320(US)   | Disney Fairies: Tinker Bell
1018380-084323(UK)   | TinkerBell
10280-084324(GE)   | TinkerBell
10380-084325(FR)   | La fée Clochette
104-
8480-084324(GER)  | TinkerBell
8580-084325(FRE)  | La fée Clochette
1058680-084340(US)   | Up!
10680-084344(GE)   | Oben
10780-084342(NL)   | Up!  (with motion?)
10880-084345(FR)   | La-Haut
109-
8780-084344(GER)  | Oben
8880-084345(FRE)  | La-Haut
1108980-084360(US)   | Handy Manny
1119080-084363(UK)   | Handy Manny
11280-084364(GE)   | Meister Manny's Werkzeugkiste
11380-084365(FR)   | Manny Et Ses Outils
11480-084367(SP)   | Manny Manitas
115-
9180-084364(GER)  | Meister Manny's Werkzeugkiste
1169280-084380(US)   | Winnie the Pooh - The Honey Hunt
1179380-084383(UK)   | Winnie the Pooh - The Honey Hunt
118         (ITA)  | Winnie the Pooh - e la caccia al miele
11980-084384(GE)   | Winnie Puuh - Die Honigjagd
12080-084385(FR)   | Winnie Rourson - La Chasse au miel de Winnie
12180-084387(SP)   | Winnie the Pooh - En busca de la miel
122-
9480-084384(GER)  | Winnie Puuh - Die Honigjagd
1239580-084400(US)   | Cars - Rev it up in Radiator Springs
1249680-084403(UK)   | Cars - Rev it up in Radiator Springs
12580-084404(GE)   | Cars - Vollgas in Radiator Springs
12680-084407(SP)   | Cars - Acelera el Motor en Radiador Springs
127-
9780-084404(GER)  | Cars - Vollgas in Radiator Springs
1289880-084420(US)   | Toy Story 3
12980-084423(UK)   | Toy Story 3
13080-084424(GE)   | Toy Story 3
131-
13280-084440(US)   | Monsters vs. Aliens  (Actually a v.motion cart)
13380-084444(GE)   | Monsters vs. Aliens
9980-084423(US)   | Toy Story 3
10080-084424(GER)  | Toy Story 3
10180-084440(US)   | Monsters vs. Aliens
10280-084444(GER)  | Monsters vs. Aliens
13410380-084460(US)   | Noddy (unreleased??)
13580-084467(SP)   | Noddy - Detective por un Dia
136-
10480-084467(SPA)  | Noddy - Detective por un Dia
13710580-084480(US)   | The Princess and the Frog
13810680-084483(UK)   | The Princess and the Frog
13980-084484(GE)   | Küss den Frosch
14080-084485(FR)   | La Princesse Et La Grenouille
141-
10780-084484(GER)  | Küss den Frosch
14210880-084500(US)   | Shrek 4
14380-084504(GE)   | Für immer Shrek
14480-084505(FR)   | Shrek 4 - Il Etait une Fin
145-
10980-084504(GER)  | Für immer Shrek
14611080-084520(US)   | <Unknown>
147-
14811180-084540(US)   | Super Why to the Rescue! The Beach Day Mystery
149-
15011280-084560(US)   | <Unknown>
151-
15211380-084580(US)   | Cars 2
15380-084584(GE)   | Cars 2
15411480-084583(UK)   | Cars 2
155-
15611580-084600(US)   | <Unknown> would be Cinderella - Cinderella's Magic Wishes
15711680-084603(UK)   | Cinderella - Cinderella's Magic Wishes
15880-084604(GE)   | Cinderella - Lernen im Märchenland
159-
16080-084620(US)   | <Unknown>
16180-084624(GE)   | Findet Nemo - Nemos Unterwasserabenteuer
16280-084644(GE)   | Spongebob Schwammkopf - Der Tag des Schwamms
16380-084647(SP)   | Bob Epsonja - Un dia en la vida de una esponja
11780-084604(GER)  | Cinderella - Lernen im Märchenland
11880-084624(GER)  | Findet Nemo - Nemos Unterwasserabenteuer
164119
120
16512180-089000(US)   | Spider-Man &amp; Friends Where is Hulk?
16612280-089020(US)   | Toy Story 2
16712380-089040(US)   | Dora's Fix It Adventure
16812480-089060(US)   | Scooby-Doo! - A Night of Fright is no Delight
169125
17012680-090000(US)   | Up
17180-090004(GE)   | Oben
172-
12780-090000(GER)  | Oben
17312880-090020(US)   | Handy Manny
17480-090024(GE)   | Meister Manny's Werkzeugkiste
17580-090025(FR)   | Manny Et Ses Outils
176-
12980-090024(GER)  | Meister Manny's Werkzeugkiste
17713080-090040(US)   | Wow Wow Wubbzy
17880-090144(GE)   | Mein erster Hund
17980-090145(FR)   | Mon Toutou Tout Fou!
180-
18180-090160(US)   | <unknown> Should be Monsters vs. Aliens #80-084440
18280-090164(GE)   | Monsters vs. Aliens
18380-090165(FR)   | Monsters Contre Aliens
184-
18580-090180(US)   | <Unknown>
13180-090144(GER)  | Mein erster Hund
13280-090164(GER)  | Monsters vs. Aliens
18613380-090183(UK)   | Wonder Pets! - Save the Animals
187-
18880-090200(US)   | <Unknown>
189-
19080-090220(US)   | <Unknown>
19180-090224(GE)   | Dolphis Wasserabenteuer
13480-090224(GER)  | Dolphis Wasserabenteuer
19213580-090260(US)   | Disney Fairies: Tinker Bell
193136
19413780-092000(US)   | Alphabet Park Adventure (Red Haired Girl Version)
19513880-092000(US)   | Alphabet Park Adventure (Blond Haired Girl Version)
19680-092004(GE)   | Abenteuer im ABC Park
19780-092005(FR)   | ABC Land Aventure
19880-092007(SP)   | Aventuras en el Parque Alfabeto
199-
13980-092004(GER)  | Abenteuer im ABC Park
20014080-092020(US)   | The Adventures of Little Red Riding Hood
20180-092024(GE)   | Entdecke die Welt von Rotkäppchen
202-
14180-092024(GER)  | Entdecke die Welt von Rotkäppchen
20314280-092060(US)   | Winnie The Pooh: The Honey Hunt
20480-092064(GE)   | My Friends Tigger and Pooh - Die Honigjagd
205-
14380-092064(GER)  | Winnie Puuh - Die Honigjagd
20614480-092080(US)   | Mickey Mouse - Mickey's Magical Adventures
207         (ITA)  | Topolino - Le Magiche Avventure di Topolino
20880-092084(GE)   | Micky - Mickys magisches Abenteuer
20980-092085(FR)   | Mickey - Mickey a la recherche de Pluto
21080-092087(SP)   | Mickey - La Aventura Magica de Mickey
211-
14580-092087(SPA)  | Mickey - La Aventura Magica de Mickey
14680-092084(GER)  | Micky - Mickys magisches Abenteuer
21214780-092100(US)   | The Lion King: Simba's Big Adventure
21380-092104(GE)   | Der König der Löwen - Simbas großes Abenteuer
214-
14880-092104(GER)  | Der König der Löwen - Simbas großes Abenteuer
21514980-092120(US)   | The Little Mermaid - Ariel's Majestic Journey
21680-092124(GE)   | Arielle die Meerjungfrau - Arielles aufregendes Abenteuer
21780-092125(FR)   | La Petite Sirene - Ariel devient une princesse
21880-092127(SP)   | La Sirenita - El Vieje Fantástico de Ariel
219-
15080-092124(GER)  | Arielle die Meerjungfrau - Arielles aufregendes Abenteuer
15180-092127(SPA)  | La Sirenita - El Vieje Fantástico de Ariel
22015280-092140(US)   | Spider-Man & Friends - Secret Missions
22180-092144(GE)   | Spider-Man & Freunde - Geheime Missionen
222-
15380-092144(GER)  | Spider-Man & Freunde - Geheime Missionen
22315480-092160(US)   | Scooby-Doo! - Funland Frenzy
22415580-092163(UK)   | Scooby-Doo! - Funland Frenzy
22515680-092163-293(UK)   | Scooby-Doo! - Funland Frenzy (ALT)
22680-092167(SP)   | Scooby-Doo - Mysterio En El Parque
227-
15780-092167(SPA)  | Scooby-Doo - Mysterio En El Parque
22815880-092180(US)   | Care Bears - A Lesson in Caring
22915980-092200(US)   | Aladdin - Aladdin's Wonders of the World
23080-092204(GE)   | Aladdin - Aladdins Welt der Wunder
23180-092207(SP)   | Aladdin - El Maravilloso Mundo de Aladdin
16080-092207(SPA)  | Aladdin - El Maravilloso Mundo de Aladdin
23216180-092220(US)   | Toy Story 2
23380-092224(GE)   | Toy Story 2 - Woodys Spannende Rettung
234         (ITA)  | Toy Story 2 - Operazione: Salvataggio di Woody!
23580-092225(FR)   | Toy Story 2 - Buzz à la Rescousse
236-
23716280-092240(US)   | Cinderella - Cinderella's Magic Wishes
23816380-092243(UK)   | Cinderella - Cinderella's Magic Wishes
23980-092243-103(UK)   | Cinderella - Cinderella's Magic Wishes | 2007
240         (ITA)  | Cenerentala - I desideri magici di Cenerentala
24180-092244(GE)   | Cinderella - Lernen im Märchenland | 2005
24280-092244-104(GE)   | Cinderella - Lernen im Märchenland | 2007
24380-092245-105(FR)   | Cendrillon - Le rêve enchanté de Cendrillon
244-
16480-092244(GER)  | Cinderella - Lernen im Märchenland | 2007
24516580-092260(US)   | Elmo's World - Elmo's Big Discoveries
24680-092264(GE)   | Elmo's großes Abenteuer
24780-092265(FR)   | Le Monde d'ELMO - Les Grandes Decouvertes D'Elmo
248-
16680-092264(GER)  | Elmo's großes Abenteuer
16780-092265(FRA)  | Le Monde d'ELMO - Les Grandes Decouvertes D'Elmo
24916880-092280(US)   | Dora The Explorer
25080-092284(GE)   | Dora - Doras Reparatur-Abenteuer
25180-092285(FR)   | Dora L'Exploratrice - Les aventures de Dora Apprentie Mecano
252-
25316980-092300(US)   | Bob the Builder: Bob's Busy Day
25480-092305(FR)   | Bob Bricoleur: Les P'tits Chantiers de Bob
25580-092304(GE)   | Bob der Baumeister - Achtung Baustelle
25680-092304-104(GE)   | Bob der Baumeister - Bobs Spannender Arbeitstag
257-
17080-092305(FRA)  | Bob Bricoleur: Les P'tits Chantiers de Bob
17180-092304(GER)  | Bob der Baumeister - Achtung Baustelle
25817280-092320(US)   | The Wiggles - It's Wiggle Time!
259-
26017380-092340(US)   | Thomas The Tank: Engines Working Together
26117480-092340-101(US)   | Thomas The Tank: Engines Working Together (ALT)
26217580-092343(UK)   | Thomas and Friends: Engines Working Together
26380-092344(GE)   | Thomas and Seine Freunde - Freunde Halten Zusammen
26480-092347(SP)   | Thomas and Friends: Juego de Aprendizaje
265-
26617680-092360(US)   | Zayzoo My Alien Classmate
26780-092363(UK)   | Zayzoo My Alien Classmate
26880-092365(FR)   | Zezou : Notre ami venu d'ailleurs
26917780-092360-101(US)   | Zayzoo - An Earth Adventure
27080-092363-101(UK)   | Zayzoo - An Earth Adventure
27180-092364(GE)   | Zayzoo Lernall
272-
27317880-092380(US)   | Barney - The Land of Make Believe
27480-092384(GE)   | Barney - Erlebnis-Reise
275-
17980-092384(GER)  | Barney - Erlebnis-Reise
27618080-092400(US)   | Blue's Clues Collection Day
277-
27818180-092420(US)   | Finding Nemo
27980-092424(GE)   | Findet Nemo
280-
18280-092424(GER)  | Findet Nemo
28118380-092440(US)   | Spongebob Squarepants: A Day In The Life of A Sponge
28218480-092443(UK)   | Spongebob Squarepants: A Day In The Life of A Sponge
28380-092444(GE)   | Spongebob Schwammkopf - Der Tag des Schwamms
284-
28518580-092460(US)   | Sesame Street
28680-092464(GE)   | Sesame Street : Ernie and Berts Fantastisches Abenteuer
287-
28818680-092480(US)   | Batman: Gotham City Rescue
28980-092485(FR)   | Batman: Panique a Gotham City
29080-092484(GE)   | Batman - Rettung von Gotham City
29180-09248?(ITA)  | Batman: Il Salvataggio di Gotham City
292-
29318780-092500(US)   | Whiz Kid Wheels
29480-092503(UK)   | Whiz Kid Wheels
29580-092504(GE)   | Flitzers Schlaue Staedtetour (diff color!?)
29680-092505(FR)   | Mission Pilote
29780-092507(SP)   | Conduccion Divertida
298-
29918880-092520(US)   | Spider-Man & Friends Doc Ock's Challenge
300         (ITA)  | Spider-Man la sfida del dottor Ock
30180-092524(GE)   | Spider-Man & Freunde Wettkampf im Space Labor
302-
30318980-092540(US)   | Noddy - Detective for a Day
30480-092543(UK)   | Noddy - Detective for a Day
30580-092543-103(UK)   | Noddy - Detective for a Day (ALT)
30680-092544(GE)   | Noddy
30780-092564(GE)   | 101 Dalmatiner
308-
19080-092540(UK)   | Noddy - Detective for a Day
19180-092540-103(UK)   | Noddy - Detective for a Day (ALT)
19280-092544(GER)  | Noddy
19380-092564(GER)  | 101 Dalmatiner
30919480-092580(US)   | Backyardigans - Viking Voyage
31019580-092600(US)   | Shrek - Dragon's Tale
31180-092604(GE)   | Shrek - Die Geschichte des Drachen
31219680-092620(US)   | Lil' Bratz - Friends, Fashion and Fun
313-
31419780-092640(US)   | Superman - The Greatest Hero
31580-092643(UK)   | Superman - The Greatest Hero
316-
19880-092643(US)   | Superman - The Greatest Hero
31719980-092660(US)   | Cars: Rev It Up In Radiator Springs
31820080-092662(NL)   | Cars - Spektakel in Radiator Springs
31980-092664(GE)   | Cars: Vollgas in Radiator Springs
320         (ITA)  | Cars: Motori Ruggenti
32180-092665(GE)   | Cars: Quatre Roues
32280-092667(SP)   | Cars: Acelera El Motor En Radiador Springs
323-
20180-092666(SPA)  | Cars: Acelera El Motor En Radiador Springs
20280-092664(GER)  | Cars
32420380-092820(US)   | Soccer Challenge
32520480-092823(UK)   | Football Challenge
32680-092824(GE)   | Fußball Schule
32780-092831(IT)   | Football Club
328-
20580-092824(GER)  | Fußball Schule
32920680-092840(US)   | Wall-E
33020780-092843(UK)   | Wall-E
33180-092844(GE)   | Wall-E
332         (ITA)  | Wall-E
33320880-092860(US)   | Shrek the Third: Arthur's School Day Adventure
33420980-092863(UK)   | Shrek the Third: Arthur's School Day Adventure
335         (ITA)  | Shrek Terzo L'Advventura Do Artu in un Giorno do Scuola
33680-092864(GE)   | Shrek der Dritte - Ein Spannender Schultag
33780-092865(FR)   | Shrek Troisieme : L'aventure d'Arthur
33880-092880(US)   | Ratatouille - Remy's New Recipes
21080-092880(US)   | Ratatouille
33921180-092882(NL)   | Ratatouille
34080-092883(UK)   | Ratatouille - Remy's New Recipes
34180-092884(GE)   | Ratatouille - Remys neue Rezepte
34280-092884-104(GE)   | Ratatouille - Remys neue Rezepte (ALT)
34380-092885(FR)   | Ratatouille - Les nouvelles recettes de Rémy
21280-092884(GER)  | Ratatouille - Remys neue Rezepte
21380-092885(FRA)  | Ratatouille - Les nouvelles recettes de Rémy
34421480-092900(US)   | Go Diego Go - Save the Animal Familes!
34521580-092920(US)   | Cranium - Partyland Park
346
34780-092944(GE)   | Micky Maus Wunderhaus
348         (ITA)  | La Casa di Topolino
34980-092945(FR)   | La Maison de Mickey
35021680-092960(US)   | Kung Fu Panda - Path of the Panda
35180-092964(GE)   | Kung Fu Panda - Der Weg des Panda
35221780-092980(US)   | Little Einsteins
35380-092984(GE)   | Kleine Einsteins
354218
355
356V.Flash
357
35821980-093000(US)   | The Crystal Ball Adventure
35922080-093020(US)   | The Incredibles - Mission Incredibles
36080-093040(US)   | SpongeBob - Idea Sponge
36180-093044(GE)   | SpongeBob - Ein Schwamm voller Ideen
22180-093040(US)   | Spongebob - Idea Sponge
22280-093044(GER)  | SpongeBob - Ein Schwamm voller Ideen
36222380-093060(US)   | The Amazing Spider-Man - Countdown to Doom
36322480-093080(US)   | Scooby-Doo! - Ancient Adventure
36422580-093100(US)   | Cars - In The Fast Lane
36580-093104(GE)   | Cars - Auf der Überholspur
36680-093105(FR)   | Cars - A Fond la Caisse!
22680-093104(GER)  | Cars - Auf der Überholspur
36722780-093120(US)   | Wacky Race on Jumpin' Bean Island
36880-093124(GE)   | Das verrückte Rennen auf der Hüpf-Bohnen-Insel
22880-093124(GER)  | Das verrückte Rennen auf der Hüpf-Bohnen-Insel
36922980-093140(US)   | Shrek 3
37080-093144(GE)   | Shrek - Der Dritte
23080-093144(GER)  | Shrek - Der Dritte
37123180-093160(US)   | Bratz - The Secret Necklace
37223280-093180(US)   | <Unknown>
37323380-093200(US)   | Ratatouille (according to vtech site, can't confirm)
37480-093204(GE)   | Multisports
23480-093204(GER)  | Multisports
37523580-093220(US)   | National Geographic Kids
376236
377
378V.Baby
379
38080-099000(US)   | Learn and Discover Home (white background on title) (the packin)
38180-099000(US)   | Learn and Discover Home (green background on title) (standalone)
38280-099020(US)   | Pooh's Hundred Acre Wood Adventure
38380-099040(US)   | Baby Einstein - World of Discoveries
38480-099040(US)   | Baby Einstein - World of Discoveries (no # on front label)
38580-099060(US)   | A Day On The Farm
38680-099080(US)   | <Unknown>
38780-099100(US)   | Noah's Ark Animal Adventure
38880-099120(US)   | Barney
38980-099140(US)   | Teletubbies
39080-099160(US)   | Baby Mickey
39180-099180(US)   |Bailey Goes To Town (Included Bailey Plush Bear Controller)
39280-099200(US)   | Mother Goose
39380-099220(US)   | Care Bears Play Day
39480-099240(US)   | Backyardigans: Big Backyard Adventures
395
39680-220000(US)   | The World of Eric Carle - The Very Hungry Caterpillar
39780-107100-001(US) | Meet Me at the Zoo (Orange, V.Baby V2 packin)
398
399
400V.Reader
401
40223780-280000(US)   | Animated E-Book Cartridge - Shrek's Vacation
40323880-280100(US)   | Animated E-Book Cartridge - Toy Story 3
40423980-280200(US)   | Animated E-Book Cartridge - Mr. Men/Little Miss
r241451r241452
427262-->
428263
429264   <software name="aladdin">
430      <description>Aladdin - Aladdins Welt der Wunder (GE) </description>
265      <description>Aladdin - Aladdins Welt der Wunder (Ger)</description>
431266      <year>200?</year>
432267      <publisher>VTech</publisher>
433268      <part name="cart" interface="vsmile_cart">
r241451r241452
438273   </software>
439274
440275   <software name="ariel">
441      <description>Arielle Die Meerjungfrau - Arielles aufregendes Abenteuer (GE) </description>
276      <description>Arielle Die Meerjungfrau - Arielles aufregendes Abenteuer (Ger)</description>
442277      <year>200?</year>
443278      <publisher>VTech</publisher>
444279      <part name="cart" interface="vsmile_cart">
r241451r241452
449284   </software>
450285
451286   <software name="bobbuild">
452      <description>Bob der Baumeister - Bobs spannender Arbeitstag (GE) </description>
287      <description>Bob der Baumeister - Bobs spannender Arbeitstag (Ger)</description>
453288      <year>200?</year>
454289      <publisher>VTech</publisher>
455290      <part name="cart" interface="vsmile_cart">
r241451r241452
482317   </software>
483318
484319   <software name="footschl">
485      <description>Fußball Schule (GE) </description>
320      <description>Fußball Schule (Ger)</description>
486321      <year>200?</year>
487322      <publisher>VTech</publisher>
488323      <part name="cart" interface="vsmile_cart">
r241451r241452
493328   </software>
494329
495330   <software name="fred">
496      <description>Freds Zahlen Rallye (GE) </description>
331      <description>Freds Zahlen Rallye (Ger)</description>
497332      <year>200?</year>
498333      <publisher>VTech</publisher>
499334      <part name="cart" interface="vsmile_cart">
r241451r241452
504339   </software>
505340
506341   <software name="manny">
507      <description>Meister Manny's Werkzeugkiste (GE) </description>
342      <description>Meister Manny's Werkzeugkiste (Ger)</description>
508343      <year>200?</year>
509344      <publisher>VTech</publisher>
510345      <part name="cart" interface="vsmile_cart">
r241451r241452
515350   </software>
516351
517352   <software name="monstaln">
518      <description>Monsters vs Aliens (GE) </description>
353      <description>Monsters vs Aliens (Ger)</description>
519354      <year>200?</year>
520355      <publisher>VTech</publisher>
521356      <part name="cart" interface="vsmile_cart">
r241451r241452
526361   </software>
527362
528363   <software name="oben">
529      <description>Oben (GE) </description>
364      <description>Oben (Ger)</description>
530365      <year>200?</year>
531366      <publisher>VTech</publisher>
532367      <part name="cart" interface="vsmile_cart">
r241451r241452
537372   </software>
538373
539374   <software name="ratat">
540      <description>Ratatouille - Remys Neue Rezepte (GE) </description>
375      <description>Ratatouille - Remys Neue Rezepte (Ger)</description>
541376      <year>200?</year>
542377      <publisher>VTech</publisher>
543378      <part name="cart" interface="vsmile_cart">
r241451r241452
548383   </software>
549384
550385   <software name="shrek">
551      <description>Shrek - Die Geschichte des Drache (GE) </description>
386      <description>Shrek - Die Geschichte des Drache (Ger)</description>
552387      <year>200?</year>
553388      <publisher>VTech</publisher>
554389      <part name="cart" interface="vsmile_cart">
r241451r241452
570405   </software>
571406
572407   <software name="spongeb1" cloneof="spongeb">
573      <description>Spongebob Schwammkopf - Der Tag des Schwamms (GE) </description>
408      <description>Spongebob Schwammkopf - Der Tag des Schwamms (Ger)</description>
574409      <year>200?</year>
575410      <publisher>VTech</publisher>
576411      <part name="cart" interface="vsmile_cart">
r241451r241452
581416   </software>
582417
583418   <software name="superman">
584      <description>Superman - Der Superheld (GE) </description>
419      <description>Superman - Der Superheld (Ger)</description>
585420      <year>200?</year>
586421      <publisher>VTech</publisher>
587422      <part name="cart" interface="vsmile_cart">
r241451r241452
592427   </software>
593428
594429   <software name="thomas">
595      <description>Thomas &amp; seine Freunde - Freunde halten zusammen (GE) </description>
430      <description>Thomas &amp; seine Freunde - Freunde halten zusammen (Ger)</description>
596431      <year>200?</year>
597432      <publisher>VTech</publisher>
598433      <part name="cart" interface="vsmile_cart">
r241451r241452
603438   </software>
604439
605440   <software name="toystor2">
606      <description>Toy Story 2 - Woodys Spannende Rettung (GE) </description>
441      <description>Toy Story 2 - Woodys Spannende Rettung (Ger)</description>
607442      <year>200?</year>
608443      <publisher>VTech</publisher>
609444      <part name="cart" interface="vsmile_cart">
r241451r241452
614449   </software>
615450
616451   <software name="walle">
617      <description>Wall-E (GE) </description>
452      <description>Wall-E (Ger)</description>
618453      <year>200?</year>
619454      <publisher>VTech</publisher>
620455      <part name="cart" interface="vsmile_cart">
r241451r241452
625460   </software>
626461
627462   <software name="pooh">
628      <description>Winnie Puhh - Die Honigjagd (GE) </description>
463      <description>Winnie Puhh - Die Honigjagd (Ger)</description>
629464      <year>19??</year>
630465      <publisher>&lt;unknown&gt;</publisher>
631466      <part name="cart" interface="vsmile_cart">
trunk/src/emu/bus/bus.mak
r241451r241452
122122
123123#-------------------------------------------------
124124#
125#@src/emu/bus/astrocde/slot.h,BUSES += ASTROCADE
126#-------------------------------------------------
127
128ifneq ($(filter ASTROCADE,$(BUSES)),)
129OBJDIRS += $(BUSOBJ)/astrocde
130BUSOBJS += $(BUSOBJ)/astrocde/slot.o
131BUSOBJS += $(BUSOBJ)/astrocde/rom.o
132endif
133
134
135#-------------------------------------------------
136#
137125#@src/emu/bus/bw2/exp.h,BUSES += BW2
138126#-------------------------------------------------
139127
trunk/src/emu/cpu/powerpc/ppc.h
r241451r241452
159159#define PPCDRC_COMPATIBLE_OPTIONS   (PPCDRC_STRICT_VERIFY | PPCDRC_FLUSH_PC | PPCDRC_ACCURATE_SINGLES)
160160#define PPCDRC_FASTEST_OPTIONS      (0)
161161
162 
163 
164/***************************************************************************
165    PUBLIC FUNCTIONS
166***************************************************************************/
167 
162
163
164/***************************************************************************
165    STRUCTURES AND TYPEDEFS
166***************************************************************************/
167
168typedef void (*ppc4xx_spu_tx_handler)(device_t *device, UINT8 data);
169
170
171typedef void (*ppc_dcstore_handler)(device_t *device, UINT32 address);
172typedef UINT32 (*ppc4xx_dma_read_handler)(device_t *device, int width);
173typedef void (*ppc4xx_dma_write_handler)(device_t *device, int width, UINT32 data);
174
175
176/***************************************************************************
177    PUBLIC FUNCTIONS
178***************************************************************************/
179
168180#define MCFG_PPC_BUS_FREQUENCY(_frequency) \
169181   ppc_device::set_bus_frequency(*device, _frequency);
170182
r241451r241452
213225public:
214226   // construction/destruction
215227   ppc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, int address_bits, int data_bits, powerpc_flavor flavor, UINT32 cap, UINT32 tb_divisor, address_map_constructor internal_map);
216 
217   static void set_bus_frequency(device_t &device, UINT32 bus_frequency) { downcast<ppc_device &>(device).c_bus_frequency = bus_frequency; }
218 
219   void ppc_set_dcstore_callback(write32_delegate callback);
220   
221   void ppcdrc_set_options(UINT32 options);
222   void ppcdrc_add_fastram(offs_t start, offs_t end, UINT8 readonly, void *base);
223   void ppcdrc_add_hotspot(offs_t pc, UINT32 opcode, UINT32 cycles);
224228
229   static void set_bus_frequency(device_t &device, UINT32 bus_frequency) { downcast<ppc_device &>(device).c_bus_frequency = bus_frequency; }
230
231   void ppc_set_dcstore_callback(ppc_dcstore_handler handler);
232
233   void ppcdrc_set_options(UINT32 options);
234   void ppcdrc_add_fastram(offs_t start, offs_t end, UINT8 readonly, void *base);
235   void ppcdrc_add_hotspot(offs_t pc, UINT32 opcode, UINT32 cycles);
236
225237   TIMER_CALLBACK_MEMBER(decrementer_int_callback);
226238   TIMER_CALLBACK_MEMBER(ppc4xx_buffered_dma_callback);
227239   TIMER_CALLBACK_MEMBER(ppc4xx_fit_callback);
r241451r241452
479491      UINT8           regs[9];
480492      UINT8           txbuf;
481493      UINT8           rxbuf;
482      emu_timer *     timer;
483      UINT8           rxbuffer[256];
484      UINT32          rxin, rxout;
485      write8_delegate tx_cb;
486   };
487 
488   ppc4xx_spu_state m_spu;
494      emu_timer *     timer;
495      UINT8           rxbuffer[256];
496      UINT32          rxin, rxout;
497      ppc4xx_spu_tx_handler tx_handler;
498   };
499
500   ppc4xx_spu_state m_spu;
489501   emu_timer *     m_fit_timer;
490502   emu_timer *     m_pit_timer;
491503   emu_timer *     m_wdog_timer;
r241451r241452
503515   UINT64          m_dec_zero_cycles;
504516   emu_timer *     m_decrementer_int_timer;
505517
506   read32_delegate  m_dcr_read_func;
507   write32_delegate m_dcr_write_func;
508 
509   write32_delegate m_dcstore_cb;
510 
511   read32_delegate m_ext_dma_read_cb[4];
512   write32_delegate m_ext_dma_write_cb[4];
513 
514   /* PowerPC function pointers for memory accesses/exceptions */
515   jmp_buf m_exception_jmpbuf;
518   read32_delegate  m_dcr_read_func;
519   write32_delegate m_dcr_write_func;
520
521   ppc_dcstore_handler m_dcstore_handler;
522
523   ppc4xx_dma_read_handler m_ext_dma_read_handler[4];
524   ppc4xx_dma_write_handler m_ext_dma_write_handler[4];
525
526   /* PowerPC function pointers for memory accesses/exceptions */
527   jmp_buf m_exception_jmpbuf;
516528   UINT8 (*m_ppcread8)(address_space &space, offs_t address);
517529   UINT16 (*m_ppcread16)(address_space &space, offs_t address);
518530   UINT32 (*m_ppcread32)(address_space &space, offs_t address);
r241451r241452
751763
752764class ppc4xx_device : public ppc_device
753765{
754public:
755   ppc4xx_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, powerpc_flavor flavor, UINT32 cap, UINT32 tb_divisor);
756 
757   void ppc4xx_spu_set_tx_handler(write8_delegate callback);
758   void ppc4xx_spu_receive_byte(UINT8 byteval);
759 
760   void ppc4xx_set_dma_read_handler(int channel, read32_delegate callback, int rate);
761   void ppc4xx_set_dma_write_handler(int channel, write32_delegate callback, int rate);
762   void ppc4xx_set_dcr_read_handler(read32_delegate dcr_read_func);
763   void ppc4xx_set_dcr_write_handler(write32_delegate dcr_write_func);
764 
766public:
767   ppc4xx_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, powerpc_flavor flavor, UINT32 cap, UINT32 tb_divisor);
768
769   void ppc4xx_spu_set_tx_handler(ppc4xx_spu_tx_handler handler);
770   void ppc4xx_spu_receive_byte(UINT8 byteval);
771
772   void ppc4xx_set_dma_read_handler(int channel, ppc4xx_dma_read_handler handler, int rate);
773   void ppc4xx_set_dma_write_handler(int channel, ppc4xx_dma_write_handler handler, int rate);
774   void ppc4xx_set_dcr_read_handler(read32_delegate dcr_read_func);
775   void ppc4xx_set_dcr_write_handler(write32_delegate dcr_write_func);
776
765777   DECLARE_READ8_MEMBER( ppc4xx_spu_r );
766778   DECLARE_WRITE8_MEMBER( ppc4xx_spu_w );
767779
trunk/src/emu/cpu/powerpc/ppccom.c
r241451r241452
214214   , m_core(NULL)
215215   , m_bus_freq_multiplier(1)
216216   , m_vtlb(NULL)
217   , m_flavor(flavor)
218   , m_cap(cap)
219   , m_tb_divisor(tb_divisor)
220   , m_cache(CACHE_SIZE + sizeof(internal_ppc_state))
221   , m_drcuml(NULL)
222   , m_drcfe(NULL)
217   , m_flavor(flavor)
218   , m_cap(cap)
219   , m_tb_divisor(tb_divisor)
220   , m_dcstore_handler(NULL)
221   , m_cache(CACHE_SIZE + sizeof(internal_ppc_state))
222   , m_drcuml(NULL)
223   , m_drcfe(NULL)
223224   , m_drcoptions(0)
224{
225   m_program_config.m_logaddr_width = 32;
226   m_program_config.m_page_shift = POWERPC_MIN_PAGE_SHIFT;
227}
228 
229//ppc403_device::ppc403_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
225{
226   m_program_config.m_logaddr_width = 32;
227   m_program_config.m_page_shift = POWERPC_MIN_PAGE_SHIFT;
228   memset(m_ext_dma_read_handler, 0, sizeof(m_ext_dma_read_handler));
229   memset(m_ext_dma_write_handler, 0, sizeof(m_ext_dma_write_handler));
230}
231
232//ppc403_device::ppc403_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
230233//  : ppc_device(mconfig, PPC403, "PPC403", tag, owner, clock, "ppc403", 32?, 64?)
231234//{
232235//}
r241451r241452
12381241    ppccom_dcstore_callback - call the dcstore
12391242    callback if installed
12401243-------------------------------------------------*/
1241 
1242void ppc_device::ppccom_dcstore_callback()
1243{
1244   if (!m_dcstore_cb.isnull())
1245   {
1246      m_dcstore_cb(*m_program, m_core->param0, 0, 0xffffffff);
1247   }
1248}
1249 
12501244
1245void ppc_device::ppccom_dcstore_callback()
1246{
1247   if (m_dcstore_handler != NULL)
1248   {
1249      m_dcstore_handler(this, m_core->param0);
1250   }
1251}
1252
1253
12511254/***************************************************************************
12521255    TLB HANDLING
12531256***************************************************************************/
r241451r241452
20582061
20592062/*-------------------------------------------------
20602063    ppc_set_dcstore_callback - installs a callback
2061    for detecting datacache stores with dcbst
2062-------------------------------------------------*/
2063 
2064void ppc_device::ppc_set_dcstore_callback(write32_delegate callback)
2065{
2066   m_dcstore_cb = callback;
2067}
2068 
2069 
2064    for detecting datacache stores with dcbst
2065-------------------------------------------------*/
2066
2067void ppc_device::ppc_set_dcstore_callback(ppc_dcstore_handler handler)
2068{
2069   m_dcstore_handler = handler;
2070}
2071
2072
20702073void ppc_device::execute_set_input(int inputnum, int state)
20712074{
20722075   switch (inputnum)
r241451r241452
22852288      {
22862289         /* byte transfer */
22872290         case 1:
2288         do
2289         {
2290            UINT8 data = 0;
2291            if (!m_ext_dma_read_cb[dmachan].isnull())
2292               data = (m_ext_dma_read_cb[dmachan])(*m_program, 1, 0xffffffff);
2293            m_program->write_byte(dmaregs[DCR4XX_DMADA0], data);
2294            dmaregs[DCR4XX_DMADA0] += destinc;
2295         } while (!ppc4xx_dma_decrement_count(dmachan));
2291         do
2292         {
2293            UINT8 data = 0;
2294            if (m_ext_dma_read_handler[dmachan] != NULL)
2295               data = (*m_ext_dma_read_handler[dmachan])(this, 1);
2296            m_program->write_byte(dmaregs[DCR4XX_DMADA0], data);
2297            dmaregs[DCR4XX_DMADA0] += destinc;
2298         } while (!ppc4xx_dma_decrement_count(dmachan));
22962299         break;
22972300
22982301         /* word transfer */
22992302         case 2:
2300         do
2301         {
2302            UINT16 data = 0;
2303            if (!m_ext_dma_read_cb[dmachan].isnull())
2304               data = (m_ext_dma_read_cb[dmachan])(*m_program, 2, 0xffffffff);
2305            m_program->write_word(dmaregs[DCR4XX_DMADA0], data);
2306            dmaregs[DCR4XX_DMADA0] += destinc;
2307         } while (!ppc4xx_dma_decrement_count(dmachan));
2303         do
2304         {
2305            UINT16 data = 0;
2306            if (m_ext_dma_read_handler[dmachan] != NULL)
2307               data = (*m_ext_dma_read_handler[dmachan])(this, 2);
2308            m_program->write_word(dmaregs[DCR4XX_DMADA0], data);
2309            dmaregs[DCR4XX_DMADA0] += destinc;
2310         } while (!ppc4xx_dma_decrement_count(dmachan));
23082311         break;
23092312
23102313         /* dword transfer */
23112314         case 4:
2312         do
2313         {
2314            UINT32 data = 0;
2315            if (!m_ext_dma_read_cb[dmachan].isnull())
2316               data = (m_ext_dma_read_cb[dmachan])(*m_program, 4, 0xffffffff);
2317            m_program->write_dword(dmaregs[DCR4XX_DMADA0], data);
2318            dmaregs[DCR4XX_DMADA0] += destinc;
2319         } while (!ppc4xx_dma_decrement_count(dmachan));
2315         do
2316         {
2317            UINT32 data = 0;
2318            if (m_ext_dma_read_handler[dmachan] != NULL)
2319               data = (*m_ext_dma_read_handler[dmachan])(this, 4);
2320            m_program->write_dword(dmaregs[DCR4XX_DMADA0], data);
2321            dmaregs[DCR4XX_DMADA0] += destinc;
2322         } while (!ppc4xx_dma_decrement_count(dmachan));
23202323         break;
23212324      }
23222325   }
r241451r241452
23292332      {
23302333         /* byte transfer */
23312334         case 1:
2332         do
2333         {
2334            UINT8 data = m_program->read_byte(dmaregs[DCR4XX_DMADA0]);
2335            if (!m_ext_dma_write_cb[dmachan].isnull())
2336               (m_ext_dma_write_cb[dmachan])(*m_program, 1, data, 0xffffffff);
2337            dmaregs[DCR4XX_DMADA0] += destinc;
2338         } while (!ppc4xx_dma_decrement_count(dmachan));
2339         break;
2335         do
2336         {
2337            UINT8 data = m_program->read_byte(dmaregs[DCR4XX_DMADA0]);
2338            if (m_ext_dma_write_handler[dmachan] != NULL)
2339               (*m_ext_dma_write_handler[dmachan])(this, 1, data);
2340            dmaregs[DCR4XX_DMADA0] += destinc;
2341         } while (!ppc4xx_dma_decrement_count(dmachan));
2342         break;
23402343
23412344         /* word transfer */
23422345         case 2:
2343         do
2344         {
2345            UINT16 data = m_program->read_word(dmaregs[DCR4XX_DMADA0]);
2346            if (!m_ext_dma_write_cb[dmachan].isnull())
2347               (m_ext_dma_write_cb[dmachan])(*m_program, 2, data, 0xffffffff);
2348            dmaregs[DCR4XX_DMADA0] += destinc;
2349         } while (!ppc4xx_dma_decrement_count(dmachan));
2350         break;
2346         do
2347         {
2348            UINT16 data = m_program->read_word(dmaregs[DCR4XX_DMADA0]);
2349            if (m_ext_dma_write_handler[dmachan] != NULL)
2350               (*m_ext_dma_write_handler[dmachan])(this, 2, data);
2351            dmaregs[DCR4XX_DMADA0] += destinc;
2352         } while (!ppc4xx_dma_decrement_count(dmachan));
2353         break;
23512354
23522355         /* dword transfer */
23532356         case 4:
2354         do
2355         {
2356            UINT32 data = m_program->read_dword(dmaregs[DCR4XX_DMADA0]);
2357            if (!m_ext_dma_write_cb[dmachan].isnull())
2358               (m_ext_dma_write_cb[dmachan])(*m_program, 4, data, 0xffffffff);
2359            dmaregs[DCR4XX_DMADA0] += destinc;
2360         } while (!ppc4xx_dma_decrement_count(dmachan));
2361         break;
2357         do
2358         {
2359            UINT32 data = m_program->read_dword(dmaregs[DCR4XX_DMADA0]);
2360            if (m_ext_dma_write_handler[dmachan] != NULL)
2361               (*m_ext_dma_write_handler[dmachan])(this, 4, data);
2362            dmaregs[DCR4XX_DMADA0] += destinc;
2363         } while (!ppc4xx_dma_decrement_count(dmachan));
2364         break;
23622365      }
23632366   }
23642367}
r241451r241452
26742677      int operation = (m_spu.regs[SPU4XX_TX_COMMAND] >> 5) & 3;
26752678
26762679      /* if we have data to transmit, do it now */
2677      if (!(m_spu.regs[SPU4XX_LINE_STATUS] & 0x04))
2678      {
2679         /* if we have a transmit handler, send it that way */
2680         if (!m_spu.tx_cb.isnull())
2681            (m_spu.tx_cb)(*m_program, 0, m_spu.txbuf, 0xff);
2682 
2683         /* indicate that we have moved it to the shift register */
2684         m_spu.regs[SPU4XX_LINE_STATUS] |= 0x04;
2680      if (!(m_spu.regs[SPU4XX_LINE_STATUS] & 0x04))
2681      {
2682         /* if we have a transmit handler, send it that way */
2683         if (m_spu.tx_handler != NULL)
2684            (*m_spu.tx_handler)(this, m_spu.txbuf);
2685
2686         /* indicate that we have moved it to the shift register */
2687         m_spu.regs[SPU4XX_LINE_STATUS] |= 0x04;
26852688         m_spu.regs[SPU4XX_LINE_STATUS] &= ~0x02;
26862689      }
26872690
r241451r241452
28202823
28212824/*-------------------------------------------------
28222825    ppc4xx_spu_set_tx_handler - PowerPC 4XX-
2823    specific TX handler configuration
2824-------------------------------------------------*/
2825 
2826void ppc4xx_device::ppc4xx_spu_set_tx_handler(write8_delegate callback)
2827{
2828   m_spu.tx_cb = callback;
2829}
2830 
2831 
2826    specific TX handler configuration
2827-------------------------------------------------*/
2828
2829void ppc4xx_device::ppc4xx_spu_set_tx_handler(ppc4xx_spu_tx_handler handler)
2830{
2831   m_spu.tx_handler = handler;
2832}
2833
2834
28322835/*-------------------------------------------------
28332836    ppc4xx_spu_receive_byte - PowerPC 4XX-
28342837    specific serial byte receive
r241451r241452
28412844
28422845/*-------------------------------------------------
28432846    ppc4xx_set_dma_read_handler - PowerPC 4XX-
2844    specific external DMA read handler configuration
2845-------------------------------------------------*/
2846 
2847void ppc4xx_device::ppc4xx_set_dma_read_handler(int channel, read32_delegate callback, int rate)
2848{
2849   m_ext_dma_read_cb[channel] = callback;
2850   m_buffered_dma_rate[channel] = rate;
2851}
2852 
2847    specific external DMA read handler configuration
2848-------------------------------------------------*/
2849
2850void ppc4xx_device::ppc4xx_set_dma_read_handler(int channel, ppc4xx_dma_read_handler handler, int rate)
2851{
2852   m_ext_dma_read_handler[channel] = handler;
2853   m_buffered_dma_rate[channel] = rate;
2854}
2855
28532856/*-------------------------------------------------
28542857    ppc4xx_set_dma_write_handler - PowerPC 4XX-
2855    specific external DMA write handler configuration
2856-------------------------------------------------*/
2857 
2858void ppc4xx_device::ppc4xx_set_dma_write_handler(int channel, write32_delegate callback, int rate)
2859{
2860   m_ext_dma_write_cb[channel] = callback;
2861   m_buffered_dma_rate[channel] = rate;
2862}
2863 
2858    specific external DMA write handler configuration
2859-------------------------------------------------*/
2860
2861void ppc4xx_device::ppc4xx_set_dma_write_handler(int channel, ppc4xx_dma_write_handler handler, int rate)
2862{
2863   m_ext_dma_write_handler[channel] = handler;
2864   m_buffered_dma_rate[channel] = rate;
2865}
2866
28642867/*-------------------------------------------------
28652868    ppc4xx_set_dcr_read_handler
28662869-------------------------------------------------*/
trunk/src/emu/video/upd7220.c
r241451r241452
965965   int isize,psize;
966966   UINT16 tile_data = 0;
967967
968   LOG(("uPD7220 char check: %d %d %02x %08x %d %d %02x\n",x,y,m_figs.m_dir,m_ead,m_figs.m_d,m_figs.m_dc,m_figs.m_figure_type));
968   LOG(("uPD7220 char check: %d %d %02x %08x %d %d\n",x,y,m_figs.m_dir,m_ead,m_figs.m_d,m_figs.m_dc));
969969
970970   isize = m_figs.m_d & 0x3ff;
971971   /* Guess: D has presumably upper bits for ysize, QX-10 relies on this (TODO: check this on any real HW) */
r241451r241452
985985               curpixel++;
986986            }
987987         }
988         if(m_figs.m_figure_type == 2)
989         {
990            x += x_dir[(m_figs.m_dir + 2) & 7];
991            y += y_dir[(m_figs.m_dir + 2) & 7];
992         }
993         else
994         {
995            x += x_dir[(m_figs.m_dir + 1) & 7];
996            y += y_dir[(m_figs.m_dir + 1) & 7];
997         }
988         x += x_dir[(m_figs.m_dir + 2) & 7];
989         y += y_dir[(m_figs.m_dir + 2) & 7];
998990      }
999991   }
1000992
r241451r241452
13401332      break;
13411333
13421334   case COMMAND_GCHRD: /* graphics character draw and area filling start */
1343      if((m_figs.m_figure_type & 0xf) == 2)
1335      if(m_figs.m_figure_type == 2)
13441336         draw_char(((m_ead % eff_pitch) << 4) | (m_dad & 0xf),(m_ead / eff_pitch));
13451337      else
13461338         logerror("uPD7220 '%s' Unimplemented command GCHRD %02x\n", tag(),m_figs.m_figure_type);
r241451r241452
13581350      break;
13591351
13601352   case COMMAND_CURD: /* cursor address read */
1361   {
1362      UINT16 dad = 1 << m_dad;
13631353      fifo_set_direction(FIFO_READ);
13641354
13651355      queue(m_ead & 0xff, 0);
13661356      queue((m_ead >> 8) & 0xff, 0);
13671357      queue(m_ead >> 16, 0);
1368      queue(dad & 0xff, 0);
1369      queue(dad >> 8, 0);
1358      queue(m_dad & 0xff, 0);
1359      queue(m_dad >> 8, 0);
13701360
13711361      m_sr |= UPD7220_SR_DATA_READY;
13721362      break;
1373   }
13741363
13751364   case COMMAND_LPRD: /* light pen address read */
13761365      fifo_set_direction(FIFO_READ);
r241451r241452
15411530         addr = sad + (y * m_pitch);
15421531
15431532         if (!m_draw_text_cb.isnull())
1544            m_draw_text_cb(bitmap, addr, (y * m_lr), wd, m_pitch, m_lr, m_dc, m_ead);
1533            m_draw_text_cb(bitmap, addr, y, wd, m_pitch, m_lr, m_dc, m_ead);
15451534      }
15461535
15471536      sy = y + 1;
r241451r241452
16121601               addr = (sad & 0x3ffff) + ((y / m_lr) * m_pitch);
16131602
16141603               if (!m_draw_text_cb.isnull())
1615                  m_draw_text_cb(bitmap, addr, y + tsy, wd, m_pitch, m_lr, m_dc, m_ead);
1604                  m_draw_text_cb(bitmap, addr, (y + tsy) / m_lr, wd, m_pitch, m_lr, m_dc, m_ead);
16161605            }
16171606         }
16181607      }
trunk/src/mame/drivers/cobra.c
r241451r241452
630630   DECLARE_READ64_MEMBER(main_comram_r);
631631   DECLARE_WRITE64_MEMBER(main_comram_w);
632632   DECLARE_READ64_MEMBER(main_fifo_r);
633   DECLARE_WRITE64_MEMBER(main_fifo_w);
634   DECLARE_READ64_MEMBER(main_mpc106_r);
635   DECLARE_WRITE64_MEMBER(main_mpc106_w);
636   DECLARE_WRITE32_MEMBER(main_cpu_dc_store);
637   
638   DECLARE_READ32_MEMBER(sub_comram_r);
639   DECLARE_WRITE32_MEMBER(sub_comram_w);
640   DECLARE_READ32_MEMBER(sub_sound_r);
633   DECLARE_WRITE64_MEMBER(main_fifo_w);
634   DECLARE_READ64_MEMBER(main_mpc106_r);
635   DECLARE_WRITE64_MEMBER(main_mpc106_w);
636
637   DECLARE_READ32_MEMBER(sub_comram_r);
638   DECLARE_WRITE32_MEMBER(sub_comram_w);
639   DECLARE_READ32_MEMBER(sub_sound_r);
641640   DECLARE_WRITE32_MEMBER(sub_sound_w);
642641   DECLARE_READ32_MEMBER(sub_unk7e_r);
643642   DECLARE_WRITE32_MEMBER(sub_debug_w);
r241451r241452
651650   DECLARE_WRITE16_MEMBER(sub_ata0_w);
652651   DECLARE_READ16_MEMBER(sub_ata1_r);
653652   DECLARE_WRITE16_MEMBER(sub_ata1_w);
654   DECLARE_READ32_MEMBER(sub_psac2_r);
655   DECLARE_WRITE32_MEMBER(sub_psac2_w);
656   DECLARE_WRITE32_MEMBER(sub_psac_palette_w);
657   DECLARE_WRITE32_MEMBER(sub_sound_dma_w);
658 
659   DECLARE_WRITE64_MEMBER(gfx_fifo0_w);
660   DECLARE_WRITE64_MEMBER(gfx_fifo1_w);
653   DECLARE_READ32_MEMBER(sub_psac2_r);
654   DECLARE_WRITE32_MEMBER(sub_psac2_w);
655   DECLARE_WRITE32_MEMBER(sub_psac_palette_w);
656
657   DECLARE_WRITE64_MEMBER(gfx_fifo0_w);
658   DECLARE_WRITE64_MEMBER(gfx_fifo1_w);
661659   DECLARE_WRITE64_MEMBER(gfx_fifo2_w);
662660   DECLARE_WRITE64_MEMBER(gfx_debug_state_w);
663661   DECLARE_READ64_MEMBER(gfx_unk1_r);
664   DECLARE_WRITE64_MEMBER(gfx_unk1_w);
665   DECLARE_READ64_MEMBER(gfx_fifo_r);
666   DECLARE_WRITE64_MEMBER(gfx_buf_w);
667   DECLARE_WRITE32_MEMBER(gfx_cpu_dc_store);
668   
669   DECLARE_WRITE8_MEMBER(sub_jvs_w);
670 
671   DECLARE_WRITE_LINE_MEMBER(ide_interrupt);
672 
662   DECLARE_WRITE64_MEMBER(gfx_unk1_w);
663   DECLARE_READ64_MEMBER(gfx_fifo_r);
664   DECLARE_WRITE64_MEMBER(gfx_buf_w);
665
666   DECLARE_WRITE_LINE_MEMBER(ide_interrupt);
667
673668   cobra_renderer *m_renderer;
674669
675670   cobra_fifo *m_gfxfifo_in;
r241451r241452
16011596   UINT32 m2 = (UINT32)(mem_mask);
16021597
16031598   m_comram[page][(offset << 1) + 0] = (w1 & ~m1) | (d1 & m1);
1604   m_comram[page][(offset << 1) + 1] = (w2 & ~m2) | (d2 & m2);
1605}
1606 
1607WRITE32_MEMBER(cobra_state::main_cpu_dc_store)
1608{
1609   if ((offset & 0xf0000000) == 0xc0000000)
1610   {
1611      // force sync when writing to GFX board main ram
1612      m_maincpu->spin_until_time(attotime::from_usec(80));
1613   }
1614}
1615 
1599   m_comram[page][(offset << 1) + 1] = (w2 & ~m2) | (d2 & m2);
1600}
1601
1602static void main_cpu_dc_store(device_t *device, UINT32 address)
1603{
1604   cobra_state *cobra = device->machine().driver_data<cobra_state>();
1605
1606   if ((address & 0xf0000000) == 0xc0000000)
1607   {
1608      // force sync when writing to GFX board main ram
1609      cobra->m_maincpu->spin_until_time(attotime::from_usec(80));
1610   }
1611}
1612
16161613static ADDRESS_MAP_START( cobra_main_map, AS_PROGRAM, 64, cobra_state )
16171614   AM_RANGE(0x00000000, 0x003fffff) AM_RAM
16181615   AM_RANGE(0x07c00000, 0x07ffffff) AM_RAM
r241451r241452
18881885}
18891886
18901887WRITE32_MEMBER(cobra_state::sub_psac2_w)
1891{
1892}
1893 
1894WRITE32_MEMBER(cobra_state::sub_sound_dma_w)
1895{
1896   //printf("DMA write to unknown: size %d, data %08X\n", address, data);
1897 
1898   /*
1899   static FILE *out;
1888{
1889}
1890
1891static void sub_sound_dma_w(device_t *device, int width, UINT32 data)
1892{
1893   //printf("DMA write to unknown: size %d, data %08X\n", width, data);
1894
1895   /*
1896   static FILE *out;
19001897   if (out == NULL)
19011898       out = fopen("sound.bin", "wb");
19021899
19031900   fputc((data >> 24) & 0xff, out);
19041901   fputc((data >> 16) & 0xff, out);
19051902   fputc((data >> 8) & 0xff, out);
1906   fputc((data >> 0) & 0xff, out);
1907   */
1908 
1909   INT16 ldata = (INT16)(data >> 16);
1910   INT16 rdata = (INT16)(data);
1911 
1912   m_sound_dma_buffer_l[m_sound_dma_ptr] = ldata;
1913   m_sound_dma_buffer_r[m_sound_dma_ptr] = rdata;
1914   m_sound_dma_ptr++;
1915 
1916   if (m_sound_dma_ptr >= DMA_SOUND_BUFFER_SIZE)
1917   {
1918      m_sound_dma_ptr = 0;
1919 
1920      dmadac_transfer(&m_dmadac[0], 1, 0, 1, DMA_SOUND_BUFFER_SIZE, m_sound_dma_buffer_l);
1921      dmadac_transfer(&m_dmadac[1], 1, 0, 1, DMA_SOUND_BUFFER_SIZE, m_sound_dma_buffer_r);
1922   }
1923}
1924 
1925WRITE8_MEMBER(cobra_state::sub_jvs_w)
1926{
1927   cobra_jvs_host *jvs = machine().device<cobra_jvs_host>("cobra_jvs_host");
1928 
1929#if LOG_JVS
1930   printf("sub_jvs_w: %02X\n", data);
1903   fputc((data >> 0) & 0xff, out);
1904   */
1905
1906   cobra_state *cobra = device->machine().driver_data<cobra_state>();
1907
1908   INT16 ldata = (INT16)(data >> 16);
1909   INT16 rdata = (INT16)(data);
1910
1911   cobra->m_sound_dma_buffer_l[cobra->m_sound_dma_ptr] = ldata;
1912   cobra->m_sound_dma_buffer_r[cobra->m_sound_dma_ptr] = rdata;
1913   cobra->m_sound_dma_ptr++;
1914
1915   if (cobra->m_sound_dma_ptr >= DMA_SOUND_BUFFER_SIZE)
1916   {
1917      cobra->m_sound_dma_ptr = 0;
1918
1919      dmadac_transfer(&cobra->m_dmadac[0], 1, 0, 1, DMA_SOUND_BUFFER_SIZE, cobra->m_sound_dma_buffer_l);
1920      dmadac_transfer(&cobra->m_dmadac[1], 1, 0, 1, DMA_SOUND_BUFFER_SIZE, cobra->m_sound_dma_buffer_r);
1921   }
1922}
1923
1924static void sub_jvs_w(device_t *device, UINT8 data)
1925{
1926   cobra_state *cobra = device->machine().driver_data<cobra_state>();
1927   cobra_jvs_host *jvs = downcast<cobra_jvs_host *>(device->machine().device("cobra_jvs_host"));
1928
1929#if LOG_JVS
1930   printf("sub_jvs_w: %02X\n", data);
19311931#endif
19321932
19331933   const UINT8 *rec_data;
r241451r241452
19451945      }
19461946      printf("\n");
19471947#endif
1948 
1949      for (int i=0; i < rec_size; i++)
1950      {
1951         m_subcpu->ppc4xx_spu_receive_byte(rec_data[i]);
1952      }
1953   }
1954}
19551948
1949      for (int i=0; i < rec_size; i++)
1950      {
1951         cobra->m_subcpu->ppc4xx_spu_receive_byte(rec_data[i]);
1952      }
1953   }
1954}
1955
19561956static ADDRESS_MAP_START( cobra_sub_map, AS_PROGRAM, 32, cobra_state )
19571957   AM_RANGE(0x00000000, 0x003fffff) AM_MIRROR(0x80000000) AM_RAM                                           // Main RAM
19581958   AM_RANGE(0x70000000, 0x7003ffff) AM_MIRROR(0x80000000) AM_READWRITE(sub_comram_r, sub_comram_w)         // Double buffered shared RAM between Main and Sub
r241451r241452
29882988      // prc_read always expects a value...
29892989
29902990      m_gfxfifo_out->push(&space.device(), 0);
2991   }
2992}
2993 
2994WRITE32_MEMBER(cobra_state::gfx_cpu_dc_store)
2995{
2996   UINT32 addr = offset >> 24;
2997   if (addr == 0x10 || addr == 0x18 || addr == 0x1e)
2998   {
2999      UINT64 i = (UINT64)(m_gfx_fifo_cache_addr) << 32;
3000      cobra_fifo *fifo_in = m_gfxfifo_in;
3001 
3002      UINT32 a = (offset / 8) & 0xff;
3003 
3004      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+0] >> 32) | i);
3005      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+0] >>  0) | i);
3006      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+1] >> 32) | i);
3007      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+1] >>  0) | i);
3008      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+2] >> 32) | i);
3009      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+2] >>  0) | i);
3010      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+3] >> 32) | i);
3011      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+3] >>  0) | i);
3012 
3013      m_renderer->gfx_fifo_exec();
3014   }
3015   else
3016   {
3017      logerror("gfx: data cache store at %08X\n", offset);
3018   }
3019}
3020 
2991   }
2992}
2993
2994static void gfx_cpu_dc_store(device_t *device, UINT32 address)
2995{
2996   cobra_state *cobra = device->machine().driver_data<cobra_state>();
2997
2998   UINT32 addr = address >> 24;
2999   if (addr == 0x10 || addr == 0x18 || addr == 0x1e)
3000   {
3001      UINT64 i = (UINT64)(cobra->m_gfx_fifo_cache_addr) << 32;
3002      cobra_fifo *fifo_in = cobra->m_gfxfifo_in;
3003
3004      UINT32 a = (address / 8) & 0xff;
3005
3006      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+0] >> 32) | i);
3007      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+0] >>  0) | i);
3008      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+1] >> 32) | i);
3009      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+1] >>  0) | i);
3010      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+2] >> 32) | i);
3011      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+2] >>  0) | i);
3012      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+3] >> 32) | i);
3013      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+3] >>  0) | i);
3014
3015      cobra->m_renderer->gfx_fifo_exec();
3016   }
3017   else
3018   {
3019      logerror("gfx: data cache store at %08X\n", address);
3020   }
3021}
3022
30213023WRITE64_MEMBER(cobra_state::gfx_debug_state_w)
30223024{
30233025   if (ACCESSING_BITS_40_47)
r241451r241452
32583260                        2048,
32593261                        "S2MFIFO",
32603262                        S2MFIFO_VERBOSE != 0,
3261                        cobra_fifo::event_delegate(FUNC(cobra_state::s2mfifo_event_callback), this))
3262                        );
3263 
3264   m_maincpu->ppc_set_dcstore_callback(write32_delegate(FUNC(cobra_state::main_cpu_dc_store),this));
3265 
3266   m_gfxcpu->ppc_set_dcstore_callback(write32_delegate(FUNC(cobra_state::gfx_cpu_dc_store), this));
3267 
3268   m_subcpu->ppc4xx_set_dma_write_handler(0, write32_delegate(FUNC(cobra_state::sub_sound_dma_w), this), 44100);
3269   m_subcpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(cobra_state::sub_jvs_w), this));
3270 
3271 
3272   m_comram[0] = auto_alloc_array(machine(), UINT32, 0x40000/4);
3263                        cobra_fifo::event_delegate(FUNC(cobra_state::s2mfifo_event_callback), this))
3264                        );
3265
3266   m_maincpu->ppc_set_dcstore_callback(main_cpu_dc_store);
3267
3268   m_gfxcpu->ppc_set_dcstore_callback(gfx_cpu_dc_store);
3269
3270   m_subcpu->ppc4xx_set_dma_write_handler(0, sub_sound_dma_w, 44100);
3271   m_subcpu->ppc4xx_spu_set_tx_handler(sub_jvs_w);
3272
3273
3274   m_comram[0] = auto_alloc_array(machine(), UINT32, 0x40000/4);
32733275   m_comram[1] = auto_alloc_array(machine(), UINT32, 0x40000/4);
32743276
32753277   m_comram_page = 0;
trunk/src/mame/drivers/firebeat.c
r241451r241452
256256   void gcu_exec_display_list(bitmap_ind16 &bitmap, const rectangle &cliprect, int chip, UINT32 address);
257257   UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int chip);
258258   UINT32 GCU_r(int chip, UINT32 offset, UINT32 mem_mask);
259   void GCU_w(int chip, UINT32 offset, UINT32 data, UINT32 mem_mask);
260   void set_ibutton(UINT8 *data);
261   int ibutton_w(UINT8 data);
262   DECLARE_WRITE8_MEMBER(security_w);
263   void init_lights(write32_delegate out1, write32_delegate out2, write32_delegate out3);
264   void init_firebeat();
265   void init_keyboard();
259   void GCU_w(int chip, UINT32 offset, UINT32 data, UINT32 mem_mask);
260   void set_ibutton(UINT8 *data);
261   int ibutton_w(UINT8 data);
262   void init_lights(write32_delegate out1, write32_delegate out2, write32_delegate out3);
263   void init_firebeat();
264   void init_keyboard();
266265   DECLARE_WRITE_LINE_MEMBER(sound_irq_callback);
267266   DECLARE_WRITE_LINE_MEMBER(midi_uart_ch0_irq_callback);
268267   DECLARE_WRITE_LINE_MEMBER(midi_uart_ch1_irq_callback);
r241451r241452
19471946      }
19481947   }
19491948
1950   return r;
1951}
1952 
1953WRITE8_MEMBER(firebeat_state::security_w)
1954{
1955   int r = ibutton_w(data);
1956   if (r >= 0)
1957      m_maincpu->ppc4xx_spu_receive_byte(r);
1958}
1959 
1960/*****************************************************************************/
1949   return r;
1950}
19611951
1952static void security_w(device_t *device, UINT8 data)
1953{
1954   firebeat_state *state = device->machine().driver_data<firebeat_state>();
1955   int r = state->ibutton_w(data);
1956   if (r >= 0)
1957      state->m_maincpu->ppc4xx_spu_receive_byte(r);
1958}
1959
1960/*****************************************************************************/
1961
19621962void firebeat_state::init_lights(write32_delegate out1, write32_delegate out2, write32_delegate out3)
19631963{
19641964   if(out1.isnull()) out1 = write32_delegate(FUNC(firebeat_state::lamp_output_w),this);
r241451r241452
19791979
19801980   m_extend_board_irq_enable = 0x3f;
19811981   m_extend_board_irq_active = 0x00;
1982 
1983   m_cur_cab_data = cab_data;
1984 
1985   m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(firebeat_state::security_w), this));
1986 
1987   set_ibutton(rom);
1988 
1982
1983   m_cur_cab_data = cab_data;
1984
1985   m_maincpu->ppc4xx_spu_set_tx_handler(security_w);
1986
1987   set_ibutton(rom);
1988
19891989   init_lights(write32_delegate(), write32_delegate(), write32_delegate());
19901990}
19911991
trunk/src/mame/drivers/gts3.c
r241451r241452
1// license:MAME
2// copyright-holders:Robbbert
31/****************************************************************************************************
42
53  PINBALL
trunk/src/mame/drivers/gts3a.c
r241451r241452
1// license:MAME
2// copyright-holders:Robbbert
31/****************************************************************************************************
42
53  PINBALL
trunk/src/mame/drivers/gts80.c
r241451r241452
1// license:MAME
2// copyright-holders:Robbbert
31/***********************************************************************************************************
42
53  PINBALL
trunk/src/mame/drivers/gts80a.c
r241451r241452
1// license:MAME
2// copyright-holders:Robbbert
31/****************************************************************************************************************
42
53  PINBALL
trunk/src/mame/drivers/gts80b.c
r241451r241452
1// license:MAME
2// copyright-holders:Robbbert
31/****************************************************************************************************************
42
53  PINBALL
trunk/src/mame/drivers/hornet.c
r241451r241452
402402   DECLARE_WRITE32_MEMBER(dsp_dataram1_w);
403403   DECLARE_WRITE_LINE_MEMBER(voodoo_vblank_0);
404404   DECLARE_WRITE_LINE_MEMBER(voodoo_vblank_1);
405   DECLARE_WRITE16_MEMBER(soundtimer_en_w);
406   DECLARE_WRITE16_MEMBER(soundtimer_count_w);
407   ADC12138_IPT_CONVERT_CB(adc12138_input_callback);
408   DECLARE_WRITE8_MEMBER(jamma_jvs_w);
409 
410   DECLARE_DRIVER_INIT(hornet);
411   DECLARE_DRIVER_INIT(hornet_2board);
405   DECLARE_WRITE16_MEMBER(soundtimer_en_w);
406   DECLARE_WRITE16_MEMBER(soundtimer_count_w);
407   ADC12138_IPT_CONVERT_CB(adc12138_input_callback);
408
409   DECLARE_DRIVER_INIT(hornet);
410   DECLARE_DRIVER_INIT(hornet_2board);
412411   virtual void machine_start();
413412   virtual void machine_reset();
414413   DECLARE_MACHINE_RESET(hornet_2board);
r241451r241452
11361135   MCFG_EEPROM_SERIAL_93C46_ADD("lan_eeprom")
11371136MACHINE_CONFIG_END
11381137
1139 
1140/*****************************************************************************/
1141 
1142WRITE8_MEMBER(hornet_state::jamma_jvs_w)
1143{
1144   if (m_jvs_sdata_ptr == 0 && data != 0xe0)
1145      return;
1146   m_jvs_sdata[m_jvs_sdata_ptr] = data;
1147   m_jvs_sdata_ptr++;
1148 
1149   if (m_jvs_sdata_ptr >= 3 && m_jvs_sdata_ptr >= 3 + m_jvs_sdata[2])
1150      jamma_jvs_cmd_exec();
1151}
1152 
1153int hornet_state::jvs_encode_data(UINT8 *in, int length)
1138
1139/*****************************************************************************/
1140
1141static void jamma_jvs_w(device_t *device, UINT8 data)
11541142{
1143   hornet_state *state = device->machine().driver_data<hornet_state>();
1144   if (state->m_jvs_sdata_ptr == 0 && data != 0xe0)
1145      return;
1146   state->m_jvs_sdata[state->m_jvs_sdata_ptr] = data;
1147   state->m_jvs_sdata_ptr++;
1148
1149   if (state->m_jvs_sdata_ptr >= 3 && state->m_jvs_sdata_ptr >= 3 + state->m_jvs_sdata[2])
1150      state->jamma_jvs_cmd_exec();
1151}
1152
1153int hornet_state::jvs_encode_data(UINT8 *in, int length)
1154{
11551155   int inptr = 0;
11561156   int sum = 0;
11571157
r241451r241452
12801280
12811281DRIVER_INIT_MEMBER(hornet_state,hornet)
12821282{
1283   m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base());
1284   m_led_reg0 = m_led_reg1 = 0x7f;
1285 
1286   m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(hornet_state::jamma_jvs_w), this));
1287}
1288 
1289DRIVER_INIT_MEMBER(hornet_state,hornet_2board)
1283   m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base());
1284   m_led_reg0 = m_led_reg1 = 0x7f;
1285
1286   m_maincpu->ppc4xx_spu_set_tx_handler(jamma_jvs_w);
1287}
1288
1289DRIVER_INIT_MEMBER(hornet_state,hornet_2board)
12901290{
12911291   m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base());
1292   m_konppc->set_cgboard_texture_bank(1, "bank6", memregion("user5")->base());
1293   m_led_reg0 = m_led_reg1 = 0x7f;
1294 
1295   m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(hornet_state::jamma_jvs_w), this));
1296}
1297 
1298/*****************************************************************************/
1292   m_konppc->set_cgboard_texture_bank(1, "bank6", memregion("user5")->base());
1293   m_led_reg0 = m_led_reg1 = 0x7f;
12991294
1295   m_maincpu->ppc4xx_spu_set_tx_handler(jamma_jvs_w);
1296}
1297
1298/*****************************************************************************/
1299
13001300ROM_START(sscope)
13011301   ROM_REGION32_BE(0x400000, "user1", 0)   /* PowerPC program */
13021302   ROM_LOAD16_WORD_SWAP("830d01.27p", 0x200000, 0x200000, CRC(de9b3dfa) SHA1(660652a5f745cb04687481c3626d8a43cd169193) )
trunk/src/mame/drivers/inder.c
r241451r241452
1// license:MAME
2// copyright-holders:Robbbert
31/*******************************************************************************************************
42
53  PINBALL
trunk/src/mame/drivers/spinb.c
r241451r241452
1// license:MAME
2// copyright-holders:Robbbert
31/***************************************************************************************************
42
53  PINBALL
r241451r241452
574572   if (m_game)
575573   {
576574      ma = ((ma - 0x200) & 0x1c00) + 0x200;
577      if (ma > 0x1c00) return 1; // not initialised yet
578575
579576      for(y=0; y<32; y++)
580577      {
581578         UINT16 *p = &bitmap.pix16(sy++);
582579         for(x = 0; x < 16; x++)
583580         {
581            assert((ma + 0x200) > 0 && (ma + 0x200) < ARRAY_LENGTH(m_dmdram));
584582            gfx = m_dmdram[ma+0x200];
585583            gfx1 = m_dmdram[ma++];
586584
trunk/src/mame/drivers/vamphalf.c
r241451r241452
167167   DECLARE_WRITE32_MEMBER(yorizori_1c_w);
168168   DECLARE_READ32_MEMBER(yorizori_10_r);
169169
170
171
170172   DECLARE_READ8_MEMBER(qs1000_p1_r);
171173   DECLARE_WRITE8_MEMBER(qs1000_p3_w);
172174   DECLARE_DRIVER_INIT(vamphalf);
r241451r241452
190192   DECLARE_DRIVER_INIT(yorizori);
191193   UINT32 screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
192194   UINT32 screen_update_aoh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
193   void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap);
194   void draw_sprites_aoh(screen_device &screen, bitmap_ind16 &bitmap);
195   void handle_flipped_visible_area(screen_device &screen);
196195};
197196
198197READ16_MEMBER(vamphalf_state::eeprom_r)
r241451r241452
609608Offset+3
610609-------x xxxxxxxx X offs
611610*/
612void vamphalf_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap)
611static void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap)
613612{
614   gfx_element *gfx = m_gfxdecode->gfx(0);
613   vamphalf_state *state = screen.machine().driver_data<vamphalf_state>();
614   gfx_element *gfx = state->m_gfxdecode->gfx(0);
615615   UINT32 cnt;
616616   int block, offs;
617617   int code,color,x,y,fx,fy;
r241451r241452
622622
623623   for (block=0; block<0x8000; block+=0x800)
624624   {
625      if(m_flipscreen)
625      if(state->m_flipscreen)
626626      {
627627         clip.min_y = 256 - (16-(block/0x800))*16;
628628         clip.max_y = 256 - ((16-(block/0x800))*16)+15;
r241451r241452
644644         offs = (block + cnt) / 2;
645645
646646         // 16bit version
647         if(m_tiles != NULL)
647         if(state->m_tiles != NULL)
648648         {
649            if(m_tiles[offs] & 0x0100) continue;
649            if(state->m_tiles[offs] & 0x0100) continue;
650650
651            code  = m_tiles[offs+1];
652            color = (m_tiles[offs+2] >> m_palshift) & 0x7f;
651            code  = state->m_tiles[offs+1];
652            color = (state->m_tiles[offs+2] >> state->m_palshift) & 0x7f;
653653
654654            // boonggab
655            if(m_has_extra_gfx)
655            if(state->m_has_extra_gfx)
656656            {
657               code  |= ((m_tiles[offs+2] & 0x100) << 8);
657               code  |= ((state->m_tiles[offs+2] & 0x100) << 8);
658658            }
659659
660            x = m_tiles[offs+3] & 0x01ff;
661            y = 256 - (m_tiles[offs] & 0x00ff);
660            x = state->m_tiles[offs+3] & 0x01ff;
661            y = 256 - (state->m_tiles[offs] & 0x00ff);
662662
663            fx = m_tiles[offs] & 0x8000;
664            fy = m_tiles[offs] & 0x4000;
663            fx = state->m_tiles[offs] & 0x8000;
664            fy = state->m_tiles[offs] & 0x4000;
665665         }
666666         // 32bit version
667667         else
668668         {
669669            offs /= 2;
670670
671            if(m_tiles32[offs] & 0x01000000) continue;
671            if(state->m_tiles32[offs] & 0x01000000) continue;
672672
673            code  = m_tiles32[offs] & 0xffff;
674            color = ((m_tiles32[offs+1] >> m_palshift) & 0x7f0000) >> 16;
673            code  = state->m_tiles32[offs] & 0xffff;
674            color = ((state->m_tiles32[offs+1] >> state->m_palshift) & 0x7f0000) >> 16;
675675
676            x = m_tiles32[offs+1] & 0x01ff;
677            y = 256 - ((m_tiles32[offs] & 0x00ff0000) >> 16);
676            x = state->m_tiles32[offs+1] & 0x01ff;
677            y = 256 - ((state->m_tiles32[offs] & 0x00ff0000) >> 16);
678678
679            fx = m_tiles32[offs] & 0x80000000;
680            fy = m_tiles32[offs] & 0x40000000;
679            fx = state->m_tiles32[offs] & 0x80000000;
680            fy = state->m_tiles32[offs] & 0x40000000;
681681         }
682682
683         if(m_flipscreen)
683         if(state->m_flipscreen)
684684         {
685685            fx = !fx;
686686            fy = !fy;
r241451r241452
694694   }
695695}
696696
697void vamphalf_state::draw_sprites_aoh(screen_device &screen, bitmap_ind16 &bitmap)
697static void draw_sprites_aoh(screen_device &screen, bitmap_ind16 &bitmap)
698698{
699   gfx_element *gfx = m_gfxdecode->gfx(0);
699   vamphalf_state *state = screen.machine().driver_data<vamphalf_state>();
700   gfx_element *gfx = state->m_gfxdecode->gfx(0);
700701   UINT32 cnt;
701702   int block, offs;
702703   int code,color,x,y,fx,fy;
r241451r241452
707708
708709   for (block=0; block<0x8000; block+=0x800)
709710   {
710      if(m_flipscreen)
711      if(state->m_flipscreen)
711712      {
712713         clip.min_y = 256 - (16-(block/0x800))*16;
713714         clip.max_y = 256 - ((16-(block/0x800))*16)+15;
r241451r241452
730731         offs = (block + cnt) / 2;
731732         {
732733            offs /= 2;
733            code  = (m_tiles32[offs] & 0xffff) | ((m_tiles32[offs] & 0x3000000) >> 8);
734            color = ((m_tiles32[offs+1] >> m_palshift) & 0x7f0000) >> 16;
734            code  = (state->m_tiles32[offs] & 0xffff) | ((state->m_tiles32[offs] & 0x3000000) >> 8);
735            color = ((state->m_tiles32[offs+1] >> state->m_palshift) & 0x7f0000) >> 16;
735736
736            x = m_tiles32[offs+1] & 0x01ff;
737            y = 256 - ((m_tiles32[offs] & 0x00ff0000) >> 16);
737            x = state->m_tiles32[offs+1] & 0x01ff;
738            y = 256 - ((state->m_tiles32[offs] & 0x00ff0000) >> 16);
738739
739            fx = m_tiles32[offs] & 0x4000000;
740            fy = 0; // not used ? or it's m_tiles32[offs] & 0x8000000?
740            fx = state->m_tiles32[offs] & 0x4000000;
741            fy = 0; // not used ? or it's state->m_tiles32[offs] & 0x8000000?
741742         }
742743
743         if(m_flipscreen)
744         if(state->m_flipscreen)
744745         {
745746            fx = !fx;
746747            fy = !fy;
r241451r241452
755756}
756757
757758
758void vamphalf_state::handle_flipped_visible_area( screen_device &screen )
759void vamphalf_handle_flipped_visible_area( screen_device &screen )
759760{
761   vamphalf_state *state = screen.machine().driver_data<vamphalf_state>();
760762   // are there actually registers to handle this?
761   if(!m_flipscreen)
763   if(!state->m_flipscreen)
762764   {
763765      rectangle visarea;
764766      visarea.set(31, 350, 16, 251);
r241451r241452
775777
776778UINT32 vamphalf_state::screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
777779{
778   handle_flipped_visible_area(screen);
780   vamphalf_handle_flipped_visible_area(screen);
779781   bitmap.fill(0, cliprect);
780782   draw_sprites(screen, bitmap);
781783   return 0;
r241451r241452
783785
784786UINT32 vamphalf_state::screen_update_aoh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
785787{
786//  handle_flipped_visible_area(screen); // not on this?
788//  vamphalf_handle_flipped_visible_area(screen); // not on this?
787789   bitmap.fill(0, cliprect);
788790   draw_sprites_aoh(screen, bitmap);
789791   return 0;
trunk/src/mess/drivers/a5105.c
r241451r241452
136136            int pen = (tile_data >> xi) & 1 ? color : 0;
137137
138138            res_x = x * 8 + xi;
139            res_y = y + yi;
139            res_y = y * lr + yi;
140140
141141            if(yi >= 8) { pen = 0; }
142142
143            if(!machine().first_screen()->visible_area().contains(res_x+0, res_y))
143            /* TODO: pitch is currently 40, this should actually go in the upd7220 device */
144            if(!machine().first_screen()->visible_area().contains(res_x*2+0, res_y))
144145               continue;
145146
146            bitmap.pix32(res_y, res_x) = palette[pen];
147            bitmap.pix32(res_y, res_x*2+0) = palette[pen];
148
149            if(!machine().first_screen()->visible_area().contains(res_x*2+1, res_y))
150               continue;
151
152            bitmap.pix32(res_y, res_x*2+1) = palette[pen];
147153         }
148154      }
149155   }
trunk/src/mess/drivers/alphasma.c
r241451r241452
2828         m_lcdc1(*this, "ks0066_1"),
2929         m_nvram(*this, "nvram"),
3030         m_rambank(*this, "rambank"),
31         m_keyboard(*this, "COL"),
31         m_io_col0(*this, "COL0"),
32         m_io_col1(*this, "COL1"),
33         m_io_col2(*this, "COL2"),
34         m_io_col3(*this, "COL3"),
35         m_io_col4(*this, "COL4"),
36         m_io_col5(*this, "COL5"),
37         m_io_col6(*this, "COL6"),
38         m_io_col7(*this, "COL7"),
39         m_io_col8(*this, "COL8"),
40         m_io_col9(*this, "COL9"),
41         m_io_cola(*this, "COLA"),
42         m_io_colb(*this, "COLB"),
43         m_io_colc(*this, "COLC"),
44         m_io_cold(*this, "COLD"),
45         m_io_cole(*this, "COLE"),
46         m_io_colf(*this, "COLF"),
3247         m_battery_status(*this, "BATTERY")
3348      { }
3449
r241451r241452
3752   required_device<hd44780_device> m_lcdc1;
3853   required_device<nvram_device> m_nvram;
3954   required_memory_bank m_rambank;
40   required_ioport_array<16> m_keyboard;
55   required_ioport m_io_col0;
56   required_ioport m_io_col1;
57   required_ioport m_io_col2;
58   required_ioport m_io_col3;
59   required_ioport m_io_col4;
60   required_ioport m_io_col5;
61   required_ioport m_io_col6;
62   required_ioport m_io_col7;
63   required_ioport m_io_col8;
64   required_ioport m_io_col9;
65   required_ioport m_io_cola;
66   required_ioport m_io_colb;
67   required_ioport m_io_colc;
68   required_ioport m_io_cold;
69   required_ioport m_io_cole;
70   required_ioport m_io_colf;
4171   required_ioport m_battery_status;
4272
4373   virtual void machine_start();
r241451r241452
5080   DECLARE_WRITE8_MEMBER(kb_matrixl_w);
5181   DECLARE_WRITE8_MEMBER(kb_matrixh_w);
5282   DECLARE_READ8_MEMBER(port_a_r);
53   virtual DECLARE_WRITE8_MEMBER(port_a_w);
83   DECLARE_WRITE8_MEMBER(port_a_w);
5484   DECLARE_READ8_MEMBER(port_d_r);
5585   DECLARE_WRITE8_MEMBER(port_d_w);
56   void update_lcdc(address_space &space, bool lcdc0, bool lcdc1);
5786
58protected:
87private:
5988   UINT8           m_matrix[2];
6089   UINT8           m_port_a;
6190   UINT8           m_port_d;
6291   bitmap_ind16 *  m_tmp_bitmap;
6392};
6493
65class asma2k_state : public alphasmart_state
66{
67public:
68   asma2k_state(const machine_config &mconfig, device_type type, const char *tag)
69      : alphasmart_state(mconfig, type, tag),
70         m_intram(*this, "internal_ram")
71      { }
72
73   required_shared_ptr<UINT8> m_intram;
74
75   DECLARE_READ8_MEMBER(io_r);
76   DECLARE_WRITE8_MEMBER(io_w);
77   DECLARE_WRITE8_MEMBER(port_a_w);
78
79private:
80   UINT8 m_lcd_ctrl;
81};
82
8394INPUT_CHANGED_MEMBER(alphasmart_state::kb_irq)
8495{
8596   m_maincpu->set_input_line(MC68HC11_IRQ_LINE, HOLD_LINE);
r241451r241452
8798
8899READ8_MEMBER(alphasmart_state::kb_r)
89100{
101   ioport_port* portnames[] =
102   {
103      m_io_col0, m_io_col1, m_io_col2, m_io_col3, m_io_col4, m_io_col5, m_io_col6, m_io_col7,
104      m_io_col8, m_io_col9, m_io_cola, m_io_colb, m_io_colc, m_io_cold, m_io_cole, m_io_colf
105   };
106
90107   UINT16 matrix = (m_matrix[1]<<8) | m_matrix[0];
91108   UINT8 data = 0xff;
92109
93110   for(int i=0; i<16; i++)
94111      if (!(matrix & (1<<i)))
95         data &= m_keyboard[i]->read();
112         data &= portnames[i]->read();
96113
97114   return data;
98115}
r241451r241452
112129   return (m_port_a & 0xfd) | (m_battery_status->read() << 1);
113130}
114131
115void alphasmart_state::update_lcdc(address_space &space, bool lcdc0, bool lcdc1)
132WRITE8_MEMBER(alphasmart_state::port_a_w)
116133{
117   if (m_matrix[1] & 0x04)
134   if ((m_matrix[1] & 0x04))
118135   {
119136      UINT8 lcdc_data = 0;
120137
121      if (lcdc0)
138      if ((m_port_a ^ data) & 0x80)
122139         lcdc_data |= m_lcdc0->read(space, BIT(m_matrix[1], 1));
123140
124      if (lcdc1)
141      if ((m_port_a ^ data) & 0x20)
125142         lcdc_data |= m_lcdc1->read(space, BIT(m_matrix[1], 1));
126143
127144      m_port_d = (m_port_d & 0xc3) | (lcdc_data>>2);
r241451r241452
130147   {
131148      UINT8 lcdc_data = (m_port_d<<2) & 0xf0;
132149
133      if (lcdc0)
150      if ((m_port_a ^ data) & data & 0x80)
134151         m_lcdc0->write(space, BIT(m_matrix[1], 1), lcdc_data);
135152
136      if (lcdc1)
153      if ((m_port_a ^ data) & data & 0x20)
137154         m_lcdc1->write(space, BIT(m_matrix[1], 1), lcdc_data);
138155   }
139}
140156
141WRITE8_MEMBER(alphasmart_state::port_a_w)
142{
143   UINT8 changed = (m_port_a ^ data) & data;
144   update_lcdc(space, changed & 0x80, changed & 0x20);
145157   m_rambank->set_entry(((data>>3) & 0x01) | ((data>>4) & 0x02));
146158   m_port_a = data;
147159}
r241451r241452
172184   AM_RANGE( MC68HC11_IO_PORTD, MC68HC11_IO_PORTD ) AM_READWRITE(port_d_r, port_d_w)
173185ADDRESS_MAP_END
174186
175READ8_MEMBER(asma2k_state::io_r)
176{
177   if (offset == 0x2000)
178      return kb_r(space, offset);
179
180   //else printf("unknown r: %x\n", offset);
181
182   return 0;
183}
184
185WRITE8_MEMBER(asma2k_state::io_w)
186{
187   if (offset == 0x2000)
188      kb_matrixh_w(space, offset, data);
189   else if (offset == 0x4000)
190   {
191      UINT8 changed = (m_lcd_ctrl ^ data) & data;
192      update_lcdc(space, changed & 0x01, changed & 0x02);
193      m_lcd_ctrl = data;
194   }
195
196   //else printf("unknown w: %x %x\n", offset, data);
197}
198
199WRITE8_MEMBER(asma2k_state::port_a_w)
200{
201   if ((m_port_a ^ data) & 0x40)
202   {
203      address_space &space = m_maincpu->space(AS_PROGRAM);
204
205      if (data & 0x40)
206         space.install_readwrite_bank(0x0000, 0x7fff, "rambank");
207      else
208         space.install_readwrite_handler(0x0000, 0x7fff, read8_delegate(FUNC(asma2k_state::io_r), this), write8_delegate(FUNC(asma2k_state::io_w), this));
209
210      // internal registers / RAM
211      space.nop_readwrite(0x00, 0x3f);
212      space.install_ram(0x40, 0xff, m_intram.target());
213   }
214
215   m_rambank->set_entry(((data>>4) & 0x03));
216   m_port_a = data;
217}
218
219
220static ADDRESS_MAP_START(asma2k_mem, AS_PROGRAM, 8, asma2k_state)
187static ADDRESS_MAP_START(asma2k_mem, AS_PROGRAM, 8, alphasmart_state)
221188   ADDRESS_MAP_UNMAP_HIGH
222189   AM_RANGE( 0x0000, 0x003f ) AM_NOP   // internal registers
223   AM_RANGE( 0x0040, 0x00ff ) AM_RAM AM_SHARE("internal_ram")   // internal RAM
190   AM_RANGE( 0x0040, 0x00ff ) AM_RAM   // internal RAM
224191   AM_RANGE( 0x0000, 0x7fff ) AM_RAMBANK("rambank")
225   AM_RANGE( 0x9000, 0x9000 ) AM_WRITE(kb_matrixl_w)
226192   AM_RANGE( 0x8000, 0xffff ) AM_ROM   AM_REGION("maincpu", 0)
227193ADDRESS_MAP_END
228194
229195/* Input ports */
230196static INPUT_PORTS_START( alphasmart )
231   PORT_START("COL.0")
197   PORT_START("COL0")
232198   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F8)    PORT_CHAR(UCHAR_MAMEKEY(F1))   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
233199   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
234200   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F7)    PORT_CHAR(UCHAR_MAMEKEY(F7))   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241451r241452
237203   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9)     PORT_CHAR('9') PORT_CHAR('(')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
238204   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O)     PORT_CHAR('o') PORT_CHAR('O')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
239205   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP)  PORT_CHAR('.') PORT_CHAR('>')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
240   PORT_START("COL.1")
206   PORT_START("COL1")
241207   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5)     PORT_CHAR('5') PORT_CHAR('%')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
242208   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G)     PORT_CHAR('g') PORT_CHAR('G')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
243209   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T)     PORT_CHAR('t') PORT_CHAR('T')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241451r241452
246212   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4)     PORT_CHAR('4') PORT_CHAR('$')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
247213   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R)     PORT_CHAR('r') PORT_CHAR('R')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
248214   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V)     PORT_CHAR('v') PORT_CHAR('V')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
249   PORT_START("COL.2")
215   PORT_START("COL2")
250216   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6)     PORT_CHAR('6') PORT_CHAR('^')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
251217   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H)     PORT_CHAR('h') PORT_CHAR('H')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
252218   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y)     PORT_CHAR('y') PORT_CHAR('Y')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241451r241452
255221   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7)     PORT_CHAR('7') PORT_CHAR('&')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
256222   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U)     PORT_CHAR('u') PORT_CHAR('U')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
257223   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M)     PORT_CHAR('m') PORT_CHAR('M')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
258   PORT_START("COL.3")
224   PORT_START("COL3")
259225   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
260226   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'')    PORT_CHAR('\"') PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
261227   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241451r241452
264230   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0)     PORT_CHAR('0') PORT_CHAR(')')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
265231   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P)     PORT_CHAR('p') PORT_CHAR('P')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
266232   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED)
267   PORT_START("COL.4")
233   PORT_START("COL4")
268234   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Enter") PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
269235   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
270236   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
r241451r241452
273239   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
274240   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
275241   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED)
276   PORT_START("COL.5")
242   PORT_START("COL5")
277243   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
278244   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
279245   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
r241451r241452
282248   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
283249   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
284250   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_END)  PORT_CHAR(UCHAR_MAMEKEY(END))    PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
285   PORT_START("COL.6")
251   PORT_START("COL6")
286252   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
287253   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LWIN) PORT_CODE(KEYCODE_PGUP)  PORT_NAME("Left Command") PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
288254   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
r241451r241452
291257   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_DEL)  PORT_NAME("Clear File") PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
292258   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME))   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
293259   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED)
294   PORT_START("COL.7")
260   PORT_START("COL7")
295261   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F12) PORT_NAME("Send") PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
296262   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
297263   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
r241451r241452
300266   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
301267   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
302268   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_INSERT)   PORT_CHAR(UCHAR_MAMEKEY(INSERT)) PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
303   PORT_START("COL.8")
269   PORT_START("COL8")
304270   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
305271   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
306272   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
r241451r241452
309275   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
310276   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
311277   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED)
312   PORT_START("COL.9")
278   PORT_START("COL9")
313279   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LALT) PORT_NAME("Left Alt/Option") PORT_CHAR(UCHAR_MAMEKEY(LALT))   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
314280   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
315281   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
r241451r241452
318284   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
319285   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
320286   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_RALT) PORT_NAME("Right Alt/Option") PORT_CHAR(UCHAR_MAMEKEY(LALT))   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
321   PORT_START("COL.10")
287   PORT_START("COLA")
322288   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=')    PORT_CHAR('+') PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
323289   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F6)   PORT_CHAR(UCHAR_MAMEKEY(F6)) PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
324290   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']')    PORT_CHAR('}') PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241451r241452
327293   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8)    PORT_CHAR('8')  PORT_CHAR('*')   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
328294   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I)    PORT_CHAR('i')  PORT_CHAR('I')   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
329295   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
330   PORT_START("COL.11")
296   PORT_START("COLB")
331297   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F9)   PORT_NAME("Pause") PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
332298   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F5)        PORT_CHAR(UCHAR_MAMEKEY(F5))     PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
333299   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("Backspace") PORT_CHAR(UCHAR_MAMEKEY(BACKSPACE)) PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241451r241452
336302   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F10)  PORT_NAME("ScrLk") PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
337303   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
338304   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER)   PORT_NAME("Return") PORT_CHAR(13) PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
339   PORT_START("COL.12")
305   PORT_START("COLC")
340306   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F2)   PORT_CHAR(UCHAR_MAMEKEY(F2))    PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
341307   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F4)   PORT_CHAR(UCHAR_MAMEKEY(F4))    PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
342308   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F3)   PORT_CHAR(UCHAR_MAMEKEY(F3))    PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241451r241452
345311   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3)    PORT_CHAR('3')  PORT_CHAR('#')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
346312   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E)    PORT_CHAR('e')  PORT_CHAR('E')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
347313   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C)    PORT_CHAR('c')  PORT_CHAR('C')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
348   PORT_START("COL.13")
314   PORT_START("COLD")
349315   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F1)   PORT_CHAR(UCHAR_MAMEKEY(F1))    PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
350316   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
351317   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241451r241452
354320   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2)    PORT_CHAR('2')  PORT_CHAR('@')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
355321   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W)    PORT_CHAR('w')  PORT_CHAR('W')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
356322   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X)    PORT_CHAR('x')  PORT_CHAR('X')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
357   PORT_START("COL.14")
323   PORT_START("COLE")
358324   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('`') PORT_CHAR('~')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
359325   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ESC)  PORT_CHAR(UCHAR_MAMEKEY(ESC))   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
360326   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TAB)  PORT_CHAR('\t')   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241451r241452
363329   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1)    PORT_CHAR('1')  PORT_CHAR('!')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
364330   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q)    PORT_CHAR('q')  PORT_CHAR('Q')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
365331   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z)    PORT_CHAR('z')  PORT_CHAR('Z')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
366   PORT_START("COL.15")
332   PORT_START("COLF")
367333   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
368334   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
369335   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241451r241452
440406   MCFG_NVRAM_ADD_0FILL("nvram")
441407MACHINE_CONFIG_END
442408
443static MACHINE_CONFIG_DERIVED_CLASS( asma2k, alphasmart, asma2k_state )
409static MACHINE_CONFIG_DERIVED( asma2k, alphasmart )
444410   MCFG_CPU_MODIFY("maincpu")
445411   MCFG_CPU_PROGRAM_MAP(asma2k_mem)
446412MACHINE_CONFIG_END
trunk/src/mess/drivers/apc.c
r241451r241452
230230            int res_x,res_y;
231231
232232            res_x = (x*8+xi);
233            res_y = y+yi;
233            res_y = y*lr+yi;
234234
235235            if(!machine().first_screen()->visible_area().contains(res_x, res_y))
236236               continue;
trunk/src/mess/drivers/astrocde.c
r241451r241452
1212#include "includes/astrocde.h"
1313#include "machine/ram.h"
1414#include "sound/astrocde.h"
15#include "bus/astrocde/slot.h"
16#include "bus/astrocde/rom.h"
15#include "bus/generic/slot.h"
16#include "bus/generic/carts.h"
1717
1818class astrocde_mess_state : public astrocde_state
1919{
r241451r241452
2323      m_cart(*this, "cartslot")
2424      { }
2525
26   required_device<astrocade_cart_slot_device> m_cart;
26   required_device<generic_slot_device> m_cart;
2727   void get_ram_expansion_settings(int &ram_expansion_installed, int &write_protect_on, int &expansion_ram_start, int &expansion_ram_end, int &shadow_ram_end);
2828   DECLARE_MACHINE_START(astrocde);
2929   DECLARE_MACHINE_RESET(astrocde);
r241451r241452
251251 *
252252 *************************************/
253253
254static SLOT_INTERFACE_START(astrocade_cart)
255   SLOT_INTERFACE_INTERNAL("rom",       ASTROCADE_ROM_STD)
256   SLOT_INTERFACE_INTERNAL("rom_256k",  ASTROCADE_ROM_256K)
257   SLOT_INTERFACE_INTERNAL("rom_512k",  ASTROCADE_ROM_512K)
258SLOT_INTERFACE_END
259
260
261254static MACHINE_CONFIG_START( astrocde, astrocde_mess_state )
262255   /* basic machine hardware */
263256   MCFG_CPU_ADD("maincpu", Z80, ASTROCADE_CLOCK/4)        /* 1.789 MHz */
r241451r241452
286279   MCFG_RAM_DEFAULT_SIZE("32k")
287280
288281   /* cartridge */
289   MCFG_ASTROCADE_CARTRIDGE_ADD("cartslot", astrocade_cart, NULL)
282   MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "astrocde_cart")
290283
291284   /* Software lists */
292285   MCFG_SOFTWARE_LIST_ADD("cart_list","astrocde")
r241451r241452
328321MACHINE_START_MEMBER(astrocde_mess_state, astrocde)
329322{
330323   if (m_cart->exists())
331      m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x3fff, read8_delegate(FUNC(astrocade_cart_slot_device::read_rom),(astrocade_cart_slot_device*)m_cart));
324      m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x3fff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
332325}
333326
334327MACHINE_RESET_MEMBER(astrocde_mess_state, astrocde)
trunk/src/mess/drivers/dmv.c
r241451r241452
314314            int pen = (tile_data >> xi) & 1 ? 1 : 0;
315315
316316            res_x = x * 8 + xi;
317            res_y = y + yi;
317            res_y = y * lr + yi;
318318
319319            if(!machine().first_screen()->visible_area().contains(res_x, res_y))
320320               continue;
trunk/src/mess/drivers/mz3500.c
r241451r241452
215215            }
216216
217217            res_x = x * 8 + xi;
218            res_y = y + yi;
218            res_y = y * lr + yi;
219219
220220            if(pen != -1)
221221            {
trunk/src/mess/drivers/pc9801.c
r241451r241452
926926               int res_x,res_y;
927927
928928               res_x = ((x+kanji_lr)*8+xi) * (m_video_ff[WIDTH40_REG]+1);
929               res_y = y+yi - (m_txt_scroll_reg[3] & 0xf);
929               res_y = y*lr+yi - (m_txt_scroll_reg[3] & 0xf);
930930
931931               if(!machine().first_screen()->visible_area().contains(res_x, res_y))
932932                  continue;
trunk/src/mess/drivers/qx10.c
r241451r241452
216216            int res_x,res_y;
217217
218218            res_x = x * 8 + xi;
219            res_y = y + yi;
219            res_y = y * lr + yi;
220220
221221            if(!machine().first_screen()->visible_area().contains(res_x, res_y))
222222               continue;
trunk/src/mess/drivers/ti85.c
r241451r241452
11/***************************************************************************
22TI-85 and TI-86 drivers by Krzysztof Strzecha
3TI-83 Plus, TI-84 Plus, and Siliver Edition support by Jon Sturm
34
45Notes:
561. After start TI-85 waits for ON key interrupt, so press ON key to start
r241451r241452
342343   AM_RANGE(0x200000, 0x21BFFF) AM_RAM AM_SHARE("nvram")
343344ADDRESS_MAP_END
344345
346
347static ADDRESS_MAP_START( ti84p_banked_mem , AS_PROGRAM, 8, ti85_state )
348   AM_RANGE(0x0000, 0xfffff) AM_DEVREADWRITE("flash", intelfsh8_device, read, write)
349   AM_RANGE(0x200000, 0x21BFFF) AM_RAM AM_SHARE("nvram")
350ADDRESS_MAP_END
351
345352static ADDRESS_MAP_START( ti83p_banked_mem , AS_PROGRAM, 8, ti85_state )
346353   AM_RANGE(0x00000, 0x7ffff) AM_DEVREADWRITE("flash", intelfsh8_device, read, write)
347354   AM_RANGE(0x100000, 0x107fff) AM_RAM AM_SHARE("nvram")
r241451r241452
730737   MCFG_DEVICE_PROGRAM_MAP(ti83pse_banked_mem)
731738
732739   MCFG_MACHINE_START_OVERRIDE(ti85_state, ti83pse )
733   MCFG_MACHINE_RESET_OVERRIDE(ti85_state, ti83pse )
734740   MCFG_DEVICE_REPLACE("flash", FUJITSU_29F160T, 0)
735741
736742   //MCFG_TI83PSERIAL_ADD( "tiserial" )
737743MACHINE_CONFIG_END
738744
739745static MACHINE_CONFIG_DERIVED( ti84p, ti83pse )
740   MCFG_DEVICE_REPLACE("flash", AMD_29F800T , 0)
741   //MCFG_TI83PSERIAL_ADD( "tiserial" )
746    MCFG_DEVICE_MODIFY("membank1")
747   MCFG_DEVICE_PROGRAM_MAP(ti84p_banked_mem)
748
749   MCFG_DEVICE_MODIFY("membank2")
750   MCFG_DEVICE_PROGRAM_MAP(ti84p_banked_mem)
751
752   MCFG_DEVICE_MODIFY("membank3")
753   MCFG_DEVICE_PROGRAM_MAP(ti84p_banked_mem)
754
755   MCFG_DEVICE_MODIFY("membank4")
756   MCFG_DEVICE_PROGRAM_MAP(ti84p_banked_mem)
757
758   MCFG_MACHINE_START_OVERRIDE(ti85_state, ti84p )
759    MCFG_DEVICE_REPLACE("flash", AMD_29F800T , 0)
742760MACHINE_CONFIG_END
743761
762static MACHINE_CONFIG_DERIVED( ti84pse, ti83pse )
763   MCFG_MACHINE_START_OVERRIDE(ti85_state, ti84pse )
764MACHINE_CONFIG_END
744765
745766static MACHINE_CONFIG_DERIVED( ti73, ti83p )
746767   //MCFG_DEVICE_REMOVE( "tiserial" )
r241451r241452
888909ROM_END
889910
890911ROM_START (ti84p)
891   ROM_REGION (0x100000, "flash",0)
892   ROM_DEFAULT_BIOS("v241")
893   ROM_SYSTEM_BIOS( 0, "v241", "V 2.41" )
894   ROMX_LOAD( "ti84v241.bin", 0x00000, 0x100000, CRC(5758db36) SHA1(7daa4f22e9b5dc8a1cc8fd31bceece9fa8b43515), ROM_BIOS(1) )
912    ROM_REGION (0x100000, "flash",0)
913    ROM_DEFAULT_BIOS("b100v255mp")
914    ROM_SYSTEM_BIOS( 0, "b100v255mp", "Boot 1.00 OS V 2.55MP" )
915    ROMX_LOAD( "ti84pb100v255mp.bin", 0x00000, 0x100000, CRC(4AF31251) SHA1(8F67269346644B87E7CD0F353F5F4030E787CF57), ROM_BIOS(1) )
895916ROM_END
896917
897
898918/*    YEAR  NAME        PARENT  COMPAT  MACHINE INPUT   INIT   COMPANY                 FULLNAME                        FLAGS */
899919COMP( 1990, ti81,       0,      0,      ti81,   ti81, driver_device,   0,     "Texas Instruments",    "TI-81",                        GAME_NO_SOUND )
900920COMP( 1992, ti85,       0,      0,      ti85d,  ti85, driver_device,   0,     "Texas Instruments",    "TI-85",                        GAME_NO_SOUND )
r241451r241452
906926COMP( 1999, ti83p,      0,      0,      ti83p,  ti82, driver_device,   0,     "Texas Instruments",    "TI-83 Plus",                   GAME_NO_SOUND )
907927COMP( 2001, ti83pse,    0,      0,      ti83pse,   ti82, driver_device,   0,     "Texas Instruments",    "TI-83 Plus Silver Edition", GAME_NO_SOUND )
908928COMP( 2004, ti84p,      0,      0,      ti84p,   ti82, driver_device,   0,   "Texas Instruments",    "TI-84 Plus",                    GAME_NO_SOUND )
909COMP( 2004, ti84pse,    0,      0,      ti83pse,   ti82, driver_device,   0,     "Texas Instruments",    "TI-84 Plus Silver Edition", GAME_NO_SOUND )
929COMP( 2004, ti84pse,    0,      0,      ti84pse,   ti82, driver_device,   0,     "Texas Instruments",    "TI-84 Plus Silver Edition", GAME_NO_SOUND )
trunk/src/mess/drivers/vt240.c
r241451r241452
7979            if(yi >= 8) { pen = 0; }
8080
8181            res_x = x * 8 + xi;
82            res_y = y + yi;
82            res_y = y * lr + yi;
8383
8484            if(res_x > screen_max_x || res_y > screen_max_y)
8585               continue;
trunk/src/mess/includes/ti85.h
r241451r241452
1616
1717
1818/* model */
19typedef enum {
19enum ti85_model {
2020   TI81,
2121   TI81v2,
2222   TI82,
r241451r241452
2727   TI83PSE,
2828   TI84P,
2929   TI84PSE
30} ti85_models;
30};
3131
3232typedef struct
3333{
r241451r241452
7474   optional_device<address_map_bank_device> m_membank3;
7575   optional_device<address_map_bank_device> m_membank4;
7676
77   ti85_model m_model;
78
7779   UINT8 m_LCD_memory_base;
7880   UINT8 m_LCD_contrast;
7981   UINT8 m_LCD_status;
r241451r241452
167169   DECLARE_PALETTE_INIT(ti85);
168170   DECLARE_MACHINE_RESET(ti85);
169171   DECLARE_MACHINE_RESET(ti83p);
170   DECLARE_MACHINE_RESET(ti83pse);
171172   DECLARE_PALETTE_INIT(ti82);
172173   DECLARE_MACHINE_START(ti86);
173174   DECLARE_MACHINE_START(ti83p);
174175   DECLARE_MACHINE_START(ti83pse);
176   DECLARE_MACHINE_START(ti84pse);
177   DECLARE_MACHINE_START(ti84p);
178   void ti8xpse_init_common();
179
175180   UINT32 screen_update_ti85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
176181   TIMER_CALLBACK_MEMBER(ti85_timer_callback);
177182   TIMER_CALLBACK_MEMBER(ti83_timer1_callback);
trunk/src/mess/machine/ti85.c
r241451r241452
11/***************************************************************************
22  TI-85 driver by Krzysztof Strzecha
3  TI-83 Plus, TI-84 Plus, and Siliver Edition support by Jon Sturm
34
45  Functions to emulate general aspects of the machine (RAM, ROM, interrupts,
56  I/O ports)
r241451r241452
236237
237238void ti85_state::machine_start()
238239{
240   m_model = TI85;
241
239242   address_space &space = m_maincpu->space(AS_PROGRAM);
240243   m_bios = memregion("bios")->base();
241244
r241451r241452
277280   m_PCR = 0xc0;
278281
279282   m_ti8x_memory_page_0 = 0;//0x1f;
280   m_ti8x_memory_page_1 = 0x1f;
281   m_ti8x_memory_page_2 = 0;
282   m_ti8x_memory_page_3 = 0;
283   m_ti83p_port4 = 1;
284   update_ti83p_memory();
285283
286   m_maincpu->set_pc(0x8000);
287}
284    if (m_model == TI83P)
285    {
286        m_ti8x_memory_page_1 = 0x1f;
287    }
288    else if (m_model == TI84P)
289    {
290        m_ti8x_memory_page_1 = 0x3f;
291    }
292    else
293    {
294       m_ti8x_memory_page_1 = 0x7f;
295    }
288296
289MACHINE_RESET_MEMBER(ti85_state,ti83pse)
290{
291   m_red_out = 0x00;
292   m_white_out = 0x00;
293   m_PCR = 0xc0;
294
295   m_ti8x_memory_page_0 = 0;//0x1f;
296   m_ti8x_memory_page_1 = 0x7f;
297297   m_ti8x_memory_page_2 = 0;
298298   m_ti8x_memory_page_3 = 0;
299299   m_ti83p_port4 = 1;
300   update_ti83pse_memory();
300   if (m_model == TI83P)
301    {
302        update_ti83p_memory();
303    }
304    else
305    {
306        update_ti83pse_memory();
307    }
301308
302309   m_maincpu->set_pc(0x8000);
303310}
304311
305312MACHINE_START_MEMBER(ti85_state,ti83p)
306313{
314   m_model = TI83P;
307315   //address_space &space = m_maincpu->space(AS_PROGRAM);
308316   //m_bios = memregion("flash")->base();
309317
r241451r241452
326334   m_ti83p_port4 = 1;
327335   m_flash_unlocked = 0;
328336
329   ti85_state::update_ti83p_memory ();
337    ti85_state::update_ti83p_memory();
338   m_maincpu->set_pc(0x8000); //this is a hack due to incomplete memory mapping emulation
330339
340
331341   machine().scheduler().timer_pulse(attotime::from_hz(256), timer_expired_delegate(FUNC(ti85_state::ti83_timer1_callback),this));
332342   machine().scheduler().timer_pulse(attotime::from_hz(512), timer_expired_delegate(FUNC(ti85_state::ti83_timer2_callback),this));
333343
334      /* save states and debugging */
335   save_item(NAME(m_timer_interrupt_mask));
344
345   /* save states and debugging */
346   save_item(NAME(m_timer_interrupt_status));
347    save_item(NAME(m_timer_interrupt_mask));
336348   save_item(NAME(m_ti8x_memory_page_0));
337349   save_item(NAME(m_ti8x_memory_page_1));
338350   save_item(NAME(m_ti8x_memory_page_2));
r241451r241452
340352   save_item(NAME(m_ti83p_port4));
341353}
342354
343MACHINE_START_MEMBER(ti85_state,ti83pse)
355void ti85_state::ti8xpse_init_common()
344356{
345357   //address_space &space = m_maincpu->space(AS_PROGRAM);
346358   //address_space &asic =  ADDRESS_MAP_NAME(ti83p_asic_mem);
r241451r241452
352364   m_ON_interrupt_status = 0;
353365   m_ON_pressed = 0;
354366   m_ti8x_memory_page_0 = 00;//0x7f;
355   m_ti8x_memory_page_1 = 0x7f;
367   m_ti8x_memory_page_1 = (m_model != TI84P ) ? 0x7f : 0x3f ;
356368   m_ti8x_memory_page_2 = 0;
357369   m_ti8x_memory_page_3 = 0;
358370   m_LCD_memory_base = 0;
r241451r241452
365377   m_ti83p_port4 = 1;
366378   m_flash_unlocked = 0;
367379
368   ti85_state::update_ti83p_memory();
369   m_maincpu->set_pc(0x8000);
380   ti85_state::update_ti83pse_memory();
381   m_maincpu->set_pc(0x8000);//same as above, hack to work around incomplete memory mapping emulation
370382
371383
372384   machine().scheduler().timer_pulse(attotime::from_hz(256), timer_expired_delegate(FUNC(ti85_state::ti83_timer1_callback),this));
r241451r241452
376388   m_crystal_timer2 = timer_alloc(CRYSTAL_TIMER2);
377389   m_crystal_timer3 = timer_alloc(CRYSTAL_TIMER3);
378390
379   /* save states and debugging */
391      /* save states and debugging */
380392   save_item(NAME(m_ctimer_interrupt_status));
381393   save_item(NAME(m_timer_interrupt_status));
382394   save_item(NAME(m_ti8x_memory_page_0));
r241451r241452
386398   save_item(NAME(m_ti83p_port4));
387399}
388400
401
402MACHINE_START_MEMBER(ti85_state,ti83pse)
403{
404    m_model = TI84PSE;
405
406    ti8xpse_init_common();
407}
408
409MACHINE_START_MEMBER(ti85_state,ti84pse)
410{
411    m_model = TI83PSE;
412
413    ti8xpse_init_common();
414}
415
416MACHINE_START_MEMBER(ti85_state,ti84p)
417{
418    m_model = TI84P;
419
420   ti8xpse_init_common();
421}
422
389423MACHINE_START_MEMBER(ti85_state,ti86)
390424{
391425   address_space &space = m_maincpu->space(AS_PROGRAM);
r241451r241452
763797
764798WRITE8_MEMBER(ti85_state::ti83pse_port_0006_w)
765799{
766   m_ti8x_memory_page_1 = data; //& ((data&0x80) ? 0x41 : 0x7f);
800
801   if ((m_model == TI84P) && (data < 0x80))
802   {
803      m_ti8x_memory_page_1 = data & 0x3f;
804   }
805   else
806   {
807      m_ti8x_memory_page_1 = data;
808   }
767809   update_ti83pse_memory();
768810}
769811
770812WRITE8_MEMBER(ti85_state::ti83pse_port_0007_w)
771813{
772   m_ti8x_memory_page_2 = data; //& ((data&0x80) ? 0x41 : 0x7f);
814   if ((m_model == TI84P) && (data < 0x80))
815   {
816      m_ti8x_memory_page_2 = data & 0x3f;
817   }
818   else
819   {
820      m_ti8x_memory_page_2 = data;
821   }
773822   update_ti83pse_memory();
774823}
775824
trunk/src/mess/mess.lst
r241451r241452
10671067ti86      // 1997 TI-86 (Z80 6 MHz)
10681068ti83p    // 1999 TI-83 Plus (Z80 6 MHz)
10691069ti83pse   // 2001 TI-83 Plus Silver Edition
1070//ti84p  // 2004 TI-84 Plus
1070ti84p  // 2004 TI-84 Plus
10711071ti84pse   // 2004 TI-84 Plus Silver Edition
1072//ti84cse // 2013 TI-84 Plus C Silver Edition (color screen)
10721073ti89      // 1998 TI-89
10731074ti92      // 1995 TI-92
10741075ti92p    // 1999 TI-92 Plus
trunk/src/mess/mess.mak
r241451r241452
570570BUSES += ADAMNET
571571BUSES += APF
572572BUSES += ARCADIA
573BUSES += ASTROCADE
574573BUSES += BML3
575574BUSES += BW2
576575BUSES += C64


Previous 199869 Revisions Next


© 1997-2024 The MAME Team