Previous 199869 Revisions Next

r33270 Friday 7th November, 2014 at 17:30:49 UTC by hap
Merge pull request #28 from felipesanches/gforce2_motorcpu

SEGA YBoard: Mapping the port bits used to provide motor movement feedback
[/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 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
r241781r241782
11What is MAME?
22=============
33
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.
4MAME stands for Multiple Arcade Machine Emulator.
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
86MAME'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
r0r241782
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
r241781r241782
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">
r241781r241782
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">
r241781r241782
2525   </software>
2626
2727   <software name="airraid">
28      <description>airraid</description>
28      <description>Air Raid</description>
2929      <year>19??</year>
3030      <publisher>&lt;unknown&gt;</publisher>
3131      <part name="flop1" interface="floppy_5_25">
r241781r241782
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">
r241781r241782
4646      </part>
4747   </software>
4848
49   <software name="altronic">
50      <description>alltronics</description>
49   <software name="alieninva" cloneof="alieninv">
50      <description>Alien Invasion (v1.4, Alt)</description>
5151      <year>19??</year>
5252      <publisher>&lt;unknown&gt;</publisher>
5353      <part name="flop1" interface="floppy_5_25">
54         <dataarea name="flop" size="162831">
55            <rom name="alltronics.ccvf" size="162831" crc="b35c5bb8" sha1="7ce89d3ac445814452e97a9b6d44ba6b47f158a4" offset="0"/>
54         <dataarea name="flop" size="162879">
55            <rom name="alien_invasion_v1.4 (alt).ccvf" size="162879" crc="ba6ecb8c" sha1="7f5f24fafcc50c380f42f86fb502683259edfc40" offset="0" />
5656         </dataarea>
5757      </part>
5858   </software>
5959
60   <software name="analiz">
61      <description>analiz_watals</description>
60   <software name="altronic">
61      <description>Alltronics</description>
6262      <year>19??</year>
6363      <publisher>&lt;unknown&gt;</publisher>
6464      <part name="flop1" interface="floppy_5_25">
65         <dataarea name="flop" size="162871">
66            <rom name="analiz_watals.ccvf" size="162871" crc="91bb3632" sha1="61472691a68688b3a9281385327a7d07e77c9d3b" offset="0"/>
65         <dataarea name="flop" size="162831">
66            <rom name="alltronics.ccvf" size="162831" crc="b35c5bb8" sha1="7ce89d3ac445814452e97a9b6d44ba6b47f158a4" offset="0"/>
6767         </dataarea>
6868      </part>
6969   </software>
7070
71   <software name="arcdsoft">
72      <description>arcade_softwares</description>
71   <software name="arcadegm">
72      <description>Arcade Games</description>
7373      <year>19??</year>
7474      <publisher>&lt;unknown&gt;</publisher>
7575      <part name="flop1" interface="floppy_5_25">
r241781r241782
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">
r241781r241782
9191   </software>
9292
9393   <software name="asmutil3">
94      <description>asm_utility_3</description>
94      <description>ASM Utilities - 3</description>
9595      <year>19??</year>
9696      <publisher>&lt;unknown&gt;</publisher>
9797      <part name="flop1" interface="floppy_5_25">
r241781r241782
102102   </software>
103103
104104   <software name="asmutil4">
105      <description>asm_utility_4-sidea</description>
105      <description>ASM Utilities - 4</description>
106106      <year>19??</year>
107107      <publisher>&lt;unknown&gt;</publisher>
108108      <part name="flop1" interface="floppy_5_25">
r241781r241782
119119   </software>
120120
121121   <software name="asmutilr">
122      <description>asm_utility_routines-sidea</description>
122      <description>ASM Utilities - Routines</description>
123123      <year>19??</year>
124124      <publisher>&lt;unknown&gt;</publisher>
125125      <part name="flop1" interface="floppy_5_25">
r241781r241782
135135      </part>
136136   </software>
137137
138   <software name="asmtut">
139      <description>asmtut_disk1</description>
138   <software name="asmtutor">
139      <description>ASM Tutorial</description>
140140      <year>19??</year>
141141      <publisher>&lt;unknown&gt;</publisher>
142142      <part name="flop1" interface="floppy_5_25">
r241781r241782
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">
r241781r241782
181181      </part>
182182
183183      <part name="flop2" interface="floppy_5_25">
184         <info name="part_id" value="Source"/>
184185         <dataarea name="flop" size="162886">
185186            <rom name="asteriods_source.ccvf" size="162886" crc="14af4de7" sha1="43a76ffda8b4e2f5513c8cd9ac6390ab15854280" offset="0"/>
186187         </dataarea>
187188      </part>
188189   </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>
189200
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
190209   <software name="ay8910">
191      <description>ay-3-8910_programs</description>
210      <description>AY-3-8910 Programs</description>
192211      <year>19??</year>
193212      <publisher>&lt;unknown&gt;</publisher>
194213      <part name="flop1" interface="floppy_5_25">
r241781r241782
199218   </software>
200219
201220   <software name="backgamn">
202      <description>backgammon-sidea</description>
221      <description>Backgammon</description>
203222      <year>19??</year>
204223      <publisher>&lt;unknown&gt;</publisher>
205224      <part name="flop1" interface="floppy_5_25">
r241781r241782
209228      </part>
210229
211230      <part name="flop2" interface="floppy_5_25">
231         <info name="part_id" value="Source"/>
212232         <dataarea name="flop" size="162832">
213233            <rom name="backgammon-sideb.ccvf" size="162832" crc="7f9aca0c" sha1="a6b588e075c17f5d1ff10675de88f3c51a4ca35e" offset="0"/>
214234         </dataarea>
r241781r241782
216236   </software>
217237
218238   <software name="basiccmp">
219      <description>basic_compiler_v12.25</description>
239      <description>BASIC Compiler v12.25</description>
220240      <year>19??</year>
221241      <publisher>&lt;unknown&gt;</publisher>
222242      <part name="flop1" interface="floppy_5_25">
r241781r241782
227247   </software>
228248
229249   <software name="basiclng">
230      <description>basic_language_1-5</description>
250      <description>BASIC Language</description>
231251      <year>19??</year>
232252      <publisher>&lt;unknown&gt;</publisher>
233253      <part name="flop1" interface="floppy_5_25">
r241781r241782
250270   </software>
251271
252272   <software name="basicles">
253      <description>basic_lessons</description>
273      <description>BASIC Lessons</description>
254274      <year>19??</year>
255275      <publisher>&lt;unknown&gt;</publisher>
256276      <part name="flop1" interface="floppy_5_25">
r241781r241782
260280      </part>
261281   </software>
262282
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
263294   <software name="basicutl">
264      <description>basic_utilities</description>
295      <description>BASIC Utilities</description>
265296      <year>19??</year>
266297      <publisher>&lt;unknown&gt;</publisher>
267298      <part name="flop1" interface="floppy_5_25">
r241781r241782
271302      </part>
272303   </software>
273304
274   <software name="bttlship">
275      <description>battleship</description>
305   <software name="bship">
306      <description>Battleship</description>
276307      <year>19??</year>
277308      <publisher>&lt;unknown&gt;</publisher>
278309      <part name="flop1" interface="floppy_5_25">
r241781r241782
282313      </part>
283314   </software>
284315
285   <software name="bertsbar">
286      <description>berts_bar</description>
316   <software name="bshipa" cloneof="bship">
317      <description>Battleship (Alt)</description>
287318      <year>19??</year>
288319      <publisher>&lt;unknown&gt;</publisher>
289320      <part name="flop1" interface="floppy_5_25">
290         <dataarea name="flop" size="162856">
291            <rom name="berts_bar.ccvf" size="162856" crc="7a041e32" sha1="cabe252f239c2437c5edc00afa62374224308336" offset="0"/>
321         <dataarea name="flop" size="162916">
322            <rom name="battleship (alt).ccvf" size="162916" crc="e0b169cc" sha1="265ccb3f19ebe1e35da1cda7f5c5ba3106df8313" offset="0" />
292323         </dataarea>
293324      </part>
294325   </software>
295326
296   <software name="bitmaps">
297      <description>bitmaps</description>
327   <software name="bertsbar">
328      <description>Bert's Bar</description>
298329      <year>19??</year>
299330      <publisher>&lt;unknown&gt;</publisher>
300331      <part name="flop1" interface="floppy_5_25">
301         <dataarea name="flop" size="162818">
302            <rom name="bitmaps.ccvf" size="162818" crc="03f6ee7f" sha1="f6651f3b4c3d709124782bccb1dafd7fbf557c9c" offset="0"/>
332         <dataarea name="flop" size="162856">
333            <rom name="berts_bar.ccvf" size="162856" crc="7a041e32" sha1="cabe252f239c2437c5edc00afa62374224308336" offset="0"/>
303334         </dataarea>
304335      </part>
305336   </software>
306337
307338   <software name="blackjak">
308      <description>blackjack</description>
339      <description>Blackjack</description>
309340      <year>19??</year>
310341      <publisher>&lt;unknown&gt;</publisher>
311342      <part name="flop1" interface="floppy_5_25">
r241781r241782
316347   </software>
317348
318349   <software name="blank">
319      <description>blank</description>
350      <description>Blank</description>
320351      <year>19??</year>
321352      <publisher>&lt;unknown&gt;</publisher>
322353      <part name="flop1" interface="floppy_5_25">
r241781r241782
326357      </part>
327358   </software>
328359
329   <software name="brdsofts">
330      <description>board_softwares</description>
360   <software name="blanka" cloneof="blank">
361      <description>Blank (Alt)</description>
331362      <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>
332374      <publisher>&lt;unknown&gt;</publisher>
333375      <part name="flop1" interface="floppy_5_25">
334376         <dataarea name="flop" size="162822">
r241781r241782
338380   </software>
339381
340382   <software name="bondsec">
341      <description>bonds_and_securities</description>
383      <description>Bonds And Securities</description>
342384      <year>19??</year>
343385      <publisher>&lt;unknown&gt;</publisher>
344386      <part name="flop1" interface="floppy_5_25">
r241781r241782
348390      </part>
349391   </software>
350392
351   <software name="bnceball">
352      <description>bounce_ball</description>
393   <software name="bounce">
394      <description>Bounce Ball</description>
353395      <year>19??</year>
354396      <publisher>&lt;unknown&gt;</publisher>
355397      <part name="flop1" interface="floppy_5_25">
r241781r241782
359401      </part>
360402   </software>
361403
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
362415   <software name="catalg32">
363      <description>catalog_32</description>
416      <description>Catalog 32k</description>
364417      <year>19??</year>
365418      <publisher>&lt;unknown&gt;</publisher>
366419      <part name="flop1" interface="floppy_5_25">
r241781r241782
370423      </part>
371424   </software>
372425
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
373437   <software name="ccug14b">
374      <description>ccug_14b</description>
438      <description>Canadian Compucolor Users Disk #14B</description>
375439      <year>19??</year>
376440      <publisher>&lt;unknown&gt;</publisher>
377441      <part name="flop1" interface="floppy_5_25">
r241781r241782
382446   </software>
383447
384448   <software name="chess">
385      <description>chess</description>
449      <description>Chess</description>
386450      <year>19??</year>
387451      <publisher>&lt;unknown&gt;</publisher>
388452      <part name="flop1" interface="floppy_5_25">
r241781r241782
392456      </part>
393457   </software>
394458
395   <software name="chip1">
396      <description>chip_1</description>
459   <software name="chip001">
460      <description>Chip #1</description>
397461      <year>19??</year>
398462      <publisher>&lt;unknown&gt;</publisher>
399463      <part name="flop1" interface="floppy_5_25">
r241781r241782
403467      </part>
404468   </software>
405469
406   <software name="chip10">
407      <description>chip_10</description>
470   <software name="chip008">
471      <description>Chip #8</description>
408472      <year>19??</year>
409473      <publisher>&lt;unknown&gt;</publisher>
410474      <part name="flop1" interface="floppy_5_25">
411         <dataarea name="flop" size="162814">
412            <rom name="chip_10.ccvf" size="162814" crc="527a9191" sha1="bb79d1c28c3b280cbfae06a2ba3495ef021777eb" offset="0"/>
475         <dataarea name="flop" size="162826">
476            <rom name="chip_8.ccvf" size="162826" crc="182eaf6a" sha1="7a477a1a75775b7c08e732585e0f26ad50953104" offset="0"/>
413477         </dataarea>
414478      </part>
415479   </software>
416480
417   <software name="chip106">
418      <description>chip_106</description>
481   <software name="chip009">
482      <description>Chip #9</description>
419483      <year>19??</year>
420484      <publisher>&lt;unknown&gt;</publisher>
421485      <part name="flop1" interface="floppy_5_25">
422         <dataarea name="flop" size="162828">
423            <rom name="chip_106.ccvf" size="162828" crc="2db8614d" sha1="ae20f74e4ac0cfc27c93c74fc504f8e8d1e71c90" offset="0"/>
486         <dataarea name="flop" size="162813">
487            <rom name="chip_9.ccvf" size="162813" crc="30d385e1" sha1="10cd8fe780d47be6dfe52b9ea4ba822c97a6f69b" offset="0"/>
424488         </dataarea>
425489      </part>
426490   </software>
427491
428   <software name="chip107">
429      <description>chip_107</description>
492   <software name="chip010">
493      <description>Chip #10</description>
430494      <year>19??</year>
431495      <publisher>&lt;unknown&gt;</publisher>
432496      <part name="flop1" interface="floppy_5_25">
433         <dataarea name="flop" size="162845">
434            <rom name="chip_107.ccvf" size="162845" crc="9845ee1e" sha1="cbbb9b3bb9d844d3b9ff393b5b9abf2a9d247302" offset="0"/>
497         <dataarea name="flop" size="162814">
498            <rom name="chip_10.ccvf" size="162814" crc="527a9191" sha1="bb79d1c28c3b280cbfae06a2ba3495ef021777eb" offset="0"/>
435499         </dataarea>
436500      </part>
437501   </software>
438502
439   <software name="chip108">
440      <description>chip_108</description>
503   <software name="chip012">
504      <description>Chip #12</description>
441505      <year>19??</year>
442506      <publisher>&lt;unknown&gt;</publisher>
443507      <part name="flop1" interface="floppy_5_25">
444         <dataarea name="flop" size="162844">
445            <rom name="chip_108.ccvf" size="162844" crc="7fc7ce87" sha1="82a95463255577d60ec8f07b23b421ab9ece4749" offset="0"/>
508         <dataarea name="flop" size="162814">
509            <rom name="chip_12.ccvf" size="162814" crc="c3c9e871" sha1="3d53ac91afadd5559caf31e01074cb105e0fdb80" offset="0"/>
446510         </dataarea>
447511      </part>
448512   </software>
449513
450   <software name="chip110">
451      <description>chip_110</description>
514   <software name="chip013">
515      <description>Chip #13</description>
452516      <year>19??</year>
453517      <publisher>&lt;unknown&gt;</publisher>
454518      <part name="flop1" interface="floppy_5_25">
455         <dataarea name="flop" size="162838">
456            <rom name="chip_110.ccvf" size="162838" crc="51a48a24" sha1="326731da5a016fafbf1898f115520d06c16df6e7" offset="0"/>
519         <dataarea name="flop" size="162814">
520            <rom name="chip_13.ccvf" size="162814" crc="c491f41b" sha1="16f580cd147c005e3dcfba24ca0dfcfd083c9062" offset="0"/>
457521         </dataarea>
458522      </part>
459523   </software>
460524
461   <software name="chip114">
462      <description>chip_114</description>
525   <software name="chip015">
526      <description>Chip #15</description>
463527      <year>19??</year>
464528      <publisher>&lt;unknown&gt;</publisher>
465529      <part name="flop1" interface="floppy_5_25">
466         <dataarea name="flop" size="162846">
467            <rom name="chip_114.ccvf" size="162846" crc="b3ec2517" sha1="2fa2fe1a4d30abf4eae4801e10d2ca66c8ae3cd9" offset="0"/>
530         <dataarea name="flop" size="162814">
531            <rom name="chip_15.ccvf" size="162814" crc="bcf16deb" sha1="7708406e89784fbae752bef36fa2ee9ee93afe48" offset="0"/>
468532         </dataarea>
469533      </part>
470534   </software>
471535
472   <software name="chip117">
473      <description>chip_117</description>
536   <software name="chip016">
537      <description>Chip #16</description>
474538      <year>19??</year>
475539      <publisher>&lt;unknown&gt;</publisher>
476540      <part name="flop1" interface="floppy_5_25">
477         <dataarea name="flop" size="162832">
478            <rom name="chip_117.ccvf" size="162832" crc="edbcfb6c" sha1="7ad9829384e9133282ff97c7a3a9f2d50b2e7acd" offset="0"/>
541         <dataarea name="flop" size="162814">
542            <rom name="chip_16.ccvf" size="162814" crc="032861c7" sha1="201443c1c800b663fe9c8bd2868d1bc03b72e375" offset="0"/>
479543         </dataarea>
480544      </part>
481545   </software>
482546
483   <software name="chip119">
484      <description>chip_119</description>
547   <software name="chip017">
548      <description>Chip #17</description>
485549      <year>19??</year>
486550      <publisher>&lt;unknown&gt;</publisher>
487551      <part name="flop1" interface="floppy_5_25">
488         <dataarea name="flop" size="162828">
489            <rom name="chip_119.ccvf" size="162828" crc="7f34ee3f" sha1="edb68f3462bfe18603034fefa3ed6a0df2ea9d66" offset="0"/>
552         <dataarea name="flop" size="162814">
553            <rom name="chip_17.ccvf" size="162814" crc="394e3cd5" sha1="def68b4512ea2bd7d6d011c7dcfd33fdf28a88b5" offset="0"/>
490554         </dataarea>
491555      </part>
492556   </software>
493557
494   <software name="chip12">
495      <description>chip_12</description>
558   <software name="chip021">
559      <description>Chip #21</description>
496560      <year>19??</year>
497561      <publisher>&lt;unknown&gt;</publisher>
498562      <part name="flop1" interface="floppy_5_25">
499563         <dataarea name="flop" size="162814">
500            <rom name="chip_12.ccvf" size="162814" crc="c3c9e871" sha1="3d53ac91afadd5559caf31e01074cb105e0fdb80" offset="0"/>
564            <rom name="chip_21.ccvf" size="162814" crc="a74d454f" sha1="64590210d9ac2d259ee2fe6c543236c000aa48fe" offset="0"/>
501565         </dataarea>
502566      </part>
503567   </software>
504568
505   <software name="chip120">
506      <description>chip_120</description>
569   <software name="chip022">
570      <description>Chip #22</description>
507571      <year>19??</year>
508572      <publisher>&lt;unknown&gt;</publisher>
509573      <part name="flop1" interface="floppy_5_25">
510         <dataarea name="flop" size="162843">
511            <rom name="chip_120.ccvf" size="162843" crc="413d68d1" sha1="5be07bd4ea2aee0a38e22bb38fd77cd101881710" offset="0"/>
574         <dataarea name="flop" size="162831">
575            <rom name="chip_22.ccvf" size="162831" crc="35011349" sha1="da2468909253f700c8b484b97519a3b8eb5b69a2" offset="0"/>
512576         </dataarea>
513577      </part>
514578   </software>
515579
516   <software name="chip121">
517      <description>chip_121</description>
580   <software name="chip023">
581      <description>Chip #23</description>
518582      <year>19??</year>
519583      <publisher>&lt;unknown&gt;</publisher>
520584      <part name="flop1" interface="floppy_5_25">
521         <dataarea name="flop" size="162851">
522            <rom name="chip_121.ccvf" size="162851" crc="8a7cb479" sha1="ab8ff9d4b07c016a3640c57660677ca461b62cc2" offset="0"/>
585         <dataarea name="flop" size="162814">
586            <rom name="chip_23.ccvf" size="162814" crc="ad8114a5" sha1="cce250643668e91973a69932f201b49252c4987e" offset="0"/>
523587         </dataarea>
524588      </part>
525589   </software>
526590
527   <software name="chip_125">
528      <description>chip_125</description>
591   <software name="chip024">
592      <description>Chip #24</description>
529593      <year>19??</year>
530594      <publisher>&lt;unknown&gt;</publisher>
531595      <part name="flop1" interface="floppy_5_25">
532         <dataarea name="flop" size="162815">
533            <rom name="chip_125.ccvf" size="162815" crc="ef47c0c6" sha1="1c8557bb4d5e825ea85949b7b51316df475b4976" offset="0"/>
596         <dataarea name="flop" size="162838">
597            <rom name="chip_24.ccvf" size="162838" crc="808fdfe0" sha1="878c29c89c92183f2339640578fd33b819440c36" offset="0"/>
534598         </dataarea>
535599      </part>
600   </software>
536601
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"/>
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"/>
540609         </dataarea>
541610      </part>
542611   </software>
543612
544   <software name="chip128">
545      <description>chip_128</description>
613   <software name="chip027">
614      <description>Chip #27</description>
546615      <year>19??</year>
547616      <publisher>&lt;unknown&gt;</publisher>
548617      <part name="flop1" interface="floppy_5_25">
549         <dataarea name="flop" size="162815">
550            <rom name="chip_128.ccvf" size="162815" crc="5bc2cf15" sha1="3e82aef8a638d822724021cb582d08513969cd77" offset="0"/>
618         <dataarea name="flop" size="162832">
619            <rom name="chip_27.ccvf" size="162832" crc="9e510dd7" sha1="7709796198e1896d9b643cb51a5a90ffe969cf3c" offset="0"/>
551620         </dataarea>
552621      </part>
553622   </software>
554623
555   <software name="chip129">
556      <description>chip_129</description>
624   <software name="chip033">
625      <description>Chip #33</description>
557626      <year>19??</year>
558627      <publisher>&lt;unknown&gt;</publisher>
559628      <part name="flop1" interface="floppy_5_25">
560         <dataarea name="flop" size="162815">
561            <rom name="chip_129.ccvf" size="162815" crc="f7f8c8dd" sha1="f1bed1ce4413223450192cf62ef471e8bcbb1a60" offset="0"/>
629         <dataarea name="flop" size="162833">
630            <rom name="chip_33.ccvf" size="162833" crc="ae4c688d" sha1="504f34781b30a934f04a5cb08d0683e074a91568" offset="0"/>
562631         </dataarea>
563632      </part>
564633   </software>
565634
566   <software name="chip13">
567      <description>chip_13</description>
635   <software name="chip036">
636      <description>Chip #36</description>
568637      <year>19??</year>
569638      <publisher>&lt;unknown&gt;</publisher>
570639      <part name="flop1" interface="floppy_5_25">
571         <dataarea name="flop" size="162814">
572            <rom name="chip_13.ccvf" size="162814" crc="c491f41b" sha1="16f580cd147c005e3dcfba24ca0dfcfd083c9062" offset="0"/>
640         <dataarea name="flop" size="162836">
641            <rom name="chip_36.ccvf" size="162836" crc="0a0a381a" sha1="1f711835e99d0156302a7fe45f390d4611c5896f" offset="0"/>
573642         </dataarea>
574643      </part>
575644   </software>
576645
577   <software name="chip_138">
578      <description>chip_138</description>
646   <software name="chip039">
647      <description>Chip #39</description>
579648      <year>19??</year>
580649      <publisher>&lt;unknown&gt;</publisher>
581650      <part name="flop1" interface="floppy_5_25">
582         <dataarea name="flop" size="162815">
583            <rom name="chip_138.ccvf" size="162815" crc="1f0bd8ae" sha1="8e31d8312d4eb65efbb9733cd65c84a981a8f6ae" offset="0"/>
651         <dataarea name="flop" size="162842">
652            <rom name="chip_39.ccvf" size="162842" crc="82485868" sha1="592db58c9c701034594dbe20bdbf9766e48291dd" offset="0"/>
584653         </dataarea>
585654      </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>
592655   </software>
593656
594   <software name="chip15">
595      <description>chip_15</description>
657   <software name="chip046">
658      <description>Chip #46</description>
596659      <year>19??</year>
597660      <publisher>&lt;unknown&gt;</publisher>
598661      <part name="flop1" interface="floppy_5_25">
599         <dataarea name="flop" size="162814">
600            <rom name="chip_15.ccvf" size="162814" crc="bcf16deb" sha1="7708406e89784fbae752bef36fa2ee9ee93afe48" offset="0"/>
662         <dataarea name="flop" size="162852">
663            <rom name="chip_46.ccvf" size="162852" crc="10088bb0" sha1="c14f578a58d07eb1147b28953f42ba1d891a0c77" offset="0"/>
601664         </dataarea>
602665      </part>
603666   </software>
604667
605   <software name="chip16">
606      <description>chip_16</description>
668   <software name="chip053">
669      <description>Chip #53</description>
607670      <year>19??</year>
608671      <publisher>&lt;unknown&gt;</publisher>
609672      <part name="flop1" interface="floppy_5_25">
610         <dataarea name="flop" size="162814">
611            <rom name="chip_16.ccvf" size="162814" crc="032861c7" sha1="201443c1c800b663fe9c8bd2868d1bc03b72e375" offset="0"/>
673         <dataarea name="flop" size="162849">
674            <rom name="chip_53.ccvf" size="162849" crc="75130b74" sha1="b080fbc4271cf3d4512b9ba5f2b48a10c3534168" offset="0"/>
612675         </dataarea>
613676      </part>
614677   </software>
615678
616   <software name="chip17">
617      <description>chip_17</description>
679   <software name="chip057">
680      <description>Chip #57</description>
618681      <year>19??</year>
619682      <publisher>&lt;unknown&gt;</publisher>
620683      <part name="flop1" interface="floppy_5_25">
621684         <dataarea name="flop" size="162814">
622            <rom name="chip_17.ccvf" size="162814" crc="394e3cd5" sha1="def68b4512ea2bd7d6d011c7dcfd33fdf28a88b5" offset="0"/>
685            <rom name="chip_57.ccvf" size="162814" crc="beae7ee3" sha1="4f8fb7503f9944bd509482e318aed4d2530e4675" offset="0"/>
623686         </dataarea>
624687      </part>
625688   </software>
626689
627   <software name="chip21">
628      <description>chip_21</description>
690   <software name="chip061">
691      <description>Chip #61</description>
629692      <year>19??</year>
630693      <publisher>&lt;unknown&gt;</publisher>
631694      <part name="flop1" interface="floppy_5_25">
632         <dataarea name="flop" size="162814">
633            <rom name="chip_21.ccvf" size="162814" crc="a74d454f" sha1="64590210d9ac2d259ee2fe6c543236c000aa48fe" offset="0"/>
695         <dataarea name="flop" size="162839">
696            <rom name="chip_61.ccvf" size="162839" crc="07566ea3" sha1="7129b20b02478766892b32d94977dab22b2f9bbd" offset="0"/>
634697         </dataarea>
635698      </part>
636699   </software>
637700
638   <software name="chip22">
639      <description>chip_22</description>
701   <software name="chip062">
702      <description>Chip #62</description>
640703      <year>19??</year>
641704      <publisher>&lt;unknown&gt;</publisher>
642705      <part name="flop1" interface="floppy_5_25">
643         <dataarea name="flop" size="162831">
644            <rom name="chip_22.ccvf" size="162831" crc="35011349" sha1="da2468909253f700c8b484b97519a3b8eb5b69a2" offset="0"/>
706         <dataarea name="flop" size="162814">
707            <rom name="chip_62.ccvf" size="162814" crc="f27921ec" sha1="fc493d1cf1c53145a7a7ccbe21e723d84311021c" offset="0"/>
645708         </dataarea>
646709      </part>
647710   </software>
648711
649   <software name="chip23">
650      <description>chip_23</description>
712   <software name="chip063">
713      <description>Chip #63</description>
651714      <year>19??</year>
652715      <publisher>&lt;unknown&gt;</publisher>
653716      <part name="flop1" interface="floppy_5_25">
654         <dataarea name="flop" size="162814">
655            <rom name="chip_23.ccvf" size="162814" crc="ad8114a5" sha1="cce250643668e91973a69932f201b49252c4987e" offset="0"/>
717         <dataarea name="flop" size="162835">
718            <rom name="chip_63.ccvf" size="162835" crc="12cceb87" sha1="9b01d926cf52ae00fc33082ccb5d3e811ebcc0bf" offset="0"/>
656719         </dataarea>
657720      </part>
658721   </software>
659722
660   <software name="chip24">
661      <description>chip_24</description>
723   <software name="chip064">
724      <description>Chip #64</description>
662725      <year>19??</year>
663726      <publisher>&lt;unknown&gt;</publisher>
664727      <part name="flop1" interface="floppy_5_25">
665728         <dataarea name="flop" size="162838">
666            <rom name="chip_24.ccvf" size="162838" crc="808fdfe0" sha1="878c29c89c92183f2339640578fd33b819440c36" offset="0"/>
729            <rom name="chip_64.ccvf" size="162838" crc="a9a140c7" sha1="19f4a3c7d26cd63bf2eac36864a2294973a43b27" offset="0"/>
667730         </dataarea>
668731      </part>
669732   </software>
670733
671   <software name="chip25">
672      <description>chip_25</description>
734   <software name="chip075">
735      <description>Chip #75</description>
673736      <year>19??</year>
674737      <publisher>&lt;unknown&gt;</publisher>
675738      <part name="flop1" interface="floppy_5_25">
676         <dataarea name="flop" size="162833">
677            <rom name="chip_25.ccvf" size="162833" crc="f6816d84" sha1="6bb92135f050ef3822e488d88d4bd9f8f65a1580" offset="0"/>
739         <dataarea name="flop" size="162836">
740            <rom name="chip_75.ccvf" size="162836" crc="55a6904c" sha1="7fd62d534a20511c88c79ae95c018b09e5a87f3c" offset="0"/>
678741         </dataarea>
679742      </part>
680743   </software>
681744
682   <software name="chip27">
683      <description>chip_27</description>
745   <software name="chip077">
746      <description>Chip #77</description>
684747      <year>19??</year>
685748      <publisher>&lt;unknown&gt;</publisher>
686749      <part name="flop1" interface="floppy_5_25">
687750         <dataarea name="flop" size="162832">
688            <rom name="chip_27.ccvf" size="162832" crc="9e510dd7" sha1="7709796198e1896d9b643cb51a5a90ffe969cf3c" offset="0"/>
751            <rom name="chip_77.ccvf" size="162832" crc="afe57afb" sha1="acbc5b1c5173f9dc08945349ed6f378e06554d1c" offset="0"/>
689752         </dataarea>
690753      </part>
691754   </software>
692755
693   <software name="chip33">
694      <description>chip_33</description>
756   <software name="chip078">
757      <description>Chip #78</description>
695758      <year>19??</year>
696759      <publisher>&lt;unknown&gt;</publisher>
697760      <part name="flop1" interface="floppy_5_25">
698         <dataarea name="flop" size="162833">
699            <rom name="chip_33.ccvf" size="162833" crc="ae4c688d" sha1="504f34781b30a934f04a5cb08d0683e074a91568" offset="0"/>
761         <dataarea name="flop" size="162814">
762            <rom name="chip_78.ccvf" size="162814" crc="018497ed" sha1="0520a271cd8cd7e45ccc2a29bc9c88c7c02e0fa6" offset="0"/>
700763         </dataarea>
701764      </part>
702765   </software>
703766
704   <software name="chip36">
705      <description>chip_36</description>
767   <software name="chip079">
768      <description>Chip #79</description>
706769      <year>19??</year>
707770      <publisher>&lt;unknown&gt;</publisher>
708771      <part name="flop1" interface="floppy_5_25">
709         <dataarea name="flop" size="162836">
710            <rom name="chip_36.ccvf" size="162836" crc="0a0a381a" sha1="1f711835e99d0156302a7fe45f390d4611c5896f" offset="0"/>
772         <dataarea name="flop" size="162827">
773            <rom name="chip_79.ccvf" size="162827" crc="2bcdcfa7" sha1="af24a0c365994d37d27d40e5c9ba2852afe0550a" offset="0"/>
711774         </dataarea>
712775      </part>
713776   </software>
714777
715   <software name="chip39">
716      <description>chip_39</description>
778   <software name="chip081">
779      <description>Chip #81</description>
717780      <year>19??</year>
718781      <publisher>&lt;unknown&gt;</publisher>
719782      <part name="flop1" interface="floppy_5_25">
720         <dataarea name="flop" size="162842">
721            <rom name="chip_39.ccvf" size="162842" crc="82485868" sha1="592db58c9c701034594dbe20bdbf9766e48291dd" offset="0"/>
783         <dataarea name="flop" size="162814">
784            <rom name="chip_81.ccvf" size="162814" crc="a84a5f02" sha1="f8a3641d19c622a29dbda95a847374e428932e0d" offset="0"/>
722785         </dataarea>
723786      </part>
724787   </software>
725788
726   <software name="chip46">
727      <description>chip_46</description>
789   <software name="chip083">
790      <description>Chip #83</description>
728791      <year>19??</year>
729792      <publisher>&lt;unknown&gt;</publisher>
730793      <part name="flop1" interface="floppy_5_25">
731         <dataarea name="flop" size="162852">
732            <rom name="chip_46.ccvf" size="162852" crc="10088bb0" sha1="c14f578a58d07eb1147b28953f42ba1d891a0c77" offset="0"/>
794         <dataarea name="flop" size="162983">
795            <rom name="chip_83.ccvf" size="162983" crc="0c70bf13" sha1="53cd2ea25866d2445ed011a844bee85f97d0b525" offset="0"/>
733796         </dataarea>
734797      </part>
735798   </software>
736799
737   <software name="chip53">
738      <description>chip_53</description>
800   <software name="chip084">
801      <description>Chip #84</description>
739802      <year>19??</year>
740803      <publisher>&lt;unknown&gt;</publisher>
741804      <part name="flop1" interface="floppy_5_25">
742         <dataarea name="flop" size="162849">
743            <rom name="chip_53.ccvf" size="162849" crc="75130b74" sha1="b080fbc4271cf3d4512b9ba5f2b48a10c3534168" offset="0"/>
805         <dataarea name="flop" size="162913">
806            <rom name="chip_84.ccvf" size="162913" crc="20d865c4" sha1="77378e4cc39352d79de558b91b403bbbafc6201f" offset="0"/>
744807         </dataarea>
745808      </part>
746809   </software>
747810
748   <software name="chip57">
749      <description>chip_57</description>
811   <software name="chip085">
812      <description>Chip #85</description>
750813      <year>19??</year>
751814      <publisher>&lt;unknown&gt;</publisher>
752815      <part name="flop1" interface="floppy_5_25">
753816         <dataarea name="flop" size="162814">
754            <rom name="chip_57.ccvf" size="162814" crc="beae7ee3" sha1="4f8fb7503f9944bd509482e318aed4d2530e4675" offset="0"/>
817            <rom name="chip_85.ccvf" size="162814" crc="23550551" sha1="ff6d9738e142da6ac22cbbce90151f80de029663" offset="0"/>
755818         </dataarea>
756819      </part>
757820   </software>
758821
759   <software name="chip61">
760      <description>chip_61</description>
822   <software name="chip090">
823      <description>Chip #90</description>
761824      <year>19??</year>
762825      <publisher>&lt;unknown&gt;</publisher>
763826      <part name="flop1" interface="floppy_5_25">
764         <dataarea name="flop" size="162839">
765            <rom name="chip_61.ccvf" size="162839" crc="07566ea3" sha1="7129b20b02478766892b32d94977dab22b2f9bbd" offset="0"/>
827         <dataarea name="flop" size="162827">
828            <rom name="chip_90.ccvf" size="162827" crc="17311e29" sha1="845bb65a460d9a47f03d576f313505e2efc51739" offset="0"/>
766829         </dataarea>
767830      </part>
768831   </software>
769832
770   <software name="chip62">
771      <description>chip_62</description>
833   <software name="chip091">
834      <description>Chip #91</description>
772835      <year>19??</year>
773836      <publisher>&lt;unknown&gt;</publisher>
774837      <part name="flop1" interface="floppy_5_25">
775         <dataarea name="flop" size="162814">
776            <rom name="chip_62.ccvf" size="162814" crc="f27921ec" sha1="fc493d1cf1c53145a7a7ccbe21e723d84311021c" offset="0"/>
838         <dataarea name="flop" size="162853">
839            <rom name="chip_91.ccvf" size="162853" crc="d24c530d" sha1="fb2c0ae5c9c50c20ab639397fb1a9fabae0db47c" offset="0"/>
777840         </dataarea>
778841      </part>
779842   </software>
780843
781   <software name="chip63">
782      <description>chip_63</description>
844   <software name="chip092">
845      <description>Chip #92</description>
783846      <year>19??</year>
784847      <publisher>&lt;unknown&gt;</publisher>
785848      <part name="flop1" interface="floppy_5_25">
786         <dataarea name="flop" size="162835">
787            <rom name="chip_63.ccvf" size="162835" crc="12cceb87" sha1="9b01d926cf52ae00fc33082ccb5d3e811ebcc0bf" offset="0"/>
849         <dataarea name="flop" size="162814">
850            <rom name="chip_92.ccvf" size="162814" crc="013e8402" sha1="824cf53bc646762f723468fa45a0a4e6d0d7f119" offset="0"/>
788851         </dataarea>
789852      </part>
790853   </software>
791854
792   <software name="chip64">
793      <description>chip_64</description>
855   <software name="chip106">
856      <description>Chip #106</description>
794857      <year>19??</year>
795858      <publisher>&lt;unknown&gt;</publisher>
796859      <part name="flop1" interface="floppy_5_25">
797         <dataarea name="flop" size="162838">
798            <rom name="chip_64.ccvf" size="162838" crc="a9a140c7" sha1="19f4a3c7d26cd63bf2eac36864a2294973a43b27" offset="0"/>
860         <dataarea name="flop" size="162828">
861            <rom name="chip_106.ccvf" size="162828" crc="2db8614d" sha1="ae20f74e4ac0cfc27c93c74fc504f8e8d1e71c90" offset="0"/>
799862         </dataarea>
800863      </part>
801864   </software>
802865
803   <software name="chip75">
804      <description>chip_75</description>
866   <software name="chip107">
867      <description>Chip #107</description>
805868      <year>19??</year>
806869      <publisher>&lt;unknown&gt;</publisher>
807870      <part name="flop1" interface="floppy_5_25">
808         <dataarea name="flop" size="162836">
809            <rom name="chip_75.ccvf" size="162836" crc="55a6904c" sha1="7fd62d534a20511c88c79ae95c018b09e5a87f3c" offset="0"/>
871         <dataarea name="flop" size="162845">
872            <rom name="chip_107.ccvf" size="162845" crc="9845ee1e" sha1="cbbb9b3bb9d844d3b9ff393b5b9abf2a9d247302" offset="0"/>
810873         </dataarea>
811874      </part>
812875   </software>
813876
814   <software name="chip77">
815      <description>chip_77</description>
877   <software name="chip108">
878      <description>Chip #108</description>
816879      <year>19??</year>
817880      <publisher>&lt;unknown&gt;</publisher>
818881      <part name="flop1" interface="floppy_5_25">
819         <dataarea name="flop" size="162832">
820            <rom name="chip_77.ccvf" size="162832" crc="afe57afb" sha1="acbc5b1c5173f9dc08945349ed6f378e06554d1c" offset="0"/>
882         <dataarea name="flop" size="162844">
883            <rom name="chip_108.ccvf" size="162844" crc="7fc7ce87" sha1="82a95463255577d60ec8f07b23b421ab9ece4749" offset="0"/>
821884         </dataarea>
822885      </part>
823886   </software>
824887
825   <software name="chip78">
826      <description>chip_78</description>
888   <software name="chip110">
889      <description>Chip #110</description>
827890      <year>19??</year>
828891      <publisher>&lt;unknown&gt;</publisher>
829892      <part name="flop1" interface="floppy_5_25">
830         <dataarea name="flop" size="162814">
831            <rom name="chip_78.ccvf" size="162814" crc="018497ed" sha1="0520a271cd8cd7e45ccc2a29bc9c88c7c02e0fa6" offset="0"/>
893         <dataarea name="flop" size="162838">
894            <rom name="chip_110.ccvf" size="162838" crc="51a48a24" sha1="326731da5a016fafbf1898f115520d06c16df6e7" offset="0"/>
832895         </dataarea>
833896      </part>
834897   </software>
835898
836   <software name="chip79">
837      <description>chip_79</description>
899   <software name="chip114">
900      <description>Chip #114</description>
838901      <year>19??</year>
839902      <publisher>&lt;unknown&gt;</publisher>
840903      <part name="flop1" interface="floppy_5_25">
841         <dataarea name="flop" size="162827">
842            <rom name="chip_79.ccvf" size="162827" crc="2bcdcfa7" sha1="af24a0c365994d37d27d40e5c9ba2852afe0550a" offset="0"/>
904         <dataarea name="flop" size="162846">
905            <rom name="chip_114.ccvf" size="162846" crc="b3ec2517" sha1="2fa2fe1a4d30abf4eae4801e10d2ca66c8ae3cd9" offset="0"/>
843906         </dataarea>
844907      </part>
845908   </software>
846909
847   <software name="chip8">
848      <description>chip_8</description>
910   <software name="chip117">
911      <description>Chip #117</description>
849912      <year>19??</year>
850913      <publisher>&lt;unknown&gt;</publisher>
851914      <part name="flop1" interface="floppy_5_25">
852         <dataarea name="flop" size="162826">
853            <rom name="chip_8.ccvf" size="162826" crc="182eaf6a" sha1="7a477a1a75775b7c08e732585e0f26ad50953104" offset="0"/>
915         <dataarea name="flop" size="162832">
916            <rom name="chip_117.ccvf" size="162832" crc="edbcfb6c" sha1="7ad9829384e9133282ff97c7a3a9f2d50b2e7acd" offset="0"/>
854917         </dataarea>
855918      </part>
856919   </software>
857920
858   <software name="chip81">
859      <description>chip_81</description>
921   <software name="chip119">
922      <description>Chip #119</description>
860923      <year>19??</year>
861924      <publisher>&lt;unknown&gt;</publisher>
862925      <part name="flop1" interface="floppy_5_25">
863         <dataarea name="flop" size="162814">
864            <rom name="chip_81.ccvf" size="162814" crc="a84a5f02" sha1="f8a3641d19c622a29dbda95a847374e428932e0d" offset="0"/>
926         <dataarea name="flop" size="162828">
927            <rom name="chip_119.ccvf" size="162828" crc="7f34ee3f" sha1="edb68f3462bfe18603034fefa3ed6a0df2ea9d66" offset="0"/>
865928         </dataarea>
866929      </part>
867930   </software>
868931
869   <software name="chip83">
870      <description>chip_83</description>
932   <software name="chip120">
933      <description>Chip #120</description>
871934      <year>19??</year>
872935      <publisher>&lt;unknown&gt;</publisher>
873936      <part name="flop1" interface="floppy_5_25">
874         <dataarea name="flop" size="162983">
875            <rom name="chip_83.ccvf" size="162983" crc="0c70bf13" sha1="53cd2ea25866d2445ed011a844bee85f97d0b525" offset="0"/>
937         <dataarea name="flop" size="162843">
938            <rom name="chip_120.ccvf" size="162843" crc="413d68d1" sha1="5be07bd4ea2aee0a38e22bb38fd77cd101881710" offset="0"/>
876939         </dataarea>
877940      </part>
878941   </software>
879942
880   <software name="chip84">
881      <description>chip_84</description>
943   <software name="chip121">
944      <description>Chip #121</description>
882945      <year>19??</year>
883946      <publisher>&lt;unknown&gt;</publisher>
884947      <part name="flop1" interface="floppy_5_25">
885         <dataarea name="flop" size="162913">
886            <rom name="chip_84.ccvf" size="162913" crc="20d865c4" sha1="77378e4cc39352d79de558b91b403bbbafc6201f" offset="0"/>
948         <dataarea name="flop" size="162851">
949            <rom name="chip_121.ccvf" size="162851" crc="8a7cb479" sha1="ab8ff9d4b07c016a3640c57660677ca461b62cc2" offset="0"/>
887950         </dataarea>
888951      </part>
889952   </software>
890953
891   <software name="chip85">
892      <description>chip_85</description>
954   <software name="chip125">
955      <description>Chip #125</description>
893956      <year>19??</year>
894957      <publisher>&lt;unknown&gt;</publisher>
895958      <part name="flop1" interface="floppy_5_25">
896         <dataarea name="flop" size="162814">
897            <rom name="chip_85.ccvf" size="162814" crc="23550551" sha1="ff6d9738e142da6ac22cbbce90151f80de029663" offset="0"/>
959         <dataarea name="flop" size="162815">
960            <rom name="chip_125.ccvf" size="162815" crc="ef47c0c6" sha1="1c8557bb4d5e825ea85949b7b51316df475b4976" offset="0"/>
898961         </dataarea>
899962      </part>
900   </software>
901963
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"/>
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"/>
909967         </dataarea>
910968      </part>
911969   </software>
912970
913   <software name="chip90">
914      <description>chip_90</description>
971   <software name="chip128">
972      <description>Chip #128</description>
915973      <year>19??</year>
916974      <publisher>&lt;unknown&gt;</publisher>
917975      <part name="flop1" interface="floppy_5_25">
918         <dataarea name="flop" size="162827">
919            <rom name="chip_90.ccvf" size="162827" crc="17311e29" sha1="845bb65a460d9a47f03d576f313505e2efc51739" offset="0"/>
976         <dataarea name="flop" size="162815">
977            <rom name="chip_128.ccvf" size="162815" crc="5bc2cf15" sha1="3e82aef8a638d822724021cb582d08513969cd77" offset="0"/>
920978         </dataarea>
921979      </part>
922980   </software>
923981
924   <software name="chip91">
925      <description>chip_91</description>
982   <software name="chip129">
983      <description>Chip #129</description>
926984      <year>19??</year>
927985      <publisher>&lt;unknown&gt;</publisher>
928986      <part name="flop1" interface="floppy_5_25">
929         <dataarea name="flop" size="162853">
930            <rom name="chip_91.ccvf" size="162853" crc="d24c530d" sha1="fb2c0ae5c9c50c20ab639397fb1a9fabae0db47c" offset="0"/>
987         <dataarea name="flop" size="162815">
988            <rom name="chip_129.ccvf" size="162815" crc="f7f8c8dd" sha1="f1bed1ce4413223450192cf62ef471e8bcbb1a60" offset="0"/>
931989         </dataarea>
932990      </part>
933991   </software>
934992
935   <software name="chip92">
936      <description>chip_92</description>
993   <software name="chip138">
994      <description>Chip #138</description>
937995      <year>19??</year>
938996      <publisher>&lt;unknown&gt;</publisher>
939997      <part name="flop1" interface="floppy_5_25">
940         <dataarea name="flop" size="162814">
941            <rom name="chip_92.ccvf" size="162814" crc="013e8402" sha1="824cf53bc646762f723468fa45a0a4e6d0d7f119" offset="0"/>
998         <dataarea name="flop" size="162815">
999            <rom name="chip_138.ccvf" size="162815" crc="1f0bd8ae" sha1="8e31d8312d4eb65efbb9733cd65c84a981a8f6ae" offset="0"/>
9421000         </dataarea>
9431001      </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>
9441008   </software>
9451009
9461010   <software name="chomp">
947      <description>chomp</description>
1011      <description>Chomp</description>
9481012      <year>19??</year>
9491013      <publisher>&lt;unknown&gt;</publisher>
9501014      <part name="flop1" interface="floppy_5_25">
r241781r241782
9551019   </software>
9561020
9571021   <software name="paddle">
958      <description>cm_0-4_paddle_softwares-original</description>
1022      <description>Paddle Games (Original)</description>
9591023      <year>19??</year>
9601024      <publisher>&lt;unknown&gt;</publisher>
9611025      <part name="flop1" interface="floppy_5_25">
r241781r241782
9661030   </software>
9671031
9681032   <software name="paddlea" cloneof="paddle">
969      <description>cm_0-4_paddle_softwares</description>
1033      <description>Paddle Games</description>
9701034      <year>19??</year>
9711035      <publisher>&lt;unknown&gt;</publisher>
9721036      <part name="flop1" interface="floppy_5_25">
r241781r241782
9761040      </part>
9771041   </software>
9781042
979   <software name="clrgfx">
980      <description>color_graphics_1_suits</description>
1043   <software name="colorgfx">
1044      <description>Color Graphics</description>
9811045      <year>19??</year>
9821046      <publisher>&lt;unknown&gt;</publisher>
9831047      <part name="flop1" interface="floppy_5_25">
r241781r241782
9941058   </software>
9951059
9961060   <software name="colorcue">
997      <description>colorcue</description>
1061      <description>ColorCue Demos</description>
9981062      <year>19??</year>
9991063      <publisher>&lt;unknown&gt;</publisher>
10001064      <part name="flop1" interface="floppy_5_25">
r241781r241782
10051069   </software>
10061070
10071071   <software name="clrgraph">
1008      <description>colorgraph</description>
1072      <description>ColorGraph v1.01</description>
10091073      <year>19??</year>
10101074      <publisher>&lt;unknown&gt;</publisher>
10111075      <part name="flop1" interface="floppy_5_25">
r241781r241782
10161080   </software>
10171081
10181082   <software name="colossal">
1019      <description>colossal_adventure</description>
1083      <description>Colossal Adventure</description>
10201084      <year>19??</year>
10211085      <publisher>&lt;unknown&gt;</publisher>
10221086      <part name="flop1" interface="floppy_5_25">
r241781r241782
10261090      </part>
10271091   </software>
10281092
1029   <software name="commpgms">
1030      <description>comm_pgms-sidea</description>
1093   <software name="colcave">
1094      <description>Colossal Cave</description>
10311095      <year>19??</year>
10321096      <publisher>&lt;unknown&gt;</publisher>
10331097      <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">
10341109         <dataarea name="flop" size="162815">
10351110            <rom name="comm_pgms-sidea.ccvf" size="162815" crc="eb0c77d1" sha1="92b5ad6e6ecf6a53d2f96b0567a47e4416a0325b" offset="0"/>
10361111         </dataarea>
r241781r241782
10501125   </software>
10511126
10521127   <software name="compwrit">
1053      <description>compuwriter_1</description>
1128      <description>Comp-U-Writer (v3.51)</description>
10541129      <year>19??</year>
10551130      <publisher>&lt;unknown&gt;</publisher>
10561131      <part name="flop1" interface="floppy_5_25">
1057         <dataarea name="flop" size="162892">
1058            <rom name="compuwriter_1.ccvf" size="162892" crc="a030f3ea" sha1="5e9c7ab51a334b0effa1f4ccf18520aac2d29957" offset="0"/>
1132         <dataarea name="flop" size="162904">
1133            <rom name="compuwriter_2.ccvf" size="162904" crc="8948da3c" sha1="a7b2516c3d1df81a75844570f13078c8a705ebe9" offset="0"/>
10591134         </dataarea>
10601135      </part>
10611136   </software>
10621137
10631138   <software name="compwrita" cloneof="compwrit">
1064      <description>compuwriter_2</description>
1139      <description>Comp-U-Writer (v3.4 &amp; v3.5)</description>
10651140      <year>19??</year>
10661141      <publisher>&lt;unknown&gt;</publisher>
10671142      <part name="flop1" interface="floppy_5_25">
1068         <dataarea name="flop" size="162904">
1069            <rom name="compuwriter_2.ccvf" size="162904" crc="8948da3c" sha1="a7b2516c3d1df81a75844570f13078c8a705ebe9" offset="0"/>
1143         <dataarea name="flop" size="162892">
1144            <rom name="compuwriter_1.ccvf" size="162892" crc="a030f3ea" sha1="5e9c7ab51a334b0effa1f4ccf18520aac2d29957" offset="0"/>
10701145         </dataarea>
10711146      </part>
10721147   </software>
10731148
10741149   <software name="comtron">
1075      <description>comtronics</description>
1150      <description>Comtronics</description>
10761151      <year>19??</year>
10771152      <publisher>&lt;unknown&gt;</publisher>
10781153      <part name="flop1" interface="floppy_5_25">
r241781r241782
10831158   </software>
10841159
10851160   <software name="comtron2">
1086      <description>comtronics_sw</description>
1161      <description>Comtronics Software</description>
10871162      <year>19??</year>
10881163      <publisher>&lt;unknown&gt;</publisher>
10891164      <part name="flop1" interface="floppy_5_25">
r241781r241782
10931168      </part>
10941169   </software>
10951170
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
10961182   <software name="demo">
1097      <description>demonstration</description>
1183      <description>Demonstration</description>
10981184      <year>19??</year>
10991185      <publisher>&lt;unknown&gt;</publisher>
11001186      <part name="flop1" interface="floppy_5_25">
r241781r241782
11051191   </software>
11061192
11071193   <software name="demos">
1108      <description>demos</description>
1194      <description>Demos</description>
11091195      <year>19??</year>
11101196      <publisher>&lt;unknown&gt;</publisher>
11111197      <part name="flop1" interface="floppy_5_25">
r241781r241782
11151201      </part>
11161202   </software>
11171203
1118   <software name="disasmlp">
1119      <description>disasm+mldp+sidea</description>
1204   <software name="dasmmlpd">
1205      <description>DISASM + MLPD</description>
11201206      <year>19??</year>
11211207      <publisher>&lt;unknown&gt;</publisher>
11221208      <part name="flop1" interface="floppy_5_25">
1209         <info name="part_id" value="DISASM"/>
11231210         <dataarea name="flop" size="162853">
11241211            <rom name="disasm+mldp+sidea.ccvf" size="162853" crc="37e8ba02" sha1="de79e786fd29633a471de44aa700cf256cd6434b" offset="0"/>
11251212         </dataarea>
11261213      </part>
11271214
11281215      <part name="flop2" interface="floppy_5_25">
1216         <info name="part_id" value="MLPD"/>
11291217         <dataarea name="flop" size="162853">
11301218            <rom name="disasm+mldp-sideb.ccvf" size="162853" crc="17628a85" sha1="90fdc00b6939cc54fc5095c6ee0e621a9767a539" offset="0"/>
11311219         </dataarea>
11321220      </part>
11331221   </software>
11341222
1135   <software name="disasm">
1136      <description>disasm-sidea</description>
1223   <software name="dasmsrc">
1224      <description>DISASM Source</description>
11371225      <year>19??</year>
11381226      <publisher>&lt;unknown&gt;</publisher>
11391227      <part name="flop1" interface="floppy_5_25">
r241781r241782
11431231      </part>
11441232   </software>
11451233
1146   <software name="disasmlr">
1147      <description>disassembler</description>
1234   <software name="mldpfix">
1235      <description>MLPD (Autorepeat Key Fixed)</description>
11481236      <year>19??</year>
11491237      <publisher>&lt;unknown&gt;</publisher>
11501238      <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">
11511250         <dataarea name="flop" size="162831">
11521251            <rom name="disassembler.ccvf" size="162831" crc="f018390c" sha1="53209bcdc8bcf17291066a036e36b1bbe1fc8ecc" offset="0"/>
11531252         </dataarea>
r241781r241782
11551254   </software>
11561255
11571256   <software name="dogfight">
1158      <description>dogfight</description>
1257      <description>Dogfight</description>
11591258      <year>19??</year>
11601259      <publisher>&lt;unknown&gt;</publisher>
11611260      <part name="flop1" interface="floppy_5_25">
r241781r241782
11661265   </software>
11671266
11681267   <software name="draw2">
1169      <description>draw2</description>
1268      <description>Draw 2</description>
11701269      <year>19??</year>
11711270      <publisher>&lt;unknown&gt;</publisher>
11721271      <part name="flop1" interface="floppy_5_25">
r241781r241782
11761275      </part>
11771276   </software>
11781277
1179   <software name="drivlist">
1180      <description>driver_lister</description>
1278   <software name="draw2a" cloneof="draw2">
1279      <description>Draw 2 (Alt)</description>
11811280      <year>19??</year>
11821281      <publisher>&lt;unknown&gt;</publisher>
11831282      <part name="flop1" interface="floppy_5_25">
1184         <dataarea name="flop" size="162925">
1185            <rom name="driver_lister.ccvf" size="162925" crc="504740f6" sha1="f38611fb908e9986407309d7fb5eec769169c9cd" offset="0"/>
1283         <dataarea name="flop" size="162909">
1284            <rom name="draw2 (alt).ccvf" size="162909" crc="ccd58029" sha1="7480bfb7fd0ed5991738cdca81a8450f40f88167" offset="0" />
11861285         </dataarea>
11871286      </part>
11881287   </software>
11891288
11901289   <software name="dukedom">
1191      <description>dukedom</description>
1290      <description>Dukedom</description>
11921291      <year>19??</year>
11931292      <publisher>&lt;unknown&gt;</publisher>
11941293      <part name="flop1" interface="floppy_5_25">
r241781r241782
11981297      </part>
11991298   </software>
12001299
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
12121300   <software name="eprom">
1213      <description>eprom_programmer</description>
1301      <description>EPROM Programmer</description>
12141302      <year>19??</year>
12151303      <publisher>&lt;unknown&gt;</publisher>
12161304      <part name="flop1" interface="floppy_5_25">
r241781r241782
12211309   </software>
12221310
12231311   <software name="equity">
1224      <description>equity</description>
1312      <description>Equity</description>
12251313      <year>19??</year>
12261314      <publisher>&lt;unknown&gt;</publisher>
12271315      <part name="flop1" interface="floppy_5_25">
r241781r241782
12321320   </software>
12331321
12341322   <software name="execgrap">
1235      <description>execugraph</description>
1323      <description>Execugraph Trend-Spotter</description>
12361324      <year>19??</year>
12371325      <publisher>&lt;unknown&gt;</publisher>
12381326      <part name="flop1" interface="floppy_5_25">
r241781r241782
12421330      </part>
12431331
12441332      <part name="flop2" interface="floppy_5_25">
1333         <info name="part_id" value="Instructions"/>
12451334         <dataarea name="flop" size="162874">
12461335            <rom name="execugraph_instructions.ccvf" size="162874" crc="0716e534" sha1="1ae67e4acec0175880698df9c792ea97eb6f7158" offset="0"/>
12471336         </dataarea>
r241781r241782
12491338   </software>
12501339
12511340   <software name="fcsmods">
1252      <description>fcs_mods</description>
1341      <description>FCS MOD</description>
12531342      <year>19??</year>
12541343      <publisher>&lt;unknown&gt;</publisher>
12551344      <part name="flop1" interface="floppy_5_25">
r241781r241782
12591348      </part>
12601349   </software>
12611350
1262   <software name="fms">
1263      <description>file_maintenance_system-sidea</description>
1351   <software name="fms3650">
1352      <description>File Maintenance System 3650 (v11.82)</description>
12641353      <year>19??</year>
12651354      <publisher>&lt;unknown&gt;</publisher>
12661355      <part name="flop1" interface="floppy_5_25">
r241781r241782
12771366   </software>
12781367
12791368   <software name="fftrek">
1280      <description>final_frontier_startrek</description>
1369      <description>The Final Frontier - Star Trek</description>
12811370      <year>19??</year>
12821371      <publisher>&lt;unknown&gt;</publisher>
12831372      <part name="flop1" interface="floppy_5_25">
r241781r241782
12881377   </software>
12891378
12901379   <software name="format">
1291      <description>formatter</description>
1380      <description>Formatter</description>
12921381      <year>19??</year>
12931382      <publisher>&lt;unknown&gt;</publisher>
12941383      <part name="flop1" interface="floppy_5_25">
r241781r241782
12981387      </part>
12991388   </software>
13001389
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
13121390   <software name="fortran">
1313      <description>fortran</description>
1391      <description>FORTRAN</description>
13141392      <year>19??</year>
13151393      <publisher>&lt;unknown&gt;</publisher>
13161394      <part name="flop1" interface="floppy_5_25">
r241781r241782
13211399   </software>
13221400
13231401   <software name="fortran2">
1324      <description>fortran2</description>
1402      <description>FORTRAN 2</description>
13251403      <year>19??</year>
13261404      <publisher>&lt;unknown&gt;</publisher>
13271405      <part name="flop1" interface="floppy_5_25">
r241781r241782
13321410   </software>
13331411
13341412   <software name="fortrek">
1335      <description>fortrek</description>
1413      <description>FORTRAN Star Trek Source</description>
13361414      <year>19??</year>
13371415      <publisher>&lt;unknown&gt;</publisher>
13381416      <part name="flop1" interface="floppy_5_25">
r241781r241782
13421420      </part>
13431421   </software>
13441422
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
13451446   <software name="forutil">
1346      <description>forutil_1</description>
1447      <description>FORTRAN Utilities Source</description>
13471448      <year>19??</year>
13481449      <publisher>&lt;unknown&gt;</publisher>
13491450      <part name="flop1" interface="floppy_5_25">
r241781r241782
13541455   </software>
13551456
13561457   <software name="galaxian">
1357      <description>galaxian</description>
1458      <description>Galaxian</description>
13581459      <year>19??</year>
13591460      <publisher>&lt;unknown&gt;</publisher>
13601461      <part name="flop1" interface="floppy_5_25">
r241781r241782
13641465      </part>
13651466   </software>
13661467
1367   <software name="softwre">
1368      <description>softwares</description>
1468   <software name="galaxiana" cloneof="galaxian">
1469      <description>Galaxian (Alt)</description>
13691470      <year>19??</year>
13701471      <publisher>&lt;unknown&gt;</publisher>
13711472      <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">
13721495         <dataarea name="flop" size="162811">
13731496            <rom name="softwares.ccvf" size="162811" crc="f9d7447f" sha1="52e79d5a30e9666b8ea790270da1b125eb810413" offset="0"/>
13741497         </dataarea>
13751498      </part>
13761499   </software>
13771500
1378   <software name="softwre2">
1379      <description>softwares2</description>
1501   <software name="basicgm2">
1502      <description>BASIC Games #2</description>
13801503      <year>19??</year>
13811504      <publisher>&lt;unknown&gt;</publisher>
13821505      <part name="flop1" interface="floppy_5_25">
r241781r241782
13861509      </part>
13871510   </software>
13881511
1389   <software name="softwre3">
1390      <description>softwares3</description>
1512   <software name="basicgm3">
1513      <description>BASIC Games #3</description>
13911514      <year>19??</year>
13921515      <publisher>&lt;unknown&gt;</publisher>
13931516      <part name="flop1" interface="floppy_5_25">
r241781r241782
13971520      </part>
13981521   </software>
13991522
1400   <software name="softwre4">
1401      <description>softwares4</description>
1523   <software name="basicgm4">
1524      <description>BASIC Games #4</description>
14021525      <year>19??</year>
14031526      <publisher>&lt;unknown&gt;</publisher>
14041527      <part name="flop1" interface="floppy_5_25">
r241781r241782
14091532   </software>
14101533
14111534   <software name="hangman">
1412      <description>hangman</description>
1535      <description>Hangman</description>
14131536      <year>19??</year>
14141537      <publisher>&lt;unknown&gt;</publisher>
14151538      <part name="flop1" interface="floppy_5_25">
r241781r241782
14201543   </software>
14211544
14221545   <software name="hwutil">
1423      <description>hardware_utilities</description>
1546      <description>Hardware Utilities</description>
14241547      <year>19??</year>
14251548      <publisher>&lt;unknown&gt;</publisher>
14261549      <part name="flop1" interface="floppy_5_25">
r241781r241782
14311554   </software>
14321555
14331556   <software name="homebdgt">
1434      <description>home_budget_1</description>
1557      <description>Home Budget</description>
14351558      <year>19??</year>
14361559      <publisher>&lt;unknown&gt;</publisher>
14371560      <part name="flop1" interface="floppy_5_25">
r241781r241782
14541577   </software>
14551578
14561579   <software name="homevid">
1457      <description>home_video_library</description>
1580      <description>Home Video Library</description>
14581581      <year>19??</year>
14591582      <publisher>&lt;unknown&gt;</publisher>
14601583      <part name="flop1" interface="floppy_5_25">
r241781r241782
14651588   </software>
14661589
14671590   <software name="ida">
1468      <description>ida_v2.6-sideb</description>
1591      <description>IDA (v2.6)</description>
14691592      <year>19??</year>
14701593      <publisher>&lt;unknown&gt;</publisher>
14711594      <part name="flop1" interface="floppy_5_25">
r241781r241782
14821605   </software>
14831606
14841607   <software name="ifsoft">
1485      <description>interface_software</description>
1608      <description>Interface Software / Joystick Games</description>
14861609      <year>19??</year>
14871610      <publisher>&lt;unknown&gt;</publisher>
14881611      <part name="flop1" interface="floppy_5_25">
r241781r241782
14921615      </part>
14931616   </software>
14941617
1495   <software name="intrsndw">
1496      <description>intro_to_soundware</description>
1618   <software name="intro2sw">
1619      <description>Intro to Soundware</description>
14971620      <year>19??</year>
14981621      <publisher>&lt;unknown&gt;</publisher>
14991622      <part name="flop1" interface="floppy_5_25">
r241781r241782
15041627   </software>
15051628
15061629   <software name="invaders">
1507      <description>invaders_epps</description>
1630      <description>Invaders</description>
15081631      <year>19??</year>
15091632      <publisher>&lt;unknown&gt;</publisher>
15101633      <part name="flop1" interface="floppy_5_25">
r241781r241782
15141637      </part>
15151638   </software>
15161639
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
15171651   <software name="inventry">
1518      <description>inventory</description>
1652      <description>Inventory</description>
15191653      <year>19??</year>
15201654      <publisher>&lt;unknown&gt;</publisher>
15211655      <part name="flop1" interface="floppy_5_25">
r241781r241782
15261660   </software>
15271661
15281662   <software name="invoice">
1529      <description>invoice_order</description>
1663      <description>Invoice Order</description>
15301664      <year>19??</year>
15311665      <publisher>&lt;unknown&gt;</publisher>
15321666      <part name="flop1" interface="floppy_5_25">
r241781r241782
15371671   </software>
15381672
15391673   <software name="iscdemos">
1540      <description>isc_demos</description>
1674      <description>ISC Demos</description>
15411675      <year>19??</year>
15421676      <publisher>&lt;unknown&gt;</publisher>
15431677      <part name="flop1" interface="floppy_5_25">
r241781r241782
15481682   </software>
15491683
15501684   <software name="joystick">
1551      <description>joystick-sidea</description>
1685      <description>Joystick Games</description>
15521686      <year>19??</year>
15531687      <publisher>&lt;unknown&gt;</publisher>
15541688      <part name="flop1" interface="floppy_5_25">
r241781r241782
15651699   </software>
15661700
15671701   <software name="joysound">
1568      <description>joystick_sound</description>
1702      <description>Joystick Games with Sound</description>
15691703      <year>19??</year>
15701704      <publisher>&lt;unknown&gt;</publisher>
15711705      <part name="flop1" interface="floppy_5_25">
r241781r241782
15761710   </software>
15771711
15781712   <software name="lasergun">
1579      <description>laser_gun_joystick</description>
1713      <description>Laser Gun (Joystick)</description>
15801714      <year>19??</year>
15811715      <publisher>&lt;unknown&gt;</publisher>
15821716      <part name="flop1" interface="floppy_5_25">
r241781r241782
15871721   </software>
15881722
15891723   <software name="lasergunk" cloneof="lasergun">
1590      <description>laser_gun_keyboard</description>
1724      <description>Laser Gun (Keyboard)</description>
15911725      <year>19??</year>
15921726      <publisher>&lt;unknown&gt;</publisher>
15931727      <part name="flop1" interface="floppy_5_25">
r241781r241782
15981732   </software>
15991733
16001734   <software name="life">
1601      <description>life</description>
1735      <description>Life</description>
16021736      <year>19??</year>
16031737      <publisher>&lt;unknown&gt;</publisher>
16041738      <part name="flop1" interface="floppy_5_25">
r241781r241782
16081742      </part>
16091743   </software>
16101744
1611   <software name="life2">
1612      <description>life2</description>
1745   <software name="lifea" cloneof="life">
1746      <description>Life (Alt)</description>
16131747      <year>19??</year>
16141748      <publisher>&lt;unknown&gt;</publisher>
16151749      <part name="flop1" interface="floppy_5_25">
r241781r241782
16201754   </software>
16211755
16221756   <software name="llander">
1623      <description>lunar_lander</description>
1757      <description>Lunar Lander</description>
16241758      <year>19??</year>
16251759      <publisher>&lt;unknown&gt;</publisher>
16261760      <part name="flop1" interface="floppy_5_25">
r241781r241782
16311765   </software>
16321766
16331767   <software name="maillist">
1634      <description>mailing_list</description>
1768      <description>Mailing List</description>
16351769      <year>19??</year>
16361770      <publisher>&lt;unknown&gt;</publisher>
16371771      <part name="flop1" interface="floppy_5_25">
r241781r241782
16421776   </software>
16431777
16441778   <software name="mazes1">
1645      <description>mazes_1</description>
1779      <description>Mazes #1</description>
16461780      <year>19??</year>
16471781      <publisher>&lt;unknown&gt;</publisher>
16481782      <part name="flop1" interface="floppy_5_25">
r241781r241782
16531787   </software>
16541788
16551789   <software name="mazes2">
1656      <description>mazes_2</description>
1790      <description>Mazes #2</description>
16571791      <year>19??</year>
16581792      <publisher>&lt;unknown&gt;</publisher>
16591793      <part name="flop1" interface="floppy_5_25">
r241781r241782
16641798   </software>
16651799
16661800   <software name="mixed">
1667      <description>mixed</description>
1801      <description>Mixed Programs</description>
16681802      <year>19??</year>
16691803      <publisher>&lt;unknown&gt;</publisher>
16701804      <part name="flop1" interface="floppy_5_25">
r241781r241782
16741808      </part>
16751809   </software>
16761810
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
16881811   <software name="modutils">
1689      <description>modified_utilities</description>
1812      <description>Modified Utilities</description>
16901813      <year>19??</year>
16911814      <publisher>&lt;unknown&gt;</publisher>
16921815      <part name="flop1" interface="floppy_5_25">
r241781r241782
16971820   </software>
16981821
16991822   <software name="mpidemo">
1700      <description>multi_peripheral_interface_demo</description>
1823      <description>Multi Peripheral Interface Hardware Demo</description>
17011824      <year>19??</year>
17021825      <publisher>&lt;unknown&gt;</publisher>
17031826      <part name="flop1" interface="floppy_5_25">
r241781r241782
17071830      </part>
17081831   </software>
17091832
1710   <software name="ncc10">
1711      <description>ncc_10</description>
1833   <software name="ncc0105">
1834      <description>NCC #1 &amp; #5</description>
17121835      <year>19??</year>
17131836      <publisher>&lt;unknown&gt;</publisher>
17141837      <part name="flop1" interface="floppy_5_25">
1715         <dataarea name="flop" size="162813">
1716            <rom name="ncc_10.ccvf" size="162813" crc="06feff21" sha1="d21e781b4fa8388410543db18780a13918723d56" offset="0"/>
1838         <dataarea name="flop" size="162828">
1839            <rom name="ncc_1_5.ccvf" size="162828" crc="8a4bf1e5" sha1="98df027ed8be3a6819819e3a58d9898d5e8dde65" offset="0"/>
17171840         </dataarea>
17181841      </part>
17191842   </software>
17201843
1721   <software name="ncc12">
1722      <description>ncc_12</description>
1844   <software name="ncc02">
1845      <description>NCC #2</description>
17231846      <year>19??</year>
17241847      <publisher>&lt;unknown&gt;</publisher>
17251848      <part name="flop1" interface="floppy_5_25">
1726         <dataarea name="flop" size="162813">
1727            <rom name="ncc_12.ccvf" size="162813" crc="e81b653d" sha1="1c7091177f66a4f486afdd7a9bbbc9e5b7950bf4" offset="0"/>
1849         <dataarea name="flop" size="162814">
1850            <rom name="ncc_2.ccvf" size="162814" crc="2c27c8da" sha1="9096fcf57bd867662ebfd4b1f26e8bc4746a4c9d" offset="0"/>
17281851         </dataarea>
17291852      </part>
17301853   </software>
17311854
1732   <software name="ncc13">
1733      <description>ncc_13</description>
1855   <software name="ncc03">
1856      <description>NCC #3</description>
17341857      <year>19??</year>
17351858      <publisher>&lt;unknown&gt;</publisher>
17361859      <part name="flop1" interface="floppy_5_25">
1737         <dataarea name="flop" size="162833">
1738            <rom name="ncc_13.ccvf" size="162833" crc="e6e4969a" sha1="c3a86005b0545404c1f88e1a7eb6e6dc9baa1a83" offset="0"/>
1860         <dataarea name="flop" size="162812">
1861            <rom name="ncc_3.ccvf" size="162812" crc="ac44b202" sha1="e28d41b478c43a762476c27f2a33fbaeace7e738" offset="0"/>
17391862         </dataarea>
17401863      </part>
17411864   </software>
17421865
1743   <software name="ncc14">
1744      <description>ncc_14</description>
1866   <software name="ncc04">
1867      <description>NCC #4</description>
17451868      <year>19??</year>
17461869      <publisher>&lt;unknown&gt;</publisher>
17471870      <part name="flop1" interface="floppy_5_25">
1748         <dataarea name="flop" size="162844">
1749            <rom name="ncc_14.ccvf" size="162844" crc="76bdcb4f" sha1="16bf8550d202b8c431301b79dd7c49b3c635b11c" offset="0"/>
1871         <dataarea name="flop" size="162814">
1872            <rom name="ncc_4.ccvf" size="162814" crc="91eaf631" sha1="b1e1c5745ab7e93b5e7c0710bd4af293fc4e1a7d" offset="0"/>
17501873         </dataarea>
17511874      </part>
17521875   </software>
17531876
1754   <software name="ncc15">
1755      <description>ncc_15</description>
1877   <software name="ncc0411">
1878      <description>NCC #4 &amp; #11</description>
17561879      <year>19??</year>
17571880      <publisher>&lt;unknown&gt;</publisher>
17581881      <part name="flop1" interface="floppy_5_25">
1759         <dataarea name="flop" size="162813">
1760            <rom name="ncc_15.ccvf" size="162813" crc="d2f692fb" sha1="5d84fed5d485216aa557fdefb7cc8a1f4f9d64f0" offset="0"/>
1882         <dataarea name="flop" size="162816">
1883            <rom name="ncc_4_11.ccvf" size="162816" crc="929d57ad" sha1="f5297ec772dc79b4c30889f4ceef908f327bb410" offset="0"/>
17611884         </dataarea>
17621885      </part>
17631886   </software>
17641887
1765   <software name="ncc16">
1766      <description>ncc_16</description>
1888   <software name="ncc05">
1889      <description>NCC #5</description>
17671890      <year>19??</year>
17681891      <publisher>&lt;unknown&gt;</publisher>
17691892      <part name="flop1" interface="floppy_5_25">
1770         <dataarea name="flop" size="162845">
1771            <rom name="ncc_16.ccvf" size="162845" crc="302adb3a" sha1="a47a710898c46522d55d457aa051de8b57140c80" offset="0"/>
1893         <dataarea name="flop" size="162854">
1894            <rom name="ncc_5.ccvf" size="162854" crc="e2161570" sha1="705bc3ff4440584a2156ffba14830e57a6fb593f" offset="0"/>
17721895         </dataarea>
17731896      </part>
17741897   </software>
17751898
1776   <software name="ncc17">
1777      <description>ncc_17</description>
1899   <software name="ncc06">
1900      <description>NCC #6 (Original)</description>
17781901      <year>19??</year>
17791902      <publisher>&lt;unknown&gt;</publisher>
17801903      <part name="flop1" interface="floppy_5_25">
1781         <dataarea name="flop" size="162829">
1782            <rom name="ncc_17.ccvf" size="162829" crc="4b8b53e5" sha1="b78386b25568d3a04642ffa8c43a9603510187fe" offset="0"/>
1904         <dataarea name="flop" size="162814">
1905            <rom name="ncc_6_real.ccvf" size="162814" crc="0ca51665" sha1="1eb0feb76f0f1eddef2c7b5c7c4d1dc666b1c0c8" offset="0"/>
17831906         </dataarea>
17841907      </part>
17851908   </software>
17861909
1787   <software name="ncc18">
1788      <description>ncc_18</description>
1910   <software name="ncc06a" cloneof="ncc06">
1911      <description>NCC #6</description>
17891912      <year>19??</year>
17901913      <publisher>&lt;unknown&gt;</publisher>
17911914      <part name="flop1" interface="floppy_5_25">
1792         <dataarea name="flop" size="162813">
1793            <rom name="ncc_18.ccvf" size="162813" crc="5ef86e49" sha1="b57de71dda895cd79407265d7b06c17083b6c2ac" offset="0"/>
1915         <dataarea name="flop" size="162825">
1916            <rom name="ncc_6.ccvf" size="162825" crc="f92a4138" sha1="bab59538bdf06c707548ec766d5ed349a6e2a166" offset="0"/>
17941917         </dataarea>
17951918      </part>
17961919   </software>
17971920
1798   <software name="ncc1_5">
1799      <description>ncc_1_5</description>
1921   <software name="ncc07">
1922      <description>NCC #7</description>
18001923      <year>19??</year>
18011924      <publisher>&lt;unknown&gt;</publisher>
18021925      <part name="flop1" interface="floppy_5_25">
1803         <dataarea name="flop" size="162828">
1804            <rom name="ncc_1_5.ccvf" size="162828" crc="8a4bf1e5" sha1="98df027ed8be3a6819819e3a58d9898d5e8dde65" offset="0"/>
1926         <dataarea name="flop" size="162825">
1927            <rom name="ncc_7.ccvf" size="162825" crc="ef5f1eb0" sha1="643221839c6f0d7ba02555b3af5c79bcd328833a" offset="0"/>
18051928         </dataarea>
18061929      </part>
18071930   </software>
18081931
1809   <software name="ncc2">
1810      <description>ncc_2</description>
1932   <software name="ncc08">
1933      <description>NCC #8 (Original)</description>
18111934      <year>19??</year>
18121935      <publisher>&lt;unknown&gt;</publisher>
18131936      <part name="flop1" interface="floppy_5_25">
1814         <dataarea name="flop" size="162814">
1815            <rom name="ncc_2.ccvf" size="162814" crc="2c27c8da" sha1="9096fcf57bd867662ebfd4b1f26e8bc4746a4c9d" offset="0"/>
1937         <dataarea name="flop" size="162827">
1938            <rom name="ncc_8_real.ccvf" size="162827" crc="50f3440b" sha1="31a5be594999a4f64e5f6f98d906556459123b7e" offset="0"/>
18161939         </dataarea>
18171940      </part>
18181941   </software>
18191942
1820   <software name="ncc21">
1821      <description>ncc_21</description>
1943   <software name="ncc08a" cloneof="ncc08">
1944      <description>NCC #8</description>
18221945      <year>19??</year>
18231946      <publisher>&lt;unknown&gt;</publisher>
18241947      <part name="flop1" interface="floppy_5_25">
1825         <dataarea name="flop" size="162813">
1826            <rom name="ncc_21.ccvf" size="162813" crc="108f506d" sha1="d3b92a3a3d161248047edcddd75ea6a399235bd0" offset="0"/>
1948         <dataarea name="flop" size="162830">
1949            <rom name="ncc_8.ccvf" size="162830" crc="2c103b67" sha1="c15ca208f630abf4ee96df90f0dab28970f7d944" offset="0"/>
18271950         </dataarea>
18281951      </part>
18291952   </software>
18301953
1831   <software name="ncc22">
1832      <description>ncc_22</description>
1954   <software name="ncc09">
1955      <description>NCC #9</description>
18331956      <year>19??</year>
18341957      <publisher>&lt;unknown&gt;</publisher>
18351958      <part name="flop1" interface="floppy_5_25">
1836         <dataarea name="flop" size="162813">
1837            <rom name="ncc_22.ccvf" size="162813" crc="d46ed975" sha1="7ef3457ff8f9cf24865c662a09467a986580394e" offset="0"/>
1959         <dataarea name="flop" size="162814">
1960            <rom name="ncc_9.ccvf" size="162814" crc="4cdfb369" sha1="c5c05c4bd09b0c5d9338b6408a9c4693c3fbb228" offset="0"/>
18381961         </dataarea>
18391962      </part>
18401963   </software>
18411964
1842   <software name="ncc23">
1843      <description>ncc_23</description>
1965   <software name="ncc10">
1966      <description>NCC #10</description>
18441967      <year>19??</year>
18451968      <publisher>&lt;unknown&gt;</publisher>
18461969      <part name="flop1" interface="floppy_5_25">
1847         <dataarea name="flop" size="162826">
1848            <rom name="ncc_23.ccvf" size="162826" crc="4076f83a" sha1="8eba8856e9572343973c3dbc788945331d68976b" offset="0"/>
1970         <dataarea name="flop" size="162813">
1971            <rom name="ncc_10.ccvf" size="162813" crc="06feff21" sha1="d21e781b4fa8388410543db18780a13918723d56" offset="0"/>
18491972         </dataarea>
18501973      </part>
18511974   </software>
18521975
1853   <software name="ncc3">
1854      <description>ncc_3</description>
1976   <software name="ncc12">
1977      <description>NCC #12</description>
18551978      <year>19??</year>
18561979      <publisher>&lt;unknown&gt;</publisher>
18571980      <part name="flop1" interface="floppy_5_25">
1858         <dataarea name="flop" size="162812">
1859            <rom name="ncc_3.ccvf" size="162812" crc="ac44b202" sha1="e28d41b478c43a762476c27f2a33fbaeace7e738" offset="0"/>
1981         <dataarea name="flop" size="162813">
1982            <rom name="ncc_12.ccvf" size="162813" crc="e81b653d" sha1="1c7091177f66a4f486afdd7a9bbbc9e5b7950bf4" offset="0"/>
18601983         </dataarea>
18611984      </part>
18621985   </software>
18631986
1864   <software name="ncc_4">
1865      <description>ncc_4</description>
1987   <software name="ncc13">
1988      <description>NCC #13</description>
18661989      <year>19??</year>
18671990      <publisher>&lt;unknown&gt;</publisher>
18681991      <part name="flop1" interface="floppy_5_25">
1869         <dataarea name="flop" size="162814">
1870            <rom name="ncc_4.ccvf" size="162814" crc="91eaf631" sha1="b1e1c5745ab7e93b5e7c0710bd4af293fc4e1a7d" offset="0"/>
1992         <dataarea name="flop" size="162833">
1993            <rom name="ncc_13.ccvf" size="162833" crc="e6e4969a" sha1="c3a86005b0545404c1f88e1a7eb6e6dc9baa1a83" offset="0"/>
18711994         </dataarea>
18721995      </part>
18731996   </software>
18741997
1875   <software name="ncc4_11">
1876      <description>ncc_4_11</description>
1998   <software name="ncc14">
1999      <description>NCC #14</description>
18772000      <year>19??</year>
18782001      <publisher>&lt;unknown&gt;</publisher>
18792002      <part name="flop1" interface="floppy_5_25">
1880         <dataarea name="flop" size="162816">
1881            <rom name="ncc_4_11.ccvf" size="162816" crc="929d57ad" sha1="f5297ec772dc79b4c30889f4ceef908f327bb410" offset="0"/>
2003         <dataarea name="flop" size="162844">
2004            <rom name="ncc_14.ccvf" size="162844" crc="76bdcb4f" sha1="16bf8550d202b8c431301b79dd7c49b3c635b11c" offset="0"/>
18822005         </dataarea>
18832006      </part>
18842007   </software>
18852008
1886   <software name="ncc5">
1887      <description>ncc_5</description>
2009   <software name="ncc15">
2010      <description>NCC #15</description>
18882011      <year>19??</year>
18892012      <publisher>&lt;unknown&gt;</publisher>
18902013      <part name="flop1" interface="floppy_5_25">
1891         <dataarea name="flop" size="162854">
1892            <rom name="ncc_5.ccvf" size="162854" crc="e2161570" sha1="705bc3ff4440584a2156ffba14830e57a6fb593f" offset="0"/>
2014         <dataarea name="flop" size="162813">
2015            <rom name="ncc_15.ccvf" size="162813" crc="d2f692fb" sha1="5d84fed5d485216aa557fdefb7cc8a1f4f9d64f0" offset="0"/>
18932016         </dataarea>
18942017      </part>
18952018   </software>
18962019
1897   <software name="ncc6a" cloneof="ncc6">
1898      <description>ncc_6</description>
2020   <software name="ncc16">
2021      <description>NCC #16</description>
18992022      <year>19??</year>
19002023      <publisher>&lt;unknown&gt;</publisher>
19012024      <part name="flop1" interface="floppy_5_25">
1902         <dataarea name="flop" size="162825">
1903            <rom name="ncc_6.ccvf" size="162825" crc="f92a4138" sha1="bab59538bdf06c707548ec766d5ed349a6e2a166" offset="0"/>
2025         <dataarea name="flop" size="162845">
2026            <rom name="ncc_16.ccvf" size="162845" crc="302adb3a" sha1="a47a710898c46522d55d457aa051de8b57140c80" offset="0"/>
19042027         </dataarea>
19052028      </part>
19062029   </software>
19072030
1908   <software name="ncc6">
1909      <description>ncc_6_real</description>
2031   <software name="ncc17">
2032      <description>NCC #17</description>
19102033      <year>19??</year>
19112034      <publisher>&lt;unknown&gt;</publisher>
19122035      <part name="flop1" interface="floppy_5_25">
1913         <dataarea name="flop" size="162814">
1914            <rom name="ncc_6_real.ccvf" size="162814" crc="0ca51665" sha1="1eb0feb76f0f1eddef2c7b5c7c4d1dc666b1c0c8" offset="0"/>
2036         <dataarea name="flop" size="162829">
2037            <rom name="ncc_17.ccvf" size="162829" crc="4b8b53e5" sha1="b78386b25568d3a04642ffa8c43a9603510187fe" offset="0"/>
19152038         </dataarea>
19162039      </part>
19172040   </software>
19182041
1919   <software name="ncc7">
1920      <description>ncc_7</description>
2042   <software name="ncc18">
2043      <description>NCC #18</description>
19212044      <year>19??</year>
19222045      <publisher>&lt;unknown&gt;</publisher>
19232046      <part name="flop1" interface="floppy_5_25">
1924         <dataarea name="flop" size="162825">
1925            <rom name="ncc_7.ccvf" size="162825" crc="ef5f1eb0" sha1="643221839c6f0d7ba02555b3af5c79bcd328833a" offset="0"/>
2047         <dataarea name="flop" size="162813">
2048            <rom name="ncc_18.ccvf" size="162813" crc="5ef86e49" sha1="b57de71dda895cd79407265d7b06c17083b6c2ac" offset="0"/>
19262049         </dataarea>
19272050      </part>
19282051   </software>
19292052
1930   <software name="ncc8a" cloneof="ncc8">
1931      <description>ncc_8</description>
2053   <software name="ncc21">
2054      <description>NCC #21</description>
19322055      <year>19??</year>
19332056      <publisher>&lt;unknown&gt;</publisher>
19342057      <part name="flop1" interface="floppy_5_25">
1935         <dataarea name="flop" size="162830">
1936            <rom name="ncc_8.ccvf" size="162830" crc="2c103b67" sha1="c15ca208f630abf4ee96df90f0dab28970f7d944" offset="0"/>
2058         <dataarea name="flop" size="162813">
2059            <rom name="ncc_21.ccvf" size="162813" crc="108f506d" sha1="d3b92a3a3d161248047edcddd75ea6a399235bd0" offset="0"/>
19372060         </dataarea>
19382061      </part>
19392062   </software>
19402063
1941   <software name="ncc8">
1942      <description>ncc_8_real</description>
2064   <software name="ncc22">
2065      <description>NCC #22</description>
19432066      <year>19??</year>
19442067      <publisher>&lt;unknown&gt;</publisher>
19452068      <part name="flop1" interface="floppy_5_25">
1946         <dataarea name="flop" size="162827">
1947            <rom name="ncc_8_real.ccvf" size="162827" crc="50f3440b" sha1="31a5be594999a4f64e5f6f98d906556459123b7e" offset="0"/>
2069         <dataarea name="flop" size="162813">
2070            <rom name="ncc_22.ccvf" size="162813" crc="d46ed975" sha1="7ef3457ff8f9cf24865c662a09467a986580394e" offset="0"/>
19482071         </dataarea>
19492072      </part>
19502073   </software>
19512074
1952   <software name="ncc9">
1953      <description>ncc_9</description>
2075   <software name="ncc23">
2076      <description>NCC #23</description>
19542077      <year>19??</year>
19552078      <publisher>&lt;unknown&gt;</publisher>
19562079      <part name="flop1" interface="floppy_5_25">
1957         <dataarea name="flop" size="162814">
1958            <rom name="ncc_9.ccvf" size="162814" crc="4cdfb369" sha1="c5c05c4bd09b0c5d9338b6408a9c4693c3fbb228" offset="0"/>
2080         <dataarea name="flop" size="162826">
2081            <rom name="ncc_23.ccvf" size="162826" crc="4076f83a" sha1="8eba8856e9572343973c3dbc788945331d68976b" offset="0"/>
19592082         </dataarea>
19602083      </part>
19612084   </software>
19622085
19632086   <software name="ncccat1">
1964      <description>ncc_catalog_1</description>
2087      <description>NCC Catalog #1</description>
19652088      <year>19??</year>
19662089      <publisher>&lt;unknown&gt;</publisher>
19672090      <part name="flop1" interface="floppy_5_25">
r241781r241782
19722095   </software>
19732096
19742097   <software name="nswug1">
1975      <description>nsw_ug_1-sidea</description>
2098      <description>New South Wales CCII Users Group Disk #1</description>
19762099      <year>19??</year>
19772100      <publisher>&lt;unknown&gt;</publisher>
19782101      <part name="flop1" interface="floppy_5_25">
r241781r241782
19892112   </software>
19902113
19912114   <software name="othello">
1992      <description>othello</description>
2115      <description>Othello</description>
19932116      <year>19??</year>
19942117      <publisher>&lt;unknown&gt;</publisher>
19952118      <part name="flop1" interface="floppy_5_25">
r241781r241782
20002123   </software>
20012124
20022125   <software name="pacman">
2003      <description>pacman</description>
2126      <description>Pacman</description>
20042127      <year>19??</year>
20052128      <publisher>&lt;unknown&gt;</publisher>
20062129      <part name="flop1" interface="floppy_5_25">
r241781r241782
20112134   </software>
20122135
20132136   <software name="persfina">
2014      <description>personal_finance_vol_1</description>
2137      <description>Personal Finance Volume 1</description>
20152138      <year>19??</year>
20162139      <publisher>&lt;unknown&gt;</publisher>
20172140      <part name="flop1" interface="floppy_5_25">
r241781r241782
20222145   </software>
20232146
20242147   <software name="pertplnr">
2025      <description>pert_planner</description>
2148      <description>PERT Planner</description>
20262149      <year>19??</year>
20272150      <publisher>&lt;unknown&gt;</publisher>
20282151      <part name="flop1" interface="floppy_5_25">
r241781r241782
20332156   </software>
20342157
20352158   <software name="printpkg">
2036      <description>printer_pkg</description>
2159      <description>Printer Package</description>
20372160      <year>19??</year>
20382161      <publisher>&lt;unknown&gt;</publisher>
20392162      <part name="flop1" interface="floppy_5_25">
r241781r241782
20412164            <rom name="printer_pkg.ccvf" size="162842" crc="d4998bf0" sha1="abc216b8f2b2907289c83d555dd13bbaff8cfa6f" offset="0"/>
20422165         </dataarea>
20432166      </part>
2167   </software>
20442168
2045      <part name="flop2" interface="floppy_5_25">
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">
20462174         <dataarea name="flop" size="162842">
20472175            <rom name="printer_pkg_src-sidea.ccvf" size="162842" crc="7d2436e8" sha1="9f1188fd7d707bd8dc04dca252ddda187b48ab05" offset="0"/>
20482176         </dataarea>
20492177      </part>
20502178
2051      <part name="flop3" interface="floppy_5_25">
2179      <part name="flop2" interface="floppy_5_25">
20522180         <dataarea name="flop" size="162842">
20532181            <rom name="printer_pkg_src-sideb.ccvf" size="162842" crc="78d69675" sha1="55bcd7c91bdc78cffdd475caa8f8e217cc92a304" offset="0"/>
20542182         </dataarea>
20552183      </part>
20562184   </software>
20572185
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
20582197   <software name="ratfor">
2059      <description>ratfor</description>
2198      <description>RATFOR</description>
20602199      <year>19??</year>
20612200      <publisher>&lt;unknown&gt;</publisher>
20622201      <part name="flop1" interface="floppy_5_25">
r241781r241782
20662205      </part>
20672206   </software>
20682207
2069   <software name="samplera" cloneof="sampler">
2070      <description>sampler-3.31.78</description>
2208   <software name="sampler">
2209      <description>Sampler (v1.23.80)</description>
20712210      <year>19??</year>
20722211      <publisher>&lt;unknown&gt;</publisher>
20732212      <part name="flop1" interface="floppy_5_25">
20742213         <dataarea name="flop" size="163561">
2075            <rom name="sampler-3.31.78.ccvf" size="163561" crc="3df51056" sha1="954c5add7267f0c3d832422f8c93d770e0d9cd06" offset="0"/>
2214            <rom name="sampler.ccvf" size="163561" crc="71b7c5f9" sha1="2442454b6e85adab43f345469464d76012a2a9fc" offset="0"/>
20762215         </dataarea>
20772216      </part>
20782217   </software>
20792218
2080   <software name="sampler">
2081      <description>sampler</description>
2219   <software name="samplera" cloneof="sampler">
2220      <description>Sampler (v3.31.78)</description>
20822221      <year>19??</year>
20832222      <publisher>&lt;unknown&gt;</publisher>
20842223      <part name="flop1" interface="floppy_5_25">
20852224         <dataarea name="flop" size="163561">
2086            <rom name="sampler.ccvf" size="163561" crc="71b7c5f9" sha1="2442454b6e85adab43f345469464d76012a2a9fc" offset="0"/>
2225            <rom name="sampler-3.31.78.ccvf" size="163561" crc="3df51056" sha1="954c5add7267f0c3d832422f8c93d770e0d9cd06" offset="0"/>
20872226         </dataarea>
20882227      </part>
20892228   </software>
20902229
2091   <software name="srgches1">
2092      <description>sargon_chess_1</description>
2230   <software name="sargon">
2231      <description>Sargon 1</description>
20932232      <year>19??</year>
20942233      <publisher>&lt;unknown&gt;</publisher>
20952234      <part name="flop1" interface="floppy_5_25">
r241781r241782
21002239   </software>
21012240
21022241   <software name="scratch">
2103      <description>scratch</description>
2242      <description>Scratch</description>
21042243      <year>19??</year>
21052244      <publisher>&lt;unknown&gt;</publisher>
21062245      <part name="flop1" interface="floppy_5_25">
r241781r241782
21112250   </software>
21122251
21132252   <software name="selutils">
2114      <description>selective_utilities</description>
2253      <description>Selective Utilities</description>
21152254      <year>19??</year>
21162255      <publisher>&lt;unknown&gt;</publisher>
21172256      <part name="flop1" interface="floppy_5_25">
r241781r241782
21212260      </part>
21222261   </software>
21232262
2124   <software name="sfsspa" cloneof="sfssp">
2125      <description>sfssp_v1.3_nodata_docs</description>
2263   <software name="sfssp">
2264      <description>SFSSP (v1.3)</description>
21262265      <year>19??</year>
21272266      <publisher>&lt;unknown&gt;</publisher>
21282267      <part name="flop1" interface="floppy_5_25">
2129         <dataarea name="flop" size="162862">
2130            <rom name="sfssp_v1.3_nodata_docs.ccvf" size="162862" crc="21d05c4f" sha1="dc35e4d1ad361b69a922cd7ab0d8e629b5c49f67" offset="0"/>
2268         <dataarea name="flop" size="162841">
2269            <rom name="sfssp_v1.3_stock.ccvf" size="162841" crc="07866db5" sha1="51d67e05617f5e48060dbf68a50fcb6a57277b4e" offset="0"/>
21312270         </dataarea>
21322271      </part>
21332272   </software>
21342273
2135   <software name="sfssp">
2136      <description>sfssp_v1.3_stock</description>
2274   <software name="sfsspa" cloneof="sfssp">
2275      <description>SFSSP (v1.3, No Docs)</description>
21372276      <year>19??</year>
21382277      <publisher>&lt;unknown&gt;</publisher>
21392278      <part name="flop1" interface="floppy_5_25">
2140         <dataarea name="flop" size="162841">
2141            <rom name="sfssp_v1.3_stock.ccvf" size="162841" crc="07866db5" sha1="51d67e05617f5e48060dbf68a50fcb6a57277b4e" offset="0"/>
2279         <dataarea name="flop" size="162862">
2280            <rom name="sfssp_v1.3_nodata_docs.ccvf" size="162862" crc="21d05c4f" sha1="dc35e4d1ad361b69a922cd7ab0d8e629b5c49f67" offset="0"/>
21422281         </dataarea>
21432282      </part>
21442283   </software>
21452284
21462285   <software name="sharks">
2147      <description>sharks</description>
2286      <description>Sharks</description>
21482287      <year>19??</year>
21492288      <publisher>&lt;unknown&gt;</publisher>
21502289      <part name="flop1" interface="floppy_5_25">
r241781r241782
21542293      </part>
21552294   </software>
21562295
2157   <software name="snakeldr">
2158      <description>snakes_and_ladders</description>
2296   <software name="snakelad">
2297      <description>Snakes and Ladders</description>
21592298      <year>19??</year>
21602299      <publisher>&lt;unknown&gt;</publisher>
21612300      <part name="flop1" interface="floppy_5_25">
r241781r241782
21662305   </software>
21672306
21682307   <software name="solitair">
2169      <description>solitaire</description>
2308      <description>Solitaire</description>
21702309      <year>19??</year>
21712310      <publisher>&lt;unknown&gt;</publisher>
21722311      <part name="flop1" interface="floppy_5_25">
r241781r241782
21772316   </software>
21782317
21792318   <software name="slitepen">
2180      <description>sound_light_pen</description>
2319      <description>Sound Light Pen</description>
21812320      <year>19??</year>
21822321      <publisher>&lt;unknown&gt;</publisher>
21832322      <part name="flop1" interface="floppy_5_25">
r241781r241782
21882327   </software>
21892328
21902329   <software name="sndware2">
2191      <description>soundware_ii</description>
2330      <description>Soundware II</description>
21922331      <year>19??</year>
21932332      <publisher>&lt;unknown&gt;</publisher>
21942333      <part name="flop1" interface="floppy_5_25">
r241781r241782
21992338   </software>
22002339
22012340   <software name="source">
2202      <description>source</description>
2341      <description>Source</description>
22032342      <year>19??</year>
22042343      <publisher>&lt;unknown&gt;</publisher>
22052344      <part name="flop1" interface="floppy_5_25">
r241781r241782
22102349   </software>
22112350
22122351   <software name="source1">
2213      <description>source_1</description>
2352      <description>Source 1</description>
22142353      <year>19??</year>
22152354      <publisher>&lt;unknown&gt;</publisher>
22162355      <part name="flop1" interface="floppy_5_25">
r241781r241782
22212360   </software>
22222361
22232362   <software name="source3">
2224      <description>source_3</description>
2363      <description>Source 3</description>
22252364      <year>19??</year>
22262365      <publisher>&lt;unknown&gt;</publisher>
22272366      <part name="flop1" interface="floppy_5_25">
r241781r241782
22322371   </software>
22332372
22342373   <software name="source4">
2235      <description>source_4</description>
2374      <description>Source 4</description>
22362375      <year>19??</year>
22372376      <publisher>&lt;unknown&gt;</publisher>
22382377      <part name="flop1" interface="floppy_5_25">
r241781r241782
22432382   </software>
22442383
22452384   <software name="stampprc">
2246      <description>stamp_price_lists</description>
2385      <description>Stamp Price Lists</description>
22472386      <year>19??</year>
22482387      <publisher>&lt;unknown&gt;</publisher>
22492388      <part name="flop1" interface="floppy_5_25">
r241781r241782
22542393   </software>
22552394
22562395   <software name="startrek">
2257      <description>startrek</description>
2396      <description>Star Trek</description>
22582397      <year>19??</year>
22592398      <publisher>&lt;unknown&gt;</publisher>
22602399      <part name="flop1" interface="floppy_5_25">
r241781r241782
22642403      </part>
22652404   </software>
22662405
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
22672428   <software name="stat1">
2268      <description>statistics_1</description>
2429      <description>Statistics I</description>
22692430      <year>19??</year>
22702431      <publisher>&lt;unknown&gt;</publisher>
22712432      <part name="flop1" interface="floppy_5_25">
r241781r241782
22762437   </software>
22772438
22782439   <software name="stat2">
2279      <description>statistics_2</description>
2440      <description>Statistics II</description>
22802441      <year>19??</year>
22812442      <publisher>&lt;unknown&gt;</publisher>
22822443      <part name="flop1" interface="floppy_5_25">
r241781r241782
22872448   </software>
22882449
22892450   <software name="stat3">
2290      <description>statistics_3</description>
2451      <description>Statistics III</description>
22912452      <year>19??</year>
22922453      <publisher>&lt;unknown&gt;</publisher>
22932454      <part name="flop1" interface="floppy_5_25">
r241781r241782
22972458      </part>
22982459   </software>
22992460
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
23172461   <software name="supermon">
2318      <description>super_monitor</description>
2462      <description>Super Monitor</description>
23192463      <year>19??</year>
23202464      <publisher>&lt;unknown&gt;</publisher>
23212465      <part name="flop1" interface="floppy_5_25">
r241781r241782
23262470   </software>
23272471
23282472   <software name="swarms">
2329      <description>swarms</description>
2473      <description>Swarms</description>
23302474      <year>19??</year>
23312475      <publisher>&lt;unknown&gt;</publisher>
23322476      <part name="flop1" interface="floppy_5_25">
r241781r241782
23372481   </software>
23382482
23392483   <software name="tabltenn">
2340      <description>table_tennis_for_two</description>
2484      <description>Table Tennis for Two</description>
23412485      <year>19??</year>
23422486      <publisher>&lt;unknown&gt;</publisher>
23432487      <part name="flop1" interface="floppy_5_25">
r241781r241782
23482492   </software>
23492493
23502494   <software name="taylor">
2351      <description>taylor-sidea</description>
2495      <description>Taylor</description>
23522496      <year>19??</year>
23532497      <publisher>&lt;unknown&gt;</publisher>
23542498      <part name="flop1" interface="floppy_5_25">
r241781r241782
23652509   </software>
23662510
23672511   <software name="taylor1">
2368      <description>taylor_1</description>
2512      <description>Taylor #1</description>
23692513      <year>19??</year>
23702514      <publisher>&lt;unknown&gt;</publisher>
23712515      <part name="flop1" interface="floppy_5_25">
r241781r241782
23762520   </software>
23772521
23782522   <software name="taylor2">
2379      <description>taylor_2</description>
2523      <description>Taylor #2</description>
23802524      <year>19??</year>
23812525      <publisher>&lt;unknown&gt;</publisher>
23822526      <part name="flop1" interface="floppy_5_25">
r241781r241782
23872531   </software>
23882532
23892533   <software name="taylor3">
2390      <description>taylor_3</description>
2534      <description>Taylor #3</description>
23912535      <year>19??</year>
23922536      <publisher>&lt;unknown&gt;</publisher>
23932537      <part name="flop1" interface="floppy_5_25">
r241781r241782
23982542   </software>
23992543
24002544   <software name="taylor4">
2401      <description>taylor_4</description>
2545      <description>Taylor #4</description>
24022546      <year>19??</year>
24032547      <publisher>&lt;unknown&gt;</publisher>
24042548      <part name="flop1" interface="floppy_5_25">
r241781r241782
24092553   </software>
24102554
24112555   <software name="taylor5">
2412      <description>taylor_5</description>
2556      <description>Taylor #5</description>
24132557      <year>19??</year>
24142558      <publisher>&lt;unknown&gt;</publisher>
24152559      <part name="flop1" interface="floppy_5_25">
r241781r241782
24202564   </software>
24212565
24222566   <software name="taylor6">
2423      <description>taylor_6</description>
2567      <description>Taylor #6</description>
24242568      <year>19??</year>
24252569      <publisher>&lt;unknown&gt;</publisher>
24262570      <part name="flop1" interface="floppy_5_25">
r241781r241782
24312575   </software>
24322576
24332577   <software name="taylor7">
2434      <description>taylor_7</description>
2578      <description>Taylor #7</description>
24352579      <year>19??</year>
24362580      <publisher>&lt;unknown&gt;</publisher>
24372581      <part name="flop1" interface="floppy_5_25">
r241781r241782
24422586   </software>
24432587
24442588   <software name="taylor8">
2445      <description>taylor_8</description>
2589      <description>Taylor #8</description>
24462590      <year>19??</year>
24472591      <publisher>&lt;unknown&gt;</publisher>
24482592      <part name="flop1" interface="floppy_5_25">
r241781r241782
24532597   </software>
24542598
24552599   <software name="taylorv2">
2456      <description>taylor_vol_2</description>
2600      <description>Taylor Vol. #2</description>
24572601      <year>19??</year>
24582602      <publisher>&lt;unknown&gt;</publisher>
24592603      <part name="flop1" interface="floppy_5_25">
r241781r241782
24642608   </software>
24652609
24662610   <software name="terminal">
2467      <description>terminal</description>
2611      <description>Terminal</description>
24682612      <year>19??</year>
24692613      <publisher>&lt;unknown&gt;</publisher>
24702614      <part name="flop1" interface="floppy_5_25">
r241781r241782
24742618      </part>
24752619   </software>
24762620
2477   <software name="termem">
2478      <description>terminal_em</description>
2621   <software name="termemu">
2622      <description>Terminal Emulator</description>
24792623      <year>19??</year>
24802624      <publisher>&lt;unknown&gt;</publisher>
24812625      <part name="flop1" interface="floppy_5_25">
r241781r241782
24862630   </software>
24872631
24882632   <software name="textedit">
2489      <description>text_editor</description>
2633      <description>Text Editor</description>
24902634      <year>19??</year>
24912635      <publisher>&lt;unknown&gt;</publisher>
24922636      <part name="flop1" interface="floppy_5_25">
r241781r241782
24972641   </software>
24982642
24992643   <software name="textfrmt">
2500      <description>text_formatter</description>
2644      <description>Text Formatter</description>
25012645      <year>19??</year>
25022646      <publisher>&lt;unknown&gt;</publisher>
25032647      <part name="flop1" interface="floppy_5_25">
r241781r241782
25082652   </software>
25092653
25102654   <software name="editor">
2511      <description>the_editor_v2</description>
2655      <description>The BASIC Editor (v2.A.82)</description>
25122656      <year>19??</year>
25132657      <publisher>&lt;unknown&gt;</publisher>
25142658      <part name="flop1" interface="floppy_5_25">
r241781r241782
25192663   </software>
25202664
25212665   <software name="tinyc">
2522      <description>tiny_c_v3.0</description>
2666      <description>Tiny C v3.0</description>
25232667      <year>19??</year>
25242668      <publisher>&lt;unknown&gt;</publisher>
25252669      <part name="flop1" interface="floppy_5_25">
r241781r241782
25302674   </software>
25312675
25322676   <software name="tinypasc">
2533      <description>tiny_pascal</description>
2677      <description>Tiny Pascal</description>
25342678      <year>19??</year>
25352679      <publisher>&lt;unknown&gt;</publisher>
25362680      <part name="flop1" interface="floppy_5_25">
r241781r241782
25402684      </part>
25412685   </software>
25422686
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
25432698   <software name="utility">
2544      <description>utility</description>
2699      <description>Utility</description>
25452700      <year>19??</year>
25462701      <publisher>&lt;unknown&gt;</publisher>
25472702      <part name="flop1" interface="floppy_5_25">
r241781r241782
25522707   </software>
25532708
25542709   <software name="utility2">
2555      <description>utility_2</description>
2710      <description>Utility 2</description>
25562711      <year>19??</year>
25572712      <publisher>&lt;unknown&gt;</publisher>
25582713      <part name="flop1" interface="floppy_5_25">
r241781r241782
25632718   </software>
25642719
25652720   <software name="utility3">
2566      <description>utility_3</description>
2721      <description>Utility 3</description>
25672722      <year>19??</year>
25682723      <publisher>&lt;unknown&gt;</publisher>
25692724      <part name="flop1" interface="floppy_5_25">
r241781r241782
25732728      </part>
25742729   </software>
25752730
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
25762742   <software name="wordking">
2577      <description>word_king_v1.6</description>
2743      <description>Word King (v1.6)</description>
25782744      <year>19??</year>
25792745      <publisher>&lt;unknown&gt;</publisher>
25802746      <part name="flop1" interface="floppy_5_25">
r241781r241782
25852751   </software>
25862752
25872753   <software name="wordproc">
2588      <description>word_processor_v2.1</description>
2754      <description>Word Processor (v2.1)</description>
25892755      <year>19??</year>
25902756      <publisher>&lt;unknown&gt;</publisher>
25912757      <part name="flop1" interface="floppy_5_25">
r241781r241782
25962762   </software>
25972763
25982764   <software name="wordpzle">
2599      <description>word_puzzle</description>
2765      <description>Word Puzzle</description>
26002766      <year>19??</year>
26012767      <publisher>&lt;unknown&gt;</publisher>
26022768      <part name="flop1" interface="floppy_5_25">
r241781r241782
26072773   </software>
26082774
26092775   <software name="wordy">
2610      <description>wordy_disk_1</description>
2776      <description>Wordy</description>
26112777      <year>19??</year>
26122778      <publisher>&lt;unknown&gt;</publisher>
26132779      <part name="flop1" interface="floppy_5_25">
r241781r241782
26302796   </software>
26312797
26322798   <software name="zipcomp">
2633      <description>zip_compiler</description>
2799      <description>ZIP Compiler</description>
26342800      <year>19??</year>
26352801      <publisher>&lt;unknown&gt;</publisher>
26362802      <part name="flop1" interface="floppy_5_25">
trunk/hash/dai_cass.xml
r0r241782
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
r241781r241782
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
9421010   <software name="dbase238"> <!-- CP/M-80 -->
9431011      <description>dBASE II v2.38</description>
9441012      <year>198?</year>
r241781r241782
10431111      </part>
10441112   </software>
10451113
1046   <software name="acad" supported="no"> <!-- MS-DOS --> <!-- graphic mode doesn't works -->
1114   <software name="acad"> <!-- MS-DOS -->
10471115      <description>AutoCAD</description>
10481116      <year>1987</year>
10491117      <publisher>&lt;unknown&gt;</publisher>
r241781r241782
10601128      </part>
10611129   </software>
10621130
1063   <software name="acada" cloneof="acad" supported="no"> <!-- MS-DOS --> <!-- graphic mode doesn't works -->
1131   <software name="acada" cloneof="acad"> <!-- MS-DOS -->
10641132      <description>AutoCAD (Alt 1)</description>
10651133      <year>1987</year>
10661134      <publisher>&lt;unknown&gt;</publisher>
r241781r241782
10871155      </part>
10881156   </software>
10891157
1090   <software name="acadb" cloneof="acad" supported="no"> <!-- MS-DOS --> <!-- graphic mode doesn't works -->
1158   <software name="acadb" cloneof="acad"> <!-- MS-DOS -->
10911159      <description>AutoCAD (Alt 2)</description>
10921160      <year>1987</year>
10931161      <publisher>&lt;unknown&gt;</publisher>
trunk/hash/epson_cpm.xml
r241781r241782
2424    <software name="arcs">
2525        <description>Archivers</description>
2626        <year>?????</year>
27        <publisher>n/a</publisher>
27        <publisher>&lt;unofficial&gt;</publisher>
2828        <part name="flop1" interface="floppy_5_25">
2929            <feature name="part_id" value="Archivers" />
3030            <dataarea name="flop" size="348848">
r241781r241782
3636    <software name="editor">
3737        <description>VDE 2.66</description>
3838        <year>?????</year>
39        <publisher>n/a</publisher>
39        <publisher>&lt;unofficial&gt;</publisher>
4040        <part name="flop1" interface="floppy_5_25">
4141            <feature name="part_id" value="VDE 2.66" />
4242            <dataarea name="flop" size="348848">
r241781r241782
4848    <software name="extrauti">
4949        <description>Extra Utilities</description>
5050        <year>?????</year>
51        <publisher>n/a</publisher>
51        <publisher>&lt;unofficial&gt;</publisher>
5252        <part name="flop1" interface="floppy_5_25">
5353            <feature name="part_id" value="Extra Utilities" />
5454            <dataarea name="flop" size="348848">
r241781r241782
6060    <software name="modems">
6161        <description>Modem Sample &amp; M80 &amp; L80</description>
6262        <year>?????</year>
63        <publisher>n/a</publisher>
63        <publisher>&lt;unofficial&gt;</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">
r241781r241782
7272    <software name="promprog">
7373        <description>PROM Progs</description>
7474        <year>?????</year>
75        <publisher>n/a</publisher>
75        <publisher>&lt;unofficial&gt;</publisher>
7676        <part name="flop1" interface="floppy_5_25">
7777            <feature name="part_id" value="PROM Progs" />
7878            <dataarea name="flop" size="348848">
r241781r241782
8484    <software name="px4util1">
8585        <description>PX-4 Utils</description>
8686        <year>?????</year>
87        <publisher>n/a</publisher>
87        <publisher>&lt;unofficial&gt;</publisher>
8888        <part name="flop1" interface="floppy_5_25">
8989            <feature name="part_id" value="PX-4 Utils" />
9090            <dataarea name="flop" size="348848">
r241781r241782
9696    <software name="px4util2">
9797        <description>PX-4 Utility Disk</description>
9898        <year>?????</year>
99        <publisher>n/a</publisher>
99        <publisher>&lt;unofficial&gt;</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">
r241781r241782
108108    <software name="px4util3">
109109        <description>PX-4 Utility Disk 2</description>
110110        <year>?????</year>
111        <publisher>n/a</publisher>
111        <publisher>&lt;unofficial&gt;</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">
r241781r241782
120120    <software name="px4wand">
121121        <description>PX-4 Wanderer</description>
122122        <year>?????</year>
123        <publisher>n/a</publisher>
123        <publisher>&lt;unofficial&gt;</publisher>
124124        <part name="flop1" interface="floppy_5_25">
125125            <feature name="part_id" value="PX-4 Wanderer" />
126126            <dataarea name="flop" size="348848">
r241781r241782
132132    <software name="px8epstf">
133133        <description>PX-8 EPS (TF-20 bootdisk)</description>
134134        <year>?????</year>
135        <publisher>n/a</publisher>
135        <publisher>&lt;unofficial&gt;</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">
r241781r241782
144144    <software name="px8games">
145145        <description>PX-8 Games</description>
146146        <year>?????</year>
147        <publisher>n/a</publisher>
147        <publisher>&lt;unofficial&gt;</publisher>
148148        <part name="flop1" interface="floppy_5_25">
149149            <feature name="part_id" value="PX-8 Games" />
150150            <dataarea name="flop" size="348848">
r241781r241782
156156    <software name="scratch">
157157        <description>Scratch</description>
158158        <year>?????</year>
159        <publisher>n/a</publisher>
159        <publisher>&lt;unofficial&gt;</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
r241781r241782
55
66   <software name="asteroid">
77      <description>Asteroidi</description>
8      <year>19??</year>
9      <publisher>&lt;unknown&gt;</publisher>
8      <year>1984</year>
9      <publisher>GAC Software</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="0x0000" />
12            <rom name="asteroidi.gtp" size="1298" crc="70aa80a3" sha1="1bc96cdf7602bbb24b02f5f9cb9aac709f3a7080" offset="0" />
1313         </dataarea>
1414      </part>
1515   </software>
r241781r241782
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="0x0000" />
23            <rom name="biljar.gtp" size="1017" crc="469ba6a2" sha1="b93a3a968e3fe004958f61d6fcf63268be01517d" offset="0" />
2424         </dataarea>
2525      </part>
2626   </software>
2727
28   <software name="biorita1">
29      <description>Bioritam1</description>
30      <year>19??</year>
31      <publisher>&lt;unknown&gt;</publisher>
28   <software name="bioritam">
29      <description>Bioritam</description>
30      <year>1984</year>
31      <publisher>Galaxy Computer</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="0x0000" />
34            <rom name="bioritam1.gtp" size="2996" crc="86d9274a" sha1="b71ef12740d0cb10d8ae0b5eb30d6f3fd1f7fb86" offset="0" />
3535         </dataarea>
3636      </part>
3737   </software>
3838
3939   <software name="biorita2">
40      <description>Bioritam2</description>
40      <description>Bioritam (Alt)</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="0x0000" />
45            <rom name="bioritam2.gtp" size="1366" crc="997e491e" sha1="b61d390bc33e2568526af5a2116ec87d7ac7e505" offset="0" />
4646         </dataarea>
4747      </part>
4848   </software>
4949
50   <software name="bladall">
51      <description>BladeAlley</description>
52      <year>19??</year>
53      <publisher>&lt;unknown&gt;</publisher>
50   <software name="bladeall">
51      <description>Blade Alley</description>
52      <year>1985</year>
53      <publisher>Jasmin Halilovic</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="0x0000" />
56            <rom name="bladealley.gtp" size="1879" crc="723da222" sha1="b8d7978a67595ef1107919771cbe7b9919ad2fe5" offset="0" />
5757         </dataarea>
5858      </part>
5959   </software>
r241781r241782
6161   <software name="bombard">
6262      <description>Bombarder</description>
6363      <year>19??</year>
64      <publisher>&lt;unknown&gt;</publisher>
64      <publisher>Nenad Balint</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="0x0000" />
67            <rom name="bombarder.gtp" size="1880" crc="7d584b08" sha1="a0629636f015381f8d4132af8d95577fdef12ed7" offset="0" />
6868         </dataarea>
6969      </part>
7070   </software>
7171
7272   <software name="charfire">
73      <description>ChariotsOfFire</description>
73      <description>Chariots of Fire</description>
7474      <year>19??</year>
75      <publisher>&lt;unknown&gt;</publisher>
75      <publisher>Dragan Yujkov</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="0x0000" />
78            <rom name="chariotsoffire.gtp" size="290" crc="33e9fad9" sha1="7e80787f2314c6dad333856b2a1683ddcffafdf4" offset="0" />
7979         </dataarea>
8080      </part>
8181   </software>
r241781r241782
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="0x0000" />
89            <rom name="comets.gtp" size="411" crc="8ccc82a6" sha1="e283c077c660182ffba71f1f5300f893eaf13915" offset="0" />
9090         </dataarea>
9191      </part>
9292   </software>
9393
9494   <software name="dijamant">
95      <description>DijamantskiRudnik</description>
96      <year>19??</year>
97      <publisher>&lt;unknown&gt;</publisher>
95      <description>Dijamantski Rudnik</description>
96      <year>1985</year>
97      <publisher>Nenad Balint</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="0x0000" />
100            <rom name="dijamantskirudnik.gtp" size="2754" crc="d7c5a9ba" sha1="f1669e88644fe4fca1387b00f617aff80162028e" offset="0" />
101101         </dataarea>
102102      </part>
103103   </software>
104104
105105   <software name="dijamanta" cloneof="dijamant">
106      <description>DijamantskiRudnik_ALT</description>
107      <year>19??</year>
108      <publisher>&lt;unknown&gt;</publisher>
106      <description>Dijamantski Rudnik (Alt Format)</description>
107      <year>1985</year>
108      <publisher>Nenad Balint</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="0x0000" />
111            <rom name="dr.gal" size="8244" crc="c73c2187" sha1="9e2fe7856657df1db846f54f008e7e8a823aa8ac" offset="0" />
112112         </dataarea>
113113      </part>
114114   </software>
r241781r241782
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="0x0000" />
122            <rom name="egemond.gtp" size="2913" crc="7c85c513" sha1="ca001178ba823a3a7258147473723321f424c535" offset="0" />
123123         </dataarea>
124124      </part>
125125   </software>
126126
127127   <software name="evolucia">
128128      <description>Evolucija</description>
129      <year>19??</year>
130      <publisher>&lt;unknown&gt;</publisher>
129      <year>1984</year>
130      <publisher>Dejan Ristanovic</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="0x0000" />
133            <rom name="evolucija.gtp" size="1063" crc="c3a8c0f1" sha1="b195af2a260db880166aae754054d1a89a34f73f" offset="0" />
134134         </dataarea>
135135      </part>
136136   </software>
137137
138138   <software name="f1">
139      <description>Formula1</description>
139      <description>Formula 1</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="0x0000" />
144            <rom name="formula1.gtp" size="1194" crc="3efb14c1" sha1="8a48a4bf98c59ae2ed373f6c2db30dfb1cbf14be" offset="0" />
145145         </dataarea>
146146      </part>
147147   </software>
148148
149149   <software name="four">
150150      <description>Four</description>
151      <year>19??</year>
152      <publisher>&lt;unknown&gt;</publisher>
151      <year>1986</year>
152      <publisher>Dragan Yujkov</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="0x0000" />
155            <rom name="four.gtp" size="2631" crc="9ee92e36" sha1="9c7b83ba138e77bc258d3e495146e8971779b4d2" offset="0" />
156156         </dataarea>
157157      </part>
158158   </software>
159159
160160   <software name="galakrat">
161      <description>GalaktickiRat</description>
162      <year>19??</year>
163      <publisher>&lt;unknown&gt;</publisher>
161      <description>Galakticki Rat</description>
162      <year>1985</year>
163      <publisher>Antonic Voja</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="0x0000" />
166            <rom name="galaktickirat.gtp" size="2238" crc="e7a5260e" sha1="510c411b524b80b621655f4038581811818dc7d2" offset="0" />
167167         </dataarea>
168168      </part>
169169   </software>
170170
171171   <software name="hhorace">
172      <description>HungryHorace</description>
172      <description>Hungry Horace</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="0x0000" />
177            <rom name="hungryhorace.gtp" size="797" crc="f3c15d57" sha1="e1217926da7560e9a6a6582df3bbe22ca59e2ed1" offset="0" />
178178         </dataarea>
179179      </part>
180180   </software>
181181
182182   <software name="igradisk">
183      <description>IgraDiskova</description>
184      <year>19??</year>
185      <publisher>&lt;unknown&gt;</publisher>
183      <description>Igra Diskova</description>
184      <year>1985</year>
185      <publisher>Yojislav Mihailovic</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="0x0000" />
188            <rom name="igradiskova.gtp" size="1768" crc="7e37f44d" sha1="c60e55ff82287c7f0d610c1f403de7f75f206054" offset="0" />
189189         </dataarea>
190190      </part>
191191   </software>
192192
193193   <software name="spiridon">
194      <description>InspektorSpiridon</description>
194      <description>Inspektor Spiridon</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="0x0000" />
199            <rom name="inspektorspiridon.gtp" size="4112" crc="15a1ef41" sha1="0f173c16aec2abde535fdb88438a8408c1c114ec" offset="0" />
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="0x0000" />
204            <rom name="inspektorspiridonupustvo.gtp" size="2255" crc="01056c67" sha1="d658f2a5b749f20bdb0bd31b33e2a7a95cf3d378" offset="0" />
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="0x0000" />
209            <rom name="inspektorspiridonvaranje.gtp" size="549" crc="3c780376" sha1="5bd7015082a350dda324ca8d497e5cbd0d73a289" offset="0" />
210210         </dataarea>
211211      </part>
212212   </software>
213213
214214   <software name="jumpjack">
215      <description>JumpingJack</description>
216      <year>19??</year>
217      <publisher>&lt;unknown&gt;</publisher>
215      <description>Jumping Jack</description>
216      <year>1985</year>
217      <publisher>Antonic Voja</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="0x0000" />
220            <rom name="jumpingjack.gtp" size="1891" crc="4b158c1d" sha1="fb6019ac9fbefd87ffcba592178b6568607680b0" offset="0" />
221221         </dataarea>
222222      </part>
223223   </software>
224224
225225   <software name="lightcyc">
226      <description>LightCycles</description>
227      <year>19??</year>
228      <publisher>&lt;unknown&gt;</publisher>
226      <description>Light Cycles</description>
227      <year>1985</year>
228      <publisher>Bojan Stanojevic</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="0x0000" />
231            <rom name="lightcycles.gtp" size="1245" crc="838cf2e2" sha1="6da589007fbf3688f63da88ced241907e8bee774" offset="0" />
232232         </dataarea>
233233      </part>
234234   </software>
235235
236236   <software name="lightcy2">
237      <description>LightCycles2</description>
237      <description>Light Cycles (Alt)</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="0x0000" />
242            <rom name="lightcycles2.gtp" size="1550" crc="f271a8a9" sha1="00dc59dfa6dd6a33edbbedc18f6300e445f170a0" offset="0" />
243243         </dataarea>
244244      </part>
245245   </software>
246246
247247   <software name="lightshw">
248      <description>LightShow</description>
249      <year>19??</year>
250      <publisher>&lt;unknown&gt;</publisher>
248      <description>Light Show</description>
249      <year>1987</year>
250      <publisher>Dragan Vujkov</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="0x0000" />
253            <rom name="lightshow.gtp" size="3001" crc="27ae9809" sha1="d8a95e689dd8c84b71cf375c5f57010e8a9ae4b4" offset="0" />
254254         </dataarea>
255255      </part>
256256   </software>
257257
258258   <software name="mminer">
259      <description>ManicMiner</description>
259      <description>Manic Miner</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="0x0000" />
264            <rom name="manicminer.gtp" size="4378" crc="2ab18f85" sha1="ad12006ccc3bc5c8e27c60eaeac83164ab1b86eb" offset="0" />
265265         </dataarea>
266266      </part>
267267   </software>
268268
269269   <software name="mastrmnd">
270270      <description>Mastermajnd</description>
271      <year>19??</year>
272      <publisher>&lt;unknown&gt;</publisher>
271      <year>1984</year>
272      <publisher>Dejan Ristanovic</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="0x0000" />
275            <rom name="mastermajnd.gtp" size="2077" crc="6daf8f56" sha1="fe6f3f6fbbc75cded96d3217c7f4475f81bb3065" offset="0" />
276276         </dataarea>
277277      </part>
278278   </software>
279279
280280   <software name="mastrmn2">
281      <description>Mastermind2</description>
281      <description>Mastermind</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="0x0000" />
286            <rom name="mastermind2.gtp" size="1035" crc="f27a7818" sha1="b8b93ce87792bd48e59e11e583838e2a8eea937d" offset="0" />
287287         </dataarea>
288288      </part>
289289   </software>
r241781r241782
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="0x0000" />
297            <rom name="maze.gtp" size="2530" crc="9a2eb6e9" sha1="89fc487ef0f8e505525e98396ecc5a16a70379d5" offset="0" />
298298         </dataarea>
299299      </part>
300300   </software>
r241781r241782
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="0x0000" />
308            <rom name="memorija.gtp" size="2357" crc="c5db1192" sha1="8d1c475f1b18f5b9e05583bfdafda1c2e45378c3" offset="0" />
309309         </dataarea>
310310      </part>
311311   </software>
r241781r241782
313313   <software name="monitor">
314314      <description>Monitor</description>
315315      <year>19??</year>
316      <publisher>&lt;unknown&gt;</publisher>
316      <publisher>Antonic Voja</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="0x0000" />
319            <rom name="monitor.gtp" size="2073" crc="f22eceb3" sha1="c9830a9d419681b9f345b44b091c0d82d4239a08" offset="0" />
320320         </dataarea>
321321      </part>
322322   </software>
323323
324324   <software name="nightpil">
325      <description>NightPilot</description>
326      <year>19??</year>
327      <publisher>&lt;unknown&gt;</publisher>
325      <description>Night Pilot</description>
326      <year>1985</year>
327      <publisher>Dragutin Vukotic</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="0x0000" />
330            <rom name="nightpilot.gtp" size="4854" crc="97f02860" sha1="44c4cec4abb012e81dfdc4255f4c42b82e9ff167" offset="0" />
331331         </dataarea>
332332      </part>
333333   </software>
r241781r241782
335335   <software name="oscil">
336336      <description>Oscilacije</description>
337337      <year>19??</year>
338      <publisher>&lt;unknown&gt;</publisher>
338      <publisher>Dragan Vujkov</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="0x0000" />
341            <rom name="oscilacije.gtp" size="504" crc="83392fb3" sha1="bce729ee54a326ee7db9c9dd7dd33145b0cc64db" offset="0" />
342342         </dataarea>
343343      </part>
344344   </software>
345345
346346   <software name="pacmanp">
347      <description>PacManPlus</description>
347      <description>Pac Man (Plus)</description>
348348      <year>19??</year>
349      <publisher>&lt;unknown&gt;</publisher>
349      <publisher>Josip Perusanec</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="0x0000" />
352            <rom name="pacmanplus.gtp" size="12572" crc="cbb8af07" sha1="e3f048454c4a9d62835f80256fdfebbfaef5561b" offset="0" />
353353         </dataarea>
354354      </part>
355355   </software>
356356
357357   <software name="pamtilic">
358358      <description>Pamtilice</description>
359      <year>19??</year>
360      <publisher>&lt;unknown&gt;</publisher>
359      <year>1985</year>
360      <publisher>Peca Milosavljevic</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="0x0000" />
363            <rom name="pamtilice.gtp" size="3076" crc="1ae4d73f" sha1="60332bc1ac30abe9f737a8524fcb581003fd7077" offset="0" />
364364         </dataarea>
365365      </part>
366366   </software>
367367
368368   <software name="poker">
369369      <description>Poker</description>
370      <year>19??</year>
371      <publisher>&lt;unknown&gt;</publisher>
370      <year>1985</year>
371      <publisher>Nenad Balint</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="0x0000" />
374            <rom name="poker.gtp" size="4424" crc="ff4d5af3" sha1="59258c130121ac718ca8f256f293ef2e4e9742df" offset="0" />
375375         </dataarea>
376376      </part>
377377   </software>
378378
379379   <software name="pozivniz">
380      <description>PozivniZnak</description>
380      <description>Pozivni Znak</description>
381381      <year>19??</year>
382      <publisher>&lt;unknown&gt;</publisher>
382      <publisher>Dragan Vujkov</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="0x0000" />
385            <rom name="pozivniznak.gtp" size="414" crc="2d7273a3" sha1="694c770409781f96b422a5b55f9222700fa08531" offset="0" />
386386         </dataarea>
387387      </part>
388388   </software>
389389
390390   <software name="raindrop">
391      <description>RainDrops</description>
391      <description>Rain Drops</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="0x0000" />
396            <rom name="raindrops.gtp" size="573" crc="02642e02" sha1="d9880a1cb0180c8203cc71fab09687a808244d9a" offset="0" />
397397         </dataarea>
398398      </part>
399399   </software>
r241781r241782
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="0x0000" />
407            <rom name="scater.gtp" size="1892" crc="bd4be810" sha1="59d027a4111b15fd30b9290e87a2edb438e1614f" offset="0" />
408408         </dataarea>
409409      </part>
410410   </software>
r241781r241782
412412   <software name="sintesaj">
413413      <description>Sintesajzer</description>
414414      <year>19??</year>
415      <publisher>&lt;unknown&gt;</publisher>
415      <publisher>Dragan Vujkov</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="0x0000" />
418            <rom name="sintesajzer.gtp" size="901" crc="f747478d" sha1="51b9f20f154f5631fbee88c6df906c95f8929de6" offset="0" />
419419         </dataarea>
420420      </part>
421421   </software>
422422
423423   <software name="slalom2">
424      <description>Slalom2</description>
425      <year>19??</year>
426      <publisher>&lt;unknown&gt;</publisher>
424      <description>Slalom II</description>
425      <year>1985</year>
426      <publisher>Zeljko Gerovac</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="0x0000" />
429            <rom name="slalom2.gtp" size="1328" crc="722f26ed" sha1="d9b87941fd19606d53b72cb319c4d3dc7e6880d6" offset="0" />
430430         </dataarea>
431431      </part>
432432   </software>
433433
434434   <software name="snake">
435      <description>Snake</description>
436      <year>19??</year>
437      <publisher>&lt;unknown&gt;</publisher>
435      <description>Snake (Nenad Balint)</description>
436      <year>1984</year>
437      <publisher>Nenad Balint</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="0x0000" />
440            <rom name="snake.gtp" size="3173" crc="ae7e097b" sha1="8b90a3ba49711ea7bd6fc7058a71c0699fc49cb1" offset="0" />
441441         </dataarea>
442442      </part>
443443   </software>
444444
445   <software name="snake2">
446      <description>Snake2</description>
447      <year>19??</year>
448      <publisher>&lt;unknown&gt;</publisher>
445   <software name="snakedv">
446      <description>Snake (Dragan Vujkov)</description>
447      <year>1987</year>
448      <publisher>Dragan Vujkov</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="0x0000" />
451            <rom name="snake2.gtp" size="1686" crc="18127599" sha1="c37d5cf13704b374b3c76d4ac7b80787dfb88dc8" offset="0" />
452452         </dataarea>
453453      </part>
454454   </software>
455455
456456   <software name="squash">
457457      <description>Squash</description>
458      <year>19??</year>
458      <year>1986</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="0x0000" />
462            <rom name="squash.gtp" size="1504" crc="ad4657df" sha1="b5a781c1a97086a3ae2da08f1ed975253a4a035b" offset="0" />
463463         </dataarea>
464464      </part>
465465   </software>
466466
467467   <software name="squasha" cloneof="squash">
468      <description>Squash_ALT</description>
468      <description>Squash (Alt Format)</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="0x0000" />
473            <rom name="squash.gal" size="8244" crc="a54b6d45" sha1="140530381ea8964bd32cecd13659f7131fcdb709" offset="0" />
474474         </dataarea>
475475      </part>
476476   </software>
477477
478478   <software name="scruiser">
479      <description>SuperCruiser</description>
480      <year>19??</year>
481      <publisher>&lt;unknown&gt;</publisher>
479      <description>Super Cruiser</description>
480      <year>1985</year>
481      <publisher>Jasmin Halilovic</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="0x0000" />
484            <rom name="supercruiser.gtp" size="2569" crc="b9faec35" sha1="a68d01975952c117e9620cfcdeb9ca7350964c54" offset="0" />
485485         </dataarea>
486486      </part>
487487   </software>
488488
489489   <software name="scruisera" cloneof="scruiser">
490      <description>SuperCruiser_ALT</description>
491      <year>19??</year>
492      <publisher>&lt;unknown&gt;</publisher>
490      <description>Super Cruiser (Alt Format)</description>
491      <year>1985</year>
492      <publisher>Jasmin Halilovic</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="0x0000" />
495            <rom name="sc.gal" size="8244" crc="8ae78ffb" sha1="7e4217afd4d725dd14af55bf7d0796dd51cc868d" offset="0" />
496496         </dataarea>
497497      </part>
498498   </software>
499499
500500   <software name="supersah">
501      <description>SuperSah</description>
502      <year>19??</year>
503      <publisher>&lt;unknown&gt;</publisher>
501      <description>Super-Sah</description>
502      <year>1984</year>
503      <publisher>Page Software</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="0x0000" />
506            <rom name="supersah.gtp" size="5773" crc="9d24e956" sha1="8bb4898a2e5a538ab6f896b0f0d9f796d9e366d5" offset="0" />
507507         </dataarea>
508508      </part>
509509   </software>
510510
511511   <software name="strgovac">
512      <description>SvemirskiTrgovac</description>
513      <year>19??</year>
514      <publisher>&lt;unknown&gt;</publisher>
512      <description>Svemirski Trgovac</description>
513      <year>198?</year>
514      <publisher>Ilija Vitanov</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="0x0000" />
517            <rom name="svemirskitrgovac.gtp" size="2982" crc="a01a1594" sha1="7cca6dc667a29de5f53b105287dc889869aad383" offset="0" />
518518         </dataarea>
519519      </part>
520520   </software>
521521
522522   <software name="svetleci">
523      <description>SvetleciBicikliPlus</description>
524      <year>19??</year>
525      <publisher>&lt;unknown&gt;</publisher>
523      <description>Svetleci Bicikli (Plus)</description>
524      <year>1986</year>
525      <publisher>Nenad Balint</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="0x0000" />
528            <rom name="svetlecibicikliplus.gtp" size="2583" crc="2d4000fe" sha1="de2b47c73c3a324a223147e41c327a52c372875e" offset="0" />
529529         </dataarea>
530530      </part>
531531   </software>
532532
533533   <software name="tenis">
534534      <description>Tenis</description>
535      <year>19??</year>
536      <publisher>&lt;unknown&gt;</publisher>
535      <year>1985</year>
536      <publisher>Nenad Balint</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="0x0000" />
539            <rom name="tenis.gtp" size="2389" crc="6f158ac7" sha1="3dd52ce8f6dbc1d5114c4a63ed5c40666e79c40f" offset="0" />
540540         </dataarea>
541541      </part>
542542   </software>
543543
544544   <software name="tenis3">
545      <description>Tenis3</description>
546      <year>19??</year>
547      <publisher>&lt;unknown&gt;</publisher>
545      <description>Tenis 3</description>
546      <year>1986</year>
547      <publisher>Dragan Yujkov</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="0x0000" />
550            <rom name="tenis3.gtp" size="1874" crc="bc263558" sha1="2bdfcc96e8e4844cc9edae7670710f72d7bf3e1f" offset="0" />
551551         </dataarea>
552552      </part>
553553   </software>
554554
555555   <software name="tetris">
556556      <description>Tetris</description>
557      <year>19??</year>
558      <publisher>&lt;unknown&gt;</publisher>
557      <year>1988</year>
558      <publisher>Dragoljub Obradovic</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="0x0000" />
561            <rom name="tetrisplus.gtp" size="2709" crc="5a6a819b" sha1="7a60930d6269b3ac9898ce0dc2bada8e5626f270" offset="0" />
562562         </dataarea>
563563      </part>
564564   </software>
565565
566566   <software name="tetrisp">
567      <description>TetrisPlus</description>
568      <year>19??</year>
569      <publisher>&lt;unknown&gt;</publisher>
567      <description>Tetris (Plus)</description>
568      <year>1988</year>
569      <publisher>Dragoljub Obradovic</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="0x0000" />
572            <rom name="tetrisplusq.gtp" size="2706" crc="64015b12" sha1="1d062b4abd1bfdc977568378a61f2bbdf65e2602" offset="0" />
573573         </dataarea>
574574      </part>
575575   </software>
576576
577577   <software name="tetrisa" cloneof="tetris">
578      <description>Tetris_ALT</description>
578      <description>Tetris (Alt Format)</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="0x0000" />
583            <rom name="tetris.gal" size="8244" crc="12bc9373" sha1="008d85b379861416c38e3300477a3772959344a1" offset="0" />
584584         </dataarea>
585585      </part>
586586   </software>
587587
588588   <software name="wall">
589589      <description>Wall</description>
590      <year>19??</year>
591      <publisher>&lt;unknown&gt;</publisher>
590      <year>1986</year>
591      <publisher>Dragan Vujkov</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="0x0000" />
594            <rom name="wall.gtp" size="1328" crc="602db525" sha1="fe31a2455376427436e2638e3452633a2a0f2c9a" offset="0" />
595595         </dataarea>
596596      </part>
597597   </software>
r241781r241782
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="0x0000" />
605            <rom name="wonderer.gtp" size="2863" crc="0e7310b7" sha1="e7dd10af2970ada6ca4d7c3eaaa0b3c3b9b929e9" offset="0" />
606606         </dataarea>
607607      </part>
608608   </software>
609609
610610   <software name="wonder2">
611      <description>Wonderer2</description>
611      <description>Wonderer 2</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="0x0000" />
616            <rom name="wonderer2.gtp" size="1866" crc="cd4ae466" sha1="1e5f8e9be2be400ceed8d547d41f3cfe3d9eb072" offset="0" />
617617         </dataarea>
618618      </part>
619619   </software>
620620
621621   <software name="zamak">
622622      <description>Zamak</description>
623      <year>19??</year>
624      <publisher>&lt;unknown&gt;</publisher>
623      <year>1984</year>
624      <publisher>Antonic Voja</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="0x0000" />
627            <rom name="zamak.gtp" size="3015" crc="7d0cc0c9" sha1="e10d2cf3be1a79febc062ade3f8d5c3713bd43ca" offset="0" />
628628         </dataarea>
629629      </part>
630630   </software>
631631
632632   <software name="zid">
633633      <description>Zid</description>
634      <year>19??</year>
635      <publisher>&lt;unknown&gt;</publisher>
634      <year>1984</year>
635      <publisher>GAC Software</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="0x0000" />
638            <rom name="zid.gtp" size="2142" crc="2302a824" sha1="19b34c1ad8ce33e638e297d68221fffc6c8e9e56" offset="0" />
639639         </dataarea>
640640      </part>
641641   </software>
642642
643643   <software name="ziul">
644644      <description>Ziul</description>
645      <year>19??</year>
646      <publisher>&lt;unknown&gt;</publisher>
645      <year>1984</year>
646      <publisher>Dejan Ristanovic</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="0x0000" />
649            <rom name="ziul.gtp" size="6673" crc="f8322dad" sha1="d2988be278dc7328257841789042976799cf39ef" offset="0" />
650650         </dataarea>
651651      </part>
652652   </software>
r241781r241782
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="0x0000" />
660            <rom name="zvezdice.gtp" size="1584" crc="d45e9a5b" sha1="63cf1089407873e2eb4a43703985e41f6b0623f7" offset="0" />
661661         </dataarea>
662662      </part>
663663   </software>
664664
665665   <software name="zvjezdan">
666      <description>ZvjezdaneStaze</description>
667      <year>19??</year>
666      <description>Zvjezdane Staze</description>
667      <year>1985</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="0x0000" />
671            <rom name="zvjezdanestaze.gtp" size="4950" crc="40fcf0b0" sha1="c44d72cead914b31d5f7f26eebb2f3dc9acea498" offset="0" />
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
676731</softwarelist>
trunk/hash/ibm5150.xml
r241781r241782
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>
28252893</softwarelist>
trunk/hash/ibm5170.xml
r241781r241782
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
39694011   <software name="sserv2">
39704012      <!-- Dumped via Kryoflux, shows as good and unmodified -->
39714013      <description>Silent Service II (Version 457.01)</description>
trunk/hash/jupace_cass.xml
r0r241782
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
r241781r241782
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
r0r241782
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
r0r241782
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
r241781r241782
33<!--
44    UNDUMPED / TO BE REDUMPED LIST
55
6    2IN1 (COSMIC SPACEHEAD FANTASTIC DIZZY) PAL
76    ADVANCED DAISENRYAKU            JAPAN       we have Rev A, Rev 0 needed (does it exist?)
87    CAPTAIN PLANET              ASIA
98    DAVIS CUP TENNIS                JAPAN
r241781r241782
108107<!-- Fully documented: confirmed dumps + PCB pics -->
109108
110109
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
111129<!-- Both Euro and USA confirmed -->
112130   <software name="688atsub">
113131      <description>688 Attack Sub (Euro, USA)</description>
trunk/hash/mikrosha.xml
r241781r241782
1616   </software>
1717
1818   <software name="alambush">
19      <description>ALAMBUSH</description>
20      <year>19??</year>
21      <publisher>&lt;unknown&gt;</publisher>
19      <description>Alien Ambush</description>
20      <year>1990</year>
21      <publisher>Sedov E. A.</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" />
r241781r241782
2727   </software>
2828
2929   <software name="ball">
30      <description>BALL</description>
31      <year>19??</year>
32      <publisher>&lt;unknown&gt;</publisher>
30      <description>The Ball Game</description>
31      <year>1990</year>
32      <publisher>Sandy Pat Corp.</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" />
r241781r241782
3838   </software>
3939
4040   <software name="barmen">
41      <description>BARMEN</description>
42      <year>19??</year>
43      <publisher>&lt;unknown&gt;</publisher>
41      <description>Barmen (v1.5)</description>
42      <year>1988</year>
43      <publisher>ALG</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" />
r241781r241782
4949   </software>
5050
5151   <software name="bomber">
52      <description>BOMBER</description>
53      <year>19??</year>
54      <publisher>&lt;unknown&gt;</publisher>
52      <description>Bomber Aircraft</description>
53      <year>1990</year>
54      <publisher>Jup Corp</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" />
r241781r241782
5959      </part>
6060   </software>
6161
62   <software name="boulder">
63      <description>BOULDER</description>
64      <year>19??</year>
65      <publisher>&lt;unknown&gt;</publisher>
62   <software name="bdash">
63      <description>Boulder Dash (v2)</description>
64      <year>1989</year>
65      <publisher>Clever Hands Software</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" />
r241781r241782
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">
r241781r241782
8181      </part>
8282   </software>
8383
84   <software name="circus">
85      <description>CIRCUS</description>
86      <year>19??</year>
87      <publisher>&lt;unknown&gt;</publisher>
84   <software name="cirk">
85      <description>Cirk (v1.2)</description>
86      <year>1986</year>
87      <publisher>Popov S.N.</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" />
r241781r241782
9393   </software>
9494
9595   <software name="crossfir">
96      <description>CROSSFIR</description>
97      <year>19??</year>
98      <publisher>&lt;unknown&gt;</publisher>
96      <description>Cross Fire (v004)</description>
97      <year>1988</year>
98      <publisher>Zyryanov A.V.</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" />
r241781r241782
566566   </software>
567567
568568   <software name="xonmicr">
569      <description>XONMICR</description>
569      <description>Xonix (Micron)</description>
570570      <year>19??</year>
571      <publisher>&lt;unknown&gt;</publisher>
571      <publisher>Micron</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" />
r241781r241782
576576      </part>
577577   </software>
578578
579   <software name="zstation">
580      <description>ZSTATION</description>
581      <year>19??</year>
582      <publisher>&lt;unknown&gt;</publisher>
579   <software name="zstanciy">
580      <description>Z-Stanciya</description>
581      <year>1987</year>
582      <publisher>SNP</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" />
r241781r241782
591591<!-- System -->
592592
593593   <software name="basic">
594      <description>BASIC</description>
594      <description>Mikrosha BASIC</description>
595595      <year>19??</year>
596596      <publisher>&lt;unknown&gt;</publisher>
597597      <part name="cass" interface="mikrosha_cass">
r241781r241782
602602   </software>
603603
604604   <software name="disasm">
605      <description>DISASM</description>
605      <description>Disassembler Mikron</description>
606606      <year>19??</year>
607607      <publisher>&lt;unknown&gt;</publisher>
608608      <part name="cass" interface="mikrosha_cass">
trunk/hash/msx1_cart.xml
r241781r241782
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
r241781r241782
44<softwarelist name="orao" description="PEL Varazdin Orao cassettes">
55
66   <software name="6502step">
7      <description>6502Step</description>
7      <description>6502 Step (v1.0)</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="0x0000" />
12            <rom name="6502step.tap" size="4099" crc="18b959be" sha1="9ded3c41aa3d56bc057a8db4ce5d562695723e37" offset="0" />
1313         </dataarea>
1414      </part>
1515   </software>
r241781r241782
1717   <software name="ajnc">
1818      <description>Ajnc</description>
1919      <year>19??</year>
20      <publisher>&lt;unknown&gt;</publisher>
20      <publisher>PEL Soft</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="0x0000" />
23            <rom name="ajnc.tap" size="17806" crc="de341625" sha1="ea157993ea1c70e5f22cb4cf0e8cb1c7acd034da" offset="0" />
2424         </dataarea>
2525      </part>
2626   </software>
2727
2828   <software name="avion">
2929      <description>Avion</description>
30      <year>19??</year>
31      <publisher>&lt;unknown&gt;</publisher>
30      <year>1986</year>
31      <publisher>Emil Herceg - Igor Kos</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="0x0000" />
34            <rom name="avion.tap" size="6798" crc="eb4143a9" sha1="c350137a5c6084d8990b9b0856329f5b94aa338f" offset="0" />
3535         </dataarea>
3636      </part>
3737   </software>
3838
3939   <software name="bdash">
40      <description>BoulderDash</description>
40      <description>Boulder Dash</description>
4141      <year>19??</year>
42      <publisher>&lt;unknown&gt;</publisher>
42      <publisher>Nenad Mihailovic - Mihajlo Dapjas</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="0x0000" />
45            <rom name="boulderdash.tap" size="17998" crc="11ab14ed" sha1="4a7541bdcba4f03538c3659ad9c1bb36b6d34263" offset="0" />
4646         </dataarea>
4747      </part>
4848   </software>
r241781r241782
5050   <software name="breakout">
5151      <description>Breakout</description>
5252      <year>19??</year>
53      <publisher>&lt;unknown&gt;</publisher>
53      <publisher>Stan Rimox Software</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="0x0000" />
56            <rom name="breakout.tap" size="18992" crc="7737b9af" sha1="9d9a9e5b06ede99cb7326bab980d7f5a85ba0723" offset="0" />
5757         </dataarea>
5858      </part>
5959   </software>
r241781r241782
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="0x0000" />
67            <rom name="brojke.tap" size="4035" crc="f46a50c8" sha1="edf486d95df1935effa01f77a36d36c0a24829f8" offset="0" />
6868         </dataarea>
6969      </part>
7070   </software>
7171
7272   <software name="crtanje">
7373      <description>Crtanje</description>
74      <year>19??</year>
75      <publisher>&lt;unknown&gt;</publisher>
74      <year>1987</year>
75      <publisher>Suzy Soft</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="0x0000" />
78            <rom name="crtanje.tap" size="4698" crc="30ef56cb" sha1="7a77d75da0a0b34639b987e0d5cf14d7859d80c6" offset="0" />
7979         </dataarea>
8080      </part>
8181   </software>
8282
8383   <software name="crvic">
8484      <description>Crvic</description>
85      <year>19??</year>
86      <publisher>&lt;unknown&gt;</publisher>
85      <year>1986</year>
86      <publisher>PEL Soft</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="0x0000" />
89            <rom name="crvic.tap" size="14050" crc="6feb9576" sha1="f9f31884a3899731350a2931818b5945afba0bae" offset="0" />
9090         </dataarea>
9191      </part>
9292   </software>
9393
94   <software name="demo1">
95      <description>Demo 1</description>
96      <year>19??</year>
97      <publisher>&lt;unknown&gt;</publisher>
94   <software name="microrac">
95      <description>Mikroracunalo Orao</description>
96      <year>1988</year>
97      <publisher>PEL Varazdin</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="0x0000" />
100            <rom name="demo1.tap" size="31432" crc="9e7ba4ec" sha1="3a0c5c8412383a5cd676394308637a8a54238475" offset="0" />
101101         </dataarea>
102102      </part>
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">
103      <part name="cass2" interface="orao_cass">
110104         <dataarea name="cass" size="18450">
111            <rom name="demo2.tap" size="18450" crc="8bad5b68" sha1="155a06ebfc964642d902b47b49ee7a3ccf2cef0a" offset="0x0000" />
105            <rom name="demo2.tap" size="18450" crc="8bad5b68" sha1="155a06ebfc964642d902b47b49ee7a3ccf2cef0a" offset="0" />
112106         </dataarea>
113107      </part>
114108   </software>
115109
116110   <software name="demograf">
117      <description>DemoGrafika</description>
118      <year>19??</year>
119      <publisher>&lt;unknown&gt;</publisher>
111      <description>Demo Grafika</description>
112      <year>1985</year>
113      <publisher>KMI Borovo</publisher>
120114      <part name="cass1" interface="orao_cass">
121115         <dataarea name="cass" size="22996">
122            <rom name="demografika.tap" size="22996" crc="1a3f6740" sha1="aeca6893a530b27a0428f33d40fb10c683f450fb" offset="0x0000" />
116            <rom name="demografika.tap" size="22996" crc="1a3f6740" sha1="aeca6893a530b27a0428f33d40fb10c683f450fb" offset="0" />
123117         </dataarea>
124118      </part>
125119   </software>
126120
127121   <software name="eagle">
128122      <description>Eagle</description>
129      <year>19??</year>
130      <publisher>&lt;unknown&gt;</publisher>
123      <year>1986</year>
124      <publisher>KMI Borovo</publisher>
131125      <part name="cass1" interface="orao_cass">
132126         <dataarea name="cass" size="9132">
133            <rom name="eagle.tap" size="9132" crc="b3a8886c" sha1="80409c7ca7fe3fa70e4133a96f4f04c9806d6c5d" offset="0x0000" />
127            <rom name="eagle.tap" size="9132" crc="b3a8886c" sha1="80409c7ca7fe3fa70e4133a96f4f04c9806d6c5d" offset="0" />
134128         </dataarea>
135129      </part>
136130   </software>
r241781r241782
138132   <software name="jugador">
139133      <description>Jugador</description>
140134      <year>19??</year>
141      <publisher>&lt;unknown&gt;</publisher>
135      <publisher>Mario Vuletic</publisher>
142136      <part name="cass1" interface="orao_cass">
143137         <dataarea name="cass" size="4932">
144            <rom name="jugador.tap" size="4932" crc="a42f9cdf" sha1="adbf785606b093925eae1c42d1bb6611372c8f89" offset="0x0000" />
138            <rom name="jugador.tap" size="4932" crc="a42f9cdf" sha1="adbf785606b093925eae1c42d1bb6611372c8f89" offset="0" />
145139         </dataarea>
146140      </part>
147141   </software>
148142
149143   <software name="jumpjack">
150      <description>JumpingJack</description>
151      <year>19??</year>
152      <publisher>&lt;unknown&gt;</publisher>
144      <description>Jumping Jack</description>
145      <year>1986</year>
146      <publisher>KMI Borovo</publisher>
153147      <part name="cass1" interface="orao_cass">
154148         <dataarea name="cass" size="9133">
155            <rom name="jumpingjack.tap" size="9133" crc="2bb70986" sha1="269820989ab16c73594abeb6935736c08e07b5f3" offset="0x0000" />
149            <rom name="jumpingjack.tap" size="9133" crc="2bb70986" sha1="269820989ab16c73594abeb6935736c08e07b5f3" offset="0" />
156150         </dataarea>
157151      </part>
158152   </software>
159153
160154   <software name="karate">
161      <description>Karate</description>
155      <description>Internacional Karate</description>
162156      <year>19??</year>
163      <publisher>&lt;unknown&gt;</publisher>
157      <publisher>KMI Borovo</publisher>
164158      <part name="cass1" interface="orao_cass">
165159         <dataarea name="cass" size="25106">
166            <rom name="karate.tap" size="25106" crc="021024a0" sha1="90620ceafe258c7bbec195670b629426bf32b82c" offset="0x0000" />
160            <rom name="karate.tap" size="25106" crc="021024a0" sha1="90620ceafe258c7bbec195670b629426bf32b82c" offset="0" />
167161         </dataarea>
168162      </part>
169163   </software>
170164
171165   <software name="kuki">
172166      <description>Kuki</description>
173      <year>19??</year>
174      <publisher>&lt;unknown&gt;</publisher>
167      <year>1986</year>
168      <publisher>KMI Borovo</publisher>
175169      <part name="cass1" interface="orao_cass">
176170         <dataarea name="cass" size="9998">
177            <rom name="kuki.tap" size="9998" crc="90cddb34" sha1="211de24d98205f1b8dde0057f5294a7fb569483c" offset="0x0000" />
171            <rom name="kuki.tap" size="9998" crc="90cddb34" sha1="211de24d98205f1b8dde0057f5294a7fb569483c" offset="0" />
178172         </dataarea>
179173      </part>
180174   </software>
181175
182176   <software name="kvadrat">
183      <description>Kvadrat</description>
184      <year>19??</year>
185      <publisher>&lt;unknown&gt;</publisher>
177      <description>Magicni Kvadrat</description>
178      <year>1985</year>
179      <publisher>Mario Ranogajec - Boris Korpar</publisher>
186180      <part name="cass1" interface="orao_cass">
187181         <dataarea name="cass" size="17078">
188            <rom name="kvadrat.tap" size="17078" crc="9ee09595" sha1="9ac6e8046765b6656f27046955eeea3672c4509c" offset="0x0000" />
182            <rom name="kvadrat.tap" size="17078" crc="9ee09595" sha1="9ac6e8046765b6656f27046955eeea3672c4509c" offset="0" />
189183         </dataarea>
190184      </part>
191185   </software>
192186
193187   <software name="labirint">
194188      <description>Labirint</description>
195      <year>19??</year>
196      <publisher>&lt;unknown&gt;</publisher>
189      <year>1985</year>
190      <publisher>Bibi Soft</publisher>
197191      <part name="cass1" interface="orao_cass">
198192         <dataarea name="cass" size="5698">
199            <rom name="labirint.tap" size="5698" crc="864f7643" sha1="6201f6dfa20178ca782ac1cde73364d0c5f5ce64" offset="0x0000" />
193            <rom name="labirint.tap" size="5698" crc="864f7643" sha1="6201f6dfa20178ca782ac1cde73364d0c5f5ce64" offset="0" />
200194         </dataarea>
201195      </part>
202196   </software>
203197
204198   <software name="labirinm">
205      <description>LabirintM</description>
199      <description>Labirint M</description>
206200      <year>19??</year>
207201      <publisher>&lt;unknown&gt;</publisher>
208202      <part name="cass1" interface="orao_cass">
209203         <dataarea name="cass" size="15237">
210            <rom name="labirintm.tap" size="15237" crc="9e0790cf" sha1="89706cf82798956410facce1613c54a4c898979f" offset="0x0000" />
204            <rom name="labirintm.tap" size="15237" crc="9e0790cf" sha1="89706cf82798956410facce1613c54a4c898979f" offset="0" />
211205         </dataarea>
212206      </part>
213207   </software>
214208
215209   <software name="mminer">
216      <description>ManicMiner</description>
210      <description>Manic Miner</description>
217211      <year>19??</year>
218      <publisher>&lt;unknown&gt;</publisher>
212      <publisher>Nenad Mihailovic</publisher>
219213      <part name="cass1" interface="orao_cass">
220214         <dataarea name="cass" size="18001">
221            <rom name="manicminer.tap" size="18001" crc="27380ee9" sha1="b37abeb1df684a1ae3b5bd19795ac90e69853176" offset="0x0000" />
215            <rom name="manicminer.tap" size="18001" crc="27380ee9" sha1="b37abeb1df684a1ae3b5bd19795ac90e69853176" offset="0" />
222216         </dataarea>
223217      </part>
224218   </software>
225219
226220   <software name="matchfis">
227      <description>MatchFishing</description>
228      <year>19??</year>
229      <publisher>&lt;unknown&gt;</publisher>
221      <description>Match Fishing</description>
222      <year>1986</year>
223      <publisher>KMI Borovo</publisher>
230224      <part name="cass1" interface="orao_cass">
231225         <dataarea name="cass" size="23228">
232            <rom name="matchfishing.tap" size="23228" crc="fa01ad6c" sha1="88a3af7de00440910212aeb6f5360b32fc9062a1" offset="0x0000" />
226            <rom name="matchfishing.tap" size="23228" crc="fa01ad6c" sha1="88a3af7de00440910212aeb6f5360b32fc9062a1" offset="0" />
233227         </dataarea>
234228      </part>
235229   </software>
236230
237   <software name="memonona">
238      <description>MemoNoName</description>
231   <software name="memo">
232      <description>Memo</description>
239233      <year>19??</year>
240      <publisher>&lt;unknown&gt;</publisher>
234      <publisher>PEL Soft</publisher>
241235      <part name="cass1" interface="orao_cass">
242         <dataarea name="cass" size="10198">
243            <rom name="memononame.tap" size="10198" crc="1166e752" sha1="f17f7917ccf8399ef2231cc26be1e9056a3b0a86" offset="0x0000" />
236         <dataarea name="cass" size="16500">
237            <rom name="memopel.tap" size="16500" crc="128ffc0b" sha1="60daee51376dd59b5623a0072cd842ecd5db7257" offset="0" />
244238         </dataarea>
245239      </part>
246240   </software>
247241
248   <software name="memopel">
249      <description>Memo PEL</description>
242   <software name="memoa" cloneof="memo">
243      <description>Memo (No Loading Screen)</description>
250244      <year>19??</year>
251      <publisher>&lt;unknown&gt;</publisher>
245      <publisher>PEL Soft</publisher>
252246      <part name="cass1" interface="orao_cass">
253         <dataarea name="cass" size="16500">
254            <rom name="memopel.tap" size="16500" crc="128ffc0b" sha1="60daee51376dd59b5623a0072cd842ecd5db7257" offset="0x0000" />
247         <dataarea name="cass" size="10198">
248            <rom name="memononame.tap" size="10198" crc="1166e752" sha1="f17f7917ccf8399ef2231cc26be1e9056a3b0a86" offset="0" />
255249         </dataarea>
256250      </part>
257251   </software>
258252
259253   <software name="nevid">
260254      <description>Nevidljivi</description>
261      <year>19??</year>
262      <publisher>&lt;unknown&gt;</publisher>
255      <year>1987</year>
256      <publisher>Suzy Soft</publisher>
263257      <part name="cass1" interface="orao_cass">
264258         <dataarea name="cass" size="4198">
265            <rom name="nevidljivi.tap" size="4198" crc="513373fb" sha1="56bd74d57bafe8eccaeba5ac7d5ac6bae3412403" offset="0x0000" />
259            <rom name="nevidljivi.tap" size="4198" crc="513373fb" sha1="56bd74d57bafe8eccaeba5ac7d5ac6bae3412403" offset="0" />
266260         </dataarea>
267261      </part>
268262   </software>
r241781r241782
270264   <software name="obelix">
271265      <description>Obelix</description>
272266      <year>19??</year>
273      <publisher>&lt;unknown&gt;</publisher>
267      <publisher>KMI Borovo</publisher>
274268      <part name="cass1" interface="orao_cass">
275269         <dataarea name="cass" size="8639">
276            <rom name="obelix.tap" size="8639" crc="f79019d1" sha1="0de7854d67905fcc476838fba064924c27bbef4b" offset="0x0000" />
270            <rom name="obelix.tap" size="8639" crc="f79019d1" sha1="0de7854d67905fcc476838fba064924c27bbef4b" offset="0" />
277271         </dataarea>
278272      </part>
279273   </software>
280274
281275   <software name="othello">
282276      <description>Othello</description>
283      <year>19??</year>
284      <publisher>&lt;unknown&gt;</publisher>
277      <year>1985</year>
278      <publisher>Sasa Ivkovic</publisher>
285279      <part name="cass1" interface="orao_cass">
286280         <dataarea name="cass" size="18828">
287            <rom name="othello.tap" size="18828" crc="d488a8e3" sha1="a35d5b56882b07c10f98b011d6aa0006a1578452" offset="0x0000" />
281            <rom name="othello.tap" size="18828" crc="d488a8e3" sha1="a35d5b56882b07c10f98b011d6aa0006a1578452" offset="0" />
288282         </dataarea>
289283      </part>
290284   </software>
291285
292286   <software name="pacman">
293      <description>PacMan</description>
287      <description>Pac-Man</description>
294288      <year>19??</year>
295      <publisher>&lt;unknown&gt;</publisher>
289      <publisher>Sasa Ivkovic</publisher>
296290      <part name="cass1" interface="orao_cass">
297291         <dataarea name="cass" size="30114">
298            <rom name="pacman.tap" size="30114" crc="3a6479ea" sha1="b1cbde718d491b4324d9ed13e70e7df0c108f398" offset="0x0000" />
292            <rom name="pacman.tap" size="30114" crc="3a6479ea" sha1="b1cbde718d491b4324d9ed13e70e7df0c108f398" offset="0" />
299293         </dataarea>
300294      </part>
301295   </software>
302296
303297   <software name="pcelicam">
304      <description>PcelicaMaja</description>
298      <description>Pcelica Maja</description>
305299      <year>19??</year>
306300      <publisher>&lt;unknown&gt;</publisher>
307301      <part name="cass1" interface="orao_cass">
308302         <dataarea name="cass" size="16998">
309            <rom name="pcelicamaja.tap" size="16998" crc="e1add5c2" sha1="fcaca49c82855c5fe493bb4741c7e855b1bd1402" offset="0x0000" />
303            <rom name="pcelicamaja.tap" size="16998" crc="e1add5c2" sha1="fcaca49c82855c5fe493bb4741c7e855b1bd1402" offset="0" />
310304         </dataarea>
311305      </part>
312306   </software>
313307
314308   <software name="podsjet">
315309      <description>Podsjetnik</description>
316      <year>19??</year>
317      <publisher>&lt;unknown&gt;</publisher>
310      <year>1987</year>
311      <publisher>Suzy Soft</publisher>
318312      <part name="cass1" interface="orao_cass">
319313         <dataarea name="cass" size="10515">
320            <rom name="podsjetnik.tap" size="10515" crc="ea6c2bb4" sha1="fef66d98d23b1b2f675e3d0ed45ccb53829250da" offset="0x0000" />
314            <rom name="podsjetnik.tap" size="10515" crc="ea6c2bb4" sha1="fef66d98d23b1b2f675e3d0ed45ccb53829250da" offset="0" />
321315         </dataarea>
322316      </part>
323317   </software>
324318
325319   <software name="pomorska">
326      <description>PomorskaBitka</description>
320      <description>Pomorska Bitka</description>
327321      <year>19??</year>
328322      <publisher>&lt;unknown&gt;</publisher>
329323      <part name="cass1" interface="orao_cass">
330324         <dataarea name="cass" size="9608">
331            <rom name="pomorskabitka.tap" size="9608" crc="8c5dda11" sha1="d25fbedf844ce43ee2eb0cb32546c3abcc9111c0" offset="0x0000" />
325            <rom name="pomorskabitka.tap" size="9608" crc="8c5dda11" sha1="d25fbedf844ce43ee2eb0cb32546c3abcc9111c0" offset="0" />
332326         </dataarea>
333327      </part>
334328   </software>
r241781r241782
339333      <publisher>&lt;unknown&gt;</publisher>
340334      <part name="cass1" interface="orao_cass">
341335         <dataarea name="cass" size="3179">
342            <rom name="porno.tap" size="3179" crc="212bb659" sha1="ab422b4548d279a6961e77499f33b602eaacdd0b" offset="0x0000" />
336            <rom name="porno.tap" size="3179" crc="212bb659" sha1="ab422b4548d279a6961e77499f33b602eaacdd0b" offset="0" />
343337         </dataarea>
344338      </part>
345339   </software>
r241781r241782
350344      <publisher>&lt;unknown&gt;</publisher>
351345      <part name="cass1" interface="orao_cass">
352346         <dataarea name="cass" size="5950">
353            <rom name="reversi.tap" size="5950" crc="3964ff16" sha1="2a735bc3ab917c8b2f16d012318aed9f8aa62a52" offset="0x0000" />
347            <rom name="reversi.tap" size="5950" crc="3964ff16" sha1="2a735bc3ab917c8b2f16d012318aed9f8aa62a52" offset="0" />
354348         </dataarea>
355349      </part>
356350   </software>
357351
358   <software name="sah">
359      <description>Sah</description>
360      <year>19??</year>
361      <publisher>&lt;unknown&gt;</publisher>
352   <software name="figchess">
353      <description>Figure Chess</description>
354      <year>1986</year>
355      <publisher>KMI Borovo</publisher>
362356      <part name="cass1" interface="orao_cass">
363357         <dataarea name="cass" size="19745">
364            <rom name="sah.tap" size="19745" crc="02513ff4" sha1="29586a75f9a6ef7b9bb0f370b5eb7f9a00dee37a" offset="0x0000" />
358            <rom name="sah.tap" size="19745" crc="02513ff4" sha1="29586a75f9a6ef7b9bb0f370b5eb7f9a00dee37a" offset="0" />
365359         </dataarea>
366360      </part>
367361   </software>
368362
369363   <software name="sintetiz">
370      <description>SintetizatorZvuka</description>
371      <year>19??</year>
372      <publisher>&lt;unknown&gt;</publisher>
364      <description>Sintetizator Zvuka</description>
365      <year>1987</year>
366      <publisher>Suzy Soft</publisher>
373367      <part name="cass1" interface="orao_cass">
374368         <dataarea name="cass" size="3422">
375            <rom name="sintetizatorzvuka.tap" size="3422" crc="26da3240" sha1="96b4ec2a5b521e27e4fcc91081126aa274ab9230" offset="0x0000" />
369            <rom name="sintetizatorzvuka.tap" size="3422" crc="26da3240" sha1="96b4ec2a5b521e27e4fcc91081126aa274ab9230" offset="0" />
376370         </dataarea>
377371      </part>
378372   </software>
r241781r241782
380374   <software name="sokoban">
381375      <description>Sokoban</description>
382376      <year>19??</year>
383      <publisher>&lt;unknown&gt;</publisher>
377      <publisher>J.P.</publisher>
384378      <part name="cass1" interface="orao_cass">
385379         <dataarea name="cass" size="13829">
386            <rom name="sokoban.tap" size="13829" crc="ffcf7e0c" sha1="12c435c68b2203b68f29c2450740b958e16e0405" offset="0x0000" />
380            <rom name="sokoban.tap" size="13829" crc="ffcf7e0c" sha1="12c435c68b2203b68f29c2450740b958e16e0405" offset="0" />
387381         </dataarea>
388382      </part>
389383   </software>
390384
391385   <software name="spaceinv">
392      <description>SpaceInvaders</description>
386      <description>Space Invaders</description>
393387      <year>19??</year>
394      <publisher>&lt;unknown&gt;</publisher>
388      <publisher>PEL Soft</publisher>
395389      <part name="cass1" interface="orao_cass">
396390         <dataarea name="cass" size="21150">
397            <rom name="spaceinvaders.tap" size="21150" crc="31230e8b" sha1="8021e562130d2b11eb916f3623e65794d93b2a93" offset="0x0000" />
391            <rom name="spaceinvaders.tap" size="21150" crc="31230e8b" sha1="8021e562130d2b11eb916f3623e65794d93b2a93" offset="0" />
398392         </dataarea>
399393      </part>
400394   </software>
401395
402396   <software name="stripajn">
403      <description>StripAjnc</description>
404      <year>19??</year>
405      <publisher>&lt;unknown&gt;</publisher>
397      <description>Strip Ajnc</description>
398      <year>1985</year>
399      <publisher>Z. Bistrovic</publisher>
406400      <part name="cass1" interface="orao_cass">
407401         <dataarea name="cass" size="8750">
408            <rom name="stripajnc.tap" size="8750" crc="68032c11" sha1="3a49a90b7915491eecdec149a5cfb2f90e1a03da" offset="0x0000" />
402            <rom name="stripajnc.tap" size="8750" crc="68032c11" sha1="3a49a90b7915491eecdec149a5cfb2f90e1a03da" offset="0" />
409403         </dataarea>
410404      </part>
411405   </software>
412406
413407   <software name="stripgam">
414      <description>StripGameAinc</description>
408      <description>Strip Game Ainc</description>
415409      <year>19??</year>
416      <publisher>&lt;unknown&gt;</publisher>
410      <publisher>KMI Borovo</publisher>
417411      <part name="cass1" interface="orao_cass">
418412         <dataarea name="cass" size="31615">
419            <rom name="stripgameainc.tap" size="31615" crc="03e38de8" sha1="c5df30d030f44f19182c86fcb6448116f7f92be1" offset="0x0000" />
413            <rom name="stripgameainc.tap" size="31615" crc="03e38de8" sha1="c5df30d030f44f19182c86fcb6448116f7f92be1" offset="0" />
420414         </dataarea>
421415      </part>
422416   </software>
r241781r241782
424418   <software name="tornjev">
425419      <description>Tornjevi</description>
426420      <year>19??</year>
427      <publisher>&lt;unknown&gt;</publisher>
421      <publisher>Tom</publisher>
428422      <part name="cass1" interface="orao_cass">
429423         <dataarea name="cass" size="3966">
430            <rom name="tornjevi.tap" size="3966" crc="38d905d7" sha1="2b21e99b9e847a5bde4acadc03b62ca2e628c93d" offset="0x0000" />
424            <rom name="tornjevi.tap" size="3966" crc="38d905d7" sha1="2b21e99b9e847a5bde4acadc03b62ca2e628c93d" offset="0" />
431425         </dataarea>
432426      </part>
433427   </software>
434428
435429   <software name="ukletidv">
436      <description>UkletiDvorac</description>
430      <description>Ukleti Dvorac</description>
437431      <year>19??</year>
438432      <publisher>&lt;unknown&gt;</publisher>
439433      <part name="cass1" interface="orao_cass">
440434         <dataarea name="cass" size="12398">
441            <rom name="ukletidvorac.tap" size="12398" crc="850123a7" sha1="d867f072832e8c6dd87fe4bbda14cbb720e9ca25" offset="0x0000" />
435            <rom name="ukletidvorac.tap" size="12398" crc="850123a7" sha1="d867f072832e8c6dd87fe4bbda14cbb720e9ca25" offset="0" />
442436         </dataarea>
443437      </part>
444438   </software>
445439
446440   <software name="zid">
447441      <description>Zid</description>
448      <year>19??</year>
449      <publisher>&lt;unknown&gt;</publisher>
442      <year>1985</year>
443      <publisher>PEL Zabavni Programi</publisher>
450444      <part name="cass1" interface="orao_cass">
451445         <dataarea name="cass" size="11345">
452            <rom name="zid.tap" size="11345" crc="c7524e54" sha1="4ee43911a7c49899d2ef7e89308ab3213d1cedac" offset="0x0000" />
446            <rom name="zid.tap" size="11345" crc="c7524e54" sha1="4ee43911a7c49899d2ef7e89308ab3213d1cedac" offset="0" />
453447         </dataarea>
454448      </part>
455449   </software>
456450
457451   <software name="znakovi">
458452      <description>Znakovi</description>
459      <year>19??</year>
460      <publisher>&lt;unknown&gt;</publisher>
453      <year>1987</year>
454      <publisher>Suzy Soft</publisher>
461455      <part name="cass1" interface="orao_cass">
462456         <dataarea name="cass" size="4618">
463            <rom name="znakovi.tap" size="4618" crc="a834c22e" sha1="49340c62aa1f1109f610e95878eb75de24916928" offset="0x0000" />
457            <rom name="znakovi.tap" size="4618" crc="a834c22e" sha1="49340c62aa1f1109f610e95878eb75de24916928" offset="0" />
464458         </dataarea>
465459      </part>
466460   </software>
trunk/hash/pecom_cass.xml
r241781r241782
66   <software name="adresar">
77      <description>Adresar</description>
88      <year>19??</year>
9      <publisher>&lt;unknown&gt;</publisher>
9      <publisher>Ei Racunari</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="0x0000" />
12            <rom name="adresar.wav" size="6382680" crc="e0032321" sha1="f6c9d19941175561c942c803aedc87d5c2dd1903" offset="0" />
1313         </dataarea>
1414      </part>
1515   </software>
1616
1717   <software name="bioritam">
1818      <description>Bioritam</description>
19      <year>19??</year>
20      <publisher>&lt;unknown&gt;</publisher>
19      <year>1985</year>
20      <publisher>Ei Racunari</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="0x0000" />
23            <rom name="bioritam.wav" size="5094680" crc="9fead1c7" sha1="7ed80372fdd57cc68997acc3a7eb1e1628236dfe" offset="0" />
2424         </dataarea>
2525      </part>
2626   </software>
2727
2828   <software name="lavirint">
2929      <description>Lavirint</description>
30      <year>19??</year>
31      <publisher>&lt;unknown&gt;</publisher>
30      <year>1987</year>
31      <publisher>Ei Racunari</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="0x0000" />
34            <rom name="lavirint.wav" size="13222360" crc="9f0aa1b4" sha1="854e9bbe45e42e09c7e57b561b311a98ff078661" offset="0" />
3535         </dataarea>
3636      </part>
3737   </software>
3838
3939   <software name="lopovbnk">
40      <description>LopovIBankar</description>
41      <year>19??</year>
42      <publisher>&lt;unknown&gt;</publisher>
40      <description>Lopov i Bankar</description>
41      <year>1985</year>
42      <publisher>Ei Racunari</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="0x0000" />
45            <rom name="lopov i bankar.wav" size="7996248" crc="e02b73bc" sha1="6b817af8638a94aa7f7c395467237adf3e226d12" offset="0" />
4646         </dataarea>
4747      </part>
4848   </software>
4949
5050   <software name="osvajaci">
51      <description>OsvajaciSvemira</description>
52      <year>19??</year>
53      <publisher>&lt;unknown&gt;</publisher>
51      <description>Osvajaci Svemira</description>
52      <year>1985</year>
53      <publisher>Ei Racunari</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="0x0000" />
56            <rom name="osvajaci svemira.wav" size="19538520" crc="a9000525" sha1="6758cac948d3fd1400e4f90dd9c1d281dfd42d0e" offset="0" />
5757         </dataarea>
5858      </part>
5959   </software>
6060
6161   <software name="pecomrat">
62      <description>PecomRatuje</description>
63      <year>19??</year>
64      <publisher>&lt;unknown&gt;</publisher>
62      <description>Pecom Ratuje</description>
63      <year>1985</year>
64      <publisher>Ei Racunari</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="0x0000" />
67            <rom name="pecom ratuje.wav" size="7595800" crc="9837c657" sha1="d481df682df097de3e9b87f28d0be47939e87098" offset="0" />
6868         </dataarea>
6969      </part>
7070   </software>
7171
7272   <software name="kompozit">
73      <description>SamSvojKompozitor</description>
74      <year>19??</year>
75      <publisher>&lt;unknown&gt;</publisher>
73      <description>Sam Svoj Kompozitor</description>
74      <year>1987</year>
75      <publisher>Ei Racunari</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="0x0000" />
78            <rom name="sam svoj kompozitor.wav" size="3567832" crc="16a53a50" sha1="6ae2a28f0dfb8c6909240b28051c70149257847b" offset="0" />
7979         </dataarea>
8080      </part>
8181   </software>
8282
8383   <software name="sljive">
8484      <description>Sljive</description>
85      <year>19??</year>
86      <publisher>&lt;unknown&gt;</publisher>
85      <year>1986</year>
86      <publisher>Ei Racunari</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="0x0000" />
89            <rom name="shljive.wav" size="7898072" crc="1c5d5a07" sha1="d63a217571ee0e5216708380844f028875533c4b" offset="0" />
9090         </dataarea>
9191      </part>
9292   </software>
9393
9494   <software name="suviajnc">
95      <description>SuviAjnc</description>
96      <year>19??</year>
97      <publisher>&lt;unknown&gt;</publisher>
95      <description>Suvi Ajnc</description>
96      <year>1986</year>
97      <publisher>Ei Racunari</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="0x0000" />
100            <rom name="suvi ajnc.wav" size="11266136" crc="c922dc59" sha1="8679f34599d6929ce969d3ff16c007358924bd80" offset="0" />
101101         </dataarea>
102102      </part>
103103   </software>
104104
105105   <software name="trkakonj">
106      <description>TrkaKonja</description>
106      <description>Trka Konja</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="0x0000" />
111            <rom name="trka konja.wav" size="6658904" crc="f388087b" sha1="5dfc064b154a06409e2f57832318097756384ba3" offset="0" />
112112         </dataarea>
113113      </part>
114114   </software>
trunk/hash/pokemini.xml
r241781r241782
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">
104115      <description>Pok&#233;mon Zany Cards (Fra)</description>
105116      <year>2001</year>
106117      <publisher>Nintendo</publisher>
r241781r241782
133144      </part>
134145   </software>
135146
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
136158   <software name="ppartyu" cloneof="pparty" supported="partial">
137      <description>Pok&#233;mon Party Mini (USA)</description>
159      <description>Pok&#233;mon Party Mini (Aus, USA)</description>
138160      <year>2001</year>
139161      <publisher>Nintendo</publisher>
140162      <part name="cart" interface="pokemini_cart">
r241781r241782
145167   </software>
146168
147169   <software name="ppinb">
148      <description>Pok&#233;mon Pinball Mini (USA)</description>
170      <description>Pok&#233;mon Pinball Mini (Aus, Euro, USA)</description>
149171      <year>2001</year>
150172      <publisher>Nintendo</publisher>
151173      <part name="cart" interface="pokemini_cart">
r241781r241782
288310   </software>
289311
290312   <software name="ppuzzlc" supported="partial">
291      <description>Pok&#233;mon Puzzle Collection (USA)</description>
313      <description>Pok&#233;mon Puzzle Collection (Aus, Euro, USA)</description>
292314      <year>2001</year>
293315      <publisher>Nintendo</publisher>
294316      <part name="cart" interface="pokemini_cart">
r241781r241782
298320      </part>
299321   </software>
300322
301   <software name="ppuzzlc2" supported="partial">
302      <description>Pok&#233;mon Puzzle Collection Vol. 2 (Jpn)</description>
303      <year>2002</year>
323   <software name="ppuzzlcp" cloneof="ppuzzlc" supported="partial">
324      <description>Pok&#233;mon Puzzle Collection (USA, GameCube Preview)</description>
325      <year>2001</year>
304326      <publisher>Nintendo</publisher>
305327      <part name="cart" interface="pokemini_cart">
306328         <dataarea name="rom" size="524288">
307            <rom name="pokemon puzzle collection vol. 2 (japan).bin" size="524288" crc="76a1bbf8" sha1="11775bbac2e985ef90d4192ed6322dd3b8352ac9" offset="000000" />
329            <rom name="pokemon puzzle collection (usa) (gamecube preview).bin" size="524288" crc="6f8ae656" sha1="048bb1d30d6ff21be14dd123c52a375e12611238" offset="000000" />
308330         </dataarea>
309331      </part>
310332   </software>
311333
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
312345   <software name="ppuzzlcfp" cloneof="ppuzzlc" supported="partial">
313346      <description>Pok&#233;mon Puzzle Collection (Fra, GameCube Preview)</description>
314347      <year>2001</year>
r241781r241782
364397      </part>
365398   </software>
366399
367   <software name="ppuzzlcp" cloneof="ppuzzlc" supported="partial">
368      <description>Pok&#233;mon Puzzle Collection (USA, GameCube Preview)</description>
369      <year>2001</year>
400   <software name="ppuzzlc2" supported="partial">
401      <description>Pok&#233;mon Puzzle Collection Vol. 2 (Jpn)</description>
402      <year>2002</year>
370403      <publisher>Nintendo</publisher>
371404      <part name="cart" interface="pokemini_cart">
372405         <dataarea name="rom" size="524288">
373            <rom name="pokemon puzzle collection (usa) (gamecube preview).bin" size="524288" crc="6f8ae656" sha1="048bb1d30d6ff21be14dd123c52a375e12611238" offset="000000" />
406            <rom name="pokemon puzzle collection vol. 2 (japan).bin" size="524288" crc="76a1bbf8" sha1="11775bbac2e985ef90d4192ed6322dd3b8352ac9" offset="000000" />
374407         </dataarea>
375408      </part>
376409   </software>
trunk/hash/psion.xml
r241781r241782
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
r0r241782
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
r0r241782
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
r241781r241782
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
3567335687   <software name="bullvsbl">
3567435688      <description>Bulls vs Blazers and the NBA Playoffs (Euro, Rev. A)</description>
3567535689      <year>1992</year>
trunk/hash/sol20_cass.xml
r0r241782
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
r0r241782
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
r241781r241782
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
r0r241782
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
r241781r241782
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
r241781r241782
44
55
66   <software name="basic80">
7      <description>BASIC80</description>
7      <description>Mikro/80 BASIC</description>
88      <year>19??</year>
99      <publisher>&lt;unknown&gt;</publisher>
1010      <part name="cass" interface="ut88_cass">
r241781r241782
1515   </software>
1616
1717   <software name="chscom">
18      <description>CH$COM</description>
18      <description>Changer (v1.1) (CP/M)</description>
1919      <year>19??</year>
2020      <publisher>&lt;unknown&gt;</publisher>
2121      <part name="cass" interface="ut88_cass">
r241781r241782
2626   </software>
2727
2828   <software name="cpm35">
29      <description>CPM35</description>
29      <description>CP/M (v2.2, 35K)</description>
3030      <year>19??</year>
3131      <publisher>&lt;unknown&gt;</publisher>
3232      <part name="cass" interface="ut88_cass">
r241781r241782
3636      </part>
3737   </software>
3838
39   <software name="cpm64">
40      <description>CPM64</description>
39   <software name="cpm256">
40      <description>CP/M (v2.2, 256K)</description>
4141      <year>19??</year>
4242      <publisher>&lt;unknown&gt;</publisher>
4343      <part name="cass" interface="ut88_cass">
r241781r241782
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
r241781r241782
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 / Smilio cartridges">
6<softwarelist name="vreader" description="VTech V.Reader / Storio cartridges">
77
88<!--
99
r241781r241782
4747
4848
4949-->
50</softwarelist>
No newline at end of file
50</softwarelist>
trunk/hash/vsmile_cd.xml
r241781r241782
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
272880-093027(SP)   | Los Increibles - Mision Increible
2829-
293080-093040(US)   | SpongeBob - Idea Sponge
303180-093044(GE)   | SpongeBob - Ein Schwamm voller Ideen
3280-093045(FR)   | Bob L'éponge - ????? (the crab consultant...)
3133-
323480-093060(US)   | The Amazing Spider-Man - Countdown to Doom
333580-093064(GE)   | Spiderman - Angriff der Superschurken
r241781r241782
3638-
373980-093080(US)   | Scooby-Doo! - Ancient Adventure
384080-093083(UK)   | Scooby-Doo! - Ancient Adventure
3980-093084(GE)   | Scooby-Doo! -
4180-093084(GE)   | Scooby-Doo! - ????? (no EAN found, but should have been released)
404280-093085(FR)   | Scooby-Doo! - Les Civilisations Perdues
414380-093087(SP)   | Scooby-Doo - Viaje al Pasdao
4244-
r241781r241782
525480-093140(US)   | Shrek The Third - The Search for Arthur
535580-093143(UK)   | Shrek The Third - The Search for Arthur
545680-093144(GE)   | Shrek Der Dritte - Die Suche nach Arthus
5780-093145(FR)   | Shrek Le Troisième: L'aventure D'arthur
555880-093147(SP)   | Shrek Tercero - Donde esta Arturo?
5659-
576080-093160(US)   | Bratz - The Secret Necklace
6180-093165(FR)   | Bratz
5862-
596380-093180(US)   | <Unknown>
6064-
r241781r241782
6569-
667080-093600(US)   | <Unknown>
677180-093604(GE)   | Multisports
7280-093605(FR)   | Defis Sports
6873
6974
7075-->
trunk/hash/x07_cass.xml
r0r241782
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
r241781r241782
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
r241781r241782
4949    - verify cursor keys
5050    - language DIP
5151    - mouse
52    - investigate unknown ROMs
5352    - MCS-48 PC:01DC - Unimplemented opcode = 75
5453        - 75 = ENT0 CLK : enable CLK (unscaled_clock/3) output on T0
5554        - halt Z2 when Z5 is reset, resume Z2 when Z5 executes ENT0 CLK instruction
r241781r241782
8180//-------------------------------------------------
8281
8382ROM_START( abc99 )
84   ROM_REGION( 0x800, I8035_Z2_TAG, 0 )
85   ROM_LOAD( "107268-17.z3", 0x000, 0x800, CRC(2f60cc35) SHA1(ebc6af9cd0a49a0d01698589370e628eebb6221c) )
83   ROM_DEFAULT_BIOS("107268")
84   ROM_SYSTEM_BIOS( 0, "107268", "107268-17" )
85   ROM_SYSTEM_BIOS( 1, "106819", "106819-09" )
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
8791   ROM_REGION( 0x800, I8035_Z5_TAG, 0 )
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) )
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) )
9394ROM_END
9495
9596
r241781r241782
108109//-------------------------------------------------
109110
110111static ADDRESS_MAP_START( abc99_z2_mem, AS_PROGRAM, 8, abc99_device )
111   AM_RANGE(0x0000, 0x07ff) AM_ROM AM_REGION(I8035_Z2_TAG, 0)
112   AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION(I8035_Z2_TAG, 0)
112113ADDRESS_MAP_END
113114
114115
r241781r241782
488489//  abc99_device - constructor
489490//-------------------------------------------------
490491
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)
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)
509510{
510511}
511512
trunk/src/emu/bus/bus.mak
r241781r241782
333333BUSOBJS += $(BUSOBJ)/dmv/k220.o
334334BUSOBJS += $(BUSOBJ)/dmv/k230.o
335335BUSOBJS += $(BUSOBJ)/dmv/k233.o
336BUSOBJS += $(BUSOBJ)/dmv/k803.o
336337BUSOBJS += $(BUSOBJ)/dmv/k806.o
337338BUSOBJS += $(BUSOBJ)/dmv/ram.o
338339endif
r241781r241782
510511BUSOBJS += $(BUSOBJ)/isa/sc499.o
511512BUSOBJS += $(BUSOBJ)/isa/aga.o
512513BUSOBJS += $(BUSOBJ)/isa/svga_trident.o
514BUSOBJS += $(BUSOBJ)/isa/num9rev.o
513515endif
514516
515517#-------------------------------------------------
r241781r241782
989991
990992#-------------------------------------------------
991993#
992#@src/emu/bus/pci/pci.h,BUSES += PCI
994#@src/emu/bus/lpci/pci.h,BUSES += LPCI
993995#-------------------------------------------------
994996
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
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
10051007endif
10061008
10071009#-------------------------------------------------
trunk/src/emu/bus/cpc/cpcexp.h
r241781r241782
7878
7979   // reset
8080   virtual void cpc_reset_w() { };
81   virtual WRITE_LINE_MEMBER( cursor_w ) { };
8182
8283   void set_rom_bank(UINT8 sel) { m_rom_sel = sel; }  // tell device the currently selected ROM
8384   UINT8 get_rom_bank() { return m_rom_sel; }
r241781r241782
108109   DECLARE_WRITE_LINE_MEMBER( romdis_w );
109110
110111   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
111113
112114protected:
113115   // device-level overrides
trunk/src/emu/bus/cpc/playcity.c
r241781r241782
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.
69*/
710
811#include "playcity.h"
r241781r241782
1821static MACHINE_CONFIG_FRAGMENT( cpc_playcity )
1922   MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_4MHz)
2023   MCFG_Z80CTC_ZC1_CB(WRITELINE(cpc_playcity_device,ctc_zc1_cb))
21   MCFG_Z80CTC_ZC2_CB(WRITELINE(cpc_playcity_device,ctc_zc2_cb))
24   MCFG_Z80CTC_ZC2_CB(DEVWRITELINE("ctc",z80ctc_device,trg3))
25   MCFG_Z80CTC_INTR_CB(WRITELINE(cpc_playcity_device,ctc_intr_cb))
2226
23   MCFG_SPEAKER_STANDARD_MONO("mono")
27   MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker")
2428   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)
25   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
29   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30)
2630   MCFG_SOUND_ADD("ymz_2",YMZ294,XTAL_4MHz)
27   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
31   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30)
2832
2933   // pass-through
3034   MCFG_DEVICE_ADD("exp", CPC_EXPANSION_SLOT, 0)
r241781r241782
8993WRITE8_MEMBER(cpc_playcity_device::ctc_w)
9094{
9195   m_ctc->write(space,offset,data);
92   update_ymz_clock();
96   if(offset == 0)
97      update_ymz_clock();
9398}
9499
95100WRITE8_MEMBER(cpc_playcity_device::ymz1_address_w)
trunk/src/emu/bus/cpc/playcity.h
r241781r241782
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, output to IRQ)
8   * F883 - Z80CTC channel 3 (input is channel 2 output)
99   * F884 - YMZ294 #1 (right) data
1010   * F888 - YMZ294 #2 (left) data
1111   * F984 - YMZ294 #1 (right) register select
r241781r241782
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_zc2_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_intr_cb) { m_slot->irq_w(state); }
4444
45   virtual WRITE_LINE_MEMBER(cursor_w) { m_ctc->trg1(state); }
46
4547protected:
4648   // device-level overrides
4749   virtual void device_start();
trunk/src/emu/bus/dmv/dmvbus.c
r241781r241782
199199      device_slot_interface(mconfig, *this),
200200      m_prog_read_cb(*this),
201201      m_prog_write_cb(*this),
202      m_out_int_cb(*this),
202203      m_out_irq_cb(*this),
203204      m_out_thold_cb(*this)
204205{
r241781r241782
224225   // resolve callbacks
225226   m_prog_read_cb.resolve_safe(0);
226227   m_prog_write_cb.resolve_safe();
228   m_out_int_cb.resolve_safe();
227229   m_out_irq_cb.resolve_safe();
228230   m_out_thold_cb.resolve_safe();
229231}
trunk/src/emu/bus/dmv/dmvbus.h
r241781r241782
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); }
6162   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); }
6263   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); }
6364
r241781r241782
8687   // internal state
8788   devcb_read8                     m_prog_read_cb;
8889   devcb_write8                    m_prog_write_cb;
90   devcb_write_line                m_out_int_cb;
8991   devcb_write_line                m_out_irq_cb;
9092   devcb_write_line                m_out_thold_cb;
9193   device_dmvslot_interface*       m_cart;
r241781r241782
104106   devcb = &dmvcart_slot_device::set_prog_read_callback(*device, DEVCB_##_read_devcb); \
105107   devcb = &dmvcart_slot_device::set_prog_write_callback(*device, DEVCB_##_write_devcb);
106108
109#define MCFG_DMVCART_SLOT_OUT_INT_CB(_devcb) \
110   devcb = &dmvcart_slot_device::set_out_int_callback(*device, DEVCB_##_devcb);
111
107112#define MCFG_DMVCART_SLOT_OUT_IRQ_CB(_devcb) \
108113   devcb = &dmvcart_slot_device::set_out_irq_callback(*device, DEVCB_##_devcb);
109114
trunk/src/emu/bus/dmv/k803.c
r0r241782
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
r0r241782
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
r241781r241782
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_READWRITE(port1_r, port1_w)
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)
2425   AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(portt1_r)
2526ADDRESS_MAP_END
2627
r241781r241782
7576
7677void dmv_k806_device::device_start()
7778{
79   m_bus = static_cast<dmvcart_slot_device*>(owner());
7880}
7981
8082//-------------------------------------------------
r241781r241782
129131
130132READ8_MEMBER( dmv_k806_device::port1_r )
131133{
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
132143   // TODO
133144   return 0xff;
134145}
r241781r241782
138149   return BIT(m_jumpers->read(), 7) ? 0 : 1;
139150}
140151
141WRITE8_MEMBER( dmv_k806_device::port1_w )
152WRITE8_MEMBER( dmv_k806_device::port2_w )
142153{
143   // TODO
154   m_bus->m_out_int_cb((data & 1) ? CLEAR_LINE : ASSERT_LINE);
144155};
trunk/src/emu/bus/dmv/k806.h
r241781r241782
3131
3232   DECLARE_READ8_MEMBER(portt1_r);
3333   DECLARE_READ8_MEMBER(port1_r);
34   DECLARE_WRITE8_MEMBER(port1_w);
34   DECLARE_WRITE8_MEMBER(port2_w);
3535
3636protected:
3737   // device-level overrides
r241781r241782
4444private:
4545   required_device<upi41_cpu_device> m_mcu;
4646   required_ioport m_jumpers;
47   dmvcart_slot_device * m_bus;
4748};
4849
4950
trunk/src/emu/bus/gameboy/gb_slot.c
r241781r241782
557557
558558   /* Check if we're dealing with the multigame variant of the MBC1 mapper */
559559   if (type == GB_MBC_MBC1)
560   {
561      if (ROM[0x13f] == 0x42 && ROM[0x140] == 0x32 && ROM[0x141] == 0x43 && ROM[0x142] == 0x4B)
560   {   // bomberman collection korea
561      if (ROM[0x134] == 0x42 && ROM[0x135] == 0x4f && ROM[0x136] == 0x4d && ROM[0x137] == 0x53)
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;
563583   }
564584
565585   return type;
trunk/src/emu/bus/isa/isa_cards.c
r241781r241782
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)
2223   SLOT_INTERFACE("com", ISA8_COM)
2324   SLOT_INTERFACE("fdc", ISA8_FDC_SUPERIO)
2425   SLOT_INTERFACE("fdc_xt", ISA8_FDC_XT)
r241781r241782
5758   SLOT_INTERFACE("vga", ISA8_VGA)
5859   SLOT_INTERFACE("svga_et4k", ISA8_SVGA_ET4K)
5960   SLOT_INTERFACE("svga_dm",ISA8_SVGA_CIRRUS)
61   SLOT_INTERFACE("num9rev",ISA8_NUM_9_REV)
6062   SLOT_INTERFACE("com", ISA8_COM)
6163   SLOT_INTERFACE("comat", ISA8_COM_AT)
6264   SLOT_INTERFACE("fdc", ISA8_FDC_AT)
trunk/src/emu/bus/isa/isa_cards.h
r241781r241782
2525#include "svga_s3.h"
2626#include "svga_tseng.h"
2727#include "svga_trident.h"
28#include "num9rev.h"
2829
2930// storage
3031#include "fdc.h"
trunk/src/emu/bus/isa/num9rev.c
r0r241782
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
r0r241782
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/lpci/cirrus.c
r0r241782
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/lpci/cirrus.h
r0r241782
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/lpci/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/lpci/i82371ab.c
r0r241782
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/lpci/i82371ab.h
r0r241782
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/lpci/i82371sb.c
r0r241782
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/lpci/i82371sb.h
r0r241782
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/lpci/i82439tx.c
r0r241782
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/lpci/i82439tx.h
r0r241782
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/lpci/mpc105.c
r0r241782
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/lpci/mpc105.h
r0r241782
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/lpci/northbridge.c
r0r241782
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/lpci/northbridge.h
r0r241782
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/lpci/pci.c
r0r241782
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/lpci/pci.h
r0r241782
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/lpci/southbridge.c
r0r241782
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 = 1;
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/lpci/southbridge.h
r0r241782
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
r241781r241782
4141    DEBUGGING
4242***************************************************************************/
4343
44#define LOG_UML                         (0)
4544#define LOG_NATIVE                      (0)
4645
4746#define SINGLE_INSTRUCTION_MODE         (0)
r241781r241782
154153   m_impstate.cache = cache;
155154
156155   /* initialize the UML generator */
157   if (LOG_UML)
158      flags |= DRCUML_OPTION_LOG_UML;
159156   if (LOG_NATIVE)
160157      flags |= DRCUML_OPTION_LOG_NATIVE;
161158   m_impstate.drcuml = new drcuml_state(*this, *cache, flags, 1, 32, 1);
r241781r241782
355352   /* get a description of this sequence */
356353   // TODO FIXME
357354   const opcode_desc *desclist = NULL; //m_impstate.drcfe->describe_code(pc); // TODO
358//  if (LOG_UML || LOG_NATIVE)
355//  if (drcuml->logging() || LOG_NATIVE)
359356//      log_opcode_desc(drcuml, desclist, 0);
360357
361358   /* if we get an error back, flush the cache and try again */
r241781r241782
374371            UINT32 nextpc;
375372
376373            /* add a code log entry */
377            if (LOG_UML)
374            if (drcuml->logging())
378375               block->append_comment("-------------------------");                     // comment
379376
380377            /* determine the last instruction in this sequence */
r241781r241782
12091206void arm7_cpu_device::generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast)
12101207{
12111208   const opcode_desc *curdesc;
1212   if (LOG_UML)
1209   if (m_impstate.drcuml->logging())
12131210   {
12141211      block->append_comment("[Validation for %08X]", seqhead->pc);                // comment
12151212   }
r241781r241782
12781275
12791276   /* add an entry for the log */
12801277   // TODO FIXME
1281//  if (LOG_UML && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
1278//  if (m_impstate.drcuml->logging() && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
12821279//      log_add_disasm_comment(block, desc->pc, desc->opptr.l[0]);
12831280
12841281   /* set the PC map variable */
trunk/src/emu/cpu/drcuml.c
r241781r241782
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 (flags & DRCUML_OPTION_LOG_UML)
131      m_umllog = fopen("drcuml.asm", "w");
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   }
132135}
133136
134137
r241781r241782
274277      va_start(va, format);
275278      vfprintf(m_umllog, format, va);
276279      va_end(va);
280      fflush(m_umllog);
277281   }
278282}
279283
trunk/src/emu/cpu/drcuml.h
r241781r241782
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
2625const UINT32 DRCUML_OPTION_LOG_NATIVE   = 0x0004;       // tell the back-end to generate a native disassembly of each block
2726
2827
trunk/src/emu/cpu/mips/mips3.c
r241781r241782
355355
356356   UINT32 flags = 0;
357357   /* initialize the UML generator */
358   if (LOG_UML)
359      flags |= DRCUML_OPTION_LOG_UML;
360358   if (LOG_NATIVE)
361359      flags |= DRCUML_OPTION_LOG_NATIVE;
362360   m_drcuml = auto_alloc(machine(), drcuml_state(*this, m_cache, flags, 8, 32, 2));
trunk/src/emu/cpu/mips/mips3com.h
r241781r241782
2222#define PRINTF_TLB              (0)
2323#define USE_ABI_REG_NAMES       (1)
2424
25#define LOG_UML                         (0)
2625#define LOG_NATIVE                      (0)
2726
2827#define DISABLE_FAST_REGISTERS          (0)
trunk/src/emu/cpu/mips/mips3drc.c
r241781r241782
275275
276276   /* get a description of this sequence */
277277   desclist = m_drcfe->describe_code(pc);
278   if (LOG_UML || LOG_NATIVE)
278   if (drcuml->logging() || LOG_NATIVE)
279279      log_opcode_desc(drcuml, desclist, 0);
280280
281281   /* if we get an error back, flush the cache and try again */
r241781r241782
294294            UINT32 nextpc;
295295
296296            /* add a code log entry */
297            if (LOG_UML)
297            if (drcuml->logging())
298298               block->append_comment("-------------------------");                     // comment
299299
300300            /* determine the last instruction in this sequence */
r241781r241782
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 (LOG_UML)
1073   if (m_drcuml->logging())
10741074      block->append_comment("[Validation for %08X]", seqhead->pc);                // comment
10751075
10761076   /* loose verify or single instruction: just compare and fail */
r241781r241782
11471147   int hotnum;
11481148
11491149   /* add an entry for the log */
1150   if (LOG_UML && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
1150   if (m_drcuml->logging() && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
11511151      log_add_disasm_comment(block, desc->pc, desc->opptr.l[0]);
11521152
11531153   /* set the PC map variable */
r241781r241782
13871387
13881388      case 0x0f:  /* LUI - MIPS I */
13891389         if (RTREG != 0)
1390            UML_DMOV(block, R64(RTREG), SIMMVAL << 16);                 // dmov    <rtreg>,SIMMVAL << 16
1390            UML_DMOV(block, R64(RTREG), UIMMVAL << 16);                 // dmov    <rtreg>,UIMMVAL << 16
13911391         return TRUE;
13921392
13931393      case 0x08:  /* ADDI - MIPS I */
r241781r241782
27642764
27652765            case 0x07:
27662766               if (IS_SINGLE(op))  /* NEG.S - MIPS I */
2767               {
27672768                  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               }
27682772               else                /* NEG.D - MIPS I */
2773               {
27692774                  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               }
27702778               return TRUE;
27712779
27722780            case 0x08:
r241781r241782
27742782                  UML_FSTOINT(block, FPR64(FDREG), FPR32(FSREG), SIZE_QWORD, ROUND_ROUND);// fstoint <fdreg>,<fsreg>,qword,round
27752783               else                /* ROUND.L.D - MIPS III */
27762784                  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);
27772786               return TRUE;
27782787
27792788            case 0x09:
r241781r241782
27812790                  UML_FSTOINT(block, FPR64(FDREG), FPR32(FSREG), SIZE_QWORD, ROUND_TRUNC);// fstoint <fdreg>,<fsreg>,qword,trunc
27822791               else                /* TRUNC.L.D - MIPS III */
27832792                  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);
27842794               return TRUE;
27852795
27862796            case 0x0a:
r241781r241782
27882798                  UML_FSTOINT(block, FPR64(FDREG), FPR32(FSREG), SIZE_QWORD, ROUND_CEIL);// fstoint <fdreg>,<fsreg>,qword,ceil
27892799               else                /* CEIL.L.D - MIPS III */
27902800                  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);
27912802               return TRUE;
27922803
27932804            case 0x0b:
r241781r241782
27952806                  UML_FSTOINT(block, FPR64(FDREG), FPR32(FSREG), SIZE_QWORD, ROUND_FLOOR);// fstoint <fdreg>,<fsreg>,qword,floor
27962807               else                /* FLOOR.L.D - MIPS III */
27972808                  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);
27982810               return TRUE;
27992811
28002812            case 0x0c:
r241781r241782
31173129
31183130void mips3_device::log_add_disasm_comment(drcuml_block *block, UINT32 pc, UINT32 op)
31193131{
3120#if (LOG_UML)
3121   char buffer[100];
3122   dasmmips3(buffer, pc, op);
3123   block->append_comment("%08X: %s", pc, buffer);                                  // comment
3124#endif
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   }
31253138}
31263139
31273140
r241781r241782
32513264      char buffer[100];
32523265
32533266      /* disassemle the current instruction and output it to the log */
3254#if (LOG_UML || LOG_NATIVE)
3255      if (desclist->flags & OPFLAG_VIRTUAL_NOOP)
3256         strcpy(buffer, "<virtual nop>");
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      }
32573274      else
3258         dasmmips3(buffer, desclist->pc, desclist->opptr.l[0]);
3259#else
3260      strcpy(buffer, "???");
3261#endif
3275         strcpy(buffer, "???");
32623276      drcuml->log_printf("%08X [%08X] t:%08X f:%s: %-30s", desclist->pc, desclist->physpc, desclist->targetpc, log_desc_flags_to_string(desclist->flags), buffer);
32633277
32643278      /* output register states */
trunk/src/emu/cpu/mips/mips3fe.c
r241781r241782
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 << 2);
109         desc.targetpc = desc.pc + 4 + SIMMVAL * 4;
110110         desc.delayslots = 1;
111111         desc.skipslots = (opswitch & 0x10) ? 1 : 0;
112112         return true;
r241781r241782
122122            desc.regin[0] |= REGFLAG_R(RSREG);
123123            desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
124124         }
125         desc.targetpc = desc.pc + 4 + (SIMMVAL << 2);
125         desc.targetpc = desc.pc + 4 + SIMMVAL * 4;
126126         desc.delayslots = 1;
127127         desc.skipslots = (opswitch & 0x10) ? 1 : 0;
128128         return true;
r241781r241782
396396            desc.regin[0] |= REGFLAG_R(RSREG);
397397            desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
398398         }
399         desc.targetpc = desc.pc + 4 + (SIMMVAL << 2);
399         desc.targetpc = desc.pc + 4 + SIMMVAL * 4;
400400         desc.delayslots = 1;
401401         desc.skipslots = (RTREG & 0x02) ? 1 : 0;
402402         return true;
r241781r241782
423423            desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
424424         }
425425         desc.regout[0] |= REGFLAG_R(31);
426         desc.targetpc = desc.pc + 4 + (SIMMVAL << 2);
426         desc.targetpc = desc.pc + 4 + SIMMVAL * 4;
427427         desc.delayslots = 1;
428428         desc.skipslots = (RTREG & 0x02) ? 1 : 0;
429429         return true;
r241781r241782
508508            case 0x00:  // BCzF
509509            case 0x01:  // BCzT
510510               desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
511               desc.targetpc = desc.pc + 4 + (SIMMVAL << 2);
511               desc.targetpc = desc.pc + 4 + SIMMVAL * 4;
512512               desc.delayslots = 1;
513513               return true;
514514         }
r241781r241782
580580            case 0x03:  // BCzTL
581581               desc.regin[2] |= REGFLAG_FCC;
582582               desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
583               desc.targetpc = desc.pc + 4 + (SIMMVAL << 2);
583               desc.targetpc = desc.pc + 4 + SIMMVAL * 4;
584584               desc.delayslots = 1;
585585               desc.skipslots = (RTREG & 0x02) ? 1 : 0;
586586               return true;
r241781r241782
730730            case 0x00:  // BCzF
731731            case 0x01:  // BCzT
732732               desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
733               desc.targetpc = desc.pc + 4 + (SIMMVAL << 2);
733               desc.targetpc = desc.pc + 4 + SIMMVAL * 4;
734734               desc.delayslots = 1;
735735               return true;
736736         }
trunk/src/emu/cpu/powerpc/ppccom.c
r241781r241782
880880
881881   UINT32 flags = 0;
882882   /* initialize the UML generator */
883   if (LOG_UML)
884      flags |= DRCUML_OPTION_LOG_UML;
885883   if (LOG_NATIVE)
886884      flags |= DRCUML_OPTION_LOG_NATIVE;
887885   m_drcuml = auto_alloc(machine(), drcuml_state(*this, m_cache, flags, 8, 32, 2));
trunk/src/emu/cpu/powerpc/ppccom.h
r241781r241782
1818    DEBUGGING
1919***************************************************************************/
2020
21#define LOG_UML                         (0)
2221#define LOG_NATIVE                      (0)
2322
2423#define DISABLE_FLAG_OPTIMIZATIONS      (0)
trunk/src/emu/cpu/powerpc/ppcdrc.c
r241781r241782
368368
369369   /* get a description of this sequence */
370370   desclist = m_drcfe->describe_code(pc);
371   if (LOG_UML || LOG_NATIVE)
371   if (m_drcuml->logging() || LOG_NATIVE)
372372      log_opcode_desc(m_drcuml, desclist, 0);
373373
374374   bool succeeded = false;
r241781r241782
386386            UINT32 nextpc;
387387
388388            /* add a code log entry */
389            if (LOG_UML)
389            if (m_drcuml->logging())
390390               block->append_comment("-------------------------");                         // comment
391391
392392            /* determine the last instruction in this sequence */
r241781r241782
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 (LOG_UML)
1590   if (m_drcuml->logging())
15911591      block->append_comment("[Validation for %08X]", seqhead->pc);                        // comment
15921592
15931593   /* loose verify or single instruction: just compare and fail */
r241781r241782
16441644   int hotnum;
16451645
16461646   /* add an entry for the log */
1647   if (LOG_UML && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
1647   if (m_drcuml->logging() && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
16481648      log_add_disasm_comment(block, desc->pc, desc->opptr.l[0]);
16491649
16501650   /* set the PC map variable */
r241781r241782
37123712void ppc_device::log_add_disasm_comment(drcuml_block *block, UINT32 pc, UINT32 op)
37133713{
37143714   char buffer[100];
3715   if (LOG_UML)
3715   if (m_drcuml->logging())
37163716   {
37173717      ppc_dasm_one(buffer, pc, op);
37183718      block->append_comment("%08X: %s", pc, buffer);                                  // comment
r241781r241782
38953895      char buffer[100];
38963896
38973897      /* disassemle the current instruction and output it to the log */
3898      if (LOG_UML || LOG_NATIVE)
3898      if (drcuml->logging() || LOG_NATIVE)
38993899      {
39003900         if (desclist->flags & OPFLAG_VIRTUAL_NOOP)
39013901            strcpy(buffer, "<virtual nop>");
trunk/src/emu/cpu/rsp/rsp.c
r241781r241782
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_UML ? DRCUML_OPTION_LOG_UML : 0 ) | ( RSP_LOG_NATIVE ? DRCUML_OPTION_LOG_NATIVE : 0 ), 8, 32, 2)
124//  , m_drcuml(*this, m_cache, ( RSP_LOG_NATIVE ? DRCUML_OPTION_LOG_NATIVE : 0 ), 8, 32, 2)
125125   , m_drcfe(NULL)
126126   , m_drcoptions(0)
127127   , m_cache_dirty(TRUE)
r241781r241782
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   }
439435   if (RSP_LOG_NATIVE)
440436   {
441437      drc_flags |= DRCUML_OPTION_LOG_NATIVE;
trunk/src/emu/cpu/rsp/rsp.h
r241781r241782
2222
2323#define USE_SIMD        (0)
2424#define SIMUL_SIMD      (0)
25#define RSP_LOG_UML     (0)
2625#define RSP_LOG_NATIVE  (0)
2726
2827#if USE_SIMD
r241781r241782
299298   void ccfunc_rsp_vabs_scalar();
300299   void ccfunc_rsp_vaddc_scalar();
301300   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();
r241781r241782
325325   void ccfunc_mtc2_scalar();
326326   void ccfunc_ctc2_scalar();
327327#endif
328   void ccfunc_rsp_vrsq_scalar();
328329#if USE_SIMD && SIMUL_SIMD
329330   void ccfunc_backup_regs();
330331   void ccfunc_restore_regs();
r241781r241782
541542   void generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast);
542543   void generate_sequence_instruction(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc);
543544   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);
544546   int generate_vector_opcode(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc);
545547   int generate_opcode(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc);
546548   int generate_special(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc);
trunk/src/emu/cpu/rsp/rspdrc.c
r241781r241782
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)
r241781r241782
47544754{
47554755   int op = m_rsp_state->arg0;
47564756
4757
47584757   CLEAR_ZERO_FLAGS();
47594758   CLEAR_CARRY_FLAGS();
47604759
r241781r241782
47894788}
47904789#endif
47914790
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
47924852#if USE_SIMD
47934853// VSAW
47944854//
r241781r241782
63186378
63196379   UINT16 urec;
63206380   SIMD_EXTRACT16(m_xv[VS2REG], urec, EL);
6321   INT32 rec = (urec | m_reciprocal_high);
6322
6381   INT32 rec = (INT16)urec;
63236382   INT32 datainput = rec;
63246383
6325   if (rec < 0)
6384   if (m_dp_allowed)
63266385   {
6327      if (m_dp_allowed)
6386      rec = (rec & 0x0000ffff) | m_reciprocal_high;
6387      datainput = rec;
6388
6389      if (rec < 0)
63286390      {
63296391         if (rec < -32768)
63306392         {
r241781r241782
63356397            datainput = -datainput;
63366398         }
63376399      }
6338      else
6339      {
6340         datainput = -datainput;
6341      }
63426400   }
6401   else if (datainput < 0)
6402   {
6403      datainput = -datainput;
63436404
6405      shifter = 0x10;
6406   }
63446407
63456408   if (datainput)
63466409   {
r241781r241782
63536416         }
63546417      }
63556418   }
6356   else
6357   {
6358      if (m_dp_allowed)
6359      {
6360         shifter = 0;
6361      }
6362      else
6363      {
6364         shifter = 0x10;
6365      }
6366   }
63676419
63686420   INT32 address = ((datainput << shifter) & 0x7fc00000) >> 22;
63696421   INT32 fetchval = rsp_divtable[address];
63706422   INT32 temp = (0x40000000 | (fetchval << 14)) >> ((~shifter) & 0x1f);
6371   if (rec < 0)
6372   {
6373      temp = ~temp;
6374   }
6423   temp ^= rec >> 31;
6424
63756425   if (!rec)
63766426   {
63776427      temp = 0x7fffffff;
r241781r241782
64086458   int op = m_rsp_state->arg0;
64096459
64106460   INT32 shifter = 0;
6411   INT32 rec = ((UINT16)(VREG_S(VS2REG, EL & 7)) | m_reciprocal_high);
6461   INT32 rec = (INT16)VREG_S(VS2REG, EL & 7);
64126462   INT32 datainput = rec;
64136463
6414   if (rec < 0)
6464   if (m_dp_allowed)
64156465   {
6416      if (m_dp_allowed)
6466      rec = (rec & 0x0000ffff) | m_reciprocal_high;
6467      datainput = rec;
6468
6469      if (rec < 0)
64176470      {
64186471         if (rec < -32768)
64196472         {
r241781r241782
64246477            datainput = -datainput;
64256478         }
64266479      }
6427      else
6428      {
6429         datainput = -datainput;
6430      }
64316480   }
6481   else if (datainput < 0)
6482   {
6483      datainput = -datainput;
64326484
6485      shifter = 0x10;
6486   }
64336487
64346488   if (datainput)
64356489   {
r241781r241782
64426496         }
64436497      }
64446498   }
6445   else
6446   {
6447      if (m_dp_allowed)
6448      {
6449         shifter = 0;
6450      }
6451      else
6452      {
6453         shifter = 0x10;
6454      }
6455   }
64566499
6457   INT32 address = ((datainput << shifter) & 0x7fc00000) >> 22;
6458   INT32 fetchval = rsp_divtable[address];
6500   UINT32 address = (datainput << shifter) >> 22;
6501   INT32 fetchval = rsp_divtable[address & 0x1ff];
64596502   INT32 temp = (0x40000000 | (fetchval << 14)) >> ((~shifter) & 0x1f);
6460   if (rec < 0)
6461   {
6462      temp = ~temp;
6463   }
6503   temp ^= rec >> 31;
64646504   if (!rec)
64656505   {
64666506      temp = 0x7fffffff;
r241781r241782
65926632}
65936633#endif
65946634
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
65956765#if USE_SIMD
65966766// VRSQL
65976767//
r241781r241782
66156785   INT32 shifter = 0;
66166786   UINT16 val;
66176787   SIMD_EXTRACT16(m_xv[VS2REG], val, EL);
6618   INT32 rec = m_reciprocal_high | val;
6788   INT32 rec = (INT16)val;
66196789   INT32 datainput = rec;
66206790
6621   if (rec < 0)
6791   if (m_dp_allowed)
66226792   {
6623      if (m_dp_allowed)
6793      rec = (rec & 0x0000ffff) | m_reciprocal_high;
6794      datainput = rec;
6795
6796      if (rec < 0)
66246797      {
66256798         if (rec < -32768)
66266799         {
r241781r241782
66316804            datainput = -datainput;
66326805         }
66336806      }
6634      else
6635      {
6636         datainput = -datainput;
6637      }
66386807   }
6808   else if (datainput < 0)
6809   {
6810      datainput = -datainput;
66396811
6812      shifter = 0x10;
6813   }
6814
66406815   if (datainput)
66416816   {
66426817      for (int i = 0; i < 32; i++)
r241781r241782
66486823         }
66496824      }
66506825   }
6651   else
6652   {
6653      if (m_dp_allowed)
6654      {
6655         shifter = 0;
6656      }
6657      else
6658      {
6659         shifter = 0x10;
6660      }
6661   }
66626826
66636827   INT32 address = ((datainput << shifter) & 0x7fc00000) >> 22;
66646828   address = ((address | 0x200) & 0x3fe) | (shifter & 1);
66656829
66666830   INT32 fetchval = rsp_divtable[address];
66676831   INT32 temp = (0x40000000 | (fetchval << 14)) >> (((~shifter) & 0x1f) >> 1);
6668   if (rec < 0)
6669   {
6670      temp = ~temp;
6671   }
6832   temp ^= rec >> 31;
6833
66726834   if (!rec)
66736835   {
66746836      temp = 0x7fffffff;
r241781r241782
66996861   int op = m_rsp_state->arg0;
67006862
67016863   INT32 shifter = 0;
6702   INT32 rec = m_reciprocal_high | (UINT16)VREG_S(VS2REG, EL & 7);
6864   INT32 rec = (INT16)VREG_S(VS2REG, EL & 7);
67036865   INT32 datainput = rec;
67046866
6705   if (rec < 0)
6867   if (m_dp_allowed)
67066868   {
6707      if (m_dp_allowed)
6869      rec = (rec & 0x0000ffff) | m_reciprocal_high;
6870      datainput = rec;
6871
6872      if (rec < 0)
67086873      {
67096874         if (rec < -32768)
67106875         {
r241781r241782
67156880            datainput = -datainput;
67166881         }
67176882      }
6718      else
6719      {
6720         datainput = -datainput;
6721      }
67226883   }
6884   else if (datainput < 0)
6885   {
6886      datainput = -datainput;
67236887
6888      shifter = 0x10;
6889   }
6890
67246891   if (datainput)
67256892   {
67266893      for (int i = 0; i < 32; i++)
r241781r241782
67326899         }
67336900      }
67346901   }
6735   else
6736   {
6737      if (m_dp_allowed)
6738      {
6739         shifter = 0;
6740      }
6741      else
6742      {
6743         shifter = 0x10;
6744      }
6745   }
67466902
67476903   INT32 address = ((datainput << shifter) & 0x7fc00000) >> 22;
67486904   address = ((address | 0x200) & 0x3fe) | (shifter & 1);
67496905
67506906   INT32 fetchval = rsp_divtable[address];
67516907   INT32 temp = (0x40000000 | (fetchval << 14)) >> (((~shifter) & 0x1f) >> 1);
6752   if (rec < 0)
6753   {
6754      temp = ~temp;
6755   }
6908   temp ^= rec >> 31;
6909
67566910   if (!rec)
67576911   {
67586912      temp = 0x7fffffff;
r241781r241782
69687122            UINT32 nextpc;
69697123
69707124            /* add a code log entry */
6971            if (RSP_LOG_UML)
7125            if (drcuml->logging())
69727126               block->append_comment("-------------------------");                 // comment
69737127
69747128            /* determine the last instruction in this sequence */
r241781r241782
72497403void rsp_device::generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast)
72507404{
72517405   const opcode_desc *curdesc;
7252   if (RSP_LOG_UML)
7406   if (m_drcuml->logging())
72537407   {
72547408      block->append_comment("[Validation for %08X]", seqhead->pc | 0x1000);       // comment
72557409   }
r241781r241782
73167470   offs_t expc;
73177471
73187472   /* add an entry for the log */
7319   if (RSP_LOG_UML && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
7473   if (m_drcuml->logging() && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
73207474      log_add_disasm_comment(block, desc->pc, desc->opptr.l[0]);
73217475
73227476   /* set the PC map variable */
r241781r241782
73617515}
73627516
73637517/*------------------------------------------------------------------
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/*------------------------------------------------------------------
73647542    generate_delay_slot_and_branch
73657543------------------------------------------------------------------*/
73667544
r241781r241782
73867564   assert(desc->delay.first() != NULL);
73877565   generate_sequence_instruction(block, &compiler_temp, desc->delay.first());     // <next instruction>
73887566
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   }
7567   generate_branch(block, compiler, desc);
74067568
74077569   /* update the label */
74087570   compiler->labelnum = compiler_temp.labelnum;
r241781r241782
76187780#endif
76197781         return TRUE;
76207782
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
76217803      case 0x1d:      /* VSAW */
76227804         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
76237805         UML_CALLC(block, cfunc_rsp_vsaw_simd, this);
r241781r241782
78278009#endif
78288010         return TRUE;
78298011
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
78308017      case 0x35:      /* VRSQL */
78318018         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
78328019         UML_CALLC(block, cfunc_rsp_vrsql_simd, this);
r241781r241782
78498036#endif
78508037         return TRUE;
78518038
8039      case 0x37:      /* VNOP */
8040      case 0x3F:      /* VNULL */
8041         return TRUE;
8042
78528043      default:
78538044         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
78548045         UML_CALLC(block, cfunc_unimplemented_opcode, this);
r241781r241782
79548145         UML_CALLC(block, cfunc_rsp_vsubc_scalar, this);
79558146         return TRUE;
79568147
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
79578168      case 0x1d:      /* VSAW */
79588169         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
79598170         UML_CALLC(block, cfunc_rsp_vsaw_scalar, this);
r241781r241782
80498260         UML_CALLC(block, cfunc_rsp_vmov_scalar, this);
80508261         return TRUE;
80518262
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
80528268      case 0x35:      /* VRSQL */
80538269         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
80548270         UML_CALLC(block, cfunc_rsp_vrsql_scalar, this);
r241781r241782
80598275         UML_CALLC(block, cfunc_rsp_vrsqh_scalar, this);
80608276         return TRUE;
80618277
8278      case 0x37:      /* VNOP */
8279      case 0x3F:      /* VNULL */
8280         return TRUE;
8281
80628282      default:
80638283         UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]);        // mov     [arg0],desc->opptr.l
80648284         UML_CALLC(block, cfunc_unimplemented_opcode, this);
r241781r241782
84218641         UML_MOV(block, mem(&m_rsp_state->arg0), 3);                   // mov     [arg0],3
84228642         UML_CALLC(block, cfunc_sp_set_status_cb, this);                      // callc   cfunc_sp_set_status_cb
84238643         UML_MOV(block, mem(&m_rsp_state->icount), 0);                       // mov icount, #0
8644         UML_MOV(block, mem(&m_rsp_state->jmpdest), desc->targetpc);
84248645
8646         generate_branch(block, compiler, desc);
8647
84258648         UML_EXIT(block, EXECUTE_OUT_OF_CYCLES);
84268649         return TRUE;
84278650   }
r241781r241782
90239246
90249247void rsp_device::log_add_disasm_comment(drcuml_block *block, UINT32 pc, UINT32 op)
90259248{
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
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   }
90319255}
trunk/src/emu/cpu/rsp/rspfe.c
r241781r241782
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 << 2)) & 0x00000fff) | 0x1000;
86         desc.targetpc = ((desc.pc + 4 + SIMMVAL * 4) & 0x00000fff) | 0x1000;
8787         desc.delayslots = 1;
8888         desc.skipslots = (opswitch & 0x10) ? 1 : 0;
8989         return true;
r241781r241782
9797            desc.regin[0] |= REGFLAG_R(RSREG);
9898            desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
9999         }
100         desc.targetpc = ((desc.pc + 4 + (SIMMVAL << 2)) & 0x00000fff) | 0x1000;
100         desc.targetpc = ((desc.pc + 4 + SIMMVAL * 4) & 0x00000fff) | 0x1000;
101101         desc.delayslots = 1;
102102         desc.skipslots = (opswitch & 0x10) ? 1 : 0;
103103         return true;
r241781r241782
207207         return true;
208208
209209      case 0x0d:  // BREAK
210         desc.flags |= OPFLAG_END_SEQUENCE;
211         desc.targetpc = BRANCH_TARGET_DYNAMIC;
210         desc.flags |= OPFLAG_IS_UNCONDITIONAL_BRANCH | OPFLAG_END_SEQUENCE;
211         desc.targetpc = (op >> 5) & 0x000fffff;
212212         return true;
213213   }
214214
r241781r241782
234234            desc.regin[0] |= REGFLAG_R(RSREG);
235235            desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
236236         }
237         desc.targetpc = ((desc.pc + 4 + (SIMMVAL << 2)) & 0x00000fff) | 0x1000;
237         desc.targetpc = ((desc.pc + 4 + SIMMVAL * 4) & 0x00000fff) | 0x1000;
238238         desc.delayslots = 1;
239239         desc.skipslots = (RTREG & 0x02) ? 1 : 0;
240240         return true;
r241781r241782
249249            desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH;
250250         }
251251         desc.regout[0] |= REGFLAG_R(31);
252         desc.targetpc = ((desc.pc + 4 + (SIMMVAL << 2)) & 0x00000fff) | 0x1000;
252         desc.targetpc = ((desc.pc + 4 + SIMMVAL * 4) & 0x00000fff) | 0x1000;
253253         desc.delayslots = 1;
254254         desc.skipslots = (RTREG & 0x02) ? 1 : 0;
255255         return true;
trunk/src/emu/cpu/sh2/sh2.c
r241781r241782
115115    DEBUGGING
116116***************************************************************************/
117117
118#define LOG_UML                     (0) // log UML assembly
119118#define LOG_NATIVE                  (0) // log native assembly
120119
121120#define DISABLE_FAST_REGISTERS              (0) // set to 1 to turn off usage of register caching
r241781r241782
170169   , m_cpu_type(CPU_TYPE_SH2)
171170   , m_cache(CACHE_SIZE + sizeof(internal_sh2_state))
172171   , m_drcuml(NULL)
173//  , m_drcuml(*this, m_cache, ( LOG_UML ? DRCUML_OPTION_LOG_UML : 0 ) | ( LOG_NATIVE ? DRCUML_OPTION_LOG_NATIVE : 0 ), 1, 32, 1)
172//  , m_drcuml(*this, m_cache, ( LOG_NATIVE ? DRCUML_OPTION_LOG_NATIVE : 0 ), 1, 32, 1)
174173   , m_drcfe(NULL)
175174   , m_drcoptions(0)
176175   , m_sh2_state(NULL)
r241781r241782
207206   , m_cpu_type(cpu_type)
208207   , m_cache(CACHE_SIZE + sizeof(internal_sh2_state))
209208   , m_drcuml(NULL)
210//  , m_drcuml(*this, m_cache, ( LOG_UML ? DRCUML_OPTION_LOG_UML : 0 ) | ( LOG_NATIVE ? DRCUML_OPTION_LOG_NATIVE : 0 ), 1, 32, 1)
209//  , m_drcuml(*this, m_cache, ( LOG_NATIVE ? DRCUML_OPTION_LOG_NATIVE : 0 ), 1, 32, 1)
211210   , m_drcfe(NULL)
212211   , m_drcoptions(0)
213212   , m_sh2_state(NULL)
r241781r241782
25612560
25622561   /* initialize the UML generator */
25632562   UINT32 flags = 0;
2564   if (LOG_UML)
2565      flags |= DRCUML_OPTION_LOG_UML;
25662563   if (LOG_NATIVE)
25672564      flags |= DRCUML_OPTION_LOG_NATIVE;
25682565   m_drcuml = auto_alloc(machine(), drcuml_state(*this, m_cache, flags, 1, 32, 1));
trunk/src/emu/cpu/sh2/sh2drc.c
r241781r241782
675675
676676   /* get a description of this sequence */
677677   desclist = m_drcfe->describe_code(pc);
678   if (LOG_UML || LOG_NATIVE)
678   if (drcuml->logging() || LOG_NATIVE)
679679      log_opcode_desc(drcuml, desclist, 0);
680680
681681   bool succeeded = false;
r241781r241782
693693            UINT32 nextpc;
694694
695695            /* add a code log entry */
696            if (LOG_UML)
696            if (drcuml->logging())
697697               block->append_comment("-------------------------");                 // comment
698698
699699            /* determine the last instruction in this sequence */
r241781r241782
11741174      char buffer[100];
11751175
11761176      /* disassemle the current instruction and output it to the log */
1177#if (LOG_UML || LOG_NATIVE)
1178      if (desclist->flags & OPFLAG_VIRTUAL_NOOP)
1179         strcpy(buffer, "<virtual nop>");
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      }
11801184      else
1181         DasmSH2(buffer, desclist->pc, desclist->opptr.w[0]);
1182#else
1183      strcpy(buffer, "???");
1184#endif
1185         strcpy(buffer, "???");
11851186      drcuml->log_printf("%08X [%08X] t:%08X f:%s: %-30s", desclist->pc, desclist->physpc, desclist->targetpc, log_desc_flags_to_string(desclist->flags), buffer);
11861187
11871188      /* output register states */
r241781r241782
12061207
12071208void sh2_device::log_add_disasm_comment(drcuml_block *block, UINT32 pc, UINT32 op)
12081209{
1209#if (LOG_UML)
1210   char buffer[100];
1211   DasmSH2(buffer, pc, op);
1212   block->append_comment("%08X: %s", pc, buffer);                  // comment
1213#endif
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   }
12141216}
12151217
12161218/*-------------------------------------------------
r241781r241782
12991301void sh2_device::generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast)
13001302{
13011303   const opcode_desc *curdesc;
1302   if (LOG_UML)
1304   if (m_drcuml->logging())
13031305      block->append_comment("[Validation for %08X]", seqhead->pc);                // comment
13041306
13051307   /* loose verify or single instruction: just compare and fail */
r241781r241782
13561358   offs_t expc;
13571359
13581360   /* add an entry for the log */
1359   if (LOG_UML && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
1361   if (m_drcuml->logging() && !(desc->flags & OPFLAG_VIRTUAL_NOOP))
13601362      log_add_disasm_comment(block, desc->pc, desc->opptr.w[0]);
13611363
13621364   /* set the PC map variable */
trunk/src/emu/cpu/tms0980/tms0980.c
r241781r241782
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
r241781r241782
123123#include "debugger.h"
124124#include "tms0980.h"
125125
126#define LOG                 0
127126
128127
129128const device_type TMS0980 = &device_creator<tms0980_cpu_device>;
130129const 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>;
r241781r241782
236236#define I_YNEC      ( MICRO_MASK | M_YTP | M_CKN | M_NE )
237237
238238
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};
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 };
251242static const UINT8 tms0980_bit_value[4] = { 1, 4, 2, 8 };
252static const UINT8 tms0980_nbit_value[4] = { 0x0E, 0x0B, 0x0D, 0x07 };
243static const UINT8 tms0980_nbit_value[4] = { 0xE, 0xB, 0xD, 0x7 };
253244
254245
255246static const UINT32 tms0980_decode[512] =
r241781r241782
329320};
330321
331322
332static const UINT32 tms1000_default_decode[256] = {
323static const UINT32 tms1000_default_decode[256] =
324{
333325   /* 0x00 */
334326   F_COMX, I_A8AAC, I_YNEA, I_TAM, I_TAMZA, I_A10AAC, I_A6AAC, I_DAN,
335327   I_TKA, I_KNEZ, F_TDO, F_CLO, F_RSTR, F_SETR, I_IA, F_RETN,
r241781r241782
371363};
372364
373365
374static const UINT32 tms1100_default_decode[256] = {
366static const UINT32 tms1100_default_decode[256] =
367{
375368   /* 0x00 */
376369   I_MNEA, I_ALEM, I_YNEA, I_XMA, I_DYN, I_IYC, I_AMAAC, I_DMAN,
377370   I_TKA, F_COMX, F_TDO, F_COMC, F_RSTR, F_SETR, I_KNEZ, F_RETN,
r241781r241782
504497
505498void tms1xxx_cpu_device::device_reset()
506499{
507   m_pa = 0x0F;
508   m_pb = 0x0F;
500   m_pa = 0xF;
501   m_pb = 0xF;
509502   m_pc = 0;
510503   m_dam = 0;
511504   m_ca = 0;
r241781r241782
620613                 ( pc{5:4} == 11 && pc{0} == 1 ) => 10
621614
622615*/
623static const UINT8 tms1000_next_pc[64] = {
616static const UINT8 tms1000_next_pc[64] =
617{
624618   0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F,
625619   0x20, 0x22, 0x24, 0x26, 0x28, 0x2A, 0x2C, 0x2E, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3A, 0x3C, 0x3F,
626620   0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E,
r241781r241782
643637      nand322 means if pc = 0x3f, output MUST be true
644638      hence, nand325 is if pc = 0x7f, false. if pc = 0x3f, true. if pc&0x60 is zero OR pc&0x60 is 0x60, true. otherwise, false.
645639
646      tms0980_nect_pc below implements an indentical function to this in a somewhat more elegant way.
640      tms0980_next_pc below implements an indentical function to this in a somewhat more elegant way.
647641*/
648642void tms1xxx_cpu_device::next_pc()
649643{
r241781r241782
711705{
712706   do
713707   {
714//      debugger_instruction_hook( this, ( ( m_pa << m_pc_size ) | m_pc ) << 1 );
715708      m_icount--;
716709      switch( m_subcycle )
717710      {
r241781r241782
811804            }
812805            if ( m_decode & M_STO )
813806            {
814//printf("write ram %02x data %01x\n", m_ram_address, m_a );
815807               m_data->write_byte( m_ram_address, m_a );
816808            }
817809            if ( m_decode & M_CKM )
818810            {
819//printf("write ram %02x data %01x\n", m_ram_address, m_cki_bus );
820811               m_data->write_byte( m_ram_address, m_cki_bus );
821812            }
822813         }
r241781r241782
824815         {
825816            if ( m_decode & F_SBIT )
826817            {
827//printf("write ram %02x data %01x\n", m_ram_address, m_ram_data | tms0980_bit_value[ m_opcode & 0x03 ] );
828818               m_data->write_byte( m_ram_address, m_ram_data | tms0980_bit_value[ m_opcode & 0x03 ] );
829819            }
830820            if ( m_decode & F_RBIT )
831821            {
832//printf("write ram %02x data %01x\n", m_ram_address, m_ram_data & tms0980_nbit_value[ m_opcode & 0x03 ] );
833822               m_data->write_byte( m_ram_address, m_ram_data & tms0980_nbit_value[ m_opcode & 0x03 ] );
834823            }
835824            if ( m_decode & F_SETR )
r241781r241782
850839               {
851840                  logerror("unknown output pla mapping for status latch = %d and a = %X\n", m_status_latch, m_a);
852841               }
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);
857842
858843               m_write_o( 0, m_o & m_o_mask, 0xffff );
859844            }
r241781r241782
951936            m_opcode = m_program->read_byte( m_rom_address );
952937         }
953938         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 );
956939
957940         /* ram address */
958941         m_ram_address = ( m_x << 4 ) | m_y;
r241781r241782
10751058}
10761059
10771060
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
10781066tms1070_cpu_device::tms1070_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
10791067   : tms1000_cpu_device( mconfig, TMS1070, "TMS1070", tag, owner, clock, 0x00ff, 0x07ff, "tms1070", __FILE__)
10801068{
trunk/src/emu/cpu/tms0980/tms0980.h
r241781r241782
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
165172class tms1070_cpu_device : public tms1000_cpu_device
166173{
167174public:
r241781r241782
209216
210217/* 8-bit family */
211218extern const device_type TMS1000;
219extern const device_type TMS0970;
212220extern const device_type TMS1070;
213221extern const device_type TMS1200;
214222extern const device_type TMS1270;
trunk/src/emu/cpu/upd7810/upd7810.c
r241781r241782
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)
423425   , m_txd_func(*this)
424426   , m_rxd_func(*this)
425427   , m_an0_func(*this)
r241781r241782
446448upd7810_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)
447449   : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source)
448450   , m_to_func(*this)
451   , m_co0_func(*this)
452   , m_co1_func(*this)
449453   , m_txd_func(*this)
450454   , m_rxd_func(*this)
451455   , m_an0_func(*this)
r241781r241782
567571         data = (data & ~0x02) | (m_rxd & 1 ? 0x02 : 0x00);
568572      if (m_mcc & 0x04)   /* PC2 = SCK input/output */
569573         data = (data & ~0x04) | (m_sck & 1 ? 0x04 : 0x00);
570      if (m_mcc & 0x08)   /* PC3 = TI input */
571         data = (data & ~0x08) | (m_ti & 1 ? 0x08 : 0x00);
574      if (m_mcc & 0x08)   /* PC3 = TI/INT2 input */
575         data = (data & ~0x08) | (m_int2 & 1 ? 0x08 : 0x00);
572576      if (m_mcc & 0x10)   /* PC4 = TO output */
573577         data = (data & ~0x10) | (m_to & 1 ? 0x10 : 0x00);
574578      if (m_mcc & 0x20)   /* PC5 = CI input */
r241781r241782
648652         data = (data & ~0x02) | (m_rxd & 1 ? 0x02 : 0x00);
649653      if (m_mcc & 0x04)   /* PC2 = SCK input/output */
650654         data = (data & ~0x04) | (m_sck & 1 ? 0x04 : 0x00);
651      if (m_mcc & 0x08)   /* PC3 = TI input */
652         data = (data & ~0x08) | (m_ti & 1 ? 0x08 : 0x00);
655      if (m_mcc & 0x08)   /* PC3 = TI/INT2 input */
656         data = (data & ~0x08) | (m_int2 & 1 ? 0x08 : 0x00);
653657      if (m_mcc & 0x10)   /* PC4 = TO output */
654658         data = (data & ~0x10) | (m_to & 1 ? 0x10 : 0x00);
655659      if (m_mcc & 0x20)   /* PC5 = CI input */
r241781r241782
709713      return;
710714
711715   /* 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
712724   if ((IRR & INTFT0)  && 0 == (MKL & 0x02))
713725   {
714726      vector = 0x0008;
r241781r241782
852864
853865void upd7810_device::upd7810_write_EOM()
854866{
855   if (EOM & 0x01) /* output LV0 content ? */
867   if (EOM & 0x01) /* output LV0 content */
856868   {
857869      switch (EOM & 0x0e)
858870      {
859871      case 0x02:  /* toggle CO0 */
860         CO0 = (CO0 >> 1) | ((CO0 ^ 2) & 2);
872         CO0 ^= 1;
861873         break;
862874      case 0x04:  /* reset CO0 */
863875         CO0 = 0;
876         EOM &= 0xfb; /* LRE0 is reset t0 0 */
864877         break;
865878      case 0x08:  /* set CO0 */
866879         CO0 = 1;
880         EOM &= 0xf7; /* LRE1 is reset t0 0 */
867881         break;
868882      }
883      EOM &= 0xfe; /* LO0 is reset t0 0 */
884      m_co0_func(CO0);
869885   }
870   if (EOM & 0x10) /* output LV0 content ? */
886   if (EOM & 0x10) /* output LV1 content */
871887   {
872888      switch (EOM & 0xe0)
873889      {
874890      case 0x20:  /* toggle CO1 */
875         CO1 = (CO1 >> 1) | ((CO1 ^ 2) & 2);
891         CO1 ^= 1;
876892         break;
877893      case 0x40:  /* reset CO1 */
878894         CO1 = 0;
895         EOM &= 0xbf; /* LRE2 is reset t0 0 */
879896         break;
880897      case 0x80:  /* set CO1 */
881898         CO1 = 1;
899         EOM &= 0x7f; /* LRE3 is reset t0 0 */
882900         break;
883901      }
902      EOM &= 0xef; /* LO1 is reset t0 0 */
903      m_co1_func(CO1);
884904   }
885905}
886906
r241781r241782
13051325            IRR |= INTFE0;
13061326         if (ETM1 == ECNT)
13071327            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         }
13081352         /* How and When ECNT is Cleared */
13091353         switch (ETMM & 0x0c)
13101354         {
r241781r241782
13211365               ECNT = 0;
13221366            break;
13231367         }
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         }
13621368      }
13631369   }
13641370
r241781r241782
15351541   m_io = &space(AS_IO);
15361542
15371543   m_to_func.resolve_safe();
1544   m_co0_func.resolve_safe();
1545   m_co1_func.resolve_safe();
15381546   m_txd_func.resolve_safe();
15391547   m_rxd_func.resolve_safe(0);
15401548   m_an0_func.resolve_safe(0);
r241781r241782
16081616   save_item(NAME(m_ovcf));
16091617   save_item(NAME(m_ovcs));
16101618   save_item(NAME(m_edges));
1619   save_item(NAME(m_nmi));
16111620   save_item(NAME(m_int1));
16121621   save_item(NAME(m_int2));
16131622
r241781r241782
16681677   state_add( UPD7810_TI,   "TI",   m_ti).formatstr("%3u");
16691678   state_add( UPD7810_TO,   "TO",   m_to).formatstr("%3u");
16701679   state_add( UPD7810_CI,   "CI",   m_ci).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");
1680   state_add( UPD7810_CO0,  "CO0",  m_co0).formatstr("%3u");
1681   state_add( UPD7810_CO1,  "CO1",  m_co1).formatstr("%3u");
16731682
16741683   state_add( STATE_GENPC, "GENPC", m_pc.w.l ).formatstr("%04X").noshow();
16751684   state_add( STATE_GENPCBASE, "GENPCBASE", m_ppc.w.l ).formatstr("%04X").noshow();
r241781r241782
17891798   m_co1 = 0;
17901799   m_irr = 0;
17911800   m_itf = 0;
1801   m_nmi = 0;
17921802   m_int1 = 0;
17931803   m_int2 = 0;
17941804
r241781r241782
19621972
19631973void upd7810_device::execute_set_input(int irqline, int state)
19641974{
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)
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 )
19861986         IRR |= INTF1;
1987      else
1988      if ( irqline == UPD7810_INTF2 && ( MKL & 0x20 ) )
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 )
19891993         IRR |= INTF2;
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);
1994
1995      m_int2 = state;
1996      break;
1997   default:
1998      logerror("upd7810_set_irq_line invalid irq line #%d\n", irqline);
1999      break;
19962000   }
19972001   /* resetting interrupt requests is done with the SKIT/SKNIT opcodes only! */
19982002}
trunk/src/emu/cpu/upd7810/upd7810.h
r241781r241782
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
5359#define MCFG_UPD7810_TXD(_devcb) \
5460   upd7810_device::set_txd_func(*device, DEVCB_##_devcb);
5561
r241781r241782
9096
9197   // static configuration helpers
9298   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); }
93101   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); }
94102   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); }
95103   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); }
r241781r241782
173181   void upd7810_handle_timer1(int cycles, int clkdiv);
174182
175183   devcb_write_line  m_to_func;
184   devcb_write_line  m_co0_func;
185   devcb_write_line  m_co1_func;
176186   devcb_write_line  m_txd_func;
177187   devcb_read_line   m_rxd_func;
178188   devcb_read8       m_an0_func;
r241781r241782
294304   UINT8   m_co1;
295305   UINT16  m_irr;    /* interrupt request register */
296306   UINT16  m_itf;    /* interrupt test flag register */
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. */
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. */
299310
300311   /* internal helper variables */
301312   UINT16  m_txs;    /* transmitter shift register */
trunk/src/emu/drivers/xtal.h
r241781r241782
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 */
136137   XTAL_15_468MHz      = 15468480,     /* Bank Panic h/w, Sega G80 */
137138   XTAL_15_8976MHz     = 15897600,     /* IAI Swyft */
138139   XTAL_16MHz          = 16000000,     /* Extremely common, used on 100's of PCBs */
trunk/src/emu/emuopts.c
r241781r241782
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" },
160161   { OPTION_BIOS,                                       NULL,        OPTION_STRING,     "select the system BIOS to use" },
161162   { OPTION_CHEAT ";c",                                 "0",         OPTION_BOOLEAN,    "enable cheat subsystem" },
162163   { OPTION_SKIP_GAMEINFO,                              "0",         OPTION_BOOLEAN,    "skip displaying the information screen at startup" },
trunk/src/emu/emuopts.h
r241781r241782
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"
163164#define OPTION_BIOS                 "bios"
164165#define OPTION_CHEAT                "cheat"
165166#define OPTION_SKIP_GAMEINFO        "skip_gameinfo"
r241781r241782
320321   // core misc options
321322   bool drc() const { return bool_value(OPTION_DRC); }
322323   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); }
323325   const char *bios() const { return value(OPTION_BIOS); }
324326   bool cheat() const { return bool_value(OPTION_CHEAT); }
325327   bool skip_gameinfo() const { return bool_value(OPTION_SKIP_GAMEINFO); }
trunk/src/emu/machine/i6300esb.c
r0r241782
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
r0r241782
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
r0r241782
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
r0r241782
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
r0r241782
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
r0r241782
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
r0r241782
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
r0r241782
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
r241781r241782
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#
12241233#@src/emu/machine/pci.h,MACHINES += PCI
12251234#-------------------------------------------------
12261235
12271236ifneq ($(filter PCI,$(MACHINES)),)
12281237MACHINEOBJS += $(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
12291245endif
12301246
12311247#-------------------------------------------------
trunk/src/emu/machine/pci-apic.c
r0r241782
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
r0r241782
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
r0r241782
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
r0r241782
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
r0r241782
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
r0r241782
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
r0r241782
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
r0r241782
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
r241781r241782
1/***************************************************************************
1#include "pci.h"
22
3    machine/pci.c
3const device_type PCI_ROOT   = &device_creator<pci_root_device>;
4const device_type PCI_BRIDGE = &device_creator<pci_bridge_device>;
45
5    PCI bus
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)
69
7    The PCI bus is a 32-bit bus introduced by Intel, so it is little endian
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)
815
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   AM_RANGE(0x2c, 0x2f) AM_READ16(subvendor_r,          0x0000ffff)
17   AM_RANGE(0x2c, 0x2f) AM_READ16(subsystem_r,          0xffff0000)
18ADDRESS_MAP_END
1619
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
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}
2628
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
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}
6736
68    Information on PCI vendors can be found at http://www.pcidatabase.com/
37void pci_device::device_start()
38{
39}
6940
70***************************************************************************/
41void pci_device::device_reset()
42{
43}
7144
72#include "emu.h"
73#include "machine/pci.h"
45READ16_MEMBER(pci_device::vendor_r)
46{
47   return main_id >> 16;
48}
7449
75#define LOG_PCI 0
50READ16_MEMBER(pci_device::device_r)
51{
52   return main_id;
53}
7654
77//**************************************************************************
78//  GLOBAL VARIABLES
79//**************************************************************************
55READ32_MEMBER(pci_device::class_rev_r)
56{
57   return (pclass << 8) | revision;
58}
8059
81const device_type PCI_BUS_LEGACY = &device_creator<pci_bus_legacy_device>;
60READ8_MEMBER(pci_device::cache_line_size_r)
61{
62   return 0x00;
63}
8264
83//**************************************************************************
84//  LIVE DEVICE
85//**************************************************************************
65READ8_MEMBER(pci_device::latency_timer_r)
66{
67   return 0x00;
68}
8669
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)
70READ8_MEMBER(pci_device::header_type_r)
9371{
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;
72   return 0x00;
10073}
10174
102/***************************************************************************
103    INLINE FUNCTIONS
104***************************************************************************/
75READ8_MEMBER(pci_device::bist_r)
76{
77   return 0x00;
78}
10579
106READ32_MEMBER( pci_bus_legacy_device::read )
80READ16_MEMBER(pci_device::subvendor_r)
10781{
108   UINT32 result = 0xffffffff;
109   int function, reg;
82   return subsystem_id >> 16;
83}
11084
111   offset %= 2;
85READ16_MEMBER(pci_device::subsystem_r)
86{
87   return subsystem_id;
88}
11289
113   switch (offset)
114   {
115      case 0:
116         result = m_address;
117         break;
90void pci_device::scan_sub_devices(pci_device **devices, dynamic_array<pci_device *> &all, dynamic_array<pci_device *> &bridges, device_t *root)
91{
92}
11893
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   }
94void pci_device::reset_all_mappings()
95{
96}
13297
133   if (LOG_PCI)
134      logerror("read('%s'): offset=%d result=0x%08X\n", tag(), offset, result);
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}
135104
136   return result;
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{
137108}
138109
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}
139114
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}
140119
141pci_bus_legacy_device *pci_bus_legacy_device::pci_search_bustree(int busnum, int devicenum, pci_bus_legacy_device *pcibus)
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)
142122{
143   int a;
144   pci_bus_legacy_device *ret;
123}
145124
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;
125void agp_device::device_start()
126{
127   pci_device::device_start();
157128}
158129
130void agp_device::device_reset()
131{
132   pci_device::device_reset();
133}
159134
160135
161WRITE32_MEMBER( pci_bus_legacy_device::write )
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)
162141{
163   offset %= 2;
142}
164143
165   if (LOG_PCI)
166      logerror("write('%s'): offset=%d data=0x%08X\n", tag(), offset, data);
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}
167150
168   switch (offset)
169   {
170      case 0:
171         m_address = data;
151READ8_MEMBER(pci_bridge_device::header_type_r)
152{
153   return 0x01;
154}
172155
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;
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}
190160
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);
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);
203189         }
204         break;
205   }
190      }
206191}
207192
193void pci_bridge_device::device_reset()
194{
195   pci_device::device_reset();
196   regenerate_config_mapping();
197}
208198
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}
209205
210READ64_MEMBER(pci_bus_legacy_device::read_64be)
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)
211209{
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);
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);
219217}
220218
221WRITE64_MEMBER(pci_bus_legacy_device::write_64be)
219
220void pci_bridge_device::regenerate_config_mapping()
222221{
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);
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);
229227}
230228
231229
232void pci_bus_legacy_device::add_sibling(pci_bus_legacy_device *sibling, int busnum)
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)
233232{
234   m_siblings[m_siblings_count] = sibling;
235   m_siblings_busnum[m_siblings_count] = busnum;
236   m_siblings_count++;
237233}
238234
235void agp_bridge_device::device_start()
236{
237   pci_bridge_device::device_start();
238}
239239
240//-------------------------------------------------
241//  device_post_load - handle updating after a
242//  restore
243//-------------------------------------------------
240void agp_bridge_device::device_reset()
241{
242   pci_bridge_device::device_reset();
243}
244244
245void pci_bus_legacy_device::device_post_load()
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)
246255{
247   if (m_devicenum != -1)
248   {
249      m_busnumaddr = pci_search_bustree(m_busnumber, m_devicenum, this);
250   }
251256}
252257
253//-------------------------------------------------
254//  device_start - device-specific startup
255//-------------------------------------------------
258device_t *pci_host_device::bus_root()
259{
260   return owner();
261}
256262
257void pci_bus_legacy_device::device_start()
263void pci_host_device::device_start()
258264{
259   /* store a pointer back to the device */
260   m_devicenum = -1;
265   pci_bridge_device::device_start();
261266
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]);
267   memory_window_start = memory_window_end = memory_offset = 0;
268   io_window_start = io_window_end = io_offset = 0;
269}
266270
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   }
271void pci_host_device::device_reset()
272{
273   pci_bridge_device::device_reset();
274   reset_all_mappings();
275   regenerate_mapping();
272276
273   /* register pci states */
274   save_item(NAME(m_address));
275   save_item(NAME(m_devicenum));
276   save_item(NAME(m_busnum));
277   config_address = 0;
277278}
278279
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);
279285
280//-------------------------------------------------
281//  device_reset - device-specific reset
282//-------------------------------------------------
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}
283289
284void pci_bus_legacy_device::device_reset()
290READ32_MEMBER(pci_host_device::config_address_r)
285291{
286   /* reset the drive state */
287   m_devicenum = -1;
288   m_address = 0;
292   return config_address;
289293}
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
r241781r241782
1/***************************************************************************
1#ifndef PCI_H
2#define PCI_H
23
3    machine/pci.h
4#include "emu.h"
45
5    PCI bus
6#define MCFG_PCI_ROOT_ADD(_tag) \
7   MCFG_DEVICE_ADD(_tag, PCI_ROOT, 0)
68
7***************************************************************************/
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);
812
9#ifndef PCI_H
10#define PCI_H
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)
1115
12//**************************************************************************
13//  TYPE DEFINITIONS
14//**************************************************************************
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)
1518
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);
19#define MCFG_PCI_BRIDGE_ADD(_tag, _main_id, _revision) \
20   MCFG_PCI_DEVICE_ADD(_tag, PCI_BRIDGE, _main_id, _revision, 0x060400, 0x00000000)
1821
19// ======================> pci_bus_legacy_device
22#define MCFG_AGP_BRIDGE_ADD(_tag, _type, _main_id, _revision) \
23   MCFG_PCI_DEVICE_ADD(_tag, _type, _main_id, _revision, 0x060400, 0x00000000)
2024
21class pci_bus_legacy_device :  public device_t
22{
25class pci_device : public device_t {
2326public:
24   // construction/destruction
25   pci_bus_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
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);
2628
27   DECLARE_READ32_MEMBER( read );
28   DECLARE_WRITE32_MEMBER( write );
29   void set_ids(UINT32 main_id, UINT8 revision, UINT32 pclass, UINT32 subsystem_id);
2930
30   DECLARE_READ64_MEMBER( read_64be );
31   DECLARE_WRITE64_MEMBER( write_64be );
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);
3236
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   void map_config(UINT8 device, address_space *config_space);
3738
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);
39   virtual DECLARE_ADDRESS_MAP(config_map, 32);
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
4151protected:
42   // device-level overrides
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
4364   virtual void device_start();
4465   virtual void device_reset();
45   virtual void device_post_load();
4666
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
47108private:
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;
109   address_space_config configure_space_config;
110};
57111
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
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();
62119};
63120
64// device type definition
65extern const device_type PCI_BUS_LEGACY;
121class pci_host_device : public pci_bridge_device {
122public:
123   DECLARE_ADDRESS_MAP(io_configuration_access_map, 32);
66124
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);
67126
68/***************************************************************************
69    DEVICE CONFIGURATION MACROS
70***************************************************************************/
127protected:
128   address_space *memory_space, *io_space;
71129
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);
130   UINT64 memory_window_start, memory_window_end, memory_offset;
131   UINT64 io_window_start, io_window_end, io_offset;
79132
133   virtual void device_start();
134   virtual void device_reset();
80135
81#endif /* PCI_H */
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
trunk/src/emu/sound/pci-ac97.c
r0r241782
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
r0r241782
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
r0r241782
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
r0r241782
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
r241781r241782
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#-------------------------------------------------
7384# Apple custom sound chips
7485#@src/emu/sound/asc.h,SOUNDS += ASC
7586#@src/emu/sound/awacs.h,SOUNDS += AWACS
r241781r241782
123134
124135
125136#-------------------------------------------------
137#-------------------------------------------------
138# AC97
139#@src/emu/sound/pic-ac97.h,SOUNDS += AC97
140#-------------------------------------------------
141
142ifneq ($(filter AC97,$(SOUNDS)),)
143SOUNDOBJS += $(SOUNDOBJ)/pci-ac97.o
144endif
126145# CEM 3394 analog synthesizer chip
127146#@src/emu/sound/cem3394.h,SOUNDS += CEM3394
128147#-------------------------------------------------
r241781r241782
134153
135154
136155#-------------------------------------------------
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#-------------------------------------------------
137167# Data East custom sound chips
138168#@src/emu/sound/bsmt2000.h,SOUNDS += BSMT2000
139169#-------------------------------------------------
trunk/src/emu/tilemap.h
r241781r241782
443443   {
444444      gfx_element *gfx = decoder->gfx(_gfxnum);
445445      int code = rawcode % gfx->elements();
446      assert(rawcolor < gfx->colors()); // TEMPORARY ASSERT
446447      pen_data = gfx->get_data(code);
447      palette_base = gfx->colorbase() + gfx->granularity() * rawcolor;
448      palette_base = gfx->colorbase() + gfx->granularity() * (rawcolor % gfx->colors());
448449      flags = _flags;
449450      gfxnum = _gfxnum;
450451   }
trunk/src/emu/video/gf6800gt.c
r0r241782
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
r0r241782
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
r241781r241782
262262
263263void cirrus_vga_device::device_start()
264264{
265   vga_device::zero();
266   memset(&svga, 0, sizeof(svga));
265   zero();
267266
268267   int i;
269268   for (i = 0; i < 0x100; i++)
trunk/src/emu/video/upd7220.c
r241781r241782
371371
372372inline void upd7220_device::recompute_parameters()
373373{
374   int horiz_mult;
374   int horiz_mult = 16, vert_mult = 1;
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) ||
378            ((m_mode & UPD7220_MODE_INTERLACE_MASK) == UPD7220_MODE_INTERLACE_ON))
377   if((m_mode & UPD7220_MODE_DISPLAY_MASK) == UPD7220_MODE_DISPLAY_MIXED)
379378      horiz_mult = 8;
380   else
381      horiz_mult = 16;
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   }
382385
383386   int horiz_pix_total = (m_hs + m_hbp + m_hfp + m_aw) * horiz_mult;
384   int vert_pix_total = m_vs + m_vbp + m_al + m_vfp;
387   int vert_pix_total = (m_vs + m_vbp + m_al + m_vfp) * vert_mult;
385388
386389   //printf("%d %d %d %d\n",m_hs,m_hbp,m_aw,m_hfp);
387390   //printf("%d %d\n",m_aw * 8,m_pitch * 8);
r241781r241782
394397   rectangle visarea;
395398
396399   visarea.min_x = 0; //(m_hs + m_hbp) * 8;
397   visarea.min_y = 0; //m_vs + m_vbp;
400   visarea.min_y = m_vbp; //m_vs + m_vbp;
398401   visarea.max_x = m_aw * horiz_mult - 1;//horiz_pix_total - (m_hfp * 8) - 1;
399   visarea.max_y = m_al - 1;//vert_pix_total - m_vfp - 1;
402   visarea.max_y = m_al * vert_mult + m_vbp - 1;//vert_pix_total - m_vfp - 1;
400403
401404   LOG(("uPD7220 '%s' Screen: %u x %u @ %f Hz\n", tag(), horiz_pix_total, vert_pix_total, 1 / ATTOSECONDS_TO_DOUBLE(refresh)));
402405   LOG(("Visible Area: (%u, %u) - (%u, %u)\n", visarea.min_x, visarea.min_y, visarea.max_x, visarea.max_y));
r241781r241782
798801
799802void upd7220_device::draw_line(int x, int y)
800803{
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 };
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;
806807   UINT16 pattern = (m_ra[8]) | (m_ra[9]<<8);
807   int line_step = 0;
808   const int dot_dir[4] = {1, -1, -1, 1};
808809
809810   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));
810811
811   line_size = m_figs.m_dc;
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   }
812832
813   for(i = 0;i<line_size;i++)
833   switch(m_figs.m_dir & 3)
814834   {
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];
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;
821844   }
822845
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
827846   m_ead = (x >> 4) + (y * (m_pitch >> m_figs.m_gd));
828847   m_dad = x & 0x0f;
829848}
r241781r241782
854873
855874   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));
856875
857   for(int i = 0; i < m_figs.m_dc; i++)
876   for(int i = 0; i <= m_figs.m_dc; i++)
858877   {
859878      if(i >= m_figs.m_dm)
860879      {
r241781r241782
882901   {
883902      case 1:
884903      case 2:
885         x += m_figs.m_dc * dot_dir[((m_figs.m_dir >> 1) + 3) & 3];
904         x += (m_figs.m_dc + 1) * dot_dir[((m_figs.m_dir >> 1) + 3) & 3];
886905         break;
887906      default:
888         y += m_figs.m_dc * dot_dir[m_figs.m_dir >> 1];
907         y += (m_figs.m_dc + 1) * dot_dir[m_figs.m_dir >> 1];
889908         break;
890909   }
891910
r241781r241782
15351554         addr = sad + (y * m_pitch);
15361555
15371556         if (!m_draw_text_cb.isnull())
1538            m_draw_text_cb(bitmap, addr, (y * m_lr), wd, m_pitch, m_lr, m_dc, m_ead);
1557            m_draw_text_cb(bitmap, addr, (y * m_lr) + m_vbp, wd, m_pitch, m_lr, m_dc, m_ead);
15391558      }
15401559
15411560      sy = y + 1;
r241781r241782
15471566//  draw_graphics_line -
15481567//-------------------------------------------------
15491568
1550void upd7220_device::draw_graphics_line(bitmap_rgb32 &bitmap, UINT32 addr, int y, int wd)
1569void upd7220_device::draw_graphics_line(bitmap_rgb32 &bitmap, UINT32 addr, int y, int wd, int pitch)
15511570{
1552   int sx;
1571   int sx, al = bitmap.cliprect().height();
15531572
1554   for (sx = 0; sx < 80; sx++)
1573   for (sx = 0; sx < pitch; sx++)
15551574   {
1556      if((sx << 3) < m_aw * 16 && y < m_al)
1575      if((sx << 3) < m_aw * 16 && y < al)
15571576         m_display_cb(bitmap, y, sx << 3, addr);
15581577
15591578      addr+= wd + 1;
r241781r241782
15711590   UINT16 len;
15721591   int im, wd, area;
15731592   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;
15741595
15751596   for (area = 0; area < 4; area++)
15761597   {
r241781r241782
15831604         if(area >= 3) // TODO: most likely to be correct, Quarth (PC-98xx) definitely draws with area 2. We might see an area 3 someday ...
15841605            break;
15851606
1607         if(!interlace)
1608            len <<= 1;
1609
15861610         for (y = 0; y < len; y++)
15871611         {
15881612            /* TODO: again correct?
r241781r241782
15921616            addr = ((sad << 1) & 0x3ffff) + (y * (m_pitch << (im ? 0 : 1)));
15931617
15941618            if (!m_display_cb.isnull())
1595               draw_graphics_line(bitmap, addr, y + (bsy / m_lr), wd);
1619               draw_graphics_line(bitmap, addr, y + ((bsy + m_vbp) / (mixed ? 1 : m_lr)), wd, (m_pitch << interlace));
15961620         }
15971621      }
15981622      else
r241781r241782
16061630               addr = (sad & 0x3ffff) + ((y / m_lr) * m_pitch);
16071631
16081632               if (!m_draw_text_cb.isnull())
1609                  m_draw_text_cb(bitmap, addr, y + tsy, wd, m_pitch, m_lr, m_dc, m_ead);
1633                  m_draw_text_cb(bitmap, addr, y + tsy + m_vbp, wd, m_pitch, m_lr, m_dc, m_ead);
16101634            }
16111635         }
16121636      }
trunk/src/emu/video/upd7220.h
r241781r241782
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);
153   void draw_graphics_line(bitmap_rgb32 &bitmap, UINT32 addr, int y, int wd, int pitch);
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
r241781r241782
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#
177186#@src/emu/video/h63484.h,VIDEOS += H63484
178187#-------------------------------------------------
179188
trunk/src/lib/formats/cbm_crt.c
r241781r241782
44
55    cbm_crt.c
66
7    Commodore C64 cartridge images
7    Commodore C64 cartridge images in .CRT format
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
940*********************************************************************/
1041
1142#include "cbm_crt.h"
1243
1344
14
1545//**************************************************************************
1646//  MACROS/CONSTANTS
1747//**************************************************************************
r241781r241782
2252// slot names for the C64 cartridge types
2353static const char * CRT_C64_SLOT_NAMES[_CRT_C64_COUNT] =
2454{
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"
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
81111};
82112
83113
trunk/src/lib/formats/esq16_dsk.c
r241781r241782
5050
5151const char *esqimg_format::name() const
5252{
53   return "img";
53   return "esq16";
5454}
5555
5656const char *esqimg_format::description() const
trunk/src/lib/formats/esq8_dsk.c
r241781r241782
5252
5353const char *esq8img_format::name() const
5454{
55   return "img";
55   return "esq8";
5656}
5757
5858const char *esq8img_format::description() const
trunk/src/lib/formats/flopimg.c
r241781r241782
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 ||
10741076      type == CRC_END ||
10751077      type == SECTOR_LOOP_START ||
10761078      type == SECTOR_LOOP_END ||
r241781r241782
11121114      case CRC_FCS_START:
11131115         crcs[desc[i].p1].type = CRC_FCS;
11141116         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;
11151123      }
11161124
11171125   for(int i=0; desc[i].type != END; i++)
r241781r241782
11311139   case CRC_CBM: return 10;
11321140   case CRC_MACHEAD: return 8;
11331141   case CRC_FCS: return 20;
1142   case CRC_VICTOR_HDR: return 10;
1143   case CRC_VICTOR_DATA: return 20;
11341144   default: return 0;
11351145   }
11361146}
r241781r241782
12711281   // TODO
12721282}
12731283
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
12741305void floppy_image_format_t::fixup_crcs(UINT32 *buffer, gen_crc_info *crcs)
12751306{
12761307   for(int i=0; i != MAX_CRC_COUNT; i++)
12771308      if(crcs[i].write != -1) {
12781309         switch(crcs[i].type) {
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;
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;
12851318         }
12861319         if(crcs[i].fixup_mfm_clock) {
12871320            int offset = crcs[i].write + crc_cells_size(crcs[i].type);
r241781r241782
14031436         raw_w(buffer, offset, desc[index].p2, desc[index].p1);
14041437         break;
14051438
1439      case SYNC_GCR5:
1440         for(int i=0; i<desc[index].p1; i++)
1441            raw_w(buffer, offset, 10, 0xffff);
1442         break;
1443
14061444      case TRACK_ID:
14071445         mfm_w(buffer, offset, 8, track);
14081446         break;
r241781r241782
14271465         _8n1_w(buffer, offset, 8, track);
14281466         break;
14291467
1468      case TRACK_ID_VICTOR_GCR5:
1469         gcr5_w(buffer, offset, 10, 1 + track + (head * 0x80));
1470         break;
1471
14301472      case HEAD_ID:
14311473         mfm_w(buffer, offset, 8, head);
14321474         break;
r241781r241782
15361578      case CRC_CCITT_FM_START:
15371579      case CRC_MACHEAD_START:
15381580      case CRC_FCS_START:
1581      case CRC_VICTOR_HDR_START:
1582      case CRC_VICTOR_DATA_START:
15391583         crcs[desc[index].p1].start = offset;
15401584         break;
15411585
trunk/src/lib/formats/flopimg.h
r241781r241782
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
310311      TRACK_ID,               //!< Track id byte, mfm-encoded
311312      TRACK_ID_FM,            //!< Track id byte, fm-encoded
312313      TRACK_ID_DOS2_GCR5,     //!< Track id byte, gcr5-encoded
313314      TRACK_ID_DOS25_GCR5,    //!< Track id byte, gcr5-encoded
314315      TRACK_ID_GCR6,          //!< Track id low 6 bits, gcr6-encoded
315316      TRACK_ID_8N1,           //!< Track id byte, 8N1-encoded
317      TRACK_ID_VICTOR_GCR5,   //!< Track id byte, gcr5-encoded
316318      HEAD_ID,                //!< Head id byte, mfm-encoded
317319      HEAD_ID_FM,             //!< Head id byte, fm-encoded
318320      HEAD_ID_SWAP,           //!< Head id byte swapped (0->1, 1->0), mfm-encoded
r241781r241782
346348      CRC_CBM_START,          //!< Start a CBM checksum calculation (xor of original data values, gcr5-encoded), p1 = crc id
347349      CRC_MACHEAD_START,      //!< Start of the mac gcr6 sector header checksum calculation (xor of pre-encode 6-bits values, gcr6-encoded)
348350      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
349353      CRC_END,                //!< End the checksum, p1 = crc id
350354      CRC,                    //!< Write a checksum in the apporpriate format, p1 = crc id
351355
r241781r241782
565569   UINT8 sbyte_mfm_r(const UINT8 *bitstream, int &pos, int track_size);
566570
567571private:
568   enum { CRC_NONE, CRC_AMIGA, CRC_CBM, CRC_CCITT, CRC_CCITT_FM, CRC_MACHEAD, CRC_FCS };
572   enum { CRC_NONE, CRC_AMIGA, CRC_CBM, CRC_CCITT, CRC_CCITT_FM, CRC_MACHEAD, CRC_FCS, CRC_VICTOR_HDR, CRC_VICTOR_DATA };
569573   enum { MAX_CRC_COUNT = 64 };
570574
571575   //! Holds data used internally for generating CRCs.
r241781r241782
587591   void fixup_crc_ccitt_fm(UINT32 *buffer, const gen_crc_info *crc);
588592   void fixup_crc_machead(UINT32 *buffer, const gen_crc_info *crc);
589593   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);
590596   void fixup_crcs(UINT32 *buffer, gen_crc_info *crcs);
591597   void collect_crcs(const desc_e *desc, gen_crc_info *crcs);
592598
trunk/src/lib/formats/p6001_cas.c
r241781r241782
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
r241781r241782
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
r241781r241782
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
r0r241782
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
r0r241782
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
r241781r241782
215215   $(LIBOBJ)/formats/tzx_cas.o     \
216216   $(LIBOBJ)/formats/uef_cas.o     \
217217   $(LIBOBJ)/formats/upd765_dsk.o  \
218   $(LIBOBJ)/formats/victor9k_dsk.o\
218219   $(LIBOBJ)/formats/vg5k_cas.o    \
219220   $(LIBOBJ)/formats/vt_cas.o      \
220221   $(LIBOBJ)/formats/vt_dsk.o      \
trunk/src/lib/sqlite3/sqlite3.c
r241781r241782
84948494/*
84958495** Disable MMAP on platforms where it is known to not work
84968496*/
8497#if defined(__OpenBSD__) || defined(__QNXNTO__)
8497#if defined(__OpenBSD__) || defined(__QNXNTO__) || defined(__OS2__)
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
85008504#endif
85018505
85028506/*
trunk/src/lib/web/mongoose.c
r241781r241782
7272#include <stdlib.h>
7373#include <string.h>
7474#include <time.h>
75#ifdef __OS2__
76#include <sys/time.h>  // struct timeval
77#endif
7578#include <signal.h>
7679
7780#ifdef _WIN32
r241781r241782
120123#include <sys/socket.h>
121124#include <sys/select.h>
122125#define closesocket(x) close(x)
126#ifdef __OS2__
127typedef int socklen_t;
128#else
123129#define __cdecl
130#endif
124131#define INVALID_SOCKET (-1)
125132#define to64(x) strtoll(x, NULL, 10)
126133typedef int sock_t;
r241781r241782
11701177#include <dlfcn.h>
11711178#include <inttypes.h>
11721179#include <pwd.h>
1180#ifndef __OS2__
11731181#define O_BINARY 0
1182#endif
11741183#define INT64_FMT PRId64
11751184typedef struct stat file_stat_t;
11761185typedef pid_t process_id_t;
r241781r241782
51525161#define MAP_FAILED NULL
51535162#define MAP_PRIVATE 0
51545163#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
51555186#else
51565187#include <sys/mman.h>
51575188#endif
trunk/src/mame/audio/harddriv.c
r241781r241782
3939
4040void harddriv_state::update_68k_interrupts()
4141{
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);
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);
4444}
4545
4646
r241781r241782
8282
8383WRITE16_MEMBER(harddriv_state::hd68k_snd_reset_w)
8484{
85   m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
86   m_soundcpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
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);
8787   m_mainflag = m_soundflag = 0;
8888   update_68k_interrupts();
8989   logerror("%06X:Reset sound\n", space.device().safe_pcbase());
r241781r241782
235235
236236WRITE16_MEMBER(harddriv_state::hdsnd68k_320ports_w)
237237{
238   m_sounddsp->space(AS_IO).write_word((offset & 7) << 1, data);
238   if (m_sounddsp) m_sounddsp->space(AS_IO).write_word((offset & 7) << 1, data);
239239}
240240
241241
trunk/src/mame/drivers/atarig1.c
r241781r241782
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
431433   MCFG_MACHINE_START_OVERRIDE(atarig1_state,atarig1)
432434   MCFG_MACHINE_RESET_OVERRIDE(atarig1_state,atarig1)
433435
trunk/src/mame/drivers/atarisy1.c
r241781r241782
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
716718   MCFG_CPU_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8)
717719   MCFG_CPU_PROGRAM_MAP(sound_map)
718720
trunk/src/mame/drivers/atarisy2.c
r241781r241782
126126
127127
128128#include "emu.h"
129#include "includes/slapstic.h"
130129#include "includes/atarisy2.h"
131130#include "sound/tms5220.h"
132131#include "sound/2151intf.h"
r241781r241782
222221MACHINE_RESET_MEMBER(atarisy2_state,atarisy2)
223222{
224223   atarigen_state::machine_reset();
225   slapstic_reset();
224   m_slapstic->slapstic_reset();
226225   scanline_timer_reset(*m_screen, 64);
227226
228227   m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(atarisy2_state::atarisy2_direct_handler), this));
r241781r241782
12081207   MCFG_CPU_PROGRAM_MAP(sound_map)
12091208   MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)MASTER_CLOCK/2/16/16/16/10)
12101209
1210   MCFG_SLAPSTIC_ADD("slapstic")
1211
12111212   MCFG_MACHINE_START_OVERRIDE(atarisy2_state,atarisy2)
12121213   MCFG_MACHINE_RESET_OVERRIDE(atarisy2_state,atarisy2)
12131214
r241781r241782
31433144   int i;
31443145   UINT8 *cpu1 = memregion("maincpu")->base();
31453146
3146   slapstic_init(machine(), 105);
3147   m_slapstic->slapstic_init(machine(), 105);
31473148
31483149   /* expand the 16k program ROMs into full 64k chunks */
31493150   for (i = 0x10000; i < 0x90000; i += 0x20000)
r241781r241782
31643165   /* without the default EEPROM, 720 hangs at startup due to communication
31653166      issues with the sound CPU; temporarily increasing the sound CPU frequency
31663167      to ~2.2MHz "fixes" the problem */
3167   slapstic_init(machine(), 107);
3168   m_slapstic->slapstic_init(machine(), 107);
31683169
31693170   m_pedal_count = -1;
31703171   m_has_tms5220 = 1;
r241781r241782
31773178   int i;
31783179   UINT8 *cpu1 = memregion("maincpu")->base();
31793180
3180   slapstic_init(machine(), 108);
3181   m_slapstic->slapstic_init(machine(), 108);
31813182
31823183   /* expand the 32k program ROMs into full 64k chunks */
31833184   for (i = 0x10000; i < 0x90000; i += 0x20000)
r241781r241782
31933194   int i;
31943195   UINT8 *cpu1 = memregion("maincpu")->base();
31953196
3196   slapstic_init(machine(), 109);
3197   m_slapstic->slapstic_init(machine(), 109);
31973198
31983199   /* expand the 32k program ROMs into full 64k chunks */
31993200   for (i = 0x10000; i < 0x90000; i += 0x20000)
r241781r241782
32063207
32073208DRIVER_INIT_MEMBER(atarisy2_state,apb)
32083209{
3209   slapstic_init(machine(), 110);
3210   m_slapstic->slapstic_init(machine(), 110);
32103211
32113212   m_pedal_count = 2;
32123213   m_has_tms5220 = 1;
trunk/src/mame/drivers/atetris.c
r241781r241782
4949
5050#include "emu.h"
5151#include "cpu/m6502/m6502.h"
52#include "includes/slapstic.h"
5352#include "includes/atetris.h"
5453#include "sound/sn76496.h"
5554#include "sound/pokey.h"
r241781r241782
115114void atetris_state::machine_reset()
116115{
117116   /* reset the slapstic */
118   slapstic_reset();
119   m_current_bank = slapstic_bank() & 1;
117   m_slapstic_device->slapstic_reset();
118   m_current_bank = m_slapstic_device->slapstic_bank() & 1;
120119   reset_bank();
121120
122121   /* start interrupts going (32V clocked by 16V) */
r241781r241782
134133READ8_MEMBER(atetris_state::atetris_slapstic_r)
135134{
136135   int result = m_slapstic_base[0x2000 + offset];
137   int new_bank = slapstic_tweak(space, offset) & 1;
136   int new_bank = m_slapstic_device->slapstic_tweak(space, offset) & 1;
138137
139138   /* update for the new bank */
140139   if (new_bank != m_current_bank)
r241781r241782
308307   MCFG_CPU_ADD("maincpu", M6502,MASTER_CLOCK/8)
309308   MCFG_CPU_PROGRAM_MAP(main_map)
310309
310   MCFG_SLAPSTIC_ADD("slapstic")
311
311312   MCFG_NVRAM_ADD_1FILL("nvram")
312313
313314   /* video hardware */
r241781r241782
456457{
457458   UINT8 *rgn = memregion("maincpu")->base();
458459
459   slapstic_init(machine(), 101);
460   m_slapstic_device->slapstic_init(machine(), 101);
460461   m_slapstic_source = &rgn[0x10000];
461462   m_slapstic_base = &rgn[0x04000];
462463}
trunk/src/mame/drivers/beaminv.c
r241781r241782
11/***************************************************************************
22
3    Tekunon Kougyou Beam Invader hardware
3    Tekunon Kougyou(Teknon Kogyo) Beam Invader hardware
44
55    driver by Zsolt Vasvari
66
r241781r241782
385385 *
386386 *************************************/
387387
388GAMEL( 1979, beaminv,  0,       beaminv, beaminv, driver_device, 0, ROT270, "Tekunon Kougyou",   "Beam Invader", GAME_NO_SOUND | GAME_SUPPORTS_SAVE, layout_beaminv )
388GAMEL( 1979, beaminv,  0,       beaminv, beaminv, driver_device, 0, ROT270, "Teknon Kogyo", "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
r241781r241782
121121
122122#include "emu.h"
123123#include "cpu/i386/i386.h"
124#include "machine/pci.h"
124#include "machine/lpci.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"
130131#include "bus/isa/trident.h"
131132
132133
r241781r241782
661662   /* video hardware */
662663   MCFG_FRAGMENT_ADD( pcvideo_trident_vga )
663664
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
664670   /* sound hardware */
665671   MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker")
666672   MCFG_DAC_ADD("dac_l")
trunk/src/mame/drivers/chihiro.c
r241781r241782
358358
359359#include "emu.h"
360360#include "cpu/i386/i386.h"
361#include "machine/pci.h"
361#include "machine/lpci.h"
362362#include "machine/pic8259.h"
363363#include "machine/pit8253.h"
364364#include "machine/idectrl.h"
trunk/src/mame/drivers/cobra.c
r241781r241782
313313
314314#include "emu.h"
315315#include "cpu/powerpc/ppc.h"
316#include "machine/pci.h"
316#include "machine/lpci.h"
317317#include "machine/ataintf.h"
318318#include "machine/idehd.h"
319319#include "machine/jvshost.h"
trunk/src/mame/drivers/coolridr.c
r241781r241782
1818    - i8237 purpose is unknown (missing ROM for comms?).
1919    - verify zooming etc. our current algorithm is a bit ugly for text
2020
21
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
2226=======================================================================================================
2327
2428Cool Riders
2529Sega 1994
2630
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.
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.
3235
3336
3437PCB Layouts
trunk/src/mame/drivers/cyberbal.c
r241781r241782
389389   MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
390390   MCFG_CPU_PROGRAM_MAP(main_map)
391391
392   MCFG_SLAPSTIC_ADD("slapstic")
393
392394   MCFG_CPU_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8)
393395   MCFG_CPU_PROGRAM_MAP(sound_map)
394396   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
r241781r241782
1313
1414#include "emu.h"
1515#include "cpu/i386/i386.h"
16#include "machine/pci.h"
16#include "machine/lpci.h"
1717#include "machine/pckeybrd.h"
1818#include "machine/idectrl.h"
1919#include "video/pc_vga.h"
trunk/src/mame/drivers/funkball.c
r241781r241782
7171
7272#include "emu.h"
7373#include "cpu/i386/i386.h"
74#include "machine/pci.h"
74#include "machine/lpci.h"
7575#include "machine/pckeybrd.h"
7676#include "machine/idectrl.h"
7777#include "video/voodoo.h"
trunk/src/mame/drivers/galaxian.c
r241781r241782
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_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_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
r241781r241782
6464
6565#include "emu.h"
6666#include "cpu/i386/i386.h"
67#include "machine/pci.h"
67#include "machine/lpci.h"
6868#include "machine/pcshare.h"
6969#include "machine/pckeybrd.h"
7070#include "machine/idectrl.h"
trunk/src/mame/drivers/gammagic.c
r241781r241782
3232#include "machine/cr589.h"
3333//#include "machine/i82371sb.h"
3434//#include "machine/i82439tx.h"
35#include "machine/pci.h"
35#include "machine/lpci.h"
3636#include "machine/pcshare.h"
3737#include "machine/pckeybrd.h"
3838#include "video/pc_vga.h"
trunk/src/mame/drivers/gauntlet.c
r241781r241782
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
502504   MCFG_CPU_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8)
503505   MCFG_CPU_PROGRAM_MAP(sound_map)
504506
trunk/src/mame/drivers/harddriv.c
r241781r241782
330330#include "includes/slapstic.h"
331331#include "includes/harddriv.h"
332332
333#include "racedrivpan.lh"
333334
334335/*************************************
335336 *
r241781r241782
337338 *
338339 *************************************/
339340
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
340530static ADDRESS_MAP_START( driver_68k_map, AS_PROGRAM, 16, harddriv_state )
341531   ADDRESS_MAP_UNMAP_HIGH
342532   AM_RANGE(0x000000, 0x0fffff) AM_ROM
r241781r241782
345535   AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w)
346536   AM_RANGE(0x60c000, 0x60ffff) AM_WRITE(hd68k_irq_ack_w)
347537   AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(hd68k_wr0_write)
348   AM_RANGE(0xa80000, 0xafffff) AM_READ_PORT("a80000") AM_WRITE(hd68k_wr1_write)
538   AM_RANGE(0xa80000, 0xafffff) AM_READ(hd68k_a80000_r) AM_WRITE(hd68k_wr1_write)
349539   AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE(hd68k_adc8_r, hd68k_wr2_write)
350540   AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE(hd68k_adc12_r, hd68k_adc_control_w)
351541   AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(hd68k_gsp_io_r, hd68k_gsp_io_w)
r241781r241782
392582   AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w)
393583   AM_RANGE(0x60c000, 0x60ffff) AM_READWRITE(hd68k_port0_r, hd68k_irq_ack_w)
394584   AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(hd68k_wr0_write)
395   AM_RANGE(0xa80000, 0xafffff) AM_READ_PORT("a80000") AM_WRITE(hd68k_wr1_write)
585   AM_RANGE(0xa80000, 0xafffff) AM_READ(hd68k_a80000_r) AM_WRITE(hd68k_wr1_write)
396586   AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE(hd68k_adc8_r, hd68k_wr2_write)
397587   AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE(hd68k_adc12_r, hd68k_adc_control_w)
398588   AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(hd68k_gsp_io_r, hd68k_gsp_io_w)
r241781r241782
430620   AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w)
431621   AM_RANGE(0x60c000, 0x60ffff) AM_READWRITE(hd68k_port0_r, hd68k_irq_ack_w)
432622   AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(hd68k_wr0_write)
433   AM_RANGE(0xa80000, 0xafffff) AM_READ_PORT("a80000") AM_WRITE(hd68k_wr1_write)
623   AM_RANGE(0xa80000, 0xafffff) AM_READ(hd68k_a80000_r) AM_WRITE(hd68k_wr1_write)
434624   AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE(hd68k_adc8_r, hd68k_wr2_write)
435625   AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE(hd68k_adc12_r, hd68k_adc_control_w)
436626   AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(hd68k_gsp_io_r, hd68k_gsp_io_w)
r241781r241782
597787
598788
599789
790
600791/*************************************
601792 *
602793 *  Port definitions
r241781r241782
604795 *************************************/
605796
606797static INPUT_PORTS_START( harddriv )
607   PORT_START("IN0")       /* 600000 */
798   PORT_START("mainpcb:IN0")       /* 600000 */
608799   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
609800   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
610801   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
611802   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
612   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
803   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
613804   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
614805   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
615806   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
616807   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
617808   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
618809
619   PORT_START("SW1")       /* 600002 */
810   PORT_START("mainpcb:SW1")       /* 600002 */
620811   PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
621812   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
622813   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r241781r241782
642833   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
643834   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
644835
645   PORT_START("a80000")
836   PORT_START("mainpcb:a80000")
646837   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort")    /* abort */
647838   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key")  /* key */
648839   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )    /* aux coin */
649840   PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
650841
651   PORT_START("8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */
842   PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */
652843   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
653844
654   PORT_START("8BADC1")        /* b00000 - 8 bit ADC 1 - clutch pedal */
845   PORT_START("mainpcb:8BADC1")        /* b00000 - 8 bit ADC 1 - clutch pedal */
655846   PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal")
656847
657   PORT_START("8BADC2")        /* b00000 - 8 bit ADC 2 - seat */
848   PORT_START("mainpcb:8BADC2")        /* b00000 - 8 bit ADC 2 - seat */
658849   PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
659850
660   PORT_START("8BADC3")        /* b00000 - 8 bit ADC 3 - shifter lever Y */
851   PORT_START("mainpcb:8BADC3")        /* b00000 - 8 bit ADC 3 - shifter lever Y */
661852   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")
662853
663   PORT_START("8BADC4")        /* b00000 - 8 bit ADC 4 - shifter lever X*/
854   PORT_START("mainpcb:8BADC4")        /* b00000 - 8 bit ADC 4 - shifter lever X*/
664855   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")
665856
666   PORT_START("8BADC5")        /* b00000 - 8 bit ADC 5 - wheel */
857   PORT_START("mainpcb:8BADC5")        /* b00000 - 8 bit ADC 5 - wheel */
667858   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Wheel")
668859
669   PORT_START("8BADC6")        /* b00000 - 8 bit ADC 6 - line volts */
860   PORT_START("mainpcb:8BADC6")        /* b00000 - 8 bit ADC 6 - line volts */
670861   PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
671862
672   PORT_START("8BADC7")        /* b00000 - 8 bit ADC 7 - shift force */
863   PORT_START("mainpcb:8BADC7")        /* b00000 - 8 bit ADC 7 - shift force */
673864   PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
674865
675   PORT_START("12BADC0")       /* b80000 - 12 bit ADC 0 - steering wheel */
866   PORT_START("mainpcb:12BADC0")       /* b80000 - 12 bit ADC 0 - steering wheel */
676867   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
677868
678   PORT_START("12BADC1")       /* b80000 - 12 bit ADC 1 - force brake */
869   PORT_START("mainpcb:12BADC1")       /* b80000 - 12 bit ADC 1 - force brake */
679870   PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Force Brake")
680871
681   PORT_START("12BADC2")       /* b80000 - 12 bit ADC 2 */
872   PORT_START("mainpcb:12BADC2")       /* b80000 - 12 bit ADC 2 */
682873   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
683874
684   PORT_START("12BADC3")       /* b80000 - 12 bit ADC 3 */
875   PORT_START("mainpcb:12BADC3")       /* b80000 - 12 bit ADC 3 */
685876   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
877   
686878INPUT_PORTS_END
687879
688880
689881static INPUT_PORTS_START( racedriv )
690   PORT_START("IN0")       /* 600000 */
882   PORT_START("mainpcb:IN0")       /* 600000 */
691883   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
692884   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
693885   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
694886   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
695   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
887   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
696888   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
697889   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
698890   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
699891   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
700892   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
701893
702   PORT_START("SW1")       /* 600002 */
894   PORT_START("mainpcb:SW1")       /* 600002 */
703895   PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
704896   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
705897   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r241781r241782
725917   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
726918   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
727919
728   PORT_START("a80000")
920   PORT_START("mainpcb:a80000")
729921   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort")    /* abort */
730922   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key")  /* key */
731923   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )    /* aux coin */
732924   PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
733925
734   PORT_START("8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
926   PORT_START("mainpcb:8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
735927   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
736928
737   PORT_START("8BADC1")        /* b00000 - 8 bit ADC 1 - clutch pedal */
929   PORT_START("mainpcb:8BADC1")        /* b00000 - 8 bit ADC 1 - clutch pedal */
738930   PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal")
739931
740   PORT_START("8BADC2")        /* b00000 - 8 bit ADC 2 - seat */
932   PORT_START("mainpcb:8BADC2")        /* b00000 - 8 bit ADC 2 - seat */
741933   PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
742934
743   PORT_START("8BADC3")        /* b00000 - 8 bit ADC 3 - shifter lever Y */
935   PORT_START("mainpcb:8BADC3")        /* b00000 - 8 bit ADC 3 - shifter lever Y */
744936   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")
745937
746   PORT_START("8BADC4")        /* b00000 - 8 bit ADC 4 - shifter lever X*/
938   PORT_START("mainpcb:8BADC4")        /* b00000 - 8 bit ADC 4 - shifter lever X*/
747939   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")
748940
749   PORT_START("8BADC5")        /* b00000 - 8 bit ADC 5 - wheel */
941   PORT_START("mainpcb:8BADC5")        /* b00000 - 8 bit ADC 5 - wheel */
750942   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Wheel")
751943
752   PORT_START("8BADC6")        /* b00000 - 8 bit ADC 6 - line volts */
944   PORT_START("mainpcb:8BADC6")        /* b00000 - 8 bit ADC 6 - line volts */
753945   PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
754946
755   PORT_START("8BADC7")        /* b00000 - 8 bit ADC 7 */
947   PORT_START("mainpcb:8BADC7")        /* b00000 - 8 bit ADC 7 */
756948   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
757949
758   PORT_START("12BADC0")       /* b80000 - 12 bit ADC 0 - steering wheel */
950   PORT_START("mainpcb:12BADC0")       /* b80000 - 12 bit ADC 0 - steering wheel */
759951   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
760952
761   PORT_START("12BADC1")       /* b80000 - 12 bit ADC 1 - force brake */
953   PORT_START("mainpcb:12BADC1")       /* b80000 - 12 bit ADC 1 - force brake */
762954   PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Force Brake")
763955
764   PORT_START("12BADC2")       /* b80000 - 12 bit ADC 2 */
956   PORT_START("mainpcb:12BADC2")       /* b80000 - 12 bit ADC 2 */
765957   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
766958
767   PORT_START("12BADC3")       /* b80000 - 12 bit ADC 3 */
959   PORT_START("mainpcb:12BADC3")       /* b80000 - 12 bit ADC 3 */
768960   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
769961INPUT_PORTS_END
770962
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 )
771977
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
7721004static INPUT_PORTS_START( racedrivc )
773   PORT_START("IN0")       /* 60c000 */
1005   PORT_START("mainpcb:IN0")       /* 60c000 */
7741006   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
7751007   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
7761008   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
7771009   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
778   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
1010   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
7791011   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
7801012   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
7811013   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
7821014   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
7831015   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
7841016
785   PORT_START("SW1")       /* 60c002 */
1017   PORT_START("mainpcb:SW1")       /* 60c002 */
7861018   PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
7871019   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
7881020   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r241781r241782
8081040   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
8091041   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
8101042
811   PORT_START("a80000")
1043   PORT_START("mainpcb:a80000")
8121044   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort")
8131045   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key")
8141046   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )    /* aux coin */
r241781r241782
8211053   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL )  /* center edge on steering wheel */
8221054   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
8231055
824   PORT_START("8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
1056   PORT_START("mainpcb:8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
8251057   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
8261058
827   PORT_START("8BADC1")        /* b00000 - 8 bit ADC 1 - clutch pedal */
1059   PORT_START("mainpcb:8BADC1")        /* b00000 - 8 bit ADC 1 - clutch pedal */
8281060   PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal")
8291061
830   PORT_START("8BADC2")        /* b00000 - 8 bit ADC 2 */
1062   PORT_START("mainpcb:8BADC2")        /* b00000 - 8 bit ADC 2 */
8311063   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
8321064
833   PORT_START("8BADC3")        /* b00000 - 8 bit ADC 3 */
1065   PORT_START("mainpcb:8BADC3")        /* b00000 - 8 bit ADC 3 */
8341066   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
8351067
836   PORT_START("8BADC4")        /* b00000 - 8 bit ADC 4 */
1068   PORT_START("mainpcb:8BADC4")        /* b00000 - 8 bit ADC 4 */
8371069   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
8381070
839   PORT_START("8BADC5")        /* b00000 - 8 bit ADC 5 */
1071   PORT_START("mainpcb:8BADC5")        /* b00000 - 8 bit ADC 5 */
8401072   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
8411073
842   PORT_START("8BADC6")        /* b00000 - 8 bit ADC 6 - force brake */
1074   PORT_START("mainpcb:8BADC6")        /* b00000 - 8 bit ADC 6 - force brake */
8431075   PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Force Brake")
8441076
845   PORT_START("8BADC7")        /* b00000 - 8 bit ADC 7 */
1077   PORT_START("mainpcb:8BADC7")        /* b00000 - 8 bit ADC 7 */
8461078   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
8471079
848   PORT_START("12BADC0")       /* 400000 - steering wheel */
1080   PORT_START("mainpcb:12BADC0")       /* 400000 - steering wheel */
8491081   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
8501082
8511083   /* dummy ADC ports to end up with the same number as the full version */
852   PORT_START("12BADC1")
1084   PORT_START("mainpcb:12BADC1")
8531085   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
854   PORT_START("12BADC2")
1086   PORT_START("mainpcb:12BADC2")
8551087   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
856   PORT_START("12BADC3")
1088   PORT_START("mainpcb:12BADC3")
8571089   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
8581090INPUT_PORTS_END
8591091
8601092
8611093static INPUT_PORTS_START( stunrun )
862   PORT_START("IN0")       /* 60c000 */
1094   PORT_START("mainpcb:IN0")       /* 60c000 */
8631095   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
8641096   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
8651097   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
8661098   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
867   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
1099   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
8681100   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
8691101   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
8701102   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
8711103   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
8721104   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
8731105
874   PORT_START("SW1")       /* 60c002 */
1106   PORT_START("mainpcb:SW1")       /* 60c002 */
8751107   PORT_DIPNAME( 0x01, 0x00, "SW1:8" )
8761108   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
8771109   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r241781r241782
8971129   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
8981130   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
8991131
900   PORT_START("a80000")
1132   PORT_START("mainpcb:a80000")
9011133   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 )
9021134   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 )
9031135   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 )
9041136   PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
9051137
906   PORT_START("8BADC0")        /* b00000 - 8 bit ADC 0 */
1138   PORT_START("mainpcb:8BADC0")        /* b00000 - 8 bit ADC 0 */
9071139   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)
9081140
909   PORT_START("8BADC1")        /* b00000 - 8 bit ADC 1 */
1141   PORT_START("mainpcb:8BADC1")        /* b00000 - 8 bit ADC 1 */
9101142   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
9111143
912   PORT_START("8BADC2")        /* b00000 - 8 bit ADC 2 */
1144   PORT_START("mainpcb:8BADC2")        /* b00000 - 8 bit ADC 2 */
9131145   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)
9141146
915   PORT_START("8BADC3")        /* b00000 - 8 bit ADC 3 */
1147   PORT_START("mainpcb:8BADC3")        /* b00000 - 8 bit ADC 3 */
9161148   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
9171149
918   PORT_START("8BADC4")        /* b00000 - 8 bit ADC 4 */
1150   PORT_START("mainpcb:8BADC4")        /* b00000 - 8 bit ADC 4 */
9191151   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
9201152
921   PORT_START("8BADC5")        /* b00000 - 8 bit ADC 5 */
1153   PORT_START("mainpcb:8BADC5")        /* b00000 - 8 bit ADC 5 */
9221154   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
9231155
924   PORT_START("8BADC6")        /* b00000 - 8 bit ADC 6 */
1156   PORT_START("mainpcb:8BADC6")        /* b00000 - 8 bit ADC 6 */
9251157   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
9261158
927   PORT_START("8BADC7")        /* b00000 - 8 bit ADC 7 */
1159   PORT_START("mainpcb:8BADC7")        /* b00000 - 8 bit ADC 7 */
9281160   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
9291161
930   PORT_START("12BADC0")       /* b80000 - 12 bit ADC 0 */
1162   PORT_START("mainpcb:12BADC0")       /* b80000 - 12 bit ADC 0 */
9311163   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
9321164
933   PORT_START("12BADC1")       /* b80000 - 12 bit ADC 1 */
1165   PORT_START("mainpcb:12BADC1")       /* b80000 - 12 bit ADC 1 */
9341166   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
9351167
936   PORT_START("12BADC2")       /* b80000 - 12 bit ADC 2 */
1168   PORT_START("mainpcb:12BADC2")       /* b80000 - 12 bit ADC 2 */
9371169   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
9381170
939   PORT_START("12BADC3")       /* b80000 - 12 bit ADC 3 */
1171   PORT_START("mainpcb:12BADC3")       /* b80000 - 12 bit ADC 3 */
9401172   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
9411173
9421174   /* stunrun has its own coins */
r241781r241782
9481180
9491181
9501182static INPUT_PORTS_START( steeltal )
951   PORT_START("IN0")       /* 60c000 */
1183   PORT_START("mainpcb:IN0")       /* 60c000 */
9521184   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
9531185   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
9541186   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
9551187   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
956   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
1188   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
9571189   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
9581190   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
9591191   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
9601192   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
9611193   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
9621194
963   PORT_START("SW1")       /* 60c002 */
1195   PORT_START("mainpcb:SW1")       /* 60c002 */
9641196   PORT_DIPNAME( 0x01, 0x00, "SW1:8" )
9651197   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
9661198   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r241781r241782
9861218   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
9871219   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
9881220
989   PORT_START("a80000")
1221   PORT_START("mainpcb:a80000")
9901222   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Trigger")
9911223   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Thumb")
9921224   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Zoom")
9931225   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Real Helicopter Flight")
9941226   PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNUSED )
9951227
996   PORT_START("8BADC0")        /* b00000 - 8 bit ADC 0 */
1228   PORT_START("mainpcb:8BADC0")        /* b00000 - 8 bit ADC 0 */
9971229   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
9981230
999   PORT_START("8BADC1")        /* b00000 - 8 bit ADC 1 */
1231   PORT_START("mainpcb:8BADC1")        /* b00000 - 8 bit ADC 1 */
10001232   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )     /* volume control */
10011233
1002   PORT_START("8BADC2")        /* b00000 - 8 bit ADC 2 */
1234   PORT_START("mainpcb:8BADC2")        /* b00000 - 8 bit ADC 2 */
10031235   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
10041236
1005   PORT_START("8BADC3")        /* b00000 - 8 bit ADC 3 */
1237   PORT_START("mainpcb:8BADC3")        /* b00000 - 8 bit ADC 3 */
10061238   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
10071239
1008   PORT_START("8BADC4")        /* b00000 - 8 bit ADC 4 */
1240   PORT_START("mainpcb:8BADC4")        /* b00000 - 8 bit ADC 4 */
10091241   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
10101242
1011   PORT_START("8BADC5")        /* b00000 - 8 bit ADC 5 */
1243   PORT_START("mainpcb:8BADC5")        /* b00000 - 8 bit ADC 5 */
10121244   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
10131245
1014   PORT_START("8BADC6")        /* b00000 - 8 bit ADC 6 */
1246   PORT_START("mainpcb:8BADC6")        /* b00000 - 8 bit ADC 6 */
10151247   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
10161248
1017   PORT_START("8BADC7")        /* b00000 - 8 bit ADC 7 */
1249   PORT_START("mainpcb:8BADC7")        /* b00000 - 8 bit ADC 7 */
10181250   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
10191251
1020   PORT_START("12BADC0")       /* b80000 - 12 bit ADC 0 */
1252   PORT_START("mainpcb:12BADC0")       /* b80000 - 12 bit ADC 0 */
10211253   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)   /* left/right */
10221254
1023   PORT_START("12BADC1")       /* b80000 - 12 bit ADC 1 */
1255   PORT_START("mainpcb:12BADC1")       /* b80000 - 12 bit ADC 1 */
10241256   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)   /* up/down */
10251257
1026   PORT_START("12BADC2")       /* b80000 - 12 bit ADC 2 */
1258   PORT_START("mainpcb:12BADC2")       /* b80000 - 12 bit ADC 2 */
10271259   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)  PORT_NAME("Collective") PORT_REVERSE /* collective */
10281260
1029   PORT_START("12BADC3")       /* b80000 - 12 bit ADC 3 */
1261   PORT_START("mainpcb:12BADC3")       /* b80000 - 12 bit ADC 3 */
10301262   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)  PORT_NAME("Rudder") PORT_PLAYER(2)   /* rudder */
10311263
10321264   /* steeltal has its own coins */
r241781r241782
10381270
10391271
10401272static INPUT_PORTS_START( strtdriv )
1041   PORT_START("IN0")       /* 60c000 */
1273   PORT_START("mainpcb:IN0")       /* 60c000 */
10421274   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
10431275   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
10441276   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
10451277   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
1046   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
1278   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
10471279   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
10481280   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
10491281   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
10501282   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
10511283   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
10521284
1053   PORT_START("SW1")       /* 60c002 */
1285   PORT_START("mainpcb:SW1")       /* 60c002 */
10541286   PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
10551287   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
10561288   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r241781r241782
10761308   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
10771309   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
10781310
1079   PORT_START("a80000")
1311   PORT_START("mainpcb:a80000")
10801312   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 )   /* abort */
10811313   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 )   /* start */
10821314   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )    /* aux coin */
r241781r241782
10901322   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL )  /* center edge on steering wheel */
10911323   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
10921324
1093   PORT_START("8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
1325   PORT_START("mainpcb:8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
10941326   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
10951327
1096   PORT_START("8BADC1")        /* b00000 - 8 bit ADC 1 */
1328   PORT_START("mainpcb:8BADC1")        /* b00000 - 8 bit ADC 1 */
10971329   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
10981330
1099   PORT_START("8BADC2")        /* b00000 - 8 bit ADC 2 - voice mic */
1331   PORT_START("mainpcb:8BADC2")        /* b00000 - 8 bit ADC 2 - voice mic */
11001332   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
11011333
1102   PORT_START("8BADC3")        /* b00000 - 8 bit ADC 3 - volume */
1334   PORT_START("mainpcb:8BADC3")        /* b00000 - 8 bit ADC 3 - volume */
11031335   PORT_BIT( 0xff, 0X80, IPT_UNUSED )
11041336
1105   PORT_START("8BADC4")        /* b00000 - 8 bit ADC 4 - elevator */
1337   PORT_START("mainpcb:8BADC4")        /* b00000 - 8 bit ADC 4 - elevator */
11061338   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_NAME("Elevator") PORT_REVERSE  /* up/down */
11071339
1108   PORT_START("8BADC5")        /* b00000 - 8 bit ADC 5 - canopy */
1340   PORT_START("mainpcb:8BADC5")        /* b00000 - 8 bit ADC 5 - canopy */
11091341   PORT_BIT( 0xff, 0X80, IPT_UNUSED )
11101342
1111   PORT_START("8BADC6")        /* b00000 - 8 bit ADC 6 - brake */
1343   PORT_START("mainpcb:8BADC6")        /* b00000 - 8 bit ADC 6 - brake */
11121344   PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_NAME("Brake") PORT_REVERSE
11131345
1114   PORT_START("8BADC7")        /* b00000 - 8 bit ADC 7 - seat adjust */
1346   PORT_START("mainpcb:8BADC7")        /* b00000 - 8 bit ADC 7 - seat adjust */
11151347   PORT_BIT( 0xff, 0X80, IPT_UNUSED )
11161348
1117   PORT_START("12BADC0")       /* 400000 - steering wheel */
1349   PORT_START("mainpcb:12BADC0")       /* 400000 - steering wheel */
11181350   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
11191351
11201352   /* dummy ADC ports to end up with the same number as the full version */
1121   PORT_START("12BADC1")       /* FAKE */
1353   PORT_START("mainpcb:12BADC1")       /* FAKE */
11221354   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1123   PORT_START("12BADC2")       /* FAKE */
1355   PORT_START("mainpcb:12BADC2")       /* FAKE */
11241356   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1125   PORT_START("12BADC3")       /* FAKE */
1357   PORT_START("mainpcb:12BADC3")       /* FAKE */
11261358   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
11271359INPUT_PORTS_END
11281360
11291361
11301362static INPUT_PORTS_START( hdrivair )
1131   PORT_START("IN0")       /* 60c000 */
1363   PORT_START("mainpcb:IN0")       /* 60c000 */
11321364   PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
11331365   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
11341366   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
11351367   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )    /* HBLANK */
1136   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
1368   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
11371369   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 12-bit EOC */
11381370   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* 8-bit EOC */
11391371   PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
11401372   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
11411373   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
11421374
1143   PORT_START("SW1")       /* 60c002 */
1375   PORT_START("mainpcb:SW1")       /* 60c002 */
11441376   PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
11451377   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
11461378   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r241781r241782
11661398   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
11671399   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
11681400
1169   PORT_START("a80000")
1401   PORT_START("mainpcb:a80000")
11701402   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 )   /* abort */
11711403   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 )   /* start */
11721404   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )    /* aux coin */
r241781r241782
11801412   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL )  /* center edge on steering wheel */
11811413   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
11821414
1183   PORT_START("8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
1415   PORT_START("mainpcb:8BADC0")        /* b00000 - 8 bit ADC 0 - gas pedal */
11841416   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
11851417
1186   PORT_START("8BADC1")        /* b00000 - 8 bit ADC 1 */
1418   PORT_START("mainpcb:8BADC1")        /* b00000 - 8 bit ADC 1 */
11871419   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
11881420
1189   PORT_START("8BADC2")        /* b00000 - 8 bit ADC 2 - voice mic */
1421   PORT_START("mainpcb:8BADC2")        /* b00000 - 8 bit ADC 2 - voice mic */
11901422   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
11911423
1192   PORT_START("8BADC3")        /* b00000 - 8 bit ADC 3 - volume */
1424   PORT_START("mainpcb:8BADC3")        /* b00000 - 8 bit ADC 3 - volume */
11931425   PORT_BIT( 0xff, 0X80, IPT_UNUSED )
11941426
1195   PORT_START("8BADC4")        /* b00000 - 8 bit ADC 4 - elevator */
1427   PORT_START("mainpcb:8BADC4")        /* b00000 - 8 bit ADC 4 - elevator */
11961428   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_REVERSE PORT_NAME("Elevator") /* up/down */
11971429
1198   PORT_START("8BADC5")        /* b00000 - 8 bit ADC 5 - canopy */
1430   PORT_START("mainpcb:8BADC5")        /* b00000 - 8 bit ADC 5 - canopy */
11991431   PORT_BIT( 0xff, 0X80, IPT_UNUSED )
12001432
1201   PORT_START("8BADC6")        /* b00000 - 8 bit ADC 6 - brake */
1433   PORT_START("mainpcb:8BADC6")        /* b00000 - 8 bit ADC 6 - brake */
12021434   PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Brake")
12031435
1204   PORT_START("8BADC7")        /* b00000 - 8 bit ADC 7 - seat adjust */
1436   PORT_START("mainpcb:8BADC7")        /* b00000 - 8 bit ADC 7 - seat adjust */
12051437   PORT_BIT( 0xff, 0X80, IPT_UNUSED )
12061438
1207   PORT_START("12BADC0")       /* 400000 - steering wheel */
1439   PORT_START("mainpcb:12BADC0")       /* 400000 - steering wheel */
12081440   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_REVERSE PORT_NAME("Steering Wheel")
12091441
12101442   /* dummy ADC ports to end up with the same number as the full version */
1211   PORT_START("12BADC1")
1443   PORT_START("mainpcb:12BADC1")
12121444   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1213   PORT_START("12BADC2")
1445   PORT_START("mainpcb:12BADC2")
12141446   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1215   PORT_START("12BADC3")
1447   PORT_START("mainpcb:12BADC3")
12161448   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
12171449INPUT_PORTS_END
12181450
r241781r241782
12231455 *
12241456 *************************************/
12251457
1458INTERRUPT_GEN_MEMBER(harddriv_state::video_int_gen)
1459{
1460   m_video_int_state = 1;
1461   update_interrupts();
1462}
1463
1464
12261465/* Driver board without MSP (used by Race Drivin' cockpit) */
1227static MACHINE_CONFIG_START( driver_nomsp, harddriv_state )
1466static MACHINE_CONFIG_FRAGMENT( driver_nomsp )
12281467
12291468   /* basic machine hardware */
12301469   MCFG_CPU_ADD("maincpu", M68010, HARDDRIV_MASTER_CLOCK/4)
12311470   MCFG_CPU_PROGRAM_MAP(driver_68k_map)
1232   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
1471   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", harddriv_state, video_int_gen)
12331472   MCFG_CPU_PERIODIC_INT_DRIVER(harddriv_state, hd68k_irq_gen,  (double)HARDDRIV_MASTER_CLOCK/16/16/16/16/2)
12341473
1474   MCFG_SLAPSTIC_ADD("slapstic")
1475   MCFG_SLAPSTIC_68K_ACCESS(1)
1476
12351477   MCFG_CPU_ADD("gsp", TMS34010, HARDDRIV_GSP_CLOCK)
12361478   MCFG_CPU_PROGRAM_MAP(driver_gsp_map)
12371479   MCFG_TMS340X0_HALT_ON_RESET(TRUE) /* halt on reset */
r241781r241782
12411483   MCFG_TMS340X0_OUTPUT_INT_CB(WRITELINE(harddriv_state, hdgsp_irq_gen))
12421484   MCFG_TMS340X0_TO_SHIFTREG_CB(harddriv_state, hdgsp_write_to_shiftreg)
12431485   MCFG_TMS340X0_FROM_SHIFTREG_CB(harddriv_state, hdgsp_read_from_shiftreg)
1486   MCFG_VIDEO_SET_SCREEN("screen")
12441487
12451488   MCFG_QUANTUM_TIME(attotime::from_hz(30000))
12461489
1247   MCFG_MACHINE_START_OVERRIDE(harddriv_state,harddriv)
1248   MCFG_MACHINE_RESET_OVERRIDE(harddriv_state,harddriv)
1249
12501490   MCFG_M48T02_ADD("200e") // MK48T02
12511491   MCFG_EEPROM_2816_ADD("210e") // MK48Z02
12521492
r241781r241782
12611501   MCFG_SCREEN_UPDATE_DEVICE("gsp", tms34010_device, tms340x0_ind16)
12621502   MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
12631503   MCFG_SCREEN_PALETTE("palette")
1264
1265   MCFG_VIDEO_START_OVERRIDE(harddriv_state,harddriv)
12661504MACHINE_CONFIG_END
12671505
12681506
12691507/* Driver board with MSP (used by Hard Drivin' cockpit) */
1270static MACHINE_CONFIG_DERIVED( driver_msp, driver_nomsp )
1508static MACHINE_CONFIG_FRAGMENT( driver_msp )
12711509
1510   MCFG_FRAGMENT_ADD( driver_nomsp )
1511
12721512   /* basic machine hardware */
12731513   MCFG_CPU_ADD("msp", TMS34010, XTAL_50MHz)
12741514   MCFG_CPU_PROGRAM_MAP(driver_msp_map)
r241781r241782
12761516   MCFG_TMS340X0_PIXEL_CLOCK(5000000) /* pixel clock */
12771517   MCFG_TMS340X0_PIXELS_PER_CLOCK(2) /* pixels per clock */
12781518   MCFG_TMS340X0_OUTPUT_INT_CB(WRITELINE(harddriv_state, hdmsp_irq_gen))
1519   MCFG_VIDEO_SET_SCREEN("screen")
1520
12791521MACHINE_CONFIG_END
12801522
12811523
12821524/* Multisync board without MSP (used by STUN Runner, Steel Talons, Race Drivin' compact) */
1283static MACHINE_CONFIG_DERIVED( multisync_nomsp, driver_nomsp )
1525static MACHINE_CONFIG_FRAGMENT( multisync_nomsp )
12841526
1527   MCFG_FRAGMENT_ADD( driver_nomsp )
1528
12851529   /* basic machine hardware */
12861530   MCFG_CPU_MODIFY("maincpu")
12871531   MCFG_CPU_PROGRAM_MAP(multisync_68k_map)
r241781r241782
12991543
13001544
13011545/* Multisync board with MSP (used by Hard Drivin' compact) */
1302static MACHINE_CONFIG_DERIVED( multisync_msp, multisync_nomsp )
1546static MACHINE_CONFIG_FRAGMENT( multisync_msp )
13031547
1548   MCFG_FRAGMENT_ADD( multisync_nomsp )
1549
13041550   /* basic machine hardware */
13051551   MCFG_CPU_ADD("msp", TMS34010, XTAL_50MHz)
13061552   MCFG_CPU_PROGRAM_MAP(driver_msp_map)
r241781r241782
13081554   MCFG_TMS340X0_PIXEL_CLOCK(5000000) /* pixel clock */
13091555   MCFG_TMS340X0_PIXELS_PER_CLOCK(2) /* pixels per clock */
13101556   MCFG_TMS340X0_OUTPUT_INT_CB(WRITELINE(harddriv_state, hdmsp_irq_gen))
1557   MCFG_VIDEO_SET_SCREEN("screen")
1558
13111559MACHINE_CONFIG_END
13121560
13131561
13141562/* Multisync II board (used by Hard Drivin's Airborne) */
1315static MACHINE_CONFIG_DERIVED( multisync2, multisync_nomsp )
1563static MACHINE_CONFIG_FRAGMENT( multisync2 )
13161564
1565   MCFG_FRAGMENT_ADD( multisync_nomsp )
1566
13171567   /* basic machine hardware */
13181568   MCFG_CPU_MODIFY("maincpu")
13191569   MCFG_CPU_PROGRAM_MAP(multisync2_68k_map)
r241781r241782
14441694 *
14451695 *************************************/
14461696
1447static MACHINE_CONFIG_DERIVED( harddriv, driver_msp )
1448
1697static MACHINE_CONFIG_FRAGMENT( harddriv )
1698   MCFG_FRAGMENT_ADD( driver_msp )
14491699   /* basic machine hardware */        /* original driver board with MSP */
14501700   MCFG_FRAGMENT_ADD( adsp )           /* ADSP board */
14511701   MCFG_FRAGMENT_ADD( driversnd )      /* driver sound board */
14521702MACHINE_CONFIG_END
14531703
1704static MACHINE_CONFIG_FRAGMENT( harddrivc )
1705   MCFG_FRAGMENT_ADD( multisync_msp )
14541706
1455static MACHINE_CONFIG_DERIVED( harddrivc, multisync_msp )
1456
14571707   /* basic machine hardware */        /* multisync board with MSP */
14581708   MCFG_FRAGMENT_ADD( adsp )           /* ADSP board */
14591709   MCFG_FRAGMENT_ADD( driversnd )      /* driver sound board */
14601710MACHINE_CONFIG_END
14611711
1712static MACHINE_CONFIG_FRAGMENT( racedriv )
1713   MCFG_FRAGMENT_ADD( driver_nomsp )
14621714
1463static MACHINE_CONFIG_DERIVED( racedriv, driver_nomsp )
1464
14651715   /* basic machine hardware */        /* original driver board without MSP */
14661716   MCFG_FRAGMENT_ADD( adsp )           /* ADSP board */
14671717   MCFG_FRAGMENT_ADD( dsk )            /* DSK board */
14681718   MCFG_FRAGMENT_ADD( driversnd )      /* driver sound board */
14691719MACHINE_CONFIG_END
14701720
1721static MACHINE_CONFIG_FRAGMENT( racedrivc )
14711722
1472static MACHINE_CONFIG_DERIVED( racedrivc, multisync_nomsp )
1723   MCFG_FRAGMENT_ADD( multisync_nomsp )
14731724
14741725   /* basic machine hardware */        /* multisync board without MSP */
14751726   MCFG_FRAGMENT_ADD( adsp )           /* ADSP board */
r241781r241782
14781729MACHINE_CONFIG_END
14791730
14801731
1481static MACHINE_CONFIG_DERIVED( stunrun, multisync_nomsp )
1732static MACHINE_CONFIG_FRAGMENT( racedrivc_panorama_side )
14821733
1734   MCFG_FRAGMENT_ADD( multisync_nomsp )
1735
14831736   /* 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 */
14841754   MCFG_CPU_MODIFY("gsp")
14851755   MCFG_TMS340X0_PIXEL_CLOCK(5000000)  /* pixel clock */
14861756   MCFG_FRAGMENT_ADD( adsp )           /* ADSP board */
r241781r241782
14921762   /* sund hardware */
14931763   MCFG_SPEAKER_STANDARD_MONO("mono")
14941764
1495   MCFG_ATARI_JSA_II_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
1765   MCFG_ATARI_JSA_II_ADD("jsa", WRITELINE(harddriv_state, sound_int_write_line))
14961766   MCFG_ATARI_JSA_TEST_PORT("IN0", 5)
14971767   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
14981768MACHINE_CONFIG_END
14991769
1770static MACHINE_CONFIG_FRAGMENT( steeltal )
1771   MCFG_FRAGMENT_ADD( multisync_msp )
15001772
1501static MACHINE_CONFIG_DERIVED( steeltal, multisync_msp )
1502
15031773   /* basic machine hardware */        /* multisync board with MSP */
15041774   MCFG_FRAGMENT_ADD( ds3 )            /* DS III board */
15051775   MCFG_DEVICE_REMOVE("ds3sdsp")       /* DS III sound components are not present */
r241781r241782
15141784   /* sund hardware */
15151785   MCFG_SPEAKER_STANDARD_MONO("mono")
15161786
1517   MCFG_ATARI_JSA_III_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
1787   MCFG_ATARI_JSA_III_ADD("jsa", WRITELINE(harddriv_state, sound_int_write_line))
15181788   MCFG_ATARI_JSA_TEST_PORT("IN0", 5)
15191789   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
15201790MACHINE_CONFIG_END
15211791
1792static MACHINE_CONFIG_FRAGMENT( strtdriv )
15221793
1523static MACHINE_CONFIG_DERIVED( strtdriv, multisync_nomsp )
1794   MCFG_FRAGMENT_ADD( multisync_nomsp )
15241795
15251796   /* basic machine hardware */        /* multisync board */
15261797   MCFG_FRAGMENT_ADD( ds3 )            /* DS III board */
r241781r241782
15301801   MCFG_FRAGMENT_ADD( dsk )            /* DSK board */
15311802MACHINE_CONFIG_END
15321803
1804static MACHINE_CONFIG_FRAGMENT( hdrivair )
15331805
1534static MACHINE_CONFIG_DERIVED( hdrivair, multisync2 )
1806   MCFG_FRAGMENT_ADD( multisync2 )
15351807
15361808   /* basic machine hardware */        /* multisync II board */
15371809   MCFG_FRAGMENT_ADD( ds3 )            /* DS IV board */
15381810   MCFG_FRAGMENT_ADD( dsk2 )           /* DSK II board */
15391811MACHINE_CONFIG_END
15401812
1813const device_type HARDDRIV_BOARD_DEVICE = &device_creator<harddriv_board_device_state>;
15411814
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}
15421819
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
15432112/*************************************
15442113 *
15452114 *  ROM definition(s)
r241781r241782
15542123*/
15552124
15562125ROM_START( harddriv )
1557   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2126   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
15582127   ROM_LOAD16_BYTE( "136052-7105.200r", 0x000000, 0x010000, CRC(af5d5c3e) SHA1(09ccf4aa933413b71b6a42796d42299e1334902f) )
15592128   ROM_LOAD16_BYTE( "136052-7113.210r", 0x000001, 0x010000, CRC(3330a942) SHA1(b9210f6befd875be8bc1dbd31f44d0cb63166748) )
15602129   ROM_LOAD16_BYTE( "136052-2106.200s", 0x020000, 0x010000, CRC(a668db0e) SHA1(8ac405a0ba12bac9acabdb64970608d1b2b1a99b) )
r241781r241782
15642133   ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
15652134   ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
15662135
1567   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
2136   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
15682137   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
15692138   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
15702139
1571   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2140   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
15722141   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
15732142   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
15742143   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
15752144   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
15762145
1577   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
2146   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
15782147   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
15792148   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
15802149   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
15812150   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
15822151
1583   ROM_REGION( 0x800, "200e", 0 )
2152   ROM_REGION( 0x800, "mainpcb:200e", 0 )
15842153   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
15852154
1586   ROM_REGION( 0x800, "210e", 0 )
1587   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
2155   ROM_REGION( 0x800, "mainpcb:210e", 0 )
2156   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )   
15882157ROM_END
15892158
15902159
2160
15912161ROM_START( harddrivg )
1592   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2162   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
15932163   ROM_LOAD16_BYTE( "136052-7205.200r", 0x000000, 0x010000, CRC(b50b1968) SHA1(b6fd9f0600cba995bf31fd0f30f15f091bbbfb09) )
15942164   ROM_LOAD16_BYTE( "136052-7213.210r", 0x000001, 0x010000, CRC(e6d57108) SHA1(a4eda6db4ec67b1cb8f9bfee17d8adc93675ef8a) )
15952165   ROM_LOAD16_BYTE( "136052-4206.200s", 0x020000, 0x010000, CRC(70f78c50) SHA1(6baed202937c455c7c6e4baa74ee7858673a37fc) )
r241781r241782
15992169   ROM_LOAD16_BYTE( "136052-4211.200x", 0x0c0000, 0x010000, CRC(20d1b3d5) SHA1(b7c4a2cf6ba729530c24980704989b3a3efb343b) )
16002170   ROM_LOAD16_BYTE( "136052-4219.210x", 0x0c0001, 0x010000, CRC(105e7052) SHA1(a8d13c35418e58410cfd74c243b74963f1553068) )
16012171
1602   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
2172   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
16032173   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
16042174   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
16052175
1606   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2176   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
16072177   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
16082178   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
16092179   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
16102180   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
16112181
1612   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
2182   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
16132183   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
16142184   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
16152185   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
16162186   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
16172187
1618   ROM_REGION( 0x800, "200e", 0 )
2188   ROM_REGION( 0x800, "mainpcb:200e", 0 )
16192189   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
16202190
1621   ROM_REGION( 0x800, "210e", 0 )
2191   ROM_REGION( 0x800, "mainpcb:210e", 0 )
16222192   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
16232193ROM_END
16242194
16252195
16262196ROM_START( harddrivj )
1627   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2197   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
16282198   ROM_LOAD16_BYTE( "136052-7805.200r", 0x000000, 0x010000, CRC(f170c842) SHA1(842cef66646a664300a7e2b827c0bbd53e5f27ad) )
16292199   ROM_LOAD16_BYTE( "136052-7813.210r", 0x000001, 0x010000, CRC(e5a3367d) SHA1(96b3a6fb5561fa59d7ac4b840fa1891d02f1bd8c) )
16302200   ROM_LOAD16_BYTE( "136052-6806.200s", 0x020000, 0x010000, CRC(bd68696e) SHA1(33b173f210183fef84c4c04b3bff515d79b4924d) )
r241781r241782
16362206   ROM_LOAD16_BYTE( "136052-6811.200x", 0x0c0000, 0x010000, CRC(7bc5c8da) SHA1(ac228d6391bc9ac4238f953f9ad6eb93b3ff9958) )
16372207   ROM_LOAD16_BYTE( "136052-6819.210x", 0x0c0001, 0x010000, CRC(368b7e17) SHA1(e8742edec6961173df4450073a427cf3b9f3ff57) )
16382208
1639   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
2209   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
16402210   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
16412211   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
16422212
1643   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2213   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
16442214   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
16452215   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
16462216   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
16472217   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
16482218
1649   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
2219   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
16502220   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
16512221   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
16522222   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
16532223   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
16542224
1655   ROM_REGION( 0x800, "200e", 0 )
2225   ROM_REGION( 0x800, "mainpcb:200e", 0 )
16562226   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
16572227
1658   ROM_REGION( 0x800, "210e", 0 )
2228   ROM_REGION( 0x800, "mainpcb:210e", 0 )
16592229   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
16602230ROM_END
16612231
16622232
16632233ROM_START( harddrivb )
1664   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2234   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
16652235   ROM_LOAD16_BYTE( "136052-7905.200r", 0x000000, 0x010000, CRC(c4379a2e) SHA1(41dc66c1576c591520543343a798e0d80def2188) )
16662236   ROM_LOAD16_BYTE( "136052-7913.210r", 0x000001, 0x010000, CRC(1e76fa17) SHA1(80ec1de4c8a4622fb5c65ec3e8c194a8eabacc38) )
16672237   ROM_LOAD16_BYTE( "136052-6906.200s", 0x020000, 0x010000, CRC(47c4498b) SHA1(aad3463f29ffc733ab42a7abf739ca698cdd8ec1) )
r241781r241782
16712241   ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) )
16722242   ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) )
16732243
1674   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
2244   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
16752245   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
16762246   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
16772247
1678   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2248   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
16792249   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
16802250   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
16812251   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
16822252   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
16832253
1684   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
2254   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
16852255   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
16862256   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
16872257   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
16882258   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
16892259
1690   ROM_REGION( 0x800, "200e", 0 )
2260   ROM_REGION( 0x800, "mainpcb:200e", 0 )
16912261   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
16922262
1693   ROM_REGION( 0x800, "210e", 0 )
2263   ROM_REGION( 0x800, "mainpcb:210e", 0 )
16942264   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
16952265ROM_END
16962266
16972267
16982268ROM_START( harddrivb6 )
1699   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2269   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
17002270   ROM_LOAD16_BYTE( "136052-6905.200r", 0x000000, 0x010000, CRC(b1f38593) SHA1(958622128c7c687071211343ef657c38f928e25a) )
17012271   ROM_LOAD16_BYTE( "136052-6913.210r", 0x000001, 0x010000, CRC(15eb0da5) SHA1(0200328582c77d4d64e9f7df1f8755f7f4975ac3) )
17022272   ROM_LOAD16_BYTE( "136052-6906.200s", 0x020000, 0x010000, CRC(47c4498b) SHA1(aad3463f29ffc733ab42a7abf739ca698cdd8ec1) )
r241781r241782
17062276   ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) )
17072277   ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) )
17082278
1709   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
2279   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
17102280   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
17112281   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
17122282
1713   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2283   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
17142284   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
17152285   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
17162286   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
17172287   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
17182288
1719   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
2289   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
17202290   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
17212291   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
17222292   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
17232293   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
17242294
1725   ROM_REGION( 0x800, "200e", 0 )
2295   ROM_REGION( 0x800, "mainpcb:200e", 0 )
17262296   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
17272297
1728   ROM_REGION( 0x800, "210e", 0 )
2298   ROM_REGION( 0x800, "mainpcb:210e", 0 )
17292299   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
17302300ROM_END
17312301
17322302
17332303ROM_START( harddrivj6 )
1734   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2304   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
17352305   ROM_LOAD16_BYTE( "136052-6805.200r", 0x000000, 0x010000, CRC(e61ce7af) SHA1(38115a5a44f330abf1f7d684e630a1a232769f7c) )
17362306   ROM_LOAD16_BYTE( "136052-6813.210r", 0x000001, 0x010000, CRC(adfef1e7) SHA1(dc1bdb5ce9143a94d734ce9ecdf9195589608b65) )
17372307   ROM_LOAD16_BYTE( "136052-6806.200s", 0x020000, 0x010000, CRC(bd68696e) SHA1(33b173f210183fef84c4c04b3bff515d79b4924d) )
r241781r241782
17432313   ROM_LOAD16_BYTE( "136052-6811.200x", 0x0c0000, 0x010000, CRC(7bc5c8da) SHA1(ac228d6391bc9ac4238f953f9ad6eb93b3ff9958) )
17442314   ROM_LOAD16_BYTE( "136052-6819.210x", 0x0c0001, 0x010000, CRC(368b7e17) SHA1(e8742edec6961173df4450073a427cf3b9f3ff57) )
17452315
1746   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
2316   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
17472317   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
17482318   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
17492319
1750   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2320   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
17512321   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
17522322   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
17532323   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
17542324   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
17552325
1756   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
2326   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
17572327   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
17582328   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
17592329   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
17602330   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
17612331
1762   ROM_REGION( 0x800, "200e", 0 )
2332   ROM_REGION( 0x800, "mainpcb:200e", 0 )
17632333   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
17642334
1765   ROM_REGION( 0x800, "210e", 0 )
2335   ROM_REGION( 0x800, "mainpcb:210e", 0 )
17662336   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
17672337ROM_END
17682338
17692339
17702340ROM_START( harddrivb5 )
1771   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2341   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
17722342   ROM_LOAD16_BYTE( "136052-5905.200r", 0x000000, 0x010000, CRC(6dd28313) SHA1(c1f860470070dad7d8865aca508ecf5eb92fa8c5) )
17732343   ROM_LOAD16_BYTE( "136052-5913.210r", 0x000001, 0x010000, CRC(2e5a006f) SHA1(8a2da1868bbad54b33e993f5bf9ba61186caef5b) )
17742344   ROM_LOAD16_BYTE( "136052-5906.200s", 0x020000, 0x010000, CRC(206b59db) SHA1(2bbae0ac4af9cdda44d6d8b5fcf6b3b1c3103796) )
r241781r241782
17782348   ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) )
17792349   ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) )
17802350
1781   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
2351   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
17822352   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
17832353   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
17842354
1785   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2355   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
17862356   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
17872357   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
17882358   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
17892359   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
17902360
1791   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
2361   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
17922362   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
17932363   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
17942364   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
17952365   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
17962366
1797   ROM_REGION( 0x800, "200e", 0 )
2367   ROM_REGION( 0x800, "mainpcb:200e", 0 )
17982368   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
17992369
1800   ROM_REGION( 0x800, "210e", 0 )
2370   ROM_REGION( 0x800, "mainpcb:210e", 0 )
18012371   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
18022372ROM_END
18032373
18042374
18052375ROM_START( harddrivg4 )
1806   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2376   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
18072377   ROM_LOAD16_BYTE( "136052-4205.200r", 0x000000, 0x010000, CRC(94db6d9e) SHA1(98a509daacb9f18c7171246d1782d09a6456e241) )
18082378   ROM_LOAD16_BYTE( "136052-4213.210r", 0x000001, 0x010000, CRC(cacaf671) SHA1(7bd0f531402b2f10cb00bb8f7ca0b62eed23bffa) )
18092379   ROM_LOAD16_BYTE( "136052-4206.200s", 0x020000, 0x010000, CRC(70f78c50) SHA1(6baed202937c455c7c6e4baa74ee7858673a37fc) )
r241781r241782
18132383   ROM_LOAD16_BYTE( "136052-4211.200x", 0x0c0000, 0x010000, CRC(20d1b3d5) SHA1(b7c4a2cf6ba729530c24980704989b3a3efb343b) )
18142384   ROM_LOAD16_BYTE( "136052-4219.210x", 0x0c0001, 0x010000, CRC(105e7052) SHA1(a8d13c35418e58410cfd74c243b74963f1553068) )
18152385
1816   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
2386   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
18172387   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
18182388   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
18192389
1820   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2390   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
18212391   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
18222392   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
18232393   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
18242394   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
18252395
1826   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
2396   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
18272397   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
18282398   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
18292399   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
18302400   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
18312401
1832   ROM_REGION( 0x800, "200e", 0 )
2402   ROM_REGION( 0x800, "mainpcb:200e", 0 )
18332403   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
18342404
1835   ROM_REGION( 0x800, "210e", 0 )
2405   ROM_REGION( 0x800, "mainpcb:210e", 0 )
18362406   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
18372407ROM_END
18382408
18392409
18402410ROM_START( harddriv3 )
1841   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2411   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
18422412   ROM_LOAD16_BYTE( "136052-3105.200r", 0x000000, 0x010000, CRC(a42a2c69) SHA1(66233f25533106aab69df21db69f96368f1399a9) )
18432413   ROM_LOAD16_BYTE( "136052-3113.210r", 0x000001, 0x010000, CRC(358995b5) SHA1(f18c0da58ec7befefc61d5f0d35787516b775c92) )
18442414   ROM_LOAD16_BYTE( "136052-2106.200s", 0x020000, 0x010000, CRC(a668db0e) SHA1(8ac405a0ba12bac9acabdb64970608d1b2b1a99b) )
r241781r241782
18482418   ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
18492419   ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
18502420
1851   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
2421   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
18522422   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
18532423   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
18542424
1855   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2425   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
18562426   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
18572427   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
18582428   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
18592429   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
18602430
1861   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
2431   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
18622432   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
18632433   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
18642434   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
18652435   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
18662436
1867   ROM_REGION( 0x800, "200e", 0 )
2437   ROM_REGION( 0x800, "mainpcb:200e", 0 )
18682438   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
18692439
1870   ROM_REGION( 0x800, "210e", 0 )
2440   ROM_REGION( 0x800, "mainpcb:210e", 0 )
18712441   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
18722442ROM_END
18732443
18742444
18752445ROM_START( harddriv2 )
1876   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2446   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
18772447   ROM_LOAD16_BYTE( "136052-2105.200r", 0x000000, 0x010000, CRC(967903b9) SHA1(4363f3b3f08d00819f47a3682462fd0e5dc4e0ac) )
18782448   ROM_LOAD16_BYTE( "136052-2113.210r", 0x000001, 0x010000, CRC(c87f7067) SHA1(3d85d2ba818739ed05086502cd8e57438251b20b) )
18792449   ROM_LOAD16_BYTE( "136052-2106.200s", 0x020000, 0x010000, CRC(a668db0e) SHA1(8ac405a0ba12bac9acabdb64970608d1b2b1a99b) )
r241781r241782
18832453   ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
18842454   ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
18852455
1886   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
2456   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
18872457   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
18882458   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
18892459
1890   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2460   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
18912461   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
18922462   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
18932463   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
18942464   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
18952465
1896   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
2466   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
18972467   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
18982468   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
18992469   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
19002470   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
19012471
1902   ROM_REGION( 0x800, "200e", 0 )
2472   ROM_REGION( 0x800, "mainpcb:200e", 0 )
19032473   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
19042474
1905   ROM_REGION( 0x800, "210e", 0 )
2475   ROM_REGION( 0x800, "mainpcb:210e", 0 )
19062476   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
19072477ROM_END
19082478
19092479
19102480ROM_START( harddriv1 )
1911   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2481   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
19122482   ROM_LOAD16_BYTE( "136052-1105.200r", 0x000000, 0x010000, CRC(1dfda789) SHA1(83be0d66fe21e974f8d4582b0ab60245f1db7e55) )
19132483   ROM_LOAD16_BYTE( "136052-1113.210r", 0x000001, 0x010000, CRC(db2f6593) SHA1(864ea5604cea2507b180a91b35e349d3924bf9bc) )
19142484   ROM_LOAD16_BYTE( "136052-1106.200s", 0x020000, 0x010000, CRC(e82210fd) SHA1(916e674017f5187531c2de7961791c060f8412c7) )
r241781r241782
19182488   ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
19192489   ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
19202490
1921   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
2491   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
19222492   ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
19232493   ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
19242494
1925   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2495   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
19262496   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
19272497   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
19282498   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
19292499   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
19302500
1931   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
2501   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
19322502   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
19332503   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
19342504   ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
19352505   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
19362506
1937   ROM_REGION( 0x800, "200e", 0 )
2507   ROM_REGION( 0x800, "mainpcb:200e", 0 )
19382508   ROM_LOAD( "harddriv.200e",   0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
19392509
1940   ROM_REGION( 0x800, "210e", 0 )
2510   ROM_REGION( 0x800, "mainpcb:210e", 0 )
19412511   ROM_LOAD( "harddriv.210e",   0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
19422512ROM_END
19432513
19442514
19452515ROM_START( harddrivc )
1946   ROM_REGION( 0x100000, "maincpu", 0 )    /* 1MB for 68000 code */
2516   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )    /* 1MB for 68000 code */
19472517   ROM_LOAD16_BYTE( "136068-2102.200r", 0x000000, 0x010000, CRC(6252048b) SHA1(64caf3adfad6965768fc6d39a8bcde62fe6dfa9e) )
19482518   ROM_LOAD16_BYTE( "136068-2101.210r", 0x000001, 0x010000, CRC(4805ba06) SHA1(e0c2d935ced05b8162f2925520422184a81d5294) )
19492519   ROM_LOAD16_BYTE( "136068-2104.200s", 0x020000, 0x010000, CRC(8246f945) SHA1(633b6c9a5d3e33d3035ccdb7b6ad883c334a4db9) )
r241781r241782
19532523   ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) )
19542524   ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) )
19552525
1956   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
2526   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
19572527   ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
19582528   ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
19592529
1960   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2530   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
19612531   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
19622532   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
19632533   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
19642534   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
19652535
1966   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
2536   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
19672537   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
19682538   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
19692539   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
19702540   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
19712541
1972   ROM_REGION( 0x800, "200e", 0 )
2542   ROM_REGION( 0x800, "mainpcb:200e", 0 )
19732543   ROM_LOAD( "harddrivc.200e",  0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) )
19742544
1975   ROM_REGION( 0x800, "210e", 0 )
2545   ROM_REGION( 0x800, "mainpcb:210e", 0 )
19762546   ROM_LOAD( "harddrivc.210e",  0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) )
19772547ROM_END
19782548
19792549
19802550ROM_START( harddrivcg )
1981   ROM_REGION( 0x100000, "maincpu", 0 )    /* 1MB for 68000 code */
2551   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )    /* 1MB for 68000 code */
19822552   ROM_LOAD16_BYTE( "136068-2202.200r", 0x000000, 0x010000, CRC(ea09bdc2) SHA1(9e38ed0a47a2bfb6b80cbf1e0b3e891b94f30c10) )
19832553   ROM_LOAD16_BYTE( "136068-2201.210r", 0x000001, 0x010000, CRC(a5e9947f) SHA1(75973346c9399752d8ae82fbada3a24c6d5fec94) )
19842554   ROM_LOAD16_BYTE( "136068-2204.200s", 0x020000, 0x010000, CRC(65792c94) SHA1(89e93cf0d2afc4bd8a01155ba908c9aa7149dc78) )
r241781r241782
19882558   ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) )
19892559   ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) )
19902560
1991   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
2561   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
19922562   ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
19932563   ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
19942564
1995   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2565   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
19962566   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
19972567   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
19982568   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
19992569   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
20002570
2001   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
2571   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
20022572   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
20032573   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
20042574   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
20052575   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
20062576
2007   ROM_REGION( 0x800, "200e", 0 )
2577   ROM_REGION( 0x800, "mainpcb:200e", 0 )
20082578   ROM_LOAD( "harddrivc.200e",  0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) )
20092579
2010   ROM_REGION( 0x800, "210e", 0 )
2580   ROM_REGION( 0x800, "mainpcb:210e", 0 )
20112581   ROM_LOAD( "harddrivc.210e",  0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) )
20122582ROM_END
20132583
20142584
20152585ROM_START( harddrivcb )
2016   ROM_REGION( 0x100000, "maincpu", 0 )    /* 1MB for 68000 code */
2586   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )    /* 1MB for 68000 code */
20172587   ROM_LOAD16_BYTE( "136068-2102.200r", 0x000000, 0x010000, CRC(6252048b) SHA1(64caf3adfad6965768fc6d39a8bcde62fe6dfa9e) )
20182588   ROM_LOAD16_BYTE( "136068-2101.210r", 0x000001, 0x010000, CRC(4805ba06) SHA1(e0c2d935ced05b8162f2925520422184a81d5294) )
20192589   ROM_LOAD16_BYTE( "136068-2104.200s", 0x020000, 0x010000, CRC(8246f945) SHA1(633b6c9a5d3e33d3035ccdb7b6ad883c334a4db9) )
r241781r241782
20232593   ROM_LOAD16_BYTE( "136068-2914.200x", 0x0c0000, 0x010000, CRC(dd2998a5) SHA1(36c71549d114309b9072ced83ed149cad1d23646) )
20242594   ROM_LOAD16_BYTE( "136068-2913.210x", 0x0c0001, 0x010000, CRC(a211754d) SHA1(b93d4867f664caa76f2170ef0934194de29a5516) )
20252595
2026   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
2596   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
20272597   ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
20282598   ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
20292599
2030   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2600   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
20312601   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
20322602   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
20332603   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
20342604   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
20352605
2036   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
2606   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
20372607   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
20382608   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
20392609   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
20402610   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
20412611
2042   ROM_REGION( 0x800, "200e", 0 )
2612   ROM_REGION( 0x800, "mainpcb:200e", 0 )
20432613   ROM_LOAD( "harddrivc.200e",  0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) )
20442614
2045   ROM_REGION( 0x800, "210e", 0 )
2615   ROM_REGION( 0x800, "mainpcb:210e", 0 )
20462616   ROM_LOAD( "harddrivc.210e",  0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) )
20472617ROM_END
20482618
20492619
20502620ROM_START( harddrivc1 )
2051   ROM_REGION( 0x100000, "maincpu", 0 )    /* 1MB for 68000 code */
2621   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )    /* 1MB for 68000 code */
20522622   ROM_LOAD16_BYTE( "136068-1102.200r", 0x000000, 0x010000, CRC(f1d3779f) SHA1(1ab84fc920f6810aa7c1af80b0472ea17d07e58b) )
20532623   ROM_LOAD16_BYTE( "136068-1101.210r", 0x000001, 0x010000, CRC(3ea4d3d9) SHA1(3901e8c07bed35bf6a55ab92f5c7eb9335675792) )
20542624   ROM_LOAD16_BYTE( "136068-1104.200s", 0x020000, 0x010000, CRC(34133511) SHA1(71c56607cecd379761f700d181f6e91e7bb6fdfc) )
r241781r241782
20582628   ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) )
20592629   ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) )
20602630
2061   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
2631   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
20622632   ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
20632633   ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
20642634
2065   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2635   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
20662636   ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
20672637   ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
20682638   ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
20692639   ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
20702640
2071   ROM_REGION( 0x40000, "serialroms", 0 )      /* 4*128k for audio serial ROMs */
2641   ROM_REGION( 0x40000, "mainpcb:serialroms", 0 )      /* 4*128k for audio serial ROMs */
20722642   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
20732643   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
20742644   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
20752645   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
20762646
2077   ROM_REGION( 0x800, "200e", 0 )
2647   ROM_REGION( 0x800, "mainpcb:200e", 0 )
20782648   ROM_LOAD( "harddrivc.200e",  0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) )
20792649
2080   ROM_REGION( 0x800, "210e", 0 )
2650   ROM_REGION( 0x800, "mainpcb:210e", 0 )
20812651   ROM_LOAD( "harddrivc.210e",  0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) )
20822652ROM_END
20832653
20842654
20852655ROM_START( stunrun )
2086   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2656   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
20872657   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
20882658   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
20892659   ROM_LOAD16_BYTE( "136070-6104.200s", 0x020000, 0x010000, CRC(f469f91c) SHA1(488ea6251ff4028edaf00bb1ded74cefdc71a373) )
r241781r241782
20972667   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
20982668   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
20992669
2100   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
2670   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
21012671   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
21022672   ROM_CONTINUE(             0x004000, 0x00c000 )
21032673
2104   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2674   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
21052675   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
21062676   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
21072677   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241781r241782
21092679   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
21102680   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
21112681
2112   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
2682   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
21132683   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
21142684   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
21152685   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
21162686   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
21172687
2118   ROM_REGION( 0x800, "200e", 0 )
2688   ROM_REGION( 0x800, "mainpcb:200e", 0 )
21192689   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
21202690
2121   ROM_REGION( 0x800, "210e", 0 )
2691   ROM_REGION( 0x800, "mainpcb:210e", 0 )
21222692   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
21232693ROM_END
21242694
21252695
21262696ROM_START( stunrunj )
2127   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2697   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
21282698   ROM_LOAD16_BYTE( "136070-3402.200r", 0x000000, 0x010000, CRC(d8d56923) SHA1(248b22dab791c2d9ee6e6097dac9f3bf85d572be) )
21292699   ROM_LOAD16_BYTE( "136070-3401.210r", 0x000001, 0x010000, CRC(ce11126c) SHA1(cf27b56103048cc23dc6763763b7419583a27c76) )
21302700   ROM_LOAD16_BYTE( "136070-7404.200s", 0x020000, 0x010000, CRC(81da3e74) SHA1(38864aac479a8927d168ee977fd0981a7926d0fd) )
r241781r241782
21382708   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
21392709   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
21402710
2141   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
2711   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
21422712   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
21432713   ROM_CONTINUE(             0x004000, 0x00c000 )
21442714
2145   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2715   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
21462716   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
21472717   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
21482718   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241781r241782
21502720   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
21512721   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
21522722
2153   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
2723   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
21542724   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
21552725   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
21562726   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
21572727   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
21582728
2159   ROM_REGION( 0x800, "200e", 0 )
2729   ROM_REGION( 0x800, "mainpcb:200e", 0 )
21602730   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
21612731
2162   ROM_REGION( 0x800, "210e", 0 )
2732   ROM_REGION( 0x800, "mainpcb:210e", 0 )
21632733   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
21642734ROM_END
21652735
21662736
21672737ROM_START( stunrun5 )
2168   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2738   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
21692739   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
21702740   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
21712741   ROM_LOAD16_BYTE( "136070-5104.200s", 0x020000, 0x010000, CRC(d5c601fe) SHA1(ab61e11723ab9b92fb98b6f8e520a7b323caae64) )
r241781r241782
21792749   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
21802750   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
21812751
2182   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
2752   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
21832753   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
21842754   ROM_CONTINUE(             0x004000, 0x00c000 )
21852755
2186   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2756   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
21872757   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
21882758   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
21892759   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241781r241782
21912761   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
21922762   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
21932763
2194   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
2764   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
21952765   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
21962766   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
21972767   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
21982768   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
21992769
2200   ROM_REGION( 0x800, "200e", 0 )
2770   ROM_REGION( 0x800, "mainpcb:200e", 0 )
22012771   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
22022772
2203   ROM_REGION( 0x800, "210e", 0 )
2773   ROM_REGION( 0x800, "mainpcb:210e", 0 )
22042774   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
22052775ROM_END
22062776
22072777
22082778ROM_START( stunrune )
2209   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2779   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
22102780   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
22112781   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
22122782   ROM_LOAD16_BYTE( "136070-5004.200s", 0x020000, 0x010000, CRC(c2e4bde8) SHA1(766242455b0be6dc7b698cc6fe86d90991ca2e0a) )
r241781r241782
22202790   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
22212791   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
22222792
2223   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
2793   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
22242794   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
22252795   ROM_CONTINUE(             0x004000, 0x00c000 )
22262796
2227   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2797   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
22282798   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
22292799   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
22302800   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241781r241782
22322802   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
22332803   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
22342804
2235   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
2805   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
22362806   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
22372807   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
22382808   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
22392809   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
22402810
2241   ROM_REGION( 0x800, "200e", 0 )
2811   ROM_REGION( 0x800, "mainpcb:200e", 0 )
22422812   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
22432813
2244   ROM_REGION( 0x800, "210e", 0 )
2814   ROM_REGION( 0x800, "mainpcb:210e", 0 )
22452815   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
22462816ROM_END
22472817
22482818
22492819ROM_START( stunrun4 )
2250   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2820   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
22512821   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
22522822   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
22532823   ROM_LOAD16_BYTE( "136070-4104.200s", 0x020000, 0x010000, CRC(62c7700b) SHA1(31d7a39df7353e60b806c204bfdd75c06b17c984) )
r241781r241782
22612831   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
22622832   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
22632833
2264   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
2834   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
22652835   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
22662836   ROM_CONTINUE(             0x004000, 0x00c000 )
22672837
2268   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2838   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
22692839   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
22702840   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
22712841   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241781r241782
22732843   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
22742844   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
22752845
2276   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
2846   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
22772847   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
22782848   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
22792849   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
22802850   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
22812851
2282   ROM_REGION( 0x800, "200e", 0 )
2852   ROM_REGION( 0x800, "mainpcb:200e", 0 )
22832853   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
22842854
2285   ROM_REGION( 0x800, "210e", 0 )
2855   ROM_REGION( 0x800, "mainpcb:210e", 0 )
22862856   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
22872857ROM_END
22882858
22892859
22902860ROM_START( stunrun3 )
2291   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2861   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
22922862   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
22932863   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
22942864   ROM_LOAD16_BYTE( "136070-2104.200s", 0x020000, 0x010000, CRC(6acdeeaa) SHA1(a4cbe648ad2fee3bb945fbc8055b76be1f5c03d1) )
r241781r241782
23022872   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
23032873   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
23042874
2305   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
2875   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
23062876   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
23072877   ROM_CONTINUE(             0x004000, 0x00c000 )
23082878
2309   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2879   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
23102880   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
23112881   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
23122882   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241781r241782
23142884   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
23152885   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
23162886
2317   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
2887   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
23182888   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
23192889   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
23202890   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
23212891   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
23222892
2323   ROM_REGION( 0x800, "200e", 0 )
2893   ROM_REGION( 0x800, "mainpcb:200e", 0 )
23242894   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
23252895
2326   ROM_REGION( 0x800, "210e", 0 )
2896   ROM_REGION( 0x800, "mainpcb:210e", 0 )
23272897   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
23282898ROM_END
23292899
23302900
23312901ROM_START( stunrun3e )
2332   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2902   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
23332903   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
23342904   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
23352905   ROM_LOAD16_BYTE( "136070-3004.200s", 0x020000, 0x010000, CRC(d9474678) SHA1(090b78f9e9d2ecf4218821fc102861df1e27d95a) )
r241781r241782
23432913   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
23442914   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
23452915
2346   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
2916   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
23472917   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
23482918   ROM_CONTINUE(             0x004000, 0x00c000 )
23492919
2350   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2920   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
23512921   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
23522922   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
23532923   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241781r241782
23552925   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
23562926   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
23572927
2358   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
2928   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
23592929   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
23602930   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
23612931   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
23622932   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
23632933
2364   ROM_REGION( 0x800, "200e", 0 )
2934   ROM_REGION( 0x800, "mainpcb:200e", 0 )
23652935   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
23662936
2367   ROM_REGION( 0x800, "210e", 0 )
2937   ROM_REGION( 0x800, "mainpcb:210e", 0 )
23682938   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
23692939ROM_END
23702940
23712941
23722942ROM_START( stunrun2 )
2373   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2943   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
23742944   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
23752945   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
23762946   ROM_LOAD16_BYTE( "136070-2104.200s", 0x020000, 0x010000, CRC(6acdeeaa) SHA1(a4cbe648ad2fee3bb945fbc8055b76be1f5c03d1) )
r241781r241782
23842954   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
23852955   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
23862956
2387   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
2957   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
23882958   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
23892959   ROM_CONTINUE(             0x004000, 0x00c000 )
23902960
2391   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
2961   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
23922962   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
23932963   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
23942964   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241781r241782
23962966   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
23972967   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
23982968
2399   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
2969   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
24002970   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
24012971   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
24022972   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
24032973   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
24042974
2405   ROM_REGION( 0x800, "200e", 0 )
2975   ROM_REGION( 0x800, "mainpcb:200e", 0 )
24062976   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
24072977
2408   ROM_REGION( 0x800, "210e", 0 )
2978   ROM_REGION( 0x800, "mainpcb:210e", 0 )
24092979   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
24102980ROM_END
24112981
24122982
24132983ROM_START( stunrun2e )
2414   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
2984   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
24152985   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
24162986   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
24172987   ROM_LOAD16_BYTE( "136070-2004.200s", 0x020000, 0x010000, CRC(30303326) SHA1(49a279b5b02af97395dfb8c66410319a807aa4b9) )
r241781r241782
24252995   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
24262996   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
24272997
2428   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
2998   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
24292999   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
24303000   ROM_CONTINUE(             0x004000, 0x00c000 )
24313001
2432   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3002   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
24333003   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
24343004   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
24353005   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241781r241782
24373007   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
24383008   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
24393009
2440   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
3010   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
24413011   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
24423012   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
24433013   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
24443014   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
24453015
2446   ROM_REGION( 0x800, "200e", 0 )
3016   ROM_REGION( 0x800, "mainpcb:200e", 0 )
24473017   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
24483018
2449   ROM_REGION( 0x800, "210e", 0 )
3019   ROM_REGION( 0x800, "mainpcb:210e", 0 )
24503020   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
24513021ROM_END
24523022
24533023
24543024ROM_START( stunrun0 )
2455   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3025   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
24563026   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
24573027   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
24583028   ROM_LOAD16_BYTE( "136070-0304.200s", 0x020000, 0x010000, CRC(e7968b1b) SHA1(f2e5b4f64e553041abbe2610968f59cca425a4d4) )
r241781r241782
24663036   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
24673037   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
24683038
2469   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
3039   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
24703040   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
24713041   ROM_CONTINUE(             0x004000, 0x00c000 )
24723042
2473   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3043   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
24743044   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
24753045   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
24763046   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241781r241782
24783048   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
24793049   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
24803050
2481   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
3051   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
24823052   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
24833053   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
24843054   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
24853055   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
24863056
2487   ROM_REGION( 0x800, "200e", 0 )
3057   ROM_REGION( 0x800, "mainpcb:200e", 0 )
24883058   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
24893059
2490   ROM_REGION( 0x800, "210e", 0 )
3060   ROM_REGION( 0x800, "mainpcb:210e", 0 )
24913061   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
24923062ROM_END
24933063
24943064
24953065ROM_START( stunrunp )
2496   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3066   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
24973067   ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
24983068   ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
24993069   ROM_LOAD16_BYTE( "prog-hi0.s20", 0x020000, 0x010000, CRC(0be15a99) SHA1(52b152b23af305e95765c72052bb7aba846510d6) )
r241781r241782
25073077   ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
25083078   ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
25093079
2510   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
3080   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
25113081   ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
25123082   ROM_CONTINUE(             0x004000, 0x00c000 )
25133083
2514   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3084   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
25153085   ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
25163086   ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
25173087   ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
r241781r241782
25193089   ROM_LOAD16_BYTE( "136070-2120.9h",  0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
25203090   ROM_LOAD16_BYTE( "136070-2117.9k",  0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
25213091
2522   ROM_REGION( 0x40000, "jsa:oki1", 0 )   /* 256k for ADPCM samples */
3092   ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 )   /* 256k for ADPCM samples */
25233093   ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
25243094   ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
25253095   ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
25263096   ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
25273097
2528   ROM_REGION( 0x800, "200e", 0 )
3098   ROM_REGION( 0x800, "mainpcb:200e", 0 )
25293099   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
25303100
2531   ROM_REGION( 0x800, "210e", 0 )
3101   ROM_REGION( 0x800, "mainpcb:210e", 0 )
25323102   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
25333103ROM_END
25343104
25353105
25363106ROM_START( racedriv )
2537   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3107   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
25383108   ROM_LOAD16_BYTE( "136077-5002.200r", 0x000000, 0x010000, CRC(0a78adca) SHA1(a44722340ff7c99253107be092bec2e87cae340b) )
25393109   ROM_LOAD16_BYTE( "136077-5001.210r", 0x000001, 0x010000, CRC(74b4cd49) SHA1(48fc4344c092c9eb14249874ac305b87bba53e7e) )
25403110   ROM_LOAD16_BYTE( "136077-5004.200s", 0x020000, 0x010000, CRC(c0cbdf4e) SHA1(8c7f4f79e90dc7206d9d83d588822000a7a53c52) )
r241781r241782
25523122   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
25533123   ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) )
25543124
2555   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3125   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
25563126   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
25573127
2558   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3128   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
25593129   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
25603130   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
25613131
2562   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3132   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
25633133   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
25643134   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
25653135   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
25663136   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
25673137
2568   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3138   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
25693139   ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) )
25703140   ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) )
25713141
2572   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3142   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
25733143   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
25743144   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
25753145   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
25763146   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
25773147   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
25783148
2579   ROM_REGION( 0x800, "200e", 0 )
3149   ROM_REGION( 0x800, "mainpcb:200e", 0 )
25803150   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
25813151
2582   ROM_REGION( 0x800, "210e", 0 )
3152   ROM_REGION( 0x800, "mainpcb:210e", 0 )
25833153   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
25843154ROM_END
25853155
25863156
25873157ROM_START( racedrivb )
2588   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3158   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
25893159   ROM_LOAD16_BYTE( "136077-5002.200r", 0x000000, 0x010000, CRC(0a78adca) SHA1(a44722340ff7c99253107be092bec2e87cae340b) )
25903160   ROM_LOAD16_BYTE( "136077-5001.210r", 0x000001, 0x010000, CRC(74b4cd49) SHA1(48fc4344c092c9eb14249874ac305b87bba53e7e) )
25913161   ROM_LOAD16_BYTE( "136077-5004.200s", 0x020000, 0x010000, CRC(c0cbdf4e) SHA1(8c7f4f79e90dc7206d9d83d588822000a7a53c52) )
r241781r241782
26033173   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
26043174   ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) )
26053175
2606   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3176   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
26073177   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
26083178
2609   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3179   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
26103180   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
26113181   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
26123182
2613   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3183   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
26143184   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
26153185   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
26163186   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
26173187   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
26183188
2619   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3189   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
26203190   ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) )
26213191   ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) )
26223192
2623   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3193   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
26243194   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
26253195   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
26263196   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
26273197   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
26283198   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
26293199
2630   ROM_REGION( 0x800, "200e", 0 )
3200   ROM_REGION( 0x800, "mainpcb:200e", 0 )
26313201   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
26323202
2633   ROM_REGION( 0x800, "210e", 0 )
3203   ROM_REGION( 0x800, "mainpcb:210e", 0 )
26343204   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
26353205ROM_END
26363206
26373207
26383208ROM_START( racedrivg )
2639   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3209   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
26403210   ROM_LOAD16_BYTE( "136077-5202.200r", 0x000000, 0x010000, CRC(69016b69) SHA1(8da1314b4b6da6fc95479b9034190181bf778b25) )
26413211   ROM_LOAD16_BYTE( "136077-5201.210r", 0x000001, 0x010000, CRC(439a1ce7) SHA1(fc376c654c494d2895bcf85d5d8a9d6f17b6887e) )
26423212   ROM_LOAD16_BYTE( "136077-5204.200s", 0x020000, 0x010000, CRC(15df2b3d) SHA1(49235687b7be684dcd491b854f80c1d849894956) )
r241781r241782
26543224   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
26553225   ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) )
26563226
2657   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3227   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
26583228   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
26593229
2660   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3230   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
26613231   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
26623232   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
26633233
2664   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3234   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
26653235   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
26663236   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
26673237   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
26683238   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
26693239
2670   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3240   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
26713241   ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) )
26723242   ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) )
26733243
2674   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3244   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
26753245   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
26763246   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
26773247   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
26783248   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
26793249   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
26803250
2681   ROM_REGION( 0x800, "200e", 0 )
3251   ROM_REGION( 0x800, "mainpcb:200e", 0 )
26823252   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
26833253
2684   ROM_REGION( 0x800, "210e", 0 )
3254   ROM_REGION( 0x800, "mainpcb:210e", 0 )
26853255   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
26863256ROM_END
26873257
26883258
26893259ROM_START( racedriv4 )
2690   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3260   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
26913261   ROM_LOAD16_BYTE( "136077-4002.200r", 0x000000, 0x010000, CRC(afe1beb5) SHA1(66dba58f2a02eaa2d6306e53adffb662a8021031) )
26923262   ROM_LOAD16_BYTE( "136077-4001.210r", 0x000001, 0x010000, CRC(8a449e44) SHA1(03800b96a3992baa4bd37db20e559e08b12e55d1) )
26933263   ROM_LOAD16_BYTE( "136077-4004.200s", 0x020000, 0x010000, CRC(6d886150) SHA1(514de55de66a2b7fb14d6e2d896911e1b1af62f2) )
r241781r241782
27053275   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
27063276   ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) )
27073277
2708   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3278   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
27093279   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
27103280
2711   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3281   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
27123282   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
27133283   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
27143284
2715   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3285   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
27163286   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
27173287   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
27183288   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
27193289   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
27203290
2721   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3291   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
27223292   ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) )
27233293   ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) )
27243294
2725   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3295   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
27263296   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
27273297   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
27283298   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
27293299   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
27303300   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
27313301
2732   ROM_REGION( 0x800, "200e", 0 )
3302   ROM_REGION( 0x800, "mainpcb:200e", 0 )
27333303   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
27343304
2735   ROM_REGION( 0x800, "210e", 0 )
3305   ROM_REGION( 0x800, "mainpcb:210e", 0 )
27363306   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
27373307ROM_END
27383308
27393309
27403310ROM_START( racedrivb4 )
2741   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3311   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
27423312   ROM_LOAD16_BYTE( "136077-4002.200r", 0x000000, 0x010000, CRC(afe1beb5) SHA1(66dba58f2a02eaa2d6306e53adffb662a8021031) )
27433313   ROM_LOAD16_BYTE( "136077-4001.210r", 0x000001, 0x010000, CRC(8a449e44) SHA1(03800b96a3992baa4bd37db20e559e08b12e55d1) )
27443314   ROM_LOAD16_BYTE( "136077-4004.200s", 0x020000, 0x010000, CRC(6d886150) SHA1(514de55de66a2b7fb14d6e2d896911e1b1af62f2) )
r241781r241782
27563326   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
27573327   ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) )
27583328
2759   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3329   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
27603330   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
27613331
2762   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3332   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
27633333   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
27643334   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
27653335
2766   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3336   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
27673337   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
27683338   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
27693339   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
27703340   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
27713341
2772   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3342   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
27733343   ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) )
27743344   ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) )
27753345
2776   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3346   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
27773347   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
27783348   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
27793349   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
27803350   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
27813351   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
27823352
2783   ROM_REGION( 0x800, "200e", 0 )
3353   ROM_REGION( 0x800, "mainpcb:200e", 0 )
27843354   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
27853355
2786   ROM_REGION( 0x800, "210e", 0 )
3356   ROM_REGION( 0x800, "mainpcb:210e", 0 )
27873357   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
27883358ROM_END
27893359
27903360
27913361ROM_START( racedrivg4 )
2792   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3362   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
27933363   ROM_LOAD16_BYTE( "136077-4202.200r", 0x000000, 0x010000, CRC(a8c7e15e) SHA1(6aa4b819e5c8562c8eef92a411b2dc91ed35ae4c) )
27943364   ROM_LOAD16_BYTE( "136077-4201.210r", 0x000001, 0x010000, CRC(1dfa4df2) SHA1(1db0676f0ff1e7996c9791b041d9cd4ca9c70261) )
27953365   ROM_LOAD16_BYTE( "136077-4204.200s", 0x020000, 0x010000, CRC(29eea8c1) SHA1(1a8020efc0b963bbd05bd33dc3176db7c3234fcc) )
r241781r241782
28073377   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
28083378   ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) )
28093379
2810   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3380   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
28113381   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
28123382
2813   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3383   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
28143384   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
28153385   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
28163386
2817   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3387   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
28183388   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
28193389   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
28203390   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
28213391   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
28223392
2823   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3393   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
28243394   ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) )
28253395   ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) )
28263396
2827   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3397   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
28283398   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
28293399   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
28303400   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
28313401   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
28323402   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
28333403
2834   ROM_REGION( 0x800, "200e", 0 )
3404   ROM_REGION( 0x800, "mainpcb:200e", 0 )
28353405   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
28363406
2837   ROM_REGION( 0x800, "210e", 0 )
3407   ROM_REGION( 0x800, "mainpcb:210e", 0 )
28383408   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
28393409ROM_END
28403410
28413411
28423412ROM_START( racedriv3 )
2843   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3413   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
28443414   ROM_LOAD16_BYTE( "136077-3002.200r", 0x000000, 0x010000, CRC(78771253) SHA1(88fdae99eb4feb40db8ad171b3435315db3adedb) )
28453415   ROM_LOAD16_BYTE( "136077-3001.210r", 0x000001, 0x010000, CRC(c75373a4) SHA1(d2f14190218cfedf4478806a26c77edd4d7c73eb) )
28463416   ROM_LOAD16_BYTE( "136077-2004.200s", 0x020000, 0x010000, CRC(4eb19582) SHA1(52359d7839f3459aec4fdc16a659a29fa60feee4) )
r241781r241782
28583428   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
28593429   ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) )
28603430
2861   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3431   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
28623432   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
28633433
2864   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3434   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
28653435   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
28663436   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
28673437
2868   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3438   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
28693439   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
28703440   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
28713441   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
28723442   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
28733443
2874   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3444   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
28753445   ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) )
28763446   ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) )
28773447
2878   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3448   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
28793449   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
28803450   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
28813451   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
28823452   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
28833453   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
28843454
2885   ROM_REGION( 0x800, "200e", 0 )
3455   ROM_REGION( 0x800, "mainpcb:200e", 0 )
28863456   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
28873457
2888   ROM_REGION( 0x800, "210e", 0 )
3458   ROM_REGION( 0x800, "mainpcb:210e", 0 )
28893459   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
28903460ROM_END
28913461
28923462
28933463ROM_START( racedriv2 )
2894   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3464   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
28953465   ROM_LOAD16_BYTE( "136077-2002.200r", 0x000000, 0x010000, CRC(6b440e10) SHA1(8074a1de01e2cdc497a51339f9c05329d6f540b0) )
28963466   ROM_LOAD16_BYTE( "136077-2001.210r", 0x000001, 0x010000, CRC(eee12973) SHA1(0cd2e88c431d08fba5a73c903327f39f8692f3aa) )
28973467   ROM_LOAD16_BYTE( "136077-2004.200s", 0x020000, 0x010000, CRC(4eb19582) SHA1(52359d7839f3459aec4fdc16a659a29fa60feee4) )
r241781r241782
29093479   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
29103480   ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) )
29113481
2912   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3482   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
29133483   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
29143484
2915   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3485   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
29163486   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
29173487   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
29183488
2919   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3489   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
29203490   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
29213491   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
29223492   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
29233493   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
29243494
2925   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3495   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
29263496   ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) )
29273497   ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) )
29283498
2929   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3499   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
29303500   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
29313501   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
29323502   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
29333503   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
29343504   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
29353505
2936   ROM_REGION( 0x800, "200e", 0 )
3506   ROM_REGION( 0x800, "mainpcb:200e", 0 )
29373507   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
29383508
2939   ROM_REGION( 0x800, "210e", 0 )
3509   ROM_REGION( 0x800, "mainpcb:210e", 0 )
29403510   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
29413511ROM_END
29423512
29433513
29443514ROM_START( racedriv1 )
2945   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3515   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
29463516   ROM_LOAD16_BYTE( "136077-1002.200r", 0x000000, 0x010000, CRC(d39f6d53) SHA1(c278cd4109a65304a21dd1d8ba27375713a8b107) )
29473517   ROM_LOAD16_BYTE( "136077-1001.210r", 0x000001, 0x010000, CRC(e29e011c) SHA1(7044e7f9c8551309b5867a06672796411007a427) )
29483518   ROM_LOAD16_BYTE( "136077-1004.200s", 0x020000, 0x010000, CRC(809831e8) SHA1(681160deceff4df0f000c23f8514086dbbcc0c8d) )
r241781r241782
29603530   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
29613531   ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) )
29623532
2963   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3533   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
29643534   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
29653535
2966   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3536   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
29673537   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
29683538   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
29693539
2970   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3540   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
29713541   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
29723542   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
29733543   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
29743544   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
29753545
2976   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3546   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
29773547   ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) )
29783548   ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) )
29793549
2980   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3550   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
29813551   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
29823552   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
29833553   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
29843554   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
29853555   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
29863556
2987   ROM_REGION( 0x800, "200e", 0 )
3557   ROM_REGION( 0x800, "mainpcb:200e", 0 )
29883558   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
29893559
2990   ROM_REGION( 0x800, "210e", 0 )
3560   ROM_REGION( 0x800, "mainpcb:210e", 0 )
29913561   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
29923562ROM_END
29933563
29943564
29953565ROM_START( racedrivg1 )
2996   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3566   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
29973567   ROM_LOAD16_BYTE( "136077-1202.200r", 0x000000, 0x010000, CRC(bd363903) SHA1(8f0937725adabf5ee9e0ac015c83916e2575670a) )
29983568   ROM_LOAD16_BYTE( "136077-1201.210r", 0x000001, 0x010000, CRC(748c3be4) SHA1(ddf149f333d23e9c782ae447f6fb3f780680b3f5) )
29993569   ROM_LOAD16_BYTE( "136077-1204.200s", 0x020000, 0x010000, CRC(aef103bb) SHA1(52831858d3a45ad00e156c5b2a11e7fddf06bead) )
r241781r241782
30113581   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
30123582   ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) )
30133583
3014   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3584   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
30153585   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
30163586
3017   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3587   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
30183588   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
30193589   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
30203590
3021   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3591   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
30223592   ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
30233593   ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
30243594   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
30253595   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
30263596
3027   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3597   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
30283598   ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) )
30293599   ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) )
30303600
3031   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3601   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
30323602   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
30333603   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
30343604   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
30353605   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
30363606   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
30373607
3038   ROM_REGION( 0x800, "200e", 0 )
3608   ROM_REGION( 0x800, "mainpcb:200e", 0 )
30393609   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
30403610
3041   ROM_REGION( 0x800, "210e", 0 )
3611   ROM_REGION( 0x800, "mainpcb:210e", 0 )
30423612   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
30433613ROM_END
30443614
30453615
30463616ROM_START( racedrivb1 )
3047   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3617   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
30483618   ROM_LOAD16_BYTE( "136077-2002.200r", 0x000000, 0x010000, CRC(6b440e10) SHA1(8074a1de01e2cdc497a51339f9c05329d6f540b0) )
30493619   ROM_LOAD16_BYTE( "136077-2001.210r", 0x000001, 0x010000, CRC(eee12973) SHA1(0cd2e88c431d08fba5a73c903327f39f8692f3aa) )
30503620   ROM_LOAD16_BYTE( "136077-1104.200s", 0x020000, 0x010000, CRC(a9495f53) SHA1(68e7d983c0e1a84f5ad0743a230e6126169a6fd6) )
r241781r241782
30623632   ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
30633633   ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) )
30643634
3065   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3635   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
30663636   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
30673637
3068   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3638   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
30693639   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
30703640   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
30713641
3072   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3642   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
30733643   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
30743644   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
30753645   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
30763646   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
30773647
3078   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3648   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
30793649   ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) )
30803650   ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) )
30813651
3082   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3652   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
30833653   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
30843654   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
30853655   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
30863656   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
30873657   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
30883658
3089   ROM_REGION( 0x800, "200e", 0 )
3659   ROM_REGION( 0x800, "mainpcb:200e", 0 )
30903660   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
30913661
3092   ROM_REGION( 0x800, "210e", 0 )
3662   ROM_REGION( 0x800, "mainpcb:210e", 0 )
30933663   ROM_LOAD( "racedriv.210e",   0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) )
30943664ROM_END
30953665
30963666
30973667ROM_START( racedrivc )
3098   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3668   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
30993669   ROM_LOAD16_BYTE( "136078-5002.200r", 0x000000, 0x010000, CRC(ae8f79bd) SHA1(054f2d1948d6d03832c4557c3dd7667c0784716d) )
31003670   ROM_LOAD16_BYTE( "136078-5001.210r", 0x000001, 0x010000, CRC(ad896e7f) SHA1(7b047f0c972fac075db00faf19cdf9ccdcef5c63) )
31013671   ROM_LOAD16_BYTE( "136078-5004.200s", 0x020000, 0x010000, CRC(b8650bee) SHA1(a9905081e622e4a4fcec9aa08b87566ecdb9198b) )
r241781r241782
31133683   ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) )
31143684   ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) )
31153685
3116   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3686   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
31173687   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
31183688
3119   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3689   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
31203690   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
31213691   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
31223692
3123   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3693   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
31243694   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
31253695   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
31263696   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
31273697   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
31283698
3129   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3699   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
31303700   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
31313701   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
31323702
3133   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3703   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
31343704   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
31353705   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
31363706   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
31373707   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
31383708   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
31393709
3140   ROM_REGION( 0x800, "200e", 0 )
3710   ROM_REGION( 0x800, "mainpcb:200e", 0 )
31413711   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
31423712
3143   ROM_REGION( 0x800, "210e", 0 )
3713   ROM_REGION( 0x800, "mainpcb:210e", 0 )
31443714   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
31453715ROM_END
31463716
31473717
31483718ROM_START( racedrivcb )
3149   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3719   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
31503720   ROM_LOAD16_BYTE( "136078-5002.200r", 0x000000, 0x010000, CRC(ae8f79bd) SHA1(054f2d1948d6d03832c4557c3dd7667c0784716d) )
31513721   ROM_LOAD16_BYTE( "136078-5001.210r", 0x000001, 0x010000, CRC(ad896e7f) SHA1(7b047f0c972fac075db00faf19cdf9ccdcef5c63) )
31523722   ROM_LOAD16_BYTE( "136078-5004.200s", 0x020000, 0x010000, CRC(b8650bee) SHA1(a9905081e622e4a4fcec9aa08b87566ecdb9198b) )
r241781r241782
31643734   ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) )
31653735   ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) )
31663736
3167   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3737   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
31683738   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
31693739
3170   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3740   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
31713741   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
31723742   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
31733743
3174   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3744   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
31753745   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
31763746   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
31773747   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
31783748   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
31793749
3180   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3750   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
31813751   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
31823752   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
31833753
3184   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3754   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
31853755   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
31863756   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
31873757   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
31883758   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
31893759   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
31903760
3191   ROM_REGION( 0x800, "200e", 0 )
3761   ROM_REGION( 0x800, "mainpcb:200e", 0 )
31923762   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
31933763
3194   ROM_REGION( 0x800, "210e", 0 )
3764   ROM_REGION( 0x800, "mainpcb:210e", 0 )
31953765   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
31963766ROM_END
31973767
31983768
31993769ROM_START( racedrivcg )
3200   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3770   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
32013771   ROM_LOAD16_BYTE( "136078-5202.200r", 0x000000, 0x010000, CRC(c37b5281) SHA1(1ff7a879853dd1e10881fd56e8ae0962676ef319) )
32023772   ROM_LOAD16_BYTE( "136078-5201.210r", 0x000001, 0x010000, CRC(80072dad) SHA1(ba33465f639431cf6e9ce377ed31e538a0304dc5) )
32033773   ROM_LOAD16_BYTE( "136078-5204.200s", 0x020000, 0x010000, CRC(5d45fbd2) SHA1(5279c814c2876c642630fed5c114eccea6d703b0) )
r241781r241782
32153785   ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) )
32163786   ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) )
32173787
3218   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3788   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
32193789   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
32203790
3221   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3791   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
32223792   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
32233793   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
32243794
3225   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3795   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
32263796   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
32273797   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
32283798   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
32293799   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
32303800
3231   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3801   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
32323802   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
32333803   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
32343804
3235   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3805   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
32363806   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
32373807   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
32383808   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
32393809   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
32403810   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
32413811
3242   ROM_REGION( 0x800, "200e", 0 )
3812   ROM_REGION( 0x800, "mainpcb:200e", 0 )
32433813   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
32443814
3245   ROM_REGION( 0x800, "210e", 0 )
3815   ROM_REGION( 0x800, "mainpcb:210e", 0 )
32463816   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
32473817ROM_END
32483818
32493819
32503820ROM_START( racedrivc4 )
3251   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3821   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
32523822   ROM_LOAD16_BYTE( "136078-4002.200r", 0x000000, 0x010000, CRC(d6522b97) SHA1(0e4c4ce9f6147cc3878a3f1e60cf58f00bfe9e4c) )
32533823   ROM_LOAD16_BYTE( "136078-4001.210r", 0x000001, 0x010000, CRC(d658a8ed) SHA1(59d823d8150de62ba5c4fddf87584bd2044e87f7) )
32543824   ROM_LOAD16_BYTE( "136078-4004.200s", 0x020000, 0x010000, CRC(c8520b01) SHA1(f0bd0505cbf24f7e43dc2e775ecbbf0db5419b6e) )
r241781r241782
32663836   ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) )
32673837   ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) )
32683838
3269   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3839   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
32703840   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
32713841
3272   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3842   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
32733843   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
32743844   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
32753845
3276   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3846   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
32773847   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
32783848   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
32793849   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
32803850   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
32813851
3282   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3852   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
32833853   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
32843854   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
32853855
3286   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3856   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
32873857   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
32883858   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
32893859   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
32903860   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
32913861   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
32923862
3293   ROM_REGION( 0x800, "200e", 0 )
3863   ROM_REGION( 0x800, "mainpcb:200e", 0 )
32943864   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
32953865
3296   ROM_REGION( 0x800, "210e", 0 )
3866   ROM_REGION( 0x800, "mainpcb:210e", 0 )
32973867   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
32983868ROM_END
32993869
33003870
33013871ROM_START( racedrivcb4 )
3302   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3872   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
33033873   ROM_LOAD16_BYTE( "136078-4002.200r", 0x000000, 0x010000, CRC(d6522b97) SHA1(0e4c4ce9f6147cc3878a3f1e60cf58f00bfe9e4c) )
33043874   ROM_LOAD16_BYTE( "136078-4001.210r", 0x000001, 0x010000, CRC(d658a8ed) SHA1(59d823d8150de62ba5c4fddf87584bd2044e87f7) )
33053875   ROM_LOAD16_BYTE( "136078-4004.200s", 0x020000, 0x010000, CRC(c8520b01) SHA1(f0bd0505cbf24f7e43dc2e775ecbbf0db5419b6e) )
r241781r241782
33173887   ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) )
33183888   ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) )
33193889
3320   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3890   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
33213891   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
33223892
3323   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3893   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
33243894   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
33253895   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
33263896
3327   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3897   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
33283898   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
33293899   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
33303900   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
33313901   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
33323902
3333   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3903   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
33343904   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
33353905   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
33363906
3337   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3907   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
33383908   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
33393909   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
33403910   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
33413911   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
33423912   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
33433913
3344   ROM_REGION( 0x800, "200e", 0 )
3914   ROM_REGION( 0x800, "mainpcb:200e", 0 )
33453915   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
33463916
3347   ROM_REGION( 0x800, "210e", 0 )
3917   ROM_REGION( 0x800, "mainpcb:210e", 0 )
33483918   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
33493919ROM_END
33503920
33513921
33523922ROM_START( racedrivcg4 )
3353   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3923   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
33543924   ROM_LOAD16_BYTE( "136078-4202.200r", 0x000000, 0x010000, CRC(be58215d) SHA1(0497efbd696e8d2db4e42678dd6cfe6cd3f78688) )
33553925   ROM_LOAD16_BYTE( "136078-4201.210r", 0x000001, 0x010000, CRC(609c5f23) SHA1(a66e1f10f8ad9d25fca5b681ad543967287f2036) )
33563926   ROM_LOAD16_BYTE( "136078-4204.200s", 0x020000, 0x010000, CRC(2e590c4f) SHA1(dcb56bacdde17eade5b347d5549cec1de89774e6) )
r241781r241782
33683938   ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) )
33693939   ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) )
33703940
3371   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3941   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
33723942   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
33733943
3374   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3944   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
33753945   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
33763946   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
33773947
3378   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3948   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
33793949   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
33803950   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
33813951   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
33823952   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
33833953
3384   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
3954   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
33853955   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
33863956   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
33873957
3388   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
3958   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
33893959   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
33903960   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
33913961   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
33923962   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
33933963   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
33943964
3395   ROM_REGION( 0x800, "200e", 0 )
3965   ROM_REGION( 0x800, "mainpcb:200e", 0 )
33963966   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
33973967
3398   ROM_REGION( 0x800, "210e", 0 )
3968   ROM_REGION( 0x800, "mainpcb:210e", 0 )
33993969   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
34003970ROM_END
34013971
34023972
34033973ROM_START( racedrivc2 )
3404   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
3974   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
34053975   ROM_LOAD16_BYTE( "136078-2002.200r", 0x000000, 0x010000, CRC(669fe6fe) SHA1(1775ee3ef4817f553113772cf0fb35cbbe2e73a5) )
34063976   ROM_LOAD16_BYTE( "136078-2001.210r", 0x000001, 0x010000, CRC(9312fd5f) SHA1(9dd1b30ebceedf50fb18d744540e2003a8110d09) )
34073977   ROM_LOAD16_BYTE( "136078-1004.200s", 0x020000, 0x010000, CRC(4a1beb65) SHA1(3a4e3dd07a1415aef27e8bbebe0503296dfc7586) )
r241781r241782
34193989   ROM_LOAD16_BYTE( "136078-1015.210y", 0x0e0001, 0x010000, CRC(64dd6040) SHA1(bcadf4f1d9a0685ca39af903d3342d590850513c) )
34203990   ROM_LOAD16_BYTE( "136078-1016.200y", 0x0e0000, 0x010000, CRC(a2a0ed28) SHA1(6f308a38594f7e54ebdd6983d28664ba595bc525) )
34213991
3422   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
3992   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
34233993   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
34243994
3425   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
3995   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
34263996   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
34273997   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
34283998
3429   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
3999   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
34304000   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
34314001   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
34324002   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
34334003   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
34344004
3435   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
4005   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
34364006   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
34374007   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
34384008
3439   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
4009   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
34404010   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
34414011   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
34424012   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
34434013   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
34444014   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
34454015
3446   ROM_REGION( 0x800, "200e", 0 )
4016   ROM_REGION( 0x800, "mainpcb:200e", 0 )
34474017   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
34484018
3449   ROM_REGION( 0x800, "210e", 0 )
4019   ROM_REGION( 0x800, "mainpcb:210e", 0 )
34504020   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
34514021ROM_END
34524022
34534023
34544024ROM_START( racedrivc1 )
3455   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
4025   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
34564026   ROM_LOAD16_BYTE( "136078-1002.200r", 0x000000, 0x010000, CRC(ed997f08) SHA1(9512f347120174345dbe8c756e5c239fdce438a5) )
34574027   ROM_LOAD16_BYTE( "136078-1001.210r", 0x000001, 0x010000, CRC(5540ee7d) SHA1(f1d16cfa20b61f1cf075e3275ea4af0b46aa5470) )
34584028   ROM_LOAD16_BYTE( "136078-1004.200s", 0x020000, 0x010000, CRC(4a1beb65) SHA1(3a4e3dd07a1415aef27e8bbebe0503296dfc7586) )
r241781r241782
34704040   ROM_LOAD16_BYTE( "136078-1015.210y", 0x0e0001, 0x010000, CRC(64dd6040) SHA1(bcadf4f1d9a0685ca39af903d3342d590850513c) )
34714041   ROM_LOAD16_BYTE( "136078-1016.200y", 0x0e0000, 0x010000, CRC(a2a0ed28) SHA1(6f308a38594f7e54ebdd6983d28664ba595bc525) )
34724042
3473   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
4043   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
34744044   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
34754045
3476   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
4046   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
34774047   ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
34784048   ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
34794049
3480   ROM_REGION16_BE( 0x60000, "user1", 0 )  /* 384k for ADSP object ROM */
4050   ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 )  /* 384k for ADSP object ROM */
34814051   ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) )
34824052   ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) )
34834053   ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
34844054   ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
34854055
3486   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
4056   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
34874057   ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) )
34884058   ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) )
34894059
3490   ROM_REGION( 0x50000, "serialroms", 0 )      /* 10*128k for audio serial ROMs */
4060   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 10*128k for audio serial ROMs */
34914061   ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
34924062   ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
34934063   ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
34944064   ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
34954065   ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
34964066
3497   ROM_REGION( 0x800, "200e", 0 )
4067   ROM_REGION( 0x800, "mainpcb:200e", 0 )
34984068   ROM_LOAD( "racedrivc.200e",  0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) )
34994069
3500   ROM_REGION( 0x800, "210e", 0 )
4070   ROM_REGION( 0x800, "mainpcb:210e", 0 )
35014071   ROM_LOAD( "racedrivc.210e",  0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) )
35024072ROM_END
35034073
r241781r241782
35734143
35744144*/
35754145
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
35764148ROM_START( racedrivpan )
3577   ROM_REGION( 0x200000, "maincpu", 0 )        /* 2MB for 68000 code */
4149   ROM_REGION( 0x200000, "mainpcb:maincpu", 0 )        /* 2MB for 68000 code */
35784150   // Multisync PBB A045988 - Central Monitor
35794151   // boots with 'PROGRAM OK' when using standard Hard Drivin' board type (needs 137412-115 slapstic)
35804152   ROM_LOAD16_BYTE( "088-1002.bin", 0x000000, 0x010000, CRC(49a97391) SHA1(dbe4086cd87669a02d2a2133d0d9e2895946b383) )
r241781r241782
35944166   ROM_LOAD16_BYTE( "088-1016.bin", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) // == 136077-1016.200y
35954167   ROM_LOAD16_BYTE( "088-1015.bin", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) ) // == 136077-4015.210y
35964168
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 */
4169   ROM_REGION( 0x60000, "mainpcb:user1", 0 )       /* 384k for object ROM */
36194170   ROM_LOAD16_BYTE( "088-1017.bin",  0x00000, 0x10000, CRC(d92251e8) SHA1(deeeec54c4a61c3adf62f6b1b910135559090ee5) )
36204171   ROM_LOAD16_BYTE( "088-1018.bin",  0x00001, 0x10000, CRC(11a0a8f5) SHA1(d4ccc83fc99331d741bc9b8027ef20d72e3ad71a) )
36214172   ROM_LOAD16_BYTE( "088-1019.bin",  0x20000, 0x10000, CRC(5bb00676) SHA1(cad1cea8e43f9590fc71c00fab4eff0d447f9296) ) // == 136091-0019.2k (strtdriv)
r241781r241782
36254176
36264177   /* ----------------------- */
36274178
3628   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
4179   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )   /* ASIC65 TMS32015 code */
36294180   ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
36304181
36314182   /* ADSP board */
3632   ROM_REGION( 0x20000, "soundcpu", 0 )        /* 2*64k for audio 68000 code */
4183   ROM_REGION( 0x20000, "mainpcb:soundcpu", 0 )        /* 2*64k for audio 68000 code */
36334184   ROM_LOAD16_BYTE( "rdps1032.bin", 0x000000, 0x010000, CRC(33005f2a) SHA1(e4037a76f122b271a9675d9187ab847a11738640) )
36344185   ROM_LOAD16_BYTE( "rdps1033.bin", 0x000001, 0x010000, CRC(4fc800ac) SHA1(dd8cfdb727d6a65274f4f871a589a36796ae1e57) )
36354186
36364187   /* DSK board */
3637   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
4188   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
36384189   ROM_LOAD16_BYTE( "rdpd1026.bin", 0x000000, 0x020000, CRC(16572618) SHA1(08d9f7f76e6e75d5233240d4deab96808825994b) )
36394190   ROM_LOAD16_BYTE( "rdpd1025.bin", 0x000001, 0x020000, CRC(57b8a266) SHA1(257246d42841aa30220caeb91945e29978ee8fc0) )
36404191
36414192   /* Audio ROMs - show up as bad in self-test but so do racedriv's */
3642   ROM_REGION( 0x50000, "serialroms", 0 )      /* 5*64k for audio serial ROMs */
4193   ROM_REGION( 0x50000, "mainpcb:serialroms", 0 )      /* 5*64k for audio serial ROMs */
36434194   ROM_LOAD( "rdps1123.bin", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
36444195   ROM_LOAD( "rdps1124.bin", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
36454196   ROM_LOAD( "rdps3125.bin", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
36464197   ROM_LOAD( "rdps1126.bin", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
36474198   ROM_LOAD( "rdps1017.bin", 0x040000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
36484199
3649   ROM_REGION( 0x800, "200e", 0 )
4200   ROM_REGION( 0x800, "mainpcb:200e", 0 )
36504201   ROM_LOAD( "racedriv.200e",   0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) )
36514202
3652   ROM_REGION( 0x800, "210e", 0 )
4203   ROM_REGION( 0x800, "mainpcb:210e", 0 )
36534204   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) )
36544269ROM_END
36554270
36564271
36574272ROM_START( steeltal )
3658   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
4273   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
36594274   ROM_LOAD16_BYTE( "136087-1002.200r", 0x000000, 0x010000, CRC(31bf01a9) SHA1(cd08a839dbb5283a6e2bb35bc9e1578a14e3c2e6) )
36604275   ROM_LOAD16_BYTE( "136087-1001.210r", 0x000001, 0x010000, CRC(b4fa2900) SHA1(5e92ab4af31321b891c072305f8b8ef30a3e1fb0) )
36614276   ROM_LOAD16_BYTE( "136087-1004.200s", 0x020000, 0x010000, CRC(c31ca924) SHA1(8d7d2a3d204e69d759cf767b57570c18db5a3fd8) )
r241781r241782
36734288   ROM_LOAD16_BYTE( "136087-1016.200y", 0x0e0000, 0x010000, CRC(db62362e) SHA1(e1d392aa00ac36296728257fa26c6aa68a4ebe5f) )
36744289   ROM_LOAD16_BYTE( "136087-1015.210y", 0x0e0001, 0x010000, CRC(ef517db7) SHA1(16e7e351326391480bf36c58d6b34ef4128b6627) )
36754290
3676   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
4291   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
36774292   ROM_LOAD( "136087-5001.1f",  0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) )
36784293   ROM_CONTINUE(                0x004000, 0x00c000 )
36794294
3680   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
4295   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
36814296   ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) )
36824297
3683   ROM_REGION( 0x10000, "cpu6", 0 )        /* 64k for DSP communications */
4298   ROM_REGION( 0x10000, "mainpcb:cpu6", 0 )        /* 64k for DSP communications */
36844299   ROM_LOAD( "136087-1025.5f",  0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) )
36854300
3686   ROM_REGION16_BE( 0xc0000, "user1", 0 )  /* 768k for object ROM */
4301   ROM_REGION16_BE( 0xc0000, "mainpcb:user1", 0 )  /* 768k for object ROM */
36874302   ROM_LOAD16_BYTE( "136087-1018.2t",  0x000000, 0x020000, CRC(a5882384) SHA1(157707b5b114fa584893dec07dc456d4a5520f44) )
36884303   ROM_LOAD16_BYTE( "136087-1017.2lm", 0x000001, 0x020000, CRC(0a29db30) SHA1(f11ad7fe27989ffd66e9bef2c14ec040a4125d8a) )
36894304
3690   ROM_REGION( 0x80000, "jsa:oki1", 0 )
4305   ROM_REGION( 0x80000, "mainpcb:jsa:oki1", 0 )
36914306   ROM_LOAD( "136087-5002.1m",  0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) )
36924307   ROM_LOAD( "136087-5003.1n",  0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) )
36934308   ROM_LOAD( "136087-5004.1p",  0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) )
36944309   ROM_LOAD( "136087-5005.1r",  0x060000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) )
36954310
3696   ROM_REGION( 0x015D, "plds", 0 )
4311   ROM_REGION( 0x015D, "mainpcb:plds", 0 )
36974312   /* GAL's located on Sound board */
36984313   ROM_LOAD( "136085-1038.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2F */
36994314   ROM_LOAD( "136085-1039.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2L */
r241781r241782
37104325   /* GAL's located on "Multisync" board */
37114326   ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */
37124327
3713   ROM_REGION( 0x800, "200e", 0 )
4328   ROM_REGION( 0x800, "mainpcb:200e", 0 )
37144329   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
37154330
3716   ROM_REGION( 0x800, "210e", 0 )
4331   ROM_REGION( 0x800, "mainpcb:210e", 0 )
37174332   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
37184333ROM_END
37194334
37204335
37214336ROM_START( steeltalg )
3722   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
4337   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
37234338   ROM_LOAD16_BYTE( "136087-1002.200r", 0x000000, 0x010000, CRC(31bf01a9) SHA1(cd08a839dbb5283a6e2bb35bc9e1578a14e3c2e6) )
37244339   ROM_LOAD16_BYTE( "136087-1001.210r", 0x000001, 0x010000, CRC(b4fa2900) SHA1(5e92ab4af31321b891c072305f8b8ef30a3e1fb0) )
37254340   ROM_LOAD16_BYTE( "136087-2004.200s", 0x020000, 0x010000, CRC(11fcba15) SHA1(031fc4c46a25ba8b5e15257f7443899bb484c09e) )
r241781r241782
37374352   ROM_LOAD16_BYTE( "136087-1016.200y", 0x0e0000, 0x010000, CRC(db62362e) SHA1(e1d392aa00ac36296728257fa26c6aa68a4ebe5f) )
37384353   ROM_LOAD16_BYTE( "136087-1015.210y", 0x0e0001, 0x010000, CRC(ef517db7) SHA1(16e7e351326391480bf36c58d6b34ef4128b6627) )
37394354
3740   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
4355   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
37414356   ROM_LOAD( "136087-5001.1f",  0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) )
37424357   ROM_CONTINUE(             0x004000, 0x00c000 )
37434358
3744   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
4359   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
37454360   ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) )
37464361
3747   ROM_REGION( 0x10000, "cpu6", 0 )        /* 64k for DSP communications */
4362   ROM_REGION( 0x10000, "mainpcb:cpu6", 0 )        /* 64k for DSP communications */
37484363   ROM_LOAD( "136087-1025.5f",  0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) )
37494364
3750   ROM_REGION16_BE( 0xc0000, "user1", 0 )  /* 768k for object ROM */
4365   ROM_REGION16_BE( 0xc0000, "mainpcb:user1", 0 )  /* 768k for object ROM */
37514366   ROM_LOAD16_BYTE( "136087-1018.2t",  0x000000, 0x020000, CRC(a5882384) SHA1(157707b5b114fa584893dec07dc456d4a5520f44) )
37524367   ROM_LOAD16_BYTE( "136087-1017.2lm", 0x000001, 0x020000, CRC(0a29db30) SHA1(f11ad7fe27989ffd66e9bef2c14ec040a4125d8a) )
37534368
3754   ROM_REGION( 0x80000, "jsa:oki1", 0 )
4369   ROM_REGION( 0x80000, "mainpcb:jsa:oki1", 0 )
37554370   ROM_LOAD( "136087-5002.1m",  0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) )
37564371   ROM_LOAD( "136087-5003.1n",  0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) )
37574372   ROM_LOAD( "136087-5004.1p",  0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) )
37584373   ROM_LOAD( "136087-5005.1r",  0x060000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) )
37594374
3760   ROM_REGION( 0x015D, "plds", 0 )
4375   ROM_REGION( 0x015D, "mainpcb:plds", 0 )
37614376   /* GAL's located on Sound board */
37624377   ROM_LOAD( "136085-1038.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2F */
37634378   ROM_LOAD( "136085-1039.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2L */
r241781r241782
37744389   /* GAL's located on "Multisync" board */
37754390   ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */
37764391
3777   ROM_REGION( 0x800, "200e", 0 )
4392   ROM_REGION( 0x800, "mainpcb:200e", 0 )
37784393   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
37794394
3780   ROM_REGION( 0x800, "210e", 0 )
4395   ROM_REGION( 0x800, "mainpcb:210e", 0 )
37814396   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
37824397ROM_END
37834398
37844399
37854400ROM_START( steeltal1 )
3786   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
4401   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
37874402   ROM_LOAD16_BYTE( "136087-1002.200r", 0x000000, 0x010000, CRC(31bf01a9) SHA1(cd08a839dbb5283a6e2bb35bc9e1578a14e3c2e6) )
37884403   ROM_LOAD16_BYTE( "136087-1001.210r", 0x000001, 0x010000, CRC(b4fa2900) SHA1(5e92ab4af31321b891c072305f8b8ef30a3e1fb0) )
37894404   ROM_LOAD16_BYTE( "136087-a004.200s", 0x020000, 0x010000, CRC(392c992d) SHA1(10d1606214df675e6e59185e6b97034c4a47055a) )
r241781r241782
38014416   ROM_LOAD16_BYTE( "136087-1016.200y", 0x0e0000, 0x010000, CRC(db62362e) SHA1(e1d392aa00ac36296728257fa26c6aa68a4ebe5f) )
38024417   ROM_LOAD16_BYTE( "136087-1015.210y", 0x0e0001, 0x010000, CRC(ef517db7) SHA1(16e7e351326391480bf36c58d6b34ef4128b6627) )
38034418
3804   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
4419   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
38054420   ROM_LOAD( "136087-5001.1f",  0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) )
38064421   ROM_CONTINUE(             0x004000, 0x00c000 )
38074422
3808   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
4423   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
38094424   ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) )
38104425
3811   ROM_REGION( 0x10000, "cpu6", 0 )        /* 64k for DSP communications */
4426   ROM_REGION( 0x10000, "mainpcb:cpu6", 0 )        /* 64k for DSP communications */
38124427   ROM_LOAD( "136087-1025.5f",  0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) )
38134428
3814   ROM_REGION16_BE( 0xc0000, "user1", 0 )  /* 768k for object ROM */
4429   ROM_REGION16_BE( 0xc0000, "mainpcb:user1", 0 )  /* 768k for object ROM */
38154430   ROM_LOAD16_BYTE( "136087-1018.2t",  0x000000, 0x020000, CRC(a5882384) SHA1(157707b5b114fa584893dec07dc456d4a5520f44) )
38164431   ROM_LOAD16_BYTE( "136087-1017.2lm", 0x000001, 0x020000, CRC(0a29db30) SHA1(f11ad7fe27989ffd66e9bef2c14ec040a4125d8a) )
38174432
3818   ROM_REGION( 0x80000, "jsa:oki1", 0 )
4433   ROM_REGION( 0x80000, "mainpcb:jsa:oki1", 0 )
38194434   ROM_LOAD( "136087-5002.1m",  0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) )
38204435   ROM_LOAD( "136087-5003.1n",  0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) )
38214436   ROM_LOAD( "136087-5004.1p",  0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) )
38224437   ROM_LOAD( "136087-5005.1r",  0x060000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) )
38234438
3824   ROM_REGION( 0x015D, "plds", 0 )
4439   ROM_REGION( 0x015D, "mainpcb:plds", 0 )
38254440   /* GAL's located on Sound board */
38264441   ROM_LOAD( "136085-1038.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2F */
38274442   ROM_LOAD( "136085-1039.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2L */
r241781r241782
38384453   /* GAL's located on "Multisync" board */
38394454   ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */
38404455
3841   ROM_REGION( 0x800, "200e", 0 )
4456   ROM_REGION( 0x800, "mainpcb:200e", 0 )
38424457   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
38434458
3844   ROM_REGION( 0x800, "210e", 0 )
4459   ROM_REGION( 0x800, "mainpcb:210e", 0 )
38454460   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
38464461ROM_END
38474462
38484463
38494464ROM_START( steeltalp )
3850   ROM_REGION( 0x100000, "maincpu", 0 )        /* 1MB for 68000 code */
4465   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 )        /* 1MB for 68000 code */
38514466   ROM_LOAD16_BYTE( "rom-200r.bin", 0x00000, 0x10000, CRC(72a9ce3b) SHA1(6706ff32173735d16d9da1321b64a4a9bb317b2e) )
38524467   ROM_LOAD16_BYTE( "rom-210r.bin", 0x00001, 0x10000, CRC(46d83b42) SHA1(85b178781f0595b5af0375fee32d0dd8cdba8fca) )
38534468   ROM_LOAD16_BYTE( "rom-200s.bin", 0x20000, 0x10000, CRC(bf1b31ae) SHA1(f2d7f13854b8a3dd4de9ae98cc3034dfcf3846b8) )
r241781r241782
38654480   ROM_LOAD16_BYTE( "rom-200y.bin", 0xe0000, 0x10000, CRC(b568e1be) SHA1(5d62037892e040515e4262db43057f33436fa12d) )
38664481   ROM_LOAD16_BYTE( "rom-210y.bin", 0xe0001, 0x10000, CRC(3f5cdd3e) SHA1(c33c155158a5c69a7f2e61cd88b297dc14ecd479) )
38674482
3868   ROM_REGION( 0x14000, "jsa:cpu", 0 )     /* 64k for 6502 code */
4483   ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 )     /* 64k for 6502 code */
38694484   ROM_LOAD( "136087-5001.1f",  0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) )
38704485   ROM_CONTINUE(             0x004000, 0x00c000 )
38714486
3872   ROM_REGION( 0x2000, "asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
4487   ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 )       /* 64k for ASIC65 */
38734488   ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) )
38744489
3875   ROM_REGION( 0x10000, "cpu6", 0 )        /* 64k for DSP communications */
4490   ROM_REGION( 0x10000, "mainpcb:cpu6", 0 )        /* 64k for DSP communications */
38764491   ROM_LOAD( "136087-1025.5f",  0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) )
38774492
3878   ROM_REGION16_BE( 0xc0000, "user1", 0 )  /* 768k for object ROM */
4493   ROM_REGION16_BE( 0xc0000, "mainpcb:user1", 0 )  /* 768k for object ROM */
38794494   ROM_LOAD16_BYTE( "rom.2t",  0x00000, 0x20000, CRC(05284504) SHA1(03b81c077f8ff073713f4bcc10b82087743b0d84) )
38804495   ROM_LOAD16_BYTE( "rom.2lm", 0x00001, 0x20000, CRC(d6e65b87) SHA1(ac4b2f292f6e28a15e3a12f09f6c2f9523e8b178) )
38814496
3882   ROM_REGION( 0x80000, "jsa:oki1", 0 )
4497   ROM_REGION( 0x80000, "mainpcb:jsa:oki1", 0 )
38834498   ROM_LOAD( "136087-5002.1m",  0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) )
38844499   ROM_LOAD( "136087-5003.1n",  0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) )
38854500   ROM_LOAD( "136087-5004.1p",  0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) )
38864501   ROM_LOAD( "136087-5005.1r",  0x060000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) )
38874502
3888   ROM_REGION( 0x015D, "plds", 0 )
4503   ROM_REGION( 0x015D, "mainpcb:plds", 0 )
38894504   /* GAL's located on Sound board */
38904505   ROM_LOAD( "136085-1038.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2F */
38914506   ROM_LOAD( "136085-1039.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2L */
r241781r241782
39024517   /* GAL's located on "Multisync" board */
39034518   ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */
39044519
3905   ROM_REGION( 0x800, "200e", 0 )
4520   ROM_REGION( 0x800, "mainpcb:200e", 0 )
39064521   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
39074522
3908   ROM_REGION( 0x800, "210e", 0 )
4523   ROM_REGION( 0x800, "mainpcb:210e", 0 )
39094524   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
39104525ROM_END
39114526
39124527
39134528ROM_START( strtdriv )
3914   ROM_REGION( 0x200000, "maincpu", 0 )        /* 2MB for 68000 code */
4529   ROM_REGION( 0x200000, "mainpcb:maincpu", 0 )        /* 2MB for 68000 code */
39154530   ROM_LOAD16_BYTE( "136091-0002.200r", 0x000000, 0x010000, CRC(d28f2629) SHA1(266b4a80fd366fec2329ed2cec7fb570cef34291) )
39164531   ROM_LOAD16_BYTE( "136091-0001.210r", 0x000001, 0x010000, CRC(443428d1) SHA1(d93fd21a2c9d1e24c599867a110c1031d72e81b7) )
39174532   ROM_LOAD16_BYTE( "136091-0004.200s", 0x020000, 0x010000, CRC(379b9d18) SHA1(8cd903cc4e970cc45d7ef431233730b53dabeb1d) )
r241781r241782
39294544   ROM_LOAD16_BYTE( "136091-0016.200y", 0x0e0000, 0x010000, CRC(f85ad532) SHA1(f9d2480104a7487c23d33b05aa044b7f4ca08c67) )
39304545   ROM_LOAD16_BYTE( "136091-0015.210y", 0x0e0001, 0x010000, CRC(a2e406f3) SHA1(a7266508011c892cb1032fa4d77ccbafedc844e8) )
39314546
3932   ROM_REGION( 0x10000 + 0x10000, "asic65:asic65cpu", 0 )    /* dummy region for ADSP 2105 */
4547   ROM_REGION( 0x10000 + 0x10000, "mainpcb:asic65:asic65cpu", 0 )    /* dummy region for ADSP 2105 */
39334548   ROM_LOAD( "136091-0033.10j", 0x000000, 0x010000, CRC(57504ab6) SHA1(ec8361b7da964c07ca0da48a87537badc3986fe0) )
39344549
3935   ROM_REGION( 0x60000, "user1", 0 )       /* 384k for object ROM */
4550   ROM_REGION( 0x60000, "mainpcb:user1", 0 )       /* 384k for object ROM */
39364551   ROM_LOAD16_BYTE( "136091-0017.2lm", 0x00000, 0x10000, CRC(b0454074) SHA1(9530ea1ef215116da1f0843776fa7a6b4637049d) )
39374552   ROM_LOAD16_BYTE( "136091-0018.2t",  0x00001, 0x10000, CRC(ef432aa8) SHA1(56bce13c111db7874c9b669d479f6ef47976ee14) )
39384553   ROM_LOAD16_BYTE( "136091-0019.2k",  0x20000, 0x10000, CRC(5bb00676) SHA1(cad1cea8e43f9590fc71c00fab4eff0d447f9296) )
r241781r241782
39404555   ROM_LOAD16_BYTE( "136091-0021.2j",  0x40000, 0x10000, CRC(14f2caae) SHA1(ff40dbced58dc910a2b5825b846a5e52933cb8fc) )
39414556   ROM_LOAD16_BYTE( "136091-0022.2p",  0x40001, 0x10000, CRC(bc4dd071) SHA1(ca182451a0a18d343dce1be56090d51950d43906) )
39424557
3943   ROM_REGION16_BE( 0x50000, "user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
4558   ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 )  /* 256k for DSK ROMs + 64k for RAM */
39444559   ROM_LOAD16_BYTE( "136091-0026.30e", 0x000000, 0x020000, CRC(47705109) SHA1(fa40275b71b74be8591282d2fba4215b98fc29c9) )
39454560   ROM_LOAD16_BYTE( "136091-0025.10e", 0x000001, 0x020000, CRC(ead9254e) SHA1(92152d3ca77b542b3bb3398ccf414df28c95abfd) )
39464561
3947   ROM_REGION16_BE( 0x100000, "ds3sdsp", 0 )  /* DS III sound ADSP-2105 */
4562   ROM_REGION16_BE( 0x100000, "mainpcb:ds3sdsp", 0 )  /* DS III sound ADSP-2105 */
39484563   ROM_LOAD( "136091-0033.10j", 0x000000, 0x010000, CRC(57504ab6) SHA1(ec8361b7da964c07ca0da48a87537badc3986fe0) )
39494564
3950   ROM_REGION16_BE( 0x100000, "ds3xdsp", 0 )  /* DS III auxillary ADSP-2105 (unused) */
4565   ROM_REGION16_BE( 0x100000, "mainpcb:ds3xdsp", 0 )  /* DS III auxillary ADSP-2105 (unused) */
39514566   ROM_FILL(                    0x000000, 0x010000, 0x00)
39524567
3953   ROM_REGION( 0x80000, "ds3sdsp_data", 0 )
4568   ROM_REGION( 0x80000, "mainpcb:ds3sdsp_data", 0 )
39544569   ROM_LOAD16_BYTE( "136052-1123.12lm",0x00000, 0x10000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
39554570   ROM_LOAD16_BYTE( "136077-1017.12t", 0x00001, 0x10000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) )
39564571
r241781r241782
39634578   ROM_FILL(                           0x60000, 0x20000, 0xff) /* 12N */
39644579   ROM_LOAD16_BYTE( "136052-1126.12h", 0x60000, 0x10000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
39654580
3966   ROM_REGION( 0x800, "200e", 0 )
4581   ROM_REGION( 0x800, "mainpcb:200e", 0 )
39674582   ROM_LOAD( "stunrun.200e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
39684583
3969   ROM_REGION( 0x800, "210e", 0 )
4584   ROM_REGION( 0x800, "mainpcb:210e", 0 )
39704585   ROM_LOAD( "stunrun.210e",    0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
39714586ROM_END
39724587
39734588ROM_START( hdrivair )
3974   ROM_REGION( 0x200000, "maincpu", 0 )        /* 2MB for 68000 code */
4589   ROM_REGION( 0x200000, "mainpcb:maincpu", 0 )        /* 2MB for 68000 code */
39754590   ROM_LOAD16_BYTE( "stesthi.bin", 0x000000, 0x20000, CRC(b4bfa451) SHA1(002a5d213ba8ec76ad83a87d76aefbd98b1e4c94) )
39764591   ROM_LOAD16_BYTE( "stestlo.bin", 0x000001, 0x20000, CRC(58758419) SHA1(7951d4c8cf0b28b4fac3fe172ea3bc56f61bd9ff) )
39774592   ROM_LOAD16_BYTE( "drivehi.bin", 0x040000, 0x20000, CRC(d15f5119) SHA1(c2c7e9675c14ba41effa6f721602f6471b348758) )
r241781r241782
39854600   ROM_LOAD16_BYTE( "coprochi.bin",0x1c0000, 0x20000, CRC(5d2ca109) SHA1(e1a94d3fbfd5d542732555bf60268e73d66b3a06) )
39864601   ROM_LOAD16_BYTE( "coproclo.bin",0x1c0001, 0x20000, CRC(5f98b04d) SHA1(9c4fa4092fd85f1d67be44f2ff91a907a87db51a) )
39874602
3988   ROM_REGION( 0x10000 + 0x10000, "asic65:asic65cpu", 0 )    /* dummy region for ADSP 2105 */
4603   ROM_REGION( 0x10000 + 0x10000, "mainpcb:asic65:asic65cpu", 0 )    /* dummy region for ADSP 2105 */
39894604   ROM_LOAD( "sboot.bin", 0x000000, 0x010000, CRC(cde4d010) SHA1(853f4b813ff70fe74cd87e92131c46fca045610d) )
39904605
3991   ROM_REGION( 0xc0000, "user1", 0 )       /* 768k for object ROM */
4606   ROM_REGION( 0xc0000, "mainpcb:user1", 0 )       /* 768k for object ROM */
39924607   ROM_LOAD16_BYTE( "obj0l.bin",   0x00000, 0x20000, CRC(1f835f2e) SHA1(9d3419f2c1aa65ddfe9ace4e70ca1212d634afbf) )
39934608   ROM_LOAD16_BYTE( "obj0h.bin",   0x00001, 0x20000, CRC(c321ab55) SHA1(e095e40bb1ebda7c9ff04a5086c10ab41dec2f16) )
39944609   ROM_LOAD16_BYTE( "obj1l.bin",   0x40000, 0x20000, CRC(3d65f264) SHA1(e9232f5bf439bf4e1cf99cc7e81b7f9550563f15) )
r241781r241782
39964611   ROM_LOAD16_BYTE( "obj2l.bin",   0x80000, 0x20000, CRC(b206cc7e) SHA1(17f05e906c41b804fe99dd6cd8acbade919a6a10) )
39974612   ROM_LOAD16_BYTE( "obj2h.bin",   0x80001, 0x20000, CRC(a666e98c) SHA1(90e380ff87538c7d557cf005a4a5bcedc250eb72) )
39984613
3999   ROM_REGION16_BE( 0x140000, "user3", 0 )/* 1MB for DSK ROMs + 256k for RAM */
4614   ROM_REGION16_BE( 0x140000, "mainpcb:user3", 0 )/* 1MB for DSK ROMs + 256k for RAM */
40004615   ROM_LOAD16_BYTE( "dsk2phi.bin", 0x00000, 0x80000, CRC(71c268e0) SHA1(c089248a7dfadf2eba3134fe40ebb777c115a886) )
40014616   ROM_LOAD16_BYTE( "dsk2plo.bin", 0x00001, 0x80000, CRC(edf96363) SHA1(47f0608c2b0ab983681de021a16b1d10d4feb800) )
40024617
4003   ROM_REGION32_LE( 0x200000, "user4", 0 )/* 2MB for ASIC61 ROMs */
4618   ROM_REGION32_LE( 0x200000, "mainpcb:user4", 0 )/* 2MB for ASIC61 ROMs */
40044619   ROM_LOAD32_BYTE( "roads0.bin",  0x000000, 0x80000, CRC(5028eb41) SHA1(abe9d73e74d4f0308f07cbe9c18c8a77456fdbc7) )
40054620   ROM_LOAD32_BYTE( "roads1.bin",  0x000001, 0x80000, CRC(c3f2c201) SHA1(c73933d7e46f3c63c4ca86af40eb4f0abb09aedf) )
40064621   ROM_LOAD32_BYTE( "roads2.bin",  0x000002, 0x80000, CRC(527923fe) SHA1(839de8486bb7489f059b5a629ab229ad96de7eac) )
40074622   ROM_LOAD32_BYTE( "roads3.bin",  0x000003, 0x80000, CRC(2f2023b2) SHA1(d474892443db2f0710c2be0d6b90735a2fbee12a) )
40084623
4009   ROM_REGION16_BE( 0x10000, "ds3sdsp", 0 ) /* DS IV sound ADSP-2105 */
4624   ROM_REGION16_BE( 0x10000, "mainpcb:ds3sdsp", 0 ) /* DS IV sound ADSP-2105 */
40104625   ROM_LOAD( "sboot.bin", 0x00000, 0x10000, CRC(cde4d010) SHA1(853f4b813ff70fe74cd87e92131c46fca045610d) )
40114626
4012   ROM_REGION16_BE( 0x10000, "ds3xdsp", 0 ) /* DS IV auxillary ADSP-2105 */
4627   ROM_REGION16_BE( 0x10000, "mainpcb:ds3xdsp", 0 ) /* DS IV auxillary ADSP-2105 */
40134628   ROM_LOAD( "xboot.bin", 0x00000, 0x10000, CRC(054b46a0) SHA1(038eec17e678f2755239d6795acfda621796802e) )
40144629
4015   ROM_REGION16_BE( 0x400000, "ds3sdsp_data", 0 ) /* DS IV sound data */
4630   ROM_REGION16_BE( 0x400000, "mainpcb:ds3sdsp_data", 0 ) /* DS IV sound data */
40164631   ROM_LOAD16_BYTE( "ds3rom4.bin", 0x000000, 0x80000, CRC(15ffb19a) SHA1(030dc90b7cabcd7fc5f231b09d2aa2eaf6e60b98) )
40174632   ROM_LOAD16_BYTE( "ds3rom0.bin", 0x000001, 0x80000, CRC(90b8dbb6) SHA1(fff693cb81e88bc00e048bb71406295fe7be5122) )
40184633   ROM_LOAD16_BYTE( "ds3rom5.bin", 0x100000, 0x80000, CRC(8d0e9b27) SHA1(76556f48bdf14475260c268ebdb16ecb494b2f36) )
r241781r241782
40224637   ROM_LOAD16_BYTE( "ds3rom7.bin", 0x300000, 0x80000, CRC(323eff0b) SHA1(5d4945d77191ee44b4fbf125bc0816217321829e) )
40234638   ROM_LOAD16_BYTE( "ds3rom3.bin", 0x300001, 0x80000, CRC(63965868) SHA1(d61d9d6709a3a3c37c2652602e97fdee52e0e7cb) )
40244639
4025   ROM_REGION( 0x800, "200e", 0 )
4640   ROM_REGION( 0x800, "mainpcb:200e", 0 )
40264641   ROM_LOAD( "hdrivair.200e",      0x000000, 0x000800, CRC(6270b696) SHA1(e302880dbca53ee725108ca4f7e45a176e85e96d) )
40274642
4028   ROM_REGION( 0x800, "210e", 0 )
4643   ROM_REGION( 0x800, "mainpcb:210e", 0 )
40294644   ROM_LOAD( "hdrivair.210e",      0x000000, 0x000800, CRC(a1c39919) SHA1(92799a7a73f545dad6684eacf7009a6c4d52d8f7) )
40304645ROM_END
40314646
40324647
40334648ROM_START( hdrivairp )
4034   ROM_REGION( 0x200000, "maincpu", 0 )        /* 2MB for 68000 code */
4649   ROM_REGION( 0x200000, "mainpcb:maincpu", 0 )        /* 2MB for 68000 code */
40354650   ROM_LOAD16_BYTE( "stest.0h",    0x000000, 0x20000, CRC(bf4bb6a0) SHA1(e38ec5ce245f98bfe8084ba684bffc85dc19d3be) )
40364651   ROM_LOAD16_BYTE( "stest.0l",    0x000001, 0x20000, CRC(f462b511) SHA1(d88efb8cc30322a8332a1f50de775a204758e176) )
40374652   ROM_LOAD16_BYTE( "drive.hi",    0x040000, 0x20000, CRC(56571590) SHA1(d0362b8bd438cd7dfa9ff7cf71307f44c2cfe843) )
r241781r241782
40454660   ROM_LOAD16_BYTE( "ms2cproc.0h", 0x1c0000, 0x20000, CRC(19024f2d) SHA1(a94e8836cdc147cea5816b99b8a1ad5ff669d984) )
40464661   ROM_LOAD16_BYTE( "ms2cproc.0l", 0x1c0001, 0x20000, CRC(1e48bd46) SHA1(1a903d889f48604bd8d2d9a0bda4ee20e7ad968b) )
40474662
4048   ROM_REGION( 0x10000 + 0x10000, "dsp32", 0 ) /* dummy region for ADSP 2105 */
4663   ROM_REGION( 0x10000 + 0x10000, "mainpcb:dsp32", 0 ) /* dummy region for ADSP 2105 */
40494664   ROM_LOAD( "sboota.bin", 0x10000 + 0x00000, 0x10000, CRC(3ef819cd) SHA1(c547b869a3a37a82fb46584fe0ef0cfe21a4f882) )
40504665
4051   ROM_REGION( 0x10000 + 0x10000, "asic65:asic65cpu", 0 )    /* dummy region for ADSP 2105 */
4666   ROM_REGION( 0x10000 + 0x10000, "mainpcb:asic65:asic65cpu", 0 )    /* dummy region for ADSP 2105 */
40524667   ROM_LOAD( "xboota.bin", 0x10000 + 0x00000, 0x10000, CRC(d9c49901) SHA1(9f90ae3a47eb1ef00c3ec3661f60402c2eae2108) )
40534668
4054   ROM_REGION( 0xc0000, "user1", 0 )       /* 768k for object ROM */
4669   ROM_REGION( 0xc0000, "mainpcb:user1", 0 )       /* 768k for object ROM */
40554670   ROM_LOAD16_BYTE( "objects.0l",  0x00000, 0x20000, CRC(3c9e9078) SHA1(f1daf32117236401f3cb97f332708632003e55f8) )
40564671   ROM_LOAD16_BYTE( "objects.0h",  0x00001, 0x20000, CRC(4480dbae) SHA1(6a455173c38e80093f58bdc322cffcf25e70b6ae) )
40574672   ROM_LOAD16_BYTE( "objects.1l",  0x40000, 0x20000, CRC(700bd978) SHA1(5cd63d4eee00d90fe29fb9697b6a0ea6b86704ae) )
r241781r241782
40594674   ROM_LOAD16_BYTE( "objects.2l",  0x80000, 0x20000, CRC(e3b512f0) SHA1(080c5a21cb76edcb55d1c2488e9d91cf29cb0665) )
40604675   ROM_LOAD16_BYTE( "objects.2h",  0x80001, 0x20000, CRC(3f83742b) SHA1(4b6e0134a806bcc9bd56432737047f86d0a16424) )
40614676
4062   ROM_REGION16_BE( 0x140000, "user3", 0 )/* 1MB for DSK ROMs + 256k for RAM */
4677   ROM_REGION16_BE( 0x140000, "mainpcb:user3", 0 )/* 1MB for DSK ROMs + 256k for RAM */
40634678   ROM_LOAD16_BYTE( "dskpics.hi",  0x00000, 0x80000, CRC(eaa88101) SHA1(ed0ebf8a9a9514d810242b9b552126f6717f9e25) )
40644679   ROM_LOAD16_BYTE( "dskpics.lo",  0x00001, 0x80000, CRC(8c6f0750) SHA1(4cb23cedc500c1509dc875c3291a5771c8473f73) )
40654680
4066   ROM_REGION32_LE( 0x200000, "user4", 0 )/* 2MB for ASIC61 ROMs */
4681   ROM_REGION32_LE( 0x200000, "mainpcb:user4", 0 )/* 2MB for ASIC61 ROMs */
40674682   ROM_LOAD16_BYTE( "roads.0",     0x000000, 0x80000, CRC(cab2e335) SHA1(914996c5b7905f1c20fcda6972af88debbee59cd) )
40684683   ROM_LOAD16_BYTE( "roads.1",     0x000001, 0x80000, CRC(62c244ba) SHA1(f041a269f35a9d187c90241c5b64173663ad5268) )
40694684   ROM_LOAD16_BYTE( "roads.2",     0x000002, 0x80000, CRC(ba57f415) SHA1(1daf5a014e9bef15466b282bcca2395fec2b0628) )
40704685   ROM_LOAD16_BYTE( "roads.3",     0x000003, 0x80000, CRC(1e6a4ca0) SHA1(2cf06d6c73be11cf10515246fca2baa05ce5091b) )
40714686
4072   ROM_REGION( 0x10000, "ds3sdsp", 0 ) /* DS IV sound ADSP-2105 */
4687   ROM_REGION( 0x10000, "mainpcb:ds3sdsp", 0 ) /* DS IV sound ADSP-2105 */
40734688   ROM_LOAD( "sboota.bin", 0x00000, 0x10000, CRC(3ef819cd) SHA1(c547b869a3a37a82fb46584fe0ef0cfe21a4f882) )
40744689
4075   ROM_REGION( 0x10000, "ds3xdsp", 0 ) /* DS IV auxillary ADSP-2105 */
4690   ROM_REGION( 0x10000, "mainpcb:ds3xdsp", 0 ) /* DS IV auxillary ADSP-2105 */
40764691   ROM_LOAD( "xboota.bin", 0x00000, 0x10000, CRC(d9c49901) SHA1(9f90ae3a47eb1ef00c3ec3661f60402c2eae2108) )
40774692
4078   ROM_REGION16_BE( 0x400000, "ds3sdsp_data", 0 )
4693   ROM_REGION16_BE( 0x400000, "mainpcb:ds3sdsp_data", 0 )
40794694   ROM_LOAD16_BYTE( "ds3rom.5",    0x000000, 0x80000, CRC(6ef9ed90) SHA1(8bd927a56fe99f7db96d203c1daeb8c8c83f2c17) )
40804695   ROM_LOAD16_BYTE( "ds3rom.1",    0x000001, 0x80000, CRC(03673d8d) SHA1(13596f7acb58fba78d6e4f2ac7bb21d9d2589668) )
40814696   ROM_LOAD16_BYTE( "ds3rom.6",    0x100000, 0x80000, CRC(cd4cd6bc) SHA1(95689ab7cb18af54ff09aebf223f6346f13dfd7b) )
r241781r241782
40854700   ROM_LOAD16_BYTE( "ds3rom.0",    0x300000, 0x80000, CRC(90b8dbb6) SHA1(fff693cb81e88bc00e048bb71406295fe7be5122) )
40864701   ROM_LOAD16_BYTE( "ds3rom.4",    0x300001, 0x80000, CRC(6281efee) SHA1(47d0f3ff973166d818877996c45dccf1d3a85fe1) )
40874702
4088   ROM_REGION( 0x800, "200e", 0 )
4703   ROM_REGION( 0x800, "mainpcb:200e", 0 )
40894704   ROM_LOAD( "hdrivair.200e",      0x000000, 0x000800, CRC(6270b696) SHA1(e302880dbca53ee725108ca4f7e45a176e85e96d) )
40904705
4091   ROM_REGION( 0x800, "210e", 0 )
4706   ROM_REGION( 0x800, "mainpcb:210e", 0 )
40924707   ROM_LOAD( "hdrivair.210e",      0x000000, 0x000800, CRC(a1c39919) SHA1(92799a7a73f545dad6684eacf7009a6c4d52d8f7) )
40934708ROM_END
40944709
r241781r241782
43314946 *
43324947 *************************************/
43334948
4334DRIVER_INIT_MEMBER(harddriv_state,harddriv)
4949void harddriv_state::init_harddriv(void)
43354950{
43364951   /* initialize the boards */
43374952   init_driver();
r241781r241782
43544969}
43554970
43564971
4357DRIVER_INIT_MEMBER(harddriv_state,harddrivc)
4972void harddriv_state::init_harddrivc(void)
43584973{
43594974   /* initialize the boards */
43604975   init_multisync(1);
r241781r241782
43774992}
43784993
43794994
4380DRIVER_INIT_MEMBER(harddriv_state,stunrun)
4995void harddriv_state::init_stunrun(void)
43814996{
43824997   /* initialize the boards */
43834998   init_multisync(0);
r241781r241782
43945009}
43955010
43965011
4397DRIVER_INIT_MEMBER(harddriv_state,racedriv)
5012void harddriv_state::init_racedriv(void)
43985013{
43995014   /* initialize the boards */
44005015   init_driver();
r241781r241782
44035018   init_driver_sound();
44045019
44055020   /* set up the slapstic */
4406   slapstic_init(machine(), 117);
5021   m_slapstic_device->slapstic_init(machine(), 117);
44075022   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));
44085023
44095024   /* synchronization */
r241781r241782
44245039   init_driver_sound();
44255040
44265041   /* set up the slapstic */
4427   slapstic_init(machine(), 117);
5042   m_slapstic_device->slapstic_init(machine(), 117);
44285043   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));
44295044
44305045   /* synchronization */
r241781r241782
44435058   m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
44445059}
44455060
4446DRIVER_INIT_MEMBER(harddriv_state,racedrivc) { racedrivc_init_common(0xfff95cd0); }
4447DRIVER_INIT_MEMBER(harddriv_state,racedrivc1) { racedrivc_init_common(0xfff7ecd0); }
5061void harddriv_state::init_racedrivc(void) { racedrivc_init_common(0xfff95cd0); }
5062void harddriv_state::init_racedrivc1(void) { racedrivc_init_common(0xfff7ecd0); }
44485063
4449DRIVER_INIT_MEMBER(harddriv_state,racedrivb1)
5064void harddriv_state::init_racedrivc_panorama_side()
44505065{
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{
44515089   /* this unpleasantness prevents racedriv1/racedrivb1/racedrivg1 from crashing MAME during boot */
44525090   /* they clear the DSP32C's RAM and then release it from reset, causing it to run through */
44535091   /* its address space recursively executing instructions */
r241781r241782
44995137}
45005138
45015139
4502DRIVER_INIT_MEMBER(harddriv_state,steeltal)
5140void harddriv_state::init_steeltal(void)
45035141{
45045142   steeltal_init_common(0x4fc18, 0);
45055143}
45065144
4507DRIVER_INIT_MEMBER(harddriv_state,steeltal1)
5145void harddriv_state::init_steeltal1(void)
45085146{
45095147   steeltal_init_common(0x4f9c6, 0);
45105148}
45115149
4512DRIVER_INIT_MEMBER(harddriv_state,steeltalp)
5150void harddriv_state::init_steeltalp(void)
45135151{
45145152   steeltal_init_common(0x52290, 1);
45155153}
45165154
45175155
4518DRIVER_INIT_MEMBER(harddriv_state,strtdriv)
5156void harddriv_state::init_strtdriv(void)
45195157{
45205158   /* initialize the boards */
45215159   init_multisync(1);
r241781r241782
45235161   init_dsk();
45245162
45255163   /* set up the slapstic */
4526   slapstic_init(machine(), 117);
5164   m_slapstic_device->slapstic_init(machine(), 117);
45275165   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));
45285166
45295167   m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(FUNC(harddriv_state::hda68k_port1_r), this));
r241781r241782
45445182}
45455183
45465184
4547DRIVER_INIT_MEMBER(harddriv_state,hdrivair)
5185void harddriv_state::init_hdrivair(void)
45485186{
45495187   /* initialize the boards */
45505188   init_multisync(1);
r241781r241782
45695207}
45705208
45715209
4572DRIVER_INIT_MEMBER(harddriv_state,hdrivairp)
5210void harddriv_state::init_hdrivairp(void)
45735211{
45745212   /* initialize the boards */
45755213   init_multisync(1);
r241781r241782
45945232}
45955233
45965234
4597
45985235/*************************************
45995236 *
46005237 *  Game driver(s)
46015238 *
46025239 *************************************/
46035240
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 )
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 )
46155252
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 )
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 )
46205257
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 )
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 )
46325269
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 )
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 )
46445281
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 )
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 )
46535290
4654GAME( 1990, racedrivpan, racedriv, racedriv, racedriv, harddriv_state, racedriv, ROT0, "Atari Games", "Race Drivin' Panorama (prototype, rev 2.1)", GAME_NOT_WORKING )
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?
46555292
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 )
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 )
46605297
4661GAME( 1993, strtdriv, 0,        strtdriv, strtdriv, harddriv_state, strtdriv, ROT0, "Atari Games", "Street Drivin' (prototype)", 0 )
5298GAME( 1993, strtdriv, 0,        strtdriv_machine, strtdriv, driver_device, 0, ROT0, "Atari Games", "Street Drivin' (prototype)", 0 )
46625299
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 )
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
trunk/src/mame/drivers/lindbergh.c
r241781r241782
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"
227224#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"
228236
229class lindbergh_state : public pcat_base_state
237class lindbergh_state : public driver_device
230238{
231239public:
232240   lindbergh_state(const machine_config &mconfig, device_type type, const char *tag);
r241781r241782
235243   virtual void machine_reset();
236244};
237245
246#if 0
238247static ADDRESS_MAP_START(lindbergh_map, AS_PROGRAM, 32, lindbergh_state)
239248   AM_RANGE(0x00000000, 0x0009ffff) AM_RAM
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)
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)
242251//  0xd0000 - 0xdffff tested, wants 0x414d ("AM") in there
243252   AM_RANGE(0x000f0000, 0x000fffff) AM_ROM AM_REGION("mb_bios", 0xf0000)
244   AM_RANGE(0xfd000000, 0xfd3fffff) AM_ROM AM_REGION("jvs_bios", 0)    /* Hack to see the data */
253//   AM_RANGE(0xfd000000, 0xfd3fffff) AM_ROM AM_REGION("jvs_bios", 0)    /* Hack to see the data */
245254   AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("mb_bios", 0)     /* System BIOS */
246255ADDRESS_MAP_END
247256
248257static ADDRESS_MAP_START(lindbergh_io, AS_IO, 32, lindbergh_state)
249   AM_IMPORT_FROM(pcat32_io_common)
258//   AM_IMPORT_FROM(pcat32_io_common)
250259
251   AM_RANGE(0x00e8, 0x00ef) AM_NOP
252   AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_legacy_device, read, write)
260//   AM_RANGE(0x00e8, 0x00ef) AM_NOP
261//   AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_legacy_device, read, write)
253262ADDRESS_MAP_END
263#endif
254264
255lindbergh_state::lindbergh_state(const machine_config &mconfig, device_type type, const char *tag) : pcat_base_state(mconfig, type, tag)
265lindbergh_state::lindbergh_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag)
256266{
257267}
258268
r241781r241782
267277static MACHINE_CONFIG_START(lindbergh, lindbergh_state)
268278//  MCFG_CPU_ADD("maincpu", PENTIUM, 2800000000U) /* Actually Celeron D at 2,8 GHz */
269279   MCFG_CPU_ADD("maincpu", PENTIUM4, 28000000U*5) /* Actually Celeron D at 2,8 GHz */
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)
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)
273283
274   MCFG_FRAGMENT_ADD( pcat_common )
275   MCFG_FRAGMENT_ADD( pcvideo_vga )
284//   MCFG_FRAGMENT_ADD( pcat_common )
285//   MCFG_FRAGMENT_ADD( pcvideo_vga )
276286
277   MCFG_PCI_BUS_LEGACY_ADD("pcibus", 0)
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)
278307MACHINE_CONFIG_END
279308
280309ROM_START(lindbios)
281   ROM_REGION32_LE(0x100000, "mb_bios", 0) // location 3j7
310   ROM_REGION32_LE(0x100000, ":pci:1f.0", 0) // PC bios, location 3j7
282311   ROM_SYSTEM_BIOS(0, "bios0", "6.0.0010 alternate version")
283312   ROMX_LOAD("6.0.0010a.bin", 0x00000, 0x100000, CRC(10dd9b76) SHA1(1fdf1f921bc395846a7c3180fbdbc4ca287a9670), ROM_BIOS(1) )
284313   ROM_SYSTEM_BIOS(1, "bios1", "6.0.0009")
r241781r241782
287316   ROMX_LOAD("6.0.0010.bin", 0x00000, 0x100000, CRC(ea2bf888) SHA1(c9c5b6f0d4f4f36620939b15dd2f128a74347e37), ROM_BIOS(3) )
288317
289318
290   ROM_REGION(0x400000, "jvs_bios", 0)
319   ROM_REGION(0x400000, ":pci:1e.0:03.0", 0) // Baseboard MPC firmware
291320   ROM_LOAD("fpr-24370b.ic6", 0x000000, 0x400000, CRC(c3b021a4) SHA1(1b6938a50fe0e4ae813864649eb103838c399ac0))
292321
293   ROM_REGION(0x10000, "vid_bios", 0)
322   ROM_REGION32_LE(0x10000, ":pci:01.0:00.0", 0) // Geforce bios extension (custom or standard?)
294323   ROM_LOAD("vid_bios.u504", 0x00000, 0x10000, CRC(f78d14d7) SHA1(f129787e487984edd23bf344f2e9500c85052275))
295324ROM_END
296325
297GAME(1999, lindbios, 0, lindbergh, at_keyboard, driver_device, 0, ROT0, "Sega Lindbergh", "Sega Lindbergh Bios", GAME_IS_SKELETON)
326GAME(1999, lindbios, 0, lindbergh, 0, driver_device, 0, ROT0, "Sega Lindbergh", "Sega Lindbergh Bios", GAME_IS_SKELETON)
trunk/src/mame/drivers/magictg.c
r241781r241782
118118#include "cpu/adsp2100/adsp2100.h"
119119#include "sound/dmadac.h"
120120#include "video/voodoo.h"
121#include "machine/pci.h"
121#include "machine/lpci.h"
122122
123123
124124/* TODO: Two 3Dfx Voodoo chipsets are used in SLI configuration */
trunk/src/mame/drivers/mediagx.c
r241781r241782
6666
6767#include "emu.h"
6868#include "cpu/i386/i386.h"
69#include "machine/pci.h"
69#include "machine/lpci.h"
7070#include "machine/pcshare.h"
7171#include "machine/pckeybrd.h"
7272#include "machine/idectrl.h"
trunk/src/mame/drivers/midqslvr.c
r241781r241782
2424
2525#include "emu.h"
2626#include "cpu/i386/i386.h"
27#include "machine/pci.h"
27#include "machine/lpci.h"
2828#include "machine/pcshare.h"
2929#include "machine/pckeybrd.h"
3030#include "machine/idectrl.h"
trunk/src/mame/drivers/naomi.c
r241781r241782
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-14124  171-7885A (C) Sega 1998
210837-13591  171-7885A (C) Sega 1998
211211|------------------------------------------------------------|
212212|                                          ----CN2----       -|
213213|                                                      JJ     |
r241781r241782
254254                                     Sticker    EPROM   MASKROMs    X76F100  EPM7064S  FPGA
255255Game                                 on cart    IC22#   # of SOP56  IC37#    IC41#     IC42#         Notes
256256-------------------------------------------------------------------------------------------------------------------------
257Crackin' DJ part 2                   840-0068C  23674   20 (64Mb)   present  present   317-0311-COM
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
258260Inu 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
259262Soul Surfer (Rev A)                  840-0095C  23838C  21 (64Mb)   present  present   not present   todo: verify if it's Rev A or Rev C
260263Star Horse (server)                  840-0055C  23626   17 (64Mb)   present  present   not present
261264The King of Route 66 (Rev A)         840-0087C  23819A  20 (64Mb)   present  present   not present
262Club Kart European Session (2003, prototype) ?  *       21 (64Mb)   present  present   not present   *instead of EPROM have tiny PCB with 2 flashroms on it
265Virtua NBA (prototype)                          *       21 (64Mb)   present  present   317-0271-COM  *instead of EPROM have tiny PCB with 2 flashroms on it
263266
264267
265268
r241781r241782
292295   CN1/2/3  - connectors joining to main board
293296
294297Games known to use this PCB include....
295                                                Sticker    EPROM   MASKROMs    X76F100  XC9536    315-5881
296Game                                            on cart    IC22#   # of SOP44  IC37#    IC41#     IC42#          Notes
298                                                Sticker      EPROM   MASKROMs    X76F100  XC9536    315-5881
299Game                                            on cart      IC22#   # of SOP44  IC37#    IC41#     IC42#          Notes
297300-------------------------------------------------------------------------------------------------------------------------
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
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
344347
345348
346349
r241781r241782
497500Club Kart: European Session                     840-0062C  23704   11 (128Mb)  315-6319A  present   317-0313-COM
498501Club Kart: European Session (Rev D)             840-0062C  23704D  11 (128Mb)  315-6319A  present   317-0313-COM
499502Club 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'
500Crackin' DJ                                     840-0043C  23450D  10 (128Mb)  315-6319   present   ?
503Crackin' DJ                                     840-0043C  23450  10 (128Mb)  315-6319   present   317-0288-COM
501504Derby Owners Club II (Rev B)                    840-0083C  22306B  11 (128Mb)  315-6319A  present   not present
502505Derby Owners Club World Edition (Rev C)         840-0088C  22336C   7 (128Mb)  315-6319A  present   not present
503506Derby Owners Club World Edition (Rev D)         840-0088C  22336D   7 (128Mb)  315-6319A  present   not present   2 MaskROM are different from Rev C
r241781r241782
506509Moero Justice Gakuen / Project Justice (Rev A)  841-0015C  23548A  11 (128Mb)  315-6319A  present   317-5065-COM
507510Mushiking 2K5 1ST (Ver 1.000)                   840-0158C  24286    7 (128Mb)  315-6319A  present   not present
508511Oinori-daimyoujin Matsuri                       840-0126B  24053    5 (128Mb)  315-6319A  present   not present
509Samba de Amigo Ver. 2000                        840-0047C  23600   21 (64Mb)* 315-6319A  present   317-0295-COM  most likely MaskROM size is wrong, needs verification
512Samba de Amigo Ver. 2000                        840-0047C  23600   11 (128Mb) 315-6319A  present   317-0295-COM
510513Star Horse (big screens)                        840-0054C  23625    4 (128Mb)  315-6319   present   not present
511514Star Horse (client)                             840-0056C  23627    6 (128Mb)* 315-6319   present   not present   * +1 (64Mb)
512515Star Horse Progress (Rev A)                     840-0123C  24122A   7 (128Mb)  315-6319A  present   not present   requires an additional middle board n? 837-13785
r241781r241782
37213724   ROM_LOAD("mpr-21898.ic18s", 0x9000000, 0x0800000, CRC(cacea996) SHA1(df2b7ce00d8d6171806f676966f5f45d7fb76431) )
37223725   ROM_LOAD("mpr-21899.ic19s", 0x9800000, 0x0800000, CRC(14a4b87d) SHA1(33177dea88c6aec31e2c16c8d0d3f29c7ea772c5) )
37233726   ROM_LOAD("mpr-21900.ic20s", 0xa000000, 0x0800000, CRC(81901130) SHA1(1573b5c4360e29ba1a4b4901af49d5399fa1e635) )
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
3727   ROM_LOAD("mpr-21901.ic21s", 0xa800000, 0x0800000, CRC(266a3eea) SHA1(795ecc5589a0152b9cf1e03e454ed1ea01501942) )
37253728
37263729   ROM_REGION( 4, "rom_key", 0 )
37273730   ROM_LOAD( "f355-key.bin", 0, 4, CRC(7d1431ab) SHA1(38958860241c600db941b47294bf3ca3273d0df5) )
r241781r241782
41844187   NAOMI_BIOS
41854188   NAOMI_DEFAULT_EEPROM
41864189
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
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) )
42114203
42124204   ROM_REGION( 4, "rom_key", 0 )
42134205   ROM_LOAD( "samba2k-key.bin", 0, 4, CRC(01c0d74a) SHA1(4461cfd761919ba4bc6f1d1839a880f11eaf8d0f) )
r241781r241782
63516343
63526344   ROM_REGION( 0x5800000, "rom_board", ROMREGION_ERASEFF)
63536345   ROM_LOAD( "epr-21779a.ic22",0x0000000, 0x400000, CRC(1d419767) SHA1(33065006ef437845abcf32a59e78f4bc202c4460) )
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
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) )
63656356
63666357   ROM_REGION( 4, "rom_key", 0 )
63676358   ROM_LOAD( "ringout-key.bin", 0, 4, CRC(8f8c4eb2) SHA1(9bc59c69d04d9ce876415af048f39095ed680a5e) )
r241781r241782
63736364
63746365   ROM_REGION( 0x7000000, "rom_board", ROMREGION_ERASEFF)
63756366   ROM_LOAD( "epr-23198.ic22",  0x0000000, 0x400000, CRC(9852eda2) SHA1(71ded8cbdf567afeff30bd593071ce3b7d84a260) )
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
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) )
63906380
63916381   ROM_REGION( 4, "rom_key", 0 )
63926382   ROM_LOAD( "vonot-key.bin", 0, 4, CRC(021ac707) SHA1(af57844331226d3b1722aedca1a7aef024468b39) )
trunk/src/mame/drivers/pcxt.c
r241781r241782
685685   m_lastvalue = -1;
686686
687687   m_pc_spkrdata = 0;
688   m_pit_out2 = 0;
688   m_pit_out2 = 1;
689689   m_wss2_data = 0;
690690   m_speaker->level_w(0);
691691}
trunk/src/mame/drivers/peplus.c
r241781r241782
13691369*        Rom Load        *
13701370*************************/
13711371
1372ROM_START( peset001 ) /* Normal board : Set Chip (Set001) - Use for PP0542 */
1372ROM_START( peset001 ) /* Normal board : Set Chip (Set001) - PE+ Set Denomination */
13731373   ROM_REGION( 0x10000, "maincpu", 0 )
13741374   ROM_LOAD( "set001.u68",   0x00000, 0x10000, CRC(03397ced) SHA1(89d8ba7e6706e6d34ae9aae09a8a631fff06a36f) )
13751375
r241781r241782
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 Denom / Enable Validator */
1386ROM_START( peset004 ) /* Normal board : Set Chip (Set004) - PE+ Set Denomination / Enable Validator */
13871387   ROM_REGION( 0x10000, "maincpu", 0 )
13881388   ROM_LOAD( "set004.u68",   0x00000, 0x10000, CRC(b5729571) SHA1(fa3bb1fec81692a898213f9521ac0b2a4d1a8968) )
13891389
r241781r241782
13971397   ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */
13981398ROM_END
13991399
1400ROM_START( peset038 ) /* Normal board : Set Chip (Set038) */
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 */
14011403   ROM_REGION( 0x10000, "maincpu", 0 )
14021404   ROM_LOAD( "set038.u68",   0x00000, 0x10000, CRC(9c4b1d1a) SHA1(8a65cd1d8e2d74c7b66f4dfc73e7afca8458e979) )
14031405
r241781r241782
14111413   ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */
14121414ROM_END
14131415
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
14141431ROM_START( pepk1024 ) /* Normal (non-plus) board : Aces and Faces 4 of a Kind Bonus Poker (PK1024) */
14151432/*
14161433                                      2-10 J-A
r241781r241782
87498766/*    YEAR  NAME      PARENT  MACHINE   INPUT         INIT      ROT    COMPANY                                  FULLNAME                                                  FLAGS   LAYOUT */
87508767
87518768/* Set chips */
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 )
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 )
87558773
87568774/* Normal (non-plus) board : Poker */
87578775GAMEL(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
r241781r241782
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) )
983987
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
9841002/*
9851003
9861004Dragon World 3 (KOREA 106 Ver.)
r241781r241782
41454163GAME( 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 )
41464164GAME( 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 )
41474165GAME( 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)
41484167
41494168GAME( 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 */
41504169GAME( 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
r241781r241782
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
281307ROM_START( kov2nl )
282308   ROM_REGION( 0x04000, "maincpu", 0 )
283309   ROM_LOAD( "gsyx_igs036.rom",         0x00000000, 0x0004000, NO_DUMP )
r241781r241782
330356   ROM_LOAD16_WORD_SWAP( "ig-a3_sp.u37",            0x00000000, 0x2000000, CRC(45cdf422) SHA1(8005d284bcee73cff37a147fcd1c3e9f039a7203) )
331357ROM_END
332358
359ROM_START( kov2nloa )
360   ROM_REGION( 0x04000, "maincpu", 0 )
361   ROM_LOAD( "gsyx_igs036.rom",         0x00000000, 0x0004000, NO_DUMP )
333362
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
334385ROM_START( ddpdojh )
335386   ROM_REGION( 0x04000, "maincpu", 0 )
336387   ROM_LOAD( "ddpdoj_igs036.rom",       0x00000000, 0x0004000, NO_DUMP )
r241781r241782
496547/* PGM2 */
497548GAME( 2007, orleg2,       0,         pgm2,    pgm2, pgm2_state,     orleg2,       ROT0, "IGS", "Oriental Legend 2 (V104, China)", GAME_IS_SKELETON )
498549GAME( 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 )
499551// should be earlier verisons too.
500552
501553GAME( 2008, kov2nl,       0,         pgm2,    pgm2, pgm2_state,     kov2nl,       ROT0, "IGS", "Knights of Valour 2 New Legend (V302, China)", GAME_IS_SKELETON )
502554GAME( 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 )
503556// should be earlier verisons too.
504557
505558GAME( 2010, ddpdojh,      0,    pgm2,    pgm2, pgm2_state,     ddpdojh,    ROT270, "IGS", "Dodonpachi Daioujou Tamashii (V201, China)", GAME_IS_SKELETON )
trunk/src/mame/drivers/photoply.c
r241781r241782
1313
1414#include "emu.h"
1515#include "cpu/i386/i386.h"
16#include "machine/pci.h"
16#include "machine/lpci.h"
1717#include "machine/pcshare.h"
1818#include "machine/pckeybrd.h"
1919#include "machine/idectrl.h"
trunk/src/mame/drivers/pinball2k.c
r241781r241782
1919
2020#include "emu.h"
2121#include "cpu/i386/i386.h"
22#include "machine/pci.h"
22#include "machine/lpci.h"
2323#include "machine/pcshare.h"
2424#include "machine/pckeybrd.h"
2525#include "machine/idectrl.h"
trunk/src/mame/drivers/queen.c
r241781r241782
2626
2727#include "emu.h"
2828#include "cpu/i386/i386.h"
29#include "machine/pci.h"
29#include "machine/lpci.h"
3030#include "machine/pcshare.h"
3131#include "machine/pckeybrd.h"
3232#include "machine/idectrl.h"
trunk/src/mame/drivers/rampart.c
r241781r241782
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
342344   MCFG_MACHINE_RESET_OVERRIDE(rampart_state,rampart)
343345
344346   MCFG_ATARI_EEPROM_2816_ADD("eeprom")
trunk/src/mame/drivers/rockrage.c
r241781r241782
210210};
211211
212212static GFXDECODE_START( rockrage )
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 */
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 */
215215GFXDECODE_END
216216
217217/***************************************************************************
r241781r241782
227227   m_rombank->configure_entries(0, 8, &ROM[0x10000], 0x2000);
228228
229229   save_item(NAME(m_vreg));
230   save_item(NAME(m_layer_colorbase));
231230}
232231
233232void rockrage_state::machine_reset()
r241781r241782
268267   MCFG_K007420_PALETTE("palette")
269268
270269   MCFG_GFXDECODE_ADD("gfxdecode", "palette", rockrage)
271   MCFG_PALETTE_ADD("palette", 64 + 2*16*16)
270   MCFG_PALETTE_ADD("palette", 16*16*3)
272271   MCFG_PALETTE_INDIRECT_ENTRIES(64)
273272   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
274273   MCFG_PALETTE_ENDIANNESS(ENDIANNESS_LITTLE)
r241781r241782
310309   ROM_LOAD( "620l10.8g",  0x020000, 0x20000, CRC(06d108e0) SHA1(cae8c5f2fc4e84bc7adbf27f71a18a74968c4296) ) /* One "K" & one "L" code version??? */
311310
312311   ROM_REGION( 0x0300, "proms", 0 )
313   ROM_LOAD( "620k09.11g", 0x00000, 0x00100, CRC(9f0e0608) SHA1(c95bdb370e4a91f27afbd5ff3b39b2e0ad87da73) )    /* layer 0 lookup table */
312   ROM_LOAD( "620k07.13g", 0x00000, 0x00100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) )    /* layer 0 lookup table */
314313   ROM_LOAD( "620k08.12g", 0x00100, 0x00100, CRC(b499800c) SHA1(46fa4e071ebceed12027de109be1e16dde5e846e) )    /* layer 1 lookup table */
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 */
314   ROM_LOAD( "620k09.11g", 0x00200, 0x00100, CRC(9f0e0608) SHA1(c95bdb370e4a91f27afbd5ff3b39b2e0ad87da73) )    /* sprite lookup table */
315
317316   ROM_REGION( 0x08000, "vlm", 0 ) /* VLM3050 data */
318317   ROM_LOAD( "620k04.6e", 0x00000, 0x08000, CRC(8be969f3) SHA1(9856b4c13fac77b645aed67a08cb4965b4966492) )
319318ROM_END
r241781r241782
339338   ROM_LOAD( "620g10b.8f", 0x030000, 0x10000, CRC(1618854a) SHA1(0afb34a9ed97f13c1910acd7767cb8546ea7e6cd) )
340339
341340   ROM_REGION( 0x0300, "proms", 0 )
342   ROM_LOAD( "620k09.11g", 0x00000, 0x00100, CRC(9f0e0608) SHA1(c95bdb370e4a91f27afbd5ff3b39b2e0ad87da73) )    /* layer 0 lookup table */
341   ROM_LOAD( "620k07.13g", 0x00000, 0x00100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) )    /* layer 0 lookup table */
343342   ROM_LOAD( "620k08.12g", 0x00100, 0x00100, CRC(b499800c) SHA1(46fa4e071ebceed12027de109be1e16dde5e846e) )    /* layer 1 lookup table */
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 */
343   ROM_LOAD( "620k09.11g", 0x00200, 0x00100, CRC(9f0e0608) SHA1(c95bdb370e4a91f27afbd5ff3b39b2e0ad87da73) )    /* sprite lookup table */
344
346345   ROM_REGION( 0x08000, "vlm", 0 ) /* VLM3050 data */
347346   ROM_LOAD( "620k04.6e", 0x00000, 0x08000, CRC(8be969f3) SHA1(9856b4c13fac77b645aed67a08cb4965b4966492) ) /* Same rom but labeled as ver "G" */
348347ROM_END
r241781r241782
364363   ROM_LOAD( "620k10.8g",  0x020000, 0x20000, CRC(0d1a95ab) SHA1(be565424f17af31dcd07004c6be03bbb00aef514) )
365364
366365   ROM_REGION( 0x0300, "proms", 0 )
367   ROM_LOAD( "620k09.11g", 0x00000, 0x00100, CRC(9f0e0608) SHA1(c95bdb370e4a91f27afbd5ff3b39b2e0ad87da73) )    /* layer 0 lookup table */
366   ROM_LOAD( "620k07.13g", 0x00000, 0x00100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) )    /* layer 0 lookup table */
368367   ROM_LOAD( "620k08.12g", 0x00100, 0x00100, CRC(b499800c) SHA1(46fa4e071ebceed12027de109be1e16dde5e846e) )    /* layer 1 lookup table */
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 */
368   ROM_LOAD( "620k09.11g", 0x00200, 0x00100, CRC(9f0e0608) SHA1(c95bdb370e4a91f27afbd5ff3b39b2e0ad87da73) )    /* sprite lookup table */
369
371370   ROM_REGION( 0x08000, "vlm", 0 ) /* VLM3050 data */
372371   ROM_LOAD( "620k04.6e", 0x00000, 0x08000, CRC(8be969f3) SHA1(9856b4c13fac77b645aed67a08cb4965b4966492) )
373372ROM_END
trunk/src/mame/drivers/savquest.c
r241781r241782
4646
4747#include "emu.h"
4848#include "cpu/i386/i386.h"
49#include "machine/pci.h"
49#include "machine/lpci.h"
5050#include "machine/pcshare.h"
5151#include "machine/pckeybrd.h"
5252#include "machine/idectrl.h"
trunk/src/mame/drivers/segas18.c
r241781r241782
7373         switch (m_romboard)
7474         {
7575            case ROM_BOARD_171_SHADOW:  break;  // ???
76            case ROM_BOARD_837_7525:
7677            case ROM_BOARD_171_5874:
7778            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;
7879            default:                    assert(false);
r241781r241782
8990                                 else
9091                                    mapper.map_as_rom(0x00000,0x100000, 0xf00000, "rom1base",0x100000, write16_delegate(FUNC(segas18_state::rom_5987_bank_w), this));
9192                                 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
9296            default:                    assert(false);
9397         }
9498         break;
r241781r241782
98102         {
99103            case ROM_BOARD_171_SHADOW:
100104            case ROM_BOARD_171_5874:    mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", 0x00000, write16_delegate()); break;
105            case ROM_BOARD_837_7525:
101106            case ROM_BOARD_171_5987:    if (romsize <= 0x100000)
102107                                    mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", 0x00000, write16_delegate());
103108                                 else
r241781r241782
390395   }
391396}
392397
398WRITE16_MEMBER( segas18_state::rom_837_7525_bank_w )
399{
400   if (!ACCESSING_BITS_0_7)
401      return;
393402
403   offset &= 0xf;
404   data &= 0xff;
394405
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
395427/*************************************
396428 *
397429 *  D.D.Crew Custom I/O
r241781r241782
729761   PORT_DIPSETTING(    0x00, "1" )
730762   //"SW2:7" unused
731763   //"SW2:8" unused
732
733764INPUT_PORTS_END
734765
735
736766static INPUT_PORTS_START( astorm2p )
737767   PORT_INCLUDE( system18_generic )
738768
r241781r241782
757787   PORT_DIPSETTING(    0x00, "1" )
758788   //"SW2:7" unused
759789   //"SW2:8" unused
760
761790INPUT_PORTS_END
762791
763792
r241781r241782
876905   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
877906INPUT_PORTS_END
878907
879
880908static INPUT_PORTS_START( ddcrew2p )
881909   PORT_INCLUDE( system18_generic )
882910
r241781r241782
903931   PORT_DIPSETTING(    0xc0, DEF_STR( Normal ) )
904932   PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
905933   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
906
907934INPUT_PORTS_END
908935
909936static INPUT_PORTS_START( ddcrew3p )
r241781r241782
922949   PORT_MODIFY("SERVICE")
923950   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
924951   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
925
926952INPUT_PORTS_END
927953
954
928955static INPUT_PORTS_START( desertbr )
929956   PORT_INCLUDE( system18_generic )
930957
r241781r241782
9731000INPUT_PORTS_END
9741001
9751002
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
9761028static INPUT_PORTS_START( lghost )
9771029   PORT_INCLUDE( system18_generic )
9781030
r241781r241782
11841236INPUT_PORTS_END
11851237
11861238
1187
11881239/*************************************
11891240 *
11901241 *  Graphics definitions
r241781r241782
12281279 *
12291280 *************************************/
12301281
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
12311291static MACHINE_CONFIG_START( system18, segas18_state )
12321292
12331293   // basic machine hardware
r241781r241782
12761336
12771337   MCFG_SOUND_ADD("ym1", YM3438, 8000000)
12781338   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
1339   MCFG_YM2612_IRQ_HANDLER(WRITELINE(segas18_state, ym3438_irq_handler))
12791340
12801341   MCFG_SOUND_ADD("ym2", YM3438, 8000000)
12811342   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
r241781r241782
18711932/**************************************************************************************************************************
18721933 **************************************************************************************************************************
18731934 **************************************************************************************************************************
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 **************************************************************************************************************************
18741974    Laser Ghost, Sega System 18
18751975    CPU: FD1094 (317-0166)
18761976    ROM Board: 171-5873B
r241781r241782
22622362ROM_END
22632363
22642364
2265
22662365/*************************************
22672366 *
22682367 *  Generic driver initialization
r241781r241782
22842383   init_generic(ROM_BOARD_171_5987);
22852384}
22862385
2386DRIVER_INIT_MEMBER(segas18_state,hamaway)
2387{
2388   init_generic(ROM_BOARD_837_7525);
2389}
22872390
22882391
22892392/*************************************
r241781r241782
23142417}
23152418
23162419
2317
23182420/*************************************
23192421 *
23202422 *  Game driver(s)
23212423 *
23222424 *************************************/
23232425
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 )
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 )
trunk/src/mame/drivers/starwars.c
r241781r241782
6262      address_space &space = m_maincpu->space(AS_PROGRAM);
6363
6464      /* reset the slapstic */
65      slapstic_reset();
66      m_slapstic_current_bank = slapstic_bank();
65      m_slapstic_device->slapstic_reset();
66      m_slapstic_current_bank = m_slapstic_device->slapstic_bank();
6767      memcpy(m_slapstic_base, &m_slapstic_source[m_slapstic_current_bank * 0x2000], 0x2000);
6868
6969      /* reset all the banks */
r241781r241782
9797
9898void starwars_state::esb_slapstic_tweak(address_space &space, offs_t offset)
9999{
100   int new_bank = slapstic_tweak(space, offset);
100   int new_bank = m_slapstic_device->slapstic_tweak(space, offset);
101101
102102   /* update for the new bank */
103103   if (new_bank != m_slapstic_current_bank)
r241781r241782
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
334336   MCFG_CPU_ADD("audiocpu", M6809, MASTER_CLOCK / 8)
335337   MCFG_CPU_PROGRAM_MAP(sound_map)
336338
r241781r241782
524526   UINT8 *rom = memregion("maincpu")->base();
525527
526528   /* init the slapstic */
527   slapstic_init(machine(), 101);
529   m_slapstic_device->slapstic_init(machine(), 101);
528530   m_slapstic_source = &rom[0x14000];
529531   m_slapstic_base = &rom[0x08000];
530532
trunk/src/mame/drivers/stv.c
r241781r241782
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)
10241027MACHINE_CONFIG_END
10251028
10261029/*
trunk/src/mame/drivers/taitowlf.c
r241781r241782
2727
2828#include "emu.h"
2929#include "cpu/i386/i386.h"
30#include "machine/pci.h"
30#include "machine/lpci.h"
3131#include "machine/pcshare.h"
3232#include "machine/pckeybrd.h"
3333#if ENABLE_VGA
trunk/src/mame/drivers/tmnt.c
r241781r241782
28942894   ROM_LOAD( "963a25.d5",      0x00000, 0x80000, CRC(fca078c7) SHA1(3e1124d72c9db4cb11d8de6c44b7aeca967f44e1) )
28952895ROM_END
28962896
2897
28982897ROM_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
28992898   ROM_REGION( 0x60000, "maincpu", 0 ) /* 2*128k and 2*64k for 68000 code */
2900   ROM_LOAD16_BYTE( "unk3.i17",   0x00000, 0x20000, CRC(537eb047) SHA1(97e6dbc486c7d057355db7fcbdc0a2c2cad2c653) )
2899   ROM_LOAD16_BYTE( "unk3.i17",   0x00000, 0x20000, CRC(537eb047) SHA1(97e6dbc486c7d057355db7fcbdc0a2c2cad2c653) ) /* unknown 963 xxx Konami code for this set */
29012900   ROM_LOAD16_BYTE( "unk4.k17",   0x00001, 0x20000, CRC(5afae564) SHA1(8d5fbf9530ad8d095c12b7e0f8c499c1436c4d47) )
2902   ROM_LOAD16_BYTE( "unk2.j15",   0x40000, 0x10000, CRC(ee34de05) SHA1(507d7fb178dbbe87dd373a81ad3f350ee2f7d923))
2903   ROM_LOAD16_BYTE( "unk1.k15",   0x40001, 0x10000, NO_DUMP )
2901   ROM_LOAD16_BYTE( "unk2.j15",   0x40000, 0x10000, CRC(ee34de05) SHA1(507d7fb178dbbe87dd373a81ad3f350ee2f7d923) )
2902   ROM_LOAD16_BYTE( "unk5.k15",   0x40001, 0x10000, CRC(5ef58d4e) SHA1(5df71c61a90c3e9d28ec3b8055d7ee97bc283e01) )
29042903
29052904   ROM_REGION( 0x10000, "audiocpu", 0 )
29062905   ROM_LOAD( "963e20.g13",      0x00000, 0x08000, CRC(1692a6d6) SHA1(68c3419012b2863e91a7d7e479fce5ceabb10b88) )
r241781r241782
29292928   ROM_LOAD( "963a25.d5",      0x00000, 0x80000, CRC(fca078c7) SHA1(3e1124d72c9db4cb11d8de6c44b7aeca967f44e1) )
29302929ROM_END
29312930
2932
29332931ROM_START( tmntj )
29342932   ROM_REGION( 0x60000, "maincpu", 0 ) /* 2*128k and 2*64k for 68000 code */
29352933   ROM_LOAD16_BYTE( "963_223.j17",  0x00000, 0x20000, CRC(0d34a5ff) SHA1(a387f3e7c727dc66ebb0e1f40e4ab8dc83f647e5) )
r241781r241782
41024100GAME( 1989, tmntua,      tmnt,     tmnt,     tmnt,      tmnt_state,    tmnt,     ROT0,   "Konami", "Teenage Mutant Ninja Turtles (US 4 Players, set 2)", GAME_SUPPORTS_SAVE )
41034101GAME( 1989, tmht,        tmnt,     tmnt,     tmnt,      tmnt_state,    tmnt,     ROT0,   "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 1)", GAME_SUPPORTS_SAVE )
41044102GAME( 1989, tmhta,       tmnt,     tmnt,     tmnt,      tmnt_state,    tmnt,     ROT0,   "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 2)", 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
4103GAME( 1989, tmhtb,       tmnt,     tmnt,     tmnt,      tmnt_state,    tmnt,     ROT0,   "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 3)", GAME_SUPPORTS_SAVE )
41064104GAME( 1990, tmntj,       tmnt,     tmnt,     tmnt,      tmnt_state,    tmnt,     ROT0,   "Konami", "Teenage Mutant Ninja Turtles (Japan 4 Players)", GAME_SUPPORTS_SAVE )
41074105GAME( 1989, tmht2p,      tmnt,     tmnt,     tmnt2p,    tmnt_state,    tmnt,     ROT0,   "Konami", "Teenage Mutant Hero Turtles (UK 2 Players, set 1)", GAME_SUPPORTS_SAVE )
41084106GAME( 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
r241781r241782
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
52095235ROM_START( bbakraidj )
52105236   ROM_REGION( 0x200000, "maincpu", 0 )            /* Main 68k code */
52115237   ROM_LOAD16_BYTE( "prg0u022.new", 0x000000, 0x080000, CRC(fa8d38d3) SHA1(aba91d87a8a62d3fe1139b4437b16e2f844264ad) )
r241781r241782
53445370// Battle Bakraid
53455371// the 'unlimited' version is a newer revision of the code
53465372GAME( 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 )
53475374GAME( 1999, bbakraidj,  bbakraid, bbakraid, bbakraid, toaplan2_state,  bbakraid, ROT270, "Eighting", "Battle Bakraid - Unlimited Version (Japan) (Tue Jun 8 1999)", GAME_SUPPORTS_SAVE )
53485375// older revision of the code
53495376GAME( 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
r241781r241782
20262026   save_item(NAME(m_music_is_playing));
20272027
20282028   save_item(NAME(m_control_0));
2029   save_item(NAME(m_flipscreen));
20302029   save_item(NAME(m_tilebank));
20312030}
20322031
r241781r241782
20352034   m_music_command = 0;
20362035   m_music_bank = 0;
20372036   m_music_is_playing = 0;
2038   m_flipscreen = 0;
20392037   m_tilebank = 0;
20402038   memset(m_control_0, 0, sizeof(m_control_0));
20412039}
trunk/src/mame/drivers/vigilant.c
r241781r241782
606606
607607***************************************************************************/
608608
609
609610ROM_START( vigilant )
610611   ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */
611   ROM_LOAD( "g07_c03.bin",  0x00000, 0x08000, CRC(9dcca081) SHA1(6d086b70e6bf1fbafa746ef5c82334645f199be9) )
612   ROM_LOAD( "j07_c04.bin",  0x10000, 0x10000, CRC(e0159105) SHA1(da6d74ec075863c67c0ce21b07a54029d138f688) )
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) )
613614   /* 0x20000-0x2ffff empty */
614615
615616   ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for sound */
616   ROM_LOAD( "g05_c02.bin",  0x00000, 0x10000, CRC(10582b2d) SHA1(6e7e5f07c49b347b427572efeb180c89f49bf2c7) )
617   ROM_LOAD( "vg_a-5j-.ic37",  0x00000, 0x10000, CRC(10582b2d) SHA1(6e7e5f07c49b347b427572efeb180c89f49bf2c7) )
617618
618619   ROM_REGION( 0x20000, "gfx1", 0 )
619   ROM_LOAD( "f05_c08.bin",  0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) )
620   ROM_LOAD( "h05_c09.bin",  0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) )
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) )
621622
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) )
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)
631632
632633   ROM_REGION( 0x40000, "gfx3", 0 )
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) )
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) )
636637
637638   ROM_REGION( 0x10000, "samples", 0 ) /* samples */
638   ROM_LOAD( "d04_c01.bin",  0x00000, 0x10000, CRC(9b85101d) SHA1(6b8a0f33b9b66bb968f7b61e49d19a6afad8db95) )
639   ROM_LOAD( "vg_a-4d-.ic26",  0x00000, 0x10000, CRC(9b85101d) SHA1(6b8a0f33b9b66bb968f7b61e49d19a6afad8db95) )
639640
640641   ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected */
641642   ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) )
642643   ROM_LOAD( "vg_b-4m.ic38", 0x0200, 0x0117, CRC(dbca4204) SHA1(d8e190f2dc4d6285f22be331d01ed402520d2017) )
643   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
644   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
644645ROM_END
645646
646
647
648647ROM_START( vigilant1 )
649648   ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */
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) )
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) )
652651   /* 0x20000-0x2ffff empty */
653652
654653   ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for sound */
655   ROM_LOAD( "g05_c02.bin",  0x00000, 0x10000, CRC(10582b2d) SHA1(6e7e5f07c49b347b427572efeb180c89f49bf2c7) )
654   ROM_LOAD( "vg_a-5j-.ic37",  0x00000, 0x10000, CRC(10582b2d) SHA1(6e7e5f07c49b347b427572efeb180c89f49bf2c7) )
656655
657656   ROM_REGION( 0x20000, "gfx1", 0 )
658   ROM_LOAD( "f05_c08.bin",  0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) )
659   ROM_LOAD( "h05_c09.bin",  0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) )
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) )
660659
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) )
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)
670669
671670   ROM_REGION( 0x40000, "gfx3", 0 )
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) )
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) )
675674
676675   ROM_REGION( 0x10000, "samples", 0 ) /* samples */
677   ROM_LOAD( "d04_c01.bin",  0x00000, 0x10000, CRC(9b85101d) SHA1(6b8a0f33b9b66bb968f7b61e49d19a6afad8db95) )
676   ROM_LOAD( "vg_a-4d-.ic26",  0x00000, 0x10000, CRC(9b85101d) SHA1(6b8a0f33b9b66bb968f7b61e49d19a6afad8db95) )
678677
679678   ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected */
680679   ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) )
681680   ROM_LOAD( "vg_b-4m.ic38", 0x0200, 0x0117, CRC(dbca4204) SHA1(d8e190f2dc4d6285f22be331d01ed402520d2017) )
682   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
681   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
683682ROM_END
684683
685
686ROM_START( vigilantu )
684ROM_START( vigilantu ) /* Need to determine the correct original roms & IC locations for this set */
687685   ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */
688686   ROM_LOAD( "a-8h",  0x00000, 0x08000, CRC(8d15109e) SHA1(9ef57047a0b53cd0143a260193b33e3d5680ca71) )
689687   ROM_LOAD( "a-8l",  0x10000, 0x10000, CRC(7f95799b) SHA1(a371671c3c26976314aaac4e410bff0f13a8a085) )
r241781r241782
696694   ROM_LOAD( "f05_c08.bin",  0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) )
697695   ROM_LOAD( "h05_c09.bin",  0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) )
698696
699   ROM_REGION( 0x80000, "gfx2", 0 )
697   ROM_REGION( 0x80000, "gfx2", 0 ) // 8 roms is a bootleg configuration?
700698   ROM_LOAD( "n07_c12.bin",  0x00000, 0x10000, CRC(10af8eb2) SHA1(664b178b248babc43a9af0fe140fe57bc7367762) )
701699   ROM_LOAD( "k07_c10.bin",  0x10000, 0x10000, CRC(9576f304) SHA1(0ec2a7d3d82208e2a9a4ef9ab2824e6fe26ebbe5) )
702700   ROM_LOAD( "o07_c13.bin",  0x20000, 0x10000, CRC(b1d9d4dc) SHA1(1aacf6b0ff8d102880d3dce3b55cd1488edb90cf) )
r241781r241782
717715   ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected */
718716   ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) )
719717   ROM_LOAD( "vg_b-4m.ic38", 0x0200, 0x0117, CRC(dbca4204) SHA1(d8e190f2dc4d6285f22be331d01ed402520d2017) )
720   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
718   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
721719ROM_END
722720
723ROM_START( vigilantu2 )
721ROM_START( vigilantu2 ) /* Need to determine the correct original roms & IC locations for this set */
724722   ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */
725723   ROM_LOAD( "vg-a-8h-g.bin",  0x00000, 0x08000, CRC(9444c04e) SHA1(463d2dae48df2d237bd19d5e16cab032df0d9052) ) /* labeled Rev. G */
726724   ROM_LOAD( "a-8l",  0x10000, 0x10000, CRC(7f95799b) SHA1(a371671c3c26976314aaac4e410bff0f13a8a085) )
r241781r241782
733731   ROM_LOAD( "f05_c08.bin",  0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) )
734732   ROM_LOAD( "h05_c09.bin",  0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) )
735733
736   ROM_REGION( 0x80000, "gfx2", 0 )
734   ROM_REGION( 0x80000, "gfx2", 0 ) // 8 roms is a bootleg configuration?
737735   ROM_LOAD( "n07_c12.bin",  0x00000, 0x10000, CRC(10af8eb2) SHA1(664b178b248babc43a9af0fe140fe57bc7367762) )
738736   ROM_LOAD( "k07_c10.bin",  0x10000, 0x10000, CRC(9576f304) SHA1(0ec2a7d3d82208e2a9a4ef9ab2824e6fe26ebbe5) )
739737   ROM_LOAD( "o07_c13.bin",  0x20000, 0x10000, CRC(b1d9d4dc) SHA1(1aacf6b0ff8d102880d3dce3b55cd1488edb90cf) )
r241781r241782
754752   ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected - sourced from this board */
755753   ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) )
756754   ROM_LOAD( "vg_b-4m.ic38", 0x0200, 0x0117, CRC(dbca4204) SHA1(d8e190f2dc4d6285f22be331d01ed402520d2017) )
757   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
755   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
758756ROM_END
759757
760758ROM_START( vigilantj )
761759   ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */
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) )
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) )
764762   /* 0x20000-0x2ffff empty */
765763
766764   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 */
767802   ROM_LOAD( "g05_c02.bin",  0x00000, 0x10000, CRC(10582b2d) SHA1(6e7e5f07c49b347b427572efeb180c89f49bf2c7) )
768803
769804   ROM_REGION( 0x20000, "gfx1", 0 )
770805   ROM_LOAD( "f05_c08.bin",  0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) )
771806   ROM_LOAD( "h05_c09.bin",  0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) )
772807
773   ROM_REGION( 0x80000, "gfx2", 0 )
808   ROM_REGION( 0x80000, "gfx2", 0 ) // 8 roms is a bootleg configuration?
774809   ROM_LOAD( "n07_c12.bin",  0x00000, 0x10000, CRC(10af8eb2) SHA1(664b178b248babc43a9af0fe140fe57bc7367762) )
775810   ROM_LOAD( "k07_c10.bin",  0x10000, 0x10000, CRC(9576f304) SHA1(0ec2a7d3d82208e2a9a4ef9ab2824e6fe26ebbe5) )
776811   ROM_LOAD( "o07_c13.bin",  0x20000, 0x10000, CRC(b1d9d4dc) SHA1(1aacf6b0ff8d102880d3dce3b55cd1488edb90cf) )
r241781r241782
788823   ROM_REGION( 0x10000, "samples", 0 ) /* samples */
789824   ROM_LOAD( "d04_c01.bin",  0x00000, 0x10000, CRC(9b85101d) SHA1(6b8a0f33b9b66bb968f7b61e49d19a6afad8db95) )
790825
791   ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 */
826   ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected */
792827   ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) )
793828   ROM_LOAD( "vg_b-4m.ic38", 0x0200, 0x0117, CRC(dbca4204) SHA1(d8e190f2dc4d6285f22be331d01ed402520d2017) )
794   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
829   ROM_LOAD( "vg_b-1b.ic1", 0x0400, 0x0117, CRC(922e5167) SHA1(08efdfdfeb35f3f73b6fd3d5c0c2a386dea5f617) )
795830ROM_END
796831
832
797833ROM_START( kikcubic )
798834   ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */
799835   ROM_LOAD( "mqj-p0",       0x00000, 0x08000, CRC(9cef394a) SHA1(be9cc78420b4c35f8f9523b529bd56315749762c) )
r241781r241782
853889   ROM_LOAD( "7s",           0x0120, 0x0020, CRC(face0cbb) SHA1(c56aea3b7aaabbd4ff1b4546fcad94f51b473cde) )    /* unknown (bad read?) */
854890ROM_END
855891
892
856893ROM_START( buccanrs )
857894   ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */
858895   ROM_LOAD( "11.u58",  0x00000, 0x10000, CRC(bf1d7e6f) SHA1(55dcf993515b57c3eb1fab98097a2171df3e38ed) ) // both halves are identical (correct for rom type on this board tho)
r241781r241782
926963   ROM_LOAD( "prom2.u99",  0x0300, 0x0100, CRC(e0aa8869) SHA1(ac8bdfeba69420ba56ec561bf3d0f1229d02cea2) )
927964ROM_END
928965
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 )
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 )
trunk/src/mame/drivers/vindictr.c
r241781r241782
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
187189   MCFG_MACHINE_RESET_OVERRIDE(vindictr_state,vindictr)
188190
189191   MCFG_ATARI_EEPROM_2804_ADD("eeprom")
trunk/src/mame/drivers/viper.c
r241781r241782
283283
284284#include "emu.h"
285285#include "cpu/powerpc/ppc.h"
286#include "machine/pci.h"
286#include "machine/lpci.h"
287287#include "machine/ataintf.h"
288288#include "machine/idehd.h"
289289#include "machine/timekpr.h"
trunk/src/mame/drivers/voyager.c
r241781r241782
1414
1515#include "emu.h"
1616#include "cpu/i386/i386.h"
17#include "machine/pci.h"
17#include "machine/lpci.h"
1818#include "machine/pcshare.h"
1919#include "machine/pckeybrd.h"
2020#include "machine/idectrl.h"
trunk/src/mame/drivers/xtom3d.c
r241781r241782
4040
4141#include "emu.h"
4242#include "cpu/i386/i386.h"
43#include "machine/pci.h"
43#include "machine/lpci.h"
4444#include "machine/pcshare.h"
4545#include "machine/pckeybrd.h"
4646#include "machine/idectrl.h"
trunk/src/mame/drivers/xybots.c
r241781r241782
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
187189   MCFG_MACHINE_RESET_OVERRIDE(xybots_state,xybots)
188190
189191   MCFG_ATARI_EEPROM_2804_ADD("eeprom")
trunk/src/mame/drivers/yunsun16.c
r241781r241782
578578static MACHINE_CONFIG_START( magicbub, yunsun16_state )
579579
580580   /* basic machine hardware */
581   MCFG_CPU_ADD("maincpu", M68000, 16000000)
581   MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz)
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, 3000000)  /* ? */
585   MCFG_CPU_ADD("audiocpu", Z80, XTAL_16MHz/4)
586586   MCFG_CPU_PROGRAM_MAP(sound_map)
587587   MCFG_CPU_IO_MAP(sound_port_map)
588588
r241781r241782
601601   /* sound hardware */
602602   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
603603
604   MCFG_SOUND_ADD("ymsnd", YM3812, 4000000)
604   MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_16MHz/4)
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", 1056000, OKIM6295_PIN7_HIGH)
609   MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH)
610610   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80)
611611   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80)
612612MACHINE_CONFIG_END
r241781r241782
619619static MACHINE_CONFIG_START( shocking, yunsun16_state )
620620
621621   /* basic machine hardware */
622   MCFG_CPU_ADD("maincpu", M68000, 16000000)
622   MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz)
623623   MCFG_CPU_PROGRAM_MAP(main_map)
624624   MCFG_CPU_VBLANK_INT_DRIVER("screen", yunsun16_state,  irq2_line_hold)
625625
r241781r241782
637637   /* sound hardware */
638638   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
639639
640   MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH)
640   MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH)
641641   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
642642   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
643643MACHINE_CONFIG_END
r241781r241782
715715   ROM_LOAD16_BYTE( "magbuble.u32", 0x000001, 0x040000, CRC(f6ea7004) SHA1(069541e37b60370810451616ee66bbd05dc10137) )
716716
717717   ROM_REGION( 0x10000, "audiocpu", 0 )        /* Z80 Code */
718   ROM_LOAD( "magbuble.143", 0x00000, 0x10000, CRC(04192753) SHA1(9c56ba70e1d074906ea1dc593c2a8516c6ba2074) )
718   ROM_LOAD( "u143.bin", 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))
r241781r241782
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( "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) )
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) )
731731
732732   ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
733   ROM_LOAD( "magbuble.131", 0x000000, 0x020000, CRC(03e04e89) SHA1(7d80e6a7be2322e32e40acae72bedd8d7e90ad33) )
733   ROM_LOAD( "u131.bin", 0x000000, 0x020000, CRC(03e04e89) SHA1(7d80e6a7be2322e32e40acae72bedd8d7e90ad33) )
734734
735735ROM_END
736736
r241781r241782
741741   ROM_LOAD16_BYTE( "u32.bin", 0x000001, 0x040000, CRC(58f885ad) SHA1(e66f5bb1ac0acd9abc2def439af7f932c3a09cbd) )
742742
743743   ROM_REGION( 0x10000, "audiocpu", 0 )        /* Z80 Code */
744   ROM_LOAD( "magbuble.143", 0x00000, 0x10000, CRC(04192753) SHA1(9c56ba70e1d074906ea1dc593c2a8516c6ba2074) )
744   ROM_LOAD( "u143.bin", 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))
r241781r241782
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( "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) )
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) )
761761
762762   ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
763   ROM_LOAD( "magbuble.131", 0x000000, 0x020000, CRC(03e04e89) SHA1(7d80e6a7be2322e32e40acae72bedd8d7e90ad33) )
763   ROM_LOAD( "u131.bin", 0x000000, 0x020000, CRC(03e04e89) SHA1(7d80e6a7be2322e32e40acae72bedd8d7e90ad33) )
764764
765765ROM_END
766766
767ROM_START( magicbubb ) /* Found on a YS-0211 PCB like below */
767768
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
768798/***************************************************************************
769799
770800YunSung YS-0211 based games:
r241781r241782
772802Paparazzi (c) 1996 (no PCB label but looks identical)
773803Shocking  (c) 1997
774804Bomb Kick (c) 1998
805Magic Bubble (c) 199?
775806
776807PCB Layout
777808----------
r241781r241782
956987
957988***************************************************************************/
958989
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 )
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 )
trunk/src/mame/includes/atarigx2.h
r241781r241782
88
99#include "machine/atarigen.h"
1010#include "audio/atarijsa.h"
11#include "includes/slapstic.h"
1112
13
1214class atarigx2_state : public atarigen_state
1315{
1416public:
r241781r241782
1921         m_protection_base(*this, "protection_base"),
2022         m_playfield_tilemap(*this, "playfield"),
2123         m_alpha_tilemap(*this, "alpha"),
22         m_rle(*this, "rle") { }
24         m_rle(*this, "rle")
25         { }
2326
2427   UINT16          m_playfield_base;
2528
trunk/src/mame/includes/atarisy2.h
r241781r241782
1010#include "video/atarimo.h"
1111#include "cpu/m6502/m6502.h"
1212#include "cpu/t11/t11.h"
13#include "slapstic.h"
1314
1415class atarisy2_state : public atarigen_state
1516{
r241781r241782
2526         m_alpha_tilemap(*this, "alpha"),
2627         m_rombank1(*this, "rombank1"),
2728         m_rombank2(*this, "rombank2"),
28         m_generic_paletteram_16(*this, "paletteram") { }
29         m_generic_paletteram_16(*this, "paletteram"),
30         m_slapstic(*this, "slapstic")
31         { }
2932
3033   required_device<t11_device> m_maincpu;
3134   required_device<m6502_device> m_audiocpu;
r241781r241782
5053   required_shared_ptr<UINT16> m_rombank1;
5154   required_shared_ptr<UINT16> m_rombank2;
5255   required_shared_ptr<UINT16> m_generic_paletteram_16;
56   required_device<atari_slapstic_device> m_slapstic;
5357
5458   UINT8           m_sound_reset_state;
5559
trunk/src/mame/includes/atetris.h
r241781r241782
44
55*************************************************************************/
66
7#include "includes/slapstic.h"
8
79class atetris_state : public driver_device
810{
911public:
r241781r241782
1315      m_videoram(*this, "videoram"),
1416      m_maincpu(*this, "maincpu"),
1517      m_gfxdecode(*this, "gfxdecode"),
16      m_screen(*this, "screen") { }
18      m_screen(*this, "screen"),
19      m_slapstic_device(*this, "slapstic")
20      { }
1721
1822   required_shared_ptr<UINT8>  m_nvram;
1923   required_shared_ptr<UINT8> m_videoram;
r241781r241782
4044   required_device<cpu_device> m_maincpu;
4145   required_device<gfxdecode_device> m_gfxdecode;
4246   required_device<screen_device> m_screen;
47   optional_device<atari_slapstic_device> m_slapstic_device;
4348};
trunk/src/mame/includes/harddriv.h
r241781r241782
1313#include "cpu/dsp32/dsp32.h"
1414#include "audio/atarijsa.h"
1515#include "sound/dac.h"
16#include "machine/atarigen.h"
1716#include "machine/mc68681.h"
1817#include "machine/asic65.h"
1918#include "machine/timekpr.h"
r241781r241782
2120#define HARDDRIV_MASTER_CLOCK   XTAL_32MHz
2221#define HARDDRIV_GSP_CLOCK      XTAL_48MHz
2322
24class harddriv_state : public atarigen_state
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 */
2542{
2643public:
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") {}
44   harddriv_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
6345
46
6447   required_device<cpu_device> m_maincpu;
6548   required_device<tms34010_device> m_gsp;
6649   optional_device<tms34010_device> m_msp;
r241781r241782
268251   void init_driver_sound();
269252   void racedrivc_init_common(offs_t gsp_protection);
270253   void steeltal_init_common(offs_t ds3_transfer_pc, int proto_sloop);
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);
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();
287278   INTERRUPT_GEN_MEMBER(hd68k_irq_gen);
288279   TIMER_CALLBACK_MEMBER(deferred_adsp_bank_switch);
289280   TIMER_CALLBACK_MEMBER(rddsp32_sync_cb);
r241781r241782
310301   DECLARE_READ16_MEMBER( hd68k_msp_io_r );
311302   DECLARE_WRITE16_MEMBER( hd68k_msp_io_w );
312303
304   DECLARE_READ16_MEMBER( hd68k_a80000_r );
313305   DECLARE_READ16_MEMBER( hd68k_port0_r );
314306   DECLARE_READ16_MEMBER( hd68k_adc8_r );
315307   DECLARE_READ16_MEMBER( hd68k_adc12_r );
r241781r241782
469461
470462   TMS340X0_SCANLINE_IND16_CB_MEMBER(scanline_driver);
471463   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();
472478};
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
r241781r241782
411411   DECLARE_DRIVER_INIT(dw2v100x);
412412   DECLARE_DRIVER_INIT(drgw2c);
413413   DECLARE_DRIVER_INIT(drgw2j);
414   DECLARE_DRIVER_INIT(drgw2hk);
414415
415416   DECLARE_MACHINE_RESET(drgw2);
416417
trunk/src/mame/includes/segas18.h
r241781r241782
5555   DECLARE_DRIVER_INIT(generic_5874);
5656   DECLARE_DRIVER_INIT(wwally);
5757   DECLARE_DRIVER_INIT(generic_5987);
58   DECLARE_DRIVER_INIT(hamaway);
5859
5960   // memory mapping
6061   void memory_mapper(sega_315_5195_mapper_device &mapper, UINT8 index);
r241781r241782
6364
6465   // read/write handlers
6566   DECLARE_WRITE16_MEMBER( rom_5987_bank_w );
67   DECLARE_WRITE16_MEMBER( rom_837_7525_bank_w );
6668   DECLARE_READ16_MEMBER( io_chip_r );
6769   DECLARE_WRITE16_MEMBER( io_chip_w );
6870   DECLARE_READ16_MEMBER( misc_io_r );
r241781r241782
9092
9193   DECLARE_WRITE16_MEMBER( sega_tileram_0_w ) { m_segaic16vid->segaic16_tileram_0_w(space,offset,data,mem_mask); };
9294   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);
9397
9498protected:
9599   // timer IDs
r241781r241782
104108      ROM_BOARD_INVALID,
105109      ROM_BOARD_171_SHADOW,   // 171-???? -- used by shadow dancer
106110      ROM_BOARD_171_5874,     // 171-5874
107      ROM_BOARD_171_5987      // 171-5987
111      ROM_BOARD_171_5987,     // 171-5987
112      ROM_BOARD_837_7525      // Hammer Away proto
113
108114   };
109115
110116   // device overrides
trunk/src/mame/includes/slapstic.h
r241781r241782
99
1010*************************************************************************/
1111
12/*----------- defined in machine/slapstic.c -----------*/
12#pragma once
1313
14void slapstic_init(running_machine &machine, int chip);
15void slapstic_reset(void);
14#ifndef __SLAPSTIC__
15#define __SLAPSTIC__
1616
17int slapstic_bank(void);
18int slapstic_tweak(address_space &space, offs_t offset);
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
trunk/src/mame/includes/starwars.h
r241781r241782
55***************************************************************************/
66
77#include "machine/6532riot.h"
8#include "includes/slapstic.h"
89
910
1011class starwars_state : public driver_device
r241781r241782
1516      m_riot(*this, "riot"),
1617      m_mathram(*this, "mathram"),
1718      m_maincpu(*this, "maincpu"),
18      m_audiocpu(*this, "audiocpu")  { }
19      m_audiocpu(*this, "audiocpu"),
20      m_slapstic_device(*this, "slapstic")
21      { }
1922
2023   UINT8 m_sound_data;
2124   UINT8 m_main_data;
r241781r241782
7881   void esb_slapstic_tweak(address_space &space, offs_t offset);
7982   required_device<cpu_device> m_maincpu;
8083   required_device<cpu_device> m_audiocpu;
84   optional_device<atari_slapstic_device> m_slapstic_device;
8185};
trunk/src/mame/includes/stv.h
r241781r241782
99#include "bus/generic/slot.h"
1010#include "bus/generic/carts.h"
1111
12#include "machine/315-5881_crypt.h"
13
1214#define MAX_FILTERS (24)
1315#define MAX_BLOCKS  (200)
1416#define MAX_DIR_SIZE    (256*1024)
r241781r241782
167169   required_device<gfxdecode_device> m_gfxdecode;
168170   required_device<palette_device> m_palette;
169171
172
173
170174   bitmap_rgb32 m_tmpbitmap;
171175   DECLARE_VIDEO_START(stv_vdp2);
172176   UINT32 screen_update_saturn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
r241781r241782
694698   stv_state(const machine_config &mconfig, device_type type, const char *tag)
695699      : saturn_state(mconfig, type, tag),
696700      m_adsp(*this, "adsp"),
697      m_adsp_pram(*this, "adsp_pram")
701      m_adsp_pram(*this, "adsp_pram"),
702      m_cryptdevice(*this, "315_5881")
698703   {
699704   }
700705
r241781r241782
829834   DECLARE_WRITE32_MEMBER( decathlt_prot2_w );
830835   void write_prot_data(UINT32 data, UINT32 mem_mask, int offset, int which);
831836   void install_decathlt_protection();
837
838   optional_device<sega_315_5881_crypt_device> m_cryptdevice;
839   UINT16 crypt_read_callback(UINT32 addr);
832840};
833841
834842
trunk/src/mame/includes/tumbleb.h
r241781r241782
4040   tilemap_t   *m_pf2_tilemap;
4141   tilemap_t   *m_pf2_alt_tilemap;
4242   UINT16      m_control_0[8];
43   int         m_flipscreen;
4443   UINT16      m_tilebank;
4544
4645   /* devices */
trunk/src/mame/includes/tx1.h
r241781r241782
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,
197                        const UINT8 *rom, const UINT8 *prom0, const UINT8 *prom1, const UINT8 *prom2);
196                        UINT8 *rc0, UINT8 *rc1, UINT8 *rc2, UINT8 *rc3);
198197   void buggyboy_draw_road(UINT8 *bitmap);
199198   void buggybjr_draw_road(UINT8 *bitmap);
200199   void buggyboy_draw_objs(UINT8 *bitmap, bool wide);
trunk/src/mame/layout/racedrivpan.lay
r0r241782
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
r0r241782
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
r0r241782
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
r241781r241782
150150
151151void asic65_device::reset_line(int state)
152152{
153   address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM);
153   address_space &space = subdevice("^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
r241781r241782
1616#include "sound/okim6295.h"
1717#include "sound/pokey.h"
1818#include "video/atarimo.h"
19#include "includes/slapstic.h"
2019#include "atarigen.h"
2120
2221
r241781r241782
975974      m_gfxdecode(*this, "gfxdecode"),
976975      m_screen(*this, "screen"),
977976      m_palette(*this, "palette"),
978      m_generic_paletteram_16(*this, "paletteram")
977      m_generic_paletteram_16(*this, "paletteram"),
978      m_slapstic_device(*this, ":slapstic")
979979{
980980}
981981
r241781r241782
10221022   // reset the slapstic
10231023   if (m_slapstic_num != 0)
10241024   {
1025      slapstic_reset();
1026      slapstic_update_bank(slapstic_bank());
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());
10271030   }
10281031}
10291032
r241781r241782
11921195
11931196void atarigen_state::device_post_load()
11941197{
1195   slapstic_update_bank(slapstic_bank());
1198   if (!m_slapstic_device)
1199      fatalerror("Slapstic device is missing?\n");
1200
1201   slapstic_update_bank(m_slapstic_device->slapstic_bank());
11961202}
11971203
11981204
r241781r241782
12321238   // if we have a chip, install it
12331239   if (chipnum != 0)
12341240   {
1241      if (!m_slapstic_device)
1242         fatalerror("Slapstic device is missing\n");
1243
12351244      // initialize the slapstic
1236      slapstic_init(machine(), chipnum);
1245      m_slapstic_device->slapstic_init(machine(), chipnum);
12371246
12381247      // install the memory handlers
12391248      address_space &program = device.space(AS_PROGRAM);
r241781r241782
12621271
12631272WRITE16_MEMBER(atarigen_state::slapstic_w)
12641273{
1265   slapstic_update_bank(slapstic_tweak(space, offset));
1274   if (!m_slapstic_device)
1275      fatalerror("Slapstic device is missing?\n");
1276
1277   slapstic_update_bank(m_slapstic_device->slapstic_tweak(space, offset));
12661278}
12671279
12681280
r241781r241782
12731285
12741286READ16_MEMBER(atarigen_state::slapstic_r)
12751287{
1288   if (!m_slapstic_device)
1289      fatalerror("Slapstic device is missing?\n");
1290
12761291   // fetch the result from the current bank first
12771292   int result = m_slapstic[offset & 0xfff];
12781293
12791294   // then determine the new one
1280   slapstic_update_bank(slapstic_tweak(space, offset));
1295   slapstic_update_bank(m_slapstic_device->slapstic_tweak(space, offset));
12811296   return result;
12821297}
12831298
trunk/src/mame/machine/atarigen.h
r241781r241782
1717#include "video/atarimo.h"
1818#include "cpu/m6502/m6502.h"
1919#include "sound/okim6295.h"
20#include "includes/slapstic.h"
2021
2122
2223/***************************************************************************
r241781r241782
431432   optional_device<screen_device> m_screen;
432433   optional_device<palette_device> m_palette;
433434   optional_shared_ptr<UINT16> m_generic_paletteram_16;
435   optional_device<atari_slapstic_device> m_slapstic_device;
434436};
435437
436438
trunk/src/mame/machine/harddriv.c
r241781r241782
3636 *
3737 *************************************/
3838
39MACHINE_START_MEMBER(harddriv_state,harddriv)
39void harddriv_state::device_start()
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
4750}
4851
4952
50MACHINE_RESET_MEMBER(harddriv_state,harddriv)
53void  harddriv_state::device_reset()
5154{
5255   /* generic reset */
53   atarigen_state::machine_reset();
54   slapstic_reset();
56   //atarigen_state::machine_reset();
57   m_slapstic_device->slapstic_reset();
5558
5659   /* halt several of the DSPs to start */
5760   if (m_adsp != NULL) m_adsp->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
r241781r241782
196199 *
197200 *************************************/
198201
202READ16_MEMBER( harddriv_state::hd68k_a80000_r )
203{
204   return ioport("a80000")->read_safe(0xffff);
205}
206
199207READ16_MEMBER( harddriv_state::hd68k_port0_r )
200208{
201209   /* port is as follows:
r241781r241782
213221           .....
214222       0x8000 = SW1 #1
215223   */
216   int temp = (ioport("SW1")->read() << 8) | ioport("IN0")->read();
217   if (get_hblank(*m_screen)) temp ^= 0x0002;
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;
218228   temp ^= 0x0018;     /* both EOCs always high for now */
219229   return temp;
220230}
r241781r241782
222232
223233READ16_MEMBER( harddriv_state::hdc68k_port1_r )
224234{
225   UINT16 result = ioport("a80000")->read();
235   UINT16 result = ioport("a80000")->read_safe(0xffff);
226236   UINT16 diff = result ^ m_hdc68k_last_port1;
227237
228238   /* if a new shifter position is selected, use it */
r241781r241782
250260
251261READ16_MEMBER( harddriv_state::hda68k_port1_r )
252262{
253   UINT16 result = ioport("a80000")->read();
263   UINT16 result = ioport("a80000")->read_safe(0xffff);
254264
255265   /* merge in the wheel edge latch bit */
256266   if (m_hdc68k_wheel_edge)
r241781r241782
263273READ16_MEMBER( harddriv_state::hdc68k_wheel_r )
264274{
265275   /* grab the new wheel value and upconvert to 12 bits */
266   UINT16 new_wheel = ioport("12BADC0")->read() << 4;
276   UINT16 new_wheel = ioport("12BADC0")->read_safe(0xffff) << 4;
267277
268278   /* hack to display the wheel position */
269279   if (space.machine().input().code_pressed(KEYCODE_LSHIFT))
r241781r241782
317327   if (m_adc_control & 0x08)
318328   {
319329      m_adc8_select = m_adc_control & 0x07;
320      m_adc8_data = ioport(adc8names[m_adc8_select])->read();
330      m_adc8_data = ioport(adc8names[m_adc8_select])->read_safe(0xffff);
321331   }
322332
323333   /* handle a write to the 12-bit ADC address select */
324334   if (m_adc_control & 0x40)
325335   {
326336      m_adc12_select = (m_adc_control >> 4) & 0x03;
327      m_adc12_data = space.machine().root_device().ioport(adc12names[m_adc12_select])->read() << 4;
337      m_adc12_data = ioport(adc12names[m_adc12_select])->read_safe(0xffff) << 4;
328338   }
329339
330340   /* bit 7 selects which byte of the 12 bit data to read */
r241781r241782
485495      }
486496   }
487497
498   screen_device &scr = m_gsp->screen();
499
488500   /* detect changes to HEBLNK and HSBLNK and force an update before they change */
489501   if ((offset == REG_HEBLNK || offset == REG_HSBLNK) && data != m_gsp->io_register_r(space, offset, 0xffff))
490      m_screen->update_partial(m_screen->vpos() - 1);
502      scr.update_partial(scr.vpos() - 1);
491503
492504   m_gsp->io_register_w(space, offset, data, mem_mask);
493505}
r241781r241782
15021514   switch (offset & 7)
15031515   {
15041516      case 0: /* DSPRESTN */
1505         m_dsp32->set_input_line(INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE);
1517         if (m_dsp32) m_dsp32->set_input_line(INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE);
15061518         break;
15071519
15081520      case 1: /* DSPZN */
1509         m_dsp32->set_input_line(INPUT_LINE_HALT, val ? CLEAR_LINE : ASSERT_LINE);
1521         if (m_dsp32) m_dsp32->set_input_line(INPUT_LINE_HALT, val ? CLEAR_LINE : ASSERT_LINE);
15101522         break;
15111523
15121524      case 2: /* ZW1 */
r241781r241782
15701582WRITE16_MEMBER( harddriv_state::hd68k_dsk_dsp32_w )
15711583{
15721584   m_dsk_pio_access = TRUE;
1573   m_dsp32->pio_w(offset, data);
1585   if (m_dsp32) m_dsp32->pio_w(offset, data);
15741586   m_dsk_pio_access = FALSE;
15751587}
15761588
r241781r241782
15791591{
15801592   UINT16 result;
15811593   m_dsk_pio_access = TRUE;
1582   result = m_dsp32->pio_r(offset);
1594   if (m_dsp32) result = m_dsp32->pio_r(offset);
1595   else result = 0x00;
1596
15831597   m_dsk_pio_access = FALSE;
15841598   return result;
15851599}
r241781r241782
16711685
16721686WRITE16_MEMBER( harddriv_state::rd68k_slapstic_w )
16731687{
1674   slapstic_tweak(space, offset & 0x3fff);
1688   m_slapstic_device->slapstic_tweak(space, offset & 0x3fff);
16751689}
16761690
16771691
16781692READ16_MEMBER( harddriv_state::rd68k_slapstic_r )
16791693{
1680   int bank = slapstic_tweak(space, offset & 0x3fff) * 0x4000;
1694   int bank = m_slapstic_device->slapstic_tweak(space, offset & 0x3fff) * 0x4000;
16811695   return m_m68k_slapstic_base[bank + (offset & 0x3fff)];
16821696}
16831697
trunk/src/mame/machine/n64.c
r241781r241782
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   }
274270}
275271
276272// Memory Interface (MI)
r241781r241782
312308         break;
313309   }
314310
315   //printf("mi_reg_r %08x = %08x\n", offset * 4, ret); fflush(stdout);
316311   return ret;
317312}
318313
319314WRITE32_MEMBER( n64_periphs::mi_reg_w )
320315{
321   //printf("mi_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask); fflush(stdout);
322316   switch (offset)
323317   {
324318      case 0x00/4:        // MI_INIT_MODE_REG
r241781r241782
409403{
410404   if (mi_intr_mask & mi_interrupt)
411405   {
412      //printf("Asserting IRQ, %02x : %02x\n", mi_intr_mask, mi_interrupt); fflush(stdout);
413406      machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
414407   }
415408   else
416409   {
417      //printf("Deasserting IRQ, %02x : %02x\n", mi_intr_mask, mi_interrupt); fflush(stdout);
418410      machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
419411   }
420412}
r241781r241782
466458      case 0x0014/4:
467459         for(i = 0x20; i < (0x20 + data); i++)
468460         {
469            //printf( "%c", is64_buffer[i] );
470461            if(is64_buffer[i] == 0x0a)
471462            {
472               //printf( "%c", 0x0d );
463               printf( "%c", 0x0d );
473464            }
474465            is64_buffer[i] = 0;
475466         }
r241781r241782
511502
512503READ32_MEMBER( n64_periphs::rdram_reg_r )
513504{
514   //printf("rdram_reg_r %08x = %08x\n", offset * 4, rdram_regs[offset]); fflush(stdout);
515505   if(offset > 0x24/4)
516506   {
517507      logerror("rdram_reg_r: %08X, %08X at %08X\n", offset, mem_mask, maincpu->safe_pc());
r241781r241782
522512
523513WRITE32_MEMBER( n64_periphs::rdram_reg_w )
524514{
525   //printf("rdram_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask); fflush(stdout);
526515   if(offset > 0x24/4)
527516   {
528517      logerror("rdram_reg_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, maincpu->safe_pc());
r241781r241782
542531      length = (length + 7) & ~7;
543532   }
544533
545   //printf("Length %08x Skip %08x Count %08x\n", length, sp_dma_skip, sp_dma_count); fflush(stdout);
546534   if (sp_mem_addr & 0x3)
547535   {
548536      sp_mem_addr = sp_mem_addr & ~3;
r241781r241782
554542
555543   if ((sp_mem_addr & 0xfff) + (length) > 0x1000)
556544   {
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);
559545      length = 0x1000 - (sp_mem_addr & 0xfff);
560546   }
561547
r241781r241782
602588
603589WRITE32_MEMBER(n64_periphs::sp_set_status)
604590{
605   //printf("sp_set_status: %08x\n", data);
606591   if (data & 0x1)
607592   {
608593      rspcpu->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
r241781r241782
638623         break;
639624
640625      case 0x10/4:        // SP_STATUS_REG
641         //machine().scheduler().synchronize();
642         //machine().scheduler().boost_interleave(attotime::from_msec(1), attotime::from_msec(m));
643626         ret = rspcpu->state().state_int(RSP_SR);
644627         break;
645628
r241781r241782
652635         break;
653636
654637      case 0x1c/4:        // SP_SEMAPHORE_REG
655         //machine().scheduler().boost_interleave(attotime::from_usec(1), attotime::from_usec(1));
656638         machine().device("maincpu")->execute().yield();
657639         if( sp_semaphore )
658640         {
r241781r241782
660642         }
661643         else
662644         {
663            //printf("Semaphore is now acquired, returning 0\n");
664645            sp_semaphore = 1;
665646            ret = 0;
666647         }
r241781r241782
718699         break;
719700   }
720701
721   //printf("%08x sp_reg_r %08x = %08x\n", (UINT32)maincpu->state().state_int(MIPS3_PC), offset * 4, ret); fflush(stdout);
722702   return ret;
723703}
724704
725705
726706WRITE32_MEMBER(n64_periphs::sp_reg_w )
727707{
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
730708   if ((offset & 0x10000) == 0)
731709   {
732710      switch (offset & 0xffff)
r241781r241782
758736            UINT32 oldstatus = rspcpu->state().state_int(RSP_SR);
759737            UINT32 newstatus = oldstatus;
760738
761            // printf( "RSP_STATUS_REG Write; %08x\n", data );
762739            if (data & 0x00000001)      // clear halt
763740            {
764741               rspcpu->execute().set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
765742               newstatus &= ~RSP_STATUS_HALT;
766               //printf("***SP HALT CLR***\n"); fflush(stdout);
743               machine().scheduler().abort_timeslice();
744               machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
767745            }
768746            if (data & 0x00000002)      // set halt
769747            {
770748               rspcpu->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
771749               newstatus |= RSP_STATUS_HALT;
772               //printf("***SP HALT SET***\n"); fflush(stdout);
773750            }
774751            if (data & 0x00000004)
775752            {
776753               newstatus &= ~RSP_STATUS_BROKE;
777               //printf("***SP BROKE CLR***\n"); fflush(stdout);
778754            }
779755            if (data & 0x00000008)      // clear interrupt
780756            {
781               //printf("***SP INT CLR***\n"); fflush(stdout);
782757               clear_rcp_interrupt(SP_INTERRUPT);
783758            }
784759            if (data & 0x00000010)      // set interrupt
785760            {
786               //printf("***SP INT SET***\n"); fflush(stdout);
787761               signal_rcp_interrupt(SP_INTERRUPT);
788762            }
789763            if (data & 0x00000020)
790764            {
791765               newstatus &= ~RSP_STATUS_SSTEP;
792               //printf("***SP SSTEP CLR***\n"); fflush(stdout);
793766            }
794767            if (data & 0x00000040)
795768            {
796769               newstatus |= RSP_STATUS_SSTEP;  // set single step
797               //printf("***SP SSTEP SET***\n"); fflush(stdout);
798770               if(!(oldstatus & (RSP_STATUS_BROKE | RSP_STATUS_HALT)))
799771               {
800772                  rspcpu->state().set_state_int(RSP_STEPCNT, 1 );
r241781r241782
804776            if (data & 0x00000080)
805777            {
806778               newstatus &= ~RSP_STATUS_INTR_BREAK;    // clear interrupt on break
807               //printf("***SP INTRBRK CLR***\n"); fflush(stdout);
808779            }
809780            if (data & 0x00000100)
810781            {
811782               newstatus |= RSP_STATUS_INTR_BREAK;     // set interrupt on break
812               //printf("***SP INTRBRK SET***\n"); fflush(stdout);
813783            }
814784            if (data & 0x00000200)
815785            {
816786               newstatus &= ~RSP_STATUS_SIGNAL0;       // clear signal 0
817               //printf("***SP YIELD CLR***\n"); fflush(stdout);
818787            }
819788            if (data & 0x00000400)
820789            {
821790               newstatus |= RSP_STATUS_SIGNAL0;        // set signal 0
822               //printf("***SP YIELD SET***\n"); fflush(stdout);
823791            }
824792            if (data & 0x00000800)
825793            {
826794               newstatus &= ~RSP_STATUS_SIGNAL1;       // clear signal 1
827               //printf("***SP YIELDED CLR***\n"); fflush(stdout);
828795            }
829796            if (data & 0x00001000)
830797            {
831798               newstatus |= RSP_STATUS_SIGNAL1;        // set signal 1
832               //printf("***SP YIELDED SET***\n"); fflush(stdout);
833799            }
834800            if (data & 0x00002000)
835801            {
836802               newstatus &= ~RSP_STATUS_SIGNAL2 ;      // clear signal 2
837               //printf("***SP TASKDONE CLR***\n"); fflush(stdout);
838803            }
839804            if (data & 0x00004000)
840805            {
841806               newstatus |= RSP_STATUS_SIGNAL2;        // set signal 2
842               //printf("***SP TASKDONE SET***\n"); fflush(stdout);
843807            }
844808            if (data & 0x00008000)
845809            {
846810               newstatus &= ~RSP_STATUS_SIGNAL3;       // clear signal 3
847               //printf("***SP SIG3 CLR***\n"); fflush(stdout);
848811            }
849812            if (data & 0x00010000)
850813            {
851814               newstatus |= RSP_STATUS_SIGNAL3;        // set signal 3
852               //printf("***SP SIG3 SET***\n"); fflush(stdout);
853815            }
854816            if (data & 0x00020000)
855817            {
856818               newstatus &= ~RSP_STATUS_SIGNAL4;       // clear signal 4
857               //printf("***SP SIG4 CLR***\n"); fflush(stdout);
858819            }
859820            if (data & 0x00040000)
860821            {
861822               newstatus |= RSP_STATUS_SIGNAL4;        // set signal 4
862               //printf("***SP SIG4 SET***\n"); fflush(stdout);
863823            }
864824            if (data & 0x00080000)
865825            {
866826               newstatus &= ~RSP_STATUS_SIGNAL5;       // clear signal 5
867               //printf("***SP SIG5 CLR***\n"); fflush(stdout);
868827            }
869828            if (data & 0x00100000)
870829            {
871830               newstatus |= RSP_STATUS_SIGNAL5;        // set signal 5
872               //printf("***SP SIG5 SET***\n"); fflush(stdout);
873831            }
874832            if (data & 0x00200000)
875833            {
876834               newstatus &= ~RSP_STATUS_SIGNAL6;       // clear signal 6
877               //printf("***SP SIG6 CLR***\n"); fflush(stdout);
878835            }
879836            if (data & 0x00400000)
880837            {
881838               newstatus |= RSP_STATUS_SIGNAL6;        // set signal 6
882               //printf("***SP SIG6 SET***\n"); fflush(stdout);
883839            }
884840            if (data & 0x00800000)
885841            {
886842               newstatus &= ~RSP_STATUS_SIGNAL7;       // clear signal 7
887               //printf("***SP SIG7 CLR***\n"); fflush(stdout);
888843            }
889844            if (data & 0x01000000)
890845            {
891846               newstatus |= RSP_STATUS_SIGNAL7;        // set signal 7
892               //printf("***SP SIG7 SET***\n"); fflush(stdout);
893847            }
894848            rspcpu->state().set_state_int(RSP_SR, newstatus);
895849            break;
896850         }
897851
898852         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");
901853            if(data == 0)
902854            {
903855               sp_semaphore = 0;
r241781r241782
976928         break;
977929   }
978930
979   //printf("%08x dp_reg_r %08x = %08x\n", (UINT32)space.machine().device("rsp")->state().state_int(RSP_PC), offset, ret); fflush(stdout);
980931   return ret;
981932}
982933
r241781r241782
984935{
985936   n64_state *state = space.machine().driver_data<n64_state>();
986937
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);
988938   switch (offset)
989939   {
990940      case 0x00/4:        // DP_START_REG
r241781r241782
993943         break;
994944
995945      case 0x04/4:        // DP_END_REG
996         //printf("dp_end_reg %08x\n", data);
997946         state->m_rdp->SetEndReg(data);
998947         g_profiler.start(PROFILER_USER1);
999948         state->m_rdp->ProcessList();
r241781r241782
1042991   int y_end = (vi_vstart & 0x000003ff) / 2;
1043992   int width = ((vi_xscale & 0x00000fff) * (x_end - x_start)) / 0x400;
1044993   int height = ((vi_yscale & 0x00000fff) * (y_end - y_start)) / 0x400;
1045   //printf("%04x | %02x | ", vi_xscale >> 16, vi_burst & 0x000000ff);
994
1046995   rectangle visarea = m_screen->visible_area();
1047996   attoseconds_t period = m_screen->frame_period().attoseconds;
1048997
r241781r241782
10701019
10711020   visarea.max_x = width - 1;
10721021   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);
10741022   m_screen->configure(width, 525, visarea, period);
10751023}
10761024
r241781r241782
11401088         break;
11411089   }
11421090
1143   //printf("vi_reg_r %08x = %08x\n", offset * 4, ret);
11441091   return ret;
11451092}
11461093
11471094WRITE32_MEMBER( n64_periphs::vi_reg_w )
11481095{
1149   //printf("vi_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask);
11501096   n64_state *state = machine().driver_data<n64_state>();
11511097
11521098   switch (offset)
r241781r241782
13791325         break;
13801326   }
13811327
1382   //printf("ai_reg_r %08x = %08x\n", offset * 4, ret);
13831328   return ret;
13841329}
13851330
13861331WRITE32_MEMBER( n64_periphs::ai_reg_w )
13871332{
1388   //printf("ai_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask);
13891333   switch (offset)
13901334   {
13911335      case 0x00/4:        // AI_DRAM_ADDR_REG
r241781r241782
14081352      case 0x10/4:        // AI_DACRATE_REG
14091353         ai_dacrate = data & 0x3fff;
14101354         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) );
14121355         dmadac_enable(&ai_dac[0], 2, 1);
14131356         break;
14141357
r241781r241782
14551398      cart_addr &= ((machine().root_device().memregion("user2")->bytes() >> 1) - 1);
14561399   }
14571400
1458   //printf("%08x Cart, %08x Dram\n", cart_addr << 1, dram_addr << 1); fflush(stdout);
1459
14601401   if(pi_dma_dir == 1)
14611402   {
14621403      UINT32 dma_length = pi_wr_len + 1;
r241781r241782
15581499         break;
15591500   }
15601501
1561   //printf("pi_reg_r %08x = %08x\n", offset * 4, ret);
15621502   return ret;
15631503}
15641504
15651505WRITE32_MEMBER( n64_periphs::pi_reg_w )
15661506{
1567   //printf("pi_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask); fflush(stdout);
15681507   switch (offset)
15691508   {
15701509      case 0x00/4:        // PI_DRAM_ADDR_REG
r241781r241782
15861525         pi_status |= 1;
15871526
15881527         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));
15901528         pi_dma_timer->adjust(dma_period);
15911529         //pi_dma_tick();
15921530         break;
r241781r241782
15991537         pi_status |= 1;
16001538
16011539         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));
16031540         pi_dma_timer->adjust(dma_period);
16041541
16051542         //pi_dma_tick();
r241781r241782
16581595
16591596READ32_MEMBER( n64_periphs::ri_reg_r )
16601597{
1661   //printf("ri_reg_r %08x = %08x\n", offset * 4, ri_regs[offset]);
16621598   if(offset > 0x1c/4)
16631599   {
16641600      logerror("ri_reg_r: %08X, %08X at %08X\n", offset, mem_mask, maincpu->safe_pc());
r241781r241782
16691605
16701606WRITE32_MEMBER( n64_periphs::ri_reg_w )
16711607{
1672   //printf("ri_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask);
16731608   if(offset > 0x1c/4)
16741609   {
16751610      logerror("ri_reg_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, maincpu->safe_pc());
r241781r241782
17321667      case 0x00:      // Read status
17331668      case 0xff:      // Reset
17341669      {
1735         if(command == 0)
1736         {
1737            //printf("Read status\n");
1738         }
1739         else
1740         {
1741            //printf("Reset\n");
1742         }
17431670         switch (channel)
17441671         {
17451672            case 0:
17461673            case 1:
17471674            {
1748               //printf("Read controller %d status\n", channel + 1);
1675               // Read status
17491676               rdata[0] = 0x05;
17501677               rdata[1] = 0x00;
17511678               rdata[2] = 0x01;
r241781r241782
17541681            case 2:
17551682            case 3:
17561683            {
1757               //printf("Read controller %d status (NC)\n", channel + 1);
1758               // not connected
1684               // Read status (unconnected)
17591685               return 1;
17601686            }
17611687            case 4:
17621688            {
1763               //printf("Read EEPROM status\n");
1689               // Read EEPROM status
17641690               rdata[0] = 0x00;
17651691               rdata[1] = 0x80;
17661692               rdata[2] = 0x00;
r241781r241782
17911717
17921718         switch (channel)
17931719         {
1794            case 0: //p1 inputs
1795            case 1: //p2 inputs
1720            case 0: // P1 Inputs
1721            case 1: // P2 Inputs
17961722            {
1797               //printf("Read p%d inputs\n", channel + 1);
17981723               buttons = machine().root_device().ioport(portnames[(channel*3) + 0])->read();
17991724               x = machine().root_device().ioport(portnames[(channel*3) + 1])->read() - 128;
18001725               y = machine().root_device().ioport(portnames[(channel*3) + 2])->read() - 128;
r241781r241782
18081733            case 2:
18091734            case 3:
18101735            {
1811               //printf("Controller %d not connected\n", channel + 1);
1812               // not connected
1736               // P3/P4 Inputs (not connected)
18131737               return 1;
18141738            }
18151739         }
r241781r241782
18241748         address = (sdata[1] << 8) | (sdata[2]);
18251749         address &= ~0x1f;
18261750
1827         ////printf("Read mempak at %04x\n", address);
1828
18291751         if(address == 0x8000)
18301752         {
18311753            for(int i = 0; i < rlength-1; i++)
r241781r241782
18541776         UINT32 address = (sdata[1] << 8) | (sdata[2]);
18551777         address &= ~0x1f;
18561778
1857         ////printf("Write mempak at %04x\n", address);
1858         if (address >= 0x8000)
1779         if (address < 0x8000)
18591780         {
1860         }
1861         else
1862         {
18631781            for(int i = 3; i < slength; i++)
18641782            {
18651783               m_save_data.mempak[channel & 1][address++] = sdata[i];
r241781r241782
18851803
18861804         UINT16 block_offset = sdata[1] * 8;
18871805
1888         //printf("Read EEPROM at %04x\n", block_offset);
1889
18901806         for(int i=0; i < 8; i++)
18911807         {
18921808            rdata[i] = m_save_data.eeprom[block_offset+i];
r241781r241782
19091825
19101826         UINT16 block_offset = sdata[1] * 8;
19111827
1912         //printf("Write EEPROM at %04x\n", block_offset);
1913
19141828         for(int i = 0; i < 8; i++)
19151829         {
19161830            m_save_data.eeprom[block_offset+i] = sdata[2+i];
r241781r241782
19211835
19221836      case 0x06:      // Read RTC Status
19231837      {
1924         //printf("Read RTC Status\n");
19251838         rdata[0] = 0x00;
19261839         rdata[1] = 0x10;
19271840         rdata[2] = 0x00;
r241781r241782
19331846         switch(sdata[1])
19341847         {
19351848            case 0:
1936               //printf("Read RTC Block Header\n");
19371849               rdata[0] = 0x00;
19381850               rdata[1] = 0x02;
19391851               rdata[8] = 0x00;
r241781r241782
19541866               rdata[6] = convert_to_bcd(systime.local_time.year % 100); // Year
19551867               rdata[7] = convert_to_bcd(systime.local_time.year / 100); // Century
19561868               rdata[8] = 0x00;
1957               //printf("Read RTC Time\n");
19581869               return 0;
19591870         }
19601871         return 1;
r241781r241782
19821893      while(cmd_ptr < 0x3f && !end)
19831894      {
19841895         INT8 bytes_to_send = (INT8)pif_cmd[cmd_ptr++];
1985         //printf("bytes to send: 0x%02x\n", bytes_to_send);
19861896
19871897         if (bytes_to_send == -2)
19881898         {
19891899            end = 1;
1990            //printf("end\n");
19911900         }
19921901         else if (bytes_to_send < 0)
19931902         {
1994            //printf("do nothing\n");
19951903            // do nothing
19961904         }
19971905         else
r241781r241782
20021910               UINT8 send_buffer[0x40];
20031911
20041912               INT8 bytes_to_recv = pif_cmd[cmd_ptr++];
2005               //printf("bytes to receive: 0x%02x\n", bytes_to_recv);
20061913
20071914               if (bytes_to_recv == -2)
20081915               {
r241781r241782
20151922               }
20161923
20171924               int res = pif_channel_handle_command(channel, bytes_to_send, send_buffer, bytes_to_recv, recv_buffer);
2018               //printf("result: %d\n", res);
20191925
20201926               if (res == 0)
20211927               {
2022                  //printf("cmd_ptr (%d) + bytes_to_recv (%d) = %d\n", cmd_ptr, bytes_to_recv, cmd_ptr + bytes_to_recv);
20231928                  if (cmd_ptr + bytes_to_recv > 0x3f)
20241929                  {
20251930                     fatalerror("cmd_ptr overflow\n");
r241781r241782
21102015         ret = si_status;
21112016   }
21122017
2113   //printf("si_reg_r %08x = %08x\n", offset * 4, ret); fflush(stdout);
21142018   return ret;
21152019}
21162020
21172021WRITE32_MEMBER( n64_periphs::si_reg_w )
21182022{
2119   //printf("si_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask); fflush(stdout);
21202023   switch (offset)
21212024   {
21222025      case 0x00/4:        // SI_DRAM_ADDR_REG
r241781r241782
23962299      return;
23972300
23982301   device_image_interface *image = dynamic_cast<device_image_interface *>(periphs->m_nvram_image);
2399   //printf("Saving stuff\n");
2302
24002303   UINT8 data[0x30800];
24012304   memcpy(data, n64_sram, 0x20000);
24022305   memcpy(data + 0x20000, periphs->m_save_data.eeprom, 0x800);
trunk/src/mame/machine/naomim2.c
r241781r241782
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__)
108   : naomi_board(mconfig, NAOMI_M2_BOARD, "Sega NAOMI M2 BOARD", tag, owner, clock, "naomi_m2_board", __FILE__),
109   m_cryptdevice(*this, "segam2crypt")
109110{
110111   key_tag = 0;
111112}
r241781r241782
120121{
121122   naomi_board::device_start();
122123
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
129124   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);
133125
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);
138126   save_item(NAME(rom_cur_address));
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));
127   save_pointer(NAME(ram), RAM_SIZE);
147128}
148129
149130void naomi_m2_board::device_reset()
r241781r241782
151132   naomi_board::device_reset();
152133
153134   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);
157135
158136   rom_cur_address = 0;
159   prot_cur_address = 0;
160   subkey = 0;
161   dec_hist = 0;
162   dec_header = 0;
163   enc_ready = false;
164137
165   buffer_pos = 0;
166   line_buffer_pos = 0;
167   line_buffer_size = 0;
168   buffer_bit = 0;
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
169144}
170145
171146void naomi_m2_board::board_setup_address(UINT32 address, bool is_dma)
r241781r241782
175150
176151void naomi_m2_board::board_get_buffer(UINT8 *&base, UINT32 &limit)
177152{
153
178154   if(rom_cur_address & 0x40000000) {
179155      if(rom_cur_address == 0x4001fffe) {
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         }
156         m_cryptdevice->do_decrypt(base);
193157         limit = 2;
194158
195159      } else
r241781r241782
214178
215179void naomi_m2_board::board_write(offs_t offset, UINT16 data)
216180{
181
182
217183   if(offset & 0x40000000) {
218184      if((offset & 0x0f000000) == 0x02000000) {
219185         offset &= RAM_SIZE-1;
r241781r241782
222188         return;
223189      }
224190      switch(offset & 0x1fffffff) {
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;
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;
228195      }
229196   }
230197   throw emu_fatalerror("NAOMIM2: unhandled board write %08x, %04x\n", offset, data);
231198}
232199
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)
200UINT16 naomi_m2_board::read_callback(UINT32 addr)
626201{
627   int k,m;
628   int aux;
629   int result=0;
202   if ((addr & 0xffff0000) == 0x01000000) {
203      int base = 2*(addr & 0x7fff);
204      return ram[base+1] | (ram[base] << 8);
630205
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;
642206   }
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      }
207   else {
208      const UINT8 *base = m_region->base() + 2*addr;
209      return base[1] | (base[0] << 8);
674210   }
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;
759211}
760212
761UINT16 naomi_m2_board::get_decrypted_16()
762{
763   UINT16 enc;
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
764217
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()
218machine_config_constructor naomi_m2_board::device_mconfig_additions() const
782219{
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;
220   return MACHINE_CONFIG_NAME( naomim2 );
793221}
794222
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
r241781r241782
22#define _NAOMIM2_H_
33
44#include "naomibd.h"
5#include "315-5881_crypt.h"
56
67#define MCFG_NAOMI_M2_BOARD_ADD(_tag, _key_tag, _eeprom_tag, _actel_tag, _irq_cb) \
78   MCFG_NAOMI_BOARD_ADD(_tag, NAOMI_M2_BOARD, _eeprom_tag, _actel_tag, _irq_cb) \
r241781r241782
1112{
1213public:
1314   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;
1418
1519   static void static_set_tags(device_t &device, const char *_key_tag);
20   UINT16 read_callback(UINT32 addr);
1621
1722protected:
1823   virtual void device_start();
1924   virtual void device_reset();
25   virtual machine_config_constructor device_mconfig_additions() const;
2026
2127   virtual void board_setup_address(UINT32 address, bool is_dma);
2228   virtual void board_get_buffer(UINT8 *&base, UINT32 &limit);
r241781r241782
2430   virtual void board_write(offs_t offset, UINT16 data);
2531
2632private:
27   enum {
28      RAM_SIZE = 65536, BUFFER_SIZE = 32768, LINE_SIZE = 512,
29      FLAG_COMPRESSED = 0x10000, FLAG_LINE_SIZE_512 = 0x20000
30   };
3133
34
3235   const char *key_tag;
33   UINT32 key;
3436
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();
37   
38   required_device<sega_315_5881_crypt_device> m_cryptdevice;
6939};
7040
7141extern const device_type NAOMI_M2_BOARD;
trunk/src/mame/machine/pgmprot_igs025_igs012.c
r241781r241782
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
r0r241782
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
r0r241782
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
r241781r241782
180180
181181*************************************************************************/
182182
183#include "emu.h"
184#include "cpu/m6800/m6800.h"
183
185184#include "includes/slapstic.h"
186#include "cpu/m68000/m68000.h"
187185
188186
189/*************************************
190 *
191 *  Debugging
192 *
193 *************************************/
187extern const device_type SLAPSTIC = &device_creator<atari_slapstic_device>;
194188
195#define LOG_SLAPSTIC    (0)
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}
196233
197234
198235
199/*************************************
200 *
201 *  Structure of slapstic params
202 *
203 *************************************/
204
205struct mask_value
236void atari_slapstic_device::device_start()
206237{
207   int mask, value;
208};
209238
239}
210240
211struct slapstic_data
241void atari_slapstic_device::device_reset()
212242{
213   int bankstart;
214   int bank[4];
215243
216   struct mask_value alt1;
217   struct mask_value alt2;
218   struct mask_value alt3;
219   struct mask_value alt4;
220   int altshift;
244}
221245
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
238246/*************************************
239247 *
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 *
288248 *  Slapstic definitions
289249 *
290250 *************************************/
r241781r241782
779739
780740
781741
782/*************************************
783 *
784 *  Statics
785 *
786 *************************************/
787742
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
804743/*************************************
805744 *
806745 *  Initialization
807746 *
808747 *************************************/
809748
810void slapstic_init(running_machine &machine, int chip)
749void atari_slapstic_device::slapstic_init(running_machine &machine, int chip)
811750{
812   device_type cputype = machine.device("maincpu")->type();
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   }
813757
814758   /* only a small number of chips are known to exist */
815759   if (chip < 101 || chip > 118)
r241781r241782
823767   /* reset the chip */
824768   slapstic_reset();
825769
826   /* see if we're 68k or 6502/6809 based */
827   access_68k = (cputype == M68000 || cputype == M68010);
828770
829771   /* save state */
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);
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));
836778}
837779
838780
839void slapstic_reset(void)
781void atari_slapstic_device::slapstic_reset(void)
840782{
841783   /* reset the chip */
842784   state = DISABLED;
r241781r241782
853795 *
854796 *************************************/
855797
856int slapstic_bank(void)
798int atari_slapstic_device::slapstic_bank(void)
857799{
858800   return current_bank;
859801}
r241781r241782
866808 *
867809 *************************************/
868810
869static int alt2_kludge(address_space &space, offs_t offset)
811int atari_slapstic_device::alt2_kludge(address_space &space, offs_t offset)
870812{
871813   /* Of the 3 alternate addresses, only the middle one needs to actually hit
872814      in the slapstic region; the first and third ones can be anywhere in the
r241781r241782
913855 *
914856 *************************************/
915857
916int slapstic_tweak(address_space &space, offs_t offset)
858int atari_slapstic_device::slapstic_tweak(address_space &space, offs_t offset)
917859{
918860   /* reset is universal */
919861   if (offset == 0x0000)
r241781r241782
11371079 *
11381080 *************************************/
11391081
1140static void slapstic_log(running_machine &machine, offs_t offset)
1082void atari_slapstic_device::slapstic_log(running_machine &machine, offs_t offset)
11411083{
11421084   static attotime last_time;
11431085
trunk/src/mame/machine/stvprot.c
r241781r241782
572572*
573573*************************************/
574574
575// the naomi hookup of 315-5881 reads 16-bits at a time, here we seem to read 32?
576
575577READ32_MEMBER( stv_state::common_prot_r )
576578{
577579   UINT32 *ROM = (UINT32 *)space.machine().root_device().memregion("abus")->base();
r241781r241782
588590
589591         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);
590592
593         //UINT16 res = m_cryptdevice->do_decrypt(base);
594
591595         m_ctrl_index += 4;
592596         return retdata;
593597
r241781r241782
602606}
603607
604608
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}
605614
606
607615WRITE32_MEMBER ( stv_state::common_prot_w )
608616{
609617   COMBINE_DATA(&m_a_bus[offset]);
r241781r241782
616624   else if(offset == 2)
617625   {
618626      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
619631   }
620632   else if(offset == 3)
621633   {
622634      COMBINE_DATA(&m_abus_protkey);
635
636      m_cryptdevice->set_subkey(m_abus_protkey>>16);
637
638
623639      int a_bus_vector;
624640      a_bus_vector = m_abus_prot_addr >> 16;
625641      a_bus_vector|= (m_abus_prot_addr & 0xffff) << 16;
r241781r241782
655671{
656672   install_common_protection();
657673   m_prot_readback = astrass_prot_read_callback;
674//   m_cryptdevice->set_key(0x00000000);
658675}
659676
660677void stv_state::install_ffreveng_protection()
trunk/src/mame/mame.lst
r241781r241782
17981798youjyudn        // (c) 1986 (Japan)
17991799
18001800vigilant        // (c) 1988 (World)
1801vigilantb      // (c) 1988 (World)
18011802vigilant1       // (c) 1988 (World)
18021803vigilantu       // (c) 1988 (US)
18031804vigilantu2      // (c) 1988 (US)
r241781r241782
27462747batriderja      // (c) 1998 Raizing/8ing
27472748batridert       // (c) 1998 Raizing/8ing
27482749bbakraid        // (c) 1999 8ing
2750bbakraidc       // (c) 1999 8ing
27492751bbakraidj       // (c) 1999 8ing
27502752bbakraidja      // (c) 1999 8ing
27512753
r241781r241782
46884690desertbr        // 1993.?? Desert Breaker (World, FD1094, decrypted)
46894691desertbrj       // 1992.10 Desert Breaker (Japan)
46904692pontoon
4693hamaway
46914694
46924695// System18 Bootlegs
46934696astormbl        // BOOTLEG
r241781r241782
93729375rocktris        // (c) 1994? Yun Sung
93739376magicbub        // (c) Yun Sung
93749377magicbuba       // (c) Yun Sung
9378magicbubb       // (c) Yun Sung
93759379shocking        // (c) 1997 Yun Sung
93769380shockingk       // (c) 1997 Yun Sung
93779381bombkick        // (c) 1998 Yun Sung
r241781r241782
97289732dw2v100x        //
97299733drgw2c          //
97309734drgw2j          //
9735drgw2hk         //
97319736drgw3           // (c) 1998 Dragon World 3
97329737drgw3105        //
97339738drgw3100        //
r241781r241782
98289833// IGS PGM2 Platform
98299834orleg2          // (c) 2007
98309835orleg2o         //
9836orleg2oa      //
98319837kov2nl          // (c) 2008
98329838kov2nlo         //
9839kov2nloa      //
98339840ddpdojh         //
98349841kov3            //
98359842
r241781r241782
1097710984peset001        // (c) 1987 IGT - International Game Technology
1097810985peset004        // (c) 1987 IGT - International Game Technology
1097910986peset038        // (c) 1987 IGT - International Game Technology
10987peivc006        // (c) 1987 IGT - International Game Technology
1098010988pepk1024        // (c) 1987 IGT - International Game Technology
1098110989pepp0002        // (c) 1987 IGT - International Game Technology
1098210990pepp0002a       // (c) 1987 IGT - International Game Technology
trunk/src/mame/mame.mak
r241781r241782
271271SOUNDS += MOS7360
272272#SOUNDS += ESQPUMP
273273#SOUNDS += VRC6
274SOUNDS += SB0400
275SOUNDS += AC97
274276
275277#-------------------------------------------------
276278# specify available video cores
r241781r241782
290292#VIDEOS += EF9340_1
291293#VIDEOS += EF9345
292294#VIDEOS += GF4500
295VIDEOS += GF6800GT
293296VIDEOS += EPIC12
294297VIDEOS += FIXFREQ
295298VIDEOS += H63484
r241781r241782
436439MACHINES += LDVP931
437440#MACHINES += LH5810
438441MACHINES += LINFLASH
442MACHINES += LPCI
439443#MACHINES += LSI53C810
440444#MACHINES += M68307
441445#MACHINES += M68340
r241781r241782
578582#BUSES += ADAMNET
579583#BUSES += APF
580584#BUSES += ARCADIA
585#BUSES += ASTROCADE
581586#BUSES += BML3
582587#BUSES += BW2
583588#BUSES += C64
r241781r241782
606611BUSES += ISA
607612#BUSES += ISBX
608613#BUSES += KC
614#BUSES += LPCI
609615#BUSES += MACPDS
610616#BUSES += MIDI
611617#BUSES += MEGADRIVE
r241781r241782
616622#BUSES += O2
617623#BUSES += ORICEXT
618624#BUSES += PCE
619#BUSES += PCI
620625#BUSES += PC_JOY
621626#BUSES += PC_KBD
622627#BUSES += PET
623628#BUSES += PLUS4
629#BUSES += PSX_CONTROLLER
624630#BUSES += QL
625631BUSES += RS232
626632#BUSES += S100
r241781r241782
631637#BUSES += SMS_CTRL
632638#BUSES += SMS_EXP
633639#BUSES += SNES
640#BUSES += SPC1000
634641#BUSES += TI99PEB
635642#BUSES += TVC
636643#BUSES += VBOY
r241781r241782
16941701   $(DRIVERS)/hikaru.o \
16951702   $(DRIVERS)/hshavoc.o \
16961703   $(DRIVERS)/kopunch.o $(VIDEO)/kopunch.o \
1697   $(DRIVERS)/lindbergh.o \
1704   $(DRIVERS)/lindbergh.o $(MACHINE)/segabb.o \
16981705   $(MACHINE)/megadriv.o \
16991706   $(DRIVERS)/megadrvb.o \
17001707   $(DRIVERS)/megaplay.o \
r241781r241782
17071714   $(DRIVERS)/naomi.o $(MACHINE)/dc.o $(VIDEO)/powervr2.o $(MACHINE)/naomi.o \
17081715   $(MACHINE)/naomig1.o $(MACHINE)/naomibd.o $(MACHINE)/naomirom.o $(MACHINE)/naomigd.o \
17091716   $(MACHINE)/naomicrypt.o $(MACHINE)/naomim1.o $(MACHINE)/naomim2.o $(MACHINE)/naomim4.o \
1717   $(MACHINE)/315-5881_crypt.o \
17101718   $(MACHINE)/awboard.o \
17111719   $(MACHINE)/mie.o $(MACHINE)/maple-dc.o $(MACHINE)/mapledev.o $(MACHINE)/dc-ctrl.o $(MACHINE)/jvs13551.o \
17121720   $(DRIVERS)/triforce.o \
r241781r241782
26502658
26512659$(DRIVERS)/grchamp.o:   $(LAYOUT)/grchamp.lh
26522660
2661$(DRIVERS)/harddriv.o:  $(LAYOUT)/racedrivpan.lh
2662
26532663$(DRIVERS)/highvdeo.o:  $(LAYOUT)/fashion.lh
26542664
26552665$(DRIVERS)/hankin.o:    $(LAYOUT)/hankin.lh
trunk/src/mame/video/atarisy2.c
r241781r241782
208208READ16_MEMBER( atarisy2_state::slapstic_r )
209209{
210210   int result = m_slapstic_base[offset];
211   slapstic_tweak(space, offset);
211   m_slapstic->slapstic_tweak(space, offset);
212212
213213   /* an extra tweak for the next opcode fetch */
214   m_videobank = slapstic_tweak(space, 0x1234) * 0x1000;
214   m_videobank = m_slapstic->slapstic_tweak(space, 0x1234) * 0x1000;
215215   return result;
216216}
217217
218218
219219WRITE16_MEMBER( atarisy2_state::slapstic_w )
220220{
221   slapstic_tweak(space, offset);
221   m_slapstic->slapstic_tweak(space, offset);
222222
223223   /* an extra tweak for the next opcode fetch */
224   m_videobank = slapstic_tweak(space, 0x1234) * 0x1000;
224   m_videobank = m_slapstic->slapstic_tweak(space, 0x1234) * 0x1000;
225225}
226226
227227
trunk/src/mame/video/harddriv.c
r241781r241782
3030 *
3131 *************************************/
3232
33VIDEO_START_MEMBER(harddriv_state,harddriv)
33void harddriv_state::init_video()
3434{
3535   UINT32 *destmask, mask;
3636   int i;
r241781r241782
161161
162162void harddriv_state::update_palette_bank(int newbank)
163163{
164   m_screen->update_partial(m_screen->vpos());
164   screen_device &scr = m_gsp->screen();
165
166   scr.update_partial(scr.vpos());
165167   m_gfx_palettebank = newbank;
166168}
167169
r241781r241782
214216
215217   COMBINE_DATA(&m_gsp_control_hi[offset]);
216218   newword = m_gsp_control_hi[offset];
219   screen_device &scr = m_gsp->screen();
217220
218221   switch (offset & 7)
219222   {
r241781r241782
223226
224227      case 0x01:
225228         data = data & (15 >> m_gsp_multisync);
226         m_screen->update_partial(m_screen->vpos() - 1);
229         scr.update_partial(scr.vpos() - 1);
227230         m_gfx_finescroll = data;
228231         break;
229232
r241781r241782
407410TMS340X0_SCANLINE_IND16_CB_MEMBER(harddriv_state::scanline_driver)
408411{
409412   UINT8 *vram_base = &m_gsp_vram[(params->rowaddr << 12) & m_vram_mask];
413   
414   if (!vram_base) return;
415   
410416   UINT16 *dest = &bitmap.pix16(scanline);
411417   int coladdr = (params->yoffset << 9) + ((params->coladdr & 0xff) << 4) - 15 + (m_gfx_finescroll & 0x0f);
412418   int x;
r241781r241782
422428TMS340X0_SCANLINE_IND16_CB_MEMBER(harddriv_state::scanline_multisync)
423429{
424430   UINT8 *vram_base = &m_gsp_vram[(params->rowaddr << 11) & m_vram_mask];
431
432   if (!vram_base) return;   
433   
425434   UINT16 *dest = &bitmap.pix16(scanline);
426435   int coladdr = (params->yoffset << 9) + ((params->coladdr & 0xff) << 3) - 7 + (m_gfx_finescroll & 0x07);
427436   int x;
trunk/src/mame/video/k007121.c
r241781r241782
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 RAM for the tilemaps and sprites, and an additional
110x100 bytes, maybe for scroll RAM and line buffers. The maximum addressable
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
1212ROM is 0x80000 bytes (addressed 16 bits at a time). Tile and sprite data both
13come from the same ROM space.
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
1416Two 256x4 lookup PROMs are also used to increase the color combinations.
1517All tilemap / sprite priority handling is done internally and the chip exports
16187 bits of color code, composed of 2 bits of palette bank, 1 bit indicating tile
r241781r241782
2729outputs:
2830- address lines for tilemap RAM (AX0-AX12)
2931- data lines for tilemap RAM (VO0-VO7)
30- address lines for the small RAM (FA0-FA7)
31- data lines for the small RAM (FD0-FD7)
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)
3235- address lines for the gfx ROMs (R0-R17)
3336- address lines for the tile lookup PROMs (VCF0-VCF3, VCB0-VCB3)
3437- address lines for the sprite lookup PROMs (OCB0-OCB3, OCF0-OCF3)
trunk/src/mame/video/konamiic.txt
r241781r241782
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 RAM for the tilemaps and sprites, and an additional
2150x100 bytes, maybe for scroll RAM and line buffers. The maximum addressable
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
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.
r241781r241782
234234outputs:
235235- address lines for tilemap RAM (AX0-AX12)
236236- data lines for tilemap RAM (VO0-VO7)
237- address lines for the small RAM (FA0-FA7)
238- data lines for the small RAM (FD0-FD7)
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)
239240- address lines for the gfx ROMs (R0-R15)
240241- address lines for the tile lookup PROMs (VCF0-VCF3, VCB0-VCB3)
241242- address lines for the sprite lookup PROMs (OCB0-OCB3, OCF0-OCF3)
trunk/src/mame/video/n64.h
r241781r241782
5656#define MEM16_LIMIT 0x3fffff
5757#define MEM32_LIMIT 0x1fffff
5858
59#define RDP_RANGE_CHECK (0)
59#define RDP_RANGE_CHECK (1)
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
r241781r241782
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);
575577         ((this)->*(_Fill[object.MiscState.FBSize - 2]))(fb_index + x, object);
576578      }
577579
trunk/src/mame/video/rdptpipe.c
r241781r241782
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
598613   int tempanded;
599614   if (*sss & 0x40000)
600615   {
r241781r241782
645660         *sst &= 0xffff;
646661      }
647662   }
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   }
648695}
649696
650697void 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)
r241781r241782
761808
762809   if(object.OtherModes.sharpen_tex_en && magnify)
763810   {
764      userdata->LODFraction = userdata->LODFraction | 0x100;
811      userdata->LODFraction |= 0x100;
765812   }
766813
767814   if (object.OtherModes.tex_lod_en)
trunk/src/mame/video/rockrage.c
r241781r241782
44PALETTE_INIT_MEMBER(rockrage_state, rockrage)
55{
66   const UINT8 *color_prom = memregion("proms")->base();
7   int i;
87
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++)
8   for (int i = 0; i < 256*3; i++)
159   {
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);
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);
2314   }
2415}
2516
r241781r241782
5041{
5142   *code |= ((*color & 0x40) << 2) | ((*color & 0x80) << 1) * ((m_vreg & 0x03) << 1);
5243   *code = (*code << 2) | ((*color & 0x30) >> 4);
53   *color = 0;
44   *color = 0 + (*color & 0x0f);
5445}
5546
5647
trunk/src/mame/video/tumbleb.c
r241781r241782
304304{
305305   int offs, offs2;
306306
307   m_flipscreen = m_control_0[0] & 0x80;
308   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
307   flip_screen_set(m_control_0[0] & 0x80);
309308
310   if (m_flipscreen)
309   if (flip_screen())
311310      offs = 1;
312311   else
313312      offs = -1;
314313
315   if (m_flipscreen)
314   if (flip_screen())
316315      offs2 = -3;
317316   else
318317      offs2 = -5;
r241781r241782
326325{
327326   int offs, offs2;
328327
329   m_flipscreen = m_control_0[0] & 0x80;
330   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
328   flip_screen_set(m_control_0[0] & 0x80);
331329
332   if (m_flipscreen)
330   if (flip_screen())
333331      offs = 1;
334332   else
335333      offs = -1;
336334
337   if (m_flipscreen)
335   if (flip_screen())
338336      offs2 = -3;
339337   else
340338      offs2 = -5;
r241781r241782
347345{
348346   int offs, offs2;
349347
350   m_flipscreen = m_control_0[0] & 0x80;
351   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
348   flip_screen_set(m_control_0[0] & 0x80);
352349
353   if (m_flipscreen)
350   if (flip_screen())
354351      offs = 1;
355352   else
356353      offs = -1;
357354
358   if (m_flipscreen)
355   if (flip_screen())
359356      offs2 = -3;
360357   else
361358      offs2 = -5;
r241781r241782
368365{
369366   int offsx, offsy, offsx2;
370367
371   m_flipscreen = m_control_0[0] & 0x80;
368   flip_screen_set(m_control_0[0] & 0x80);
372369
373370   offsx = -1;
374371   offsy = 2;
r241781r241782
383380{
384381   int offs, offs2;
385382
386   m_flipscreen = m_control_0[0] & 0x80;
387   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
383   flip_screen_set(m_control_0[0] & 0x80);
388384
389385   /* not sure of this */
390   if (m_flipscreen)
386   if (flip_screen())
391387      offs = 1;
392388   else
393389      offs = 8;
394390
395391   /* not sure of this */
396   if (m_flipscreen)
392   if (flip_screen())
397393      offs2 = -3;
398394   else
399395      offs2 = 8;
r241781r241782
406402{
407403   int offs, offs2;
408404
409   m_flipscreen = m_control_0[0] & 0x80;
410   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
405   flip_screen_set(m_control_0[0] & 0x80);
406
411407   offs = -1;
412408   offs2 = -2;
413409
r241781r241782
420416{
421417   int offs, offs2;
422418
423   m_flipscreen = m_control_0[0] & 0x80;
424   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
419   flip_screen_set(m_control_0[0] & 0x80);
420
425421   offs = -1;
426422   offs2 = -5; // foreground scroll..
427423
r241781r241782
435431{
436432   int offs, offs2;
437433
438   m_flipscreen = m_control_0[0] & 0x80;
439   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
434   flip_screen_set(m_control_0[0] & 0x80);
440435
441   if (m_flipscreen)
436   if (flip_screen())
442437      offs = 1;
443438   else
444439      offs = -1;
445440
446   if (m_flipscreen)
441   if (flip_screen())
447442      offs2 = -3;
448443   else
449444      offs2 = -5;
r241781r241782
457452{
458453   int offs, offs2;
459454
460   m_flipscreen = m_control_0[0] & 0x80;
461   machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
455   flip_screen_set(m_control_0[0] & 0x80);
462456
463   if (m_flipscreen)
457   if (flip_screen())
464458      offs = 1;
465459   else
466460      offs = -1;
467461
468   if (m_flipscreen)
462   if (flip_screen())
469463      offs2 = -3;
470464   else
471465      offs2 = -5;
trunk/src/mame/video/twin16.c
r241781r241782
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
493506*/
494507   screen.priority().fill(0, cliprect);
495508
trunk/src/mame/video/tx1.c
r241781r241782
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,
1442                           const UINT8 *rom, const UINT8 *prom0, const UINT8 *prom1, const UINT8 *prom2)
1441                           UINT8 *rc0, UINT8 *rc1, UINT8 *rc2, UINT8 *rc3)
14431442{
14441443   /* Counter Q10-7 are added to 384 */
14451444   UINT16 ls283_159 = (ls161 & 0x780) + 128 + (256 * screen);
r241781r241782
14491448   UINT8 d0 = 0;
14501449   UINT8 d1 = 0;
14511450
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
14521457   /* Latch road reverse bit */
14531458   *_rorev = !( (rom_en && rom_flip) || (!rom_en && (ls161 & 0x4000)) );
14541459
r241781r241782
15391544
15401545   /* ROM/PROM lookup tables */
15411546   const UINT8 *rcols = (UINT8*)(memregion("proms")->base() + 0x1500);
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;
1547   const UINT8 *vprom   = memregion("road")->base() + 0x4600;
15471548
15481549   /* Extract constant values */
15491550   tcmd     = ((vregs.scol & 0xc000) >> 12) | ((vregs.scol & 0x00c0) >> 6);
r241781r241782
16671668      /* Have we crossed a road gfx strip boundary? */
16681669      if (ls161 & 7)
16691670      {
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);
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]);
16731674      }
16741675
16751676      /* We can evaluate some of the pixel logic outside of the x-loop */
r241781r241782
17491750         /* Load in a new road gfx strip? */
17501751         if (!(ls161 & 7))
17511752         {
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);
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]);
17551756         }
17561757
17571758         /* Road camber/banking */
r241781r241782
21702171
21712172   /* ROM/PROM lookup tables */
21722173   const UINT8 *rcols = (UINT8*)(memregion("proms")->base() + 0x1500);
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;
2174   const UINT8 *vprom = memregion("road")->base() + 0x4600;
21782175
21792176   /* Extract constant values */
21802177   tcmd     = ((vregs.scol & 0xc000) >> 12) | ((vregs.scol & 0x00c0) >> 6);
r241781r241782
22962293
22972294      /* Have we crossed a road gfx strip boundary? */
22982295      if (ls161 & 7)
2299         buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0, &rc1, &rc2, &rc3, rom, prom0, prom1, prom2);
2296         buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0, &rc1, &rc2, &rc3);
23002297
23012298      for (x = 0; x < 256; ++x)
23022299      {
r241781r241782
23312328
23322329         /* Load in a new road gfx strip? */
23332330         if (!(ls161 & 7))
2334            buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0, &rc1, &rc2, &rc3, rom, prom0, prom1, prom2);
2331            buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0, &rc1, &rc2, &rc3);
23352332
23362333         /* Road camber */
23372334         if (vregs.bank_mode == 0)
trunk/src/mess/drivers/ace.c
r241781r241782
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")
701702
702703   MCFG_SNAPSHOT_ADD("snapshot", ace_state, ace, "ace", 1)
703704
r241781r241782
718719   MCFG_RAM_ADD(RAM_TAG)
719720   MCFG_RAM_DEFAULT_SIZE("1K")
720721   MCFG_RAM_EXTRA_OPTIONS("16K,32K,48K")
722
723   MCFG_SOFTWARE_LIST_ADD("cass_list", "jupace_cass")
721724MACHINE_CONFIG_END
722725
723726
trunk/src/mess/drivers/amstrad.c
r241781r241782
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))
867868
868869   MCFG_VIDEO_START_OVERRIDE(amstrad_state,amstrad)
869870
trunk/src/mess/drivers/bebox.c
r241781r241782
1212
1313/* Components */
1414#include "video/pc_vga.h"
15#include "bus/pci/cirrus.h"
15#include "bus/lpci/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/pci/pci.h"
21#include "bus/lpci/pci.h"
2222#include "machine/am9517a.h"
2323#include "machine/pckeybrd.h"
2424#include "machine/idectrl.h"
25#include "bus/pci/mpc105.h"
25#include "bus/lpci/mpc105.h"
2626#include "machine/intelfsh.h"
2727#include "bus/scsi/scsi.h"
2828#include "machine/53c810.h"
trunk/src/mess/drivers/cgenie.c
r241781r241782
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")
548549
549550   MCFG_DEVICE_ADD("wd179x", FD1793, 0) // TODO confirm type
550551   MCFG_WD17XX_DEFAULT_DRIVE4_TAGS
r241781r241782
557558   MCFG_GENERIC_EXTENSIONS("bin,rom")
558559   MCFG_GENERIC_LOAD(cgenie_state, cgenie_cart)
559560
561   /* software lists */
560562   MCFG_SOFTWARE_LIST_ADD("cart_list", "cgenie_cart")
563   MCFG_SOFTWARE_LIST_ADD("cass_list", "cgenie_cass")
561564
562565   /* internal ram */
563566   MCFG_RAM_ADD(RAM_TAG)
trunk/src/mess/drivers/dai.c
r241781r241782
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")
227228
228229   /* tms5501 */
229230   MCFG_DEVICE_ADD("tms5501", TMS5501, 2000000)
r241781r241782
234235   /* internal ram */
235236   MCFG_RAM_ADD(RAM_TAG)
236237   MCFG_RAM_DEFAULT_SIZE("48K")
238
239   /* software lists */
240   MCFG_SOFTWARE_LIST_ADD("cass_list", "dai_cass")
237241MACHINE_CONFIG_END
238242
239243#define io_dai      io_NULL
trunk/src/mess/drivers/dmv.c
r241781r241782
2525#include "bus/dmv/k220.h"
2626#include "bus/dmv/k230.h"
2727#include "bus/dmv/k233.h"
28#include "bus/dmv/k803.h"
2829#include "bus/dmv/k806.h"
2930#include "bus/dmv/ram.h"
3031
r241781r241782
114115   DECLARE_READ8_MEMBER(exp_program_r);
115116   DECLARE_WRITE8_MEMBER(exp_program_w);
116117   DECLARE_WRITE_LINE_MEMBER(thold7_w);
117   DECLARE_WRITE_LINE_MEMBER(busint_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
118129   DECLARE_FLOPPY_FORMATS( floppy_formats );
119130
120131   UINT8 program_read(address_space &space, int cas, offs_t offset);
r241781r241782
146157   int         m_dack3_line;
147158   int         m_sd_poll_state;
148159   int         m_floppy_motor;
160   int         m_busint[8];
149161};
150162
151163WRITE8_MEMBER(dmv_state::tc_set_w)
r241781r241782
329341
330342static SLOT_INTERFACE_START( dmv_floppies )
331343      SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
344      SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
332345SLOT_INTERFACE_END
333346
334347
r241781r241782
375388   }
376389}
377390
378WRITE_LINE_MEMBER( dmv_state::busint_w )
391void dmv_state::update_busint(int slot, int state)
379392{
380   m_slot7a->irq2_w(state);
381   m_slot7->irq2_w(state);
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);
382406}
383407
384408void dmv_state::program_write(address_space &space, int cas, offs_t offset, UINT8 data)
r241781r241782
505529   m_switch16 = 0;
506530   m_thold7 = 0;
507531   m_dma_hrq = 0;
532   memset(m_busint, 0, sizeof(m_busint));
508533
509534   update_halt_line();
510535}
r241781r241782
606631
607632static SLOT_INTERFACE_START(dmv_slot2_6)
608633   SLOT_INTERFACE("k233", DMV_K233)            // K233 16K Shared RAM
634   SLOT_INTERFACE("k803", DMV_K803)            // K803 RTC module
609635   SLOT_INTERFACE("k806", DMV_K806)            // K806 Mouse module
610636SLOT_INTERFACE_END
611637
r241781r241782
692718   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot1, NULL, false)
693719   MCFG_DEVICE_ADD("slot2", DMVCART_SLOT, 0)
694720   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false)
721   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint2_w))
695722   MCFG_DEVICE_ADD("slot2a", DMVCART_SLOT, 0)
696723   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2a, NULL, false)
724   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint2a_w))
697725   MCFG_DEVICE_ADD("slot3", DMVCART_SLOT, 0)
698726   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false)
727   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint3_w))
699728   MCFG_DEVICE_ADD("slot4", DMVCART_SLOT, 0)
700729   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false)
730   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint4_w))
701731   MCFG_DEVICE_ADD("slot5", DMVCART_SLOT, 0)
702732   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false)
733   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint5_w))
703734   MCFG_DEVICE_ADD("slot6", DMVCART_SLOT, 0)
704735   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false)
736   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint6_w))
705737
706738   MCFG_DEVICE_ADD("slot7", DMVCART_SLOT, 0)
707739   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot7, NULL, false)
708740   MCFG_DMVCART_SLOT_PROGRAM_READWRITE_CB(READ8(dmv_state, exp_program_r), WRITE8(dmv_state, exp_program_w))
709741   MCFG_DMVCART_SLOT_OUT_THOLD_CB(WRITELINE(dmv_state, thold7_w))
710   MCFG_DMVCART_SLOT_OUT_IRQ_CB(WRITELINE(dmv_state, busint_w))
742   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint7_w))
711743   MCFG_DEVICE_ADD("slot7a", DMVCART_SLOT, 0)
712744   MCFG_DEVICE_SLOT_INTERFACE(dmv_slot7a, "k230", false)
713745   MCFG_DMVCART_SLOT_PROGRAM_READWRITE_CB(READ8(dmv_state, exp_program_r), WRITE8(dmv_state, exp_program_w))
714746   MCFG_DMVCART_SLOT_OUT_THOLD_CB(WRITELINE(dmv_state, thold7_w))
715   MCFG_DMVCART_SLOT_OUT_IRQ_CB(WRITELINE(dmv_state, busint_w))
747   MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint7a_w))
716748
717749   MCFG_SOFTWARE_LIST_ADD("flop_list", "dmv")
718750
trunk/src/mess/drivers/dvk_ksm.c
r0r241782
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
r241781r241782
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);
3231
3332private:
3433   virtual void machine_start();
r241781r241782
278277}
279278
280279
281INTERRUPT_GEN_MEMBER(gmaster_state::gmaster_interrupt)
282{
283   m_maincpu->set_input_line(UPD7810_INTFE1, ASSERT_LINE);
284}
285
286280static MACHINE_CONFIG_START( gmaster, gmaster_state )
287281   MCFG_CPU_ADD("maincpu", UPD7810, XTAL_12MHz/2/*?*/)  // upd78c11 in the unit
288282   MCFG_CPU_PROGRAM_MAP(gmaster_mem)
289283   MCFG_CPU_IO_MAP( gmaster_io)
290   MCFG_CPU_VBLANK_INT_DRIVER("screen", gmaster_state,  gmaster_interrupt)
291284
292285   MCFG_SCREEN_ADD("screen", LCD)
293286   MCFG_SCREEN_REFRESH_RATE(60)
trunk/src/mess/drivers/lviv.c
r241781r241782
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",  "Lviv" ,    0 )
489COMP( 1989, lviv,   0,      0,      lviv,   lviv, driver_device,   0,      "V. I. Lenin",  "PK-01 Lviv" ,    0 )
trunk/src/mess/drivers/m5.c
r241781r241782
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")
606607
607608   MCFG_DEVICE_ADD(I8255A_TAG, I8255, 0)
608609   MCFG_I8255_IN_PORTA_CB(READ8(m5_state, ppi_pa_r))
r241781r241782
621622   //MCFG_GENERIC_MANDATORY
622623
623624   // software lists
624   MCFG_SOFTWARE_LIST_ADD("cart_list", "m5")
625   MCFG_SOFTWARE_LIST_ADD("cart_list", "m5_cart")
626   MCFG_SOFTWARE_LIST_ADD("cass_list", "m5_cass")
625627
626628   // internal ram
627629   MCFG_RAM_ADD(RAM_TAG)
trunk/src/mess/drivers/mc1502.c
r241781r241782
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));
r241781r241782
163163WRITE_LINE_MEMBER(mc1502_state::mc1502_pit8253_out2_changed)
164164{
165165   m_pit_out2 = state;
166//  mc1502_speaker_set_input( state );
166   m_speaker->level_w(m_spkrdata & m_pit_out2);
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
170176DRIVER_INIT_MEMBER( mc1502_state, mc1502 )
171177{
172178   address_space &program = m_maincpu->space(AS_PROGRAM);
r241781r241782
197203MACHINE_RESET_MEMBER( mc1502_state, mc1502 )
198204{
199205   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);
200212}
201213
202214/*
r241781r241782
324336MACHINE_CONFIG_END
325337
326338
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*/
327348ROM_START( mc1502 )
328349   ROM_REGION16_LE(0x100000,"maincpu", 0)
329350
330351   ROM_DEFAULT_BIOS("v52")
331   ROM_SYSTEM_BIOS(0, "v50", "v5.0")
352   ROM_SYSTEM_BIOS(0, "v50", "v5.0 10/05/89")
332353   ROMX_LOAD( "monitor_5_0.rom",  0xfc000, 0x4000, CRC(9e97c6a0) SHA1(16a304e8de69ec4d8b92acda6bf28454c361a24f),ROM_BIOS(1))
333   ROM_SYSTEM_BIOS(1, "v52", "v5.2")
354   ROM_SYSTEM_BIOS(1, "v52", "v5.2 22/03/91")
334355   ROMX_LOAD( "monitor_5_2.rom",  0xfc000, 0x4000, CRC(0e65491e) SHA1(8a4d556473b5e0e59b05fab77c79c29f4d562412),ROM_BIOS(2))
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))
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))
340388ROM_END
341389
390/*
391        Predecessor of MC1502, same keyboard attachment but
392        different video subsystem (not emulated).
393*/
342394ROM_START( pk88 )
343395   ROM_REGION16_LE(0x100000,"maincpu", 0)
344396
r241781r241782
358410
359411/*     YEAR     NAME        PARENT      COMPAT  MACHINE     INPUT       INIT                COMPANY       FULLNAME */
360412COMP ( 1989,    mc1502,     ibm5150,    0,      mc1502,     mc1502,     mc1502_state, mc1502,   "NPO Microprocessor", "Elektronika MC-1502", 0)
361COMP ( 1990,    pk88,       ibm5150,    0,      pk88,       mc1502,     mc1502_state, mc1502,   "NPO Microprocessor", "Elektronika PK-88", GAME_NOT_WORKING | GAME_NO_SOUND)
413COMP ( 1988,    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
r241781r241782
1/*
1/***************************************************************************
22
3    Parker Bros Merlin handheld computer game
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.
423
5*/
624
25  TODO:
26  - accurate speaker levels (tone pitch sounds good though)
27  - is the rom dump good?
28
29***************************************************************************/
30
731#include "emu.h"
832#include "cpu/tms0980/tms0980.h"
933#include "sound/speaker.h"
1034
11/* Layout */
1235#include "merlin.lh"
1336
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)
1440
41
1542class merlin_state : public driver_device
1643{
1744public:
1845   merlin_state(const machine_config &mconfig, device_type type, const char *tag)
1946      : driver_device(mconfig, type, tag),
20         m_speaker(*this, "speaker") ,
21      m_maincpu(*this, "maincpu") { }
47      m_maincpu(*this, "maincpu"),
48      m_button_matrix(*this, "O"),
49      m_speaker(*this, "speaker")
50   { }
2251
23   virtual void machine_start();
24
25   required_device<speaker_sound_device> m_speaker;
26
2752   DECLARE_READ8_MEMBER(read_k);
2853   DECLARE_WRITE16_MEMBER(write_o);
2954   DECLARE_WRITE16_MEMBER(write_r);
3055
56   virtual void machine_start();
57
3158protected:
32   UINT16  m_o;
33   UINT16  m_r;
3459   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;
3564};
3665
3766
38#define LOG 0
67/***************************************************************************
3968
69  I/O
4070
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
71***************************************************************************/
4772
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
73/* The keypad is a 4*4 matrix, connected like so:
5374
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
7275       +----+  +----+  +----+  +----+
7376O0 o---| R0 |--| R1 |--| R2 |--| R3 |
7477       +----+  +----+  +----+  +----+
r241781r241782
8891          o       o       o       o
8992         K1      K2      K8      K4
9093
91SG = same game, CT = comp turn, NG = new game, HM = hit me
92*/
94SG = same game, CT = comp turn, NG = new game, HM = hit me */
9395
9496READ8_MEMBER(merlin_state::read_k)
9597{
96   UINT8 data = 0;
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();
97104
98   if (LOG)
99      logerror( "read_k\n" );
105   return k;
106}
100107
101   if ( m_o & 0x01 )
102   {
103      data |= ioport("O0")->read();
104   }
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]);
105117
106   if ( m_o & 0x02 )
107   {
108      data |= ioport("O1")->read();
109   }
118   // O0-O3: input mux
119   // O7: N/C
120   m_o = data;
121}
110122
111   if ( m_o & 0x04 )
112   {
113      data |= ioport("O2")->read();
114   }
123WRITE16_MEMBER(merlin_state::write_r)
124{
125   /* LEDs:
115126
116   if ( m_o & 0x08 )
117   {
118      data |= ioport("O3")->read();
119   }
120
121   return data;
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);
122135}
123136
124137
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*/
132138
133WRITE16_MEMBER(merlin_state::write_o)
134{
135   if (LOG)
136      logerror( "write_o: write %02x\n", data );
139/***************************************************************************
137140
138   m_o = data;
141  Inputs
139142
140   m_speaker->level_w(m_o & 0x70);
141}
143***************************************************************************/
142144
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")
143151
144/*
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")
145157
146  LEDs:
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")
147163
148      R0
149 R1   R2   R3
150 R4   R5   R6
151 R7   R8   R9
152      R10
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
153170
154When that particular R output is high, that LED is on.
155*/
156171
157WRITE16_MEMBER(merlin_state::write_r)
158{
159   if (LOG)
160      logerror( "write_r: write %04x\n", data );
161172
162   m_r = data;
173/***************************************************************************
163174
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}
175  Machine Config
176176
177***************************************************************************/
177178
178179void merlin_state::machine_start()
179180{
181   m_o = 0;
180182   save_item(NAME(m_o));
181   save_item(NAME(m_r));
182183}
183184
184185
r241781r241782
191192   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
192193};
193194
195static const INT16 speaker_levels[] = { 0, 32767, 0, 32767 }; // unknown too, due to output_pla being unknown
194196
197
195198static 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 ) )
201199
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
202207   MCFG_DEFAULT_LAYOUT(layout_merlin)
203208
209   /* no video! */
210
211   /* sound hardware */
204212   MCFG_SPEAKER_STANDARD_MONO("mono")
205213   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
214   MCFG_SPEAKER_LEVELS(4, speaker_levels)
206215   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
207216MACHINE_CONFIG_END
208217
209218
219
220/***************************************************************************
221
222  Game driver(s)
223
224***************************************************************************/
225
210226ROM_START( merlin )
211227   ROM_REGION( 0x800, "maincpu", 0 )
212228   // This rom needs verification, that's why it is marked as a bad dump
r241781r241782
216232   ROM_LOAD( "mp3404", 0x0000, 0x800, BAD_DUMP CRC(7515a75d) SHA1(76ca3605d3fde1df62f79b9bb1f534c2a2ae0229) )
217233ROM_END
218234
219/***************************************************************************
220235
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 )
236CONS( 1978, merlin, 0, 0, merlin, merlin, driver_device, 0, "Parker Brothers", "Merlin", GAME_SUPPORTS_SAVE )
trunk/src/mess/drivers/pasogo.c
r241781r241782
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 = 0;
691   m_pit_out2 = 1;
692692   m_dma_channel = -1;
693693   m_cur_eop = false;
694694}
trunk/src/mess/drivers/pc1512.c
r241781r241782
11311131   m_nmi_enable = 0;
11321132   m_toggle = 0;
11331133   m_kb_bits = 0;
1134   m_pit2 = 1;
11341135
11351136   m_lpen = 0;
11361137   m_blink = 0;
trunk/src/mess/drivers/pc9801.c
r241781r241782
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);
595   inline void m_pc9801rs_grcg_w(UINT32 offset,int vbank,UINT8 data);
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); }
596598   DECLARE_CUSTOM_INPUT_MEMBER(system_type_r);
597599   DECLARE_READ8_MEMBER(pc9801ux_gvram_r);
598600   DECLARE_WRITE8_MEMBER(pc9801ux_gvram_w);
599601   DECLARE_READ8_MEMBER(pc9801ux_gvram0_r);
600602   DECLARE_WRITE8_MEMBER(pc9801ux_gvram0_w);
603   DECLARE_READ8_MEMBER(upd7220_grcg_r);
604   DECLARE_WRITE8_MEMBER(upd7220_grcg_w);
601605   UINT32 pc9801_286_a20(bool state);
602606
603607   DECLARE_READ8_MEMBER(ide_hack_r);
r241781r241782
750754   TIMER_DEVICE_CALLBACK_MEMBER( mouse_irq_cb );
751755
752756   void pc9801_fdc_2hd_update_ready(floppy_image_device *, int);
753   inline UINT32 m_calc_grcg_addr(int i,UINT32 offset);
757   inline UINT32 m_calc_grcg_addr(int i,UINT32 offset,int vrambank);
754758
755759   DECLARE_DRIVER_INIT(pc9801_kanji);
756760   inline void set_dma_channel(int channel, int state);
r241781r241782
16451649   m_video_ram_2[offset+0x08000+m_vram_bank*0x20000] = data;
16461650}
16471651
1648inline UINT32 pc9801_state::m_calc_grcg_addr(int i,UINT32 offset)
1652inline UINT32 pc9801_state::m_calc_grcg_addr(int i,UINT32 offset,int vrambank)
16491653{
1650   return (offset) + (((i+1)*0x8000) & 0x1ffff) + (m_vram_bank*0x20000);
1654   return (offset) + (((i+1)*0x8000) & 0x1ffff) + (vrambank*0x20000);
16511655}
16521656
1653inline UINT8 pc9801_state::m_pc9801rs_grcg_r(UINT32 offset,int vbank)
1657inline UINT8 pc9801_state::m_pc9801rs_grcg_r(UINT32 offset,int vbank,int vrambank)
16541658{
1655   UINT8 res;
1659   UINT8 res = 0;
16561660
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
1661   if(!(m_grcg.mode & 0x80))
1662      res = m_video_ram_2[offset+vbank*0x8000+vrambank*0x20000];
1663   else if(!(m_grcg.mode & 0x40))
16601664   {
16611665      int i;
16621666
r241781r241782
16641668      for(i=0;i<4;i++)
16651669      {
16661670         if((m_grcg.mode & (1 << i)) == 0)
1667            res |= (m_video_ram_2[m_calc_grcg_addr(i,offset)] ^ m_grcg.tile[i]);
1671            res |= (m_video_ram_2[m_calc_grcg_addr(i,offset,vrambank)] ^ m_grcg.tile[i]);
16681672      }
16691673
16701674      res ^= 0xff;
r241781r241782
16731677   return res;
16741678}
16751679
1676inline void pc9801_state::m_pc9801rs_grcg_w(UINT32 offset,int vbank,UINT8 data)
1680inline void pc9801_state::m_pc9801rs_grcg_w(UINT32 offset,int vbank,int vrambank,UINT8 data)
16771681{
16781682   if((m_grcg.mode & 0x80) == 0)
1679      m_video_ram_2[offset+vbank*0x8000+m_vram_bank*0x20000] = data;
1683      m_video_ram_2[offset+vbank*0x8000+vrambank*0x20000] = data;
16801684   else
16811685   {
16821686      int i;
r241781r241782
16871691         {
16881692            if((m_grcg.mode & (1 << i)) == 0)
16891693            {
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;
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;
16921696            }
16931697         }
16941698      }
r241781r241782
16981702         {
16991703            if((m_grcg.mode & (1 << i)) == 0)
17001704            {
1701               m_video_ram_2[m_calc_grcg_addr(i,offset)] = m_grcg.tile[i];
1705               m_video_ram_2[m_calc_grcg_addr(i,offset,vrambank)] = m_grcg.tile[i];
17021706            }
17031707         }
17041708      }
17051709   }
17061710}
17071711
1712READ8_MEMBER(pc9801_state::upd7220_grcg_r)
1713{
1714   return m_pc9801rs_grcg_r(offset & 0x7fff, (offset >> 15) & 3, offset >> 17);
1715}
17081716
1717WRITE8_MEMBER(pc9801_state::upd7220_grcg_w)
1718{
1719   m_pc9801rs_grcg_w(offset & 0x7fff, (offset >> 15) & 3, offset >> 17, data);
1720}
1721
17091722READ8_MEMBER(pc9801_state::pc9801_mouse_r)
17101723{
17111724   if((offset & 1) == 0)
r241781r241782
27762789   AM_RANGE(0x00000, 0x3ffff) AM_RAM AM_SHARE("video_ram_2")
27772790ADDRESS_MAP_END
27782791
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
27792795
27802796CUSTOM_INPUT_MEMBER(pc9801_state::system_type_r)
27812797{
r241781r241782
33493365   {
33503366      address_space& space = m_maincpu->space(AS_PROGRAM);
33513367      membank("wram")->set_base(m_ram->pointer());
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);
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      }
33553374   }
33563375
33573376   m_ide_rom = memregion("ide")->base();
r241781r241782
37273746   MCFG_FRAGMENT_ADD(pc9801_keyboard)
37283747   MCFG_FRAGMENT_ADD(pc9801_mouse)
37293748   MCFG_FRAGMENT_ADD(pc9801_ide)
3730   MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL)
3749   MCFG_UPD4990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL)
37313750   MCFG_DEVICE_ADD(UPD8251_TAG, I8251, 0)
37323751
3733   MCFG_UPD765A_ADD("upd765_2hd", false, true)
3752   MCFG_UPD765A_ADD("upd765_2hd", true, true)
37343753   MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(pc9801_state, pc9801rs_fdc_irq))
37353754   MCFG_UPD765_DRQ_CALLBACK(WRITELINE(pc9801_state, pc9801rs_fdc_drq))
37363755   //"upd765_2dd"
r241781r241782
37583777   MCFG_UPD7220_VSYNC_CALLBACK(DEVWRITELINE("upd7220_btm", upd7220_device, ext_sync_w))
37593778
37603779   MCFG_DEVICE_ADD("upd7220_btm", UPD7220, 5000000/2)
3761   MCFG_DEVICE_ADDRESS_MAP(AS_0, upd7220_2_map)
3780   MCFG_DEVICE_ADDRESS_MAP(AS_0, upd7220_grcg_2_map)
37623781   MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(pc9801_state, hgdc_display_pixels)
37633782
37643783   MCFG_PALETTE_ADD("palette", 16+16)
r241781r241782
38443863   MCFG_FRAGMENT_ADD(pc9801_keyboard)
38453864   MCFG_FRAGMENT_ADD(pc9801_mouse)
38463865   MCFG_FRAGMENT_ADD(pc9801_ide)
3847   MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL)
3866   MCFG_UPD4990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL)
38483867   MCFG_DEVICE_ADD(UPD8251_TAG, I8251, 0)
38493868
38503869   MCFG_UPD765A_ADD("upd765_2hd", false, true)
r241781r241782
38753894   MCFG_UPD7220_VSYNC_CALLBACK(DEVWRITELINE("upd7220_btm", upd7220_device, ext_sync_w))
38763895
38773896   MCFG_DEVICE_ADD("upd7220_btm", UPD7220, 5000000/2)
3878   MCFG_DEVICE_ADDRESS_MAP(AS_0, upd7220_2_map)
3897   MCFG_DEVICE_ADDRESS_MAP(AS_0, upd7220_grcg_2_map)
38793898   MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(pc9801_state, hgdc_display_pixels)
38803899
38813900   MCFG_PALETTE_ADD("palette", 16+16+256)
trunk/src/mess/drivers/psion.c
r241781r241782
595595   MCFG_PSION_DATAPACK_ADD("pack2")
596596
597597   /* Software lists */
598   MCFG_SOFTWARE_LIST_ADD("pack_list", "psion")
598   MCFG_SOFTWARE_LIST_ADD("pack_list", "psion2")
599599MACHINE_CONFIG_END
600600
601601/* basic configuration for 4 lines display */
r241781r241782
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")
627631MACHINE_CONFIG_END
628632
629633static MACHINE_CONFIG_DERIVED( psioncm, psion_2lines )
r241781r241782
696700   ROMX_LOAD( "34-lag.rom",   0x8000, 0x8000,  CRC(13a92c4b) SHA1(dab8bd6a41a5fd509c5ad4b0b0ab80d14f2c421a), ROM_BIOS(2))
697701   ROM_SYSTEM_BIOS(2, "v36", "LA v3.6")
698702   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))
699705ROM_END
700706
701707ROM_START( psionp200 )
trunk/src/mess/drivers/ptcsol.c
r241781r241782
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")
753754
754   MCFG_CASSETTE_ADD( "cassette2" )
755   MCFG_CASSETTE_ADD("cassette2")
755756   MCFG_CASSETTE_FORMATS(sol20_cassette_formats)
756757   MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED)
758   MCFG_CASSETTE_INTERFACE("sol20_cass")
757759
758   MCFG_DEVICE_ADD( "uart", AY31015, 0 )
760   MCFG_DEVICE_ADD("uart", AY31015, 0)
759761   MCFG_AY31015_TX_CLOCK(4800.0)
760762   MCFG_AY31015_RX_CLOCK(4800.0)
761   MCFG_DEVICE_ADD( "uart_s", AY31015, 0 )
763   MCFG_DEVICE_ADD("uart_s", AY31015, 0)
762764   MCFG_AY31015_TX_CLOCK(4800.0)
763765   MCFG_AY31015_RX_CLOCK(4800.0)
764766   MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
765767   MCFG_GENERIC_KEYBOARD_CB(WRITE8(sol20_state, kbd_put))
768
769   MCFG_SOFTWARE_LIST_ADD("cass_list", "sol20_cass")
766770MACHINE_CONFIG_END
767771
768772/* ROM definition */
trunk/src/mess/drivers/px4.c
r241781r241782
1919#include "machine/ram.h"
2020#include "machine/nvram.h"
2121#include "sound/speaker.h"
22
2322#include "bus/generic/slot.h"
2423#include "bus/generic/carts.h"
24#include "coreutil.h"
2525#include "px4.lh"
2626
2727
r241781r241782
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
4034
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
5735//**************************************************************************
5836//  MACROS
5937//**************************************************************************
r241781r241782
6745//  TYPE DEFINITIONS
6846//**************************************************************************
6947
70class px4_state : public driver_device,
71               public device_serial_interface
48class px4_state : public driver_device,   public device_serial_interface
7249{
7350public:
7451   px4_state(const machine_config &mconfig, device_type type, const char *tag) :
r241781r241782
7653   device_serial_interface(mconfig, *this),
7754   m_z80(*this, "maincpu"),
7855   m_ram(*this, RAM_TAG),
56   m_nvram(*this, "nvram"),
7957   m_centronics(*this, "centronics"),
8058   m_ext_cas(*this, "extcas"),
8159   m_ext_cas_timer(*this, "extcas_timer"),
8260   m_speaker(*this, "speaker"),
8361   m_sio(*this, "sio"),
8462   m_rs232(*this, "rs232"),
85   m_caps1(*this, "capsule1"),
86   m_caps2(*this, "capsule2"),
87   m_rdsocket(*this, "ramdisk_socket"),
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),
8866   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),
8970   m_artdir(0xff), m_artdor(0xff), m_artsr(0), m_artcr(0),
9071   m_swr(0),
9172   m_one_sec_int_enabled(true), m_alarm_int_enabled(true), m_key_int_enabled(true),
92   m_ramdisk_address(0),
93   m_ear_last_state(0)
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)
9478   { }
9579
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
96185   // internal devices
97186   required_device<cpu_device> m_z80;
98187   required_device<ram_device> m_ram;
188   required_device<nvram_device> m_nvram;
99189   required_device<centronics_device> m_centronics;
100190   required_device<cassette_image_device> m_ext_cas;
101191   required_device<timer_device> m_ext_cas_timer;
r241781r241782
104194   required_device<rs232_port_device> m_rs232;
105195   required_device<generic_slot_device> m_caps1;
106196   required_device<generic_slot_device> m_caps2;
107   optional_device<generic_slot_device> m_rdsocket;
108197
109198   memory_region *m_caps1_rom;
110199   memory_region *m_caps2_rom;
r241781r241782
126215   UINT8 m_vadr;
127216   UINT8 m_yoff;
128217
129   void gapnit_interrupt();
130
131218   // gapnio
132219   emu_timer *m_receive_timer;
133220   emu_timer *m_transmit_timer;
r241781r241782
137224   UINT8 m_artcr;
138225   UINT8 m_swr;
139226
140   void txd_w(int data);
141
142227   // 7508 internal
143228   bool m_one_sec_int_enabled;
144229   bool m_alarm_int_enabled;
r241781r241782
147232   UINT8 m_key_status;
148233   UINT8 m_interrupt_status;
149234
150   // external ramdisk
151   offs_t m_ramdisk_address;
152   UINT8 *m_ramdisk;
235   system_time m_time;
236   int m_clock_state;
153237
154238   // external cassette/barcode reader
155239   int m_ear_last_state;
156240
157   void install_rom_capsule(address_space &space, int size, memory_region *mem);
241   // serial
242   int m_sio_pin;
243   int m_serial_rx;
244   int m_rs232_dcd;
245   int m_rs232_cts;
158246
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();
247   // centronics
248   int m_centronics_busy;
249   int m_centronics_perror;
250};
164251
165   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
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   { }
166262
167   DECLARE_WRITE_LINE_MEMBER( sio_rx_w );
168   DECLARE_WRITE_LINE_MEMBER( sio_pin_w );
263   DECLARE_DRIVER_INIT( px4p );
169264
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 );
265   DECLARE_PALETTE_INIT( px4p );
174266
175   int m_sio_pin;
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 );
176271
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);
272protected:
273   // driver_device overrides
214274   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);
226275
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);
276private:
277   required_device<nvram_device> m_rdnvram;
278   required_device<generic_slot_device> m_rdsocket;
231279
232private:
233   DECLARE_WRITE_LINE_MEMBER( serial_rx_w );
280   offs_t m_ramdisk_address;
281   UINT8 *m_ramdisk;
234282};
235283
236284
r241781r241782
310358}
311359
312360// input capture register low command trigger
313READ8_MEMBER( px4_state::px4_icrlc_r )
361READ8_MEMBER( px4_state::icrlc_r )
314362{
315363   if (VERBOSE)
316      logerror("%s: px4_icrlc_r\n", machine().describe_context());
364      logerror("%s: icrlc_r\n", machine().describe_context());
317365
318366   // latch value
319367   m_frc_latch = m_frc_value;
r241781r241782
322370}
323371
324372// control register 1
325WRITE8_MEMBER( px4_state::px4_ctrl1_w )
373WRITE8_MEMBER( px4_state::ctrl1_w )
326374{
327375   const int rcv_rates[] = { 110, 150, 300, 600, 1200, 2400, 4800, 9600, 75, 1200, 19200, 38400, 200 };
328376   const int tra_rates[] = { 110, 150, 300, 600, 1200, 2400, 4800, 9600, 1200, 75, 19200, 38400, 200 };
329377
330378   if (VERBOSE)
331      logerror("%s: px4_ctrl1_w (0x%02x)\n", machine().describe_context(), data);
379      logerror("%s: ctrl1_w (0x%02x)\n", machine().describe_context(), data);
332380
333381   // baudrate generator
334382   int baud = data >> 4;
r241781r241782
346394}
347395
348396// input capture register high command trigger
349READ8_MEMBER( px4_state::px4_icrhc_r )
397READ8_MEMBER( px4_state::icrhc_r )
350398{
351399   if (VERBOSE)
352      logerror("%s: px4_icrhc_r\n", machine().describe_context());
400      logerror("%s: icrhc_r\n", machine().describe_context());
353401
354402   return (m_frc_latch >> 8) & 0xff;
355403}
356404
357405// command register
358WRITE8_MEMBER( px4_state::px4_cmdr_w )
406WRITE8_MEMBER( px4_state::cmdr_w )
359407{
360408   if (0)
361      logerror("%s: px4_cmdr_w (0x%02x)\n", machine().describe_context(), data);
409      logerror("%s: cmdr_w (0x%02x)\n", machine().describe_context(), data);
362410
363411   // clear overflow interrupt?
364412   if (BIT(data, 2))
r241781r241782
369417}
370418
371419// input capture register low barcode trigger
372READ8_MEMBER( px4_state::px4_icrlb_r )
420READ8_MEMBER( px4_state::icrlb_r )
373421{
374422   if (VERBOSE)
375      logerror("%s: px4_icrlb_r\n", machine().describe_context());
423      logerror("%s: icrlb_r\n", machine().describe_context());
376424
377425   return m_icrb & 0xff;
378426}
379427
380428// control register 2
381WRITE8_MEMBER( px4_state::px4_ctrl2_w )
429WRITE8_MEMBER( px4_state::ctrl2_w )
382430{
383431   if (VERBOSE)
384      logerror("%s: px4_ctrl2_w (0x%02x)\n", machine().describe_context(), data);
432      logerror("%s: ctrl2_w (0x%02x)\n", machine().describe_context(), data);
385433
386434   // bit 0, MIC, cassette output
387435   m_ext_cas->output( BIT(data, 0) ? -1.0 : +1.0);
r241781r241782
400448}
401449
402450// input capture register high barcode trigger
403READ8_MEMBER( px4_state::px4_icrhb_r )
451READ8_MEMBER( px4_state::icrhb_r )
404452{
405453   if (VERBOSE)
406      logerror("%s: px4_icrhb_r\n", machine().describe_context());
454      logerror("%s: icrhb_r\n", machine().describe_context());
407455
408456   // clear icf interrupt
409457   m_isr &= ~INT2_ICF;
r241781r241782
413461}
414462
415463// interrupt status register
416READ8_MEMBER( px4_state::px4_isr_r )
464READ8_MEMBER( px4_state::isr_r )
417465{
418466   if (VERBOSE)
419      logerror("%s: px4_isr_r\n", machine().describe_context());
467      logerror("%s: isr_r\n", machine().describe_context());
420468
421469   return m_isr;
422470}
423471
424472// interrupt enable register
425WRITE8_MEMBER( px4_state::px4_ier_w )
473WRITE8_MEMBER( px4_state::ier_w )
426474{
427475   if (0)
428      logerror("%s: px4_ier_w (0x%02x)\n", machine().describe_context(), data);
476      logerror("%s: ier_w (0x%02x)\n", machine().describe_context(), data);
429477
430478   m_ier = data;
431479   gapnit_interrupt();
432480}
433481
434482// status register
435READ8_MEMBER( px4_state::px4_str_r )
483READ8_MEMBER( px4_state::str_r )
436484{
437485   UINT8 data = 0;
438486
439487   if (0)
440      logerror("%s: px4_str_r\n", machine().describe_context());
488      logerror("%s: str_r\n", machine().describe_context());
441489
442490   data |= (m_ext_cas)->input() > 0 ? 1 : 0;
443491   data |= 1 << 1;   // BCRD, barcode reader input
r241781r241782
467515}
468516
469517// bank register
470WRITE8_MEMBER( px4_state::px4_bankr_w )
518WRITE8_MEMBER( px4_state::bankr_w )
471519{
472520   address_space &space_program = m_z80->space(AS_PROGRAM);
473521
474522   if (0)
475      logerror("%s: px4_bankr_w (0x%02x)\n", machine().describe_context(), data);
523      logerror("%s: bankr_w (0x%02x)\n", machine().describe_context(), data);
476524
477525   m_bankr = data;
478526
r241781r241782
505553}
506554
507555// serial io register
508READ8_MEMBER( px4_state::px4_sior_r )
556READ8_MEMBER( px4_state::sior_r )
509557{
510558   if (0)
511      logerror("%s: px4_sior_r 0x%02x\n", machine().describe_context(), m_sior);
559      logerror("%s: sior_r 0x%02x\n", machine().describe_context(), m_sior);
512560
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
513581   return m_sior;
514582}
515583
516584// serial io register
517WRITE8_MEMBER( px4_state::px4_sior_w )
585WRITE8_MEMBER( px4_state::sior_w )
518586{
519587   if (0)
520      logerror("%s: px4_sior_w (0x%02x)\n", machine().describe_context(), data);
588      logerror("%s: sior_w (0x%02x)\n", machine().describe_context(), data);
521589
522   m_sior = data;
523
524   switch (data)
590   // writing clock?
591   if (m_clock_state > 0)
525592   {
526   case 0x01:
593      time_t time = m_time.time;
594      struct tm *t = localtime(&time);
527595
528      if (VERBOSE)
529         logerror("7508 cmd: Power OFF\n");
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      }
530619
531      break;
620      // update
621      m_time.set(mktime(t));
532622
533   case 0x02:
623      // done?
624      if (m_clock_state == 9)
625         m_clock_state = 0;
626   }
627   else
628   {
629      m_sior = data;
534630
535      if (VERBOSE)
536         logerror("7508 cmd: Read Status\n");
537
538      if (m_interrupt_status != 0)
631      switch (data)
539632      {
633      case 0x01:
540634         if (VERBOSE)
541            logerror("> 7508 has interrupts pending: 0x%02x\n", m_interrupt_status);
635            logerror("7508 cmd: Power OFF\n");
542636
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      }
637         break;
557638
558      break;
639      case 0x02:
640         if (VERBOSE)
641            logerror("7508 cmd: Read Status\n");
559642
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;
643         if (m_interrupt_status != 0)
644         {
645            if (VERBOSE)
646               logerror("> 7508 has interrupts pending: 0x%02x\n", m_interrupt_status);
567647
568   case 0x06:
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         }
569662
570      if (VERBOSE)
571         logerror("7508 cmd: KB Interrupt OFF\n");
663         break;
572664
573      m_key_int_enabled = false;
574      break;
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;
575672
576   case 0x16:
673      case 0x06:
674         if (VERBOSE)
675            logerror("7508 cmd: KB Interrupt OFF\n");
577676
578      if (VERBOSE)
579         logerror("7508 cmd: KB Interrupt ON\n");
677         m_key_int_enabled = false;
678         break;
580679
581      m_key_int_enabled = true;
582      break;
680      case 0x16:
681         if (VERBOSE)
682            logerror("7508 cmd: KB Interrupt ON\n");
583683
584   case 0x07: if (VERBOSE) logerror("7508 cmd: Clock Read\n"); break;
585   case 0x17: if (VERBOSE) logerror("7508 cmd: Clock Write\n"); break;
684         m_key_int_enabled = true;
685         break;
586686
587   case 0x08:
687      case 0x07:
688         if (VERBOSE)
689            logerror("7508 cmd: Clock Read\n");
588690
589      if (VERBOSE)
590         logerror("7508 cmd: Power Switch Read\n");
691         m_clock_state = 1;
692         break;
591693
592      // indicate that the power switch is in the "ON" position
593      m_sior = 0x01;
594      break;
694      case 0x17:
695         if (VERBOSE)
696            logerror("7508 cmd: Clock Write\n");
595697
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;
698         m_clock_state = 1;
699         break;
600700
601   case 0x0a:
701      case 0x08:
702         if (VERBOSE)
703            logerror("7508 cmd: Power Switch Read\n");
602704
603      if (VERBOSE)
604         logerror("7508 cmd: DIP Switch Read\n");
605      m_sior = ioport("dips")->read();
606      break;
705         // indicate that the power switch is in the "ON" position
706         m_sior = 0x01;
707         break;
607708
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;
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;
612713
613   case 0x0d:
714      case 0x0a:
715         if (VERBOSE)
716            logerror("7508 cmd: DIP Switch Read\n");
717         m_sior = ioport("dips")->read();
718         break;
614719
615      if (VERBOSE)
616         logerror("7508 cmd: 1 sec. Interrupt OFF\n");
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;
617724
618      m_one_sec_int_enabled = false;
619      break;
725      case 0x0d:
726         if (VERBOSE)
727            logerror("7508 cmd: 1 sec. Interrupt OFF\n");
620728
621   case 0x1d:
729         m_one_sec_int_enabled = false;
730         break;
622731
623      if (VERBOSE)
624         logerror("7508 cmd: 1 sec. Interrupt ON\n");
732      case 0x1d:
733         if (VERBOSE)
734            logerror("7508 cmd: 1 sec. Interrupt ON\n");
625735
626      m_one_sec_int_enabled = true;
627      break;
736         m_one_sec_int_enabled = true;
737         break;
628738
629   case 0x0e:
739      case 0x0e:
740         if (VERBOSE)
741            logerror("7508 cmd: KB Clear\n");
630742
631      if (VERBOSE)
632         logerror("7508 cmd: KB Clear\n");
743         m_sior = 0xbf;
744         break;
633745
634      m_sior = 0xbf;
635      break;
636
637   case 0x0f: if (VERBOSE) logerror("7508 cmd: System Reset\n"); break;
746      case 0x0f: if (VERBOSE) logerror("7508 cmd: System Reset\n"); break;
747      }
638748   }
639749}
640750
r241781r241782
644754//**************************************************************************
645755
646756// vram start address register
647WRITE8_MEMBER( px4_state::px4_vadr_w )
757WRITE8_MEMBER( px4_state::vadr_w )
648758{
649759   if (VERBOSE)
650      logerror("%s: px4_vadr_w (0x%02x)\n", machine().describe_context(), data);
760      logerror("%s: vadr_w (0x%02x)\n", machine().describe_context(), data);
651761
652762   m_vadr = data;
653763}
654764
655765// y offset register
656WRITE8_MEMBER( px4_state::px4_yoff_w )
766WRITE8_MEMBER( px4_state::yoff_w )
657767{
658768   if (VERBOSE)
659      logerror("%s: px4_yoff_w (0x%02x)\n", machine().describe_context(), data);
769      logerror("%s: yoff_w (0x%02x)\n", machine().describe_context(), data);
660770
661771   m_yoff = data;
662772}
663773
664774// frame register
665WRITE8_MEMBER( px4_state::px4_fr_w )
775WRITE8_MEMBER( px4_state::fr_w )
666776{
667777   if (VERBOSE)
668      logerror("%s: px4_fr_w (0x%02x)\n", machine().describe_context(), data);
778      logerror("%s: fr_w (0x%02x)\n", machine().describe_context(), data);
669779}
670780
671781// speed-up register
672WRITE8_MEMBER( px4_state::px4_spur_w )
782WRITE8_MEMBER( px4_state::spur_w )
673783{
674784   if (VERBOSE)
675      logerror("%s: px4_spur_w (0x%02x)\n", machine().describe_context(), data);
785      logerror("%s: spur_w (0x%02x)\n", machine().describe_context(), data);
676786}
677787
678788
r241781r241782
728838   if (ART_TX_ENABLED)
729839   {
730840      if (ART_BREAK)
731      {
732         // transmit break
733         txd_w(0);
734      }
841         txd_w(0); // transmit break
735842      else
736      {
737         // transmit data
738         txd_w(transmit_register_get_data_bit());
739      }
843         txd_w(transmit_register_get_data_bit()); // transmit data
740844   }
741845   else
742   {
743      // transmit mark
744      txd_w(1);
745   }
846      txd_w(1); // transmit mark
746847}
747848
748849void px4_state::tra_complete()
r241781r241782
763864void px4_state::rcv_callback()
764865{
765866   if (ART_RX_ENABLED)
766   {
767      // receive data
768      receive_register_update_bit(m_serial_rx);
769   }
867      receive_register_update_bit(m_serial_rx); // receive data
770868}
771869
772870void px4_state::rcv_complete()
r241781r241782
800898}
801899
802900// cartridge interface
803READ8_MEMBER( px4_state::px4_ctgif_r )
901READ8_MEMBER( px4_state::ctgif_r )
804902{
805903   if (VERBOSE)
806      logerror("%s: px4_ctgif_r @ 0x%02x\n", machine().describe_context(), offset);
904      logerror("%s: ctgif_r @ 0x%02x\n", machine().describe_context(), offset);
807905
808906   return 0x00;
809907}
810908
811909// cartridge interface
812WRITE8_MEMBER( px4_state::px4_ctgif_w )
910WRITE8_MEMBER( px4_state::ctgif_w )
813911{
814912   if (VERBOSE)
815      logerror("%s: px4_ctgif_w (0x%02x @ 0x%02x)\n", machine().describe_context(), data, offset);
913      logerror("%s: ctgif_w (0x%02x @ 0x%02x)\n", machine().describe_context(), data, offset);
816914}
817915
818916// art data input register
819READ8_MEMBER( px4_state::px4_artdir_r )
917READ8_MEMBER( px4_state::artdir_r )
820918{
821919   if (VERBOSE)
822      logerror("%s: px4_artdir_r (%02x)\n", machine().describe_context(), m_artdir);
920      logerror("%s: artdir_r (%02x)\n", machine().describe_context(), m_artdir);
823921
824922   // clear ready
825923   m_artsr &= ~ART_RXRDY;
r241781r241782
832930}
833931
834932// art data output register
835WRITE8_MEMBER( px4_state::px4_artdor_w )
933WRITE8_MEMBER( px4_state::artdor_w )
836934{
837935   if (VERBOSE)
838      logerror("%s: px4_artdor_w (0x%02x)\n", machine().describe_context(), data);
936      logerror("%s: artdor_w (0x%02x)\n", machine().describe_context(), data);
839937
840938   m_artdor = data;
841939
r241781r241782
853951}
854952
855953// art status register
856READ8_MEMBER( px4_state::px4_artsr_r )
954READ8_MEMBER( px4_state::artsr_r )
857955{
858956   if (0)
859      logerror("%s: px4_artsr_r (%02x)\n", machine().describe_context(), m_artsr);
957      logerror("%s: artsr_r (%02x)\n", machine().describe_context(), m_artsr);
860958
861959   return m_artsr;
862960}
863961
864962// art mode register
865WRITE8_MEMBER( px4_state::px4_artmr_w )
963WRITE8_MEMBER( px4_state::artmr_w )
866964{
867965   int data_bit_count = BIT(data, 2) ? 8 : 7;
868966   parity_t parity = BIT(data, 4) ? (BIT(data, 5) ? PARITY_EVEN : PARITY_ODD) : PARITY_NONE;
r241781r241782
874972   set_data_frame(1, data_bit_count, parity, stop_bits);
875973}
876974
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
887975// io status register
888READ8_MEMBER( px4_state::px4_iostr_r )
976READ8_MEMBER( px4_state::iostr_r )
889977{
890978   UINT8 data = 0;
891979
r241781r241782
907995   data |= 0 << 7;   // bit 7, caud - audio input from cartridge
908996
909997   if (0)
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));
998      logerror("%s: iostr_r: rx = %d, dcd = %d, cts = %d\n", machine().describe_context(), BIT(data, 3), BIT(data, 4), BIT(data, 5));
911999
9121000   return data;
9131001}
9141002
9151003// art command register
916WRITE8_MEMBER( px4_state::px4_artcr_w )
1004WRITE8_MEMBER( px4_state::artcr_w )
9171005{
9181006   if (VERBOSE)
919      logerror("%s: px4_artcr_w (0x%02x)\n", machine().describe_context(), data);
1007      logerror("%s: artcr_w (0x%02x)\n", machine().describe_context(), data);
9201008
9211009   m_artcr = data;
9221010
r241781r241782
9301018}
9311019
9321020// switch register
933WRITE8_MEMBER( px4_state::px4_swr_w )
1021WRITE8_MEMBER( px4_state::swr_w )
9341022{
9351023   if (VERBOSE)
9361024   {
r241781r241782
9441032}
9451033
9461034// io control register
947WRITE8_MEMBER( px4_state::px4_ioctlr_w )
1035WRITE8_MEMBER( px4_state::ioctlr_w )
9481036{
9491037   if (VERBOSE)
950      logerror("%s: px4_ioctlr_w (0x%02x)\n", machine().describe_context(), data);
1038      logerror("%s: ioctlr_w (0x%02x)\n", machine().describe_context(), data);
9511039
9521040   m_centronics->write_strobe(!BIT(data, 0));
9531041   m_centronics->write_init(BIT(data, 1));
r241781r241782
9791067      m_isr |= INT0_7508;
9801068      gapnit_interrupt();
9811069   }
1070
1071   // update clock
1072   m_time.set(m_time.time + 1);
9821073}
9831074
9841075INPUT_CHANGED_MEMBER( px4_state::key_callback )
r241781r241782
10251116//  EXTERNAL RAM-DISK
10261117//**************************************************************************
10271118
1028WRITE8_MEMBER( px4_state::px4_ramdisk_address_w )
1119WRITE8_MEMBER( px4p_state::ramdisk_address_w )
10291120{
10301121   switch (offset)
10311122   {
r241781r241782
10351126   }
10361127}
10371128
1038READ8_MEMBER( px4_state::px4_ramdisk_data_r )
1129READ8_MEMBER( px4p_state::ramdisk_data_r )
10391130{
10401131   UINT8 ret = 0xff;
10411132
r241781r241782
10551146   return ret;
10561147}
10571148
1058WRITE8_MEMBER( px4_state::px4_ramdisk_data_w )
1149WRITE8_MEMBER( px4p_state::ramdisk_data_w )
10591150{
10601151   if (m_ramdisk_address < 0x20000)
10611152      m_ramdisk[m_ramdisk_address] = data;
r241781r241782
10631154   m_ramdisk_address = (m_ramdisk_address & 0xffff00) | ((m_ramdisk_address & 0xff) + 1);
10641155}
10651156
1066READ8_MEMBER( px4_state::px4_ramdisk_control_r )
1157READ8_MEMBER( px4p_state::ramdisk_control_r )
10671158{
10681159   // bit 7 determines the presence of a ram-disk
10691160   return 0x7f;
r241781r241782
11271218   membank("bank2")->set_base(m_ram->pointer() + 0x8000);
11281219}
11291220
1130DRIVER_INIT_MEMBER( px4_state, px4p )
1221DRIVER_INIT_MEMBER( px4p_state, px4p )
11311222{
11321223   DRIVER_INIT_CALL(px4);
11331224
r241781r241782
11401231   astring region_tag;
11411232   m_caps1_rom = memregion(region_tag.cpy(m_caps1->tag()).cat(GENERIC_ROM_REGION_TAG));
11421233   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);
11431239}
11441240
11451241void px4_state::machine_reset()
11461242{
1147   m_artsr = ART_TXRDY | ART_TXEMPTY;
1243   m_artsr = ART_TXRDY | ART_TXEMPTY | (!m_rs232->dsr_r() << 7);
11481244   receive_register_reset();
11491245   transmit_register_reset();
11501246}
11511247
1152MACHINE_START_MEMBER( px4_state, px4_ramdisk )
1248void px4p_state::machine_start()
11531249{
11541250   px4_state::machine_start();
1155   machine().device<nvram_device>("nvram")->set_base(m_ramdisk, 0x20000);
1251   m_rdnvram->set_base(m_ramdisk, 0x20000);
11561252}
11571253
11581254
r241781r241782
11691265   ADDRESS_MAP_UNMAP_HIGH
11701266   ADDRESS_MAP_GLOBAL_MASK(0xff)
11711267   // gapnit, 0x00-0x07
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)
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 )
11791275   AM_RANGE(0x07, 0x07) AM_NOP
11801276   // gapndl, 0x08-0x0f
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)
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 )
11851281   AM_RANGE(0x0c, 0x0f) AM_NOP
11861282   // gapnio, 0x10-0x1f
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)
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 )
11911287   AM_RANGE(0x17, 0x17) AM_DEVWRITE("cent_data_out", output_latch_device, write)
1192   AM_RANGE(0x18, 0x18) AM_WRITE(px4_swr_w)
1193   AM_RANGE(0x19, 0x19) AM_WRITE(px4_ioctlr_w)
1288   AM_RANGE(0x18, 0x18) AM_WRITE( swr_w )
1289   AM_RANGE(0x19, 0x19) AM_WRITE( ioctlr_w )
11941290   AM_RANGE(0x1a, 0x1f) AM_NOP
11951291ADDRESS_MAP_END
11961292
1197static ADDRESS_MAP_START( px4p_io, AS_IO, 8, px4_state )
1293static ADDRESS_MAP_START( px4p_io, AS_IO, 8, px4p_state )
11981294   AM_IMPORT_FROM(px4_io)
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)
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)
12021298ADDRESS_MAP_END
12031299
12041300
r241781r241782
13611457//  PALETTE
13621458//**************************************************************************
13631459
1364PALETTE_INIT_MEMBER(px4_state, px4)
1460PALETTE_INIT_MEMBER( px4_state, px4 )
13651461{
13661462   palette.set_pen_color(0, rgb_t(138, 146, 148));
13671463   palette.set_pen_color(1, rgb_t(92, 83, 88));
13681464}
13691465
1370PALETTE_INIT_MEMBER(px4_state, px4p)
1466PALETTE_INIT_MEMBER( px4p_state, px4p )
13711467{
13721468   palette.set_pen_color(0, rgb_t(149, 157, 130));
13731469   palette.set_pen_color(1, rgb_t(92, 83, 88));
r241781r241782
14081504   // internal ram
14091505   MCFG_RAM_ADD(RAM_TAG)
14101506   MCFG_RAM_DEFAULT_SIZE("64k")
1507   MCFG_NVRAM_ADD_NO_FILL("nvram")
14111508
14121509   // centronics printer
14131510   MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
1414   MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(px4_state, write_centronics_busy))
1415   MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(px4_state, write_centronics_perror))
1511   MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(px4_state, centronics_busy_w))
1512   MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(px4_state, centronics_perror_w))
14161513
14171514   MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
14181515
r241781r241782
14431540   MCFG_SOFTWARE_LIST_ADD("epson_cpm_list", "epson_cpm")
14441541MACHINE_CONFIG_END
14451542
1446static MACHINE_CONFIG_DERIVED( px4p, px4 )
1543static MACHINE_CONFIG_DERIVED_CLASS( px4p, px4, px4p_state )
14471544   MCFG_CPU_MODIFY("maincpu")
14481545   MCFG_CPU_IO_MAP(px4p_io)
14491546
1450   MCFG_MACHINE_START_OVERRIDE(px4_state, px4_ramdisk)
1451   MCFG_NVRAM_ADD_0FILL("nvram")
1547   MCFG_NVRAM_ADD_0FILL("rdnvram")
14521548
14531549   MCFG_PALETTE_MODIFY("palette")
1454   MCFG_PALETTE_INIT_OWNER(px4_state, px4p)
1550   MCFG_PALETTE_INIT_OWNER(px4p_state, px4p)
14551551
14561552   MCFG_GENERIC_CARTSLOT_ADD("ramdisk_socket", generic_plain_slot, "px4_cart")
14571553MACHINE_CONFIG_END
r241781r241782
14651561
14661562ROM_START( px4 )
14671563   ROM_REGION(0x8000, "os", 0)
1468   ROM_LOAD("m25122aa_po_px4.10c", 0x0000, 0x8000, CRC(62d60dc6) SHA1(3d32ec79a317de7c84c378302e95f48d56505502))
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))
14691568
14701569   ROM_REGION(0x1000, "slave", 0)
14711570   ROM_LOAD("upd7508.bin", 0x0000, 0x1000, NO_DUMP)
r241781r241782
14731572
14741573ROM_START( px4p )
14751574   ROM_REGION(0x8000, "os", 0)
1476   ROM_LOAD("b0_pxa.10c", 0x0000, 0x8000, CRC(d74b9ef5) SHA1(baceee076c12f5a16f7a26000e9bc395d021c455))
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))
14771579
14781580   ROM_REGION(0x1000, "slave", 0)
14791581   ROM_LOAD("upd7508.bin", 0x0000, 0x1000, NO_DUMP)
r241781r241782
14841586//  GAME DRIVERS
14851587//**************************************************************************
14861588
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 )
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 )
trunk/src/mess/drivers/sh4robot.c
r241781r241782
8888/* Driver */
8989
9090/*    YEAR  NAME    PARENT  COMPAT   MACHINE    INPUT    INIT    CONFIG COMPANY   FULLNAME       FLAGS */
91COMP( ????, sh4robot,  0,       0,  sh4robot,   sh4robot, driver_device,   0,   "", "Robot", GAME_NOT_WORKING | GAME_NO_SOUND)
91COMP( 20??, sh4robot,  0,       0,  sh4robot,   sh4robot, driver_device,   0,   "<unknown>", "Robot", GAME_NOT_WORKING | GAME_NO_SOUND)
trunk/src/mess/drivers/simon.c
r0r241782
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
r241781r241782
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","spectrum_flop")
385   MCFG_SOFTWARE_LIST_ADD("flop_list", "specpls3_flop")
386386MACHINE_CONFIG_END
387387
388388/***************************************************************************
trunk/src/mess/drivers/spectrum.c
r241781r241782
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")
718   MCFG_SOFTWARE_LIST_ADD("cart_list", "spectrum_cart")
719719MACHINE_CONFIG_END
720720
721721MACHINE_CONFIG_DERIVED( spectrum, spectrum_common )
trunk/src/mess/drivers/svi318.c
r241781r241782
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("Rright Grph") PORT_CODE(KEYCODE_RALT)       PORT_CHAR(UCHAR_MAMEKEY(PGDN))
168   PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right 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
r241781r241782
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
4414    TODO:
4515
4616    - floppy 8048
r241781r241782
5929
6030
6131//**************************************************************************
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//**************************************************************************
20032//  ADDRESS MAPS
20133//**************************************************************************
20234
r241781r241782
20638
20739static ADDRESS_MAP_START( victor9k_mem, AS_PROGRAM, 8, victor9k_state )
20840//  AM_RANGE(0x00000, 0xdffff) AM_RAM
41   AM_RANGE(0x20000, 0xdffff) AM_NOP
20942   AM_RANGE(0xe0000, 0xe0001) AM_DEVREADWRITE(I8259A_TAG, pic8259_device, read, write)
21043   AM_RANGE(0xe0020, 0xe0023) AM_DEVREADWRITE(I8253_TAG, pit8253_device, read, write)
21144   AM_RANGE(0xe0040, 0xe0043) AM_DEVREADWRITE(UPD7201_TAG, upd7201_device, cd_ba_r, cd_ba_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)
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)
22154   AM_RANGE(0xf0000, 0xf0fff) AM_MIRROR(0x1000) AM_RAM AM_SHARE("video_ram")
22255   AM_RANGE(0xfe000, 0xfffff) AM_ROM AM_REGION(I8088_TAG, 0)
22356ADDRESS_MAP_END
22457
22558
226//-------------------------------------------------
227//  ADDRESS_MAP( floppy_io )
228//-------------------------------------------------
22959
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
24060//**************************************************************************
24161//  INPUT PORTS
24262//**************************************************************************
r241781r241782
341161{
342162   m_ssda_irq = state;
343163
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);
164   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_fdc_irq);
345165}
346166
347167
r241781r241782
413233{
414234   m_via1_irq = state;
415235
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);
236   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_fdc_irq);
417237}
418238
419239WRITE8_MEMBER( victor9k_state::via2_pa_w )
r241781r241782
480300{
481301   m_via2_irq = state;
482302
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);
303   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_fdc_irq);
484304}
485305
486306
r241781r241782
520340{
521341   m_via3_irq = state;
522342
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);
343   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_fdc_irq);
524344}
525345
526346
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
767347//-------------------------------------------------
768348//  VICTOR9K_KEYBOARD_INTERFACE( kb_intf )
769349//-------------------------------------------------
770350
771351WRITE_LINE_MEMBER( victor9k_state::kbrdy_w )
772352{
353   //logerror("KBRDY %u\n", state);
773354   m_via2->write_cb1(state);
774355
775356   m_pic->ir6_w(state ? CLEAR_LINE : ASSERT_LINE);
r241781r241782
777358
778359WRITE_LINE_MEMBER( victor9k_state::kbdata_w )
779360{
361   //logerror("KBDATA %u\n", state);
780362   m_via2->write_cb2(state);
781363   m_via2->write_pa6(state);
782364}
783365
784//-------------------------------------------------
785//  SLOT_INTERFACE( victor9k_floppies )
786//-------------------------------------------------
787366
788void victor9k_state::ready0_cb(floppy_image_device *device, int state)
367WRITE_LINE_MEMBER( victor9k_state::fdc_irq_w )
789368{
790   m_rdy0 = state;
369   m_fdc_irq = state;
791370
792   m_via5->write_ca2(m_rdy0);
371   m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_fdc_irq);
793372}
794373
795int victor9k_state::load0_cb(floppy_image_device *device)
796{
797   m_ds0 = 0;
798374
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
839375//**************************************************************************
840376//  MACHINE INITIALIZATION
841377//**************************************************************************
842378
843//-------------------------------------------------
844//  MACHINE_START( victor9k )
845//-------------------------------------------------
846
847379void victor9k_state::machine_start()
848380{
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));
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));
856389
857390   // memory banking
858391   address_space &program = m_maincpu->space(AS_PROGRAM);
859392   program.install_ram(0x00000, m_ram->size() - 1, m_ram->pointer());
393}
860394
861   m_via5->write_ca1(m_brdy);
862   m_via6->write_ca1(m_gcrerr);
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();
863405}
864406
865407
866
867408//**************************************************************************
868409//  MACHINE CONFIGURATION
869410//**************************************************************************
r241781r241782
878419   MCFG_CPU_PROGRAM_MAP(victor9k_mem)
879420   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE(I8259A_TAG, pic8259_device, inta_cb)
880421
881   MCFG_CPU_ADD(I8048_TAG, I8048, XTAL_30MHz/6)
882   MCFG_CPU_IO_MAP(floppy_io)
883
884422   // video hardware
885423   MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
886424   MCFG_SCREEN_REFRESH_RATE(50)
r241781r241782
952490   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor9k_state, via3_pb_w))
953491   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor9k_state, via3_irq_w))
954492
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
976493   MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, NULL)
977494   MCFG_RS232_RXD_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, rxa_w))
978495   MCFG_RS232_DCD_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, dcda_w))
r241781r241782
991508   MCFG_VICTOR9K_KBRDY_HANDLER(WRITELINE(victor9k_state, kbrdy_w))
992509   MCFG_VICTOR9K_KBDATA_HANDLER(WRITELINE(victor9k_state, kbdata_w))
993510
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
994516   // internal ram
995517   MCFG_RAM_ADD(RAM_TAG)
996518   MCFG_RAM_DEFAULT_SIZE("128K")
r241781r241782
1019541   ROM_SYSTEM_BIOS( 1, "univ", "Universal" )
1020542   ROMX_LOAD( "v9000 univ. fe f3f7 13db.7j", 0x0000, 0x1000, CRC(25c7a59f) SHA1(8784e9aa7eb9439f81e18b8e223c94714e033911), ROM_BIOS(2) )
1021543   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) )
1028544ROM_END
1029545
1030546
trunk/src/mess/drivers/x07.c
r241781r241782
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")
15231524MACHINE_CONFIG_END
15241525
15251526/* ROM definition */
trunk/src/mess/drivers/xerox820.c
r241781r241782
6969   if (bank)
7070   {
7171      /* ROM */
72      program.install_rom(0x0000, 0x17ff, m_rom->base());
73      program.unmap_readwrite(0x1800, 0x2fff);
72      program.install_rom(0x0000, 0x1fff, m_rom->base());
73      program.unmap_readwrite(0x2000, 0x2fff);
7474      program.install_ram(0x3000, 0x3fff, m_video_ram);
7575      program.unmap_readwrite(0x4000, 0xbfff);
7676   }
trunk/src/mess/includes/at.h
r241781r241782
1717#include "machine/ins8250.h"
1818#include "machine/mc146818.h"
1919#include "machine/pic8259.h"
20#include "bus/pci/i82371ab.h"
21#include "bus/pci/i82371sb.h"
22#include "bus/pci/i82439tx.h"
20#include "bus/lpci/i82371ab.h"
21#include "bus/lpci/i82371sb.h"
22#include "bus/lpci/i82439tx.h"
2323#include "machine/cs8221.h"
2424#include "machine/pit8253.h"
2525#include "machine/wd7600.h"
r241781r241782
2929
3030#include "imagedev/harddriv.h"
3131#include "machine/am9517a.h"
32#include "bus/pci/pci.h"
32#include "bus/lpci/pci.h"
3333
3434#include "sound/dac.h"
3535#include "sound/speaker.h"
trunk/src/mess/includes/mc1502.h
r241781r241782
5959      emu_timer   *keyb_signal_timer;
6060   } m_kbd;
6161
62   UINT8                   m_ppi_portb;
63   UINT8                   m_ppi_portc;
64   UINT8 m_mc1502_spkrdata;
65   UINT8 m_mc1502_input;
62   UINT8 m_ppi_portb;
63   UINT8 m_ppi_portc;
64   UINT8 m_spkrdata;
6665
6766   DECLARE_WRITE_LINE_MEMBER(mc1502_pit8253_out1_changed);
6867   DECLARE_WRITE_LINE_MEMBER(mc1502_pit8253_out2_changed);
trunk/src/mess/includes/victor9k.h
r241781r241782
1616
1717#include "bus/rs232/rs232.h"
1818#include "cpu/i86/i86.h"
19#include "cpu/mcs48/mcs48.h"
19#include "formats/victor9k_dsk.h"
2020#include "imagedev/floppy.h"
2121#include "machine/ram.h"
2222#include "bus/centronics/ctronics.h"
r241781r241782
2727#include "machine/pic8259.h"
2828#include "machine/z80dart.h"
2929#include "machine/victor9kb.h"
30#include "machine/victor9k_fdc.h"
3031#include "sound/hc55516.h"
3132#include "video/mc6845.h"
3233
3334#define I8088_TAG       "8l"
34#define I8048_TAG       "5d"
3535#define I8253_TAG       "13h"
3636#define I8259A_TAG      "7l"
3737#define UPD7201_TAG     "16e"
r241781r241782
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"
4744#define DAC0808_0_TAG   "5b"
4845#define DAC0808_1_TAG   "5c"
4946#define CENTRONICS_TAG  "centronics"
r241781r241782
5148#define RS232_B_TAG     "rs232b"
5249#define SCREEN_TAG      "screen"
5350#define VICTOR9K_KEYBOARD_TAG   "victor9kb"
51#define FDC_TAG         "fdc"
5452
5553class victor9k_state : public driver_device
5654{
5755public:
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")
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)
9782   { }
9883
9984   required_device<cpu_device> m_maincpu;
100   required_device<cpu_device> m_fdc_cpu;
10185   required_device<ieee488_device> m_ieee488;
10286   required_device<pic8259_device> m_pic;
10387   required_device<upd7201_device> m_upd7201;
r241781r241782
10589   required_device<via6522_device> m_via1;
10690   required_device<via6522_device> m_via2;
10791   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;
11192   required_device<hc55516_device> m_cvsd;
11293   required_device<mc6845_device> m_crtc;
11394   required_device<ram_device> m_ram;
114   required_device<floppy_image_device> m_floppy0;
115   required_device<floppy_image_device> m_floppy1;
11695   required_device<victor9k_keyboard_device> m_kb;
96   required_device<victor_9000_fdc_t> m_fdc;
11797   required_device<rs232_port_device> m_rs232a;
11898   required_device<rs232_port_device> m_rs232b;
99   required_device<palette_device> m_palette;
100   required_shared_ptr<UINT8> m_video_ram;
119101
120102   virtual void machine_start();
103   virtual void machine_reset();
121104
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
129105   DECLARE_WRITE8_MEMBER( via1_pa_w );
130106   DECLARE_WRITE_LINE_MEMBER( write_nfrd );
131107   DECLARE_WRITE_LINE_MEMBER( write_ndac );
r241781r241782
142118   DECLARE_WRITE8_MEMBER( via3_pb_w );
143119   DECLARE_WRITE_LINE_MEMBER( via3_irq_w );
144120
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 );
121   DECLARE_WRITE_LINE_MEMBER( fdc_irq_w );
149122
150   DECLARE_WRITE8_MEMBER( via5_pb_w );
151   DECLARE_WRITE_LINE_MEMBER( via5_irq_w );
123   DECLARE_WRITE_LINE_MEMBER( ssda_irq_w );
152124
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 );
159125   DECLARE_WRITE_LINE_MEMBER( kbrdy_w );
160126   DECLARE_WRITE_LINE_MEMBER( kbdata_w );
161127   DECLARE_WRITE_LINE_MEMBER( vert_w );
162   DECLARE_WRITE_LINE_MEMBER( via6_irq_w );
163128
164   DECLARE_WRITE_LINE_MEMBER( ssda_irq_w );
165129   MC6845_UPDATE_ROW( crtc_update_row );
166130
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
180131   /* video state */
181   required_shared_ptr<UINT8> m_video_ram;
182132   int m_brt;
183133   int m_cont;
184134
r241781r241782
186136   int m_via1_irq;
187137   int m_via2_irq;
188138   int m_via3_irq;
189   int m_via4_irq;
190   int m_via5_irq;
191   int m_via6_irq;
139   int m_fdc_irq;
192140   int m_ssda_irq;
193141
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
215142   DECLARE_WRITE_LINE_MEMBER(mux_serial_b_w);
216143   DECLARE_WRITE_LINE_MEMBER(mux_serial_a_w);
217   required_device<palette_device> m_palette;
218144};
219145
220146#endif
trunk/src/mess/includes/xerox820.h
r241781r241782
9797   DECLARE_WRITE_LINE_MEMBER( fdc_intrq_w );
9898   DECLARE_WRITE_LINE_MEMBER( fdc_drq_w );
9999
100   void bankswitch(int bank);
100   virtual void bankswitch(int bank);
101101   void update_nmi();
102102
103103   /* video state */
trunk/src/mess/layout/merlin.lay
r241781r241782
11<?xml version="1.0"?>
22<mamelayout version="2">
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>
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>
820   </element>
921
1022   <element name="led" defstate="0">
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>
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>
1736   </element>
1837
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" />
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" />
3150      </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>
4051   </element>
4152
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" />
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" />
5462      </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="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" />
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" />
7774      </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>
8675   </element>
8776
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" />
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" />
10086      </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>
10987   </element>
11088
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" />
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" />
12398      </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>
13299   </element>
133100
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" />
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" />
146110      </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>
155111   </element>
156112
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" />
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" />
169122      </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>
178123   </element>
179124
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" />
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" />
192134      </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>
201135   </element>
202136
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" />
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" />
215146      </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>
224147   </element>
225148
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" />
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" />
238158      </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>
247159   </element>
248160
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" />
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" />
261170      </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>
270171   </element>
271172
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" />
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" />
284181      </text>
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" />
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" />
292185      </text>
293186   </element>
294187
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" />
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" />
307193      </text>
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" />
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" />
315197      </text>
316198   </element>
317199
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" />
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" />
330205      </text>
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" />
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" />
338209      </text>
339210   </element>
340211
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" />
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" />
353217      </text>
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" />
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" />
361221      </text>
362222   </element>
363223
364   <view name="Default Layout">
365224
366      <!-- Black background -->
367      <bezel element="background">
368         <bounds left="0" top="0" right="200" bottom="250" />
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" />
369232      </bezel>
370233
371      <!-- LEDs and number buttons -->
234   <!-- (don't care about the upper loudspeaker+logo part) -->
372235
373      <bezel name="led_0" element="led">
374         <bounds x="100" y="20" width="20" height="10" />
236      <bezel element="static_darkred">
237         <bounds x="10" y="4" width="68" height="160" />
375238      </bezel>
376      <bezel element="0" inputtag="O0" inputmask="0x01">
377         <bounds x="100" y="32" width="20" height="10" />
378      </bezel>
379239
380      <bezel name="led_1" element="led">
381         <bounds x="50" y="50" width="20" height="10" />
240      <bezel element="static_red">
241         <bounds x="7" y="0" width="74" height="8" />
382242      </bezel>
383      <bezel element="1" inputtag="O0" inputmask="0x02">
384         <bounds x="50" y="62" width="20" height="10" />
243      <bezel element="static_red">
244         <bounds x="4" y="14" width="80" height="128" />
385245      </bezel>
246      <bezel element="static_red">
247         <bounds x="7" y="148" width="74" height="62" />
248      </bezel>
386249
387      <bezel name="led_2" element="led">
388         <bounds x="100" y="50" width="20" height="10" />
250
251   <!-- number panels -->
252
253      <bezel element="panel_0">
254         <bounds x="34" y="20" width="20" height="20" />
389255      </bezel>
390      <bezel element="2" inputtag="O0" inputmask="0x08">
391         <bounds x="100" y="62" width="20" height="10" />
256      <bezel name="lamp0" element="led">
257         <bounds x="34" y="20" width="20" height="20" />
392258      </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>
393263
394      <bezel name="led_3" element="led">
395         <bounds x="150" y="50" width="20" height="10" />
264      <bezel element="panel_1">
265         <bounds x="10" y="44" width="20" height="20" />
396266      </bezel>
397      <bezel element="3" inputtag="O0" inputmask="0x04">
398         <bounds x="150" y="62" width="20" height="10" />
267      <bezel name="lamp1" element="led">
268         <bounds x="10" y="44" width="20" height="20" />
399269      </bezel>
400
401
402      <bezel name="led_4" element="led">
403         <bounds x="50" y="80" width="20" height="10" />
270      <bezel element="button" inputtag="O.0" inputmask="0x02">
271         <bounds x="10" y="44" width="20" height="20" />
272         <color alpha="0.2" />
404273      </bezel>
405      <bezel element="4" inputtag="O1" inputmask="0x01">
406         <bounds x="50" y="92" width="20" height="10" />
274      <bezel element="panel_2">
275         <bounds x="34" y="44" width="20" height="20" />
407276      </bezel>
408
409      <bezel name="led_5" element="led">
410         <bounds x="100" y="80" width="20" height="10" />
277      <bezel name="lamp2" element="led">
278         <bounds x="34" y="44" width="20" height="20" />
411279      </bezel>
412      <bezel element="5" inputtag="O1" inputmask="0x02">
413         <bounds x="100" y="92" width="20" height="10" />
280      <bezel element="button" inputtag="O.0" inputmask="0x08">
281         <bounds x="34" y="44" width="20" height="20" />
282         <color alpha="0.2" />
414283      </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>
415294
416      <bezel name="led_6" element="led">
417         <bounds x="150" y="80" width="20" height="10" />
295      <bezel element="panel_4">
296         <bounds x="10" y="68" width="20" height="20" />
418297      </bezel>
419      <bezel element="6" inputtag="O1" inputmask="0x08">
420         <bounds x="150" y="92" width="20" height="10" />
298      <bezel name="lamp4" element="led">
299         <bounds x="10" y="68" width="20" height="20" />
421300      </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>
422325
423
424      <bezel name="led_7" element="led">
425         <bounds x="50" y="110" width="20" height="10" />
326      <bezel element="panel_7">
327         <bounds x="10" y="92" width="20" height="20" />
426328      </bezel>
427      <bezel element="7" inputtag="O1" inputmask="0x04">
428         <bounds x="50" y="122" width="20" height="10" />
329      <bezel name="lamp7" element="led">
330         <bounds x="10" y="92" width="20" height="20" />
429331      </bezel>
430      <bezel name="led_8" element="led">
431         <bounds x="100" y="110" width="20" height="10" />
332      <bezel element="button" inputtag="O.1" inputmask="0x04">
333         <bounds x="10" y="92" width="20" height="20" />
334         <color alpha="0.2" />
432335      </bezel>
433      <bezel element="8" inputtag="O2" inputmask="0x01">
434         <bounds x="100" y="122" width="20" height="10" />
336      <bezel element="panel_8">
337         <bounds x="34" y="92" width="20" height="20" />
435338      </bezel>
436      <bezel name="led_9" element="led">
437         <bounds x="150" y="110" width="20" height="10" />
339      <bezel name="lamp8" element="led">
340         <bounds x="34" y="92" width="20" height="20" />
438341      </bezel>
439      <bezel element="9" inputtag="O2" inputmask="0x02">
440         <bounds x="150" y="122" width="20" height="10" />
342      <bezel element="button" inputtag="O.2" inputmask="0x01">
343         <bounds x="34" y="92" width="20" height="20" />
344         <color alpha="0.2" />
441345      </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>
442356
443
444      <bezel name="led_10" element="led">
445         <bounds x="100" y="140" width="20" height="10" />
357      <bezel element="panel_10">
358         <bounds x="34" y="116" width="20" height="20" />
446359      </bezel>
447      <bezel element="10" inputtag="O2" inputmask="0x08">
448         <bounds x="100" y="152" width="20" height="10" />
360      <bezel name="lamp10" element="led">
361         <bounds x="34" y="116" width="20" height="20" />
449362      </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>
450367
451368
452      <!-- Other buttons -->
369   <!-- bottom panels -->
453370
454      <bezel element="new_game" inputtag="O3" inputmask="0x08">
455         <bounds x="75" y="170" width="30" height="30" />
371      <bezel element="panel_newgame">
372         <bounds x="21" y="156" width="20" height="20" />
456373      </bezel>
457      <bezel element="same_game" inputtag="O2" inputmask="0x04">
458         <bounds x="125" y="170" width="30" height="30" />
374      <bezel element="button" inputtag="O.3" inputmask="0x08">
375         <bounds x="21" y="156" width="20" height="20" />
376         <color alpha="0.2" />
459377      </bezel>
460378
461      <bezel element="hit_me" inputtag="O3" inputmask="0x04">
462         <bounds x="75" y="210" width="30" height="30" />
379      <bezel element="panel_samegame">
380         <bounds x="47" y="156" width="20" height="20" />
463381      </bezel>
464      <bezel element="comp_turn" inputtag="O3" inputmask="0x02">
465         <bounds x="125" y="210" width="30" height="30" />
382      <bezel element="button" inputtag="O.2" inputmask="0x04">
383         <bounds x="47" y="156" width="20" height="20" />
384         <color alpha="0.2" />
466385      </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
467403   </view>
468404</mamelayout>
trunk/src/mess/layout/simon.lay
r0r241782
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
r241781r241782
300300MACHINE_RESET_MEMBER(at_state,at)
301301{
302302   m_at_spkrdata = 0;
303   m_pit_out2 = 0;
303   m_pit_out2 = 1;
304304   m_dma_channel = -1;
305305   m_cur_eop = false;
306306}
trunk/src/mess/machine/bebox.c
r241781r241782
9393
9494/* Components */
9595#include "video/pc_vga.h"
96#include "bus/pci/cirrus.h"
96#include "bus/lpci/cirrus.h"
9797#include "cpu/powerpc/ppc.h"
9898#include "machine/ins8250.h"
9999#include "machine/upd765.h"
r241781r241782
101101#include "machine/pic8259.h"
102102#include "machine/am9517a.h"
103103#include "machine/ataintf.h"
104#include "bus/pci/pci.h"
104#include "bus/lpci/pci.h"
105105#include "machine/intelfsh.h"
106106#include "machine/53c810.h"
107107#include "machine/ram.h"
trunk/src/mess/machine/genpc.c
r241781r241782
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 = 0;
575   m_pit_out2 = 1;
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
r0r241782
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
r0r241782
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
r0r241782
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
r0r241782
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
r241781r241782
2828const device_type VICTOR9K_KEYBOARD = &device_creator<victor9k_keyboard_device>;
2929
3030
31
3231//-------------------------------------------------
3332//  ROM( victor9k_keyboard )
3433//-------------------------------------------------
r241781r241782
237236//  victor9k_keyboard_device - constructor
238237//-------------------------------------------------
239238
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)
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)
262261{
263262}
264263
r241781r241782
291290
292291
293292//-------------------------------------------------
294//  kbrdy_r -
295//-------------------------------------------------
296
297READ_LINE_MEMBER( victor9k_keyboard_device::kbrdy_r )
298{
299   return m_kbrdy;
300}
301
302
303//-------------------------------------------------
304293//  kback_w -
305294//-------------------------------------------------
306295
307296WRITE_LINE_MEMBER( victor9k_keyboard_device::kback_w )
308297{
298   //logerror("KBACK %u\n", state);
309299   m_kback = state;
310300}
311301
312302
313303//-------------------------------------------------
314//  kbdata_r -
315//-------------------------------------------------
316
317READ_LINE_MEMBER( victor9k_keyboard_device::kbdata_r )
318{
319   return m_kbdata;
320}
321
322
323//-------------------------------------------------
324304//  kb_p1_r -
325305//-------------------------------------------------
326306
r241781r241782
360340      m_y = data & 0x0f;
361341   }
362342
363   logerror("P1 %02x\n", data);
343   //logerror("P1 %02x\n", data);
364344}
365345
366346
r241781r241782
374354
375355       bit     description
376356
377       P20     keylatch enable ?
378       P21
379       P22     key available ?
380       P23     data ?
357       P20     ?
358       P21    KBRDY
359       P22     ?
360       P23     KBDATA
381361
382362   */
383363
384   int kbrdy = BIT(data, 2);
364   int kbrdy = BIT(data, 1);
385365
386366   if (m_kbrdy != kbrdy)
387367   {
r241781r241782
397377      m_kbdata_handler(m_kbdata);
398378   }
399379
400   logerror("P2 %01x\n", data & 0x0f);
380   //logerror("P2 %02x\n", data);
401381}
402382
403383
r241781r241782
407387
408388READ8_MEMBER( victor9k_keyboard_device::kb_t1_r )
409389{
410   logerror("read T1 %u\n", m_kback);
411
412390   return m_kback;
413391}
trunk/src/mess/machine/victor9kb.h
r241781r241782
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 );
5554   DECLARE_WRITE_LINE_MEMBER( kback_w );
56   DECLARE_READ_LINE_MEMBER( kbdata_r );
5755
5856   // not really public
5957   DECLARE_READ8_MEMBER( kb_p1_r );
trunk/src/mess/machine/x820kb.c
r241781r241782
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
1439   TODO:
1540
1641   - repeat
r241781r241782
6388
6489static ADDRESS_MAP_START( xerox_820_keyboard_io, AS_IO, 8, xerox_820_keyboard_t )
6590   AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(kb_p1_r, kb_p1_w)
66   AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READ(kb_p2_r)
91   AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READ(kb_p2_r) AM_WRITENOP
6792   AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(kb_t0_r)
6893   AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T1) AM_READ(kb_t1_r)
6994   AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_WRITE(kb_bus_w)
r241781r241782
75100//-------------------------------------------------
76101
77102static MACHINE_CONFIG_FRAGMENT( xerox_820_keyboard )
78   MCFG_CPU_ADD(I8748_TAG, I8048, 4608000) // ???
103   MCFG_CPU_ADD(I8748_TAG, I8048, XTAL_6MHz)
79104   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))
83105MACHINE_CONFIG_END
84106
85107
r241781r241782
261283   m_kbstb_cb.resolve_safe();
262284}
263285
286void xerox_820_keyboard_t::device_reset_after_children()
287{
288   m_maincpu->set_input_line(MCS48_INPUT_IRQ, ASSERT_LINE);
289}
264290
291
265292//-------------------------------------------------
266293//  kb_p1_r -
267294//-------------------------------------------------
r241781r241782
331358
332359READ8_MEMBER( xerox_820_keyboard_t::kb_t0_r )
333360{
334   return 1; // ???
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;
335370}
336371
337372
r241781r241782
341376
342377READ8_MEMBER( xerox_820_keyboard_t::kb_t1_r )
343378{
344   return 1; // ???
379   return 1; // ??? if 0, toggle P17
345380}
346381
347382
trunk/src/mess/machine/x820kb.h
r241781r241782
1616
1717#include "emu.h"
1818#include "cpu/mcs48/mcs48.h"
19#include "machine/clock.h"
2019
2120
2221
r241781r241782
6160   // device-level overrides
6261   virtual void device_start();
6362   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
r241781r241782
297297
298298// Milton Bradley
299299microvsn  // MicroVision - 1979
300simon
300301
301302// Entex
302303advision  // Adventurevision
r241781r241782
24772478vax785
24782479ms0515
24792480ie15
2481dvk_ksm
24802482asmapro
24812483asma2k
24822484altos5
trunk/src/mess/mess.mak
r241781r241782
425425MACHINES += LDVP931
426426MACHINES += LH5810
427427MACHINES += LINFLASH
428#MACHINES += LPCI
428429MACHINES += LSI53C810
429430MACHINES += M68307
430431MACHINES += M68340
r241781r241782
478479MACHINES += PC_LPT
479480MACHINES += PCCARD
480481MACHINES += PCF8593
481#MACHINES += PCI
482482MACHINES += PCKEYBRD
483483MACHINES += PIC8259
484484MACHINES += PIT8253
r241781r241782
599599BUSES += ISA
600600BUSES += ISBX
601601BUSES += KC
602BUSES += LPCI
602603BUSES += MACPDS
603604BUSES += MIDI
604605BUSES += MEGADRIVE
r241781r241782
609610BUSES += O2
610611BUSES += ORICEXT
611612BUSES += PCE
612BUSES += PCI
613613BUSES += PC_JOY
614614BUSES += PC_KBD
615615BUSES += PET
r241781r241782
901901   $(MAME_MACHINE)/naomim2.o   \
902902   $(MAME_MACHINE)/naomim4.o   \
903903   $(MAME_MACHINE)/naomirom.o  \
904   $(MAME_MACHINE)/315-5881_crypt.o  \
904905   $(MAME_VIDEO)/powervr2.o    \
905906   $(MAME_DRIVERS)/neogeo.o    \
906907   $(MAME_MACHINE)/neoboot.o   \
r241781r241782
959960   $(MESS_DRIVERS)/apricotf.o  \
960961   $(MESS_DRIVERS)/apricotp.o  \
961962   $(MESS_MACHINE)/apricotkb.o \
962   $(MESS_DRIVERS)/victor9k.o $(MESS_MACHINE)/victor9kb.o \
963   $(MESS_DRIVERS)/victor9k.o $(MESS_MACHINE)/victor9kb.o $(MESS_MACHINE)/victor9k_fdc.o \
963964
964965$(MESSOBJ)/adc.a:               \
965966   $(MESS_DRIVERS)/super6.o    \
r241781r241782
11791180
11801181$(MESSOBJ)/elektrka.a:          \
11811182   $(MESS_DRIVERS)/bk.o $(MESS_MACHINE)/bk.o $(MESS_VIDEO)/bk.o \
1183   $(MESS_DRIVERS)/dvk_ksm.o $(MESS_MACHINE)/ms7004.o \
11821184   $(MESS_DRIVERS)/mk85.o      \
11831185   $(MESS_DRIVERS)/mk90.o      \
11841186
r241781r241782
13511353
13521354$(MESSOBJ)/mb.a:                \
13531355   $(MESS_DRIVERS)/microvsn.o  \
1356   $(MESS_DRIVERS)/simon.o     \
13541357
13551358$(MESSOBJ)/mchester.a:          \
13561359   $(MESS_DRIVERS)/ssem.o      \
r241781r241782
21222125$(MESS_DRIVERS)/sdk85.o:    $(MESS_LAYOUT)/sdk85.lh
21232126$(MESS_DRIVERS)/sdk86.o:    $(MESS_LAYOUT)/sdk86.lh
21242127$(MESS_DRIVERS)/selz80.o:   $(MESS_LAYOUT)/selz80.lh
2128$(MESS_DRIVERS)/simon.o:    $(MESS_LAYOUT)/simon.lh
21252129$(MESS_DRIVERS)/sitcom.o:   $(MESS_LAYOUT)/sitcom.lh
21262130$(MESS_DRIVERS)/slc1.o:     $(MESS_LAYOUT)/slc1.lh
21272131$(MESS_DRIVERS)/sms.o:      $(MESS_LAYOUT)/sms1.lh
trunk/src/mess/tools/castool/main.c
r241781r241782
2020#include "corestr.h"
2121
2222#include "formats/a26_cas.h"
23#include "formats/ace_tap.h"
24#include "formats/adam_cas.h"
2325#include "formats/apf_apt.h"
2426#include "formats/cbm_tap.h"
2527#include "formats/cgen_cas.h"
2628#include "formats/coco_cas.h"
2729#include "formats/csw_cas.h"
30#include "formats/fm7_cas.h"
2831#include "formats/fmsx_cas.h"
2932#include "formats/gtp_cas.h"
3033#include "formats/hect_tap.h"
31#include "formats/ace_tap.h"
32#include "formats/adam_cas.h"
3334#include "formats/kc_cas.h"
3435#include "formats/kim1_cas.h"
3536#include "formats/lviv_lvt.h"
3637#include "formats/mz_cas.h"
3738#include "formats/orao_cas.h"
3839#include "formats/oric_tap.h"
40#include "formats/p6001_cas.h"
41#include "formats/phc25_cas.h"
3942#include "formats/pmd_cas.h"
4043#include "formats/primoptp.h"
4144#include "formats/rk_cas.h"
4245#include "formats/sc3000_bit.h"
46#include "formats/sol_cas.h"
47#include "formats/sorc_cas.h"
4348#include "formats/sord_cas.h"
49#include "formats/spc1000_cas.h"
4450#include "formats/svi_cas.h"
4551#include "formats/thom_cas.h"
4652#include "formats/trs_cas.h"
r241781r241782
5056#include "formats/vg5k_cas.h"
5157#include "formats/vt_cas.h"
5258#include "formats/x07_cas.h"
59#include "formats/x1_tap.h"
5360#include "formats/zx81_p.h"
5461
5562struct SupportedCassetteFormats
r241781r241782
6067};
6168
6269const struct SupportedCassetteFormats formats[] = {
63   {"a26", a26_cassette_formats               ,"Atari 2600"},
64   {"ddp", coleco_adam_cassette_formats       ,"Coleco Adam"},
70   {"a26", a26_cassette_formats               ,"Atari 2600 SuperCharger"},
6571   {"apf", apf_cassette_formats               ,"APF Imagination Machine"},
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"},
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"},
6977   {"csw", csw_cassette_formats               ,"Compressed Square Wave"},
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"},
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"},
7584   {"kc85", kc_cassette_formats               ,"VEB Mikroelektronik KC 85"},
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"},
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"},
8395   {"rku", rku_cassette_formats               ,"UT-88"},
8496   {"rk8", rk8_cassette_formats               ,"Mikro-80"},
8597   {"rks", rks_cassette_formats               ,"Specialist"},
8698   {"rko", rko_cassette_formats               ,"Orion"},
8799   {"rkr", rkr_cassette_formats               ,"Radio-86RK"},
88   {"rka", rka_cassette_formats               ,"Apogee"},
100   {"rka", rka_cassette_formats               ,"Zavod BRA Apogee BK-01"},
89101   {"rkm", rkm_cassette_formats               ,"Mikrosha"},
90   {"rkp", rkp_cassette_formats               ,"Partner"},
102   {"rkp", rkp_cassette_formats               ,"SAM SKB VM Partner-01.01"},
91103   {"sc3000", sc3000_cassette_formats         ,"Sega SC-3000"},
104   {"sol20", sol20_cassette_formats           ,"PTC SOL-20"},
105   {"sorcerer", sorcerer_cassette_formats     ,"Exidy Sorcerer"},
92106   {"sordm5", sordm5_cassette_formats         ,"Sord M5"},
93   {"svi", svi_cassette_formats               ,"SVI"},
94   {"to7", to7_cassette_formats               ,"Thomson TO"},
95   {"mo5", mo5_cassette_formats               ,"Thomson MO"},
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"},
96110   {"trs80l2", trs80l2_cassette_formats       ,"TRS-80 Level 2"},
97111   {"tvc64", tvc64_cassette_formats           ,"Videoton TVC 64"},
98   {"tzx", tzx_cassette_formats               ,"ZX Spectrum"},
99   {"cdt", cdt_cassette_formats               ,"Amstrad CPC"},
112   {"tzx", tzx_cassette_formats               ,"Sinclair ZX Spectrum"},
100113   {"uef", uef_cassette_formats               ,"Acorn Electron"},
101   {"vg5k", vg5k_cassette_formats             ,"VG 5000 k7"},
114   {"vg5k", vg5k_cassette_formats             ,"Philips VG 5000"},
102115   {"vtech1", vtech1_cassette_formats         ,"Video Technology Laser 110-310"},
103116   {"vtech2", vtech2_cassette_formats         ,"Video Technology Laser 350-700"},
104117   {"x07", x07_cassette_formats               ,"Canon X-07"},
118   {"x1", x1_cassette_formats                 ,"Sharp X1"},
119   {"zx80_o", zx80_o_format                   ,"Sinclair ZX80"},
105120   {"zx81_p", zx81_p_format                   ,"Sinclair ZX81"},
106   {"zx80_o", zx80_o_format                   ,"Sinclair ZX80"},
121
122
123   
107124   {NULL,NULL,NULL}
108125};
109126
trunk/src/osd/sdl/sdl.mak
r241781r241782
8383OSDSRC = $(SRC)/osd
8484OSDOBJ = $(OBJ)/osd
8585
86# default to SDL2 for non-OS/2 builds now
86# default to SDL2 for non-OS/2, non-Emscripten builds now
8787ifndef SDL_LIBVER
8888ifneq ($(TARGETOS),os2)
89ifneq ($(TARGETOS),emscripten)
8990SDL_LIBVER = sdl2
9091else
9192SDL_LIBVER = sdl
9293endif
94else
95SDL_LIBVER = sdl
9396endif
97endif
9498
9599ifndef NO_USE_QTDEBUG
96100OBJDIRS += $(OSDOBJ)/modules/debugger/qt
r241781r241782
258262NO_USE_XINPUT = 1
259263NO_USE_MIDI = 1
260264NO_USE_QTDEBUG = 1
265DONT_USE_NETWORK = 1
261266endif
262267
263268ifeq ($(TARGETOS),macosx)
r241781r241782
779784LIBS += -lpcap
780785endif
781786endif
787else
788OSDOBJS += $(SDLOBJ)/netdev.o
782789endif
783790
784791#-------------------------------------------------


Previous 199869 Revisions Next


© 1997-2024 The MAME Team