Previous 199869 Revisions Next

r33266 Sunday 2nd November, 2014 at 04:10:46 UTC by Felipe CorrĂȘa da Silva Sanches
Galaxy Force II: Mapping the port bits used to provide motor movement feedback signals such as Up/Down/Left/Right limit switches.
[/trunk]README.md makefile
[hash]cgenie_cass.xml compclr2_flop.xml dai_cass.xml dmv.xml epson_cpm.xml galaxy.xml ibm5150.xml ibm5170.xml jupace_cass.xml m5.xml* m5_cart.xml m5_cass.xml megadriv.xml mikrosha.xml msx1_cart.xml orao.xml pecom_cass.xml pokemini.xml psion.xml* psion1.xml psion2.xml snes.xml sol20_cass.xml specpls3_flop.xml spectrum.xml* spectrum_cart.xml spectrum_flop.xml* ut88.xml vreader.xml vsmile_cd.xml x07_cass.xml
[src/emu]emuopts.c emuopts.h tilemap.h
[src/emu/bus]bus.mak
[src/emu/bus/abckb]abc99.c
[src/emu/bus/cpc]cpcexp.h playcity.c playcity.h
[src/emu/bus/dmv]dmvbus.c dmvbus.h k803.c k803.h k806.c k806.h
[src/emu/bus/gameboy]gb_slot.c
[src/emu/bus/isa]isa_cards.c isa_cards.h num9rev.c num9rev.h
[src/emu/bus/lpci]cirrus.c cirrus.h i82371ab.c i82371ab.h i82371sb.c i82371sb.h i82439tx.c i82439tx.h mpc105.c mpc105.h northbridge.c northbridge.h pci.c pci.h southbridge.c southbridge.h
[src/emu/bus/pci]cirrus.c* cirrus.h* i82371ab.c* i82371ab.h* i82371sb.c* i82371sb.h* i82439tx.c* i82439tx.h* mpc105.c* mpc105.h* northbridge.c* northbridge.h* pci.c* pci.h* southbridge.c* southbridge.h*
[src/emu/cpu]drcuml.c drcuml.h
[src/emu/cpu/arm7]arm7drc.inc
[src/emu/cpu/mips]mips3.c mips3com.h mips3drc.c mips3fe.c
[src/emu/cpu/powerpc]ppccom.c ppccom.h ppcdrc.c
[src/emu/cpu/rsp]rsp.c rsp.h rspdrc.c rspfe.c
[src/emu/cpu/sh2]sh2.c sh2drc.c
[src/emu/cpu/tms0980]tms0980.c tms0980.h
[src/emu/cpu/upd7810]upd7810.c upd7810.h
[src/emu/drivers]xtal.h
[src/emu/machine]i6300esb.c i6300esb.h i82541.c i82541.h i82875p.c i82875p.h lpci.c lpci.h machine.mak pci-apic.c pci-apic.h pci-sata.c pci-sata.h pci-smbus.c pci-smbus.h pci-usb.c pci-usb.h pci.c pci.h
[src/emu/sound]pci-ac97.c pci-ac97.h sb0400.c sb0400.h sound.mak
[src/emu/video]gf6800gt.c gf6800gt.h pc_vga.c upd7220.c upd7220.h video.mak
[src/lib]lib.mak
[src/lib/formats]cbm_crt.c esq16_dsk.c esq8_dsk.c flopimg.c flopimg.h p6001_cas.c p6001_cas.h pc98fdi_dsk.c victor9k_dsk.c victor9k_dsk.h
[src/lib/sqlite3]sqlite3.c
[src/lib/web]mongoose.c
[src/mame]mame.lst mame.mak
[src/mame/audio]harddriv.c
[src/mame/drivers]atarig1.c atarisy1.c atarisy2.c atetris.c beaminv.c calchase.c chihiro.c cobra.c coolridr.c cyberbal.c fruitpc.c funkball.c galaxian.c gamecstl.c gammagic.c gauntlet.c harddriv.c lindbergh.c magictg.c mediagx.c midqslvr.c naomi.c pcxt.c peplus.c pgm.c pgm2.c photoply.c pinball2k.c queen.c rampart.c rockrage.c savquest.c segas18.c segaybd.c starwars.c stv.c taitowlf.c tmnt.c toaplan2.c tumbleb.c vigilant.c vindictr.c viper.c voyager.c xtom3d.c xybots.c yunsun16.c
[src/mame/includes]atarigx2.h atarisy2.h atetris.h harddriv.h pgm.h segas18.h slapstic.h starwars.h stv.h tumbleb.h tx1.h
[src/mame/layout]racedrivpan.lay
[src/mame/machine]315-5881_crypt.c 315-5881_crypt.h asic65.c atarigen.c atarigen.h harddriv.c n64.c naomim2.c naomim2.h pgmprot_igs025_igs012.c segabb.c segabb.h slapstic.c stvprot.c
[src/mame/video]atarisy2.c harddriv.c k007121.c konamiic.txt n64.h rdpspn16.c rdptpipe.c rockrage.c tumbleb.c twin16.c tx1.c
[src/mess]mess.lst mess.mak
[src/mess/drivers]ace.c amstrad.c bebox.c cgenie.c dai.c dmv.c dvk_ksm.c gmaster.c lviv.c m5.c mc1502.c merlin.c pasogo.c pc1512.c pc9801.c psion.c ptcsol.c px4.c sh4robot.c simon.c specpls3.c spectrum.c svi318.c victor9k.c x07.c xerox820.c
[src/mess/includes]at.h mc1502.h victor9k.h xerox820.h
[src/mess/layout]merlin.lay simon.lay
[src/mess/machine]at.c bebox.c genpc.c ms7004.c ms7004.h victor9k_fdc.c victor9k_fdc.h victor9kb.c victor9kb.h x820kb.c x820kb.h
[src/mess/tools/castool]main.c
[src/osd/sdl]sdl.mak

trunk/README.md
r241777r241778
11What is MAME?
22=============
33
4MAME stands for Multiple Arcade Machine Emulator.
4MAME stands for Multiple Arcade Machine Emulator. When used in conjunction with an arcade game's data files (ROMs, CHDs, samples, etc.), MAME attempts to reproduce that game as faithfully as possible on a more modern general-purpose system. MAME can currently emulate many thousands of classic arcade video games from the the very earliest CPU-based systems to much more modern 3D platforms.
55
6The ROM and CHD images that MAME requires are "dumped" from arcade games' original circuit-board ROM chips, hard disks, and CD-ROMs. MAME becomes the "hardware" for the games, taking the place of their original CPUs and support chips. Therefore, these games are NOT ports or rewrites, but the actual, original games that appeared in arcades, complete with all the bugs, glitches, slowdowns, and subtleties of the original game as it appeared in the arcade.
7
68MAME's purpose is to preserve these decades of video-game history. As gaming technology continues to rush forward, MAME prevents these important "vintage" games from being lost and forgotten. This is achieved by documenting the hardware and how it functions. The source code to MAME serves as this documentation. The fact that the games are playable serves primarily to validate the accuracy of the documentation (how else can you prove that you have recreated the hardware faithfully)?
trunk/hash/cgenie_cass.xml
r241777r241778
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!--
5
6  TODO:
7  * document basic tapes when they are fixed!
8  * add to usage "start with /" for games which need it (those which don't autostart)
9  * check which games work and which don't and fix the supported flag accordingly
10-->
11
12<softwarelist name="cgenie_cass" description="EACA Colour Genie/EG2000 cassettes">
13   <software name="andromed" supported="no">
14      <description>Andromeda</description>
15      <year>1982</year>
16      <publisher>TGC</publisher>
17      <info name="usage" value="Type SYSTEM and load with ANDRO"/>
18
19      <part name="cass1" interface="cgenie_cass">
20         <dataarea name="cass" size="12544">
21            <rom name="andromeda (1982)(buchmueller, juergen)(de).cas" size="12544" crc="cb10616e" sha1="65e6679e24bb7e946b90961ba20cb522ae29e601" offset="0" />
22         </dataarea>
23      </part>
24   </software>
25
26   <software name="andromeda" cloneof="andromed" supported="no">
27      <description>Andromeda (Alt)</description>
28      <year>1982</year>
29      <publisher>TGC</publisher>
30      <info name="usage" value="Type SYSTEM and load with ANDRO"/>
31
32      <part name="cass1" interface="cgenie_cass">
33         <dataarea name="cass" size="14938">
34            <rom name="andromeda (1982)(buchmueller, juergen)(de)[a].cas" size="14938" crc="be51a28c" sha1="71c474378582f9d522a0047b3d6a83856f5be542" offset="0" />
35         </dataarea>
36      </part>
37   </software>
38
39   <software name="astrnaut" supported="no">
40      <description>Astronaut</description>
41      <year>1984</year>
42      <publisher>N.A. Taylor</publisher>
43      <info name="usage" value="Type SYSTEM and load with ASTRO"/>
44      <part name="cass1" interface="cgenie_cass">
45         <dataarea name="cass" size="9100">
46            <rom name="astronaut (1984)(taylor, n. a.).cas" size="9100" crc="7e57ada8" sha1="d98171f78f2da39ec7ea7c897a78741f1e926bee" offset="0" />
47         </dataarea>
48      </part>
49   </software>
50
51   <software name="basicode" supported="no">
52      <description>Basicode</description>
53      <year>1983</year>
54      <publisher>TCS</publisher>
55      <info name="usage" value="Type SYSTEM and load with BASICO"/>
56
57      <part name="cass1" interface="cgenie_cass">
58         <dataarea name="cass" size="2199">
59            <rom name="basicode (1983)(tcs).cas" size="2199" crc="9da86441" sha1="f1b806842c4f0cfa9b4b69c4e45fae2135925712" offset="0" />
60         </dataarea>
61      </part>
62   </software>
63
64   <software name="baspack" supported="no">
65      <description>Basic-Packer 2.13</description>
66      <year>1983</year>
67      <publisher>TCS</publisher>
68      <info name="usage" value="Type SYSTEM and load with PACKER"/>
69
70      <part name="cass1" interface="cgenie_cass">
71         <dataarea name="cass" size="4448">
72            <rom name="basic packer v2.13 (1983)(tcs).cas" size="4448" crc="b1074e77" sha1="bcff0ab3e60fac4213342f6e5807d047c6e96f8d" offset="0" />
73         </dataarea>
74      </part>
75   </software>
76
77   <software name="chopper" supported="no">
78      <description>Chopper</description>
79      <year>198?</year>
80      <publisher>&lt;unknown&gt;</publisher>
81      <info name="usage" value="Type SYSTEM and load with CHOP"/>
82
83      <part name="cass1" interface="cgenie_cass">
84         <dataarea name="cass" size="27969">
85            <rom name="chopper (19xx)(-)[req 32k].cas" size="27969" crc="5e13a90b" sha1="46e9ce8a093f9735b1a31e874a13b1beb79aadd2" offset="0" />
86         </dataarea>
87      </part>
88   </software>
89
90   <software name="chop83" supported="no">
91      <description>Chopper (Autostart)</description>
92      <year>1983</year>
93      <publisher>Juergen Buchmueller</publisher>
94      <info name="usage" value="Type SYSTEM and load with CHOP83"/>
95
96      <part name="cass1" interface="cgenie_cass">
97         <dataarea name="cass" size="12034">
98            <rom name="chopper (1983)(buchmueller, juergen)[req 16k].cas" size="12034" crc="190a67fb" sha1="f8f3d6280561d6af2c14feb206d8a55d08948958" offset="0" />
99         </dataarea>
100      </part>
101   </software>
102
103   <software name="colcom" supported="no">
104      <description>TCS Colour Basic Compiler Ver. 3.05</description>
105      <year>1982</year>
106      <publisher>TCS</publisher>
107      <info name="usage" value="Type SYSTEM and load with COLCOM"/>
108
109      <part name="cass1" interface="cgenie_cass">
110         <dataarea name="cass" size="15340">
111            <rom name="colour basic compiler v3.05 (1982)(tcs)(de).cas" size="15340" crc="2628fe32" sha1="143104b746cd959a0c022bd8a8807ad9875f4d8a" offset="0" />
112         </dataarea>
113      </part>
114   </software>
115
116   <software name="colbasp" supported="no">
117      <description>Colour Basic +5</description>
118      <year>1983</year>
119      <publisher>TCS</publisher>
120      <info name="usage" value="Type SYSTEM and load with BPLUS5"/>
121
122      <part name="cass1" interface="cgenie_cass">
123         <dataarea name="cass" size="5250">
124            <rom name="colour basic plus (1983)(tcs).cas" size="5250" crc="870865de" sha1="c2b98f33c93fc30a2926fb465d2f21b7ae92d9df" offset="0" />
125         </dataarea>
126      </part>
127   </software>
128
129   <software name="colconv" supported="no">
130      <description>EG 2000 Tape-Disk Converter Ver. 1.1</description>
131      <year>19??</year>
132      <publisher>&lt;unknown&gt;</publisher>
133      <info name="usage" value="Type SYSTEM and load with COLOFF"/>
134
135      <part name="cass1" interface="cgenie_cass">
136         <dataarea name="cass" size="1452">
137            <rom name="colour office tape-disk converter v1.11 (19xx)(-).cas" size="1452" crc="88fdad97" sha1="6d66db21fb6bfdd0b339a5e4884a9f014c06eb3a" offset="0" />
138         </dataarea>
139      </part>
140   </software>
141
142   <software name="coldesig" supported="no">
143      <description>Colour Design 3.0</description>
144      <year>19??</year>
145      <publisher>&lt;unknown&gt;</publisher>
146      <info name="usage" value="Type SYSTEM and load with DESIGN"/>
147
148      <part name="cass1" interface="cgenie_cass">
149         <dataarea name="cass" size="849">
150            <rom name="colour design v3.0 (19xx)(-).cas" size="849" crc="3cade933" sha1="ad81c5fe7ff6ce162f5a5b51234e2dc41421975b" offset="0" />
151         </dataarea>
152      </part>
153   </software>
154
155   <software name="coldosin" supported="no">
156      <description>Colour DOS - Interface</description>
157      <year>1997</year>
158      <publisher>Juergen Buchmueller</publisher>
159      <info name="usage" value="Type SYSTEM and load with EASY"/>
160
161      <part name="cass1" interface="cgenie_cass">
162         <dataarea name="cass" size="2889">
163            <rom name="colour dos interface (1997)(buchmueller, juergen).cas" size="2889" crc="4a8578a2" sha1="d2d707952b695c065c5a7b400d2314bc921bc15f" offset="0" />
164         </dataarea>
165      </part>
166   </software>
167
168   <software name="colforth" supported="no">
169      <description>Colour-Forth v2.0</description>
170      <year>1983</year>
171      <publisher>TCS</publisher>
172      <info name="usage" value="Type SYSTEM and load with BFORTH"/>
173
174      <part name="cass1" interface="cgenie_cass">
175         <dataarea name="cass" size="13132">
176            <rom name="colour forth v2.0 (1983)(tcs).cas" size="13132" crc="a2f51fc0" sha1="424c3c5be4d1c205499cea371b0f302f40dbdb60" offset="0" />
177         </dataarea>
178      </part>
179   </software>
180
181   <software name="colfortha" cloneof="colforth" supported="no">
182      <description>Colour-Forth v2.0 (Alt)</description>
183      <year>1983</year>
184      <publisher>TCS</publisher>
185      <info name="usage" value="Type SYSTEM and load with FORTH"/>
186
187      <part name="cass1" interface="cgenie_cass">
188         <dataarea name="cass" size="7246">
189            <rom name="colour forth v2.0 (1983)(tcs)[a].cas" size="7246" crc="628cc3ce" sha1="8bdaa980d10c3a579f9a40052880f624f11e0eeb" offset="0" />
190         </dataarea>
191      </part>
192   </software>
193
194   <software name="colkong" supported="no">
195      <description>Colour Kong (16k)</description>
196      <year>1983</year>
197      <publisher>TCS</publisher>
198      <info name="usage" value="Type SYSTEM and load with KONG"/>
199
200      <part name="cass1" interface="cgenie_cass">
201         <dataarea name="cass" size="8731">
202            <rom name="colour kong (1983)(tcs)[req 16k].cas" size="8731" crc="f6ae6158" sha1="319a60dc863eabd05c79a8de261af70b6e5ba74b" offset="0" />
203         </dataarea>
204      </part>
205   </software>
206
207   <software name="colkong32" cloneof="colkong" supported="no">
208      <description>Colour Kong (32k)</description>
209      <year>1983</year>
210      <publisher>TCS</publisher>
211      <info name="usage" value="Type SYSTEM and load with KONG32"/>
212
213      <part name="cass1" interface="cgenie_cass">
214         <dataarea name="cass" size="12335">
215            <rom name="colour kong (1983)(tcs)[req 32k].cas" size="12335" crc="83fba82e" sha1="1799cde3a3fe308cb987df940ee111ad564936c5" offset="0" />
216         </dataarea>
217      </part>
218   </software>
219
220   <software name="colkonga" cloneof="colkong" supported="no">
221      <description>Colour Kong (16k, Alt)</description>
222      <year>1983</year>
223      <publisher>TCS</publisher>
224      <info name="usage" value="Type SYSTEM and load with KONG16"/>
225
226      <part name="cass1" interface="cgenie_cass">
227         <dataarea name="cass" size="8742">
228            <rom name="colour kong (1983)(tcs)[a][req 16k].cas" size="8742" crc="111deb80" sha1="9a106a73d113851c6a60d401715f96fbbe2d9534" offset="0" />
229         </dataarea>
230      </part>
231   </software>
232
233   <software name="colmon2" supported="no">
234      <description>Colmon Vers.2</description>
235      <year>198?</year>
236      <publisher>&lt;unknown&gt;</publisher>
237      <info name="usage" value="Type SYSTEM and load with COLMON"/>
238
239      <part name="cass1" interface="cgenie_cass">
240         <dataarea name="cass" size="4192">
241            <rom name="colour monitor v2.0 (19xx)(-).cas" size="4192" crc="ae8b9163" sha1="ac9bd8ca81036482e73742a2fa1b77747500cf70" offset="0" />
242         </dataarea>
243      </part>
244   </software>
245
246   <software name="monrom" supported="no">
247      <description>Unknown program "MONROM"</description>
248      <year>19??</year>
249      <publisher>&lt;unknown&gt;</publisher>
250      <info name="usage" value="Type SYSTEM and load with MONROM"/>
251
252      <part name="cass1" interface="cgenie_cass">
253         <dataarea name="cass" size="4195">
254            <rom name="colour monitor v2.0 (19xx)(-)[a].cas" size="4195" crc="8c96504c" sha1="4f84cb5fa31f2a645217092cfc183acdc8b65c8e" offset="0" />
255         </dataarea>
256      </part>
257   </software>
258
259   <software name="colmon30" supported="no">
260      <description>Colour-Monitor 3.0</description>
261      <year>1983</year>
262      <publisher>TCS</publisher>
263      <info name="usage" value="Type SYSTEM and load with COLMON"/>
264
265      <part name="cass1" interface="cgenie_cass">
266         <dataarea name="cass" size="15091">
267            <rom name="colour monitor v3.0 (1983)(tcs).cas" size="15091" crc="51f27191" sha1="bb5dce66adc62cf7d4460fa93331132f66b0266e" offset="0" />
268         </dataarea>
269      </part>
270   </software>
271
272   <software name="colpasc" supported="no">
273      <description>Colour-PASCAL 2.0</description>
274      <year>198?</year>
275      <publisher>&lt;unknown&gt;</publisher>
276      <info name="usage" value="Type SYSTEM and load with PASCAL"/>
277
278      <part name="cass1" interface="cgenie_cass">
279         <dataarea name="cass" size="11896">
280            <rom name="colour pascal v2.0 (19xx)(-).cas" size="11896" crc="463af74d" sha1="8756a8f0ba9bb82b9c1a45ed15e8e1d07dedf6c7" offset="0" />
281         </dataarea>
282      </part>
283   </software>
284
285   <software name="colrot" supported="no">
286      <description>Colrot</description>
287      <year>1983</year>
288      <publisher>TCS</publisher>
289      <info name="usage" value="Type SYSTEM and load with COLROT"/>
290
291      <part name="cass1" interface="cgenie_cass">
292         <dataarea name="cass" size="12132">
293            <rom name="colour rot (1983)(tcs)(de).cas" size="12132" crc="d95dc066" sha1="52c112b2e342fcec6faac1a10677e3f1ba2cdc6a" offset="0" />
294         </dataarea>
295      </part>
296   </software>
297
298   <software name="colscha" supported="no">
299      <description>Colour-SCHACH</description>
300      <year>1983</year>
301      <publisher>&lt;unknown&gt;</publisher>
302      <info name="usage" value="Type SYSTEM and load with SARGON"/>
303
304      <part name="cass1" interface="cgenie_cass">
305         <dataarea name="cass" size="10161">
306            <rom name="colour schach (1983)(-)(de).cas" size="10161" crc="b21c8982" sha1="78bb511ac85cc5b996a2fcfe6ebb9dc9e25e2040" offset="0" />
307         </dataarea>
308      </part>
309   </software>
310
311   <software name="colsch" supported="no">
312      <description>Colour Schach</description>
313      <year>1983</year>
314      <publisher>TCS</publisher>
315      <info name="usage" value="Type SYSTEM and load with SCHACH"/>
316
317      <part name="cass1" interface="cgenie_cass">
318         <dataarea name="cass" size="11127">
319            <rom name="colour schach (1983)(tcs)(de).cas" size="11127" crc="997f5271" sha1="ce040beccae0504b169f693bf6a8c17633bfcfb8" offset="0" />
320         </dataarea>
321      </part>
322   </software>
323
324   <software name="cosmicat" supported="no">
325      <description>Cosmic Attack</description>
326      <year>198?</year>
327      <publisher>Kansas Software</publisher>
328      <info name="usage" value="Type SYSTEM and load with COSMIC"/>
329
330      <part name="cass1" interface="cgenie_cass">
331         <dataarea name="cass" size="9775">
332            <rom name="cosmic attack (19xx)(kansas software).cas" size="9775" crc="a0231790" sha1="5b9fec64e2f46e8240ed1416c2e3a7c12e489251" offset="0" />
333         </dataarea>
334      </part>
335   </software>
336
337   <software name="crzpaintb" cloneof="crzpaint" supported="no">
338      <description>Crazy Paint (Later, Alt)</description>
339      <year>1984</year>
340      <publisher>The Colour Connection</publisher>
341      <info name="usage" value="Type SYSTEM and load with CRAZY2"/>
342
343      <part name="cass1" interface="cgenie_cass">
344         <dataarea name="cass" size="13654">
345            <rom name="crazy paint (19xx)(-).cas" size="13654" crc="75202477" sha1="465b440db5c9acc46ef5186a5b1cad0f0938d3d4" offset="0" />
346         </dataarea>
347      </part>
348   </software>
349
350   <software name="eagle" supported="no">
351      <description>Eagle</description>
352      <year>1983</year>
353      <publisher>TCS</publisher>
354      <info name="usage" value="Type SYSTEM and load with EAGLE"/>
355
356      <part name="cass1" interface="cgenie_cass">
357         <dataarea name="cass" size="14910">
358            <rom name="eagle (1983)(tcs)(de).cas" size="14910" crc="3453cd15" sha1="fb4089ad9dc2df0d5120eae7256b8354cda9696f" offset="0" />
359         </dataarea>
360      </part>
361   </software>
362
363   <software name="eatman" supported="no">
364      <description>Eatman</description>
365      <year>1983</year>
366      <publisher>Computer Service W. Neumann - Molimerx Ltd.</publisher>
367      <info name="usage" value="Type SYSTEM and load with EATMAN"/>
368
369      <part name="cass1" interface="cgenie_cass">
370         <dataarea name="cass" size="4003">
371            <rom name="eatman (1983)(computer service).cas" size="4003" crc="eaa18750" sha1="641ee74cf5e19dfd69955e153a309030e47b6284" offset="0" />
372         </dataarea>
373      </part>
374   </software>
375
376   <software name="eis" supported="no">
377      <description>Eis</description>
378      <year>1983</year>
379      <publisher>TCS</publisher>
380      <info name="usage" value="Type SYSTEM and load with EIS"/>
381
382      <part name="cass1" interface="cgenie_cass">
383         <dataarea name="cass" size="14908">
384            <rom name="eis (1983)(tcs)(de).cas" size="14908" crc="36ae9438" sha1="45046f1ec0b7111179858996d15e3eea6f85f17e" offset="0" />
385         </dataarea>
386      </part>
387   </software>
388
389   <software name="eliminat" supported="no">
390      <description>Eliminator</description>
391      <year>1984</year>
392      <publisher>The Colour Connection</publisher>
393      <info name="usage" value="Type SYSTEM and load with ELIMIN"/>
394
395      <part name="cass1" interface="cgenie_cass">
396         <dataarea name="cass" size="12451">
397            <rom name="eliminator (1984)(tcs).cas" size="12451" crc="e1e5e436" sha1="86cc1030fc256cd16149003d5b66725ac0f3da5d" offset="0" />
398         </dataarea>
399      </part>
400   </software>
401
402   <software name="fgr" supported="no">
403      <description>Unknown program "FGR"</description>
404      <year>19??</year>
405      <publisher>&lt;unknown&gt;</publisher>
406      <info name="usage" value="Type SYSTEM and load with FGR"/>
407
408      <part name="cass1" interface="cgenie_cass">
409         <dataarea name="cass" size="17">
410            <rom name="fgr (19xx)(-).cas" size="17" crc="3a132301" sha1="d28f49d820906046968d1f0f89c62b1f40ae17b5" offset="0" />
411         </dataarea>
412      </part>
413   </software>
414
415   <software name="firebird" supported="no">
416      <description>Firebird</description>
417      <year>1983</year>
418      <publisher>Heinz Hubben Software</publisher>
419      <info name="usage" value="Type SYSTEM and load with FIREB"/>
420
421      <part name="cass1" interface="cgenie_cass">
422         <dataarea name="cass" size="13899">
423            <rom name="firebird (1983)(binzinger, thomas m.)(de).cas" size="13899" crc="a102563d" sha1="7006f67ed89269de733997022c5998e402d774fb" offset="0" />
424         </dataarea>
425      </part>
426   </software>
427
428   <software name="flugsim" supported="no">
429      <description>Colour Genie Flugsimulator</description>
430      <year>198?</year>
431      <publisher>TCS</publisher>
432      <info name="usage" value="Type SYSTEM and load with FLUG"/>
433
434      <part name="cass1" interface="cgenie_cass">
435         <dataarea name="cass" size="15755">
436            <rom name="flugsimulator (19xx)(-)(de).cas" size="15755" crc="091cc8bd" sha1="02ebb664e9335035a68419b92193114da5caacc1" offset="0" />
437         </dataarea>
438      </part>
439   </software>
440
441   <software name="fraggles" supported="no">
442      <description>Im Reich der Fraggles</description>
443      <year>19??</year>
444      <publisher>&lt;unknown&gt;</publisher>
445      <info name="usage" value="Type SYSTEM and load with FRAGGL"/>
446
447      <part name="cass1" interface="cgenie_cass">
448         <dataarea name="cass" size="12619">
449            <rom name="im reich aer fraggles (19xx)(-).cas" size="12619" crc="4a107aaf" sha1="4664d6bcf7ae86558b598a576c6249b7612b00c3" offset="0" />
450         </dataarea>
451      </part>
452   </software>
453
454   <software name="glueck" supported="no">
455      <description>Glueckspilz</description>
456      <year>1983</year>
457      <publisher>TCS?</publisher>
458      <info name="usage" value="Type SYSTEM and load with GLUECK"/>
459
460      <part name="cass1" interface="cgenie_cass">
461         <dataarea name="cass" size="14655">
462            <rom name="glueckspilz (1983)(gronostay, udo - kunze, klaus)(de).cas" size="14655" crc="92c71078" sha1="b118e0da5824e55df8268a3bbc10be64f7d7499e" offset="0" />
463         </dataarea>
464      </part>
465   </software>
466
467   <software name="grafiked" supported="no">
468      <description>Grafik Editor</description>
469      <year>1983</year>
470      <publisher>TCS?</publisher>
471      <info name="usage" value="Type SYSTEM and load with GRAFIK"/>
472
473      <part name="cass1" interface="cgenie_cass">
474         <dataarea name="cass" size="41555">
475            <rom name="grafik editor (1983)(gerber, udo)(de).cas" size="41555" crc="7cbf2726" sha1="7e0b4e3dd1363a68324f50408f827e685aaab286" offset="0" />
476         </dataarea>
477      </part>
478   </software>
479
480   <software name="helikopt" supported="no">
481      <description>Helikopter</description>
482      <year>1983</year>
483      <publisher>Heinz Hubben Software</publisher>
484      <info name="usage" value="Type SYSTEM and load with HELIKO"/>
485
486      <part name="cass1" interface="cgenie_cass">
487         <dataarea name="cass" size="18148">
488            <rom name="helikopter (1983)(binzinger, thomas m.)(de).cas" size="18148" crc="5c046ce2" sha1="606560daa74dd39b06e89881918b730bd19f2442" offset="0" />
489         </dataarea>
490      </part>
491   </software>
492
493   <software name="invasion" supported="no">
494      <description>Invasion aus dem Weltraum</description>
495      <year>1982</year>
496      <publisher>Harald Boegeholz</publisher>
497      <info name="usage" value="Type SYSTEM and load with INVASI"/>
498
499      <part name="cass1" interface="cgenie_cass">
500         <dataarea name="cass" size="8450">
501            <rom name="invasion aus dem weltraum (1982)(boegeholz, harald)(de).cas" size="8450" crc="8fd27759" sha1="445198d22d8d7b2dafd747006ffd156fede301bc" offset="0" />
502         </dataarea>
503      </part>
504   </software>
505
506   <software name="jetset" supported="no">
507      <description>Jet Set Billy 16K Version</description>
508      <year>1984</year>
509      <publisher>Arcade Games</publisher>
510      <info name="usage" value="Type SYSTEM and load with JETSET"/>
511
512      <part name="cass1" interface="cgenie_cass">
513         <dataarea name="cass" size="2123">
514            <rom name="jet set billy (1984)(hamilton, r.)(part 1 of 2)[req 16k].cas" size="2123" crc="883161e8" sha1="6062a05ccde2e8b8165575c902f2109ca83e95f2" offset="0" />
515         </dataarea>
516      </part>
517      <part name="cass2" interface="cgenie_cass">
518         <dataarea name="cass" size="9197">
519            <rom name="jet set billy (1984)(hamilton, r.)(part 2 of 2)[req 16k].cas" size="9197" crc="98c7a0da" sha1="74d0a79f9a931df03df2b06350521d7d390786c9" offset="0" />
520         </dataarea>
521      </part>
522   </software>
523
524   <software name="life" supported="no">
525      <description>Life</description>
526      <year>1983</year>
527      <publisher>TCS</publisher>
528      <info name="usage" value="Type SYSTEM and load with LIFE"/>
529
530      <part name="cass1" interface="cgenie_cass">
531         <dataarea name="cass" size="5625">
532            <rom name="life (1983)(tcs)(de).cas" size="5625" crc="18d97fe6" sha1="166e8cc82883ebf5afa64db8acb7fbd7121a2175" offset="0" />
533         </dataarea>
534      </part>
535   </software>
536
537   <software name="lunarlan" supported="no">
538      <description>Lunar Lander</description>
539      <year>1983</year>
540      <publisher>TCS</publisher>
541      <info name="usage" value="Type SYSTEM and load with LUNA L"/>
542
543      <part name="cass1" interface="cgenie_cass">
544         <dataarea name="cass" size="15493">
545            <rom name="lunar lander (1983)(weber, klaus).cas" size="15493" crc="916ceeb1" sha1="c1662e927629668e8dbdf1a2b4f955e27894474a" offset="0" />
546         </dataarea>
547      </part>
548   </software>
549
550   <software name="mampf2" supported="no">
551      <description>Mampf Man II</description>
552      <year>1983</year>
553      <publisher>TCS</publisher>
554      <info name="usage" value="Type SYSTEM and load with MAMPF2"/>
555
556      <part name="cass1" interface="cgenie_cass">
557         <dataarea name="cass" size="17055">
558            <rom name="mampf man ii (1983)(weber, klaus).cas" size="17055" crc="e6ffd933" sha1="c1952444e8d99e367058ddd0b70ecb0eb3ce8834" offset="0" />
559         </dataarea>
560      </part>
561   </software>
562
563   <software name="kaefer" supported="no">
564      <description>Marien Kaefer</description>
565      <year>1984</year>
566      <publisher>TCS?</publisher>
567      <info name="usage" value="Type SYSTEM and load with KAEFER"/>
568
569      <part name="cass1" interface="cgenie_cass">
570         <dataarea name="cass" size="17118">
571            <rom name="marien kaefer (1984)(weber, klaus).cas" size="17118" crc="38422db1" sha1="a3aabab4aa5166b18846186a5565eca47f4d62e9" offset="0" />
572         </dataarea>
573      </part>
574   </software>
575
576   <software name="meteor" supported="no">
577      <description>Meteor</description>
578      <year>1983</year>
579      <publisher>TCS</publisher>
580      <info name="usage" value="Type SYSTEM and load with METEOR"/>
581
582      <part name="cass1" interface="cgenie_cass">
583         <dataarea name="cass" size="8628">
584            <rom name="meteor (1983)(tcs)(de).cas" size="8628" crc="5683a102" sha1="78ba24d6eda120ede404e3c6fb4fb4d7cb7fd019" offset="0" />
585         </dataarea>
586      </part>
587   </software>
588
589   <software name="monroe" supported="no">
590      <description>Unknown program "MONROE"</description>
591      <year>19??</year>
592      <publisher>&lt;unknown&gt;</publisher>
593      <info name="usage" value="Type SYSTEM and load with MONROE"/>
594
595      <part name="cass1" interface="cgenie_cass">
596         <dataarea name="cass" size="4198">
597            <rom name="monroe (19xx)(-).cas" size="4198" crc="820b662f" sha1="0c2ccf61ee673384a05d1012fca09e215fd7880d" offset="0" />
598         </dataarea>
599      </part>
600   </software>
601
602   <software name="motten" supported="no">
603      <description>Motten</description>
604      <year>1982</year>
605      <publisher>TCS</publisher>
606      <info name="usage" value="Type SYSTEM and load with MOTTEN"/>
607
608      <part name="cass1" interface="cgenie_cass">
609         <dataarea name="cass" size="14630">
610            <rom name="motten (1982)(tcs)(de).cas" size="14630" crc="fb5efa13" sha1="75fe474ec2ab0ebf7d300e95561788b4d91b8637" offset="0" />
611         </dataarea>
612      </part>
613   </software>
614
615   <software name="musik" supported="no">
616      <description>Musik</description>
617      <year>1983</year>
618      <publisher>TCS</publisher>
619      <info name="usage" value="Type SYSTEM and load with MUSIK"/>
620
621      <part name="cass1" interface="cgenie_cass">
622         <dataarea name="cass" size="15639">
623            <rom name="musik demo (1983)(tcs).cas" size="15639" crc="ac9a24d8" sha1="7d035d6f2b523e87462f41812352634bfee9397e" offset="0" />
624         </dataarea>
625      </part>
626   </software>
627
628   <software name="netzo" supported="no">
629      <description>Netzo</description>
630      <year>1983</year>
631      <publisher>TCS</publisher>
632      <info name="usage" value="Type SYSTEM and load with NETZO"/>
633
634      <part name="cass1" interface="cgenie_cass">
635         <dataarea name="cass" size="14990">
636            <rom name="netzo (1983)(tcs)(de).cas" size="14990" crc="63eac136" sha1="fa35faff66988c94ed7caff0c9f593075d2dcbb0" offset="0" />
637         </dataarea>
638      </part>
639   </software>
640
641   <software name="pacboy" supported="no">
642      <description>Pac Boy</description>
643      <year>1984</year>
644      <publisher>Heinz Hubben Software</publisher>
645      <info name="usage" value="Type SYSTEM and load with PACBOY"/>
646
647      <part name="cass1" interface="cgenie_cass">
648         <dataarea name="cass" size="13376">
649            <rom name="pac boy (1984)(spectra games)(de).cas" size="13376" crc="515b36d4" sha1="a3945e5dda04f0964880acacd2778dd99ff200d3" offset="0" />
650         </dataarea>
651      </part>
652   </software>
653
654   <software name="crzpaint" supported="no">
655      <description>Crazy Paint</description>
656      <year>1983</year>
657      <publisher>TCS</publisher>
658      <info name="usage" value="Type SYSTEM and load with PAINT"/>
659
660      <part name="cass1" interface="cgenie_cass">
661         <dataarea name="cass" size="12539">
662            <rom name="painter (19xx)(-).cas" size="12539" crc="4665242c" sha1="07bfc1328c12f81cb7bf18c0e3bf8f1d5983222b" offset="0" />
663         </dataarea>
664      </part>
665   </software>
666
667   <software name="crzpainta" cloneof="crzpaint" supported="no">
668      <description>Crazy Paint (Later)</description>
669      <year>1984</year>
670      <publisher>The Colour Connection</publisher>
671      <info name="usage" value="Type SYSTEM and load with PAINT2"/>
672
673      <part name="cass1" interface="cgenie_cass">
674         <dataarea name="cass" size="13583">
675            <rom name="painter 2 (19xx)(-).cas" size="13583" crc="b5d90e32" sha1="734678f6fa49d7f2263b6633bb191dc0c241ec1a" offset="0" />
676         </dataarea>
677      </part>
678   </software>
679
680   <software name="rs232" supported="no">
681      <description>RS-232 Treiberprogramm</description>
682      <year>19??</year>
683      <publisher>&lt;unknown&gt;</publisher>
684      <info name="usage" value="Type SYSTEM and load with RS232"/>
685
686      <part name="cass1" interface="cgenie_cass">
687         <dataarea name="cass" size="209">
688            <rom name="rs-232 treiber programm (19xx)(-)(de).cas" size="209" crc="53f5b980" sha1="8d192995c5ac6e4a7241ae8200f78ab26647b3c4" offset="0" />
689         </dataarea>
690      </part>
691   </software>
692
693   <software name="saug" supported="no">
694      <description>Saug</description>
695      <year>1983</year>
696      <publisher>TCS</publisher>
697      <info name="usage" value="Type SYSTEM and load with SAUG"/>
698
699      <part name="cass1" interface="cgenie_cass">
700         <dataarea name="cass" size="11885">
701            <rom name="saug (1982)(tcs).cas" size="11885" crc="f477896c" sha1="34fa2c2ce143785eb9ebda1b3889f86ee2fa81ab" offset="0" />
702         </dataarea>
703      </part>
704   </software>
705
706   <software name="scrprint" supported="no">
707      <description>Screen Printer</description>
708      <year>1983</year>
709      <publisher>TCS</publisher>
710      <info name="usage" value="Type SYSTEM and load with FONTS"/>
711
712      <part name="cass1" interface="cgenie_cass">
713         <dataarea name="cass" size="12071">
714            <rom name="screen printer (1983)(tcs).cas" size="12071" crc="ea427be8" sha1="6a4f8d8858a0a8859d21eb2bab658fbc25526319" offset="0" />
715         </dataarea>
716      </part>
717   </software>
718
719   <software name="scuttle" supported="no">
720      <description>Scuttle</description>
721      <year>1982</year>
722      <publisher>TGC?</publisher>
723      <info name="usage" value="Type SYSTEM and load with SCUTTL"/>
724
725      <part name="cass1" interface="cgenie_cass">
726         <dataarea name="cass" size="14906">
727            <rom name="scuttle (1982)(schwertfeger, t.)(de).cas" size="14906" crc="2fb32641" sha1="c0bab5873e9ac16e853d98a2eab374afeebb1dd2" offset="0" />
728         </dataarea>
729      </part>
730   </software>
731
732   <software name="skramble" supported="no">
733      <description>Skramble</description>
734      <year>1983</year>
735      <publisher>Algray Software</publisher>
736      <info name="usage" value="Type SYSTEM and load with SKRMBL"/>
737
738      <part name="cass1" interface="cgenie_cass">
739         <dataarea name="cass" size="21939">
740            <rom name="skramble (1983)(sampson, stuart).cas" size="21939" crc="249df317" sha1="f9ebd7d63ec8d018eef5ac351de75aa615cf70a7" offset="0" />
741         </dataarea>
742      </part>
743   </software>
744
745   <software name="softschu" supported="no">
746      <description>Software-Schutz</description>
747      <year>1983</year>
748      <publisher>Harald Boegeholz</publisher>
749      <info name="usage" value="Type SYSTEM and load with EGPROT"/>
750
751      <part name="cass1" interface="cgenie_cass">
752         <dataarea name="cass" size="978">
753            <rom name="software-schutz (1983)(boegeholz, harald)(de).cas" size="978" crc="4baa38a3" sha1="5efc2ab9b44da3d2c3cf743808e7a20b9e8e595c" offset="0" />
754         </dataarea>
755      </part>
756   </software>
757
758   <software name="spaceatt" supported="no">
759      <description>Space Attack</description>
760      <year>1984</year>
761      <publisher>The Colour Connection</publisher>
762      <info name="usage" value="Type SYSTEM and load with SPACE"/>
763
764      <part name="cass1" interface="cgenie_cass">
765         <dataarea name="cass" size="7606">
766            <rom name="space attack (1984)(mueller, a.).cas" size="7606" crc="8f1c0271" sha1="9230b416d6928cb2616d3e5176589ec6c76d00ca" offset="0" />
767         </dataarea>
768      </part>
769   </software>
770
771   <software name="spaceman" supported="no">
772      <description>Spaceman</description>
773      <year>198?</year>
774      <publisher>TCS?</publisher>
775      <info name="usage" value="Type SYSTEM and load with SPACE"/>
776
777      <part name="cass1" interface="cgenie_cass">
778         <dataarea name="cass" size="11618">
779            <rom name="spaceman (19xx)(drawe, alexander)(de).cas" size="11618" crc="3de8d663" sha1="19da6f30c6f254c2bb01b6ce52a9bad4d7022858" offset="0" />
780         </dataarea>
781      </part>
782   </software>
783
784   <software name="superbas" supported="no">
785      <description>Super-Basic</description>
786      <year>19??</year>
787      <publisher>Heinz Hubben Software</publisher>
788      <info name="usage" value="Type SYSTEM and load with BASCOM"/>
789
790      <part name="cass1" interface="cgenie_cass">
791         <dataarea name="cass" size="7577">
792            <rom name="super basic (19xx)(huebben, heinz)(de).cas" size="7577" crc="1da95676" sha1="ab79434eed8f98bb0336a37c65a19c15af11f660" offset="0" />
793         </dataarea>
794      </part>
795   </software>
796
797   <software name="superhrn" supported="no">
798      <description>Superhirn</description>
799      <year>1982</year>
800      <publisher>TTS</publisher>
801      <info name="usage" value="Type SYSTEM and load with MASTER"/>
802
803      <part name="cass1" interface="cgenie_cass">
804         <dataarea name="cass" size="7938">
805            <rom name="super hirn (1982)(-).cas" size="7938" crc="b2fa4ace" sha1="ec05875e6a5d63faa01778fc51880a2a32920e1d" offset="0" />
806         </dataarea>
807      </part>
808   </software>
809
810   <software name="supergra" supported="no">
811      <description>Super-Grafik</description>
812      <year>1984</year>
813      <publisher>The Colour Connection</publisher>
814      <info name="usage" value="Type SYSTEM and load with SPLOT"/>
815
816      <part name="cass1" interface="cgenie_cass">
817         <dataarea name="cass" size="24370">
818            <rom name="super plot (1984)(steffenhagen, ralf)(de).cas" size="24370" crc="5f49eda1" sha1="733c7b7f0b032cf0e6e6c07831c9fa5227e191d8" offset="0" />
819         </dataarea>
820      </part>
821   </software>
822
823   <software name="syscopy" supported="no">
824      <description>System Copy</description>
825      <year>19??</year>
826      <publisher>&lt;unknown&gt;</publisher>
827      <info name="usage" value="Type SYSTEM and load with SYSCOP"/>
828
829      <part name="cass1" interface="cgenie_cass">
830         <dataarea name="cass" size="2003">
831            <rom name="system copy (19xx)(-)(de).cas" size="2003" crc="1fa35da3" sha1="0b7e18b1c1898b047fe867d10a5e0138113510e0" offset="0" />
832         </dataarea>
833      </part>
834   </software>
835
836   <software name="tausend" supported="no">
837      <description>Tausend Fuss</description>
838      <year>1983</year>
839      <publisher>TCS</publisher>
840      <info name="usage" value="Type SYSTEM and load with FUSS"/>
841
842      <part name="cass1" interface="cgenie_cass">
843         <dataarea name="cass" size="3822">
844            <rom name="tausend fuss (1983)(tcs)(de).cas" size="3822" crc="41504360" sha1="ea0449594a28ce73df36a7bbf643e89e26abc223" offset="0" />
845         </dataarea>
846      </part>
847   </software>
848
849   <software name="toadman" supported="no">
850      <description>Toad Mania</description>
851      <year>1983</year>
852      <publisher>Gumboot Software</publisher>
853      <info name="usage" value="Type SYSTEM and load with TOAD"/>
854
855      <part name="cass1" interface="cgenie_cass">
856         <dataarea name="cass" size="9359">
857            <rom name="toad mania (1983)(gumboot).cas" size="9359" crc="e91c4c81" sha1="c221592c09df5f44284e6ded42df3fcc7e5ff088" offset="0" />
858         </dataarea>
859      </part>
860   </software>
861
862   <software name="tracemon" supported="no">
863      <description>Tracemon</description>
864      <year>1983</year>
865      <publisher>Juergen Buchmueller</publisher>
866      <info name="usage" value="Type SYSTEM and load with TRACEM"/>
867
868      <part name="cass1" interface="cgenie_cass">
869         <dataarea name="cass" size="8382">
870            <rom name="tracemon (1983)(buchmueller, juergen).cas" size="8382" crc="6b0bf332" sha1="a2f354850c0b5e6a55273ce726a52010eb33ca4f" offset="0" />
871         </dataarea>
872      </part>
873   </software>
874
875   <software name="triton" supported="no">
876      <description>Triton Battle</description>
877      <year>19??</year>
878      <publisher>Schmidtke Electronic</publisher>
879      <info name="usage" value="Type SYSTEM and load with TRIBAT"/>
880
881      <part name="cass1" interface="cgenie_cass">
882         <dataarea name="cass" size="11743">
883            <rom name="triton battle (19xx)(gergeleit, m. - steinbeck, h.c.).cas" size="11743" crc="1bbab68f" sha1="4744ce3b7e2c6912fd9ddfd6dfba4007eebca62c" offset="0" />
884         </dataarea>
885      </part>
886   </software>
887
888   <software name="ubootjag" supported="no">
889      <description>U-Boot-Jagd</description>
890      <year>198?</year>
891      <publisher>TGC?</publisher>
892      <info name="usage" value="Type SYSTEM and load with U-BOOT"/>
893
894      <part name="cass1" interface="cgenie_cass">
895         <dataarea name="cass" size="11497">
896            <rom name="u boot jagd (19xx)(-)(de).cas" size="11497" crc="5caa9b13" sha1="e1c10245217b5f8e23a3a966fb40f809e105c1a2" offset="0" />
897         </dataarea>
898      </part>
899   </software>
900
901   <software name="unkmulti" supported="no">
902      <description>Unknown multi-program tape</description>
903      <year>19??</year>
904      <publisher>&lt;unknown&gt;</publisher>
905      <info name="usage" value="Type SYSTEM and load with UHRCOP or SCRPRT"/>
906
907      <part name="cass1" interface="cgenie_cass">
908         <dataarea name="cass" size="1481">
909            <rom name="uhr copy (19xx)(-)(de).cas" size="1481" crc="27938748" sha1="c1e87c3e7aa2842b5b95ce4fbac24d6cb9a287fd" offset="0" />
910         </dataarea>
911      </part>
912   </software>
913
914   <software name="zeichen" supported="no">
915      <description>Zeichen Editor</description>
916      <year>1983</year>
917      <publisher>TCS</publisher>
918      <info name="usage" value="Type SYSTEM and load with EDITO2"/>
919
920      <part name="cass1" interface="cgenie_cass">
921         <dataarea name="cass" size="11131">
922            <rom name="definierbare zeichen editor (1983)(tcs).cas" size="11131" crc="a21e5f61" sha1="57ce7c921e8a773de0f30dde65f2320e114bbe71" offset="0" />
923         </dataarea>
924      </part>
925   </software>
926
927   <software name="zeichena" cloneof="zeichen" supported="no">
928      <description>Zeichen Editor (Alt)</description>
929      <year>1983</year>
930      <publisher>TCS</publisher>
931      <info name="usage" value="Type SYSTEM and load with EDITOR"/>
932
933      <part name="cass1" interface="cgenie_cass">
934         <dataarea name="cass" size="9233">
935            <rom name="definierbare zeichen editor (1983)(tcs)[a].cas" size="9233" crc="dff8308e" sha1="b3cb291e5f96141187d19b18edc048aba544d7be" offset="0" />
936         </dataarea>
937      </part>
938   </software>
939
940</softwarelist>
trunk/hash/compclr2_flop.xml
r241777r241778
33<softwarelist name="compclr2_flop" description="Compucolor II Disk Images">
44
55   <software name="asndware">
6      <description>Action Soundware</description>
6      <description>action_soundware</description>
77      <year>19??</year>
88      <publisher>&lt;unknown&gt;</publisher>
99      <part name="flop1" interface="floppy_5_25">
r241777r241778
1414   </software>
1515
1616   <software name="agilis">
17      <description>Agilis</description>
17      <description>agilis</description>
1818      <year>19??</year>
1919      <publisher>&lt;unknown&gt;</publisher>
2020      <part name="flop1" interface="floppy_5_25">
r241777r241778
2525   </software>
2626
2727   <software name="airraid">
28      <description>Air Raid</description>
28      <description>airraid</description>
2929      <year>19??</year>
3030      <publisher>&lt;unknown&gt;</publisher>
3131      <part name="flop1" interface="floppy_5_25">
r241777r241778
3636   </software>
3737
3838   <software name="alieninv">
39      <description>Alien Invasion (v1.4)</description>
39      <description>alien_invasion_v1.4</description>
4040      <year>19??</year>
4141      <publisher>&lt;unknown&gt;</publisher>
4242      <part name="flop1" interface="floppy_5_25">
r241777r241778
4646      </part>
4747   </software>
4848
49   <software name="alieninva" cloneof="alieninv">
50      <description>Alien Invasion (v1.4, Alt)</description>
49   <software name="altronic">
50      <description>alltronics</description>
5151      <year>19??</year>
5252      <publisher>&lt;unknown&gt;</publisher>
5353      <part name="flop1" interface="floppy_5_25">
54         <dataarea name="flop" size="162879">
55            <rom name="alien_invasion_v1.4 (alt).ccvf" size="162879" crc="ba6ecb8c" sha1="7f5f24fafcc50c380f42f86fb502683259edfc40" offset="0" />
54         <dataarea name="flop" size="162831">
55            <rom name="alltronics.ccvf" size="162831" crc="b35c5bb8" sha1="7ce89d3ac445814452e97a9b6d44ba6b47f158a4" offset="0"/>
5656         </dataarea>
5757      </part>
5858   </software>
5959
60   <software name="altronic">
61      <description>Alltronics</description>
60   <software name="analiz">
61      <description>analiz_watals</description>
6262      <year>19??</year>
6363      <publisher>&lt;unknown&gt;</publisher>
6464      <part name="flop1" interface="floppy_5_25">
65         <dataarea name="flop" size="162831">
66            <rom name="alltronics.ccvf" size="162831" crc="b35c5bb8" sha1="7ce89d3ac445814452e97a9b6d44ba6b47f158a4" offset="0"/>
65         <dataarea name="flop" size="162871">
66            <rom name="analiz_watals.ccvf" size="162871" crc="91bb3632" sha1="61472691a68688b3a9281385327a7d07e77c9d3b" offset="0"/>
6767         </dataarea>
6868      </part>
6969   </software>
7070
71   <software name="arcadegm">
72      <description>Arcade Games</description>
71   <software name="arcdsoft">
72      <description>arcade_softwares</description>
7373      <year>19??</year>
7474      <publisher>&lt;unknown&gt;</publisher>
7575      <part name="flop1" interface="floppy_5_25">
r241777r241778
8080   </software>
8181
8282   <software name="asmutlma">
83      <description>ASM Utilities - Macros</description>
83      <description>asm_utilities_macros</description>
8484      <year>19??</year>
8585      <publisher>&lt;unknown&gt;</publisher>
8686      <part name="flop1" interface="floppy_5_25">
r241777r241778
9191   </software>
9292
9393   <software name="asmutil3">
94      <description>ASM Utilities - 3</description>
94      <description>asm_utility_3</description>
9595      <year>19??</year>
9696      <publisher>&lt;unknown&gt;</publisher>
9797      <part name="flop1" interface="floppy_5_25">
r241777r241778
102102   </software>
103103
104104   <software name="asmutil4">
105      <description>ASM Utilities - 4</description>
105      <description>asm_utility_4-sidea</description>
106106      <year>19??</year>
107107      <publisher>&lt;unknown&gt;</publisher>
108108      <part name="flop1" interface="floppy_5_25">
r241777r241778
119119   </software>
120120
121121   <software name="asmutilr">
122      <description>ASM Utilities - Routines</description>
122      <description>asm_utility_routines-sidea</description>
123123      <year>19??</year>
124124      <publisher>&lt;unknown&gt;</publisher>
125125      <part name="flop1" interface="floppy_5_25">
r241777r241778
135135      </part>
136136   </software>
137137
138   <software name="asmtutor">
139      <description>ASM Tutorial</description>
138   <software name="asmtut">
139      <description>asmtut_disk1</description>
140140      <year>19??</year>
141141      <publisher>&lt;unknown&gt;</publisher>
142142      <part name="flop1" interface="floppy_5_25">
r241777r241778
171171   </software>
172172
173173   <software name="asteroid">
174      <description>Asteroids</description>
174      <description>asteroids</description>
175175      <year>19??</year>
176176      <publisher>&lt;unknown&gt;</publisher>
177177      <part name="flop1" interface="floppy_5_25">
r241777r241778
181181      </part>
182182
183183      <part name="flop2" interface="floppy_5_25">
184         <info name="part_id" value="Source"/>
185184         <dataarea name="flop" size="162886">
186185            <rom name="asteriods_source.ccvf" size="162886" crc="14af4de7" sha1="43a76ffda8b4e2f5513c8cd9ac6390ab15854280" offset="0"/>
187186         </dataarea>
188187      </part>
189188   </software>
190   
191   <software name="asteroida" cloneof="asteroid">
192      <description>Asteroids (Alt)</description>
193      <year>19??</year>
194      <publisher>&lt;unknown&gt;</publisher>
195      <part name="flop1" interface="floppy_5_25">
196         <dataarea name="flop" size="162935">
197            <rom name="asteroids (alt).ccvf" size="162935" crc="b51497b3" sha1="4944301634059ba51b35b2b9f6c021967c5fee26" offset="0" />
198         </dataarea>
199      </part>
200189
201      <part name="flop2" interface="floppy_5_25">
202         <info name="part_id" value="Source"/>
203         <dataarea name="flop" size="162886">
204            <rom name="asteriods_source.ccvf" size="162886" crc="14af4de7" sha1="43a76ffda8b4e2f5513c8cd9ac6390ab15854280" offset="0"/>
205         </dataarea>
206      </part>
207   </software>
208
209190   <software name="ay8910">
210      <description>AY-3-8910 Programs</description>
191      <description>ay-3-8910_programs</description>
211192      <year>19??</year>
212193      <publisher>&lt;unknown&gt;</publisher>
213194      <part name="flop1" interface="floppy_5_25">
r241777r241778
218199   </software>
219200
220201   <software name="backgamn">
221      <description>Backgammon</description>
202      <description>backgammon-sidea</description>
222203      <year>19??</year>
223204      <publisher>&lt;unknown&gt;</publisher>
224205      <part name="flop1" interface="floppy_5_25">
r241777r241778
228209      </part>
229210
230211      <part name="flop2" interface="floppy_5_25">
231         <info name="part_id" value="Source"/>
232212         <dataarea name="flop" size="162832">
233213            <rom name="backgammon-sideb.ccvf" size="162832" crc="7f9aca0c" sha1="a6b588e075c17f5d1ff10675de88f3c51a4ca35e" offset="0"/>
234214         </dataarea>
r241777r241778
236216   </software>
237217
238218   <software name="basiccmp">
239      <description>BASIC Compiler v12.25</description>
219      <description>basic_compiler_v12.25</description>
240220      <year>19??</year>
241221      <publisher>&lt;unknown&gt;</publisher>
242222      <part name="flop1" interface="floppy_5_25">
r241777r241778
247227   </software>
248228
249229   <software name="basiclng">
250      <description>BASIC Language</description>
230      <description>basic_language_1-5</description>
251231      <year>19??</year>
252232      <publisher>&lt;unknown&gt;</publisher>
253233      <part name="flop1" interface="floppy_5_25">
r241777r241778
270250   </software>
271251
272252   <software name="basicles">
273      <description>BASIC Lessons</description>
253      <description>basic_lessons</description>
274254      <year>19??</year>
275255      <publisher>&lt;unknown&gt;</publisher>
276256      <part name="flop1" interface="floppy_5_25">
r241777r241778
280260      </part>
281261   </software>
282262
283   <software name="basiclesa" cloneof="basicles">
284      <description>BASIC Lessons (Alt)</description>
285      <year>19??</year>
286      <publisher>&lt;unknown&gt;</publisher>
287      <part name="flop1" interface="floppy_5_25">
288         <dataarea name="flop" size="162981">
289            <rom name="basic_lessons (alt).ccvf" size="162981" crc="a7062afc" sha1="d404c9f526a78f0d91c214f64bc05be8f35ea952" offset="0" />
290         </dataarea>
291      </part>
292   </software>
293
294263   <software name="basicutl">
295      <description>BASIC Utilities</description>
264      <description>basic_utilities</description>
296265      <year>19??</year>
297266      <publisher>&lt;unknown&gt;</publisher>
298267      <part name="flop1" interface="floppy_5_25">
r241777r241778
302271      </part>
303272   </software>
304273
305   <software name="bship">
306      <description>Battleship</description>
274   <software name="bttlship">
275      <description>battleship</description>
307276      <year>19??</year>
308277      <publisher>&lt;unknown&gt;</publisher>
309278      <part name="flop1" interface="floppy_5_25">
r241777r241778
313282      </part>
314283   </software>
315284
316   <software name="bshipa" cloneof="bship">
317      <description>Battleship (Alt)</description>
285   <software name="bertsbar">
286      <description>berts_bar</description>
318287      <year>19??</year>
319288      <publisher>&lt;unknown&gt;</publisher>
320289      <part name="flop1" interface="floppy_5_25">
321         <dataarea name="flop" size="162916">
322            <rom name="battleship (alt).ccvf" size="162916" crc="e0b169cc" sha1="265ccb3f19ebe1e35da1cda7f5c5ba3106df8313" offset="0" />
290         <dataarea name="flop" size="162856">
291            <rom name="berts_bar.ccvf" size="162856" crc="7a041e32" sha1="cabe252f239c2437c5edc00afa62374224308336" offset="0"/>
323292         </dataarea>
324293      </part>
325294   </software>
326295
327   <software name="bertsbar">
328      <description>Bert's Bar</description>
296   <software name="bitmaps">
297      <description>bitmaps</description>
329298      <year>19??</year>
330299      <publisher>&lt;unknown&gt;</publisher>
331300      <part name="flop1" interface="floppy_5_25">
332         <dataarea name="flop" size="162856">
333            <rom name="berts_bar.ccvf" size="162856" crc="7a041e32" sha1="cabe252f239c2437c5edc00afa62374224308336" offset="0"/>
301         <dataarea name="flop" size="162818">
302            <rom name="bitmaps.ccvf" size="162818" crc="03f6ee7f" sha1="f6651f3b4c3d709124782bccb1dafd7fbf557c9c" offset="0"/>
334303         </dataarea>
335304      </part>
336305   </software>
337306
338307   <software name="blackjak">
339      <description>Blackjack</description>
308      <description>blackjack</description>
340309      <year>19??</year>
341310      <publisher>&lt;unknown&gt;</publisher>
342311      <part name="flop1" interface="floppy_5_25">
r241777r241778
347316   </software>
348317
349318   <software name="blank">
350      <description>Blank</description>
319      <description>blank</description>
351320      <year>19??</year>
352321      <publisher>&lt;unknown&gt;</publisher>
353322      <part name="flop1" interface="floppy_5_25">
r241777r241778
357326      </part>
358327   </software>
359328
360   <software name="blanka" cloneof="blank">
361      <description>Blank (Alt)</description>
329   <software name="brdsofts">
330      <description>board_softwares</description>
362331      <year>19??</year>
363      <publisher></publisher>
364      <part name="flop1" interface="floppy_5_25">
365         <dataarea name="flop" size="162818">
366            <rom name="blank (alt).ccvf" size="162818" crc="eac5f303" sha1="bd75191f6b4f9f6b75941851346860012f9fb486" offset="0" />
367         </dataarea>
368      </part>
369   </software>
370
371   <software name="boardgam">
372      <description>Board Games</description>
373      <year>19??</year>
374332      <publisher>&lt;unknown&gt;</publisher>
375333      <part name="flop1" interface="floppy_5_25">
376334         <dataarea name="flop" size="162822">
r241777r241778
380338   </software>
381339
382340   <software name="bondsec">
383      <description>Bonds And Securities</description>
341      <description>bonds_and_securities</description>
384342      <year>19??</year>
385343      <publisher>&lt;unknown&gt;</publisher>
386344      <part name="flop1" interface="floppy_5_25">
r241777r241778
390348      </part>
391349   </software>
392350
393   <software name="bounce">
394      <description>Bounce Ball</description>
351   <software name="bnceball">
352      <description>bounce_ball</description>
395353      <year>19??</year>
396354      <publisher>&lt;unknown&gt;</publisher>
397355      <part name="flop1" interface="floppy_5_25">
r241777r241778
401359      </part>
402360   </software>
403361
404   <software name="cards">
405      <description>Cards</description>
406      <year>19??</year>
407      <publisher>&lt;unknown&gt;</publisher>
408      <part name="flop1" interface="floppy_5_25">
409         <dataarea name="flop" size="162898">
410            <rom name="cards_miller.ccvf" size="162898" crc="0e543b56" sha1="9e6f78c40737c771152c82fae27f2802efdd9273" offset="0" />
411         </dataarea>
412      </part>
413   </software>
414
415362   <software name="catalg32">
416      <description>Catalog 32k</description>
363      <description>catalog_32</description>
417364      <year>19??</year>
418365      <publisher>&lt;unknown&gt;</publisher>
419366      <part name="flop1" interface="floppy_5_25">
r241777r241778
423370      </part>
424371   </software>
425372
426   <software name="bitmaps">
427      <description>Character Bitmaps</description>
428      <year>19??</year>
429      <publisher>&lt;unknown&gt;</publisher>
430      <part name="flop1" interface="floppy_5_25">
431         <dataarea name="flop" size="162818">
432            <rom name="bitmaps.ccvf" size="162818" crc="03f6ee7f" sha1="f6651f3b4c3d709124782bccb1dafd7fbf557c9c" offset="0"/>
433         </dataarea>
434      </part>
435   </software>
436
437373   <software name="ccug14b">
438      <description>Canadian Compucolor Users Disk #14B</description>
374      <description>ccug_14b</description>
439375      <year>19??</year>
440376      <publisher>&lt;unknown&gt;</publisher>
441377      <part name="flop1" interface="floppy_5_25">
r241777r241778
446382   </software>
447383
448384   <software name="chess">
449      <description>Chess</description>
385      <description>chess</description>
450386      <year>19??</year>
451387      <publisher>&lt;unknown&gt;</publisher>
452388      <part name="flop1" interface="floppy_5_25">
r241777r241778
456392      </part>
457393   </software>
458394
459   <software name="chip001">
460      <description>Chip #1</description>
395   <software name="chip1">
396      <description>chip_1</description>
461397      <year>19??</year>
462398      <publisher>&lt;unknown&gt;</publisher>
463399      <part name="flop1" interface="floppy_5_25">
r241777r241778
467403      </part>
468404   </software>
469405
470   <software name="chip008">
471      <description>Chip #8</description>
406   <software name="chip10">
407      <description>chip_10</description>
472408      <year>19??</year>
473409      <publisher>&lt;unknown&gt;</publisher>
474410      <part name="flop1" interface="floppy_5_25">
475         <dataarea name="flop" size="162826">
476            <rom name="chip_8.ccvf" size="162826" crc="182eaf6a" sha1="7a477a1a75775b7c08e732585e0f26ad50953104" offset="0"/>
411         <dataarea name="flop" size="162814">
412            <rom name="chip_10.ccvf" size="162814" crc="527a9191" sha1="bb79d1c28c3b280cbfae06a2ba3495ef021777eb" offset="0"/>
477413         </dataarea>
478414      </part>
479415   </software>
480416
481   <software name="chip009">
482      <description>Chip #9</description>
417   <software name="chip106">
418      <description>chip_106</description>
483419      <year>19??</year>
484420      <publisher>&lt;unknown&gt;</publisher>
485421      <part name="flop1" interface="floppy_5_25">
486         <dataarea name="flop" size="162813">
487            <rom name="chip_9.ccvf" size="162813" crc="30d385e1" sha1="10cd8fe780d47be6dfe52b9ea4ba822c97a6f69b" offset="0"/>
422         <dataarea name="flop" size="162828">
423            <rom name="chip_106.ccvf" size="162828" crc="2db8614d" sha1="ae20f74e4ac0cfc27c93c74fc504f8e8d1e71c90" offset="0"/>
488424         </dataarea>
489425      </part>
490426   </software>
491427
492   <software name="chip010">
493      <description>Chip #10</description>
428   <software name="chip107">
429      <description>chip_107</description>
494430      <year>19??</year>
495431      <publisher>&lt;unknown&gt;</publisher>
496432      <part name="flop1" interface="floppy_5_25">
497         <dataarea name="flop" size="162814">
498            <rom name="chip_10.ccvf" size="162814" crc="527a9191" sha1="bb79d1c28c3b280cbfae06a2ba3495ef021777eb" offset="0"/>
433         <dataarea name="flop" size="162845">
434            <rom name="chip_107.ccvf" size="162845" crc="9845ee1e" sha1="cbbb9b3bb9d844d3b9ff393b5b9abf2a9d247302" offset="0"/>
499435         </dataarea>
500436      </part>
501437   </software>
502438
503   <software name="chip012">
504      <description>Chip #12</description>
439   <software name="chip108">
440      <description>chip_108</description>
505441      <year>19??</year>
506442      <publisher>&lt;unknown&gt;</publisher>
507443      <part name="flop1" interface="floppy_5_25">
508         <dataarea name="flop" size="162814">
509            <rom name="chip_12.ccvf" size="162814" crc="c3c9e871" sha1="3d53ac91afadd5559caf31e01074cb105e0fdb80" offset="0"/>
444         <dataarea name="flop" size="162844">
445            <rom name="chip_108.ccvf" size="162844" crc="7fc7ce87" sha1="82a95463255577d60ec8f07b23b421ab9ece4749" offset="0"/>
510446         </dataarea>
511447      </part>
512448   </software>
513449
514   <software name="chip013">
515      <description>Chip #13</description>
450   <software name="chip110">
451      <description>chip_110</description>
516452      <year>19??</year>
517453      <publisher>&lt;unknown&gt;</publisher>
518454      <part name="flop1" interface="floppy_5_25">
519         <dataarea name="flop" size="162814">
520            <rom name="chip_13.ccvf" size="162814" crc="c491f41b" sha1="16f580cd147c005e3dcfba24ca0dfcfd083c9062" offset="0"/>
455         <dataarea name="flop" size="162838">
456            <rom name="chip_110.ccvf" size="162838" crc="51a48a24" sha1="326731da5a016fafbf1898f115520d06c16df6e7" offset="0"/>
521457         </dataarea>
522458      </part>
523459   </software>
524460
525   <software name="chip015">
526      <description>Chip #15</description>
461   <software name="chip114">
462      <description>chip_114</description>
527463      <year>19??</year>
528464      <publisher>&lt;unknown&gt;</publisher>
529465      <part name="flop1" interface="floppy_5_25">
530         <dataarea name="flop" size="162814">
531            <rom name="chip_15.ccvf" size="162814" crc="bcf16deb" sha1="7708406e89784fbae752bef36fa2ee9ee93afe48" offset="0"/>
466         <dataarea name="flop" size="162846">
467            <rom name="chip_114.ccvf" size="162846" crc="b3ec2517" sha1="2fa2fe1a4d30abf4eae4801e10d2ca66c8ae3cd9" offset="0"/>
532468         </dataarea>
533469      </part>
534470   </software>
535471
536   <software name="chip016">
537      <description>Chip #16</description>
472   <software name="chip117">
473      <description>chip_117</description>
538474      <year>19??</year>
539475      <publisher>&lt;unknown&gt;</publisher>
540476      <part name="flop1" interface="floppy_5_25">
541         <dataarea name="flop" size="162814">
542            <rom name="chip_16.ccvf" size="162814" crc="032861c7" sha1="201443c1c800b663fe9c8bd2868d1bc03b72e375" offset="0"/>
477         <dataarea name="flop" size="162832">
478            <rom name="chip_117.ccvf" size="162832" crc="edbcfb6c" sha1="7ad9829384e9133282ff97c7a3a9f2d50b2e7acd" offset="0"/>
543479         </dataarea>
544480      </part>
545481   </software>
546482
547   <software name="chip017">
548      <description>Chip #17</description>
483   <software name="chip119">
484      <description>chip_119</description>
549485      <year>19??</year>
550486      <publisher>&lt;unknown&gt;</publisher>
551487      <part name="flop1" interface="floppy_5_25">
552         <dataarea name="flop" size="162814">
553            <rom name="chip_17.ccvf" size="162814" crc="394e3cd5" sha1="def68b4512ea2bd7d6d011c7dcfd33fdf28a88b5" offset="0"/>
488         <dataarea name="flop" size="162828">
489            <rom name="chip_119.ccvf" size="162828" crc="7f34ee3f" sha1="edb68f3462bfe18603034fefa3ed6a0df2ea9d66" offset="0"/>
554490         </dataarea>
555491      </part>
556492   </software>
557493
558   <software name="chip021">
559      <description>Chip #21</description>
494   <software name="chip12">
495      <description>chip_12</description>
560496      <year>19??</year>
561497      <publisher>&lt;unknown&gt;</publisher>
562498      <part name="flop1" interface="floppy_5_25">
563499         <dataarea name="flop" size="162814">
564            <rom name="chip_21.ccvf" size="162814" crc="a74d454f" sha1="64590210d9ac2d259ee2fe6c543236c000aa48fe" offset="0"/>
500            <rom name="chip_12.ccvf" size="162814" crc="c3c9e871" sha1="3d53ac91afadd5559caf31e01074cb105e0fdb80" offset="0"/>
565501         </dataarea>
566502      </part>
567503   </software>
568504
569   <software name="chip022">
570      <description>Chip #22</description>
505   <software name="chip120">
506      <description>chip_120</description>
571507      <year>19??</year>
572508      <publisher>&lt;unknown&gt;</publisher>
573509      <part name="flop1" interface="floppy_5_25">
574         <dataarea name="flop" size="162831">
575            <rom name="chip_22.ccvf" size="162831" crc="35011349" sha1="da2468909253f700c8b484b97519a3b8eb5b69a2" offset="0"/>
510         <dataarea name="flop" size="162843">
511            <rom name="chip_120.ccvf" size="162843" crc="413d68d1" sha1="5be07bd4ea2aee0a38e22bb38fd77cd101881710" offset="0"/>
576512         </dataarea>
577513      </part>
578514   </software>
579515
580   <software name="chip023">
581      <description>Chip #23</description>
516   <software name="chip121">
517      <description>chip_121</description>
582518      <year>19??</year>
583519      <publisher>&lt;unknown&gt;</publisher>
584520      <part name="flop1" interface="floppy_5_25">
585         <dataarea name="flop" size="162814">
586            <rom name="chip_23.ccvf" size="162814" crc="ad8114a5" sha1="cce250643668e91973a69932f201b49252c4987e" offset="0"/>
521         <dataarea name="flop" size="162851">
522            <rom name="chip_121.ccvf" size="162851" crc="8a7cb479" sha1="ab8ff9d4b07c016a3640c57660677ca461b62cc2" offset="0"/>
587523         </dataarea>
588524      </part>
589525   </software>
590526
591   <software name="chip024">
592      <description>Chip #24</description>
527   <software name="chip_125">
528      <description>chip_125</description>
593529      <year>19??</year>
594530      <publisher>&lt;unknown&gt;</publisher>
595531      <part name="flop1" interface="floppy_5_25">
596         <dataarea name="flop" size="162838">
597            <rom name="chip_24.ccvf" size="162838" crc="808fdfe0" sha1="878c29c89c92183f2339640578fd33b819440c36" offset="0"/>
532         <dataarea name="flop" size="162815">
533            <rom name="chip_125.ccvf" size="162815" crc="ef47c0c6" sha1="1c8557bb4d5e825ea85949b7b51316df475b4976" offset="0"/>
598534         </dataarea>
599535      </part>
600   </software>
601536
602   <software name="chip025">
603      <description>Chip #25</description>
604      <year>19??</year>
605      <publisher>&lt;unknown&gt;</publisher>
606      <part name="flop1" interface="floppy_5_25">
607         <dataarea name="flop" size="162833">
608            <rom name="chip_25.ccvf" size="162833" crc="f6816d84" sha1="6bb92135f050ef3822e488d88d4bd9f8f65a1580" offset="0"/>
537      <part name="flop2" interface="floppy_5_25">
538         <dataarea name="flop" size="162830">
539            <rom name="chip_125-sideb.ccvf" size="162830" crc="4440e969" sha1="8040e0abe4c076a7a36f1f3d47d41341d1b319a4" offset="0"/>
609540         </dataarea>
610541      </part>
611542   </software>
612543
613   <software name="chip027">
614      <description>Chip #27</description>
544   <software name="chip128">
545      <description>chip_128</description>
615546      <year>19??</year>
616547      <publisher>&lt;unknown&gt;</publisher>
617548      <part name="flop1" interface="floppy_5_25">
618         <dataarea name="flop" size="162832">
619            <rom name="chip_27.ccvf" size="162832" crc="9e510dd7" sha1="7709796198e1896d9b643cb51a5a90ffe969cf3c" offset="0"/>
549         <dataarea name="flop" size="162815">
550            <rom name="chip_128.ccvf" size="162815" crc="5bc2cf15" sha1="3e82aef8a638d822724021cb582d08513969cd77" offset="0"/>
620551         </dataarea>
621552      </part>
622553   </software>
623554
624   <software name="chip033">
625      <description>Chip #33</description>
555   <software name="chip129">
556      <description>chip_129</description>
626557      <year>19??</year>
627558      <publisher>&lt;unknown&gt;</publisher>
628559      <part name="flop1" interface="floppy_5_25">
629         <dataarea name="flop" size="162833">
630            <rom name="chip_33.ccvf" size="162833" crc="ae4c688d" sha1="504f34781b30a934f04a5cb08d0683e074a91568" offset="0"/>
560         <dataarea name="flop" size="162815">
561            <rom name="chip_129.ccvf" size="162815" crc="f7f8c8dd" sha1="f1bed1ce4413223450192cf62ef471e8bcbb1a60" offset="0"/>
631562         </dataarea>
632563      </part>
633564   </software>
634565
635   <software name="chip036">
636      <description>Chip #36</description>
566   <software name="chip13">
567      <description>chip_13</description>
637568      <year>19??</year>
638569      <publisher>&lt;unknown&gt;</publisher>
639570      <part name="flop1" interface="floppy_5_25">
640         <dataarea name="flop" size="162836">
641            <rom name="chip_36.ccvf" size="162836" crc="0a0a381a" sha1="1f711835e99d0156302a7fe45f390d4611c5896f" offset="0"/>
571         <dataarea name="flop" size="162814">
572            <rom name="chip_13.ccvf" size="162814" crc="c491f41b" sha1="16f580cd147c005e3dcfba24ca0dfcfd083c9062" offset="0"/>
642573         </dataarea>
643574      </part>
644575   </software>
645576
646   <software name="chip039">
647      <description>Chip #39</description>
577   <software name="chip_138">
578      <description>chip_138</description>
648579      <year>19??</year>
649580      <publisher>&lt;unknown&gt;</publisher>
650581      <part name="flop1" interface="floppy_5_25">
651         <dataarea name="flop" size="162842">
652            <rom name="chip_39.ccvf" size="162842" crc="82485868" sha1="592db58c9c701034594dbe20bdbf9766e48291dd" offset="0"/>
582         <dataarea name="flop" size="162815">
583            <rom name="chip_138.ccvf" size="162815" crc="1f0bd8ae" sha1="8e31d8312d4eb65efbb9733cd65c84a981a8f6ae" offset="0"/>
653584         </dataarea>
654585      </part>
586
587      <part name="flop2" interface="floppy_5_25">
588         <dataarea name="flop" size="162815">
589            <rom name="chip_138-sideb.ccvf" size="162815" crc="4be2634e" sha1="a8b79dbc8bf010390a78a18ba10b259cb551bf9e" offset="0"/>
590         </dataarea>
591      </part>
655592   </software>
656593
657   <software name="chip046">
658      <description>Chip #46</description>
594   <software name="chip15">
595      <description>chip_15</description>
659596      <year>19??</year>
660597      <publisher>&lt;unknown&gt;</publisher>
661598      <part name="flop1" interface="floppy_5_25">
662         <dataarea name="flop" size="162852">
663            <rom name="chip_46.ccvf" size="162852" crc="10088bb0" sha1="c14f578a58d07eb1147b28953f42ba1d891a0c77" offset="0"/>
599         <dataarea name="flop" size="162814">
600            <rom name="chip_15.ccvf" size="162814" crc="bcf16deb" sha1="7708406e89784fbae752bef36fa2ee9ee93afe48" offset="0"/>
664601         </dataarea>
665602      </part>
666603   </software>
667604
668   <software name="chip053">
669      <description>Chip #53</description>
605   <software name="chip16">
606      <description>chip_16</description>
670607      <year>19??</year>
671608      <publisher>&lt;unknown&gt;</publisher>
672609      <part name="flop1" interface="floppy_5_25">
673         <dataarea name="flop" size="162849">
674            <rom name="chip_53.ccvf" size="162849" crc="75130b74" sha1="b080fbc4271cf3d4512b9ba5f2b48a10c3534168" offset="0"/>
610         <dataarea name="flop" size="162814">
611            <rom name="chip_16.ccvf" size="162814" crc="032861c7" sha1="201443c1c800b663fe9c8bd2868d1bc03b72e375" offset="0"/>
675612         </dataarea>
676613      </part>
677614   </software>
678615
679   <software name="chip057">
680      <description>Chip #57</description>
616   <software name="chip17">
617      <description>chip_17</description>
681618      <year>19??</year>
682619      <publisher>&lt;unknown&gt;</publisher>
683620      <part name="flop1" interface="floppy_5_25">
684621         <dataarea name="flop" size="162814">
685            <rom name="chip_57.ccvf" size="162814" crc="beae7ee3" sha1="4f8fb7503f9944bd509482e318aed4d2530e4675" offset="0"/>
622            <rom name="chip_17.ccvf" size="162814" crc="394e3cd5" sha1="def68b4512ea2bd7d6d011c7dcfd33fdf28a88b5" offset="0"/>
686623         </dataarea>
687624      </part>
688625   </software>
689626
690   <software name="chip061">
691      <description>Chip #61</description>
627   <software name="chip21">
628      <description>chip_21</description>
692629      <year>19??</year>
693630      <publisher>&lt;unknown&gt;</publisher>
694631      <part name="flop1" interface="floppy_5_25">
695         <dataarea name="flop" size="162839">
696            <rom name="chip_61.ccvf" size="162839" crc="07566ea3" sha1="7129b20b02478766892b32d94977dab22b2f9bbd" offset="0"/>
632         <dataarea name="flop" size="162814">
633            <rom name="chip_21.ccvf" size="162814" crc="a74d454f" sha1="64590210d9ac2d259ee2fe6c543236c000aa48fe" offset="0"/>
697634         </dataarea>
698635      </part>
699636   </software>
700637
701   <software name="chip062">
702      <description>Chip #62</description>
638   <software name="chip22">
639      <description>chip_22</description>
703640      <year>19??</year>
704641      <publisher>&lt;unknown&gt;</publisher>
705642      <part name="flop1" interface="floppy_5_25">
706         <dataarea name="flop" size="162814">
707            <rom name="chip_62.ccvf" size="162814" crc="f27921ec" sha1="fc493d1cf1c53145a7a7ccbe21e723d84311021c" offset="0"/>
643         <dataarea name="flop" size="162831">
644            <rom name="chip_22.ccvf" size="162831" crc="35011349" sha1="da2468909253f700c8b484b97519a3b8eb5b69a2" offset="0"/>
708645         </dataarea>
709646      </part>
710647   </software>
711648
712   <software name="chip063">
713      <description>Chip #63</description>
649   <software name="chip23">
650      <description>chip_23</description>
714651      <year>19??</year>
715652      <publisher>&lt;unknown&gt;</publisher>
716653      <part name="flop1" interface="floppy_5_25">
717         <dataarea name="flop" size="162835">
718            <rom name="chip_63.ccvf" size="162835" crc="12cceb87" sha1="9b01d926cf52ae00fc33082ccb5d3e811ebcc0bf" offset="0"/>
654         <dataarea name="flop" size="162814">
655            <rom name="chip_23.ccvf" size="162814" crc="ad8114a5" sha1="cce250643668e91973a69932f201b49252c4987e" offset="0"/>
719656         </dataarea>
720657      </part>
721658   </software>
722659
723   <software name="chip064">
724      <description>Chip #64</description>
660   <software name="chip24">
661      <description>chip_24</description>
725662      <year>19??</year>
726663      <publisher>&lt;unknown&gt;</publisher>
727664      <part name="flop1" interface="floppy_5_25">
728665         <dataarea name="flop" size="162838">
729            <rom name="chip_64.ccvf" size="162838" crc="a9a140c7" sha1="19f4a3c7d26cd63bf2eac36864a2294973a43b27" offset="0"/>
666            <rom name="chip_24.ccvf" size="162838" crc="808fdfe0" sha1="878c29c89c92183f2339640578fd33b819440c36" offset="0"/>
730667         </dataarea>
731668      </part>
732669   </software>
733670
734   <software name="chip075">
735      <description>Chip #75</description>
671   <software name="chip25">
672      <description>chip_25</description>
736673      <year>19??</year>
737674      <publisher>&lt;unknown&gt;</publisher>
738675      <part name="flop1" interface="floppy_5_25">
739         <dataarea name="flop" size="162836">
740            <rom name="chip_75.ccvf" size="162836" crc="55a6904c" sha1="7fd62d534a20511c88c79ae95c018b09e5a87f3c" offset="0"/>
676         <dataarea name="flop" size="162833">
677            <rom name="chip_25.ccvf" size="162833" crc="f6816d84" sha1="6bb92135f050ef3822e488d88d4bd9f8f65a1580" offset="0"/>
741678         </dataarea>
742679      </part>
743680   </software>
744681
745   <software name="chip077">
746      <description>Chip #77</description>
682   <software name="chip27">
683      <description>chip_27</description>
747684      <year>19??</year>
748685      <publisher>&lt;unknown&gt;</publisher>
749686      <part name="flop1" interface="floppy_5_25">
750687         <dataarea name="flop" size="162832">
751            <rom name="chip_77.ccvf" size="162832" crc="afe57afb" sha1="acbc5b1c5173f9dc08945349ed6f378e06554d1c" offset="0"/>
688            <rom name="chip_27.ccvf" size="162832" crc="9e510dd7" sha1="7709796198e1896d9b643cb51a5a90ffe969cf3c" offset="0"/>
752689         </dataarea>
753690      </part>
754691   </software>
755692
756   <software name="chip078">
757      <description>Chip #78</description>
693   <software name="chip33">
694      <description>chip_33</description>
758695      <year>19??</year>
759696      <publisher>&lt;unknown&gt;</publisher>
760697      <part name="flop1" interface="floppy_5_25">
761         <dataarea name="flop" size="162814">
762            <rom name="chip_78.ccvf" size="162814" crc="018497ed" sha1="0520a271cd8cd7e45ccc2a29bc9c88c7c02e0fa6" offset="0"/>
698         <dataarea name="flop" size="162833">
699            <rom name="chip_33.ccvf" size="162833" crc="ae4c688d" sha1="504f34781b30a934f04a5cb08d0683e074a91568" offset="0"/>
763700         </dataarea>
764701      </part>
765702   </software>
766703
767   <software name="chip079">
768      <description>Chip #79</description>
704   <software name="chip36">
705      <description>chip_36</description>
769706      <year>19??</year>
770707      <publisher>&lt;unknown&gt;</publisher>
771708      <part name="flop1" interface="floppy_5_25">
772         <dataarea name="flop" size="162827">
773            <rom name="chip_79.ccvf" size="162827" crc="2bcdcfa7" sha1="af24a0c365994d37d27d40e5c9ba2852afe0550a" offset="0"/>
709         <dataarea name="flop" size="162836">
710            <rom name="chip_36.ccvf" size="162836" crc="0a0a381a" sha1="1f711835e99d0156302a7fe45f390d4611c5896f" offset="0"/>
774711         </dataarea>
775712      </part>
776713   </software>
777714
778   <software name="chip081">
779      <description>Chip #81</description>
715   <software name="chip39">
716      <description>chip_39</description>
780717      <year>19??</year>
781718      <publisher>&lt;unknown&gt;</publisher>
782719      <part name="flop1" interface="floppy_5_25">
783         <dataarea name="flop" size="162814">
784            <rom name="chip_81.ccvf" size="162814" crc="a84a5f02" sha1="f8a3641d19c622a29dbda95a847374e428932e0d" offset="0"/>
720         <dataarea name="flop" size="162842">
721            <rom name="chip_39.ccvf" size="162842" crc="82485868" sha1="592db58c9c701034594dbe20bdbf9766e48291dd" offset="0"/>
785722         </dataarea>
786723      </part>
787724   </software>
788725
789   <software name="chip083">
790      <description>Chip #83</description>
726   <software name="chip46">
727      <description>chip_46</description>
791728      <year>19??</year>
792729      <publisher>&lt;unknown&gt;</publisher>
793730      <part name="flop1" interface="floppy_5_25">
794         <dataarea name="flop" size="162983">
795            <rom name="chip_83.ccvf" size="162983" crc="0c70bf13" sha1="53cd2ea25866d2445ed011a844bee85f97d0b525" offset="0"/>
731         <dataarea name="flop" size="162852">
732            <rom name="chip_46.ccvf" size="162852" crc="10088bb0" sha1="c14f578a58d07eb1147b28953f42ba1d891a0c77" offset="0"/>
796733         </dataarea>
797734      </part>
798735   </software>
799736
800   <software name="chip084">
801      <description>Chip #84</description>
737   <software name="chip53">
738      <description>chip_53</description>
802739      <year>19??</year>
803740      <publisher>&lt;unknown&gt;</publisher>
804741      <part name="flop1" interface="floppy_5_25">
805         <dataarea name="flop" size="162913">
806            <rom name="chip_84.ccvf" size="162913" crc="20d865c4" sha1="77378e4cc39352d79de558b91b403bbbafc6201f" offset="0"/>
742         <dataarea name="flop" size="162849">
743            <rom name="chip_53.ccvf" size="162849" crc="75130b74" sha1="b080fbc4271cf3d4512b9ba5f2b48a10c3534168" offset="0"/>
807744         </dataarea>
808745      </part>
809746   </software>
810747
811   <software name="chip085">
812      <description>Chip #85</description>
748   <software name="chip57">
749      <description>chip_57</description>
813750      <year>19??</year>
814751      <publisher>&lt;unknown&gt;</publisher>
815752      <part name="flop1" interface="floppy_5_25">
816753         <dataarea name="flop" size="162814">
817            <rom name="chip_85.ccvf" size="162814" crc="23550551" sha1="ff6d9738e142da6ac22cbbce90151f80de029663" offset="0"/>
754            <rom name="chip_57.ccvf" size="162814" crc="beae7ee3" sha1="4f8fb7503f9944bd509482e318aed4d2530e4675" offset="0"/>
818755         </dataarea>
819756      </part>
820757   </software>
821758
822   <software name="chip090">
823      <description>Chip #90</description>
759   <software name="chip61">
760      <description>chip_61</description>
824761      <year>19??</year>
825762      <publisher>&lt;unknown&gt;</publisher>
826763      <part name="flop1" interface="floppy_5_25">
827         <dataarea name="flop" size="162827">
828            <rom name="chip_90.ccvf" size="162827" crc="17311e29" sha1="845bb65a460d9a47f03d576f313505e2efc51739" offset="0"/>
764         <dataarea name="flop" size="162839">
765            <rom name="chip_61.ccvf" size="162839" crc="07566ea3" sha1="7129b20b02478766892b32d94977dab22b2f9bbd" offset="0"/>
829766         </dataarea>
830767      </part>
831768   </software>
832769
833   <software name="chip091">
834      <description>Chip #91</description>
770   <software name="chip62">
771      <description>chip_62</description>
835772      <year>19??</year>
836773      <publisher>&lt;unknown&gt;</publisher>
837774      <part name="flop1" interface="floppy_5_25">
838         <dataarea name="flop" size="162853">
839            <rom name="chip_91.ccvf" size="162853" crc="d24c530d" sha1="fb2c0ae5c9c50c20ab639397fb1a9fabae0db47c" offset="0"/>
775         <dataarea name="flop" size="162814">
776            <rom name="chip_62.ccvf" size="162814" crc="f27921ec" sha1="fc493d1cf1c53145a7a7ccbe21e723d84311021c" offset="0"/>
840777         </dataarea>
841778      </part>
842779   </software>
843780
844   <software name="chip092">
845      <description>Chip #92</description>
781   <software name="chip63">
782      <description>chip_63</description>
846783      <year>19??</year>
847784      <publisher>&lt;unknown&gt;</publisher>
848785      <part name="flop1" interface="floppy_5_25">
849         <dataarea name="flop" size="162814">
850            <rom name="chip_92.ccvf" size="162814" crc="013e8402" sha1="824cf53bc646762f723468fa45a0a4e6d0d7f119" offset="0"/>
786         <dataarea name="flop" size="162835">
787            <rom name="chip_63.ccvf" size="162835" crc="12cceb87" sha1="9b01d926cf52ae00fc33082ccb5d3e811ebcc0bf" offset="0"/>
851788         </dataarea>
852789      </part>
853790   </software>
854791
855   <software name="chip106">
856      <description>Chip #106</description>
792   <software name="chip64">
793      <description>chip_64</description>
857794      <year>19??</year>
858795      <publisher>&lt;unknown&gt;</publisher>
859796      <part name="flop1" interface="floppy_5_25">
860         <dataarea name="flop" size="162828">
861            <rom name="chip_106.ccvf" size="162828" crc="2db8614d" sha1="ae20f74e4ac0cfc27c93c74fc504f8e8d1e71c90" offset="0"/>
797         <dataarea name="flop" size="162838">
798            <rom name="chip_64.ccvf" size="162838" crc="a9a140c7" sha1="19f4a3c7d26cd63bf2eac36864a2294973a43b27" offset="0"/>
862799         </dataarea>
863800      </part>
864801   </software>
865802
866   <software name="chip107">
867      <description>Chip #107</description>
803   <software name="chip75">
804      <description>chip_75</description>
868805      <year>19??</year>
869806      <publisher>&lt;unknown&gt;</publisher>
870807      <part name="flop1" interface="floppy_5_25">
871         <dataarea name="flop" size="162845">
872            <rom name="chip_107.ccvf" size="162845" crc="9845ee1e" sha1="cbbb9b3bb9d844d3b9ff393b5b9abf2a9d247302" offset="0"/>
808         <dataarea name="flop" size="162836">
809            <rom name="chip_75.ccvf" size="162836" crc="55a6904c" sha1="7fd62d534a20511c88c79ae95c018b09e5a87f3c" offset="0"/>
873810         </dataarea>
874811      </part>
875812   </software>
876813
877   <software name="chip108">
878      <description>Chip #108</description>
814   <software name="chip77">
815      <description>chip_77</description>
879816      <year>19??</year>
880817      <publisher>&lt;unknown&gt;</publisher>
881818      <part name="flop1" interface="floppy_5_25">
882         <dataarea name="flop" size="162844">
883            <rom name="chip_108.ccvf" size="162844" crc="7fc7ce87" sha1="82a95463255577d60ec8f07b23b421ab9ece4749" offset="0"/>
819         <dataarea name="flop" size="162832">
820            <rom name="chip_77.ccvf" size="162832" crc="afe57afb" sha1="acbc5b1c5173f9dc08945349ed6f378e06554d1c" offset="0"/>
884821         </dataarea>
885822      </part>
886823   </software>
887824
888   <software name="chip110">
889      <description>Chip #110</description>
825   <software name="chip78">
826      <description>chip_78</description>
890827      <year>19??</year>
891828      <publisher>&lt;unknown&gt;</publisher>
892829      <part name="flop1" interface="floppy_5_25">
893         <dataarea name="flop" size="162838">
894            <rom name="chip_110.ccvf" size="162838" crc="51a48a24" sha1="326731da5a016fafbf1898f115520d06c16df6e7" offset="0"/>
830         <dataarea name="flop" size="162814">
831            <rom name="chip_78.ccvf" size="162814" crc="018497ed" sha1="0520a271cd8cd7e45ccc2a29bc9c88c7c02e0fa6" offset="0"/>
895832         </dataarea>
896833      </part>
897834   </software>
898835
899   <software name="chip114">
900      <description>Chip #114</description>
836   <software name="chip79">
837      <description>chip_79</description>
901838      <year>19??</year>
902839      <publisher>&lt;unknown&gt;</publisher>
903840      <part name="flop1" interface="floppy_5_25">
904         <dataarea name="flop" size="162846">
905            <rom name="chip_114.ccvf" size="162846" crc="b3ec2517" sha1="2fa2fe1a4d30abf4eae4801e10d2ca66c8ae3cd9" offset="0"/>
841         <dataarea name="flop" size="162827">
842            <rom name="chip_79.ccvf" size="162827" crc="2bcdcfa7" sha1="af24a0c365994d37d27d40e5c9ba2852afe0550a" offset="0"/>
906843         </dataarea>
907844      </part>
908845   </software>
909846
910   <software name="chip117">
911      <description>Chip #117</description>
847   <software name="chip8">
848      <description>chip_8</description>
912849      <year>19??</year>
913850      <publisher>&lt;unknown&gt;</publisher>
914851      <part name="flop1" interface="floppy_5_25">
915         <dataarea name="flop" size="162832">
916            <rom name="chip_117.ccvf" size="162832" crc="edbcfb6c" sha1="7ad9829384e9133282ff97c7a3a9f2d50b2e7acd" offset="0"/>
852         <dataarea name="flop" size="162826">
853            <rom name="chip_8.ccvf" size="162826" crc="182eaf6a" sha1="7a477a1a75775b7c08e732585e0f26ad50953104" offset="0"/>
917854         </dataarea>
918855      </part>
919856   </software>
920857
921   <software name="chip119">
922      <description>Chip #119</description>
858   <software name="chip81">
859      <description>chip_81</description>
923860      <year>19??</year>
924861      <publisher>&lt;unknown&gt;</publisher>
925862      <part name="flop1" interface="floppy_5_25">
926         <dataarea name="flop" size="162828">
927            <rom name="chip_119.ccvf" size="162828" crc="7f34ee3f" sha1="edb68f3462bfe18603034fefa3ed6a0df2ea9d66" offset="0"/>
863         <dataarea name="flop" size="162814">
864            <rom name="chip_81.ccvf" size="162814" crc="a84a5f02" sha1="f8a3641d19c622a29dbda95a847374e428932e0d" offset="0"/>
928865         </dataarea>
929866      </part>
930867   </software>
931868
932   <software name="chip120">
933      <description>Chip #120</description>
869   <software name="chip83">
870      <description>chip_83</description>
934871      <year>19??</year>
935872      <publisher>&lt;unknown&gt;</publisher>
936873      <part name="flop1" interface="floppy_5_25">
937         <dataarea name="flop" size="162843">
938            <rom name="chip_120.ccvf" size="162843" crc="413d68d1" sha1="5be07bd4ea2aee0a38e22bb38fd77cd101881710" offset="0"/>
874         <dataarea name="flop" size="162983">
875            <rom name="chip_83.ccvf" size="162983" crc="0c70bf13" sha1="53cd2ea25866d2445ed011a844bee85f97d0b525" offset="0"/>
939876         </dataarea>
940877      </part>
941878   </software>
942879
943   <software name="chip121">
944      <description>Chip #121</description>
880   <software name="chip84">
881      <description>chip_84</description>
945882      <year>19??</year>
946883      <publisher>&lt;unknown&gt;</publisher>
947884      <part name="flop1" interface="floppy_5_25">
948         <dataarea name="flop" size="162851">
949            <rom name="chip_121.ccvf" size="162851" crc="8a7cb479" sha1="ab8ff9d4b07c016a3640c57660677ca461b62cc2" offset="0"/>
885         <dataarea name="flop" size="162913">
886            <rom name="chip_84.ccvf" size="162913" crc="20d865c4" sha1="77378e4cc39352d79de558b91b403bbbafc6201f" offset="0"/>
950887         </dataarea>
951888      </part>
952889   </software>
953890
954   <software name="chip125">
955      <description>Chip #125</description>
891   <software name="chip85">
892      <description>chip_85</description>
956893      <year>19??</year>
957894      <publisher>&lt;unknown&gt;</publisher>
958895      <part name="flop1" interface="floppy_5_25">
959         <dataarea name="flop" size="162815">
960            <rom name="chip_125.ccvf" size="162815" crc="ef47c0c6" sha1="1c8557bb4d5e825ea85949b7b51316df475b4976" offset="0"/>
896         <dataarea name="flop" size="162814">
897            <rom name="chip_85.ccvf" size="162814" crc="23550551" sha1="ff6d9738e142da6ac22cbbce90151f80de029663" offset="0"/>
961898         </dataarea>
962899      </part>
900   </software>
963901
964      <part name="flop2" interface="floppy_5_25">
965         <dataarea name="flop" size="162830">
966            <rom name="chip_125-sideb.ccvf" size="162830" crc="4440e969" sha1="8040e0abe4c076a7a36f1f3d47d41341d1b319a4" offset="0"/>
902   <software name="chip9">
903      <description>chip_9</description>
904      <year>19??</year>
905      <publisher>&lt;unknown&gt;</publisher>
906      <part name="flop1" interface="floppy_5_25">
907         <dataarea name="flop" size="162813">
908            <rom name="chip_9.ccvf" size="162813" crc="30d385e1" sha1="10cd8fe780d47be6dfe52b9ea4ba822c97a6f69b" offset="0"/>
967909         </dataarea>
968910      </part>
969911   </software>
970912
971   <software name="chip128">
972      <description>Chip #128</description>
913   <software name="chip90">
914      <description>chip_90</description>
973915      <year>19??</year>
974916      <publisher>&lt;unknown&gt;</publisher>
975917      <part name="flop1" interface="floppy_5_25">
976         <dataarea name="flop" size="162815">
977            <rom name="chip_128.ccvf" size="162815" crc="5bc2cf15" sha1="3e82aef8a638d822724021cb582d08513969cd77" offset="0"/>
918         <dataarea name="flop" size="162827">
919            <rom name="chip_90.ccvf" size="162827" crc="17311e29" sha1="845bb65a460d9a47f03d576f313505e2efc51739" offset="0"/>
978920         </dataarea>
979921      </part>
980922   </software>
981923
982   <software name="chip129">
983      <description>Chip #129</description>
924   <software name="chip91">
925      <description>chip_91</description>
984926      <year>19??</year>
985927      <publisher>&lt;unknown&gt;</publisher>
986928      <part name="flop1" interface="floppy_5_25">
987         <dataarea name="flop" size="162815">
988            <rom name="chip_129.ccvf" size="162815" crc="f7f8c8dd" sha1="f1bed1ce4413223450192cf62ef471e8bcbb1a60" offset="0"/>
929         <dataarea name="flop" size="162853">
930            <rom name="chip_91.ccvf" size="162853" crc="d24c530d" sha1="fb2c0ae5c9c50c20ab639397fb1a9fabae0db47c" offset="0"/>
989931         </dataarea>
990932      </part>
991933   </software>
992934
993   <software name="chip138">
994      <description>Chip #138</description>
935   <software name="chip92">
936      <description>chip_92</description>
995937      <year>19??</year>
996938      <publisher>&lt;unknown&gt;</publisher>
997939      <part name="flop1" interface="floppy_5_25">
998         <dataarea name="flop" size="162815">
999            <rom name="chip_138.ccvf" size="162815" crc="1f0bd8ae" sha1="8e31d8312d4eb65efbb9733cd65c84a981a8f6ae" offset="0"/>
940         <dataarea name="flop" size="162814">
941            <rom name="chip_92.ccvf" size="162814" crc="013e8402" sha1="824cf53bc646762f723468fa45a0a4e6d0d7f119" offset="0"/>
1000942         </dataarea>
1001943      </part>
1002
1003      <part name="flop2" interface="floppy_5_25">
1004         <dataarea name="flop" size="162815">
1005            <rom name="chip_138-sideb.ccvf" size="162815" crc="4be2634e" sha1="a8b79dbc8bf010390a78a18ba10b259cb551bf9e" offset="0"/>
1006         </dataarea>
1007      </part>
1008944   </software>
1009945
1010946   <software name="chomp">
1011      <description>Chomp</description>
947      <description>chomp</description>
1012948      <year>19??</year>
1013949      <publisher>&lt;unknown&gt;</publisher>
1014950      <part name="flop1" interface="floppy_5_25">
r241777r241778
1019955   </software>
1020956
1021957   <software name="paddle">
1022      <description>Paddle Games (Original)</description>
958      <description>cm_0-4_paddle_softwares-original</description>
1023959      <year>19??</year>
1024960      <publisher>&lt;unknown&gt;</publisher>
1025961      <part name="flop1" interface="floppy_5_25">
r241777r241778
1030966   </software>
1031967
1032968   <software name="paddlea" cloneof="paddle">
1033      <description>Paddle Games</description>
969      <description>cm_0-4_paddle_softwares</description>
1034970      <year>19??</year>
1035971      <publisher>&lt;unknown&gt;</publisher>
1036972      <part name="flop1" interface="floppy_5_25">
r241777r241778
1040976      </part>
1041977   </software>
1042978
1043   <software name="colorgfx">
1044      <description>Color Graphics</description>
979   <software name="clrgfx">
980      <description>color_graphics_1_suits</description>
1045981      <year>19??</year>
1046982      <publisher>&lt;unknown&gt;</publisher>
1047983      <part name="flop1" interface="floppy_5_25">
r241777r241778
1058994   </software>
1059995
1060996   <software name="colorcue">
1061      <description>ColorCue Demos</description>
997      <description>colorcue</description>
1062998      <year>19??</year>
1063999      <publisher>&lt;unknown&gt;</publisher>
10641000      <part name="flop1" interface="floppy_5_25">
r241777r241778
10691005   </software>
10701006
10711007   <software name="clrgraph">
1072      <description>ColorGraph v1.01</description>
1008      <description>colorgraph</description>
10731009      <year>19??</year>
10741010      <publisher>&lt;unknown&gt;</publisher>
10751011      <part name="flop1" interface="floppy_5_25">
r241777r241778
10801016   </software>
10811017
10821018   <software name="colossal">
1083      <description>Colossal Adventure</description>
1019      <description>colossal_adventure</description>
10841020      <year>19??</year>
10851021      <publisher>&lt;unknown&gt;</publisher>
10861022      <part name="flop1" interface="floppy_5_25">
r241777r241778
10901026      </part>
10911027   </software>
10921028
1093   <software name="colcave">
1094      <description>Colossal Cave</description>
1029   <software name="commpgms">
1030      <description>comm_pgms-sidea</description>
10951031      <year>19??</year>
10961032      <publisher>&lt;unknown&gt;</publisher>
10971033      <part name="flop1" interface="floppy_5_25">
1098         <dataarea name="flop" size="162865">
1099            <rom name="colossal_cave_epps.ccvf" size="162865" crc="3e7b98b3" sha1="109fcf8b94b866cb34f32e5aa46d6c3bb1946bbf" offset="0" />
1100         </dataarea>
1101      </part>
1102   </software>
1103
1104   <software name="commpgm">
1105      <description>Comm Programs</description>
1106      <year>19??</year>
1107      <publisher>&lt;unknown&gt;</publisher>
1108      <part name="flop1" interface="floppy_5_25">
11091034         <dataarea name="flop" size="162815">
11101035            <rom name="comm_pgms-sidea.ccvf" size="162815" crc="eb0c77d1" sha1="92b5ad6e6ecf6a53d2f96b0567a47e4416a0325b" offset="0"/>
11111036         </dataarea>
r241777r241778
11251050   </software>
11261051
11271052   <software name="compwrit">
1128      <description>Comp-U-Writer (v3.51)</description>
1053      <description>compuwriter_1</description>
11291054      <year>19??</year>
11301055      <publisher>&lt;unknown&gt;</publisher>
11311056      <part name="flop1" interface="floppy_5_25">
1132         <dataarea name="flop" size="162904">
1133            <rom name="compuwriter_2.ccvf" size="162904" crc="8948da3c" sha1="a7b2516c3d1df81a75844570f13078c8a705ebe9" offset="0"/>
1057         <dataarea name="flop" size="162892">
1058            <rom name="compuwriter_1.ccvf" size="162892" crc="a030f3ea" sha1="5e9c7ab51a334b0effa1f4ccf18520aac2d29957" offset="0"/>
11341059         </dataarea>
11351060      </part>
11361061   </software>
11371062
11381063   <software name="compwrita" cloneof="compwrit">
1139      <description>Comp-U-Writer (v3.4 &amp; v3.5)</description>
1064      <description>compuwriter_2</description>
11401065      <year>19??</year>
11411066      <publisher>&lt;unknown&gt;</publisher>
11421067      <part name="flop1" interface="floppy_5_25">
1143         <dataarea name="flop" size="162892">
1144            <rom name="compuwriter_1.ccvf" size="162892" crc="a030f3ea" sha1="5e9c7ab51a334b0effa1f4ccf18520aac2d29957" offset="0"/>
1068         <dataarea name="flop" size="162904">
1069            <rom name="compuwriter_2.ccvf" size="162904" crc="8948da3c" sha1="a7b2516c3d1df81a75844570f13078c8a705ebe9" offset="0"/>
11451070         </dataarea>
11461071      </part>
11471072   </software>
11481073
11491074   <software name="comtron">
1150      <description>Comtronics</description>
1075      <description>comtronics</description>
11511076      <year>19??</year>
11521077      <publisher>&lt;unknown&gt;</publisher>
11531078      <part name="flop1" interface="floppy_5_25">
r241777r241778
11581083   </software>
11591084
11601085   <software name="comtron2">
1161      <description>Comtronics Software</description>
1086      <description>comtronics_sw</description>
11621087      <year>19??</year>
11631088      <publisher>&lt;unknown&gt;</publisher>
11641089      <part name="flop1" interface="floppy_5_25">
r241777r241778
11681093      </part>
11691094   </software>
11701095
1171   <software name="cooltool">
1172      <description>Cool Tools</description>
1173      <year>19??</year>
1174      <publisher>&lt;unknown&gt;</publisher>
1175      <part name="flop1" interface="floppy_5_25">
1176         <dataarea name="flop" size="163041">
1177            <rom name="cooltools.ccvf" size="163041" crc="cffc2cb4" sha1="79fff8725c3d7e277ae31cb54c55ce243aaecec8" offset="0" />
1178         </dataarea>
1179      </part>
1180   </software>
1181
11821096   <software name="demo">
1183      <description>Demonstration</description>
1097      <description>demonstration</description>
11841098      <year>19??</year>
11851099      <publisher>&lt;unknown&gt;</publisher>
11861100      <part name="flop1" interface="floppy_5_25">
r241777r241778
11911105   </software>
11921106
11931107   <software name="demos">
1194      <description>Demos</description>
1108      <description>demos</description>
11951109      <year>19??</year>
11961110      <publisher>&lt;unknown&gt;</publisher>
11971111      <part name="flop1" interface="floppy_5_25">
r241777r241778
12011115      </part>
12021116   </software>
12031117
1204   <software name="dasmmlpd">
1205      <description>DISASM + MLPD</description>
1118   <software name="disasmlp">
1119      <description>disasm+mldp+sidea</description>
12061120      <year>19??</year>
12071121      <publisher>&lt;unknown&gt;</publisher>
12081122      <part name="flop1" interface="floppy_5_25">
1209         <info name="part_id" value="DISASM"/>
12101123         <dataarea name="flop" size="162853">
12111124            <rom name="disasm+mldp+sidea.ccvf" size="162853" crc="37e8ba02" sha1="de79e786fd29633a471de44aa700cf256cd6434b" offset="0"/>
12121125         </dataarea>
12131126      </part>
12141127
12151128      <part name="flop2" interface="floppy_5_25">
1216         <info name="part_id" value="MLPD"/>
12171129         <dataarea name="flop" size="162853">
12181130            <rom name="disasm+mldp-sideb.ccvf" size="162853" crc="17628a85" sha1="90fdc00b6939cc54fc5095c6ee0e621a9767a539" offset="0"/>
12191131         </dataarea>
12201132      </part>
12211133   </software>
12221134
1223   <software name="dasmsrc">
1224      <description>DISASM Source</description>
1135   <software name="disasm">
1136      <description>disasm-sidea</description>
12251137      <year>19??</year>
12261138      <publisher>&lt;unknown&gt;</publisher>
12271139      <part name="flop1" interface="floppy_5_25">
r241777r241778
12311143      </part>
12321144   </software>
12331145
1234   <software name="mldpfix">
1235      <description>MLPD (Autorepeat Key Fixed)</description>
1146   <software name="disasmlr">
1147      <description>disassembler</description>
12361148      <year>19??</year>
12371149      <publisher>&lt;unknown&gt;</publisher>
12381150      <part name="flop1" interface="floppy_5_25">
1239         <dataarea name="flop" size="162819">
1240            <rom name="mldp_fix.ccvf" size="162819" crc="0871bd9d" sha1="c315b88c56a5186e27835800479eb41e013321b5" offset="0"/>
1241         </dataarea>
1242      </part>
1243   </software>
1244
1245   <software name="disasm">
1246      <description>Disassembler</description>
1247      <year>19??</year>
1248      <publisher>&lt;unknown&gt;</publisher>
1249      <part name="flop1" interface="floppy_5_25">
12501151         <dataarea name="flop" size="162831">
12511152            <rom name="disassembler.ccvf" size="162831" crc="f018390c" sha1="53209bcdc8bcf17291066a036e36b1bbe1fc8ecc" offset="0"/>
12521153         </dataarea>
r241777r241778
12541155   </software>
12551156
12561157   <software name="dogfight">
1257      <description>Dogfight</description>
1158      <description>dogfight</description>
12581159      <year>19??</year>
12591160      <publisher>&lt;unknown&gt;</publisher>
12601161      <part name="flop1" interface="floppy_5_25">
r241777r241778
12651166   </software>
12661167
12671168   <software name="draw2">
1268      <description>Draw 2</description>
1169      <description>draw2</description>
12691170      <year>19??</year>
12701171      <publisher>&lt;unknown&gt;</publisher>
12711172      <part name="flop1" interface="floppy_5_25">
r241777r241778
12751176      </part>
12761177   </software>
12771178
1278   <software name="draw2a" cloneof="draw2">
1279      <description>Draw 2 (Alt)</description>
1179   <software name="drivlist">
1180      <description>driver_lister</description>
12801181      <year>19??</year>
12811182      <publisher>&lt;unknown&gt;</publisher>
12821183      <part name="flop1" interface="floppy_5_25">
1283         <dataarea name="flop" size="162909">
1284            <rom name="draw2 (alt).ccvf" size="162909" crc="ccd58029" sha1="7480bfb7fd0ed5991738cdca81a8450f40f88167" offset="0" />
1184         <dataarea name="flop" size="162925">
1185            <rom name="driver_lister.ccvf" size="162925" crc="504740f6" sha1="f38611fb908e9986407309d7fb5eec769169c9cd" offset="0"/>
12851186         </dataarea>
12861187      </part>
12871188   </software>
12881189
12891190   <software name="dukedom">
1290      <description>Dukedom</description>
1191      <description>dukedom</description>
12911192      <year>19??</year>
12921193      <publisher>&lt;unknown&gt;</publisher>
12931194      <part name="flop1" interface="floppy_5_25">
r241777r241778
12971198      </part>
12981199   </software>
12991200
1201   <software name="trek">
1202      <description>trek</description>
1203      <year>19??</year>
1204      <publisher>&lt;unknown&gt;</publisher>
1205      <part name="flop1" interface="floppy_5_25">
1206         <dataarea name="flop" size="163637">
1207            <rom name="epps_trek.ccvf" size="163637" crc="0dad1114" sha1="4f4496c14c65d7b46640cecbdfefa8116de44b78" offset="0"/>
1208         </dataarea>
1209      </part>
1210   </software>
1211
13001212   <software name="eprom">
1301      <description>EPROM Programmer</description>
1213      <description>eprom_programmer</description>
13021214      <year>19??</year>
13031215      <publisher>&lt;unknown&gt;</publisher>
13041216      <part name="flop1" interface="floppy_5_25">
r241777r241778
13091221   </software>
13101222
13111223   <software name="equity">
1312      <description>Equity</description>
1224      <description>equity</description>
13131225      <year>19??</year>
13141226      <publisher>&lt;unknown&gt;</publisher>
13151227      <part name="flop1" interface="floppy_5_25">
r241777r241778
13201232   </software>
13211233
13221234   <software name="execgrap">
1323      <description>Execugraph Trend-Spotter</description>
1235      <description>execugraph</description>
13241236      <year>19??</year>
13251237      <publisher>&lt;unknown&gt;</publisher>
13261238      <part name="flop1" interface="floppy_5_25">
r241777r241778
13301242      </part>
13311243
13321244      <part name="flop2" interface="floppy_5_25">
1333         <info name="part_id" value="Instructions"/>
13341245         <dataarea name="flop" size="162874">
13351246            <rom name="execugraph_instructions.ccvf" size="162874" crc="0716e534" sha1="1ae67e4acec0175880698df9c792ea97eb6f7158" offset="0"/>
13361247         </dataarea>
r241777r241778
13381249   </software>
13391250
13401251   <software name="fcsmods">
1341      <description>FCS MOD</description>
1252      <description>fcs_mods</description>
13421253      <year>19??</year>
13431254      <publisher>&lt;unknown&gt;</publisher>
13441255      <part name="flop1" interface="floppy_5_25">
r241777r241778
13481259      </part>
13491260   </software>
13501261
1351   <software name="fms3650">
1352      <description>File Maintenance System 3650 (v11.82)</description>
1262   <software name="fms">
1263      <description>file_maintenance_system-sidea</description>
13531264      <year>19??</year>
13541265      <publisher>&lt;unknown&gt;</publisher>
13551266      <part name="flop1" interface="floppy_5_25">
r241777r241778
13661277   </software>
13671278
13681279   <software name="fftrek">
1369      <description>The Final Frontier - Star Trek</description>
1280      <description>final_frontier_startrek</description>
13701281      <year>19??</year>
13711282      <publisher>&lt;unknown&gt;</publisher>
13721283      <part name="flop1" interface="floppy_5_25">
r241777r241778
13771288   </software>
13781289
13791290   <software name="format">
1380      <description>Formatter</description>
1291      <description>formatter</description>
13811292      <year>19??</year>
13821293      <publisher>&lt;unknown&gt;</publisher>
13831294      <part name="flop1" interface="floppy_5_25">
r241777r241778
13871298      </part>
13881299   </software>
13891300
1301   <software name="frthpscl">
1302      <description>forth_pascal</description>
1303      <year>19??</year>
1304      <publisher>&lt;unknown&gt;</publisher>
1305      <part name="flop1" interface="floppy_5_25">
1306         <dataarea name="flop" size="162853">
1307            <rom name="forth_pascal.ccvf" size="162853" crc="0545b0be" sha1="536d0b034ca44d7657bb36d38fff62832e8e5717" offset="0"/>
1308         </dataarea>
1309      </part>
1310   </software>
1311
13901312   <software name="fortran">
1391      <description>FORTRAN</description>
1313      <description>fortran</description>
13921314      <year>19??</year>
13931315      <publisher>&lt;unknown&gt;</publisher>
13941316      <part name="flop1" interface="floppy_5_25">
r241777r241778
13991321   </software>
14001322
14011323   <software name="fortran2">
1402      <description>FORTRAN 2</description>
1324      <description>fortran2</description>
14031325      <year>19??</year>
14041326      <publisher>&lt;unknown&gt;</publisher>
14051327      <part name="flop1" interface="floppy_5_25">
r241777r241778
14101332   </software>
14111333
14121334   <software name="fortrek">
1413      <description>FORTRAN Star Trek Source</description>
1335      <description>fortrek</description>
14141336      <year>19??</year>
14151337      <publisher>&lt;unknown&gt;</publisher>
14161338      <part name="flop1" interface="floppy_5_25">
r241777r241778
14201342      </part>
14211343   </software>
14221344
1423   <software name="fortstr">
1424      <description>FORTRAN Strings Source</description>
1425      <year>19??</year>
1426      <publisher>&lt;unknown&gt;</publisher>
1427      <part name="flop1" interface="floppy_5_25">
1428         <dataarea name="flop" size="162830">
1429            <rom name="strings_fortran.ccvf" size="162830" crc="389c4c75" sha1="24b6a44cb71373c68c6cec52e61258e96e76e20f" offset="0"/>
1430         </dataarea>
1431      </part>
1432   </software>
1433
1434
1435   <software name="fortstra" clone="fortstr">
1436      <description>FORTRAN Strings Source (Alt)</description>
1437      <year>19??</year>
1438      <publisher>&lt;unknown&gt;</publisher>
1439      <part name="flop1" interface="floppy_5_25">
1440         <dataarea name="flop" size="162812">
1441            <rom name="strings_fortran_2.ccvf" size="162812" crc="7a821888" sha1="816b654bd70b0d0fa1c4f31fa43b0b4c70beafb0" offset="0"/>
1442         </dataarea>
1443      </part>
1444   </software>
1445
14461345   <software name="forutil">
1447      <description>FORTRAN Utilities Source</description>
1346      <description>forutil_1</description>
14481347      <year>19??</year>
14491348      <publisher>&lt;unknown&gt;</publisher>
14501349      <part name="flop1" interface="floppy_5_25">
r241777r241778
14551354   </software>
14561355
14571356   <software name="galaxian">
1458      <description>Galaxian</description>
1357      <description>galaxian</description>
14591358      <year>19??</year>
14601359      <publisher>&lt;unknown&gt;</publisher>
14611360      <part name="flop1" interface="floppy_5_25">
r241777r241778
14651364      </part>
14661365   </software>
14671366
1468   <software name="galaxiana" cloneof="galaxian">
1469      <description>Galaxian (Alt)</description>
1367   <software name="softwre">
1368      <description>softwares</description>
14701369      <year>19??</year>
14711370      <publisher>&lt;unknown&gt;</publisher>
14721371      <part name="flop1" interface="floppy_5_25">
1473         <dataarea name="flop" size="163112">
1474            <rom name="galaxian (alt).ccvf" size="163112" crc="47fffa68" sha1="0bee0f0b3fda9733be42bed86769b90cb2c4748f" offset="0" />
1475         </dataarea>
1476      </part>
1477   </software>
1478
1479   <software name="ghostcr">
1480      <description>Ghost Crunchers</description>
1481      <year>19??</year>
1482      <publisher>&lt;unknown&gt;</publisher>
1483      <part name="flop1" interface="floppy_5_25">
1484         <dataarea name="flop" size="162874">
1485            <rom name="ghost_crunchers.ccvf" size="162874" crc="126abdf4" sha1="80bc317041591391193c2c734030bd41c150ee12" offset="0" />
1486         </dataarea>
1487      </part>
1488   </software>
1489
1490   <software name="basicgam">
1491      <description>BASIC Games</description>
1492      <year>19??</year>
1493      <publisher>&lt;unknown&gt;</publisher>
1494      <part name="flop1" interface="floppy_5_25">
14951372         <dataarea name="flop" size="162811">
14961373            <rom name="softwares.ccvf" size="162811" crc="f9d7447f" sha1="52e79d5a30e9666b8ea790270da1b125eb810413" offset="0"/>
14971374         </dataarea>
14981375      </part>
14991376   </software>
15001377
1501   <software name="basicgm2">
1502      <description>BASIC Games #2</description>
1378   <software name="softwre2">
1379      <description>softwares2</description>
15031380      <year>19??</year>
15041381      <publisher>&lt;unknown&gt;</publisher>
15051382      <part name="flop1" interface="floppy_5_25">
r241777r241778
15091386      </part>
15101387   </software>
15111388
1512   <software name="basicgm3">
1513      <description>BASIC Games #3</description>
1389   <software name="softwre3">
1390      <description>softwares3</description>
15141391      <year>19??</year>
15151392      <publisher>&lt;unknown&gt;</publisher>
15161393      <part name="flop1" interface="floppy_5_25">
r241777r241778
15201397      </part>
15211398   </software>
15221399
1523   <software name="basicgm4">
1524      <description>BASIC Games #4</description>
1400   <software name="softwre4">
1401      <description>softwares4</description>
15251402      <year>19??</year>
15261403      <publisher>&lt;unknown&gt;</publisher>
15271404      <part name="flop1" interface="floppy_5_25">
r241777r241778
15321409   </software>
15331410
15341411   <software name="hangman">
1535      <description>Hangman</description>
1412      <description>hangman</description>
15361413      <year>19??</year>
15371414      <publisher>&lt;unknown&gt;</publisher>
15381415      <part name="flop1" interface="floppy_5_25">
r241777r241778
15431420   </software>
15441421
15451422   <software name="hwutil">
1546      <description>Hardware Utilities</description>
1423      <description>hardware_utilities</description>
15471424      <year>19??</year>
15481425      <publisher>&lt;unknown&gt;</publisher>
15491426      <part name="flop1" interface="floppy_5_25">
r241777r241778
15541431   </software>
15551432
15561433   <software name="homebdgt">
1557      <description>Home Budget</description>
1434      <description>home_budget_1</description>
15581435      <year>19??</year>
15591436      <publisher>&lt;unknown&gt;</publisher>
15601437      <part name="flop1" interface="floppy_5_25">
r241777r241778
15771454   </software>
15781455
15791456   <software name="homevid">
1580      <description>Home Video Library</description>
1457      <description>home_video_library</description>
15811458      <year>19??</year>
15821459      <publisher>&lt;unknown&gt;</publisher>
15831460      <part name="flop1" interface="floppy_5_25">
r241777r241778
15881465   </software>
15891466
15901467   <software name="ida">
1591      <description>IDA (v2.6)</description>
1468      <description>ida_v2.6-sideb</description>
15921469      <year>19??</year>
15931470      <publisher>&lt;unknown&gt;</publisher>
15941471      <part name="flop1" interface="floppy_5_25">
r241777r241778
16051482   </software>
16061483
16071484   <software name="ifsoft">
1608      <description>Interface Software / Joystick Games</description>
1485      <description>interface_software</description>
16091486      <year>19??</year>
16101487      <publisher>&lt;unknown&gt;</publisher>
16111488      <part name="flop1" interface="floppy_5_25">
r241777r241778
16151492      </part>
16161493   </software>
16171494
1618   <software name="intro2sw">
1619      <description>Intro to Soundware</description>
1495   <software name="intrsndw">
1496      <description>intro_to_soundware</description>
16201497      <year>19??</year>
16211498      <publisher>&lt;unknown&gt;</publisher>
16221499      <part name="flop1" interface="floppy_5_25">
r241777r241778
16271504   </software>
16281505
16291506   <software name="invaders">
1630      <description>Invaders</description>
1507      <description>invaders_epps</description>
16311508      <year>19??</year>
16321509      <publisher>&lt;unknown&gt;</publisher>
16331510      <part name="flop1" interface="floppy_5_25">
r241777r241778
16371514      </part>
16381515   </software>
16391516
1640   <software name="invadersa" cloneof="invaders">
1641      <description>Invaders (Alt)</description>
1642      <year>19??</year>
1643      <publisher>&lt;unknown&gt;</publisher>
1644      <part name="flop1" interface="floppy_5_25">
1645         <dataarea name="flop" size="162840">
1646            <rom name="invaders_epps (alt).ccvf" size="162840" crc="59e49cd6" sha1="13aeffa4015cb5cb0bfcd959ab8f7c5b606a27b6" offset="0" />
1647         </dataarea>
1648      </part>
1649   </software>
1650
16511517   <software name="inventry">
1652      <description>Inventory</description>
1518      <description>inventory</description>
16531519      <year>19??</year>
16541520      <publisher>&lt;unknown&gt;</publisher>
16551521      <part name="flop1" interface="floppy_5_25">
r241777r241778
16601526   </software>
16611527
16621528   <software name="invoice">
1663      <description>Invoice Order</description>
1529      <description>invoice_order</description>
16641530      <year>19??</year>
16651531      <publisher>&lt;unknown&gt;</publisher>
16661532      <part name="flop1" interface="floppy_5_25">
r241777r241778
16711537   </software>
16721538
16731539   <software name="iscdemos">
1674      <description>ISC Demos</description>
1540      <description>isc_demos</description>
16751541      <year>19??</year>
16761542      <publisher>&lt;unknown&gt;</publisher>
16771543      <part name="flop1" interface="floppy_5_25">
r241777r241778
16821548   </software>
16831549
16841550   <software name="joystick">
1685      <description>Joystick Games</description>
1551      <description>joystick-sidea</description>
16861552      <year>19??</year>
16871553      <publisher>&lt;unknown&gt;</publisher>
16881554      <part name="flop1" interface="floppy_5_25">
r241777r241778
16991565   </software>
17001566
17011567   <software name="joysound">
1702      <description>Joystick Games with Sound</description>
1568      <description>joystick_sound</description>
17031569      <year>19??</year>
17041570      <publisher>&lt;unknown&gt;</publisher>
17051571      <part name="flop1" interface="floppy_5_25">
r241777r241778
17101576   </software>
17111577
17121578   <software name="lasergun">
1713      <description>Laser Gun (Joystick)</description>
1579      <description>laser_gun_joystick</description>
17141580      <year>19??</year>
17151581      <publisher>&lt;unknown&gt;</publisher>
17161582      <part name="flop1" interface="floppy_5_25">
r241777r241778
17211587   </software>
17221588
17231589   <software name="lasergunk" cloneof="lasergun">
1724      <description>Laser Gun (Keyboard)</description>
1590      <description>laser_gun_keyboard</description>
17251591      <year>19??</year>
17261592      <publisher>&lt;unknown&gt;</publisher>
17271593      <part name="flop1" interface="floppy_5_25">
r241777r241778
17321598   </software>
17331599
17341600   <software name="life">
1735      <description>Life</description>
1601      <description>life</description>
17361602      <year>19??</year>
17371603      <publisher>&lt;unknown&gt;</publisher>
17381604      <part name="flop1" interface="floppy_5_25">
r241777r241778
17421608      </part>
17431609   </software>
17441610
1745   <software name="lifea" cloneof="life">
1746      <description>Life (Alt)</description>
1611   <software name="life2">
1612      <description>life2</description>
17471613      <year>19??</year>
17481614      <publisher>&lt;unknown&gt;</publisher>
17491615      <part name="flop1" interface="floppy_5_25">
r241777r241778
17541620   </software>
17551621
17561622   <software name="llander">
1757      <description>Lunar Lander</description>
1623      <description>lunar_lander</description>
17581624      <year>19??</year>
17591625      <publisher>&lt;unknown&gt;</publisher>
17601626      <part name="flop1" interface="floppy_5_25">
r241777r241778
17651631   </software>
17661632
17671633   <software name="maillist">
1768      <description>Mailing List</description>
1634      <description>mailing_list</description>
17691635      <year>19??</year>
17701636      <publisher>&lt;unknown&gt;</publisher>
17711637      <part name="flop1" interface="floppy_5_25">
r241777r241778
17761642   </software>
17771643
17781644   <software name="mazes1">
1779      <description>Mazes #1</description>
1645      <description>mazes_1</description>
17801646      <year>19??</year>
17811647      <publisher>&lt;unknown&gt;</publisher>
17821648      <part name="flop1" interface="floppy_5_25">
r241777r241778
17871653   </software>
17881654
17891655   <software name="mazes2">
1790      <description>Mazes #2</description>
1656      <description>mazes_2</description>
17911657      <year>19??</year>
17921658      <publisher>&lt;unknown&gt;</publisher>
17931659      <part name="flop1" interface="floppy_5_25">
r241777r241778
17981664   </software>
17991665
18001666   <software name="mixed">
1801      <description>Mixed Programs</description>
1667      <description>mixed</description>
18021668      <year>19??</year>
18031669      <publisher>&lt;unknown&gt;</publisher>
18041670      <part name="flop1" interface="floppy_5_25">
r241777r241778
18081674      </part>
18091675   </software>
18101676
1677   <software name="mldpfix">
1678      <description>mldp_fix</description>
1679      <year>19??</year>
1680      <publisher>&lt;unknown&gt;</publisher>
1681      <part name="flop1" interface="floppy_5_25">
1682         <dataarea name="flop" size="162819">
1683            <rom name="mldp_fix.ccvf" size="162819" crc="0871bd9d" sha1="c315b88c56a5186e27835800479eb41e013321b5" offset="0"/>
1684         </dataarea>
1685      </part>
1686   </software>
1687
18111688   <software name="modutils">
1812      <description>Modified Utilities</description>
1689      <description>modified_utilities</description>
18131690      <year>19??</year>
18141691      <publisher>&lt;unknown&gt;</publisher>
18151692      <part name="flop1" interface="floppy_5_25">
r241777r241778
18201697   </software>
18211698
18221699   <software name="mpidemo">
1823      <description>Multi Peripheral Interface Hardware Demo</description>
1700      <description>multi_peripheral_interface_demo</description>
18241701      <year>19??</year>
18251702      <publisher>&lt;unknown&gt;</publisher>
18261703      <part name="flop1" interface="floppy_5_25">
r241777r241778
18301707      </part>
18311708   </software>
18321709
1833   <software name="ncc0105">
1834      <description>NCC #1 &amp; #5</description>
1710   <software name="ncc10">
1711      <description>ncc_10</description>
18351712      <year>19??</year>
18361713      <publisher>&lt;unknown&gt;</publisher>
18371714      <part name="flop1" interface="floppy_5_25">
1838         <dataarea name="flop" size="162828">
1839            <rom name="ncc_1_5.ccvf" size="162828" crc="8a4bf1e5" sha1="98df027ed8be3a6819819e3a58d9898d5e8dde65" offset="0"/>
1715         <dataarea name="flop" size="162813">
1716            <rom name="ncc_10.ccvf" size="162813" crc="06feff21" sha1="d21e781b4fa8388410543db18780a13918723d56" offset="0"/>
18401717         </dataarea>
18411718      </part>
18421719   </software>
18431720
1844   <software name="ncc02">
1845      <description>NCC #2</description>
1721   <software name="ncc12">
1722      <description>ncc_12</description>
18461723      <year>19??</year>
18471724      <publisher>&lt;unknown&gt;</publisher>
18481725      <part name="flop1" interface="floppy_5_25">
1849         <dataarea name="flop" size="162814">
1850            <rom name="ncc_2.ccvf" size="162814" crc="2c27c8da" sha1="9096fcf57bd867662ebfd4b1f26e8bc4746a4c9d" offset="0"/>
1726         <dataarea name="flop" size="162813">
1727            <rom name="ncc_12.ccvf" size="162813" crc="e81b653d" sha1="1c7091177f66a4f486afdd7a9bbbc9e5b7950bf4" offset="0"/>
18511728         </dataarea>
18521729      </part>
18531730   </software>
18541731
1855   <software name="ncc03">
1856      <description>NCC #3</description>
1732   <software name="ncc13">
1733      <description>ncc_13</description>
18571734      <year>19??</year>
18581735      <publisher>&lt;unknown&gt;</publisher>
18591736      <part name="flop1" interface="floppy_5_25">
1860         <dataarea name="flop" size="162812">
1861            <rom name="ncc_3.ccvf" size="162812" crc="ac44b202" sha1="e28d41b478c43a762476c27f2a33fbaeace7e738" offset="0"/>
1737         <dataarea name="flop" size="162833">
1738            <rom name="ncc_13.ccvf" size="162833" crc="e6e4969a" sha1="c3a86005b0545404c1f88e1a7eb6e6dc9baa1a83" offset="0"/>
18621739         </dataarea>
18631740      </part>
18641741   </software>
18651742
1866   <software name="ncc04">
1867      <description>NCC #4</description>
1743   <software name="ncc14">
1744      <description>ncc_14</description>
18681745      <year>19??</year>
18691746      <publisher>&lt;unknown&gt;</publisher>
18701747      <part name="flop1" interface="floppy_5_25">
1871         <dataarea name="flop" size="162814">
1872            <rom name="ncc_4.ccvf" size="162814" crc="91eaf631" sha1="b1e1c5745ab7e93b5e7c0710bd4af293fc4e1a7d" offset="0"/>
1748         <dataarea name="flop" size="162844">
1749            <rom name="ncc_14.ccvf" size="162844" crc="76bdcb4f" sha1="16bf8550d202b8c431301b79dd7c49b3c635b11c" offset="0"/>
18731750         </dataarea>
18741751      </part>
18751752   </software>
18761753
1877   <software name="ncc0411">
1878      <description>NCC #4 &amp; #11</description>
1754   <software name="ncc15">
1755      <description>ncc_15</description>
18791756      <year>19??</year>
18801757      <publisher>&lt;unknown&gt;</publisher>
18811758      <part name="flop1" interface="floppy_5_25">
1882         <dataarea name="flop" size="162816">
1883            <rom name="ncc_4_11.ccvf" size="162816" crc="929d57ad" sha1="f5297ec772dc79b4c30889f4ceef908f327bb410" offset="0"/>
1759         <dataarea name="flop" size="162813">
1760            <rom name="ncc_15.ccvf" size="162813" crc="d2f692fb" sha1="5d84fed5d485216aa557fdefb7cc8a1f4f9d64f0" offset="0"/>
18841761         </dataarea>
18851762      </part>
18861763   </software>
18871764
1888   <software name="ncc05">
1889      <description>NCC #5</description>
1765   <software name="ncc16">
1766      <description>ncc_16</description>
18901767      <year>19??</year>
18911768      <publisher>&lt;unknown&gt;</publisher>
18921769      <part name="flop1" interface="floppy_5_25">
1893         <dataarea name="flop" size="162854">
1894            <rom name="ncc_5.ccvf" size="162854" crc="e2161570" sha1="705bc3ff4440584a2156ffba14830e57a6fb593f" offset="0"/>
1770         <dataarea name="flop" size="162845">
1771            <rom name="ncc_16.ccvf" size="162845" crc="302adb3a" sha1="a47a710898c46522d55d457aa051de8b57140c80" offset="0"/>
18951772         </dataarea>
18961773      </part>
18971774   </software>
18981775
1899   <software name="ncc06">
1900      <description>NCC #6 (Original)</description>
1776   <software name="ncc17">
1777      <description>ncc_17</description>
19011778      <year>19??</year>
19021779      <publisher>&lt;unknown&gt;</publisher>
19031780      <part name="flop1" interface="floppy_5_25">
1904         <dataarea name="flop" size="162814">
1905            <rom name="ncc_6_real.ccvf" size="162814" crc="0ca51665" sha1="1eb0feb76f0f1eddef2c7b5c7c4d1dc666b1c0c8" offset="0"/>
1781         <dataarea name="flop" size="162829">
1782            <rom name="ncc_17.ccvf" size="162829" crc="4b8b53e5" sha1="b78386b25568d3a04642ffa8c43a9603510187fe" offset="0"/>
19061783         </dataarea>
19071784      </part>
19081785   </software>
19091786
1910   <software name="ncc06a" cloneof="ncc06">
1911      <description>NCC #6</description>
1787   <software name="ncc18">
1788      <description>ncc_18</description>
19121789      <year>19??</year>
19131790      <publisher>&lt;unknown&gt;</publisher>
19141791      <part name="flop1" interface="floppy_5_25">
1915         <dataarea name="flop" size="162825">
1916            <rom name="ncc_6.ccvf" size="162825" crc="f92a4138" sha1="bab59538bdf06c707548ec766d5ed349a6e2a166" offset="0"/>
1792         <dataarea name="flop" size="162813">
1793            <rom name="ncc_18.ccvf" size="162813" crc="5ef86e49" sha1="b57de71dda895cd79407265d7b06c17083b6c2ac" offset="0"/>
19171794         </dataarea>
19181795      </part>
19191796   </software>
19201797
1921   <software name="ncc07">
1922      <description>NCC #7</description>
1798   <software name="ncc1_5">
1799      <description>ncc_1_5</description>
19231800      <year>19??</year>
19241801      <publisher>&lt;unknown&gt;</publisher>
19251802      <part name="flop1" interface="floppy_5_25">
1926         <dataarea name="flop" size="162825">
1927            <rom name="ncc_7.ccvf" size="162825" crc="ef5f1eb0" sha1="643221839c6f0d7ba02555b3af5c79bcd328833a" offset="0"/>
1803         <dataarea name="flop" size="162828">
1804            <rom name="ncc_1_5.ccvf" size="162828" crc="8a4bf1e5" sha1="98df027ed8be3a6819819e3a58d9898d5e8dde65" offset="0"/>
19281805         </dataarea>
19291806      </part>
19301807   </software>
19311808
1932   <software name="ncc08">
1933      <description>NCC #8 (Original)</description>
1809   <software name="ncc2">
1810      <description>ncc_2</description>
19341811      <year>19??</year>
19351812      <publisher>&lt;unknown&gt;</publisher>
19361813      <part name="flop1" interface="floppy_5_25">
1937         <dataarea name="flop" size="162827">
1938            <rom name="ncc_8_real.ccvf" size="162827" crc="50f3440b" sha1="31a5be594999a4f64e5f6f98d906556459123b7e" offset="0"/>
1814         <dataarea name="flop" size="162814">
1815            <rom name="ncc_2.ccvf" size="162814" crc="2c27c8da" sha1="9096fcf57bd867662ebfd4b1f26e8bc4746a4c9d" offset="0"/>
19391816         </dataarea>
19401817      </part>
19411818   </software>
19421819
1943   <software name="ncc08a" cloneof="ncc08">
1944      <description>NCC #8</description>
1820   <software name="ncc21">
1821      <description>ncc_21</description>
19451822      <year>19??</year>
19461823      <publisher>&lt;unknown&gt;</publisher>
19471824      <part name="flop1" interface="floppy_5_25">
1948         <dataarea name="flop" size="162830">
1949            <rom name="ncc_8.ccvf" size="162830" crc="2c103b67" sha1="c15ca208f630abf4ee96df90f0dab28970f7d944" offset="0"/>
1825         <dataarea name="flop" size="162813">
1826            <rom name="ncc_21.ccvf" size="162813" crc="108f506d" sha1="d3b92a3a3d161248047edcddd75ea6a399235bd0" offset="0"/>
19501827         </dataarea>
19511828      </part>
19521829   </software>
19531830
1954   <software name="ncc09">
1955      <description>NCC #9</description>
1831   <software name="ncc22">
1832      <description>ncc_22</description>
19561833      <year>19??</year>
19571834      <publisher>&lt;unknown&gt;</publisher>
19581835      <part name="flop1" interface="floppy_5_25">
1959         <dataarea name="flop" size="162814">
1960            <rom name="ncc_9.ccvf" size="162814" crc="4cdfb369" sha1="c5c05c4bd09b0c5d9338b6408a9c4693c3fbb228" offset="0"/>
1836         <dataarea name="flop" size="162813">
1837            <rom name="ncc_22.ccvf" size="162813" crc="d46ed975" sha1="7ef3457ff8f9cf24865c662a09467a986580394e" offset="0"/>
19611838         </dataarea>
19621839      </part>
19631840   </software>
19641841
1965   <software name="ncc10">
1966      <description>NCC #10</description>
1842   <software name="ncc23">
1843      <description>ncc_23</description>
19671844      <year>19??</year>
19681845      <publisher>&lt;unknown&gt;</publisher>
19691846      <part name="flop1" interface="floppy_5_25">
1970         <dataarea name="flop" size="162813">
1971            <rom name="ncc_10.ccvf" size="162813" crc="06feff21" sha1="d21e781b4fa8388410543db18780a13918723d56" offset="0"/>
1847         <dataarea name="flop" size="162826">
1848            <rom name="ncc_23.ccvf" size="162826" crc="4076f83a" sha1="8eba8856e9572343973c3dbc788945331d68976b" offset="0"/>
19721849         </dataarea>
19731850      </part>
19741851   </software>
19751852
1976   <software name="ncc12">
1977      <description>NCC #12</description>
1853   <software name="ncc3">
1854      <description>ncc_3</description>
19781855      <year>19??</year>
19791856      <publisher>&lt;unknown&gt;</publisher>
19801857      <part name="flop1" interface="floppy_5_25">
1981         <dataarea name="flop" size="162813">
1982            <rom name="ncc_12.ccvf" size="162813" crc="e81b653d" sha1="1c7091177f66a4f486afdd7a9bbbc9e5b7950bf4" offset="0"/>
1858         <dataarea name="flop" size="162812">
1859            <rom name="ncc_3.ccvf" size="162812" crc="ac44b202" sha1="e28d41b478c43a762476c27f2a33fbaeace7e738" offset="0"/>
19831860         </dataarea>
19841861      </part>
19851862   </software>
19861863
1987   <software name="ncc13">
1988      <description>NCC #13</description>
1864   <software name="ncc_4">
1865      <description>ncc_4</description>
19891866      <year>19??</year>
19901867      <publisher>&lt;unknown&gt;</publisher>
19911868      <part name="flop1" interface="floppy_5_25">
1992         <dataarea name="flop" size="162833">
1993            <rom name="ncc_13.ccvf" size="162833" crc="e6e4969a" sha1="c3a86005b0545404c1f88e1a7eb6e6dc9baa1a83" offset="0"/>
1869         <dataarea name="flop" size="162814">
1870            <rom name="ncc_4.ccvf" size="162814" crc="91eaf631" sha1="b1e1c5745ab7e93b5e7c0710bd4af293fc4e1a7d" offset="0"/>
19941871         </dataarea>
19951872      </part>
19961873   </software>
19971874
1998   <software name="ncc14">
1999      <description>NCC #14</description>
1875   <software name="ncc4_11">
1876      <description>ncc_4_11</description>
20001877      <year>19??</year>
20011878      <publisher>&lt;unknown&gt;</publisher>
20021879      <part name="flop1" interface="floppy_5_25">
2003         <dataarea name="flop" size="162844">
2004            <rom name="ncc_14.ccvf" size="162844" crc="76bdcb4f" sha1="16bf8550d202b8c431301b79dd7c49b3c635b11c" offset="0"/>
1880         <dataarea name="flop" size="162816">
1881            <rom name="ncc_4_11.ccvf" size="162816" crc="929d57ad" sha1="f5297ec772dc79b4c30889f4ceef908f327bb410" offset="0"/>
20051882         </dataarea>
20061883      </part>
20071884   </software>
20081885
2009   <software name="ncc15">
2010      <description>NCC #15</description>
1886   <software name="ncc5">
1887      <description>ncc_5</description>
20111888      <year>19??</year>
20121889      <publisher>&lt;unknown&gt;</publisher>
20131890      <part name="flop1" interface="floppy_5_25">
2014         <dataarea name="flop" size="162813">
2015            <rom name="ncc_15.ccvf" size="162813" crc="d2f692fb" sha1="5d84fed5d485216aa557fdefb7cc8a1f4f9d64f0" offset="0"/>
1891         <dataarea name="flop" size="162854">
1892            <rom name="ncc_5.ccvf" size="162854" crc="e2161570" sha1="705bc3ff4440584a2156ffba14830e57a6fb593f" offset="0"/>
20161893         </dataarea>
20171894      </part>
20181895   </software>
20191896
2020   <software name="ncc16">
2021      <description>NCC #16</description>
1897   <software name="ncc6a" cloneof="ncc6">
1898      <description>ncc_6</description>
20221899      <year>19??</year>
20231900      <publisher>&lt;unknown&gt;</publisher>
20241901      <part name="flop1" interface="floppy_5_25">
2025         <dataarea name="flop" size="162845">
2026            <rom name="ncc_16.ccvf" size="162845" crc="302adb3a" sha1="a47a710898c46522d55d457aa051de8b57140c80" offset="0"/>
1902         <dataarea name="flop" size="162825">
1903            <rom name="ncc_6.ccvf" size="162825" crc="f92a4138" sha1="bab59538bdf06c707548ec766d5ed349a6e2a166" offset="0"/>
20271904         </dataarea>
20281905      </part>
20291906   </software>
20301907
2031   <software name="ncc17">
2032      <description>NCC #17</description>
1908   <software name="ncc6">
1909      <description>ncc_6_real</description>
20331910      <year>19??</year>
20341911      <publisher>&lt;unknown&gt;</publisher>
20351912      <part name="flop1" interface="floppy_5_25">
2036         <dataarea name="flop" size="162829">
2037            <rom name="ncc_17.ccvf" size="162829" crc="4b8b53e5" sha1="b78386b25568d3a04642ffa8c43a9603510187fe" offset="0"/>
1913         <dataarea name="flop" size="162814">
1914            <rom name="ncc_6_real.ccvf" size="162814" crc="0ca51665" sha1="1eb0feb76f0f1eddef2c7b5c7c4d1dc666b1c0c8" offset="0"/>
20381915         </dataarea>
20391916      </part>
20401917   </software>
20411918
2042   <software name="ncc18">
2043      <description>NCC #18</description>
1919   <software name="ncc7">
1920      <description>ncc_7</description>
20441921      <year>19??</year>
20451922      <publisher>&lt;unknown&gt;</publisher>
20461923      <part name="flop1" interface="floppy_5_25">
2047         <dataarea name="flop" size="162813">
2048            <rom name="ncc_18.ccvf" size="162813" crc="5ef86e49" sha1="b57de71dda895cd79407265d7b06c17083b6c2ac" offset="0"/>
1924         <dataarea name="flop" size="162825">
1925            <rom name="ncc_7.ccvf" size="162825" crc="ef5f1eb0" sha1="643221839c6f0d7ba02555b3af5c79bcd328833a" offset="0"/>
20491926         </dataarea>
20501927      </part>
20511928   </software>
20521929
2053   <software name="ncc21">
2054      <description>NCC #21</description>
1930   <software name="ncc8a" cloneof="ncc8">
1931      <description>ncc_8</description>
20551932      <year>19??</year>
20561933      <publisher>&lt;unknown&gt;</publisher>
20571934      <part name="flop1" interface="floppy_5_25">
2058         <dataarea name="flop" size="162813">
2059            <rom name="ncc_21.ccvf" size="162813" crc="108f506d" sha1="d3b92a3a3d161248047edcddd75ea6a399235bd0" offset="0"/>
1935         <dataarea name="flop" size="162830">
1936            <rom name="ncc_8.ccvf" size="162830" crc="2c103b67" sha1="c15ca208f630abf4ee96df90f0dab28970f7d944" offset="0"/>
20601937         </dataarea>
20611938      </part>
20621939   </software>
20631940
2064   <software name="ncc22">
2065      <description>NCC #22</description>
1941   <software name="ncc8">
1942      <description>ncc_8_real</description>
20661943      <year>19??</year>
20671944      <publisher>&lt;unknown&gt;</publisher>
20681945      <part name="flop1" interface="floppy_5_25">
2069         <dataarea name="flop" size="162813">
2070            <rom name="ncc_22.ccvf" size="162813" crc="d46ed975" sha1="7ef3457ff8f9cf24865c662a09467a986580394e" offset="0"/>
1946         <dataarea name="flop" size="162827">
1947            <rom name="ncc_8_real.ccvf" size="162827" crc="50f3440b" sha1="31a5be594999a4f64e5f6f98d906556459123b7e" offset="0"/>
20711948         </dataarea>
20721949      </part>
20731950   </software>
20741951
2075   <software name="ncc23">
2076      <description>NCC #23</description>
1952   <software name="ncc9">
1953      <description>ncc_9</description>
20771954      <year>19??</year>
20781955      <publisher>&lt;unknown&gt;</publisher>
20791956      <part name="flop1" interface="floppy_5_25">
2080         <dataarea name="flop" size="162826">
2081            <rom name="ncc_23.ccvf" size="162826" crc="4076f83a" sha1="8eba8856e9572343973c3dbc788945331d68976b" offset="0"/>
1957         <dataarea name="flop" size="162814">
1958            <rom name="ncc_9.ccvf" size="162814" crc="4cdfb369" sha1="c5c05c4bd09b0c5d9338b6408a9c4693c3fbb228" offset="0"/>
20821959         </dataarea>
20831960      </part>
20841961   </software>
20851962
20861963   <software name="ncccat1">
2087      <description>NCC Catalog #1</description>
1964      <description>ncc_catalog_1</description>
20881965      <year>19??</year>
20891966      <publisher>&lt;unknown&gt;</publisher>
20901967      <part name="flop1" interface="floppy_5_25">
r241777r241778
20951972   </software>
20961973
20971974   <software name="nswug1">
2098      <description>New South Wales CCII Users Group Disk #1</description>
1975      <description>nsw_ug_1-sidea</description>
20991976      <year>19??</year>
21001977      <publisher>&lt;unknown&gt;</publisher>
21011978      <part name="flop1" interface="floppy_5_25">
r241777r241778
21121989   </software>
21131990
21141991   <software name="othello">
2115      <description>Othello</description>
1992      <description>othello</description>
21161993      <year>19??</year>
21171994      <publisher>&lt;unknown&gt;</publisher>
21181995      <part name="flop1" interface="floppy_5_25">
r241777r241778
21232000   </software>
21242001
21252002   <software name="pacman">
2126      <description>Pacman</description>
2003      <description>pacman</description>
21272004      <year>19??</year>
21282005      <publisher>&lt;unknown&gt;</publisher>
21292006      <part name="flop1" interface="floppy_5_25">
r241777r241778
21342011   </software>
21352012
21362013   <software name="persfina">
2137      <description>Personal Finance Volume 1</description>
2014      <description>personal_finance_vol_1</description>
21382015      <year>19??</year>
21392016      <publisher>&lt;unknown&gt;</publisher>
21402017      <part name="flop1" interface="floppy_5_25">
r241777r241778
21452022   </software>
21462023
21472024   <software name="pertplnr">
2148      <description>PERT Planner</description>
2025      <description>pert_planner</description>
21492026      <year>19??</year>
21502027      <publisher>&lt;unknown&gt;</publisher>
21512028      <part name="flop1" interface="floppy_5_25">
r241777r241778
21562033   </software>
21572034
21582035   <software name="printpkg">
2159      <description>Printer Package</description>
2036      <description>printer_pkg</description>
21602037      <year>19??</year>
21612038      <publisher>&lt;unknown&gt;</publisher>
21622039      <part name="flop1" interface="floppy_5_25">
r241777r241778
21642041            <rom name="printer_pkg.ccvf" size="162842" crc="d4998bf0" sha1="abc216b8f2b2907289c83d555dd13bbaff8cfa6f" offset="0"/>
21652042         </dataarea>
21662043      </part>
2167   </software>
21682044
2169   <software name="printpkgs" cloneof="printpkg">
2170      <description>Printer Package Source</description>
2171      <year>19??</year>
2172      <publisher>&lt;unknown&gt;</publisher>
2173      <part name="flop1" interface="floppy_5_25">
2045      <part name="flop2" interface="floppy_5_25">
21742046         <dataarea name="flop" size="162842">
21752047            <rom name="printer_pkg_src-sidea.ccvf" size="162842" crc="7d2436e8" sha1="9f1188fd7d707bd8dc04dca252ddda187b48ab05" offset="0"/>
21762048         </dataarea>
21772049      </part>
21782050
2179      <part name="flop2" interface="floppy_5_25">
2051      <part name="flop3" interface="floppy_5_25">
21802052         <dataarea name="flop" size="162842">
21812053            <rom name="printer_pkg_src-sideb.ccvf" size="162842" crc="78d69675" sha1="55bcd7c91bdc78cffdd475caa8f8e217cc92a304" offset="0"/>
21822054         </dataarea>
21832055      </part>
21842056   </software>
21852057
2186   <software name="printdrv">
2187      <description>Printer Drivers</description>
2188      <year>19??</year>
2189      <publisher>&lt;unknown&gt;</publisher>
2190      <part name="flop1" interface="floppy_5_25">
2191         <dataarea name="flop" size="162925">
2192            <rom name="driver_lister.ccvf" size="162925" crc="504740f6" sha1="f38611fb908e9986407309d7fb5eec769169c9cd" offset="0"/>
2193         </dataarea>
2194      </part>
2195   </software>
2196
21972058   <software name="ratfor">
2198      <description>RATFOR</description>
2059      <description>ratfor</description>
21992060      <year>19??</year>
22002061      <publisher>&lt;unknown&gt;</publisher>
22012062      <part name="flop1" interface="floppy_5_25">
r241777r241778
22052066      </part>
22062067   </software>
22072068
2208   <software name="sampler">
2209      <description>Sampler (v1.23.80)</description>
2069   <software name="samplera" cloneof="sampler">
2070      <description>sampler-3.31.78</description>
22102071      <year>19??</year>
22112072      <publisher>&lt;unknown&gt;</publisher>
22122073      <part name="flop1" interface="floppy_5_25">
22132074         <dataarea name="flop" size="163561">
2214            <rom name="sampler.ccvf" size="163561" crc="71b7c5f9" sha1="2442454b6e85adab43f345469464d76012a2a9fc" offset="0"/>
2075            <rom name="sampler-3.31.78.ccvf" size="163561" crc="3df51056" sha1="954c5add7267f0c3d832422f8c93d770e0d9cd06" offset="0"/>
22152076         </dataarea>
22162077      </part>
22172078   </software>
22182079
2219   <software name="samplera" cloneof="sampler">
2220      <description>Sampler (v3.31.78)</description>
2080   <software name="sampler">
2081      <description>sampler</description>
22212082      <year>19??</year>
22222083      <publisher>&lt;unknown&gt;</publisher>
22232084      <part name="flop1" interface="floppy_5_25">
22242085         <dataarea name="flop" size="163561">
2225            <rom name="sampler-3.31.78.ccvf" size="163561" crc="3df51056" sha1="954c5add7267f0c3d832422f8c93d770e0d9cd06" offset="0"/>
2086            <rom name="sampler.ccvf" size="163561" crc="71b7c5f9" sha1="2442454b6e85adab43f345469464d76012a2a9fc" offset="0"/>
22262087         </dataarea>
22272088      </part>
22282089   </software>
22292090
2230   <software name="sargon">
2231      <description>Sargon 1</description>
2091   <software name="srgches1">
2092      <description>sargon_chess_1</description>
22322093      <year>19??</year>
22332094      <publisher>&lt;unknown&gt;</publisher>
22342095      <part name="flop1" interface="floppy_5_25">
r241777r241778
22392100   </software>
22402101
22412102   <software name="scratch">
2242      <description>Scratch</description>
2103      <description>scratch</description>
22432104      <year>19??</year>
22442105      <publisher>&lt;unknown&gt;</publisher>
22452106      <part name="flop1" interface="floppy_5_25">
r241777r241778
22502111   </software>
22512112
22522113   <software name="selutils">
2253      <description>Selective Utilities</description>
2114      <description>selective_utilities</description>
22542115      <year>19??</year>
22552116      <publisher>&lt;unknown&gt;</publisher>
22562117      <part name="flop1" interface="floppy_5_25">
r241777r241778
22602121      </part>
22612122   </software>
22622123
2263   <software name="sfssp">
2264      <description>SFSSP (v1.3)</description>
2124   <software name="sfsspa" cloneof="sfssp">
2125      <description>sfssp_v1.3_nodata_docs</description>
22652126      <year>19??</year>
22662127      <publisher>&lt;unknown&gt;</publisher>
22672128      <part name="flop1" interface="floppy_5_25">
2268         <dataarea name="flop" size="162841">
2269            <rom name="sfssp_v1.3_stock.ccvf" size="162841" crc="07866db5" sha1="51d67e05617f5e48060dbf68a50fcb6a57277b4e" offset="0"/>
2129         <dataarea name="flop" size="162862">
2130            <rom name="sfssp_v1.3_nodata_docs.ccvf" size="162862" crc="21d05c4f" sha1="dc35e4d1ad361b69a922cd7ab0d8e629b5c49f67" offset="0"/>
22702131         </dataarea>
22712132      </part>
22722133   </software>
22732134
2274   <software name="sfsspa" cloneof="sfssp">
2275      <description>SFSSP (v1.3, No Docs)</description>
2135   <software name="sfssp">
2136      <description>sfssp_v1.3_stock</description>
22762137      <year>19??</year>
22772138      <publisher>&lt;unknown&gt;</publisher>
22782139      <part name="flop1" interface="floppy_5_25">
2279         <dataarea name="flop" size="162862">
2280            <rom name="sfssp_v1.3_nodata_docs.ccvf" size="162862" crc="21d05c4f" sha1="dc35e4d1ad361b69a922cd7ab0d8e629b5c49f67" offset="0"/>
2140         <dataarea name="flop" size="162841">
2141            <rom name="sfssp_v1.3_stock.ccvf" size="162841" crc="07866db5" sha1="51d67e05617f5e48060dbf68a50fcb6a57277b4e" offset="0"/>
22812142         </dataarea>
22822143      </part>
22832144   </software>
22842145
22852146   <software name="sharks">
2286      <description>Sharks</description>
2147      <description>sharks</description>
22872148      <year>19??</year>
22882149      <publisher>&lt;unknown&gt;</publisher>
22892150      <part name="flop1" interface="floppy_5_25">
r241777r241778
22932154      </part>
22942155   </software>
22952156
2296   <software name="snakelad">
2297      <description>Snakes and Ladders</description>
2157   <software name="snakeldr">
2158      <description>snakes_and_ladders</description>
22982159      <year>19??</year>
22992160      <publisher>&lt;unknown&gt;</publisher>
23002161      <part name="flop1" interface="floppy_5_25">
r241777r241778
23052166   </software>
23062167
23072168   <software name="solitair">
2308      <description>Solitaire</description>
2169      <description>solitaire</description>
23092170      <year>19??</year>
23102171      <publisher>&lt;unknown&gt;</publisher>
23112172      <part name="flop1" interface="floppy_5_25">
r241777r241778
23162177   </software>
23172178
23182179   <software name="slitepen">
2319      <description>Sound Light Pen</description>
2180      <description>sound_light_pen</description>
23202181      <year>19??</year>
23212182      <publisher>&lt;unknown&gt;</publisher>
23222183      <part name="flop1" interface="floppy_5_25">
r241777r241778
23272188   </software>
23282189
23292190   <software name="sndware2">
2330      <description>Soundware II</description>
2191      <description>soundware_ii</description>
23312192      <year>19??</year>
23322193      <publisher>&lt;unknown&gt;</publisher>
23332194      <part name="flop1" interface="floppy_5_25">
r241777r241778
23382199   </software>
23392200
23402201   <software name="source">
2341      <description>Source</description>
2202      <description>source</description>
23422203      <year>19??</year>
23432204      <publisher>&lt;unknown&gt;</publisher>
23442205      <part name="flop1" interface="floppy_5_25">
r241777r241778
23492210   </software>
23502211
23512212   <software name="source1">
2352      <description>Source 1</description>
2213      <description>source_1</description>
23532214      <year>19??</year>
23542215      <publisher>&lt;unknown&gt;</publisher>
23552216      <part name="flop1" interface="floppy_5_25">
r241777r241778
23602221   </software>
23612222
23622223   <software name="source3">
2363      <description>Source 3</description>
2224      <description>source_3</description>
23642225      <year>19??</year>
23652226      <publisher>&lt;unknown&gt;</publisher>
23662227      <part name="flop1" interface="floppy_5_25">
r241777r241778
23712232   </software>
23722233
23732234   <software name="source4">
2374      <description>Source 4</description>
2235      <description>source_4</description>
23752236      <year>19??</year>
23762237      <publisher>&lt;unknown&gt;</publisher>
23772238      <part name="flop1" interface="floppy_5_25">
r241777r241778
23822243   </software>
23832244
23842245   <software name="stampprc">
2385      <description>Stamp Price Lists</description>
2246      <description>stamp_price_lists</description>
23862247      <year>19??</year>
23872248      <publisher>&lt;unknown&gt;</publisher>
23882249      <part name="flop1" interface="floppy_5_25">
r241777r241778
23932254   </software>
23942255
23952256   <software name="startrek">
2396      <description>Star Trek</description>
2257      <description>startrek</description>
23972258      <year>19??</year>
23982259      <publisher>&lt;unknown&gt;</publisher>
23992260      <part name="flop1" interface="floppy_5_25">
r241777r241778
24032264      </part>
24042265   </software>
24052266
2406   <software name="strekge">
2407      <description>Star Trek (Graham Epps, v30.8.80)</description>
2408      <year>19??</year>
2409      <publisher>Graham Epps</publisher>
2410      <part name="flop1" interface="floppy_5_25">
2411         <dataarea name="flop" size="163637">
2412            <rom name="epps_trek.ccvf" size="163637" crc="0dad1114" sha1="4f4496c14c65d7b46640cecbdfefa8116de44b78" offset="0"/>
2413         </dataarea>
2414      </part>
2415   </software>
2416
2417   <software name="strekgea" cloneof="strekge">
2418      <description>Star Trek (Graham Epps, v30.8.80, Alt)</description>
2419      <year>19??</year>
2420      <publisher>Graham Epps</publisher>
2421      <part name="flop1" interface="floppy_5_25">
2422         <dataarea name="flop" size="162842">
2423            <rom name="epps_trek (alt).ccvf" size="162842" crc="600fb885" sha1="1fdeaeb61f3fb1c08e803cdeb02f36c392713c7c" offset="0" />
2424         </dataarea>
2425      </part>
2426   </software>
2427
24282267   <software name="stat1">
2429      <description>Statistics I</description>
2268      <description>statistics_1</description>
24302269      <year>19??</year>
24312270      <publisher>&lt;unknown&gt;</publisher>
24322271      <part name="flop1" interface="floppy_5_25">
r241777r241778
24372276   </software>
24382277
24392278   <software name="stat2">
2440      <description>Statistics II</description>
2279      <description>statistics_2</description>
24412280      <year>19??</year>
24422281      <publisher>&lt;unknown&gt;</publisher>
24432282      <part name="flop1" interface="floppy_5_25">
r241777r241778
24482287   </software>
24492288
24502289   <software name="stat3">
2451      <description>Statistics III</description>
2290      <description>statistics_3</description>
24522291      <year>19??</year>
24532292      <publisher>&lt;unknown&gt;</publisher>
24542293      <part name="flop1" interface="floppy_5_25">
r241777r241778
24582297      </part>
24592298   </software>
24602299
2300   <software name="fortstr">
2301      <description>strings_fortran</description>
2302      <year>19??</year>
2303      <publisher>&lt;unknown&gt;</publisher>
2304      <part name="flop1" interface="floppy_5_25">
2305         <dataarea name="flop" size="162830">
2306            <rom name="strings_fortran.ccvf" size="162830" crc="389c4c75" sha1="24b6a44cb71373c68c6cec52e61258e96e76e20f" offset="0"/>
2307         </dataarea>
2308      </part>
2309
2310      <part name="flop2" interface="floppy_5_25">
2311         <dataarea name="flop" size="162812">
2312            <rom name="strings_fortran_2.ccvf" size="162812" crc="7a821888" sha1="816b654bd70b0d0fa1c4f31fa43b0b4c70beafb0" offset="0"/>
2313         </dataarea>
2314      </part>
2315   </software>
2316
24612317   <software name="supermon">
2462      <description>Super Monitor</description>
2318      <description>super_monitor</description>
24632319      <year>19??</year>
24642320      <publisher>&lt;unknown&gt;</publisher>
24652321      <part name="flop1" interface="floppy_5_25">
r241777r241778
24702326   </software>
24712327
24722328   <software name="swarms">
2473      <description>Swarms</description>
2329      <description>swarms</description>
24742330      <year>19??</year>
24752331      <publisher>&lt;unknown&gt;</publisher>
24762332      <part name="flop1" interface="floppy_5_25">
r241777r241778
24812337   </software>
24822338
24832339   <software name="tabltenn">
2484      <description>Table Tennis for Two</description>
2340      <description>table_tennis_for_two</description>
24852341      <year>19??</year>
24862342      <publisher>&lt;unknown&gt;</publisher>
24872343      <part name="flop1" interface="floppy_5_25">
r241777r241778
24922348   </software>
24932349
24942350   <software name="taylor">
2495      <description>Taylor</description>
2351      <description>taylor-sidea</description>
24962352      <year>19??</year>
24972353      <publisher>&lt;unknown&gt;</publisher>
24982354      <part name="flop1" interface="floppy_5_25">
r241777r241778
25092365   </software>
25102366
25112367   <software name="taylor1">
2512      <description>Taylor #1</description>
2368      <description>taylor_1</description>
25132369      <year>19??</year>
25142370      <publisher>&lt;unknown&gt;</publisher>
25152371      <part name="flop1" interface="floppy_5_25">
r241777r241778
25202376   </software>
25212377
25222378   <software name="taylor2">
2523      <description>Taylor #2</description>
2379      <description>taylor_2</description>
25242380      <year>19??</year>
25252381      <publisher>&lt;unknown&gt;</publisher>
25262382      <part name="flop1" interface="floppy_5_25">
r241777r241778
25312387   </software>
25322388
25332389   <software name="taylor3">
2534      <description>Taylor #3</description>
2390      <description>taylor_3</description>
25352391      <year>19??</year>
25362392      <publisher>&lt;unknown&gt;</publisher>
25372393      <part name="flop1" interface="floppy_5_25">
r241777r241778
25422398   </software>
25432399
25442400   <software name="taylor4">
2545      <description>Taylor #4</description>
2401      <description>taylor_4</description>
25462402      <year>19??</year>
25472403      <publisher>&lt;unknown&gt;</publisher>
25482404      <part name="flop1" interface="floppy_5_25">
r241777r241778
25532409   </software>
25542410
25552411   <software name="taylor5">
2556      <description>Taylor #5</description>
2412      <description>taylor_5</description>
25572413      <year>19??</year>
25582414      <publisher>&lt;unknown&gt;</publisher>
25592415      <part name="flop1" interface="floppy_5_25">
r241777r241778
25642420   </software>
25652421
25662422   <software name="taylor6">
2567      <description>Taylor #6</description>
2423      <description>taylor_6</description>
25682424      <year>19??</year>
25692425      <publisher>&lt;unknown&gt;</publisher>
25702426      <part name="flop1" interface="floppy_5_25">
r241777r241778
25752431   </software>
25762432
25772433   <software name="taylor7">
2578      <description>Taylor #7</description>
2434      <description>taylor_7</description>
25792435      <year>19??</year>
25802436      <publisher>&lt;unknown&gt;</publisher>
25812437      <part name="flop1" interface="floppy_5_25">
r241777r241778
25862442   </software>
25872443
25882444   <software name="taylor8">
2589      <description>Taylor #8</description>
2445      <description>taylor_8</description>
25902446      <year>19??</year>
25912447      <publisher>&lt;unknown&gt;</publisher>
25922448      <part name="flop1" interface="floppy_5_25">
r241777r241778
25972453   </software>
25982454
25992455   <software name="taylorv2">
2600      <description>Taylor Vol. #2</description>
2456      <description>taylor_vol_2</description>
26012457      <year>19??</year>
26022458      <publisher>&lt;unknown&gt;</publisher>
26032459      <part name="flop1" interface="floppy_5_25">
r241777r241778
26082464   </software>
26092465
26102466   <software name="terminal">
2611      <description>Terminal</description>
2467      <description>terminal</description>
26122468      <year>19??</year>
26132469      <publisher>&lt;unknown&gt;</publisher>
26142470      <part name="flop1" interface="floppy_5_25">
r241777r241778
26182474      </part>
26192475   </software>
26202476
2621   <software name="termemu">
2622      <description>Terminal Emulator</description>
2477   <software name="termem">
2478      <description>terminal_em</description>
26232479      <year>19??</year>
26242480      <publisher>&lt;unknown&gt;</publisher>
26252481      <part name="flop1" interface="floppy_5_25">
r241777r241778
26302486   </software>
26312487
26322488   <software name="textedit">
2633      <description>Text Editor</description>
2489      <description>text_editor</description>
26342490      <year>19??</year>
26352491      <publisher>&lt;unknown&gt;</publisher>
26362492      <part name="flop1" interface="floppy_5_25">
r241777r241778
26412497   </software>
26422498
26432499   <software name="textfrmt">
2644      <description>Text Formatter</description>
2500      <description>text_formatter</description>
26452501      <year>19??</year>
26462502      <publisher>&lt;unknown&gt;</publisher>
26472503      <part name="flop1" interface="floppy_5_25">
r241777r241778
26522508   </software>
26532509
26542510   <software name="editor">
2655      <description>The BASIC Editor (v2.A.82)</description>
2511      <description>the_editor_v2</description>
26562512      <year>19??</year>
26572513      <publisher>&lt;unknown&gt;</publisher>
26582514      <part name="flop1" interface="floppy_5_25">
r241777r241778
26632519   </software>
26642520
26652521   <software name="tinyc">
2666      <description>Tiny C v3.0</description>
2522      <description>tiny_c_v3.0</description>
26672523      <year>19??</year>
26682524      <publisher>&lt;unknown&gt;</publisher>
26692525      <part name="flop1" interface="floppy_5_25">
r241777r241778
26742530   </software>
26752531
26762532   <software name="tinypasc">
2677      <description>Tiny Pascal</description>
2533      <description>tiny_pascal</description>
26782534      <year>19??</year>
26792535      <publisher>&lt;unknown&gt;</publisher>
26802536      <part name="flop1" interface="floppy_5_25">
r241777r241778
26842540      </part>
26852541   </software>
26862542
2687   <software name="tpforth">
2688      <description>Tiny Pascal in FORTH</description>
2689      <year>19??</year>
2690      <publisher>&lt;unknown&gt;</publisher>
2691      <part name="flop1" interface="floppy_5_25">
2692         <dataarea name="flop" size="162853">
2693            <rom name="forth_pascal.ccvf" size="162853" crc="0545b0be" sha1="536d0b034ca44d7657bb36d38fff62832e8e5717" offset="0"/>
2694         </dataarea>
2695      </part>
2696   </software>
2697
26982543   <software name="utility">
2699      <description>Utility</description>
2544      <description>utility</description>
27002545      <year>19??</year>
27012546      <publisher>&lt;unknown&gt;</publisher>
27022547      <part name="flop1" interface="floppy_5_25">
r241777r241778
27072552   </software>
27082553
27092554   <software name="utility2">
2710      <description>Utility 2</description>
2555      <description>utility_2</description>
27112556      <year>19??</year>
27122557      <publisher>&lt;unknown&gt;</publisher>
27132558      <part name="flop1" interface="floppy_5_25">
r241777r241778
27182563   </software>
27192564
27202565   <software name="utility3">
2721      <description>Utility 3</description>
2566      <description>utility_3</description>
27222567      <year>19??</year>
27232568      <publisher>&lt;unknown&gt;</publisher>
27242569      <part name="flop1" interface="floppy_5_25">
r241777r241778
27282573      </part>
27292574   </software>
27302575
2731   <software name="watlanal">
2732      <description>WATALS/ANALIZ</description>
2733      <year>19??</year>
2734      <publisher>&lt;unknown&gt;</publisher>
2735      <part name="flop1" interface="floppy_5_25">
2736         <dataarea name="flop" size="162871">
2737            <rom name="analiz_watals.ccvf" size="162871" crc="91bb3632" sha1="61472691a68688b3a9281385327a7d07e77c9d3b" offset="0"/>
2738         </dataarea>
2739      </part>
2740   </software>
2741
27422576   <software name="wordking">
2743      <description>Word King (v1.6)</description>
2577      <description>word_king_v1.6</description>
27442578      <year>19??</year>
27452579      <publisher>&lt;unknown&gt;</publisher>
27462580      <part name="flop1" interface="floppy_5_25">
r241777r241778
27512585   </software>
27522586
27532587   <software name="wordproc">
2754      <description>Word Processor (v2.1)</description>
2588      <description>word_processor_v2.1</description>
27552589      <year>19??</year>
27562590      <publisher>&lt;unknown&gt;</publisher>
27572591      <part name="flop1" interface="floppy_5_25">
r241777r241778
27622596   </software>
27632597
27642598   <software name="wordpzle">
2765      <description>Word Puzzle</description>
2599      <description>word_puzzle</description>
27662600      <year>19??</year>
27672601      <publisher>&lt;unknown&gt;</publisher>
27682602      <part name="flop1" interface="floppy_5_25">
r241777r241778
27732607   </software>
27742608
27752609   <software name="wordy">
2776      <description>Wordy</description>
2610      <description>wordy_disk_1</description>
27772611      <year>19??</year>
27782612      <publisher>&lt;unknown&gt;</publisher>
27792613      <part name="flop1" interface="floppy_5_25">
r241777r241778
27962630   </software>
27972631
27982632   <software name="zipcomp">
2799      <description>ZIP Compiler</description>
2633      <description>zip_compiler</description>
28002634      <year>19??</year>
28012635      <publisher>&lt;unknown&gt;</publisher>
28022636      <part name="flop1" interface="floppy_5_25">
trunk/hash/dai_cass.xml
r241777r241778
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<softwarelist name="dai_cass" description="DAI Personal Computer cassettes">
5   <software name="biorythm">
6      <description>BIORYTHME</description>
7      <year>198?</year>
8      <publisher>&lt;unknown&gt;</publisher>
9
10      <part name="cass1" interface="dai_cass">
11         <dataarea name="cass" size="3417434">
12            <rom name="biorythme.wav" size="3417434" crc="e89fa182" sha1="0b10826f4ce86ca99749f78f7c4a7b8cf483b73e" offset="0" />
13         </dataarea>
14      </part>
15   </software>
16
17   <software name="dgraph">
18      <description>DEMOGRAPHBV</description>
19      <year>198?</year>
20      <publisher>&lt;unknown&gt;</publisher>
21
22      <part name="cass1" interface="dai_cass">
23         <dataarea name="cass" size="9209948">
24            <rom name="demographbv.wav" size="9209948" crc="2d864a6a" sha1="bdd11f68ce56c71430d52aab195946b4276100d2" offset="0" />
25         </dataarea>
26      </part>
27   </software>
28
29   <software name="dessin">
30      <description>DESSIN</description>
31      <year>198?</year>
32      <publisher>&lt;unknown&gt;</publisher>
33
34      <part name="cass1" interface="dai_cass">
35         <dataarea name="cass" size="4020808">
36            <rom name="dessin.wav" size="4020808" crc="75f37036" sha1="6080dd40e1e4a2cee8bbf7f1ca6c979ecffebbc5" offset="0" />
37         </dataarea>
38      </part>
39   </software>
40
41   <software name="lewiscar">
42      <description>LEWISCARROL</description>
43      <year>198?</year>
44      <publisher>&lt;unknown&gt;</publisher>
45
46      <part name="cass1" interface="dai_cass">
47         <dataarea name="cass" size="5123796">
48            <rom name="lewiscarrol.wav" size="5123796" crc="8b853469" sha1="6ce37dcbbafd5226de51cceb58e3d952cf588c50" offset="0" />
49         </dataarea>
50      </part>
51   </software>
52
53   <software name="morpion">
54      <description>MORPION</description>
55      <year>198?</year>
56      <publisher>&lt;unknown&gt;</publisher>
57
58      <part name="cass1" interface="dai_cass">
59         <dataarea name="cass" size="4866728">
60            <rom name="morpion.wav" size="4866728" crc="eef0df58" sha1="52273192a236eb2a3b5ab96949e672052128c414" offset="0" />
61         </dataarea>
62      </part>
63   </software>
64
65   <software name="nautilus">
66      <description>NAUTILUS</description>
67      <year>198?</year>
68      <publisher>&lt;unknown&gt;</publisher>
69
70      <part name="cass1" interface="dai_cass">
71         <dataarea name="cass" size="9359566">
72            <rom name="nautilus.wav" size="9359566" crc="c31d2ef8" sha1="311db74761013a80b6b323c0de081a8dedb17590" offset="0" />
73         </dataarea>
74      </part>
75   </software>
76
77   <software name="premier">
78      <description>PREMIER</description>
79      <year>198?</year>
80      <publisher>&lt;unknown&gt;</publisher>
81
82      <part name="cass1" interface="dai_cass">
83         <dataarea name="cass" size="507438">
84            <rom name="premier.wav" size="507438" crc="7d3ab866" sha1="7c2e4024e6f3b7909e7b490ccb5eae871cac1cb9" offset="0" />
85         </dataarea>
86      </part>
87   </software>
88
89   <software name="random">
90      <description>RANDOM</description>
91      <year>198?</year>
92      <publisher>&lt;unknown&gt;</publisher>
93
94      <part name="cass1" interface="dai_cass">
95         <dataarea name="cass" size="449206">
96            <rom name="random.wav" size="449206" crc="1a8a5505" sha1="a5a20822292713f714f50f3c20d01d6c97bedb9f" offset="0" />
97         </dataarea>
98      </part>
99   </software>
100
101</softwarelist>
trunk/hash/dmv.xml
r241777r241778
939939      </part>
940940   </software>
941941
942   <software name="drdrawc"> <!-- CP/M-86 -->
943      <description>DR Draw (Color)</description>
944      <year>1983</year>
945      <publisher>Digital Research</publisher>
946      <info name="usage" value="Requires K208, K235 and K806" />
947      <part name="flop" interface="floppy_5_25">
948         <dataarea name="flop" size="281212">
949            <rom name="86drdraw.td0" size="281212" crc="451350ce" sha1="3d710e12241850988c88ca8c16528da3cdbdc2fd" offset="0" />
950         </dataarea>
951      </part>
952   </software>
953
954   <software name="drdrawm"> <!-- CP/M-86 -->
955      <description>DR Draw (Monochrome)</description>
956      <year>1983</year>
957      <publisher>Digital Research</publisher>
958      <info name="usage" value="Requires CP/M-86" />
959      <part name="flop" interface="floppy_5_25">
960         <dataarea name="flop" size="189140">
961            <rom name="86drmo-m.td0" size="189140" crc="61543ccf" sha1="b8e33a0076bd1568a40d403bb6b391e6c45f9569" offset="0" />
962         </dataarea>
963      </part>
964   </software>
965
966   <software name="tgdemo"> <!-- CP/M-80 -->
967      <description>TUTBOGRAPH Demonstration Programs</description>
968      <year>198?</year>
969      <publisher>&lt;unknown&gt;</publisher>
970      <part name="flop" interface="floppy_5_25">
971         <dataarea name="flop" size="259406">
972            <rom name="80tgraf.td0" size="259406" crc="d22d403f" sha1="8b1182f42faa68c1e5d879e79375683e48dd8bae" offset="0" />
973         </dataarea>
974      </part>
975   </software>
976
977   <software name="cpm86qd"> <!-- CP/M-86 -->
978      <description>CP/M-86 1.1 with quad-density FDD support</description>
979      <year>1983</year>
980      <publisher>NCR Corporation</publisher>
981      <part name="flop" interface="floppy_5_25">
982         <dataarea name="flop" size="221628">
983            <rom name="586-4896.td0" size="221628" crc="383d54d3" sha1="be36d161f72c12bf6263f9577d609fd21b352c47" offset="0" />
984         </dataarea>
985      </part>
986   </software>
987
988   <software name="gsx86tst"> <!-- CP/M-86 -->
989      <description>GSX-86 Test Suite</description>
990      <year>198?</year>
991      <publisher>&lt;unknown&gt;</publisher>
992      <part name="flop" interface="floppy_5_25">
993         <dataarea name="flop" size="1128529">
994            <rom name="5-gsx86-test.mfi" size="1128529" crc="353821bc" sha1="ce977ea324ef6faf8245b4e1bcac84f2504f0c37" offset="0" />
995         </dataarea>
996      </part>
997   </software>
998
999   <software name="msdosqd"> <!-- MS-DOS -->
1000      <description>MS-DOS v2.11 with quad-density FDD support</description>
1001      <year>1983</year>
1002      <publisher>Microsoft</publisher>
1003      <part name="flop" interface="floppy_5_25">
1004         <dataarea name="flop" size="611287">
1005            <rom name="5_dos_96.mfi" size="611287" crc="c0f9d426" sha1="bccb7e04b320150435ee20e3d563dd163f6ab241" offset="0" />
1006         </dataarea>
1007      </part>
1008   </software>
1009
1010942   <software name="dbase238"> <!-- CP/M-80 -->
1011943      <description>dBASE II v2.38</description>
1012944      <year>198?</year>
r241777r241778
11111043      </part>
11121044   </software>
11131045
1114   <software name="acad"> <!-- MS-DOS -->
1046   <software name="acad" supported="no"> <!-- MS-DOS --> <!-- graphic mode doesn't works -->
11151047      <description>AutoCAD</description>
11161048      <year>1987</year>
11171049      <publisher>&lt;unknown&gt;</publisher>
r241777r241778
11281060      </part>
11291061   </software>
11301062
1131   <software name="acada" cloneof="acad"> <!-- MS-DOS -->
1063   <software name="acada" cloneof="acad" supported="no"> <!-- MS-DOS --> <!-- graphic mode doesn't works -->
11321064      <description>AutoCAD (Alt 1)</description>
11331065      <year>1987</year>
11341066      <publisher>&lt;unknown&gt;</publisher>
r241777r241778
11551087      </part>
11561088   </software>
11571089
1158   <software name="acadb" cloneof="acad"> <!-- MS-DOS -->
1090   <software name="acadb" cloneof="acad" supported="no"> <!-- MS-DOS --> <!-- graphic mode doesn't works -->
11591091      <description>AutoCAD (Alt 2)</description>
11601092      <year>1987</year>
11611093      <publisher>&lt;unknown&gt;</publisher>
trunk/hash/epson_cpm.xml
r241777r241778
2424    <software name="arcs">
2525        <description>Archivers</description>
2626        <year>?????</year>
27        <publisher>&lt;unofficial&gt;</publisher>
27        <publisher>n/a</publisher>
2828        <part name="flop1" interface="floppy_5_25">
2929            <feature name="part_id" value="Archivers" />
3030            <dataarea name="flop" size="348848">
r241777r241778
3636    <software name="editor">
3737        <description>VDE 2.66</description>
3838        <year>?????</year>
39        <publisher>&lt;unofficial&gt;</publisher>
39        <publisher>n/a</publisher>
4040        <part name="flop1" interface="floppy_5_25">
4141            <feature name="part_id" value="VDE 2.66" />
4242            <dataarea name="flop" size="348848">
r241777r241778
4848    <software name="extrauti">
4949        <description>Extra Utilities</description>
5050        <year>?????</year>
51        <publisher>&lt;unofficial&gt;</publisher>
51        <publisher>n/a</publisher>
5252        <part name="flop1" interface="floppy_5_25">
5353            <feature name="part_id" value="Extra Utilities" />
5454            <dataarea name="flop" size="348848">
r241777r241778
6060    <software name="modems">
6161        <description>Modem Sample &amp; M80 &amp; L80</description>
6262        <year>?????</year>
63        <publisher>&lt;unofficial&gt;</publisher>
63        <publisher>n/a</publisher>
6464        <part name="flop1" interface="floppy_5_25">
6565            <feature name="part_id" value="Modem Sample &amp; M80 &amp; L80" />
6666            <dataarea name="flop" size="348848">
r241777r241778
7272    <software name="promprog">
7373        <description>PROM Progs</description>
7474        <year>?????</year>
75        <publisher>&lt;unofficial&gt;</publisher>
75        <publisher>n/a</publisher>
7676        <part name="flop1" interface="floppy_5_25">
7777            <feature name="part_id" value="PROM Progs" />
7878            <dataarea name="flop" size="348848">
r241777r241778
8484    <software name="px4util1">
8585        <description>PX-4 Utils</description>
8686        <year>?????</year>
87        <publisher>&lt;unofficial&gt;</publisher>
87        <publisher>n/a</publisher>
8888        <part name="flop1" interface="floppy_5_25">
8989            <feature name="part_id" value="PX-4 Utils" />
9090            <dataarea name="flop" size="348848">
r241777r241778
9696    <software name="px4util2">
9797        <description>PX-4 Utility Disk</description>
9898        <year>?????</year>
99        <publisher>&lt;unofficial&gt;</publisher>
99        <publisher>n/a</publisher>
100100        <part name="flop1" interface="floppy_5_25">
101101            <feature name="part_id" value="PX-4 Utility Disk" />
102102            <dataarea name="flop" size="348848">
r241777r241778
108108    <software name="px4util3">
109109        <description>PX-4 Utility Disk 2</description>
110110        <year>?????</year>
111        <publisher>&lt;unofficial&gt;</publisher>
111        <publisher>n/a</publisher>
112112        <part name="flop1" interface="floppy_5_25">
113113            <feature name="part_id" value="PX-4 Utility Disk 2" />
114114            <dataarea name="flop" size="348848">
r241777r241778
120120    <software name="px4wand">
121121        <description>PX-4 Wanderer</description>
122122        <year>?????</year>
123        <publisher>&lt;unofficial&gt;</publisher>
123        <publisher>n/a</publisher>
124124        <part name="flop1" interface="floppy_5_25">
125125            <feature name="part_id" value="PX-4 Wanderer" />
126126            <dataarea name="flop" size="348848">
r241777r241778
132132    <software name="px8epstf">
133133        <description>PX-8 EPS (TF-20 bootdisk)</description>
134134        <year>?????</year>
135        <publisher>&lt;unofficial&gt;</publisher>
135        <publisher>n/a</publisher>
136136        <part name="flop1" interface="floppy_5_25">
137137            <feature name="part_id" value="PX-8 EPS (TF-20 bootdisk)" />
138138            <dataarea name="flop" size="348848">
r241777r241778
144144    <software name="px8games">
145145        <description>PX-8 Games</description>
146146        <year>?????</year>
147        <publisher>&lt;unofficial&gt;</publisher>
147        <publisher>n/a</publisher>
148148        <part name="flop1" interface="floppy_5_25">
149149            <feature name="part_id" value="PX-8 Games" />
150150            <dataarea name="flop" size="348848">
r241777r241778
156156    <software name="scratch">
157157        <description>Scratch</description>
158158        <year>?????</year>
159        <publisher>&lt;unofficial&gt;</publisher>
159        <publisher>n/a</publisher>
160160        <part name="flop1" interface="floppy_5_25">
161161            <feature name="part_id" value="Scratch" />
162162            <dataarea name="flop" size="348848">
trunk/hash/galaxy.xml
r241777r241778
55
66   <software name="asteroid">
77      <description>Asteroidi</description>
8      <year>1984</year>
9      <publisher>GAC Software</publisher>
8      <year>19??</year>
9      <publisher>&lt;unknown&gt;</publisher>
1010      <part name="cass1" interface="galaxy_cass">
1111         <dataarea name="cass" size="1298">
12            <rom name="asteroidi.gtp" size="1298" crc="70aa80a3" sha1="1bc96cdf7602bbb24b02f5f9cb9aac709f3a7080" offset="0" />
12            <rom name="asteroidi.gtp" size="1298" crc="70aa80a3" sha1="1bc96cdf7602bbb24b02f5f9cb9aac709f3a7080" offset="0x0000" />
1313         </dataarea>
1414      </part>
1515   </software>
r241777r241778
2020      <publisher>&lt;unknown&gt;</publisher>
2121      <part name="cass1" interface="galaxy_cass">
2222         <dataarea name="cass" size="1017">
23            <rom name="biljar.gtp" size="1017" crc="469ba6a2" sha1="b93a3a968e3fe004958f61d6fcf63268be01517d" offset="0" />
23            <rom name="biljar.gtp" size="1017" crc="469ba6a2" sha1="b93a3a968e3fe004958f61d6fcf63268be01517d" offset="0x0000" />
2424         </dataarea>
2525      </part>
2626   </software>
2727
28   <software name="bioritam">
29      <description>Bioritam</description>
30      <year>1984</year>
31      <publisher>Galaxy Computer</publisher>
28   <software name="biorita1">
29      <description>Bioritam1</description>
30      <year>19??</year>
31      <publisher>&lt;unknown&gt;</publisher>
3232      <part name="cass1" interface="galaxy_cass">
3333         <dataarea name="cass" size="2996">
34            <rom name="bioritam1.gtp" size="2996" crc="86d9274a" sha1="b71ef12740d0cb10d8ae0b5eb30d6f3fd1f7fb86" offset="0" />
34            <rom name="bioritam1.gtp" size="2996" crc="86d9274a" sha1="b71ef12740d0cb10d8ae0b5eb30d6f3fd1f7fb86" offset="0x0000" />
3535         </dataarea>
3636      </part>
3737   </software>
3838
3939   <software name="biorita2">
40      <description>Bioritam (Alt)</description>
40      <description>Bioritam2</description>
4141      <year>19??</year>
4242      <publisher>&lt;unknown&gt;</publisher>
4343      <part name="cass1" interface="galaxy_cass">
4444         <dataarea name="cass" size="1366">
45            <rom name="bioritam2.gtp" size="1366" crc="997e491e" sha1="b61d390bc33e2568526af5a2116ec87d7ac7e505" offset="0" />
45            <rom name="bioritam2.gtp" size="1366" crc="997e491e" sha1="b61d390bc33e2568526af5a2116ec87d7ac7e505" offset="0x0000" />
4646         </dataarea>
4747      </part>
4848   </software>
4949
50   <software name="bladeall">
51      <description>Blade Alley</description>
52      <year>1985</year>
53      <publisher>Jasmin Halilovic</publisher>
50   <software name="bladall">
51      <description>BladeAlley</description>
52      <year>19??</year>
53      <publisher>&lt;unknown&gt;</publisher>
5454      <part name="cass1" interface="galaxy_cass">
5555         <dataarea name="cass" size="1879">
56            <rom name="bladealley.gtp" size="1879" crc="723da222" sha1="b8d7978a67595ef1107919771cbe7b9919ad2fe5" offset="0" />
56            <rom name="bladealley.gtp" size="1879" crc="723da222" sha1="b8d7978a67595ef1107919771cbe7b9919ad2fe5" offset="0x0000" />
5757         </dataarea>
5858      </part>
5959   </software>
r241777r241778
6161   <software name="bombard">
6262      <description>Bombarder</description>
6363      <year>19??</year>
64      <publisher>Nenad Balint</publisher>
64      <publisher>&lt;unknown&gt;</publisher>
6565      <part name="cass1" interface="galaxy_cass">
6666         <dataarea name="cass" size="1880">
67            <rom name="bombarder.gtp" size="1880" crc="7d584b08" sha1="a0629636f015381f8d4132af8d95577fdef12ed7" offset="0" />
67            <rom name="bombarder.gtp" size="1880" crc="7d584b08" sha1="a0629636f015381f8d4132af8d95577fdef12ed7" offset="0x0000" />
6868         </dataarea>
6969      </part>
7070   </software>
7171
7272   <software name="charfire">
73      <description>Chariots of Fire</description>
73      <description>ChariotsOfFire</description>
7474      <year>19??</year>
75      <publisher>Dragan Yujkov</publisher>
75      <publisher>&lt;unknown&gt;</publisher>
7676      <part name="cass1" interface="galaxy_cass">
7777         <dataarea name="cass" size="290">
78            <rom name="chariotsoffire.gtp" size="290" crc="33e9fad9" sha1="7e80787f2314c6dad333856b2a1683ddcffafdf4" offset="0" />
78            <rom name="chariotsoffire.gtp" size="290" crc="33e9fad9" sha1="7e80787f2314c6dad333856b2a1683ddcffafdf4" offset="0x0000" />
7979         </dataarea>
8080      </part>
8181   </software>
r241777r241778
8686      <publisher>&lt;unknown&gt;</publisher>
8787      <part name="cass1" interface="galaxy_cass">
8888         <dataarea name="cass" size="411">
89            <rom name="comets.gtp" size="411" crc="8ccc82a6" sha1="e283c077c660182ffba71f1f5300f893eaf13915" offset="0" />
89            <rom name="comets.gtp" size="411" crc="8ccc82a6" sha1="e283c077c660182ffba71f1f5300f893eaf13915" offset="0x0000" />
9090         </dataarea>
9191      </part>
9292   </software>
9393
9494   <software name="dijamant">
95      <description>Dijamantski Rudnik</description>
96      <year>1985</year>
97      <publisher>Nenad Balint</publisher>
95      <description>DijamantskiRudnik</description>
96      <year>19??</year>
97      <publisher>&lt;unknown&gt;</publisher>
9898      <part name="cass1" interface="galaxy_cass">
9999         <dataarea name="cass" size="2754">
100            <rom name="dijamantskirudnik.gtp" size="2754" crc="d7c5a9ba" sha1="f1669e88644fe4fca1387b00f617aff80162028e" offset="0" />
100            <rom name="dijamantskirudnik.gtp" size="2754" crc="d7c5a9ba" sha1="f1669e88644fe4fca1387b00f617aff80162028e" offset="0x0000" />
101101         </dataarea>
102102      </part>
103103   </software>
104104
105105   <software name="dijamanta" cloneof="dijamant">
106      <description>Dijamantski Rudnik (Alt Format)</description>
107      <year>1985</year>
108      <publisher>Nenad Balint</publisher>
106      <description>DijamantskiRudnik_ALT</description>
107      <year>19??</year>
108      <publisher>&lt;unknown&gt;</publisher>
109109      <part name="cass1" interface="galaxy_cass">
110110         <dataarea name="cass" size="8244">
111            <rom name="dr.gal" size="8244" crc="c73c2187" sha1="9e2fe7856657df1db846f54f008e7e8a823aa8ac" offset="0" />
111            <rom name="dr.gal" size="8244" crc="c73c2187" sha1="9e2fe7856657df1db846f54f008e7e8a823aa8ac" offset="0x0000" />
112112         </dataarea>
113113      </part>
114114   </software>
r241777r241778
119119      <publisher>&lt;unknown&gt;</publisher>
120120      <part name="cass1" interface="galaxy_cass">
121121         <dataarea name="cass" size="2913">
122            <rom name="egemond.gtp" size="2913" crc="7c85c513" sha1="ca001178ba823a3a7258147473723321f424c535" offset="0" />
122            <rom name="egemond.gtp" size="2913" crc="7c85c513" sha1="ca001178ba823a3a7258147473723321f424c535" offset="0x0000" />
123123         </dataarea>
124124      </part>
125125   </software>
126126
127127   <software name="evolucia">
128128      <description>Evolucija</description>
129      <year>1984</year>
130      <publisher>Dejan Ristanovic</publisher>
129      <year>19??</year>
130      <publisher>&lt;unknown&gt;</publisher>
131131      <part name="cass1" interface="galaxy_cass">
132132         <dataarea name="cass" size="1063">
133            <rom name="evolucija.gtp" size="1063" crc="c3a8c0f1" sha1="b195af2a260db880166aae754054d1a89a34f73f" offset="0" />
133            <rom name="evolucija.gtp" size="1063" crc="c3a8c0f1" sha1="b195af2a260db880166aae754054d1a89a34f73f" offset="0x0000" />
134134         </dataarea>
135135      </part>
136136   </software>
137137
138138   <software name="f1">
139      <description>Formula 1</description>
139      <description>Formula1</description>
140140      <year>19??</year>
141141      <publisher>&lt;unknown&gt;</publisher>
142142      <part name="cass1" interface="galaxy_cass">
143143         <dataarea name="cass" size="1194">
144            <rom name="formula1.gtp" size="1194" crc="3efb14c1" sha1="8a48a4bf98c59ae2ed373f6c2db30dfb1cbf14be" offset="0" />
144            <rom name="formula1.gtp" size="1194" crc="3efb14c1" sha1="8a48a4bf98c59ae2ed373f6c2db30dfb1cbf14be" offset="0x0000" />
145145         </dataarea>
146146      </part>
147147   </software>
148148
149149   <software name="four">
150150      <description>Four</description>
151      <year>1986</year>
152      <publisher>Dragan Yujkov</publisher>
151      <year>19??</year>
152      <publisher>&lt;unknown&gt;</publisher>
153153      <part name="cass1" interface="galaxy_cass">
154154         <dataarea name="cass" size="2631">
155            <rom name="four.gtp" size="2631" crc="9ee92e36" sha1="9c7b83ba138e77bc258d3e495146e8971779b4d2" offset="0" />
155            <rom name="four.gtp" size="2631" crc="9ee92e36" sha1="9c7b83ba138e77bc258d3e495146e8971779b4d2" offset="0x0000" />
156156         </dataarea>
157157      </part>
158158   </software>
159159
160160   <software name="galakrat">
161      <description>Galakticki Rat</description>
162      <year>1985</year>
163      <publisher>Antonic Voja</publisher>
161      <description>GalaktickiRat</description>
162      <year>19??</year>
163      <publisher>&lt;unknown&gt;</publisher>
164164      <part name="cass1" interface="galaxy_cass">
165165         <dataarea name="cass" size="2238">
166            <rom name="galaktickirat.gtp" size="2238" crc="e7a5260e" sha1="510c411b524b80b621655f4038581811818dc7d2" offset="0" />
166            <rom name="galaktickirat.gtp" size="2238" crc="e7a5260e" sha1="510c411b524b80b621655f4038581811818dc7d2" offset="0x0000" />
167167         </dataarea>
168168      </part>
169169   </software>
170170
171171   <software name="hhorace">
172      <description>Hungry Horace</description>
172      <description>HungryHorace</description>
173173      <year>19??</year>
174174      <publisher>&lt;unknown&gt;</publisher>
175175      <part name="cass1" interface="galaxy_cass">
176176         <dataarea name="cass" size="797">
177            <rom name="hungryhorace.gtp" size="797" crc="f3c15d57" sha1="e1217926da7560e9a6a6582df3bbe22ca59e2ed1" offset="0" />
177            <rom name="hungryhorace.gtp" size="797" crc="f3c15d57" sha1="e1217926da7560e9a6a6582df3bbe22ca59e2ed1" offset="0x0000" />
178178         </dataarea>
179179      </part>
180180   </software>
181181
182182   <software name="igradisk">
183      <description>Igra Diskova</description>
184      <year>1985</year>
185      <publisher>Yojislav Mihailovic</publisher>
183      <description>IgraDiskova</description>
184      <year>19??</year>
185      <publisher>&lt;unknown&gt;</publisher>
186186      <part name="cass1" interface="galaxy_cass">
187187         <dataarea name="cass" size="1768">
188            <rom name="igradiskova.gtp" size="1768" crc="7e37f44d" sha1="c60e55ff82287c7f0d610c1f403de7f75f206054" offset="0" />
188            <rom name="igradiskova.gtp" size="1768" crc="7e37f44d" sha1="c60e55ff82287c7f0d610c1f403de7f75f206054" offset="0x0000" />
189189         </dataarea>
190190      </part>
191191   </software>
192192
193193   <software name="spiridon">
194      <description>Inspektor Spiridon</description>
194      <description>InspektorSpiridon</description>
195195      <year>19??</year>
196196      <publisher>&lt;unknown&gt;</publisher>
197197      <part name="cass1" interface="galaxy_cass">
198198         <dataarea name="cass" size="4112">
199            <rom name="inspektorspiridon.gtp" size="4112" crc="15a1ef41" sha1="0f173c16aec2abde535fdb88438a8408c1c114ec" offset="0" />
199            <rom name="inspektorspiridon.gtp" size="4112" crc="15a1ef41" sha1="0f173c16aec2abde535fdb88438a8408c1c114ec" offset="0x0000" />
200200         </dataarea>
201201      </part>
202202      <part name="cass2" interface="galaxy_cass">
203203         <dataarea name="cass" size="2255">
204            <rom name="inspektorspiridonupustvo.gtp" size="2255" crc="01056c67" sha1="d658f2a5b749f20bdb0bd31b33e2a7a95cf3d378" offset="0" />
204            <rom name="inspektorspiridonupustvo.gtp" size="2255" crc="01056c67" sha1="d658f2a5b749f20bdb0bd31b33e2a7a95cf3d378" offset="0x0000" />
205205         </dataarea>
206206      </part>
207207      <part name="cass3" interface="galaxy_cass">
208208         <dataarea name="cass" size="549">
209            <rom name="inspektorspiridonvaranje.gtp" size="549" crc="3c780376" sha1="5bd7015082a350dda324ca8d497e5cbd0d73a289" offset="0" />
209            <rom name="inspektorspiridonvaranje.gtp" size="549" crc="3c780376" sha1="5bd7015082a350dda324ca8d497e5cbd0d73a289" offset="0x0000" />
210210         </dataarea>
211211      </part>
212212   </software>
213213
214214   <software name="jumpjack">
215      <description>Jumping Jack</description>
216      <year>1985</year>
217      <publisher>Antonic Voja</publisher>
215      <description>JumpingJack</description>
216      <year>19??</year>
217      <publisher>&lt;unknown&gt;</publisher>
218218      <part name="cass1" interface="galaxy_cass">
219219         <dataarea name="cass" size="1891">
220            <rom name="jumpingjack.gtp" size="1891" crc="4b158c1d" sha1="fb6019ac9fbefd87ffcba592178b6568607680b0" offset="0" />
220            <rom name="jumpingjack.gtp" size="1891" crc="4b158c1d" sha1="fb6019ac9fbefd87ffcba592178b6568607680b0" offset="0x0000" />
221221         </dataarea>
222222      </part>
223223   </software>
224224
225225   <software name="lightcyc">
226      <description>Light Cycles</description>
227      <year>1985</year>
228      <publisher>Bojan Stanojevic</publisher>
226      <description>LightCycles</description>
227      <year>19??</year>
228      <publisher>&lt;unknown&gt;</publisher>
229229      <part name="cass1" interface="galaxy_cass">
230230         <dataarea name="cass" size="1245">
231            <rom name="lightcycles.gtp" size="1245" crc="838cf2e2" sha1="6da589007fbf3688f63da88ced241907e8bee774" offset="0" />
231            <rom name="lightcycles.gtp" size="1245" crc="838cf2e2" sha1="6da589007fbf3688f63da88ced241907e8bee774" offset="0x0000" />
232232         </dataarea>
233233      </part>
234234   </software>
235235
236236   <software name="lightcy2">
237      <description>Light Cycles (Alt)</description>
237      <description>LightCycles2</description>
238238      <year>19??</year>
239239      <publisher>&lt;unknown&gt;</publisher>
240240      <part name="cass1" interface="galaxy_cass">
241241         <dataarea name="cass" size="1550">
242            <rom name="lightcycles2.gtp" size="1550" crc="f271a8a9" sha1="00dc59dfa6dd6a33edbbedc18f6300e445f170a0" offset="0" />
242            <rom name="lightcycles2.gtp" size="1550" crc="f271a8a9" sha1="00dc59dfa6dd6a33edbbedc18f6300e445f170a0" offset="0x0000" />
243243         </dataarea>
244244      </part>
245245   </software>
246246
247247   <software name="lightshw">
248      <description>Light Show</description>
249      <year>1987</year>
250      <publisher>Dragan Vujkov</publisher>
248      <description>LightShow</description>
249      <year>19??</year>
250      <publisher>&lt;unknown&gt;</publisher>
251251      <part name="cass1" interface="galaxy_cass">
252252         <dataarea name="cass" size="3001">
253            <rom name="lightshow.gtp" size="3001" crc="27ae9809" sha1="d8a95e689dd8c84b71cf375c5f57010e8a9ae4b4" offset="0" />
253            <rom name="lightshow.gtp" size="3001" crc="27ae9809" sha1="d8a95e689dd8c84b71cf375c5f57010e8a9ae4b4" offset="0x0000" />
254254         </dataarea>
255255      </part>
256256   </software>
257257
258258   <software name="mminer">
259      <description>Manic Miner</description>
259      <description>ManicMiner</description>
260260      <year>19??</year>
261261      <publisher>&lt;unknown&gt;</publisher>
262262      <part name="cass1" interface="galaxy_cass">
263263         <dataarea name="cass" size="4378">
264            <rom name="manicminer.gtp" size="4378" crc="2ab18f85" sha1="ad12006ccc3bc5c8e27c60eaeac83164ab1b86eb" offset="0" />
264            <rom name="manicminer.gtp" size="4378" crc="2ab18f85" sha1="ad12006ccc3bc5c8e27c60eaeac83164ab1b86eb" offset="0x0000" />
265265         </dataarea>
266266      </part>
267267   </software>
268268
269269   <software name="mastrmnd">
270270      <description>Mastermajnd</description>
271      <year>1984</year>
272      <publisher>Dejan Ristanovic</publisher>
271      <year>19??</year>
272      <publisher>&lt;unknown&gt;</publisher>
273273      <part name="cass1" interface="galaxy_cass">
274274         <dataarea name="cass" size="2077">
275            <rom name="mastermajnd.gtp" size="2077" crc="6daf8f56" sha1="fe6f3f6fbbc75cded96d3217c7f4475f81bb3065" offset="0" />
275            <rom name="mastermajnd.gtp" size="2077" crc="6daf8f56" sha1="fe6f3f6fbbc75cded96d3217c7f4475f81bb3065" offset="0x0000" />
276276         </dataarea>
277277      </part>
278278   </software>
279279
280280   <software name="mastrmn2">
281      <description>Mastermind</description>
281      <description>Mastermind2</description>
282282      <year>19??</year>
283283      <publisher>&lt;unknown&gt;</publisher>
284284      <part name="cass1" interface="galaxy_cass">
285285         <dataarea name="cass" size="1035">
286            <rom name="mastermind2.gtp" size="1035" crc="f27a7818" sha1="b8b93ce87792bd48e59e11e583838e2a8eea937d" offset="0" />
286            <rom name="mastermind2.gtp" size="1035" crc="f27a7818" sha1="b8b93ce87792bd48e59e11e583838e2a8eea937d" offset="0x0000" />
287287         </dataarea>
288288      </part>
289289   </software>
r241777r241778
294294      <publisher>&lt;unknown&gt;</publisher>
295295      <part name="cass1" interface="galaxy_cass">
296296         <dataarea name="cass" size="2530">
297            <rom name="maze.gtp" size="2530" crc="9a2eb6e9" sha1="89fc487ef0f8e505525e98396ecc5a16a70379d5" offset="0" />
297            <rom name="maze.gtp" size="2530" crc="9a2eb6e9" sha1="89fc487ef0f8e505525e98396ecc5a16a70379d5" offset="0x0000" />
298298         </dataarea>
299299      </part>
300300   </software>
r241777r241778
305305      <publisher>&lt;unknown&gt;</publisher>
306306      <part name="cass1" interface="galaxy_cass">
307307         <dataarea name="cass" size="2357">
308            <rom name="memorija.gtp" size="2357" crc="c5db1192" sha1="8d1c475f1b18f5b9e05583bfdafda1c2e45378c3" offset="0" />
308            <rom name="memorija.gtp" size="2357" crc="c5db1192" sha1="8d1c475f1b18f5b9e05583bfdafda1c2e45378c3" offset="0x0000" />
309309         </dataarea>
310310      </part>
311311   </software>
r241777r241778
313313   <software name="monitor">
314314      <description>Monitor</description>
315315      <year>19??</year>
316      <publisher>Antonic Voja</publisher>
316      <publisher>&lt;unknown&gt;</publisher>
317317      <part name="cass1" interface="galaxy_cass">
318318         <dataarea name="cass" size="2073">
319            <rom name="monitor.gtp" size="2073" crc="f22eceb3" sha1="c9830a9d419681b9f345b44b091c0d82d4239a08" offset="0" />
319            <rom name="monitor.gtp" size="2073" crc="f22eceb3" sha1="c9830a9d419681b9f345b44b091c0d82d4239a08" offset="0x0000" />
320320         </dataarea>
321321      </part>
322322   </software>
323323
324324   <software name="nightpil">
325      <description>Night Pilot</description>
326      <year>1985</year>
327      <publisher>Dragutin Vukotic</publisher>
325      <description>NightPilot</description>
326      <year>19??</year>
327      <publisher>&lt;unknown&gt;</publisher>
328328      <part name="cass1" interface="galaxy_cass">
329329         <dataarea name="cass" size="4854">
330            <rom name="nightpilot.gtp" size="4854" crc="97f02860" sha1="44c4cec4abb012e81dfdc4255f4c42b82e9ff167" offset="0" />
330            <rom name="nightpilot.gtp" size="4854" crc="97f02860" sha1="44c4cec4abb012e81dfdc4255f4c42b82e9ff167" offset="0x0000" />
331331         </dataarea>
332332      </part>
333333   </software>
r241777r241778
335335   <software name="oscil">
336336      <description>Oscilacije</description>
337337      <year>19??</year>
338      <publisher>Dragan Vujkov</publisher>
338      <publisher>&lt;unknown&gt;</publisher>
339339      <part name="cass1" interface="galaxy_cass">
340340         <dataarea name="cass" size="504">
341            <rom name="oscilacije.gtp" size="504" crc="83392fb3" sha1="bce729ee54a326ee7db9c9dd7dd33145b0cc64db" offset="0" />
341            <rom name="oscilacije.gtp" size="504" crc="83392fb3" sha1="bce729ee54a326ee7db9c9dd7dd33145b0cc64db" offset="0x0000" />
342342         </dataarea>
343343      </part>
344344   </software>
345345
346346   <software name="pacmanp">
347      <description>Pac Man (Plus)</description>
347      <description>PacManPlus</description>
348348      <year>19??</year>
349      <publisher>Josip Perusanec</publisher>
349      <publisher>&lt;unknown&gt;</publisher>
350350      <part name="cass1" interface="galaxy_cass">
351351         <dataarea name="cass" size="12572">
352            <rom name="pacmanplus.gtp" size="12572" crc="cbb8af07" sha1="e3f048454c4a9d62835f80256fdfebbfaef5561b" offset="0" />
352            <rom name="pacmanplus.gtp" size="12572" crc="cbb8af07" sha1="e3f048454c4a9d62835f80256fdfebbfaef5561b" offset="0x0000" />
353353         </dataarea>
354354      </part>
355355   </software>
356356
357357   <software name="pamtilic">
358358      <description>Pamtilice</description>
359      <year>1985</year>
360      <publisher>Peca Milosavljevic</publisher>
359      <year>19??</year>
360      <publisher>&lt;unknown&gt;</publisher>
361361      <part name="cass1" interface="galaxy_cass">
362362         <dataarea name="cass" size="3076">
363            <rom name="pamtilice.gtp" size="3076" crc="1ae4d73f" sha1="60332bc1ac30abe9f737a8524fcb581003fd7077" offset="0" />
363            <rom name="pamtilice.gtp" size="3076" crc="1ae4d73f" sha1="60332bc1ac30abe9f737a8524fcb581003fd7077" offset="0x0000" />
364364         </dataarea>
365365      </part>
366366   </software>
367367
368368   <software name="poker">
369369      <description>Poker</description>
370      <year>1985</year>
371      <publisher>Nenad Balint</publisher>
370      <year>19??</year>
371      <publisher>&lt;unknown&gt;</publisher>
372372      <part name="cass1" interface="galaxy_cass">
373373         <dataarea name="cass" size="4424">
374            <rom name="poker.gtp" size="4424" crc="ff4d5af3" sha1="59258c130121ac718ca8f256f293ef2e4e9742df" offset="0" />
374            <rom name="poker.gtp" size="4424" crc="ff4d5af3" sha1="59258c130121ac718ca8f256f293ef2e4e9742df" offset="0x0000" />
375375         </dataarea>
376376      </part>
377377   </software>
378378
379379   <software name="pozivniz">
380      <description>Pozivni Znak</description>
380      <description>PozivniZnak</description>
381381      <year>19??</year>
382      <publisher>Dragan Vujkov</publisher>
382      <publisher>&lt;unknown&gt;</publisher>
383383      <part name="cass1" interface="galaxy_cass">
384384         <dataarea name="cass" size="414">
385            <rom name="pozivniznak.gtp" size="414" crc="2d7273a3" sha1="694c770409781f96b422a5b55f9222700fa08531" offset="0" />
385            <rom name="pozivniznak.gtp" size="414" crc="2d7273a3" sha1="694c770409781f96b422a5b55f9222700fa08531" offset="0x0000" />
386386         </dataarea>
387387      </part>
388388   </software>
389389
390390   <software name="raindrop">
391      <description>Rain Drops</description>
391      <description>RainDrops</description>
392392      <year>19??</year>
393393      <publisher>&lt;unknown&gt;</publisher>
394394      <part name="cass1" interface="galaxy_cass">
395395         <dataarea name="cass" size="573">
396            <rom name="raindrops.gtp" size="573" crc="02642e02" sha1="d9880a1cb0180c8203cc71fab09687a808244d9a" offset="0" />
396            <rom name="raindrops.gtp" size="573" crc="02642e02" sha1="d9880a1cb0180c8203cc71fab09687a808244d9a" offset="0x0000" />
397397         </dataarea>
398398      </part>
399399   </software>
r241777r241778
404404      <publisher>&lt;unknown&gt;</publisher>
405405      <part name="cass1" interface="galaxy_cass">
406406         <dataarea name="cass" size="1892">
407            <rom name="scater.gtp" size="1892" crc="bd4be810" sha1="59d027a4111b15fd30b9290e87a2edb438e1614f" offset="0" />
407            <rom name="scater.gtp" size="1892" crc="bd4be810" sha1="59d027a4111b15fd30b9290e87a2edb438e1614f" offset="0x0000" />
408408         </dataarea>
409409      </part>
410410   </software>
r241777r241778
412412   <software name="sintesaj">
413413      <description>Sintesajzer</description>
414414      <year>19??</year>
415      <publisher>Dragan Vujkov</publisher>
415      <publisher>&lt;unknown&gt;</publisher>
416416      <part name="cass1" interface="galaxy_cass">
417417         <dataarea name="cass" size="901">
418            <rom name="sintesajzer.gtp" size="901" crc="f747478d" sha1="51b9f20f154f5631fbee88c6df906c95f8929de6" offset="0" />
418            <rom name="sintesajzer.gtp" size="901" crc="f747478d" sha1="51b9f20f154f5631fbee88c6df906c95f8929de6" offset="0x0000" />
419419         </dataarea>
420420      </part>
421421   </software>
422422
423423   <software name="slalom2">
424      <description>Slalom II</description>
425      <year>1985</year>
426      <publisher>Zeljko Gerovac</publisher>
424      <description>Slalom2</description>
425      <year>19??</year>
426      <publisher>&lt;unknown&gt;</publisher>
427427      <part name="cass1" interface="galaxy_cass">
428428         <dataarea name="cass" size="1328">
429            <rom name="slalom2.gtp" size="1328" crc="722f26ed" sha1="d9b87941fd19606d53b72cb319c4d3dc7e6880d6" offset="0" />
429            <rom name="slalom2.gtp" size="1328" crc="722f26ed" sha1="d9b87941fd19606d53b72cb319c4d3dc7e6880d6" offset="0x0000" />
430430         </dataarea>
431431      </part>
432432   </software>
433433
434434   <software name="snake">
435      <description>Snake (Nenad Balint)</description>
436      <year>1984</year>
437      <publisher>Nenad Balint</publisher>
435      <description>Snake</description>
436      <year>19??</year>
437      <publisher>&lt;unknown&gt;</publisher>
438438      <part name="cass1" interface="galaxy_cass">
439439         <dataarea name="cass" size="3173">
440            <rom name="snake.gtp" size="3173" crc="ae7e097b" sha1="8b90a3ba49711ea7bd6fc7058a71c0699fc49cb1" offset="0" />
440            <rom name="snake.gtp" size="3173" crc="ae7e097b" sha1="8b90a3ba49711ea7bd6fc7058a71c0699fc49cb1" offset="0x0000" />
441441         </dataarea>
442442      </part>
443443   </software>
444444
445   <software name="snakedv">
446      <description>Snake (Dragan Vujkov)</description>
447      <year>1987</year>
448      <publisher>Dragan Vujkov</publisher>
445   <software name="snake2">
446      <description>Snake2</description>
447      <year>19??</year>
448      <publisher>&lt;unknown&gt;</publisher>
449449      <part name="cass1" interface="galaxy_cass">
450450         <dataarea name="cass" size="1686">
451            <rom name="snake2.gtp" size="1686" crc="18127599" sha1="c37d5cf13704b374b3c76d4ac7b80787dfb88dc8" offset="0" />
451            <rom name="snake2.gtp" size="1686" crc="18127599" sha1="c37d5cf13704b374b3c76d4ac7b80787dfb88dc8" offset="0x0000" />
452452         </dataarea>
453453      </part>
454454   </software>
455455
456456   <software name="squash">
457457      <description>Squash</description>
458      <year>1986</year>
458      <year>19??</year>
459459      <publisher>&lt;unknown&gt;</publisher>
460460      <part name="cass1" interface="galaxy_cass">
461461         <dataarea name="cass" size="1504">
462            <rom name="squash.gtp" size="1504" crc="ad4657df" sha1="b5a781c1a97086a3ae2da08f1ed975253a4a035b" offset="0" />
462            <rom name="squash.gtp" size="1504" crc="ad4657df" sha1="b5a781c1a97086a3ae2da08f1ed975253a4a035b" offset="0x0000" />
463463         </dataarea>
464464      </part>
465465   </software>
466466
467467   <software name="squasha" cloneof="squash">
468      <description>Squash (Alt Format)</description>
468      <description>Squash_ALT</description>
469469      <year>19??</year>
470470      <publisher>&lt;unknown&gt;</publisher>
471471      <part name="cass1" interface="galaxy_cass">
472472         <dataarea name="cass" size="8244">
473            <rom name="squash.gal" size="8244" crc="a54b6d45" sha1="140530381ea8964bd32cecd13659f7131fcdb709" offset="0" />
473            <rom name="squash.gal" size="8244" crc="a54b6d45" sha1="140530381ea8964bd32cecd13659f7131fcdb709" offset="0x0000" />
474474         </dataarea>
475475      </part>
476476   </software>
477477
478478   <software name="scruiser">
479      <description>Super Cruiser</description>
480      <year>1985</year>
481      <publisher>Jasmin Halilovic</publisher>
479      <description>SuperCruiser</description>
480      <year>19??</year>
481      <publisher>&lt;unknown&gt;</publisher>
482482      <part name="cass1" interface="galaxy_cass">
483483         <dataarea name="cass" size="2569">
484            <rom name="supercruiser.gtp" size="2569" crc="b9faec35" sha1="a68d01975952c117e9620cfcdeb9ca7350964c54" offset="0" />
484            <rom name="supercruiser.gtp" size="2569" crc="b9faec35" sha1="a68d01975952c117e9620cfcdeb9ca7350964c54" offset="0x0000" />
485485         </dataarea>
486486      </part>
487487   </software>
488488
489489   <software name="scruisera" cloneof="scruiser">
490      <description>Super Cruiser (Alt Format)</description>
491      <year>1985</year>
492      <publisher>Jasmin Halilovic</publisher>
490      <description>SuperCruiser_ALT</description>
491      <year>19??</year>
492      <publisher>&lt;unknown&gt;</publisher>
493493      <part name="cass1" interface="galaxy_cass">
494494         <dataarea name="cass" size="8244">
495            <rom name="sc.gal" size="8244" crc="8ae78ffb" sha1="7e4217afd4d725dd14af55bf7d0796dd51cc868d" offset="0" />
495            <rom name="sc.gal" size="8244" crc="8ae78ffb" sha1="7e4217afd4d725dd14af55bf7d0796dd51cc868d" offset="0x0000" />
496496         </dataarea>
497497      </part>
498498   </software>
499499
500500   <software name="supersah">
501      <description>Super-Sah</description>
502      <year>1984</year>
503      <publisher>Page Software</publisher>
501      <description>SuperSah</description>
502      <year>19??</year>
503      <publisher>&lt;unknown&gt;</publisher>
504504      <part name="cass1" interface="galaxy_cass">
505505         <dataarea name="cass" size="5773">
506            <rom name="supersah.gtp" size="5773" crc="9d24e956" sha1="8bb4898a2e5a538ab6f896b0f0d9f796d9e366d5" offset="0" />
506            <rom name="supersah.gtp" size="5773" crc="9d24e956" sha1="8bb4898a2e5a538ab6f896b0f0d9f796d9e366d5" offset="0x0000" />
507507         </dataarea>
508508      </part>
509509   </software>
510510
511511   <software name="strgovac">
512      <description>Svemirski Trgovac</description>
513      <year>198?</year>
514      <publisher>Ilija Vitanov</publisher>
512      <description>SvemirskiTrgovac</description>
513      <year>19??</year>
514      <publisher>&lt;unknown&gt;</publisher>
515515      <part name="cass1" interface="galaxy_cass">
516516         <dataarea name="cass" size="2982">
517            <rom name="svemirskitrgovac.gtp" size="2982" crc="a01a1594" sha1="7cca6dc667a29de5f53b105287dc889869aad383" offset="0" />
517            <rom name="svemirskitrgovac.gtp" size="2982" crc="a01a1594" sha1="7cca6dc667a29de5f53b105287dc889869aad383" offset="0x0000" />
518518         </dataarea>
519519      </part>
520520   </software>
521521
522522   <software name="svetleci">
523      <description>Svetleci Bicikli (Plus)</description>
524      <year>1986</year>
525      <publisher>Nenad Balint</publisher>
523      <description>SvetleciBicikliPlus</description>
524      <year>19??</year>
525      <publisher>&lt;unknown&gt;</publisher>
526526      <part name="cass1" interface="galaxy_cass">
527527         <dataarea name="cass" size="2583">
528            <rom name="svetlecibicikliplus.gtp" size="2583" crc="2d4000fe" sha1="de2b47c73c3a324a223147e41c327a52c372875e" offset="0" />
528            <rom name="svetlecibicikliplus.gtp" size="2583" crc="2d4000fe" sha1="de2b47c73c3a324a223147e41c327a52c372875e" offset="0x0000" />
529529         </dataarea>
530530      </part>
531531   </software>
532532
533533   <software name="tenis">
534534      <description>Tenis</description>
535      <year>1985</year>
536      <publisher>Nenad Balint</publisher>
535      <year>19??</year>
536      <publisher>&lt;unknown&gt;</publisher>
537537      <part name="cass1" interface="galaxy_cass">
538538         <dataarea name="cass" size="2389">
539            <rom name="tenis.gtp" size="2389" crc="6f158ac7" sha1="3dd52ce8f6dbc1d5114c4a63ed5c40666e79c40f" offset="0" />
539            <rom name="tenis.gtp" size="2389" crc="6f158ac7" sha1="3dd52ce8f6dbc1d5114c4a63ed5c40666e79c40f" offset="0x0000" />
540540         </dataarea>
541541      </part>
542542   </software>
543543
544544   <software name="tenis3">
545      <description>Tenis 3</description>
546      <year>1986</year>
547      <publisher>Dragan Yujkov</publisher>
545      <description>Tenis3</description>
546      <year>19??</year>
547      <publisher>&lt;unknown&gt;</publisher>
548548      <part name="cass1" interface="galaxy_cass">
549549         <dataarea name="cass" size="1874">
550            <rom name="tenis3.gtp" size="1874" crc="bc263558" sha1="2bdfcc96e8e4844cc9edae7670710f72d7bf3e1f" offset="0" />
550            <rom name="tenis3.gtp" size="1874" crc="bc263558" sha1="2bdfcc96e8e4844cc9edae7670710f72d7bf3e1f" offset="0x0000" />
551551         </dataarea>
552552      </part>
553553   </software>
554554
555555   <software name="tetris">
556556      <description>Tetris</description>
557      <year>1988</year>
558      <publisher>Dragoljub Obradovic</publisher>
557      <year>19??</year>
558      <publisher>&lt;unknown&gt;</publisher>
559559      <part name="cass1" interface="galaxy_cass">
560560         <dataarea name="cass" size="2709">
561            <rom name="tetrisplus.gtp" size="2709" crc="5a6a819b" sha1="7a60930d6269b3ac9898ce0dc2bada8e5626f270" offset="0" />
561            <rom name="tetrisplus.gtp" size="2709" crc="5a6a819b" sha1="7a60930d6269b3ac9898ce0dc2bada8e5626f270" offset="0x0000" />
562562         </dataarea>
563563      </part>
564564   </software>
565565
566566   <software name="tetrisp">
567      <description>Tetris (Plus)</description>
568      <year>1988</year>
569      <publisher>Dragoljub Obradovic</publisher>
567      <description>TetrisPlus</description>
568      <year>19??</year>
569      <publisher>&lt;unknown&gt;</publisher>
570570      <part name="cass1" interface="galaxy_cass">
571571         <dataarea name="cass" size="2706">
572            <rom name="tetrisplusq.gtp" size="2706" crc="64015b12" sha1="1d062b4abd1bfdc977568378a61f2bbdf65e2602" offset="0" />
572            <rom name="tetrisplusq.gtp" size="2706" crc="64015b12" sha1="1d062b4abd1bfdc977568378a61f2bbdf65e2602" offset="0x0000" />
573573         </dataarea>
574574      </part>
575575   </software>
576576
577577   <software name="tetrisa" cloneof="tetris">
578      <description>Tetris (Alt Format)</description>
578      <description>Tetris_ALT</description>
579579      <year>19??</year>
580580      <publisher>&lt;unknown&gt;</publisher>
581581      <part name="cass1" interface="galaxy_cass">
582582         <dataarea name="cass" size="8244">
583            <rom name="tetris.gal" size="8244" crc="12bc9373" sha1="008d85b379861416c38e3300477a3772959344a1" offset="0" />
583            <rom name="tetris.gal" size="8244" crc="12bc9373" sha1="008d85b379861416c38e3300477a3772959344a1" offset="0x0000" />
584584         </dataarea>
585585      </part>
586586   </software>
587587
588588   <software name="wall">
589589      <description>Wall</description>
590      <year>1986</year>
591      <publisher>Dragan Vujkov</publisher>
590      <year>19??</year>
591      <publisher>&lt;unknown&gt;</publisher>
592592      <part name="cass1" interface="galaxy_cass">
593593         <dataarea name="cass" size="1328">
594            <rom name="wall.gtp" size="1328" crc="602db525" sha1="fe31a2455376427436e2638e3452633a2a0f2c9a" offset="0" />
594            <rom name="wall.gtp" size="1328" crc="602db525" sha1="fe31a2455376427436e2638e3452633a2a0f2c9a" offset="0x0000" />
595595         </dataarea>
596596      </part>
597597   </software>
r241777r241778
602602      <publisher>&lt;unknown&gt;</publisher>
603603      <part name="cass1" interface="galaxy_cass">
604604         <dataarea name="cass" size="2863">
605            <rom name="wonderer.gtp" size="2863" crc="0e7310b7" sha1="e7dd10af2970ada6ca4d7c3eaaa0b3c3b9b929e9" offset="0" />
605            <rom name="wonderer.gtp" size="2863" crc="0e7310b7" sha1="e7dd10af2970ada6ca4d7c3eaaa0b3c3b9b929e9" offset="0x0000" />
606606         </dataarea>
607607      </part>
608608   </software>
609609
610610   <software name="wonder2">
611      <description>Wonderer 2</description>
611      <description>Wonderer2</description>
612612      <year>19??</year>
613613      <publisher>&lt;unknown&gt;</publisher>
614614      <part name="cass1" interface="galaxy_cass">
615615         <dataarea name="cass" size="1866">
616            <rom name="wonderer2.gtp" size="1866" crc="cd4ae466" sha1="1e5f8e9be2be400ceed8d547d41f3cfe3d9eb072" offset="0" />
616            <rom name="wonderer2.gtp" size="1866" crc="cd4ae466" sha1="1e5f8e9be2be400ceed8d547d41f3cfe3d9eb072" offset="0x0000" />
617617         </dataarea>
618618      </part>
619619   </software>
620620
621621   <software name="zamak">
622622      <description>Zamak</description>
623      <year>1984</year>
624      <publisher>Antonic Voja</publisher>
623      <year>19??</year>
624      <publisher>&lt;unknown&gt;</publisher>
625625      <part name="cass1" interface="galaxy_cass">
626626         <dataarea name="cass" size="3015">
627            <rom name="zamak.gtp" size="3015" crc="7d0cc0c9" sha1="e10d2cf3be1a79febc062ade3f8d5c3713bd43ca" offset="0" />
627            <rom name="zamak.gtp" size="3015" crc="7d0cc0c9" sha1="e10d2cf3be1a79febc062ade3f8d5c3713bd43ca" offset="0x0000" />
628628         </dataarea>
629629      </part>
630630   </software>
631631
632632   <software name="zid">
633633      <description>Zid</description>
634      <year>1984</year>
635      <publisher>GAC Software</publisher>
634      <year>19??</year>
635      <publisher>&lt;unknown&gt;</publisher>
636636      <part name="cass1" interface="galaxy_cass">
637637         <dataarea name="cass" size="2142">
638            <rom name="zid.gtp" size="2142" crc="2302a824" sha1="19b34c1ad8ce33e638e297d68221fffc6c8e9e56" offset="0" />
638            <rom name="zid.gtp" size="2142" crc="2302a824" sha1="19b34c1ad8ce33e638e297d68221fffc6c8e9e56" offset="0x0000" />
639639         </dataarea>
640640      </part>
641641   </software>
642642
643643   <software name="ziul">
644644      <description>Ziul</description>
645      <year>1984</year>
646      <publisher>Dejan Ristanovic</publisher>
645      <year>19??</year>
646      <publisher>&lt;unknown&gt;</publisher>
647647      <part name="cass1" interface="galaxy_cass">
648648         <dataarea name="cass" size="6673">
649            <rom name="ziul.gtp" size="6673" crc="f8322dad" sha1="d2988be278dc7328257841789042976799cf39ef" offset="0" />
649            <rom name="ziul.gtp" size="6673" crc="f8322dad" sha1="d2988be278dc7328257841789042976799cf39ef" offset="0x0000" />
650650         </dataarea>
651651      </part>
652652   </software>
r241777r241778
657657      <publisher>&lt;unknown&gt;</publisher>
658658      <part name="cass1" interface="galaxy_cass">
659659         <dataarea name="cass" size="1584">
660            <rom name="zvezdice.gtp" size="1584" crc="d45e9a5b" sha1="63cf1089407873e2eb4a43703985e41f6b0623f7" offset="0" />
660            <rom name="zvezdice.gtp" size="1584" crc="d45e9a5b" sha1="63cf1089407873e2eb4a43703985e41f6b0623f7" offset="0x0000" />
661661         </dataarea>
662662      </part>
663663   </software>
664664
665665   <software name="zvjezdan">
666      <description>Zvjezdane Staze</description>
667      <year>1985</year>
666      <description>ZvjezdaneStaze</description>
667      <year>19??</year>
668668      <publisher>&lt;unknown&gt;</publisher>
669669      <part name="cass1" interface="galaxy_cass">
670670         <dataarea name="cass" size="4950">
671            <rom name="zvjezdanestaze.gtp" size="4950" crc="40fcf0b0" sha1="c44d72cead914b31d5f7f26eebb2f3dc9acea498" offset="0" />
671            <rom name="zvjezdanestaze.gtp" size="4950" crc="40fcf0b0" sha1="c44d72cead914b31d5f7f26eebb2f3dc9acea498" offset="0x0000" />
672672         </dataarea>
673673      </part>
674674   </software>
675675
676   <software name="fire">
677      <description>Fire</description>
678      <year>2007</year>
679      <publisher>Tomaz Solc</publisher>
680      <part name="cass1" interface="galaxy_cass">
681         <dataarea name="cass" size="772">
682            <rom name="fire (2007-06-27)(solc, tomaz).gtp" size="772" crc="4c5758a9" sha1="4d9072f6fa5180e70d7ad4b05555678daf61d4ea" offset="0" />
683         </dataarea>
684      </part>
685   </software>
686
687   <software name="hardware">
688      <description>Hardware</description>
689      <year>2007</year>
690      <publisher>Tomaz Solc</publisher>
691      <part name="cass1" interface="galaxy_cass">
692         <dataarea name="cass" size="670">
693            <rom name="hardware (2007-09-22)(solc, tomaz).gtp" size="670" crc="daf12925" sha1="46c9e4a8039a6e4a8e9a2c7715c05fb65da05f5a" offset="0" />
694         </dataarea>
695      </part>
696   </software>
697
698   <software name="highres">
699      <description>Highres</description>
700      <year>2009</year>
701      <publisher>Tomaz Solc</publisher>
702      <part name="cass1" interface="galaxy_cass">
703         <dataarea name="cass" size="2838">
704            <rom name="highres (2009-01-22)(solc, tomaz).gtp" size="2838" crc="663aaef2" sha1="bf60334e341682683bb658a5a5fa9dc00011dfbf" offset="0" />
705         </dataarea>
706      </part>
707   </software>
708
709   <software name="particle">
710      <description>Particle</description>
711      <year>2007</year>
712      <publisher>Tomaz Solc</publisher>
713      <part name="cass1" interface="galaxy_cass">
714         <dataarea name="cass" size="631">
715            <rom name="particle (2007-07-12)(solc, tomaz).gtp" size="631" crc="7f9a2b90" sha1="025169e080857de663f41d3a809325c544fb9de7" offset="0" />
716         </dataarea>
717      </part>
718   </software>
719
720   <software name="stars">
721      <description>Stars</description>
722      <year>2007</year>
723      <publisher>Tomaz Solc</publisher>
724      <part name="cass1" interface="galaxy_cass">
725         <dataarea name="cass" size="573">
726            <rom name="stars (2007-07-12)(solc, tomaz).gtp" size="573" crc="6329e68d" sha1="3c6657ae167ce5ff1076458530da75dc3228e739" offset="0" />
727          </dataarea>
728       </part>
729    </software>
730
731676</softwarelist>
trunk/hash/ibm5150.xml
r241777r241778
28222822         </dataarea>
28232823      </part>
28242824   </software>
2825
2826   <software name="kingqst4">
2827      <!-- Dumped via Kryoflux, shows as good and unmodified -->
2828      <description>King's Quest IV: The Perils of Rosella (Version #2.2, 3.5")</description>
2829      <year>1988</year>
2830      <publisher>Sierra</publisher>
2831      <part name="flop1" interface="floppy_3_5">
2832         <feature name="part_id" value="Disk 1 of 3" />
2833         <dataarea name="flop" size="737280">
2834            <rom name="disk1_35.img" size="737280" crc="afc8464c" sha1="a8a40b48be021b070378834d2ceb428f32f9b883" offset="0" />
2835         </dataarea>
2836      </part>
2837      <part name="flop2" interface="floppy_3_5">
2838         <feature name="part_id" value="Disk 2 of 3" />
2839         <dataarea name="flop" size="737280">
2840            <rom name="disk2_35.img" size="737280" crc="022c3c12" sha1="89a4b0a4145257ae4d4270d4546dcf238c6b8b1d" offset="0" />
2841         </dataarea>
2842      </part>
2843      <part name="flop3" interface="floppy_3_5">
2844         <feature name="part_id" value="Disk 3 of 3" />
2845         <dataarea name="flop" size="737280">
2846            <rom name="disk3_35.img" size="737280" crc="c2230f34" sha1="28173b45a4b605fa99234b3567bf49e606bae78f" offset="0" />
2847         </dataarea>
2848      </part>
2849   </software>
2850
2851   <software name="kingqst4m" cloneof="kingqst4">
2852      <!-- Dumped via Kryoflux, shows as good and unmodified -->
2853      <description>King's Quest IV: The Perils of Rosella (Version #2.2, 5.25")</description>
2854      <year>1988</year>
2855      <publisher>Sierra</publisher>
2856      <part name="flop1" interface="floppy_5_25">
2857         <feature name="part_id" value="Disk 1 of 6" />
2858         <dataarea name="flop" size="368640">
2859            <rom name="disk1_525.img" size="368640" crc="d183e114" sha1="1569458b0588a1667ca99ef0a5206102742a34b5" offset="0" />
2860         </dataarea>
2861      </part>
2862      <part name="flop2" interface="floppy_5_25">
2863         <feature name="part_id" value="Disk 2 of 6" />
2864         <dataarea name="flop" size="368640">
2865            <rom name="disk2_525.img" size="368640" crc="a22e8248" sha1="cf6b5e0bd7847d0021ccc992cc7fd10b5d01a754" offset="0" />
2866         </dataarea>
2867      </part>
2868      <part name="flop3" interface="floppy_5_25">
2869         <feature name="part_id" value="Disk 3 of 6" />
2870         <dataarea name="flop" size="368640">
2871            <rom name="disk3_525.img" size="368640" crc="43943dd4" sha1="375a2d158563a1148bd17b8c383d984ae43ea209" offset="0" />
2872         </dataarea>
2873      </part>
2874      <part name="flop4" interface="floppy_5_25">
2875         <feature name="part_id" value="Disk 4 of 6" />
2876         <dataarea name="flop" size="368640">
2877            <rom name="disk4_525.img" size="368640" crc="e39c62f4" sha1="8f579c93d72b1d362d94ba2fb493ebad77b4fafd" offset="0" />
2878         </dataarea>
2879      </part>
2880      <part name="flop5" interface="floppy_5_25">
2881         <feature name="part_id" value="Disk 5 of 6" />
2882         <dataarea name="flop" size="368640">
2883            <rom name="disk5_525.img" size="368640" crc="3d1517b0" sha1="8e5b3ff93b858e11e808776f440546da1858f20c" offset="0" />
2884         </dataarea>
2885      </part>
2886      <part name="flop6" interface="floppy_5_25">
2887         <feature name="part_id" value="Disk 6 of 6" />
2888         <dataarea name="flop" size="368640">
2889            <rom name="disk6_525.img" size="368640" crc="3852ba12" sha1="09767b94985c3ef81547bca74964d6bff95faf00" offset="0" />
2890         </dataarea>
2891      </part>
2892   </software>
28932825</softwarelist>
trunk/hash/ibm5170.xml
r241777r241778
39663966      </part>
39673967   </software>
39683968
3969   <software name="samnmax">
3970      <!-- Dumped via Kryoflux, track 0 shows as modified on all disks -->
3971      <description>Sam &amp; Max Hit the Road</description>
3972      <year>1993</year>
3973      <publisher>LucasArts</publisher>
3974      <part name="flop1" interface="floppy_3_5">
3975         <dataarea name="flop" size="1474560">
3976            <rom name="disk1.img" size="1474560" crc="918a2aee" sha1="9293235f0efbbe19e9bb7c979911a2371e61f773" offset="0" status="baddump" />
3977         </dataarea>
3978      </part>
3979      <part name="flop2" interface="floppy_3_5">
3980         <dataarea name="flop" size="1474560">
3981            <rom name="disk2.img" size="1474560" crc="59f7507a" sha1="e43bfd7cb3f120566845a9efe489f6c59d57d384" offset="0" status="baddump" />
3982         </dataarea>
3983      </part>
3984      <part name="flop3" interface="floppy_3_5">
3985         <dataarea name="flop" size="1474560">
3986            <rom name="disk3.img" size="1474560" crc="05541aff" sha1="03497aae8e443aada4c9234a6dd19563b8235450" offset="0" status="baddump" />
3987         </dataarea>
3988      </part>
3989      <part name="flop4" interface="floppy_3_5">
3990         <dataarea name="flop" size="1474560">
3991            <rom name="disk4.img" size="1474560" crc="2174d87c" sha1="407eeb5293c9e02b38b1c8c314a8b23ae8a24fc9" offset="0" status="baddump" />
3992         </dataarea>
3993      </part>
3994      <part name="flop5" interface="floppy_3_5">
3995         <dataarea name="flop" size="1474560">
3996            <rom name="disk5.img" size="1474560" crc="cfd03ddc" sha1="c7ce4de481715bd03f1ecca31af4ce1ceaa2be66" offset="0" status="baddump" />
3997         </dataarea>
3998      </part>
3999      <part name="flop6" interface="floppy_3_5">
4000         <dataarea name="flop" size="1474560">
4001            <rom name="disk6.img" size="1474560" crc="af792c0f" sha1="1df1e0b4ff74b5b4aa9b3c416da99880f58826cd" offset="0" status="baddump" />
4002         </dataarea>
4003      </part>
4004      <part name="flop7" interface="floppy_3_5">
4005         <dataarea name="flop" size="737280">
4006            <rom name="disk7.img" size="737280" crc="077b9c18" sha1="8d299cd5fe2ed0dd93253d383c12e3fa889a4b39" offset="0" status="baddump" />
4007         </dataarea>
4008      </part>
4009   </software>
4010
40113969   <software name="sserv2">
40123970      <!-- Dumped via Kryoflux, shows as good and unmodified -->
40133971      <description>Silent Service II (Version 457.01)</description>
trunk/hash/jupace_cass.xml
r241777r241778
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!--
5
6  TODO:
7  * update to latest TOSEC (2014-10-31)
8  * add usage instructions
9  * check which games work and which don't and fix the supported flag accordingly
10-->
11
12<softwarelist name="jupace_cass" description="Jupiter Cantab Jupiter Ace cassettes">
13   <software name="3dmaze" supported="no">
14      <description>3D Maze</description>
15      <year>2007</year>
16      <publisher>Ricardo Fernandes Lopes</publisher>
17
18      <part name="cass1" interface="jupace_cass">
19         <dataarea name="cass" size="4169">
20            <rom name="3d maze (2007-05)(lopes, ricardo fernandes)(pd)[19k].tap" size="4169" crc="a7d40f66" sha1="0ef5fec603846859c2780399b1d39ff7d9ba9020" offset="0x0000" />
21         </dataarea>
22      </part>
23   </software>
24
25   <software name="avoider" supported="no">
26      <description>Ace Avoider</description>
27      <year>1984</year>
28      <publisher>Personal Computer World</publisher>
29
30      <part name="cass1" interface="jupace_cass">
31         <dataarea name="cass" size="874">
32            <rom name="ace avoider (1984-07)(personal computer world)(gb)[3k].tap" size="874" crc="5e9c9468" sha1="aa15ec8a4ef6e698aba63bd876d8b7aa2b7831a8" offset="0x0000" />
33         </dataarea>
34      </part>
35   </software>
36
37   <software name="acecase" supported="no">
38      <description>Ace Case</description>
39      <year>1984</year>
40      <publisher>Personal Computer World</publisher>
41
42      <part name="cass1" interface="jupace_cass">
43         <dataarea name="cass" size="332">
44            <rom name="ace case (1984-03)(personal computer world)(gb)[3k].tap" size="332" crc="85ed47c5" sha1="4aaf98b299f7d80ef43c05b36f897451bdcbdddb" offset="0x0000" />
45         </dataarea>
46      </part>
47   </software>
48
49<!-- FIXME: These should be replaced by a real dump from the cassette: files should be one after the other and not split! Marked accordingly as baddump -->
50   <software name="demotape" supported="no">
51      <description>Ace Demonstration Tape</description>
52      <year>1983</year>
53      <publisher>Jupiter Cantab</publisher>
54
55      <part name="cass1" interface="jupace_cass">
56      <feature name="part_id" value="Banner"/>
57         <dataarea name="cass" size="993">
58            <rom name="ace demonstration tape (1983)(jupiter cantab)(gb)(file 1 of 5)[banner][3k].tap" size="993" crc="9a416b66" sha1="e7aeaf0b971a145b7c883558829904542de27476" offset="0x0000"  status="baddump" />
59         </dataarea>
60      </part>
61      <part name="cass2" interface="jupace_cass">
62      <feature name="part_id" value="Lunar Lander"/>
63         <dataarea name="cass" size="823">
64            <rom name="ace demonstration tape (1983)(jupiter cantab)(gb)(file 2 of 5)[lunar lander][3k].tap" size="823" crc="e9298f7d" sha1="a2511f46c6f9ea6b9011836c327a36c5a6bf610e" offset="0x0000"  status="baddump" />
65         </dataarea>
66      </part>
67      <part name="cass3" interface="jupace_cass">
68      <feature name="part_id" value="Music"/>
69         <dataarea name="cass" size="791">
70            <rom name="ace demonstration tape (1983)(jupiter cantab)(gb)(file 3 of 5)[music][3k].tap" size="791" crc="e88b1ffa" sha1="14efe92c8902dfb15c55e7ca44102bfa946e4fd9" offset="0x0000"  status="baddump" />
71         </dataarea>
72      </part>
73      <part name="cass4" interface="jupace_cass">
74      <feature name="part_id" value="Stack Demonstration"/>
75         <dataarea name="cass" size="528">
76            <rom name="ace demonstration tape (1983)(jupiter cantab)(gb)(file 4 of 5)[stack demonstration][3k].tap" size="528" crc="c540cba5" sha1="3e161f7f452b20085ebd3cd5d5c107445a901ad8" offset="0x0000"  status="baddump" />
77         </dataarea>
78      </part>
79      <part name="cass5" interface="jupace_cass">
80      <feature name="part_id" value="Worms"/>
81         <dataarea name="cass" size="937">
82            <rom name="ace demonstration tape (1983)(jupiter cantab)(gb)(file 5 of 5)[worms][3k].tap" size="937" crc="1b0ea860" sha1="12cec44fa99fa1d7ae2b1d699353dc94dc5d377e" offset="0x0000"  status="baddump" />
83         </dataarea>
84      </part>
85   </software>
86
87   <software name="graphics" supported="no">
88      <description>Ace Graphics (large)</description>
89      <year>1983</year>
90      <publisher>Personal Computer World</publisher>
91
92      <part name="cass1" interface="jupace_cass">
93         <dataarea name="cass" size="93">
94            <rom name="ace graphics (1983-09)(personal computer world)(gb)[large][3k].tap" size="93" crc="5dc239b1" sha1="7fbb43fa71eac2f177d5fc97ab55b1d1f6898f0c" offset="0x0000" />
95         </dataarea>
96      </part>
97   </software>
98
99   <software name="graphicsa" cloneof="graphics" supported="no">
100      <description>Ace Graphics (small)</description>
101      <year>1983</year>
102      <publisher>Personal Computer World</publisher>
103
104      <part name="cass1" interface="jupace_cass">
105         <dataarea name="cass" size="85">
106            <rom name="ace graphics (1983-09)(personal computer world)(gb)[small][3k].tap" size="85" crc="6764333f" sha1="1b74c30727f1503e312fa43fe82cdcc925c6cf1e" offset="0x0000" />
107         </dataarea>
108      </part>
109   </software>
110
111   <software name="aceinvad" supported="no">
112      <description>Ace Invaders (Hi-Tech Microsoft)</description>
113      <year>1982</year>
114      <publisher>Hi-Tech Microsoft</publisher>
115
116      <part name="cass1" interface="jupace_cass">
117         <dataarea name="cass" size="1141">
118            <rom name="ace invaders (1982)(hi-tech microsoft)(gb)[3k].tap" size="1141" crc="e5d9c8e1" sha1="f914f71198eb62e7a61ddb3809131b2d5b53e7b4" offset="0x0000" />
119         </dataarea>
120      </part>
121   </software>
122
123   <software name="invader1" supported="no">
124      <description>Ace Invaders (Forth Dimension)</description>
125      <year>1983</year>
126      <publisher>Forth Dimension</publisher>
127
128      <part name="cass1" interface="jupace_cass">
129         <dataarea name="cass" size="4689">
130            <rom name="ace invaders (1983)(forth dimension)[1k].tap" size="4689" crc="f8858cb9" sha1="082f81b8320a6d1d930e028cf88acefb94c4f1e3" offset="0x0000" />
131         </dataarea>
132      </part>
133   </software>
134
135   <software name="amce11" supported="no">
136      <description>Ace Manual Code Examples - Chapter 11 (mice)</description>
137      <year>2007</year>
138      <publisher>Ricardo Fernandes Lopes</publisher>
139
140      <part name="cass1" interface="jupace_cass">
141         <dataarea name="cass" size="315">
142            <rom name="ace manual code examples - chapter 11 (2007)(lopes, ricardo fernandes)(pd)[mice][3k].tap" size="315" crc="37acd379" sha1="2e00991c6612a8653401ebff61bd319bc8a117b3" offset="0x0000" />
143         </dataarea>
144      </part>
145   </software>
146
147   <software name="amce12" supported="no">
148      <description>Ace Manual Code Examples - Chapter 12</description>
149      <year>2007</year>
150      <publisher>Ricardo Fernandes Lopes</publisher>
151
152      <part name="cass1" interface="jupace_cass">
153      <feature name="part_id" value="Tape 1 (chars)"/>
154         <dataarea name="cass" size="63">
155            <rom name="ace manual code examples - chapter 12 (2007)(lopes, ricardo fernandes)(pd)(file 1 of 3)[chars][3k].tap" size="63" crc="29539f2b" sha1="077f0cc6e11e4d4fe87836f23cff19be990c20b4" offset="0x0000" />
156         </dataarea>
157      </part>
158      <part name="cass2" interface="jupace_cass">
159      <feature name="part_id" value="Tape 2 (gr)"/>
160         <dataarea name="cass" size="76">
161            <rom name="ace manual code examples - chapter 12 (2007)(lopes, ricardo fernandes)(pd)(file 2 of 3)[gr][3k].tap" size="76" crc="e80fb9f8" sha1="0763dc4c41e0944669bbb1f2ae90d134d2d78cfa" offset="0x0000" />
162         </dataarea>
163      </part>
164      <part name="cass3" interface="jupace_cass">
165      <feature name="part_id" value="Tape 3 (tab)"/>
166         <dataarea name="cass" size="59">
167            <rom name="ace manual code examples - chapter 12 (2007)(lopes, ricardo fernandes)(pd)(file 3 of 3)[tab][3k].tap" size="59" crc="4d608d8a" sha1="88cbcc636b2c7dae29c00dc4b7d088789734ddf3" offset="0x0000" />
168         </dataarea>
169      </part>
170   </software>
171
172   <software name="amce13" supported="no">
173      <description>Ace Manual Code Examples - Chapter 13</description>
174      <year>2007</year>
175      <publisher>Ricardo Fernandes Lopes</publisher>
176
177      <part name="cass1" interface="jupace_cass">
178      <feature name="part_id" value="Tape 1 (draw)"/>
179         <dataarea name="cass" size="337">
180            <rom name="ace manual code examples - chapter 13 (2007)(lopes, ricardo fernandes)(pd)(file 1 of 2)[draw][3k].tap" size="337" crc="a4216359" sha1="7afaa718877c2b589b21e3fa8bac13bf4d9e341f" offset="0x0000" />
181         </dataarea>
182      </part>
183      <part name="cass2" interface="jupace_cass">
184      <feature name="part_id" value="Tape 2 (random)"/>
185         <dataarea name="cass" size="152">
186            <rom name="ace manual code examples - chapter 13 (2007)(lopes, ricardo fernandes)(pd)(file 2 of 2)[random][3k].tap" size="152" crc="743c5a41" sha1="aa9a806de23e0925e6dca3964f5017f989cb5711" offset="0x0000" />
187         </dataarea>
188      </part>
189   </software>
190
191   <software name="amce15" supported="no">
192      <description>Ace Manual Code Examples - Chapter 15</description>
193      <year>2007</year>
194      <publisher>Ricardo Fernandes Lopes</publisher>
195
196      <part name="cass1" interface="jupace_cass">
197      <feature name="part_id" value="Tape 1 (2cells)"/>
198         <dataarea name="cass" size="185">
199            <rom name="ace manual code examples - chapter 15 (2007)(lopes, ricardo fernandes)(pd)(file 1 of 3)[2cells][3k].tap" size="185" crc="f7b98532" sha1="2338c683af2fe73eb5dd72d93ef86dcdd8e78ded" offset="0x0000" />
200         </dataarea>
201      </part>
202      <part name="cass2" interface="jupace_cass">
203      <feature name="part_id" value="Tape 2 (sqrt)"/>
204         <dataarea name="cass" size="238">
205            <rom name="ace manual code examples - chapter 15 (2007)(lopes, ricardo fernandes)(pd)(file 2 of 3)[sqrt][3k].tap" size="238" crc="3af2f97d" sha1="0529174383db9c7fe01ae54c0ede4f5a5ddaaf18" offset="0x0000" />
206         </dataarea>
207      </part>
208      <part name="cass3" interface="jupace_cass">
209      <feature name="part_id" value="Tape 3 (trig)"/>
210         <dataarea name="cass" size="368">
211            <rom name="ace manual code examples - chapter 15 (2007)(lopes, ricardo fernandes)(pd)(file 3 of 3)[trig][3k].tap" size="368" crc="95a54bf0" sha1="7f0b6664ffeebc8c9660800803afda576bc8a205" offset="0x0000" />
212         </dataarea>
213      </part>
214   </software>
215
216   <software name="amce16" supported="no">
217      <description>Ace Manual Code Examples - Chapter 16</description>
218      <year>2007</year>
219      <publisher>Ricardo Fernandes Lopes</publisher>
220
221      <part name="cass1" interface="jupace_cass">
222      <feature name="part_id" value="Tape 1 (count)"/>
223         <dataarea name="cass" size="53">
224            <rom name="ace manual code examples - chapter 16 (2007)(lopes, ricardo fernandes)(pd)(file 1 of 6)[count][3k].tap" size="53" crc="e491a628" sha1="8a20370e05b855ad3af4508025f7eaaf9efdb018" offset="0x0000" />
225         </dataarea>
226      </part>
227      <part name="cass2" interface="jupace_cass">
228      <feature name="part_id" value="Tape 2 (input)"/>
229         <dataarea name="cass" size="49">
230            <rom name="ace manual code examples - chapter 16 (2007)(lopes, ricardo fernandes)(pd)(file 2 of 6)[input][3k].tap" size="49" crc="eb16c9ad" sha1="0edd2ac821e04265b5d8ac427491d4c83251e705" offset="0x0000" />
231         </dataarea>
232      </part>
233      <part name="cass3" interface="jupace_cass">
234      <feature name="part_id" value="Tape 3 (integer)"/>
235         <dataarea name="cass" size="92">
236            <rom name="ace manual code examples - chapter 16 (2007)(lopes, ricardo fernandes)(pd)(file 3 of 6)[integer][3k].tap" size="92" crc="31ee2b30" sha1="f7abd297e0f867e4da72bee54dd7d59480964ded" offset="0x0000" />
237         </dataarea>
238      </part>
239      <part name="cass4" interface="jupace_cass">
240      <feature name="part_id" value="Tape 4 (key)"/>
241         <dataarea name="cass" size="53">
242            <rom name="ace manual code examples - chapter 16 (2007)(lopes, ricardo fernandes)(pd)(file 4 of 6)[key][3k].tap" size="53" crc="cd14c9e7" sha1="10462c7f31d2982798bee4b27d361df2b71e87f3" offset="0x0000" />
243         </dataarea>
244      </part>
245      <part name="cass5" interface="jupace_cass">
246      <feature name="part_id" value="Tape 5 (wait)"/>
247         <dataarea name="cass" size="52">
248            <rom name="ace manual code examples - chapter 16 (2007)(lopes, ricardo fernandes)(pd)(file 5 of 6)[wait][3k].tap" size="52" crc="657cdfb9" sha1="d8ec790cd72548f2ae60302f5949144bc69469d0" offset="0x0000" />
249         </dataarea>
250      </part>
251      <part name="cass6" interface="jupace_cass">
252      <feature name="part_id" value="Tape 6 (y-n)"/>
253         <dataarea name="cass" size="91">
254            <rom name="ace manual code examples - chapter 16 (2007)(lopes, ricardo fernandes)(pd)(file 6 of 6)[y-n][3k].tap" size="91" crc="1baf9d9b" sha1="4cdd616844a58004b06aab9720836b9f579f13a9" offset="0x0000" />
255         </dataarea>
256      </part>
257   </software>
258
259   <software name="amce17" supported="no">
260      <description>Ace Manual Code Examples - Chapter 17 (hex)</description>
261      <year>2007</year>
262      <publisher>Ricardo Fernandes Lopes</publisher>
263
264      <part name="cass1" interface="jupace_cass">
265         <dataarea name="cass" size="51">
266            <rom name="ace manual code examples - chapter 17 (2007)(lopes, ricardo fernandes)(pd)[hex][3k].tap" size="51" crc="d497883e" sha1="a2c81b7d0b8e499a90a2725f31634e6fd238a194" offset="0x0000" />
267         </dataarea>
268      </part>
269   </software>
270
271   <software name="amce19" supported="no">
272      <description>Ace Manual Code Examples - Chapter 19</description>
273      <year>2007</year>
274      <publisher>Ricardo Fernandes Lopes</publisher>
275
276      <part name="cass1" interface="jupace_cass">
277      <feature name="part_id" value="Tape 1 (d)"/>
278         <dataarea name="cass" size="171">
279            <rom name="ace manual code examples - chapter 19 (2007)(lopes, ricardo fernandes)(pd)(file 1 of 3)[d][3k].tap" size="171" crc="e2b9526e" sha1="9921ea134bc28d8602468da9c01a9901ad67637a" offset="0x0000" />
280         </dataarea>
281      </part>
282      <part name="cass2" interface="jupace_cass">
283      <feature name="part_id" value="Tape 2 (money)"/>
284         <dataarea name="cass" size="71">
285            <rom name="ace manual code examples - chapter 19 (2007)(lopes, ricardo fernandes)(pd)(file 2 of 3)[money][3k].tap" size="71" crc="411ea447" sha1="e38a63ecc06fb261d0ab8d346d08c5d40dace6c6" offset="0x0000" />
286         </dataarea>
287      </part>
288      <part name="cass3" interface="jupace_cass">
289      <feature name="part_id" value="Tape 3 (time)"/>
290         <dataarea name="cass" size="100">
291            <rom name="ace manual code examples - chapter 19 (2007)(lopes, ricardo fernandes)(pd)(file 3 of 3)[time][3k].tap" size="100" crc="b8454317" sha1="1b9f71852a1570e7cdbb80631e7c7b778e92f8ef" offset="0x0000" />
292         </dataarea>
293      </part>
294   </software>
295
296   <software name="amce20" supported="no">
297      <description>Ace Manual Code Examples - Chapter 20</description>
298      <year>2007</year>
299      <publisher>Ricardo Fernandes Lopes</publisher>
300
301      <part name="cass1" interface="jupace_cass">
302      <feature name="part_id" value="Tape 1 (stringcomma)"/>
303         <dataarea name="cass" size="95">
304            <rom name="ace manual code examples - chapter 20 (2007)(lopes, ricardo fernandes)(pd)(file 1 of 2)[stringcomma][3k].tap" size="95" crc="ede146f2" sha1="30944f01136bc04238ae307b2ffb66e998140604" offset="0x0000" />
305         </dataarea>
306      </part>
307      <part name="cass2" interface="jupace_cass">
308      <feature name="part_id" value="Tape 2 (tick)"/>
309         <dataarea name="cass" size="45">
310            <rom name="ace manual code examples - chapter 20 (2007)(lopes, ricardo fernandes)(pd)(file 2 of 2)[tick][3k].tap" size="45" crc="a647d0b8" sha1="480a4f827195560b6af1f8bae975c3f2e8cdbd57" offset="0x0000" />
311         </dataarea>
312      </part>
313   </software>
314
315   <software name="amce21" supported="no">
316      <description>Ace Manual Code Examples - Chapter 21</description>
317      <year>2007</year>
318      <publisher>Ricardo Fernandes Lopes</publisher>
319
320      <part name="cass1" interface="jupace_cass">
321      <feature name="part_id" value="Tape 1 (2-d)"/>
322         <dataarea name="cass" size="341">
323            <rom name="ace manual code examples - chapter 21 (2007)(lopes, ricardo fernandes)(pd)(file 1 of 2)[2-d][3k].tap" size="341" crc="47c25818" sha1="cd19c41f548d26346f8f4d8e19c65b0d65b584cc" offset="0x0000" />
324         </dataarea>
325      </part>
326      <part name="cass2" interface="jupace_cass">
327      <feature name="part_id" value="Tape 2 (string)"/>
328         <dataarea name="cass" size="388">
329            <rom name="ace manual code examples - chapter 21 (2007)(lopes, ricardo fernandes)(pd)(file 2 of 2)[string][3k].tap" size="388" crc="86960fd0" sha1="b478df2039e9f832171118b8eec8f7b84e765ba1" offset="0x0000" />
330         </dataarea>
331      </part>
332   </software>
333
334   <software name="amce23" supported="no">
335      <description>Ace Manual Code Examples - Chapter 23 (2literal)</description>
336      <year>2007</year>
337      <publisher>Ricardo Fernandes Lopes</publisher>
338
339      <part name="cass1" interface="jupace_cass">
340         <dataarea name="cass" size="73">
341            <rom name="ace manual code examples - chapter 23 (2007)(lopes, ricardo fernandes)(pd)[2literal][3k].tap" size="73" crc="e531f063" sha1="56b13910419eab97d341808a4f5dce328a649611" offset="0x0000" />
342         </dataarea>
343      </part>
344   </software>
345
346   <software name="amce24" supported="no">
347      <description>Ace Manual Code Examples - Chapter 24</description>
348      <year>2007</year>
349      <publisher>Ricardo Fernandes Lopes</publisher>
350
351      <part name="cass1" interface="jupace_cass">
352      <feature name="part_id" value="Tape 1 (dots)"/>
353         <dataarea name="cass" size="92">
354            <rom name="ace manual code examples - chapter 24 (2007)(lopes, ricardo fernandes)(pd)(file 1 of 3)[dots][3k].tap" size="92" crc="a6b50e38" sha1="d28ec616f7330ec2c5d9ba5e09f230e1ceabed36" offset="0x0000" />
355         </dataarea>
356      </part>
357      <part name="cass2" interface="jupace_cass">
358      <feature name="part_id" value="Tape 2 (sysvars)"/>
359         <dataarea name="cass" size="79">
360            <rom name="ace manual code examples - chapter 24 (2007)(lopes, ricardo fernandes)(pd)(file 2 of 3)[sysvars][3k].tap" size="79" crc="7a082da3" sha1="21bfd27e082cde3052422a64b3f4bf006bf6b0c3" offset="0x0000" />
361         </dataarea>
362      </part>
363      <part name="cass3" interface="jupace_cass">
364      <feature name="part_id" value="Tape 1 (time)"/>
365         <dataarea name="cass" size="234">
366            <rom name="ace manual code examples - chapter 24 (2007)(lopes, ricardo fernandes)(pd)(file 3 of 3)[time][3k].tap" size="234" crc="a13e175f" sha1="97eaff16a2ac437658a9244fcb76d2b333121a6b" offset="0x0000" />
367         </dataarea>
368      </part>
369   </software>
370
371   <software name="amce25" supported="no">
372      <description>Ace Manual Code Examples - Chapter 25</description>
373      <year>2007</year>
374      <publisher>Ricardo Fernandes Lopes</publisher>
375
376      <part name="cass1" interface="jupace_cass">
377      <feature name="part_id" value="Tape 1 (code)"/>
378         <dataarea name="cass" size="55">
379            <rom name="ace manual code examples - chapter 25 (2007)(lopes, ricardo fernandes)(pd)(file 1 of 2)[code][3k].tap" size="55" crc="da49a1b8" sha1="99675d3d6a8ed99700f70e66953bf66df58e44a7" offset="0x0000" />
380         </dataarea>
381      </part>
382      <part name="cass2" interface="jupace_cass">
383      <feature name="part_id" value="Tape 2 (pause)"/>
384         <dataarea name="cass" size="95">
385            <rom name="ace manual code examples - chapter 25 (2007)(lopes, ricardo fernandes)(pd)(file 2 of 2)[pause][3k].tap" size="95" crc="781a1cd8" sha1="465fb6cbd40a3ff7d62fcf79cce64a9e1a6ff632" offset="0x0000" />
386         </dataarea>
387      </part>
388   </software>
389
390   <software name="amce26" supported="no">
391      <description>Ace Manual Code Examples - Chapter 26</description>
392      <year>2007</year>
393      <publisher>Ricardo Fernandes Lopes</publisher>
394
395      <part name="cass1" interface="jupace_cass">
396      <feature name="part_id" value="Tape 1 (noise)"/>
397         <dataarea name="cass" size="67">
398            <rom name="ace manual code examples - chapter 26 (2007)(lopes, ricardo fernandes)(pd)(file 1 of 3)[noise][3k].tap" size="67" crc="bb50388b" sha1="849669fb172a930917cd5b36130f1df08d134830" offset="0x0000" />
399         </dataarea>
400      </part>
401      <part name="cass2" interface="jupace_cass">
402      <feature name="part_id" value="Tape 2 (runlights)"/>
403         <dataarea name="cass" size="252">
404            <rom name="ace manual code examples - chapter 26 (2007)(lopes, ricardo fernandes)(pd)(file 2 of 3)[runlights][3k].tap" size="252" crc="33b636d5" sha1="6c560944e3b18011e1a928d214c49b1556e8c2ec" offset="0x0000" />
405         </dataarea>
406      </part>
407      <part name="cass3" interface="jupace_cass">
408      <feature name="part_id" value="Tape 3 (switches)"/>
409         <dataarea name="cass" size="249">
410            <rom name="ace manual code examples - chapter 26 (2007)(lopes, ricardo fernandes)(pd)(file 3 of 3)[switches][3k].tap" size="249" crc="9583579a" sha1="b1ea734f4b28646ba9cc234526e66b1e3d10b614" offset="0x0000" />
411         </dataarea>
412      </part>
413   </software>
414
415   <software name="amce8" supported="no">
416      <description>Ace Manual Code Examples - Chapter 8</description>
417      <year>2007</year>
418      <publisher>Ricardo Fernandes Lopes</publisher>
419
420      <part name="cass1" interface="jupace_cass">
421      <feature name="part_id" value="Tape 1 (plusstore)"/>
422         <dataarea name="cass" size="54">
423            <rom name="ace manual code examples - chapter 8 (2007)(lopes, ricardo fernandes)(pd)(file 1 of 2)[plusstore][3k].tap" size="54" crc="3dd899e8" sha1="bb28dd9e04b1a2631ee70f1b1126a42b3e0351bf" offset="0x0000" />
424         </dataarea>
425      </part>
426      <part name="cass2" interface="jupace_cass">
427      <feature name="part_id" value="Tape 2 (queryvar)"/>
428         <dataarea name="cass" size="45">
429            <rom name="ace manual code examples - chapter 8 (2007)(lopes, ricardo fernandes)(pd)(file 2 of 2)[queryvar][3k].tap" size="45" crc="b7465670" sha1="5b3ffc899da9125444718be227588b6ded36cfd6" offset="0x0000" />
430         </dataarea>
431      </part>
432   </software>
433
434   <software name="acemines" supported="no">
435      <description>Ace Mines</description>
436      <year>2004</year>
437      <publisher>Ricardo Fernandes Lopes</publisher>
438
439      <part name="cass1" interface="jupace_cass">
440         <dataarea name="cass" size="3006">
441            <rom name="ace mines (2004)(lopes, ricardo fernandes)[19k].tap" size="3006" crc="d508f3e5" sha1="d2038a9e0ed23db9a834f0845e06ff132bcc8412" offset="0x0000" />
442         </dataarea>
443      </part>
444   </software>
445
446   <software name="acestar" supported="no">
447      <description>Ace Star</description>
448      <year>2010</year>
449      <publisher>Jupiter Ace Archive Team</publisher>
450
451      <part name="cass1" interface="jupace_cass">
452         <dataarea name="cass" size="10365">
453            <rom name="ace star (2010)(jupiter ace archive team)(gb)(pd)[19k].tap" size="10365" crc="01217f3f" sha1="d3c69c182323c3ad45e01601611f36b40970e22d" offset="0x0000" />
454         </dataarea>
455      </part>
456   </software>
457
458   <software name="acevocab" supported="no">
459      <description>Ace Vocab Select</description>
460      <year>1983</year>
461      <publisher>Personal Computer World</publisher>
462
463      <part name="cass1" interface="jupace_cass">
464         <dataarea name="cass" size="115">
465            <rom name="ace vocab select (1983-04)(personal computer world)(gb)[3k].tap" size="115" crc="587a7272" sha1="89ca8b51b686a964d3f710669493c61bfafcf2ea" offset="0x0000" />
466         </dataarea>
467      </part>
468   </software>
469
470   <software name="acevader" supported="no">
471      <description>Acevaders</description>
472      <year>1983</year>
473      <publisher>Micro Marketing</publisher>
474
475      <part name="cass1" interface="jupace_cass">
476         <dataarea name="cass" size="1307">
477            <rom name="acevaders (1983)(micro marketing)(gb)[3k].tap" size="1307" crc="9e8ef6c0" sha1="8ed92d3847e59730d16232426153d10dd53712e9" offset="0x0000" />
478         </dataarea>
479      </part>
480   </software>
481
482   <software name="adventa" supported="no">
483      <description>Adventure A - Planet of Death</description>
484      <year>1981</year>
485      <publisher>Artic Computing</publisher>
486
487      <part name="cass1" interface="jupace_cass">
488         <dataarea name="cass" size="14811">
489            <rom name="adventure a - planet of death (1981)(artic computing)(pd)[19k].tap" size="14811" crc="be67ed38" sha1="e70ed38c14e2ba34ce8faa42e0c828081d53e4b5" offset="0x0000" />
490         </dataarea>
491      </part>
492   </software>
493
494   <software name="aliendef" supported="no">
495      <description>Alien Defender</description>
496      <year>1984</year>
497      <publisher>Boldfield Computing</publisher>
498
499      <part name="cass1" interface="jupace_cass">
500         <dataarea name="cass" size="2667">
501            <rom name="alien defender (1984)(boldfield computing)(gb)[19k].tap" size="2667" crc="38259232" sha1="d3078ea35296466da62afc45170d0955af435801" offset="0x0000" />
502         </dataarea>
503      </part>
504   </software>
505
506   <software name="aswarm" supported="no">
507      <description>Alien Swarm</description>
508      <year>1983</year>
509      <publisher>Popular Computing Weekly</publisher>
510
511      <part name="cass1" interface="jupace_cass">
512         <dataarea name="cass" size="1570">
513            <rom name="alien swarm (1983-01-20)(popular computing weekly)(gb)[3k].tap" size="1570" crc="645fc362" sha1="65a29f0ed18fd7a5269d72c065e2c70b1c2fb61e" offset="0x0000" />
514         </dataarea>
515      </part>
516   </software>
517
518   <software name="amazmaze" supported="no">
519      <description>Amazing Maze</description>
520      <year>1984</year>
521      <publisher>Boldfield Computing</publisher>
522
523      <part name="cass1" interface="jupace_cass">
524         <dataarea name="cass" size="1706">
525            <rom name="amazing maze (1984)(boldfield computing)(gb)[19k].tap" size="1706" crc="b8eb2dfa" sha1="b5b8a2684d8d81e715a962d697bf2a488ca89ea5" offset="0x0000" />
526         </dataarea>
527      </part>
528   </software>
529
530   <software name="amisound" supported="no">
531      <description>AMI Sound Toolkit</description>
532      <year>2007</year>
533      <publisher>Jupiter Ace Archive Team</publisher>
534
535      <part name="cass1" interface="jupace_cass">
536         <dataarea name="cass" size="2103">
537            <rom name="ami sound toolkit (2007)(jupiter ace archive team)(gb)(pd)[19k].tap" size="2103" crc="20cd6c82" sha1="a9fa23e053b326295b12740445225cef4ef14347" offset="0x0000" />
538         </dataarea>
539      </part>
540   </software>
541
542   <software name="asmdasm" supported="no">
543      <description>Assembler &amp; Dis-assembler</description>
544      <year>1984</year>
545      <publisher>Boldfield Computing</publisher>
546
547      <part name="cass1" interface="jupace_cass">
548         <dataarea name="cass" size="13501">
549            <rom name="assembler &amp; dis-assembler (1984)(boldfield computing)(gb)[19k].tap" size="13501" crc="bd1df519" sha1="acc4f09e4b0849e89d32be9eff677fa96ea08849" offset="0x0000" />
550         </dataarea>
551      </part>
552   </software>
553
554   <software name="astrian" supported="no">
555      <description>Astrian Descent (Prototype)</description>
556      <year>1983</year>
557      <publisher>Brian Bates</publisher>
558
559      <part name="cass1" interface="jupace_cass">
560         <dataarea name="cass" size="7538">
561            <rom name="astrian descent (1983-08)(bates, brian)[unreleased][19k].tap" size="7538" crc="ebbe6695" sha1="1316fdf0d33cc0874f8e9addba035361bca6b533" offset="0x0000" />
562         </dataarea>
563      </part>
564   </software>
565
566   <software name="aticraid" supported="no">
567      <description>Atic Raid</description>
568      <year>1984</year>
569      <publisher>Boldfield Computing</publisher>
570
571      <part name="cass1" interface="jupace_cass">
572         <dataarea name="cass" size="16587">
573            <rom name="atic raid (1984)(boldfield computing)(gb)(pd)[19k].tap" size="16587" crc="fd3fc960" sha1="f6758bf3e34a20260673a62d213021c5251fd419" offset="0x0000" />
574         </dataarea>
575      </part>
576   </software>
577
578   <software name="blackisl" supported="no">
579      <description>Black Island Adventure</description>
580      <year>1984</year>
581      <publisher>Boldfield Computing</publisher>
582
583      <part name="cass1" interface="jupace_cass">
584         <dataarea name="cass" size="67678">
585            <rom name="black island adventure (1984)(boldfield computing)(gb)[19k].tap" size="67678" crc="ec520816" sha1="68edb835f83ad1588bd7a840fd333cdb5ce9578f" offset="0x0000" />
586         </dataarea>
587      </part>
588   </software>
589
590   <software name="bomber" supported="no">
591      <description>Bomber</description>
592      <year>1997</year>
593      <publisher>Paul Robson</publisher>
594
595      <part name="cass1" interface="jupace_cass">
596         <dataarea name="cass" size="1649">
597            <rom name="bomber (1997)(robson, paul)(pd)[3k].tap" size="1649" crc="feb62f38" sha1="95bc411f9d456d4f0a3d0d6a4d009de5cf69bf17" offset="0x0000" />
598         </dataarea>
599      </part>
600   </software>
601
602   <software name="breakout" supported="no">
603      <description>Breakout</description>
604      <year>1983</year>
605      <publisher>Popular Computing Weekly</publisher>
606
607      <part name="cass1" interface="jupace_cass">
608         <dataarea name="cass" size="844">
609            <rom name="breakout (1983-03-17)(popular computing weekly)(gb)[3k].tap" size="844" crc="1027393d" sha1="7dbe94751150c2b378fe6ea359c55a350f8babad" offset="0x0000" />
610         </dataarea>
611      </part>
612   </software>
613
614   <software name="calendar" supported="no">
615      <description>Calendar</description>
616      <year>2007</year>
617      <publisher>Ricardo Fernandes Lopes</publisher>
618
619      <part name="cass1" interface="jupace_cass">
620         <dataarea name="cass" size="549">
621            <rom name="calendar (2007)(lopes, ricardo fernandes)(pd)[3k].tap" size="549" crc="f0952595" sha1="596e02f76327d1a82eb77b2069605781c11465d9" offset="0x0000" />
622         </dataarea>
623      </part>
624   </software>
625
626   <software name="callisto" supported="no">
627      <description>Callisto</description>
628      <year>1983</year>
629      <publisher>ACS Software</publisher>
630
631      <part name="cass1" interface="jupace_cass">
632         <dataarea name="cass" size="8832">
633            <rom name="callisto (1983)(acs software)[16k].tap" size="8832" crc="aa6ba879" sha1="4e70e44db33c4197a6d68da3ff17ca82c23cff93" offset="0x0000" />
634         </dataarea>
635      </part>
636   </software>
637
638   <software name="cavern" supported="no">
639      <description>Cavern Attack</description>
640      <year>1983</year>
641      <publisher>Hi-Tech Microsoft</publisher>
642
643      <part name="cass1" interface="jupace_cass">
644         <dataarea name="cass" size="1026">
645            <rom name="cavern attack (1983)(hi-tech microsoft)(gb)[3k].tap" size="1026" crc="1518ca67" sha1="2153980802c9fd92cadcd74b729fa7ae3525142f" offset="0x0000" />
646         </dataarea>
647      </part>
648   </software>
649
650   <software name="cenipede" supported="no">
651      <description>Cenipede</description>
652      <year>1984</year>
653      <publisher>Boldfield Computing</publisher>
654
655      <part name="cass1" interface="jupace_cass">
656         <dataarea name="cass" size="6361">
657            <rom name="cenipede (1984)(boldfield computing)(gb)[19k].tap" size="6361" crc="a3280ac0" sha1="32d8d0433ddd7598d03dd4acc74a891c31067a06" offset="0x0000" />
658         </dataarea>
659      </part>
660   </software>
661
662   <software name="m_champs" supported="no">
663      <description>Champs de Mines + Casse Briques (Fra)</description>
664      <year>1983</year>
665      <publisher>ERE</publisher>
666
667      <part name="cass1" interface="jupace_cass">
668      <feature name="part_id" value="Side A (Champs de Mines)"/>
669         <dataarea name="cass" size="1009">
670            <rom name="champs de mines + casse briques (1983)(ere)(fr)(side a)[champs de mines][3k].tap" size="1009" crc="4bb3e7d8" sha1="ed901497f02e6e22f4a3290f11ecc498a5922496" offset="0x0000" />
671         </dataarea>
672      </part>
673      <part name="cass2" interface="jupace_cass">
674      <feature name="part_id" value="Side B (Casse Briques)"/>
675         <dataarea name="cass" size="1706">
676            <rom name="champs de mines + casse briques (1983)(ere)(fr)(side b)[casse briques][3k].tap" size="1706" crc="1e184506" sha1="b90d5216bbd7ef56b1e2d35a4b0a1058f4f6c52b" offset="0x0000" />
677         </dataarea>
678      </part>
679   </software>
680
681   <software name="chase" supported="no">
682      <description>Chase</description>
683      <year>1983</year>
684      <publisher>Popular Computing Weekly</publisher>
685
686      <part name="cass1" interface="jupace_cass">
687         <dataarea name="cass" size="557">
688            <rom name="chase (1983-01-27)(popular computing weekly)(gb)[3k].tap" size="557" crc="db067f32" sha1="14c2238920bd984003f500a175ec56c877a164fd" offset="0x0000" />
689         </dataarea>
690      </part>
691   </software>
692
693   <software name="chess" supported="no">
694      <description>Chess</description>
695      <year>1984</year>
696      <publisher>Boldfield Computing</publisher>
697
698      <part name="cass1" interface="jupace_cass">
699         <dataarea name="cass" size="14409">
700            <rom name="chess (1984)(boldfield computing)(gb)[19k].tap" size="14409" crc="554a759c" sha1="376a638a45c13ba52105bb72cf79332d0cb4bc0f" offset="0x0000" />
701         </dataarea>
702      </part>
703   </software>
704
705   <software name="cygnus" supported="no">
706      <description>Cygnus</description>
707      <year>1984</year>
708      <publisher>Boldfield Computing</publisher>
709
710      <part name="cass1" interface="jupace_cass">
711         <dataarea name="cass" size="16549">
712            <rom name="cygnus (1984)(boldfield computing)(gb)[19k].tap" size="16549" crc="d0a31a28" sha1="5b0260200cafde332c514bdf319e7f29e3d312c2" offset="0x0000" />
713         </dataarea>
714      </part>
715   </software>
716
717   <software name="database" supported="no">
718      <description>Database</description>
719      <year>1985</year>
720      <publisher>Boldfield Computing</publisher>
721
722      <part name="cass1" interface="jupace_cass">
723         <dataarea name="cass" size="7414">
724            <rom name="database (1985)(boldfield computing)(gb)[19k].tap" size="7414" crc="fd4d1d6b" sha1="5144c48b796a45a1d07318307cfa46f23a72f521" offset="0x0000" />
725         </dataarea>
726      </part>
727   </software>
728
729   <software name="m_dessin" supported="no">
730      <description>Dessin + Cargen (Fra)</description>
731      <year>1983</year>
732      <publisher>ERE</publisher>
733
734      <part name="cass1" interface="jupace_cass">
735      <feature name="part_id" value="Side A (Dessin)"/>
736         <dataarea name="cass" size="796">
737            <rom name="dessin + cargen (1983)(ere)(fr)(side a)[dessin][3k].tap" size="796" crc="ae7a3ee1" sha1="38805f324845b65f5b1fed87e9b13c27a733468f" offset="0x0000" />
738         </dataarea>
739      </part>
740      <part name="cass2" interface="jupace_cass">
741      <feature name="part_id" value="Side B (Cargen)"/>
742         <dataarea name="cass" size="807">
743            <rom name="dessin + cargen (1983)(ere)(fr)(side b)[cargen][3k].tap" size="807" crc="87bd3a13" sha1="d084bc5b56bc0057eab745f232a3598febef949f" offset="0x0000" />
744         </dataarea>
745      </part>
746   </software>
747
748   <software name="divn" supported="no">
749      <description>DIVN</description>
750      <year>2007</year>
751      <publisher>Ricardo Fernandes Lopes</publisher>
752
753      <part name="cass1" interface="jupace_cass">
754         <dataarea name="cass" size="146">
755            <rom name="divn (2007)(lopes, ricardo fernandes)(pd)[3k].tap" size="146" crc="0f72521b" sha1="1c269e22f71d9356896077187d533bc3fdb712af" offset="0x0000" />
756         </dataarea>
757      </part>
758   </software>
759
760   <software name="dodge" supported="no">
761      <description>Dodge (Prototype)</description>
762      <year>1983</year>
763      <publisher>Brian Bates</publisher>
764
765      <part name="cass1" interface="jupace_cass">
766         <dataarea name="cass" size="8496">
767            <rom name="dodge (1983-07)(bates, brian)[unreleased][19k].tap" size="8496" crc="299438f5" sha1="fcf156fc3f23d8ab256feaed6b8b625abc381ff5" offset="0x0000" />
768         </dataarea>
769      </part>
770   </software>
771
772   <software name="dotman" supported="no">
773      <description>Dot Man</description>
774      <year>1983</year>
775      <publisher>Micro Marketing</publisher>
776
777      <part name="cass1" interface="jupace_cass">
778         <dataarea name="cass" size="1381">
779            <rom name="dot man (1983)(micro marketing)(gb)[3k].tap" size="1381" crc="ddb81ec6" sha1="6ee455454b1973c45f3766dcb7a181d2665477bd" offset="0x0000" />
780         </dataarea>
781      </part>
782   </software>
783
784   <software name="ducksht" supported="no">
785      <description>Duckshoot</description>
786      <year>1983</year>
787      <publisher>Micro Marketing</publisher>
788
789      <part name="cass1" interface="jupace_cass">
790         <dataarea name="cass" size="802">
791            <rom name="duckshoot (1983)(micro marketing)(gb)[3k].tap" size="802" crc="105055d8" sha1="1286c483d0365acbf258336c89e940d981a1ed13" offset="0x0000" />
792         </dataarea>
793      </part>
794   </software>
795
796   <software name="factoria" supported="no">
797      <description>Factorials</description>
798      <year>2008</year>
799      <publisher>Ricardo Fernandes Lopes</publisher>
800
801      <part name="cass1" interface="jupace_cass">
802         <dataarea name="cass" size="4503">
803            <rom name="factorials (2008)(lopes, ricardo fernandes)(pd)[19k].tap" size="4503" crc="726648b4" sha1="e7db82193e9e30a3e469b074b1bb59f8cdbb1fdd" offset="0x0000" />
804         </dataarea>
805      </part>
806   </software>
807
808   <software name="firebird" supported="no">
809      <description>Firebird</description>
810      <year>1983</year>
811      <publisher>Voyager Software</publisher>
812
813      <part name="cass1" interface="jupace_cass">
814         <dataarea name="cass" size="13767">
815            <rom name="firebird (1983)(voyager software)(gb)[19k].tap" size="13767" crc="a7717297" sha1="7a16edfab50c465fb7232ba57a329a685b127180" offset="0x0000" />
816         </dataarea>
817      </part>
818   </software>
819
820   <software name="m_fish" supported="no">
821      <description>Fish + Flutterer</description>
822      <year>1983</year>
823      <publisher>Jupiter Cantab</publisher>
824
825      <part name="cass1" interface="jupace_cass">
826      <feature name="part_id" value="Tape 1 (Fish)"/>
827         <dataarea name="cass" size="1053">
828            <rom name="fish + flutterer (1983)(jupiter cantab)(gb)(file 1 of 2)[fish][3k].tap" size="1053" crc="ad4da76f" sha1="372ae78b46e7885dc79ae5526f20368cf3810185" offset="0x0000" />
829         </dataarea>
830      </part>
831      <part name="cass2" interface="jupace_cass">
832      <feature name="part_id" value="Tape 2 (Flutterer)"/>
833         <dataarea name="cass" size="1012">
834            <rom name="fish + flutterer (1983)(jupiter cantab)(gb)(file 2 of 2)[flutterer][3k].tap" size="1012" crc="eb6e3931" sha1="b334ab1c0ece079e55738d01f7803d4c41dfd225" offset="0x0000" />
835         </dataarea>
836      </part>
837   </software>
838
839   <software name="5compact" supported="no">
840      <description>Five Compact Games</description>
841      <year>1983</year>
842      <publisher>Remsoft</publisher>
843
844      <part name="cass1" interface="jupace_cass">
845         <dataarea name="cass" size="7775">
846            <rom name="five compact games (1983)(remsoft)(gb)[3k].tap" size="7775" crc="1a3907b0" sha1="93094148539570bb5f2d5faafedb87535b1e1ca4" offset="0x0000" />
847         </dataarea>
848      </part>
849   </software>
850
851   <software name="fpdict" supported="no">
852      <description>Floating Point Dictionary</description>
853      <year>1983</year>
854      <publisher>Computing ToDay</publisher>
855
856      <part name="cass1" interface="jupace_cass">
857         <dataarea name="cass" size="2706">
858            <rom name="floating point dictionary (1983-05)(computing today)(gb)[3k].tap" size="2706" crc="1ca6ac21" sha1="b850d624f75398268414c5319da0304e4efd704b" offset="0x0000" />
859         </dataarea>
860      </part>
861   </software>
862
863   <software name="fonted1" cloneof="fonted" supported="no">
864      <description>FontEd (v1.0)</description>
865      <year>2007</year>
866      <publisher>Ricardo Fernandes Lopes</publisher>
867
868      <part name="cass1" interface="jupace_cass">
869         <dataarea name="cass" size="2494">
870            <rom name="fonted v1.0 (2007-02)(lopes, ricardo fernandes)(pd)[3k].tap" size="2494" crc="e119eb90" sha1="114c0d84a6d7c1109257300a571bac4098156ee7" offset="0x0000" />
871         </dataarea>
872      </part>
873   </software>
874
875   <software name="fonted" supported="no">
876      <description>FontEd (v2.0)</description>
877      <year>2007</year>
878      <publisher>Ricardo Fernandes Lopes</publisher>
879
880      <part name="cass1" interface="jupace_cass">
881         <dataarea name="cass" size="2722">
882            <rom name="fonted v2.0 (2007-10)(lopes, ricardo fernandes)(pd)[19k].tap" size="2722" crc="9a8e3077" sha1="9f5024e660dc11f1c2d4b3ad0a00a3d538784dc7" offset="0x0000" />
883         </dataarea>
884      </part>
885   </software>
886
887   <software name="frogger" supported="no">
888      <description>Frogger (Boldfield Computing)</description>
889      <year>1984</year>
890      <publisher>Boldfield Computing</publisher>
891
892      <part name="cass1" interface="jupace_cass">
893         <dataarea name="cass" size="8284">
894            <rom name="frogger (1984)(boldfield computing)(gb)(pd)[16k].tap" size="8284" crc="ff0f890c" sha1="d921609941c978d364f5cd0055c7618a9fa7d897" offset="0x0000" />
895         </dataarea>
896      </part>
897   </software>
898
899   <software name="frogger1" supported="no">
900      <description>Frogger (Plasma Software, Prototype)</description>
901      <year>1984</year>
902      <publisher>Plasma Software</publisher>
903
904      <part name="cass1" interface="jupace_cass">
905         <dataarea name="cass" size="10966">
906            <rom name="frogger (1984)(plasma software)(gb)[unreleased][19k].tap" size="10966" crc="6af2e369" sha1="679e668b89894e309f5228e160f2e6b503f00132" offset="0x0000" />
907         </dataarea>
908      </part>
909   </software>
910
911   <software name="fungle" supported="no">
912      <description>Fungle Monster (Prototype)</description>
913      <year>1983</year>
914      <publisher>Voyager Software</publisher>
915
916      <part name="cass1" interface="jupace_cass">
917         <dataarea name="cass" size="7919">
918            <rom name="fungle monster (1983)(voyager software)(gb)[unreleased][19k].tap" size="7919" crc="f4bb53ba" sha1="49b215354d243a8a9bae560e0309a4fba8a328e1" offset="0x0000" />
919         </dataarea>
920      </part>
921   </software>
922
923<!-- FIXME: These should be replaced by a real dump from the cassette: games should be one after the other and not split! Marked accordingly as baddump -->
924   <software name="gametap1" supported="no">
925      <description>Games Tape One</description>
926      <year>1983</year>
927      <publisher>Voyager Software</publisher>
928
929      <part name="cass1" interface="jupace_cass">
930      <feature name="part_id" value="Tape 1 (Asteroids)"/>
931         <dataarea name="cass" size="1089">
932            <rom name="games tape one (1983)(voyager software)(gb)(file 1 of 3)[asteroids][3k].tap" size="1089" crc="da6c588b" sha1="07d77a50514487e658643ed68cea3cfdd014d884" offset="0x0000"  status="baddump" />
933         </dataarea>
934      </part>
935      <part name="cass2" interface="jupace_cass">
936      <feature name="part_id" value="Tape 2 (Brickcatcher)"/>
937         <dataarea name="cass" size="872">
938            <rom name="games tape one (1983)(voyager software)(gb)(file 2 of 3)[brickcatcher][3k].tap" size="872" crc="7556a88e" sha1="53f764e7ceaa29b4ffe5fcacea17abec869d98e1" offset="0x0000"  status="baddump" />
939         </dataarea>
940      </part>
941      <part name="cass3" interface="jupace_cass">
942      <feature name="part_id" value="Tape 3 (Streetrace)"/>
943         <dataarea name="cass" size="1563">
944            <rom name="games tape one (1983)(voyager software)(gb)(file 3 of 3)[streetrace][3k].tap" size="1563" crc="c1d26d3c" sha1="8b36a1510fa286166b883231748c20caa68d705e" offset="0x0000"  status="baddump" />
945         </dataarea>
946      </part>
947   </software>
948
949   <software name="gametap3" supported="no">
950      <description>Games Tape Three</description>
951      <year>1983</year>
952      <publisher>Voyager Software</publisher>
953
954      <part name="cass1" interface="jupace_cass">
955      <feature name="part_id" value="Tape 1 (Bomber)"/>
956         <dataarea name="cass" size="1320">
957            <rom name="games tape three (1983)(voyager software)(gb)(file 1 of 2)[bomber][3k].tap" size="1320" crc="a97802b9" sha1="5447861248e83f423907ee14ab1e1c0a089e37e3" offset="0x0000" />
958         </dataarea>
959      </part>
960      <part name="cass2" interface="jupace_cass">
961      <feature name="part_id" value="Tape 2 (Jackpot)"/>
962         <dataarea name="cass" size="1979">
963            <rom name="games tape three (1983)(voyager software)(gb)(file 2 of 2)[jackpot][3k].tap" size="1979" crc="80b93e84" sha1="05097c7101c03c970bcc2cd7aa772ba07846fcee" offset="0x0000" />
964         </dataarea>
965      </part>
966   </software>
967
968   <software name="gobbgook" supported="no">
969      <description>Gobbledegook</description>
970      <year>1983</year>
971      <publisher>Jupiter Cantab</publisher>
972
973      <part name="cass1" interface="jupace_cass">
974         <dataarea name="cass" size="9369">
975            <rom name="gobbledegook (1983)(jupiter cantab)(gb)[19k].tap" size="9369" crc="6f2300c1" sha1="176b5fc9e7e82a7350cd62ad5a118ed76e019ec6" offset="0x0000" />
976         </dataarea>
977      </part>
978   </software>
979
980   <software name="grandprx" supported="no">
981      <description>Grandprix (Prototype)</description>
982      <year>1983</year>
983      <publisher>Plasma Software</publisher>
984
985      <part name="cass1" interface="jupace_cass">
986         <dataarea name="cass" size="9891">
987            <rom name="grandprix (1983)(plasma software)(gb)(alpha)[unreleased][19k].tap" size="9891" crc="6c9bc237" sha1="d5cc3ff3b07a3709efbd735c9eedb86feba269f6" offset="0x0000" />
988         </dataarea>
989      </part>
990   </software>
991
992   <software name="gfxexerc" supported="no">
993      <description>Graphic Exercises</description>
994      <year>1983</year>
995      <publisher>Popular Computing Weekly</publisher>
996
997      <part name="cass1" interface="jupace_cass">
998         <dataarea name="cass" size="879">
999            <rom name="graphic exercises (1983-05-12)(popular computing weekly)(gb)[3k].tap" size="879" crc="f5a1888d" sha1="c7d65914241588403ed1988d1aa257fe6c812908" offset="0x0000" />
1000         </dataarea>
1001      </part>
1002   </software>
1003
1004   <software name="m_greedy" supported="no">
1005      <description>Greedy Gobbler + Blowing up the World</description>
1006      <year>1983</year>
1007      <publisher>Jupiter Cantab</publisher>
1008
1009      <part name="cass1" interface="jupace_cass">
1010      <feature name="part_id" value="Tape 1 (Greedy Gobbler)"/>
1011         <dataarea name="cass" size="1632">
1012            <rom name="greedy gobbler + blowing up the world (1983)(jupiter cantab)(gb)(file 1 of 2)[greedy gobbler][3k].tap" size="1632" crc="fa1cd2dd" sha1="68d0025f9ca2a28e7e527be6854f0d8c985d8651" offset="0x0000" />
1013         </dataarea>
1014      </part>
1015      <part name="cass2" interface="jupace_cass">
1016      <feature name="part_id" value="Tape 2 (Blowing up the World)"/>
1017         <dataarea name="cass" size="855">
1018            <rom name="greedy gobbler + blowing up the world (1983)(jupiter cantab)(gb)(file 2 of 2)[blowing up the world][3k].tap" size="855" crc="5c1d617c" sha1="11185ca6ee522bd41505b80d8e1a2146ab1d569c" offset="0x0000" />
1019         </dataarea>
1020      </part>
1021   </software>
1022
1023   <software name="grexfrog" supported="no">
1024      <description>Green X Frog</description>
1025      <year>1982</year>
1026      <publisher>Hi-Tech Microsoft</publisher>
1027
1028      <part name="cass1" interface="jupace_cass">
1029         <dataarea name="cass" size="1050">
1030            <rom name="green x frog (1982)(hi-tech microsoft)(gb)[3k].tap" size="1050" crc="4aa7cdfc" sha1="cdeeb7a645e4d08d8af5c866a9f73a9f67aa78ba" offset="0x0000" />
1031         </dataarea>
1032      </part>
1033   </software>
1034
1035   <software name="guessing" supported="no">
1036      <description>Guessing Game</description>
1037      <year>1983</year>
1038      <publisher>Practical Computing</publisher>
1039
1040      <part name="cass1" interface="jupace_cass">
1041         <dataarea name="cass" size="557">
1042            <rom name="guessing game (1983-05)(practical computing)(gb)[3k].tap" size="557" crc="23b22442" sha1="46c96e4b48cb13fa2eeeca88119401561152c5d5" offset="0x0000" />
1043         </dataarea>
1044      </part>
1045   </software>
1046
1047   <software name="hdrmon" supported="no">
1048      <description>HDRmon</description>
1049      <year>2007</year>
1050      <publisher>Edwin Blink</publisher>
1051
1052      <part name="cass1" interface="jupace_cass">
1053         <dataarea name="cass" size="272">
1054            <rom name="hdrmon (2007)(blink, edwin)(pd)[3k].tap" size="272" crc="d0e2b2fb" sha1="84e2bafdfba36b3c580dde45383425c7d6d9119f" offset="0x0000" />
1055         </dataarea>
1056      </part>
1057   </software>
1058
1059   <software name="invaders" supported="no">
1060      <description>Invaders (Prototype)</description>
1061      <year>1984</year>
1062      <publisher>Plasma Software</publisher>
1063
1064      <part name="cass1" interface="jupace_cass">
1065         <dataarea name="cass" size="11341">
1066            <rom name="invaders (1984)(plasma software)(gb)[unreleased][19k].tap" size="11341" crc="84754081" sha1="0b7d720308d642cbc01c36f9ae440bd8b3d32eec" offset="0x0000" />
1067         </dataarea>
1068      </part>
1069   </software>
1070
1071   <software name="jumpman" supported="no">
1072      <description>Jumpman</description>
1073      <year>1984</year>
1074      <publisher>Callisto Software</publisher>
1075
1076      <part name="cass1" interface="jupace_cass">
1077         <dataarea name="cass" size="8735">
1078            <rom name="jumpman (1984)(callisto software)[32k].tap" size="8735" crc="de04b476" sha1="94aea64e9f67bd936028b559a5824f3d6d9322a0" offset="0x0000" />
1079         </dataarea>
1080      </part>
1081   </software>
1082
1083   <software name="kkong" supported="no">
1084      <description>Krazy Kong (Prototype)</description>
1085      <year>198?</year>
1086      <publisher>Voyager Software</publisher>
1087
1088      <part name="cass1" interface="jupace_cass">
1089         <dataarea name="cass" size="8243">
1090            <rom name="krazy kong (19xx)(voyager software)(gb)[unreleased][19k].tap" size="8243" crc="ddd263b6" sha1="36f9be4b58c76f68791fefa228c610a3db2b2d53" offset="0x0000" />
1091         </dataarea>
1092      </part>
1093   </software>
1094
1095   <software name="life" supported="no">
1096      <description>Life (Julian Skidmore)</description>
1097      <year>2006</year>
1098      <publisher>Julian Skidmore</publisher>
1099
1100      <part name="cass1" interface="jupace_cass">
1101         <dataarea name="cass" size="7597">
1102            <rom name="life (2006)(skidmore, julian)(pd)[19k].tap" size="7597" crc="fd48c670" sha1="1ed3e807aca1d6b58551b5761f6a747fe2f6a0f4" offset="0x0000" />
1103         </dataarea>
1104      </part>
1105   </software>
1106
1107   <software name="lifev2" cloneof="lifev3" supported="no">
1108      <description>Life (Dutra de Lacerda, v2)</description>
1109      <year>1985</year>
1110      <publisher>Dutra de Lacerda</publisher>
1111
1112      <part name="cass1" interface="jupace_cass">
1113         <dataarea name="cass" size="911">
1114            <rom name="life v2 (1985)(de lacerda, dutra)[1k].tap" size="911" crc="97ac8f78" sha1="b12fa8f076da2f243115e1bf3e4a0da53331a451" offset="0x0000" />
1115         </dataarea>
1116      </part>
1117   </software>
1118
1119   <software name="lifev3" supported="no">
1120      <description>Life (Dutra de Lacerda, v3)</description>
1121      <year>1985</year>
1122      <publisher>Dutra de Lacerda</publisher>
1123
1124      <part name="cass1" interface="jupace_cass">
1125      <feature name="part_id" value="Tape 1"/>
1126         <dataarea name="cass" size="623">
1127            <rom name="life v3 (1985)(de lacerda, dutra)[1k].tap" size="623" crc="3e7532fe" sha1="61d1ee2b8b0e619b1d928e52f378f08bbc514ac1" offset="0x0000" />
1128         </dataarea>
1129      </part>
1130      <part name="cass2" interface="jupace_cass">
1131      <feature name="part_id" value="Tape 1, Patched"/>
1132         <dataarea name="cass" size="860">
1133            <rom name="life v3 (1985)(de lacerda, dutra)[m patched][1k].tap" size="860" crc="679ef000" sha1="3009c4bd3cfaf0d0336aa59a0938e26538695a7a" offset="0x0000" />
1134         </dataarea>
1135      </part>
1136   </software>
1137
1138   <software name="lightrac" supported="no">
1139      <description>Light Racer (Prototype)</description>
1140      <year>1983</year>
1141      <publisher>Brian Bates</publisher>
1142
1143      <part name="cass1" interface="jupace_cass">
1144         <dataarea name="cass" size="7770">
1145            <rom name="light racer (1983-10)(bates, brian)[unreleased][19k].tap" size="7770" crc="24f5efc0" sha1="b7cd8e6fd4c191df907960caf66df1c85e994e33" offset="0x0000" />
1146         </dataarea>
1147      </part>
1148   </software>
1149
1150   <software name="loader" supported="no">
1151      <description>Loader</description>
1152      <year>1983</year>
1153      <publisher>Popular Computing Weekly</publisher>
1154
1155      <part name="cass1" interface="jupace_cass">
1156         <dataarea name="cass" size="212">
1157            <rom name="loader (1983-03-01)(popular computing weekly)(gb)[3k].tap" size="212" crc="89cf2815" sha1="89b7a6d38399e67943ab5c87499e005f47706949" offset="0x0000" />
1158         </dataarea>
1159      </part>
1160   </software>
1161
1162   <software name="llander" supported="no">
1163      <description>Lunar Lander</description>
1164      <year>1983</year>
1165      <publisher>Popular Computing Weekly</publisher>
1166
1167      <part name="cass1" interface="jupace_cass">
1168         <dataarea name="cass" size="591">
1169            <rom name="lunar lander (1983-04-21)(popular computing weekly)(gb)[3k].tap" size="591" crc="d2ed39d2" sha1="45ba6c6291df27a4b7be5f1b4aa5312cec0d05a3" offset="0x0000" />
1170         </dataarea>
1171      </part>
1172   </software>
1173
1174   <software name="memstars" supported="no">
1175      <description>Memory Stars</description>
1176      <year>1982</year>
1177      <publisher>Hi-Tech Microsoft</publisher>
1178
1179      <part name="cass1" interface="jupace_cass">
1180         <dataarea name="cass" size="819">
1181            <rom name="memory stars (1982)(hi-tech microsoft)(gb)[3k].tap" size="819" crc="a4075ebe" sha1="236cf7ca47a5ee18dd9e871fc6218df9d5b1332f" offset="0x0000" />
1182         </dataarea>
1183      </part>
1184   </software>
1185
1186   <software name="meteor" supported="no">
1187      <description>Meteor</description>
1188      <year>1983</year>
1189      <publisher>Popular Computing Weekly</publisher>
1190
1191      <part name="cass1" interface="jupace_cass">
1192         <dataarea name="cass" size="751">
1193            <rom name="meteor (1983-03-24)(popular computing weekly)(gb)[3k].tap" size="751" crc="d468a6bd" sha1="58259d1409c84425009b64084ed1eb7b8cdb49fc" offset="0x0000" />
1194         </dataarea>
1195      </part>
1196   </software>
1197
1198   <software name="metracer" supported="no">
1199      <description>Meteor Racer</description>
1200      <year>1983</year>
1201      <publisher>Forth Dimension</publisher>
1202
1203      <part name="cass1" interface="jupace_cass">
1204         <dataarea name="cass" size="3441">
1205            <rom name="meteor racer (1983)(forth dimension)[1k].tap" size="3441" crc="653ceffd" sha1="04518005d92668be718ce60608ccc5664826348c" offset="0x0000" />
1206         </dataarea>
1207      </part>
1208   </software>
1209
1210   <software name="meteors" supported="no">
1211      <description>Meteors (Prototype)</description>
1212      <year>1984</year>
1213      <publisher>Plasma Software</publisher>
1214
1215      <part name="cass1" interface="jupace_cass">
1216         <dataarea name="cass" size="10481">
1217            <rom name="meteors (1984)(plasma software)(gb)[unreleased][19k].tap" size="10481" crc="e4453013" sha1="46e128fe0bd7a8d6a59d4bde99c95747cdc58a05" offset="0x0000" />
1218         </dataarea>
1219      </part>
1220   </software>
1221
1222   <software name="micromaz" supported="no">
1223      <description>Micro Maze</description>
1224      <year>1982</year>
1225      <publisher>Hi-Tech Microsoft</publisher>
1226
1227      <part name="cass1" interface="jupace_cass">
1228         <dataarea name="cass" size="2903">
1229            <rom name="micro maze (1982)(hi-tech microsoft)(gb)[3k].tap" size="2903" crc="d19ff48a" sha1="cf21c6fd5bc41819e1ecea67612420457bb90bb3" offset="0x0000" />
1230         </dataarea>
1231      </part>
1232   </software>
1233
1234   <software name="minefld" supported="no">
1235      <description>Minefield</description>
1236      <year>1983</year>
1237      <publisher>Micro Marketing</publisher>
1238
1239      <part name="cass1" interface="jupace_cass">
1240         <dataarea name="cass" size="839">
1241            <rom name="minefield (1983)(micro marketing)(gb)[3k].tap" size="839" crc="dc70bee6" sha1="6245ed5e8c97ef22189c874dfc1c703c36d21922" offset="0x0000" />
1242         </dataarea>
1243      </part>
1244   </software>
1245
1246   <software name="m_missle" supported="no">
1247      <description>Missle Man + Space Fighter Pilot</description>
1248      <year>1983</year>
1249      <publisher>Jupiter Cantab</publisher>
1250
1251      <part name="cass1" interface="jupace_cass">
1252      <feature name="part_id" value="Tape 1 (Missle Man)"/>
1253         <dataarea name="cass" size="855">
1254            <rom name="missle man + space fighter pilot (1983)(jupiter cantab)(gb)(file 1 of 2)[missile man][3k].tap" size="855" crc="eee45ab4" sha1="9d36b57ea34b2865ac34846687fccf29be0398a3" offset="0x0000" />
1255         </dataarea>
1256      </part>
1257      <part name="cass2" interface="jupace_cass">
1258      <feature name="part_id" value="Tape 2 (Space Fighter Pilot)"/>
1259         <dataarea name="cass" size="1612">
1260            <rom name="missle man + space fighter pilot (1983)(jupiter cantab)(gb)(file 2 of 2)[space fighter pilot][3k].tap" size="1612" crc="6ec4cd1b" sha1="a2b922dc8a40617a631483f2b83f9a264731dbff" offset="0x0000" />
1261         </dataarea>
1262      </part>
1263   </software>
1264
1265   <software name="monitor" supported="no">
1266      <description>Monitor (Jupiter Cantab)</description>
1267      <year>1983</year>
1268      <publisher>Jupiter Cantab</publisher>
1269
1270      <part name="cass1" interface="jupace_cass">
1271         <dataarea name="cass" size="651">
1272            <rom name="monitor (1983)(jupiter cantab)(gb)[3k].tap" size="651" crc="1cebd393" sha1="0cc4ee4b58d38cf96dcd05eec3ae8469b337fef9" offset="0x0000" />
1273         </dataarea>
1274      </part>
1275   </software>
1276
1277   <software name="monitora" supported="no">
1278      <description>Monitor (Popular Computing Weekly)</description>
1279      <year>1983</year>
1280      <publisher>Popular Computing Weekly</publisher>
1281
1282      <part name="cass1" interface="jupace_cass">
1283         <dataarea name="cass" size="537">
1284            <rom name="monitor (1983-10-20)(popular computing weekly)(gb)[3k].tap" size="537" crc="d3a5e73f" sha1="3725c4623fd3227459460c0be93e9e0ee2f966c9" offset="0x0000" />
1285         </dataarea>
1286      </part>
1287   </software>
1288
1289   <software name="m_moo" supported="no">
1290      <description>Moo + Hangman</description>
1291      <year>1983</year>
1292      <publisher>Jupiter Cantab</publisher>
1293
1294      <part name="cass1" interface="jupace_cass">
1295      <feature name="part_id" value="Tape 1 (Moo)"/>
1296         <dataarea name="cass" size="867">
1297            <rom name="moo + hangman (1983)(jupiter cantab)(gb)(file 1 of 2)[moo][3k].tap" size="867" crc="4e89bbf3" sha1="e0802ea058f6932545493b449ecec68d3bbc5814" offset="0x0000" />
1298         </dataarea>
1299      </part>
1300      <part name="cass2" interface="jupace_cass">
1301      <feature name="part_id" value="Tape 2 (Hangman)"/>
1302         <dataarea name="cass" size="1113">
1303            <rom name="moo + hangman (1983)(jupiter cantab)(gb)(file 2 of 2)[hangman][3k].tap" size="1113" crc="3403a247" sha1="97c9068ec1e31abcad58e115d8e2a8b600fc28c3" offset="0x0000" />
1304         </dataarea>
1305      </part>
1306   </software>
1307
1308   <software name="moonbugg" supported="no">
1309      <description>Moon Buggy (Prototype)</description>
1310      <year>1984</year>
1311      <publisher>Plasma Software</publisher>
1312
1313      <part name="cass1" interface="jupace_cass">
1314         <dataarea name="cass" size="16986">
1315            <rom name="moon buggy (1984)(plasma software)(gb)[unreleased][19k].tap" size="16986" crc="8a824119" sha1="1673d33bc78223f28ff2cf85a52a9d0f3d4a9f1a" offset="0x0000" />
1316         </dataarea>
1317      </part>
1318   </software>
1319
1320   <software name="morsecod" supported="no">
1321      <description>Morse Code Tutor</description>
1322      <year>198?</year>
1323      <publisher>&lt;unknown&gt;</publisher>
1324
1325      <part name="cass1" interface="jupace_cass">
1326         <dataarea name="cass" size="1265">
1327            <rom name="morse code tutor (19xx)(-)[19k].tap" size="1265" crc="e39c1d77" sha1="89ecfb6831c1cfe4d2d96888e9a41cad46f096a3" offset="0x0000" />
1328         </dataarea>
1329      </part>
1330   </software>
1331
1332   <software name="multikey" supported="no">
1333      <description>Multi Key Press Demo</description>
1334      <year>2009</year>
1335      <publisher>Jupiter Ace Archive Team</publisher>
1336
1337      <part name="cass1" interface="jupace_cass">
1338         <dataarea name="cass" size="952">
1339            <rom name="multi key press demo (2009)(jupiter ace archive team)(gb)[3k].tap" size="952" crc="ee2d0b6d" sha1="0576765f17656af8752e0cd3f6e3064b81b45b79" offset="0x0000" />
1340         </dataarea>
1341      </part>
1342   </software>
1343
1344   <software name="music" supported="no">
1345      <description>Music</description>
1346      <year>1983</year>
1347      <publisher>Popular Computing Weekly</publisher>
1348
1349      <part name="cass1" interface="jupace_cass">
1350         <dataarea name="cass" size="426">
1351            <rom name="music (1983)(popular computing weekly)(gb)[3k].tap" size="426" crc="2eabab10" sha1="bdbed2da4a986ec3a6726bc89bd0fac766aa36b1" offset="0x0000" />
1352         </dataarea>
1353      </part>
1354   </software>
1355
1356   <software name="othello" supported="no">
1357      <description>Othello</description>
1358      <year>1983</year>
1359      <publisher>Jupiter Cantab</publisher>
1360
1361      <part name="cass1" interface="jupace_cass">
1362         <dataarea name="cass" size="2686">
1363            <rom name="othello (1983)(jupiter cantab)(gb)[19k].tap" size="2686" crc="52c4d4a8" sha1="2bf56bb00593c812122e6cdcce30e20ddec620a3" offset="0x0000" />
1364         </dataarea>
1365      </part>
1366   </software>
1367
1368   <software name="m_overta" supported="no">
1369      <description>Overtaker + Brands Hatch</description>
1370      <year>1983</year>
1371      <publisher>Jupiter Cantab</publisher>
1372
1373      <part name="cass1" interface="jupace_cass">
1374      <feature name="part_id" value="Tape 1 (Overtaker)"/>
1375         <dataarea name="cass" size="896">
1376            <rom name="overtaker + brands hatch (1983)(jupiter cantab)(gb)(file 1 of 2)[overtaker][3k].tap" size="896" crc="0734cac9" sha1="522e61fb8df29758b1fb0743bb0750a267aebe77" offset="0x0000" />
1377         </dataarea>
1378      </part>
1379      <part name="cass2" interface="jupace_cass">
1380      <feature name="part_id" value="Tape 2 (Brands Hatch)"/>
1381         <dataarea name="cass" size="897">
1382            <rom name="overtaker + brands hatch (1983)(jupiter cantab)(gb)(file 2 of 2)[brands hatch][3k].tap" size="897" crc="0cc21258" sha1="db49354c09b4d0ea3bef0f7145f833942d9f5c4a" offset="0x0000" />
1383         </dataarea>
1384      </part>
1385   </software>
1386
1387   <software name="owler" supported="no">
1388      <description>Owler</description>
1389      <year>1984</year>
1390      <publisher>Callisto Software</publisher>
1391
1392      <part name="cass1" interface="jupace_cass">
1393         <dataarea name="cass" size="14885">
1394            <rom name="owler (1984)(callisto software)[32k].tap" size="14885" crc="7e93c42f" sha1="893dc5a34ab3a4c260304ade09191a24fc08d33b" offset="0x0000" />
1395         </dataarea>
1396      </part>
1397   </software>
1398
1399   <software name="m_puzzle" supported="no">
1400      <description>Puzzle + Bombs</description>
1401      <year>1984</year>
1402      <publisher>Boldfield Computing</publisher>
1403
1404      <part name="cass1" interface="jupace_cass">
1405      <feature name="part_id" value="Tape 1 (Puzzle)"/>
1406         <dataarea name="cass" size="1686">
1407            <rom name="puzzle - bombs (1984)(boldfield computing)(gb)(file 1 of 2)[puzzle][3k].tap" size="1686" crc="594132c8" sha1="bb9b8f16e3c4aefeb600006e21b5e0d36f056d2e" offset="0x0000" />
1408         </dataarea>
1409      </part>
1410      <part name="cass2" interface="jupace_cass">
1411      <feature name="part_id" value="Tape 2 (Bombs)"/>
1412         <dataarea name="cass" size="1693">
1413            <rom name="puzzle - bombs (1984)(boldfield computing)(gb)(file 2 of 2)[bombs][3k].tap" size="1693" crc="f78a48f9" sha1="efff47ef9bb42a745c2ef0c8eadcde9eca17f0b4" offset="0x0000" />
1414         </dataarea>
1415      </part>
1416   </software>
1417
1418   <software name="quickdrw" supported="no">
1419      <description>Quick-Draw (Prototype)</description>
1420      <year>1983</year>
1421      <publisher>Brian Bates</publisher>
1422
1423      <part name="cass1" interface="jupace_cass">
1424         <dataarea name="cass" size="14757">
1425            <rom name="quick-draw (1983-11)(bates, brian)[unreleased][19k].tap" size="14757" crc="a7ee7cfe" sha1="dd5c530defde838bdc4a02cdf8b168864d6ad971" offset="0x0000" />
1426         </dataarea>
1427      </part>
1428   </software>
1429
1430   <software name="quickdrp" supported="no">
1431      <description>Quick-Draw Practice (Prototype)</description>
1432      <year>1983</year>
1433      <publisher>Brian Bates</publisher>
1434
1435      <part name="cass1" interface="jupace_cass">
1436         <dataarea name="cass" size="15106">
1437            <rom name="quick-draw practice (1983-11)(bates, brian)[unreleased][19k].tap" size="15106" crc="32b350e4" sha1="5c5e2bc35bf96f226076ef8a5cb9ce735921bb86" offset="0x0000" />
1438         </dataarea>
1439      </part>
1440   </software>
1441
1442   <software name="robohnch" supported="no">
1443      <description>Robohench (Prototype)</description>
1444      <year>1984</year>
1445      <publisher>Plasma Software</publisher>
1446
1447      <part name="cass1" interface="jupace_cass">
1448         <dataarea name="cass" size="14200">
1449            <rom name="robohench (1984)(plasma software)(gb)[unreleased][19k].tap" size="14200" crc="77b2fb21" sha1="df8ce9460aa1129cdaa3c479f28496df28b6920e" offset="0x0000" />
1450         </dataarea>
1451      </part>
1452   </software>
1453
1454   <software name="robohunt" supported="no">
1455      <description>Robohunt (Prototype)</description>
1456      <year>1984</year>
1457      <publisher>Plasma Software</publisher>
1458
1459      <part name="cass1" interface="jupace_cass">
1460         <dataarea name="cass" size="15678">
1461            <rom name="robohunt (1984)(plasma software)(gb)[unreleased][19k].tap" size="15678" crc="e80c6db2" sha1="b5f82d7aa494fda7af6d6a096aac28fa1bfae16e" offset="0x0000" />
1462         </dataarea>
1463      </part>
1464   </software>
1465
1466   <software name="sailhorn" supported="no">
1467      <description>Sallors' Hornpipe</description>
1468      <year>1982</year>
1469      <publisher>Popular Computing Weekly</publisher>
1470
1471      <part name="cass1" interface="jupace_cass">
1472         <dataarea name="cass" size="715">
1473            <rom name="sallors' hornpipe (1982-12-16)(popular computing weekly)(gb)[3k].tap" size="715" crc="770a5f4d" sha1="faca2f968632c04d46c7a46bc412b697f14cc85e" offset="0x0000" />
1474         </dataarea>
1475      </part>
1476   </software>
1477
1478   <software name="sambombs" supported="no">
1479      <description>Sam and the Time Bombs (Prototype)</description>
1480      <year>1984</year>
1481      <publisher>Plasma Software</publisher>
1482
1483      <part name="cass1" interface="jupace_cass">
1484         <dataarea name="cass" size="12654">
1485            <rom name="sam and the time bombs (1984)(plasma software)(gb)[unreleased][19k].tap" size="12654" crc="edc5d37a" sha1="65289d38c4f902805edef5750247d231d42ef2ab" offset="0x0000" />
1486         </dataarea>
1487      </part>
1488   </software>
1489
1490   <software name="scramblr" supported="no">
1491      <description>Scrambler</description>
1492      <year>1982</year>
1493      <publisher>Electronics &amp; Computing</publisher>
1494
1495      <part name="cass1" interface="jupace_cass">
1496         <dataarea name="cass" size="729">
1497            <rom name="scrambler (1982-05)(electronics &amp; computing)(gb)[3k].tap" size="729" crc="7a06c3bc" sha1="d0d1082b230633950535de09df4f2da575a38b7c" offset="0x0000" />
1498         </dataarea>
1499      </part>
1500   </software>
1501
1502   <software name="security" supported="no">
1503      <description>Security</description>
1504      <year>1982</year>
1505      <publisher>Popular Computing Weekly</publisher>
1506
1507      <part name="cass1" interface="jupace_cass">
1508         <dataarea name="cass" size="116">
1509            <rom name="security (1982-09-01)(popular computing weekly)(gb)[3k].tap" size="116" crc="1e49ad67" sha1="10b516f8714b29b35c50e493d23b041f17e6545c" offset="0x0000" />
1510         </dataarea>
1511      </part>
1512   </software>
1513
1514   <software name="sinewave" supported="no">
1515      <description>Sine Wave Generator</description>
1516      <year>1984</year>
1517      <publisher>Personal Computer World</publisher>
1518
1519      <part name="cass1" interface="jupace_cass">
1520         <dataarea name="cass" size="146">
1521            <rom name="sine wave generator (1984-03)(personal computer world)(gb)[3k].tap" size="146" crc="6cff7c9c" sha1="7d552596df4f2f529c04df209a93d5cfcb54081a" offset="0x0000" />
1522         </dataarea>
1523      </part>
1524   </software>
1525
1526   <software name="m_snake"> <!-- was there a side B? -->
1527      <description>Snake + Superbat</description>
1528      <year>1985</year>
1529      <publisher>Waylandsoft</publisher>
1530
1531      <part name="cass1" interface="jupace_cass">
1532      <feature name="part_id" value="Side A (Snake)"/>
1533         <dataarea name="cass" size="5909">
1534            <rom name="snake + superbat+ (1985)(waylandsoft)(side a)[snake][16k].tap" size="5909" crc="691e427f" sha1="d96ae780b32324df04e2cb9ede360fa759b3d276" offset="0x0000" />
1535         </dataarea>
1536      </part>
1537      <part name="cass2" interface="jupace_cass">
1538      <feature name="part_id" value="Side A (Superbat)"/>
1539         <dataarea name="cass" size="1575">
1540            <rom name="snake + superbat+ (1985)(waylandsoft)(side a)[superbat][16k].tap" size="1575" crc="de48091a" sha1="46ca3a9bd63cc036cb1d5825d172677c20f225a4" offset="0x0000" />
1541         </dataarea>
1542      </part>
1543   </software>
1544
1545   <software name="sokoace" supported="no">
1546      <description>SokoACE</description>
1547      <year>2006</year>
1548      <publisher>Ricardo Fernandes Lopes</publisher>
1549
1550      <part name="cass1" interface="jupace_cass">
1551         <dataarea name="cass" size="14367">
1552            <rom name="sokoace (2006)(lopes, ricardo fernandes)(pd)[19k].tap" size="14367" crc="b02e398d" sha1="fcda8a2a50ca573d972cc635204fe36ed2cc4f4b" offset="0x0000" />
1553         </dataarea>
1554      </part>
1555   </software>
1556
1557   <software name="sacemap" supported="no">
1558      <description>SokoACE Map Editor</description>
1559      <year>2006</year>
1560      <publisher>Ricardo Fernandes Lopes</publisher>
1561
1562      <part name="cass1" interface="jupace_cass">
1563         <dataarea name="cass" size="2160">
1564            <rom name="sokoace map editor (2006)(lopes, ricardo fernandes)(pd)[19k].tap" size="2160" crc="76a356e5" sha1="5f80ea127fd48e4d442cc46061dad30e2e4df1c7" offset="0x0000" />
1565         </dataarea>
1566      </part>
1567   </software>
1568
1569   <software name="sbattle" supported="no">
1570      <description>Space Battle</description>
1571      <year>1982</year>
1572      <publisher>Hi-Tech Microsoft</publisher>
1573
1574      <part name="cass1" interface="jupace_cass">
1575         <dataarea name="cass" size="1224">
1576            <rom name="space battle (1982)(hi-tech microsoft)(gb)[3k].tap" size="1224" crc="1569208e" sha1="b53fedd4b227ab995a15f64b595ba2a124e57062" offset="0x0000" />
1577         </dataarea>
1578      </part>
1579   </software>
1580
1581   <software name="spreadsh" supported="no">
1582      <description>Spreadsheet</description>
1583      <year>1984</year>
1584      <publisher>Boldfield Computing</publisher>
1585
1586      <part name="cass1" interface="jupace_cass">
1587         <dataarea name="cass" size="9882">
1588            <rom name="spreadsheet (1984)(boldfield computing)(gb)[19k].tap" size="9882" crc="df789644" sha1="53a4545d04ebadbea98797684bac261a0a5b6b81" offset="0x0000" />
1589         </dataarea>
1590      </part>
1591   </software>
1592
1593   <software name="startrek" supported="no">
1594      <description>Star Trek</description>
1595      <year>1984</year>
1596      <publisher>Plasma Software</publisher>
1597
1598      <part name="cass1" interface="jupace_cass">
1599         <dataarea name="cass" size="14756">
1600            <rom name="star trek (1984)(plasma software)(gb)[unreleased][19k].tap" size="14756" crc="6d084e74" sha1="53450a452cdf9b7fd70f1ef9539ff1ec581043ea" offset="0x0000" />
1601         </dataarea>
1602      </part>
1603   </software>
1604
1605   <software name="sudoku" supported="no">
1606      <description>Sudoku</description>
1607      <year>2007</year>
1608      <publisher>Ricardo Fernandes Lopes</publisher>
1609
1610      <part name="cass1" interface="jupace_cass">
1611         <dataarea name="cass" size="3887">
1612            <rom name="sudoku (2007)(lopes, ricardo fernandes)(pd)[19k].tap" size="3887" crc="a994a6fd" sha1="e1915263651eae3d5a953aa9f8f8cb39b9d31f0c" offset="0x0000" />
1613         </dataarea>
1614      </part>
1615   </software>
1616
1617   <software name="tankbatl" supported="no">
1618      <description>Tank Battle (Prototype)</description>
1619      <year>1984</year>
1620      <publisher>Plasma Software</publisher>
1621
1622      <part name="cass1" interface="jupace_cass">
1623         <dataarea name="cass" size="14380">
1624            <rom name="tank battle (1984)(plasma software)(gb)[unreleased][19k].tap" size="14380" crc="27b07d5d" sha1="12448adfad4e0ab5abacd0f9c7f8d6852cad567d" offset="0x0000" />
1625         </dataarea>
1626      </part>
1627   </software>
1628
1629   <software name="teach" supported="no">
1630      <description>Teach Yourself Forth on the Jupiter Ace</description>
1631      <year>1982</year>
1632      <publisher>Viscount</publisher>
1633
1634      <part name="cass1" interface="jupace_cass">
1635         <dataarea name="cass" size="18676">
1636            <rom name="teach yourself forth on the jupiter ace (1982)(viscount)[3k].tap" size="18676" crc="85aecda2" sha1="2ef64991e6a961a9942a7442d0d49003741c015a" offset="0x0000" />
1637         </dataarea>
1638      </part>
1639   </software>
1640
1641   <software name="tetris" supported="no">
1642      <description>Tetris</description>
1643      <year>2009</year>
1644      <publisher>Jupiter Ace Archive Team</publisher>
1645
1646      <part name="cass1" interface="jupace_cass">
1647         <dataarea name="cass" size="1398">
1648            <rom name="tetris (2009)(jupiter ace archive team)(gb)(pd)[19k].tap" size="1398" crc="f4b103d4" sha1="a7f264ec1375cc2befc64203f516ae5861bda40b" offset="0x0000" />
1649         </dataarea>
1650      </part>
1651   </software>
1652
1653   <software name="m_titan" supported="no">
1654      <description>Titan Defender + Dual Duel</description>
1655      <year>1985</year>
1656      <publisher>Stusoft</publisher>
1657
1658      <part name="cass1" interface="jupace_cass">
1659      <feature name="part_id" value="Side A (Titan Defender)"/>
1660         <dataarea name="cass" size="16538">
1661            <rom name="titan defender + dual duel (1985)(stusoft)(side a)[titan defender][16k].tap" size="16538" crc="0b0da908" sha1="547e6954e5f6100397e27ea5b1568b1e6917bc18" offset="0x0000" />
1662         </dataarea>
1663      </part>
1664      <part name="cass2" interface="jupace_cass">
1665      <feature name="part_id" value="Side B (Dual Duel)"/>
1666         <dataarea name="cass" size="3692">
1667            <rom name="titan defender + dual duel (1985)(stusoft)(side b)[dual duel][16k].tap" size="3692" crc="abde8634" sha1="af404fa7619682f09f64c7915bf2ddade46952cb" offset="0x0000" />
1668         </dataarea>
1669      </part>
1670   </software>
1671
1672   <software name="hanoi" supported="no">
1673      <description>Towers of Hanoi</description>
1674      <year>2006</year>
1675      <publisher>Ricardo Fernandes Lopes</publisher>
1676
1677      <part name="cass1" interface="jupace_cass">
1678         <dataarea name="cass" size="835">
1679            <rom name="towers of hanoi (2006)(lopes, ricardo fernandes)(pd)[3k].tap" size="835" crc="43c2ed79" sha1="6be70c75aaf9f6f548e29e8f874208d455d065c7" offset="0x0000" />
1680         </dataarea>
1681      </part>
1682   </software>
1683
1684   <software name="triplep" supported="no">
1685      <description>Triple Pack</description>
1686      <year>1984</year>
1687      <publisher>Boldfield Computing</publisher>
1688
1689      <part name="cass1" interface="jupace_cass">
1690      <feature name="part_id" value="Tape 1 (Balloon Pilot)"/>
1691         <dataarea name="cass" size="801">
1692            <rom name="triple pack (1984)(boldfield computing)(gb)(file 1 of 3)[balloon pilot][3k].tap" size="801" crc="ab09efb0" sha1="adc4169d975fb029c8feb9435587ebe387a027c6" offset="0x0000" />
1693         </dataarea>
1694      </part>
1695      <part name="cass2" interface="jupace_cass">
1696      <feature name="part_id" value="Tape 2 (Shuttlecock)"/>
1697         <dataarea name="cass" size="887">
1698            <rom name="triple pack (1984)(boldfield computing)(gb)(file 2 of 3)[shuttlecock][3k].tap" size="887" crc="7d01c879" sha1="1b6606256fba11c1b783fe428b1df9dc579da77f" offset="0x0000" />
1699         </dataarea>
1700      </part>
1701      <part name="cass3" interface="jupace_cass"> <!-- not available in TAP format -->
1702      <feature name="part_id" value="Tape 3 (Computer Weaving)"/>
1703         <dataarea name="cass" size="887">
1704            <rom name="triple pack (1984)(boldfield computing)(gb)(file 3 of 3)[computer weaving][3k].tap" offset="0x0000" status="nodump" />
1705         </dataarea>
1706      </part>
1707   </software>
1708
1709   <software name="turbo" supported="no">
1710      <description>Turbo (Prototype)</description>
1711      <year>1984</year>
1712      <publisher>Plasma Software</publisher>
1713
1714      <part name="cass1" interface="jupace_cass">
1715         <dataarea name="cass" size="16958">
1716            <rom name="turbo (1984)(plasma software)(gb)[unreleased][19k].tap" size="16958" crc="b1d5aad0" sha1="6f23ddf66bcd4cb6a7bfc0f2b88b6282e7136a2e" offset="0x0000" />
1717         </dataarea>
1718      </part>
1719   </software>
1720
1721<!-- FIXME: These should be replaced by a real dump from the cassette: programs should be one after the other and not split! Marked accordingly as baddump -->
1722   <software name="utils" supported="no">
1723      <description>Utilities</description>
1724      <year>1985</year>
1725      <publisher>Boldfield Computing</publisher>
1726
1727      <part name="cass1" interface="jupace_cass">
1728      <feature name="part_id" value="Tape 1 (Turtle)"/>
1729         <dataarea name="cass" size="6993">
1730            <rom name="utilities (1985)(boldfield computing)(file 01 of 15)(gb)[turtle][19k].tap" size="6993" crc="76f6d6fa" sha1="fc157e4fe5b5ad25ab0293c1b76f65ae9ac47fba" offset="0x0000"  status="baddump" />
1731         </dataarea>
1732      </part>
1733      <part name="cass2" interface="jupace_cass">
1734      <feature name="part_id" value="Tape 2 (Copy)"/>
1735         <dataarea name="cass" size="370">
1736            <rom name="utilities (1985)(boldfield computing)(file 02 of 15)(gb)[copy][19k].tap" size="370" crc="19c0c6c4" sha1="051999462b8a589b0b1fdfb8698a1ffdf204c880" offset="0x0000"  status="baddump" />
1737         </dataarea>
1738      </part>
1739      <part name="cass3" interface="jupace_cass">
1740      <feature name="part_id" value="Tape 3 (Lprint)"/>
1741         <dataarea name="cass" size="455">
1742            <rom name="utilities (1985)(boldfield computing)(file 03 of 15)(gb)[lprint][19k].tap" size="455" crc="5183a818" sha1="f96f2642b40db6d3d4fa58428be1b3c2420b6c93" offset="0x0000"  status="baddump" />
1743         </dataarea>
1744      </part>
1745      <part name="cass4" interface="jupace_cass">
1746      <feature name="part_id" value="Tape 4 (Invert)"/>
1747         <dataarea name="cass" size="153">
1748            <rom name="utilities (1985)(boldfield computing)(file 04 of 15)(gb)[invert][19k].tap" size="153" crc="15d5e373" sha1="39c426fcae2f9860669dfee38bbcf81dea93c8cb" offset="0x0000"  status="baddump" />
1749         </dataarea>
1750      </part>
1751      <!-- file 5 missing -->
1752      <part name="cass5" interface="jupace_cass">
1753      <feature name="part_id" value="Tape 6 (Wordace)"/>
1754         <dataarea name="cass" size="16448">
1755            <rom name="utilities (1985)(boldfield computing)(file 06 of 15)(gb)[wordace][19k].tap" size="16448" crc="4c67cba4" sha1="6f389762ee0c1b3c9f0c1702c02e7fb9b4b24ff2" offset="0x0000"  status="baddump" />
1756         </dataarea>
1757      </part>
1758      <part name="cass6" interface="jupace_cass">
1759      <feature name="part_id" value="Tape 7 (Printline)"/>
1760         <dataarea name="cass" size="396">
1761            <rom name="utilities (1985)(boldfield computing)(file 07 of 15)(gb)[printline][19k].tap" size="396" crc="167c1b3a" sha1="1d7d48ba6be62543ec7733db522879380a4e504f" offset="0x0000"  status="baddump" />
1762         </dataarea>
1763      </part>
1764      <part name="cass7" interface="jupace_cass">
1765      <feature name="part_id" value="Tape 8 (Ace-Logo)"/>
1766         <dataarea name="cass" size="814">
1767            <rom name="utilities (1985)(boldfield computing)(file 08 of 15)(gb)[ace-logo][19k].tap" size="814" crc="f9282553" sha1="85b822b31e814e7e413bb20ea9de36e9901559c3" offset="0x0000"  status="baddump" />
1768         </dataarea>
1769      </part>
1770      <part name="cass8" interface="jupace_cass">
1771      <feature name="part_id" value="Tape 9 (Charset) [Bad]"/>
1772         <dataarea name="cass" size="183">
1773            <rom name="utilities (1985)(boldfield computing)(file 09 of 15)(gb)[b][charset][19k].tap" size="183" crc="54eb5546" sha1="145bc7913f734a977e228b953370e9dbf720e8c2" offset="0x0000" status="baddump" />
1774         </dataarea>
1775      </part>
1776      <part name="cass9" interface="jupace_cass">
1777      <feature name="part_id" value="Tape 10 (Printscan)"/>
1778         <dataarea name="cass" size="492">
1779            <rom name="utilities (1985)(boldfield computing)(file 10 of 15)(gb)[printscan][19k].tap" size="492" crc="c83f0b99" sha1="e6fb48fa2d4e983f41f832fba658b53ee459e9c7" offset="0x0000"  status="baddump" />
1780         </dataarea>
1781      </part>
1782      <part name="cass10" interface="jupace_cass">
1783      <feature name="part_id" value="Tape 11 (Lprint-42)"/>
1784         <dataarea name="cass" size="1373">
1785            <rom name="utilities (1985)(boldfield computing)(file 11 of 15)(gb)[lprint-42][19k].tap" size="1373" crc="3f174d26" sha1="e16908517b9d5277ae3070db87296cbaa2efbc72" offset="0x0000"  status="baddump" />
1786         </dataarea>
1787      </part>
1788      <part name="cass11" interface="jupace_cass">
1789      <feature name="part_id" value="Tape 12 (Centronics) [Bad]"/>
1790         <dataarea name="cass" size="152">
1791            <rom name="utilities (1985)(boldfield computing)(file 12 of 15)(gb)[b][centronics][19k].tap" size="152" crc="b5e91ad7" sha1="7fc53d76cf7b1d2987b0e633c7b3d9216e59e015" offset="0x0000" status="baddump" />
1792         </dataarea>
1793      </part>
1794      <part name="cass12" interface="jupace_cass">
1795      <feature name="part_id" value="Tape 13 (RS232)"/>
1796         <dataarea name="cass" size="961">
1797            <rom name="utilities (1985)(boldfield computing)(file 13 of 15)(gb)[rs232][19k].tap" size="961" crc="6d5bba35" sha1="9b418fc0ba1500c0db8199acede0dac318df6cb1" offset="0x0000"  status="baddump" />
1798         </dataarea>
1799      </part>
1800      <part name="cass13" interface="jupace_cass">
1801      <feature name="part_id" value="Tape 14 (Soundbox)"/>
1802         <dataarea name="cass" size="1213">
1803            <rom name="utilities (1985)(boldfield computing)(file 14 of 15)(gb)[soundbox][19k].tap" size="1213" crc="0da77372" sha1="4790110c1df9f4a8336944d288d5698b02f32d62" offset="0x0000"  status="baddump" />
1804         </dataarea>
1805      </part>
1806      <part name="cass14" interface="jupace_cass">
1807      <feature name="part_id" value="Tape 15 (Bagpipes)"/>
1808         <dataarea name="cass" size="394">
1809            <rom name="utilities (1985)(boldfield computing)(file 15 of 15)(gb)[bagpipes][19k].tap" size="394" crc="7dc04697" sha1="eb9e5386b0d7da542df53c2632ed9d86a5a29a59" offset="0x0000"  status="baddump" />
1810         </dataarea>
1811      </part>
1812   </software>
1813
1814   <software name="m_valkyr" supported="no">
1815      <description>Valkyr + Life (Prototype)</description>
1816      <year>1985</year>
1817      <publisher>Colinsoft</publisher>
1818
1819      <part name="cass1" interface="jupace_cass">
1820      <feature name="part_id" value="Tape 1 (Valkyr)"/>
1821         <dataarea name="cass" size="12855">
1822            <rom name="valkyr + life (1985)(colinsoft)(file 1 of 2)[unreleased][valkyr][16k].tap" size="12855" crc="fb1ed671" sha1="6cacdfcb7c4feb7adb1c8b36a36603d1c8bcc402" offset="0x0000" />
1823         </dataarea>
1824      </part>
1825      <part name="cass2" interface="jupace_cass">
1826      <feature name="part_id" value="Tape 2 (Life)"/>
1827         <dataarea name="cass" size="12855">
1828            <rom name="valkyr + life (1985)(colinsoft)(file 2 of 2)[unreleased][life][16k].tap" offset="0x0000" status="nodump" />
1829         </dataarea>
1830      </part>
1831   </software>
1832
1833   <software name="words" supported="no">
1834      <description>Words</description>
1835      <year>1983</year>
1836      <publisher>Popular Computing Weekly</publisher>
1837
1838      <part name="cass1" interface="jupace_cass">
1839         <dataarea name="cass" size="217">
1840            <rom name="words (1983-10-27)(popular computing weekly)(gb)[3k].tap" size="217" crc="26dde89c" sha1="7160df6c1014124467482843f8df4165a083bcab" offset="0x0000" />
1841         </dataarea>
1842      </part>
1843   </software>
1844
1845   <software name="wrd" supported="no">
1846      <description>WRD</description>
1847      <year>2006</year>
1848      <publisher>Ricardo Fernandes Lopes</publisher>
1849
1850      <part name="cass1" interface="jupace_cass">
1851         <dataarea name="cass" size="614">
1852            <rom name="wrd (2006)(lopes, ricardo fernandes)(pd)[3k].tap" size="614" crc="11dfa38f" sha1="ece1603e9e81093092aae91fcf19b7d45b9496cb" offset="0x0000" />
1853         </dataarea>
1854      </part>
1855   </software>
1856
1857   <software name="zapem" supported="no">
1858      <description>Zapem</description>
1859      <year>1983</year>
1860      <publisher>Micro Marketing</publisher>
1861
1862      <part name="cass1" interface="jupace_cass">
1863         <dataarea name="cass" size="943">
1864            <rom name="zapem (1983)(micro marketing)(gb)[3k].tap" size="943" crc="f14dcfec" sha1="8f60e73a34ec2f967caffd37e9cc6d2c44b919c8" offset="0x0000" />
1865         </dataarea>
1866      </part>
1867   </software>
1868
1869   <software name="zombies" supported="no">
1870      <description>Zombies &amp; Potholes</description>
1871      <year>1983</year>
1872      <publisher>Jupiter Cantab</publisher>
1873
1874      <part name="cass1" interface="jupace_cass">
1875         <dataarea name="cass" size="7961">
1876            <rom name="zombies &amp; potholes (1983)(jupiter cantab)(gb)[19k].tap" size="7961" crc="3a60a598" sha1="bc26562c10583be35e322dbdad666d19b7e27822" offset="0x0000" />
1877         </dataarea>
1878      </part>
1879   </software>
1880
1881   <software name="zxprint" supported="no">
1882      <description>ZX Printer Driver</description>
1883      <year>1983</year>
1884      <publisher>Remsoft</publisher>
1885
1886      <part name="cass1" interface="jupace_cass">
1887         <dataarea name="cass" size="2882">
1888            <rom name="zx printer driver (1983)(remsoft)(gb)[tape 11][3k].tap" size="2882" crc="ed237c12" sha1="76f10c96a056edc1151a24f9e87209ec379b73d5" offset="0x0000" />
1889         </dataarea>
1890      </part>
1891   </software>
1892
1893</softwarelist>
trunk/hash/m5.xml
r0r241778
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!--
5
6Carts released in Japan
7
81. Dig Dug (ディグダグ)
92. Tank Battalion (タンクバタăƒȘケン)
103. Bosconian (ボă‚čコニケン)
114. Galax (ă‚źăƒŁăƒ©ăƒƒă‚Żă‚č)
125. Power Pac (ăƒ‘ăƒŻăƒŒăƒ‘ăƒƒă‚Ż)
136. Warp Warp (ăƒŻăƒŒăƒ—&ăƒŻăƒŒăƒ—)
147. Super Cobra (ă‚čăƒŒăƒ‘ăƒŒă‚łăƒ–ăƒ©)
158. Guttang Guttong (ガッタンギットン)
169. Moon Patrol (ăƒ ăƒŒăƒłăƒ‘ăƒˆăƒ­ăƒŒăƒ«)
1710. Step Up (ă‚čテップケップ)
1811. Pooyan (ăƒ—ăƒŒăƒ€ăƒł)
1912. Heavy Boxing (ăƒ˜ăƒ“ăƒŒăƒœă‚Żă‚·ăƒłă‚°)
2013. ă‚łăƒŸă‚«ăƒ«ă‚čă‚­ăƒŒ [Fun Ski?]
2114. Real Tennis (ăƒȘă‚ąăƒ«ăƒ†ăƒ‹ă‚č)
2215. Word Maze (ăƒŻăƒŒăƒ‰ăƒĄă‚€ă‚ș)
2316. Wonder Hole (ăƒŻăƒłăƒ€ăƒŒăƒ›ăƒŒăƒ«)
2417. Apploon (ă‚ąăƒƒăƒ—ăƒ«ăƒŒăƒł)
2518. Up Up Balloon (ă‚ąăƒƒăƒ—ă‚ąăƒƒăƒ—ăƒăƒ«ăƒŒăƒł)
2619. Mappy (ăƒžăƒƒăƒ”ăƒŒ)
2720.  ??
2821. Dream Shopper (ドăƒȘăƒŒăƒ ă‚·ăƒ§ăƒƒăƒ‘ăƒŒ)
2922. Eskimon (スă‚čキヱン)
3023. Funny Mouse (ăƒ•ă‚Ąăƒ‹ăƒŒăƒžă‚Šă‚č)
3124. Jankyo (ゾャン狂)
32
33Simulation Games (probably separate series, box has red stripes!)
34
35- Fruit Search
36- Dragon Attack
37- Pit Chaser
38
39
40Super Adventure Series (cart + tape games)
41
42- Super Adventure (ă‚čăƒŒăƒ‘ăƒŒă‚ąăƒ‰ăƒ™ăƒłăƒăƒŁăƒŒ ) [cart]
43- Ooi Tasukete Kure (ăŠăƒŒă„ăŸă™ă‘ăŠăă‚Œ ) [tape]
44- Nigero Nigero Nigero (ă«ă’ă‚ă«ă’ă‚ă«ă’ă‚ ) [tape]
45
46
47Programs:
48
49- P-Editor (also available as tape)
50- M-Editor
51
52
53Learning Soft:
54
55- Mogura-Tataki Keyboard Renshu (by Stratford Soft)
56
57
58Programming Languages:
59
60 - FLAC
61 - FLAC-II
62 - BASIC-I
63 - BASIC-G
64 - BASIC-F
65 - DISK BASIC
66
67
68what about European carts?
69and why some of the dumps below have weird size?
70
71
72-->
73
74<softwarelist name="m5" description="Sord M5 cartridges">
75
76<!-- Games -->
77
78   <software name="digdug">
79      <description>Dig Dug</description>
80      <year>1982</year>
81      <publisher>Namco</publisher>
82      <info name="serial" value="1" />
83      <info name="alt_title" value="ディグダグ" />
84      <part name="cart" interface="m5_cart">
85         <dataarea name="rom" size="8192">
86            <rom name="digdug.bin" size="8192" crc="9b207054" sha1="971f7bc1b6247d17a488f6e07eabc07580219ed9" offset="00000" />
87         </dataarea>
88      </part>
89   </software>
90
91   <software name="tankbtl">
92      <description>Tank Battalion</description>
93      <year>1980</year>
94      <publisher>Namco</publisher>
95      <info name="serial" value="2" />
96      <info name="alt_title" value="タンクバタăƒȘケン" />
97      <info name="usage" value="Requires 36k RAM" />
98      <part name="cart" interface="m5_cart">
99         <dataarea name="rom" size="8192">
100            <rom name="tank battlaion (1980)(namco)(jp).bin" size="8192" crc="daa0d610" sha1="5867090fbe2584654dd2c2aaa215e69243f2f599" offset="00000" status="baddump" />
101         </dataarea>
102      </part>
103   </software>
104
105   <software name="bosco">
106      <description>Star Destroyer Bosconian</description>
107      <year>1981</year>
108      <publisher>Namco</publisher>
109      <info name="serial" value="3" />
110      <info name="alt_title" value="ボă‚čコニケン" />
111      <part name="cart" interface="m5_cart">
112         <dataarea name="rom" size="8192">
113            <rom name="bosconian.bin" size="8192" crc="8b299b7f" sha1="b26b1289fc96778d3b3f50eee5ca3963a1948dff" offset="00000" />
114         </dataarea>
115      </part>
116   </software>
117
118   <software name="galax">
119      <description>Galax</description>
120      <year>1981</year>
121      <publisher>Namco</publisher>
122      <info name="serial" value="4" />
123      <info name="alt_title" value="ă‚źăƒŁăƒ©ăƒƒă‚Żă‚č" />
124      <part name="cart" interface="m5_cart">
125         <dataarea name="rom" size="8192">
126            <rom name="galax.bin" size="8192" crc="62c26c8c" sha1="5f73e90f9b551501e6fd5b9a63cfcfaea7691821" offset="00000" />
127         </dataarea>
128      </part>
129   </software>
130
131   <software name="powerpac">
132      <description>Power Pac</description>
133      <year>1982</year>
134      <publisher>Namco</publisher>
135      <info name="serial" value="5" />
136      <info name="alt_title" value="ăƒ‘ăƒŻăƒŒăƒ‘ăƒƒă‚Ż" />
137      <part name="cart" interface="m5_cart">
138         <dataarea name="rom" size="8192">
139            <rom name="powerpac.bin" size="8192" crc="3ce70f7f" sha1="2ee74f02f0249ff7192b4f29c1a061fc4f1eb920" offset="00000" />
140         </dataarea>
141      </part>
142   </software>
143
144   <software name="warpwarp">
145      <description>Warp &amp; Warp</description>
146      <year>1981</year>
147      <publisher>Namco</publisher>
148      <info name="serial" value="6" />
149      <info name="alt_title" value="ăƒŻăƒŒăƒ—&amp;ăƒŻăƒŒăƒ—" />
150      <part name="cart" interface="m5_cart">
151         <dataarea name="rom" size="8192">
152            <rom name="warpwarp.bin" size="8192" crc="1b9e2e58" sha1="38c1721eb04188e1201c31dde2fc03963b685d69" offset="00000" />
153         </dataarea>
154      </part>
155   </software>
156
157   <software name="scobra">
158      <description>Super Cobra</description>
159      <year>1981</year>
160      <publisher>Konami</publisher>
161      <info name="serial" value="7" />
162      <info name="alt_title" value="ă‚čăƒŒăƒ‘ăƒŒă‚łăƒ–ăƒ©" />
163      <part name="cart" interface="m5_cart">
164         <dataarea name="rom" size="8192">
165            <rom name="super cobra (1981)(konami)(jp).bin" size="8192" crc="55cbd90b" sha1="d29f1d1d88a0b6738b68cf8d2406fbf1f05ba39b" offset="00000" status="baddump" />
166         </dataarea>
167      </part>
168   </software>
169
170   <software name="gutangtn">
171      <description>Guttang Gottong</description>
172      <year>1981</year>
173      <publisher>Konami</publisher>
174      <info name="serial" value="8" />
175      <info name="alt_title" value="ガッタンギットン" />
176      <info name="usage" value="Requires 36k RAM" />
177      <part name="cart" interface="m5_cart">
178         <dataarea name="rom" size="8448">
179            <rom name="guttang gottong (1981)(konami)(jp).bin" size="8448" crc="0f70fa69" sha1="4e4900f42cbc76e4e795ed32ee18b2e27246e90f" offset="00000" status="baddump" />
180         </dataarea>
181      </part>
182   </software>
183
184   <software name="mpatrol">
185      <description>Moon Patrol</description>
186      <year>1981</year>
187      <publisher>Irem</publisher>
188      <info name="serial" value="9" />
189      <info name="alt_title" value="ăƒ ăƒŒăƒłăƒ‘ăƒˆăƒ­ăƒŒăƒ«" />
190      <part name="cart" interface="m5_cart">
191         <dataarea name="rom" size="8192">
192            <rom name="moonpatrol.bin" size="8192" crc="1324c6c0" sha1="fa61c047b0051efa23a6607e4c1f7726ff683caf" offset="00000" />
193         </dataarea>
194      </part>
195   </software>
196
197   <software name="stepupj" cloneof="stepup">
198      <description>Step Up (Jpn)</description>
199      <year>1983</year>
200      <publisher>Takara</publisher>
201      <info name="serial" value="10" />
202      <info name="alt_title" value="ă‚čテップケップ" />
203      <part name="cart" interface="m5_cart">
204         <dataarea name="rom" size="8192">
205            <rom name="stepup_jp.bin" size="8192" crc="db688ff8" sha1="abce8c52bcc73dd6a1b532b04bd7b1110d6ff4e9" offset="00000" />
206         </dataarea>
207      </part>
208   </software>
209
210   <software name="stepup">
211      <description>Step Up (Euro)</description>
212      <year>1983</year>
213      <publisher>Takara</publisher>
214      <part name="cart" interface="m5_cart">
215         <dataarea name="rom" size="8192">
216            <rom name="stepup_eu.bin" size="8192" crc="942cc7e8" sha1="9f61df71b6080c8ef5085b659179a10e2777a957" offset="00000" />
217         </dataarea>
218      </part>
219   </software>
220
221   <software name="pooyan">
222      <description>Pooyan</description>
223      <year>1982</year>
224      <publisher>Konami</publisher>
225      <info name="serial" value="11" />
226      <info name="alt_title" value="ăƒ—ăƒŒăƒ€ăƒł" />
227      <part name="cart" interface="m5_cart">
228         <dataarea name="rom" size="8192">
229            <rom name="pooyan.bin" size="8192" crc="91ba5073" sha1="b659b0f029927c36287720654fb538e53a2fcb76" offset="00000" />
230         </dataarea>
231      </part>
232   </software>
233
234   <software name="pooyana" cloneof="pooyan">
235      <description>Pooyan (Alt)</description>
236      <year>1982</year>
237      <publisher>Konami</publisher>
238      <info name="serial" value="11" />
239      <info name="alt_title" value="ăƒ—ăƒŒăƒ€ăƒł" />
240      <part name="cart" interface="m5_cart">
241         <dataarea name="rom" size="8192">
242            <rom name="pooyan (1982)(konami)(jp).bin" size="8192" crc="ded8b4f4" sha1="4c9e58e52d336b4c01a24e3ca2e62fb7757407fd" offset="00000" status="baddump" />
243         </dataarea>
244      </part>
245   </software>
246
247   <software name="heavybox">
248      <description>Heavy Boxing</description>
249      <year>1983</year>
250      <publisher>Takara</publisher>
251      <info name="serial" value="12" />
252      <info name="alt_title" value="ăƒ˜ăƒ“ăƒŒăƒœă‚Żă‚·ăƒłă‚°" />
253      <part name="cart" interface="m5_cart">
254         <dataarea name="rom" size="8192">
255            <rom name="heavy boxing (1983)(takara)(jp).bin" size="8192" crc="19540dce" sha1="388838ed501bcc3a9fd18e32488f13a6ce6a0689" offset="00000" status="baddump" />
256         </dataarea>
257      </part>
258   </software>
259
260   <software name="rtennis">
261      <description>Real Tennis</description>
262      <year>1983</year>
263      <publisher>Takara</publisher>
264      <info name="serial" value="14" />
265      <info name="alt_title" value="ăƒȘă‚ąăƒ«ăƒ†ăƒ‹ă‚č" />
266      <part name="cart" interface="m5_cart">
267         <dataarea name="rom" size="8192">
268            <rom name="real tennis (1983)(takara)(jp).bin" size="8192" crc="ed80d6c9" sha1="03f3385b360c3573edab1fca53f82b4d6a4f8736" offset="00000" status="baddump" />
269         </dataarea>
270      </part>
271   </software>
272
273   <software name="wordmaze">
274      <description>Word Maze</description>
275      <year>1983</year>
276      <publisher>Sord</publisher>
277      <info name="serial" value="15" />
278      <info name="alt_title" value="ăƒŻăƒŒăƒ‰ăƒĄă‚€ă‚ș" />
279      <part name="cart" interface="m5_cart">
280         <dataarea name="rom" size="8192">
281            <rom name="word maze (19xx)(sord)(jp).bin" size="8192" crc="fda88e0d" sha1="a0fbe727bfca773d3cc193eb7a9c77e7b418b0a2" offset="00000" status="baddump" />
282         </dataarea>
283      </part>
284   </software>
285
286   <software name="wondhole">
287      <description>Wonder Hole</description>
288      <year>1982</year>
289      <publisher>Irem</publisher>
290      <info name="serial" value="16" />
291      <info name="alt_title" value="ăƒŻăƒłăƒ€ăƒŒăƒ›ăƒŒăƒ«" />
292      <info name="usage" value="Requires 36k RAM" />
293      <part name="cart" interface="m5_cart">
294         <dataarea name="rom" size="8320">
295            <rom name="wonder hole (1982)(irem)(jp).bin" size="8320" crc="aba2cece" sha1="bcb7442c6d320eb166e224c3ac0f50514906ad4c" offset="00000" status="baddump" />
296         </dataarea>
297      </part>
298   </software>
299
300   <software name="apploon">
301      <description>Apploon</description>
302      <year>1983</year>
303      <publisher>Takara</publisher>
304      <info name="serial" value="17" />
305      <info name="alt_title" value="ă‚ąăƒƒăƒ—ăƒ«ăƒŒăƒł" />
306      <part name="cart" interface="m5_cart">
307         <dataarea name="rom" size="8192">
308            <rom name="apploon.bin" size="8192" crc="558cf858" sha1="743906ecab6439766fe374ccdf64b9c2acecbf97" offset="00000" />
309         </dataarea>
310      </part>
311   </software>
312
313   <software name="upupball" supported="no">
314      <description>Up Up Balloon</description>
315      <year>1983</year>
316      <publisher>Takara ~ Monkey Punch</publisher>
317      <info name="serial" value="18" />
318      <info name="alt_title" value="ă‚ąăƒƒăƒ—ă‚ąăƒƒăƒ—ăƒăƒ«ăƒŒăƒł" />
319      <part name="cart" interface="m5_cart">
320         <dataarea name="rom" size="8320">
321            <rom name="up up balloon (1983)(takara - monkey punch)(jp).bin" size="8320" crc="68c85890" sha1="0c94d2d55a6a6e66531137e124f2e0a3a176b252" offset="00000" status="baddump" />
322         </dataarea>
323      </part>
324   </software>
325
326   <software name="mappy">
327      <description>Mappy</description>
328      <year>1983</year>
329      <publisher>Namco</publisher>
330      <info name="serial" value="19" />
331      <info name="alt_title" value="ăƒžăƒƒăƒ”ăƒŒ" />
332      <part name="cart" interface="m5_cart">
333         <dataarea name="rom" size="8192">
334            <rom name="mappy.bin" size="8192" crc="b83f6d83" sha1="c94c4def1a64fade08179b08b1d6f6178ff56a3f" offset="00000" />
335         </dataarea>
336      </part>
337   </software>
338
339   <software name="eskimon">
340      <description>Eskimon</description>
341      <year>1984</year>
342      <publisher>Takara</publisher>
343      <info name="serial" value="22" />
344      <info name="alt_title" value="スă‚čキヱン" />
345      <part name="cart" interface="m5_cart">
346         <dataarea name="rom" size="8192">
347            <rom name="eskimon (1984)(takara)(jp).bin" size="8192" crc="96931021" sha1="115eee645e5213c16ad4a27bbeed5e2f3fa4be22" offset="00000" status="baddump" />
348         </dataarea>
349      </part>
350   </software>
351
352   <software name="funnym">
353      <description>Funny Mouse</description>
354      <year>1983</year>
355      <publisher>Takara</publisher>
356      <info name="serial" value="23" />
357      <info name="alt_title" value="ăƒ•ă‚Ąăƒ‹ăƒŒăƒžă‚Šă‚č" />
358      <part name="cart" interface="m5_cart">
359         <dataarea name="rom" size="8192">
360            <rom name="funny mouse (1983)(takara)(jp).bin" size="8192" crc="94145074" sha1="43c2a1a5959ab8057c7d149472512a0c7996c798" offset="00000" status="baddump" />
361         </dataarea>
362      </part>
363   </software>
364
365   <software name="jongkyo">
366      <description>Jong Kyo</description>
367      <year>1983?</year>
368      <publisher>Hudson Soft</publisher>
369      <info name="serial" value="24" />
370      <info name="alt_title" value="ゾャン狂" />
371      <part name="cart" interface="m5_cart">
372         <dataarea name="rom" size="16384">
373            <rom name="mahjong.bin" size="16384" crc="b32c9e08" sha1="0b24213ef49a6ad04bc8ecff616b94ccf0f7a8aa" offset="00000" />
374         </dataarea>
375      </part>
376   </software>
377
378
379   <software name="adidas">
380      <description>Adidas Lucky Shoot</description>
381      <year>198?</year>
382      <publisher>&lt;unknown&gt;</publisher>
383      <info name="alt_title" value="Adidas ăƒ©ăƒƒă‚­ăƒŒ ă‚·ăƒ„ăƒŒăƒˆ" />
384      <part name="cart" interface="m5_cart">
385         <dataarea name="rom" size="8192">
386            <rom name="adidas.bin" size="8192" crc="d6ef9cae" sha1="80314f4351b9c0ebeb48f7757694717950d5a9b0" offset="00000" />
387         </dataarea>
388      </part>
389   </software>
390
391   <software name="drgnatck">
392      <description>Dragon Attack</description>
393      <year>1983</year>
394      <publisher>Takara</publisher>
395      <part name="cart" interface="m5_cart">
396         <dataarea name="rom" size="4096">
397            <rom name="dragon attack (1983)(takara)(jp).bin" size="4096" crc="5862d06c" sha1="f2707ad6dd564df01e7f81a21a00842e17cd49a4" offset="00000" status="baddump" />
398         </dataarea>
399      </part>
400   </software>
401
402   <software name="fruitsrc">
403      <description>Fruit Search</description>
404      <year>1983</year>
405      <publisher>Takara</publisher>
406      <part name="cart" interface="m5_cart">
407         <dataarea name="rom" size="4096">
408            <rom name="fruit search (1983)(takara)(jp).bin" size="4096" crc="333ac50f" sha1="a838fbf0bc4513d3b6bcc3165f1eac33ca27d6fa" offset="00000" status="baddump" />
409         </dataarea>
410      </part>
411   </software>
412
413
414
415
416
417<!-- Program + Languages -->
418   <software name="basicf">
419      <description>BASIC-F</description>
420      <year>198?</year>
421      <publisher>Sord</publisher>
422      <part name="cart" interface="m5_cart">
423         <dataarea name="rom" size="20480">
424            <rom name="basic-f (198x)(sord)(jp).bin" size="20480" crc="47be051f" sha1="9942b8f05a441b5dee7ab31ec5b8a643f7e268b8" offset="00000" status="baddump" />
425         </dataarea>
426      </part>
427   </software>
428
429   <software name="basicg">
430      <description>BASIC-G</description>
431      <year>198?</year>
432      <publisher>Sord</publisher>
433      <part name="cart" interface="m5_cart">
434         <dataarea name="rom" size="16384">
435            <rom name="basic-g (198x)(sord)(jp).bin" size="16384" crc="107b5ddc" sha1="071fa84c7b10d9d7841c504564825609ebf66140" offset="00000" status="baddump" />
436         </dataarea>
437      </part>
438   </software>
439
440   <software name="basici">
441      <description>BASIC-I</description>
442      <year>198?</year>
443      <publisher>Sord</publisher>
444      <part name="cart" interface="m5_cart">
445         <dataarea name="rom" size="8192">
446            <rom name="basic-i (198x)(sord)(jp).bin" size="8192" crc="9a98e6ce" sha1="d11f7623919ee593e275e9f00f8a4acf7aed3cf5" offset="00000" status="baddump" />
447         </dataarea>
448      </part>
449   </software>
450
451   <software name="falc">
452      <description>FALC</description>
453      <year>198?</year>
454      <publisher>Sord</publisher>
455      <info name="usage" value="Requires 36k RAM" />
456      <part name="cart" interface="m5_cart">
457         <dataarea name="rom" size="16384">
458            <rom name="falc (198x)(sord)(jp).bin" size="16384" crc="78037f97" sha1="4cd917388a626d38dd8b16834c2e610d0ba6d505" offset="00000" status="baddump" />
459         </dataarea>
460      </part>
461   </software>
462
463   <software name="peditor">
464      <description>P-Editor</description>
465      <year>198?</year>
466      <publisher>Sord</publisher>
467      <part name="cart" interface="m5_cart">
468         <dataarea name="rom" size="16384">
469            <rom name="zzz-unk-pdesigne.bin" size="16384" crc="af987f7b" sha1="3a4cffc8d81a384f8bb2dfebf5e02cda1f0c7e21" offset="00000" status="baddump" />
470         </dataarea>
471      </part>
472   </software>
473
474<!-- Unidentified items -->
475   <software name="basicw">
476      <!-- is this legit?!? might it be Disk BASIC? -->
477      <description>BASIC-W</description>
478      <year>198?</year>
479      <publisher>Sord?</publisher>
480      <part name="cart" interface="m5_cart">
481         <dataarea name="rom" size="20480">
482            <rom name="basic-w (198x)(sord)(jp).bin" size="20480" crc="2b1087cf" sha1="aa8d7c6c405e1360f074590abdc3d82df07cb564" offset="00000" status="baddump" />
483         </dataarea>
484      </part>
485   </software>
486
487   <software name="m5term">
488      <!-- is this legit?!? might it be M-Editor? -->
489      <description>M5 Terminal</description>
490      <year>19??</year>
491      <publisher>&lt;unknown&gt;</publisher>
492      <part name="cart" interface="m5_cart">
493         <dataarea name="rom" size="7168">
494            <rom name="m5 terminal (19xx)(-).bin" size="7168" crc="2b73c483" sha1="53c093d4c3c5ba990bf8673963f9ff529e99a252" offset="00000" status="baddump" />
495         </dataarea>
496      </part>
497   </software>
498
499   <software name="zacbanic">
500      <description>Zac Banic</description>
501      <year>19??</year>
502      <publisher>&lt;unknown&gt;</publisher>
503      <part name="cart" interface="m5_cart">
504         <dataarea name="rom" size="4400">
505            <rom name="zac banic (19xx)(-).bin" size="4400" crc="fd421eea" sha1="6c3d5c15817617508de5f994c0a980ff6c6ca303" offset="00000" status="baddump" />
506         </dataarea>
507      </part>
508   </software>
509
510   <software name="baseball">
511      <description>Baseball</description>
512      <year>19??</year>
513      <publisher>&lt;unknown&gt;</publisher>
514      <info name="usage" value="Requires 36k RAM" />
515      <part name="cart" interface="m5_cart">
516         <dataarea name="rom" size="10904">
517            <rom name="baseball (19xx)(-).bin" size="10904" crc="46e94dae" sha1="56d11bb9e4e8431ff4f6dfa592b096dd613084c3" offset="00000" status="baddump" />
518         </dataarea>
519      </part>
520   </software>
521
522   <software name="drops">
523      <description>Drops</description>
524      <year>1986</year>
525      <publisher>SPC</publisher>
526      <info name="usage" value="Requires 36k RAM" />
527      <part name="cart" interface="m5_cart">
528         <dataarea name="rom" size="6176">
529            <rom name="drops (1986)(spc)(jp).bin" size="6176" crc="fa321348" sha1="e9a44e12eed9d51cdb40ce4b6f1cb19a1ebed35d" offset="00000" status="baddump" />
530         </dataarea>
531      </part>
532   </software>
533
534   <software name="jumpjack">
535      <description>Jumping Jack</description>
536      <year>1986</year>
537      <publisher>SPC</publisher>
538      <info name="usage" value="Requires 36k RAM" />
539      <part name="cart" interface="m5_cart">
540         <dataarea name="rom" size="5920">
541            <rom name="jumping jack (1986)(spc)(jp).bin" size="5920" crc="49030973" sha1="c8716276fe6c4b0808078086f505efce1137afc9" offset="00000" status="baddump" />
542         </dataarea>
543      </part>
544   </software>
545
546   <software name="mchess">
547      <description>Masterchess</description>
548      <year>19??</year>
549      <publisher>&lt;unknown&gt;</publisher>
550      <info name="usage" value="Requires 36k RAM" />
551      <part name="cart" interface="m5_cart">
552         <dataarea name="rom" size="12288">
553            <rom name="masterchess (19xx)(-).bin" size="12288" crc="c10a6e96" sha1="5dd24aae17c3a293ae91ef5086c1c4f3e59263ed" offset="00000" status="baddump" />
554         </dataarea>
555      </part>
556   </software>
557
558   <software name="reversi">
559      <description>Reversi</description>
560      <year>19??</year>
561      <publisher>&lt;unknown&gt;</publisher>
562      <info name="usage" value="Requires 36k RAM" />
563      <part name="cart" interface="m5_cart">
564         <dataarea name="rom" size="6392">
565            <rom name="reversi (19xx)(games of skill).bin" size="6392" crc="ca2cd257" sha1="a048a1055d175ace09155e50da0387986e150f92" offset="00000" status="baddump" />
566         </dataarea>
567      </part>
568   </software>
569
570<!-- these come from TOSEC: they do not work and it's not clear where they
571come from... they might be eventually removed -->
572
573<!-- the first contains Czech text strings so it might be a real Czech cart,
574but we need more info -->
575   <software name="unk_maze" supported="no">
576      <description>Unknown CSMAZE</description>
577      <year>19??</year>
578      <publisher>&lt;unknown&gt;</publisher>
579      <part name="cart" interface="m5_cart">
580         <dataarea name="rom" size="8448">
581            <rom name="zzz-unk-csmaze.bin" size="8448" crc="b7c9705b" sha1="f07f531eef82fd5b0d914c176d52b38814c36e3b" offset="00000" status="baddump" />
582         </dataarea>
583      </part>
584   </software>
585
586<!-- This displays garbage charset when launched with ramsize 36k or 68k -->
587   <software name="unk_intr" supported="no">
588      <description>Unknown Intruder</description>
589      <year>19??</year>
590      <publisher>&lt;unknown&gt;</publisher>
591      <info name="usage" value="Requires 36k or more RAM?" />
592      <part name="cart" interface="m5_cart">
593         <dataarea name="rom" size="5376">
594            <rom name="zzz-unk-intruder.bin" size="5376" crc="12859c5d" sha1="fd8fc752be6afcbf016f8a33e21ad9e1b7c50c48" offset="00000" status="baddump" />
595         </dataarea>
596      </part>
597   </software>
598
599</softwarelist>
trunk/hash/m5_cart.xml
r241777r241778
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!--
5
6Carts released in Japan
7
81. Dig Dug (ディグダグ)
92. Tank Battalion (タンクバタăƒȘケン)
103. Bosconian (ボă‚čコニケン)
114. Galax (ă‚źăƒŁăƒ©ăƒƒă‚Żă‚č)
125. Power Pac (ăƒ‘ăƒŻăƒŒăƒ‘ăƒƒă‚Ż)
136. Warp Warp (ăƒŻăƒŒăƒ—&ăƒŻăƒŒăƒ—)
147. Super Cobra (ă‚čăƒŒăƒ‘ăƒŒă‚łăƒ–ăƒ©)
158. Guttang Guttong (ガッタンギットン)
169. Moon Patrol (ăƒ ăƒŒăƒłăƒ‘ăƒˆăƒ­ăƒŒăƒ«)
1710. Step Up (ă‚čテップケップ)
1811. Pooyan (ăƒ—ăƒŒăƒ€ăƒł)
1912. Heavy Boxing (ăƒ˜ăƒ“ăƒŒăƒœă‚Żă‚·ăƒłă‚°)
2013. ă‚łăƒŸă‚«ăƒ«ă‚čă‚­ăƒŒ [Fun Ski?]
2114. Real Tennis (ăƒȘă‚ąăƒ«ăƒ†ăƒ‹ă‚č)
2215. Word Maze (ăƒŻăƒŒăƒ‰ăƒĄă‚€ă‚ș)
2316. Wonder Hole (ăƒŻăƒłăƒ€ăƒŒăƒ›ăƒŒăƒ«)
2417. Apploon (ă‚ąăƒƒăƒ—ăƒ«ăƒŒăƒł)
2518. Up Up Balloon (ă‚ąăƒƒăƒ—ă‚ąăƒƒăƒ—ăƒăƒ«ăƒŒăƒł)
2619. Mappy (ăƒžăƒƒăƒ”ăƒŒ)
2720.  ??
2821. Dream Shopper (ドăƒȘăƒŒăƒ ă‚·ăƒ§ăƒƒăƒ‘ăƒŒ)
2922. Eskimon (スă‚čキヱン)
3023. Funny Mouse (ăƒ•ă‚Ąăƒ‹ăƒŒăƒžă‚Šă‚č)
3124. Jankyo (ゾャン狂)
32
33Simulation Games (probably separate series, box has red stripes!)
34
35- Fruit Search
36- Dragon Attack
37- Pit Chaser
38
39
40Super Adventure Series (cart + tape games)
41
42- Super Adventure (ă‚čăƒŒăƒ‘ăƒŒă‚ąăƒ‰ăƒ™ăƒłăƒăƒŁăƒŒ ) [cart]
43- Ooi Tasukete Kure (ăŠăƒŒă„ăŸă™ă‘ăŠăă‚Œ ) [tape]
44- Nigero Nigero Nigero (ă«ă’ă‚ă«ă’ă‚ă«ă’ă‚ ) [tape]
45
46
47Programs:
48
49- P-Editor (also available as tape)
50- M-Editor
51
52
53Learning Soft:
54
55- Mogura-Tataki Keyboard Renshu (by Stratford Soft)
56
57
58Programming Languages:
59
60 - FLAC
61 - FLAC-II
62 - BASIC-I
63 - BASIC-G
64 - BASIC-F
65 - DISK BASIC
66
67
68what about European carts?
69and why some of the dumps below have weird size?
70
71
72-->
73
74<softwarelist name="m5_cart" description="Sord M5 cartridges">
75
76<!-- Games -->
77
78   <software name="digdug">
79      <description>Dig Dug</description>
80      <year>1982</year>
81      <publisher>Namco</publisher>
82      <info name="serial" value="1" />
83      <info name="alt_title" value="ディグダグ" />
84      <part name="cart" interface="m5_cart">
85         <dataarea name="rom" size="8192">
86            <rom name="digdug.bin" size="8192" crc="9b207054" sha1="971f7bc1b6247d17a488f6e07eabc07580219ed9" offset="00000" />
87         </dataarea>
88      </part>
89   </software>
90
91   <software name="tankbtl">
92      <description>Tank Battalion</description>
93      <year>1980</year>
94      <publisher>Namco</publisher>
95      <info name="serial" value="2" />
96      <info name="alt_title" value="タンクバタăƒȘケン" />
97      <info name="usage" value="Requires 36k RAM" />
98      <part name="cart" interface="m5_cart">
99         <dataarea name="rom" size="8192">
100            <rom name="tank battlaion (1980)(namco)(jp).bin" size="8192" crc="daa0d610" sha1="5867090fbe2584654dd2c2aaa215e69243f2f599" offset="00000" status="baddump" />
101         </dataarea>
102      </part>
103   </software>
104
105   <software name="bosco">
106      <description>Star Destroyer Bosconian</description>
107      <year>1981</year>
108      <publisher>Namco</publisher>
109      <info name="serial" value="3" />
110      <info name="alt_title" value="ボă‚čコニケン" />
111      <part name="cart" interface="m5_cart">
112         <dataarea name="rom" size="8192">
113            <rom name="bosconian.bin" size="8192" crc="8b299b7f" sha1="b26b1289fc96778d3b3f50eee5ca3963a1948dff" offset="00000" />
114         </dataarea>
115      </part>
116   </software>
117
118   <software name="galax">
119      <description>Galax</description>
120      <year>1981</year>
121      <publisher>Namco</publisher>
122      <info name="serial" value="4" />
123      <info name="alt_title" value="ă‚źăƒŁăƒ©ăƒƒă‚Żă‚č" />
124      <part name="cart" interface="m5_cart">
125         <dataarea name="rom" size="8192">
126            <rom name="galax.bin" size="8192" crc="62c26c8c" sha1="5f73e90f9b551501e6fd5b9a63cfcfaea7691821" offset="00000" />
127         </dataarea>
128      </part>
129   </software>
130
131   <software name="powerpac">
132      <description>Power Pac</description>
133      <year>1982</year>
134      <publisher>Namco</publisher>
135      <info name="serial" value="5" />
136      <info name="alt_title" value="ăƒ‘ăƒŻăƒŒăƒ‘ăƒƒă‚Ż" />
137      <part name="cart" interface="m5_cart">
138         <dataarea name="rom" size="8192">
139            <rom name="powerpac.bin" size="8192" crc="3ce70f7f" sha1="2ee74f02f0249ff7192b4f29c1a061fc4f1eb920" offset="00000" />
140         </dataarea>
141      </part>
142   </software>
143
144   <software name="warpwarp">
145      <description>Warp &amp; Warp</description>
146      <year>1981</year>
147      <publisher>Namco</publisher>
148      <info name="serial" value="6" />
149      <info name="alt_title" value="ăƒŻăƒŒăƒ—&amp;ăƒŻăƒŒăƒ—" />
150      <part name="cart" interface="m5_cart">
151         <dataarea name="rom" size="8192">
152            <rom name="warpwarp.bin" size="8192" crc="1b9e2e58" sha1="38c1721eb04188e1201c31dde2fc03963b685d69" offset="00000" />
153         </dataarea>
154      </part>
155   </software>
156
157   <software name="scobra">
158      <description>Super Cobra</description>
159      <year>1981</year>
160      <publisher>Konami</publisher>
161      <info name="serial" value="7" />
162      <info name="alt_title" value="ă‚čăƒŒăƒ‘ăƒŒă‚łăƒ–ăƒ©" />
163      <part name="cart" interface="m5_cart">
164         <dataarea name="rom" size="8192">
165            <rom name="super cobra (1981)(konami)(jp).bin" size="8192" crc="55cbd90b" sha1="d29f1d1d88a0b6738b68cf8d2406fbf1f05ba39b" offset="00000" status="baddump" />
166         </dataarea>
167      </part>
168   </software>
169
170   <software name="gutangtn">
171      <description>Guttang Gottong</description>
172      <year>1981</year>
173      <publisher>Konami</publisher>
174      <info name="serial" value="8" />
175      <info name="alt_title" value="ガッタンギットン" />
176      <info name="usage" value="Requires 36k RAM" />
177      <part name="cart" interface="m5_cart">
178         <dataarea name="rom" size="8448">
179            <rom name="guttang gottong (1981)(konami)(jp).bin" size="8448" crc="0f70fa69" sha1="4e4900f42cbc76e4e795ed32ee18b2e27246e90f" offset="00000" status="baddump" />
180         </dataarea>
181      </part>
182   </software>
183
184   <software name="mpatrol">
185      <description>Moon Patrol</description>
186      <year>1981</year>
187      <publisher>Irem</publisher>
188      <info name="serial" value="9" />
189      <info name="alt_title" value="ăƒ ăƒŒăƒłăƒ‘ăƒˆăƒ­ăƒŒăƒ«" />
190      <part name="cart" interface="m5_cart">
191         <dataarea name="rom" size="8192">
192            <rom name="moonpatrol.bin" size="8192" crc="1324c6c0" sha1="fa61c047b0051efa23a6607e4c1f7726ff683caf" offset="00000" />
193         </dataarea>
194      </part>
195   </software>
196
197   <software name="stepupj" cloneof="stepup">
198      <description>Step Up (Jpn)</description>
199      <year>1983</year>
200      <publisher>Takara</publisher>
201      <info name="serial" value="10" />
202      <info name="alt_title" value="ă‚čテップケップ" />
203      <part name="cart" interface="m5_cart">
204         <dataarea name="rom" size="8192">
205            <rom name="stepup_jp.bin" size="8192" crc="db688ff8" sha1="abce8c52bcc73dd6a1b532b04bd7b1110d6ff4e9" offset="00000" />
206         </dataarea>
207      </part>
208   </software>
209
210   <software name="stepup">
211      <description>Step Up (Euro)</description>
212      <year>1983</year>
213      <publisher>Takara</publisher>
214      <part name="cart" interface="m5_cart">
215         <dataarea name="rom" size="8192">
216            <rom name="stepup_eu.bin" size="8192" crc="942cc7e8" sha1="9f61df71b6080c8ef5085b659179a10e2777a957" offset="00000" />
217         </dataarea>
218      </part>
219   </software>
220
221   <software name="pooyan">
222      <description>Pooyan</description>
223      <year>1982</year>
224      <publisher>Konami</publisher>
225      <info name="serial" value="11" />
226      <info name="alt_title" value="ăƒ—ăƒŒăƒ€ăƒł" />
227      <part name="cart" interface="m5_cart">
228         <dataarea name="rom" size="8192">
229            <rom name="pooyan.bin" size="8192" crc="91ba5073" sha1="b659b0f029927c36287720654fb538e53a2fcb76" offset="00000" />
230         </dataarea>
231      </part>
232   </software>
233
234   <software name="pooyana" cloneof="pooyan">
235      <description>Pooyan (Alt)</description>
236      <year>1982</year>
237      <publisher>Konami</publisher>
238      <info name="serial" value="11" />
239      <info name="alt_title" value="ăƒ—ăƒŒăƒ€ăƒł" />
240      <part name="cart" interface="m5_cart">
241         <dataarea name="rom" size="8192">
242            <rom name="pooyan (1982)(konami)(jp).bin" size="8192" crc="ded8b4f4" sha1="4c9e58e52d336b4c01a24e3ca2e62fb7757407fd" offset="00000" status="baddump" />
243         </dataarea>
244      </part>
245   </software>
246
247   <software name="heavybox">
248      <description>Heavy Boxing</description>
249      <year>1983</year>
250      <publisher>Takara</publisher>
251      <info name="serial" value="12" />
252      <info name="alt_title" value="ăƒ˜ăƒ“ăƒŒăƒœă‚Żă‚·ăƒłă‚°" />
253      <part name="cart" interface="m5_cart">
254         <dataarea name="rom" size="8192">
255            <rom name="heavy boxing (1983)(takara)(jp).bin" size="8192" crc="19540dce" sha1="388838ed501bcc3a9fd18e32488f13a6ce6a0689" offset="00000" status="baddump" />
256         </dataarea>
257      </part>
258   </software>
259
260   <software name="rtennis">
261      <description>Real Tennis</description>
262      <year>1983</year>
263      <publisher>Takara</publisher>
264      <info name="serial" value="14" />
265      <info name="alt_title" value="ăƒȘă‚ąăƒ«ăƒ†ăƒ‹ă‚č" />
266      <part name="cart" interface="m5_cart">
267         <dataarea name="rom" size="8192">
268            <rom name="real tennis (1983)(takara)(jp).bin" size="8192" crc="ed80d6c9" sha1="03f3385b360c3573edab1fca53f82b4d6a4f8736" offset="00000" status="baddump" />
269         </dataarea>
270      </part>
271   </software>
272
273   <software name="wordmaze">
274      <description>Word Maze</description>
275      <year>1983</year>
276      <publisher>Sord</publisher>
277      <info name="serial" value="15" />
278      <info name="alt_title" value="ăƒŻăƒŒăƒ‰ăƒĄă‚€ă‚ș" />
279      <part name="cart" interface="m5_cart">
280         <dataarea name="rom" size="8192">
281            <rom name="word maze (19xx)(sord)(jp).bin" size="8192" crc="fda88e0d" sha1="a0fbe727bfca773d3cc193eb7a9c77e7b418b0a2" offset="00000" status="baddump" />
282         </dataarea>
283      </part>
284   </software>
285
286   <software name="wondhole">
287      <description>Wonder Hole</description>
288      <year>1982</year>
289      <publisher>Irem</publisher>
290      <info name="serial" value="16" />
291      <info name="alt_title" value="ăƒŻăƒłăƒ€ăƒŒăƒ›ăƒŒăƒ«" />
292      <info name="usage" value="Requires 36k RAM" />
293      <part name="cart" interface="m5_cart">
294         <dataarea name="rom" size="8320">
295            <rom name="wonder hole (1982)(irem)(jp).bin" size="8320" crc="aba2cece" sha1="bcb7442c6d320eb166e224c3ac0f50514906ad4c" offset="00000" status="baddump" />
296         </dataarea>
297      </part>
298   </software>
299
300   <software name="apploon">
301      <description>Apploon</description>
302      <year>1983</year>
303      <publisher>Takara</publisher>
304      <info name="serial" value="17" />
305      <info name="alt_title" value="ă‚ąăƒƒăƒ—ăƒ«ăƒŒăƒł" />
306      <part name="cart" interface="m5_cart">
307         <dataarea name="rom" size="8192">
308            <rom name="apploon.bin" size="8192" crc="558cf858" sha1="743906ecab6439766fe374ccdf64b9c2acecbf97" offset="00000" />
309         </dataarea>
310      </part>
311   </software>
312
313   <software name="upupball" supported="no">
314      <description>Up Up Balloon</description>
315      <year>1983</year>
316      <publisher>Takara ~ Monkey Punch</publisher>
317      <info name="serial" value="18" />
318      <info name="alt_title" value="ă‚ąăƒƒăƒ—ă‚ąăƒƒăƒ—ăƒăƒ«ăƒŒăƒł" />
319      <part name="cart" interface="m5_cart">
320         <dataarea name="rom" size="8320">
321            <rom name="up up balloon (1983)(takara - monkey punch)(jp).bin" size="8320" crc="68c85890" sha1="0c94d2d55a6a6e66531137e124f2e0a3a176b252" offset="00000" status="baddump" />
322         </dataarea>
323      </part>
324   </software>
325
326   <software name="mappy">
327      <description>Mappy</description>
328      <year>1983</year>
329      <publisher>Namco</publisher>
330      <info name="serial" value="19" />
331      <info name="alt_title" value="ăƒžăƒƒăƒ”ăƒŒ" />
332      <part name="cart" interface="m5_cart">
333         <dataarea name="rom" size="8192">
334            <rom name="mappy.bin" size="8192" crc="b83f6d83" sha1="c94c4def1a64fade08179b08b1d6f6178ff56a3f" offset="00000" />
335         </dataarea>
336      </part>
337   </software>
338
339   <software name="eskimon">
340      <description>Eskimon</description>
341      <year>1984</year>
342      <publisher>Takara</publisher>
343      <info name="serial" value="22" />
344      <info name="alt_title" value="スă‚čキヱン" />
345      <part name="cart" interface="m5_cart">
346         <dataarea name="rom" size="8192">
347            <rom name="eskimon (1984)(takara)(jp).bin" size="8192" crc="96931021" sha1="115eee645e5213c16ad4a27bbeed5e2f3fa4be22" offset="00000" status="baddump" />
348         </dataarea>
349      </part>
350   </software>
351
352   <software name="funnym">
353      <description>Funny Mouse</description>
354      <year>1983</year>
355      <publisher>Takara</publisher>
356      <info name="serial" value="23" />
357      <info name="alt_title" value="ăƒ•ă‚Ąăƒ‹ăƒŒăƒžă‚Šă‚č" />
358      <part name="cart" interface="m5_cart">
359         <dataarea name="rom" size="8192">
360            <rom name="funny mouse (1983)(takara)(jp).bin" size="8192" crc="94145074" sha1="43c2a1a5959ab8057c7d149472512a0c7996c798" offset="00000" status="baddump" />
361         </dataarea>
362      </part>
363   </software>
364
365   <software name="jongkyo">
366      <description>Jong Kyo</description>
367      <year>1983?</year>
368      <publisher>Hudson Soft</publisher>
369      <info name="serial" value="24" />
370      <info name="alt_title" value="ゾャン狂" />
371      <part name="cart" interface="m5_cart">
372         <dataarea name="rom" size="16384">
373            <rom name="mahjong.bin" size="16384" crc="b32c9e08" sha1="0b24213ef49a6ad04bc8ecff616b94ccf0f7a8aa" offset="00000" />
374         </dataarea>
375      </part>
376   </software>
377
378
379   <software name="adidas">
380      <description>Adidas Lucky Shoot</description>
381      <year>198?</year>
382      <publisher>&lt;unknown&gt;</publisher>
383      <info name="alt_title" value="Adidas ăƒ©ăƒƒă‚­ăƒŒ ă‚·ăƒ„ăƒŒăƒˆ" />
384      <part name="cart" interface="m5_cart">
385         <dataarea name="rom" size="8192">
386            <rom name="adidas.bin" size="8192" crc="d6ef9cae" sha1="80314f4351b9c0ebeb48f7757694717950d5a9b0" offset="00000" />
387         </dataarea>
388      </part>
389   </software>
390
391   <software name="drgnatck">
392      <description>Dragon Attack</description>
393      <year>1983</year>
394      <publisher>Takara</publisher>
395      <part name="cart" interface="m5_cart">
396         <dataarea name="rom" size="4096">
397            <rom name="dragon attack (1983)(takara)(jp).bin" size="4096" crc="5862d06c" sha1="f2707ad6dd564df01e7f81a21a00842e17cd49a4" offset="00000" status="baddump" />
398         </dataarea>
399      </part>
400   </software>
401
402   <software name="fruitsrc">
403      <description>Fruit Search</description>
404      <year>1983</year>
405      <publisher>Takara</publisher>
406      <part name="cart" interface="m5_cart">
407         <dataarea name="rom" size="4096">
408            <rom name="fruit search (1983)(takara)(jp).bin" size="4096" crc="333ac50f" sha1="a838fbf0bc4513d3b6bcc3165f1eac33ca27d6fa" offset="00000" status="baddump" />
409         </dataarea>
410      </part>
411   </software>
412
413
414
415
416
417<!-- Program + Languages -->
418   <software name="basicf">
419      <description>BASIC-F</description>
420      <year>198?</year>
421      <publisher>Sord</publisher>
422      <part name="cart" interface="m5_cart">
423         <dataarea name="rom" size="20480">
424            <rom name="basic-f (198x)(sord)(jp).bin" size="20480" crc="47be051f" sha1="9942b8f05a441b5dee7ab31ec5b8a643f7e268b8" offset="00000" status="baddump" />
425         </dataarea>
426      </part>
427   </software>
428
429   <software name="basicg">
430      <description>BASIC-G</description>
431      <year>198?</year>
432      <publisher>Sord</publisher>
433      <part name="cart" interface="m5_cart">
434         <dataarea name="rom" size="16384">
435            <rom name="basic-g (198x)(sord)(jp).bin" size="16384" crc="107b5ddc" sha1="071fa84c7b10d9d7841c504564825609ebf66140" offset="00000" status="baddump" />
436         </dataarea>
437      </part>
438   </software>
439
440   <software name="basici">
441      <description>BASIC-I</description>
442      <year>198?</year>
443      <publisher>Sord</publisher>
444      <part name="cart" interface="m5_cart">
445         <dataarea name="rom" size="8192">
446            <rom name="basic-i (198x)(sord)(jp).bin" size="8192" crc="9a98e6ce" sha1="d11f7623919ee593e275e9f00f8a4acf7aed3cf5" offset="00000" status="baddump" />
447         </dataarea>
448      </part>
449   </software>
450
451   <software name="falc">
452      <description>FALC</description>
453      <year>198?</year>
454      <publisher>Sord</publisher>
455      <info name="usage" value="Requires 36k RAM" />
456      <part name="cart" interface="m5_cart">
457         <dataarea name="rom" size="16384">
458            <rom name="falc (198x)(sord)(jp).bin" size="16384" crc="78037f97" sha1="4cd917388a626d38dd8b16834c2e610d0ba6d505" offset="00000" status="baddump" />
459         </dataarea>
460      </part>
461   </software>
462
463   <software name="peditor">
464      <description>P-Editor</description>
465      <year>198?</year>
466      <publisher>Sord</publisher>
467      <part name="cart" interface="m5_cart">
468         <dataarea name="rom" size="16384">
469            <rom name="zzz-unk-pdesigne.bin" size="16384" crc="af987f7b" sha1="3a4cffc8d81a384f8bb2dfebf5e02cda1f0c7e21" offset="00000" status="baddump" />
470         </dataarea>
471      </part>
472   </software>
473
474<!-- Unidentified items -->
475   <software name="basicw">
476      <!-- is this legit?!? might it be Disk BASIC? -->
477      <description>BASIC-W</description>
478      <year>198?</year>
479      <publisher>Sord?</publisher>
480      <part name="cart" interface="m5_cart">
481         <dataarea name="rom" size="20480">
482            <rom name="basic-w (198x)(sord)(jp).bin" size="20480" crc="2b1087cf" sha1="aa8d7c6c405e1360f074590abdc3d82df07cb564" offset="00000" status="baddump" />
483         </dataarea>
484      </part>
485   </software>
486
487   <software name="m5term">
488      <!-- is this legit?!? might it be M-Editor? -->
489      <description>M5 Terminal</description>
490      <year>19??</year>
491      <publisher>&lt;unknown&gt;</publisher>
492      <part name="cart" interface="m5_cart">
493         <dataarea name="rom" size="7168">
494            <rom name="m5 terminal (19xx)(-).bin" size="7168" crc="2b73c483" sha1="53c093d4c3c5ba990bf8673963f9ff529e99a252" offset="00000" status="baddump" />
495         </dataarea>
496      </part>
497   </software>
498
499   <software name="zacbanic">
500      <description>Zac Banic</description>
501      <year>19??</year>
502      <publisher>&lt;unknown&gt;</publisher>
503      <part name="cart" interface="m5_cart">
504         <dataarea name="rom" size="4400">
505            <rom name="zac banic (19xx)(-).bin" size="4400" crc="fd421eea" sha1="6c3d5c15817617508de5f994c0a980ff6c6ca303" offset="00000" status="baddump" />
506         </dataarea>
507      </part>
508   </software>
509
510   <software name="baseball">
511      <description>Baseball</description>
512      <year>19??</year>
513      <publisher>&lt;unknown&gt;</publisher>
514      <info name="usage" value="Requires 36k RAM" />
515      <part name="cart" interface="m5_cart">
516         <dataarea name="rom" size="10904">
517            <rom name="baseball (19xx)(-).bin" size="10904" crc="46e94dae" sha1="56d11bb9e4e8431ff4f6dfa592b096dd613084c3" offset="00000" status="baddump" />
518         </dataarea>
519      </part>
520   </software>
521
522   <software name="drops">
523      <description>Drops</description>
524      <year>1986</year>
525      <publisher>SPC</publisher>
526      <info name="usage" value="Requires 36k RAM" />
527      <part name="cart" interface="m5_cart">
528         <dataarea name="rom" size="6176">
529            <rom name="drops (1986)(spc)(jp).bin" size="6176" crc="fa321348" sha1="e9a44e12eed9d51cdb40ce4b6f1cb19a1ebed35d" offset="00000" status="baddump" />
530         </dataarea>
531      </part>
532   </software>
533
534   <software name="jumpjack">
535      <description>Jumping Jack</description>
536      <year>1986</year>
537      <publisher>SPC</publisher>
538      <info name="usage" value="Requires 36k RAM" />
539      <part name="cart" interface="m5_cart">
540         <dataarea name="rom" size="5920">
541            <rom name="jumping jack (1986)(spc)(jp).bin" size="5920" crc="49030973" sha1="c8716276fe6c4b0808078086f505efce1137afc9" offset="00000" status="baddump" />
542         </dataarea>
543      </part>
544   </software>
545
546   <software name="mchess">
547      <description>Masterchess</description>
548      <year>19??</year>
549      <publisher>&lt;unknown&gt;</publisher>
550      <info name="usage" value="Requires 36k RAM" />
551      <part name="cart" interface="m5_cart">
552         <dataarea name="rom" size="12288">
553            <rom name="masterchess (19xx)(-).bin" size="12288" crc="c10a6e96" sha1="5dd24aae17c3a293ae91ef5086c1c4f3e59263ed" offset="00000" status="baddump" />
554         </dataarea>
555      </part>
556   </software>
557
558   <software name="reversi">
559      <description>Reversi</description>
560      <year>19??</year>
561      <publisher>&lt;unknown&gt;</publisher>
562      <info name="usage" value="Requires 36k RAM" />
563      <part name="cart" interface="m5_cart">
564         <dataarea name="rom" size="6392">
565            <rom name="reversi (19xx)(games of skill).bin" size="6392" crc="ca2cd257" sha1="a048a1055d175ace09155e50da0387986e150f92" offset="00000" status="baddump" />
566         </dataarea>
567      </part>
568   </software>
569
570<!-- these come from TOSEC: they do not work and it's not clear where they
571come from... they might be eventually removed -->
572
573<!-- the first contains Czech text strings so it might be a real Czech cart,
574but we need more info -->
575   <software name="unk_maze" supported="no">
576      <description>Unknown CSMAZE</description>
577      <year>19??</year>
578      <publisher>&lt;unknown&gt;</publisher>
579      <part name="cart" interface="m5_cart">
580         <dataarea name="rom" size="8448">
581            <rom name="zzz-unk-csmaze.bin" size="8448" crc="b7c9705b" sha1="f07f531eef82fd5b0d914c176d52b38814c36e3b" offset="00000" status="baddump" />
582         </dataarea>
583      </part>
584   </software>
585
586<!-- This displays garbage charset when launched with ramsize 36k or 68k -->
587   <software name="unk_intr" supported="no">
588      <description>Unknown Intruder</description>
589      <year>19??</year>
590      <publisher>&lt;unknown&gt;</publisher>
591      <info name="usage" value="Requires 36k or more RAM?" />
592      <part name="cart" interface="m5_cart">
593         <dataarea name="rom" size="5376">
594            <rom name="zzz-unk-intruder.bin" size="5376" crc="12859c5d" sha1="fd8fc752be6afcbf016f8a33e21ad9e1b7c50c48" offset="00000" status="baddump" />
595         </dataarea>
596      </part>
597   </software>
598
599</softwarelist>
trunk/hash/m5_cass.xml
r241777r241778
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!--
5   Cassettes that load with CHAIN cannot auto-start correctly.
6   Mount the BASIC-I cart first, then the cassette to load + run them.
7   
8   Other tapes should auto-load and run.
9-->
10
11<softwarelist name="m5_cass" description="Sord M5 cassettes">
12   <software name="barricad">
13      <description>Barricade</description>
14      <year>19??</year>
15      <publisher>&lt;unknown&gt;</publisher>
16      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
17   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
18
19      <part name="cass1" interface="m5_cass">
20         <dataarea name="cass" size="3840">
21            <rom name="barricade.cas" size="3840" crc="453b03b7" sha1="4bd1fd674ecc1348de82705df65c9968d17f4371" offset="0" />
22         </dataarea>
23      </part>
24   </software>
25
26   <software name="barrier">
27      <description>Barrier Attack</description>
28      <year>19??</year>
29      <publisher>&lt;unknown&gt;</publisher>
30      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
31   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
32
33      <part name="cass1" interface="m5_cass">
34         <dataarea name="cass" size="3386">
35            <rom name="b.attack.cas" size="3386" crc="f84b6cf6" sha1="58007c3f59591717ea15f89c7cf0501a956d0e03" offset="0" />
36         </dataarea>
37      </part>
38   </software>
39
40   <software name="baseball">
41      <description>Baseball</description>
42      <year>19??</year>
43      <publisher>&lt;unknown&gt;</publisher>
44
45      <part name="cass1" interface="m5_cass">
46         <dataarea name="cass" size="11221">
47            <rom name="baseball.cas" size="11221" crc="91ba7884" sha1="5b15b6f9d1ec625c5fd12dbaa1108c0645a3c543" offset="0" />
48         </dataarea>
49      </part>
50   </software>
51
52   <software name="biorhyth">
53      <description>Biorhythm Diagnosis</description>
54      <year>19??</year>
55      <publisher>&lt;unknown&gt;</publisher>
56      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
57   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
58
59      <part name="cass1" interface="m5_cass">
60         <dataarea name="cass" size="19071">
61            <rom name="biorhythm.cas" size="19071" crc="7fdf95ff" sha1="c8a0d5dacb629e9793dce36036bd3e50cceb1640" offset="0" />
62         </dataarea>
63      </part>
64   </software>
65
66   <software name="blackjac">
67      <description>Blackjack</description>
68      <year>19??</year>
69      <publisher>&lt;unknown&gt;</publisher>
70      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
71   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
72
73      <part name="cass1" interface="m5_cass">
74         <dataarea name="cass" size="16980">
75            <rom name="blackjack.cas" size="16980" crc="0ba87b33" sha1="5fb0f2d186a3c1c32738e5162f32bf0831681367" offset="0" />
76         </dataarea>
77      </part>
78   </software>
79
80   <software name="cowboy">
81      <description>Cowboy</description>
82      <year>19??</year>
83      <publisher>&lt;unknown&gt;</publisher>
84      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
85   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
86
87      <part name="cass1" interface="m5_cass">
88         <dataarea name="cass" size="3767">
89            <rom name="cowboy.cas" size="3767" crc="f4cc6900" sha1="52bbfa6aed885c6c2d818a331423217971806dfa" offset="0" />
90         </dataarea>
91      </part>
92   </software>
93
94   <software name="graphic">
95      <description>Graphic Designer</description>
96      <year>19??</year>
97      <publisher>&lt;unknown&gt;</publisher>
98
99      <part name="cass1" interface="m5_cass">
100         <dataarea name="cass" size="3417">
101            <rom name="p-editor.cas" size="3417" crc="c57f6d10" sha1="e6774256941073e7d46472bfec1a1a47fb8d20fd" offset="0" />
102         </dataarea>
103      </part>
104   </software>
105
106   <software name="jogging">
107      <description>Jogging</description>
108      <year>19??</year>
109      <publisher>&lt;unknown&gt;</publisher>
110      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
111   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
112
113      <part name="cass1" interface="m5_cass">
114         <dataarea name="cass" size="8537">
115            <rom name="jogging.cas" size="8537" crc="ee87bee5" sha1="4e7a3a4a436aac78272384a160bd1118421efbd6" offset="0" />
116         </dataarea>
117      </part>
118   </software>
119
120   <software name="lastday">
121      <description>Last Day of the Earth</description>
122      <year>19??</year>
123      <publisher>&lt;unknown&gt;</publisher>
124      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
125   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
126
127      <part name="cass1" interface="m5_cass">
128         <dataarea name="cass" size="19184">
129            <rom name="neutron.cas" size="19184" crc="d8b699da" sha1="7e33a89c3bfcb5f73ef117a992dc67f74a3640d9" offset="0" />
130         </dataarea>
131      </part>
132   </software>
133
134   <software name="startrek">
135      <description>Mini Star Trek</description>
136      <year>19??</year>
137      <publisher>&lt;unknown&gt;</publisher>
138      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
139   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
140
141      <part name="cass1" interface="m5_cass">
142         <dataarea name="cass" size="4744">
143            <rom name="startrek.cas" size="4744" crc="bbc88a19" sha1="d066e9baf5576e338ba7122ecca497e01e451071" offset="0" />
144         </dataarea>
145      </part>
146   </software>
147
148   <software name="mustone">
149      <description>Music Tone</description>
150      <year>19??</year>
151      <publisher>&lt;unknown&gt;</publisher>
152      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
153   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
154
155      <part name="cass1" interface="m5_cass">
156         <dataarea name="cass" size="3423">
157            <rom name="music tone (19xx)(-)[chain].cas" size="3423" crc="296671e0" sha1="a5bd05aa110879317e19566936264de21ec34195" offset="0" />
158         </dataarea>
159      </part>
160   </software>
161
162   <software name="numsrch">
163      <description>Number Search</description>
164      <year>19??</year>
165      <publisher>&lt;unknown&gt;</publisher>
166      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
167   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
168
169      <part name="cass1" interface="m5_cass">
170         <dataarea name="cass" size="3244">
171            <rom name="n.search.cas" size="3244" crc="5ac28495" sha1="052e3696c2342df39cb35f4cef781cfce8d159c7" offset="0" />
172         </dataarea>
173      </part>
174   </software>
175
176   <software name="sidewind">
177      <description>Sidewinder</description>
178      <year>19??</year>
179      <publisher>&lt;unknown&gt;</publisher>
180      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
181   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
182
183      <part name="cass1" interface="m5_cass">
184         <dataarea name="cass" size="3628">
185            <rom name="s.winder.cas" size="3628" crc="a4405fe0" sha1="679969f20907cb4bd2fe62340b868316d2c3aaba" offset="0" />
186         </dataarea>
187      </part>
188   </software>
189
190   <software name="slotmach">
191      <description>Slot Machine</description>
192      <year>19??</year>
193      <publisher>&lt;unknown&gt;</publisher>
194      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
195   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
196
197      <part name="cass1" interface="m5_cass">
198         <dataarea name="cass" size="5207">
199            <rom name="slot.cas" size="5207" crc="60f5678b" sha1="4f11ddac8909af685f67c30c47ae472101f94c1e" offset="0" />
200         </dataarea>
201      </part>
202   </software>
203
204   <software name="snaky">
205      <description>Snaky</description>
206      <year>19??</year>
207      <publisher>&lt;unknown&gt;</publisher>
208      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
209   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
210
211      <part name="cass1" interface="m5_cass">
212         <dataarea name="cass" size="3213">
213            <rom name="snaky.cas" size="3213" crc="6f66a0b3" sha1="731fb6c43b240eb701ac10ed4c73103f11af0414" offset="0" />
214         </dataarea>
215      </part>
216   </software>
217
218   <software name="solitair">
219      <description>Solitaire</description>
220      <year>19??</year>
221      <publisher>&lt;unknown&gt;</publisher>
222      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
223   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->   
224
225      <part name="cass1" interface="m5_cass">
226         <dataarea name="cass" size="3278">
227            <rom name="solitaire.cas" size="3278" crc="c7d4f0af" sha1="58938d626ee291e79783f9656d1e26701662808d" offset="0" />
228         </dataarea>
229      </part>
230   </software>
231
232   <software name="3circles">
233      <description>Three Circles</description>
234      <year>19??</year>
235      <publisher>&lt;unknown&gt;</publisher>
236      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
237   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
238
239      <part name="cass1" interface="m5_cass">
240         <dataarea name="cass" size="3568">
241            <rom name="3-circles.cas" size="3568" crc="c8436fcc" sha1="3c03ee9ee6ac3b51d0ca990f72fc83816d747ba1" offset="0" />
242         </dataarea>
243      </part>
244   </software>
245
246   <software name="hanoi">
247      <description>Tower of Hanoi</description>
248      <year>19??</year>
249      <publisher>&lt;unknown&gt;</publisher>
250      <info name="usage" value="Mount together with &quot;BASIC-I&quot; and load with CHAIN"/>
251   <!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
252
253      <part name="cass1" interface="m5_cass">
254         <dataarea name="cass" size="4108">
255            <rom name="hanoi.cas" size="4108" crc="a91c50be" sha1="b81e42cabf4b7d0d8389a4e4cae1ea8a49f628f2" offset="0" />
256         </dataarea>
257      </part>
258   </software>
259
260   <software name="tvadjust">
261      <description>TV Adjust</description>
262      <year>19??</year>
263      <publisher>&lt;unknown&gt;</publisher>
264
265      <part name="cass1" interface="m5_cass">
266         <dataarea name="cass" size="1345">
267            <rom name="tvadjust.cas" size="1345" crc="6b2980fc" sha1="88490185fae07f8ef848b2153fbd954c12066fcd" offset="0" />
268         </dataarea>
269      </part>
270   </software>
271
272   <software name="zacbanic">
273      <description>Zac Banic</description>
274      <year>19??</year>
275      <publisher>&lt;unknown&gt;</publisher>
276
277      <part name="cass1" interface="m5_cass">
278         <dataarea name="cass" size="4746">
279            <rom name="zacbanic.cas" size="4746" crc="05026a99" sha1="463bdea30de9e67db98f7c2a2c5bb7e3799ef96d" offset="0" />
280         </dataarea>
281      </part>
282   </software>
283
284</softwarelist>
trunk/hash/megadriv.xml
r241777r241778
33<!--
44    UNDUMPED / TO BE REDUMPED LIST
55
6    2IN1 (COSMIC SPACEHEAD FANTASTIC DIZZY) PAL
67    ADVANCED DAISENRYAKU            JAPAN       we have Rev A, Rev 0 needed (does it exist?)
78    CAPTAIN PLANET              ASIA
89    DAVIS CUP TENNIS                JAPAN
r241777r241778
107108<!-- Fully documented: confirmed dumps + PCB pics -->
108109
109110
110   <!-- Game is switched on reset -->
111   <software name="2fdizcsp">
112      <description>2 in 1 - Fantastic Dizzy &amp; Cosmic Spacehead (Euro)</description>
113      <year>1994</year>
114      <publisher>Codemasters</publisher>
115      <part name="cart" interface="megadriv_cart">
116         <feature name="slot" value="rom_cm2in1"/>
117         <feature name="pcb" value="SR16V7-2"/>
118         <feature name="u1" value="COSMIC SPACEHEAD MD MDCS E4F7"/>   <!-- location not really marked on PCB, using u1 for consistency -->
119         <feature name="u2" value="FANTASTIC DIZZY MD MDFD BB07"/>    <!-- location not really marked on PCB, using u2 for consistency -->
120         <feature name="left" value="GD74HC00"/>
121         <feature name="right" value="GD74HC74"/>
122         <dataarea name="rom" width="16" endianness="big" size="2621440">
123                <rom name="cosmic spacehead md mdcs e4f7.u1" size="1048576" crc="cb89e605" sha1="b5bc4a786639d1b8ae6de76f40dbe907b3f0b642" offset="0x000000"/>
124                <rom name="fantastic dizzy md mdfd bb07.u2" size="524288" crc="46447e7a" sha1="b320174d3b43f30b477818a27b4da30462a52003" offset="0x200000"/>
125         </dataarea>
126      </part>
127   </software>
128
129111<!-- Both Euro and USA confirmed -->
130112   <software name="688atsub">
131113      <description>688 Attack Sub (Euro, USA)</description>
trunk/hash/mikrosha.xml
r241777r241778
1616   </software>
1717
1818   <software name="alambush">
19      <description>Alien Ambush</description>
20      <year>1990</year>
21      <publisher>Sedov E. A.</publisher>
19      <description>ALAMBUSH</description>
20      <year>19??</year>
21      <publisher>&lt;unknown&gt;</publisher>
2222      <part name="cass" interface="mikrosha_cass">
2323         <dataarea name="cass" size="5604">
2424            <rom name="alambush.rkm" size="5604" crc="4b247561" sha1="5f6130c571bb4877b27c1e4c37a17db680e8b2ab" offset="0" />
r241777r241778
2727   </software>
2828
2929   <software name="ball">
30      <description>The Ball Game</description>
31      <year>1990</year>
32      <publisher>Sandy Pat Corp.</publisher>
30      <description>BALL</description>
31      <year>19??</year>
32      <publisher>&lt;unknown&gt;</publisher>
3333      <part name="cass" interface="mikrosha_cass">
3434         <dataarea name="cass" size="2620">
3535            <rom name="ball.rkm" size="2620" crc="ff43291b" sha1="f7fbdae6169c08a4140d685d0d504cc84be82375" offset="0" />
r241777r241778
3838   </software>
3939
4040   <software name="barmen">
41      <description>Barmen (v1.5)</description>
42      <year>1988</year>
43      <publisher>ALG</publisher>
41      <description>BARMEN</description>
42      <year>19??</year>
43      <publisher>&lt;unknown&gt;</publisher>
4444      <part name="cass" interface="mikrosha_cass">
4545         <dataarea name="cass" size="4102">
4646            <rom name="barmen.rkm" size="4102" crc="01a1e046" sha1="f129df0395d261edf50c4c79a8d3375249a935ef" offset="0" />
r241777r241778
4949   </software>
5050
5151   <software name="bomber">
52      <description>Bomber Aircraft</description>
53      <year>1990</year>
54      <publisher>Jup Corp</publisher>
52      <description>BOMBER</description>
53      <year>19??</year>
54      <publisher>&lt;unknown&gt;</publisher>
5555      <part name="cass" interface="mikrosha_cass">
5656         <dataarea name="cass" size="4627">
5757            <rom name="bomber.rkm" size="4627" crc="8ba227ef" sha1="a15ad12ec2981b53607f4ae755acecbb69939b3c" offset="0" />
r241777r241778
5959      </part>
6060   </software>
6161
62   <software name="bdash">
63      <description>Boulder Dash (v2)</description>
64      <year>1989</year>
65      <publisher>Clever Hands Software</publisher>
62   <software name="boulder">
63      <description>BOULDER</description>
64      <year>19??</year>
65      <publisher>&lt;unknown&gt;</publisher>
6666      <part name="cass" interface="mikrosha_cass">
6767         <dataarea name="cass" size="15367">
6868            <rom name="boulder.rkm" size="15367" crc="2da99b60" sha1="2620046d21618cf22607827c19334ba000902c27" offset="0" />
r241777r241778
7171   </software>
7272
7373   <software name="chess">
74      <description>Chess</description>
74      <description>CHESS</description>
7575      <year>19??</year>
7676      <publisher>&lt;unknown&gt;</publisher>
7777      <part name="cass" interface="mikrosha_cass">
r241777r241778
8181      </part>
8282   </software>
8383
84   <software name="cirk">
85      <description>Cirk (v1.2)</description>
86      <year>1986</year>
87      <publisher>Popov S.N.</publisher>
84   <software name="circus">
85      <description>CIRCUS</description>
86      <year>19??</year>
87      <publisher>&lt;unknown&gt;</publisher>
8888      <part name="cass" interface="mikrosha_cass">
8989         <dataarea name="cass" size="7655">
9090            <rom name="circus.rkm" size="7655" crc="bd44cf25" sha1="2cc3472632e962b0e32637a4eea9090b5307eba9" offset="0" />
r241777r241778
9393   </software>
9494
9595   <software name="crossfir">
96      <description>Cross Fire (v004)</description>
97      <year>1988</year>
98      <publisher>Zyryanov A.V.</publisher>
96      <description>CROSSFIR</description>
97      <year>19??</year>
98      <publisher>&lt;unknown&gt;</publisher>
9999      <part name="cass" interface="mikrosha_cass">
100100         <dataarea name="cass" size="11127">
101101            <rom name="crossfir.rkm" size="11127" crc="0e204a60" sha1="f41be5612ea4648ce51a2495fa2c2b20c4e910fb" offset="0" />
r241777r241778
566566   </software>
567567
568568   <software name="xonmicr">
569      <description>Xonix (Micron)</description>
569      <description>XONMICR</description>
570570      <year>19??</year>
571      <publisher>Micron</publisher>
571      <publisher>&lt;unknown&gt;</publisher>
572572      <part name="cass" interface="mikrosha_cass">
573573         <dataarea name="cass" size="2822">
574574            <rom name="xonmicr.rkm" size="2822" crc="a2658748" sha1="561ac9989c2b8605719d0b340a513fb5a691d7dd" offset="0" />
r241777r241778
576576      </part>
577577   </software>
578578
579   <software name="zstanciy">
580      <description>Z-Stanciya</description>
581      <year>1987</year>
582      <publisher>SNP</publisher>
579   <software name="zstation">
580      <description>ZSTATION</description>
581      <year>19??</year>
582      <publisher>&lt;unknown&gt;</publisher>
583583      <part name="cass" interface="mikrosha_cass">
584584         <dataarea name="cass" size="1895">
585585            <rom name="zstation.rkm" size="1895" crc="d496dea7" sha1="4aabce2dc4349a82c1ba59be8705f2f8cac77401" offset="0" />
r241777r241778
591591<!-- System -->
592592
593593   <software name="basic">
594      <description>Mikrosha BASIC</description>
594      <description>BASIC</description>
595595      <year>19??</year>
596596      <publisher>&lt;unknown&gt;</publisher>
597597      <part name="cass" interface="mikrosha_cass">
r241777r241778
602602   </software>
603603
604604   <software name="disasm">
605      <description>Disassembler Mikron</description>
605      <description>DISASM</description>
606606      <year>19??</year>
607607      <publisher>&lt;unknown&gt;</publisher>
608608      <part name="cass" interface="mikrosha_cass">
trunk/hash/msx1_cart.xml
r241777r241778
1365413654   <software name="cheese" supported="partial">
1365513655      <description>Cheese (Jpn)</description>
1365613656      <year>1984</year>
13657      <publisher>Nihon Electronics</publisher>
13657      <publisher>Nihon ELectronics</publisher>
1365813658      <part name="cart" interface="msx_cart">
1365913659         <feature name="mapper" value="NOMAPPER" />
1366013660         <dataarea name="rom" size="16384">
trunk/hash/orao.xml
r241777r241778
44<softwarelist name="orao" description="PEL Varazdin Orao cassettes">
55
66   <software name="6502step">
7      <description>6502 Step (v1.0)</description>
7      <description>6502Step</description>
88      <year>19??</year>
99      <publisher>&lt;unknown&gt;</publisher>
1010      <part name="cass1" interface="orao_cass">
1111         <dataarea name="cass" size="4099">
12            <rom name="6502step.tap" size="4099" crc="18b959be" sha1="9ded3c41aa3d56bc057a8db4ce5d562695723e37" offset="0" />
12            <rom name="6502step.tap" size="4099" crc="18b959be" sha1="9ded3c41aa3d56bc057a8db4ce5d562695723e37" offset="0x0000" />
1313         </dataarea>
1414      </part>
1515   </software>
r241777r241778
1717   <software name="ajnc">
1818      <description>Ajnc</description>
1919      <year>19??</year>
20      <publisher>PEL Soft</publisher>
20      <publisher>&lt;unknown&gt;</publisher>
2121      <part name="cass1" interface="orao_cass">
2222         <dataarea name="cass" size="17806">
23            <rom name="ajnc.tap" size="17806" crc="de341625" sha1="ea157993ea1c70e5f22cb4cf0e8cb1c7acd034da" offset="0" />
23            <rom name="ajnc.tap" size="17806" crc="de341625" sha1="ea157993ea1c70e5f22cb4cf0e8cb1c7acd034da" offset="0x0000" />
2424         </dataarea>
2525      </part>
2626   </software>
2727
2828   <software name="avion">
2929      <description>Avion</description>
30      <year>1986</year>
31      <publisher>Emil Herceg - Igor Kos</publisher>
30      <year>19??</year>
31      <publisher>&lt;unknown&gt;</publisher>
3232      <part name="cass1" interface="orao_cass">
3333         <dataarea name="cass" size="6798">
34            <rom name="avion.tap" size="6798" crc="eb4143a9" sha1="c350137a5c6084d8990b9b0856329f5b94aa338f" offset="0" />
34            <rom name="avion.tap" size="6798" crc="eb4143a9" sha1="c350137a5c6084d8990b9b0856329f5b94aa338f" offset="0x0000" />
3535         </dataarea>
3636      </part>
3737   </software>
3838
3939   <software name="bdash">
40      <description>Boulder Dash</description>
40      <description>BoulderDash</description>
4141      <year>19??</year>
42      <publisher>Nenad Mihailovic - Mihajlo Dapjas</publisher>
42      <publisher>&lt;unknown&gt;</publisher>
4343      <part name="cass1" interface="orao_cass">
4444         <dataarea name="cass" size="17998">
45            <rom name="boulderdash.tap" size="17998" crc="11ab14ed" sha1="4a7541bdcba4f03538c3659ad9c1bb36b6d34263" offset="0" />
45            <rom name="boulderdash.tap" size="17998" crc="11ab14ed" sha1="4a7541bdcba4f03538c3659ad9c1bb36b6d34263" offset="0x0000" />
4646         </dataarea>
4747      </part>
4848   </software>
r241777r241778
5050   <software name="breakout">
5151      <description>Breakout</description>
5252      <year>19??</year>
53      <publisher>Stan Rimox Software</publisher>
53      <publisher>&lt;unknown&gt;</publisher>
5454      <part name="cass1" interface="orao_cass">
5555         <dataarea name="cass" size="18992">
56            <rom name="breakout.tap" size="18992" crc="7737b9af" sha1="9d9a9e5b06ede99cb7326bab980d7f5a85ba0723" offset="0" />
56            <rom name="breakout.tap" size="18992" crc="7737b9af" sha1="9d9a9e5b06ede99cb7326bab980d7f5a85ba0723" offset="0x0000" />
5757         </dataarea>
5858      </part>
5959   </software>
r241777r241778
6464      <publisher>&lt;unknown&gt;</publisher>
6565      <part name="cass1" interface="orao_cass">
6666         <dataarea name="cass" size="4035">
67            <rom name="brojke.tap" size="4035" crc="f46a50c8" sha1="edf486d95df1935effa01f77a36d36c0a24829f8" offset="0" />
67            <rom name="brojke.tap" size="4035" crc="f46a50c8" sha1="edf486d95df1935effa01f77a36d36c0a24829f8" offset="0x0000" />
6868         </dataarea>
6969      </part>
7070   </software>
7171
7272   <software name="crtanje">
7373      <description>Crtanje</description>
74      <year>1987</year>
75      <publisher>Suzy Soft</publisher>
74      <year>19??</year>
75      <publisher>&lt;unknown&gt;</publisher>
7676      <part name="cass1" interface="orao_cass">
7777         <dataarea name="cass" size="4698">
78            <rom name="crtanje.tap" size="4698" crc="30ef56cb" sha1="7a77d75da0a0b34639b987e0d5cf14d7859d80c6" offset="0" />
78            <rom name="crtanje.tap" size="4698" crc="30ef56cb" sha1="7a77d75da0a0b34639b987e0d5cf14d7859d80c6" offset="0x0000" />
7979         </dataarea>
8080      </part>
8181   </software>
8282
8383   <software name="crvic">
8484      <description>Crvic</description>
85      <year>1986</year>
86      <publisher>PEL Soft</publisher>
85      <year>19??</year>
86      <publisher>&lt;unknown&gt;</publisher>
8787      <part name="cass1" interface="orao_cass">
8888         <dataarea name="cass" size="14050">
89            <rom name="crvic.tap" size="14050" crc="6feb9576" sha1="f9f31884a3899731350a2931818b5945afba0bae" offset="0" />
89            <rom name="crvic.tap" size="14050" crc="6feb9576" sha1="f9f31884a3899731350a2931818b5945afba0bae" offset="0x0000" />
9090         </dataarea>
9191      </part>
9292   </software>
9393
94   <software name="microrac">
95      <description>Mikroracunalo Orao</description>
96      <year>1988</year>
97      <publisher>PEL Varazdin</publisher>
94   <software name="demo1">
95      <description>Demo 1</description>
96      <year>19??</year>
97      <publisher>&lt;unknown&gt;</publisher>
9898      <part name="cass1" interface="orao_cass">
9999         <dataarea name="cass" size="31432">
100            <rom name="demo1.tap" size="31432" crc="9e7ba4ec" sha1="3a0c5c8412383a5cd676394308637a8a54238475" offset="0" />
100            <rom name="demo1.tap" size="31432" crc="9e7ba4ec" sha1="3a0c5c8412383a5cd676394308637a8a54238475" offset="0x0000" />
101101         </dataarea>
102102      </part>
103      <part name="cass2" interface="orao_cass">
103   </software>
104
105   <software name="demo2">
106      <description>Demo 2</description>
107      <year>19??</year>
108      <publisher>&lt;unknown&gt;</publisher>
109      <part name="cass1" interface="orao_cass">
104110         <dataarea name="cass" size="18450">
105            <rom name="demo2.tap" size="18450" crc="8bad5b68" sha1="155a06ebfc964642d902b47b49ee7a3ccf2cef0a" offset="0" />
111            <rom name="demo2.tap" size="18450" crc="8bad5b68" sha1="155a06ebfc964642d902b47b49ee7a3ccf2cef0a" offset="0x0000" />
106112         </dataarea>
107113      </part>
108114   </software>
109115
110116   <software name="demograf">
111      <description>Demo Grafika</description>
112      <year>1985</year>
113      <publisher>KMI Borovo</publisher>
117      <description>DemoGrafika</description>
118      <year>19??</year>
119      <publisher>&lt;unknown&gt;</publisher>
114120      <part name="cass1" interface="orao_cass">
115121         <dataarea name="cass" size="22996">
116            <rom name="demografika.tap" size="22996" crc="1a3f6740" sha1="aeca6893a530b27a0428f33d40fb10c683f450fb" offset="0" />
122            <rom name="demografika.tap" size="22996" crc="1a3f6740" sha1="aeca6893a530b27a0428f33d40fb10c683f450fb" offset="0x0000" />
117123         </dataarea>
118124      </part>
119125   </software>
120126
121127   <software name="eagle">
122128      <description>Eagle</description>
123      <year>1986</year>
124      <publisher>KMI Borovo</publisher>
129      <year>19??</year>
130      <publisher>&lt;unknown&gt;</publisher>
125131      <part name="cass1" interface="orao_cass">
126132         <dataarea name="cass" size="9132">
127            <rom name="eagle.tap" size="9132" crc="b3a8886c" sha1="80409c7ca7fe3fa70e4133a96f4f04c9806d6c5d" offset="0" />
133            <rom name="eagle.tap" size="9132" crc="b3a8886c" sha1="80409c7ca7fe3fa70e4133a96f4f04c9806d6c5d" offset="0x0000" />
128134         </dataarea>
129135      </part>
130136   </software>
r241777r241778
132138   <software name="jugador">
133139      <description>Jugador</description>
134140      <year>19??</year>
135      <publisher>Mario Vuletic</publisher>
141      <publisher>&lt;unknown&gt;</publisher>
136142      <part name="cass1" interface="orao_cass">
137143         <dataarea name="cass" size="4932">
138            <rom name="jugador.tap" size="4932" crc="a42f9cdf" sha1="adbf785606b093925eae1c42d1bb6611372c8f89" offset="0" />
144            <rom name="jugador.tap" size="4932" crc="a42f9cdf" sha1="adbf785606b093925eae1c42d1bb6611372c8f89" offset="0x0000" />
139145         </dataarea>
140146      </part>
141147   </software>
142148
143149   <software name="jumpjack">
144      <description>Jumping Jack</description>
145      <year>1986</year>
146      <publisher>KMI Borovo</publisher>
150      <description>JumpingJack</description>
151      <year>19??</year>
152      <publisher>&lt;unknown&gt;</publisher>
147153      <part name="cass1" interface="orao_cass">
148154         <dataarea name="cass" size="9133">
149            <rom name="jumpingjack.tap" size="9133" crc="2bb70986" sha1="269820989ab16c73594abeb6935736c08e07b5f3" offset="0" />
155            <rom name="jumpingjack.tap" size="9133" crc="2bb70986" sha1="269820989ab16c73594abeb6935736c08e07b5f3" offset="0x0000" />
150156         </dataarea>
151157      </part>
152158   </software>
153159
154160   <software name="karate">
155      <description>Internacional Karate</description>
161      <description>Karate</description>
156162      <year>19??</year>
157      <publisher>KMI Borovo</publisher>
163      <publisher>&lt;unknown&gt;</publisher>
158164      <part name="cass1" interface="orao_cass">
159165         <dataarea name="cass" size="25106">
160            <rom name="karate.tap" size="25106" crc="021024a0" sha1="90620ceafe258c7bbec195670b629426bf32b82c" offset="0" />
166            <rom name="karate.tap" size="25106" crc="021024a0" sha1="90620ceafe258c7bbec195670b629426bf32b82c" offset="0x0000" />
161167         </dataarea>
162168      </part>
163169   </software>
164170
165171   <software name="kuki">
166172      <description>Kuki</description>
167      <year>1986</year>
168      <publisher>KMI Borovo</publisher>
173      <year>19??</year>
174      <publisher>&lt;unknown&gt;</publisher>
169175      <part name="cass1" interface="orao_cass">
170176         <dataarea name="cass" size="9998">
171            <rom name="kuki.tap" size="9998" crc="90cddb34" sha1="211de24d98205f1b8dde0057f5294a7fb569483c" offset="0" />
177            <rom name="kuki.tap" size="9998" crc="90cddb34" sha1="211de24d98205f1b8dde0057f5294a7fb569483c" offset="0x0000" />
172178         </dataarea>
173179      </part>
174180   </software>
175181
176182   <software name="kvadrat">
177      <description>Magicni Kvadrat</description>
178      <year>1985</year>
179      <publisher>Mario Ranogajec - Boris Korpar</publisher>
183      <description>Kvadrat</description>
184      <year>19??</year>
185      <publisher>&lt;unknown&gt;</publisher>
180186      <part name="cass1" interface="orao_cass">
181187         <dataarea name="cass" size="17078">
182            <rom name="kvadrat.tap" size="17078" crc="9ee09595" sha1="9ac6e8046765b6656f27046955eeea3672c4509c" offset="0" />
188            <rom name="kvadrat.tap" size="17078" crc="9ee09595" sha1="9ac6e8046765b6656f27046955eeea3672c4509c" offset="0x0000" />
183189         </dataarea>
184190      </part>
185191   </software>
186192
187193   <software name="labirint">
188194      <description>Labirint</description>
189      <year>1985</year>
190      <publisher>Bibi Soft</publisher>
195      <year>19??</year>
196      <publisher>&lt;unknown&gt;</publisher>
191197      <part name="cass1" interface="orao_cass">
192198         <dataarea name="cass" size="5698">
193            <rom name="labirint.tap" size="5698" crc="864f7643" sha1="6201f6dfa20178ca782ac1cde73364d0c5f5ce64" offset="0" />
199            <rom name="labirint.tap" size="5698" crc="864f7643" sha1="6201f6dfa20178ca782ac1cde73364d0c5f5ce64" offset="0x0000" />
194200         </dataarea>
195201      </part>
196202   </software>
197203
198204   <software name="labirinm">
199      <description>Labirint M</description>
205      <description>LabirintM</description>
200206      <year>19??</year>
201207      <publisher>&lt;unknown&gt;</publisher>
202208      <part name="cass1" interface="orao_cass">
203209         <dataarea name="cass" size="15237">
204            <rom name="labirintm.tap" size="15237" crc="9e0790cf" sha1="89706cf82798956410facce1613c54a4c898979f" offset="0" />
210            <rom name="labirintm.tap" size="15237" crc="9e0790cf" sha1="89706cf82798956410facce1613c54a4c898979f" offset="0x0000" />
205211         </dataarea>
206212      </part>
207213   </software>
208214
209215   <software name="mminer">
210      <description>Manic Miner</description>
216      <description>ManicMiner</description>
211217      <year>19??</year>
212      <publisher>Nenad Mihailovic</publisher>
218      <publisher>&lt;unknown&gt;</publisher>
213219      <part name="cass1" interface="orao_cass">
214220         <dataarea name="cass" size="18001">
215            <rom name="manicminer.tap" size="18001" crc="27380ee9" sha1="b37abeb1df684a1ae3b5bd19795ac90e69853176" offset="0" />
221            <rom name="manicminer.tap" size="18001" crc="27380ee9" sha1="b37abeb1df684a1ae3b5bd19795ac90e69853176" offset="0x0000" />
216222         </dataarea>
217223      </part>
218224   </software>
219225
220226   <software name="matchfis">
221      <description>Match Fishing</description>
222      <year>1986</year>
223      <publisher>KMI Borovo</publisher>
227      <description>MatchFishing</description>
228      <year>19??</year>
229      <publisher>&lt;unknown&gt;</publisher>
224230      <part name="cass1" interface="orao_cass">
225231         <dataarea name="cass" size="23228">
226            <rom name="matchfishing.tap" size="23228" crc="fa01ad6c" sha1="88a3af7de00440910212aeb6f5360b32fc9062a1" offset="0" />
232            <rom name="matchfishing.tap" size="23228" crc="fa01ad6c" sha1="88a3af7de00440910212aeb6f5360b32fc9062a1" offset="0x0000" />
227233         </dataarea>
228234      </part>
229235   </software>
230236
231   <software name="memo">
232      <description>Memo</description>
237   <software name="memonona">
238      <description>MemoNoName</description>
233239      <year>19??</year>
234      <publisher>PEL Soft</publisher>
240      <publisher>&lt;unknown&gt;</publisher>
235241      <part name="cass1" interface="orao_cass">
236         <dataarea name="cass" size="16500">
237            <rom name="memopel.tap" size="16500" crc="128ffc0b" sha1="60daee51376dd59b5623a0072cd842ecd5db7257" offset="0" />
242         <dataarea name="cass" size="10198">
243            <rom name="memononame.tap" size="10198" crc="1166e752" sha1="f17f7917ccf8399ef2231cc26be1e9056a3b0a86" offset="0x0000" />
238244         </dataarea>
239245      </part>
240246   </software>
241247
242   <software name="memoa" cloneof="memo">
243      <description>Memo (No Loading Screen)</description>
248   <software name="memopel">
249      <description>Memo PEL</description>
244250      <year>19??</year>
245      <publisher>PEL Soft</publisher>
251      <publisher>&lt;unknown&gt;</publisher>
246252      <part name="cass1" interface="orao_cass">
247         <dataarea name="cass" size="10198">
248            <rom name="memononame.tap" size="10198" crc="1166e752" sha1="f17f7917ccf8399ef2231cc26be1e9056a3b0a86" offset="0" />
253         <dataarea name="cass" size="16500">
254            <rom name="memopel.tap" size="16500" crc="128ffc0b" sha1="60daee51376dd59b5623a0072cd842ecd5db7257" offset="0x0000" />
249255         </dataarea>
250256      </part>
251257   </software>
252258
253259   <software name="nevid">
254260      <description>Nevidljivi</description>
255      <year>1987</year>
256      <publisher>Suzy Soft</publisher>
261      <year>19??</year>
262      <publisher>&lt;unknown&gt;</publisher>
257263      <part name="cass1" interface="orao_cass">
258264         <dataarea name="cass" size="4198">
259            <rom name="nevidljivi.tap" size="4198" crc="513373fb" sha1="56bd74d57bafe8eccaeba5ac7d5ac6bae3412403" offset="0" />
265            <rom name="nevidljivi.tap" size="4198" crc="513373fb" sha1="56bd74d57bafe8eccaeba5ac7d5ac6bae3412403" offset="0x0000" />
260266         </dataarea>
261267      </part>
262268   </software>
r241777r241778
264270   <software name="obelix">
265271      <description>Obelix</description>
266272      <year>19??</year>
267      <publisher>KMI Borovo</publisher>
273      <publisher>&lt;unknown&gt;</publisher>
268274      <part name="cass1" interface="orao_cass">
269275         <dataarea name="cass" size="8639">
270            <rom name="obelix.tap" size="8639" crc="f79019d1" sha1="0de7854d67905fcc476838fba064924c27bbef4b" offset="0" />
276            <rom name="obelix.tap" size="8639" crc="f79019d1" sha1="0de7854d67905fcc476838fba064924c27bbef4b" offset="0x0000" />
271277         </dataarea>
272278      </part>
273279   </software>
274280
275281   <software name="othello">
276282      <description>Othello</description>
277      <year>1985</year>
278      <publisher>Sasa Ivkovic</publisher>
283      <year>19??</year>
284      <publisher>&lt;unknown&gt;</publisher>
279285      <part name="cass1" interface="orao_cass">
280286         <dataarea name="cass" size="18828">
281            <rom name="othello.tap" size="18828" crc="d488a8e3" sha1="a35d5b56882b07c10f98b011d6aa0006a1578452" offset="0" />
287            <rom name="othello.tap" size="18828" crc="d488a8e3" sha1="a35d5b56882b07c10f98b011d6aa0006a1578452" offset="0x0000" />
282288         </dataarea>
283289      </part>
284290   </software>
285291
286292   <software name="pacman">
287      <description>Pac-Man</description>
293      <description>PacMan</description>
288294      <year>19??</year>
289      <publisher>Sasa Ivkovic</publisher>
295      <publisher>&lt;unknown&gt;</publisher>
290296      <part name="cass1" interface="orao_cass">
291297         <dataarea name="cass" size="30114">
292            <rom name="pacman.tap" size="30114" crc="3a6479ea" sha1="b1cbde718d491b4324d9ed13e70e7df0c108f398" offset="0" />
298            <rom name="pacman.tap" size="30114" crc="3a6479ea" sha1="b1cbde718d491b4324d9ed13e70e7df0c108f398" offset="0x0000" />
293299         </dataarea>
294300      </part>
295301   </software>
296302
297303   <software name="pcelicam">
298      <description>Pcelica Maja</description>
304      <description>PcelicaMaja</description>
299305      <year>19??</year>
300306      <publisher>&lt;unknown&gt;</publisher>
301307      <part name="cass1" interface="orao_cass">
302308         <dataarea name="cass" size="16998">
303            <rom name="pcelicamaja.tap" size="16998" crc="e1add5c2" sha1="fcaca49c82855c5fe493bb4741c7e855b1bd1402" offset="0" />
309            <rom name="pcelicamaja.tap" size="16998" crc="e1add5c2" sha1="fcaca49c82855c5fe493bb4741c7e855b1bd1402" offset="0x0000" />
304310         </dataarea>
305311      </part>
306312   </software>
307313
308314   <software name="podsjet">
309315      <description>Podsjetnik</description>
310      <year>1987</year>
311      <publisher>Suzy Soft</publisher>
316      <year>19??</year>
317      <publisher>&lt;unknown&gt;</publisher>
312318      <part name="cass1" interface="orao_cass">
313319         <dataarea name="cass" size="10515">
314            <rom name="podsjetnik.tap" size="10515" crc="ea6c2bb4" sha1="fef66d98d23b1b2f675e3d0ed45ccb53829250da" offset="0" />
320            <rom name="podsjetnik.tap" size="10515" crc="ea6c2bb4" sha1="fef66d98d23b1b2f675e3d0ed45ccb53829250da" offset="0x0000" />
315321         </dataarea>
316322      </part>
317323   </software>
318324
319325   <software name="pomorska">
320      <description>Pomorska Bitka</description>
326      <description>PomorskaBitka</description>
321327      <year>19??</year>
322328      <publisher>&lt;unknown&gt;</publisher>
323329      <part name="cass1" interface="orao_cass">
324330         <dataarea name="cass" size="9608">
325            <rom name="pomorskabitka.tap" size="9608" crc="8c5dda11" sha1="d25fbedf844ce43ee2eb0cb32546c3abcc9111c0" offset="0" />
331            <rom name="pomorskabitka.tap" size="9608" crc="8c5dda11" sha1="d25fbedf844ce43ee2eb0cb32546c3abcc9111c0" offset="0x0000" />
326332         </dataarea>
327333      </part>
328334   </software>
r241777r241778
333339      <publisher>&lt;unknown&gt;</publisher>
334340      <part name="cass1" interface="orao_cass">
335341         <dataarea name="cass" size="3179">
336            <rom name="porno.tap" size="3179" crc="212bb659" sha1="ab422b4548d279a6961e77499f33b602eaacdd0b" offset="0" />
342            <rom name="porno.tap" size="3179" crc="212bb659" sha1="ab422b4548d279a6961e77499f33b602eaacdd0b" offset="0x0000" />
337343         </dataarea>
338344      </part>
339345   </software>
r241777r241778
344350      <publisher>&lt;unknown&gt;</publisher>
345351      <part name="cass1" interface="orao_cass">
346352         <dataarea name="cass" size="5950">
347            <rom name="reversi.tap" size="5950" crc="3964ff16" sha1="2a735bc3ab917c8b2f16d012318aed9f8aa62a52" offset="0" />
353            <rom name="reversi.tap" size="5950" crc="3964ff16" sha1="2a735bc3ab917c8b2f16d012318aed9f8aa62a52" offset="0x0000" />
348354         </dataarea>
349355      </part>
350356   </software>
351357
352   <software name="figchess">
353      <description>Figure Chess</description>
354      <year>1986</year>
355      <publisher>KMI Borovo</publisher>
358   <software name="sah">
359      <description>Sah</description>
360      <year>19??</year>
361      <publisher>&lt;unknown&gt;</publisher>
356362      <part name="cass1" interface="orao_cass">
357363         <dataarea name="cass" size="19745">
358            <rom name="sah.tap" size="19745" crc="02513ff4" sha1="29586a75f9a6ef7b9bb0f370b5eb7f9a00dee37a" offset="0" />
364            <rom name="sah.tap" size="19745" crc="02513ff4" sha1="29586a75f9a6ef7b9bb0f370b5eb7f9a00dee37a" offset="0x0000" />
359365         </dataarea>
360366      </part>
361367   </software>
362368
363369   <software name="sintetiz">
364      <description>Sintetizator Zvuka</description>
365      <year>1987</year>
366      <publisher>Suzy Soft</publisher>
370      <description>SintetizatorZvuka</description>
371      <year>19??</year>
372      <publisher>&lt;unknown&gt;</publisher>
367373      <part name="cass1" interface="orao_cass">
368374         <dataarea name="cass" size="3422">
369            <rom name="sintetizatorzvuka.tap" size="3422" crc="26da3240" sha1="96b4ec2a5b521e27e4fcc91081126aa274ab9230" offset="0" />
375            <rom name="sintetizatorzvuka.tap" size="3422" crc="26da3240" sha1="96b4ec2a5b521e27e4fcc91081126aa274ab9230" offset="0x0000" />
370376         </dataarea>
371377      </part>
372378   </software>
r241777r241778
374380   <software name="sokoban">
375381      <description>Sokoban</description>
376382      <year>19??</year>
377      <publisher>J.P.</publisher>
383      <publisher>&lt;unknown&gt;</publisher>
378384      <part name="cass1" interface="orao_cass">
379385         <dataarea name="cass" size="13829">
380            <rom name="sokoban.tap" size="13829" crc="ffcf7e0c" sha1="12c435c68b2203b68f29c2450740b958e16e0405" offset="0" />
386            <rom name="sokoban.tap" size="13829" crc="ffcf7e0c" sha1="12c435c68b2203b68f29c2450740b958e16e0405" offset="0x0000" />
381387         </dataarea>
382388      </part>
383389   </software>
384390
385391   <software name="spaceinv">
386      <description>Space Invaders</description>
392      <description>SpaceInvaders</description>
387393      <year>19??</year>
388      <publisher>PEL Soft</publisher>
394      <publisher>&lt;unknown&gt;</publisher>
389395      <part name="cass1" interface="orao_cass">
390396         <dataarea name="cass" size="21150">
391            <rom name="spaceinvaders.tap" size="21150" crc="31230e8b" sha1="8021e562130d2b11eb916f3623e65794d93b2a93" offset="0" />
397            <rom name="spaceinvaders.tap" size="21150" crc="31230e8b" sha1="8021e562130d2b11eb916f3623e65794d93b2a93" offset="0x0000" />
392398         </dataarea>
393399      </part>
394400   </software>
395401
396402   <software name="stripajn">
397      <description>Strip Ajnc</description>
398      <year>1985</year>
399      <publisher>Z. Bistrovic</publisher>
403      <description>StripAjnc</description>
404      <year>19??</year>
405      <publisher>&lt;unknown&gt;</publisher>
400406      <part name="cass1" interface="orao_cass">
401407         <dataarea name="cass" size="8750">
402            <rom name="stripajnc.tap" size="8750" crc="68032c11" sha1="3a49a90b7915491eecdec149a5cfb2f90e1a03da" offset="0" />
408            <rom name="stripajnc.tap" size="8750" crc="68032c11" sha1="3a49a90b7915491eecdec149a5cfb2f90e1a03da" offset="0x0000" />
403409         </dataarea>
404410      </part>
405411   </software>
406412
407413   <software name="stripgam">
408      <description>Strip Game Ainc</description>
414      <description>StripGameAinc</description>
409415      <year>19??</year>
410      <publisher>KMI Borovo</publisher>
416      <publisher>&lt;unknown&gt;</publisher>
411417      <part name="cass1" interface="orao_cass">
412418         <dataarea name="cass" size="31615">
413            <rom name="stripgameainc.tap" size="31615" crc="03e38de8" sha1="c5df30d030f44f19182c86fcb6448116f7f92be1" offset="0" />
419            <rom name="stripgameainc.tap" size="31615" crc="03e38de8" sha1="c5df30d030f44f19182c86fcb6448116f7f92be1" offset="0x0000" />
414420         </dataarea>
415421      </part>
416422   </software>
r241777r241778
418424   <software name="tornjev">
419425      <description>Tornjevi</description>
420426      <year>19??</year>
421      <publisher>Tom</publisher>
427      <publisher>&lt;unknown&gt;</publisher>
422428      <part name="cass1" interface="orao_cass">
423429         <dataarea name="cass" size="3966">
424            <rom name="tornjevi.tap" size="3966" crc="38d905d7" sha1="2b21e99b9e847a5bde4acadc03b62ca2e628c93d" offset="0" />
430            <rom name="tornjevi.tap" size="3966" crc="38d905d7" sha1="2b21e99b9e847a5bde4acadc03b62ca2e628c93d" offset="0x0000" />
425431         </dataarea>
426432      </part>
427433   </software>
428434
429435   <software name="ukletidv">
430      <description>Ukleti Dvorac</description>
436      <description>UkletiDvorac</description>
431437      <year>19??</year>
432438      <publisher>&lt;unknown&gt;</publisher>
433439      <part name="cass1" interface="orao_cass">
434440         <dataarea name="cass" size="12398">
435            <rom name="ukletidvorac.tap" size="12398" crc="850123a7" sha1="d867f072832e8c6dd87fe4bbda14cbb720e9ca25" offset="0" />
441            <rom name="ukletidvorac.tap" size="12398" crc="850123a7" sha1="d867f072832e8c6dd87fe4bbda14cbb720e9ca25" offset="0x0000" />
436442         </dataarea>
437443      </part>
438444   </software>
439445
440446   <software name="zid">
441447      <description>Zid</description>
442      <year>1985</year>
443      <publisher>PEL Zabavni Programi</publisher>
448      <year>19??</year>
449      <publisher>&lt;unknown&gt;</publisher>
444450      <part name="cass1" interface="orao_cass">
445451         <dataarea name="cass" size="11345">
446            <rom name="zid.tap" size="11345" crc="c7524e54" sha1="4ee43911a7c49899d2ef7e89308ab3213d1cedac" offset="0" />
452            <rom name="zid.tap" size="11345" crc="c7524e54" sha1="4ee43911a7c49899d2ef7e89308ab3213d1cedac" offset="0x0000" />
447453         </dataarea>
448454      </part>
449455   </software>
450456
451457   <software name="znakovi">
452458      <description>Znakovi</description>
453      <year>1987</year>
454      <publisher>Suzy Soft</publisher>
459      <year>19??</year>
460      <publisher>&lt;unknown&gt;</publisher>
455461      <part name="cass1" interface="orao_cass">
456462         <dataarea name="cass" size="4618">
457            <rom name="znakovi.tap" size="4618" crc="a834c22e" sha1="49340c62aa1f1109f610e95878eb75de24916928" offset="0" />
463            <rom name="znakovi.tap" size="4618" crc="a834c22e" sha1="49340c62aa1f1109f610e95878eb75de24916928" offset="0x0000" />
458464         </dataarea>
459465      </part>
460466   </software>
trunk/hash/pecom_cass.xml
r241777r241778
66   <software name="adresar">
77      <description>Adresar</description>
88      <year>19??</year>
9      <publisher>Ei Racunari</publisher>
9      <publisher>&lt;unknown&gt;</publisher>
1010      <part name="cass1" interface="pecom_cass">
1111         <dataarea name="cass" size="6382680">
12            <rom name="adresar.wav" size="6382680" crc="e0032321" sha1="f6c9d19941175561c942c803aedc87d5c2dd1903" offset="0" />
12            <rom name="adresar.wav" size="6382680" crc="e0032321" sha1="f6c9d19941175561c942c803aedc87d5c2dd1903" offset="0x0000" />
1313         </dataarea>
1414      </part>
1515   </software>
1616
1717   <software name="bioritam">
1818      <description>Bioritam</description>
19      <year>1985</year>
20      <publisher>Ei Racunari</publisher>
19      <year>19??</year>
20      <publisher>&lt;unknown&gt;</publisher>
2121      <part name="cass1" interface="pecom_cass">
2222         <dataarea name="cass" size="5094680">
23            <rom name="bioritam.wav" size="5094680" crc="9fead1c7" sha1="7ed80372fdd57cc68997acc3a7eb1e1628236dfe" offset="0" />
23            <rom name="bioritam.wav" size="5094680" crc="9fead1c7" sha1="7ed80372fdd57cc68997acc3a7eb1e1628236dfe" offset="0x0000" />
2424         </dataarea>
2525      </part>
2626   </software>
2727
2828   <software name="lavirint">
2929      <description>Lavirint</description>
30      <year>1987</year>
31      <publisher>Ei Racunari</publisher>
30      <year>19??</year>
31      <publisher>&lt;unknown&gt;</publisher>
3232      <part name="cass1" interface="pecom_cass">
3333         <dataarea name="cass" size="13222360">
34            <rom name="lavirint.wav" size="13222360" crc="9f0aa1b4" sha1="854e9bbe45e42e09c7e57b561b311a98ff078661" offset="0" />
34            <rom name="lavirint.wav" size="13222360" crc="9f0aa1b4" sha1="854e9bbe45e42e09c7e57b561b311a98ff078661" offset="0x0000" />
3535         </dataarea>
3636      </part>
3737   </software>
3838
3939   <software name="lopovbnk">
40      <description>Lopov i Bankar</description>
41      <year>1985</year>
42      <publisher>Ei Racunari</publisher>
40      <description>LopovIBankar</description>
41      <year>19??</year>
42      <publisher>&lt;unknown&gt;</publisher>
4343      <part name="cass1" interface="pecom_cass">
4444         <dataarea name="cass" size="7996248">
45            <rom name="lopov i bankar.wav" size="7996248" crc="e02b73bc" sha1="6b817af8638a94aa7f7c395467237adf3e226d12" offset="0" />
45            <rom name="lopov i bankar.wav" size="7996248" crc="e02b73bc" sha1="6b817af8638a94aa7f7c395467237adf3e226d12" offset="0x0000" />
4646         </dataarea>
4747      </part>
4848   </software>
4949
5050   <software name="osvajaci">
51      <description>Osvajaci Svemira</description>
52      <year>1985</year>
53      <publisher>Ei Racunari</publisher>
51      <description>OsvajaciSvemira</description>
52      <year>19??</year>
53      <publisher>&lt;unknown&gt;</publisher>
5454      <part name="cass1" interface="pecom_cass">
5555         <dataarea name="cass" size="19538520">
56            <rom name="osvajaci svemira.wav" size="19538520" crc="a9000525" sha1="6758cac948d3fd1400e4f90dd9c1d281dfd42d0e" offset="0" />
56            <rom name="osvajaci svemira.wav" size="19538520" crc="a9000525" sha1="6758cac948d3fd1400e4f90dd9c1d281dfd42d0e" offset="0x0000" />
5757         </dataarea>
5858      </part>
5959   </software>
6060
6161   <software name="pecomrat">
62      <description>Pecom Ratuje</description>
63      <year>1985</year>
64      <publisher>Ei Racunari</publisher>
62      <description>PecomRatuje</description>
63      <year>19??</year>
64      <publisher>&lt;unknown&gt;</publisher>
6565      <part name="cass1" interface="pecom_cass">
6666         <dataarea name="cass" size="7595800">
67            <rom name="pecom ratuje.wav" size="7595800" crc="9837c657" sha1="d481df682df097de3e9b87f28d0be47939e87098" offset="0" />
67            <rom name="pecom ratuje.wav" size="7595800" crc="9837c657" sha1="d481df682df097de3e9b87f28d0be47939e87098" offset="0x0000" />
6868         </dataarea>
6969      </part>
7070   </software>
7171
7272   <software name="kompozit">
73      <description>Sam Svoj Kompozitor</description>
74      <year>1987</year>
75      <publisher>Ei Racunari</publisher>
73      <description>SamSvojKompozitor</description>
74      <year>19??</year>
75      <publisher>&lt;unknown&gt;</publisher>
7676      <part name="cass1" interface="pecom_cass">
7777         <dataarea name="cass" size="3567832">
78            <rom name="sam svoj kompozitor.wav" size="3567832" crc="16a53a50" sha1="6ae2a28f0dfb8c6909240b28051c70149257847b" offset="0" />
78            <rom name="sam svoj kompozitor.wav" size="3567832" crc="16a53a50" sha1="6ae2a28f0dfb8c6909240b28051c70149257847b" offset="0x0000" />
7979         </dataarea>
8080      </part>
8181   </software>
8282
8383   <software name="sljive">
8484      <description>Sljive</description>
85      <year>1986</year>
86      <publisher>Ei Racunari</publisher>
85      <year>19??</year>
86      <publisher>&lt;unknown&gt;</publisher>
8787      <part name="cass1" interface="pecom_cass">
8888         <dataarea name="cass" size="7898072">
89            <rom name="shljive.wav" size="7898072" crc="1c5d5a07" sha1="d63a217571ee0e5216708380844f028875533c4b" offset="0" />
89            <rom name="shljive.wav" size="7898072" crc="1c5d5a07" sha1="d63a217571ee0e5216708380844f028875533c4b" offset="0x0000" />
9090         </dataarea>
9191      </part>
9292   </software>
9393
9494   <software name="suviajnc">
95      <description>Suvi Ajnc</description>
96      <year>1986</year>
97      <publisher>Ei Racunari</publisher>
95      <description>SuviAjnc</description>
96      <year>19??</year>
97      <publisher>&lt;unknown&gt;</publisher>
9898      <part name="cass1" interface="pecom_cass">
9999         <dataarea name="cass" size="11266136">
100            <rom name="suvi ajnc.wav" size="11266136" crc="c922dc59" sha1="8679f34599d6929ce969d3ff16c007358924bd80" offset="0" />
100            <rom name="suvi ajnc.wav" size="11266136" crc="c922dc59" sha1="8679f34599d6929ce969d3ff16c007358924bd80" offset="0x0000" />
101101         </dataarea>
102102      </part>
103103   </software>
104104
105105   <software name="trkakonj">
106      <description>Trka Konja</description>
106      <description>TrkaKonja</description>
107107      <year>19??</year>
108108      <publisher>&lt;unknown&gt;</publisher>
109109      <part name="cass1" interface="pecom_cass">
110110         <dataarea name="cass" size="6658904">
111            <rom name="trka konja.wav" size="6658904" crc="f388087b" sha1="5dfc064b154a06409e2f57832318097756384ba3" offset="0" />
111            <rom name="trka konja.wav" size="6658904" crc="f388087b" sha1="5dfc064b154a06409e2f57832318097756384ba3" offset="0x0000" />
112112         </dataarea>
113113      </part>
114114   </software>
trunk/hash/pokemini.xml
r241777r241778
101101   </software>
102102
103103   <software name="pokezcrd">
104      <description>Pok&#233;mon Zany Cards (Aus, Euro, USA)</description>
105      <year>2001</year>
106      <publisher>Nintendo</publisher>
107      <part name="cart" interface="pokemini_cart">
108         <dataarea name="rom" size="524288">
109            <rom name="cards_u.bin" size="524288" crc="8a2fc063" sha1="f34909ed7d1c1d432819ff774c0767ebfa42fb84" offset="000000" />
110         </dataarea>
111      </part>
112   </software>
113
114   <software name="pokezcrdf" cloneof="pokezcrd">
115104      <description>Pok&#233;mon Zany Cards (Fra)</description>
116105      <year>2001</year>
117106      <publisher>Nintendo</publisher>
r241777r241778
144133      </part>
145134   </software>
146135
147   <software name="ppartyj" cloneof="pparty" supported="partial">
148      <description>Pok&#233;mon Party Mini (Jpn)</description>
149      <year>2001</year>
150      <publisher>Nintendo</publisher>
151      <part name="cart" interface="pokemini_cart">
152         <dataarea name="rom" size="524288">
153            <rom name="party_j.bin" size="524288" crc="ae2dde60" sha1="4db4568b990077c21320b50dee6a3ceb258809db" offset="000000" />
154         </dataarea>
155      </part>
156   </software>
157
158136   <software name="ppartyu" cloneof="pparty" supported="partial">
159      <description>Pok&#233;mon Party Mini (Aus, USA)</description>
137      <description>Pok&#233;mon Party Mini (USA)</description>
160138      <year>2001</year>
161139      <publisher>Nintendo</publisher>
162140      <part name="cart" interface="pokemini_cart">
r241777r241778
167145   </software>
168146
169147   <software name="ppinb">
170      <description>Pok&#233;mon Pinball Mini (Aus, Euro, USA)</description>
148      <description>Pok&#233;mon Pinball Mini (USA)</description>
171149      <year>2001</year>
172150      <publisher>Nintendo</publisher>
173151      <part name="cart" interface="pokemini_cart">
r241777r241778
310288   </software>
311289
312290   <software name="ppuzzlc" supported="partial">
313      <description>Pok&#233;mon Puzzle Collection (Aus, Euro, USA)</description>
291      <description>Pok&#233;mon Puzzle Collection (USA)</description>
314292      <year>2001</year>
315293      <publisher>Nintendo</publisher>
316294      <part name="cart" interface="pokemini_cart">
r241777r241778
320298      </part>
321299   </software>
322300
323   <software name="ppuzzlcp" cloneof="ppuzzlc" supported="partial">
324      <description>Pok&#233;mon Puzzle Collection (USA, GameCube Preview)</description>
325      <year>2001</year>
301   <software name="ppuzzlc2" supported="partial">
302      <description>Pok&#233;mon Puzzle Collection Vol. 2 (Jpn)</description>
303      <year>2002</year>
326304      <publisher>Nintendo</publisher>
327305      <part name="cart" interface="pokemini_cart">
328306         <dataarea name="rom" size="524288">
329            <rom name="pokemon puzzle collection (usa) (gamecube preview).bin" size="524288" crc="6f8ae656" sha1="048bb1d30d6ff21be14dd123c52a375e12611238" offset="000000" />
307            <rom name="pokemon puzzle collection vol. 2 (japan).bin" size="524288" crc="76a1bbf8" sha1="11775bbac2e985ef90d4192ed6322dd3b8352ac9" offset="000000" />
330308         </dataarea>
331309      </part>
332310   </software>
333311
334   <software name="ppuzzlcf" cloneof="ppuzzlc" supported="partial">
335      <description>Pok&#233;mon Puzzle Collection (Fra)</description>
336      <year>2001</year>
337      <publisher>Nintendo</publisher>
338      <part name="cart" interface="pokemini_cart">
339         <dataarea name="rom" size="524288">
340            <rom name="puzzle_f.bin" size="524288" crc="3004c354" sha1="5a2927770c1e2c7df3f8cc80c9252bb1111ca3a6" offset="000000" />
341         </dataarea>
342      </part>
343   </software>
344
345312   <software name="ppuzzlcfp" cloneof="ppuzzlc" supported="partial">
346313      <description>Pok&#233;mon Puzzle Collection (Fra, GameCube Preview)</description>
347314      <year>2001</year>
r241777r241778
397364      </part>
398365   </software>
399366
400   <software name="ppuzzlc2" supported="partial">
401      <description>Pok&#233;mon Puzzle Collection Vol. 2 (Jpn)</description>
402      <year>2002</year>
367   <software name="ppuzzlcp" cloneof="ppuzzlc" supported="partial">
368      <description>Pok&#233;mon Puzzle Collection (USA, GameCube Preview)</description>
369      <year>2001</year>
403370      <publisher>Nintendo</publisher>
404371      <part name="cart" interface="pokemini_cart">
405372         <dataarea name="rom" size="524288">
406            <rom name="pokemon puzzle collection vol. 2 (japan).bin" size="524288" crc="76a1bbf8" sha1="11775bbac2e985ef90d4192ed6322dd3b8352ac9" offset="000000" />
373            <rom name="pokemon puzzle collection (usa) (gamecube preview).bin" size="524288" crc="6f8ae656" sha1="048bb1d30d6ff21be14dd123c52a375e12611238" offset="000000" />
407374         </dataarea>
408375      </part>
409376   </software>
trunk/hash/psion.xml
r0r241778
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!--
5Info taken from: http://www.retroisle.com/others/psion/organiser2/software.php
6
7Undumped datapack:
8 - Backup (Gene Code Software)
9 - Banking(Psoftshare)
10 - BanKmaN (Computer Solutions)
11 - Calctime (Psoftshare)
12 - Carfax (CLS Software)
13 - ChrCodes (ZIP-Software)
14 - Data Organiser (Harvester Information Systems Ltd)
15 - Easy-Writer (Monad International Ltd)
16 - Enigma (ZIP-Software)
17 - Files (ZIP-Software)
18 - Games Organiser (Harvester Information Systems Ltd)
19 - Games 1 (Kirsta Products Ltd)
20 - HB Games Pack (HB Consultants)
21 - HB Games 2 (HB Consultants)
22 - IFILES (EMF In Control)
23 - Index Manager (EMF In Control)
24 - Informed Organiser (Harvester Information Systems Ltd)
25 - Justex (MHS)
26 - Keyb3 (Gene Code Software)
27 - KProg (Kirsta Products Ltd)
28 - LACE (Beachcomber Software)
29 - LACE II (Beachcomber Software)
30 - Language Prakpak (Mackay Language Software)
31 - Letter Organiser (Harvester Information Systems Ltd)
32 - List (ZIP-Software)
33 - Mfile
34 - Music Prakpak (Mackay Language Software)
35 - Notepad (Psoftshare)
36 - ODBTran (Sycom Services)
37 - Oxford Concise Spelling Checker  Psion Ltd)
38 - PEEK (ZIP-Software)
39 - Portfolio
40 - Pro Finance
41 - Psion Assembler (Transform Ltd)
42 - Pure Finance
43 - Qbase (Gene Code Software)
44 - Routewise (Titan Computers Ltd)
45 - SAMS (Harvester Information Systems Ltd)
46 - Sightmaster Navigation Program  Waypoint Software)
47 - Sums (ZIP-Software)
48 - Thesaurus & Spelling Checker (Psion Ltd)
49 - Utilities for Programmers
50 - Watch (ZIP-Software)
51 - XBase (Cubsoft|)
52 - Xday (ZIP-Software)
53 - XP-Booster (Mackay Language Software)
54 - Yahtzee (Psoftshare)
55
56-->
57
58<softwarelist name="psion" description="Psion Organiser II Datapack">
59   <software name="abcode">
60      <!-- Compatible series XP/LZ -->
61      <description>Anteta Barcode Reader</description>
62      <year>198?</year>
63      <publisher>Anteta</publisher>
64      <part name="cart" interface="psion_pack">
65         <dataarea name="rom" size="31046">
66            <rom name="abcode.opk" size="31046" crc="0ca68683" sha1="2599a7240f3d361a375e61e4d3d11e4ba2d63fef" offset="0" />
67         </dataarea>
68      </part>
69   </software>
70
71   <software name="airnav">
72      <!-- Compatible series LZ -->
73      <description>Airnav Professional 2c</description>
74      <year>198?</year>
75      <publisher>&lt;unknown&gt;</publisher>
76      <part name="cart" interface="psion_pack">
77         <dataarea name="rom" size="64978">
78            <rom name="airnav.opk" size="64978" crc="e5e5b8b4" sha1="0a11ee4eb491962faacdac4dfe296a97475c0b6e" offset="0" />
79         </dataarea>
80      </part>
81   </software>
82
83   <software name="ascribe">
84      <!-- Compatible series CM/XP/LZ -->
85      <description>AutoScribe Plus</description>
86      <year>1989</year>
87      <publisher>Widget Software</publisher>
88      <part name="cart" interface="psion_pack">
89         <dataarea name="rom" size="16328">
90            <rom name="ascribe.opk" size="16328" crc="62c9fda6" sha1="f49b48b82eed30e4dc862f1e7d256e94f3c80f24" offset="0" />
91         </dataarea>
92      </part>
93   </software>
94
95   <software name="assem">
96      <!-- Compatible series XP/LZ -->
97      <description>Assembler Pack 1.0</description>
98      <year>1989</year>
99      <publisher>AR Software</publisher>
100      <part name="cart" interface="psion_pack">
101         <dataarea name="rom" size="30276">
102            <rom name="assem.opk" size="30276" crc="a3f863c7" sha1="505afa975ed0068c5cce0a004c924824f8004674" offset="0" />
103         </dataarea>
104      </part>
105   </software>
106
107
108   <software name="clink" supported="no">
109      <!-- Internal software of Comms Link device -->
110      <description>Comms Link</description>
111      <year>1987</year>
112      <publisher>Psion Ltd</publisher>
113      <part name="cart" interface="psion_pack">
114         <dataarea name="rom" size="32312">
115            <rom name="commslink.opk" size="32312" crc="9d210b51" sha1="2307a773b30a95f3f09225821d619ff6cdd8ae7d" offset="0" />
116         </dataarea>
117      </part>
118   </software>
119
120   <software name="clip">
121      <!-- Compatible series LZ -->
122      <description>Clipboard Inspection System</description>
123      <year>1991</year>
124      <publisher>Rafiq Mahmood</publisher>
125      <part name="cart1" interface="psion_pack">
126         <dataarea name="rom" size="32270">
127            <rom name="clip.opk" size="32270" crc="6c7afbdd" sha1="6505cb269ec5cc63cd57cc54b0b12181f155f9f3" offset="0" />
128         </dataarea>
129      </part>
130      <part name="cart2" interface="psion_pack">
131         <dataarea name="rom" size="16007">
132            <rom name="notice.opk" size="16007" crc="e1a5d6e0" sha1="46e4f89ba13381e8684fe40194ea2ddaa4f8c924" offset="0" />
133         </dataarea>
134      </part>
135   </software>
136
137   <software name="coastal">
138      <!-- Compatible series CM/XP/LZ -->
139      <description>Coastal v4.2a</description>
140      <year>198?</year>
141      <publisher>Maritek Ltd</publisher>
142      <part name="cart" interface="psion_pack">
143         <dataarea name="rom" size="32659">
144            <rom name="coastal.opk" size="32659" crc="380bf6a2" sha1="46fd072f43bf92afadf0bb3e0f7a5beef9c8443d" offset="0" />
145         </dataarea>
146      </part>
147   </software>
148
149   <software name="finance">
150      <!-- Compatible series CM/XP/LZ -->
151      <description>Finance</description>
152      <year>198?</year>
153      <publisher>Aware</publisher>
154      <part name="cart" interface="psion_pack">
155         <dataarea name="rom" size="16379">
156            <rom name="finance.opk" size="16379" crc="1c34e46b" sha1="5ada96fe015abfc6712236c65d9e6644ac0826e7" offset="0" />
157         </dataarea>
158      </part>
159   </software>
160
161   <software name="finance2">
162      <!-- Compatible series XP/LZ -->
163      <description>Finance II</description>
164      <year>198?</year>
165      <publisher>Aware</publisher>
166      <part name="cart" interface="psion_pack">
167         <dataarea name="rom" size="32709">
168            <rom name="finance2.opk" size="32709" crc="e9295ae2" sha1="e168479fd171777e63441d7dd63ec6a46914d678" offset="0" />
169         </dataarea>
170      </part>
171   </software>
172
173   <software name="finger">
174      <!-- Compatible series CM/XP/LZ -->
175      <description>Finger Organiser</description>
176      <year>1988</year>
177      <publisher>Harvester Information Systems</publisher>
178      <part name="cart" interface="psion_pack">
179         <dataarea name="rom" size="13890">
180            <rom name="finger.opk" size="13890" crc="36785487" sha1="51a6abfcb68846425ae90e63ee228b39eba6ebb2" offset="0" />
181         </dataarea>
182      </part>
183   </software>
184
185   <software name="fish">
186      <!-- Compatible series CM/XP/LZ -->
187      <description>Fish</description>
188      <year>198?</year>
189      <publisher>&lt;unknown&gt;</publisher>
190      <part name="cart" interface="psion_pack">
191         <dataarea name="rom" size="9365">
192            <rom name="fish.opk" size="9365" crc="92bc7d19" sha1="feaf62bc4349e91ac9c7beb6bd4a5e5cb548d520" offset="0" />
193         </dataarea>
194      </part>
195   </software>
196
197   <software name="fm">
198      <!-- Compatible series CM/XP/LZ -->
199      <description>FileMaster v3.76</description>
200      <year>1988</year>
201      <publisher>Widget Software</publisher>
202      <part name="cart" interface="psion_pack">
203         <dataarea name="rom" size="16201">
204            <rom name="fm.opk" size="16201" crc="1c8cd832" sha1="6fe29328f19d3c36780a261c6df7e6cef5c291f8" offset="0" />
205         </dataarea>
206      </part>
207   </software>
208
209   <software name="fnkey">
210      <!-- Compatible series LZ -->
211      <description>FNkey v3.1</description>
212      <year>1989</year>
213      <publisher>Cubsoft</publisher>
214      <part name="cart" interface="psion_pack">
215         <dataarea name="rom" size="4333">
216            <rom name="fnkey.opk" size="4333" crc="46c198dc" sha1="1f9a94216c738649f00b51e3e5d07a0487a1bff9" offset="0" />
217         </dataarea>
218      </part>
219   </software>
220
221   <software name="gpack">
222      <!-- Compatible series LZ -->
223      <description>Game Pack</description>
224      <year>198?</year>
225      <publisher>&lt;unknown&gt;</publisher>
226      <part name="cart" interface="psion_pack">
227         <dataarea name="rom" size="16559">
228            <rom name="gpack.opk" size="16559" crc="508604b2" sha1="866639b6ae22011a40f47cbdfdee684790f073a0" offset="0" />
229         </dataarea>
230      </part>
231   </software>
232
233   <software name="inkas">
234      <!-- Compatible series LZ/POS -->
235      <description>Inkasencki v6.1</description>
236      <year>199?</year>
237      <publisher>&lt;unknown&gt;</publisher>
238      <part name="cart" interface="psion_pack">
239         <dataarea name="rom" size="48983">
240            <rom name="inkas.opk" size="48983" crc="fbade179" sha1="803c827124a59ff45ceaaf9f66b76b8ff08aba23" offset="0" />
241         </dataarea>
242      </part>
243   </software>
244
245   <software name="maths">
246      <!-- Compatible series CM/XP/LZ -->
247      <description>Maths</description>
248      <year>198?</year>
249      <publisher>Psion</publisher>
250      <part name="cart" interface="psion_pack">
251         <dataarea name="rom" size="16089">
252            <rom name="maths.opk" size="16089" crc="8cce0583" sha1="9b847068e2f6af575b1ba760245007f436bdf1dd" offset="0" />
253         </dataarea>
254      </part>
255   </software>
256
257   <software name="paralink">
258      <!-- Compatible series XP/LZ -->
259      <description>ParaLink v2.0</description>
260      <year>198?</year>
261      <publisher>Silvertree</publisher>
262      <part name="cart" interface="psion_pack">
263         <dataarea name="rom" size="6062">
264            <rom name="paralink.opk" size="6062" crc="75a3596d" sha1="43dfdd4b39d9da00ccb7aa74b66d610e90867b75" offset="0" />
265         </dataarea>
266      </part>
267   </software>
268
269   <software name="persfin">
270      <!-- Compatible series XP/LZ -->
271      <description>Personal Finance</description>
272      <year>1987</year>
273      <publisher>Willow Enterprises Limited</publisher>
274      <part name="cart" interface="psion_pack">
275         <dataarea name="rom" size="16179">
276            <rom name="persfin.opk" size="16179" crc="2fb0f433" sha1="21bedf9bd3de307650c9b6cad3f11dc9094d0a92" offset="0" />
277         </dataarea>
278      </part>
279   </software>
280
281   <software name="result">
282      <!-- Compatible series LZ -->
283      <description>Result Vers 4L</description>
284      <year>1989</year>
285      <publisher>Terrace Software</publisher>
286      <part name="cart" interface="psion_pack">
287         <dataarea name="rom" size="16382">
288            <rom name="result.opk" size="16382" crc="8a7cd79f" sha1="40a385ab126c4a6b5ee23ed2097da15ec73aceb1" offset="0" />
289         </dataarea>
290      </part>
291   </software>
292
293   <software name="ssheet">
294      <!-- Compatible series XP/LZ -->
295      <description>Spreadsheet</description>
296      <year>1987</year>
297      <publisher>Psion Ltd</publisher>
298      <part name="cart" interface="psion_pack">
299         <dataarea name="rom" size="32508">
300            <rom name="ssheet.opk" size="32508" crc="6afc6dcc" sha1="b0b2059fd1c59ba7c7b55235745fd36186bdd5ca" offset="0" />
301         </dataarea>
302      </part>
303   </software>
304
305   <software name="topfin">
306      <!-- Compatible series LZ -->
307      <description>Top Finance v2.1f</description>
308      <year>1988</year>
309      <publisher>Aware</publisher>
310      <part name="cart" interface="psion_pack">
311         <dataarea name="rom" size="16338">
312            <rom name="topfin.opk" size="16338" crc="480d3056" sha1="4d869fd7429465db78ceaa0f59ca5a447316474b" offset="0" />
313         </dataarea>
314      </part>
315   </software>
316
317   <software name="travel">
318      <!-- Compatible series XP/LZ -->
319      <description>Travel Pack 1.5</description>
320      <year>1988</year>
321      <publisher>Organized Solutions Ltd</publisher>
322      <part name="cart" interface="psion_pack">
323         <dataarea name="rom" size="65493">
324            <rom name="travel.opk" size="65493" crc="38310574" sha1="5be0e7b121998c7d238fe8c639b732d0272d70ea" offset="0" />
325         </dataarea>
326      </part>
327   </software>
328
329   <software name="xform">
330      <!-- Compatible series XP/LZ -->
331      <description>Formulator</description>
332      <year>198?</year>
333      <publisher>Psion Ltd</publisher>
334      <part name="cart" interface="psion_pack">
335         <dataarea name="rom" size="32407">
336            <rom name="xform.opk" size="32407" crc="cf3fd9c4" sha1="712ebace6fb711bd98ea7053105f3a072ffa695c" offset="0" />
337         </dataarea>
338      </part>
339   </software>
340
341   <software name="xforma">
342      <!-- Compatible series XP/LZ -->
343      <description>Formulator (Alt)</description>
344      <year>198?</year>
345      <publisher>Psion Ltd</publisher>
346      <part name="cart" interface="psion_pack">
347         <dataarea name="rom" size="32773">
348            <rom name="xforma.opk" size="32773" crc="462ad96e" sha1="221235da3ecf22ac71a7ab248afc2d681ccd6d6d" offset="0" />
349         </dataarea>
350      </part>
351   </software>
352
353   <software name="xformtop">
354      <!-- Compatible series XP/LZ -->
355      <description>Formulator Top</description>
356      <year>198?</year>
357      <publisher>Psion Ltd</publisher>
358      <part name="cart" interface="psion_pack">
359         <dataarea name="rom" size="47862">
360            <rom name="xformtop.opk" size="47862" crc="9e109d42" sha1="a91e9eb195ce865c38099cd56ceb29ec52323377" offset="0" />
361         </dataarea>
362      </part>
363   </software>
364</softwarelist>
trunk/hash/psion1.xml
r241777r241778
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3<softwarelist name="psion1" description="Psion Organiser I Datapack">
4   <software name="financep" supported="no">
5      <description>Finance Pack</description>
6      <year>198?</year>
7      <publisher>Psion</publisher>
8      <part name="cart" interface="psion_pack">
9         <dataarea name="rom" size="16390">
10            <rom name="finance.op1" size="16390" crc="5e4b1e5a" sha1="b2bf3f2a79597dfaed454d97bcc5ff2740b32b3c" offset="0" />
11         </dataarea>
12      </part>
13   </software>
14
15   <software name="linkup" supported="no">
16      <description>Link Up Pack</description>
17      <year>198?</year>
18      <publisher>Psion</publisher>
19      <part name="cart" interface="psion_pack">
20         <dataarea name="rom" size="4299">
21            <rom name="link-up.op1" size="4299" crc="f6cd6491" sha1="12ed6ab4e05fd068e91736826ec7473824fdc54a" offset="0" />
22         </dataarea>
23      </part>
24   </software>
25
26   <software name="mathspac" supported="no">
27      <description>Maths Pack</description>
28      <year>198?</year>
29      <publisher>Psion</publisher>
30      <part name="cart" interface="psion_pack">
31         <dataarea name="rom" size="16317">
32            <rom name="maths.op1" size="16317" crc="5dc289af" sha1="31c08efc37313e866b4876be4114a0ebe5fb7979" offset="0" />
33         </dataarea>
34      </part>
35   </software>
36
37   <software name="sciencep" supported="no">
38      <description>Science Pack</description>
39      <year>198?</year>
40      <publisher>Psion</publisher>
41      <part name="cart1" interface="psion_pack">
42         <dataarea name="rom" size="16390">
43            <rom name="science1.op1" size="16390" crc="374728d0" sha1="55f1e1517640d694e05102d72dd01f2dcb852664" offset="0" />
44         </dataarea>
45      </part>
46      <part name="cart2" interface="psion_pack">
47         <dataarea name="rom" size="16390">
48            <rom name="science2.op1" size="16390" crc="6f9a3006" sha1="0f33b5f413fc658dc5c33623845e8236374cea0f" offset="0" />
49         </dataarea>
50      </part>
51   </software>
52
53   <software name="softpack" supported="no">
54      <description>Software Pack</description>
55      <year>198?</year>
56      <publisher>Psion</publisher>
57      <part name="cart" interface="psion_pack">
58         <dataarea name="rom" size="16390">
59            <rom name="software.op1" size="16390" crc="df02f390" sha1="aebfe3a74409b2c52b009d8d4f9d4c4d5732e222" offset="0" />
60         </dataarea>
61      </part>
62   </software>
63
64   <software name="utilityp" supported="no">
65      <description>Utility Pack</description>
66      <year>198?</year>
67      <publisher>Psion</publisher>
68      <part name="cart1" interface="psion_pack">
69         <dataarea name="rom" size="8198">
70            <rom name="utility1.op1" size="8198" crc="62460a38" sha1="ca299aebdafa5d80d6e6f838e0d4de5900db511d" offset="0" />
71         </dataarea>
72      </part>
73      <part name="cart2" interface="psion_pack">
74         <dataarea name="rom" size="8105">
75            <rom name="utility2.op1" size="8105" crc="5fded4c4" sha1="65f44d0ce0885fbbb219b3cdc2f48269a997b4f5" offset="0" />
76         </dataarea>
77      </part>
78   </software>
79
80   <software name="construc" supported="no">
81      <description>Construction Pack</description>
82      <year>198?</year>
83      <publisher>Wessex</publisher>
84      <part name="cart" interface="psion_pack">
85         <dataarea name="rom" size="15063">
86            <rom name="wessex.op1" size="15063" crc="44a1d7ef" sha1="3c5e0d103952aafd55c456692e9eaad1eb0f0ceb" offset="0" />
87         </dataarea>
88      </part>
89   </software>
90
91   <software name="restaur" supported="no">
92      <description>Restaurant Guide </description>
93      <year>198?</year>
94      <publisher>Psion</publisher>
95      <part name="cart" interface="psion_pack">
96         <dataarea name="rom" size="11343">
97            <rom name="restguide.op1" size="11343" crc="7224f817" sha1="37d2548f18556bd2fbb7d592fe2a36811a1b1aaf" offset="0" />
98         </dataarea>
99      </part>
100   </software>
101</softwarelist>
trunk/hash/psion2.xml
r241777r241778
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!--
5Info taken from: http://www.retroisle.com/others/psion/organiser2/software.php
6
7Undumped datapack:
8 - Backup (Gene Code Software)
9 - Banking(Psoftshare)
10 - BanKmaN (Computer Solutions)
11 - Calctime (Psoftshare)
12 - Carfax (CLS Software)
13 - ChrCodes (ZIP-Software)
14 - Easy-Writer (Monad International Ltd)
15 - Enigma (ZIP-Software)
16 - Files (ZIP-Software)
17 - Games 1 (Kirsta Products Ltd)
18 - HB Games Pack (HB Consultants)
19 - HB Games 2 (HB Consultants)
20 - IFILES (EMF In Control)
21 - Index Manager (EMF In Control)
22 - Informed Organiser (Harvester Information Systems Ltd)
23 - Justex (MHS)
24 - Keyb3 (Gene Code Software)
25 - KProg (Kirsta Products Ltd)
26 - LACE (Beachcomber Software)
27 - LACE II (Beachcomber Software)
28 - Language Prakpak (Mackay Language Software)
29 - Letter Organiser (Harvester Information Systems Ltd)
30 - List (ZIP-Software)
31 - Mfile
32 - Music Prakpak (Mackay Language Software)
33 - Notepad (Psoftshare)
34 - ODBTran (Sycom Services)
35 - PEEK (ZIP-Software)
36 - Pro Finance
37 - Psion Assembler (Transform Ltd)
38 - Pure Finance
39 - Qbase (Gene Code Software)
40 - Routewise (Titan Computers Ltd)
41 - SAMS (Harvester Information Systems Ltd)
42 - Sightmaster Navigation Program (Waypoint Software)
43 - Sums (ZIP-Software)
44 - Utilities for Programmers
45 - Watch (ZIP-Software)
46 - Xday (ZIP-Software)
47 - XP-Booster (Mackay Language Software)
48 - Yahtzee (Psoftshare)
49
50-->
51
52<softwarelist name="psion2" description="Psion Organiser II Datapack">
53   <software name="abcode">
54      <description>Anteta Barcode Reader</description>
55      <year>198?</year>
56      <publisher>Anteta</publisher>
57      <sharedfeat name="compatibility" value="XP/LZ"/>
58      <part name="cart" interface="psion_pack">
59         <dataarea name="rom" size="31046">
60            <rom name="abcode.opk" size="31046" crc="0ca68683" sha1="2599a7240f3d361a375e61e4d3d11e4ba2d63fef" offset="0" />
61         </dataarea>
62      </part>
63   </software>
64
65   <software name="airnav">
66      <description>Airnav Professional 2c</description>
67      <year>198?</year>
68      <publisher>&lt;unknown&gt;</publisher>
69      <sharedfeat name="compatibility" value="LZ"/>
70      <part name="cart" interface="psion_pack">
71         <dataarea name="rom" size="64978">
72            <rom name="airnav.opk" size="64978" crc="e5e5b8b4" sha1="0a11ee4eb491962faacdac4dfe296a97475c0b6e" offset="0" />
73         </dataarea>
74      </part>
75   </software>
76
77   <software name="anglerpa">
78      <description>Angler Pack</description>
79      <year>198?</year>
80      <publisher>Skyfact Software</publisher>
81      <sharedfeat name="compatibility" value="CM/XP"/>
82      <part name="cart" interface="psion_pack">
83         <dataarea name="rom" size="9365">
84            <rom name="angler.opk" size="9365" crc="92bc7d19" sha1="feaf62bc4349e91ac9c7beb6bd4a5e5cb548d520" offset="0" />
85         </dataarea>
86      </part>
87   </software>
88
89   <software name="ascribe4">
90      <description>AutoScribe Plus v4.11</description>
91      <year>1989</year>
92      <publisher>Widget Software</publisher>
93      <sharedfeat name="compatibility" value="CM/XP/LZ"/>
94      <part name="cart" interface="psion_pack">
95         <dataarea name="rom" size="16328">
96            <rom name="ascribe411.opk" size="16328" crc="62c9fda6" sha1="f49b48b82eed30e4dc862f1e7d256e94f3c80f24" offset="0" />
97         </dataarea>
98      </part>
99   </software>
100
101   <software name="ascribe5">
102      <description>AutoScribe Plus v5.11</description>
103      <year>198?</year>
104      <publisher>Widget Software</publisher>
105      <sharedfeat name="compatibility" value="CM/XP/LZ"/>
106      <part name="cart" interface="psion_pack">
107         <dataarea name="rom" size="16026">
108            <rom name="ascribe511.opk" size="16026" crc="f15837ff" sha1="a23eba4ba8e94bdc3d3e3245cf13aad82093a03d" offset="0" />
109         </dataarea>
110      </part>
111   </software>
112
113   <software name="assem">
114      <description>Assembler Pack v1.0</description>
115      <year>1989</year>
116      <publisher>A.R. Software</publisher>
117      <sharedfeat name="compatibility" value="CM/XP"/>
118      <part name="cart" interface="psion_pack">
119         <dataarea name="rom" size="30276">
120            <rom name="assem.opk" size="30276" crc="a3f863c7" sha1="505afa975ed0068c5cce0a004c924824f8004674" offset="0" />
121         </dataarea>
122      </part>
123   </software>
124
125   <software name="bcprinte">
126      <description>Barcode Printer I v1.42</description>
127      <year>198?</year>
128      <publisher>Gaascom Ltd.</publisher>
129      <sharedfeat name="compatibility" value="CM/XP"/>
130      <part name="cart" interface="psion_pack">
131         <dataarea name="rom" size="16389">
132            <rom name="barcodeprinter.opk" size="16389" crc="9db80aad" sha1="2b39f10c9d09d3b473c816e434929893bffe8b62" offset="0" />
133         </dataarea>
134      </part>
135   </software>
136
137   <software name="clip">
138      <description>Clipboard Inspection System</description>
139      <year>1991</year>
140      <publisher>Rafiq Mahmood</publisher>
141      <sharedfeat name="compatibility" value="LZ"/>
142      <part name="cart1" interface="psion_pack">
143         <dataarea name="rom" size="32270">
144            <rom name="clip.opk" size="32270" crc="6c7afbdd" sha1="6505cb269ec5cc63cd57cc54b0b12181f155f9f3" offset="0" />
145         </dataarea>
146      </part>
147      <part name="cart2" interface="psion_pack">
148         <dataarea name="rom" size="16007">
149            <rom name="notice.opk" size="16007" crc="e1a5d6e0" sha1="46e4f89ba13381e8684fe40194ea2ddaa4f8c924" offset="0" />
150         </dataarea>
151      </part>
152   </software>
153
154   <software name="coastal">
155      <description>Coastal v4.2a</description>
156      <year>198?</year>
157      <publisher>Maritek Ltd</publisher>
158      <sharedfeat name="compatibility" value="CM/XP/LZ"/>
159      <part name="cart" interface="psion_pack">
160         <dataarea name="rom" size="32659">
161            <rom name="coastal.opk" size="32659" crc="380bf6a2" sha1="46fd072f43bf92afadf0bb3e0f7a5beef9c8443d" offset="0" />
162         </dataarea>
163      </part>
164   </software>
165
166   <software name="dataorg">
167      <description>The Data Organiser v2.4</description>
168      <year>198?</year>
169      <publisher>Harvester Information Systems</publisher>
170      <sharedfeat name="compatibility" value="CM/XP"/>
171      <part name="cart" interface="psion_pack">
172         <dataarea name="rom" size="16254">
173            <rom name="dataorg24.opk" size="16254" crc="c1718598" sha1="f18ee33dcdeb7ccb1d3d80ef9c4bd6c806476ff9" offset="0" />
174         </dataarea>
175      </part>
176   </software>
177
178   <software name="ferreth">
179      <description>Ferret Helper v5.1N</description>
180      <year>198?</year>
181      <publisher>Ferret Information Systems</publisher>
182      <sharedfeat name="compatibility" value="CM/XP"/>
183      <part name="cart" interface="psion_pack">
184         <dataarea name="rom" size="16357">
185            <rom name="ferret51n.opk" size="16357" crc="0c374de4" sha1="604308fbaeadc8f4bc0b6d79de1ac9e03bd7bfab" offset="0" />
186         </dataarea>
187      </part>
188   </software>
189
190   <software name="fm375">
191      <description>FileMaster v3.75</description>
192      <year>1988</year>
193      <publisher>Widget Software</publisher>
194      <sharedfeat name="compatibility" value="CM/XP"/>
195      <part name="cart" interface="psion_pack">
196         <dataarea name="rom" size="16335">
197            <rom name="filemaster375.opk" size="16335" crc="810554d7" sha1="505c7a52dc9f4563908532706d2b0e8122d59ce5" offset="0" />
198         </dataarea>
199      </part>
200   </software>
201
202   <software name="fm376">
203      <description>FileMaster v3.76</description>
204      <year>1988</year>
205      <publisher>Widget Software</publisher>
206      <sharedfeat name="compatibility" value="CM/XP"/>
207      <part name="cart" interface="psion_pack">
208         <dataarea name="rom" size="16201">
209            <rom name="filemaster376.opk" size="16201" crc="1c8cd832" sha1="6fe29328f19d3c36780a261c6df7e6cef5c291f8" offset="0" />
210         </dataarea>
211      </part>
212   </software>
213
214   <software name="fm3762">
215      <description>FileMaster v3.762</description>
216      <year>1988</year>
217      <publisher>Widget Software</publisher>
218      <sharedfeat name="compatibility" value="CM/XP"/>
219      <part name="cart" interface="psion_pack">
220         <dataarea name="rom" size="16194">
221            <rom name="filemaster3762.opk" size="16194" crc="f626ed8a" sha1="08d70630ecf3b0160ee7a5c509bece1e1cc5bc39" offset="0" />
222         </dataarea>
223      </part>
224   </software>
225
226   <software name="finance">
227      <description>Finance Pack</description>
228      <year>198?</year>
229      <publisher>Aware</publisher>
230      <sharedfeat name="compatibility" value="CM/XP"/>
231      <part name="cart1" interface="psion_pack">
232         <dataarea name="rom" size="16379">
233            <rom name="finance1b.opk" size="16379" crc="1c34e46b" sha1="5ada96fe015abfc6712236c65d9e6644ac0826e7" offset="0" />
234         </dataarea>
235      </part>
236      <part name="cart2" interface="psion_pack">
237         <dataarea name="rom" size="16359">
238            <rom name="finance1a.opk" size="16359" crc="33cca342" sha1="89d90fbeb27c30dae069db392cc06fd914dc2652" offset="0" />
239         </dataarea>
240      </part>
241   </software>
242
243   <software name="finance2">
244      <description>Finance Pack II</description>
245      <year>198?</year>
246      <publisher>Aware</publisher>
247      <sharedfeat name="compatibility" value="CM/XP/LZ"/>
248      <part name="cart" interface="psion_pack">
249         <dataarea name="rom" size="32709">
250            <rom name="finance2.opk" size="32709" crc="e9295ae2" sha1="e168479fd171777e63441d7dd63ec6a46914d678" offset="0" />
251         </dataarea>
252      </part>
253   </software>
254
255   <software name="finger13">
256      <description>Finger Organiser v1.3</description>
257      <year>198?</year>
258      <publisher>Harvester Information Systems</publisher>
259      <sharedfeat name="compatibility" value="CM/XP"/>
260      <part name="cart" interface="psion_pack">
261         <dataarea name="rom" size="13753">
262            <rom name="finger13.opk" size="13753" crc="84d9d158" sha1="9dcc8f2abfa9808e151686d5342dbfb0115167f4" offset="0" />
263         </dataarea>
264      </part>
265   </software>
266
267   <software name="finger14">
268      <description>Finger Organiser v1.4</description>
269      <year>198?</year>
270      <publisher>Harvester Information Systems</publisher>
271      <sharedfeat name="compatibility" value="CM/XP"/>
272      <part name="cart" interface="psion_pack">
273         <dataarea name="rom" size="13890">
274            <rom name="finger14.opk" size="13890" crc="36785487" sha1="51a6abfcb68846425ae90e63ee228b39eba6ebb2" offset="0" />
275         </dataarea>
276      </part>
277   </software>
278
279   <software name="flightma">
280      <description>Flightmaster v2.19</description>
281      <year>1993</year>
282      <publisher>Software 2000, Inc.</publisher>
283      <sharedfeat name="compatibility" value="CM/XP"/>
284      <part name="cart1" interface="psion_pack">
285         <dataarea name="rom" size="130236">
286            <rom name="flightmastr1.opk" size="130236" crc="47ad1343" sha1="f228c64bf9fc5a849f38fd52bc24f22f94c0c9b3" offset="0" />
287         </dataarea>
288      </part>
289      <part name="cart2" interface="psion_pack">
290         <dataarea name="rom" size="130806">
291            <rom name="flightmastr2.opk" size="130806" crc="a8dbcfd4" sha1="36826de1fcc552b4698ee6a10d06a269fc1f8977" offset="0" />
292         </dataarea>
293      </part>
294   </software>
295
296   <software name="fnkey31">
297      <description>FnKey v3.1</description>
298      <year>1989</year>
299      <publisher>Cubsoft</publisher>
300      <sharedfeat name="compatibility" value="CM/XP/LZ"/>
301      <part name="cart" interface="psion_pack">
302         <dataarea name="rom" size="4333">
303            <rom name="fnkey31.opk" size="4333" crc="46c198dc" sha1="1f9a94216c738649f00b51e3e5d07a0487a1bff9" offset="0" />
304         </dataarea>
305      </part>
306   </software>
307
308   <software name="fnkey40">
309      <description>FnKey v4.0</description>
310      <year>1989</year>
311      <publisher>Cubsoft</publisher>
312      <sharedfeat name="compatibility" value="CM/XP/LZ"/>
313      <part name="cart" interface="psion_pack">
314         <dataarea name="rom" size="6822">
315            <rom name="fnkey40.opk" size="6822" crc="39ca0011" sha1="6a40cdb13c895ff5ac8e37894389b99a2bfbc4fe" offset="0" />
316         </dataarea>
317      </part>
318   </software>
319
320   <software name="formmast">
321      <description>Form Master</description>
322      <year>198?</year>
323      <publisher>Cascade Systems Ltd.</publisher>
324      <sharedfeat name="compatibility" value="CM/XP"/>
325      <part name="cart" interface="psion_pack">
326         <dataarea name="rom" size="16234">
327            <rom name="formmaster.opk" size="16234" crc="9e457b90" sha1="04d1f60543faeec8d4aa7fd7134ed3a636c954c8" offset="0" />
328         </dataarea>
329      </part>
330   </software>
331
332   <software name="formul11">
333      <description>Formulator v1.1</description>
334      <year>198?</year>
335      <publisher>Psion</publisher>
336      <sharedfeat name="compatibility" value="CM/XP/LZ"/>
337      <part name="cart" interface="psion_pack">
338         <dataarea name="rom" size="31604">
339            <rom name="xform1.opk" size="31604" crc="5a690ead" sha1="c226ade8e78bbbcccadfb4cf5007107f1ffe06d2" offset="0" />
340         </dataarea>
341      </part>
342   </software>
343
344   <software name="formul21">
345      <description>Formulator v2.1</description>
346      <year>198?</year>
347      <publisher>Psion</publisher>
348      <sharedfeat name="compatibility" value="CM/XP/LZ"/>
349      <part name="cart" interface="psion_pack">
350         <dataarea name="rom" size="32407">
351            <rom name="xform2.opk" size="32407" crc="cf3fd9c4" sha1="712ebace6fb711bd98ea7053105f3a072ffa695c" offset="0" />
352         </dataarea>
353      </part>
354   </software>
355
356   <software name="gamesorg">
357      <description>Games Organiser v0.2</description>
358      <year>198?</year>
359      <publisher>Harvester Information Systems</publisher>
360      <sharedfeat name="compatibility" value="CM/XP"/>
361      <part name="cart" interface="psion_pack">
362         <dataarea name="rom" size="32770">
363            <rom name="harvgames.opk" size="32770" crc="7120b260" sha1="5e707aacb669960406ece6d1d304c1e1009502c0" offset="0" />
364         </dataarea>
365      </part>
366   </software>
367
368   <software name="gpack">
369      <description>Games Pack</description>
370      <year>198?</year>
371      <publisher>S.I.S. Ltd, Psion</publisher>
372      <sharedfeat name="compatibility" value="CM/XP/LZ"/>
373      <part name="cart" interface="psion_pack">
374         <dataarea name="rom" size="32633">
375            <rom name="games.opk" size="32633" crc="1e31b975" sha1="66cd712eb36ce145b465a32f5c256a315452a31c" offset="0" />
376         </dataarea>
377      </part>
378   </software>
379
380   <software name="gpackma">
381      <description>Games Pack (Mick Andon)</description>
382      <year>198?</year>
383      <publisher>Mick Andon</publisher>
384      <sharedfeat name="compatibility" value="LZ"/>
385      <part name="cart" interface="psion_pack">
386         <dataarea name="rom" size="16559">
387            <rom name="gpack.opk" size="16559" crc="508604b2" sha1="866639b6ae22011a40f47cbdfdee684790f073a0" offset="0" />
388         </dataarea>
389      </part>
390   </software>
391
392   <software name="superc">
393      <description>Harvester Superchip v1.2</description>
394      <year>198?</year>
395      <publisher>Harvester Information Systems</publisher>
396      <sharedfeat name="compatibility" value="CM/XP"/>
397      <part name="cart" interface="psion_pack">
398         <dataarea name="rom" size="31521">
399            <rom name="harvsup12.opk" size="31521" crc="51fe98ea" sha1="9579f63e3f2991ceeb1933645a038620eee62361" offset="0" />
400         </dataarea>
401      </part>
402   </software>
403
404   <software name="inkas">
405      <description>Inkasencki v6.1</description>
406      <year>199?</year>
407      <publisher>&lt;unknown&gt;</publisher>
408      <sharedfeat name="compatibility" value="LZ/POS"/>
409      <part name="cart" interface="psion_pack">
410         <dataarea name="rom" size="48983">
411            <rom name="inkas.opk" size="48983" crc="fbade179" sha1="803c827124a59ff45ceaaf9f66b76b8ff08aba23" offset="0" />
412         </dataarea>
413      </part>
414   </software>
415
416   <software name="jotter25">
417      <description>Jotter v2.5</description>
418      <year>198?</year>
419      <publisher>Camel Systems Ltd</publisher>
420      <sharedfeat name="compatibility" value="XP"/>
421      <part name="cart" interface="psion_pack">
422         <dataarea name="rom" size="32749">
423            <rom name="jotter25.opk" size="32749" crc="4129ad0a" sha1="8f602c2fb1d84c9315e204098f4a32af5a759cb5" offset="0" />
424         </dataarea>
425      </part>
426   </software>
427
428   <software name="maths">
429      <description>Maths Pack</description>
430      <year>198?</year>
431      <publisher>Psion</publisher>
432      <sharedfeat name="compatibility" value="CM/XP"/>
433      <part name="cart" interface="psion_pack">
434         <dataarea name="rom" size="16089">
435            <rom name="maths.opk" size="16089" crc="8cce0583" sha1="9b847068e2f6af575b1ba760245007f436bdf1dd" offset="0" />
436         </dataarea>
437      </part>
438   </software>
439
440   <software name="persfin">
441      <description>Personal Finance</description>
442      <year>1987</year>
443      <publisher>Willow Enterprises Ltd</publisher>
444      <sharedfeat name="compatibility" value="CM/XP"/>
445      <part name="cart" interface="psion_pack">
446         <dataarea name="rom" size="16179">
447            <rom name="persfin.opk" size="16179" crc="2fb0f433" sha1="21bedf9bd3de307650c9b6cad3f11dc9094d0a92" offset="0" />
448         </dataarea>
449      </part>
450   </software>
451
452   <software name="portfoli">
453      <description>Portfolio Pack</description>
454      <year>198?</year>
455      <publisher>DIP, Psion</publisher>
456      <sharedfeat name="compatibility" value="CM/XP"/>
457      <part name="cart" interface="psion_pack">
458         <dataarea name="rom" size="16361">
459            <rom name="portfolio.opk" size="16361" crc="d2836be1" sha1="ca207dedec6f14c0c32ed1092ef13bdb60431ad4" offset="0" />
460         </dataarea>
461      </part>
462   </software>
463
464   <software name="result">
465      <description>Result Vers 4L</description>
466      <year>1989</year>
467      <publisher>Terrace Software</publisher>
468      <sharedfeat name="compatibility" value="LZ"/>
469      <part name="cart" interface="psion_pack">
470         <dataarea name="rom" size="16382">
471            <rom name="result.opk" size="16382" crc="8a7cd79f" sha1="40a385ab126c4a6b5ee23ed2097da15ec73aceb1" offset="0" />
472         </dataarea>
473      </part>
474   </software>
475
476   <software name="sdrp">
477      <description>SDRP 01.05</description>
478      <year>198?</year>
479      <publisher>Datacom Group Ltd.</publisher>
480      <sharedfeat name="compatibility" value="CM/XP"/>
481      <part name="cart" interface="psion_pack">
482         <dataarea name="rom" size="52878">
483            <rom name="sdrp.opk" size="52878" crc="550d0a7e" sha1="53669d69ec7aada6ea73f86697cd2eca6ed98a90" offset="0" />
484         </dataarea>
485      </part>
486   </software>
487
488   <software name="cosc">
489      <description>Concise Oxford Spelling Checker</description>
490      <year>198?</year>
491      <publisher>Psion</publisher>
492      <sharedfeat name="compatibility" value="CM/XP"/>
493      <part name="cart" interface="psion_pack">
494         <dataarea name="rom" size="65537">
495            <rom name="spllchk.opk" size="65537" crc="39348a17" sha1="ba85c07037bcc84774d00c58811d664af5b0338b" offset="0" />
496         </dataarea>
497      </part>
498   </software>
499
500   <software name="ssheet12">
501      <description>Spreadsheet v1.2</description>
502      <year>198?</year>
503      <publisher>Psion</publisher>
504      <sharedfeat name="compatibility" value="XP"/>
505      <part name="cart" interface="psion_pack">
506         <dataarea name="rom" size="29806">
507            <rom name="sprdsht_v12.opk" size="29806" crc="3eaf213f" sha1="b0cbc97cc42a98738b3fcc3ea7af79415234d041" offset="0" />
508         </dataarea>
509      </part>
510   </software>
511
512   <software name="ssheet13">
513      <description>Spreadsheet v1.3</description>
514      <year>198?</year>
515      <publisher>Psion</publisher>
516      <sharedfeat name="compatibility" value="XP"/>
517      <part name="cart" interface="psion_pack">
518         <dataarea name="rom" size="30385">
519            <rom name="sprdsht_v13.opk" size="30385" crc="435e34ab" sha1="10e2c95d668e2b27c9a9326a54fc0adc7010e954" offset="0" />
520         </dataarea>
521      </part>
522   </software>
523
524   <software name="ssheet34">
525      <description>Spreadsheet v3.4</description>
526      <year>1987</year>
527      <publisher>Psion</publisher>
528      <sharedfeat name="compatibility" value="XP/LZ"/>
529      <part name="cart" interface="psion_pack">
530         <dataarea name="rom" size="32508">
531            <rom name="sprdsht_v34.opk" size="32508" crc="6afc6dcc" sha1="b0b2059fd1c59ba7c7b55235745fd36186bdd5ca" offset="0" />
532         </dataarea>
533      </part>
534   </software>
535
536   <software name="tsc" supported="no">
537      <description>Thesaurus and Spelling Checker</description>
538      <year>198?</year>
539      <publisher>Psion</publisher>
540      <sharedfeat name="compatibility" value="CM/XP/LZ"/>
541      <part name="cart" interface="psion_pack">
542         <dataarea name="rom" size="262150">
543            <rom name="thesaurus.opk" size="262150" crc="b24ca0af" sha1="31ba8482e5a0c17e2fe83341f393668c0bdcae0f" offset="0" />
544         </dataarea>
545      </part>
546   </software>
547
548   <software name="topfin">
549      <description>Top Finance 2.1f</description>
550      <year>1988</year>
551      <publisher>Aware</publisher>
552      <sharedfeat name="compatibility" value="LZ"/>
553      <part name="cart" interface="psion_pack">
554         <dataarea name="rom" size="16338">
555            <rom name="topfinance.opk" size="16338" crc="480d3056" sha1="4d869fd7429465db78ceaa0f59ca5a447316474b" offset="0" />
556         </dataarea>
557      </part>
558   </software>
559
560   <software name="travel12">
561      <description>Travel Pack v1.2</description>
562      <year>1988</year>
563      <publisher>Organised Solutions Ltd, Psion</publisher>
564      <sharedfeat name="compatibility" value="CM/XP"/>
565      <part name="cart" interface="psion_pack">
566         <dataarea name="rom" size="65458">
567            <rom name="travel12.opk" size="65458" crc="03946bc2" sha1="49be125001d557ea654aabd2dabab5c4f71f626f" offset="0" />
568         </dataarea>
569      </part>
570   </software>
571
572   <software name="travel15">
573      <description>Travel Pack v1.5</description>
574      <year>1988</year>
575      <publisher>Organised Solutions Ltd, Psion</publisher>
576      <sharedfeat name="compatibility" value="CM/XP"/>
577      <part name="cart" interface="psion_pack">
578         <dataarea name="rom" size="65493">
579            <rom name="travel15.opk" size="65493" crc="38310574" sha1="5be0e7b121998c7d238fe8c639b732d0272d70ea" offset="0" />
580         </dataarea>
581      </part>
582   </software>
583
584   <software name="travel20">
585      <description>Travel Pack v2.0</description>
586      <year>198?</year>
587      <publisher>Organised Solutions Ltd, Psion</publisher>
588      <sharedfeat name="compatibility" value="CM/XP"/>
589      <part name="cart" interface="psion_pack">
590         <dataarea name="rom" size="65535">
591            <rom name="travel20.opk" size="65535" crc="2f00fb63" sha1="ec1898eb489ba01c137d712d9dd604f4da699124" offset="0" />
592         </dataarea>
593      </part>
594   </software>
595
596   <software name="xbase20">
597      <description>XBase v2.0</description>
598      <year>198?</year>
599      <publisher>Cubsoft</publisher>
600      <sharedfeat name="compatibility" value="CM/XP"/>
601      <part name="cart" interface="psion_pack">
602         <dataarea name="rom" size="16350">
603            <rom name="xbase.opk" size="16350" crc="faecaac5" sha1="6bcc4d0fed68fdac3c628ab5858c6a81da7627a7" offset="0" />
604         </dataarea>
605      </part>
606   </software>
607
608   <software name="xbase30">
609      <description>XBase v3.0</description>
610      <year>198?</year>
611      <publisher>Cubsoft</publisher>
612      <sharedfeat name="compatibility" value="CM/XP"/>
613      <part name="cart" interface="psion_pack">
614         <dataarea name="rom" size="16350">
615            <rom name="xbase3.opk" size="16336" crc="4a97fe68" sha1="a1dde293b421ffbb248459e2af465fdbdba7f2bb" offset="0" />
616         </dataarea>
617      </part>
618   </software>
619
620   <software name="xforma">
621      <description>Formulator (Alt)</description>
622      <year>198?</year>
623      <publisher>Psion Ltd</publisher>
624      <sharedfeat name="compatibility" value="XP/LZ"/>
625      <part name="cart" interface="psion_pack">
626         <dataarea name="rom" size="32773">
627            <rom name="xforma.opk" size="32773" crc="462ad96e" sha1="221235da3ecf22ac71a7ab248afc2d681ccd6d6d" offset="0" />
628         </dataarea>
629      </part>
630   </software>
631
632   <software name="xformtop">
633      <description>Formulator Top</description>
634      <year>198?</year>
635      <publisher>Psion Ltd</publisher>
636      <sharedfeat name="compatibility" value="XP/LZ"/>
637      <part name="cart" interface="psion_pack">
638         <dataarea name="rom" size="47862">
639            <rom name="xformtop.opk" size="47862" crc="9e109d42" sha1="a91e9eb195ce865c38099cd56ceb29ec52323377" offset="0" />
640         </dataarea>
641      </part>
642   </software>
643
644   <software name="diallink">
645      <!-- Software to control the Dial-Link dialler device (which does not have built-in ROM software). -->
646      <description>Dial-Link</description>
647      <year>198?</year>
648      <publisher>Widget Software</publisher>
649      <sharedfeat name="compatibility" value="CM/XP"/>
650      <part name="cart" interface="psion_pack">
651         <dataarea name="rom" size="16275">
652            <rom name="diallink.opk" size="16275" crc="e435edd2" sha1="394e343881b669d8764304706d788df4fd029632" offset="0" />
653         </dataarea>
654      </part>
655   </software>
656
657   <software name="digit110">
658      <!-- Software to control the Digitron SF10 Logger device (which does not have built-in ROM software) and for logging its readings. -->
659      <description>Digitron SF10 v1.10</description>
660      <year>198?</year>
661      <publisher>Silvertree Eng., Digitron Inst.</publisher>
662      <sharedfeat name="compatibility" value="CM/XP"/>
663      <part name="cart" interface="psion_pack">
664         <dataarea name="rom" size="29134">
665            <rom name="digitron110.opk" size="29134" crc="37d2dcee" sha1="05a17b8fdd0206fe1dd4e496aed1a973b9591402" offset="0" />
666         </dataarea>
667      </part>
668   </software>
669
670   <software name="digit114">
671      <!-- Software to control the Digitron SF10 Logger device (which does not have built-in ROM software) and for logging its readings. -->
672      <description>Digitron SF10 v1.14</description>
673      <year>198?</year>
674      <publisher>Silvertree Eng., Digitron Inst.</publisher>
675      <sharedfeat name="compatibility" value="CM/XP"/>
676      <part name="cart" interface="psion_pack">
677         <dataarea name="rom" size="29326">
678            <rom name="digitron114.opk" size="29326" crc="a838a41c" sha1="22b2e76828dafcdf8caab7c651f7078e730f1a39" offset="0" />
679         </dataarea>
680      </part>
681   </software>
682
683   <software name="fpakdriv">
684      <!-- A datapak with the flashpak driver, which can be used to reformat a flashpak in the other slot. -->
685      <description>FlashPak Driver v1.9</description>
686      <year>198?</year>
687      <publisher>Psion</publisher>
688      <sharedfeat name="compatibility" value="XP/LZ"/>
689      <part name="cart" interface="psion_pack">
690         <dataarea name="rom" size="7135">
691            <rom name="flashpak.opk" size="7135" crc="1138998a" sha1="954a60febab3c86233e2d62ddf42d6e4940eb858" offset="0" />
692         </dataarea>
693      </part>
694   </software>
695
696   <software name="msp100">
697      <!-- Software to control the KDG Mobrey Smart device (which does not have built-in ROM software) and use that to communicate with their MSP100 ultrasonic liquid level transmitter. -->
698      <description>KDG Mobrey MSP100 v1.0</description>
699      <year>198?</year>
700      <publisher>KDG Mobrey</publisher>
701      <sharedfeat name="compatibility" value="LZ"/>
702      <part name="cart" interface="psion_pack">
703         <dataarea name="rom" size="54730">
704            <rom name="msp100.opk" size="54730" crc="62bac741" sha1="c6af1491665adf744142ad354b6f52b1dcfde813" offset="0" />
705         </dataarea>
706      </part>
707   </software>
708
709   <software name="onewayin">
710      <!-- The device does not have built-in software, but needs a separate pack containing the software. -->
711      <!-- This file contains the software that should be installed on a pack using the Organiser Developer kit. -->
712      <description>One-Way Interface</description>
713      <year>198?</year>
714      <publisher>On-Line Design Inc</publisher>
715      <sharedfeat name="compatibility" value="CM/XP/LZ"/>
716      <part name="cart" interface="psion_pack">
717         <dataarea name="rom" size="2430">
718            <rom name="owi.bin" size="2430" crc="958509a9" sha1="934a729911d070c7de106684c354eebf16ee78ae" offset="0" />
719         </dataarea>
720      </part>
721   </software>
722
723   <software name="psitex20">
724      <!-- Software used for programming the Microtima Series 4 Year -->
725      <!-- Programmable Controller which is connected through the Comms Link. -->
726      <description>PsiTex v2.000</description>
727      <year>198?</year>
728      <publisher>Microtima</publisher>
729      <sharedfeat name="compatibility" value="LZ"/>
730      <part name="cart" interface="psion_pack">
731         <dataarea name="rom" size="16238">
732            <rom name="psitex200.opk" size="16238" crc="cce04194" sha1="f6498b365ddff6e0df07b7286a69d1e78f4a2f4d" offset="0" />
733         </dataarea>
734      </part>
735   </software>
736
737   <software name="sigset20">
738      <!-- Software used for programming type 141 Traffic Light Controllers -->
739      <!-- which are connected through the Comms Link. -->
740      <description>SigSet v2.01</description>
741      <year>198?</year>
742      <publisher>Microtima</publisher>
743      <sharedfeat name="compatibility" value="LZ"/>
744      <part name="cart" interface="psion_pack">
745         <dataarea name="rom" size="8248">
746            <rom name="sigset201.opk" size="8248" crc="8696fb8a" sha1="ada45c41b083b68c1823da0a951b7a8a593d1648" offset="0" />
747         </dataarea>
748      </part>
749   </software>
750
751   <software name="sonylisa">
752      <!-- Software to control the Sony Lisa-1 device (which does not have built-in ROM software). -->
753      <!-- This pack image is for use with TR45E and TR75E camcorders. -->
754      <description>Sony Lisa-1 v3.0</description>
755      <year>198?</year>
756      <publisher>Sony</publisher>
757      <sharedfeat name="compatibility" value="CM/XP/LZ"/>
758      <part name="cart" interface="psion_pack">
759         <dataarea name="rom" size="16521">
760            <rom name="sony_lisa1.opk" size="16521" crc="417a9b34" sha1="b2747bcf6be33f0c27f263dbbdfe2512e68e1810" offset="0" />
761         </dataarea>
762      </part>
763   </software>
764
765
766
767   <!-- Devices -->
768
769   <software name="rs232l11" supported="no">
770      <!-- Early version of Comms Link. Has no Psion protocol. -->
771      <description>RS232 Link 1.1</description>
772      <year>198?</year>
773      <publisher>Psion</publisher>
774      <part name="cart" interface="psion_pack">
775         <dataarea name="rom" size="8137">
776            <rom name="comms11.opk" size="8137" crc="48c1564b" sha1="2c81bc1174290ed825945508f5ff4f62505831d6" offset="0" />
777         </dataarea>
778      </part>
779   </software>
780
781   <software name="rs232l15" supported="no">
782      <description>RS232 Link 1.5</description>
783      <year>198?</year>
784      <publisher>Psion</publisher>
785      <part name="cart" interface="psion_pack">
786         <dataarea name="rom" size="7736">
787            <rom name="comms15.opk" size="7736" crc="b11cd524" sha1="b7d09c946c45915f854ac79cab24f652914ebd68" offset="0" />
788         </dataarea>
789      </part>
790   </software>
791
792   <software name="clink24" supported="no">
793      <description>Comms Link 2.4</description>
794      <year>198?</year>
795      <publisher>Psion</publisher>
796      <part name="cart" interface="psion_pack">
797         <dataarea name="rom" size="22515">
798            <rom name="comms24.opk" size="22515" crc="3a42d92f" sha1="b7603f07f5479b1939e0486d819e1552a0e7dcac" offset="0" />
799         </dataarea>
800      </part>
801   </software>
802
803   <software name="clink25" supported="no">
804      <description>Comms Link 2.5</description>
805      <year>198?</year>
806      <publisher>Psion</publisher>
807      <part name="cart" interface="psion_pack">
808         <dataarea name="rom" size="22510">
809            <rom name="comms25.opk" size="22510" crc="5c985379" sha1="dd4e5d17b83883cac75c5220dad0c51ddb6ba1c1" offset="0" />
810         </dataarea>
811      </part>
812   </software>
813
814   <software name="clink30" supported="no">
815      <description>Comms Link 3.0</description>
816      <year>198?</year>
817      <publisher>Psion</publisher>
818      <part name="cart" interface="psion_pack">
819         <dataarea name="rom" size="25112">
820            <rom name="comms30.opk" size="25112" crc="58770787" sha1="129ec0fd2642bdef02a92e8432825f650cfacfbd" offset="0" />
821         </dataarea>
822      </part>
823   </software>
824
825   <software name="clink40" supported="no">
826      <description>Comms Link 4.0</description>
827      <year>1987</year>
828      <publisher>Psion</publisher>
829      <part name="cart" interface="psion_pack">
830         <dataarea name="rom" size="32312">
831            <rom name="comms40.opk" size="32312" crc="9d210b51" sha1="2307a773b30a95f3f09225821d619ff6cdd8ae7d" offset="0" />
832         </dataarea>
833      </part>
834   </software>
835
836   <software name="clink41" supported="no">
837      <description>Comms Link 4.1</description>
838      <year>198?</year>
839      <publisher>Psion</publisher>
840      <part name="cart" interface="psion_pack">
841         <dataarea name="rom" size="32403">
842            <rom name="comms41.opk" size="32403" crc="dfb1dc85" sha1="4f0a6dd1cdeb4d3ed0d8e84017e2d73ac7f5e0c2" offset="0" />
843         </dataarea>
844      </part>
845   </software>
846
847   <software name="clink42" supported="no">
848      <description>Comms Link 4.2</description>
849      <year>198?</year>
850      <publisher>Psion</publisher>
851      <part name="cart" interface="psion_pack">
852         <dataarea name="rom" size="32411">
853            <rom name="comms42.opk" size="32411" crc="9d7aa280" sha1="2d31f4c48f222ffa67fafe5689cc19d8187eafed" offset="0" />
854         </dataarea>
855      </part>
856   </software>
857
858   <software name="ecp2" supported="no">
859      <!-- The Extech Comms Printer II contains Comms Link version 4.3 together with software for the Bar Code Reader, Magnetic Card reader, and its printer. -->
860      <description>Extech Comms Printer II 4.3</description>
861      <year>198?</year>
862      <publisher>Psion</publisher>
863      <part name="cart" interface="psion_pack">
864         <dataarea name="rom" size="46397">
865            <rom name="extprt43.opk" size="46397" crc="443d0905" sha1="10a3576786f5ac65082b2856bc1578373f30d6fc" offset="0" />
866         </dataarea>
867      </part>
868   </software>
869
870   <software name="dynapen" supported="no">
871      <!-- The Dynapen contains Comms Link version 4.4 together with Bar Code Reader menu item and utilities. -->
872      <description>Dynapen 4.4</description>
873      <year>198?</year>
874      <publisher>Psion</publisher>
875      <part name="cart" interface="psion_pack">
876         <dataarea name="rom" size="55408">
877            <rom name="dynapen.opk" size="55408" crc="fecb74ce" sha1="452c3776029475d025d9f7cfd562e3c5f24fe310" offset="0" />
878         </dataarea>
879      </part>
880   </software>
881
882   <software name="pprint16" supported="no">
883      <description>Psion Printer 1.6</description>
884      <year>198?</year>
885      <publisher>Psion</publisher>
886      <part name="cart" interface="psion_pack">
887         <dataarea name="rom" size="4550">
888            <rom name="printer16.opk" size="4550" crc="cb3c7bff" sha1="b3d3ef91ce07584504a5ddc92503e2bc291c8832" offset="0" />
889         </dataarea>
890      </part>
891   </software>
892
893   <software name="pprint21" supported="no">
894      <description>Psion Printer 2.1</description>
895      <year>198?</year>
896      <publisher>Psion</publisher>
897      <part name="cart" interface="psion_pack">
898         <dataarea name="rom" size="4913">
899            <rom name="printer21.opk" size="4913" crc="701f489e" sha1="784d07d2ad525bed5dc9511bd1716029cc91f1fc" offset="0" />
900         </dataarea>
901      </part>
902   </software>
903
904   <software name="pprint22" supported="no">
905      <description>Psion Printer 2.2</description>
906      <year>198?</year>
907      <publisher>Psion</publisher>
908      <part name="cart" interface="psion_pack">
909         <dataarea name="rom" size="4945">
910            <rom name="printer22.opk" size="4945" crc="d12a5b5d" sha1="18b2b5e7d84c8dbe7fe96c9c046e8239af65b9e6" offset="0" />
911         </dataarea>
912      </part>
913   </software>
914
915   <software name="mcr20" supported="no">
916      <description>Magnetic Card Reader 2.0</description>
917      <year>198?</year>
918      <publisher>Psion</publisher>
919      <part name="cart" interface="psion_pack">
920         <dataarea name="rom" size="748">
921            <rom name="swipe20.opk" size="748" crc="a7d1d051" sha1="325ac98d9330bb68d23d72610899c9176998a26b" offset="0" />
922         </dataarea>
923      </part>
924   </software>
925
926   <software name="bcread31" supported="no">
927      <description>Bad Code Reader 3.1</description>
928      <year>198?</year>
929      <publisher>Psion</publisher>
930      <part name="cart" interface="psion_pack">
931         <dataarea name="rom" size="11263">
932            <rom name="bar31.opk" size="11263" crc="3951726d" sha1="4ae19527dee89dc2909e716d1dbff40f17a1f361" offset="0" />
933         </dataarea>
934      </part>
935   </software>
936
937   <software name="bcread32" supported="no">
938      <description>Bad Code Reader 3.2</description>
939      <year>198?</year>
940      <publisher>Psion</publisher>
941      <part name="cart" interface="psion_pack">
942         <dataarea name="rom" size="11375">
943            <rom name="bar32.opk" size="11375" crc="d5c7079c" sha1="a04eeafcc3125131d18a0063b7db56e7a59f5108" offset="0" />
944         </dataarea>
945      </part>
946   </software>
947
948   <software name="pager13" supported="no">
949      <description>Pager 1.3</description>
950      <year>198?</year>
951      <publisher>Psion</publisher>
952      <part name="cart" interface="psion_pack">
953         <dataarea name="rom" size="15226">
954            <rom name="pager13.opk" size="15226" crc="05045d72" sha1="4ccc8d32d34e65ec0bc3b0f50cda9b1146d1b6af" offset="0" />
955         </dataarea>
956      </part>
957   </software>
958
959   <software name="plink20" supported="no">
960      <description>Paralink 2.0</description>
961      <year>198?</year>
962      <publisher>Silvertree Engineering Ltd.</publisher>
963      <part name="cart" interface="psion_pack">
964         <dataarea name="rom" size="6062">
965            <rom name="paralink20.opk" size="6062" crc="75a3596d" sha1="43dfdd4b39d9da00ccb7aa74b66d610e90867b75" offset="0" />
966         </dataarea>
967      </part>
968   </software>
969
970   <software name="plink33" supported="no">
971      <description>Paralink 3.3</description>
972      <year>198?</year>
973      <publisher>Silvertree Engineering Ltd.</publisher>
974      <part name="cart" interface="psion_pack">
975         <dataarea name="rom" size="16352">
976            <rom name="paralink33.opk" size="16352" crc="b672445b" sha1="b3b49dd46fa6b0753d8aa5df4e447c263dbb58f5" offset="0" />
977         </dataarea>
978      </part>
979   </software>
980
981   <software name="plink34" supported="no">
982      <description>Paralink 3.4</description>
983      <year>198?</year>
984      <publisher>Silvertree Engineering Ltd.</publisher>
985      <part name="cart" interface="psion_pack">
986         <dataarea name="rom" size="16352">
987            <rom name="paralink34.opk" size="16352" crc="3a22f0ae" sha1="e55cf03aed678da812096a926e70355f26ea2229" offset="0" />
988         </dataarea>
989      </part>
990   </software>
991
992   <software name="andoverc" supported="no">
993      <description>Andover Controls Hand-Held Operator's Terminal</description>
994      <year>198?</year>
995      <publisher>Psion</publisher>
996      <part name="cart" interface="psion_pack">
997         <dataarea name="rom" size="12959">
998            <rom name="andover.opk" size="12959" crc="dee5a895" sha1="a2fe553b3d0d5dc38ec5efb393e665676223b3dd" offset="0" />
999         </dataarea>
1000      </part>
1001   </software>
1002
1003   <software name="cnf41hi" supported="no">
1004      <description>CNF41 HART interface 1.0</description>
1005      <year>198?</year>
1006      <publisher>Psion</publisher>
1007      <part name="cart" interface="psion_pack">
1008         <dataarea name="rom" size="60686">
1009            <rom name="cnf41_10.opk" size="60686" crc="720be551" sha1="74b7162acbada7f35a77010c201cf5506d909aae" offset="0" />
1010         </dataarea>
1011      </part>
1012   </software>
1013
1014</softwarelist>
trunk/hash/snes.xml
r241777r241778
3567035670      </part>
3567135671   </software>
3567235672
35673<!-- Prototype for the European version of Jim Power -->
35674   <software name="buckrog" cloneof="jimpower">
35675      <description>Buck Rogers - The Arcade Game (Euro, Prototype)</description>
35676      <year>1993</year>
35677      <publisher>Electro Brain</publisher>
35678      <sharedfeat name="compatibility" value="PAL"/>
35679      <part name="cart" interface="snes_cart">
35680         <feature name="slot" value="lorom" />
35681         <dataarea name="rom" size="1048576">
35682            <rom name="buck rogers - the arcade game (beta jim power).sfc" size="1048576" crc="d75f5abb" sha1="9d8b0fcf803fb6d0d60cbc84573a45e08c38f777" offset="0x000000" />
35683         </dataarea>
35684      </part>
35685   </software>
35686
3568735673   <software name="bullvsbl">
3568835674      <description>Bulls vs Blazers and the NBA Playoffs (Euro, Rev. A)</description>
3568935675      <year>1992</year>
trunk/hash/sol20_cass.xml
r241777r241778
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<softwarelist name="sol20_cass" description="PTC SOL-20 cassettes">
5   <software name="2progs" supported="no">
6      <description>2 Programs in 1</description>
7      <year>19??</year>
8      <publisher>&lt;unknown&gt;</publisher>
9
10      <part name="cass1" interface="sol20_cass">
11         <dataarea name="cass" size="25383">
12            <rom name="2 programs in 1 (19xx)(-).svt" size="25383" crc="d2e097e3" sha1="52eb5e4036201c8bcb7eea656cd1d4b42d80d58b" offset="0" />
13         </dataarea>
14      </part>
15   </software>
16
17   <software name="metron" supported="no">
18      <description>Metron Computerware</description>
19      <year>1977</year>
20      <publisher>Tiny C Associates</publisher>
21
22      <part name="cass1" interface="sol20_cass">
23         <dataarea name="cass" size="30719">
24            <rom name="metron computerware (1977)(tiny c associates).svt" size="30719" crc="6140c147" sha1="294487f58ec607decb69900b169a6b03208a61b4" offset="0" />
25         </dataarea>
26      </part>
27   </software>
28
29   <software name="pilot" supported="no">
30      <description>Pilot</description>
31      <year>19??</year>
32      <publisher>Processor Techonolgy</publisher>
33
34      <part name="cass1" interface="sol20_cass">
35         <dataarea name="cass" size="51064">
36            <rom name="pilot (19xx)(processor techonolgy).svt" size="51064" crc="e192a999" sha1="628b8e364f22a1a38b6f5487a2dcd518182ec5de" offset="0" />
37         </dataarea>
38      </part>
39   </software>
40
41   <software name="proteus1" supported="no">
42      <description>Proteus Cassete #1</description>
43      <year>19??</year>
44      <publisher>&lt;unknown&gt;</publisher>
45
46      <part name="cass1" interface="sol20_cass">
47         <dataarea name="cass" size="77646">
48            <rom name="proteus cassete #1 (19xx)(-).svt" size="77646" crc="f40fd39a" sha1="fe0b70607dd556ba8dc5ffca7d087b68778cdbcf" offset="0" />
49         </dataarea>
50      </part>
51   </software>
52
53   <software name="proteus2" supported="no">
54      <description>Proteus Cassete #2</description>
55      <year>19??</year>
56      <publisher>&lt;unknown&gt;</publisher>
57
58      <part name="cass1" interface="sol20_cass">
59         <dataarea name="cass" size="95354">
60            <rom name="proteus cassete #2 (19xx)(-).svt" size="95354" crc="2b480f7b" sha1="06376865d8a0ce671c4a647c39f4ad2c4cef952d" offset="0" />
61         </dataarea>
62      </part>
63   </software>
64
65   <software name="proteus3" supported="no">
66      <description>Proteus Cassete #3</description>
67      <year>19??</year>
68      <publisher>&lt;unknown&gt;</publisher>
69
70      <part name="cass1" interface="sol20_cass">
71         <dataarea name="cass" size="57116">
72            <rom name="proteus cassete #3 (19xx)(-).svt" size="57116" crc="b2ee57f0" sha1="561f205f37affbaeba6ef7060f36044f268bf133" offset="0" />
73         </dataarea>
74      </part>
75   </software>
76
77   <software name="proteus7" supported="no">
78      <description>Proteus Cassete #7</description>
79      <year>19??</year>
80      <publisher>&lt;unknown&gt;</publisher>
81
82      <part name="cass1" interface="sol20_cass">
83         <dataarea name="cass" size="178406">
84            <rom name="proteus cassete #7 (19xx)(-).svt" size="178406" crc="da305795" sha1="e9ce5023d288f52c303beb480e2a63531661ff90" offset="0" />
85         </dataarea>
86      </part>
87   </software>
88
89   <software name="proteus8" supported="no">
90      <description>Proteus Cassete #8</description>
91      <year>19??</year>
92      <publisher>&lt;unknown&gt;</publisher>
93
94      <part name="cass1" interface="sol20_cass">
95         <dataarea name="cass" size="79094">
96            <rom name="proteus cassete #8 (19xx)(-).svt" size="79094" crc="d338d05a" sha1="8264f731acc676243e54d149d29b6cb13e691fa1" offset="0" />
97         </dataarea>
98      </part>
99   </software>
100
101   <software name="solprint" supported="no">
102      <description>Sol Printer</description>
103      <year>19??</year>
104      <publisher>Processor Techonolgy</publisher>
105
106      <part name="cass1" interface="sol20_cass">
107         <dataarea name="cass" size="56307">
108            <rom name="sol printer (19xx)(processor techonolgy).svt" size="56307" crc="46a4e367" sha1="8e5f0226dde3ea450077a945f9bf12c3c5b7ede3" offset="0" />
109         </dataarea>
110      </part>
111   </software>
112
113   <software name="spacegam" supported="no">
114      <description>Spaces Games</description>
115      <year>19??</year>
116      <publisher>Creative Computing Software</publisher>
117
118      <part name="cass1" interface="sol20_cass">
119         <dataarea name="cass" size="47421">
120            <rom name="spaces games (19xx)(creative computing software).svt" size="47421" crc="4f1b8108" sha1="fc6cd419b45b7c1f88a16dba0df12d901edc5753" offset="0" />
121         </dataarea>
122      </part>
123   </software>
124
125   <software name="strategy" supported="no">
126      <description>Strategy Games</description>
127      <year>19??</year>
128      <publisher>Creative Computing Software</publisher>
129
130      <part name="cass1" interface="sol20_cass">
131         <dataarea name="cass" size="67400">
132            <rom name="strategy games (19xx)(creative computing software).svt" size="67400" crc="54d95385" sha1="54c8ca1542d9ec7cd711866bae3ceb3645735508" offset="0" />
133         </dataarea>
134      </part>
135   </software>
136
137   <software name="strategya" cloneof="strategy" supported="no">
138      <description>Strategy Games (Alt)</description>
139      <year>19??</year>
140      <publisher>Creative Computing Software</publisher>
141
142      <part name="cass1" interface="sol20_cass">
143         <dataarea name="cass" size="67359">
144            <rom name="strategy games (19xx)(creative computing software)[a].svt" size="67359" crc="3f7a6908" sha1="230a8e72996f625959c77cd8350a9f7de087db80" offset="0" />
145         </dataarea>
146      </part>
147   </software>
148
149</softwarelist>
trunk/hash/specpls3_flop.xml
r241777r241778
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!-- ZX Spectrum Disc images
5    for +3 machines etc.
6-->
7
8<softwarelist name="spectrum_flop" description="ZX Spectrum disk images">
9
10   <!-- SPS / CAPS Releases -->
11
12   <software name="aforce" >
13      <!-- SPS (CAPS) release 3500 -->
14      <description>Action Force - International Heroes</description>
15      <year>1987</year>
16      <publisher>Virgin Games</publisher>
17
18      <part name="flop1" interface="floppy_3">
19         <dataarea name="flop" size="236460">
20            <rom name="3500 - action force - international heroes (europe).ipf" size="236460" crc="1a2bb165" sha1="9b9b44e1118c40bbb9c6a32d4ffc6e61f8c5fd3b" offset="0" />
21         </dataarea>
22      </part>
23   </software>
24
25   <software name="aforce2">
26      <!-- SPS (CAPS) release 3551 -->
27      <description>Action Force II - International Heroes</description>
28      <year>1988</year>
29      <publisher>Virgin Games</publisher>
30
31      <part name="flop1" interface="floppy_3">
32         <dataarea name="flop" size="238175">
33            <rom name="3551 - action force ii - international heroes (europe).ipf" size="238175" crc="caa251a2" sha1="9c02f116d5a61d5d064d3a5643e70542f1e01bf9" offset="0" />
34         </dataarea>
35      </part>
36   </software>
37
38   <software name="tiebreak">
39      <!-- SPS (CAPS) release 3501 -->
40      <description>Adidas Championship Tie-Break</description>
41      <year>1990</year>
42      <publisher>Ocean Software</publisher>
43
44      <part name="flop1" interface="floppy_3">
45         <dataarea name="flop" size="123445">
46            <rom name="3501 - adidas championship tie break (europe).ipf" size="123445" crc="6e2e4951" sha1="a50e132cb68cc406e59485b617fc384288762d7f" offset="0" />
47         </dataarea>
48      </part>
49   </software>
50
51   <software name="artura">
52      <!-- SPS (CAPS) release 3552 -->
53      <description>Artura</description>
54      <year>1989</year>
55      <publisher>Gremlin Graphics Software</publisher>
56
57      <part name="flop1" interface="floppy_3">
58         <dataarea name="flop" size="237460">
59            <rom name="3552 - artura (europe).ipf" size="237460" crc="bcc6e00c" sha1="8781e6b1e1bf98a1fc6b8ffb77f5671780c5e402" offset="0" />
60         </dataarea>
61      </part>
62   </software>
63
64   <software name="badlands">
65      <!-- SPS (CAPS) release 3553 -->
66      <description>Badlands</description>
67      <year>1990</year>
68      <publisher>Domark</publisher>
69
70      <part name="flop1" interface="floppy_3">
71         <dataarea name="flop" size="234180">
72            <rom name="3553 - badlands (europe).ipf" size="234180" crc="93f1c3b6" sha1="9da5ab7e607dad7fd5b605997929eff43c20abb7" offset="0" />
73         </dataarea>
74      </part>
75   </software>
76
77   <software name="bhcop">
78      <!-- SPS (CAPS) release 3502 -->
79      <description>Beverly Hills Cop</description>
80      <year>1990</year>
81      <publisher>Tynesoft</publisher>
82
83      <part name="flop1" interface="floppy_3">
84         <dataarea name="flop" size="236460">
85            <rom name="3502 - beverly hills cop (europe).ipf" size="236460" crc="81fbf5ad" sha1="2022531eba845cfcd19a2fb2b69d54e007979592" offset="0" />
86         </dataarea>
87      </part>
88   </software>
89
90   <software name="bloodwyc">
91      <!-- SPS (CAPS) release 3554 -->
92      <description>Bloodwych</description>
93      <year>1990</year>
94      <publisher>Image Works</publisher>
95
96      <part name="flop1" interface="floppy_3">
97         <dataarea name="flop" size="236460">
98            <rom name="3554 - bloodwych (europe).ipf" size="236460" crc="cb66aed6" sha1="b7bab317718a478e48a689a8ebd125a498504ebe" offset="0" />
99         </dataarea>
100      </part>
101   </software>
102
103   <software name="boggit">
104      <!-- SPS (CAPS) release 3555 -->
105      <description>The Boggit - Bored Too</description>
106      <year>1986</year>
107      <publisher>CRL Group</publisher>
108
109      <part name="flop1" interface="floppy_3">
110         <dataarea name="flop" size="236460">
111            <rom name="3555 - boggit, the - bored too (europe).ipf" size="236460" crc="c9dc8d41" sha1="ae1aff98a4e60bf6272c8955a224a7b0e890c40e" offset="0" />
112         </dataarea>
113      </part>
114   </software>
115
116   <software name="bookdead">
117      <!-- SPS (CAPS) release 3556 -->
118      <description>Book of the Dead</description>
119      <year>1987</year>
120      <publisher>CRL Group</publisher>
121
122      <part name="flop1" interface="floppy_3">
123         <dataarea name="flop" size="236460">
124            <rom name="3556 - book of the dead (europe).ipf" size="236460" crc="b1030311" sha1="6ddbe67cbba260b6ec80ee0bc7e557f88bf08a23" offset="0" />
125         </dataarea>
126      </part>
127   </software>
128
129   <software name="bbrg">
130      <!-- SPS (CAPS) release 3503 -->
131      <description>Buffalo Bill's Rodeo Games</description>
132      <year>1989</year>
133      <publisher>Tynesoft</publisher>
134      <info name="alt_title" value="Buffalo Bill's Wild West Rodeo Show" />
135
136      <part name="flop1" interface="floppy_3">
137         <dataarea name="flop" size="234180">
138            <rom name="3503 - buffalo bill's rodeo games (unknown).ipf" size="234180" crc="74650740" sha1="cdf81f26af4e013726a288c3a27a1765b254c267" offset="0" />
139         </dataarea>
140      </part>
141   </software>
142
143   <software name="butchill">
144      <!-- SPS (CAPS) release 3557 -->
145      <description>Butcher Hill</description>
146      <year>1989</year>
147      <publisher>Gremlin Graphics Software </publisher>
148
149      <part name="flop1" interface="floppy_3">
150         <dataarea name="flop" size="237460">
151            <rom name="3557 - butcher hill (europe).ipf" size="237460" crc="5ae072b5" sha1="96e89f1229f2d8306965b925145ae0ab454def6f" offset="0" />
152         </dataarea>
153      </part>
154   </software>
155
156   <software name="carrierc">
157      <!-- SPS (CAPS) release 3504 -->
158      <description>Carrier Command</description>
159      <year>1989</year>
160      <publisher>Rainbird Software</publisher>
161
162      <part name="flop1" interface="floppy_3">
163         <dataarea name="flop" size="236140">
164            <rom name="3504 - carrier command (europe).ipf" size="236140" crc="3596b16d" sha1="842715907902c7d15a28e92db6e66e2f435f8781" offset="0" />
165         </dataarea>
166      </part>
167   </software>
168
169   <software name="chicag30">
170      <!-- SPS (CAPS) release 3558 -->
171      <description>Chicago 30's</description>
172      <year>1988</year>
173      <publisher>U.S. Gold</publisher>
174
175      <part name="flop1" interface="floppy_3">
176         <dataarea name="flop" size="266892">
177            <rom name="3558 - chicago 30's (unknown).ipf" size="266892" crc="50f0a090" sha1="a0be8b20605834f29e59ded94786ed90d07b235b" offset="0" />
178         </dataarea>
179      </part>
180   </software>
181
182   <software name="combatsc">
183      <!-- SPS (CAPS) release 3559 -->
184      <description>Combat School</description>
185      <year>1987</year>
186      <publisher>Ocean Software</publisher>
187
188      <part name="flop1" interface="floppy_3">
189         <dataarea name="flop" size="238800">
190            <rom name="3559 - combat school (europe).ipf" size="238800" crc="ba69a18a" sha1="581b183c20d6cf33e0965ff00c5b077a9618d872" offset="0" />
191         </dataarea>
192      </part>
193   </software>
194
195   <software name="corruptn">
196      <!-- SPS (CAPS) release 3560 -->
197      <description>Corruption</description>
198      <year>1988</year>
199      <publisher>Rainbird Software</publisher>
200
201      <part name="flop1" interface="floppy_3">
202         <dataarea name="flop" size="236460">
203            <rom name="3560 - corruption (europe).ipf" size="236460" crc="cfbb80af" sha1="ed489e12913c2bb7fbb48fed0c9644b7cfceb59e" offset="0" />
204         </dataarea>
205      </part>
206   </software>
207
208   <software name="cybernod">
209      <!-- SPS (CAPS) release 3561 -->
210      <description>Cybernoid - The Fighting Machine</description>
211      <year>1988</year>
212      <publisher>Hewson Consultants</publisher>
213
214      <part name="flop1" interface="floppy_3">
215         <dataarea name="flop" size="212085">
216            <rom name="3561 - cybernoid - the fighting machine (europe).ipf" size="212085" crc="3733ffa8" sha1="2a0b2f4c29a568e6e4ac287e679f6b4a4e6ae742" offset="0" />
217         </dataarea>
218      </part>
219   </software>
220
221   <software name="cyberno2">
222      <!-- SPS (CAPS) release 3562 -->
223      <description>Cybernoid II - The Revenge</description>
224      <year>1988</year>
225      <publisher>Hewson Consultants</publisher>
226
227      <part name="flop1" interface="floppy_3">
228         <dataarea name="flop" size="236460">
229            <rom name="3562 - cybernoid ii - the revenge (europe).ipf" size="236460" crc="417b84f6" sha1="a2c8753121df65bd95a0d31e7ee6101a2d74ea61" offset="0" />
230         </dataarea>
231      </part>
232   </software>
233
234   <software name="dandare3">
235      <!-- SPS (CAPS) release 3505 -->
236      <description>Dan Dare III - The Escape</description>
237      <year>1990</year>
238      <publisher>Virgin Games</publisher>
239
240      <part name="flop1" interface="floppy_3">
241         <dataarea name="flop" size="71100">
242            <rom name="3505 - dan dare iii - the escape (europe).ipf" size="71100" crc="e949bc77" sha1="6074056cd0ef8aaf103d36fde1e5a1fba356904f" offset="0" />
243         </dataarea>
244      </part>
245   </software>
246
247   <software name="darkfusn">
248      <!-- SPS (CAPS) release 3563 -->
249      <description>Dark Fusion</description>
250      <year>1988</year>
251      <publisher>Gremlin Graphics Software</publisher>
252
253      <part name="flop1" interface="floppy_3">
254         <dataarea name="flop" size="260585">
255            <rom name="3563 - dark fusion (europe).ipf" size="260585" crc="9495182c" sha1="bb94b445a9909ba39f21119dcc43dbd1497aed20" offset="0" />
256         </dataarea>
257      </part>
258   </software>
259
260   <software name="deep">
261      <!-- SPS (CAPS) release 3506 -->
262      <description>The Deep</description>
263      <year>1988</year>
264      <publisher>U.S. Gold</publisher>
265
266      <part name="flop1" interface="floppy_3">
267         <dataarea name="flop" size="266891">
268            <rom name="3506 - deep, the (europe).ipf" size="266891" crc="e4844d2b" sha1="95dee7ccae5613c9b04efdbde5e2bc6c69a1e735" offset="0" />
269         </dataarea>
270      </part>
271   </software>
272
273   <software name="deflektr">
274      <!-- SPS (CAPS) release 3564 -->
275      <description>Deflektor</description>
276      <year>1987</year>
277      <publisher>Gremlin Graphics Software</publisher>
278
279      <part name="flop1" interface="floppy_3">
280         <dataarea name="flop" size="212085">
281            <rom name="3564 - deflektor (europe).ipf" size="212085" crc="2483f8c7" sha1="032b18abb2eb903ded8b32a59b003a68d784d996" offset="0" />
282         </dataarea>
283      </part>
284   </software>
285
286   <software name="dominatr">
287      <!-- SPS (CAPS) release 3507 -->
288      <description>Dominator</description>
289      <year>1989</year>
290      <publisher>System 3 Software</publisher>
291
292      <part name="flop1" interface="floppy_3">
293         <dataarea name="flop" size="250612">
294            <rom name="3507 - dominator (europe).ipf" size="250612" crc="e6c6f9eb" sha1="22d46cc0cabba10b0d58bba86b5123fdcf73a731" offset="0" />
295         </dataarea>
296      </part>
297   </software>
298
299   <software name="echelon">
300      <!-- SPS (CAPS) release 3565 -->
301      <description>Echelon</description>
302      <year>1988</year>
303      <publisher>U.S. Gold</publisher>
304
305      <part name="flop1" interface="floppy_3">
306         <dataarea name="flop" size="237460">
307            <rom name="3565 - echelon (europe).ipf" size="237460" crc="94c24ad3" sha1="cae1aa9d3897ec2027120afd1e4d3370b78de3cf" offset="0" />
308         </dataarea>
309      </part>
310   </software>
311
312   <software name="erik">
313      <!-- SPS (CAPS) release 3566 -->
314      <description>Erik - The Phantom of the Opera</description>
315      <year>1987</year>
316      <publisher>Crysys</publisher>
317
318      <part name="flop1" interface="floppy_3">
319         <dataarea name="flop" size="236460">
320            <rom name="3566 - erik - the phantom of the opera (europe).ipf" size="236460" crc="77098dc3" sha1="619babc59ea1816a4ea8e2d2030c25205fd65735" offset="0" />
321         </dataarea>
322      </part>
323   </software>
324
325   <software name="eprom">
326      <!-- SPS (CAPS) release 3567 -->
327      <description>Escape from the Planet of the Robot Monsters</description>
328      <year>1990</year>
329      <publisher>Domark</publisher>
330
331      <part name="flop1" interface="floppy_3">
332         <dataarea name="flop" size="234180">
333            <rom name="3567 - escape from the planet of the robot monsters (europe).ipf" size="234180" crc="ba153a21" sha1="4bb529af057b9cc5ab547cf754a3e4c21d0f34c9" offset="0" />
334         </dataarea>
335      </part>
336   </software>
337
338   <software name="espionag">
339      <!-- SPS (CAPS) release 3568 -->
340      <description>Espionage</description>
341      <year>1988</year>
342      <publisher>Grandslam Entertainments </publisher>
343      <info name="alt_title" value="Espionage - The Computer Game (Box)" />
344
345      <part name="flop1" interface="floppy_3">
346         <dataarea name="flop" size="99180">
347            <rom name="3568 - espionage - the computer game (europe).ipf" size="99180" crc="893495d8" sha1="eac0b7dcd91d628bf85938327ec15b833dd6f1d9" offset="0" />
348         </dataarea>
349      </part>
350   </software>
351
352   <software name="f16comb">
353      <!-- SPS (CAPS) release 3508 -->
354      <description>F-16 Combat Pilot</description>
355      <year>1991</year>
356      <publisher>Digital Integration</publisher>
357
358      <part name="flop1" interface="floppy_3">
359         <dataarea name="flop" size="161607">
360            <rom name="3508 - f-16 combat pilot (europe).ipf" size="161607" crc="49f2d22d" sha1="1336f27de5c4c1aad734f83aa6c2ffca9efe6747" offset="0" />
361         </dataarea>
362      </part>
363   </software>
364
365   <software name="federatn">
366      <!-- SPS (CAPS) release 3569 -->
367      <description>Federation</description>
368      <year>1988</year>
369      <publisher>CRL Group</publisher>
370      <part name="flop1" interface="floppy_3">
371         <dataarea name="flop" size="236460">
372            <rom name="3569 - federation (europe).ipf" size="236460" crc="091f3f4f" sha1="fb0f360417ef35fcf5bb59b2c9822ffb7d834015" offset="0" />
373         </dataarea>
374      </part>
375   </software>
376
377   <software name="firefly">
378      <!-- SPS (CAPS) release 3570 -->
379      <description>Firefly</description>
380      <year>1988</year>
381      <publisher>Ocean Software</publisher>
382
383      <part name="flop1" interface="floppy_3">
384         <dataarea name="flop" size="238800">
385            <rom name="3570 - firefly (europe).ipf" size="238800" crc="e1961552" sha1="b3b3d1ebd5f6d5ce7ed104ffa63d1bac97b51db8" offset="0" />
386         </dataarea>
387      </part>
388   </software>
389
390   <software name="fish">
391      <!-- SPS (CAPS) release 3571 -->
392      <description>Fish!</description>
393      <year>1989</year>
394      <publisher>Rainbird Software</publisher>
395
396      <part name="flop1" interface="floppy_3">
397         <dataarea name="flop" size="236460">
398            <rom name="3571 - fish! (europe).ipf" size="236460" crc="880592d1" sha1="7522893bfa42a8b25bf98af8b54a83568df72bd3" offset="0" />
399         </dataarea>
400      </part>
401   </software>
402
403   <software name="footdir2">
404      <!-- SPS (CAPS) release 3509 -->
405      <description>Football Director II</description>
406      <year>1987</year>
407      <publisher>D&amp;H Games</publisher>
408
409      <part name="flop1" interface="floppy_3">
410         <dataarea name="flop" size="234180">
411            <rom name="3509 - football director ii (europe).ipf" size="234180" crc="f98bb0e1" sha1="0eab5d91a1ab220fbc22ae76485fa19beec36adb" offset="0" />
412         </dataarea>
413      </part>
414   </software>
415
416   <software name="foty2">
417      <!-- SPS (CAPS) release 3572 -->
418      <description>Footballer of the Year 2</description>
419      <year>1989</year>
420      <publisher>Gremlin Graphics Software </publisher>
421
422      <part name="flop1" interface="floppy_3">
423         <dataarea name="flop" size="259471">
424            <rom name="3572 - footballer of the year 2 (europe).ipf" size="259471" crc="96979e7f" sha1="a559adafcda492756da509ed22d62a53dbba2a16" offset="0" />
425         </dataarea>
426      </part>
427   </software>
428
429   <software name="hewson4">
430      <!-- SPS (CAPS) release 3510 -->
431      <description>Four Smash Hits From Hewson</description>
432      <year>198?</year>
433      <publisher>Hewson</publisher>
434
435      <part name="flop1" interface="floppy_3">
436         <dataarea name="flop" size="238800">
437            <rom name="3510 - four smash hits from hewson - exolon + zynaps + rana rama + uridium plus (europe).ipf" size="238800" crc="0e708293" sha1="85d7346aff7b7d63a290a828da0445ab73aa9855" offset="0" />
438         </dataarea>
439      </part>
440   </software>
441
442   <software name="garfield">
443      <!-- SPS (CAPS) release 3511 -->
444      <description>Garfield - "Big, Fat, Hairy Deal."</description>
445      <year>1988</year>
446      <publisher>The Edge</publisher>
447
448      <part name="flop1" interface="floppy_3">
449         <dataarea name="flop" size="236460">
450            <rom name="3511 - garfield - big, fat, hairy deal (europe).ipf" size="236460" crc="ffb8008d" sha1="f9f314b1d26c58340a962b7d6f35fdc5cf65768c" offset="0" />
451         </dataarea>
452      </part>
453   </software>
454
455   <software name="lineker">
456      <!-- SPS (CAPS) release 3573 -->
457      <description>Gary Lineker's Hot-Shot!</description>
458      <year>1988</year>
459      <publisher>Gremlin Graphics Software</publisher>
460
461      <part name="flop1" interface="floppy_3">
462         <dataarea name="flop" size="266892">
463            <rom name="3573 - gary lineker's hot-shot! (unknown).ipf" size="266892" crc="17963acf" sha1="22a8985076b7c1743e9431e071940c49efe217f5" offset="0" />
464         </dataarea>
465      </part>
466   </software>
467
468   <software name="linekskl">
469      <!-- SPS (CAPS) release 3574 -->
470      <description>Gary Lineker's Super Skills</description>
471      <year>1988</year>
472      <publisher>Gremlin Graphics Software</publisher>
473
474      <part name="flop1" interface="floppy_3">
475         <dataarea name="flop" size="237460">
476            <rom name="3574 - gary lineker's superskills (unknown).ipf" size="237460" crc="2f0ed1da" sha1="589cf6b337347218814a4a697353be4af5024c8a" offset="0" />
477         </dataarea>
478      </part>
479   </software>
480
481   <software name="lineksss">
482      <!-- SPS (CAPS) release 3575 -->
483      <description>Gary Lineker's Super Star Soccer</description>
484      <year>1988</year>
485      <publisher>Gremlin Graphics Software</publisher>
486
487      <part name="flop1" interface="floppy_3">
488         <dataarea name="flop" size="212085">
489            <rom name="3575 - gary lineker's superstar soccer (unknown).ipf" size="212085" crc="2a1c53f7" sha1="f4c24b1e01312d4f9b2241be14d243e723035499" offset="0" />
490         </dataarea>
491      </part>
492   </software>
493
494   <software name="gauntlet">
495      <!-- SPS (CAPS) release 3576 -->
496      <description>Gauntlet</description>
497      <year>1987</year>
498      <publisher>U.S. Gold</publisher>
499
500      <part name="flop1" interface="floppy_3">
501         <dataarea name="flop" size="212085">
502            <rom name="3576 - gauntlet (europe).ipf" size="212085" crc="4c4c4cc2" sha1="c04e3233166fe888a96b2ea98a6a96f33fb19728" offset="0" />
503         </dataarea>
504      </part>
505   </software>
506
507   <software name="gauntlt2">
508      <!-- SPS (CAPS) release 3577 -->
509      <description>Gauntlet II</description>
510      <year>1988</year>
511      <publisher>U.S. Gold</publisher>
512
513      <part name="flop1" interface="floppy_3">
514         <dataarea name="flop" size="212085">
515            <rom name="3577 - gauntlet ii (europe).ipf" size="212085" crc="7d156d4d" sha1="0d296b611c817203bf59a3710c87d0d5d39c16cf" offset="0" />
516         </dataarea>
517      </part>
518   </software>
519
520   <software name="gazza">
521      <!-- SPS (CAPS) release 3579 -->
522      <description>Gazza's Super Soccer</description>
523      <year>1990</year>
524      <publisher>Empire Software</publisher>
525
526      <part name="flop1" interface="floppy_3">
527         <dataarea name="flop" size="236460">
528            <rom name="3579 - gazza's super soccer (unknown).ipf" size="236460" crc="3c8cb09d" sha1="19a06b4732fefb4d5a8898d415afde39aa8a8495" offset="0" />
529         </dataarea>
530      </part>
531   </software>
532
533   <software name="gazza2">
534      <!-- SPS (CAPS) release 3578 -->
535      <description>Gazza II</description>
536      <year>1990</year>
537      <publisher>Empire Software</publisher>
538
539      <part name="flop1" interface="floppy_3">
540         <dataarea name="flop" size="225096">
541            <rom name="3578 - gazza ii (europe).ipf" size="225096" crc="59a83634" sha1="c43b421f8b0c32858d6bc9668b3b60ef4704f756" offset="0" />
542         </dataarea>
543      </part>
544   </software>
545
546   <software name="ghouls">
547      <!-- SPS (CAPS) release 3512 -->
548      <description>Ghouls 'n' Ghosts</description>
549      <year>1989</year>
550      <publisher>U.S. Gold</publisher>
551
552      <part name="flop1" interface="floppy_3">
553         <dataarea name="flop" size="259471">
554            <rom name="ghouls'n'ghosts.ipf" size="259471" crc="5f056018" sha1="1d84d01a5d349843bcd4743bfb23c7a82ad9704c" offset="0" />
555         </dataarea>
556      </part>
557   </software>
558
559   <software name="hate">
560      <!-- SPS (CAPS) release 3580 -->
561      <description>H.A.T.E. - Hostile All Terrain Encounter</description>
562      <year>1989</year>
563      <publisher>Gremlin Graphics Software</publisher>
564
565      <part name="flop1" interface="floppy_3">
566         <dataarea name="flop" size="266892">
567            <rom name="3580 - h.a.t.e. - hostile all terrain encounter (europe).ipf" size="266892" crc="2aa400b2" sha1="3d847b6f91d0264900e6f2d28bb30574806613ae" offset="0" />
568         </dataarea>
569      </part>
570   </software>
571
572   <software name="hkm">
573      <!-- SPS (CAPS) release 3581 -->
574      <description>H.K.M. - Human Killing Machine</description>
575      <year>1988</year>
576      <publisher>U.S. Gold</publisher>
577
578      <part name="flop1" interface="floppy_3">
579         <dataarea name="flop" size="266892">
580            <rom name="3581 - h.k.m. - human killing machine (europe).ipf" size="266892" crc="2793e98f" sha1="ef4b8fcfb530a6b1edcc8820a3fdc00dbc79ec9d" offset="0" />
581         </dataarea>
582      </part>
583   </software>
584
585   <software name="herolanc">
586      <!-- SPS (CAPS) release 3513 -->
587      <description>Heroes of the Lance</description>
588      <year>1988</year>
589      <publisher>U.S. Gold</publisher>
590
591      <part name="flop1" interface="floppy_3">
592         <dataarea name="flop" size="237465">
593            <rom name="3513 - heroes of the lance (europe).ipf" size="237465" crc="d25d5414" sha1="2caf612f85dc9b790102df5f6a76d90c3408c8db" offset="0" />
594         </dataarea>
595      </part>
596   </software>
597
598   <software name="heroqst">
599      <!-- SPS (CAPS) release 3514 -->
600      <description>Hero Quest</description>
601      <year>1991</year>
602      <publisher>Gremlin Graphics Software</publisher>
603
604      <part name="flop1" interface="floppy_3">
605         <dataarea name="flop" size="239805">
606            <rom name="3514 - heroquest (europe).ipf" size="239805" crc="fc8bb800" sha1="96538aa2fd28b7ae66916590479b0596afcc495c" offset="0" />
607         </dataarea>
608      </part>
609   </software>
610
611   <software name="ironlord">
612      <!-- SPS (CAPS) release 3582 -->
613      <description>Iron Lord</description>
614      <year>1989</year>
615      <publisher>Ubi Soft</publisher>
616
617      <part name="flop1" interface="floppy_3">
618         <dataarea name="flop" size="259180">
619            <rom name="3582 - iron lord (europe).ipf" size="259180" crc="de0e3c7f" sha1="792d58267e8ca7e00b0946a78b7c6b0574ccc942" offset="0" />
620         </dataarea>
621      </part>
622   </software>
623
624   <software name="italia90">
625      <!-- SPS (CAPS) release 3548 -->
626      <description>Italia '90 - World Cup Soccer</description>
627      <year>1989</year>
628      <publisher>Virgin Games</publisher>
629
630      <part name="flop1" interface="floppy_3">
631         <dataarea name="flop" size="71100">
632            <rom name="3548 - italia '90 - world cup soccer (europe).ipf" size="71100" crc="78fa8fd0" sha1="ff5c8308544f24e428e877c3ea8c803f432468bb" offset="0" />
633         </dataarea>
634      </part>
635   </software>
636
637   <software name="offroad">
638      <!-- SPS (CAPS) release 3538 -->
639      <description>Ivan 'Ironman' Stewart's Super Off Road</description>
640      <year>1990</year>
641      <publisher>Virgin Games</publisher>
642
643      <part name="flop1" interface="floppy_3">
644         <dataarea name="flop" size="64845">
645            <rom name="3538 - ivan ironman stewart's super off road (unknown).ipf" size="64845" crc="38cb136b" sha1="5b633c7551b168d13d1c4d96637858fbcc027740" offset="0" />
646         </dataarea>
647      </part>
648   </software>
649
650   <software name="jackrip">
651      <!-- SPS (CAPS) release 3583 -->
652      <description>Jack the Ripper</description>
653      <year>1987</year>
654      <publisher>CRL Group</publisher>
655
656      <part name="flop1" interface="floppy_3">
657         <dataarea name="flop" size="236460">
658            <rom name="3583 - jack the ripper (europe).ipf" size="236460" crc="d2f3019f" sha1="30a0e536578ca62133666b2a710ceef505140215" offset="0" />
659         </dataarea>
660      </part>
661   </software>
662
663   <software name="dalglish">
664      <!-- SPS (CAPS) release 3515 -->
665      <description>Kenny Dalglish Soccer Match</description>
666      <year>1990</year>
667      <publisher>Impressions</publisher>
668
669      <part name="flop1" interface="floppy_3">
670         <dataarea name="flop" size="234180">
671            <rom name="3515 - kenny dalglish soccer match (europe).ipf" size="234180" crc="faeb7b0f" sha1="263e1fcb8bb77632cd83ab1dd2ce8d960bed9270" offset="0" />
672         </dataarea>
673      </part>
674   </software>
675
676   <software name="kickoff">
677      <!-- SPS (CAPS) release 3516 -->
678      <description>Kick Off</description>
679      <year>1989</year>
680      <publisher>Anco Software</publisher>
681
682      <part name="flop1" interface="floppy_3">
683         <dataarea name="flop" size="234180">
684            <rom name="3516 - kick off (europe).ipf" size="234180" crc="152e807b" sha1="855dc66c697484083c729d2183035dfb9166aacc" offset="0" />
685         </dataarea>
686      </part>
687   </software>
688
689   <software name="lmohican">
690      <!-- SPS (CAPS) release 3584 -->
691      <description>The Last Mohican</description>
692      <year>1987</year>
693      <publisher>CRL Group</publisher>
694
695      <part name="flop1" interface="floppy_3">
696         <dataarea name="flop" size="236460">
697            <rom name="3584 - last mohican, the (europe).ipf" size="236460" crc="ed3f624d" sha1="222b93b8e83987c8e5b83f4eb68dee8227bffc64" offset="0" />
698         </dataarea>
699      </part>
700   </software>
701
702   <software name="lightcor">
703      <!-- SPS (CAPS) release 3517 -->
704      <description>The Light Corridor</description>
705      <year>1991</year>
706      <publisher>Infogrames</publisher>
707
708      <part name="flop1" interface="floppy_3">
709         <dataarea name="flop" size="125316">
710            <rom name="3517 - light corridor, the (europe).ipf" size="125316" crc="ef3b80cd" sha1="568f29ba7d1a498432737543af07ba57c4adb26c" offset="0" />
711         </dataarea>
712      </part>
713   </software>
714
715   <software name="lmidnght">
716      <!-- SPS (CAPS) release 3518 -->
717      <description>Loads of Midnight</description>
718      <year>1987</year>
719      <publisher>CRL Group</publisher>
720
721      <part name="flop1" interface="floppy_3">
722         <dataarea name="flop" size="236460">
723            <rom name="3518 - loads of midnight (europe).ipf" size="236460" crc="a74f1114" sha1="2ab72f52fa499be8810f67e14aa477a114d37c29" offset="0" />
724         </dataarea>
725      </part>
726   </software>
727
728   <software name="lonewolf">
729      <!-- SPS (CAPS) release 3586 -->
730      <description>Lone Wolf - The Mirror of Death</description>
731      <year>1991</year>
732      <publisher>Aufiogenic Software</publisher>
733
734      <part name="flop1" interface="floppy_3">
735         <dataarea name="flop" size="236460">
736            <rom name="3586 - lone wolf - the mirror of death (europe).ipf" size="236460" crc="8943aba3" sha1="c6c810341c40a099858678ea63d701feca7d611f" offset="0" />
737         </dataarea>
738      </part>
739   </software>
740
741   <software name="lotus">
742      <!-- SPS (CAPS) release 3587 -->
743      <description>Lotus Esprit Turbo Challenge</description>
744      <year>1990</year>
745      <publisher>Gremlin Graphics Software</publisher>
746
747      <part name="flop1" interface="floppy_3">
748         <dataarea name="flop" size="239805">
749            <rom name="3587 - lotus esprit turbo challenge (europe).ipf" size="239805" crc="7c19c332" sha1="9756acef2e504b898894eef464c2496d60fbc862" offset="0" />
750         </dataarea>
751      </part>
752   </software>
753
754   <software name="mknitril">
755      <!-- SPS (CAPS) release 3629 -->
756      <description>Magic Knight Trilogy</description>
757      <year>1988</year>
758      <publisher>Mastertronic</publisher>
759      <info name="game" value="Finders Keepers + Spellbound + Knight Tyme" />
760
761      <part name="flop1" interface="floppy_3">
762         <dataarea name="flop" size="463740">
763            <rom name="3629 - magic knight trilogy - finders keepers + spellbound + knight tyme (europe).ipf" size="463740" crc="079c89bd" sha1="d90d4d25300795b8cc4ba383c680784b3050ef40" offset="0" />
764         </dataarea>
765      </part>
766   </software>
767
768   <software name="marauder">
769      <!-- SPS (CAPS) release 3519 -->
770      <description>Marauder</description>
771      <year>1988</year>
772      <publisher>Hewson Consultants</publisher>
773
774      <part name="flop1" interface="floppy_3">
775         <dataarea name="flop" size="237460">
776            <rom name="3519 - marauder (europe).ipf" size="237460" crc="2b61f4db" sha1="6896d9424b64b0ce2239485f28da9d49c7952e84" offset="0" />
777         </dataarea>
778      </part>
779   </software>
780
781   <software name="mask3">
782      <!-- SPS (CAPS) release 3588 -->
783      <description>Mask III - Venom Strikes Back</description>
784      <year>1988</year>
785      <publisher>Gremlin Graphics Software</publisher>
786
787      <part name="flop1" interface="floppy_3">
788         <dataarea name="flop" size="212085">
789            <rom name="3588 - mask iii - venom strikes back (europe).ipf" size="212085" crc="d36cea11" sha1="e4f73b8b32cf20802462997bc8f0adae38039e73" offset="0" />
790         </dataarea>
791      </part>
792   </software>
793
794   <software name="masters">
795      <!-- SPS (CAPS) release 3589 -->
796      <description>Masters of the Universe - The Movie</description>
797      <year>1987</year>
798      <publisher>U.S. Gold</publisher>
799
800      <part name="flop1" interface="floppy_3">
801         <dataarea name="flop" size="212085">
802            <rom name="3589 - masters of the universe - the movie (europe).ipf" size="212085" crc="dc32481a" sha1="66ebeed6e635b019f6cdea6c4b1a7f8305f5e7d3" offset="0" />
803         </dataarea>
804      </part>
805   </software>
806
807   <software name="megapocl">
808      <!-- SPS (CAPS) release 3590 -->
809      <description>MegaApocalypse</description>
810      <year>1988</year>
811      <publisher>Martech Games</publisher>
812
813      <part name="flop1" interface="floppy_3">
814         <dataarea name="flop" size="236460">
815            <rom name="3590 - mega-apocalypse (europe).ipf" size="236460" crc="802fa03e" sha1="0db41124887381927e87c9b294de53b5b0e0443d" offset="0" />
816         </dataarea>
817      </part>
818   </software>
819
820   <software name="mickey">
821      <!-- SPS (CAPS) release 3591 -->
822      <description>Mickey Mouse</description>
823      <year>1988</year>
824      <publisher>Gremlin Graphics Software</publisher>
825
826      <part name="flop1" interface="floppy_3">
827         <dataarea name="flop" size="212085">
828            <rom name="3591 - mickey mouse (europe).ipf" size="212085" crc="a788f7e3" sha1="9a89ba9da2a65acbe909e1be4ace922fb52ad28c" offset="0" />
829         </dataarea>
830      </part>
831   </software>
832
833   <software name="midres">
834      <!-- SPS (CAPS) release 3520 -->
835      <description>Midnight Resistance</description>
836      <year>1990</year>
837      <publisher>U.S. Gold</publisher>
838
839      <part name="flop1" interface="floppy_3">
840         <dataarea name="flop" size="146161">
841            <rom name="3520 - midnight resistance (europe).ipf" size="146161" crc="62943f46" sha1="369f6ed76e6b8c7d60949754b49f939d0747bd46" offset="0" />
842         </dataarea>
843      </part>
844   </software>
845
846   <software name="montypyt">
847      <!-- SPS (CAPS) release 3521 -->
848      <description>Monty Python's Flying Circus</description>
849      <year>1990</year>
850      <publisher>Virgin Games</publisher>
851
852      <part name="flop1" interface="floppy_3">
853         <dataarea name="flop" size="262692">
854            <rom name="3521 - monty python's flying circus (europe).ipf" size="262692" crc="8d7630b6" sha1="31495c6cf185cb00ff83eb3dc8f8b126118cf1b4" offset="0" />
855         </dataarea>
856      </part>
857   </software>
858
859   <software name="ninjawar">
860      <!-- SPS (CAPS) release 3522 -->
861      <description>The Ninja Warriors</description>
862      <year>1990</year>
863      <publisher>Virgin Games</publisher>
864
865      <part name="flop1" interface="floppy_3">
866         <dataarea name="flop" size="241110">
867            <rom name="3522 - ninja warriors, the (europe).ipf" size="241110" crc="4eb0abeb" sha1="e1ef8de2788953c9399515796ee1309ea33ccd3f" offset="0" />
868         </dataarea>
869      </part>
870   </software>
871
872   <software name="northstr">
873      <!-- SPS (CAPS) release 3592 -->
874      <description>North Star</description>
875      <year>1988</year>
876      <publisher>Gremlin Graphics Software</publisher>
877
878      <part name="flop1" interface="floppy_3">
879         <dataarea name="flop" size="212085">
880            <rom name="3592 - north star (europe).ipf" size="212085" crc="3c78a485" sha1="a8e47ac46b9d6396d422fee1ec91d753ccf66ec6" offset="0" />
881         </dataarea>
882      </part>
883   </software>
884
885   <software name="obliter">
886      <!-- SPS (CAPS) release 3593 -->
887      <description>Obliterator</description>
888      <year>1989</year>
889      <publisher>Melbourne House</publisher>
890
891      <part name="flop1" interface="floppy_3">
892         <dataarea name="flop" size="234180">
893            <rom name="3593 - obliterator (unknown).ipf" size="234180" crc="2ecaeee7" sha1="5e414ccba57f2fb0d384dac268b7f6f7b1fc48d8" offset="0" />
894         </dataarea>
895      </part>
896   </software>
897
898   <software name="p47thun">
899      <!-- SPS (CAPS) release 3594 -->
900      <description>P-47 Thunderbolt</description>
901      <year>1990</year>
902      <publisher>Firebird Software</publisher>
903
904      <part name="flop1" interface="floppy_3">
905         <dataarea name="flop" size="236460">
906            <rom name="3594 - p-47 thunderbolt (europe).ipf" size="236460" crc="5e7c8a54" sha1="077718f2e94cef68e57114249e869d6cb897a616" offset="0" />
907         </dataarea>
908      </part>
909   </software>
910
911   <software name="phmpegas">
912      <!-- SPS (CAPS) release 3596 -->
913      <description>P.H.M. Pegasus</description>
914      <year>1988</year>
915      <publisher>Electronic Arts</publisher>
916      <info name="alt_title" value="P.H.M. Pegasus - Patrol Hydrofoil Missile Craft Simulation (Box)" />
917
918      <part name="flop1" interface="floppy_3">
919         <dataarea name="flop" size="238800">
920            <rom name="3596 - phm pegasus - patrol hydrofoil missile craft simulation (europe).ipf" size="238800" crc="ef9157eb" sha1="ae18a271c03fee31a70fa55b80ad4b991fab156e" offset="0" />
921         </dataarea>
922      </part>
923   </software>
924
925   <software name="pacland">
926      <!-- SPS (CAPS) release 3595 -->
927      <description>Pac-Land</description>
928      <year>1989</year>
929      <publisher>Grandslam Entertainments </publisher>
930
931      <part name="flop1" interface="floppy_3">
932         <dataarea name="flop" size="114805">
933            <rom name="3595 - pac-land (europe).ipf" size="114805" crc="93e4fc20" sha1="58a070edfbc9d28e9a1a25674867433e7e22e214" offset="0" />
934         </dataarea>
935      </part>
936   </software>
937
938   <software name="pang">
939      <!-- SPS (CAPS) release 3523 -->
940      <description>Pang</description>
941      <year>1990</year>
942      <publisher>Ocean Software</publisher>
943
944      <part name="flop1" interface="floppy_3">
945         <dataarea name="flop" size="196735">
946            <rom name="3523 - pang (europe).ipf" size="196735" crc="604502ad" sha1="a7f22304e0deae1a25f23ea7f73570dbcfe2bbd5" offset="0" />
947         </dataarea>
948      </part>
949   </software>
950
951   <software name="passsht">
952      <!-- SPS (CAPS) release 3524 -->
953      <description>Passing Shot</description>
954      <year>1989</year>
955      <publisher>Image Works</publisher>
956
957      <part name="flop1" interface="floppy_3">
958         <dataarea name="flop" size="77364">
959            <rom name="3524 - passing shot (europe).ipf" size="77364" crc="f987b804" sha1="d5537ad6d7670725396d63022fe4fa3a4c3b6aa7" offset="0" />
960         </dataarea>
961      </part>
962   </software>
963
964   <software name="pawn">
965      <!-- SPS (CAPS) release 3525 -->
966      <description>The Pawn</description>
967      <year>1987</year>
968      <publisher>Rainbird Software</publisher>
969
970      <part name="flop1" interface="floppy_3">
971         <dataarea name="flop" size="236460">
972            <rom name="3525 - pawn, the (europe).ipf" size="236460" crc="468012a2" sha1="1402a94935992789fdbffa1aa07140d56eeba435" offset="0" />
973         </dataarea>
974      </part>
975   </software>
976
977   <software name="pipmania">
978      <!-- SPS (CAPS) release 3597 -->
979      <description>Pipe Mania</description>
980      <year>1990</year>
981      <publisher>Empire Software</publisher>
982
983      <part name="flop1" interface="floppy_3">
984         <dataarea name="flop" size="234180">
985            <rom name="3597 - pipe mania (europe).ipf" size="234180" crc="c42e0870" sha1="70623591fbef78e5562ac88418ad61df1ba9a811" offset="0" />
986         </dataarea>
987      </part>
988   </software>
989
990   <software name="pirate33">
991      <!-- SPS (CAPS) release 3598 -->
992      <description>Pirate 3 +3</description>
993      <year>1987</year>
994      <publisher>Pirate Software</publisher>
995      <info name="games" value="Holiday in Sumaria + Call Me Psycho + Smash Out!" />
996
997      <part name="flop1" interface="floppy_3">
998         <dataarea name="flop" size="236460">
999            <rom name="3598 - pirate 3+3 - holiday in sumaria + call me psycho + smash out! (europe).ipf" size="236460" crc="95e093a6" sha1="c6bb5c0c3fd92c8d666b3493ca8fdc55a8f1d35d" offset="0" />
1000         </dataarea>
1001      </part>
1002   </software>
1003
1004   <software name="platoon">
1005      <!-- SPS (CAPS) release 3526 -->
1006      <description>Platoon</description>
1007      <year>1988</year>
1008      <publisher>U.S. Gold</publisher>
1009
1010      <part name="flop1" interface="floppy_3">
1011         <dataarea name="flop" size="159198">
1012            <rom name="3526 - platoon (europe).ipf" size="159198" crc="56fe10dc" sha1="d844dabecb043d8c16bd8864b7146de456cda369" offset="0" />
1013         </dataarea>
1014      </part>
1015   </software>
1016
1017   <software name="predatr2">
1018      <!-- SPS (CAPS) release 3527 -->
1019      <description>Predator 2</description>
1020      <year>1991</year>
1021      <publisher>Image Works</publisher>
1022
1023      <part name="flop1" interface="floppy_3">
1024         <dataarea name="flop" size="234180">
1025            <rom name="3527 - predator 2 (europe).ipf" size="234180" crc="2cdff17b" sha1="c691b6cca52aced2790f7e99f27cc6b3e8040c4e" offset="0" />
1026         </dataarea>
1027      </part>
1028   </software>
1029
1030   <software name="protennt">
1031      <!-- SPS (CAPS) release 3599 -->
1032      <description>Pro Tennis Tour</description>
1033      <year>1990</year>
1034      <publisher>Ubi Soft</publisher>
1035
1036      <part name="flop1" interface="floppy_3">
1037         <dataarea name="flop" size="236460">
1038            <rom name="3599 - pro tennis tour (europe).ipf" size="236460" crc="e1e4448b" sha1="b8abc334bf1604934e293c133fdbe3946e744975" offset="0" />
1039         </dataarea>
1040      </part>
1041   </software>
1042
1043   <software name="qoscrup">
1044      <!-- SPS (CAPS) release 3529 -->
1045      <description>A Question of Scruples - The Computer Edition</description>
1046      <year>1987</year>
1047      <publisher>Leisure Genius</publisher>
1048
1049      <part name="flop1" interface="floppy_3">
1050         <dataarea name="flop" size="236460">
1051            <rom name="3529 - question of scruples, a - the computer edition (europe).ipf" size="236460" crc="34d8887c" sha1="2e402eb208ce6695930a8d7e042c4b1f0f7e6944" offset="0" />
1052         </dataarea>
1053      </part>
1054   </software>
1055
1056   <software name="qos">
1057      <!-- SPS (CAPS) release 3601 -->
1058      <description>A Question of Sport</description>
1059      <year>1989</year>
1060      <publisher>Elite Systems</publisher>
1061
1062      <part name="flop1" interface="floppy_3">
1063         <dataarea name="flop" size="236460">
1064            <rom name="3601 - question of sport, a (europe).ipf" size="236460" crc="8402bbeb" sha1="0f47e7c7326ad484f2222579c6395e29031a0115" offset="0" />
1065         </dataarea>
1066      </part>
1067   </software>
1068
1069   <software name="rbibb2">
1070      <!-- SPS (CAPS) release 3602 -->
1071      <description>R.B.I. Baseball 2</description>
1072      <year>1991</year>
1073      <publisher>Domark</publisher>
1074
1075      <part name="flop1" interface="floppy_3">
1076         <dataarea name="flop" size="234180">
1077            <rom name="3602 - r.b.i. baseball two (europe).ipf" size="234180" crc="87c57f24" sha1="5558cfb938091ab469bbec5a3323d69a73186bfd" offset="0" />
1078         </dataarea>
1079      </part>
1080   </software>
1081
1082   <software name="rbisland">
1083      <!-- SPS (CAPS) release 3600 -->
1084      <description>Rainbow Islands</description>
1085      <year>1990</year>
1086      <publisher>Ocean Software</publisher>
1087
1088      <part name="flop1" interface="floppy_3">
1089         <dataarea name="flop" size="211680">
1090            <rom name="3600 - rainbow islands (europe).ipf" size="211680" crc="d7db38ed" sha1="acfc70b4ecb3a4493321541a86585aaf85aed12c" offset="0" />
1091         </dataarea>
1092      </part>
1093   </software>
1094
1095   <software name="renegade">
1096      <!-- SPS (CAPS) release 3603 -->
1097      <description>Renegade</description>
1098      <year>1987</year>
1099      <publisher>Imagine Software</publisher>
1100
1101      <part name="flop1" interface="floppy_3">
1102         <dataarea name="flop" size="236460">
1103            <rom name="3603 - renegade (europe).ipf" size="236460" crc="84a1fc8e" sha1="bcf794a5ab09f3febd58e26a4e4fa31f5e1941f9" offset="0" />
1104         </dataarea>
1105      </part>
1106   </software>
1107
1108   <software name="rex">
1109      <!-- SPS (CAPS) release 3605 -->
1110      <description>Rex</description>
1111      <year>1988</year>
1112      <publisher>Martech Games</publisher>
1113
1114      <part name="flop1" interface="floppy_3">
1115         <dataarea name="flop" size="236460">
1116            <rom name="3605 - rex (europe).ipf" size="236460" crc="ee04c2c3" sha1="8bd98191db385647c808453ec50813dd93d72b0c" offset="0" />
1117         </dataarea>
1118      </part>
1119   </software>
1120
1121   <software name="roadblst">
1122      <!-- SPS (CAPS) release 3606 -->
1123      <description>Road Blasters</description>
1124      <year>1988</year>
1125      <publisher>U.S. Gold</publisher>
1126
1127      <part name="flop1" interface="floppy_3">
1128         <dataarea name="flop" size="238800">
1129            <rom name="3606 - road blasters (europe).ipf" size="238800" crc="95160028" sha1="f0359902f4687a30aa98a2b11e1eee1e170daa15" offset="0" />
1130         </dataarea>
1131      </part>
1132   </software>
1133
1134   <software name="robocop2">
1135      <!-- SPS (CAPS) release 3528 -->
1136      <description>Robocop 2</description>
1137      <year>1988</year>
1138      <publisher>Ocean Software</publisher>
1139
1140      <part name="flop1" interface="floppy_3">
1141         <dataarea name="flop" size="139905">
1142            <rom name="3528 - robocop 2 (europe).ipf" size="139905" crc="dcedfec7" sha1="80535591f4d93e2df41481df64673571d93b1809" offset="0" />
1143         </dataarea>
1144      </part>
1145   </software>
1146
1147   <software name="rthunder">
1148      <!-- SPS (CAPS) release 3608 -->
1149      <description>Rolling Thunder</description>
1150      <year>1988</year>
1151      <publisher>U.S. Gold</publisher>
1152
1153      <part name="flop1" interface="floppy_3">
1154         <dataarea name="flop" size="237460">
1155            <rom name="3608 - rolling thunder (europe).ipf" size="237460" crc="ddd2f964" sha1="5a910fc46cef7b545bb817128048de41357e6991" offset="0" />
1156         </dataarea>
1157      </part>
1158   </software>
1159
1160   <software name="rungaunt">
1161      <!-- SPS (CAPS) release 3609 -->
1162      <description>Run the Gauntlet</description>
1163      <year>1989</year>
1164      <publisher>Ocean Software</publisher>
1165
1166      <part name="flop1" interface="floppy_3">
1167         <dataarea name="flop" size="212085">
1168            <rom name="3609 - run the gauntlet (europe).ipf" size="212085" crc="e1a23873" sha1="191d4c4f0beef6e4fd4cd47edda058092e2374a5" offset="0" />
1169         </dataarea>
1170      </part>
1171   </software>
1172
1173   <software name="saintgrv">
1174      <!-- SPS (CAPS) release 3610 -->
1175      <description>Saint &amp; Greavsie</description>
1176      <year>1989</year>
1177      <publisher>Grandslam Entertainments</publisher>
1178
1179      <part name="flop1" interface="floppy_3">
1180         <dataarea name="flop" size="267142">
1181            <rom name="3610 - saint and greavsie (europe).ipf" size="267142" crc="8e3df69a" sha1="671ed674a6f05d0db8e3e437de87ee2298a43769" offset="0" />
1182         </dataarea>
1183      </part>
1184   </software>
1185
1186   <software name="scrabdx">
1187      <!-- SPS (CAPS) release 3611 -->
1188      <description>Scrabble Deluxe</description>
1189      <year>1987</year>
1190      <publisher>Leisure Genius</publisher>
1191
1192      <part name="flop1" interface="floppy_3">
1193         <dataarea name="flop" size="233852">
1194            <rom name="3611 - scrabble deluxe (europe).ipf" size="233852" crc="fd27626b" sha1="06f09b5a89ddd32fff07eb5aeae40bad96d8275e" offset="0" />
1195         </dataarea>
1196      </part>
1197   </software>
1198
1199   <software name="shootdsk">
1200      <!-- SPS (CAPS) release 3612 -->
1201      <description>Shootacular Disk 2</description>
1202      <year>1988</year>
1203      <publisher>Alternative Software</publisher>
1204      <info name="game" value="Combat Zone, Firestorm, Dead or Alive" />
1205
1206      <part name="flop1" interface="floppy_3">
1207         <dataarea name="flop" size="234180">
1208            <rom name="3612 - shootacular disk 2 - combat zone + firestorm + dead or alive (europe).ipf" size="234180" crc="9fbe4d56" sha1="ce4ae2c4e57f68da942249b204ec28a23ae1760c" offset="0" />
1209         </dataarea>
1210      </part>
1211   </software>
1212
1213   <software name="simcity">
1214      <!-- SPS (CAPS) release 3530 -->
1215      <description>Sim City</description>
1216      <year>1990</year>
1217      <publisher>Infogrames</publisher>
1218
1219      <part name="flop1" interface="floppy_3">
1220         <dataarea name="flop" size="12e901e">
1221            <rom name="3530 - sim city (europe).ipf" size="126717" crc="12e901ee" sha1="7fd665f19a290994dfbf8ba02da19ac1905581be" offset="0" />
1222         </dataarea>
1223      </part>
1224   </software>
1225
1226   <software name="skatball">
1227      <!-- SPS (CAPS) release 3613 -->
1228      <description>Skateball</description>
1229      <year>1988</year>
1230      <publisher>Ubi Soft</publisher>
1231
1232      <part name="flop1" interface="floppy_3">
1233         <dataarea name="flop" size="236460">
1234            <rom name="3613 - skateball (europe).ipf" size="236460" crc="00cb42ee" sha1="f3a0c02215f9ea679bcb338b9f5a9d7cc61ab235" offset="0" />
1235         </dataarea>
1236      </part>
1237   </software>
1238
1239   <software name="skullxbo">
1240      <!-- SPS (CAPS) release 3614 -->
1241      <description>Skull &amp; Crossbones</description>
1242      <year>1991</year>
1243      <publisher>Domark</publisher>
1244
1245      <part name="flop1" interface="floppy_3">
1246         <dataarea name="flop" size="271685">
1247            <rom name="3614 - skull &amp; crossbones (europe).ipf" size="271685" crc="a6c33f24" sha1="91c9b414d4ac1bd44657dd68d4ef2c8d911b45db" offset="0" />
1248         </dataarea>
1249      </part>
1250   </software>
1251
1252   <software name="snoopy">
1253      <!-- SPS (CAPS) release 3531 -->
1254      <description>Snoopy - The Cool Computer Game</description>
1255      <year>1991</year>
1256      <publisher>The Edge</publisher>
1257
1258      <part name="flop1" interface="floppy_3">
1259         <dataarea name="flop" size="195328">
1260            <rom name="3531 - snoopy - the cool computer game (europe).ipf" size="236460" crc="acdfe6d4" sha1="4ab0bd91d893964d957bf8c7ab3fa79d534220dc" offset="0" />
1261         </dataarea>
1262      </part>
1263   </software>
1264
1265   <software name="soldlght">
1266      <!-- SPS (CAPS) release 3532 -->
1267      <description>Soldier of Light</description>
1268      <year>1988</year>
1269      <publisher>ACE Software</publisher>
1270
1271      <part name="flop1" interface="floppy_3">
1272         <dataarea name="flop" size="236460">
1273            <rom name="3532 - soldier of light (europe).ipf" size="236460" crc="bffdd16e" sha1="948cf81086d9093da6cd08be61f60d46caf4e933" offset="0" />
1274         </dataarea>
1275      </part>
1276   </software>
1277
1278   <software name="spacecrs">
1279      <!-- SPS (CAPS) release 3533 -->
1280      <description>Space Crusade</description>
1281      <year>1992</year>
1282      <publisher>Gremlin Graphics Software</publisher>
1283
1284      <part name="flop1" interface="floppy_3">
1285         <dataarea name="flop" size="239805">
1286            <rom name="3533 - space crusade (europe).ipf" size="239805" crc="9c96fd7b" sha1="a1e5864217fe7f5617d21e005f53752af0238f92" offset="0" />
1287         </dataarea>
1288      </part>
1289   </software>
1290
1291   <software name="sportdsk">
1292      <!-- SPS (CAPS) release 3534 -->
1293      <description>Sportacular Disk 1</description>
1294      <year>1988</year>
1295      <publisher>Alternative Software</publisher>
1296      <info name="games" value="Soccer Boss, Olympic Spectacular, Indoor Soccer" />
1297
1298      <part name="flop1" interface="floppy_3">
1299         <dataarea name="flop" size="234180">
1300            <rom name="3534 - sportacular disk 1 - soccer boss + olympic spectacular + indoor soccer (europe).ipf" size="234180" crc="6945a61b" sha1="bf3f411cbb998a0af1274154f1761e753eb6a92f" offset="0" />
1301         </dataarea>
1302      </part>
1303   </software>
1304
1305   <software name="spywholm">
1306      <!-- SPS (CAPS) release 3615 -->
1307      <description>The Spy Who Loved Me</description>
1308      <year>1990</year>
1309      <publisher>Domark</publisher>
1310
1311      <part name="flop1" interface="floppy_3">
1312         <dataarea name="flop" size="234180">
1313            <rom name="3615 - spy who loved me, the (europe).ipf" size="234180" crc="6d638747" sha1="30763ad2f43935d7b63fdec20e62858357742b77" offset="0" />
1314         </dataarea>
1315      </part>
1316   </software>
1317
1318   <software name="stalingr">
1319      <!-- SPS (CAPS) release 3535 -->
1320      <description>Stalingrad</description>
1321      <year>1988</year>
1322      <publisher>CCS</publisher>
1323
1324      <part name="flop1" interface="floppy_3">
1325         <dataarea name="flop" size="236460">
1326            <rom name="3535 - stalingrad (europe).ipf" size="236460" crc="cb347afc" sha1="cb584de6c08d12788e8ef8c2b5e74e06ffbb2c12" offset="0" />
1327         </dataarea>
1328      </part>
1329   </software>
1330
1331   <software name="starwars">
1332      <!-- SPS (CAPS) release 3617 -->
1333      <description>Star Wars</description>
1334      <year>1987</year>
1335      <publisher>Domark</publisher>
1336
1337      <part name="flop1" interface="floppy_3">
1338         <dataarea name="flop" size="236460">
1339            <rom name="3617 - star wars (europe).ipf" size="236460" crc="f7406cf3" sha1="892d00becdc045a5289c4ae172291486e3107c76" offset="0" />
1340         </dataarea>
1341      </part>
1342   </software>
1343
1344   <software name="jedi">
1345      <!-- SPS (CAPS) release 3604 -->
1346      <description>Star Wars - Return of the Jedi</description>
1347      <year>1989</year>
1348      <publisher>Domark</publisher>
1349
1350      <part name="flop1" interface="floppy_3">
1351         <dataarea name="flop" size="236460">
1352            <rom name="3604 - star wars - return of the jedi (europe).ipf" size="236460" crc="6f6134a2" sha1="7f04c19c145dc216736d8daadba0641277170d4c" offset="0" />
1353         </dataarea>
1354      </part>
1355   </software>
1356
1357   <software name="starglid">
1358      <!-- SPS (CAPS) release 3536 -->
1359      <description>Starglider</description>
1360      <year>1986</year>
1361      <publisher>Rainbird Software</publisher>
1362
1363      <part name="flop1" interface="floppy_3">
1364         <dataarea name="flop" size="236460">
1365            <rom name="3536 - starglider (europe).ipf" size="236460" crc="8bfbfec7" sha1="68b7e4ba0c50cb750926623f513d436a00f73581" offset="0" />
1366         </dataarea>
1367      </part>
1368   </software>
1369
1370   <software name="cchaplin">
1371      <!-- SPS (CAPS) release 3616 -->
1372      <description>Starring Charlie Chaplin</description>
1373      <year>1987</year>
1374      <publisher>U.S. Gold</publisher>
1375
1376      <part name="flop1" interface="floppy_3">
1377         <dataarea name="flop" size="237460">
1378            <rom name="3616 - starring charlie chaplin (europe).ipf" size="237460" crc="93bc0467" sha1="02bc05b02a6880deb03db12e658f65d9b46f9a6f" offset="0" />
1379         </dataarea>
1380      </part>
1381   </software>
1382
1383   <software name="subbuteo">
1384      <!-- SPS (CAPS) release 3618 -->
1385      <description>Subbuteo - The Computer Game</description>
1386      <year>1990</year>
1387      <publisher>Electronic Zoo</publisher>
1388
1389      <part name="flop1" interface="floppy_3">
1390         <dataarea name="flop" size="236460">
1391            <rom name="3618 - subbuteo - the computer game (europe).ipf" size="236460" crc="2bc39232" sha1="b4933dd0e5420e1f8c977192cef1dc09dcc0ec81" offset="0" />
1392         </dataarea>
1393      </part>
1394   </software>
1395
1396   <software name="sunxword">
1397      <!-- SPS (CAPS) release 3619 -->
1398      <description>The Sun Computer Crosswords Volume 1</description>
1399      <year>1988</year>
1400      <publisher>Akom</publisher>
1401
1402      <part name="flop1" interface="floppy_3">
1403         <dataarea name="flop" size="236460">
1404            <rom name="3619 - sun computer crosswords volume 1, the (europe).ipf" size="236460" crc="e87a9910" sha1="5c3c7cc4c1d3ae851a1631bfb5a25ec324b33783" offset="0" />
1405         </dataarea>
1406      </part>
1407   </software>
1408
1409   <software name="supercar">
1410      <!-- SPS (CAPS) release 3537 -->
1411      <description>Super Cars</description>
1412      <year>1990</year>
1413      <publisher>Gremlin Graphics Software</publisher>
1414
1415      <part name="flop1" interface="floppy_3">
1416         <dataarea name="flop" size="212085">
1417            <rom name="3537 - super cars (europe).ipf" size="212085" crc="20a43fbb" sha1="de410ab9d0fc172e58d523f4e22088694306f407" offset="0" />
1418         </dataarea>
1419      </part>
1420   </software>
1421
1422   <software name="suprcycl">
1423      <!-- SPS (CAPS) release 3620 -->
1424      <description>Super Cycle</description>
1425      <year>1987</year>
1426      <publisher>U.S. Gold</publisher>
1427
1428      <part name="flop1" interface="floppy_3">
1429         <dataarea name="flop" size="237460">
1430            <rom name="3620 - super cycle (europe).ipf" size="237460" crc="4349a0e1" sha1="297c1aedb313a8344f9e7489f7d282e1260506c6" offset="0" />
1431         </dataarea>
1432      </part>
1433   </software>
1434
1435   <software name="ssinv">
1436      <!-- SPS (CAPS) release 3539 -->
1437      <description>Super Space Invaders</description>
1438      <year>1991</year>
1439      <publisher>Domark</publisher>
1440
1441      <part name="flop1" interface="floppy_3">
1442         <dataarea name="flop" size="234180">
1443            <rom name="3539 - super space invaders (europe).ipf" size="234180" crc="3f3b3a3e" sha1="eeed9c991f06819e3a1aed01d42cd0ec364fac6c" offset="0" />
1444         </dataarea>
1445      </part>
1446   </software>
1447
1448   <software name="taipan">
1449      <!-- SPS (CAPS) release 3621 -->
1450      <description>Tai-pan</description>
1451      <year>1987</year>
1452      <publisher>Ocean Software</publisher>
1453
1454      <part name="flop1" interface="floppy_3">
1455         <dataarea name="flop" size="236460">
1456            <rom name="3621 - tai-pan (europe).ipf" size="236460" crc="aef0bdf1" sha1="467dfa30fa1a1f7278b83d27bd9a1a1a9bfa0bdd" offset="0" />
1457         </dataarea>
1458      </part>
1459   </software>
1460
1461   <software name="tmht">
1462      <!-- SPS (CAPS) release 3540 -->
1463      <description>Teenage Mutant Hero Turtles</description>
1464      <year>1990</year>
1465      <publisher>Image Works</publisher>
1466
1467      <part name="flop1" interface="floppy_3">
1468         <dataarea name="flop" size="234180">
1469            <rom name="3540 - teenage mutant hero turtles (europe).ipf" size="234180" crc="5cba9f99" sha1="920b8203c466a578d73aef39e0b54931e42b359d" offset="0" />
1470         </dataarea>
1471      </part>
1472   </software>
1473
1474   <software name="tmht3" cloneof="tmht">
1475      <!-- SPS (CAPS) release 3541 -->
1476      <description>Teenage Mutant Hero Turtles (3&quot;)</description>
1477      <year>1990</year>
1478      <publisher>Image Works</publisher>
1479
1480      <part name="flop1" interface="floppy_3">
1481         <dataarea name="flop" size="236460">
1482            <rom name="3541 - teenage mutant hero turtles (europe) (three inch).ipf" size="236460" crc="1125e88f" sha1="ee807ed179cb748403f94d7aa4b6e7ae8a9b033b" offset="0" />
1483         </dataarea>
1484      </part>
1485   </software>
1486
1487   <software name="term2">
1488      <!-- SPS (CAPS) release 3622 -->
1489      <description>Terminator 2 - Judgment Day</description>
1490      <year>1991</year>
1491      <publisher>Ocean Software</publisher>
1492
1493      <part name="flop1" interface="floppy_3">
1494         <dataarea name="flop" size="259185">
1495            <rom name="3622 - terminator 2 - judgment day (europe).ipf" size="259185" crc="da207f08" sha1="04ae9ac360b9fbe23c76a4d380cde9ca9903b0e9" offset="0" />
1496         </dataarea>
1497      </part>
1498   </software>
1499
1500   <software name="tblade">
1501      <!-- SPS (CAPS) release 3623 -->
1502      <description>Thunder Blade</description>
1503      <year>1988</year>
1504      <publisher>U.S. Gold</publisher>
1505
1506      <part name="flop1" interface="floppy_3">
1507         <dataarea name="flop" size="237460">
1508            <rom name="3623 - thunder blade (europe).ipf" size="237460" crc="c83cc174" sha1="eba2cc3c53a1634e48098a431f73dee3169c78d3" offset="0" />
1509         </dataarea>
1510      </part>
1511   </software>
1512
1513   <software name="thdrcats">
1514      <!-- SPS (CAPS) release 3624 -->
1515      <description>Thundercats</description>
1516      <year>1987</year>
1517      <publisher>Elite Systems</publisher>
1518
1519      <part name="flop1" interface="floppy_3">
1520         <dataarea name="flop" size="234180">
1521            <rom name="3624 - thundercats (europe).ipf" size="234180" crc="459999a2" sha1="af7f670ffaf05bc36bb7997849d446770ed7a4b3" offset="0" />
1522         </dataarea>
1523      </part>
1524   </software>
1525
1526   <software name="totrecal">
1527      <!-- SPS (CAPS) release 3542 -->
1528      <description>Total Recall</description>
1529      <year>1991</year>
1530      <publisher>Ocean Software</publisher>
1531
1532      <part name="flop1" interface="floppy_3">
1533         <dataarea name="flop" size="184315">
1534            <rom name="3543 - total recall (europe).ipf" size="184315" crc="9e5325a8" sha1="1748281e2a811580c3af086e59e9d5302c2c766b" offset="0" />
1535         </dataarea>
1536      </part>
1537   </software>
1538
1539   <software name="totrecalgh" cloneof="totrecal">
1540      <!-- SPS (CAPS) release 3543 -->
1541      <description>Total Recall (Guild Home Video Advert)</description>
1542      <year>1991</year>
1543      <publisher>Ocean Software</publisher>
1544
1545      <part name="flop1" interface="floppy_3">
1546         <dataarea name="flop" size="184315">
1547            <rom name="3542 - total recall (europe) (guild home video advert).ipf" size="184315" crc="48eb67ce" sha1="66005b0a98851cdd784798a94e25b3eee8e3007f" offset="0" />
1548         </dataarea>
1549      </part>
1550   </software>
1551
1552   <software name="brooking">
1553      <!-- SPS (CAPS) release 3544 -->
1554      <description>Trevor Brooking's World Cup Glory</description>
1555      <year>1990</year>
1556      <publisher>Challenge Software</publisher>
1557
1558      <part name="flop1" interface="floppy_3">
1559         <dataarea name="flop" size="234180">
1560            <rom name="3544 - trevor brooking's world cup glory (europe).ipf" size="234180" crc="98358646" sha1="4ddc2a1dfb6e0c6c1e9d209f74d62dba6182f5e8" offset="0" />
1561         </dataarea>
1562      </part>
1563   </software>
1564
1565   <software name="vigilant">
1566      <!-- SPS (CAPS) release 3626 -->
1567      <description>Vigilante</description>
1568      <year>1989</year>
1569      <publisher>U.S. Gold</publisher>
1570
1571      <part name="flop1" interface="floppy_3">
1572         <dataarea name="flop" size="266892">
1573            <rom name="3626 - vigilante (europe).ipf" size="266892" crc="4df85c44" sha1="0f13d51918c0df0a07ef13e22b23f49c17007219" offset="0" />
1574         </dataarea>
1575      </part>
1576   </software>
1577
1578   <software name="vixen">
1579      <!-- SPS (CAPS) release 3545 -->
1580      <description>Vixen</description>
1581      <year>1988</year>
1582      <publisher>Martech Games</publisher>
1583
1584      <part name="flop1" interface="floppy_3">
1585         <dataarea name="flop" size="236460">
1586            <rom name="3545 - vixen (europe).ipf" size="236460" crc="2ebf7637" sha1="8435d9b04b7fe9bcd04679022aa01c85461c3f75" offset="0" />
1587         </dataarea>
1588      </part>
1589   </software>
1590
1591   <software name="warmidle">
1592      <!-- SPS (CAPS) release 3546 -->
1593      <description>War in Middle Earth</description>
1594      <year>1989</year>
1595      <publisher>Krome Studios Melbourne</publisher>
1596      <info name="alt_title" value="J.R.R. Tolkien's War in Middle Earth (Box)" />
1597
1598      <part name="flop1" interface="floppy_3">
1599         <dataarea name="flop" size="234180">
1600            <rom name="3546 - j.r.r. tolkien's war in middle earth (europe).ipf" size="234180" crc="f66db1bb" sha1="e3b62c9c01a49068a6f57abbdea93dd6013b6858" offset="0" />
1601         </dataarea>
1602      </part>
1603   </software>
1604
1605   <software name="welltris">
1606      <!-- SPS (CAPS) release 3547 -->
1607      <description>Welltris</description>
1608      <year>1991</year>
1609      <publisher>Infogrames</publisher>
1610
1611      <part name="flop1" interface="floppy_3">
1612         <dataarea name="flop" size="236460">
1613            <rom name="3547 - welltris (europe).ipf" size="236460" crc="18f7df7f" sha1="626b5fbef66aee9fab753eaf4ff95d844ae49efa" offset="0" />
1614         </dataarea>
1615      </part>
1616   </software>
1617
1618   <software name="wcboxman">
1619      <!-- SPS (CAPS) release 3627 -->
1620      <description>World Championship Boxing Manager</description>
1621      <year>1990</year>
1622      <publisher>Goliath Games</publisher>
1623
1624      <part name="flop1" interface="floppy_3">
1625         <dataarea name="flop" size="234180">
1626            <rom name="3627 - world championship boxing manager (europe).ipf" size="234180" crc="20b95f60" sha1="ac43afcf09a27828b503328f236ce40c1842c2a8" offset="0" />
1627         </dataarea>
1628      </part>
1629   </software>
1630
1631   <software name="xout">
1632      <!-- SPS (CAPS) release 3550 -->
1633      <description>X-Out</description>
1634      <year>1990</year>
1635      <publisher>Rainbow Arts</publisher>
1636
1637      <part name="flop1" interface="floppy_3">
1638         <dataarea name="flop" size="259471">
1639            <rom name="3550 - x-out (europe).ipf" size="259471" crc="12540648" sha1="4f3650e4739c1eca40d56360b16fd7460d37ac75" offset="0" />
1640         </dataarea>
1641      </part>
1642   </software>
1643
1644   <software name="xenon">
1645      <!-- SPS (CAPS) release 3549 -->
1646      <description>Xenon</description>
1647      <year>1988</year>
1648      <publisher>Melbourne House</publisher>
1649
1650      <part name="flop1" interface="floppy_3">
1651         <dataarea name="flop" size="234180">
1652            <rom name="3549 - xenon (europe).ipf" size="234180" crc="01daebfa" sha1="5ae00774d2da999b95b29142d11a01311b2cf07c" offset="0" />
1653         </dataarea>
1654      </part>
1655   </software>
1656
1657   <software name="xybots">
1658      <!-- SPS (CAPS) release 3628 -->
1659      <description>Xybots</description>
1660      <year>1989</year>
1661      <publisher>Domark</publisher>
1662
1663      <part name="flop1" interface="floppy_3">
1664         <dataarea name="flop" size="209805">
1665            <rom name="3628 - xybots (europe).ipf" size="209805" crc="51a0d849" sha1="86461e526a4cf5c7731f1e1067433ca9c8d57dec" offset="0" />
1666         </dataarea>
1667      </part>
1668   </software>
1669
1670
1671   <!-- Other images -->
1672
1673   <software name="pacmania" >
1674      <description>Pac-Mania (Euro, Aus)</description>
1675      <year>1988</year>
1676      <publisher>Grandslam Entertainments</publisher>
1677      <part name="flop1" interface="floppy_3">
1678         <dataarea name="flop" size="195328">
1679            <rom name="pac-mania.dsk" size="195328" crc="88f5506b" sha1="827c95935dd3a1dd919989fc6d7a0efa4e5aebc1" offset="0" />
1680         </dataarea>
1681      </part>
1682   </software>
1683
1684</softwarelist>
trunk/hash/spectrum.xml
r0r241778
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!--
5  Only 10 cartridge titles were released to be used with the ZX Spectrum "Interface 2" peripheral.
6
7  7 unreleased prototypes are included in this collection.
8
9-->
10<softwarelist name="spectrum" description="Sinclair ZX Spectrum cartridges">
11
12   <software name="backgamm">
13      <description>Backgammon</description>
14      <year>1983</year>
15      <publisher>Sinclair Research</publisher>
16      <info name="developer" value="Psion Software" />
17      <info name="serial" value="G22/R" />
18      <part name="cart" interface="spectrum_cart">
19         <dataarea name="rom" size="16384">
20            <rom name="backgammon.rom" size="16384" crc="40e78b48" sha1="e6ede60bb5e08d7ead8343f8078834d2afb49c30" offset="000000" />
21         </dataarea>
22      </part>
23   </software>
24
25   <software name="chess">
26      <description>Chess</description>
27      <year>1983</year>
28      <publisher>Sinclair Research</publisher>
29      <info name="developer" value="Psion Software" />
30      <info name="serial" value="G10/R" />
31      <part name="cart" interface="spectrum_cart">
32         <dataarea name="rom" size="16384">
33            <rom name="chess.rom" size="16384" crc="08c6a8c6" sha1="bba6d31ff54d3009cc61ae767973aab492bb104c" offset="000000" />
34         </dataarea>
35      </part>
36   </software>
37
38   <software name="cookie">
39      <description>Cookie</description>
40      <year>1983</year>
41      <publisher>Ultimate Play the Game ~ Sinclair Research</publisher>
42      <info name="serial" value="G30/R" />
43      <part name="cart" interface="spectrum_cart">
44         <dataarea name="rom" size="16384">
45            <rom name="cookie.rom" size="16384" crc="7108e9a8" sha1="fa5753133daa2a6b122948adf604c12ab70e2ce9" offset="000000" />
46         </dataarea>
47      </part>
48   </software>
49
50   <software name="horacesp">
51      <description>Horace &amp; the Spiders</description>
52      <year>1983</year>
53      <publisher>Sinclair Research</publisher>
54      <info name="developer" value="Psion Software" />
55      <info name="serial" value="G24/R" />
56      <part name="cart" interface="spectrum_cart">
57         <dataarea name="rom" size="16384">
58            <rom name="horace and the spider.rom" size="16384" crc="8ce28ffe" sha1="805fcdf83c74937adffab97027310d8c8e431c5a" offset="000000" />
59         </dataarea>
60      </part>
61   </software>
62
63   <software name="horace">
64      <description>Hungry Horace</description>
65      <year>1982</year>
66      <publisher>Sinclair Research</publisher>
67      <info name="developer" value="Psion Software" />
68      <info name="serial" value="G13/R" />
69      <part name="cart" interface="spectrum_cart">
70         <dataarea name="rom" size="16384">
71            <rom name="hungry horace.rom" size="16384" crc="bef35699" sha1="00129d9a5094a91a6e7392245be5121d5d17adf0" offset="000000" />
72         </dataarea>
73      </part>
74   </software>
75
76   <software name="jetpac">
77      <description>Jet Pac</description>
78      <year>1983</year>
79      <publisher>Ultimate Play the Game ~ Sinclair Research</publisher>
80      <info name="serial" value="G27/R" />
81      <part name="cart" interface="spectrum_cart">
82         <dataarea name="rom" size="16384">
83            <rom name="jetpac.rom" size="16384" crc="1d194e5b" sha1="0f0ddb79bb6b052846e0419df231df44184fbca6" offset="000000" />
84         </dataarea>
85      </part>
86   </software>
87
88   <software name="planet">
89      <description>Planetoids</description>
90      <year>1983</year>
91      <publisher>Sinclair Research</publisher>
92      <info name="developer" value="Psion Software" />
93      <info name="serial" value="G12/R" />
94      <part name="cart" interface="spectrum_cart">
95         <dataarea name="rom" size="16384">
96            <rom name="planetoids.rom" size="16384" crc="06e43fa2" sha1="da3041aa2f14abda0d2966e44fd2fd144bb3aa72" offset="000000" />
97         </dataarea>
98      </part>
99   </software>
100
101   <software name="pssst">
102      <description>Pssst</description>
103      <year>1983</year>
104      <publisher>Ultimate Play the Game ~ Sinclair Research</publisher>
105      <info name="serial" value="G28/R" />
106      <part name="cart" interface="spectrum_cart">
107         <dataarea name="rom" size="16384">
108            <rom name="pssst.rom" size="16384" crc="464cd4f6" sha1="cebafa93c110eabb4b343e7a34175d77d0fd0797" offset="000000" />
109         </dataarea>
110      </part>
111   </software>
112
113   <software name="spacerai">
114      <description>Space Raiders</description>
115      <year>1983</year>
116      <publisher>Sinclair Research</publisher>
117      <info name="developer" value="Psion Software" />
118      <info name="serial" value="G9/R" />
119      <part name="cart" interface="spectrum_cart">
120         <dataarea name="rom" size="16384">
121            <rom name="space raiders.rom" size="16384" crc="a570bd3d" sha1="f8359abdf50360261099460e48d440738109af1d" offset="000000" />
122         </dataarea>
123      </part>
124   </software>
125
126   <software name="tranzam">
127      <description>Tranz Am</description>
128      <year>1983</year>
129      <publisher>Ultimate Play the Game ~ Sinclair Research</publisher>
130      <info name="serial" value="G29/R" />
131      <part name="cart" interface="spectrum_cart">
132         <dataarea name="rom" size="16384">
133            <rom name="tranzam.rom" size="16384" crc="03da9be7" sha1="caf4441730a7032375d82edf385d5ac7f65c1dcd" offset="000000" />
134         </dataarea>
135      </part>
136   </software>
137
138   <!-- Prototypes -->
139
140   <software name="gyruss">
141      <description>Gyruss (Prototype)</description>
142      <year>1984</year>
143      <publisher>Parker Software</publisher>
144      <part name="cart" interface="spectrum_cart">
145         <dataarea name="rom" size="16384">
146            <rom name="gyruss.rom" size="16384" crc="0dd3bceb" sha1="9745d1ee713b2c6d319752aee523105905cbf562" offset="000000" />
147         </dataarea>
148      </part>
149   </software>
150
151   <software name="locomotn">
152      <description>Loco Motion (Prototype)</description>
153      <year>1984</year>
154      <publisher>Amazon Systems</publisher>
155      <part name="cart" interface="spectrum_cart">
156         <dataarea name="rom" size="16384">
157            <rom name="loco motion.rom" size="16384" crc="33b8ae50" sha1="230294b652250b975a84b8618a68a8e60729cc2b" offset="000000" />
158         </dataarea>
159      </part>
160   </software>
161
162   <software name="montezum">
163      <description>Montezuma's Revenge (Prototype)</description>
164      <year>1984</year>
165      <publisher>Parker Software</publisher>
166      <part name="cart" interface="spectrum_cart">
167         <dataarea name="rom" size="16384">
168            <rom name="montezuma's revenge.rom" size="16384" crc="ff8d7dc3" sha1="b700e37f7e24adea6ba12cf0e935307bd006b9c9" offset="000000" />
169         </dataarea>
170      </part>
171   </software>
172
173   <software name="montezum1" cloneof="montezum">
174      <description>Montezuma's Revenge (Prototype, Alt)</description>
175      <year>1984</year>
176      <publisher>Parker Software</publisher>
177      <part name="cart" interface="spectrum_cart">
178         <dataarea name="rom" size="16384">
179            <rom name="montezuma's revenge (prot).rom" size="16384" crc="5d73082e" sha1="e8f1b6e6b8c8eb6de6a0c6d271351ca7056a39af" offset="000000" />
180         </dataarea>
181      </part>
182   </software>
183
184   <software name="popeye">
185      <description>Popeye (Prototype)</description>
186      <year>1984</year>
187      <publisher>Parker Software</publisher>
188      <part name="cart" interface="spectrum_cart">
189         <dataarea name="rom" size="16384">
190            <rom name="popeye.rom" size="16384" crc="85c189c1" sha1="5c185c7e3eed2c3379bf74bf522f95c32a730278" offset="000000" />
191         </dataarea>
192      </part>
193   </software>
194
195   <software name="qbert">
196      <description>Q*Bert (Prototype)</description>
197      <year>1984</year>
198      <publisher>Parker Software</publisher>
199      <part name="cart" interface="spectrum_cart">
200         <dataarea name="rom" size="16384">
201            <rom name="qbert.rom" size="16384" crc="5de868db" sha1="777872a80411fd9c9653cc9c6dea1506b833d6b2" offset="000000" />
202         </dataarea>
203      </part>
204   </software>
205
206   <software name="jedi">
207      <description>Return Of The Jedi - Death Star Battle (Prototype)</description>
208      <year>1984</year>
209      <publisher>Parker Software</publisher>
210      <part name="cart" interface="spectrum_cart">
211         <dataarea name="rom" size="16384">
212            <rom name="return of the jedi - death star battle.rom" size="16384" crc="5f5bf622" sha1="71e55eecb5f38338af8826ae743509d35250f20e" offset="000000" />
213         </dataarea>
214      </part>
215   </software>
216
217   <software name="starwars">
218      <description>Star Wars (Prototype)</description>
219      <year>1984</year>
220      <publisher>Parker Software</publisher>
221      <part name="cart" interface="spectrum_cart">
222         <dataarea name="rom" size="16384">
223            <rom name="star wars.rom" size="16384" crc="732c6f5d" sha1="0ade16899c2e815ddfea6782618b0cdf760e6d54" offset="000000" />
224         </dataarea>
225      </part>
226   </software>
227
228   <software name="starwars1" cloneof="starwars">
229      <description>Star Wars (Prototype, Alt)</description>
230      <year>1984</year>
231      <publisher>Parker Software</publisher>
232      <part name="cart" interface="spectrum_cart">
233         <dataarea name="rom" size="16384">
234            <rom name="star wars[a].rom" size="16384" crc="90b61858" sha1="29cbda204ea20d42429a723afe2d00b9edd0a04d" offset="000000" />
235         </dataarea>
236      </part>
237   </software>
238
239   <!-- Test cartridge -->
240
241   <software name="zxtest">
242      <description>ZX Spectrum Test Cartridge</description>
243      <year>1983</year>
244      <publisher>Sinclair Research</publisher>
245      <part name="cart" interface="spectrum_cart">
246         <dataarea name="rom" size="16384">
247            <rom name="system test rom.rom" size="8192" crc="730bba9e" sha1="9e162a027e64ab57ccbedb7da86c2afc7ee44749" offset="000000" />
248         </dataarea>
249      </part>
250   </software>
251
252</softwarelist>
trunk/hash/spectrum_cart.xml
r241777r241778
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!--
5  Only 10 cartridge titles were released to be used with the ZX Spectrum "Interface 2" peripheral.
6
7  7 unreleased prototypes are included in this collection.
8
9-->
10<softwarelist name="spectrum_cart" description="Sinclair ZX Spectrum cartridges">
11
12   <software name="backgamm">
13      <description>Backgammon</description>
14      <year>1983</year>
15      <publisher>Sinclair Research</publisher>
16      <info name="developer" value="Psion Software" />
17      <info name="serial" value="G22/R" />
18      <part name="cart" interface="spectrum_cart">
19         <dataarea name="rom" size="16384">
20            <rom name="backgammon.rom" size="16384" crc="40e78b48" sha1="e6ede60bb5e08d7ead8343f8078834d2afb49c30" offset="000000" />
21         </dataarea>
22      </part>
23   </software>
24
25   <software name="chess">
26      <description>Chess</description>
27      <year>1983</year>
28      <publisher>Sinclair Research</publisher>
29      <info name="developer" value="Psion Software" />
30      <info name="serial" value="G10/R" />
31      <part name="cart" interface="spectrum_cart">
32         <dataarea name="rom" size="16384">
33            <rom name="chess.rom" size="16384" crc="08c6a8c6" sha1="bba6d31ff54d3009cc61ae767973aab492bb104c" offset="000000" />
34         </dataarea>
35      </part>
36   </software>
37
38   <software name="cookie">
39      <description>Cookie</description>
40      <year>1983</year>
41      <publisher>Ultimate Play the Game ~ Sinclair Research</publisher>
42      <info name="serial" value="G30/R" />
43      <part name="cart" interface="spectrum_cart">
44         <dataarea name="rom" size="16384">
45            <rom name="cookie.rom" size="16384" crc="7108e9a8" sha1="fa5753133daa2a6b122948adf604c12ab70e2ce9" offset="000000" />
46         </dataarea>
47      </part>
48   </software>
49
50   <software name="horacesp">
51      <description>Horace &amp; the Spiders</description>
52      <year>1983</year>
53      <publisher>Sinclair Research</publisher>
54      <info name="developer" value="Psion Software" />
55      <info name="serial" value="G24/R" />
56      <part name="cart" interface="spectrum_cart">
57         <dataarea name="rom" size="16384">
58            <rom name="horace and the spider.rom" size="16384" crc="8ce28ffe" sha1="805fcdf83c74937adffab97027310d8c8e431c5a" offset="000000" />
59         </dataarea>
60      </part>
61   </software>
62
63   <software name="horace">
64      <description>Hungry Horace</description>
65      <year>1982</year>
66      <publisher>Sinclair Research</publisher>
67      <info name="developer" value="Psion Software" />
68      <info name="serial" value="G13/R" />
69      <part name="cart" interface="spectrum_cart">
70         <dataarea name="rom" size="16384">
71            <rom name="hungry horace.rom" size="16384" crc="bef35699" sha1="00129d9a5094a91a6e7392245be5121d5d17adf0" offset="000000" />
72         </dataarea>
73      </part>
74   </software>
75
76   <software name="jetpac">
77      <description>Jet Pac</description>
78      <year>1983</year>
79      <publisher>Ultimate Play the Game ~ Sinclair Research</publisher>
80      <info name="serial" value="G27/R" />
81      <part name="cart" interface="spectrum_cart">
82         <dataarea name="rom" size="16384">
83            <rom name="jetpac.rom" size="16384" crc="1d194e5b" sha1="0f0ddb79bb6b052846e0419df231df44184fbca6" offset="000000" />
84         </dataarea>
85      </part>
86   </software>
87
88   <software name="planet">
89      <description>Planetoids</description>
90      <year>1983</year>
91      <publisher>Sinclair Research</publisher>
92      <info name="developer" value="Psion Software" />
93      <info name="serial" value="G12/R" />
94      <part name="cart" interface="spectrum_cart">
95         <dataarea name="rom" size="16384">
96            <rom name="planetoids.rom" size="16384" crc="06e43fa2" sha1="da3041aa2f14abda0d2966e44fd2fd144bb3aa72" offset="000000" />
97         </dataarea>
98      </part>
99   </software>
100
101   <software name="pssst">
102      <description>Pssst</description>
103      <year>1983</year>
104      <publisher>Ultimate Play the Game ~ Sinclair Research</publisher>
105      <info name="serial" value="G28/R" />
106      <part name="cart" interface="spectrum_cart">
107         <dataarea name="rom" size="16384">
108            <rom name="pssst.rom" size="16384" crc="464cd4f6" sha1="cebafa93c110eabb4b343e7a34175d77d0fd0797" offset="000000" />
109         </dataarea>
110      </part>
111   </software>
112
113   <software name="spacerai">
114      <description>Space Raiders</description>
115      <year>1983</year>
116      <publisher>Sinclair Research</publisher>
117      <info name="developer" value="Psion Software" />
118      <info name="serial" value="G9/R" />
119      <part name="cart" interface="spectrum_cart">
120         <dataarea name="rom" size="16384">
121            <rom name="space raiders.rom" size="16384" crc="a570bd3d" sha1="f8359abdf50360261099460e48d440738109af1d" offset="000000" />
122         </dataarea>
123      </part>
124   </software>
125
126   <software name="tranzam">
127      <description>Tranz Am</description>
128      <year>1983</year>
129      <publisher>Ultimate Play the Game ~ Sinclair Research</publisher>
130      <info name="serial" value="G29/R" />
131      <part name="cart" interface="spectrum_cart">
132         <dataarea name="rom" size="16384">
133            <rom name="tranzam.rom" size="16384" crc="03da9be7" sha1="caf4441730a7032375d82edf385d5ac7f65c1dcd" offset="000000" />
134         </dataarea>
135      </part>
136   </software>
137
138   <!-- Prototypes -->
139
140   <software name="gyruss">
141      <description>Gyruss (Prototype)</description>
142      <year>1984</year>
143      <publisher>Parker Software</publisher>
144      <part name="cart" interface="spectrum_cart">
145         <dataarea name="rom" size="16384">
146            <rom name="gyruss.rom" size="16384" crc="0dd3bceb" sha1="9745d1ee713b2c6d319752aee523105905cbf562" offset="000000" />
147         </dataarea>
148      </part>
149   </software>
150
151   <software name="locomotn">
152      <description>Loco Motion (Prototype)</description>
153      <year>1984</year>
154      <publisher>Amazon Systems</publisher>
155      <part name="cart" interface="spectrum_cart">
156         <dataarea name="rom" size="16384">
157            <rom name="loco motion.rom" size="16384" crc="33b8ae50" sha1="230294b652250b975a84b8618a68a8e60729cc2b" offset="000000" />
158         </dataarea>
159      </part>
160   </software>
161
162   <software name="montezum">
163      <description>Montezuma's Revenge (Prototype)</description>
164      <year>1984</year>
165      <publisher>Parker Software</publisher>
166      <part name="cart" interface="spectrum_cart">
167         <dataarea name="rom" size="16384">
168            <rom name="montezuma's revenge.rom" size="16384" crc="ff8d7dc3" sha1="b700e37f7e24adea6ba12cf0e935307bd006b9c9" offset="000000" />
169         </dataarea>
170      </part>
171   </software>
172
173   <software name="montezum1" cloneof="montezum">
174      <description>Montezuma's Revenge (Prototype, Alt)</description>
175      <year>1984</year>
176      <publisher>Parker Software</publisher>
177      <part name="cart" interface="spectrum_cart">
178         <dataarea name="rom" size="16384">
179            <rom name="montezuma's revenge (prot).rom" size="16384" crc="5d73082e" sha1="e8f1b6e6b8c8eb6de6a0c6d271351ca7056a39af" offset="000000" />
180         </dataarea>
181      </part>
182   </software>
183
184   <software name="popeye">
185      <description>Popeye (Prototype)</description>
186      <year>1984</year>
187      <publisher>Parker Software</publisher>
188      <part name="cart" interface="spectrum_cart">
189         <dataarea name="rom" size="16384">
190            <rom name="popeye.rom" size="16384" crc="85c189c1" sha1="5c185c7e3eed2c3379bf74bf522f95c32a730278" offset="000000" />
191         </dataarea>
192      </part>
193   </software>
194
195   <software name="qbert">
196      <description>Q*Bert (Prototype)</description>
197      <year>1984</year>
198      <publisher>Parker Software</publisher>
199      <part name="cart" interface="spectrum_cart">
200         <dataarea name="rom" size="16384">
201            <rom name="qbert.rom" size="16384" crc="5de868db" sha1="777872a80411fd9c9653cc9c6dea1506b833d6b2" offset="000000" />
202         </dataarea>
203      </part>
204   </software>
205
206   <software name="jedi">
207      <description>Return Of The Jedi - Death Star Battle (Prototype)</description>
208      <year>1984</year>
209      <publisher>Parker Software</publisher>
210      <part name="cart" interface="spectrum_cart">
211         <dataarea name="rom" size="16384">
212            <rom name="return of the jedi - death star battle.rom" size="16384" crc="5f5bf622" sha1="71e55eecb5f38338af8826ae743509d35250f20e" offset="000000" />
213         </dataarea>
214      </part>
215   </software>
216
217   <software name="starwars">
218      <description>Star Wars (Prototype)</description>
219      <year>1984</year>
220      <publisher>Parker Software</publisher>
221      <part name="cart" interface="spectrum_cart">
222         <dataarea name="rom" size="16384">
223            <rom name="star wars.rom" size="16384" crc="732c6f5d" sha1="0ade16899c2e815ddfea6782618b0cdf760e6d54" offset="000000" />
224         </dataarea>
225      </part>
226   </software>
227
228   <software name="starwars1" cloneof="starwars">
229      <description>Star Wars (Prototype, Alt)</description>
230      <year>1984</year>
231      <publisher>Parker Software</publisher>
232      <part name="cart" interface="spectrum_cart">
233         <dataarea name="rom" size="16384">
234            <rom name="star wars[a].rom" size="16384" crc="90b61858" sha1="29cbda204ea20d42429a723afe2d00b9edd0a04d" offset="000000" />
235         </dataarea>
236      </part>
237   </software>
238
239   <!-- Test cartridge -->
240
241   <software name="zxtest">
242      <description>ZX Spectrum Test Cartridge</description>
243      <year>1983</year>
244      <publisher>Sinclair Research</publisher>
245      <part name="cart" interface="spectrum_cart">
246         <dataarea name="rom" size="16384">
247            <rom name="system test rom.rom" size="8192" crc="730bba9e" sha1="9e162a027e64ab57ccbedb7da86c2afc7ee44749" offset="000000" />
248         </dataarea>
249      </part>
250   </software>
251
252</softwarelist>
trunk/hash/spectrum_flop.xml
r0r241778
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!-- ZX Spectrum Disc images
5    for +3 machines etc.
6-->
7
8<softwarelist name="spectrum_flop" description="ZX Spectrum disk images">
9
10   <!-- SPS / CAPS Releases -->
11
12   <software name="aforce" >
13      <!-- SPS (CAPS) release 3500 -->
14      <description>Action Force - International Heroes</description>
15      <year>1987</year>
16      <publisher>Virgin Games</publisher>
17
18      <part name="flop1" interface="floppy_3">
19         <dataarea name="flop" size="236460">
20            <rom name="3500 - action force - international heroes (europe).ipf" size="236460" crc="1a2bb165" sha1="9b9b44e1118c40bbb9c6a32d4ffc6e61f8c5fd3b" offset="0" />
21         </dataarea>
22      </part>
23   </software>
24
25   <software name="aforce2">
26      <!-- SPS (CAPS) release 3551 -->
27      <description>Action Force II - International Heroes</description>
28      <year>1988</year>
29      <publisher>Virgin Games</publisher>
30
31      <part name="flop1" interface="floppy_3">
32         <dataarea name="flop" size="238175">
33            <rom name="3551 - action force ii - international heroes (europe).ipf" size="238175" crc="caa251a2" sha1="9c02f116d5a61d5d064d3a5643e70542f1e01bf9" offset="0" />
34         </dataarea>
35      </part>
36   </software>
37
38   <software name="tiebreak">
39      <!-- SPS (CAPS) release 3501 -->
40      <description>Adidas Championship Tie-Break</description>
41      <year>1990</year>
42      <publisher>Ocean Software</publisher>
43
44      <part name="flop1" interface="floppy_3">
45         <dataarea name="flop" size="123445">
46            <rom name="3501 - adidas championship tie break (europe).ipf" size="123445" crc="6e2e4951" sha1="a50e132cb68cc406e59485b617fc384288762d7f" offset="0" />
47         </dataarea>
48      </part>
49   </software>
50
51   <software name="artura">
52      <!-- SPS (CAPS) release 3552 -->
53      <description>Artura</description>
54      <year>1989</year>
55      <publisher>Gremlin Graphics Software</publisher>
56
57      <part name="flop1" interface="floppy_3">
58         <dataarea name="flop" size="237460">
59            <rom name="3552 - artura (europe).ipf" size="237460" crc="bcc6e00c" sha1="8781e6b1e1bf98a1fc6b8ffb77f5671780c5e402" offset="0" />
60         </dataarea>
61      </part>
62   </software>
63
64   <software name="badlands">
65      <!-- SPS (CAPS) release 3553 -->
66      <description>Badlands</description>
67      <year>1990</year>
68      <publisher>Domark</publisher>
69
70      <part name="flop1" interface="floppy_3">
71         <dataarea name="flop" size="234180">
72            <rom name="3553 - badlands (europe).ipf" size="234180" crc="93f1c3b6" sha1="9da5ab7e607dad7fd5b605997929eff43c20abb7" offset="0" />
73         </dataarea>
74      </part>
75   </software>
76
77   <software name="bhcop">
78      <!-- SPS (CAPS) release 3502 -->
79      <description>Beverly Hills Cop</description>
80      <year>1990</year>
81      <publisher>Tynesoft</publisher>
82
83      <part name="flop1" interface="floppy_3">
84         <dataarea name="flop" size="236460">
85            <rom name="3502 - beverly hills cop (europe).ipf" size="236460" crc="81fbf5ad" sha1="2022531eba845cfcd19a2fb2b69d54e007979592" offset="0" />
86         </dataarea>
87      </part>
88   </software>
89
90   <software name="bloodwyc">
91      <!-- SPS (CAPS) release 3554 -->
92      <description>Bloodwych</description>
93      <year>1990</year>
94      <publisher>Image Works</publisher>
95
96      <part name="flop1" interface="floppy_3">
97         <dataarea name="flop" size="236460">
98            <rom name="3554 - bloodwych (europe).ipf" size="236460" crc="cb66aed6" sha1="b7bab317718a478e48a689a8ebd125a498504ebe" offset="0" />
99         </dataarea>
100      </part>
101   </software>
102
103   <software name="boggit">
104      <!-- SPS (CAPS) release 3555 -->
105      <description>The Boggit - Bored Too</description>
106      <year>1986</year>
107      <publisher>CRL Group</publisher>
108
109      <part name="flop1" interface="floppy_3">
110         <dataarea name="flop" size="236460">
111            <rom name="3555 - boggit, the - bored too (europe).ipf" size="236460" crc="c9dc8d41" sha1="ae1aff98a4e60bf6272c8955a224a7b0e890c40e" offset="0" />
112         </dataarea>
113      </part>
114   </software>
115
116   <software name="bookdead">
117      <!-- SPS (CAPS) release 3556 -->
118      <description>Book of the Dead</description>
119      <year>1987</year>
120      <publisher>CRL Group</publisher>
121
122      <part name="flop1" interface="floppy_3">
123         <dataarea name="flop" size="236460">
124            <rom name="3556 - book of the dead (europe).ipf" size="236460" crc="b1030311" sha1="6ddbe67cbba260b6ec80ee0bc7e557f88bf08a23" offset="0" />
125         </dataarea>
126      </part>
127   </software>
128
129   <software name="bbrg">
130      <!-- SPS (CAPS) release 3503 -->
131      <description>Buffalo Bill's Rodeo Games</description>
132      <year>1989</year>
133      <publisher>Tynesoft</publisher>
134      <info name="alt_title" value="Buffalo Bill's Wild West Rodeo Show" />
135
136      <part name="flop1" interface="floppy_3">
137         <dataarea name="flop" size="234180">
138            <rom name="3503 - buffalo bill's rodeo games (unknown).ipf" size="234180" crc="74650740" sha1="cdf81f26af4e013726a288c3a27a1765b254c267" offset="0" />
139         </dataarea>
140      </part>
141   </software>
142
143   <software name="butchill">
144      <!-- SPS (CAPS) release 3557 -->
145      <description>Butcher Hill</description>
146      <year>1989</year>
147      <publisher>Gremlin Graphics Software </publisher>
148
149      <part name="flop1" interface="floppy_3">
150         <dataarea name="flop" size="237460">
151            <rom name="3557 - butcher hill (europe).ipf" size="237460" crc="5ae072b5" sha1="96e89f1229f2d8306965b925145ae0ab454def6f" offset="0" />
152         </dataarea>
153      </part>
154   </software>
155
156   <software name="carrierc">
157      <!-- SPS (CAPS) release 3504 -->
158      <description>Carrier Command</description>
159      <year>1989</year>
160      <publisher>Rainbird Software</publisher>
161
162      <part name="flop1" interface="floppy_3">
163         <dataarea name="flop" size="236140">
164            <rom name="3504 - carrier command (europe).ipf" size="236140" crc="3596b16d" sha1="842715907902c7d15a28e92db6e66e2f435f8781" offset="0" />
165         </dataarea>
166      </part>
167   </software>
168
169   <software name="chicag30">
170      <!-- SPS (CAPS) release 3558 -->
171      <description>Chicago 30's</description>
172      <year>1988</year>
173      <publisher>U.S. Gold</publisher>
174
175      <part name="flop1" interface="floppy_3">
176         <dataarea name="flop" size="266892">
177            <rom name="3558 - chicago 30's (unknown).ipf" size="266892" crc="50f0a090" sha1="a0be8b20605834f29e59ded94786ed90d07b235b" offset="0" />
178         </dataarea>
179      </part>
180   </software>
181
182   <software name="combatsc">
183      <!-- SPS (CAPS) release 3559 -->
184      <description>Combat School</description>
185      <year>1987</year>
186      <publisher>Ocean Software</publisher>
187
188      <part name="flop1" interface="floppy_3">
189         <dataarea name="flop" size="238800">
190            <rom name="3559 - combat school (europe).ipf" size="238800" crc="ba69a18a" sha1="581b183c20d6cf33e0965ff00c5b077a9618d872" offset="0" />
191         </dataarea>
192      </part>
193   </software>
194
195   <software name="corruptn">
196      <!-- SPS (CAPS) release 3560 -->
197      <description>Corruption</description>
198      <year>1988</year>
199      <publisher>Rainbird Software</publisher>
200
201      <part name="flop1" interface="floppy_3">
202         <dataarea name="flop" size="236460">
203            <rom name="3560 - corruption (europe).ipf" size="236460" crc="cfbb80af" sha1="ed489e12913c2bb7fbb48fed0c9644b7cfceb59e" offset="0" />
204         </dataarea>
205      </part>
206   </software>
207
208   <software name="cybernod">
209      <!-- SPS (CAPS) release 3561 -->
210      <description>Cybernoid - The Fighting Machine</description>
211      <year>1988</year>
212      <publisher>Hewson Consultants</publisher>
213
214      <part name="flop1" interface="floppy_3">
215         <dataarea name="flop" size="212085">
216            <rom name="3561 - cybernoid - the fighting machine (europe).ipf" size="212085" crc="3733ffa8" sha1="2a0b2f4c29a568e6e4ac287e679f6b4a4e6ae742" offset="0" />
217         </dataarea>
218      </part>
219   </software>
220
221   <software name="cyberno2">
222      <!-- SPS (CAPS) release 3562 -->
223      <description>Cybernoid II - The Revenge</description>
224      <year>1988</year>
225      <publisher>Hewson Consultants</publisher>
226
227      <part name="flop1" interface="floppy_3">
228         <dataarea name="flop" size="236460">
229            <rom name="3562 - cybernoid ii - the revenge (europe).ipf" size="236460" crc="417b84f6" sha1="a2c8753121df65bd95a0d31e7ee6101a2d74ea61" offset="0" />
230         </dataarea>
231      </part>
232   </software>
233
234   <software name="dandare3">
235      <!-- SPS (CAPS) release 3505 -->
236      <description>Dan Dare III - The Escape</description>
237      <year>1990</year>
238      <publisher>Virgin Games</publisher>
239
240      <part name="flop1" interface="floppy_3">
241         <dataarea name="flop" size="71100">
242            <rom name="3505 - dan dare iii - the escape (europe).ipf" size="71100" crc="e949bc77" sha1="6074056cd0ef8aaf103d36fde1e5a1fba356904f" offset="0" />
243         </dataarea>
244      </part>
245   </software>
246
247   <software name="darkfusn">
248      <!-- SPS (CAPS) release 3563 -->
249      <description>Dark Fusion</description>
250      <year>1988</year>
251      <publisher>Gremlin Graphics Software</publisher>
252
253      <part name="flop1" interface="floppy_3">
254         <dataarea name="flop" size="260585">
255            <rom name="3563 - dark fusion (europe).ipf" size="260585" crc="9495182c" sha1="bb94b445a9909ba39f21119dcc43dbd1497aed20" offset="0" />
256         </dataarea>
257      </part>
258   </software>
259
260   <software name="deep">
261      <!-- SPS (CAPS) release 3506 -->
262      <description>The Deep</description>
263      <year>1988</year>
264      <publisher>U.S. Gold</publisher>
265
266      <part name="flop1" interface="floppy_3">
267         <dataarea name="flop" size="266891">
268            <rom name="3506 - deep, the (europe).ipf" size="266891" crc="e4844d2b" sha1="95dee7ccae5613c9b04efdbde5e2bc6c69a1e735" offset="0" />
269         </dataarea>
270      </part>
271   </software>
272
273   <software name="deflektr">
274      <!-- SPS (CAPS) release 3564 -->
275      <description>Deflektor</description>
276      <year>1987</year>
277      <publisher>Gremlin Graphics Software</publisher>
278
279      <part name="flop1" interface="floppy_3">
280         <dataarea name="flop" size="212085">
281            <rom name="3564 - deflektor (europe).ipf" size="212085" crc="2483f8c7" sha1="032b18abb2eb903ded8b32a59b003a68d784d996" offset="0" />
282         </dataarea>
283      </part>
284   </software>
285
286   <software name="dominatr">
287      <!-- SPS (CAPS) release 3507 -->
288      <description>Dominator</description>
289      <year>1989</year>
290      <publisher>System 3 Software</publisher>
291
292      <part name="flop1" interface="floppy_3">
293         <dataarea name="flop" size="250612">
294            <rom name="3507 - dominator (europe).ipf" size="250612" crc="e6c6f9eb" sha1="22d46cc0cabba10b0d58bba86b5123fdcf73a731" offset="0" />
295         </dataarea>
296      </part>
297   </software>
298
299   <software name="echelon">
300      <!-- SPS (CAPS) release 3565 -->
301      <description>Echelon</description>
302      <year>1988</year>
303      <publisher>U.S. Gold</publisher>
304
305      <part name="flop1" interface="floppy_3">
306         <dataarea name="flop" size="237460">
307            <rom name="3565 - echelon (europe).ipf" size="237460" crc="94c24ad3" sha1="cae1aa9d3897ec2027120afd1e4d3370b78de3cf" offset="0" />
308         </dataarea>
309      </part>
310   </software>
311
312   <software name="erik">
313      <!-- SPS (CAPS) release 3566 -->
314      <description>Erik - The Phantom of the Opera</description>
315      <year>1987</year>
316      <publisher>Crysys</publisher>
317
318      <part name="flop1" interface="floppy_3">
319         <dataarea name="flop" size="236460">
320            <rom name="3566 - erik - the phantom of the opera (europe).ipf" size="236460" crc="77098dc3" sha1="619babc59ea1816a4ea8e2d2030c25205fd65735" offset="0" />
321         </dataarea>
322      </part>
323   </software>
324
325   <software name="eprom">
326      <!-- SPS (CAPS) release 3567 -->
327      <description>Escape from the Planet of the Robot Monsters</description>
328      <year>1990</year>
329      <publisher>Domark</publisher>
330
331      <part name="flop1" interface="floppy_3">
332         <dataarea name="flop" size="234180">
333            <rom name="3567 - escape from the planet of the robot monsters (europe).ipf" size="234180" crc="ba153a21" sha1="4bb529af057b9cc5ab547cf754a3e4c21d0f34c9" offset="0" />
334         </dataarea>
335      </part>
336   </software>
337
338   <software name="espionag">
339      <!-- SPS (CAPS) release 3568 -->
340      <description>Espionage</description>
341      <year>1988</year>
342      <publisher>Grandslam Entertainments </publisher>
343      <info name="alt_title" value="Espionage - The Computer Game (Box)" />
344
345      <part name="flop1" interface="floppy_3">
346         <dataarea name="flop" size="99180">
347            <rom name="3568 - espionage - the computer game (europe).ipf" size="99180" crc="893495d8" sha1="eac0b7dcd91d628bf85938327ec15b833dd6f1d9" offset="0" />
348         </dataarea>
349      </part>
350   </software>
351
352   <software name="f16comb">
353      <!-- SPS (CAPS) release 3508 -->
354      <description>F-16 Combat Pilot</description>
355      <year>1991</year>
356      <publisher>Digital Integration</publisher>
357
358      <part name="flop1" interface="floppy_3">
359         <dataarea name="flop" size="161607">
360            <rom name="3508 - f-16 combat pilot (europe).ipf" size="161607" crc="49f2d22d" sha1="1336f27de5c4c1aad734f83aa6c2ffca9efe6747" offset="0" />
361         </dataarea>
362      </part>
363   </software>
364
365   <software name="federatn">
366      <!-- SPS (CAPS) release 3569 -->
367      <description>Federation</description>
368      <year>1988</year>
369      <publisher>CRL Group</publisher>
370      <part name="flop1" interface="floppy_3">
371         <dataarea name="flop" size="236460">
372            <rom name="3569 - federation (europe).ipf" size="236460" crc="091f3f4f" sha1="fb0f360417ef35fcf5bb59b2c9822ffb7d834015" offset="0" />
373         </dataarea>
374      </part>
375   </software>
376
377   <software name="firefly">
378      <!-- SPS (CAPS) release 3570 -->
379      <description>Firefly</description>
380      <year>1988</year>
381      <publisher>Ocean Software</publisher>
382
383      <part name="flop1" interface="floppy_3">
384         <dataarea name="flop" size="238800">
385            <rom name="3570 - firefly (europe).ipf" size="238800" crc="e1961552" sha1="b3b3d1ebd5f6d5ce7ed104ffa63d1bac97b51db8" offset="0" />
386         </dataarea>
387      </part>
388   </software>
389
390   <software name="fish">
391      <!-- SPS (CAPS) release 3571 -->
392      <description>Fish!</description>
393      <year>1989</year>
394      <publisher>Rainbird Software</publisher>
395
396      <part name="flop1" interface="floppy_3">
397         <dataarea name="flop" size="236460">
398            <rom name="3571 - fish! (europe).ipf" size="236460" crc="880592d1" sha1="7522893bfa42a8b25bf98af8b54a83568df72bd3" offset="0" />
399         </dataarea>
400      </part>
401   </software>
402
403   <software name="footdir2">
404      <!-- SPS (CAPS) release 3509 -->
405      <description>Football Director II</description>
406      <year>1987</year>
407      <publisher>D&amp;H Games</publisher>
408
409      <part name="flop1" interface="floppy_3">
410         <dataarea name="flop" size="234180">
411            <rom name="3509 - football director ii (europe).ipf" size="234180" crc="f98bb0e1" sha1="0eab5d91a1ab220fbc22ae76485fa19beec36adb" offset="0" />
412         </dataarea>
413      </part>
414   </software>
415
416   <software name="foty2">
417      <!-- SPS (CAPS) release 3572 -->
418      <description>Footballer of the Year 2</description>
419      <year>1989</year>
420      <publisher>Gremlin Graphics Software </publisher>
421
422      <part name="flop1" interface="floppy_3">
423         <dataarea name="flop" size="259471">
424            <rom name="3572 - footballer of the year 2 (europe).ipf" size="259471" crc="96979e7f" sha1="a559adafcda492756da509ed22d62a53dbba2a16" offset="0" />
425         </dataarea>
426      </part>
427   </software>
428
429   <software name="hewson4">
430      <!-- SPS (CAPS) release 3510 -->
431      <description>Four Smash Hits From Hewson</description>
432      <year>198?</year>
433      <publisher>Hewson</publisher>
434
435      <part name="flop1" interface="floppy_3">
436         <dataarea name="flop" size="238800">
437            <rom name="3510 - four smash hits from hewson - exolon + zynaps + rana rama + uridium plus (europe).ipf" size="238800" crc="0e708293" sha1="85d7346aff7b7d63a290a828da0445ab73aa9855" offset="0" />
438         </dataarea>
439      </part>
440   </software>
441
442   <software name="garfield">
443      <!-- SPS (CAPS) release 3511 -->
444      <description>Garfield - "Big, Fat, Hairy Deal."</description>
445      <year>1988</year>
446      <publisher>The Edge</publisher>
447
448      <part name="flop1" interface="floppy_3">
449         <dataarea name="flop" size="236460">
450            <rom name="3511 - garfield - big, fat, hairy deal (europe).ipf" size="236460" crc="ffb8008d" sha1="f9f314b1d26c58340a962b7d6f35fdc5cf65768c" offset="0" />
451         </dataarea>
452      </part>
453   </software>
454
455   <software name="lineker">
456      <!-- SPS (CAPS) release 3573 -->
457      <description>Gary Lineker's Hot-Shot!</description>
458      <year>1988</year>
459      <publisher>Gremlin Graphics Software</publisher>
460
461      <part name="flop1" interface="floppy_3">
462         <dataarea name="flop" size="266892">
463            <rom name="3573 - gary lineker's hot-shot! (unknown).ipf" size="266892" crc="17963acf" sha1="22a8985076b7c1743e9431e071940c49efe217f5" offset="0" />
464         </dataarea>
465      </part>
466   </software>
467
468   <software name="linekskl">
469      <!-- SPS (CAPS) release 3574 -->
470      <description>Gary Lineker's Super Skills</description>
471      <year>1988</year>
472      <publisher>Gremlin Graphics Software</publisher>
473
474      <part name="flop1" interface="floppy_3">
475         <dataarea name="flop" size="237460">
476            <rom name="3574 - gary lineker's superskills (unknown).ipf" size="237460" crc="2f0ed1da" sha1="589cf6b337347218814a4a697353be4af5024c8a" offset="0" />
477         </dataarea>
478      </part>
479   </software>
480
481   <software name="lineksss">
482      <!-- SPS (CAPS) release 3575 -->
483      <description>Gary Lineker's Super Star Soccer</description>
484      <year>1988</year>
485      <publisher>Gremlin Graphics Software</publisher>
486
487      <part name="flop1" interface="floppy_3">
488         <dataarea name="flop" size="212085">
489            <rom name="3575 - gary lineker's superstar soccer (unknown).ipf" size="212085" crc="2a1c53f7" sha1="f4c24b1e01312d4f9b2241be14d243e723035499" offset="0" />
490         </dataarea>
491      </part>
492   </software>
493
494   <software name="gauntlet">
495      <!-- SPS (CAPS) release 3576 -->
496      <description>Gauntlet</description>
497      <year>1987</year>
498      <publisher>U.S. Gold</publisher>
499
500      <part name="flop1" interface="floppy_3">
501         <dataarea name="flop" size="212085">
502            <rom name="3576 - gauntlet (europe).ipf" size="212085" crc="4c4c4cc2" sha1="c04e3233166fe888a96b2ea98a6a96f33fb19728" offset="0" />
503         </dataarea>
504      </part>
505   </software>
506
507   <software name="gauntlt2">
508      <!-- SPS (CAPS) release 3577 -->
509      <description>Gauntlet II</description>
510      <year>1988</year>
511      <publisher>U.S. Gold</publisher>
512
513      <part name="flop1" interface="floppy_3">
514         <dataarea name="flop" size="212085">
515            <rom name="3577 - gauntlet ii (europe).ipf" size="212085" crc="7d156d4d" sha1="0d296b611c817203bf59a3710c87d0d5d39c16cf" offset="0" />
516         </dataarea>
517      </part>
518   </software>
519
520   <software name="gazza">
521      <!-- SPS (CAPS) release 3579 -->
522      <description>Gazza's Super Soccer</description>
523      <year>1990</year>
524      <publisher>Empire Software</publisher>
525
526      <part name="flop1" interface="floppy_3">
527         <dataarea name="flop" size="236460">
528            <rom name="3579 - gazza's super soccer (unknown).ipf" size="236460" crc="3c8cb09d" sha1="19a06b4732fefb4d5a8898d415afde39aa8a8495" offset="0" />
529         </dataarea>
530      </part>
531   </software>
532
533   <software name="gazza2">
534      <!-- SPS (CAPS) release 3578 -->
535      <description>Gazza II</description>
536      <year>1990</year>
537      <publisher>Empire Software</publisher>
538
539      <part name="flop1" interface="floppy_3">
540         <dataarea name="flop" size="225096">
541            <rom name="3578 - gazza ii (europe).ipf" size="225096" crc="59a83634" sha1="c43b421f8b0c32858d6bc9668b3b60ef4704f756" offset="0" />
542         </dataarea>
543      </part>
544   </software>
545
546   <software name="ghouls">
547      <!-- SPS (CAPS) release 3512 -->
548      <description>Ghouls 'n' Ghosts</description>
549      <year>1989</year>
550      <publisher>U.S. Gold</publisher>
551
552      <part name="flop1" interface="floppy_3">
553         <dataarea name="flop" size="259471">
554            <rom name="ghouls'n'ghosts.ipf" size="259471" crc="5f056018" sha1="1d84d01a5d349843bcd4743bfb23c7a82ad9704c" offset="0" />
555         </dataarea>
556      </part>
557   </software>
558
559   <software name="hate">
560      <!-- SPS (CAPS) release 3580 -->
561      <description>H.A.T.E. - Hostile All Terrain Encounter</description>
562      <year>1989</year>
563      <publisher>Gremlin Graphics Software</publisher>
564
565      <part name="flop1" interface="floppy_3">
566         <dataarea name="flop" size="266892">
567            <rom name="3580 - h.a.t.e. - hostile all terrain encounter (europe).ipf" size="266892" crc="2aa400b2" sha1="3d847b6f91d0264900e6f2d28bb30574806613ae" offset="0" />
568         </dataarea>
569      </part>
570   </software>
571
572   <software name="hkm">
573      <!-- SPS (CAPS) release 3581 -->
574      <description>H.K.M. - Human Killing Machine</description>
575      <year>1988</year>
576      <publisher>U.S. Gold</publisher>
577
578      <part name="flop1" interface="floppy_3">
579         <dataarea name="flop" size="266892">
580            <rom name="3581 - h.k.m. - human killing machine (europe).ipf" size="266892" crc="2793e98f" sha1="ef4b8fcfb530a6b1edcc8820a3fdc00dbc79ec9d" offset="0" />
581         </dataarea>
582      </part>
583   </software>
584
585   <software name="herolanc">
586      <!-- SPS (CAPS) release 3513 -->
587      <description>Heroes of the Lance</description>
588      <year>1988</year>
589      <publisher>U.S. Gold</publisher>
590
591      <part name="flop1" interface="floppy_3">
592         <dataarea name="flop" size="237465">
593            <rom name="3513 - heroes of the lance (europe).ipf" size="237465" crc="d25d5414" sha1="2caf612f85dc9b790102df5f6a76d90c3408c8db" offset="0" />
594         </dataarea>
595      </part>
596   </software>
597
598   <software name="heroqst">
599      <!-- SPS (CAPS) release 3514 -->
600      <description>Hero Quest</description>
601      <year>1991</year>
602      <publisher>Gremlin Graphics Software</publisher>
603
604      <part name="flop1" interface="floppy_3">
605         <dataarea name="flop" size="239805">
606            <rom name="3514 - heroquest (europe).ipf" size="239805" crc="fc8bb800" sha1="96538aa2fd28b7ae66916590479b0596afcc495c" offset="0" />
607         </dataarea>
608      </part>
609   </software>
610
611   <software name="ironlord">
612      <!-- SPS (CAPS) release 3582 -->
613      <description>Iron Lord</description>
614      <year>1989</year>
615      <publisher>Ubi Soft</publisher>
616
617      <part name="flop1" interface="floppy_3">
618         <dataarea name="flop" size="259180">
619            <rom name="3582 - iron lord (europe).ipf" size="259180" crc="de0e3c7f" sha1="792d58267e8ca7e00b0946a78b7c6b0574ccc942" offset="0" />
620         </dataarea>
621      </part>
622   </software>
623
624   <software name="italia90">
625      <!-- SPS (CAPS) release 3548 -->
626      <description>Italia '90 - World Cup Soccer</description>
627      <year>1989</year>
628      <publisher>Virgin Games</publisher>
629
630      <part name="flop1" interface="floppy_3">
631         <dataarea name="flop" size="71100">
632            <rom name="3548 - italia '90 - world cup soccer (europe).ipf" size="71100" crc="78fa8fd0" sha1="ff5c8308544f24e428e877c3ea8c803f432468bb" offset="0" />
633         </dataarea>
634      </part>
635   </software>
636
637   <software name="offroad">
638      <!-- SPS (CAPS) release 3538 -->
639      <description>Ivan 'Ironman' Stewart's Super Off Road</description>
640      <year>1990</year>
641      <publisher>Virgin Games</publisher>
642
643      <part name="flop1" interface="floppy_3">
644         <dataarea name="flop" size="64845">
645            <rom name="3538 - ivan ironman stewart's super off road (unknown).ipf" size="64845" crc="38cb136b" sha1="5b633c7551b168d13d1c4d96637858fbcc027740" offset="0" />
646         </dataarea>
647      </part>
648   </software>
649
650   <software name="jackrip">
651      <!-- SPS (CAPS) release 3583 -->
652      <description>Jack the Ripper</description>
653      <year>1987</year>
654      <publisher>CRL Group</publisher>
655
656      <part name="flop1" interface="floppy_3">
657         <dataarea name="flop" size="236460">
658            <rom name="3583 - jack the ripper (europe).ipf" size="236460" crc="d2f3019f" sha1="30a0e536578ca62133666b2a710ceef505140215" offset="0" />
659         </dataarea>
660      </part>
661   </software>
662
663   <software name="dalglish">
664      <!-- SPS (CAPS) release 3515 -->
665      <description>Kenny Dalglish Soccer Match</description>
666      <year>1990</year>
667      <publisher>Impressions</publisher>
668
669      <part name="flop1" interface="floppy_3">
670         <dataarea name="flop" size="234180">
671            <rom name="3515 - kenny dalglish soccer match (europe).ipf" size="234180" crc="faeb7b0f" sha1="263e1fcb8bb77632cd83ab1dd2ce8d960bed9270" offset="0" />
672         </dataarea>
673      </part>
674   </software>
675
676   <software name="kickoff">
677      <!-- SPS (CAPS) release 3516 -->
678      <description>Kick Off</description>
679      <year>1989</year>
680      <publisher>Anco Software</publisher>
681
682      <part name="flop1" interface="floppy_3">
683         <dataarea name="flop" size="234180">
684            <rom name="3516 - kick off (europe).ipf" size="234180" crc="152e807b" sha1="855dc66c697484083c729d2183035dfb9166aacc" offset="0" />
685         </dataarea>
686      </part>
687   </software>
688
689   <software name="lmohican">
690      <!-- SPS (CAPS) release 3584 -->
691      <description>The Last Mohican</description>
692      <year>1987</year>
693      <publisher>CRL Group</publisher>
694
695      <part name="flop1" interface="floppy_3">
696         <dataarea name="flop" size="236460">
697            <rom name="3584 - last mohican, the (europe).ipf" size="236460" crc="ed3f624d" sha1="222b93b8e83987c8e5b83f4eb68dee8227bffc64" offset="0" />
698         </dataarea>
699      </part>
700   </software>
701
702   <software name="lightcor">
703      <!-- SPS (CAPS) release 3517 -->
704      <description>The Light Corridor</description>
705      <year>1991</year>
706      <publisher>Infogrames</publisher>
707
708      <part name="flop1" interface="floppy_3">
709         <dataarea name="flop" size="125316">
710            <rom name="3517 - light corridor, the (europe).ipf" size="125316" crc="ef3b80cd" sha1="568f29ba7d1a498432737543af07ba57c4adb26c" offset="0" />
711         </dataarea>
712      </part>
713   </software>
714
715   <software name="lmidnght">
716      <!-- SPS (CAPS) release 3518 -->
717      <description>Loads of Midnight</description>
718      <year>1987</year>
719      <publisher>CRL Group</publisher>
720
721      <part name="flop1" interface="floppy_3">
722         <dataarea name="flop" size="236460">
723            <rom name="3518 - loads of midnight (europe).ipf" size="236460" crc="a74f1114" sha1="2ab72f52fa499be8810f67e14aa477a114d37c29" offset="0" />
724         </dataarea>
725      </part>
726   </software>
727
728   <software name="lonewolf">
729      <!-- SPS (CAPS) release 3586 -->
730      <description>Lone Wolf - The Mirror of Death</description>
731      <year>1991</year>
732      <publisher>Aufiogenic Software</publisher>
733
734      <part name="flop1" interface="floppy_3">
735         <dataarea name="flop" size="236460">
736            <rom name="3586 - lone wolf - the mirror of death (europe).ipf" size="236460" crc="8943aba3" sha1="c6c810341c40a099858678ea63d701feca7d611f" offset="0" />
737         </dataarea>
738      </part>
739   </software>
740
741   <software name="lotus">
742      <!-- SPS (CAPS) release 3587 -->
743      <description>Lotus Esprit Turbo Challenge</description>
744      <year>1990</year>
745      <publisher>Gremlin Graphics Software</publisher>
746
747      <part name="flop1" interface="floppy_3">
748         <dataarea name="flop" size="239805">
749            <rom name="3587 - lotus esprit turbo challenge (europe).ipf" size="239805" crc="7c19c332" sha1="9756acef2e504b898894eef464c2496d60fbc862" offset="0" />
750         </dataarea>
751      </part>
752   </software>
753
754   <software name="mknitril">
755      <!-- SPS (CAPS) release 3629 -->
756      <description>Magic Knight Trilogy</description>
757      <year>1988</year>
758      <publisher>Mastertronic</publisher>
759      <info name="game" value="Finders Keepers + Spellbound + Knight Tyme" />
760
761      <part name="flop1" interface="floppy_3">
762         <dataarea name="flop" size="463740">
763            <rom name="3629 - magic knight trilogy - finders keepers + spellbound + knight tyme (europe).ipf" size="463740" crc="079c89bd" sha1="d90d4d25300795b8cc4ba383c680784b3050ef40" offset="0" />
764         </dataarea>
765      </part>
766   </software>
767
768   <software name="marauder">
769      <!-- SPS (CAPS) release 3519 -->
770      <description>Marauder</description>
771      <year>1988</year>
772      <publisher>Hewson Consultants</publisher>
773
774      <part name="flop1" interface="floppy_3">
775         <dataarea name="flop" size="237460">
776            <rom name="3519 - marauder (europe).ipf" size="237460" crc="2b61f4db" sha1="6896d9424b64b0ce2239485f28da9d49c7952e84" offset="0" />
777         </dataarea>
778      </part>
779   </software>
780
781   <software name="mask3">
782      <!-- SPS (CAPS) release 3588 -->
783      <description>Mask III - Venom Strikes Back</description>
784      <year>1988</year>
785      <publisher>Gremlin Graphics Software</publisher>
786
787      <part name="flop1" interface="floppy_3">
788         <dataarea name="flop" size="212085">
789            <rom name="3588 - mask iii - venom strikes back (europe).ipf" size="212085" crc="d36cea11" sha1="e4f73b8b32cf20802462997bc8f0adae38039e73" offset="0" />
790         </dataarea>
791      </part>
792   </software>
793
794   <software name="masters">
795      <!-- SPS (CAPS) release 3589 -->
796      <description>Masters of the Universe - The Movie</description>
797      <year>1987</year>
798      <publisher>U.S. Gold</publisher>
799
800      <part name="flop1" interface="floppy_3">
801         <dataarea name="flop" size="212085">
802            <rom name="3589 - masters of the universe - the movie (europe).ipf" size="212085" crc="dc32481a" sha1="66ebeed6e635b019f6cdea6c4b1a7f8305f5e7d3" offset="0" />
803         </dataarea>
804      </part>
805   </software>
806
807   <software name="megapocl">
808      <!-- SPS (CAPS) release 3590 -->
809      <description>MegaApocalypse</description>
810      <year>1988</year>
811      <publisher>Martech Games</publisher>
812
813      <part name="flop1" interface="floppy_3">
814         <dataarea name="flop" size="236460">
815            <rom name="3590 - mega-apocalypse (europe).ipf" size="236460" crc="802fa03e" sha1="0db41124887381927e87c9b294de53b5b0e0443d" offset="0" />
816         </dataarea>
817      </part>
818   </software>
819
820   <software name="mickey">
821      <!-- SPS (CAPS) release 3591 -->
822      <description>Mickey Mouse</description>
823      <year>1988</year>
824      <publisher>Gremlin Graphics Software</publisher>
825
826      <part name="flop1" interface="floppy_3">
827         <dataarea name="flop" size="212085">
828            <rom name="3591 - mickey mouse (europe).ipf" size="212085" crc="a788f7e3" sha1="9a89ba9da2a65acbe909e1be4ace922fb52ad28c" offset="0" />
829         </dataarea>
830      </part>
831   </software>
832
833   <software name="midres">
834      <!-- SPS (CAPS) release 3520 -->
835      <description>Midnight Resistance</description>
836      <year>1990</year>
837      <publisher>U.S. Gold</publisher>
838
839      <part name="flop1" interface="floppy_3">
840         <dataarea name="flop" size="146161">
841            <rom name="3520 - midnight resistance (europe).ipf" size="146161" crc="62943f46" sha1="369f6ed76e6b8c7d60949754b49f939d0747bd46" offset="0" />
842         </dataarea>
843      </part>
844   </software>
845
846   <software name="montypyt">
847      <!-- SPS (CAPS) release 3521 -->
848      <description>Monty Python's Flying Circus</description>
849      <year>1990</year>
850      <publisher>Virgin Games</publisher>
851
852      <part name="flop1" interface="floppy_3">
853         <dataarea name="flop" size="262692">
854            <rom name="3521 - monty python's flying circus (europe).ipf" size="262692" crc="8d7630b6" sha1="31495c6cf185cb00ff83eb3dc8f8b126118cf1b4" offset="0" />
855         </dataarea>
856      </part>
857   </software>
858
859   <software name="ninjawar">
860      <!-- SPS (CAPS) release 3522 -->
861      <description>The Ninja Warriors</description>
862      <year>1990</year>
863      <publisher>Virgin Games</publisher>
864
865      <part name="flop1" interface="floppy_3">
866         <dataarea name="flop" size="241110">
867            <rom name="3522 - ninja warriors, the (europe).ipf" size="241110" crc="4eb0abeb" sha1="e1ef8de2788953c9399515796ee1309ea33ccd3f" offset="0" />
868         </dataarea>
869      </part>
870   </software>
871
872   <software name="northstr">
873      <!-- SPS (CAPS) release 3592 -->
874      <description>North Star</description>
875      <year>1988</year>
876      <publisher>Gremlin Graphics Software</publisher>
877
878      <part name="flop1" interface="floppy_3">
879         <dataarea name="flop" size="212085">
880            <rom name="3592 - north star (europe).ipf" size="212085" crc="3c78a485" sha1="a8e47ac46b9d6396d422fee1ec91d753ccf66ec6" offset="0" />
881         </dataarea>
882      </part>
883   </software>
884
885   <software name="obliter">
886      <!-- SPS (CAPS) release 3593 -->
887      <description>Obliterator</description>
888      <year>1989</year>
889      <publisher>Melbourne House</publisher>
890
891      <part name="flop1" interface="floppy_3">
892         <dataarea name="flop" size="234180">
893            <rom name="3593 - obliterator (unknown).ipf" size="234180" crc="2ecaeee7" sha1="5e414ccba57f2fb0d384dac268b7f6f7b1fc48d8" offset="0" />
894         </dataarea>
895      </part>
896   </software>
897
898   <software name="p47thun">
899      <!-- SPS (CAPS) release 3594 -->
900      <description>P-47 Thunderbolt</description>
901      <year>1990</year>
902      <publisher>Firebird Software</publisher>
903
904      <part name="flop1" interface="floppy_3">
905         <dataarea name="flop" size="236460">
906            <rom name="3594 - p-47 thunderbolt (europe).ipf" size="236460" crc="5e7c8a54" sha1="077718f2e94cef68e57114249e869d6cb897a616" offset="0" />
907         </dataarea>
908      </part>
909   </software>
910
911   <software name="phmpegas">
912      <!-- SPS (CAPS) release 3596 -->
913      <description>P.H.M. Pegasus</description>
914      <year>1988</year>
915      <publisher>Electronic Arts</publisher>
916      <info name="alt_title" value="P.H.M. Pegasus - Patrol Hydrofoil Missile Craft Simulation (Box)" />
917
918      <part name="flop1" interface="floppy_3">
919         <dataarea name="flop" size="238800">
920            <rom name="3596 - phm pegasus - patrol hydrofoil missile craft simulation (europe).ipf" size="238800" crc="ef9157eb" sha1="ae18a271c03fee31a70fa55b80ad4b991fab156e" offset="0" />
921         </dataarea>
922      </part>
923   </software>
924
925   <software name="pacland">
926      <!-- SPS (CAPS) release 3595 -->
927      <description>Pac-Land</description>
928      <year>1989</year>
929      <publisher>Grandslam Entertainments </publisher>
930
931      <part name="flop1" interface="floppy_3">
932         <dataarea name="flop" size="114805">
933            <rom name="3595 - pac-land (europe).ipf" size="114805" crc="93e4fc20" sha1="58a070edfbc9d28e9a1a25674867433e7e22e214" offset="0" />
934         </dataarea>
935      </part>
936   </software>
937
938   <software name="pang">
939      <!-- SPS (CAPS) release 3523 -->
940      <description>Pang</description>
941      <year>1990</year>
942      <publisher>Ocean Software</publisher>
943
944      <part name="flop1" interface="floppy_3">
945         <dataarea name="flop" size="196735">
946            <rom name="3523 - pang (europe).ipf" size="196735" crc="604502ad" sha1="a7f22304e0deae1a25f23ea7f73570dbcfe2bbd5" offset="0" />
947         </dataarea>
948      </part>
949   </software>
950
951   <software name="passsht">
952      <!-- SPS (CAPS) release 3524 -->
953      <description>Passing Shot</description>
954      <year>1989</year>
955      <publisher>Image Works</publisher>
956
957      <part name="flop1" interface="floppy_3">
958         <dataarea name="flop" size="77364">
959            <rom name="3524 - passing shot (europe).ipf" size="77364" crc="f987b804" sha1="d5537ad6d7670725396d63022fe4fa3a4c3b6aa7" offset="0" />
960         </dataarea>
961      </part>
962   </software>
963
964   <software name="pawn">
965      <!-- SPS (CAPS) release 3525 -->
966      <description>The Pawn</description>
967      <year>1987</year>
968      <publisher>Rainbird Software</publisher>
969
970      <part name="flop1" interface="floppy_3">
971         <dataarea name="flop" size="236460">
972            <rom name="3525 - pawn, the (europe).ipf" size="236460" crc="468012a2" sha1="1402a94935992789fdbffa1aa07140d56eeba435" offset="0" />
973         </dataarea>
974      </part>
975   </software>
976
977   <software name="pipmania">
978      <!-- SPS (CAPS) release 3597 -->
979      <description>Pipe Mania</description>
980      <year>1990</year>
981      <publisher>Empire Software</publisher>
982
983      <part name="flop1" interface="floppy_3">
984         <dataarea name="flop" size="234180">
985            <rom name="3597 - pipe mania (europe).ipf" size="234180" crc="c42e0870" sha1="70623591fbef78e5562ac88418ad61df1ba9a811" offset="0" />
986         </dataarea>
987      </part>
988   </software>
989
990   <software name="pirate33">
991      <!-- SPS (CAPS) release 3598 -->
992      <description>Pirate 3 +3</description>
993      <year>1987</year>
994      <publisher>Pirate Software</publisher>
995      <info name="games" value="Holiday in Sumaria + Call Me Psycho + Smash Out!" />
996
997      <part name="flop1" interface="floppy_3">
998         <dataarea name="flop" size="236460">
999            <rom name="3598 - pirate 3+3 - holiday in sumaria + call me psycho + smash out! (europe).ipf" size="236460" crc="95e093a6" sha1="c6bb5c0c3fd92c8d666b3493ca8fdc55a8f1d35d" offset="0" />
1000         </dataarea>
1001      </part>
1002   </software>
1003
1004   <software name="platoon">
1005      <!-- SPS (CAPS) release 3526 -->
1006      <description>Platoon</description>
1007      <year>1988</year>
1008      <publisher>U.S. Gold</publisher>
1009
1010      <part name="flop1" interface="floppy_3">
1011         <dataarea name="flop" size="159198">
1012            <rom name="3526 - platoon (europe).ipf" size="159198" crc="56fe10dc" sha1="d844dabecb043d8c16bd8864b7146de456cda369" offset="0" />
1013         </dataarea>
1014      </part>
1015   </software>
1016
1017   <software name="predatr2">
1018      <!-- SPS (CAPS) release 3527 -->
1019      <description>Predator 2</description>
1020      <year>1991</year>
1021      <publisher>Image Works</publisher>
1022
1023      <part name="flop1" interface="floppy_3">
1024         <dataarea name="flop" size="234180">
1025            <rom name="3527 - predator 2 (europe).ipf" size="234180" crc="2cdff17b" sha1="c691b6cca52aced2790f7e99f27cc6b3e8040c4e" offset="0" />
1026         </dataarea>
1027      </part>
1028   </software>
1029
1030   <software name="protennt">
1031      <!-- SPS (CAPS) release 3599 -->
1032      <description>Pro Tennis Tour</description>
1033      <year>1990</year>
1034      <publisher>Ubi Soft</publisher>
1035
1036      <part name="flop1" interface="floppy_3">
1037         <dataarea name="flop" size="236460">
1038            <rom name="3599 - pro tennis tour (europe).ipf" size="236460" crc="e1e4448b" sha1="b8abc334bf1604934e293c133fdbe3946e744975" offset="0" />
1039         </dataarea>
1040      </part>
1041   </software>
1042
1043   <software name="qoscrup">
1044      <!-- SPS (CAPS) release 3529 -->
1045      <description>A Question of Scruples - The Computer Edition</description>
1046      <year>1987</year>
1047      <publisher>Leisure Genius</publisher>
1048
1049      <part name="flop1" interface="floppy_3">
1050         <dataarea name="flop" size="236460">
1051            <rom name="3529 - question of scruples, a - the computer edition (europe).ipf" size="236460" crc="34d8887c" sha1="2e402eb208ce6695930a8d7e042c4b1f0f7e6944" offset="0" />
1052         </dataarea>
1053      </part>
1054   </software>
1055
1056   <software name="qos">
1057      <!-- SPS (CAPS) release 3601 -->
1058      <description>A Question of Sport</description>
1059      <year>1989</year>
1060      <publisher>Elite Systems</publisher>
1061
1062      <part name="flop1" interface="floppy_3">
1063         <dataarea name="flop" size="236460">
1064            <rom name="3601 - question of sport, a (europe).ipf" size="236460" crc="8402bbeb" sha1="0f47e7c7326ad484f2222579c6395e29031a0115" offset="0" />
1065         </dataarea>
1066      </part>
1067   </software>
1068
1069   <software name="rbibb2">
1070      <!-- SPS (CAPS) release 3602 -->
1071      <description>R.B.I. Baseball 2</description>
1072      <year>1991</year>
1073      <publisher>Domark</publisher>
1074
1075      <part name="flop1" interface="floppy_3">
1076         <dataarea name="flop" size="234180">
1077            <rom name="3602 - r.b.i. baseball two (europe).ipf" size="234180" crc="87c57f24" sha1="5558cfb938091ab469bbec5a3323d69a73186bfd" offset="0" />
1078         </dataarea>
1079      </part>
1080   </software>
1081
1082   <software name="rbisland">
1083      <!-- SPS (CAPS) release 3600 -->
1084      <description>Rainbow Islands</description>
1085      <year>1990</year>
1086      <publisher>Ocean Software</publisher>
1087
1088      <part name="flop1" interface="floppy_3">
1089         <dataarea name="flop" size="211680">
1090            <rom name="3600 - rainbow islands (europe).ipf" size="211680" crc="d7db38ed" sha1="acfc70b4ecb3a4493321541a86585aaf85aed12c" offset="0" />
1091         </dataarea>
1092      </part>
1093   </software>
1094
1095   <software name="renegade">
1096      <!-- SPS (CAPS) release 3603 -->
1097      <description>Renegade</description>
1098      <year>1987</year>
1099      <publisher>Imagine Software</publisher>
1100
1101      <part name="flop1" interface="floppy_3">
1102         <dataarea name="flop" size="236460">
1103            <rom name="3603 - renegade (europe).ipf" size="236460" crc="84a1fc8e" sha1="bcf794a5ab09f3febd58e26a4e4fa31f5e1941f9" offset="0" />
1104         </dataarea>
1105      </part>
1106   </software>
1107
1108   <software name="rex">
1109      <!-- SPS (CAPS) release 3605 -->
1110      <description>Rex</description>
1111      <year>1988</year>
1112      <publisher>Martech Games</publisher>
1113
1114      <part name="flop1" interface="floppy_3">
1115         <dataarea name="flop" size="236460">
1116            <rom name="3605 - rex (europe).ipf" size="236460" crc="ee04c2c3" sha1="8bd98191db385647c808453ec50813dd93d72b0c" offset="0" />
1117         </dataarea>
1118      </part>
1119   </software>
1120
1121   <software name="roadblst">
1122      <!-- SPS (CAPS) release 3606 -->
1123      <description>Road Blasters</description>
1124      <year>1988</year>
1125      <publisher>U.S. Gold</publisher>
1126
1127      <part name="flop1" interface="floppy_3">
1128         <dataarea name="flop" size="238800">
1129            <rom name="3606 - road blasters (europe).ipf" size="238800" crc="95160028" sha1="f0359902f4687a30aa98a2b11e1eee1e170daa15" offset="0" />
1130         </dataarea>
1131      </part>
1132   </software>
1133
1134   <software name="robocop2">
1135      <!-- SPS (CAPS) release 3528 -->
1136      <description>Robocop 2</description>
1137      <year>1988</year>
1138      <publisher>Ocean Software</publisher>
1139
1140      <part name="flop1" interface="floppy_3">
1141         <dataarea name="flop" size="139905">
1142            <rom name="3528 - robocop 2 (europe).ipf" size="139905" crc="dcedfec7" sha1="80535591f4d93e2df41481df64673571d93b1809" offset="0" />
1143         </dataarea>
1144      </part>
1145   </software>
1146
1147   <software name="rthunder">
1148      <!-- SPS (CAPS) release 3608 -->
1149      <description>Rolling Thunder</description>
1150      <year>1988</year>
1151      <publisher>U.S. Gold</publisher>
1152
1153      <part name="flop1" interface="floppy_3">
1154         <dataarea name="flop" size="237460">
1155            <rom name="3608 - rolling thunder (europe).ipf" size="237460" crc="ddd2f964" sha1="5a910fc46cef7b545bb817128048de41357e6991" offset="0" />
1156         </dataarea>
1157      </part>
1158   </software>
1159
1160   <software name="rungaunt">
1161      <!-- SPS (CAPS) release 3609 -->
1162      <description>Run the Gauntlet</description>
1163      <year>1989</year>
1164      <publisher>Ocean Software</publisher>
1165
1166      <part name="flop1" interface="floppy_3">
1167         <dataarea name="flop" size="212085">
1168            <rom name="3609 - run the gauntlet (europe).ipf" size="212085" crc="e1a23873" sha1="191d4c4f0beef6e4fd4cd47edda058092e2374a5" offset="0" />
1169         </dataarea>
1170      </part>
1171   </software>
1172
1173   <software name="saintgrv">
1174      <!-- SPS (CAPS) release 3610 -->
1175      <description>Saint &amp; Greavsie</description>
1176      <year>1989</year>
1177      <publisher>Grandslam Entertainments</publisher>
1178
1179      <part name="flop1" interface="floppy_3">
1180         <dataarea name="flop" size="267142">
1181            <rom name="3610 - saint and greavsie (europe).ipf" size="267142" crc="8e3df69a" sha1="671ed674a6f05d0db8e3e437de87ee2298a43769" offset="0" />
1182         </dataarea>
1183      </part>
1184   </software>
1185
1186   <software name="scrabdx">
1187      <!-- SPS (CAPS) release 3611 -->
1188      <description>Scrabble Deluxe</description>
1189      <year>1987</year>
1190      <publisher>Leisure Genius</publisher>
1191
1192      <part name="flop1" interface="floppy_3">
1193         <dataarea name="flop" size="233852">
1194            <rom name="3611 - scrabble deluxe (europe).ipf" size="233852" crc="fd27626b" sha1="06f09b5a89ddd32fff07eb5aeae40bad96d8275e" offset="0" />
1195         </dataarea>
1196      </part>
1197   </software>
1198
1199   <software name="shootdsk">
1200      <!-- SPS (CAPS) release 3612 -->
1201      <description>Shootacular Disk 2</description>
1202      <year>1988</year>
1203      <publisher>Alternative Software</publisher>
1204      <info name="game" value="Combat Zone, Firestorm, Dead or Alive" />
1205
1206      <part name="flop1" interface="floppy_3">
1207         <dataarea name="flop" size="234180">
1208            <rom name="3612 - shootacular disk 2 - combat zone + firestorm + dead or alive (europe).ipf" size="234180" crc="9fbe4d56" sha1="ce4ae2c4e57f68da942249b204ec28a23ae1760c" offset="0" />
1209         </dataarea>
1210      </part>
1211   </software>
1212
1213   <software name="simcity">
1214      <!-- SPS (CAPS) release 3530 -->
1215      <description>Sim City</description>
1216      <year>1990</year>
1217      <publisher>Infogrames</publisher>
1218
1219      <part name="flop1" interface="floppy_3">
1220         <dataarea name="flop" size="12e901e">
1221            <rom name="3530 - sim city (europe).ipf" size="126717" crc="12e901ee" sha1="7fd665f19a290994dfbf8ba02da19ac1905581be" offset="0" />
1222         </dataarea>
1223      </part>
1224   </software>
1225
1226   <software name="skatball">
1227      <!-- SPS (CAPS) release 3613 -->
1228      <description>Skateball</description>
1229      <year>1988</year>
1230      <publisher>Ubi Soft</publisher>
1231
1232      <part name="flop1" interface="floppy_3">
1233         <dataarea name="flop" size="236460">
1234            <rom name="3613 - skateball (europe).ipf" size="236460" crc="00cb42ee" sha1="f3a0c02215f9ea679bcb338b9f5a9d7cc61ab235" offset="0" />
1235         </dataarea>
1236      </part>
1237   </software>
1238
1239   <software name="skullxbo">
1240      <!-- SPS (CAPS) release 3614 -->
1241      <description>Skull &amp; Crossbones</description>
1242      <year>1991</year>
1243      <publisher>Domark</publisher>
1244
1245      <part name="flop1" interface="floppy_3">
1246         <dataarea name="flop" size="271685">
1247            <rom name="3614 - skull &amp; crossbones (europe).ipf" size="271685" crc="a6c33f24" sha1="91c9b414d4ac1bd44657dd68d4ef2c8d911b45db" offset="0" />
1248         </dataarea>
1249      </part>
1250   </software>
1251
1252   <software name="snoopy">
1253      <!-- SPS (CAPS) release 3531 -->
1254      <description>Snoopy - The Cool Computer Game</description>
1255      <year>1991</year>
1256      <publisher>The Edge</publisher>
1257
1258      <part name="flop1" interface="floppy_3">
1259         <dataarea name="flop" size="195328">
1260            <rom name="3531 - snoopy - the cool computer game (europe).ipf" size="236460" crc="acdfe6d4" sha1="4ab0bd91d893964d957bf8c7ab3fa79d534220dc" offset="0" />
1261         </dataarea>
1262      </part>
1263   </software>
1264
1265   <software name="soldlght">
1266      <!-- SPS (CAPS) release 3532 -->
1267      <description>Soldier of Light</description>
1268      <year>1988</year>
1269      <publisher>ACE Software</publisher>
1270
1271      <part name="flop1" interface="floppy_3">
1272         <dataarea name="flop" size="236460">
1273            <rom name="3532 - soldier of light (europe).ipf" size="236460" crc="bffdd16e" sha1="948cf81086d9093da6cd08be61f60d46caf4e933" offset="0" />
1274         </dataarea>
1275      </part>
1276   </software>
1277
1278   <software name="spacecrs">
1279      <!-- SPS (CAPS) release 3533 -->
1280      <description>Space Crusade</description>
1281      <year>1992</year>
1282      <publisher>Gremlin Graphics Software</publisher>
1283
1284      <part name="flop1" interface="floppy_3">
1285         <dataarea name="flop" size="239805">
1286            <rom name="3533 - space crusade (europe).ipf" size="239805" crc="9c96fd7b" sha1="a1e5864217fe7f5617d21e005f53752af0238f92" offset="0" />
1287         </dataarea>
1288      </part>
1289   </software>
1290
1291   <software name="sportdsk">
1292      <!-- SPS (CAPS) release 3534 -->
1293      <description>Sportacular Disk 1</description>
1294      <year>1988</year>
1295      <publisher>Alternative Software</publisher>
1296      <info name="games" value="Soccer Boss, Olympic Spectacular, Indoor Soccer" />
1297
1298      <part name="flop1" interface="floppy_3">
1299         <dataarea name="flop" size="234180">
1300            <rom name="3534 - sportacular disk 1 - soccer boss + olympic spectacular + indoor soccer (europe).ipf" size="234180" crc="6945a61b" sha1="bf3f411cbb998a0af1274154f1761e753eb6a92f" offset="0" />
1301         </dataarea>
1302      </part>
1303   </software>
1304
1305   <software name="spywholm">
1306      <!-- SPS (CAPS) release 3615 -->
1307      <description>The Spy Who Loved Me</description>
1308      <year>1990</year>
1309      <publisher>Domark</publisher>
1310
1311      <part name="flop1" interface="floppy_3">
1312         <dataarea name="flop" size="234180">
1313            <rom name="3615 - spy who loved me, the (europe).ipf" size="234180" crc="6d638747" sha1="30763ad2f43935d7b63fdec20e62858357742b77" offset="0" />
1314         </dataarea>
1315      </part>
1316   </software>
1317
1318   <software name="stalingr">
1319      <!-- SPS (CAPS) release 3535 -->
1320      <description>Stalingrad</description>
1321      <year>1988</year>
1322      <publisher>CCS</publisher>
1323
1324      <part name="flop1" interface="floppy_3">
1325         <dataarea name="flop" size="236460">
1326            <rom name="3535 - stalingrad (europe).ipf" size="236460" crc="cb347afc" sha1="cb584de6c08d12788e8ef8c2b5e74e06ffbb2c12" offset="0" />
1327         </dataarea>
1328      </part>
1329   </software>
1330
1331   <software name="starwars">
1332      <!-- SPS (CAPS) release 3617 -->
1333      <description>Star Wars</description>
1334      <year>1987</year>
1335      <publisher>Domark</publisher>
1336
1337      <part name="flop1" interface="floppy_3">
1338         <dataarea name="flop" size="236460">
1339            <rom name="3617 - star wars (europe).ipf" size="236460" crc="f7406cf3" sha1="892d00becdc045a5289c4ae172291486e3107c76" offset="0" />
1340         </dataarea>
1341      </part>
1342   </software>
1343
1344   <software name="jedi">
1345      <!-- SPS (CAPS) release 3604 -->
1346      <description>Star Wars - Return of the Jedi</description>
1347      <year>1989</year>
1348      <publisher>Domark</publisher>
1349
1350      <part name="flop1" interface="floppy_3">
1351         <dataarea name="flop" size="236460">
1352            <rom name="3604 - star wars - return of the jedi (europe).ipf" size="236460" crc="6f6134a2" sha1="7f04c19c145dc216736d8daadba0641277170d4c" offset="0" />
1353         </dataarea>
1354      </part>
1355   </software>
1356
1357   <software name="starglid">
1358      <!-- SPS (CAPS) release 3536 -->
1359      <description>Starglider</description>
1360      <year>1986</year>
1361      <publisher>Rainbird Software</publisher>
1362
1363      <part name="flop1" interface="floppy_3">
1364         <dataarea name="flop" size="236460">
1365            <rom name="3536 - starglider (europe).ipf" size="236460" crc="8bfbfec7" sha1="68b7e4ba0c50cb750926623f513d436a00f73581" offset="0" />
1366         </dataarea>
1367      </part>
1368   </software>
1369
1370   <software name="cchaplin">
1371      <!-- SPS (CAPS) release 3616 -->
1372      <description>Starring Charlie Chaplin</description>
1373      <year>1987</year>
1374      <publisher>U.S. Gold</publisher>
1375
1376      <part name="flop1" interface="floppy_3">
1377         <dataarea name="flop" size="237460">
1378            <rom name="3616 - starring charlie chaplin (europe).ipf" size="237460" crc="93bc0467" sha1="02bc05b02a6880deb03db12e658f65d9b46f9a6f" offset="0" />
1379         </dataarea>
1380      </part>
1381   </software>
1382
1383   <software name="subbuteo">
1384      <!-- SPS (CAPS) release 3618 -->
1385      <description>Subbuteo - The Computer Game</description>
1386      <year>1990</year>
1387      <publisher>Electronic Zoo</publisher>
1388
1389      <part name="flop1" interface="floppy_3">
1390         <dataarea name="flop" size="236460">
1391            <rom name="3618 - subbuteo - the computer game (europe).ipf" size="236460" crc="2bc39232" sha1="b4933dd0e5420e1f8c977192cef1dc09dcc0ec81" offset="0" />
1392         </dataarea>
1393      </part>
1394   </software>
1395
1396   <software name="sunxword">
1397      <!-- SPS (CAPS) release 3619 -->
1398      <description>The Sun Computer Crosswords Volume 1</description>
1399      <year>1988</year>
1400      <publisher>Akom</publisher>
1401
1402      <part name="flop1" interface="floppy_3">
1403         <dataarea name="flop" size="236460">
1404            <rom name="3619 - sun computer crosswords volume 1, the (europe).ipf" size="236460" crc="e87a9910" sha1="5c3c7cc4c1d3ae851a1631bfb5a25ec324b33783" offset="0" />
1405         </dataarea>
1406      </part>
1407   </software>
1408
1409   <software name="supercar">
1410      <!-- SPS (CAPS) release 3537 -->
1411      <description>Super Cars</description>
1412      <year>1990</year>
1413      <publisher>Gremlin Graphics Software</publisher>
1414
1415      <part name="flop1" interface="floppy_3">
1416         <dataarea name="flop" size="212085">
1417            <rom name="3537 - super cars (europe).ipf" size="212085" crc="20a43fbb" sha1="de410ab9d0fc172e58d523f4e22088694306f407" offset="0" />
1418         </dataarea>
1419      </part>
1420   </software>
1421
1422   <software name="suprcycl">
1423      <!-- SPS (CAPS) release 3620 -->
1424      <description>Super Cycle</description>
1425      <year>1987</year>
1426      <publisher>U.S. Gold</publisher>
1427
1428      <part name="flop1" interface="floppy_3">
1429         <dataarea name="flop" size="237460">
1430            <rom name="3620 - super cycle (europe).ipf" size="237460" crc="4349a0e1" sha1="297c1aedb313a8344f9e7489f7d282e1260506c6" offset="0" />
1431         </dataarea>
1432      </part>
1433   </software>
1434
1435   <software name="ssinv">
1436      <!-- SPS (CAPS) release 3539 -->
1437      <description>Super Space Invaders</description>
1438      <year>1991</year>
1439      <publisher>Domark</publisher>
1440
1441      <part name="flop1" interface="floppy_3">
1442         <dataarea name="flop" size="234180">
1443            <rom name="3539 - super space invaders (europe).ipf" size="234180" crc="3f3b3a3e" sha1="eeed9c991f06819e3a1aed01d42cd0ec364fac6c" offset="0" />
1444         </dataarea>
1445      </part>
1446   </software>
1447
1448   <software name="taipan">
1449      <!-- SPS (CAPS) release 3621 -->
1450      <description>Tai-pan</description>
1451      <year>1987</year>
1452      <publisher>Ocean Software</publisher>
1453
1454      <part name="flop1" interface="floppy_3">
1455         <dataarea name="flop" size="236460">
1456            <rom name="3621 - tai-pan (europe).ipf" size="236460" crc="aef0bdf1" sha1="467dfa30fa1a1f7278b83d27bd9a1a1a9bfa0bdd" offset="0" />
1457         </dataarea>
1458      </part>
1459   </software>
1460
1461   <software name="tmht">
1462      <!-- SPS (CAPS) release 3540 -->
1463      <description>Teenage Mutant Hero Turtles</description>
1464      <year>1990</year>
1465      <publisher>Image Works</publisher>
1466
1467      <part name="flop1" interface="floppy_3">
1468         <dataarea name="flop" size="234180">
1469            <rom name="3540 - teenage mutant hero turtles (europe).ipf" size="234180" crc="5cba9f99" sha1="920b8203c466a578d73aef39e0b54931e42b359d" offset="0" />
1470         </dataarea>
1471      </part>
1472   </software>
1473
1474   <software name="tmht3" cloneof="tmht">
1475      <!-- SPS (CAPS) release 3541 -->
1476      <description>Teenage Mutant Hero Turtles (3&quot;)</description>
1477      <year>1990</year>
1478      <publisher>Image Works</publisher>
1479
1480      <part name="flop1" interface="floppy_3">
1481         <dataarea name="flop" size="236460">
1482            <rom name="3541 - teenage mutant hero turtles (europe) (three inch).ipf" size="236460" crc="1125e88f" sha1="ee807ed179cb748403f94d7aa4b6e7ae8a9b033b" offset="0" />
1483         </dataarea>
1484      </part>
1485   </software>
1486
1487   <software name="term2">
1488      <!-- SPS (CAPS) release 3622 -->
1489      <description>Terminator 2 - Judgment Day</description>
1490      <year>1991</year>
1491      <publisher>Ocean Software</publisher>
1492
1493      <part name="flop1" interface="floppy_3">
1494         <dataarea name="flop" size="259185">
1495            <rom name="3622 - terminator 2 - judgment day (europe).ipf" size="259185" crc="da207f08" sha1="04ae9ac360b9fbe23c76a4d380cde9ca9903b0e9" offset="0" />
1496         </dataarea>
1497      </part>
1498   </software>
1499
1500   <software name="tblade">
1501      <!-- SPS (CAPS) release 3623 -->
1502      <description>Thunder Blade</description>
1503      <year>1988</year>
1504      <publisher>U.S. Gold</publisher>
1505
1506      <part name="flop1" interface="floppy_3">
1507         <dataarea name="flop" size="237460">
1508            <rom name="3623 - thunder blade (europe).ipf" size="237460" crc="c83cc174" sha1="eba2cc3c53a1634e48098a431f73dee3169c78d3" offset="0" />
1509         </dataarea>
1510      </part>
1511   </software>
1512
1513   <software name="thdrcats">
1514      <!-- SPS (CAPS) release 3624 -->
1515      <description>Thundercats</description>
1516      <year>1987</year>
1517      <publisher>Elite Systems</publisher>
1518
1519      <part name="flop1" interface="floppy_3">
1520         <dataarea name="flop" size="234180">
1521            <rom name="3624 - thundercats (europe).ipf" size="234180" crc="459999a2" sha1="af7f670ffaf05bc36bb7997849d446770ed7a4b3" offset="0" />
1522         </dataarea>
1523      </part>
1524   </software>
1525
1526   <software name="totrecal">
1527      <!-- SPS (CAPS) release 3542 -->
1528      <description>Total Recall</description>
1529      <year>1991</year>
1530      <publisher>Ocean Software</publisher>
1531
1532      <part name="flop1" interface="floppy_3">
1533         <dataarea name="flop" size="184315">
1534            <rom name="3543 - total recall (europe).ipf" size="184315" crc="9e5325a8" sha1="1748281e2a811580c3af086e59e9d5302c2c766b" offset="0" />
1535         </dataarea>
1536      </part>
1537   </software>
1538
1539   <software name="totrecalgh" cloneof="totrecal">
1540      <!-- SPS (CAPS) release 3543 -->
1541      <description>Total Recall (Guild Home Video Advert)</description>
1542      <year>1991</year>
1543      <publisher>Ocean Software</publisher>
1544
1545      <part name="flop1" interface="floppy_3">
1546         <dataarea name="flop" size="184315">
1547            <rom name="3542 - total recall (europe) (guild home video advert).ipf" size="184315" crc="48eb67ce" sha1="66005b0a98851cdd784798a94e25b3eee8e3007f" offset="0" />
1548         </dataarea>
1549      </part>
1550   </software>
1551
1552   <software name="brooking">
1553      <!-- SPS (CAPS) release 3544 -->
1554      <description>Trevor Brooking's World Cup Glory</description>
1555      <year>1990</year>
1556      <publisher>Challenge Software</publisher>
1557
1558      <part name="flop1" interface="floppy_3">
1559         <dataarea name="flop" size="234180">
1560            <rom name="3544 - trevor brooking's world cup glory (europe).ipf" size="234180" crc="98358646" sha1="4ddc2a1dfb6e0c6c1e9d209f74d62dba6182f5e8" offset="0" />
1561         </dataarea>
1562      </part>
1563   </software>
1564
1565   <software name="vigilant">
1566      <!-- SPS (CAPS) release 3626 -->
1567      <description>Vigilante</description>
1568      <year>1989</year>
1569      <publisher>U.S. Gold</publisher>
1570
1571      <part name="flop1" interface="floppy_3">
1572         <dataarea name="flop" size="266892">
1573            <rom name="3626 - vigilante (europe).ipf" size="266892" crc="4df85c44" sha1="0f13d51918c0df0a07ef13e22b23f49c17007219" offset="0" />
1574         </dataarea>
1575      </part>
1576   </software>
1577
1578   <software name="vixen">
1579      <!-- SPS (CAPS) release 3545 -->
1580      <description>Vixen</description>
1581      <year>1988</year>
1582      <publisher>Martech Games</publisher>
1583
1584      <part name="flop1" interface="floppy_3">
1585         <dataarea name="flop" size="236460">
1586            <rom name="3545 - vixen (europe).ipf" size="236460" crc="2ebf7637" sha1="8435d9b04b7fe9bcd04679022aa01c85461c3f75" offset="0" />
1587         </dataarea>
1588      </part>
1589   </software>
1590
1591   <software name="warmidle">
1592      <!-- SPS (CAPS) release 3546 -->
1593      <description>War in Middle Earth</description>
1594      <year>1989</year>
1595      <publisher>Krome Studios Melbourne</publisher>
1596      <info name="alt_title" value="J.R.R. Tolkien's War in Middle Earth (Box)" />
1597
1598      <part name="flop1" interface="floppy_3">
1599         <dataarea name="flop" size="234180">
1600            <rom name="3546 - j.r.r. tolkien's war in middle earth (europe).ipf" size="234180" crc="f66db1bb" sha1="e3b62c9c01a49068a6f57abbdea93dd6013b6858" offset="0" />
1601         </dataarea>
1602      </part>
1603   </software>
1604
1605   <software name="welltris">
1606      <!-- SPS (CAPS) release 3547 -->
1607      <description>Welltris</description>
1608      <year>1991</year>
1609      <publisher>Infogrames</publisher>
1610
1611      <part name="flop1" interface="floppy_3">
1612         <dataarea name="flop" size="236460">
1613            <rom name="3547 - welltris (europe).ipf" size="236460" crc="18f7df7f" sha1="626b5fbef66aee9fab753eaf4ff95d844ae49efa" offset="0" />
1614         </dataarea>
1615      </part>
1616   </software>
1617
1618   <software name="wcboxman">
1619      <!-- SPS (CAPS) release 3627 -->
1620      <description>World Championship Boxing Manager</description>
1621      <year>1990</year>
1622      <publisher>Goliath Games</publisher>
1623
1624      <part name="flop1" interface="floppy_3">
1625         <dataarea name="flop" size="234180">
1626            <rom name="3627 - world championship boxing manager (europe).ipf" size="234180" crc="20b95f60" sha1="ac43afcf09a27828b503328f236ce40c1842c2a8" offset="0" />
1627         </dataarea>
1628      </part>
1629   </software>
1630
1631   <software name="xout">
1632      <!-- SPS (CAPS) release 3550 -->
1633      <description>X-Out</description>
1634      <year>1990</year>
1635      <publisher>Rainbow Arts</publisher>
1636
1637      <part name="flop1" interface="floppy_3">
1638         <dataarea name="flop" size="259471">
1639            <rom name="3550 - x-out (europe).ipf" size="259471" crc="12540648" sha1="4f3650e4739c1eca40d56360b16fd7460d37ac75" offset="0" />
1640         </dataarea>
1641      </part>
1642   </software>
1643
1644   <software name="xenon">
1645      <!-- SPS (CAPS) release 3549 -->
1646      <description>Xenon</description>
1647      <year>1988</year>
1648      <publisher>Melbourne House</publisher>
1649
1650      <part name="flop1" interface="floppy_3">
1651         <dataarea name="flop" size="234180">
1652            <rom name="3549 - xenon (europe).ipf" size="234180" crc="01daebfa" sha1="5ae00774d2da999b95b29142d11a01311b2cf07c" offset="0" />
1653         </dataarea>
1654      </part>
1655   </software>
1656
1657   <software name="xybots">
1658      <!-- SPS (CAPS) release 3628 -->
1659      <description>Xybots</description>
1660      <year>1989</year>
1661      <publisher>Domark</publisher>
1662
1663      <part name="flop1" interface="floppy_3">
1664         <dataarea name="flop" size="209805">
1665            <rom name="3628 - xybots (europe).ipf" size="209805" crc="51a0d849" sha1="86461e526a4cf5c7731f1e1067433ca9c8d57dec" offset="0" />
1666         </dataarea>
1667      </part>
1668   </software>
1669
1670
1671   <!-- Other images -->
1672
1673   <software name="pacmania" >
1674      <description>Pac-Mania (Euro, Aus)</description>
1675      <year>1988</year>
1676      <publisher>Grandslam Entertainments</publisher>
1677      <part name="flop1" interface="floppy_3">
1678         <dataarea name="flop" size="195328">
1679            <rom name="pac-mania.dsk" size="195328" crc="88f5506b" sha1="827c95935dd3a1dd919989fc6d7a0efa4e5aebc1" offset="0" />
1680         </dataarea>
1681      </part>
1682   </software>
1683
1684</softwarelist>
trunk/hash/ut88.xml
r241777r241778
44
55
66   <software name="basic80">
7      <description>Mikro/80 BASIC</description>
7      <description>BASIC80</description>
88      <year>19??</year>
99      <publisher>&lt;unknown&gt;</publisher>
1010      <part name="cass" interface="ut88_cass">
r241777r241778
1515   </software>
1616
1717   <software name="chscom">
18      <description>Changer (v1.1) (CP/M)</description>
18      <description>CH$COM</description>
1919      <year>19??</year>
2020      <publisher>&lt;unknown&gt;</publisher>
2121      <part name="cass" interface="ut88_cass">
r241777r241778
2626   </software>
2727
2828   <software name="cpm35">
29      <description>CP/M (v2.2, 35K)</description>
29      <description>CPM35</description>
3030      <year>19??</year>
3131      <publisher>&lt;unknown&gt;</publisher>
3232      <part name="cass" interface="ut88_cass">
r241777r241778
3636      </part>
3737   </software>
3838
39   <software name="cpm256">
40      <description>CP/M (v2.2, 256K)</description>
39   <software name="cpm64">
40      <description>CPM64</description>
4141      <year>19??</year>
4242      <publisher>&lt;unknown&gt;</publisher>
4343      <part name="cass" interface="ut88_cass">
r241777r241778
4848   </software>
4949
5050   <software name="tetris">
51      <description>Tetris</description>
51      <description>TETRIS</description>
5252      <year>19??</year>
5353      <publisher>&lt;unknown&gt;</publisher>
5454      <part name="cass" interface="ut88_cass">
trunk/hash/vreader.xml
r241777r241778
33<!--
44NOTE: This list is here only to document available dumps and it's not used (yet) by MESS!
55-->
6<softwarelist name="vreader" description="VTech V.Reader / Storio cartridges">
6<softwarelist name="vreader" description="VTech V.Reader / Smilio cartridges">
77
88<!--
99
r241777r241778
4747
4848
4949-->
50</softwarelist>
50</softwarelist>
No newline at end of file
trunk/hash/vsmile_cd.xml
r241777r241778
242480-093020(US)   | The Incredibles - Mission Incredible
252580-093023(UK)   | The Incredibles - Mission Incredible
262680-093024(GE)   | Die Unglaublichen - unglaublicher Mission
2780-093025(FR)   | Les Indestructibles - Les Indestructibles A la Rescousse
282780-093027(SP)   | Los Increibles - Mision Increible
2928-
302980-093040(US)   | SpongeBob - Idea Sponge
313080-093044(GE)   | SpongeBob - Ein Schwamm voller Ideen
3280-093045(FR)   | Bob L'Ă©ponge - ????? (the crab consultant...)
3331-
343280-093060(US)   | The Amazing Spider-Man - Countdown to Doom
353380-093064(GE)   | Spiderman - Angriff der Superschurken
r241777r241778
3836-
393780-093080(US)   | Scooby-Doo! - Ancient Adventure
403880-093083(UK)   | Scooby-Doo! - Ancient Adventure
4180-093084(GE)   | Scooby-Doo! - ????? (no EAN found, but should have been released)
3980-093084(GE)   | Scooby-Doo! -
424080-093085(FR)   | Scooby-Doo! - Les Civilisations Perdues
434180-093087(SP)   | Scooby-Doo - Viaje al Pasdao
4442-
r241777r241778
545280-093140(US)   | Shrek The Third - The Search for Arthur
555380-093143(UK)   | Shrek The Third - The Search for Arthur
565480-093144(GE)   | Shrek Der Dritte - Die Suche nach Arthus
5780-093145(FR)   | Shrek Le TroisiĂšme: L'aventure D'arthur
585580-093147(SP)   | Shrek Tercero - Donde esta Arturo?
5956-
605780-093160(US)   | Bratz - The Secret Necklace
6180-093165(FR)   | Bratz
6258-
635980-093180(US)   | <Unknown>
6460-
r241777r241778
6965-
706680-093600(US)   | <Unknown>
716780-093604(GE)   | Multisports
7280-093605(FR)   | Defis Sports
7368
7469
7570-->
trunk/hash/x07_cass.xml
r241777r241778
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<softwarelist name="x07_cass" description="Canon X-07 cassettes">
5
6<!-- This comes from a real cassette -->
7   <software name="x07calc">
8      <description>Canon X-07 Calc (Fra)</description>
9      <year>19??</year>
10      <publisher>Logi'stick</publisher>
11      <part name="cass" interface="x07_cass">
12         <dataarea name="cass" size="957292">
13            <rom name="x07_calc_logistick.wav" size="957292" crc="626b14be" sha1="b4f30523b3c40170c2b2781a73dffb29e5c67d42" offset="0" />
14         </dataarea>
15      </part>
16   </software>
17
18
19
20<!-- These are tapes created from listings published on the French magazine "Hebdogiciel" -->
21
22   <software name="3dlabyr">
23      <description>3-D Labyrinthe (Fra)</description>
24      <year>1986</year>
25      <publisher>&lt;type-in&gt;</publisher>
26      <info name="magazine" value="Hebdogiciel 123" />
27      <info name="release" value="19860221" />
28      <info name="author" value="M. Grillet" />
29      <part name="cass" interface="x07_cass">
30         <dataarea name="cass" size="13406">
31            <rom name="labyrinthe 3d.cas" size="13406" crc="bcb4213e" sha1="22a4faa1bed2594885f55d0aa41ffd75e75563ba" offset="0" />
32         </dataarea>
33      </part>
34   </software>
35
36   <software name="3dmunch" supported="no">
37      <description>3D Munch (Fra)</description>
38      <year>1986</year>
39      <publisher>&lt;type-in&gt;</publisher>
40      <info name="magazine" value="Hebdogiciel 146" />
41      <info name="release" value="198608xx" />
42      <info name="author" value="Ignace Vantorre" />
43      <part name="cass1" interface="x07_cass">
44         <dataarea name="cass" size="2833">
45            <rom name="3dmunch#1.cas" size="2833" crc="e78972cc" sha1="affcc1b24159a2f8a6d5dbb948010c95c831ea4c" offset="0" />
46         </dataarea>
47      </part>
48      <part name="cass2" interface="x07_cass">
49         <dataarea name="cass" size="6263">
50            <rom name="3dmunch#2.cas" size="6263" crc="c6d3f9d9" sha1="58c1bbd5e98d3f6d73b0a68507648b3140ed31c0" offset="0" />
51         </dataarea>
52      </part>
53   </software>
54
55   <software name="3dturbo" supported="no">
56      <description>3D-Turbo (Fra)</description>
57      <year>1986</year>
58      <publisher>&lt;type-in&gt;</publisher>
59      <info name="magazine" value="Hebdogiciel 146" />
60      <info name="release" value="198608xx" />
61      <info name="author" value="Emmanuel De Lapparent" />
62      <part name="cass1" interface="x07_cass">
63         <dataarea name="cass" size="5361">
64            <rom name="turbo1.cas" size="5361" crc="ca6ec209" sha1="ea199a6f83741f79222d46266340ec552bf4f40d" offset="0" />
65         </dataarea>
66      </part>
67      <part name="cass2" interface="x07_cass">
68         <dataarea name="cass" size="5732">
69            <rom name="turbo2.cas" size="5732" crc="90d8a0e2" sha1="d2da55977ecfeb5496263ce5e45f022128a4a11c" offset="0" />
70         </dataarea>
71      </part>
72   </software>
73
74   <software name="advland">
75      <description>Adventure-Land (Fra)</description>
76      <year>1985</year>
77      <publisher>&lt;type-in&gt;</publisher>
78      <info name="magazine" value="Hebdogiciel 93" />
79      <info name="release" value="19850726" />
80      <info name="author" value="Pascal Aoumade" />
81      <part name="cass" interface="x07_cass">
82         <dataarea name="cass" size="11467">
83            <rom name="adventure land.cas" size="11467" crc="6f5cfa75" sha1="822426b512a493a1e5c33cb6c7017edbeaa270c5" offset="0" />
84         </dataarea>
85      </part>
86   </software>
87
88<!-- when is the 2nd part supposed to be loaded? -->
89   <software name="amerinca" supported="partial">
90      <description>Amerinca Gold (Fra)</description>
91      <year>1985</year>
92      <publisher>&lt;type-in&gt;</publisher>
93      <info name="magazine" value="Hebdogiciel 111" />
94      <info name="release" value="19851129" />
95      <info name="author" value="N. Allaire" />
96      <part name="cass1" interface="x07_cass">
97         <dataarea name="cass" size="5025">
98            <rom name="amer1 gold.cas" size="5025" crc="dbbdbccc" sha1="ec7a8eab7cd4fb33f0fde5ab38addbb65fc288a1" offset="0" />
99         </dataarea>
100      </part>
101      <part name="cass2" interface="x07_cass">
102         <dataarea name="cass" size="6103">
103            <rom name="amer2 gold.cas" size="6103" crc="50f9bb93" sha1="d6b31fcc6e8a9e2650cfd49d07d54594343a765b" offset="0" />
104         </dataarea>
105      </part>
106   </software>
107
108   <software name="amidar">
109      <description>Amidar - Le Peintre (Fra)</description>
110      <year>1985</year>
111      <publisher>&lt;type-in&gt;</publisher>
112      <info name="alt_title" value="Painter" />
113      <info name="magazine" value="Hebdogiciel 73" />
114      <info name="release" value="19850308" />
115      <info name="author" value="P. Breton" />
116      <part name="cass" interface="x07_cass">
117         <dataarea name="cass" size="8811">
118            <rom name="painter.cas" size="8811" crc="1d9410f5" sha1="9c54fbcbdd9b0b47988b4f5cff609e7eab698220" offset="0" />
119         </dataarea>
120      </part>
121   </software>
122
123   <software name="assdesas">
124      <description>Assembleur DĂ©sassembleur (Fra)</description>
125      <year>1984</year>
126      <publisher>&lt;type-in&gt;</publisher>
127      <info name="alt_title" value="L'As desAs" />
128      <info name="magazine" value="Hebdogiciel 59" />
129      <info name="release" value="19841130" />
130      <info name="author" value="S. Doczekaski" />
131      <part name="cass" interface="x07_cass">
132         <dataarea name="cass" size="10058">
133            <rom name="assdes_as.cas" size="10058" crc="281dfe99" sha1="d7f8f01246d6e8edafb22f6b748c7deffa57300b" offset="0" />
134         </dataarea>
135      </part>
136   </software>
137
138   <software name="aventur">
139      <description>Aventurier (Fra)</description>
140      <year>1986</year>
141      <publisher>&lt;type-in&gt;</publisher>
142      <info name="magazine" value="Hebdogiciel 125" />
143      <info name="release" value="19860307" />
144      <info name="author" value="Pierre Dor" />
145      <part name="cass" interface="x07_cass">
146         <dataarea name="cass" size="9412">
147            <rom name="aventurier.cas" size="9412" crc="0e5897ee" sha1="66bb20b82f6be5c9ca171ff60cb7b9b623311a29" offset="0" />
148         </dataarea>
149      </part>
150   </software>
151
152   <software name="extbas">
153      <description>BASIC Étendu (Fra)</description>
154      <year>1985</year>
155      <publisher>&lt;type-in&gt;</publisher>
156      <info name="magazine" value="Hebdogiciel 88" />
157      <info name="release" value="19850621" />
158      <info name="author" value="R. Van Leeuwen" />
159      <part name="cass" interface="x07_cass">
160         <dataarea name="cass" size="2592">
161            <rom name="extbas.cas" size="2592" crc="dfc2d408" sha1="94dbe746d3cdb436a5492808dcb3151cd3868020" offset="0" />
162         </dataarea>
163      </part>
164   </software>
165
166   <software name="basix07" supported="no">
167      <description>BASIX 07 (Fra)</description>
168      <year>1985</year>
169      <publisher>&lt;type-in&gt;</publisher>
170      <info name="magazine" value="Hebdogiciel 106" />
171      <info name="release" value="19851025" />
172      <info name="author" value="Stephane Shirvanian" />
173      <part name="cass" interface="x07_cass">
174         <dataarea name="cass" size="4121">
175            <rom name="basix-07.cas" size="4121" crc="8e4de221" sha1="706d40ce2d434c5b1aaea93e1ef03bcdf7ea15f4" offset="0" />
176         </dataarea>
177      </part>
178   </software>
179
180   <software name="batgalax">
181      <description>Bataille dans la Galaxie (Fra)</description>
182      <year>1986</year>
183      <publisher>&lt;type-in&gt;</publisher>
184      <info name="magazine" value="Hebdogiciel 146" />
185      <info name="release" value="198608xx" />
186      <info name="author" value="J. P. Blanchard" />
187      <part name="cass" interface="x07_cass">
188         <dataarea name="cass" size="3788">
189            <rom name="bataille dans la galaxie.cas" size="3788" crc="889efc64" sha1="b2c2887a8b20abc23e957ef0fd2957b26e496eda" offset="0" />
190         </dataarea>
191      </part>
192   </software>
193
194<!-- The listing was supposed to be completed in Hebdogiciel 169, which was not published -->
195   <software name="beachead">
196      <description>Beach-Head (Fra, Incomplete)</description>
197      <year>1987</year>
198      <publisher>&lt;type-in&gt;</publisher>
199      <info name="magazine" value="Hebdogiciel 168" />
200      <info name="release" value="19870102" />
201      <info name="author" value="S. Doczekaski" />
202      <part name="cass1" interface="x07_cass">
203         <dataarea name="cass" size="3811">
204            <rom name="beach1_head.cas" size="3811" crc="414bae15" sha1="9d550544753c441a815efc2a1b330ba2cfe94057" offset="0" />
205         </dataarea>
206      </part>
207      <part name="cass2" interface="x07_cass">
208         <dataarea name="cass" size="1807">
209            <rom name="beach2_head[incomplet].cas" size="1807" crc="61f83215" sha1="989f2a74219a2c7799592f9b85a7f35b1881a469" offset="0" />
210         </dataarea>
211      </part>
212   </software>
213
214   <software name="belote">
215      <description>Belote (Fra)</description>
216      <year>1984</year>
217      <publisher>&lt;type-in&gt;</publisher>
218      <info name="magazine" value="Hebdogiciel 62" />
219      <info name="release" value="19841221" />
220      <info name="author" value="J. C. Adagas Cau" />
221      <part name="cass" interface="x07_cass">
222         <dataarea name="cass" size="9082">
223            <rom name="belote.cas" size="9082" crc="a86e4fdf" sha1="a5370ff8c4dc1f3593864fdb2efd3694f23f44e3" offset="0" />
224         </dataarea>
225      </part>
226   </software>
227
228   <software name="calcul">
229      <description>Calcul (Fra)</description>
230      <year>1984</year>
231      <publisher>&lt;type-in&gt;</publisher>
232      <info name="magazine" value="Hebdogiciel 42" />
233      <info name="release" value="198408xx" />
234      <info name="author" value="E. Madeuf" />
235      <part name="cass" interface="x07_cass">
236         <dataarea name="cass" size="5857">
237            <rom name="calcul.cas" size="5857" crc="edf90613" sha1="de5ab65ecb4263b050e82f1ac8a980627cf45e35" offset="0" />
238         </dataarea>
239      </part>
240   </software>
241
242   <software name="calculat">
243      <description>Calculatrice (Fra)</description>
244      <year>1985</year>
245      <publisher>&lt;type-in&gt;</publisher>
246      <info name="magazine" value="Hebdogiciel 98" />
247      <info name="release" value="19850830" />
248      <info name="author" value="M. Lameyse" />
249      <part name="cass" interface="x07_cass">
250         <dataarea name="cass" size="5200">
251            <rom name="calculatrice.cas" size="5200" crc="e6615324" sha1="e4f8f2f0c2fd013c26958d0ce3e2c5deb10c390a" offset="0" />
252         </dataarea>
253      </part>
254   </software>
255
256   <software name="cburger">
257      <description>Canon Burger (Fra)</description>
258      <year>1986</year>
259      <publisher>&lt;type-in&gt;</publisher>
260      <info name="magazine" value="Hebdogiciel 135" />
261      <info name="release" value="19860516" />
262      <info name="author" value="Pierre Dor" />
263      <part name="cass" interface="x07_cass">
264         <dataarea name="cass" size="5142">
265            <rom name="canon burger.cas" size="5142" crc="ef232f49" sha1="d96776fcdf11c183c833f14324e402c55be6132d" offset="0" />
266         </dataarea>
267      </part>
268   </software>
269
270   <software name="crun">
271      <description>Canon Runner (Fra)</description>
272      <year>1985</year>
273      <publisher>&lt;type-in&gt;</publisher>
274      <info name="magazine" value="Hebdogiciel 107" />
275      <info name="release" value="19851101" />
276      <info name="author" value="C. Gautier" />
277      <part name="cass1" interface="x07_cass">
278         <dataarea name="cass" size="7965">
279            <rom name="canon runner1.cas" size="7965" crc="119bf353" sha1="644d52edd3d249f5b6a9d4c2a605fb4e3b2b6a4b" offset="0" />
280         </dataarea>
281      </part>
282      <part name="cass2" interface="x07_cass">
283         <dataarea name="cass" size="4879">
284            <rom name="canon runner2.cas" size="4879" crc="fcc5e6a6" sha1="423653b7df8336f2cd0da4905214f0ceac5d72fa" offset="0" />
285         </dataarea>
286      </part>
287   </software>
288
289   <software name="ccalc">
290      <description>Canon-Calc (Fra)</description>
291      <year>1986</year>
292      <publisher>&lt;type-in&gt;</publisher>
293      <info name="magazine" value="Hebdogiciel 136" />
294      <info name="release" value="19860523" />
295      <info name="author" value="François Bernez" />
296      <part name="cass" interface="x07_cass">
297         <dataarea name="cass" size="8500">
298            <rom name="canon-calc.cas" size="8500" crc="f3308e5d" sha1="a03f369f560b07ba2f397faa1d92cff6bc563891" offset="0" />
299         </dataarea>
300      </part>
301   </software>
302
303   <software name="cgraff">
304      <description>Canon-Graff (Fra)</description>
305      <year>1985</year>
306      <publisher>&lt;type-in&gt;</publisher>
307      <info name="magazine" value="Hebdogiciel 69" />
308      <info name="release" value="19850208" />
309      <info name="author" value="F. Devargas" />
310      <part name="cass" interface="x07_cass">
311         <dataarea name="cass" size="5434">
312            <rom name="canon-graff.cas" size="5434" crc="eea27bcd" sha1="338f7ef5753897a7905e50027137f2b33cd6ccbd" offset="0" />
313         </dataarea>
314      </part>
315   </software>
316
317   <software name="cardiab2">
318      <description>CarrĂ© Diabolique II (Fra)</description>
319      <year>1985</year>
320      <publisher>&lt;type-in&gt;</publisher>
321      <info name="magazine" value="Hebdogiciel 106" />
322      <info name="release" value="19851025" />
323      <info name="author" value="M. Bollaert" />
324      <part name="cass" interface="x07_cass">
325         <dataarea name="cass" size="1809">
326            <rom name="carre diabolique2.cas" size="1809" crc="20d3ae95" sha1="16ee404143a4b8072071ea516ebd3772fc0571dd" offset="0" />
327         </dataarea>
328      </part>
329   </software>
330
331   <software name="carwar">
332      <description>CarWar (Fra)</description>
333      <year>1985</year>
334      <publisher>&lt;type-in&gt;</publisher>
335      <info name="magazine" value="Hebdogiciel 81" />
336      <info name="release" value="19850503" />
337      <info name="author" value="G. Bouquet" />
338      <part name="cass" interface="x07_cass">
339         <dataarea name="cass" size="3621">
340            <rom name="carwar.cas" size="3621" crc="046666ed" sha1="9fc30dd1eee95d1fc0c131cb33084eb4a1714623" offset="0" />
341         </dataarea>
342      </part>
343   </software>
344
345   <software name="catchmn">
346      <description>Catch-Mean (Fra)</description>
347      <year>1986</year>
348      <publisher>&lt;type-in&gt;</publisher>
349      <info name="magazine" value="Hebdogiciel 127" />
350      <info name="release" value="19860321" />
351      <info name="author" value="F. Trancart" />
352      <part name="cass1" interface="x07_cass">
353         <dataarea name="cass" size="2079">
354            <rom name="catch1-mean.cas" size="2079" crc="fce4704f" sha1="4e1cb7cf94f02c7797f502fac7e0b81dcf2477d7" offset="0" />
355         </dataarea>
356      </part>
357      <part name="cass2" interface="x07_cass">
358         <dataarea name="cass" size="6052">
359            <rom name="catch2-mean.cas" size="6052" crc="54f1b4f0" sha1="f96a7a542d73ed90136523cd4d3fb71eb88ef2e9" offset="0" />
360         </dataarea>
361      </part>
362   </software>
363
364   <software name="chenille">
365      <description>Chenille (Fra)</description>
366      <year>1984</year>
367      <publisher>&lt;type-in&gt;</publisher>
368      <info name="magazine" value="Hebdogiciel 36" />
369      <info name="release" value="19840615" />
370      <info name="author" value="O. Beranger" />
371      <part name="cass" interface="x07_cass">
372         <dataarea name="cass" size="1942">
373            <rom name="chenille.cas" size="1942" crc="06422b4a" sha1="8f2ee920d3b7beb3238543b0fac977401549feff" offset="0" />
374         </dataarea>
375      </part>
376   </software>
377
378   <software name="lancelot">
379      <description>Chevalier Lancelot. (Fra)</description>
380      <year>1984</year>
381      <publisher>&lt;type-in&gt;</publisher>
382      <info name="magazine" value="Hebdogiciel 54" />
383      <info name="release" value="19841026" />
384      <info name="author" value="I. Hary" />
385      <part name="cass1" interface="x07_cass">
386         <dataarea name="cass" size="2478">
387            <rom name="cheva1_lancelot.cas" size="2478" crc="7ab67b9e" sha1="a32c41d92445006f04c29a8181bbaee0511d9c8b" offset="0" />
388         </dataarea>
389      </part>
390      <part name="cass2" interface="x07_cass">
391         <dataarea name="cass" size="7625">
392            <rom name="cheva2_lancelot.cas" size="7625" crc="40d296a8" sha1="add91d92f5a1dd231db86947250ded246a25b40e" offset="0" />
393         </dataarea>
394      </part>
395   </software>
396
397   <software name="chatmaud">
398      <description>Le Chateau Maudit (Fra)</description>
399      <year>1985</year>
400      <publisher>&lt;type-in&gt;</publisher>
401      <info name="magazine" value="Hebdogiciel 104" />
402      <info name="release" value="19851011" />
403      <info name="author" value="Emmanuel De Lapparent" />
404      <part name="cass1" interface="x07_cass">
405         <dataarea name="cass" size="4447">
406            <rom name="cm1_chateaumaudit.cas" size="4447" crc="043254fa" sha1="1e50e09acbf7265bf9674c8ef6d60a5c188cb991" offset="0" />
407         </dataarea>
408      </part>
409      <part name="cass2" interface="x07_cass">
410         <dataarea name="cass" size="6359">
411            <rom name="cm2_chateaumaudit.cas" size="6359" crc="7c696f3e" sha1="8b6b6b7a570a2b117d3673f58803f8f2ae34cc83" offset="0" />
412         </dataarea>
413      </part>
414   </software>
415
416   <software name="courbes">
417      <description>Courbes (Fra)</description>
418      <year>1986</year>
419      <publisher>&lt;type-in&gt;</publisher>
420      <info name="alt_title" value="TracĂ© de Courbe" />
421      <info name="magazine" value="Hebdogiciel 124" />
422      <info name="release" value="19860228" />
423      <info name="author" value="A. Nogues" />
424      <part name="cass" interface="x07_cass">
425         <dataarea name="cass" size="10185">
426            <rom name="courbes.cas" size="10185" crc="e30ceaa1" sha1="d6506ccdc1d60108856128b316d7df94f79f0505" offset="0" />
427         </dataarea>
428      </part>
429   </software>
430
431   <software name="defenser">
432      <description>Defenseur (Fra)</description>
433      <year>1984</year>
434      <publisher>&lt;type-in&gt;</publisher>
435      <info name="magazine" value="Hebdogiciel 55" />
436      <info name="release" value="19841102" />
437      <info name="author" value="G. Forest" />
438      <part name="cass" interface="x07_cass">
439         <dataarea name="cass" size="9975">
440            <rom name="defenseur.cas" size="9975" crc="cf0bace2" sha1="b7c8f8282f3da6aaabaaaad96a1d137bf6edbedf" offset="0" />
441         </dataarea>
442      </part>
443   </software>
444
445   <software name="desass">
446      <description>Desassembleur (Fra)</description>
447      <year>1986</year>
448      <publisher>&lt;type-in&gt;</publisher>
449      <info name="alt_title" value="Monit. DĂ©sassembleur" />
450      <info name="magazine" value="Hebdogiciel 117" />
451      <info name="release" value="19860110" />
452      <info name="author" value="Y. E. Proy" />
453      <part name="cass" interface="x07_cass">
454         <dataarea name="cass" size="4639">
455            <rom name="desass.cas" size="4639" crc="ae98dba9" sha1="d3b13a0d181295366c51bc07cba8d69770e47a8a" offset="0" />
456         </dataarea>
457      </part>
458   </software>
459
460   <software name="desasm">
461      <description>DESASS-ASM (Fra)</description>
462      <year>1986</year>
463      <publisher>&lt;type-in&gt;</publisher>
464      <info name="magazine" value="Hebdogiciel 162-164" />
465      <info name="release" value="19861121" />
466      <info name="author" value="Emmanuel De Lapparent" />
467      <part name="cass1" interface="x07_cass">
468         <dataarea name="cass" size="191">
469            <rom name="desassembleur[loader].cas" size="191" crc="beff77d6" sha1="bb2d3f4de3a3d0c2faecff21effa058c61ecafa9" offset="0" />
470         </dataarea>
471      </part>
472      <part name="cass2" interface="x07_cass">
473         <dataarea name="cass" size="2317">
474            <rom name="desassembleur[codes].cas" size="2317" crc="5559879b" sha1="6c42a850aeed5d61308ef55d2cc86eb7f5ab97ef" offset="0" />
475         </dataarea>
476      </part>
477   </software>
478
479   <software name="destruct">
480      <description>Destruction (Fra)</description>
481      <year>1985</year>
482      <publisher>&lt;type-in&gt;</publisher>
483      <info name="magazine" value="Hebdogiciel 101" />
484      <info name="release" value="19850920" />
485      <info name="author" value="F. Fargeot" />
486      <part name="cass1" interface="x07_cass">
487         <dataarea name="cass" size="2318">
488            <rom name="destr1_destruction.cas" size="2318" crc="7e383541" sha1="104db3a013b2bec3df6999edaa19eaa1260de1de" offset="0" />
489         </dataarea>
490      </part>
491      <part name="cass2" interface="x07_cass">
492         <dataarea name="cass" size="5488">
493            <rom name="destr2_destruction.cas" size="5488" crc="3d2ed37c" sha1="f78e7940a515c6d4b6e93afcee47fe5a91743886" offset="0" />
494         </dataarea>
495      </part>
496      <part name="cass3" interface="x07_cass">
497         <dataarea name="cass" size="4805">
498            <rom name="destr3_destruction.cas" size="4805" crc="d9860e13" sha1="455f612d1e9eecf0c3c7a3d6f33ce2af35c6d52e" offset="0" />
499         </dataarea>
500      </part>
501   </software>
502
503   <software name="donjon">
504      <description>Donjon (Fra)</description>
505      <year>1984</year>
506      <publisher>&lt;type-in&gt;</publisher>
507      <info name="magazine" value="Hebdogiciel 28" />
508      <info name="release" value="19840420" />
509      <info name="author" value="I. Hary" />
510      <part name="cass" interface="x07_cass">
511         <dataarea name="cass" size="5617">
512            <rom name="donjon.cas" size="5617" crc="2f6103d1" sha1="bd869c8164b2813ab6dda9b63e2bf28b911db65d" offset="0" />
513         </dataarea>
514      </part>
515   </software>
516
517   <software name="edf">
518      <description>E.D.F. (Fra)</description>
519      <year>1985</year>
520      <publisher>&lt;type-in&gt;</publisher>
521      <info name="magazine" value="Hebdogiciel 99" />
522      <info name="release" value="19850906" />
523      <info name="author" value="M. Bollaert" />
524      <part name="cass1" interface="x07_cass">
525         <dataarea name="cass" size="2136">
526            <rom name="edf1.cas" size="2136" crc="e3101e24" sha1="aef2bae2382e2ed1ba3aab3f6d5dbc312000c5ed" offset="0" />
527         </dataarea>
528      </part>
529      <part name="cass2" interface="x07_cass">
530         <dataarea name="cass" size="14334">
531            <rom name="edf2.cas" size="14334" crc="3c600f67" sha1="5fb93f970847b8df2109cd604495f9feff4d4c89" offset="0" />
532         </dataarea>
533      </part>
534   </software>
535
536   <software name="eudipe">
537      <description>Eudipe (Fra)</description>
538      <year>1985</year>
539      <publisher>&lt;type-in&gt;</publisher>
540      <info name="magazine" value="Hebdogiciel 72" />
541      <info name="release" value="19850301" />
542      <info name="author" value="Stephane Shirvanian" />
543      <part name="cass" interface="x07_cass">
544         <dataarea name="cass" size="4708">
545            <rom name="eudipe.cas" size="4708" crc="3416daf4" sha1="1fcf066ec54bac4851a27d100174ee7ef31e2359" offset="0" />
546         </dataarea>
547      </part>
548   </software>
549
550   <software name="fifine">
551      <description>Fifine la Tortue (Fra)</description>
552      <year>1984</year>
553      <publisher>&lt;type-in&gt;</publisher>
554      <info name="magazine" value="Hebdogiciel 60" />
555      <info name="release" value="19841207" />
556      <info name="author" value="B. Rouleau" />
557      <part name="cass" interface="x07_cass">
558         <dataarea name="cass" size="6001">
559            <rom name="fifine la tortue.cas" size="6001" crc="de092ba4" sha1="3f788248cc5e18f1db34f522a25b14a268b7dae5" offset="0" />
560         </dataarea>
561      </part>
562   </software>
563
564   <software name="finances">
565      <description>Finances (Fra)</description>
566      <year>1984</year>
567      <publisher>&lt;type-in&gt;</publisher>
568      <info name="magazine" value="Hebdogiciel 61" />
569      <info name="release" value="19841214" />
570      <info name="author" value="C. Bureau" />
571      <part name="cass" interface="x07_cass">
572         <dataarea name="cass" size="5574">
573            <rom name="finances.cas" size="5574" crc="cd0992fe" sha1="48e4612b81a0c0daaeadaf5b15dc7daa9e88abb9" offset="0" />
574         </dataarea>
575      </part>
576   </software>
577
578   <software name="fontix">
579      <description>FONTIX+ (Fra)</description>
580      <year>1985</year>
581      <publisher>&lt;type-in&gt;</publisher>
582      <info name="magazine" value="Hebdogiciel 103" />
583      <info name="release" value="19851004" />
584      <info name="author" value="P. Diogo" />
585      <part name="cass" interface="x07_cass">
586         <dataarea name="cass" size="2803">
587            <rom name="fontix+_asm.cas" size="2803" crc="00c66e4c" sha1="ba8982331a4fb3c286720849d94584fd5cbc43bf" offset="0" />
588         </dataarea>
589      </part>
590   </software>
591
592   <software name="force8">
593      <description>Force 8 (Fra)</description>
594      <year>1984</year>
595      <publisher>&lt;type-in&gt;</publisher>
596      <info name="magazine" value="Hebdogiciel 57" />
597      <info name="release" value="19841116" />
598      <info name="author" value="M. Boucher" />
599      <part name="cass" interface="x07_cass">
600         <dataarea name="cass" size="9070">
601            <rom name="force8.cas" size="9070" crc="085272a4" sha1="c86a7fd6e37715e47588974aa36ea93d167957ca" offset="0" />
602         </dataarea>
603      </part>
604   </software>
605
606   <software name="f1">
607      <description>Formule 1 (Fra)</description>
608      <year>1986</year>
609      <publisher>&lt;type-in&gt;</publisher>
610      <info name="magazine" value="Hebdogiciel 129-131" />
611      <info name="release" value="19860404" />
612      <info name="author" value="A. Fousse" />
613      <part name="cass1" interface="x07_cass">
614         <dataarea name="cass" size="8029">
615            <rom name="formule1_loader.cas" size="8029" crc="ece2373c" sha1="fce835cbdb28d3b8d96748d05a430d117f5d4c36" offset="0" />
616         </dataarea>
617      </part>
618      <part name="cass2" interface="x07_cass">
619         <dataarea name="cass" size="10518">
620            <rom name="formule1_car3.cas" size="10518" crc="7f8e2d51" sha1="b1231a72baef84044b980dae848f196a4c79ec3e" offset="0" />
621         </dataarea>
622      </part>
623   </software>
624
625   <software name="france">
626      <description>France (Fra)</description>
627      <year>1984</year>
628      <publisher>&lt;type-in&gt;</publisher>
629      <info name="magazine" value="Hebdogiciel 15" />
630      <info name="release" value="19840120" />
631      <info name="author" value="C. Danes" />
632      <part name="cass" interface="x07_cass">
633         <dataarea name="cass" size="3154">
634            <rom name="france.cas" size="3154" crc="4d703f4e" sha1="8b57f83ffc62b872ab85ae5ef9bf5f8422475c28" offset="0" />
635         </dataarea>
636      </part>
637   </software>
638
639   <software name="genmusic">
640      <description>GĂ©nĂ©rateur Musical (Fra)</description>
641      <year>1984</year>
642      <publisher>&lt;type-in&gt;</publisher>
643      <info name="magazine" value="Hebdogiciel 47" />
644      <info name="release" value="19840907" />
645      <info name="author" value="P. Lotz" />
646      <part name="cass" interface="x07_cass">
647         <dataarea name="cass" size="2343">
648            <rom name="generateur musical.cas" size="2343" crc="4fab9406" sha1="2d7f96604680caba36fab49559f397d4508a7054" offset="0" />
649         </dataarea>
650      </part>
651   </software>
652
653<!-- OM ERROR -->
654   <software name="gcambri" supported="no">
655      <description>Gentleman Cambrioleur (Fra)</description>
656      <year>1985</year>
657      <publisher>&lt;type-in&gt;</publisher>
658      <info name="magazine" value="Hebdogiciel 90" />
659      <info name="release" value="19850705" />
660      <info name="author" value="S. Madrange" />
661      <part name="cass" interface="x07_cass">
662         <dataarea name="cass" size="14656">
663            <rom name="gentleman cambrioleur.cas" size="14656" crc="4bd81683" sha1="2a4d98470ae6f3a795cb797e89ded2cf74d6b2a7" offset="0" />
664         </dataarea>
665      </part>
666   </software>
667
668   <software name="minigolf">
669      <description>Golf Miniature (Fra)</description>
670      <year>1986</year>
671      <publisher>&lt;type-in&gt;</publisher>
672      <info name="magazine" value="Hebdogiciel 126" />
673      <info name="release" value="19860314" />
674      <info name="author" value="Philippe Desmartin" />
675      <part name="cass" interface="x07_cass">
676         <dataarea name="cass" size="5904">
677            <rom name="mini-golf.cas" size="5904" crc="6dc32653" sha1="a8393c9b4460087c7396e6a995c11527d23dc07e" offset="0" />
678         </dataarea>
679      </part>
680   </software>
681
682   <software name="ponts">
683      <description>Jeu de Ponts (Fra)</description>
684      <year>1986</year>
685      <publisher>&lt;type-in&gt;</publisher>
686      <info name="magazine" value="Hebdogiciel 132" />
687      <info name="release" value="19860425" />
688      <info name="author" value="F. M. Bollaert" />
689      <part name="cass" interface="x07_cass">
690         <dataarea name="cass" size="3498">
691            <rom name="ponts.cas" size="3498" crc="d11481d4" sha1="5628f66f185b7f21f52bd7690ad3efd32a35b374" offset="0" />
692         </dataarea>
693      </part>
694   </software>
695
696   <software name="jeuxhivr">
697      <description>Jeux d'Hiver (Fra)</description>
698      <year>1986</year>
699      <publisher>&lt;type-in&gt;</publisher>
700      <info name="magazine" value="Hebdogiciel 133" />
701      <info name="release" value="19860502" />
702      <info name="author" value="Emmanuel De Lapparent" />
703      <part name="cass1" interface="x07_cass">
704         <dataarea name="cass" size="4245">
705            <rom name="jeux olympiques d'hivers1.cas" size="4245" crc="71e0b058" sha1="e9314180607a52b6aedf8384a57144859327a084" offset="0" />
706         </dataarea>
707      </part>
708      <part name="cass2" interface="x07_cass">
709         <dataarea name="cass" size="6162">
710            <rom name="jeux olympiques d'hivers2.cas" size="6162" crc="1c479bac" sha1="ea5fefc11c0e5864c639bd7639c9e316b3575e41" offset="0" />
711         </dataarea>
712      </part>
713   </software>
714
715   <software name="joedkid">
716      <description>Joe Dalt'Kid (Fra)</description>
717      <year>1985</year>
718      <publisher>&lt;type-in&gt;</publisher>
719      <info name="magazine" value="Hebdogiciel 86-87" />
720      <info name="release" value="19850607" />
721      <info name="author" value="P. Fagnant" />
722      <part name="cass1" interface="x07_cass">
723         <dataarea name="cass" size="4008">
724            <rom name="joe1_joe dalt'kid.cas" size="4008" crc="65523d35" sha1="f3c4a832cdfef89768f00ea0baeee98aeb047033" offset="0" />
725         </dataarea>
726      </part>
727      <part name="cass2" interface="x07_cass">
728         <dataarea name="cass" size="6289">
729            <rom name="joe2_joe dalt'kid.cas" size="6289" crc="f1177d7f" sha1="cf64a88d8763d5e70e9bd7635a97bdcd67b14d16" offset="0" />
730         </dataarea>
731      </part>
732   </software>
733
734   <software name="judoka">
735      <description>Judoka (Fra)</description>
736      <year>1986</year>
737      <publisher>&lt;type-in&gt;</publisher>
738      <info name="magazine" value="Hebdogiciel 128" />
739      <info name="release" value="19860328" />
740      <info name="author" value="Pierre Dor" />
741      <part name="cass" interface="x07_cass">
742         <dataarea name="cass" size="6151">
743            <rom name="judoka.cas" size="6151" crc="85221b8e" sha1="2992b9e7887099034e462e9ef7190a46820fd840" offset="0" />
744         </dataarea>
745      </part>
746   </software>
747
748   <software name="jump">
749      <description>Jump (Fra)</description>
750      <year>1984</year>
751      <publisher>&lt;type-in&gt;</publisher>
752      <info name="magazine" value="Hebdogiciel 50" />
753      <info name="release" value="19840928" />
754      <info name="author" value="F. Trancart" />
755      <part name="cass" interface="x07_cass">
756         <dataarea name="cass" size="5293">
757            <rom name="jump.cas" size="5293" crc="1283d8a1" sha1="11d2fd1476898771bac0f4bfecd6cbf14b28324b" offset="0" />
758         </dataarea>
759      </part>
760   </software>
761
762   <software name="keyprog">
763      <description>Key Programmer (Fra)</description>
764      <year>1986</year>
765      <publisher>&lt;type-in&gt;</publisher>
766      <info name="magazine" value="Hebdogiciel 134" />
767      <info name="release" value="19860509" />
768      <info name="author" value="A. Jacquot" />
769      <part name="cass" interface="x07_cass">
770         <dataarea name="cass" size="3681">
771            <rom name="key programmer.cas" size="3681" crc="87a59f55" sha1="d16deda00b3ed76345a61f2842e82cada5e0e902" offset="0" />
772         </dataarea>
773      </part>
774   </software>
775
776   <software name="labyr">
777      <description>LABYR (Fra)</description>
778      <year>1984</year>
779      <publisher>&lt;type-in&gt;</publisher>
780      <info name="magazine" value="Hebdogiciel 32" />
781      <info name="release" value="19840518" />
782      <info name="author" value="F. Benoist" />
783      <part name="cass" interface="x07_cass">
784         <dataarea name="cass" size="2592">
785            <rom name="labyr.cas" size="2592" crc="6200bdad" sha1="91b75344e87b8ea9385a1cd70f1183fcad35a720" offset="0" />
786         </dataarea>
787      </part>
788   </software>
789
790   <software name="liaisons">
791      <description>Liaisons (Fra)</description>
792      <year>1985</year>
793      <publisher>&lt;type-in&gt;</publisher>
794      <info name="magazine" value="Hebdogiciel 87" />
795      <info name="release" value="19850614" />
796      <info name="author" value="C. Flores" />
797      <part name="cass" interface="x07_cass">
798         <dataarea name="cass" size="6212">
799            <rom name="liaisons.cas" size="6212" crc="1865efb1" sha1="4c63c50be58cacc85d8e55cc7a8dd52361b3ae7b" offset="0" />
800         </dataarea>
801      </part>
802   </software>
803
804   <software name="lion">
805      <description>Lion (Fra)</description>
806      <year>1985</year>
807      <publisher>&lt;type-in&gt;</publisher>
808      <info name="magazine" value="Hebdogiciel 76" />
809      <info name="release" value="19850329" />
810      <info name="author" value="Emmanuel Lecharny" />
811      <part name="cass" interface="x07_cass">
812         <dataarea name="cass" size="5402">
813            <rom name="lion.cas" size="5402" crc="610d18ca" sha1="ea0d5126fc20d6877fb73af91a11c3d95ac64cb5" offset="0" />
814         </dataarea>
815      </part>
816   </software>
817
818   <software name="luckyjoe">
819      <description>Lucky Joe (Fra)</description>
820      <year>1985</year>
821      <publisher>&lt;type-in&gt;</publisher>
822      <info name="magazine" value="Hebdogiciel 80" />
823      <info name="release" value="19850426" />
824      <info name="author" value="M. Salaum" />
825      <part name="cass" interface="x07_cass">
826         <dataarea name="cass" size="4864">
827            <rom name="lucky joe.cas" size="4864" crc="a6c45719" sha1="6d8468290ca15aea374c79f8c56663bcdad5bdb6" offset="0" />
828         </dataarea>
829      </part>
830   </software>
831
832   <software name="math">
833      <description>MathĂ©matiques (Fra)</description>
834      <year>1985</year>
835      <publisher>&lt;type-in&gt;</publisher>
836      <info name="magazine" value="Hebdogiciel 75" />
837      <info name="release" value="19850322" />
838      <part name="cass" interface="x07_cass">
839         <dataarea name="cass" size="12569">
840            <rom name="mathematiques.cas" size="12569" crc="1f634d41" sha1="c647020112d53434894eeed50739135ddbc70771" offset="0" />
841         </dataarea>
842      </part>
843   </software>
844
845   <software name="mines">
846      <description>Mines (Fra)</description>
847      <year>1986</year>
848      <publisher>&lt;type-in&gt;</publisher>
849      <info name="magazine" value="Hebdogiciel 121" />
850      <info name="release" value="19860207" />
851      <info name="author" value="S. Guiochon" />
852      <part name="cass" interface="x07_cass">
853         <dataarea name="cass" size="4611">
854            <rom name="mines.cas" size="4611" crc="d3bdd399" sha1="c41455447d337db79177e4345d6fdc8aa49055cf" offset="0" />
855         </dataarea>
856      </part>
857   </software>
858
859   <software name="minigeo">
860      <description>Mini-GĂ©o (Fra)</description>
861      <year>1985</year>
862      <publisher>&lt;type-in&gt;</publisher>
863      <info name="magazine" value="Hebdogiciel 81" />
864      <info name="release" value="19850503" />
865      <info name="author" value="Philippe Desmartin" />
866      <part name="cass" interface="x07_cass">
867         <dataarea name="cass" size="7315">
868            <rom name="mini-geographe.cas" size="7315" crc="c7e9aa4a" sha1="0eaf1bf43f93949412319eec4903798807d214b1" offset="0" />
869         </dataarea>
870      </part>
871   </software>
872
873   <software name="multigrp">
874      <description>Multigraph (Fra)</description>
875      <year>1985</year>
876      <publisher>&lt;type-in&gt;</publisher>
877      <info name="magazine" value="Hebdogiciel 85" />
878      <info name="release" value="19850531" />
879      <info name="author" value="Olivier Faugeras" />
880      <part name="cass" interface="x07_cass">
881         <dataarea name="cass" size="6491">
882            <rom name="multigraph.cas" size="6491" crc="1f413ac2" sha1="ec7ffa7fe34d7cad11e851beb6baa28c603c5d71" offset="0" />
883         </dataarea>
884      </part>
885   </software>
886
887   <software name="musicmak">
888      <description>Music Maker (Fra)</description>
889      <year>1986</year>
890      <publisher>&lt;type-in&gt;</publisher>
891      <info name="magazine" value="Hebdogiciel 141" />
892      <info name="release" value="19860627" />
893      <info name="author" value="S. Friedelmeyer" />
894      <part name="cass1" interface="x07_cass">
895         <dataarea name="cass" size="6738">
896            <rom name="music1 maker.cas" size="6738" crc="5e315fca" sha1="d178d5bfed16f49393b8ad66893d872f57920f57" offset="0" />
897         </dataarea>
898      </part>
899      <part name="cass2" interface="x07_cass">
900         <dataarea name="cass" size="4566">
901            <rom name="music2 maker.cas" size="4566" crc="65935eae" sha1="3016e51310bae5d97a0665bd8cc0a065d63f2e78" offset="0" />
902         </dataarea>
903      </part>
904   </software>
905
906   <software name="pacman">
907      <description>Pac-Man (Fra)</description>
908      <year>1984</year>
909      <publisher>&lt;type-in&gt;</publisher>
910      <info name="alt_title" value="Bacman" />
911      <info name="magazine" value="Hebdogiciel 58" />
912      <info name="release" value="19841123" />
913      <info name="author" value="S. Doczekaski" />
914      <part name="cass" interface="x07_cass">
915         <dataarea name="cass" size="3873">
916            <rom name="bacman.cas" size="3873" crc="618431f1" sha1="8357e1aed5b9e116caf0939c7bdf48b29a17e7ac" offset="0" />
917         </dataarea>
918      </part>
919   </software>
920
921   <software name="panicbnk">
922      <description>Panic Bank (Fra)</description>
923      <year>1985</year>
924      <publisher>&lt;type-in&gt;</publisher>
925      <info name="magazine" value="Hebdogiciel 89" />
926      <info name="release" value="19850628" />
927      <info name="author" value="E. Capellari" />
928      <part name="cass1" interface="x07_cass">
929         <dataarea name="cass" size="1932">
930            <rom name="panic1 bank.cas" size="1932" crc="b287bed7" sha1="dfaf30c541654b0a220e88b152c52ada5ab35ec6" offset="0" />
931         </dataarea>
932      </part>
933      <part name="cass2" interface="x07_cass">
934         <dataarea name="cass" size="5268">
935            <rom name="panic2 bank.cas" size="5268" crc="9c595c9f" sha1="dd069484435482ae1845a063dffab6b488c6ca8d" offset="0" />
936         </dataarea>
937      </part>
938   </software>
939
940   <software name="patrolsp">
941      <description>Patrouilleur de l'Espace (Fra)</description>
942      <year>1984</year>
943      <publisher>&lt;type-in&gt;</publisher>
944      <info name="magazine" value="Hebdogiciel 52" />
945      <info name="release" value="19841012" />
946      <info name="author" value="X. Vannerau" />
947      <part name="cass1" interface="x07_cass">
948         <dataarea name="cass" size="2317">
949            <rom name="patr1_patrouilleur de l espace.cas" size="2317" crc="7a3d1252" sha1="3a6e3b2780230c2ff2fa72cb48b1c8ea6b9c194c" offset="0" />
950         </dataarea>
951      </part>
952      <part name="cass2" interface="x07_cass">
953         <dataarea name="cass" size="6067">
954            <rom name="patr2_patrouilleur de l espace.cas" size="6067" crc="b60b25c1" sha1="28d09765da024a815ae905bcb297f86b3e30c4a1" offset="0" />
955         </dataarea>
956      </part>
957   </software>
958
959   <software name="pinup">
960      <description>Pin-Up (Fra)</description>
961      <year>1986</year>
962      <publisher>&lt;type-in&gt;</publisher>
963      <info name="magazine" value="Hebdogiciel 119-120" />
964      <info name="release" value="19860124" />
965      <info name="author" value="Philippe Desmartin" />
966      <part name="cass" interface="x07_cass">
967         <dataarea name="cass" size="13091">
968            <rom name="pin-up.cas" size="13091" crc="e9c72785" sha1="477dc6603142fb3649dad9464d022933d6f313c1" offset="0" />
969         </dataarea>
970      </part>
971   </software>
972
973   <software name="piste">
974      <description>Piste (Fra)</description>
975      <year>1984</year>
976      <publisher>&lt;type-in&gt;</publisher>
977      <info name="magazine" value="Hebdogiciel 49" />
978      <info name="release" value="19840921" />
979      <info name="author" value="C. Peletier" />
980      <part name="cass" interface="x07_cass">
981         <dataarea name="cass" size="1391">
982            <rom name="piste.cas" size="1391" crc="20c4ce2c" sha1="d9a93b119ddd3a23ae893c5fac6d51314659e341" offset="0" />
983         </dataarea>
984      </part>
985   </software>
986
987   <software name="prixdang">
988      <description>Le Prix du Danger (Fra)</description>
989      <year>1984</year>
990      <publisher>&lt;type-in&gt;</publisher>
991      <info name="magazine" value="Hebdogiciel 46" />
992      <info name="release" value="19840831" />
993      <info name="author" value="F. Bernez" />
994      <part name="cass" interface="x07_cass">
995         <dataarea name="cass" size="5895">
996            <rom name="le prix du danger.cas" size="5895" crc="5bd08843" sha1="e8ef2fc908a1bbedd0ccc182cb78ab305c29202f" offset="0" />
997         </dataarea>
998      </part>
999   </software>
1000
1001   <software name="puzzle">
1002      <description>Puzzle (Fra)</description>
1003      <year>1984</year>
1004      <publisher>&lt;type-in&gt;</publisher>
1005      <info name="magazine" value="Hebdogiciel 53" />
1006      <info name="release" value="19841019" />
1007      <info name="author" value="E. Lapouyade" />
1008      <part name="cass" interface="x07_cass">
1009         <dataarea name="cass" size="6357">
1010            <rom name="puzzle.cas" size="6357" crc="f878e0b6" sha1="0e8bfe129ba42abbace0fd63ec5206d3c263c7b0" offset="0" />
1011         </dataarea>
1012      </part>
1013   </software>
1014
1015   <software name="rdv">
1016      <description>Rendez-Vous (Fra)</description>
1017      <year>1986</year>
1018      <publisher>&lt;type-in&gt;</publisher>
1019      <info name="magazine" value="Hebdogiciel 146" />
1020      <info name="release" value="198608xx" />
1021      <info name="author" value="J. L. Vitre" />
1022      <part name="cass1" interface="x07_cass">
1023         <dataarea name="cass" size="3439">
1024            <rom name="rendez-vous1.cas" size="3439" crc="5624de8e" sha1="b36b088335699bb6b3eb0f0762496d8d444eaffd" offset="0" />
1025         </dataarea>
1026      </part>
1027      <part name="cass2" interface="x07_cass">
1028         <dataarea name="cass" size="12168">
1029            <rom name="rendez-vous2.cas" size="12168" crc="654836c9" sha1="8d52f3694267b38aa0341da994ecbd021ff16f14" offset="0" />
1030         </dataarea>
1031      </part>
1032   </software>
1033
1034   <software name="renum">
1035      <description>Renum Auto (Fra)</description>
1036      <year>1986</year>
1037      <publisher>&lt;type-in&gt;</publisher>
1038      <info name="magazine" value="Hebdogiciel 154" />
1039      <info name="release" value="19861010" />
1040      <info name="author" value="R. Santini" />
1041      <part name="cass" interface="x07_cass">
1042         <dataarea name="cass" size="1816">
1043            <rom name="renumauto.cas" size="1816" crc="cf404520" sha1="2801cf02ccb435f00b545ac8283ab575a5a3b0de" offset="0" />
1044         </dataarea>
1045      </part>
1046   </software>
1047
1048   <software name="runner">
1049      <description>Runner (Fra)</description>
1050      <year>1985</year>
1051      <publisher>&lt;type-in&gt;</publisher>
1052      <info name="magazine" value="Hebdogiciel 100" />
1053      <info name="release" value="19850913" />
1054      <info name="author" value="M. Marciacq" />
1055      <part name="cass" interface="x07_cass">
1056         <dataarea name="cass" size="9044">
1057            <rom name="runner.cas" size="9044" crc="55fc5340" sha1="2a96fc3e60594a44d1c8d11132e8239bec1c5a4b" offset="0" />
1058         </dataarea>
1059      </part>
1060   </software>
1061
1062<!-- OM ERROR -->
1063   <software name="sante7" supported="no">
1064      <description>Sante7 (Fra)</description>
1065      <year>1985</year>
1066      <publisher>&lt;type-in&gt;</publisher>
1067      <info name="magazine" value="Hebdogiciel 78" />
1068      <info name="release" value="19850412" />
1069      <info name="author" value="F. Costa Dos Santos" />
1070      <part name="cass" interface="x07_cass">
1071         <dataarea name="cass" size="13903">
1072            <rom name="sante7.cas" size="13903" crc="b1ae8127" sha1="9ff5feb84968596e901874c8b4cc8635efc127f6" offset="0" />
1073         </dataarea>
1074      </part>
1075   </software>
1076
1077   <software name="seawart">
1078      <description>Sea War (Fra, Trancart)</description>
1079      <year>1985</year>
1080      <publisher>&lt;type-in&gt;</publisher>
1081      <info name="magazine" value="Hebdogiciel 71" />
1082      <info name="release" value="19850222" />
1083      <info name="author" value="F. Trancart" />
1084      <part name="cass1" interface="x07_cass">
1085         <dataarea name="cass" size="2823">
1086            <rom name="seawar 1_loader.cas" size="2823" crc="ec39ba2c" sha1="58814335387a9bfabe13c9953cc8f22f86e89f05" offset="0" />
1087         </dataarea>
1088      </part>
1089      <part name="cass2" interface="x07_cass">
1090         <dataarea name="cass" size="4910">
1091            <rom name="seawar 1.cas" size="4910" crc="8bf81881" sha1="b5f5d4d63d109b1d941655dd9c52ca70b2c3e535" offset="0" />
1092         </dataarea>
1093      </part>
1094   </software>
1095
1096   <software name="seawarj">
1097      <description>SeaWar (Fra, Jorden)</description>
1098      <year>1986</year>
1099      <publisher>&lt;type-in&gt;</publisher>
1100      <info name="magazine" value="Hebdogiciel 165-167" />
1101      <info name="release" value="19861212" />
1102      <info name="author" value="F. X. Jorden" />
1103      <part name="cass1" interface="x07_cass">
1104         <dataarea name="cass" size="6857">
1105            <rom name="seawar_presentation_l1.cas" size="6857" crc="679ff2f6" sha1="d4c427ccfb35d98be7338a003bec6fdb40e94331" offset="0" />
1106         </dataarea>
1107      </part>
1108      <part name="cass2" interface="x07_cass">
1109         <dataarea name="cass" size="12644">
1110            <rom name="seawar_seawar_l2.cas" size="12644" crc="bebef275" sha1="51bbb5a6d2375ae3c2aa52b4c921f32e2d67b2c2" offset="0" />
1111         </dataarea>
1112      </part>
1113   </software>
1114
1115   <software name="serpent">
1116      <description>Serpentine (Fra)</description>
1117      <year>1985</year>
1118      <publisher>&lt;type-in&gt;</publisher>
1119      <info name="magazine" value="Hebdogiciel 115" />
1120      <info name="release" value="19851227" />
1121      <info name="author" value="F. Vacher" />
1122      <part name="cass1" interface="x07_cass">
1123         <dataarea name="cass" size="4818">
1124            <rom name="serpentine_loader.cas" size="4818" crc="ced74fd6" sha1="18723d2e7393f6b97e52905491e9708121d32725" offset="0" />
1125         </dataarea>
1126      </part>
1127      <part name="cass2" interface="x07_cass">
1128         <dataarea name="cass" size="615">
1129            <rom name="serpentine_auto_datas.cas" size="615" crc="328c035e" sha1="81159c395c87fe4ecd37fae6864311bcb7969b86" offset="0" />
1130         </dataarea>
1131      </part>
1132   </software>
1133
1134   <software name="sorcmaud">
1135      <description>Le Sorcier Maudit (Fra)</description>
1136      <year>1986</year>
1137      <publisher>&lt;type-in&gt;</publisher>
1138      <info name="magazine" value="Hebdogiciel 160-161" />
1139      <info name="release" value="19861107" />
1140      <info name="author" value="Emmanuel De Lapparent" />
1141      <part name="cass1" interface="x07_cass">
1142         <dataarea name="cass" size="6104">
1143            <rom name="le sorcier maudit1.cas" size="6104" crc="99f96d33" sha1="789be9860b0562c2128c2deca2a7310a17da29d0" offset="0" />
1144         </dataarea>
1145      </part>
1146      <part name="cass2" interface="x07_cass">
1147         <dataarea name="cass" size="10157">
1148            <rom name="le sorcier maudit2.cas" size="10157" crc="60cfd3ab" sha1="2917f6e6e64df4cb18f0ffb8791272af454bb1ea" offset="0" />
1149         </dataarea>
1150      </part>
1151   </software>
1152
1153   <software name="space">
1154      <description>Space (Fra)</description>
1155      <year>1985</year>
1156      <publisher>&lt;type-in&gt;</publisher>
1157      <info name="magazine" value="Hebdogiciel 94" />
1158      <info name="release" value="198508xx" />
1159      <info name="author" value="J. M. Joudrier" />
1160      <part name="cass" interface="x07_cass">
1161         <dataarea name="cass" size="6018">
1162            <rom name="space.cas" size="6018" crc="99a8b56e" sha1="2011713b7f0968759b020e874a595d9bcc004651" offset="0" />
1163         </dataarea>
1164      </part>
1165   </software>
1166
1167   <software name="spacepan">
1168      <description>Space-Panic (Fra)</description>
1169      <year>1985</year>
1170      <publisher>&lt;type-in&gt;</publisher>
1171      <info name="magazine" value="Hebdogiciel 92" />
1172      <info name="release" value="19850719" />
1173      <info name="author" value="H. Cimadomo" />
1174      <part name="cass1" interface="x07_cass">
1175         <dataarea name="cass" size="1121">
1176            <rom name="panik1_space panik.cas" size="1121" crc="d558063d" sha1="5015e73cb00cb7f1dd32e2b3b67791cc2e4bbdd0" offset="0" />
1177         </dataarea>
1178      </part>
1179      <part name="cass2" interface="x07_cass">
1180         <dataarea name="cass" size="4943">
1181            <rom name="panik2_space panik.cas" size="4943" crc="9cb639b5" sha1="bf3a208b751294ccfc76b69a294f7eec9ea74558" offset="0" />
1182         </dataarea>
1183      </part>
1184      <part name="cass3" interface="x07_cass">
1185         <dataarea name="cass" size="3985">
1186            <rom name="panik3_space panik.cas" size="3985" crc="4feb422c" sha1="ae3bec50e6a6e6546f3df5b999e952f2aab16bcf" offset="0" />
1187         </dataarea>
1188      </part>
1189   </software>
1190
1191   <software name="starwar">
1192      <description>Star-War (Fra)</description>
1193      <year>1984</year>
1194      <publisher>&lt;type-in&gt;</publisher>
1195      <info name="magazine" value="Hebdogiciel 30" />
1196      <info name="release" value="19840504" />
1197      <info name="author" value="Y. Burgalieres" />
1198      <part name="cass" interface="x07_cass">
1199         <dataarea name="cass" size="5406">
1200            <rom name="starwar.cas" size="5406" crc="87d68cbb" sha1="e59eb2b9733f0d8b5e9532a086f160ede1011430" offset="0" />
1201         </dataarea>
1202      </part>
1203   </software>
1204
1205<!-- FC ERROR -->
1206   <software name="stat" supported="no">
1207      <description>Stat (Fra)</description>
1208      <year>1984</year>
1209      <publisher>&lt;type-in&gt;</publisher>
1210      <info name="magazine" value="Hebdogiciel 24" />
1211      <info name="release" value="19840323" />
1212      <info name="author" value="F. Berthet" />
1213      <part name="cass" interface="x07_cass">
1214         <dataarea name="cass" size="2096">
1215            <rom name="stat.cas" size="2096" crc="3f117b61" sha1="b218de49081c4ede7885da412c79bcf625065eb7" offset="0" />
1216         </dataarea>
1217      </part>
1218   </software>
1219
1220   <software name="stripx07">
1221      <description>Strip X07 (Fra)</description>
1222      <year>1986</year>
1223      <publisher>&lt;type-in&gt;</publisher>
1224      <info name="magazine" value="Hebdogiciel 116" />
1225      <info name="release" value="19860103" />
1226      <info name="author" value="C. Marguet" />
1227      <part name="cass" interface="x07_cass">
1228         <dataarea name="cass" size="11693">
1229            <rom name="strip x07.cas" size="11693" crc="34f2320f" sha1="ba2e8b82f2452a8ad1b6a19f3bb0dafd83bae802" offset="0" />
1230         </dataarea>
1231      </part>
1232   </software>
1233
1234   <software name="supglout">
1235      <description>Super Glouton (Fra)</description>
1236      <year>1985</year>
1237      <publisher>&lt;type-in&gt;</publisher>
1238      <info name="magazine" value="Hebdogiciel 84" />
1239      <info name="release" value="19850524" />
1240      <info name="author" value="J. Chauvin" />
1241      <part name="cass1" interface="x07_cass">
1242         <dataarea name="cass" size="2243">
1243            <rom name="super1_loader.cas" size="2243" crc="ab55c3f3" sha1="bf9d44f3ba25caa67c948c128607d6a19c828b62" offset="0" />
1244         </dataarea>
1245      </part>
1246      <part name="cass2" interface="x07_cass">
1247         <dataarea name="cass" size="5187">
1248            <rom name="super2_super glouton.cas" size="5187" crc="4fe78828" sha1="9d4219d830062a4a3161547744cc79136f7e6560" offset="0" />
1249         </dataarea>
1250      </part>
1251   </software>
1252
1253   <software name="synth">
1254      <description>SynthĂ©tiseur (Fra)</description>
1255      <year>1985</year>
1256      <publisher>&lt;type-in&gt;</publisher>
1257      <info name="magazine" value="Hebdogiciel 77" />
1258      <info name="release" value="19850405" />
1259      <info name="author" value="S. Madrange" />
1260      <part name="cass" interface="x07_cass">
1261         <dataarea name="cass" size="5288">
1262            <rom name="synthetiseur.cas" size="5288" crc="7b4760a8" sha1="b5d43b28b432c1774e641eb8aed93799f20aa0cc" offset="0" />
1263         </dataarea>
1264      </part>
1265   </software>
1266
1267   <software name="temple">
1268      <description>Temple (Fra)</description>
1269      <year>1984</year>
1270      <publisher>&lt;type-in&gt;</publisher>
1271      <info name="magazine" value="Hebdogiciel 38" />
1272      <info name="release" value="19840629" />
1273      <info name="author" value="P. Leon" />
1274      <part name="cass" interface="x07_cass">
1275         <dataarea name="cass" size="3249">
1276            <rom name="temple.cas" size="3249" crc="79c08cc7" sha1="adf2cc98258f731281dbcbf042ac897f75eb1e24" offset="0" />
1277         </dataarea>
1278      </part>
1279   </software>
1280
1281   <software name="tictacto">
1282      <description>Tic-Tac-Toe (Fra)</description>
1283      <year>1985</year>
1284      <publisher>&lt;type-in&gt;</publisher>
1285      <info name="alt_title" value="Tridi 4" />
1286      <info name="magazine" value="Hebdogiciel 67" />
1287      <info name="release" value="19850125" />
1288      <info name="author" value="C. Gautier" />
1289      <part name="cass" interface="x07_cass">
1290         <dataarea name="cass" size="4948">
1291            <rom name="tridi4.cas" size="4948" crc="c95fb36a" sha1="f2062db2fe281c22c0b99f7e664035f337bdb618" offset="0" />
1292         </dataarea>
1293      </part>
1294   </software>
1295
1296   <software name="tron">
1297      <description>Tron (Fra)</description>
1298      <year>1984</year>
1299      <publisher>&lt;type-in&gt;</publisher>
1300      <info name="magazine" value="Hebdogiciel 51" />
1301      <info name="release" value="19841005" />
1302      <info name="author" value="Jean Spriet" />
1303      <part name="cass" interface="x07_cass">
1304         <dataarea name="cass" size="3224">
1305            <rom name="tron.cas" size="3224" crc="63ec9046" sha1="4bf08d39e8d7bd03fa056bb1967911fd8b54fc3e" offset="0" />
1306         </dataarea>
1307      </part>
1308   </software>
1309
1310   <software name="uboat">
1311      <description>U~Boat (Fra)</description>
1312      <year>1986</year>
1313      <publisher>&lt;type-in&gt;</publisher>
1314      <info name="magazine" value="Hebdogiciel 137" />
1315      <info name="release" value="19860530" />
1316      <info name="author" value="G. Combret" />
1317      <part name="cass" interface="x07_cass">
1318         <dataarea name="cass" size="3253">
1319            <rom name="uboat1.cas" size="3253" crc="bf7fcdb3" sha1="d55e91e7fef23c99cda9f9b94396c595bd81617c" offset="0" />
1320         </dataarea>
1321      </part>
1322   </software>
1323
1324   <software name="hommeabt">
1325      <description>Un Homme Ă  Abattre (Fra)</description>
1326      <year>1985</year>
1327      <publisher>&lt;type-in&gt;</publisher>
1328      <info name="magazine" value="Hebdogiciel 66" />
1329      <info name="release" value="19850118" />
1330      <info name="author" value="Cyril Giroux &amp; Denis Leluc" />
1331      <part name="cass" interface="x07_cass">
1332         <dataarea name="cass" size="12197">
1333            <rom name="un homme a abattre.cas" size="12197" crc="2b7d3490" sha1="1d5d696b0d58655492afe641725f7f63e9e60237" offset="0" />
1334         </dataarea>
1335      </part>
1336   </software>
1337
1338   <software name="x07car">
1339      <description>X07 CAR (Fra)</description>
1340      <year>1984</year>
1341      <publisher>&lt;type-in&gt;</publisher>
1342      <info name="magazine" value="Hebdogiciel 39" />
1343      <info name="release" value="19840706" />
1344      <info name="author" value="G. Bouquet" />
1345      <part name="cass" interface="x07_cass">
1346         <dataarea name="cass" size="1803">
1347            <rom name="x07car.cas" size="1803" crc="81cdfce6" sha1="e841ed70f7a10cda1d87b359be869b0473bcae28" offset="0" />
1348         </dataarea>
1349      </part>
1350   </software>
1351
1352   <software name="utils">
1353      <description>Utilitaires (Fra)</description>
1354      <year>1984</year>
1355      <publisher>&lt;type-in&gt;</publisher>
1356      <info name="magazine" value="Hebdogiciel 19" />
1357      <info name="release" value="19840217" />
1358      <info name="author" value="Bernard Dupin" />
1359      <part name="cass1" interface="x07_cass">
1360         <feature name="part_id" value="DIR" />
1361         <dataarea name="cass" size="289">
1362            <rom name="4utilitaires_dir.cas" size="289" crc="1884630b" sha1="b175b2e2271b92fbafecd3bb172924271eef1f7b" offset="0" />
1363         </dataarea>
1364      </part>
1365      <part name="cass2" interface="x07_cass">
1366         <feature name="part_id" value="DATEUR" />
1367         <dataarea name="cass" size="250">
1368            <rom name="4utilitaires_dateur.cas" size="250" crc="77b155ff" sha1="38f535eacbaf8e5cc5e0e6b435ab9c8e4dd9b24d" offset="0" />
1369         </dataarea>
1370      </part>
1371      <part name="cass3" interface="x07_cass">
1372         <feature name="part_id" value="NUMERO" />
1373         <dataarea name="cass" size="244">
1374            <rom name="4utilitaires_numero.cas" size="244" crc="24b49d0d" sha1="aaaf368ae838e7c948767782f4ff1b1958ccf5ff" offset="0" />
1375         </dataarea>
1376      </part>
1377      <part name="cass4" interface="x07_cass">
1378         <feature name="part_id" value="DATE" />
1379         <dataarea name="cass" size="278">
1380            <rom name="4utilitaires_date.cas" size="278" crc="f2840be8" sha1="ce75ecdd3e5cfdd87afbc563570e446d2a601090" offset="0" />
1381         </dataarea>
1382      </part>
1383   </software>
1384
1385</softwarelist>
trunk/makefile
r241777r241778
910910   $(CC) $(CDEFS) $(CFLAGS) -c $(SRC)/version.c -o $(VERSIONOBJ)
911911   @echo Linking $@...
912912ifeq ($(TARGETOS),emscripten)
913# Emscripten's linker seems to be stricter about the ordering of .a files
913   # Emscripten's linker seems to be stricter about the ordering of .a files
914914   $(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $(VERSIONOBJ) -Wl,--start-group $^ -Wl,--end-group $(LIBS) -o $@
915915else
916916   $(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $(VERSIONOBJ) $^ $(LIBS) -o $@
trunk/src/emu/bus/abckb/abc99.c
r241777r241778
4949    - verify cursor keys
5050    - language DIP
5151    - mouse
52    - investigate unknown ROMs
5253    - MCS-48 PC:01DC - Unimplemented opcode = 75
5354        - 75 = ENT0 CLK : enable CLK (unscaled_clock/3) output on T0
5455        - halt Z2 when Z5 is reset, resume Z2 when Z5 executes ENT0 CLK instruction
r241777r241778
8081//-------------------------------------------------
8182
8283ROM_START( abc99 )
83   ROM_DEFAULT_BIOS("107268")
84   ROM_SYSTEM_BIOS( 0, "107268", "107268-17" )
85   ROM_SYSTEM_BIOS( 1, "106819", "106819-09" )
84   ROM_REGION( 0x800, I8035_Z2_TAG, 0 )
85   ROM_LOAD( "107268-17.z3", 0x000, 0x800, CRC(2f60cc35) SHA1(ebc6af9cd0a49a0d01698589370e628eebb6221c) )
8686
87   ROM_REGION( 0x1000, I8035_Z2_TAG, 0 )
88   ROMX_LOAD( "107268-17.z3", 0x0000, 0x0800, CRC(2f60cc35) SHA1(ebc6af9cd0a49a0d01698589370e628eebb6221c), ROM_BIOS(1) )
89   ROMX_LOAD( "106819-09.z3", 0x0000, 0x1000, CRC(ffe32a71) SHA1(fa2ce8e0216a433f9bbad0bdd6e3dc0b540f03b7), ROM_BIOS(2) ) // ABC 99 6490423-01
90
9187   ROM_REGION( 0x800, I8035_Z5_TAG, 0 )
92   ROMX_LOAD( "107268-16.z6", 0x0000, 0x0800, CRC(785ec0c6) SHA1(0b261beae20dbc06fdfccc50b19ea48b5b6e22eb), ROM_BIOS(1) )
93   ROMX_LOAD( "107268-64.z6", 0x0000, 0x0800, CRC(e33683ae) SHA1(0c1d9e320f82df05f4804992ef6f6f6cd20623f3), ROM_BIOS(2) )
88   ROM_LOAD( "107268-16.z6", 0x000, 0x800, CRC(785ec0c6) SHA1(0b261beae20dbc06fdfccc50b19ea48b5b6e22eb) )
89
90   ROM_REGION( 0x1800, "unknown", 0)
91   ROM_LOAD( "106819-09.bin", 0x0000, 0x1000, CRC(ffe32a71) SHA1(fa2ce8e0216a433f9bbad0bdd6e3dc0b540f03b7) )
92   ROM_LOAD( "107268-64.bin", 0x1000, 0x0800, CRC(e33683ae) SHA1(0c1d9e320f82df05f4804992ef6f6f6cd20623f3) )
9493ROM_END
9594
9695
r241777r241778
109108//-------------------------------------------------
110109
111110static ADDRESS_MAP_START( abc99_z2_mem, AS_PROGRAM, 8, abc99_device )
112   AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION(I8035_Z2_TAG, 0)
111   AM_RANGE(0x0000, 0x07ff) AM_ROM AM_REGION(I8035_Z2_TAG, 0)
113112ADDRESS_MAP_END
114113
115114
r241777r241778
489488//  abc99_device - constructor
490489//-------------------------------------------------
491490
492abc99_device::abc99_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
493   device_t(mconfig, ABC99, "Luxor ABC 99", tag, owner, clock, "abc99", __FILE__),
494   abc_keyboard_interface(mconfig, *this),
495   m_maincpu(*this, I8035_Z2_TAG),
496   m_mousecpu(*this, I8035_Z5_TAG),
497   m_speaker(*this, "speaker"),
498   m_z14(*this, "Z14"),
499   m_mouseb(*this, "MOUSEB"),
500   m_si(1),
501   m_si_en(1),
502   m_so_z2(1),
503   m_so_z5(1),
504   m_keydown(0),
505   m_t1_z2(0),
506   m_t1_z5(0),
507   m_led_en(0),
508   m_reset(1),
509   m_txd(1)
491abc99_device::abc99_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
492   : device_t(mconfig, ABC99, "Luxor ABC 99", tag, owner, clock, "abc99", __FILE__),
493      abc_keyboard_interface(mconfig, *this),
494      m_maincpu(*this, I8035_Z2_TAG),
495      m_mousecpu(*this, I8035_Z5_TAG),
496      m_speaker(*this, "speaker"),
497      m_z14(*this, "Z14"),
498      m_mouseb(*this, "MOUSEB"),
499      m_si(1),
500      m_si_en(1),
501      m_so_z2(1),
502      m_so_z5(1),
503      m_keydown(0),
504      m_t1_z2(0),
505      m_t1_z5(0),
506      m_led_en(0),
507      m_reset(1),
508      m_txd(1)
510509{
511510}
512511
trunk/src/emu/bus/bus.mak
r241777r241778
333333BUSOBJS += $(BUSOBJ)/dmv/k220.o
334334BUSOBJS += $(BUSOBJ)/dmv/k230.o
335335BUSOBJS += $(BUSOBJ)/dmv/k233.o
336BUSOBJS += $(BUSOBJ)/dmv/k803.o
337336BUSOBJS += $(BUSOBJ)/dmv/k806.o
338337BUSOBJS += $(BUSOBJ)/dmv/ram.o
339338endif
r241777r241778
511510BUSOBJS += $(BUSOBJ)/isa/sc499.o
512511BUSOBJS += $(BUSOBJ)/isa/aga.o
513512BUSOBJS += $(BUSOBJ)/isa/svga_trident.o
514BUSOBJS += $(BUSOBJ)/isa/num9rev.o
515513endif
516514
517515#-------------------------------------------------
r241777r241778
991989
992990#-------------------------------------------------
993991#
994#@src/emu/bus/lpci/pci.h,BUSES += LPCI
992#@src/emu/bus/pci/pci.h,BUSES += PCI
995993#-------------------------------------------------
996994
997ifneq ($(filter LPCI,$(BUSES)),)
998OBJDIRS += $(BUSOBJ)/lpci
999BUSOBJS += $(BUSOBJ)/lpci/pci.o
1000BUSOBJS += $(BUSOBJ)/lpci/cirrus.o
1001BUSOBJS += $(BUSOBJ)/lpci/i82371ab.o
1002BUSOBJS += $(BUSOBJ)/lpci/i82371sb.o
1003BUSOBJS += $(BUSOBJ)/lpci/i82439tx.o
1004BUSOBJS += $(BUSOBJ)/lpci/northbridge.o
1005BUSOBJS += $(BUSOBJ)/lpci/southbridge.o
1006BUSOBJS += $(BUSOBJ)/lpci/mpc105.o
995ifneq ($(filter PCI,$(BUSES)),)
996OBJDIRS += $(BUSOBJ)/pci
997BUSOBJS += $(BUSOBJ)/pci/pci.o
998BUSOBJS += $(BUSOBJ)/pci/cirrus.o
999BUSOBJS += $(BUSOBJ)/pci/i82371ab.o
1000BUSOBJS += $(BUSOBJ)/pci/i82371sb.o
1001BUSOBJS += $(BUSOBJ)/pci/i82439tx.o
1002BUSOBJS += $(BUSOBJ)/pci/northbridge.o
1003BUSOBJS += $(BUSOBJ)/pci/southbridge.o
1004BUSOBJS += $(BUSOBJ)/pci/mpc105.o
10071005endif
10081006
10091007#-------------------------------------------------
trunk/src/emu/bus/cpc/cpcexp.h
r241777r241778
7878
7979   // reset
8080   virtual void cpc_reset_w() { };
81   virtual WRITE_LINE_MEMBER( cursor_w ) { };
8281
8382   void set_rom_bank(UINT8 sel) { m_rom_sel = sel; }  // tell device the currently selected ROM
8483   UINT8 get_rom_bank() { return m_rom_sel; }
r241777r241778
109108   DECLARE_WRITE_LINE_MEMBER( romdis_w );
110109
111110   void set_rom_bank(UINT8 sel) { if(m_card) m_card->set_rom_bank(sel); }  // tell device the currently selected ROM
112   DECLARE_WRITE_LINE_MEMBER( cursor_w ) { if(m_card) m_card->cursor_w(state); }  // pass on CRTC Cursor signal
113111
114112protected:
115113   // device-level overrides
trunk/src/emu/bus/cpc/playcity.c
r241777r241778
33
44   Z80 CTC
55   2x YMZ294 (clocks provided by CTC)
6
7   TODO:
8   IRQs aren't working currently, the Z80CTC core requires the daisy chain setup to acknowledge IRQs properly, and that can't be used in a slot device currently.
96*/
107
118#include "playcity.h"
r241777r241778
2118static MACHINE_CONFIG_FRAGMENT( cpc_playcity )
2219   MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_4MHz)
2320   MCFG_Z80CTC_ZC1_CB(WRITELINE(cpc_playcity_device,ctc_zc1_cb))
24   MCFG_Z80CTC_ZC2_CB(DEVWRITELINE("ctc",z80ctc_device,trg3))
25   MCFG_Z80CTC_INTR_CB(WRITELINE(cpc_playcity_device,ctc_intr_cb))
21   MCFG_Z80CTC_ZC2_CB(WRITELINE(cpc_playcity_device,ctc_zc2_cb))
2622
27   MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker")
23   MCFG_SPEAKER_STANDARD_MONO("mono")
2824   MCFG_SOUND_ADD("ymz_1",YMZ294,XTAL_4MHz)  // when timer is not set, operates at 4MHz (interally divided by 2, so equivalent to the ST)
29   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30)
25   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
3026   MCFG_SOUND_ADD("ymz_2",YMZ294,XTAL_4MHz)
31   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30)
27   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
3228
3329   // pass-through
3430   MCFG_DEVICE_ADD("exp", CPC_EXPANSION_SLOT, 0)
r241777r241778
9389WRITE8_MEMBER(cpc_playcity_device::ctc_w)
9490{
9591   m_ctc->write(space,offset,data);
96   if(offset == 0)
97      update_ymz_clock();
92   update_ymz_clock();
9893}
9994
10095WRITE8_MEMBER(cpc_playcity_device::ymz1_address_w)
trunk/src/emu/bus/cpc/playcity.h
r241777r241778
33
44   I/O ports:
55   * F880 - Z80CTC channel 0 (input is system clock (4MHz), output to YMZ294 clock)
6   * F881 - Z80CTC channel 1 (input from CRTC CURSOR, output to /NMI)
6   * F881 - Z80CTC channel 1 (input from CRTC CURSOR, output to NMI)
77   * F882 - Z80CTC channel 2 (input is system clock (4MHz), output to channel 3 input)
8   * F883 - Z80CTC channel 3 (input is channel 2 output)
8   * F883 - Z80CTC channel 3 (input is channel 2 output, output to IRQ)
99   * F884 - YMZ294 #1 (right) data
1010   * F888 - YMZ294 #2 (left) data
1111   * F984 - YMZ294 #1 (right) register select
r241777r241778
3939   DECLARE_WRITE8_MEMBER(ymz2_data_w);
4040   DECLARE_READ8_MEMBER(ymz1_data_r);
4141   DECLARE_READ8_MEMBER(ymz2_data_r);
42   DECLARE_WRITE_LINE_MEMBER(ctc_zc1_cb) { if(state) { m_slot->nmi_w(1); m_slot->nmi_w(0); } }
43   DECLARE_WRITE_LINE_MEMBER(ctc_intr_cb) { m_slot->irq_w(state); }
42   DECLARE_WRITE_LINE_MEMBER(ctc_zc1_cb) { if(state) {m_slot->nmi_w(1); m_slot->nmi_w(0); } }
43   DECLARE_WRITE_LINE_MEMBER(ctc_zc2_cb) { m_slot->irq_w(state); }
4444
45   virtual WRITE_LINE_MEMBER(cursor_w) { m_ctc->trg1(state); }
46
4745protected:
4846   // device-level overrides
4947   virtual void device_start();
trunk/src/emu/bus/dmv/dmvbus.c
r241777r241778
199199      device_slot_interface(mconfig, *this),
200200      m_prog_read_cb(*this),
201201      m_prog_write_cb(*this),
202      m_out_int_cb(*this),
203202      m_out_irq_cb(*this),
204203      m_out_thold_cb(*this)
205204{
r241777r241778
225224   // resolve callbacks
226225   m_prog_read_cb.resolve_safe(0);
227226   m_prog_write_cb.resolve_safe();
228   m_out_int_cb.resolve_safe();
229227   m_out_irq_cb.resolve_safe();
230228   m_out_thold_cb.resolve_safe();
231229}
trunk/src/emu/bus/dmv/dmvbus.h
r241777r241778
5858
5959   template<class _Object> static devcb_base &set_prog_read_callback(device_t &device, _Object object) { return downcast<dmvcart_slot_device &>(device).m_prog_read_cb.set_callback(object); }
6060   template<class _Object> static devcb_base &set_prog_write_callback(device_t &device, _Object object) { return downcast<dmvcart_slot_device &>(device).m_prog_write_cb.set_callback(object); }
61   template<class _Object> static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast<dmvcart_slot_device &>(device).m_out_int_cb.set_callback(object); }
6261   template<class _Object> static devcb_base &set_out_irq_callback(device_t &device, _Object object) { return downcast<dmvcart_slot_device &>(device).m_out_irq_cb.set_callback(object); }
6362   template<class _Object> static devcb_base &set_out_thold_callback(device_t &device, _Object object) { return downcast<dmvcart_slot_device &>(device).m_out_thold_cb.set_callback(object); }
6463
r241777r241778
8786   // internal state
8887   devcb_read8                     m_prog_read_cb;
8988   devcb_write8                    m_prog_write_cb;
90   devcb_write_line                m_out_int_cb;
9189   devcb_write_line                m_out_irq_cb;
9290   devcb_write_line                m_out_thold_cb;
9391   device_dmvslot_interface*       m_cart;
r241777r241778
106104   devcb = &dmvcart_slot_device::set_prog_read_callback(*device, DEVCB_##_read_devcb); \
107105   devcb = &dmvcart_slot_device::set_prog_write_callback(*device, DEVCB_##_write_devcb);
108106
109#define MCFG_DMVCART_SLOT_OUT_INT_CB(_devcb) \
110   devcb = &dmvcart_slot_device::set_out_int_callback(*device, DEVCB_##_devcb);
111
112107#define MCFG_DMVCART_SLOT_OUT_IRQ_CB(_devcb) \
113108   devcb = &dmvcart_slot_device::set_out_irq_callback(*device, DEVCB_##_devcb);
114109
trunk/src/emu/bus/dmv/k803.c
r241777r241778
1// license:BSD-3-Clause
2// copyright-holders:Sandro Ronco
3/***************************************************************************
4
5    K803 RTC module
6
7***************************************************************************/
8
9#include "emu.h"
10#include "k803.h"
11
12
13/***************************************************************************
14    IMPLEMENTATION
15***************************************************************************/
16
17static MACHINE_CONFIG_FRAGMENT( dmv_k803 )
18   MCFG_DEVICE_ADD("rtc", MM58167, XTAL_32_768kHz)
19   MCFG_MM58167_IRQ_CALLBACK(WRITELINE(dmv_k803_device, rtc_irq_w))
20MACHINE_CONFIG_END
21
22static INPUT_PORTS_START( dmv_k803 )
23   PORT_START("DSW")
24   PORT_DIPNAME( 0x0f, 0x09, "K803 IFSEL" )  PORT_DIPLOCATION("S:!4,S:!3,S:!2,S:!1")
25   PORT_DIPSETTING( 0x00, "0A" )
26   PORT_DIPSETTING( 0x01, "0B" )
27   PORT_DIPSETTING( 0x02, "1A" )
28   PORT_DIPSETTING( 0x03, "1B" )
29   PORT_DIPSETTING( 0x04, "2A" )
30   PORT_DIPSETTING( 0x05, "2B" )
31   PORT_DIPSETTING( 0x06, "3A" )
32   PORT_DIPSETTING( 0x07, "3B" )
33   PORT_DIPSETTING( 0x08, "4A" )
34   PORT_DIPSETTING( 0x09, "4B" )   // default
35INPUT_PORTS_END
36
37//**************************************************************************
38//  GLOBAL VARIABLES
39//**************************************************************************
40
41const device_type DMV_K803 = &device_creator<dmv_k803_device>;
42
43
44//**************************************************************************
45//  LIVE DEVICE
46//**************************************************************************
47
48//-------------------------------------------------
49//  dmv_k803_device - constructor
50//-------------------------------------------------
51
52dmv_k803_device::dmv_k803_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
53      : device_t(mconfig, DMV_K803, "K803 RTC", tag, owner, clock, "dmv_k803", __FILE__),
54      device_dmvslot_interface( mconfig, *this ),
55      m_rtc(*this, "rtc"),
56      m_dsw(*this, "DSW")
57{
58}
59
60//-------------------------------------------------
61//  device_start - device-specific startup
62//-------------------------------------------------
63
64void dmv_k803_device::device_start()
65{
66   m_bus = static_cast<dmvcart_slot_device*>(owner());
67}
68
69//-------------------------------------------------
70//  device_reset - device-specific reset
71//-------------------------------------------------
72
73void dmv_k803_device::device_reset()
74{
75   m_latch = 0;
76   m_rtc_int = CLEAR_LINE;
77}
78
79//-------------------------------------------------
80//  machine_config_additions - device-specific
81//  machine configurations
82//-------------------------------------------------
83
84machine_config_constructor dmv_k803_device::device_mconfig_additions() const
85{
86   return MACHINE_CONFIG_NAME( dmv_k803 );
87}
88
89//-------------------------------------------------
90//  input_ports - device-specific input ports
91//-------------------------------------------------
92
93ioport_constructor dmv_k803_device::device_input_ports() const
94{
95   return INPUT_PORTS_NAME( dmv_k803 );
96}
97
98void dmv_k803_device::io_read(address_space &space, int ifsel, offs_t offset, UINT8 &data)
99{
100   UINT8 dsw = m_dsw->read() & 0x0f;
101   if ((dsw >> 1) == ifsel && BIT(offset, 3) == BIT(dsw, 0))
102   {
103      if (offset & 0x04)
104         data = m_rtc->read(space, ((m_latch & 0x07) << 2) | (offset & 0x03));
105   }
106}
107
108void dmv_k803_device::io_write(address_space &space, int ifsel, offs_t offset, UINT8 data)
109{
110   UINT8 dsw = m_dsw->read() & 0x0f;
111   if ((dsw >> 1) == ifsel && BIT(offset, 3) == BIT(dsw, 0))
112   {
113      if (offset & 0x04)
114         m_rtc->write(space, ((m_latch & 0x07) << 2) | (offset & 0x03), data);
115      else
116      {
117         m_latch = data;
118         update_int();
119      }
120   }
121}
122
123WRITE_LINE_MEMBER(dmv_k803_device::rtc_irq_w)
124{
125   m_rtc_int = state;
126   update_int();
127}
128
129void dmv_k803_device::update_int()
130{
131   bool state = ((m_latch & 0x80) && m_rtc_int);
132   m_bus->m_out_irq_cb(state ? ASSERT_LINE : CLEAR_LINE);
133}
trunk/src/emu/bus/dmv/k803.h
r241777r241778
1// license:BSD-3-Clause
2// copyright-holders:Sandro Ronco
3#pragma once
4
5#ifndef __DMV_K803_H__
6#define __DMV_K803_H__
7
8#include "emu.h"
9#include "dmvbus.h"
10#include "machine/mm58167.h"
11
12//**************************************************************************
13//  TYPE DEFINITIONS
14//**************************************************************************
15
16// ======================> dmv_k803_device
17
18class dmv_k803_device :
19      public device_t,
20      public device_dmvslot_interface
21{
22public:
23   // construction/destruction
24   dmv_k803_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
25
26   // optional information overrides
27   virtual ioport_constructor device_input_ports() const;
28   virtual machine_config_constructor device_mconfig_additions() const;
29
30   DECLARE_WRITE_LINE_MEMBER(rtc_irq_w);
31
32protected:
33   // device-level overrides
34   virtual void device_start();
35   virtual void device_reset();
36
37   virtual void io_read(address_space &space, int ifsel, offs_t offset, UINT8 &data);
38   virtual void io_write(address_space &space, int ifsel, offs_t offset, UINT8 data);
39
40   void update_int();
41
42private:
43   required_device<mm58167_device> m_rtc;
44   required_ioport m_dsw;
45   dmvcart_slot_device * m_bus;
46   UINT8   m_latch;
47   int     m_rtc_int;
48};
49
50
51// device type definition
52extern const device_type DMV_K803;
53
54#endif  /* __DMV_K803_H__ */
trunk/src/emu/bus/dmv/k806.c
r241777r241778
2020ROM_END
2121
2222static ADDRESS_MAP_START( k806_io, AS_IO, 8, dmv_k806_device )
23   AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READ(port1_r)
24   AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(port2_w)
23   AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(port1_r, port1_w)
2524   AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(portt1_r)
2625ADDRESS_MAP_END
2726
r241777r241778
7675
7776void dmv_k806_device::device_start()
7877{
79   m_bus = static_cast<dmvcart_slot_device*>(owner());
8078}
8179
8280//-------------------------------------------------
r241777r241778
131129
132130READ8_MEMBER( dmv_k806_device::port1_r )
133131{
134   // ---- ---x   Left button
135   // ---- --x-   Middle button
136   // ---- -x--   Right button
137   // ---- x---   XA / Y1
138   // ---x ----   XB / Y2
139   // --x- ----   YA / X2
140   // -x-- ----   YB / X1
141   // x--- ----   not used
142
143132   // TODO
144133   return 0xff;
145134}
r241777r241778
149138   return BIT(m_jumpers->read(), 7) ? 0 : 1;
150139}
151140
152WRITE8_MEMBER( dmv_k806_device::port2_w )
141WRITE8_MEMBER( dmv_k806_device::port1_w )
153142{
154   m_bus->m_out_int_cb((data & 1) ? CLEAR_LINE : ASSERT_LINE);
143   // TODO
155144};
trunk/src/emu/bus/dmv/k806.h
r241777r241778
3131
3232   DECLARE_READ8_MEMBER(portt1_r);
3333   DECLARE_READ8_MEMBER(port1_r);
34   DECLARE_WRITE8_MEMBER(port2_w);
34   DECLARE_WRITE8_MEMBER(port1_w);
3535
3636protected:
3737   // device-level overrides
r241777r241778
4444private:
4545   required_device<upi41_cpu_device> m_mcu;
4646   required_ioport m_jumpers;
47   dmvcart_slot_device * m_bus;
4847};
4948
5049
trunk/src/emu/bus/gameboy/gb_slot.c
r241777r241778
557557
558558   /* Check if we're dealing with the multigame variant of the MBC1 mapper */
559559   if (type == GB_MBC_MBC1)
560   {   // bomberman collection korea
561      if (ROM[0x134] == 0x42 && ROM[0x135] == 0x4f && ROM[0x136] == 0x4d && ROM[0x137] == 0x53)
560   {
561      if (ROM[0x13f] == 0x42 && ROM[0x140] == 0x32 && ROM[0x141] == 0x43 && ROM[0x142] == 0x4B)
562562         type = GB_MBC_MBC1_COL;
563//      if (ROM[0x13f] == 0x42 && ROM[0x140] == 0x32 && ROM[0x141] == 0x43 && ROM[0x142] == 0x4B)
564//         type = GB_MBC_MBC1_COL;
565      // genjin collection
566      if (ROM[0x134] == 0x47 && ROM[0x135] == 0x45 && ROM[0x136] == 0x4e && ROM[0x137] == 0x43)
567         type = GB_MBC_MBC1_COL;
568      // bomberman collection japan
569      if (ROM[0x134] == 0x42 && ROM[0x135] == 0x4f && ROM[0x136] == 0x4d && ROM[0x137] == 0x43)
570         type = GB_MBC_MBC1_COL;
571      // mortal kombat I & II US
572      if (ROM[0x140] == 0x49 && ROM[0x141] == 0x26 && ROM[0x142] == 0x49 && ROM[0x143] == 0x49)
573         type = GB_MBC_MBC1_COL;
574      // mortal kombat I & II japan
575      if (ROM[0x140] == 0x20 && ROM[0x141] == 0x44 && ROM[0x142] == 0x55 && ROM[0x143] == 0x4f)
576         type = GB_MBC_MBC1_COL;
577      // momotarou collection 1 japan
578      if (ROM[0x137] == 0x4f && ROM[0x138] == 0x43 && ROM[0x139] == 0x4f && ROM[0x13a] == 0x4c)
579         type = GB_MBC_MBC1_COL;
580      // super chinese 123 dash japan
581      if (ROM[0x142] == 0x32 && ROM[0x143] == 0x33 && ROM[0x144] == 0x42 && ROM[0x145] == 0x41)
582         type = GB_MBC_MBC1_COL;
583563   }
584564
585565   return type;
trunk/src/emu/bus/isa/isa_cards.c
r241777r241778
1919   SLOT_INTERFACE("aga_pc200", ISA8_AGA_PC200)
2020   SLOT_INTERFACE("ega", ISA8_EGA)
2121   SLOT_INTERFACE("svga_et4k", ISA8_SVGA_ET4K)
22   SLOT_INTERFACE("num9rev",ISA8_NUM_9_REV)
2322   SLOT_INTERFACE("com", ISA8_COM)
2423   SLOT_INTERFACE("fdc", ISA8_FDC_SUPERIO)
2524   SLOT_INTERFACE("fdc_xt", ISA8_FDC_XT)
r241777r241778
5857   SLOT_INTERFACE("vga", ISA8_VGA)
5958   SLOT_INTERFACE("svga_et4k", ISA8_SVGA_ET4K)
6059   SLOT_INTERFACE("svga_dm",ISA8_SVGA_CIRRUS)
61   SLOT_INTERFACE("num9rev",ISA8_NUM_9_REV)
6260   SLOT_INTERFACE("com", ISA8_COM)
6361   SLOT_INTERFACE("comat", ISA8_COM_AT)
6462   SLOT_INTERFACE("fdc", ISA8_FDC_AT)
trunk/src/emu/bus/isa/isa_cards.h
r241777r241778
2525#include "svga_s3.h"
2626#include "svga_tseng.h"
2727#include "svga_trident.h"
28#include "num9rev.h"
2928
3029// storage
3130#include "fdc.h"
trunk/src/emu/bus/isa/num9rev.c
r241777r241778
1// license:BSD-3-Clause
2// Number Nine Revolution 512x32/1024x8
3// TODO: for 1024x768 mode the 7220 is programmed for 512x768, how does that work?
4
5#include "emu.h"
6#include "num9rev.h"
7
8//**************************************************************************
9//  GLOBAL VARIABLES
10//**************************************************************************
11
12const device_type ISA8_NUM_9_REV = &device_creator<isa8_number_9_rev_device>;
13
14static ADDRESS_MAP_START( upd7220_map, AS_0, 8, isa8_number_9_rev_device )
15   AM_RANGE(0x00000, 0x3ffff) AM_NOP
16ADDRESS_MAP_END
17
18UPD7220_DISPLAY_PIXELS_MEMBER( isa8_number_9_rev_device::hgdc_display_pixels )
19{
20   palette_t *pal = m_palette->palette();
21   if(!m_1024)
22   {
23      rgb_t color(0);
24      UINT16 overlay;
25      if(((address << 3) + 0xc0008) > (1024*1024))
26         return;
27      for(int i = 0; i < 8; i++)
28      {
29         UINT32 addr = (address << 3) + i;
30         overlay = m_ram[addr + 0xc0000] << 1;
31         overlay = m_overlay[overlay + ((m_mode & 8) ? 512 : 0)] | (m_overlay[overlay + 1 + ((m_mode & 8) ? 512 : 0)] << 8);
32         color.set_r(pal->entry_color(m_ram[addr] | ((overlay & 0xf) << 8)).r());
33         color.set_g(pal->entry_color(m_ram[addr + 0x40000] | ((overlay & 0xf0) << 4)).g());
34         color.set_b(pal->entry_color(m_ram[addr + 0x80000] | (overlay & 0xf00)).b());
35         bitmap.pix32(y, x + i) = color;
36      }
37   }
38   else
39   {
40      if(((address << 3) + 8) > (1024*1024))
41         return;
42      for(int i = 0; i < 8; i++)
43         bitmap.pix32(y, x + i) = pal->entry_color(m_ram[(address << 3) + i]);
44   }
45}
46
47static MACHINE_CONFIG_FRAGMENT( num_9_rev )
48   MCFG_SCREEN_ADD("screen", RASTER)
49   MCFG_SCREEN_SIZE(512, 448)
50   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 448-1)
51   MCFG_SCREEN_REFRESH_RATE(60)
52   MCFG_SCREEN_UPDATE_DRIVER(isa8_number_9_rev_device, screen_update)
53   MCFG_PALETTE_ADD("palette", 4096)
54
55   MCFG_DEVICE_ADD("upd7220", UPD7220, XTAL_4_433619MHz/2) // unknown clock
56   MCFG_DEVICE_ADDRESS_MAP(AS_0, upd7220_map)
57   MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(isa8_number_9_rev_device, hgdc_display_pixels)
58   MCFG_VIDEO_SET_SCREEN("screen")
59MACHINE_CONFIG_END
60
61//-------------------------------------------------
62//  machine_config_additions - device-specific
63//  machine configurations
64//-------------------------------------------------
65
66machine_config_constructor isa8_number_9_rev_device::device_mconfig_additions() const
67{
68   return MACHINE_CONFIG_NAME( num_9_rev );
69}
70
71//**************************************************************************
72//  LIVE DEVICE
73//**************************************************************************
74
75//-------------------------------------------------
76//  isa16_vga_device - constructor
77//-------------------------------------------------
78
79isa8_number_9_rev_device::isa8_number_9_rev_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
80      device_t(mconfig, ISA8_NUM_9_REV, "Number Nine Revolution 512x32/1024x8", tag, owner, clock, "number_9_rev", __FILE__),
81      device_isa8_card_interface(mconfig, *this),
82      m_upd7220(*this, "upd7220"),
83      m_palette(*this, "palette"),
84      m_ram(1024*1024),
85      m_overlay(1024)
86{
87}
88
89//-------------------------------------------------
90//  device_start - device-specific startup
91//-------------------------------------------------
92
93void isa8_number_9_rev_device::device_start()
94{
95   set_isa_device();
96
97   m_isa->install_memory(0xc0000, 0xc0001, 0, 0, read8_delegate(FUNC(upd7220_device::read), (upd7220_device *)m_upd7220), write8_delegate(FUNC(upd7220_device::write), (upd7220_device *)m_upd7220));
98   m_isa->install_memory(0xc0100, 0xc03ff, 0, 0, read8_delegate(FUNC(isa8_number_9_rev_device::pal8_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::pal8_w), this));
99   m_isa->install_memory(0xc0400, 0xc0401, 0, 0, read8_delegate(FUNC(isa8_number_9_rev_device::bank_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::bank_w), this));
100   m_isa->install_memory(0xc0500, 0xc06ff, 0, 0, read8_delegate(FUNC(isa8_number_9_rev_device::overlay_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::overlay_w), this));
101   m_isa->install_memory(0xc0700, 0xc070f, 0, 0, read8_delegate(FUNC(isa8_number_9_rev_device::ctrl_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::ctrl_w), this));
102   m_isa->install_memory(0xc1000, 0xc3fff, 0, 0, read8_delegate(FUNC(isa8_number_9_rev_device::pal12_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::pal12_w), this));
103   m_isa->install_memory(0xa0000, 0xaffff, 0, 0, read8_delegate(FUNC(isa8_number_9_rev_device::read8), this), write8_delegate(FUNC(isa8_number_9_rev_device::write8), this));
104}
105
106//-------------------------------------------------
107//  device_reset - device-specific reset
108//-------------------------------------------------
109
110void isa8_number_9_rev_device::device_reset()
111{
112   m_bank = 0;
113   m_mode = 0;
114   m_1024 = false;
115}
116
117READ8_MEMBER(isa8_number_9_rev_device::read8)
118{
119   if((m_mode & 1) && !m_1024)
120      return m_ram[offset + ((m_mode & 0xc) << 14)];
121   else if((m_mode & 4) && !m_1024)
122   {
123      UINT32 newoff = ((offset & 3) << 18) | (m_bank << 14) | ((offset >> 2) & 0x3fff);
124      return m_ram[newoff];
125   }
126   else
127      return m_ram[offset + (m_bank << 16)];
128}
129
130WRITE8_MEMBER(isa8_number_9_rev_device::write8)
131{
132   if(m_1024 || ((m_mode & 6) == 0))
133      m_ram[offset + (m_bank << 16)] = data;
134   else if((m_mode & 1) || ((m_mode & 6) == 2))
135   {
136      UINT8 bank = m_bank;
137      if(m_mode & 1)
138         bank = (m_mode & 0xc) >> 2;
139      else
140      {
141         if(m_bank >= 12)
142         {
143            m_ram[offset + (m_bank << 16)] = data;
144            return;
145         }
146         bank &= 3;
147      }
148
149      m_ram[offset + (bank << 16)] = data;
150      m_ram[offset + ((bank + 4) << 16)] = data;
151      m_ram[offset + ((bank + 8) << 16)] = data;
152   }
153   else if(m_mode & 4)
154   {
155      UINT32 newoff = ((offset & 3) << 18) | (m_bank << 14) | ((offset >> 2) & 0x3fff);
156      if((newoff >= 0xc0000) && ((m_mode & 6) == 6))
157         return;
158      m_ram[newoff] = data;
159   }
160}
161
162READ8_MEMBER(isa8_number_9_rev_device::pal8_r)
163{
164   offset += 0x100;
165   palette_t *pal = m_palette->palette();
166   switch(offset & 0xf00)
167   {
168      case 0x100:
169         return pal->entry_color(offset).r();
170      case 0x200:
171         return pal->entry_color(offset).g();
172      case 0x300:
173         return pal->entry_color(offset).b();
174   }
175   return 0;
176}
177
178WRITE8_MEMBER(isa8_number_9_rev_device::pal8_w)
179{
180   offset += 0x100;
181   palette_t *pal = m_palette->palette();
182   rgb_t pen = pal->entry_color(offset);
183   switch(offset & 0xf00)
184   {
185      case 0x100:
186         pen.set_r(data);
187         break;
188      case 0x200:
189         pen.set_g(data);
190         break;
191      case 0x300:
192         pen.set_b(data);
193         break;
194   }
195   pal->entry_set_color(offset, pen);
196}
197
198READ8_MEMBER(isa8_number_9_rev_device::pal12_r)
199{
200   UINT16 color = offset & 0xfff;
201   palette_t *pal = m_palette->palette();
202   switch(offset & 0xf000)
203   {
204      case 0x0000:
205         return pal->entry_color(color).r();
206      case 0x1000:
207         return pal->entry_color(color).g();
208      case 0x2000:
209         return pal->entry_color(color).b();
210   }
211   return 0;
212}
213
214WRITE8_MEMBER(isa8_number_9_rev_device::pal12_w)
215{
216   UINT16 color = offset & 0xfff;
217   palette_t *pal = m_palette->palette();
218   rgb_t pen = pal->entry_color(color);
219   switch(offset & 0xf000)
220   {
221      case 0x0000:
222         pen.set_r(data);
223         break;
224      case 0x1000:
225         pen.set_g(data);
226         break;
227      case 0x2000:
228         pen.set_b(data);
229         break;
230   }
231   pal->entry_set_color(color, pen);
232}
233
234READ8_MEMBER(isa8_number_9_rev_device::overlay_r)
235{
236   return m_overlay[offset + ((m_mode & 8) ? 512 : 0)];
237}
238WRITE8_MEMBER(isa8_number_9_rev_device::overlay_w)
239{
240   m_overlay[offset + ((m_mode & 8) ? 512 : 0)] = data;
241}
242
243READ8_MEMBER(isa8_number_9_rev_device::bank_r)
244{
245   return m_bank;
246}
247
248WRITE8_MEMBER(isa8_number_9_rev_device::bank_w)
249{
250   m_bank = data & 0xf;
251}
252
253READ8_MEMBER(isa8_number_9_rev_device::ctrl_r)
254{
255   switch(offset & 0xf)
256   {
257      case 0:
258      case 1:
259      case 2:
260      case 3:
261         // zoom, set to same value as 7220 external zoom factor
262         break;
263      case 4:
264         return (m_mode & 2) ? 0xff : 0;
265      case 5:
266         return (m_mode & 4) ? 0xff : 0;
267      case 6:
268         return (m_mode & 8) ? 0xff : 0;
269      case 15:
270         return (m_mode & 1) ? 0xff : 0;
271   }
272   return 0;
273}
274
275WRITE8_MEMBER(isa8_number_9_rev_device::ctrl_w)
276{
277   switch(offset & 0xf)
278   {
279      case 0:
280      case 1:
281      case 2:
282      case 3:
283         // zoom
284         break;
285      case 4:
286         if(data & 0x80)
287            m_mode |= 2;
288         else
289            m_mode &= ~2;
290         break;
291      case 5:
292         if(data & 0x80)
293            m_mode |= 4;
294         else
295            m_mode &= ~4;
296         break;
297      case 6:
298         if(data & 0x80)
299            m_mode |= 8;
300         else
301            m_mode &= ~8;
302         break;
303      case 15:
304         if(data & 0x80)
305            m_mode |= 1;
306         else
307            m_mode &= ~1;
308         break;
309   }
310}
311
312UINT32 isa8_number_9_rev_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
313{
314   rectangle visarea = screen.visible_area();
315   // try to support the 1024x8 or at least don't crash as there's no way to detect it
316   m_1024 = (visarea.width() * visarea.height()) > (512 * 512);
317   return m_upd7220->screen_update(screen, bitmap, cliprect);
318}
trunk/src/emu/bus/isa/num9rev.h
r241777r241778
1#pragma once
2
3#ifndef __NUM9REV_H__
4#define __NUM9REV_H__
5
6#include "emu.h"
7#include "isa.h"
8#include "video/upd7220.h"
9#include "machine/bankdev.h"
10
11//**************************************************************************
12//  TYPE DEFINITIONS
13//**************************************************************************
14
15// ======================> isa16_vga_device
16
17class isa8_number_9_rev_device :
18      public device_t,
19      public device_isa8_card_interface
20{
21public:
22      // construction/destruction
23      isa8_number_9_rev_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
24
25      // optional information overrides
26      virtual machine_config_constructor device_mconfig_additions() const;
27
28      UPD7220_DISPLAY_PIXELS_MEMBER(hgdc_display_pixels);
29      DECLARE_READ8_MEMBER(pal8_r);
30      DECLARE_WRITE8_MEMBER(pal8_w);
31      DECLARE_READ8_MEMBER(pal12_r);
32      DECLARE_WRITE8_MEMBER(pal12_w);
33      DECLARE_READ8_MEMBER(overlay_r);
34      DECLARE_WRITE8_MEMBER(overlay_w);
35      DECLARE_READ8_MEMBER(bank_r);
36      DECLARE_WRITE8_MEMBER(bank_w);
37      DECLARE_READ8_MEMBER(ctrl_r);
38      DECLARE_WRITE8_MEMBER(ctrl_w);
39      DECLARE_READ8_MEMBER(read8);
40      DECLARE_WRITE8_MEMBER(write8);
41
42      UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
43protected:
44      // device-level overrides
45      virtual void device_start();
46      virtual void device_reset();
47private:
48      required_device<upd7220_device> m_upd7220;
49      required_device<palette_device> m_palette;
50      dynamic_buffer m_ram;
51      dynamic_buffer m_overlay;
52
53      UINT8 m_bank;
54      UINT8 m_mode;
55      bool m_1024;
56};
57
58// device type definition
59extern const device_type ISA8_NUM_9_REV;
60
61#endif  /* __NUM9REV_H__ */
trunk/src/emu/bus/pci/cirrus.c
r0r241778
1/***************************************************************************
2
3    video/cirrus.c
4
5    Cirrus SVGA card emulation (preliminary)
6
7    Cirrus has the following additional registers that are not present in
8    conventional VGA:
9
10    SEQ 06h:        Unlock Cirrus registers; write 12h to unlock registers,
11                    and read 12h back to confirm Cirrus presence.
12    SEQ 07h
13        bit 3-1:    Pixel depth
14                        0x00    8 bpp
15                        0x02    16 bpp (double vert clock)
16                        0x04    24 bpp
17                        0x06    16 bpp
18                        0x08    32 bpp
19        bit 0:      VGA/SVGA (0=VGA, 1=SVGA)
20    SEQ 0Fh
21        bit 7:      Bankswitch enable
22        bits 4-3:   Memory size
23                        0x00    256K
24                        0x08    512K
25                        0x10    1M
26                        0x18    2M
27    SEQ 12h:        Hardware Cursor
28
29
30
31
32    GC 09h:         Set 64k bank (bits 3-0 only)
33    GC 20h:         Blit Width (bits 7-0)
34    GC 21h:         Blit Width (bits 12-8)
35    GC 22h:         Blit Height (bits 7-0)
36    GC 23h:         Blit Height (bits 12-8)
37    GC 24h:         Blit Destination Pitch (bits 7-0)
38    GC 25h:         Blit Destination Pitch (bits 12-8)
39    GC 26h:         Blit Source Pitch (bits 7-0)
40    GC 27h:         Blit Source Pitch (bits 12-8)
41    GC 28h:         Blit Destination Address (bits 7-0)
42    GC 29h:         Blit Destination Address (bits 15-8)
43    GC 2Ah:         Blit Destination Address (bits 21-16)
44    GC 2Ch:         Blit Source Address (bits 7-0)
45    GC 2Dh:         Blit Source Address (bits 15-8)
46    GC 2Eh:         Blit Source Address (bits 21-16)
47    GC 2Fh:         Blit Write Mask
48    GC 30h:         Blit Mode
49    GC 31h:         Blit Status
50                        bit 7 - Autostart
51                        bit 4 - FIFO Used
52                        bit 2 - Blit Reset
53                        bit 1 - Blit Started
54                        bit 0 - Blit Busy
55    GC 32h:         Raster Operation
56    GC 33h:         Blit Mode Extension
57    GC 34h:         Blit Transparent Color (bits 7-0)
58    GC 35h:         Blit Transparent Color (bits 15-8)
59    GC 38h:         Blit Transparent Color Mask (bits 7-0)
60    GC 39h:         Blit Transparent Color Mask (bits 15-8)
61
62***************************************************************************/
63
64#include "emu.h"
65#include "cirrus.h"
66#include "video/pc_vga.h"
67
68#define LOG_PCIACCESS   0
69
70//**************************************************************************
71//  DEVICE DEFINITIONS
72//**************************************************************************
73
74const device_type CIRRUS = &device_creator<cirrus_device>;
75
76//**************************************************************************
77//  LIVE DEVICE
78//**************************************************************************
79
80//-------------------------------------------------
81//  cirrus_device - constructor
82//-------------------------------------------------
83
84cirrus_device::cirrus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
85      : device_t(mconfig, CIRRUS, "CIRRUS", tag, owner, clock, "cirrus", __FILE__),
86      pci_device_interface( mconfig, *this )
87{
88}
89
90//-------------------------------------------------
91//  device_start - device-specific startup
92//-------------------------------------------------
93
94void cirrus_device::device_start()
95{
96}
97
98//-------------------------------------------------
99//  device_reset - device-specific reset
100//-------------------------------------------------
101
102void cirrus_device::device_reset()
103{
104}
105
106//-------------------------------------------------
107//  pci_read - implementation of PCI read
108//-------------------------------------------------
109
110UINT32 cirrus_device::pci_read(pci_bus_device *pcibus, int function, int offset, UINT32 mem_mask)
111{
112   UINT32 result = 0;
113
114   if (function == 0)
115   {
116      switch(offset)
117      {
118         case 0x00:  /* vendor/device ID */
119            result = 0x00A01013;
120            break;
121
122         case 0x08:
123            result = 0x03000000;
124            break;
125
126         case 0x10:
127            result = 0xD0000000;
128            break;
129
130         default:
131            result = 0;
132            break;
133      }
134   }
135
136   if (LOG_PCIACCESS)
137      logerror("cirrus5430_pci_read(): function=%d offset=0x%02X result=0x%04X\n", function, offset, result);
138   return result;
139}
140
141
142//-------------------------------------------------
143//  pci_write - implementation of PCI write
144//-------------------------------------------------
145
146void cirrus_device::pci_write(pci_bus_device *pcibus, int function, int offset, UINT32 data, UINT32 mem_mask)
147{
148   if (LOG_PCIACCESS)
149      logerror("cirrus5430_pci_write(): function=%d offset=0x%02X data=0x%04X\n", function, offset, data);
150}
151
152/*************************************
153 *
154 *  Ports
155 *
156 *************************************/
157
158WRITE8_MEMBER( cirrus_device::cirrus_42E8_w )
159{
160   if (data & 0x80)
161      machine().device("vga")->reset();
162}
trunk/src/emu/bus/pci/cirrus.h
r0r241778
1/***************************************************************************
2
3    video/cirrus.h
4
5    Cirrus SVGA card emulation (preliminary)
6
7***************************************************************************/
8
9#ifndef CIRRUS_H
10#define CIRRUS_H
11
12#include "bus/pci/pci.h"
13
14// ======================> cirrus_device
15
16class cirrus_device : public device_t,
17                  public pci_device_interface
18{
19public:
20      // construction/destruction
21   cirrus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
22
23   virtual UINT32 pci_read(pci_bus_device *pcibus, int function, int offset, UINT32 mem_mask);
24   virtual void pci_write(pci_bus_device *pcibus, int function, int offset, UINT32 data, UINT32 mem_mask);
25
26   DECLARE_WRITE8_MEMBER( cirrus_42E8_w );
27
28protected:
29   // device-level overrides
30   virtual void device_start();
31   virtual void device_reset();
32private:
33};
34
35
36// device type definition
37extern const device_type CIRRUS;
38
39#endif /* CIRRUS_H */
trunk/src/emu/bus/pci/i82371ab.c
r0r241778
1/***************************************************************************
2
3    Intel 82371AB PCI IDE ISA Xcelerator (PIIX4)
4
5    Part of the Intel 430TX chipset
6
7    - Integrated IDE Controller
8    - Enhanced DMA Controller based on two 82C37
9    - Interrupt Controller based on two 82C59
10    - Timers based on 82C54
11    - USB
12    - SMBus
13    - Real Time Clock based on MC146818
14
15***************************************************************************/
16
17#include "emu.h"
18#include "i82371ab.h"
19
20const device_type I82371AB = &device_creator<i82371ab_device>;
21
22
23i82371ab_device::i82371ab_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
24      : southbridge_device(mconfig, I82371AB, "Intel 82371AB", tag, owner, clock, "i82371ab", __FILE__),
25      pci_device_interface( mconfig, *this )
26{
27}
28
29UINT32 i82371ab_device::pci_isa_r(device_t *busdevice, int offset, UINT32 mem_mask)
30{
31   UINT32 result = m_regs[0][offset] |
32         m_regs[0][offset+1] << 8 |
33         m_regs[0][offset+2] << 16|
34         m_regs[0][offset+3] << 24;
35
36   logerror("i82371ab_pci_isa_r, offset = %02x, mem_mask = %08x\n", offset, mem_mask);
37
38   return result;
39}
40
41void i82371ab_device::pci_isa_w(device_t *busdevice, int offset, UINT32 data, UINT32 mem_mask)
42{
43   UINT32 cdata = 0;
44   int i;
45   COMBINE_DATA(&cdata);
46
47   logerror("i82371ab_pci_isa_w, offset = %02x, data = %08x, mem_mask = %08x\n", offset, data, mem_mask);
48
49   for(i = 0; i < 4; i++, offset++, cdata >>= 8)
50   {
51      switch (offset)
52      {
53         case 0x04:
54            /* clear reserved bits */
55            m_regs[0][offset] = cdata & 0x05;
56            break;
57         case 0x06:
58            /* set new status */
59            m_regs[0][offset] |= 0x80;
60            break;
61         case 0x07:
62            m_regs[0][offset] |= 0x02;
63            break;
64      }
65   }
66}
67
68UINT32 i82371ab_device::pci_ide_r(device_t *busdevice, int offset, UINT32 mem_mask)
69{
70   UINT32 result = m_regs[1][offset] |
71         m_regs[1][offset+1] << 8 |
72         m_regs[1][offset+2] << 16|
73         m_regs[1][offset+3] << 24;
74
75   logerror("i82371ab_pci_ide_r, offset = %02x, mem_mask = %08x\n", offset, mem_mask);
76
77   return result;
78}
79
80void i82371ab_device::pci_ide_w(device_t *busdevice, int offset, UINT32 data, UINT32 mem_mask)
81{
82   UINT32 cdata = 0;
83   int i;
84   COMBINE_DATA(&cdata);
85
86   logerror("i82371ab_pci_isa_w, offset = %02x, data = %08x, mem_mask = %08x\n", offset, data, mem_mask);
87
88   for(i = 0; i < 4; i++, offset++, cdata >>= 8)
89   {
90      switch (offset)
91      {
92         case 0x04:
93            /* clear reserved bits */
94            m_regs[1][offset] = cdata & 0x05;
95            break;
96         case 0x06:
97            /* set new status */
98            m_regs[1][offset] |= 0x80;
99            break;
100         case 0x07:
101            m_regs[1][offset] |= 0x02;
102            break;
103      }
104   }
105}
106
107UINT32 i82371ab_device::pci_usb_r(device_t *busdevice, int offset, UINT32 mem_mask)
108{
109   UINT32 result = m_regs[2][offset] |
110         m_regs[2][offset+1] << 8 |
111         m_regs[2][offset+2] << 16|
112         m_regs[2][offset+3] << 24;
113
114   logerror("i82371ab_pci_usb_r, offset = %02x, mem_mask = %08x\n", offset, mem_mask);
115
116   return result;
117}
118
119void i82371ab_device::pci_usb_w(device_t *busdevice, int offset, UINT32 data, UINT32 mem_mask)
120{
121   UINT32 cdata = 0;
122   int i;
123   COMBINE_DATA(&cdata);
124
125   logerror("i82371ab_pci_isa_w, offset = %02x, data = %08x, mem_mask = %08x\n", offset, data, mem_mask);
126
127   for(i = 0; i < 4; i++, offset++, cdata >>= 8)
128   {
129      switch (offset)
130      {
131         case 0x04:
132            /* clear reserved bits */
133            m_regs[2][offset] = cdata & 0x05;
134            break;
135         case 0x06:
136            /* set new status */
137            m_regs[2][offset] |= 0x80;
138            break;
139         case 0x07:
140            m_regs[2][offset] |= 0x02;
141            break;
142      }
143   }
144}
145
146UINT32 i82371ab_device::pci_acpi_r(device_t *busdevice, int offset, UINT32 mem_mask)
147{
148   UINT32 result = m_regs[3][offset] |
149         m_regs[3][offset+1] << 8 |
150         m_regs[3][offset+2] << 16|
151         m_regs[3][offset+3] << 24;
152
153   logerror("i82371ab_pci_acpi_r, offset = %02x, mem_mask = %08x\n", offset, mem_mask);
154
155   return result;
156}
157
158void i82371ab_device::pci_acpi_w(device_t *busdevice, int offset, UINT32 data, UINT32 mem_mask)
159{
160   UINT32 cdata = 0;
161   int i;
162   COMBINE_DATA(&cdata);
163
164   logerror("i82371ab_pci_isa_w, offset = %02x, data = %08x, mem_mask = %08x\n", offset, data, mem_mask);
165
166   for(i = 0; i < 4; i++, offset++, cdata >>= 8)
167   {
168      switch (offset)
169      {
170         case 0x04:
171            /* clear reserved bits */
172            m_regs[3][offset] = cdata & 0x05;
173            break;
174         case 0x06:
175            /* set new status */
176            m_regs[3][offset] |= 0x80;
177            break;
178         case 0x07:
179            m_regs[3][offset] |= 0x02;
180            break;
181      }
182   }
183}
184
185UINT32 i82371ab_device::pci_read(pci_bus_device *pcibus, int function, int offset, UINT32 mem_mask)
186{
187   switch (function)
188   {
189   case 0: return pci_isa_r(pcibus, offset, mem_mask);
190   case 1: return pci_ide_r(pcibus, offset, mem_mask);
191   case 2: return pci_usb_r(pcibus, offset, mem_mask);
192   case 3: return pci_acpi_r(pcibus, offset, mem_mask);
193   }
194
195   logerror("i82371ab_pci_read: read from undefined function %d\n", function);
196
197   return 0;
198}
199
200void i82371ab_device::pci_write(pci_bus_device *pcibus, int function, int offset, UINT32 data, UINT32 mem_mask)
201{
202   switch (function)
203   {
204   case 0: pci_isa_w(pcibus, offset, data, mem_mask); break;
205   case 1: pci_ide_w(pcibus, offset, data, mem_mask); break;
206   case 2: pci_usb_w(pcibus, offset, data, mem_mask); break;
207   case 3: pci_acpi_w(pcibus, offset, data, mem_mask); break;
208   }
209}
210
211//-------------------------------------------------
212//  device_start - device-specific startup
213//-------------------------------------------------
214
215void i82371ab_device::device_start()
216{
217   southbridge_device::device_start();
218   /* setup save states */
219   save_item(NAME(m_regs));
220}
221
222//-------------------------------------------------
223//  device_reset - device-specific reset
224//-------------------------------------------------
225
226void i82371ab_device::device_reset()
227{
228   southbridge_device::device_reset();
229   memset(m_regs, 0, sizeof(m_regs));
230   UINT32 (*regs32)[64] = (UINT32 (*)[64])(m_regs);
231
232   /* isa */
233   regs32[0][0x00] = 0x71108086;
234   regs32[0][0x04] = 0x00000000;
235   regs32[0][0x08] = 0x06010000;
236   regs32[0][0x0c] = 0x00800000;
237
238   /* ide */
239   regs32[1][0x00] = 0x71118086;
240   regs32[1][0x04] = 0x02800000;
241   regs32[1][0x08] = 0x01018000;
242   regs32[1][0x0c] = 0x00000000;
243
244   /* usb */
245   regs32[2][0x00] = 0x71128086;
246   regs32[2][0x04] = 0x02800000;
247   regs32[2][0x08] = 0x0c030000;
248   regs32[2][0x0c] = 0x00000000;
249
250   /* acpi */
251   regs32[3][0x00] = 0x71138086;
252   regs32[3][0x04] = 0x02800000;
253   regs32[3][0x08] = 0x06800000;
254   regs32[3][0x0c] = 0x02800000;
255}
trunk/src/emu/bus/pci/i82371ab.h
r0r241778
1/***************************************************************************
2
3    Intel 82371AB PCI IDE ISA Xcelerator (PIIX4)
4
5    Part of the Intel 430TX chipset
6
7***************************************************************************/
8
9#ifndef __I82371AB_H__
10#define __I82371AB_H__
11
12#include "pci.h"
13#include "southbridge.h"
14
15// ======================> i82371ab_device
16
17class i82371ab_device :  public southbridge_device,
18                     public pci_device_interface
19{
20public:
21   // construction/destruction
22   i82371ab_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
23
24   virtual UINT32 pci_read(pci_bus_device *pcibus, int function, int offset, UINT32 mem_mask);
25   virtual void pci_write(pci_bus_device *pcibus, int function, int offset, UINT32 data, UINT32 mem_mask);
26
27protected:
28   // device-level overrides
29   virtual void device_start();
30   virtual void device_reset();
31
32   UINT32 pci_isa_r(device_t *busdevice, int offset, UINT32 mem_mask);
33   void pci_isa_w(device_t *busdevice, int offset, UINT32 data, UINT32 mem_mask);
34
35   UINT32 pci_ide_r(device_t *busdevice, int offset, UINT32 mem_mask);
36   void pci_ide_w(device_t *busdevice, int offset, UINT32 data, UINT32 mem_mask);
37
38   UINT32 pci_usb_r(device_t *busdevice, int offset, UINT32 mem_mask);
39   void pci_usb_w(device_t *busdevice, int offset, UINT32 data, UINT32 mem_mask);
40
41   UINT32 pci_acpi_r(device_t *busdevice, int offset, UINT32 mem_mask);
42   void pci_acpi_w(device_t *busdevice, int offset, UINT32 data, UINT32 mem_mask);
43
44private:
45   UINT8 m_regs[4][0x100];
46};
47
48// device type definition
49extern const device_type I82371AB;
50
51#endif /* __I82371AB_H__ */
trunk/src/emu/bus/pci/i82371sb.c
r0r241778
1/***************************************************************************
2
3    Intel 82371SB PCI IDE ISA Xcelerator (PIIX3)
4
5    Part of the Intel 430TX chipset
6
7    - Integrated IDE Controller
8    - Enhanced DMA Controller based on two 82C37
9    - Interrupt Controller based on two 82C59
10    - Timers based on 82C54
11    - USB
12    - SMBus
13    - Real Time Clock based on MC146818
14
15***************************************************************************/
16
17#include "emu.h"
18#include "i82371sb.h"
19
20
21/***************************************************************************
22    IMPLEMENTATION
23***************************************************************************/
24
25const device_type I82371SB = &device_creator<i82371sb_device>;
26
27
28i82371sb_device::i82371sb_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
29      : southbridge_device(mconfig, I82371SB, "Intel 82371SB", tag, owner, clock, "i82371sb", __FILE__),
30      pci_device_interface( mconfig, *this )
31{
32}
33
34UINT32 i82371sb_device::pci_isa_r(device_t *busdevice,int offset, UINT32 mem_mask)
35{
36   UINT32 result = m_regs[0][offset];
37
38   //logerror("i82371sb_pci_isa_r, offset = %02x, mem_mask = %08x\n", offset, mem_mask);
39
40   return result;
41}
42
43void i82371sb_device::pci_isa_w(device_t *busdevice, int offset, UINT32 data, UINT32 mem_mask)
44{
45   //logerror("i82371sb_pci_isa_w, offset = %02x, data = %08x, mem_mask = %08x\n", offset, data, mem_mask);
46
47   switch (offset)
48   {
49   case 0x04:
50      COMBINE_DATA(&m_regs[0][offset]);
51
52      /* clear reserved bits */
53      m_regs[0][offset] &= 0x00000005;
54
55      /* set new status */
56      m_regs[0][offset] |= 0x02800000;
57
58      break;
59   }
60}
61
62UINT32 i82371sb_device::pci_ide_r(device_t *busdevice, int offset, UINT32 mem_mask)
63{
64   //logerror("i82371sb_pci_ide_r, offset = %02x, mem_mask = %08x\n", offset, mem_mask);
65   UINT32 result = m_regs[1][offset];
66   return result;
67}
68
69void i82371sb_device::pci_ide_w(device_t *busdevice, int offset, UINT32 data, UINT32 mem_mask)
70{
71   //logerror("i82371sb_pci_ide_w, offset = %02x, data = %08x, mem_mask = %08x\n", offset, data, mem_mask);
72
73   switch (offset)
74   {
75   case 0x04:
76      COMBINE_DATA(&m_regs[1][offset]);
77
78      /* clear reserved bits */
79      m_regs[1][offset] &= 0x00000005;
80
81      /* set new status */
82      m_regs[1][offset] |= 0x02800000;
83
84      break;
85   }
86}
87
88UINT32 i82371sb_device::pci_usb_r(device_t *busdevice, int offset, UINT32 mem_mask)
89{
90   UINT32 result = m_regs[2][offset];
91
92   //logerror("i82371sb_pci_usb_r, offset = %02x, mem_mask = %08x\n", offset, mem_mask);
93
94   return result;
95}
96
97void i82371sb_device::pci_usb_w(device_t *busdevice, int offset, UINT32 data, UINT32 mem_mask)
98{
99   //logerror("i82371sb_pci_usb_w, offset = %02x, data = %08x, mem_mask = %08x\n", offset, data, mem_mask);
100
101   switch (offset)
102   {
103   case 0x04:
104      COMBINE_DATA(&m_regs[2][offset]);
105
106      /* clear reserved bits */
107      m_regs[2][offset] &= 0x00000005;
108
109      /* set new status */
110      m_regs[2][offset] |= 0x02800000;
111
112      break;
113   }
114}
115
116UINT32 i82371sb_device::pci_read(pci_bus_device *pcibus, int function, int offset, UINT32 mem_mask)
117{
118   switch (function)
119   {
120   case 0: return pci_isa_r(pcibus, offset, mem_mask);
121   case 1: return pci_ide_r(pcibus, offset, mem_mask);
122   case 2: return pci_usb_r(pcibus, offset, mem_mask);
123   }
124
125   //logerror("i82371sb_pci_read: read from undefined function %d\n", function);
126
127   return 0;
128}
129
130void i82371sb_device::pci_write(pci_bus_device *pcibus, int function, int offset, UINT32 data, UINT32 mem_mask)
131{
132   switch (function)
133   {
134   case 0: pci_isa_w(pcibus, offset, data, mem_mask); break;
135   case 1: pci_ide_w(pcibus, offset, data, mem_mask); break;
136   case 2: pci_usb_w(pcibus, offset, data, mem_mask); break;
137   }
138   //logerror("i82371sb_pci_write: write to undefined function %d\n", function);
139}
140
141//-------------------------------------------------
142//  device_start - device-specific startup
143//-------------------------------------------------
144
145void i82371sb_device::device_start()
146{
147   southbridge_device::device_start();
148   /* setup save states */
149   save_item(NAME(m_regs));
150}
151
152//-------------------------------------------------
153//  device_reset - device-specific reset
154//-------------------------------------------------
155
156void i82371sb_device::device_reset()
157{
158   southbridge_device::device_reset();
159
160   memset(m_regs, 0, sizeof(m_regs));
161
162   /* isa */
163   m_regs[0][0x00] = 0x70008086;
164   m_regs[0][0x04] = 0x00000000;
165   m_regs[0][0x08] = 0x06010000;
166   m_regs[0][0x0c] = 0x00800000;
167
168   /* ide */
169   m_regs[1][0x00] = 0x70108086;
170   m_regs[1][0x04] = 0x02800000;
171   m_regs[1][0x08] = 0x01018000;
172   m_regs[1][0x0c] = 0x00000000;
173
174   /* usb */
175   m_regs[2][0x00] = 0x70208086;
176   m_regs[2][0x04] = 0x02800000;
177   m_regs[2][0x08] = 0x0c030000;
178   m_regs[2][0x0c] = 0x00000000;
179}
trunk/src/emu/bus/pci/i82371sb.h
r0r241778
1/***************************************************************************
2
3    Intel 82371SB PCI IDE ISA Xcelerator (PIIX3)
4
5    Part of the Intel 430TX chipset
6
7***************************************************************************/
8
9#ifndef __I82371SB_H__
10#define __I82371SB_H__
11
12#include "pci.h"
13#include "southbridge.h"
14
15// ======================> i82371sb_device
16
17class i82371sb_device :  public southbridge_device,
18                     public pci_device_interface
19{
20public:
21   // construction/destruction
22   i82371sb_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
23
24   virtual UINT32 pci_read(pci_bus_device *pcibus, int function, int offset, UINT32 mem_mask);
25   virtual void pci_write(pci_bus_device *pcibus, int function, int offset, UINT32 data, UINT32 mem_mask);
26
27protected:
28   // device-level overrides
29   virtual void device_start();
30   virtual void device_reset();
31
32   UINT32 pci_isa_r(device_t *busdevice, int offset, UINT32 mem_mask);
33   void pci_isa_w(device_t *busdevice, int offset, UINT32 data, UINT32 mem_mask);
34
35   UINT32 pci_ide_r(device_t *busdevice, int offset, UINT32 mem_mask);
36   void pci_ide_w(device_t *busdevice, int offset, UINT32 data, UINT32 mem_mask);
37
38   UINT32 pci_usb_r(device_t *busdevice, int offset, UINT32 mem_mask);
39   void pci_usb_w(device_t *busdevice, int offset, UINT32 data, UINT32 mem_mask);
40private:
41   UINT32 m_regs[3][0x400/4];
42};
43
44// device type definition
45extern const device_type I82371SB;
46
47
48#endif /* __I82371SB_H__ */
trunk/src/emu/bus/pci/i82439tx.c
r0r241778
1/***************************************************************************
2
3    Intel 82439TX System Controller (MTXC)
4
5***************************************************************************/
6
7#include "emu.h"
8#include "i82439tx.h"
9
10/***************************************************************************
11    IMPLEMENTATION
12***************************************************************************/
13
14const device_type I82439TX = &device_creator<i82439tx_device>;
15
16
17i82439tx_device::i82439tx_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
18   : northbridge_device(mconfig, I82439TX, "Intel 82439TX", tag, owner, clock, "i82439tx", __FILE__),
19   pci_device_interface( mconfig, *this ),
20   m_cpu_tag( NULL ),
21   m_region_tag( NULL )
22{
23}
24
25void i82439tx_device::i82439tx_configure_memory(UINT8 val, offs_t begin, offs_t end)
26{
27   switch (val & 0x03)
28   {
29   case 0:
30      m_space->install_rom(begin, end, m_rom + (begin - 0xc0000));
31      m_space->nop_write(begin, end);
32      break;
33   case 1:
34      m_space->install_rom(begin, end, m_bios_ram + (begin - 0xc0000) / 4);
35      m_space->nop_write(begin, end);
36      break;
37   case 2:
38      m_space->install_rom(begin, end, m_rom + (begin - 0xc0000));
39      m_space->install_writeonly(begin, end, m_bios_ram + (begin - 0xc0000) / 4);
40      break;
41   case 3:
42      m_space->install_ram(begin, end, m_bios_ram + (begin - 0xc0000) / 4);
43      break;
44   }
45}
46
47
48/***************************************************************************
49    PCI INTERFACE
50***************************************************************************/
51
52UINT32 i82439tx_device::pci_read(pci_bus_device *pcibus, int function, int offset, UINT32 mem_mask)
53{
54   UINT32 result = 0;
55
56   if (function != 0)
57      return 0;
58
59   switch(offset)
60   {
61      case 0x00:  /* vendor/device ID */
62         result = 0x71008086;
63         break;
64
65      case 0x08:  /* revision identification register and class code register*/
66         result = 0x06000001;
67         break;
68
69      case 0x04:  /* PCI command register */
70      case 0x0C:
71      case 0x10:  /* reserved */
72      case 0x14:  /* reserved */
73      case 0x18:  /* reserved */
74      case 0x1C:  /* reserved */
75      case 0x20:  /* reserved */
76      case 0x24:  /* reserved */
77      case 0x28:  /* reserved */
78      case 0x2C:  /* reserved */
79      case 0x30:  /* reserved */
80      case 0x34:  /* reserved */
81      case 0x38:  /* reserved */
82      case 0x3C:  /* reserved */
83      case 0x40:  /* reserved */
84      case 0x44:  /* reserved */
85      case 0x48:  /* reserved */
86      case 0x4C:  /* reserved */
87      case 0x50:
88      case 0x54:
89      case 0x58:
90      case 0x5C:
91      case 0x60:
92      case 0x64:
93      case 0x68:
94      case 0x6C:
95      case 0x70:
96      case 0x74:
97      case 0x78:
98      case 0x7C:
99      case 0x80:
100      case 0x84:
101      case 0x88:
102      case 0x8C:
103      case 0x90:
104      case 0x94:
105      case 0x98:
106      case 0x9C:
107      case 0xA0:
108      case 0xA4:
109      case 0xA8:
110      case 0xAC:
111      case 0xB0:
112      case 0xB4:
113      case 0xB8:
114      case 0xBC:
115      case 0xC0:
116      case 0xC4:
117      case 0xC8:
118      case 0xCC:
119      case 0xD0:
120      case 0xD4:
121      case 0xD8:
122      case 0xDC:
123      case 0xE0:
124      case 0xE4:
125      case 0xE8:
126      case 0xEC:
127      case 0xF0:
128      case 0xF4:
129      case 0xF8:
130      case 0xFC:
131         assert(((offset - 0x50) / 4) >= 0 && ((offset - 0x50) / 4) < ARRAY_LENGTH(m_regs));
132         result = m_regs[(offset - 0x50) / 4];
133         break;
134
135      default:
136         fatalerror("i82439tx_pci_read(): Unexpected PCI read 0x%02X\n", offset);
137   }
138   return result;
139}
140
141void i82439tx_device::pci_write(pci_bus_device *pcibus, int function, int offset, UINT32 data, UINT32 mem_mask)
142{
143   if (function != 0)
144      return;
145
146   switch(offset)
147   {
148      case 0x00:  /* vendor/device ID */
149      case 0x10:  /* reserved */
150      case 0x14:  /* reserved */
151      case 0x18:  /* reserved */
152      case 0x1C:  /* reserved */
153      case 0x20:  /* reserved */
154      case 0x24:  /* reserved */
155      case 0x28:  /* reserved */
156      case 0x2C:  /* reserved */
157      case 0x30:  /* reserved */
158      case 0x3C:  /* reserved */
159      case 0x40:  /* reserved */
160      case 0x44:  /* reserved */
161      case 0x48:  /* reserved */
162      case 0x4C:  /* reserved */
163         /* read only */
164         break;
165
166      case 0x04:  /* PCI command register */
167      case 0x0C:
168      case 0x50:
169      case 0x54:
170      case 0x58:
171      case 0x5C:
172      case 0x60:
173      case 0x64:
174      case 0x68:
175      case 0x6C:
176      case 0x70:
177      case 0x74:
178      case 0x78:
179      case 0x7C:
180      case 0x80:
181      case 0x84:
182      case 0x88:
183      case 0x8C:
184      case 0x90:
185      case 0x94:
186      case 0x98:
187      case 0x9C:
188      case 0xA0:
189      case 0xA4:
190      case 0xA8:
191      case 0xAC:
192      case 0xB0:
193      case 0xB4:
194      case 0xB8:
195      case 0xBC:
196      case 0xC0:
197      case 0xC4:
198      case 0xC8:
199      case 0xCC:
200      case 0xD0:
201      case 0xD4:
202      case 0xD8:
203      case 0xDC:
204      case 0xE0:
205      case 0xE4:
206      case 0xE8:
207      case 0xEC:
208      case 0xF0:
209      case 0xF4:
210      case 0xF8:
211      case 0xFC:
212         switch(offset)
213         {
214            case 0x58:
215               if ((mem_mask & 0x0000f000))
216                  i82439tx_configure_memory(data >> 12, 0xf0000, 0xfffff);
217               if ((mem_mask & 0x000f0000))
218                  i82439tx_configure_memory(data >> 16, 0xc0000, 0xc3fff);
219               if ((mem_mask & 0x00f00000))
220                  i82439tx_configure_memory(data >> 20, 0xc4000, 0xc7fff);
221               if ((mem_mask & 0x0f000000))
222                  i82439tx_configure_memory(data >> 24, 0xc8000, 0xccfff);
223               if ((mem_mask & 0xf0000000))
224                  i82439tx_configure_memory(data >> 28, 0xcc000, 0xcffff);
225               break;
226
227            case 0x5C:
228               if ((mem_mask & 0x0000000f))
229                  i82439tx_configure_memory(data >>  0, 0xd0000, 0xd3fff);
230               if ((mem_mask & 0x000000f0))
231                  i82439tx_configure_memory(data >>  4, 0xd4000, 0xd7fff);
232               if ((mem_mask & 0x00000f00))
233                  i82439tx_configure_memory(data >>  8, 0xd8000, 0xdbfff);
234               if ((mem_mask & 0x0000f000))
235                  i82439tx_configure_memory(data >> 12, 0xdc000, 0xdffff);
236               if ((mem_mask & 0x000f0000))
237                  i82439tx_configure_memory(data >> 16, 0xe0000, 0xe3fff);
238               if ((mem_mask & 0x00f00000))
239                  i82439tx_configure_memory(data >> 20, 0xe4000, 0xe7fff);
240               if ((mem_mask & 0x0f000000))
241                  i82439tx_configure_memory(data >> 24, 0xe8000, 0xecfff);
242               if ((mem_mask & 0xf0000000))
243                  i82439tx_configure_memory(data >> 28, 0xec000, 0xeffff);
244               break;
245         }
246
247         assert(((offset - 0x50) / 4) >= 0 && ((offset - 0x50) / 4) < ARRAY_LENGTH(m_regs));
248         COMBINE_DATA(&m_regs[(offset - 0x50) / 4]);
249         break;
250
251      default:
252         fatalerror("i82439tx_pci_write(): Unexpected PCI write 0x%02X <-- 0x%08X\n", offset, data);
253   }
254}
255
256//-------------------------------------------------
257//  device_start - device-specific startup
258//-------------------------------------------------
259
260void i82439tx_device::device_start()
261{
262   northbridge_device::device_start();
263   /* get address space we are working on */
264   device_t *cpu = machine().device(m_cpu_tag);
265   assert(cpu != NULL);
266
267   m_space = &cpu->memory().space(AS_PROGRAM);
268
269   /* get rom region */
270   m_rom = machine().root_device().memregion(m_region_tag)->base();
271
272   /* setup save states */
273   save_item(NAME(m_regs));
274   save_item(NAME(m_bios_ram));
275}
276
277//-------------------------------------------------
278//  device_reset - device-specific reset
279//-------------------------------------------------
280
281void i82439tx_device::device_reset()
282{
283   northbridge_device::device_reset();
284   /* setup initial values */
285   m_regs[0x00] = 0x14020000;
286   m_regs[0x01] = 0x01520000;
287   m_regs[0x02] = 0x00000000;
288   m_regs[0x03] = 0x00000000;
289   m_regs[0x04] = 0x02020202;
290   m_regs[0x05] = 0x00000002;
291   m_regs[0x06] = 0x00000000;
292   m_regs[0x07] = 0x00000000;
293
294   memset(m_bios_ram, 0, sizeof(m_bios_ram));
295
296   /* configure initial memory state */
297   i82439tx_configure_memory(0, 0xf0000, 0xfffff);
298   i82439tx_configure_memory(0, 0xc0000, 0xc3fff);
299   i82439tx_configure_memory(0, 0xc4000, 0xc7fff);
300   i82439tx_configure_memory(0, 0xc8000, 0xccfff);
301   i82439tx_configure_memory(0, 0xcc000, 0xcffff);
302   i82439tx_configure_memory(0, 0xd0000, 0xd3fff);
303   i82439tx_configure_memory(0, 0xd4000, 0xd7fff);
304   i82439tx_configure_memory(0, 0xd8000, 0xdbfff);
305   i82439tx_configure_memory(0, 0xdc000, 0xdffff);
306   i82439tx_configure_memory(0, 0xe0000, 0xe3fff);
307   i82439tx_configure_memory(0, 0xe4000, 0xe7fff);
308   i82439tx_configure_memory(0, 0xe8000, 0xecfff);
309   i82439tx_configure_memory(0, 0xec000, 0xeffff);
310}
trunk/src/emu/bus/pci/i82439tx.h
r0r241778
1/***************************************************************************
2
3    Intel 82439TX System Controller (MTXC)
4
5    Part of the Intel 430TX chipset
6
7***************************************************************************/
8
9#ifndef __I82439TX_H__
10#define __I82439TX_H__
11
12#include "pci.h"
13#include "northbridge.h"
14
15#define MCFG_I82439TX_CPU( _tag ) \
16   i82439tx_device::static_set_cpu(*device, _tag);
17
18#define MCFG_I82439TX_REGION( _tag ) \
19   i82439tx_device::static_set_region(*device, _tag);
20
21// ======================> i82439tx_device
22
23class i82439tx_device :  public northbridge_device,
24   public pci_device_interface
25{
26public:
27   // construction/destruction
28   i82439tx_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
29
30   static void static_set_cpu(device_t &device, const char *tag) { dynamic_cast<i82439tx_device &>(device).m_cpu_tag = tag; }
31   static void static_set_region(device_t &device, const char *tag) { dynamic_cast<i82439tx_device &>(device).m_region_tag = tag; }
32
33   virtual UINT32 pci_read(pci_bus_device *pcibus, int function, int offset, UINT32 mem_mask);
34   virtual void pci_write(pci_bus_device *pcibus, int function, int offset, UINT32 data, UINT32 mem_mask);
35
36protected:
37   // device-level overrides
38   virtual void device_start();
39   virtual void device_reset();
40
41   void i82439tx_configure_memory(UINT8 val, offs_t begin, offs_t end);
42
43private:
44   const char *m_cpu_tag;
45   const char *m_region_tag;
46
47   address_space *m_space;
48   UINT8 *m_rom;
49
50   UINT32 m_regs[8];
51   UINT32 m_bios_ram[0x40000 / 4];
52};
53
54// device type definition
55extern const device_type I82439TX;
56
57#endif /* __I82439TX_H__ */
trunk/src/emu/bus/pci/mpc105.c
r0r241778
1/***************************************************************************
2
3    mpc105.h
4
5    Motorola MPC105 PCI bridge
6
7***************************************************************************/
8
9#include "emu.h"
10#include "mpc105.h"
11#include "machine/ram.h"
12
13#define LOG_MPC105      0
14
15//**************************************************************************
16//  DEVICE DEFINITIONS
17//**************************************************************************
18
19const device_type MPC105 = &device_creator<mpc105_device>;
20
21
22//**************************************************************************
23//  LIVE DEVICE
24//**************************************************************************
25
26//-------------------------------------------------
27//  mpc105_device - constructor
28//-------------------------------------------------
29
30mpc105_device::mpc105_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
31   : device_t(mconfig, MPC105, "MPC105", tag, owner, clock, "mpc105", __FILE__),
32   pci_device_interface( mconfig, *this ),
33   m_cpu_tag(NULL),
34   m_bank_base_default(0)
35{
36}
37
38//-------------------------------------------------
39//  device_start - device-specific startup
40//-------------------------------------------------
41
42void mpc105_device::device_start()
43{
44   m_maincpu = machine().device<cpu_device>(m_cpu_tag);
45}
46
47//-------------------------------------------------
48//  device_reset - device-specific reset
49//-------------------------------------------------
50
51void mpc105_device::device_reset()
52{
53   m_bank_base = m_bank_base_default;
54   m_bank_enable = 0;
55   memset(m_bank_registers,0,sizeof(m_bank_registers));
56}
57
58//-------------------------------------------------
59//  update_memory - MMU update
60//-------------------------------------------------
61
62void mpc105_device::update_memory()
63{
64   int bank;
65   offs_t begin, end;
66   char bank_str[10];
67
68   if (LOG_MPC105)
69      logerror("mpc105_update_memory(machine): Updating memory (bank enable=0x%02X)\n", m_bank_enable);
70
71   if (m_bank_base > 0)
72   {
73      address_space &space = m_maincpu->space(AS_PROGRAM);
74
75      /* first clear everything out */
76      space.nop_read(0x00000000, 0x3FFFFFFF);
77      space.nop_read(0x00000000, 0x3FFFFFFF);
78   }
79
80   for (bank = 0; bank < MPC105_MEMORYBANK_COUNT; bank++)
81   {
82      if (m_bank_enable & (1 << bank))
83      {
84         begin = (((m_bank_registers[(bank / 4) + 0] >> (bank % 4) * 8)) & 0xFF) << 20
85            |   (((m_bank_registers[(bank / 4) + 2] >> (bank % 4) * 8)) & 0x03) << 28;
86
87         end   = (((m_bank_registers[(bank / 4) + 4] >> (bank % 4) * 8)) & 0xFF) << 20
88            |   (((m_bank_registers[(bank / 4) + 6] >> (bank % 4) * 8)) & 0x03) << 28
89            | 0x000FFFFF;
90
91         end = MIN(end, begin + machine().device<ram_device>(RAM_TAG)->size() - 1);
92
93         if ((begin + 0x100000) <= end)
94         {
95            if (LOG_MPC105)
96               logerror("\tbank #%d [%02d]: 0x%08X - 0x%08X [%p-%p]\n", bank, bank + m_bank_base, begin, end, machine().device<ram_device>(RAM_TAG)->pointer(), machine().device<ram_device>(RAM_TAG)->pointer() + (end - begin));
97
98            if (m_bank_base > 0)
99            {
100               sprintf(bank_str,"bank%d",bank + m_bank_base);
101               membank(bank_str)->set_base(machine().device<ram_device>(RAM_TAG)->pointer());
102            }
103         }
104      }
105   }
106}
107
108//-------------------------------------------------
109//  pci_read - implementation of PCI read
110//-------------------------------------------------
111
112UINT32 mpc105_device::pci_read(pci_bus_device *pcibus, int function, int offset, UINT32 mem_mask)
113{
114   UINT32 result;
115
116   if (function != 0)
117      return 0;
118
119   switch(offset)
120   {
121      case 0x00:  /* vendor/device ID */
122         result = 0x00011057;
123         break;
124
125      case 0x08:
126         result = 0x06000000;
127         break;
128
129      case 0x80:  /* memory starting address 1 */
130      case 0x84:  /* memory starting address 2 */
131      case 0x88:  /* extended memory starting address 1 */
132      case 0x8C:  /* extended memory starting address 2 */
133      case 0x90:  /* memory ending address 1 */
134      case 0x94:  /* memory ending address 2 */
135      case 0x98:  /* extended memory ending address 1 */
136      case 0x9C:  /* extended memory ending address 2 */
137         result = m_bank_registers[(offset - 0x80) / 4];
138         break;
139
140      case 0xA0:  /* memory enable */
141         result = m_bank_enable;
142         break;
143
144      case 0xA8:  /* processor interface configuration 1 */
145         /* TODO: Fix me! */
146         switch(/*cpu_getactivecpu()*/0)
147         {
148            case 0:
149               result = 0xFF000010;
150               break;
151
152            case 1:
153               result = 0xFF008010;
154               break;
155
156            default:
157               fatalerror("Unknown CPU\n");
158         }
159         break;
160
161      case 0xAC:  /* processor interface configuration 1 */
162         result = 0x000C060C;
163         break;
164
165      case 0xF0:  /* memory control configuration 1 */
166         result = 0xFF020000;
167         break;
168      case 0xF4:  /* memory control configuration 2 */
169         result = 0x00000003;
170         break;
171      case 0xF8:  /* memory control configuration 3 */
172         result = 0x00000000;
173         break;
174      case 0xFC:  /* memory control configuration 4 */
175         result = 0x00100000;
176         break;
177
178      default:
179         result = 0;
180         break;
181   }
182   return result;
183}
184
185//-------------------------------------------------
186//  pci_write - implementation of PCI write
187//-------------------------------------------------
188
189void mpc105_device::pci_write(pci_bus_device *pcibus, int function, int offset, UINT32 data, UINT32 mem_mask)
190{
191   int i;
192   if (function != 0)
193      return;
194
195   switch(offset)
196   {
197      case 0x80:  /* memory starting address 1 */
198      case 0x84:  /* memory starting address 2 */
199      case 0x88:  /* extended memory starting address 1 */
200      case 0x8C:  /* extended memory starting address 2 */
201      case 0x90:  /* memory ending address 1 */
202      case 0x94:  /* memory ending address 2 */
203      case 0x98:  /* extended memory ending address 1 */
204      case 0x9C:  /* extended memory ending address 2 */
205         i = (offset - 0x80) / 4;
206         if (m_bank_registers[i] != data)
207         {
208            m_bank_registers[i] = data;
209            update_memory();
210         }
211         break;
212
213      case 0xA0:  /* memory enable */
214         if (m_bank_enable != (UINT8) data)
215         {
216            m_bank_enable = (UINT8) data;
217            update_memory();
218         }
219         break;
220
221      case 0xF0:  /* memory control configuration 1 */
222      case 0xF4:  /* memory control configuration 2 */
223      case 0xF8:  /* memory control configuration 3 */
224      case 0xFC:  /* memory control configuration 4 */
225         break;
226
227      case 0xA8:  /* processor interface configuration 1 */
228         //fatalerror("mpc105_pci_write(): Unexpected PCI write 0x%02X <-- 0x%08X\n", offset, data);
229         break;
230   }
231}
trunk/src/emu/bus/pci/mpc105.h
r0r241778
1/***************************************************************************
2
3    mpc105.h
4
5    Motorola MPC105 PCI bridge
6
7***************************************************************************/
8
9#ifndef MPC105_H
10#define MPC105_H
11
12#include "pci.h"
13
14#define MPC105_MEMORYBANK_COUNT     8
15
16#define MCFG_MPC105_CPU( _tag ) \
17   mpc105_device::static_set_cpu(*device, _tag);
18
19#define MCFG_MPC105_BANK_BASE_DEFAULT( bank_base_default ) \
20   mpc105_device::static_set_bank_base_default(*device, bank_base_default);
21
22// ======================> mpc105_device
23
24class mpc105_device : public device_t,
25   public pci_device_interface
26{
27public:
28   // construction/destruction
29   mpc105_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
30
31   static void static_set_cpu(device_t &device, const char *tag) { dynamic_cast<mpc105_device &>(device).m_cpu_tag = tag; }
32   static void static_set_bank_base_default(device_t &device, int bank_base_default) { dynamic_cast<mpc105_device &>(device).m_bank_base_default = bank_base_default; }
33
34   virtual UINT32 pci_read(pci_bus_device *pcibus, int function, int offset, UINT32 mem_mask);
35   virtual void pci_write(pci_bus_device *pcibus, int function, int offset, UINT32 data, UINT32 mem_mask);
36
37protected:
38   // device-level overrides
39   virtual void device_start();
40   virtual void device_reset();
41
42   void update_memory();
43
44private:
45   const char *m_cpu_tag;
46   int m_bank_base_default;
47   int m_bank_base;
48   UINT8 m_bank_enable;
49   UINT32 m_bank_registers[8];
50
51   cpu_device*   m_maincpu;
52};
53
54
55// device type definition
56extern const device_type MPC105;
57
58#endif /* MPC105_H */
trunk/src/emu/bus/pci/northbridge.c
r0r241778
1/***************************************************************************
2
3  Northbridge implementation
4
5***************************************************************************/
6
7#include "emu.h"
8#include "northbridge.h"
9
10//**************************************************************************
11//  GLOBAL VARIABLES
12//**************************************************************************
13
14northbridge_device::northbridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
15   : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
16   m_maincpu(*this, ":maincpu"),
17   m_ram(*this, ":" RAM_TAG)
18{
19}
20
21//-------------------------------------------------
22//  device_start - device-specific startup
23//-------------------------------------------------
24
25void northbridge_device::device_start()
26{
27   address_space& space = machine().device(":maincpu")->memory().space(AS_PROGRAM);
28
29   machine().root_device().membank("bank10")->set_base(m_ram->pointer());
30
31   if (m_ram->size() > 0x0a0000)
32   {
33      offs_t ram_limit = 0x100000 + m_ram->size() - 0x0a0000;
34      space.install_read_bank(0x100000,  ram_limit - 1, "bank1");
35      space.install_write_bank(0x100000,  ram_limit - 1, "bank1");
36      machine().root_device().membank("bank1")->set_base(m_ram->pointer() + 0xa0000);
37   }
38}
39
40//-------------------------------------------------
41//  device_reset - device-specific reset
42//-------------------------------------------------
43
44void northbridge_device::device_reset()
45{
46}
trunk/src/emu/bus/pci/northbridge.h
r0r241778
1#pragma once
2
3#ifndef __NORTHBRIDGE_H__
4#define __NORTHBRIDGE_H__
5
6#include "emu.h"
7
8#include "machine/ram.h"
9
10//**************************************************************************
11//  TYPE DEFINITIONS
12//**************************************************************************
13
14// ======================> northbridge_device
15
16class northbridge_device :
17      public device_t
18{
19public:
20      // construction/destruction
21      northbridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
22protected:
23      // device-level overrides
24      virtual void device_start();
25      virtual void device_reset();
26public:
27      required_device<cpu_device> m_maincpu;
28      required_device<ram_device> m_ram;
29
30};
31
32#endif  /* __NORTHBRIDGE_H__ */
trunk/src/emu/bus/pci/pci.c
r0r241778
1/***************************************************************************
2
3    pci.c
4
5    PCI bus
6
7    The PCI bus is a 32-bit bus introduced by Intel, so it is little endian
8
9    Control word:
10        bit 31:         Enable bit
11        bits 30-24:     Reserved
12        bits 23-16:     PCI bus number
13        bits 15-11:     PCI device number
14        bits 10- 8:     PCI function number
15        bits  7- 0:     Offset address
16
17    Standard PCI registers:
18        0x00    2   Vendor ID
19        0x02    2   Device ID
20        0x04    2   PCI Command
21        0x06    2   PCI Status
22        0x08    1   Revision ID
23        0x09    1   Programming Interface
24        0x0A    1   Subclass Code
25        0x0B    1   Class Code
26
27    Class Code/Subclass Code/Programming Interface
28        0x00XXXX    Pre-PCI 2.0 devices
29        0x000000        Non-VGA device
30        0x000101        VGA device
31        0x01XXXX    Storage Controller
32        0x010000        SCSI
33        0x0101XX        IDE
34        0x0102XX        Floppy
35        0x0103XX        IPI
36        0x0104XX        RAID
37        0x0180XX        Other
38        0x02XXXX    Network Card
39        0x020000        Ethernet
40        0x020100        Tokenring
41        0x020200        FDDI
42        0x020300        ATM
43        0x028000        Other
44        0x03XXXX    Display Controller
45        0x030000        VGA
46        0x030001        8514 Compatible
47        0x030100        XGA
48        0x038000        Other
49        0x04XXXX    Multimedia
50        0x040000        Video
51        0x040100        Audio
52        0x048000        Other
53        0x05XXXX    Memory Controller
54        0x050000        RAM
55        0x050100        Flash
56        0x058000        Other
57        0x06XXXX    Bridge
58        0x060000        Host/PCI
59        0x060100        PCI/ISA
60        0x060200        PCI/EISA
61        0x060300        PCI/Micro Channel
62        0x060400        PCI/PCI
63        0x060500        PCI/PCMCIA
64        0x060600        PCI/NuBus
65        0x060700        PCI/CardBus
66        0x068000        Other
67
68    Information on PCI vendors can be found at http://www.pcidatabase.com/
69
70***************************************************************************/
71
72#include "emu.h"
73#include "pci.h"
74
75#define LOG_PCI 0
76
77//**************************************************************************
78//  GLOBAL VARIABLES
79//**************************************************************************
80
81const device_type PCI_BUS = &device_creator<pci_bus_device>;
82
83//**************************************************************************
84//  LIVE DEVICE
85//**************************************************************************
86
87//-------------------------------------------------
88//  pci_bus_device - constructor
89//-------------------------------------------------
90pci_bus_device::pci_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
91      device_t(mconfig, PCI_BUS, "PCI Bus", tag, owner, clock, "pci_bus", __FILE__),
92      m_father(NULL)
93{
94   for (int i = 0; i < ARRAY_LENGTH(m_devtag); i++) {
95      m_devtag[i]= NULL;
96   }
97   m_siblings_count = 0;
98}
99
100/***************************************************************************
101    INLINE FUNCTIONS
102***************************************************************************/
103
104READ32_MEMBER( pci_bus_device::read )
105{
106   UINT32 result = 0xffffffff;
107   int function, reg;
108
109   offset %= 2;
110
111   switch (offset)
112   {
113      case 0:
114         result = m_address;
115         break;
116
117      case 1:
118         if (m_devicenum != -1)
119         {
120            if (m_busnumaddr->m_device[m_devicenum] != NULL)
121            {
122               function = (m_address >> 8) & 0x07;
123               reg = (m_address >> 0) & 0xfc;
124               result = m_busnumaddr->m_device[m_devicenum]->pci_read(m_busnumaddr, function, reg, mem_mask);
125            }
126         }
127         break;
128   }
129
130   if (LOG_PCI)
131      logerror("read('%s'): offset=%d result=0x%08X\n", tag(), offset, result);
132
133   return result;
134}
135
136
137
138pci_bus_device *pci_bus_device::pci_search_bustree(int busnum, int devicenum, pci_bus_device *pcibus)
139{
140   int a;
141   pci_bus_device *ret;
142
143   if (pcibus->m_busnum == busnum)
144   {
145      return pcibus;
146   }
147   for (a = 0; a < pcibus->m_siblings_count; a++)
148   {
149      ret = pci_search_bustree(busnum, devicenum, pcibus->m_siblings[a]);
150      if (ret != NULL)
151         return ret;
152   }
153   return NULL;
154}
155
156
157
158WRITE32_MEMBER( pci_bus_device::write )
159{
160   offset %= 2;
161
162   if (LOG_PCI)
163      logerror("write('%s'): offset=%d data=0x%08X\n", tag(), offset, data);
164
165   switch (offset)
166   {
167      case 0:
168         m_address = data;
169
170         /* lookup current device */
171         if (m_address & 0x80000000)
172         {
173            int busnum = (m_address >> 16) & 0xff;
174            int devicenum = (m_address >> 11) & 0x1f;
175            m_busnumaddr = pci_search_bustree(busnum, devicenum, this);
176            if (m_busnumaddr != NULL)
177            {
178               m_busnumber = busnum;
179               m_devicenum = devicenum;
180            }
181            else
182               m_devicenum = -1;
183            if (LOG_PCI)
184               logerror("  bus:%d device:%d\n", busnum, devicenum);
185         }
186         break;
187
188      case 1:
189         if (m_devicenum != -1)
190         {
191            if (m_busnumaddr->m_device[m_devicenum] != NULL)
192            {
193               int function = (m_address >> 8) & 0x07;
194               int reg = (m_address >> 0) & 0xfc;
195               m_busnumaddr->m_device[m_devicenum]->pci_write(m_busnumaddr, function, reg, data, mem_mask);
196            }
197            if (LOG_PCI)
198               logerror("  function:%d register:%d\n", (m_address >> 8) & 0x07, (m_address >> 0) & 0xfc);
199         }
200         break;
201   }
202}
203
204
205
206READ64_MEMBER(pci_bus_device::read_64be)
207{
208   UINT64 result = 0;
209   mem_mask = FLIPENDIAN_INT64(mem_mask);
210   if (ACCESSING_BITS_0_31)
211      result |= (UINT64)read(space, offset * 2 + 0, mem_mask >> 0) << 0;
212   if (ACCESSING_BITS_32_63)
213      result |= (UINT64)read(space, offset * 2 + 1, mem_mask >> 32) << 32;
214   return FLIPENDIAN_INT64(result);
215}
216
217WRITE64_MEMBER(pci_bus_device::write_64be)
218{
219   data = FLIPENDIAN_INT64(data);
220   mem_mask = FLIPENDIAN_INT64(mem_mask);
221   if (ACCESSING_BITS_0_31)
222      write(space, offset * 2 + 0, data >> 0, mem_mask >> 0);
223   if (ACCESSING_BITS_32_63)
224      write(space, offset * 2 + 1, data >> 32, mem_mask >> 32);
225}
226
227
228void pci_bus_device::add_sibling(pci_bus_device *sibling, int busnum)
229{
230   m_siblings[m_siblings_count] = sibling;
231   m_siblings_busnum[m_siblings_count] = busnum;
232   m_siblings_count++;
233}
234
235
236//-------------------------------------------------
237//  device_post_load - handle updating after a
238//  restore
239//-------------------------------------------------
240
241void pci_bus_device::device_post_load()
242{
243   if (m_devicenum != -1)
244   {
245      m_busnumaddr = pci_search_bustree(m_busnumber, m_devicenum, this);
246   }
247}
248
249//-------------------------------------------------
250//  device_start - device-specific startup
251//-------------------------------------------------
252
253void pci_bus_device::device_start()
254{
255   /* store a pointer back to the device */
256   m_devicenum = -1;
257
258   char id[3];
259   /* find all our devices */
260   for (int i = 0; i < ARRAY_LENGTH(m_devtag); i++)
261   {
262      sprintf(id, "%d", i);
263      pci_connector *conn = downcast<pci_connector *>(subdevice(id));
264      if (conn!=NULL)
265         m_device[i] = conn->get_device();
266      else
267         m_device[i] = NULL;
268   }
269
270   if (m_father != NULL) {
271      pci_bus_device *father = machine().device<pci_bus_device>(m_father);
272      if (father)
273         father->add_sibling(this, m_busnum);
274   }
275
276   /* register pci states */
277   save_item(NAME(m_address));
278   save_item(NAME(m_devicenum));
279   save_item(NAME(m_busnum));
280}
281
282
283//-------------------------------------------------
284//  device_reset - device-specific reset
285//-------------------------------------------------
286
287void pci_bus_device::device_reset()
288{
289   /* reset the drive state */
290   m_devicenum = -1;
291   m_address = 0;
292}
293
294//-------------------------------------------------
295//  pci_device_interface - constructor
296//-------------------------------------------------
297
298pci_device_interface::pci_device_interface(const machine_config &mconfig, device_t &device)
299   : device_slot_card_interface(mconfig, device)
300{
301}
302
303//-------------------------------------------------
304//  ~pci_device_interface - destructor
305//-------------------------------------------------
306
307pci_device_interface::~pci_device_interface()
308{
309}
310
311
312const device_type PCI_CONNECTOR = &device_creator<pci_connector>;
313
314
315pci_connector::pci_connector(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
316   device_t(mconfig, PCI_CONNECTOR, "PCI device connector abstraction", tag, owner, clock, "pci_connector", __FILE__),
317   device_slot_interface(mconfig, *this)
318{
319}
320
321pci_connector::~pci_connector()
322{
323}
324
325void pci_connector::device_start()
326{
327}
328
329pci_device_interface *pci_connector::get_device()
330{
331   return dynamic_cast<pci_device_interface *>(get_card_device());
332}
trunk/src/emu/bus/pci/pci.h
r0r241778
1/***************************************************************************
2
3    pci.h
4
5    PCI bus
6
7***************************************************************************/
8
9#ifndef PCI_H
10#define PCI_H
11
12//**************************************************************************
13//  TYPE DEFINITIONS
14//**************************************************************************
15class pci_bus_device;
16
17// ======================> pci_device_interface
18
19class pci_device_interface :  public device_slot_card_interface
20{
21public:
22   // construction/destruction
23   pci_device_interface(const machine_config &mconfig, device_t &device);
24   virtual ~pci_device_interface();
25
26   virtual UINT32 pci_read(pci_bus_device *pcibus, int function, int offset, UINT32 mem_mask) = 0;
27   virtual void pci_write(pci_bus_device *pcibus, int function, int offset, UINT32 data, UINT32 mem_mask) = 0;
28private:
29};
30
31class pci_connector: public device_t,
32                  public device_slot_interface
33{
34public:
35   pci_connector(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
36   virtual ~pci_connector();
37
38   pci_device_interface *get_device();
39
40protected:
41   virtual void device_start();
42};
43
44extern const device_type PCI_CONNECTOR;
45
46// ======================> pci_bus_device
47
48class pci_bus_device :  public device_t
49{
50public:
51   // construction/destruction
52   pci_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
53
54   DECLARE_READ32_MEMBER( read );
55   DECLARE_WRITE32_MEMBER( write );
56
57   DECLARE_READ64_MEMBER( read_64be );
58   DECLARE_WRITE64_MEMBER( write_64be );
59
60   void set_busnum(int busnum) { m_busnum = busnum; }
61   void set_father(const char *father) { m_father = father; }
62   void set_device(int num, const char *tag) {
63      m_devtag[num] = tag; }
64
65   pci_bus_device *pci_search_bustree(int busnum, int devicenum, pci_bus_device *pcibus);
66   void add_sibling(pci_bus_device *sibling, int busnum);
67
68protected:
69   // device-level overrides
70   virtual void device_start();
71   virtual void device_reset();
72   virtual void device_post_load();
73
74private:
75   UINT8               m_busnum;
76
77   const char *        m_devtag[32];
78   pci_device_interface *m_device[32];
79
80   const char *        m_father;
81   pci_bus_device *    m_siblings[8];
82   UINT8               m_siblings_busnum[8];
83   int                 m_siblings_count;
84
85   offs_t              m_address;
86   INT8                m_devicenum; // device number we are addressing
87   INT8                m_busnumber; // pci bus number we are addressing
88   pci_bus_device *    m_busnumaddr; // pci bus we are addressing
89};
90
91// device type definition
92extern const device_type PCI_BUS;
93
94
95/***************************************************************************
96    DEVICE CONFIGURATION MACROS
97***************************************************************************/
98
99#define MCFG_PCI_BUS_ADD(_tag, _busnum) \
100   MCFG_DEVICE_ADD(_tag, PCI_BUS, 0) \
101   downcast<pci_bus_device *>(device)->set_busnum(_busnum);
102#define MCFG_PCI_BUS_DEVICE(_tag, _slot_intf, _def_slot, _fixed) \
103   MCFG_DEVICE_ADD(_tag, PCI_CONNECTOR, 0) \
104   MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _fixed)
105
106#define MCFG_PCI_BUS_SIBLING(_father_tag) \
107   downcast<pci_bus_device *>(device)->set_father(_father_tag);
108
109
110#endif /* PCI_H */
trunk/src/emu/bus/pci/southbridge.c
r0r241778
1/***************************************************************************
2
3  Southbridge implementation
4
5***************************************************************************/
6
7#include "emu.h"
8#include "cpu/i386/i386.h"
9#include "southbridge.h"
10#include "bus/pc_kbd/keyboards.h"
11
12
13static SLOT_INTERFACE_START(pc_isa_onboard)
14   SLOT_INTERFACE("comat", ISA8_COM_AT)
15   SLOT_INTERFACE("lpt", ISA8_LPT)
16   SLOT_INTERFACE("fdcsmc", ISA8_FDC_SMC)
17SLOT_INTERFACE_END
18
19static MACHINE_CONFIG_FRAGMENT( southbridge )
20   MCFG_DEVICE_ADD("pit8254", PIT8254, 0)
21   MCFG_PIT8253_CLK0(4772720/4) /* heartbeat IRQ */
22   MCFG_PIT8253_OUT0_HANDLER(WRITELINE(southbridge_device, at_pit8254_out0_changed))
23   MCFG_PIT8253_CLK1(4772720/4) /* dram refresh */
24   MCFG_PIT8253_OUT1_HANDLER(WRITELINE(southbridge_device, at_pit8254_out1_changed))
25   MCFG_PIT8253_CLK2(4772720/4) /* pio port c pin 4, and speaker polling enough */
26   MCFG_PIT8253_OUT2_HANDLER(WRITELINE(southbridge_device, at_pit8254_out2_changed))
27
28   MCFG_DEVICE_ADD( "dma8237_1", AM9517A, XTAL_14_31818MHz/3 )
29   MCFG_I8237_OUT_HREQ_CB(DEVWRITELINE("dma8237_2", am9517a_device, dreq0_w))
30   MCFG_I8237_OUT_EOP_CB(WRITELINE(southbridge_device, at_dma8237_out_eop))
31   MCFG_I8237_IN_MEMR_CB(READ8(southbridge_device, pc_dma_read_byte))
32   MCFG_I8237_OUT_MEMW_CB(WRITE8(southbridge_device, pc_dma_write_byte))
33   MCFG_I8237_IN_IOR_0_CB(READ8(southbridge_device, pc_dma8237_0_dack_r))
34   MCFG_I8237_IN_IOR_1_CB(READ8(southbridge_device, pc_dma8237_1_dack_r))
35   MCFG_I8237_IN_IOR_2_CB(READ8(southbridge_device, pc_dma8237_2_dack_r))
36   MCFG_I8237_IN_IOR_3_CB(READ8(southbridge_device, pc_dma8237_3_dack_r))
37   MCFG_I8237_OUT_IOW_0_CB(WRITE8(southbridge_device, pc_dma8237_0_dack_w))
38   MCFG_I8237_OUT_IOW_1_CB(WRITE8(southbridge_device, pc_dma8237_1_dack_w))
39   MCFG_I8237_OUT_IOW_2_CB(WRITE8(southbridge_device, pc_dma8237_2_dack_w))
40   MCFG_I8237_OUT_IOW_3_CB(WRITE8(southbridge_device, pc_dma8237_3_dack_w))
41   MCFG_I8237_OUT_DACK_0_CB(WRITELINE(southbridge_device, pc_dack0_w))
42   MCFG_I8237_OUT_DACK_1_CB(WRITELINE(southbridge_device, pc_dack1_w))
43   MCFG_I8237_OUT_DACK_2_CB(WRITELINE(southbridge_device, pc_dack2_w))
44   MCFG_I8237_OUT_DACK_3_CB(WRITELINE(southbridge_device, pc_dack3_w))
45
46   MCFG_DEVICE_ADD( "dma8237_2", AM9517A, XTAL_14_31818MHz/3 )
47   MCFG_I8237_OUT_HREQ_CB(WRITELINE(southbridge_device, pc_dma_hrq_changed))
48   MCFG_I8237_IN_MEMR_CB(READ8(southbridge_device, pc_dma_read_word))
49   MCFG_I8237_OUT_MEMW_CB(WRITE8(southbridge_device, pc_dma_write_word))
50   MCFG_I8237_IN_IOR_1_CB(READ8(southbridge_device, pc_dma8237_5_dack_r))
51   MCFG_I8237_IN_IOR_2_CB(READ8(southbridge_device, pc_dma8237_6_dack_r))
52   MCFG_I8237_IN_IOR_3_CB(READ8(southbridge_device, pc_dma8237_7_dack_r))
53   MCFG_I8237_OUT_IOW_1_CB(WRITE8(southbridge_device, pc_dma8237_5_dack_w))
54   MCFG_I8237_OUT_IOW_2_CB(WRITE8(southbridge_device, pc_dma8237_6_dack_w))
55   MCFG_I8237_OUT_IOW_3_CB(WRITE8(southbridge_device, pc_dma8237_7_dack_w))
56   MCFG_I8237_OUT_DACK_0_CB(WRITELINE(southbridge_device, pc_dack4_w))
57   MCFG_I8237_OUT_DACK_1_CB(WRITELINE(southbridge_device, pc_dack5_w))
58   MCFG_I8237_OUT_DACK_2_CB(WRITELINE(southbridge_device, pc_dack6_w))
59   MCFG_I8237_OUT_DACK_3_CB(WRITELINE(southbridge_device, pc_dack7_w))
60
61   MCFG_PIC8259_ADD( "pic8259_master", INPUTLINE(":maincpu", 0), VCC, READ8(southbridge_device, get_slave_ack) )
62   MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NULL )
63
64   MCFG_DEVICE_ADD("keybc", AT_KEYBOARD_CONTROLLER, XTAL_12MHz)
65   MCFG_AT_KEYBOARD_CONTROLLER_SYSTEM_RESET_CB(INPUTLINE(":maincpu", INPUT_LINE_RESET))
66   MCFG_AT_KEYBOARD_CONTROLLER_GATE_A20_CB(INPUTLINE(":maincpu", INPUT_LINE_A20))
67   MCFG_AT_KEYBOARD_CONTROLLER_INPUT_BUFFER_FULL_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir1_w))
68   MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_CLOCK_CB(DEVWRITELINE("pc_kbdc", pc_kbdc_device, clock_write_from_mb))
69   MCFG_AT_KEYBOARD_CONTROLLER_KEYBOARD_DATA_CB(DEVWRITELINE("pc_kbdc", pc_kbdc_device, data_write_from_mb))
70   MCFG_DEVICE_ADD("pc_kbdc", PC_KBDC, 0)
71   MCFG_PC_KBDC_OUT_CLOCK_CB(DEVWRITELINE("keybc", at_keyboard_controller_device, keyboard_clock_w))
72   MCFG_PC_KBDC_OUT_DATA_CB(DEVWRITELINE("keybc", at_keyboard_controller_device, keyboard_data_w))
73   MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
74
75   MCFG_DS12885_ADD("rtc")
76   MCFG_MC146818_IRQ_HANDLER(DEVWRITELINE("pic8259_slave", pic8259_device, ir0_w))
77   MCFG_MC146818_CENTURY_INDEX(0x32)
78
79   MCFG_BUS_MASTER_IDE_CONTROLLER_ADD("ide", ata_devices, "hdd", NULL, false)
80   MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("pic8259_slave", pic8259_device, ir6_w))
81   MCFG_BUS_MASTER_IDE_CONTROLLER_SPACE(":maincpu", AS_PROGRAM)
82
83   MCFG_BUS_MASTER_IDE_CONTROLLER_ADD("ide2", ata_devices, "cdrom", NULL, false)
84   MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("pic8259_slave", pic8259_device, ir7_w))
85   MCFG_BUS_MASTER_IDE_CONTROLLER_SPACE(":maincpu", AS_PROGRAM)
86
87   /* sound hardware */
88   MCFG_SPEAKER_STANDARD_MONO("mono")
89   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
90   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
91
92   MCFG_DEVICE_ADD("isabus", ISA16, 0)
93   MCFG_ISA16_CPU(":maincpu")
94   MCFG_ISA_OUT_IRQ2_CB(DEVWRITELINE("pic8259_slave",  pic8259_device, ir2_w)) // in place of irq 2 on at irq 9 is used
95   MCFG_ISA_OUT_IRQ3_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir3_w))
96   MCFG_ISA_OUT_IRQ4_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir4_w))
97   MCFG_ISA_OUT_IRQ5_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir5_w))
98   MCFG_ISA_OUT_IRQ6_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir6_w))
99   MCFG_ISA_OUT_IRQ7_CB(DEVWRITELINE("pic8259_master", pic8259_device, ir7_w))
100   MCFG_ISA_OUT_IRQ10_CB(DEVWRITELINE("pic8259_slave", pic8259_device, ir3_w))
101   MCFG_ISA_OUT_IRQ11_CB(DEVWRITELINE("pic8259_slave", pic8259_device, ir4_w))
102   MCFG_ISA_OUT_IRQ12_CB(DEVWRITELINE("pic8259_slave", pic8259_device, ir5_w))
103   MCFG_ISA_OUT_IRQ14_CB(DEVWRITELINE("pic8259_slave", pic8259_device, ir6_w))
104   MCFG_ISA_OUT_IRQ15_CB(DEVWRITELINE("pic8259_slave", pic8259_device, ir7_w))
105   MCFG_ISA_OUT_DRQ0_CB(DEVWRITELINE("dma8237_1", am9517a_device, dreq0_w))
106   MCFG_ISA_OUT_DRQ1_CB(DEVWRITELINE("dma8237_1", am9517a_device, dreq1_w))
107   MCFG_ISA_OUT_DRQ2_CB(DEVWRITELINE("dma8237_1", am9517a_device, dreq2_w))
108   MCFG_ISA_OUT_DRQ3_CB(DEVWRITELINE("dma8237_1", am9517a_device, dreq3_w))
109   MCFG_ISA_OUT_DRQ5_CB(DEVWRITELINE("dma8237_2", am9517a_device, dreq1_w))
110   MCFG_ISA_OUT_DRQ6_CB(DEVWRITELINE("dma8237_2", am9517a_device, dreq2_w))
111   MCFG_ISA_OUT_DRQ7_CB(DEVWRITELINE("dma8237_2", am9517a_device, dreq3_w))
112   // on board devices
113   MCFG_ISA16_SLOT_ADD("isabus","board1", pc_isa_onboard, "fdcsmc", true)
114   MCFG_ISA16_SLOT_ADD("isabus","board2", pc_isa_onboard, "comat", true)
115   MCFG_ISA16_SLOT_ADD("isabus","board3", pc_isa_onboard, "lpt", true)
116MACHINE_CONFIG_END
117
118//-------------------------------------------------
119//  machine_config_additions - device-specific
120//  machine configurations
121//-------------------------------------------------
122
123machine_config_constructor southbridge_device::device_mconfig_additions() const
124{
125   return MACHINE_CONFIG_NAME( southbridge );
126}
127
128southbridge_device::southbridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
129   : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
130   m_maincpu(*this, ":maincpu"),
131   m_pic8259_master(*this, "pic8259_master"),
132   m_pic8259_slave(*this, "pic8259_slave"),
133   m_dma8237_1(*this, "dma8237_1"),
134   m_dma8237_2(*this, "dma8237_2"),
135   m_pit8254(*this, "pit8254"),
136   m_keybc(*this, "keybc"),
137   m_isabus(*this, "isabus"),
138   m_speaker(*this, "speaker"),
139   m_ds12885(*this, "rtc"),
140   m_pc_kbdc(*this, "pc_kbdc"),
141   m_ide(*this, "ide"),
142   m_ide2(*this, "ide2")
143{
144}
145/**********************************************************
146 *
147 * Init functions
148 *
149 **********************************************************/
150
151/// HACK: the memory system cannot cope with mixing the  8 bit device map from the fdc with a 32 bit handler
152READ8_MEMBER(southbridge_device::ide_read_cs1_r)
153{
154   return m_ide->read_cs1(space, 1, (UINT32) 0xff0000) >> 16;
155}
156
157WRITE8_MEMBER(southbridge_device::ide_write_cs1_w)
158{
159   m_ide->write_cs1(space, 1, (UINT32) data << 16, (UINT32) 0xff0000);
160}
161
162READ8_MEMBER(southbridge_device::ide2_read_cs1_r)
163{
164   return m_ide2->read_cs1(space, 1, (UINT32) 0xff0000) >> 16;
165}
166
167WRITE8_MEMBER(southbridge_device::ide2_write_cs1_w)
168{
169   m_ide2->write_cs1(space, 1, (UINT32) data << 16, (UINT32) 0xff0000);
170}
171
172//-------------------------------------------------
173//  device_start - device-specific startup
174//-------------------------------------------------
175
176void southbridge_device::device_start()
177{
178   address_space& spaceio = machine().device(":maincpu")->memory().space(AS_IO);
179
180   spaceio.install_readwrite_handler(0x0000, 0x001f, read8_delegate(FUNC(am9517a_device::read),&(*m_dma8237_1)), write8_delegate(FUNC(am9517a_device::write),&(*m_dma8237_1)), 0xffffffff);
181   spaceio.install_readwrite_handler(0x0020, 0x003f, read8_delegate(FUNC(pic8259_device::read),&(*m_pic8259_master)), write8_delegate(FUNC(pic8259_device::write),&(*m_pic8259_master)), 0xffffffff);
182   spaceio.install_readwrite_handler(0x0040, 0x005f, read8_delegate(FUNC(pit8254_device::read),&(*m_pit8254)), write8_delegate(FUNC(pit8254_device::write),&(*m_pit8254)), 0xffffffff);
183   spaceio.install_readwrite_handler(0x0060, 0x0063, read8_delegate(FUNC(southbridge_device::at_keybc_r),this), write8_delegate(FUNC(southbridge_device::at_keybc_w),this), 0xffffffff);
184   spaceio.install_readwrite_handler(0x0064, 0x0067, read8_delegate(FUNC(at_keyboard_controller_device::status_r),&(*m_keybc)), write8_delegate(FUNC(at_keyboard_controller_device::command_w),&(*m_keybc)), 0xffffffff);
185   spaceio.install_readwrite_handler(0x0070, 0x007f, read8_delegate(FUNC(ds12885_device::read),&(*m_ds12885)), write8_delegate(FUNC(ds12885_device::write),&(*m_ds12885)), 0xffffffff);
186   spaceio.install_readwrite_handler(0x0080, 0x009f, read8_delegate(FUNC(southbridge_device::at_page8_r),this), write8_delegate(FUNC(southbridge_device::at_page8_w),this), 0xffffffff);
187   spaceio.install_readwrite_handler(0x00a0, 0x00bf, read8_delegate(FUNC(pic8259_device::read),&(*m_pic8259_slave)), write8_delegate(FUNC(pic8259_device::write),&(*m_pic8259_slave)), 0xffffffff);
188   spaceio.install_readwrite_handler(0x00c0, 0x00df, read8_delegate(FUNC(southbridge_device::at_dma8237_2_r),this), write8_delegate(FUNC(southbridge_device::at_dma8237_2_w),this), 0xffffffff);
189   spaceio.install_readwrite_handler(0x0170, 0x0177, read32_delegate(FUNC(bus_master_ide_controller_device::read_cs0),&(*m_ide2)), write32_delegate(FUNC(bus_master_ide_controller_device::write_cs0), &(*m_ide2)),0xffffffff);
190   spaceio.install_readwrite_handler(0x01f0, 0x01f7, read32_delegate(FUNC(bus_master_ide_controller_device::read_cs0),&(*m_ide)), write32_delegate(FUNC(bus_master_ide_controller_device::write_cs0), &(*m_ide)),0xffffffff);
191//  HACK: this works if you take out the (non working) fdc
192//  spaceio.install_readwrite_handler(0x0370, 0x0377, read32_delegate(FUNC(bus_master_ide_controller_device::read_cs1),&(*m_ide2)), write32_delegate(FUNC(bus_master_ide_controller_device::write_cs1), &(*m_ide2)),0xffffffff);
193//  spaceio.install_readwrite_handler(0x03f0, 0x03f7, read32_delegate(FUNC(bus_master_ide_controller_device::read_cs1),&(*m_ide)), write32_delegate(FUNC(bus_master_ide_controller_device::write_cs1), &(*m_ide)),0xffffffff);
194   spaceio.install_readwrite_handler(0x0374, 0x0377, read8_delegate(FUNC(southbridge_device::ide2_read_cs1_r),this), write8_delegate(FUNC(southbridge_device::ide2_write_cs1_w), this),0xff0000);
195   spaceio.install_readwrite_handler(0x03f4, 0x03f7, read8_delegate(FUNC(southbridge_device::ide_read_cs1_r),this), write8_delegate(FUNC(southbridge_device::ide_write_cs1_w), this),0xff0000);
196   spaceio.nop_readwrite(0x00e0, 0x00ef);
197}
198
199//-------------------------------------------------
200//  device_reset - device-specific reset
201//-------------------------------------------------
202
203void southbridge_device::device_reset()
204{
205   m_at_spkrdata = 0;
206   m_pit_out2 = 0;
207   m_dma_channel = -1;
208   m_cur_eop = false;
209   m_nmi_enabled = 0;
210   m_refresh = false;
211}
212
213
214/*************************************************************
215 *
216 * pic8259 configuration
217 *
218 *************************************************************/
219READ8_MEMBER( southbridge_device::get_slave_ack )
220{
221   if (offset==2) // IRQ = 2
222      return m_pic8259_slave->acknowledge();
223
224   return 0x00;
225}
226
227/*************************************************************************
228 *
229 *      PC Speaker related
230 *
231 *************************************************************************/
232
233void southbridge_device::at_speaker_set_spkrdata(UINT8 data)
234{
235   m_at_spkrdata = data ? 1 : 0;
236   m_speaker->level_w(m_at_spkrdata & m_pit_out2);
237}
238
239
240
241/*************************************************************
242 *
243 * pit8254 configuration
244 *
245 *************************************************************/
246
247WRITE_LINE_MEMBER( southbridge_device::at_pit8254_out0_changed )
248{
249   if (m_pic8259_master)
250      m_pic8259_master->ir0_w(state);
251}
252
253WRITE_LINE_MEMBER( southbridge_device::at_pit8254_out1_changed )
254{
255   if(state)
256      m_refresh = !m_refresh;
257}
258
259WRITE_LINE_MEMBER( southbridge_device::at_pit8254_out2_changed )
260{
261   m_pit_out2 = state ? 1 : 0;
262   m_speaker->level_w(m_at_spkrdata & m_pit_out2);
263}
264
265/*************************************************************************
266 *
267 *      PC DMA stuff
268 *
269 *************************************************************************/
270
271READ8_MEMBER( southbridge_device::at_page8_r )
272{
273   UINT8 data = m_at_pages[offset % 0x10];
274
275   switch(offset % 8)
276   {
277   case 1:
278      data = m_dma_offset[BIT(offset, 3)][2];
279      break;
280   case 2:
281      data = m_dma_offset[BIT(offset, 3)][3];
282      break;
283   case 3:
284      data = m_dma_offset[BIT(offset, 3)][1];
285      break;
286   case 7:
287      data = m_dma_offset[BIT(offset, 3)][0];
288      break;
289   }
290   return data;
291}
292
293
294WRITE8_MEMBER( southbridge_device::at_page8_w )
295{
296   m_at_pages[offset % 0x10] = data;
297
298   switch(offset % 8)
299   {
300   case 1:
301      m_dma_offset[BIT(offset, 3)][2] = data;
302      break;
303   case 2:
304      m_dma_offset[BIT(offset, 3)][3] = data;
305      break;
306   case 3:
307      m_dma_offset[BIT(offset, 3)][1] = data;
308      break;
309   case 7:
310      m_dma_offset[BIT(offset, 3)][0] = data;
311      break;
312   }
313}
314
315
316WRITE_LINE_MEMBER( southbridge_device::pc_dma_hrq_changed )
317{
318   m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
319
320   /* Assert HLDA */
321   m_dma8237_2->hack_w( state );
322}
323
324READ8_MEMBER(southbridge_device::pc_dma_read_byte)
325{
326   address_space& prog_space = m_maincpu->space(AS_PROGRAM); // get the right address space
327   if(m_dma_channel == -1)
328      return 0xff;
329   UINT8 result;
330   offs_t page_offset = (((offs_t) m_dma_offset[0][m_dma_channel]) << 16) & 0xFF0000;
331
332   result = prog_space.read_byte(page_offset + offset);
333   return result;
334}
335
336
337WRITE8_MEMBER(southbridge_device::pc_dma_write_byte)
338{
339   address_space& prog_space = m_maincpu->space(AS_PROGRAM); // get the right address space
340   if(m_dma_channel == -1)
341      return;
342   offs_t page_offset = (((offs_t) m_dma_offset[0][m_dma_channel]) << 16) & 0xFF0000;
343
344   prog_space.write_byte(page_offset + offset, data);
345}
346
347
348READ8_MEMBER(southbridge_device::pc_dma_read_word)
349{
350   address_space& prog_space = m_maincpu->space(AS_PROGRAM); // get the right address space
351   if(m_dma_channel == -1)
352      return 0xff;
353   UINT16 result;
354   offs_t page_offset = (((offs_t) m_dma_offset[1][m_dma_channel & 3]) << 16) & 0xFE0000;
355
356   result = prog_space.read_word(page_offset + ( offset << 1 ) );
357   m_dma_high_byte = result & 0xFF00;
358
359   return result & 0xFF;
360}
361
362
363WRITE8_MEMBER(southbridge_device::pc_dma_write_word)
364{
365   address_space& prog_space = m_maincpu->space(AS_PROGRAM); // get the right address space
366   if(m_dma_channel == -1)
367      return;
368   offs_t page_offset = (((offs_t) m_dma_offset[1][m_dma_channel & 3]) << 16) & 0xFE0000;
369
370   prog_space.write_word(page_offset + ( offset << 1 ), m_dma_high_byte | data);
371}
372
373
374READ8_MEMBER( southbridge_device::pc_dma8237_0_dack_r ) { return m_isabus->dack_r(0); }
375READ8_MEMBER( southbridge_device::pc_dma8237_1_dack_r ) { return m_isabus->dack_r(1); }
376READ8_MEMBER( southbridge_device::pc_dma8237_2_dack_r ) { return m_isabus->dack_r(2); }
377READ8_MEMBER( southbridge_device::pc_dma8237_3_dack_r ) { return m_isabus->dack_r(3); }
378READ8_MEMBER( southbridge_device::pc_dma8237_5_dack_r ) { return m_isabus->dack_r(5); }
379READ8_MEMBER( southbridge_device::pc_dma8237_6_dack_r ) { return m_isabus->dack_r(6); }
380READ8_MEMBER( southbridge_device::pc_dma8237_7_dack_r ) { return m_isabus->dack_r(7); }
381
382
383WRITE8_MEMBER( southbridge_device::pc_dma8237_0_dack_w ){ m_isabus->dack_w(0, data); }
384WRITE8_MEMBER( southbridge_device::pc_dma8237_1_dack_w ){ m_isabus->dack_w(1, data); }
385WRITE8_MEMBER( southbridge_device::pc_dma8237_2_dack_w ){ m_isabus->dack_w(2, data); }
386WRITE8_MEMBER( southbridge_device::pc_dma8237_3_dack_w ){ m_isabus->dack_w(3, data); }
387WRITE8_MEMBER( southbridge_device::pc_dma8237_5_dack_w ){ m_isabus->dack_w(5, data); }
388WRITE8_MEMBER( southbridge_device::pc_dma8237_6_dack_w ){ m_isabus->dack_w(6, data); }
389WRITE8_MEMBER( southbridge_device::pc_dma8237_7_dack_w ){ m_isabus->dack_w(7, data); }
390
391WRITE_LINE_MEMBER( southbridge_device::at_dma8237_out_eop )
392{
393   m_cur_eop = state == ASSERT_LINE;
394   if(m_dma_channel != -1)
395      m_isabus->eop_w(m_dma_channel, m_cur_eop ? ASSERT_LINE : CLEAR_LINE );
396}
397
398void southbridge_device::pc_select_dma_channel(int channel, bool state)
399{
400   if(!state) {
401      m_dma_channel = channel;
402      if(m_cur_eop)
403         m_isabus->eop_w(channel, ASSERT_LINE );
404
405   } else if(m_dma_channel == channel) {
406      m_dma_channel = -1;
407      if(m_cur_eop)
408         m_isabus->eop_w(channel, CLEAR_LINE );
409   }
410}
411
412
413WRITE_LINE_MEMBER( southbridge_device::pc_dack0_w ) { pc_select_dma_channel(0, state); }
414WRITE_LINE_MEMBER( southbridge_device::pc_dack1_w ) { pc_select_dma_channel(1, state); }
415WRITE_LINE_MEMBER( southbridge_device::pc_dack2_w ) { pc_select_dma_channel(2, state); }
416WRITE_LINE_MEMBER( southbridge_device::pc_dack3_w ) { pc_select_dma_channel(3, state); }
417WRITE_LINE_MEMBER( southbridge_device::pc_dack4_w ) { m_dma8237_1->hack_w( state ? 0 : 1); } // it's inverted
418WRITE_LINE_MEMBER( southbridge_device::pc_dack5_w ) { pc_select_dma_channel(5, state); }
419WRITE_LINE_MEMBER( southbridge_device::pc_dack6_w ) { pc_select_dma_channel(6, state); }
420WRITE_LINE_MEMBER( southbridge_device::pc_dack7_w ) { pc_select_dma_channel(7, state); }
421
422READ8_MEMBER( southbridge_device::at_portb_r )
423{
424   UINT8 data = m_at_speaker;
425   data &= ~0xd0; /* AT BIOS don't likes this being set */
426
427   /* 0x10 is the dram refresh line bit on the 5170, just a timer here, 15.085us. */
428   data |= m_refresh ? 0x10 : 0;
429
430   if (m_pit_out2)
431      data |= 0x20;
432   else
433      data &= ~0x20; /* ps2m30 wants this */
434
435   return data;
436}
437
438WRITE8_MEMBER( southbridge_device::at_portb_w )
439{
440   m_at_speaker = data;
441   m_pit8254->write_gate2(BIT(data, 0));
442   at_speaker_set_spkrdata( BIT(data, 1));
443   m_channel_check = BIT(data, 3);
444   m_isabus->set_nmi_state((m_nmi_enabled==0) && (m_channel_check==0));
445}
446
447READ8_MEMBER( southbridge_device::at_dma8237_2_r )
448{
449   return m_dma8237_2->read( space, offset / 2);
450}
451
452WRITE8_MEMBER( southbridge_device::at_dma8237_2_w )
453{
454   m_dma8237_2->write( space, offset / 2, data);
455}
456
457READ8_MEMBER( southbridge_device::at_keybc_r )
458{
459   switch (offset)
460   {
461   case 0: return m_keybc->data_r(space, 0);
462   case 1: return at_portb_r(space, 0);
463   }
464
465   return 0xff;
466}
467
468WRITE8_MEMBER( southbridge_device::at_keybc_w )
469{
470   switch (offset)
471   {
472   case 0: m_keybc->data_w(space, 0, data); break;
473   case 1: at_portb_w(space, 0, data); break;
474   }
475}
476
477
478WRITE8_MEMBER( southbridge_device::write_rtc )
479{
480   if (offset==0) {
481      m_nmi_enabled = BIT(data,7);
482      m_isabus->set_nmi_state((m_nmi_enabled==0) && (m_channel_check==0));
483      m_ds12885->write(space,0,data);
484   }
485   else {
486      m_ds12885->write(space,offset,data);
487   }
488}
trunk/src/emu/bus/pci/southbridge.h
r0r241778
1#pragma once
2
3#ifndef __SOUTHBRIDGE_H__
4#define __SOUTHBRIDGE_H__
5
6#include "emu.h"
7
8#include "machine/ins8250.h"
9#include "machine/ds128x.h"
10#include "machine/pic8259.h"
11#include "machine/pit8253.h"
12
13#include "machine/ataintf.h"
14#include "machine/at_keybc.h"
15
16#include "imagedev/harddriv.h"
17#include "pci.h"
18
19#include "sound/dac.h"
20#include "sound/speaker.h"
21#include "machine/ram.h"
22#include "machine/nvram.h"
23#include "bus/isa/isa.h"
24#include "bus/isa/isa_cards.h"
25
26#include "machine/pc_lpt.h"
27#include "bus/pc_kbd/pc_kbdc.h"
28
29#include "machine/am9517a.h"
30
31//**************************************************************************
32//  TYPE DEFINITIONS
33//**************************************************************************
34
35// ======================> southbridge_device
36
37class southbridge_device :
38      public device_t
39{
40public:
41      // construction/destruction
42      southbridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
43
44      // optional information overrides
45      virtual machine_config_constructor device_mconfig_additions() const;
46
47protected:
48      // device-level overrides
49      virtual void device_start();
50      virtual void device_reset();
51public:
52
53      required_device<cpu_device> m_maincpu;
54      required_device<pic8259_device> m_pic8259_master;
55      required_device<pic8259_device> m_pic8259_slave;
56      required_device<am9517a_device> m_dma8237_1;
57      required_device<am9517a_device> m_dma8237_2;
58      required_device<pit8254_device> m_pit8254;
59      required_device<at_keyboard_controller_device> m_keybc;
60      required_device<isa16_device> m_isabus;
61      required_device<speaker_sound_device> m_speaker;
62      required_device<ds12885_device> m_ds12885;
63      required_device<pc_kbdc_device> m_pc_kbdc;
64      required_device<bus_master_ide_controller_device> m_ide;
65      required_device<bus_master_ide_controller_device> m_ide2;
66      DECLARE_READ8_MEMBER(at_page8_r);
67      DECLARE_WRITE8_MEMBER(at_page8_w);
68      DECLARE_READ8_MEMBER(at_portb_r);
69      DECLARE_WRITE8_MEMBER(at_portb_w);
70      DECLARE_READ8_MEMBER(get_slave_ack);
71      DECLARE_WRITE_LINE_MEMBER(at_pit8254_out0_changed);
72      DECLARE_WRITE_LINE_MEMBER(at_pit8254_out1_changed);
73      DECLARE_WRITE_LINE_MEMBER(at_pit8254_out2_changed);
74      DECLARE_WRITE_LINE_MEMBER(pc_dma_hrq_changed);
75      DECLARE_READ8_MEMBER(pc_dma8237_0_dack_r);
76      DECLARE_READ8_MEMBER(pc_dma8237_1_dack_r);
77      DECLARE_READ8_MEMBER(pc_dma8237_2_dack_r);
78      DECLARE_READ8_MEMBER(pc_dma8237_3_dack_r);
79      DECLARE_READ8_MEMBER(pc_dma8237_5_dack_r);
80      DECLARE_READ8_MEMBER(pc_dma8237_6_dack_r);
81      DECLARE_READ8_MEMBER(pc_dma8237_7_dack_r);
82      DECLARE_WRITE8_MEMBER(pc_dma8237_0_dack_w);
83      DECLARE_WRITE8_MEMBER(pc_dma8237_1_dack_w);
84      DECLARE_WRITE8_MEMBER(pc_dma8237_2_dack_w);
85      DECLARE_WRITE8_MEMBER(pc_dma8237_3_dack_w);
86      DECLARE_WRITE8_MEMBER(pc_dma8237_5_dack_w);
87      DECLARE_WRITE8_MEMBER(pc_dma8237_6_dack_w);
88      DECLARE_WRITE8_MEMBER(pc_dma8237_7_dack_w);
89      DECLARE_WRITE_LINE_MEMBER(at_dma8237_out_eop);
90      DECLARE_WRITE_LINE_MEMBER(pc_dack0_w);
91      DECLARE_WRITE_LINE_MEMBER(pc_dack1_w);
92      DECLARE_WRITE_LINE_MEMBER(pc_dack2_w);
93      DECLARE_WRITE_LINE_MEMBER(pc_dack3_w);
94      DECLARE_WRITE_LINE_MEMBER(pc_dack4_w);
95      DECLARE_WRITE_LINE_MEMBER(pc_dack5_w);
96      DECLARE_WRITE_LINE_MEMBER(pc_dack6_w);
97      DECLARE_WRITE_LINE_MEMBER(pc_dack7_w);
98      DECLARE_READ8_MEMBER(ide_read_cs1_r);
99      DECLARE_WRITE8_MEMBER(ide_write_cs1_w);
100      DECLARE_READ8_MEMBER(ide2_read_cs1_r);
101      DECLARE_WRITE8_MEMBER(ide2_write_cs1_w);
102      DECLARE_READ8_MEMBER(at_dma8237_2_r);
103      DECLARE_WRITE8_MEMBER(at_dma8237_2_w);
104      DECLARE_READ8_MEMBER(at_keybc_r);
105      DECLARE_WRITE8_MEMBER(at_keybc_w);
106      DECLARE_WRITE8_MEMBER(write_rtc);
107      DECLARE_READ8_MEMBER(pc_dma_read_byte);
108      DECLARE_WRITE8_MEMBER(pc_dma_write_byte);
109      DECLARE_READ8_MEMBER(pc_dma_read_word);
110      DECLARE_WRITE8_MEMBER(pc_dma_write_word);
111protected:
112      UINT8 m_at_spkrdata;
113      UINT8 m_pit_out2;
114      int m_dma_channel;
115      bool m_cur_eop;
116      UINT8 m_dma_offset[2][4];
117      UINT8 m_at_pages[0x10];
118      UINT16 m_dma_high_byte;
119      UINT8 m_at_speaker;
120      bool m_refresh;
121      void at_speaker_set_spkrdata(UINT8 data);
122
123      UINT8 m_channel_check;
124      UINT8 m_nmi_enabled;
125
126      void pc_select_dma_channel(int channel, bool state);
127};
128
129#endif  /* __SOUTHBRIDGE_H__ */
trunk/src/emu/cpu/arm7/arm7drc.inc
r241777r241778
4141    DEBUGGING
4242***************************************************************************/
4343
44#define LOG_UML                         (0)
4445#define LOG_NATIVE                      (0)
4546
4647#define SINGLE_INSTRUCTION_MODE         (0)
r241777r241778
153154   m_impstate.cache = cache;
154155
155156   /* initialize the UML generator */
157   if (LOG_UML)
158      flags |= DRCUML_OPTION_LOG_UML;
156159   if (LOG_NATIVE)
157160      flags |= DRCUML_OPTION_LOG_NATIVE;
158161   m_impstate.drcuml = new drcuml_state(*this, *cache, flags, 1, 32, 1);
r241777r241778
352355   /* get a description of this sequence */
353356   // TODO FIXME
354357   const opcode_desc *desclist = NULL; //m_impstate.drcfe->describe_code(pc); // TODO
355//  if (drcuml->logging() || LOG_NATIVE)
358//  if (LOG_UML || LOG_NATIVE)
356359//      log_opcode_desc(drcuml, desclist, 0);
357360
358361   /* if we get an error back, flush the cache and try again */
r241777r241778
371374            UINT32 nextpc;
372375
373376            /* add a code log entry */
374            if (drcuml->logging())
377            if (LOG_UML)
375378               block->append_comment("-------------------------");                     // comment
376379
377380            /* determine the last instruction in this sequence */
r241777r241778
12061209void arm7_cpu_device::generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast)
12071210{
12081211   const opcode_desc *curdesc;
1209   if (m_impstate.drcuml->logging())
1212   if (LOG_UML)
12101213   {
12111214      block->append_comment("[Validation for %08X]", seqhead->pc);                // comment
12121215   }
r241777r241778
12751278
12761279   /* add an entry for the log */
12771280   // TODO FIXME
1278//  if (m_impstate.drcuml->logging() && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
1281//  if (LOG_UML && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
12791282//      log_add_disasm_comment(block, desc->pc, desc->opptr.l[0]);
12801283
12811284   /* set the PC map variable */
trunk/src/emu/cpu/drcuml.c
r241777r241778
121121drcuml_state::drcuml_state(device_t &device, drc_cache &cache, UINT32 flags, int modes, int addrbits, int ignorebits)
122122   : m_device(device),
123123      m_cache(cache),
124      m_beintf(device.machine().options().drc_use_c() ?
124      m_beintf((device.machine().options().drc_use_c()) ?
125125         *static_cast<drcbe_interface *>(auto_alloc(device.machine(), drcbe_c(*this, device, cache, flags, modes, addrbits, ignorebits))) :
126126         *static_cast<drcbe_interface *>(auto_alloc(device.machine(), drcbe_native(*this, device, cache, flags, modes, addrbits, ignorebits)))),
127127      m_umllog(NULL)
128128{
129129   // if we're to log, create the logfile
130   if (device.machine().options().drc_log_uml())
131   {
132      astring filename("drcuml_", m_device.shortname(), ".asm");
133      m_umllog = fopen(filename.cstr(), "w");
134   }
130   if (flags & DRCUML_OPTION_LOG_UML)
131      m_umllog = fopen("drcuml.asm", "w");
135132}
136133
137134
r241777r241778
277274      va_start(va, format);
278275      vfprintf(m_umllog, format, va);
279276      va_end(va);
280      fflush(m_umllog);
281277   }
282278}
283279
trunk/src/emu/cpu/drcuml.h
r241777r241778
2222//**************************************************************************
2323
2424// these options are passed into drcuml_alloc() and control global behaviors
25const UINT32 DRCUML_OPTION_LOG_UML      = 0x0002;       // generate a UML disassembly of each block
2526const UINT32 DRCUML_OPTION_LOG_NATIVE   = 0x0004;       // tell the back-end to generate a native disassembly of each block
2627
2728
trunk/src/emu/cpu/mips/mips3.c
r241777r241778
355355
356356   UINT32 flags = 0;
357357   /* initialize the UML generator */
358   if (LOG_UML)
359      flags |= DRCUML_OPTION_LOG_UML;
358360   if (LOG_NATIVE)
359361      flags |= DRCUML_OPTION_LOG_NATIVE;
360362   m_drcuml = auto_alloc(machine(), drcuml_state(*this, m_cache, flags, 8, 32, 2));
trunk/src/emu/cpu/mips/mips3com.h
r241777r241778
2222#define PRINTF_TLB              (0)
2323#define USE_ABI_REG_NAMES       (1)
2424
25#define LOG_UML                         (0)
2526#define LOG_NATIVE                      (0)
2627
2728#define DISABLE_FAST_REGISTERS          (0)
trunk/src/emu/cpu/mips/mips3drc.c
r241777r241778
275275
276276   /* get a description of this sequence */
277277   desclist = m_drcfe->describe_code(pc);
278   if (drcuml->logging() || LOG_NATIVE)
278   if (LOG_UML || LOG_NATIVE)
279279      log_opcode_desc(drcuml, desclist, 0);
280280
281281   /* if we get an error back, flush the cache and try again */
r241777r241778
294294            UINT32 nextpc;
295295
296296            /* add a code log entry */
297            if (drcuml->logging())
297            if (LOG_UML)
298298               block->append_comment("-------------------------");                     // comment
299299
300300            /* determine the last instruction in this sequence */
r241777r241778
10701070void mips3_device::generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast)
10711071{
10721072   const opcode_desc *curdesc;
1073   if (m_drcuml->logging())
1073   if (LOG_UML)
10741074      block->append_comment("[Validation for %08X]", seqhead->pc);                // comment
10751075
10761076   /* loose verify or single instruction: just compare and fail */
r241777r241778
11471147   int hotnum;
11481148
11491149   /* add an entry for the log */
1150   if (m_drcuml->logging() && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
1150   if (LOG_UML && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
11511151      log_add_disasm_comment(block, desc->pc, desc->opptr.l[0]);
11521152
11531153   /* set the PC map variable */
r241777r241778
13871387
13881388      case 0x0f:  /* LUI - MIPS I */
13891389         if (RTREG != 0)
1390            UML_DMOV(block, R64(RTREG), UIMMVAL << 16);                 // dmov    <rtreg>,UIMMVAL << 16
1390            UML_DMOV(block, R64(RTREG), SIMMVAL << 16);                 // dmov    <rtreg>,SIMMVAL << 16
13911391         return TRUE;
13921392
13931393      case 0x08:  /* ADDI - MIPS I */
r241777r241778
27642764
27652765            case 0x07:
27662766               if (IS_SINGLE(op))  /* NEG.S - MIPS I */
2767               {
27682767                  UML_FSNEG(block, FPR32(FDREG), FPR32(FSREG));               // fsneg   <fdreg>,<fsreg>
2769                  UML_CMP(block, FPR32(FSREG), 0);                            // cmp     <fsreg>,0.0
2770                  UML_MOVc(block, COND_E, FPR32(FDREG), 0x80000000);          // mov     <fdreg>,-0.0,e
2771               }
27722768               else                /* NEG.D - MIPS I */
2773               {
27742769                  UML_FDNEG(block, FPR64(FDREG), FPR64(FSREG));               // fdneg   <fdreg>,<fsreg>
2775                  UML_CMP(block, FPR64(FSREG), 0);                            // cmp     <fsreg>,0.0
2776                  UML_DMOVc(block, COND_E, FPR64(FDREG), 0x8000000000000000L);// dmov    <fdreg>,-0.0,e
2777               }
27782770               return TRUE;
27792771
27802772            case 0x08:
r241777r241778
27822774                  UML_FSTOINT(block, FPR64(FDREG), FPR32(FSREG), SIZE_QWORD, ROUND_ROUND);// fstoint <fdreg>,<fsreg>,qword,round
27832775               else                /* ROUND.L.D - MIPS III */
27842776                  UML_FDTOINT(block, FPR64(FDREG), FPR64(FSREG), SIZE_QWORD, ROUND_ROUND);// fdtoint <fdreg>,<fsreg>,qword,round
2785               UML_DSEXT(block, FPR64(FDREG), FPR64(FDREG), SIZE_DWORD);
27862777               return TRUE;
27872778
27882779            case 0x09:
r241777r241778
27902781                  UML_FSTOINT(block, FPR64(FDREG), FPR32(FSREG), SIZE_QWORD, ROUND_TRUNC);// fstoint <fdreg>,<fsreg>,qword,trunc
27912782               else                /* TRUNC.L.D - MIPS III */
27922783                  UML_FDTOINT(block, FPR64(FDREG), FPR64(FSREG), SIZE_QWORD, ROUND_TRUNC);// fdtoint <fdreg>,<fsreg>,qword,trunc
2793               UML_DSEXT(block, FPR64(FDREG), FPR64(FDREG), SIZE_DWORD);
27942784               return TRUE;
27952785
27962786            case 0x0a:
r241777r241778
27982788                  UML_FSTOINT(block, FPR64(FDREG), FPR32(FSREG), SIZE_QWORD, ROUND_CEIL);// fstoint <fdreg>,<fsreg>,qword,ceil
27992789               else                /* CEIL.L.D - MIPS III */
28002790                  UML_FDTOINT(block, FPR64(FDREG), FPR64(FSREG), SIZE_QWORD, ROUND_CEIL);// fdtoint <fdreg>,<fsreg>,qword,ceil
2801               UML_DSEXT(block, FPR64(FDREG), FPR64(FDREG), SIZE_DWORD);
28022791               return TRUE;
28032792
28042793            case 0x0b:
r241777r241778
28062795                  UML_FSTOINT(block, FPR64(FDREG), FPR32(FSREG), SIZE_QWORD, ROUND_FLOOR);// fstoint <fdreg>,<fsreg>,qword,floor
28072796               else                /* FLOOR.L.D - MIPS III */
28082797                  UML_FDTOINT(block, FPR64(FDREG), FPR64(FSREG), SIZE_QWORD, ROUND_FLOOR);// fdtoint <fdreg>,<fsreg>,qword,floor
2809               UML_DSEXT(block, FPR64(FDREG), FPR64(FDREG), SIZE_DWORD);
28102798               return TRUE;
28112799
28122800            case 0x0c:
r241777r241778
31293117
31303118void mips3_device::log_add_disasm_comment(drcuml_block *block, UINT32 pc, UINT32 op)
31313119{
3132   if (m_drcuml->logging())
3133   {
3134      char buffer[100];
3135      dasmmips3(buffer, pc, op);
3136      block->append_comment("%08X: %s", pc, buffer);                                  // comment
3137   }
3120#if (LOG_UML)
3121   char buffer[100];
3122   dasmmips3(buffer, pc, op);
3123   block->append_comment("%08X: %s", pc, buffer);                                  // comment
3124#endif
31383125}
31393126
31403127
r241777r241778
32643251      char buffer[100];
32653252
32663253      /* disassemle the current instruction and output it to the log */
3267      if (drcuml->logging() || LOG_NATIVE)
3268      {
3269         if (desclist->flags & OPFLAG_VIRTUAL_NOOP)
3270            strcpy(buffer, "<virtual nop>");
3271         else
3272            dasmmips3(buffer, desclist->pc, desclist->opptr.l[0]);
3273      }
3254#if (LOG_UML || LOG_NATIVE)
3255      if (desclist->flags & OPFLAG_VIRTUAL_NOOP)
3256         strcpy(buffer, "<virtual nop>");
32743257      else
3275         strcpy(buffer, "???");
3258         dasmmips3(buffer, desclist->pc, desclist->opptr.l[0]);
3259#else
3260      strcpy(buffer, "???");
3261#endif
32763262      drcuml->log_printf("%08X [%08X] t:%08X f:%s: %-30s", desclist->pc, desclist->physpc, desclist->targetpc, log_desc_flags_to_string(desclist->flags), buffer);
32773263
32783264      /* output register states */
trunk/src/emu/cpu/mips/mips3fe.c
r241777r241778
106106            desc.regin[0] |= REGFLAG_R(RSREG) | REGFLAG_R(RTREG);
107107            desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
108108         }
109         desc.targetpc = desc.pc + 4 + SIMMVAL * 4;
109         desc.targetpc = desc.pc + 4 + (SIMMVAL << 2);
110110         desc.delayslots = 1;
111111         desc.skipslots = (opswitch & 0x10) ? 1 : 0;
112112         return true;
r241777r241778
122122            desc.regin[0] |= REGFLAG_R(RSREG);
123123            desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
124124         }
125         desc.targetpc = desc.pc + 4 + SIMMVAL * 4;
125         desc.targetpc = desc.pc + 4 + (SIMMVAL << 2);
126126         desc.delayslots = 1;
127127         desc.skipslots = (opswitch & 0x10) ? 1 : 0;
128128         return true;
r241777r241778
396396            desc.regin[0] |= REGFLAG_R(RSREG);
397397            desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
398398         }
399         desc.targetpc = desc.pc + 4 + SIMMVAL * 4;
399         desc.targetpc = desc.pc + 4 + (SIMMVAL << 2);
400400         desc.delayslots = 1;
401401         desc.skipslots = (RTREG & 0x02) ? 1 : 0;
402402         return true;
r241777r241778
423423            desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
424424         }
425425         desc.regout[0] |= REGFLAG_R(31);
426         desc.targetpc = desc.pc + 4 + SIMMVAL * 4;
426         desc.targetpc = desc.pc + 4 + (SIMMVAL << 2);
427427         desc.delayslots = 1;
428428         desc.skipslots = (RTREG & 0x02) ? 1 : 0;
429429         return true;
r241777r241778
508508            case 0x00:  // BCzF
509509            case 0x01:  // BCzT
510510               desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
511               desc.targetpc = desc.pc + 4 + SIMMVAL * 4;
511               desc.targetpc = desc.pc + 4 + (SIMMVAL << 2);
512512               desc.delayslots = 1;
513513               return true;
514514         }
r241777r241778
580580            case 0x03:  // BCzTL
581581               desc.regin[2] |= REGFLAG_FCC;
582582               desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
583               desc.targetpc = desc.pc + 4 + SIMMVAL * 4;
583               desc.targetpc = desc.pc + 4 + (SIMMVAL << 2);
584584               desc.delayslots = 1;
585585               desc.skipslots = (RTREG & 0x02) ? 1 : 0;
586586               return true;
r241777r241778
730730            case 0x00:  // BCzF
731731            case 0x01:  // BCzT
732732               desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
733               desc.targetpc = desc.pc + 4 + SIMMVAL * 4;
733               desc.targetpc = desc.pc + 4 + (SIMMVAL << 2);
734734               desc.delayslots = 1;
735735               return true;
736736         }
trunk/src/emu/cpu/powerpc/ppccom.c
r241777r241778
880880
881881   UINT32 flags = 0;
882882   /* initialize the UML generator */
883   if (LOG_UML)
884      flags |= DRCUML_OPTION_LOG_UML;
883885   if (LOG_NATIVE)
884886      flags |= DRCUML_OPTION_LOG_NATIVE;
885887   m_drcuml = auto_alloc(machine(), drcuml_state(*this, m_cache, flags, 8, 32, 2));
trunk/src/emu/cpu/powerpc/ppccom.h
r241777r241778
1818    DEBUGGING
1919***************************************************************************/
2020
21#define LOG_UML                         (0)
2122#define LOG_NATIVE                      (0)
2223
2324#define DISABLE_FLAG_OPTIMIZATIONS      (0)
trunk/src/emu/cpu/powerpc/ppcdrc.c
r241777r241778
368368
369369   /* get a description of this sequence */
370370   desclist = m_drcfe->describe_code(pc);
371   if (m_drcuml->logging() || LOG_NATIVE)
371   if (LOG_UML || LOG_NATIVE)
372372      log_opcode_desc(m_drcuml, desclist, 0);
373373
374374   bool succeeded = false;
r241777r241778
386386            UINT32 nextpc;
387387
388388            /* add a code log entry */
389            if (m_drcuml->logging())
389            if (LOG_UML)
390390               block->append_comment("-------------------------");                         // comment
391391
392392            /* determine the last instruction in this sequence */
r241777r241778
15871587void ppc_device::generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast)
15881588{
15891589   const opcode_desc *curdesc;
1590   if (m_drcuml->logging())
1590   if (LOG_UML)
15911591      block->append_comment("[Validation for %08X]", seqhead->pc);                        // comment
15921592
15931593   /* loose verify or single instruction: just compare and fail */
r241777r241778
16441644   int hotnum;
16451645
16461646   /* add an entry for the log */
1647   if (m_drcuml->logging() && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
1647   if (LOG_UML && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
16481648      log_add_disasm_comment(block, desc->pc, desc->opptr.l[0]);
16491649
16501650   /* set the PC map variable */
r241777r241778
37123712void ppc_device::log_add_disasm_comment(drcuml_block *block, UINT32 pc, UINT32 op)
37133713{
37143714   char buffer[100];
3715   if (m_drcuml->logging())
3715   if (LOG_UML)
37163716   {
37173717      ppc_dasm_one(buffer, pc, op);
37183718      block->append_comment("%08X: %s", pc, buffer);                                  // comment
r241777r241778
38953895      char buffer[100];
38963896
38973897      /* disassemle the current instruction and output it to the log */
3898      if (drcuml->logging() || LOG_NATIVE)
3898      if (LOG_UML || LOG_NATIVE)
38993899      {
39003900         if (desclist->flags & OPFLAG_VIRTUAL_NOOP)
39013901            strcpy(buffer, "<virtual nop>");
trunk/src/emu/cpu/rsp/rsp.c
r241777r241778
121121   , m_program_config("program", ENDIANNESS_BIG, 32, 32)
122122   , m_cache(CACHE_SIZE + sizeof(internal_rsp_state))
123123   , m_drcuml(NULL)
124//  , m_drcuml(*this, m_cache, ( RSP_LOG_NATIVE ? DRCUML_OPTION_LOG_NATIVE : 0 ), 8, 32, 2)
124//  , m_drcuml(*this, m_cache, ( RSP_LOG_UML ? DRCUML_OPTION_LOG_UML : 0 ) | ( RSP_LOG_NATIVE ? DRCUML_OPTION_LOG_NATIVE : 0 ), 8, 32, 2)
125125   , m_drcfe(NULL)
126126   , m_drcoptions(0)
127127   , m_cache_dirty(TRUE)
r241777r241778
432432
433433   /* initialize the UML generator */
434434   UINT32 drc_flags = 0;
435   if (RSP_LOG_UML)
436   {
437      drc_flags |= DRCUML_OPTION_LOG_UML;
438   }
435439   if (RSP_LOG_NATIVE)
436440   {
437441      drc_flags |= DRCUML_OPTION_LOG_NATIVE;
trunk/src/emu/cpu/rsp/rsp.h
r241777r241778
2222
2323#define USE_SIMD        (0)
2424#define SIMUL_SIMD      (0)
25#define RSP_LOG_UML     (0)
2526#define RSP_LOG_NATIVE  (0)
2627
2728#if USE_SIMD
r241777r241778
298299   void ccfunc_rsp_vabs_scalar();
299300   void ccfunc_rsp_vaddc_scalar();
300301   void ccfunc_rsp_vsubc_scalar();
301   void ccfunc_rsp_vaddb_scalar();
302302   void ccfunc_rsp_vsaw_scalar();
303303   void ccfunc_rsp_vlt_scalar();
304304   void ccfunc_rsp_veq_scalar();
r241777r241778
325325   void ccfunc_mtc2_scalar();
326326   void ccfunc_ctc2_scalar();
327327#endif
328   void ccfunc_rsp_vrsq_scalar();
329328#if USE_SIMD && SIMUL_SIMD
330329   void ccfunc_backup_regs();
331330   void ccfunc_restore_regs();
r241777r241778
542541   void generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast);
543542   void generate_sequence_instruction(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc);
544543   void generate_delay_slot_and_branch(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc, UINT8 linkreg);
545   void generate_branch(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc);
546544   int generate_vector_opcode(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc);
547545   int generate_opcode(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc);
548546   int generate_special(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc);
trunk/src/emu/cpu/rsp/rspdrc.c
r241777r241778
46864686      INT32 s2 = (UINT32)(UINT16)w2;
46874687      INT32 r = s1 + s2;
46884688
4689      vres[i] = (INT16)(r);
4689      vres[i] = (INT16)r;
46904690      SET_ACCUM_L((INT16)r, i);
46914691
46924692      if (r & 0xffff0000)
r241777r241778
47544754{
47554755   int op = m_rsp_state->arg0;
47564756
4757
47574758   CLEAR_ZERO_FLAGS();
47584759   CLEAR_CARRY_FLAGS();
47594760
r241777r241778
47884789}
47894790#endif
47904791
4791// VADDB
4792//
4793// 31       25  24     20      15      10      5        0
4794// ------------------------------------------------------
4795// | 010010 | 1 | EEEE | SSSSS | TTTTT | DDDDD | 010110 |
4796// ------------------------------------------------------
4797//
4798// Adds two vector registers bytewise with rounding
4799inline void rsp_device::ccfunc_rsp_vaddb_scalar()
4800{
4801   const int op = m_rsp_state->arg0;
4802   const int round = (EL == 0) ? 0 : (1 << (EL - 1));
4803
4804   INT16 vres[8];
4805   for (int i = 0; i < 8; i++)
4806   {
4807      UINT16 w1, w2;
4808      SCALAR_GET_VS1(w1, i);
4809      SCALAR_GET_VS2(w2, i);
4810
4811      UINT8 hb1 = w1 >> 8;
4812      UINT8 lb1 = w1 & 0xff;
4813      UINT8 hb2 = w2 >> 8;
4814      UINT8 lb2 = w2 & 0xff;
4815
4816      UINT16 hs = hb1 + hb2 + round;
4817      UINT16 ls = lb1 + lb2 + round;
4818
4819      SET_ACCUM_L((hs << 8) | ls, i);
4820
4821      hs >>= EL;
4822      if (hs > 255)
4823      {
4824         hs = 255;
4825      }
4826      else if (hs < 0)
4827      {
4828         hs = 0;
4829      }
4830
4831      ls >>= EL;
4832      if (ls > 255)
4833      {
4834         ls = 255;
4835      }
4836      else if (ls < 0)
4837      {
4838         ls = 0;
4839      }
4840
4841      vres[i] = 0; // VD writeback disabled on production hardware
4842      // vres[i] = (hs << 8) | ls;
4843   }
4844   WRITEBACK_RESULT();
4845}
4846
4847static void cfunc_rsp_vaddb_scalar(void *param)
4848{
4849   ((rsp_device *)param)->ccfunc_rsp_vaddb_scalar();
4850}
4851
48524792#if USE_SIMD
48534793// VSAW
48544794//
r241777r241778
63786318
63796319   UINT16 urec;
63806320   SIMD_EXTRACT16(m_xv[VS2REG], urec, EL);
6381   INT32 rec = (INT16)urec;
6321   INT32 rec = (urec | m_reciprocal_high);
6322
63826323   INT32 datainput = rec;
63836324
6384   if (m_dp_allowed)
6325   if (rec < 0)
63856326   {
6386      rec = (rec & 0x0000ffff) | m_reciprocal_high;
6387      datainput = rec;
6388
6389      if (rec < 0)
6327      if (m_dp_allowed)
63906328      {
63916329         if (rec < -32768)
63926330         {
r241777r241778
63976335            datainput = -datainput;
63986336         }
63996337      }
6338      else
6339      {
6340         datainput = -datainput;
6341      }
64006342   }
6401   else if (datainput < 0)
6402   {
6403      datainput = -datainput;
64046343
6405      shifter = 0x10;
6406   }
64076344
64086345   if (datainput)
64096346   {
r241777r241778
64166353         }
64176354      }
64186355   }
6356   else
6357   {
6358      if (m_dp_allowed)
6359      {
6360         shifter = 0;
6361      }
6362      else
6363      {
6364         shifter = 0x10;
6365      }
6366   }
64196367
64206368   INT32 address = ((datainput << shifter) & 0x7fc00000) >> 22;
64216369   INT32 fetchval = rsp_divtable[address];
64226370   INT32 temp = (0x40000000 | (fetchval << 14)) >> ((~shifter) & 0x1f);
6423   temp ^= rec >> 31;
6424
6371   if (rec < 0)
6372   {
6373      temp = ~temp;
6374   }
64256375   if (!rec)
64266376   {
64276377      temp = 0x7fffffff;
r241777r241778
64586408   int op = m_rsp_state->arg0;
64596409
64606410   INT32 shifter = 0;
6461   INT32 rec = (INT16)VREG_S(VS2REG, EL & 7);
6411   INT32 rec = ((UINT16)(VREG_S(VS2REG, EL & 7)) | m_reciprocal_high);
64626412   INT32 datainput = rec;
64636413
6464   if (m_dp_allowed)
6414   if (rec < 0)
64656415   {
6466      rec = (rec & 0x0000ffff) | m_reciprocal_high;
6467      datainput = rec;
6468
6469      if (rec < 0)
6416      if (m_dp_allowed)
64706417      {
64716418         if (rec < -32768)
64726419         {
r241777r241778
64776424            datainput = -datainput;
64786425         }
64796426      }
6427      else
6428      {
6429         datainput = -datainput;
6430      }
64806431   }
6481   else if (datainput < 0)
6482   {
6483      datainput = -datainput;
64846432
6485      shifter = 0x10;
6486   }
64876433
64886434   if (datainput)
64896435   {
r241777r241778
64966442         }
64976443      }
64986444   }
6445   else
6446   {
6447      if (m_dp_allowed)
6448      {
6449         shifter = 0;
6450      }
6451      else
6452      {
6453         shifter = 0x10;
6454      }
6455   }
64996456
6500   UINT32 address = (datainput << shifter) >> 22;
6501   INT32 fetchval = rsp_divtable[address & 0x1ff];
6457   INT32 address = ((datainput << shifter) & 0x7fc00000) >> 22;
6458   INT32 fetchval = rsp_divtable[address];
65026459   INT32 temp = (0x40000000 | (fetchval << 14)) >> ((~shifter) & 0x1f);
6503   temp ^= rec >> 31;
6460   if (rec < 0)
6461   {
6462      temp = ~temp;
6463   }
65046464   if (!rec)
65056465   {
65066466      temp = 0x7fffffff;
r241777r241778
66326592}
66336593#endif
66346594
6635// VRSQ
6636//
6637// 31       25  24     20      15      10      5        0
6638// ------------------------------------------------------
6639// | 010010 | 1 | EEEE | SSSSS | ?FFFF | DDDDD | 110100 |
6640// ------------------------------------------------------
6641//
6642// Calculates reciprocal square-root
6643
6644inline void rsp_device::ccfunc_rsp_vrsq_scalar()
6645{
6646   int op = m_rsp_state->arg0;
6647
6648   INT32 shifter = 0;
6649   INT32 rec = (INT16)VREG_S(VS2REG, EL & 7);
6650   INT32 datainput = (rec < 0) ? (-rec) : (rec);
6651
6652   if (rec < 0)
6653   {
6654      if (rec < -32768)
6655      {
6656         datainput = ~datainput;
6657      }
6658      else
6659      {
6660         datainput = -datainput;
6661      }
6662   }
6663
6664   if (datainput)
6665   {
6666      for (int i = 0; i < 32; i++)
6667      {
6668         if (datainput & (1 << ((~i) & 0x1f)))
6669         {
6670            shifter = i;
6671            break;
6672         }
6673      }
6674   }
6675   else
6676   {
6677      shifter = 0;
6678   }
6679
6680   INT32 address = ((datainput << shifter) & 0x7fc00000) >> 22;
6681   address = ((address | 0x200) & 0x3fe) | (shifter & 1);
6682
6683   INT32 fetchval = rsp_divtable[address];
6684   INT32 temp = (0x40000000 | (fetchval << 14)) >> (((~shifter) & 0x1f) >> 1);
6685   if (rec < 0)
6686   {
6687      temp = ~temp;
6688   }
6689   if (!rec)
6690   {
6691      temp = 0x7fffffff;
6692   }
6693   else if (rec == 0xffff8000)
6694   {
6695      temp = 0xffff0000;
6696   }
6697   rec = temp;
6698
6699   if (rec < 0)
6700   {
6701      if (m_dp_allowed)
6702      {
6703         if (rec < -32768)
6704         {
6705            datainput = ~datainput;
6706         }
6707         else
6708         {
6709            datainput = -datainput;
6710         }
6711      }
6712      else
6713      {
6714         datainput = -datainput;
6715      }
6716   }
6717
6718   if (datainput)
6719   {
6720      for (int i = 0; i < 32; i++)
6721      {
6722         if (datainput & (1 << ((~i) & 0x1f)))
6723         {
6724            shifter = i;
6725            break;
6726         }
6727      }
6728   }
6729   else
6730   {
6731      shifter = 0;
6732   }
6733
6734   address = ((datainput << shifter) & 0x7fc00000) >> 22;
6735   address = ((address | 0x200) & 0x3fe) | (shifter & 1);
6736
6737   fetchval = rsp_divtable[address];
6738   temp = (0x40000000 | (fetchval << 14)) >> (((~shifter) & 0x1f) >> 1);
6739   if (rec < 0)
6740   {
6741      temp = ~temp;
6742   }
6743   if (!rec)
6744   {
6745      temp = 0x7fff;
6746   }
6747   else if (rec == 0xffff8000)
6748   {
6749      temp = 0x0000;
6750   }
6751   rec = temp;
6752
6753   W_VREG_S(VDREG, VS1REG & 7) = (UINT16)rec;
6754   for (int i = 0; i < 8; i++)
6755   {
6756      SET_ACCUM_L(VREG_S(VS2REG, VEC_EL_2(EL, i)), i);
6757   }
6758}
6759
6760static void cfunc_rsp_vrsq_scalar(void *param)
6761{
6762   ((rsp_device *)param)->ccfunc_rsp_vrsq_scalar();
6763}
6764
67656595#if USE_SIMD
67666596// VRSQL
67676597//
r241777r241778
67856615   INT32 shifter = 0;
67866616   UINT16 val;
67876617   SIMD_EXTRACT16(m_xv[VS2REG], val, EL);
6788   INT32 rec = (INT16)val;
6618   INT32 rec = m_reciprocal_high | val;
67896619   INT32 datainput = rec;
67906620
6791   if (m_dp_allowed)
6621   if (rec < 0)
67926622   {
6793      rec = (rec & 0x0000ffff) | m_reciprocal_high;
6794      datainput = rec;
6795
6796      if (rec < 0)
6623      if (m_dp_allowed)
67976624      {
67986625         if (rec < -32768)
67996626         {
r241777r241778
68046631            datainput = -datainput;
68056632         }
68066633      }
6634      else
6635      {
6636         datainput = -datainput;
6637      }
68076638   }
6808   else if (datainput < 0)
6809   {
6810      datainput = -datainput;
68116639
6812      shifter = 0x10;
6813   }
6814
68156640   if (datainput)
68166641   {
68176642      for (int i = 0; i < 32; i++)
r241777r241778
68236648         }
68246649      }
68256650   }
6651   else
6652   {
6653      if (m_dp_allowed)
6654      {
6655         shifter = 0;
6656      }
6657      else
6658      {
6659         shifter = 0x10;
6660      }
6661   }
68266662
68276663   INT32 address = ((datainput << shifter) & 0x7fc00000) >> 22;
68286664   address = ((address | 0x200) & 0x3fe) | (shifter & 1);
68296665
68306666   INT32 fetchval = rsp_divtable[address];
68316667   INT32 temp = (0x40000000 | (fetchval << 14)) >> (((~shifter) & 0x1f) >> 1);
6832   temp ^= rec >> 31;
6833
6668   if (rec < 0)
6669   {
6670      temp = ~temp;
6671   }
68346672   if (!rec)
68356673   {
68366674      temp = 0x7fffffff;
r241777r241778
68616699   int op = m_rsp_state->arg0;
68626700
68636701   INT32 shifter = 0;
6864   INT32 rec = (INT16)VREG_S(VS2REG, EL & 7);
6702   INT32 rec = m_reciprocal_high | (UINT16)VREG_S(VS2REG, EL & 7);
68656703   INT32 datainput = rec;
68666704
6867   if (m_dp_allowed)
6705   if (rec < 0)
68686706   {
6869      rec = (rec & 0x0000ffff) | m_reciprocal_high;
6870      datainput = rec;
6871
6872      if (rec < 0)
6707      if (m_dp_allowed)
68736708      {
68746709         if (rec < -32768)
68756710         {
r241777r241778
68806715            datainput = -datainput;
68816716         }
68826717      }
6718      else
6719      {
6720         datainput = -datainput;
6721      }
68836722   }
6884   else if (datainput < 0)
6885   {
6886      datainput = -datainput;
68876723
6888      shifter = 0x10;
6889   }
6890
68916724   if (datainput)
68926725   {
68936726      for (int i = 0; i < 32; i++)
r241777r241778
68996732         }
69006733      }
69016734   }
6735   else
6736   {
6737      if (m_dp_allowed)
6738      {
6739         shifter = 0;
6740      }
6741      else
6742      {
6743         shifter = 0x10;
6744      }
6745   }
69026746
69036747   INT32 address = ((datainput << shifter) & 0x7fc00000) >> 22;
69046748   address = ((address | 0x200) & 0x3fe) | (shifter & 1);
69056749
69066750   INT32 fetchval = rsp_divtable[address];
69076751   INT32 temp = (0x40000000 | (fetchval << 14)) >> (((~shifter) & 0x1f) >> 1);
6908   temp ^= rec >> 31;
6909
6752   if (rec < 0)
6753   {
6754      temp = ~temp;
6755   }
69106756   if (!rec)
69116757   {
69126758      temp = 0x7fffffff;
r241777r241778
71226968            UINT32 nextpc;
71236969
71246970            /* add a code log entry */
7125            if (drcuml->logging())
6971            if (RSP_LOG_UML)
71266972               block->append_comment("-------------------------");                 // comment
71276973
71286974            /* determine the last instruction in this sequence */
r241777r241778
74037249void rsp_device::generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast)
74047250{
74057251   const opcode_desc *curdesc;
7406   if (m_drcuml->logging())
7252   if (RSP_LOG_UML)
74077253   {
74087254      block->append_comment("[Validation for %08X]", seqhead->pc | 0x1000);       // comment
74097255   }
r241777r241778
74707316   offs_t expc;
74717317
74727318   /* add an entry for the log */
7473   if (m_drcuml->logging() && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
7319   if (RSP_LOG_UML && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
74747320      log_add_disasm_comment(block, desc->pc, desc->opptr.l[0]);
74757321
74767322   /* set the PC map variable */
r241777r241778
75157361}
75167362
75177363/*------------------------------------------------------------------
7518    generate_branch
7519------------------------------------------------------------------*/
7520
7521void rsp_device::generate_branch(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc)
7522{
7523   compiler_state compiler_temp = *compiler;
7524
7525   /* update the cycles and jump through the hash table to the target */
7526   if (desc->targetpc != BRANCH_TARGET_DYNAMIC)
7527   {
7528      generate_update_cycles(block, &compiler_temp, desc->targetpc, TRUE);   // <subtract cycles>
7529      if (desc->flags & OPFLAG_INTRABLOCK_BRANCH)
7530         UML_JMP(block, desc->targetpc | 0x80000000);                  // jmp     desc->targetpc
7531      else
7532         UML_HASHJMP(block, 0, desc->targetpc, *m_nocode);               // hashjmp <mode>,desc->targetpc,nocode
7533   }
7534   else
7535   {
7536      generate_update_cycles(block, &compiler_temp, mem(&m_rsp_state->jmpdest), TRUE);   // <subtract cycles>
7537      UML_HASHJMP(block, 0, mem(&m_rsp_state->jmpdest), *m_nocode);                  // hashjmp <mode>,<rsreg>,nocode
7538   }
7539}
7540
7541/*------------------------------------------------------------------
75427364    generate_delay_slot_and_branch
75437365------------------------------------------------------------------*/
75447366
r241777r241778
75647386   assert(desc->delay.first() != NULL);
75657387   generate_sequence_instruction(block, &compiler_temp, desc->delay.first());     // <next instruction>
75667388
7567   generate_branch(block, compiler, desc);
7389   /* update the cycles and jump through the hash table to the target */
7390   if (desc->targetpc != BRANCH_TARGET_DYNAMIC)
7391   {
7392      generate_update_cycles(block, &compiler_temp, desc->targetpc, TRUE);   // <subtract cycles>
7393      if (desc->flags & OPFLAG_INTRABLOCK_BRANCH)
7394         UML_JMP(block, desc->targetpc | 0x80000000);                            // jmp     desc->targetpc
7395      else
7396         UML_HASHJMP(block, 0, desc->targetpc, *m_nocode);
7397                                                               // hashjmp <mode>,desc->targetpc,nocode
7398   }
7399   else
7400   {
7401      generate_update_cycles(block, &compiler_temp, mem(&m_rsp_state->jmpdest), TRUE);
7402                                                               // <subtract cycles>
7403      UML_HASHJMP(block, 0, mem(&m_rsp_state->jmpdest), *m_nocode);
7404                                                               // hashjmp <mode>,<rsreg>,nocode
7405   }
75687406
75697407   /* update the label */
75707408   compiler->labelnum = compiler_temp.labelnum;
r241777r241778
77807618#endif
77817619         return TRUE;
77827620
7783      case 0x16:      /* VADDB */
7784         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
7785         UML_CALLC(block, cfunc_rsp_vaddb_scalar, this);
7786         return TRUE;
7787
7788      case 0x17:      /* VSUBB (reserved, functionally identical to VADDB) */
7789         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
7790         UML_CALLC(block, cfunc_rsp_vaddb_scalar, this);
7791         return TRUE;
7792
7793      case 0x18:      /* VACCB (reserved, functionally identical to VADDB) */
7794         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
7795         UML_CALLC(block, cfunc_rsp_vaddb_scalar, this);
7796         return TRUE;
7797
7798      case 0x19:      /* VSUCB (reserved, functionally identical to VADDB) */
7799         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
7800         UML_CALLC(block, cfunc_rsp_vaddb_scalar, this);
7801         return TRUE;
7802
78037621      case 0x1d:      /* VSAW */
78047622         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
78057623         UML_CALLC(block, cfunc_rsp_vsaw_simd, this);
r241777r241778
80097827#endif
80107828         return TRUE;
80117829
8012      case 0x34:      /* VRSQ */
8013         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);         // mov     [arg0],desc->opptr.l
8014         UML_CALLC_block, cfunc_rsp_vrsq_scalar, this);
8015         return TRUE;
8016
80177830      case 0x35:      /* VRSQL */
80187831         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
80197832         UML_CALLC(block, cfunc_rsp_vrsql_simd, this);
r241777r241778
80367849#endif
80377850         return TRUE;
80387851
8039      case 0x37:      /* VNOP */
8040      case 0x3F:      /* VNULL */
8041         return TRUE;
8042
80437852      default:
80447853         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
80457854         UML_CALLC(block, cfunc_unimplemented_opcode, this);
r241777r241778
81457954         UML_CALLC(block, cfunc_rsp_vsubc_scalar, this);
81467955         return TRUE;
81477956
8148      case 0x16:      /* VADDB */
8149         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
8150         UML_CALLC(block, cfunc_rsp_vaddb_scalar, this);
8151         return TRUE;
8152
8153      case 0x17:      /* VSUBB (reserved, functionally identical to VADDB) */
8154         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
8155         UML_CALLC(block, cfunc_rsp_vaddb_scalar, this);
8156         return TRUE;
8157
8158      case 0x18:      /* VACCB (reserved, functionally identical to VADDB) */
8159         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
8160         UML_CALLC(block, cfunc_rsp_vaddb_scalar, this);
8161         return TRUE;
8162
8163      case 0x19:      /* VSUCB (reserved, functionally identical to VADDB) */
8164         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
8165         UML_CALLC(block, cfunc_rsp_vaddb_scalar, this);
8166         return TRUE;
8167
81687957      case 0x1d:      /* VSAW */
81697958         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
81707959         UML_CALLC(block, cfunc_rsp_vsaw_scalar, this);
r241777r241778
82608049         UML_CALLC(block, cfunc_rsp_vmov_scalar, this);
82618050         return TRUE;
82628051
8263      case 0x34:      /* VRSQ */
8264         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);         // mov     [arg0],desc->opptr.l
8265         UML_CALLC(block, cfunc_rsp_vrsq_scalar, this);
8266         return TRUE;
8267
82688052      case 0x35:      /* VRSQL */
82698053         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
82708054         UML_CALLC(block, cfunc_rsp_vrsql_scalar, this);
r241777r241778
82758059         UML_CALLC(block, cfunc_rsp_vrsqh_scalar, this);
82768060         return TRUE;
82778061
8278      case 0x37:      /* VNOP */
8279      case 0x3F:      /* VNULL */
8280         return TRUE;
8281
82828062      default:
82838063         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
82848064         UML_CALLC(block, cfunc_unimplemented_opcode, this);
r241777r241778
86418421         UML_MOV(block, mem(&m_rsp_state->arg0), 3);                   // mov     [arg0],3
86428422         UML_CALLC(block, cfunc_sp_set_status_cb, this);                      // callc   cfunc_sp_set_status_cb
86438423         UML_MOV(block, mem(&m_rsp_state->icount), 0);                       // mov icount, #0
8644         UML_MOV(block, mem(&m_rsp_state->jmpdest), desc->targetpc);
86458424
8646         generate_branch(block, compiler, desc);
8647
86488425         UML_EXIT(block, EXECUTE_OUT_OF_CYCLES);
86498426         return TRUE;
86508427   }
r241777r241778
92469023
92479024void rsp_device::log_add_disasm_comment(drcuml_block *block, UINT32 pc, UINT32 op)
92489025{
9249   if (m_drcuml->logging())
9250   {
9251      char buffer[100];
9252      rsp_dasm_one(buffer, pc, op);
9253      block->append_comment("%08X: %s", pc, buffer);                                  // comment
9254   }
9026#if (RSP_LOG_UML)
9027   char buffer[100];
9028   rsp_dasm_one(buffer, pc, op);
9029   block->append_comment("%08X: %s", pc, buffer);                                  // comment
9030#endif
92559031}
trunk/src/emu/cpu/rsp/rspfe.c
r241777r241778
8383            desc.regin[0] |= REGFLAG_R(RSREG) | REGFLAG_R(RTREG);
8484            desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
8585         }
86         desc.targetpc = ((desc.pc + 4 + SIMMVAL * 4) & 0x00000fff) | 0x1000;
86         desc.targetpc = ((desc.pc + 4 + (SIMMVAL << 2)) & 0x00000fff) | 0x1000;
8787         desc.delayslots = 1;
8888         desc.skipslots = (opswitch & 0x10) ? 1 : 0;
8989         return true;
r241777r241778
9797            desc.regin[0] |= REGFLAG_R(RSREG);
9898            desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
9999         }
100         desc.targetpc = ((desc.pc + 4 + SIMMVAL * 4) & 0x00000fff) | 0x1000;
100         desc.targetpc = ((desc.pc + 4 + (SIMMVAL << 2)) & 0x00000fff) | 0x1000;
101101         desc.delayslots = 1;
102102         desc.skipslots = (opswitch & 0x10) ? 1 : 0;
103103         return true;
r241777r241778
207207         return true;
208208
209209      case 0x0d:  // BREAK
210         desc.flags |= OPFLAG_IS_UNCONDITIONAL_BRANCH | OPFLAG_END_SEQUENCE;
211         desc.targetpc = (op >> 5) & 0x000fffff;
210         desc.flags |= OPFLAG_END_SEQUENCE;
211         desc.targetpc = BRANCH_TARGET_DYNAMIC;
212212         return true;
213213   }
214214
r241777r241778
234234            desc.regin[0] |= REGFLAG_R(RSREG);
235235            desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
236236         }
237         desc.targetpc = ((desc.pc + 4 + SIMMVAL * 4) & 0x00000fff) | 0x1000;
237         desc.targetpc = ((desc.pc + 4 + (SIMMVAL << 2)) & 0x00000fff) | 0x1000;
238238         desc.delayslots = 1;
239239         desc.skipslots = (RTREG & 0x02) ? 1 : 0;
240240         return true;
r241777r241778
249249            desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
250250         }
251251         desc.regout[0] |= REGFLAG_R(31);
252         desc.targetpc = ((desc.pc + 4 + SIMMVAL * 4) & 0x00000fff) | 0x1000;
252         desc.targetpc = ((desc.pc + 4 + (SIMMVAL << 2)) & 0x00000fff) | 0x1000;
253253         desc.delayslots = 1;
254254         desc.skipslots = (RTREG & 0x02) ? 1 : 0;
255255         return true;
trunk/src/emu/cpu/sh2/sh2.c
r241777r241778
115115    DEBUGGING
116116***************************************************************************/
117117
118#define LOG_UML                     (0) // log UML assembly
118119#define LOG_NATIVE                  (0) // log native assembly
119120
120121#define DISABLE_FAST_REGISTERS              (0) // set to 1 to turn off usage of register caching
r241777r241778
169170   , m_cpu_type(CPU_TYPE_SH2)
170171   , m_cache(CACHE_SIZE + sizeof(internal_sh2_state))
171172   , m_drcuml(NULL)
172//  , m_drcuml(*this, m_cache, ( LOG_NATIVE ? DRCUML_OPTION_LOG_NATIVE : 0 ), 1, 32, 1)
173//  , m_drcuml(*this, m_cache, ( LOG_UML ? DRCUML_OPTION_LOG_UML : 0 ) | ( LOG_NATIVE ? DRCUML_OPTION_LOG_NATIVE : 0 ), 1, 32, 1)
173174   , m_drcfe(NULL)
174175   , m_drcoptions(0)
175176   , m_sh2_state(NULL)
r241777r241778
206207   , m_cpu_type(cpu_type)
207208   , m_cache(CACHE_SIZE + sizeof(internal_sh2_state))
208209   , m_drcuml(NULL)
209//  , m_drcuml(*this, m_cache, ( LOG_NATIVE ? DRCUML_OPTION_LOG_NATIVE : 0 ), 1, 32, 1)
210//  , m_drcuml(*this, m_cache, ( LOG_UML ? DRCUML_OPTION_LOG_UML : 0 ) | ( LOG_NATIVE ? DRCUML_OPTION_LOG_NATIVE : 0 ), 1, 32, 1)
210211   , m_drcfe(NULL)
211212   , m_drcoptions(0)
212213   , m_sh2_state(NULL)
r241777r241778
25602561
25612562   /* initialize the UML generator */
25622563   UINT32 flags = 0;
2564   if (LOG_UML)
2565      flags |= DRCUML_OPTION_LOG_UML;
25632566   if (LOG_NATIVE)
25642567      flags |= DRCUML_OPTION_LOG_NATIVE;
25652568   m_drcuml = auto_alloc(machine(), drcuml_state(*this, m_cache, flags, 1, 32, 1));
trunk/src/emu/cpu/sh2/sh2drc.c
r241777r241778
675675
676676   /* get a description of this sequence */
677677   desclist = m_drcfe->describe_code(pc);
678   if (drcuml->logging() || LOG_NATIVE)
678   if (LOG_UML || LOG_NATIVE)
679679      log_opcode_desc(drcuml, desclist, 0);
680680
681681   bool succeeded = false;
r241777r241778
693693            UINT32 nextpc;
694694
695695            /* add a code log entry */
696            if (drcuml->logging())
696            if (LOG_UML)
697697               block->append_comment("-------------------------");                 // comment
698698
699699            /* determine the last instruction in this sequence */
r241777r241778
11741174      char buffer[100];
11751175
11761176      /* disassemle the current instruction and output it to the log */
1177      if (drcuml->logging() || LOG_NATIVE)
1178      {
1179         if (desclist->flags & OPFLAG_VIRTUAL_NOOP)
1180            strcpy(buffer, "<virtual nop>");
1181         else
1182            DasmSH2(buffer, desclist->pc, desclist->opptr.w[0]);
1183      }
1177#if (LOG_UML || LOG_NATIVE)
1178      if (desclist->flags & OPFLAG_VIRTUAL_NOOP)
1179         strcpy(buffer, "<virtual nop>");
11841180      else
1185         strcpy(buffer, "???");
1181         DasmSH2(buffer, desclist->pc, desclist->opptr.w[0]);
1182#else
1183      strcpy(buffer, "???");
1184#endif
11861185      drcuml->log_printf("%08X [%08X] t:%08X f:%s: %-30s", desclist->pc, desclist->physpc, desclist->targetpc, log_desc_flags_to_string(desclist->flags), buffer);
11871186
11881187      /* output register states */
r241777r241778
12071206
12081207void sh2_device::log_add_disasm_comment(drcuml_block *block, UINT32 pc, UINT32 op)
12091208{
1210   if (m_drcuml->logging())
1211   {
1212      char buffer[100];
1213      DasmSH2(buffer, pc, op);
1214      block->append_comment("%08X: %s", pc, buffer);                  // comment
1215   }
1209#if (LOG_UML)
1210   char buffer[100];
1211   DasmSH2(buffer, pc, op);
1212   block->append_comment("%08X: %s", pc, buffer);                  // comment
1213#endif
12161214}
12171215
12181216/*-------------------------------------------------
r241777r241778
13011299void sh2_device::generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast)
13021300{
13031301   const opcode_desc *curdesc;
1304   if (m_drcuml->logging())
1302   if (LOG_UML)
13051303      block->append_comment("[Validation for %08X]", seqhead->pc);                // comment
13061304
13071305   /* loose verify or single instruction: just compare and fail */
r241777r241778
13581356   offs_t expc;
13591357
13601358   /* add an entry for the log */
1361   if (m_drcuml->logging() && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
1359   if (LOG_UML && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
13621360      log_add_disasm_comment(block, desc->pc, desc->opptr.w[0]);
13631361
13641362   /* set the PC map variable */
trunk/src/emu/cpu/tms0980/tms0980.c
r241777r241778
1010
1111Mode     | ROM       | RAM      | R pins | O pins | K pins | ids
1212---------+-----------+----------+--------+--------+--------|----------
13tms0970 | 1024 *  8 |  64 *  4 |        |        |        | tms0972
13tms0970* | 1024 *  8 |  64 *  4 |        |        |        | tms0972
1414tms0920* |  511?*  9 |  40 *  5 |        |        |        | tmc0921
1515tms0980  | 2048 *  9 |  64 *  9 |        |        |        | tmc0981
1616tms1000  | 1024 *  8 |  64 *  4 |     11 |      8 |      4 | tms1001
r241777r241778
123123#include "debugger.h"
124124#include "tms0980.h"
125125
126#define LOG                 0
126127
127128
128129const device_type TMS0980 = &device_creator<tms0980_cpu_device>;
129130const device_type TMS1000 = &device_creator<tms1000_cpu_device>;
130const device_type TMS0970 = &device_creator<tms0970_cpu_device>;
131131const device_type TMS1070 = &device_creator<tms1070_cpu_device>;
132132const device_type TMS1200 = &device_creator<tms1200_cpu_device>;
133133const device_type TMS1270 = &device_creator<tms1270_cpu_device>;
r241777r241778
236236#define I_YNEC      ( MICRO_MASK | M_YTP | M_CKN | M_NE )
237237
238238
239static const UINT8 tms0980_c2_value[4] = { 0, 2, 1, 3 };
240static const UINT8 tms0980_c3_value[8] = { 0, 4, 2, 6, 1, 5, 3, 7 };
241static const UINT8 tms0980_c4_value[16] = { 0x0, 0x8, 0x4, 0xC, 0x2, 0xA, 0x6, 0xE, 0x1, 0x9, 0x5, 0xD, 0x3, 0xB, 0x7, 0xF };
239static const UINT8 tms0980_c2_value[4] =
240{
241   0x00, 0x02, 0x01, 0x03
242};
243static const UINT8 tms0980_c3_value[8] =
244{
245   0x00, 0x04, 0x02, 0x06, 0x01, 0x05, 0x03, 0x07
246};
247static const UINT8 tms0980_c4_value[16] =
248{
249   0x00, 0x08, 0x04, 0x0C, 0x02, 0x0A, 0x06, 0x0E, 0x01, 0x09, 0x05, 0x0D, 0x03, 0x0B, 0x07, 0x0F
250};
242251static const UINT8 tms0980_bit_value[4] = { 1, 4, 2, 8 };
243static const UINT8 tms0980_nbit_value[4] = { 0xE, 0xB, 0xD, 0x7 };
252static const UINT8 tms0980_nbit_value[4] = { 0x0E, 0x0B, 0x0D, 0x07 };
244253
245254
246255static const UINT32 tms0980_decode[512] =
r241777r241778
320329};
321330
322331
323static const UINT32 tms1000_default_decode[256] =
324{
332static const UINT32 tms1000_default_decode[256] = {
325333   /* 0x00 */
326334   F_COMX, I_A8AAC, I_YNEA, I_TAM, I_TAMZA, I_A10AAC, I_A6AAC, I_DAN,
327335   I_TKA, I_KNEZ, F_TDO, F_CLO, F_RSTR, F_SETR, I_IA, F_RETN,
r241777r241778
363371};
364372
365373
366static const UINT32 tms1100_default_decode[256] =
367{
374static const UINT32 tms1100_default_decode[256] = {
368375   /* 0x00 */
369376   I_MNEA, I_ALEM, I_YNEA, I_XMA, I_DYN, I_IYC, I_AMAAC, I_DMAN,
370377   I_TKA, F_COMX, F_TDO, F_COMC, F_RSTR, F_SETR, I_KNEZ, F_RETN,
r241777r241778
497504
498505void tms1xxx_cpu_device::device_reset()
499506{
500   m_pa = 0xF;
501   m_pb = 0xF;
507   m_pa = 0x0F;
508   m_pb = 0x0F;
502509   m_pc = 0;
503510   m_dam = 0;
504511   m_ca = 0;
r241777r241778
613620                 ( pc{5:4} == 11 && pc{0} == 1 ) => 10
614621
615622*/
616static const UINT8 tms1000_next_pc[64] =
617{
623static const UINT8 tms1000_next_pc[64] = {
618624   0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F,
619625   0x20, 0x22, 0x24, 0x26, 0x28, 0x2A, 0x2C, 0x2E, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3A, 0x3C, 0x3F,
620626   0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E,
r241777r241778
637643      nand322 means if pc = 0x3f, output MUST be true
638644      hence, nand325 is if pc = 0x7f, false. if pc = 0x3f, true. if pc&0x60 is zero OR pc&0x60 is 0x60, true. otherwise, false.
639645
640      tms0980_next_pc below implements an indentical function to this in a somewhat more elegant way.
646      tms0980_nect_pc below implements an indentical function to this in a somewhat more elegant way.
641647*/
642648void tms1xxx_cpu_device::next_pc()
643649{
r241777r241778
705711{
706712   do
707713   {
714//      debugger_instruction_hook( this, ( ( m_pa << m_pc_size ) | m_pc ) << 1 );
708715      m_icount--;
709716      switch( m_subcycle )
710717      {
r241777r241778
804811            }
805812            if ( m_decode & M_STO )
806813            {
814//printf("write ram %02x data %01x\n", m_ram_address, m_a );
807815               m_data->write_byte( m_ram_address, m_a );
808816            }
809817            if ( m_decode & M_CKM )
810818            {
819//printf("write ram %02x data %01x\n", m_ram_address, m_cki_bus );
811820               m_data->write_byte( m_ram_address, m_cki_bus );
812821            }
813822         }
r241777r241778
815824         {
816825            if ( m_decode & F_SBIT )
817826            {
827//printf("write ram %02x data %01x\n", m_ram_address, m_ram_data | tms0980_bit_value[ m_opcode & 0x03 ] );
818828               m_data->write_byte( m_ram_address, m_ram_data | tms0980_bit_value[ m_opcode & 0x03 ] );
819829            }
820830            if ( m_decode & F_RBIT )
821831            {
832//printf("write ram %02x data %01x\n", m_ram_address, m_ram_data & tms0980_nbit_value[ m_opcode & 0x03 ] );
822833               m_data->write_byte( m_ram_address, m_ram_data & tms0980_nbit_value[ m_opcode & 0x03 ] );
823834            }
824835            if ( m_decode & F_SETR )
r241777r241778
839850               {
840851                  logerror("unknown output pla mapping for status latch = %d and a = %X\n", m_status_latch, m_a);
841852               }
853//if ( ( c_output_pla[ ( m_status_latch << 4 ) | m_a ] & 0xFF00 ) == 0xFF00 )
854//printf("****** o output m_status_latch = %X, m_a = %X\n", m_status_latch, m_a);
855//else
856//printf("o output m_status_latch = %X, m_a = %X\n", m_status_latch, m_a);
842857
843858               m_write_o( 0, m_o & m_o_mask, 0xffff );
844859            }
r241777r241778
936951            m_opcode = m_program->read_byte( m_rom_address );
937952         }
938953         next_pc();
954         if (LOG)
955            logerror( "tms0980: read opcode %04x from %04x. Set pc to %04x\n", m_opcode, m_rom_address, m_pc );
939956
940957         /* ram address */
941958         m_ram_address = ( m_x << 4 ) | m_y;
r241777r241778
10581075}
10591076
10601077
1061tms0970_cpu_device::tms0970_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1062   : tms1000_cpu_device( mconfig, TMS0970, "TMS0970", tag, owner, clock, 0x00ff, 0x07ff, "tms0970", __FILE__)
1063{
1064}
1065
10661078tms1070_cpu_device::tms1070_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
10671079   : tms1000_cpu_device( mconfig, TMS1070, "TMS1070", tag, owner, clock, 0x00ff, 0x07ff, "tms1070", __FILE__)
10681080{
trunk/src/emu/cpu/tms0980/tms0980.h
r241777r241778
162162};
163163
164164
165class tms0970_cpu_device : public tms1000_cpu_device
166{
167public:
168   tms0970_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
169};
170
171
172165class tms1070_cpu_device : public tms1000_cpu_device
173166{
174167public:
r241777r241778
216209
217210/* 8-bit family */
218211extern const device_type TMS1000;
219extern const device_type TMS0970;
220212extern const device_type TMS1070;
221213extern const device_type TMS1200;
222214extern const device_type TMS1270;
trunk/src/emu/cpu/upd7810/upd7810.c
r241777r241778
420420upd7810_device::upd7810_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
421421   : cpu_device(mconfig, UPD7810, "uPD7810", tag, owner, clock, "upd7810", __FILE__)
422422   , m_to_func(*this)
423   , m_co0_func(*this)
424   , m_co1_func(*this)
425423   , m_txd_func(*this)
426424   , m_rxd_func(*this)
427425   , m_an0_func(*this)
r241777r241778
448446upd7810_device::upd7810_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
449447   : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source)
450448   , m_to_func(*this)
451   , m_co0_func(*this)
452   , m_co1_func(*this)
453449   , m_txd_func(*this)
454450   , m_rxd_func(*this)
455451   , m_an0_func(*this)
r241777r241778
571567         data = (data & ~0x02) | (m_rxd & 1 ? 0x02 : 0x00);
572568      if (m_mcc & 0x04)   /* PC2 = SCK input/output */
573569         data = (data & ~0x04) | (m_sck & 1 ? 0x04 : 0x00);
574      if (m_mcc & 0x08)   /* PC3 = TI/INT2 input */
575         data = (data & ~0x08) | (m_int2 & 1 ? 0x08 : 0x00);
570      if (m_mcc & 0x08)   /* PC3 = TI input */
571         data = (data & ~0x08) | (m_ti & 1 ? 0x08 : 0x00);
576572      if (m_mcc & 0x10)   /* PC4 = TO output */
577573         data = (data & ~0x10) | (m_to & 1 ? 0x10 : 0x00);
578574      if (m_mcc & 0x20)   /* PC5 = CI input */
r241777r241778
652648         data = (data & ~0x02) | (m_rxd & 1 ? 0x02 : 0x00);
653649      if (m_mcc & 0x04)   /* PC2 = SCK input/output */
654650         data = (data & ~0x04) | (m_sck & 1 ? 0x04 : 0x00);
655      if (m_mcc & 0x08)   /* PC3 = TI/INT2 input */
656         data = (data & ~0x08) | (m_int2 & 1 ? 0x08 : 0x00);
651      if (m_mcc & 0x08)   /* PC3 = TI input */
652         data = (data & ~0x08) | (m_ti & 1 ? 0x08 : 0x00);
657653      if (m_mcc & 0x10)   /* PC4 = TO output */
658654         data = (data & ~0x10) | (m_to & 1 ? 0x10 : 0x00);
659655      if (m_mcc & 0x20)   /* PC5 = CI input */
r241777r241778
713709      return;
714710
715711   /* check the interrupts in priority sequence */
716   if (IRR & INTNMI)
717   {
718      /* Nonmaskable interrupt */
719      irqline = INPUT_LINE_NMI;
720      vector = 0x0004;
721      IRR &= ~INTNMI;
722   }
723   else
724712   if ((IRR & INTFT0)  && 0 == (MKL & 0x02))
725713   {
726714      vector = 0x0008;
r241777r241778
864852
865853void upd7810_device::upd7810_write_EOM()
866854{
867   if (EOM & 0x01) /* output LV0 content */
855   if (EOM & 0x01) /* output LV0 content ? */
868856   {
869857      switch (EOM & 0x0e)
870858      {
871859      case 0x02:  /* toggle CO0 */
872         CO0 ^= 1;
860         CO0 = (CO0 >> 1) | ((CO0 ^ 2) & 2);
873861         break;
874862      case 0x04:  /* reset CO0 */
875863         CO0 = 0;
876         EOM &= 0xfb; /* LRE0 is reset t0 0 */
877864         break;
878865      case 0x08:  /* set CO0 */
879866         CO0 = 1;
880         EOM &= 0xf7; /* LRE1 is reset t0 0 */
881867         break;
882868      }
883      EOM &= 0xfe; /* LO0 is reset t0 0 */
884      m_co0_func(CO0);
885869   }
886   if (EOM & 0x10) /* output LV1 content */
870   if (EOM & 0x10) /* output LV0 content ? */
887871   {
888872      switch (EOM & 0xe0)
889873      {
890874      case 0x20:  /* toggle CO1 */
891         CO1 ^= 1;
875         CO1 = (CO1 >> 1) | ((CO1 ^ 2) & 2);
892876         break;
893877      case 0x40:  /* reset CO1 */
894878         CO1 = 0;
895         EOM &= 0xbf; /* LRE2 is reset t0 0 */
896879         break;
897880      case 0x80:  /* set CO1 */
898881         CO1 = 1;
899         EOM &= 0x7f; /* LRE3 is reset t0 0 */
900882         break;
901883      }
902      EOM &= 0xef; /* LO1 is reset t0 0 */
903      m_co1_func(CO1);
904884   }
905885}
906886
r241777r241778
13251305            IRR |= INTFE0;
13261306         if (ETM1 == ECNT)
13271307            IRR |= INTFE1;
1328         /* Conditions When ECNT Causes a CO0 Output Change */
1329         if (((0x00 == (ETMM & 0x30)) && (ETM0 == ECNT)) || /* set CO0 if ECNT == ETM0 */
1330          /* ((0x10 == (ETMM & 0x30)) prohibited */
1331             ((0x20 == (ETMM & 0x30)) && (ETM0 == ECNT)) || /* set CO0 if ECNT == ETM0 or at falling CI input */
1332             ((0x30 == (ETMM & 0x30)) && (ETM0 == ECNT || ETM1 == ECNT))) /* latch CO0 if ECNT == ETM0 or ECNT == ETM1 */
1333         {
1334            if (EOM & 0x02) {
1335               /* toggle CO0 */
1336               CO0 ^= 1;
1337               m_co0_func(CO0);
1338            }
1339         }
1340         /* Conditions When ECNT Causes a CO1 Output Change */
1341         if (((0x00 == (ETMM & 0xc0)) && (ETM1 == ECNT)) || /* set CO1 if ECNT == ETM1 */
1342          /* ((0x40 == (ETMM & 0xc0)) prohibited */
1343             ((0x80 == (ETMM & 0xc0)) && (ETM1 == ECNT)) || /* set CO1 if ECNT == ETM1 or at falling CI input */
1344             ((0xc0 == (ETMM & 0xc0)) && (ETM0 == ECNT || ETM1 == ECNT))) /* latch CO1 if ECNT == ETM0 or ECNT == ETM1 */
1345         {
1346            if (EOM & 0x20) {
1347               /* toggle CO1 */
1348               CO1 ^= 1;
1349               m_co1_func(CO1);
1350            }
1351         }
13521308         /* How and When ECNT is Cleared */
13531309         switch (ETMM & 0x0c)
13541310         {
r241777r241778
13651321               ECNT = 0;
13661322            break;
13671323         }
1324         /* Conditions When ECNT Causes a CO0 Output Change */
1325         if (((0x00 == (ETMM & 0x30)) && (ETM0 == ECNT)) || /* set CO0 if ECNT == ETM0 */
1326          /* ((0x10 == (ETMM & 0x30)) prohibited */
1327             ((0x20 == (ETMM & 0x30)) && (ETM0 == ECNT)) || /* set CO0 if ECNT == ETM0 or at falling CI input */
1328             ((0x30 == (ETMM & 0x30)) && (ETM0 == ECNT || ETM1 == ECNT))) /* latch CO0 if ECNT == ETM0 or ECNT == ETM1 */
1329         {
1330            switch (EOM & 0x0e)
1331            {
1332            case 0x02:  /* toggle CO0 */
1333               CO0 = (CO0 >> 1) | ((CO0 ^ 2) & 2);
1334               break;
1335            case 0x04:  /* reset CO0 */
1336               CO0 = 0;
1337               break;
1338            case 0x08:  /* set CO0 */
1339               CO0 = 1;
1340               break;
1341            }
1342         }
1343         /* Conditions When ECNT Causes a CO1 Output Change */
1344         if (((0x00 == (ETMM & 0xc0)) && (ETM0 == ECNT)) || /* set CO1 if ECNT == ETM0 */
1345          /* ((0x40 == (ETMM & 0xc0)) prohibited */
1346             ((0x80 == (ETMM & 0xc0)) && (ETM0 == ECNT)) || /* set CO1 if ECNT == ETM0 or at falling CI input */
1347             ((0xc0 == (ETMM & 0xc0)) && (ETM0 == ECNT || ETM1 == ECNT))) /* latch CO1 if ECNT == ETM0 or ECNT == ETM1 */
1348         {
1349            switch (EOM & 0xe0)
1350            {
1351            case 0x20:  /* toggle CO1 */
1352               CO1 = (CO1 >> 1) | ((CO1 ^ 2) & 2);
1353               break;
1354            case 0x40:  /* reset CO1 */
1355               CO1 = 0;
1356               break;
1357            case 0x80:  /* set CO1 */
1358               CO1 = 1;
1359               break;
1360            }
1361         }
13681362      }
13691363   }
13701364
r241777r241778
15411535   m_io = &space(AS_IO);
15421536
15431537   m_to_func.resolve_safe();
1544   m_co0_func.resolve_safe();
1545   m_co1_func.resolve_safe();
15461538   m_txd_func.resolve_safe();
15471539   m_rxd_func.resolve_safe(0);
15481540   m_an0_func.resolve_safe(0);
r241777r241778
16161608   save_item(NAME(m_ovcf));
16171609   save_item(NAME(m_ovcs));
16181610   save_item(NAME(m_edges));
1619   save_item(NAME(m_nmi));
16201611   save_item(NAME(m_int1));
16211612   save_item(NAME(m_int2));
16221613
r241777r241778
16771668   state_add( UPD7810_TI,   "TI",   m_ti).formatstr("%3u");
16781669   state_add( UPD7810_TO,   "TO",   m_to).formatstr("%3u");
16791670   state_add( UPD7810_CI,   "CI",   m_ci).formatstr("%3u");
1680   state_add( UPD7810_CO0,  "CO0",  m_co0).formatstr("%3u");
1681   state_add( UPD7810_CO1,  "CO1",  m_co1).formatstr("%3u");
1671   state_add( UPD7810_CO0,  "CO0",  m_co0).mask(0x01).formatstr("%1X");
1672   state_add( UPD7810_CO1,  "CO1",  m_co1).mask(0x01).formatstr("%1X");
16821673
16831674   state_add( STATE_GENPC, "GENPC", m_pc.w.l ).formatstr("%04X").noshow();
16841675   state_add( STATE_GENPCBASE, "GENPCBASE", m_ppc.w.l ).formatstr("%04X").noshow();
r241777r241778
17981789   m_co1 = 0;
17991790   m_irr = 0;
18001791   m_itf = 0;
1801   m_nmi = 0;
18021792   m_int1 = 0;
18031793   m_int2 = 0;
18041794
r241777r241778
19721962
19731963void upd7810_device::execute_set_input(int irqline, int state)
19741964{
1975   switch (irqline) {
1976   case INPUT_LINE_NMI:
1977      /* NMI is falling edge sensitive */
1978      if ( m_nmi == ASSERT_LINE && state == CLEAR_LINE )
1979         IRR |= INTNMI;
1980
1981      m_nmi = state;
1982      break;
1983   case UPD7810_INTF1:
1984      /* INT1 is rising edge sensitive */
1985      if ( m_int1 == CLEAR_LINE && state == ASSERT_LINE )
1965   if (state != CLEAR_LINE)
1966   {
1967      if (irqline == INPUT_LINE_NMI)
1968      {
1969         /* no nested NMIs ? */
1970//          if (0 == (IRR & INTNMI))
1971         {
1972            IRR |= INTNMI;
1973            SP--;
1974            WM( SP, PSW );
1975            SP--;
1976            WM( SP, PCH );
1977            SP--;
1978            WM( SP, PCL );
1979            IFF = 0;
1980            PSW &= ~(SK|L0|L1);
1981            PC = 0x0004;
1982         }
1983      }
1984      else
1985      if (irqline == UPD7810_INTF1)
19861986         IRR |= INTF1;
1987
1988      m_int1 = state;
1989      break;
1990   case UPD7810_INTF2:
1991      /* INT2 is falling edge sensitive */
1992      if ( m_int2 == ASSERT_LINE && state == CLEAR_LINE )
1987      else
1988      if ( irqline == UPD7810_INTF2 && ( MKL & 0x20 ) )
19931989         IRR |= INTF2;
1994
1995      m_int2 = state;
1996      break;
1997   default:
1998      logerror("upd7810_set_irq_line invalid irq line #%d\n", irqline);
1999      break;
1990      // gamemaster hack
1991      else
1992      if (irqline == UPD7810_INTFE1)
1993         IRR |= INTFE1;
1994      else
1995         logerror("upd7810_set_irq_line invalid irq line #%d\n", irqline);
20001996   }
20011997   /* resetting interrupt requests is done with the SKIT/SKNIT opcodes only! */
20021998}
trunk/src/emu/cpu/upd7810/upd7810.h
r241777r241778
5050#define MCFG_UPD7810_TO(_devcb) \
5151   upd7810_device::set_to_func(*device, DEVCB_##_devcb);
5252
53#define MCFG_UPD7810_CO0(_devcb) \
54   upd7810_device::set_co0_func(*device, DEVCB_##_devcb);
55
56#define MCFG_UPD7810_CO1(_devcb) \
57   upd7810_device::set_co1_func(*device, DEVCB_##_devcb);
58
5953#define MCFG_UPD7810_TXD(_devcb) \
6054   upd7810_device::set_txd_func(*device, DEVCB_##_devcb);
6155
r241777r241778
9690
9791   // static configuration helpers
9892   template<class _Object> static devcb_base &set_to_func(device_t &device, _Object object) { return downcast<upd7810_device &>(device).m_to_func.set_callback(object); }
99   template<class _Object> static devcb_base &set_co0_func(device_t &device, _Object object) { return downcast<upd7810_device &>(device).m_co0_func.set_callback(object); }
100   template<class _Object> static devcb_base &set_co1_func(device_t &device, _Object object) { return downcast<upd7810_device &>(device).m_co1_func.set_callback(object); }
10193   template<class _Object> static devcb_base &set_txd_func(device_t &device, _Object object) { return downcast<upd7810_device &>(device).m_txd_func.set_callback(object); }
10294   template<class _Object> static devcb_base &set_rxd_func(device_t &device, _Object object) { return downcast<upd7810_device &>(device).m_rxd_func.set_callback(object); }
10395   template<class _Object> static devcb_base &set_an0_func(device_t &device, _Object object) { return downcast<upd7810_device &>(device).m_an0_func.set_callback(object); }
r241777r241778
181173   void upd7810_handle_timer1(int cycles, int clkdiv);
182174
183175   devcb_write_line  m_to_func;
184   devcb_write_line  m_co0_func;
185   devcb_write_line  m_co1_func;
186176   devcb_write_line  m_txd_func;
187177   devcb_read_line   m_rxd_func;
188178   devcb_read8       m_an0_func;
r241777r241778
304294   UINT8   m_co1;
305295   UINT16  m_irr;    /* interrupt request register */
306296   UINT16  m_itf;    /* interrupt test flag register */
307   int     m_nmi;    /* keep track of current nmi state. Needed for 7810 irq checking. */
308   int     m_int1;   /* keep track of current int1 state. Needed for irq checking. */
309   int     m_int2;   /* keep track to current int2 state. Needed for irq checking. */
297   int     m_int1;   /* keep track of current int1 state. Needed for 7801 irq checking. */
298   int     m_int2;   /* keep track to current int2 state. Needed for 7801 irq checking. */
310299
311300   /* internal helper variables */
312301   UINT16  m_txs;    /* transmitter shift register */
trunk/src/emu/drivers/xtal.h
r241777r241778
133133   XTAL_14_7456MHz     = 14745600,     /* Namco System 12 & System Super 22/23 for JVS */
134134   XTAL_15MHz          = 15000000,     /* Sinclair QL, Amusco Poker */
135135   XTAL_15_36MHz       = 15360000,     /* Visual 1050 */
136   XTAL_15_4MHz        = 15400000,     /* DVK KSM */
137136   XTAL_15_468MHz      = 15468480,     /* Bank Panic h/w, Sega G80 */
138137   XTAL_15_8976MHz     = 15897600,     /* IAI Swyft */
139138   XTAL_16MHz          = 16000000,     /* Extremely common, used on 100's of PCBs */
trunk/src/emu/emuopts.c
r241777r241778
157157   { NULL,                                              NULL,        OPTION_HEADER,     "CORE MISC OPTIONS" },
158158   { OPTION_DRC,                                        "1",         OPTION_BOOLEAN,    "enable DRC cpu core if available" },
159159   { OPTION_DRC_USE_C,                                  "0",         OPTION_BOOLEAN,    "force DRC use C backend" },
160   { OPTION_DRC_LOG_UML,                                "0",         OPTION_BOOLEAN,    "write DRC UML disassembly log" },
161160   { OPTION_BIOS,                                       NULL,        OPTION_STRING,     "select the system BIOS to use" },
162161   { OPTION_CHEAT ";c",                                 "0",         OPTION_BOOLEAN,    "enable cheat subsystem" },
163162   { OPTION_SKIP_GAMEINFO,                              "0",         OPTION_BOOLEAN,    "skip displaying the information screen at startup" },
trunk/src/emu/emuopts.h
r241777r241778
160160// core misc options
161161#define OPTION_DRC                  "drc"
162162#define OPTION_DRC_USE_C            "drc_use_c"
163#define OPTION_DRC_LOG_UML          "drc_log_uml"
164163#define OPTION_BIOS                 "bios"
165164#define OPTION_CHEAT                "cheat"
166165#define OPTION_SKIP_GAMEINFO        "skip_gameinfo"
r241777r241778
321320   // core misc options
322321   bool drc() const { return bool_value(OPTION_DRC); }
323322   bool drc_use_c() const { return bool_value(OPTION_DRC_USE_C); }
324   bool drc_log_uml() const { return bool_value(OPTION_DRC_LOG_UML); }
325323   const char *bios() const { return value(OPTION_BIOS); }
326324   bool cheat() const { return bool_value(OPTION_CHEAT); }
327325   bool skip_gameinfo() const { return bool_value(OPTION_SKIP_GAMEINFO); }
trunk/src/emu/machine/i6300esb.c
r241777r241778
1#include "i6300esb.h"
2
3const device_type I6300ESB_WATCHDOG = &device_creator<i6300esb_watchdog_device>;
4const device_type I6300ESB_LPC      = &device_creator<i6300esb_lpc_device>;
5
6DEVICE_ADDRESS_MAP_START(map, 32, i6300esb_watchdog_device)
7ADDRESS_MAP_END
8
9i6300esb_watchdog_device::i6300esb_watchdog_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
10   : pci_device(mconfig, I6300ESB_WATCHDOG, "i6300ESB southbridge watchdog", tag, owner, clock, "i6300esb_watchdog", __FILE__)
11{
12}
13
14void i6300esb_watchdog_device::device_start()
15{
16   pci_device::device_start();
17   add_map(16, M_MEM, FUNC(i6300esb_watchdog_device::map));
18}
19
20void i6300esb_watchdog_device::device_reset()
21{
22   pci_device::device_reset();
23}
24
25
26DEVICE_ADDRESS_MAP_START(config_map, 32, i6300esb_lpc_device)
27   AM_RANGE(0x58, 0x5b) AM_READWRITE  (gpio_base_r, gpio_base_w)
28   AM_RANGE(0x5c, 0x5f) AM_READWRITE8 (gpio_cntl_r, gpio_cntl_w, 0x000000ff)
29   AM_RANGE(0xe4, 0xe7) AM_READWRITE16(gen1_dec_r,  gen1_dec_w,  0x0000ffff)
30   AM_RANGE(0xe4, 0xe7) AM_READWRITE16(lpc_en_r,    lpc_en_w,    0xffff0000)
31   AM_RANGE(0xe8, 0xeb) AM_READWRITE  (fwh_sel1_r,  fwh_sel1_w)
32   AM_RANGE(0xfc, 0xff) AM_READWRITE  (unk_fc_r,    unk_fc_w)
33
34   AM_INHERIT_FROM(pci_device::config_map)
35ADDRESS_MAP_END
36
37DEVICE_ADDRESS_MAP_START(internal_io_map, 32, i6300esb_lpc_device)
38   if(lpc_en & 0x2000) {
39      AM_RANGE(0x004c, 0x004f) AM_READWRITE8(siu_config_port_r, siu_config_port_w, 0x00ff0000)
40      AM_RANGE(0x004c, 0x004f) AM_READWRITE8(siu_data_port_r,   siu_data_port_w,   0xff000000)
41   }
42
43   AM_RANGE(0x80, 0x83) AM_WRITE8(                  nop_w,       0x000000ff) // POST/non-existing, used for delays by the bios/os
44   AM_RANGE(0xec, 0xef) AM_WRITE8(                  nop_w,       0x0000ff00) // Non-existing, used for delays by the bios/os
45ADDRESS_MAP_END
46
47
48i6300esb_lpc_device::i6300esb_lpc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
49   : pci_device(mconfig, I6300ESB_LPC, "i6300ESB southbridge ISA/LPC bridge", tag, owner, clock, "i6300esb_lpc", __FILE__)
50{
51}
52
53void i6300esb_lpc_device::device_start()
54{
55   pci_device::device_start();
56}
57
58void i6300esb_lpc_device::device_reset()
59{
60   pci_device::device_reset();
61   siu_config_port = 0;
62   siu_config_state = 0;
63}
64
65void i6300esb_lpc_device::reset_all_mappings()
66{
67   gpio_base = 0;
68   gpio_cntl = 0x00;
69   lpc_if_com_range = 0x00;
70   lpc_if_fdd_lpt_range = 0x00;
71   lpc_if_sound_range = 0x00;
72   fwh_dec_en1 = 0xff;
73   gen1_dec = 0x0000;
74   lpc_en = 0x2000;
75   fwh_sel1 = 0x00112233;
76}
77
78READ32_MEMBER (i6300esb_lpc_device::gpio_base_r)
79{
80   return gpio_base | 1;
81}
82
83WRITE32_MEMBER(i6300esb_lpc_device::gpio_base_w)
84{
85   COMBINE_DATA(&gpio_base);
86   gpio_base &= 0x0000ffc0;
87   logerror("%s: gpio_base = %08x\n", tag(), gpio_base);
88}
89
90READ8_MEMBER  (i6300esb_lpc_device::gpio_cntl_r)
91{
92   return gpio_cntl;
93}
94
95WRITE8_MEMBER (i6300esb_lpc_device::gpio_cntl_w)
96{
97   COMBINE_DATA(&gpio_cntl);
98   logerror("%s: gpio_cntl = %02x\n", tag(), gpio_cntl);
99}
100
101READ8_MEMBER  (i6300esb_lpc_device::lpc_if_com_range_r)
102{
103   return lpc_if_com_range;
104}
105
106WRITE8_MEMBER (i6300esb_lpc_device::lpc_if_com_range_w)
107{
108   COMBINE_DATA(&lpc_if_com_range);
109   logerror("%s: lpc_if_com_range  = %02x\n", tag(), lpc_if_com_range);
110}
111
112READ8_MEMBER  (i6300esb_lpc_device::lpc_if_fdd_lpt_range_r)
113{
114   return lpc_if_fdd_lpt_range;
115}
116
117WRITE8_MEMBER (i6300esb_lpc_device::lpc_if_fdd_lpt_range_w)
118{
119   COMBINE_DATA(&lpc_if_fdd_lpt_range);
120   logerror("%s: lpc_if_fdd_lpt_range  = %02x\n", tag(), lpc_if_fdd_lpt_range);
121}
122
123READ8_MEMBER  (i6300esb_lpc_device::lpc_if_sound_range_r)
124{
125   return lpc_if_sound_range;
126}
127
128WRITE8_MEMBER (i6300esb_lpc_device::lpc_if_sound_range_w)
129{
130   COMBINE_DATA(&lpc_if_sound_range);
131   logerror("%s: lpc_if_sound_range  = %02x\n", tag(), lpc_if_sound_range);
132}
133
134READ8_MEMBER  (i6300esb_lpc_device::fwh_dec_en1_r)
135{
136   return fwh_dec_en1;
137}
138
139WRITE8_MEMBER (i6300esb_lpc_device::fwh_dec_en1_w)
140{
141   fwh_dec_en1 = data | 0x80;
142   logerror("%s: fwh_dec_en1  = %02x\n", tag(), fwh_dec_en1);
143}
144
145READ16_MEMBER (i6300esb_lpc_device::gen1_dec_r)
146{
147   return gen1_dec;
148}
149
150WRITE16_MEMBER(i6300esb_lpc_device::gen1_dec_w)
151{
152   COMBINE_DATA(&gen1_dec);
153   logerror("%s: gen1_dec = %04x\n", tag(), gen1_dec);
154}
155
156READ16_MEMBER (i6300esb_lpc_device::lpc_en_r)
157{
158   return lpc_en;
159}
160
161WRITE16_MEMBER(i6300esb_lpc_device::lpc_en_w)
162{
163   COMBINE_DATA(&lpc_en);
164   logerror("%s: lpc_en = %04x\n", tag(), lpc_en);
165}
166
167READ32_MEMBER (i6300esb_lpc_device::fwh_sel1_r)
168{
169   return fwh_sel1;
170}
171
172WRITE32_MEMBER(i6300esb_lpc_device::fwh_sel1_w)
173{
174   COMBINE_DATA(&fwh_sel1);
175   logerror("%s: fwh_sel1 = %08x\n", tag(), fwh_sel1);
176}
177
178READ32_MEMBER (i6300esb_lpc_device::unk_fc_r)
179{
180   logerror("%s: read undocumented config reg fc\n", tag());
181   return 0;
182}
183
184WRITE32_MEMBER(i6300esb_lpc_device::unk_fc_w)
185{
186   logerror("%s: write undocumented config reg fc (%08x)\n", tag(), data);
187}
188
189
190
191READ8_MEMBER  (i6300esb_lpc_device::siu_config_port_r)
192{
193   return siu_config_port;
194}
195
196WRITE8_MEMBER (i6300esb_lpc_device::siu_config_port_w)
197{
198   siu_config_port = data;
199   switch(siu_config_state) {
200   case 0:
201      siu_config_state = data == 0x80 ? 1 : 0;
202      break;
203   case 1:
204      siu_config_state = data == 0x86 ? 2 : data == 0x80 ? 1 : 0;
205      if(siu_config_state == 2)
206         logerror("%s: siu configuration active\n", tag());
207      break;
208   case 2:
209      siu_config_state = data == 0x68 ? 3 : 2;
210      break;
211   case 3:
212      siu_config_state = data == 0x08 ? 0 : data == 0x68 ? 3 : 2;
213      if(!siu_config_state)
214         logerror("%s: siu configuration disabled\n", tag());
215      break;
216   }
217}
218
219READ8_MEMBER  (i6300esb_lpc_device::siu_data_port_r)
220{
221   logerror("%s: siu config read port %02x\n", tag(), siu_config_port);
222   return 0xff;
223}
224
225WRITE8_MEMBER (i6300esb_lpc_device::siu_data_port_w)
226{
227   if(siu_config_state < 2) {
228      logerror("%s: siu config write port with config disabled (port=%02x, data=%02x)\n", tag(), siu_config_port, data);
229      return;
230   }
231   logerror("%s: siu config write port %02x, %02x\n", tag(), siu_config_port, data);
232}
233
234WRITE8_MEMBER (i6300esb_lpc_device::nop_w)
235{
236}
237
238void i6300esb_lpc_device::map_bios(address_space *memory_space, UINT32 start, UINT32 end, int idsel)
239{
240   // Ignore idsel, a16 inversion for now
241   UINT32 mask = m_region->bytes() - 1;
242   memory_space->install_rom(start, end, m_region->base() + (start & mask));   
243}
244
245void i6300esb_lpc_device::map_extra(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
246                           UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
247{
248   if(fwh_dec_en1 & 0x80) {
249      map_bios(memory_space, 0xfff80000, 0xffffffff, 7);
250      map_bios(memory_space, 0xffb80000, 0xffbfffff, 7);
251      map_bios(memory_space, 0x000e0000, 0x000fffff, 7);
252   }
253   if(fwh_dec_en1 & 0x40) {
254      map_bios(memory_space, 0xfff00000, 0xfff7ffff, 6);
255      map_bios(memory_space, 0xffb00000, 0xffb7ffff, 6);
256   }
257   if(fwh_dec_en1 & 0x20) {
258      map_bios(memory_space, 0xffe80000, 0xffefffff, 5);
259      map_bios(memory_space, 0xffa80000, 0xffafffff, 5);
260   }
261   if(fwh_dec_en1 & 0x10) {
262      map_bios(memory_space, 0xffe00000, 0xffe7ffff, 4);
263      map_bios(memory_space, 0xffa00000, 0xffa7ffff, 4);
264   }
265   if(fwh_dec_en1 & 0x08) {
266      map_bios(memory_space, 0xffd80000, 0xffdfffff, 3);
267      map_bios(memory_space, 0xff980000, 0xff9fffff, 3);
268   }
269   if(fwh_dec_en1 & 0x04) {
270      map_bios(memory_space, 0xffd00000, 0xffd7ffff, 2);
271      map_bios(memory_space, 0xff900000, 0xff97ffff, 2);
272   }
273   if(fwh_dec_en1 & 0x02) {
274      map_bios(memory_space, 0xffc80000, 0xffcfffff, 1);
275      map_bios(memory_space, 0xff880000, 0xff8fffff, 1);
276   }
277   if(fwh_dec_en1 & 0x01) {
278      map_bios(memory_space, 0xffc00000, 0xffc7ffff, 0);
279      map_bios(memory_space, 0xff800000, 0xff87ffff, 0);
280   }
281
282   io_space->install_device(0, 0xffff, *this, &i6300esb_lpc_device::internal_io_map);
283}
284
trunk/src/emu/machine/i6300esb.h
r241777r241778
1// Intel i6300ESB southbridge
2
3#ifndef I6300ESB_H
4#define I6300ESB_H
5
6#include "pci.h"
7
8#define MCFG_I6300ESB_LPC_ADD(_tag) \
9   MCFG_PCI_DEVICE_ADD(_tag, I6300ESB_LPC, 0x808625a1, 0x02, 0x060100, 0x00000000)
10
11#define MCFG_I6300ESB_WATCHDOG_ADD(_tag, _subdevice_id) \
12   MCFG_PCI_DEVICE_ADD(_tag, I6300ESB_WATCHDOG, 0x808625ab, 0x02, 0x088000, _subdevice_id)
13
14class i6300esb_lpc_device : public pci_device {
15public:
16   i6300esb_lpc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
17
18   virtual void reset_all_mappings();
19   virtual void map_extra(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
20                     UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
21
22   virtual DECLARE_ADDRESS_MAP(config_map, 32);
23
24
25protected:
26   virtual void device_start();
27   virtual void device_reset();
28
29private:
30   DECLARE_ADDRESS_MAP(internal_io_map, 32);
31
32   UINT32 gpio_base, fwh_sel1;
33   UINT16 gen1_dec, lpc_en;
34   UINT8 gpio_cntl, lpc_if_com_range, lpc_if_fdd_lpt_range, lpc_if_sound_range, fwh_dec_en1, siu_config_port;
35   int siu_config_state;
36
37   DECLARE_WRITE8_MEMBER (nop_w);
38
39   // configuration space registers
40   DECLARE_READ32_MEMBER (gpio_base_r);            // 58
41   DECLARE_WRITE32_MEMBER(gpio_base_w);
42   DECLARE_READ8_MEMBER  (gpio_cntl_r);            // 5c
43   DECLARE_WRITE8_MEMBER (gpio_cntl_w);
44
45   DECLARE_READ8_MEMBER  (lpc_if_com_range_r);     // e0
46   DECLARE_WRITE8_MEMBER (lpc_if_com_range_w);
47   DECLARE_READ8_MEMBER  (lpc_if_fdd_lpt_range_r); // e1
48   DECLARE_WRITE8_MEMBER (lpc_if_fdd_lpt_range_w);
49   DECLARE_READ8_MEMBER  (lpc_if_sound_range_r);   // e2
50   DECLARE_WRITE8_MEMBER (lpc_if_sound_range_w);
51   DECLARE_READ8_MEMBER  (fwh_dec_en1_r);          // e3
52   DECLARE_WRITE8_MEMBER (fwh_dec_en1_w);
53   DECLARE_READ16_MEMBER (gen1_dec_r);             // e4
54   DECLARE_WRITE16_MEMBER(gen1_dec_w);
55   DECLARE_READ16_MEMBER (lpc_en_r);               // e6
56   DECLARE_WRITE16_MEMBER(lpc_en_w);
57   DECLARE_READ32_MEMBER (fwh_sel1_r);             // e8
58   DECLARE_WRITE32_MEMBER(fwh_sel1_w);
59
60   DECLARE_READ32_MEMBER (unk_fc_r);               // fc
61   DECLARE_WRITE32_MEMBER(unk_fc_w);
62
63
64   // i/o space registers
65   DECLARE_READ8_MEMBER  (siu_config_port_r);      // 4e
66   DECLARE_WRITE8_MEMBER (siu_config_port_w);
67   DECLARE_READ8_MEMBER  (siu_data_port_r);        // 4f
68   DECLARE_WRITE8_MEMBER (siu_data_port_w);
69
70   void map_bios(address_space *memory_space, UINT32 start, UINT32 end, int idsel);
71};
72
73class i6300esb_watchdog_device : public pci_device {
74public:
75   i6300esb_watchdog_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
76
77protected:
78   virtual void device_start();
79   virtual void device_reset();
80
81private:
82   DECLARE_ADDRESS_MAP(map, 32);
83};
84
85extern const device_type I6300ESB_LPC;
86extern const device_type I6300ESB_WATCHDOG;
87
88#endif
trunk/src/emu/machine/i82541.c
r241777r241778
1#include "i82541.h"
2
3const device_type I82541 = &device_creator<i82541_device>;
4
5DEVICE_ADDRESS_MAP_START(registers_map, 32, i82541_device)
6ADDRESS_MAP_END
7
8DEVICE_ADDRESS_MAP_START(flash_map, 32, i82541_device)
9ADDRESS_MAP_END
10
11DEVICE_ADDRESS_MAP_START(registers_io_map, 32, i82541_device)
12ADDRESS_MAP_END
13
14i82541_device::i82541_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
15   : pci_device(mconfig, I82541, "I82541 ethernet controller", tag, owner, clock, "i82541", __FILE__)
16{
17}
18
19void i82541_device::device_start()
20{
21   pci_device::device_start();
22   add_map(128*1024, M_MEM, FUNC(i82541_device::registers_map));
23   add_map(128*1024, M_MEM, FUNC(i82541_device::flash_map));
24   add_map(32,       M_IO,  FUNC(i82541_device::registers_io_map));
25}
26
27void i82541_device::device_reset()
28{
29   pci_device::device_reset();
30}
trunk/src/emu/machine/i82541.h
r241777r241778
1// Intel I82541 ethernet controller
2
3#ifndef I82541_H
4#define I82541_H
5
6#include "pci.h"
7
8#define MCFG_I82541PI_ADD(_tag, _subdevice_id) \
9   MCFG_PCI_DEVICE_ADD(_tag, I82541, 0x8086107c, 0x05, 0x020000, _subdevice_id)
10
11class i82541_device : public pci_device {
12public:
13   i82541_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
14
15protected:
16   virtual void device_start();
17   virtual void device_reset();
18
19private:
20   DECLARE_ADDRESS_MAP(registers_map, 32);
21   DECLARE_ADDRESS_MAP(flash_map, 32);
22   DECLARE_ADDRESS_MAP(registers_io_map, 32);
23};
24
25extern const device_type I82541;
26
27#endif
trunk/src/emu/machine/i82875p.c
r241777r241778
1#include "i82875p.h"
2
3const device_type I82875P_HOST = &device_creator<i82875p_host_device>;
4const device_type I82875P_AGP  = &device_creator<i82875p_agp_device>;
5
6DEVICE_ADDRESS_MAP_START(agp_translation_map, 32, i82875p_host_device)
7ADDRESS_MAP_END
8
9i82875p_host_device::i82875p_host_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
10   : pci_host_device(mconfig, I82875P_HOST, "i82875p northbridge", tag, owner, clock, "i82875p_host", __FILE__)
11{
12}
13
14void i82875p_host_device::set_cpu_tag(const char *_cpu_tag)
15{
16   cpu_tag = _cpu_tag;
17}
18
19void i82875p_host_device::set_ram_size(int _ram_size)
20{
21   ram_size = _ram_size;
22}
23
24void i82875p_host_device::device_start()
25{
26   pci_host_device::device_start();
27   cpu = machine().device<cpu_device>(cpu_tag);
28   memory_space = &cpu->space(AS_PROGRAM);
29   io_space = &cpu->space(AS_IO);
30
31   memory_window_start = 0;
32   memory_window_end   = 0xffffffff;
33   memory_offset       = 0;
34   io_window_start = 0;
35   io_window_end   = 0xffff;
36   io_offset       = 0;
37
38   ram.resize(ram_size/4);
39
40   // Resizeable with the apsize register
41   add_map(256*1024*1024, M_MEM, FUNC(i82875p_host_device::agp_translation_map));
42}
43
44void i82875p_host_device::device_reset()
45{
46   pci_host_device::device_reset();
47}
48
49void i82875p_host_device::map_extra(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
50                           UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
51{
52   io_space->install_device(0, 0xffff, *static_cast<pci_host_device *>(this), &pci_host_device::io_configuration_access_map);
53}
54
55
56
57
58i82875p_agp_device::i82875p_agp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
59   : agp_bridge_device(mconfig, I82875P_AGP, "i82875p AGP bridge", tag, owner, clock, "i82875p_agp", __FILE__)
60{
61}
62
63void i82875p_agp_device::device_start()
64{
65   agp_bridge_device::device_start();
66}
67
68void i82875p_agp_device::device_reset()
69{
70   agp_bridge_device::device_reset();
71}
trunk/src/emu/machine/i82875p.h
r241777r241778
1// Intel i82875p northbridge
2
3#ifndef I82875P_H
4#define I82875P_H
5
6#include "pci.h"
7
8#define MCFG_I82875P_HOST_ADD(_tag, _subdevice_id, _cpu_tag, _ram_size)         \
9   MCFG_PCI_HOST_ADD(_tag, I82875P_HOST, 0x80862578, 0x02, _subdevice_id) \
10   downcast<i82875p_host_device *>(device)->set_cpu_tag(_cpu_tag); \
11   downcast<i82875p_host_device *>(device)->set_ram_size(_ram_size);
12
13#define MCFG_I82875P_AGP_ADD(_tag) \
14   MCFG_AGP_BRIDGE_ADD(_tag, I82875P_AGP, 0x80862579, 0x02)
15
16class i82875p_host_device : public pci_host_device {
17public:
18   i82875p_host_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
19
20   void set_cpu_tag(const char *tag);
21   void set_ram_size(int ram_size);
22
23   virtual void map_extra(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
24                     UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
25
26protected:
27   virtual void device_start();
28   virtual void device_reset();
29
30private:
31   DECLARE_ADDRESS_MAP(agp_translation_map, 32);
32
33   const char *cpu_tag;
34   int ram_size;
35   cpu_device *cpu;
36   dynamic_array<UINT32> ram;
37};
38
39class i82875p_agp_device : public agp_bridge_device {
40public:
41   i82875p_agp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
42
43protected:
44   virtual void device_start();
45   virtual void device_reset();
46};
47
48extern const device_type I82875P_HOST;
49extern const device_type I82875P_AGP;
50
51
52#endif
trunk/src/emu/machine/lpci.c
r241777r241778
1/***************************************************************************
2
3    machine/lpci.c
4
5    Legacy PCI bus
6
7    The PCI bus is a 32-bit bus introduced by Intel, so it is little endian
8
9    Control word:
10        bit 31:         Enable bit
11        bits 30-24:     Reserved
12        bits 23-16:     PCI bus number
13        bits 15-11:     PCI device number
14        bits 10- 8:     PCI function number
15        bits  7- 0:     Offset address
16
17    Standard PCI registers:
18        0x00    2   Vendor ID
19        0x02    2   Device ID
20        0x04    2   PCI Command
21        0x06    2   PCI Status
22        0x08    1   Revision ID
23        0x09    1   Programming Interface
24        0x0A    1   Subclass Code
25        0x0B    1   Class Code
26
27    Class Code/Subclass Code/Programming Interface
28        0x00XXXX    Pre-PCI 2.0 devices
29        0x000000        Non-VGA device
30        0x000101        VGA device
31        0x01XXXX    Storage Controller
32        0x010000        SCSI
33        0x0101XX        IDE
34        0x0102XX        Floppy
35        0x0103XX        IPI
36        0x0104XX        RAID
37        0x0180XX        Other
38        0x02XXXX    Network Card
39        0x020000        Ethernet
40        0x020100        Tokenring
41        0x020200        FDDI
42        0x020300        ATM
43        0x028000        Other
44        0x03XXXX    Display Controller
45        0x030000        VGA
46        0x030001        8514 Compatible
47        0x030100        XGA
48        0x038000        Other
49        0x04XXXX    Multimedia
50        0x040000        Video
51        0x040100        Audio
52        0x048000        Other
53        0x05XXXX    Memory Controller
54        0x050000        RAM
55        0x050100        Flash
56        0x058000        Other
57        0x06XXXX    Bridge
58        0x060000        Host/PCI
59        0x060100        PCI/ISA
60        0x060200        PCI/EISA
61        0x060300        PCI/Micro Channel
62        0x060400        PCI/PCI
63        0x060500        PCI/PCMCIA
64        0x060600        PCI/NuBus
65        0x060700        PCI/CardBus
66        0x068000        Other
67
68    Information on PCI vendors can be found at http://www.pcidatabase.com/
69
70***************************************************************************/
71
72#include "emu.h"
73#include "machine/lpci.h"
74
75#define LOG_PCI 0
76
77//**************************************************************************
78//  GLOBAL VARIABLES
79//**************************************************************************
80
81const device_type PCI_BUS_LEGACY = &device_creator<pci_bus_legacy_device>;
82
83//**************************************************************************
84//  LIVE DEVICE
85//**************************************************************************
86
87//-------------------------------------------------
88//  pci_bus_legacy_device - constructor
89//-------------------------------------------------
90pci_bus_legacy_device::pci_bus_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
91      device_t(mconfig, PCI_BUS_LEGACY, "PCI Bus Legacy", tag, owner, clock, "pci_bus_legacy", __FILE__),
92      m_father(NULL)
93{
94   for (int i = 0; i < ARRAY_LENGTH(m_devtag); i++) {
95      m_devtag[i]= NULL;
96      m_read_callback[i] = NULL;
97      m_write_callback[i] = NULL;
98   }
99   m_siblings_count = 0;
100}
101
102/***************************************************************************
103    INLINE FUNCTIONS
104***************************************************************************/
105
106READ32_MEMBER( pci_bus_legacy_device::read )
107{
108   UINT32 result = 0xffffffff;
109   int function, reg;
110
111   offset %= 2;
112
113   switch (offset)
114   {
115      case 0:
116         result = m_address;
117         break;
118
119      case 1:
120         if (m_devicenum != -1)
121         {
122            pci_read_func read = m_busnumaddr->m_read_callback[m_devicenum];
123            if (read != NULL)
124            {
125               function = (m_address >> 8) & 0x07;
126               reg = (m_address >> 0) & 0xfc;
127               result = (*read)(m_busnumaddr, m_busnumaddr->m_device[m_devicenum], function, reg, mem_mask);
128            }
129         }
130         break;
131   }
132
133   if (LOG_PCI)
134      logerror("read('%s'): offset=%d result=0x%08X\n", tag(), offset, result);
135
136   return result;
137}
138
139
140
141pci_bus_legacy_device *pci_bus_legacy_device::pci_search_bustree(int busnum, int devicenum, pci_bus_legacy_device *pcibus)
142{
143   int a;
144   pci_bus_legacy_device *ret;
145
146   if (pcibus->m_busnum == busnum)
147   {
148      return pcibus;
149   }
150   for (a = 0; a < pcibus->m_siblings_count; a++)
151   {
152      ret = pci_search_bustree(busnum, devicenum, pcibus->m_siblings[a]);
153      if (ret != NULL)
154         return ret;
155   }
156   return NULL;
157}
158
159
160
161WRITE32_MEMBER( pci_bus_legacy_device::write )
162{
163   offset %= 2;
164
165   if (LOG_PCI)
166      logerror("write('%s'): offset=%d data=0x%08X\n", tag(), offset, data);
167
168   switch (offset)
169   {
170      case 0:
171         m_address = data;
172
173         /* lookup current device */
174         if (m_address & 0x80000000)
175         {
176            int busnum = (m_address >> 16) & 0xff;
177            int devicenum = (m_address >> 11) & 0x1f;
178            m_busnumaddr = pci_search_bustree(busnum, devicenum, this);
179            if (m_busnumaddr != NULL)
180            {
181               m_busnumber = busnum;
182               m_devicenum = devicenum;
183            }
184            else
185               m_devicenum = -1;
186            if (LOG_PCI)
187               logerror("  bus:%d device:%d\n", busnum, devicenum);
188         }
189         break;
190
191      case 1:
192         if (m_devicenum != -1)
193         {
194            pci_write_func write = m_busnumaddr->m_write_callback[m_devicenum];
195            if (write != NULL)
196            {
197               int function = (m_address >> 8) & 0x07;
198               int reg = (m_address >> 0) & 0xfc;
199               (*write)(m_busnumaddr, m_busnumaddr->m_device[m_devicenum], function, reg, data, mem_mask);
200            }
201            if (LOG_PCI)
202               logerror("  function:%d register:%d\n", (m_address >> 8) & 0x07, (m_address >> 0) & 0xfc);
203         }
204         break;
205   }
206}
207
208
209
210READ64_MEMBER(pci_bus_legacy_device::read_64be)
211{
212   UINT64 result = 0;
213   mem_mask = FLIPENDIAN_INT64(mem_mask);
214   if (ACCESSING_BITS_0_31)
215      result |= (UINT64)read(space, offset * 2 + 0, mem_mask >> 0) << 0;
216   if (ACCESSING_BITS_32_63)
217      result |= (UINT64)read(space, offset * 2 + 1, mem_mask >> 32) << 32;
218   return FLIPENDIAN_INT64(result);
219}
220
221WRITE64_MEMBER(pci_bus_legacy_device::write_64be)
222{
223   data = FLIPENDIAN_INT64(data);
224   mem_mask = FLIPENDIAN_INT64(mem_mask);
225   if (ACCESSING_BITS_0_31)
226      write(space, offset * 2 + 0, data >> 0, mem_mask >> 0);
227   if (ACCESSING_BITS_32_63)
228      write(space, offset * 2 + 1, data >> 32, mem_mask >> 32);
229}
230
231
232void pci_bus_legacy_device::add_sibling(pci_bus_legacy_device *sibling, int busnum)
233{
234   m_siblings[m_siblings_count] = sibling;
235   m_siblings_busnum[m_siblings_count] = busnum;
236   m_siblings_count++;
237}
238
239
240//-------------------------------------------------
241//  device_post_load - handle updating after a
242//  restore
243//-------------------------------------------------
244
245void pci_bus_legacy_device::device_post_load()
246{
247   if (m_devicenum != -1)
248   {
249      m_busnumaddr = pci_search_bustree(m_busnumber, m_devicenum, this);
250   }
251}
252
253//-------------------------------------------------
254//  device_start - device-specific startup
255//-------------------------------------------------
256
257void pci_bus_legacy_device::device_start()
258{
259   /* store a pointer back to the device */
260   m_devicenum = -1;
261
262   /* find all our devices */
263   for (int i = 0; i < ARRAY_LENGTH(m_devtag); i++)
264      if (m_devtag[i] != NULL)
265         m_device[i] = machine().device(m_devtag[i]);
266
267   if (m_father != NULL) {
268      pci_bus_legacy_device *father = machine().device<pci_bus_legacy_device>(m_father);
269      if (father)
270         father->add_sibling(this, m_busnum);
271   }
272
273   /* register pci states */
274   save_item(NAME(m_address));
275   save_item(NAME(m_devicenum));
276   save_item(NAME(m_busnum));
277}
278
279
280//-------------------------------------------------
281//  device_reset - device-specific reset
282//-------------------------------------------------
283
284void pci_bus_legacy_device::device_reset()
285{
286   /* reset the drive state */
287   m_devicenum = -1;
288   m_address = 0;
289}
trunk/src/emu/machine/lpci.h
r241777r241778
1/***************************************************************************
2
3    machine/lpci.h
4
5    Legacy PCI bus
6
7***************************************************************************/
8
9#ifndef LPCI_H
10#define LPCI_H
11
12//**************************************************************************
13//  TYPE DEFINITIONS
14//**************************************************************************
15
16typedef UINT32 (*pci_read_func)(device_t *pcibus, device_t *device, int function, int reg, UINT32 mem_mask);
17typedef void (*pci_write_func)(device_t *pcibus, device_t *device, int function, int reg, UINT32 data, UINT32 mem_mask);
18
19// ======================> pci_bus_legacy_device
20
21class pci_bus_legacy_device :  public device_t
22{
23public:
24   // construction/destruction
25   pci_bus_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
26
27   DECLARE_READ32_MEMBER( read );
28   DECLARE_WRITE32_MEMBER( write );
29
30   DECLARE_READ64_MEMBER( read_64be );
31   DECLARE_WRITE64_MEMBER( write_64be );
32
33   void set_busnum(int busnum) { m_busnum = busnum; }
34   void set_father(const char *father) { m_father = father; }
35   void set_device(int num, const char *tag, pci_read_func read_func, pci_write_func write_func) {
36      m_devtag[num] = tag; m_read_callback[num] = read_func; m_write_callback[num] = write_func; }
37
38   pci_bus_legacy_device *pci_search_bustree(int busnum, int devicenum, pci_bus_legacy_device *pcibus);
39   void add_sibling(pci_bus_legacy_device *sibling, int busnum);
40
41protected:
42   // device-level overrides
43   virtual void device_start();
44   virtual void device_reset();
45   virtual void device_post_load();
46
47private:
48   UINT8               m_busnum;
49   const char *        m_devtag[32];
50   pci_read_func       m_read_callback[32];
51   pci_write_func      m_write_callback[32];
52   const char *        m_father;
53   device_t *          m_device[32];
54   pci_bus_legacy_device * m_siblings[8];
55   UINT8               m_siblings_busnum[8];
56   int                 m_siblings_count;
57
58   offs_t              m_address;
59   INT8                m_devicenum; // device number we are addressing
60   INT8                m_busnumber; // pci bus number we are addressing
61   pci_bus_legacy_device * m_busnumaddr; // pci bus we are addressing
62};
63
64// device type definition
65extern const device_type PCI_BUS_LEGACY;
66
67
68/***************************************************************************
69    DEVICE CONFIGURATION MACROS
70***************************************************************************/
71
72#define MCFG_PCI_BUS_LEGACY_ADD(_tag, _busnum) \
73   MCFG_DEVICE_ADD(_tag, PCI_BUS_LEGACY, 0) \
74   downcast<pci_bus_legacy_device *>(device)->set_busnum(_busnum);
75#define MCFG_PCI_BUS_LEGACY_DEVICE(_devnum, _devtag, _configread, _configwrite) \
76   downcast<pci_bus_legacy_device *>(device)->set_device(_devnum, _devtag,_configread,_configwrite);
77#define MCFG_PCI_BUS_LEGACY_SIBLING(_father_tag) \
78   downcast<pci_bus_legacy_device *>(device)->set_father(_father_tag);
79
80
81#endif /* PCI_H */
trunk/src/emu/machine/machine.mak
r241777r241778
12211221
12221222#-------------------------------------------------
12231223#
1224#@src/emu/machine/lpci.h,MACHINES += LPCI
1225#-------------------------------------------------
1226
1227ifneq ($(filter LPCI,$(MACHINES)),)
1228MACHINEOBJS += $(MACHINEOBJ)/lpci.o
1229endif
1230
1231#-------------------------------------------------
1232#
12331224#@src/emu/machine/pci.h,MACHINES += PCI
12341225#-------------------------------------------------
12351226
12361227ifneq ($(filter PCI,$(MACHINES)),)
12371228MACHINEOBJS += $(MACHINEOBJ)/pci.o
1238MACHINEOBJS += $(MACHINEOBJ)/pci-usb.o
1239MACHINEOBJS += $(MACHINEOBJ)/pci-sata.o
1240MACHINEOBJS += $(MACHINEOBJ)/pci-apic.o
1241MACHINEOBJS += $(MACHINEOBJ)/pci-smbus.o
1242MACHINEOBJS += $(MACHINEOBJ)/i82541.o
1243MACHINEOBJS += $(MACHINEOBJ)/i82875p.o
1244MACHINEOBJS += $(MACHINEOBJ)/i6300esb.o
12451229endif
12461230
12471231#-------------------------------------------------
trunk/src/emu/machine/pci-apic.c
r241777r241778
1#include "pci-apic.h"
2
3const device_type APIC = &device_creator<apic_device>;
4
5apic_device::apic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
6   : pci_device(mconfig, APIC, "I/O Advanced Programmable Interrupt Controller", tag, owner, clock, "apic", __FILE__)
7{
8}
9
10void apic_device::device_start()
11{
12   pci_device::device_start();
13}
14
15void apic_device::device_reset()
16{
17   pci_device::device_reset();
18}
trunk/src/emu/machine/pci-apic.h
r241777r241778
1#ifndef PCI_APIC_H
2#define PCI_APIC_H
3
4#include "pci.h"
5
6#define MCFG_APIC_ADD(_tag, _main_id, _revision, _subdevice_id) \
7   MCFG_PCI_DEVICE_ADD(_tag, APIC, _main_id, _revision, 0x0c0320, _subdevice_id)
8
9class apic_device : public pci_device {
10public:
11   apic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
12
13protected:
14   virtual void device_start();
15   virtual void device_reset();
16};
17
18extern const device_type APIC;
19
20#endif
trunk/src/emu/machine/pci-sata.c
r241777r241778
1#include "pci-sata.h"
2
3const device_type SATA = &device_creator<sata_device>;
4
5sata_device::sata_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
6   : pci_device(mconfig, SATA, "SATA AHCI interface", tag, owner, clock, "sata", __FILE__)
7{
8}
9
10DEVICE_ADDRESS_MAP_START(primary_command_map, 32, sata_device)
11ADDRESS_MAP_END
12
13DEVICE_ADDRESS_MAP_START(primary_control_map, 32, sata_device)
14ADDRESS_MAP_END
15
16DEVICE_ADDRESS_MAP_START(secondary_command_map, 32, sata_device)
17ADDRESS_MAP_END
18
19DEVICE_ADDRESS_MAP_START(secondary_control_map, 32, sata_device)
20ADDRESS_MAP_END
21
22DEVICE_ADDRESS_MAP_START(bus_master_map, 32, sata_device)
23ADDRESS_MAP_END
24
25DEVICE_ADDRESS_MAP_START(ide_command_posting_map, 32, sata_device)
26ADDRESS_MAP_END
27
28
29void sata_device::device_start()
30{
31   pci_device::device_start();
32
33   add_map(8,    M_IO,  FUNC(sata_device::primary_command_map));
34   add_map(4,    M_IO,  FUNC(sata_device::primary_control_map));
35   add_map(8,    M_IO,  FUNC(sata_device::secondary_command_map));
36   add_map(4,    M_IO,  FUNC(sata_device::secondary_control_map));
37   add_map(16,   M_IO,  FUNC(sata_device::bus_master_map));
38   add_map(1024, M_MEM, FUNC(sata_device::ide_command_posting_map));
39}
40
41void sata_device::device_reset()
42{
43   pci_device::device_reset();
44}
trunk/src/emu/machine/pci-sata.h
r241777r241778
1#ifndef PCI_SATA_H
2#define PCI_SATA_H
3
4#include "pci.h"
5
6#define MCFG_SATA_ADD(_tag, _main_id, _revision, _subdevice_id) \
7   MCFG_PCI_DEVICE_ADD(_tag, SATA, _main_id, _revision, 0x01018a, _subdevice_id)
8
9class sata_device : public pci_device {
10public:
11   sata_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
12
13protected:
14   virtual void device_start();
15   virtual void device_reset();
16
17private:
18   DECLARE_ADDRESS_MAP(primary_command_map, 32);
19   DECLARE_ADDRESS_MAP(primary_control_map, 32);
20   DECLARE_ADDRESS_MAP(secondary_command_map, 32);
21   DECLARE_ADDRESS_MAP(secondary_control_map, 32);
22   DECLARE_ADDRESS_MAP(bus_master_map, 32);
23   DECLARE_ADDRESS_MAP(ide_command_posting_map, 32);
24};
25
26extern const device_type SATA;
27
28#endif
trunk/src/emu/machine/pci-smbus.c
r241777r241778
1#include "pci-smbus.h"
2
3const device_type SMBUS = &device_creator<smbus_device>;
4
5DEVICE_ADDRESS_MAP_START(map, 32, smbus_device)
6ADDRESS_MAP_END
7
8smbus_device::smbus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
9   : pci_device(mconfig, SMBUS, "SMBUS interface", tag, owner, clock, "smbus", __FILE__)
10{
11}
12
13void smbus_device::device_start()
14{
15   pci_device::device_start();
16   add_map(32, M_IO, FUNC(smbus_device::map));
17}
18
19void smbus_device::device_reset()
20{
21   pci_device::device_reset();
22}
trunk/src/emu/machine/pci-smbus.h
r241777r241778
1#ifndef PCI_SMBUS_H
2#define PCI_SMBUS_H
3
4#include "pci.h"
5
6#define MCFG_SMBUS_ADD(_tag, _main_id, _revision, _subdevice_id) \
7   MCFG_PCI_DEVICE_ADD(_tag, SMBUS, _main_id, _revision, 0x0c0500, _subdevice_id)
8
9class smbus_device : public pci_device {
10public:
11   smbus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
12
13protected:
14   virtual void device_start();
15   virtual void device_reset();
16
17private:
18   DECLARE_ADDRESS_MAP(map, 32);
19};
20
21extern const device_type SMBUS;
22
23#endif
trunk/src/emu/machine/pci-usb.c
r241777r241778
1#include "pci-usb.h"
2
3const device_type USB_UHCI = &device_creator<usb_uhci_device>;
4const device_type USB_EHCI = &device_creator<usb_ehci_device>;
5
6DEVICE_ADDRESS_MAP_START(map, 32, usb_uhci_device)
7ADDRESS_MAP_END
8
9usb_uhci_device::usb_uhci_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
10   : pci_device(mconfig, USB_UHCI, "USB 1.1 UHCI interface", tag, owner, clock, "usb_uhci", __FILE__)
11{
12}
13
14void usb_uhci_device::device_start()
15{
16   pci_device::device_start();
17   add_map(32, M_IO, FUNC(usb_uhci_device::map));
18}
19
20void usb_uhci_device::device_reset()
21{
22   pci_device::device_reset();
23}
24
25DEVICE_ADDRESS_MAP_START(map, 32, usb_ehci_device)
26ADDRESS_MAP_END
27
28usb_ehci_device::usb_ehci_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
29   : pci_device(mconfig, USB_EHCI, "USB 2.0 EHCI interface", tag, owner, clock, "usb_ehci", __FILE__)
30{
31}
32
33void usb_ehci_device::device_start()
34{
35   pci_device::device_start();
36   add_map(1024, M_MEM, FUNC(usb_ehci_device::map));
37}
38
39void usb_ehci_device::device_reset()
40{
41   pci_device::device_reset();
42}
trunk/src/emu/machine/pci-usb.h
r241777r241778
1#ifndef PCI_USB_H
2#define PCI_USB_H
3
4#include "pci.h"
5
6#define MCFG_USB_UHCI_ADD(_tag, _main_id, _revision, _subdevice_id) \
7   MCFG_PCI_DEVICE_ADD(_tag, USB_UHCI, _main_id, _revision, 0x0c0300, _subdevice_id)
8
9#define MCFG_USB_EHCI_ADD(_tag, _main_id, _revision, _subdevice_id) \
10   MCFG_PCI_DEVICE_ADD(_tag, USB_EHCI, _main_id, _revision, 0x0c0320, _subdevice_id)
11
12class usb_uhci_device : public pci_device {
13public:
14   usb_uhci_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
15
16protected:
17   virtual void device_start();
18   virtual void device_reset();
19
20private:
21   DECLARE_ADDRESS_MAP(map, 32);
22};
23
24class usb_ehci_device : public pci_device {
25public:
26   usb_ehci_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
27
28protected:
29   virtual void device_start();
30   virtual void device_reset();
31
32private:
33   DECLARE_ADDRESS_MAP(map, 32);
34};
35
36extern const device_type USB_UHCI;
37extern const device_type USB_EHCI;
38
39#endif
trunk/src/emu/machine/pci.c
r241777r241778
1#include "pci.h"
1/***************************************************************************
22
3const device_type PCI_ROOT   = &device_creator<pci_root_device>;
4const device_type PCI_BRIDGE = &device_creator<pci_bridge_device>;
3    machine/pci.c
54
6DEVICE_ADDRESS_MAP_START(config_map, 32, pci_device)
7   AM_RANGE(0x00, 0x03) AM_READ16(vendor_r,          0x0000ffff)
8   AM_RANGE(0x00, 0x03) AM_READ16(device_r,          0xffff0000)
5    PCI bus
96
10   AM_RANGE(0x08, 0x0b) AM_READ  (class_rev_r)
11   AM_RANGE(0x0c, 0x0f) AM_READ8 (cache_line_size_r, 0x000000ff)
12   AM_RANGE(0x0c, 0x0f) AM_READ8 (latency_timer_r,   0x0000ff00)
13   AM_RANGE(0x0c, 0x0f) AM_READ8 (header_type_r,     0x00ff0000)
14   AM_RANGE(0x0c, 0x0f) AM_READ8 (bist_r,            0xff000000)
7    The PCI bus is a 32-bit bus introduced by Intel, so it is little endian
158
16   AM_RANGE(0x2c, 0x2f) AM_READ16(subvendor_r,          0x0000ffff)
17   AM_RANGE(0x2c, 0x2f) AM_READ16(subsystem_r,          0xffff0000)
18ADDRESS_MAP_END
9    Control word:
10        bit 31:         Enable bit
11        bits 30-24:     Reserved
12        bits 23-16:     PCI bus number
13        bits 15-11:     PCI device number
14        bits 10- 8:     PCI function number
15        bits  7- 0:     Offset address
1916
20pci_device::pci_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
21   : device_t(mconfig, type, name, tag, owner, clock, shortname, source)
22{
23   main_id = 0xffffffff;
24   revision = 0x00;
25   pclass = 0xffffff;
26   subsystem_id = 0xffffffff;
27}
17    Standard PCI registers:
18        0x00    2   Vendor ID
19        0x02    2   Device ID
20        0x04    2   PCI Command
21        0x06    2   PCI Status
22        0x08    1   Revision ID
23        0x09    1   Programming Interface
24        0x0A    1   Subclass Code
25        0x0B    1   Class Code
2826
29void pci_device::set_ids(UINT32 _main_id, UINT8 _revision, UINT32 _pclass, UINT32 _subsystem_id)
30{
31   main_id = _main_id;
32   revision = _revision;
33   pclass = _pclass;
34   subsystem_id = _subsystem_id;
35}
27    Class Code/Subclass Code/Programming Interface
28        0x00XXXX    Pre-PCI 2.0 devices
29        0x000000        Non-VGA device
30        0x000101        VGA device
31        0x01XXXX    Storage Controller
32        0x010000        SCSI
33        0x0101XX        IDE
34        0x0102XX        Floppy
35        0x0103XX        IPI
36        0x0104XX        RAID
37        0x0180XX        Other
38        0x02XXXX    Network Card
39        0x020000        Ethernet
40        0x020100        Tokenring
41        0x020200        FDDI
42        0x020300        ATM
43        0x028000        Other
44        0x03XXXX    Display Controller
45        0x030000        VGA
46        0x030001        8514 Compatible
47        0x030100        XGA
48        0x038000        Other
49        0x04XXXX    Multimedia
50        0x040000        Video
51        0x040100        Audio
52        0x048000        Other
53        0x05XXXX    Memory Controller
54        0x050000        RAM
55        0x050100        Flash
56        0x058000        Other
57        0x06XXXX    Bridge
58        0x060000        Host/PCI
59        0x060100        PCI/ISA
60        0x060200        PCI/EISA
61        0x060300        PCI/Micro Channel
62        0x060400        PCI/PCI
63        0x060500        PCI/PCMCIA
64        0x060600        PCI/NuBus
65        0x060700        PCI/CardBus
66        0x068000        Other
3667
37void pci_device::device_start()
38{
39}
68    Information on PCI vendors can be found at http://www.pcidatabase.com/
4069
41void pci_device::device_reset()
42{
43}
70***************************************************************************/
4471
45READ16_MEMBER(pci_device::vendor_r)
46{
47   return main_id >> 16;
48}
72#include "emu.h"
73#include "machine/pci.h"
4974
50READ16_MEMBER(pci_device::device_r)
51{
52   return main_id;
53}
75#define LOG_PCI 0
5476
55READ32_MEMBER(pci_device::class_rev_r)
56{
57   return (pclass << 8) | revision;
58}
77//**************************************************************************
78//  GLOBAL VARIABLES
79//**************************************************************************
5980
60READ8_MEMBER(pci_device::cache_line_size_r)
61{
62   return 0x00;
63}
81const device_type PCI_BUS_LEGACY = &device_creator<pci_bus_legacy_device>;
6482
65READ8_MEMBER(pci_device::latency_timer_r)
66{
67   return 0x00;
68}
83//**************************************************************************
84//  LIVE DEVICE
85//**************************************************************************
6986
70READ8_MEMBER(pci_device::header_type_r)
87//-------------------------------------------------
88//  pci_bus_legacy_device - constructor
89//-------------------------------------------------
90pci_bus_legacy_device::pci_bus_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
91      device_t(mconfig, PCI_BUS_LEGACY, "PCI Bus Legacy", tag, owner, clock, "pci_bus_legacy", __FILE__),
92      m_father(NULL)
7193{
72   return 0x00;
94   for (int i = 0; i < ARRAY_LENGTH(m_devtag); i++) {
95      m_devtag[i]= NULL;
96      m_read_callback[i] = NULL;
97      m_write_callback[i] = NULL;
98   }
99   m_siblings_count = 0;
73100}
74101
75READ8_MEMBER(pci_device::bist_r)
76{
77   return 0x00;
78}
102/***************************************************************************
103    INLINE FUNCTIONS
104***************************************************************************/
79105
80READ16_MEMBER(pci_device::subvendor_r)
106READ32_MEMBER( pci_bus_legacy_device::read )
81107{
82   return subsystem_id >> 16;
83}
108   UINT32 result = 0xffffffff;
109   int function, reg;
84110
85READ16_MEMBER(pci_device::subsystem_r)
86{
87   return subsystem_id;
88}
111   offset %= 2;
89112
90void pci_device::scan_sub_devices(pci_device **devices, dynamic_array<pci_device *> &all, dynamic_array<pci_device *> &bridges, device_t *root)
91{
92}
113   switch (offset)
114   {
115      case 0:
116         result = m_address;
117         break;
93118
94void pci_device::reset_all_mappings()
95{
96}
119      case 1:
120         if (m_devicenum != -1)
121         {
122            pci_read_func read = m_busnumaddr->m_read_callback[m_devicenum];
123            if (read != NULL)
124            {
125               function = (m_address >> 8) & 0x07;
126               reg = (m_address >> 0) & 0xfc;
127               result = (*read)(m_busnumaddr, m_busnumaddr->m_device[m_devicenum], function, reg, mem_mask);
128            }
129         }
130         break;
131   }
97132
98void pci_device::map_device(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
99                     UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
100{
101   map_extra(memory_window_start, memory_window_end, memory_offset, memory_space,
102           io_window_start, io_window_end, io_offset, io_space);
103}
133   if (LOG_PCI)
134      logerror("read('%s'): offset=%d result=0x%08X\n", tag(), offset, result);
104135
105void pci_device::map_extra(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
106                     UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
107{
136   return result;
108137}
109138
110void pci_device::map_config(UINT8 device, address_space *config_space)
111{
112   config_space->install_device(device << 12, (device << 12) | 0xfff, *this, &pci_device::config_map);
113}
114139
115void pci_device::add_map(UINT64 size, int flags, address_map_delegate &map)
116{
117   logerror("Device %s (%s) has 0x%" I64FMT "x bytes of %s named %s\n", tag(), name(), size, flags & M_IO ? "io" : "memory", map.name());
118}
119140
120agp_device::agp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
121   : pci_device(mconfig, type, name, tag, owner, clock, shortname, source)
141pci_bus_legacy_device *pci_bus_legacy_device::pci_search_bustree(int busnum, int devicenum, pci_bus_legacy_device *pcibus)
122142{
123}
143   int a;
144   pci_bus_legacy_device *ret;
124145
125void agp_device::device_start()
126{
127   pci_device::device_start();
146   if (pcibus->m_busnum == busnum)
147   {
148      return pcibus;
149   }
150   for (a = 0; a < pcibus->m_siblings_count; a++)
151   {
152      ret = pci_search_bustree(busnum, devicenum, pcibus->m_siblings[a]);
153      if (ret != NULL)
154         return ret;
155   }
156   return NULL;
128157}
129158
130void agp_device::device_reset()
131{
132   pci_device::device_reset();
133}
134159
135160
136
137pci_bridge_device::pci_bridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
138   : pci_device(mconfig, PCI_BRIDGE, "PCI-PCI Bridge", tag, owner, clock, "pci_bridge", __FILE__),
139     device_memory_interface(mconfig, *this),
140     configure_space_config("configuration_space", ENDIANNESS_LITTLE, 32, 20)
161WRITE32_MEMBER( pci_bus_legacy_device::write )
141162{
142}
163   offset %= 2;
143164
144pci_bridge_device::pci_bridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
145   : pci_device(mconfig, type, name, tag, owner, clock, shortname, source),
146     device_memory_interface(mconfig, *this),
147     configure_space_config("configuration_space", ENDIANNESS_LITTLE, 32, 20)
148{
149}
165   if (LOG_PCI)
166      logerror("write('%s'): offset=%d data=0x%08X\n", tag(), offset, data);
150167
151READ8_MEMBER(pci_bridge_device::header_type_r)
152{
153   return 0x01;
154}
168   switch (offset)
169   {
170      case 0:
171         m_address = data;
155172
156const address_space_config *pci_bridge_device::memory_space_config(address_spacenum spacenum) const
157{
158   return spacenum == AS_PROGRAM ? &configure_space_config : NULL;
159}
173         /* lookup current device */
174         if (m_address & 0x80000000)
175         {
176            int busnum = (m_address >> 16) & 0xff;
177            int devicenum = (m_address >> 11) & 0x1f;
178            m_busnumaddr = pci_search_bustree(busnum, devicenum, this);
179            if (m_busnumaddr != NULL)
180            {
181               m_busnumber = busnum;
182               m_devicenum = devicenum;
183            }
184            else
185               m_devicenum = -1;
186            if (LOG_PCI)
187               logerror("  bus:%d device:%d\n", busnum, devicenum);
188         }
189         break;
160190
161device_t *pci_bridge_device::bus_root()
162{
163   return this;
164}
165
166void pci_bridge_device::device_start()
167{
168   pci_device::device_start();
169
170   for(int i=0; i<32*8; i++)
171      sub_devices[i] = NULL;
172
173   for(device_t *d = bus_root()->first_subdevice(); d != NULL; d = d->next()) {
174      const char *t = d->tag();
175      int l = strlen(t);
176      if(l <= 4 || t[l-5] != ':' || t[l-2] != '.')
177         continue;
178      int id = strtol(t+l-4, 0, 16);
179      int fct = t[l-1] - '0';
180      sub_devices[(id << 3) | fct] = downcast<pci_device *>(d);
181   }
182   for(int i=0; i<32*8; i++)
183      if(sub_devices[i]) {
184         all_devices.append(sub_devices[i]);
185         if(sub_devices[i] != this) {
186            pci_bridge_device *bridge = dynamic_cast<pci_bridge_device *>(sub_devices[i]);
187            if(bridge)
188               all_bridges.append(bridge);
191      case 1:
192         if (m_devicenum != -1)
193         {
194            pci_write_func write = m_busnumaddr->m_write_callback[m_devicenum];
195            if (write != NULL)
196            {
197               int function = (m_address >> 8) & 0x07;
198               int reg = (m_address >> 0) & 0xfc;
199               (*write)(m_busnumaddr, m_busnumaddr->m_device[m_devicenum], function, reg, data, mem_mask);
200            }
201            if (LOG_PCI)
202               logerror("  function:%d register:%d\n", (m_address >> 8) & 0x07, (m_address >> 0) & 0xfc);
189203         }
190      }
204         break;
205   }
191206}
192207
193void pci_bridge_device::device_reset()
194{
195   pci_device::device_reset();
196   regenerate_config_mapping();
197}
198208
199void pci_bridge_device::reset_all_mappings()
200{
201   for(int i=0; i != all_devices.count(); i++)
202      if(all_devices[i] != this)
203         all_devices[i]->reset_all_mappings();
204}
205209
206
207void pci_bridge_device::map_device(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
208                           UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
210READ64_MEMBER(pci_bus_legacy_device::read_64be)
209211{
210   for(int i = all_devices.count()-1; i>=0; i--)
211      if(all_devices[i] != this)
212         all_devices[i]->map_device(memory_window_start, memory_window_end, memory_offset, memory_space,
213                              io_window_start, io_window_end, io_offset, io_space);
214
215   map_extra(memory_window_start, memory_window_end, memory_offset, memory_space,
216           io_window_start, io_window_end, io_offset, io_space);
212   UINT64 result = 0;
213   mem_mask = FLIPENDIAN_INT64(mem_mask);
214   if (ACCESSING_BITS_0_31)
215      result |= (UINT64)read(space, offset * 2 + 0, mem_mask >> 0) << 0;
216   if (ACCESSING_BITS_32_63)
217      result |= (UINT64)read(space, offset * 2 + 1, mem_mask >> 32) << 32;
218   return FLIPENDIAN_INT64(result);
217219}
218220
219
220void pci_bridge_device::regenerate_config_mapping()
221WRITE64_MEMBER(pci_bus_legacy_device::write_64be)
221222{
222   address_space *config_space = &space(AS_PROGRAM);
223   config_space->unmap_readwrite(0x00000, 0xfffff);
224   for(int i=0; i<32*8; i++)
225      if(sub_devices[i])
226         sub_devices[i]->map_config(i, config_space);
223   data = FLIPENDIAN_INT64(data);
224   mem_mask = FLIPENDIAN_INT64(mem_mask);
225   if (ACCESSING_BITS_0_31)
226      write(space, offset * 2 + 0, data >> 0, mem_mask >> 0);
227   if (ACCESSING_BITS_32_63)
228      write(space, offset * 2 + 1, data >> 32, mem_mask >> 32);
227229}
228230
229231
230agp_bridge_device::agp_bridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
231   : pci_bridge_device(mconfig, type, name, tag, owner, clock, shortname, source)
232void pci_bus_legacy_device::add_sibling(pci_bus_legacy_device *sibling, int busnum)
232233{
234   m_siblings[m_siblings_count] = sibling;
235   m_siblings_busnum[m_siblings_count] = busnum;
236   m_siblings_count++;
233237}
234238
235void agp_bridge_device::device_start()
236{
237   pci_bridge_device::device_start();
238}
239239
240void agp_bridge_device::device_reset()
241{
242   pci_bridge_device::device_reset();
243}
240//-------------------------------------------------
241//  device_post_load - handle updating after a
242//  restore
243//-------------------------------------------------
244244
245
246
247DEVICE_ADDRESS_MAP_START(io_configuration_access_map, 32, pci_host_device)
248   AM_RANGE(0xcf8, 0xcfb) AM_READWRITE(config_address_r, config_address_w)
249   AM_RANGE(0xcfc, 0xcff) AM_READWRITE(config_data_r,    config_data_w)
250ADDRESS_MAP_END
251
252
253pci_host_device::pci_host_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
254   : pci_bridge_device(mconfig, type, name, tag, owner, clock, shortname, source)
245void pci_bus_legacy_device::device_post_load()
255246{
247   if (m_devicenum != -1)
248   {
249      m_busnumaddr = pci_search_bustree(m_busnumber, m_devicenum, this);
250   }
256251}
257252
258device_t *pci_host_device::bus_root()
259{
260   return owner();
261}
253//-------------------------------------------------
254//  device_start - device-specific startup
255//-------------------------------------------------
262256
263void pci_host_device::device_start()
257void pci_bus_legacy_device::device_start()
264258{
265   pci_bridge_device::device_start();
259   /* store a pointer back to the device */
260   m_devicenum = -1;
266261
267   memory_window_start = memory_window_end = memory_offset = 0;
268   io_window_start = io_window_end = io_offset = 0;
269}
262   /* find all our devices */
263   for (int i = 0; i < ARRAY_LENGTH(m_devtag); i++)
264      if (m_devtag[i] != NULL)
265         m_device[i] = machine().device(m_devtag[i]);
270266
271void pci_host_device::device_reset()
272{
273   pci_bridge_device::device_reset();
274   reset_all_mappings();
275   regenerate_mapping();
267   if (m_father != NULL) {
268      pci_bus_legacy_device *father = machine().device<pci_bus_legacy_device>(m_father);
269      if (father)
270         father->add_sibling(this, m_busnum);
271   }
276272
277   config_address = 0;
273   /* register pci states */
274   save_item(NAME(m_address));
275   save_item(NAME(m_devicenum));
276   save_item(NAME(m_busnum));
278277}
279278
280void pci_host_device::regenerate_mapping()
281{
282   logerror("Regenerating mapping\n");
283   memory_space->unmap_readwrite(memory_window_start, memory_window_end);
284   io_space->unmap_readwrite(io_window_start, io_window_end);
285279
286   map_device(memory_window_start, memory_window_end, memory_offset, memory_space,
287            io_window_start, io_window_end, io_offset, io_space);
288}
280//-------------------------------------------------
281//  device_reset - device-specific reset
282//-------------------------------------------------
289283
290READ32_MEMBER(pci_host_device::config_address_r)
284void pci_bus_legacy_device::device_reset()
291285{
292   return config_address;
286   /* reset the drive state */
287   m_devicenum = -1;
288   m_address = 0;
293289}
294
295WRITE32_MEMBER(pci_host_device::config_address_w)
296{
297   COMBINE_DATA(&config_address);
298}
299
300READ32_MEMBER(pci_host_device::config_data_r)
301{
302   return config_address & 0x80000000 ? config_read((config_address >> 16) & 0xff, (config_address >> 8) & 0xff, config_address & 0xfc, mem_mask) : 0xffffffff;
303}
304
305WRITE32_MEMBER(pci_host_device::config_data_w)
306{
307   if(config_address & 0x80000000)
308      config_write((config_address >> 16) & 0xff, (config_address >> 8) & 0xff, config_address & 0xfc, data, mem_mask);
309}
310
311UINT32 pci_host_device::config_read(UINT8 bus, UINT8 device, UINT16 reg, UINT32 mem_mask)
312{
313   UINT32 data = 0xffffffff;
314   if(!bus) {
315      if(sub_devices[device]) {
316         data = space(AS_PROGRAM).read_dword((device << 12) | reg, mem_mask);
317         logerror("config_read %02x:%02x.%x:%02x %08x @ %08x\n", bus, device >> 3, device & 7, reg, data, mem_mask);
318      }
319   } else
320      abort();
321   
322   return data;
323}
324
325void pci_host_device::config_write(UINT8 bus, UINT8 device, UINT16 reg, UINT32 data, UINT32 mem_mask)
326{
327   if(!bus) {
328      if(sub_devices[device]) {
329         space(AS_PROGRAM).write_dword((device << 12) | reg, data, mem_mask);
330         logerror("config_write %02x:%02x.%x:%02x %08x @ %08x\n", bus, device >> 3, device & 7, reg, data, mem_mask);
331      }
332   } else
333      abort();
334}
335
336
337pci_root_device::pci_root_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
338   : device_t(mconfig, PCI_ROOT,"PCI virtual root", tag, owner, clock, "pci_root", __FILE__)
339{
340}
341
342void pci_root_device::device_start()
343{
344}
345
346void pci_root_device::device_reset()
347{
348}
trunk/src/emu/machine/pci.h
r241777r241778
1#ifndef PCI_H
2#define PCI_H
1/***************************************************************************
32
4#include "emu.h"
3    machine/pci.h
54
6#define MCFG_PCI_ROOT_ADD(_tag) \
7   MCFG_DEVICE_ADD(_tag, PCI_ROOT, 0)
5    PCI bus
86
9#define MCFG_PCI_DEVICE_ADD(_tag, _type, _main_id, _revision, _pclass, _subsystem_id) \
10   MCFG_DEVICE_ADD(_tag, _type, 0) \
11   downcast<pci_device *>(device)->set_ids(_main_id, _revision, _pclass, _subsystem_id);
7***************************************************************************/
128
13#define MCFG_AGP_DEVICE_ADD(_tag, _type, _main_id, _revision, _subsystem_id) \
14   MCFG_PCI_DEVICE_ADD(_tag, _type, _main_id, _revision, 0x030000, _subsystem_id)
9#ifndef PCI_H
10#define PCI_H
1511
16#define MCFG_PCI_HOST_ADD(_tag, _type, _main_id, _revision, _subsystem_id) \
17   MCFG_PCI_DEVICE_ADD(_tag, _type, _main_id, _revision, 0x060000, _subsystem_id)
12//**************************************************************************
13//  TYPE DEFINITIONS
14//**************************************************************************
1815
19#define MCFG_PCI_BRIDGE_ADD(_tag, _main_id, _revision) \
20   MCFG_PCI_DEVICE_ADD(_tag, PCI_BRIDGE, _main_id, _revision, 0x060400, 0x00000000)
16typedef UINT32 (*pci_read_func)(device_t *pcibus, device_t *device, int function, int reg, UINT32 mem_mask);
17typedef void (*pci_write_func)(device_t *pcibus, device_t *device, int function, int reg, UINT32 data, UINT32 mem_mask);
2118
22#define MCFG_AGP_BRIDGE_ADD(_tag, _type, _main_id, _revision) \
23   MCFG_PCI_DEVICE_ADD(_tag, _type, _main_id, _revision, 0x060400, 0x00000000)
19// ======================> pci_bus_legacy_device
2420
25class pci_device : public device_t {
21class pci_bus_legacy_device :  public device_t
22{
2623public:
27   pci_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
24   // construction/destruction
25   pci_bus_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
2826
29   void set_ids(UINT32 main_id, UINT8 revision, UINT32 pclass, UINT32 subsystem_id);
27   DECLARE_READ32_MEMBER( read );
28   DECLARE_WRITE32_MEMBER( write );
3029
31   virtual void reset_all_mappings();
32   virtual void map_device(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
33                     UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
34   virtual void map_extra(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
35                     UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
30   DECLARE_READ64_MEMBER( read_64be );
31   DECLARE_WRITE64_MEMBER( write_64be );
3632
37   void map_config(UINT8 device, address_space *config_space);
33   void set_busnum(int busnum) { m_busnum = busnum; }
34   void set_father(const char *father) { m_father = father; }
35   void set_device(int num, const char *tag, pci_read_func read_func, pci_write_func write_func) {
36      m_devtag[num] = tag; m_read_callback[num] = read_func; m_write_callback[num] = write_func; }
3837
39   virtual DECLARE_ADDRESS_MAP(config_map, 32);
38   pci_bus_legacy_device *pci_search_bustree(int busnum, int devicenum, pci_bus_legacy_device *pcibus);
39   void add_sibling(pci_bus_legacy_device *sibling, int busnum);
4040
41   DECLARE_READ16_MEMBER(vendor_r);
42   DECLARE_READ16_MEMBER(device_r);
43   DECLARE_READ32_MEMBER(class_rev_r);
44   virtual DECLARE_READ8_MEMBER(cache_line_size_r);
45   virtual DECLARE_READ8_MEMBER(latency_timer_r);
46   virtual DECLARE_READ8_MEMBER(header_type_r);
47   virtual DECLARE_READ8_MEMBER(bist_r);
48   DECLARE_READ16_MEMBER(subvendor_r);
49   DECLARE_READ16_MEMBER(subsystem_r);
50
5141protected:
52   enum {
53      M_MEM = 0,
54      M_IO  = 1,
55      M_64D = 2,
56      M_64A = 4,
57      M_PREF = 8
58   };
59
60   UINT32 main_id, subsystem_id;
61   UINT32 pclass;
62   UINT8 revision;
63
42   // device-level overrides
6443   virtual void device_start();
6544   virtual void device_reset();
45   virtual void device_post_load();
6646
67   static void scan_sub_devices(pci_device **devices, dynamic_array<pci_device *> &all, dynamic_array<pci_device *> &bridges, device_t *root);
68
69   void add_map(UINT64 size, int flags, address_map_delegate &map);
70   template <typename T> void add_map(UINT64 size, int flags, void (T::*map)(address_map &map, device_t &device), const char *name) {
71      address_map_delegate delegate(map, name, static_cast<T *>(this));
72      add_map(size, flags, delegate);
73   }
74};
75
76class agp_device : public pci_device {
77public:
78   agp_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
79
80protected:
81   virtual void device_start();
82   virtual void device_reset();
83};
84
85class pci_bridge_device : public pci_device, public device_memory_interface {
86public:
87   pci_bridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
88   pci_bridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
89
90   virtual void map_device(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
91                     UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
92   virtual void reset_all_mappings();
93
94   virtual DECLARE_READ8_MEMBER(header_type_r);
95
96protected:
97   pci_device *sub_devices[32*8];
98   dynamic_array<pci_device *> all_devices;
99   dynamic_array<pci_device *> all_bridges;
100
101   virtual void device_start();
102   virtual void device_reset();
103   virtual const address_space_config *memory_space_config(address_spacenum spacenum) const;
104
105   virtual device_t *bus_root();
106   virtual void regenerate_config_mapping();
107
10847private:
109   address_space_config configure_space_config;
110};
48   UINT8               m_busnum;
49   const char *        m_devtag[32];
50   pci_read_func       m_read_callback[32];
51   pci_write_func      m_write_callback[32];
52   const char *        m_father;
53   device_t *          m_device[32];
54   pci_bus_legacy_device * m_siblings[8];
55   UINT8               m_siblings_busnum[8];
56   int                 m_siblings_count;
11157
112class agp_bridge_device : public pci_bridge_device {
113public:
114   agp_bridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
115
116protected:
117   virtual void device_start();
118   virtual void device_reset();
58   offs_t              m_address;
59   INT8                m_devicenum; // device number we are addressing
60   INT8                m_busnumber; // pci bus number we are addressing
61   pci_bus_legacy_device * m_busnumaddr; // pci bus we are addressing
11962};
12063
121class pci_host_device : public pci_bridge_device {
122public:
123   DECLARE_ADDRESS_MAP(io_configuration_access_map, 32);
64// device type definition
65extern const device_type PCI_BUS_LEGACY;
12466
125   pci_host_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
12667
127protected:
128   address_space *memory_space, *io_space;
68/***************************************************************************
69    DEVICE CONFIGURATION MACROS
70***************************************************************************/
12971
130   UINT64 memory_window_start, memory_window_end, memory_offset;
131   UINT64 io_window_start, io_window_end, io_offset;
72#define MCFG_PCI_BUS_LEGACY_ADD(_tag, _busnum) \
73   MCFG_DEVICE_ADD(_tag, PCI_BUS_LEGACY, 0) \
74   downcast<pci_bus_legacy_device *>(device)->set_busnum(_busnum);
75#define MCFG_PCI_BUS_LEGACY_DEVICE(_devnum, _devtag, _configread, _configwrite) \
76   downcast<pci_bus_legacy_device *>(device)->set_device(_devnum, _devtag,_configread,_configwrite);
77#define MCFG_PCI_BUS_LEGACY_SIBLING(_father_tag) \
78   downcast<pci_bus_legacy_device *>(device)->set_father(_father_tag);
13279
133   virtual void device_start();
134   virtual void device_reset();
13580
136   virtual device_t *bus_root();
137
138   UINT32 config_address;
139
140   DECLARE_READ32_MEMBER(config_address_r);
141   DECLARE_WRITE32_MEMBER(config_address_w);
142   DECLARE_READ32_MEMBER(config_data_r);
143   DECLARE_WRITE32_MEMBER(config_data_w);
144
145   UINT32 config_read(UINT8 bus, UINT8 device, UINT16 reg, UINT32 mem_mask);
146   void config_write(UINT8 bus, UINT8 device, UINT16 reg, UINT32 data, UINT32 mem_mask);
147
148   void regenerate_mapping();
149};
150
151class pci_root_device : public device_t {
152public:
153   pci_root_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
154
155protected:
156   virtual void device_start();
157   virtual void device_reset();
158};
159
160extern const device_type PCI_ROOT;
161extern const device_type PCI_BRIDGE;
162
163#endif
81#endif /* PCI_H */
trunk/src/emu/sound/pci-ac97.c
r241777r241778
1#include "pci-ac97.h"
2
3const device_type AC97 = &device_creator<ac97_device>;
4
5DEVICE_ADDRESS_MAP_START(native_audio_mixer_map, 32, ac97_device)
6ADDRESS_MAP_END
7
8DEVICE_ADDRESS_MAP_START(native_audio_bus_mastering_map, 32, ac97_device)
9ADDRESS_MAP_END
10
11DEVICE_ADDRESS_MAP_START(mixer_map, 32, ac97_device)
12ADDRESS_MAP_END
13
14DEVICE_ADDRESS_MAP_START(bus_mastering_map, 32, ac97_device)
15ADDRESS_MAP_END
16
17ac97_device::ac97_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
18   : pci_device(mconfig, AC97, "AC97 audio", tag, owner, clock, "ac97", __FILE__)
19{
20}
21
22void ac97_device::device_start()
23{
24   pci_device::device_start();
25   add_map(256, M_IO, FUNC(ac97_device::native_audio_mixer_map));
26   add_map(64,  M_IO, FUNC(ac97_device::native_audio_bus_mastering_map));
27   add_map(512, M_MEM, FUNC(ac97_device::mixer_map));
28   add_map(256, M_MEM, FUNC(ac97_device::bus_mastering_map));
29}
30
31void ac97_device::device_reset()
32{
33   pci_device::device_reset();
34}
trunk/src/emu/sound/pci-ac97.h
r241777r241778
1#ifndef PCI_AC97_H
2#define PCI_AC97_H
3
4#include "machine/pci.h"
5
6#define MCFG_AC97_ADD(_tag, _main_id, _revision, _subdevice_id) \
7   MCFG_PCI_DEVICE_ADD(_tag, AC97, _main_id, _revision, 0x040300, _subdevice_id)
8
9class ac97_device : public pci_device {
10public:
11   ac97_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
12
13protected:
14   virtual void device_start();
15   virtual void device_reset();
16
17private:
18   DECLARE_ADDRESS_MAP(native_audio_mixer_map, 32);
19   DECLARE_ADDRESS_MAP(native_audio_bus_mastering_map, 32);
20   DECLARE_ADDRESS_MAP(mixer_map, 32);
21   DECLARE_ADDRESS_MAP(bus_mastering_map, 32);
22};
23
24extern const device_type AC97;
25
26#endif
trunk/src/emu/sound/sb0400.c
r241777r241778
1#include "sb0400.h"
2
3const device_type SB0400 = &device_creator<sb0400_device>;
4
5DEVICE_ADDRESS_MAP_START(map, 32, sb0400_device)
6ADDRESS_MAP_END
7
8sb0400_device::sb0400_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
9   : pci_device(mconfig, SB0400, "Creative Labs SB0400 Audigy2 Value", tag, owner, clock, "sb0400", __FILE__)
10{
11}
12
13void sb0400_device::device_start()
14{
15   pci_device::device_start();
16   add_map(64, M_IO, FUNC(sb0400_device::map));
17}
18
19void sb0400_device::device_reset()
20{
21   pci_device::device_reset();
22}
trunk/src/emu/sound/sb0400.h
r241777r241778
1// Creative labs SB0400 Audigy2 Value
2
3#ifndef SB0400_H
4#define SB0400_H
5
6#include "machine/pci.h"
7
8#define MCFG_SB0400_ADD(_tag, _subdevice_id) \
9   MCFG_PCI_DEVICE_ADD(_tag, SB0400, 0x11020008, 0x00, 0x040100, _subdevice_id)
10
11class sb0400_device : public pci_device {
12public:
13   sb0400_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
14
15protected:
16   virtual void device_start();
17   virtual void device_reset();
18
19private:
20   DECLARE_ADDRESS_MAP(map, 32);
21};
22
23extern const device_type SB0400;
24
25#endif
trunk/src/emu/sound/sound.mak
r241777r241778
7070
7171
7272#-------------------------------------------------
73# AC97
74#@src/emu/sound/pic-ac97.h,SOUNDS += AC97
75#-------------------------------------------------
76
77ifneq ($(filter AC97,$(SOUNDS)),)
78SOUNDOBJS += $(SOUNDOBJ)/pci-ac97.o
79endif
80
81
82
83#-------------------------------------------------
8473# Apple custom sound chips
8574#@src/emu/sound/asc.h,SOUNDS += ASC
8675#@src/emu/sound/awacs.h,SOUNDS += AWACS
r241777r241778
134123
135124
136125#-------------------------------------------------
137#-------------------------------------------------
138# AC97
139#@src/emu/sound/pic-ac97.h,SOUNDS += AC97
140#-------------------------------------------------
141
142ifneq ($(filter AC97,$(SOUNDS)),)
143SOUNDOBJS += $(SOUNDOBJ)/pci-ac97.o
144endif
145126# CEM 3394 analog synthesizer chip
146127#@src/emu/sound/cem3394.h,SOUNDS += CEM3394
147128#-------------------------------------------------
r241777r241778
153134
154135
155136#-------------------------------------------------
156# Creative Labs SB0400 Audigy2 Value
157#@src/emu/sound/sb0400.h,SOUNDS += AC97
158#-------------------------------------------------
159
160ifneq ($(filter SB0400,$(SOUNDS)),)
161SOUNDOBJS += $(SOUNDOBJ)/sb0400.o
162endif
163
164
165
166#-------------------------------------------------
167137# Data East custom sound chips
168138#@src/emu/sound/bsmt2000.h,SOUNDS += BSMT2000
169139#-------------------------------------------------
trunk/src/emu/tilemap.h
r241777r241778
443443   {
444444      gfx_element *gfx = decoder->gfx(_gfxnum);
445445      int code = rawcode % gfx->elements();
446      assert(rawcolor < gfx->colors()); // TEMPORARY ASSERT
447446      pen_data = gfx->get_data(code);
448      palette_base = gfx->colorbase() + gfx->granularity() * (rawcolor % gfx->colors());
447      palette_base = gfx->colorbase() + gfx->granularity() * rawcolor;
449448      flags = _flags;
450449      gfxnum = _gfxnum;
451450   }
trunk/src/emu/video/gf6800gt.c
r241777r241778
1#include "gf6800gt.h"
2
3const device_type GEFORCE_6800GT = &device_creator<geforce_6800gt_device>;
4
5DEVICE_ADDRESS_MAP_START(map1, 32, geforce_6800gt_device)
6ADDRESS_MAP_END
7
8DEVICE_ADDRESS_MAP_START(map2, 32, geforce_6800gt_device)
9ADDRESS_MAP_END
10
11DEVICE_ADDRESS_MAP_START(map3, 32, geforce_6800gt_device)
12ADDRESS_MAP_END
13
14geforce_6800gt_device::geforce_6800gt_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
15   : pci_device(mconfig, GEFORCE_6800GT, "NVidia GeForce 6800GT", tag, owner, clock, "geforce_6800gt", __FILE__)
16{
17}
18
19void geforce_6800gt_device::device_start()
20{
21   pci_device::device_start();
22   add_map( 16*1024*1024, M_MEM, FUNC(geforce_6800gt_device::map1));
23   add_map(256*1024*1024, M_MEM, FUNC(geforce_6800gt_device::map2));
24   add_map( 16*1024*1024, M_MEM, FUNC(geforce_6800gt_device::map3));
25}
26
27void geforce_6800gt_device::device_reset()
28{
29   pci_device::device_reset();
30}
trunk/src/emu/video/gf6800gt.h
r241777r241778
1#ifndef GF6800GT_H
2#define GF6800GT_H
3
4#include "machine/pci.h"
5
6#define MCFG_GEFORCE_6800GT_ADD(_tag, _subdevice_id) \
7   MCFG_AGP_DEVICE_ADD(_tag, GEFORCE_6800GT, 0x10de00f9, 0xa1, _subdevice_id)
8
9class geforce_6800gt_device : public pci_device {
10public:
11   geforce_6800gt_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
12
13protected:
14   virtual void device_start();
15   virtual void device_reset();
16
17private:
18   DECLARE_ADDRESS_MAP(map1, 32);
19   DECLARE_ADDRESS_MAP(map2, 32);
20   DECLARE_ADDRESS_MAP(map3, 32);
21};
22
23extern const device_type GEFORCE_6800GT;
24
25#endif
trunk/src/emu/video/pc_vga.c
r241777r241778
262262
263263void cirrus_vga_device::device_start()
264264{
265   zero();
265   vga_device::zero();
266   memset(&svga, 0, sizeof(svga));
266267
267268   int i;
268269   for (i = 0; i < 0x100; i++)
trunk/src/emu/video/upd7220.c
r241777r241778
371371
372372inline void upd7220_device::recompute_parameters()
373373{
374   int horiz_mult = 16, vert_mult = 1;
374   int horiz_mult;
375375   /* TODO: assume that the pitch also controls number of horizontal pixels in a single cell */
376376   // horiz_mult = 4 if both mixed and interlace?
377   if((m_mode & UPD7220_MODE_DISPLAY_MASK) == UPD7220_MODE_DISPLAY_MIXED)
377   if(((m_mode & UPD7220_MODE_DISPLAY_MASK) == UPD7220_MODE_DISPLAY_MIXED) ||
378            ((m_mode & UPD7220_MODE_INTERLACE_MASK) == UPD7220_MODE_INTERLACE_ON))
378379      horiz_mult = 8;
379   else if((m_mode & UPD7220_MODE_INTERLACE_MASK) == UPD7220_MODE_INTERLACE_ON)
380   {
381      // in interlaced mode every line contains both fields
382      horiz_mult = 8;
383      vert_mult = 2;
384   }
380   else
381      horiz_mult = 16;
385382
386383   int horiz_pix_total = (m_hs + m_hbp + m_hfp + m_aw) * horiz_mult;
387   int vert_pix_total = (m_vs + m_vbp + m_al + m_vfp) * vert_mult;
384   int vert_pix_total = m_vs + m_vbp + m_al + m_vfp;
388385
389386   //printf("%d %d %d %d\n",m_hs,m_hbp,m_aw,m_hfp);
390387   //printf("%d %d\n",m_aw * 8,m_pitch * 8);
r241777r241778
397394   rectangle visarea;
398395
399396   visarea.min_x = 0; //(m_hs + m_hbp) * 8;
400   visarea.min_y = m_vbp; //m_vs + m_vbp;
397   visarea.min_y = 0; //m_vs + m_vbp;
401398   visarea.max_x = m_aw * horiz_mult - 1;//horiz_pix_total - (m_hfp * 8) - 1;
402   visarea.max_y = m_al * vert_mult + m_vbp - 1;//vert_pix_total - m_vfp - 1;
399   visarea.max_y = m_al - 1;//vert_pix_total - m_vfp - 1;
403400
404401   LOG(("uPD7220 '%s' Screen: %u x %u @ %f Hz\n", tag(), horiz_pix_total, vert_pix_total, 1 / ATTOSECONDS_TO_DOUBLE(refresh)));
405402   LOG(("Visible Area: (%u, %u) - (%u, %u)\n", visarea.min_x, visarea.min_y, visarea.max_x, visarea.max_y));
r241777r241778
801798
802799void upd7220_device::draw_line(int x, int y)
803800{
804   int xi, yi;
805   int d = (m_figs.m_d & 0x2000) ? (INT16)(m_figs.m_d | 0xe000) : m_figs.m_d;
806   int d2 = (m_figs.m_d2 & 0x2000) ? (INT16)(m_figs.m_d2 | 0xe000) : m_figs.m_d2;
801   int line_size,i;
802   const int line_x_dir[8] = { 0, 1, 1, 0, 0,-1,-1, 0};
803   const int line_y_dir[8] = { 1, 0, 0,-1,-1, 0, 0, 1};
804   const int line_x_step[8] = { 1, 0, 0, 1,-1, 0, 0,-1 };
805   const int line_y_step[8] = { 0, 1,-1, 0, 0,-1, 1, 0 };
807806   UINT16 pattern = (m_ra[8]) | (m_ra[9]<<8);
808   const int dot_dir[4] = {1, -1, -1, 1};
807   int line_step = 0;
809808
810809   LOG(("uPD7220 line check: %d %d %02x %08x %d %d %d\n",x,y,m_figs.m_dir,m_ead,m_figs.m_d1,m_figs.m_dc,m_bitmap_mod));
811810
812   for(yi = xi = 0; yi <= m_figs.m_dc; yi++)
813   {
814      switch(m_figs.m_dir & 3)
815      {
816         case 1:
817         case 2:
818            draw_pixel(yi * dot_dir[((m_figs.m_dir >> 1) + 3) & 3] + x, xi * dot_dir[m_figs.m_dir >> 1] + y, yi, pattern);
819            break;
820         default:
821            draw_pixel(xi * dot_dir[((m_figs.m_dir >> 1) + 3) & 3] + x, yi * dot_dir[m_figs.m_dir >> 1] + y, yi, pattern);
822            break;
823      }
824      if(d > 0)
825      {
826         xi++;
827         d += d2;
828      }
829      else
830         d += m_figs.m_d1;
831   }
811   line_size = m_figs.m_dc;
832812
833   switch(m_figs.m_dir & 3)
813   for(i = 0;i<line_size;i++)
834814   {
835      case 1:
836      case 2:
837         x += yi * dot_dir[((m_figs.m_dir >> 1) + 3) & 3];
838         y += xi * dot_dir[m_figs.m_dir >> 1];
839         break;
840      default:
841         x += xi * dot_dir[((m_figs.m_dir >> 1) + 3) & 3];
842         y += yi * dot_dir[m_figs.m_dir >> 1];
843         break;
815      line_step = (m_figs.m_d1 * i);
816      line_step/= m_figs.m_dc;
817      ++line_step >>= 1;
818      draw_pixel(x + (line_step*line_x_step[m_figs.m_dir]),y + (line_step*line_y_step[m_figs.m_dir]),i,pattern);
819      x += line_x_dir[m_figs.m_dir];
820      y += line_y_dir[m_figs.m_dir];
844821   }
845822
823   /* TODO: check me*/
824   x += (line_step*line_x_step[m_figs.m_dir]);
825   y += (line_step*line_y_step[m_figs.m_dir]);
826
846827   m_ead = (x >> 4) + (y * (m_pitch >> m_figs.m_gd));
847828   m_dad = x & 0x0f;
848829}
r241777r241778
873854
874855   LOG(("uPD7220 arc check: %d %d %02x %08x %d %d %d\n",x,y,m_figs.m_dir,m_ead,m_figs.m_dm,m_figs.m_dc,m_figs.m_d));
875856
876   for(int i = 0; i <= m_figs.m_dc; i++)
857   for(int i = 0; i < m_figs.m_dc; i++)
877858   {
878859      if(i >= m_figs.m_dm)
879860      {
r241777r241778
901882   {
902883      case 1:
903884      case 2:
904         x += (m_figs.m_dc + 1) * dot_dir[((m_figs.m_dir >> 1) + 3) & 3];
885         x += m_figs.m_dc * dot_dir[((m_figs.m_dir >> 1) + 3) & 3];
905886         break;
906887      default:
907         y += (m_figs.m_dc + 1) * dot_dir[m_figs.m_dir >> 1];
888         y += m_figs.m_dc * dot_dir[m_figs.m_dir >> 1];
908889         break;
909890   }
910891
r241777r241778
15541535         addr = sad + (y * m_pitch);
15551536
15561537         if (!m_draw_text_cb.isnull())
1557            m_draw_text_cb(bitmap, addr, (y * m_lr) + m_vbp, wd, m_pitch, m_lr, m_dc, m_ead);
1538            m_draw_text_cb(bitmap, addr, (y * m_lr), wd, m_pitch, m_lr, m_dc, m_ead);
15581539      }
15591540
15601541      sy = y + 1;
r241777r241778
15661547//  draw_graphics_line -
15671548//-------------------------------------------------
15681549
1569void upd7220_device::draw_graphics_line(bitmap_rgb32 &bitmap, UINT32 addr, int y, int wd, int pitch)
1550void upd7220_device::draw_graphics_line(bitmap_rgb32 &bitmap, UINT32 addr, int y, int wd)
15701551{
1571   int sx, al = bitmap.cliprect().height();
1552   int sx;
15721553
1573   for (sx = 0; sx < pitch; sx++)
1554   for (sx = 0; sx < 80; sx++)
15741555   {
1575      if((sx << 3) < m_aw * 16 && y < al)
1556      if((sx << 3) < m_aw * 16 && y < m_al)
15761557         m_display_cb(bitmap, y, sx << 3, addr);
15771558
15781559      addr+= wd + 1;
r241777r241778
15901571   UINT16 len;
15911572   int im, wd, area;
15921573   int y = 0, tsy = 0, bsy = 0;
1593   bool mixed = ((m_mode & UPD7220_MODE_DISPLAY_MASK) == UPD7220_MODE_DISPLAY_MIXED);
1594   UINT8 interlace = ((m_mode & UPD7220_MODE_INTERLACE_MASK) == UPD7220_MODE_INTERLACE_ON) ? 0 : 1;
15951574
15961575   for (area = 0; area < 4; area++)
15971576   {
r241777r241778
16041583         if(area >= 3) // TODO: most likely to be correct, Quarth (PC-98xx) definitely draws with area 2. We might see an area 3 someday ...
16051584            break;
16061585
1607         if(!interlace)
1608            len <<= 1;
1609
16101586         for (y = 0; y < len; y++)
16111587         {
16121588            /* TODO: again correct?
r241777r241778
16161592            addr = ((sad << 1) & 0x3ffff) + (y * (m_pitch << (im ? 0 : 1)));
16171593
16181594            if (!m_display_cb.isnull())
1619               draw_graphics_line(bitmap, addr, y + ((bsy + m_vbp) / (mixed ? 1 : m_lr)), wd, (m_pitch << interlace));
1595               draw_graphics_line(bitmap, addr, y + (bsy / m_lr), wd);
16201596         }
16211597      }
16221598      else
r241777r241778
16301606               addr = (sad & 0x3ffff) + ((y / m_lr) * m_pitch);
16311607
16321608               if (!m_draw_text_cb.isnull())
1633                  m_draw_text_cb(bitmap, addr, y + tsy + m_vbp, wd, m_pitch, m_lr, m_dc, m_ead);
1609                  m_draw_text_cb(bitmap, addr, y + tsy, wd, m_pitch, m_lr, m_dc, m_ead);
16341610            }
16351611         }
16361612      }
trunk/src/emu/video/upd7220.h
r241777r241778
150150   void process_fifo();
151151   void continue_command();
152152   void update_text(bitmap_rgb32 &bitmap, const rectangle &cliprect);
153   void draw_graphics_line(bitmap_rgb32 &bitmap, UINT32 addr, int y, int wd, int pitch);
153   void draw_graphics_line(bitmap_rgb32 &bitmap, UINT32 addr, int y, int wd);
154154   void update_graphics(bitmap_rgb32 &bitmap, const rectangle &cliprect, int force_bitmap);
155155
156156   upd7220_display_pixels_delegate     m_display_cb;
trunk/src/emu/video/video.mak
r241777r241778
174174
175175#-------------------------------------------------
176176#
177#@src/emu/video/gf6800gt.h,VIDEOS += GF6800GT
178#-------------------------------------------------
179
180ifneq ($(filter GF6800GT,$(VIDEOS)),)
181VIDEOOBJS+= $(VIDEOOBJ)/gf6800gt.o
182endif
183
184#-------------------------------------------------
185#
186177#@src/emu/video/h63484.h,VIDEOS += H63484
187178#-------------------------------------------------
188179
trunk/src/lib/formats/cbm_crt.c
r241777r241778
44
55    cbm_crt.c
66
7    Commodore C64 cartridge images in .CRT format
7    Commodore C64 cartridge images
88
9    This format was introduced in the CCS64 emulator by Per Hakan
10    Sundell.
11
12    Header info based on the VICE manual chapter 15.11, which in turn
13    is based on CRT.txt rev 1.14 compiled by Peter Schepers, with
14    additional contributions by Per Hakan Sundell, Markus Brenner,
15    and Marco Van Den Heuvel.
16    Relevant links:
17        http://vice-emu.sourceforge.net/vice_15.html#SEC300
18        http://ist.uwaterloo.ca/~schepers/formats/CRT.TXT (version 1.13, outdated)
19
20    Header Contents (bytes $0000-003F):
21    Bytes $0000-000F - 16-byte cartridge signature "C64 CARTRIDGE" (padded with spaces)
22          $0010-0013 - File header length
23          $0014-0015 - Cartridge version (high/low, presently 01.00)
24          $0016-0017 - Cartridge hardware type ($0000, high/low), see below
25          $0018      - Cartridge port EXROM line status (0 = inactive, 1 = active)
26          $0019      - Cartridge port GAME line status (0 = inactive, 1 = active)
27          $001A-001F - Reserved for future use
28          $0020-003F - 32-byte cartridge name (uppercase, padded with null characters)
29
30    CHIP Packet Contents (starting from $0040; there can be multiple CHIP packets
31    in a single CRT file):
32    Bytes $0040-0043 - Contained ROM signature "CHIP"
33          $0044-0047 - Total packet length (ROM image size and header combined) (high/low format)
34          $0048-0049 - Chip type (0 = ROM, 1 = RAM (no ROM data), 2 = Flash ROM)
35          $004A-004B - Bank number
36          $004C-004D - Starting load address (high/low format)
37          $004E-004F - ROM image size in bytes (high/low format, typically $2000 or $4000)
38          $0050-xxxx - ROM data
39
409*********************************************************************/
4110
4211#include "cbm_crt.h"
4312
4413
14
4515//**************************************************************************
4616//  MACROS/CONSTANTS
4717//**************************************************************************
r241777r241778
5222// slot names for the C64 cartridge types
5323static const char * CRT_C64_SLOT_NAMES[_CRT_C64_COUNT] =
5424{
55   "standard",         //  0 - Normal cartridge
56   UNSUPPORTED,        //  1 - Action Replay
57   UNSUPPORTED,        //  2 - KCS Power Cartridge
58   "final3",           //  3 - Final Cartridge III
59   "simons_basic",     //  4 - Simons' BASIC
60   "ocean",            //  5 - Ocean type 1
61   UNSUPPORTED,        //  6 - Expert Cartridge
62   "fun_play",         //  7 - Fun Play, Power Play
63   "super_games",      //  8 - Super Games
64   UNSUPPORTED,        //  9 - Atomic Power
65   "epyxfastload",     // 10 - Epyx Fastload
66   "westermann",       // 11 - Westermann Learning
67   "rex",              // 12 - Rex Utility
68   "final",            // 13 - Final Cartridge I
69   "magic_formel",     // 14 - Magic Formel
70   "system3",          // 15 - C64 Game System, System 3
71   "warp_speed",       // 16 - Warp Speed
72   "dinamic",          // 17 - Dinamic
73   "zaxxon",           // 18 - Zaxxon, Super Zaxxon (SEGA)
74   "magic_desk",       // 19 - Magic Desk, Domark, HES Australia
75   UNSUPPORTED,        // 20 - Super Snapshot V5
76   "comal80",          // 21 - Comal-80
77   "struct_basic",     // 22 - Structured BASIC
78   "ross",             // 23 - Ross
79   "ep64",             // 24 - Dela EP64
80   "ep7x8",            // 25 - Dela EP7x8
81   "dela_ep256",       // 26 - Dela EP256
82   "rex_ep256",        // 27 - Rex EP256
83   "mikroasm",         // 28 - Mikro Assembler
84   UNSUPPORTED,        // 29 - Final Cartridge Plus
85   UNSUPPORTED,        // 30 - Action Replay 4
86   "stardos",          // 31 - Stardos
87   "easyflash",        // 32 - EasyFlash
88   UNSUPPORTED,        // 33 - EasyFlash Xbank
89   UNSUPPORTED,        // 34 - Capture
90   UNSUPPORTED,        // 35 - Action Replay 3
91   UNSUPPORTED,        // 36 - Retro Replay
92   UNSUPPORTED,        // 37 - MMC64
93   UNSUPPORTED,        // 38 - MMC Replay
94   "ide64",            // 39 - IDE64
95   UNSUPPORTED,        // 40 - Super Snapshot V4
96   "ieee488",          // 41 - IEEE-488
97   UNSUPPORTED,        // 42 - Game Killer
98   "prophet64",        // 43 - Prophet64
99   "exos",             // 44 - EXOS
100   UNSUPPORTED,        // 45 - Freeze Frame
101   UNSUPPORTED,        // 46 - Freeze Machine
102   UNSUPPORTED,        // 47 - Snapshot64
103   "super_explode",    // 48 - Super Explode V5.0
104   "magic_voice",      // 49 - Magic Voice
105   UNSUPPORTED,        // 50 - Action Replay 2
106   "mach5",            // 51 - MACH 5
107   UNSUPPORTED,        // 52 - Diashow-Maker
108   "pagefox",          // 53 - Pagefox
109   UNSUPPORTED,        // 54 - ?
110   "silverrock"        // 55 - Silverrock
25   "standard",
26   UNSUPPORTED,
27   UNSUPPORTED,
28   UNSUPPORTED,
29   "simons_basic",
30   "ocean",
31   UNSUPPORTED,
32   "fun_play",
33   "super_games",
34   UNSUPPORTED,
35   "epyxfastload",
36   "westermann",
37   "rex",
38   UNSUPPORTED,
39   "magic_formel",
40   "system3",
41   "warp_speed",
42   "dinamic",
43   "zaxxon",
44   "magic_desk",
45   UNSUPPORTED,
46   "comal80",
47   "struct_basic",
48   "ross",
49   "ep64",
50   "ep7x8",
51   "dela_ep256",
52   "rex_ep256",
53   "mikroasm",
54   UNSUPPORTED,
55   UNSUPPORTED,
56   "stardos",
57   UNSUPPORTED,
58   UNSUPPORTED,
59   UNSUPPORTED,
60   UNSUPPORTED,
61   UNSUPPORTED,
62   UNSUPPORTED,
63   UNSUPPORTED,
64   UNSUPPORTED,
65   UNSUPPORTED,
66   "ieee488",
67   UNSUPPORTED,
68   UNSUPPORTED,
69   "exos",
70   UNSUPPORTED,
71   UNSUPPORTED,
72   UNSUPPORTED,
73   "super_explode",
74   UNSUPPORTED,
75   UNSUPPORTED,
76   "mach5",
77   UNSUPPORTED,
78   "pagefox",
79   UNSUPPORTED,
80   "silverrock"
11181};
11282
11383
trunk/src/lib/formats/esq16_dsk.c
r241777r241778
5050
5151const char *esqimg_format::name() const
5252{
53   return "esq16";
53   return "img";
5454}
5555
5656const char *esqimg_format::description() const
trunk/src/lib/formats/esq8_dsk.c
r241777r241778
5252
5353const char *esq8img_format::name() const
5454{
55   return "esq8";
55   return "img";
5656}
5757
5858const char *esq8img_format::description() const
trunk/src/lib/formats/flopimg.c
r241777r241778
10711071      type == CRC_CBM_START ||
10721072      type == CRC_MACHEAD_START ||
10731073      type == CRC_FCS_START ||
1074      type == CRC_VICTOR_HDR_START ||
1075      type == CRC_VICTOR_DATA_START ||
10761074      type == CRC_END ||
10771075      type == SECTOR_LOOP_START ||
10781076      type == SECTOR_LOOP_END ||
r241777r241778
11141112      case CRC_FCS_START:
11151113         crcs[desc[i].p1].type = CRC_FCS;
11161114         break;
1117      case CRC_VICTOR_HDR_START:
1118         crcs[desc[i].p1].type = CRC_VICTOR_HDR;
1119         break;
1120      case CRC_VICTOR_DATA_START:
1121         crcs[desc[i].p1].type = CRC_VICTOR_DATA;
1122         break;
11231115      }
11241116
11251117   for(int i=0; desc[i].type != END; i++)
r241777r241778
11391131   case CRC_CBM: return 10;
11401132   case CRC_MACHEAD: return 8;
11411133   case CRC_FCS: return 20;
1142   case CRC_VICTOR_HDR: return 10;
1143   case CRC_VICTOR_DATA: return 20;
11441134   default: return 0;
11451135   }
11461136}
r241777r241778
12811271   // TODO
12821272}
12831273
1284void floppy_image_format_t::fixup_crc_victor_header(UINT32 *buffer, const gen_crc_info *crc)
1285{
1286   UINT8 v = 0;
1287   for(int o = crc->start; o < crc->end; o+=10) {
1288      v += ((gcr5bw_tb[bitn_r(buffer, o, 5)] << 4) | gcr5bw_tb[bitn_r(buffer, o+5, 5)]);
1289   }
1290   int offset = crc->write;
1291   gcr5_w(buffer, offset, 10, v);
1292}
1293
1294void floppy_image_format_t::fixup_crc_victor_data(UINT32 *buffer, const gen_crc_info *crc)
1295{
1296   UINT16 v = 0;
1297   for(int o = crc->start; o < crc->end; o+=10) {
1298      v += ((gcr5bw_tb[bitn_r(buffer, o, 5)] << 4) | gcr5bw_tb[bitn_r(buffer, o+5, 5)]);
1299   }
1300   int offset = crc->write;
1301   gcr5_w(buffer, offset, 10, v & 0xff);
1302   gcr5_w(buffer, offset, 10, v >> 8);
1303}
1304
13051274void floppy_image_format_t::fixup_crcs(UINT32 *buffer, gen_crc_info *crcs)
13061275{
13071276   for(int i=0; i != MAX_CRC_COUNT; i++)
13081277      if(crcs[i].write != -1) {
13091278         switch(crcs[i].type) {
1310         case CRC_AMIGA:         fixup_crc_amiga(buffer, crcs+i); break;
1311         case CRC_CBM:         fixup_crc_cbm(buffer, crcs+i); break;
1312         case CRC_CCITT:         fixup_crc_ccitt(buffer, crcs+i); break;
1313         case CRC_CCITT_FM:      fixup_crc_ccitt_fm(buffer, crcs+i); break;
1314         case CRC_MACHEAD:      fixup_crc_machead(buffer, crcs+i); break;
1315         case CRC_FCS:         fixup_crc_fcs(buffer, crcs+i); break;
1316         case CRC_VICTOR_HDR:   fixup_crc_victor_header(buffer, crcs+i); break;
1317         case CRC_VICTOR_DATA:   fixup_crc_victor_data(buffer, crcs+i); break;
1279         case CRC_AMIGA:   fixup_crc_amiga(buffer, crcs+i); break;
1280         case CRC_CBM:     fixup_crc_cbm(buffer, crcs+i); break;
1281         case CRC_CCITT:   fixup_crc_ccitt(buffer, crcs+i); break;
1282         case CRC_CCITT_FM:fixup_crc_ccitt_fm(buffer, crcs+i); break;
1283         case CRC_MACHEAD: fixup_crc_machead(buffer, crcs+i); break;
1284         case CRC_FCS:     fixup_crc_fcs(buffer, crcs+i); break;
13181285         }
13191286         if(crcs[i].fixup_mfm_clock) {
13201287            int offset = crcs[i].write + crc_cells_size(crcs[i].type);
r241777r241778
14361403         raw_w(buffer, offset, desc[index].p2, desc[index].p1);
14371404         break;
14381405
1439      case SYNC_GCR5:
1440         for(int i=0; i<desc[index].p1; i++)
1441            raw_w(buffer, offset, 10, 0xffff);
1442         break;
1443
14441406      case TRACK_ID:
14451407         mfm_w(buffer, offset, 8, track);
14461408         break;
r241777r241778
14651427         _8n1_w(buffer, offset, 8, track);
14661428         break;
14671429
1468      case TRACK_ID_VICTOR_GCR5:
1469         gcr5_w(buffer, offset, 10, 1 + track + (head * 0x80));
1470         break;
1471
14721430      case HEAD_ID:
14731431         mfm_w(buffer, offset, 8, head);
14741432         break;
r241777r241778
15781536      case CRC_CCITT_FM_START:
15791537      case CRC_MACHEAD_START:
15801538      case CRC_FCS_START:
1581      case CRC_VICTOR_HDR_START:
1582      case CRC_VICTOR_DATA_START:
15831539         crcs[desc[index].p1].start = offset;
15841540         break;
15851541
trunk/src/lib/formats/flopimg.h
r241777r241778
307307      RAW,                    //!< One 16 bits word in p1 to be written raw, msb first, repeated p2 times
308308      RAWBYTE,                //!< One 8 bit byte in p1 to be written raw, msb first, repeated p2 times
309309      RAWBITS,                //!< A value of p2 bits in p1 to be copied as-is, msb first
310      SYNC_GCR5,              //!< gcr5 sync byte
311310      TRACK_ID,               //!< Track id byte, mfm-encoded
312311      TRACK_ID_FM,            //!< Track id byte, fm-encoded
313312      TRACK_ID_DOS2_GCR5,     //!< Track id byte, gcr5-encoded
314313      TRACK_ID_DOS25_GCR5,    //!< Track id byte, gcr5-encoded
315314      TRACK_ID_GCR6,          //!< Track id low 6 bits, gcr6-encoded
316315      TRACK_ID_8N1,           //!< Track id byte, 8N1-encoded
317      TRACK_ID_VICTOR_GCR5,   //!< Track id byte, gcr5-encoded
318316      HEAD_ID,                //!< Head id byte, mfm-encoded
319317      HEAD_ID_FM,             //!< Head id byte, fm-encoded
320318      HEAD_ID_SWAP,           //!< Head id byte swapped (0->1, 1->0), mfm-encoded
r241777r241778
348346      CRC_CBM_START,          //!< Start a CBM checksum calculation (xor of original data values, gcr5-encoded), p1 = crc id
349347      CRC_MACHEAD_START,      //!< Start of the mac gcr6 sector header checksum calculation (xor of pre-encode 6-bits values, gcr6-encoded)
350348      CRC_FCS_START,          //!< Start a Compucolor File Control System checksum calculation, p1 = crc id
351      CRC_VICTOR_HDR_START,   //!< Start a Victor 9000 checksum calculation, p1 = crc id
352      CRC_VICTOR_DATA_START,   //!< Start a Victor 9000 checksum calculation, p1 = crc id
353349      CRC_END,                //!< End the checksum, p1 = crc id
354350      CRC,                    //!< Write a checksum in the apporpriate format, p1 = crc id
355351
r241777r241778
569565   UINT8 sbyte_mfm_r(const UINT8 *bitstream, int &pos, int track_size);
570566
571567private:
572   enum { CRC_NONE, CRC_AMIGA, CRC_CBM, CRC_CCITT, CRC_CCITT_FM, CRC_MACHEAD, CRC_FCS, CRC_VICTOR_HDR, CRC_VICTOR_DATA };
568   enum { CRC_NONE, CRC_AMIGA, CRC_CBM, CRC_CCITT, CRC_CCITT_FM, CRC_MACHEAD, CRC_FCS };
573569   enum { MAX_CRC_COUNT = 64 };
574570
575571   //! Holds data used internally for generating CRCs.
r241777r241778
591587   void fixup_crc_ccitt_fm(UINT32 *buffer, const gen_crc_info *crc);
592588   void fixup_crc_machead(UINT32 *buffer, const gen_crc_info *crc);
593589   void fixup_crc_fcs(UINT32 *buffer, const gen_crc_info *crc);
594   void fixup_crc_victor_header(UINT32 *buffer, const gen_crc_info *crc);
595   void fixup_crc_victor_data(UINT32 *buffer, const gen_crc_info *crc);
596590   void fixup_crcs(UINT32 *buffer, gen_crc_info *crcs);
597591   void collect_crcs(const desc_e *desc, gen_crc_info *crcs);
598592
trunk/src/lib/formats/p6001_cas.c
r241777r241778
11/*
2 * NEC PC-6001 cassette format handling
2 * Nec PC-6001 cassette format handling
33 */
44
55#include "p6001_cas.h"
trunk/src/lib/formats/p6001_cas.h
r241777r241778
11/*
2 * NEC PC-6001 cassette format handling
2 * Nec PC-6001 cassette format handling
33 */
44
55#ifndef PC6001_CAS_H_
trunk/src/lib/formats/pc98fdi_dsk.c
r241777r241778
1717
1818const char *pc98fdi_format::name() const
1919{
20   return "pc98_fdi";
20   return "pc98-fdi";
2121}
2222
2323const char *pc98fdi_format::description() const
trunk/src/lib/formats/victor9k_dsk.c
r241777r241778
1// license:BSD-3-Clause
2// copyright-holders:Curt Coder
3/*********************************************************************
4
5   formats/victor9k_dsk.c
6
7   Victor 9000 sector disk image format
8
9*********************************************************************/
10
11/*
12
13   Sector format
14   -------------
15
16   Header sync
17   Sector header (header ID, track ID, sector ID, and checksum)
18   Gap 1
19   Data Sync
20   Data field (data sync, data ID, data bytes, and checksum)
21   Gap 2
22
23   Track format
24   ------------
25
26   ZONE        LOWER HEAD  UPPER HEAD  SECTORS     ROTATIONAL   RPM
27   NUMBER      TRACKS      TRACKS      PER TRACK   PERIOD (MS)
28
29   0           0-3         unused      19          237.9        252
30   1           4-15        0-7         18          224.5        267
31   2           16-26       8-18        17          212.2        283
32   3           27-37       19-29       16          199.9        300
33   4           38-48       30-40       15          187.6        320
34   5           49-59       41-51       14          175.3        342
35   6           60-70       52-62       13          163.0        368
36   7           71-79       63-74       12          149.6        401
37   8           unused      75-79       11          144.0        417
38
39   Interleave factor 3
40   cell 2.13 usec
41
42*/
43
44#include "emu.h"
45#include "formats/victor9k_dsk.h"
46
47victor9k_format::victor9k_format()
48{
49}
50
51const char *victor9k_format::name() const
52{
53   return "victor9k";
54}
55
56const char *victor9k_format::description() const
57{
58   return "Victor 9000 disk image";
59}
60
61const char *victor9k_format::extensions() const
62{
63   return "img";
64}
65
66int victor9k_format::find_size(io_generic *io, UINT32 form_factor)
67{
68   UINT64 size = io_generic_size(io);
69   for(int i=0; formats[i].sector_count; i++) {
70      const format &f = formats[i];
71      if(size == (UINT32) f.sector_count*f.sector_base_size*f.head_count)
72         return i;
73   }
74   return -1;
75}
76
77int victor9k_format::identify(io_generic *io, UINT32 form_factor)
78{
79   int type = find_size(io, form_factor);
80
81   if (type != -1)
82      return 50;
83
84   return 0;
85}
86
87floppy_image_format_t::desc_e* victor9k_format::get_sector_desc(const format &f, int &current_size, int sector_count)
88{
89   static floppy_image_format_t::desc_e desc[] = {
90      /* 00 */ { SECTOR_INTERLEAVE_SKEW, 0, 0},
91      /* 01 */ { SECTOR_LOOP_START, 0, -1 },
92      /* 02 */ {   SYNC_GCR5, 6 },
93      /* 03 */ {   GCR5, 0x07, 1 },
94      /* 04 */ {   CRC_VICTOR_HDR_START, 1 },
95      /* 05 */ {     TRACK_ID_VICTOR_GCR5 },
96      /* 06 */ {     SECTOR_ID_GCR5 },
97      /* 07 */ {   CRC_END, 1 },
98      /* 08 */ {   CRC, 1 },
99      /* 09 */ {   RAWBYTE, 0x55, 8 },
100      /* 10 */ {   SYNC_GCR5, 5 },
101      /* 11 */ {   GCR5, 0x08, 1 },
102      /* 12 */ {   CRC_VICTOR_DATA_START, 2 },
103      /* 13 */ {     SECTOR_DATA_GCR5, -1 },
104      /* 14 */ {   CRC_END, 2 },
105      /* 15 */ {   CRC, 2 },
106      /* 16 */ {   RAWBYTE, 0x55, 8 },
107      /* 17 */ { SECTOR_LOOP_END },
108      /* 18 */ { RAWBYTE, 0x55, 0 },
109      /* 19 */ { RAWBITS, 0x5555, 0 },
110      /* 20 */ { END }
111   };
112
113   current_size = 60 + (1+1+1+1)*10 + 8*8 + 50 + (1+f.sector_base_size+2)*10 + 8*8;
114
115   current_size *= sector_count;
116   return desc;
117}
118
119void victor9k_format::build_sector_description(const format &f, UINT8 *sectdata, offs_t sect_offs, desc_s *sectors, int sector_count) const
120{
121   for (int i = 0; i < sector_count; i++) {
122      sectors[i].data = sectdata + sect_offs;
123      sectors[i].size = f.sector_base_size;
124      sectors[i].sector_id = i;
125
126      sect_offs += sectors[i].size;
127   }
128}
129
130bool victor9k_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
131{
132   int type = find_size(io, form_factor);
133   if(type == -1)
134      return false;
135
136   const format &f = formats[type];
137
138   UINT64 size = io_generic_size(io);
139   dynamic_buffer img;
140   img.resize(size);
141
142   io_generic_read(io, img, 0, size);
143
144   int track_offset = 0;
145
146   for (int head = 0; head < f.head_count; head++) {
147      for (int track = 0; track < f.track_count; track++) {
148         int current_size = 0;
149         int total_size = 200000000./cell_size[speed_zone[head][track]];
150         int sector_count = sectors_per_track[head][track];
151         int track_size = sector_count*f.sector_base_size;
152
153         floppy_image_format_t::desc_e *desc = get_sector_desc(f, current_size, sector_count);
154
155         int remaining_size = total_size - current_size;
156         if(remaining_size < 0)
157            throw emu_fatalerror("victor9k_format: Incorrect track layout, max_size=%d, current_size=%d", total_size, current_size);
158
159         // Fixup the end gap
160         desc[18].p2 = remaining_size / 8;
161         desc[19].p2 = remaining_size & 7;
162         desc[19].p1 >>= remaining_size & 0x01;
163
164         desc_s sectors[40];
165
166         build_sector_description(f, img, track_offset, sectors, sector_count);
167         generate_track(desc, track, head, sectors, sector_count, total_size, image);
168
169         track_offset += track_size;
170      }
171   }
172
173   image->set_variant(f.variant);
174
175   return true;
176}
177
178bool victor9k_format::supports_save() const
179{
180   return false;
181}
182
183int victor9k_format::get_rpm(int head, int track)
184{
185   return rpm[speed_zone[head][track]];
186}
187
188const victor9k_format::format victor9k_format::formats[] = {
189   { //
190      floppy_image::FF_525, floppy_image::SSDD, 1224, 80, 1, 512
191   },
192   { //
193      floppy_image::FF_525, floppy_image::DSDD, 2448, 80, 2, 512
194   },
195   {}
196};
197
198const UINT32 victor9k_format::cell_size[9] =
199{
200   1789, 1896, 2009, 2130, 2272, 2428, 2613, 2847, 2961
201};
202
203const int victor9k_format::sectors_per_track[2][80] =
204{
205   {
206      19, 19, 19, 19,
207      18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
208      17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
209      16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
210      15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
211      14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
212      13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
213      12, 12, 12, 12, 12, 12, 12, 12, 12
214   },
215   {
216      18, 18, 18, 18, 18, 18, 18, 18,
217      17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
218      16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
219      15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
220      14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
221      13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
222      12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
223      11, 11, 11, 11, 11
224   }
225};
226
227const int victor9k_format::speed_zone[2][80] =
228{
229   {
230      0, 0, 0, 0,
231      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
232      2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
233      3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
234      4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
235      5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
236      6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
237      7, 7, 7, 7, 7, 7, 7, 7, 7
238   },
239   {
240      1, 1, 1, 1, 1, 1, 1, 1,
241      2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
242      3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
243      4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
244      5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
245      6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
246      7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
247      8, 8, 8, 8, 8
248   }
249};
250
251const int victor9k_format::rpm[9] =
252{
253   252, 267, 283, 300, 320, 342, 368, 401, 417
254};
255
256const floppy_format_type FLOPPY_VICTOR_9000_FORMAT = &floppy_image_format_creator<victor9k_format>;
trunk/src/lib/formats/victor9k_dsk.h
r241777r241778
1// license:BSD-3-Clause
2// copyright-holders:Curt Coder
3/*********************************************************************
4
5    formats/victor9k_dsk.h
6
7    Victor 9000 sector disk image format
8
9*********************************************************************/
10
11#ifndef VICTOR9K_DSK_H_
12#define VICTOR9K_DSK_H_
13
14#include "flopimg.h"
15
16class victor9k_format : public floppy_image_format_t {
17public:
18   struct format {
19      UINT32 form_factor;      // See floppy_image for possible values
20      UINT32 variant;          // See floppy_image for possible values
21
22      UINT16 sector_count;
23      UINT8 track_count;
24      UINT8 head_count;
25      UINT16 sector_base_size;
26   };
27
28   victor9k_format();
29
30   virtual const char *name() const;
31   virtual const char *description() const;
32   virtual const char *extensions() const;
33
34   int find_size(io_generic *io, UINT32 form_factor);
35   virtual int identify(io_generic *io, UINT32 form_factor);
36   floppy_image_format_t::desc_e* get_sector_desc(const format &f, int &current_size, int sector_count);
37   void build_sector_description(const format &f, UINT8 *sectdata, offs_t sect_offs, desc_s *sectors, int sector_count) const;
38   virtual bool load(io_generic *io, UINT32 form_factor, floppy_image *image);
39   virtual bool supports_save() const;
40
41   static int get_rpm(int head, int track);
42
43protected:
44   static const format formats[];
45
46   static const UINT32 cell_size[9];
47   static const int sectors_per_track[2][80];
48   static const int speed_zone[2][80];
49   static const int rpm[9];
50};
51
52extern const floppy_format_type FLOPPY_VICTOR_9000_FORMAT;
53
54
55FLOPPY_IDENTIFY( victor9k_dsk_identify );
56
57FLOPPY_CONSTRUCT( victor9k_dsk_construct );
58
59#endif
trunk/src/lib/lib.mak
r241777r241778
215215   $(LIBOBJ)/formats/tzx_cas.o     \
216216   $(LIBOBJ)/formats/uef_cas.o     \
217217   $(LIBOBJ)/formats/upd765_dsk.o  \
218   $(LIBOBJ)/formats/victor9k_dsk.o\
219218   $(LIBOBJ)/formats/vg5k_cas.o    \
220219   $(LIBOBJ)/formats/vt_cas.o      \
221220   $(LIBOBJ)/formats/vt_dsk.o      \
trunk/src/lib/sqlite3/sqlite3.c
r241777r241778
84948494/*
84958495** Disable MMAP on platforms where it is known to not work
84968496*/
8497#if defined(__OpenBSD__) || defined(__QNXNTO__) || defined(__OS2__)
8497#if defined(__OpenBSD__) || defined(__QNXNTO__)
84988498# undef SQLITE_MAX_MMAP_SIZE
84998499# define SQLITE_MAX_MMAP_SIZE 0
8500# ifdef __OS2__
8501#  undef SQLITE_OMIT_WAL
8502#  define SQLITE_OMIT_WAL 0
8503# endif
85048500#endif
85058501
85068502/*
trunk/src/lib/web/mongoose.c
r241777r241778
7272#include <stdlib.h>
7373#include <string.h>
7474#include <time.h>
75#ifdef __OS2__
76#include <sys/time.h>  // struct timeval
77#endif
7875#include <signal.h>
7976
8077#ifdef _WIN32
r241777r241778
123120#include <sys/socket.h>
124121#include <sys/select.h>
125122#define closesocket(x) close(x)
126#ifdef __OS2__
127typedef int socklen_t;
128#else
129123#define __cdecl
130#endif
131124#define INVALID_SOCKET (-1)
132125#define to64(x) strtoll(x, NULL, 10)
133126typedef int sock_t;
r241777r241778
11771170#include <dlfcn.h>
11781171#include <inttypes.h>
11791172#include <pwd.h>
1180#ifndef __OS2__
11811173#define O_BINARY 0
1182#endif
11831174#define INT64_FMT PRId64
11841175typedef struct stat file_stat_t;
11851176typedef pid_t process_id_t;
r241777r241778
51615152#define MAP_FAILED NULL
51625153#define MAP_PRIVATE 0
51635154#define PROT_READ 0
5164#elif defined(__OS2__)
5165static void *mmap(void *addr, int64_t len, int prot, int flags, int fd,
5166               int offset) {
5167   void *p;
5168   off_t curpos;
5169
5170   p = malloc(len);
5171   if (!p)
5172       return NULL;
5173
5174   curpos = lseek(fd, 0, SEEK_CUR);
5175   lseek(fd, offset, SEEK_SET);
5176   read(fd, p, len);
5177   lseek(fd, curpos, SEEK_SET);
5178
5179   return p;
5180}
5181
5182#define munmap(x, y)  free(x)
5183#define MAP_FAILED NULL
5184#define MAP_PRIVATE 0
5185#define PROT_READ 0
51865155#else
51875156#include <sys/mman.h>
51885157#endif
trunk/src/mame/audio/harddriv.c
r241777r241778
3939
4040void harddriv_state::update_68k_interrupts()
4141{
42   if (m_soundcpu) m_soundcpu->set_input_line(1, m_mainflag ? ASSERT_LINE : CLEAR_LINE);
43   if (m_soundcpu) m_soundcpu->set_input_line(3, m_irq68k   ? ASSERT_LINE : CLEAR_LINE);
42   m_soundcpu->set_input_line(1, m_mainflag ? ASSERT_LINE : CLEAR_LINE);
43   m_soundcpu->set_input_line(3, m_irq68k   ? ASSERT_LINE : CLEAR_LINE);
4444}
4545
4646
r241777r241778
8282
8383WRITE16_MEMBER(harddriv_state::hd68k_snd_reset_w)
8484{
85   if (m_soundcpu) m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
86   if (m_soundcpu) m_soundcpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
85   m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
86   m_soundcpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
8787   m_mainflag = m_soundflag = 0;
8888   update_68k_interrupts();
8989   logerror("%06X:Reset sound\n", space.device().safe_pcbase());
r241777r241778
235235
236236WRITE16_MEMBER(harddriv_state::hdsnd68k_320ports_w)
237237{
238   if (m_sounddsp) m_sounddsp->space(AS_IO).write_word((offset & 7) << 1, data);
238   m_sounddsp->space(AS_IO).write_word((offset & 7) << 1, data);
239239}
240240
241241
trunk/src/mame/drivers/atarig1.c
r241777r241778
428428   MCFG_CPU_PROGRAM_MAP(main_map)
429429   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
430430
431   MCFG_SLAPSTIC_ADD("slapstic")
432
433431   MCFG_MACHINE_START_OVERRIDE(atarig1_state,atarig1)
434432   MCFG_MACHINE_RESET_OVERRIDE(atarig1_state,atarig1)
435433
trunk/src/mame/drivers/atarisy1.c
r241777r241778
713713   MCFG_CPU_PROGRAM_MAP(main_map)
714714   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
715715
716   MCFG_SLAPSTIC_ADD("slapstic")
717
718716   MCFG_CPU_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8)
719717   MCFG_CPU_PROGRAM_MAP(sound_map)
720718
trunk/src/mame/drivers/atarisy2.c
r241777r241778
126126
127127
128128#include "emu.h"
129#include "includes/slapstic.h"
129130#include "includes/atarisy2.h"
130131#include "sound/tms5220.h"
131132#include "sound/2151intf.h"
r241777r241778
221222MACHINE_RESET_MEMBER(atarisy2_state,atarisy2)
222223{
223224   atarigen_state::machine_reset();
224   m_slapstic->slapstic_reset();
225   slapstic_reset();
225226   scanline_timer_reset(*m_screen, 64);
226227
227228   m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(atarisy2_state::atarisy2_direct_handler), this));
r241777r241778
12071208   MCFG_CPU_PROGRAM_MAP(sound_map)
12081209   MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)MASTER_CLOCK/2/16/16/16/10)
12091210
1210   MCFG_SLAPSTIC_ADD("slapstic")
1211
12121211   MCFG_MACHINE_START_OVERRIDE(atarisy2_state,atarisy2)
12131212   MCFG_MACHINE_RESET_OVERRIDE(atarisy2_state,atarisy2)
12141213
r241777r241778
31443143   int i;
31453144   UINT8 *cpu1 = memregion("maincpu")->base();
31463145
3147   m_slapstic->slapstic_init(machine(), 105);
3146   slapstic_init(machine(), 105);
31483147
31493148   /* expand the 16k program ROMs into full 64k chunks */
31503149   for (i = 0x10000; i < 0x90000; i += 0x20000)
r241777r241778
31653164   /* without the default EEPROM, 720 hangs at startup due to communication
31663165      issues with the sound CPU; temporarily increasing the sound CPU frequency
31673166      to ~2.2MHz "fixes" the problem */
3168   m_slapstic->slapstic_init(machine(), 107);
3167   slapstic_init(machine(), 107);
31693168
31703169   m_pedal_count = -1;
31713170   m_has_tms5220 = 1;
r241777r241778
31783177   int i;
31793178   UINT8 *cpu1 = memregion("maincpu")->base();
31803179
3181   m_slapstic->slapstic_init(machine(), 108);
3180   slapstic_init(machine(), 108);
31823181
31833182   /* expand the 32k program ROMs into full 64k chunks */
31843183   for (i = 0x10000; i < 0x90000; i += 0x20000)
r241777r241778
31943193   int i;
31953194   UINT8 *cpu1 = memregion("maincpu")->base();
31963195
3197   m_slapstic->slapstic_init(machine(), 109);
3196   slapstic_init(machine(), 109);
31983197
31993198   /* expand the 32k program ROMs into full 64k chunks */
32003199   for (i = 0x10000; i < 0x90000; i += 0x20000)
r241777r241778
32073206
32083207DRIVER_INIT_MEMBER(atarisy2_state,apb)
32093208{
3210   m_slapstic->slapstic_init(machine(), 110);
3209   slapstic_init(machine(), 110);
32113210
32123211   m_pedal_count = 2;
32133212   m_has_tms5220 = 1;
trunk/src/mame/drivers/atetris.c
r241777r241778
4949
5050#include "emu.h"
5151#include "cpu/m6502/m6502.h"
52#include "includes/slapstic.h"
5253#include "includes/atetris.h"
5354#include "sound/sn76496.h"
5455#include "sound/pokey.h"
r241777r241778
114115void atetris_state::machine_reset()
115116{
116117   /* reset the slapstic */
117   m_slapstic_device->slapstic_reset();
118   m_current_bank = m_slapstic_device->slapstic_bank() & 1;
118   slapstic_reset();
119   m_current_bank = slapstic_bank() & 1;
119120   reset_bank();
120121
121122   /* start interrupts going (32V clocked by 16V) */
r241777r241778
133134READ8_MEMBER(atetris_state::atetris_slapstic_r)
134135{
135136   int result = m_slapstic_base[0x2000 + offset];
136   int new_bank = m_slapstic_device->slapstic_tweak(space, offset) & 1;
137   int new_bank = slapstic_tweak(space, offset) & 1;
137138
138139   /* update for the new bank */
139140   if (new_bank != m_current_bank)
r241777r241778
307308   MCFG_CPU_ADD("maincpu", M6502,MASTER_CLOCK/8)
308309   MCFG_CPU_PROGRAM_MAP(main_map)
309310
310   MCFG_SLAPSTIC_ADD("slapstic")
311
312311   MCFG_NVRAM_ADD_1FILL("nvram")
313312
314313   /* video hardware */
r241777r241778
457456{
458457   UINT8 *rgn = memregion("maincpu")->base();
459458
460   m_slapstic_device->slapstic_init(machine(), 101);
459   slapstic_init(machine(), 101);
461460   m_slapstic_source = &rgn[0x10000];
462461   m_slapstic_base = &rgn[0x04000];
463462}
trunk/src/mame/drivers/beaminv.c
r241777r241778
11/***************************************************************************
22
3    Tekunon Kougyou(Teknon Kogyo) Beam Invader hardware
3    Tekunon Kougyou Beam Invader hardware
44
55    driver by Zsolt Vasvari
66
r241777r241778
385385 *
386386 *************************************/
387387
388GAMEL( 1979, beaminv,  0,       beaminv, beaminv, driver_device, 0, ROT270, "Teknon Kogyo", "Beam Invader", GAME_NO_SOUND | GAME_SUPPORTS_SAVE, layout_beaminv )
388GAMEL( 1979, beaminv,  0,       beaminv, beaminv, driver_device, 0, ROT270, "Tekunon Kougyou",   "Beam Invader", GAME_NO_SOUND | GAME_SUPPORTS_SAVE, layout_beaminv )
389389GAMEL( 1979, pacominv, beaminv, beaminv, pacominv, driver_device, 0, ROT270, "Pacom Corporation", "Pacom Invader", GAME_NO_SOUND | GAME_SUPPORTS_SAVE, layout_beaminv )
trunk/src/mame/drivers/calchase.c
r241777r241778
121121
122122#include "emu.h"
123123#include "cpu/i386/i386.h"
124#include "machine/lpci.h"
124#include "machine/pci.h"
125125#include "machine/pckeybrd.h"
126126#include "machine/idectrl.h"
127127#include "video/pc_vga.h"
128128#include "sound/dac.h"
129129#include "machine/pcshare.h"
130#include "machine/ds128x.h"
131130#include "bus/isa/trident.h"
132131
133132
r241777r241778
662661   /* video hardware */
663662   MCFG_FRAGMENT_ADD( pcvideo_trident_vga )
664663
665   MCFG_DEVICE_REMOVE("rtc")
666   MCFG_DS12885_ADD("rtc")
667   MCFG_MC146818_IRQ_HANDLER(DEVWRITELINE("pic8259_2", pic8259_device, ir0_w))
668   MCFG_MC146818_CENTURY_INDEX(0x32)
669
670664   /* sound hardware */
671665   MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker")
672666   MCFG_DAC_ADD("dac_l")
trunk/src/mame/drivers/chihiro.c
r241777r241778
358358
359359#include "emu.h"
360360#include "cpu/i386/i386.h"
361#include "machine/lpci.h"
361#include "machine/pci.h"
362362#include "machine/pic8259.h"
363363#include "machine/pit8253.h"
364364#include "machine/idectrl.h"
trunk/src/mame/drivers/cobra.c
r241777r241778
313313
314314#include "emu.h"
315315#include "cpu/powerpc/ppc.h"
316#include "machine/lpci.h"
316#include "machine/pci.h"
317317#include "machine/ataintf.h"
318318#include "machine/idehd.h"
319319#include "machine/jvshost.h"
trunk/src/mame/drivers/coolridr.c
r241777r241778
1818    - i8237 purpose is unknown (missing ROM for comms?).
1919    - verify zooming etc. our current algorithm is a bit ugly for text
2020
21    Also known to exist on this hardware is Aqua Stage (Coin pusher):
22     833-12000 AQUA STAGE
23      Program roms EPR-18279 through EPR-18282
24      12 MASK roms (MPR numbers unknown)
25      SUB CPU program rom EPR-18278
21
2622=======================================================================================================
2723
2824Cool Riders
2925Sega 1994
3026
31This game runs on SYSTEM-H1 hardware. The hardware seems overly complex for a
322D bike racing game? The design of the PCB is very similar to vanilla Model 2
33(i.e. Daytona etc). However instead of fully custom-badged chips, many of the
34custom chips are off-the-shelf Hitachi/Toshiba gate-arrays.
27This game runs on SYSTEM-H1 hardware. Only one known game exists on this
28PCB and this is it. The hardware seems overly complex for a 2D bike
29racing game? The design of the PCB is very similar to vanilla Model 2
30(i.e. Daytona etc). However instead of fully custom-badged chips,
31many of the custom chips are off-the-shelf Hitachi/Toshiba gate-arrays.
3532
3633
3734PCB Layouts
trunk/src/mame/drivers/cyberbal.c
r241777r241778
389389   MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
390390   MCFG_CPU_PROGRAM_MAP(main_map)
391391
392   MCFG_SLAPSTIC_ADD("slapstic")
393
394392   MCFG_CPU_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8)
395393   MCFG_CPU_PROGRAM_MAP(sound_map)
396394   MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)ATARI_CLOCK_14MHz/4/4/16/16/14)
trunk/src/mame/drivers/fruitpc.c
r241777r241778
1313
1414#include "emu.h"
1515#include "cpu/i386/i386.h"
16#include "machine/lpci.h"
16#include "machine/pci.h"
1717#include "machine/pckeybrd.h"
1818#include "machine/idectrl.h"
1919#include "video/pc_vga.h"
trunk/src/mame/drivers/funkball.c
r241777r241778
7171
7272#include "emu.h"
7373#include "cpu/i386/i386.h"
74#include "machine/lpci.h"
74#include "machine/pci.h"
7575#include "machine/pckeybrd.h"
7676#include "machine/idectrl.h"
7777#include "video/voodoo.h"
trunk/src/mame/drivers/galaxian.c
r241777r241778
1079810798GAME( 198?, fantastc,    0,        fantastc,   fantastc,   galaxian_state, fantastc,   ROT90,  "Taito do Brasil", "Fantastic (Galaga conversion on Galaxian hardware)", GAME_SUPPORTS_SAVE ) // rewrite of Galaga (!) not a clone
1079910799
1080010800/* like fantastc, plus larger spriteram, and maybe different bullet hw(?) */
10801GAME( 198?, timefgtr,    0,        timefgtr,   timefgtr,   galaxian_state, timefgtr,   ROT90,  "Taito do Brasil", "Time Fighter (Time Pilot conversion on Galaxian hardware)", GAME_SUPPORTS_SAVE | GAME_WRONG_COLORS ) // rewrite of Time Pilot (!) not a clone
10801GAME( 198?, timefgtr,    0,        timefgtr,   timefgtr,   galaxian_state, timefgtr,   ROT90,  "Taito do Brasil", "Time Fighter (Time Pilot conversion on Galaxian hardware)", GAME_SUPPORTS_SAVE | GAME_SUPPORTS_SAVE | GAME_WRONG_COLORS ) // rewrite of Time Pilot (!) not a clone
1080210802
1080310803/* extra ROMs, protection, and sound hardware replaced with AY8910 */
1080410804GAME( 1981, jumpbug,     0,        jumpbug,    jumpbug,    galaxian_state, jumpbug,    ROT90,  "Hoei (Rock-Ola license)", "Jump Bug", GAME_SUPPORTS_SAVE ) // or by Alpha Denshi Co. under contract from Hoei?
trunk/src/mame/drivers/gamecstl.c
r241777r241778
6464
6565#include "emu.h"
6666#include "cpu/i386/i386.h"
67#include "machine/lpci.h"
67#include "machine/pci.h"
6868#include "machine/pcshare.h"
6969#include "machine/pckeybrd.h"
7070#include "machine/idectrl.h"
trunk/src/mame/drivers/gammagic.c
r241777r241778
3232#include "machine/cr589.h"
3333//#include "machine/i82371sb.h"
3434//#include "machine/i82439tx.h"
35#include "machine/lpci.h"
35#include "machine/pci.h"
3636#include "machine/pcshare.h"
3737#include "machine/pckeybrd.h"
3838#include "video/pc_vga.h"
trunk/src/mame/drivers/gauntlet.c
r241777r241778
499499   MCFG_CPU_PROGRAM_MAP(main_map)
500500   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
501501
502   MCFG_SLAPSTIC_ADD("slapstic")
503
504502   MCFG_CPU_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8)
505503   MCFG_CPU_PROGRAM_MAP(sound_map)
506504
trunk/src/mame/drivers/harddriv.c
r241777r241778
330330#include "includes/slapstic.h"
331331#include "includes/harddriv.h"
332332
333#include "racedrivpan.lh"
334333
335334/*************************************
336335 *
r241777r241778
338337 *
339338 *************************************/
340339
341const device_type HARDDRIV_DEVICE = &device_creator<harddriv_state>;
342
343harddriv_state::harddriv_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
344   : device_t(mconfig, HARDDRIV_DEVICE, "Hard Drivin' PCB Family", tag, owner, clock, "harddriv_pcb", __FILE__),
345/*   device_video_interface(mconfig, *this, false), */
346         m_maincpu(*this, "maincpu"),
347         m_gsp(*this, "gsp"),
348         m_msp(*this, "msp"),
349         m_adsp(*this, "adsp"),
350         m_soundcpu(*this, "soundcpu"),
351         m_sounddsp(*this, "sounddsp"),
352         m_jsacpu(*this, "jsacpu"),
353         m_dsp32(*this, "dsp32"),
354         m_ds3sdsp(*this, "ds3sdsp"),
355         m_ds3xdsp(*this, "ds3xdsp"),
356         m_ds3dac1(*this, "ds3dac1"),
357         m_ds3dac2(*this, "ds3dac2"),
358         m_jsa(*this, "jsa"),
359         m_hd34010_host_access(0),
360         m_dsk_pio_access(0),
361         m_msp_ram(*this, "msp_ram"),
362         m_dsk_ram(0),
363         m_dsk_rom(0),
364         m_dsk_10c(*this, "dsk_10c"),
365         m_dsk_30c(*this, "dsk_30c"),
366         m_m68k_slapstic_base(0),
367         m_m68k_sloop_alt_base(0),
368         m_200e(*this, "200e"),
369         m_210e(*this, "210e"),
370         m_adsp_data_memory(*this, "adsp_data"),
371         m_adsp_pgm_memory(*this, "adsp_pgm_memory"),
372         m_ds3sdsp_data_memory(*this, "ds3sdsp_data"),
373         m_ds3sdsp_pgm_memory(*this, "ds3sdsp_pgm"),
374         m_ds3xdsp_pgm_memory(*this, "ds3xdsp_pgm"),
375         m_gsp_protection(0),
376         m_gsp_speedup_pc(0),
377         m_msp_speedup_addr(0),
378         m_msp_speedup_pc(0),
379         m_ds3_speedup_addr(0),
380         m_ds3_speedup_pc(0),
381         m_ds3_transfer_pc(0),
382         m_sounddsp_ram(*this, "sounddsp_ram"),
383         m_gsp_multisync(0),
384         m_gsp_vram(*this, "gsp_vram", 16),
385         m_gsp_control_lo(*this, "gsp_control_lo"),
386         m_gsp_control_hi(*this, "gsp_control_hi"),
387         m_gsp_paletteram_lo(*this, "gsp_palram_lo"),
388         m_gsp_paletteram_hi(*this, "gsp_palram_hi"),
389         m_irq_state(0),
390         m_gsp_irq_state(0),
391         m_msp_irq_state(0),
392         m_adsp_irq_state(0),
393         m_ds3sdsp_irq_state(0),
394         m_duart_irq_state(0),
395         m_last_gsp_shiftreg(0),
396         m_m68k_zp1(0),
397         m_m68k_zp2(0),
398         m_m68k_adsp_buffer_bank(0),
399         m_adsp_halt(0),
400         m_adsp_br(0),
401         m_adsp_xflag(0),
402         m_adsp_sim_address(0),
403         m_adsp_som_address(0),
404         m_adsp_eprom_base(0),
405         m_sim_memory(0),
406         m_sim_memory_size(0),
407         m_adsp_pgm_memory_word(0),
408         m_ds3_sdata_memory(0),
409         m_ds3_sdata_memory_size(0),
410         m_ds3_gcmd(0),
411         m_ds3_gflag(0),
412         m_ds3_g68irqs(0),
413         m_ds3_gfirqs(0),
414         m_ds3_g68flag(0),
415         m_ds3_send(0),
416         m_ds3_reset(0),
417         m_ds3_gdata(0),
418         m_ds3_g68data(0),
419         m_ds3_sim_address(0),
420         m_ds3_scmd(0),
421         m_ds3_sflag(0),
422         m_ds3_s68irqs(0),
423         m_ds3_sfirqs(0),
424         m_ds3_s68flag(0),
425         m_ds3_sreset(0),
426         m_ds3_sdata(0),
427         m_ds3_s68data(0),
428         m_ds3_sdata_address(0),
429         m_ds3sdsp_timer_en(0),
430         m_ds3sdsp_sdata(0),
431         m_ds3sdsp_internal_timer(*this, "ds3sdsp_timer"),
432         m_ds3xdsp_timer_en(0),
433         m_ds3xdsp_sdata(0),
434         m_ds3xdsp_internal_timer(*this, "ds3xdsp_timer"),
435         m_adc_control(0),
436          m_adc8_select(0),
437           m_adc8_data(0),
438           m_adc12_select(0),
439           m_adc12_byte(0),
440           m_adc12_data(0),
441           m_hdc68k_last_wheel(0),
442           m_hdc68k_last_port1(0),
443           m_hdc68k_wheel_edge(0),
444           m_hdc68k_shifter_state(0),
445           m_st68k_sloop_bank(0),
446           m_st68k_last_alt_sloop_offset(0),
447          m_next_msp_sync(0),
448         m_soundflag(0),
449          m_mainflag(0),
450           m_sounddata(0),
451           m_maindata(0),
452           m_dacmute(0),
453           m_cramen(0),
454           m_irq68k(0),
455           m_sound_rom_offs(0),
456           m_rombase(0),
457           m_romsize(0),
458           m_last_bio_cycles(0),
459           m_vram_mask(0),
460           m_shiftreg_enable(0),
461           m_gsp_shiftreg_source(0),
462         m_gfx_finescroll(0),
463         m_gfx_palettebank(0),
464         m_dac(*this, "dac"),
465         m_duart(*this, "duartn68681"),
466         m_asic65(*this, "asic65"),
467         m_palette(*this, "palette"),
468         m_slapstic_device(*this, "slapstic")
469{
470   int i;
471
472   for (i = 0; i < 2; i++)
473   {
474      m_gsp_speedup_addr[i] = 0;
475      m_rddsp32_sync[i] = 0;
476   }
477
478   for (i = 0; i < 4; i++)
479   {
480      m_gsp_speedup_count[i] = 0;
481      m_msp_speedup_count[i] = 0;
482      m_adsp_speedup_count[i] = 0;
483   }
484
485   for (i = 0; i < 32; i++)
486   {
487      m_ds3sdsp_regs[i] = 0;
488      m_ds3xdsp_regs[i] = 0;
489   }
490
491   for (i = 0; i < 0x8000 / 2; i++)
492   {
493      m_som_memory[i] = 0;
494   }
495
496   for (i = 0; i < MAX_MSP_SYNC; i++)
497   {
498      m_dataptr[i] = 0;
499      m_dataval[i] = 0;
500   }
501
502   for (i = 0; i < 0x400 / 2; i++)
503   {
504      m_comram[i] = 0;
505   }
506
507   for (i = 0; i < 65536 * 4; i++)
508   {
509      m_mask_table[i] = 0;
510   }
511}
512
513
514class harddriv_new_state : public driver_device
515{
516public:
517   harddriv_new_state(const machine_config &mconfig, device_type type, const char *tag)
518      : driver_device(mconfig, type, tag)
519   { }
520
521   TIMER_DEVICE_CALLBACK_MEMBER(hack_timer);
522};
523
524
525WRITE16_MEMBER( harddriv_state::watchdog_reset16_w )
526{
527
528}
529
530340static ADDRESS_MAP_START( driver_68k_map, AS_PROGRAM, 16, harddriv_state )
531341   ADDRESS_MAP_UNMAP_HIGH
532342   AM_RANGE(0x000000, 0x0fffff) AM_ROM
r241777r241778
535345   AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w)
536346   AM_RANGE(0x60c000, 0x60ffff) AM_WRITE(hd68k_irq_ack_w)
537347   AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(hd68k_wr0_write)
538   AM_RANGE(0xa80000, 0xafffff) AM_READ(hd68k_a80000_r) AM_WRITE(hd68k_wr1_write)
348   AM_RANGE(0xa80000, 0xafffff) AM_READ_PORT("a80000") AM_WRITE(hd68k_wr1_write)
539349   AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE(hd68k_adc8_r, hd68k_wr2_write)
540350   AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE(hd68k_adc12_r, hd68k_adc_control_w)
541351   AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(hd68k_gsp_io_r, hd68k_gsp_io_w)
r241777r241778
582392   AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w)
583393   AM_RANGE(0x60c000, 0x60ffff) AM_READWRITE(hd68k_port0_r, hd68k_irq_ack_w)
584394   AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(hd68k_wr0_write)
585   AM_RANGE(0xa80000, 0xafffff) AM_READ(hd68k_a80000_r) AM_WRITE(hd68k_wr1_write)
395   AM_RANGE(0xa80000, 0xafffff) AM_READ_PORT("a80000") AM_WRITE(hd68k_wr1_write)
586396   AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE(hd68k_adc8_r, hd68k_wr2_write)
587397   AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE(hd68k_adc12_r, hd68k_adc_control_w)
588398   AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(hd68k_gsp_io_r, hd68k_gsp_io_w)
r241777r241778
620430   AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w)
621431   AM_RANGE(0x60c000, 0x60ffff) AM_READWRITE(hd68k_port0_r, hd68k_irq_ack_w)
622432   AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(hd68k_wr0_write)
623   AM_RANGE(0xa80000, 0xafffff) AM_READ(hd68k_a80000_r) AM_WRITE(hd68k_wr1_write)
433   AM_RANGE(0xa80000, 0xafffff) AM_READ_PORT("a80000") AM_WRITE(hd68k_wr1_write)
624434   AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE(hd68k_adc8_r, hd68k_wr2_write)
625435   AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE(hd68k_adc12_r, hd68k_adc_control_w)
626436   AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(hd68k_gsp_io_r, hd68k_gsp_io_w)
r241777r241778
787597
788598
789599
790
791600/*************************************
792601 *
793602 *  Port definitions
r241777r241778
795604 *************************************/
796605
797606static INPUT_PORTS_START( harddriv )
798   PORT_START("mainpcb:IN0")       /* 600000 */
607   PORT_START("IN0")       /* 600000 */
799608   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
800609   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
801610   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
802611   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
803   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
612   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
804613   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
805614   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
806615   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
807616   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
808617   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
809618
810   PORT_START("mainpcb:SW1")       /* 600002 */
619   PORT_START("SW1")       /* 600002 */
811620   PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
812621   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
813622   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r241777r241778
833642   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
834643   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
835644
836   PORT_START("mainpcb:a80000")
645   PORT_START("a80000")
837646   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort")    /* abort */
838647   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key")  /* key */
839648   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )    /* aux coin */
840649   PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
841650
842   PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */
651   PORT_START("8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */
843652   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
844653
845   PORT_START("mainpcb:8BADC1")        /* b00000 - 8 bit ADC 1 - clutch pedal */
654   PORT_START("8BADC1")        /* b00000 - 8 bit ADC 1 - clutch pedal */
846655   PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal")
847656
848   PORT_START("mainpcb:8BADC2")        /* b00000 - 8 bit ADC 2 - seat */
657   PORT_START("8BADC2")        /* b00000 - 8 bit ADC 2 - seat */
849658   PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
850659
851   PORT_START("mainpcb:8BADC3")        /* b00000 - 8 bit ADC 3 - shifter lever Y */
660   PORT_START("8BADC3")        /* b00000 - 8 bit ADC 3 - shifter lever Y */
852661   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_CODE_DEC(KEYCODE_R) PORT_CODE_INC(KEYCODE_F) PORT_NAME("Shifter Lever Y")
853662
854   PORT_START("mainpcb:8BADC4")        /* b00000 - 8 bit ADC 4 - shifter lever X*/
663   PORT_START("8BADC4")        /* b00000 - 8 bit ADC 4 - shifter lever X*/
855664   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_CODE_DEC(KEYCODE_D) PORT_CODE_INC(KEYCODE_G) PORT_NAME("Shifter Lever X")
856665
857   PORT_START("mainpcb:8BADC5")        /* b00000 - 8 bit ADC 5 - wheel */
666   PORT_START("8BADC5")        /* b00000 - 8 bit ADC 5 - wheel */
858667   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Wheel")
859668
860   PORT_START("mainpcb:8BADC6")        /* b00000 - 8 bit ADC 6 - line volts */
669   PORT_START("8BADC6")        /* b00000 - 8 bit ADC 6 - line volts */
861670   PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
862671
863   PORT_START("mainpcb:8BADC7")        /* b00000 - 8 bit ADC 7 - shift force */
672   PORT_START("8BADC7")        /* b00000 - 8 bit ADC 7 - shift force */
864673   PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
865674
866   PORT_START("mainpcb:12BADC0")       /* b80000 - 12 bit ADC 0 - steering wheel */
675   PORT_START("12BADC0")       /* b80000 - 12 bit ADC 0 - steering wheel */
867676   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
868677
869   PORT_START("mainpcb:12BADC1")       /* b80000 - 12 bit ADC 1 - force brake */
678   PORT_START("12BADC1")       /* b80000 - 12 bit ADC 1 - force brake */
870679   PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Force Brake")
871680
872   PORT_START("mainpcb:12BADC2")       /* b80000 - 12 bit ADC 2 */
681   PORT_START("12BADC2")       /* b80000 - 12 bit ADC 2 */
873682   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
874683
875   PORT_START("mainpcb:12BADC3")       /* b80000 - 12 bit ADC 3 */
684   PORT_START("12BADC3")       /* b80000 - 12 bit ADC 3 */
876685   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
877   
878686INPUT_PORTS_END
879687
880688
881689static INPUT_PORTS_START( racedriv )
882   PORT_START("mainpcb:IN0")       /* 600000 */
690   PORT_START("IN0")       /* 600000 */
883691   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
884692   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
885693   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
886694   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
887   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
695   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
888696   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
889697   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
890698   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
891699   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
892700   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
893701
894   PORT_START("mainpcb:SW1")       /* 600002 */
702   PORT_START("SW1")       /* 600002 */
895703   PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
896704   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
897705   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r241777r241778
917725   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
918726   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
919727
920   PORT_START("mainpcb:a80000")
728   PORT_START("a80000")
921729   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort")    /* abort */
922730   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key")  /* key */
923731   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )    /* aux coin */
924732   PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
925733
926   PORT_START("mainpcb:8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
734   PORT_START("8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
927735   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
928736
929   PORT_START("mainpcb:8BADC1")        /* b00000 - 8 bit ADC 1 - clutch pedal */
737   PORT_START("8BADC1")        /* b00000 - 8 bit ADC 1 - clutch pedal */
930738   PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal")
931739
932   PORT_START("mainpcb:8BADC2")        /* b00000 - 8 bit ADC 2 - seat */
740   PORT_START("8BADC2")        /* b00000 - 8 bit ADC 2 - seat */
933741   PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
934742
935   PORT_START("mainpcb:8BADC3")        /* b00000 - 8 bit ADC 3 - shifter lever Y */
743   PORT_START("8BADC3")        /* b00000 - 8 bit ADC 3 - shifter lever Y */
936744   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_CODE_DEC(KEYCODE_R) PORT_CODE_INC(KEYCODE_F) PORT_NAME("Shifter Lever Y")
937745
938   PORT_START("mainpcb:8BADC4")        /* b00000 - 8 bit ADC 4 - shifter lever X*/
746   PORT_START("8BADC4")        /* b00000 - 8 bit ADC 4 - shifter lever X*/
939747   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_CODE_DEC(KEYCODE_D) PORT_CODE_INC(KEYCODE_G) PORT_NAME("Shifter Lever X")
940748
941   PORT_START("mainpcb:8BADC5")        /* b00000 - 8 bit ADC 5 - wheel */
749   PORT_START("8BADC5")        /* b00000 - 8 bit ADC 5 - wheel */
942750   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Wheel")
943751
944   PORT_START("mainpcb:8BADC6")        /* b00000 - 8 bit ADC 6 - line volts */
752   PORT_START("8BADC6")        /* b00000 - 8 bit ADC 6 - line volts */
945753   PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
946754
947   PORT_START("mainpcb:8BADC7")        /* b00000 - 8 bit ADC 7 */
755   PORT_START("8BADC7")        /* b00000 - 8 bit ADC 7 */
948756   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
949757
950   PORT_START("mainpcb:12BADC0")       /* b80000 - 12 bit ADC 0 - steering wheel */
758   PORT_START("12BADC0")       /* b80000 - 12 bit ADC 0 - steering wheel */
951759   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
952760
953   PORT_START("mainpcb:12BADC1")       /* b80000 - 12 bit ADC 1 - force brake */
761   PORT_START("12BADC1")       /* b80000 - 12 bit ADC 1 - force brake */
954762   PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Force Brake")
955763
956   PORT_START("mainpcb:12BADC2")       /* b80000 - 12 bit ADC 2 */
764   PORT_START("12BADC2")       /* b80000 - 12 bit ADC 2 */
957765   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
958766
959   PORT_START("mainpcb:12BADC3")       /* b80000 - 12 bit ADC 3 */
767   PORT_START("12BADC3")       /* b80000 - 12 bit ADC 3 */
960768   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
961769INPUT_PORTS_END
962770
963static INPUT_PORTS_START( racedriv_pan )
964   PORT_INCLUDE( racedriv )
965   
966   PORT_START("leftpcb:IN0")       /* 600000 */
967   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper (Left)" )
968   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
969   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
970   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
971   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("leftpcb:screen")
972   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
973   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
974   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
975   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
976   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
977771
978   PORT_START("rightpcb:IN0")       /* 600000 */
979   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper (Right)" )
980   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
981   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
982   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
983   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("rightpcb:screen")
984   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
985   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
986   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
987   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
988   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
989#if 1 // needed to navigate sub-screen test menus
990   PORT_START("leftpcb:a80000")
991   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort")    /* abort */
992   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key")  /* key */
993   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )    /* aux coin */
994   PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
995
996   PORT_START("rightpcb:a80000")
997   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort")    /* abort */
998   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key")  /* key */
999   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )    /* aux coin */
1000   PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
1001#endif
1002INPUT_PORTS_END
1003
1004772static INPUT_PORTS_START( racedrivc )
1005   PORT_START("mainpcb:IN0")       /* 60c000 */
773   PORT_START("IN0")       /* 60c000 */
1006774   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
1007775   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1008776   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1009777   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
1010   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
778   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
1011779   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
1012780   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
1013781   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
1014782   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
1015783   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
1016784
1017   PORT_START("mainpcb:SW1")       /* 60c002 */
785   PORT_START("SW1")       /* 60c002 */
1018786   PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
1019787   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1020788   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r241777r241778
1040808   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
1041809   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1042810
1043   PORT_START("mainpcb:a80000")
811   PORT_START("a80000")
1044812   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort")
1045813   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key")
1046814   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )    /* aux coin */
r241777r241778
1053821   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL )  /* center edge on steering wheel */
1054822   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
1055823
1056   PORT_START("mainpcb:8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
824   PORT_START("8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
1057825   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
1058826
1059   PORT_START("mainpcb:8BADC1")        /* b00000 - 8 bit ADC 1 - clutch pedal */
827   PORT_START("8BADC1")        /* b00000 - 8 bit ADC 1 - clutch pedal */
1060828   PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal")
1061829
1062   PORT_START("mainpcb:8BADC2")        /* b00000 - 8 bit ADC 2 */
830   PORT_START("8BADC2")        /* b00000 - 8 bit ADC 2 */
1063831   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1064832
1065   PORT_START("mainpcb:8BADC3")        /* b00000 - 8 bit ADC 3 */
833   PORT_START("8BADC3")        /* b00000 - 8 bit ADC 3 */
1066834   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1067835
1068   PORT_START("mainpcb:8BADC4")        /* b00000 - 8 bit ADC 4 */
836   PORT_START("8BADC4")        /* b00000 - 8 bit ADC 4 */
1069837   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1070838
1071   PORT_START("mainpcb:8BADC5")        /* b00000 - 8 bit ADC 5 */
839   PORT_START("8BADC5")        /* b00000 - 8 bit ADC 5 */
1072840   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1073841
1074   PORT_START("mainpcb:8BADC6")        /* b00000 - 8 bit ADC 6 - force brake */
842   PORT_START("8BADC6")        /* b00000 - 8 bit ADC 6 - force brake */
1075843   PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Force Brake")
1076844
1077   PORT_START("mainpcb:8BADC7")        /* b00000 - 8 bit ADC 7 */
845   PORT_START("8BADC7")        /* b00000 - 8 bit ADC 7 */
1078846   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1079847
1080   PORT_START("mainpcb:12BADC0")       /* 400000 - steering wheel */
848   PORT_START("12BADC0")       /* 400000 - steering wheel */
1081849   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
1082850
1083851   /* dummy ADC ports to end up with the same number as the full version */
1084   PORT_START("mainpcb:12BADC1")
852   PORT_START("12BADC1")
1085853   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1086   PORT_START("mainpcb:12BADC2")
854   PORT_START("12BADC2")
1087855   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1088   PORT_START("mainpcb:12BADC3")
856   PORT_START("12BADC3")
1089857   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1090858INPUT_PORTS_END
1091859
1092860
1093861static INPUT_PORTS_START( stunrun )
1094   PORT_START("mainpcb:IN0")       /* 60c000 */
862   PORT_START("IN0")       /* 60c000 */
1095863   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
1096864   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1097865   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1098866   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
1099   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
867   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
1100868   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
1101869   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
1102870   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
1103871   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
1104872   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1105873
1106   PORT_START("mainpcb:SW1")       /* 60c002 */
874   PORT_START("SW1")       /* 60c002 */
1107875   PORT_DIPNAME( 0x01, 0x00, "SW1:8" )
1108876   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1109877   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r241777r241778
1129897   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
1130898   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1131899
1132   PORT_START("mainpcb:a80000")
900   PORT_START("a80000")
1133901   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 )
1134902   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 )
1135903   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 )
1136904   PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
1137905
1138   PORT_START("mainpcb:8BADC0")        /* b00000 - 8 bit ADC 0 */
906   PORT_START("8BADC0")        /* b00000 - 8 bit ADC 0 */
1139907   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)
1140908
1141   PORT_START("mainpcb:8BADC1")        /* b00000 - 8 bit ADC 1 */
909   PORT_START("8BADC1")        /* b00000 - 8 bit ADC 1 */
1142910   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1143911
1144   PORT_START("mainpcb:8BADC2")        /* b00000 - 8 bit ADC 2 */
912   PORT_START("8BADC2")        /* b00000 - 8 bit ADC 2 */
1145913   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)
1146914
1147   PORT_START("mainpcb:8BADC3")        /* b00000 - 8 bit ADC 3 */
915   PORT_START("8BADC3")        /* b00000 - 8 bit ADC 3 */
1148916   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1149917
1150   PORT_START("mainpcb:8BADC4")        /* b00000 - 8 bit ADC 4 */
918   PORT_START("8BADC4")        /* b00000 - 8 bit ADC 4 */
1151919   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1152920
1153   PORT_START("mainpcb:8BADC5")        /* b00000 - 8 bit ADC 5 */
921   PORT_START("8BADC5")        /* b00000 - 8 bit ADC 5 */
1154922   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1155923
1156   PORT_START("mainpcb:8BADC6")        /* b00000 - 8 bit ADC 6 */
924   PORT_START("8BADC6")        /* b00000 - 8 bit ADC 6 */
1157925   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1158926
1159   PORT_START("mainpcb:8BADC7")        /* b00000 - 8 bit ADC 7 */
927   PORT_START("8BADC7")        /* b00000 - 8 bit ADC 7 */
1160928   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1161929
1162   PORT_START("mainpcb:12BADC0")       /* b80000 - 12 bit ADC 0 */
930   PORT_START("12BADC0")       /* b80000 - 12 bit ADC 0 */
1163931   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1164932
1165   PORT_START("mainpcb:12BADC1")       /* b80000 - 12 bit ADC 1 */
933   PORT_START("12BADC1")       /* b80000 - 12 bit ADC 1 */
1166934   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1167935
1168   PORT_START("mainpcb:12BADC2")       /* b80000 - 12 bit ADC 2 */
936   PORT_START("12BADC2")       /* b80000 - 12 bit ADC 2 */
1169937   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1170938
1171   PORT_START("mainpcb:12BADC3")       /* b80000 - 12 bit ADC 3 */
939   PORT_START("12BADC3")       /* b80000 - 12 bit ADC 3 */
1172940   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1173941
1174942   /* stunrun has its own coins */
r241777r241778
1180948
1181949
1182950static INPUT_PORTS_START( steeltal )
1183   PORT_START("mainpcb:IN0")       /* 60c000 */
951   PORT_START("IN0")       /* 60c000 */
1184952   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
1185953   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1186954   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1187955   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
1188   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
956   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
1189957   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
1190958   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
1191959   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
1192960   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
1193961   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1194962
1195   PORT_START("mainpcb:SW1")       /* 60c002 */
963   PORT_START("SW1")       /* 60c002 */
1196964   PORT_DIPNAME( 0x01, 0x00, "SW1:8" )
1197965   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1198966   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r241777r241778
1218986   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
1219987   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1220988
1221   PORT_START("mainpcb:a80000")
989   PORT_START("a80000")
1222990   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Trigger")
1223991   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Thumb")
1224992   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Zoom")
1225993   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Real Helicopter Flight")
1226994   PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNUSED )
1227995
1228   PORT_START("mainpcb:8BADC0")        /* b00000 - 8 bit ADC 0 */
996   PORT_START("8BADC0")        /* b00000 - 8 bit ADC 0 */
1229997   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1230998
1231   PORT_START("mainpcb:8BADC1")        /* b00000 - 8 bit ADC 1 */
999   PORT_START("8BADC1")        /* b00000 - 8 bit ADC 1 */
12321000   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )     /* volume control */
12331001
1234   PORT_START("mainpcb:8BADC2")        /* b00000 - 8 bit ADC 2 */
1002   PORT_START("8BADC2")        /* b00000 - 8 bit ADC 2 */
12351003   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
12361004
1237   PORT_START("mainpcb:8BADC3")        /* b00000 - 8 bit ADC 3 */
1005   PORT_START("8BADC3")        /* b00000 - 8 bit ADC 3 */
12381006   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
12391007
1240   PORT_START("mainpcb:8BADC4")        /* b00000 - 8 bit ADC 4 */
1008   PORT_START("8BADC4")        /* b00000 - 8 bit ADC 4 */
12411009   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
12421010
1243   PORT_START("mainpcb:8BADC5")        /* b00000 - 8 bit ADC 5 */
1011   PORT_START("8BADC5")        /* b00000 - 8 bit ADC 5 */
12441012   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
12451013
1246   PORT_START("mainpcb:8BADC6")        /* b00000 - 8 bit ADC 6 */
1014   PORT_START("8BADC6")        /* b00000 - 8 bit ADC 6 */
12471015   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
12481016
1249   PORT_START("mainpcb:8BADC7")        /* b00000 - 8 bit ADC 7 */
1017   PORT_START("8BADC7")        /* b00000 - 8 bit ADC 7 */
12501018   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
12511019
1252   PORT_START("mainpcb:12BADC0")       /* b80000 - 12 bit ADC 0 */
1020   PORT_START("12BADC0")       /* b80000 - 12 bit ADC 0 */
12531021   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)   /* left/right */
12541022
1255   PORT_START("mainpcb:12BADC1")       /* b80000 - 12 bit ADC 1 */
1023   PORT_START("12BADC1")       /* b80000 - 12 bit ADC 1 */
12561024   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)   /* up/down */
12571025
1258   PORT_START("mainpcb:12BADC2")       /* b80000 - 12 bit ADC 2 */
1026   PORT_START("12BADC2")       /* b80000 - 12 bit ADC 2 */
12591027   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)  PORT_NAME("Collective") PORT_REVERSE /* collective */
12601028
1261   PORT_START("mainpcb:12BADC3")       /* b80000 - 12 bit ADC 3 */
1029   PORT_START("12BADC3")       /* b80000 - 12 bit ADC 3 */
12621030   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)  PORT_NAME("Rudder") PORT_PLAYER(2)   /* rudder */
12631031
12641032   /* steeltal has its own coins */
r241777r241778
12701038
12711039
12721040static INPUT_PORTS_START( strtdriv )
1273   PORT_START("mainpcb:IN0")       /* 60c000 */
1041   PORT_START("IN0")       /* 60c000 */
12741042   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
12751043   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
12761044   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
12771045   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
1278   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
1046   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
12791047   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
12801048   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
12811049   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
12821050   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
12831051   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
12841052
1285   PORT_START("mainpcb:SW1")       /* 60c002 */
1053   PORT_START("SW1")       /* 60c002 */
12861054   PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
12871055   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
12881056   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r241777r241778
13081076   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
13091077   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
13101078
1311   PORT_START("mainpcb:a80000")
1079   PORT_START("a80000")
13121080   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 )   /* abort */
13131081   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 )   /* start */
13141082   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )    /* aux coin */
r241777r241778
13221090   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL )  /* center edge on steering wheel */
13231091   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
13241092
1325   PORT_START("mainpcb:8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
1093   PORT_START("8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
13261094   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
13271095
1328   PORT_START("mainpcb:8BADC1")        /* b00000 - 8 bit ADC 1 */
1096   PORT_START("8BADC1")        /* b00000 - 8 bit ADC 1 */
13291097   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
13301098
1331   PORT_START("mainpcb:8BADC2")        /* b00000 - 8 bit ADC 2 - voice mic */
1099   PORT_START("8BADC2")        /* b00000 - 8 bit ADC 2 - voice mic */
13321100   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
13331101
1334   PORT_START("mainpcb:8BADC3")        /* b00000 - 8 bit ADC 3 - volume */
1102   PORT_START("8BADC3")        /* b00000 - 8 bit ADC 3 - volume */
13351103   PORT_BIT( 0xff, 0X80, IPT_UNUSED )
13361104
1337   PORT_START("mainpcb:8BADC4")        /* b00000 - 8 bit ADC 4 - elevator */
1105   PORT_START("8BADC4")        /* b00000 - 8 bit ADC 4 - elevator */
13381106   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_NAME("Elevator") PORT_REVERSE  /* up/down */
13391107
1340   PORT_START("mainpcb:8BADC5")        /* b00000 - 8 bit ADC 5 - canopy */
1108   PORT_START("8BADC5")        /* b00000 - 8 bit ADC 5 - canopy */
13411109   PORT_BIT( 0xff, 0X80, IPT_UNUSED )
13421110
1343   PORT_START("mainpcb:8BADC6")        /* b00000 - 8 bit ADC 6 - brake */
1111   PORT_START("8BADC6")        /* b00000 - 8 bit ADC 6 - brake */
13441112   PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_NAME("Brake") PORT_REVERSE
13451113
1346   PORT_START("mainpcb:8BADC7")        /* b00000 - 8 bit ADC 7 - seat adjust */
1114   PORT_START("8BADC7")        /* b00000 - 8 bit ADC 7 - seat adjust */
13471115   PORT_BIT( 0xff, 0X80, IPT_UNUSED )
13481116
1349   PORT_START("mainpcb:12BADC0")       /* 400000 - steering wheel */
1117   PORT_START("12BADC0")       /* 400000 - steering wheel */
13501118   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
13511119
13521120   /* dummy ADC ports to end up with the same number as the full version */
1353   PORT_START("mainpcb:12BADC1")       /* FAKE */
1121   PORT_START("12BADC1")       /* FAKE */
13541122   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1355   PORT_START("mainpcb:12BADC2")       /* FAKE */
1123   PORT_START("12BADC2")       /* FAKE */
13561124   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1357   PORT_START("mainpcb:12BADC3")       /* FAKE */
1125   PORT_START("12BADC3")       /* FAKE */
13581126   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
13591127INPUT_PORTS_END
13601128
13611129
13621130static INPUT_PORTS_START( hdrivair )
1363   PORT_START("mainpcb:IN0")       /* 60c000 */
1131   PORT_START("IN0")       /* 60c000 */
13641132   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
13651133   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
13661134   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
13671135   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
1368   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
1136   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
13691137   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
13701138   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
13711139   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
13721140   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
13731141   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
13741142
1375   PORT_START("mainpcb:SW1")       /* 60c002 */
1143   PORT_START("SW1")       /* 60c002 */
13761144   PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
13771145   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
13781146   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r241777r241778
13981166   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
13991167   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
14001168
1401   PORT_START("mainpcb:a80000")
1169   PORT_START("a80000")
14021170   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 )   /* abort */
14031171   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 )   /* start */
14041172   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )    /* aux coin */
r241777r241778
14121180   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL )  /* center edge on steering wheel */
14131181   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
14141182
1415   PORT_START("mainpcb:8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
1183   PORT_START("8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
14161184   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
14171185
1418   PORT_START("mainpcb:8BADC1")        /* b00000 - 8 bit ADC 1 */
1186   PORT_START("8BADC1")        /* b00000 - 8 bit ADC 1 */
14191187   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
14201188
1421   PORT_START("mainpcb:8BADC2")        /* b00000 - 8 bit ADC 2 - voice mic */
1189   PORT_START("8BADC2")        /* b00000 - 8 bit ADC 2 - voice mic */
14221190   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
14231191
1424   PORT_START("mainpcb:8BADC3")        /* b00000 - 8 bit ADC 3 - volume */
1192   PORT_START("8BADC3")        /* b00000 - 8 bit ADC 3 - volume */
14251193   PORT_BIT( 0xff, 0X80, IPT_UNUSED )
14261194
1427   PORT_START("mainpcb:8BADC4")        /* b00000 - 8 bit ADC 4 - elevator */
1195   PORT_START("8BADC4")        /* b00000 - 8 bit ADC 4 - elevator */
14281196   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_REVERSE PORT_NAME("Elevator") /* up/down */
14291197
1430   PORT_START("mainpcb:8BADC5")        /* b00000 - 8 bit ADC 5 - canopy */
1198   PORT_START("8BADC5")        /* b00000 - 8 bit ADC 5 - canopy */
14311199   PORT_BIT( 0xff, 0X80, IPT_UNUSED )
14321200
1433   PORT_START("mainpcb:8BADC6")        /* b00000 - 8 bit ADC 6 - brake */
1201   PORT_START("8BADC6")        /* b00000 - 8 bit ADC 6 - brake */
14341202   PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Brake")
14351203
1436   PORT_START("mainpcb:8BADC7")        /* b00000 - 8 bit ADC 7 - seat adjust */
1204   PORT_START("8BADC7")        /* b00000 - 8 bit ADC 7 - seat adjust */
14371205   PORT_BIT( 0xff, 0X80, IPT_UNUSED )
14381206
1439   PORT_START("mainpcb:12BADC0")       /* 400000 - steering wheel */
1207   PORT_START("12BADC0")       /* 400000 - steering wheel */
14401208   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_REVERSE PORT_NAME("Steering Wheel")
14411209
14421210   /* dummy ADC ports to end up with the same number as the full version */
1443   PORT_START("mainpcb:12BADC1")
1211   PORT_START("12BADC1")
14441212   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1445   PORT_START("mainpcb:12BADC2")
1213   PORT_START("12BADC2")
14461214   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1447   PORT_START("mainpcb:12BADC3")
1215   PORT_START("12BADC3")
14481216   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
14491217INPUT_PORTS_END
14501218
r241777r241778
14551223 *
14561224 *************************************/
14571225
1458INTERRUPT_GEN_MEMBER(harddriv_state::video_int_gen)
1459{
1460   m_video_int_state = 1;
1461   update_interrupts();
1462}
1463
1464
14651226/* Driver board without MSP (used by Race Drivin' cockpit) */
1466static MACHINE_CONFIG_FRAGMENT( driver_nomsp )
1227static MACHINE_CONFIG_START( driver_nomsp, harddriv_state )
14671228
14681229   /* basic machine hardware */
14691230   MCFG_CPU_ADD("maincpu", M68010, HARDDRIV_MASTER_CLOCK/4)
14701231   MCFG_CPU_PROGRAM_MAP(driver_68k_map)
1471   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", harddriv_state, video_int_gen)
1232   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
14721233   MCFG_CPU_PERIODIC_INT_DRIVER(harddriv_state, hd68k_irq_gen,  (double)HARDDRIV_MASTER_CLOCK/16/16/16/16/2)
14731234
1474   MCFG_SLAPSTIC_ADD("slapstic")
1475   MCFG_SLAPSTIC_68K_ACCESS(1)
1476
14771235   MCFG_CPU_ADD("gsp", TMS34010, HARDDRIV_GSP_CLOCK)
14781236   MCFG_CPU_PROGRAM_MAP(driver_gsp_map)
14791237   MCFG_TMS340X0_HALT_ON_RESET(TRUE) /* halt on reset */
r241777r241778
14831241   MCFG_TMS340X0_OUTPUT_INT_CB(WRITELINE(harddriv_state, hdgsp_irq_gen))
14841242   MCFG_TMS340X0_TO_SHIFTREG_CB(harddriv_state, hdgsp_write_to_shiftreg)
14851243   MCFG_TMS340X0_FROM_SHIFTREG_CB(harddriv_state, hdgsp_read_from_shiftreg)
1486   MCFG_VIDEO_SET_SCREEN("screen")
14871244
14881245   MCFG_QUANTUM_TIME(attotime::from_hz(30000))
14891246
1247   MCFG_MACHINE_START_OVERRIDE(harddriv_state,harddriv)
1248   MCFG_MACHINE_RESET_OVERRIDE(harddriv_state,harddriv)
1249
14901250   MCFG_M48T02_ADD("200e") // MK48T02
14911251   MCFG_EEPROM_2816_ADD("210e") // MK48Z02
14921252
r241777r241778
15011261   MCFG_SCREEN_UPDATE_DEVICE("gsp", tms34010_device, tms340x0_ind16)
15021262   MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
15031263   MCFG_SCREEN_PALETTE("palette")
1264
1265   MCFG_VIDEO_START_OVERRIDE(harddriv_state,harddriv)
15041266MACHINE_CONFIG_END
15051267
15061268
15071269/* Driver board with MSP (used by Hard Drivin' cockpit) */
1508static MACHINE_CONFIG_FRAGMENT( driver_msp )
1270static MACHINE_CONFIG_DERIVED( driver_msp, driver_nomsp )
15091271
1510   MCFG_FRAGMENT_ADD( driver_nomsp )
1511
15121272   /* basic machine hardware */
15131273   MCFG_CPU_ADD("msp", TMS34010, XTAL_50MHz)
15141274   MCFG_CPU_PROGRAM_MAP(driver_msp_map)
r241777r241778
15161276   MCFG_TMS340X0_PIXEL_CLOCK(5000000) /* pixel clock */
15171277   MCFG_TMS340X0_PIXELS_PER_CLOCK(2) /* pixels per clock */
15181278   MCFG_TMS340X0_OUTPUT_INT_CB(WRITELINE(harddriv_state, hdmsp_irq_gen))
1519   MCFG_VIDEO_SET_SCREEN("screen")
1520
15211279MACHINE_CONFIG_END
15221280
15231281
15241282/* Multisync board without MSP (used by STUN Runner, Steel Talons, Race Drivin' compact) */
1525static MACHINE_CONFIG_FRAGMENT( multisync_nomsp )
1283static MACHINE_CONFIG_DERIVED( multisync_nomsp, driver_nomsp )
15261284
1527   MCFG_FRAGMENT_ADD( driver_nomsp )
1528
15291285   /* basic machine hardware */
15301286   MCFG_CPU_MODIFY("maincpu")
15311287   MCFG_CPU_PROGRAM_MAP(multisync_68k_map)
r241777r241778
15431299
15441300
15451301/* Multisync board with MSP (used by Hard Drivin' compact) */
1546static MACHINE_CONFIG_FRAGMENT( multisync_msp )
1302static MACHINE_CONFIG_DERIVED( multisync_msp, multisync_nomsp )
15471303
1548   MCFG_FRAGMENT_ADD( multisync_nomsp )
1549
15501304   /* basic machine hardware */
15511305   MCFG_CPU_ADD("msp", TMS34010, XTAL_50MHz)
15521306   MCFG_CPU_PROGRAM_MAP(driver_msp_map)
r241777r241778
15541308   MCFG_TMS340X0_PIXEL_CLOCK(5000000) /* pixel clock */
15551309   MCFG_TMS340X0_PIXELS_PER_CLOCK(2) /* pixels per clock */
15561310   MCFG_TMS340X0_OUTPUT_INT_CB(WRITELINE(harddriv_state, hdmsp_irq_gen))
1557   MCFG_VIDEO_SET_SCREEN("screen")
1558
15591311MACHINE_CONFIG_END
15601312
15611313
15621314/* Multisync II board (used by Hard Drivin's Airborne) */
1563static MACHINE_CONFIG_FRAGMENT( multisync2 )
1315static MACHINE_CONFIG_DERIVED( multisync2, multisync_nomsp )
15641316
1565   MCFG_FRAGMENT_ADD( multisync_nomsp )
1566
15671317   /* basic machine hardware */
15681318   MCFG_CPU_MODIFY("maincpu")
15691319   MCFG_CPU_PROGRAM_MAP(multisync2_68k_map)
r241777r241778
16941444 *
16951445 *************************************/
16961446
1697static MACHINE_CONFIG_FRAGMENT( harddriv )
1698   MCFG_FRAGMENT_ADD( driver_msp )
1447static MACHINE_CONFIG_DERIVED( harddriv, driver_msp )
1448
16991449   /* basic machine hardware */        /* original driver board with MSP */
17001450   MCFG_FRAGMENT_ADD( adsp )           /* ADSP board */
17011451   MCFG_FRAGMENT_ADD( driversnd )      /* driver sound board */
17021452MACHINE_CONFIG_END
17031453
1704static MACHINE_CONFIG_FRAGMENT( harddrivc )
1705   MCFG_FRAGMENT_ADD( multisync_msp )
17061454
1455static MACHINE_CONFIG_DERIVED( harddrivc, multisync_msp )
1456
17071457   /* basic machine hardware */        /* multisync board with MSP */
17081458   MCFG_FRAGMENT_ADD( adsp )           /* ADSP board */
17091459   MCFG_FRAGMENT_ADD( driversnd )      /* driver sound board */
17101460MACHINE_CONFIG_END
17111461
1712static MACHINE_CONFIG_FRAGMENT( racedriv )
1713   MCFG_FRAGMENT_ADD( driver_nomsp )
17141462
1463static MACHINE_CONFIG_DERIVED( racedriv, driver_nomsp )
1464
17151465   /* basic machine hardware */        /* original driver board without MSP */
17161466   MCFG_FRAGMENT_ADD( adsp )           /* ADSP board */
17171467   MCFG_FRAGMENT_ADD( dsk )            /* DSK board */
17181468   MCFG_FRAGMENT_ADD( driversnd )      /* driver sound board */
17191469MACHINE_CONFIG_END
17201470
1721static MACHINE_CONFIG_FRAGMENT( racedrivc )
17221471
1723   MCFG_FRAGMENT_ADD( multisync_nomsp )
1472static MACHINE_CONFIG_DERIVED( racedrivc, multisync_nomsp )
17241473
17251474   /* basic machine hardware */        /* multisync board without MSP */
17261475   MCFG_FRAGMENT_ADD( adsp )           /* ADSP board */
r241777r241778
17291478MACHINE_CONFIG_END
17301479
17311480
1732static MACHINE_CONFIG_FRAGMENT( racedrivc_panorama_side )
1481static MACHINE_CONFIG_DERIVED( stunrun, multisync_nomsp )
17331482
1734   MCFG_FRAGMENT_ADD( multisync_nomsp )
1735
17361483   /* basic machine hardware */        /* multisync board without MSP */
1737   MCFG_FRAGMENT_ADD( adsp )           /* ADSP board */
1738//   MCFG_FRAGMENT_ADD( dsk )            /* DSK board */
1739//   MCFG_FRAGMENT_ADD( driversnd )      /* driver sound board */
1740MACHINE_CONFIG_END
1741
1742WRITE_LINE_MEMBER(harddriv_state::sound_int_write_line)
1743{
1744   m_sound_int_state = state;
1745   update_interrupts();
1746}
1747
1748
1749static MACHINE_CONFIG_FRAGMENT( stunrun )
1750
1751   MCFG_FRAGMENT_ADD( multisync_nomsp )
1752
1753   /* basic machine hardware */        /* multisync board without MSP */
17541484   MCFG_CPU_MODIFY("gsp")
17551485   MCFG_TMS340X0_PIXEL_CLOCK(5000000)  /* pixel clock */
17561486   MCFG_FRAGMENT_ADD( adsp )           /* ADSP board */
r241777r241778
17621492   /* sund hardware */
17631493   MCFG_SPEAKER_STANDARD_MONO("mono")
17641494
1765   MCFG_ATARI_JSA_II_ADD("jsa", WRITELINE(harddriv_state, sound_int_write_line))
1495   MCFG_ATARI_JSA_II_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
17661496   MCFG_ATARI_JSA_TEST_PORT("IN0", 5)
17671497   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
17681498MACHINE_CONFIG_END
17691499
1770static MACHINE_CONFIG_FRAGMENT( steeltal )
1771   MCFG_FRAGMENT_ADD( multisync_msp )
17721500
1501static MACHINE_CONFIG_DERIVED( steeltal, multisync_msp )
1502
17731503   /* basic machine hardware */        /* multisync board with MSP */
17741504   MCFG_FRAGMENT_ADD( ds3 )            /* DS III board */
17751505   MCFG_DEVICE_REMOVE("ds3sdsp")       /* DS III sound components are not present */
r241777r241778
17841514   /* sund hardware */
17851515   MCFG_SPEAKER_STANDARD_MONO("mono")
17861516
1787   MCFG_ATARI_JSA_III_ADD("jsa", WRITELINE(harddriv_state, sound_int_write_line))
1517   MCFG_ATARI_JSA_III_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
17881518   MCFG_ATARI_JSA_TEST_PORT("IN0", 5)
17891519   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
17901520MACHINE_CONFIG_END
17911521
1792static MACHINE_CONFIG_FRAGMENT( strtdriv )
17931522
1794   MCFG_FRAGMENT_ADD( multisync_nomsp )
1523static MACHINE_CONFIG_DERIVED( strtdriv, multisync_nomsp )
17951524
17961525   /* basic machine hardware */        /* multisync board */
17971526   MCFG_FRAGMENT_ADD( ds3 )            /* DS III board */
r241777r241778
18011530   MCFG_FRAGMENT_ADD( dsk )            /* DSK board */
18021531MACHINE_CONFIG_END
18031532
1804static MACHINE_CONFIG_FRAGMENT( hdrivair )
18051533
1806   MCFG_FRAGMENT_ADD( multisync2 )
1534static MACHINE_CONFIG_DERIVED( hdrivair, multisync2 )
18071535
18081536   /* basic machine hardware */        /* multisync II board */
18091537   MCFG_FRAGMENT_ADD( ds3 )            /* DS IV board */
18101538   MCFG_FRAGMENT_ADD( dsk2 )           /* DSK II board */
18111539MACHINE_CONFIG_END
18121540
1813const device_type HARDDRIV_BOARD_DEVICE = &device_creator<harddriv_board_device_state>;
18141541
1815harddriv_board_device_state::harddriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1816   : harddriv_state(mconfig, tag, owner, clock)
1817{
1818}
18191542
1820machine_config_constructor harddriv_board_device_state::device_mconfig_additions() const
1821{
1822   return MACHINE_CONFIG_NAME( harddriv );
1823}
1824
1825void harddriv_board_device_state::device_start()
1826{
1827   init_harddriv();
1828   harddriv_state::device_start();
1829}
1830
1831/* Compact */
1832
1833void harddrivc_board_device_state::device_start()
1834{   
1835   init_harddrivc();
1836   harddriv_state::device_start();
1837}
1838
1839const device_type HARDDRIVC_BOARD_DEVICE = &device_creator<harddrivc_board_device_state>;
1840
1841harddrivc_board_device_state::harddrivc_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1842   : harddriv_state(mconfig, tag, owner, clock)
1843{
1844}
1845
1846machine_config_constructor harddrivc_board_device_state::device_mconfig_additions() const
1847{
1848   return MACHINE_CONFIG_NAME( harddrivc );
1849}
1850
1851
1852/* Race Drivin */
1853
1854void racedriv_board_device_state::device_start()
1855{
1856   init_racedriv();
1857   harddriv_state::device_start();
1858}
1859
1860void racedrivb1_board_device_state::device_start()
1861{
1862   init_racedrivb1();
1863   harddriv_state::device_start();
1864}
1865
1866const device_type RACEDRIV_BOARD_DEVICE = &device_creator<racedriv_board_device_state>;
1867const device_type RACEDRIVB1_BOARD_DEVICE = &device_creator<racedrivb1_board_device_state>;
1868
1869racedriv_board_device_state::racedriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1870   : harddriv_state(mconfig, tag, owner, clock)
1871{
1872}
1873
1874machine_config_constructor racedriv_board_device_state::device_mconfig_additions() const
1875{
1876   return MACHINE_CONFIG_NAME( racedriv );
1877}
1878
1879
1880/* Race Drivin Compact */
1881
1882void racedrivc_board_device_state::device_start()
1883{
1884   init_racedrivc();
1885   harddriv_state::device_start();
1886}
1887
1888void racedrivc1_board_device_state::device_start()
1889{
1890   init_racedrivc1();
1891   harddriv_state::device_start();
1892}
1893
1894void racedrivc_panorama_side_board_device_state::device_start()
1895{
1896   init_racedrivc_panorama_side();
1897   harddriv_state::device_start();
1898}
1899
1900
1901
1902const device_type RACEDRIVC_BOARD_DEVICE = &device_creator<racedrivc_board_device_state>;
1903const device_type RACEDRIVC1_BOARD_DEVICE = &device_creator<racedrivc1_board_device_state>;
1904const device_type RACEDRIVC_PANORAMA_SIDE_BOARD_DEVICE = &device_creator<racedrivc_panorama_side_board_device_state>;
1905
1906racedrivc_board_device_state::racedrivc_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1907   : harddriv_state(mconfig, tag, owner, clock)
1908{
1909}
1910
1911machine_config_constructor racedrivc_board_device_state::device_mconfig_additions() const
1912{
1913   return MACHINE_CONFIG_NAME( racedrivc );
1914}
1915
1916machine_config_constructor racedrivc_panorama_side_board_device_state::device_mconfig_additions() const
1917{
1918   return MACHINE_CONFIG_NAME( racedrivc_panorama_side );
1919}
1920
1921
1922/* Stun Runner */
1923
1924void stunrun_board_device_state::device_start()
1925{
1926   init_stunrun();
1927   harddriv_state::device_start();
1928}
1929
1930const device_type STUNRUN_BOARD_DEVICE = &device_creator<stunrun_board_device_state>;
1931
1932stunrun_board_device_state::stunrun_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1933   : harddriv_state(mconfig, tag, owner, clock)
1934{
1935}
1936
1937machine_config_constructor stunrun_board_device_state::device_mconfig_additions() const
1938{
1939   return MACHINE_CONFIG_NAME( stunrun );
1940}
1941
1942/* Steel Talons */
1943
1944void steeltal_board_device_state::device_start()
1945{
1946   init_steeltal();
1947   harddriv_state::device_start();
1948}
1949
1950void steeltal1_board_device_state::device_start()
1951{
1952   init_steeltal1();
1953   harddriv_state::device_start();
1954}
1955
1956void steeltalp_board_device_state::device_start()
1957{
1958   init_steeltalp();
1959   harddriv_state::device_start();
1960}
1961
1962const device_type STEELTAL_BOARD_DEVICE = &device_creator<steeltal_board_device_state>;
1963const device_type STEELTAL1_BOARD_DEVICE = &device_creator<steeltal1_board_device_state>;
1964const device_type STEELTALP_BOARD_DEVICE = &device_creator<steeltalp_board_device_state>;
1965
1966steeltal_board_device_state::steeltal_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1967   : harddriv_state(mconfig, tag, owner, clock)
1968{
1969}
1970
1971machine_config_constructor steeltal_board_device_state::device_mconfig_additions() const
1972{
1973   return MACHINE_CONFIG_NAME( steeltal );
1974}
1975
1976/* Street Drivin' */
1977
1978void strtdriv_board_device_state::device_start()
1979{
1980   init_strtdriv();
1981   harddriv_state::device_start();
1982}
1983
1984const device_type STRTDRIV_BOARD_DEVICE = &device_creator<strtdriv_board_device_state>;
1985
1986strtdriv_board_device_state::strtdriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1987   : harddriv_state(mconfig, tag, owner, clock)
1988{
1989}
1990
1991machine_config_constructor strtdriv_board_device_state::device_mconfig_additions() const
1992{
1993   return MACHINE_CONFIG_NAME( strtdriv );
1994}
1995
1996/* Hard Drivin' Airbourne */
1997
1998void hdrivair_board_device_state::device_start()
1999{
2000   init_hdrivair();
2001   harddriv_state::device_start();
2002}
2003
2004void hdrivairp_board_device_state::device_start()
2005{
2006   init_hdrivairp();
2007   harddriv_state::device_start();
2008}
2009
2010const device_type HDRIVAIR_BOARD_DEVICE = &device_creator<hdrivair_board_device_state>;
2011const device_type HDRIVAIRP_BOARD_DEVICE = &device_creator<hdrivairp_board_device_state>;
2012
2013hdrivair_board_device_state::hdrivair_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
2014   : harddriv_state(mconfig, tag, owner, clock)
2015{
2016}
2017
2018machine_config_constructor hdrivair_board_device_state::device_mconfig_additions() const
2019{
2020   return MACHINE_CONFIG_NAME( hdrivair );
2021}
2022
2023
2024
2025static MACHINE_CONFIG_START( harddriv_machine, harddriv_new_state )
2026   MCFG_DEVICE_ADD("mainpcb", HARDDRIV_BOARD_DEVICE, 0)
2027MACHINE_CONFIG_END
2028
2029static MACHINE_CONFIG_START( harddrivc_machine, harddriv_new_state )
2030   MCFG_DEVICE_ADD("mainpcb", HARDDRIVC_BOARD_DEVICE, 0)
2031MACHINE_CONFIG_END
2032
2033static MACHINE_CONFIG_START( racedriv_machine, harddriv_new_state )
2034   MCFG_DEVICE_ADD("mainpcb", RACEDRIV_BOARD_DEVICE, 0)
2035MACHINE_CONFIG_END
2036
2037static MACHINE_CONFIG_START( racedrivb1_machine, harddriv_new_state )
2038   MCFG_DEVICE_ADD("mainpcb", RACEDRIVB1_BOARD_DEVICE, 0)
2039MACHINE_CONFIG_END
2040
2041static MACHINE_CONFIG_START( racedrivc_machine, harddriv_new_state )
2042   MCFG_DEVICE_ADD("mainpcb", RACEDRIVC_BOARD_DEVICE, 0)
2043MACHINE_CONFIG_END
2044
2045static MACHINE_CONFIG_START( racedrivc1_machine, harddriv_new_state )
2046   MCFG_DEVICE_ADD("mainpcb", RACEDRIVC1_BOARD_DEVICE, 0)
2047MACHINE_CONFIG_END
2048
2049static MACHINE_CONFIG_START( stunrun_machine, harddriv_new_state )
2050   MCFG_DEVICE_ADD("mainpcb", STUNRUN_BOARD_DEVICE, 0)
2051MACHINE_CONFIG_END
2052
2053static MACHINE_CONFIG_START( strtdriv_machine, harddriv_new_state )
2054   MCFG_DEVICE_ADD("mainpcb", STRTDRIV_BOARD_DEVICE, 0)
2055MACHINE_CONFIG_END
2056
2057static MACHINE_CONFIG_START( hdrivair_machine, harddriv_new_state )
2058   MCFG_DEVICE_ADD("mainpcb", HDRIVAIR_BOARD_DEVICE, 0)
2059MACHINE_CONFIG_END
2060
2061static MACHINE_CONFIG_START( hdrivairp_machine, harddriv_new_state )
2062   MCFG_DEVICE_ADD("mainpcb", HDRIVAIRP_BOARD_DEVICE, 0)
2063MACHINE_CONFIG_END
2064
2065static MACHINE_CONFIG_START( steeltal_machine, harddriv_new_state )
2066   MCFG_DEVICE_ADD("mainpcb", STEELTAL_BOARD_DEVICE, 0)
2067MACHINE_CONFIG_END
2068
2069static MACHINE_CONFIG_START( steeltal1_machine, harddriv_new_state )
2070   MCFG_DEVICE_ADD("mainpcb", STEELTAL1_BOARD_DEVICE, 0)
2071MACHINE_CONFIG_END
2072
2073static MACHINE_CONFIG_START( steeltalp_machine, harddriv_new_state )
2074   MCFG_DEVICE_ADD("mainpcb", STEELTALP_BOARD_DEVICE, 0)
2075MACHINE_CONFIG_END
2076
2077WRITE_LINE_MEMBER(racedriv_board_device_state::tx_a)
2078{
2079   // passive connection, one way, to both screens
2080   mc68681_device* left = machine().device<mc68681_device>(":leftpcb:duartn68681");
2081   mc68681_device* right = machine().device<mc68681_device>(":rightpcb:duartn68681");
2082   left->rx_a_w(state);
2083   right->rx_a_w(state);
2084}
2085
2086static MACHINE_CONFIG_START( racedriv_panorama_machine, harddriv_new_state )
2087   MCFG_DEVICE_ADD("mainpcb", RACEDRIV_BOARD_DEVICE, 0)
2088   MCFG_DEVICE_ADD("leftpcb", RACEDRIVC_PANORAMA_SIDE_BOARD_DEVICE, 0)
2089   MCFG_DEVICE_ADD("rightpcb", RACEDRIVC_PANORAMA_SIDE_BOARD_DEVICE, 0)
2090
2091//   MCFG_QUANTUM_TIME(attotime::from_hz(100000))
2092   MCFG_DEVICE_MODIFY("mainpcb:duartn68681")
2093   MCFG_MC68681_A_TX_CALLBACK(WRITELINE(racedriv_board_device_state,tx_a ))
2094
2095   MCFG_TIMER_DRIVER_ADD_PERIODIC("hack_timer", harddriv_new_state, hack_timer, attotime::from_hz(60))   
2096//   MCFG_QUANTUM_TIME(attotime::from_hz(60000))
2097MACHINE_CONFIG_END
2098
2099// this is an ugly hack, otherwise MAME's core can't seem to handle partial updates if you have multiple screens with different update frequencies.
2100// by forcing them to stay in sync using this ugly method everything works much better.
2101TIMER_DEVICE_CALLBACK_MEMBER(harddriv_new_state::hack_timer)
2102{
2103   screen_device* middle = machine().device<screen_device>(":mainpcb:screen");
2104   screen_device* left = machine().device<screen_device>(":leftpcb:screen");
2105   screen_device* right = machine().device<screen_device>(":rightpcb:screen");
2106
2107   left->reset_origin(0, 0);
2108   middle->reset_origin(0, 0);
2109   right->reset_origin(0, 0);
2110}
2111
21121543/*************************************
21131544 *
21141545 *  ROM definition(s)
r241777r241778
21231554*/
21241555
21251556ROM_START( harddriv )
2126   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
1557   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
21271558   ROM_LOAD16_BYTE( "136052-7105.200r", 0x000000, 0x010000, CRC(af5d5c3e) SHA1(09ccf4aa933413b71b6a42796d42299e1334902f) )
21281559   ROM_LOAD16_BYTE( "136052-7113.210r", 0x000001, 0x010000, CRC(3330a942) SHA1(b9210f6befd875be8bc1dbd31f44d0cb63166748) )
21291560   ROM_LOAD16_BYTE( "136052-2106.200s", 0x020000, 0x010000, CRC(a668db0e) SHA1(8ac405a0ba12bac9acabdb64970608d1b2b1a99b) )
r241777r241778
21331564   ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
21341565   ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
21351566
2136   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
1567   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
21371568   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
21381569   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
21391570
2140   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
1571   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
21411572   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
21421573   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
21431574   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
21441575   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
21451576
2146   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
1577   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
21471578   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
21481579   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
21491580   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
21501581   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
21511582
2152   ROM_REGION( 0x800, "mainpcb:200e", 0 )
1583   ROM_REGION( 0x800, "200e", 0 )
21531584   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
21541585
2155   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2156   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )   
1586   ROM_REGION( 0x800, "210e", 0 )
1587   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
21571588ROM_END
21581589
21591590
2160
21611591ROM_START( harddrivg )
2162   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
1592   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
21631593   ROM_LOAD16_BYTE( "136052-7205.200r", 0x000000, 0x010000, CRC(b50b1968) SHA1(b6fd9f0600cba995bf31fd0f30f15f091bbbfb09) )
21641594   ROM_LOAD16_BYTE( "136052-7213.210r", 0x000001, 0x010000, CRC(e6d57108) SHA1(a4eda6db4ec67b1cb8f9bfee17d8adc93675ef8a) )
21651595   ROM_LOAD16_BYTE( "136052-4206.200s", 0x020000, 0x010000, CRC(70f78c50) SHA1(6baed202937c455c7c6e4baa74ee7858673a37fc) )
r241777r241778
21691599   ROM_LOAD16_BYTE( "136052-4211.200x", 0x0c0000, 0x010000, CRC(20d1b3d5) SHA1(b7c4a2cf6ba729530c24980704989b3a3efb343b) )
21701600   ROM_LOAD16_BYTE( "136052-4219.210x", 0x0c0001, 0x010000, CRC(105e7052) SHA1(a8d13c35418e58410cfd74c243b74963f1553068) )
21711601
2172   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
1602   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
21731603   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
21741604   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
21751605
2176   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
1606   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
21771607   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
21781608   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
21791609   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
21801610   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
21811611
2182   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
1612   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
21831613   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
21841614   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
21851615   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
21861616   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
21871617
2188   ROM_REGION( 0x800, "mainpcb:200e", 0 )
1618   ROM_REGION( 0x800, "200e", 0 )
21891619   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
21901620
2191   ROM_REGION( 0x800, "mainpcb:210e", 0 )
1621   ROM_REGION( 0x800, "210e", 0 )
21921622   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
21931623ROM_END
21941624
21951625
21961626ROM_START( harddrivj )
2197   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
1627   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
21981628   ROM_LOAD16_BYTE( "136052-7805.200r", 0x000000, 0x010000, CRC(f170c842) SHA1(842cef66646a664300a7e2b827c0bbd53e5f27ad) )
21991629   ROM_LOAD16_BYTE( "136052-7813.210r", 0x000001, 0x010000, CRC(e5a3367d) SHA1(96b3a6fb5561fa59d7ac4b840fa1891d02f1bd8c) )
22001630   ROM_LOAD16_BYTE( "136052-6806.200s", 0x020000, 0x010000, CRC(bd68696e) SHA1(33b173f210183fef84c4c04b3bff515d79b4924d) )
r241777r241778
22061636   ROM_LOAD16_BYTE( "136052-6811.200x", 0x0c0000, 0x010000, CRC(7bc5c8da) SHA1(ac228d6391bc9ac4238f953f9ad6eb93b3ff9958) )
22071637   ROM_LOAD16_BYTE( "136052-6819.210x", 0x0c0001, 0x010000, CRC(368b7e17) SHA1(e8742edec6961173df4450073a427cf3b9f3ff57) )
22081638
2209   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
1639   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
22101640   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
22111641   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
22121642
2213   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
1643   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
22141644   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
22151645   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
22161646   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
22171647   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
22181648
2219   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
1649   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
22201650   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
22211651   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
22221652   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
22231653   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
22241654
2225   ROM_REGION( 0x800, "mainpcb:200e", 0 )
1655   ROM_REGION( 0x800, "200e", 0 )
22261656   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
22271657
2228   ROM_REGION( 0x800, "mainpcb:210e", 0 )
1658   ROM_REGION( 0x800, "210e", 0 )
22291659   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
22301660ROM_END
22311661
22321662
22331663ROM_START( harddrivb )
2234   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
1664   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
22351665   ROM_LOAD16_BYTE( "136052-7905.200r", 0x000000, 0x010000, CRC(c4379a2e) SHA1(41dc66c1576c591520543343a798e0d80def2188) )
22361666   ROM_LOAD16_BYTE( "136052-7913.210r", 0x000001, 0x010000, CRC(1e76fa17) SHA1(80ec1de4c8a4622fb5c65ec3e8c194a8eabacc38) )
22371667   ROM_LOAD16_BYTE( "136052-6906.200s", 0x020000, 0x010000, CRC(47c4498b) SHA1(aad3463f29ffc733ab42a7abf739ca698cdd8ec1) )
r241777r241778
22411671   ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) )
22421672   ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) )
22431673
2244   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
1674   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
22451675   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
22461676   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
22471677
2248   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
1678   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
22491679   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
22501680   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
22511681   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
22521682   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
22531683
2254   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
1684   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
22551685   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
22561686   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
22571687   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
22581688   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
22591689
2260   ROM_REGION( 0x800, "mainpcb:200e", 0 )
1690   ROM_REGION( 0x800, "200e", 0 )
22611691   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
22621692
2263   ROM_REGION( 0x800, "mainpcb:210e", 0 )
1693   ROM_REGION( 0x800, "210e", 0 )
22641694   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
22651695ROM_END
22661696
22671697
22681698ROM_START( harddrivb6 )
2269   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
1699   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
22701700   ROM_LOAD16_BYTE( "136052-6905.200r", 0x000000, 0x010000, CRC(b1f38593) SHA1(958622128c7c687071211343ef657c38f928e25a) )
22711701   ROM_LOAD16_BYTE( "136052-6913.210r", 0x000001, 0x010000, CRC(15eb0da5) SHA1(0200328582c77d4d64e9f7df1f8755f7f4975ac3) )
22721702   ROM_LOAD16_BYTE( "136052-6906.200s", 0x020000, 0x010000, CRC(47c4498b) SHA1(aad3463f29ffc733ab42a7abf739ca698cdd8ec1) )
r241777r241778
22761706   ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) )
22771707   ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) )
22781708
2279   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
1709   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
22801710   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
22811711   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
22821712
2283   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
1713   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
22841714   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
22851715   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
22861716   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
22871717   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
22881718
2289   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
1719   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
22901720   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
22911721   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
22921722   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
22931723   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
22941724
2295   ROM_REGION( 0x800, "mainpcb:200e", 0 )
1725   ROM_REGION( 0x800, "200e", 0 )
22961726   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
22971727
2298   ROM_REGION( 0x800, "mainpcb:210e", 0 )
1728   ROM_REGION( 0x800, "210e", 0 )
22991729   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
23001730ROM_END
23011731
23021732
23031733ROM_START( harddrivj6 )
2304   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
1734   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
23051735   ROM_LOAD16_BYTE( "136052-6805.200r", 0x000000, 0x010000, CRC(e61ce7af) SHA1(38115a5a44f330abf1f7d684e630a1a232769f7c) )
23061736   ROM_LOAD16_BYTE( "136052-6813.210r", 0x000001, 0x010000, CRC(adfef1e7) SHA1(dc1bdb5ce9143a94d734ce9ecdf9195589608b65) )
23071737   ROM_LOAD16_BYTE( "136052-6806.200s", 0x020000, 0x010000, CRC(bd68696e) SHA1(33b173f210183fef84c4c04b3bff515d79b4924d) )
r241777r241778
23131743   ROM_LOAD16_BYTE( "136052-6811.200x", 0x0c0000, 0x010000, CRC(7bc5c8da) SHA1(ac228d6391bc9ac4238f953f9ad6eb93b3ff9958) )
23141744   ROM_LOAD16_BYTE( "136052-6819.210x", 0x0c0001, 0x010000, CRC(368b7e17) SHA1(e8742edec6961173df4450073a427cf3b9f3ff57) )
23151745
2316   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
1746   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
23171747   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
23181748   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
23191749
2320   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
1750   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
23211751   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
23221752   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
23231753   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
23241754   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
23251755
2326   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
1756   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
23271757   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
23281758   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
23291759   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
23301760   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
23311761
2332   ROM_REGION( 0x800, "mainpcb:200e", 0 )
1762   ROM_REGION( 0x800, "200e", 0 )
23331763   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
23341764
2335   ROM_REGION( 0x800, "mainpcb:210e", 0 )
1765   ROM_REGION( 0x800, "210e", 0 )
23361766   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
23371767ROM_END
23381768
23391769
23401770ROM_START( harddrivb5 )
2341   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
1771   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
23421772   ROM_LOAD16_BYTE( "136052-5905.200r", 0x000000, 0x010000, CRC(6dd28313) SHA1(c1f860470070dad7d8865aca508ecf5eb92fa8c5) )
23431773   ROM_LOAD16_BYTE( "136052-5913.210r", 0x000001, 0x010000, CRC(2e5a006f) SHA1(8a2da1868bbad54b33e993f5bf9ba61186caef5b) )
23441774   ROM_LOAD16_BYTE( "136052-5906.200s", 0x020000, 0x010000, CRC(206b59db) SHA1(2bbae0ac4af9cdda44d6d8b5fcf6b3b1c3103796) )
r241777r241778
23481778   ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) )
23491779   ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) )
23501780
2351   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
1781   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
23521782   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
23531783   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
23541784
2355   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
1785   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
23561786   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
23571787   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
23581788   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
23591789   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
23601790
2361   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
1791   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
23621792   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
23631793   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
23641794   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
23651795   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
23661796
2367   ROM_REGION( 0x800, "mainpcb:200e", 0 )
1797   ROM_REGION( 0x800, "200e", 0 )
23681798   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
23691799
2370   ROM_REGION( 0x800, "mainpcb:210e", 0 )
1800   ROM_REGION( 0x800, "210e", 0 )
23711801   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
23721802ROM_END
23731803
23741804
23751805ROM_START( harddrivg4 )
2376   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
1806   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
23771807   ROM_LOAD16_BYTE( "136052-4205.200r", 0x000000, 0x010000, CRC(94db6d9e) SHA1(98a509daacb9f18c7171246d1782d09a6456e241) )
23781808   ROM_LOAD16_BYTE( "136052-4213.210r", 0x000001, 0x010000, CRC(cacaf671) SHA1(7bd0f531402b2f10cb00bb8f7ca0b62eed23bffa) )
23791809   ROM_LOAD16_BYTE( "136052-4206.200s", 0x020000, 0x010000, CRC(70f78c50) SHA1(6baed202937c455c7c6e4baa74ee7858673a37fc) )
r241777r241778
23831813   ROM_LOAD16_BYTE( "136052-4211.200x", 0x0c0000, 0x010000, CRC(20d1b3d5) SHA1(b7c4a2cf6ba729530c24980704989b3a3efb343b) )
23841814   ROM_LOAD16_BYTE( "136052-4219.210x", 0x0c0001, 0x010000, CRC(105e7052) SHA1(a8d13c35418e58410cfd74c243b74963f1553068) )
23851815
2386   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
1816   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
23871817   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
23881818   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
23891819
2390   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
1820   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
23911821   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
23921822   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
23931823   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
23941824   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
23951825
2396   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
1826   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
23971827   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
23981828   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
23991829   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
24001830   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
24011831
2402   ROM_REGION( 0x800, "mainpcb:200e", 0 )
1832   ROM_REGION( 0x800, "200e", 0 )
24031833   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
24041834
2405   ROM_REGION( 0x800, "mainpcb:210e", 0 )
1835   ROM_REGION( 0x800, "210e", 0 )
24061836   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
24071837ROM_END
24081838
24091839
24101840ROM_START( harddriv3 )
2411   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
1841   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
24121842   ROM_LOAD16_BYTE( "136052-3105.200r", 0x000000, 0x010000, CRC(a42a2c69) SHA1(66233f25533106aab69df21db69f96368f1399a9) )
24131843   ROM_LOAD16_BYTE( "136052-3113.210r", 0x000001, 0x010000, CRC(358995b5) SHA1(f18c0da58ec7befefc61d5f0d35787516b775c92) )
24141844   ROM_LOAD16_BYTE( "136052-2106.200s", 0x020000, 0x010000, CRC(a668db0e) SHA1(8ac405a0ba12bac9acabdb64970608d1b2b1a99b) )
r241777r241778
24181848   ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
24191849   ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
24201850
2421   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
1851   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
24221852   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
24231853   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
24241854
2425   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
1855   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
24261856   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
24271857   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
24281858   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
24291859   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
24301860
2431   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
1861   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
24321862   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
24331863   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
24341864   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
24351865   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
24361866
2437   ROM_REGION( 0x800, "mainpcb:200e", 0 )
1867   ROM_REGION( 0x800, "200e", 0 )
24381868   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
24391869
2440   ROM_REGION( 0x800, "mainpcb:210e", 0 )
1870   ROM_REGION( 0x800, "210e", 0 )
24411871   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
24421872ROM_END
24431873
24441874
24451875ROM_START( harddriv2 )
2446   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
1876   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
24471877   ROM_LOAD16_BYTE( "136052-2105.200r", 0x000000, 0x010000, CRC(967903b9) SHA1(4363f3b3f08d00819f47a3682462fd0e5dc4e0ac) )
24481878   ROM_LOAD16_BYTE( "136052-2113.210r", 0x000001, 0x010000, CRC(c87f7067) SHA1(3d85d2ba818739ed05086502cd8e57438251b20b) )
24491879   ROM_LOAD16_BYTE( "136052-2106.200s", 0x020000, 0x010000, CRC(a668db0e) SHA1(8ac405a0ba12bac9acabdb64970608d1b2b1a99b) )
r241777r241778
24531883   ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
24541884   ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
24551885
2456   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
1886   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
24571887   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
24581888   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
24591889
2460   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
1890   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
24611891   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
24621892   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
24631893   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
24641894   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
24651895
2466   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
1896   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
24671897   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
24681898   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
24691899   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
24701900   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
24711901
2472   ROM_REGION( 0x800, "mainpcb:200e", 0 )
1902   ROM_REGION( 0x800, "200e", 0 )
24731903   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
24741904
2475   ROM_REGION( 0x800, "mainpcb:210e", 0 )
1905   ROM_REGION( 0x800, "210e", 0 )
24761906   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
24771907ROM_END
24781908
24791909
24801910ROM_START( harddriv1 )
2481   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
1911   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
24821912   ROM_LOAD16_BYTE( "136052-1105.200r", 0x000000, 0x010000, CRC(1dfda789) SHA1(83be0d66fe21e974f8d4582b0ab60245f1db7e55) )
24831913   ROM_LOAD16_BYTE( "136052-1113.210r", 0x000001, 0x010000, CRC(db2f6593) SHA1(864ea5604cea2507b180a91b35e349d3924bf9bc) )
24841914   ROM_LOAD16_BYTE( "136052-1106.200s", 0x020000, 0x010000, CRC(e82210fd) SHA1(916e674017f5187531c2de7961791c060f8412c7) )
r241777r241778
24881918   ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
24891919   ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
24901920
2491   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
1921   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
24921922   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
24931923   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
24941924
2495   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
1925   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
24961926   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
24971927   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
24981928   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
24991929   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
25001930
2501   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
1931   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
25021932   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
25031933   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
25041934   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
25051935   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
25061936
2507   ROM_REGION( 0x800, "mainpcb:200e", 0 )
1937   ROM_REGION( 0x800, "200e", 0 )
25081938   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
25091939
2510   ROM_REGION( 0x800, "mainpcb:210e", 0 )
1940   ROM_REGION( 0x800, "210e", 0 )
25111941   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
25121942ROM_END
25131943
25141944
25151945ROM_START( harddrivc )
2516   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )    /* 1MB for 68000 code */
1946   ROM_REGION( 0x100000, "maincpu", 0 )    /* 1MB for 68000 code */
25171947   ROM_LOAD16_BYTE( "136068-2102.200r", 0x000000, 0x010000, CRC(6252048b) SHA1(64caf3adfad6965768fc6d39a8bcde62fe6dfa9e) )
25181948   ROM_LOAD16_BYTE( "136068-2101.210r", 0x000001, 0x010000, CRC(4805ba06) SHA1(e0c2d935ced05b8162f2925520422184a81d5294) )
25191949   ROM_LOAD16_BYTE( "136068-2104.200s", 0x020000, 0x010000, CRC(8246f945) SHA1(633b6c9a5d3e33d3035ccdb7b6ad883c334a4db9) )
r241777r241778
25231953   ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) )
25241954   ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) )
25251955
2526   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
1956   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
25271957   ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
25281958   ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
25291959
2530   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
1960   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
25311961   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
25321962   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
25331963   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
25341964   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
25351965
2536   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
1966   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
25371967   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
25381968   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
25391969   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
25401970   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
25411971
2542   ROM_REGION( 0x800, "mainpcb:200e", 0 )
1972   ROM_REGION( 0x800, "200e", 0 )
25431973   ROM_LOAD( "harddrivc.200e",  0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) )
25441974
2545   ROM_REGION( 0x800, "mainpcb:210e", 0 )
1975   ROM_REGION( 0x800, "210e", 0 )
25461976   ROM_LOAD( "harddrivc.210e",  0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) )
25471977ROM_END
25481978
25491979
25501980ROM_START( harddrivcg )
2551   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )    /* 1MB for 68000 code */
1981   ROM_REGION( 0x100000, "maincpu", 0 )    /* 1MB for 68000 code */
25521982   ROM_LOAD16_BYTE( "136068-2202.200r", 0x000000, 0x010000, CRC(ea09bdc2) SHA1(9e38ed0a47a2bfb6b80cbf1e0b3e891b94f30c10) )
25531983   ROM_LOAD16_BYTE( "136068-2201.210r", 0x000001, 0x010000, CRC(a5e9947f) SHA1(75973346c9399752d8ae82fbada3a24c6d5fec94) )
25541984   ROM_LOAD16_BYTE( "136068-2204.200s", 0x020000, 0x010000, CRC(65792c94) SHA1(89e93cf0d2afc4bd8a01155ba908c9aa7149dc78) )
r241777r241778
25581988   ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) )
25591989   ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) )
25601990
2561   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
1991   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
25621992   ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
25631993   ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
25641994
2565   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
1995   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
25661996   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
25671997   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
25681998   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
25691999   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
25702000
2571   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
2001   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
25722002   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
25732003   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
25742004   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
25752005   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
25762006
2577   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2007   ROM_REGION( 0x800, "200e", 0 )
25782008   ROM_LOAD( "harddrivc.200e",  0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) )
25792009
2580   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2010   ROM_REGION( 0x800, "210e", 0 )
25812011   ROM_LOAD( "harddrivc.210e",  0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) )
25822012ROM_END
25832013
25842014
25852015ROM_START( harddrivcb )
2586   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )    /* 1MB for 68000 code */
2016   ROM_REGION( 0x100000, "maincpu", 0 )    /* 1MB for 68000 code */
25872017   ROM_LOAD16_BYTE( "136068-2102.200r", 0x000000, 0x010000, CRC(6252048b) SHA1(64caf3adfad6965768fc6d39a8bcde62fe6dfa9e) )
25882018   ROM_LOAD16_BYTE( "136068-2101.210r", 0x000001, 0x010000, CRC(4805ba06) SHA1(e0c2d935ced05b8162f2925520422184a81d5294) )
25892019   ROM_LOAD16_BYTE( "136068-2104.200s", 0x020000, 0x010000, CRC(8246f945) SHA1(633b6c9a5d3e33d3035ccdb7b6ad883c334a4db9) )
r241777r241778
25932023   ROM_LOAD16_BYTE( "136068-2914.200x", 0x0c0000, 0x010000, CRC(dd2998a5) SHA1(36c71549d114309b9072ced83ed149cad1d23646) )
25942024   ROM_LOAD16_BYTE( "136068-2913.210x", 0x0c0001, 0x010000, CRC(a211754d) SHA1(b93d4867f664caa76f2170ef0934194de29a5516) )
25952025
2596   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
2026   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
25972027   ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
25982028   ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
25992029
2600   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2030   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
26012031   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
26022032   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
26032033   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
26042034   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
26052035
2606   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
2036   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
26072037   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
26082038   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
26092039   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
26102040   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
26112041
2612   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2042   ROM_REGION( 0x800, "200e", 0 )
26132043   ROM_LOAD( "harddrivc.200e",  0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) )
26142044
2615   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2045   ROM_REGION( 0x800, "210e", 0 )
26162046   ROM_LOAD( "harddrivc.210e",  0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) )
26172047ROM_END
26182048
26192049
26202050ROM_START( harddrivc1 )
2621   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )    /* 1MB for 68000 code */
2051   ROM_REGION( 0x100000, "maincpu", 0 )    /* 1MB for 68000 code */
26222052   ROM_LOAD16_BYTE( "136068-1102.200r", 0x000000, 0x010000, CRC(f1d3779f) SHA1(1ab84fc920f6810aa7c1af80b0472ea17d07e58b) )
26232053   ROM_LOAD16_BYTE( "136068-1101.210r", 0x000001, 0x010000, CRC(3ea4d3d9) SHA1(3901e8c07bed35bf6a55ab92f5c7eb9335675792) )
26242054   ROM_LOAD16_BYTE( "136068-1104.200s", 0x020000, 0x010000, CRC(34133511) SHA1(71c56607cecd379761f700d181f6e91e7bb6fdfc) )
r241777r241778
26282058   ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) )
26292059   ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) )
26302060
2631   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
2061   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
26322062   ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
26332063   ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
26342064
2635   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2065   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
26362066   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
26372067   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
26382068   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
26392069   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
26402070
2641   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
2071   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
26422072   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
26432073   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
26442074   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
26452075   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
26462076
2647   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2077   ROM_REGION( 0x800, "200e", 0 )
26482078   ROM_LOAD( "harddrivc.200e",  0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) )
26492079
2650   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2080   ROM_REGION( 0x800, "210e", 0 )
26512081   ROM_LOAD( "harddrivc.210e",  0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) )
26522082ROM_END
26532083
26542084
26552085ROM_START( stunrun )
2656   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2086   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
26572087   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
26582088   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
26592089   ROM_LOAD16_BYTE( "136070-6104.200s", 0x020000, 0x010000, CRC(f469f91c) SHA1(488ea6251ff4028edaf00bb1ded74cefdc71a373) )
r241777r241778
26672097   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
26682098   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
26692099
2670   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
2100   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
26712101   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
26722102   ROM_CONTINUE(             0x004000, 0x00c000 )
26732103
2674   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2104   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
26752105   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
26762106   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
26772107   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241777r241778
26792109   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
26802110   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
26812111
2682   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
2112   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
26832113   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
26842114   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
26852115   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
26862116   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
26872117
2688   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2118   ROM_REGION( 0x800, "200e", 0 )
26892119   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
26902120
2691   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2121   ROM_REGION( 0x800, "210e", 0 )
26922122   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
26932123ROM_END
26942124
26952125
26962126ROM_START( stunrunj )
2697   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2127   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
26982128   ROM_LOAD16_BYTE( "136070-3402.200r", 0x000000, 0x010000, CRC(d8d56923) SHA1(248b22dab791c2d9ee6e6097dac9f3bf85d572be) )
26992129   ROM_LOAD16_BYTE( "136070-3401.210r", 0x000001, 0x010000, CRC(ce11126c) SHA1(cf27b56103048cc23dc6763763b7419583a27c76) )
27002130   ROM_LOAD16_BYTE( "136070-7404.200s", 0x020000, 0x010000, CRC(81da3e74) SHA1(38864aac479a8927d168ee977fd0981a7926d0fd) )
r241777r241778
27082138   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
27092139   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
27102140
2711   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
2141   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
27122142   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
27132143   ROM_CONTINUE(             0x004000, 0x00c000 )
27142144
2715   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2145   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
27162146   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
27172147   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
27182148   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241777r241778
27202150   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
27212151   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
27222152
2723   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
2153   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
27242154   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
27252155   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
27262156   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
27272157   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
27282158
2729   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2159   ROM_REGION( 0x800, "200e", 0 )
27302160   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
27312161
2732   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2162   ROM_REGION( 0x800, "210e", 0 )
27332163   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
27342164ROM_END
27352165
27362166
27372167ROM_START( stunrun5 )
2738   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2168   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
27392169   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
27402170   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
27412171   ROM_LOAD16_BYTE( "136070-5104.200s", 0x020000, 0x010000, CRC(d5c601fe) SHA1(ab61e11723ab9b92fb98b6f8e520a7b323caae64) )
r241777r241778
27492179   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
27502180   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
27512181
2752   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
2182   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
27532183   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
27542184   ROM_CONTINUE(             0x004000, 0x00c000 )
27552185
2756   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2186   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
27572187   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
27582188   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
27592189   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241777r241778
27612191   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
27622192   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
27632193
2764   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
2194   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
27652195   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
27662196   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
27672197   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
27682198   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
27692199
2770   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2200   ROM_REGION( 0x800, "200e", 0 )
27712201   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
27722202
2773   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2203   ROM_REGION( 0x800, "210e", 0 )
27742204   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
27752205ROM_END
27762206
27772207
27782208ROM_START( stunrune )
2779   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2209   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
27802210   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
27812211   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
27822212   ROM_LOAD16_BYTE( "136070-5004.200s", 0x020000, 0x010000, CRC(c2e4bde8) SHA1(766242455b0be6dc7b698cc6fe86d90991ca2e0a) )
r241777r241778
27902220   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
27912221   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
27922222
2793   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
2223   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
27942224   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
27952225   ROM_CONTINUE(             0x004000, 0x00c000 )
27962226
2797   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2227   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
27982228   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
27992229   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
28002230   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241777r241778
28022232   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
28032233   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
28042234
2805   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
2235   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
28062236   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
28072237   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
28082238   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
28092239   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
28102240
2811   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2241   ROM_REGION( 0x800, "200e", 0 )
28122242   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
28132243
2814   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2244   ROM_REGION( 0x800, "210e", 0 )
28152245   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
28162246ROM_END
28172247
28182248
28192249ROM_START( stunrun4 )
2820   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2250   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
28212251   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
28222252   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
28232253   ROM_LOAD16_BYTE( "136070-4104.200s", 0x020000, 0x010000, CRC(62c7700b) SHA1(31d7a39df7353e60b806c204bfdd75c06b17c984) )
r241777r241778
28312261   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
28322262   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
28332263
2834   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
2264   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
28352265   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
28362266   ROM_CONTINUE(             0x004000, 0x00c000 )
28372267
2838   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2268   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
28392269   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
28402270   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
28412271   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241777r241778
28432273   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
28442274   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
28452275
2846   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
2276   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
28472277   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
28482278   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
28492279   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
28502280   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
28512281
2852   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2282   ROM_REGION( 0x800, "200e", 0 )
28532283   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
28542284
2855   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2285   ROM_REGION( 0x800, "210e", 0 )
28562286   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
28572287ROM_END
28582288
28592289
28602290ROM_START( stunrun3 )
2861   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2291   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
28622292   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
28632293   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
28642294   ROM_LOAD16_BYTE( "136070-2104.200s", 0x020000, 0x010000, CRC(6acdeeaa) SHA1(a4cbe648ad2fee3bb945fbc8055b76be1f5c03d1) )
r241777r241778
28722302   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
28732303   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
28742304
2875   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
2305   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
28762306   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
28772307   ROM_CONTINUE(             0x004000, 0x00c000 )
28782308
2879   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2309   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
28802310   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
28812311   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
28822312   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241777r241778
28842314   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
28852315   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
28862316
2887   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
2317   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
28882318   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
28892319   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
28902320   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
28912321   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
28922322
2893   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2323   ROM_REGION( 0x800, "200e", 0 )
28942324   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
28952325
2896   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2326   ROM_REGION( 0x800, "210e", 0 )
28972327   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
28982328ROM_END
28992329
29002330
29012331ROM_START( stunrun3e )
2902   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2332   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
29032333   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
29042334   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
29052335   ROM_LOAD16_BYTE( "136070-3004.200s", 0x020000, 0x010000, CRC(d9474678) SHA1(090b78f9e9d2ecf4218821fc102861df1e27d95a) )
r241777r241778
29132343   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
29142344   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
29152345
2916   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
2346   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
29172347   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
29182348   ROM_CONTINUE(             0x004000, 0x00c000 )
29192349
2920   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2350   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
29212351   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
29222352   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
29232353   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241777r241778
29252355   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
29262356   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
29272357
2928   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
2358   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
29292359   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
29302360   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
29312361   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
29322362   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
29332363
2934   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2364   ROM_REGION( 0x800, "200e", 0 )
29352365   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
29362366
2937   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2367   ROM_REGION( 0x800, "210e", 0 )
29382368   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
29392369ROM_END
29402370
29412371
29422372ROM_START( stunrun2 )
2943   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2373   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
29442374   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
29452375   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
29462376   ROM_LOAD16_BYTE( "136070-2104.200s", 0x020000, 0x010000, CRC(6acdeeaa) SHA1(a4cbe648ad2fee3bb945fbc8055b76be1f5c03d1) )
r241777r241778
29542384   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
29552385   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
29562386
2957   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
2387   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
29582388   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
29592389   ROM_CONTINUE(             0x004000, 0x00c000 )
29602390
2961   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2391   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
29622392   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
29632393   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
29642394   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241777r241778
29662396   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
29672397   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
29682398
2969   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
2399   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
29702400   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
29712401   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
29722402   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
29732403   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
29742404
2975   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2405   ROM_REGION( 0x800, "200e", 0 )
29762406   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
29772407
2978   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2408   ROM_REGION( 0x800, "210e", 0 )
29792409   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
29802410ROM_END
29812411
29822412
29832413ROM_START( stunrun2e )
2984   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2414   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
29852415   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
29862416   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
29872417   ROM_LOAD16_BYTE( "136070-2004.200s", 0x020000, 0x010000, CRC(30303326) SHA1(49a279b5b02af97395dfb8c66410319a807aa4b9) )
r241777r241778
29952425   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
29962426   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
29972427
2998   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
2428   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
29992429   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
30002430   ROM_CONTINUE(             0x004000, 0x00c000 )
30012431
3002   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2432   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
30032433   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
30042434   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
30052435   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241777r241778
30072437   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
30082438   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
30092439
3010   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
2440   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
30112441   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
30122442   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
30132443   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
30142444   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
30152445
3016   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2446   ROM_REGION( 0x800, "200e", 0 )
30172447   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
30182448
3019   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2449   ROM_REGION( 0x800, "210e", 0 )
30202450   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
30212451ROM_END
30222452
30232453
30242454ROM_START( stunrun0 )
3025   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2455   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
30262456   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
30272457   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
30282458   ROM_LOAD16_BYTE( "136070-0304.200s", 0x020000, 0x010000, CRC(e7968b1b) SHA1(f2e5b4f64e553041abbe2610968f59cca425a4d4) )
r241777r241778
30362466   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
30372467   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
30382468
3039   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
2469   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
30402470   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
30412471   ROM_CONTINUE(             0x004000, 0x00c000 )
30422472
3043   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2473   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
30442474   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
30452475   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
30462476   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241777r241778
30482478   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
30492479   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
30502480
3051   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
2481   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
30522482   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
30532483   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
30542484   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
30552485   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
30562486
3057   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2487   ROM_REGION( 0x800, "200e", 0 )
30582488   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
30592489
3060   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2490   ROM_REGION( 0x800, "210e", 0 )
30612491   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
30622492ROM_END
30632493
30642494
30652495ROM_START( stunrunp )
3066   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2496   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
30672497   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
30682498   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
30692499   ROM_LOAD16_BYTE( "prog-hi0.s20", 0x020000, 0x010000, CRC(0be15a99) SHA1(52b152b23af305e95765c72052bb7aba846510d6) )
r241777r241778
30772507   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
30782508   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
30792509
3080   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
2510   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
30812511   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
30822512   ROM_CONTINUE(             0x004000, 0x00c000 )
30832513
3084   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2514   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
30852515   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
30862516   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
30872517   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241777r241778
30892519   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
30902520   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
30912521
3092   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
2522   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
30932523   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
30942524   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
30952525   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
30962526   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
30972527
3098   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2528   ROM_REGION( 0x800, "200e", 0 )
30992529   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
31002530
3101   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2531   ROM_REGION( 0x800, "210e", 0 )
31022532   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
31032533ROM_END
31042534
31052535
31062536ROM_START( racedriv )
3107   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2537   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
31082538   ROM_LOAD16_BYTE( "136077-5002.200r", 0x000000, 0x010000, CRC(0a78adca) SHA1(a44722340ff7c99253107be092bec2e87cae340b) )
31092539   ROM_LOAD16_BYTE( "136077-5001.210r", 0x000001, 0x010000, CRC(74b4cd49) SHA1(48fc4344c092c9eb14249874ac305b87bba53e7e) )
31102540   ROM_LOAD16_BYTE( "136077-5004.200s", 0x020000, 0x010000, CRC(c0cbdf4e) SHA1(8c7f4f79e90dc7206d9d83d588822000a7a53c52) )
r241777r241778
31222552   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
31232553   ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) )
31242554
3125   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
2555   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
31262556   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
31272557
3128   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
2558   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
31292559   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
31302560   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
31312561
3132   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2562   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
31332563   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
31342564   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
31352565   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
31362566   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
31372567
3138   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
2568   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
31392569   ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) )
31402570   ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) )
31412571
3142   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
2572   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
31432573   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
31442574   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
31452575   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
31462576   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
31472577   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
31482578
3149   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2579   ROM_REGION( 0x800, "200e", 0 )
31502580   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
31512581
3152   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2582   ROM_REGION( 0x800, "210e", 0 )
31532583   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
31542584ROM_END
31552585
31562586
31572587ROM_START( racedrivb )
3158   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2588   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
31592589   ROM_LOAD16_BYTE( "136077-5002.200r", 0x000000, 0x010000, CRC(0a78adca) SHA1(a44722340ff7c99253107be092bec2e87cae340b) )
31602590   ROM_LOAD16_BYTE( "136077-5001.210r", 0x000001, 0x010000, CRC(74b4cd49) SHA1(48fc4344c092c9eb14249874ac305b87bba53e7e) )
31612591   ROM_LOAD16_BYTE( "136077-5004.200s", 0x020000, 0x010000, CRC(c0cbdf4e) SHA1(8c7f4f79e90dc7206d9d83d588822000a7a53c52) )
r241777r241778
31732603   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
31742604   ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) )
31752605
3176   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
2606   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
31772607   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
31782608
3179   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
2609   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
31802610   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
31812611   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
31822612
3183   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2613   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
31842614   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
31852615   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
31862616   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
31872617   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
31882618
3189   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
2619   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
31902620   ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) )
31912621   ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) )
31922622
3193   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
2623   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
31942624   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
31952625   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
31962626   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
31972627   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
31982628   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
31992629
3200   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2630   ROM_REGION( 0x800, "200e", 0 )
32012631   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
32022632
3203   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2633   ROM_REGION( 0x800, "210e", 0 )
32042634   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
32052635ROM_END
32062636
32072637
32082638ROM_START( racedrivg )
3209   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2639   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
32102640   ROM_LOAD16_BYTE( "136077-5202.200r", 0x000000, 0x010000, CRC(69016b69) SHA1(8da1314b4b6da6fc95479b9034190181bf778b25) )
32112641   ROM_LOAD16_BYTE( "136077-5201.210r", 0x000001, 0x010000, CRC(439a1ce7) SHA1(fc376c654c494d2895bcf85d5d8a9d6f17b6887e) )
32122642   ROM_LOAD16_BYTE( "136077-5204.200s", 0x020000, 0x010000, CRC(15df2b3d) SHA1(49235687b7be684dcd491b854f80c1d849894956) )
r241777r241778
32242654   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
32252655   ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) )
32262656
3227   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
2657   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
32282658   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
32292659
3230   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
2660   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
32312661   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
32322662   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
32332663
3234   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2664   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
32352665   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
32362666   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
32372667   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
32382668   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
32392669
3240   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
2670   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
32412671   ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) )
32422672   ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) )
32432673
3244   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
2674   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
32452675   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
32462676   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
32472677   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
32482678   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
32492679   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
32502680
3251   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2681   ROM_REGION( 0x800, "200e", 0 )
32522682   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
32532683
3254   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2684   ROM_REGION( 0x800, "210e", 0 )
32552685   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
32562686ROM_END
32572687
32582688
32592689ROM_START( racedriv4 )
3260   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2690   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
32612691   ROM_LOAD16_BYTE( "136077-4002.200r", 0x000000, 0x010000, CRC(afe1beb5) SHA1(66dba58f2a02eaa2d6306e53adffb662a8021031) )
32622692   ROM_LOAD16_BYTE( "136077-4001.210r", 0x000001, 0x010000, CRC(8a449e44) SHA1(03800b96a3992baa4bd37db20e559e08b12e55d1) )
32632693   ROM_LOAD16_BYTE( "136077-4004.200s", 0x020000, 0x010000, CRC(6d886150) SHA1(514de55de66a2b7fb14d6e2d896911e1b1af62f2) )
r241777r241778
32752705   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
32762706   ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) )
32772707
3278   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
2708   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
32792709   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
32802710
3281   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
2711   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
32822712   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
32832713   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
32842714
3285   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2715   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
32862716   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
32872717   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
32882718   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
32892719   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
32902720
3291   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
2721   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
32922722   ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) )
32932723   ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) )
32942724
3295   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
2725   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
32962726   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
32972727   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
32982728   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
32992729   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
33002730   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
33012731
3302   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2732   ROM_REGION( 0x800, "200e", 0 )
33032733   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
33042734
3305   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2735   ROM_REGION( 0x800, "210e", 0 )
33062736   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
33072737ROM_END
33082738
33092739
33102740ROM_START( racedrivb4 )
3311   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2741   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
33122742   ROM_LOAD16_BYTE( "136077-4002.200r", 0x000000, 0x010000, CRC(afe1beb5) SHA1(66dba58f2a02eaa2d6306e53adffb662a8021031) )
33132743   ROM_LOAD16_BYTE( "136077-4001.210r", 0x000001, 0x010000, CRC(8a449e44) SHA1(03800b96a3992baa4bd37db20e559e08b12e55d1) )
33142744   ROM_LOAD16_BYTE( "136077-4004.200s", 0x020000, 0x010000, CRC(6d886150) SHA1(514de55de66a2b7fb14d6e2d896911e1b1af62f2) )
r241777r241778
33262756   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
33272757   ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) )
33282758
3329   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
2759   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
33302760   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
33312761
3332   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
2762   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
33332763   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
33342764   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
33352765
3336   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2766   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
33372767   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
33382768   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
33392769   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
33402770   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
33412771
3342   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
2772   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
33432773   ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) )
33442774   ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) )
33452775
3346   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
2776   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
33472777   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
33482778   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
33492779   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
33502780   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
33512781   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
33522782
3353   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2783   ROM_REGION( 0x800, "200e", 0 )
33542784   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
33552785
3356   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2786   ROM_REGION( 0x800, "210e", 0 )
33572787   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
33582788ROM_END
33592789
33602790
33612791ROM_START( racedrivg4 )
3362   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2792   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
33632793   ROM_LOAD16_BYTE( "136077-4202.200r", 0x000000, 0x010000, CRC(a8c7e15e) SHA1(6aa4b819e5c8562c8eef92a411b2dc91ed35ae4c) )
33642794   ROM_LOAD16_BYTE( "136077-4201.210r", 0x000001, 0x010000, CRC(1dfa4df2) SHA1(1db0676f0ff1e7996c9791b041d9cd4ca9c70261) )
33652795   ROM_LOAD16_BYTE( "136077-4204.200s", 0x020000, 0x010000, CRC(29eea8c1) SHA1(1a8020efc0b963bbd05bd33dc3176db7c3234fcc) )
r241777r241778
33772807   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
33782808   ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) )
33792809
3380   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
2810   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
33812811   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
33822812
3383   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
2813   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
33842814   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
33852815   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
33862816
3387   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2817   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
33882818   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
33892819   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
33902820   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
33912821   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
33922822
3393   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
2823   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
33942824   ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) )
33952825   ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) )
33962826
3397   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
2827   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
33982828   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
33992829   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
34002830   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
34012831   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
34022832   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
34032833
3404   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2834   ROM_REGION( 0x800, "200e", 0 )
34052835   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
34062836
3407   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2837   ROM_REGION( 0x800, "210e", 0 )
34082838   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
34092839ROM_END
34102840
34112841
34122842ROM_START( racedriv3 )
3413   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2843   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
34142844   ROM_LOAD16_BYTE( "136077-3002.200r", 0x000000, 0x010000, CRC(78771253) SHA1(88fdae99eb4feb40db8ad171b3435315db3adedb) )
34152845   ROM_LOAD16_BYTE( "136077-3001.210r", 0x000001, 0x010000, CRC(c75373a4) SHA1(d2f14190218cfedf4478806a26c77edd4d7c73eb) )
34162846   ROM_LOAD16_BYTE( "136077-2004.200s", 0x020000, 0x010000, CRC(4eb19582) SHA1(52359d7839f3459aec4fdc16a659a29fa60feee4) )
r241777r241778
34282858   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
34292859   ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) )
34302860
3431   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
2861   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
34322862   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
34332863
3434   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
2864   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
34352865   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
34362866   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
34372867
3438   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2868   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
34392869   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
34402870   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
34412871   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
34422872   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
34432873
3444   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
2874   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
34452875   ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) )
34462876   ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) )
34472877
3448   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
2878   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
34492879   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
34502880   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
34512881   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
34522882   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
34532883   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
34542884
3455   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2885   ROM_REGION( 0x800, "200e", 0 )
34562886   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
34572887
3458   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2888   ROM_REGION( 0x800, "210e", 0 )
34592889   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
34602890ROM_END
34612891
34622892
34632893ROM_START( racedriv2 )
3464   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2894   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
34652895   ROM_LOAD16_BYTE( "136077-2002.200r", 0x000000, 0x010000, CRC(6b440e10) SHA1(8074a1de01e2cdc497a51339f9c05329d6f540b0) )
34662896   ROM_LOAD16_BYTE( "136077-2001.210r", 0x000001, 0x010000, CRC(eee12973) SHA1(0cd2e88c431d08fba5a73c903327f39f8692f3aa) )
34672897   ROM_LOAD16_BYTE( "136077-2004.200s", 0x020000, 0x010000, CRC(4eb19582) SHA1(52359d7839f3459aec4fdc16a659a29fa60feee4) )
r241777r241778
34792909   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
34802910   ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) )
34812911
3482   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
2912   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
34832913   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
34842914
3485   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
2915   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
34862916   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
34872917   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
34882918
3489   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2919   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
34902920   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
34912921   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
34922922   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
34932923   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
34942924
3495   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
2925   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
34962926   ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) )
34972927   ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) )
34982928
3499   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
2929   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
35002930   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
35012931   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
35022932   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
35032933   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
35042934   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
35052935
3506   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2936   ROM_REGION( 0x800, "200e", 0 )
35072937   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
35082938
3509   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2939   ROM_REGION( 0x800, "210e", 0 )
35102940   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
35112941ROM_END
35122942
35132943
35142944ROM_START( racedriv1 )
3515   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2945   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
35162946   ROM_LOAD16_BYTE( "136077-1002.200r", 0x000000, 0x010000, CRC(d39f6d53) SHA1(c278cd4109a65304a21dd1d8ba27375713a8b107) )
35172947   ROM_LOAD16_BYTE( "136077-1001.210r", 0x000001, 0x010000, CRC(e29e011c) SHA1(7044e7f9c8551309b5867a06672796411007a427) )
35182948   ROM_LOAD16_BYTE( "136077-1004.200s", 0x020000, 0x010000, CRC(809831e8) SHA1(681160deceff4df0f000c23f8514086dbbcc0c8d) )
r241777r241778
35302960   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
35312961   ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) )
35322962
3533   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
2963   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
35342964   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
35352965
3536   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
2966   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
35372967   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
35382968   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
35392969
3540   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
2970   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
35412971   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
35422972   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
35432973   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
35442974   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
35452975
3546   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
2976   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
35472977   ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) )
35482978   ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) )
35492979
3550   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
2980   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
35512981   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
35522982   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
35532983   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
35542984   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
35552985   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
35562986
3557   ROM_REGION( 0x800, "mainpcb:200e", 0 )
2987   ROM_REGION( 0x800, "200e", 0 )
35582988   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
35592989
3560   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2990   ROM_REGION( 0x800, "210e", 0 )
35612991   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
35622992ROM_END
35632993
35642994
35652995ROM_START( racedrivg1 )
3566   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
2996   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
35672997   ROM_LOAD16_BYTE( "136077-1202.200r", 0x000000, 0x010000, CRC(bd363903) SHA1(8f0937725adabf5ee9e0ac015c83916e2575670a) )
35682998   ROM_LOAD16_BYTE( "136077-1201.210r", 0x000001, 0x010000, CRC(748c3be4) SHA1(ddf149f333d23e9c782ae447f6fb3f780680b3f5) )
35692999   ROM_LOAD16_BYTE( "136077-1204.200s", 0x020000, 0x010000, CRC(aef103bb) SHA1(52831858d3a45ad00e156c5b2a11e7fddf06bead) )
r241777r241778
35813011   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
35823012   ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) )
35833013
3584   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3014   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
35853015   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
35863016
3587   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
3017   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
35883018   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
35893019   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
35903020
3591   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
3021   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
35923022   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
35933023   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
35943024   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
35953025   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
35963026
3597   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3027   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
35983028   ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) )
35993029   ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) )
36003030
3601   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
3031   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
36023032   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
36033033   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
36043034   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
36053035   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
36063036   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
36073037
3608   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3038   ROM_REGION( 0x800, "200e", 0 )
36093039   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
36103040
3611   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3041   ROM_REGION( 0x800, "210e", 0 )
36123042   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
36133043ROM_END
36143044
36153045
36163046ROM_START( racedrivb1 )
3617   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
3047   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
36183048   ROM_LOAD16_BYTE( "136077-2002.200r", 0x000000, 0x010000, CRC(6b440e10) SHA1(8074a1de01e2cdc497a51339f9c05329d6f540b0) )
36193049   ROM_LOAD16_BYTE( "136077-2001.210r", 0x000001, 0x010000, CRC(eee12973) SHA1(0cd2e88c431d08fba5a73c903327f39f8692f3aa) )
36203050   ROM_LOAD16_BYTE( "136077-1104.200s", 0x020000, 0x010000, CRC(a9495f53) SHA1(68e7d983c0e1a84f5ad0743a230e6126169a6fd6) )
r241777r241778
36323062   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
36333063   ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) )
36343064
3635   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3065   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
36363066   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
36373067
3638   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
3068   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
36393069   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
36403070   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
36413071
3642   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
3072   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
36433073   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
36443074   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
36453075   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
36463076   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
36473077
3648   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3078   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
36493079   ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) )
36503080   ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) )
36513081
3652   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
3082   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
36533083   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
36543084   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
36553085   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
36563086   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
36573087   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
36583088
3659   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3089   ROM_REGION( 0x800, "200e", 0 )
36603090   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
36613091
3662   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3092   ROM_REGION( 0x800, "210e", 0 )
36633093   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
36643094ROM_END
36653095
36663096
36673097ROM_START( racedrivc )
3668   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
3098   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
36693099   ROM_LOAD16_BYTE( "136078-5002.200r", 0x000000, 0x010000, CRC(ae8f79bd) SHA1(054f2d1948d6d03832c4557c3dd7667c0784716d) )
36703100   ROM_LOAD16_BYTE( "136078-5001.210r", 0x000001, 0x010000, CRC(ad896e7f) SHA1(7b047f0c972fac075db00faf19cdf9ccdcef5c63) )
36713101   ROM_LOAD16_BYTE( "136078-5004.200s", 0x020000, 0x010000, CRC(b8650bee) SHA1(a9905081e622e4a4fcec9aa08b87566ecdb9198b) )
r241777r241778
36833113   ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) )
36843114   ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) )
36853115
3686   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3116   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
36873117   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
36883118
3689   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
3119   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
36903120   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
36913121   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
36923122
3693   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
3123   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
36943124   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
36953125   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
36963126   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
36973127   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
36983128
3699   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3129   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
37003130   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
37013131   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
37023132
3703   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
3133   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
37043134   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
37053135   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
37063136   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
37073137   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
37083138   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
37093139
3710   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3140   ROM_REGION( 0x800, "200e", 0 )
37113141   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
37123142
3713   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3143   ROM_REGION( 0x800, "210e", 0 )
37143144   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
37153145ROM_END
37163146
37173147
37183148ROM_START( racedrivcb )
3719   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
3149   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
37203150   ROM_LOAD16_BYTE( "136078-5002.200r", 0x000000, 0x010000, CRC(ae8f79bd) SHA1(054f2d1948d6d03832c4557c3dd7667c0784716d) )
37213151   ROM_LOAD16_BYTE( "136078-5001.210r", 0x000001, 0x010000, CRC(ad896e7f) SHA1(7b047f0c972fac075db00faf19cdf9ccdcef5c63) )
37223152   ROM_LOAD16_BYTE( "136078-5004.200s", 0x020000, 0x010000, CRC(b8650bee) SHA1(a9905081e622e4a4fcec9aa08b87566ecdb9198b) )
r241777r241778
37343164   ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) )
37353165   ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) )
37363166
3737   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3167   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
37383168   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
37393169
3740   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
3170   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
37413171   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
37423172   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
37433173
3744   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
3174   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
37453175   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
37463176   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
37473177   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
37483178   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
37493179
3750   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3180   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
37513181   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
37523182   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
37533183
3754   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
3184   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
37553185   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
37563186   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
37573187   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
37583188   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
37593189   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
37603190
3761   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3191   ROM_REGION( 0x800, "200e", 0 )
37623192   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
37633193
3764   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3194   ROM_REGION( 0x800, "210e", 0 )
37653195   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
37663196ROM_END
37673197
37683198
37693199ROM_START( racedrivcg )
3770   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
3200   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
37713201   ROM_LOAD16_BYTE( "136078-5202.200r", 0x000000, 0x010000, CRC(c37b5281) SHA1(1ff7a879853dd1e10881fd56e8ae0962676ef319) )
37723202   ROM_LOAD16_BYTE( "136078-5201.210r", 0x000001, 0x010000, CRC(80072dad) SHA1(ba33465f639431cf6e9ce377ed31e538a0304dc5) )
37733203   ROM_LOAD16_BYTE( "136078-5204.200s", 0x020000, 0x010000, CRC(5d45fbd2) SHA1(5279c814c2876c642630fed5c114eccea6d703b0) )
r241777r241778
37853215   ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) )
37863216   ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) )
37873217
3788   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3218   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
37893219   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
37903220
3791   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
3221   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
37923222   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
37933223   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
37943224
3795   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
3225   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
37963226   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
37973227   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
37983228   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
37993229   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
38003230
3801   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3231   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
38023232   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
38033233   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
38043234
3805   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
3235   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
38063236   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
38073237   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
38083238   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
38093239   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
38103240   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
38113241
3812   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3242   ROM_REGION( 0x800, "200e", 0 )
38133243   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
38143244
3815   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3245   ROM_REGION( 0x800, "210e", 0 )
38163246   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
38173247ROM_END
38183248
38193249
38203250ROM_START( racedrivc4 )
3821   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
3251   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
38223252   ROM_LOAD16_BYTE( "136078-4002.200r", 0x000000, 0x010000, CRC(d6522b97) SHA1(0e4c4ce9f6147cc3878a3f1e60cf58f00bfe9e4c) )
38233253   ROM_LOAD16_BYTE( "136078-4001.210r", 0x000001, 0x010000, CRC(d658a8ed) SHA1(59d823d8150de62ba5c4fddf87584bd2044e87f7) )
38243254   ROM_LOAD16_BYTE( "136078-4004.200s", 0x020000, 0x010000, CRC(c8520b01) SHA1(f0bd0505cbf24f7e43dc2e775ecbbf0db5419b6e) )
r241777r241778
38363266   ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) )
38373267   ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) )
38383268
3839   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3269   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
38403270   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
38413271
3842   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
3272   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
38433273   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
38443274   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
38453275
3846   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
3276   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
38473277   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
38483278   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
38493279   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
38503280   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
38513281
3852   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3282   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
38533283   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
38543284   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
38553285
3856   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
3286   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
38573287   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
38583288   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
38593289   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
38603290   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
38613291   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
38623292
3863   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3293   ROM_REGION( 0x800, "200e", 0 )
38643294   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
38653295
3866   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3296   ROM_REGION( 0x800, "210e", 0 )
38673297   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
38683298ROM_END
38693299
38703300
38713301ROM_START( racedrivcb4 )
3872   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
3302   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
38733303   ROM_LOAD16_BYTE( "136078-4002.200r", 0x000000, 0x010000, CRC(d6522b97) SHA1(0e4c4ce9f6147cc3878a3f1e60cf58f00bfe9e4c) )
38743304   ROM_LOAD16_BYTE( "136078-4001.210r", 0x000001, 0x010000, CRC(d658a8ed) SHA1(59d823d8150de62ba5c4fddf87584bd2044e87f7) )
38753305   ROM_LOAD16_BYTE( "136078-4004.200s", 0x020000, 0x010000, CRC(c8520b01) SHA1(f0bd0505cbf24f7e43dc2e775ecbbf0db5419b6e) )
r241777r241778
38873317   ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) )
38883318   ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) )
38893319
3890   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3320   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
38913321   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
38923322
3893   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
3323   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
38943324   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
38953325   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
38963326
3897   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
3327   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
38983328   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
38993329   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
39003330   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
39013331   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
39023332
3903   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3333   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
39043334   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
39053335   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
39063336
3907   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
3337   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
39083338   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
39093339   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
39103340   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
39113341   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
39123342   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
39133343
3914   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3344   ROM_REGION( 0x800, "200e", 0 )
39153345   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
39163346
3917   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3347   ROM_REGION( 0x800, "210e", 0 )
39183348   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
39193349ROM_END
39203350
39213351
39223352ROM_START( racedrivcg4 )
3923   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
3353   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
39243354   ROM_LOAD16_BYTE( "136078-4202.200r", 0x000000, 0x010000, CRC(be58215d) SHA1(0497efbd696e8d2db4e42678dd6cfe6cd3f78688) )
39253355   ROM_LOAD16_BYTE( "136078-4201.210r", 0x000001, 0x010000, CRC(609c5f23) SHA1(a66e1f10f8ad9d25fca5b681ad543967287f2036) )
39263356   ROM_LOAD16_BYTE( "136078-4204.200s", 0x020000, 0x010000, CRC(2e590c4f) SHA1(dcb56bacdde17eade5b347d5549cec1de89774e6) )
r241777r241778
39383368   ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) )
39393369   ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) )
39403370
3941   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3371   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
39423372   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
39433373
3944   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
3374   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
39453375   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
39463376   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
39473377
3948   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
3378   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
39493379   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
39503380   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
39513381   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
39523382   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
39533383
3954   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3384   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
39553385   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
39563386   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
39573387
3958   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
3388   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
39593389   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
39603390   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
39613391   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
39623392   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
39633393   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
39643394
3965   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3395   ROM_REGION( 0x800, "200e", 0 )
39663396   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
39673397
3968   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3398   ROM_REGION( 0x800, "210e", 0 )
39693399   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
39703400ROM_END
39713401
39723402
39733403ROM_START( racedrivc2 )
3974   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
3404   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
39753405   ROM_LOAD16_BYTE( "136078-2002.200r", 0x000000, 0x010000, CRC(669fe6fe) SHA1(1775ee3ef4817f553113772cf0fb35cbbe2e73a5) )
39763406   ROM_LOAD16_BYTE( "136078-2001.210r", 0x000001, 0x010000, CRC(9312fd5f) SHA1(9dd1b30ebceedf50fb18d744540e2003a8110d09) )
39773407   ROM_LOAD16_BYTE( "136078-1004.200s", 0x020000, 0x010000, CRC(4a1beb65) SHA1(3a4e3dd07a1415aef27e8bbebe0503296dfc7586) )
r241777r241778
39893419   ROM_LOAD16_BYTE( "136078-1015.210y", 0x0e0001, 0x010000, CRC(64dd6040) SHA1(bcadf4f1d9a0685ca39af903d3342d590850513c) )
39903420   ROM_LOAD16_BYTE( "136078-1016.200y", 0x0e0000, 0x010000, CRC(a2a0ed28) SHA1(6f308a38594f7e54ebdd6983d28664ba595bc525) )
39913421
3992   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3422   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
39933423   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
39943424
3995   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
3425   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
39963426   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
39973427   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
39983428
3999   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
3429   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
40003430   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
40013431   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
40023432   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
40033433   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
40043434
4005   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3435   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
40063436   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
40073437   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
40083438
4009   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
3439   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
40103440   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
40113441   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
40123442   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
40133443   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
40143444   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
40153445
4016   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3446   ROM_REGION( 0x800, "200e", 0 )
40173447   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
40183448
4019   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3449   ROM_REGION( 0x800, "210e", 0 )
40203450   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
40213451ROM_END
40223452
40233453
40243454ROM_START( racedrivc1 )
4025   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
3455   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
40263456   ROM_LOAD16_BYTE( "136078-1002.200r", 0x000000, 0x010000, CRC(ed997f08) SHA1(9512f347120174345dbe8c756e5c239fdce438a5) )
40273457   ROM_LOAD16_BYTE( "136078-1001.210r", 0x000001, 0x010000, CRC(5540ee7d) SHA1(f1d16cfa20b61f1cf075e3275ea4af0b46aa5470) )
40283458   ROM_LOAD16_BYTE( "136078-1004.200s", 0x020000, 0x010000, CRC(4a1beb65) SHA1(3a4e3dd07a1415aef27e8bbebe0503296dfc7586) )
r241777r241778
40403470   ROM_LOAD16_BYTE( "136078-1015.210y", 0x0e0001, 0x010000, CRC(64dd6040) SHA1(bcadf4f1d9a0685ca39af903d3342d590850513c) )
40413471   ROM_LOAD16_BYTE( "136078-1016.200y", 0x0e0000, 0x010000, CRC(a2a0ed28) SHA1(6f308a38594f7e54ebdd6983d28664ba595bc525) )
40423472
4043   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3473   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
40443474   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
40453475
4046   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
3476   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
40473477   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
40483478   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
40493479
4050   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
3480   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
40513481   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
40523482   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
40533483   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
40543484   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
40553485
4056   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3486   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
40573487   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
40583488   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
40593489
4060   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
3490   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
40613491   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
40623492   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
40633493   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
40643494   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
40653495   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
40663496
4067   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3497   ROM_REGION( 0x800, "200e", 0 )
40683498   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
40693499
4070   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3500   ROM_REGION( 0x800, "210e", 0 )
40713501   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
40723502ROM_END
40733503
r241777r241778
41433573
41443574*/
41453575
4146// if the side video boards die you have to hook up inputs to them to reconfigure so we'll need some default NVRAMs
4147
41483576ROM_START( racedrivpan )
4149   ROM_REGION( 0x200000, "mainpcb:maincpu", 0 )        /* 2MB for 68000 code */
3577   ROM_REGION( 0x200000, "maincpu", 0 )        /* 2MB for 68000 code */
41503578   // Multisync PBB A045988 - Central Monitor
41513579   // boots with 'PROGRAM OK' when using standard Hard Drivin' board type (needs 137412-115 slapstic)
41523580   ROM_LOAD16_BYTE( "088-1002.bin", 0x000000, 0x010000, CRC(49a97391) SHA1(dbe4086cd87669a02d2a2133d0d9e2895946b383) )
r241777r241778
41663594   ROM_LOAD16_BYTE( "088-1016.bin", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) // == 136077-1016.200y
41673595   ROM_LOAD16_BYTE( "088-1015.bin", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) ) // == 136077-4015.210y
41683596
4169   ROM_REGION( 0x60000, "mainpcb:user1", 0 )       /* 384k for object ROM */
3597   // Multisync PCB (A046901) - Side Monitor
3598   // these will boot with 'PROGRAM OK' and display an empty side view, if you use the 'compact' type board driver
3599   //  there should be one board for each side.  (needs 137412-117 slapstic)
3600   ROM_REGION( 0x200000, "sidecpu", 0 )        /* 2MB for 68000 code */
3601   ROM_LOAD16_BYTE( "088-2002.bin", 0x000000, 0x010000, CRC(77724070) SHA1(5862f30f7e2ab9c0beb06cf5599bcb1ff97f3a47) )
3602   ROM_LOAD16_BYTE( "088-2001.bin", 0x000001, 0x010000, CRC(16ab2fff) SHA1(bf6dcefc98e1fe27bef0ddacc265d8782c486c83) )
3603   ROM_LOAD16_BYTE( "088-2004.bin", 0x020000, 0x010000, CRC(dccdb16b) SHA1(330cf39bcbdb9c73da48b4e947086a7988e37496) )
3604   ROM_LOAD16_BYTE( "088-2003.bin", 0x020001, 0x010000, CRC(132ef986) SHA1(106f1a23ac200a868959181fa1c47419806e8366) )
3605   ROM_LOAD16_BYTE( "088-2006.bin", 0x040000, 0x010000, CRC(de3a0c24) SHA1(1121b8a16ac11b2480f1c4336a5aa3271364f80e))
3606   ROM_LOAD16_BYTE( "088-2005.bin", 0x040001, 0x010000, CRC(96ad705f) SHA1(cc0bc7fdd2a5f91a5929b889607dcf7ad015bb95) )
3607   ROM_LOAD16_BYTE( "088-2008.bin", 0x060000, 0x010000, CRC(452d991c) SHA1(42dad0a93839a900c3571ce9e252e1c991a1da56) )
3608   ROM_LOAD16_BYTE( "088-2007.bin", 0x060001, 0x010000, CRC(d6f526d3) SHA1(8406917c91c1d3690379cb0bca5809d1db27abec) )
3609   ROM_LOAD16_BYTE( "088-2010.bin", 0x080000, 0x010000, CRC(775bca3d) SHA1(926b460faeb2aa46899432b3a9973381ffd7781d) )
3610   ROM_LOAD16_BYTE( "088-2009.bin", 0x080001, 0x010000, CRC(6aedccc5) SHA1(9189881802969ecdde2fd41a20ff6ea0471ce2c0) )
3611   ROM_LOAD16_BYTE( "088-2012.bin", 0x0a0000, 0x010000, CRC(bacf08c0) SHA1(2f7ddaf4ef350ee3e6ab886759d88c03aa94784b) )
3612   ROM_LOAD16_BYTE( "088-2011.bin", 0x0a0001, 0x010000, CRC(1e0c2f71) SHA1(bcdd9089442934df78109df7c0dcf170873cf992) )
3613   ROM_LOAD16_BYTE( "088-2014.bin", 0x0c0000, 0x010000, CRC(3512537c) SHA1(896975ef2685358bd98f7a9b45dda11e8bfa3a13) )
3614   ROM_LOAD16_BYTE( "088-2013.bin", 0x0c0001, 0x010000, CRC(8d7c4e80) SHA1(eda8d02e51b18234fc0912eaca8171d75ae643c7) )
3615   ROM_LOAD16_BYTE( "088-2016.bin", 0x0e0000, 0x010000, CRC(6a42b7e2) SHA1(2e0ff4b7e391106a976cb872f6311f6d35dca5b0) )
3616   ROM_LOAD16_BYTE( "088-2015.bin", 0x0e0001, 0x010000, CRC(334e2a3b) SHA1(a19bfa7652845b9453c722091c773819ba248569) )
3617
3618   ROM_REGION( 0x60000, "user1", 0 )       /* 384k for object ROM */
41703619   ROM_LOAD16_BYTE( "088-1017.bin",  0x00000, 0x10000, CRC(d92251e8) SHA1(deeeec54c4a61c3adf62f6b1b910135559090ee5) )
41713620   ROM_LOAD16_BYTE( "088-1018.bin",  0x00001, 0x10000, CRC(11a0a8f5) SHA1(d4ccc83fc99331d741bc9b8027ef20d72e3ad71a) )
41723621   ROM_LOAD16_BYTE( "088-1019.bin",  0x20000, 0x10000, CRC(5bb00676) SHA1(cad1cea8e43f9590fc71c00fab4eff0d447f9296) ) // == 136091-0019.2k (strtdriv)
r241777r241778
41763625
41773626   /* ----------------------- */
41783627
4179   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3628   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
41803629   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
41813630
41823631   /* ADSP board */
4183   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
3632   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
41843633   ROM_LOAD16_BYTE( "rdps1032.bin", 0x000000, 0x010000, CRC(33005f2a) SHA1(e4037a76f122b271a9675d9187ab847a11738640) )
41853634   ROM_LOAD16_BYTE( "rdps1033.bin", 0x000001, 0x010000, CRC(4fc800ac) SHA1(dd8cfdb727d6a65274f4f871a589a36796ae1e57) )
41863635
41873636   /* DSK board */
4188   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3637   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
41893638   ROM_LOAD16_BYTE( "rdpd1026.bin", 0x000000, 0x020000, CRC(16572618) SHA1(08d9f7f76e6e75d5233240d4deab96808825994b) )
41903639   ROM_LOAD16_BYTE( "rdpd1025.bin", 0x000001, 0x020000, CRC(57b8a266) SHA1(257246d42841aa30220caeb91945e29978ee8fc0) )
41913640
41923641   /* Audio ROMs - show up as bad in self-test but so do racedriv's */
4193   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 5*64k for audio serial ROMs */
3642   ROM_REGION( 0x50000, "serialroms", 0 )      /* 5*64k for audio serial ROMs */
41943643   ROM_LOAD( "rdps1123.bin", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
41953644   ROM_LOAD( "rdps1124.bin", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
41963645   ROM_LOAD( "rdps3125.bin", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
41973646   ROM_LOAD( "rdps1126.bin", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
41983647   ROM_LOAD( "rdps1017.bin", 0x040000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
41993648
4200   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3649   ROM_REGION( 0x800, "200e", 0 )
42013650   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
42023651
4203   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3652   ROM_REGION( 0x800, "210e", 0 )
42043653   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
4205   
4206   /* Left PCB ( Multisync PCB (A046901) )*/
4207   ROM_REGION( 0x200000, "leftpcb:maincpu", 0 )        /* 2MB for 68000 code */
4208   ROM_LOAD16_BYTE( "088-2002.bin", 0x000000, 0x010000, CRC(77724070) SHA1(5862f30f7e2ab9c0beb06cf5599bcb1ff97f3a47) )
4209   ROM_LOAD16_BYTE( "088-2001.bin", 0x000001, 0x010000, CRC(16ab2fff) SHA1(bf6dcefc98e1fe27bef0ddacc265d8782c486c83) )
4210   ROM_LOAD16_BYTE( "088-2004.bin", 0x020000, 0x010000, CRC(dccdb16b) SHA1(330cf39bcbdb9c73da48b4e947086a7988e37496) )
4211   ROM_LOAD16_BYTE( "088-2003.bin", 0x020001, 0x010000, CRC(132ef986) SHA1(106f1a23ac200a868959181fa1c47419806e8366) )
4212   ROM_LOAD16_BYTE( "088-2006.bin", 0x040000, 0x010000, CRC(de3a0c24) SHA1(1121b8a16ac11b2480f1c4336a5aa3271364f80e))
4213   ROM_LOAD16_BYTE( "088-2005.bin", 0x040001, 0x010000, CRC(96ad705f) SHA1(cc0bc7fdd2a5f91a5929b889607dcf7ad015bb95) )
4214   ROM_LOAD16_BYTE( "088-2008.bin", 0x060000, 0x010000, CRC(452d991c) SHA1(42dad0a93839a900c3571ce9e252e1c991a1da56) )
4215   ROM_LOAD16_BYTE( "088-2007.bin", 0x060001, 0x010000, CRC(d6f526d3) SHA1(8406917c91c1d3690379cb0bca5809d1db27abec) )
4216   ROM_LOAD16_BYTE( "088-2010.bin", 0x080000, 0x010000, CRC(775bca3d) SHA1(926b460faeb2aa46899432b3a9973381ffd7781d) )
4217   ROM_LOAD16_BYTE( "088-2009.bin", 0x080001, 0x010000, CRC(6aedccc5) SHA1(9189881802969ecdde2fd41a20ff6ea0471ce2c0) )
4218   ROM_LOAD16_BYTE( "088-2012.bin", 0x0a0000, 0x010000, CRC(bacf08c0) SHA1(2f7ddaf4ef350ee3e6ab886759d88c03aa94784b) )
4219   ROM_LOAD16_BYTE( "088-2011.bin", 0x0a0001, 0x010000, CRC(1e0c2f71) SHA1(bcdd9089442934df78109df7c0dcf170873cf992) )
4220   ROM_LOAD16_BYTE( "088-2014.bin", 0x0c0000, 0x010000, CRC(3512537c) SHA1(896975ef2685358bd98f7a9b45dda11e8bfa3a13) )
4221   ROM_LOAD16_BYTE( "088-2013.bin", 0x0c0001, 0x010000, CRC(8d7c4e80) SHA1(eda8d02e51b18234fc0912eaca8171d75ae643c7) )
4222   ROM_LOAD16_BYTE( "088-2016.bin", 0x0e0000, 0x010000, CRC(6a42b7e2) SHA1(2e0ff4b7e391106a976cb872f6311f6d35dca5b0) )
4223   ROM_LOAD16_BYTE( "088-2015.bin", 0x0e0001, 0x010000, CRC(334e2a3b) SHA1(a19bfa7652845b9453c722091c773819ba248569) )
4224
4225   ROM_REGION( 0x60000, "leftpcb:user1", 0 )       /* 384k for object ROM */
4226   ROM_LOAD16_BYTE( "088-1017.bin",  0x00000, 0x10000, CRC(d92251e8) SHA1(deeeec54c4a61c3adf62f6b1b910135559090ee5) )
4227   ROM_LOAD16_BYTE( "088-1018.bin",  0x00001, 0x10000, CRC(11a0a8f5) SHA1(d4ccc83fc99331d741bc9b8027ef20d72e3ad71a) )
4228   ROM_LOAD16_BYTE( "088-1019.bin",  0x20000, 0x10000, CRC(5bb00676) SHA1(cad1cea8e43f9590fc71c00fab4eff0d447f9296) ) // == 136091-0019.2k (strtdriv)
4229   ROM_LOAD16_BYTE( "088-1020.bin",  0x20001, 0x10000, CRC(311cef99) SHA1(9c466aabad7e80581e477253ec6f2fd245f9b9fd) ) // == 136091-0020.2r (strtdriv)
4230   ROM_LOAD16_BYTE( "088-1021.bin",  0x40000, 0x10000, CRC(ce8e4886) SHA1(d29cd4761deb80ed179d0e503243739eebc0edb4) )
4231   ROM_LOAD16_BYTE( "088-1022.bin",  0x40001, 0x10000, CRC(4f1e1c5d) SHA1(3e72813129cae9e9bf084bfb1b747aa46b92591e) )
4232
4233   ROM_REGION( 0x800, "leftpcb:200e", 0 ) // set to display left monitor, controls not calibrated with valid values (don't think they need to be)
4234   ROM_LOAD( "leftpcb_200e",   0x000000, 0x000800, CRC(a618d02e) SHA1(cc1068fe4f6ec9a26b6e8fdbe05f4364a64559c1) )   
4235   ROM_REGION( 0x800, "leftpcb:210e", 0 )
4236   ROM_LOAD( "leftpcb_210e",   0x000000, 0x000800, CRC(108ea834) SHA1(d7aec78287647dc52f92143cdb6d7765de0b4e39) )
4237
4238   /* Right PCB ( Multisync PCB (A046901) ) */
4239   ROM_REGION( 0x200000, "rightpcb:maincpu", 0 )        /* 2MB for 68000 code */
4240   ROM_LOAD16_BYTE( "088-2002.bin", 0x000000, 0x010000, CRC(77724070) SHA1(5862f30f7e2ab9c0beb06cf5599bcb1ff97f3a47) )
4241   ROM_LOAD16_BYTE( "088-2001.bin", 0x000001, 0x010000, CRC(16ab2fff) SHA1(bf6dcefc98e1fe27bef0ddacc265d8782c486c83) )
4242   ROM_LOAD16_BYTE( "088-2004.bin", 0x020000, 0x010000, CRC(dccdb16b) SHA1(330cf39bcbdb9c73da48b4e947086a7988e37496) )
4243   ROM_LOAD16_BYTE( "088-2003.bin", 0x020001, 0x010000, CRC(132ef986) SHA1(106f1a23ac200a868959181fa1c47419806e8366) )
4244   ROM_LOAD16_BYTE( "088-2006.bin", 0x040000, 0x010000, CRC(de3a0c24) SHA1(1121b8a16ac11b2480f1c4336a5aa3271364f80e))
4245   ROM_LOAD16_BYTE( "088-2005.bin", 0x040001, 0x010000, CRC(96ad705f) SHA1(cc0bc7fdd2a5f91a5929b889607dcf7ad015bb95) )
4246   ROM_LOAD16_BYTE( "088-2008.bin", 0x060000, 0x010000, CRC(452d991c) SHA1(42dad0a93839a900c3571ce9e252e1c991a1da56) )
4247   ROM_LOAD16_BYTE( "088-2007.bin", 0x060001, 0x010000, CRC(d6f526d3) SHA1(8406917c91c1d3690379cb0bca5809d1db27abec) )
4248   ROM_LOAD16_BYTE( "088-2010.bin", 0x080000, 0x010000, CRC(775bca3d) SHA1(926b460faeb2aa46899432b3a9973381ffd7781d) )
4249   ROM_LOAD16_BYTE( "088-2009.bin", 0x080001, 0x010000, CRC(6aedccc5) SHA1(9189881802969ecdde2fd41a20ff6ea0471ce2c0) )
4250   ROM_LOAD16_BYTE( "088-2012.bin", 0x0a0000, 0x010000, CRC(bacf08c0) SHA1(2f7ddaf4ef350ee3e6ab886759d88c03aa94784b) )
4251   ROM_LOAD16_BYTE( "088-2011.bin", 0x0a0001, 0x010000, CRC(1e0c2f71) SHA1(bcdd9089442934df78109df7c0dcf170873cf992) )
4252   ROM_LOAD16_BYTE( "088-2014.bin", 0x0c0000, 0x010000, CRC(3512537c) SHA1(896975ef2685358bd98f7a9b45dda11e8bfa3a13) )
4253   ROM_LOAD16_BYTE( "088-2013.bin", 0x0c0001, 0x010000, CRC(8d7c4e80) SHA1(eda8d02e51b18234fc0912eaca8171d75ae643c7) )
4254   ROM_LOAD16_BYTE( "088-2016.bin", 0x0e0000, 0x010000, CRC(6a42b7e2) SHA1(2e0ff4b7e391106a976cb872f6311f6d35dca5b0) )
4255   ROM_LOAD16_BYTE( "088-2015.bin", 0x0e0001, 0x010000, CRC(334e2a3b) SHA1(a19bfa7652845b9453c722091c773819ba248569) )
4256
4257   ROM_REGION( 0x60000, "rightpcb:user1", 0 )       /* 384k for object ROM */
4258   ROM_LOAD16_BYTE( "088-1017.bin",  0x00000, 0x10000, CRC(d92251e8) SHA1(deeeec54c4a61c3adf62f6b1b910135559090ee5) )
4259   ROM_LOAD16_BYTE( "088-1018.bin",  0x00001, 0x10000, CRC(11a0a8f5) SHA1(d4ccc83fc99331d741bc9b8027ef20d72e3ad71a) )
4260   ROM_LOAD16_BYTE( "088-1019.bin",  0x20000, 0x10000, CRC(5bb00676) SHA1(cad1cea8e43f9590fc71c00fab4eff0d447f9296) ) // == 136091-0019.2k (strtdriv)
4261   ROM_LOAD16_BYTE( "088-1020.bin",  0x20001, 0x10000, CRC(311cef99) SHA1(9c466aabad7e80581e477253ec6f2fd245f9b9fd) ) // == 136091-0020.2r (strtdriv)
4262   ROM_LOAD16_BYTE( "088-1021.bin",  0x40000, 0x10000, CRC(ce8e4886) SHA1(d29cd4761deb80ed179d0e503243739eebc0edb4) )
4263   ROM_LOAD16_BYTE( "088-1022.bin",  0x40001, 0x10000, CRC(4f1e1c5d) SHA1(3e72813129cae9e9bf084bfb1b747aa46b92591e) )
4264
4265   ROM_REGION( 0x800, "rightpcb:200e", 0 ) // set to display right monitor, controls not calibrated with valid values (don't think they need to be)
4266   ROM_LOAD( "rightpcb_200e",   0x000000, 0x000800, CRC(6f1b7094) SHA1(6194a5b99aebe43f02c8d267290207b32c5bdbbd) )   
4267   ROM_REGION( 0x800, "rightpcb:210e", 0 )
4268   ROM_LOAD( "rightpcb_210e",   0x000000, 0x000800, CRC(108ea834) SHA1(d7aec78287647dc52f92143cdb6d7765de0b4e39) )
42693654ROM_END
42703655
42713656
42723657ROM_START( steeltal )
4273   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
3658   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
42743659   ROM_LOAD16_BYTE( "136087-1002.200r", 0x000000, 0x010000, CRC(31bf01a9) SHA1(cd08a839dbb5283a6e2bb35bc9e1578a14e3c2e6) )
42753660   ROM_LOAD16_BYTE( "136087-1001.210r", 0x000001, 0x010000, CRC(b4fa2900) SHA1(5e92ab4af31321b891c072305f8b8ef30a3e1fb0) )
42763661   ROM_LOAD16_BYTE( "136087-1004.200s", 0x020000, 0x010000, CRC(c31ca924) SHA1(8d7d2a3d204e69d759cf767b57570c18db5a3fd8) )
r241777r241778
42883673   ROM_LOAD16_BYTE( "136087-1016.200y", 0x0e0000, 0x010000, CRC(db62362e) SHA1(e1d392aa00ac36296728257fa26c6aa68a4ebe5f) )
42893674   ROM_LOAD16_BYTE( "136087-1015.210y", 0x0e0001, 0x010000, CRC(ef517db7) SHA1(16e7e351326391480bf36c58d6b34ef4128b6627) )
42903675
4291   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
3676   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
42923677   ROM_LOAD( "136087-5001.1f",  0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) )
42933678   ROM_CONTINUE(                0x004000, 0x00c000 )
42943679
4295   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
3680   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
42963681   ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) )
42973682
4298   ROM_REGION( 0x10000, "mainpcb:cpu6", 0 )        /* 64k for DSP communications */
3683   ROM_REGION( 0x10000, "cpu6", 0 )        /* 64k for DSP communications */
42993684   ROM_LOAD( "136087-1025.5f",  0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) )
43003685
4301   ROM_REGION16_BE( 0xc0000, "mainpcb:user1", 0 )  /* 768k for object ROM */
3686   ROM_REGION16_BE( 0xc0000, "user1", 0 )  /* 768k for object ROM */
43023687   ROM_LOAD16_BYTE( "136087-1018.2t",  0x000000, 0x020000, CRC(a5882384) SHA1(157707b5b114fa584893dec07dc456d4a5520f44) )
43033688   ROM_LOAD16_BYTE( "136087-1017.2lm", 0x000001, 0x020000, CRC(0a29db30) SHA1(f11ad7fe27989ffd66e9bef2c14ec040a4125d8a) )
43043689
4305   ROM_REGION( 0x80000, "mainpcb:jsa:oki1", 0 )
3690   ROM_REGION( 0x80000, "jsa:oki1", 0 )
43063691   ROM_LOAD( "136087-5002.1m",  0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) )
43073692   ROM_LOAD( "136087-5003.1n",  0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) )
43083693   ROM_LOAD( "136087-5004.1p",  0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) )
43093694   ROM_LOAD( "136087-5005.1r",  0x060000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) )
43103695
4311   ROM_REGION( 0x015D, "mainpcb:plds", 0 )
3696   ROM_REGION( 0x015D, "plds", 0 )
43123697   /* GAL's located on Sound board */
43133698   ROM_LOAD( "136085-1038.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2F */
43143699   ROM_LOAD( "136085-1039.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2L */
r241777r241778
43253710   /* GAL's located on "Multisync" board */
43263711   ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */
43273712
4328   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3713   ROM_REGION( 0x800, "200e", 0 )
43293714   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
43303715
4331   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3716   ROM_REGION( 0x800, "210e", 0 )
43323717   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
43333718ROM_END
43343719
43353720
43363721ROM_START( steeltalg )
4337   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
3722   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
43383723   ROM_LOAD16_BYTE( "136087-1002.200r", 0x000000, 0x010000, CRC(31bf01a9) SHA1(cd08a839dbb5283a6e2bb35bc9e1578a14e3c2e6) )
43393724   ROM_LOAD16_BYTE( "136087-1001.210r", 0x000001, 0x010000, CRC(b4fa2900) SHA1(5e92ab4af31321b891c072305f8b8ef30a3e1fb0) )
43403725   ROM_LOAD16_BYTE( "136087-2004.200s", 0x020000, 0x010000, CRC(11fcba15) SHA1(031fc4c46a25ba8b5e15257f7443899bb484c09e) )
r241777r241778
43523737   ROM_LOAD16_BYTE( "136087-1016.200y", 0x0e0000, 0x010000, CRC(db62362e) SHA1(e1d392aa00ac36296728257fa26c6aa68a4ebe5f) )
43533738   ROM_LOAD16_BYTE( "136087-1015.210y", 0x0e0001, 0x010000, CRC(ef517db7) SHA1(16e7e351326391480bf36c58d6b34ef4128b6627) )
43543739
4355   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
3740   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
43563741   ROM_LOAD( "136087-5001.1f",  0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) )
43573742   ROM_CONTINUE(             0x004000, 0x00c000 )
43583743
4359   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
3744   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
43603745   ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) )
43613746
4362   ROM_REGION( 0x10000, "mainpcb:cpu6", 0 )        /* 64k for DSP communications */
3747   ROM_REGION( 0x10000, "cpu6", 0 )        /* 64k for DSP communications */
43633748   ROM_LOAD( "136087-1025.5f",  0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) )
43643749
4365   ROM_REGION16_BE( 0xc0000, "mainpcb:user1", 0 )  /* 768k for object ROM */
3750   ROM_REGION16_BE( 0xc0000, "user1", 0 )  /* 768k for object ROM */
43663751   ROM_LOAD16_BYTE( "136087-1018.2t",  0x000000, 0x020000, CRC(a5882384) SHA1(157707b5b114fa584893dec07dc456d4a5520f44) )
43673752   ROM_LOAD16_BYTE( "136087-1017.2lm", 0x000001, 0x020000, CRC(0a29db30) SHA1(f11ad7fe27989ffd66e9bef2c14ec040a4125d8a) )
43683753
4369   ROM_REGION( 0x80000, "mainpcb:jsa:oki1", 0 )
3754   ROM_REGION( 0x80000, "jsa:oki1", 0 )
43703755   ROM_LOAD( "136087-5002.1m",  0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) )
43713756   ROM_LOAD( "136087-5003.1n",  0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) )
43723757   ROM_LOAD( "136087-5004.1p",  0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) )
43733758   ROM_LOAD( "136087-5005.1r",  0x060000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) )
43743759
4375   ROM_REGION( 0x015D, "mainpcb:plds", 0 )
3760   ROM_REGION( 0x015D, "plds", 0 )
43763761   /* GAL's located on Sound board */
43773762   ROM_LOAD( "136085-1038.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2F */
43783763   ROM_LOAD( "136085-1039.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2L */
r241777r241778
43893774   /* GAL's located on "Multisync" board */
43903775   ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */
43913776
4392   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3777   ROM_REGION( 0x800, "200e", 0 )
43933778   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
43943779
4395   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3780   ROM_REGION( 0x800, "210e", 0 )
43963781   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
43973782ROM_END
43983783
43993784
44003785ROM_START( steeltal1 )
4401   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
3786   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
44023787   ROM_LOAD16_BYTE( "136087-1002.200r", 0x000000, 0x010000, CRC(31bf01a9) SHA1(cd08a839dbb5283a6e2bb35bc9e1578a14e3c2e6) )
44033788   ROM_LOAD16_BYTE( "136087-1001.210r", 0x000001, 0x010000, CRC(b4fa2900) SHA1(5e92ab4af31321b891c072305f8b8ef30a3e1fb0) )
44043789   ROM_LOAD16_BYTE( "136087-a004.200s", 0x020000, 0x010000, CRC(392c992d) SHA1(10d1606214df675e6e59185e6b97034c4a47055a) )
r241777r241778
44163801   ROM_LOAD16_BYTE( "136087-1016.200y", 0x0e0000, 0x010000, CRC(db62362e) SHA1(e1d392aa00ac36296728257fa26c6aa68a4ebe5f) )
44173802   ROM_LOAD16_BYTE( "136087-1015.210y", 0x0e0001, 0x010000, CRC(ef517db7) SHA1(16e7e351326391480bf36c58d6b34ef4128b6627) )
44183803
4419   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
3804   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
44203805   ROM_LOAD( "136087-5001.1f",  0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) )
44213806   ROM_CONTINUE(             0x004000, 0x00c000 )
44223807
4423   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
3808   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
44243809   ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) )
44253810
4426   ROM_REGION( 0x10000, "mainpcb:cpu6", 0 )        /* 64k for DSP communications */
3811   ROM_REGION( 0x10000, "cpu6", 0 )        /* 64k for DSP communications */
44273812   ROM_LOAD( "136087-1025.5f",  0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) )
44283813
4429   ROM_REGION16_BE( 0xc0000, "mainpcb:user1", 0 )  /* 768k for object ROM */
3814   ROM_REGION16_BE( 0xc0000, "user1", 0 )  /* 768k for object ROM */
44303815   ROM_LOAD16_BYTE( "136087-1018.2t",  0x000000, 0x020000, CRC(a5882384) SHA1(157707b5b114fa584893dec07dc456d4a5520f44) )
44313816   ROM_LOAD16_BYTE( "136087-1017.2lm", 0x000001, 0x020000, CRC(0a29db30) SHA1(f11ad7fe27989ffd66e9bef2c14ec040a4125d8a) )
44323817
4433   ROM_REGION( 0x80000, "mainpcb:jsa:oki1", 0 )
3818   ROM_REGION( 0x80000, "jsa:oki1", 0 )
44343819   ROM_LOAD( "136087-5002.1m",  0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) )
44353820   ROM_LOAD( "136087-5003.1n",  0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) )
44363821   ROM_LOAD( "136087-5004.1p",  0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) )
44373822   ROM_LOAD( "136087-5005.1r",  0x060000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) )
44383823
4439   ROM_REGION( 0x015D, "mainpcb:plds", 0 )
3824   ROM_REGION( 0x015D, "plds", 0 )
44403825   /* GAL's located on Sound board */
44413826   ROM_LOAD( "136085-1038.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2F */
44423827   ROM_LOAD( "136085-1039.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2L */
r241777r241778
44533838   /* GAL's located on "Multisync" board */
44543839   ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */
44553840
4456   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3841   ROM_REGION( 0x800, "200e", 0 )
44573842   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
44583843
4459   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3844   ROM_REGION( 0x800, "210e", 0 )
44603845   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
44613846ROM_END
44623847
44633848
44643849ROM_START( steeltalp )
4465   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
3850   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
44663851   ROM_LOAD16_BYTE( "rom-200r.bin", 0x00000, 0x10000, CRC(72a9ce3b) SHA1(6706ff32173735d16d9da1321b64a4a9bb317b2e) )
44673852   ROM_LOAD16_BYTE( "rom-210r.bin", 0x00001, 0x10000, CRC(46d83b42) SHA1(85b178781f0595b5af0375fee32d0dd8cdba8fca) )
44683853   ROM_LOAD16_BYTE( "rom-200s.bin", 0x20000, 0x10000, CRC(bf1b31ae) SHA1(f2d7f13854b8a3dd4de9ae98cc3034dfcf3846b8) )
r241777r241778
44803865   ROM_LOAD16_BYTE( "rom-200y.bin", 0xe0000, 0x10000, CRC(b568e1be) SHA1(5d62037892e040515e4262db43057f33436fa12d) )
44813866   ROM_LOAD16_BYTE( "rom-210y.bin", 0xe0001, 0x10000, CRC(3f5cdd3e) SHA1(c33c155158a5c69a7f2e61cd88b297dc14ecd479) )
44823867
4483   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
3868   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
44843869   ROM_LOAD( "136087-5001.1f",  0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) )
44853870   ROM_CONTINUE(             0x004000, 0x00c000 )
44863871
4487   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
3872   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
44883873   ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) )
44893874
4490   ROM_REGION( 0x10000, "mainpcb:cpu6", 0 )        /* 64k for DSP communications */
3875   ROM_REGION( 0x10000, "cpu6", 0 )        /* 64k for DSP communications */
44913876   ROM_LOAD( "136087-1025.5f",  0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) )
44923877
4493   ROM_REGION16_BE( 0xc0000, "mainpcb:user1", 0 )  /* 768k for object ROM */
3878   ROM_REGION16_BE( 0xc0000, "user1", 0 )  /* 768k for object ROM */
44943879   ROM_LOAD16_BYTE( "rom.2t",  0x00000, 0x20000, CRC(05284504) SHA1(03b81c077f8ff073713f4bcc10b82087743b0d84) )
44953880   ROM_LOAD16_BYTE( "rom.2lm", 0x00001, 0x20000, CRC(d6e65b87) SHA1(ac4b2f292f6e28a15e3a12f09f6c2f9523e8b178) )
44963881
4497   ROM_REGION( 0x80000, "mainpcb:jsa:oki1", 0 )
3882   ROM_REGION( 0x80000, "jsa:oki1", 0 )
44983883   ROM_LOAD( "136087-5002.1m",  0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) )
44993884   ROM_LOAD( "136087-5003.1n",  0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) )
45003885   ROM_LOAD( "136087-5004.1p",  0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) )
45013886   ROM_LOAD( "136087-5005.1r",  0x060000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) )
45023887
4503   ROM_REGION( 0x015D, "mainpcb:plds", 0 )
3888   ROM_REGION( 0x015D, "plds", 0 )
45043889   /* GAL's located on Sound board */
45053890   ROM_LOAD( "136085-1038.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2F */
45063891   ROM_LOAD( "136085-1039.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2L */
r241777r241778
45173902   /* GAL's located on "Multisync" board */
45183903   ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */
45193904
4520   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3905   ROM_REGION( 0x800, "200e", 0 )
45213906   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
45223907
4523   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3908   ROM_REGION( 0x800, "210e", 0 )
45243909   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
45253910ROM_END
45263911
45273912
45283913ROM_START( strtdriv )
4529   ROM_REGION( 0x200000, "mainpcb:maincpu", 0 )        /* 2MB for 68000 code */
3914   ROM_REGION( 0x200000, "maincpu", 0 )        /* 2MB for 68000 code */
45303915   ROM_LOAD16_BYTE( "136091-0002.200r", 0x000000, 0x010000, CRC(d28f2629) SHA1(266b4a80fd366fec2329ed2cec7fb570cef34291) )
45313916   ROM_LOAD16_BYTE( "136091-0001.210r", 0x000001, 0x010000, CRC(443428d1) SHA1(d93fd21a2c9d1e24c599867a110c1031d72e81b7) )
45323917   ROM_LOAD16_BYTE( "136091-0004.200s", 0x020000, 0x010000, CRC(379b9d18) SHA1(8cd903cc4e970cc45d7ef431233730b53dabeb1d) )
r241777r241778
45443929   ROM_LOAD16_BYTE( "136091-0016.200y", 0x0e0000, 0x010000, CRC(f85ad532) SHA1(f9d2480104a7487c23d33b05aa044b7f4ca08c67) )
45453930   ROM_LOAD16_BYTE( "136091-0015.210y", 0x0e0001, 0x010000, CRC(a2e406f3) SHA1(a7266508011c892cb1032fa4d77ccbafedc844e8) )
45463931
4547   ROM_REGION( 0x10000 + 0x10000, "mainpcb:asic65:asic65cpu", 0 )    /* dummy region for ADSP 2105 */
3932   ROM_REGION( 0x10000 + 0x10000, "asic65:asic65cpu", 0 )    /* dummy region for ADSP 2105 */
45483933   ROM_LOAD( "136091-0033.10j", 0x000000, 0x010000, CRC(57504ab6) SHA1(ec8361b7da964c07ca0da48a87537badc3986fe0) )
45493934
4550   ROM_REGION( 0x60000, "mainpcb:user1", 0 )       /* 384k for object ROM */
3935   ROM_REGION( 0x60000, "user1", 0 )       /* 384k for object ROM */
45513936   ROM_LOAD16_BYTE( "136091-0017.2lm", 0x00000, 0x10000, CRC(b0454074) SHA1(9530ea1ef215116da1f0843776fa7a6b4637049d) )
45523937   ROM_LOAD16_BYTE( "136091-0018.2t",  0x00001, 0x10000, CRC(ef432aa8) SHA1(56bce13c111db7874c9b669d479f6ef47976ee14) )
45533938   ROM_LOAD16_BYTE( "136091-0019.2k",  0x20000, 0x10000, CRC(5bb00676) SHA1(cad1cea8e43f9590fc71c00fab4eff0d447f9296) )
r241777r241778
45553940   ROM_LOAD16_BYTE( "136091-0021.2j",  0x40000, 0x10000, CRC(14f2caae) SHA1(ff40dbced58dc910a2b5825b846a5e52933cb8fc) )
45563941   ROM_LOAD16_BYTE( "136091-0022.2p",  0x40001, 0x10000, CRC(bc4dd071) SHA1(ca182451a0a18d343dce1be56090d51950d43906) )
45573942
4558   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3943   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
45593944   ROM_LOAD16_BYTE( "136091-0026.30e", 0x000000, 0x020000, CRC(47705109) SHA1(fa40275b71b74be8591282d2fba4215b98fc29c9) )
45603945   ROM_LOAD16_BYTE( "136091-0025.10e", 0x000001, 0x020000, CRC(ead9254e) SHA1(92152d3ca77b542b3bb3398ccf414df28c95abfd) )
45613946
4562   ROM_REGION16_BE( 0x100000, "mainpcb:ds3sdsp", 0 )  /* DS III sound ADSP-2105 */
3947   ROM_REGION16_BE( 0x100000, "ds3sdsp", 0 )  /* DS III sound ADSP-2105 */
45633948   ROM_LOAD( "136091-0033.10j", 0x000000, 0x010000, CRC(57504ab6) SHA1(ec8361b7da964c07ca0da48a87537badc3986fe0) )
45643949
4565   ROM_REGION16_BE( 0x100000, "mainpcb:ds3xdsp", 0 )  /* DS III auxillary ADSP-2105 (unused) */
3950   ROM_REGION16_BE( 0x100000, "ds3xdsp", 0 )  /* DS III auxillary ADSP-2105 (unused) */
45663951   ROM_FILL(                    0x000000, 0x010000, 0x00)
45673952
4568   ROM_REGION( 0x80000, "mainpcb:ds3sdsp_data", 0 )
3953   ROM_REGION( 0x80000, "ds3sdsp_data", 0 )
45693954   ROM_LOAD16_BYTE( "136052-1123.12lm",0x00000, 0x10000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
45703955   ROM_LOAD16_BYTE( "136077-1017.12t", 0x00001, 0x10000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
45713956
r241777r241778
45783963   ROM_FILL(                           0x60000, 0x20000, 0xff) /* 12N */
45793964   ROM_LOAD16_BYTE( "136052-1126.12h", 0x60000, 0x10000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
45803965
4581   ROM_REGION( 0x800, "mainpcb:200e", 0 )
3966   ROM_REGION( 0x800, "200e", 0 )
45823967   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
45833968
4584   ROM_REGION( 0x800, "mainpcb:210e", 0 )
3969   ROM_REGION( 0x800, "210e", 0 )
45853970   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
45863971ROM_END
45873972
45883973ROM_START( hdrivair )
4589   ROM_REGION( 0x200000, "mainpcb:maincpu", 0 )        /* 2MB for 68000 code */
3974   ROM_REGION( 0x200000, "maincpu", 0 )        /* 2MB for 68000 code */
45903975   ROM_LOAD16_BYTE( "stesthi.bin", 0x000000, 0x20000, CRC(b4bfa451) SHA1(002a5d213ba8ec76ad83a87d76aefbd98b1e4c94) )
45913976   ROM_LOAD16_BYTE( "stestlo.bin", 0x000001, 0x20000, CRC(58758419) SHA1(7951d4c8cf0b28b4fac3fe172ea3bc56f61bd9ff) )
45923977   ROM_LOAD16_BYTE( "drivehi.bin", 0x040000, 0x20000, CRC(d15f5119) SHA1(c2c7e9675c14ba41effa6f721602f6471b348758) )
r241777r241778
46003985   ROM_LOAD16_BYTE( "coprochi.bin",0x1c0000, 0x20000, CRC(5d2ca109) SHA1(e1a94d3fbfd5d542732555bf60268e73d66b3a06) )
46013986   ROM_LOAD16_BYTE( "coproclo.bin",0x1c0001, 0x20000, CRC(5f98b04d) SHA1(9c4fa4092fd85f1d67be44f2ff91a907a87db51a) )
46023987
4603   ROM_REGION( 0x10000 + 0x10000, "mainpcb:asic65:asic65cpu", 0 )    /* dummy region for ADSP 2105 */
3988   ROM_REGION( 0x10000 + 0x10000, "asic65:asic65cpu", 0 )    /* dummy region for ADSP 2105 */
46043989   ROM_LOAD( "sboot.bin", 0x000000, 0x010000, CRC(cde4d010) SHA1(853f4b813ff70fe74cd87e92131c46fca045610d) )
46053990
4606   ROM_REGION( 0xc0000, "mainpcb:user1", 0 )       /* 768k for object ROM */
3991   ROM_REGION( 0xc0000, "user1", 0 )       /* 768k for object ROM */
46073992   ROM_LOAD16_BYTE( "obj0l.bin",   0x00000, 0x20000, CRC(1f835f2e) SHA1(9d3419f2c1aa65ddfe9ace4e70ca1212d634afbf) )
46083993   ROM_LOAD16_BYTE( "obj0h.bin",   0x00001, 0x20000, CRC(c321ab55) SHA1(e095e40bb1ebda7c9ff04a5086c10ab41dec2f16) )
46093994   ROM_LOAD16_BYTE( "obj1l.bin",   0x40000, 0x20000, CRC(3d65f264) SHA1(e9232f5bf439bf4e1cf99cc7e81b7f9550563f15) )
r241777r241778
46113996   ROM_LOAD16_BYTE( "obj2l.bin",   0x80000, 0x20000, CRC(b206cc7e) SHA1(17f05e906c41b804fe99dd6cd8acbade919a6a10) )
46123997   ROM_LOAD16_BYTE( "obj2h.bin",   0x80001, 0x20000, CRC(a666e98c) SHA1(90e380ff87538c7d557cf005a4a5bcedc250eb72) )
46133998
4614   ROM_REGION16_BE( 0x140000, "mainpcb:user3", 0 )/* 1MB for DSK ROMs + 256k for RAM */
3999   ROM_REGION16_BE( 0x140000, "user3", 0 )/* 1MB for DSK ROMs + 256k for RAM */
46154000   ROM_LOAD16_BYTE( "dsk2phi.bin", 0x00000, 0x80000, CRC(71c268e0) SHA1(c089248a7dfadf2eba3134fe40ebb777c115a886) )
46164001   ROM_LOAD16_BYTE( "dsk2plo.bin", 0x00001, 0x80000, CRC(edf96363) SHA1(47f0608c2b0ab983681de021a16b1d10d4feb800) )
46174002
4618   ROM_REGION32_LE( 0x200000, "mainpcb:user4", 0 )/* 2MB for ASIC61 ROMs */
4003   ROM_REGION32_LE( 0x200000, "user4", 0 )/* 2MB for ASIC61 ROMs */
46194004   ROM_LOAD32_BYTE( "roads0.bin",  0x000000, 0x80000, CRC(5028eb41) SHA1(abe9d73e74d4f0308f07cbe9c18c8a77456fdbc7) )
46204005   ROM_LOAD32_BYTE( "roads1.bin",  0x000001, 0x80000, CRC(c3f2c201) SHA1(c73933d7e46f3c63c4ca86af40eb4f0abb09aedf) )
46214006   ROM_LOAD32_BYTE( "roads2.bin",  0x000002, 0x80000, CRC(527923fe) SHA1(839de8486bb7489f059b5a629ab229ad96de7eac) )
46224007   ROM_LOAD32_BYTE( "roads3.bin",  0x000003, 0x80000, CRC(2f2023b2) SHA1(d474892443db2f0710c2be0d6b90735a2fbee12a) )
46234008
4624   ROM_REGION16_BE( 0x10000, "mainpcb:ds3sdsp", 0 ) /* DS IV sound ADSP-2105 */
4009   ROM_REGION16_BE( 0x10000, "ds3sdsp", 0 ) /* DS IV sound ADSP-2105 */
46254010   ROM_LOAD( "sboot.bin", 0x00000, 0x10000, CRC(cde4d010) SHA1(853f4b813ff70fe74cd87e92131c46fca045610d) )
46264011
4627   ROM_REGION16_BE( 0x10000, "mainpcb:ds3xdsp", 0 ) /* DS IV auxillary ADSP-2105 */
4012   ROM_REGION16_BE( 0x10000, "ds3xdsp", 0 ) /* DS IV auxillary ADSP-2105 */
46284013   ROM_LOAD( "xboot.bin", 0x00000, 0x10000, CRC(054b46a0) SHA1(038eec17e678f2755239d6795acfda621796802e) )
46294014
4630   ROM_REGION16_BE( 0x400000, "mainpcb:ds3sdsp_data", 0 ) /* DS IV sound data */
4015   ROM_REGION16_BE( 0x400000, "ds3sdsp_data", 0 ) /* DS IV sound data */
46314016   ROM_LOAD16_BYTE( "ds3rom4.bin", 0x000000, 0x80000, CRC(15ffb19a) SHA1(030dc90b7cabcd7fc5f231b09d2aa2eaf6e60b98) )
46324017   ROM_LOAD16_BYTE( "ds3rom0.bin", 0x000001, 0x80000, CRC(90b8dbb6) SHA1(fff693cb81e88bc00e048bb71406295fe7be5122) )
46334018   ROM_LOAD16_BYTE( "ds3rom5.bin", 0x100000, 0x80000, CRC(8d0e9b27) SHA1(76556f48bdf14475260c268ebdb16ecb494b2f36) )
r241777r241778
46374022   ROM_LOAD16_BYTE( "ds3rom7.bin", 0x300000, 0x80000, CRC(323eff0b) SHA1(5d4945d77191ee44b4fbf125bc0816217321829e) )
46384023   ROM_LOAD16_BYTE( "ds3rom3.bin", 0x300001, 0x80000, CRC(63965868) SHA1(d61d9d6709a3a3c37c2652602e97fdee52e0e7cb) )
46394024
4640   ROM_REGION( 0x800, "mainpcb:200e", 0 )
4025   ROM_REGION( 0x800, "200e", 0 )
46414026   ROM_LOAD( "hdrivair.200e",      0x000000, 0x000800, CRC(6270b696) SHA1(e302880dbca53ee725108ca4f7e45a176e85e96d) )
46424027
4643   ROM_REGION( 0x800, "mainpcb:210e", 0 )
4028   ROM_REGION( 0x800, "210e", 0 )
46444029   ROM_LOAD( "hdrivair.210e",      0x000000, 0x000800, CRC(a1c39919) SHA1(92799a7a73f545dad6684eacf7009a6c4d52d8f7) )
46454030ROM_END
46464031
46474032
46484033ROM_START( hdrivairp )
4649   ROM_REGION( 0x200000, "mainpcb:maincpu", 0 )        /* 2MB for 68000 code */
4034   ROM_REGION( 0x200000, "maincpu", 0 )        /* 2MB for 68000 code */
46504035   ROM_LOAD16_BYTE( "stest.0h",    0x000000, 0x20000, CRC(bf4bb6a0) SHA1(e38ec5ce245f98bfe8084ba684bffc85dc19d3be) )
46514036   ROM_LOAD16_BYTE( "stest.0l",    0x000001, 0x20000, CRC(f462b511) SHA1(d88efb8cc30322a8332a1f50de775a204758e176) )
46524037   ROM_LOAD16_BYTE( "drive.hi",    0x040000, 0x20000, CRC(56571590) SHA1(d0362b8bd438cd7dfa9ff7cf71307f44c2cfe843) )
r241777r241778
46604045   ROM_LOAD16_BYTE( "ms2cproc.0h", 0x1c0000, 0x20000, CRC(19024f2d) SHA1(a94e8836cdc147cea5816b99b8a1ad5ff669d984) )
46614046   ROM_LOAD16_BYTE( "ms2cproc.0l", 0x1c0001, 0x20000, CRC(1e48bd46) SHA1(1a903d889f48604bd8d2d9a0bda4ee20e7ad968b) )
46624047
4663   ROM_REGION( 0x10000 + 0x10000, "mainpcb:dsp32", 0 ) /* dummy region for ADSP 2105 */
4048   ROM_REGION( 0x10000 + 0x10000, "dsp32", 0 ) /* dummy region for ADSP 2105 */
46644049   ROM_LOAD( "sboota.bin", 0x10000 + 0x00000, 0x10000, CRC(3ef819cd) SHA1(c547b869a3a37a82fb46584fe0ef0cfe21a4f882) )
46654050
4666   ROM_REGION( 0x10000 + 0x10000, "mainpcb:asic65:asic65cpu", 0 )    /* dummy region for ADSP 2105 */
4051   ROM_REGION( 0x10000 + 0x10000, "asic65:asic65cpu", 0 )    /* dummy region for ADSP 2105 */
46674052   ROM_LOAD( "xboota.bin", 0x10000 + 0x00000, 0x10000, CRC(d9c49901) SHA1(9f90ae3a47eb1ef00c3ec3661f60402c2eae2108) )
46684053
4669   ROM_REGION( 0xc0000, "mainpcb:user1", 0 )       /* 768k for object ROM */
4054   ROM_REGION( 0xc0000, "user1", 0 )       /* 768k for object ROM */
46704055   ROM_LOAD16_BYTE( "objects.0l",  0x00000, 0x20000, CRC(3c9e9078) SHA1(f1daf32117236401f3cb97f332708632003e55f8) )
46714056   ROM_LOAD16_BYTE( "objects.0h",  0x00001, 0x20000, CRC(4480dbae) SHA1(6a455173c38e80093f58bdc322cffcf25e70b6ae) )
46724057   ROM_LOAD16_BYTE( "objects.1l",  0x40000, 0x20000, CRC(700bd978) SHA1(5cd63d4eee00d90fe29fb9697b6a0ea6b86704ae) )
r241777r241778
46744059   ROM_LOAD16_BYTE( "objects.2l",  0x80000, 0x20000, CRC(e3b512f0) SHA1(080c5a21cb76edcb55d1c2488e9d91cf29cb0665) )
46754060   ROM_LOAD16_BYTE( "objects.2h",  0x80001, 0x20000, CRC(3f83742b) SHA1(4b6e0134a806bcc9bd56432737047f86d0a16424) )
46764061
4677   ROM_REGION16_BE( 0x140000, "mainpcb:user3", 0 )/* 1MB for DSK ROMs + 256k for RAM */
4062   ROM_REGION16_BE( 0x140000, "user3", 0 )/* 1MB for DSK ROMs + 256k for RAM */
46784063   ROM_LOAD16_BYTE( "dskpics.hi",  0x00000, 0x80000, CRC(eaa88101) SHA1(ed0ebf8a9a9514d810242b9b552126f6717f9e25) )
46794064   ROM_LOAD16_BYTE( "dskpics.lo",  0x00001, 0x80000, CRC(8c6f0750) SHA1(4cb23cedc500c1509dc875c3291a5771c8473f73) )
46804065
4681   ROM_REGION32_LE( 0x200000, "mainpcb:user4", 0 )/* 2MB for ASIC61 ROMs */
4066   ROM_REGION32_LE( 0x200000, "user4", 0 )/* 2MB for ASIC61 ROMs */
46824067   ROM_LOAD16_BYTE( "roads.0",     0x000000, 0x80000, CRC(cab2e335) SHA1(914996c5b7905f1c20fcda6972af88debbee59cd) )
46834068   ROM_LOAD16_BYTE( "roads.1",     0x000001, 0x80000, CRC(62c244ba) SHA1(f041a269f35a9d187c90241c5b64173663ad5268) )
46844069   ROM_LOAD16_BYTE( "roads.2",     0x000002, 0x80000, CRC(ba57f415) SHA1(1daf5a014e9bef15466b282bcca2395fec2b0628) )
46854070   ROM_LOAD16_BYTE( "roads.3",     0x000003, 0x80000, CRC(1e6a4ca0) SHA1(2cf06d6c73be11cf10515246fca2baa05ce5091b) )
46864071
4687   ROM_REGION( 0x10000, "mainpcb:ds3sdsp", 0 ) /* DS IV sound ADSP-2105 */
4072   ROM_REGION( 0x10000, "ds3sdsp", 0 ) /* DS IV sound ADSP-2105 */
46884073   ROM_LOAD( "sboota.bin", 0x00000, 0x10000, CRC(3ef819cd) SHA1(c547b869a3a37a82fb46584fe0ef0cfe21a4f882) )
46894074
4690   ROM_REGION( 0x10000, "mainpcb:ds3xdsp", 0 ) /* DS IV auxillary ADSP-2105 */
4075   ROM_REGION( 0x10000, "ds3xdsp", 0 ) /* DS IV auxillary ADSP-2105 */
46914076   ROM_LOAD( "xboota.bin", 0x00000, 0x10000, CRC(d9c49901) SHA1(9f90ae3a47eb1ef00c3ec3661f60402c2eae2108) )
46924077
4693   ROM_REGION16_BE( 0x400000, "mainpcb:ds3sdsp_data", 0 )
4078   ROM_REGION16_BE( 0x400000, "ds3sdsp_data", 0 )
46944079   ROM_LOAD16_BYTE( "ds3rom.5",    0x000000, 0x80000, CRC(6ef9ed90) SHA1(8bd927a56fe99f7db96d203c1daeb8c8c83f2c17) )
46954080   ROM_LOAD16_BYTE( "ds3rom.1",    0x000001, 0x80000, CRC(03673d8d) SHA1(13596f7acb58fba78d6e4f2ac7bb21d9d2589668) )
46964081   ROM_LOAD16_BYTE( "ds3rom.6",    0x100000, 0x80000, CRC(cd4cd6bc) SHA1(95689ab7cb18af54ff09aebf223f6346f13dfd7b) )
r241777r241778
47004085   ROM_LOAD16_BYTE( "ds3rom.0",    0x300000, 0x80000, CRC(90b8dbb6) SHA1(fff693cb81e88bc00e048bb71406295fe7be5122) )
47014086   ROM_LOAD16_BYTE( "ds3rom.4",    0x300001, 0x80000, CRC(6281efee) SHA1(47d0f3ff973166d818877996c45dccf1d3a85fe1) )
47024087
4703   ROM_REGION( 0x800, "mainpcb:200e", 0 )
4088   ROM_REGION( 0x800, "200e", 0 )
47044089   ROM_LOAD( "hdrivair.200e",      0x000000, 0x000800, CRC(6270b696) SHA1(e302880dbca53ee725108ca4f7e45a176e85e96d) )
47054090
4706   ROM_REGION( 0x800, "mainpcb:210e", 0 )
4091   ROM_REGION( 0x800, "210e", 0 )
47074092   ROM_LOAD( "hdrivair.210e",      0x000000, 0x000800, CRC(a1c39919) SHA1(92799a7a73f545dad6684eacf7009a6c4d52d8f7) )
47084093ROM_END
47094094
r241777r241778
49464331 *
49474332 *************************************/
49484333
4949void harddriv_state::init_harddriv(void)
4334DRIVER_INIT_MEMBER(harddriv_state,harddriv)
49504335{
49514336   /* initialize the boards */
49524337   init_driver();
r241777r241778
49694354}
49704355
49714356
4972void harddriv_state::init_harddrivc(void)
4357DRIVER_INIT_MEMBER(harddriv_state,harddrivc)
49734358{
49744359   /* initialize the boards */
49754360   init_multisync(1);
r241777r241778
49924377}
49934378
49944379
4995void harddriv_state::init_stunrun(void)
4380DRIVER_INIT_MEMBER(harddriv_state,stunrun)
49964381{
49974382   /* initialize the boards */
49984383   init_multisync(0);
r241777r241778
50094394}
50104395
50114396
5012void harddriv_state::init_racedriv(void)
4397DRIVER_INIT_MEMBER(harddriv_state,racedriv)
50134398{
50144399   /* initialize the boards */
50154400   init_driver();
r241777r241778
50184403   init_driver_sound();
50194404
50204405   /* set up the slapstic */
5021   m_slapstic_device->slapstic_init(machine(), 117);
4406   slapstic_init(machine(), 117);
50224407   m_m68k_slapstic_base = m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::rd68k_slapstic_r), this), write16_delegate(FUNC(harddriv_state::rd68k_slapstic_w), this));
50234408
50244409   /* synchronization */
r241777r241778
50394424   init_driver_sound();
50404425
50414426   /* set up the slapstic */
5042   m_slapstic_device->slapstic_init(machine(), 117);
4427   slapstic_init(machine(), 117);
50434428   m_m68k_slapstic_base = m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::rd68k_slapstic_r), this), write16_delegate(FUNC(harddriv_state::rd68k_slapstic_w), this));
50444429
50454430   /* synchronization */
r241777r241778
50584443   m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
50594444}
50604445
5061void harddriv_state::init_racedrivc(void) { racedrivc_init_common(0xfff95cd0); }
5062void harddriv_state::init_racedrivc1(void) { racedrivc_init_common(0xfff7ecd0); }
4446DRIVER_INIT_MEMBER(harddriv_state,racedrivc) { racedrivc_init_common(0xfff95cd0); }
4447DRIVER_INIT_MEMBER(harddriv_state,racedrivc1) { racedrivc_init_common(0xfff7ecd0); }
50634448
5064void harddriv_state::init_racedrivc_panorama_side()
4449DRIVER_INIT_MEMBER(harddriv_state,racedrivb1)
50654450{
5066   int gsp_protection = 0xfff960a0; // correct? same as strtdriv
5067   /* initialize the boards */
5068   init_multisync(1);
5069   init_adsp();
5070
5071   /* set up the slapstic */
5072   m_slapstic_device->slapstic_init(machine(), 117);
5073   m_m68k_slapstic_base = m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::rd68k_slapstic_r), this), write16_delegate(FUNC(harddriv_state::rd68k_slapstic_w), this));
5074
5075   /* set up protection hacks */
5076   m_gsp_protection = m_gsp->space(AS_PROGRAM).install_write_handler(gsp_protection, gsp_protection + 0x0f, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), this));
5077
5078   /* set up gsp speedup handler (todo, work these out) */
5079//   m_gsp_speedup_addr[0] = m_gsp->space(AS_PROGRAM).install_write_handler(0xfff76f60, 0xfff76f6f, write16_delegate(FUNC(harddriv_state::rdgsp_speedup1_w), this));
5080//   m_gsp->space(AS_PROGRAM).install_read_handler(0xfff76f60, 0xfff76f6f, read16_delegate(FUNC(harddriv_state::rdgsp_speedup1_r), this));
5081//   m_gsp_speedup_pc = 0xfff43a00;
5082
5083   /* set up adsp speedup handlers */
5084   m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
5085}
5086
5087void harddriv_state::init_racedrivb1(void)
5088{
50894451   /* this unpleasantness prevents racedriv1/racedrivb1/racedrivg1 from crashing MAME during boot */
50904452   /* they clear the DSP32C's RAM and then release it from reset, causing it to run through */
50914453   /* its address space recursively executing instructions */
r241777r241778
51374499}
51384500
51394501
5140void harddriv_state::init_steeltal(void)
4502DRIVER_INIT_MEMBER(harddriv_state,steeltal)
51414503{
51424504   steeltal_init_common(0x4fc18, 0);
51434505}
51444506
5145void harddriv_state::init_steeltal1(void)
4507DRIVER_INIT_MEMBER(harddriv_state,steeltal1)
51464508{
51474509   steeltal_init_common(0x4f9c6, 0);
51484510}
51494511
5150void harddriv_state::init_steeltalp(void)
4512DRIVER_INIT_MEMBER(harddriv_state,steeltalp)
51514513{
51524514   steeltal_init_common(0x52290, 1);
51534515}
51544516
51554517
5156void harddriv_state::init_strtdriv(void)
4518DRIVER_INIT_MEMBER(harddriv_state,strtdriv)
51574519{
51584520   /* initialize the boards */
51594521   init_multisync(1);
r241777r241778
51614523   init_dsk();
51624524
51634525   /* set up the slapstic */
5164   m_slapstic_device->slapstic_init(machine(), 117);
4526   slapstic_init(machine(), 117);
51654527   m_m68k_slapstic_base = m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::rd68k_slapstic_r), this), write16_delegate(FUNC(harddriv_state::rd68k_slapstic_w), this));
51664528
51674529   m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(FUNC(harddriv_state::hda68k_port1_r), this));
r241777r241778
51824544}
51834545
51844546
5185void harddriv_state::init_hdrivair(void)
4547DRIVER_INIT_MEMBER(harddriv_state,hdrivair)
51864548{
51874549   /* initialize the boards */
51884550   init_multisync(1);
r241777r241778
52074569}
52084570
52094571
5210void harddriv_state::init_hdrivairp(void)
4572DRIVER_INIT_MEMBER(harddriv_state,hdrivairp)
52114573{
52124574   /* initialize the boards */
52134575   init_multisync(1);
r241777r241778
52324594}
52334595
52344596
4597
52354598/*************************************
52364599 *
52374600 *  Game driver(s)
52384601 *
52394602 *************************************/
52404603
5241GAME( 1999, harddriv,   0,        harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 7)", 0 )
5242GAME( 1988, harddrivb,  harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 7)", 0 )
5243GAME( 1988, harddrivg,  harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, German, rev 7)", 0 )
5244GAME( 1988, harddrivj,  harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, Japan, rev 7)", 0 )
5245GAME( 1988, harddrivb6, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 6)", 0 )
5246GAME( 1988, harddrivj6, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, Japan, rev 6)", 0 )
5247GAME( 1988, harddrivb5, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 5)", 0 )
5248GAME( 1988, harddrivg4, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, German, rev 4)", 0 )
5249GAME( 1988, harddriv3,  harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 3)", 0 )
5250GAME( 1988, harddriv2,  harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 2)", 0 )
5251GAME( 1988, harddriv1,  harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 1)", 0 )
4604GAME( 1988, harddriv,   0,        harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 7)", 0 )
4605GAME( 1988, harddrivb,  harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 7)", 0 )
4606GAME( 1988, harddrivg,  harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, German, rev 7)", 0 )
4607GAME( 1988, harddrivj,  harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, Japan, rev 7)", 0 )
4608GAME( 1988, harddrivb6, harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 6)", 0 )
4609GAME( 1988, harddrivj6, harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, Japan, rev 6)", 0 )
4610GAME( 1988, harddrivb5, harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 5)", 0 )
4611GAME( 1988, harddrivg4, harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, German, rev 4)", 0 )
4612GAME( 1988, harddriv3,  harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 3)", 0 )
4613GAME( 1988, harddriv2,  harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 2)", 0 )
4614GAME( 1988, harddriv1,  harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 1)", 0 )
52524615
5253GAME( 1990, harddrivc,  harddriv, harddrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (compact, rev 2)", 0 )
5254GAME( 1990, harddrivcg, harddriv, harddrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (compact, German, rev 2)", 0 )
5255GAME( 1990, harddrivcb, harddriv, harddrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (compact, British, rev 2)", 0 )
5256GAME( 1990, harddrivc1, harddriv, harddrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (compact, rev 1)", 0 )
4616GAME( 1990, harddrivc,  harddriv, harddrivc, racedrivc, harddriv_state, harddrivc, ROT0, "Atari Games", "Hard Drivin' (compact, rev 2)", 0 )
4617GAME( 1990, harddrivcg, harddriv, harddrivc, racedrivc, harddriv_state, harddrivc, ROT0, "Atari Games", "Hard Drivin' (compact, German, rev 2)", 0 )
4618GAME( 1990, harddrivcb, harddriv, harddrivc, racedrivc, harddriv_state, harddrivc, ROT0, "Atari Games", "Hard Drivin' (compact, British, rev 2)", 0 )
4619GAME( 1990, harddrivc1, harddriv, harddrivc, racedrivc, harddriv_state, harddrivc, ROT0, "Atari Games", "Hard Drivin' (compact, rev 1)", 0 )
52574620
5258GAME( 1989, stunrun,   0,        stunrun_machine,  stunrun, driver_device,  0,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 6)", 0 )
5259GAME( 1989, stunrunj,  stunrun,  stunrun_machine,  stunrun, driver_device,  0,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 7, Japan)", 0 )
5260GAME( 1989, stunrun5,  stunrun,  stunrun_machine,  stunrun, driver_device,  0,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 5)", 0 )
5261GAME( 1989, stunrune,  stunrun,  stunrun_machine,  stunrun, driver_device,  0,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 5, Europe)", 0 )
5262GAME( 1989, stunrun4,  stunrun,  stunrun_machine,  stunrun, driver_device,  0,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 4)", 0 )
5263GAME( 1989, stunrun3,  stunrun,  stunrun_machine,  stunrun, driver_device,  0,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 3)", 0 )
5264GAME( 1989, stunrun3e, stunrun,  stunrun_machine,  stunrun, driver_device,  0,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 3, Europe)", 0 )
5265GAME( 1989, stunrun2,  stunrun,  stunrun_machine,  stunrun, driver_device,  0,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 2)", 0 )
5266GAME( 1989, stunrun2e, stunrun,  stunrun_machine,  stunrun, driver_device,  0,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 2, Europe)", 0 )
5267GAME( 1989, stunrun0,  stunrun,  stunrun_machine,  stunrun, driver_device,  0,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 0)", 0 )
5268GAME( 1989, stunrunp,  stunrun,  stunrun_machine,  stunrun, driver_device,  0,  ROT0, "Atari Games", "S.T.U.N. Runner (upright prototype)", 0 )
4621GAME( 1989, stunrun,   0,        stunrun,  stunrun, harddriv_state,  stunrun,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 6)", 0 )
4622GAME( 1989, stunrunj,  stunrun,  stunrun,  stunrun, harddriv_state,  stunrun,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 7, Japan)", 0 )
4623GAME( 1989, stunrun5,  stunrun,  stunrun,  stunrun, harddriv_state,  stunrun,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 5)", 0 )
4624GAME( 1989, stunrune,  stunrun,  stunrun,  stunrun, harddriv_state,  stunrun,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 5, Europe)", 0 )
4625GAME( 1989, stunrun4,  stunrun,  stunrun,  stunrun, harddriv_state,  stunrun,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 4)", 0 )
4626GAME( 1989, stunrun3,  stunrun,  stunrun,  stunrun, harddriv_state,  stunrun,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 3)", 0 )
4627GAME( 1989, stunrun3e, stunrun,  stunrun,  stunrun, harddriv_state,  stunrun,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 3, Europe)", 0 )
4628GAME( 1989, stunrun2,  stunrun,  stunrun,  stunrun, harddriv_state,  stunrun,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 2)", 0 )
4629GAME( 1989, stunrun2e, stunrun,  stunrun,  stunrun, harddriv_state,  stunrun,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 2, Europe)", 0 )
4630GAME( 1989, stunrun0,  stunrun,  stunrun,  stunrun, harddriv_state,  stunrun,  ROT0, "Atari Games", "S.T.U.N. Runner (rev 0)", 0 )
4631GAME( 1989, stunrunp,  stunrun,  stunrun,  stunrun, harddriv_state,  stunrun,  ROT0, "Atari Games", "S.T.U.N. Runner (upright prototype)", 0 )
52694632
5270GAME( 1990, racedriv,   0,        racedriv_machine, racedriv, driver_device, 0,   ROT0, "Atari Games", "Race Drivin' (cockpit, rev 5)", 0 )
5271GAME( 1990, racedrivb,  racedriv, racedriv_machine, racedriv, driver_device, 0,   ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 5)", 0 )
5272GAME( 1990, racedrivg,  racedriv, racedriv_machine, racedriv, driver_device, 0,   ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 5)", 0 )
5273GAME( 1990, racedriv4,  racedriv, racedriv_machine, racedriv, driver_device, 0,   ROT0, "Atari Games", "Race Drivin' (cockpit, rev 4)", 0 )
5274GAME( 1990, racedrivb4, racedriv, racedriv_machine, racedriv, driver_device, 0,   ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 4)", 0 )
5275GAME( 1990, racedrivg4, racedriv, racedriv_machine, racedriv, driver_device, 0,   ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 4)", 0 )
5276GAME( 1990, racedriv3,  racedriv, racedriv_machine, racedriv, driver_device, 0,   ROT0, "Atari Games", "Race Drivin' (cockpit, rev 3)", 0 )
5277GAME( 1990, racedriv2,  racedriv, racedriv_machine, racedriv, driver_device, 0,   ROT0, "Atari Games", "Race Drivin' (cockpit, rev 2)", 0 )
5278GAME( 1990, racedriv1,  racedriv, racedrivb1_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 1)", 0 )
5279GAME( 1990, racedrivb1, racedriv, racedrivb1_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 1)", 0 )
5280GAME( 1990, racedrivg1, racedriv, racedrivb1_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 2)", 0 )
4633GAME( 1990, racedriv,   0,        racedriv, racedriv, harddriv_state, racedriv,   ROT0, "Atari Games", "Race Drivin' (cockpit, rev 5)", 0 )
4634GAME( 1990, racedrivb,  racedriv, racedriv, racedriv, harddriv_state, racedriv,   ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 5)", 0 )
4635GAME( 1990, racedrivg,  racedriv, racedriv, racedriv, harddriv_state, racedriv,   ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 5)", 0 )
4636GAME( 1990, racedriv4,  racedriv, racedriv, racedriv, harddriv_state, racedriv,   ROT0, "Atari Games", "Race Drivin' (cockpit, rev 4)", 0 )
4637GAME( 1990, racedrivb4, racedriv, racedriv, racedriv, harddriv_state, racedriv,   ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 4)", 0 )
4638GAME( 1990, racedrivg4, racedriv, racedriv, racedriv, harddriv_state, racedriv,   ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 4)", 0 )
4639GAME( 1990, racedriv3,  racedriv, racedriv, racedriv, harddriv_state, racedriv,   ROT0, "Atari Games", "Race Drivin' (cockpit, rev 3)", 0 )
4640GAME( 1990, racedriv2,  racedriv, racedriv, racedriv, harddriv_state, racedriv,   ROT0, "Atari Games", "Race Drivin' (cockpit, rev 2)", 0 )
4641GAME( 1990, racedriv1,  racedriv, racedriv, racedriv, harddriv_state, racedrivb1, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 1)", 0 )
4642GAME( 1990, racedrivb1, racedriv, racedriv, racedriv, harddriv_state, racedrivb1, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 1)", 0 )
4643GAME( 1990, racedrivg1, racedriv, racedriv, racedriv, harddriv_state, racedrivb1, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 2)", 0 )
52814644
5282GAME( 1990, racedrivc,   racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, rev 5)", 0 )
5283GAME( 1990, racedrivcb,  racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, British, rev 5)", 0 )
5284GAME( 1990, racedrivcg,  racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, German, rev 5)", 0 )
5285GAME( 1990, racedrivc4,  racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, rev 4)", 0 )
5286GAME( 1990, racedrivcb4, racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, British, rev 4)", 0 )
5287GAME( 1990, racedrivcg4, racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, German, rev 4)", 0 )
5288GAME( 1990, racedrivc2,  racedriv, racedrivc1_machine, racedrivc, driver_device, 0,ROT0, "Atari Games", "Race Drivin' (compact, rev 2)", 0 )
5289GAME( 1990, racedrivc1,  racedriv, racedrivc1_machine, racedrivc, driver_device, 0,ROT0, "Atari Games", "Race Drivin' (compact, rev 1)", 0 )
4645GAME( 1990, racedrivc,   racedriv, racedrivc, racedrivc, harddriv_state, racedrivc, ROT0, "Atari Games", "Race Drivin' (compact, rev 5)", 0 )
4646GAME( 1990, racedrivcb,  racedriv, racedrivc, racedrivc, harddriv_state, racedrivc, ROT0, "Atari Games", "Race Drivin' (compact, British, rev 5)", 0 )
4647GAME( 1990, racedrivcg,  racedriv, racedrivc, racedrivc, harddriv_state, racedrivc, ROT0, "Atari Games", "Race Drivin' (compact, German, rev 5)", 0 )
4648GAME( 1990, racedrivc4,  racedriv, racedrivc, racedrivc, harddriv_state, racedrivc, ROT0, "Atari Games", "Race Drivin' (compact, rev 4)", 0 )
4649GAME( 1990, racedrivcb4, racedriv, racedrivc, racedrivc, harddriv_state, racedrivc, ROT0, "Atari Games", "Race Drivin' (compact, British, rev 4)", 0 )
4650GAME( 1990, racedrivcg4, racedriv, racedrivc, racedrivc, harddriv_state, racedrivc, ROT0, "Atari Games", "Race Drivin' (compact, German, rev 4)", 0 )
4651GAME( 1990, racedrivc2,  racedriv, racedrivc, racedrivc, harddriv_state, racedrivc1,ROT0, "Atari Games", "Race Drivin' (compact, rev 2)", 0 )
4652GAME( 1990, racedrivc1,  racedriv, racedrivc, racedrivc, harddriv_state, racedrivc1,ROT0, "Atari Games", "Race Drivin' (compact, rev 1)", 0 )
52904653
5291GAMEL( 1990, racedrivpan, racedriv, racedriv_panorama_machine, racedriv_pan, driver_device, 0, ROT0, "Atari Games", "Race Drivin' Panorama (prototype, rev 2.1)", GAME_NOT_WORKING, layout_racedrivpan ) // picking roadster crashes the side monitors?
4654GAME( 1990, racedrivpan, racedriv, racedriv, racedriv, harddriv_state, racedriv, ROT0, "Atari Games", "Race Drivin' Panorama (prototype, rev 2.1)", GAME_NOT_WORKING )
52924655
5293GAME( 1991, steeltal,  0,        steeltal_machine, steeltal, driver_device, 0, ROT0, "Atari Games", "Steel Talons (rev 2)", 0 )
5294GAME( 1991, steeltalg, steeltal, steeltal_machine, steeltal, driver_device, 0, ROT0, "Atari Games", "Steel Talons (German, rev 2)", 0 )
5295GAME( 1991, steeltal1, steeltal, steeltal1_machine, steeltal, driver_device, 0,ROT0, "Atari Games", "Steel Talons (rev 1)", 0 )
5296GAME( 1991, steeltalp, steeltal, steeltalp_machine, steeltal, driver_device, 0,ROT0, "Atari Games", "Steel Talons (prototype)", GAME_NOT_WORKING )
4656GAME( 1991, steeltal,  0,        steeltal, steeltal, harddriv_state, steeltal, ROT0, "Atari Games", "Steel Talons (rev 2)", 0 )
4657GAME( 1991, steeltalg, steeltal, steeltal, steeltal, harddriv_state, steeltal, ROT0, "Atari Games", "Steel Talons (German, rev 2)", 0 )
4658GAME( 1991, steeltal1, steeltal, steeltal, steeltal, harddriv_state, steeltal1,ROT0, "Atari Games", "Steel Talons (rev 1)", 0 )
4659GAME( 1991, steeltalp, steeltal, steeltal, steeltal, harddriv_state, steeltalp,ROT0, "Atari Games", "Steel Talons (prototype)", GAME_NOT_WORKING )
52974660
5298GAME( 1993, strtdriv, 0,        strtdriv_machine, strtdriv, driver_device, 0, ROT0, "Atari Games", "Street Drivin' (prototype)", 0 )
4661GAME( 1993, strtdriv, 0,        strtdriv, strtdriv, harddriv_state, strtdriv, ROT0, "Atari Games", "Street Drivin' (prototype)", 0 )
52994662
5300GAME( 1993, hdrivair,  0,        hdrivair_machine, hdrivair, driver_device, 0, ROT0, "Atari Games", "Hard Drivin's Airborne (prototype)", GAME_IMPERFECT_SOUND )
5301GAME( 1993, hdrivairp, hdrivair, hdrivairp_machine, hdrivair, driver_device, 0,ROT0, "Atari Games", "Hard Drivin's Airborne (prototype, early rev)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
5302
5303
4663GAME( 1993, hdrivair,  0,        hdrivair, hdrivair, harddriv_state, hdrivair, ROT0, "Atari Games", "Hard Drivin's Airborne (prototype)", GAME_IMPERFECT_SOUND )
4664GAME( 1993, hdrivairp, hdrivair, hdrivair, hdrivair, harddriv_state, hdrivairp,ROT0, "Atari Games", "Hard Drivin's Airborne (prototype, early rev)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
trunk/src/mame/drivers/lindbergh.c
r241777r241778
221221
222222#include "emu.h"
223223#include "cpu/i386/i386.h"
224#include "machine/pcshare.h"
225#include "machine/pckeybrd.h"
226#include "video/pc_vga.h"
224227#include "machine/pci.h"
225#include "machine/i82875p.h"
226#include "machine/i6300esb.h"
227#include "machine/pci-usb.h"
228#include "machine/pci-apic.h"
229#include "machine/pci-sata.h"
230#include "machine/pci-smbus.h"
231#include "machine/i82541.h"
232#include "machine/segabb.h"
233#include "sound/pci-ac97.h"
234#include "sound/sb0400.h"
235#include "video/gf6800gt.h"
236228
237class lindbergh_state : public driver_device
229class lindbergh_state : public pcat_base_state
238230{
239231public:
240232   lindbergh_state(const machine_config &mconfig, device_type type, const char *tag);
r241777r241778
243235   virtual void machine_reset();
244236};
245237
246#if 0
247238static ADDRESS_MAP_START(lindbergh_map, AS_PROGRAM, 32, lindbergh_state)
248239   AM_RANGE(0x00000000, 0x0009ffff) AM_RAM
249                            //   AM_RANGE(0x000a0000, 0x000bffff) AM_DEVREADWRITE8("vga", vga_device, mem_r, mem_w, 0xffffffff)
250                            //   AM_RANGE(0x000c0000, 0x000cffff) AM_ROM AM_REGION("vid_bios", 0)
240   AM_RANGE(0x000a0000, 0x000bffff) AM_DEVREADWRITE8("vga", vga_device, mem_r, mem_w, 0xffffffff)
241   AM_RANGE(0x000c0000, 0x000cffff) AM_ROM AM_REGION("vid_bios", 0)
251242//  0xd0000 - 0xdffff tested, wants 0x414d ("AM") in there
252243   AM_RANGE(0x000f0000, 0x000fffff) AM_ROM AM_REGION("mb_bios", 0xf0000)
253//   AM_RANGE(0xfd000000, 0xfd3fffff) AM_ROM AM_REGION("jvs_bios", 0)    /* Hack to see the data */
244   AM_RANGE(0xfd000000, 0xfd3fffff) AM_ROM AM_REGION("jvs_bios", 0)    /* Hack to see the data */
254245   AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("mb_bios", 0)     /* System BIOS */
255246ADDRESS_MAP_END
256247
257248static ADDRESS_MAP_START(lindbergh_io, AS_IO, 32, lindbergh_state)
258//   AM_IMPORT_FROM(pcat32_io_common)
249   AM_IMPORT_FROM(pcat32_io_common)
259250
260//   AM_RANGE(0x00e8, 0x00ef) AM_NOP
261//   AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_legacy_device, read, write)
251   AM_RANGE(0x00e8, 0x00ef) AM_NOP
252   AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_legacy_device, read, write)
262253ADDRESS_MAP_END
263#endif
264254
265lindbergh_state::lindbergh_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag)
255lindbergh_state::lindbergh_state(const machine_config &mconfig, device_type type, const char *tag) : pcat_base_state(mconfig, type, tag)
266256{
267257}
268258
r241777r241778
277267static MACHINE_CONFIG_START(lindbergh, lindbergh_state)
278268//  MCFG_CPU_ADD("maincpu", PENTIUM, 2800000000U) /* Actually Celeron D at 2,8 GHz */
279269   MCFG_CPU_ADD("maincpu", PENTIUM4, 28000000U*5) /* Actually Celeron D at 2,8 GHz */
280//   MCFG_CPU_PROGRAM_MAP(lindbergh_map)
281//   MCFG_CPU_IO_MAP(lindbergh_io)
282//   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb)
270   MCFG_CPU_PROGRAM_MAP(lindbergh_map)
271   MCFG_CPU_IO_MAP(lindbergh_io)
272   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb)
283273
284//   MCFG_FRAGMENT_ADD( pcat_common )
285//   MCFG_FRAGMENT_ADD( pcvideo_vga )
274   MCFG_FRAGMENT_ADD( pcat_common )
275   MCFG_FRAGMENT_ADD( pcvideo_vga )
286276
287//   MCFG_PCI_BUS_LEGACY_ADD("pcibus", 0)
288
289   MCFG_PCI_ROOT_ADD(                ":pci")
290   MCFG_I82875P_HOST_ADD(            ":pci:00.0",                        0x103382c0, ":maincpu", 512*1024*1024)
291   MCFG_I82875P_AGP_ADD(             ":pci:01.0")
292   MCFG_GEFORCE_6800GT_ADD(          ":pci:01.0:00.0",                   0x10de0204)
293   MCFG_PCI_BRIDGE_ADD(              ":pci:1c.0",      0x808625ae, 0x02)
294   MCFG_I82541PI_ADD(                ":pci:1c.0:00.0",                   0x103382c0)
295   MCFG_USB_UHCI_ADD(                ":pci:1d.0",      0x808625a9, 0x02, 0x103382c0)
296   MCFG_USB_UHCI_ADD(                ":pci:1d.1",      0x808625aa, 0x02, 0x103382c0)
297   MCFG_I6300ESB_WATCHDOG_ADD(       ":pci:1d.4",                        0x103382c0)
298   MCFG_APIC_ADD(                    ":pci:1d.5",      0x808625ac, 0x02, 0x103382c0)
299   MCFG_USB_EHCI_ADD(                ":pci:1d.7",      0x808625ad, 0x02, 0x103382c0)
300   MCFG_PCI_BRIDGE_ADD(              ":pci:1e.0",      0x8086244e, 0x0a)
301   MCFG_SB0400_ADD(                  ":pci:1e.0:02.0",                   0x11021101)
302   MCFG_SEGA_LINDBERGH_BASEBOARD_ADD(":pci:1e.0:03.0")
303   MCFG_I6300ESB_LPC_ADD(            ":pci:1f.0")
304   MCFG_SATA_ADD(                    ":pci:1f.2",      0x808625a3, 0x02, 0x103382c0)
305   MCFG_SMBUS_ADD(                   ":pci:1f.3",      0x808625a4, 0x02, 0x103382c0)
306   MCFG_AC97_ADD(                    ":pci:1f.5",      0x808625a6, 0x02, 0x103382c0)
277   MCFG_PCI_BUS_LEGACY_ADD("pcibus", 0)
307278MACHINE_CONFIG_END
308279
309280ROM_START(lindbios)
310   ROM_REGION32_LE(0x100000, ":pci:1f.0", 0) // PC bios, location 3j7
281   ROM_REGION32_LE(0x100000, "mb_bios", 0) // location 3j7
311282   ROM_SYSTEM_BIOS(0, "bios0", "6.0.0010 alternate version")
312283   ROMX_LOAD("6.0.0010a.bin", 0x00000, 0x100000, CRC(10dd9b76) SHA1(1fdf1f921bc395846a7c3180fbdbc4ca287a9670), ROM_BIOS(1) )
313284   ROM_SYSTEM_BIOS(1, "bios1", "6.0.0009")
r241777r241778
316287   ROMX_LOAD("6.0.0010.bin", 0x00000, 0x100000, CRC(ea2bf888) SHA1(c9c5b6f0d4f4f36620939b15dd2f128a74347e37), ROM_BIOS(3) )
317288
318289
319   ROM_REGION(0x400000, ":pci:1e.0:03.0", 0) // Baseboard MPC firmware
290   ROM_REGION(0x400000, "jvs_bios", 0)
320291   ROM_LOAD("fpr-24370b.ic6", 0x000000, 0x400000, CRC(c3b021a4) SHA1(1b6938a50fe0e4ae813864649eb103838c399ac0))
321292
322   ROM_REGION32_LE(0x10000, ":pci:01.0:00.0", 0) // Geforce bios extension (custom or standard?)
293   ROM_REGION(0x10000, "vid_bios", 0)
323294   ROM_LOAD("vid_bios.u504", 0x00000, 0x10000, CRC(f78d14d7) SHA1(f129787e487984edd23bf344f2e9500c85052275))
324295ROM_END
325296
326GAME(1999, lindbios, 0, lindbergh, 0, driver_device, 0, ROT0, "Sega Lindbergh", "Sega Lindbergh Bios", GAME_IS_SKELETON)
297GAME(1999, lindbios, 0, lindbergh, at_keyboard, driver_device, 0, ROT0, "Sega Lindbergh", "Sega Lindbergh Bios", GAME_IS_SKELETON)
trunk/src/mame/drivers/magictg.c
r241777r241778
118118#include "cpu/adsp2100/adsp2100.h"
119119#include "sound/dmadac.h"
120120#include "video/voodoo.h"
121#include "machine/lpci.h"
121#include "machine/pci.h"
122122
123123
124124/* TODO: Two 3Dfx Voodoo chipsets are used in SLI configuration */
trunk/src/mame/drivers/mediagx.c
r241777r241778
6666
6767#include "emu.h"
6868#include "cpu/i386/i386.h"
69#include "machine/lpci.h"
69#include "machine/pci.h"
7070#include "machine/pcshare.h"
7171#include "machine/pckeybrd.h"
7272#include "machine/idectrl.h"
trunk/src/mame/drivers/midqslvr.c
r241777r241778
2424
2525#include "emu.h"
2626#include "cpu/i386/i386.h"
27#include "machine/lpci.h"
27#include "machine/pci.h"
2828#include "machine/pcshare.h"
2929#include "machine/pckeybrd.h"
3030#include "machine/idectrl.h"
trunk/src/mame/drivers/naomi.c
r241777r241778
207207There are 6 known types of carts manufactured by Sega: 171-7885A, 171-7919A, 171-7930B, 171-7978B, 171-8132B, 171-8346C
208208There are also 2 types of carts manufactured by Namco: MASK-B, MASK-C
209209
210837-13591  171-7885A (C) Sega 1998
210837-14124  171-7885A (C) Sega 1998
211211|------------------------------------------------------------|
212212|                                          ----CN2----       -|
213213|                                                      JJ     |
r241777r241778
254254                                     Sticker    EPROM   MASKROMs    X76F100  EPM7064S  FPGA
255255Game                                 on cart    IC22#   # of SOP56  IC37#    IC41#     IC42#         Notes
256256-------------------------------------------------------------------------------------------------------------------------
257Club Kart European Session (2003, prototype)    *       21 (64Mb)   present  present   not present   *instead of EPROM have tiny PCB with 2 flashroms on it
258Crackin' DJ part 2                   840-0068C  23674   20 (64Mb)   present  present   317-0311-COM  PCB have label 840-0068B-01 837-14124
259House of the Dead 2 (prototype)                 A1E2    21 (64Mb)   present  present   present, no label
257Crackin' DJ part 2                   840-0068C  23674   20 (64Mb)   present  present   317-0311-COM
260258Inu No Osanpo / Dog Walking (Rev A)  840-0073C  22294A  16 (64Mb)   present  present   317-0316-JPN
261Samba de Amigo (prototype)                      *       21 (64Mb)   present  present   317-0270-COM  *instead of EPROM have tiny PCB with 2 flashroms on it
262259Soul Surfer (Rev A)                  840-0095C  23838C  21 (64Mb)   present  present   not present   todo: verify if it's Rev A or Rev C
263260Star Horse (server)                  840-0055C  23626   17 (64Mb)   present  present   not present
264261The King of Route 66 (Rev A)         840-0087C  23819A  20 (64Mb)   present  present   not present
265Virtua NBA (prototype)                          *       21 (64Mb)   present  present   317-0271-COM  *instead of EPROM have tiny PCB with 2 flashroms on it
262Club Kart European Session (2003, prototype) ?  *       21 (64Mb)   present  present   not present   *instead of EPROM have tiny PCB with 2 flashroms on it
266263
267264
268265
r241777r241778
295292   CN1/2/3  - connectors joining to main board
296293
297294Games known to use this PCB include....
298                                                Sticker      EPROM   MASKROMs    X76F100  XC9536    315-5881
299Game                                            on cart      IC22#   # of SOP44  IC37#    IC41#     IC42#          Notes
295                                                Sticker    EPROM   MASKROMs    X76F100  XC9536    315-5881
296Game                                            on cart    IC22#   # of SOP44  IC37#    IC41#     IC42#          Notes
300297-------------------------------------------------------------------------------------------------------------------------
30118 Wheeler (Deluxe) (Rev A)                     840-0023C    22185A  20 (64Mb)   present  315-6213  317-0273-COM
30218 Wheeler (Standard)                           840-0036C    23298   20 (64Mb)   present  315-6213  317-0273-COM
30318 Wheeler (Upright)                            840-0037C    23299   20 (64Mb)   present  315-6213  317-0273-COM
304Airline Pilots (Rev A)                          840-0005C    21739A  11 (64Mb)   present  315-6213  317-0251-COM
305Airline Pilots Deluxe (Rev B)                   ?            21787B  11 (64Mb)   present  315-6213  317-0251-COM   2 know BIOS 21801 (USA), 21802 (EXP)
306Cosmic Smash                                    840-0044C    23428    8 (64Mb)   ?        315-6213  317-0289-COM   joystick + 2 buttons
307Cosmic Smash (Rev A)                            840-0044C    23428A   8 (64Mb)   ?        315-6213  317-0289-COM   joystick + 2 buttons
308Crazy Taxi                                      840-0002C    21684   13 (64Mb)*  none     315-6213  317-0248-COM   * ic8 and ic9 are not present
309Dead Or Alive 2                                 841-0003C    22121   21 (64Mb)   present  315-6213  317-5048-COM   joystick + 3 buttons
310Dead Or Alive 2 Millennium                      841-0003C    DOA2 M  21 (64Mb)   present  315-6213  317-5048-COM   joystick + 3 buttons
311Death Crimson OX                                841-0016C    23524   10 (64Mb)   present  315-6213  317-5066-COM
312Dengen Tenshi Taisen Janshi Shangri-La          841-0004C    22060   12 (64Mb)   ?        315-6213  317-5050-JPN
313Derby Owners Club (Rev B)                       840-0016C    22099B  14 (64Mb)   ?        315-6213  317-0262-JPN   touch panel + 2 buttons + card reader
314Derby Owners Club 2000 Ver.2 (Rev A)            840-0052C    22284A  16 (64Mb)   present  315-6213  not present
315Dynamite Baseball '99 / World Series'99 (Rev B) 840-0019C    22141B  19 (64Mb)   ?        315-6213  317-0269-JPN   requires special panel (joystick + 2 buttons + bat controller for each player)
316Dynamite Baseball Naomi                         840-0001C    21575   21 (64Mb)   ?        315-6213  317-0246-JPN   requires special panel (joystick + 2 buttons + bat controller for each player)
317Ferrari F355 Challenge                          834-13842    21902   21 (64Mb)   present  315-6213  317-0254-COM
318Ferrari F355 Challenge 2 Twin                   840-0042C    23399   21 (64Mb)   present  315-6213  317-0287-COM   2 know BIOS 22850 (USA), 22851 (EXP)
319Ferrari F355 Challenge Twin                     834-13950    22848   21 (64Mb)   present  315-6213  317-0267-COM   2 know BIOS 22850 (USA), 22851 (EXP)
320Giant Gram: All Japan Pro Wrestling 2           840-0007C    21820    9 (64Mb)   ?        315-6213  317-0253-JPN   joystick + 3 buttons
321Guilty Gear X                                   841-0013C    23356   14 (64Mb)   ?        315-6213  317-5063-COM
322Gun Spike / Cannon Spike                        841-0012C    23210   12 (64Mb)   present  315-6213  317-5060-COM
323Heavy Metal Geomatrix (Rev A)                   HMG016007    23716A  11 (64Mb)   present  315-6213  317-5071-COM   joystick + 2 buttons
324House of the Dead 2                             834-13636    21385   20 (64Mb)   none     315-6213  not present
325Idol Janshi Suchie-Pai 3                        841-0002C    21979   14 (64Mb)   ?        315-6213  317-5047-JPN   requires special I/O board and mahjong panel
326Jambo! Safari (Rev A)                           840-0013C    22826A   8 (64Mb)   ?        315-6213  317-0264-COM
327Mars TV                                         840-0025C    22993   15 (64Mb)   present  315-6213  317-0074-JPN
328OutTrigger                                      840-0017C    22163   19 (64Mb)   ?        315-6213  317-0266-COM   requires analog controllers/special panel
329Power Stone                                     841-0001C    21597    8 (64Mb)   present  315-6213  317-5046-COM   joystick + 3 buttons
330Power Stone 2                                   841-0008C    23127    9 (64Mb)   present  315-6213  317-5054-COM   joystick + 3 buttons
331Puyo Puyo Da!                                   841-0006C    22206   20 (64Mb)   ?        ?         ?
332Ring Out 4x4                                    840-0004C    21779   10 (64Mb)   present  315-6213  317-0250-COM
333Samba de Amigo (Rev B)                          840-0020C    22966B  16 (64Mb)   present  315-6213  317-0270-COM   will boot but requires special controller to play it
334Sega Marine Fishing                             840-0027C    22221   10 (64Mb)   ?        315-6213  not present    ROM 3&4 not present. Requires special I/O board and fishing controller
335Sega Strike Fighter (Rev A)                     840-0035C    23323A  20 (64Mb)   present  315-6213  317-0281-COM
336Sega Tetris                                     840-0018C    22909    6 (64Mb)   present  315-6213  317-0268-COM
337Slashout                                        840-0041C    23341   17 (64Mb)   ?        315-6213  317-0286-COM   joystick + 4 buttons
338Spawn In the Demon's Hand (Rev B)               841-0005C    22977B  10 (64Mb)   ?        315-6213  317-5051-COM   joystick + 4 buttons
339The Typing of the Dead (Rev A)                  840-0026C    23021A  20 (64Mb)   present  315-6213  not present
340Touch de UNO! / Unou Nouryoku Check Machine     840-0008C    22073    4 (64Mb)   present  315-6213  317-0255-JPN
341Toy Fighter / Waffupu                           840-0011C    22035   10 (64Mb)   present  315-6212  317-0257-COM   joystick + 3 buttons
342Virtua NBA                                      840-0021C-01 23073   21 (64Mb)   present  315-6213  not present
343Virtua NBA (original)                           840-0021C    22949   21 (64Mb)   present  315-6213  317-0271-COM
344Virtua Striker 2 Ver. 2000 (Rev C)              840-0010C    21929C  14 (64Mb)*  present  315-6213  317-0258-COM   joystick + 3 buttons *(+1x 32Mb)
345Virtua Tennis / Power Smash                     840-0015C    22927   11 (64Mb)   present  315-6213  317-0263-COM
346Zombie Revenge                                  840-0003C    21707   19 (64Mb)   ?        315-6213  317-0249-COM   joystick + 3 buttons
29818 Wheeler (Deluxe) (Rev A)                     840-0023C  22185A  20 (64Mb)   present  315-6213  317-0273-COM
29918 Wheeler (Standard)                           840-0036C  23298   20 (64Mb)   present  315-6213  317-0273-COM
30018 Wheeler (Upright)                            840-0037C  23299   20 (64Mb)   present  315-6213  317-0273-COM
301Airline Pilots (Rev A)                          840-0005C  21739A  11 (64Mb)   present  315-6213  317-0251-COM
302Airline Pilots Deluxe (Rev B)                   ?          21787B  11 (64Mb)   present  315-6213  317-0251-COM   2 know BIOS 21801 (USA), 21802 (EXP)
303Cosmic Smash                                    840-0044C  23428    8 (64Mb)   ?        315-6213  317-0289-COM   joystick + 2 buttons
304Cosmic Smash (Rev A)                            840-0044C  23428A   8 (64Mb)   ?        315-6213  317-0289-COM   joystick + 2 buttons
305Crazy Taxi                                      840-0002C  21684   13 (64Mb)*  ?        315-6213  317-0248-COM   * ic8 and ic9 are not present
306Dead Or Alive 2                                 841-0003C  22121   21 (64Mb)   present  315-6213  317-5048-COM   joystick + 3 buttons
307Dead Or Alive 2 Millennium                      841-0003C  DOA2 M  21 (64Mb)   present  315-6213  317-5048-COM   joystick + 3 buttons
308Death Crimson OX                                841-0016C  23524   10 (64Mb)   present  315-6213  317-5066-COM
309Dengen Tenshi Taisen Janshi Shangri-La          841-0004C  22060   12 (64Mb)   ?        315-6213  317-5050-JPN
310Derby Owners Club (Rev B)                       840-0016C  22099B  14 (64Mb)   ?        315-6213  317-0262-JPN   touch panel + 2 buttons + card reader
311Derby Owners Club 2000 Ver.2 (Rev A)            840-0052C  22284A  16 (64Mb)   present  315-6213  not present
312Dynamite Baseball '99 / World Series'99 (Rev B) 840-0019C  22141B  19 (64Mb)   ?        315-6213  317-0269-JPN   requires special panel (joystick + 2 buttons + bat controller for each player)
313Dynamite Baseball Naomi                         840-0001C  21575   21 (64Mb)   ?        315-6213  317-0246-JPN   requires special panel (joystick + 2 buttons + bat controller for each player)
314Ferrari F355 Challenge                          834-13842  21902   21 (64Mb)   present  315-6213  317-0254-COM
315Ferrari F355 Challenge 2 Twin                   840-0042C  23399   21 (64Mb)   ?        315-6213  317-0287-COM   2 know BIOS 22850 (USA), 22851 (EXP)
316Ferrari F355 Challenge Twin                     834-13950  22848   21 (64Mb)   present  315-6213  317-0267-COM   2 know BIOS 22850 (USA), 22851 (EXP)
317Giant Gram: All Japan Pro Wrestling 2           840-0007C  21820    9 (64Mb)   ?        315-6213  317-0253-JPN   joystick + 3 buttons
318Guilty Gear X                                   841-0013C  23356   14 (64Mb)   ?        315-6213  317-5063-COM
319Gun Spike / Cannon Spike                        841-0012C  23210   12 (64Mb)   present  315-6213  317-5060-COM
320Heavy Metal Geomatrix (Rev A)                   HMG016007  23716A  11 (64Mb)   present  315-6213  317-5071-COM   joystick + 2 buttons
321Idol Janshi Suchie-Pai 3                        841-0002C  21979   14 (64Mb)   ?        315-6213  317-5047-JPN   requires special I/O board and mahjong panel
322Jambo! Safari (Rev A)                           840-0013C  22826A   8 (64Mb)   ?        315-6213  317-0264-COM
323Mars TV                                         840-0025C  22993   15 (64Mb)   present  315-6213  317-0074-JPN
324OutTrigger                                      840-0017C  22163   19 (64Mb)   ?        315-6213  317-0266-COM   requires analog controllers/special panel
325Power Stone                                     841-0001C  21597    8 (64Mb)   present  315-6213  317-5046-COM   joystick + 3 buttons
326Power Stone 2                                   841-0008C  23127    9 (64Mb)   present  315-6213  317-5054-COM   joystick + 3 buttons
327Puyo Puyo Da!                                   841-0006C  22206   20 (64Mb)   ?        ?         ?
328Ring Out 4x4                                    840-0004C  21779   10 (64Mb)   ?        ?         ?
329Samba de Amigo (prototype)                      840-0020C  proto   16 (64Mb)   ?        315-6213  317-0270-COM   will boot but requires special controller to play it
330Samba de Amigo (Rev B)                          840-0020C  22966B  16 (64Mb)   ?        315-6213  317-0270-COM   will boot but requires special controller to play it
331Sega Marine Fishing                             840-0027C  22221   10 (64Mb)   ?        315-6213  not present    ROM 3&4 not present. Requires special I/O board and fishing controller
332Sega Strike Fighter (Rev A)                     840-0035C  23323A  20 (64Mb)   present  315-6213  317-0281-COM
333Sega Tetris                                     840-0018C  22909    6 (64Mb)   present  315-6213  317-0268-COM
334Slashout                                        840-0041C  23341   17 (64Mb)   ?        315-6213  317-0286-COM   joystick + 4 buttons
335Spawn In the Demon's Hand (Rev B)               841-0005C  22977B  10 (64Mb)   ?        315-6213  317-5051-COM   joystick + 4 buttons
336The Typing of the Dead (Rev A)                  840-0026C  23021A  20 (64Mb)   present  315-6213  not present
337Touch de UNO! / Unou Nouryoku Check Machine     840-0008C  22073    4 (64Mb)   present  315-6213  317-0255-JPN
338Toy Fighter / Waffupu                           840-0011C  22035   10 (64Mb)   present  315-6212  317-0257-COM   joystick + 3 buttons
339Virtua NBA                                      840-0021C  23073   21 (64Mb)   present  315-6213  not present
340Virtua NBA (original)                           840-0021C  23073   21 (64Mb)   ?        315-6213  not present
341Virtua Striker 2 Ver. 2000 (Rev C)              840-0010C  21929C  14 (64Mb)*  present  315-6213  317-0258-COM   joystick + 3 buttons *(+1x 32Mb)
342Virtua Tennis / Power Smash                     840-0015C  22927   11 (64Mb)   present  315-6213  317-0263-COM
343Zombie Revenge                                  840-0003C  21707   19 (64Mb)   ?        315-6213  317-0249-COM   joystick + 3 buttons
347344
348345
349346
r241777r241778
500497Club Kart: European Session                     840-0062C  23704   11 (128Mb)  315-6319A  present   317-0313-COM
501498Club Kart: European Session (Rev D)             840-0062C  23704D  11 (128Mb)  315-6319A  present   317-0313-COM
502499Club Kart: European Session (Rev C)             840-0062C          11 (128Mb)  315-6319A  present   317-0313-COM  EPR have handwritten Japanese label possible readable as 'teteto 74 lcl'
503Crackin' DJ                                     840-0043C  23450  10 (128Mb)  315-6319   present   317-0288-COM
500Crackin' DJ                                     840-0043C  23450D  10 (128Mb)  315-6319   present   ?
504501Derby Owners Club II (Rev B)                    840-0083C  22306B  11 (128Mb)  315-6319A  present   not present
505502Derby Owners Club World Edition (Rev C)         840-0088C  22336C   7 (128Mb)  315-6319A  present   not present
506503Derby Owners Club World Edition (Rev D)         840-0088C  22336D   7 (128Mb)  315-6319A  present   not present   2 MaskROM are different from Rev C
r241777r241778
509506Moero Justice Gakuen / Project Justice (Rev A)  841-0015C  23548A  11 (128Mb)  315-6319A  present   317-5065-COM
510507Mushiking 2K5 1ST (Ver 1.000)                   840-0158C  24286    7 (128Mb)  315-6319A  present   not present
511508Oinori-daimyoujin Matsuri                       840-0126B  24053    5 (128Mb)  315-6319A  present   not present
512Samba de Amigo Ver. 2000                        840-0047C  23600   11 (128Mb) 315-6319A  present   317-0295-COM
509Samba de Amigo Ver. 2000                        840-0047C  23600   21 (64Mb)* 315-6319A  present   317-0295-COM  most likely MaskROM size is wrong, needs verification
513510Star Horse (big screens)                        840-0054C  23625    4 (128Mb)  315-6319   present   not present
514511Star Horse (client)                             840-0056C  23627    6 (128Mb)* 315-6319   present   not present   * +1 (64Mb)
515512Star Horse Progress (Rev A)                     840-0123C  24122A   7 (128Mb)  315-6319A  present   not present   requires an additional middle board n? 837-13785
r241777r241778
37243721   ROM_LOAD("mpr-21898.ic18s", 0x9000000, 0x0800000, CRC(cacea996) SHA1(df2b7ce00d8d6171806f676966f5f45d7fb76431) )
37253722   ROM_LOAD("mpr-21899.ic19s", 0x9800000, 0x0800000, CRC(14a4b87d) SHA1(33177dea88c6aec31e2c16c8d0d3f29c7ea772c5) )
37263723   ROM_LOAD("mpr-21900.ic20s", 0xa000000, 0x0800000, CRC(81901130) SHA1(1573b5c4360e29ba1a4b4901af49d5399fa1e635) )
3727   ROM_LOAD("mpr-21901.ic21s", 0xa800000, 0x0800000, CRC(266a3eea) SHA1(795ecc5589a0152b9cf1e03e454ed1ea01501942) )
3724   ROM_LOAD("mpr-21901.ic21s", 0xa800000, 0x0800000, BAD_DUMP CRC(55dcbd6d) SHA1(9fec353f9e58016090e177f899a799e2e8fc7c9f) ) // returns bad in Naomi test mode.  ROM reads different each time and fails test mode on real h/w, need a new cart
37283725
37293726   ROM_REGION( 4, "rom_key", 0 )
37303727   ROM_LOAD( "f355-key.bin", 0, 4, CRC(7d1431ab) SHA1(38958860241c600db941b47294bf3ca3273d0df5) )
r241777r241778
41874184   NAOMI_BIOS
41884185   NAOMI_DEFAULT_EEPROM
41894186
4190   ROM_REGION( 0xb800000, "rom_board", ROMREGION_ERASEFF)
4191   ROM_LOAD( "epr-23600.ic22", 0x00000000, 0x0400000, CRC(8b6fed00) SHA1(72842f266ad272e4c02be42a6529c2462fd8b63f) )
4192   ROM_LOAD( "mpr-23589.ic1",  0x00800000, 0x1000000, CRC(11c442ed) SHA1(07a463148744a4e254bd88e51eda34f27f92f1cd) )
4193   ROM_LOAD( "mpr-23590.ic2",  0x01800000, 0x1000000, CRC(8e5959e6) SHA1(bafd00399cf3ffa50f2b55942e8424a8ae3b351d) )
4194   ROM_LOAD( "mpr-23591.ic3",  0x02800000, 0x1000000, CRC(bc9ad236) SHA1(d6f89fce7e5da0d71a536beed99aacb856455b80) )
4195   ROM_LOAD( "mpr-23592.ic4",  0x03800000, 0x1000000, CRC(eed8c7a8) SHA1(1a25b9e080ec68c42a4866bc3fd28aeae3567e86) )
4196   ROM_LOAD( "mpr-23593.ic5",  0x04800000, 0x1000000, CRC(8f704190) SHA1(6d13456fdddba70ad3e2449a002fb776b2315744) )
4197   ROM_LOAD( "mpr-23594.ic6",  0x05800000, 0x1000000, CRC(4986f81d) SHA1(8e56aa8e513a2fae087e6f6d7d0b1e3bff5f53de) )
4198   ROM_LOAD( "mpr-23595.ic7",  0x06800000, 0x1000000, CRC(f44e62a6) SHA1(51ccfa875e3f6e78ea13edcc016f9e643077d697) )
4199   ROM_LOAD( "mpr-23596.ic8",  0x07800000, 0x1000000, CRC(47b89407) SHA1(d40b71b7861b296944624ca8c0a3a306094c9db5) )
4200   ROM_LOAD( "mpr-23597.ic9",  0x08800000, 0x1000000, CRC(ef5bd4e8) SHA1(b4371e5dfbf3b011f2668b1522b0bc7def47b8ae) )
4201   ROM_LOAD( "mpr-23598.ic10", 0x09800000, 0x1000000, CRC(e06ee3dd) SHA1(21985e45e1ab5e3a79dd52492a582324a1a36d56) )
4202   ROM_LOAD( "mpr-23599.ic11", 0x0a800000, 0x1000000, CRC(1fd2e792) SHA1(6f299e527be529f85d0e8b4ce0e7a06ac0d25fe9) )
4187   ROM_REGION( 0xb000000, "rom_board", ROMREGION_ERASEFF)
4188   ROM_LOAD( "epr-23600.ic22",  0x0000000, 0x400000, CRC(8b6fed00) SHA1(72842f266ad272e4c02be42a6529c2462fd8b63f) )
4189   ROM_LOAD( "mpr-23579.ic1",   0x0800000, 0x800000, CRC(ded76d71) SHA1(9187434587173f2fcc50af817222121703c253b7) )
4190   ROM_LOAD( "mpr-23580.ic2",   0x1000000, 0x800000, CRC(a9b29be1) SHA1(4f71b37b21623d87d805cb8d7b9da73bca1d22f3) )
4191   ROM_LOAD( "mpr-23581.ic3",   0x1800000, 0x800000, CRC(7c44d4c9) SHA1(a2c6e7392a2b52c1b5c0b133bb95fbe53736ca3e) )
4192   ROM_LOAD( "mpr-23582.ic4",   0x2000000, 0x800000, CRC(99b1af20) SHA1(598abe358d6c97a0ad6d68f5273cea1b96f73237) )
4193   ROM_LOAD( "mpr-23583.ic5",   0x2800000, 0x800000, CRC(7a81bbd1) SHA1(e36895d8964d1cdd3f316f0ec27356faa3d3f6e0) )
4194   ROM_LOAD( "mpr-23584.ic6",   0x3000000, 0x800000, CRC(e478b1df) SHA1(5b316feb618a0a61974c3fb5b4c5527873055a5b) )
4195   ROM_LOAD( "mpr-23585.ic7",   0x3800000, 0x800000, CRC(2f378c38) SHA1(881c6001c173c1ef8ddbb3ae15667e45fac11f96) )
4196   ROM_LOAD( "mpr-23586.ic8",   0x4000000, 0x800000, CRC(23bec2a7) SHA1(960a6613966bedf20c19454bbc5ec52d14c3f308) )
4197   ROM_LOAD( "mpr-23587.ic9",   0x4800000, 0x800000, CRC(f52a356b) SHA1(4e3783f5e8d02d09f474cc5ece457af5c4296508) )
4198   ROM_LOAD( "mpr-23588.ic10",  0x5000000, 0x800000, CRC(4bae020b) SHA1(e3750f87309c7ac9ab6fc504a9377971451ccb5a) )
4199   ROM_LOAD( "mpr-23589.ic11",  0x5800000, 0x800000, CRC(f6a09854) SHA1(d4ae9d7ddc349e353196cb145f732798a692e560) )
4200   ROM_LOAD( "mpr-23590.ic12s", 0x6000000, 0x800000, CRC(88e29d52) SHA1(42b66f13302772729920b9af546123c771ecec6b) )
4201   ROM_LOAD( "mpr-23591.ic13s", 0x6800000, 0x800000, CRC(8736d9b1) SHA1(d829d499dc147f0d14413554ff33187c7df9134f) )
4202   ROM_LOAD( "mpr-23592.ic14s", 0x7000000, 0x800000, CRC(c7dbeefd) SHA1(7b84d2f5532668936f60314fb3e112b1350bcc51) )
4203   ROM_LOAD( "mpr-23593.ic15s", 0x7800000, 0x800000, CRC(c8d63355) SHA1(64b06027ebbcfb72ead1d2041423ffd2fe4dcd97) )
4204   ROM_LOAD( "mpr-23594.ic16s", 0x8000000, 0x800000, CRC(30a04934) SHA1(5b3e5226b1eef9f2d9a64b89307380e2b347547e) )
4205   ROM_LOAD( "mpr-23595.ic17s", 0x8800000, 0x800000, CRC(1fea68ad) SHA1(d4615f6ea0b9ce6483cb688810ef7ae287aef082) )
4206   ROM_LOAD( "mpr-23596.ic18s", 0x9000000, 0x800000, CRC(2e57f934) SHA1(9231d3b881e210fa83dda8f03a1702166eb48750) )
4207   ROM_LOAD( "mpr-23597.ic19s", 0x9800000, 0x800000, CRC(fb50cfdb) SHA1(2e95407b1c8660ae8e85b2d06c13bdc474b93d6e) )
4208   ROM_LOAD( "mpr-23598.ic20s", 0xa000000, 0x800000, CRC(897c2304) SHA1(e21b68fd935092b5bd019e3087647e9612be1169) )
4209   ROM_LOAD( "mpr-23599.ic21s", 0xa800000, 0x800000, CRC(f2d1f73f) SHA1(40ac3ef9b1c3797e986fc4a0c593dd4e49df8892) )
4210   // maskrom labels and number/size needs verification
42034211
42044212   ROM_REGION( 4, "rom_key", 0 )
42054213   ROM_LOAD( "samba2k-key.bin", 0, 4, CRC(01c0d74a) SHA1(4461cfd761919ba4bc6f1d1839a880f11eaf8d0f) )
r241777r241778
63436351
63446352   ROM_REGION( 0x5800000, "rom_board", ROMREGION_ERASEFF)
63456353   ROM_LOAD( "epr-21779a.ic22",0x0000000, 0x400000, CRC(1d419767) SHA1(33065006ef437845abcf32a59e78f4bc202c4460) )
6346   ROM_LOAD( "mpr-21761.ic1",  0x0800000, 0x800000, CRC(493199fc) SHA1(189cd9a20c9207f0238e6d2e867f1479a476dfaa) )
6347   ROM_LOAD( "mpr-21762.ic2",  0x1000000, 0x800000, CRC(68173ace) SHA1(0869072915543dd5dfa6d3cdb95205521b4a3bf4) )
6348   ROM_LOAD( "mpr-21763.ic3",  0x1800000, 0x800000, CRC(41badfc3) SHA1(d4062bdbb994b8c18dac20948db9a9550f030865) )
6349   ROM_LOAD( "mpr-21764.ic4",  0x2000000, 0x800000, CRC(a8dfb537) SHA1(9f6c98ee23842b22fa3b701dad0a384a24a9bc6a) )
6350   ROM_LOAD( "mpr-21765.ic5",  0x2800000, 0x800000, CRC(3f1f5ed4) SHA1(a7d6e65fba9732efbd99e10a609f41dd03fd3bb8) )
6351   ROM_LOAD( "mpr-21766.ic6",  0x3000000, 0x800000, CRC(5a1114f0) SHA1(a45fc82bccb40e582f107b86403409651476180e) )
6352   ROM_LOAD( "mpr-21767.ic7",  0x3800000, 0x800000, CRC(5645a95c) SHA1(f0e97ff5b744972a1fa4e03e6d16a19ba20fb930) )
6353   ROM_LOAD( "mpr-21768.ic8",  0x4000000, 0x800000, CRC(22fc33dc) SHA1(922c41f7fb22b26037446bdfb4f9788a8e0c3e46) )
6354   ROM_LOAD( "mpr-21769.ic9",  0x4800000, 0x800000, CRC(6d22d29d) SHA1(382dcd62065437b34fe101144b1c047eb261f047) )
6355   ROM_LOAD( "mpr-21770.ic10", 0x5000000, 0x800000, CRC(c5308e61) SHA1(e51f8026351d5ffbda2a5bed39aeef543366febf) )
6354   ROM_LOAD( "mpr-21769.ic1",  0x0800000, 0x800000, CRC(493199fc) SHA1(189cd9a20c9207f0238e6d2e867f1479a476dfaa) )
6355   ROM_LOAD( "mpr-21770.ic2",  0x1000000, 0x800000, CRC(68173ace) SHA1(0869072915543dd5dfa6d3cdb95205521b4a3bf4) )
6356   ROM_LOAD( "mpr-21771.ic3",  0x1800000, 0x800000, CRC(41badfc3) SHA1(d4062bdbb994b8c18dac20948db9a9550f030865) )
6357   ROM_LOAD( "mpr-21772.ic4",  0x2000000, 0x800000, CRC(a8dfb537) SHA1(9f6c98ee23842b22fa3b701dad0a384a24a9bc6a) )
6358   ROM_LOAD( "mpr-21773.ic5",  0x2800000, 0x800000, CRC(3f1f5ed4) SHA1(a7d6e65fba9732efbd99e10a609f41dd03fd3bb8) )
6359   ROM_LOAD( "mpr-21774.ic6",  0x3000000, 0x800000, CRC(5a1114f0) SHA1(a45fc82bccb40e582f107b86403409651476180e) )
6360   ROM_LOAD( "mpr-21775.ic7",  0x3800000, 0x800000, CRC(5645a95c) SHA1(f0e97ff5b744972a1fa4e03e6d16a19ba20fb930) )
6361   ROM_LOAD( "mpr-21776.ic8",  0x4000000, 0x800000, CRC(22fc33dc) SHA1(922c41f7fb22b26037446bdfb4f9788a8e0c3e46) )
6362   ROM_LOAD( "mpr-21777.ic9",  0x4800000, 0x800000, CRC(6d22d29d) SHA1(382dcd62065437b34fe101144b1c047eb261f047) )
6363   ROM_LOAD( "mpr-21778.ic10", 0x5000000, 0x800000, CRC(c5308e61) SHA1(e51f8026351d5ffbda2a5bed39aeef543366febf) )
6364   // maskrom labels needs verification
63566365
63576366   ROM_REGION( 4, "rom_key", 0 )
63586367   ROM_LOAD( "ringout-key.bin", 0, 4, CRC(8f8c4eb2) SHA1(9bc59c69d04d9ce876415af048f39095ed680a5e) )
r241777r241778
63646373
63656374   ROM_REGION( 0x7000000, "rom_board", ROMREGION_ERASEFF)
63666375   ROM_LOAD( "epr-23198.ic22",  0x0000000, 0x400000, CRC(9852eda2) SHA1(71ded8cbdf567afeff30bd593071ce3b7d84a260) )
6367   ROM_LOAD( "mpr-23182.ic1",   0x0800000, 0x800000, CRC(c4fc1d45) SHA1(cfeff71ac1cccf274f00731fe1ffc182fb85f7a6) )
6368   ROM_LOAD( "mpr-23183.ic2",   0x1000000, 0x800000, CRC(b17f9924) SHA1(a9aa9f10b76964042b337b25430acff072aaa7c7) )
6369   ROM_LOAD( "mpr-23184.ic3",   0x1800000, 0x800000, CRC(575f73e8) SHA1(fe6ffeab120ad788bd692b33eca1cf22db881ac3) )
6370   ROM_LOAD( "mpr-23185.ic4",   0x2000000, 0x800000, CRC(0004ef34) SHA1(926de996549421a5835f3c8c0895a07978519215) )
6371   ROM_LOAD( "mpr-23186.ic5",   0x2800000, 0x800000, CRC(554eea29) SHA1(c82c24270dee0dd7309b117e1632827ca314615d) )
6372   ROM_LOAD( "mpr-23187.ic6",   0x3000000, 0x800000, CRC(b74ae1c5) SHA1(003fadbaa03cf43757b686f316d1104d26ae9ce8) )
6373   ROM_LOAD( "mpr-23188.ic7",   0x3800000, 0x800000, CRC(9f2a88af) SHA1(b1caf9cbf026ee6d0f12ab66cddf120e7ba9884c) )
6374   ROM_LOAD( "mpr-23189.ic8",   0x4000000, 0x800000, CRC(83014196) SHA1(cc4801534e0f0e649fc3f368af4bd3ac01288732) )
6375   ROM_LOAD( "mpr-23190.ic9",   0x4800000, 0x800000, CRC(2fde8ecf) SHA1(6da95fb04f141f2c45564460c49834bb945fb1af) )
6376   ROM_LOAD( "mpr-23191.ic10",  0x5000000, 0x800000, CRC(92f045e5) SHA1(70f741e55a47682725c7d6dcdd0e60982187fc87) )
6377   ROM_LOAD( "mpr-23192.ic11",  0x5800000, 0x800000, CRC(9e708834) SHA1(2f454688ea5b8b041bbfffaa12047afad01d020f) )
6378   ROM_LOAD( "mpr-23193.ic12s", 0x6000000, 0x800000, CRC(c86a5b9b) SHA1(4b8dda85003289e1464e12c3abf449bb8df20e3a) )
6379   ROM_LOAD( "mpr-23194.ic13s", 0x6800000, 0x800000, CRC(5adea0bd) SHA1(f8614ba83d5f61556c3db1a1796a02ed2c51ce2a) )
6376   ROM_LOAD( "mpr-23185.ic1",   0x0800000, 0x800000, CRC(c4fc1d45) SHA1(cfeff71ac1cccf274f00731fe1ffc182fb85f7a6) )
6377   ROM_LOAD( "mpr-23186.ic2",   0x1000000, 0x800000, CRC(b17f9924) SHA1(a9aa9f10b76964042b337b25430acff072aaa7c7) )
6378   ROM_LOAD( "mpr-23187.ic3",   0x1800000, 0x800000, CRC(575f73e8) SHA1(fe6ffeab120ad788bd692b33eca1cf22db881ac3) )
6379   ROM_LOAD( "mpr-23188.ic4",   0x2000000, 0x800000, CRC(0004ef34) SHA1(926de996549421a5835f3c8c0895a07978519215) )
6380   ROM_LOAD( "mpr-23189.ic5",   0x2800000, 0x800000, CRC(554eea29) SHA1(c82c24270dee0dd7309b117e1632827ca314615d) )
6381   ROM_LOAD( "mpr-23190.ic6",   0x3000000, 0x800000, CRC(b74ae1c5) SHA1(003fadbaa03cf43757b686f316d1104d26ae9ce8) )
6382   ROM_LOAD( "mpr-23191.ic7",   0x3800000, 0x800000, CRC(9f2a88af) SHA1(b1caf9cbf026ee6d0f12ab66cddf120e7ba9884c) )
6383   ROM_LOAD( "mpr-23192.ic8",   0x4000000, 0x800000, CRC(83014196) SHA1(cc4801534e0f0e649fc3f368af4bd3ac01288732) )
6384   ROM_LOAD( "mpr-23193.ic9",   0x4800000, 0x800000, CRC(2fde8ecf) SHA1(6da95fb04f141f2c45564460c49834bb945fb1af) )
6385   ROM_LOAD( "mpr-23194.ic10",  0x5000000, 0x800000, CRC(92f045e5) SHA1(70f741e55a47682725c7d6dcdd0e60982187fc87) )
6386   ROM_LOAD( "mpr-23195.ic11",  0x5800000, 0x800000, CRC(9e708834) SHA1(2f454688ea5b8b041bbfffaa12047afad01d020f) )
6387   ROM_LOAD( "mpr-23196.ic12s", 0x6000000, 0x800000, CRC(c86a5b9b) SHA1(4b8dda85003289e1464e12c3abf449bb8df20e3a) )
6388   ROM_LOAD( "mpr-23197.ic13s", 0x6800000, 0x800000, CRC(5adea0bd) SHA1(f8614ba83d5f61556c3db1a1796a02ed2c51ce2a) )
6389   // maskrom labels needs verification
63806390
63816391   ROM_REGION( 4, "rom_key", 0 )
63826392   ROM_LOAD( "vonot-key.bin", 0, 4, CRC(021ac707) SHA1(af57844331226d3b1722aedca1a7aef024468b39) )
trunk/src/mame/drivers/pcxt.c
r241777r241778
685685   m_lastvalue = -1;
686686
687687   m_pc_spkrdata = 0;
688   m_pit_out2 = 1;
688   m_pit_out2 = 0;
689689   m_wss2_data = 0;
690690   m_speaker->level_w(0);
691691}
trunk/src/mame/drivers/peplus.c
r241777r241778
13691369*        Rom Load        *
13701370*************************/
13711371
1372ROM_START( peset001 ) /* Normal board : Set Chip (Set001) - PE+ Set Denomination */
1372ROM_START( peset001 ) /* Normal board : Set Chip (Set001) - Use for PP0542 */
13731373   ROM_REGION( 0x10000, "maincpu", 0 )
13741374   ROM_LOAD( "set001.u68",   0x00000, 0x10000, CRC(03397ced) SHA1(89d8ba7e6706e6d34ae9aae09a8a631fff06a36f) )
13751375
r241777r241778
13831383   ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */
13841384ROM_END
13851385
1386ROM_START( peset004 ) /* Normal board : Set Chip (Set004) - PE+ Set Denomination / Enable Validator */
1386ROM_START( peset004 ) /* Normal board : Set Chip (Set004) - PE+ Set Denom / Enable Validator */
13871387   ROM_REGION( 0x10000, "maincpu", 0 )
13881388   ROM_LOAD( "set004.u68",   0x00000, 0x10000, CRC(b5729571) SHA1(fa3bb1fec81692a898213f9521ac0b2a4d1a8968) )
13891389
r241777r241778
13971397   ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */
13981398ROM_END
13991399
1400/* Known to exsist SET033 - PE+ Set Denomination / Enable Validator / SAS 4.0 */
1401
1402ROM_START( peset038 ) /* Normal board : Set Chip (Set038) - PE+ Set Denomination / Enable Validator */
1400ROM_START( peset038 ) /* Normal board : Set Chip (Set038) */
14031401   ROM_REGION( 0x10000, "maincpu", 0 )
14041402   ROM_LOAD( "set038.u68",   0x00000, 0x10000, CRC(9c4b1d1a) SHA1(8a65cd1d8e2d74c7b66f4dfc73e7afca8458e979) )
14051403
r241777r241778
14131411   ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */
14141412ROM_END
14151413
1416ROM_START( peivc006 ) /* Normal board : Clear Chip (IVC006) - PE+ Clear CMOS / E-Square */
1417   ROM_REGION( 0x10000, "maincpu", 0 )
1418   ROM_LOAD( "ivc006.u68",   0x00000, 0x8000, CRC(9a408727) SHA1(cc2d9ba66c461ae81f9fae1e068981d8de093416) ) /* 27C256 EPROM */
1419   ROM_RELOAD(               0x08000, 0x8000)
1420
1421   ROM_REGION( 0x020000, "gfx1", 0 )
1422   ROM_LOAD( "mro-cg740.u72",   0x00000, 0x8000, CRC(72667f6c) SHA1(89843f472cc0329317cfc643c63bdfd11234b194) )
1423   ROM_LOAD( "mgo-cg740.u73",   0x08000, 0x8000, CRC(7437254a) SHA1(bba166dece8af58da217796f81117d0b05752b87) )
1424   ROM_LOAD( "mbo-cg740.u74",   0x10000, 0x8000, CRC(92e8c33e) SHA1(05344664d6fdd3f4205c50fa4ca76fc46c18cf8f) )
1425   ROM_LOAD( "mxo-cg740.u75",   0x18000, 0x8000, CRC(ce4cbe0b) SHA1(4bafcd68be94a5deaae9661584fa0fc940b834bb) )
1426
1427   ROM_REGION( 0x100, "proms", 0 )
1428   ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */
1429ROM_END
1430
14311414ROM_START( pepk1024 ) /* Normal (non-plus) board : Aces and Faces 4 of a Kind Bonus Poker (PK1024) */
14321415/*
14331416                                      2-10 J-A
r241777r241778
87668749/*    YEAR  NAME      PARENT  MACHINE   INPUT         INIT      ROT    COMPANY                                  FULLNAME                                                  FLAGS   LAYOUT */
87678750
87688751/* Set chips */
8769GAMEL(1987, peset001, 0,         peplus,  peplus_schip, peplus_state, peplus,   ROT0,  "IGT - International Game Technology", "Player's Edge Plus (SET001) Set Chip",                      0,   layout_pe_schip )
8770GAMEL(1987, peset004, 0,         peplus,  peplus_schip, peplus_state, peplus,   ROT0,  "IGT - International Game Technology", "Player's Edge Plus (SET004) Set Chip",                      0,   layout_pe_schip )
8771GAMEL(1987, peset038, 0,         peplus,  peplus_schip, peplus_state, peplus,   ROT0,  "IGT - International Game Technology", "Player's Edge Plus (SET038) Set Chip",                      0,   layout_pe_schip )
8772GAMEL(1987, peivc006, 0,         peplus,  peplus_schip, peplus_state, peplus,   ROT0,  "IGT - International Game Technology", "Player's Edge Plus (IVC006) Clear EEPROM Chip",             0,   layout_pe_schip )
8752GAMEL(1987, peset001, 0,         peplus,  peplus_schip, peplus_state, peplus,   ROT0,  "IGT - International Game Technology", "Player's Edge Plus (Set001) Set Chip",                      0,   layout_pe_schip )
8753GAMEL(1987, peset004, 0,         peplus,  peplus_schip, peplus_state, peplus,   ROT0,  "IGT - International Game Technology", "Player's Edge Plus (Set004) Set Chip",                      0,   layout_pe_schip )
8754GAMEL(1987, peset038, 0,         peplus,  peplus_schip, peplus_state, peplus,   ROT0,  "IGT - International Game Technology", "Player's Edge Plus (Set038) Set Chip",                      0,   layout_pe_schip )
87738755
87748756/* Normal (non-plus) board : Poker */
87758757GAMEL(1987, pepk1024,  0,        peplus, nonplus_poker, peplus_state, nonplus,  ROT0,  "IGT - International Game Technology", "Player's Edge (PK1024) Aces and Faces Bonus Poker",         0, layout_pe_poker )
trunk/src/mame/drivers/pgm.c
r241777r241778
980980   PGM_AUDIO_BIOS
981981ROM_END
982982
983ROM_START( drgw2hk ) // the IGS025 has a "DRAGON-II 0004-1" sticker, the IGS012 has no per-game marking
984   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code  */
985   PGM_68K_BIOS
986   ROM_LOAD16_WORD_SWAP( "dragon_ii_v-100-h.u2",    0x100000, 0x080000, CRC(c6e2e6ec) SHA1(84145dfb26857ea20efb233363f175bc9bb25b0c) )
987983
988   ROM_REGION( 0x800000, "tiles",  0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
989   PGM_VIDEO_BIOS
990   ROM_LOAD( "pgmt0200.u7",    0x180000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) )
991
992   ROM_REGION( 0x400000, "sprcol", 0 ) /* Sprite Colour Data */
993   ROM_LOAD( "pgma0200.u5",    0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) )
994
995   ROM_REGION( 0x400000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
996   ROM_LOAD( "pgmb0200.u9",    0x0000000, 0x400000, CRC(932d0f13) SHA1(4b8e008f9c617cb2b95effeb81abc065b30e5c86) )
997
998   ROM_REGION( 0x400000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
999   PGM_AUDIO_BIOS
1000ROM_END
1001
1002984/*
1003985
1004986Dragon World 3 (KOREA 106 Ver.)
r241777r241778
41634145GAME( 1997, dw2v100x,     drgw2,     pgm_012_025_drgw2,     pgm, pgm_012_025_state,      dw2v100x,   ROT0,   "IGS", "Dragon World II (ver. 100X, Export)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
41644146GAME( 1997, drgw2j,       drgw2,     pgm_012_025_drgw2,     pgm, pgm_012_025_state,      drgw2j,     ROT0,   "IGS", "Chuugokuryuu II (ver. 100J, Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
41654147GAME( 1997, drgw2c,       drgw2,     pgm_012_025_drgw2,     pgm, pgm_012_025_state,      drgw2c,     ROT0,   "IGS", "Zhong Guo Long II (ver. 100C, China)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
4166GAME( 1997, drgw2hk,      drgw2,     pgm_012_025_drgw2,     pgm, pgm_012_025_state,      drgw2hk,    ROT0,   "IGS", "Dragon World II (ver. 100H, Hong Kong [Hokg Kong])", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) // correct title? (region is shown as Hokg Kong, Dragon World 3 is the same)
41674148
41684149GAME( 1998, killbld,      pgm,       pgm_022_025_killbld, killbld, pgm_022_025_state,  killbld,    ROT0,   "IGS", "The Killing Blade (ver. 109, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) /* region provided by protection device */
41694150GAME( 1998, killbld104,   killbld,   pgm_022_025_killbld, killbld, pgm_022_025_state,  killbld,    ROT0,   "IGS", "The Killing Blade (ver. 104)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) /* region provided by protection device */
trunk/src/mame/drivers/pgm2.c
r241777r241778
278278   ROM_LOAD16_WORD_SWAP( "ig-a_sp.u2",              0x00000000, 0x1000000, CRC(8250688c) SHA1(d2488477afc528aeee96826065deba2bce4f0a7d) )
279279ROM_END
280280
281ROM_START( orleg2oa )
282   ROM_REGION( 0x04000, "maincpu", 0 )
283   ROM_LOAD( "xyj2_igs036.rom",         0x00000000, 0x0004000, NO_DUMP )
284
285   ROM_REGION( 0x800000, "user1", 0 )
286   ROM_LOAD( "orleg2_xyj2_v101cn.u7",  0x000000, 0x800000, CRC(45805b53) SHA1(f2a8399c821b75fadc53e914f6f318707e70787c) )
287
288   ROM_REGION( 0x200000, "tiles", ROMREGION_ERASEFF )
289   ROM_LOAD( "ig-a_text.u4",            0x00000000, 0x0200000, CRC(fa444c32) SHA1(31e5e3efa92d52bf9ab97a0ece51e3b77f52ce8a) )
290
291   ROM_REGION( 0x1000000, "bgtile", 0 )
292   ROM_LOAD32_WORD( "ig-a_bgl.u35",     0x00000000, 0x0800000, CRC(083a8315) SHA1(0dba25e132fbb12faa59ced648c27b881dc73478) )
293   ROM_LOAD32_WORD( "ig-a_bgh.u36",     0x00000002, 0x0800000, CRC(e197221d) SHA1(5574b1e3da4b202db725be906dd868edc2fd4634) )
294
295   ROM_REGION( 0x2000000, "spritesa", 0 ) // 1bpp sprite mask data
296   ROM_LOAD32_WORD( "ig-a_bml.u12",     0x00000000, 0x1000000, CRC(113a331c) SHA1(ee6b31bb2b052cc8799573de0d2f0a83f0ab4f6a) )
297   ROM_LOAD32_WORD( "ig-a_bmh.u16",     0x00000002, 0x1000000, CRC(fbf411c8) SHA1(5089b5cc9bbf6496ef1367c6255e63e9ab895117) )
298
299   ROM_REGION( 0x4000000, "spritesb", 0 ) // sprite colour data
300   ROM_LOAD32_WORD( "ig-a_cgl.u18",     0x00000000, 0x2000000, CRC(43501fa6) SHA1(58ccce6d393964b771fec3f5c583e3ede57482a3) )
301   ROM_LOAD32_WORD( "ig-a_cgh.u26",     0x00000002, 0x2000000, CRC(7051d020) SHA1(3d9b24c6fda4c9699bb9f00742e0888059b623e1) )
302
303   ROM_REGION( 0x1000000, "ymz770", ROMREGION_ERASEFF ) /* ymz770 */
304   ROM_LOAD16_WORD_SWAP( "ig-a_sp.u2",              0x00000000, 0x1000000, CRC(8250688c) SHA1(d2488477afc528aeee96826065deba2bce4f0a7d) )
305ROM_END
306
307281ROM_START( kov2nl )
308282   ROM_REGION( 0x04000, "maincpu", 0 )
309283   ROM_LOAD( "gsyx_igs036.rom",         0x00000000, 0x0004000, NO_DUMP )
r241777r241778
356330   ROM_LOAD16_WORD_SWAP( "ig-a3_sp.u37",            0x00000000, 0x2000000, CRC(45cdf422) SHA1(8005d284bcee73cff37a147fcd1c3e9f039a7203) )
357331ROM_END
358332
359ROM_START( kov2nloa )
360   ROM_REGION( 0x04000, "maincpu", 0 )
361   ROM_LOAD( "gsyx_igs036.rom",         0x00000000, 0x0004000, NO_DUMP )
362333
363   ROM_REGION( 0x800000, "user1", 0 )
364   ROM_LOAD( "kov2nl_gsyx_v300tw.u7",  0x000000, 0x800000, CRC(08da7552) SHA1(303b97d7694405474c8133a259303ccb49db48b1) )
365
366   ROM_REGION( 0x200000, "tiles", ROMREGION_ERASEFF )
367   ROM_LOAD( "ig-a3_text.u4",           0x00000000, 0x0200000, CRC(214530ff) SHA1(4231a02054b0345392a077042b95779fd45d6c22) )
368
369   ROM_REGION( 0x1000000, "bgtile", 0 )
370   ROM_LOAD32_WORD( "ig-a3_bgl.u35",    0x00000000, 0x0800000, CRC(2d46b1f6) SHA1(ea8c805eda6292e86a642e9633d8fee7054d10b1) )
371   ROM_LOAD32_WORD( "ig-a3_bgh.u36",    0x00000002, 0x0800000, CRC(df710c36) SHA1(f826c3f496c4f17b46d18af1d8e02cac7b7027ac) )
372
373   ROM_REGION( 0x2000000, "spritesa", 0 ) // 1bpp sprite mask data
374   ROM_LOAD32_WORD( "ig-a3_bml.u12",    0x00000000, 0x1000000, CRC(0bf63836) SHA1(b8e4f1951f8074b475b795bd7840c5a375b6f5ef) )
375   ROM_LOAD32_WORD( "ig-a3_bmh.u16",    0x00000002, 0x1000000, CRC(4a378542) SHA1(5d06a8a8796285a786ebb690c34610f923ef5570) )
376
377   ROM_REGION( 0x4000000, "spritesb", 0 ) // sprite colour data
378   ROM_LOAD32_WORD( "ig-a3_cgl.u18",    0x00000000, 0x2000000, CRC(8d923e1f) SHA1(14371cf385dd8857017d3111cd4710f4291b1ae2) )
379   ROM_LOAD32_WORD( "ig-a3_cgh.u26",    0x00000002, 0x2000000, CRC(5b6fbf3f) SHA1(d1f52e230b91ee6cde939d7c2b74da7fd6527e73) )
380
381   ROM_REGION( 0x2000000, "ymz770", ROMREGION_ERASEFF ) /* ymz770 */
382   ROM_LOAD16_WORD_SWAP( "ig-a3_sp.u37",            0x00000000, 0x2000000, CRC(45cdf422) SHA1(8005d284bcee73cff37a147fcd1c3e9f039a7203) )
383ROM_END
384
385334ROM_START( ddpdojh )
386335   ROM_REGION( 0x04000, "maincpu", 0 )
387336   ROM_LOAD( "ddpdoj_igs036.rom",       0x00000000, 0x0004000, NO_DUMP )
r241777r241778
547496/* PGM2 */
548497GAME( 2007, orleg2,       0,         pgm2,    pgm2, pgm2_state,     orleg2,       ROT0, "IGS", "Oriental Legend 2 (V104, China)", GAME_IS_SKELETON )
549498GAME( 2007, orleg2o,      orleg2,    pgm2,    pgm2, pgm2_state,     orleg2,       ROT0, "IGS", "Oriental Legend 2 (V103, China)", GAME_IS_SKELETON )
550GAME( 2007, orleg2oa,     orleg2,    pgm2,    pgm2, pgm2_state,     orleg2,       ROT0, "IGS", "Oriental Legend 2 (V101, China)", GAME_IS_SKELETON )
551499// should be earlier verisons too.
552500
553501GAME( 2008, kov2nl,       0,         pgm2,    pgm2, pgm2_state,     kov2nl,       ROT0, "IGS", "Knights of Valour 2 New Legend (V302, China)", GAME_IS_SKELETON )
554502GAME( 2008, kov2nlo,      kov2nl,    pgm2,    pgm2, pgm2_state,     kov2nl,       ROT0, "IGS", "Knights of Valour 2 New Legend (V301, China)", GAME_IS_SKELETON )
555GAME( 2008, kov2nloa,     kov2nl,    pgm2,    pgm2, pgm2_state,     kov2nl,       ROT0, "IGS", "Knights of Valour 2 New Legend (V300, Taiwan)", GAME_IS_SKELETON )
556503// should be earlier verisons too.
557504
558505GAME( 2010, ddpdojh,      0,    pgm2,    pgm2, pgm2_state,     ddpdojh,    ROT270, "IGS", "Dodonpachi Daioujou Tamashii (V201, China)", GAME_IS_SKELETON )
trunk/src/mame/drivers/photoply.c
r241777r241778
1313
1414#include "emu.h"
1515#include "cpu/i386/i386.h"
16#include "machine/lpci.h"
16#include "machine/pci.h"
1717#include "machine/pcshare.h"
1818#include "machine/pckeybrd.h"
1919#include "machine/idectrl.h"
trunk/src/mame/drivers/pinball2k.c
r241777r241778
1919
2020#include "emu.h"
2121#include "cpu/i386/i386.h"
22#include "machine/lpci.h"
22#include "machine/pci.h"
2323#include "machine/pcshare.h"
2424#include "machine/pckeybrd.h"
2525#include "machine/idectrl.h"
trunk/src/mame/drivers/queen.c
r241777r241778
2626
2727#include "emu.h"
2828#include "cpu/i386/i386.h"
29#include "machine/lpci.h"
29#include "machine/pci.h"
3030#include "machine/pcshare.h"
3131#include "machine/pckeybrd.h"
3232#include "machine/idectrl.h"
trunk/src/mame/drivers/rampart.c
r241777r241778
339339   MCFG_CPU_PROGRAM_MAP(main_map)
340340   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
341341
342   MCFG_SLAPSTIC_ADD("slapstic")
343
344342   MCFG_MACHINE_RESET_OVERRIDE(rampart_state,rampart)
345343
346344   MCFG_ATARI_EEPROM_2816_ADD("eeprom")
trunk/src/mame/drivers/rockrage.c
r241777r241778
210210};
211211
212212static GFXDECODE_START( rockrage )
213   GFXDECODE_ENTRY( "gfx1", 0, charlayout,     0, 32 )  /* colors 00..31, using 2 lookup tables */
214   GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 512, 16 )  /* colors 32..47, using lookup table */
213   GFXDECODE_ENTRY( "gfx1", 0, charlayout,   64, 32 )  /* colors 00..31, but using 2 lookup tables */
214   GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 32,  1 )  /* colors 32..63 */
215215GFXDECODE_END
216216
217217/***************************************************************************
r241777r241778
227227   m_rombank->configure_entries(0, 8, &ROM[0x10000], 0x2000);
228228
229229   save_item(NAME(m_vreg));
230   save_item(NAME(m_layer_colorbase));
230231}
231232
232233void rockrage_state::machine_reset()
r241777r241778
267268   MCFG_K007420_PALETTE("palette")
268269
269270   MCFG_GFXDECODE_ADD("gfxdecode", "palette", rockrage)
270   MCFG_PALETTE_ADD("palette", 16*16*3)
271   MCFG_PALETTE_ADD("palette", 64 + 2*16*16)
271272   MCFG_PALETTE_INDIRECT_ENTRIES(64)
272273   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
273274   MCFG_PALETTE_ENDIANNESS(ENDIANNESS_LITTLE)
r241777r241778
309310   ROM_LOAD( "620l10.8g",  0x020000, 0x20000, CRC(06d108e0) SHA1(cae8c5f2fc4e84bc7adbf27f71a18a74968c4296) ) /* One "K" & one "L" code version??? */
310311
311312   ROM_REGION( 0x0300, "proms", 0 )
312   ROM_LOAD( "620k07.13g", 0x00000, 0x00100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) )    /* layer 0 lookup table */
313   ROM_LOAD( "620k09.11g", 0x00000, 0x00100, CRC(9f0e0608) SHA1(c95bdb370e4a91f27afbd5ff3b39b2e0ad87da73) )    /* layer 0 lookup table */
313314   ROM_LOAD( "620k08.12g", 0x00100, 0x00100, CRC(b499800c) SHA1(46fa4e071ebceed12027de109be1e16dde5e846e) )    /* layer 1 lookup table */
314   ROM_LOAD( "620k09.11g", 0x00200, 0x00100, CRC(9f0e0608) SHA1(c95bdb370e4a91f27afbd5ff3b39b2e0ad87da73) )    /* sprite lookup table */
315
315   ROM_LOAD( "620k07.13g", 0x00200, 0x00100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) )    /* sprite lookup table, but its not used */
316                                             /* because it's always 0 1 2 ... f */
316317   ROM_REGION( 0x08000, "vlm", 0 ) /* VLM3050 data */
317318   ROM_LOAD( "620k04.6e", 0x00000, 0x08000, CRC(8be969f3) SHA1(9856b4c13fac77b645aed67a08cb4965b4966492) )
318319ROM_END
r241777r241778
338339   ROM_LOAD( "620g10b.8f", 0x030000, 0x10000, CRC(1618854a) SHA1(0afb34a9ed97f13c1910acd7767cb8546ea7e6cd) )
339340
340341   ROM_REGION( 0x0300, "proms", 0 )
341   ROM_LOAD( "620k07.13g", 0x00000, 0x00100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) )    /* layer 0 lookup table */
342   ROM_LOAD( "620k09.11g", 0x00000, 0x00100, CRC(9f0e0608) SHA1(c95bdb370e4a91f27afbd5ff3b39b2e0ad87da73) )    /* layer 0 lookup table */
342343   ROM_LOAD( "620k08.12g", 0x00100, 0x00100, CRC(b499800c) SHA1(46fa4e071ebceed12027de109be1e16dde5e846e) )    /* layer 1 lookup table */
343   ROM_LOAD( "620k09.11g", 0x00200, 0x00100, CRC(9f0e0608) SHA1(c95bdb370e4a91f27afbd5ff3b39b2e0ad87da73) )    /* sprite lookup table */
344
344   ROM_LOAD( "620k07.13g", 0x00200, 0x00100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) )    /* sprite lookup table, but its not used */
345                                             /* because it's always 0 1 2 ... f */
345346   ROM_REGION( 0x08000, "vlm", 0 ) /* VLM3050 data */
346347   ROM_LOAD( "620k04.6e", 0x00000, 0x08000, CRC(8be969f3) SHA1(9856b4c13fac77b645aed67a08cb4965b4966492) ) /* Same rom but labeled as ver "G" */
347348ROM_END
r241777r241778
363364   ROM_LOAD( "620k10.8g",  0x020000, 0x20000, CRC(0d1a95ab) SHA1(be565424f17af31dcd07004c6be03bbb00aef514) )
364365
365366   ROM_REGION( 0x0300, "proms", 0 )
366   ROM_LOAD( "620k07.13g", 0x00000, 0x00100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) )    /* layer 0 lookup table */
367   ROM_LOAD( "620k09.11g", 0x00000, 0x00100, CRC(9f0e0608) SHA1(c95bdb370e4a91f27afbd5ff3b39b2e0ad87da73) )    /* layer 0 lookup table */
367368   ROM_LOAD( "620k08.12g", 0x00100, 0x00100, CRC(b499800c) SHA1(46fa4e071ebceed12027de109be1e16dde5e846e) )    /* layer 1 lookup table */
368   ROM_LOAD( "620k09.11g", 0x00200, 0x00100, CRC(9f0e0608) SHA1(c95bdb370e4a91f27afbd5ff3b39b2e0ad87da73) )    /* sprite lookup table */
369
369   ROM_LOAD( "620k07.13g", 0x00200, 0x00100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) )    /* sprite lookup table, but its not used */
370                                             /* because it's always 0 1 2 ... f */
370371   ROM_REGION( 0x08000, "vlm", 0 ) /* VLM3050 data */
371372   ROM_LOAD( "620k04.6e", 0x00000, 0x08000, CRC(8be969f3) SHA1(9856b4c13fac77b645aed67a08cb4965b4966492) )
372373ROM_END
trunk/src/mame/drivers/savquest.c
r241777r241778
4646
4747#include "emu.h"
4848#include "cpu/i386/i386.h"
49#include "machine/lpci.h"
49#include "machine/pci.h"
5050#include "machine/pcshare.h"
5151#include "machine/pckeybrd.h"
5252#include "machine/idectrl.h"
trunk/src/mame/drivers/segas18.c
r241777r241778
7373         switch (m_romboard)
7474         {
7575            case ROM_BOARD_171_SHADOW:  break;  // ???
76            case ROM_BOARD_837_7525:
7776            case ROM_BOARD_171_5874:
7877            case ROM_BOARD_171_5987:    mapper.map_as_handler(0x00000, 0x00010, 0xfffff0, read16_delegate(FUNC(segas18_state::genesis_vdp_r), this), write16_delegate(FUNC(segas18_state::genesis_vdp_w), this)); break;
7978            default:                    assert(false);
r241777r241778
9089                                 else
9190                                    mapper.map_as_rom(0x00000,0x100000, 0xf00000, "rom1base",0x100000, write16_delegate(FUNC(segas18_state::rom_5987_bank_w), this));
9291                                 break;
93            case ROM_BOARD_837_7525:    mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom1base", 0x80000, write16_delegate(FUNC(segas18_state::rom_837_7525_bank_w), this));
94            break;
95
9692            default:                    assert(false);
9793         }
9894         break;
r241777r241778
10298         {
10399            case ROM_BOARD_171_SHADOW:
104100            case ROM_BOARD_171_5874:    mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", 0x00000, write16_delegate()); break;
105            case ROM_BOARD_837_7525:
106101            case ROM_BOARD_171_5987:    if (romsize <= 0x100000)
107102                                    mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", 0x00000, write16_delegate());
108103                                 else
r241777r241778
395390   }
396391}
397392
398WRITE16_MEMBER( segas18_state::rom_837_7525_bank_w )
399{
400   if (!ACCESSING_BITS_0_7)
401      return;
402393
403   offset &= 0xf;
404   data &= 0xff;
405394
406   // tile banking
407   if (offset < 8)
408   {
409   //   int maxbanks = m_gfxdecode->gfx(0)->elements() / 1024;
410      data &= 0x9f;
411
412      if (data & 0x80) data += 0x20;
413      data &= 0x3f;
414
415      m_segaic16vid->segaic16_tilemap_set_bank(0, offset, data);
416   }
417
418   // sprite banking
419   else
420   {
421      //printf("%02x %02x\n", offset, data);
422      // not needed?
423   }
424}
425
426
427395/*************************************
428396 *
429397 *  D.D.Crew Custom I/O
r241777r241778
761729   PORT_DIPSETTING(    0x00, "1" )
762730   //"SW2:7" unused
763731   //"SW2:8" unused
732
764733INPUT_PORTS_END
765734
735
766736static INPUT_PORTS_START( astorm2p )
767737   PORT_INCLUDE( system18_generic )
768738
r241777r241778
787757   PORT_DIPSETTING(    0x00, "1" )
788758   //"SW2:7" unused
789759   //"SW2:8" unused
760
790761INPUT_PORTS_END
791762
792763
r241777r241778
905876   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
906877INPUT_PORTS_END
907878
879
908880static INPUT_PORTS_START( ddcrew2p )
909881   PORT_INCLUDE( system18_generic )
910882
r241777r241778
931903   PORT_DIPSETTING(    0xc0, DEF_STR( Normal ) )
932904   PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
933905   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
906
934907INPUT_PORTS_END
935908
936909static INPUT_PORTS_START( ddcrew3p )
r241777r241778
949922   PORT_MODIFY("SERVICE")
950923   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
951924   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
925
952926INPUT_PORTS_END
953927
954
955928static INPUT_PORTS_START( desertbr )
956929   PORT_INCLUDE( system18_generic )
957930
r241777r241778
1000973INPUT_PORTS_END
1001974
1002975
1003static INPUT_PORTS_START( hamaway )
1004   PORT_INCLUDE( system18_generic )
1005
1006   PORT_MODIFY("DSW")
1007   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("SW2:1,2")
1008   PORT_DIPSETTING(    0x02, DEF_STR( Easy ) )
1009   PORT_DIPSETTING(    0x03, DEF_STR( Normal ) )
1010   PORT_DIPSETTING(    0x01, DEF_STR( Hard ) )
1011   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1012   PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )   PORT_DIPLOCATION("SW2:3,4")
1013   PORT_DIPSETTING(    0x08, "1" )
1014   PORT_DIPSETTING(    0x04, "2" )
1015   PORT_DIPSETTING(    0x0c, "3" )
1016   PORT_DIPSETTING(    0x00, "5" )
1017   //"SW2:5" is unknown - Not listed in the service mode
1018   //"SW2:6" is unknown - Not listed in the service mode
1019   PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SW2:7")
1020   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1021   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1022   PORT_DIPNAME( 0x80, 0x80, "2 Credits to Start" )   PORT_DIPLOCATION("SW2:8")
1023   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
1024   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1025INPUT_PORTS_END
1026
1027
1028976static INPUT_PORTS_START( lghost )
1029977   PORT_INCLUDE( system18_generic )
1030978
r241777r241778
12361184INPUT_PORTS_END
12371185
12381186
1187
12391188/*************************************
12401189 *
12411190 *  Graphics definitions
r241777r241778
12791228 *
12801229 *************************************/
12811230
1282WRITE_LINE_MEMBER(segas18_state::ym3438_irq_handler)
1283{
1284   if (state)
1285      m_soundcpu->set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE );
1286   else
1287      m_soundcpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE );
1288}
1289
1290
12911231static MACHINE_CONFIG_START( system18, segas18_state )
12921232
12931233   // basic machine hardware
r241777r241778
13361276
13371277   MCFG_SOUND_ADD("ym1", YM3438, 8000000)
13381278   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
1339   MCFG_YM2612_IRQ_HANDLER(WRITELINE(segas18_state, ym3438_irq_handler))
13401279
13411280   MCFG_SOUND_ADD("ym2", YM3438, 8000000)
13421281   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
r241777r241778
19321871/**************************************************************************************************************************
19331872 **************************************************************************************************************************
19341873 **************************************************************************************************************************
1935    Hammer Away, Sega System 18 (prototype / unreleased)
1936    CPU: M68000
1937    ROM Board: 837-7525
1938
1939    Japanese text on the mission screens, but no "For use in Japan..." warning. There are screen shots of a version without
1940    the Japanese text on mission screens and an alternate title screen, so a "World" proto might exist.
1941*/
1942ROM_START( hamaway )
1943   ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
1944   ROM_LOAD16_BYTE( "4.bin",  0x000000, 0x40000, CRC(cc0981e1) SHA1(63528bd36f27e62fdf40715101e6d05b73e48f16) ) // 1xxxxxxxxxxxxxxxxx = 0xFF
1945   ROM_LOAD16_BYTE( "6.bin",  0x000001, 0x40000, CRC(e8599ee6) SHA1(3e32b025403aecbaecfcdd0325e4acd676e99c4e) ) // 1xxxxxxxxxxxxxxxxx = 0xFF
1946   ROM_LOAD16_BYTE( "5.bin",  0x080000, 0x40000, CRC(fdb247fd) SHA1(ee9db799fb5de27f81904f8ef792203415b6d4a6) )
1947   ROM_LOAD16_BYTE( "7.bin",  0x080001, 0x40000, CRC(63711470) SHA1(6c4be3a0cf0f897c34ef0b3bf549f52b185bb915) )
1948
1949   ROM_REGION( 0x180000, "gfx1", 0 ) // tiles
1950   ROM_LOAD( "c10.bin",  0x000000, 0x40000, CRC(c55cb5cf) SHA1(396179632b29ac5f8b7f8f3c91d7cf834e548bdf) )
1951   ROM_LOAD( "1.bin",    0x040000, 0x40000, CRC(33be003f) SHA1(134fa6b3347c306d9e30882dfcf24632b49f85ea) )
1952   ROM_LOAD( "c11.bin",  0x080000, 0x40000, CRC(37787915) SHA1(c8d251be6c41de3aed2da6da70aa87071b70b1f6) )
1953   ROM_LOAD( "2.bin",    0x0c0000, 0x40000, CRC(60ca5c9f) SHA1(6358ea00125a5e3f55acf73aeb9c36b1db6e711e) )
1954   ROM_LOAD( "c12.bin",  0x100000, 0x40000, CRC(f12f1cf3) SHA1(45e883029c58e617a2a20ac1ab5c5f598c95f4bd) )
1955   ROM_LOAD( "3.bin",    0x140000, 0x40000, CRC(520aa7ae) SHA1(9584206aedd8be5ce9dca0ed370f8fe77aabaf76) )
1956
1957   ROM_REGION16_BE( 0x200000, "sprites", ROMREGION_ERASEFF ) // sprites
1958   ROM_LOAD16_BYTE( "c17.bin", 0x000001, 0x40000, CRC(aa28d7aa) SHA1(3dd5d95b05e408c023f9bd77753c37080714239d) )
1959   ROM_LOAD16_BYTE( "10.bin",  0x000000, 0x40000, CRC(c4c95161) SHA1(2e313a4ca9506f53a2062b4a8e5ba7b381ba93ae) )
1960   ROM_LOAD16_BYTE( "c18.bin", 0x080001, 0x40000, CRC(0f8fe8bb) SHA1(e6f68442b8d4def29b106458496a47344f70d511) )
1961   ROM_LOAD16_BYTE( "11.bin",  0x080000, 0x40000, CRC(2b5eacbc) SHA1(ba3690501588b9c88a31022b44bc3c82b44ae26b) )
1962   ROM_LOAD16_BYTE( "c19.bin", 0x100001, 0x40000, CRC(3c616caa) SHA1(d48a6239b7a52ac13971f7513a65a17af492bfdf) ) // 11xxxxxxxxxxxxxxxx = 0xFF
1963    ROM_LOAD16_BYTE( "12.bin",  0x100000, 0x40000, CRC(c7bbd579) SHA1(ab87bfdad66ea241cb23c9bbfea05f5a1574d6c9) ) // 1ST AND 2ND HALF IDENTICAL (but ok, because pairing ROM has no data in the 2nd half anyway)
1964
1965   ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
1966   ROM_LOAD( "c16.bin", 0x010000, 0x40000, CRC(913cc18c) SHA1(4bf4ec14937586c3ae77fcad57dcb21f6433ef81) )
1967   ROM_LOAD( "c15.bin", 0x090000, 0x40000, CRC(b53694fc) SHA1(0e42be2730abce1b52ea94a9fe61cbd1c9a0ccae) )
1968ROM_END
1969
1970
1971/**************************************************************************************************************************
1972 **************************************************************************************************************************
1973 **************************************************************************************************************************
19741874    Laser Ghost, Sega System 18
19751875    CPU: FD1094 (317-0166)
19761876    ROM Board: 171-5873B
r241777r241778
23622262ROM_END
23632263
23642264
2265
23652266/*************************************
23662267 *
23672268 *  Generic driver initialization
r241777r241778
23832284   init_generic(ROM_BOARD_171_5987);
23842285}
23852286
2386DRIVER_INIT_MEMBER(segas18_state,hamaway)
2387{
2388   init_generic(ROM_BOARD_837_7525);
2389}
23902287
23912288
23922289/*************************************
r241777r241778
24172314}
24182315
24192316
2317
24202318/*************************************
24212319 *
24222320 *  Game driver(s)
24232321 *
24242322 *************************************/
24252323
2426//    YEAR, NAME,      PARENT,   MACHINE,              INPUT,                   INIT,         MONITOR, COMPANY,        FULLNAME,                                        FLAGS
2427GAME( 1990, astorm,    0,        system18_fd1094,      astorm2p, segas18_state, generic_5874, ROT0,   "Sega",          "Alien Storm (World, 2 Players, FD1094 317-0154)", 0 )
2428GAME( 1990, astorm3,   astorm,   system18_fd1094,      astorm,   segas18_state, generic_5874, ROT0,   "Sega",          "Alien Storm (World, 3 Players, FD1094 317-0148)", 0 )
2429GAME( 1990, astormu,   astorm,   system18_fd1094,      astorm,   segas18_state, generic_5874, ROT0,   "Sega",          "Alien Storm (US, 3 Players, FD1094 317-0147)", 0 )
2430GAME( 1990, astormj,   astorm,   system18_fd1094,      astorm2p, segas18_state, generic_5874, ROT0,   "Sega",          "Alien Storm (Japan, 2 Players, FD1094 317-0146)", 0 )
2431GAME( 1989, bloxeed,   0,        system18_fd1094,      bloxeed,  segas18_state, generic_5874, ROT0,   "Sega",          "Bloxeed (Japan, FD1094 317-0139)", 0 )
2432GAME( 1991, cltchitr,  0,        system18_fd1094,      cltchitr, segas18_state, generic_5987, ROT0,   "Sega",          "Clutch Hitter (US, FD1094 317-0176)", 0 )
2433GAME( 1991, cltchitrj, cltchitr, system18_fd1094,      cltchitr, segas18_state, generic_5987, ROT0,   "Sega",          "Clutch Hitter (Japan, FD1094 317-0175)", 0 )
2434GAME( 1992, desertbr,  0,        system18_fd1094,      desertbr, segas18_state, generic_5987, ROT270, "Sega",          "Desert Breaker (World, FD1094 317-0196)", 0 )
2435GAME( 1992, desertbrj, desertbr, system18_fd1094,      desertbr, segas18_state, generic_5987, ROT270, "Sega",          "Desert Breaker (Japan, FD1094 317-0194)", 0 )
2436GAME( 1991, ddcrew,    0,        system18_fd1094,      ddcrew3p, segas18_state, ddcrew,       ROT0,   "Sega",          "D. D. Crew (World, 3 Players, FD1094 317-0190)", 0 )
2437GAME( 1991, ddcrewu,   ddcrew,   system18_fd1094,      ddcrew,   segas18_state, ddcrew,       ROT0,   "Sega",          "D. D. Crew (US, 4 Players, FD1094 317-0186)", 0 )
2438GAME( 1991, ddcrew2,   ddcrew,   system18_fd1094,      ddcrew2p, segas18_state, ddcrew,       ROT0,   "Sega",          "D. D. Crew (World, 2 Players, FD1094 317-0184)", 0 )
2439GAME( 1991, ddcrew1,   ddcrew,   system18_fd1094,      ddcrew,   segas18_state, ddcrew,       ROT0,   "Sega",          "D. D. Crew (World, 4 Players, FD1094 317-0187)", 0 )
2440GAME( 1991, ddcrewj,   ddcrew,   system18_fd1094,      ddcrew,   segas18_state, ddcrew,       ROT0,   "Sega",          "D. D. Crew (Japan, 4 Players, FD1094 317-0185)", 0 )
2441GAME( 1991, ddcrewj2,  ddcrew,   system18_fd1094,      ddcrew2p, segas18_state, ddcrew,       ROT0,   "Sega",          "D. D. Crew (Japan, 2 Players, FD1094 317-0182)", 0 )
2442GAME( 1991, hamaway,   0,        system18,             hamaway,  segas18_state, hamaway,      ROT90,  "Sega / Santos", "Hammer Away (Japan, prototype)", 0 )
2443GAME( 1990, lghost,    0,        system18_fd1094,      lghost,   segas18_state, lghost,       ROT0,   "Sega",          "Laser Ghost (World, FD1094 317-0166)", 0 )
2444GAME( 1990, lghostu,   lghost,   system18_fd1094,      lghost,   segas18_state, lghost,       ROT0,   "Sega",          "Laser Ghost (US, FD1094 317-0165)", 0 )
2445GAME( 1990, mwalk,     0,        system18_fd1094_i8751,mwalk,    segas18_state, generic_5874, ROT0,   "Sega",          "Michael Jackson's Moonwalker (World, FD1094/8751 317-0159)", 0 )
2446GAME( 1990, mwalku,    mwalk,    system18_fd1094_i8751,mwalka,   segas18_state, generic_5874, ROT0,   "Sega",          "Michael Jackson's Moonwalker (US, FD1094/8751 317-0158)", 0 )
2447GAME( 1990, mwalkj,    mwalk,    system18_fd1094_i8751,mwalk,    segas18_state, generic_5874, ROT0,   "Sega",          "Michael Jackson's Moonwalker (Japan, FD1094/8751 317-0157)", 0 )
2448GAME( 1989, pontoon,   0,        system18_fd1094,      shdancer, segas18_state, generic_5874, ROT0,   "Sega",          "Pontoon (FD1094 317-0153)", GAME_NOT_WORKING ) // satellite/networked gambling game?
2449GAME( 1989, shdancer,  0,        system18,             shdancer, segas18_state, generic_shad, ROT0,   "Sega",          "Shadow Dancer (World)", 0 )
2450GAME( 1989, shdancerj, shdancer, system18,             shdancer, segas18_state, generic_shad, ROT0,   "Sega",          "Shadow Dancer (Japan)", 0 )
2451GAME( 1989, shdancer1, shdancer, system18,             shdancer, segas18_state, generic_shad, ROT0,   "Sega",          "Shadow Dancer (US)", 0 )
2452GAME( 1992, wwallyj,   0,        system18_fd1094,      wwally,   segas18_state, wwally,       ROT0,   "Sega",          "Wally wo Sagase! (rev B, Japan, FD1094 317-0197B)", 0) // the roms do contain an english logo so maybe there is a world / us set too
2453GAME( 1992, wwallyja,  wwallyj,  system18_fd1094,      wwally,   segas18_state, wwally,       ROT0,   "Sega",          "Wally wo Sagase! (rev A, Japan, FD1094 317-0197A)", 0 )
2324//    YEAR, NAME,      PARENT,   MACHINE,              INPUT,    INIT,                       MONITOR,COMPANY,FULLNAME,FLAGS
2325GAME( 1990, astorm,    0,        system18_fd1094,      astorm2p, segas18_state,generic_5874, ROT0,   "Sega", "Alien Storm (World, 2 Players, FD1094 317-0154)", 0 )
2326GAME( 1990, astorm3,   astorm,   system18_fd1094,      astorm,   segas18_state,generic_5874, ROT0,   "Sega", "Alien Storm (World, 3 Players, FD1094 317-0148)", 0 )
2327GAME( 1990, astormu,   astorm,   system18_fd1094,      astorm,   segas18_state,generic_5874, ROT0,   "Sega", "Alien Storm (US, 3 Players, FD1094 317-0147)", 0 )
2328GAME( 1990, astormj,   astorm,   system18_fd1094,      astorm2p, segas18_state,generic_5874, ROT0,   "Sega", "Alien Storm (Japan, 2 Players, FD1094 317-0146)", 0 )
2329GAME( 1989, bloxeed,   0,        system18_fd1094,      bloxeed,  segas18_state,generic_5874, ROT0,   "Sega", "Bloxeed (Japan, FD1094 317-0139)", 0 )
2330GAME( 1991, cltchitr,  0,        system18_fd1094,      cltchitr, segas18_state,generic_5987, ROT0,   "Sega", "Clutch Hitter (US, FD1094 317-0176)", 0 )
2331GAME( 1991, cltchitrj, cltchitr, system18_fd1094,      cltchitr, segas18_state,generic_5987, ROT0,   "Sega", "Clutch Hitter (Japan, FD1094 317-0175)", 0 )
2332GAME( 1992, desertbr,  0,        system18_fd1094,      desertbr, segas18_state,generic_5987, ROT270, "Sega", "Desert Breaker (World, FD1094 317-0196)", 0 )
2333GAME( 1992, desertbrj, desertbr, system18_fd1094,      desertbr, segas18_state,generic_5987, ROT270, "Sega", "Desert Breaker (Japan, FD1094 317-0194)", 0 )
2334GAME( 1991, ddcrew,    0,        system18_fd1094,      ddcrew3p, segas18_state,ddcrew,       ROT0,   "Sega", "D. D. Crew (World, 3 Players, FD1094 317-0190)", 0 )
2335GAME( 1991, ddcrewu,   ddcrew,   system18_fd1094,      ddcrew,   segas18_state,ddcrew,       ROT0,   "Sega", "D. D. Crew (US, 4 Players, FD1094 317-0186)", 0 )
2336GAME( 1991, ddcrew2,   ddcrew,   system18_fd1094,      ddcrew2p, segas18_state,ddcrew,       ROT0,   "Sega", "D. D. Crew (World, 2 Players, FD1094 317-0184)", 0 )
2337GAME( 1991, ddcrew1,   ddcrew,   system18_fd1094,      ddcrew,   segas18_state,ddcrew,       ROT0,   "Sega", "D. D. Crew (World, 4 Players, FD1094 317-0187)", 0 )
2338GAME( 1991, ddcrewj,   ddcrew,   system18_fd1094,      ddcrew,   segas18_state,ddcrew,       ROT0,   "Sega", "D. D. Crew (Japan, 4 Players, FD1094 317-0185)", 0 )
2339GAME( 1991, ddcrewj2,  ddcrew,   system18_fd1094,      ddcrew2p, segas18_state,ddcrew,       ROT0,   "Sega", "D. D. Crew (Japan, 2 Players, FD1094 317-0182)", 0 )
2340GAME( 1990, lghost,    0,        system18_fd1094,      lghost,   segas18_state,lghost,       ROT0,   "Sega", "Laser Ghost (World, FD1094 317-0166)", 0 )
2341GAME( 1990, lghostu,   lghost,   system18_fd1094,      lghost,   segas18_state,lghost,       ROT0,   "Sega", "Laser Ghost (US, FD1094 317-0165)", 0 )
2342GAME( 1990, mwalk,     0,        system18_fd1094_i8751,mwalk,    segas18_state,generic_5874, ROT0,   "Sega", "Michael Jackson's Moonwalker (World, FD1094/8751 317-0159)", 0 )
2343GAME( 1990, mwalku,    mwalk,    system18_fd1094_i8751,mwalka,   segas18_state,generic_5874, ROT0,   "Sega", "Michael Jackson's Moonwalker (US, FD1094/8751 317-0158)", 0 )
2344GAME( 1990, mwalkj,    mwalk,    system18_fd1094_i8751,mwalk,    segas18_state,generic_5874, ROT0,   "Sega", "Michael Jackson's Moonwalker (Japan, FD1094/8751 317-0157)", 0 )
2345GAME( 1989, pontoon,   0,        system18_fd1094,      shdancer, segas18_state,generic_5874, ROT0,   "Sega", "Pontoon (FD1094 317-0153)", GAME_NOT_WORKING ) // satellite/networked gambling game?
2346GAME( 1989, shdancer,  0,        system18,             shdancer, segas18_state,generic_shad, ROT0,   "Sega", "Shadow Dancer (World)", 0 )
2347GAME( 1989, shdancerj, shdancer, system18,             shdancer, segas18_state,generic_shad, ROT0,   "Sega", "Shadow Dancer (Japan)", 0 )
2348GAME( 1989, shdancer1, shdancer, system18,             shdancer, segas18_state,generic_shad, ROT0,   "Sega", "Shadow Dancer (US)", 0 )
2349GAME( 1992, wwallyj,   0,        system18_fd1094,      wwally,   segas18_state,wwally,       ROT0,   "Sega", "Wally wo Sagase! (rev B, Japan, FD1094 317-0197B)", 0) // the roms do contain an english logo so maybe there is a world / us set too
2350GAME( 1992, wwallyja,  wwallyj,  system18_fd1094,      wwally,   segas18_state,wwally,       ROT0,   "Sega", "Wally wo Sagase! (rev A, Japan, FD1094 317-0197A)", 0 )
trunk/src/mame/drivers/segaybd.c
r241777r241778
871871   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Shoot")
872872   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Missile")
873873
874   PORT_MODIFY("PORTC")
875   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Floor Switch")
876   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Beam Sensor 2 / Down Limit")
877   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Beam Sensor 1 / Up Limit")
878   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Left CCW Limit")
879   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Right CW Limit")
880
874881   PORT_MODIFY("DSW")
875882   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:1")
876883   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
trunk/src/mame/drivers/starwars.c
r241777r241778
6262      address_space &space = m_maincpu->space(AS_PROGRAM);
6363
6464      /* reset the slapstic */
65      m_slapstic_device->slapstic_reset();
66      m_slapstic_current_bank = m_slapstic_device->slapstic_bank();
65      slapstic_reset();
66      m_slapstic_current_bank = slapstic_bank();
6767      memcpy(m_slapstic_base, &m_slapstic_source[m_slapstic_current_bank * 0x2000], 0x2000);
6868
6969      /* reset all the banks */
r241777r241778
9797
9898void starwars_state::esb_slapstic_tweak(address_space &space, offs_t offset)
9999{
100   int new_bank = m_slapstic_device->slapstic_tweak(space, offset);
100   int new_bank = slapstic_tweak(space, offset);
101101
102102   /* update for the new bank */
103103   if (new_bank != m_slapstic_current_bank)
r241777r241778
331331   MCFG_CPU_PERIODIC_INT_DRIVER(starwars_state, irq0_line_assert, CLOCK_3KHZ / 12)
332332   MCFG_WATCHDOG_TIME_INIT(attotime::from_hz(CLOCK_3KHZ / 128))
333333
334   MCFG_SLAPSTIC_ADD("slapstic")
335
336334   MCFG_CPU_ADD("audiocpu", M6809, MASTER_CLOCK / 8)
337335   MCFG_CPU_PROGRAM_MAP(sound_map)
338336
r241777r241778
526524   UINT8 *rom = memregion("maincpu")->base();
527525
528526   /* init the slapstic */
529   m_slapstic_device->slapstic_init(machine(), 101);
527   slapstic_init(machine(), 101);
530528   m_slapstic_source = &rom[0x14000];
531529   m_slapstic_base = &rom[0x08000];
532530
trunk/src/mame/drivers/stv.c
r241777r241778
10211021   MCFG_SOUND_ADD("cdda", CDDA, 0)
10221022   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
10231023   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
1024
1025   MCFG_DEVICE_ADD("315_5881", SEGA315_5881_CRYPT, 0)
1026   MCFG_SET_READ_CALLBACK(stv_state, crypt_read_callback)
10271024MACHINE_CONFIG_END
10281025
10291026/*
trunk/src/mame/drivers/taitowlf.c
r241777r241778
2727
2828#include "emu.h"
2929#include "cpu/i386/i386.h"
30#include "machine/lpci.h"
30#include "machine/pci.h"
3131#include "machine/pcshare.h"
3232#include "machine/pckeybrd.h"
3333#if ENABLE_VGA
trunk/src/mame/drivers/tmnt.c
r241777r241778
28942894   ROM_LOAD( "963a25.d5",      0x00000, 0x80000, CRC(fca078c7) SHA1(3e1124d72c9db4cb11d8de6c44b7aeca967f44e1) )
28952895ROM_END
28962896
2897
28972898ROM_START( tmhtb ) // the code is closest to tmntua near the start, and the data is closest to all the UK sets, especially tmhta, so I'm guessing it's a UK revision of the tmntua codebase
28982899   ROM_REGION( 0x60000, "maincpu", 0 ) /* 2*128k and 2*64k for 68000 code */
2899   ROM_LOAD16_BYTE( "unk3.i17",   0x00000, 0x20000, CRC(537eb047) SHA1(97e6dbc486c7d057355db7fcbdc0a2c2cad2c653) ) /* unknown 963 xxx Konami code for this set */
2900   ROM_LOAD16_BYTE( "unk3.i17",   0x00000, 0x20000, CRC(537eb047) SHA1(97e6dbc486c7d057355db7fcbdc0a2c2cad2c653) )
29002901   ROM_LOAD16_BYTE( "unk4.k17",   0x00001, 0x20000, CRC(5afae564) SHA1(8d5fbf9530ad8d095c12b7e0f8c499c1436c4d47) )
2901   ROM_LOAD16_BYTE( "unk2.j15",   0x40000, 0x10000, CRC(ee34de05) SHA1(507d7fb178dbbe87dd373a81ad3f350ee2f7d923) )
2902   ROM_LOAD16_BYTE( "unk5.k15",   0x40001, 0x10000, CRC(5ef58d4e) SHA1(5df71c61a90c3e9d28ec3b8055d7ee97bc283e01) )
2902   ROM_LOAD16_BYTE( "unk2.j15",   0x40000, 0x10000, CRC(ee34de05) SHA1(507d7fb178dbbe87dd373a81ad3f350ee2f7d923))
2903   ROM_LOAD16_BYTE( "unk1.k15",   0x40001, 0x10000, NO_DUMP )
29032904
29042905   ROM_REGION( 0x10000, "audiocpu", 0 )
29052906   ROM_LOAD( "963e20.g13",      0x00000, 0x08000, CRC(1692a6d6) SHA1(68c3419012b2863e91a7d7e479fce5ceabb10b88) )
r241777r241778
29282929   ROM_LOAD( "963a25.d5",      0x00000, 0x80000, CRC(fca078c7) SHA1(3e1124d72c9db4cb11d8de6c44b7aeca967f44e1) )
29292930ROM_END
29302931
2932
29312933ROM_START( tmntj )
29322934   ROM_REGION( 0x60000, "maincpu", 0 ) /* 2*128k and 2*64k for 68000 code */
29332935   ROM_LOAD16_BYTE( "963_223.j17",  0x00000, 0x20000, CRC(0d34a5ff) SHA1(a387f3e7c727dc66ebb0e1f40e4ab8dc83f647e5) )
r241777r241778
41004102GAME( 1989, tmntua,      tmnt,     tmnt,     tmnt,      tmnt_state,    tmnt,     ROT0,   "Konami", "Teenage Mutant Ninja Turtles (US 4 Players, set 2)", GAME_SUPPORTS_SAVE )
41014103GAME( 1989, tmht,        tmnt,     tmnt,     tmnt,      tmnt_state,    tmnt,     ROT0,   "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 1)", GAME_SUPPORTS_SAVE )
41024104GAME( 1989, tmhta,       tmnt,     tmnt,     tmnt,      tmnt_state,    tmnt,     ROT0,   "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 2)", GAME_SUPPORTS_SAVE )
4103GAME( 1989, tmhtb,       tmnt,     tmnt,     tmnt,      tmnt_state,    tmnt,     ROT0,   "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 3)", GAME_SUPPORTS_SAVE )
4105GAME( 1989, tmhtb,       tmnt,     tmnt,     tmnt,      tmnt_state,    tmnt,     ROT0,   "Konami", "Teenage Mutant Hero Turtles (UK?, unknown revision)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // incomplete dump
41044106GAME( 1990, tmntj,       tmnt,     tmnt,     tmnt,      tmnt_state,    tmnt,     ROT0,   "Konami", "Teenage Mutant Ninja Turtles (Japan 4 Players)", GAME_SUPPORTS_SAVE )
41054107GAME( 1989, tmht2p,      tmnt,     tmnt,     tmnt2p,    tmnt_state,    tmnt,     ROT0,   "Konami", "Teenage Mutant Hero Turtles (UK 2 Players, set 1)", GAME_SUPPORTS_SAVE )
41064108GAME( 1989, tmht2pa,     tmnt,     tmnt,     tmnt2p,    tmnt_state,    tmnt,     ROT0,   "Konami", "Teenage Mutant Hero Turtles (UK 2 Players, set 2)", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/toaplan2.c
r241777r241778
52065206ROM_END
52075207
52085208
5209ROM_START( bbakraidc )
5210   ROM_REGION( 0x200000, "maincpu", 0 )            /* Main 68k code */
5211   ROM_LOAD16_BYTE( "prg0u022_china.bin", 0x000000, 0x080000, CRC(760be084) SHA1(096c8a2336492d7370ae25f3385faebf6e9c3eca) )
5212   ROM_LOAD16_BYTE( "prg1u023.new", 0x000001, 0x080000, CRC(4ae9aa64) SHA1(45fdf72141c4c9f24a38d4218c65874799b9c868) )
5213   ROM_LOAD16_BYTE( "prg2u021.bin", 0x100000, 0x080000, CRC(ffba8656) SHA1(6526bb65fad3384de3f301a7d1095cbf03757433) )
5214   ROM_LOAD16_BYTE( "prg3u024.bin", 0x100001, 0x080000, CRC(834b8ad6) SHA1(0dd6223bb0749819ad29811eeb04fd08d937abb0) )
5215
5216   ROM_REGION( 0x20000, "audiocpu", 0 )            /* Sound Z80 code */
5217   ROM_LOAD( "sndu0720.bin", 0x00000, 0x20000, CRC(e62ab246) SHA1(00d23689dd423ecd4024c58b5903d16e890f1dff) )
5218
5219   ROM_REGION( 0x1000000, "gp9001", 0 )
5220   ROM_LOAD( "gfxu0510.bin", 0x000000, 0x400000, CRC(9cca3446) SHA1(1123f8b8bfbe59a2c572cdf61f1ad27ff37f0f0d) )
5221   ROM_LOAD( "gfxu0512.bin", 0x400000, 0x400000, CRC(a2a281d5) SHA1(d9a6623f9433ad682223f9780c26cd1523ebc5c5) )
5222   ROM_LOAD( "gfxu0511.bin", 0x800000, 0x400000, CRC(e16472c0) SHA1(6068d679a8b3b65e05acd58a7ce9ead90177049f) )
5223   ROM_LOAD( "gfxu0513.bin", 0xc00000, 0x400000, CRC(8bb635a0) SHA1(9064f1a2d8bb88ddbca702fb8556d0dfe6a5cadc) )
5224
5225   ROM_REGION( 0x0c00000, "ymz", 0 )       /* YMZ280B Samples */
5226   ROM_LOAD( "rom6.829", 0x000000, 0x400000, CRC(8848b4a0) SHA1(e0dce136c5d5a4c1a92b863e57848cd5927d06f1) )
5227   ROM_LOAD( "rom7.830", 0x400000, 0x400000, CRC(d6224267) SHA1(5c9b7b13effbef9f707811f84bfe50ca85e605e3) )
5228   ROM_LOAD( "rom8.831", 0x800000, 0x400000, CRC(a101dfb0) SHA1(4b729b0d562e09df35438e9e6b457b8de2690a6e) )
5229
5230   ROM_REGION( 0x200, "eeprom", 0 )
5231   ROM_LOAD( "eeprom-bbakraid-new.bin", 0x000, 0x200, CRC(35c9275a) SHA1(1282034adf3c7a24545fd273729867058dc93027) )
5232ROM_END
5233
5234
52355209ROM_START( bbakraidj )
52365210   ROM_REGION( 0x200000, "maincpu", 0 )            /* Main 68k code */
52375211   ROM_LOAD16_BYTE( "prg0u022.new", 0x000000, 0x080000, CRC(fa8d38d3) SHA1(aba91d87a8a62d3fe1139b4437b16e2f844264ad) )
r241777r241778
53705344// Battle Bakraid
53715345// the 'unlimited' version is a newer revision of the code
53725346GAME( 1999, bbakraid,   0,        bbakraid, bbakraid, toaplan2_state,  bbakraid, ROT270, "Eighting", "Battle Bakraid - Unlimited Version (USA) (Tue Jun 8 1999)", GAME_SUPPORTS_SAVE )
5373GAME( 1999, bbakraidc,  bbakraid, bbakraid, bbakraid, toaplan2_state,  bbakraid, ROT270, "Eighting", "Battle Bakraid - Unlimited Version (China) (Tue Jun 8 1999)", GAME_SUPPORTS_SAVE )
53745347GAME( 1999, bbakraidj,  bbakraid, bbakraid, bbakraid, toaplan2_state,  bbakraid, ROT270, "Eighting", "Battle Bakraid - Unlimited Version (Japan) (Tue Jun 8 1999)", GAME_SUPPORTS_SAVE )
53755348// older revision of the code
53765349GAME( 1999, bbakraidja, bbakraid, bbakraid, bbakraid, toaplan2_state,  bbakraid, ROT270, "Eighting", "Battle Bakraid (Japan) (Wed Apr 7 1999)", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/tumbleb.c
r241777r241778
20262026   save_item(NAME(m_music_is_playing));
20272027
20282028   save_item(NAME(m_control_0));
2029   save_item(NAME(m_flipscreen));
20292030   save_item(NAME(m_tilebank));
20302031}
20312032
r241777r241778
20342035   m_music_command = 0;
20352036   m_music_bank = 0;
20362037   m_music_is_playing = 0;
2038   m_flipscreen = 0;
20372039   m_tilebank = 0;
20382040   memset(m_control_0, 0, sizeof(m_control_0));
20392041}
trunk/src/mame/drivers/vigilant.c
r241777r241778
606606
607607***************************************************************************/
608608
609
610609ROM_START( vigilant )
611610   ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */
612   ROM_LOAD( "vg_a-8h-e.ic55",  0x00000, 0x10000, CRC(64735989) SHA1(0d1330eacbbe54fd98b3d6f81e770462a3a2372d) ) // 1ST AND 2ND HALF IDENTICAL (correct)
613   ROM_LOAD( "vg_a-8l-a.ic57",  0x10000, 0x10000, CRC(690d812f) SHA1(60d6513f8b27411018cdca1b25f94bc281476ae7) )
611   ROM_LOAD( "g07_c03.bin",  0x00000, 0x08000, CRC(9dcca081) SHA1(6d086b70e6bf1fbafa746ef5c82334645f199be9) )
612   ROM_LOAD( "j07_c04.bin",  0x10000, 0x10000, CRC(e0159105) SHA1(da6d74ec075863c67c0ce21b07a54029d138f688) )
614613   /* 0x20000-0x2ffff empty */
615614
616615   ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for sound */
617   ROM_LOAD( "vg_a-5j-.ic37",  0x00000, 0x10000, CRC(10582b2d) SHA1(6e7e5f07c49b347b427572efeb180c89f49bf2c7) )
616   ROM_LOAD( "g05_c02.bin",  0x00000, 0x10000, CRC(10582b2d) SHA1(6e7e5f07c49b347b427572efeb180c89f49bf2c7) )
618617
619618   ROM_REGION( 0x20000, "gfx1", 0 )
620   ROM_LOAD( "vg_b-4f-.ic33",  0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) )
621   ROM_LOAD( "vg_b-4j-.ic34",  0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) )
619   ROM_LOAD( "f05_c08.bin",  0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) )
620   ROM_LOAD( "h05_c09.bin",  0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) )
622621
623   ROM_REGION( 0x80000, "gfx2", 0 ) // confirmed original board uses 4 roms
624   ROM_LOAD( "vg_b-6l-.ic61",  0x00000, 0x10000, CRC(fbe9552d) SHA1(3c7c218f13c0a94bb624745d81d63db9423777ea) )
625   ROM_CONTINUE(0x20000,0x10000)
626   ROM_LOAD( "vg_b-6k-.ic60",  0x10000, 0x10000, CRC(ae09d5c0) SHA1(9da5b824b148c1e1478e3f4b44ba4348376ed7d5) )
627   ROM_CONTINUE(0x30000,0x10000)
628   ROM_LOAD( "vg_b-6p-.ic63",  0x40000, 0x10000, CRC(afb77461) SHA1(18707768a4768b579c94092a260e286d3214b977) )
629   ROM_CONTINUE(0x60000,0x10000)
630   ROM_LOAD( "vg_b-6n-.ic62",  0x50000, 0x10000, CRC(5065cd35) SHA1(9a03c5af024fcae6b3371bb04be3e811ecc390d7) )
631   ROM_CONTINUE(0x70000,0x10000)
622   ROM_REGION( 0x80000, "gfx2", 0 )
623   ROM_LOAD( "n07_c12.bin",  0x00000, 0x10000, CRC(10af8eb2) SHA1(664b178b248babc43a9af0fe140fe57bc7367762) )
624   ROM_LOAD( "k07_c10.bin",  0x10000, 0x10000, CRC(9576f304) SHA1(0ec2a7d3d82208e2a9a4ef9ab2824e6fe26ebbe5) )
625   ROM_LOAD( "o07_c13.bin",  0x20000, 0x10000, CRC(b1d9d4dc) SHA1(1aacf6b0ff8d102880d3dce3b55cd1488edb90cf) )
626   ROM_LOAD( "l07_c11.bin",  0x30000, 0x10000, CRC(4598be4a) SHA1(6b68ec94bdee0e58133a8d3891054ef44a8ff0e5) )
627   ROM_LOAD( "t07_c16.bin",  0x40000, 0x10000, CRC(f5425e42) SHA1(c401263b6a266d3e9cd23133f1d823fb4b095e3d) )
628   ROM_LOAD( "p07_c14.bin",  0x50000, 0x10000, CRC(cb50a17c) SHA1(eb15704f715b6475ae7096f8d82f1b20f8277c71) )
629   ROM_LOAD( "v07_c17.bin",  0x60000, 0x10000, CRC(959ba3c7) SHA1(dcd2a885ae7b61210cbd55a38ccbe91c73d071b0) )
630   ROM_LOAD( "s07_c15.bin",  0x70000, 0x10000, CRC(7f2e91c5) SHA1(27dcc9b696834897c36c0b7a1c6202d93f41ad8d) )
632631
633632   ROM_REGION( 0x40000, "gfx3", 0 )
634   ROM_LOAD( "vg_b-1d-.ic1",  0x00000, 0x10000, CRC(81b1ee5c) SHA1(2014165ec71f089fecb5a3e60b939cc0f565d7f1) )
635   ROM_LOAD( "vg_b-1f-.ic2",  0x10000, 0x10000, CRC(d0d33673) SHA1(39761d97a71deaf7f17233d5bd5a55dbb1e6b30e) )
636   ROM_LOAD( "vg_b-1h-.ic3",  0x20000, 0x10000, CRC(aae81695) SHA1(ca8e136eca3543b27f3a61b105d4a280711cd6ea) )
633   ROM_LOAD( "d01_c05.bin",  0x00000, 0x10000, CRC(81b1ee5c) SHA1(2014165ec71f089fecb5a3e60b939cc0f565d7f1) )
634   ROM_LOAD( "e01_c06.bin",  0x10000, 0x10000, CRC(d0d33673) SHA1(39761d97a71deaf7f17233d5bd5a55dbb1e6b30e) )
635   ROM_LOAD( "f01_c07.bin",  0x20000, 0x10000, CRC(aae81695) SHA1(ca8e136eca3543b27f3a61b105d4a280711cd6ea) )
637636
638637   ROM_REGION( 0x10000, "samples", 0 ) /* samples */
639   ROM_LOAD( "vg_a-4d-.ic26",  0x00000, 0x10000, CRC(9b85101d) SHA1(6b8a0f33b9b66bb968f7b61e49d19a6afad8db95) )
638   ROM_LOAD( "d04_c01.bin",  0x00000, 0x10000, CRC(9b85101d) SHA1(6b8a0f33b9b66bb968f7b61e49d19a6afad8db95) )
640639
641640   ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected */
642641   ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) )
643642   ROM_LOAD( "vg_b-4m.ic38", 0x0200, 0x0117, CRC(dbca4204) SHA1(d8e190f2dc4d6285f22be331d01ed402520d2017) )
644   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
643   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
645644ROM_END
646645
646
647
647648ROM_START( vigilant1 )
648649   ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */
649   ROM_LOAD( "vg_a-8h-c.ic55",  0x00000, 0x08000, CRC(d72682e8) SHA1(2401a6397164ff66d96f6023f021c615d70108a5) ) /* Slot labeled 27256 = 256kb = 32KB confirmed */
650   ROM_LOAD( "vg_a-8l-a.ic57",  0x10000, 0x10000, CRC(690d812f) SHA1(60d6513f8b27411018cdca1b25f94bc281476ae7) )
650   ROM_LOAD( "vg_a-8h-c.rom",  0x00000, 0x08000, CRC(d72682e8) SHA1(2401a6397164ff66d96f6023f021c615d70108a5) ) /* Slot labeled 27256 = 256kb = 32KB confirmed */
651   ROM_LOAD( "vg_a-8l-a.rom",  0x10000, 0x10000, CRC(690d812f) SHA1(60d6513f8b27411018cdca1b25f94bc281476ae7) )
651652   /* 0x20000-0x2ffff empty */
652653
653654   ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for sound */
654   ROM_LOAD( "vg_a-5j-.ic37",  0x00000, 0x10000, CRC(10582b2d) SHA1(6e7e5f07c49b347b427572efeb180c89f49bf2c7) )
655   ROM_LOAD( "g05_c02.bin",  0x00000, 0x10000, CRC(10582b2d) SHA1(6e7e5f07c49b347b427572efeb180c89f49bf2c7) )
655656
656657   ROM_REGION( 0x20000, "gfx1", 0 )
657   ROM_LOAD( "vg_b-4f-.ic33",  0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) )
658   ROM_LOAD( "vg_b-4j-.ic34",  0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) )
658   ROM_LOAD( "f05_c08.bin",  0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) )
659   ROM_LOAD( "h05_c09.bin",  0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) )
659660
660   ROM_REGION( 0x80000, "gfx2", 0 ) // confirmed original board uses 4 roms
661   ROM_LOAD( "vg_b-6l-.ic61",  0x00000, 0x10000, CRC(fbe9552d) SHA1(3c7c218f13c0a94bb624745d81d63db9423777ea) )
662   ROM_CONTINUE(0x20000,0x10000)
663   ROM_LOAD( "vg_b-6k-.ic60",  0x10000, 0x10000, CRC(ae09d5c0) SHA1(9da5b824b148c1e1478e3f4b44ba4348376ed7d5) )
664   ROM_CONTINUE(0x30000,0x10000)
665   ROM_LOAD( "vg_b-6p-.ic63",  0x40000, 0x10000, CRC(afb77461) SHA1(18707768a4768b579c94092a260e286d3214b977) )
666   ROM_CONTINUE(0x60000,0x10000)
667   ROM_LOAD( "vg_b-6n-.ic62",  0x50000, 0x10000, CRC(5065cd35) SHA1(9a03c5af024fcae6b3371bb04be3e811ecc390d7) )
668   ROM_CONTINUE(0x70000,0x10000)
661   ROM_REGION( 0x80000, "gfx2", 0 )
662   ROM_LOAD( "n07_c12.bin",  0x00000, 0x10000, CRC(10af8eb2) SHA1(664b178b248babc43a9af0fe140fe57bc7367762) )
663   ROM_LOAD( "k07_c10.bin",  0x10000, 0x10000, CRC(9576f304) SHA1(0ec2a7d3d82208e2a9a4ef9ab2824e6fe26ebbe5) )
664   ROM_LOAD( "o07_c13.bin",  0x20000, 0x10000, CRC(b1d9d4dc) SHA1(1aacf6b0ff8d102880d3dce3b55cd1488edb90cf) )
665   ROM_LOAD( "l07_c11.bin",  0x30000, 0x10000, CRC(4598be4a) SHA1(6b68ec94bdee0e58133a8d3891054ef44a8ff0e5) )
666   ROM_LOAD( "t07_c16.bin",  0x40000, 0x10000, CRC(f5425e42) SHA1(c401263b6a266d3e9cd23133f1d823fb4b095e3d) )
667   ROM_LOAD( "p07_c14.bin",  0x50000, 0x10000, CRC(cb50a17c) SHA1(eb15704f715b6475ae7096f8d82f1b20f8277c71) )
668   ROM_LOAD( "v07_c17.bin",  0x60000, 0x10000, CRC(959ba3c7) SHA1(dcd2a885ae7b61210cbd55a38ccbe91c73d071b0) )
669   ROM_LOAD( "s07_c15.bin",  0x70000, 0x10000, CRC(7f2e91c5) SHA1(27dcc9b696834897c36c0b7a1c6202d93f41ad8d) )
669670
670671   ROM_REGION( 0x40000, "gfx3", 0 )
671   ROM_LOAD( "vg_b-1d-.ic1",  0x00000, 0x10000, CRC(81b1ee5c) SHA1(2014165ec71f089fecb5a3e60b939cc0f565d7f1) )
672   ROM_LOAD( "vg_b-1f-.ic2",  0x10000, 0x10000, CRC(d0d33673) SHA1(39761d97a71deaf7f17233d5bd5a55dbb1e6b30e) )
673   ROM_LOAD( "vg_b-1h-.ic3",  0x20000, 0x10000, CRC(aae81695) SHA1(ca8e136eca3543b27f3a61b105d4a280711cd6ea) )
672   ROM_LOAD( "d01_c05.bin",  0x00000, 0x10000, CRC(81b1ee5c) SHA1(2014165ec71f089fecb5a3e60b939cc0f565d7f1) )
673   ROM_LOAD( "e01_c06.bin",  0x10000, 0x10000, CRC(d0d33673) SHA1(39761d97a71deaf7f17233d5bd5a55dbb1e6b30e) )
674   ROM_LOAD( "f01_c07.bin",  0x20000, 0x10000, CRC(aae81695) SHA1(ca8e136eca3543b27f3a61b105d4a280711cd6ea) )
674675
675676   ROM_REGION( 0x10000, "samples", 0 ) /* samples */
676   ROM_LOAD( "vg_a-4d-.ic26",  0x00000, 0x10000, CRC(9b85101d) SHA1(6b8a0f33b9b66bb968f7b61e49d19a6afad8db95) )
677   ROM_LOAD( "d04_c01.bin",  0x00000, 0x10000, CRC(9b85101d) SHA1(6b8a0f33b9b66bb968f7b61e49d19a6afad8db95) )
677678
678679   ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected */
679680   ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) )
680681   ROM_LOAD( "vg_b-4m.ic38", 0x0200, 0x0117, CRC(dbca4204) SHA1(d8e190f2dc4d6285f22be331d01ed402520d2017) )
681   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
682   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
682683ROM_END
683684
684ROM_START( vigilantu ) /* Need to determine the correct original roms & IC locations for this set */
685
686ROM_START( vigilantu )
685687   ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */
686688   ROM_LOAD( "a-8h",  0x00000, 0x08000, CRC(8d15109e) SHA1(9ef57047a0b53cd0143a260193b33e3d5680ca71) )
687689   ROM_LOAD( "a-8l",  0x10000, 0x10000, CRC(7f95799b) SHA1(a371671c3c26976314aaac4e410bff0f13a8a085) )
r241777r241778
694696   ROM_LOAD( "f05_c08.bin",  0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) )
695697   ROM_LOAD( "h05_c09.bin",  0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) )
696698
697   ROM_REGION( 0x80000, "gfx2", 0 ) // 8 roms is a bootleg configuration?
699   ROM_REGION( 0x80000, "gfx2", 0 )
698700   ROM_LOAD( "n07_c12.bin",  0x00000, 0x10000, CRC(10af8eb2) SHA1(664b178b248babc43a9af0fe140fe57bc7367762) )
699701   ROM_LOAD( "k07_c10.bin",  0x10000, 0x10000, CRC(9576f304) SHA1(0ec2a7d3d82208e2a9a4ef9ab2824e6fe26ebbe5) )
700702   ROM_LOAD( "o07_c13.bin",  0x20000, 0x10000, CRC(b1d9d4dc) SHA1(1aacf6b0ff8d102880d3dce3b55cd1488edb90cf) )
r241777r241778
715717   ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected */
716718   ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) )
717719   ROM_LOAD( "vg_b-4m.ic38", 0x0200, 0x0117, CRC(dbca4204) SHA1(d8e190f2dc4d6285f22be331d01ed402520d2017) )
718   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
720   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
719721ROM_END
720722
721ROM_START( vigilantu2 ) /* Need to determine the correct original roms & IC locations for this set */
723ROM_START( vigilantu2 )
722724   ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */
723725   ROM_LOAD( "vg-a-8h-g.bin",  0x00000, 0x08000, CRC(9444c04e) SHA1(463d2dae48df2d237bd19d5e16cab032df0d9052) ) /* labeled Rev. G */
724726   ROM_LOAD( "a-8l",  0x10000, 0x10000, CRC(7f95799b) SHA1(a371671c3c26976314aaac4e410bff0f13a8a085) )
r241777r241778
731733   ROM_LOAD( "f05_c08.bin",  0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) )
732734   ROM_LOAD( "h05_c09.bin",  0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) )
733735
734   ROM_REGION( 0x80000, "gfx2", 0 ) // 8 roms is a bootleg configuration?
736   ROM_REGION( 0x80000, "gfx2", 0 )
735737   ROM_LOAD( "n07_c12.bin",  0x00000, 0x10000, CRC(10af8eb2) SHA1(664b178b248babc43a9af0fe140fe57bc7367762) )
736738   ROM_LOAD( "k07_c10.bin",  0x10000, 0x10000, CRC(9576f304) SHA1(0ec2a7d3d82208e2a9a4ef9ab2824e6fe26ebbe5) )
737739   ROM_LOAD( "o07_c13.bin",  0x20000, 0x10000, CRC(b1d9d4dc) SHA1(1aacf6b0ff8d102880d3dce3b55cd1488edb90cf) )
r241777r241778
752754   ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected - sourced from this board */
753755   ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) )
754756   ROM_LOAD( "vg_b-4m.ic38", 0x0200, 0x0117, CRC(dbca4204) SHA1(d8e190f2dc4d6285f22be331d01ed402520d2017) )
755   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
757   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
756758ROM_END
757759
758760ROM_START( vigilantj )
759761   ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */
760   ROM_LOAD( "vg_a-8h-d.ic55",  0x00000, 0x10000, CRC(6480bd03) SHA1(f238811b9618ac6be441fcce211e769678b54a05) ) // 1ST AND 2ND HALF IDENTICAL (correct)
761   ROM_LOAD( "vg_a-8l-d.ic57",  0x10000, 0x10000, CRC(3b12b1d8) SHA1(2f9207f8d8ec41ea1b8f5bf3c69a97d1d09f6c3f) )
762   ROM_LOAD( "vg_a-8h.rom",  0x00000, 0x08000, CRC(ba848713) SHA1(b357cbf404fb1874d555797ed9fb37f946cc4340) )
763   ROM_LOAD( "vg_a-8l.rom",  0x10000, 0x10000, CRC(3b12b1d8) SHA1(2f9207f8d8ec41ea1b8f5bf3c69a97d1d09f6c3f) )
762764   /* 0x20000-0x2ffff empty */
763765
764766   ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for sound */
765   ROM_LOAD( "vg_a-5j-.ic37",  0x00000, 0x10000, CRC(10582b2d) SHA1(6e7e5f07c49b347b427572efeb180c89f49bf2c7) )
766
767   ROM_REGION( 0x20000, "gfx1", 0 )
768   ROM_LOAD( "vg_b-4f-.ic33",  0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) )
769   ROM_LOAD( "vg_b-4j-.ic34",  0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) )
770
771   ROM_REGION( 0x80000, "gfx2", 0 ) // confirmed original board uses 4 roms
772   ROM_LOAD( "vg_b-6l-.ic61",  0x00000, 0x10000, CRC(fbe9552d) SHA1(3c7c218f13c0a94bb624745d81d63db9423777ea) )
773   ROM_CONTINUE(0x20000,0x10000)
774   ROM_LOAD( "vg_b-6k-.ic60",  0x10000, 0x10000, CRC(ae09d5c0) SHA1(9da5b824b148c1e1478e3f4b44ba4348376ed7d5) )
775   ROM_CONTINUE(0x30000,0x10000)
776   ROM_LOAD( "vg_b-6p-.ic63",  0x40000, 0x10000, CRC(afb77461) SHA1(18707768a4768b579c94092a260e286d3214b977) )
777   ROM_CONTINUE(0x60000,0x10000)
778   ROM_LOAD( "vg_b-6n-.ic62",  0x50000, 0x10000, CRC(5065cd35) SHA1(9a03c5af024fcae6b3371bb04be3e811ecc390d7) )
779   ROM_CONTINUE(0x70000,0x10000)
780
781   ROM_REGION( 0x40000, "gfx3", 0 )  // this should be 2x 23C1000 on Japan sets
782   ROM_LOAD( "vg_b-1d-.ic1",  0x00000, 0x10000, CRC(81b1ee5c) SHA1(2014165ec71f089fecb5a3e60b939cc0f565d7f1) )
783   ROM_LOAD( "vg_b-1f-.ic2",  0x10000, 0x10000, CRC(d0d33673) SHA1(39761d97a71deaf7f17233d5bd5a55dbb1e6b30e) )
784   ROM_LOAD( "vg_b-1h-.ic3",  0x20000, 0x10000, CRC(aae81695) SHA1(ca8e136eca3543b27f3a61b105d4a280711cd6ea) )
785
786   ROM_REGION( 0x10000, "samples", 0 ) /* samples */
787   ROM_LOAD( "vg_a-4d-.ic26",  0x00000, 0x10000, CRC(9b85101d) SHA1(6b8a0f33b9b66bb968f7b61e49d19a6afad8db95) )
788
789   ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected */
790   ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) )
791   ROM_LOAD( "vg_b-4m.ic38", 0x0200, 0x0117, CRC(dbca4204) SHA1(d8e190f2dc4d6285f22be331d01ed402520d2017) )
792   ROM_LOAD( "vg_b-1b.ic1",  0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
793ROM_END
794
795ROM_START( vigilantb ) /* Likely a bootleg */
796   ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */
797   ROM_LOAD( "g07_c03.bin",  0x00000, 0x08000, CRC(9dcca081) SHA1(6d086b70e6bf1fbafa746ef5c82334645f199be9) )
798   ROM_LOAD( "j07_c04.bin",  0x10000, 0x10000, CRC(e0159105) SHA1(da6d74ec075863c67c0ce21b07a54029d138f688) )
799   /* 0x20000-0x2ffff empty */
800
801   ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for sound */
802767   ROM_LOAD( "g05_c02.bin",  0x00000, 0x10000, CRC(10582b2d) SHA1(6e7e5f07c49b347b427572efeb180c89f49bf2c7) )
803768
804769   ROM_REGION( 0x20000, "gfx1", 0 )
805770   ROM_LOAD( "f05_c08.bin",  0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) )
806771   ROM_LOAD( "h05_c09.bin",  0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) )
807772
808   ROM_REGION( 0x80000, "gfx2", 0 ) // 8 roms is a bootleg configuration?
773   ROM_REGION( 0x80000, "gfx2", 0 )
809774   ROM_LOAD( "n07_c12.bin",  0x00000, 0x10000, CRC(10af8eb2) SHA1(664b178b248babc43a9af0fe140fe57bc7367762) )
810775   ROM_LOAD( "k07_c10.bin",  0x10000, 0x10000, CRC(9576f304) SHA1(0ec2a7d3d82208e2a9a4ef9ab2824e6fe26ebbe5) )
811776   ROM_LOAD( "o07_c13.bin",  0x20000, 0x10000, CRC(b1d9d4dc) SHA1(1aacf6b0ff8d102880d3dce3b55cd1488edb90cf) )
r241777r241778
823788   ROM_REGION( 0x10000, "samples", 0 ) /* samples */
824789   ROM_LOAD( "d04_c01.bin",  0x00000, 0x10000, CRC(9b85101d) SHA1(6b8a0f33b9b66bb968f7b61e49d19a6afad8db95) )
825790
826   ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected */
791   ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 */
827792   ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) )
828793   ROM_LOAD( "vg_b-4m.ic38", 0x0200, 0x0117, CRC(dbca4204) SHA1(d8e190f2dc4d6285f22be331d01ed402520d2017) )
829   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
794   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
830795ROM_END
831796
832
833797ROM_START( kikcubic )
834798   ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */
835799   ROM_LOAD( "mqj-p0",       0x00000, 0x08000, CRC(9cef394a) SHA1(be9cc78420b4c35f8f9523b529bd56315749762c) )
r241777r241778
889853   ROM_LOAD( "7s",           0x0120, 0x0020, CRC(face0cbb) SHA1(c56aea3b7aaabbd4ff1b4546fcad94f51b473cde) )    /* unknown (bad read?) */
890854ROM_END
891855
892
893856ROM_START( buccanrs )
894857   ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */
895858   ROM_LOAD( "11.u58",  0x00000, 0x10000, CRC(bf1d7e6f) SHA1(55dcf993515b57c3eb1fab98097a2171df3e38ed) ) // both halves are identical (correct for rom type on this board tho)
r241777r241778
963926   ROM_LOAD( "prom2.u99",  0x0300, 0x0100, CRC(e0aa8869) SHA1(ac8bdfeba69420ba56ec561bf3d0f1229d02cea2) )
964927ROM_END
965928
966GAME( 1988, vigilant,  0,        vigilant, vigilant, driver_device, 0, ROT0, "Irem",                         "Vigilante (World, Rev E)", GAME_NO_COCKTAIL )
967GAME( 1988, vigilant1, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem",                         "Vigilante (World, Rev C)", GAME_NO_COCKTAIL )
968GAME( 1988, vigilantu, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East USA license)", "Vigilante (US)", GAME_NO_COCKTAIL )
969GAME( 1988, vigilantu2,vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East USA license)", "Vigilante (US, Rev G)", GAME_NO_COCKTAIL )
970GAME( 1988, vigilantj, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem",                         "Vigilante (Japan, Rev D)", GAME_NO_COCKTAIL )
971GAME( 1988, vigilantb, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "bootleg",                      "Vigilante (bootleg)", GAME_NO_COCKTAIL )
972
973GAME( 1988, kikcubic,  0,        kikcubic, kikcubic, driver_device, 0, ROT0, "Irem",                         "Meikyu Jima (Japan)", GAME_NO_COCKTAIL )   /* English title is Kickle Cubicle */
974GAME( 1988, kikcubicb, kikcubic, kikcubic, kikcubic, driver_device, 0, ROT0, "bootleg",                      "Kickle Cubele", GAME_NO_COCKTAIL )
975
976GAME( 1989, buccanrs,  0,        buccanrs, buccanrs, driver_device, 0, ROT0, "Duintronic",                   "Buccaneers (set 1)", GAME_NO_COCKTAIL )
977GAME( 1989, buccanrsa, buccanrs, buccanrs, buccanra, driver_device, 0, ROT0, "Duintronic",                   "Buccaneers (set 2)", GAME_NO_COCKTAIL )
929GAME( 1988, vigilant, 0,        vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, set 1)", GAME_NO_COCKTAIL )
930GAME( 1988, vigilant1,vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, set 2)", GAME_NO_COCKTAIL )
931GAME( 1988, vigilantu,vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East USA license)", "Vigilante (US)", GAME_NO_COCKTAIL )
932GAME( 1988, vigilantu2,vigilant,vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East USA license)", "Vigilante (US) - Rev. G", GAME_NO_COCKTAIL )
933GAME( 1988, vigilantj,vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (Japan)", GAME_NO_COCKTAIL )
934GAME( 1988, kikcubic, 0,        kikcubic, kikcubic, driver_device, 0, ROT0, "Irem", "Meikyu Jima (Japan)", GAME_NO_COCKTAIL )   /* English title is Kickle Cubicle */
935GAME( 1988, kikcubicb,kikcubic, kikcubic, kikcubic, driver_device, 0, ROT0, "bootleg", "Kickle Cubele", GAME_NO_COCKTAIL )
936GAME( 1989, buccanrs, 0,        buccanrs, buccanrs, driver_device, 0, ROT0, "Duintronic", "Buccaneers (set 1)", GAME_NO_COCKTAIL )
937GAME( 1989, buccanrsa,buccanrs, buccanrs, buccanra, driver_device, 0, ROT0, "Duintronic", "Buccaneers (set 2)", GAME_NO_COCKTAIL )
trunk/src/mame/drivers/vindictr.c
r241777r241778
184184   MCFG_CPU_ADD("maincpu", M68010, ATARI_CLOCK_14MHz/2)
185185   MCFG_CPU_PROGRAM_MAP(main_map)
186186
187   MCFG_SLAPSTIC_ADD("slapstic") // where is this hooked up here?
188
189187   MCFG_MACHINE_RESET_OVERRIDE(vindictr_state,vindictr)
190188
191189   MCFG_ATARI_EEPROM_2804_ADD("eeprom")
trunk/src/mame/drivers/viper.c
r241777r241778
283283
284284#include "emu.h"
285285#include "cpu/powerpc/ppc.h"
286#include "machine/lpci.h"
286#include "machine/pci.h"
287287#include "machine/ataintf.h"
288288#include "machine/idehd.h"
289289#include "machine/timekpr.h"
trunk/src/mame/drivers/voyager.c
r241777r241778
1414
1515#include "emu.h"
1616#include "cpu/i386/i386.h"
17#include "machine/lpci.h"
17#include "machine/pci.h"
1818#include "machine/pcshare.h"
1919#include "machine/pckeybrd.h"
2020#include "machine/idectrl.h"
trunk/src/mame/drivers/xtom3d.c
r241777r241778
4040
4141#include "emu.h"
4242#include "cpu/i386/i386.h"
43#include "machine/lpci.h"
43#include "machine/pci.h"
4444#include "machine/pcshare.h"
4545#include "machine/pckeybrd.h"
4646#include "machine/idectrl.h"
trunk/src/mame/drivers/xybots.c
r241777r241778
184184   MCFG_CPU_PROGRAM_MAP(main_map)
185185   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
186186
187   MCFG_SLAPSTIC_ADD("slapstic")
188
189187   MCFG_MACHINE_RESET_OVERRIDE(xybots_state,xybots)
190188
191189   MCFG_ATARI_EEPROM_2804_ADD("eeprom")
trunk/src/mame/drivers/yunsun16.c
r241777r241778
578578static MACHINE_CONFIG_START( magicbub, yunsun16_state )
579579
580580   /* basic machine hardware */
581   MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz)
581   MCFG_CPU_ADD("maincpu", M68000, 16000000)
582582   MCFG_CPU_PROGRAM_MAP(main_map)
583583   MCFG_CPU_VBLANK_INT_DRIVER("screen", yunsun16_state,  irq2_line_hold)
584584
585   MCFG_CPU_ADD("audiocpu", Z80, XTAL_16MHz/4)
585   MCFG_CPU_ADD("audiocpu", Z80, 3000000)  /* ? */
586586   MCFG_CPU_PROGRAM_MAP(sound_map)
587587   MCFG_CPU_IO_MAP(sound_port_map)
588588
r241777r241778
601601   /* sound hardware */
602602   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
603603
604   MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_16MHz/4)
604   MCFG_SOUND_ADD("ymsnd", YM3812, 4000000)
605605   MCFG_YM3812_IRQ_HANDLER(WRITELINE(yunsun16_state, soundirq))
606606   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80)
607607   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80)
608608
609   MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH)
609   MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH)
610610   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80)
611611   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80)
612612MACHINE_CONFIG_END
r241777r241778
619619static MACHINE_CONFIG_START( shocking, yunsun16_state )
620620
621621   /* basic machine hardware */
622   MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz)
622   MCFG_CPU_ADD("maincpu", M68000, 16000000)
623623   MCFG_CPU_PROGRAM_MAP(main_map)
624624   MCFG_CPU_VBLANK_INT_DRIVER("screen", yunsun16_state,  irq2_line_hold)
625625
r241777r241778
637637   /* sound hardware */
638638   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
639639
640   MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH)
640   MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH)
641641   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
642642   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
643643MACHINE_CONFIG_END
r241777r241778
715715   ROM_LOAD16_BYTE( "magbuble.u32", 0x000001, 0x040000, CRC(f6ea7004) SHA1(069541e37b60370810451616ee66bbd05dc10137) )
716716
717717   ROM_REGION( 0x10000, "audiocpu", 0 )        /* Z80 Code */
718   ROM_LOAD( "u143.bin", 0x00000, 0x10000, CRC(04192753) SHA1(9c56ba70e1d074906ea1dc593c2a8516c6ba2074) )
718   ROM_LOAD( "magbuble.143", 0x00000, 0x10000, CRC(04192753) SHA1(9c56ba70e1d074906ea1dc593c2a8516c6ba2074) )
719719
720720   ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */
721721   ROMX_LOAD( "magbuble.u67", 0x000000, 0x080000, CRC(6355e57d) SHA1(5e9234dd474ddcf0a9e1001080f3de11c7d0ee55) , ROM_GROUPWORD | ROM_SKIP(6))
r241777r241778
724724   ROMX_LOAD( "magbuble.u70", 0x000006, 0x080000, CRC(37794837) SHA1(11597614e1e048544326fbbe281b364278d6350d) , ROM_GROUPWORD | ROM_SKIP(6))
725725
726726   ROM_REGION( 0x080000, "gfx2", 0 )   /* 16x16x4 */
727   ROM_LOAD( "u20.bin", 0x000000, 0x020000, CRC(f70e3b8c) SHA1(d925c27bbd0f915228d22589a98e3ea7181a87ca) )
728   ROM_LOAD( "u21.bin", 0x020000, 0x020000, CRC(ad082cf3) SHA1(0bc3cf6c54d47be4f1940192fc1585cb48767e97) )
729   ROM_LOAD( "u22.bin", 0x040000, 0x020000, CRC(7c68df7a) SHA1(88acf9dd43892a790415b418f77d88c747aa84f5) )
730   ROM_LOAD( "u23.bin", 0x060000, 0x020000, CRC(c7763fc1) SHA1(ed68b3c3c5155073afb7b55d6d92d3057e40df6c) )
727   ROM_LOAD( "magbuble.u20", 0x000000, 0x020000, CRC(f70e3b8c) SHA1(d925c27bbd0f915228d22589a98e3ea7181a87ca) )
728   ROM_LOAD( "magbuble.u21", 0x020000, 0x020000, CRC(ad082cf3) SHA1(0bc3cf6c54d47be4f1940192fc1585cb48767e97) )
729   ROM_LOAD( "magbuble.u22", 0x040000, 0x020000, CRC(7c68df7a) SHA1(88acf9dd43892a790415b418f77d88c747aa84f5) )
730   ROM_LOAD( "magbuble.u23", 0x060000, 0x020000, CRC(c7763fc1) SHA1(ed68b3c3c5155073afb7b55d6d92d3057e40df6c) )
731731
732732   ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
733   ROM_LOAD( "u131.bin", 0x000000, 0x020000, CRC(03e04e89) SHA1(7d80e6a7be2322e32e40acae72bedd8d7e90ad33) )
733   ROM_LOAD( "magbuble.131", 0x000000, 0x020000, CRC(03e04e89) SHA1(7d80e6a7be2322e32e40acae72bedd8d7e90ad33) )
734734
735735ROM_END
736736
r241777r241778
741741   ROM_LOAD16_BYTE( "u32.bin", 0x000001, 0x040000, CRC(58f885ad) SHA1(e66f5bb1ac0acd9abc2def439af7f932c3a09cbd) )
742742
743743   ROM_REGION( 0x10000, "audiocpu", 0 )        /* Z80 Code */
744   ROM_LOAD( "u143.bin", 0x00000, 0x10000, CRC(04192753) SHA1(9c56ba70e1d074906ea1dc593c2a8516c6ba2074) )
744   ROM_LOAD( "magbuble.143", 0x00000, 0x10000, CRC(04192753) SHA1(9c56ba70e1d074906ea1dc593c2a8516c6ba2074) )
745745
746746   ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */
747747   ROMX_LOAD( "u67.bin", 0x000000, 0x080000, CRC(89523dcd) SHA1(edea2bbec615aa253d940bbc3bbdb33f6873a8ee) , ROM_GROUPWORD | ROM_SKIP(6))
r241777r241778
754754   ROMX_LOAD( "u74.bin", 0x200006, 0x080000, CRC(81ff4910) SHA1(69241fe2d20b53984aa67f17d8da32e1b74ce696) , ROM_GROUPWORD | ROM_SKIP(6))
755755
756756   ROM_REGION( 0x080000, "gfx2", 0 )   /* 16x16x4 */
757   ROM_LOAD( "u20.bin", 0x000000, 0x020000, CRC(f70e3b8c) SHA1(d925c27bbd0f915228d22589a98e3ea7181a87ca) )
758   ROM_LOAD( "u21.bin", 0x020000, 0x020000, CRC(ad082cf3) SHA1(0bc3cf6c54d47be4f1940192fc1585cb48767e97) )
759   ROM_LOAD( "u22.bin", 0x040000, 0x020000, CRC(7c68df7a) SHA1(88acf9dd43892a790415b418f77d88c747aa84f5) )
760   ROM_LOAD( "u23.bin", 0x060000, 0x020000, CRC(c7763fc1) SHA1(ed68b3c3c5155073afb7b55d6d92d3057e40df6c) )
757   ROM_LOAD( "magbuble.u20", 0x000000, 0x020000, CRC(f70e3b8c) SHA1(d925c27bbd0f915228d22589a98e3ea7181a87ca) )
758   ROM_LOAD( "magbuble.u21", 0x020000, 0x020000, CRC(ad082cf3) SHA1(0bc3cf6c54d47be4f1940192fc1585cb48767e97) )
759   ROM_LOAD( "magbuble.u22", 0x040000, 0x020000, CRC(7c68df7a) SHA1(88acf9dd43892a790415b418f77d88c747aa84f5) )
760   ROM_LOAD( "magbuble.u23", 0x060000, 0x020000, CRC(c7763fc1) SHA1(ed68b3c3c5155073afb7b55d6d92d3057e40df6c) )
761761
762762   ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
763   ROM_LOAD( "u131.bin", 0x000000, 0x020000, CRC(03e04e89) SHA1(7d80e6a7be2322e32e40acae72bedd8d7e90ad33) )
763   ROM_LOAD( "magbuble.131", 0x000000, 0x020000, CRC(03e04e89) SHA1(7d80e6a7be2322e32e40acae72bedd8d7e90ad33) )
764764
765765ROM_END
766766
767ROM_START( magicbubb ) /* Found on a YS-0211 PCB like below */
768767
769   ROM_REGION( 0x080000, "maincpu", 0 )        /* 68000 Code */
770   ROM_LOAD16_BYTE( "u33", 0x000000, 0x040000, CRC(db651555) SHA1(41dbf35147e1c646db585437b378529559d3decb) )
771   ROM_LOAD16_BYTE( "u32", 0x000001, 0x040000, CRC(c9cb4d88) SHA1(ee41b9b307b423db7a9d706dfa9718efefa3b625) )
772
773   ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */
774   ROMX_LOAD( "u67.bin", 0x000000, 0x080000, CRC(89523dcd) SHA1(edea2bbec615aa253d940bbc3bbdb33f6873a8ee) , ROM_GROUPWORD | ROM_SKIP(6))
775   ROMX_LOAD( "u68.bin", 0x000002, 0x080000, CRC(30e01a70) SHA1(3a98c2ef61307b44bf4e155663117199587ff4a4) , ROM_GROUPWORD | ROM_SKIP(6))
776   ROMX_LOAD( "u69.bin", 0x000004, 0x080000, CRC(fe357f52) SHA1(5aff9a0bf70fc8a78820c4d13838ad238852c594) , ROM_GROUPWORD | ROM_SKIP(6))
777   ROMX_LOAD( "u70.bin", 0x000006, 0x080000, CRC(1398a473) SHA1(f58bda6cbf5f553a9632d910b2ffef5d5bfedf18) , ROM_GROUPWORD | ROM_SKIP(6))
778   ROMX_LOAD( "u71.bin", 0x200000, 0x080000, CRC(0844e017) SHA1(2ae5c9da521fea7aa5811627d7b3eca82cdc0821) , ROM_GROUPWORD | ROM_SKIP(6))
779   ROMX_LOAD( "u72.bin", 0x200002, 0x080000, CRC(591db1cb) SHA1(636fbfe9e048d6418d43f947004b281f61081fd8) , ROM_GROUPWORD | ROM_SKIP(6))
780   ROMX_LOAD( "u73.bin", 0x200004, 0x080000, CRC(cb4f3c3c) SHA1(fbd804bb70f09c2471557675af4c5b4abedea3b2) , ROM_GROUPWORD | ROM_SKIP(6))
781   ROMX_LOAD( "u74.bin", 0x200006, 0x080000, CRC(81ff4910) SHA1(69241fe2d20b53984aa67f17d8da32e1b74ce696) , ROM_GROUPWORD | ROM_SKIP(6))
782
783   ROM_REGION( 0x080000, "gfx2", 0 )   /* 16x16x4 */
784   ROM_LOAD( "u20.bin", 0x000000, 0x020000, CRC(f70e3b8c) SHA1(d925c27bbd0f915228d22589a98e3ea7181a87ca) )
785   ROM_LOAD( "u21.bin", 0x020000, 0x020000, CRC(ad082cf3) SHA1(0bc3cf6c54d47be4f1940192fc1585cb48767e97) )
786   ROM_LOAD( "u22.bin", 0x040000, 0x020000, CRC(7c68df7a) SHA1(88acf9dd43892a790415b418f77d88c747aa84f5) )
787   ROM_LOAD( "u23.bin", 0x060000, 0x020000, CRC(c7763fc1) SHA1(ed68b3c3c5155073afb7b55d6d92d3057e40df6c) )
788
789   ROM_REGION( 0x080000 * 2, "oki", 0 )    /* Samples */
790   ROM_LOAD( "u131", 0x000000, 0x040000, CRC(9bdb08e4) SHA1(4d8bdeb9b503b0959a6ae3f3fb3574350b01b1a1) )
791   ROM_RELOAD(       0x040000, 0x040000 )
792   ROM_RELOAD(       0x080000, 0x040000 )
793   ROM_RELOAD(       0x0c0000, 0x040000 )
794
795ROM_END
796
797
798768/***************************************************************************
799769
800770YunSung YS-0211 based games:
r241777r241778
802772Paparazzi (c) 1996 (no PCB label but looks identical)
803773Shocking  (c) 1997
804774Bomb Kick (c) 1998
805Magic Bubble (c) 199?
806775
807776PCB Layout
808777----------
r241777r241778
987956
988957***************************************************************************/
989958
990GAME( 199?, magicbub,  0,        magicbub, magicbub, yunsun16_state, magicbub, ROT0,   "Yun Sung", "Magic Bubble",                              GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
991GAME( 199?, magicbuba, magicbub, magicbub, magicbua, yunsun16_state, magicbub, ROT0,   "Yun Sung", "Magic Bubble (Adult version, YS-1302 PCB)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
992GAME( 199?, magicbubb, magicbub, shocking, magicbua, driver_device,  0,        ROT0,   "Yun Sung", "Magic Bubble (Adult version, YS-0211 PCB)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
993GAME( 1996, paprazzi,  0,        shocking, paprazzi, driver_device,  0,        ROT270, "Yun Sung", "Paparazzi",                                 GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
994GAME( 1997, shocking,  0,        shocking, shocking, driver_device,  0,        ROT0,   "Yun Sung", "Shocking",                                  GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
995GAME( 1997, shockingk, shocking, shocking, shocking, driver_device,  0,        ROT0,   "Yun Sung", "Shocking (Korea)",                          GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
996GAME( 1998, bombkick,  0,        shocking, bombkick, driver_device,  0,        ROT0,   "Yun Sung", "Bomb Kick (set 1)",                         GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
997GAME( 1998, bombkicka, bombkick, shocking, bombkick, driver_device,  0,        ROT0,   "Yun Sung", "Bomb Kick (set 2)",                         GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
959GAME( 199?, magicbub,  0,        magicbub, magicbub, yunsun16_state, magicbub, ROT0,   "Yun Sung", "Magic Bubble",                 GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
960GAME( 199?, magicbuba, magicbub, magicbub, magicbua, yunsun16_state, magicbub, ROT0,   "Yun Sung", "Magic Bubble (Adult version)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
961GAME( 1996, paprazzi,  0,        shocking, paprazzi, driver_device,  0,        ROT270, "Yun Sung", "Paparazzi",                    GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
962GAME( 1997, shocking,  0,        shocking, shocking, driver_device,  0,        ROT0,   "Yun Sung", "Shocking",                     GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
963GAME( 1997, shockingk, shocking, shocking, shocking, driver_device,  0,        ROT0,   "Yun Sung", "Shocking (Korea)",             GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
964GAME( 1998, bombkick,  0,        shocking, bombkick, driver_device,  0,        ROT0,   "Yun Sung", "Bomb Kick (set 1)",            GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
965GAME( 1998, bombkicka, bombkick, shocking, bombkick, driver_device,  0,        ROT0,   "Yun Sung", "Bomb Kick (set 2)",            GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
trunk/src/mame/includes/atarigx2.h
r241777r241778
88
99#include "machine/atarigen.h"
1010#include "audio/atarijsa.h"
11#include "includes/slapstic.h"
1211
13
1412class atarigx2_state : public atarigen_state
1513{
1614public:
r241777r241778
2119         m_protection_base(*this, "protection_base"),
2220         m_playfield_tilemap(*this, "playfield"),
2321         m_alpha_tilemap(*this, "alpha"),
24         m_rle(*this, "rle")
25         { }
22         m_rle(*this, "rle") { }
2623
2724   UINT16          m_playfield_base;
2825
trunk/src/mame/includes/atarisy2.h
r241777r241778
1010#include "video/atarimo.h"
1111#include "cpu/m6502/m6502.h"
1212#include "cpu/t11/t11.h"
13#include "slapstic.h"
1413
1514class atarisy2_state : public atarigen_state
1615{
r241777r241778
2625         m_alpha_tilemap(*this, "alpha"),
2726         m_rombank1(*this, "rombank1"),
2827         m_rombank2(*this, "rombank2"),
29         m_generic_paletteram_16(*this, "paletteram"),
30         m_slapstic(*this, "slapstic")
31         { }
28         m_generic_paletteram_16(*this, "paletteram") { }
3229
3330   required_device<t11_device> m_maincpu;
3431   required_device<m6502_device> m_audiocpu;
r241777r241778
5350   required_shared_ptr<UINT16> m_rombank1;
5451   required_shared_ptr<UINT16> m_rombank2;
5552   required_shared_ptr<UINT16> m_generic_paletteram_16;
56   required_device<atari_slapstic_device> m_slapstic;
5753
5854   UINT8           m_sound_reset_state;
5955
trunk/src/mame/includes/atetris.h
r241777r241778
44
55*************************************************************************/
66
7#include "includes/slapstic.h"
8
97class atetris_state : public driver_device
108{
119public:
r241777r241778
1513      m_videoram(*this, "videoram"),
1614      m_maincpu(*this, "maincpu"),
1715      m_gfxdecode(*this, "gfxdecode"),
18      m_screen(*this, "screen"),
19      m_slapstic_device(*this, "slapstic")
20      { }
16      m_screen(*this, "screen") { }
2117
2218   required_shared_ptr<UINT8>  m_nvram;
2319   required_shared_ptr<UINT8> m_videoram;
r241777r241778
4440   required_device<cpu_device> m_maincpu;
4541   required_device<gfxdecode_device> m_gfxdecode;
4642   required_device<screen_device> m_screen;
47   optional_device<atari_slapstic_device> m_slapstic_device;
4843};
trunk/src/mame/includes/harddriv.h
r241777r241778
1313#include "cpu/dsp32/dsp32.h"
1414#include "audio/atarijsa.h"
1515#include "sound/dac.h"
16#include "machine/atarigen.h"
1617#include "machine/mc68681.h"
1718#include "machine/asic65.h"
1819#include "machine/timekpr.h"
r241777r241778
2021#define HARDDRIV_MASTER_CLOCK   XTAL_32MHz
2122#define HARDDRIV_GSP_CLOCK      XTAL_48MHz
2223
23extern const device_type HARDDRIV_DEVICE;
24extern const device_type HARDDRIV_BOARD_DEVICE;
25extern const device_type HARDDRIVC_BOARD_DEVICE;
26extern const device_type RACEDRIV_BOARD_DEVICE;
27extern const device_type RACEDRIVC_BOARD_DEVICE;
28extern const device_type RACEDRIVC1_BOARD_DEVICE;
29extern const device_type RACEDRIVB1_BOARD_DEVICE;
30extern const device_type RACEDRIVC_PANORAMA_SIDE_BOARD_DEVICE;
31extern const device_type STUNRUN_BOARD_DEVICE;
32extern const device_type STEELTAL_BOARD_DEVICE;
33extern const device_type STEELTAL1_BOARD_DEVICE;
34extern const device_type STEELTALP_BOARD_DEVICE;
35extern const device_type STRTDRIV_BOARD_DEVICE;
36extern const device_type HDRIVAIR_BOARD_DEVICE;
37extern const device_type HDRIVAIRP_BOARD_DEVICE;
38
39
40class harddriv_state :  public device_t
41 /* public device_video_interface */
24class harddriv_state : public atarigen_state
4225{
4326public:
44   harddriv_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
27   harddriv_state(const machine_config &mconfig, device_type type, const char *tag)
28      : atarigen_state(mconfig, type, tag),
29         m_maincpu(*this, "maincpu"),
30         m_gsp(*this, "gsp"),
31         m_msp(*this, "msp"),
32         m_adsp(*this, "adsp"),
33         m_soundcpu(*this, "soundcpu"),
34         m_sounddsp(*this, "sounddsp"),
35         m_jsacpu(*this, "jsacpu"),
36         m_dsp32(*this, "dsp32"),
37         m_ds3sdsp(*this, "ds3sdsp"),
38         m_ds3xdsp(*this, "ds3xdsp"),
39         m_ds3dac1(*this, "ds3dac1"),
40         m_ds3dac2(*this, "ds3dac2"),
41         m_jsa(*this, "jsa"),
42         m_msp_ram(*this, "msp_ram"),
43         m_dsk_10c(*this, "dsk_10c"),
44         m_dsk_30c(*this, "dsk_30c"),
45         m_200e(*this, "200e"),
46         m_210e(*this, "210e"),
47         m_adsp_data_memory(*this, "adsp_data"),
48         m_adsp_pgm_memory(*this, "adsp_pgm_memory"),
49         m_ds3sdsp_data_memory(*this, "ds3sdsp_data"),
50         m_ds3sdsp_pgm_memory(*this, "ds3sdsp_pgm"),
51         m_ds3xdsp_pgm_memory(*this, "ds3xdsp_pgm"),
52         m_sounddsp_ram(*this, "sounddsp_ram"),
53         m_gsp_vram(*this, "gsp_vram", 16),
54         m_gsp_control_lo(*this, "gsp_control_lo"),
55         m_gsp_control_hi(*this, "gsp_control_hi"),
56         m_gsp_paletteram_lo(*this, "gsp_palram_lo"),
57         m_gsp_paletteram_hi(*this, "gsp_palram_hi"),
58         m_ds3sdsp_internal_timer(*this, "ds3sdsp_timer"),
59         m_ds3xdsp_internal_timer(*this, "ds3xdsp_timer"),
60         m_dac(*this, "dac"),
61         m_duart(*this, "duartn68681"),
62         m_asic65(*this, "asic65") {}
4563
46
4764   required_device<cpu_device> m_maincpu;
4865   required_device<tms34010_device> m_gsp;
4966   optional_device<tms34010_device> m_msp;
r241777r241778
251268   void init_driver_sound();
252269   void racedrivc_init_common(offs_t gsp_protection);
253270   void steeltal_init_common(offs_t ds3_transfer_pc, int proto_sloop);
254
255   void init_strtdriv(void);
256   
257   void init_harddriv(void);
258   
259   void init_harddrivc(void);
260
261   void init_racedriv(void);
262   void init_racedrivb1(void);   
263
264   void init_racedrivc(void);
265   void init_racedrivc1(void);
266   
267   void init_hdrivair(void);
268   void init_hdrivairp(void);
269   
270   void init_steeltal(void);
271   void init_steeltal1(void);
272   void init_steeltalp(void);
273   
274   void init_stunrun(void);
275   void init_racedrivc_panorama_side();
276
277   void init_video();
271   DECLARE_DRIVER_INIT(strtdriv);
272   DECLARE_DRIVER_INIT(harddrivc);
273   DECLARE_DRIVER_INIT(hdrivairp);
274   DECLARE_DRIVER_INIT(racedriv);
275   DECLARE_DRIVER_INIT(hdrivair);
276   DECLARE_DRIVER_INIT(steeltal1);
277   DECLARE_DRIVER_INIT(racedrivc);
278   DECLARE_DRIVER_INIT(steeltal);
279   DECLARE_DRIVER_INIT(racedrivc1);
280   DECLARE_DRIVER_INIT(racedrivb1);
281   DECLARE_DRIVER_INIT(harddriv);
282   DECLARE_DRIVER_INIT(steeltalp);
283   DECLARE_DRIVER_INIT(stunrun);
284   DECLARE_MACHINE_START(harddriv);
285   DECLARE_MACHINE_RESET(harddriv);
286   DECLARE_VIDEO_START(harddriv);
278287   INTERRUPT_GEN_MEMBER(hd68k_irq_gen);
279288   TIMER_CALLBACK_MEMBER(deferred_adsp_bank_switch);
280289   TIMER_CALLBACK_MEMBER(rddsp32_sync_cb);
r241777r241778
301310   DECLARE_READ16_MEMBER( hd68k_msp_io_r );
302311   DECLARE_WRITE16_MEMBER( hd68k_msp_io_w );
303312
304   DECLARE_READ16_MEMBER( hd68k_a80000_r );
305313   DECLARE_READ16_MEMBER( hd68k_port0_r );
306314   DECLARE_READ16_MEMBER( hd68k_adc8_r );
307315   DECLARE_READ16_MEMBER( hd68k_adc12_r );
r241777r241778
461469
462470   TMS340X0_SCANLINE_IND16_CB_MEMBER(scanline_driver);
463471   TMS340X0_SCANLINE_IND16_CB_MEMBER(scanline_multisync);
464   
465   UINT8               m_sound_int_state;
466   UINT8               m_video_int_state;
467
468   optional_device<palette_device> m_palette;
469   int get_hblank(screen_device &screen) const { return (screen.hpos() > (screen.width() * 9 / 10)); }
470   WRITE16_MEMBER( watchdog_reset16_w );
471   INTERRUPT_GEN_MEMBER(video_int_gen);
472   DECLARE_WRITE_LINE_MEMBER(sound_int_write_line);
473   optional_device<atari_slapstic_device> m_slapstic_device;
474protected:
475   //virtual machine_config_constructor device_mconfig_additions() const;
476   virtual void device_start();
477   virtual void device_reset();
478472};
479
480/* Hard Drivin' */
481
482class harddriv_board_device_state :  public harddriv_state
483{
484public:
485   harddriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
486
487protected:
488   virtual machine_config_constructor device_mconfig_additions() const;
489   virtual void device_start();
490//   virtual void device_reset();   
491};
492
493/* Hard Drivin' Compact */
494
495class harddrivc_board_device_state :  public harddriv_state
496{
497public:
498   harddrivc_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
499
500protected:
501   virtual machine_config_constructor device_mconfig_additions() const;
502   virtual void device_start();
503//   virtual void device_reset();   
504};
505
506/* Race Drivin' */
507
508class racedriv_board_device_state :  public harddriv_state
509{
510public:
511   racedriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
512   DECLARE_WRITE_LINE_MEMBER(tx_a);
513
514protected:
515   virtual machine_config_constructor device_mconfig_additions() const;
516   virtual void device_start();
517//   virtual void device_reset();   
518};
519
520class racedrivb1_board_device_state :  public racedriv_board_device_state
521{
522public:
523   racedrivb1_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
524      racedriv_board_device_state(mconfig, tag, owner, clock)
525      {};
526
527protected:
528   virtual void device_start();
529};
530
531/* Race Drivin' Compact */
532
533class racedrivc_board_device_state :  public harddriv_state
534{
535public:
536   racedrivc_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
537
538protected:
539   virtual machine_config_constructor device_mconfig_additions() const;
540   virtual void device_start();
541//   virtual void device_reset();   
542};
543
544class racedrivc1_board_device_state :  public racedrivc_board_device_state
545{
546public:
547   racedrivc1_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
548      racedrivc_board_device_state(mconfig, tag, owner, clock)
549      {};
550protected:
551   virtual void device_start();
552};
553
554class racedrivc_panorama_side_board_device_state :  public racedrivc_board_device_state
555{
556public:
557   racedrivc_panorama_side_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
558      racedrivc_board_device_state(mconfig, tag, owner, clock)
559      {};
560protected:
561   virtual machine_config_constructor device_mconfig_additions() const;
562   virtual void device_start();
563};
564
565
566/* Stun Runner */
567
568class stunrun_board_device_state :  public harddriv_state
569{
570public:
571   stunrun_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
572
573protected:
574   virtual machine_config_constructor device_mconfig_additions() const;
575   virtual void device_start();
576//   virtual void device_reset();   
577};
578
579/* Steel Talons */
580
581class steeltal_board_device_state :  public harddriv_state
582{
583public:
584   steeltal_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
585
586protected:
587   virtual machine_config_constructor device_mconfig_additions() const;
588   virtual void device_start();
589//   virtual void device_reset();   
590};
591
592class steeltal1_board_device_state :  public steeltal_board_device_state
593{
594public:
595   steeltal1_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
596      steeltal_board_device_state(mconfig, tag, owner, clock)
597      {};
598
599protected:
600   virtual void device_start();
601};
602
603class steeltalp_board_device_state :  public steeltal_board_device_state
604{
605public:
606   steeltalp_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
607      steeltal_board_device_state(mconfig, tag, owner, clock)
608      {};
609
610protected:
611   virtual void device_start();
612};
613
614
615
616/* Street Drivin' */
617
618class strtdriv_board_device_state :  public harddriv_state
619{
620public:
621   strtdriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
622
623protected:
624   virtual machine_config_constructor device_mconfig_additions() const;
625   virtual void device_start();
626//   virtual void device_reset();   
627};
628
629/* Hard Drivin' Airbourne */
630
631class hdrivair_board_device_state :  public harddriv_state
632{
633public:
634   hdrivair_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
635
636protected:
637   virtual machine_config_constructor device_mconfig_additions() const;
638   virtual void device_start();
639//   virtual void device_reset();   
640};
641
642class hdrivairp_board_device_state :  public hdrivair_board_device_state
643{
644public:
645   hdrivairp_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
646      hdrivair_board_device_state(mconfig, tag, owner, clock)
647      {};
648     
649protected:
650   virtual void device_start();
651};
652
653
654
655
trunk/src/mame/includes/pgm.h
r241777r241778
411411   DECLARE_DRIVER_INIT(dw2v100x);
412412   DECLARE_DRIVER_INIT(drgw2c);
413413   DECLARE_DRIVER_INIT(drgw2j);
414   DECLARE_DRIVER_INIT(drgw2hk);
415414
416415   DECLARE_MACHINE_RESET(drgw2);
417416
trunk/src/mame/includes/segas18.h
r241777r241778
5555   DECLARE_DRIVER_INIT(generic_5874);
5656   DECLARE_DRIVER_INIT(wwally);
5757   DECLARE_DRIVER_INIT(generic_5987);
58   DECLARE_DRIVER_INIT(hamaway);
5958
6059   // memory mapping
6160   void memory_mapper(sega_315_5195_mapper_device &mapper, UINT8 index);
r241777r241778
6463
6564   // read/write handlers
6665   DECLARE_WRITE16_MEMBER( rom_5987_bank_w );
67   DECLARE_WRITE16_MEMBER( rom_837_7525_bank_w );
6866   DECLARE_READ16_MEMBER( io_chip_r );
6967   DECLARE_WRITE16_MEMBER( io_chip_w );
7068   DECLARE_READ16_MEMBER( misc_io_r );
r241777r241778
9290
9391   DECLARE_WRITE16_MEMBER( sega_tileram_0_w ) { m_segaic16vid->segaic16_tileram_0_w(space,offset,data,mem_mask); };
9492   DECLARE_WRITE16_MEMBER( sega_textram_0_w ) { m_segaic16vid->segaic16_textram_0_w(space,offset,data,mem_mask); };
95   
96   DECLARE_WRITE_LINE_MEMBER(ym3438_irq_handler);
9793
9894protected:
9995   // timer IDs
r241777r241778
108104      ROM_BOARD_INVALID,
109105      ROM_BOARD_171_SHADOW,   // 171-???? -- used by shadow dancer
110106      ROM_BOARD_171_5874,     // 171-5874
111      ROM_BOARD_171_5987,     // 171-5987
112      ROM_BOARD_837_7525      // Hammer Away proto
113
107      ROM_BOARD_171_5987      // 171-5987
114108   };
115109
116110   // device overrides
trunk/src/mame/includes/slapstic.h
r241777r241778
99
1010*************************************************************************/
1111
12#pragma once
12/*----------- defined in machine/slapstic.c -----------*/
1313
14#ifndef __SLAPSTIC__
15#define __SLAPSTIC__
14void slapstic_init(running_machine &machine, int chip);
15void slapstic_reset(void);
1616
17#include "emu.h"
18#include "cpu/m6800/m6800.h"
19#include "cpu/m68000/m68000.h"
20
21
22extern const device_type SLAPSTIC;
23
24#define MCFG_SLAPSTIC_ADD(_tag) \
25   MCFG_DEVICE_ADD(_tag, SLAPSTIC, 0)
26
27
28/*************************************
29 *
30 *  Debugging
31 *
32 *************************************/
33
34#define LOG_SLAPSTIC    (0)
35
36
37
38/*************************************
39 *
40 *  Structure of slapstic params
41 *
42 *************************************/
43
44struct mask_value
45{
46   int mask, value;
47};
48
49
50struct slapstic_data
51{
52   int bankstart;
53   int bank[4];
54
55   struct mask_value alt1;
56   struct mask_value alt2;
57   struct mask_value alt3;
58   struct mask_value alt4;
59   int altshift;
60
61   struct mask_value bit1;
62   struct mask_value bit2c0;
63   struct mask_value bit2s0;
64   struct mask_value bit2c1;
65   struct mask_value bit2s1;
66   struct mask_value bit3;
67
68   struct mask_value add1;
69   struct mask_value add2;
70   struct mask_value addplus1;
71   struct mask_value addplus2;
72   struct mask_value add3;
73};
74
75
76
77/*************************************
78 *
79 *  Shorthand
80 *
81 *************************************/
82
83#define UNKNOWN 0xffff
84#define NO_BITWISE          \
85   { UNKNOWN,UNKNOWN },    \
86   { UNKNOWN,UNKNOWN },    \
87   { UNKNOWN,UNKNOWN },    \
88   { UNKNOWN,UNKNOWN },    \
89   { UNKNOWN,UNKNOWN },    \
90   { UNKNOWN,UNKNOWN }
91#define NO_ADDITIVE         \
92   { UNKNOWN,UNKNOWN },    \
93   { UNKNOWN,UNKNOWN },    \
94   { UNKNOWN,UNKNOWN },    \
95   { UNKNOWN,UNKNOWN },    \
96   { UNKNOWN,UNKNOWN }
97
98#define MATCHES_MASK_VALUE(val, maskval)    (((val) & (maskval).mask) == (maskval).value)
99
100
101
102/*************************************
103 *
104 *  Constants
105 *
106 *************************************/
107
108enum
109{
110   DISABLED,
111   ENABLED,
112   ALTERNATE1,
113   ALTERNATE2,
114   ALTERNATE3,
115   BITWISE1,
116   BITWISE2,
117   BITWISE3,
118   ADDITIVE1,
119   ADDITIVE2,
120   ADDITIVE3
121};
122
123
124#define MCFG_SLAPSTIC_68K_ACCESS(_type) \
125   atari_slapstic_device::static_set_access68k(*device, _type);
126
127
128
129class atari_slapstic_device :  public device_t
130{
131public:
132   // construction/destruction
133   atari_slapstic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
134
135   void slapstic_init(running_machine &machine, int chip);
136   void slapstic_reset(void);
137
138   int slapstic_bank(void);
139   int slapstic_tweak(address_space &space, offs_t offset);
140
141   int alt2_kludge(address_space &space, offs_t offset);
142
143   static void static_set_access68k(device_t &device, int type)
144   {
145      atari_slapstic_device &dev = downcast<atari_slapstic_device &>(device);
146      dev.access_68k = type;
147   }
148
149
150   UINT8 state;
151   UINT8 current_bank;
152   int access_68k;
153
154   UINT8 alt_bank;
155   UINT8 bit_bank;
156   UINT8 add_bank;
157   UINT8 bit_xor;
158
159   struct slapstic_data slapstic;
160
161
162   void slapstic_log(running_machine &machine, offs_t offset);
163   FILE *slapsticlog;
164
165
166protected:
167   virtual void device_start();
168   virtual void device_reset();
169
170
171private:
172
173
174
175
176};
177
178
179
180
181#endif
17int slapstic_bank(void);
18int slapstic_tweak(address_space &space, offs_t offset);
trunk/src/mame/includes/starwars.h
r241777r241778
55***************************************************************************/
66
77#include "machine/6532riot.h"
8#include "includes/slapstic.h"
98
109
1110class starwars_state : public driver_device
r241777r241778
1615      m_riot(*this, "riot"),
1716      m_mathram(*this, "mathram"),
1817      m_maincpu(*this, "maincpu"),
19      m_audiocpu(*this, "audiocpu"),
20      m_slapstic_device(*this, "slapstic")
21      { }
18      m_audiocpu(*this, "audiocpu")  { }
2219
2320   UINT8 m_sound_data;
2421   UINT8 m_main_data;
r241777r241778
8178   void esb_slapstic_tweak(address_space &space, offs_t offset);
8279   required_device<cpu_device> m_maincpu;
8380   required_device<cpu_device> m_audiocpu;
84   optional_device<atari_slapstic_device> m_slapstic_device;
8581};
trunk/src/mame/includes/stv.h
r241777r241778
99#include "bus/generic/slot.h"
1010#include "bus/generic/carts.h"
1111
12#include "machine/315-5881_crypt.h"
13
1412#define MAX_FILTERS (24)
1513#define MAX_BLOCKS  (200)
1614#define MAX_DIR_SIZE    (256*1024)
r241777r241778
169167   required_device<gfxdecode_device> m_gfxdecode;
170168   required_device<palette_device> m_palette;
171169
172
173
174170   bitmap_rgb32 m_tmpbitmap;
175171   DECLARE_VIDEO_START(stv_vdp2);
176172   UINT32 screen_update_saturn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
r241777r241778
698694   stv_state(const machine_config &mconfig, device_type type, const char *tag)
699695      : saturn_state(mconfig, type, tag),
700696      m_adsp(*this, "adsp"),
701      m_adsp_pram(*this, "adsp_pram"),
702      m_cryptdevice(*this, "315_5881")
697      m_adsp_pram(*this, "adsp_pram")
703698   {
704699   }
705700
r241777r241778
834829   DECLARE_WRITE32_MEMBER( decathlt_prot2_w );
835830   void write_prot_data(UINT32 data, UINT32 mem_mask, int offset, int which);
836831   void install_decathlt_protection();
837
838   optional_device<sega_315_5881_crypt_device> m_cryptdevice;
839   UINT16 crypt_read_callback(UINT32 addr);
840832};
841833
842834
trunk/src/mame/includes/tumbleb.h
r241777r241778
4040   tilemap_t   *m_pf2_tilemap;
4141   tilemap_t   *m_pf2_alt_tilemap;
4242   UINT16      m_control_0[8];
43   int         m_flipscreen;
4344   UINT16      m_tilebank;
4445
4546   /* devices */
trunk/src/mame/includes/tx1.h
r241777r241778
193193
194194   void buggyboy_draw_char(UINT8 *bitmap, bool wide);
195195   void buggyboy_get_roadpix(int screen, int ls161, UINT8 rva0_6, UINT8 sld, UINT32 *_rorev,
196                        UINT8 *rc0, UINT8 *rc1, UINT8 *rc2, UINT8 *rc3);
196                        UINT8 *rc0, UINT8 *rc1, UINT8 *rc2, UINT8 *rc3,
197                        const UINT8 *rom, const UINT8 *prom0, const UINT8 *prom1, const UINT8 *prom2);
197198   void buggyboy_draw_road(UINT8 *bitmap);
198199   void buggybjr_draw_road(UINT8 *bitmap);
199200   void buggyboy_draw_objs(UINT8 *bitmap, bool wide);
trunk/src/mame/layout/racedrivpan.lay
r241777r241778
1<?xml version="1.0"?>
2<mamelayout version="2">
3
4   <view name="Triple Side-by-Side (Panorama)">
5      <screen index="1">
6         <bounds x="0" y="0" width="4" height="3" />
7      </screen>
8      <screen index="0">
9         <bounds x="4.03" y="0" width="4" height="3" />
10      </screen>
11      <screen index="2">
12         <bounds x="8.06" y="0" width="4" height="3" />
13      </screen>
14   </view>
15
16</mamelayout>
trunk/src/mame/machine/315-5881_crypt.c
r241777r241778
1/*
2  re: Tecmo World Cup '98 (ST-V) (from ANY)
3
4  I got one of the card in subject open it up to check the rom version
5  and made a discovery...
6  The protection chip has the part number on it "315-5881", it's the same
7  used on naomi M2 carts as you can see here
8  http://imagizer.imageshack.us/a/img540/7634/BsqvD8.jpg
9
10  The same chip 315-5881 but with a Lattice IspLSI2032 (Sega part
11  315-6050) was used on some Model3 games...
12
13*/
14
15#include "emu.h"
16#include "machine/315-5881_crypt.h"
17
18extern const device_type SEGA315_5881_CRYPT = &device_creator<sega_315_5881_crypt_device>;
19
20
21sega_315_5881_crypt_device::sega_315_5881_crypt_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
22   : device_t(mconfig, SEGA315_5881_CRYPT, "Sega 'SEGA315_5881' Encryption device", tag, owner, clock, "SEGA315_5881", __FILE__)
23{
24}
25
26
27
28void sega_315_5881_crypt_device::device_start()
29{
30   buffer = auto_alloc_array(machine(), UINT8, BUFFER_SIZE);
31   line_buffer = auto_alloc_array(machine(), UINT8, LINE_SIZE);
32   line_buffer_prev = auto_alloc_array(machine(), UINT8, LINE_SIZE);
33
34   m_read.bind_relative_to(*owner());
35
36   save_pointer(NAME(buffer), BUFFER_SIZE);
37   save_pointer(NAME(line_buffer), LINE_SIZE);
38   save_pointer(NAME(line_buffer_prev), LINE_SIZE);
39   save_item(NAME(prot_cur_address));
40   save_item(NAME(subkey));
41   save_item(NAME(enc_ready));
42   save_item(NAME(dec_hist));
43   save_item(NAME(dec_header));
44   save_item(NAME(buffer_pos));
45   save_item(NAME(line_buffer_pos));
46   save_item(NAME(line_buffer_size));
47
48}
49
50void sega_315_5881_crypt_device::device_reset()
51{
52   memset(buffer, 0, BUFFER_SIZE);
53   memset(line_buffer, 0, LINE_SIZE);
54   memset(line_buffer_prev, 0, LINE_SIZE);
55
56   prot_cur_address = 0;
57   subkey = 0;
58   dec_hist = 0;
59   dec_header = 0;
60   enc_ready = false;
61
62   buffer_pos = 0;
63   line_buffer_pos = 0;
64   line_buffer_size = 0;
65   buffer_bit = 0;
66}
67
68UINT16 sega_315_5881_crypt_device::do_decrypt(UINT8 *&base)
69{
70   if(!enc_ready)
71      enc_start();
72   if(dec_header & FLAG_COMPRESSED) {
73      if(line_buffer_pos == line_buffer_size)
74         line_fill();
75      base = line_buffer + line_buffer_pos;
76      line_buffer_pos += 2;
77   } else {
78      if(buffer_pos == BUFFER_SIZE)
79         enc_fill();
80      base = buffer + buffer_pos;
81      buffer_pos += 2;
82   }
83
84   return (base[0] << 8) | base[1];
85}
86
87void sega_315_5881_crypt_device::set_addr_low(UINT16 data)
88{
89   prot_cur_address = (prot_cur_address & 0xffff0000) | data;
90   enc_ready = false;
91}
92
93void sega_315_5881_crypt_device::set_addr_high(UINT16 data)
94{
95   prot_cur_address = (prot_cur_address & 0x0000ffff) | (data << 16);
96   enc_ready = false;
97}
98
99void sega_315_5881_crypt_device::set_subkey(UINT16 data)
100{
101   subkey = data;
102   enc_ready = false;
103}
104
105void sega_315_5881_crypt_device::set_key(UINT32 data)
106{
107   key = data;
108   enc_ready = false;
109}
110
111/***************************************************************************
112    DECRYPTION EMULATION
113
114By convention, we label the three known cart protection methods this way (using Deunan Knute's wording):
115M1: DMA read of protected ROM area
116M2: special read of ROM area which supplies decryption key first
117M3: normal read followed by write to cart's decryption buffer (up to 64kB), followed by M2 but from buffer area
118
119Notes below refer to M2 & M3.
120
121The encryption is done by a stream cipher operating in counter mode, which use a 16-bits internal block cipher.
122
123There are 2 "control bits" at the start of the decrypted stream which control the mode of operation: bit #1 set to 1 means
124that the decrypted stream needs to be decompressed after being decrypted. More on this later.
125
126The next 16-bits are part of the header (they don't belong to the plaintext), but his meaning is unclear. It has been
127conjectured that it could stablish when to "reset" the process and start processing a new stream (based on some tests
128on WWFROYAL, in which the decryption's output doesn't seem to be valid for more than some dozens of words), but some
129more testing would be needed for clarifying that.
130
131After those 18 heading bits, we find the proper plaintext. It must be noted that, due to the initial 2 special bits,
132the 16-bits words of the plaintext are shifted 2 bits respect to the word-boundaries of the output stream of the
133internal block-cipher. So, at a given step, the internal block cipher will output 16-bits, 14 of which will go to a
134given plaintext word, and the remaining 2 to the next plaintext word.
135
136The underlying block cipher consists of two 4-round Feistel Networks (FN): the first one takes the counter (16 bits),
137the game-key (>=26 bits) and the sequence-key (16 bits) and output a middle result (16 bits) which will act as another key
138for the second one. The second FN will take the encrypted word (16 bits), the game-key, the sequence-key and the result
139from the first FN and will output the decrypted word (16 bits).
140
141Each round of the Feistel Networks use four substitution sboxes, each having 6 inputs and 2 outputs. The input can be the
142XOR of at most two "sources bits", being source bits the bits from the previous round and the bits from the different keys.
143
144The underlying block cipher has the same structure than the one used by the CPS-2 (Capcom Play System 2) and,
145indeed, some of the used sboxes are exactly the same and appear in the same FN/round in both systems (this is not evident,
146as you need to apply a bitswapping and some XORs to the input & output of the sboxes to get the same values due). However,
147the key scheduling used by this implementation is much weaker than the CPS-2's one. Many s-boxes inputs aren't XORed with any
148key bit.
149
150Due to the small key-length, no sophisticated attacks are needed to recover the keys; a brute-force attack knowing just
151some (encrypted word-decrypted word) pairs suffice. However, due to the weak key scheduling, it should be noted that some
152related keys can produce the same output bytes for some (short) input sequences.
153
154The only difference in the decryption process between M2 and M3 is the initialization of the counter. In M3, the counter is
155always set to 0 at the beginning of the decryption while, in M2, the bits #1-#16 of the ciphertext's address are used
156to initialize the counter.
157
158Note that this implementation considers that the counter initialization for ram decryption is 0 simply because the ram is
159mapped to multiples of 128K.
160
161Due to the nature of the cipher, there are some degrees of freedom when choosing the s-boxes and keys values; by example,
162you could apply a fixed bitswapping and XOR to the keys and the decryption would remain the same as long as you change
163accordingly the s-boxes' definitions. So the order of the bits in the keys is arbitrary, and the s-boxes values have been
164chosen so as to make the key for CAPSNK equal to 0.
165
166It can be observed that a couple of sboxes have incomplete tables (a 255 value indicate an unknown value). The recovered keys
167as of december/2010 show small randomness and big correlations, making possible that some unseen bits could make the
168decryption need those incomplete parts.
169
170****************************************************************************************/
171
172const sega_315_5881_crypt_device::sbox sega_315_5881_crypt_device::fn1_sboxes[4][4] = {
173   {   // 1st round
174      {
175         {
176            0,3,2,2,1,3,1,2,3,2,1,2,1,2,3,1,3,2,2,0,2,1,3,0,0,3,2,3,2,1,2,0,
177            2,3,1,1,2,2,1,1,1,0,2,3,3,0,2,1,1,1,1,1,3,0,3,2,1,0,1,2,0,3,1,3,
178         },
179         {3,4,5,7,-1,-1},
180         {0,4}
181      },
182
183      {
184         {
185            2,2,2,0,3,3,0,1,2,2,3,2,3,0,2,2,1,1,0,3,3,2,0,2,0,1,0,1,2,3,1,1,
186            0,1,3,3,1,3,3,1,2,3,2,0,0,0,2,2,0,3,1,3,0,3,2,2,0,3,0,3,1,1,0,2,
187         },
188         {0,1,2,5,6,7},
189         {1,6}
190      },
191
192      {
193         {
194            0,1,3,0,3,1,1,1,1,2,3,1,3,0,2,3,3,2,0,2,1,1,2,1,1,3,1,0,0,2,0,1,
195            1,3,1,0,0,3,2,3,2,0,3,3,0,0,0,0,1,2,3,3,2,0,3,2,1,0,0,0,2,2,3,3,
196         },
197         {0,2,5,6,7,-1},
198         {2,3}
199      },
200
201      {
202         {
203            3,2,1,2,1,2,3,2,0,3,2,2,3,1,3,3,0,2,3,0,3,3,2,1,1,1,2,0,2,2,0,1,
204            1,3,3,0,0,3,0,3,0,2,1,3,2,1,0,0,0,1,1,2,0,1,0,0,0,1,3,3,2,0,3,3,
205         },
206         {1,2,3,4,6,7},
207         {5,7}
208      },
209   },
210   {   // 2nd round
211      {
212         {
213            3,3,1,2,0,0,2,2,2,1,2,1,3,1,1,3,3,0,0,3,0,3,3,2,1,1,3,2,3,2,1,3,
214            2,3,0,1,3,2,0,1,2,1,3,1,2,2,3,3,3,1,2,2,0,3,1,2,2,1,3,0,3,0,1,3,
215         },
216         {0,1,3,4,5,7},
217         {0,4}
218      },
219
220      {
221         {
222            2,0,1,0,0,3,2,0,3,3,1,2,1,3,0,2,0,2,0,0,0,2,3,1,3,1,1,2,3,0,3,0,
223            3,0,2,0,0,2,2,1,0,2,3,3,1,3,1,0,1,3,3,0,0,1,3,1,0,2,0,3,2,1,0,1,
224         },
225         {0,1,3,4,6,-1},
226         {1,5}
227      },
228
229      {
230         {
231            2,2,2,3,1,1,0,1,0,1,2,2,3,3,0,2,0,3,2,3,3,0,2,1,0,3,1,0,0,2,3,2,
232            3,2,0,3,2,0,1,0,3,3,1,1,2,2,2,0,2,1,3,1,1,1,1,2,2,2,3,0,1,3,0,0,
233         },
234         {1,2,5,6,7,-1},
235         {2,7}
236      },
237
238      {
239         {
240            0,1,3,3,3,1,3,3,1,0,2,0,2,0,0,3,1,2,1,3,1,2,3,2,2,0,1,3,0,3,3,3,
241            0,0,0,2,1,1,2,3,2,2,3,1,1,2,0,2,0,2,1,3,1,1,3,3,1,1,3,0,2,3,0,0,
242         },
243         {2,3,4,5,6,7},
244         {3,6}
245      },
246   },
247   {   // 3rd round
248      {
249         {
250            0,0,1,0,1,0,0,3,2,0,0,3,0,1,0,2,0,3,0,0,2,0,3,2,2,1,3,2,2,1,1,2,
251            0,0,0,3,0,1,1,0,0,2,1,0,3,1,2,2,2,0,3,1,3,0,1,2,2,1,1,1,0,2,3,1,
252         },
253         {1,2,3,4,5,7},
254         {0,5}
255      },
256
257      {
258         {
259            1,2,1,0,3,1,1,2,0,0,2,3,2,3,1,3,2,0,3,2,2,3,1,1,1,1,0,3,2,0,0,1,
260            1,0,0,1,3,1,2,3,0,0,2,3,3,0,1,0,0,2,3,0,1,2,0,1,3,3,3,1,2,0,2,1,
261         },
262         {0,2,4,5,6,7},
263         {1,6}
264      },
265
266      {
267         {
268            0,3,0,2,1,2,0,0,1,1,0,0,3,1,1,0,0,3,0,0,2,3,3,2,3,1,2,0,0,2,3,0,
269            // unused?
270            255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
271         },
272         {0,2,4,6,7,-1},
273         {2,3}
274      },
275
276      {
277         {
278            0,0,1,0,0,1,0,2,3,3,0,3,3,2,3,0,2,2,2,0,3,2,0,3,1,0,0,3,3,0,0,0,
279            2,2,1,0,2,0,3,2,0,0,3,1,3,3,0,0,2,1,1,2,1,0,1,1,0,3,1,2,0,2,0,3,
280         },
281         {0,1,2,3,6,-1},
282         {4,7}
283      },
284   },
285   {   // 4th round
286      {
287         {
288            0,3,3,3,3,3,2,0,0,1,2,0,2,2,2,2,1,1,0,2,2,1,3,2,3,2,0,1,2,3,2,1,
289            3,2,2,3,1,0,1,0,0,2,0,1,2,1,2,3,1,2,1,1,2,2,1,0,1,3,2,3,2,0,3,1,
290         },
291         {0,1,3,4,5,6},
292         {0,5}
293      },
294
295      {
296         {
297            0,3,0,0,2,0,3,1,1,1,2,2,2,1,3,1,2,2,1,3,2,2,3,3,0,3,1,0,3,2,0,1,
298            3,0,2,0,1,0,2,1,3,3,1,2,2,0,2,3,3,2,3,0,1,1,3,3,0,2,1,3,0,2,2,3,
299         },
300         {0,1,2,3,5,7},
301         {1,7}
302      },
303
304      {
305         {
306            0,1,2,3,3,3,3,1,2,0,2,3,2,1,0,1,2,2,1,2,0,3,2,0,1,1,0,1,3,1,3,1,
307            3,1,0,0,1,0,0,0,0,1,2,2,1,1,3,3,1,2,3,3,3,2,3,0,2,2,1,3,3,0,2,0,
308         },
309         {2,3,4,5,6,7},
310         {2,3}
311      },
312
313      {
314         {
315            0,2,1,1,3,2,0,3,1,0,1,0,3,2,1,1,2,2,0,3,1,0,1,2,2,2,3,3,0,0,0,0,
316            1,2,1,0,2,1,2,2,2,3,2,3,0,1,3,0,0,1,3,0,0,1,1,0,1,0,0,0,0,2,0,1,
317         },
318         {0,1,2,4,6,7},
319         {4,6}
320      },
321   },
322};
323
324
325const sega_315_5881_crypt_device::sbox sega_315_5881_crypt_device::fn2_sboxes[4][4] = {
326   {   // 1st round
327      {
328         {
329            3,3,0,1,0,1,0,0,0,3,0,0,1,3,1,2,0,3,3,3,2,1,0,1,1,1,2,2,2,3,2,2,
330            2,1,3,3,1,3,1,1,0,0,1,2,0,2,2,1,1,2,3,1,2,1,3,1,2,2,0,1,3,0,2,2,
331         },
332         {1,3,4,5,6,7},
333         {0,7}
334      },
335
336      {
337         {
338            0,2,3,2,1,1,0,0,2,1,0,3,3,0,0,0,3,2,0,2,1,1,2,1,0,0,3,1,2,2,3,1,
339            3,1,3,0,0,0,1,3,1,0,0,3,2,2,3,1,1,3,0,0,2,1,3,3,1,3,1,2,3,1,2,1,
340         },
341         {0,3,5,6,-1,-1},
342         {1,2}
343      },
344
345      {
346         {
347            0,2,2,1,0,1,2,1,2,0,1,2,3,3,0,1,3,1,1,2,1,2,1,3,3,2,3,3,2,1,0,1,
348            0,1,0,2,0,1,1,3,2,0,3,2,1,1,1,3,2,3,0,2,3,0,2,2,1,3,0,1,1,2,2,2,
349         },
350         {0,2,3,4,7,-1},
351         {3,4}
352      },
353
354      {
355         {
356            2,3,1,3,2,0,1,2,0,0,3,3,3,3,3,1,2,0,2,1,2,3,0,2,0,1,0,3,0,2,1,0,
357            2,3,0,1,3,0,3,2,3,1,2,0,3,1,1,2,0,3,0,0,2,0,2,1,2,2,3,2,1,2,3,1,
358         },
359         {1,2,5,6,-1,-1},
360         {5,6}
361      },
362   },
363   {   // 2nd round
364      {
365         {
366            2,3,1,3,1,0,3,3,3,2,3,3,2,0,0,3,2,3,0,3,1,1,2,3,1,1,2,2,0,1,0,0,
367            2,1,0,1,2,0,1,2,0,3,1,1,2,3,1,2,0,2,0,1,3,0,1,0,2,2,3,0,3,2,3,0,
368         },
369         {0,1,4,5,6,7},
370         {0,7}
371      },
372
373      {
374         {
375            0,2,2,0,2,2,0,3,2,3,2,1,3,2,3,3,1,1,0,0,3,0,2,1,1,3,3,2,3,2,0,1,
376            1,2,3,0,1,0,3,0,3,1,0,2,1,2,0,3,2,3,1,2,2,0,3,2,3,0,0,1,2,3,3,3,
377         },
378         {0,2,3,6,7,-1},
379         {1,5}
380      },
381
382      {
383         {
384            1,2,3,2,0,3,2,3,0,1,1,0,0,2,2,3,2,0,0,3,0,2,3,3,2,2,1,0,2,1,0,3,
385            1,0,2,0,1,1,0,1,0,0,1,0,3,0,3,3,2,2,0,2,1,1,1,0,3,0,1,3,2,3,2,1,
386         },
387         {2,3,4,6,7,-1},
388         {2,3}
389      },
390
391      {
392         {
393            2,3,1,3,1,1,2,3,3,1,1,0,1,0,2,3,2,1,0,0,2,2,0,1,0,2,2,2,0,2,1,0,
394            3,1,2,3,1,3,0,2,1,0,1,0,0,1,2,2,3,2,3,1,3,2,1,1,2,0,2,1,3,3,1,0,
395         },
396         {1,2,3,4,5,6},
397         {4,6}
398      },
399   },
400   {   // 3rd round
401      {
402         {
403            0,3,0,1,0,2,3,3,1,0,1,3,2,2,1,1,3,3,3,0,2,0,2,0,0,0,2,3,1,1,0,0,
404            3,3,0,3,3,0,0,2,1,1,1,0,2,2,2,0,3,0,3,1,2,2,0,3,0,0,3,2,0,3,2,1,
405         },
406         {1,4,5,6,7,-1},
407         {0,5}
408      },
409
410      {
411         {
412            0,3,0,1,3,0,3,1,3,2,2,2,3,0,3,2,2,1,2,2,0,3,2,2,0,0,2,1,1,3,2,3,
413            2,3,3,1,2,0,1,2,2,1,0,0,0,0,2,3,1,2,0,3,1,3,1,2,3,2,1,0,3,0,0,2,
414         },
415         {0,2,3,4,6,7},
416         {1,7}
417      },
418
419      {
420         {
421            2,2,3,2,0,3,2,3,1,1,2,0,2,3,1,3,0,0,0,3,2,0,1,0,1,3,2,3,3,3,1,0,
422            // unused?
423            255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
424         },
425         {1,2,4,7,-1,-1},
426         {2,4}
427      },
428
429      {
430         {
431            0,2,3,1,3,1,1,0,0,1,3,0,2,1,3,3,2,0,2,1,1,2,3,3,0,0,0,2,0,2,3,0,
432            3,3,3,3,2,3,3,2,3,0,1,0,2,3,3,2,0,1,3,1,0,1,2,3,3,0,2,0,3,0,3,3,
433         },
434         {0,1,2,3,5,7},
435         {3,6}
436      },
437   },
438   {   // 4th round
439      {
440         {
441            0,1,1,0,0,1,0,2,3,3,0,1,2,3,0,2,1,0,3,3,2,0,3,0,0,2,1,0,1,0,1,3,
442            0,3,3,1,2,0,3,0,1,3,2,0,3,3,1,3,0,2,3,3,2,1,1,2,2,1,2,1,2,0,1,1,
443         },
444         {0,1,2,4,7,-1},
445         {0,5}
446      },
447
448      {
449         {
450            2,0,0,2,3,0,2,3,3,1,1,1,2,1,1,0,0,2,1,0,0,3,1,0,0,3,3,0,1,0,1,2,
451            0,2,0,2,0,1,2,3,2,1,1,0,3,3,3,3,3,3,1,0,3,0,0,2,0,3,2,0,2,2,0,1,
452         },
453         {0,1,3,5,6,-1},
454         {1,3}
455      },
456
457      {
458         {
459            0,1,1,2,1,3,1,1,0,0,3,1,1,1,2,0,3,2,0,1,1,2,3,3,3,0,3,0,0,2,0,3,
460            3,2,0,0,3,2,3,1,2,3,0,3,2,0,1,2,2,2,0,2,0,1,2,2,3,1,2,2,1,1,1,1,
461         },
462         {0,2,3,4,5,7},
463         {2,7}
464      },
465
466      {
467         {
468            0,1,2,0,3,3,0,3,2,1,3,3,0,3,1,1,3,2,3,2,3,0,0,0,3,0,2,2,3,2,2,3,
469            2,2,3,1,2,3,1,2,0,3,0,2,3,1,0,0,3,2,1,2,1,2,1,3,1,0,2,3,3,1,3,2,
470         },
471         {2,3,4,5,6,7},
472         {4,6}
473      },
474   },
475};
476
477const int sega_315_5881_crypt_device::fn1_game_key_scheduling[38][2] = {
478   {1,29},  {1,71},  {2,4},   {2,54},  {3,8},   {4,56},  {4,73},  {5,11},
479   {6,51},  {7,92},  {8,89},  {9,9},   {9,10},  {9,39},  {9,41},  {9,58},
480   {9,59},  {9,86},  {10,90}, {11,6},  {12,64}, {13,49}, {14,44}, {15,40},
481   {16,69}, {17,15}, {18,23}, {18,43}, {19,82}, {20,81}, {21,32}, {21,61},
482   {22,5},  {23,66}, {24,13}, {24,45}, {25,12}, {25,35}
483};
484
485const int sega_315_5881_crypt_device::fn2_game_key_scheduling[34][2] = {
486   {0,0},   {1,3},   {2,11},  {3,20},  {4,22},  {5,23},  {6,29},  {7,38},
487   {8,39},  {9,47},  {9,55},  {9,86},  {9,87},  {9,90},  {10,50}, {10,53},
488   {11,57}, {12,59}, {13,61}, {13,64}, {14,63}, {15,67}, {16,72}, {17,83},
489   {18,88}, {19,94}, {20,35}, {21,17}, {21,92}, {22,6},  {22,11}, {23,85},
490   {24,16}, {25,25}
491};
492
493const int sega_315_5881_crypt_device::fn1_sequence_key_scheduling[20][2] = {
494   {0,52},  {1,34},  {2,17},  {3,36}, {4,84},  {4,88},  {5,57},  {6,48},
495   {6,68},  {7,76},  {8,83},  {9,30}, {10,22}, {10,41}, {11,38}, {12,55},
496   {13,74}, {14,19}, {14,80}, {15,26}
497};
498
499const int sega_315_5881_crypt_device::fn2_sequence_key_scheduling[16] = {77,34,8,42,36,27,69,66,13,9,79,31,49,7,24,64};
500
501const int sega_315_5881_crypt_device::fn2_middle_result_scheduling[16] = {1,10,44,68,74,78,81,95,2,4,30,40,41,51,53,58};
502
503int sega_315_5881_crypt_device::feistel_function(int input, const struct sbox *sboxes, UINT32 subkeys)
504{
505   int k,m;
506   int aux;
507   int result=0;
508
509   for (m=0; m<4; ++m) { // 4 sboxes
510      for (k=0, aux=0; k<6; ++k)
511         if (sboxes[m].inputs[k]!=-1)
512            aux |= BIT(input, sboxes[m].inputs[k]) << k;
513
514      aux = sboxes[m].table[(aux^subkeys)&0x3f];
515
516      for (k=0; k<2; ++k)
517         result |= BIT(aux,k) << sboxes[m].outputs[k];
518
519      subkeys >>=6;
520   }
521
522   return result;
523}
524
525/**************************
526This implementation is an "educational" version. It must be noted that it can be speed-optimized in a number of ways.
527The most evident one is to factor out the parts of the key-scheduling that must only be done once (like the game-key &
528sequence-key parts) as noted in the comments inlined in the function. More sophisticated speed-ups can be gained by
529noticing that the weak key-scheduling would allow to create some pregenerated look-up tables for doing most of the work
530of the function. Even so, it would still be pretty slow, so caching techniques could be a wiser option here.
531**************************/
532
533UINT16 sega_315_5881_crypt_device::block_decrypt(UINT32 game_key, UINT16 sequence_key, UINT16 counter, UINT16 data)
534{
535   int j;
536   int aux,aux2;
537   int A,B;
538   int middle_result;
539   UINT32 fn1_subkeys[4];
540   UINT32 fn2_subkeys[4];
541
542   /* Game-key scheduling; this could be done just once per game at initialization time */
543   memset(fn1_subkeys,0,sizeof(UINT32)*4);
544   memset(fn2_subkeys,0,sizeof(UINT32)*4);
545
546   for (j=0; j<38; ++j) {
547      if (BIT(game_key, fn1_game_key_scheduling[j][0])!=0) {
548         aux = fn1_game_key_scheduling[j][1]%24;
549         aux2 = fn1_game_key_scheduling[j][1]/24;
550         fn1_subkeys[aux2] ^= (1<<aux);
551      }
552   }
553
554   for (j=0; j<34; ++j) {
555      if (BIT(game_key, fn2_game_key_scheduling[j][0])!=0) {
556         aux = fn2_game_key_scheduling[j][1]%24;
557         aux2 = fn2_game_key_scheduling[j][1]/24;
558         fn2_subkeys[aux2] ^= (1<<aux);
559      }
560   }
561   /********************************************************/
562
563   /* Sequence-key scheduling; this could be done just once per decryption run */
564   for (j=0; j<20; ++j) {
565      if (BIT(sequence_key,fn1_sequence_key_scheduling[j][0])!=0) {
566         aux = fn1_sequence_key_scheduling[j][1]%24;
567         aux2 = fn1_sequence_key_scheduling[j][1]/24;
568         fn1_subkeys[aux2] ^= (1<<aux);
569      }
570   }
571
572   for (j=0; j<16; ++j) {
573      if (BIT(sequence_key,j)!=0) {
574         aux = fn2_sequence_key_scheduling[j]%24;
575         aux2 = fn2_sequence_key_scheduling[j]/24;
576         fn2_subkeys[aux2] ^= (1<<aux);
577      }
578   }
579
580   // subkeys bits 10 & 41
581   fn2_subkeys[0] ^= (BIT(sequence_key,2)<<10);
582   fn2_subkeys[1] ^= (BIT(sequence_key,4)<<17);
583   /**************************************************************/
584
585   // First Feistel Network
586
587   aux = BITSWAP16(counter,5,12,14,13,9,3,6,4,    8,1,15,11,0,7,10,2);
588
589   // 1st round
590   B = aux >> 8;
591   A = (aux & 0xff) ^ feistel_function(B,fn1_sboxes[0],fn1_subkeys[0]);
592
593   // 2nd round
594   B = B ^ feistel_function(A,fn1_sboxes[1],fn1_subkeys[1]);
595
596   // 3rd round
597   A = A ^ feistel_function(B,fn1_sboxes[2],fn1_subkeys[2]);
598
599   // 4th round
600   B = B ^ feistel_function(A,fn1_sboxes[3],fn1_subkeys[3]);
601
602   middle_result = (B<<8)|A;
603
604
605   /* Middle-result-key sheduling */
606   for (j=0; j<16; ++j) {
607      if (BIT(middle_result,j)!=0) {
608         aux = fn2_middle_result_scheduling[j]%24;
609         aux2 = fn2_middle_result_scheduling[j]/24;
610         fn2_subkeys[aux2] ^= (1<<aux);
611      }
612   }
613   /*********************/
614
615   // Second Feistel Network
616
617   aux = BITSWAP16(data,14,3,8,12,13,7,15,4,    6,2,9,5,11,0,1,10);
618
619   // 1st round
620   B = aux >> 8;
621   A = (aux & 0xff) ^ feistel_function(B,fn2_sboxes[0],fn2_subkeys[0]);
622
623   // 2nd round
624   B = B ^ feistel_function(A,fn2_sboxes[1],fn2_subkeys[1]);
625
626   // 3rd round
627   A = A ^ feistel_function(B,fn2_sboxes[2],fn2_subkeys[2]);
628
629   // 4th round
630   B = B ^ feistel_function(A,fn2_sboxes[3],fn2_subkeys[3]);
631
632   aux = (B<<8)|A;
633
634   aux = BITSWAP16(aux,15,7,6,14,13,12,5,4,    3,2,11,10,9,1,0,8);
635
636   return aux;
637}
638
639UINT16 sega_315_5881_crypt_device::get_decrypted_16()
640{
641   UINT16 enc;
642
643   enc = m_read(prot_cur_address);
644
645   UINT16 dec = block_decrypt(key, subkey, prot_cur_address, enc);
646   UINT16 res = (dec & 3) | (dec_hist & 0xfffc);
647   dec_hist = dec;
648
649   prot_cur_address ++;
650   return res;
651}
652
653void sega_315_5881_crypt_device::enc_start()
654{
655   buffer_pos = BUFFER_SIZE;
656   dec_header = get_decrypted_16() << 16;
657   dec_header |= get_decrypted_16();
658
659   if(dec_header & FLAG_COMPRESSED) {
660      line_buffer_size = dec_header & FLAG_LINE_SIZE_512 ? 512 : 256;
661      line_buffer_pos = line_buffer_size;
662      buffer_bit = 7;
663   }
664   enc_ready = true;
665}
666
667void sega_315_5881_crypt_device::enc_fill()
668{
669   assert(buffer_pos == BUFFER_SIZE);
670   for(int i = 0; i != BUFFER_SIZE; i+=2) {
671      UINT16 val = get_decrypted_16();
672      buffer[i] = val;
673      buffer[i+1] = val >> 8;
674   }
675   buffer_pos = 0;
676}
677
678/* node format
6790xxxxxxx - next node index
6801a0bbccc - end node
681           a - 0 = repeat
682               1 = fetch
683           b - if a = 1
684               00 - fetch  0
685               01 - fetch  1
686               11 - fetch -1
687               if a = 0
688               000
689           c - repeat/fetch counter
690               count = ccc + 1
69111111111 - empty node
692*/
693const UINT8 sega_315_5881_crypt_device::trees[9][2][32] = {
694   {
695      {0x01,0x10,0x0f,0x05,0xc4,0x13,0x87,0x0a,0xcc,0x81,0xce,0x0c,0x86,0x0e,0x84,0xc2,
696         0x11,0xc1,0xc3,0xcf,0x15,0xc8,0xcd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
697      {0xc7,0x02,0x03,0x04,0x80,0x06,0x07,0x08,0x09,0xc9,0x0b,0x0d,0x82,0x83,0x85,0xc0,
698         0x12,0xc6,0xc5,0x14,0x16,0xca,0xcb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
699   },
700   {
701      {0x02,0x80,0x05,0x04,0x81,0x10,0x15,0x82,0x09,0x83,0x0b,0x0c,0x0d,0xdc,0x0f,0xde,
702         0x1c,0xcf,0xc5,0xdd,0x86,0x16,0x87,0x18,0x19,0x1a,0xda,0xca,0xc9,0x1e,0xce,0xff,},
703      {0x01,0x17,0x03,0x0a,0x08,0x06,0x07,0xc2,0xd9,0xc4,0xd8,0xc8,0x0e,0x84,0xcb,0x85,
704         0x11,0x12,0x13,0x14,0xcd,0x1b,0xdb,0xc7,0xc0,0xc1,0x1d,0xdf,0xc3,0xc6,0xcc,0xff,},
705   },
706   {
707      {0xc6,0x80,0x03,0x0b,0x05,0x07,0x82,0x08,0x15,0xdc,0xdd,0x0c,0xd9,0xc2,0x14,0x10,
708         0x85,0x86,0x18,0x16,0xc5,0xc4,0xc8,0xc9,0xc0,0xcc,0xff,0xff,0xff,0xff,0xff,0xff,},
709      {0x01,0x02,0x12,0x04,0x81,0x06,0x83,0xc3,0x09,0x0a,0x84,0x11,0x0d,0x0e,0x0f,0x19,
710         0xca,0xc1,0x13,0xd8,0xda,0xdb,0x17,0xde,0xcd,0xcb,0xff,0xff,0xff,0xff,0xff,0xff,},
711   },
712   {
713      {0x01,0x80,0x0d,0x04,0x05,0x15,0x83,0x08,0xd9,0x10,0x0b,0x0c,0x84,0x0e,0xc0,0x14,
714         0x12,0xcb,0x13,0xca,0xc8,0xc2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
715      {0xc5,0x02,0x03,0x07,0x81,0x06,0x82,0xcc,0x09,0x0a,0xc9,0x11,0xc4,0x0f,0x85,0xd8,
716         0xda,0xdb,0xc3,0xdc,0xdd,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
717   },
718   {
719      {0x01,0x80,0x06,0x0c,0x05,0x81,0xd8,0x84,0x09,0xdc,0x0b,0x0f,0x0d,0x0e,0x10,0xdb,
720         0x11,0xca,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
721      {0xc4,0x02,0x03,0x04,0xcb,0x0a,0x07,0x08,0xd9,0x82,0xc8,0x83,0xc0,0xc1,0xda,0xc2,
722         0xc9,0xc3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
723   },
724   {
725      {0x01,0x02,0x06,0x0a,0x83,0x0b,0x07,0x08,0x09,0x82,0xd8,0x0c,0xd9,0xda,0xff,0xff,
726         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
727      {0xc3,0x80,0x03,0x04,0x05,0x81,0xca,0xc8,0xdb,0xc9,0xc0,0xc1,0x0d,0xc2,0xff,0xff,
728         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
729   },
730   {
731      {0x01,0x02,0x03,0x04,0x81,0x07,0x08,0xd8,0xda,0xd9,0xff,0xff,0xff,0xff,0xff,0xff,
732         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
733      {0xc2,0x80,0x05,0xc9,0xc8,0x06,0x82,0xc0,0x09,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,
734         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
735   },
736   {
737      {0x01,0x80,0x04,0xc8,0xc0,0xd9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
738         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
739      {0xc1,0x02,0x03,0x81,0x05,0xd8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
740         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
741   },
742   {
743      {0x01,0xd8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
744         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
745      {0xc0,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
746         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
747   },
748};
749
750int sega_315_5881_crypt_device::get_compressed_bit()
751{
752   if(buffer_pos == BUFFER_SIZE)
753      enc_fill();
754   int res = (buffer[buffer_pos^1] >> buffer_bit) & 1;
755   buffer_bit--;
756   if(buffer_bit == -1) {
757      buffer_bit = 7;
758      buffer_pos++;
759   }
760   return res;
761}
762
763void sega_315_5881_crypt_device::line_fill()
764{
765   assert(line_buffer_pos == line_buffer_size);
766   UINT8 *lp = line_buffer;
767   UINT8 *lc = line_buffer_prev;
768   line_buffer = lc;
769   line_buffer_prev = lp;
770   line_buffer_pos = 0;
771
772   UINT32 line_buffer_mask = line_buffer_size-1;
773
774   for(int i=0; i != line_buffer_size;) {
775      // vlc 0: start of line
776      // vlc 1: interior of line
777      // vlc 2-9: 7-1 bytes from end of line
778
779      int slot = i ? i < line_buffer_size - 7 ? 1 : (i & 7) + 1 : 0;
780
781      UINT32 tmp = 0;
782      while (!(tmp&0x80))
783         if(get_compressed_bit())
784            tmp = trees[slot][1][tmp];
785         else
786            tmp = trees[slot][0][tmp];
787      if(tmp != 0xff) {
788         int count = (tmp & 7) + 1;
789
790         if(tmp&0x40) {
791            // Copy from previous line
792
793            static int offsets[4] = {0, 1, 0, -1};
794            int offset = offsets[(tmp & 0x18) >> 3];
795            for(int j=0; j != count; j++) {
796               lc[i^1] = lp[((i+offset) & line_buffer_mask)^1];
797               i++;
798            }
799
800         } else {
801            // Get a byte in the stream and write n times
802            UINT8 byte;
803            byte =         get_compressed_bit()  << 1;
804            byte = (byte | get_compressed_bit()) << 1;
805            byte = (byte | get_compressed_bit()) << 1;
806            byte = (byte | get_compressed_bit()) << 1;
807            byte = (byte | get_compressed_bit()) << 1;
808            byte = (byte | get_compressed_bit()) << 1;
809            byte = (byte | get_compressed_bit()) << 1;
810            byte =  byte | get_compressed_bit();
811            for(int j=0; j != count; j++)
812               lc[(i++)^1] = byte;
813
814         }
815      }
816   }
817}
No newline at end of file
trunk/src/mame/machine/315-5881_crypt.h
r241777r241778
1
2#pragma once
3
4#ifndef __SEGA315_5881_CRYPT__
5#define __SEGA315_5881_CRYPT__
6
7typedef device_delegate<UINT16 (UINT32)> sega_m2_read_delegate;
8
9extern const device_type SEGA315_5881_CRYPT;
10
11#define MCFG_SET_READ_CALLBACK( _class, _method) \
12   sega_315_5881_crypt_device::set_read_cb(*device, sega_m2_read_delegate(&_class::_method, #_class "::" #_method, NULL, (_class *)0));
13
14
15class sega_315_5881_crypt_device :  public device_t
16{
17public:
18   // construction/destruction
19   sega_315_5881_crypt_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
20   
21
22   UINT16 do_decrypt(UINT8 *&base);
23   void set_addr_low(UINT16 data);
24   void set_addr_high(UINT16 data);
25   void set_subkey(UINT16 data);
26   void set_key(UINT32 data);
27
28   sega_m2_read_delegate m_read;
29
30   static void set_read_cb(device_t &device,sega_m2_read_delegate readcb)
31   {
32      sega_315_5881_crypt_device &dev = downcast<sega_315_5881_crypt_device &>(device);
33      dev.m_read = readcb;
34   }
35
36protected:
37   virtual void device_start();
38   virtual void device_reset();
39
40private:
41
42   enum {
43      BUFFER_SIZE = 32768, LINE_SIZE = 512,
44      FLAG_COMPRESSED = 0x10000, FLAG_LINE_SIZE_512 = 0x20000
45   };
46
47   UINT32 key;
48
49   UINT8 *buffer, *line_buffer, *line_buffer_prev;
50   UINT32 prot_cur_address;
51   UINT16 subkey, dec_hist;
52   UINT32 dec_header;
53
54   bool enc_ready;
55
56   int buffer_pos, line_buffer_pos, line_buffer_size, buffer_bit;
57
58   struct sbox {
59      UINT8 table[64];
60      int inputs[6];      // positions of the inputs bits, -1 means no input except from key
61      int outputs[2];     // positions of the output bits
62   };
63
64   static const sbox fn1_sboxes[4][4];
65   static const sbox fn2_sboxes[4][4];
66
67   static const int fn1_game_key_scheduling[38][2];
68   static const int fn2_game_key_scheduling[34][2];
69   static const int fn1_sequence_key_scheduling[20][2];
70   static const int fn2_sequence_key_scheduling[16];
71   static const int fn2_middle_result_scheduling[16];
72
73   static const UINT8 trees[9][2][32];
74
75   int feistel_function(int input, const struct sbox *sboxes, UINT32 subkeys);
76   UINT16 block_decrypt(UINT32 game_key, UINT16 sequence_key, UINT16 counter, UINT16 data);
77
78   UINT16 get_decrypted_16();
79   int get_compressed_bit();
80
81   void enc_start();
82   void enc_fill();
83   void line_fill();
84
85};
86
87#endif
trunk/src/mame/machine/asic65.c
r241777r241778
150150
151151void asic65_device::reset_line(int state)
152152{
153   address_space &space = subdevice("^maincpu")->memory().space(AS_PROGRAM);
153   address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM);
154154
155155   /* rom-based means reset and clear states */
156156   if (m_asic65_type == ASIC65_ROMBASED)
trunk/src/mame/machine/atarigen.c
r241777r241778
1616#include "sound/okim6295.h"
1717#include "sound/pokey.h"
1818#include "video/atarimo.h"
19#include "includes/slapstic.h"
1920#include "atarigen.h"
2021
2122
r241777r241778
974975      m_gfxdecode(*this, "gfxdecode"),
975976      m_screen(*this, "screen"),
976977      m_palette(*this, "palette"),
977      m_generic_paletteram_16(*this, "paletteram"),
978      m_slapstic_device(*this, ":slapstic")
978      m_generic_paletteram_16(*this, "paletteram")
979979{
980980}
981981
r241777r241778
10221022   // reset the slapstic
10231023   if (m_slapstic_num != 0)
10241024   {
1025      if (!m_slapstic_device)
1026         fatalerror("Slapstic device is missing?\n");
1027
1028      m_slapstic_device->slapstic_reset();
1029      slapstic_update_bank(m_slapstic_device->slapstic_bank());
1025      slapstic_reset();
1026      slapstic_update_bank(slapstic_bank());
10301027   }
10311028}
10321029
r241777r241778
11951192
11961193void atarigen_state::device_post_load()
11971194{
1198   if (!m_slapstic_device)
1199      fatalerror("Slapstic device is missing?\n");
1200
1201   slapstic_update_bank(m_slapstic_device->slapstic_bank());
1195   slapstic_update_bank(slapstic_bank());
12021196}
12031197
12041198
r241777r241778
12381232   // if we have a chip, install it
12391233   if (chipnum != 0)
12401234   {
1241      if (!m_slapstic_device)
1242         fatalerror("Slapstic device is missing\n");
1243
12441235      // initialize the slapstic
1245      m_slapstic_device->slapstic_init(machine(), chipnum);
1236      slapstic_init(machine(), chipnum);
12461237
12471238      // install the memory handlers
12481239      address_space &program = device.space(AS_PROGRAM);
r241777r241778
12711262
12721263WRITE16_MEMBER(atarigen_state::slapstic_w)
12731264{
1274   if (!m_slapstic_device)
1275      fatalerror("Slapstic device is missing?\n");
1276
1277   slapstic_update_bank(m_slapstic_device->slapstic_tweak(space, offset));
1265   slapstic_update_bank(slapstic_tweak(space, offset));
12781266}
12791267
12801268
r241777r241778
12851273
12861274READ16_MEMBER(atarigen_state::slapstic_r)
12871275{
1288   if (!m_slapstic_device)
1289      fatalerror("Slapstic device is missing?\n");
1290
12911276   // fetch the result from the current bank first
12921277   int result = m_slapstic[offset & 0xfff];
12931278
12941279   // then determine the new one
1295   slapstic_update_bank(m_slapstic_device->slapstic_tweak(space, offset));
1280   slapstic_update_bank(slapstic_tweak(space, offset));
12961281   return result;
12971282}
12981283
trunk/src/mame/machine/atarigen.h
r241777r241778
1717#include "video/atarimo.h"
1818#include "cpu/m6502/m6502.h"
1919#include "sound/okim6295.h"
20#include "includes/slapstic.h"
2120
2221
2322/***************************************************************************
r241777r241778
432431   optional_device<screen_device> m_screen;
433432   optional_device<palette_device> m_palette;
434433   optional_shared_ptr<UINT16> m_generic_paletteram_16;
435   optional_device<atari_slapstic_device> m_slapstic_device;
436434};
437435
438436
trunk/src/mame/machine/harddriv.c
r241777r241778
3636 *
3737 *************************************/
3838
39void harddriv_state::device_start()
39MACHINE_START_MEMBER(harddriv_state,harddriv)
4040{
41   //atarigen_state::machine_start();
41   atarigen_state::machine_start();
4242
4343   /* predetermine memory regions */
4444   m_sim_memory = (UINT16 *)memregion("user1")->base();
4545   m_sim_memory_size = memregion("user1")->bytes() / 2;
4646   m_adsp_pgm_memory_word = (UINT16 *)(reinterpret_cast<UINT8 *>(m_adsp_pgm_memory.target()) + 1);
47
48   init_video();
49
5047}
5148
5249
53void  harddriv_state::device_reset()
50MACHINE_RESET_MEMBER(harddriv_state,harddriv)
5451{
5552   /* generic reset */
56   //atarigen_state::machine_reset();
57   m_slapstic_device->slapstic_reset();
53   atarigen_state::machine_reset();
54   slapstic_reset();
5855
5956   /* halt several of the DSPs to start */
6057   if (m_adsp != NULL) m_adsp->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
r241777r241778
199196 *
200197 *************************************/
201198
202READ16_MEMBER( harddriv_state::hd68k_a80000_r )
203{
204   return ioport("a80000")->read_safe(0xffff);
205}
206
207199READ16_MEMBER( harddriv_state::hd68k_port0_r )
208200{
209201   /* port is as follows:
r241777r241778
221213           .....
222214       0x8000 = SW1 #1
223215   */
224   screen_device &scr = m_gsp->screen();
225   
226   int temp = (ioport("SW1")->read_safe(0xff) << 8) | ioport("IN0")->read_safe(0xff);
227   if (get_hblank(scr)) temp ^= 0x0002;
216   int temp = (ioport("SW1")->read() << 8) | ioport("IN0")->read();
217   if (get_hblank(*m_screen)) temp ^= 0x0002;
228218   temp ^= 0x0018;     /* both EOCs always high for now */
229219   return temp;
230220}
r241777r241778
232222
233223READ16_MEMBER( harddriv_state::hdc68k_port1_r )
234224{
235   UINT16 result = ioport("a80000")->read_safe(0xffff);
225   UINT16 result = ioport("a80000")->read();
236226   UINT16 diff = result ^ m_hdc68k_last_port1;
237227
238228   /* if a new shifter position is selected, use it */
r241777r241778
260250
261251READ16_MEMBER( harddriv_state::hda68k_port1_r )
262252{
263   UINT16 result = ioport("a80000")->read_safe(0xffff);
253   UINT16 result = ioport("a80000")->read();
264254
265255   /* merge in the wheel edge latch bit */
266256   if (m_hdc68k_wheel_edge)
r241777r241778
273263READ16_MEMBER( harddriv_state::hdc68k_wheel_r )
274264{
275265   /* grab the new wheel value and upconvert to 12 bits */
276   UINT16 new_wheel = ioport("12BADC0")->read_safe(0xffff) << 4;
266   UINT16 new_wheel = ioport("12BADC0")->read() << 4;
277267
278268   /* hack to display the wheel position */
279269   if (space.machine().input().code_pressed(KEYCODE_LSHIFT))
r241777r241778
327317   if (m_adc_control & 0x08)
328318   {
329319      m_adc8_select = m_adc_control & 0x07;
330      m_adc8_data = ioport(adc8names[m_adc8_select])->read_safe(0xffff);
320      m_adc8_data = ioport(adc8names[m_adc8_select])->read();
331321   }
332322
333323   /* handle a write to the 12-bit ADC address select */
334324   if (m_adc_control & 0x40)
335325   {
336326      m_adc12_select = (m_adc_control >> 4) & 0x03;
337      m_adc12_data = ioport(adc12names[m_adc12_select])->read_safe(0xffff) << 4;
327      m_adc12_data = space.machine().root_device().ioport(adc12names[m_adc12_select])->read() << 4;
338328   }
339329
340330   /* bit 7 selects which byte of the 12 bit data to read */
r241777r241778
495485      }
496486   }
497487
498   screen_device &scr = m_gsp->screen();
499
500488   /* detect changes to HEBLNK and HSBLNK and force an update before they change */
501489   if ((offset == REG_HEBLNK || offset == REG_HSBLNK) && data != m_gsp->io_register_r(space, offset, 0xffff))
502      scr.update_partial(scr.vpos() - 1);
490      m_screen->update_partial(m_screen->vpos() - 1);
503491
504492   m_gsp->io_register_w(space, offset, data, mem_mask);
505493}
r241777r241778
15141502   switch (offset & 7)
15151503   {
15161504      case 0: /* DSPRESTN */
1517         if (m_dsp32) m_dsp32->set_input_line(INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE);
1505         m_dsp32->set_input_line(INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE);
15181506         break;
15191507
15201508      case 1: /* DSPZN */
1521         if (m_dsp32) m_dsp32->set_input_line(INPUT_LINE_HALT, val ? CLEAR_LINE : ASSERT_LINE);
1509         m_dsp32->set_input_line(INPUT_LINE_HALT, val ? CLEAR_LINE : ASSERT_LINE);
15221510         break;
15231511
15241512      case 2: /* ZW1 */
r241777r241778
15821570WRITE16_MEMBER( harddriv_state::hd68k_dsk_dsp32_w )
15831571{
15841572   m_dsk_pio_access = TRUE;
1585   if (m_dsp32) m_dsp32->pio_w(offset, data);
1573   m_dsp32->pio_w(offset, data);
15861574   m_dsk_pio_access = FALSE;
15871575}
15881576
r241777r241778
15911579{
15921580   UINT16 result;
15931581   m_dsk_pio_access = TRUE;
1594   if (m_dsp32) result = m_dsp32->pio_r(offset);
1595   else result = 0x00;
1596
1582   result = m_dsp32->pio_r(offset);
15971583   m_dsk_pio_access = FALSE;
15981584   return result;
15991585}
r241777r241778
16851671
16861672WRITE16_MEMBER( harddriv_state::rd68k_slapstic_w )
16871673{
1688   m_slapstic_device->slapstic_tweak(space, offset & 0x3fff);
1674   slapstic_tweak(space, offset & 0x3fff);
16891675}
16901676
16911677
16921678READ16_MEMBER( harddriv_state::rd68k_slapstic_r )
16931679{
1694   int bank = m_slapstic_device->slapstic_tweak(space, offset & 0x3fff) * 0x4000;
1680   int bank = slapstic_tweak(space, offset & 0x3fff) * 0x4000;
16951681   return m_m68k_slapstic_base[bank + (offset & 0x3fff)];
16961682}
16971683
trunk/src/mame/machine/n64.c
r241777r241778
267267      pif_ram[0x27] = 0x3f;
268268      cic_type=6;
269269   }
270   else
271   {
272      //printf("Unknown BootCode Checksum %08X%08X\n", (UINT32)(boot_checksum>>32),(UINT32)(boot_checksum));
273   }
270274}
271275
272276// Memory Interface (MI)
r241777r241778
308312         break;
309313   }
310314
315   //printf("mi_reg_r %08x = %08x\n", offset * 4, ret); fflush(stdout);
311316   return ret;
312317}
313318
314319WRITE32_MEMBER( n64_periphs::mi_reg_w )
315320{
321   //printf("mi_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask); fflush(stdout);
316322   switch (offset)
317323   {
318324      case 0x00/4:        // MI_INIT_MODE_REG
r241777r241778
403409{
404410   if (mi_intr_mask & mi_interrupt)
405411   {
412      //printf("Asserting IRQ, %02x : %02x\n", mi_intr_mask, mi_interrupt); fflush(stdout);
406413      machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
407414   }
408415   else
409416   {
417      //printf("Deasserting IRQ, %02x : %02x\n", mi_intr_mask, mi_interrupt); fflush(stdout);
410418      machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
411419   }
412420}
r241777r241778
458466      case 0x0014/4:
459467         for(i = 0x20; i < (0x20 + data); i++)
460468         {
469            //printf( "%c", is64_buffer[i] );
461470            if(is64_buffer[i] == 0x0a)
462471            {
463               printf( "%c", 0x0d );
472               //printf( "%c", 0x0d );
464473            }
465474            is64_buffer[i] = 0;
466475         }
r241777r241778
502511
503512READ32_MEMBER( n64_periphs::rdram_reg_r )
504513{
514   //printf("rdram_reg_r %08x = %08x\n", offset * 4, rdram_regs[offset]); fflush(stdout);
505515   if(offset > 0x24/4)
506516   {
507517      logerror("rdram_reg_r: %08X, %08X at %08X\n", offset, mem_mask, maincpu->safe_pc());
r241777r241778
512522
513523WRITE32_MEMBER( n64_periphs::rdram_reg_w )
514524{
525   //printf("rdram_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask); fflush(stdout);
515526   if(offset > 0x24/4)
516527   {
517528      logerror("rdram_reg_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, maincpu->safe_pc());
r241777r241778
531542      length = (length + 7) & ~7;
532543   }
533544
545   //printf("Length %08x Skip %08x Count %08x\n", length, sp_dma_skip, sp_dma_count); fflush(stdout);
534546   if (sp_mem_addr & 0x3)
535547   {
536548      sp_mem_addr = sp_mem_addr & ~3;
r241777r241778
542554
543555   if ((sp_mem_addr & 0xfff) + (length) > 0x1000)
544556   {
557      //printf("sp_dma: dma out of memory area: %08X, %08X, %08X\n", sp_mem_addr, sp_dram_addr, length);
558      //fatalerror("sp_dma: dma out of memory area: %08X, %08X\n", sp_mem_addr, length);
545559      length = 0x1000 - (sp_mem_addr & 0xfff);
546560   }
547561
r241777r241778
588602
589603WRITE32_MEMBER(n64_periphs::sp_set_status)
590604{
605   //printf("sp_set_status: %08x\n", data);
591606   if (data & 0x1)
592607   {
593608      rspcpu->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
r241777r241778
623638         break;
624639
625640      case 0x10/4:        // SP_STATUS_REG
641         //machine().scheduler().synchronize();
642         //machine().scheduler().boost_interleave(attotime::from_msec(1), attotime::from_msec(m));
626643         ret = rspcpu->state().state_int(RSP_SR);
627644         break;
628645
r241777r241778
635652         break;
636653
637654      case 0x1c/4:        // SP_SEMAPHORE_REG
655         //machine().scheduler().boost_interleave(attotime::from_usec(1), attotime::from_usec(1));
638656         machine().device("maincpu")->execute().yield();
639657         if( sp_semaphore )
640658         {
r241777r241778
642660         }
643661         else
644662         {
663            //printf("Semaphore is now acquired, returning 0\n");
645664            sp_semaphore = 1;
646665            ret = 0;
647666         }
r241777r241778
699718         break;
700719   }
701720
721   //printf("%08x sp_reg_r %08x = %08x\n", (UINT32)maincpu->state().state_int(MIPS3_PC), offset * 4, ret); fflush(stdout);
702722   return ret;
703723}
704724
705725
706726WRITE32_MEMBER(n64_periphs::sp_reg_w )
707727{
728   //printf("%08x sp_reg_w %08x %08x %08x\n", (UINT32)maincpu->state().state_int(MIPS3_PC), offset * 4, data, mem_mask); fflush(stdout);
729
708730   if ((offset & 0x10000) == 0)
709731   {
710732      switch (offset & 0xffff)
r241777r241778
736758            UINT32 oldstatus = rspcpu->state().state_int(RSP_SR);
737759            UINT32 newstatus = oldstatus;
738760
761            // printf( "RSP_STATUS_REG Write; %08x\n", data );
739762            if (data & 0x00000001)      // clear halt
740763            {
741764               rspcpu->execute().set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
742765               newstatus &= ~RSP_STATUS_HALT;
743               machine().scheduler().abort_timeslice();
744               machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
766               //printf("***SP HALT CLR***\n"); fflush(stdout);
745767            }
746768            if (data & 0x00000002)      // set halt
747769            {
748770               rspcpu->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
749771               newstatus |= RSP_STATUS_HALT;
772               //printf("***SP HALT SET***\n"); fflush(stdout);
750773            }
751774            if (data & 0x00000004)
752775            {
753776               newstatus &= ~RSP_STATUS_BROKE;
777               //printf("***SP BROKE CLR***\n"); fflush(stdout);
754778            }
755779            if (data & 0x00000008)      // clear interrupt
756780            {
781               //printf("***SP INT CLR***\n"); fflush(stdout);
757782               clear_rcp_interrupt(SP_INTERRUPT);
758783            }
759784            if (data & 0x00000010)      // set interrupt
760785            {
786               //printf("***SP INT SET***\n"); fflush(stdout);
761787               signal_rcp_interrupt(SP_INTERRUPT);
762788            }
763789            if (data & 0x00000020)
764790            {
765791               newstatus &= ~RSP_STATUS_SSTEP;
792               //printf("***SP SSTEP CLR***\n"); fflush(stdout);
766793            }
767794            if (data & 0x00000040)
768795            {
769796               newstatus |= RSP_STATUS_SSTEP;  // set single step
797               //printf("***SP SSTEP SET***\n"); fflush(stdout);
770798               if(!(oldstatus & (RSP_STATUS_BROKE | RSP_STATUS_HALT)))
771799               {
772800                  rspcpu->state().set_state_int(RSP_STEPCNT, 1 );
r241777r241778
776804            if (data & 0x00000080)
777805            {
778806               newstatus &= ~RSP_STATUS_INTR_BREAK;    // clear interrupt on break
807               //printf("***SP INTRBRK CLR***\n"); fflush(stdout);
779808            }
780809            if (data & 0x00000100)
781810            {
782811               newstatus |= RSP_STATUS_INTR_BREAK;     // set interrupt on break
812               //printf("***SP INTRBRK SET***\n"); fflush(stdout);
783813            }
784814            if (data & 0x00000200)
785815            {
786816               newstatus &= ~RSP_STATUS_SIGNAL0;       // clear signal 0
817               //printf("***SP YIELD CLR***\n"); fflush(stdout);
787818            }
788819            if (data & 0x00000400)
789820            {
790821               newstatus |= RSP_STATUS_SIGNAL0;        // set signal 0
822               //printf("***SP YIELD SET***\n"); fflush(stdout);
791823            }
792824            if (data & 0x00000800)
793825            {
794826               newstatus &= ~RSP_STATUS_SIGNAL1;       // clear signal 1
827               //printf("***SP YIELDED CLR***\n"); fflush(stdout);
795828            }
796829            if (data & 0x00001000)
797830            {
798831               newstatus |= RSP_STATUS_SIGNAL1;        // set signal 1
832               //printf("***SP YIELDED SET***\n"); fflush(stdout);
799833            }
800834            if (data & 0x00002000)
801835            {
802836               newstatus &= ~RSP_STATUS_SIGNAL2 ;      // clear signal 2
837               //printf("***SP TASKDONE CLR***\n"); fflush(stdout);
803838            }
804839            if (data & 0x00004000)
805840            {
806841               newstatus |= RSP_STATUS_SIGNAL2;        // set signal 2
842               //printf("***SP TASKDONE SET***\n"); fflush(stdout);
807843            }
808844            if (data & 0x00008000)
809845            {
810846               newstatus &= ~RSP_STATUS_SIGNAL3;       // clear signal 3
847               //printf("***SP SIG3 CLR***\n"); fflush(stdout);
811848            }
812849            if (data & 0x00010000)
813850            {
814851               newstatus |= RSP_STATUS_SIGNAL3;        // set signal 3
852               //printf("***SP SIG3 SET***\n"); fflush(stdout);
815853            }
816854            if (data & 0x00020000)
817855            {
818856               newstatus &= ~RSP_STATUS_SIGNAL4;       // clear signal 4
857               //printf("***SP SIG4 CLR***\n"); fflush(stdout);
819858            }
820859            if (data & 0x00040000)
821860            {
822861               newstatus |= RSP_STATUS_SIGNAL4;        // set signal 4
862               //printf("***SP SIG4 SET***\n"); fflush(stdout);
823863            }
824864            if (data & 0x00080000)
825865            {
826866               newstatus &= ~RSP_STATUS_SIGNAL5;       // clear signal 5
867               //printf("***SP SIG5 CLR***\n"); fflush(stdout);
827868            }
828869            if (data & 0x00100000)
829870            {
830871               newstatus |= RSP_STATUS_SIGNAL5;        // set signal 5
872               //printf("***SP SIG5 SET***\n"); fflush(stdout);
831873            }
832874            if (data & 0x00200000)
833875            {
834876               newstatus &= ~RSP_STATUS_SIGNAL6;       // clear signal 6
877               //printf("***SP SIG6 CLR***\n"); fflush(stdout);
835878            }
836879            if (data & 0x00400000)
837880            {
838881               newstatus |= RSP_STATUS_SIGNAL6;        // set signal 6
882               //printf("***SP SIG6 SET***\n"); fflush(stdout);
839883            }
840884            if (data & 0x00800000)
841885            {
842886               newstatus &= ~RSP_STATUS_SIGNAL7;       // clear signal 7
887               //printf("***SP SIG7 CLR***\n"); fflush(stdout);
843888            }
844889            if (data & 0x01000000)
845890            {
846891               newstatus |= RSP_STATUS_SIGNAL7;        // set signal 7
892               //printf("***SP SIG7 SET***\n"); fflush(stdout);
847893            }
848894            rspcpu->state().set_state_int(RSP_SR, newstatus);
849895            break;
850896         }
851897
852898         case 0x1c/4:        // SP_SEMAPHORE_REG
899            //machine().scheduler().boost_interleave(attotime::from_usec(1), attotime::from_usec(1));
900            //printf("Semaphore is being released\n");
853901            if(data == 0)
854902            {
855903               sp_semaphore = 0;
r241777r241778
928976         break;
929977   }
930978
979   //printf("%08x dp_reg_r %08x = %08x\n", (UINT32)space.machine().device("rsp")->state().state_int(RSP_PC), offset, ret); fflush(stdout);
931980   return ret;
932981}
933982
r241777r241778
935984{
936985   n64_state *state = space.machine().driver_data<n64_state>();
937986
987   //printf("%08x dp_reg_w %08x %08x %08x\n", (UINT32)space.machine().device("rsp")->state().state_int(RSP_PC), offset, data, mem_mask); fflush(stdout);
938988   switch (offset)
939989   {
940990      case 0x00/4:        // DP_START_REG
r241777r241778
943993         break;
944994
945995      case 0x04/4:        // DP_END_REG
996         //printf("dp_end_reg %08x\n", data);
946997         state->m_rdp->SetEndReg(data);
947998         g_profiler.start(PROFILER_USER1);
948999         state->m_rdp->ProcessList();
r241777r241778
9911042   int y_end = (vi_vstart & 0x000003ff) / 2;
9921043   int width = ((vi_xscale & 0x00000fff) * (x_end - x_start)) / 0x400;
9931044   int height = ((vi_yscale & 0x00000fff) * (y_end - y_start)) / 0x400;
994
1045   //printf("%04x | %02x | ", vi_xscale >> 16, vi_burst & 0x000000ff);
9951046   rectangle visarea = m_screen->visible_area();
9961047   attoseconds_t period = m_screen->frame_period().attoseconds;
9971048
r241777r241778
10191070
10201071   visarea.max_x = width - 1;
10211072   visarea.max_y = height - 1;
1073   //printf("Reconfig %d, %d (%d - %d), %08x, %08x, %08x, %08x, %08x\n", width, height, x_start, x_end, vi_width, vi_xscale, vi_hsync, vi_hstart, vi_burst);
10221074   m_screen->configure(width, 525, visarea, period);
10231075}
10241076
r241777r241778
10881140         break;
10891141   }
10901142
1143   //printf("vi_reg_r %08x = %08x\n", offset * 4, ret);
10911144   return ret;
10921145}
10931146
10941147WRITE32_MEMBER( n64_periphs::vi_reg_w )
10951148{
1149   //printf("vi_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask);
10961150   n64_state *state = machine().driver_data<n64_state>();
10971151
10981152   switch (offset)
r241777r241778
13251379         break;
13261380   }
13271381
1382   //printf("ai_reg_r %08x = %08x\n", offset * 4, ret);
13281383   return ret;
13291384}
13301385
13311386WRITE32_MEMBER( n64_periphs::ai_reg_w )
13321387{
1388   //printf("ai_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask);
13331389   switch (offset)
13341390   {
13351391      case 0x00/4:        // AI_DRAM_ADDR_REG
r241777r241778
13521408      case 0x10/4:        // AI_DACRATE_REG
13531409         ai_dacrate = data & 0x3fff;
13541410         dmadac_set_frequency(&ai_dac[0], 2, (double)DACRATE_NTSC / (double)(ai_dacrate+1));
1411         //printf( "frequency: %f\n", (double)DACRATE_NTSC / (double)(ai_dacrate+1) );
13551412         dmadac_enable(&ai_dac[0], 2, 1);
13561413         break;
13571414
r241777r241778
13981455      cart_addr &= ((machine().root_device().memregion("user2")->bytes() >> 1) - 1);
13991456   }
14001457
1458   //printf("%08x Cart, %08x Dram\n", cart_addr << 1, dram_addr << 1); fflush(stdout);
1459
14011460   if(pi_dma_dir == 1)
14021461   {
14031462      UINT32 dma_length = pi_wr_len + 1;
r241777r241778
14991558         break;
15001559   }
15011560
1561   //printf("pi_reg_r %08x = %08x\n", offset * 4, ret);
15021562   return ret;
15031563}
15041564
15051565WRITE32_MEMBER( n64_periphs::pi_reg_w )
15061566{
1567   //printf("pi_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask); fflush(stdout);
15071568   switch (offset)
15081569   {
15091570      case 0x00/4:        // PI_DRAM_ADDR_REG
r241777r241778
15251586         pi_status |= 1;
15261587
15271588         attotime dma_period = attotime::from_hz(93750000) * (int)((float)(pi_rd_len + 1) * 5.08f); // Measured as between 2.53 cycles per byte and 2.55 cycles per byte
1589         //printf("want read dma in %d\n", (pi_rd_len + 1));
15281590         pi_dma_timer->adjust(dma_period);
15291591         //pi_dma_tick();
15301592         break;
r241777r241778
15371599         pi_status |= 1;
15381600
15391601         attotime dma_period = attotime::from_hz(93750000) * (int)((float)(pi_wr_len + 1) * 5.08f); // Measured as between 2.53 cycles per byte and 2.55 cycles per byte
1602         //printf("want write dma in %d\n", (pi_wr_len + 1));
15401603         pi_dma_timer->adjust(dma_period);
15411604
15421605         //pi_dma_tick();
r241777r241778
15951658
15961659READ32_MEMBER( n64_periphs::ri_reg_r )
15971660{
1661   //printf("ri_reg_r %08x = %08x\n", offset * 4, ri_regs[offset]);
15981662   if(offset > 0x1c/4)
15991663   {
16001664      logerror("ri_reg_r: %08X, %08X at %08X\n", offset, mem_mask, maincpu->safe_pc());
r241777r241778
16051669
16061670WRITE32_MEMBER( n64_periphs::ri_reg_w )
16071671{
1672   //printf("ri_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask);
16081673   if(offset > 0x1c/4)
16091674   {
16101675      logerror("ri_reg_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, maincpu->safe_pc());
r241777r241778
16671732      case 0x00:      // Read status
16681733      case 0xff:      // Reset
16691734      {
1735         if(command == 0)
1736         {
1737            //printf("Read status\n");
1738         }
1739         else
1740         {
1741            //printf("Reset\n");
1742         }
16701743         switch (channel)
16711744         {
16721745            case 0:
16731746            case 1:
16741747            {
1675               // Read status
1748               //printf("Read controller %d status\n", channel + 1);
16761749               rdata[0] = 0x05;
16771750               rdata[1] = 0x00;
16781751               rdata[2] = 0x01;
r241777r241778
16811754            case 2:
16821755            case 3:
16831756            {
1684               // Read status (unconnected)
1757               //printf("Read controller %d status (NC)\n", channel + 1);
1758               // not connected
16851759               return 1;
16861760            }
16871761            case 4:
16881762            {
1689               // Read EEPROM status
1763               //printf("Read EEPROM status\n");
16901764               rdata[0] = 0x00;
16911765               rdata[1] = 0x80;
16921766               rdata[2] = 0x00;
r241777r241778
17171791
17181792         switch (channel)
17191793         {
1720            case 0: // P1 Inputs
1721            case 1: // P2 Inputs
1794            case 0: //p1 inputs
1795            case 1: //p2 inputs
17221796            {
1797               //printf("Read p%d inputs\n", channel + 1);
17231798               buttons = machine().root_device().ioport(portnames[(channel*3) + 0])->read();
17241799               x = machine().root_device().ioport(portnames[(channel*3) + 1])->read() - 128;
17251800               y = machine().root_device().ioport(portnames[(channel*3) + 2])->read() - 128;
r241777r241778
17331808            case 2:
17341809            case 3:
17351810            {
1736               // P3/P4 Inputs (not connected)
1811               //printf("Controller %d not connected\n", channel + 1);
1812               // not connected
17371813               return 1;
17381814            }
17391815         }
r241777r241778
17481824         address = (sdata[1] << 8) | (sdata[2]);
17491825         address &= ~0x1f;
17501826
1827         ////printf("Read mempak at %04x\n", address);
1828
17511829         if(address == 0x8000)
17521830         {
17531831            for(int i = 0; i < rlength-1; i++)
r241777r241778
17761854         UINT32 address = (sdata[1] << 8) | (sdata[2]);
17771855         address &= ~0x1f;
17781856
1779         if (address < 0x8000)
1857         ////printf("Write mempak at %04x\n", address);
1858         if (address >= 0x8000)
17801859         {
1860         }
1861         else
1862         {
17811863            for(int i = 3; i < slength; i++)
17821864            {
17831865               m_save_data.mempak[channel & 1][address++] = sdata[i];
r241777r241778
18031885
18041886         UINT16 block_offset = sdata[1] * 8;
18051887
1888         //printf("Read EEPROM at %04x\n", block_offset);
1889
18061890         for(int i=0; i < 8; i++)
18071891         {
18081892            rdata[i] = m_save_data.eeprom[block_offset+i];
r241777r241778
18251909
18261910         UINT16 block_offset = sdata[1] * 8;
18271911
1912         //printf("Write EEPROM at %04x\n", block_offset);
1913
18281914         for(int i = 0; i < 8; i++)
18291915         {
18301916            m_save_data.eeprom[block_offset+i] = sdata[2+i];
r241777r241778
18351921
18361922      case 0x06:      // Read RTC Status
18371923      {
1924         //printf("Read RTC Status\n");
18381925         rdata[0] = 0x00;
18391926         rdata[1] = 0x10;
18401927         rdata[2] = 0x00;
r241777r241778
18461933         switch(sdata[1])
18471934         {
18481935            case 0:
1936               //printf("Read RTC Block Header\n");
18491937               rdata[0] = 0x00;
18501938               rdata[1] = 0x02;
18511939               rdata[8] = 0x00;
r241777r241778
18661954               rdata[6] = convert_to_bcd(systime.local_time.year % 100); // Year
18671955               rdata[7] = convert_to_bcd(systime.local_time.year / 100); // Century
18681956               rdata[8] = 0x00;
1957               //printf("Read RTC Time\n");
18691958               return 0;
18701959         }
18711960         return 1;
r241777r241778
18931982      while(cmd_ptr < 0x3f && !end)
18941983      {
18951984         INT8 bytes_to_send = (INT8)pif_cmd[cmd_ptr++];
1985         //printf("bytes to send: 0x%02x\n", bytes_to_send);
18961986
18971987         if (bytes_to_send == -2)
18981988         {
18991989            end = 1;
1990            //printf("end\n");
19001991         }
19011992         else if (bytes_to_send < 0)
19021993         {
1994            //printf("do nothing\n");
19031995            // do nothing
19041996         }
19051997         else
r241777r241778
19102002               UINT8 send_buffer[0x40];
19112003
19122004               INT8 bytes_to_recv = pif_cmd[cmd_ptr++];
2005               //printf("bytes to receive: 0x%02x\n", bytes_to_recv);
19132006
19142007               if (bytes_to_recv == -2)
19152008               {
r241777r241778
19222015               }
19232016
19242017               int res = pif_channel_handle_command(channel, bytes_to_send, send_buffer, bytes_to_recv, recv_buffer);
2018               //printf("result: %d\n", res);
19252019
19262020               if (res == 0)
19272021               {
2022                  //printf("cmd_ptr (%d) + bytes_to_recv (%d) = %d\n", cmd_ptr, bytes_to_recv, cmd_ptr + bytes_to_recv);
19282023                  if (cmd_ptr + bytes_to_recv > 0x3f)
19292024                  {
19302025                     fatalerror("cmd_ptr overflow\n");
r241777r241778
20152110         ret = si_status;
20162111   }
20172112
2113   //printf("si_reg_r %08x = %08x\n", offset * 4, ret); fflush(stdout);
20182114   return ret;
20192115}
20202116
20212117WRITE32_MEMBER( n64_periphs::si_reg_w )
20222118{
2119   //printf("si_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask); fflush(stdout);
20232120   switch (offset)
20242121   {
20252122      case 0x00/4:        // SI_DRAM_ADDR_REG
r241777r241778
22992396      return;
23002397
23012398   device_image_interface *image = dynamic_cast<device_image_interface *>(periphs->m_nvram_image);
2302
2399   //printf("Saving stuff\n");
23032400   UINT8 data[0x30800];
23042401   memcpy(data, n64_sram, 0x20000);
23052402   memcpy(data + 0x20000, periphs->m_save_data.eeprom, 0x800);
trunk/src/mame/machine/naomim2.c
r241777r241778
105105const device_type NAOMI_M2_BOARD = &device_creator<naomi_m2_board>;
106106
107107naomi_m2_board::naomi_m2_board(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
108   : naomi_board(mconfig, NAOMI_M2_BOARD, "Sega NAOMI M2 BOARD", tag, owner, clock, "naomi_m2_board", __FILE__),
109   m_cryptdevice(*this, "segam2crypt")
108   : naomi_board(mconfig, NAOMI_M2_BOARD, "Sega NAOMI M2 BOARD", tag, owner, clock, "naomi_m2_board", __FILE__)
110109{
111110   key_tag = 0;
112111}
r241777r241778
121120{
122121   naomi_board::device_start();
123122
123#if USE_NAOMICRYPT
124   key = get_naomi_key(machine());
125#else
126   const UINT8 *key_data = memregion(key_tag)->base();
127   key = (key_data[0] << 24) | (key_data[1] << 16) | (key_data[2] << 8) | key_data[3];
128#endif
124129   ram = auto_alloc_array(machine(), UINT8, RAM_SIZE);
130   buffer = auto_alloc_array(machine(), UINT8, BUFFER_SIZE);
131   line_buffer = auto_alloc_array(machine(), UINT8, LINE_SIZE);
132   line_buffer_prev = auto_alloc_array(machine(), UINT8, LINE_SIZE);
125133
134   save_pointer(NAME(ram), RAM_SIZE);
135   save_pointer(NAME(buffer), BUFFER_SIZE);
136   save_pointer(NAME(line_buffer), LINE_SIZE);
137   save_pointer(NAME(line_buffer_prev), LINE_SIZE);
126138   save_item(NAME(rom_cur_address));
127   save_pointer(NAME(ram), RAM_SIZE);
139   save_item(NAME(prot_cur_address));
140   save_item(NAME(subkey));
141   save_item(NAME(enc_ready));
142   save_item(NAME(dec_hist));
143   save_item(NAME(dec_header));
144   save_item(NAME(buffer_pos));
145   save_item(NAME(line_buffer_pos));
146   save_item(NAME(line_buffer_size));
128147}
129148
130149void naomi_m2_board::device_reset()
r241777r241778
132151   naomi_board::device_reset();
133152
134153   memset(ram, 0, RAM_SIZE);
154   memset(buffer, 0, BUFFER_SIZE);
155   memset(line_buffer, 0, LINE_SIZE);
156   memset(line_buffer_prev, 0, LINE_SIZE);
135157
136158   rom_cur_address = 0;
159   prot_cur_address = 0;
160   subkey = 0;
161   dec_hist = 0;
162   dec_header = 0;
163   enc_ready = false;
137164
138#if USE_NAOMICRYPT
139   m_cryptdevice->set_key(get_naomi_key(machine()));
140#else
141   const UINT8 *key_data = memregion(key_tag)->base();
142   m_cryptdevice->set_key((key_data[0] << 24) | (key_data[1] << 16) | (key_data[2] << 8) | key_data[3]);
143#endif
165   buffer_pos = 0;
166   line_buffer_pos = 0;
167   line_buffer_size = 0;
168   buffer_bit = 0;
144169}
145170
146171void naomi_m2_board::board_setup_address(UINT32 address, bool is_dma)
r241777r241778
150175
151176void naomi_m2_board::board_get_buffer(UINT8 *&base, UINT32 &limit)
152177{
153
154178   if(rom_cur_address & 0x40000000) {
155179      if(rom_cur_address == 0x4001fffe) {
156         m_cryptdevice->do_decrypt(base);
180         if(!enc_ready)
181            enc_start();
182         if(dec_header & FLAG_COMPRESSED) {
183            if(line_buffer_pos == line_buffer_size)
184               line_fill();
185            base = line_buffer + line_buffer_pos;
186            line_buffer_pos += 2;
187         } else {
188            if(buffer_pos == BUFFER_SIZE)
189               enc_fill();
190            base = buffer + buffer_pos;
191            buffer_pos += 2;
192         }
157193         limit = 2;
158194
159195      } else
r241777r241778
178214
179215void naomi_m2_board::board_write(offs_t offset, UINT16 data)
180216{
181
182
183217   if(offset & 0x40000000) {
184218      if((offset & 0x0f000000) == 0x02000000) {
185219         offset &= RAM_SIZE-1;
r241777r241778
188222         return;
189223      }
190224      switch(offset & 0x1fffffff) {
191
192      case 0x1fff8: m_cryptdevice->set_addr_low(data); return;
193      case 0x1fffa: m_cryptdevice->set_addr_high(data);  return;
194      case 0x1fffc: m_cryptdevice->set_subkey(data); return;
225      case 0x1fff8: prot_cur_address = (prot_cur_address & 0xffff0000) | data; enc_ready = false; return;
226      case 0x1fffa: prot_cur_address = (prot_cur_address & 0x0000ffff) | (data << 16); enc_ready = false; return;
227      case 0x1fffc: subkey = data; enc_ready = false; return;
195228      }
196229   }
197230   throw emu_fatalerror("NAOMIM2: unhandled board write %08x, %04x\n", offset, data);
198231}
199232
200UINT16 naomi_m2_board::read_callback(UINT32 addr)
233/***************************************************************************
234    DECRYPTION EMULATION
235
236By convention, we label the three known cart protection methods this way (using Deunan Knute's wording):
237M1: DMA read of protected ROM area
238M2: special read of ROM area which supplies decryption key first
239M3: normal read followed by write to cart's decryption buffer (up to 64kB), followed by M2 but from buffer area
240
241Notes below refer to M2 & M3.
242
243The encryption is done by a stream cipher operating in counter mode, which use a 16-bits internal block cipher.
244
245There are 2 "control bits" at the start of the decrypted stream which control the mode of operation: bit #1 set to 1 means
246that the decrypted stream needs to be decompressed after being decrypted. More on this later.
247
248The next 16-bits are part of the header (they don't belong to the plaintext), but his meaning is unclear. It has been
249conjectured that it could stablish when to "reset" the process and start processing a new stream (based on some tests
250on WWFROYAL, in which the decryption's output doesn't seem to be valid for more than some dozens of words), but some
251more testing would be needed for clarifying that.
252
253After those 18 heading bits, we find the proper plaintext. It must be noted that, due to the initial 2 special bits,
254the 16-bits words of the plaintext are shifted 2 bits respect to the word-boundaries of the output stream of the
255internal block-cipher. So, at a given step, the internal block cipher will output 16-bits, 14 of which will go to a
256given plaintext word, and the remaining 2 to the next plaintext word.
257
258The underlying block cipher consists of two 4-round Feistel Networks (FN): the first one takes the counter (16 bits),
259the game-key (>=26 bits) and the sequence-key (16 bits) and output a middle result (16 bits) which will act as another key
260for the second one. The second FN will take the encrypted word (16 bits), the game-key, the sequence-key and the result
261from the first FN and will output the decrypted word (16 bits).
262
263Each round of the Feistel Networks use four substitution sboxes, each having 6 inputs and 2 outputs. The input can be the
264XOR of at most two "sources bits", being source bits the bits from the previous round and the bits from the different keys.
265
266The underlying block cipher has the same structure than the one used by the CPS-2 (Capcom Play System 2) and,
267indeed, some of the used sboxes are exactly the same and appear in the same FN/round in both systems (this is not evident,
268as you need to apply a bitswapping and some XORs to the input & output of the sboxes to get the same values due). However,
269the key scheduling used by this implementation is much weaker than the CPS-2's one. Many s-boxes inputs aren't XORed with any
270key bit.
271
272Due to the small key-length, no sophisticated attacks are needed to recover the keys; a brute-force attack knowing just
273some (encrypted word-decrypted word) pairs suffice. However, due to the weak key scheduling, it should be noted that some
274related keys can produce the same output bytes for some (short) input sequences.
275
276The only difference in the decryption process between M2 and M3 is the initialization of the counter. In M3, the counter is
277always set to 0 at the beginning of the decryption while, in M2, the bits #1-#16 of the ciphertext's address are used
278to initialize the counter.
279
280Note that this implementation considers that the counter initialization for ram decryption is 0 simply because the ram is
281mapped to multiples of 128K.
282
283Due to the nature of the cipher, there are some degrees of freedom when choosing the s-boxes and keys values; by example,
284you could apply a fixed bitswapping and XOR to the keys and the decryption would remain the same as long as you change
285accordingly the s-boxes' definitions. So the order of the bits in the keys is arbitrary, and the s-boxes values have been
286chosen so as to make the key for CAPSNK equal to 0.
287
288It can be observed that a couple of sboxes have incomplete tables (a 255 value indicate an unknown value). The recovered keys
289as of december/2010 show small randomness and big correlations, making possible that some unseen bits could make the
290decryption need those incomplete parts.
291
292****************************************************************************************/
293
294const naomi_m2_board::sbox naomi_m2_board::fn1_sboxes[4][4] = {
295   {   // 1st round
296      {
297         {
298            0,3,2,2,1,3,1,2,3,2,1,2,1,2,3,1,3,2,2,0,2,1,3,0,0,3,2,3,2,1,2,0,
299            2,3,1,1,2,2,1,1,1,0,2,3,3,0,2,1,1,1,1,1,3,0,3,2,1,0,1,2,0,3,1,3,
300         },
301         {3,4,5,7,-1,-1},
302         {0,4}
303      },
304
305      {
306         {
307            2,2,2,0,3,3,0,1,2,2,3,2,3,0,2,2,1,1,0,3,3,2,0,2,0,1,0,1,2,3,1,1,
308            0,1,3,3,1,3,3,1,2,3,2,0,0,0,2,2,0,3,1,3,0,3,2,2,0,3,0,3,1,1,0,2,
309         },
310         {0,1,2,5,6,7},
311         {1,6}
312      },
313
314      {
315         {
316            0,1,3,0,3,1,1,1,1,2,3,1,3,0,2,3,3,2,0,2,1,1,2,1,1,3,1,0,0,2,0,1,
317            1,3,1,0,0,3,2,3,2,0,3,3,0,0,0,0,1,2,3,3,2,0,3,2,1,0,0,0,2,2,3,3,
318         },
319         {0,2,5,6,7,-1},
320         {2,3}
321      },
322
323      {
324         {
325            3,2,1,2,1,2,3,2,0,3,2,2,3,1,3,3,0,2,3,0,3,3,2,1,1,1,2,0,2,2,0,1,
326            1,3,3,0,0,3,0,3,0,2,1,3,2,1,0,0,0,1,1,2,0,1,0,0,0,1,3,3,2,0,3,3,
327         },
328         {1,2,3,4,6,7},
329         {5,7}
330      },
331   },
332   {   // 2nd round
333      {
334         {
335            3,3,1,2,0,0,2,2,2,1,2,1,3,1,1,3,3,0,0,3,0,3,3,2,1,1,3,2,3,2,1,3,
336            2,3,0,1,3,2,0,1,2,1,3,1,2,2,3,3,3,1,2,2,0,3,1,2,2,1,3,0,3,0,1,3,
337         },
338         {0,1,3,4,5,7},
339         {0,4}
340      },
341
342      {
343         {
344            2,0,1,0,0,3,2,0,3,3,1,2,1,3,0,2,0,2,0,0,0,2,3,1,3,1,1,2,3,0,3,0,
345            3,0,2,0,0,2,2,1,0,2,3,3,1,3,1,0,1,3,3,0,0,1,3,1,0,2,0,3,2,1,0,1,
346         },
347         {0,1,3,4,6,-1},
348         {1,5}
349      },
350
351      {
352         {
353            2,2,2,3,1,1,0,1,0,1,2,2,3,3,0,2,0,3,2,3,3,0,2,1,0,3,1,0,0,2,3,2,
354            3,2,0,3,2,0,1,0,3,3,1,1,2,2,2,0,2,1,3,1,1,1,1,2,2,2,3,0,1,3,0,0,
355         },
356         {1,2,5,6,7,-1},
357         {2,7}
358      },
359
360      {
361         {
362            0,1,3,3,3,1,3,3,1,0,2,0,2,0,0,3,1,2,1,3,1,2,3,2,2,0,1,3,0,3,3,3,
363            0,0,0,2,1,1,2,3,2,2,3,1,1,2,0,2,0,2,1,3,1,1,3,3,1,1,3,0,2,3,0,0,
364         },
365         {2,3,4,5,6,7},
366         {3,6}
367      },
368   },
369   {   // 3rd round
370      {
371         {
372            0,0,1,0,1,0,0,3,2,0,0,3,0,1,0,2,0,3,0,0,2,0,3,2,2,1,3,2,2,1,1,2,
373            0,0,0,3,0,1,1,0,0,2,1,0,3,1,2,2,2,0,3,1,3,0,1,2,2,1,1,1,0,2,3,1,
374         },
375         {1,2,3,4,5,7},
376         {0,5}
377      },
378
379      {
380         {
381            1,2,1,0,3,1,1,2,0,0,2,3,2,3,1,3,2,0,3,2,2,3,1,1,1,1,0,3,2,0,0,1,
382            1,0,0,1,3,1,2,3,0,0,2,3,3,0,1,0,0,2,3,0,1,2,0,1,3,3,3,1,2,0,2,1,
383         },
384         {0,2,4,5,6,7},
385         {1,6}
386      },
387
388      {
389         {
390            0,3,0,2,1,2,0,0,1,1,0,0,3,1,1,0,0,3,0,0,2,3,3,2,3,1,2,0,0,2,3,0,
391            // unused?
392            255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
393         },
394         {0,2,4,6,7,-1},
395         {2,3}
396      },
397
398      {
399         {
400            0,0,1,0,0,1,0,2,3,3,0,3,3,2,3,0,2,2,2,0,3,2,0,3,1,0,0,3,3,0,0,0,
401            2,2,1,0,2,0,3,2,0,0,3,1,3,3,0,0,2,1,1,2,1,0,1,1,0,3,1,2,0,2,0,3,
402         },
403         {0,1,2,3,6,-1},
404         {4,7}
405      },
406   },
407   {   // 4th round
408      {
409         {
410            0,3,3,3,3,3,2,0,0,1,2,0,2,2,2,2,1,1,0,2,2,1,3,2,3,2,0,1,2,3,2,1,
411            3,2,2,3,1,0,1,0,0,2,0,1,2,1,2,3,1,2,1,1,2,2,1,0,1,3,2,3,2,0,3,1,
412         },
413         {0,1,3,4,5,6},
414         {0,5}
415      },
416
417      {
418         {
419            0,3,0,0,2,0,3,1,1,1,2,2,2,1,3,1,2,2,1,3,2,2,3,3,0,3,1,0,3,2,0,1,
420            3,0,2,0,1,0,2,1,3,3,1,2,2,0,2,3,3,2,3,0,1,1,3,3,0,2,1,3,0,2,2,3,
421         },
422         {0,1,2,3,5,7},
423         {1,7}
424      },
425
426      {
427         {
428            0,1,2,3,3,3,3,1,2,0,2,3,2,1,0,1,2,2,1,2,0,3,2,0,1,1,0,1,3,1,3,1,
429            3,1,0,0,1,0,0,0,0,1,2,2,1,1,3,3,1,2,3,3,3,2,3,0,2,2,1,3,3,0,2,0,
430         },
431         {2,3,4,5,6,7},
432         {2,3}
433      },
434
435      {
436         {
437            0,2,1,1,3,2,0,3,1,0,1,0,3,2,1,1,2,2,0,3,1,0,1,2,2,2,3,3,0,0,0,0,
438            1,2,1,0,2,1,2,2,2,3,2,3,0,1,3,0,0,1,3,0,0,1,1,0,1,0,0,0,0,2,0,1,
439         },
440         {0,1,2,4,6,7},
441         {4,6}
442      },
443   },
444};
445
446
447const naomi_m2_board::sbox naomi_m2_board::fn2_sboxes[4][4] = {
448   {   // 1st round
449      {
450         {
451            3,3,0,1,0,1,0,0,0,3,0,0,1,3,1,2,0,3,3,3,2,1,0,1,1,1,2,2,2,3,2,2,
452            2,1,3,3,1,3,1,1,0,0,1,2,0,2,2,1,1,2,3,1,2,1,3,1,2,2,0,1,3,0,2,2,
453         },
454         {1,3,4,5,6,7},
455         {0,7}
456      },
457
458      {
459         {
460            0,2,3,2,1,1,0,0,2,1,0,3,3,0,0,0,3,2,0,2,1,1,2,1,0,0,3,1,2,2,3,1,
461            3,1,3,0,0,0,1,3,1,0,0,3,2,2,3,1,1,3,0,0,2,1,3,3,1,3,1,2,3,1,2,1,
462         },
463         {0,3,5,6,-1,-1},
464         {1,2}
465      },
466
467      {
468         {
469            0,2,2,1,0,1,2,1,2,0,1,2,3,3,0,1,3,1,1,2,1,2,1,3,3,2,3,3,2,1,0,1,
470            0,1,0,2,0,1,1,3,2,0,3,2,1,1,1,3,2,3,0,2,3,0,2,2,1,3,0,1,1,2,2,2,
471         },
472         {0,2,3,4,7,-1},
473         {3,4}
474      },
475
476      {
477         {
478            2,3,1,3,2,0,1,2,0,0,3,3,3,3,3,1,2,0,2,1,2,3,0,2,0,1,0,3,0,2,1,0,
479            2,3,0,1,3,0,3,2,3,1,2,0,3,1,1,2,0,3,0,0,2,0,2,1,2,2,3,2,1,2,3,1,
480         },
481         {1,2,5,6,-1,-1},
482         {5,6}
483      },
484   },
485   {   // 2nd round
486      {
487         {
488            2,3,1,3,1,0,3,3,3,2,3,3,2,0,0,3,2,3,0,3,1,1,2,3,1,1,2,2,0,1,0,0,
489            2,1,0,1,2,0,1,2,0,3,1,1,2,3,1,2,0,2,0,1,3,0,1,0,2,2,3,0,3,2,3,0,
490         },
491         {0,1,4,5,6,7},
492         {0,7}
493      },
494
495      {
496         {
497            0,2,2,0,2,2,0,3,2,3,2,1,3,2,3,3,1,1,0,0,3,0,2,1,1,3,3,2,3,2,0,1,
498            1,2,3,0,1,0,3,0,3,1,0,2,1,2,0,3,2,3,1,2,2,0,3,2,3,0,0,1,2,3,3,3,
499         },
500         {0,2,3,6,7,-1},
501         {1,5}
502      },
503
504      {
505         {
506            1,2,3,2,0,3,2,3,0,1,1,0,0,2,2,3,2,0,0,3,0,2,3,3,2,2,1,0,2,1,0,3,
507            1,0,2,0,1,1,0,1,0,0,1,0,3,0,3,3,2,2,0,2,1,1,1,0,3,0,1,3,2,3,2,1,
508         },
509         {2,3,4,6,7,-1},
510         {2,3}
511      },
512
513      {
514         {
515            2,3,1,3,1,1,2,3,3,1,1,0,1,0,2,3,2,1,0,0,2,2,0,1,0,2,2,2,0,2,1,0,
516            3,1,2,3,1,3,0,2,1,0,1,0,0,1,2,2,3,2,3,1,3,2,1,1,2,0,2,1,3,3,1,0,
517         },
518         {1,2,3,4,5,6},
519         {4,6}
520      },
521   },
522   {   // 3rd round
523      {
524         {
525            0,3,0,1,0,2,3,3,1,0,1,3,2,2,1,1,3,3,3,0,2,0,2,0,0,0,2,3,1,1,0,0,
526            3,3,0,3,3,0,0,2,1,1,1,0,2,2,2,0,3,0,3,1,2,2,0,3,0,0,3,2,0,3,2,1,
527         },
528         {1,4,5,6,7,-1},
529         {0,5}
530      },
531
532      {
533         {
534            0,3,0,1,3,0,3,1,3,2,2,2,3,0,3,2,2,1,2,2,0,3,2,2,0,0,2,1,1,3,2,3,
535            2,3,3,1,2,0,1,2,2,1,0,0,0,0,2,3,1,2,0,3,1,3,1,2,3,2,1,0,3,0,0,2,
536         },
537         {0,2,3,4,6,7},
538         {1,7}
539      },
540
541      {
542         {
543            2,2,3,2,0,3,2,3,1,1,2,0,2,3,1,3,0,0,0,3,2,0,1,0,1,3,2,3,3,3,1,0,
544            // unused?
545            255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
546         },
547         {1,2,4,7,-1,-1},
548         {2,4}
549      },
550
551      {
552         {
553            0,2,3,1,3,1,1,0,0,1,3,0,2,1,3,3,2,0,2,1,1,2,3,3,0,0,0,2,0,2,3,0,
554            3,3,3,3,2,3,3,2,3,0,1,0,2,3,3,2,0,1,3,1,0,1,2,3,3,0,2,0,3,0,3,3,
555         },
556         {0,1,2,3,5,7},
557         {3,6}
558      },
559   },
560   {   // 4th round
561      {
562         {
563            0,1,1,0,0,1,0,2,3,3,0,1,2,3,0,2,1,0,3,3,2,0,3,0,0,2,1,0,1,0,1,3,
564            0,3,3,1,2,0,3,0,1,3,2,0,3,3,1,3,0,2,3,3,2,1,1,2,2,1,2,1,2,0,1,1,
565         },
566         {0,1,2,4,7,-1},
567         {0,5}
568      },
569
570      {
571         {
572            2,0,0,2,3,0,2,3,3,1,1,1,2,1,1,0,0,2,1,0,0,3,1,0,0,3,3,0,1,0,1,2,
573            0,2,0,2,0,1,2,3,2,1,1,0,3,3,3,3,3,3,1,0,3,0,0,2,0,3,2,0,2,2,0,1,
574         },
575         {0,1,3,5,6,-1},
576         {1,3}
577      },
578
579      {
580         {
581            0,1,1,2,1,3,1,1,0,0,3,1,1,1,2,0,3,2,0,1,1,2,3,3,3,0,3,0,0,2,0,3,
582            3,2,0,0,3,2,3,1,2,3,0,3,2,0,1,2,2,2,0,2,0,1,2,2,3,1,2,2,1,1,1,1,
583         },
584         {0,2,3,4,5,7},
585         {2,7}
586      },
587
588      {
589         {
590            0,1,2,0,3,3,0,3,2,1,3,3,0,3,1,1,3,2,3,2,3,0,0,0,3,0,2,2,3,2,2,3,
591            2,2,3,1,2,3,1,2,0,3,0,2,3,1,0,0,3,2,1,2,1,2,1,3,1,0,2,3,3,1,3,2,
592         },
593         {2,3,4,5,6,7},
594         {4,6}
595      },
596   },
597};
598
599const int naomi_m2_board::fn1_game_key_scheduling[38][2] = {
600   {1,29},  {1,71},  {2,4},   {2,54},  {3,8},   {4,56},  {4,73},  {5,11},
601   {6,51},  {7,92},  {8,89},  {9,9},   {9,10},  {9,39},  {9,41},  {9,58},
602   {9,59},  {9,86},  {10,90}, {11,6},  {12,64}, {13,49}, {14,44}, {15,40},
603   {16,69}, {17,15}, {18,23}, {18,43}, {19,82}, {20,81}, {21,32}, {21,61},
604   {22,5},  {23,66}, {24,13}, {24,45}, {25,12}, {25,35}
605};
606
607const int naomi_m2_board::fn2_game_key_scheduling[34][2] = {
608   {0,0},   {1,3},   {2,11},  {3,20},  {4,22},  {5,23},  {6,29},  {7,38},
609   {8,39},  {9,47},  {9,55},  {9,86},  {9,87},  {9,90},  {10,50}, {10,53},
610   {11,57}, {12,59}, {13,61}, {13,64}, {14,63}, {15,67}, {16,72}, {17,83},
611   {18,88}, {19,94}, {20,35}, {21,17}, {21,92}, {22,6},  {22,11}, {23,85},
612   {24,16}, {25,25}
613};
614
615const int naomi_m2_board::fn1_sequence_key_scheduling[20][2] = {
616   {0,52},  {1,34},  {2,17},  {3,36}, {4,84},  {4,88},  {5,57},  {6,48},
617   {6,68},  {7,76},  {8,83},  {9,30}, {10,22}, {10,41}, {11,38}, {12,55},
618   {13,74}, {14,19}, {14,80}, {15,26}
619};
620
621const int naomi_m2_board::fn2_sequence_key_scheduling[16] = {77,34,8,42,36,27,69,66,13,9,79,31,49,7,24,64};
622
623const int naomi_m2_board::fn2_middle_result_scheduling[16] = {1,10,44,68,74,78,81,95,2,4,30,40,41,51,53,58};
624
625int naomi_m2_board::feistel_function(int input, const struct sbox *sboxes, UINT32 subkeys)
201626{
202   if ((addr & 0xffff0000) == 0x01000000) {
203      int base = 2*(addr & 0x7fff);
204      return ram[base+1] | (ram[base] << 8);
627   int k,m;
628   int aux;
629   int result=0;
205630
631   for (m=0; m<4; ++m) { // 4 sboxes
632      for (k=0, aux=0; k<6; ++k)
633         if (sboxes[m].inputs[k]!=-1)
634            aux |= BIT(input, sboxes[m].inputs[k]) << k;
635
636      aux = sboxes[m].table[(aux^subkeys)&0x3f];
637
638      for (k=0; k<2; ++k)
639         result |= BIT(aux,k) << sboxes[m].outputs[k];
640
641      subkeys >>=6;
206642   }
207   else {
208      const UINT8 *base = m_region->base() + 2*addr;
209      return base[1] | (base[0] << 8);
643
644   return result;
645}
646
647/**************************
648This implementation is an "educational" version. It must be noted that it can be speed-optimized in a number of ways.
649The most evident one is to factor out the parts of the key-scheduling that must only be done once (like the game-key &
650sequence-key parts) as noted in the comments inlined in the function. More sophisticated speed-ups can be gained by
651noticing that the weak key-scheduling would allow to create some pregenerated look-up tables for doing most of the work
652of the function. Even so, it would still be pretty slow, so caching techniques could be a wiser option here.
653**************************/
654
655UINT16 naomi_m2_board::block_decrypt(UINT32 game_key, UINT16 sequence_key, UINT16 counter, UINT16 data)
656{
657   int j;
658   int aux,aux2;
659   int A,B;
660   int middle_result;
661   UINT32 fn1_subkeys[4];
662   UINT32 fn2_subkeys[4];
663
664   /* Game-key scheduling; this could be done just once per game at initialization time */
665   memset(fn1_subkeys,0,sizeof(UINT32)*4);
666   memset(fn2_subkeys,0,sizeof(UINT32)*4);
667
668   for (j=0; j<38; ++j) {
669      if (BIT(game_key, fn1_game_key_scheduling[j][0])!=0) {
670         aux = fn1_game_key_scheduling[j][1]%24;
671         aux2 = fn1_game_key_scheduling[j][1]/24;
672         fn1_subkeys[aux2] ^= (1<<aux);
673      }
210674   }
675
676   for (j=0; j<34; ++j) {
677      if (BIT(game_key, fn2_game_key_scheduling[j][0])!=0) {
678         aux = fn2_game_key_scheduling[j][1]%24;
679         aux2 = fn2_game_key_scheduling[j][1]/24;
680         fn2_subkeys[aux2] ^= (1<<aux);
681      }
682   }
683   /********************************************************/
684
685   /* Sequence-key scheduling; this could be done just once per decryption run */
686   for (j=0; j<20; ++j) {
687      if (BIT(sequence_key,fn1_sequence_key_scheduling[j][0])!=0) {
688         aux = fn1_sequence_key_scheduling[j][1]%24;
689         aux2 = fn1_sequence_key_scheduling[j][1]/24;
690         fn1_subkeys[aux2] ^= (1<<aux);
691      }
692   }
693
694   for (j=0; j<16; ++j) {
695      if (BIT(sequence_key,j)!=0) {
696         aux = fn2_sequence_key_scheduling[j]%24;
697         aux2 = fn2_sequence_key_scheduling[j]/24;
698         fn2_subkeys[aux2] ^= (1<<aux);
699      }
700   }
701
702   // subkeys bits 10 & 41
703   fn2_subkeys[0] ^= (BIT(sequence_key,2)<<10);
704   fn2_subkeys[1] ^= (BIT(sequence_key,4)<<17);
705   /**************************************************************/
706
707   // First Feistel Network
708
709   aux = BITSWAP16(counter,5,12,14,13,9,3,6,4,    8,1,15,11,0,7,10,2);
710
711   // 1st round
712   B = aux >> 8;
713   A = (aux & 0xff) ^ feistel_function(B,fn1_sboxes[0],fn1_subkeys[0]);
714
715   // 2nd round
716   B = B ^ feistel_function(A,fn1_sboxes[1],fn1_subkeys[1]);
717
718   // 3rd round
719   A = A ^ feistel_function(B,fn1_sboxes[2],fn1_subkeys[2]);
720
721   // 4th round
722   B = B ^ feistel_function(A,fn1_sboxes[3],fn1_subkeys[3]);
723
724   middle_result = (B<<8)|A;
725
726
727   /* Middle-result-key sheduling */
728   for (j=0; j<16; ++j) {
729      if (BIT(middle_result,j)!=0) {
730         aux = fn2_middle_result_scheduling[j]%24;
731         aux2 = fn2_middle_result_scheduling[j]/24;
732         fn2_subkeys[aux2] ^= (1<<aux);
733      }
734   }
735   /*********************/
736
737   // Second Feistel Network
738
739   aux = BITSWAP16(data,14,3,8,12,13,7,15,4,    6,2,9,5,11,0,1,10);
740
741   // 1st round
742   B = aux >> 8;
743   A = (aux & 0xff) ^ feistel_function(B,fn2_sboxes[0],fn2_subkeys[0]);
744
745   // 2nd round
746   B = B ^ feistel_function(A,fn2_sboxes[1],fn2_subkeys[1]);
747
748   // 3rd round
749   A = A ^ feistel_function(B,fn2_sboxes[2],fn2_subkeys[2]);
750
751   // 4th round
752   B = B ^ feistel_function(A,fn2_sboxes[3],fn2_subkeys[3]);
753
754   aux = (B<<8)|A;
755
756   aux = BITSWAP16(aux,15,7,6,14,13,12,5,4,    3,2,11,10,9,1,0,8);
757
758   return aux;
211759}
212760
213static MACHINE_CONFIG_FRAGMENT( naomim2 )
214   MCFG_DEVICE_ADD("segam2crypt", SEGA315_5881_CRYPT, 0)
215   MCFG_SET_READ_CALLBACK(naomi_m2_board, read_callback)
216MACHINE_CONFIG_END
761UINT16 naomi_m2_board::get_decrypted_16()
762{
763   UINT16 enc;
217764
218machine_config_constructor naomi_m2_board::device_mconfig_additions() const
765   if((prot_cur_address & 0xffff0000) == 0x01000000) {
766      int base = 2*(prot_cur_address & 0x7fff);
767      enc = ram[base+1] | (ram[base] << 8);
768   } else {
769      const UINT8 *base = m_region->base() + 2*prot_cur_address;
770      enc = base[1] | (base[0] << 8);
771   }
772
773   UINT16 dec = block_decrypt(key, subkey, prot_cur_address, enc);
774   UINT16 res = (dec & 3) | (dec_hist & 0xfffc);
775   dec_hist = dec;
776
777   prot_cur_address ++;
778   return res;
779}
780
781void naomi_m2_board::enc_start()
219782{
220   return MACHINE_CONFIG_NAME( naomim2 );
783   buffer_pos = BUFFER_SIZE;
784   dec_header = get_decrypted_16() << 16;
785   dec_header |= get_decrypted_16();
786
787   if(dec_header & FLAG_COMPRESSED) {
788      line_buffer_size = dec_header & FLAG_LINE_SIZE_512 ? 512 : 256;
789      line_buffer_pos = line_buffer_size;
790      buffer_bit = 7;
791   }
792   enc_ready = true;
221793}
222794
795void naomi_m2_board::enc_fill()
796{
797   assert(buffer_pos == BUFFER_SIZE);
798   for(int i = 0; i != BUFFER_SIZE; i+=2) {
799      UINT16 val = get_decrypted_16();
800      buffer[i] = val;
801      buffer[i+1] = val >> 8;
802   }
803   buffer_pos = 0;
804}
805
806/* node format
8070xxxxxxx - next node index
8081a0bbccc - end node
809           a - 0 = repeat
810               1 = fetch
811           b - if a = 1
812               00 - fetch  0
813               01 - fetch  1
814               11 - fetch -1
815               if a = 0
816               000
817           c - repeat/fetch counter
818               count = ccc + 1
81911111111 - empty node
820*/
821const UINT8 naomi_m2_board::trees[9][2][32] = {
822   {
823      {0x01,0x10,0x0f,0x05,0xc4,0x13,0x87,0x0a,0xcc,0x81,0xce,0x0c,0x86,0x0e,0x84,0xc2,
824         0x11,0xc1,0xc3,0xcf,0x15,0xc8,0xcd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
825      {0xc7,0x02,0x03,0x04,0x80,0x06,0x07,0x08,0x09,0xc9,0x0b,0x0d,0x82,0x83,0x85,0xc0,
826         0x12,0xc6,0xc5,0x14,0x16,0xca,0xcb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
827   },
828   {
829      {0x02,0x80,0x05,0x04,0x81,0x10,0x15,0x82,0x09,0x83,0x0b,0x0c,0x0d,0xdc,0x0f,0xde,
830         0x1c,0xcf,0xc5,0xdd,0x86,0x16,0x87,0x18,0x19,0x1a,0xda,0xca,0xc9,0x1e,0xce,0xff,},
831      {0x01,0x17,0x03,0x0a,0x08,0x06,0x07,0xc2,0xd9,0xc4,0xd8,0xc8,0x0e,0x84,0xcb,0x85,
832         0x11,0x12,0x13,0x14,0xcd,0x1b,0xdb,0xc7,0xc0,0xc1,0x1d,0xdf,0xc3,0xc6,0xcc,0xff,},
833   },
834   {
835      {0xc6,0x80,0x03,0x0b,0x05,0x07,0x82,0x08,0x15,0xdc,0xdd,0x0c,0xd9,0xc2,0x14,0x10,
836         0x85,0x86,0x18,0x16,0xc5,0xc4,0xc8,0xc9,0xc0,0xcc,0xff,0xff,0xff,0xff,0xff,0xff,},
837      {0x01,0x02,0x12,0x04,0x81,0x06,0x83,0xc3,0x09,0x0a,0x84,0x11,0x0d,0x0e,0x0f,0x19,
838         0xca,0xc1,0x13,0xd8,0xda,0xdb,0x17,0xde,0xcd,0xcb,0xff,0xff,0xff,0xff,0xff,0xff,},
839   },
840   {
841      {0x01,0x80,0x0d,0x04,0x05,0x15,0x83,0x08,0xd9,0x10,0x0b,0x0c,0x84,0x0e,0xc0,0x14,
842         0x12,0xcb,0x13,0xca,0xc8,0xc2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
843      {0xc5,0x02,0x03,0x07,0x81,0x06,0x82,0xcc,0x09,0x0a,0xc9,0x11,0xc4,0x0f,0x85,0xd8,
844         0xda,0xdb,0xc3,0xdc,0xdd,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
845   },
846   {
847      {0x01,0x80,0x06,0x0c,0x05,0x81,0xd8,0x84,0x09,0xdc,0x0b,0x0f,0x0d,0x0e,0x10,0xdb,
848         0x11,0xca,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
849      {0xc4,0x02,0x03,0x04,0xcb,0x0a,0x07,0x08,0xd9,0x82,0xc8,0x83,0xc0,0xc1,0xda,0xc2,
850         0xc9,0xc3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
851   },
852   {
853      {0x01,0x02,0x06,0x0a,0x83,0x0b,0x07,0x08,0x09,0x82,0xd8,0x0c,0xd9,0xda,0xff,0xff,
854         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
855      {0xc3,0x80,0x03,0x04,0x05,0x81,0xca,0xc8,0xdb,0xc9,0xc0,0xc1,0x0d,0xc2,0xff,0xff,
856         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
857   },
858   {
859      {0x01,0x02,0x03,0x04,0x81,0x07,0x08,0xd8,0xda,0xd9,0xff,0xff,0xff,0xff,0xff,0xff,
860         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
861      {0xc2,0x80,0x05,0xc9,0xc8,0x06,0x82,0xc0,0x09,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,
862         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
863   },
864   {
865      {0x01,0x80,0x04,0xc8,0xc0,0xd9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
866         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
867      {0xc1,0x02,0x03,0x81,0x05,0xd8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
868         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
869   },
870   {
871      {0x01,0xd8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
872         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
873      {0xc0,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
874         0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,},
875   },
876};
877
878int naomi_m2_board::get_compressed_bit()
879{
880   if(buffer_pos == BUFFER_SIZE)
881      enc_fill();
882   int res = (buffer[buffer_pos^1] >> buffer_bit) & 1;
883   buffer_bit--;
884   if(buffer_bit == -1) {
885      buffer_bit = 7;
886      buffer_pos++;
887   }
888   return res;
889}
890
891void naomi_m2_board::line_fill()
892{
893   assert(line_buffer_pos == line_buffer_size);
894   UINT8 *lp = line_buffer;
895   UINT8 *lc = line_buffer_prev;
896   line_buffer = lc;
897   line_buffer_prev = lp;
898   line_buffer_pos = 0;
899
900   UINT32 line_buffer_mask = line_buffer_size-1;
901
902   for(int i=0; i != line_buffer_size;) {
903      // vlc 0: start of line
904      // vlc 1: interior of line
905      // vlc 2-9: 7-1 bytes from end of line
906
907      int slot = i ? i < line_buffer_size - 7 ? 1 : (i & 7) + 1 : 0;
908
909      UINT32 tmp = 0;
910      while (!(tmp&0x80))
911         if(get_compressed_bit())
912            tmp = trees[slot][1][tmp];
913         else
914            tmp = trees[slot][0][tmp];
915      if(tmp != 0xff) {
916         int count = (tmp & 7) + 1;
917
918         if(tmp&0x40) {
919            // Copy from previous line
920
921            static int offsets[4] = {0, 1, 0, -1};
922            int offset = offsets[(tmp & 0x18) >> 3];
923            for(int j=0; j != count; j++) {
924               lc[i^1] = lp[((i+offset) & line_buffer_mask)^1];
925               i++;
926            }
927
928         } else {
929            // Get a byte in the stream and write n times
930            UINT8 byte;
931            byte =         get_compressed_bit()  << 1;
932            byte = (byte | get_compressed_bit()) << 1;
933            byte = (byte | get_compressed_bit()) << 1;
934            byte = (byte | get_compressed_bit()) << 1;
935            byte = (byte | get_compressed_bit()) << 1;
936            byte = (byte | get_compressed_bit()) << 1;
937            byte = (byte | get_compressed_bit()) << 1;
938            byte =  byte | get_compressed_bit();
939            for(int j=0; j != count; j++)
940               lc[(i++)^1] = byte;
941
942         }
943      }
944   }
945}
trunk/src/mame/machine/naomim2.h
r241777r241778
22#define _NAOMIM2_H_
33
44#include "naomibd.h"
5#include "315-5881_crypt.h"
65
76#define MCFG_NAOMI_M2_BOARD_ADD(_tag, _key_tag, _eeprom_tag, _actel_tag, _irq_cb) \
87   MCFG_NAOMI_BOARD_ADD(_tag, NAOMI_M2_BOARD, _eeprom_tag, _actel_tag, _irq_cb) \
r241777r241778
1211{
1312public:
1413   naomi_m2_board(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
15   UINT32 rom_cur_address;
16   static const int RAM_SIZE = 65536;
17   UINT8* ram;
1814
1915   static void static_set_tags(device_t &device, const char *_key_tag);
20   UINT16 read_callback(UINT32 addr);
2116
2217protected:
2318   virtual void device_start();
2419   virtual void device_reset();
25   virtual machine_config_constructor device_mconfig_additions() const;
2620
2721   virtual void board_setup_address(UINT32 address, bool is_dma);
2822   virtual void board_get_buffer(UINT8 *&base, UINT32 &limit);
r241777r241778
3024   virtual void board_write(offs_t offset, UINT16 data);
3125
3226private:
27   enum {
28      RAM_SIZE = 65536, BUFFER_SIZE = 32768, LINE_SIZE = 512,
29      FLAG_COMPRESSED = 0x10000, FLAG_LINE_SIZE_512 = 0x20000
30   };
3331
34
3532   const char *key_tag;
33   UINT32 key;
3634
37   
38   required_device<sega_315_5881_crypt_device> m_cryptdevice;
35   UINT8 *ram, *buffer, *line_buffer, *line_buffer_prev;
36   UINT32 rom_cur_address, prot_cur_address;
37   UINT16 subkey, dec_hist;
38   UINT32 dec_header;
39   bool enc_ready;
40
41   int buffer_pos, line_buffer_pos, line_buffer_size, buffer_bit;
42
43   struct sbox {
44      UINT8 table[64];
45      int inputs[6];      // positions of the inputs bits, -1 means no input except from key
46      int outputs[2];     // positions of the output bits
47   };
48
49   static const sbox fn1_sboxes[4][4];
50   static const sbox fn2_sboxes[4][4];
51
52   static const int fn1_game_key_scheduling[38][2];
53   static const int fn2_game_key_scheduling[34][2];
54   static const int fn1_sequence_key_scheduling[20][2];
55   static const int fn2_sequence_key_scheduling[16];
56   static const int fn2_middle_result_scheduling[16];
57
58   static const UINT8 trees[9][2][32];
59
60   int feistel_function(int input, const struct sbox *sboxes, UINT32 subkeys);
61   UINT16 block_decrypt(UINT32 game_key, UINT16 sequence_key, UINT16 counter, UINT16 data);
62
63   UINT16 get_decrypted_16();
64   int get_compressed_bit();
65
66   void enc_start();
67   void enc_fill();
68   void line_fill();
3969};
4070
4171extern const device_type NAOMI_M2_BOARD;
trunk/src/mame/machine/pgmprot_igs025_igs012.c
r241777r241778
202202   mem16[0x130366 / 2] = 0x4e93;
203203   mem16[0x1303f6 / 2] = 0x4e93;
204204}
205
206DRIVER_INIT_MEMBER(pgm_012_025_state,drgw2hk)
207{
208   drgw2_common_init();
209
210   // todo, correct protection sequence for this region?
211   int region = 0x01;
212   m_igs025->m_kb_region = region;
213   m_igs025->m_kb_game_id = region | (region << 8) | (region << 16) | (region << 24);
214
215   UINT16 *mem16 = (UINT16 *)memregion("maincpu")->base();
216   mem16[0x12f520 / 2] = 0x4e93;
217   mem16[0x12f5c6 / 2] = 0x4e93;
218   mem16[0x12f656 / 2] = 0x4e93;
219}
trunk/src/mame/machine/segabb.c
r241777r241778
1#include "segabb.h"
2
3const device_type SEGA_LINDBERGH_BASEBOARD = &device_creator<sega_lindbergh_baseboard_device>;
4
5DEVICE_ADDRESS_MAP_START(map1, 32, sega_lindbergh_baseboard_device)
6ADDRESS_MAP_END
7
8DEVICE_ADDRESS_MAP_START(map2, 32, sega_lindbergh_baseboard_device)
9ADDRESS_MAP_END
10
11DEVICE_ADDRESS_MAP_START(map3, 32, sega_lindbergh_baseboard_device)
12ADDRESS_MAP_END
13
14sega_lindbergh_baseboard_device::sega_lindbergh_baseboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
15   : pci_device(mconfig, SEGA_LINDBERGH_BASEBOARD, "SEGA Lindbergh baseboard", tag, owner, clock, "sega_lindbergh_baseboard", __FILE__)
16{
17}
18
19void sega_lindbergh_baseboard_device::device_start()
20{
21   pci_device::device_start();
22   add_map(   128*1024, M_MEM, FUNC(sega_lindbergh_baseboard_device::map1));
23   add_map(  1024*1024, M_MEM, FUNC(sega_lindbergh_baseboard_device::map2));
24   add_map(2*1024*1024, M_MEM, FUNC(sega_lindbergh_baseboard_device::map3));   
25}
26
27void sega_lindbergh_baseboard_device::device_reset()
28{
29   pci_device::device_reset();
30}
trunk/src/mame/machine/segabb.h
r241777r241778
1// Lindbergh Sega baseboard
2
3#ifndef SEGABB_H
4#define SEGABB_H
5
6#include "machine/pci.h"
7
8#define MCFG_SEGA_LINDBERGH_BASEBOARD_ADD(_tag) \
9   MCFG_PCI_DEVICE_ADD(_tag, SEGA_LINDBERGH_BASEBOARD, 0x105718c1, 0x10, 0x068000, 0x11db067b)
10
11class sega_lindbergh_baseboard_device : public pci_device {
12public:
13   sega_lindbergh_baseboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
14
15protected:
16   virtual void device_start();
17   virtual void device_reset();
18
19private:
20   DECLARE_ADDRESS_MAP(map1, 32);
21   DECLARE_ADDRESS_MAP(map2, 32);
22   DECLARE_ADDRESS_MAP(map3, 32);
23};
24
25extern const device_type SEGA_LINDBERGH_BASEBOARD;
26
27#endif
trunk/src/mame/machine/slapstic.c
r241777r241778
180180
181181*************************************************************************/
182182
183
183#include "emu.h"
184#include "cpu/m6800/m6800.h"
184185#include "includes/slapstic.h"
186#include "cpu/m68000/m68000.h"
185187
186188
187extern const device_type SLAPSTIC = &device_creator<atari_slapstic_device>;
189/*************************************
190 *
191 *  Debugging
192 *
193 *************************************/
188194
189atari_slapstic_device::atari_slapstic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
190   : device_t(mconfig, SLAPSTIC, "Atari Slapstic", tag, owner, clock, "slapstic", __FILE__),
191   state(0),
192   current_bank(0),
193   access_68k(-1),
194   alt_bank(0),
195   bit_bank(0),
196   add_bank(0),
197   bit_xor(0)
198{
199   slapstic.bankstart = 0;
200   slapstic.bank[0] = slapstic.bank[1] = slapstic.bank[2] = slapstic.bank[3] = 0;
201   slapstic.alt1.mask = 0;
202   slapstic.alt1.value = 0;
203   slapstic.alt2.mask = 0;
204   slapstic.alt2.value = 0;
205   slapstic.alt3.mask = 0;
206   slapstic.alt3.value = 0;
207   slapstic.alt4.mask = 0;
208   slapstic.alt4.value = 0;
209   slapstic.altshift = 0;
210   slapstic.bit1.mask = 0;
211   slapstic.bit1.value = 0;
212   slapstic.bit2c0.mask = 0;
213   slapstic.bit2c0.value = 0;
214   slapstic.bit2s0.mask = 0;
215   slapstic.bit2s0.value = 0;
216   slapstic.bit2c1.mask = 0;
217   slapstic.bit2c1.value = 0;
218   slapstic.bit2s1.mask = 0;
219   slapstic.bit2s1.value = 0;
220   slapstic.bit3.mask = 0;
221   slapstic.bit3.value = 0;
222   slapstic.add1.mask = 0;
223   slapstic.add1.value = 0;
224   slapstic.add2.mask = 0;
225   slapstic.add2.value = 0;
226   slapstic.addplus1.mask = 0;
227   slapstic.addplus1.value = 0;
228   slapstic.addplus2.mask = 0;
229   slapstic.addplus2.value = 0;
230   slapstic.add3.mask = 0;
231   slapstic.add3.value = 0;
232}
195#define LOG_SLAPSTIC    (0)
233196
234197
235198
236void atari_slapstic_device::device_start()
199/*************************************
200 *
201 *  Structure of slapstic params
202 *
203 *************************************/
204
205struct mask_value
237206{
207   int mask, value;
208};
238209
239}
240210
241void atari_slapstic_device::device_reset()
211struct slapstic_data
242212{
213   int bankstart;
214   int bank[4];
243215
244}
216   struct mask_value alt1;
217   struct mask_value alt2;
218   struct mask_value alt3;
219   struct mask_value alt4;
220   int altshift;
245221
222   struct mask_value bit1;
223   struct mask_value bit2c0;
224   struct mask_value bit2s0;
225   struct mask_value bit2c1;
226   struct mask_value bit2s1;
227   struct mask_value bit3;
228
229   struct mask_value add1;
230   struct mask_value add2;
231   struct mask_value addplus1;
232   struct mask_value addplus2;
233   struct mask_value add3;
234};
235
236
237
246238/*************************************
247239 *
240 *  Shorthand
241 *
242 *************************************/
243
244#define UNKNOWN 0xffff
245#define NO_BITWISE          \
246   { UNKNOWN,UNKNOWN },    \
247   { UNKNOWN,UNKNOWN },    \
248   { UNKNOWN,UNKNOWN },    \
249   { UNKNOWN,UNKNOWN },    \
250   { UNKNOWN,UNKNOWN },    \
251   { UNKNOWN,UNKNOWN }
252#define NO_ADDITIVE         \
253   { UNKNOWN,UNKNOWN },    \
254   { UNKNOWN,UNKNOWN },    \
255   { UNKNOWN,UNKNOWN },    \
256   { UNKNOWN,UNKNOWN },    \
257   { UNKNOWN,UNKNOWN }
258
259#define MATCHES_MASK_VALUE(val, maskval)    (((val) & (maskval).mask) == (maskval).value)
260
261
262
263/*************************************
264 *
265 *  Constants
266 *
267 *************************************/
268
269enum
270{
271   DISABLED,
272   ENABLED,
273   ALTERNATE1,
274   ALTERNATE2,
275   ALTERNATE3,
276   BITWISE1,
277   BITWISE2,
278   BITWISE3,
279   ADDITIVE1,
280   ADDITIVE2,
281   ADDITIVE3
282};
283
284
285
286/*************************************
287 *
248288 *  Slapstic definitions
249289 *
250290 *************************************/
r241777r241778
739779
740780
741781
782/*************************************
783 *
784 *  Statics
785 *
786 *************************************/
742787
788static UINT8 state;
789static UINT8 current_bank;
790static UINT8 access_68k;
791
792static UINT8 alt_bank;
793static UINT8 bit_bank;
794static UINT8 add_bank;
795static UINT8 bit_xor;
796
797static struct slapstic_data slapstic;
798
799
800static void slapstic_log(running_machine &machine, offs_t offset);
801static FILE *slapsticlog;
802
803
743804/*************************************
744805 *
745806 *  Initialization
746807 *
747808 *************************************/
748809
749void atari_slapstic_device::slapstic_init(running_machine &machine, int chip)
810void slapstic_init(running_machine &machine, int chip)
750811{
751   if (access_68k == -1)
752   {
753      /* see if we're 68k or 6502/6809 based */
754      device_type cputype = machine.device(":maincpu")->type();
755      access_68k = (cputype == M68000 || cputype == M68010);
756   }
812   device_type cputype = machine.device("maincpu")->type();
757813
758814   /* only a small number of chips are known to exist */
759815   if (chip < 101 || chip > 118)
r241777r241778
767823   /* reset the chip */
768824   slapstic_reset();
769825
826   /* see if we're 68k or 6502/6809 based */
827   access_68k = (cputype == M68000 || cputype == M68010);
770828
771829   /* save state */
772   save_item(NAME(state));
773   save_item(NAME(current_bank));
774   save_item(NAME(alt_bank));
775   save_item(NAME(bit_bank));
776   save_item(NAME(add_bank));
777   save_item(NAME(bit_xor));
830   state_save_register_item(machine, "slapstic", NULL, 0, state);
831   state_save_register_item(machine, "slapstic", NULL, 0, current_bank);
832   state_save_register_item(machine, "slapstic", NULL, 0, alt_bank);
833   state_save_register_item(machine, "slapstic", NULL, 0, bit_bank);
834   state_save_register_item(machine, "slapstic", NULL, 0, add_bank);
835   state_save_register_item(machine, "slapstic", NULL, 0, bit_xor);
778836}
779837
780838
781void atari_slapstic_device::slapstic_reset(void)
839void slapstic_reset(void)
782840{
783841   /* reset the chip */
784842   state = DISABLED;
r241777r241778
795853 *
796854 *************************************/
797855
798int atari_slapstic_device::slapstic_bank(void)
856int slapstic_bank(void)
799857{
800858   return current_bank;
801859}
r241777r241778
808866 *
809867 *************************************/
810868
811int atari_slapstic_device::alt2_kludge(address_space &space, offs_t offset)
869static int alt2_kludge(address_space &space, offs_t offset)
812870{
813871   /* Of the 3 alternate addresses, only the middle one needs to actually hit
814872      in the slapstic region; the first and third ones can be anywhere in the
r241777r241778
855913 *
856914 *************************************/
857915
858int atari_slapstic_device::slapstic_tweak(address_space &space, offs_t offset)
916int slapstic_tweak(address_space &space, offs_t offset)
859917{
860918   /* reset is universal */
861919   if (offset == 0x0000)
r241777r241778
10791137 *
10801138 *************************************/
10811139
1082void atari_slapstic_device::slapstic_log(running_machine &machine, offs_t offset)
1140static void slapstic_log(running_machine &machine, offs_t offset)
10831141{
10841142   static attotime last_time;
10851143
trunk/src/mame/machine/stvprot.c
r241777r241778
572572*
573573*************************************/
574574
575// the naomi hookup of 315-5881 reads 16-bits at a time, here we seem to read 32?
576
577575READ32_MEMBER( stv_state::common_prot_r )
578576{
579577   UINT32 *ROM = (UINT32 *)space.machine().root_device().memregion("abus")->base();
r241777r241778
590588
591589         logerror("A-Bus control protection read at %06x with data = %08x Returning = %08x Would otherwise return = %08x\n",space.device().safe_pc(),m_abus_protkey, retdata, realret);
592590
593         //UINT16 res = m_cryptdevice->do_decrypt(base);
594
595591         m_ctrl_index += 4;
596592         return retdata;
597593
r241777r241778
606602}
607603
608604
609UINT16 stv_state::crypt_read_callback(UINT32 addr)
610{
611   const UINT8 *base = m_cart_reg[0]->base() + 2*addr;
612   return base[1] | (base[0] << 8);
613}
614605
606
615607WRITE32_MEMBER ( stv_state::common_prot_w )
616608{
617609   COMBINE_DATA(&m_a_bus[offset]);
r241777r241778
624616   else if(offset == 2)
625617   {
626618      COMBINE_DATA(&m_abus_prot_addr);
627
628      m_cryptdevice->set_addr_low(m_abus_prot_addr >> 16);
629      m_cryptdevice->set_addr_high(m_abus_prot_addr&0xffff);
630
631619   }
632620   else if(offset == 3)
633621   {
634622      COMBINE_DATA(&m_abus_protkey);
635
636      m_cryptdevice->set_subkey(m_abus_protkey>>16);
637
638
639623      int a_bus_vector;
640624      a_bus_vector = m_abus_prot_addr >> 16;
641625      a_bus_vector|= (m_abus_prot_addr & 0xffff) << 16;
r241777r241778
671655{
672656   install_common_protection();
673657   m_prot_readback = astrass_prot_read_callback;
674//   m_cryptdevice->set_key(0x00000000);
675658}
676659
677660void stv_state::install_ffreveng_protection()
trunk/src/mame/mame.lst
r241777r241778
17981798youjyudn        // (c) 1986 (Japan)
17991799
18001800vigilant        // (c) 1988 (World)
1801vigilantb      // (c) 1988 (World)
18021801vigilant1       // (c) 1988 (World)
18031802vigilantu       // (c) 1988 (US)
18041803vigilantu2      // (c) 1988 (US)
r241777r241778
27472746batriderja      // (c) 1998 Raizing/8ing
27482747batridert       // (c) 1998 Raizing/8ing
27492748bbakraid        // (c) 1999 8ing
2750bbakraidc       // (c) 1999 8ing
27512749bbakraidj       // (c) 1999 8ing
27522750bbakraidja      // (c) 1999 8ing
27532751
r241777r241778
46904688desertbr        // 1993.?? Desert Breaker (World, FD1094, decrypted)
46914689desertbrj       // 1992.10 Desert Breaker (Japan)
46924690pontoon
4693hamaway
46944691
46954692// System18 Bootlegs
46964693astormbl        // BOOTLEG
r241777r241778
93759372rocktris        // (c) 1994? Yun Sung
93769373magicbub        // (c) Yun Sung
93779374magicbuba       // (c) Yun Sung
9378magicbubb       // (c) Yun Sung
93799375shocking        // (c) 1997 Yun Sung
93809376shockingk       // (c) 1997 Yun Sung
93819377bombkick        // (c) 1998 Yun Sung
r241777r241778
97329728dw2v100x        //
97339729drgw2c          //
97349730drgw2j          //
9735drgw2hk         //
97369731drgw3           // (c) 1998 Dragon World 3
97379732drgw3105        //
97389733drgw3100        //
r241777r241778
98339828// IGS PGM2 Platform
98349829orleg2          // (c) 2007
98359830orleg2o         //
9836orleg2oa      //
98379831kov2nl          // (c) 2008
98389832kov2nlo         //
9839kov2nloa      //
98409833ddpdojh         //
98419834kov3            //
98429835
r241777r241778
1098410977peset001        // (c) 1987 IGT - International Game Technology
1098510978peset004        // (c) 1987 IGT - International Game Technology
1098610979peset038        // (c) 1987 IGT - International Game Technology
10987peivc006        // (c) 1987 IGT - International Game Technology
1098810980pepk1024        // (c) 1987 IGT - International Game Technology
1098910981pepp0002        // (c) 1987 IGT - International Game Technology
1099010982pepp0002a       // (c) 1987 IGT - International Game Technology
trunk/src/mame/mame.mak
r241777r241778
271271SOUNDS += MOS7360
272272#SOUNDS += ESQPUMP
273273#SOUNDS += VRC6
274SOUNDS += SB0400
275SOUNDS += AC97
276274
277275#-------------------------------------------------
278276# specify available video cores
r241777r241778
292290#VIDEOS += EF9340_1
293291#VIDEOS += EF9345
294292#VIDEOS += GF4500
295VIDEOS += GF6800GT
296293VIDEOS += EPIC12
297294VIDEOS += FIXFREQ
298295VIDEOS += H63484
r241777r241778
439436MACHINES += LDVP931
440437#MACHINES += LH5810
441438MACHINES += LINFLASH
442MACHINES += LPCI
443439#MACHINES += LSI53C810
444440#MACHINES += M68307
445441#MACHINES += M68340
r241777r241778
582578#BUSES += ADAMNET
583579#BUSES += APF
584580#BUSES += ARCADIA
585#BUSES += ASTROCADE
586581#BUSES += BML3
587582#BUSES += BW2
588583#BUSES += C64
r241777r241778
611606BUSES += ISA
612607#BUSES += ISBX
613608#BUSES += KC
614#BUSES += LPCI
615609#BUSES += MACPDS
616610#BUSES += MIDI
617611#BUSES += MEGADRIVE
r241777r241778
622616#BUSES += O2
623617#BUSES += ORICEXT
624618#BUSES += PCE
619#BUSES += PCI
625620#BUSES += PC_JOY
626621#BUSES += PC_KBD
627622#BUSES += PET
628623#BUSES += PLUS4
629#BUSES += PSX_CONTROLLER
630624#BUSES += QL
631625BUSES += RS232
632626#BUSES += S100
r241777r241778
637631#BUSES += SMS_CTRL
638632#BUSES += SMS_EXP
639633#BUSES += SNES
640#BUSES += SPC1000
641634#BUSES += TI99PEB
642635#BUSES += TVC
643636#BUSES += VBOY
r241777r241778
17011694   $(DRIVERS)/hikaru.o \
17021695   $(DRIVERS)/hshavoc.o \
17031696   $(DRIVERS)/kopunch.o $(VIDEO)/kopunch.o \
1704   $(DRIVERS)/lindbergh.o $(MACHINE)/segabb.o \
1697   $(DRIVERS)/lindbergh.o \
17051698   $(MACHINE)/megadriv.o \
17061699   $(DRIVERS)/megadrvb.o \
17071700   $(DRIVERS)/megaplay.o \
r241777r241778
17141707   $(DRIVERS)/naomi.o $(MACHINE)/dc.o $(VIDEO)/powervr2.o $(MACHINE)/naomi.o \
17151708   $(MACHINE)/naomig1.o $(MACHINE)/naomibd.o $(MACHINE)/naomirom.o $(MACHINE)/naomigd.o \
17161709   $(MACHINE)/naomicrypt.o $(MACHINE)/naomim1.o $(MACHINE)/naomim2.o $(MACHINE)/naomim4.o \
1717   $(MACHINE)/315-5881_crypt.o \
17181710   $(MACHINE)/awboard.o \
17191711   $(MACHINE)/mie.o $(MACHINE)/maple-dc.o $(MACHINE)/mapledev.o $(MACHINE)/dc-ctrl.o $(MACHINE)/jvs13551.o \
17201712   $(DRIVERS)/triforce.o \
r241777r241778
26582650
26592651$(DRIVERS)/grchamp.o:   $(LAYOUT)/grchamp.lh
26602652
2661$(DRIVERS)/harddriv.o:  $(LAYOUT)/racedrivpan.lh
2662
26632653$(DRIVERS)/highvdeo.o:  $(LAYOUT)/fashion.lh
26642654
26652655$(DRIVERS)/hankin.o:    $(LAYOUT)/hankin.lh
trunk/src/mame/video/atarisy2.c
r241777r241778
208208READ16_MEMBER( atarisy2_state::slapstic_r )
209209{
210210   int result = m_slapstic_base[offset];
211   m_slapstic->slapstic_tweak(space, offset);
211   slapstic_tweak(space, offset);
212212
213213   /* an extra tweak for the next opcode fetch */
214   m_videobank = m_slapstic->slapstic_tweak(space, 0x1234) * 0x1000;
214   m_videobank = slapstic_tweak(space, 0x1234) * 0x1000;
215215   return result;
216216}
217217
218218
219219WRITE16_MEMBER( atarisy2_state::slapstic_w )
220220{
221   m_slapstic->slapstic_tweak(space, offset);
221   slapstic_tweak(space, offset);
222222
223223   /* an extra tweak for the next opcode fetch */
224   m_videobank = m_slapstic->slapstic_tweak(space, 0x1234) * 0x1000;
224   m_videobank = slapstic_tweak(space, 0x1234) * 0x1000;
225225}
226226
227227
trunk/src/mame/video/harddriv.c
r241777r241778
3030 *
3131 *************************************/
3232
33void harddriv_state::init_video()
33VIDEO_START_MEMBER(harddriv_state,harddriv)
3434{
3535   UINT32 *destmask, mask;
3636   int i;
r241777r241778
161161
162162void harddriv_state::update_palette_bank(int newbank)
163163{
164   screen_device &scr = m_gsp->screen();
165
166   scr.update_partial(scr.vpos());
164   m_screen->update_partial(m_screen->vpos());
167165   m_gfx_palettebank = newbank;
168166}
169167
r241777r241778
216214
217215   COMBINE_DATA(&m_gsp_control_hi[offset]);
218216   newword = m_gsp_control_hi[offset];
219   screen_device &scr = m_gsp->screen();
220217
221218   switch (offset & 7)
222219   {
r241777r241778
226223
227224      case 0x01:
228225         data = data & (15 >> m_gsp_multisync);
229         scr.update_partial(scr.vpos() - 1);
226         m_screen->update_partial(m_screen->vpos() - 1);
230227         m_gfx_finescroll = data;
231228         break;
232229
r241777r241778
410407TMS340X0_SCANLINE_IND16_CB_MEMBER(harddriv_state::scanline_driver)
411408{
412409   UINT8 *vram_base = &m_gsp_vram[(params->rowaddr << 12) & m_vram_mask];
413   
414   if (!vram_base) return;
415   
416410   UINT16 *dest = &bitmap.pix16(scanline);
417411   int coladdr = (params->yoffset << 9) + ((params->coladdr & 0xff) << 4) - 15 + (m_gfx_finescroll & 0x0f);
418412   int x;
r241777r241778
428422TMS340X0_SCANLINE_IND16_CB_MEMBER(harddriv_state::scanline_multisync)
429423{
430424   UINT8 *vram_base = &m_gsp_vram[(params->rowaddr << 11) & m_vram_mask];
431
432   if (!vram_base) return;   
433   
434425   UINT16 *dest = &bitmap.pix16(scanline);
435426   int coladdr = (params->yoffset << 9) + ((params->coladdr & 0xff) << 3) - 7 + (m_gfx_finescroll & 0x07);
436427   int x;
trunk/src/mame/video/k007121.c
r241777r241778
77a single 64x32 one, or one of them can be moved to the side of screen, giving
88a high score display suitable for vertical games.
99The chip also generates clock and interrupt signals suitable for a 6809.
10It uses 0x2000 bytes of static RAM for the tilemaps and sprite lists, and two
1164kx4bit DRAMs, presumably as a double frame buffer. The maximum addressable
10It uses 0x2000 bytes of RAM for the tilemaps and sprites, and an additional
110x100 bytes, maybe for scroll RAM and line buffers. The maximum addressable
1212ROM is 0x80000 bytes (addressed 16 bits at a time). Tile and sprite data both
13come from the same ROM space. Like the 005885, external circuitry can cause
14tiles and sprites to be fetched from different ROMs (used by Haunted Castle).
15
13come from the same ROM space.
1614Two 256x4 lookup PROMs are also used to increase the color combinations.
1715All tilemap / sprite priority handling is done internally and the chip exports
18167 bits of color code, composed of 2 bits of palette bank, 1 bit indicating tile
r241777r241778
2927outputs:
3028- address lines for tilemap RAM (AX0-AX12)
3129- data lines for tilemap RAM (VO0-VO7)
32- address lines for the DRAMs (FA0-FA7)
33- control lines for the DRAMs (NWR0, NWR1, NRAS, NCAS, NOE)
34- data lines for the DRAMs (FD0-FD7)
30- address lines for the small RAM (FA0-FA7)
31- data lines for the small RAM (FD0-FD7)
3532- address lines for the gfx ROMs (R0-R17)
3633- address lines for the tile lookup PROMs (VCF0-VCF3, VCB0-VCB3)
3734- address lines for the sprite lookup PROMs (OCB0-OCB3, OCF0-OCF3)
trunk/src/mame/video/konamiic.txt
r241777r241778
211211It manages sprites and 32x32 or 64x32 tilemap (only Double Dribble uses the
21221264x32 one).
213213The chip also generates clock and interrupt signals suitable for a 6809.
214It uses 0x2000 bytes of static RAM for the tilemaps and sprite lists, and two
21564kx4bit DRAMs, presumably as a double frame buffer. The maximum addressable
214It uses 0x2000 bytes of RAM for the tilemaps and sprites, and an additional
2150x100 bytes, maybe for scroll RAM and line buffers. The maximum addressable
216216ROM is 0x20000 bytes (addressed 16 bits at a time). Tile and sprite data both
217217come from the same ROM space. Double Dribble and Jackal have external circuitry
218218to extend the limits and use separated addressing spaces for sprites and tiles.
r241777r241778
234234outputs:
235235- address lines for tilemap RAM (AX0-AX12)
236236- data lines for tilemap RAM (VO0-VO7)
237- address lines for the DRAMs (FA0-FA7)
238- control lines for the DRAMs (NWR0, NWR1, NRAS, NCAS, NFOE)
239- data lines for the DRAMs (FD0-FD7)
237- address lines for the small RAM (FA0-FA7)
238- data lines for the small RAM (FD0-FD7)
240239- address lines for the gfx ROMs (R0-R15)
241240- address lines for the tile lookup PROMs (VCF0-VCF3, VCB0-VCB3)
242241- address lines for the sprite lookup PROMs (OCB0-OCB3, OCF0-OCF3)
trunk/src/mame/video/n64.h
r241777r241778
5656#define MEM16_LIMIT 0x3fffff
5757#define MEM32_LIMIT 0x1fffff
5858
59#define RDP_RANGE_CHECK (1)
59#define RDP_RANGE_CHECK (0)
6060
6161#if RDP_RANGE_CHECK
6262#define CHECK8(in) if(rdp_range_check((in))) { printf("Check8: Address %08x out of range!\n", (in)); fflush(stdout); fatalerror("Address %08x out of range!\n", (in)); }
trunk/src/mame/video/rdpspn16.c
r241777r241778
572572   {
573573      if (x >= clipx1 && x < clipx2)
574574      {
575         if (object.MiscState.FBSize < 2 || object.MiscState.FBSize > 4)
576            fatalerror("unsupported FBSize %d\n", object.MiscState.FBSize);
577575         ((this)->*(_Fill[object.MiscState.FBSize - 2]))(fb_index + x, object);
578576      }
579577
trunk/src/mame/video/rdptpipe.c
r241777r241778
595595   userdata->m_precomp_s = nexts;
596596   userdata->m_precomp_t = nextt;
597597
598   INT32 lodclamp = (((*sst & 0x60000) > 0) | ((nextt & 0x60000) > 0)) || (((*sss & 0x60000) > 0) | ((nexts & 0x60000) > 0));
599
600   INT32 horstep = SIGN17(nexts & 0x1ffff) - SIGN17(*sss & 0x1ffff);
601   INT32 vertstep = SIGN17(nextt & 0x1ffff) - SIGN17(*sst & 0x1ffff);
602   if (horstep & 0x20000)
603   {
604      horstep = ~horstep & 0x1ffff;
605   }
606   if (vertstep & 0x20000)
607   {
608      vertstep = ~vertstep & 0x1ffff;
609   }
610
611   INT32 lod = (horstep >= vertstep) ? horstep : vertstep;
612
613598   int tempanded;
614599   if (*sss & 0x40000)
615600   {
r241777r241778
660645         *sst &= 0xffff;
661646      }
662647   }
663
664   if ((lod & 0x4000) || lodclamp)
665   {
666      lod = 0x7fff;
667   }
668   else if (lod < object.MiscState.MinLevel)
669   {
670      lod = object.MiscState.MinLevel;
671   }
672
673   bool magnify = (lod < 32);
674   INT32 l_tile = m_rdp->GetLog2((lod >> 5) & 0xff);
675   bool distant = ((lod & 0x6000) || (l_tile >= object.MiscState.MaxLevel));
676
677   userdata->LODFraction = ((lod << 3) >> l_tile) & 0xff;
678
679   if(!object.OtherModes.sharpen_tex_en && !object.OtherModes.detail_tex_en)
680   {
681      if (distant)
682      {
683         userdata->LODFraction = 0xff;
684      }
685      else if (magnify)
686      {
687         userdata->LODFraction = 0;
688      }
689   }
690
691   if(object.OtherModes.sharpen_tex_en && magnify)
692   {
693      userdata->LODFraction |= 0x100;
694   }
695648}
696649
697650void N64TexturePipeT::LOD2Cycle(INT32* sss, INT32* sst, INT32 s, INT32 t, INT32 w, INT32 dsinc, INT32 dtinc, INT32 dwinc, INT32 prim_tile, INT32* t1, INT32* t2, rdp_span_aux *userdata, const rdp_poly_state& object)
r241777r241778
808761
809762   if(object.OtherModes.sharpen_tex_en && magnify)
810763   {
811      userdata->LODFraction |= 0x100;
764      userdata->LODFraction = userdata->LODFraction | 0x100;
812765   }
813766
814767   if (object.OtherModes.tex_lod_en)
trunk/src/mame/video/rockrage.c
r241777r241778
44PALETTE_INIT_MEMBER(rockrage_state, rockrage)
55{
66   const UINT8 *color_prom = memregion("proms")->base();
7   int i;
78
8   for (int i = 0; i < 256*3; i++)
9   /* sprites */
10   for (i = 0x20; i < 0x40; i++)
11      palette.set_pen_indirect(i, i);
12
13   /* characters */
14   for (i = 0x40; i < 0x140; i++)
915   {
10      // layer0 uses colors 0x00-0x0f; layer1 uses 0x10-0x1f; sprites use 0x20-0x2f
11      UINT8 colorbase = (i / 256) * 16;
12      UINT8 ctabentry = (color_prom[i] & 0x0f) | colorbase;
13      palette.set_pen_indirect(i, ctabentry);
16      UINT8 ctabentry;
17
18      ctabentry = (color_prom[(i - 0x40) + 0x000] & 0x0f) | 0x00;
19      palette.set_pen_indirect(i + 0x000, ctabentry);
20
21      ctabentry = (color_prom[(i - 0x40) + 0x100] & 0x0f) | 0x10;
22      palette.set_pen_indirect(i + 0x100, ctabentry);
1423   }
1524}
1625
r241777r241778
4150{
4251   *code |= ((*color & 0x40) << 2) | ((*color & 0x80) << 1) * ((m_vreg & 0x03) << 1);
4352   *code = (*code << 2) | ((*color & 0x30) >> 4);
44   *color = 0 + (*color & 0x0f);
53   *color = 0;
4554}
4655
4756
trunk/src/mame/video/tumbleb.c
r241777r241778
304304{
305305   int offs, offs2;
306306
307   flip_screen_set(m_control_0[0] & 0x80);
307   m_flipscreen = m_control_0[0] & 0x80;
308   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
308309
309   if (flip_screen())
310   if (m_flipscreen)
310311      offs = 1;
311312   else
312313      offs = -1;
313314
314   if (flip_screen())
315   if (m_flipscreen)
315316      offs2 = -3;
316317   else
317318      offs2 = -5;
r241777r241778
325326{
326327   int offs, offs2;
327328
328   flip_screen_set(m_control_0[0] & 0x80);
329   m_flipscreen = m_control_0[0] & 0x80;
330   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
329331
330   if (flip_screen())
332   if (m_flipscreen)
331333      offs = 1;
332334   else
333335      offs = -1;
334336
335   if (flip_screen())
337   if (m_flipscreen)
336338      offs2 = -3;
337339   else
338340      offs2 = -5;
r241777r241778
345347{
346348   int offs, offs2;
347349
348   flip_screen_set(m_control_0[0] & 0x80);
350   m_flipscreen = m_control_0[0] & 0x80;
351   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
349352
350   if (flip_screen())
353   if (m_flipscreen)
351354      offs = 1;
352355   else
353356      offs = -1;
354357
355   if (flip_screen())
358   if (m_flipscreen)
356359      offs2 = -3;
357360   else
358361      offs2 = -5;
r241777r241778
365368{
366369   int offsx, offsy, offsx2;
367370
368   flip_screen_set(m_control_0[0] & 0x80);
371   m_flipscreen = m_control_0[0] & 0x80;
369372
370373   offsx = -1;
371374   offsy = 2;
r241777r241778
380383{
381384   int offs, offs2;
382385
383   flip_screen_set(m_control_0[0] & 0x80);
386   m_flipscreen = m_control_0[0] & 0x80;
387   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
384388
385389   /* not sure of this */
386   if (flip_screen())
390   if (m_flipscreen)
387391      offs = 1;
388392   else
389393      offs = 8;
390394
391395   /* not sure of this */
392   if (flip_screen())
396   if (m_flipscreen)
393397      offs2 = -3;
394398   else
395399      offs2 = 8;
r241777r241778
402406{
403407   int offs, offs2;
404408
405   flip_screen_set(m_control_0[0] & 0x80);
406
409   m_flipscreen = m_control_0[0] & 0x80;
410   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
407411   offs = -1;
408412   offs2 = -2;
409413
r241777r241778
416420{
417421   int offs, offs2;
418422
419   flip_screen_set(m_control_0[0] & 0x80);
420
423   m_flipscreen = m_control_0[0] & 0x80;
424   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
421425   offs = -1;
422426   offs2 = -5; // foreground scroll..
423427
r241777r241778
431435{
432436   int offs, offs2;
433437
434   flip_screen_set(m_control_0[0] & 0x80);
438   m_flipscreen = m_control_0[0] & 0x80;
439   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
435440
436   if (flip_screen())
441   if (m_flipscreen)
437442      offs = 1;
438443   else
439444      offs = -1;
440445
441   if (flip_screen())
446   if (m_flipscreen)
442447      offs2 = -3;
443448   else
444449      offs2 = -5;
r241777r241778
452457{
453458   int offs, offs2;
454459
455   flip_screen_set(m_control_0[0] & 0x80);
460   m_flipscreen = m_control_0[0] & 0x80;
461   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
456462
457   if (flip_screen())
463   if (m_flipscreen)
458464      offs = 1;
459465   else
460466      offs = -1;
461467
462   if (flip_screen())
468   if (m_flipscreen)
463469      offs2 = -3;
464470   else
465471      offs2 = -5;
trunk/src/mame/video/twin16.c
r241777r241778
490490      0     1    VRAM1
491491      1     0    Object
492492      1     1    Fix
493
494    Final Round uses a PROM (not dumped) instead of the PAL
495    and some discrete logic to combine some of the inputs.
496    Inputs to the PROM are:
497
498    A0 = V1C0 | V1C1 | V1C2 | V1C3
499    A1 = V2C0 | V2C1 | V2C2 | V2C3
500    A2 = OCO0 | OCO1 | OCO2 | OCO3
501    A3 = FIX0 | FIX1 | FIX2 | FIX3
502    A4 = ~(OCD0 & OCD1 & OCD2 & OCD3)
503    A5 = V2C6
504    A6 = PRI0
505    A7 = PRI1
506493*/
507494   screen.priority().fill(0, cliprect);
508495
trunk/src/mame/video/tx1.c
r241777r241778
14381438***************************************************************************/
14391439
14401440void tx1_state::buggyboy_get_roadpix(int screen, int ls161, UINT8 rva0_6, UINT8 sld, UINT32 *_rorev,
1441                           UINT8 *rc0, UINT8 *rc1, UINT8 *rc2, UINT8 *rc3)
1441                           UINT8 *rc0, UINT8 *rc1, UINT8 *rc2, UINT8 *rc3,
1442                           const UINT8 *rom, const UINT8 *prom0, const UINT8 *prom1, const UINT8 *prom2)
14421443{
14431444   /* Counter Q10-7 are added to 384 */
14441445   UINT16 ls283_159 = (ls161 & 0x780) + 128 + (256 * screen);
r241777r241778
14481449   UINT8 d0 = 0;
14491450   UINT8 d1 = 0;
14501451
1451   /* ROM/PROM lookup tables */
1452   const UINT8 *rom   = memregion("road")->base();
1453   const UINT8 *prom0 = rom + 0x4000;
1454   const UINT8 *prom1 = rom + 0x4200;
1455   const UINT8 *prom2 = rom + 0x4400;
1456
14571452   /* Latch road reverse bit */
14581453   *_rorev = !( (rom_en && rom_flip) || (!rom_en && (ls161 & 0x4000)) );
14591454
r241777r241778
15441539
15451540   /* ROM/PROM lookup tables */
15461541   const UINT8 *rcols = (UINT8*)(memregion("proms")->base() + 0x1500);
1547   const UINT8 *vprom   = memregion("road")->base() + 0x4600;
1542   const UINT8 *rom   = memregion("road")->base();
1543   const UINT8 *prom0 = rom + 0x4000;
1544   const UINT8 *prom1 = rom + 0x4200;
1545   const UINT8 *prom2 = rom + 0x4400;
1546   const UINT8 *vprom = rom + 0x4600;
15481547
15491548   /* Extract constant values */
15501549   tcmd     = ((vregs.scol & 0xc000) >> 12) | ((vregs.scol & 0x00c0) >> 6);
r241777r241778
16681667      /* Have we crossed a road gfx strip boundary? */
16691668      if (ls161 & 7)
16701669      {
1671         buggyboy_get_roadpix(0, ls161, rva0_6, sld, &_rorevls, &rc0[0], &rc1[0], &rc2[0], &rc3[0]);
1672         buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0[1], &rc1[1], &rc2[1], &rc3[1]);
1673         buggyboy_get_roadpix(2, ls161, rva0_6, sld, &_rorevrs, &rc0[2], &rc1[2], &rc2[2], &rc3[2]);
1670         buggyboy_get_roadpix(0, ls161, rva0_6, sld, &_rorevls, &rc0[0], &rc1[0], &rc2[0], &rc3[0], rom, prom0, prom1, prom2);
1671         buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0[1], &rc1[1], &rc2[1], &rc3[1], rom, prom0, prom1, prom2);
1672         buggyboy_get_roadpix(2, ls161, rva0_6, sld, &_rorevrs, &rc0[2], &rc1[2], &rc2[2], &rc3[2], rom, prom0, prom1, prom2);
16741673      }
16751674
16761675      /* We can evaluate some of the pixel logic outside of the x-loop */
r241777r241778
17501749         /* Load in a new road gfx strip? */
17511750         if (!(ls161 & 7))
17521751         {
1753            buggyboy_get_roadpix(0, ls161, rva0_6, sld, &_rorevls, &rc0[0], &rc1[0], &rc2[0], &rc3[0]);
1754            buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0[1], &rc1[1], &rc2[1], &rc3[1]);
1755            buggyboy_get_roadpix(2, ls161, rva0_6, sld, &_rorevrs, &rc0[2], &rc1[2], &rc2[2], &rc3[2]);
1752            buggyboy_get_roadpix(0, ls161, rva0_6, sld, &_rorevls, &rc0[0], &rc1[0], &rc2[0], &rc3[0], rom, prom0, prom1, prom2);
1753            buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0[1], &rc1[1], &rc2[1], &rc3[1], rom, prom0, prom1, prom2);
1754            buggyboy_get_roadpix(2, ls161, rva0_6, sld, &_rorevrs, &rc0[2], &rc1[2], &rc2[2], &rc3[2], rom, prom0, prom1, prom2);
17561755         }
17571756
17581757         /* Road camber/banking */
r241777r241778
21712170
21722171   /* ROM/PROM lookup tables */
21732172   const UINT8 *rcols = (UINT8*)(memregion("proms")->base() + 0x1500);
2174   const UINT8 *vprom = memregion("road")->base() + 0x4600;
2173   const UINT8 *rom   = memregion("road")->base();
2174   const UINT8 *prom0 = rom + 0x4000;
2175   const UINT8 *prom1 = rom + 0x4200;
2176   const UINT8 *prom2 = rom + 0x4400;
2177   const UINT8 *vprom = rom + 0x4600;
21752178
21762179   /* Extract constant values */
21772180   tcmd     = ((vregs.scol & 0xc000) >> 12) | ((vregs.scol & 0x00c0) >> 6);
r241777r241778
22932296
22942297      /* Have we crossed a road gfx strip boundary? */
22952298      if (ls161 & 7)
2296         buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0, &rc1, &rc2, &rc3);
2299         buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0, &rc1, &rc2, &rc3, rom, prom0, prom1, prom2);
22972300
22982301      for (x = 0; x < 256; ++x)
22992302      {
r241777r241778
23282331
23292332         /* Load in a new road gfx strip? */
23302333         if (!(ls161 & 7))
2331            buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0, &rc1, &rc2, &rc3);
2334            buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0, &rc1, &rc2, &rc3, rom, prom0, prom1, prom2);
23322335
23332336         /* Road camber */
23342337         if (vregs.bank_mode == 0)
trunk/src/mess/drivers/ace.c
r241777r241778
698698   MCFG_CASSETTE_ADD("cassette")
699699   MCFG_CASSETTE_FORMATS(ace_cassette_formats)
700700   MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED)
701   MCFG_CASSETTE_INTERFACE("jupace_cass")
702701
703702   MCFG_SNAPSHOT_ADD("snapshot", ace_state, ace, "ace", 1)
704703
r241777r241778
719718   MCFG_RAM_ADD(RAM_TAG)
720719   MCFG_RAM_DEFAULT_SIZE("1K")
721720   MCFG_RAM_EXTRA_OPTIONS("16K,32K,48K")
722
723   MCFG_SOFTWARE_LIST_ADD("cass_list", "jupace_cass")
724721MACHINE_CONFIG_END
725722
726723
trunk/src/mess/drivers/amstrad.c
r241777r241778
864864   MCFG_MC6845_OUT_DE_CB(WRITELINE(amstrad_state, amstrad_de_changed))
865865   MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(amstrad_state, amstrad_hsync_changed))
866866   MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(amstrad_state, amstrad_vsync_changed))
867   MCFG_MC6845_OUT_CUR_CB(DEVWRITELINE("exp", cpc_expansion_slot_device, cursor_w))
868867
869868   MCFG_VIDEO_START_OVERRIDE(amstrad_state,amstrad)
870869
trunk/src/mess/drivers/bebox.c
r241777r241778
1212
1313/* Components */
1414#include "video/pc_vga.h"
15#include "bus/lpci/cirrus.h"
15#include "bus/pci/cirrus.h"
1616#include "cpu/powerpc/ppc.h"
1717#include "sound/3812intf.h"
1818#include "machine/ins8250.h"
1919#include "machine/pic8259.h"
2020#include "machine/mc146818.h"
21#include "bus/lpci/pci.h"
21#include "bus/pci/pci.h"
2222#include "machine/am9517a.h"
2323#include "machine/pckeybrd.h"
2424#include "machine/idectrl.h"
25#include "bus/lpci/mpc105.h"
25#include "bus/pci/mpc105.h"
2626#include "machine/intelfsh.h"
2727#include "bus/scsi/scsi.h"
2828#include "machine/53c810.h"
trunk/src/mess/drivers/cgenie.c
r241777r241778
545545   MCFG_CASSETTE_ADD( "cassette" )
546546   MCFG_CASSETTE_FORMATS(cgenie_cassette_formats)
547547   MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED)
548   MCFG_CASSETTE_INTERFACE("cgenie_cass")
549548
550549   MCFG_DEVICE_ADD("wd179x", FD1793, 0) // TODO confirm type
551550   MCFG_WD17XX_DEFAULT_DRIVE4_TAGS
r241777r241778
558557   MCFG_GENERIC_EXTENSIONS("bin,rom")
559558   MCFG_GENERIC_LOAD(cgenie_state, cgenie_cart)
560559
561   /* software lists */
562560   MCFG_SOFTWARE_LIST_ADD("cart_list", "cgenie_cart")
563   MCFG_SOFTWARE_LIST_ADD("cass_list", "cgenie_cass")
564561
565562   /* internal ram */
566563   MCFG_RAM_ADD(RAM_TAG)
trunk/src/mess/drivers/dai.c
r241777r241778
224224   /* cassette */
225225   MCFG_CASSETTE_ADD( "cassette" )
226226   MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED)
227   MCFG_CASSETTE_INTERFACE("dai_cass")
228227
229228   /* tms5501 */
230229   MCFG_DEVICE_ADD("tms5501", TMS5501, 2000000)
r241777r241778
235234   /* internal ram */
236235   MCFG_RAM_ADD(RAM_TAG)
237236   MCFG_RAM_DEFAULT_SIZE("48K")
238
239   /* software lists */
240   MCFG_SOFTWARE_LIST_ADD("cass_list", "dai_cass")
241237MACHINE_CONFIG_END
242238
243239#define io_dai      io_NULL
trunk/src/mess/drivers/dmv.c
r241777r241778
2525#include "bus/dmv/k220.h"
2626#include "bus/dmv/k230.h"
2727#include "bus/dmv/k233.h"
28#include "bus/dmv/k803.h"
2928#include "bus/dmv/k806.h"
3029#include "bus/dmv/ram.h"
3130
r241777r241778
115114   DECLARE_READ8_MEMBER(exp_program_r);
116115   DECLARE_WRITE8_MEMBER(exp_program_w);
117116   DECLARE_WRITE_LINE_MEMBER(thold7_w);
118
119   void update_busint(int slot, int state);
120   DECLARE_WRITE_LINE_MEMBER(busint2_w)    { update_busint(0, state); }
121   DECLARE_WRITE_LINE_MEMBER(busint2a_w)   { update_busint(1, state); }
122   DECLARE_WRITE_LINE_MEMBER(busint3_w)    { update_busint(2, state); }
123   DECLARE_WRITE_LINE_MEMBER(busint4_w)    { update_busint(3, state); }
124   DECLARE_WRITE_LINE_MEMBER(busint5_w)    { update_busint(4, state); }
125   DECLARE_WRITE_LINE_MEMBER(busint6_w)    { update_busint(5, state); }
126   DECLARE_WRITE_LINE_MEMBER(busint7_w)    { update_busint(6, state); }
127   DECLARE_WRITE_LINE_MEMBER(busint7a_w)   { update_busint(7, state); }
128
117   DECLARE_WRITE_LINE_MEMBER(busint_w);
129118   DECLARE_FLOPPY_FORMATS( floppy_formats );
130119
131120   UINT8 program_read(address_space &space, int cas, offs_t offset);
r241777r241778
157146   int         m_dack3_line;
158147   int         m_sd_poll_state;
159148   int         m_floppy_motor;
160   int         m_busint[8];
161149};
162150
163151WRITE8_MEMBER(dmv_state::tc_set_w)
r241777r241778
341329
342330static SLOT_INTERFACE_START( dmv_floppies )
343331      SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
344      SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
345332SLOT_INTERFACE_END
346333
347334
r241777r241778
388375   }
389376}
390377
391void dmv_state::update_busint(int slot, int state)
378WRITE_LINE_MEMBER( dmv_state::busint_w )
392379{
393   m_busint[slot] = state;
394
395   int new_state = CLEAR_LINE;
396   for (int i=0; i<8; i++)
397      if (m_busint[i] != CLEAR_LINE)
398      {
399         new_state = ASSERT_LINE;
400         break;
401      }
402
403   m_slot7a->irq2_w(new_state);
404   m_slot7->irq2_w(new_state);
405   m_maincpu->set_input_line(0, new_state);
380   m_slot7a->irq2_w(state);
381   m_slot7->irq2_w(state);
406382}
407383
408384void dmv_state::program_write(address_space &space, int cas, offs_t offset, UINT8 data)
r241777r241778
529505   m_switch16 = 0;
530506   m_thold7 = 0;
531507   m_dma_hrq = 0;
532   memset(m_busint, 0, sizeof(m_busint));
533508
534509   update_halt_line();
535510}
r241777r241778
631606
632607static SLOT_INTERFACE_START(dmv_slot2_6)
633608   SLOT_INTERFACE("k233", DMV_K233)            // K233 16K Shared RAM
634   SLOT_INTERFACE("k803", DMV_K803)            // K803 RTC module
635609   SLOT_INTERFACE("k806", DMV_K806)            // K806 Mouse module
636610SLOT_INTERFACE_END
637611
r241777r241778
718692   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot1, NULL, false)
719693   MCFG_DEVICE_ADD("slot2", DMVCART_SLOT, 0)
720694   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false)
721   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint2_w))
722695   MCFG_DEVICE_ADD("slot2a", DMVCART_SLOT, 0)
723696   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2a, NULL, false)
724   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint2a_w))
725697   MCFG_DEVICE_ADD("slot3", DMVCART_SLOT, 0)
726698   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false)
727   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint3_w))
728699   MCFG_DEVICE_ADD("slot4", DMVCART_SLOT, 0)
729700   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false)
730   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint4_w))
731701   MCFG_DEVICE_ADD("slot5", DMVCART_SLOT, 0)
732702   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false)
733   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint5_w))
734703   MCFG_DEVICE_ADD("slot6", DMVCART_SLOT, 0)
735704   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false)
736   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint6_w))
737705
738706   MCFG_DEVICE_ADD("slot7", DMVCART_SLOT, 0)
739707   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot7, NULL, false)
740708   MCFG_DMVCART_SLOT_PROGRAM_READWRITE_CB(READ8(dmv_state, exp_program_r), WRITE8(dmv_state, exp_program_w))
741709   MCFG_DMVCART_SLOT_OUT_THOLD_CB(WRITELINE(dmv_state, thold7_w))
742   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint7_w))
710   MCFG_DMVCART_SLOT_OUT_IRQ_CB(WRITELINE(dmv_state, busint_w))
743711   MCFG_DEVICE_ADD("slot7a", DMVCART_SLOT, 0)
744712   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot7a, "k230", false)
745713   MCFG_DMVCART_SLOT_PROGRAM_READWRITE_CB(READ8(dmv_state, exp_program_r), WRITE8(dmv_state, exp_program_w))
746714   MCFG_DMVCART_SLOT_OUT_THOLD_CB(WRITELINE(dmv_state, thold7_w))
747   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint7a_w))
715   MCFG_DMVCART_SLOT_OUT_IRQ_CB(WRITELINE(dmv_state, busint_w))
748716
749717   MCFG_SOFTWARE_LIST_ADD("flop_list", "dmv")
750718
trunk/src/mess/drivers/dvk_ksm.c
r241777r241778
1/***************************************************************************
2
3    KSM (Kontroller Simvolnogo Monitora = Character Display Controller),
4    a single-board replacement for standalone 15IE-00-013 terminal (ie15.c)
5    in later-model DVK desktops.
6
7    MPI (Q-Bus clone) board, consumes only power from the bus.
8    Interfaces with MS7004 (DEC LK201 workalike) keyboard and monochrome CRT.
9
10    Hardware revisions (XXX verify everything):
11    - 7.102.076 -- has DIP switches, SRAM at 0x2000, model name "KSM"
12    - 7.102.228 -- no DIP switches, SRAM at 0x2100, model name "KSM-01"
13
14    Emulates a VT52 without copier (ESC Z response is ESC / M), with
15    Hold Screen mode and Graphics character set (but it is unique and
16    mapped to a different range -- 100..137).
17
18    F4 + 0..9 on numeric keypad = setup mode.  0 changes serial port speed,
19    1..9 toggle one of mode bits:
20
21   1   XON/XOFF   0: Off  1: On
22   2   Character set   0: N0/N1  2: N2
23   3   Auto LF      0: Off  1: On
24   4   Auto repeat   0: On  1: Off
25   5   Auto wraparound   0: On  1: Off
26   6   Interpret controls   0: Interpret  1: Display
27   7   Parity check   0: Off  1: On
28   8   Parity bits   0: None  1: Even
29   9   Stop bits
30
31    N0/N1 charset has regular ASCII in C0 page and Cyrillic in C1 page,
32    switching between them via SI/SO.   N2 charset has uppercase Cyrillic
33    chars in place of lowercase Latin ones.
34
35    F1 toggles Hold Screen mode.
36    F9 resets terminal (clears memory).
37    F20 toggles on/off-line mode.
38
39    Terminfo description would be something like
40
41ksm|DVK KSM,
42   am, bw, dch1=\EP, ich1=\EQ,
43   acsc=hRiTjXkClJmFnNqUtEuPv\174wKxW.M\054Q\055S\053\136~_{@}Z0\177,
44   use=vt52,
45
46    To do:
47    - make Caps Lock work
48    - verify if pixel stretching is done by hw
49    - verify details of hw revisions
50    - baud rate selection (missing feature in bitbanger)
51
52****************************************************************************/
53
54#include "emu.h"
55
56#include "bus/rs232/rs232.h"
57#include "cpu/i8085/i8085.h"
58#include "machine/clock.h"
59#include "machine/i8251.h"
60#include "machine/i8255.h"
61#include "machine/ms7004.h"
62#include "machine/pic8259.h"
63
64#define SCREEN_PAGE (80*48)
65
66#define KSM_TOTAL_HORZ 1000
67#define KSM_DISP_HORZ  800
68#define KSM_HORZ_START 200
69
70#define KSM_TOTAL_VERT 28*11
71#define KSM_DISP_VERT  25*11
72#define KSM_VERT_START 2*11
73
74#define KSM_STATUSLINE_TOTAL 11
75#define KSM_STATUSLINE_VRAM 0xF8B0
76
77#define VERBOSE_DBG 0       /* general debug messages */
78
79#define DBG_LOG(N,M,A) \
80   do { \
81      if(VERBOSE_DBG>=N) \
82      { \
83         if( M ) \
84            logerror("%11.6f at %s: %-24s",machine().time().as_double(),machine().describe_context(),(char*)M ); \
85         logerror A; \
86      } \
87   } while (0)
88
89
90class ksm_state : public driver_device
91{
92public:
93   ksm_state(const machine_config &mconfig, device_type type, const char *tag) :
94      driver_device(mconfig, type, tag),
95      m_p_videoram(*this, "videoram"),
96      m_maincpu(*this, "maincpu"),
97      m_pic8259(*this, "pic8259"),
98      m_i8251line(*this, "i8251line"),
99      m_rs232(*this, "rs232"),
100      m_i8251kbd(*this, "i8251kbd"),
101      m_ms7004(*this, "ms7004"),
102      m_screen(*this, "screen")
103   { }
104
105   virtual void machine_reset();
106   virtual void video_start();
107   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
108   TIMER_DEVICE_CALLBACK_MEMBER( scanline_callback );
109
110   DECLARE_WRITE_LINE_MEMBER(write_keyboard_clock);
111   DECLARE_WRITE_LINE_MEMBER(write_line_clock);
112
113   DECLARE_WRITE8_MEMBER(ksm_ppi_porta_w);
114   DECLARE_WRITE8_MEMBER(ksm_ppi_portc_w);
115
116private:
117   UINT32 draw_scanline(UINT16 *p, UINT16 offset, UINT8 scanline);
118   rectangle m_tmpclip;
119   bitmap_ind16 m_tmpbmp;
120
121   const UINT8 *m_p_chargen;
122   struct {
123      UINT8 line;
124      UINT16 ptr;
125   } m_video;
126
127protected:
128   required_shared_ptr<UINT8> m_p_videoram;
129   required_device<cpu_device> m_maincpu;
130   required_device<pic8259_device>  m_pic8259;
131   required_device<i8251_device> m_i8251line;
132   required_device<rs232_port_device> m_rs232;
133   required_device<i8251_device> m_i8251kbd;
134   required_device<ms7004_device> m_ms7004;
135   required_device<screen_device> m_screen;
136};
137
138static ADDRESS_MAP_START( ksm_mem, AS_PROGRAM, 8, ksm_state )
139   ADDRESS_MAP_UNMAP_HIGH
140   AM_RANGE (0x0000, 0x0fff) AM_ROM
141   AM_RANGE (0x2000, 0x21ff) AM_RAM
142   AM_RANGE (0xc000, 0xffff) AM_RAM AM_SHARE("videoram")
143ADDRESS_MAP_END
144
145static ADDRESS_MAP_START( ksm_io, AS_IO, 8, ksm_state )
146   ADDRESS_MAP_UNMAP_HIGH
147   AM_RANGE (0x5e, 0x5f) AM_DEVREADWRITE("pic8259", pic8259_device, read, write)
148   AM_RANGE (0x6e, 0x6e) AM_DEVREADWRITE("i8251kbd", i8251_device, data_r, data_w)
149   AM_RANGE (0x6f, 0x6f) AM_DEVREADWRITE("i8251kbd", i8251_device, status_r, control_w)
150   AM_RANGE (0x76, 0x76) AM_DEVREADWRITE("i8251line", i8251_device, data_r, data_w)
151   AM_RANGE (0x77, 0x77) AM_DEVREADWRITE("i8251line", i8251_device, status_r, control_w)
152   AM_RANGE (0x78, 0x7b) AM_DEVREADWRITE("ppi8255", i8255_device, read, write)
153ADDRESS_MAP_END
154
155/* Input ports */
156static INPUT_PORTS_START( ksm )
157   PORT_START("SA1")
158   PORT_DIPNAME(0x01, 0x01, "Stop bits")
159   PORT_DIPSETTING(0x00, "2 bits")
160   PORT_DIPSETTING(0x01, "1 bit")
161   PORT_DIPNAME(0x02, 0x00, "Parity bits")
162   PORT_DIPSETTING(0x00, "0 bits")
163   PORT_DIPSETTING(0x02, "1 bit")
164   PORT_DIPNAME(0x04, 0x00, "Parity check")
165   PORT_DIPSETTING(0x00, "Off")
166   PORT_DIPSETTING(0x04, "On")
167   PORT_DIPNAME(0x08, 0x00, "Interpret controls")
168   PORT_DIPSETTING(0x00, "Interpret")
169   PORT_DIPSETTING(0x08, "Display")
170   PORT_DIPNAME(0x10, 0x00, "Auto wraparound")
171   PORT_DIPSETTING(0x00, "On")
172   PORT_DIPSETTING(0x10, "Off")
173   PORT_DIPNAME(0x20, 0x00, "Auto repeat")
174   PORT_DIPSETTING(0x00, "On")
175   PORT_DIPSETTING(0x20, "Off")
176   PORT_DIPNAME(0x40, 0x00, "Auto CR/LF")
177   PORT_DIPSETTING(0x00, "Off")
178   PORT_DIPSETTING(0x40, "On")
179   PORT_DIPNAME(0x80, 0x00, "Character set")
180   PORT_DIPSETTING(0x00, "KOI-8 N0/N1")
181   PORT_DIPSETTING(0x80, "KOI-8 N2")
182   PORT_START("SA2")
183   PORT_DIPNAME(0x01, 0x00, "XON/XOFF")
184   PORT_DIPSETTING(0x00, "Off")
185   PORT_DIPSETTING(0x01, "On")
186   PORT_DIPNAME(0x0E, 0x00, "Baud rate")
187   PORT_DIPSETTING(0x00, "9600")
188   PORT_DIPSETTING(0x02, "4800")
189   PORT_DIPSETTING(0x04, "2400")
190   PORT_DIPSETTING(0x06, "1200")
191   PORT_DIPSETTING(0x08, "600")
192   PORT_DIPSETTING(0x0A, "300")
193   PORT_DIPSETTING(0x0C, "150")
194   PORT_DIPSETTING(0x0E, "75")
195INPUT_PORTS_END
196
197void ksm_state::machine_reset()
198{
199   memset(&m_video, 0, sizeof(m_video));
200}
201
202void ksm_state::video_start()
203{
204   m_p_chargen = memregion("chargen")->base();
205
206   m_tmpclip = rectangle(0, KSM_DISP_HORZ-1, 0, KSM_DISP_VERT-1);
207   m_tmpbmp.allocate(KSM_DISP_HORZ, KSM_DISP_VERT);
208}
209
210WRITE8_MEMBER(ksm_state::ksm_ppi_porta_w)
211{
212   DBG_LOG(1,"PPI port A", ("line %d\n", data));
213   m_video.line = data;
214}
215
216WRITE8_MEMBER(ksm_state::ksm_ppi_portc_w)
217{
218   DBG_LOG(1,"PPI port C", ("blink %d speed %d\n", BIT(data, 7), ((data >> 4) & 7) ));
219}
220
221WRITE_LINE_MEMBER(ksm_state::write_keyboard_clock)
222{
223//   KSM never sends data to keyboard
224//   m_i8251kbd->write_txc(state);
225   m_i8251kbd->write_rxc(state);
226}
227
228WRITE_LINE_MEMBER(ksm_state::write_line_clock)
229{
230   m_i8251line->write_txc(state);
231   m_i8251line->write_rxc(state);
232}
233
234/*
235    Raster size is 28x11 scan lines.
236    XXX VBlank is active for 2 topmost on-screen rows and 1 at the bottom.
237
238    Usable raster is 800 x 275 pixels (80 x 25 characters).  24 lines are
239    available to the user and 25th (topmost) line is the status line.
240    Status line displays current serial port speed and 9 setup bits.
241
242    No character attributes are available, but in 'display controls' mode
243    control characters stored in memory are shown as blinking chars.
244
245    Character cell is 10 x 11; character generator provides 7 x 8 of that.
246    3 extra horizontal pixels are always XXX blank.  Blinking XXX cursor may be
247    displayed on 3 extra scan lines.
248*/
249
250UINT32 ksm_state::draw_scanline(UINT16 *p, UINT16 offset, UINT8 scanline)
251{
252   UINT8 gfx, fg, bg, ra, blink;
253   UINT16 x, chr;
254
255   bg = 0; fg = 1; ra = scanline % 8;
256   blink = (m_screen->frame_number() % 10) > 4;
257   if (scanline > 7) {
258      offset -= 0x2000;
259   }
260
261   for (x = offset; x < offset + 80; x++)
262   {
263      chr = m_p_videoram[x] << 3;
264      gfx = m_p_chargen[chr | ra];
265
266      if ((scanline > 7 && blink) || ((chr < (0x20<<3)) && !blink))
267         gfx = 0;
268
269      *p++ = BIT(gfx, 6) ? fg : bg;
270      *p++ = BIT(gfx, 5) ? fg : bg;
271      *p++ = BIT(gfx, 4) ? fg : bg;
272      *p++ = BIT(gfx, 3) ? fg : bg;
273      *p++ = BIT(gfx, 2) ? fg : bg;
274      *p++ = BIT(gfx, 1) ? fg : bg;
275      *p++ = BIT(gfx, 0) ? fg : bg;
276      *p++ = bg;
277      *p++ = bg;
278      *p++ = bg;
279   }
280   return 0;
281}
282
283TIMER_DEVICE_CALLBACK_MEMBER(ksm_state::scanline_callback)
284{
285   UINT16 y = m_screen->vpos();
286   UINT16 offset;
287   
288   DBG_LOG(2,"scanline_cb",
289      ("addr %02x frame %" I64FMT "d x %.4d y %.3d row %.2d\n",
290      m_video.line, m_screen->frame_number(), m_screen->hpos(), y, y%11));
291
292   if (y < KSM_VERT_START) return;
293   y -= KSM_VERT_START;
294   if (y >= KSM_DISP_VERT) return;
295
296   if (y < KSM_STATUSLINE_TOTAL) {
297      offset = KSM_STATUSLINE_VRAM - 0xC000;
298   } else {
299      offset = 0x2000 + 0x30 + (((m_video.line + y/11 - 1) % 48) << 7);
300   }
301
302   draw_scanline(&m_tmpbmp.pix16(y), offset, y%11);
303}
304
305UINT32 ksm_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
306{
307   copybitmap(bitmap, m_tmpbmp, 0, 0, KSM_HORZ_START, KSM_VERT_START, cliprect);
308   return 0;
309}
310
311
312/* F4 Character Displayer */
313static const gfx_layout ksm_charlayout =
314{
315   7, 8,                   /* 7x8 pixels in 10x11 cell */
316   256,                    /* 256 characters */
317   1,                      /* 1 bits per pixel */
318   { 0 },                  /* no bitplanes */
319   /* x offsets */
320   { 1, 2, 3, 4, 5, 6, 7 },
321   /* y offsets */
322   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
323   8*8                 /* every char takes 8 bytes */
324};
325
326static GFXDECODE_START( ksm )
327   GFXDECODE_ENTRY("chargen", 0x0000, ksm_charlayout, 0, 1)
328GFXDECODE_END
329
330static MACHINE_CONFIG_START( ksm, ksm_state )
331   MCFG_CPU_ADD("maincpu", I8080, XTAL_15_4MHz/10)
332   MCFG_CPU_PROGRAM_MAP(ksm_mem)
333   MCFG_CPU_IO_MAP(ksm_io)
334   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
335
336   MCFG_TIMER_DRIVER_ADD_PERIODIC("scantimer", ksm_state, scanline_callback, attotime::from_hz(50*28*11))
337   MCFG_TIMER_START_DELAY(attotime::from_hz(XTAL_15_4MHz/KSM_HORZ_START))
338
339   MCFG_SCREEN_ADD("screen", RASTER)
340   MCFG_SCREEN_UPDATE_DRIVER(ksm_state, screen_update)
341   MCFG_SCREEN_RAW_PARAMS(XTAL_15_4MHz, KSM_TOTAL_HORZ, KSM_HORZ_START,
342      KSM_HORZ_START+KSM_DISP_HORZ, KSM_TOTAL_VERT, KSM_VERT_START,
343      KSM_VERT_START+KSM_DISP_VERT);
344
345   MCFG_SCREEN_PALETTE("palette")
346
347   MCFG_GFXDECODE_ADD("gfxdecode", "palette", ksm)
348   MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette")
349
350   MCFG_PIC8259_ADD( "pic8259", INPUTLINE("maincpu", 0), VCC, NULL )
351
352   MCFG_DEVICE_ADD("ppi8255", I8255, 0)
353   MCFG_I8255_OUT_PORTA_CB(WRITE8(ksm_state, ksm_ppi_porta_w))
354   MCFG_I8255_IN_PORTB_CB(IOPORT("SA1"))
355   MCFG_I8255_IN_PORTC_CB(IOPORT("SA2"))
356   MCFG_I8255_OUT_PORTC_CB(WRITE8(ksm_state, ksm_ppi_portc_w))
357
358   // serial connection to host
359   MCFG_DEVICE_ADD( "i8251line", I8251, 0)
360   MCFG_I8251_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd))
361   MCFG_I8251_DTR_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
362   MCFG_I8251_RTS_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_rts))
363   MCFG_I8251_RXRDY_HANDLER(DEVWRITELINE("pic8259", pic8259_device, ir3_w))
364
365   MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "null_modem")
366   MCFG_RS232_RXD_HANDLER(DEVWRITELINE("i8251line", i8251_device, write_rxd))
367   MCFG_RS232_CTS_HANDLER(DEVWRITELINE("i8251line", i8251_device, write_cts))
368   MCFG_RS232_DSR_HANDLER(DEVWRITELINE("i8251line", i8251_device, write_dsr))
369
370   MCFG_DEVICE_ADD("line_clock", CLOCK, 9600*16) // 8251 is set to /16 on the clock input
371   MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(ksm_state, write_line_clock))
372
373   // serial connection to MS7004 keyboard
374   MCFG_DEVICE_ADD( "i8251kbd", I8251, 0)
375   MCFG_I8251_RXRDY_HANDLER(DEVWRITELINE("pic8259", pic8259_device, ir1_w))
376
377   MCFG_DEVICE_ADD("ms7004", MS7004, 0)
378   MCFG_MS7004_TX_HANDLER(DEVWRITELINE("i8251kbd", i8251_device, write_rxd))
379
380   // baud rate is supposed to be 4800 but keyboard is slightly faster
381   MCFG_DEVICE_ADD("keyboard_clock", CLOCK, 4960*16)
382   MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(ksm_state, write_keyboard_clock))
383MACHINE_CONFIG_END
384
385
386/*
387   Assumes that SRAM is at 0x2000, which is where technical manual puts it.
388   Chargen has 1 missing pixel in 'G' character.
389*/
390ROM_START( dvk_ksm )
391   ROM_REGION(0x1000, "maincpu", ROMREGION_ERASE00)
392   ROM_LOAD( "ksm_04_rom0_d32.bin", 0x0000, 0x0800, CRC(6ad62715) SHA1(20f8f95119bc7fc6e0f16c67864e339a86edb44d))
393   ROM_LOAD( "ksm_05_rom1_d33.bin", 0x0800, 0x0800, CRC(5b29bcd2) SHA1(1f4f82c2f88f1e8615ec02076559dc606497e654))
394
395   ROM_REGION(0x0800, "chargen", ROMREGION_ERASE00)
396   ROM_LOAD("ksm_03_cg_d31.bin", 0x0000, 0x0800, CRC(98853aa7) SHA1(09b8e1b5b10a00c0b0ae7e36ad1328113d31230a))
397ROM_END
398
399/*
400   Assumes that SRAM is at 0x2100, otherwise identical.
401   Chargen has no missing pixels in 'G' character.
402*/
403ROM_START( dvk_ksm01 )
404   ROM_REGION(0x1000, "maincpu", ROMREGION_ERASE00)
405   ROM_LOAD( "ksm_04_rom0_d32.bin", 0x0000, 0x0800, CRC(5276dc9a) SHA1(dd41dfb4cb3f1cf22d96d95f1ff6a27fe4eb9a38))
406   ROM_LOAD( "ksm_05_rom1_d33.bin", 0x0800, 0x0800, CRC(5b29bcd2) SHA1(1f4f82c2f88f1e8615ec02076559dc606497e654))
407
408   ROM_REGION(0x0800, "chargen", ROMREGION_ERASE00)
409   ROM_LOAD("ksm_03_cg_d31.bin", 0x0000, 0x0800, CRC(98853aa7) SHA1(c7871a96f135db05c3c8d718fbdf1728e22e72b7))
410ROM_END
411
412/* Driver */
413
414/*    YEAR  NAME      PARENT  COMPAT   MACHINE    INPUT    INIT                      COMPANY     FULLNAME       FLAGS */
415COMP( 1986, dvk_ksm,  0,      0,       ksm,       ksm,     driver_device,     0,     "USSR",     "DVK KSM",     0)
416COMP( 198?, dvk_ksm01,0  ,    0,       ksm,       ksm,     driver_device,     0,     "USSR",     "DVK KSM-01",  0)
trunk/src/mess/drivers/gmaster.c
r241777r241778
2828   DECLARE_WRITE8_MEMBER(gmaster_port_w);
2929   DECLARE_DRIVER_INIT(gmaster) { memset(&m_video, 0, sizeof(m_video)); memset(m_ram, 0, sizeof(m_ram)); }
3030   UINT32 screen_update_gmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
31   INTERRUPT_GEN_MEMBER(gmaster_interrupt);
3132
3233private:
3334   virtual void machine_start();
r241777r241778
277278}
278279
279280
281INTERRUPT_GEN_MEMBER(gmaster_state::gmaster_interrupt)
282{
283   m_maincpu->set_input_line(UPD7810_INTFE1, ASSERT_LINE);
284}
285
280286static MACHINE_CONFIG_START( gmaster, gmaster_state )
281287   MCFG_CPU_ADD("maincpu", UPD7810, XTAL_12MHz/2/*?*/)  // upd78c11 in the unit
282288   MCFG_CPU_PROGRAM_MAP(gmaster_mem)
283289   MCFG_CPU_IO_MAP( gmaster_io)
290   MCFG_CPU_VBLANK_INT_DRIVER("screen", gmaster_state,  gmaster_interrupt)
284291
285292   MCFG_SCREEN_ADD("screen", LCD)
286293   MCFG_SCREEN_REFRESH_RATE(60)
trunk/src/mess/drivers/lviv.c
r241777r241778
486486ROM_END
487487
488488/*    YEAR  NAME    PARENT  COMPAT  MACHINE INPUT   INIT    COMPANY         FULLNAME    FLAGS */
489COMP( 1989, lviv,   0,      0,      lviv,   lviv, driver_device,   0,      "V. I. Lenin",  "PK-01 Lviv" ,    0 )
489COMP( 1989, lviv,   0,      0,      lviv,   lviv, driver_device,   0,      "V. I. Lenin",  "Lviv" ,    0 )
trunk/src/mess/drivers/m5.c
r241777r241778
603603   MCFG_CASSETTE_ADD("cassette")
604604   MCFG_CASSETTE_FORMATS(sordm5_cassette_formats)
605605   MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY)
606   MCFG_CASSETTE_INTERFACE("m5_cass")
607606
608607   MCFG_DEVICE_ADD(I8255A_TAG, I8255, 0)
609608   MCFG_I8255_IN_PORTA_CB(READ8(m5_state, ppi_pa_r))
r241777r241778
622621   //MCFG_GENERIC_MANDATORY
623622
624623   // software lists
625   MCFG_SOFTWARE_LIST_ADD("cart_list", "m5_cart")
626   MCFG_SOFTWARE_LIST_ADD("cass_list", "m5_cass")
624   MCFG_SOFTWARE_LIST_ADD("cart_list", "m5")
627625
628626   // internal ram
629627   MCFG_RAM_ADD(RAM_TAG)
trunk/src/mess/drivers/mc1502.c
r241777r241778
7676//  DBG_LOG(2,"mc1502_ppi_portb_w",("( %02X )\n", data));
7777   m_ppi_portb = data;
7878   m_pit8253->write_gate2(BIT(data, 0));
79   mc1502_speaker_set_spkrdata(BIT(data, 1));
79//  mc1502_speaker_set_spkrdata(BIT(data, 1));
8080   m_centronics->write_strobe(BIT(data, 2));
8181   m_centronics->write_autofd(BIT(data, 3));
8282   m_centronics->write_init(BIT(data, 4));
r241777r241778
163163WRITE_LINE_MEMBER(mc1502_state::mc1502_pit8253_out2_changed)
164164{
165165   m_pit_out2 = state;
166   m_speaker->level_w(m_spkrdata & m_pit_out2);
166//  mc1502_speaker_set_input( state );
167167   m_cassette->output(state ? 1 : -1);
168168}
169169
170WRITE_LINE_MEMBER(mc1502_state::mc1502_speaker_set_spkrdata)
171{
172   m_spkrdata = state ? 1 : 0;
173   m_speaker->level_w(m_spkrdata & m_pit_out2);
174}
175
176170DRIVER_INIT_MEMBER( mc1502_state, mc1502 )
177171{
178172   address_space &program = m_maincpu->space(AS_PROGRAM);
r241777r241778
203197MACHINE_RESET_MEMBER( mc1502_state, mc1502 )
204198{
205199   DBG_LOG(0,"init",("machine_reset()\n"));
206
207   m_spkrdata = 0;
208   m_pit_out2 = 1;
209   m_ppi_portb = 0;
210   m_ppi_portc = 0;
211   m_speaker->level_w(0);
212200}
213201
214202/*
r241777r241778
336324MACHINE_CONFIG_END
337325
338326
339/*
340        Apparently there was a hardware revision with built-in floppy
341        controller mapped to alternate set of ports; v531 and v533
342        support this revision. v533 is possibly not an original BIOS, it
343        supports autoboot which none of others do. v521h is a version
344        with support for 3rd party hard disk controller (not emulated).
345        v51 is designed for a different keyboard layout (JCUKEN, not
346        QWERTY).
347*/
348327ROM_START( mc1502 )
349328   ROM_REGION16_LE(0x100000,"maincpu", 0)
350329
351330   ROM_DEFAULT_BIOS("v52")
352   ROM_SYSTEM_BIOS(0, "v50", "v5.0 10/05/89")
331   ROM_SYSTEM_BIOS(0, "v50", "v5.0")
353332   ROMX_LOAD( "monitor_5_0.rom",  0xfc000, 0x4000, CRC(9e97c6a0) SHA1(16a304e8de69ec4d8b92acda6bf28454c361a24f),ROM_BIOS(1))
354   ROM_SYSTEM_BIOS(1, "v52", "v5.2 22/03/91")
333   ROM_SYSTEM_BIOS(1, "v52", "v5.2")
355334   ROMX_LOAD( "monitor_5_2.rom",  0xfc000, 0x4000, CRC(0e65491e) SHA1(8a4d556473b5e0e59b05fab77c79c29f4d562412),ROM_BIOS(2))
356   ROM_SYSTEM_BIOS(2, "v521", "v5.21 12/10/92")
357   ROMX_LOAD( "monitor_5_21.rom", 0xfc000, 0x4000, CRC(28c8f653) SHA1(04b0b09e0b86d9648a83352cc1590eb8963833e0),ROM_BIOS(3))
358   ROM_SYSTEM_BIOS(3, "v531", "v5.31 12/10/92")
359   ROMX_LOAD( "monitor_5_31.rom", 0xfc000, 0x4000, CRC(a48295d5) SHA1(6f38977c22f9cc6c2bc6f6e53edc4048ca6b6721),ROM_BIOS(4))
360   ROM_SYSTEM_BIOS(4, "v533", "v5.33 01/08/93")
361   ROMX_LOAD( "0_(cbc0).bin", 0xfc000, 0x2000, CRC(9a55bc4f) SHA1(81da44eec2e52cf04b1fc7053502270f51270590),ROM_BIOS(5))
362   ROMX_LOAD( "1_(dfe2).bin", 0xfe000, 0x2000, CRC(8dec077a) SHA1(d6f6d7cc2183abc77fbd9cd59132de5766f7c458),ROM_BIOS(5))
363
364   // 5.21 + 3rd party HDC support. fails checksum test so marked BAD_DUMP.
365   ROM_SYSTEM_BIOS(5, "v521h", "v5.21h 22/09/93")
366   ROMX_LOAD( "mshbios0.pgm", 0xfc000, 0x2000, BAD_DUMP CRC(be447261) SHA1(b93c597c17dfa4b678f72c20a3f7119b73e6ba1c),ROM_BIOS(6))
367   ROMX_LOAD( "mshbios1.pgm", 0xfe000, 0x2000, BAD_DUMP CRC(89e2eaf2) SHA1(37d6b225b5e35574fdac81219589407d925225be),ROM_BIOS(6))
368
369   // 5.3
370   ROM_SYSTEM_BIOS(6, "v53", "v5.3 10/11/91")
371   ROMX_LOAD( "1502~3b0.pgm", 0xfc000, 0x2000, CRC(dc148763) SHA1(7a5e66438007b2de328ac680614f9c4ff60f6a75),ROM_BIOS(7))
372   ROMX_LOAD( "1502~3b1.pgm", 0xfe000, 0x2000, CRC(17fc2af2) SHA1(a060d7b7302dfa639025f025106b50412cf26953),ROM_BIOS(7))
373   // 5.1 -- JCUKEN keyboard
374   ROM_SYSTEM_BIOS(7, "v51", "v5.1 10/12/90")
375   ROMX_LOAD( "ms1502b0.pgm", 0xfc000, 0x2000, CRC(92fcc29a) SHA1(930a4cffcd6ec6110dd9a18bd389b78f0ccb110a),ROM_BIOS(8))
376   ROMX_LOAD( "ms1502b1.pgm", 0xfe000, 0x2000, CRC(fe355a58) SHA1(b4ef7775045c6f2095e2b487fe19824986a4892c),ROM_BIOS(8))
377   // 5.31
378   ROM_SYSTEM_BIOS(8, "v531_92", "v5.31 12/10/92")
379   ROMX_LOAD( "ms531b0.pgm", 0xfc000, 0x2000, CRC(d97157d1) SHA1(cb1a1e0e2d9a0fcc78f9b09bfb4814d408ee4fae),ROM_BIOS(9))
380   ROMX_LOAD( "ms531b1.pgm", 0xfe000, 0x2000, CRC(b1368e1a) SHA1(286496d25dc0ac2d8fe1802caffc6c37b236d105),ROM_BIOS(9))
381   // 5.2
382   ROM_SYSTEM_BIOS(9, "v52_91", "v5.2 10/11/91")
383   ROMX_LOAD( "msv5~2b0.pgm", 0xfc000, 0x2000, CRC(f7f370e9) SHA1(e069a35005581a02856853b57dd511ab8e10054b),ROM_BIOS(10))
384   ROMX_LOAD( "msv5~2b1.pgm", 0xfe000, 0x2000, CRC(d50e1c43) SHA1(22724dec0052ee9e52f44f5914f2f5f3fae14612),ROM_BIOS(10))
385
386   ROM_REGION(0x2000,"gfx1", ROMREGION_ERASE00)
387   ROM_LOAD( "symgen.rom", 0x0000, 0x2000, CRC(b2747a52) SHA1(6766d275467672436e91ac2997ac6b77700eba1e))
335   ROM_SYSTEM_BIOS(2, "v531", "v5.31")
336   ROMX_LOAD( "monitor_5_31.rom", 0xfc000, 0x4000, CRC(a48295d5) SHA1(6f38977c22f9cc6c2bc6f6e53edc4048ca6b6721),ROM_BIOS(3))
337   ROM_SYSTEM_BIOS(3, "v533", "v5.33")
338   ROMX_LOAD( "0_(cbc0).bin", 0xfc000, 0x2000, CRC(9a55bc4f) SHA1(81da44eec2e52cf04b1fc7053502270f51270590),ROM_BIOS(4))
339   ROMX_LOAD( "1_(dfe2).bin", 0xfe000, 0x2000, CRC(8dec077a) SHA1(d6f6d7cc2183abc77fbd9cd59132de5766f7c458),ROM_BIOS(4))
388340ROM_END
389341
390/*
391        Predecessor of MC1502, same keyboard attachment but
392        different video subsystem (not emulated).
393*/
394342ROM_START( pk88 )
395343   ROM_REGION16_LE(0x100000,"maincpu", 0)
396344
r241777r241778
410358
411359/*     YEAR     NAME        PARENT      COMPAT  MACHINE     INPUT       INIT                COMPANY       FULLNAME */
412360COMP ( 1989,    mc1502,     ibm5150,    0,      mc1502,     mc1502,     mc1502_state, mc1502,   "NPO Microprocessor", "Elektronika MC-1502", 0)
413COMP ( 1988,    pk88,       ibm5150,    0,      pk88,       mc1502,     mc1502_state, mc1502,   "NPO Microprocessor", "Elektronika PK-88", GAME_NOT_WORKING | GAME_NO_SOUND)
361COMP ( 1990,    pk88,       ibm5150,    0,      pk88,       mc1502,     mc1502_state, mc1502,   "NPO Microprocessor", "Elektronika PK-88", GAME_NOT_WORKING | GAME_NO_SOUND)
trunk/src/mess/drivers/merlin.c
r241777r241778
1/***************************************************************************
1/*
22
3  Parker Bros Merlin handheld computer game
4  * TMS1100NLL MP3404A-N2 (has internal ROM)
5 
6  To start a game, press NEW GAME, followed by a number:
7  1: Tic-Tac-Toe
8  2: Music Machine
9  3: Echo
10  4: Blackjack 13
11  5: Magic Square
12  6: Mindbender
13 
14  Refer to the official manual for more information on the games.
15 
16 
17  Other handhelds assumed to be on similar hardware:
18  - Dr. Smith - by Tomy, released in Japan (basically a white version of Merlin,
19    let's assume for now that the ROM contents is identical)
20  - Master Merlin
21 
22  Another sequel, called Split Second, looks like different hardware.
3    Parker Bros Merlin handheld computer game
234
5*/
246
25  TODO:
26  - accurate speaker levels (tone pitch sounds good though)
27  - is the rom dump good?
28
29***************************************************************************/
30
317#include "emu.h"
328#include "cpu/tms0980/tms0980.h"
339#include "sound/speaker.h"
3410
11/* Layout */
3512#include "merlin.lh"
3613
37// master clock is a single stage RC oscillator: R=33K, C=100pf,
38// according to the TMS 1000 series data manual this is around 350kHz
39#define MERLIN_RC_CLOCK (350000)
4014
41
4215class merlin_state : public driver_device
4316{
4417public:
4518   merlin_state(const machine_config &mconfig, device_type type, const char *tag)
4619      : driver_device(mconfig, type, tag),
47      m_maincpu(*this, "maincpu"),
48      m_button_matrix(*this, "O"),
49      m_speaker(*this, "speaker")
50   { }
20         m_speaker(*this, "speaker") ,
21      m_maincpu(*this, "maincpu") { }
5122
23   virtual void machine_start();
24
25   required_device<speaker_sound_device> m_speaker;
26
5227   DECLARE_READ8_MEMBER(read_k);
5328   DECLARE_WRITE16_MEMBER(write_o);
5429   DECLARE_WRITE16_MEMBER(write_r);
5530
56   virtual void machine_start();
57
5831protected:
32   UINT16  m_o;
33   UINT16  m_r;
5934   required_device<cpu_device> m_maincpu;
60   required_ioport_array<4> m_button_matrix;
61   required_device<speaker_sound_device> m_speaker;
62
63   UINT16 m_o;
6435};
6536
6637
67/***************************************************************************
38#define LOG 0
6839
69  I/O
7040
71***************************************************************************/
41static INPUT_PORTS_START( merlin )
42   PORT_START("O0")
43   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_CODE(KEYCODE_0)     PORT_NAME("R0")  // R0
44   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_CODE(KEYCODE_1)     PORT_NAME("R1")  // R1
45   PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_CODE(KEYCODE_3)     PORT_NAME("R3")  // R3
46   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_CODE(KEYCODE_2)     PORT_NAME("R2")  // R2
7247
73/* The keypad is a 4*4 matrix, connected like so:
48   PORT_START("O1")
49   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_CODE(KEYCODE_4)     PORT_NAME("R4")  // R4
50   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_CODE(KEYCODE_5)     PORT_NAME("R5")  // R5
51   PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON8) PORT_CODE(KEYCODE_7)     PORT_NAME("R7")  // R7
52   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_CODE(KEYCODE_6)     PORT_NAME("R6")  // R6
7453
54   PORT_START("O2")
55   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON9) PORT_CODE(KEYCODE_8)     PORT_NAME("R8")  // R8
56   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON10) PORT_CODE(KEYCODE_9)     PORT_NAME("R9")  // R9
57   PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON13) PORT_CODE(KEYCODE_S)     PORT_NAME("Same Game")  // SG - same game
58   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON11) PORT_CODE(KEYCODE_MINUS) PORT_NAME("R10")  // R10
59
60   PORT_START("O3")
61   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
62   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON15) PORT_CODE(KEYCODE_C)     PORT_NAME("Comp Turn")  // Comp Turn
63   PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON14) PORT_CODE(KEYCODE_H)     PORT_NAME("Hit Me")  // Hit me
64   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON12) PORT_CODE(KEYCODE_N)     PORT_NAME("New Game")  // NG - new game
65
66INPUT_PORTS_END
67
68
69/*
70The keypad is a 4*4 matrix, connected like so:
71
7572       +----+  +----+  +----+  +----+
7673O0 o---| R0 |--| R1 |--| R2 |--| R3 |
7774       +----+  +----+  +----+  +----+
r241777r241778
9188          o       o       o       o
9289         K1      K2      K8      K4
9390
94SG = same game, CT = comp turn, NG = new game, HM = hit me */
91SG = same game, CT = comp turn, NG = new game, HM = hit me
92*/
9593
9694READ8_MEMBER(merlin_state::read_k)
9795{
98   UINT8 k = 0;
99   
100   // read selected button rows
101   for (int i = 0; i < 4; i++)
102      if (m_o & (1 << i))
103         k |= m_button_matrix[i]->read();
96   UINT8 data = 0;
10497
105   return k;
106}
98   if (LOG)
99      logerror( "read_k\n" );
107100
108WRITE16_MEMBER(merlin_state::write_o)
109{
110   /* The speaker is connected to O4 through O6.  The 3 outputs are paralleled for
111   increased current driving capability.  They are passed thru a 220 ohm resistor
112   and then to the speaker, which has the other side grounded.  The software then
113   toggles these lines to make sounds and noises. (There is no audio generator
114   other than toggling it with a software delay between to make tones). */
115   static const int count[8] = { 0, 1, 1, 2, 1, 2, 2, 3 };
116   m_speaker->level_w(count[data >> 4 & 7]);
101   if ( m_o & 0x01 )
102   {
103      data |= ioport("O0")->read();
104   }
117105
118   // O0-O3: input mux
119   // O7: N/C
120   m_o = data;
121}
106   if ( m_o & 0x02 )
107   {
108      data |= ioport("O1")->read();
109   }
122110
123WRITE16_MEMBER(merlin_state::write_r)
124{
125   /* LEDs:
111   if ( m_o & 0x04 )
112   {
113      data |= ioport("O2")->read();
114   }
126115
127        R0
128   R1   R2   R3
129   R4   R5   R6
130   R7   R8   R9
131        R10
132   */
133   for (int i = 0; i < 11; i++)
134      output_set_lamp_value(i, data >> i & 1);
116   if ( m_o & 0x08 )
117   {
118      data |= ioport("O3")->read();
119   }
120
121   return data;
135122}
136123
137124
125/*
126The speaker is connected to O4 through O6.  The 3 outputs are paralleled for
127increased current driving capability.  They are passed thru a 220 ohm resistor
128and then to the speaker, which has the other side grounded.  The software then
129toggles these lines to make sounds and noises. (There is no audio generator
130other than toggling it with a software delay between to make tones).
131*/
138132
139/***************************************************************************
133WRITE16_MEMBER(merlin_state::write_o)
134{
135   if (LOG)
136      logerror( "write_o: write %02x\n", data );
140137
141  Inputs
138   m_o = data;
142139
143***************************************************************************/
140   m_speaker->level_w(m_o & 0x70);
141}
144142
145static INPUT_PORTS_START( merlin )
146   PORT_START("O.0")
147   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME("Button R0")
148   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("Button R1")
149   PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("Button R3")
150   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Button R2")
151143
152   PORT_START("O.1")
153   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Button R4")
154   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Button R5")
155   PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON8) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Button R7")
156   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Button R6")
144/*
157145
158   PORT_START("O.2")
159   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON9) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Button R8")
160   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON10) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Button R9")
161   PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON13) PORT_CODE(KEYCODE_S) PORT_NAME("Same Game")
162   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON11) PORT_CODE(KEYCODE_MINUS) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("Button R10")
146  LEDs:
163147
164   PORT_START("O.3")
165   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
166   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON15) PORT_CODE(KEYCODE_C) PORT_NAME("Comp Turn")
167   PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON14) PORT_CODE(KEYCODE_H) PORT_NAME("Hit Me")
168   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON12) PORT_CODE(KEYCODE_N) PORT_NAME("New Game")
169INPUT_PORTS_END
148      R0
149 R1   R2   R3
150 R4   R5   R6
151 R7   R8   R9
152      R10
170153
154When that particular R output is high, that LED is on.
155*/
171156
157WRITE16_MEMBER(merlin_state::write_r)
158{
159   if (LOG)
160      logerror( "write_r: write %04x\n", data );
172161
173/***************************************************************************
162   m_r = data;
174163
175  Machine Config
164   output_set_value( "led_0",  BIT( m_r,  0 ) );
165   output_set_value( "led_1",  BIT( m_r,  1 ) );
166   output_set_value( "led_2",  BIT( m_r,  2 ) );
167   output_set_value( "led_3",  BIT( m_r,  3 ) );
168   output_set_value( "led_4",  BIT( m_r,  4 ) );
169   output_set_value( "led_5",  BIT( m_r,  5 ) );
170   output_set_value( "led_6",  BIT( m_r,  6 ) );
171   output_set_value( "led_7",  BIT( m_r,  7 ) );
172   output_set_value( "led_8",  BIT( m_r,  8 ) );
173   output_set_value( "led_9",  BIT( m_r,  9 ) );
174   output_set_value( "led_10", BIT( m_r, 10 ) );
175}
176176
177***************************************************************************/
178177
179178void merlin_state::machine_start()
180179{
181   m_o = 0;
182180   save_item(NAME(m_o));
181   save_item(NAME(m_r));
183182}
184183
185184
r241777r241778
192191   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
193192};
194193
195static const INT16 speaker_levels[] = { 0, 32767, 0, 32767 }; // unknown too, due to output_pla being unknown
196194
197
198195static MACHINE_CONFIG_START( merlin, merlin_state )
196   MCFG_CPU_ADD( "maincpu", TMS1100, 500000 )  /* Clock may be wrong */
197   MCFG_TMS1XXX_OUTPUT_PLA( merlin_output_pla )
198   MCFG_TMS1XXX_READ_K( READ8( merlin_state, read_k ) )
199   MCFG_TMS1XXX_WRITE_O( WRITE16( merlin_state, write_o ) )
200   MCFG_TMS1XXX_WRITE_R( WRITE16( merlin_state, write_r ) )
199201
200   /* basic machine hardware */
201   MCFG_CPU_ADD( "maincpu", TMS1100, MERLIN_RC_CLOCK )
202   MCFG_TMS1XXX_OUTPUT_PLA(merlin_output_pla)
203   MCFG_TMS1XXX_READ_K(READ8( merlin_state, read_k))
204   MCFG_TMS1XXX_WRITE_O(WRITE16( merlin_state, write_o))
205   MCFG_TMS1XXX_WRITE_R(WRITE16( merlin_state, write_r))
206
207202   MCFG_DEFAULT_LAYOUT(layout_merlin)
208203
209   /* no video! */
210
211   /* sound hardware */
212204   MCFG_SPEAKER_STANDARD_MONO("mono")
213205   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
214   MCFG_SPEAKER_LEVELS(4, speaker_levels)
215206   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
216207MACHINE_CONFIG_END
217208
218209
219
220/***************************************************************************
221
222  Game driver(s)
223
224***************************************************************************/
225
226210ROM_START( merlin )
227211   ROM_REGION( 0x800, "maincpu", 0 )
228212   // This rom needs verification, that's why it is marked as a bad dump
r241777r241778
232216   ROM_LOAD( "mp3404", 0x0000, 0x800, BAD_DUMP CRC(7515a75d) SHA1(76ca3605d3fde1df62f79b9bb1f534c2a2ae0229) )
233217ROM_END
234218
219/***************************************************************************
235220
236CONS( 1978, merlin, 0, 0, merlin, merlin, driver_device, 0, "Parker Brothers", "Merlin", GAME_SUPPORTS_SAVE )
221  Game driver(s)
222
223***************************************************************************/
224
225/*    YEAR  NAME        PARENT  COMPAT  MACHINE     INPUT   INIT    COMPANY            FULLNAME      FLAGS */
226CONS( 1978, merlin,     0,      0,      merlin,     merlin, driver_device,  0,      "Parker Brothers", "Merlin", 0 )
trunk/src/mess/drivers/pasogo.c
r241777r241778
688688   m_u73_q2 = 0;
689689   m_out1 = 2; // initial state of pit output is undefined
690690   m_pc_spkrdata = 0;
691   m_pit_out2 = 1;
691   m_pit_out2 = 0;
692692   m_dma_channel = -1;
693693   m_cur_eop = false;
694694}
trunk/src/mess/drivers/pc1512.c
r241777r241778
11311131   m_nmi_enable = 0;
11321132   m_toggle = 0;
11331133   m_kb_bits = 0;
1134   m_pit2 = 1;
11351134
11361135   m_lpen = 0;
11371136   m_blink = 0;
trunk/src/mess/drivers/pc9801.c
r241777r241778
591591   DECLARE_READ8_MEMBER(pc9801_mouse_r);
592592   DECLARE_WRITE8_MEMBER(pc9801_mouse_w);
593593   DECLARE_WRITE8_MEMBER(pc9801rs_mouse_freq_w);
594   inline UINT8 m_pc9801rs_grcg_r(UINT32 offset,int vbank,int vrambank);
595   inline UINT8 m_pc9801rs_grcg_r(UINT32 offset,int vbank) { return m_pc9801rs_grcg_r(offset, vbank, m_vram_bank); }
596   inline void m_pc9801rs_grcg_w(UINT32 offset,int vbank,int vrambank,UINT8 data);
597   inline void m_pc9801rs_grcg_w(UINT32 offset,int vbank,UINT8 data) { m_pc9801rs_grcg_w(offset, vbank, m_vram_bank, data); }
594   inline UINT8 m_pc9801rs_grcg_r(UINT32 offset,int vbank);
595   inline void m_pc9801rs_grcg_w(UINT32 offset,int vbank,UINT8 data);
598596   DECLARE_CUSTOM_INPUT_MEMBER(system_type_r);
599597   DECLARE_READ8_MEMBER(pc9801ux_gvram_r);
600598   DECLARE_WRITE8_MEMBER(pc9801ux_gvram_w);
601599   DECLARE_READ8_MEMBER(pc9801ux_gvram0_r);
602600   DECLARE_WRITE8_MEMBER(pc9801ux_gvram0_w);
603   DECLARE_READ8_MEMBER(upd7220_grcg_r);
604   DECLARE_WRITE8_MEMBER(upd7220_grcg_w);
605601   UINT32 pc9801_286_a20(bool state);
606602
607603   DECLARE_READ8_MEMBER(ide_hack_r);
r241777r241778
754750   TIMER_DEVICE_CALLBACK_MEMBER( mouse_irq_cb );
755751
756752   void pc9801_fdc_2hd_update_ready(floppy_image_device *, int);
757   inline UINT32 m_calc_grcg_addr(int i,UINT32 offset,int vrambank);
753   inline UINT32 m_calc_grcg_addr(int i,UINT32 offset);
758754
759755   DECLARE_DRIVER_INIT(pc9801_kanji);
760756   inline void set_dma_channel(int channel, int state);
r241777r241778
16491645   m_video_ram_2[offset+0x08000+m_vram_bank*0x20000] = data;
16501646}
16511647
1652inline UINT32 pc9801_state::m_calc_grcg_addr(int i,UINT32 offset,int vrambank)
1648inline UINT32 pc9801_state::m_calc_grcg_addr(int i,UINT32 offset)
16531649{
1654   return (offset) + (((i+1)*0x8000) & 0x1ffff) + (vrambank*0x20000);
1650   return (offset) + (((i+1)*0x8000) & 0x1ffff) + (m_vram_bank*0x20000);
16551651}
16561652
1657inline UINT8 pc9801_state::m_pc9801rs_grcg_r(UINT32 offset,int vbank,int vrambank)
1653inline UINT8 pc9801_state::m_pc9801rs_grcg_r(UINT32 offset,int vbank)
16581654{
1659   UINT8 res = 0;
1655   UINT8 res;
16601656
1661   if(!(m_grcg.mode & 0x80))
1662      res = m_video_ram_2[offset+vbank*0x8000+vrambank*0x20000];
1663   else if(!(m_grcg.mode & 0x40))
1657   if((m_grcg.mode & 0x80) == 0 || (m_grcg.mode & 0x40))
1658      res = m_video_ram_2[offset+vbank*0x8000+m_vram_bank*0x20000];
1659   else
16641660   {
16651661      int i;
16661662
r241777r241778
16681664      for(i=0;i<4;i++)
16691665      {
16701666         if((m_grcg.mode & (1 << i)) == 0)
1671            res |= (m_video_ram_2[m_calc_grcg_addr(i,offset,vrambank)] ^ m_grcg.tile[i]);
1667            res |= (m_video_ram_2[m_calc_grcg_addr(i,offset)] ^ m_grcg.tile[i]);
16721668      }
16731669
16741670      res ^= 0xff;
r241777r241778
16771673   return res;
16781674}
16791675
1680inline void pc9801_state::m_pc9801rs_grcg_w(UINT32 offset,int vbank,int vrambank,UINT8 data)
1676inline void pc9801_state::m_pc9801rs_grcg_w(UINT32 offset,int vbank,UINT8 data)
16811677{
16821678   if((m_grcg.mode & 0x80) == 0)
1683      m_video_ram_2[offset+vbank*0x8000+vrambank*0x20000] = data;
1679      m_video_ram_2[offset+vbank*0x8000+m_vram_bank*0x20000] = data;
16841680   else
16851681   {
16861682      int i;
r241777r241778
16911687         {
16921688            if((m_grcg.mode & (1 << i)) == 0)
16931689            {
1694               m_video_ram_2[m_calc_grcg_addr(i,offset,vrambank)] &= ~data;
1695               m_video_ram_2[m_calc_grcg_addr(i,offset,vrambank)] |= m_grcg.tile[i] & data;
1690               m_video_ram_2[m_calc_grcg_addr(i,offset)] &= ~data;
1691               m_video_ram_2[m_calc_grcg_addr(i,offset)] |= m_grcg.tile[i] & data;
16961692            }
16971693         }
16981694      }
r241777r241778
17021698         {
17031699            if((m_grcg.mode & (1 << i)) == 0)
17041700            {
1705               m_video_ram_2[m_calc_grcg_addr(i,offset,vrambank)] = m_grcg.tile[i];
1701               m_video_ram_2[m_calc_grcg_addr(i,offset)] = m_grcg.tile[i];
17061702            }
17071703         }
17081704      }
17091705   }
17101706}
17111707
1712READ8_MEMBER(pc9801_state::upd7220_grcg_r)
1713{
1714   return m_pc9801rs_grcg_r(offset & 0x7fff, (offset >> 15) & 3, offset >> 17);
1715}
17161708
1717WRITE8_MEMBER(pc9801_state::upd7220_grcg_w)
1718{
1719   m_pc9801rs_grcg_w(offset & 0x7fff, (offset >> 15) & 3, offset >> 17, data);
1720}
1721
17221709READ8_MEMBER(pc9801_state::pc9801_mouse_r)
17231710{
17241711   if((offset & 1) == 0)
r241777r241778
27892776   AM_RANGE(0x00000, 0x3ffff) AM_RAM AM_SHARE("video_ram_2")
27902777ADDRESS_MAP_END
27912778
2792static ADDRESS_MAP_START( upd7220_grcg_2_map, AS_0, 8, pc9801_state )
2793   AM_RANGE(0x00000, 0x3ffff) AM_READWRITE(upd7220_grcg_r, upd7220_grcg_w) AM_SHARE("video_ram_2")
2794ADDRESS_MAP_END
27952779
27962780CUSTOM_INPUT_MEMBER(pc9801_state::system_type_r)
27972781{
r241777r241778
33653349   {
33663350      address_space& space = m_maincpu->space(AS_PROGRAM);
33673351      membank("wram")->set_base(m_ram->pointer());
3368      if(m_ram_size)
3369      {
3370         space.install_read_bank(0x100000,  0x100000 + m_ram_size - 1, "ext_wram");
3371         space.install_write_bank(0x100000,  0x100000 + m_ram_size - 1, "ext_wram");
3372         membank("ext_wram")->set_base(m_ram->pointer() + 0xa0000);
3373      }
3352      space.install_read_bank(0x100000,  0x100000 + m_ram_size - 1, "ext_wram");
3353      space.install_write_bank(0x100000,  0x100000 + m_ram_size - 1, "ext_wram");
3354      membank("ext_wram")->set_base(m_ram->pointer() + 0xa0000);
33743355   }
33753356
33763357   m_ide_rom = memregion("ide")->base();
r241777r241778
37463727   MCFG_FRAGMENT_ADD(pc9801_keyboard)
37473728   MCFG_FRAGMENT_ADD(pc9801_mouse)
37483729   MCFG_FRAGMENT_ADD(pc9801_ide)
3749   MCFG_UPD4990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL)
3730   MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL)
37503731   MCFG_DEVICE_ADD(UPD8251_TAG, I8251, 0)
37513732
3752   MCFG_UPD765A_ADD("upd765_2hd", true, true)
3733   MCFG_UPD765A_ADD("upd765_2hd", false, true)
37533734   MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(pc9801_state, pc9801rs_fdc_irq))
37543735   MCFG_UPD765_DRQ_CALLBACK(WRITELINE(pc9801_state, pc9801rs_fdc_drq))
37553736   //"upd765_2dd"
r241777r241778
37773758   MCFG_UPD7220_VSYNC_CALLBACK(DEVWRITELINE("upd7220_btm", upd7220_device, ext_sync_w))
37783759
37793760   MCFG_DEVICE_ADD("upd7220_btm", UPD7220, 5000000/2)
3780   MCFG_DEVICE_ADDRESS_MAP(AS_0, upd7220_grcg_2_map)
3761   MCFG_DEVICE_ADDRESS_MAP(AS_0, upd7220_2_map)
37813762   MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(pc9801_state, hgdc_display_pixels)
37823763
37833764   MCFG_PALETTE_ADD("palette", 16+16)
r241777r241778
38633844   MCFG_FRAGMENT_ADD(pc9801_keyboard)
38643845   MCFG_FRAGMENT_ADD(pc9801_mouse)
38653846   MCFG_FRAGMENT_ADD(pc9801_ide)
3866   MCFG_UPD4990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL)
3847   MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL)
38673848   MCFG_DEVICE_ADD(UPD8251_TAG, I8251, 0)
38683849
38693850   MCFG_UPD765A_ADD("upd765_2hd", false, true)
r241777r241778
38943875   MCFG_UPD7220_VSYNC_CALLBACK(DEVWRITELINE("upd7220_btm", upd7220_device, ext_sync_w))
38953876
38963877   MCFG_DEVICE_ADD("upd7220_btm", UPD7220, 5000000/2)
3897   MCFG_DEVICE_ADDRESS_MAP(AS_0, upd7220_grcg_2_map)
3878   MCFG_DEVICE_ADDRESS_MAP(AS_0, upd7220_2_map)
38983879   MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(pc9801_state, hgdc_display_pixels)
38993880
39003881   MCFG_PALETTE_ADD("palette", 16+16+256)
trunk/src/mess/drivers/psion.c
r241777r241778
595595   MCFG_PSION_DATAPACK_ADD("pack2")
596596
597597   /* Software lists */
598   MCFG_SOFTWARE_LIST_ADD("pack_list", "psion2")
598   MCFG_SOFTWARE_LIST_ADD("pack_list", "psion")
599599MACHINE_CONFIG_END
600600
601601/* basic configuration for 4 lines display */
r241777r241778
624624   MCFG_DEVICE_MODIFY("hd44780")
625625   MCFG_HD44780_LCD_SIZE(1, 16)
626626   MCFG_HD44780_PIXEL_UPDATE_CB(psion1_state::psion1_pixel_update)
627
628   /* Software lists */
629   MCFG_SOFTWARE_LIST_REMOVE("pack_list")
630   MCFG_SOFTWARE_LIST_ADD("pack_list", "psion1")
631627MACHINE_CONFIG_END
632628
633629static MACHINE_CONFIG_DERIVED( psioncm, psion_2lines )
r241777r241778
700696   ROMX_LOAD( "34-lag.rom",   0x8000, 0x8000,  CRC(13a92c4b) SHA1(dab8bd6a41a5fd509c5ad4b0b0ab80d14f2c421a), ROM_BIOS(2))
701697   ROM_SYSTEM_BIOS(2, "v36", "LA v3.6")
702698   ROMX_LOAD( "36-la.rom",    0x8000, 0x8000,  CRC(7442c7f6) SHA1(94f15bd06bd750be70fa4a4ab588237c5a703f65), ROM_BIOS(3))
703   ROM_SYSTEM_BIOS(3, "v30", "LA v3.0")
704   ROMX_LOAD( "30-lahp.rom",    0x8000, 0x8000,  CRC(50192528) SHA1(c556d53f70bf5ecae756b2ebfc6d954912316bbe), ROM_BIOS(4))
705699ROM_END
706700
707701ROM_START( psionp200 )
trunk/src/mess/drivers/ptcsol.c
r241777r241778
747747   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) // cass2 speaker
748748
749749   // devices
750   MCFG_CASSETTE_ADD("cassette")
750   MCFG_CASSETTE_ADD( "cassette" )
751751   MCFG_CASSETTE_FORMATS(sol20_cassette_formats)
752752   MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED)
753   MCFG_CASSETTE_INTERFACE("sol20_cass")
754753
755   MCFG_CASSETTE_ADD("cassette2")
754   MCFG_CASSETTE_ADD( "cassette2" )
756755   MCFG_CASSETTE_FORMATS(sol20_cassette_formats)
757756   MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED)
758   MCFG_CASSETTE_INTERFACE("sol20_cass")
759757
760   MCFG_DEVICE_ADD("uart", AY31015, 0)
758   MCFG_DEVICE_ADD( "uart", AY31015, 0 )
761759   MCFG_AY31015_TX_CLOCK(4800.0)
762760   MCFG_AY31015_RX_CLOCK(4800.0)
763   MCFG_DEVICE_ADD("uart_s", AY31015, 0)
761   MCFG_DEVICE_ADD( "uart_s", AY31015, 0 )
764762   MCFG_AY31015_TX_CLOCK(4800.0)
765763   MCFG_AY31015_RX_CLOCK(4800.0)
766764   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
767765   MCFG_GENERIC_KEYBOARD_CB(WRITE8(sol20_state, kbd_put))
768
769   MCFG_SOFTWARE_LIST_ADD("cass_list", "sol20_cass")
770766MACHINE_CONFIG_END
771767
772768/* ROM definition */
trunk/src/mess/drivers/px4.c
r241777r241778
1919#include "machine/ram.h"
2020#include "machine/nvram.h"
2121#include "sound/speaker.h"
22
2223#include "bus/generic/slot.h"
2324#include "bus/generic/carts.h"
24#include "coreutil.h"
2525#include "px4.lh"
2626
2727
r241777r241778
3131
3232#define VERBOSE 1
3333
34// interrupt sources
35#define INT0_7508   0x01
36#define INT1_ART    0x02
37#define INT2_ICF    0x04
38#define INT3_OVF    0x08
39#define INT4_EXT    0x10
3440
41// 7508 interrupt sources
42#define UPD7508_INT_ALARM       0x02
43#define UPD7508_INT_POWER_FAIL  0x04
44#define UPD7508_INT_7508_RESET  0x08
45#define UPD7508_INT_Z80_RESET   0x10
46#define UPD7508_INT_ONE_SECOND  0x20
47
48// art (asynchronous receiver transmitter)
49#define ART_TXRDY   0x01    // output buffer empty
50#define ART_RXRDY   0x02    // data byte received
51#define ART_TXEMPTY 0x04    // transmit buffer empty
52#define ART_PE      0x08    // parity error
53#define ART_OE      0x10    // overrun error
54#define ART_FE      0x20    // framing error
55
56
3557//**************************************************************************
3658//  MACROS
3759//**************************************************************************
r241777r241778
4567//  TYPE DEFINITIONS
4668//**************************************************************************
4769
48class px4_state : public driver_device,   public device_serial_interface
70class px4_state : public driver_device,
71               public device_serial_interface
4972{
5073public:
5174   px4_state(const machine_config &mconfig, device_type type, const char *tag) :
r241777r241778
5376   device_serial_interface(mconfig, *this),
5477   m_z80(*this, "maincpu"),
5578   m_ram(*this, RAM_TAG),
56   m_nvram(*this, "nvram"),
5779   m_centronics(*this, "centronics"),
5880   m_ext_cas(*this, "extcas"),
5981   m_ext_cas_timer(*this, "extcas_timer"),
6082   m_speaker(*this, "speaker"),
6183   m_sio(*this, "sio"),
6284   m_rs232(*this, "rs232"),
63   m_caps1(*this, "capsule1"),   m_caps2(*this, "capsule2"),
64   m_caps1_rom(NULL), m_caps2_rom(NULL),
65   m_ctrl1(0), m_icrb(0), m_bankr(0),
85   m_caps1(*this, "capsule1"),
86   m_caps2(*this, "capsule2"),
87   m_rdsocket(*this, "ramdisk_socket"),
6688   m_isr(0), m_ier(0), m_str(0), m_sior(0xbf),
67   m_frc_value(0), m_frc_latch(0),
68   m_vadr(0), m_yoff(0),
69   m_receive_timer(NULL), m_transmit_timer(NULL),
7089   m_artdir(0xff), m_artdor(0xff), m_artsr(0), m_artcr(0),
7190   m_swr(0),
7291   m_one_sec_int_enabled(true), m_alarm_int_enabled(true), m_key_int_enabled(true),
73   m_key_status(0), m_interrupt_status(0),
74   m_time(), m_clock_state(0),
75   m_ear_last_state(0),
76   m_sio_pin(0), m_serial_rx(0), m_rs232_dcd(0), m_rs232_cts(0),
77   m_centronics_busy(0), m_centronics_perror(0)
92   m_ramdisk_address(0),
93   m_ear_last_state(0)
7894   { }
7995
80   DECLARE_DRIVER_INIT( px4 );
81
82   DECLARE_PALETTE_INIT( px4 );
83   UINT32 screen_update_px4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
84
85   DECLARE_READ8_MEMBER( icrlc_r );
86   DECLARE_WRITE8_MEMBER( ctrl1_w );
87   DECLARE_READ8_MEMBER( icrhc_r );
88   DECLARE_WRITE8_MEMBER( cmdr_w );
89   DECLARE_READ8_MEMBER( icrlb_r );
90   DECLARE_WRITE8_MEMBER( ctrl2_w );
91   DECLARE_READ8_MEMBER( icrhb_r );
92   DECLARE_READ8_MEMBER( isr_r );
93   DECLARE_WRITE8_MEMBER( ier_w );
94   DECLARE_READ8_MEMBER( str_r );
95   DECLARE_WRITE8_MEMBER( bankr_w );
96   DECLARE_READ8_MEMBER( sior_r );
97   DECLARE_WRITE8_MEMBER( sior_w );
98   DECLARE_WRITE8_MEMBER( vadr_w );
99   DECLARE_WRITE8_MEMBER( yoff_w );
100   DECLARE_WRITE8_MEMBER( fr_w );
101   DECLARE_WRITE8_MEMBER( spur_w );
102   DECLARE_READ8_MEMBER( ctgif_r );
103   DECLARE_WRITE8_MEMBER( ctgif_w );
104   DECLARE_READ8_MEMBER( artdir_r );
105   DECLARE_WRITE8_MEMBER( artdor_w );
106   DECLARE_READ8_MEMBER( artsr_r );
107   DECLARE_WRITE8_MEMBER( artmr_w );
108   DECLARE_READ8_MEMBER( iostr_r );
109   DECLARE_WRITE8_MEMBER( artcr_w );
110   DECLARE_WRITE8_MEMBER( swr_w );
111   DECLARE_WRITE8_MEMBER( ioctlr_w );
112
113   DECLARE_INPUT_CHANGED_MEMBER( key_callback );
114
115   TIMER_DEVICE_CALLBACK_MEMBER( ext_cassette_read );
116   TIMER_DEVICE_CALLBACK_MEMBER( frc_tick );
117   TIMER_DEVICE_CALLBACK_MEMBER( upd7508_1sec_callback );
118
119   // serial
120   DECLARE_WRITE_LINE_MEMBER( sio_rx_w );
121   DECLARE_WRITE_LINE_MEMBER( sio_pin_w );
122   DECLARE_WRITE_LINE_MEMBER( rs232_rx_w );
123   DECLARE_WRITE_LINE_MEMBER( rs232_dcd_w );
124   DECLARE_WRITE_LINE_MEMBER( rs232_dsr_w );
125   DECLARE_WRITE_LINE_MEMBER( rs232_cts_w );
126   TIMER_CALLBACK_MEMBER( transmit_data );
127   TIMER_CALLBACK_MEMBER( receive_data );
128
129   // centronics
130   DECLARE_WRITE_LINE_MEMBER( centronics_busy_w ) { m_centronics_busy = state; }
131   DECLARE_WRITE_LINE_MEMBER( centronics_perror_w ) { m_centronics_perror = state; }
132
133protected:
134   // driver_device overrides
135   virtual void machine_start();
136   virtual void machine_reset();
137
138   // device_serial_interface overrides
139   virtual void tra_callback();
140   virtual void tra_complete();
141   virtual void rcv_callback();
142   virtual void rcv_complete();
143
144   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
145
146private:
147   // z80 interrupt sources
148   enum
149   {
150      INT0_7508 = 0x01,
151      INT1_ART  = 0x02,
152      INT2_ICF  = 0x04,
153      INT3_OVF  = 0x08,
154      INT4_EXT  = 0x10
155   };
156
157   // 7508 interrupt sources
158   enum
159   {
160      UPD7508_INT_ALARM      = 0x02,
161      UPD7508_INT_POWER_FAIL = 0x04,
162      UPD7508_INT_7508_RESET = 0x08,
163      UPD7508_INT_Z80_RESET  = 0x10,
164      UPD7508_INT_ONE_SECOND = 0x20
165   };
166
167   // art (asynchronous receiver transmitter)
168   enum
169   {
170      ART_TXRDY   = 0x01, // output buffer empty
171      ART_RXRDY   = 0x02, // data byte received
172      ART_TXEMPTY = 0x04, // transmit buffer empty
173      ART_PE      = 0x08, // parity error
174      ART_OE      = 0x10, // overrun error
175      ART_FE      = 0x20  // framing error
176   };
177
178   void gapnit_interrupt();
179
180   DECLARE_WRITE_LINE_MEMBER( serial_rx_w );
181   void txd_w(int data);
182
183   void install_rom_capsule(address_space &space, int size, memory_region *mem);
184
18596   // internal devices
18697   required_device<cpu_device> m_z80;
18798   required_device<ram_device> m_ram;
188   required_device<nvram_device> m_nvram;
18999   required_device<centronics_device> m_centronics;
190100   required_device<cassette_image_device> m_ext_cas;
191101   required_device<timer_device> m_ext_cas_timer;
r241777r241778
194104   required_device<rs232_port_device> m_rs232;
195105   required_device<generic_slot_device> m_caps1;
196106   required_device<generic_slot_device> m_caps2;
107   optional_device<generic_slot_device> m_rdsocket;
197108
198109   memory_region *m_caps1_rom;
199110   memory_region *m_caps2_rom;
r241777r241778
215126   UINT8 m_vadr;
216127   UINT8 m_yoff;
217128
129   void gapnit_interrupt();
130
218131   // gapnio
219132   emu_timer *m_receive_timer;
220133   emu_timer *m_transmit_timer;
r241777r241778
224137   UINT8 m_artcr;
225138   UINT8 m_swr;
226139
140   void txd_w(int data);
141
227142   // 7508 internal
228143   bool m_one_sec_int_enabled;
229144   bool m_alarm_int_enabled;
r241777r241778
232147   UINT8 m_key_status;
233148   UINT8 m_interrupt_status;
234149
235   system_time m_time;
236   int m_clock_state;
150   // external ramdisk
151   offs_t m_ramdisk_address;
152   UINT8 *m_ramdisk;
237153
238154   // external cassette/barcode reader
239155   int m_ear_last_state;
240156
241   // serial
242   int m_sio_pin;
243   int m_serial_rx;
244   int m_rs232_dcd;
245   int m_rs232_cts;
157   void install_rom_capsule(address_space &space, int size, memory_region *mem);
246158
247   // centronics
248   int m_centronics_busy;
249   int m_centronics_perror;
250};
159   // device_serial_interface overrides
160   virtual void tra_callback();
161   virtual void tra_complete();
162   virtual void rcv_callback();
163   virtual void rcv_complete();
251164
252class px4p_state : public px4_state
253{
254public:
255   px4p_state(const machine_config &mconfig, device_type type, const char *tag) :
256   px4_state(mconfig, type, tag),
257   m_rdnvram(*this, "rdnvram"),
258   m_rdsocket(*this, "ramdisk_socket"),
259   m_ramdisk_address(0),
260   m_ramdisk(NULL)
261   { }
165   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
262166
263   DECLARE_DRIVER_INIT( px4p );
167   DECLARE_WRITE_LINE_MEMBER( sio_rx_w );
168   DECLARE_WRITE_LINE_MEMBER( sio_pin_w );
264169
265   DECLARE_PALETTE_INIT( px4p );
170   DECLARE_WRITE_LINE_MEMBER( rs232_rx_w );
171   DECLARE_WRITE_LINE_MEMBER( rs232_dcd_w );
172   DECLARE_WRITE_LINE_MEMBER( rs232_dsr_w );
173   DECLARE_WRITE_LINE_MEMBER( rs232_cts_w );
266174
267   DECLARE_WRITE8_MEMBER( ramdisk_address_w );
268   DECLARE_READ8_MEMBER( ramdisk_data_r );
269   DECLARE_WRITE8_MEMBER( ramdisk_data_w );
270   DECLARE_READ8_MEMBER( ramdisk_control_r );
175   int m_sio_pin;
271176
272protected:
273   // driver_device overrides
177   int m_serial_rx;
178   int m_rs232_dcd;
179   int m_rs232_cts;
180
181   DECLARE_READ8_MEMBER(px4_icrlc_r);
182   DECLARE_WRITE8_MEMBER(px4_ctrl1_w);
183   DECLARE_READ8_MEMBER(px4_icrhc_r);
184   DECLARE_WRITE8_MEMBER(px4_cmdr_w);
185   DECLARE_READ8_MEMBER(px4_icrlb_r);
186   DECLARE_WRITE8_MEMBER(px4_ctrl2_w);
187   DECLARE_READ8_MEMBER(px4_icrhb_r);
188   DECLARE_READ8_MEMBER(px4_isr_r);
189   DECLARE_WRITE8_MEMBER(px4_ier_w);
190   DECLARE_READ8_MEMBER(px4_str_r);
191   DECLARE_WRITE8_MEMBER(px4_bankr_w);
192   DECLARE_READ8_MEMBER(px4_sior_r);
193   DECLARE_WRITE8_MEMBER(px4_sior_w);
194   DECLARE_WRITE8_MEMBER(px4_vadr_w);
195   DECLARE_WRITE8_MEMBER(px4_yoff_w);
196   DECLARE_WRITE8_MEMBER(px4_fr_w);
197   DECLARE_WRITE8_MEMBER(px4_spur_w);
198   DECLARE_READ8_MEMBER(px4_ctgif_r);
199   DECLARE_WRITE8_MEMBER(px4_ctgif_w);
200   DECLARE_READ8_MEMBER(px4_artdir_r);
201   DECLARE_WRITE8_MEMBER(px4_artdor_w);
202   DECLARE_READ8_MEMBER(px4_artsr_r);
203   DECLARE_WRITE8_MEMBER(px4_artmr_w);
204   DECLARE_READ8_MEMBER(px4_iostr_r);
205   DECLARE_WRITE8_MEMBER(px4_artcr_w);
206   DECLARE_WRITE8_MEMBER(px4_swr_w);
207   DECLARE_WRITE8_MEMBER(px4_ioctlr_w);
208   DECLARE_WRITE8_MEMBER(px4_ramdisk_address_w);
209   DECLARE_READ8_MEMBER(px4_ramdisk_data_r);
210   DECLARE_WRITE8_MEMBER(px4_ramdisk_data_w);
211   DECLARE_READ8_MEMBER(px4_ramdisk_control_r);
212   DECLARE_DRIVER_INIT(px4);
213   DECLARE_DRIVER_INIT(px4p);
274214   virtual void machine_start();
215   virtual void machine_reset();
216   DECLARE_PALETTE_INIT(px4);
217   DECLARE_MACHINE_START(px4_ramdisk);
218   DECLARE_PALETTE_INIT(px4p);
219   UINT32 screen_update_px4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
220   DECLARE_INPUT_CHANGED_MEMBER(key_callback);
221   TIMER_DEVICE_CALLBACK_MEMBER( ext_cassette_read );
222   TIMER_CALLBACK_MEMBER(transmit_data);
223   TIMER_CALLBACK_MEMBER(receive_data);
224   TIMER_DEVICE_CALLBACK_MEMBER(frc_tick);
225   TIMER_DEVICE_CALLBACK_MEMBER(upd7508_1sec_callback);
275226
276private:
277   required_device<nvram_device> m_rdnvram;
278   required_device<generic_slot_device> m_rdsocket;
227   int m_centronics_busy;
228   int m_centronics_perror;
229   DECLARE_WRITE_LINE_MEMBER(write_centronics_busy);
230   DECLARE_WRITE_LINE_MEMBER(write_centronics_perror);
279231
280   offs_t m_ramdisk_address;
281   UINT8 *m_ramdisk;
232private:
233   DECLARE_WRITE_LINE_MEMBER( serial_rx_w );
282234};
283235
284236
r241777r241778
358310}
359311
360312// input capture register low command trigger
361READ8_MEMBER( px4_state::icrlc_r )
313READ8_MEMBER( px4_state::px4_icrlc_r )
362314{
363315   if (VERBOSE)
364      logerror("%s: icrlc_r\n", machine().describe_context());
316      logerror("%s: px4_icrlc_r\n", machine().describe_context());
365317
366318   // latch value
367319   m_frc_latch = m_frc_value;
r241777r241778
370322}
371323
372324// control register 1
373WRITE8_MEMBER( px4_state::ctrl1_w )
325WRITE8_MEMBER( px4_state::px4_ctrl1_w )
374326{
375327   const int rcv_rates[] = { 110, 150, 300, 600, 1200, 2400, 4800, 9600, 75, 1200, 19200, 38400, 200 };
376328   const int tra_rates[] = { 110, 150, 300, 600, 1200, 2400, 4800, 9600, 1200, 75, 19200, 38400, 200 };
377329
378330   if (VERBOSE)
379      logerror("%s: ctrl1_w (0x%02x)\n", machine().describe_context(), data);
331      logerror("%s: px4_ctrl1_w (0x%02x)\n", machine().describe_context(), data);
380332
381333   // baudrate generator
382334   int baud = data >> 4;
r241777r241778
394346}
395347
396348// input capture register high command trigger
397READ8_MEMBER( px4_state::icrhc_r )
349READ8_MEMBER( px4_state::px4_icrhc_r )
398350{
399351   if (VERBOSE)
400      logerror("%s: icrhc_r\n", machine().describe_context());
352      logerror("%s: px4_icrhc_r\n", machine().describe_context());
401353
402354   return (m_frc_latch >> 8) & 0xff;
403355}
404356
405357// command register
406WRITE8_MEMBER( px4_state::cmdr_w )
358WRITE8_MEMBER( px4_state::px4_cmdr_w )
407359{
408360   if (0)
409      logerror("%s: cmdr_w (0x%02x)\n", machine().describe_context(), data);
361      logerror("%s: px4_cmdr_w (0x%02x)\n", machine().describe_context(), data);
410362
411363   // clear overflow interrupt?
412364   if (BIT(data, 2))
r241777r241778
417369}
418370
419371// input capture register low barcode trigger
420READ8_MEMBER( px4_state::icrlb_r )
372READ8_MEMBER( px4_state::px4_icrlb_r )
421373{
422374   if (VERBOSE)
423      logerror("%s: icrlb_r\n", machine().describe_context());
375      logerror("%s: px4_icrlb_r\n", machine().describe_context());
424376
425377   return m_icrb & 0xff;
426378}
427379
428380// control register 2
429WRITE8_MEMBER( px4_state::ctrl2_w )
381WRITE8_MEMBER( px4_state::px4_ctrl2_w )
430382{
431383   if (VERBOSE)
432      logerror("%s: ctrl2_w (0x%02x)\n", machine().describe_context(), data);
384      logerror("%s: px4_ctrl2_w (0x%02x)\n", machine().describe_context(), data);
433385
434386   // bit 0, MIC, cassette output
435387   m_ext_cas->output( BIT(data, 0) ? -1.0 : +1.0);
r241777r241778
448400}
449401
450402// input capture register high barcode trigger
451READ8_MEMBER( px4_state::icrhb_r )
403READ8_MEMBER( px4_state::px4_icrhb_r )
452404{
453405   if (VERBOSE)
454      logerror("%s: icrhb_r\n", machine().describe_context());
406      logerror("%s: px4_icrhb_r\n", machine().describe_context());
455407
456408   // clear icf interrupt
457409   m_isr &= ~INT2_ICF;
r241777r241778
461413}
462414
463415// interrupt status register
464READ8_MEMBER( px4_state::isr_r )
416READ8_MEMBER( px4_state::px4_isr_r )
465417{
466418   if (VERBOSE)
467      logerror("%s: isr_r\n", machine().describe_context());
419      logerror("%s: px4_isr_r\n", machine().describe_context());
468420
469421   return m_isr;
470422}
471423
472424// interrupt enable register
473WRITE8_MEMBER( px4_state::ier_w )
425WRITE8_MEMBER( px4_state::px4_ier_w )
474426{
475427   if (0)
476      logerror("%s: ier_w (0x%02x)\n", machine().describe_context(), data);
428      logerror("%s: px4_ier_w (0x%02x)\n", machine().describe_context(), data);
477429
478430   m_ier = data;
479431   gapnit_interrupt();
480432}
481433
482434// status register
483READ8_MEMBER( px4_state::str_r )
435READ8_MEMBER( px4_state::px4_str_r )
484436{
485437   UINT8 data = 0;
486438
487439   if (0)
488      logerror("%s: str_r\n", machine().describe_context());
440      logerror("%s: px4_str_r\n", machine().describe_context());
489441
490442   data |= (m_ext_cas)->input() > 0 ? 1 : 0;
491443   data |= 1 << 1;   // BCRD, barcode reader input
r241777r241778
515467}
516468
517469// bank register
518WRITE8_MEMBER( px4_state::bankr_w )
470WRITE8_MEMBER( px4_state::px4_bankr_w )
519471{
520472   address_space &space_program = m_z80->space(AS_PROGRAM);
521473
522474   if (0)
523      logerror("%s: bankr_w (0x%02x)\n", machine().describe_context(), data);
475      logerror("%s: px4_bankr_w (0x%02x)\n", machine().describe_context(), data);
524476
525477   m_bankr = data;
526478
r241777r241778
553505}
554506
555507// serial io register
556READ8_MEMBER( px4_state::sior_r )
508READ8_MEMBER( px4_state::px4_sior_r )
557509{
558510   if (0)
559      logerror("%s: sior_r 0x%02x\n", machine().describe_context(), m_sior);
511      logerror("%s: px4_sior_r 0x%02x\n", machine().describe_context(), m_sior);
560512
561   // reading clock?
562   if (m_clock_state > 0)
563   {
564      switch (m_clock_state++)
565      {
566      case 1: m_sior = (dec_2_bcd(m_time.local_time.year) >> 4) & 0xf; break;
567      case 2: m_sior = dec_2_bcd(m_time.local_time.year) & 0xf; break;
568      case 3:   m_sior = dec_2_bcd(m_time.local_time.month + 1); break;
569      case 4: m_sior = dec_2_bcd(m_time.local_time.mday); break;
570      case 5: m_sior = dec_2_bcd(m_time.local_time.hour); break;
571      case 6: m_sior = dec_2_bcd(m_time.local_time.minute); break;
572      case 7: m_sior = dec_2_bcd(m_time.local_time.second); break;
573      case 8: m_sior = dec_2_bcd(m_time.local_time.weekday); break;
574      }
575
576      // done?
577      if (m_clock_state == 9)
578         m_clock_state = 0;
579   }
580
581513   return m_sior;
582514}
583515
584516// serial io register
585WRITE8_MEMBER( px4_state::sior_w )
517WRITE8_MEMBER( px4_state::px4_sior_w )
586518{
587519   if (0)
588      logerror("%s: sior_w (0x%02x)\n", machine().describe_context(), data);
520      logerror("%s: px4_sior_w (0x%02x)\n", machine().describe_context(), data);
589521
590   // writing clock?
591   if (m_clock_state > 0)
522   m_sior = data;
523
524   switch (data)
592525   {
593      time_t time = m_time.time;
594      struct tm *t = localtime(&time);
526   case 0x01:
595527
596      switch (m_clock_state++)
597      {
598      case 1:
599         {
600            int year = dec_2_bcd(m_time.local_time.year);
601            year = (year & 0xff0f) | ((data & 0xf) << 4);
602            t->tm_year = bcd_2_dec(year) - 1900;
603         }
604         break;
605      case 2:
606         {
607            int year = dec_2_bcd(m_time.local_time.year);
608            year = (year & 0xfff0) | (data & 0xf);
609            t->tm_year = bcd_2_dec(year) - 1900;
610         }
611         break;
612      case 3: t->tm_mon = bcd_2_dec(data & 0x7f) - 1; break;
613      case 4: t->tm_mday = bcd_2_dec(data & 0x7f); break;
614      case 5: t->tm_hour = bcd_2_dec(data & 0x7f); break;
615      case 6: t->tm_min = bcd_2_dec(data & 0x7f); break;
616      case 7: t->tm_sec = bcd_2_dec(data & 0x7f); break;
617      case 8: t->tm_wday = bcd_2_dec(data & 0x7f); break;
618      }
528      if (VERBOSE)
529         logerror("7508 cmd: Power OFF\n");
619530
620      // update
621      m_time.set(mktime(t));
531      break;
622532
623      // done?
624      if (m_clock_state == 9)
625         m_clock_state = 0;
626   }
627   else
628   {
629      m_sior = data;
533   case 0x02:
630534
631      switch (data)
535      if (VERBOSE)
536         logerror("7508 cmd: Read Status\n");
537
538      if (m_interrupt_status != 0)
632539      {
633      case 0x01:
634540         if (VERBOSE)
635            logerror("7508 cmd: Power OFF\n");
541            logerror("> 7508 has interrupts pending: 0x%02x\n", m_interrupt_status);
636542
637         break;
543         // signal the interrupt(s)
544         m_sior = 0xc1 | m_interrupt_status;
545         m_interrupt_status = 0x00;
546      }
547      else if (m_key_status != 0xff)
548      {
549         m_sior = m_key_status;
550         m_key_status = 0xff;
551      }
552      else
553      {
554         // nothing happened
555         m_sior = 0xbf;
556      }
638557
639      case 0x02:
640         if (VERBOSE)
641            logerror("7508 cmd: Read Status\n");
558      break;
642559
643         if (m_interrupt_status != 0)
644         {
645            if (VERBOSE)
646               logerror("> 7508 has interrupts pending: 0x%02x\n", m_interrupt_status);
560   case 0x03: if (VERBOSE) logerror("7508 cmd: KB Reset\n"); break;
561   case 0x04: if (VERBOSE) logerror("7508 cmd: KB Repeat Timer 1 Set\n"); break;
562   case 0x14: if (VERBOSE) logerror("7508 cmd: KB Repeat Timer 2 Set\n"); break;
563   case 0x24: if (VERBOSE) logerror("7508 cmd: KB Repeat Timer 1 Read\n"); break;
564   case 0x34: if (VERBOSE) logerror("7508 cmd: KB Repeat Timer 2 Read\n"); break;
565   case 0x05: if (VERBOSE) logerror("7508 cmd: KB Repeat OFF\n"); break;
566   case 0x15: if (VERBOSE) logerror("7508 cmd: KB Repeat ON\n"); break;
647567
648            // signal the interrupt(s)
649            m_sior = 0xc1 | m_interrupt_status;
650            m_interrupt_status = 0x00;
651         }
652         else if (m_key_status != 0xff)
653         {
654            m_sior = m_key_status;
655            m_key_status = 0xff;
656         }
657         else
658         {
659            // nothing happened
660            m_sior = 0xbf;
661         }
568   case 0x06:
662569
663         break;
570      if (VERBOSE)
571         logerror("7508 cmd: KB Interrupt OFF\n");
664572
665      case 0x03: if (VERBOSE) logerror("7508 cmd: KB Reset\n"); break;
666      case 0x04: if (VERBOSE) logerror("7508 cmd: KB Repeat Timer 1 Set\n"); break;
667      case 0x14: if (VERBOSE) logerror("7508 cmd: KB Repeat Timer 2 Set\n"); break;
668      case 0x24: if (VERBOSE) logerror("7508 cmd: KB Repeat Timer 1 Read\n"); break;
669      case 0x34: if (VERBOSE) logerror("7508 cmd: KB Repeat Timer 2 Read\n"); break;
670      case 0x05: if (VERBOSE) logerror("7508 cmd: KB Repeat OFF\n"); break;
671      case 0x15: if (VERBOSE) logerror("7508 cmd: KB Repeat ON\n"); break;
573      m_key_int_enabled = false;
574      break;
672575
673      case 0x06:
674         if (VERBOSE)
675            logerror("7508 cmd: KB Interrupt OFF\n");
576   case 0x16:
676577
677         m_key_int_enabled = false;
678         break;
578      if (VERBOSE)
579         logerror("7508 cmd: KB Interrupt ON\n");
679580
680      case 0x16:
681         if (VERBOSE)
682            logerror("7508 cmd: KB Interrupt ON\n");
581      m_key_int_enabled = true;
582      break;
683583
684         m_key_int_enabled = true;
685         break;
584   case 0x07: if (VERBOSE) logerror("7508 cmd: Clock Read\n"); break;
585   case 0x17: if (VERBOSE) logerror("7508 cmd: Clock Write\n"); break;
686586
687      case 0x07:
688         if (VERBOSE)
689            logerror("7508 cmd: Clock Read\n");
587   case 0x08:
690588
691         m_clock_state = 1;
692         break;
589      if (VERBOSE)
590         logerror("7508 cmd: Power Switch Read\n");
693591
694      case 0x17:
695         if (VERBOSE)
696            logerror("7508 cmd: Clock Write\n");
592      // indicate that the power switch is in the "ON" position
593      m_sior = 0x01;
594      break;
697595
698         m_clock_state = 1;
699         break;
596   case 0x09: if (VERBOSE) logerror("7508 cmd: Alarm Read\n"); break;
597   case 0x19: if (VERBOSE) logerror("7508 cmd: Alarm Set\n"); break;
598   case 0x29: if (VERBOSE) logerror("7508 cmd: Alarm OFF\n"); break;
599   case 0x39: if (VERBOSE) logerror("7508 cmd: Alarm ON\n"); break;
700600
701      case 0x08:
702         if (VERBOSE)
703            logerror("7508 cmd: Power Switch Read\n");
601   case 0x0a:
704602
705         // indicate that the power switch is in the "ON" position
706         m_sior = 0x01;
707         break;
603      if (VERBOSE)
604         logerror("7508 cmd: DIP Switch Read\n");
605      m_sior = ioport("dips")->read();
606      break;
708607
709      case 0x09: if (VERBOSE) logerror("7508 cmd: Alarm Read\n"); break;
710      case 0x19: if (VERBOSE) logerror("7508 cmd: Alarm Set\n"); break;
711      case 0x29: if (VERBOSE) logerror("7508 cmd: Alarm OFF\n"); break;
712      case 0x39: if (VERBOSE) logerror("7508 cmd: Alarm ON\n"); break;
608   case 0x0b: if (VERBOSE) logerror("7508 cmd: Stop Key Interrupt disable\n"); break;
609   case 0x1b: if (VERBOSE) logerror("7508 cmd: Stop Key Interrupt enable\n"); break;
610   case 0x0c: if (VERBOSE) logerror("7508 cmd: 7 chr. Buffer\n"); break;
611   case 0x1c: if (VERBOSE) logerror("7508 cmd: 1 chr. Buffer\n"); break;
713612
714      case 0x0a:
715         if (VERBOSE)
716            logerror("7508 cmd: DIP Switch Read\n");
717         m_sior = ioport("dips")->read();
718         break;
613   case 0x0d:
719614
720      case 0x0b: if (VERBOSE) logerror("7508 cmd: Stop Key Interrupt disable\n"); break;
721      case 0x1b: if (VERBOSE) logerror("7508 cmd: Stop Key Interrupt enable\n"); break;
722      case 0x0c: if (VERBOSE) logerror("7508 cmd: 7 chr. Buffer\n"); break;
723      case 0x1c: if (VERBOSE) logerror("7508 cmd: 1 chr. Buffer\n"); break;
615      if (VERBOSE)
616         logerror("7508 cmd: 1 sec. Interrupt OFF\n");
724617
725      case 0x0d:
726         if (VERBOSE)
727            logerror("7508 cmd: 1 sec. Interrupt OFF\n");
618      m_one_sec_int_enabled = false;
619      break;
728620
729         m_one_sec_int_enabled = false;
730         break;
621   case 0x1d:
731622
732      case 0x1d:
733         if (VERBOSE)
734            logerror("7508 cmd: 1 sec. Interrupt ON\n");
623      if (VERBOSE)
624         logerror("7508 cmd: 1 sec. Interrupt ON\n");
735625
736         m_one_sec_int_enabled = true;
737         break;
626      m_one_sec_int_enabled = true;
627      break;
738628
739      case 0x0e:
740         if (VERBOSE)
741            logerror("7508 cmd: KB Clear\n");
629   case 0x0e:
742630
743         m_sior = 0xbf;
744         break;
631      if (VERBOSE)
632         logerror("7508 cmd: KB Clear\n");
745633
746      case 0x0f: if (VERBOSE) logerror("7508 cmd: System Reset\n"); break;
747      }
634      m_sior = 0xbf;
635      break;
636
637   case 0x0f: if (VERBOSE) logerror("7508 cmd: System Reset\n"); break;
748638   }
749639}
750640
r241777r241778
754644//**************************************************************************
755645
756646// vram start address register
757WRITE8_MEMBER( px4_state::vadr_w )
647WRITE8_MEMBER( px4_state::px4_vadr_w )
758648{
759649   if (VERBOSE)
760      logerror("%s: vadr_w (0x%02x)\n", machine().describe_context(), data);
650      logerror("%s: px4_vadr_w (0x%02x)\n", machine().describe_context(), data);
761651
762652   m_vadr = data;
763653}
764654
765655// y offset register
766WRITE8_MEMBER( px4_state::yoff_w )
656WRITE8_MEMBER( px4_state::px4_yoff_w )
767657{
768658   if (VERBOSE)
769      logerror("%s: yoff_w (0x%02x)\n", machine().describe_context(), data);
659      logerror("%s: px4_yoff_w (0x%02x)\n", machine().describe_context(), data);
770660
771661   m_yoff = data;
772662}
773663
774664// frame register
775WRITE8_MEMBER( px4_state::fr_w )
665WRITE8_MEMBER( px4_state::px4_fr_w )
776666{
777667   if (VERBOSE)
778      logerror("%s: fr_w (0x%02x)\n", machine().describe_context(), data);
668      logerror("%s: px4_fr_w (0x%02x)\n", machine().describe_context(), data);
779669}
780670
781671// speed-up register
782WRITE8_MEMBER( px4_state::spur_w )
672WRITE8_MEMBER( px4_state::px4_spur_w )
783673{
784674   if (VERBOSE)
785      logerror("%s: spur_w (0x%02x)\n", machine().describe_context(), data);
675      logerror("%s: px4_spur_w (0x%02x)\n", machine().describe_context(), data);
786676}
787677
788678
r241777r241778
838728   if (ART_TX_ENABLED)
839729   {
840730      if (ART_BREAK)
841         txd_w(0); // transmit break
731      {
732         // transmit break
733         txd_w(0);
734      }
842735      else
843         txd_w(transmit_register_get_data_bit()); // transmit data
736      {
737         // transmit data
738         txd_w(transmit_register_get_data_bit());
739      }
844740   }
845741   else
846      txd_w(1); // transmit mark
742   {
743      // transmit mark
744      txd_w(1);
745   }
847746}
848747
849748void px4_state::tra_complete()
r241777r241778
864763void px4_state::rcv_callback()
865764{
866765   if (ART_RX_ENABLED)
867      receive_register_update_bit(m_serial_rx); // receive data
766   {
767      // receive data
768      receive_register_update_bit(m_serial_rx);
769   }
868770}
869771
870772void px4_state::rcv_complete()
r241777r241778
898800}
899801
900802// cartridge interface
901READ8_MEMBER( px4_state::ctgif_r )
803READ8_MEMBER( px4_state::px4_ctgif_r )
902804{
903805   if (VERBOSE)
904      logerror("%s: ctgif_r @ 0x%02x\n", machine().describe_context(), offset);
806      logerror("%s: px4_ctgif_r @ 0x%02x\n", machine().describe_context(), offset);
905807
906808   return 0x00;
907809}
908810
909811// cartridge interface
910WRITE8_MEMBER( px4_state::ctgif_w )
812WRITE8_MEMBER( px4_state::px4_ctgif_w )
911813{
912814   if (VERBOSE)
913      logerror("%s: ctgif_w (0x%02x @ 0x%02x)\n", machine().describe_context(), data, offset);
815      logerror("%s: px4_ctgif_w (0x%02x @ 0x%02x)\n", machine().describe_context(), data, offset);
914816}
915817
916818// art data input register
917READ8_MEMBER( px4_state::artdir_r )
819READ8_MEMBER( px4_state::px4_artdir_r )
918820{
919821   if (VERBOSE)
920      logerror("%s: artdir_r (%02x)\n", machine().describe_context(), m_artdir);
822      logerror("%s: px4_artdir_r (%02x)\n", machine().describe_context(), m_artdir);
921823
922824   // clear ready
923825   m_artsr &= ~ART_RXRDY;
r241777r241778
930832}
931833
932834// art data output register
933WRITE8_MEMBER( px4_state::artdor_w )
835WRITE8_MEMBER( px4_state::px4_artdor_w )
934836{
935837   if (VERBOSE)
936      logerror("%s: artdor_w (0x%02x)\n", machine().describe_context(), data);
838      logerror("%s: px4_artdor_w (0x%02x)\n", machine().describe_context(), data);
937839
938840   m_artdor = data;
939841
r241777r241778
951853}
952854
953855// art status register
954READ8_MEMBER( px4_state::artsr_r )
856READ8_MEMBER( px4_state::px4_artsr_r )
955857{
956858   if (0)
957      logerror("%s: artsr_r (%02x)\n", machine().describe_context(), m_artsr);
859      logerror("%s: px4_artsr_r (%02x)\n", machine().describe_context(), m_artsr);
958860
959861   return m_artsr;
960862}
961863
962864// art mode register
963WRITE8_MEMBER( px4_state::artmr_w )
865WRITE8_MEMBER( px4_state::px4_artmr_w )
964866{
965867   int data_bit_count = BIT(data, 2) ? 8 : 7;
966868   parity_t parity = BIT(data, 4) ? (BIT(data, 5) ? PARITY_EVEN : PARITY_ODD) : PARITY_NONE;
r241777r241778
972874   set_data_frame(1, data_bit_count, parity, stop_bits);
973875}
974876
877WRITE_LINE_MEMBER( px4_state::write_centronics_busy )
878{
879   m_centronics_busy = state;
880}
881
882WRITE_LINE_MEMBER( px4_state::write_centronics_perror )
883{
884   m_centronics_perror = state;
885}
886
975887// io status register
976READ8_MEMBER( px4_state::iostr_r )
888READ8_MEMBER( px4_state::px4_iostr_r )
977889{
978890   UINT8 data = 0;
979891
r241777r241778
995907   data |= 0 << 7;   // bit 7, caud - audio input from cartridge
996908
997909   if (0)
998      logerror("%s: iostr_r: rx = %d, dcd = %d, cts = %d\n", machine().describe_context(), BIT(data, 3), BIT(data, 4), BIT(data, 5));
910      logerror("%s: px4_iostr_r: rx = %d, dcd = %d, cts = %d\n", machine().describe_context(), BIT(data, 3), BIT(data, 4), BIT(data, 5));
999911
1000912   return data;
1001913}
1002914
1003915// art command register
1004WRITE8_MEMBER( px4_state::artcr_w )
916WRITE8_MEMBER( px4_state::px4_artcr_w )
1005917{
1006918   if (VERBOSE)
1007      logerror("%s: artcr_w (0x%02x)\n", machine().describe_context(), data);
919      logerror("%s: px4_artcr_w (0x%02x)\n", machine().describe_context(), data);
1008920
1009921   m_artcr = data;
1010922
r241777r241778
1018930}
1019931
1020932// switch register
1021WRITE8_MEMBER( px4_state::swr_w )
933WRITE8_MEMBER( px4_state::px4_swr_w )
1022934{
1023935   if (VERBOSE)
1024936   {
r241777r241778
1032944}
1033945
1034946// io control register
1035WRITE8_MEMBER( px4_state::ioctlr_w )
947WRITE8_MEMBER( px4_state::px4_ioctlr_w )
1036948{
1037949   if (VERBOSE)
1038      logerror("%s: ioctlr_w (0x%02x)\n", machine().describe_context(), data);
950      logerror("%s: px4_ioctlr_w (0x%02x)\n", machine().describe_context(), data);
1039951
1040952   m_centronics->write_strobe(!BIT(data, 0));
1041953   m_centronics->write_init(BIT(data, 1));
r241777r241778
1067979      m_isr |= INT0_7508;
1068980      gapnit_interrupt();
1069981   }
1070
1071   // update clock
1072   m_time.set(m_time.time + 1);
1073982}
1074983
1075984INPUT_CHANGED_MEMBER( px4_state::key_callback )
r241777r241778
11161025//  EXTERNAL RAM-DISK
11171026//**************************************************************************
11181027
1119WRITE8_MEMBER( px4p_state::ramdisk_address_w )
1028WRITE8_MEMBER( px4_state::px4_ramdisk_address_w )
11201029{
11211030   switch (offset)
11221031   {
r241777r241778
11261035   }
11271036}
11281037
1129READ8_MEMBER( px4p_state::ramdisk_data_r )
1038READ8_MEMBER( px4_state::px4_ramdisk_data_r )
11301039{
11311040   UINT8 ret = 0xff;
11321041
r241777r241778
11461055   return ret;
11471056}
11481057
1149WRITE8_MEMBER( px4p_state::ramdisk_data_w )
1058WRITE8_MEMBER( px4_state::px4_ramdisk_data_w )
11501059{
11511060   if (m_ramdisk_address < 0x20000)
11521061      m_ramdisk[m_ramdisk_address] = data;
r241777r241778
11541063   m_ramdisk_address = (m_ramdisk_address & 0xffff00) | ((m_ramdisk_address & 0xff) + 1);
11551064}
11561065
1157READ8_MEMBER( px4p_state::ramdisk_control_r )
1066READ8_MEMBER( px4_state::px4_ramdisk_control_r )
11581067{
11591068   // bit 7 determines the presence of a ram-disk
11601069   return 0x7f;
r241777r241778
12181127   membank("bank2")->set_base(m_ram->pointer() + 0x8000);
12191128}
12201129
1221DRIVER_INIT_MEMBER( px4p_state, px4p )
1130DRIVER_INIT_MEMBER( px4_state, px4p )
12221131{
12231132   DRIVER_INIT_CALL(px4);
12241133
r241777r241778
12311140   astring region_tag;
12321141   m_caps1_rom = memregion(region_tag.cpy(m_caps1->tag()).cat(GENERIC_ROM_REGION_TAG));
12331142   m_caps2_rom = memregion(region_tag.cpy(m_caps2->tag()).cat(GENERIC_ROM_REGION_TAG));
1234
1235   m_nvram->set_base(m_ram->pointer(), 0x10000);
1236
1237   // initialize clock
1238   machine().base_datetime(m_time);
12391143}
12401144
12411145void px4_state::machine_reset()
12421146{
1243   m_artsr = ART_TXRDY | ART_TXEMPTY | (!m_rs232->dsr_r() << 7);
1147   m_artsr = ART_TXRDY | ART_TXEMPTY;
12441148   receive_register_reset();
12451149   transmit_register_reset();
12461150}
12471151
1248void px4p_state::machine_start()
1152MACHINE_START_MEMBER( px4_state, px4_ramdisk )
12491153{
12501154   px4_state::machine_start();
1251   m_rdnvram->set_base(m_ramdisk, 0x20000);
1155   machine().device<nvram_device>("nvram")->set_base(m_ramdisk, 0x20000);
12521156}
12531157
12541158
r241777r241778
12651169   ADDRESS_MAP_UNMAP_HIGH
12661170   ADDRESS_MAP_GLOBAL_MASK(0xff)
12671171   // gapnit, 0x00-0x07
1268   AM_RANGE(0x00, 0x00) AM_READWRITE( icrlc_r, ctrl1_w )
1269   AM_RANGE(0x01, 0x01) AM_READWRITE( icrhc_r, cmdr_w )
1270   AM_RANGE(0x02, 0x02) AM_READWRITE( icrlb_r, ctrl2_w )
1271   AM_RANGE(0x03, 0x03) AM_READ( icrhb_r )
1272   AM_RANGE(0x04, 0x04) AM_READWRITE( isr_r, ier_w )
1273   AM_RANGE(0x05, 0x05) AM_READWRITE( str_r, bankr_w )
1274   AM_RANGE(0x06, 0x06) AM_READWRITE( sior_r, sior_w )
1172   AM_RANGE(0x00, 0x00) AM_READWRITE(px4_icrlc_r, px4_ctrl1_w)
1173   AM_RANGE(0x01, 0x01) AM_READWRITE(px4_icrhc_r, px4_cmdr_w)
1174   AM_RANGE(0x02, 0x02) AM_READWRITE(px4_icrlb_r, px4_ctrl2_w)
1175   AM_RANGE(0x03, 0x03) AM_READ(px4_icrhb_r)
1176   AM_RANGE(0x04, 0x04) AM_READWRITE(px4_isr_r, px4_ier_w)
1177   AM_RANGE(0x05, 0x05) AM_READWRITE(px4_str_r, px4_bankr_w)
1178   AM_RANGE(0x06, 0x06) AM_READWRITE(px4_sior_r, px4_sior_w)
12751179   AM_RANGE(0x07, 0x07) AM_NOP
12761180   // gapndl, 0x08-0x0f
1277   AM_RANGE(0x08, 0x08) AM_WRITE( vadr_w )
1278   AM_RANGE(0x09, 0x09) AM_WRITE( yoff_w )
1279   AM_RANGE(0x0a, 0x0a) AM_WRITE( fr_w )
1280   AM_RANGE(0x0b, 0x0b) AM_WRITE( spur_w )
1181   AM_RANGE(0x08, 0x08) AM_WRITE(px4_vadr_w)
1182   AM_RANGE(0x09, 0x09) AM_WRITE(px4_yoff_w)
1183   AM_RANGE(0x0a, 0x0a) AM_WRITE(px4_fr_w)
1184   AM_RANGE(0x0b, 0x0b) AM_WRITE(px4_spur_w)
12811185   AM_RANGE(0x0c, 0x0f) AM_NOP
12821186   // gapnio, 0x10-0x1f
1283   AM_RANGE(0x10, 0x13) AM_READWRITE( ctgif_r, ctgif_w )
1284   AM_RANGE(0x14, 0x14) AM_READWRITE( artdir_r, artdor_w )
1285   AM_RANGE(0x15, 0x15) AM_READWRITE( artsr_r, artmr_w )
1286   AM_RANGE(0x16, 0x16) AM_READWRITE( iostr_r, artcr_w )
1187   AM_RANGE(0x10, 0x13) AM_READWRITE(px4_ctgif_r, px4_ctgif_w)
1188   AM_RANGE(0x14, 0x14) AM_READWRITE(px4_artdir_r, px4_artdor_w)
1189   AM_RANGE(0x15, 0x15) AM_READWRITE(px4_artsr_r, px4_artmr_w)
1190   AM_RANGE(0x16, 0x16) AM_READWRITE(px4_iostr_r, px4_artcr_w)
12871191   AM_RANGE(0x17, 0x17) AM_DEVWRITE("cent_data_out", output_latch_device, write)
1288   AM_RANGE(0x18, 0x18) AM_WRITE( swr_w )
1289   AM_RANGE(0x19, 0x19) AM_WRITE( ioctlr_w )
1192   AM_RANGE(0x18, 0x18) AM_WRITE(px4_swr_w)
1193   AM_RANGE(0x19, 0x19) AM_WRITE(px4_ioctlr_w)
12901194   AM_RANGE(0x1a, 0x1f) AM_NOP
12911195ADDRESS_MAP_END
12921196
1293static ADDRESS_MAP_START( px4p_io, AS_IO, 8, px4p_state )
1197static ADDRESS_MAP_START( px4p_io, AS_IO, 8, px4_state )
12941198   AM_IMPORT_FROM(px4_io)
1295   AM_RANGE(0x90, 0x92) AM_WRITE(ramdisk_address_w )
1296   AM_RANGE(0x93, 0x93) AM_READWRITE(ramdisk_data_r, ramdisk_data_w )
1297   AM_RANGE(0x94, 0x94) AM_READ(ramdisk_control_r)
1199   AM_RANGE(0x90, 0x92) AM_WRITE(px4_ramdisk_address_w)
1200   AM_RANGE(0x93, 0x93) AM_READWRITE(px4_ramdisk_data_r, px4_ramdisk_data_w)
1201   AM_RANGE(0x94, 0x94) AM_READ(px4_ramdisk_control_r)
12981202ADDRESS_MAP_END
12991203
13001204
r241777r241778
14571361//  PALETTE
14581362//**************************************************************************
14591363
1460PALETTE_INIT_MEMBER( px4_state, px4 )
1364PALETTE_INIT_MEMBER(px4_state, px4)
14611365{
14621366   palette.set_pen_color(0, rgb_t(138, 146, 148));
14631367   palette.set_pen_color(1, rgb_t(92, 83, 88));
14641368}
14651369
1466PALETTE_INIT_MEMBER( px4p_state, px4p )
1370PALETTE_INIT_MEMBER(px4_state, px4p)
14671371{
14681372   palette.set_pen_color(0, rgb_t(149, 157, 130));
14691373   palette.set_pen_color(1, rgb_t(92, 83, 88));
r241777r241778
15041408   // internal ram
15051409   MCFG_RAM_ADD(RAM_TAG)
15061410   MCFG_RAM_DEFAULT_SIZE("64k")
1507   MCFG_NVRAM_ADD_NO_FILL("nvram")
15081411
15091412   // centronics printer
15101413   MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
1511   MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(px4_state, centronics_busy_w))
1512   MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(px4_state, centronics_perror_w))
1414   MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(px4_state, write_centronics_busy))
1415   MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(px4_state, write_centronics_perror))
15131416
15141417   MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
15151418
r241777r241778
15401443   MCFG_SOFTWARE_LIST_ADD("epson_cpm_list", "epson_cpm")
15411444MACHINE_CONFIG_END
15421445
1543static MACHINE_CONFIG_DERIVED_CLASS( px4p, px4, px4p_state )
1446static MACHINE_CONFIG_DERIVED( px4p, px4 )
15441447   MCFG_CPU_MODIFY("maincpu")
15451448   MCFG_CPU_IO_MAP(px4p_io)
15461449
1547   MCFG_NVRAM_ADD_0FILL("rdnvram")
1450   MCFG_MACHINE_START_OVERRIDE(px4_state, px4_ramdisk)
1451   MCFG_NVRAM_ADD_0FILL("nvram")
15481452
15491453   MCFG_PALETTE_MODIFY("palette")
1550   MCFG_PALETTE_INIT_OWNER(px4p_state, px4p)
1454   MCFG_PALETTE_INIT_OWNER(px4_state, px4p)
15511455
15521456   MCFG_GENERIC_CARTSLOT_ADD("ramdisk_socket", generic_plain_slot, "px4_cart")
15531457MACHINE_CONFIG_END
r241777r241778
15611465
15621466ROM_START( px4 )
15631467   ROM_REGION(0x8000, "os", 0)
1564   ROM_SYSTEM_BIOS(0, "default",  "PX-4 OS ROM")
1565   ROMX_LOAD("m25122aa_po_px4.10c", 0x0000, 0x8000, CRC(62d60dc6) SHA1(3d32ec79a317de7c84c378302e95f48d56505502), ROM_BIOS(1))
1566   ROM_SYSTEM_BIOS(1, "ramtest",  "PX-4/PX-8 DRAM Test Ver. 1.0")
1567   ROMX_LOAD("ramtest.10c", 0x0000, 0x8000, CRC(f8aced5f) SHA1(a5a2f398e602aa349c3636d6659dd0c7eaba07fb), ROM_BIOS(2))
1468   ROM_LOAD("m25122aa_po_px4.10c", 0x0000, 0x8000, CRC(62d60dc6) SHA1(3d32ec79a317de7c84c378302e95f48d56505502))
15681469
15691470   ROM_REGION(0x1000, "slave", 0)
15701471   ROM_LOAD("upd7508.bin", 0x0000, 0x1000, NO_DUMP)
r241777r241778
15721473
15731474ROM_START( px4p )
15741475   ROM_REGION(0x8000, "os", 0)
1575   ROM_SYSTEM_BIOS(0, "default",  "PX-4+ OS ROM")
1576   ROMX_LOAD("b0_pxa.10c", 0x0000, 0x8000, CRC(d74b9ef5) SHA1(baceee076c12f5a16f7a26000e9bc395d021c455), ROM_BIOS(1))
1577   ROM_SYSTEM_BIOS(1, "ramtest",  "PX-4/PX-8 DRAM Test Ver. 1.0")
1578   ROMX_LOAD("ramtest.10c", 0x0000, 0x8000, CRC(f8aced5f) SHA1(a5a2f398e602aa349c3636d6659dd0c7eaba07fb), ROM_BIOS(2))
1476   ROM_LOAD("b0_pxa.10c", 0x0000, 0x8000, CRC(d74b9ef5) SHA1(baceee076c12f5a16f7a26000e9bc395d021c455))
15791477
15801478   ROM_REGION(0x1000, "slave", 0)
15811479   ROM_LOAD("upd7508.bin", 0x0000, 0x1000, NO_DUMP)
r241777r241778
15861484//  GAME DRIVERS
15871485//**************************************************************************
15881486
1589//    YEAR  NAME  PARENT  COMPAT  MACHINE  INPUT      CLASS       INIT  COMPANY  FULLNAME  FLAGS
1590COMP( 1985, px4,  0,      0,      px4,     px4_h450a, px4_state,  px4,  "Epson", "PX-4",   0 )
1591COMP( 1985, px4p, px4,    0,      px4p,    px4_h450a, px4p_state, px4p, "Epson", "PX-4+",  0 )
1487//    YEAR  NAME  PARENT  COMPAT  MACHINE  INPUT      CLASS      INIT  COMPANY  FULLNAME  FLAGS
1488COMP( 1985, px4,  0,      0,      px4,     px4_h450a, px4_state, px4,  "Epson", "PX-4",   0 )
1489COMP( 1985, px4p, px4,    0,      px4p,    px4_h450a, px4_state, px4p, "Epson", "PX-4+",  0 )
trunk/src/mess/drivers/sh4robot.c
r241777r241778
8888/* Driver */
8989
9090/*    YEAR  NAME    PARENT  COMPAT   MACHINE    INPUT    INIT    CONFIG COMPANY   FULLNAME       FLAGS */
91COMP( 20??, sh4robot,  0,       0,  sh4robot,   sh4robot, driver_device,   0,   "<unknown>", "Robot", GAME_NOT_WORKING | GAME_NO_SOUND)
91COMP( ????, sh4robot,  0,       0,  sh4robot,   sh4robot, driver_device,   0,   "", "Robot", GAME_NOT_WORKING | GAME_NO_SOUND)
trunk/src/mess/drivers/simon.c
r241777r241778
1// license:BSD-3-Clause
2// copyright-holders:hap
3/***************************************************************************
4
5  Milton Bradley Simon
6 
7  Revision A hardware:
8  * TMS1000 (has internal ROM), DS75494 lamp driver
9 
10  Newer revisions have a smaller 16-pin MB4850 chip instead of the TMS1000.
11  This one has been decapped too, but we couldn't find an internal ROM.
12  It is possibly a cost-reduced custom ASIC specifically for Simon.
13 
14  Other games assumed to be on similar hardware:
15  - Pocket Simon
16  - Super Simon
17
18***************************************************************************/
19
20#include "emu.h"
21#include "cpu/tms0980/tms0980.h"
22#include "sound/speaker.h"
23
24#include "simon.lh"
25
26// master clock is a single stage RC oscillator: R=33K, C=100pf,
27// according to the TMS 1000 series data manual this is around 350kHz
28#define SIMON_RC_CLOCK (350000)
29
30
31class simon_state : public driver_device
32{
33public:
34   simon_state(const machine_config &mconfig, device_type type, const char *tag)
35      : driver_device(mconfig, type, tag),
36      m_maincpu(*this, "maincpu"),
37      m_button_matrix(*this, "IN"),
38      m_speaker(*this, "speaker")
39   { }
40
41   required_device<cpu_device> m_maincpu;
42   required_ioport_array<4> m_button_matrix;
43   required_device<speaker_sound_device> m_speaker;
44
45   UINT16 m_r;
46
47   DECLARE_READ8_MEMBER(read_k);
48   DECLARE_WRITE16_MEMBER(write_o);
49   DECLARE_WRITE16_MEMBER(write_r);
50
51   virtual void machine_start();
52};
53
54
55/***************************************************************************
56
57  I/O
58
59***************************************************************************/
60
61READ8_MEMBER(simon_state::read_k)
62{
63   UINT8 k = 0;
64   
65   // read selected button rows
66   for (int i = 0; i < 4; i++)
67   {
68      static int r[4] = { 0, 1, 2, 9 };
69      if (m_r & (1 << r[i]))
70         k |= m_button_matrix[i]->read();
71   }
72
73   return k;
74}
75
76WRITE16_MEMBER(simon_state::write_r)
77{
78   // R4-R8 go through an 75494 IC first:
79   // R4 -> 75494 IN6 -> green lamp
80   // R5 -> 75494 IN3 -> red lamp
81   // R6 -> 75494 IN5 -> yellow lamp
82   // R7 -> 75494 IN2 -> blue lamp
83   for (int i = 0; i < 4; i++)
84      output_set_lamp_value(i, data >> (4 + i) & 1);
85   
86   // R8 -> 75494 IN0 -> speaker
87   m_speaker->level_w(data >> 8 & 1);
88
89   // R0,R1,R2,R9: input mux
90   // R3: GND
91   // other bits: N/C
92   m_r = data;
93}
94
95WRITE16_MEMBER(simon_state::write_o)
96{
97   // N/C
98}
99
100
101
102/***************************************************************************
103
104  Inputs
105
106***************************************************************************/
107
108static INPUT_PORTS_START( simon )
109   PORT_START("IN.0")
110   PORT_CONFNAME( 0x07, 0x02, "Game Select")
111   PORT_CONFSETTING(    0x02, "1" )
112   PORT_CONFSETTING(    0x01, "2" )
113   PORT_CONFSETTING(    0x04, "3" )
114   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
115
116   PORT_START("IN.1")
117   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Green Button")
118   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Red Button")
119   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Yellow Button")
120   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("Blue Button")
121
122   PORT_START("IN.2")
123   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_NAME("Start")
124   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Last")
125   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Longest")
126   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
127
128   PORT_START("IN.3")
129   PORT_CONFNAME( 0x0f, 0x01, "Skill Level")
130   PORT_CONFSETTING(    0x02, "1" )
131   PORT_CONFSETTING(    0x04, "2" )
132   PORT_CONFSETTING(    0x08, "3" )
133   PORT_CONFSETTING(    0x01, "4" )
134INPUT_PORTS_END
135
136
137
138/***************************************************************************
139
140  Machine Config
141
142***************************************************************************/
143
144void simon_state::machine_start()
145{
146   m_r = 0;
147   save_item(NAME(m_r));
148}
149
150
151static const UINT16 simon_output_pla[0x20] =
152{
153   /* The output PLA just maps 1 2 4 8 and SL to O0-O4 */
154   0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
155   0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
156   0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
157   0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f
158};
159
160
161static MACHINE_CONFIG_START( simon, simon_state )
162
163   /* basic machine hardware */
164   MCFG_CPU_ADD( "maincpu", TMS1000, SIMON_RC_CLOCK )
165   MCFG_TMS1XXX_OUTPUT_PLA(simon_output_pla)
166   MCFG_TMS1XXX_READ_K(READ8(simon_state, read_k))
167   MCFG_TMS1XXX_WRITE_O(WRITE16(simon_state, write_o))
168   MCFG_TMS1XXX_WRITE_R(WRITE16(simon_state, write_r))
169
170   MCFG_DEFAULT_LAYOUT(layout_simon)
171
172   /* no video! */
173
174   /* sound hardware */
175   MCFG_SPEAKER_STANDARD_MONO("mono")
176   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
177   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
178MACHINE_CONFIG_END
179
180
181
182/***************************************************************************
183
184  Game driver(s)
185
186***************************************************************************/
187
188ROM_START( simon )
189   ROM_REGION( 0x0800, "maincpu", ROMREGION_ERASE00 )
190   ROM_LOAD( "tms1000.u1", 0x0000, 0x0400, CRC(9961719d) SHA1(35dddb018a8a2b31f377ab49c1f0cb76951b81c0) )
191ROM_END
192
193
194CONS( 1978, simon, 0, 0, simon, simon, driver_device, 0, "Milton Bradley", "Simon (Rev. A)", GAME_SUPPORTS_SAVE )
trunk/src/mess/drivers/specpls3.c
r241777r241778
382382   MCFG_FLOPPY_DRIVE_ADD("upd765:0", specpls3_floppies, "3ssdd", spectrum_state::floppy_formats)
383383   MCFG_FLOPPY_DRIVE_ADD("upd765:1", specpls3_floppies, "3ssdd", spectrum_state::floppy_formats)
384384
385   MCFG_SOFTWARE_LIST_ADD("flop_list", "specpls3_flop")
385   MCFG_SOFTWARE_LIST_ADD("flop_list","spectrum_flop")
386386MACHINE_CONFIG_END
387387
388388/***************************************************************************
trunk/src/mess/drivers/spectrum.c
r241777r241778
708708   MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED)
709709   MCFG_CASSETTE_INTERFACE("spectrum_cass")
710710
711   MCFG_SOFTWARE_LIST_ADD("cass_list", "spectrum_cass")
711   MCFG_SOFTWARE_LIST_ADD("cass_list","spectrum_cass")
712712
713713   /* cartridge */
714714   MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "spectrum_cart")
715715   MCFG_GENERIC_EXTENSIONS("bin,rom")
716716   MCFG_GENERIC_LOAD(spectrum_state, spectrum_cart)
717717
718   MCFG_SOFTWARE_LIST_ADD("cart_list", "spectrum_cart")
718   MCFG_SOFTWARE_LIST_ADD("cart_list","spectrum")
719719MACHINE_CONFIG_END
720720
721721MACHINE_CONFIG_DERIVED( spectrum, spectrum_common )
trunk/src/mess/drivers/svi318.c
r241777r241778
165165   PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT)    PORT_CHAR(UCHAR_SHIFT_1)
166166   PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL)          PORT_CHAR(UCHAR_SHIFT_2)
167167   PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left Grph") PORT_CODE(KEYCODE_LALT)         PORT_CHAR(UCHAR_MAMEKEY(PGUP))
168   PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right Grph") PORT_CODE(KEYCODE_RALT)       PORT_CHAR(UCHAR_MAMEKEY(PGDN))
168   PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Rright Grph") PORT_CODE(KEYCODE_RALT)       PORT_CHAR(UCHAR_MAMEKEY(PGDN))
169169   PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ESC)                                 PORT_CHAR(UCHAR_MAMEKEY(ESC))
170170   PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Stop") PORT_CODE(KEYCODE_END)               PORT_CHAR(UCHAR_MAMEKEY(END))
171171   PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER)                               PORT_CHAR(13)
trunk/src/mess/drivers/victor9k.c
r241777r241778
1111
1212/*
1313
14    Sector format
15    -------------
16
17    Header sync
18    Sector header (header ID, track ID, sector ID, and checksum)
19    Gap 1
20    Data Sync
21    Data field (data sync, data ID, data bytes, and checksum)
22    Gap 2
23
24    Track format
25    ------------
26
27    ZONE        LOWER HEAD  UPPER HEAD  SECTORS     ROTATIONAL
28    NUMBER      TRACKS      TRACKS      PER TRACK   PERIOD (MS)
29
30    0           0-3         unused      19          237.9
31    1           4-15        0-7         18          224.5
32    2           16-26       8-18        17          212.2
33    3           27-37       19-29       16          199.9
34    4           38-48       30-40       15          187.6
35    5           49-59       41-51       14          175.3
36    6           60-70       52-62       13          163.0
37    7           71-79       63-74       12          149.6
38    8           unused      75-79       11          144.0
39
40*/
41
42/*
43
1444    TODO:
1545
1646    - floppy 8048
r241777r241778
2959
3060
3161//**************************************************************************
62//  READ/WRITE HANDLERS
63//**************************************************************************
64
65//-------------------------------------------------
66//  floppy_p1_r -
67//-------------------------------------------------
68
69READ8_MEMBER( victor9k_state::floppy_p1_r )
70{
71   /*
72
73       bit     description
74
75       0       L0MS0
76       1       L0MS1
77       2       L0MS2
78       3       L0MS3
79       4       L1MS0
80       5       L1MS1
81       6       L1MS2
82       7       L1MS3
83
84   */
85
86   return m_lms;
87}
88
89
90//-------------------------------------------------
91//  floppy_p2_r -
92//-------------------------------------------------
93
94READ8_MEMBER( victor9k_state::floppy_p2_r )
95{
96   /*
97
98       bit     description
99
100       0
101       1
102       2
103       3
104       4
105       5
106       6       RDY0
107       7       RDY1
108
109   */
110
111   UINT8 data = 0;
112
113   data |= m_rdy0 << 6;
114   data |= m_rdy1 << 7;
115
116   return data;
117}
118
119
120//-------------------------------------------------
121//  floppy_p2_w -
122//-------------------------------------------------
123
124WRITE8_MEMBER( victor9k_state::floppy_p2_w )
125{
126   /*
127
128       bit     description
129
130       0       START0
131       1       STOP0
132       2       START1
133       3       STOP1
134       4       SEL1
135       5       SEL0
136       6
137       7
138
139   */
140
141   if (BIT(data, 0)) m_floppy0->mon_w(0);
142   if (BIT(data, 1)) m_floppy0->mon_w(1);
143   if (BIT(data, 2)) m_floppy1->mon_w(0);
144   if (BIT(data, 3)) m_floppy1->mon_w(1);
145
146   int sel0 = BIT(data, 5);
147
148   if (m_sel0 && !sel0)
149   {
150      m_da0 = m_da;
151      //m_floppy0->set_rpm();
152   }
153
154   m_sel0 = sel0;
155
156   int sel1 = BIT(data, 4);
157
158   if (m_sel1 && !sel1)
159   {
160      m_da1 = m_da;
161      //m_floppy1->set_rpm();
162   }
163
164   m_sel1 = sel1;
165}
166
167
168//-------------------------------------------------
169//  tach0_r -
170//-------------------------------------------------
171
172READ8_MEMBER( victor9k_state::tach0_r )
173{
174   return m_tach0;
175}
176
177
178//-------------------------------------------------
179//  tach1_r -
180//-------------------------------------------------
181
182READ8_MEMBER( victor9k_state::tach1_r )
183{
184   return m_tach1;
185}
186
187
188//-------------------------------------------------
189//  da_w -
190//-------------------------------------------------
191
192WRITE8_MEMBER( victor9k_state::da_w )
193{
194   m_da = data;
195}
196
197
198
199//**************************************************************************
32200//  ADDRESS MAPS
33201//**************************************************************************
34202
r241777r241778
38206
39207static ADDRESS_MAP_START( victor9k_mem, AS_PROGRAM, 8, victor9k_state )
40208//  AM_RANGE(0x00000, 0xdffff) AM_RAM
41   AM_RANGE(0x20000, 0xdffff) AM_NOP
42209   AM_RANGE(0xe0000, 0xe0001) AM_DEVREADWRITE(I8259A_TAG, pic8259_device, read, write)
43210   AM_RANGE(0xe0020, 0xe0023) AM_DEVREADWRITE(I8253_TAG, pit8253_device, read, write)
44211   AM_RANGE(0xe0040, 0xe0043) AM_DEVREADWRITE(UPD7201_TAG, upd7201_device, cd_ba_r, cd_ba_w)
45   AM_RANGE(0xe8000, 0xe8000) AM_MIRROR(0x7f00) AM_DEVREADWRITE(HD46505S_TAG, mc6845_device, status_r, address_w)
46   AM_RANGE(0xe8001, 0xe8001) AM_MIRROR(0x7f00) AM_DEVREADWRITE(HD46505S_TAG, mc6845_device, register_r, register_w)
47   AM_RANGE(0xe8020, 0xe802f) AM_MIRROR(0x7f00) AM_DEVREADWRITE(M6522_1_TAG, via6522_device, read, write)
48   AM_RANGE(0xe8040, 0xe804f) AM_MIRROR(0x7f00) AM_DEVREADWRITE(M6522_2_TAG, via6522_device, read, write)
49   AM_RANGE(0xe8060, 0xe8061) AM_MIRROR(0x7f00) AM_DEVREADWRITE(MC6852_TAG, mc6852_device, read, write)
50   AM_RANGE(0xe8080, 0xe808f) AM_MIRROR(0x7f00) AM_DEVREADWRITE(M6522_3_TAG, via6522_device, read, write)
51   AM_RANGE(0xe80a0, 0xe80af) AM_MIRROR(0x7f00) AM_DEVREADWRITE(FDC_TAG, victor_9000_fdc_t, cs5_r, cs5_w)
52   AM_RANGE(0xe80c0, 0xe80cf) AM_MIRROR(0x7f00) AM_DEVREADWRITE(FDC_TAG, victor_9000_fdc_t, cs6_r, cs6_w)
53   AM_RANGE(0xe80e0, 0xe80ef) AM_MIRROR(0x7f00) AM_DEVREADWRITE(FDC_TAG, victor_9000_fdc_t, cs7_r, cs7_w)
212   AM_RANGE(0xe8000, 0xe8000) AM_DEVREADWRITE(HD46505S_TAG, mc6845_device, status_r, address_w)
213   AM_RANGE(0xe8001, 0xe8001) AM_DEVREADWRITE(HD46505S_TAG, mc6845_device, register_r, register_w)
214   AM_RANGE(0xe8020, 0xe802f) AM_DEVREADWRITE(M6522_1_TAG, via6522_device, read, write)
215   AM_RANGE(0xe8040, 0xe804f) AM_DEVREADWRITE(M6522_2_TAG, via6522_device, read, write)
216   AM_RANGE(0xe8060, 0xe8061) AM_DEVREADWRITE(MC6852_TAG, mc6852_device, read, write)
217   AM_RANGE(0xe8080, 0xe808f) AM_DEVREADWRITE(M6522_3_TAG, via6522_device, read, write)
218   AM_RANGE(0xe80a0, 0xe80af) AM_DEVREADWRITE(M6522_4_TAG, via6522_device, read, write)
219   AM_RANGE(0xe80c0, 0xe80cf) AM_DEVREADWRITE(M6522_6_TAG, via6522_device, read, write)
220   AM_RANGE(0xe80e0, 0xe80ef) AM_DEVREADWRITE(M6522_5_TAG, via6522_device, read, write)
54221   AM_RANGE(0xf0000, 0xf0fff) AM_MIRROR(0x1000) AM_RAM AM_SHARE("video_ram")
55222   AM_RANGE(0xfe000, 0xfffff) AM_ROM AM_REGION(I8088_TAG, 0)
56223ADDRESS_MAP_END
57224
58225
226//-------------------------------------------------
227//  ADDRESS_MAP( floppy_io )
228//-------------------------------------------------
59229
230static ADDRESS_MAP_START( floppy_io, AS_IO, 8, victor9k_state )
231   AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READ(floppy_p1_r) AM_WRITENOP
232   AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(floppy_p2_r, floppy_p2_w)
233   AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(tach0_r)
234   AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(tach1_r)
235   AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_WRITE(da_w)
236ADDRESS_MAP_END
237
238
239
60240//**************************************************************************
61241//  INPUT PORTS
62242//**************************************************************************
r241777r241778
161341{
162342   m_ssda_irq = state;
163343
164   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_fdc_irq);
344   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
165345}
166346
167347
r241777r241778
233413{
234414   m_via1_irq = state;
235415
236   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_fdc_irq);
416   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
237417}
238418
239419WRITE8_MEMBER( victor9k_state::via2_pa_w )
r241777r241778
300480{
301481   m_via2_irq = state;
302482
303   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_fdc_irq);
483   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
304484}
305485
306486
r241777r241778
340520{
341521   m_via3_irq = state;
342522
343   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_fdc_irq);
523   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
344524}
345525
346526
527WRITE8_MEMBER( victor9k_state::via4_pa_w )
528{
529   /*
530
531       bit     description
532
533       PA0     L0MS0
534       PA1     L0MS1
535       PA2     L0MS2
536       PA3     L0MS3
537       PA4     ST0A
538       PA5     ST0B
539       PA6     ST0C
540       PA7     ST0D
541
542   */
543
544   m_lms = (m_lms & 0xf0) | (data & 0x0f);
545   m_st[0] = data >> 4;
546}
547
548WRITE8_MEMBER( victor9k_state::via4_pb_w )
549{
550   /*
551
552       bit     description
553
554       PB0     L1MS0
555       PB1     L1MS1
556       PB2     L1MS2
557       PB3     L1MS3
558       PB4     ST1A
559       PB5     ST1B
560       PB6     ST1C
561       PB7     ST1D
562
563   */
564
565   m_lms = (data << 4) | (m_lms & 0x0f);
566   m_st[1] = data >> 4;
567}
568
569WRITE_LINE_MEMBER( victor9k_state::mode_w )
570{
571}
572
573WRITE_LINE_MEMBER( victor9k_state::via4_irq_w )
574{
575   m_via4_irq = state;
576
577   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
578}
579
580
581/*
582
583    bit     description
584
585    PA0     E0
586    PA1     E1
587    PA2     I1
588    PA3     E2
589    PA4     E4
590    PA5     E5
591    PA6     I7
592    PA7     E6
593
594*/
595
596WRITE8_MEMBER( victor9k_state::via5_pb_w )
597{
598   /*
599
600       bit     description
601
602       PB0     WD0
603       PB1     WD1
604       PB2     WD2
605       PB3     WD3
606       PB4     WD4
607       PB5     WD5
608       PB6     WD6
609       PB7     WD7
610
611   */
612}
613
614WRITE_LINE_MEMBER( victor9k_state::via5_irq_w )
615{
616   m_via5_irq = state;
617
618   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
619}
620
621
622READ8_MEMBER( victor9k_state::via6_pa_r )
623{
624   /*
625
626       bit     description
627
628       PA0
629       PA1     _TRK0D0
630       PA2
631       PA3     _TRK0D1
632       PA4
633       PA5
634       PA6     WPS
635       PA7     _SYNC
636
637   */
638
639   UINT8 data = 0;
640
641   // track 0 drive A sense
642   data |= m_floppy0->trk00_r() << 1;
643
644   // track 0 drive B sense
645   data |= m_floppy1->trk00_r() << 3;
646
647   // write protect sense
648   data |= (m_drive ? m_floppy1->wpt_r() : m_floppy0->wpt_r()) << 6;
649
650   // disk sync detect
651   data |= m_sync << 7;
652
653   return data;
654}
655
656WRITE8_MEMBER( victor9k_state::via6_pa_w )
657{
658   /*
659
660       bit     description
661
662       PA0     LED0A
663       PA1
664       PA2     LED1A
665       PA3
666       PA4     SIDE SELECT
667       PA5     DRIVE SELECT
668       PA6
669       PA7
670
671   */
672
673   // LED, drive A
674   output_set_led_value(LED_A, BIT(data, 0));
675
676   // LED, drive B
677   output_set_led_value(LED_B, BIT(data, 2));
678
679   // dual side select
680   m_side = BIT(data, 4);
681
682   // select drive A/B
683   m_drive = BIT(data, 5);
684}
685
686READ8_MEMBER( victor9k_state::via6_pb_r )
687{
688   /*
689
690       bit     description
691
692       PB0     RDY0
693       PB1     RDY1
694       PB2
695       PB3     _DS1
696       PB4     _DS0
697       PB5     SINGLE/_DOUBLE SIDED
698       PB6
699       PB7
700
701   */
702
703   UINT8 data = 0;
704
705   // motor speed status, drive A
706   data |= m_rdy0;
707
708   // motor speed status, drive B
709   data |= m_rdy1 << 1;
710
711   // door B sense
712   data |= m_ds1 << 3;
713
714   // door A sense
715   data |= m_ds0 << 4;
716
717   // single/double sided
718   data |= (m_drive ? m_floppy1->twosid_r() : m_floppy0->twosid_r()) << 5;
719
720   return data;
721}
722
723WRITE8_MEMBER( victor9k_state::via6_pb_w )
724{
725   /*
726
727       bit     description
728
729       PB0
730       PB1
731       PB2     _SCRESET
732       PB3
733       PB4
734       PB5
735       PB6     STP0
736       PB7     STP1
737
738   */
739
740   // motor speed controller reset
741   if (!BIT(data, 2))
742      m_fdc_cpu->reset();
743
744   // stepper enable A
745   m_stp[0] = BIT(data, 6);
746
747   // stepper enable B
748   m_stp[1] = BIT(data, 7);
749}
750
751WRITE_LINE_MEMBER( victor9k_state::drw_w )
752{
753}
754
755WRITE_LINE_MEMBER( victor9k_state::erase_w )
756{
757}
758
759WRITE_LINE_MEMBER( victor9k_state::via6_irq_w )
760{
761   m_via6_irq = state;
762
763   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_via4_irq || m_via5_irq || m_via6_irq);
764}
765
766
347767//-------------------------------------------------
348768//  VICTOR9K_KEYBOARD_INTERFACE( kb_intf )
349769//-------------------------------------------------
350770
351771WRITE_LINE_MEMBER( victor9k_state::kbrdy_w )
352772{
353   //logerror("KBRDY %u\n", state);
354773   m_via2->write_cb1(state);
355774
356775   m_pic->ir6_w(state ? CLEAR_LINE : ASSERT_LINE);
r241777r241778
358777
359778WRITE_LINE_MEMBER( victor9k_state::kbdata_w )
360779{
361   //logerror("KBDATA %u\n", state);
362780   m_via2->write_cb2(state);
363781   m_via2->write_pa6(state);
364782}
365783
784//-------------------------------------------------
785//  SLOT_INTERFACE( victor9k_floppies )
786//-------------------------------------------------
366787
367WRITE_LINE_MEMBER( victor9k_state::fdc_irq_w )
788void victor9k_state::ready0_cb(floppy_image_device *device, int state)
368789{
369   m_fdc_irq = state;
790   m_rdy0 = state;
370791
371   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_fdc_irq);
792   m_via5->write_ca2(m_rdy0);
372793}
373794
795int victor9k_state::load0_cb(floppy_image_device *device)
796{
797   m_ds0 = 0;
374798
799   m_via4->write_ca1(m_ds0);
800
801   return IMAGE_INIT_PASS;
802}
803
804void victor9k_state::unload0_cb(floppy_image_device *device)
805{
806   m_ds0 = 1;
807
808   m_via4->write_ca1(m_ds0);
809}
810
811void victor9k_state::ready1_cb(floppy_image_device *device, int state)
812{
813   m_rdy1 = state;
814
815   m_via5->write_cb2(m_rdy1);
816}
817
818int victor9k_state::load1_cb(floppy_image_device *device)
819{
820   m_ds1 = 0;
821
822   m_via4->write_cb1(m_ds1);
823
824   return IMAGE_INIT_PASS;
825}
826
827void victor9k_state::unload1_cb(floppy_image_device *device)
828{
829   m_ds1 = 1;
830
831   m_via4->write_cb1(m_ds1);
832}
833
834static SLOT_INTERFACE_START( victor9k_floppies )
835   SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
836SLOT_INTERFACE_END
837
838
375839//**************************************************************************
376840//  MACHINE INITIALIZATION
377841//**************************************************************************
378842
843//-------------------------------------------------
844//  MACHINE_START( victor9k )
845//-------------------------------------------------
846
379847void victor9k_state::machine_start()
380848{
381   // state saving
382   save_item(NAME(m_brt));
383   save_item(NAME(m_cont));
384   save_item(NAME(m_via1_irq));
385   save_item(NAME(m_via2_irq));
386   save_item(NAME(m_via3_irq));
387   save_item(NAME(m_fdc_irq));
388   save_item(NAME(m_ssda_irq));
849   // set floppy callbacks
850   m_floppy0->setup_ready_cb(floppy_image_device::ready_cb(FUNC(victor9k_state::ready0_cb), this));
851   m_floppy0->setup_load_cb(floppy_image_device::load_cb(FUNC(victor9k_state::load0_cb), this));
852   m_floppy0->setup_unload_cb(floppy_image_device::unload_cb(FUNC(victor9k_state::unload0_cb), this));
853   m_floppy1->setup_ready_cb(floppy_image_device::ready_cb(FUNC(victor9k_state::ready1_cb), this));
854   m_floppy1->setup_load_cb(floppy_image_device::load_cb(FUNC(victor9k_state::load1_cb), this));
855   m_floppy1->setup_unload_cb(floppy_image_device::unload_cb(FUNC(victor9k_state::unload1_cb), this));
389856
390857   // memory banking
391858   address_space &program = m_maincpu->space(AS_PROGRAM);
392859   program.install_ram(0x00000, m_ram->size() - 1, m_ram->pointer());
393}
394860
395void victor9k_state::machine_reset()
396{
397   m_maincpu->reset();
398   m_upd7201->reset();
399   m_ssda->reset();
400   m_via1->reset();
401   m_via2->reset();
402   m_via3->reset();
403   m_crtc->reset();
404   m_fdc->reset();
861   m_via5->write_ca1(m_brdy);
862   m_via6->write_ca1(m_gcrerr);
405863}
406864
407865
866
408867//**************************************************************************
409868//  MACHINE CONFIGURATION
410869//**************************************************************************
r241777r241778
419878   MCFG_CPU_PROGRAM_MAP(victor9k_mem)
420879   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE(I8259A_TAG, pic8259_device, inta_cb)
421880
881   MCFG_CPU_ADD(I8048_TAG, I8048, XTAL_30MHz/6)
882   MCFG_CPU_IO_MAP(floppy_io)
883
422884   // video hardware
423885   MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
424886   MCFG_SCREEN_REFRESH_RATE(50)
r241777r241778
490952   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor9k_state, via3_pb_w))
491953   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor9k_state, via3_irq_w))
492954
955   MCFG_DEVICE_ADD(M6522_4_TAG, VIA6522, XTAL_30MHz/30)
956   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(victor9k_state, via4_pa_w))
957   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor9k_state, via4_pb_w))
958   MCFG_VIA6522_CA2_HANDLER(WRITELINE(victor9k_state, mode_w))
959   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor9k_state, via4_irq_w))
960
961   MCFG_DEVICE_ADD(M6522_5_TAG, VIA6522, XTAL_30MHz/30)
962   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor9k_state, via5_irq_w))
963
964   MCFG_DEVICE_ADD(M6522_6_TAG, VIA6522, XTAL_30MHz/30)
965   MCFG_VIA6522_READPA_HANDLER(READ8(victor9k_state, via6_pa_r))
966   MCFG_VIA6522_READPB_HANDLER(READ8(victor9k_state, via6_pb_r))
967   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(victor9k_state, via6_pa_w))
968   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor9k_state, via6_pb_w))
969   MCFG_VIA6522_CA2_HANDLER(WRITELINE(victor9k_state, drw_w))
970   MCFG_VIA6522_CB2_HANDLER(WRITELINE(victor9k_state, erase_w))
971   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor9k_state, via6_irq_w))
972
973   MCFG_FLOPPY_DRIVE_ADD(I8048_TAG":0", victor9k_floppies, "525qd", floppy_image_device::default_floppy_formats)
974   MCFG_FLOPPY_DRIVE_ADD(I8048_TAG":1", victor9k_floppies, "525qd", floppy_image_device::default_floppy_formats)
975
493976   MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, NULL)
494977   MCFG_RS232_RXD_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, rxa_w))
495978   MCFG_RS232_DCD_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, dcda_w))
r241777r241778
508991   MCFG_VICTOR9K_KBRDY_HANDLER(WRITELINE(victor9k_state, kbrdy_w))
509992   MCFG_VICTOR9K_KBDATA_HANDLER(WRITELINE(victor9k_state, kbdata_w))
510993
511   MCFG_DEVICE_ADD(FDC_TAG, VICTOR_9000_FDC, 0)
512   MCFG_VICTOR_9000_FDC_IRQ_CB(WRITELINE(victor9k_state, fdc_irq_w))
513   MCFG_VICTOR_9000_FDC_SYN_CB(DEVWRITELINE(I8259A_TAG, pic8259_device, ir0_w)) MCFG_DEVCB_XOR(1)
514   MCFG_VICTOR_9000_FDC_LBRDY_CB(INPUTLINE(I8088_TAG, INPUT_LINE_TEST)) MCFG_DEVCB_XOR(1)
515
516994   // internal ram
517995   MCFG_RAM_ADD(RAM_TAG)
518996   MCFG_RAM_DEFAULT_SIZE("128K")
r241777r241778
5411019   ROM_SYSTEM_BIOS( 1, "univ", "Universal" )
5421020   ROMX_LOAD( "v9000 univ. fe f3f7 13db.7j", 0x0000, 0x1000, CRC(25c7a59f) SHA1(8784e9aa7eb9439f81e18b8e223c94714e033911), ROM_BIOS(2) )
5431021   ROMX_LOAD( "v9000 univ. ff f3f7 39fe.8j", 0x1000, 0x1000, CRC(496c7467) SHA1(eccf428f62ef94ab85f4a43ba59ae6a066244a66), ROM_BIOS(2) )
1022
1023   ROM_REGION( 0x400, I8048_TAG, 0)
1024   ROM_LOAD( "36080.5d", 0x000, 0x400, CRC(9bf49f7d) SHA1(b3a11bb65105db66ae1985b6f482aab6ea1da38b) )
1025
1026   ROM_REGION( 0x800, "gcr", 0 )
1027   ROM_LOAD( "100836-001.4k", 0x000, 0x800, CRC(adc601bd) SHA1(6eeff3d2063ae2d97452101aa61e27ef83a467e5) )
5441028ROM_END
5451029
5461030
trunk/src/mess/drivers/x07.c
r241777r241778
15131513   MCFG_GENERIC_LOAD(x07_state, x07_card)
15141514
15151515   /* cassette */
1516   MCFG_CASSETTE_ADD("cassette")
1516   MCFG_CASSETTE_ADD( "cassette" )
15171517   MCFG_CASSETTE_FORMATS(x07_cassette_formats)
15181518   MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED)
15191519   MCFG_CASSETTE_INTERFACE("x07_cass")
15201520
15211521   /* Software lists */
15221522   MCFG_SOFTWARE_LIST_ADD("card_list", "x07_card")
1523   MCFG_SOFTWARE_LIST_ADD("cass_list", "x07_cass")
15241523MACHINE_CONFIG_END
15251524
15261525/* ROM definition */
trunk/src/mess/drivers/xerox820.c
r241777r241778
6969   if (bank)
7070   {
7171      /* ROM */
72      program.install_rom(0x0000, 0x1fff, m_rom->base());
73      program.unmap_readwrite(0x2000, 0x2fff);
72      program.install_rom(0x0000, 0x17ff, m_rom->base());
73      program.unmap_readwrite(0x1800, 0x2fff);
7474      program.install_ram(0x3000, 0x3fff, m_video_ram);
7575      program.unmap_readwrite(0x4000, 0xbfff);
7676   }
trunk/src/mess/includes/at.h
r241777r241778
1717#include "machine/ins8250.h"
1818#include "machine/mc146818.h"
1919#include "machine/pic8259.h"
20#include "bus/lpci/i82371ab.h"
21#include "bus/lpci/i82371sb.h"
22#include "bus/lpci/i82439tx.h"
20#include "bus/pci/i82371ab.h"
21#include "bus/pci/i82371sb.h"
22#include "bus/pci/i82439tx.h"
2323#include "machine/cs8221.h"
2424#include "machine/pit8253.h"
2525#include "machine/wd7600.h"
r241777r241778
2929
3030#include "imagedev/harddriv.h"
3131#include "machine/am9517a.h"
32#include "bus/lpci/pci.h"
32#include "bus/pci/pci.h"
3333
3434#include "sound/dac.h"
3535#include "sound/speaker.h"
trunk/src/mess/includes/mc1502.h
r241777r241778
5959      emu_timer   *keyb_signal_timer;
6060   } m_kbd;
6161
62   UINT8 m_ppi_portb;
63   UINT8 m_ppi_portc;
64   UINT8 m_spkrdata;
62   UINT8                   m_ppi_portb;
63   UINT8                   m_ppi_portc;
64   UINT8 m_mc1502_spkrdata;
65   UINT8 m_mc1502_input;
6566
6667   DECLARE_WRITE_LINE_MEMBER(mc1502_pit8253_out1_changed);
6768   DECLARE_WRITE_LINE_MEMBER(mc1502_pit8253_out2_changed);
trunk/src/mess/includes/victor9k.h
r241777r241778
1616
1717#include "bus/rs232/rs232.h"
1818#include "cpu/i86/i86.h"
19#include "formats/victor9k_dsk.h"
19#include "cpu/mcs48/mcs48.h"
2020#include "imagedev/floppy.h"
2121#include "machine/ram.h"
2222#include "bus/centronics/ctronics.h"
r241777r241778
2727#include "machine/pic8259.h"
2828#include "machine/z80dart.h"
2929#include "machine/victor9kb.h"
30#include "machine/victor9k_fdc.h"
3130#include "sound/hc55516.h"
3231#include "video/mc6845.h"
3332
3433#define I8088_TAG       "8l"
34#define I8048_TAG       "5d"
3535#define I8253_TAG       "13h"
3636#define I8259A_TAG      "7l"
3737#define UPD7201_TAG     "16e"
r241777r241778
4141#define M6522_1_TAG     "m6522_1"
4242#define M6522_2_TAG     "m6522_2"
4343#define M6522_3_TAG     "14l"
44#define M6522_4_TAG     "1f"
45#define M6522_5_TAG     "1k"
46#define M6522_6_TAG     "1h"
4447#define DAC0808_0_TAG   "5b"
4548#define DAC0808_1_TAG   "5c"
4649#define CENTRONICS_TAG  "centronics"
r241777r241778
4851#define RS232_B_TAG     "rs232b"
4952#define SCREEN_TAG      "screen"
5053#define VICTOR9K_KEYBOARD_TAG   "victor9kb"
51#define FDC_TAG         "fdc"
5254
5355class victor9k_state : public driver_device
5456{
5557public:
56   victor9k_state(const machine_config &mconfig, device_type type, const char *tag) :
57      driver_device(mconfig, type, tag),
58      m_maincpu(*this, I8088_TAG),
59      m_ieee488(*this, IEEE488_TAG),
60      m_pic(*this, I8259A_TAG),
61      m_upd7201(*this, UPD7201_TAG),
62      m_ssda(*this, MC6852_TAG),
63      m_via1(*this, M6522_1_TAG),
64      m_via2(*this, M6522_2_TAG),
65      m_via3(*this, M6522_3_TAG),
66      m_cvsd(*this, HC55516_TAG),
67      m_crtc(*this, HD46505S_TAG),
68      m_ram(*this, RAM_TAG),
69      m_kb(*this, VICTOR9K_KEYBOARD_TAG),
70      m_fdc(*this, FDC_TAG),
71      m_rs232a(*this, RS232_A_TAG),
72      m_rs232b(*this, RS232_B_TAG),
73      m_palette(*this, "palette"),
74      m_video_ram(*this, "video_ram"),
75      m_brt(0),
76      m_cont(0),
77      m_via1_irq(CLEAR_LINE),
78      m_via2_irq(CLEAR_LINE),
79      m_via3_irq(CLEAR_LINE),
80      m_fdc_irq(CLEAR_LINE),
81      m_ssda_irq(CLEAR_LINE)
58   victor9k_state(const machine_config &mconfig, device_type type, const char *tag)
59      : driver_device(mconfig, type, tag),
60         m_maincpu(*this, I8088_TAG),
61         m_fdc_cpu(*this, I8048_TAG),
62         m_ieee488(*this, IEEE488_TAG),
63         m_pic(*this, I8259A_TAG),
64         m_upd7201(*this, UPD7201_TAG),
65         m_ssda(*this, MC6852_TAG),
66         m_via1(*this, M6522_1_TAG),
67         m_via2(*this, M6522_2_TAG),
68         m_via3(*this, M6522_3_TAG),
69         m_via4(*this, M6522_4_TAG),
70         m_via5(*this, M6522_5_TAG),
71         m_via6(*this, M6522_6_TAG),
72         m_cvsd(*this, HC55516_TAG),
73         m_crtc(*this, HD46505S_TAG),
74         m_ram(*this, RAM_TAG),
75         m_floppy0(*this, I8048_TAG":0:525qd"),
76         m_floppy1(*this, I8048_TAG":1:525qd"),
77         m_kb(*this, VICTOR9K_KEYBOARD_TAG),
78         m_rs232a(*this, RS232_A_TAG),
79         m_rs232b(*this, RS232_B_TAG),
80         m_video_ram(*this, "video_ram"),
81         m_da(0),
82         m_da0(0),
83         m_da1(0),
84         m_sel0(0),
85         m_sel1(0),
86         m_tach0(0),
87         m_tach1(0),
88         m_rdy0(0),
89         m_rdy1(0),
90         m_ds0(1),
91         m_ds1(1),
92         m_lms(0),
93         m_brdy(1),
94         m_sync(1),
95         m_gcrerr(0),
96         m_palette(*this, "palette")
8297   { }
8398
8499   required_device<cpu_device> m_maincpu;
100   required_device<cpu_device> m_fdc_cpu;
85101   required_device<ieee488_device> m_ieee488;
86102   required_device<pic8259_device> m_pic;
87103   required_device<upd7201_device> m_upd7201;
r241777r241778
89105   required_device<via6522_device> m_via1;
90106   required_device<via6522_device> m_via2;
91107   required_device<via6522_device> m_via3;
108   required_device<via6522_device> m_via4;
109   required_device<via6522_device> m_via5;
110   required_device<via6522_device> m_via6;
92111   required_device<hc55516_device> m_cvsd;
93112   required_device<mc6845_device> m_crtc;
94113   required_device<ram_device> m_ram;
114   required_device<floppy_image_device> m_floppy0;
115   required_device<floppy_image_device> m_floppy1;
95116   required_device<victor9k_keyboard_device> m_kb;
96   required_device<victor_9000_fdc_t> m_fdc;
97117   required_device<rs232_port_device> m_rs232a;
98118   required_device<rs232_port_device> m_rs232b;
99   required_device<palette_device> m_palette;
100   required_shared_ptr<UINT8> m_video_ram;
101119
102120   virtual void machine_start();
103   virtual void machine_reset();
104121
122   DECLARE_READ8_MEMBER( floppy_p1_r );
123   DECLARE_READ8_MEMBER( floppy_p2_r );
124   DECLARE_WRITE8_MEMBER( floppy_p2_w );
125   DECLARE_READ8_MEMBER( tach0_r );
126   DECLARE_READ8_MEMBER( tach1_r );
127   DECLARE_WRITE8_MEMBER( da_w );
128
105129   DECLARE_WRITE8_MEMBER( via1_pa_w );
106130   DECLARE_WRITE_LINE_MEMBER( write_nfrd );
107131   DECLARE_WRITE_LINE_MEMBER( write_ndac );
r241777r241778
118142   DECLARE_WRITE8_MEMBER( via3_pb_w );
119143   DECLARE_WRITE_LINE_MEMBER( via3_irq_w );
120144
121   DECLARE_WRITE_LINE_MEMBER( fdc_irq_w );
145   DECLARE_WRITE8_MEMBER( via4_pa_w );
146   DECLARE_WRITE8_MEMBER( via4_pb_w );
147   DECLARE_WRITE_LINE_MEMBER( mode_w );
148   DECLARE_WRITE_LINE_MEMBER( via4_irq_w );
122149
123   DECLARE_WRITE_LINE_MEMBER( ssda_irq_w );
150   DECLARE_WRITE8_MEMBER( via5_pb_w );
151   DECLARE_WRITE_LINE_MEMBER( via5_irq_w );
124152
153   DECLARE_READ8_MEMBER( via6_pa_r );
154   DECLARE_READ8_MEMBER( via6_pb_r );
155   DECLARE_WRITE8_MEMBER( via6_pa_w );
156   DECLARE_WRITE8_MEMBER( via6_pb_w );
157   DECLARE_WRITE_LINE_MEMBER( drw_w );
158   DECLARE_WRITE_LINE_MEMBER( erase_w );
125159   DECLARE_WRITE_LINE_MEMBER( kbrdy_w );
126160   DECLARE_WRITE_LINE_MEMBER( kbdata_w );
127161   DECLARE_WRITE_LINE_MEMBER( vert_w );
162   DECLARE_WRITE_LINE_MEMBER( via6_irq_w );
128163
164   DECLARE_WRITE_LINE_MEMBER( ssda_irq_w );
129165   MC6845_UPDATE_ROW( crtc_update_row );
130166
167   void ready0_cb(floppy_image_device *, int device);
168   int load0_cb(floppy_image_device *device);
169   void unload0_cb(floppy_image_device *device);
170   void ready1_cb(floppy_image_device *, int device);
171   int load1_cb(floppy_image_device *device);
172   void unload1_cb(floppy_image_device *device);
173
174   enum
175   {
176      LED_A = 0,
177      LED_B
178   };
179
131180   /* video state */
181   required_shared_ptr<UINT8> m_video_ram;
132182   int m_brt;
133183   int m_cont;
134184
r241777r241778
136186   int m_via1_irq;
137187   int m_via2_irq;
138188   int m_via3_irq;
139   int m_fdc_irq;
189   int m_via4_irq;
190   int m_via5_irq;
191   int m_via6_irq;
140192   int m_ssda_irq;
141193
194   /* floppy state */
195   UINT8 m_da;
196   UINT8 m_da0;
197   UINT8 m_da1;
198   int m_sel0;
199   int m_sel1;
200   int m_tach0;
201   int m_tach1;
202   int m_rdy0;
203   int m_rdy1;
204   int m_ds0;
205   int m_ds1;
206   UINT8 m_lms;                         /* motor speed */
207   int m_st[2];                        /* stepper phase */
208   int m_stp[2];                        /* stepper enable */
209   int m_drive;                        /* selected drive */
210   int m_side;                         /* selected side */
211   int m_brdy;
212   int m_sync;
213   int m_gcrerr;
214
142215   DECLARE_WRITE_LINE_MEMBER(mux_serial_b_w);
143216   DECLARE_WRITE_LINE_MEMBER(mux_serial_a_w);
217   required_device<palette_device> m_palette;
144218};
145219
146220#endif
trunk/src/mess/includes/xerox820.h
r241777r241778
9797   DECLARE_WRITE_LINE_MEMBER( fdc_intrq_w );
9898   DECLARE_WRITE_LINE_MEMBER( fdc_drq_w );
9999
100   virtual void bankswitch(int bank);
100   void bankswitch(int bank);
101101   void update_nmi();
102102
103103   /* video state */
trunk/src/mess/layout/merlin.lay
r241777r241778
11<?xml version="1.0"?>
22<mamelayout version="2">
3
4
5<!-- define elements -->
6
7   <element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element>
8   <element name="static_red"><rect><color red="0.8" green="0.14" blue="0.18" /></rect></element>
9   <element name="static_darkred"><rect><color red="0.64" green="0.10" blue="0.13" /></rect></element>
10
11   <!-- buttons are not pushbuttons, they are pressed very lightly -->
12
13   <element name="button" defstate="0">
14      <text state="0" string=" "><color red="0.0" green="0.0" blue="0.0" /></text>
15      <text state="1" string=" "><color red="0.0" green="0.0" blue="0.0" /></text>
16      <disk state="1">
17         <bounds x="0.13" y="0.13" width="0.74" height="0.74"/>
18         <color red="0.33" green="0.33" blue="0.22" />
19      </disk>
3   <element name="background">
4      <rect>
5         <bounds left="0" top="0" right="1" bottom="1" />
6         <color red="0.0" green="0.0" blue="0.0" />
7      </rect>
208   </element>
219
2210   <element name="led" defstate="0">
23      <text string=" "><color red="0.0" green="0.0" blue="0.0" /></text>
24      <disk>
25         <bounds x="0.30" y="0.30" width="0.40" height="0.40"/>
26         <color red="0.0" green="0.0" blue="0.0" />
27      </disk>
28      <disk state="0">
29         <bounds x="0.36" y="0.36" width="0.28" height="0.28"/>
30         <color red="0.25" green="0.05" blue="0.04" />
31      </disk>
32      <disk state="1">
33         <bounds x="0.36" y="0.36" width="0.28" height="0.28"/>
34         <color red="1.0" green="0.2" blue="0.15" />
35      </disk>
11      <rect state="0">
12         <color red="0.2" green="0" blue="0" />
13      </rect>
14      <rect state="1">
15         <color red="0.9" green="0" blue="0" />
16      </rect>
3617   </element>
3718
38
39   <!-- number panels -->
40
41   <element name="panel_0">
42      <rect><color red="0.64" green="0.10" blue="0.13" /></rect>
43      <disk>
44         <bounds x="0.13" y="0.13" width="0.74" height="0.74"/>
45         <color red="0.68" green="0.675" blue="0.66" />
46      </disk>
47      <text string="0" align="2">
48         <bounds left="0.0" right="0.96" top="0.75" bottom="1.0"/>
49         <color red="0.71" green="0.22" blue="0.28" />
19   <element name="0" defstate="0">
20      <rect>
21         <bounds x="2" y="2" width="48" height="48"/>
22         <color red="0.1" green="0.1" blue="0.1" />
23      </rect>
24      <rect state="0">
25         <bounds x="0" y="0" width="48" height="48"/>
26         <color red="0.25" green="0.25" blue="0.25" />
27      </rect>
28      <text string="0" state="0">
29         <bounds x="8" y="24" width="40" height="20"/>
30         <color red="1.0" green="1.0" blue="1.0" />
5031      </text>
32      <rect state="1">
33         <bounds x="2" y="2" width="48" height="48"/>
34         <color red="0.25" green="0.25" blue="0.25" />
35      </rect>
36      <text string="0" state="1">
37         <bounds x="10" y="26" width="40" height="20"/>
38         <color red="1.0" green="1.0" blue="1.0" />
39      </text>
5140   </element>
5241
53   <element name="panel_1">
54      <rect><color red="0.64" green="0.10" blue="0.13" /></rect>
55      <disk>
56         <bounds x="0.13" y="0.13" width="0.74" height="0.74"/>
57         <color red="0.68" green="0.675" blue="0.66" />
58      </disk>
59      <text string="1" align="2">
60         <bounds left="0.0" right="0.96" top="0.75" bottom="1.0"/>
61         <color red="0.71" green="0.22" blue="0.28" />
42   <element name="1" defstate="0">
43      <rect>
44         <bounds x="2" y="2" width="48" height="48"/>
45         <color red="0.1" green="0.1" blue="0.1" />
46      </rect>
47      <rect state="0">
48         <bounds x="0" y="0" width="48" height="48"/>
49         <color red="0.25" green="0.25" blue="0.25" />
50      </rect>
51      <text string="1" state="0">
52         <bounds x="8" y="24" width="40" height="20"/>
53         <color red="1.0" green="1.0" blue="1.0" />
6254      </text>
55      <rect state="1">
56         <bounds x="2" y="2" width="48" height="48"/>
57         <color red="0.25" green="0.25" blue="0.25" />
58      </rect>
59      <text string="1" state="1">
60         <bounds x="10" y="26" width="40" height="20"/>
61         <color red="1.0" green="1.0" blue="1.0" />
62      </text>
6363   </element>
6464
65   <element name="panel_2">
66      <rect><color red="0.64" green="0.10" blue="0.13" /></rect>
67      <disk>
68         <bounds x="0.13" y="0.13" width="0.74" height="0.74"/>
69         <color red="0.68" green="0.675" blue="0.66" />
70      </disk>
71      <text string="2" align="2">
72         <bounds left="0.0" right="0.96" top="0.75" bottom="1.0"/>
73         <color red="0.71" green="0.22" blue="0.28" />
65   <element name="2" defstate="0">
66      <rect>
67         <bounds x="2" y="2" width="48" height="48"/>
68         <color red="0.1" green="0.1" blue="0.1" />
69      </rect>
70      <rect state="0">
71         <bounds x="0" y="0" width="48" height="48"/>
72         <color red="0.25" green="0.25" blue="0.25" />
73      </rect>
74      <text string="2" state="0">
75         <bounds x="8" y="24" width="40" height="20"/>
76         <color red="1.0" green="1.0" blue="1.0" />
7477      </text>
78      <rect state="1">
79         <bounds x="2" y="2" width="48" height="48"/>
80         <color red="0.25" green="0.25" blue="0.25" />
81      </rect>
82      <text string="2" state="1">
83         <bounds x="10" y="26" width="40" height="20"/>
84         <color red="1.0" green="1.0" blue="1.0" />
85      </text>
7586   </element>
7687
77   <element name="panel_3">
78      <rect><color red="0.64" green="0.10" blue="0.13" /></rect>
79      <disk>
80         <bounds x="0.13" y="0.13" width="0.74" height="0.74"/>
81         <color red="0.68" green="0.675" blue="0.66" />
82      </disk>
83      <text string="3" align="2">
84         <bounds left="0.0" right="0.96" top="0.75" bottom="1.0"/>
85         <color red="0.71" green="0.22" blue="0.28" />
88   <element name="3" defstate="0">
89      <rect>
90         <bounds x="2" y="2" width="48" height="48"/>
91         <color red="0.1" green="0.1" blue="0.1" />
92      </rect>
93      <rect state="0">
94         <bounds x="0" y="0" width="48" height="48"/>
95         <color red="0.25" green="0.25" blue="0.25" />
96      </rect>
97      <text string="3" state="0">
98         <bounds x="8" y="24" width="40" height="20"/>
99         <color red="1.0" green="1.0" blue="1.0" />
86100      </text>
101      <rect state="1">
102         <bounds x="2" y="2" width="48" height="48"/>
103         <color red="0.25" green="0.25" blue="0.25" />
104      </rect>
105      <text string="3" state="1">
106         <bounds x="10" y="26" width="40" height="20"/>
107         <color red="1.0" green="1.0" blue="1.0" />
108      </text>
87109   </element>
88110
89   <element name="panel_4">
90      <rect><color red="0.64" green="0.10" blue="0.13" /></rect>
91      <disk>
92         <bounds x="0.13" y="0.13" width="0.74" height="0.74"/>
93         <color red="0.68" green="0.675" blue="0.66" />
94      </disk>
95      <text string="4" align="2">
96         <bounds left="0.0" right="0.96" top="0.75" bottom="1.0"/>
97         <color red="0.71" green="0.22" blue="0.28" />
111   <element name="4" defstate="0">
112      <rect>
113         <bounds x="2" y="2" width="48" height="48"/>
114         <color red="0.1" green="0.1" blue="0.1" />
115      </rect>
116      <rect state="0">
117         <bounds x="0" y="0" width="48" height="48"/>
118         <color red="0.25" green="0.25" blue="0.25" />
119      </rect>
120      <text string="4" state="0">
121         <bounds x="8" y="24" width="40" height="20"/>
122         <color red="1.0" green="1.0" blue="1.0" />
98123      </text>
124      <rect state="1">
125         <bounds x="2" y="2" width="48" height="48"/>
126         <color red="0.25" green="0.25" blue="0.25" />
127      </rect>
128      <text string="4" state="1">
129         <bounds x="10" y="26" width="40" height="20"/>
130         <color red="1.0" green="1.0" blue="1.0" />
131      </text>
99132   </element>
100133
101   <element name="panel_5">
102      <rect><color red="0.64" green="0.10" blue="0.13" /></rect>
103      <disk>
104         <bounds x="0.13" y="0.13" width="0.74" height="0.74"/>
105         <color red="0.68" green="0.675" blue="0.66" />
106      </disk>
107      <text string="5" align="2">
108         <bounds left="0.0" right="0.96" top="0.75" bottom="1.0"/>
109         <color red="0.71" green="0.22" blue="0.28" />
134   <element name="5" defstate="0">
135      <rect>
136         <bounds x="2" y="2" width="48" height="48"/>
137         <color red="0.1" green="0.1" blue="0.1" />
138      </rect>
139      <rect state="0">
140         <bounds x="0" y="0" width="48" height="48"/>
141         <color red="0.25" green="0.25" blue="0.25" />
142      </rect>
143      <text string="5" state="0">
144         <bounds x="8" y="24" width="40" height="20"/>
145         <color red="1.0" green="1.0" blue="1.0" />
110146      </text>
147      <rect state="1">
148         <bounds x="2" y="2" width="48" height="48"/>
149         <color red="0.25" green="0.25" blue="0.25" />
150      </rect>
151      <text string="5" state="1">
152         <bounds x="10" y="26" width="40" height="20"/>
153         <color red="1.0" green="1.0" blue="1.0" />
154      </text>
111155   </element>
112156
113   <element name="panel_6">
114      <rect><color red="0.64" green="0.10" blue="0.13" /></rect>
115      <disk>
116         <bounds x="0.13" y="0.13" width="0.74" height="0.74"/>
117         <color red="0.68" green="0.675" blue="0.66" />
118      </disk>
119      <text string="6" align="2">
120         <bounds left="0.0" right="0.96" top="0.75" bottom="1.0"/>
121         <color red="0.71" green="0.22" blue="0.28" />
157   <element name="6" defstate="0">
158      <rect>
159         <bounds x="2" y="2" width="48" height="48"/>
160         <color red="0.1" green="0.1" blue="0.1" />
161      </rect>
162      <rect state="0">
163         <bounds x="0" y="0" width="48" height="48"/>
164         <color red="0.25" green="0.25" blue="0.25" />
165      </rect>
166      <text string="6" state="0">
167         <bounds x="8" y="24" width="40" height="20"/>
168         <color red="1.0" green="1.0" blue="1.0" />
122169      </text>
170      <rect state="1">
171         <bounds x="2" y="2" width="48" height="48"/>
172         <color red="0.25" green="0.25" blue="0.25" />
173      </rect>
174      <text string="6" state="1">
175         <bounds x="10" y="26" width="40" height="20"/>
176         <color red="1.0" green="1.0" blue="1.0" />
177      </text>
123178   </element>
124179
125   <element name="panel_7">
126      <rect><color red="0.64" green="0.10" blue="0.13" /></rect>
127      <disk>
128         <bounds x="0.13" y="0.13" width="0.74" height="0.74"/>
129         <color red="0.68" green="0.675" blue="0.66" />
130      </disk>
131      <text string="7" align="2">
132         <bounds left="0.0" right="0.96" top="0.75" bottom="1.0"/>
133         <color red="0.71" green="0.22" blue="0.28" />
180   <element name="7" defstate="0">
181      <rect>
182         <bounds x="2" y="2" width="48" height="48"/>
183         <color red="0.1" green="0.1" blue="0.1" />
184      </rect>
185      <rect state="0">
186         <bounds x="0" y="0" width="48" height="48"/>
187         <color red="0.25" green="0.25" blue="0.25" />
188      </rect>
189      <text string="7" state="0">
190         <bounds x="8" y="24" width="40" height="20"/>
191         <color red="1.0" green="1.0" blue="1.0" />
134192      </text>
193      <rect state="1">
194         <bounds x="2" y="2" width="48" height="48"/>
195         <color red="0.25" green="0.25" blue="0.25" />
196      </rect>
197      <text string="7" state="1">
198         <bounds x="10" y="26" width="40" height="20"/>
199         <color red="1.0" green="1.0" blue="1.0" />
200      </text>
135201   </element>
136202
137   <element name="panel_8">
138      <rect><color red="0.64" green="0.10" blue="0.13" /></rect>
139      <disk>
140         <bounds x="0.13" y="0.13" width="0.74" height="0.74"/>
141         <color red="0.68" green="0.675" blue="0.66" />
142      </disk>
143      <text string="8" align="2">
144         <bounds left="0.0" right="0.96" top="0.75" bottom="1.0"/>
145         <color red="0.71" green="0.22" blue="0.28" />
203   <element name="8" defstate="0">
204      <rect>
205         <bounds x="2" y="2" width="48" height="48"/>
206         <color red="0.1" green="0.1" blue="0.1" />
207      </rect>
208      <rect state="0">
209         <bounds x="0" y="0" width="48" height="48"/>
210         <color red="0.25" green="0.25" blue="0.25" />
211      </rect>
212      <text string="8" state="0">
213         <bounds x="8" y="24" width="40" height="20"/>
214         <color red="1.0" green="1.0" blue="1.0" />
146215      </text>
216      <rect state="1">
217         <bounds x="2" y="2" width="48" height="48"/>
218         <color red="0.25" green="0.25" blue="0.25" />
219      </rect>
220      <text string="8" state="1">
221         <bounds x="10" y="26" width="40" height="20"/>
222         <color red="1.0" green="1.0" blue="1.0" />
223      </text>
147224   </element>
148225
149   <element name="panel_9">
150      <rect><color red="0.64" green="0.10" blue="0.13" /></rect>
151      <disk>
152         <bounds x="0.13" y="0.13" width="0.74" height="0.74"/>
153         <color red="0.68" green="0.675" blue="0.66" />
154      </disk>
155      <text string="9" align="2">
156         <bounds left="0.0" right="0.96" top="0.75" bottom="1.0"/>
157         <color red="0.71" green="0.22" blue="0.28" />
226   <element name="9" defstate="0">
227      <rect>
228         <bounds x="2" y="2" width="48" height="48"/>
229         <color red="0.1" green="0.1" blue="0.1" />
230      </rect>
231      <rect state="0">
232         <bounds x="0" y="0" width="48" height="48"/>
233         <color red="0.25" green="0.25" blue="0.25" />
234      </rect>
235      <text string="9" state="0">
236         <bounds x="8" y="24" width="40" height="20"/>
237         <color red="1.0" green="1.0" blue="1.0" />
158238      </text>
239      <rect state="1">
240         <bounds x="2" y="2" width="48" height="48"/>
241         <color red="0.25" green="0.25" blue="0.25" />
242      </rect>
243      <text string="9" state="1">
244         <bounds x="10" y="26" width="40" height="20"/>
245         <color red="1.0" green="1.0" blue="1.0" />
246      </text>
159247   </element>
160248
161   <element name="panel_10">
162      <rect><color red="0.64" green="0.10" blue="0.13" /></rect>
163      <disk>
164         <bounds x="0.13" y="0.13" width="0.74" height="0.74"/>
165         <color red="0.68" green="0.675" blue="0.66" />
166      </disk>
167      <text string="10" align="2">
168         <bounds left="0.0" right="0.98" top="0.75" bottom="1.0"/>
169         <color red="0.71" green="0.22" blue="0.28" />
249   <element name="10" defstate="0">
250      <rect>
251         <bounds x="2" y="2" width="48" height="48"/>
252         <color red="0.1" green="0.1" blue="0.1" />
253      </rect>
254      <rect state="0">
255         <bounds x="0" y="0" width="48" height="48"/>
256         <color red="0.25" green="0.25" blue="0.25" />
257      </rect>
258      <text string="10" state="0">
259         <bounds x="8" y="24" width="40" height="20"/>
260         <color red="1.0" green="1.0" blue="1.0" />
170261      </text>
262      <rect state="1">
263         <bounds x="2" y="2" width="48" height="48"/>
264         <color red="0.25" green="0.25" blue="0.25" />
265      </rect>
266      <text string="10" state="1">
267         <bounds x="10" y="26" width="40" height="20"/>
268         <color red="1.0" green="1.0" blue="1.0" />
269      </text>
171270   </element>
172271
173
174   <!-- bottom panels -->
175
176   <element name="panel_newgame">
177      <rect><color red="0.68" green="0.675" blue="0.66" /></rect>
178      <text string="NEW">
179         <bounds x="0.0" y="0.25" width="1.0" height="0.24"/>
180         <color red="0.0" green="0.0" blue="0.0" />
272   <element name="new_game" defstate="0">
273      <rect>
274         <bounds x="2" y="2" width="48" height="48"/>
275         <color red="0.1" green="0.1" blue="0.1" />
276      </rect>
277      <rect state="0">
278         <bounds x="0" y="0" width="48" height="48"/>
279         <color red="0.25" green="0.25" blue="0.25" />
280      </rect>
281      <text string="NEW GAME" state="0">
282         <bounds x="8" y="24" width="40" height="20"/>
283         <color red="1.0" green="1.0" blue="1.0" />
181284      </text>
182      <text string="GAME">
183         <bounds x="0.0" y="0.50" width="1.0" height="0.24"/>
184         <color red="0.0" green="0.0" blue="0.0" />
285      <rect state="1">
286         <bounds x="2" y="2" width="48" height="48"/>
287         <color red="0.25" green="0.25" blue="0.25" />
288      </rect>
289      <text string="NEW GAME" state="1">
290         <bounds x="10" y="26" width="40" height="20"/>
291         <color red="1.0" green="1.0" blue="1.0" />
185292      </text>
186293   </element>
187294
188   <element name="panel_samegame">
189      <rect><color red="0.68" green="0.675" blue="0.66" /></rect>
190      <text string="SAME">
191         <bounds x="0.0" y="0.25" width="1.0" height="0.24"/>
192         <color red="0.0" green="0.0" blue="0.0" />
295   <element name="same_game" defstate="0">
296      <rect>
297         <bounds x="2" y="2" width="48" height="48"/>
298         <color red="0.1" green="0.1" blue="0.1" />
299      </rect>
300      <rect state="0">
301         <bounds x="0" y="0" width="48" height="48"/>
302         <color red="0.25" green="0.25" blue="0.25" />
303      </rect>
304      <text string="SAME GAME" state="0">
305         <bounds x="8" y="24" width="40" height="20"/>
306         <color red="1.0" green="1.0" blue="1.0" />
193307      </text>
194      <text string="GAME">
195         <bounds x="0.0" y="0.50" width="1.0" height="0.24"/>
196         <color red="0.0" green="0.0" blue="0.0" />
308      <rect state="1">
309         <bounds x="2" y="2" width="48" height="48"/>
310         <color red="0.25" green="0.25" blue="0.25" />
311      </rect>
312      <text string="SAME GAME" state="1">
313         <bounds x="10" y="26" width="40" height="20"/>
314         <color red="1.0" green="1.0" blue="1.0" />
197315      </text>
198316   </element>
199317
200   <element name="panel_hitme">
201      <rect><color red="0.68" green="0.675" blue="0.66" /></rect>
202      <text string="HIT">
203         <bounds x="0.0" y="0.25" width="1.0" height="0.24"/>
204         <color red="0.0" green="0.0" blue="0.0" />
318   <element name="hit_me" defstate="0">
319      <rect>
320         <bounds x="2" y="2" width="48" height="48"/>
321         <color red="0.1" green="0.1" blue="0.1" />
322      </rect>
323      <rect state="0">
324         <bounds x="0" y="0" width="48" height="48"/>
325         <color red="0.25" green="0.25" blue="0.25" />
326      </rect>
327      <text string="HIT ME" state="0">
328         <bounds x="8" y="24" width="40" height="20"/>
329         <color red="1.0" green="1.0" blue="1.0" />
205330      </text>
206      <text string="ME">
207         <bounds x="0.0" y="0.50" width="1.0" height="0.24"/>
208         <color red="0.0" green="0.0" blue="0.0" />
331      <rect state="1">
332         <bounds x="2" y="2" width="48" height="48"/>
333         <color red="0.25" green="0.25" blue="0.25" />
334      </rect>
335      <text string="HIT ME" state="1">
336         <bounds x="10" y="26" width="40" height="20"/>
337         <color red="1.0" green="1.0" blue="1.0" />
209338      </text>
210339   </element>
211340
212   <element name="panel_compturn">
213      <rect><color red="0.68" green="0.675" blue="0.66" /></rect>
214      <text string="COMP">
215         <bounds x="0.0" y="0.25" width="1.0" height="0.24"/>
216         <color red="0.0" green="0.0" blue="0.0" />
341   <element name="comp_turn" defstate="0">
342      <rect>
343         <bounds x="2" y="2" width="48" height="48"/>
344         <color red="0.1" green="0.1" blue="0.1" />
345      </rect>
346      <rect state="0">
347         <bounds x="0" y="0" width="48" height="48"/>
348         <color red="0.25" green="0.25" blue="0.25" />
349      </rect>
350      <text string="COMP TURN" state="0">
351         <bounds x="8" y="24" width="40" height="20"/>
352         <color red="1.0" green="1.0" blue="1.0" />
217353      </text>
218      <text string="TURN">
219         <bounds x="0.0" y="0.50" width="1.0" height="0.24"/>
220         <color red="0.0" green="0.0" blue="0.0" />
354      <rect state="1">
355         <bounds x="2" y="2" width="48" height="48"/>
356         <color red="0.25" green="0.25" blue="0.25" />
357      </rect>
358      <text string="COMP TURN" state="1">
359         <bounds x="10" y="26" width="40" height="20"/>
360         <color red="1.0" green="1.0" blue="1.0" />
221361      </text>
222362   </element>
223363
364   <view name="Default Layout">
224365
225
226<!-- build screen -->
227
228   <view name="Internal Layout">
229      <bounds left="0" right="88" top="0" bottom="216" />
230      <bezel element="static_black">
231         <bounds left="0" right="88" top="0" bottom="216" />
366      <!-- Black background -->
367      <bezel element="background">
368         <bounds left="0" top="0" right="200" bottom="250" />
232369      </bezel>
233370
234   <!-- (don't care about the upper loudspeaker+logo part) -->
371      <!-- LEDs and number buttons -->
235372
236      <bezel element="static_darkred">
237         <bounds x="10" y="4" width="68" height="160" />
373      <bezel name="led_0" element="led">
374         <bounds x="100" y="20" width="20" height="10" />
238375      </bezel>
376      <bezel element="0" inputtag="O0" inputmask="0x01">
377         <bounds x="100" y="32" width="20" height="10" />
378      </bezel>
239379
240      <bezel element="static_red">
241         <bounds x="7" y="0" width="74" height="8" />
380      <bezel name="led_1" element="led">
381         <bounds x="50" y="50" width="20" height="10" />
242382      </bezel>
243      <bezel element="static_red">
244         <bounds x="4" y="14" width="80" height="128" />
383      <bezel element="1" inputtag="O0" inputmask="0x02">
384         <bounds x="50" y="62" width="20" height="10" />
245385      </bezel>
246      <bezel element="static_red">
247         <bounds x="7" y="148" width="74" height="62" />
248      </bezel>
249386
250
251   <!-- number panels -->
252
253      <bezel element="panel_0">
254         <bounds x="34" y="20" width="20" height="20" />
387      <bezel name="led_2" element="led">
388         <bounds x="100" y="50" width="20" height="10" />
255389      </bezel>
256      <bezel name="lamp0" element="led">
257         <bounds x="34" y="20" width="20" height="20" />
390      <bezel element="2" inputtag="O0" inputmask="0x08">
391         <bounds x="100" y="62" width="20" height="10" />
258392      </bezel>
259      <bezel element="button" inputtag="O.0" inputmask="0x01">
260         <bounds x="34" y="20" width="20" height="20" />
261         <color alpha="0.2" />
262      </bezel>
263393
264      <bezel element="panel_1">
265         <bounds x="10" y="44" width="20" height="20" />
394      <bezel name="led_3" element="led">
395         <bounds x="150" y="50" width="20" height="10" />
266396      </bezel>
267      <bezel name="lamp1" element="led">
268         <bounds x="10" y="44" width="20" height="20" />
397      <bezel element="3" inputtag="O0" inputmask="0x04">
398         <bounds x="150" y="62" width="20" height="10" />
269399      </bezel>
270      <bezel element="button" inputtag="O.0" inputmask="0x02">
271         <bounds x="10" y="44" width="20" height="20" />
272         <color alpha="0.2" />
400
401
402      <bezel name="led_4" element="led">
403         <bounds x="50" y="80" width="20" height="10" />
273404      </bezel>
274      <bezel element="panel_2">
275         <bounds x="34" y="44" width="20" height="20" />
405      <bezel element="4" inputtag="O1" inputmask="0x01">
406         <bounds x="50" y="92" width="20" height="10" />
276407      </bezel>
277      <bezel name="lamp2" element="led">
278         <bounds x="34" y="44" width="20" height="20" />
408
409      <bezel name="led_5" element="led">
410         <bounds x="100" y="80" width="20" height="10" />
279411      </bezel>
280      <bezel element="button" inputtag="O.0" inputmask="0x08">
281         <bounds x="34" y="44" width="20" height="20" />
282         <color alpha="0.2" />
412      <bezel element="5" inputtag="O1" inputmask="0x02">
413         <bounds x="100" y="92" width="20" height="10" />
283414      </bezel>
284      <bezel element="panel_3">
285         <bounds x="58" y="44" width="20" height="20" />
286      </bezel>
287      <bezel name="lamp3" element="led">
288         <bounds x="58" y="44" width="20" height="20" />
289      </bezel>
290      <bezel element="button" inputtag="O.0" inputmask="0x04">
291         <bounds x="58" y="44" width="20" height="20" />
292         <color alpha="0.2" />
293      </bezel>
294415
295      <bezel element="panel_4">
296         <bounds x="10" y="68" width="20" height="20" />
416      <bezel name="led_6" element="led">
417         <bounds x="150" y="80" width="20" height="10" />
297418      </bezel>
298      <bezel name="lamp4" element="led">
299         <bounds x="10" y="68" width="20" height="20" />
419      <bezel element="6" inputtag="O1" inputmask="0x08">
420         <bounds x="150" y="92" width="20" height="10" />
300421      </bezel>
301      <bezel element="button" inputtag="O.1" inputmask="0x01">
302         <bounds x="10" y="68" width="20" height="20" />
303         <color alpha="0.2" />
304      </bezel>
305      <bezel element="panel_5">
306         <bounds x="34" y="68" width="20" height="20" />
307      </bezel>
308      <bezel name="lamp5" element="led">
309         <bounds x="34" y="68" width="20" height="20" />
310      </bezel>
311      <bezel element="button" inputtag="O.1" inputmask="0x02">
312         <bounds x="34" y="68" width="20" height="20" />
313         <color alpha="0.2" />
314      </bezel>
315      <bezel element="panel_6">
316         <bounds x="58" y="68" width="20" height="20" />
317      </bezel>
318      <bezel name="lamp6" element="led">
319         <bounds x="58" y="68" width="20" height="20" />
320      </bezel>
321      <bezel element="button" inputtag="O.1" inputmask="0x08">
322         <bounds x="58" y="68" width="20" height="20" />
323         <color alpha="0.2" />
324      </bezel>
325422
326      <bezel element="panel_7">
327         <bounds x="10" y="92" width="20" height="20" />
423
424      <bezel name="led_7" element="led">
425         <bounds x="50" y="110" width="20" height="10" />
328426      </bezel>
329      <bezel name="lamp7" element="led">
330         <bounds x="10" y="92" width="20" height="20" />
427      <bezel element="7" inputtag="O1" inputmask="0x04">
428         <bounds x="50" y="122" width="20" height="10" />
331429      </bezel>
332      <bezel element="button" inputtag="O.1" inputmask="0x04">
333         <bounds x="10" y="92" width="20" height="20" />
334         <color alpha="0.2" />
430      <bezel name="led_8" element="led">
431         <bounds x="100" y="110" width="20" height="10" />
335432      </bezel>
336      <bezel element="panel_8">
337         <bounds x="34" y="92" width="20" height="20" />
433      <bezel element="8" inputtag="O2" inputmask="0x01">
434         <bounds x="100" y="122" width="20" height="10" />
338435      </bezel>
339      <bezel name="lamp8" element="led">
340         <bounds x="34" y="92" width="20" height="20" />
436      <bezel name="led_9" element="led">
437         <bounds x="150" y="110" width="20" height="10" />
341438      </bezel>
342      <bezel element="button" inputtag="O.2" inputmask="0x01">
343         <bounds x="34" y="92" width="20" height="20" />
344         <color alpha="0.2" />
439      <bezel element="9" inputtag="O2" inputmask="0x02">
440         <bounds x="150" y="122" width="20" height="10" />
345441      </bezel>
346      <bezel element="panel_9">
347         <bounds x="58" y="92" width="20" height="20" />
348      </bezel>
349      <bezel name="lamp9" element="led">
350         <bounds x="58" y="92" width="20" height="20" />
351      </bezel>
352      <bezel element="button" inputtag="O.2" inputmask="0x02">
353         <bounds x="58" y="92" width="20" height="20" />
354         <color alpha="0.2" />
355      </bezel>
356442
357      <bezel element="panel_10">
358         <bounds x="34" y="116" width="20" height="20" />
443
444      <bezel name="led_10" element="led">
445         <bounds x="100" y="140" width="20" height="10" />
359446      </bezel>
360      <bezel name="lamp10" element="led">
361         <bounds x="34" y="116" width="20" height="20" />
447      <bezel element="10" inputtag="O2" inputmask="0x08">
448         <bounds x="100" y="152" width="20" height="10" />
362449      </bezel>
363      <bezel element="button" inputtag="O.2" inputmask="0x08">
364         <bounds x="34" y="116" width="20" height="20" />
365         <color alpha="0.2" />
366      </bezel>
367450
368451
369   <!-- bottom panels -->
452      <!-- Other buttons -->
370453
371      <bezel element="panel_newgame">
372         <bounds x="21" y="156" width="20" height="20" />
454      <bezel element="new_game" inputtag="O3" inputmask="0x08">
455         <bounds x="75" y="170" width="30" height="30" />
373456      </bezel>
374      <bezel element="button" inputtag="O.3" inputmask="0x08">
375         <bounds x="21" y="156" width="20" height="20" />
376         <color alpha="0.2" />
457      <bezel element="same_game" inputtag="O2" inputmask="0x04">
458         <bounds x="125" y="170" width="30" height="30" />
377459      </bezel>
378460
379      <bezel element="panel_samegame">
380         <bounds x="47" y="156" width="20" height="20" />
461      <bezel element="hit_me" inputtag="O3" inputmask="0x04">
462         <bounds x="75" y="210" width="30" height="30" />
381463      </bezel>
382      <bezel element="button" inputtag="O.2" inputmask="0x04">
383         <bounds x="47" y="156" width="20" height="20" />
384         <color alpha="0.2" />
464      <bezel element="comp_turn" inputtag="O3" inputmask="0x02">
465         <bounds x="125" y="210" width="30" height="30" />
385466      </bezel>
386
387      <bezel element="panel_hitme">
388         <bounds x="21" y="182" width="20" height="20" />
389      </bezel>
390      <bezel element="button" inputtag="O.3" inputmask="0x04">
391         <bounds x="21" y="182" width="20" height="20" />
392         <color alpha="0.2" />
393      </bezel>
394
395      <bezel element="panel_compturn">
396         <bounds x="47" y="182" width="20" height="20" />
397      </bezel>
398      <bezel element="button" inputtag="O.3" inputmask="0x02">
399         <bounds x="47" y="182" width="20" height="20" />
400         <color alpha="0.2" />
401      </bezel>
402
403467   </view>
404468</mamelayout>
trunk/src/mess/layout/simon.lay
r241777r241778
1<?xml version="1.0"?>
2<mamelayout version="2">
3
4
5<!-- define elements -->
6
7   <element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element>
8   <element name="disk_black"><disk><color red="0.0" green="0.0" blue="0.0" /></disk></element>
9   <element name="disk_grey"><disk><color red="0.6" green="0.6" blue="0.6" /></disk></element>
10
11<!-- TODO: add these, maybe -->
12   <element name="text_game">
13      <rect><color red="0.6" green="0.6" blue="0.6" /></rect>
14      <text string="GAME">
15         <color red="0.0" green="0.0" blue="0.0" />
16      </text>
17   </element>
18   <element name="text_skill">
19      <rect><color red="0.6" green="0.6" blue="0.6" /></rect>
20      <text string="SKILL LEVEL">
21         <color red="0.0" green="0.0" blue="0.0" />
22      </text>
23   </element>
24
25   <element name="text_last">
26      <rect><color red="0.6" green="0.6" blue="0.6" /></rect>
27      <text string="LAST">
28         <color red="0.0" green="0.0" blue="0.0" />
29      </text>
30   </element>
31   <element name="text_start">
32      <rect><color red="0.6" green="0.6" blue="0.6" /></rect>
33      <text string="START">
34         <color red="0.0" green="0.0" blue="0.0" />
35      </text>
36   </element>
37   <element name="text_long">
38      <rect><color red="0.6" green="0.6" blue="0.6" /></rect>
39      <text string="LONGEST">
40         <color red="0.0" green="0.0" blue="0.0" />
41      </text>
42   </element>
43
44   <element name="button_r" defstate="0">
45      <disk><color red="0.0" green="0.0" blue="0.0" /></disk>
46      <disk state="0">
47         <color red="0.8" green="0.25" blue="0.1" />
48         <bounds x="0.2" y="0.2" width="0.6" height="0.6" />
49      </disk>
50      <disk state="1">
51         <color red="0.8" green="0.25" blue="0.1" />
52         <bounds x="0.28" y="0.28" width="0.44" height="0.44" />
53      </disk>
54   </element>
55   <element name="button_y" defstate="0">
56      <disk><color red="0.0" green="0.0" blue="0.0" /></disk>
57      <disk state="0">
58         <color red="0.8" green="0.78" blue="0.1" />
59         <bounds x="0.2" y="0.2" width="0.6" height="0.6" />
60      </disk>
61      <disk state="1">
62         <color red="0.8" green="0.78" blue="0.1" />
63         <bounds x="0.28" y="0.28" width="0.44" height="0.44" />
64      </disk>
65   </element>
66
67   <element name="lamp_g" defstate="0">
68      <rect state="0"><color red="0.15" green="0.5" blue="0.1" /></rect>
69      <rect state="1"><color red="0.52" green="1.0" blue="0.4" /></rect>
70   </element>
71   <element name="lamp_r" defstate="0">
72      <rect state="0"><color red="0.5" green="0.15" blue="0.1" /></rect>
73      <rect state="1"><color red="1.0" green="0.4" blue="0.28" /></rect>
74   </element>
75   <element name="lamp_y" defstate="0">
76      <rect state="0"><color red="0.5" green="0.45" blue="0.1" /></rect>
77      <rect state="1"><color red="1.0" green="0.93" blue="0.4" /></rect>
78   </element>
79   <element name="lamp_b" defstate="0">
80      <rect state="0"><color red="0.1" green="0.15" blue="0.5" /></rect>
81      <rect state="1"><color red="0.3" green="0.42" blue="1.0" /></rect>
82   </element>
83
84
85
86<!-- build screen -->
87
88   <view name="Internal Layout">
89      <bounds left="0" right="200" top="0" bottom="200" />
90      <bezel element="static_black">
91         <bounds left="0" right="200" top="0" bottom="200" />
92      </bezel>
93
94   <!-- big lamps -->
95
96      <bezel name="lamp0" element="lamp_g" inputtag="IN.1" inputmask="0x01" >
97         <bounds left="0" right="91" top="0" bottom="50" />
98      </bezel>
99      <bezel name="lamp0" element="lamp_g" inputtag="IN.1" inputmask="0x01" >
100         <bounds left="0" right="50" top="0" bottom="91" />
101      </bezel>
102      <bezel name="lamp0" element="lamp_g" inputtag="IN.1" inputmask="0x01" >
103         <bounds x="40" y="40" width="20" height="20" />
104      </bezel>
105
106      <bezel name="lamp1" element="lamp_r" inputtag="IN.1" inputmask="0x02" >
107         <bounds left="109" right="200" top="0" bottom="50" />
108      </bezel>
109      <bezel name="lamp1" element="lamp_r" inputtag="IN.1" inputmask="0x02" >
110         <bounds left="150" right="200" top="0" bottom="91" />
111      </bezel>
112      <bezel name="lamp1" element="lamp_r" inputtag="IN.1" inputmask="0x02" >
113         <bounds x="140" y="40" width="20" height="20" />
114      </bezel>
115
116      <bezel name="lamp2" element="lamp_y" inputtag="IN.1" inputmask="0x04" >
117         <bounds left="0" right="91" top="150" bottom="200" />
118      </bezel>
119      <bezel name="lamp2" element="lamp_y" inputtag="IN.1" inputmask="0x04" >
120         <bounds left="0" right="50" top="109" bottom="200" />
121      </bezel>
122      <bezel name="lamp2" element="lamp_y" inputtag="IN.1" inputmask="0x04" >
123         <bounds x="40" y="140" width="20" height="20" />
124      </bezel>
125
126      <bezel name="lamp3" element="lamp_b" inputtag="IN.1" inputmask="0x08" >
127         <bounds left="109" right="200" top="150" bottom="200" />
128      </bezel>
129      <bezel name="lamp3" element="lamp_b" inputtag="IN.1" inputmask="0x08" >
130         <bounds left="150" right="200" top="109" bottom="200" />
131      </bezel>
132      <bezel name="lamp3" element="lamp_b" inputtag="IN.1" inputmask="0x08" >
133         <bounds x="140" y="140" width="20" height="20" />
134      </bezel>
135
136
137      <bezel element="static_black">
138         <bounds x="0" y="90" width="200" height="20" />
139      </bezel>
140      <bezel element="static_black">
141         <bounds x="90" y="0" width="20" height="200" />
142      </bezel>
143      <bezel element="disk_black">
144         <bounds x="35" y="35" width="130" height="130" />
145      </bezel>
146
147      <bezel element="disk_grey">
148         <bounds x="50" y="50" width="100" height="100" />
149      </bezel>
150      <bezel element="static_black">
151         <bounds x="52" y="90" width="96" height="1" />
152      </bezel>
153
154
155   <!-- other controls -->
156
157      <bezel element="text_last">
158         <bounds x="65" y="110" width="20" height="4" />
159      </bezel>
160      <bezel element="button_y" inputtag="IN.2" inputmask="0x02">
161         <bounds x="71" y="115" width="8" height="8" />
162      </bezel>
163
164      <bezel element="text_start">
165         <bounds x="90" y="110" width="20" height="4" />
166      </bezel>
167      <bezel element="button_r" inputtag="IN.2" inputmask="0x01">
168         <bounds x="96" y="115" width="8" height="8" />
169      </bezel>
170
171      <bezel element="text_long">
172         <bounds x="115" y="110" width="20" height="4" />
173      </bezel>
174      <bezel element="button_y" inputtag="IN.2" inputmask="0x04">
175         <bounds x="121" y="115" width="8" height="8" />
176      </bezel>
177
178
179   </view>
180</mamelayout>
trunk/src/mess/machine/at.c
r241777r241778
300300MACHINE_RESET_MEMBER(at_state,at)
301301{
302302   m_at_spkrdata = 0;
303   m_pit_out2 = 1;
303   m_pit_out2 = 0;
304304   m_dma_channel = -1;
305305   m_cur_eop = false;
306306}
trunk/src/mess/machine/bebox.c
r241777r241778
9393
9494/* Components */
9595#include "video/pc_vga.h"
96#include "bus/lpci/cirrus.h"
96#include "bus/pci/cirrus.h"
9797#include "cpu/powerpc/ppc.h"
9898#include "machine/ins8250.h"
9999#include "machine/upd765.h"
r241777r241778
101101#include "machine/pic8259.h"
102102#include "machine/am9517a.h"
103103#include "machine/ataintf.h"
104#include "bus/lpci/pci.h"
104#include "bus/pci/pci.h"
105105#include "machine/intelfsh.h"
106106#include "machine/53c810.h"
107107#include "machine/ram.h"
trunk/src/mess/machine/genpc.c
r241777r241778
572572   m_u73_q2 = 0;
573573   m_out1 = 2; // initial state of pit output is undefined
574574   m_pc_spkrdata = 0;
575   m_pit_out2 = 1;
575   m_pit_out2 = 0;
576576   m_dma_channel = -1;
577577   m_cur_eop = false;
578578   memset(m_dma_offset,0,sizeof(m_dma_offset));
trunk/src/mess/machine/ms7004.c
r241777r241778
1/*
2    Electronika MS 7004 keyboard (DEC LK-201 workalike with extra keys
3    for Cyrillic characters).
4
5    To do:
6    - debug keymap
7    - receive data from host (not used by KSM but used by other boards)
8    - connect LEDs and speaker
9*/
10
11#include "emu.h"
12#include "ms7004.h"
13
14#define VERBOSE_DBG 1       /* general debug messages */
15
16#define DBG_LOG(N,M,A) \
17   do { \
18   if(VERBOSE_DBG>=N) \
19      { \
20         logerror("%11.6f at %s: ",machine().time().as_double(),machine().describe_context()); \
21         logerror A; \
22      } \
23   } while (0)
24
25//**************************************************************************
26//  MACROS / CONSTANTS
27//**************************************************************************
28
29#define MS7004_CPU_TAG   "i8048"
30#define MS7004_SPK_TAG   "beeper"
31
32
33//**************************************************************************
34//  DEVICE DEFINITIONS
35//**************************************************************************
36
37const device_type MS7004 = &device_creator<ms7004_device>;
38
39ROM_START( ms7004 )
40   ROM_REGION (0x800, MS7004_CPU_TAG, 0)
41   ROM_LOAD ("mc7004_keyboard_original.rom", 0x0000, 0x800, CRC(69fcab53) SHA1(2d7cc7cd182f2ee09ecf2c539e33db3c2195f778))
42ROM_END
43
44//-------------------------------------------------
45//  ADDRESS_MAP
46//-------------------------------------------------
47
48static ADDRESS_MAP_START( ms7004_map, AS_IO, 8, ms7004_device )
49   AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_WRITE(p1_w)
50   AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(p2_w)
51   AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(t1_r)
52   AM_RANGE(MCS48_PORT_PROG, MCS48_PORT_PROG) AM_DEVWRITE("i8243", i8243_device, i8243_prog_w)
53ADDRESS_MAP_END
54
55//-------------------------------------------------
56//  MACHINE_CONFIG
57//-------------------------------------------------
58
59static MACHINE_CONFIG_FRAGMENT( ms7004 )
60   MCFG_CPU_ADD(MS7004_CPU_TAG, I8048, XTAL_4_608MHz)
61   MCFG_CPU_IO_MAP(ms7004_map)
62
63   MCFG_I8243_ADD("i8243", NOOP, WRITE8(ms7004_device, i8243_port_w))
64
65   MCFG_SPEAKER_STANDARD_MONO("mono")
66   MCFG_SOUND_ADD(MS7004_SPK_TAG, BEEP, 0)
67   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
68MACHINE_CONFIG_END
69
70
71//-------------------------------------------------
72//  machine_config_additions - device-specific
73//  machine configurations
74//-------------------------------------------------
75
76machine_config_constructor ms7004_device::device_mconfig_additions() const
77{
78   return MACHINE_CONFIG_NAME( ms7004 );
79}
80
81const rom_entry *ms7004_device::device_rom_region() const
82{
83   return ROM_NAME( ms7004 );
84}
85
86//-------------------------------------------------
87//  INPUT_PORTS( ms7004 )
88//-------------------------------------------------
89/*
90bit   sig   XSn   Đ’Đ n
91---   ---   ---   ---
920   8   16   15
931   9   15   14
942   10   14   13
953   11   13   12
964   12   19   16
975   13   12   11
986   14   11   10
997   15   10   9
1008   16   9   8
1019   17   8   7
10210   18   7   6
10311   19   6   5
10412   20   3   1
10513   21   1   2
10614   22   4   3
10715   23   5   4
108
1090xc9   KEY_LANGLE_RANGLE   'рДзДрĐČĐœĐ°Ń ĐșлаĐČОша'
1100xbc   KEY_DELETE   Đ—Đ‘
1110xbd   KEY_RETURN   Đ’Đš
1120xbf   KEY_TILDE   '; +'
1130xc4   -      'ĐȘ'
1140xca   -      '/ ?'
1150xed   KEY_PERIOD   'Đź @'
1160xf1   -      '_'
117<...>
118
1190x56   KEY_F1      СбОП КАДР
1200x57   KEY_F2      ПЕЧАбЬ КАДРА
1210x58   KEY_F3      ПАУЗА
1220x59   KEY_F4      ĐŁĐĄĐą РЕЖИМА
1230x5a   KEY_F5      Đ€5
124
1250x64   KEY_F6      ĐŸĐ Đ•Đ Đ«Đ’
1260x65   KEY_F7      ПРОДОЛЖ
1270x66   KEY_F8      ОбМЕН
1280x67   KEY_F9      ОСНОВН КАДР
1290x69   KEY_F10      ВЫЄОД
130
1310x71   KEY_F11      Đ€11 (АР2)
1320x72   KEY_F12      Đ€12 (Вй)
1330x73   KEY_F13      Đ€13 (ПС)
1340x74   KEY_F14      ДОП ВАРИАНб
135
1360x7c   KEY_HELP   ĐŸĐœ
1370x7d   KEY_MENU   Đ˜ĐĄĐŸ
138
1390x80   KEY_F17      Đ€17
1400x81   KEY_F18      Đ€18
1410x82   KEY_F19      Đ€19
1420x83   KEY_F20      Đ€20
143
1440xb0   KEY_LOCK   Đ€ĐšĐĄ
1450xae   KEY_SHIFT   Đ’Đ 
1460xaf   KEY_CTRL   ĐĄĐŁ
147
1480xb1   KEY_META   ĐšĐœĐŸ
1490xb2   -      Đ ĐŁĐĄ/ЛАб
150
1510x8a   KEY_FIND   ĐĐą
1520x8b   KEY_INSERT_HERE   Đ’ĐĄĐą
1530x8c   KEY_REMOVE   ĐŁĐ”АЛ
1540x8d   KEY_SELECT   Đ’ЫБР
1550x8e   KEY_PREV_SCREEN   ĐŸĐ Đ•Đ” КАДР
1560x8f   KEY_NEXT_SCREEN   ĐĄĐ›Đ•Đ” КАДР
157
158nothing sends '@' or '`'
159
160`/~   sends ^/~
1612/@   sends 2/"
1626/^   sends 6/&
1637/&   sends 7/'
1648/ *   sends 8/(
1659/(   sends 9/)
1660/)   sends 0/0
167-/_   sends _/_
168+/=   sends -/=
169;/:   sends ;/+
170'/"   sends :/ *
171
172F10   sends ^C
173F11   sends ESC
174F12   sends ^H
175*/
176INPUT_PORTS_START( ms7004 )
177   PORT_START("KBD12")   // vertical row 1
178   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Print Screen (F2)") PORT_CODE(KEYCODE_F2)
179   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Hold Screen (F1)") PORT_CODE(KEYCODE_F1)
180   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) // '{' / '|'
181   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) // '+'
182   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB)
183   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL)
184   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Caps Lock") PORT_CODE(KEYCODE_CAPSLOCK) // what
185   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LShift") PORT_CODE(KEYCODE_LSHIFT)
186
187   PORT_START("KBD13")   // vertical row 2
188   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Setup (F3)") PORT_CODE(KEYCODE_F3)
189   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Data / Talk (F4)") PORT_CODE(KEYCODE_F4)
190   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("1") PORT_CODE(KEYCODE_1)
191   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("J") PORT_CODE(KEYCODE_J)
192   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("C") PORT_CODE(KEYCODE_C)
193   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F") PORT_CODE(KEYCODE_F)
194   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Rus/Lat") PORT_CODE(KEYCODE_ESC)
195   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Compose") PORT_CODE(KEYCODE_LALT)
196
197   PORT_START("KBD14")   // vertical row 3
198   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Break (F5)") PORT_CODE(KEYCODE_F5)
199   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
200   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("2") PORT_CODE(KEYCODE_2)
201   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("U") PORT_CODE(KEYCODE_U)
202   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Y") PORT_CODE(KEYCODE_Y)
203   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Tilde") PORT_CODE(KEYCODE_TILDE) // ^
204   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Q") PORT_CODE(KEYCODE_Q)
205   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
206
207   PORT_START("KBD15")   // vertical row 4
208   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
209   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("3") PORT_CODE(KEYCODE_3)
210   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("4") PORT_CODE(KEYCODE_4)
211   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("K") PORT_CODE(KEYCODE_K)
212   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("W") PORT_CODE(KEYCODE_W)
213   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("S") PORT_CODE(KEYCODE_S)
214   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
215   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
216
217   PORT_START("KBD11")   // vertical row 5
218   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Interrupt (F6)") PORT_CODE(KEYCODE_F6)
219   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("5") PORT_CODE(KEYCODE_5)
220   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("E") PORT_CODE(KEYCODE_E)
221   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("P") PORT_CODE(KEYCODE_P)
222   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("A") PORT_CODE(KEYCODE_A)
223   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("M") PORT_CODE(KEYCODE_M)
224   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
225   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
226
227   PORT_START("KBD10")   // vertical row 6
228   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Resume (F7)") PORT_CODE(KEYCODE_F7)
229   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("6") PORT_CODE(KEYCODE_6)
230   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("N") PORT_CODE(KEYCODE_N)
231   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("G") PORT_CODE(KEYCODE_G)
232   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("R") PORT_CODE(KEYCODE_R)
233   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("T") PORT_CODE(KEYCODE_T)
234   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("I") PORT_CODE(KEYCODE_I)
235   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE)
236
237   PORT_START("KBD9")   // vertical row 7
238   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Cancel (F8)") PORT_CODE(KEYCODE_F8)
239   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Main Screen (F9)") PORT_CODE(KEYCODE_F9)
240   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("7") PORT_CODE(KEYCODE_7)
241   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE)
242   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("]") PORT_CODE(KEYCODE_CLOSEBRACE)
243   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("O") PORT_CODE(KEYCODE_O)
244   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("X") PORT_CODE(KEYCODE_X)
245   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("B") PORT_CODE(KEYCODE_B)
246
247   PORT_START("KBD8")   // vertical row 8
248   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Exit (F10)") PORT_CODE(KEYCODE_F10)
249   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("9") PORT_CODE(KEYCODE_9)
250   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("8") PORT_CODE(KEYCODE_8)
251   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Z") PORT_CODE(KEYCODE_Z)
252   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("D") PORT_CODE(KEYCODE_D)
253   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("L") PORT_CODE(KEYCODE_L)
254   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) // '@'
255   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA)
256
257   PORT_START("KBD7")   // vertical row 9
258   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
259   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ESC (F11)") PORT_CODE(KEYCODE_F11)
260   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("0") PORT_CODE(KEYCODE_0)
261   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("=") PORT_CODE(KEYCODE_EQUALS)
262   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("H") PORT_CODE(KEYCODE_H)
263   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("V") PORT_CODE(KEYCODE_V)
264   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\\") PORT_CODE(KEYCODE_BACKSLASH)
265   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH)
266
267   PORT_START("KBD6")   // vertical row 10
268   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("BS (F12)") PORT_CODE(KEYCODE_F12)
269   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LF (F13)") PORT_CODE(KEYCODE_PRTSCR)
270   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) // '}'
271   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
272   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("'") PORT_CODE(KEYCODE_QUOTE) // ':'
273   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) // 'ъ'
274   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(".") PORT_CODE(KEYCODE_STOP)
275   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS)
276
277   PORT_START("KBD5")   // vertical row 11
278   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Additional Options (F14)") PORT_CODE(KEYCODE_PAUSE)
279   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
280   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Delete <X") PORT_CODE(KEYCODE_BACKSPACE)
281   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) // ???
282   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER)
283   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
284   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RShift") PORT_CODE(KEYCODE_RSHIFT)
285   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
286
287   PORT_START("KBD3")   // vertical row 12
288   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Help (F15)") PORT_CODE(KEYCODE_RALT)
289   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Insert Here") PORT_CODE(KEYCODE_HOME)
290   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Find") PORT_CODE(KEYCODE_INSERT)
291   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Select") PORT_CODE(KEYCODE_DEL)
292   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Up") PORT_CODE(KEYCODE_UP)
293   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
294   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT)
295   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
296
297   PORT_START("KBD2")   // vertical row 13
298   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
299   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Remove") PORT_CODE(KEYCODE_PGUP)
300   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Next [v]") PORT_CODE(KEYCODE_PGDN)
301   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Previous [^]") PORT_CODE(KEYCODE_END)
302   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
303   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT)
304   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN)
305   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
306
307   PORT_START("KBD1")   // vertical row 14
308   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Do (F16)") PORT_CODE(KEYCODE_RCONTROL)
309   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
310   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PF1") PORT_CODE(KEYCODE_NUMLOCK)
311   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num 7") PORT_CODE(KEYCODE_7_PAD)
312   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num 4") PORT_CODE(KEYCODE_4_PAD)
313   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num 1") PORT_CODE(KEYCODE_1_PAD)
314   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num 2") PORT_CODE(KEYCODE_2_PAD)
315   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num 0") PORT_CODE(KEYCODE_0_PAD)
316
317   PORT_START("KBD0")   // vertical row 15
318   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F17")
319   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F18")
320   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PF2") PORT_CODE(KEYCODE_SLASH_PAD)
321   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PF3") PORT_CODE(KEYCODE_ASTERISK)
322   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num 8") PORT_CODE(KEYCODE_8_PAD)
323   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num 5") PORT_CODE(KEYCODE_5_PAD)
324   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num 6") PORT_CODE(KEYCODE_6_PAD)
325   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num 3") PORT_CODE(KEYCODE_3_PAD)
326
327   PORT_START("KBD4")   // vertical row 16
328   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F19")
329   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F20")
330   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PF4") PORT_CODE(KEYCODE_MINUS_PAD)
331   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num 9") PORT_CODE(KEYCODE_9_PAD)
332   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num ,") PORT_CODE(KEYCODE_PLUS_PAD)
333   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num -")
334   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num .") PORT_CODE(KEYCODE_DEL_PAD)  // "." on num.pad
335   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER_PAD)
336INPUT_PORTS_END
337
338
339//-------------------------------------------------
340//  input_ports - device-specific input ports
341//-------------------------------------------------
342
343ioport_constructor ms7004_device::device_input_ports() const
344{
345   return INPUT_PORTS_NAME( ms7004 );
346}
347
348//**************************************************************************
349//  LIVE DEVICE
350//**************************************************************************
351
352//-------------------------------------------------
353//  ms7004_device - constructor
354//-------------------------------------------------
355
356ms7004_device::ms7004_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
357   : device_t(mconfig, MS7004, "MS7004 keyboard", tag, owner, clock, "ms7004", __FILE__),
358//   device_serial_interface(mconfig, *this),
359   m_maincpu(*this, MS7004_CPU_TAG),
360   m_speaker(*this, MS7004_SPK_TAG),
361   m_i8243(*this, "i8243"),
362   m_kbd0(*this, "KBD0"),
363   m_kbd1(*this, "KBD1"),
364   m_kbd2(*this, "KBD2"),
365   m_kbd3(*this, "KBD3"),
366   m_kbd4(*this, "KBD4"),
367   m_kbd5(*this, "KBD5"),
368   m_kbd6(*this, "KBD6"),
369   m_kbd7(*this, "KBD7"),
370   m_kbd8(*this, "KBD8"),
371   m_kbd9(*this, "KBD9"),
372   m_kbd10(*this, "KBD10"),
373   m_kbd11(*this, "KBD11"),
374   m_kbd12(*this, "KBD12"),
375   m_kbd13(*this, "KBD13"),
376   m_kbd14(*this, "KBD14"),
377   m_kbd15(*this, "KBD15"),
378   m_tx_handler(*this)
379{
380}
381
382//-------------------------------------------------
383//  device_start - device-specific startup
384//-------------------------------------------------
385
386void ms7004_device::device_start()
387{
388   m_tx_handler.resolve_safe();
389}
390
391
392//-------------------------------------------------
393//  device_reset - device-specific reset
394//-------------------------------------------------
395
396void ms7004_device::device_reset()
397{
398}
399
400
401//-------------------------------------------------
402//  p1_w -
403//-------------------------------------------------
404
405WRITE8_MEMBER( ms7004_device::p1_w )
406{
407   /*
408       bit     description
409
410       0       Matrix row bit 0
411       1       Matrix row bit 1
412       2       Matrix row bit 2
413       3       Speaker
414       4       -STROBE (to matrix mux)
415       5       LED "Latin"
416       6
417       7       Serial TX
418   */
419   DBG_LOG(1,0,( "%s: p1_w %02x = send %d\n", tag(), data, BIT(data, 7)));
420
421   m_p1 = data;
422   m_tx_handler(BIT(data, 7));
423}
424
425
426//-------------------------------------------------
427//  p2_w -
428//-------------------------------------------------
429
430WRITE8_MEMBER( ms7004_device::p2_w )
431{
432   /*
433       bit     description
434
435       0       Matrix columns, to 8243 (port 4)
436       1       Matrix columns, to 8243 (port 5)
437       2       Matrix columns, to 8243 (port 6)
438       3       Matrix columns, to 8243 (port 7)
439       4       LED "Wait"
440       5       LED "Compose"
441       6       LED "Caps"
442       7       LED "Hold"
443   */
444   DBG_LOG(2,0,( "%s: p2_w %02x = col %d\n", tag(), data, data&15));
445
446   m_p2 = data;
447   m_i8243->i8243_p2_w(space, offset, data);
448}
449
450
451//-------------------------------------------------
452//  prog_w -
453//-------------------------------------------------
454
455WRITE8_MEMBER( ms7004_device::i8243_port_w )
456{
457   int sense = 0;
458
459   DBG_LOG(2,0,( "%s: 8243 port %d data %02xH\n",
460      tag(), offset + 4, data));
461   
462   if (data) {
463      switch(offset << 4 | data) {
464         case 0x01: sense = m_kbd0->read(); break;
465         case 0x02: sense = m_kbd1->read(); break;
466         case 0x04: sense = m_kbd2->read(); break;
467         case 0x08: sense = m_kbd3->read(); break;
468         case 0x11: sense = m_kbd4->read(); break;
469         case 0x12: sense = m_kbd5->read(); break;
470         case 0x14: sense = m_kbd6->read(); break;
471         case 0x18: sense = m_kbd7->read(); break;
472         case 0x21: sense = m_kbd8->read(); break;
473         case 0x22: sense = m_kbd9->read(); break;
474         case 0x24: sense = m_kbd10->read(); break;
475         case 0x28: sense = m_kbd11->read(); break;
476         case 0x31: sense = m_kbd12->read(); break;
477         case 0x32: sense = m_kbd13->read(); break;
478         case 0x34: sense = m_kbd14->read(); break;
479         case 0x38: sense = m_kbd15->read(); break;
480      }
481      m_keylatch = BIT(sense, (m_p1 & 7));
482      DBG_LOG(2,0,( "%s: row %d col %02x t1 %d\n",
483         tag(), (m_p1 & 7), (offset << 4 | data), m_keylatch));
484   }
485}
486
487
488//-------------------------------------------------
489//  t1_r -
490//-------------------------------------------------
491
492READ8_MEMBER( ms7004_device::t1_r )
493{
494   if (!BIT(m_p1,4))
495      return m_keylatch;
496   else
497      return 0;
498}
trunk/src/mess/machine/ms7004.h
r241777r241778
1#pragma once
2
3#ifndef __MS7004_H__
4#define __MS7004_H__
5
6#include "emu.h"
7#include "cpu/mcs48/mcs48.h"
8#include "machine/i8243.h"
9#include "sound/beep.h"
10
11//**************************************************************************
12//  MACROS / CONSTANTS
13//**************************************************************************
14
15
16//**************************************************************************
17//  INTERFACE CONFIGURATION MACROS
18//**************************************************************************
19
20#define MCFG_MS7004_TX_HANDLER(_cb) \
21   devcb = &ms7004_device::set_tx_handler(*device, DEVCB_##_cb);
22
23
24//**************************************************************************
25//  TYPE DEFINITIONS
26//**************************************************************************
27
28// ======================> ms7004_device
29
30class ms7004_device : public device_t //, public device_serial_interface
31{
32public:
33   // construction/destruction
34   ms7004_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
35
36   template<class _Object> static devcb_base &set_tx_handler(device_t &device, _Object wr) { return downcast<ms7004_device &>(device).m_tx_handler.set_callback(wr); }
37
38   DECLARE_WRITE8_MEMBER( p1_w );
39   DECLARE_WRITE8_MEMBER( p2_w );
40   DECLARE_READ8_MEMBER( t1_r );
41   DECLARE_WRITE8_MEMBER( i8243_port_w );
42
43protected:
44   // device-level overrides
45   virtual machine_config_constructor device_mconfig_additions() const;
46   virtual const rom_entry *device_rom_region() const;
47   virtual ioport_constructor device_input_ports() const;
48   virtual void device_start();
49   virtual void device_reset();
50
51private:
52   required_device<cpu_device> m_maincpu;
53   required_device<beep_device> m_speaker;
54   required_device<i8243_device> m_i8243;
55
56   required_ioport m_kbd0;
57   required_ioport m_kbd1;
58   required_ioport m_kbd2;
59   required_ioport m_kbd3;
60   required_ioport m_kbd4;
61   required_ioport m_kbd5;
62   required_ioport m_kbd6;
63   required_ioport m_kbd7;
64   required_ioport m_kbd8;
65   required_ioport m_kbd9;
66   required_ioport m_kbd10;
67   required_ioport m_kbd11;
68   required_ioport m_kbd12;
69   required_ioport m_kbd13;
70   required_ioport m_kbd14;
71   required_ioport m_kbd15;
72
73   int m_keylatch;                 // keyboard row latch
74   UINT8 m_p1;
75   UINT8 m_p2;
76
77   devcb_write_line m_tx_handler;
78};
79
80// device type definition
81extern const device_type MS7004;
82
83#endif
trunk/src/mess/machine/victor9k_fdc.c
r241777r241778
1// license:BSD-3-Clause
2// copyright-holders:Curt Coder
3/**********************************************************************
4
5    Victor 9000 floppy disk controller emulation
6
7    Copyright MESS Team.
8    Visit http://mamedev.org for licensing and usage restrictions.
9
10**********************************************************************/
11
12/*
13
14    TODO:
15
16   - disk error 2 (cannot find block header?)
17   - 8048 spindle speed control
18    - read PLL
19    - write logic
20
21*/
22
23#include "victor9k_fdc.h"
24
25
26
27//**************************************************************************
28//  MACROS / CONSTANTS
29//**************************************************************************
30
31#define LOG 0
32#define LOG_VIA 0
33#define LOG_SCP 0
34
35#define I8048_TAG       "5d"
36#define M6522_4_TAG     "1f"
37#define M6522_5_TAG     "1k"
38#define M6522_6_TAG     "1h"
39
40
41
42//**************************************************************************
43//  DEVICE DEFINITIONS
44//**************************************************************************
45
46const device_type VICTOR_9000_FDC = &device_creator<victor_9000_fdc_t>;
47
48
49//-------------------------------------------------
50//  ROM( victor_9000_fdc )
51//-------------------------------------------------
52
53ROM_START( victor_9000_fdc )
54   ROM_REGION( 0x400, I8048_TAG, 0)
55   ROM_LOAD( "36080.5d", 0x000, 0x400, CRC(9bf49f7d) SHA1(b3a11bb65105db66ae1985b6f482aab6ea1da38b) )
56
57   ROM_REGION( 0x800, "gcr", 0 )
58   ROM_LOAD( "100836-001.4k", 0x000, 0x800, CRC(adc601bd) SHA1(6eeff3d2063ae2d97452101aa61e27ef83a467e5) )
59ROM_END
60
61
62//-------------------------------------------------
63//  rom_region - device-specific ROM region
64//-------------------------------------------------
65
66const rom_entry *victor_9000_fdc_t::device_rom_region() const
67{
68   return ROM_NAME( victor_9000_fdc );
69}
70
71
72//-------------------------------------------------
73//  ADDRESS_MAP( floppy_io )
74//-------------------------------------------------
75
76static ADDRESS_MAP_START( floppy_io, AS_IO, 8, victor_9000_fdc_t )
77   AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READ(floppy_p1_r) AM_WRITENOP
78   AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(floppy_p2_r, floppy_p2_w)
79   AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(tach0_r)
80   AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(tach1_r)
81   AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_WRITE(da_w)
82ADDRESS_MAP_END
83
84
85//-------------------------------------------------
86//  SLOT_INTERFACE( victor9k_floppies )
87//-------------------------------------------------
88
89int victor_9000_fdc_t::load0_cb(floppy_image_device *device)
90{
91   m_via4->write_ca1(0);
92
93   return IMAGE_INIT_PASS;
94}
95
96void victor_9000_fdc_t::unload0_cb(floppy_image_device *device)
97{
98   m_via4->write_ca1(1);
99}
100
101int victor_9000_fdc_t::load1_cb(floppy_image_device *device)
102{
103   m_via4->write_cb1(0);
104
105   return IMAGE_INIT_PASS;
106}
107
108void victor_9000_fdc_t::unload1_cb(floppy_image_device *device)
109{
110   m_via4->write_cb1(1);
111}
112
113static SLOT_INTERFACE_START( victor9k_floppies )
114   SLOT_INTERFACE( "525ssqd", FLOPPY_525_SSQD ) // Tandon TM100-3 with custom electronics
115   SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) // Tandon TM100-4 with custom electronics
116SLOT_INTERFACE_END
117
118FLOPPY_FORMATS_MEMBER( victor_9000_fdc_t::floppy_formats )
119   FLOPPY_VICTOR_9000_FORMAT
120FLOPPY_FORMATS_END
121
122
123//-------------------------------------------------
124//  MACHINE_CONFIG_FRAGMENT( victor_9000_fdc )
125//-------------------------------------------------
126
127static MACHINE_CONFIG_FRAGMENT( victor_9000_fdc )
128   MCFG_CPU_ADD(I8048_TAG, I8048, XTAL_30MHz/6)
129   MCFG_CPU_IO_MAP(floppy_io)
130
131   MCFG_DEVICE_ADD(M6522_4_TAG, VIA6522, XTAL_30MHz/30)
132   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(victor_9000_fdc_t, via4_pa_w))
133   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor_9000_fdc_t, via4_pb_w))
134   MCFG_VIA6522_CA2_HANDLER(WRITELINE(victor_9000_fdc_t, wrsync_w))
135   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor_9000_fdc_t, via4_irq_w))
136
137   MCFG_DEVICE_ADD(M6522_5_TAG, VIA6522, XTAL_30MHz/30)
138   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor_9000_fdc_t, via5_irq_w))
139   MCFG_VIA6522_READPA_HANDLER(READ8(victor_9000_fdc_t, via5_pa_r))
140   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor_9000_fdc_t, via5_pb_w))
141
142   MCFG_DEVICE_ADD(M6522_6_TAG, VIA6522, XTAL_30MHz/30)
143   MCFG_VIA6522_READPA_HANDLER(READ8(victor_9000_fdc_t, via6_pa_r))
144   MCFG_VIA6522_READPB_HANDLER(READ8(victor_9000_fdc_t, via6_pb_r))
145   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(victor_9000_fdc_t, via6_pa_w))
146   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor_9000_fdc_t, via6_pb_w))
147   MCFG_VIA6522_CA2_HANDLER(WRITELINE(victor_9000_fdc_t, drw_w))
148   MCFG_VIA6522_CB2_HANDLER(WRITELINE(victor_9000_fdc_t, erase_w))
149   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor_9000_fdc_t, via6_irq_w))
150
151   MCFG_FLOPPY_DRIVE_ADD(I8048_TAG":0", victor9k_floppies, "525qd", victor_9000_fdc_t::floppy_formats)
152   MCFG_FLOPPY_DRIVE_ADD(I8048_TAG":1", victor9k_floppies, "525qd", victor_9000_fdc_t::floppy_formats)
153MACHINE_CONFIG_END
154
155
156//-------------------------------------------------
157//  machine_config_additions - device-specific
158//  machine configurations
159//-------------------------------------------------
160
161machine_config_constructor victor_9000_fdc_t::device_mconfig_additions() const
162{
163   return MACHINE_CONFIG_NAME( victor_9000_fdc );
164}
165
166
167
168//**************************************************************************
169//  LIVE DEVICE
170//**************************************************************************
171
172//-------------------------------------------------
173//  victor_9000_fdc_t - constructor
174//-------------------------------------------------
175
176victor_9000_fdc_t::victor_9000_fdc_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
177   device_t(mconfig, VICTOR_9000_FDC, "Victor 9000 FDC", tag, owner, clock, "victor9k_fdc", __FILE__),
178   m_irq_cb(*this),
179   m_syn_cb(*this),
180   m_lbrdy_cb(*this),
181   m_maincpu(*this, I8048_TAG),
182   m_via4(*this, M6522_4_TAG),
183   m_via5(*this, M6522_5_TAG),
184   m_via6(*this, M6522_6_TAG),
185   m_floppy0(*this, I8048_TAG":0:525qd"),
186   m_floppy1(*this, I8048_TAG":1:525qd"),
187   m_gcr_rom(*this, "gcr"),
188   m_da(0),
189   m_da0(0),
190   m_da1(0),
191   m_start0(1),
192   m_stop0(1),
193   m_start1(1),
194   m_stop1(1),
195   m_sel0(0),
196   m_sel1(0),
197   m_tach0(0),
198   m_tach1(0),
199   m_rdy0(0),
200   m_rdy1(0),
201   m_l0ms(0),
202   m_l1ms(0),
203   m_st0(0),
204   m_st1(0),
205   m_stp0(0),
206   m_stp1(0),
207   m_drive(0),
208   m_side(0),
209   m_via4_irq(CLEAR_LINE),
210   m_via5_irq(CLEAR_LINE),
211   m_via6_irq(CLEAR_LINE),
212   m_syn(0),
213   m_lbrdy(1),
214   m_period(attotime::from_nsec(2130))
215{
216   cur_live.tm = attotime::never;
217   cur_live.state = IDLE;
218   cur_live.next_state = -1;
219   cur_live.write_position = 0;
220   cur_live.write_start_time = attotime::never;
221}
222
223
224//-------------------------------------------------
225//  device_start - device-specific startup
226//-------------------------------------------------
227
228void victor_9000_fdc_t::device_start()
229{
230   // allocate timer
231   t_gen = timer_alloc(TM_GEN);
232   t_tach0 = timer_alloc(TM_TACH0);
233   t_tach1 = timer_alloc(TM_TACH1);
234
235   // state saving
236   save_item(NAME(m_da));
237   save_item(NAME(m_da0));
238   save_item(NAME(m_da1));
239   save_item(NAME(m_start0));
240   save_item(NAME(m_stop0));
241   save_item(NAME(m_start1));
242   save_item(NAME(m_stop1));
243   save_item(NAME(m_sel0));
244   save_item(NAME(m_sel1));
245   save_item(NAME(m_tach0));
246   save_item(NAME(m_tach1));
247   save_item(NAME(m_rdy0));
248   save_item(NAME(m_rdy1));
249   save_item(NAME(m_l0ms));
250   save_item(NAME(m_l1ms));
251   save_item(NAME(m_st0));
252   save_item(NAME(m_st1));
253   save_item(NAME(m_stp0));
254   save_item(NAME(m_stp1));
255   save_item(NAME(m_drive));
256   save_item(NAME(m_side));
257   save_item(NAME(m_drw));
258   save_item(NAME(m_erase));
259   save_item(NAME(m_via4_irq));
260   save_item(NAME(m_via5_irq));
261   save_item(NAME(m_via6_irq));
262   save_item(NAME(m_syn));
263   save_item(NAME(m_lbrdy));
264}
265
266
267//-------------------------------------------------
268//  device_reset - device-specific reset
269//-------------------------------------------------
270
271void victor_9000_fdc_t::device_reset()
272{
273   live_abort();
274
275   // resolve callbacks
276   m_irq_cb.resolve_safe();
277   m_syn_cb.resolve_safe();
278   m_lbrdy_cb.resolve_safe();
279
280   // reset devices
281   m_via4->reset();
282   m_via5->reset();
283   m_via6->reset();
284
285   // set floppy callbacks
286   m_floppy0->setup_load_cb(floppy_image_device::load_cb(FUNC(victor_9000_fdc_t::load0_cb), this));
287   m_floppy0->setup_unload_cb(floppy_image_device::unload_cb(FUNC(victor_9000_fdc_t::unload0_cb), this));
288
289   m_floppy1->setup_load_cb(floppy_image_device::load_cb(FUNC(victor_9000_fdc_t::load1_cb), this));
290   m_floppy1->setup_unload_cb(floppy_image_device::unload_cb(FUNC(victor_9000_fdc_t::unload1_cb), this));
291}
292
293
294//-------------------------------------------------
295//  device_timer - handler timer events
296//-------------------------------------------------
297
298void victor_9000_fdc_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
299{
300   switch (id)
301   {
302   case TM_GEN:
303      live_sync();
304      live_run();
305      break;
306
307   case TM_TACH0:
308      // TODO
309      break;
310
311   case TM_TACH1:
312      // TODO
313      break;
314   }
315}
316
317
318//-------------------------------------------------
319//  floppy_p1_r -
320//-------------------------------------------------
321
322READ8_MEMBER( victor_9000_fdc_t::floppy_p1_r )
323{
324   /*
325
326       bit     description
327
328       0       L0MS0
329       1       L0MS1
330       2       L0MS2
331       3       L0MS3
332       4       L1MS0
333       5       L1MS1
334       6       L1MS2
335       7       L1MS3
336
337   */
338
339   return (m_l1ms << 4) | m_l0ms;
340}
341
342
343//-------------------------------------------------
344//  floppy_p2_r -
345//-------------------------------------------------
346
347READ8_MEMBER( victor_9000_fdc_t::floppy_p2_r )
348{
349   return m_p2; // TODO needed because of ORL/ANL P2, should be in mcs48.c
350}
351
352
353//-------------------------------------------------
354//  floppy_p2_w -
355//-------------------------------------------------
356
357WRITE8_MEMBER( victor_9000_fdc_t::floppy_p2_w )
358{
359   /*
360
361       bit     description
362
363       0       START0
364       1       STOP0
365       2       START1
366       3       STOP1
367       4       SEL1
368       5       SEL0
369       6       RDY0
370       7       RDY1
371
372   */
373
374   m_p2 = data;
375
376   bool sync = false;
377
378   int start0 = BIT(data, 0);
379   if (m_start0 != start0) sync = true;
380
381   int stop0 = BIT(data, 1);
382   if (m_stop0 != stop0) sync = true;
383
384   int start1 = BIT(data, 2);
385   if (m_start1 != start1) sync = true;
386
387   int stop1 = BIT(data, 3);
388   if (m_stop1 != stop1) sync = true;
389
390   int sel0 = BIT(data, 5);
391   if (m_sel0 != sel0) sync = true;
392
393   int sel1 = BIT(data, 4);
394   if (m_sel1 != sel1) sync = true;
395
396   //m_rdy0 = BIT(data, 6);
397   //m_via5->write_ca2(m_rdy0);
398
399   //m_rdy1 = BIT(data, 7);
400   //m_via5->write_cb2(m_rdy1);
401
402   if (LOG_SCP) logerror("%s %s START0/STOP0/SEL0/RDY0 %u/%u/%u/%u START1/STOP1/SEL1/RDY1 %u/%u/%u/%u\n", machine().time().as_string(), machine().describe_context(), start0, stop0, sel0, m_rdy0, start1, stop1, sel1, m_rdy1);
403
404   if (sync)
405   {
406      live_sync();
407
408      m_start0 = start0;
409      m_stop0 = stop0;
410      m_sel0 = sel0;
411      //update_spindle_motor(m_floppy0, t_tach0, m_start0, m_stop0, m_sel0, m_da0);
412
413      m_start1 = start1;
414      m_stop1 = stop1;
415      m_sel1 = sel1;
416      //update_spindle_motor(m_floppy1, t_tach1, m_start1, m_stop1, m_sel1, m_da1);
417
418      checkpoint();
419
420      if (!m_floppy0->mon_r() || !m_floppy1->mon_r()) {
421         if(cur_live.state == IDLE) {
422            live_start();
423         }
424      } else {
425         live_abort();
426      }
427
428      live_run();
429   }
430}
431
432
433//-------------------------------------------------
434//  tach0_r -
435//-------------------------------------------------
436
437READ8_MEMBER( victor_9000_fdc_t::tach0_r )
438{
439   return m_tach0;
440}
441
442
443//-------------------------------------------------
444//  tach1_r -
445//-------------------------------------------------
446
447READ8_MEMBER( victor_9000_fdc_t::tach1_r )
448{
449   return m_tach1;
450}
451
452
453void victor_9000_fdc_t::update_stepper_motor(floppy_image_device *floppy, int stp, int old_st, int st)
454{
455   if (stp) return;
456
457   int tracks = 0;
458
459   switch (old_st)
460   {
461   case   6: if (st == 0xa) tracks++; else if (st ==   5) tracks--; break;
462   case   5: if (st ==   6) tracks++; else if (st ==   9) tracks--; break;
463   case   9: if (st ==   5) tracks++; else if (st == 0xa) tracks--; break;
464   case 0xa: if (st ==   9) tracks++; else if (st ==   6) tracks--; break;
465   }
466
467   if (tracks == -1)
468   {
469      floppy->dir_w(1);
470      floppy->stp_w(1);
471      floppy->stp_w(0);
472   }
473   else if (tracks == 1)
474   {
475      floppy->dir_w(0);
476      floppy->stp_w(1);
477      floppy->stp_w(0);
478   }
479}
480
481void victor_9000_fdc_t::update_spindle_motor(floppy_image_device *floppy, emu_timer *t_tach, bool start, bool stop, bool sel, UINT8 &da)
482{
483   if (start && !stop && floppy->mon_r()) {
484      if (LOG_SCP) logerror("%s: motor start\n", floppy->tag());
485      floppy->mon_w(0);
486   } else if (stop && !floppy->mon_r()) {
487      if (LOG_SCP) logerror("%s: motor stop\n", floppy->tag());
488      floppy->mon_w(1);
489   }
490
491   if (sel) {
492      da = m_da;
493   }
494}
495
496
497//-------------------------------------------------
498//  da_w -
499//-------------------------------------------------
500
501WRITE8_MEMBER( victor_9000_fdc_t::da_w )
502{
503   if (LOG_SCP) logerror("%s %s DA %02x\n", machine().time().as_string(), machine().describe_context(), data);
504
505   if (m_da != data)
506   {
507      live_sync();
508      m_da = data;
509      update_spindle_motor(m_floppy0, t_tach0, m_start0, m_stop0, m_sel0, m_da0);
510      update_spindle_motor(m_floppy1, t_tach1, m_start1, m_stop1, m_sel1, m_da1);
511      checkpoint();
512      live_run();
513   }
514}
515
516WRITE8_MEMBER( victor_9000_fdc_t::via4_pa_w )
517{
518   /*
519
520       bit     description
521
522       PA0     L0MS0
523       PA1     L0MS1
524       PA2     L0MS2
525       PA3     L0MS3
526       PA4     ST0A
527       PA5     ST0B
528       PA6     ST0C
529       PA7     ST0D
530
531   */
532
533   m_l0ms = data & 0x0f;
534
535   { // HACK to bypass SCP
536      m_floppy0->mon_w((m_l0ms == 0xf) ? 1 : 0);
537      m_floppy0->set_rpm(victor9k_format::get_rpm(m_side, m_floppy0->get_cyl()));
538      m_rdy0 = (m_l0ms == 0xf) ? 0 : 1;
539      m_via5->write_ca2(m_rdy0);
540   }
541
542   UINT8 st0 = data >> 4;
543
544   if (LOG_VIA) logerror("%s %s L0MS %01x ST0 %01x\n", machine().time().as_string(), machine().describe_context(), m_l0ms, st0);
545
546   if (m_st0 != st0)
547   {
548      live_sync();
549      update_stepper_motor(m_floppy0, m_stp0, st0, m_st0);
550      m_st0 = st0;
551      checkpoint();
552      live_run();
553   }
554}
555
556WRITE8_MEMBER( victor_9000_fdc_t::via4_pb_w )
557{
558   /*
559
560       bit     description
561
562       PB0     L1MS0
563       PB1     L1MS1
564       PB2     L1MS2
565       PB3     L1MS3
566       PB4     ST1A
567       PB5     ST1B
568       PB6     ST1C
569       PB7     ST1D
570
571   */
572
573   m_l1ms = data & 0x0f;
574
575   { // HACK to bypass SCP
576      m_floppy1->mon_w((m_l1ms == 0xf) ? 1 : 0);
577      m_floppy1->set_rpm(victor9k_format::get_rpm(m_side, m_floppy1->get_cyl()));
578      m_rdy1 = (m_l1ms == 0xf) ? 0 : 1;
579      m_via5->write_cb2(m_rdy1);
580   }
581
582   UINT8 st1 = data >> 4;
583
584   if (LOG_VIA) logerror("%s %s L1MS %01x ST1 %01x\n", machine().time().as_string(), machine().describe_context(), m_l1ms, st1);
585
586   if (m_st1 != st1)
587   {
588      live_sync();
589      update_stepper_motor(m_floppy1, m_stp1, st1, m_st1);
590      m_st1 = st1;
591      checkpoint();
592      live_run();
593   }
594}
595
596WRITE_LINE_MEMBER( victor_9000_fdc_t::wrsync_w )
597{
598   if (m_wrsync != state)
599   {
600      live_sync();
601      m_wrsync = state;
602      cur_live.wrsync = state;
603      checkpoint();
604      if (LOG_VIA) logerror("%s %s ERASE %u\n", machine().time().as_string(), machine().describe_context(), state);
605      live_run();
606   }
607}
608
609WRITE_LINE_MEMBER( victor_9000_fdc_t::via4_irq_w )
610{
611   m_via4_irq = state;
612
613   m_irq_cb(m_via4_irq || m_via5_irq || m_via6_irq);
614}
615
616READ8_MEMBER( victor_9000_fdc_t::via5_pa_r )
617{
618   /*
619
620       bit     description
621
622       PA0     E0
623       PA1     E1
624       PA2     I1
625       PA3     E2
626       PA4     E4
627       PA5     E5
628       PA6     I7
629       PA7     E6
630
631   */
632
633   UINT8 e = checkpoint_live.e;
634   UINT8 i = checkpoint_live.i;
635
636   return BIT(e, 6) << 7 | BIT(i, 7) << 6 | BIT(e, 5) << 5 | BIT(e, 4) << 4 | BIT(e, 2) << 3 | BIT(i, 1) << 2 | (e & 0x03);
637}
638
639WRITE8_MEMBER( victor_9000_fdc_t::via5_pb_w )
640{
641   /*
642
643       bit     description
644
645       PB0     WD0
646       PB1     WD1
647       PB2     WD2
648       PB3     WD3
649       PB4     WD4
650       PB5     WD5
651       PB6     WD6
652       PB7     WD7
653
654   */
655
656   if (m_wd != data)
657   {
658      live_sync();
659      m_wd = cur_live.wd = data;
660      if (LOG_VIA) logerror("%s %s WD %02x\n", machine().time().as_string(), machine().describe_context(), data);
661      checkpoint();
662      live_run();
663   }
664}
665
666WRITE_LINE_MEMBER( victor_9000_fdc_t::via5_irq_w )
667{
668   m_via5_irq = state;
669
670   m_irq_cb(m_via4_irq || m_via5_irq || m_via6_irq);
671}
672
673
674READ8_MEMBER( victor_9000_fdc_t::via6_pa_r )
675{
676   /*
677
678       bit     description
679
680       PA0
681       PA1     _TRK0D0
682       PA2
683       PA3     _TRK0D1
684       PA4
685       PA5
686       PA6     WPS
687       PA7     _SYNC
688
689   */
690
691   if (LOG_VIA) logerror("%s %s TRK0D0 %u TRK0D1 %u SYNC %u\n", machine().time().as_string(), machine().describe_context(), m_floppy0->trk00_r(), m_floppy1->trk00_r(), checkpoint_live.sync);
692
693   UINT8 data = 0;
694
695   // track 0 drive A sense
696   data |= m_floppy0->trk00_r() << 1;
697
698   // track 0 drive B sense
699   data |= m_floppy1->trk00_r() << 3;
700
701   // write protect sense
702   data |= (m_drive ? m_floppy1->wpt_r() : m_floppy0->wpt_r()) << 6;
703
704   // disk sync detect
705   data |= checkpoint_live.sync << 7;
706
707   return data;
708}
709
710WRITE8_MEMBER( victor_9000_fdc_t::via6_pa_w )
711{
712   /*
713
714       bit     description
715
716       PA0     LED0A
717       PA1
718       PA2     LED1A
719       PA3
720       PA4     SIDE SELECT
721       PA5     DRIVE SELECT
722       PA6
723       PA7
724
725   */
726
727   // LED, drive A
728   output_set_led_value(LED_A, BIT(data, 0));
729
730   // LED, drive B
731   output_set_led_value(LED_B, BIT(data, 2));
732
733   bool sync = false;
734
735   // dual side select
736   int side = BIT(data, 4);
737   if (m_side != side) sync = true;
738
739   // select drive A/B
740   int drive = BIT(data, 5);
741   if (m_drive != drive) sync = true;
742
743   if (sync)
744   {
745      live_sync();
746
747      m_side = side;
748      cur_live.side = side;
749      m_floppy0->ss_w(side);
750      m_floppy1->ss_w(side);
751
752      m_drive = drive;
753      cur_live.drive = drive;
754
755      if (LOG_VIA) logerror("%s %s SIDE %u DRIVE %u\n", machine().time().as_string(), machine().describe_context(), side, drive);
756
757      checkpoint();
758      live_run();
759   }
760}
761
762READ8_MEMBER( victor_9000_fdc_t::via6_pb_r )
763{
764   /*
765
766       bit     description
767
768       PB0     RDY0
769       PB1     RDY1
770       PB2
771       PB3     _DS1
772       PB4     _DS0
773       PB5     SINGLE/_DOUBLE SIDED
774       PB6
775       PB7
776
777   */
778
779   UINT8 data = 0;
780
781   // motor speed status, drive A
782   data |= m_rdy0;
783
784   // motor speed status, drive B
785   data |= m_rdy1 << 1;
786
787   // door B sense
788   data |= (m_floppy1->exists() ? 0 : 1) << 3;
789
790   // door A sense
791   data |= (m_floppy0->exists() ? 0 : 1) << 4;
792
793   // single/double sided
794   data |= (m_drive ? m_floppy1->twosid_r() : m_floppy0->twosid_r()) << 5;
795
796   return data;
797}
798
799WRITE8_MEMBER( victor_9000_fdc_t::via6_pb_w )
800{
801   /*
802
803       bit     description
804
805       PB0
806       PB1
807       PB2     _SCRESET
808       PB3
809       PB4
810       PB5
811       PB6     STP0
812       PB7     STP1
813
814   */
815
816   // motor speed controller reset
817   if (!BIT(data, 2))
818      m_maincpu->reset();
819
820   bool sync = false;
821
822   // stepper enable A
823   int stp0 = BIT(data, 6);
824   if (m_stp0 != stp0) sync = true;
825
826   // stepper enable B
827   int stp1 = BIT(data, 7);
828   if (m_stp1 != stp1) sync = true;
829
830   if (sync)
831   {
832      live_sync();
833
834      m_stp0 = stp0;
835      update_stepper_motor(m_floppy0, m_stp0, m_st0, m_st0);
836
837      m_stp1 = stp1;
838      update_stepper_motor(m_floppy1, m_stp1, m_st1, m_st1);
839
840      if (LOG_VIA) logerror("%s %s STP0 %u STP1 %u\n", machine().time().as_string(), machine().describe_context(), stp0, stp1);
841
842      checkpoint();
843      live_run();
844   }
845}
846
847WRITE_LINE_MEMBER( victor_9000_fdc_t::drw_w )
848{
849   if (m_drw != state)
850   {
851      live_sync();
852      m_drw = cur_live.drw = state;
853      checkpoint();
854      if (LOG_VIA) logerror("%s %s DRW %u\n", machine().time().as_string(), machine().describe_context(), state);
855      if (state) {
856         stop_writing(machine().time());
857      } else {
858         start_writing(machine().time());
859      }
860      live_run();
861   }
862}
863
864WRITE_LINE_MEMBER( victor_9000_fdc_t::erase_w )
865{
866   if (m_erase != state)
867   {
868      live_sync();
869      m_erase = cur_live.erase = state;
870      checkpoint();
871      if (LOG_VIA) logerror("%s %s ERASE %u\n", machine().time().as_string(), machine().describe_context(), state);
872      live_run();
873   }
874}
875
876WRITE_LINE_MEMBER( victor_9000_fdc_t::via6_irq_w )
877{
878   m_via6_irq = state;
879
880   m_irq_cb(m_via4_irq || m_via5_irq || m_via6_irq);
881}
882
883READ8_MEMBER( victor_9000_fdc_t::cs7_r )
884{
885   if (!checkpoint_live.lbrdy)
886   {
887      live_sync();
888      cur_live.lbrdy = 1;
889      if (LOG_VIA) logerror("%s %s LBRDY 1\n", machine().time().as_string(), machine().describe_context());
890      m_lbrdy_cb(1);
891      checkpoint();
892      live_run();
893   }
894
895   return m_via5->read(space, offset);
896}
897
898WRITE8_MEMBER( victor_9000_fdc_t::cs7_w )
899{
900   if (!checkpoint_live.lbrdy)
901   {
902      live_sync();
903      cur_live.lbrdy = 1;
904      if (LOG_VIA) logerror("%s %s LBRDY 1\n", machine().time().as_string(), machine().describe_context());
905      m_lbrdy_cb(1);
906      checkpoint();
907      live_run();
908   }
909
910   m_via5->write(space, offset, data);
911}
912
913floppy_image_device* victor_9000_fdc_t::get_floppy()
914{
915   return m_drive ? m_floppy1 : m_floppy0;
916}
917
918void victor_9000_fdc_t::live_start()
919{
920   cur_live.tm = machine().time();
921   cur_live.state = RUNNING;
922   cur_live.next_state = -1;
923
924   cur_live.shift_reg = 0;
925   cur_live.shift_reg_write = 0;
926   cur_live.bit_counter = 0;
927   cur_live.sync_bit_counter = 0;
928   cur_live.sync_byte_counter = 0;
929
930   cur_live.drive = m_drive;
931   cur_live.side = m_side;
932   cur_live.drw = m_drw;
933   cur_live.wd = m_wd;
934   cur_live.wrsync = m_wrsync;
935   cur_live.erase = m_erase;
936
937   checkpoint_live = cur_live;
938
939   live_run();
940}
941
942void victor_9000_fdc_t::checkpoint()
943{
944   get_next_edge(machine().time());
945   checkpoint_live = cur_live;
946}
947
948void victor_9000_fdc_t::rollback()
949{
950   cur_live = checkpoint_live;
951   get_next_edge(cur_live.tm);
952}
953
954void victor_9000_fdc_t::start_writing(const attotime &tm)
955{
956   cur_live.write_start_time = tm;
957   cur_live.write_position = 0;
958}
959
960void victor_9000_fdc_t::stop_writing(const attotime &tm)
961{
962   commit(tm);
963   cur_live.write_start_time = attotime::never;
964}
965
966bool victor_9000_fdc_t::write_next_bit(bool bit, const attotime &limit)
967{
968   if(cur_live.write_start_time.is_never()) {
969      cur_live.write_start_time = cur_live.tm;
970      cur_live.write_position = 0;
971   }
972
973   attotime etime = cur_live.tm + m_period;
974   if(etime > limit)
975      return true;
976
977   if(bit && cur_live.write_position < ARRAY_LENGTH(cur_live.write_buffer))
978      cur_live.write_buffer[cur_live.write_position++] = cur_live.tm;
979
980   if (LOG) logerror("%s write bit %u (%u)\n", cur_live.tm.as_string(), cur_live.bit_counter, bit);
981
982   return false;
983}
984
985void victor_9000_fdc_t::commit(const attotime &tm)
986{
987   if(cur_live.write_start_time.is_never() || tm == cur_live.write_start_time || !cur_live.write_position)
988      return;
989
990   if (LOG) logerror("%s committing %u transitions since %s\n", tm.as_string(), cur_live.write_position, cur_live.write_start_time.as_string());
991
992   if(get_floppy())
993      get_floppy()->write_flux(cur_live.write_start_time, tm, cur_live.write_position, cur_live.write_buffer);
994
995   cur_live.write_start_time = tm;
996   cur_live.write_position = 0;
997}
998
999void victor_9000_fdc_t::live_delay(int state)
1000{
1001   cur_live.next_state = state;
1002   if(cur_live.tm != machine().time())
1003      t_gen->adjust(cur_live.tm - machine().time());
1004   else
1005      live_sync();
1006}
1007
1008void victor_9000_fdc_t::live_sync()
1009{
1010   if(!cur_live.tm.is_never()) {
1011      if(cur_live.tm > machine().time()) {
1012         rollback();
1013         live_run(machine().time());
1014         commit(cur_live.tm);
1015      } else {
1016         commit(cur_live.tm);
1017         if(cur_live.next_state != -1) {
1018            cur_live.state = cur_live.next_state;
1019            cur_live.next_state = -1;
1020         }
1021         if(cur_live.state == IDLE) {
1022            stop_writing(cur_live.tm);
1023            cur_live.tm = attotime::never;
1024         }
1025      }
1026      cur_live.next_state = -1;
1027      checkpoint();
1028   }
1029}
1030
1031void victor_9000_fdc_t::live_abort()
1032{
1033   if(!cur_live.tm.is_never() && cur_live.tm > machine().time()) {
1034      rollback();
1035      live_run(machine().time());
1036   }
1037
1038   stop_writing(cur_live.tm);
1039
1040   cur_live.tm = attotime::never;
1041   cur_live.state = IDLE;
1042   cur_live.next_state = -1;
1043   cur_live.write_position = 0;
1044   cur_live.write_start_time = attotime::never;
1045
1046   cur_live.brdy = 1;
1047   cur_live.lbrdy = 1;
1048   cur_live.sync = 1;
1049   cur_live.syn = 1;
1050   cur_live.gcr_err = 1;
1051}
1052
1053void victor_9000_fdc_t::live_run(const attotime &limit)
1054{
1055   if(cur_live.state == IDLE || cur_live.next_state != -1)
1056      return;
1057
1058   for(;;) {
1059      switch(cur_live.state) {
1060      case RUNNING: {
1061         bool syncpoint = false;
1062
1063         if (cur_live.tm > limit)
1064            return;
1065
1066         // read bit
1067         int bit = get_next_bit(cur_live.tm, limit);
1068         if(bit < 0)
1069            return;
1070
1071         cur_live.shift_reg <<= 1;
1072         cur_live.shift_reg |= bit;
1073         cur_live.shift_reg &= 0x3ff;
1074
1075         // sync
1076         int sync = !(cur_live.shift_reg == 0x3ff);
1077
1078         // bit counter
1079         if (!sync) {
1080            cur_live.bit_counter = 0;
1081         } else if (cur_live.sync) {
1082            cur_live.bit_counter++;
1083            if (cur_live.bit_counter == 10) {
1084               cur_live.bit_counter = 0;
1085            }
1086         }
1087
1088         // sync counter
1089         if (sync) {
1090            cur_live.sync_bit_counter = 0;
1091            cur_live.sync_byte_counter = 10;
1092         } else if (!cur_live.sync) {
1093            cur_live.sync_bit_counter++;
1094            if (cur_live.sync_bit_counter == 10) {
1095               cur_live.sync_bit_counter = 0;
1096               cur_live.sync_byte_counter++;
1097               if (cur_live.sync_byte_counter == 16) {
1098                  cur_live.sync_byte_counter = 0;
1099               }
1100            }
1101         }
1102
1103         // syn
1104         int syn = !(cur_live.sync_byte_counter == 15);
1105
1106         if (LOG) logerror("%s bit %u sync %u bc %u sbc %u sBC %u syn %u\n",cur_live.tm.as_string(),bit,sync,cur_live.bit_counter,cur_live.sync_bit_counter,cur_live.sync_byte_counter,syn);
1107
1108         // GCR decoder
1109         if (cur_live.drw) {
1110            cur_live.i = cur_live.drw << 10 | cur_live.shift_reg;
1111         } else {
1112            cur_live.i = cur_live.drw << 10 | ((cur_live.wd & 0xf0) << 1) | cur_live.wrsync << 4 | (cur_live.wd & 0x0f);
1113         }
1114
1115         cur_live.e = m_gcr_rom->base()[cur_live.i];
1116
1117         // byte ready
1118         int brdy = !(cur_live.bit_counter == 9);
1119
1120         // GCR error
1121         int gcr_err = !(brdy || BIT(cur_live.e, 3));
1122
1123         if (brdy != cur_live.brdy) {
1124            if (LOG) logerror("%s BRDY %u\n", cur_live.tm.as_string(),brdy);
1125            if (LOG && !brdy)
1126            {
1127               UINT8 e = cur_live.e;
1128               UINT8 i = cur_live.i;
1129
1130               UINT8 data = BIT(e, 6) << 7 | BIT(i, 7) << 6 | BIT(e, 5) << 5 | BIT(e, 4) << 4 | BIT(e, 2) << 3 | BIT(i, 1) << 2 | (e & 0x03);
1131               logerror("%s BRDY %02x\n",cur_live.tm.as_string(),data);
1132            }
1133            cur_live.brdy = brdy;
1134            if (!brdy) cur_live.lbrdy = 0;
1135            syncpoint = true;
1136         }
1137
1138         if (sync != cur_live.sync) {
1139            if (LOG) logerror("%s SYNC %u\n", cur_live.tm.as_string(),sync);
1140            cur_live.sync = sync;
1141            syncpoint = true;
1142         }
1143
1144         if (syn != cur_live.syn) {
1145            if (LOG) logerror("%s SYN %u\n", cur_live.tm.as_string(),syn);
1146            cur_live.syn = syn;
1147            syncpoint = true;
1148         }
1149
1150         if (gcr_err != cur_live.gcr_err) {
1151            if (LOG) logerror("%s GCR ERR %u\n", cur_live.tm.as_string(),gcr_err);
1152            cur_live.gcr_err = gcr_err;
1153            syncpoint = true;
1154         }
1155
1156         if (syncpoint) {
1157            commit(cur_live.tm);
1158
1159            cur_live.tm += m_period;
1160            live_delay(RUNNING_SYNCPOINT);
1161            return;
1162         }
1163
1164         cur_live.tm += m_period;
1165         break;
1166      }
1167
1168      case RUNNING_SYNCPOINT: {
1169         m_lbrdy_cb(cur_live.lbrdy);
1170         m_syn_cb(cur_live.syn);
1171
1172         cur_live.state = RUNNING;
1173         checkpoint();
1174         break;
1175      }
1176      }
1177   }
1178}
1179
1180void victor_9000_fdc_t::get_next_edge(const attotime &when)
1181{
1182   floppy_image_device *floppy = get_floppy();
1183
1184   cur_live.edge = floppy ? floppy->get_next_transition(when) : attotime::never;
1185}
1186
1187int victor_9000_fdc_t::get_next_bit(attotime &tm, const attotime &limit)
1188{
1189   attotime next = tm + m_period;
1190
1191   int bit = (cur_live.edge.is_never() || cur_live.edge >= next) ? 0 : 1;
1192
1193   if (bit) {
1194      get_next_edge(next);
1195   }
1196
1197   return bit;
1198}
trunk/src/mess/machine/victor9k_fdc.h
r241777r241778
1// license:BSD-3-Clause
2// copyright-holders:Curt Coder
3/**********************************************************************
4
5    Victor 9000 floppy disk controller emulation
6
7    Copyright MESS Team.
8    Visit http://mamedev.org for licensing and usage restrictions.
9
10**********************************************************************/
11
12#pragma once
13
14#ifndef __VICTOR_9000_FDC__
15#define __VICTOR_9000_FDC__
16
17#include "emu.h"
18#include "cpu/mcs48/mcs48.h"
19#include "formats/victor9k_dsk.h"
20#include "imagedev/floppy.h"
21#include "machine/6522via.h"
22
23
24
25//**************************************************************************
26//  INTERFACE CONFIGURATION MACROS
27//**************************************************************************
28
29#define MCFG_VICTOR_9000_FDC_IRQ_CB(_write) \
30   devcb = &victor_9000_fdc_t::set_irq_wr_callback(*device, DEVCB_##_write);
31
32#define MCFG_VICTOR_9000_FDC_SYN_CB(_write) \
33   devcb = &victor_9000_fdc_t::set_syn_wr_callback(*device, DEVCB_##_write);
34
35#define MCFG_VICTOR_9000_FDC_LBRDY_CB(_write) \
36   devcb = &victor_9000_fdc_t::set_lbrdy_wr_callback(*device, DEVCB_##_write);
37
38
39
40//**************************************************************************
41//  TYPE DEFINITIONS
42//**************************************************************************
43
44// ======================> victor_9000_fdc_t
45
46class victor_9000_fdc_t :  public device_t
47{
48public:
49   // construction/destruction
50   victor_9000_fdc_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
51
52   template<class _Object> static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast<victor_9000_fdc_t &>(device).m_irq_cb.set_callback(object); }
53   template<class _Object> static devcb_base &set_syn_wr_callback(device_t &device, _Object object) { return downcast<victor_9000_fdc_t &>(device).m_syn_cb.set_callback(object); }
54   template<class _Object> static devcb_base &set_lbrdy_wr_callback(device_t &device, _Object object) { return downcast<victor_9000_fdc_t &>(device).m_lbrdy_cb.set_callback(object); }
55
56   DECLARE_READ8_MEMBER( cs5_r ) { return m_via4->read(space, offset); }
57   DECLARE_WRITE8_MEMBER( cs5_w ) { m_via4->write(space, offset, data); }
58   DECLARE_READ8_MEMBER( cs6_r ) { return m_via6->read(space, offset); }
59   DECLARE_WRITE8_MEMBER( cs6_w ) { m_via6->write(space, offset, data); }
60   DECLARE_READ8_MEMBER( cs7_r );
61   DECLARE_WRITE8_MEMBER( cs7_w );
62
63   DECLARE_FLOPPY_FORMATS( floppy_formats );
64
65   DECLARE_READ8_MEMBER( floppy_p1_r );
66   DECLARE_READ8_MEMBER( floppy_p2_r );
67   DECLARE_WRITE8_MEMBER( floppy_p2_w );
68   DECLARE_READ8_MEMBER( tach0_r );
69   DECLARE_READ8_MEMBER( tach1_r );
70   DECLARE_WRITE8_MEMBER( da_w );
71
72   DECLARE_WRITE8_MEMBER( via4_pa_w );
73   DECLARE_WRITE8_MEMBER( via4_pb_w );
74   DECLARE_WRITE_LINE_MEMBER( wrsync_w );
75   DECLARE_WRITE_LINE_MEMBER( via4_irq_w );
76
77   DECLARE_READ8_MEMBER( via5_pa_r );
78   DECLARE_WRITE8_MEMBER( via5_pb_w );
79   DECLARE_WRITE_LINE_MEMBER( via5_irq_w );
80
81   DECLARE_READ8_MEMBER( via6_pa_r );
82   DECLARE_READ8_MEMBER( via6_pb_r );
83   DECLARE_WRITE8_MEMBER( via6_pa_w );
84   DECLARE_WRITE8_MEMBER( via6_pb_w );
85   DECLARE_WRITE_LINE_MEMBER( drw_w );
86   DECLARE_WRITE_LINE_MEMBER( erase_w );
87   DECLARE_WRITE_LINE_MEMBER( via6_irq_w );
88
89protected:
90   // device-level overrides
91   virtual void device_start();
92   virtual void device_reset();
93   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
94
95   // optional information overrides
96   virtual const rom_entry *device_rom_region() const;
97   virtual machine_config_constructor device_mconfig_additions() const;
98
99private:
100   enum
101   {
102      TM_GEN,
103      TM_TACH0,
104      TM_TACH1
105   };
106
107   enum
108   {
109      LED_A = 0,
110      LED_B
111   };
112
113   enum {
114      IDLE,
115      RUNNING,
116      RUNNING_SYNCPOINT
117   };
118
119   struct live_info {
120      attotime tm;
121      int state, next_state;
122
123      int drive;
124      int side;
125      int drw;
126
127      // common
128      offs_t i;
129      UINT8 e;
130
131      // read
132      attotime edge;
133      UINT16 shift_reg;
134      int bit_counter;
135      int sync_bit_counter;
136      int sync_byte_counter;
137      int brdy;
138      int lbrdy;
139      int sync;
140      int syn;
141      int gcr_err;
142
143      // write
144      UINT16 shift_reg_write;
145      attotime write_start_time;
146      attotime write_buffer[32];
147      int write_position;
148      UINT8 wd;
149      int wrsync;
150      int gcr_data;
151      int erase;
152   };
153
154   devcb_write_line m_irq_cb;
155   devcb_write_line m_syn_cb;
156   devcb_write_line m_lbrdy_cb;
157
158   required_device<cpu_device> m_maincpu;
159   required_device<via6522_device> m_via4;
160   required_device<via6522_device> m_via5;
161   required_device<via6522_device> m_via6;
162   required_device<floppy_image_device> m_floppy0;
163   required_device<floppy_image_device> m_floppy1;
164   required_memory_region m_gcr_rom;
165
166   void update_stepper_motor(floppy_image_device *floppy, int stp, int old_st, int st);
167   void update_spindle_motor(floppy_image_device *floppy, emu_timer *t_tach, bool start, bool stop, bool sel, UINT8 &da);
168
169   int load0_cb(floppy_image_device *device);
170   void unload0_cb(floppy_image_device *device);
171
172   int load1_cb(floppy_image_device *device);
173   void unload1_cb(floppy_image_device *device);
174
175   UINT8 m_p2;
176
177   /* floppy state */
178   UINT8 m_da;
179   UINT8 m_da0;
180   UINT8 m_da1;
181   int m_start0;
182   int m_stop0;
183   int m_start1;
184   int m_stop1;
185   int m_sel0;
186   int m_sel1;
187   int m_tach0;
188   int m_tach1;
189   int m_rdy0;
190   int m_rdy1;
191   UINT8 m_l0ms;
192   UINT8 m_l1ms;
193   int m_st0;
194   int m_st1;
195   int m_stp0;
196   int m_stp1;
197   int m_drive;
198   int m_side;
199   int m_drw;
200   int m_erase;
201   UINT8 m_wd;
202   int m_wrsync;
203
204   int m_via4_irq;
205   int m_via5_irq;
206   int m_via6_irq;
207   int m_syn;
208   int m_lbrdy;
209
210   attotime m_period;
211
212   live_info cur_live, checkpoint_live;
213   emu_timer *t_gen, *t_tach0, *t_tach1;
214
215   floppy_image_device* get_floppy();
216   void live_start();
217   void checkpoint();
218   void rollback();
219   bool write_next_bit(bool bit, const attotime &limit);
220   void start_writing(const attotime &tm);
221   void commit(const attotime &tm);
222   void stop_writing(const attotime &tm);
223   void live_delay(int state);
224   void live_sync();
225   void live_abort();
226   void live_run(const attotime &limit = attotime::never);
227   void get_next_edge(const attotime &when);
228   int get_next_bit(attotime &tm, const attotime &limit);
229};
230
231
232
233// device type definition
234extern const device_type VICTOR_9000_FDC;
235
236
237
238#endif
trunk/src/mess/machine/victor9kb.c
r241777r241778
2828const device_type VICTOR9K_KEYBOARD = &device_creator<victor9k_keyboard_device>;
2929
3030
31
3132//-------------------------------------------------
3233//  ROM( victor9k_keyboard )
3334//-------------------------------------------------
r241777r241778
236237//  victor9k_keyboard_device - constructor
237238//-------------------------------------------------
238239
239victor9k_keyboard_device::victor9k_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
240   device_t(mconfig, VICTOR9K_KEYBOARD, "Victor 9000 Keyboard", tag, owner, clock, "victor9kb", __FILE__),
241   m_maincpu(*this, I8021_TAG),
242   m_y0(*this, "Y0"),
243   m_y1(*this, "Y1"),
244   m_y2(*this, "Y2"),
245   m_y3(*this, "Y3"),
246   m_y4(*this, "Y4"),
247   m_y5(*this, "Y5"),
248   m_y6(*this, "Y6"),
249   m_y7(*this, "Y7"),
250   m_y8(*this, "Y8"),
251   m_y9(*this, "Y9"),
252   m_ya(*this, "YA"),
253   m_yb(*this, "YB"),
254   m_yc(*this, "YC"),
255   m_kbrdy_handler(*this),
256   m_kbdata_handler(*this),
257   m_y(0),
258   m_kbrdy(1),
259   m_kbdata(1),
260   m_kback(1)
240victor9k_keyboard_device::victor9k_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
241   : device_t(mconfig, VICTOR9K_KEYBOARD, "Victor 9000 Keyboard", tag, owner, clock, "victor9kb", __FILE__),
242      m_maincpu(*this, I8021_TAG),
243      m_y0(*this, "Y0"),
244      m_y1(*this, "Y1"),
245      m_y2(*this, "Y2"),
246      m_y3(*this, "Y3"),
247      m_y4(*this, "Y4"),
248      m_y5(*this, "Y5"),
249      m_y6(*this, "Y6"),
250      m_y7(*this, "Y7"),
251      m_y8(*this, "Y8"),
252      m_y9(*this, "Y9"),
253      m_ya(*this, "YA"),
254      m_yb(*this, "YB"),
255      m_yc(*this, "YC"),
256      m_kbrdy_handler(*this),
257      m_kbdata_handler(*this),
258      m_y(0),
259      m_kbrdy(1),
260      m_kbdata(1),
261      m_kback(1)
261262{
262263}
263264
r241777r241778
290291
291292
292293//-------------------------------------------------
294//  kbrdy_r -
295//-------------------------------------------------
296
297READ_LINE_MEMBER( victor9k_keyboard_device::kbrdy_r )
298{
299   return m_kbrdy;
300}
301
302
303//-------------------------------------------------
293304//  kback_w -
294305//-------------------------------------------------
295306
296307WRITE_LINE_MEMBER( victor9k_keyboard_device::kback_w )
297308{
298   //logerror("KBACK %u\n", state);
299309   m_kback = state;
300310}
301311
302312
303313//-------------------------------------------------
314//  kbdata_r -
315//-------------------------------------------------
316
317READ_LINE_MEMBER( victor9k_keyboard_device::kbdata_r )
318{
319   return m_kbdata;
320}
321
322
323//-------------------------------------------------
304324//  kb_p1_r -
305325//-------------------------------------------------
306326
r241777r241778
340360      m_y = data & 0x0f;
341361   }
342362
343   //logerror("P1 %02x\n", data);
363   logerror("P1 %02x\n", data);
344364}
345365
346366
r241777r241778
354374
355375       bit     description
356376
357       P20     ?
358       P21    KBRDY
359       P22     ?
360       P23     KBDATA
377       P20     keylatch enable ?
378       P21
379       P22     key available ?
380       P23     data ?
361381
362382   */
363383
364   int kbrdy = BIT(data, 1);
384   int kbrdy = BIT(data, 2);
365385
366386   if (m_kbrdy != kbrdy)
367387   {
r241777r241778
377397      m_kbdata_handler(m_kbdata);
378398   }
379399
380   //logerror("P2 %02x\n", data);
400   logerror("P2 %01x\n", data & 0x0f);
381401}
382402
383403
r241777r241778
387407
388408READ8_MEMBER( victor9k_keyboard_device::kb_t1_r )
389409{
410   logerror("read T1 %u\n", m_kback);
411
390412   return m_kback;
391413}
trunk/src/mess/machine/victor9kb.h
r241777r241778
5151   virtual machine_config_constructor device_mconfig_additions() const;
5252   virtual ioport_constructor device_input_ports() const;
5353
54   DECLARE_READ_LINE_MEMBER( kbrdy_r );
5455   DECLARE_WRITE_LINE_MEMBER( kback_w );
56   DECLARE_READ_LINE_MEMBER( kbdata_r );
5557
5658   // not really public
5759   DECLARE_READ8_MEMBER( kb_p1_r );
trunk/src/mess/machine/x820kb.c
r241777r241778
1111
1212/*
1313
14PCB Layout
15----------
16
17Maxi-Switch Co.
18630107-02
19
20|-----------------------------------------------------------------------|
21|                                                       |--CN1--| CN2   |
22|            8748   6MHz                 74154   *                      |
23|                                                                       |
24|-----------------------------------------------------------------------|
25
26Notes:
27    All IC's shown.
28
29    8048        - NEC D8748D
30    74154       - 4-line to 16-line decoder/multiplexer
31    *           - unpopulated 8-pin chip
32    CN1         - 2x16 PCB header
33    CN2         - unpopulated RJ-45? connector
34
35*/
36
37/*
38
3914   TODO:
4015
4116   - repeat
r241777r241778
8863
8964static ADDRESS_MAP_START( xerox_820_keyboard_io, AS_IO, 8, xerox_820_keyboard_t )
9065   AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(kb_p1_r, kb_p1_w)
91   AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READ(kb_p2_r) AM_WRITENOP
66   AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READ(kb_p2_r)
9267   AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(kb_t0_r)
9368   AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T1) AM_READ(kb_t1_r)
9469   AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_WRITE(kb_bus_w)
r241777r241778
10075//-------------------------------------------------
10176
10277static MACHINE_CONFIG_FRAGMENT( xerox_820_keyboard )
103   MCFG_CPU_ADD(I8748_TAG, I8048, XTAL_6MHz)
78   MCFG_CPU_ADD(I8748_TAG, I8048, 4608000) // ???
10479   MCFG_CPU_IO_MAP(xerox_820_keyboard_io)
80
81   MCFG_DEVICE_ADD("int_clk", CLOCK, 16) // ???
82   MCFG_CLOCK_SIGNAL_HANDLER(INPUTLINE(I8748_TAG, MCS48_INPUT_IRQ))
10583MACHINE_CONFIG_END
10684
10785
r241777r241778
283261   m_kbstb_cb.resolve_safe();
284262}
285263
286void xerox_820_keyboard_t::device_reset_after_children()
287{
288   m_maincpu->set_input_line(MCS48_INPUT_IRQ, ASSERT_LINE);
289}
290264
291
292265//-------------------------------------------------
293266//  kb_p1_r -
294267//-------------------------------------------------
r241777r241778
358331
359332READ8_MEMBER( xerox_820_keyboard_t::kb_t0_r )
360333{
361   UINT8 data = 1;
362
363   switch (m_p1 & 0x0f)
364   {
365      case 0xd: data = 1; break; // ??? if 0, return key data | 0x80
366      case 0xe: data = 1; break; // ??? if 0, set r6=1
367   }
368
369   return data;
334   return 1; // ???
370335}
371336
372337
r241777r241778
376341
377342READ8_MEMBER( xerox_820_keyboard_t::kb_t1_r )
378343{
379   return 1; // ??? if 0, toggle P17
344   return 1; // ???
380345}
381346
382347
trunk/src/mess/machine/x820kb.h
r241777r241778
1616
1717#include "emu.h"
1818#include "cpu/mcs48/mcs48.h"
19#include "machine/clock.h"
1920
2021
2122
r241777r241778
6061   // device-level overrides
6162   virtual void device_start();
6263   virtual void device_reset();
63   virtual void device_reset_after_children();
6464
6565private:
6666   required_device<cpu_device> m_maincpu;
trunk/src/mess/mess.lst
r241777r241778
297297
298298// Milton Bradley
299299microvsn  // MicroVision - 1979
300simon
301300
302301// Entex
303302advision  // Adventurevision
r241777r241778
24782477vax785
24792478ms0515
24802479ie15
2481dvk_ksm
24822480asmapro
24832481asma2k
24842482altos5
trunk/src/mess/mess.mak
r241777r241778
425425MACHINES += LDVP931
426426MACHINES += LH5810
427427MACHINES += LINFLASH
428#MACHINES += LPCI
429428MACHINES += LSI53C810
430429MACHINES += M68307
431430MACHINES += M68340
r241777r241778
479478MACHINES += PC_LPT
480479MACHINES += PCCARD
481480MACHINES += PCF8593
481#MACHINES += PCI
482482MACHINES += PCKEYBRD
483483MACHINES += PIC8259
484484MACHINES += PIT8253
r241777r241778
599599BUSES += ISA
600600BUSES += ISBX
601601BUSES += KC
602BUSES += LPCI
603602BUSES += MACPDS
604603BUSES += MIDI
605604BUSES += MEGADRIVE
r241777r241778
610609BUSES += O2
611610BUSES += ORICEXT
612611BUSES += PCE
612BUSES += PCI
613613BUSES += PC_JOY
614614BUSES += PC_KBD
615615BUSES += PET
r241777r241778
901901   $(MAME_MACHINE)/naomim2.o   \
902902   $(MAME_MACHINE)/naomim4.o   \
903903   $(MAME_MACHINE)/naomirom.o  \
904   $(MAME_MACHINE)/315-5881_crypt.o  \
905904   $(MAME_VIDEO)/powervr2.o    \
906905   $(MAME_DRIVERS)/neogeo.o    \
907906   $(MAME_MACHINE)/neoboot.o   \
r241777r241778
960959   $(MESS_DRIVERS)/apricotf.o  \
961960   $(MESS_DRIVERS)/apricotp.o  \
962961   $(MESS_MACHINE)/apricotkb.o \
963   $(MESS_DRIVERS)/victor9k.o $(MESS_MACHINE)/victor9kb.o $(MESS_MACHINE)/victor9k_fdc.o \
962   $(MESS_DRIVERS)/victor9k.o $(MESS_MACHINE)/victor9kb.o \
964963
965964$(MESSOBJ)/adc.a:               \
966965   $(MESS_DRIVERS)/super6.o    \
r241777r241778
11801179
11811180$(MESSOBJ)/elektrka.a:          \
11821181   $(MESS_DRIVERS)/bk.o $(MESS_MACHINE)/bk.o $(MESS_VIDEO)/bk.o \
1183   $(MESS_DRIVERS)/dvk_ksm.o $(MESS_MACHINE)/ms7004.o \
11841182   $(MESS_DRIVERS)/mk85.o      \
11851183   $(MESS_DRIVERS)/mk90.o      \
11861184
r241777r241778
13531351
13541352$(MESSOBJ)/mb.a:                \
13551353   $(MESS_DRIVERS)/microvsn.o  \
1356   $(MESS_DRIVERS)/simon.o     \
13571354
13581355$(MESSOBJ)/mchester.a:          \
13591356   $(MESS_DRIVERS)/ssem.o      \
r241777r241778
21252122$(MESS_DRIVERS)/sdk85.o:    $(MESS_LAYOUT)/sdk85.lh
21262123$(MESS_DRIVERS)/sdk86.o:    $(MESS_LAYOUT)/sdk86.lh
21272124$(MESS_DRIVERS)/selz80.o:   $(MESS_LAYOUT)/selz80.lh
2128$(MESS_DRIVERS)/simon.o:    $(MESS_LAYOUT)/simon.lh
21292125$(MESS_DRIVERS)/sitcom.o:   $(MESS_LAYOUT)/sitcom.lh
21302126$(MESS_DRIVERS)/slc1.o:     $(MESS_LAYOUT)/slc1.lh
21312127$(MESS_DRIVERS)/sms.o:      $(MESS_LAYOUT)/sms1.lh
trunk/src/mess/tools/castool/main.c
r241777r241778
2020#include "corestr.h"
2121
2222#include "formats/a26_cas.h"
23#include "formats/ace_tap.h"
24#include "formats/adam_cas.h"
2523#include "formats/apf_apt.h"
2624#include "formats/cbm_tap.h"
2725#include "formats/cgen_cas.h"
2826#include "formats/coco_cas.h"
2927#include "formats/csw_cas.h"
30#include "formats/fm7_cas.h"
3128#include "formats/fmsx_cas.h"
3229#include "formats/gtp_cas.h"
3330#include "formats/hect_tap.h"
31#include "formats/ace_tap.h"
32#include "formats/adam_cas.h"
3433#include "formats/kc_cas.h"
3534#include "formats/kim1_cas.h"
3635#include "formats/lviv_lvt.h"
3736#include "formats/mz_cas.h"
3837#include "formats/orao_cas.h"
3938#include "formats/oric_tap.h"
40#include "formats/p6001_cas.h"
41#include "formats/phc25_cas.h"
4239#include "formats/pmd_cas.h"
4340#include "formats/primoptp.h"
4441#include "formats/rk_cas.h"
4542#include "formats/sc3000_bit.h"
46#include "formats/sol_cas.h"
47#include "formats/sorc_cas.h"
4843#include "formats/sord_cas.h"
49#include "formats/spc1000_cas.h"
5044#include "formats/svi_cas.h"
5145#include "formats/thom_cas.h"
5246#include "formats/trs_cas.h"
r241777r241778
5650#include "formats/vg5k_cas.h"
5751#include "formats/vt_cas.h"
5852#include "formats/x07_cas.h"
59#include "formats/x1_tap.h"
6053#include "formats/zx81_p.h"
6154
6255struct SupportedCassetteFormats
r241777r241778
6760};
6861
6962const struct SupportedCassetteFormats formats[] = {
70   {"a26", a26_cassette_formats               ,"Atari 2600 SuperCharger"},
63   {"a26", a26_cassette_formats               ,"Atari 2600"},
64   {"ddp", coleco_adam_cassette_formats       ,"Coleco Adam"},
7165   {"apf", apf_cassette_formats               ,"APF Imagination Machine"},
72   {"bbc", bbc_cassette_formats               ,"Acorn BBC & Electron"},
73   {"cbm", cbm_cassette_formats               ,"Commodore 8-bit series"},
74   {"cdt", cdt_cassette_formats               ,"Amstrad CPC"},
75   {"cgenie", cgenie_cassette_formats         ,"EACA Colour Genie"},
76   {"coco", coco_cassette_formats             ,"Tandy Radio Shack Color Computer"},
66   {"cbm", cbm_cassette_formats               ,"Commodore"},
67   {"cgenie", cgenie_cassette_formats         ,"Colour Genie"},
68   {"coco", coco_cassette_formats             ,"TRS-80 Radio Shack Color Computer Family"},
7769   {"csw", csw_cassette_formats               ,"Compressed Square Wave"},
78   {"ddp", coleco_adam_cassette_formats       ,"Coleco ADAM"},
79   {"fm7", fm7_cassette_formats               ,"Fujitsu FM-7"},
80   {"fmsx", fmsx_cassette_formats             ,"MSX"},
81   {"gtp", gtp_cassette_formats               ,"Elektronika inzenjering Galaksija"},
82   {"hector", hector_cassette_formats         ,"Micronique Hector & Interact Family Computer"},
83   {"jupiter", ace_cassette_formats           ,"Jupiter Cantab Jupiter Ace"},
70   {"bbc", bbc_cassette_formats               ,"BBC"},
71   {"fmxs", fmsx_cassette_formats             ,"MSX"},
72   {"gtp", gtp_cassette_formats               ,"Galaksija"},
73   {"hector", hector_cassette_formats         ,"Hector - k7 : classical, FOR : forth cassette "},
74   {"jupiter", ace_cassette_formats           ,"Jupiter"},
8475   {"kc85", kc_cassette_formats               ,"VEB Mikroelektronik KC 85"},
85   {"kim1", kim1_cassette_formats             ,"MOS KIM-1"},
86   {"lviv", lviv_lvt_format                   ,"PK-01 Lviv"},
87   {"mo5", mo5_cassette_formats               ,"Thomson MO-series"},
88   {"mz", mz700_cassette_formats              ,"Sharp MZ-700"},
89   {"orao", orao_cassette_formats             ,"PEL Varazdin Orao"},
90   {"oric", oric_cassette_formats             ,"Tangerine Oric"},
91   {"pc6001", pc6001_cassette_formats         ,"NEC PC-6001"},
92   {"phc25", phc25_cassette_formats           ,"Sanyo PHC-25"},
93   {"pmd85", pmd85_cassette_formats           ,"Tesla PMD-85"},
94   {"primo", primo_ptp_format                 ,"Microkey Primo"},
76   {"kim1", kim1_cassette_formats             ,"KIM-1"},
77   {"lviv", lviv_lvt_format                   ,"Lviv"},
78   {"mz", mz700_cassette_formats              ,"Sharp MZ"},
79   {"orao", orao_cassette_formats             ,"Orao"},
80   {"oric", oric_cassette_formats             ,"Oric"},
81   {"pmd85", pmd85_cassette_formats           ,"PMD-85"},
82   {"primo", primo_ptp_format                 ,"Primo"},
9583   {"rku", rku_cassette_formats               ,"UT-88"},
9684   {"rk8", rk8_cassette_formats               ,"Mikro-80"},
9785   {"rks", rks_cassette_formats               ,"Specialist"},
9886   {"rko", rko_cassette_formats               ,"Orion"},
9987   {"rkr", rkr_cassette_formats               ,"Radio-86RK"},
100   {"rka", rka_cassette_formats               ,"Zavod BRA Apogee BK-01"},
88   {"rka", rka_cassette_formats               ,"Apogee"},
10189   {"rkm", rkm_cassette_formats               ,"Mikrosha"},
102   {"rkp", rkp_cassette_formats               ,"SAM SKB VM Partner-01.01"},
90   {"rkp", rkp_cassette_formats               ,"Partner"},
10391   {"sc3000", sc3000_cassette_formats         ,"Sega SC-3000"},
104   {"sol20", sol20_cassette_formats           ,"PTC SOL-20"},
105   {"sorcerer", sorcerer_cassette_formats     ,"Exidy Sorcerer"},
10692   {"sordm5", sordm5_cassette_formats         ,"Sord M5"},
107   {"spc1000", spc1000_cassette_formats       ,"Samsung SPC-1000"},   
108   {"svi", svi_cassette_formats               ,"Spectravideo SVI-318 & SVI-328"},
109   {"to7", to7_cassette_formats               ,"Thomson TO-series"},
93   {"svi", svi_cassette_formats               ,"SVI"},
94   {"to7", to7_cassette_formats               ,"Thomson TO"},
95   {"mo5", mo5_cassette_formats               ,"Thomson MO"},
11096   {"trs80l2", trs80l2_cassette_formats       ,"TRS-80 Level 2"},
11197   {"tvc64", tvc64_cassette_formats           ,"Videoton TVC 64"},
112   {"tzx", tzx_cassette_formats               ,"Sinclair ZX Spectrum"},
98   {"tzx", tzx_cassette_formats               ,"ZX Spectrum"},
99   {"cdt", cdt_cassette_formats               ,"Amstrad CPC"},
113100   {"uef", uef_cassette_formats               ,"Acorn Electron"},
114   {"vg5k", vg5k_cassette_formats             ,"Philips VG 5000"},
101   {"vg5k", vg5k_cassette_formats             ,"VG 5000 k7"},
115102   {"vtech1", vtech1_cassette_formats         ,"Video Technology Laser 110-310"},
116103   {"vtech2", vtech2_cassette_formats         ,"Video Technology Laser 350-700"},
117104   {"x07", x07_cassette_formats               ,"Canon X-07"},
118   {"x1", x1_cassette_formats                 ,"Sharp X1"},
119   {"zx80_o", zx80_o_format                   ,"Sinclair ZX80"},
120105   {"zx81_p", zx81_p_format                   ,"Sinclair ZX81"},
121
122
123   
106   {"zx80_o", zx80_o_format                   ,"Sinclair ZX80"},
124107   {NULL,NULL,NULL}
125108};
126109
trunk/src/osd/sdl/sdl.mak
r241777r241778
8383OSDSRC = $(SRC)/osd
8484OSDOBJ = $(OBJ)/osd
8585
86# default to SDL2 for non-OS/2, non-Emscripten builds now
86# default to SDL2 for non-OS/2 builds now
8787ifndef SDL_LIBVER
8888ifneq ($(TARGETOS),os2)
89ifneq ($(TARGETOS),emscripten)
9089SDL_LIBVER = sdl2
9190else
9291SDL_LIBVER = sdl
9392endif
94else
95SDL_LIBVER = sdl
9693endif
97endif
9894
9995ifndef NO_USE_QTDEBUG
10096OBJDIRS += $(OSDOBJ)/modules/debugger/qt
r241777r241778
262258NO_USE_XINPUT = 1
263259NO_USE_MIDI = 1
264260NO_USE_QTDEBUG = 1
265DONT_USE_NETWORK = 1
266261endif
267262
268263ifeq ($(TARGETOS),macosx)
r241777r241778
784779LIBS += -lpcap
785780endif
786781endif
787else
788OSDOBJS += $(SDLOBJ)/netdev.o
789782endif
790783
791784#-------------------------------------------------


Previous 199869 Revisions Next


© 1997-2024 The MAME Team