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* |
[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] | |
[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 |
r241781 | r241782 | |
---|---|---|
1 | 1 | What is MAME? |
2 | 2 | ============= |
3 | 3 | |
4 | MAME stands for Multiple Arcade Machine Emulator. | |
4 | MAME stands for Multiple Arcade Machine Emulator. | |
5 | 5 | |
6 | The 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 | ||
8 | 6 | MAME'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)? |
r0 | r241782 | |
---|---|---|
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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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> |
r241781 | r241782 | |
---|---|---|
3 | 3 | <softwarelist name="compclr2_flop" description="Compucolor II Disk Images"> |
4 | 4 | |
5 | 5 | <software name="asndware"> |
6 | <description> | |
6 | <description>Action Soundware</description> | |
7 | 7 | <year>19??</year> |
8 | 8 | <publisher><unknown></publisher> |
9 | 9 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
14 | 14 | </software> |
15 | 15 | |
16 | 16 | <software name="agilis"> |
17 | <description> | |
17 | <description>Agilis</description> | |
18 | 18 | <year>19??</year> |
19 | 19 | <publisher><unknown></publisher> |
20 | 20 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
25 | 25 | </software> |
26 | 26 | |
27 | 27 | <software name="airraid"> |
28 | <description> | |
28 | <description>Air Raid</description> | |
29 | 29 | <year>19??</year> |
30 | 30 | <publisher><unknown></publisher> |
31 | 31 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
36 | 36 | </software> |
37 | 37 | |
38 | 38 | <software name="alieninv"> |
39 | <description> | |
39 | <description>Alien Invasion (v1.4)</description> | |
40 | 40 | <year>19??</year> |
41 | 41 | <publisher><unknown></publisher> |
42 | 42 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
46 | 46 | </part> |
47 | 47 | </software> |
48 | 48 | |
49 | <software name="altronic"> | |
50 | <description>alltronics</description> | |
49 | <software name="alieninva" cloneof="alieninv"> | |
50 | <description>Alien Invasion (v1.4, Alt)</description> | |
51 | 51 | <year>19??</year> |
52 | 52 | <publisher><unknown></publisher> |
53 | 53 | <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" /> | |
56 | 56 | </dataarea> |
57 | 57 | </part> |
58 | 58 | </software> |
59 | 59 | |
60 | <software name="analiz"> | |
61 | <description>analiz_watals</description> | |
60 | <software name="altronic"> | |
61 | <description>Alltronics</description> | |
62 | 62 | <year>19??</year> |
63 | 63 | <publisher><unknown></publisher> |
64 | 64 | <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"/> | |
67 | 67 | </dataarea> |
68 | 68 | </part> |
69 | 69 | </software> |
70 | 70 | |
71 | <software name="arcdsoft"> | |
72 | <description>arcade_softwares</description> | |
71 | <software name="arcadegm"> | |
72 | <description>Arcade Games</description> | |
73 | 73 | <year>19??</year> |
74 | 74 | <publisher><unknown></publisher> |
75 | 75 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
80 | 80 | </software> |
81 | 81 | |
82 | 82 | <software name="asmutlma"> |
83 | <description> | |
83 | <description>ASM Utilities - Macros</description> | |
84 | 84 | <year>19??</year> |
85 | 85 | <publisher><unknown></publisher> |
86 | 86 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
91 | 91 | </software> |
92 | 92 | |
93 | 93 | <software name="asmutil3"> |
94 | <description> | |
94 | <description>ASM Utilities - 3</description> | |
95 | 95 | <year>19??</year> |
96 | 96 | <publisher><unknown></publisher> |
97 | 97 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
102 | 102 | </software> |
103 | 103 | |
104 | 104 | <software name="asmutil4"> |
105 | <description> | |
105 | <description>ASM Utilities - 4</description> | |
106 | 106 | <year>19??</year> |
107 | 107 | <publisher><unknown></publisher> |
108 | 108 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
119 | 119 | </software> |
120 | 120 | |
121 | 121 | <software name="asmutilr"> |
122 | <description> | |
122 | <description>ASM Utilities - Routines</description> | |
123 | 123 | <year>19??</year> |
124 | 124 | <publisher><unknown></publisher> |
125 | 125 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
135 | 135 | </part> |
136 | 136 | </software> |
137 | 137 | |
138 | <software name="asmtut"> | |
139 | <description>asmtut_disk1</description> | |
138 | <software name="asmtutor"> | |
139 | <description>ASM Tutorial</description> | |
140 | 140 | <year>19??</year> |
141 | 141 | <publisher><unknown></publisher> |
142 | 142 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
171 | 171 | </software> |
172 | 172 | |
173 | 173 | <software name="asteroid"> |
174 | <description> | |
174 | <description>Asteroids</description> | |
175 | 175 | <year>19??</year> |
176 | 176 | <publisher><unknown></publisher> |
177 | 177 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
181 | 181 | </part> |
182 | 182 | |
183 | 183 | <part name="flop2" interface="floppy_5_25"> |
184 | <info name="part_id" value="Source"/> | |
184 | 185 | <dataarea name="flop" size="162886"> |
185 | 186 | <rom name="asteriods_source.ccvf" size="162886" crc="14af4de7" sha1="43a76ffda8b4e2f5513c8cd9ac6390ab15854280" offset="0"/> |
186 | 187 | </dataarea> |
187 | 188 | </part> |
188 | 189 | </software> |
190 | ||
191 | <software name="asteroida" cloneof="asteroid"> | |
192 | <description>Asteroids (Alt)</description> | |
193 | <year>19??</year> | |
194 | <publisher><unknown></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> | |
189 | 200 | |
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 | ||
190 | 209 | <software name="ay8910"> |
191 | <description> | |
210 | <description>AY-3-8910 Programs</description> | |
192 | 211 | <year>19??</year> |
193 | 212 | <publisher><unknown></publisher> |
194 | 213 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
199 | 218 | </software> |
200 | 219 | |
201 | 220 | <software name="backgamn"> |
202 | <description> | |
221 | <description>Backgammon</description> | |
203 | 222 | <year>19??</year> |
204 | 223 | <publisher><unknown></publisher> |
205 | 224 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
209 | 228 | </part> |
210 | 229 | |
211 | 230 | <part name="flop2" interface="floppy_5_25"> |
231 | <info name="part_id" value="Source"/> | |
212 | 232 | <dataarea name="flop" size="162832"> |
213 | 233 | <rom name="backgammon-sideb.ccvf" size="162832" crc="7f9aca0c" sha1="a6b588e075c17f5d1ff10675de88f3c51a4ca35e" offset="0"/> |
214 | 234 | </dataarea> |
r241781 | r241782 | |
216 | 236 | </software> |
217 | 237 | |
218 | 238 | <software name="basiccmp"> |
219 | <description> | |
239 | <description>BASIC Compiler v12.25</description> | |
220 | 240 | <year>19??</year> |
221 | 241 | <publisher><unknown></publisher> |
222 | 242 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
227 | 247 | </software> |
228 | 248 | |
229 | 249 | <software name="basiclng"> |
230 | <description> | |
250 | <description>BASIC Language</description> | |
231 | 251 | <year>19??</year> |
232 | 252 | <publisher><unknown></publisher> |
233 | 253 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
250 | 270 | </software> |
251 | 271 | |
252 | 272 | <software name="basicles"> |
253 | <description> | |
273 | <description>BASIC Lessons</description> | |
254 | 274 | <year>19??</year> |
255 | 275 | <publisher><unknown></publisher> |
256 | 276 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
260 | 280 | </part> |
261 | 281 | </software> |
262 | 282 | |
283 | <software name="basiclesa" cloneof="basicles"> | |
284 | <description>BASIC Lessons (Alt)</description> | |
285 | <year>19??</year> | |
286 | <publisher><unknown></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 | ||
263 | 294 | <software name="basicutl"> |
264 | <description> | |
295 | <description>BASIC Utilities</description> | |
265 | 296 | <year>19??</year> |
266 | 297 | <publisher><unknown></publisher> |
267 | 298 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
271 | 302 | </part> |
272 | 303 | </software> |
273 | 304 | |
274 | <software name="bttlship"> | |
275 | <description>battleship</description> | |
305 | <software name="bship"> | |
306 | <description>Battleship</description> | |
276 | 307 | <year>19??</year> |
277 | 308 | <publisher><unknown></publisher> |
278 | 309 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
282 | 313 | </part> |
283 | 314 | </software> |
284 | 315 | |
285 | <software name="bertsbar"> | |
286 | <description>berts_bar</description> | |
316 | <software name="bshipa" cloneof="bship"> | |
317 | <description>Battleship (Alt)</description> | |
287 | 318 | <year>19??</year> |
288 | 319 | <publisher><unknown></publisher> |
289 | 320 | <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" /> | |
292 | 323 | </dataarea> |
293 | 324 | </part> |
294 | 325 | </software> |
295 | 326 | |
296 | <software name="bitmaps"> | |
297 | <description>bitmaps</description> | |
327 | <software name="bertsbar"> | |
328 | <description>Bert's Bar</description> | |
298 | 329 | <year>19??</year> |
299 | 330 | <publisher><unknown></publisher> |
300 | 331 | <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"/> | |
303 | 334 | </dataarea> |
304 | 335 | </part> |
305 | 336 | </software> |
306 | 337 | |
307 | 338 | <software name="blackjak"> |
308 | <description> | |
339 | <description>Blackjack</description> | |
309 | 340 | <year>19??</year> |
310 | 341 | <publisher><unknown></publisher> |
311 | 342 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
316 | 347 | </software> |
317 | 348 | |
318 | 349 | <software name="blank"> |
319 | <description> | |
350 | <description>Blank</description> | |
320 | 351 | <year>19??</year> |
321 | 352 | <publisher><unknown></publisher> |
322 | 353 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
326 | 357 | </part> |
327 | 358 | </software> |
328 | 359 | |
329 | <software name="brdsofts"> | |
330 | <description>board_softwares</description> | |
360 | <software name="blanka" cloneof="blank"> | |
361 | <description>Blank (Alt)</description> | |
331 | 362 | <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> | |
332 | 374 | <publisher><unknown></publisher> |
333 | 375 | <part name="flop1" interface="floppy_5_25"> |
334 | 376 | <dataarea name="flop" size="162822"> |
r241781 | r241782 | |
338 | 380 | </software> |
339 | 381 | |
340 | 382 | <software name="bondsec"> |
341 | <description> | |
383 | <description>Bonds And Securities</description> | |
342 | 384 | <year>19??</year> |
343 | 385 | <publisher><unknown></publisher> |
344 | 386 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
348 | 390 | </part> |
349 | 391 | </software> |
350 | 392 | |
351 | <software name="bnceball"> | |
352 | <description>bounce_ball</description> | |
393 | <software name="bounce"> | |
394 | <description>Bounce Ball</description> | |
353 | 395 | <year>19??</year> |
354 | 396 | <publisher><unknown></publisher> |
355 | 397 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
359 | 401 | </part> |
360 | 402 | </software> |
361 | 403 | |
404 | <software name="cards"> | |
405 | <description>Cards</description> | |
406 | <year>19??</year> | |
407 | <publisher><unknown></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 | ||
362 | 415 | <software name="catalg32"> |
363 | <description> | |
416 | <description>Catalog 32k</description> | |
364 | 417 | <year>19??</year> |
365 | 418 | <publisher><unknown></publisher> |
366 | 419 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
370 | 423 | </part> |
371 | 424 | </software> |
372 | 425 | |
426 | <software name="bitmaps"> | |
427 | <description>Character Bitmaps</description> | |
428 | <year>19??</year> | |
429 | <publisher><unknown></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 | ||
373 | 437 | <software name="ccug14b"> |
374 | <description> | |
438 | <description>Canadian Compucolor Users Disk #14B</description> | |
375 | 439 | <year>19??</year> |
376 | 440 | <publisher><unknown></publisher> |
377 | 441 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
382 | 446 | </software> |
383 | 447 | |
384 | 448 | <software name="chess"> |
385 | <description> | |
449 | <description>Chess</description> | |
386 | 450 | <year>19??</year> |
387 | 451 | <publisher><unknown></publisher> |
388 | 452 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
392 | 456 | </part> |
393 | 457 | </software> |
394 | 458 | |
395 | <software name="chip1"> | |
396 | <description>chip_1</description> | |
459 | <software name="chip001"> | |
460 | <description>Chip #1</description> | |
397 | 461 | <year>19??</year> |
398 | 462 | <publisher><unknown></publisher> |
399 | 463 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
403 | 467 | </part> |
404 | 468 | </software> |
405 | 469 | |
406 | <software name="chip10"> | |
407 | <description>chip_10</description> | |
470 | <software name="chip008"> | |
471 | <description>Chip #8</description> | |
408 | 472 | <year>19??</year> |
409 | 473 | <publisher><unknown></publisher> |
410 | 474 | <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"/> | |
413 | 477 | </dataarea> |
414 | 478 | </part> |
415 | 479 | </software> |
416 | 480 | |
417 | <software name="chip106"> | |
418 | <description>chip_106</description> | |
481 | <software name="chip009"> | |
482 | <description>Chip #9</description> | |
419 | 483 | <year>19??</year> |
420 | 484 | <publisher><unknown></publisher> |
421 | 485 | <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"/> | |
424 | 488 | </dataarea> |
425 | 489 | </part> |
426 | 490 | </software> |
427 | 491 | |
428 | <software name="chip107"> | |
429 | <description>chip_107</description> | |
492 | <software name="chip010"> | |
493 | <description>Chip #10</description> | |
430 | 494 | <year>19??</year> |
431 | 495 | <publisher><unknown></publisher> |
432 | 496 | <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"/> | |
435 | 499 | </dataarea> |
436 | 500 | </part> |
437 | 501 | </software> |
438 | 502 | |
439 | <software name="chip108"> | |
440 | <description>chip_108</description> | |
503 | <software name="chip012"> | |
504 | <description>Chip #12</description> | |
441 | 505 | <year>19??</year> |
442 | 506 | <publisher><unknown></publisher> |
443 | 507 | <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"/> | |
446 | 510 | </dataarea> |
447 | 511 | </part> |
448 | 512 | </software> |
449 | 513 | |
450 | <software name="chip110"> | |
451 | <description>chip_110</description> | |
514 | <software name="chip013"> | |
515 | <description>Chip #13</description> | |
452 | 516 | <year>19??</year> |
453 | 517 | <publisher><unknown></publisher> |
454 | 518 | <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"/> | |
457 | 521 | </dataarea> |
458 | 522 | </part> |
459 | 523 | </software> |
460 | 524 | |
461 | <software name="chip114"> | |
462 | <description>chip_114</description> | |
525 | <software name="chip015"> | |
526 | <description>Chip #15</description> | |
463 | 527 | <year>19??</year> |
464 | 528 | <publisher><unknown></publisher> |
465 | 529 | <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"/> | |
468 | 532 | </dataarea> |
469 | 533 | </part> |
470 | 534 | </software> |
471 | 535 | |
472 | <software name="chip117"> | |
473 | <description>chip_117</description> | |
536 | <software name="chip016"> | |
537 | <description>Chip #16</description> | |
474 | 538 | <year>19??</year> |
475 | 539 | <publisher><unknown></publisher> |
476 | 540 | <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"/> | |
479 | 543 | </dataarea> |
480 | 544 | </part> |
481 | 545 | </software> |
482 | 546 | |
483 | <software name="chip119"> | |
484 | <description>chip_119</description> | |
547 | <software name="chip017"> | |
548 | <description>Chip #17</description> | |
485 | 549 | <year>19??</year> |
486 | 550 | <publisher><unknown></publisher> |
487 | 551 | <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"/> | |
490 | 554 | </dataarea> |
491 | 555 | </part> |
492 | 556 | </software> |
493 | 557 | |
494 | <software name="chip12"> | |
495 | <description>chip_12</description> | |
558 | <software name="chip021"> | |
559 | <description>Chip #21</description> | |
496 | 560 | <year>19??</year> |
497 | 561 | <publisher><unknown></publisher> |
498 | 562 | <part name="flop1" interface="floppy_5_25"> |
499 | 563 | <dataarea name="flop" size="162814"> |
500 | <rom name="chip_ | |
564 | <rom name="chip_21.ccvf" size="162814" crc="a74d454f" sha1="64590210d9ac2d259ee2fe6c543236c000aa48fe" offset="0"/> | |
501 | 565 | </dataarea> |
502 | 566 | </part> |
503 | 567 | </software> |
504 | 568 | |
505 | <software name="chip120"> | |
506 | <description>chip_120</description> | |
569 | <software name="chip022"> | |
570 | <description>Chip #22</description> | |
507 | 571 | <year>19??</year> |
508 | 572 | <publisher><unknown></publisher> |
509 | 573 | <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"/> | |
512 | 576 | </dataarea> |
513 | 577 | </part> |
514 | 578 | </software> |
515 | 579 | |
516 | <software name="chip121"> | |
517 | <description>chip_121</description> | |
580 | <software name="chip023"> | |
581 | <description>Chip #23</description> | |
518 | 582 | <year>19??</year> |
519 | 583 | <publisher><unknown></publisher> |
520 | 584 | <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"/> | |
523 | 587 | </dataarea> |
524 | 588 | </part> |
525 | 589 | </software> |
526 | 590 | |
527 | <software name="chip_125"> | |
528 | <description>chip_125</description> | |
591 | <software name="chip024"> | |
592 | <description>Chip #24</description> | |
529 | 593 | <year>19??</year> |
530 | 594 | <publisher><unknown></publisher> |
531 | 595 | <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"/> | |
534 | 598 | </dataarea> |
535 | 599 | </part> |
600 | </software> | |
536 | 601 | |
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><unknown></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"/> | |
540 | 609 | </dataarea> |
541 | 610 | </part> |
542 | 611 | </software> |
543 | 612 | |
544 | <software name="chip128"> | |
545 | <description>chip_128</description> | |
613 | <software name="chip027"> | |
614 | <description>Chip #27</description> | |
546 | 615 | <year>19??</year> |
547 | 616 | <publisher><unknown></publisher> |
548 | 617 | <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"/> | |
551 | 620 | </dataarea> |
552 | 621 | </part> |
553 | 622 | </software> |
554 | 623 | |
555 | <software name="chip129"> | |
556 | <description>chip_129</description> | |
624 | <software name="chip033"> | |
625 | <description>Chip #33</description> | |
557 | 626 | <year>19??</year> |
558 | 627 | <publisher><unknown></publisher> |
559 | 628 | <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"/> | |
562 | 631 | </dataarea> |
563 | 632 | </part> |
564 | 633 | </software> |
565 | 634 | |
566 | <software name="chip13"> | |
567 | <description>chip_13</description> | |
635 | <software name="chip036"> | |
636 | <description>Chip #36</description> | |
568 | 637 | <year>19??</year> |
569 | 638 | <publisher><unknown></publisher> |
570 | 639 | <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"/> | |
573 | 642 | </dataarea> |
574 | 643 | </part> |
575 | 644 | </software> |
576 | 645 | |
577 | <software name="chip_138"> | |
578 | <description>chip_138</description> | |
646 | <software name="chip039"> | |
647 | <description>Chip #39</description> | |
579 | 648 | <year>19??</year> |
580 | 649 | <publisher><unknown></publisher> |
581 | 650 | <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"/> | |
584 | 653 | </dataarea> |
585 | 654 | </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> | |
592 | 655 | </software> |
593 | 656 | |
594 | <software name="chip15"> | |
595 | <description>chip_15</description> | |
657 | <software name="chip046"> | |
658 | <description>Chip #46</description> | |
596 | 659 | <year>19??</year> |
597 | 660 | <publisher><unknown></publisher> |
598 | 661 | <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"/> | |
601 | 664 | </dataarea> |
602 | 665 | </part> |
603 | 666 | </software> |
604 | 667 | |
605 | <software name="chip16"> | |
606 | <description>chip_16</description> | |
668 | <software name="chip053"> | |
669 | <description>Chip #53</description> | |
607 | 670 | <year>19??</year> |
608 | 671 | <publisher><unknown></publisher> |
609 | 672 | <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"/> | |
612 | 675 | </dataarea> |
613 | 676 | </part> |
614 | 677 | </software> |
615 | 678 | |
616 | <software name="chip17"> | |
617 | <description>chip_17</description> | |
679 | <software name="chip057"> | |
680 | <description>Chip #57</description> | |
618 | 681 | <year>19??</year> |
619 | 682 | <publisher><unknown></publisher> |
620 | 683 | <part name="flop1" interface="floppy_5_25"> |
621 | 684 | <dataarea name="flop" size="162814"> |
622 | <rom name="chip_ | |
685 | <rom name="chip_57.ccvf" size="162814" crc="beae7ee3" sha1="4f8fb7503f9944bd509482e318aed4d2530e4675" offset="0"/> | |
623 | 686 | </dataarea> |
624 | 687 | </part> |
625 | 688 | </software> |
626 | 689 | |
627 | <software name="chip21"> | |
628 | <description>chip_21</description> | |
690 | <software name="chip061"> | |
691 | <description>Chip #61</description> | |
629 | 692 | <year>19??</year> |
630 | 693 | <publisher><unknown></publisher> |
631 | 694 | <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"/> | |
634 | 697 | </dataarea> |
635 | 698 | </part> |
636 | 699 | </software> |
637 | 700 | |
638 | <software name="chip22"> | |
639 | <description>chip_22</description> | |
701 | <software name="chip062"> | |
702 | <description>Chip #62</description> | |
640 | 703 | <year>19??</year> |
641 | 704 | <publisher><unknown></publisher> |
642 | 705 | <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"/> | |
645 | 708 | </dataarea> |
646 | 709 | </part> |
647 | 710 | </software> |
648 | 711 | |
649 | <software name="chip23"> | |
650 | <description>chip_23</description> | |
712 | <software name="chip063"> | |
713 | <description>Chip #63</description> | |
651 | 714 | <year>19??</year> |
652 | 715 | <publisher><unknown></publisher> |
653 | 716 | <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"/> | |
656 | 719 | </dataarea> |
657 | 720 | </part> |
658 | 721 | </software> |
659 | 722 | |
660 | <software name="chip24"> | |
661 | <description>chip_24</description> | |
723 | <software name="chip064"> | |
724 | <description>Chip #64</description> | |
662 | 725 | <year>19??</year> |
663 | 726 | <publisher><unknown></publisher> |
664 | 727 | <part name="flop1" interface="floppy_5_25"> |
665 | 728 | <dataarea name="flop" size="162838"> |
666 | <rom name="chip_ | |
729 | <rom name="chip_64.ccvf" size="162838" crc="a9a140c7" sha1="19f4a3c7d26cd63bf2eac36864a2294973a43b27" offset="0"/> | |
667 | 730 | </dataarea> |
668 | 731 | </part> |
669 | 732 | </software> |
670 | 733 | |
671 | <software name="chip25"> | |
672 | <description>chip_25</description> | |
734 | <software name="chip075"> | |
735 | <description>Chip #75</description> | |
673 | 736 | <year>19??</year> |
674 | 737 | <publisher><unknown></publisher> |
675 | 738 | <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"/> | |
678 | 741 | </dataarea> |
679 | 742 | </part> |
680 | 743 | </software> |
681 | 744 | |
682 | <software name="chip27"> | |
683 | <description>chip_27</description> | |
745 | <software name="chip077"> | |
746 | <description>Chip #77</description> | |
684 | 747 | <year>19??</year> |
685 | 748 | <publisher><unknown></publisher> |
686 | 749 | <part name="flop1" interface="floppy_5_25"> |
687 | 750 | <dataarea name="flop" size="162832"> |
688 | <rom name="chip_ | |
751 | <rom name="chip_77.ccvf" size="162832" crc="afe57afb" sha1="acbc5b1c5173f9dc08945349ed6f378e06554d1c" offset="0"/> | |
689 | 752 | </dataarea> |
690 | 753 | </part> |
691 | 754 | </software> |
692 | 755 | |
693 | <software name="chip33"> | |
694 | <description>chip_33</description> | |
756 | <software name="chip078"> | |
757 | <description>Chip #78</description> | |
695 | 758 | <year>19??</year> |
696 | 759 | <publisher><unknown></publisher> |
697 | 760 | <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"/> | |
700 | 763 | </dataarea> |
701 | 764 | </part> |
702 | 765 | </software> |
703 | 766 | |
704 | <software name="chip36"> | |
705 | <description>chip_36</description> | |
767 | <software name="chip079"> | |
768 | <description>Chip #79</description> | |
706 | 769 | <year>19??</year> |
707 | 770 | <publisher><unknown></publisher> |
708 | 771 | <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"/> | |
711 | 774 | </dataarea> |
712 | 775 | </part> |
713 | 776 | </software> |
714 | 777 | |
715 | <software name="chip39"> | |
716 | <description>chip_39</description> | |
778 | <software name="chip081"> | |
779 | <description>Chip #81</description> | |
717 | 780 | <year>19??</year> |
718 | 781 | <publisher><unknown></publisher> |
719 | 782 | <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"/> | |
722 | 785 | </dataarea> |
723 | 786 | </part> |
724 | 787 | </software> |
725 | 788 | |
726 | <software name="chip46"> | |
727 | <description>chip_46</description> | |
789 | <software name="chip083"> | |
790 | <description>Chip #83</description> | |
728 | 791 | <year>19??</year> |
729 | 792 | <publisher><unknown></publisher> |
730 | 793 | <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"/> | |
733 | 796 | </dataarea> |
734 | 797 | </part> |
735 | 798 | </software> |
736 | 799 | |
737 | <software name="chip53"> | |
738 | <description>chip_53</description> | |
800 | <software name="chip084"> | |
801 | <description>Chip #84</description> | |
739 | 802 | <year>19??</year> |
740 | 803 | <publisher><unknown></publisher> |
741 | 804 | <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"/> | |
744 | 807 | </dataarea> |
745 | 808 | </part> |
746 | 809 | </software> |
747 | 810 | |
748 | <software name="chip57"> | |
749 | <description>chip_57</description> | |
811 | <software name="chip085"> | |
812 | <description>Chip #85</description> | |
750 | 813 | <year>19??</year> |
751 | 814 | <publisher><unknown></publisher> |
752 | 815 | <part name="flop1" interface="floppy_5_25"> |
753 | 816 | <dataarea name="flop" size="162814"> |
754 | <rom name="chip_5 | |
817 | <rom name="chip_85.ccvf" size="162814" crc="23550551" sha1="ff6d9738e142da6ac22cbbce90151f80de029663" offset="0"/> | |
755 | 818 | </dataarea> |
756 | 819 | </part> |
757 | 820 | </software> |
758 | 821 | |
759 | <software name="chip61"> | |
760 | <description>chip_61</description> | |
822 | <software name="chip090"> | |
823 | <description>Chip #90</description> | |
761 | 824 | <year>19??</year> |
762 | 825 | <publisher><unknown></publisher> |
763 | 826 | <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"/> | |
766 | 829 | </dataarea> |
767 | 830 | </part> |
768 | 831 | </software> |
769 | 832 | |
770 | <software name="chip62"> | |
771 | <description>chip_62</description> | |
833 | <software name="chip091"> | |
834 | <description>Chip #91</description> | |
772 | 835 | <year>19??</year> |
773 | 836 | <publisher><unknown></publisher> |
774 | 837 | <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"/> | |
777 | 840 | </dataarea> |
778 | 841 | </part> |
779 | 842 | </software> |
780 | 843 | |
781 | <software name="chip63"> | |
782 | <description>chip_63</description> | |
844 | <software name="chip092"> | |
845 | <description>Chip #92</description> | |
783 | 846 | <year>19??</year> |
784 | 847 | <publisher><unknown></publisher> |
785 | 848 | <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"/> | |
788 | 851 | </dataarea> |
789 | 852 | </part> |
790 | 853 | </software> |
791 | 854 | |
792 | <software name="chip64"> | |
793 | <description>chip_64</description> | |
855 | <software name="chip106"> | |
856 | <description>Chip #106</description> | |
794 | 857 | <year>19??</year> |
795 | 858 | <publisher><unknown></publisher> |
796 | 859 | <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"/> | |
799 | 862 | </dataarea> |
800 | 863 | </part> |
801 | 864 | </software> |
802 | 865 | |
803 | <software name="chip75"> | |
804 | <description>chip_75</description> | |
866 | <software name="chip107"> | |
867 | <description>Chip #107</description> | |
805 | 868 | <year>19??</year> |
806 | 869 | <publisher><unknown></publisher> |
807 | 870 | <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"/> | |
810 | 873 | </dataarea> |
811 | 874 | </part> |
812 | 875 | </software> |
813 | 876 | |
814 | <software name="chip77"> | |
815 | <description>chip_77</description> | |
877 | <software name="chip108"> | |
878 | <description>Chip #108</description> | |
816 | 879 | <year>19??</year> |
817 | 880 | <publisher><unknown></publisher> |
818 | 881 | <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"/> | |
821 | 884 | </dataarea> |
822 | 885 | </part> |
823 | 886 | </software> |
824 | 887 | |
825 | <software name="chip78"> | |
826 | <description>chip_78</description> | |
888 | <software name="chip110"> | |
889 | <description>Chip #110</description> | |
827 | 890 | <year>19??</year> |
828 | 891 | <publisher><unknown></publisher> |
829 | 892 | <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"/> | |
832 | 895 | </dataarea> |
833 | 896 | </part> |
834 | 897 | </software> |
835 | 898 | |
836 | <software name="chip79"> | |
837 | <description>chip_79</description> | |
899 | <software name="chip114"> | |
900 | <description>Chip #114</description> | |
838 | 901 | <year>19??</year> |
839 | 902 | <publisher><unknown></publisher> |
840 | 903 | <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"/> | |
843 | 906 | </dataarea> |
844 | 907 | </part> |
845 | 908 | </software> |
846 | 909 | |
847 | <software name="chip8"> | |
848 | <description>chip_8</description> | |
910 | <software name="chip117"> | |
911 | <description>Chip #117</description> | |
849 | 912 | <year>19??</year> |
850 | 913 | <publisher><unknown></publisher> |
851 | 914 | <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"/> | |
854 | 917 | </dataarea> |
855 | 918 | </part> |
856 | 919 | </software> |
857 | 920 | |
858 | <software name="chip81"> | |
859 | <description>chip_81</description> | |
921 | <software name="chip119"> | |
922 | <description>Chip #119</description> | |
860 | 923 | <year>19??</year> |
861 | 924 | <publisher><unknown></publisher> |
862 | 925 | <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"/> | |
865 | 928 | </dataarea> |
866 | 929 | </part> |
867 | 930 | </software> |
868 | 931 | |
869 | <software name="chip83"> | |
870 | <description>chip_83</description> | |
932 | <software name="chip120"> | |
933 | <description>Chip #120</description> | |
871 | 934 | <year>19??</year> |
872 | 935 | <publisher><unknown></publisher> |
873 | 936 | <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"/> | |
876 | 939 | </dataarea> |
877 | 940 | </part> |
878 | 941 | </software> |
879 | 942 | |
880 | <software name="chip84"> | |
881 | <description>chip_84</description> | |
943 | <software name="chip121"> | |
944 | <description>Chip #121</description> | |
882 | 945 | <year>19??</year> |
883 | 946 | <publisher><unknown></publisher> |
884 | 947 | <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"/> | |
887 | 950 | </dataarea> |
888 | 951 | </part> |
889 | 952 | </software> |
890 | 953 | |
891 | <software name="chip85"> | |
892 | <description>chip_85</description> | |
954 | <software name="chip125"> | |
955 | <description>Chip #125</description> | |
893 | 956 | <year>19??</year> |
894 | 957 | <publisher><unknown></publisher> |
895 | 958 | <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"/> | |
898 | 961 | </dataarea> |
899 | 962 | </part> |
900 | </software> | |
901 | 963 | |
902 | <software name="chip9"> | |
903 | <description>chip_9</description> | |
904 | <year>19??</year> | |
905 | <publisher><unknown></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"/> | |
909 | 967 | </dataarea> |
910 | 968 | </part> |
911 | 969 | </software> |
912 | 970 | |
913 | <software name="chip90"> | |
914 | <description>chip_90</description> | |
971 | <software name="chip128"> | |
972 | <description>Chip #128</description> | |
915 | 973 | <year>19??</year> |
916 | 974 | <publisher><unknown></publisher> |
917 | 975 | <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"/> | |
920 | 978 | </dataarea> |
921 | 979 | </part> |
922 | 980 | </software> |
923 | 981 | |
924 | <software name="chip91"> | |
925 | <description>chip_91</description> | |
982 | <software name="chip129"> | |
983 | <description>Chip #129</description> | |
926 | 984 | <year>19??</year> |
927 | 985 | <publisher><unknown></publisher> |
928 | 986 | <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"/> | |
931 | 989 | </dataarea> |
932 | 990 | </part> |
933 | 991 | </software> |
934 | 992 | |
935 | <software name="chip92"> | |
936 | <description>chip_92</description> | |
993 | <software name="chip138"> | |
994 | <description>Chip #138</description> | |
937 | 995 | <year>19??</year> |
938 | 996 | <publisher><unknown></publisher> |
939 | 997 | <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"/> | |
942 | 1000 | </dataarea> |
943 | 1001 | </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> | |
944 | 1008 | </software> |
945 | 1009 | |
946 | 1010 | <software name="chomp"> |
947 | <description> | |
1011 | <description>Chomp</description> | |
948 | 1012 | <year>19??</year> |
949 | 1013 | <publisher><unknown></publisher> |
950 | 1014 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
955 | 1019 | </software> |
956 | 1020 | |
957 | 1021 | <software name="paddle"> |
958 | <description> | |
1022 | <description>Paddle Games (Original)</description> | |
959 | 1023 | <year>19??</year> |
960 | 1024 | <publisher><unknown></publisher> |
961 | 1025 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
966 | 1030 | </software> |
967 | 1031 | |
968 | 1032 | <software name="paddlea" cloneof="paddle"> |
969 | <description> | |
1033 | <description>Paddle Games</description> | |
970 | 1034 | <year>19??</year> |
971 | 1035 | <publisher><unknown></publisher> |
972 | 1036 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
976 | 1040 | </part> |
977 | 1041 | </software> |
978 | 1042 | |
979 | <software name="clrgfx"> | |
980 | <description>color_graphics_1_suits</description> | |
1043 | <software name="colorgfx"> | |
1044 | <description>Color Graphics</description> | |
981 | 1045 | <year>19??</year> |
982 | 1046 | <publisher><unknown></publisher> |
983 | 1047 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
994 | 1058 | </software> |
995 | 1059 | |
996 | 1060 | <software name="colorcue"> |
997 | <description> | |
1061 | <description>ColorCue Demos</description> | |
998 | 1062 | <year>19??</year> |
999 | 1063 | <publisher><unknown></publisher> |
1000 | 1064 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1005 | 1069 | </software> |
1006 | 1070 | |
1007 | 1071 | <software name="clrgraph"> |
1008 | <description> | |
1072 | <description>ColorGraph v1.01</description> | |
1009 | 1073 | <year>19??</year> |
1010 | 1074 | <publisher><unknown></publisher> |
1011 | 1075 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1016 | 1080 | </software> |
1017 | 1081 | |
1018 | 1082 | <software name="colossal"> |
1019 | <description> | |
1083 | <description>Colossal Adventure</description> | |
1020 | 1084 | <year>19??</year> |
1021 | 1085 | <publisher><unknown></publisher> |
1022 | 1086 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1026 | 1090 | </part> |
1027 | 1091 | </software> |
1028 | 1092 | |
1029 | <software name="commpgms"> | |
1030 | <description>comm_pgms-sidea</description> | |
1093 | <software name="colcave"> | |
1094 | <description>Colossal Cave</description> | |
1031 | 1095 | <year>19??</year> |
1032 | 1096 | <publisher><unknown></publisher> |
1033 | 1097 | <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><unknown></publisher> | |
1108 | <part name="flop1" interface="floppy_5_25"> | |
1034 | 1109 | <dataarea name="flop" size="162815"> |
1035 | 1110 | <rom name="comm_pgms-sidea.ccvf" size="162815" crc="eb0c77d1" sha1="92b5ad6e6ecf6a53d2f96b0567a47e4416a0325b" offset="0"/> |
1036 | 1111 | </dataarea> |
r241781 | r241782 | |
1050 | 1125 | </software> |
1051 | 1126 | |
1052 | 1127 | <software name="compwrit"> |
1053 | <description> | |
1128 | <description>Comp-U-Writer (v3.51)</description> | |
1054 | 1129 | <year>19??</year> |
1055 | 1130 | <publisher><unknown></publisher> |
1056 | 1131 | <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"/> | |
1059 | 1134 | </dataarea> |
1060 | 1135 | </part> |
1061 | 1136 | </software> |
1062 | 1137 | |
1063 | 1138 | <software name="compwrita" cloneof="compwrit"> |
1064 | <description> | |
1139 | <description>Comp-U-Writer (v3.4 & v3.5)</description> | |
1065 | 1140 | <year>19??</year> |
1066 | 1141 | <publisher><unknown></publisher> |
1067 | 1142 | <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"/> | |
1070 | 1145 | </dataarea> |
1071 | 1146 | </part> |
1072 | 1147 | </software> |
1073 | 1148 | |
1074 | 1149 | <software name="comtron"> |
1075 | <description> | |
1150 | <description>Comtronics</description> | |
1076 | 1151 | <year>19??</year> |
1077 | 1152 | <publisher><unknown></publisher> |
1078 | 1153 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1083 | 1158 | </software> |
1084 | 1159 | |
1085 | 1160 | <software name="comtron2"> |
1086 | <description> | |
1161 | <description>Comtronics Software</description> | |
1087 | 1162 | <year>19??</year> |
1088 | 1163 | <publisher><unknown></publisher> |
1089 | 1164 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1093 | 1168 | </part> |
1094 | 1169 | </software> |
1095 | 1170 | |
1171 | <software name="cooltool"> | |
1172 | <description>Cool Tools</description> | |
1173 | <year>19??</year> | |
1174 | <publisher><unknown></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 | ||
1096 | 1182 | <software name="demo"> |
1097 | <description> | |
1183 | <description>Demonstration</description> | |
1098 | 1184 | <year>19??</year> |
1099 | 1185 | <publisher><unknown></publisher> |
1100 | 1186 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1105 | 1191 | </software> |
1106 | 1192 | |
1107 | 1193 | <software name="demos"> |
1108 | <description> | |
1194 | <description>Demos</description> | |
1109 | 1195 | <year>19??</year> |
1110 | 1196 | <publisher><unknown></publisher> |
1111 | 1197 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1115 | 1201 | </part> |
1116 | 1202 | </software> |
1117 | 1203 | |
1118 | <software name="disasmlp"> | |
1119 | <description>disasm+mldp+sidea</description> | |
1204 | <software name="dasmmlpd"> | |
1205 | <description>DISASM + MLPD</description> | |
1120 | 1206 | <year>19??</year> |
1121 | 1207 | <publisher><unknown></publisher> |
1122 | 1208 | <part name="flop1" interface="floppy_5_25"> |
1209 | <info name="part_id" value="DISASM"/> | |
1123 | 1210 | <dataarea name="flop" size="162853"> |
1124 | 1211 | <rom name="disasm+mldp+sidea.ccvf" size="162853" crc="37e8ba02" sha1="de79e786fd29633a471de44aa700cf256cd6434b" offset="0"/> |
1125 | 1212 | </dataarea> |
1126 | 1213 | </part> |
1127 | 1214 | |
1128 | 1215 | <part name="flop2" interface="floppy_5_25"> |
1216 | <info name="part_id" value="MLPD"/> | |
1129 | 1217 | <dataarea name="flop" size="162853"> |
1130 | 1218 | <rom name="disasm+mldp-sideb.ccvf" size="162853" crc="17628a85" sha1="90fdc00b6939cc54fc5095c6ee0e621a9767a539" offset="0"/> |
1131 | 1219 | </dataarea> |
1132 | 1220 | </part> |
1133 | 1221 | </software> |
1134 | 1222 | |
1135 | <software name="disasm"> | |
1136 | <description>disasm-sidea</description> | |
1223 | <software name="dasmsrc"> | |
1224 | <description>DISASM Source</description> | |
1137 | 1225 | <year>19??</year> |
1138 | 1226 | <publisher><unknown></publisher> |
1139 | 1227 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1143 | 1231 | </part> |
1144 | 1232 | </software> |
1145 | 1233 | |
1146 | <software name="disasmlr"> | |
1147 | <description>disassembler</description> | |
1234 | <software name="mldpfix"> | |
1235 | <description>MLPD (Autorepeat Key Fixed)</description> | |
1148 | 1236 | <year>19??</year> |
1149 | 1237 | <publisher><unknown></publisher> |
1150 | 1238 | <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><unknown></publisher> | |
1249 | <part name="flop1" interface="floppy_5_25"> | |
1151 | 1250 | <dataarea name="flop" size="162831"> |
1152 | 1251 | <rom name="disassembler.ccvf" size="162831" crc="f018390c" sha1="53209bcdc8bcf17291066a036e36b1bbe1fc8ecc" offset="0"/> |
1153 | 1252 | </dataarea> |
r241781 | r241782 | |
1155 | 1254 | </software> |
1156 | 1255 | |
1157 | 1256 | <software name="dogfight"> |
1158 | <description> | |
1257 | <description>Dogfight</description> | |
1159 | 1258 | <year>19??</year> |
1160 | 1259 | <publisher><unknown></publisher> |
1161 | 1260 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1166 | 1265 | </software> |
1167 | 1266 | |
1168 | 1267 | <software name="draw2"> |
1169 | <description> | |
1268 | <description>Draw 2</description> | |
1170 | 1269 | <year>19??</year> |
1171 | 1270 | <publisher><unknown></publisher> |
1172 | 1271 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1176 | 1275 | </part> |
1177 | 1276 | </software> |
1178 | 1277 | |
1179 | <software name="drivlist"> | |
1180 | <description>driver_lister</description> | |
1278 | <software name="draw2a" cloneof="draw2"> | |
1279 | <description>Draw 2 (Alt)</description> | |
1181 | 1280 | <year>19??</year> |
1182 | 1281 | <publisher><unknown></publisher> |
1183 | 1282 | <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" /> | |
1186 | 1285 | </dataarea> |
1187 | 1286 | </part> |
1188 | 1287 | </software> |
1189 | 1288 | |
1190 | 1289 | <software name="dukedom"> |
1191 | <description> | |
1290 | <description>Dukedom</description> | |
1192 | 1291 | <year>19??</year> |
1193 | 1292 | <publisher><unknown></publisher> |
1194 | 1293 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1198 | 1297 | </part> |
1199 | 1298 | </software> |
1200 | 1299 | |
1201 | <software name="trek"> | |
1202 | <description>trek</description> | |
1203 | <year>19??</year> | |
1204 | <publisher><unknown></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 | ||
1212 | 1300 | <software name="eprom"> |
1213 | <description> | |
1301 | <description>EPROM Programmer</description> | |
1214 | 1302 | <year>19??</year> |
1215 | 1303 | <publisher><unknown></publisher> |
1216 | 1304 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1221 | 1309 | </software> |
1222 | 1310 | |
1223 | 1311 | <software name="equity"> |
1224 | <description> | |
1312 | <description>Equity</description> | |
1225 | 1313 | <year>19??</year> |
1226 | 1314 | <publisher><unknown></publisher> |
1227 | 1315 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1232 | 1320 | </software> |
1233 | 1321 | |
1234 | 1322 | <software name="execgrap"> |
1235 | <description> | |
1323 | <description>Execugraph Trend-Spotter</description> | |
1236 | 1324 | <year>19??</year> |
1237 | 1325 | <publisher><unknown></publisher> |
1238 | 1326 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1242 | 1330 | </part> |
1243 | 1331 | |
1244 | 1332 | <part name="flop2" interface="floppy_5_25"> |
1333 | <info name="part_id" value="Instructions"/> | |
1245 | 1334 | <dataarea name="flop" size="162874"> |
1246 | 1335 | <rom name="execugraph_instructions.ccvf" size="162874" crc="0716e534" sha1="1ae67e4acec0175880698df9c792ea97eb6f7158" offset="0"/> |
1247 | 1336 | </dataarea> |
r241781 | r241782 | |
1249 | 1338 | </software> |
1250 | 1339 | |
1251 | 1340 | <software name="fcsmods"> |
1252 | <description> | |
1341 | <description>FCS MOD</description> | |
1253 | 1342 | <year>19??</year> |
1254 | 1343 | <publisher><unknown></publisher> |
1255 | 1344 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1259 | 1348 | </part> |
1260 | 1349 | </software> |
1261 | 1350 | |
1262 | <software name="fms"> | |
1263 | <description>file_maintenance_system-sidea</description> | |
1351 | <software name="fms3650"> | |
1352 | <description>File Maintenance System 3650 (v11.82)</description> | |
1264 | 1353 | <year>19??</year> |
1265 | 1354 | <publisher><unknown></publisher> |
1266 | 1355 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1277 | 1366 | </software> |
1278 | 1367 | |
1279 | 1368 | <software name="fftrek"> |
1280 | <description> | |
1369 | <description>The Final Frontier - Star Trek</description> | |
1281 | 1370 | <year>19??</year> |
1282 | 1371 | <publisher><unknown></publisher> |
1283 | 1372 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1288 | 1377 | </software> |
1289 | 1378 | |
1290 | 1379 | <software name="format"> |
1291 | <description> | |
1380 | <description>Formatter</description> | |
1292 | 1381 | <year>19??</year> |
1293 | 1382 | <publisher><unknown></publisher> |
1294 | 1383 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1298 | 1387 | </part> |
1299 | 1388 | </software> |
1300 | 1389 | |
1301 | <software name="frthpscl"> | |
1302 | <description>forth_pascal</description> | |
1303 | <year>19??</year> | |
1304 | <publisher><unknown></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 | ||
1312 | 1390 | <software name="fortran"> |
1313 | <description> | |
1391 | <description>FORTRAN</description> | |
1314 | 1392 | <year>19??</year> |
1315 | 1393 | <publisher><unknown></publisher> |
1316 | 1394 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1321 | 1399 | </software> |
1322 | 1400 | |
1323 | 1401 | <software name="fortran2"> |
1324 | <description> | |
1402 | <description>FORTRAN 2</description> | |
1325 | 1403 | <year>19??</year> |
1326 | 1404 | <publisher><unknown></publisher> |
1327 | 1405 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1332 | 1410 | </software> |
1333 | 1411 | |
1334 | 1412 | <software name="fortrek"> |
1335 | <description> | |
1413 | <description>FORTRAN Star Trek Source</description> | |
1336 | 1414 | <year>19??</year> |
1337 | 1415 | <publisher><unknown></publisher> |
1338 | 1416 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1342 | 1420 | </part> |
1343 | 1421 | </software> |
1344 | 1422 | |
1423 | <software name="fortstr"> | |
1424 | <description>FORTRAN Strings Source</description> | |
1425 | <year>19??</year> | |
1426 | <publisher><unknown></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><unknown></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 | ||
1345 | 1446 | <software name="forutil"> |
1346 | <description> | |
1447 | <description>FORTRAN Utilities Source</description> | |
1347 | 1448 | <year>19??</year> |
1348 | 1449 | <publisher><unknown></publisher> |
1349 | 1450 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1354 | 1455 | </software> |
1355 | 1456 | |
1356 | 1457 | <software name="galaxian"> |
1357 | <description> | |
1458 | <description>Galaxian</description> | |
1358 | 1459 | <year>19??</year> |
1359 | 1460 | <publisher><unknown></publisher> |
1360 | 1461 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1364 | 1465 | </part> |
1365 | 1466 | </software> |
1366 | 1467 | |
1367 | <software name="softwre"> | |
1368 | <description>softwares</description> | |
1468 | <software name="galaxiana" cloneof="galaxian"> | |
1469 | <description>Galaxian (Alt)</description> | |
1369 | 1470 | <year>19??</year> |
1370 | 1471 | <publisher><unknown></publisher> |
1371 | 1472 | <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><unknown></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><unknown></publisher> | |
1494 | <part name="flop1" interface="floppy_5_25"> | |
1372 | 1495 | <dataarea name="flop" size="162811"> |
1373 | 1496 | <rom name="softwares.ccvf" size="162811" crc="f9d7447f" sha1="52e79d5a30e9666b8ea790270da1b125eb810413" offset="0"/> |
1374 | 1497 | </dataarea> |
1375 | 1498 | </part> |
1376 | 1499 | </software> |
1377 | 1500 | |
1378 | <software name="softwre2"> | |
1379 | <description>softwares2</description> | |
1501 | <software name="basicgm2"> | |
1502 | <description>BASIC Games #2</description> | |
1380 | 1503 | <year>19??</year> |
1381 | 1504 | <publisher><unknown></publisher> |
1382 | 1505 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1386 | 1509 | </part> |
1387 | 1510 | </software> |
1388 | 1511 | |
1389 | <software name="softwre3"> | |
1390 | <description>softwares3</description> | |
1512 | <software name="basicgm3"> | |
1513 | <description>BASIC Games #3</description> | |
1391 | 1514 | <year>19??</year> |
1392 | 1515 | <publisher><unknown></publisher> |
1393 | 1516 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1397 | 1520 | </part> |
1398 | 1521 | </software> |
1399 | 1522 | |
1400 | <software name="softwre4"> | |
1401 | <description>softwares4</description> | |
1523 | <software name="basicgm4"> | |
1524 | <description>BASIC Games #4</description> | |
1402 | 1525 | <year>19??</year> |
1403 | 1526 | <publisher><unknown></publisher> |
1404 | 1527 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1409 | 1532 | </software> |
1410 | 1533 | |
1411 | 1534 | <software name="hangman"> |
1412 | <description> | |
1535 | <description>Hangman</description> | |
1413 | 1536 | <year>19??</year> |
1414 | 1537 | <publisher><unknown></publisher> |
1415 | 1538 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1420 | 1543 | </software> |
1421 | 1544 | |
1422 | 1545 | <software name="hwutil"> |
1423 | <description> | |
1546 | <description>Hardware Utilities</description> | |
1424 | 1547 | <year>19??</year> |
1425 | 1548 | <publisher><unknown></publisher> |
1426 | 1549 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1431 | 1554 | </software> |
1432 | 1555 | |
1433 | 1556 | <software name="homebdgt"> |
1434 | <description> | |
1557 | <description>Home Budget</description> | |
1435 | 1558 | <year>19??</year> |
1436 | 1559 | <publisher><unknown></publisher> |
1437 | 1560 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1454 | 1577 | </software> |
1455 | 1578 | |
1456 | 1579 | <software name="homevid"> |
1457 | <description> | |
1580 | <description>Home Video Library</description> | |
1458 | 1581 | <year>19??</year> |
1459 | 1582 | <publisher><unknown></publisher> |
1460 | 1583 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1465 | 1588 | </software> |
1466 | 1589 | |
1467 | 1590 | <software name="ida"> |
1468 | <description> | |
1591 | <description>IDA (v2.6)</description> | |
1469 | 1592 | <year>19??</year> |
1470 | 1593 | <publisher><unknown></publisher> |
1471 | 1594 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1482 | 1605 | </software> |
1483 | 1606 | |
1484 | 1607 | <software name="ifsoft"> |
1485 | <description> | |
1608 | <description>Interface Software / Joystick Games</description> | |
1486 | 1609 | <year>19??</year> |
1487 | 1610 | <publisher><unknown></publisher> |
1488 | 1611 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1492 | 1615 | </part> |
1493 | 1616 | </software> |
1494 | 1617 | |
1495 | <software name="intrsndw"> | |
1496 | <description>intro_to_soundware</description> | |
1618 | <software name="intro2sw"> | |
1619 | <description>Intro to Soundware</description> | |
1497 | 1620 | <year>19??</year> |
1498 | 1621 | <publisher><unknown></publisher> |
1499 | 1622 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1504 | 1627 | </software> |
1505 | 1628 | |
1506 | 1629 | <software name="invaders"> |
1507 | <description> | |
1630 | <description>Invaders</description> | |
1508 | 1631 | <year>19??</year> |
1509 | 1632 | <publisher><unknown></publisher> |
1510 | 1633 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1514 | 1637 | </part> |
1515 | 1638 | </software> |
1516 | 1639 | |
1640 | <software name="invadersa" cloneof="invaders"> | |
1641 | <description>Invaders (Alt)</description> | |
1642 | <year>19??</year> | |
1643 | <publisher><unknown></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 | ||
1517 | 1651 | <software name="inventry"> |
1518 | <description> | |
1652 | <description>Inventory</description> | |
1519 | 1653 | <year>19??</year> |
1520 | 1654 | <publisher><unknown></publisher> |
1521 | 1655 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1526 | 1660 | </software> |
1527 | 1661 | |
1528 | 1662 | <software name="invoice"> |
1529 | <description> | |
1663 | <description>Invoice Order</description> | |
1530 | 1664 | <year>19??</year> |
1531 | 1665 | <publisher><unknown></publisher> |
1532 | 1666 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1537 | 1671 | </software> |
1538 | 1672 | |
1539 | 1673 | <software name="iscdemos"> |
1540 | <description> | |
1674 | <description>ISC Demos</description> | |
1541 | 1675 | <year>19??</year> |
1542 | 1676 | <publisher><unknown></publisher> |
1543 | 1677 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1548 | 1682 | </software> |
1549 | 1683 | |
1550 | 1684 | <software name="joystick"> |
1551 | <description> | |
1685 | <description>Joystick Games</description> | |
1552 | 1686 | <year>19??</year> |
1553 | 1687 | <publisher><unknown></publisher> |
1554 | 1688 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1565 | 1699 | </software> |
1566 | 1700 | |
1567 | 1701 | <software name="joysound"> |
1568 | <description> | |
1702 | <description>Joystick Games with Sound</description> | |
1569 | 1703 | <year>19??</year> |
1570 | 1704 | <publisher><unknown></publisher> |
1571 | 1705 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1576 | 1710 | </software> |
1577 | 1711 | |
1578 | 1712 | <software name="lasergun"> |
1579 | <description> | |
1713 | <description>Laser Gun (Joystick)</description> | |
1580 | 1714 | <year>19??</year> |
1581 | 1715 | <publisher><unknown></publisher> |
1582 | 1716 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1587 | 1721 | </software> |
1588 | 1722 | |
1589 | 1723 | <software name="lasergunk" cloneof="lasergun"> |
1590 | <description> | |
1724 | <description>Laser Gun (Keyboard)</description> | |
1591 | 1725 | <year>19??</year> |
1592 | 1726 | <publisher><unknown></publisher> |
1593 | 1727 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1598 | 1732 | </software> |
1599 | 1733 | |
1600 | 1734 | <software name="life"> |
1601 | <description> | |
1735 | <description>Life</description> | |
1602 | 1736 | <year>19??</year> |
1603 | 1737 | <publisher><unknown></publisher> |
1604 | 1738 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1608 | 1742 | </part> |
1609 | 1743 | </software> |
1610 | 1744 | |
1611 | <software name="life2"> | |
1612 | <description>life2</description> | |
1745 | <software name="lifea" cloneof="life"> | |
1746 | <description>Life (Alt)</description> | |
1613 | 1747 | <year>19??</year> |
1614 | 1748 | <publisher><unknown></publisher> |
1615 | 1749 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1620 | 1754 | </software> |
1621 | 1755 | |
1622 | 1756 | <software name="llander"> |
1623 | <description> | |
1757 | <description>Lunar Lander</description> | |
1624 | 1758 | <year>19??</year> |
1625 | 1759 | <publisher><unknown></publisher> |
1626 | 1760 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1631 | 1765 | </software> |
1632 | 1766 | |
1633 | 1767 | <software name="maillist"> |
1634 | <description> | |
1768 | <description>Mailing List</description> | |
1635 | 1769 | <year>19??</year> |
1636 | 1770 | <publisher><unknown></publisher> |
1637 | 1771 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1642 | 1776 | </software> |
1643 | 1777 | |
1644 | 1778 | <software name="mazes1"> |
1645 | <description> | |
1779 | <description>Mazes #1</description> | |
1646 | 1780 | <year>19??</year> |
1647 | 1781 | <publisher><unknown></publisher> |
1648 | 1782 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1653 | 1787 | </software> |
1654 | 1788 | |
1655 | 1789 | <software name="mazes2"> |
1656 | <description> | |
1790 | <description>Mazes #2</description> | |
1657 | 1791 | <year>19??</year> |
1658 | 1792 | <publisher><unknown></publisher> |
1659 | 1793 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1664 | 1798 | </software> |
1665 | 1799 | |
1666 | 1800 | <software name="mixed"> |
1667 | <description> | |
1801 | <description>Mixed Programs</description> | |
1668 | 1802 | <year>19??</year> |
1669 | 1803 | <publisher><unknown></publisher> |
1670 | 1804 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1674 | 1808 | </part> |
1675 | 1809 | </software> |
1676 | 1810 | |
1677 | <software name="mldpfix"> | |
1678 | <description>mldp_fix</description> | |
1679 | <year>19??</year> | |
1680 | <publisher><unknown></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 | ||
1688 | 1811 | <software name="modutils"> |
1689 | <description> | |
1812 | <description>Modified Utilities</description> | |
1690 | 1813 | <year>19??</year> |
1691 | 1814 | <publisher><unknown></publisher> |
1692 | 1815 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1697 | 1820 | </software> |
1698 | 1821 | |
1699 | 1822 | <software name="mpidemo"> |
1700 | <description> | |
1823 | <description>Multi Peripheral Interface Hardware Demo</description> | |
1701 | 1824 | <year>19??</year> |
1702 | 1825 | <publisher><unknown></publisher> |
1703 | 1826 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1707 | 1830 | </part> |
1708 | 1831 | </software> |
1709 | 1832 | |
1710 | <software name="ncc10"> | |
1711 | <description>ncc_10</description> | |
1833 | <software name="ncc0105"> | |
1834 | <description>NCC #1 & #5</description> | |
1712 | 1835 | <year>19??</year> |
1713 | 1836 | <publisher><unknown></publisher> |
1714 | 1837 | <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"/> | |
1717 | 1840 | </dataarea> |
1718 | 1841 | </part> |
1719 | 1842 | </software> |
1720 | 1843 | |
1721 | <software name="ncc12"> | |
1722 | <description>ncc_12</description> | |
1844 | <software name="ncc02"> | |
1845 | <description>NCC #2</description> | |
1723 | 1846 | <year>19??</year> |
1724 | 1847 | <publisher><unknown></publisher> |
1725 | 1848 | <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"/> | |
1728 | 1851 | </dataarea> |
1729 | 1852 | </part> |
1730 | 1853 | </software> |
1731 | 1854 | |
1732 | <software name="ncc13"> | |
1733 | <description>ncc_13</description> | |
1855 | <software name="ncc03"> | |
1856 | <description>NCC #3</description> | |
1734 | 1857 | <year>19??</year> |
1735 | 1858 | <publisher><unknown></publisher> |
1736 | 1859 | <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"/> | |
1739 | 1862 | </dataarea> |
1740 | 1863 | </part> |
1741 | 1864 | </software> |
1742 | 1865 | |
1743 | <software name="ncc14"> | |
1744 | <description>ncc_14</description> | |
1866 | <software name="ncc04"> | |
1867 | <description>NCC #4</description> | |
1745 | 1868 | <year>19??</year> |
1746 | 1869 | <publisher><unknown></publisher> |
1747 | 1870 | <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"/> | |
1750 | 1873 | </dataarea> |
1751 | 1874 | </part> |
1752 | 1875 | </software> |
1753 | 1876 | |
1754 | <software name="ncc15"> | |
1755 | <description>ncc_15</description> | |
1877 | <software name="ncc0411"> | |
1878 | <description>NCC #4 & #11</description> | |
1756 | 1879 | <year>19??</year> |
1757 | 1880 | <publisher><unknown></publisher> |
1758 | 1881 | <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"/> | |
1761 | 1884 | </dataarea> |
1762 | 1885 | </part> |
1763 | 1886 | </software> |
1764 | 1887 | |
1765 | <software name="ncc16"> | |
1766 | <description>ncc_16</description> | |
1888 | <software name="ncc05"> | |
1889 | <description>NCC #5</description> | |
1767 | 1890 | <year>19??</year> |
1768 | 1891 | <publisher><unknown></publisher> |
1769 | 1892 | <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"/> | |
1772 | 1895 | </dataarea> |
1773 | 1896 | </part> |
1774 | 1897 | </software> |
1775 | 1898 | |
1776 | <software name="ncc17"> | |
1777 | <description>ncc_17</description> | |
1899 | <software name="ncc06"> | |
1900 | <description>NCC #6 (Original)</description> | |
1778 | 1901 | <year>19??</year> |
1779 | 1902 | <publisher><unknown></publisher> |
1780 | 1903 | <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"/> | |
1783 | 1906 | </dataarea> |
1784 | 1907 | </part> |
1785 | 1908 | </software> |
1786 | 1909 | |
1787 | <software name="ncc18"> | |
1788 | <description>ncc_18</description> | |
1910 | <software name="ncc06a" cloneof="ncc06"> | |
1911 | <description>NCC #6</description> | |
1789 | 1912 | <year>19??</year> |
1790 | 1913 | <publisher><unknown></publisher> |
1791 | 1914 | <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"/> | |
1794 | 1917 | </dataarea> |
1795 | 1918 | </part> |
1796 | 1919 | </software> |
1797 | 1920 | |
1798 | <software name="ncc1_5"> | |
1799 | <description>ncc_1_5</description> | |
1921 | <software name="ncc07"> | |
1922 | <description>NCC #7</description> | |
1800 | 1923 | <year>19??</year> |
1801 | 1924 | <publisher><unknown></publisher> |
1802 | 1925 | <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"/> | |
1805 | 1928 | </dataarea> |
1806 | 1929 | </part> |
1807 | 1930 | </software> |
1808 | 1931 | |
1809 | <software name="ncc2"> | |
1810 | <description>ncc_2</description> | |
1932 | <software name="ncc08"> | |
1933 | <description>NCC #8 (Original)</description> | |
1811 | 1934 | <year>19??</year> |
1812 | 1935 | <publisher><unknown></publisher> |
1813 | 1936 | <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"/> | |
1816 | 1939 | </dataarea> |
1817 | 1940 | </part> |
1818 | 1941 | </software> |
1819 | 1942 | |
1820 | <software name="ncc21"> | |
1821 | <description>ncc_21</description> | |
1943 | <software name="ncc08a" cloneof="ncc08"> | |
1944 | <description>NCC #8</description> | |
1822 | 1945 | <year>19??</year> |
1823 | 1946 | <publisher><unknown></publisher> |
1824 | 1947 | <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"/> | |
1827 | 1950 | </dataarea> |
1828 | 1951 | </part> |
1829 | 1952 | </software> |
1830 | 1953 | |
1831 | <software name="ncc22"> | |
1832 | <description>ncc_22</description> | |
1954 | <software name="ncc09"> | |
1955 | <description>NCC #9</description> | |
1833 | 1956 | <year>19??</year> |
1834 | 1957 | <publisher><unknown></publisher> |
1835 | 1958 | <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"/> | |
1838 | 1961 | </dataarea> |
1839 | 1962 | </part> |
1840 | 1963 | </software> |
1841 | 1964 | |
1842 | <software name="ncc23"> | |
1843 | <description>ncc_23</description> | |
1965 | <software name="ncc10"> | |
1966 | <description>NCC #10</description> | |
1844 | 1967 | <year>19??</year> |
1845 | 1968 | <publisher><unknown></publisher> |
1846 | 1969 | <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"/> | |
1849 | 1972 | </dataarea> |
1850 | 1973 | </part> |
1851 | 1974 | </software> |
1852 | 1975 | |
1853 | <software name="ncc3"> | |
1854 | <description>ncc_3</description> | |
1976 | <software name="ncc12"> | |
1977 | <description>NCC #12</description> | |
1855 | 1978 | <year>19??</year> |
1856 | 1979 | <publisher><unknown></publisher> |
1857 | 1980 | <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"/> | |
1860 | 1983 | </dataarea> |
1861 | 1984 | </part> |
1862 | 1985 | </software> |
1863 | 1986 | |
1864 | <software name="ncc_4"> | |
1865 | <description>ncc_4</description> | |
1987 | <software name="ncc13"> | |
1988 | <description>NCC #13</description> | |
1866 | 1989 | <year>19??</year> |
1867 | 1990 | <publisher><unknown></publisher> |
1868 | 1991 | <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"/> | |
1871 | 1994 | </dataarea> |
1872 | 1995 | </part> |
1873 | 1996 | </software> |
1874 | 1997 | |
1875 | <software name="ncc4_11"> | |
1876 | <description>ncc_4_11</description> | |
1998 | <software name="ncc14"> | |
1999 | <description>NCC #14</description> | |
1877 | 2000 | <year>19??</year> |
1878 | 2001 | <publisher><unknown></publisher> |
1879 | 2002 | <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"/> | |
1882 | 2005 | </dataarea> |
1883 | 2006 | </part> |
1884 | 2007 | </software> |
1885 | 2008 | |
1886 | <software name="ncc5"> | |
1887 | <description>ncc_5</description> | |
2009 | <software name="ncc15"> | |
2010 | <description>NCC #15</description> | |
1888 | 2011 | <year>19??</year> |
1889 | 2012 | <publisher><unknown></publisher> |
1890 | 2013 | <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"/> | |
1893 | 2016 | </dataarea> |
1894 | 2017 | </part> |
1895 | 2018 | </software> |
1896 | 2019 | |
1897 | <software name="ncc6a" cloneof="ncc6"> | |
1898 | <description>ncc_6</description> | |
2020 | <software name="ncc16"> | |
2021 | <description>NCC #16</description> | |
1899 | 2022 | <year>19??</year> |
1900 | 2023 | <publisher><unknown></publisher> |
1901 | 2024 | <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"/> | |
1904 | 2027 | </dataarea> |
1905 | 2028 | </part> |
1906 | 2029 | </software> |
1907 | 2030 | |
1908 | <software name="ncc6"> | |
1909 | <description>ncc_6_real</description> | |
2031 | <software name="ncc17"> | |
2032 | <description>NCC #17</description> | |
1910 | 2033 | <year>19??</year> |
1911 | 2034 | <publisher><unknown></publisher> |
1912 | 2035 | <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"/> | |
1915 | 2038 | </dataarea> |
1916 | 2039 | </part> |
1917 | 2040 | </software> |
1918 | 2041 | |
1919 | <software name="ncc7"> | |
1920 | <description>ncc_7</description> | |
2042 | <software name="ncc18"> | |
2043 | <description>NCC #18</description> | |
1921 | 2044 | <year>19??</year> |
1922 | 2045 | <publisher><unknown></publisher> |
1923 | 2046 | <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"/> | |
1926 | 2049 | </dataarea> |
1927 | 2050 | </part> |
1928 | 2051 | </software> |
1929 | 2052 | |
1930 | <software name="ncc8a" cloneof="ncc8"> | |
1931 | <description>ncc_8</description> | |
2053 | <software name="ncc21"> | |
2054 | <description>NCC #21</description> | |
1932 | 2055 | <year>19??</year> |
1933 | 2056 | <publisher><unknown></publisher> |
1934 | 2057 | <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"/> | |
1937 | 2060 | </dataarea> |
1938 | 2061 | </part> |
1939 | 2062 | </software> |
1940 | 2063 | |
1941 | <software name="ncc8"> | |
1942 | <description>ncc_8_real</description> | |
2064 | <software name="ncc22"> | |
2065 | <description>NCC #22</description> | |
1943 | 2066 | <year>19??</year> |
1944 | 2067 | <publisher><unknown></publisher> |
1945 | 2068 | <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"/> | |
1948 | 2071 | </dataarea> |
1949 | 2072 | </part> |
1950 | 2073 | </software> |
1951 | 2074 | |
1952 | <software name="ncc9"> | |
1953 | <description>ncc_9</description> | |
2075 | <software name="ncc23"> | |
2076 | <description>NCC #23</description> | |
1954 | 2077 | <year>19??</year> |
1955 | 2078 | <publisher><unknown></publisher> |
1956 | 2079 | <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"/> | |
1959 | 2082 | </dataarea> |
1960 | 2083 | </part> |
1961 | 2084 | </software> |
1962 | 2085 | |
1963 | 2086 | <software name="ncccat1"> |
1964 | <description> | |
2087 | <description>NCC Catalog #1</description> | |
1965 | 2088 | <year>19??</year> |
1966 | 2089 | <publisher><unknown></publisher> |
1967 | 2090 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1972 | 2095 | </software> |
1973 | 2096 | |
1974 | 2097 | <software name="nswug1"> |
1975 | <description> | |
2098 | <description>New South Wales CCII Users Group Disk #1</description> | |
1976 | 2099 | <year>19??</year> |
1977 | 2100 | <publisher><unknown></publisher> |
1978 | 2101 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
1989 | 2112 | </software> |
1990 | 2113 | |
1991 | 2114 | <software name="othello"> |
1992 | <description> | |
2115 | <description>Othello</description> | |
1993 | 2116 | <year>19??</year> |
1994 | 2117 | <publisher><unknown></publisher> |
1995 | 2118 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2000 | 2123 | </software> |
2001 | 2124 | |
2002 | 2125 | <software name="pacman"> |
2003 | <description> | |
2126 | <description>Pacman</description> | |
2004 | 2127 | <year>19??</year> |
2005 | 2128 | <publisher><unknown></publisher> |
2006 | 2129 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2011 | 2134 | </software> |
2012 | 2135 | |
2013 | 2136 | <software name="persfina"> |
2014 | <description> | |
2137 | <description>Personal Finance Volume 1</description> | |
2015 | 2138 | <year>19??</year> |
2016 | 2139 | <publisher><unknown></publisher> |
2017 | 2140 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2022 | 2145 | </software> |
2023 | 2146 | |
2024 | 2147 | <software name="pertplnr"> |
2025 | <description> | |
2148 | <description>PERT Planner</description> | |
2026 | 2149 | <year>19??</year> |
2027 | 2150 | <publisher><unknown></publisher> |
2028 | 2151 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2033 | 2156 | </software> |
2034 | 2157 | |
2035 | 2158 | <software name="printpkg"> |
2036 | <description> | |
2159 | <description>Printer Package</description> | |
2037 | 2160 | <year>19??</year> |
2038 | 2161 | <publisher><unknown></publisher> |
2039 | 2162 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2041 | 2164 | <rom name="printer_pkg.ccvf" size="162842" crc="d4998bf0" sha1="abc216b8f2b2907289c83d555dd13bbaff8cfa6f" offset="0"/> |
2042 | 2165 | </dataarea> |
2043 | 2166 | </part> |
2167 | </software> | |
2044 | 2168 | |
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><unknown></publisher> | |
2173 | <part name="flop1" interface="floppy_5_25"> | |
2046 | 2174 | <dataarea name="flop" size="162842"> |
2047 | 2175 | <rom name="printer_pkg_src-sidea.ccvf" size="162842" crc="7d2436e8" sha1="9f1188fd7d707bd8dc04dca252ddda187b48ab05" offset="0"/> |
2048 | 2176 | </dataarea> |
2049 | 2177 | </part> |
2050 | 2178 | |
2051 | <part name="flop | |
2179 | <part name="flop2" interface="floppy_5_25"> | |
2052 | 2180 | <dataarea name="flop" size="162842"> |
2053 | 2181 | <rom name="printer_pkg_src-sideb.ccvf" size="162842" crc="78d69675" sha1="55bcd7c91bdc78cffdd475caa8f8e217cc92a304" offset="0"/> |
2054 | 2182 | </dataarea> |
2055 | 2183 | </part> |
2056 | 2184 | </software> |
2057 | 2185 | |
2186 | <software name="printdrv"> | |
2187 | <description>Printer Drivers</description> | |
2188 | <year>19??</year> | |
2189 | <publisher><unknown></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 | ||
2058 | 2197 | <software name="ratfor"> |
2059 | <description> | |
2198 | <description>RATFOR</description> | |
2060 | 2199 | <year>19??</year> |
2061 | 2200 | <publisher><unknown></publisher> |
2062 | 2201 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2066 | 2205 | </part> |
2067 | 2206 | </software> |
2068 | 2207 | |
2069 | <software name="samplera" cloneof="sampler"> | |
2070 | <description>sampler-3.31.78</description> | |
2208 | <software name="sampler"> | |
2209 | <description>Sampler (v1.23.80)</description> | |
2071 | 2210 | <year>19??</year> |
2072 | 2211 | <publisher><unknown></publisher> |
2073 | 2212 | <part name="flop1" interface="floppy_5_25"> |
2074 | 2213 | <dataarea name="flop" size="163561"> |
2075 | <rom name="sampler | |
2214 | <rom name="sampler.ccvf" size="163561" crc="71b7c5f9" sha1="2442454b6e85adab43f345469464d76012a2a9fc" offset="0"/> | |
2076 | 2215 | </dataarea> |
2077 | 2216 | </part> |
2078 | 2217 | </software> |
2079 | 2218 | |
2080 | <software name="sampler"> | |
2081 | <description>sampler</description> | |
2219 | <software name="samplera" cloneof="sampler"> | |
2220 | <description>Sampler (v3.31.78)</description> | |
2082 | 2221 | <year>19??</year> |
2083 | 2222 | <publisher><unknown></publisher> |
2084 | 2223 | <part name="flop1" interface="floppy_5_25"> |
2085 | 2224 | <dataarea name="flop" size="163561"> |
2086 | <rom name="sampler.ccvf" size="163561" crc=" | |
2225 | <rom name="sampler-3.31.78.ccvf" size="163561" crc="3df51056" sha1="954c5add7267f0c3d832422f8c93d770e0d9cd06" offset="0"/> | |
2087 | 2226 | </dataarea> |
2088 | 2227 | </part> |
2089 | 2228 | </software> |
2090 | 2229 | |
2091 | <software name="srgches1"> | |
2092 | <description>sargon_chess_1</description> | |
2230 | <software name="sargon"> | |
2231 | <description>Sargon 1</description> | |
2093 | 2232 | <year>19??</year> |
2094 | 2233 | <publisher><unknown></publisher> |
2095 | 2234 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2100 | 2239 | </software> |
2101 | 2240 | |
2102 | 2241 | <software name="scratch"> |
2103 | <description> | |
2242 | <description>Scratch</description> | |
2104 | 2243 | <year>19??</year> |
2105 | 2244 | <publisher><unknown></publisher> |
2106 | 2245 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2111 | 2250 | </software> |
2112 | 2251 | |
2113 | 2252 | <software name="selutils"> |
2114 | <description> | |
2253 | <description>Selective Utilities</description> | |
2115 | 2254 | <year>19??</year> |
2116 | 2255 | <publisher><unknown></publisher> |
2117 | 2256 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2121 | 2260 | </part> |
2122 | 2261 | </software> |
2123 | 2262 | |
2124 | <software name="sfsspa" cloneof="sfssp"> | |
2125 | <description>sfssp_v1.3_nodata_docs</description> | |
2263 | <software name="sfssp"> | |
2264 | <description>SFSSP (v1.3)</description> | |
2126 | 2265 | <year>19??</year> |
2127 | 2266 | <publisher><unknown></publisher> |
2128 | 2267 | <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"/> | |
2131 | 2270 | </dataarea> |
2132 | 2271 | </part> |
2133 | 2272 | </software> |
2134 | 2273 | |
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> | |
2137 | 2276 | <year>19??</year> |
2138 | 2277 | <publisher><unknown></publisher> |
2139 | 2278 | <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"/> | |
2142 | 2281 | </dataarea> |
2143 | 2282 | </part> |
2144 | 2283 | </software> |
2145 | 2284 | |
2146 | 2285 | <software name="sharks"> |
2147 | <description> | |
2286 | <description>Sharks</description> | |
2148 | 2287 | <year>19??</year> |
2149 | 2288 | <publisher><unknown></publisher> |
2150 | 2289 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2154 | 2293 | </part> |
2155 | 2294 | </software> |
2156 | 2295 | |
2157 | <software name="snakeldr"> | |
2158 | <description>snakes_and_ladders</description> | |
2296 | <software name="snakelad"> | |
2297 | <description>Snakes and Ladders</description> | |
2159 | 2298 | <year>19??</year> |
2160 | 2299 | <publisher><unknown></publisher> |
2161 | 2300 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2166 | 2305 | </software> |
2167 | 2306 | |
2168 | 2307 | <software name="solitair"> |
2169 | <description> | |
2308 | <description>Solitaire</description> | |
2170 | 2309 | <year>19??</year> |
2171 | 2310 | <publisher><unknown></publisher> |
2172 | 2311 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2177 | 2316 | </software> |
2178 | 2317 | |
2179 | 2318 | <software name="slitepen"> |
2180 | <description> | |
2319 | <description>Sound Light Pen</description> | |
2181 | 2320 | <year>19??</year> |
2182 | 2321 | <publisher><unknown></publisher> |
2183 | 2322 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2188 | 2327 | </software> |
2189 | 2328 | |
2190 | 2329 | <software name="sndware2"> |
2191 | <description> | |
2330 | <description>Soundware II</description> | |
2192 | 2331 | <year>19??</year> |
2193 | 2332 | <publisher><unknown></publisher> |
2194 | 2333 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2199 | 2338 | </software> |
2200 | 2339 | |
2201 | 2340 | <software name="source"> |
2202 | <description> | |
2341 | <description>Source</description> | |
2203 | 2342 | <year>19??</year> |
2204 | 2343 | <publisher><unknown></publisher> |
2205 | 2344 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2210 | 2349 | </software> |
2211 | 2350 | |
2212 | 2351 | <software name="source1"> |
2213 | <description> | |
2352 | <description>Source 1</description> | |
2214 | 2353 | <year>19??</year> |
2215 | 2354 | <publisher><unknown></publisher> |
2216 | 2355 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2221 | 2360 | </software> |
2222 | 2361 | |
2223 | 2362 | <software name="source3"> |
2224 | <description> | |
2363 | <description>Source 3</description> | |
2225 | 2364 | <year>19??</year> |
2226 | 2365 | <publisher><unknown></publisher> |
2227 | 2366 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2232 | 2371 | </software> |
2233 | 2372 | |
2234 | 2373 | <software name="source4"> |
2235 | <description> | |
2374 | <description>Source 4</description> | |
2236 | 2375 | <year>19??</year> |
2237 | 2376 | <publisher><unknown></publisher> |
2238 | 2377 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2243 | 2382 | </software> |
2244 | 2383 | |
2245 | 2384 | <software name="stampprc"> |
2246 | <description> | |
2385 | <description>Stamp Price Lists</description> | |
2247 | 2386 | <year>19??</year> |
2248 | 2387 | <publisher><unknown></publisher> |
2249 | 2388 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2254 | 2393 | </software> |
2255 | 2394 | |
2256 | 2395 | <software name="startrek"> |
2257 | <description> | |
2396 | <description>Star Trek</description> | |
2258 | 2397 | <year>19??</year> |
2259 | 2398 | <publisher><unknown></publisher> |
2260 | 2399 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2264 | 2403 | </part> |
2265 | 2404 | </software> |
2266 | 2405 | |
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 | ||
2267 | 2428 | <software name="stat1"> |
2268 | <description> | |
2429 | <description>Statistics I</description> | |
2269 | 2430 | <year>19??</year> |
2270 | 2431 | <publisher><unknown></publisher> |
2271 | 2432 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2276 | 2437 | </software> |
2277 | 2438 | |
2278 | 2439 | <software name="stat2"> |
2279 | <description> | |
2440 | <description>Statistics II</description> | |
2280 | 2441 | <year>19??</year> |
2281 | 2442 | <publisher><unknown></publisher> |
2282 | 2443 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2287 | 2448 | </software> |
2288 | 2449 | |
2289 | 2450 | <software name="stat3"> |
2290 | <description> | |
2451 | <description>Statistics III</description> | |
2291 | 2452 | <year>19??</year> |
2292 | 2453 | <publisher><unknown></publisher> |
2293 | 2454 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2297 | 2458 | </part> |
2298 | 2459 | </software> |
2299 | 2460 | |
2300 | <software name="fortstr"> | |
2301 | <description>strings_fortran</description> | |
2302 | <year>19??</year> | |
2303 | <publisher><unknown></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 | ||
2317 | 2461 | <software name="supermon"> |
2318 | <description> | |
2462 | <description>Super Monitor</description> | |
2319 | 2463 | <year>19??</year> |
2320 | 2464 | <publisher><unknown></publisher> |
2321 | 2465 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2326 | 2470 | </software> |
2327 | 2471 | |
2328 | 2472 | <software name="swarms"> |
2329 | <description> | |
2473 | <description>Swarms</description> | |
2330 | 2474 | <year>19??</year> |
2331 | 2475 | <publisher><unknown></publisher> |
2332 | 2476 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2337 | 2481 | </software> |
2338 | 2482 | |
2339 | 2483 | <software name="tabltenn"> |
2340 | <description> | |
2484 | <description>Table Tennis for Two</description> | |
2341 | 2485 | <year>19??</year> |
2342 | 2486 | <publisher><unknown></publisher> |
2343 | 2487 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2348 | 2492 | </software> |
2349 | 2493 | |
2350 | 2494 | <software name="taylor"> |
2351 | <description> | |
2495 | <description>Taylor</description> | |
2352 | 2496 | <year>19??</year> |
2353 | 2497 | <publisher><unknown></publisher> |
2354 | 2498 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2365 | 2509 | </software> |
2366 | 2510 | |
2367 | 2511 | <software name="taylor1"> |
2368 | <description> | |
2512 | <description>Taylor #1</description> | |
2369 | 2513 | <year>19??</year> |
2370 | 2514 | <publisher><unknown></publisher> |
2371 | 2515 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2376 | 2520 | </software> |
2377 | 2521 | |
2378 | 2522 | <software name="taylor2"> |
2379 | <description> | |
2523 | <description>Taylor #2</description> | |
2380 | 2524 | <year>19??</year> |
2381 | 2525 | <publisher><unknown></publisher> |
2382 | 2526 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2387 | 2531 | </software> |
2388 | 2532 | |
2389 | 2533 | <software name="taylor3"> |
2390 | <description> | |
2534 | <description>Taylor #3</description> | |
2391 | 2535 | <year>19??</year> |
2392 | 2536 | <publisher><unknown></publisher> |
2393 | 2537 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2398 | 2542 | </software> |
2399 | 2543 | |
2400 | 2544 | <software name="taylor4"> |
2401 | <description> | |
2545 | <description>Taylor #4</description> | |
2402 | 2546 | <year>19??</year> |
2403 | 2547 | <publisher><unknown></publisher> |
2404 | 2548 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2409 | 2553 | </software> |
2410 | 2554 | |
2411 | 2555 | <software name="taylor5"> |
2412 | <description> | |
2556 | <description>Taylor #5</description> | |
2413 | 2557 | <year>19??</year> |
2414 | 2558 | <publisher><unknown></publisher> |
2415 | 2559 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2420 | 2564 | </software> |
2421 | 2565 | |
2422 | 2566 | <software name="taylor6"> |
2423 | <description> | |
2567 | <description>Taylor #6</description> | |
2424 | 2568 | <year>19??</year> |
2425 | 2569 | <publisher><unknown></publisher> |
2426 | 2570 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2431 | 2575 | </software> |
2432 | 2576 | |
2433 | 2577 | <software name="taylor7"> |
2434 | <description> | |
2578 | <description>Taylor #7</description> | |
2435 | 2579 | <year>19??</year> |
2436 | 2580 | <publisher><unknown></publisher> |
2437 | 2581 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2442 | 2586 | </software> |
2443 | 2587 | |
2444 | 2588 | <software name="taylor8"> |
2445 | <description> | |
2589 | <description>Taylor #8</description> | |
2446 | 2590 | <year>19??</year> |
2447 | 2591 | <publisher><unknown></publisher> |
2448 | 2592 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2453 | 2597 | </software> |
2454 | 2598 | |
2455 | 2599 | <software name="taylorv2"> |
2456 | <description> | |
2600 | <description>Taylor Vol. #2</description> | |
2457 | 2601 | <year>19??</year> |
2458 | 2602 | <publisher><unknown></publisher> |
2459 | 2603 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2464 | 2608 | </software> |
2465 | 2609 | |
2466 | 2610 | <software name="terminal"> |
2467 | <description> | |
2611 | <description>Terminal</description> | |
2468 | 2612 | <year>19??</year> |
2469 | 2613 | <publisher><unknown></publisher> |
2470 | 2614 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2474 | 2618 | </part> |
2475 | 2619 | </software> |
2476 | 2620 | |
2477 | <software name="termem"> | |
2478 | <description>terminal_em</description> | |
2621 | <software name="termemu"> | |
2622 | <description>Terminal Emulator</description> | |
2479 | 2623 | <year>19??</year> |
2480 | 2624 | <publisher><unknown></publisher> |
2481 | 2625 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2486 | 2630 | </software> |
2487 | 2631 | |
2488 | 2632 | <software name="textedit"> |
2489 | <description> | |
2633 | <description>Text Editor</description> | |
2490 | 2634 | <year>19??</year> |
2491 | 2635 | <publisher><unknown></publisher> |
2492 | 2636 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2497 | 2641 | </software> |
2498 | 2642 | |
2499 | 2643 | <software name="textfrmt"> |
2500 | <description> | |
2644 | <description>Text Formatter</description> | |
2501 | 2645 | <year>19??</year> |
2502 | 2646 | <publisher><unknown></publisher> |
2503 | 2647 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2508 | 2652 | </software> |
2509 | 2653 | |
2510 | 2654 | <software name="editor"> |
2511 | <description> | |
2655 | <description>The BASIC Editor (v2.A.82)</description> | |
2512 | 2656 | <year>19??</year> |
2513 | 2657 | <publisher><unknown></publisher> |
2514 | 2658 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2519 | 2663 | </software> |
2520 | 2664 | |
2521 | 2665 | <software name="tinyc"> |
2522 | <description> | |
2666 | <description>Tiny C v3.0</description> | |
2523 | 2667 | <year>19??</year> |
2524 | 2668 | <publisher><unknown></publisher> |
2525 | 2669 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2530 | 2674 | </software> |
2531 | 2675 | |
2532 | 2676 | <software name="tinypasc"> |
2533 | <description> | |
2677 | <description>Tiny Pascal</description> | |
2534 | 2678 | <year>19??</year> |
2535 | 2679 | <publisher><unknown></publisher> |
2536 | 2680 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2540 | 2684 | </part> |
2541 | 2685 | </software> |
2542 | 2686 | |
2687 | <software name="tpforth"> | |
2688 | <description>Tiny Pascal in FORTH</description> | |
2689 | <year>19??</year> | |
2690 | <publisher><unknown></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 | ||
2543 | 2698 | <software name="utility"> |
2544 | <description> | |
2699 | <description>Utility</description> | |
2545 | 2700 | <year>19??</year> |
2546 | 2701 | <publisher><unknown></publisher> |
2547 | 2702 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2552 | 2707 | </software> |
2553 | 2708 | |
2554 | 2709 | <software name="utility2"> |
2555 | <description> | |
2710 | <description>Utility 2</description> | |
2556 | 2711 | <year>19??</year> |
2557 | 2712 | <publisher><unknown></publisher> |
2558 | 2713 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2563 | 2718 | </software> |
2564 | 2719 | |
2565 | 2720 | <software name="utility3"> |
2566 | <description> | |
2721 | <description>Utility 3</description> | |
2567 | 2722 | <year>19??</year> |
2568 | 2723 | <publisher><unknown></publisher> |
2569 | 2724 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2573 | 2728 | </part> |
2574 | 2729 | </software> |
2575 | 2730 | |
2731 | <software name="watlanal"> | |
2732 | <description>WATALS/ANALIZ</description> | |
2733 | <year>19??</year> | |
2734 | <publisher><unknown></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 | ||
2576 | 2742 | <software name="wordking"> |
2577 | <description> | |
2743 | <description>Word King (v1.6)</description> | |
2578 | 2744 | <year>19??</year> |
2579 | 2745 | <publisher><unknown></publisher> |
2580 | 2746 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2585 | 2751 | </software> |
2586 | 2752 | |
2587 | 2753 | <software name="wordproc"> |
2588 | <description> | |
2754 | <description>Word Processor (v2.1)</description> | |
2589 | 2755 | <year>19??</year> |
2590 | 2756 | <publisher><unknown></publisher> |
2591 | 2757 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2596 | 2762 | </software> |
2597 | 2763 | |
2598 | 2764 | <software name="wordpzle"> |
2599 | <description> | |
2765 | <description>Word Puzzle</description> | |
2600 | 2766 | <year>19??</year> |
2601 | 2767 | <publisher><unknown></publisher> |
2602 | 2768 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2607 | 2773 | </software> |
2608 | 2774 | |
2609 | 2775 | <software name="wordy"> |
2610 | <description> | |
2776 | <description>Wordy</description> | |
2611 | 2777 | <year>19??</year> |
2612 | 2778 | <publisher><unknown></publisher> |
2613 | 2779 | <part name="flop1" interface="floppy_5_25"> |
r241781 | r241782 | |
2630 | 2796 | </software> |
2631 | 2797 | |
2632 | 2798 | <software name="zipcomp"> |
2633 | <description> | |
2799 | <description>ZIP Compiler</description> | |
2634 | 2800 | <year>19??</year> |
2635 | 2801 | <publisher><unknown></publisher> |
2636 | 2802 | <part name="flop1" interface="floppy_5_25"> |
r0 | r241782 | |
---|---|---|
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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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> |
r241781 | r241782 | |
---|---|---|
939 | 939 | </part> |
940 | 940 | </software> |
941 | 941 | |
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><unknown></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><unknown></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 | ||
942 | 1010 | <software name="dbase238"> <!-- CP/M-80 --> |
943 | 1011 | <description>dBASE II v2.38</description> |
944 | 1012 | <year>198?</year> |
r241781 | r241782 | |
1043 | 1111 | </part> |
1044 | 1112 | </software> |
1045 | 1113 | |
1046 | <software name="acad" | |
1114 | <software name="acad"> <!-- MS-DOS --> | |
1047 | 1115 | <description>AutoCAD</description> |
1048 | 1116 | <year>1987</year> |
1049 | 1117 | <publisher><unknown></publisher> |
r241781 | r241782 | |
1060 | 1128 | </part> |
1061 | 1129 | </software> |
1062 | 1130 | |
1063 | <software name="acada" cloneof="acad" | |
1131 | <software name="acada" cloneof="acad"> <!-- MS-DOS --> | |
1064 | 1132 | <description>AutoCAD (Alt 1)</description> |
1065 | 1133 | <year>1987</year> |
1066 | 1134 | <publisher><unknown></publisher> |
r241781 | r241782 | |
1087 | 1155 | </part> |
1088 | 1156 | </software> |
1089 | 1157 | |
1090 | <software name="acadb" cloneof="acad" | |
1158 | <software name="acadb" cloneof="acad"> <!-- MS-DOS --> | |
1091 | 1159 | <description>AutoCAD (Alt 2)</description> |
1092 | 1160 | <year>1987</year> |
1093 | 1161 | <publisher><unknown></publisher> |
r241781 | r241782 | |
---|---|---|
24 | 24 | <software name="arcs"> |
25 | 25 | <description>Archivers</description> |
26 | 26 | <year>?????</year> |
27 | <publisher>n | |
27 | <publisher><unofficial></publisher> | |
28 | 28 | <part name="flop1" interface="floppy_5_25"> |
29 | 29 | <feature name="part_id" value="Archivers" /> |
30 | 30 | <dataarea name="flop" size="348848"> |
r241781 | r241782 | |
36 | 36 | <software name="editor"> |
37 | 37 | <description>VDE 2.66</description> |
38 | 38 | <year>?????</year> |
39 | <publisher>n | |
39 | <publisher><unofficial></publisher> | |
40 | 40 | <part name="flop1" interface="floppy_5_25"> |
41 | 41 | <feature name="part_id" value="VDE 2.66" /> |
42 | 42 | <dataarea name="flop" size="348848"> |
r241781 | r241782 | |
48 | 48 | <software name="extrauti"> |
49 | 49 | <description>Extra Utilities</description> |
50 | 50 | <year>?????</year> |
51 | <publisher>n | |
51 | <publisher><unofficial></publisher> | |
52 | 52 | <part name="flop1" interface="floppy_5_25"> |
53 | 53 | <feature name="part_id" value="Extra Utilities" /> |
54 | 54 | <dataarea name="flop" size="348848"> |
r241781 | r241782 | |
60 | 60 | <software name="modems"> |
61 | 61 | <description>Modem Sample & M80 & L80</description> |
62 | 62 | <year>?????</year> |
63 | <publisher>n | |
63 | <publisher><unofficial></publisher> | |
64 | 64 | <part name="flop1" interface="floppy_5_25"> |
65 | 65 | <feature name="part_id" value="Modem Sample & M80 & L80" /> |
66 | 66 | <dataarea name="flop" size="348848"> |
r241781 | r241782 | |
72 | 72 | <software name="promprog"> |
73 | 73 | <description>PROM Progs</description> |
74 | 74 | <year>?????</year> |
75 | <publisher>n | |
75 | <publisher><unofficial></publisher> | |
76 | 76 | <part name="flop1" interface="floppy_5_25"> |
77 | 77 | <feature name="part_id" value="PROM Progs" /> |
78 | 78 | <dataarea name="flop" size="348848"> |
r241781 | r241782 | |
84 | 84 | <software name="px4util1"> |
85 | 85 | <description>PX-4 Utils</description> |
86 | 86 | <year>?????</year> |
87 | <publisher>n | |
87 | <publisher><unofficial></publisher> | |
88 | 88 | <part name="flop1" interface="floppy_5_25"> |
89 | 89 | <feature name="part_id" value="PX-4 Utils" /> |
90 | 90 | <dataarea name="flop" size="348848"> |
r241781 | r241782 | |
96 | 96 | <software name="px4util2"> |
97 | 97 | <description>PX-4 Utility Disk</description> |
98 | 98 | <year>?????</year> |
99 | <publisher>n | |
99 | <publisher><unofficial></publisher> | |
100 | 100 | <part name="flop1" interface="floppy_5_25"> |
101 | 101 | <feature name="part_id" value="PX-4 Utility Disk" /> |
102 | 102 | <dataarea name="flop" size="348848"> |
r241781 | r241782 | |
108 | 108 | <software name="px4util3"> |
109 | 109 | <description>PX-4 Utility Disk 2</description> |
110 | 110 | <year>?????</year> |
111 | <publisher>n | |
111 | <publisher><unofficial></publisher> | |
112 | 112 | <part name="flop1" interface="floppy_5_25"> |
113 | 113 | <feature name="part_id" value="PX-4 Utility Disk 2" /> |
114 | 114 | <dataarea name="flop" size="348848"> |
r241781 | r241782 | |
120 | 120 | <software name="px4wand"> |
121 | 121 | <description>PX-4 Wanderer</description> |
122 | 122 | <year>?????</year> |
123 | <publisher>n | |
123 | <publisher><unofficial></publisher> | |
124 | 124 | <part name="flop1" interface="floppy_5_25"> |
125 | 125 | <feature name="part_id" value="PX-4 Wanderer" /> |
126 | 126 | <dataarea name="flop" size="348848"> |
r241781 | r241782 | |
132 | 132 | <software name="px8epstf"> |
133 | 133 | <description>PX-8 EPS (TF-20 bootdisk)</description> |
134 | 134 | <year>?????</year> |
135 | <publisher>n | |
135 | <publisher><unofficial></publisher> | |
136 | 136 | <part name="flop1" interface="floppy_5_25"> |
137 | 137 | <feature name="part_id" value="PX-8 EPS (TF-20 bootdisk)" /> |
138 | 138 | <dataarea name="flop" size="348848"> |
r241781 | r241782 | |
144 | 144 | <software name="px8games"> |
145 | 145 | <description>PX-8 Games</description> |
146 | 146 | <year>?????</year> |
147 | <publisher>n | |
147 | <publisher><unofficial></publisher> | |
148 | 148 | <part name="flop1" interface="floppy_5_25"> |
149 | 149 | <feature name="part_id" value="PX-8 Games" /> |
150 | 150 | <dataarea name="flop" size="348848"> |
r241781 | r241782 | |
156 | 156 | <software name="scratch"> |
157 | 157 | <description>Scratch</description> |
158 | 158 | <year>?????</year> |
159 | <publisher>n | |
159 | <publisher><unofficial></publisher> | |
160 | 160 | <part name="flop1" interface="floppy_5_25"> |
161 | 161 | <feature name="part_id" value="Scratch" /> |
162 | 162 | <dataarea name="flop" size="348848"> |
r241781 | r241782 | |
---|---|---|
5 | 5 | |
6 | 6 | <software name="asteroid"> |
7 | 7 | <description>Asteroidi</description> |
8 | <year>19??</year> | |
9 | <publisher><unknown></publisher> | |
8 | <year>1984</year> | |
9 | <publisher>GAC Software</publisher> | |
10 | 10 | <part name="cass1" interface="galaxy_cass"> |
11 | 11 | <dataarea name="cass" size="1298"> |
12 | <rom name="asteroidi.gtp" size="1298" crc="70aa80a3" sha1="1bc96cdf7602bbb24b02f5f9cb9aac709f3a7080" offset="0 | |
12 | <rom name="asteroidi.gtp" size="1298" crc="70aa80a3" sha1="1bc96cdf7602bbb24b02f5f9cb9aac709f3a7080" offset="0" /> | |
13 | 13 | </dataarea> |
14 | 14 | </part> |
15 | 15 | </software> |
r241781 | r241782 | |
20 | 20 | <publisher><unknown></publisher> |
21 | 21 | <part name="cass1" interface="galaxy_cass"> |
22 | 22 | <dataarea name="cass" size="1017"> |
23 | <rom name="biljar.gtp" size="1017" crc="469ba6a2" sha1="b93a3a968e3fe004958f61d6fcf63268be01517d" offset="0 | |
23 | <rom name="biljar.gtp" size="1017" crc="469ba6a2" sha1="b93a3a968e3fe004958f61d6fcf63268be01517d" offset="0" /> | |
24 | 24 | </dataarea> |
25 | 25 | </part> |
26 | 26 | </software> |
27 | 27 | |
28 | <software name="biorita1"> | |
29 | <description>Bioritam1</description> | |
30 | <year>19??</year> | |
31 | <publisher><unknown></publisher> | |
28 | <software name="bioritam"> | |
29 | <description>Bioritam</description> | |
30 | <year>1984</year> | |
31 | <publisher>Galaxy Computer</publisher> | |
32 | 32 | <part name="cass1" interface="galaxy_cass"> |
33 | 33 | <dataarea name="cass" size="2996"> |
34 | <rom name="bioritam1.gtp" size="2996" crc="86d9274a" sha1="b71ef12740d0cb10d8ae0b5eb30d6f3fd1f7fb86" offset="0 | |
34 | <rom name="bioritam1.gtp" size="2996" crc="86d9274a" sha1="b71ef12740d0cb10d8ae0b5eb30d6f3fd1f7fb86" offset="0" /> | |
35 | 35 | </dataarea> |
36 | 36 | </part> |
37 | 37 | </software> |
38 | 38 | |
39 | 39 | <software name="biorita2"> |
40 | <description>Bioritam | |
40 | <description>Bioritam (Alt)</description> | |
41 | 41 | <year>19??</year> |
42 | 42 | <publisher><unknown></publisher> |
43 | 43 | <part name="cass1" interface="galaxy_cass"> |
44 | 44 | <dataarea name="cass" size="1366"> |
45 | <rom name="bioritam2.gtp" size="1366" crc="997e491e" sha1="b61d390bc33e2568526af5a2116ec87d7ac7e505" offset="0 | |
45 | <rom name="bioritam2.gtp" size="1366" crc="997e491e" sha1="b61d390bc33e2568526af5a2116ec87d7ac7e505" offset="0" /> | |
46 | 46 | </dataarea> |
47 | 47 | </part> |
48 | 48 | </software> |
49 | 49 | |
50 | <software name="bladall"> | |
51 | <description>BladeAlley</description> | |
52 | <year>19??</year> | |
53 | <publisher><unknown></publisher> | |
50 | <software name="bladeall"> | |
51 | <description>Blade Alley</description> | |
52 | <year>1985</year> | |
53 | <publisher>Jasmin Halilovic</publisher> | |
54 | 54 | <part name="cass1" interface="galaxy_cass"> |
55 | 55 | <dataarea name="cass" size="1879"> |
56 | <rom name="bladealley.gtp" size="1879" crc="723da222" sha1="b8d7978a67595ef1107919771cbe7b9919ad2fe5" offset="0 | |
56 | <rom name="bladealley.gtp" size="1879" crc="723da222" sha1="b8d7978a67595ef1107919771cbe7b9919ad2fe5" offset="0" /> | |
57 | 57 | </dataarea> |
58 | 58 | </part> |
59 | 59 | </software> |
r241781 | r241782 | |
61 | 61 | <software name="bombard"> |
62 | 62 | <description>Bombarder</description> |
63 | 63 | <year>19??</year> |
64 | <publisher> | |
64 | <publisher>Nenad Balint</publisher> | |
65 | 65 | <part name="cass1" interface="galaxy_cass"> |
66 | 66 | <dataarea name="cass" size="1880"> |
67 | <rom name="bombarder.gtp" size="1880" crc="7d584b08" sha1="a0629636f015381f8d4132af8d95577fdef12ed7" offset="0 | |
67 | <rom name="bombarder.gtp" size="1880" crc="7d584b08" sha1="a0629636f015381f8d4132af8d95577fdef12ed7" offset="0" /> | |
68 | 68 | </dataarea> |
69 | 69 | </part> |
70 | 70 | </software> |
71 | 71 | |
72 | 72 | <software name="charfire"> |
73 | <description>Chariots | |
73 | <description>Chariots of Fire</description> | |
74 | 74 | <year>19??</year> |
75 | <publisher> | |
75 | <publisher>Dragan Yujkov</publisher> | |
76 | 76 | <part name="cass1" interface="galaxy_cass"> |
77 | 77 | <dataarea name="cass" size="290"> |
78 | <rom name="chariotsoffire.gtp" size="290" crc="33e9fad9" sha1="7e80787f2314c6dad333856b2a1683ddcffafdf4" offset="0 | |
78 | <rom name="chariotsoffire.gtp" size="290" crc="33e9fad9" sha1="7e80787f2314c6dad333856b2a1683ddcffafdf4" offset="0" /> | |
79 | 79 | </dataarea> |
80 | 80 | </part> |
81 | 81 | </software> |
r241781 | r241782 | |
86 | 86 | <publisher><unknown></publisher> |
87 | 87 | <part name="cass1" interface="galaxy_cass"> |
88 | 88 | <dataarea name="cass" size="411"> |
89 | <rom name="comets.gtp" size="411" crc="8ccc82a6" sha1="e283c077c660182ffba71f1f5300f893eaf13915" offset="0 | |
89 | <rom name="comets.gtp" size="411" crc="8ccc82a6" sha1="e283c077c660182ffba71f1f5300f893eaf13915" offset="0" /> | |
90 | 90 | </dataarea> |
91 | 91 | </part> |
92 | 92 | </software> |
93 | 93 | |
94 | 94 | <software name="dijamant"> |
95 | <description>DijamantskiRudnik</description> | |
96 | <year>19??</year> | |
97 | <publisher><unknown></publisher> | |
95 | <description>Dijamantski Rudnik</description> | |
96 | <year>1985</year> | |
97 | <publisher>Nenad Balint</publisher> | |
98 | 98 | <part name="cass1" interface="galaxy_cass"> |
99 | 99 | <dataarea name="cass" size="2754"> |
100 | <rom name="dijamantskirudnik.gtp" size="2754" crc="d7c5a9ba" sha1="f1669e88644fe4fca1387b00f617aff80162028e" offset="0 | |
100 | <rom name="dijamantskirudnik.gtp" size="2754" crc="d7c5a9ba" sha1="f1669e88644fe4fca1387b00f617aff80162028e" offset="0" /> | |
101 | 101 | </dataarea> |
102 | 102 | </part> |
103 | 103 | </software> |
104 | 104 | |
105 | 105 | <software name="dijamanta" cloneof="dijamant"> |
106 | <description>DijamantskiRudnik_ALT</description> | |
107 | <year>19??</year> | |
108 | <publisher><unknown></publisher> | |
106 | <description>Dijamantski Rudnik (Alt Format)</description> | |
107 | <year>1985</year> | |
108 | <publisher>Nenad Balint</publisher> | |
109 | 109 | <part name="cass1" interface="galaxy_cass"> |
110 | 110 | <dataarea name="cass" size="8244"> |
111 | <rom name="dr.gal" size="8244" crc="c73c2187" sha1="9e2fe7856657df1db846f54f008e7e8a823aa8ac" offset="0 | |
111 | <rom name="dr.gal" size="8244" crc="c73c2187" sha1="9e2fe7856657df1db846f54f008e7e8a823aa8ac" offset="0" /> | |
112 | 112 | </dataarea> |
113 | 113 | </part> |
114 | 114 | </software> |
r241781 | r241782 | |
119 | 119 | <publisher><unknown></publisher> |
120 | 120 | <part name="cass1" interface="galaxy_cass"> |
121 | 121 | <dataarea name="cass" size="2913"> |
122 | <rom name="egemond.gtp" size="2913" crc="7c85c513" sha1="ca001178ba823a3a7258147473723321f424c535" offset="0 | |
122 | <rom name="egemond.gtp" size="2913" crc="7c85c513" sha1="ca001178ba823a3a7258147473723321f424c535" offset="0" /> | |
123 | 123 | </dataarea> |
124 | 124 | </part> |
125 | 125 | </software> |
126 | 126 | |
127 | 127 | <software name="evolucia"> |
128 | 128 | <description>Evolucija</description> |
129 | <year>19??</year> | |
130 | <publisher><unknown></publisher> | |
129 | <year>1984</year> | |
130 | <publisher>Dejan Ristanovic</publisher> | |
131 | 131 | <part name="cass1" interface="galaxy_cass"> |
132 | 132 | <dataarea name="cass" size="1063"> |
133 | <rom name="evolucija.gtp" size="1063" crc="c3a8c0f1" sha1="b195af2a260db880166aae754054d1a89a34f73f" offset="0 | |
133 | <rom name="evolucija.gtp" size="1063" crc="c3a8c0f1" sha1="b195af2a260db880166aae754054d1a89a34f73f" offset="0" /> | |
134 | 134 | </dataarea> |
135 | 135 | </part> |
136 | 136 | </software> |
137 | 137 | |
138 | 138 | <software name="f1"> |
139 | <description>Formula1</description> | |
139 | <description>Formula 1</description> | |
140 | 140 | <year>19??</year> |
141 | 141 | <publisher><unknown></publisher> |
142 | 142 | <part name="cass1" interface="galaxy_cass"> |
143 | 143 | <dataarea name="cass" size="1194"> |
144 | <rom name="formula1.gtp" size="1194" crc="3efb14c1" sha1="8a48a4bf98c59ae2ed373f6c2db30dfb1cbf14be" offset="0 | |
144 | <rom name="formula1.gtp" size="1194" crc="3efb14c1" sha1="8a48a4bf98c59ae2ed373f6c2db30dfb1cbf14be" offset="0" /> | |
145 | 145 | </dataarea> |
146 | 146 | </part> |
147 | 147 | </software> |
148 | 148 | |
149 | 149 | <software name="four"> |
150 | 150 | <description>Four</description> |
151 | <year>19??</year> | |
152 | <publisher><unknown></publisher> | |
151 | <year>1986</year> | |
152 | <publisher>Dragan Yujkov</publisher> | |
153 | 153 | <part name="cass1" interface="galaxy_cass"> |
154 | 154 | <dataarea name="cass" size="2631"> |
155 | <rom name="four.gtp" size="2631" crc="9ee92e36" sha1="9c7b83ba138e77bc258d3e495146e8971779b4d2" offset="0 | |
155 | <rom name="four.gtp" size="2631" crc="9ee92e36" sha1="9c7b83ba138e77bc258d3e495146e8971779b4d2" offset="0" /> | |
156 | 156 | </dataarea> |
157 | 157 | </part> |
158 | 158 | </software> |
159 | 159 | |
160 | 160 | <software name="galakrat"> |
161 | <description>GalaktickiRat</description> | |
162 | <year>19??</year> | |
163 | <publisher><unknown></publisher> | |
161 | <description>Galakticki Rat</description> | |
162 | <year>1985</year> | |
163 | <publisher>Antonic Voja</publisher> | |
164 | 164 | <part name="cass1" interface="galaxy_cass"> |
165 | 165 | <dataarea name="cass" size="2238"> |
166 | <rom name="galaktickirat.gtp" size="2238" crc="e7a5260e" sha1="510c411b524b80b621655f4038581811818dc7d2" offset="0 | |
166 | <rom name="galaktickirat.gtp" size="2238" crc="e7a5260e" sha1="510c411b524b80b621655f4038581811818dc7d2" offset="0" /> | |
167 | 167 | </dataarea> |
168 | 168 | </part> |
169 | 169 | </software> |
170 | 170 | |
171 | 171 | <software name="hhorace"> |
172 | <description>HungryHorace</description> | |
172 | <description>Hungry Horace</description> | |
173 | 173 | <year>19??</year> |
174 | 174 | <publisher><unknown></publisher> |
175 | 175 | <part name="cass1" interface="galaxy_cass"> |
176 | 176 | <dataarea name="cass" size="797"> |
177 | <rom name="hungryhorace.gtp" size="797" crc="f3c15d57" sha1="e1217926da7560e9a6a6582df3bbe22ca59e2ed1" offset="0 | |
177 | <rom name="hungryhorace.gtp" size="797" crc="f3c15d57" sha1="e1217926da7560e9a6a6582df3bbe22ca59e2ed1" offset="0" /> | |
178 | 178 | </dataarea> |
179 | 179 | </part> |
180 | 180 | </software> |
181 | 181 | |
182 | 182 | <software name="igradisk"> |
183 | <description>IgraDiskova</description> | |
184 | <year>19??</year> | |
185 | <publisher><unknown></publisher> | |
183 | <description>Igra Diskova</description> | |
184 | <year>1985</year> | |
185 | <publisher>Yojislav Mihailovic</publisher> | |
186 | 186 | <part name="cass1" interface="galaxy_cass"> |
187 | 187 | <dataarea name="cass" size="1768"> |
188 | <rom name="igradiskova.gtp" size="1768" crc="7e37f44d" sha1="c60e55ff82287c7f0d610c1f403de7f75f206054" offset="0 | |
188 | <rom name="igradiskova.gtp" size="1768" crc="7e37f44d" sha1="c60e55ff82287c7f0d610c1f403de7f75f206054" offset="0" /> | |
189 | 189 | </dataarea> |
190 | 190 | </part> |
191 | 191 | </software> |
192 | 192 | |
193 | 193 | <software name="spiridon"> |
194 | <description>InspektorSpiridon</description> | |
194 | <description>Inspektor Spiridon</description> | |
195 | 195 | <year>19??</year> |
196 | 196 | <publisher><unknown></publisher> |
197 | 197 | <part name="cass1" interface="galaxy_cass"> |
198 | 198 | <dataarea name="cass" size="4112"> |
199 | <rom name="inspektorspiridon.gtp" size="4112" crc="15a1ef41" sha1="0f173c16aec2abde535fdb88438a8408c1c114ec" offset="0 | |
199 | <rom name="inspektorspiridon.gtp" size="4112" crc="15a1ef41" sha1="0f173c16aec2abde535fdb88438a8408c1c114ec" offset="0" /> | |
200 | 200 | </dataarea> |
201 | 201 | </part> |
202 | 202 | <part name="cass2" interface="galaxy_cass"> |
203 | 203 | <dataarea name="cass" size="2255"> |
204 | <rom name="inspektorspiridonupustvo.gtp" size="2255" crc="01056c67" sha1="d658f2a5b749f20bdb0bd31b33e2a7a95cf3d378" offset="0 | |
204 | <rom name="inspektorspiridonupustvo.gtp" size="2255" crc="01056c67" sha1="d658f2a5b749f20bdb0bd31b33e2a7a95cf3d378" offset="0" /> | |
205 | 205 | </dataarea> |
206 | 206 | </part> |
207 | 207 | <part name="cass3" interface="galaxy_cass"> |
208 | 208 | <dataarea name="cass" size="549"> |
209 | <rom name="inspektorspiridonvaranje.gtp" size="549" crc="3c780376" sha1="5bd7015082a350dda324ca8d497e5cbd0d73a289" offset="0 | |
209 | <rom name="inspektorspiridonvaranje.gtp" size="549" crc="3c780376" sha1="5bd7015082a350dda324ca8d497e5cbd0d73a289" offset="0" /> | |
210 | 210 | </dataarea> |
211 | 211 | </part> |
212 | 212 | </software> |
213 | 213 | |
214 | 214 | <software name="jumpjack"> |
215 | <description>JumpingJack</description> | |
216 | <year>19??</year> | |
217 | <publisher><unknown></publisher> | |
215 | <description>Jumping Jack</description> | |
216 | <year>1985</year> | |
217 | <publisher>Antonic Voja</publisher> | |
218 | 218 | <part name="cass1" interface="galaxy_cass"> |
219 | 219 | <dataarea name="cass" size="1891"> |
220 | <rom name="jumpingjack.gtp" size="1891" crc="4b158c1d" sha1="fb6019ac9fbefd87ffcba592178b6568607680b0" offset="0 | |
220 | <rom name="jumpingjack.gtp" size="1891" crc="4b158c1d" sha1="fb6019ac9fbefd87ffcba592178b6568607680b0" offset="0" /> | |
221 | 221 | </dataarea> |
222 | 222 | </part> |
223 | 223 | </software> |
224 | 224 | |
225 | 225 | <software name="lightcyc"> |
226 | <description>LightCycles</description> | |
227 | <year>19??</year> | |
228 | <publisher><unknown></publisher> | |
226 | <description>Light Cycles</description> | |
227 | <year>1985</year> | |
228 | <publisher>Bojan Stanojevic</publisher> | |
229 | 229 | <part name="cass1" interface="galaxy_cass"> |
230 | 230 | <dataarea name="cass" size="1245"> |
231 | <rom name="lightcycles.gtp" size="1245" crc="838cf2e2" sha1="6da589007fbf3688f63da88ced241907e8bee774" offset="0 | |
231 | <rom name="lightcycles.gtp" size="1245" crc="838cf2e2" sha1="6da589007fbf3688f63da88ced241907e8bee774" offset="0" /> | |
232 | 232 | </dataarea> |
233 | 233 | </part> |
234 | 234 | </software> |
235 | 235 | |
236 | 236 | <software name="lightcy2"> |
237 | <description>LightCycles | |
237 | <description>Light Cycles (Alt)</description> | |
238 | 238 | <year>19??</year> |
239 | 239 | <publisher><unknown></publisher> |
240 | 240 | <part name="cass1" interface="galaxy_cass"> |
241 | 241 | <dataarea name="cass" size="1550"> |
242 | <rom name="lightcycles2.gtp" size="1550" crc="f271a8a9" sha1="00dc59dfa6dd6a33edbbedc18f6300e445f170a0" offset="0 | |
242 | <rom name="lightcycles2.gtp" size="1550" crc="f271a8a9" sha1="00dc59dfa6dd6a33edbbedc18f6300e445f170a0" offset="0" /> | |
243 | 243 | </dataarea> |
244 | 244 | </part> |
245 | 245 | </software> |
246 | 246 | |
247 | 247 | <software name="lightshw"> |
248 | <description>LightShow</description> | |
249 | <year>19??</year> | |
250 | <publisher><unknown></publisher> | |
248 | <description>Light Show</description> | |
249 | <year>1987</year> | |
250 | <publisher>Dragan Vujkov</publisher> | |
251 | 251 | <part name="cass1" interface="galaxy_cass"> |
252 | 252 | <dataarea name="cass" size="3001"> |
253 | <rom name="lightshow.gtp" size="3001" crc="27ae9809" sha1="d8a95e689dd8c84b71cf375c5f57010e8a9ae4b4" offset="0 | |
253 | <rom name="lightshow.gtp" size="3001" crc="27ae9809" sha1="d8a95e689dd8c84b71cf375c5f57010e8a9ae4b4" offset="0" /> | |
254 | 254 | </dataarea> |
255 | 255 | </part> |
256 | 256 | </software> |
257 | 257 | |
258 | 258 | <software name="mminer"> |
259 | <description>ManicMiner</description> | |
259 | <description>Manic Miner</description> | |
260 | 260 | <year>19??</year> |
261 | 261 | <publisher><unknown></publisher> |
262 | 262 | <part name="cass1" interface="galaxy_cass"> |
263 | 263 | <dataarea name="cass" size="4378"> |
264 | <rom name="manicminer.gtp" size="4378" crc="2ab18f85" sha1="ad12006ccc3bc5c8e27c60eaeac83164ab1b86eb" offset="0 | |
264 | <rom name="manicminer.gtp" size="4378" crc="2ab18f85" sha1="ad12006ccc3bc5c8e27c60eaeac83164ab1b86eb" offset="0" /> | |
265 | 265 | </dataarea> |
266 | 266 | </part> |
267 | 267 | </software> |
268 | 268 | |
269 | 269 | <software name="mastrmnd"> |
270 | 270 | <description>Mastermajnd</description> |
271 | <year>19??</year> | |
272 | <publisher><unknown></publisher> | |
271 | <year>1984</year> | |
272 | <publisher>Dejan Ristanovic</publisher> | |
273 | 273 | <part name="cass1" interface="galaxy_cass"> |
274 | 274 | <dataarea name="cass" size="2077"> |
275 | <rom name="mastermajnd.gtp" size="2077" crc="6daf8f56" sha1="fe6f3f6fbbc75cded96d3217c7f4475f81bb3065" offset="0 | |
275 | <rom name="mastermajnd.gtp" size="2077" crc="6daf8f56" sha1="fe6f3f6fbbc75cded96d3217c7f4475f81bb3065" offset="0" /> | |
276 | 276 | </dataarea> |
277 | 277 | </part> |
278 | 278 | </software> |
279 | 279 | |
280 | 280 | <software name="mastrmn2"> |
281 | <description>Mastermind | |
281 | <description>Mastermind</description> | |
282 | 282 | <year>19??</year> |
283 | 283 | <publisher><unknown></publisher> |
284 | 284 | <part name="cass1" interface="galaxy_cass"> |
285 | 285 | <dataarea name="cass" size="1035"> |
286 | <rom name="mastermind2.gtp" size="1035" crc="f27a7818" sha1="b8b93ce87792bd48e59e11e583838e2a8eea937d" offset="0 | |
286 | <rom name="mastermind2.gtp" size="1035" crc="f27a7818" sha1="b8b93ce87792bd48e59e11e583838e2a8eea937d" offset="0" /> | |
287 | 287 | </dataarea> |
288 | 288 | </part> |
289 | 289 | </software> |
r241781 | r241782 | |
294 | 294 | <publisher><unknown></publisher> |
295 | 295 | <part name="cass1" interface="galaxy_cass"> |
296 | 296 | <dataarea name="cass" size="2530"> |
297 | <rom name="maze.gtp" size="2530" crc="9a2eb6e9" sha1="89fc487ef0f8e505525e98396ecc5a16a70379d5" offset="0 | |
297 | <rom name="maze.gtp" size="2530" crc="9a2eb6e9" sha1="89fc487ef0f8e505525e98396ecc5a16a70379d5" offset="0" /> | |
298 | 298 | </dataarea> |
299 | 299 | </part> |
300 | 300 | </software> |
r241781 | r241782 | |
305 | 305 | <publisher><unknown></publisher> |
306 | 306 | <part name="cass1" interface="galaxy_cass"> |
307 | 307 | <dataarea name="cass" size="2357"> |
308 | <rom name="memorija.gtp" size="2357" crc="c5db1192" sha1="8d1c475f1b18f5b9e05583bfdafda1c2e45378c3" offset="0 | |
308 | <rom name="memorija.gtp" size="2357" crc="c5db1192" sha1="8d1c475f1b18f5b9e05583bfdafda1c2e45378c3" offset="0" /> | |
309 | 309 | </dataarea> |
310 | 310 | </part> |
311 | 311 | </software> |
r241781 | r241782 | |
313 | 313 | <software name="monitor"> |
314 | 314 | <description>Monitor</description> |
315 | 315 | <year>19??</year> |
316 | <publisher> | |
316 | <publisher>Antonic Voja</publisher> | |
317 | 317 | <part name="cass1" interface="galaxy_cass"> |
318 | 318 | <dataarea name="cass" size="2073"> |
319 | <rom name="monitor.gtp" size="2073" crc="f22eceb3" sha1="c9830a9d419681b9f345b44b091c0d82d4239a08" offset="0 | |
319 | <rom name="monitor.gtp" size="2073" crc="f22eceb3" sha1="c9830a9d419681b9f345b44b091c0d82d4239a08" offset="0" /> | |
320 | 320 | </dataarea> |
321 | 321 | </part> |
322 | 322 | </software> |
323 | 323 | |
324 | 324 | <software name="nightpil"> |
325 | <description>NightPilot</description> | |
326 | <year>19??</year> | |
327 | <publisher><unknown></publisher> | |
325 | <description>Night Pilot</description> | |
326 | <year>1985</year> | |
327 | <publisher>Dragutin Vukotic</publisher> | |
328 | 328 | <part name="cass1" interface="galaxy_cass"> |
329 | 329 | <dataarea name="cass" size="4854"> |
330 | <rom name="nightpilot.gtp" size="4854" crc="97f02860" sha1="44c4cec4abb012e81dfdc4255f4c42b82e9ff167" offset="0 | |
330 | <rom name="nightpilot.gtp" size="4854" crc="97f02860" sha1="44c4cec4abb012e81dfdc4255f4c42b82e9ff167" offset="0" /> | |
331 | 331 | </dataarea> |
332 | 332 | </part> |
333 | 333 | </software> |
r241781 | r241782 | |
335 | 335 | <software name="oscil"> |
336 | 336 | <description>Oscilacije</description> |
337 | 337 | <year>19??</year> |
338 | <publisher> | |
338 | <publisher>Dragan Vujkov</publisher> | |
339 | 339 | <part name="cass1" interface="galaxy_cass"> |
340 | 340 | <dataarea name="cass" size="504"> |
341 | <rom name="oscilacije.gtp" size="504" crc="83392fb3" sha1="bce729ee54a326ee7db9c9dd7dd33145b0cc64db" offset="0 | |
341 | <rom name="oscilacije.gtp" size="504" crc="83392fb3" sha1="bce729ee54a326ee7db9c9dd7dd33145b0cc64db" offset="0" /> | |
342 | 342 | </dataarea> |
343 | 343 | </part> |
344 | 344 | </software> |
345 | 345 | |
346 | 346 | <software name="pacmanp"> |
347 | <description>PacManPlus</description> | |
347 | <description>Pac Man (Plus)</description> | |
348 | 348 | <year>19??</year> |
349 | <publisher> | |
349 | <publisher>Josip Perusanec</publisher> | |
350 | 350 | <part name="cass1" interface="galaxy_cass"> |
351 | 351 | <dataarea name="cass" size="12572"> |
352 | <rom name="pacmanplus.gtp" size="12572" crc="cbb8af07" sha1="e3f048454c4a9d62835f80256fdfebbfaef5561b" offset="0 | |
352 | <rom name="pacmanplus.gtp" size="12572" crc="cbb8af07" sha1="e3f048454c4a9d62835f80256fdfebbfaef5561b" offset="0" /> | |
353 | 353 | </dataarea> |
354 | 354 | </part> |
355 | 355 | </software> |
356 | 356 | |
357 | 357 | <software name="pamtilic"> |
358 | 358 | <description>Pamtilice</description> |
359 | <year>19??</year> | |
360 | <publisher><unknown></publisher> | |
359 | <year>1985</year> | |
360 | <publisher>Peca Milosavljevic</publisher> | |
361 | 361 | <part name="cass1" interface="galaxy_cass"> |
362 | 362 | <dataarea name="cass" size="3076"> |
363 | <rom name="pamtilice.gtp" size="3076" crc="1ae4d73f" sha1="60332bc1ac30abe9f737a8524fcb581003fd7077" offset="0 | |
363 | <rom name="pamtilice.gtp" size="3076" crc="1ae4d73f" sha1="60332bc1ac30abe9f737a8524fcb581003fd7077" offset="0" /> | |
364 | 364 | </dataarea> |
365 | 365 | </part> |
366 | 366 | </software> |
367 | 367 | |
368 | 368 | <software name="poker"> |
369 | 369 | <description>Poker</description> |
370 | <year>19??</year> | |
371 | <publisher><unknown></publisher> | |
370 | <year>1985</year> | |
371 | <publisher>Nenad Balint</publisher> | |
372 | 372 | <part name="cass1" interface="galaxy_cass"> |
373 | 373 | <dataarea name="cass" size="4424"> |
374 | <rom name="poker.gtp" size="4424" crc="ff4d5af3" sha1="59258c130121ac718ca8f256f293ef2e4e9742df" offset="0 | |
374 | <rom name="poker.gtp" size="4424" crc="ff4d5af3" sha1="59258c130121ac718ca8f256f293ef2e4e9742df" offset="0" /> | |
375 | 375 | </dataarea> |
376 | 376 | </part> |
377 | 377 | </software> |
378 | 378 | |
379 | 379 | <software name="pozivniz"> |
380 | <description>PozivniZnak</description> | |
380 | <description>Pozivni Znak</description> | |
381 | 381 | <year>19??</year> |
382 | <publisher> | |
382 | <publisher>Dragan Vujkov</publisher> | |
383 | 383 | <part name="cass1" interface="galaxy_cass"> |
384 | 384 | <dataarea name="cass" size="414"> |
385 | <rom name="pozivniznak.gtp" size="414" crc="2d7273a3" sha1="694c770409781f96b422a5b55f9222700fa08531" offset="0 | |
385 | <rom name="pozivniznak.gtp" size="414" crc="2d7273a3" sha1="694c770409781f96b422a5b55f9222700fa08531" offset="0" /> | |
386 | 386 | </dataarea> |
387 | 387 | </part> |
388 | 388 | </software> |
389 | 389 | |
390 | 390 | <software name="raindrop"> |
391 | <description>RainDrops</description> | |
391 | <description>Rain Drops</description> | |
392 | 392 | <year>19??</year> |
393 | 393 | <publisher><unknown></publisher> |
394 | 394 | <part name="cass1" interface="galaxy_cass"> |
395 | 395 | <dataarea name="cass" size="573"> |
396 | <rom name="raindrops.gtp" size="573" crc="02642e02" sha1="d9880a1cb0180c8203cc71fab09687a808244d9a" offset="0 | |
396 | <rom name="raindrops.gtp" size="573" crc="02642e02" sha1="d9880a1cb0180c8203cc71fab09687a808244d9a" offset="0" /> | |
397 | 397 | </dataarea> |
398 | 398 | </part> |
399 | 399 | </software> |
r241781 | r241782 | |
404 | 404 | <publisher><unknown></publisher> |
405 | 405 | <part name="cass1" interface="galaxy_cass"> |
406 | 406 | <dataarea name="cass" size="1892"> |
407 | <rom name="scater.gtp" size="1892" crc="bd4be810" sha1="59d027a4111b15fd30b9290e87a2edb438e1614f" offset="0 | |
407 | <rom name="scater.gtp" size="1892" crc="bd4be810" sha1="59d027a4111b15fd30b9290e87a2edb438e1614f" offset="0" /> | |
408 | 408 | </dataarea> |
409 | 409 | </part> |
410 | 410 | </software> |
r241781 | r241782 | |
412 | 412 | <software name="sintesaj"> |
413 | 413 | <description>Sintesajzer</description> |
414 | 414 | <year>19??</year> |
415 | <publisher> | |
415 | <publisher>Dragan Vujkov</publisher> | |
416 | 416 | <part name="cass1" interface="galaxy_cass"> |
417 | 417 | <dataarea name="cass" size="901"> |
418 | <rom name="sintesajzer.gtp" size="901" crc="f747478d" sha1="51b9f20f154f5631fbee88c6df906c95f8929de6" offset="0 | |
418 | <rom name="sintesajzer.gtp" size="901" crc="f747478d" sha1="51b9f20f154f5631fbee88c6df906c95f8929de6" offset="0" /> | |
419 | 419 | </dataarea> |
420 | 420 | </part> |
421 | 421 | </software> |
422 | 422 | |
423 | 423 | <software name="slalom2"> |
424 | <description>Slalom2</description> | |
425 | <year>19??</year> | |
426 | <publisher><unknown></publisher> | |
424 | <description>Slalom II</description> | |
425 | <year>1985</year> | |
426 | <publisher>Zeljko Gerovac</publisher> | |
427 | 427 | <part name="cass1" interface="galaxy_cass"> |
428 | 428 | <dataarea name="cass" size="1328"> |
429 | <rom name="slalom2.gtp" size="1328" crc="722f26ed" sha1="d9b87941fd19606d53b72cb319c4d3dc7e6880d6" offset="0 | |
429 | <rom name="slalom2.gtp" size="1328" crc="722f26ed" sha1="d9b87941fd19606d53b72cb319c4d3dc7e6880d6" offset="0" /> | |
430 | 430 | </dataarea> |
431 | 431 | </part> |
432 | 432 | </software> |
433 | 433 | |
434 | 434 | <software name="snake"> |
435 | <description>Snake</description> | |
436 | <year>19??</year> | |
437 | <publisher><unknown></publisher> | |
435 | <description>Snake (Nenad Balint)</description> | |
436 | <year>1984</year> | |
437 | <publisher>Nenad Balint</publisher> | |
438 | 438 | <part name="cass1" interface="galaxy_cass"> |
439 | 439 | <dataarea name="cass" size="3173"> |
440 | <rom name="snake.gtp" size="3173" crc="ae7e097b" sha1="8b90a3ba49711ea7bd6fc7058a71c0699fc49cb1" offset="0 | |
440 | <rom name="snake.gtp" size="3173" crc="ae7e097b" sha1="8b90a3ba49711ea7bd6fc7058a71c0699fc49cb1" offset="0" /> | |
441 | 441 | </dataarea> |
442 | 442 | </part> |
443 | 443 | </software> |
444 | 444 | |
445 | <software name="snake2"> | |
446 | <description>Snake2</description> | |
447 | <year>19??</year> | |
448 | <publisher><unknown></publisher> | |
445 | <software name="snakedv"> | |
446 | <description>Snake (Dragan Vujkov)</description> | |
447 | <year>1987</year> | |
448 | <publisher>Dragan Vujkov</publisher> | |
449 | 449 | <part name="cass1" interface="galaxy_cass"> |
450 | 450 | <dataarea name="cass" size="1686"> |
451 | <rom name="snake2.gtp" size="1686" crc="18127599" sha1="c37d5cf13704b374b3c76d4ac7b80787dfb88dc8" offset="0 | |
451 | <rom name="snake2.gtp" size="1686" crc="18127599" sha1="c37d5cf13704b374b3c76d4ac7b80787dfb88dc8" offset="0" /> | |
452 | 452 | </dataarea> |
453 | 453 | </part> |
454 | 454 | </software> |
455 | 455 | |
456 | 456 | <software name="squash"> |
457 | 457 | <description>Squash</description> |
458 | <year>19 | |
458 | <year>1986</year> | |
459 | 459 | <publisher><unknown></publisher> |
460 | 460 | <part name="cass1" interface="galaxy_cass"> |
461 | 461 | <dataarea name="cass" size="1504"> |
462 | <rom name="squash.gtp" size="1504" crc="ad4657df" sha1="b5a781c1a97086a3ae2da08f1ed975253a4a035b" offset="0 | |
462 | <rom name="squash.gtp" size="1504" crc="ad4657df" sha1="b5a781c1a97086a3ae2da08f1ed975253a4a035b" offset="0" /> | |
463 | 463 | </dataarea> |
464 | 464 | </part> |
465 | 465 | </software> |
466 | 466 | |
467 | 467 | <software name="squasha" cloneof="squash"> |
468 | <description>Squash | |
468 | <description>Squash (Alt Format)</description> | |
469 | 469 | <year>19??</year> |
470 | 470 | <publisher><unknown></publisher> |
471 | 471 | <part name="cass1" interface="galaxy_cass"> |
472 | 472 | <dataarea name="cass" size="8244"> |
473 | <rom name="squash.gal" size="8244" crc="a54b6d45" sha1="140530381ea8964bd32cecd13659f7131fcdb709" offset="0 | |
473 | <rom name="squash.gal" size="8244" crc="a54b6d45" sha1="140530381ea8964bd32cecd13659f7131fcdb709" offset="0" /> | |
474 | 474 | </dataarea> |
475 | 475 | </part> |
476 | 476 | </software> |
477 | 477 | |
478 | 478 | <software name="scruiser"> |
479 | <description>SuperCruiser</description> | |
480 | <year>19??</year> | |
481 | <publisher><unknown></publisher> | |
479 | <description>Super Cruiser</description> | |
480 | <year>1985</year> | |
481 | <publisher>Jasmin Halilovic</publisher> | |
482 | 482 | <part name="cass1" interface="galaxy_cass"> |
483 | 483 | <dataarea name="cass" size="2569"> |
484 | <rom name="supercruiser.gtp" size="2569" crc="b9faec35" sha1="a68d01975952c117e9620cfcdeb9ca7350964c54" offset="0 | |
484 | <rom name="supercruiser.gtp" size="2569" crc="b9faec35" sha1="a68d01975952c117e9620cfcdeb9ca7350964c54" offset="0" /> | |
485 | 485 | </dataarea> |
486 | 486 | </part> |
487 | 487 | </software> |
488 | 488 | |
489 | 489 | <software name="scruisera" cloneof="scruiser"> |
490 | <description>SuperCruiser_ALT</description> | |
491 | <year>19??</year> | |
492 | <publisher><unknown></publisher> | |
490 | <description>Super Cruiser (Alt Format)</description> | |
491 | <year>1985</year> | |
492 | <publisher>Jasmin Halilovic</publisher> | |
493 | 493 | <part name="cass1" interface="galaxy_cass"> |
494 | 494 | <dataarea name="cass" size="8244"> |
495 | <rom name="sc.gal" size="8244" crc="8ae78ffb" sha1="7e4217afd4d725dd14af55bf7d0796dd51cc868d" offset="0 | |
495 | <rom name="sc.gal" size="8244" crc="8ae78ffb" sha1="7e4217afd4d725dd14af55bf7d0796dd51cc868d" offset="0" /> | |
496 | 496 | </dataarea> |
497 | 497 | </part> |
498 | 498 | </software> |
499 | 499 | |
500 | 500 | <software name="supersah"> |
501 | <description>SuperSah</description> | |
502 | <year>19??</year> | |
503 | <publisher><unknown></publisher> | |
501 | <description>Super-Sah</description> | |
502 | <year>1984</year> | |
503 | <publisher>Page Software</publisher> | |
504 | 504 | <part name="cass1" interface="galaxy_cass"> |
505 | 505 | <dataarea name="cass" size="5773"> |
506 | <rom name="supersah.gtp" size="5773" crc="9d24e956" sha1="8bb4898a2e5a538ab6f896b0f0d9f796d9e366d5" offset="0 | |
506 | <rom name="supersah.gtp" size="5773" crc="9d24e956" sha1="8bb4898a2e5a538ab6f896b0f0d9f796d9e366d5" offset="0" /> | |
507 | 507 | </dataarea> |
508 | 508 | </part> |
509 | 509 | </software> |
510 | 510 | |
511 | 511 | <software name="strgovac"> |
512 | <description>SvemirskiTrgovac</description> | |
513 | <year>19??</year> | |
514 | <publisher><unknown></publisher> | |
512 | <description>Svemirski Trgovac</description> | |
513 | <year>198?</year> | |
514 | <publisher>Ilija Vitanov</publisher> | |
515 | 515 | <part name="cass1" interface="galaxy_cass"> |
516 | 516 | <dataarea name="cass" size="2982"> |
517 | <rom name="svemirskitrgovac.gtp" size="2982" crc="a01a1594" sha1="7cca6dc667a29de5f53b105287dc889869aad383" offset="0 | |
517 | <rom name="svemirskitrgovac.gtp" size="2982" crc="a01a1594" sha1="7cca6dc667a29de5f53b105287dc889869aad383" offset="0" /> | |
518 | 518 | </dataarea> |
519 | 519 | </part> |
520 | 520 | </software> |
521 | 521 | |
522 | 522 | <software name="svetleci"> |
523 | <description>SvetleciBicikliPlus</description> | |
524 | <year>19??</year> | |
525 | <publisher><unknown></publisher> | |
523 | <description>Svetleci Bicikli (Plus)</description> | |
524 | <year>1986</year> | |
525 | <publisher>Nenad Balint</publisher> | |
526 | 526 | <part name="cass1" interface="galaxy_cass"> |
527 | 527 | <dataarea name="cass" size="2583"> |
528 | <rom name="svetlecibicikliplus.gtp" size="2583" crc="2d4000fe" sha1="de2b47c73c3a324a223147e41c327a52c372875e" offset="0 | |
528 | <rom name="svetlecibicikliplus.gtp" size="2583" crc="2d4000fe" sha1="de2b47c73c3a324a223147e41c327a52c372875e" offset="0" /> | |
529 | 529 | </dataarea> |
530 | 530 | </part> |
531 | 531 | </software> |
532 | 532 | |
533 | 533 | <software name="tenis"> |
534 | 534 | <description>Tenis</description> |
535 | <year>19??</year> | |
536 | <publisher><unknown></publisher> | |
535 | <year>1985</year> | |
536 | <publisher>Nenad Balint</publisher> | |
537 | 537 | <part name="cass1" interface="galaxy_cass"> |
538 | 538 | <dataarea name="cass" size="2389"> |
539 | <rom name="tenis.gtp" size="2389" crc="6f158ac7" sha1="3dd52ce8f6dbc1d5114c4a63ed5c40666e79c40f" offset="0 | |
539 | <rom name="tenis.gtp" size="2389" crc="6f158ac7" sha1="3dd52ce8f6dbc1d5114c4a63ed5c40666e79c40f" offset="0" /> | |
540 | 540 | </dataarea> |
541 | 541 | </part> |
542 | 542 | </software> |
543 | 543 | |
544 | 544 | <software name="tenis3"> |
545 | <description>Tenis3</description> | |
546 | <year>19??</year> | |
547 | <publisher><unknown></publisher> | |
545 | <description>Tenis 3</description> | |
546 | <year>1986</year> | |
547 | <publisher>Dragan Yujkov</publisher> | |
548 | 548 | <part name="cass1" interface="galaxy_cass"> |
549 | 549 | <dataarea name="cass" size="1874"> |
550 | <rom name="tenis3.gtp" size="1874" crc="bc263558" sha1="2bdfcc96e8e4844cc9edae7670710f72d7bf3e1f" offset="0 | |
550 | <rom name="tenis3.gtp" size="1874" crc="bc263558" sha1="2bdfcc96e8e4844cc9edae7670710f72d7bf3e1f" offset="0" /> | |
551 | 551 | </dataarea> |
552 | 552 | </part> |
553 | 553 | </software> |
554 | 554 | |
555 | 555 | <software name="tetris"> |
556 | 556 | <description>Tetris</description> |
557 | <year>19??</year> | |
558 | <publisher><unknown></publisher> | |
557 | <year>1988</year> | |
558 | <publisher>Dragoljub Obradovic</publisher> | |
559 | 559 | <part name="cass1" interface="galaxy_cass"> |
560 | 560 | <dataarea name="cass" size="2709"> |
561 | <rom name="tetrisplus.gtp" size="2709" crc="5a6a819b" sha1="7a60930d6269b3ac9898ce0dc2bada8e5626f270" offset="0 | |
561 | <rom name="tetrisplus.gtp" size="2709" crc="5a6a819b" sha1="7a60930d6269b3ac9898ce0dc2bada8e5626f270" offset="0" /> | |
562 | 562 | </dataarea> |
563 | 563 | </part> |
564 | 564 | </software> |
565 | 565 | |
566 | 566 | <software name="tetrisp"> |
567 | <description>TetrisPlus</description> | |
568 | <year>19??</year> | |
569 | <publisher><unknown></publisher> | |
567 | <description>Tetris (Plus)</description> | |
568 | <year>1988</year> | |
569 | <publisher>Dragoljub Obradovic</publisher> | |
570 | 570 | <part name="cass1" interface="galaxy_cass"> |
571 | 571 | <dataarea name="cass" size="2706"> |
572 | <rom name="tetrisplusq.gtp" size="2706" crc="64015b12" sha1="1d062b4abd1bfdc977568378a61f2bbdf65e2602" offset="0 | |
572 | <rom name="tetrisplusq.gtp" size="2706" crc="64015b12" sha1="1d062b4abd1bfdc977568378a61f2bbdf65e2602" offset="0" /> | |
573 | 573 | </dataarea> |
574 | 574 | </part> |
575 | 575 | </software> |
576 | 576 | |
577 | 577 | <software name="tetrisa" cloneof="tetris"> |
578 | <description>Tetris | |
578 | <description>Tetris (Alt Format)</description> | |
579 | 579 | <year>19??</year> |
580 | 580 | <publisher><unknown></publisher> |
581 | 581 | <part name="cass1" interface="galaxy_cass"> |
582 | 582 | <dataarea name="cass" size="8244"> |
583 | <rom name="tetris.gal" size="8244" crc="12bc9373" sha1="008d85b379861416c38e3300477a3772959344a1" offset="0 | |
583 | <rom name="tetris.gal" size="8244" crc="12bc9373" sha1="008d85b379861416c38e3300477a3772959344a1" offset="0" /> | |
584 | 584 | </dataarea> |
585 | 585 | </part> |
586 | 586 | </software> |
587 | 587 | |
588 | 588 | <software name="wall"> |
589 | 589 | <description>Wall</description> |
590 | <year>19??</year> | |
591 | <publisher><unknown></publisher> | |
590 | <year>1986</year> | |
591 | <publisher>Dragan Vujkov</publisher> | |
592 | 592 | <part name="cass1" interface="galaxy_cass"> |
593 | 593 | <dataarea name="cass" size="1328"> |
594 | <rom name="wall.gtp" size="1328" crc="602db525" sha1="fe31a2455376427436e2638e3452633a2a0f2c9a" offset="0 | |
594 | <rom name="wall.gtp" size="1328" crc="602db525" sha1="fe31a2455376427436e2638e3452633a2a0f2c9a" offset="0" /> | |
595 | 595 | </dataarea> |
596 | 596 | </part> |
597 | 597 | </software> |
r241781 | r241782 | |
602 | 602 | <publisher><unknown></publisher> |
603 | 603 | <part name="cass1" interface="galaxy_cass"> |
604 | 604 | <dataarea name="cass" size="2863"> |
605 | <rom name="wonderer.gtp" size="2863" crc="0e7310b7" sha1="e7dd10af2970ada6ca4d7c3eaaa0b3c3b9b929e9" offset="0 | |
605 | <rom name="wonderer.gtp" size="2863" crc="0e7310b7" sha1="e7dd10af2970ada6ca4d7c3eaaa0b3c3b9b929e9" offset="0" /> | |
606 | 606 | </dataarea> |
607 | 607 | </part> |
608 | 608 | </software> |
609 | 609 | |
610 | 610 | <software name="wonder2"> |
611 | <description>Wonderer2</description> | |
611 | <description>Wonderer 2</description> | |
612 | 612 | <year>19??</year> |
613 | 613 | <publisher><unknown></publisher> |
614 | 614 | <part name="cass1" interface="galaxy_cass"> |
615 | 615 | <dataarea name="cass" size="1866"> |
616 | <rom name="wonderer2.gtp" size="1866" crc="cd4ae466" sha1="1e5f8e9be2be400ceed8d547d41f3cfe3d9eb072" offset="0 | |
616 | <rom name="wonderer2.gtp" size="1866" crc="cd4ae466" sha1="1e5f8e9be2be400ceed8d547d41f3cfe3d9eb072" offset="0" /> | |
617 | 617 | </dataarea> |
618 | 618 | </part> |
619 | 619 | </software> |
620 | 620 | |
621 | 621 | <software name="zamak"> |
622 | 622 | <description>Zamak</description> |
623 | <year>19??</year> | |
624 | <publisher><unknown></publisher> | |
623 | <year>1984</year> | |
624 | <publisher>Antonic Voja</publisher> | |
625 | 625 | <part name="cass1" interface="galaxy_cass"> |
626 | 626 | <dataarea name="cass" size="3015"> |
627 | <rom name="zamak.gtp" size="3015" crc="7d0cc0c9" sha1="e10d2cf3be1a79febc062ade3f8d5c3713bd43ca" offset="0 | |
627 | <rom name="zamak.gtp" size="3015" crc="7d0cc0c9" sha1="e10d2cf3be1a79febc062ade3f8d5c3713bd43ca" offset="0" /> | |
628 | 628 | </dataarea> |
629 | 629 | </part> |
630 | 630 | </software> |
631 | 631 | |
632 | 632 | <software name="zid"> |
633 | 633 | <description>Zid</description> |
634 | <year>19??</year> | |
635 | <publisher><unknown></publisher> | |
634 | <year>1984</year> | |
635 | <publisher>GAC Software</publisher> | |
636 | 636 | <part name="cass1" interface="galaxy_cass"> |
637 | 637 | <dataarea name="cass" size="2142"> |
638 | <rom name="zid.gtp" size="2142" crc="2302a824" sha1="19b34c1ad8ce33e638e297d68221fffc6c8e9e56" offset="0 | |
638 | <rom name="zid.gtp" size="2142" crc="2302a824" sha1="19b34c1ad8ce33e638e297d68221fffc6c8e9e56" offset="0" /> | |
639 | 639 | </dataarea> |
640 | 640 | </part> |
641 | 641 | </software> |
642 | 642 | |
643 | 643 | <software name="ziul"> |
644 | 644 | <description>Ziul</description> |
645 | <year>19??</year> | |
646 | <publisher><unknown></publisher> | |
645 | <year>1984</year> | |
646 | <publisher>Dejan Ristanovic</publisher> | |
647 | 647 | <part name="cass1" interface="galaxy_cass"> |
648 | 648 | <dataarea name="cass" size="6673"> |
649 | <rom name="ziul.gtp" size="6673" crc="f8322dad" sha1="d2988be278dc7328257841789042976799cf39ef" offset="0 | |
649 | <rom name="ziul.gtp" size="6673" crc="f8322dad" sha1="d2988be278dc7328257841789042976799cf39ef" offset="0" /> | |
650 | 650 | </dataarea> |
651 | 651 | </part> |
652 | 652 | </software> |
r241781 | r241782 | |
657 | 657 | <publisher><unknown></publisher> |
658 | 658 | <part name="cass1" interface="galaxy_cass"> |
659 | 659 | <dataarea name="cass" size="1584"> |
660 | <rom name="zvezdice.gtp" size="1584" crc="d45e9a5b" sha1="63cf1089407873e2eb4a43703985e41f6b0623f7" offset="0 | |
660 | <rom name="zvezdice.gtp" size="1584" crc="d45e9a5b" sha1="63cf1089407873e2eb4a43703985e41f6b0623f7" offset="0" /> | |
661 | 661 | </dataarea> |
662 | 662 | </part> |
663 | 663 | </software> |
664 | 664 | |
665 | 665 | <software name="zvjezdan"> |
666 | <description>ZvjezdaneStaze</description> | |
667 | <year>19??</year> | |
666 | <description>Zvjezdane Staze</description> | |
667 | <year>1985</year> | |
668 | 668 | <publisher><unknown></publisher> |
669 | 669 | <part name="cass1" interface="galaxy_cass"> |
670 | 670 | <dataarea name="cass" size="4950"> |
671 | <rom name="zvjezdanestaze.gtp" size="4950" crc="40fcf0b0" sha1="c44d72cead914b31d5f7f26eebb2f3dc9acea498" offset="0 | |
671 | <rom name="zvjezdanestaze.gtp" size="4950" crc="40fcf0b0" sha1="c44d72cead914b31d5f7f26eebb2f3dc9acea498" offset="0" /> | |
672 | 672 | </dataarea> |
673 | 673 | </part> |
674 | 674 | </software> |
675 | 675 | |
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 | ||
676 | 731 | </softwarelist> |
r241781 | r241782 | |
---|---|---|
2822 | 2822 | </dataarea> |
2823 | 2823 | </part> |
2824 | 2824 | </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> | |
2825 | 2893 | </softwarelist> |
r241781 | r241782 | |
---|---|---|
3966 | 3966 | </part> |
3967 | 3967 | </software> |
3968 | 3968 | |
3969 | <software name="samnmax"> | |
3970 | <!-- Dumped via Kryoflux, track 0 shows as modified on all disks --> | |
3971 | <description>Sam & 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 | ||
3969 | 4011 | <software name="sserv2"> |
3970 | 4012 | <!-- Dumped via Kryoflux, shows as good and unmodified --> |
3971 | 4013 | <description>Silent Service II (Version 457.01)</description> |
r0 | r241782 | |
---|---|---|
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 & 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 & 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><unknown></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 & Computing</publisher> | |
1494 | ||
1495 | <part name="cass1" interface="jupace_cass"> | |
1496 | <dataarea name="cass" size="729"> | |
1497 | <rom name="scrambler (1982-05)(electronics & 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 & 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 & 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> |
r241781 | r241782 | |
---|---|---|
1 | <?xml version="1.0"?> | |
2 | <!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> | |
3 | ||
4 | <!-- | |
5 | ||
6 | Carts released in Japan | |
7 | ||
8 | 1. Dig Dug (ディグダグ) | |
9 | 2. Tank Battalion (タンクバタリアン) | |
10 | 3. Bosconian (ボスコニアン) | |
11 | 4. Galax (ギャラックス) | |
12 | 5. Power Pac (パワーパック) | |
13 | 6. Warp Warp (ワープ&ワープ) | |
14 | 7. Super Cobra (スーパーコブラ) | |
15 | 8. Guttang Guttong (ガッタンゴットン) | |
16 | 9. Moon Patrol (ムーンパトロール) | |
17 | 10. Step Up (ステップアップ) | |
18 | 11. Pooyan (プーヤン) | |
19 | 12. Heavy Boxing (ヘビーボクシング) | |
20 | 13. コミカルスキー [Fun Ski?] | |
21 | 14. Real Tennis (リアルテニス) | |
22 | 15. Word Maze (ワードメイズ) | |
23 | 16. Wonder Hole (ワンダーホール) | |
24 | 17. Apploon (アップルーン) | |
25 | 18. Up Up Balloon (アップアップバルーン) | |
26 | 19. Mappy (マッピー) | |
27 | 20. ?? | |
28 | 21. Dream Shopper (ドリームショッパー) | |
29 | 22. Eskimon (エスキモン) | |
30 | 23. Funny Mouse (ファニーマウス) | |
31 | 24. Jankyo (ジャン狂) | |
32 | ||
33 | Simulation Games (probably separate series, box has red stripes!) | |
34 | ||
35 | - Fruit Search | |
36 | - Dragon Attack | |
37 | - Pit Chaser | |
38 | ||
39 | ||
40 | Super Adventure Series (cart + tape games) | |
41 | ||
42 | - Super Adventure (スーパーアドベンチャー ) [cart] | |
43 | - Ooi Tasukete Kure (おーいたすけてくれ ) [tape] | |
44 | - Nigero Nigero Nigero (にげろにげろにげろ ) [tape] | |
45 | ||
46 | ||
47 | Programs: | |
48 | ||
49 | - P-Editor (also available as tape) | |
50 | - M-Editor | |
51 | ||
52 | ||
53 | Learning Soft: | |
54 | ||
55 | - Mogura-Tataki Keyboard Renshu (by Stratford Soft) | |
56 | ||
57 | ||
58 | Programming Languages: | |
59 | ||
60 | - FLAC | |
61 | - FLAC-II | |
62 | - BASIC-I | |
63 | - BASIC-G | |
64 | - BASIC-F | |
65 | - DISK BASIC | |
66 | ||
67 | ||
68 | what about European carts? | |
69 | and 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 & Warp</description> | |
146 | <year>1981</year> | |
147 | <publisher>Namco</publisher> | |
148 | <info name="serial" value="6" /> | |
149 | <info name="alt_title" value="ワープ&ワープ" /> | |
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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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 | |
571 | come from... they might be eventually removed --> | |
572 | ||
573 | <!-- the first contains Czech text strings so it might be a real Czech cart, | |
574 | but we need more info --> | |
575 | <software name="unk_maze" supported="no"> | |
576 | <description>Unknown CSMAZE</description> | |
577 | <year>19??</year> | |
578 | <publisher><unknown></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><unknown></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> |
r0 | r241782 | |
---|---|---|
1 | <?xml version="1.0"?> | |
2 | <!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> | |
3 | ||
4 | <!-- | |
5 | ||
6 | Carts released in Japan | |
7 | ||
8 | 1. Dig Dug (ディグダグ) | |
9 | 2. Tank Battalion (タンクバタリアン) | |
10 | 3. Bosconian (ボスコニアン) | |
11 | 4. Galax (ギャラックス) | |
12 | 5. Power Pac (パワーパック) | |
13 | 6. Warp Warp (ワープ&ワープ) | |
14 | 7. Super Cobra (スーパーコブラ) | |
15 | 8. Guttang Guttong (ガッタンゴットン) | |
16 | 9. Moon Patrol (ムーンパトロール) | |
17 | 10. Step Up (ステップアップ) | |
18 | 11. Pooyan (プーヤン) | |
19 | 12. Heavy Boxing (ヘビーボクシング) | |
20 | 13. コミカルスキー [Fun Ski?] | |
21 | 14. Real Tennis (リアルテニス) | |
22 | 15. Word Maze (ワードメイズ) | |
23 | 16. Wonder Hole (ワンダーホール) | |
24 | 17. Apploon (アップルーン) | |
25 | 18. Up Up Balloon (アップアップバルーン) | |
26 | 19. Mappy (マッピー) | |
27 | 20. ?? | |
28 | 21. Dream Shopper (ドリームショッパー) | |
29 | 22. Eskimon (エスキモン) | |
30 | 23. Funny Mouse (ファニーマウス) | |
31 | 24. Jankyo (ジャン狂) | |
32 | ||
33 | Simulation Games (probably separate series, box has red stripes!) | |
34 | ||
35 | - Fruit Search | |
36 | - Dragon Attack | |
37 | - Pit Chaser | |
38 | ||
39 | ||
40 | Super Adventure Series (cart + tape games) | |
41 | ||
42 | - Super Adventure (スーパーアドベンチャー ) [cart] | |
43 | - Ooi Tasukete Kure (おーいたすけてくれ ) [tape] | |
44 | - Nigero Nigero Nigero (にげろにげろにげろ ) [tape] | |
45 | ||
46 | ||
47 | Programs: | |
48 | ||
49 | - P-Editor (also available as tape) | |
50 | - M-Editor | |
51 | ||
52 | ||
53 | Learning Soft: | |
54 | ||
55 | - Mogura-Tataki Keyboard Renshu (by Stratford Soft) | |
56 | ||
57 | ||
58 | Programming Languages: | |
59 | ||
60 | - FLAC | |
61 | - FLAC-II | |
62 | - BASIC-I | |
63 | - BASIC-G | |
64 | - BASIC-F | |
65 | - DISK BASIC | |
66 | ||
67 | ||
68 | what about European carts? | |
69 | and 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 & Warp</description> | |
146 | <year>1981</year> | |
147 | <publisher>Namco</publisher> | |
148 | <info name="serial" value="6" /> | |
149 | <info name="alt_title" value="ワープ&ワープ" /> | |
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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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 | |
571 | come from... they might be eventually removed --> | |
572 | ||
573 | <!-- the first contains Czech text strings so it might be a real Czech cart, | |
574 | but we need more info --> | |
575 | <software name="unk_maze" supported="no"> | |
576 | <description>Unknown CSMAZE</description> | |
577 | <year>19??</year> | |
578 | <publisher><unknown></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><unknown></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> |
r0 | r241782 | |
---|---|---|
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><unknown></publisher> | |
16 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></publisher> | |
30 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></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><unknown></publisher> | |
56 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></publisher> | |
70 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></publisher> | |
84 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></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><unknown></publisher> | |
110 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></publisher> | |
124 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></publisher> | |
138 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></publisher> | |
152 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></publisher> | |
166 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></publisher> | |
180 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></publisher> | |
194 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></publisher> | |
208 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></publisher> | |
222 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></publisher> | |
236 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></publisher> | |
250 | <info name="usage" value="Mount together with "BASIC-I" 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><unknown></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><unknown></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> |
r241781 | r241782 | |
---|---|---|
3 | 3 | <!-- |
4 | 4 | UNDUMPED / TO BE REDUMPED LIST |
5 | 5 | |
6 | 2IN1 (COSMIC SPACEHEAD FANTASTIC DIZZY) PAL | |
7 | 6 | ADVANCED DAISENRYAKU JAPAN we have Rev A, Rev 0 needed (does it exist?) |
8 | 7 | CAPTAIN PLANET ASIA |
9 | 8 | DAVIS CUP TENNIS JAPAN |
r241781 | r241782 | |
108 | 107 | <!-- Fully documented: confirmed dumps + PCB pics --> |
109 | 108 | |
110 | 109 | |
110 | <!-- Game is switched on reset --> | |
111 | <software name="2fdizcsp"> | |
112 | <description>2 in 1 - Fantastic Dizzy & 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 | ||
111 | 129 | <!-- Both Euro and USA confirmed --> |
112 | 130 | <software name="688atsub"> |
113 | 131 | <description>688 Attack Sub (Euro, USA)</description> |
r241781 | r241782 | |
---|---|---|
16 | 16 | </software> |
17 | 17 | |
18 | 18 | <software name="alambush"> |
19 | <description>ALAMBUSH</description> | |
20 | <year>19??</year> | |
21 | <publisher><unknown></publisher> | |
19 | <description>Alien Ambush</description> | |
20 | <year>1990</year> | |
21 | <publisher>Sedov E. A.</publisher> | |
22 | 22 | <part name="cass" interface="mikrosha_cass"> |
23 | 23 | <dataarea name="cass" size="5604"> |
24 | 24 | <rom name="alambush.rkm" size="5604" crc="4b247561" sha1="5f6130c571bb4877b27c1e4c37a17db680e8b2ab" offset="0" /> |
r241781 | r241782 | |
27 | 27 | </software> |
28 | 28 | |
29 | 29 | <software name="ball"> |
30 | <description>BALL</description> | |
31 | <year>19??</year> | |
32 | <publisher><unknown></publisher> | |
30 | <description>The Ball Game</description> | |
31 | <year>1990</year> | |
32 | <publisher>Sandy Pat Corp.</publisher> | |
33 | 33 | <part name="cass" interface="mikrosha_cass"> |
34 | 34 | <dataarea name="cass" size="2620"> |
35 | 35 | <rom name="ball.rkm" size="2620" crc="ff43291b" sha1="f7fbdae6169c08a4140d685d0d504cc84be82375" offset="0" /> |
r241781 | r241782 | |
38 | 38 | </software> |
39 | 39 | |
40 | 40 | <software name="barmen"> |
41 | <description>BARMEN</description> | |
42 | <year>19??</year> | |
43 | <publisher><unknown></publisher> | |
41 | <description>Barmen (v1.5)</description> | |
42 | <year>1988</year> | |
43 | <publisher>ALG</publisher> | |
44 | 44 | <part name="cass" interface="mikrosha_cass"> |
45 | 45 | <dataarea name="cass" size="4102"> |
46 | 46 | <rom name="barmen.rkm" size="4102" crc="01a1e046" sha1="f129df0395d261edf50c4c79a8d3375249a935ef" offset="0" /> |
r241781 | r241782 | |
49 | 49 | </software> |
50 | 50 | |
51 | 51 | <software name="bomber"> |
52 | <description>BOMBER</description> | |
53 | <year>19??</year> | |
54 | <publisher><unknown></publisher> | |
52 | <description>Bomber Aircraft</description> | |
53 | <year>1990</year> | |
54 | <publisher>Jup Corp</publisher> | |
55 | 55 | <part name="cass" interface="mikrosha_cass"> |
56 | 56 | <dataarea name="cass" size="4627"> |
57 | 57 | <rom name="bomber.rkm" size="4627" crc="8ba227ef" sha1="a15ad12ec2981b53607f4ae755acecbb69939b3c" offset="0" /> |
r241781 | r241782 | |
59 | 59 | </part> |
60 | 60 | </software> |
61 | 61 | |
62 | <software name="boulder"> | |
63 | <description>BOULDER</description> | |
64 | <year>19??</year> | |
65 | <publisher><unknown></publisher> | |
62 | <software name="bdash"> | |
63 | <description>Boulder Dash (v2)</description> | |
64 | <year>1989</year> | |
65 | <publisher>Clever Hands Software</publisher> | |
66 | 66 | <part name="cass" interface="mikrosha_cass"> |
67 | 67 | <dataarea name="cass" size="15367"> |
68 | 68 | <rom name="boulder.rkm" size="15367" crc="2da99b60" sha1="2620046d21618cf22607827c19334ba000902c27" offset="0" /> |
r241781 | r241782 | |
71 | 71 | </software> |
72 | 72 | |
73 | 73 | <software name="chess"> |
74 | <description>C | |
74 | <description>Chess</description> | |
75 | 75 | <year>19??</year> |
76 | 76 | <publisher><unknown></publisher> |
77 | 77 | <part name="cass" interface="mikrosha_cass"> |
r241781 | r241782 | |
81 | 81 | </part> |
82 | 82 | </software> |
83 | 83 | |
84 | <software name="circus"> | |
85 | <description>CIRCUS</description> | |
86 | <year>19??</year> | |
87 | <publisher><unknown></publisher> | |
84 | <software name="cirk"> | |
85 | <description>Cirk (v1.2)</description> | |
86 | <year>1986</year> | |
87 | <publisher>Popov S.N.</publisher> | |
88 | 88 | <part name="cass" interface="mikrosha_cass"> |
89 | 89 | <dataarea name="cass" size="7655"> |
90 | 90 | <rom name="circus.rkm" size="7655" crc="bd44cf25" sha1="2cc3472632e962b0e32637a4eea9090b5307eba9" offset="0" /> |
r241781 | r241782 | |
93 | 93 | </software> |
94 | 94 | |
95 | 95 | <software name="crossfir"> |
96 | <description>CROSSFIR</description> | |
97 | <year>19??</year> | |
98 | <publisher><unknown></publisher> | |
96 | <description>Cross Fire (v004)</description> | |
97 | <year>1988</year> | |
98 | <publisher>Zyryanov A.V.</publisher> | |
99 | 99 | <part name="cass" interface="mikrosha_cass"> |
100 | 100 | <dataarea name="cass" size="11127"> |
101 | 101 | <rom name="crossfir.rkm" size="11127" crc="0e204a60" sha1="f41be5612ea4648ce51a2495fa2c2b20c4e910fb" offset="0" /> |
r241781 | r241782 | |
566 | 566 | </software> |
567 | 567 | |
568 | 568 | <software name="xonmicr"> |
569 | <description>X | |
569 | <description>Xonix (Micron)</description> | |
570 | 570 | <year>19??</year> |
571 | <publisher> | |
571 | <publisher>Micron</publisher> | |
572 | 572 | <part name="cass" interface="mikrosha_cass"> |
573 | 573 | <dataarea name="cass" size="2822"> |
574 | 574 | <rom name="xonmicr.rkm" size="2822" crc="a2658748" sha1="561ac9989c2b8605719d0b340a513fb5a691d7dd" offset="0" /> |
r241781 | r241782 | |
576 | 576 | </part> |
577 | 577 | </software> |
578 | 578 | |
579 | <software name="zstation"> | |
580 | <description>ZSTATION</description> | |
581 | <year>19??</year> | |
582 | <publisher><unknown></publisher> | |
579 | <software name="zstanciy"> | |
580 | <description>Z-Stanciya</description> | |
581 | <year>1987</year> | |
582 | <publisher>SNP</publisher> | |
583 | 583 | <part name="cass" interface="mikrosha_cass"> |
584 | 584 | <dataarea name="cass" size="1895"> |
585 | 585 | <rom name="zstation.rkm" size="1895" crc="d496dea7" sha1="4aabce2dc4349a82c1ba59be8705f2f8cac77401" offset="0" /> |
r241781 | r241782 | |
591 | 591 | <!-- System --> |
592 | 592 | |
593 | 593 | <software name="basic"> |
594 | <description>BASIC</description> | |
594 | <description>Mikrosha BASIC</description> | |
595 | 595 | <year>19??</year> |
596 | 596 | <publisher><unknown></publisher> |
597 | 597 | <part name="cass" interface="mikrosha_cass"> |
r241781 | r241782 | |
602 | 602 | </software> |
603 | 603 | |
604 | 604 | <software name="disasm"> |
605 | <description>D | |
605 | <description>Disassembler Mikron</description> | |
606 | 606 | <year>19??</year> |
607 | 607 | <publisher><unknown></publisher> |
608 | 608 | <part name="cass" interface="mikrosha_cass"> |
r241781 | r241782 | |
---|---|---|
13654 | 13654 | <software name="cheese" supported="partial"> |
13655 | 13655 | <description>Cheese (Jpn)</description> |
13656 | 13656 | <year>1984</year> |
13657 | <publisher>Nihon E | |
13657 | <publisher>Nihon Electronics</publisher> | |
13658 | 13658 | <part name="cart" interface="msx_cart"> |
13659 | 13659 | <feature name="mapper" value="NOMAPPER" /> |
13660 | 13660 | <dataarea name="rom" size="16384"> |
r241781 | r241782 | |
---|---|---|
4 | 4 | <softwarelist name="orao" description="PEL Varazdin Orao cassettes"> |
5 | 5 | |
6 | 6 | <software name="6502step"> |
7 | <description>6502Step</description> | |
7 | <description>6502 Step (v1.0)</description> | |
8 | 8 | <year>19??</year> |
9 | 9 | <publisher><unknown></publisher> |
10 | 10 | <part name="cass1" interface="orao_cass"> |
11 | 11 | <dataarea name="cass" size="4099"> |
12 | <rom name="6502step.tap" size="4099" crc="18b959be" sha1="9ded3c41aa3d56bc057a8db4ce5d562695723e37" offset="0 | |
12 | <rom name="6502step.tap" size="4099" crc="18b959be" sha1="9ded3c41aa3d56bc057a8db4ce5d562695723e37" offset="0" /> | |
13 | 13 | </dataarea> |
14 | 14 | </part> |
15 | 15 | </software> |
r241781 | r241782 | |
17 | 17 | <software name="ajnc"> |
18 | 18 | <description>Ajnc</description> |
19 | 19 | <year>19??</year> |
20 | <publisher> | |
20 | <publisher>PEL Soft</publisher> | |
21 | 21 | <part name="cass1" interface="orao_cass"> |
22 | 22 | <dataarea name="cass" size="17806"> |
23 | <rom name="ajnc.tap" size="17806" crc="de341625" sha1="ea157993ea1c70e5f22cb4cf0e8cb1c7acd034da" offset="0 | |
23 | <rom name="ajnc.tap" size="17806" crc="de341625" sha1="ea157993ea1c70e5f22cb4cf0e8cb1c7acd034da" offset="0" /> | |
24 | 24 | </dataarea> |
25 | 25 | </part> |
26 | 26 | </software> |
27 | 27 | |
28 | 28 | <software name="avion"> |
29 | 29 | <description>Avion</description> |
30 | <year>19??</year> | |
31 | <publisher><unknown></publisher> | |
30 | <year>1986</year> | |
31 | <publisher>Emil Herceg - Igor Kos</publisher> | |
32 | 32 | <part name="cass1" interface="orao_cass"> |
33 | 33 | <dataarea name="cass" size="6798"> |
34 | <rom name="avion.tap" size="6798" crc="eb4143a9" sha1="c350137a5c6084d8990b9b0856329f5b94aa338f" offset="0 | |
34 | <rom name="avion.tap" size="6798" crc="eb4143a9" sha1="c350137a5c6084d8990b9b0856329f5b94aa338f" offset="0" /> | |
35 | 35 | </dataarea> |
36 | 36 | </part> |
37 | 37 | </software> |
38 | 38 | |
39 | 39 | <software name="bdash"> |
40 | <description>BoulderDash</description> | |
40 | <description>Boulder Dash</description> | |
41 | 41 | <year>19??</year> |
42 | <publisher> | |
42 | <publisher>Nenad Mihailovic - Mihajlo Dapjas</publisher> | |
43 | 43 | <part name="cass1" interface="orao_cass"> |
44 | 44 | <dataarea name="cass" size="17998"> |
45 | <rom name="boulderdash.tap" size="17998" crc="11ab14ed" sha1="4a7541bdcba4f03538c3659ad9c1bb36b6d34263" offset="0 | |
45 | <rom name="boulderdash.tap" size="17998" crc="11ab14ed" sha1="4a7541bdcba4f03538c3659ad9c1bb36b6d34263" offset="0" /> | |
46 | 46 | </dataarea> |
47 | 47 | </part> |
48 | 48 | </software> |
r241781 | r241782 | |
50 | 50 | <software name="breakout"> |
51 | 51 | <description>Breakout</description> |
52 | 52 | <year>19??</year> |
53 | <publisher> | |
53 | <publisher>Stan Rimox Software</publisher> | |
54 | 54 | <part name="cass1" interface="orao_cass"> |
55 | 55 | <dataarea name="cass" size="18992"> |
56 | <rom name="breakout.tap" size="18992" crc="7737b9af" sha1="9d9a9e5b06ede99cb7326bab980d7f5a85ba0723" offset="0 | |
56 | <rom name="breakout.tap" size="18992" crc="7737b9af" sha1="9d9a9e5b06ede99cb7326bab980d7f5a85ba0723" offset="0" /> | |
57 | 57 | </dataarea> |
58 | 58 | </part> |
59 | 59 | </software> |
r241781 | r241782 | |
64 | 64 | <publisher><unknown></publisher> |
65 | 65 | <part name="cass1" interface="orao_cass"> |
66 | 66 | <dataarea name="cass" size="4035"> |
67 | <rom name="brojke.tap" size="4035" crc="f46a50c8" sha1="edf486d95df1935effa01f77a36d36c0a24829f8" offset="0 | |
67 | <rom name="brojke.tap" size="4035" crc="f46a50c8" sha1="edf486d95df1935effa01f77a36d36c0a24829f8" offset="0" /> | |
68 | 68 | </dataarea> |
69 | 69 | </part> |
70 | 70 | </software> |
71 | 71 | |
72 | 72 | <software name="crtanje"> |
73 | 73 | <description>Crtanje</description> |
74 | <year>19??</year> | |
75 | <publisher><unknown></publisher> | |
74 | <year>1987</year> | |
75 | <publisher>Suzy Soft</publisher> | |
76 | 76 | <part name="cass1" interface="orao_cass"> |
77 | 77 | <dataarea name="cass" size="4698"> |
78 | <rom name="crtanje.tap" size="4698" crc="30ef56cb" sha1="7a77d75da0a0b34639b987e0d5cf14d7859d80c6" offset="0 | |
78 | <rom name="crtanje.tap" size="4698" crc="30ef56cb" sha1="7a77d75da0a0b34639b987e0d5cf14d7859d80c6" offset="0" /> | |
79 | 79 | </dataarea> |
80 | 80 | </part> |
81 | 81 | </software> |
82 | 82 | |
83 | 83 | <software name="crvic"> |
84 | 84 | <description>Crvic</description> |
85 | <year>19??</year> | |
86 | <publisher><unknown></publisher> | |
85 | <year>1986</year> | |
86 | <publisher>PEL Soft</publisher> | |
87 | 87 | <part name="cass1" interface="orao_cass"> |
88 | 88 | <dataarea name="cass" size="14050"> |
89 | <rom name="crvic.tap" size="14050" crc="6feb9576" sha1="f9f31884a3899731350a2931818b5945afba0bae" offset="0 | |
89 | <rom name="crvic.tap" size="14050" crc="6feb9576" sha1="f9f31884a3899731350a2931818b5945afba0bae" offset="0" /> | |
90 | 90 | </dataarea> |
91 | 91 | </part> |
92 | 92 | </software> |
93 | 93 | |
94 | <software name="demo1"> | |
95 | <description>Demo 1</description> | |
96 | <year>19??</year> | |
97 | <publisher><unknown></publisher> | |
94 | <software name="microrac"> | |
95 | <description>Mikroracunalo Orao</description> | |
96 | <year>1988</year> | |
97 | <publisher>PEL Varazdin</publisher> | |
98 | 98 | <part name="cass1" interface="orao_cass"> |
99 | 99 | <dataarea name="cass" size="31432"> |
100 | <rom name="demo1.tap" size="31432" crc="9e7ba4ec" sha1="3a0c5c8412383a5cd676394308637a8a54238475" offset="0 | |
100 | <rom name="demo1.tap" size="31432" crc="9e7ba4ec" sha1="3a0c5c8412383a5cd676394308637a8a54238475" offset="0" /> | |
101 | 101 | </dataarea> |
102 | 102 | </part> |
103 | </software> | |
104 | ||
105 | <software name="demo2"> | |
106 | <description>Demo 2</description> | |
107 | <year>19??</year> | |
108 | <publisher><unknown></publisher> | |
109 | <part name="cass1" interface="orao_cass"> | |
103 | <part name="cass2" interface="orao_cass"> | |
110 | 104 | <dataarea name="cass" size="18450"> |
111 | <rom name="demo2.tap" size="18450" crc="8bad5b68" sha1="155a06ebfc964642d902b47b49ee7a3ccf2cef0a" offset="0 | |
105 | <rom name="demo2.tap" size="18450" crc="8bad5b68" sha1="155a06ebfc964642d902b47b49ee7a3ccf2cef0a" offset="0" /> | |
112 | 106 | </dataarea> |
113 | 107 | </part> |
114 | 108 | </software> |
115 | 109 | |
116 | 110 | <software name="demograf"> |
117 | <description>DemoGrafika</description> | |
118 | <year>19??</year> | |
119 | <publisher><unknown></publisher> | |
111 | <description>Demo Grafika</description> | |
112 | <year>1985</year> | |
113 | <publisher>KMI Borovo</publisher> | |
120 | 114 | <part name="cass1" interface="orao_cass"> |
121 | 115 | <dataarea name="cass" size="22996"> |
122 | <rom name="demografika.tap" size="22996" crc="1a3f6740" sha1="aeca6893a530b27a0428f33d40fb10c683f450fb" offset="0 | |
116 | <rom name="demografika.tap" size="22996" crc="1a3f6740" sha1="aeca6893a530b27a0428f33d40fb10c683f450fb" offset="0" /> | |
123 | 117 | </dataarea> |
124 | 118 | </part> |
125 | 119 | </software> |
126 | 120 | |
127 | 121 | <software name="eagle"> |
128 | 122 | <description>Eagle</description> |
129 | <year>19??</year> | |
130 | <publisher><unknown></publisher> | |
123 | <year>1986</year> | |
124 | <publisher>KMI Borovo</publisher> | |
131 | 125 | <part name="cass1" interface="orao_cass"> |
132 | 126 | <dataarea name="cass" size="9132"> |
133 | <rom name="eagle.tap" size="9132" crc="b3a8886c" sha1="80409c7ca7fe3fa70e4133a96f4f04c9806d6c5d" offset="0 | |
127 | <rom name="eagle.tap" size="9132" crc="b3a8886c" sha1="80409c7ca7fe3fa70e4133a96f4f04c9806d6c5d" offset="0" /> | |
134 | 128 | </dataarea> |
135 | 129 | </part> |
136 | 130 | </software> |
r241781 | r241782 | |
138 | 132 | <software name="jugador"> |
139 | 133 | <description>Jugador</description> |
140 | 134 | <year>19??</year> |
141 | <publisher> | |
135 | <publisher>Mario Vuletic</publisher> | |
142 | 136 | <part name="cass1" interface="orao_cass"> |
143 | 137 | <dataarea name="cass" size="4932"> |
144 | <rom name="jugador.tap" size="4932" crc="a42f9cdf" sha1="adbf785606b093925eae1c42d1bb6611372c8f89" offset="0 | |
138 | <rom name="jugador.tap" size="4932" crc="a42f9cdf" sha1="adbf785606b093925eae1c42d1bb6611372c8f89" offset="0" /> | |
145 | 139 | </dataarea> |
146 | 140 | </part> |
147 | 141 | </software> |
148 | 142 | |
149 | 143 | <software name="jumpjack"> |
150 | <description>JumpingJack</description> | |
151 | <year>19??</year> | |
152 | <publisher><unknown></publisher> | |
144 | <description>Jumping Jack</description> | |
145 | <year>1986</year> | |
146 | <publisher>KMI Borovo</publisher> | |
153 | 147 | <part name="cass1" interface="orao_cass"> |
154 | 148 | <dataarea name="cass" size="9133"> |
155 | <rom name="jumpingjack.tap" size="9133" crc="2bb70986" sha1="269820989ab16c73594abeb6935736c08e07b5f3" offset="0 | |
149 | <rom name="jumpingjack.tap" size="9133" crc="2bb70986" sha1="269820989ab16c73594abeb6935736c08e07b5f3" offset="0" /> | |
156 | 150 | </dataarea> |
157 | 151 | </part> |
158 | 152 | </software> |
159 | 153 | |
160 | 154 | <software name="karate"> |
161 | <description>Karate</description> | |
155 | <description>Internacional Karate</description> | |
162 | 156 | <year>19??</year> |
163 | <publisher> | |
157 | <publisher>KMI Borovo</publisher> | |
164 | 158 | <part name="cass1" interface="orao_cass"> |
165 | 159 | <dataarea name="cass" size="25106"> |
166 | <rom name="karate.tap" size="25106" crc="021024a0" sha1="90620ceafe258c7bbec195670b629426bf32b82c" offset="0 | |
160 | <rom name="karate.tap" size="25106" crc="021024a0" sha1="90620ceafe258c7bbec195670b629426bf32b82c" offset="0" /> | |
167 | 161 | </dataarea> |
168 | 162 | </part> |
169 | 163 | </software> |
170 | 164 | |
171 | 165 | <software name="kuki"> |
172 | 166 | <description>Kuki</description> |
173 | <year>19??</year> | |
174 | <publisher><unknown></publisher> | |
167 | <year>1986</year> | |
168 | <publisher>KMI Borovo</publisher> | |
175 | 169 | <part name="cass1" interface="orao_cass"> |
176 | 170 | <dataarea name="cass" size="9998"> |
177 | <rom name="kuki.tap" size="9998" crc="90cddb34" sha1="211de24d98205f1b8dde0057f5294a7fb569483c" offset="0 | |
171 | <rom name="kuki.tap" size="9998" crc="90cddb34" sha1="211de24d98205f1b8dde0057f5294a7fb569483c" offset="0" /> | |
178 | 172 | </dataarea> |
179 | 173 | </part> |
180 | 174 | </software> |
181 | 175 | |
182 | 176 | <software name="kvadrat"> |
183 | <description>Kvadrat</description> | |
184 | <year>19??</year> | |
185 | <publisher><unknown></publisher> | |
177 | <description>Magicni Kvadrat</description> | |
178 | <year>1985</year> | |
179 | <publisher>Mario Ranogajec - Boris Korpar</publisher> | |
186 | 180 | <part name="cass1" interface="orao_cass"> |
187 | 181 | <dataarea name="cass" size="17078"> |
188 | <rom name="kvadrat.tap" size="17078" crc="9ee09595" sha1="9ac6e8046765b6656f27046955eeea3672c4509c" offset="0 | |
182 | <rom name="kvadrat.tap" size="17078" crc="9ee09595" sha1="9ac6e8046765b6656f27046955eeea3672c4509c" offset="0" /> | |
189 | 183 | </dataarea> |
190 | 184 | </part> |
191 | 185 | </software> |
192 | 186 | |
193 | 187 | <software name="labirint"> |
194 | 188 | <description>Labirint</description> |
195 | <year>19??</year> | |
196 | <publisher><unknown></publisher> | |
189 | <year>1985</year> | |
190 | <publisher>Bibi Soft</publisher> | |
197 | 191 | <part name="cass1" interface="orao_cass"> |
198 | 192 | <dataarea name="cass" size="5698"> |
199 | <rom name="labirint.tap" size="5698" crc="864f7643" sha1="6201f6dfa20178ca782ac1cde73364d0c5f5ce64" offset="0 | |
193 | <rom name="labirint.tap" size="5698" crc="864f7643" sha1="6201f6dfa20178ca782ac1cde73364d0c5f5ce64" offset="0" /> | |
200 | 194 | </dataarea> |
201 | 195 | </part> |
202 | 196 | </software> |
203 | 197 | |
204 | 198 | <software name="labirinm"> |
205 | <description>LabirintM</description> | |
199 | <description>Labirint M</description> | |
206 | 200 | <year>19??</year> |
207 | 201 | <publisher><unknown></publisher> |
208 | 202 | <part name="cass1" interface="orao_cass"> |
209 | 203 | <dataarea name="cass" size="15237"> |
210 | <rom name="labirintm.tap" size="15237" crc="9e0790cf" sha1="89706cf82798956410facce1613c54a4c898979f" offset="0 | |
204 | <rom name="labirintm.tap" size="15237" crc="9e0790cf" sha1="89706cf82798956410facce1613c54a4c898979f" offset="0" /> | |
211 | 205 | </dataarea> |
212 | 206 | </part> |
213 | 207 | </software> |
214 | 208 | |
215 | 209 | <software name="mminer"> |
216 | <description>ManicMiner</description> | |
210 | <description>Manic Miner</description> | |
217 | 211 | <year>19??</year> |
218 | <publisher> | |
212 | <publisher>Nenad Mihailovic</publisher> | |
219 | 213 | <part name="cass1" interface="orao_cass"> |
220 | 214 | <dataarea name="cass" size="18001"> |
221 | <rom name="manicminer.tap" size="18001" crc="27380ee9" sha1="b37abeb1df684a1ae3b5bd19795ac90e69853176" offset="0 | |
215 | <rom name="manicminer.tap" size="18001" crc="27380ee9" sha1="b37abeb1df684a1ae3b5bd19795ac90e69853176" offset="0" /> | |
222 | 216 | </dataarea> |
223 | 217 | </part> |
224 | 218 | </software> |
225 | 219 | |
226 | 220 | <software name="matchfis"> |
227 | <description>MatchFishing</description> | |
228 | <year>19??</year> | |
229 | <publisher><unknown></publisher> | |
221 | <description>Match Fishing</description> | |
222 | <year>1986</year> | |
223 | <publisher>KMI Borovo</publisher> | |
230 | 224 | <part name="cass1" interface="orao_cass"> |
231 | 225 | <dataarea name="cass" size="23228"> |
232 | <rom name="matchfishing.tap" size="23228" crc="fa01ad6c" sha1="88a3af7de00440910212aeb6f5360b32fc9062a1" offset="0 | |
226 | <rom name="matchfishing.tap" size="23228" crc="fa01ad6c" sha1="88a3af7de00440910212aeb6f5360b32fc9062a1" offset="0" /> | |
233 | 227 | </dataarea> |
234 | 228 | </part> |
235 | 229 | </software> |
236 | 230 | |
237 | <software name="memonona"> | |
238 | <description>MemoNoName</description> | |
231 | <software name="memo"> | |
232 | <description>Memo</description> | |
239 | 233 | <year>19??</year> |
240 | <publisher> | |
234 | <publisher>PEL Soft</publisher> | |
241 | 235 | <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" /> | |
244 | 238 | </dataarea> |
245 | 239 | </part> |
246 | 240 | </software> |
247 | 241 | |
248 | <software name="memopel"> | |
249 | <description>Memo PEL</description> | |
242 | <software name="memoa" cloneof="memo"> | |
243 | <description>Memo (No Loading Screen)</description> | |
250 | 244 | <year>19??</year> |
251 | <publisher> | |
245 | <publisher>PEL Soft</publisher> | |
252 | 246 | <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" /> | |
255 | 249 | </dataarea> |
256 | 250 | </part> |
257 | 251 | </software> |
258 | 252 | |
259 | 253 | <software name="nevid"> |
260 | 254 | <description>Nevidljivi</description> |
261 | <year>19??</year> | |
262 | <publisher><unknown></publisher> | |
255 | <year>1987</year> | |
256 | <publisher>Suzy Soft</publisher> | |
263 | 257 | <part name="cass1" interface="orao_cass"> |
264 | 258 | <dataarea name="cass" size="4198"> |
265 | <rom name="nevidljivi.tap" size="4198" crc="513373fb" sha1="56bd74d57bafe8eccaeba5ac7d5ac6bae3412403" offset="0 | |
259 | <rom name="nevidljivi.tap" size="4198" crc="513373fb" sha1="56bd74d57bafe8eccaeba5ac7d5ac6bae3412403" offset="0" /> | |
266 | 260 | </dataarea> |
267 | 261 | </part> |
268 | 262 | </software> |
r241781 | r241782 | |
270 | 264 | <software name="obelix"> |
271 | 265 | <description>Obelix</description> |
272 | 266 | <year>19??</year> |
273 | <publisher> | |
267 | <publisher>KMI Borovo</publisher> | |
274 | 268 | <part name="cass1" interface="orao_cass"> |
275 | 269 | <dataarea name="cass" size="8639"> |
276 | <rom name="obelix.tap" size="8639" crc="f79019d1" sha1="0de7854d67905fcc476838fba064924c27bbef4b" offset="0 | |
270 | <rom name="obelix.tap" size="8639" crc="f79019d1" sha1="0de7854d67905fcc476838fba064924c27bbef4b" offset="0" /> | |
277 | 271 | </dataarea> |
278 | 272 | </part> |
279 | 273 | </software> |
280 | 274 | |
281 | 275 | <software name="othello"> |
282 | 276 | <description>Othello</description> |
283 | <year>19??</year> | |
284 | <publisher><unknown></publisher> | |
277 | <year>1985</year> | |
278 | <publisher>Sasa Ivkovic</publisher> | |
285 | 279 | <part name="cass1" interface="orao_cass"> |
286 | 280 | <dataarea name="cass" size="18828"> |
287 | <rom name="othello.tap" size="18828" crc="d488a8e3" sha1="a35d5b56882b07c10f98b011d6aa0006a1578452" offset="0 | |
281 | <rom name="othello.tap" size="18828" crc="d488a8e3" sha1="a35d5b56882b07c10f98b011d6aa0006a1578452" offset="0" /> | |
288 | 282 | </dataarea> |
289 | 283 | </part> |
290 | 284 | </software> |
291 | 285 | |
292 | 286 | <software name="pacman"> |
293 | <description>PacMan</description> | |
287 | <description>Pac-Man</description> | |
294 | 288 | <year>19??</year> |
295 | <publisher> | |
289 | <publisher>Sasa Ivkovic</publisher> | |
296 | 290 | <part name="cass1" interface="orao_cass"> |
297 | 291 | <dataarea name="cass" size="30114"> |
298 | <rom name="pacman.tap" size="30114" crc="3a6479ea" sha1="b1cbde718d491b4324d9ed13e70e7df0c108f398" offset="0 | |
292 | <rom name="pacman.tap" size="30114" crc="3a6479ea" sha1="b1cbde718d491b4324d9ed13e70e7df0c108f398" offset="0" /> | |
299 | 293 | </dataarea> |
300 | 294 | </part> |
301 | 295 | </software> |
302 | 296 | |
303 | 297 | <software name="pcelicam"> |
304 | <description>PcelicaMaja</description> | |
298 | <description>Pcelica Maja</description> | |
305 | 299 | <year>19??</year> |
306 | 300 | <publisher><unknown></publisher> |
307 | 301 | <part name="cass1" interface="orao_cass"> |
308 | 302 | <dataarea name="cass" size="16998"> |
309 | <rom name="pcelicamaja.tap" size="16998" crc="e1add5c2" sha1="fcaca49c82855c5fe493bb4741c7e855b1bd1402" offset="0 | |
303 | <rom name="pcelicamaja.tap" size="16998" crc="e1add5c2" sha1="fcaca49c82855c5fe493bb4741c7e855b1bd1402" offset="0" /> | |
310 | 304 | </dataarea> |
311 | 305 | </part> |
312 | 306 | </software> |
313 | 307 | |
314 | 308 | <software name="podsjet"> |
315 | 309 | <description>Podsjetnik</description> |
316 | <year>19??</year> | |
317 | <publisher><unknown></publisher> | |
310 | <year>1987</year> | |
311 | <publisher>Suzy Soft</publisher> | |
318 | 312 | <part name="cass1" interface="orao_cass"> |
319 | 313 | <dataarea name="cass" size="10515"> |
320 | <rom name="podsjetnik.tap" size="10515" crc="ea6c2bb4" sha1="fef66d98d23b1b2f675e3d0ed45ccb53829250da" offset="0 | |
314 | <rom name="podsjetnik.tap" size="10515" crc="ea6c2bb4" sha1="fef66d98d23b1b2f675e3d0ed45ccb53829250da" offset="0" /> | |
321 | 315 | </dataarea> |
322 | 316 | </part> |
323 | 317 | </software> |
324 | 318 | |
325 | 319 | <software name="pomorska"> |
326 | <description>PomorskaBitka</description> | |
320 | <description>Pomorska Bitka</description> | |
327 | 321 | <year>19??</year> |
328 | 322 | <publisher><unknown></publisher> |
329 | 323 | <part name="cass1" interface="orao_cass"> |
330 | 324 | <dataarea name="cass" size="9608"> |
331 | <rom name="pomorskabitka.tap" size="9608" crc="8c5dda11" sha1="d25fbedf844ce43ee2eb0cb32546c3abcc9111c0" offset="0 | |
325 | <rom name="pomorskabitka.tap" size="9608" crc="8c5dda11" sha1="d25fbedf844ce43ee2eb0cb32546c3abcc9111c0" offset="0" /> | |
332 | 326 | </dataarea> |
333 | 327 | </part> |
334 | 328 | </software> |
r241781 | r241782 | |
339 | 333 | <publisher><unknown></publisher> |
340 | 334 | <part name="cass1" interface="orao_cass"> |
341 | 335 | <dataarea name="cass" size="3179"> |
342 | <rom name="porno.tap" size="3179" crc="212bb659" sha1="ab422b4548d279a6961e77499f33b602eaacdd0b" offset="0 | |
336 | <rom name="porno.tap" size="3179" crc="212bb659" sha1="ab422b4548d279a6961e77499f33b602eaacdd0b" offset="0" /> | |
343 | 337 | </dataarea> |
344 | 338 | </part> |
345 | 339 | </software> |
r241781 | r241782 | |
350 | 344 | <publisher><unknown></publisher> |
351 | 345 | <part name="cass1" interface="orao_cass"> |
352 | 346 | <dataarea name="cass" size="5950"> |
353 | <rom name="reversi.tap" size="5950" crc="3964ff16" sha1="2a735bc3ab917c8b2f16d012318aed9f8aa62a52" offset="0 | |
347 | <rom name="reversi.tap" size="5950" crc="3964ff16" sha1="2a735bc3ab917c8b2f16d012318aed9f8aa62a52" offset="0" /> | |
354 | 348 | </dataarea> |
355 | 349 | </part> |
356 | 350 | </software> |
357 | 351 | |
358 | <software name="sah"> | |
359 | <description>Sah</description> | |
360 | <year>19??</year> | |
361 | <publisher><unknown></publisher> | |
352 | <software name="figchess"> | |
353 | <description>Figure Chess</description> | |
354 | <year>1986</year> | |
355 | <publisher>KMI Borovo</publisher> | |
362 | 356 | <part name="cass1" interface="orao_cass"> |
363 | 357 | <dataarea name="cass" size="19745"> |
364 | <rom name="sah.tap" size="19745" crc="02513ff4" sha1="29586a75f9a6ef7b9bb0f370b5eb7f9a00dee37a" offset="0 | |
358 | <rom name="sah.tap" size="19745" crc="02513ff4" sha1="29586a75f9a6ef7b9bb0f370b5eb7f9a00dee37a" offset="0" /> | |
365 | 359 | </dataarea> |
366 | 360 | </part> |
367 | 361 | </software> |
368 | 362 | |
369 | 363 | <software name="sintetiz"> |
370 | <description>SintetizatorZvuka</description> | |
371 | <year>19??</year> | |
372 | <publisher><unknown></publisher> | |
364 | <description>Sintetizator Zvuka</description> | |
365 | <year>1987</year> | |
366 | <publisher>Suzy Soft</publisher> | |
373 | 367 | <part name="cass1" interface="orao_cass"> |
374 | 368 | <dataarea name="cass" size="3422"> |
375 | <rom name="sintetizatorzvuka.tap" size="3422" crc="26da3240" sha1="96b4ec2a5b521e27e4fcc91081126aa274ab9230" offset="0 | |
369 | <rom name="sintetizatorzvuka.tap" size="3422" crc="26da3240" sha1="96b4ec2a5b521e27e4fcc91081126aa274ab9230" offset="0" /> | |
376 | 370 | </dataarea> |
377 | 371 | </part> |
378 | 372 | </software> |
r241781 | r241782 | |
380 | 374 | <software name="sokoban"> |
381 | 375 | <description>Sokoban</description> |
382 | 376 | <year>19??</year> |
383 | <publisher> | |
377 | <publisher>J.P.</publisher> | |
384 | 378 | <part name="cass1" interface="orao_cass"> |
385 | 379 | <dataarea name="cass" size="13829"> |
386 | <rom name="sokoban.tap" size="13829" crc="ffcf7e0c" sha1="12c435c68b2203b68f29c2450740b958e16e0405" offset="0 | |
380 | <rom name="sokoban.tap" size="13829" crc="ffcf7e0c" sha1="12c435c68b2203b68f29c2450740b958e16e0405" offset="0" /> | |
387 | 381 | </dataarea> |
388 | 382 | </part> |
389 | 383 | </software> |
390 | 384 | |
391 | 385 | <software name="spaceinv"> |
392 | <description>SpaceInvaders</description> | |
386 | <description>Space Invaders</description> | |
393 | 387 | <year>19??</year> |
394 | <publisher> | |
388 | <publisher>PEL Soft</publisher> | |
395 | 389 | <part name="cass1" interface="orao_cass"> |
396 | 390 | <dataarea name="cass" size="21150"> |
397 | <rom name="spaceinvaders.tap" size="21150" crc="31230e8b" sha1="8021e562130d2b11eb916f3623e65794d93b2a93" offset="0 | |
391 | <rom name="spaceinvaders.tap" size="21150" crc="31230e8b" sha1="8021e562130d2b11eb916f3623e65794d93b2a93" offset="0" /> | |
398 | 392 | </dataarea> |
399 | 393 | </part> |
400 | 394 | </software> |
401 | 395 | |
402 | 396 | <software name="stripajn"> |
403 | <description>StripAjnc</description> | |
404 | <year>19??</year> | |
405 | <publisher><unknown></publisher> | |
397 | <description>Strip Ajnc</description> | |
398 | <year>1985</year> | |
399 | <publisher>Z. Bistrovic</publisher> | |
406 | 400 | <part name="cass1" interface="orao_cass"> |
407 | 401 | <dataarea name="cass" size="8750"> |
408 | <rom name="stripajnc.tap" size="8750" crc="68032c11" sha1="3a49a90b7915491eecdec149a5cfb2f90e1a03da" offset="0 | |
402 | <rom name="stripajnc.tap" size="8750" crc="68032c11" sha1="3a49a90b7915491eecdec149a5cfb2f90e1a03da" offset="0" /> | |
409 | 403 | </dataarea> |
410 | 404 | </part> |
411 | 405 | </software> |
412 | 406 | |
413 | 407 | <software name="stripgam"> |
414 | <description>StripGameAinc</description> | |
408 | <description>Strip Game Ainc</description> | |
415 | 409 | <year>19??</year> |
416 | <publisher> | |
410 | <publisher>KMI Borovo</publisher> | |
417 | 411 | <part name="cass1" interface="orao_cass"> |
418 | 412 | <dataarea name="cass" size="31615"> |
419 | <rom name="stripgameainc.tap" size="31615" crc="03e38de8" sha1="c5df30d030f44f19182c86fcb6448116f7f92be1" offset="0 | |
413 | <rom name="stripgameainc.tap" size="31615" crc="03e38de8" sha1="c5df30d030f44f19182c86fcb6448116f7f92be1" offset="0" /> | |
420 | 414 | </dataarea> |
421 | 415 | </part> |
422 | 416 | </software> |
r241781 | r241782 | |
424 | 418 | <software name="tornjev"> |
425 | 419 | <description>Tornjevi</description> |
426 | 420 | <year>19??</year> |
427 | <publisher> | |
421 | <publisher>Tom</publisher> | |
428 | 422 | <part name="cass1" interface="orao_cass"> |
429 | 423 | <dataarea name="cass" size="3966"> |
430 | <rom name="tornjevi.tap" size="3966" crc="38d905d7" sha1="2b21e99b9e847a5bde4acadc03b62ca2e628c93d" offset="0 | |
424 | <rom name="tornjevi.tap" size="3966" crc="38d905d7" sha1="2b21e99b9e847a5bde4acadc03b62ca2e628c93d" offset="0" /> | |
431 | 425 | </dataarea> |
432 | 426 | </part> |
433 | 427 | </software> |
434 | 428 | |
435 | 429 | <software name="ukletidv"> |
436 | <description>UkletiDvorac</description> | |
430 | <description>Ukleti Dvorac</description> | |
437 | 431 | <year>19??</year> |
438 | 432 | <publisher><unknown></publisher> |
439 | 433 | <part name="cass1" interface="orao_cass"> |
440 | 434 | <dataarea name="cass" size="12398"> |
441 | <rom name="ukletidvorac.tap" size="12398" crc="850123a7" sha1="d867f072832e8c6dd87fe4bbda14cbb720e9ca25" offset="0 | |
435 | <rom name="ukletidvorac.tap" size="12398" crc="850123a7" sha1="d867f072832e8c6dd87fe4bbda14cbb720e9ca25" offset="0" /> | |
442 | 436 | </dataarea> |
443 | 437 | </part> |
444 | 438 | </software> |
445 | 439 | |
446 | 440 | <software name="zid"> |
447 | 441 | <description>Zid</description> |
448 | <year>19??</year> | |
449 | <publisher><unknown></publisher> | |
442 | <year>1985</year> | |
443 | <publisher>PEL Zabavni Programi</publisher> | |
450 | 444 | <part name="cass1" interface="orao_cass"> |
451 | 445 | <dataarea name="cass" size="11345"> |
452 | <rom name="zid.tap" size="11345" crc="c7524e54" sha1="4ee43911a7c49899d2ef7e89308ab3213d1cedac" offset="0 | |
446 | <rom name="zid.tap" size="11345" crc="c7524e54" sha1="4ee43911a7c49899d2ef7e89308ab3213d1cedac" offset="0" /> | |
453 | 447 | </dataarea> |
454 | 448 | </part> |
455 | 449 | </software> |
456 | 450 | |
457 | 451 | <software name="znakovi"> |
458 | 452 | <description>Znakovi</description> |
459 | <year>19??</year> | |
460 | <publisher><unknown></publisher> | |
453 | <year>1987</year> | |
454 | <publisher>Suzy Soft</publisher> | |
461 | 455 | <part name="cass1" interface="orao_cass"> |
462 | 456 | <dataarea name="cass" size="4618"> |
463 | <rom name="znakovi.tap" size="4618" crc="a834c22e" sha1="49340c62aa1f1109f610e95878eb75de24916928" offset="0 | |
457 | <rom name="znakovi.tap" size="4618" crc="a834c22e" sha1="49340c62aa1f1109f610e95878eb75de24916928" offset="0" /> | |
464 | 458 | </dataarea> |
465 | 459 | </part> |
466 | 460 | </software> |
r241781 | r241782 | |
---|---|---|
6 | 6 | <software name="adresar"> |
7 | 7 | <description>Adresar</description> |
8 | 8 | <year>19??</year> |
9 | <publisher> | |
9 | <publisher>Ei Racunari</publisher> | |
10 | 10 | <part name="cass1" interface="pecom_cass"> |
11 | 11 | <dataarea name="cass" size="6382680"> |
12 | <rom name="adresar.wav" size="6382680" crc="e0032321" sha1="f6c9d19941175561c942c803aedc87d5c2dd1903" offset="0 | |
12 | <rom name="adresar.wav" size="6382680" crc="e0032321" sha1="f6c9d19941175561c942c803aedc87d5c2dd1903" offset="0" /> | |
13 | 13 | </dataarea> |
14 | 14 | </part> |
15 | 15 | </software> |
16 | 16 | |
17 | 17 | <software name="bioritam"> |
18 | 18 | <description>Bioritam</description> |
19 | <year>19??</year> | |
20 | <publisher><unknown></publisher> | |
19 | <year>1985</year> | |
20 | <publisher>Ei Racunari</publisher> | |
21 | 21 | <part name="cass1" interface="pecom_cass"> |
22 | 22 | <dataarea name="cass" size="5094680"> |
23 | <rom name="bioritam.wav" size="5094680" crc="9fead1c7" sha1="7ed80372fdd57cc68997acc3a7eb1e1628236dfe" offset="0 | |
23 | <rom name="bioritam.wav" size="5094680" crc="9fead1c7" sha1="7ed80372fdd57cc68997acc3a7eb1e1628236dfe" offset="0" /> | |
24 | 24 | </dataarea> |
25 | 25 | </part> |
26 | 26 | </software> |
27 | 27 | |
28 | 28 | <software name="lavirint"> |
29 | 29 | <description>Lavirint</description> |
30 | <year>19??</year> | |
31 | <publisher><unknown></publisher> | |
30 | <year>1987</year> | |
31 | <publisher>Ei Racunari</publisher> | |
32 | 32 | <part name="cass1" interface="pecom_cass"> |
33 | 33 | <dataarea name="cass" size="13222360"> |
34 | <rom name="lavirint.wav" size="13222360" crc="9f0aa1b4" sha1="854e9bbe45e42e09c7e57b561b311a98ff078661" offset="0 | |
34 | <rom name="lavirint.wav" size="13222360" crc="9f0aa1b4" sha1="854e9bbe45e42e09c7e57b561b311a98ff078661" offset="0" /> | |
35 | 35 | </dataarea> |
36 | 36 | </part> |
37 | 37 | </software> |
38 | 38 | |
39 | 39 | <software name="lopovbnk"> |
40 | <description>LopovIBankar</description> | |
41 | <year>19??</year> | |
42 | <publisher><unknown></publisher> | |
40 | <description>Lopov i Bankar</description> | |
41 | <year>1985</year> | |
42 | <publisher>Ei Racunari</publisher> | |
43 | 43 | <part name="cass1" interface="pecom_cass"> |
44 | 44 | <dataarea name="cass" size="7996248"> |
45 | <rom name="lopov i bankar.wav" size="7996248" crc="e02b73bc" sha1="6b817af8638a94aa7f7c395467237adf3e226d12" offset="0 | |
45 | <rom name="lopov i bankar.wav" size="7996248" crc="e02b73bc" sha1="6b817af8638a94aa7f7c395467237adf3e226d12" offset="0" /> | |
46 | 46 | </dataarea> |
47 | 47 | </part> |
48 | 48 | </software> |
49 | 49 | |
50 | 50 | <software name="osvajaci"> |
51 | <description>OsvajaciSvemira</description> | |
52 | <year>19??</year> | |
53 | <publisher><unknown></publisher> | |
51 | <description>Osvajaci Svemira</description> | |
52 | <year>1985</year> | |
53 | <publisher>Ei Racunari</publisher> | |
54 | 54 | <part name="cass1" interface="pecom_cass"> |
55 | 55 | <dataarea name="cass" size="19538520"> |
56 | <rom name="osvajaci svemira.wav" size="19538520" crc="a9000525" sha1="6758cac948d3fd1400e4f90dd9c1d281dfd42d0e" offset="0 | |
56 | <rom name="osvajaci svemira.wav" size="19538520" crc="a9000525" sha1="6758cac948d3fd1400e4f90dd9c1d281dfd42d0e" offset="0" /> | |
57 | 57 | </dataarea> |
58 | 58 | </part> |
59 | 59 | </software> |
60 | 60 | |
61 | 61 | <software name="pecomrat"> |
62 | <description>PecomRatuje</description> | |
63 | <year>19??</year> | |
64 | <publisher><unknown></publisher> | |
62 | <description>Pecom Ratuje</description> | |
63 | <year>1985</year> | |
64 | <publisher>Ei Racunari</publisher> | |
65 | 65 | <part name="cass1" interface="pecom_cass"> |
66 | 66 | <dataarea name="cass" size="7595800"> |
67 | <rom name="pecom ratuje.wav" size="7595800" crc="9837c657" sha1="d481df682df097de3e9b87f28d0be47939e87098" offset="0 | |
67 | <rom name="pecom ratuje.wav" size="7595800" crc="9837c657" sha1="d481df682df097de3e9b87f28d0be47939e87098" offset="0" /> | |
68 | 68 | </dataarea> |
69 | 69 | </part> |
70 | 70 | </software> |
71 | 71 | |
72 | 72 | <software name="kompozit"> |
73 | <description>SamSvojKompozitor</description> | |
74 | <year>19??</year> | |
75 | <publisher><unknown></publisher> | |
73 | <description>Sam Svoj Kompozitor</description> | |
74 | <year>1987</year> | |
75 | <publisher>Ei Racunari</publisher> | |
76 | 76 | <part name="cass1" interface="pecom_cass"> |
77 | 77 | <dataarea name="cass" size="3567832"> |
78 | <rom name="sam svoj kompozitor.wav" size="3567832" crc="16a53a50" sha1="6ae2a28f0dfb8c6909240b28051c70149257847b" offset="0 | |
78 | <rom name="sam svoj kompozitor.wav" size="3567832" crc="16a53a50" sha1="6ae2a28f0dfb8c6909240b28051c70149257847b" offset="0" /> | |
79 | 79 | </dataarea> |
80 | 80 | </part> |
81 | 81 | </software> |
82 | 82 | |
83 | 83 | <software name="sljive"> |
84 | 84 | <description>Sljive</description> |
85 | <year>19??</year> | |
86 | <publisher><unknown></publisher> | |
85 | <year>1986</year> | |
86 | <publisher>Ei Racunari</publisher> | |
87 | 87 | <part name="cass1" interface="pecom_cass"> |
88 | 88 | <dataarea name="cass" size="7898072"> |
89 | <rom name="shljive.wav" size="7898072" crc="1c5d5a07" sha1="d63a217571ee0e5216708380844f028875533c4b" offset="0 | |
89 | <rom name="shljive.wav" size="7898072" crc="1c5d5a07" sha1="d63a217571ee0e5216708380844f028875533c4b" offset="0" /> | |
90 | 90 | </dataarea> |
91 | 91 | </part> |
92 | 92 | </software> |
93 | 93 | |
94 | 94 | <software name="suviajnc"> |
95 | <description>SuviAjnc</description> | |
96 | <year>19??</year> | |
97 | <publisher><unknown></publisher> | |
95 | <description>Suvi Ajnc</description> | |
96 | <year>1986</year> | |
97 | <publisher>Ei Racunari</publisher> | |
98 | 98 | <part name="cass1" interface="pecom_cass"> |
99 | 99 | <dataarea name="cass" size="11266136"> |
100 | <rom name="suvi ajnc.wav" size="11266136" crc="c922dc59" sha1="8679f34599d6929ce969d3ff16c007358924bd80" offset="0 | |
100 | <rom name="suvi ajnc.wav" size="11266136" crc="c922dc59" sha1="8679f34599d6929ce969d3ff16c007358924bd80" offset="0" /> | |
101 | 101 | </dataarea> |
102 | 102 | </part> |
103 | 103 | </software> |
104 | 104 | |
105 | 105 | <software name="trkakonj"> |
106 | <description>TrkaKonja</description> | |
106 | <description>Trka Konja</description> | |
107 | 107 | <year>19??</year> |
108 | 108 | <publisher><unknown></publisher> |
109 | 109 | <part name="cass1" interface="pecom_cass"> |
110 | 110 | <dataarea name="cass" size="6658904"> |
111 | <rom name="trka konja.wav" size="6658904" crc="f388087b" sha1="5dfc064b154a06409e2f57832318097756384ba3" offset="0 | |
111 | <rom name="trka konja.wav" size="6658904" crc="f388087b" sha1="5dfc064b154a06409e2f57832318097756384ba3" offset="0" /> | |
112 | 112 | </dataarea> |
113 | 113 | </part> |
114 | 114 | </software> |
r241781 | r241782 | |
---|---|---|
101 | 101 | </software> |
102 | 102 | |
103 | 103 | <software name="pokezcrd"> |
104 | <description>Poké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"> | |
104 | 115 | <description>Pokémon Zany Cards (Fra)</description> |
105 | 116 | <year>2001</year> |
106 | 117 | <publisher>Nintendo</publisher> |
r241781 | r241782 | |
133 | 144 | </part> |
134 | 145 | </software> |
135 | 146 | |
147 | <software name="ppartyj" cloneof="pparty" supported="partial"> | |
148 | <description>Poké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 | ||
136 | 158 | <software name="ppartyu" cloneof="pparty" supported="partial"> |
137 | <description>Pokémon Party Mini (USA)</description> | |
159 | <description>Pokémon Party Mini (Aus, USA)</description> | |
138 | 160 | <year>2001</year> |
139 | 161 | <publisher>Nintendo</publisher> |
140 | 162 | <part name="cart" interface="pokemini_cart"> |
r241781 | r241782 | |
145 | 167 | </software> |
146 | 168 | |
147 | 169 | <software name="ppinb"> |
148 | <description>Pokémon Pinball Mini (USA)</description> | |
170 | <description>Pokémon Pinball Mini (Aus, Euro, USA)</description> | |
149 | 171 | <year>2001</year> |
150 | 172 | <publisher>Nintendo</publisher> |
151 | 173 | <part name="cart" interface="pokemini_cart"> |
r241781 | r241782 | |
288 | 310 | </software> |
289 | 311 | |
290 | 312 | <software name="ppuzzlc" supported="partial"> |
291 | <description>Pokémon Puzzle Collection (USA)</description> | |
313 | <description>Pokémon Puzzle Collection (Aus, Euro, USA)</description> | |
292 | 314 | <year>2001</year> |
293 | 315 | <publisher>Nintendo</publisher> |
294 | 316 | <part name="cart" interface="pokemini_cart"> |
r241781 | r241782 | |
298 | 320 | </part> |
299 | 321 | </software> |
300 | 322 | |
301 | <software name="ppuzzlc2" supported="partial"> | |
302 | <description>Pokémon Puzzle Collection Vol. 2 (Jpn)</description> | |
303 | <year>2002</year> | |
323 | <software name="ppuzzlcp" cloneof="ppuzzlc" supported="partial"> | |
324 | <description>Pokémon Puzzle Collection (USA, GameCube Preview)</description> | |
325 | <year>2001</year> | |
304 | 326 | <publisher>Nintendo</publisher> |
305 | 327 | <part name="cart" interface="pokemini_cart"> |
306 | 328 | <dataarea name="rom" size="524288"> |
307 | <rom name="pokemon puzzle collection | |
329 | <rom name="pokemon puzzle collection (usa) (gamecube preview).bin" size="524288" crc="6f8ae656" sha1="048bb1d30d6ff21be14dd123c52a375e12611238" offset="000000" /> | |
308 | 330 | </dataarea> |
309 | 331 | </part> |
310 | 332 | </software> |
311 | 333 | |
334 | <software name="ppuzzlcf" cloneof="ppuzzlc" supported="partial"> | |
335 | <description>Poké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 | ||
312 | 345 | <software name="ppuzzlcfp" cloneof="ppuzzlc" supported="partial"> |
313 | 346 | <description>Pokémon Puzzle Collection (Fra, GameCube Preview)</description> |
314 | 347 | <year>2001</year> |
r241781 | r241782 | |
364 | 397 | </part> |
365 | 398 | </software> |
366 | 399 | |
367 | <software name="ppuzzlcp" cloneof="ppuzzlc" supported="partial"> | |
368 | <description>Pokémon Puzzle Collection (USA, GameCube Preview)</description> | |
369 | <year>2001</year> | |
400 | <software name="ppuzzlc2" supported="partial"> | |
401 | <description>Pokémon Puzzle Collection Vol. 2 (Jpn)</description> | |
402 | <year>2002</year> | |
370 | 403 | <publisher>Nintendo</publisher> |
371 | 404 | <part name="cart" interface="pokemini_cart"> |
372 | 405 | <dataarea name="rom" size="524288"> |
373 | <rom name="pokemon puzzle collection | |
406 | <rom name="pokemon puzzle collection vol. 2 (japan).bin" size="524288" crc="76a1bbf8" sha1="11775bbac2e985ef90d4192ed6322dd3b8352ac9" offset="000000" /> | |
374 | 407 | </dataarea> |
375 | 408 | </part> |
376 | 409 | </software> |
r241781 | r241782 | |
---|---|---|
1 | <?xml version="1.0"?> | |
2 | <!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> | |
3 | ||
4 | <!-- | |
5 | Info taken from: http://www.retroisle.com/others/psion/organiser2/software.php | |
6 | ||
7 | Undumped 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><unknown></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><unknown></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><unknown></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><unknown></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> |
r0 | r241782 | |
---|---|---|
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> |
r0 | r241782 | |
---|---|---|
1 | <?xml version="1.0"?> | |
2 | <!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> | |
3 | ||
4 | <!-- | |
5 | Info taken from: http://www.retroisle.com/others/psion/organiser2/software.php | |
6 | ||
7 | Undumped 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><unknown></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><unknown></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> |
r241781 | r241782 | |
---|---|---|
35670 | 35670 | </part> |
35671 | 35671 | </software> |
35672 | 35672 | |
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 | ||
35673 | 35687 | <software name="bullvsbl"> |
35674 | 35688 | <description>Bulls vs Blazers and the NBA Playoffs (Euro, Rev. A)</description> |
35675 | 35689 | <year>1992</year> |
r0 | r241782 | |
---|---|---|
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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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><unknown></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> |
r0 | r241782 | |
---|---|---|
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&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 & 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 & 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 & 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")</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> |
r241781 | r241782 | |
---|---|---|
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 & 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> |
r0 | r241782 | |
---|---|---|
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 & 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> |
r241781 | r241782 | |
---|---|---|
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&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 & 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 & 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 & 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")</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> |
r241781 | r241782 | |
---|---|---|
4 | 4 | |
5 | 5 | |
6 | 6 | <software name="basic80"> |
7 | <description>BASIC | |
7 | <description>Mikro/80 BASIC</description> | |
8 | 8 | <year>19??</year> |
9 | 9 | <publisher><unknown></publisher> |
10 | 10 | <part name="cass" interface="ut88_cass"> |
r241781 | r241782 | |
15 | 15 | </software> |
16 | 16 | |
17 | 17 | <software name="chscom"> |
18 | <description>C | |
18 | <description>Changer (v1.1) (CP/M)</description> | |
19 | 19 | <year>19??</year> |
20 | 20 | <publisher><unknown></publisher> |
21 | 21 | <part name="cass" interface="ut88_cass"> |
r241781 | r241782 | |
26 | 26 | </software> |
27 | 27 | |
28 | 28 | <software name="cpm35"> |
29 | <description>CPM35</description> | |
29 | <description>CP/M (v2.2, 35K)</description> | |
30 | 30 | <year>19??</year> |
31 | 31 | <publisher><unknown></publisher> |
32 | 32 | <part name="cass" interface="ut88_cass"> |
r241781 | r241782 | |
36 | 36 | </part> |
37 | 37 | </software> |
38 | 38 | |
39 | <software name="cpm64"> | |
40 | <description>CPM64</description> | |
39 | <software name="cpm256"> | |
40 | <description>CP/M (v2.2, 256K)</description> | |
41 | 41 | <year>19??</year> |
42 | 42 | <publisher><unknown></publisher> |
43 | 43 | <part name="cass" interface="ut88_cass"> |
r241781 | r241782 | |
48 | 48 | </software> |
49 | 49 | |
50 | 50 | <software name="tetris"> |
51 | <description>T | |
51 | <description>Tetris</description> | |
52 | 52 | <year>19??</year> |
53 | 53 | <publisher><unknown></publisher> |
54 | 54 | <part name="cass" interface="ut88_cass"> |
r241781 | r241782 | |
---|---|---|
3 | 3 | <!-- |
4 | 4 | NOTE: This list is here only to document available dumps and it's not used (yet) by MESS! |
5 | 5 | --> |
6 | <softwarelist name="vreader" description="VTech V.Reader / S | |
6 | <softwarelist name="vreader" description="VTech V.Reader / Storio cartridges"> | |
7 | 7 | |
8 | 8 | <!-- |
9 | 9 | |
r241781 | r241782 | |
47 | 47 | |
48 | 48 | |
49 | 49 | --> |
50 | </softwarelist> | |
No newline at end of file | ||
50 | </softwarelist> |
r241781 | r241782 | |
---|---|---|
24 | 24 | 80-093020(US) | The Incredibles - Mission Incredible |
25 | 25 | 80-093023(UK) | The Incredibles - Mission Incredible |
26 | 26 | 80-093024(GE) | Die Unglaublichen - unglaublicher Mission |
27 | 80-093025(FR) | Les Indestructibles - Les Indestructibles A la Rescousse | |
27 | 28 | 80-093027(SP) | Los Increibles - Mision Increible |
28 | 29 | - |
29 | 30 | 80-093040(US) | SpongeBob - Idea Sponge |
30 | 31 | 80-093044(GE) | SpongeBob - Ein Schwamm voller Ideen |
32 | 80-093045(FR) | Bob L'éponge - ????? (the crab consultant...) | |
31 | 33 | - |
32 | 34 | 80-093060(US) | The Amazing Spider-Man - Countdown to Doom |
33 | 35 | 80-093064(GE) | Spiderman - Angriff der Superschurken |
r241781 | r241782 | |
36 | 38 | - |
37 | 39 | 80-093080(US) | Scooby-Doo! - Ancient Adventure |
38 | 40 | 80-093083(UK) | Scooby-Doo! - Ancient Adventure |
39 | 80-093084(GE) | Scooby-Doo! - | |
41 | 80-093084(GE) | Scooby-Doo! - ????? (no EAN found, but should have been released) | |
40 | 42 | 80-093085(FR) | Scooby-Doo! - Les Civilisations Perdues |
41 | 43 | 80-093087(SP) | Scooby-Doo - Viaje al Pasdao |
42 | 44 | - |
r241781 | r241782 | |
52 | 54 | 80-093140(US) | Shrek The Third - The Search for Arthur |
53 | 55 | 80-093143(UK) | Shrek The Third - The Search for Arthur |
54 | 56 | 80-093144(GE) | Shrek Der Dritte - Die Suche nach Arthus |
57 | 80-093145(FR) | Shrek Le Troisième: L'aventure D'arthur | |
55 | 58 | 80-093147(SP) | Shrek Tercero - Donde esta Arturo? |
56 | 59 | - |
57 | 60 | 80-093160(US) | Bratz - The Secret Necklace |
61 | 80-093165(FR) | Bratz | |
58 | 62 | - |
59 | 63 | 80-093180(US) | <Unknown> |
60 | 64 | - |
r241781 | r241782 | |
65 | 69 | - |
66 | 70 | 80-093600(US) | <Unknown> |
67 | 71 | 80-093604(GE) | Multisports |
72 | 80-093605(FR) | Defis Sports | |
68 | 73 | |
69 | 74 | |
70 | 75 | --> |
r0 | r241782 | |
---|---|---|
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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></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><type-in></publisher> | |
1328 | <info name="magazine" value="Hebdogiciel 66" /> | |
1329 | <info name="release" value="19850118" /> | |
1330 | <info name="author" value="Cyril Giroux & 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><type-in></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><type-in></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> |
r241781 | r241782 | |
---|---|---|
910 | 910 | $(CC) $(CDEFS) $(CFLAGS) -c $(SRC)/version.c -o $(VERSIONOBJ) |
911 | 911 | @echo Linking $@... |
912 | 912 | ifeq ($(TARGETOS),emscripten) |
913 | ||
913 | # Emscripten's linker seems to be stricter about the ordering of .a files | |
914 | 914 | $(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $(VERSIONOBJ) -Wl,--start-group $^ -Wl,--end-group $(LIBS) -o $@ |
915 | 915 | else |
916 | 916 | $(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $(VERSIONOBJ) $^ $(LIBS) -o $@ |
r241781 | r241782 | |
---|---|---|
49 | 49 | - verify cursor keys |
50 | 50 | - language DIP |
51 | 51 | - mouse |
52 | - investigate unknown ROMs | |
53 | 52 | - MCS-48 PC:01DC - Unimplemented opcode = 75 |
54 | 53 | - 75 = ENT0 CLK : enable CLK (unscaled_clock/3) output on T0 |
55 | 54 | - halt Z2 when Z5 is reset, resume Z2 when Z5 executes ENT0 CLK instruction |
r241781 | r241782 | |
81 | 80 | //------------------------------------------------- |
82 | 81 | |
83 | 82 | ROM_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" ) | |
86 | 86 | |
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 | ||
87 | 91 | 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) ) | |
93 | 94 | ROM_END |
94 | 95 | |
95 | 96 | |
r241781 | r241782 | |
108 | 109 | //------------------------------------------------- |
109 | 110 | |
110 | 111 | static ADDRESS_MAP_START( abc99_z2_mem, AS_PROGRAM, 8, abc99_device ) |
111 | AM_RANGE(0x0000, 0x0 | |
112 | AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION(I8035_Z2_TAG, 0) | |
112 | 113 | ADDRESS_MAP_END |
113 | 114 | |
114 | 115 | |
r241781 | r241782 | |
488 | 489 | // abc99_device - constructor |
489 | 490 | //------------------------------------------------- |
490 | 491 | |
491 | abc99_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) | |
492 | abc99_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) | |
509 | 510 | { |
510 | 511 | } |
511 | 512 |
r241781 | r241782 | |
---|---|---|
333 | 333 | BUSOBJS += $(BUSOBJ)/dmv/k220.o |
334 | 334 | BUSOBJS += $(BUSOBJ)/dmv/k230.o |
335 | 335 | BUSOBJS += $(BUSOBJ)/dmv/k233.o |
336 | BUSOBJS += $(BUSOBJ)/dmv/k803.o | |
336 | 337 | BUSOBJS += $(BUSOBJ)/dmv/k806.o |
337 | 338 | BUSOBJS += $(BUSOBJ)/dmv/ram.o |
338 | 339 | endif |
r241781 | r241782 | |
510 | 511 | BUSOBJS += $(BUSOBJ)/isa/sc499.o |
511 | 512 | BUSOBJS += $(BUSOBJ)/isa/aga.o |
512 | 513 | BUSOBJS += $(BUSOBJ)/isa/svga_trident.o |
514 | BUSOBJS += $(BUSOBJ)/isa/num9rev.o | |
513 | 515 | endif |
514 | 516 | |
515 | 517 | #------------------------------------------------- |
r241781 | r241782 | |
989 | 991 | |
990 | 992 | #------------------------------------------------- |
991 | 993 | # |
992 | #@src/emu/bus/pci/pci.h,BUSES += PCI | |
994 | #@src/emu/bus/lpci/pci.h,BUSES += LPCI | |
993 | 995 | #------------------------------------------------- |
994 | 996 | |
995 | ifneq ($(filter PCI,$(BUSES)),) | |
996 | OBJDIRS += $(BUSOBJ)/pci | |
997 | BUSOBJS += $(BUSOBJ)/pci/pci.o | |
998 | BUSOBJS += $(BUSOBJ)/pci/cirrus.o | |
999 | BUSOBJS += $(BUSOBJ)/pci/i82371ab.o | |
1000 | BUSOBJS += $(BUSOBJ)/pci/i82371sb.o | |
1001 | BUSOBJS += $(BUSOBJ)/pci/i82439tx.o | |
1002 | BUSOBJS += $(BUSOBJ)/pci/northbridge.o | |
1003 | BUSOBJS += $(BUSOBJ)/pci/southbridge.o | |
1004 | BUSOBJS += $(BUSOBJ)/pci/mpc105.o | |
997 | ifneq ($(filter LPCI,$(BUSES)),) | |
998 | OBJDIRS += $(BUSOBJ)/lpci | |
999 | BUSOBJS += $(BUSOBJ)/lpci/pci.o | |
1000 | BUSOBJS += $(BUSOBJ)/lpci/cirrus.o | |
1001 | BUSOBJS += $(BUSOBJ)/lpci/i82371ab.o | |
1002 | BUSOBJS += $(BUSOBJ)/lpci/i82371sb.o | |
1003 | BUSOBJS += $(BUSOBJ)/lpci/i82439tx.o | |
1004 | BUSOBJS += $(BUSOBJ)/lpci/northbridge.o | |
1005 | BUSOBJS += $(BUSOBJ)/lpci/southbridge.o | |
1006 | BUSOBJS += $(BUSOBJ)/lpci/mpc105.o | |
1005 | 1007 | endif |
1006 | 1008 | |
1007 | 1009 | #------------------------------------------------- |
r241781 | r241782 | |
---|---|---|
78 | 78 | |
79 | 79 | // reset |
80 | 80 | virtual void cpc_reset_w() { }; |
81 | virtual WRITE_LINE_MEMBER( cursor_w ) { }; | |
81 | 82 | |
82 | 83 | void set_rom_bank(UINT8 sel) { m_rom_sel = sel; } // tell device the currently selected ROM |
83 | 84 | UINT8 get_rom_bank() { return m_rom_sel; } |
r241781 | r241782 | |
108 | 109 | DECLARE_WRITE_LINE_MEMBER( romdis_w ); |
109 | 110 | |
110 | 111 | 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 | |
111 | 113 | |
112 | 114 | protected: |
113 | 115 | // device-level overrides |
r241781 | r241782 | |
---|---|---|
3 | 3 | |
4 | 4 | Z80 CTC |
5 | 5 | 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. | |
6 | 9 | */ |
7 | 10 | |
8 | 11 | #include "playcity.h" |
r241781 | r241782 | |
18 | 21 | static MACHINE_CONFIG_FRAGMENT( cpc_playcity ) |
19 | 22 | MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_4MHz) |
20 | 23 | 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)) | |
22 | 26 | |
23 | MCFG_SPEAKER_STANDARD_ | |
27 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker") | |
24 | 28 | 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, " | |
29 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30) | |
26 | 30 | MCFG_SOUND_ADD("ymz_2",YMZ294,XTAL_4MHz) |
27 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, " | |
31 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30) | |
28 | 32 | |
29 | 33 | // pass-through |
30 | 34 | MCFG_DEVICE_ADD("exp", CPC_EXPANSION_SLOT, 0) |
r241781 | r241782 | |
89 | 93 | WRITE8_MEMBER(cpc_playcity_device::ctc_w) |
90 | 94 | { |
91 | 95 | m_ctc->write(space,offset,data); |
92 | update_ymz_clock(); | |
96 | if(offset == 0) | |
97 | update_ymz_clock(); | |
93 | 98 | } |
94 | 99 | |
95 | 100 | WRITE8_MEMBER(cpc_playcity_device::ymz1_address_w) |
r241781 | r241782 | |
---|---|---|
3 | 3 | |
4 | 4 | I/O ports: |
5 | 5 | * 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) | |
7 | 7 | * F882 - Z80CTC channel 2 (input is system clock (4MHz), output to channel 3 input) |
8 | * F883 - Z80CTC channel 3 (input is channel 2 output | |
8 | * F883 - Z80CTC channel 3 (input is channel 2 output) | |
9 | 9 | * F884 - YMZ294 #1 (right) data |
10 | 10 | * F888 - YMZ294 #2 (left) data |
11 | 11 | * F984 - YMZ294 #1 (right) register select |
r241781 | r241782 | |
39 | 39 | DECLARE_WRITE8_MEMBER(ymz2_data_w); |
40 | 40 | DECLARE_READ8_MEMBER(ymz1_data_r); |
41 | 41 | 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); } | |
44 | 44 | |
45 | virtual WRITE_LINE_MEMBER(cursor_w) { m_ctc->trg1(state); } | |
46 | ||
45 | 47 | protected: |
46 | 48 | // device-level overrides |
47 | 49 | virtual void device_start(); |
r241781 | r241782 | |
---|---|---|
199 | 199 | device_slot_interface(mconfig, *this), |
200 | 200 | m_prog_read_cb(*this), |
201 | 201 | m_prog_write_cb(*this), |
202 | m_out_int_cb(*this), | |
202 | 203 | m_out_irq_cb(*this), |
203 | 204 | m_out_thold_cb(*this) |
204 | 205 | { |
r241781 | r241782 | |
224 | 225 | // resolve callbacks |
225 | 226 | m_prog_read_cb.resolve_safe(0); |
226 | 227 | m_prog_write_cb.resolve_safe(); |
228 | m_out_int_cb.resolve_safe(); | |
227 | 229 | m_out_irq_cb.resolve_safe(); |
228 | 230 | m_out_thold_cb.resolve_safe(); |
229 | 231 | } |
r241781 | r241782 | |
---|---|---|
58 | 58 | |
59 | 59 | 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); } |
60 | 60 | 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); } | |
61 | 62 | 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); } |
62 | 63 | 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); } |
63 | 64 | |
r241781 | r241782 | |
86 | 87 | // internal state |
87 | 88 | devcb_read8 m_prog_read_cb; |
88 | 89 | devcb_write8 m_prog_write_cb; |
90 | devcb_write_line m_out_int_cb; | |
89 | 91 | devcb_write_line m_out_irq_cb; |
90 | 92 | devcb_write_line m_out_thold_cb; |
91 | 93 | device_dmvslot_interface* m_cart; |
r241781 | r241782 | |
104 | 106 | devcb = &dmvcart_slot_device::set_prog_read_callback(*device, DEVCB_##_read_devcb); \ |
105 | 107 | devcb = &dmvcart_slot_device::set_prog_write_callback(*device, DEVCB_##_write_devcb); |
106 | 108 | |
109 | #define MCFG_DMVCART_SLOT_OUT_INT_CB(_devcb) \ | |
110 | devcb = &dmvcart_slot_device::set_out_int_callback(*device, DEVCB_##_devcb); | |
111 | ||
107 | 112 | #define MCFG_DMVCART_SLOT_OUT_IRQ_CB(_devcb) \ |
108 | 113 | devcb = &dmvcart_slot_device::set_out_irq_callback(*device, DEVCB_##_devcb); |
109 | 114 |
r0 | r241782 | |
---|---|---|
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 | ||
17 | static 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)) | |
20 | MACHINE_CONFIG_END | |
21 | ||
22 | static 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 | |
35 | INPUT_PORTS_END | |
36 | ||
37 | //************************************************************************** | |
38 | // GLOBAL VARIABLES | |
39 | //************************************************************************** | |
40 | ||
41 | const 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 | ||
52 | dmv_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 | ||
64 | void 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 | ||
73 | void 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 | ||
84 | machine_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 | ||
93 | ioport_constructor dmv_k803_device::device_input_ports() const | |
94 | { | |
95 | return INPUT_PORTS_NAME( dmv_k803 ); | |
96 | } | |
97 | ||
98 | void 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 | ||
108 | void 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 | ||
123 | WRITE_LINE_MEMBER(dmv_k803_device::rtc_irq_w) | |
124 | { | |
125 | m_rtc_int = state; | |
126 | update_int(); | |
127 | } | |
128 | ||
129 | void 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 | } |
r0 | r241782 | |
---|---|---|
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 | ||
18 | class dmv_k803_device : | |
19 | public device_t, | |
20 | public device_dmvslot_interface | |
21 | { | |
22 | public: | |
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 | ||
32 | protected: | |
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 | ||
42 | private: | |
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 | |
52 | extern const device_type DMV_K803; | |
53 | ||
54 | #endif /* __DMV_K803_H__ */ |
r241781 | r241782 | |
---|---|---|
20 | 20 | ROM_END |
21 | 21 | |
22 | 22 | static 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) | |
24 | 25 | AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(portt1_r) |
25 | 26 | ADDRESS_MAP_END |
26 | 27 | |
r241781 | r241782 | |
75 | 76 | |
76 | 77 | void dmv_k806_device::device_start() |
77 | 78 | { |
79 | m_bus = static_cast<dmvcart_slot_device*>(owner()); | |
78 | 80 | } |
79 | 81 | |
80 | 82 | //------------------------------------------------- |
r241781 | r241782 | |
129 | 131 | |
130 | 132 | READ8_MEMBER( dmv_k806_device::port1_r ) |
131 | 133 | { |
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 | ||
132 | 143 | // TODO |
133 | 144 | return 0xff; |
134 | 145 | } |
r241781 | r241782 | |
138 | 149 | return BIT(m_jumpers->read(), 7) ? 0 : 1; |
139 | 150 | } |
140 | 151 | |
141 | WRITE8_MEMBER( dmv_k806_device::port | |
152 | WRITE8_MEMBER( dmv_k806_device::port2_w ) | |
142 | 153 | { |
143 | | |
154 | m_bus->m_out_int_cb((data & 1) ? CLEAR_LINE : ASSERT_LINE); | |
144 | 155 | }; |
r241781 | r241782 | |
---|---|---|
31 | 31 | |
32 | 32 | DECLARE_READ8_MEMBER(portt1_r); |
33 | 33 | DECLARE_READ8_MEMBER(port1_r); |
34 | DECLARE_WRITE8_MEMBER(port | |
34 | DECLARE_WRITE8_MEMBER(port2_w); | |
35 | 35 | |
36 | 36 | protected: |
37 | 37 | // device-level overrides |
r241781 | r241782 | |
44 | 44 | private: |
45 | 45 | required_device<upi41_cpu_device> m_mcu; |
46 | 46 | required_ioport m_jumpers; |
47 | dmvcart_slot_device * m_bus; | |
47 | 48 | }; |
48 | 49 | |
49 | 50 |
r241781 | r241782 | |
---|---|---|
557 | 557 | |
558 | 558 | /* Check if we're dealing with the multigame variant of the MBC1 mapper */ |
559 | 559 | 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) | |
562 | 562 | 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; | |
563 | 583 | } |
564 | 584 | |
565 | 585 | return type; |
r241781 | r241782 | |
---|---|---|
19 | 19 | SLOT_INTERFACE("aga_pc200", ISA8_AGA_PC200) |
20 | 20 | SLOT_INTERFACE("ega", ISA8_EGA) |
21 | 21 | SLOT_INTERFACE("svga_et4k", ISA8_SVGA_ET4K) |
22 | SLOT_INTERFACE("num9rev",ISA8_NUM_9_REV) | |
22 | 23 | SLOT_INTERFACE("com", ISA8_COM) |
23 | 24 | SLOT_INTERFACE("fdc", ISA8_FDC_SUPERIO) |
24 | 25 | SLOT_INTERFACE("fdc_xt", ISA8_FDC_XT) |
r241781 | r241782 | |
57 | 58 | SLOT_INTERFACE("vga", ISA8_VGA) |
58 | 59 | SLOT_INTERFACE("svga_et4k", ISA8_SVGA_ET4K) |
59 | 60 | SLOT_INTERFACE("svga_dm",ISA8_SVGA_CIRRUS) |
61 | SLOT_INTERFACE("num9rev",ISA8_NUM_9_REV) | |
60 | 62 | SLOT_INTERFACE("com", ISA8_COM) |
61 | 63 | SLOT_INTERFACE("comat", ISA8_COM_AT) |
62 | 64 | SLOT_INTERFACE("fdc", ISA8_FDC_AT) |
r241781 | r241782 | |
---|---|---|
25 | 25 | #include "svga_s3.h" |
26 | 26 | #include "svga_tseng.h" |
27 | 27 | #include "svga_trident.h" |
28 | #include "num9rev.h" | |
28 | 29 | |
29 | 30 | // storage |
30 | 31 | #include "fdc.h" |
r0 | r241782 | |
---|---|---|
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 | ||
12 | const device_type ISA8_NUM_9_REV = &device_creator<isa8_number_9_rev_device>; | |
13 | ||
14 | static ADDRESS_MAP_START( upd7220_map, AS_0, 8, isa8_number_9_rev_device ) | |
15 | AM_RANGE(0x00000, 0x3ffff) AM_NOP | |
16 | ADDRESS_MAP_END | |
17 | ||
18 | UPD7220_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 | ||
47 | static 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") | |
59 | MACHINE_CONFIG_END | |
60 | ||
61 | //------------------------------------------------- | |
62 | // machine_config_additions - device-specific | |
63 | // machine configurations | |
64 | //------------------------------------------------- | |
65 | ||
66 | machine_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 | ||
79 | isa8_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 | ||
93 | void 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 | ||
110 | void isa8_number_9_rev_device::device_reset() | |
111 | { | |
112 | m_bank = 0; | |
113 | m_mode = 0; | |
114 | m_1024 = false; | |
115 | } | |
116 | ||
117 | READ8_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 | ||
130 | WRITE8_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 | ||
162 | READ8_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 | ||
178 | WRITE8_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 | ||
198 | READ8_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 | ||
214 | WRITE8_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 | ||
234 | READ8_MEMBER(isa8_number_9_rev_device::overlay_r) | |
235 | { | |
236 | return m_overlay[offset + ((m_mode & 8) ? 512 : 0)]; | |
237 | } | |
238 | WRITE8_MEMBER(isa8_number_9_rev_device::overlay_w) | |
239 | { | |
240 | m_overlay[offset + ((m_mode & 8) ? 512 : 0)] = data; | |
241 | } | |
242 | ||
243 | READ8_MEMBER(isa8_number_9_rev_device::bank_r) | |
244 | { | |
245 | return m_bank; | |
246 | } | |
247 | ||
248 | WRITE8_MEMBER(isa8_number_9_rev_device::bank_w) | |
249 | { | |
250 | m_bank = data & 0xf; | |
251 | } | |
252 | ||
253 | READ8_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 | ||
275 | WRITE8_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 | ||
312 | UINT32 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 | } |
r0 | r241782 | |
---|---|---|
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 | ||
17 | class isa8_number_9_rev_device : | |
18 | public device_t, | |
19 | public device_isa8_card_interface | |
20 | { | |
21 | public: | |
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); | |
43 | protected: | |
44 | // device-level overrides | |
45 | virtual void device_start(); | |
46 | virtual void device_reset(); | |
47 | private: | |
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 | |
59 | extern const device_type ISA8_NUM_9_REV; | |
60 | ||
61 | #endif /* __NUM9REV_H__ */ |
r0 | r241782 | |
---|---|---|
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 | ||
74 | const device_type CIRRUS = &device_creator<cirrus_device>; | |
75 | ||
76 | //************************************************************************** | |
77 | // LIVE DEVICE | |
78 | //************************************************************************** | |
79 | ||
80 | //------------------------------------------------- | |
81 | // cirrus_device - constructor | |
82 | //------------------------------------------------- | |
83 | ||
84 | cirrus_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 | ||
94 | void cirrus_device::device_start() | |
95 | { | |
96 | } | |
97 | ||
98 | //------------------------------------------------- | |
99 | // device_reset - device-specific reset | |
100 | //------------------------------------------------- | |
101 | ||
102 | void cirrus_device::device_reset() | |
103 | { | |
104 | } | |
105 | ||
106 | //------------------------------------------------- | |
107 | // pci_read - implementation of PCI read | |
108 | //------------------------------------------------- | |
109 | ||
110 | UINT32 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 | ||
146 | void 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 | ||
158 | WRITE8_MEMBER( cirrus_device::cirrus_42E8_w ) | |
159 | { | |
160 | if (data & 0x80) | |
161 | machine().device("vga")->reset(); | |
162 | } |
r0 | r241782 | |
---|---|---|
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 | ||
16 | class cirrus_device : public device_t, | |
17 | public pci_device_interface | |
18 | { | |
19 | public: | |
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 | ||
28 | protected: | |
29 | // device-level overrides | |
30 | virtual void device_start(); | |
31 | virtual void device_reset(); | |
32 | private: | |
33 | }; | |
34 | ||
35 | ||
36 | // device type definition | |
37 | extern const device_type CIRRUS; | |
38 | ||
39 | #endif /* CIRRUS_H */ |
r0 | r241782 | |
---|---|---|
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 | ||
20 | const device_type I82371AB = &device_creator<i82371ab_device>; | |
21 | ||
22 | ||
23 | i82371ab_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 | ||
29 | UINT32 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 | ||
41 | void 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 | ||
68 | UINT32 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 | ||
80 | void 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 | ||
107 | UINT32 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 | ||
119 | void 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 | ||
146 | UINT32 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 | ||
158 | void 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 | ||
185 | UINT32 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 | ||
200 | void 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 | ||
215 | void 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 | ||
226 | void 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 | } |
r0 | r241782 | |
---|---|---|
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 | ||
17 | class i82371ab_device : public southbridge_device, | |
18 | public pci_device_interface | |
19 | { | |
20 | public: | |
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 | ||
27 | protected: | |
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 | ||
44 | private: | |
45 | UINT8 m_regs[4][0x100]; | |
46 | }; | |
47 | ||
48 | // device type definition | |
49 | extern const device_type I82371AB; | |
50 | ||
51 | #endif /* __I82371AB_H__ */ |
r0 | r241782 | |
---|---|---|
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 | ||
25 | const device_type I82371SB = &device_creator<i82371sb_device>; | |
26 | ||
27 | ||
28 | i82371sb_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 | ||
34 | UINT32 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 | ||
43 | void 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 | ||
62 | UINT32 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 | ||
69 | void 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 | ||
88 | UINT32 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 | ||
97 | void 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 | ||
116 | UINT32 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 | ||
130 | void 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 | ||
145 | void 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 | ||
156 | void 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 | } |
r0 | r241782 | |
---|---|---|
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 | ||
17 | class i82371sb_device : public southbridge_device, | |
18 | public pci_device_interface | |
19 | { | |
20 | public: | |
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 | ||
27 | protected: | |
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 | private: | |
41 | UINT32 m_regs[3][0x400/4]; | |
42 | }; | |
43 | ||
44 | // device type definition | |
45 | extern const device_type I82371SB; | |
46 | ||
47 | ||
48 | #endif /* __I82371SB_H__ */ |
r0 | r241782 | |
---|---|---|
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 | ||
14 | const device_type I82439TX = &device_creator<i82439tx_device>; | |
15 | ||
16 | ||
17 | i82439tx_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 | ||
25 | void 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 | ||
52 | UINT32 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 | ||
141 | void 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 | ||
260 | void 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 | ||
281 | void 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 | } |
r0 | r241782 | |
---|---|---|
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 | ||
23 | class i82439tx_device : public northbridge_device, | |
24 | public pci_device_interface | |
25 | { | |
26 | public: | |
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 | ||
36 | protected: | |
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 | ||
43 | private: | |
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 | |
55 | extern const device_type I82439TX; | |
56 | ||
57 | #endif /* __I82439TX_H__ */ |
r0 | r241782 | |
---|---|---|
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 | ||
19 | const device_type MPC105 = &device_creator<mpc105_device>; | |
20 | ||
21 | ||
22 | //************************************************************************** | |
23 | // LIVE DEVICE | |
24 | //************************************************************************** | |
25 | ||
26 | //------------------------------------------------- | |
27 | // mpc105_device - constructor | |
28 | //------------------------------------------------- | |
29 | ||
30 | mpc105_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 | ||
42 | void 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 | ||
51 | void 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 | ||
62 | void 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 | ||
112 | UINT32 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 | ||
189 | void 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 | } |
r0 | r241782 | |
---|---|---|
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 | ||
24 | class mpc105_device : public device_t, | |
25 | public pci_device_interface | |
26 | { | |
27 | public: | |
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 | ||
37 | protected: | |
38 | // device-level overrides | |
39 | virtual void device_start(); | |
40 | virtual void device_reset(); | |
41 | ||
42 | void update_memory(); | |
43 | ||
44 | private: | |
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 | |
56 | extern const device_type MPC105; | |
57 | ||
58 | #endif /* MPC105_H */ |
r0 | r241782 | |
---|---|---|
1 | /*************************************************************************** | |
2 | ||
3 | Northbridge implementation | |
4 | ||
5 | ***************************************************************************/ | |
6 | ||
7 | #include "emu.h" | |
8 | #include "northbridge.h" | |
9 | ||
10 | //************************************************************************** | |
11 | // GLOBAL VARIABLES | |
12 | //************************************************************************** | |
13 | ||
14 | northbridge_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 | ||
25 | void 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 | ||
44 | void northbridge_device::device_reset() | |
45 | { | |
46 | } |
r0 | r241782 | |
---|---|---|
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 | ||
16 | class northbridge_device : | |
17 | public device_t | |
18 | { | |
19 | public: | |
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); | |
22 | protected: | |
23 | // device-level overrides | |
24 | virtual void device_start(); | |
25 | virtual void device_reset(); | |
26 | public: | |
27 | required_device<cpu_device> m_maincpu; | |
28 | required_device<ram_device> m_ram; | |
29 | ||
30 | }; | |
31 | ||
32 | #endif /* __NORTHBRIDGE_H__ */ |
r0 | r241782 | |
---|---|---|
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 | ||
81 | const device_type PCI_BUS = &device_creator<pci_bus_device>; | |
82 | ||
83 | //************************************************************************** | |
84 | // LIVE DEVICE | |
85 | //************************************************************************** | |
86 | ||
87 | //------------------------------------------------- | |
88 | // pci_bus_device - constructor | |
89 | //------------------------------------------------- | |
90 | pci_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 | ||
104 | READ32_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 | ||
138 | pci_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 | ||
158 | WRITE32_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 | ||
206 | READ64_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 | ||
217 | WRITE64_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 | ||
228 | void 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 | ||
241 | void 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 | ||
253 | void 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 | ||
287 | void 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 | ||
298 | pci_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 | ||
307 | pci_device_interface::~pci_device_interface() | |
308 | { | |
309 | } | |
310 | ||
311 | ||
312 | const device_type PCI_CONNECTOR = &device_creator<pci_connector>; | |
313 | ||
314 | ||
315 | pci_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 | ||
321 | pci_connector::~pci_connector() | |
322 | { | |
323 | } | |
324 | ||
325 | void pci_connector::device_start() | |
326 | { | |
327 | } | |
328 | ||
329 | pci_device_interface *pci_connector::get_device() | |
330 | { | |
331 | return dynamic_cast<pci_device_interface *>(get_card_device()); | |
332 | } |
r0 | r241782 | |
---|---|---|
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 | //************************************************************************** | |
15 | class pci_bus_device; | |
16 | ||
17 | // ======================> pci_device_interface | |
18 | ||
19 | class pci_device_interface : public device_slot_card_interface | |
20 | { | |
21 | public: | |
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; | |
28 | private: | |
29 | }; | |
30 | ||
31 | class pci_connector: public device_t, | |
32 | public device_slot_interface | |
33 | { | |
34 | public: | |
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 | ||
40 | protected: | |
41 | virtual void device_start(); | |
42 | }; | |
43 | ||
44 | extern const device_type PCI_CONNECTOR; | |
45 | ||
46 | // ======================> pci_bus_device | |
47 | ||
48 | class pci_bus_device : public device_t | |
49 | { | |
50 | public: | |
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 | ||
68 | protected: | |
69 | // device-level overrides | |
70 | virtual void device_start(); | |
71 | virtual void device_reset(); | |
72 | virtual void device_post_load(); | |
73 | ||
74 | private: | |
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 | |
92 | extern 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 */ |
r0 | r241782 | |
---|---|---|
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 | ||
13 | static 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) | |
17 | SLOT_INTERFACE_END | |
18 | ||
19 | static 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) | |
116 | MACHINE_CONFIG_END | |
117 | ||
118 | //------------------------------------------------- | |
119 | // machine_config_additions - device-specific | |
120 | // machine configurations | |
121 | //------------------------------------------------- | |
122 | ||
123 | machine_config_constructor southbridge_device::device_mconfig_additions() const | |
124 | { | |
125 | return MACHINE_CONFIG_NAME( southbridge ); | |
126 | } | |
127 | ||
128 | southbridge_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 | |
152 | READ8_MEMBER(southbridge_device::ide_read_cs1_r) | |
153 | { | |
154 | return m_ide->read_cs1(space, 1, (UINT32) 0xff0000) >> 16; | |
155 | } | |
156 | ||
157 | WRITE8_MEMBER(southbridge_device::ide_write_cs1_w) | |
158 | { | |
159 | m_ide->write_cs1(space, 1, (UINT32) data << 16, (UINT32) 0xff0000); | |
160 | } | |
161 | ||
162 | READ8_MEMBER(southbridge_device::ide2_read_cs1_r) | |
163 | { | |
164 | return m_ide2->read_cs1(space, 1, (UINT32) 0xff0000) >> 16; | |
165 | } | |
166 | ||
167 | WRITE8_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 | ||
176 | void 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 | ||
203 | void 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 | *************************************************************/ | |
219 | READ8_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 | ||
233 | void 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 | ||
247 | WRITE_LINE_MEMBER( southbridge_device::at_pit8254_out0_changed ) | |
248 | { | |
249 | if (m_pic8259_master) | |
250 | m_pic8259_master->ir0_w(state); | |
251 | } | |
252 | ||
253 | WRITE_LINE_MEMBER( southbridge_device::at_pit8254_out1_changed ) | |
254 | { | |
255 | if(state) | |
256 | m_refresh = !m_refresh; | |
257 | } | |
258 | ||
259 | WRITE_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 | ||
271 | READ8_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 | ||
294 | WRITE8_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 | ||
316 | WRITE_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 | ||
324 | READ8_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 | ||
337 | WRITE8_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 | ||
348 | READ8_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 | ||
363 | WRITE8_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 | ||
374 | READ8_MEMBER( southbridge_device::pc_dma8237_0_dack_r ) { return m_isabus->dack_r(0); } | |
375 | READ8_MEMBER( southbridge_device::pc_dma8237_1_dack_r ) { return m_isabus->dack_r(1); } | |
376 | READ8_MEMBER( southbridge_device::pc_dma8237_2_dack_r ) { return m_isabus->dack_r(2); } | |
377 | READ8_MEMBER( southbridge_device::pc_dma8237_3_dack_r ) { return m_isabus->dack_r(3); } | |
378 | READ8_MEMBER( southbridge_device::pc_dma8237_5_dack_r ) { return m_isabus->dack_r(5); } | |
379 | READ8_MEMBER( southbridge_device::pc_dma8237_6_dack_r ) { return m_isabus->dack_r(6); } | |
380 | READ8_MEMBER( southbridge_device::pc_dma8237_7_dack_r ) { return m_isabus->dack_r(7); } | |
381 | ||
382 | ||
383 | WRITE8_MEMBER( southbridge_device::pc_dma8237_0_dack_w ){ m_isabus->dack_w(0, data); } | |
384 | WRITE8_MEMBER( southbridge_device::pc_dma8237_1_dack_w ){ m_isabus->dack_w(1, data); } | |
385 | WRITE8_MEMBER( southbridge_device::pc_dma8237_2_dack_w ){ m_isabus->dack_w(2, data); } | |
386 | WRITE8_MEMBER( southbridge_device::pc_dma8237_3_dack_w ){ m_isabus->dack_w(3, data); } | |
387 | WRITE8_MEMBER( southbridge_device::pc_dma8237_5_dack_w ){ m_isabus->dack_w(5, data); } | |
388 | WRITE8_MEMBER( southbridge_device::pc_dma8237_6_dack_w ){ m_isabus->dack_w(6, data); } | |
389 | WRITE8_MEMBER( southbridge_device::pc_dma8237_7_dack_w ){ m_isabus->dack_w(7, data); } | |
390 | ||
391 | WRITE_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 | ||
398 | void 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 | ||
413 | WRITE_LINE_MEMBER( southbridge_device::pc_dack0_w ) { pc_select_dma_channel(0, state); } | |
414 | WRITE_LINE_MEMBER( southbridge_device::pc_dack1_w ) { pc_select_dma_channel(1, state); } | |
415 | WRITE_LINE_MEMBER( southbridge_device::pc_dack2_w ) { pc_select_dma_channel(2, state); } | |
416 | WRITE_LINE_MEMBER( southbridge_device::pc_dack3_w ) { pc_select_dma_channel(3, state); } | |
417 | WRITE_LINE_MEMBER( southbridge_device::pc_dack4_w ) { m_dma8237_1->hack_w( state ? 0 : 1); } // it's inverted | |
418 | WRITE_LINE_MEMBER( southbridge_device::pc_dack5_w ) { pc_select_dma_channel(5, state); } | |
419 | WRITE_LINE_MEMBER( southbridge_device::pc_dack6_w ) { pc_select_dma_channel(6, state); } | |
420 | WRITE_LINE_MEMBER( southbridge_device::pc_dack7_w ) { pc_select_dma_channel(7, state); } | |
421 | ||
422 | READ8_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 | ||
438 | WRITE8_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 | ||
447 | READ8_MEMBER( southbridge_device::at_dma8237_2_r ) | |
448 | { | |
449 | return m_dma8237_2->read( space, offset / 2); | |
450 | } | |
451 | ||
452 | WRITE8_MEMBER( southbridge_device::at_dma8237_2_w ) | |
453 | { | |
454 | m_dma8237_2->write( space, offset / 2, data); | |
455 | } | |
456 | ||
457 | READ8_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 | ||
468 | WRITE8_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 | ||
478 | WRITE8_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 | } |
r0 | r241782 | |
---|---|---|
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 | ||
37 | class southbridge_device : | |
38 | public device_t | |
39 | { | |
40 | public: | |
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 | ||
47 | protected: | |
48 | // device-level overrides | |
49 | virtual void device_start(); | |
50 | virtual void device_reset(); | |
51 | public: | |
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); | |
111 | protected: | |
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__ */ |
r241781 | r241782 | |
---|---|---|
41 | 41 | DEBUGGING |
42 | 42 | ***************************************************************************/ |
43 | 43 | |
44 | #define LOG_UML (0) | |
45 | 44 | #define LOG_NATIVE (0) |
46 | 45 | |
47 | 46 | #define SINGLE_INSTRUCTION_MODE (0) |
r241781 | r241782 | |
154 | 153 | m_impstate.cache = cache; |
155 | 154 | |
156 | 155 | /* initialize the UML generator */ |
157 | if (LOG_UML) | |
158 | flags |= DRCUML_OPTION_LOG_UML; | |
159 | 156 | if (LOG_NATIVE) |
160 | 157 | flags |= DRCUML_OPTION_LOG_NATIVE; |
161 | 158 | m_impstate.drcuml = new drcuml_state(*this, *cache, flags, 1, 32, 1); |
r241781 | r241782 | |
355 | 352 | /* get a description of this sequence */ |
356 | 353 | // TODO FIXME |
357 | 354 | const opcode_desc *desclist = NULL; //m_impstate.drcfe->describe_code(pc); // TODO |
358 | // if ( | |
355 | // if (drcuml->logging() || LOG_NATIVE) | |
359 | 356 | // log_opcode_desc(drcuml, desclist, 0); |
360 | 357 | |
361 | 358 | /* if we get an error back, flush the cache and try again */ |
r241781 | r241782 | |
374 | 371 | UINT32 nextpc; |
375 | 372 | |
376 | 373 | /* add a code log entry */ |
377 | if ( | |
374 | if (drcuml->logging()) | |
378 | 375 | block->append_comment("-------------------------"); // comment |
379 | 376 | |
380 | 377 | /* determine the last instruction in this sequence */ |
r241781 | r241782 | |
1209 | 1206 | void arm7_cpu_device::generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast) |
1210 | 1207 | { |
1211 | 1208 | const opcode_desc *curdesc; |
1212 | if ( | |
1209 | if (m_impstate.drcuml->logging()) | |
1213 | 1210 | { |
1214 | 1211 | block->append_comment("[Validation for %08X]", seqhead->pc); // comment |
1215 | 1212 | } |
r241781 | r241782 | |
1278 | 1275 | |
1279 | 1276 | /* add an entry for the log */ |
1280 | 1277 | // TODO FIXME |
1281 | // if ( | |
1278 | // if (m_impstate.drcuml->logging() && !(desc->flags & OPFLAG_VIRTUAL_NOOP)) | |
1282 | 1279 | // log_add_disasm_comment(block, desc->pc, desc->opptr.l[0]); |
1283 | 1280 | |
1284 | 1281 | /* set the PC map variable */ |
r241781 | r241782 | |
---|---|---|
121 | 121 | drcuml_state::drcuml_state(device_t &device, drc_cache &cache, UINT32 flags, int modes, int addrbits, int ignorebits) |
122 | 122 | : m_device(device), |
123 | 123 | m_cache(cache), |
124 | m_beintf( | |
124 | m_beintf(device.machine().options().drc_use_c() ? | |
125 | 125 | *static_cast<drcbe_interface *>(auto_alloc(device.machine(), drcbe_c(*this, device, cache, flags, modes, addrbits, ignorebits))) : |
126 | 126 | *static_cast<drcbe_interface *>(auto_alloc(device.machine(), drcbe_native(*this, device, cache, flags, modes, addrbits, ignorebits)))), |
127 | 127 | m_umllog(NULL) |
128 | 128 | { |
129 | 129 | // 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 | } | |
132 | 135 | } |
133 | 136 | |
134 | 137 | |
r241781 | r241782 | |
274 | 277 | va_start(va, format); |
275 | 278 | vfprintf(m_umllog, format, va); |
276 | 279 | va_end(va); |
280 | fflush(m_umllog); | |
277 | 281 | } |
278 | 282 | } |
279 | 283 |
r241781 | r241782 | |
---|---|---|
22 | 22 | //************************************************************************** |
23 | 23 | |
24 | 24 | // these options are passed into drcuml_alloc() and control global behaviors |
25 | const UINT32 DRCUML_OPTION_LOG_UML = 0x0002; // generate a UML disassembly of each block | |
26 | 25 | const UINT32 DRCUML_OPTION_LOG_NATIVE = 0x0004; // tell the back-end to generate a native disassembly of each block |
27 | 26 | |
28 | 27 |
r241781 | r241782 | |
---|---|---|
355 | 355 | |
356 | 356 | UINT32 flags = 0; |
357 | 357 | /* initialize the UML generator */ |
358 | if (LOG_UML) | |
359 | flags |= DRCUML_OPTION_LOG_UML; | |
360 | 358 | if (LOG_NATIVE) |
361 | 359 | flags |= DRCUML_OPTION_LOG_NATIVE; |
362 | 360 | m_drcuml = auto_alloc(machine(), drcuml_state(*this, m_cache, flags, 8, 32, 2)); |
r241781 | r241782 | |
---|---|---|
22 | 22 | #define PRINTF_TLB (0) |
23 | 23 | #define USE_ABI_REG_NAMES (1) |
24 | 24 | |
25 | #define LOG_UML (0) | |
26 | 25 | #define LOG_NATIVE (0) |
27 | 26 | |
28 | 27 | #define DISABLE_FAST_REGISTERS (0) |
r241781 | r241782 | |
---|---|---|
275 | 275 | |
276 | 276 | /* get a description of this sequence */ |
277 | 277 | desclist = m_drcfe->describe_code(pc); |
278 | if ( | |
278 | if (drcuml->logging() || LOG_NATIVE) | |
279 | 279 | log_opcode_desc(drcuml, desclist, 0); |
280 | 280 | |
281 | 281 | /* if we get an error back, flush the cache and try again */ |
r241781 | r241782 | |
294 | 294 | UINT32 nextpc; |
295 | 295 | |
296 | 296 | /* add a code log entry */ |
297 | if ( | |
297 | if (drcuml->logging()) | |
298 | 298 | block->append_comment("-------------------------"); // comment |
299 | 299 | |
300 | 300 | /* determine the last instruction in this sequence */ |
r241781 | r241782 | |
1070 | 1070 | void mips3_device::generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast) |
1071 | 1071 | { |
1072 | 1072 | const opcode_desc *curdesc; |
1073 | if ( | |
1073 | if (m_drcuml->logging()) | |
1074 | 1074 | block->append_comment("[Validation for %08X]", seqhead->pc); // comment |
1075 | 1075 | |
1076 | 1076 | /* loose verify or single instruction: just compare and fail */ |
r241781 | r241782 | |
1147 | 1147 | int hotnum; |
1148 | 1148 | |
1149 | 1149 | /* add an entry for the log */ |
1150 | if ( | |
1150 | if (m_drcuml->logging() && !(desc->flags & OPFLAG_VIRTUAL_NOOP)) | |
1151 | 1151 | log_add_disasm_comment(block, desc->pc, desc->opptr.l[0]); |
1152 | 1152 | |
1153 | 1153 | /* set the PC map variable */ |
r241781 | r241782 | |
1387 | 1387 | |
1388 | 1388 | case 0x0f: /* LUI - MIPS I */ |
1389 | 1389 | if (RTREG != 0) |
1390 | UML_DMOV(block, R64(RTREG), | |
1390 | UML_DMOV(block, R64(RTREG), UIMMVAL << 16); // dmov <rtreg>,UIMMVAL << 16 | |
1391 | 1391 | return TRUE; |
1392 | 1392 | |
1393 | 1393 | case 0x08: /* ADDI - MIPS I */ |
r241781 | r241782 | |
2764 | 2764 | |
2765 | 2765 | case 0x07: |
2766 | 2766 | if (IS_SINGLE(op)) /* NEG.S - MIPS I */ |
2767 | { | |
2767 | 2768 | 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 | } | |
2768 | 2772 | else /* NEG.D - MIPS I */ |
2773 | { | |
2769 | 2774 | 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 | } | |
2770 | 2778 | return TRUE; |
2771 | 2779 | |
2772 | 2780 | case 0x08: |
r241781 | r241782 | |
2774 | 2782 | UML_FSTOINT(block, FPR64(FDREG), FPR32(FSREG), SIZE_QWORD, ROUND_ROUND);// fstoint <fdreg>,<fsreg>,qword,round |
2775 | 2783 | else /* ROUND.L.D - MIPS III */ |
2776 | 2784 | 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); | |
2777 | 2786 | return TRUE; |
2778 | 2787 | |
2779 | 2788 | case 0x09: |
r241781 | r241782 | |
2781 | 2790 | UML_FSTOINT(block, FPR64(FDREG), FPR32(FSREG), SIZE_QWORD, ROUND_TRUNC);// fstoint <fdreg>,<fsreg>,qword,trunc |
2782 | 2791 | else /* TRUNC.L.D - MIPS III */ |
2783 | 2792 | 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); | |
2784 | 2794 | return TRUE; |
2785 | 2795 | |
2786 | 2796 | case 0x0a: |
r241781 | r241782 | |
2788 | 2798 | UML_FSTOINT(block, FPR64(FDREG), FPR32(FSREG), SIZE_QWORD, ROUND_CEIL);// fstoint <fdreg>,<fsreg>,qword,ceil |
2789 | 2799 | else /* CEIL.L.D - MIPS III */ |
2790 | 2800 | 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); | |
2791 | 2802 | return TRUE; |
2792 | 2803 | |
2793 | 2804 | case 0x0b: |
r241781 | r241782 | |
2795 | 2806 | UML_FSTOINT(block, FPR64(FDREG), FPR32(FSREG), SIZE_QWORD, ROUND_FLOOR);// fstoint <fdreg>,<fsreg>,qword,floor |
2796 | 2807 | else /* FLOOR.L.D - MIPS III */ |
2797 | 2808 | 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); | |
2798 | 2810 | return TRUE; |
2799 | 2811 | |
2800 | 2812 | case 0x0c: |
r241781 | r241782 | |
3117 | 3129 | |
3118 | 3130 | void mips3_device::log_add_disasm_comment(drcuml_block *block, UINT32 pc, UINT32 op) |
3119 | 3131 | { |
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 | } | |
3125 | 3138 | } |
3126 | 3139 | |
3127 | 3140 | |
r241781 | r241782 | |
3251 | 3264 | char buffer[100]; |
3252 | 3265 | |
3253 | 3266 | /* 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 | } | |
3257 | 3274 | else |
3258 | dasmmips3(buffer, desclist->pc, desclist->opptr.l[0]); | |
3259 | #else | |
3260 | strcpy(buffer, "???"); | |
3261 | #endif | |
3275 | strcpy(buffer, "???"); | |
3262 | 3276 | drcuml->log_printf("%08X [%08X] t:%08X f:%s: %-30s", desclist->pc, desclist->physpc, desclist->targetpc, log_desc_flags_to_string(desclist->flags), buffer); |
3263 | 3277 | |
3264 | 3278 | /* output register states */ |
r241781 | r241782 | |
---|---|---|
106 | 106 | desc.regin[0] |= REGFLAG_R(RSREG) | REGFLAG_R(RTREG); |
107 | 107 | desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH; |
108 | 108 | } |
109 | desc.targetpc = desc.pc + 4 + | |
109 | desc.targetpc = desc.pc + 4 + SIMMVAL * 4; | |
110 | 110 | desc.delayslots = 1; |
111 | 111 | desc.skipslots = (opswitch & 0x10) ? 1 : 0; |
112 | 112 | return true; |
r241781 | r241782 | |
122 | 122 | desc.regin[0] |= REGFLAG_R(RSREG); |
123 | 123 | desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH; |
124 | 124 | } |
125 | desc.targetpc = desc.pc + 4 + | |
125 | desc.targetpc = desc.pc + 4 + SIMMVAL * 4; | |
126 | 126 | desc.delayslots = 1; |
127 | 127 | desc.skipslots = (opswitch & 0x10) ? 1 : 0; |
128 | 128 | return true; |
r241781 | r241782 | |
396 | 396 | desc.regin[0] |= REGFLAG_R(RSREG); |
397 | 397 | desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH; |
398 | 398 | } |
399 | desc.targetpc = desc.pc + 4 + | |
399 | desc.targetpc = desc.pc + 4 + SIMMVAL * 4; | |
400 | 400 | desc.delayslots = 1; |
401 | 401 | desc.skipslots = (RTREG & 0x02) ? 1 : 0; |
402 | 402 | return true; |
r241781 | r241782 | |
423 | 423 | desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH; |
424 | 424 | } |
425 | 425 | desc.regout[0] |= REGFLAG_R(31); |
426 | desc.targetpc = desc.pc + 4 + | |
426 | desc.targetpc = desc.pc + 4 + SIMMVAL * 4; | |
427 | 427 | desc.delayslots = 1; |
428 | 428 | desc.skipslots = (RTREG & 0x02) ? 1 : 0; |
429 | 429 | return true; |
r241781 | r241782 | |
508 | 508 | case 0x00: // BCzF |
509 | 509 | case 0x01: // BCzT |
510 | 510 | desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH; |
511 | desc.targetpc = desc.pc + 4 + | |
511 | desc.targetpc = desc.pc + 4 + SIMMVAL * 4; | |
512 | 512 | desc.delayslots = 1; |
513 | 513 | return true; |
514 | 514 | } |
r241781 | r241782 | |
580 | 580 | case 0x03: // BCzTL |
581 | 581 | desc.regin[2] |= REGFLAG_FCC; |
582 | 582 | desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH; |
583 | desc.targetpc = desc.pc + 4 + | |
583 | desc.targetpc = desc.pc + 4 + SIMMVAL * 4; | |
584 | 584 | desc.delayslots = 1; |
585 | 585 | desc.skipslots = (RTREG & 0x02) ? 1 : 0; |
586 | 586 | return true; |
r241781 | r241782 | |
730 | 730 | case 0x00: // BCzF |
731 | 731 | case 0x01: // BCzT |
732 | 732 | desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH; |
733 | desc.targetpc = desc.pc + 4 + | |
733 | desc.targetpc = desc.pc + 4 + SIMMVAL * 4; | |
734 | 734 | desc.delayslots = 1; |
735 | 735 | return true; |
736 | 736 | } |
r241781 | r241782 | |
---|---|---|
880 | 880 | |
881 | 881 | UINT32 flags = 0; |
882 | 882 | /* initialize the UML generator */ |
883 | if (LOG_UML) | |
884 | flags |= DRCUML_OPTION_LOG_UML; | |
885 | 883 | if (LOG_NATIVE) |
886 | 884 | flags |= DRCUML_OPTION_LOG_NATIVE; |
887 | 885 | m_drcuml = auto_alloc(machine(), drcuml_state(*this, m_cache, flags, 8, 32, 2)); |
r241781 | r241782 | |
---|---|---|
18 | 18 | DEBUGGING |
19 | 19 | ***************************************************************************/ |
20 | 20 | |
21 | #define LOG_UML (0) | |
22 | 21 | #define LOG_NATIVE (0) |
23 | 22 | |
24 | 23 | #define DISABLE_FLAG_OPTIMIZATIONS (0) |
r241781 | r241782 | |
---|---|---|
368 | 368 | |
369 | 369 | /* get a description of this sequence */ |
370 | 370 | desclist = m_drcfe->describe_code(pc); |
371 | if ( | |
371 | if (m_drcuml->logging() || LOG_NATIVE) | |
372 | 372 | log_opcode_desc(m_drcuml, desclist, 0); |
373 | 373 | |
374 | 374 | bool succeeded = false; |
r241781 | r241782 | |
386 | 386 | UINT32 nextpc; |
387 | 387 | |
388 | 388 | /* add a code log entry */ |
389 | if ( | |
389 | if (m_drcuml->logging()) | |
390 | 390 | block->append_comment("-------------------------"); // comment |
391 | 391 | |
392 | 392 | /* determine the last instruction in this sequence */ |
r241781 | r241782 | |
1587 | 1587 | void ppc_device::generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast) |
1588 | 1588 | { |
1589 | 1589 | const opcode_desc *curdesc; |
1590 | if ( | |
1590 | if (m_drcuml->logging()) | |
1591 | 1591 | block->append_comment("[Validation for %08X]", seqhead->pc); // comment |
1592 | 1592 | |
1593 | 1593 | /* loose verify or single instruction: just compare and fail */ |
r241781 | r241782 | |
1644 | 1644 | int hotnum; |
1645 | 1645 | |
1646 | 1646 | /* add an entry for the log */ |
1647 | if ( | |
1647 | if (m_drcuml->logging() && !(desc->flags & OPFLAG_VIRTUAL_NOOP)) | |
1648 | 1648 | log_add_disasm_comment(block, desc->pc, desc->opptr.l[0]); |
1649 | 1649 | |
1650 | 1650 | /* set the PC map variable */ |
r241781 | r241782 | |
3712 | 3712 | void ppc_device::log_add_disasm_comment(drcuml_block *block, UINT32 pc, UINT32 op) |
3713 | 3713 | { |
3714 | 3714 | char buffer[100]; |
3715 | if ( | |
3715 | if (m_drcuml->logging()) | |
3716 | 3716 | { |
3717 | 3717 | ppc_dasm_one(buffer, pc, op); |
3718 | 3718 | block->append_comment("%08X: %s", pc, buffer); // comment |
r241781 | r241782 | |
3895 | 3895 | char buffer[100]; |
3896 | 3896 | |
3897 | 3897 | /* disassemle the current instruction and output it to the log */ |
3898 | if ( | |
3898 | if (drcuml->logging() || LOG_NATIVE) | |
3899 | 3899 | { |
3900 | 3900 | if (desclist->flags & OPFLAG_VIRTUAL_NOOP) |
3901 | 3901 | strcpy(buffer, "<virtual nop>"); |
r241781 | r241782 | |
---|---|---|
121 | 121 | , m_program_config("program", ENDIANNESS_BIG, 32, 32) |
122 | 122 | , m_cache(CACHE_SIZE + sizeof(internal_rsp_state)) |
123 | 123 | , m_drcuml(NULL) |
124 | // , m_drcuml(*this, m_cache, ( RSP_LOG_ | |
124 | // , m_drcuml(*this, m_cache, ( RSP_LOG_NATIVE ? DRCUML_OPTION_LOG_NATIVE : 0 ), 8, 32, 2) | |
125 | 125 | , m_drcfe(NULL) |
126 | 126 | , m_drcoptions(0) |
127 | 127 | , m_cache_dirty(TRUE) |
r241781 | r241782 | |
432 | 432 | |
433 | 433 | /* initialize the UML generator */ |
434 | 434 | UINT32 drc_flags = 0; |
435 | if (RSP_LOG_UML) | |
436 | { | |
437 | drc_flags |= DRCUML_OPTION_LOG_UML; | |
438 | } | |
439 | 435 | if (RSP_LOG_NATIVE) |
440 | 436 | { |
441 | 437 | drc_flags |= DRCUML_OPTION_LOG_NATIVE; |
r241781 | r241782 | |
---|---|---|
22 | 22 | |
23 | 23 | #define USE_SIMD (0) |
24 | 24 | #define SIMUL_SIMD (0) |
25 | #define RSP_LOG_UML (0) | |
26 | 25 | #define RSP_LOG_NATIVE (0) |
27 | 26 | |
28 | 27 | #if USE_SIMD |
r241781 | r241782 | |
299 | 298 | void ccfunc_rsp_vabs_scalar(); |
300 | 299 | void ccfunc_rsp_vaddc_scalar(); |
301 | 300 | void ccfunc_rsp_vsubc_scalar(); |
301 | void ccfunc_rsp_vaddb_scalar(); | |
302 | 302 | void ccfunc_rsp_vsaw_scalar(); |
303 | 303 | void ccfunc_rsp_vlt_scalar(); |
304 | 304 | void ccfunc_rsp_veq_scalar(); |
r241781 | r241782 | |
325 | 325 | void ccfunc_mtc2_scalar(); |
326 | 326 | void ccfunc_ctc2_scalar(); |
327 | 327 | #endif |
328 | void ccfunc_rsp_vrsq_scalar(); | |
328 | 329 | #if USE_SIMD && SIMUL_SIMD |
329 | 330 | void ccfunc_backup_regs(); |
330 | 331 | void ccfunc_restore_regs(); |
r241781 | r241782 | |
541 | 542 | void generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast); |
542 | 543 | void generate_sequence_instruction(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc); |
543 | 544 | 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); | |
544 | 546 | int generate_vector_opcode(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc); |
545 | 547 | int generate_opcode(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc); |
546 | 548 | int generate_special(drcuml_block *block, compiler_state *compiler, const opcode_desc *desc); |
r241781 | r241782 | |
---|---|---|
4686 | 4686 | INT32 s2 = (UINT32)(UINT16)w2; |
4687 | 4687 | INT32 r = s1 + s2; |
4688 | 4688 | |
4689 | vres[i] = (INT16)r; | |
4689 | vres[i] = (INT16)(r); | |
4690 | 4690 | SET_ACCUM_L((INT16)r, i); |
4691 | 4691 | |
4692 | 4692 | if (r & 0xffff0000) |
r241781 | r241782 | |
4754 | 4754 | { |
4755 | 4755 | int op = m_rsp_state->arg0; |
4756 | 4756 | |
4757 | ||
4758 | 4757 | CLEAR_ZERO_FLAGS(); |
4759 | 4758 | CLEAR_CARRY_FLAGS(); |
4760 | 4759 | |
r241781 | r241782 | |
4789 | 4788 | } |
4790 | 4789 | #endif |
4791 | 4790 | |
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 | |
4799 | inline 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 | ||
4847 | static void cfunc_rsp_vaddb_scalar(void *param) | |
4848 | { | |
4849 | ((rsp_device *)param)->ccfunc_rsp_vaddb_scalar(); | |
4850 | } | |
4851 | ||
4792 | 4852 | #if USE_SIMD |
4793 | 4853 | // VSAW |
4794 | 4854 | // |
r241781 | r241782 | |
6318 | 6378 | |
6319 | 6379 | UINT16 urec; |
6320 | 6380 | SIMD_EXTRACT16(m_xv[VS2REG], urec, EL); |
6321 | INT32 rec = (urec | m_reciprocal_high); | |
6322 | ||
6381 | INT32 rec = (INT16)urec; | |
6323 | 6382 | INT32 datainput = rec; |
6324 | 6383 | |
6325 | if ( | |
6384 | if (m_dp_allowed) | |
6326 | 6385 | { |
6327 | if (m_dp_allowed) | |
6386 | rec = (rec & 0x0000ffff) | m_reciprocal_high; | |
6387 | datainput = rec; | |
6388 | ||
6389 | if (rec < 0) | |
6328 | 6390 | { |
6329 | 6391 | if (rec < -32768) |
6330 | 6392 | { |
r241781 | r241782 | |
6335 | 6397 | datainput = -datainput; |
6336 | 6398 | } |
6337 | 6399 | } |
6338 | else | |
6339 | { | |
6340 | datainput = -datainput; | |
6341 | } | |
6342 | 6400 | } |
6401 | else if (datainput < 0) | |
6402 | { | |
6403 | datainput = -datainput; | |
6343 | 6404 | |
6405 | shifter = 0x10; | |
6406 | } | |
6344 | 6407 | |
6345 | 6408 | if (datainput) |
6346 | 6409 | { |
r241781 | r241782 | |
6353 | 6416 | } |
6354 | 6417 | } |
6355 | 6418 | } |
6356 | else | |
6357 | { | |
6358 | if (m_dp_allowed) | |
6359 | { | |
6360 | shifter = 0; | |
6361 | } | |
6362 | else | |
6363 | { | |
6364 | shifter = 0x10; | |
6365 | } | |
6366 | } | |
6367 | 6419 | |
6368 | 6420 | INT32 address = ((datainput << shifter) & 0x7fc00000) >> 22; |
6369 | 6421 | INT32 fetchval = rsp_divtable[address]; |
6370 | 6422 | INT32 temp = (0x40000000 | (fetchval << 14)) >> ((~shifter) & 0x1f); |
6371 | if (rec < 0) | |
6372 | { | |
6373 | temp = ~temp; | |
6374 | } | |
6423 | temp ^= rec >> 31; | |
6424 | ||
6375 | 6425 | if (!rec) |
6376 | 6426 | { |
6377 | 6427 | temp = 0x7fffffff; |
r241781 | r241782 | |
6408 | 6458 | int op = m_rsp_state->arg0; |
6409 | 6459 | |
6410 | 6460 | INT32 shifter = 0; |
6411 | INT32 rec = ( | |
6461 | INT32 rec = (INT16)VREG_S(VS2REG, EL & 7); | |
6412 | 6462 | INT32 datainput = rec; |
6413 | 6463 | |
6414 | if ( | |
6464 | if (m_dp_allowed) | |
6415 | 6465 | { |
6416 | if (m_dp_allowed) | |
6466 | rec = (rec & 0x0000ffff) | m_reciprocal_high; | |
6467 | datainput = rec; | |
6468 | ||
6469 | if (rec < 0) | |
6417 | 6470 | { |
6418 | 6471 | if (rec < -32768) |
6419 | 6472 | { |
r241781 | r241782 | |
6424 | 6477 | datainput = -datainput; |
6425 | 6478 | } |
6426 | 6479 | } |
6427 | else | |
6428 | { | |
6429 | datainput = -datainput; | |
6430 | } | |
6431 | 6480 | } |
6481 | else if (datainput < 0) | |
6482 | { | |
6483 | datainput = -datainput; | |
6432 | 6484 | |
6485 | shifter = 0x10; | |
6486 | } | |
6433 | 6487 | |
6434 | 6488 | if (datainput) |
6435 | 6489 | { |
r241781 | r241782 | |
6442 | 6496 | } |
6443 | 6497 | } |
6444 | 6498 | } |
6445 | else | |
6446 | { | |
6447 | if (m_dp_allowed) | |
6448 | { | |
6449 | shifter = 0; | |
6450 | } | |
6451 | else | |
6452 | { | |
6453 | shifter = 0x10; | |
6454 | } | |
6455 | } | |
6456 | 6499 | |
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]; | |
6459 | 6502 | INT32 temp = (0x40000000 | (fetchval << 14)) >> ((~shifter) & 0x1f); |
6460 | if (rec < 0) | |
6461 | { | |
6462 | temp = ~temp; | |
6463 | } | |
6503 | temp ^= rec >> 31; | |
6464 | 6504 | if (!rec) |
6465 | 6505 | { |
6466 | 6506 | temp = 0x7fffffff; |
r241781 | r241782 | |
6592 | 6632 | } |
6593 | 6633 | #endif |
6594 | 6634 | |
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 | ||
6644 | inline 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 | ||
6760 | static void cfunc_rsp_vrsq_scalar(void *param) | |
6761 | { | |
6762 | ((rsp_device *)param)->ccfunc_rsp_vrsq_scalar(); | |
6763 | } | |
6764 | ||
6595 | 6765 | #if USE_SIMD |
6596 | 6766 | // VRSQL |
6597 | 6767 | // |
r241781 | r241782 | |
6615 | 6785 | INT32 shifter = 0; |
6616 | 6786 | UINT16 val; |
6617 | 6787 | SIMD_EXTRACT16(m_xv[VS2REG], val, EL); |
6618 | INT32 rec = | |
6788 | INT32 rec = (INT16)val; | |
6619 | 6789 | INT32 datainput = rec; |
6620 | 6790 | |
6621 | if ( | |
6791 | if (m_dp_allowed) | |
6622 | 6792 | { |
6623 | if (m_dp_allowed) | |
6793 | rec = (rec & 0x0000ffff) | m_reciprocal_high; | |
6794 | datainput = rec; | |
6795 | ||
6796 | if (rec < 0) | |
6624 | 6797 | { |
6625 | 6798 | if (rec < -32768) |
6626 | 6799 | { |
r241781 | r241782 | |
6631 | 6804 | datainput = -datainput; |
6632 | 6805 | } |
6633 | 6806 | } |
6634 | else | |
6635 | { | |
6636 | datainput = -datainput; | |
6637 | } | |
6638 | 6807 | } |
6808 | else if (datainput < 0) | |
6809 | { | |
6810 | datainput = -datainput; | |
6639 | 6811 | |
6812 | shifter = 0x10; | |
6813 | } | |
6814 | ||
6640 | 6815 | if (datainput) |
6641 | 6816 | { |
6642 | 6817 | for (int i = 0; i < 32; i++) |
r241781 | r241782 | |
6648 | 6823 | } |
6649 | 6824 | } |
6650 | 6825 | } |
6651 | else | |
6652 | { | |
6653 | if (m_dp_allowed) | |
6654 | { | |
6655 | shifter = 0; | |
6656 | } | |
6657 | else | |
6658 | { | |
6659 | shifter = 0x10; | |
6660 | } | |
6661 | } | |
6662 | 6826 | |
6663 | 6827 | INT32 address = ((datainput << shifter) & 0x7fc00000) >> 22; |
6664 | 6828 | address = ((address | 0x200) & 0x3fe) | (shifter & 1); |
6665 | 6829 | |
6666 | 6830 | INT32 fetchval = rsp_divtable[address]; |
6667 | 6831 | INT32 temp = (0x40000000 | (fetchval << 14)) >> (((~shifter) & 0x1f) >> 1); |
6668 | if (rec < 0) | |
6669 | { | |
6670 | temp = ~temp; | |
6671 | } | |
6832 | temp ^= rec >> 31; | |
6833 | ||
6672 | 6834 | if (!rec) |
6673 | 6835 | { |
6674 | 6836 | temp = 0x7fffffff; |
r241781 | r241782 | |
6699 | 6861 | int op = m_rsp_state->arg0; |
6700 | 6862 | |
6701 | 6863 | INT32 shifter = 0; |
6702 | INT32 rec = | |
6864 | INT32 rec = (INT16)VREG_S(VS2REG, EL & 7); | |
6703 | 6865 | INT32 datainput = rec; |
6704 | 6866 | |
6705 | if ( | |
6867 | if (m_dp_allowed) | |
6706 | 6868 | { |
6707 | if (m_dp_allowed) | |
6869 | rec = (rec & 0x0000ffff) | m_reciprocal_high; | |
6870 | datainput = rec; | |
6871 | ||
6872 | if (rec < 0) | |
6708 | 6873 | { |
6709 | 6874 | if (rec < -32768) |
6710 | 6875 | { |
r241781 | r241782 | |
6715 | 6880 | datainput = -datainput; |
6716 | 6881 | } |
6717 | 6882 | } |
6718 | else | |
6719 | { | |
6720 | datainput = -datainput; | |
6721 | } | |
6722 | 6883 | } |
6884 | else if (datainput < 0) | |
6885 | { | |
6886 | datainput = -datainput; | |
6723 | 6887 | |
6888 | shifter = 0x10; | |
6889 | } | |
6890 | ||
6724 | 6891 | if (datainput) |
6725 | 6892 | { |
6726 | 6893 | for (int i = 0; i < 32; i++) |
r241781 | r241782 | |
6732 | 6899 | } |
6733 | 6900 | } |
6734 | 6901 | } |
6735 | else | |
6736 | { | |
6737 | if (m_dp_allowed) | |
6738 | { | |
6739 | shifter = 0; | |
6740 | } | |
6741 | else | |
6742 | { | |
6743 | shifter = 0x10; | |
6744 | } | |
6745 | } | |
6746 | 6902 | |
6747 | 6903 | INT32 address = ((datainput << shifter) & 0x7fc00000) >> 22; |
6748 | 6904 | address = ((address | 0x200) & 0x3fe) | (shifter & 1); |
6749 | 6905 | |
6750 | 6906 | INT32 fetchval = rsp_divtable[address]; |
6751 | 6907 | INT32 temp = (0x40000000 | (fetchval << 14)) >> (((~shifter) & 0x1f) >> 1); |
6752 | if (rec < 0) | |
6753 | { | |
6754 | temp = ~temp; | |
6755 | } | |
6908 | temp ^= rec >> 31; | |
6909 | ||
6756 | 6910 | if (!rec) |
6757 | 6911 | { |
6758 | 6912 | temp = 0x7fffffff; |
r241781 | r241782 | |
6968 | 7122 | UINT32 nextpc; |
6969 | 7123 | |
6970 | 7124 | /* add a code log entry */ |
6971 | if ( | |
7125 | if (drcuml->logging()) | |
6972 | 7126 | block->append_comment("-------------------------"); // comment |
6973 | 7127 | |
6974 | 7128 | /* determine the last instruction in this sequence */ |
r241781 | r241782 | |
7249 | 7403 | void rsp_device::generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast) |
7250 | 7404 | { |
7251 | 7405 | const opcode_desc *curdesc; |
7252 | if ( | |
7406 | if (m_drcuml->logging()) | |
7253 | 7407 | { |
7254 | 7408 | block->append_comment("[Validation for %08X]", seqhead->pc | 0x1000); // comment |
7255 | 7409 | } |
r241781 | r241782 | |
7316 | 7470 | offs_t expc; |
7317 | 7471 | |
7318 | 7472 | /* add an entry for the log */ |
7319 | if ( | |
7473 | if (m_drcuml->logging() && !(desc->flags & OPFLAG_VIRTUAL_NOOP)) | |
7320 | 7474 | log_add_disasm_comment(block, desc->pc, desc->opptr.l[0]); |
7321 | 7475 | |
7322 | 7476 | /* set the PC map variable */ |
r241781 | r241782 | |
7361 | 7515 | } |
7362 | 7516 | |
7363 | 7517 | /*------------------------------------------------------------------ |
7518 | generate_branch | |
7519 | ------------------------------------------------------------------*/ | |
7520 | ||
7521 | void 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 | /*------------------------------------------------------------------ | |
7364 | 7542 | generate_delay_slot_and_branch |
7365 | 7543 | ------------------------------------------------------------------*/ |
7366 | 7544 | |
r241781 | r241782 | |
7386 | 7564 | assert(desc->delay.first() != NULL); |
7387 | 7565 | generate_sequence_instruction(block, &compiler_temp, desc->delay.first()); // <next instruction> |
7388 | 7566 | |
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); | |
7406 | 7568 | |
7407 | 7569 | /* update the label */ |
7408 | 7570 | compiler->labelnum = compiler_temp.labelnum; |
r241781 | r241782 | |
7618 | 7780 | #endif |
7619 | 7781 | return TRUE; |
7620 | 7782 | |
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 | ||
7621 | 7803 | case 0x1d: /* VSAW */ |
7622 | 7804 | UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]); // mov [arg0],desc->opptr.l |
7623 | 7805 | UML_CALLC(block, cfunc_rsp_vsaw_simd, this); |
r241781 | r241782 | |
7827 | 8009 | #endif |
7828 | 8010 | return TRUE; |
7829 | 8011 | |
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 | ||
7830 | 8017 | case 0x35: /* VRSQL */ |
7831 | 8018 | UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]); // mov [arg0],desc->opptr.l |
7832 | 8019 | UML_CALLC(block, cfunc_rsp_vrsql_simd, this); |
r241781 | r241782 | |
7849 | 8036 | #endif |
7850 | 8037 | return TRUE; |
7851 | 8038 | |
8039 | case 0x37: /* VNOP */ | |
8040 | case 0x3F: /* VNULL */ | |
8041 | return TRUE; | |
8042 | ||
7852 | 8043 | default: |
7853 | 8044 | UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]); // mov [arg0],desc->opptr.l |
7854 | 8045 | UML_CALLC(block, cfunc_unimplemented_opcode, this); |
r241781 | r241782 | |
7954 | 8145 | UML_CALLC(block, cfunc_rsp_vsubc_scalar, this); |
7955 | 8146 | return TRUE; |
7956 | 8147 | |
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 | ||
7957 | 8168 | case 0x1d: /* VSAW */ |
7958 | 8169 | UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]); // mov [arg0],desc->opptr.l |
7959 | 8170 | UML_CALLC(block, cfunc_rsp_vsaw_scalar, this); |
r241781 | r241782 | |
8049 | 8260 | UML_CALLC(block, cfunc_rsp_vmov_scalar, this); |
8050 | 8261 | return TRUE; |
8051 | 8262 | |
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 | ||
8052 | 8268 | case 0x35: /* VRSQL */ |
8053 | 8269 | UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]); // mov [arg0],desc->opptr.l |
8054 | 8270 | UML_CALLC(block, cfunc_rsp_vrsql_scalar, this); |
r241781 | r241782 | |
8059 | 8275 | UML_CALLC(block, cfunc_rsp_vrsqh_scalar, this); |
8060 | 8276 | return TRUE; |
8061 | 8277 | |
8278 | case 0x37: /* VNOP */ | |
8279 | case 0x3F: /* VNULL */ | |
8280 | return TRUE; | |
8281 | ||
8062 | 8282 | default: |
8063 | 8283 | UML_MOV(block, mem(&m_rsp_state->arg0), desc->opptr.l[0]); // mov [arg0],desc->opptr.l |
8064 | 8284 | UML_CALLC(block, cfunc_unimplemented_opcode, this); |
r241781 | r241782 | |
8421 | 8641 | UML_MOV(block, mem(&m_rsp_state->arg0), 3); // mov [arg0],3 |
8422 | 8642 | UML_CALLC(block, cfunc_sp_set_status_cb, this); // callc cfunc_sp_set_status_cb |
8423 | 8643 | UML_MOV(block, mem(&m_rsp_state->icount), 0); // mov icount, #0 |
8644 | UML_MOV(block, mem(&m_rsp_state->jmpdest), desc->targetpc); | |
8424 | 8645 | |
8646 | generate_branch(block, compiler, desc); | |
8647 | ||
8425 | 8648 | UML_EXIT(block, EXECUTE_OUT_OF_CYCLES); |
8426 | 8649 | return TRUE; |
8427 | 8650 | } |
r241781 | r241782 | |
9023 | 9246 | |
9024 | 9247 | void rsp_device::log_add_disasm_comment(drcuml_block *block, UINT32 pc, UINT32 op) |
9025 | 9248 | { |
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 | } | |
9031 | 9255 | } |
r241781 | r241782 | |
---|---|---|
83 | 83 | desc.regin[0] |= REGFLAG_R(RSREG) | REGFLAG_R(RTREG); |
84 | 84 | desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH; |
85 | 85 | } |
86 | desc.targetpc = ((desc.pc + 4 + | |
86 | desc.targetpc = ((desc.pc + 4 + SIMMVAL * 4) & 0x00000fff) | 0x1000; | |
87 | 87 | desc.delayslots = 1; |
88 | 88 | desc.skipslots = (opswitch & 0x10) ? 1 : 0; |
89 | 89 | return true; |
r241781 | r241782 | |
97 | 97 | desc.regin[0] |= REGFLAG_R(RSREG); |
98 | 98 | desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH; |
99 | 99 | } |
100 | desc.targetpc = ((desc.pc + 4 + | |
100 | desc.targetpc = ((desc.pc + 4 + SIMMVAL * 4) & 0x00000fff) | 0x1000; | |
101 | 101 | desc.delayslots = 1; |
102 | 102 | desc.skipslots = (opswitch & 0x10) ? 1 : 0; |
103 | 103 | return true; |
r241781 | r241782 | |
207 | 207 | return true; |
208 | 208 | |
209 | 209 | 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; | |
212 | 212 | return true; |
213 | 213 | } |
214 | 214 | |
r241781 | r241782 | |
234 | 234 | desc.regin[0] |= REGFLAG_R(RSREG); |
235 | 235 | desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH; |
236 | 236 | } |
237 | desc.targetpc = ((desc.pc + 4 + | |
237 | desc.targetpc = ((desc.pc + 4 + SIMMVAL * 4) & 0x00000fff) | 0x1000; | |
238 | 238 | desc.delayslots = 1; |
239 | 239 | desc.skipslots = (RTREG & 0x02) ? 1 : 0; |
240 | 240 | return true; |
r241781 | r241782 | |
249 | 249 | desc.flags |= OPFLAG_IS_CONDITIONAL_BRANCH; |
250 | 250 | } |
251 | 251 | desc.regout[0] |= REGFLAG_R(31); |
252 | desc.targetpc = ((desc.pc + 4 + | |
252 | desc.targetpc = ((desc.pc + 4 + SIMMVAL * 4) & 0x00000fff) | 0x1000; | |
253 | 253 | desc.delayslots = 1; |
254 | 254 | desc.skipslots = (RTREG & 0x02) ? 1 : 0; |
255 | 255 | return true; |
r241781 | r241782 | |
---|---|---|
115 | 115 | DEBUGGING |
116 | 116 | ***************************************************************************/ |
117 | 117 | |
118 | #define LOG_UML (0) // log UML assembly | |
119 | 118 | #define LOG_NATIVE (0) // log native assembly |
120 | 119 | |
121 | 120 | #define DISABLE_FAST_REGISTERS (0) // set to 1 to turn off usage of register caching |
r241781 | r241782 | |
170 | 169 | , m_cpu_type(CPU_TYPE_SH2) |
171 | 170 | , m_cache(CACHE_SIZE + sizeof(internal_sh2_state)) |
172 | 171 | , m_drcuml(NULL) |
173 | // , m_drcuml(*this, m_cache, ( LOG_ | |
172 | // , m_drcuml(*this, m_cache, ( LOG_NATIVE ? DRCUML_OPTION_LOG_NATIVE : 0 ), 1, 32, 1) | |
174 | 173 | , m_drcfe(NULL) |
175 | 174 | , m_drcoptions(0) |
176 | 175 | , m_sh2_state(NULL) |
r241781 | r241782 | |
207 | 206 | , m_cpu_type(cpu_type) |
208 | 207 | , m_cache(CACHE_SIZE + sizeof(internal_sh2_state)) |
209 | 208 | , m_drcuml(NULL) |
210 | // , m_drcuml(*this, m_cache, ( LOG_ | |
209 | // , m_drcuml(*this, m_cache, ( LOG_NATIVE ? DRCUML_OPTION_LOG_NATIVE : 0 ), 1, 32, 1) | |
211 | 210 | , m_drcfe(NULL) |
212 | 211 | , m_drcoptions(0) |
213 | 212 | , m_sh2_state(NULL) |
r241781 | r241782 | |
2561 | 2560 | |
2562 | 2561 | /* initialize the UML generator */ |
2563 | 2562 | UINT32 flags = 0; |
2564 | if (LOG_UML) | |
2565 | flags |= DRCUML_OPTION_LOG_UML; | |
2566 | 2563 | if (LOG_NATIVE) |
2567 | 2564 | flags |= DRCUML_OPTION_LOG_NATIVE; |
2568 | 2565 | m_drcuml = auto_alloc(machine(), drcuml_state(*this, m_cache, flags, 1, 32, 1)); |
r241781 | r241782 | |
---|---|---|
675 | 675 | |
676 | 676 | /* get a description of this sequence */ |
677 | 677 | desclist = m_drcfe->describe_code(pc); |
678 | if ( | |
678 | if (drcuml->logging() || LOG_NATIVE) | |
679 | 679 | log_opcode_desc(drcuml, desclist, 0); |
680 | 680 | |
681 | 681 | bool succeeded = false; |
r241781 | r241782 | |
693 | 693 | UINT32 nextpc; |
694 | 694 | |
695 | 695 | /* add a code log entry */ |
696 | if ( | |
696 | if (drcuml->logging()) | |
697 | 697 | block->append_comment("-------------------------"); // comment |
698 | 698 | |
699 | 699 | /* determine the last instruction in this sequence */ |
r241781 | r241782 | |
1174 | 1174 | char buffer[100]; |
1175 | 1175 | |
1176 | 1176 | /* 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 | } | |
1180 | 1184 | else |
1181 | DasmSH2(buffer, desclist->pc, desclist->opptr.w[0]); | |
1182 | #else | |
1183 | strcpy(buffer, "???"); | |
1184 | #endif | |
1185 | strcpy(buffer, "???"); | |
1185 | 1186 | drcuml->log_printf("%08X [%08X] t:%08X f:%s: %-30s", desclist->pc, desclist->physpc, desclist->targetpc, log_desc_flags_to_string(desclist->flags), buffer); |
1186 | 1187 | |
1187 | 1188 | /* output register states */ |
r241781 | r241782 | |
1206 | 1207 | |
1207 | 1208 | void sh2_device::log_add_disasm_comment(drcuml_block *block, UINT32 pc, UINT32 op) |
1208 | 1209 | { |
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 | } | |
1214 | 1216 | } |
1215 | 1217 | |
1216 | 1218 | /*------------------------------------------------- |
r241781 | r241782 | |
1299 | 1301 | void sh2_device::generate_checksum_block(drcuml_block *block, compiler_state *compiler, const opcode_desc *seqhead, const opcode_desc *seqlast) |
1300 | 1302 | { |
1301 | 1303 | const opcode_desc *curdesc; |
1302 | if ( | |
1304 | if (m_drcuml->logging()) | |
1303 | 1305 | block->append_comment("[Validation for %08X]", seqhead->pc); // comment |
1304 | 1306 | |
1305 | 1307 | /* loose verify or single instruction: just compare and fail */ |
r241781 | r241782 | |
1356 | 1358 | offs_t expc; |
1357 | 1359 | |
1358 | 1360 | /* add an entry for the log */ |
1359 | if ( | |
1361 | if (m_drcuml->logging() && !(desc->flags & OPFLAG_VIRTUAL_NOOP)) | |
1360 | 1362 | log_add_disasm_comment(block, desc->pc, desc->opptr.w[0]); |
1361 | 1363 | |
1362 | 1364 | /* set the PC map variable */ |
r241781 | r241782 | |
---|---|---|
10 | 10 | |
11 | 11 | Mode | ROM | RAM | R pins | O pins | K pins | ids |
12 | 12 | ---------+-----------+----------+--------+--------+--------|---------- |
13 | tms0970 | |
13 | tms0970 | 1024 * 8 | 64 * 4 | | | | tms0972 | |
14 | 14 | tms0920* | 511?* 9 | 40 * 5 | | | | tmc0921 |
15 | 15 | tms0980 | 2048 * 9 | 64 * 9 | | | | tmc0981 |
16 | 16 | tms1000 | 1024 * 8 | 64 * 4 | 11 | 8 | 4 | tms1001 |
r241781 | r241782 | |
123 | 123 | #include "debugger.h" |
124 | 124 | #include "tms0980.h" |
125 | 125 | |
126 | #define LOG 0 | |
127 | 126 | |
128 | 127 | |
129 | 128 | const device_type TMS0980 = &device_creator<tms0980_cpu_device>; |
130 | 129 | const device_type TMS1000 = &device_creator<tms1000_cpu_device>; |
130 | const device_type TMS0970 = &device_creator<tms0970_cpu_device>; | |
131 | 131 | const device_type TMS1070 = &device_creator<tms1070_cpu_device>; |
132 | 132 | const device_type TMS1200 = &device_creator<tms1200_cpu_device>; |
133 | 133 | const device_type TMS1270 = &device_creator<tms1270_cpu_device>; |
r241781 | r241782 | |
236 | 236 | #define I_YNEC ( MICRO_MASK | M_YTP | M_CKN | M_NE ) |
237 | 237 | |
238 | 238 | |
239 | static const UINT8 tms0980_c2_value[4] = | |
240 | { | |
241 | 0x00, 0x02, 0x01, 0x03 | |
242 | }; | |
243 | static const UINT8 tms0980_c3_value[8] = | |
244 | { | |
245 | 0x00, 0x04, 0x02, 0x06, 0x01, 0x05, 0x03, 0x07 | |
246 | }; | |
247 | static 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 | }; | |
239 | static const UINT8 tms0980_c2_value[4] = { 0, 2, 1, 3 }; | |
240 | static const UINT8 tms0980_c3_value[8] = { 0, 4, 2, 6, 1, 5, 3, 7 }; | |
241 | static const UINT8 tms0980_c4_value[16] = { 0x0, 0x8, 0x4, 0xC, 0x2, 0xA, 0x6, 0xE, 0x1, 0x9, 0x5, 0xD, 0x3, 0xB, 0x7, 0xF }; | |
251 | 242 | static const UINT8 tms0980_bit_value[4] = { 1, 4, 2, 8 }; |
252 | static const UINT8 tms0980_nbit_value[4] = { 0x | |
243 | static const UINT8 tms0980_nbit_value[4] = { 0xE, 0xB, 0xD, 0x7 }; | |
253 | 244 | |
254 | 245 | |
255 | 246 | static const UINT32 tms0980_decode[512] = |
r241781 | r241782 | |
329 | 320 | }; |
330 | 321 | |
331 | 322 | |
332 | static const UINT32 tms1000_default_decode[256] = { | |
323 | static const UINT32 tms1000_default_decode[256] = | |
324 | { | |
333 | 325 | /* 0x00 */ |
334 | 326 | F_COMX, I_A8AAC, I_YNEA, I_TAM, I_TAMZA, I_A10AAC, I_A6AAC, I_DAN, |
335 | 327 | I_TKA, I_KNEZ, F_TDO, F_CLO, F_RSTR, F_SETR, I_IA, F_RETN, |
r241781 | r241782 | |
371 | 363 | }; |
372 | 364 | |
373 | 365 | |
374 | static const UINT32 tms1100_default_decode[256] = { | |
366 | static const UINT32 tms1100_default_decode[256] = | |
367 | { | |
375 | 368 | /* 0x00 */ |
376 | 369 | I_MNEA, I_ALEM, I_YNEA, I_XMA, I_DYN, I_IYC, I_AMAAC, I_DMAN, |
377 | 370 | I_TKA, F_COMX, F_TDO, F_COMC, F_RSTR, F_SETR, I_KNEZ, F_RETN, |
r241781 | r241782 | |
504 | 497 | |
505 | 498 | void tms1xxx_cpu_device::device_reset() |
506 | 499 | { |
507 | m_pa = 0x0F; | |
508 | m_pb = 0x0F; | |
500 | m_pa = 0xF; | |
501 | m_pb = 0xF; | |
509 | 502 | m_pc = 0; |
510 | 503 | m_dam = 0; |
511 | 504 | m_ca = 0; |
r241781 | r241782 | |
620 | 613 | ( pc{5:4} == 11 && pc{0} == 1 ) => 10 |
621 | 614 | |
622 | 615 | */ |
623 | static const UINT8 tms1000_next_pc[64] = { | |
616 | static const UINT8 tms1000_next_pc[64] = | |
617 | { | |
624 | 618 | 0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F, |
625 | 619 | 0x20, 0x22, 0x24, 0x26, 0x28, 0x2A, 0x2C, 0x2E, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3A, 0x3C, 0x3F, |
626 | 620 | 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E, |
r241781 | r241782 | |
643 | 637 | nand322 means if pc = 0x3f, output MUST be true |
644 | 638 | hence, nand325 is if pc = 0x7f, false. if pc = 0x3f, true. if pc&0x60 is zero OR pc&0x60 is 0x60, true. otherwise, false. |
645 | 639 | |
646 | tms0980_ne | |
640 | tms0980_next_pc below implements an indentical function to this in a somewhat more elegant way. | |
647 | 641 | */ |
648 | 642 | void tms1xxx_cpu_device::next_pc() |
649 | 643 | { |
r241781 | r241782 | |
711 | 705 | { |
712 | 706 | do |
713 | 707 | { |
714 | // debugger_instruction_hook( this, ( ( m_pa << m_pc_size ) | m_pc ) << 1 ); | |
715 | 708 | m_icount--; |
716 | 709 | switch( m_subcycle ) |
717 | 710 | { |
r241781 | r241782 | |
811 | 804 | } |
812 | 805 | if ( m_decode & M_STO ) |
813 | 806 | { |
814 | //printf("write ram %02x data %01x\n", m_ram_address, m_a ); | |
815 | 807 | m_data->write_byte( m_ram_address, m_a ); |
816 | 808 | } |
817 | 809 | if ( m_decode & M_CKM ) |
818 | 810 | { |
819 | //printf("write ram %02x data %01x\n", m_ram_address, m_cki_bus ); | |
820 | 811 | m_data->write_byte( m_ram_address, m_cki_bus ); |
821 | 812 | } |
822 | 813 | } |
r241781 | r241782 | |
824 | 815 | { |
825 | 816 | if ( m_decode & F_SBIT ) |
826 | 817 | { |
827 | //printf("write ram %02x data %01x\n", m_ram_address, m_ram_data | tms0980_bit_value[ m_opcode & 0x03 ] ); | |
828 | 818 | m_data->write_byte( m_ram_address, m_ram_data | tms0980_bit_value[ m_opcode & 0x03 ] ); |
829 | 819 | } |
830 | 820 | if ( m_decode & F_RBIT ) |
831 | 821 | { |
832 | //printf("write ram %02x data %01x\n", m_ram_address, m_ram_data & tms0980_nbit_value[ m_opcode & 0x03 ] ); | |
833 | 822 | m_data->write_byte( m_ram_address, m_ram_data & tms0980_nbit_value[ m_opcode & 0x03 ] ); |
834 | 823 | } |
835 | 824 | if ( m_decode & F_SETR ) |
r241781 | r241782 | |
850 | 839 | { |
851 | 840 | logerror("unknown output pla mapping for status latch = %d and a = %X\n", m_status_latch, m_a); |
852 | 841 | } |
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); | |
857 | 842 | |
858 | 843 | m_write_o( 0, m_o & m_o_mask, 0xffff ); |
859 | 844 | } |
r241781 | r241782 | |
951 | 936 | m_opcode = m_program->read_byte( m_rom_address ); |
952 | 937 | } |
953 | 938 | 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 ); | |
956 | 939 | |
957 | 940 | /* ram address */ |
958 | 941 | m_ram_address = ( m_x << 4 ) | m_y; |
r241781 | r241782 | |
1075 | 1058 | } |
1076 | 1059 | |
1077 | 1060 | |
1061 | tms0970_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 | ||
1078 | 1066 | tms1070_cpu_device::tms1070_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
1079 | 1067 | : tms1000_cpu_device( mconfig, TMS1070, "TMS1070", tag, owner, clock, 0x00ff, 0x07ff, "tms1070", __FILE__) |
1080 | 1068 | { |
r241781 | r241782 | |
---|---|---|
162 | 162 | }; |
163 | 163 | |
164 | 164 | |
165 | class tms0970_cpu_device : public tms1000_cpu_device | |
166 | { | |
167 | public: | |
168 | tms0970_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
169 | }; | |
170 | ||
171 | ||
165 | 172 | class tms1070_cpu_device : public tms1000_cpu_device |
166 | 173 | { |
167 | 174 | public: |
r241781 | r241782 | |
209 | 216 | |
210 | 217 | /* 8-bit family */ |
211 | 218 | extern const device_type TMS1000; |
219 | extern const device_type TMS0970; | |
212 | 220 | extern const device_type TMS1070; |
213 | 221 | extern const device_type TMS1200; |
214 | 222 | extern const device_type TMS1270; |
r241781 | r241782 | |
---|---|---|
420 | 420 | upd7810_device::upd7810_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
421 | 421 | : cpu_device(mconfig, UPD7810, "uPD7810", tag, owner, clock, "upd7810", __FILE__) |
422 | 422 | , m_to_func(*this) |
423 | , m_co0_func(*this) | |
424 | , m_co1_func(*this) | |
423 | 425 | , m_txd_func(*this) |
424 | 426 | , m_rxd_func(*this) |
425 | 427 | , m_an0_func(*this) |
r241781 | r241782 | |
446 | 448 | upd7810_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) |
447 | 449 | : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source) |
448 | 450 | , m_to_func(*this) |
451 | , m_co0_func(*this) | |
452 | , m_co1_func(*this) | |
449 | 453 | , m_txd_func(*this) |
450 | 454 | , m_rxd_func(*this) |
451 | 455 | , m_an0_func(*this) |
r241781 | r241782 | |
567 | 571 | data = (data & ~0x02) | (m_rxd & 1 ? 0x02 : 0x00); |
568 | 572 | if (m_mcc & 0x04) /* PC2 = SCK input/output */ |
569 | 573 | 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); | |
572 | 576 | if (m_mcc & 0x10) /* PC4 = TO output */ |
573 | 577 | data = (data & ~0x10) | (m_to & 1 ? 0x10 : 0x00); |
574 | 578 | if (m_mcc & 0x20) /* PC5 = CI input */ |
r241781 | r241782 | |
648 | 652 | data = (data & ~0x02) | (m_rxd & 1 ? 0x02 : 0x00); |
649 | 653 | if (m_mcc & 0x04) /* PC2 = SCK input/output */ |
650 | 654 | 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); | |
653 | 657 | if (m_mcc & 0x10) /* PC4 = TO output */ |
654 | 658 | data = (data & ~0x10) | (m_to & 1 ? 0x10 : 0x00); |
655 | 659 | if (m_mcc & 0x20) /* PC5 = CI input */ |
r241781 | r241782 | |
709 | 713 | return; |
710 | 714 | |
711 | 715 | /* 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 | |
712 | 724 | if ((IRR & INTFT0) && 0 == (MKL & 0x02)) |
713 | 725 | { |
714 | 726 | vector = 0x0008; |
r241781 | r241782 | |
852 | 864 | |
853 | 865 | void upd7810_device::upd7810_write_EOM() |
854 | 866 | { |
855 | if (EOM & 0x01) /* output LV0 content | |
867 | if (EOM & 0x01) /* output LV0 content */ | |
856 | 868 | { |
857 | 869 | switch (EOM & 0x0e) |
858 | 870 | { |
859 | 871 | case 0x02: /* toggle CO0 */ |
860 | CO0 = | |
872 | CO0 ^= 1; | |
861 | 873 | break; |
862 | 874 | case 0x04: /* reset CO0 */ |
863 | 875 | CO0 = 0; |
876 | EOM &= 0xfb; /* LRE0 is reset t0 0 */ | |
864 | 877 | break; |
865 | 878 | case 0x08: /* set CO0 */ |
866 | 879 | CO0 = 1; |
880 | EOM &= 0xf7; /* LRE1 is reset t0 0 */ | |
867 | 881 | break; |
868 | 882 | } |
883 | EOM &= 0xfe; /* LO0 is reset t0 0 */ | |
884 | m_co0_func(CO0); | |
869 | 885 | } |
870 | if (EOM & 0x10) /* output LV | |
886 | if (EOM & 0x10) /* output LV1 content */ | |
871 | 887 | { |
872 | 888 | switch (EOM & 0xe0) |
873 | 889 | { |
874 | 890 | case 0x20: /* toggle CO1 */ |
875 | CO1 = | |
891 | CO1 ^= 1; | |
876 | 892 | break; |
877 | 893 | case 0x40: /* reset CO1 */ |
878 | 894 | CO1 = 0; |
895 | EOM &= 0xbf; /* LRE2 is reset t0 0 */ | |
879 | 896 | break; |
880 | 897 | case 0x80: /* set CO1 */ |
881 | 898 | CO1 = 1; |
899 | EOM &= 0x7f; /* LRE3 is reset t0 0 */ | |
882 | 900 | break; |
883 | 901 | } |
902 | EOM &= 0xef; /* LO1 is reset t0 0 */ | |
903 | m_co1_func(CO1); | |
884 | 904 | } |
885 | 905 | } |
886 | 906 | |
r241781 | r241782 | |
1305 | 1325 | IRR |= INTFE0; |
1306 | 1326 | if (ETM1 == ECNT) |
1307 | 1327 | 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 | } | |
1308 | 1352 | /* How and When ECNT is Cleared */ |
1309 | 1353 | switch (ETMM & 0x0c) |
1310 | 1354 | { |
r241781 | r241782 | |
1321 | 1365 | ECNT = 0; |
1322 | 1366 | break; |
1323 | 1367 | } |
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 | } | |
1362 | 1368 | } |
1363 | 1369 | } |
1364 | 1370 | |
r241781 | r241782 | |
1535 | 1541 | m_io = &space(AS_IO); |
1536 | 1542 | |
1537 | 1543 | m_to_func.resolve_safe(); |
1544 | m_co0_func.resolve_safe(); | |
1545 | m_co1_func.resolve_safe(); | |
1538 | 1546 | m_txd_func.resolve_safe(); |
1539 | 1547 | m_rxd_func.resolve_safe(0); |
1540 | 1548 | m_an0_func.resolve_safe(0); |
r241781 | r241782 | |
1608 | 1616 | save_item(NAME(m_ovcf)); |
1609 | 1617 | save_item(NAME(m_ovcs)); |
1610 | 1618 | save_item(NAME(m_edges)); |
1619 | save_item(NAME(m_nmi)); | |
1611 | 1620 | save_item(NAME(m_int1)); |
1612 | 1621 | save_item(NAME(m_int2)); |
1613 | 1622 | |
r241781 | r241782 | |
1668 | 1677 | state_add( UPD7810_TI, "TI", m_ti).formatstr("%3u"); |
1669 | 1678 | state_add( UPD7810_TO, "TO", m_to).formatstr("%3u"); |
1670 | 1679 | 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"); | |
1673 | 1682 | |
1674 | 1683 | state_add( STATE_GENPC, "GENPC", m_pc.w.l ).formatstr("%04X").noshow(); |
1675 | 1684 | state_add( STATE_GENPCBASE, "GENPCBASE", m_ppc.w.l ).formatstr("%04X").noshow(); |
r241781 | r241782 | |
1789 | 1798 | m_co1 = 0; |
1790 | 1799 | m_irr = 0; |
1791 | 1800 | m_itf = 0; |
1801 | m_nmi = 0; | |
1792 | 1802 | m_int1 = 0; |
1793 | 1803 | m_int2 = 0; |
1794 | 1804 | |
r241781 | r241782 | |
1962 | 1972 | |
1963 | 1973 | void upd7810_device::execute_set_input(int irqline, int state) |
1964 | 1974 | { |
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 ) | |
1986 | 1986 | 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 ) | |
1989 | 1993 | 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; | |
1996 | 2000 | } |
1997 | 2001 | /* resetting interrupt requests is done with the SKIT/SKNIT opcodes only! */ |
1998 | 2002 | } |
r241781 | r241782 | |
---|---|---|
50 | 50 | #define MCFG_UPD7810_TO(_devcb) \ |
51 | 51 | upd7810_device::set_to_func(*device, DEVCB_##_devcb); |
52 | 52 | |
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 | ||
53 | 59 | #define MCFG_UPD7810_TXD(_devcb) \ |
54 | 60 | upd7810_device::set_txd_func(*device, DEVCB_##_devcb); |
55 | 61 | |
r241781 | r241782 | |
90 | 96 | |
91 | 97 | // static configuration helpers |
92 | 98 | 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); } | |
93 | 101 | 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); } |
94 | 102 | 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); } |
95 | 103 | 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); } |
r241781 | r241782 | |
173 | 181 | void upd7810_handle_timer1(int cycles, int clkdiv); |
174 | 182 | |
175 | 183 | devcb_write_line m_to_func; |
184 | devcb_write_line m_co0_func; | |
185 | devcb_write_line m_co1_func; | |
176 | 186 | devcb_write_line m_txd_func; |
177 | 187 | devcb_read_line m_rxd_func; |
178 | 188 | devcb_read8 m_an0_func; |
r241781 | r241782 | |
294 | 304 | UINT8 m_co1; |
295 | 305 | UINT16 m_irr; /* interrupt request register */ |
296 | 306 | 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. */ | |
299 | 310 | |
300 | 311 | /* internal helper variables */ |
301 | 312 | UINT16 m_txs; /* transmitter shift register */ |
r241781 | r241782 | |
---|---|---|
133 | 133 | XTAL_14_7456MHz = 14745600, /* Namco System 12 & System Super 22/23 for JVS */ |
134 | 134 | XTAL_15MHz = 15000000, /* Sinclair QL, Amusco Poker */ |
135 | 135 | XTAL_15_36MHz = 15360000, /* Visual 1050 */ |
136 | XTAL_15_4MHz = 15400000, /* DVK KSM */ | |
136 | 137 | XTAL_15_468MHz = 15468480, /* Bank Panic h/w, Sega G80 */ |
137 | 138 | XTAL_15_8976MHz = 15897600, /* IAI Swyft */ |
138 | 139 | XTAL_16MHz = 16000000, /* Extremely common, used on 100's of PCBs */ |
r241781 | r241782 | |
---|---|---|
157 | 157 | { NULL, NULL, OPTION_HEADER, "CORE MISC OPTIONS" }, |
158 | 158 | { OPTION_DRC, "1", OPTION_BOOLEAN, "enable DRC cpu core if available" }, |
159 | 159 | { 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" }, | |
160 | 161 | { OPTION_BIOS, NULL, OPTION_STRING, "select the system BIOS to use" }, |
161 | 162 | { OPTION_CHEAT ";c", "0", OPTION_BOOLEAN, "enable cheat subsystem" }, |
162 | 163 | { OPTION_SKIP_GAMEINFO, "0", OPTION_BOOLEAN, "skip displaying the information screen at startup" }, |
r241781 | r241782 | |
---|---|---|
160 | 160 | // core misc options |
161 | 161 | #define OPTION_DRC "drc" |
162 | 162 | #define OPTION_DRC_USE_C "drc_use_c" |
163 | #define OPTION_DRC_LOG_UML "drc_log_uml" | |
163 | 164 | #define OPTION_BIOS "bios" |
164 | 165 | #define OPTION_CHEAT "cheat" |
165 | 166 | #define OPTION_SKIP_GAMEINFO "skip_gameinfo" |
r241781 | r241782 | |
320 | 321 | // core misc options |
321 | 322 | bool drc() const { return bool_value(OPTION_DRC); } |
322 | 323 | 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); } | |
323 | 325 | const char *bios() const { return value(OPTION_BIOS); } |
324 | 326 | bool cheat() const { return bool_value(OPTION_CHEAT); } |
325 | 327 | bool skip_gameinfo() const { return bool_value(OPTION_SKIP_GAMEINFO); } |
r0 | r241782 | |
---|---|---|
1 | #include "i6300esb.h" | |
2 | ||
3 | const device_type I6300ESB_WATCHDOG = &device_creator<i6300esb_watchdog_device>; | |
4 | const device_type I6300ESB_LPC = &device_creator<i6300esb_lpc_device>; | |
5 | ||
6 | DEVICE_ADDRESS_MAP_START(map, 32, i6300esb_watchdog_device) | |
7 | ADDRESS_MAP_END | |
8 | ||
9 | i6300esb_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 | ||
14 | void i6300esb_watchdog_device::device_start() | |
15 | { | |
16 | pci_device::device_start(); | |
17 | add_map(16, M_MEM, FUNC(i6300esb_watchdog_device::map)); | |
18 | } | |
19 | ||
20 | void i6300esb_watchdog_device::device_reset() | |
21 | { | |
22 | pci_device::device_reset(); | |
23 | } | |
24 | ||
25 | ||
26 | DEVICE_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) | |
35 | ADDRESS_MAP_END | |
36 | ||
37 | DEVICE_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 | |
45 | ADDRESS_MAP_END | |
46 | ||
47 | ||
48 | i6300esb_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 | ||
53 | void i6300esb_lpc_device::device_start() | |
54 | { | |
55 | pci_device::device_start(); | |
56 | } | |
57 | ||
58 | void i6300esb_lpc_device::device_reset() | |
59 | { | |
60 | pci_device::device_reset(); | |
61 | siu_config_port = 0; | |
62 | siu_config_state = 0; | |
63 | } | |
64 | ||
65 | void 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 | ||
78 | READ32_MEMBER (i6300esb_lpc_device::gpio_base_r) | |
79 | { | |
80 | return gpio_base | 1; | |
81 | } | |
82 | ||
83 | WRITE32_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 | ||
90 | READ8_MEMBER (i6300esb_lpc_device::gpio_cntl_r) | |
91 | { | |
92 | return gpio_cntl; | |
93 | } | |
94 | ||
95 | WRITE8_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 | ||
101 | READ8_MEMBER (i6300esb_lpc_device::lpc_if_com_range_r) | |
102 | { | |
103 | return lpc_if_com_range; | |
104 | } | |
105 | ||
106 | WRITE8_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 | ||
112 | READ8_MEMBER (i6300esb_lpc_device::lpc_if_fdd_lpt_range_r) | |
113 | { | |
114 | return lpc_if_fdd_lpt_range; | |
115 | } | |
116 | ||
117 | WRITE8_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 | ||
123 | READ8_MEMBER (i6300esb_lpc_device::lpc_if_sound_range_r) | |
124 | { | |
125 | return lpc_if_sound_range; | |
126 | } | |
127 | ||
128 | WRITE8_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 | ||
134 | READ8_MEMBER (i6300esb_lpc_device::fwh_dec_en1_r) | |
135 | { | |
136 | return fwh_dec_en1; | |
137 | } | |
138 | ||
139 | WRITE8_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 | ||
145 | READ16_MEMBER (i6300esb_lpc_device::gen1_dec_r) | |
146 | { | |
147 | return gen1_dec; | |
148 | } | |
149 | ||
150 | WRITE16_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 | ||
156 | READ16_MEMBER (i6300esb_lpc_device::lpc_en_r) | |
157 | { | |
158 | return lpc_en; | |
159 | } | |
160 | ||
161 | WRITE16_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 | ||
167 | READ32_MEMBER (i6300esb_lpc_device::fwh_sel1_r) | |
168 | { | |
169 | return fwh_sel1; | |
170 | } | |
171 | ||
172 | WRITE32_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 | ||
178 | READ32_MEMBER (i6300esb_lpc_device::unk_fc_r) | |
179 | { | |
180 | logerror("%s: read undocumented config reg fc\n", tag()); | |
181 | return 0; | |
182 | } | |
183 | ||
184 | WRITE32_MEMBER(i6300esb_lpc_device::unk_fc_w) | |
185 | { | |
186 | logerror("%s: write undocumented config reg fc (%08x)\n", tag(), data); | |
187 | } | |
188 | ||
189 | ||
190 | ||
191 | READ8_MEMBER (i6300esb_lpc_device::siu_config_port_r) | |
192 | { | |
193 | return siu_config_port; | |
194 | } | |
195 | ||
196 | WRITE8_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 | ||
219 | READ8_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 | ||
225 | WRITE8_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 | ||
234 | WRITE8_MEMBER (i6300esb_lpc_device::nop_w) | |
235 | { | |
236 | } | |
237 | ||
238 | void 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 | ||
245 | void 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 |
r0 | r241782 | |
---|---|---|
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 | ||
14 | class i6300esb_lpc_device : public pci_device { | |
15 | public: | |
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 | ||
25 | protected: | |
26 | virtual void device_start(); | |
27 | virtual void device_reset(); | |
28 | ||
29 | private: | |
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 | ||
73 | class i6300esb_watchdog_device : public pci_device { | |
74 | public: | |
75 | i6300esb_watchdog_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
76 | ||
77 | protected: | |
78 | virtual void device_start(); | |
79 | virtual void device_reset(); | |
80 | ||
81 | private: | |
82 | DECLARE_ADDRESS_MAP(map, 32); | |
83 | }; | |
84 | ||
85 | extern const device_type I6300ESB_LPC; | |
86 | extern const device_type I6300ESB_WATCHDOG; | |
87 | ||
88 | #endif |
r0 | r241782 | |
---|---|---|
1 | #include "i82541.h" | |
2 | ||
3 | const device_type I82541 = &device_creator<i82541_device>; | |
4 | ||
5 | DEVICE_ADDRESS_MAP_START(registers_map, 32, i82541_device) | |
6 | ADDRESS_MAP_END | |
7 | ||
8 | DEVICE_ADDRESS_MAP_START(flash_map, 32, i82541_device) | |
9 | ADDRESS_MAP_END | |
10 | ||
11 | DEVICE_ADDRESS_MAP_START(registers_io_map, 32, i82541_device) | |
12 | ADDRESS_MAP_END | |
13 | ||
14 | i82541_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 | ||
19 | void 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 | ||
27 | void i82541_device::device_reset() | |
28 | { | |
29 | pci_device::device_reset(); | |
30 | } |
r0 | r241782 | |
---|---|---|
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 | ||
11 | class i82541_device : public pci_device { | |
12 | public: | |
13 | i82541_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
14 | ||
15 | protected: | |
16 | virtual void device_start(); | |
17 | virtual void device_reset(); | |
18 | ||
19 | private: | |
20 | DECLARE_ADDRESS_MAP(registers_map, 32); | |
21 | DECLARE_ADDRESS_MAP(flash_map, 32); | |
22 | DECLARE_ADDRESS_MAP(registers_io_map, 32); | |
23 | }; | |
24 | ||
25 | extern const device_type I82541; | |
26 | ||
27 | #endif |
r0 | r241782 | |
---|---|---|
1 | #include "i82875p.h" | |
2 | ||
3 | const device_type I82875P_HOST = &device_creator<i82875p_host_device>; | |
4 | const device_type I82875P_AGP = &device_creator<i82875p_agp_device>; | |
5 | ||
6 | DEVICE_ADDRESS_MAP_START(agp_translation_map, 32, i82875p_host_device) | |
7 | ADDRESS_MAP_END | |
8 | ||
9 | i82875p_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 | ||
14 | void i82875p_host_device::set_cpu_tag(const char *_cpu_tag) | |
15 | { | |
16 | cpu_tag = _cpu_tag; | |
17 | } | |
18 | ||
19 | void i82875p_host_device::set_ram_size(int _ram_size) | |
20 | { | |
21 | ram_size = _ram_size; | |
22 | } | |
23 | ||
24 | void 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 | ||
44 | void i82875p_host_device::device_reset() | |
45 | { | |
46 | pci_host_device::device_reset(); | |
47 | } | |
48 | ||
49 | void 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 | ||
58 | i82875p_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 | ||
63 | void i82875p_agp_device::device_start() | |
64 | { | |
65 | agp_bridge_device::device_start(); | |
66 | } | |
67 | ||
68 | void i82875p_agp_device::device_reset() | |
69 | { | |
70 | agp_bridge_device::device_reset(); | |
71 | } |
r0 | r241782 | |
---|---|---|
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 | ||
16 | class i82875p_host_device : public pci_host_device { | |
17 | public: | |
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 | ||
26 | protected: | |
27 | virtual void device_start(); | |
28 | virtual void device_reset(); | |
29 | ||
30 | private: | |
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 | ||
39 | class i82875p_agp_device : public agp_bridge_device { | |
40 | public: | |
41 | i82875p_agp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
42 | ||
43 | protected: | |
44 | virtual void device_start(); | |
45 | virtual void device_reset(); | |
46 | }; | |
47 | ||
48 | extern const device_type I82875P_HOST; | |
49 | extern const device_type I82875P_AGP; | |
50 | ||
51 | ||
52 | #endif |
r0 | r241782 | |
---|---|---|
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 | ||
81 | const 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 | //------------------------------------------------- | |
90 | pci_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 | ||
106 | READ32_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 | ||
141 | pci_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 | ||
161 | WRITE32_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 | ||
210 | READ64_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 | ||
221 | WRITE64_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 | ||
232 | void 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 | ||
245 | void 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 | ||
257 | void 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 | ||
284 | void pci_bus_legacy_device::device_reset() | |
285 | { | |
286 | /* reset the drive state */ | |
287 | m_devicenum = -1; | |
288 | m_address = 0; | |
289 | } |
r0 | r241782 | |
---|---|---|
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 | ||
16 | typedef UINT32 (*pci_read_func)(device_t *pcibus, device_t *device, int function, int reg, UINT32 mem_mask); | |
17 | typedef 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 | ||
21 | class pci_bus_legacy_device : public device_t | |
22 | { | |
23 | public: | |
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 | ||
41 | protected: | |
42 | // device-level overrides | |
43 | virtual void device_start(); | |
44 | virtual void device_reset(); | |
45 | virtual void device_post_load(); | |
46 | ||
47 | private: | |
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 | |
65 | extern 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 */ |
r241781 | r241782 | |
---|---|---|
1221 | 1221 | |
1222 | 1222 | #------------------------------------------------- |
1223 | 1223 | # |
1224 | #@src/emu/machine/lpci.h,MACHINES += LPCI | |
1225 | #------------------------------------------------- | |
1226 | ||
1227 | ifneq ($(filter LPCI,$(MACHINES)),) | |
1228 | MACHINEOBJS += $(MACHINEOBJ)/lpci.o | |
1229 | endif | |
1230 | ||
1231 | #------------------------------------------------- | |
1232 | # | |
1224 | 1233 | #@src/emu/machine/pci.h,MACHINES += PCI |
1225 | 1234 | #------------------------------------------------- |
1226 | 1235 | |
1227 | 1236 | ifneq ($(filter PCI,$(MACHINES)),) |
1228 | 1237 | MACHINEOBJS += $(MACHINEOBJ)/pci.o |
1238 | MACHINEOBJS += $(MACHINEOBJ)/pci-usb.o | |
1239 | MACHINEOBJS += $(MACHINEOBJ)/pci-sata.o | |
1240 | MACHINEOBJS += $(MACHINEOBJ)/pci-apic.o | |
1241 | MACHINEOBJS += $(MACHINEOBJ)/pci-smbus.o | |
1242 | MACHINEOBJS += $(MACHINEOBJ)/i82541.o | |
1243 | MACHINEOBJS += $(MACHINEOBJ)/i82875p.o | |
1244 | MACHINEOBJS += $(MACHINEOBJ)/i6300esb.o | |
1229 | 1245 | endif |
1230 | 1246 | |
1231 | 1247 | #------------------------------------------------- |
r0 | r241782 | |
---|---|---|
1 | #include "pci-apic.h" | |
2 | ||
3 | const device_type APIC = &device_creator<apic_device>; | |
4 | ||
5 | apic_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 | ||
10 | void apic_device::device_start() | |
11 | { | |
12 | pci_device::device_start(); | |
13 | } | |
14 | ||
15 | void apic_device::device_reset() | |
16 | { | |
17 | pci_device::device_reset(); | |
18 | } |
r0 | r241782 | |
---|---|---|
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 | ||
9 | class apic_device : public pci_device { | |
10 | public: | |
11 | apic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
12 | ||
13 | protected: | |
14 | virtual void device_start(); | |
15 | virtual void device_reset(); | |
16 | }; | |
17 | ||
18 | extern const device_type APIC; | |
19 | ||
20 | #endif |
r0 | r241782 | |
---|---|---|
1 | #include "pci-sata.h" | |
2 | ||
3 | const device_type SATA = &device_creator<sata_device>; | |
4 | ||
5 | sata_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 | ||
10 | DEVICE_ADDRESS_MAP_START(primary_command_map, 32, sata_device) | |
11 | ADDRESS_MAP_END | |
12 | ||
13 | DEVICE_ADDRESS_MAP_START(primary_control_map, 32, sata_device) | |
14 | ADDRESS_MAP_END | |
15 | ||
16 | DEVICE_ADDRESS_MAP_START(secondary_command_map, 32, sata_device) | |
17 | ADDRESS_MAP_END | |
18 | ||
19 | DEVICE_ADDRESS_MAP_START(secondary_control_map, 32, sata_device) | |
20 | ADDRESS_MAP_END | |
21 | ||
22 | DEVICE_ADDRESS_MAP_START(bus_master_map, 32, sata_device) | |
23 | ADDRESS_MAP_END | |
24 | ||
25 | DEVICE_ADDRESS_MAP_START(ide_command_posting_map, 32, sata_device) | |
26 | ADDRESS_MAP_END | |
27 | ||
28 | ||
29 | void 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 | ||
41 | void sata_device::device_reset() | |
42 | { | |
43 | pci_device::device_reset(); | |
44 | } |
r0 | r241782 | |
---|---|---|
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 | ||
9 | class sata_device : public pci_device { | |
10 | public: | |
11 | sata_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
12 | ||
13 | protected: | |
14 | virtual void device_start(); | |
15 | virtual void device_reset(); | |
16 | ||
17 | private: | |
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 | ||
26 | extern const device_type SATA; | |
27 | ||
28 | #endif |
r0 | r241782 | |
---|---|---|
1 | #include "pci-smbus.h" | |
2 | ||
3 | const device_type SMBUS = &device_creator<smbus_device>; | |
4 | ||
5 | DEVICE_ADDRESS_MAP_START(map, 32, smbus_device) | |
6 | ADDRESS_MAP_END | |
7 | ||
8 | smbus_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 | ||
13 | void smbus_device::device_start() | |
14 | { | |
15 | pci_device::device_start(); | |
16 | add_map(32, M_IO, FUNC(smbus_device::map)); | |
17 | } | |
18 | ||
19 | void smbus_device::device_reset() | |
20 | { | |
21 | pci_device::device_reset(); | |
22 | } |
r0 | r241782 | |
---|---|---|
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 | ||
9 | class smbus_device : public pci_device { | |
10 | public: | |
11 | smbus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
12 | ||
13 | protected: | |
14 | virtual void device_start(); | |
15 | virtual void device_reset(); | |
16 | ||
17 | private: | |
18 | DECLARE_ADDRESS_MAP(map, 32); | |
19 | }; | |
20 | ||
21 | extern const device_type SMBUS; | |
22 | ||
23 | #endif |
r0 | r241782 | |
---|---|---|
1 | #include "pci-usb.h" | |
2 | ||
3 | const device_type USB_UHCI = &device_creator<usb_uhci_device>; | |
4 | const device_type USB_EHCI = &device_creator<usb_ehci_device>; | |
5 | ||
6 | DEVICE_ADDRESS_MAP_START(map, 32, usb_uhci_device) | |
7 | ADDRESS_MAP_END | |
8 | ||
9 | usb_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 | ||
14 | void usb_uhci_device::device_start() | |
15 | { | |
16 | pci_device::device_start(); | |
17 | add_map(32, M_IO, FUNC(usb_uhci_device::map)); | |
18 | } | |
19 | ||
20 | void usb_uhci_device::device_reset() | |
21 | { | |
22 | pci_device::device_reset(); | |
23 | } | |
24 | ||
25 | DEVICE_ADDRESS_MAP_START(map, 32, usb_ehci_device) | |
26 | ADDRESS_MAP_END | |
27 | ||
28 | usb_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 | ||
33 | void usb_ehci_device::device_start() | |
34 | { | |
35 | pci_device::device_start(); | |
36 | add_map(1024, M_MEM, FUNC(usb_ehci_device::map)); | |
37 | } | |
38 | ||
39 | void usb_ehci_device::device_reset() | |
40 | { | |
41 | pci_device::device_reset(); | |
42 | } |
r0 | r241782 | |
---|---|---|
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 | ||
12 | class usb_uhci_device : public pci_device { | |
13 | public: | |
14 | usb_uhci_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
15 | ||
16 | protected: | |
17 | virtual void device_start(); | |
18 | virtual void device_reset(); | |
19 | ||
20 | private: | |
21 | DECLARE_ADDRESS_MAP(map, 32); | |
22 | }; | |
23 | ||
24 | class usb_ehci_device : public pci_device { | |
25 | public: | |
26 | usb_ehci_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
27 | ||
28 | protected: | |
29 | virtual void device_start(); | |
30 | virtual void device_reset(); | |
31 | ||
32 | private: | |
33 | DECLARE_ADDRESS_MAP(map, 32); | |
34 | }; | |
35 | ||
36 | extern const device_type USB_UHCI; | |
37 | extern const device_type USB_EHCI; | |
38 | ||
39 | #endif |
r241781 | r241782 | |
---|---|---|
1 | ||
1 | #include "pci.h" | |
2 | 2 | |
3 | machine/pci.c | |
3 | const device_type PCI_ROOT = &device_creator<pci_root_device>; | |
4 | const device_type PCI_BRIDGE = &device_creator<pci_bridge_device>; | |
4 | 5 | |
5 | PCI bus | |
6 | DEVICE_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) | |
6 | 9 | |
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) | |
8 | 15 | |
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) | |
18 | ADDRESS_MAP_END | |
16 | 19 | |
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 | |
20 | pci_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 | } | |
26 | 28 | |
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 | |
29 | void 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 | } | |
67 | 36 | |
68 | Information on PCI vendors can be found at http://www.pcidatabase.com/ | |
37 | void pci_device::device_start() | |
38 | { | |
39 | } | |
69 | 40 | |
70 | ***************************************************************************/ | |
41 | void pci_device::device_reset() | |
42 | { | |
43 | } | |
71 | 44 | |
72 | #include "emu.h" | |
73 | #include "machine/pci.h" | |
45 | READ16_MEMBER(pci_device::vendor_r) | |
46 | { | |
47 | return main_id >> 16; | |
48 | } | |
74 | 49 | |
75 | #define LOG_PCI 0 | |
50 | READ16_MEMBER(pci_device::device_r) | |
51 | { | |
52 | return main_id; | |
53 | } | |
76 | 54 | |
77 | //************************************************************************** | |
78 | // GLOBAL VARIABLES | |
79 | //************************************************************************** | |
55 | READ32_MEMBER(pci_device::class_rev_r) | |
56 | { | |
57 | return (pclass << 8) | revision; | |
58 | } | |
80 | 59 | |
81 | const device_type PCI_BUS_LEGACY = &device_creator<pci_bus_legacy_device>; | |
60 | READ8_MEMBER(pci_device::cache_line_size_r) | |
61 | { | |
62 | return 0x00; | |
63 | } | |
82 | 64 | |
83 | //************************************************************************** | |
84 | // LIVE DEVICE | |
85 | //************************************************************************** | |
65 | READ8_MEMBER(pci_device::latency_timer_r) | |
66 | { | |
67 | return 0x00; | |
68 | } | |
86 | 69 | |
87 | //------------------------------------------------- | |
88 | // pci_bus_legacy_device - constructor | |
89 | //------------------------------------------------- | |
90 | pci_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) | |
70 | READ8_MEMBER(pci_device::header_type_r) | |
93 | 71 | { |
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; | |
100 | 73 | } |
101 | 74 | |
102 | /*************************************************************************** | |
103 | INLINE FUNCTIONS | |
104 | ***************************************************************************/ | |
75 | READ8_MEMBER(pci_device::bist_r) | |
76 | { | |
77 | return 0x00; | |
78 | } | |
105 | 79 | |
106 | READ | |
80 | READ16_MEMBER(pci_device::subvendor_r) | |
107 | 81 | { |
108 | UINT32 result = 0xffffffff; | |
109 | int function, reg; | |
82 | return subsystem_id >> 16; | |
83 | } | |
110 | 84 | |
111 | offset %= 2; | |
85 | READ16_MEMBER(pci_device::subsystem_r) | |
86 | { | |
87 | return subsystem_id; | |
88 | } | |
112 | 89 | |
113 | switch (offset) | |
114 | { | |
115 | case 0: | |
116 | result = m_address; | |
117 | break; | |
90 | void pci_device::scan_sub_devices(pci_device **devices, dynamic_array<pci_device *> &all, dynamic_array<pci_device *> &bridges, device_t *root) | |
91 | { | |
92 | } | |
118 | 93 | |
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 | } | |
94 | void pci_device::reset_all_mappings() | |
95 | { | |
96 | } | |
132 | 97 | |
133 | if (LOG_PCI) | |
134 | logerror("read('%s'): offset=%d result=0x%08X\n", tag(), offset, result); | |
98 | void 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 | } | |
135 | 104 | |
136 | return result; | |
105 | void 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 | { | |
137 | 108 | } |
138 | 109 | |
110 | void 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 | } | |
139 | 114 | |
115 | void 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 | } | |
140 | 119 | |
141 | pci_bus_legacy_device *pci_bus_legacy_device::pci_search_bustree(int busnum, int devicenum, pci_bus_legacy_device *pcibus) | |
120 | agp_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) | |
142 | 122 | { |
143 | int a; | |
144 | pci_bus_legacy_device *ret; | |
123 | } | |
145 | 124 | |
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; | |
125 | void agp_device::device_start() | |
126 | { | |
127 | pci_device::device_start(); | |
157 | 128 | } |
158 | 129 | |
130 | void agp_device::device_reset() | |
131 | { | |
132 | pci_device::device_reset(); | |
133 | } | |
159 | 134 | |
160 | 135 | |
161 | WRITE32_MEMBER( pci_bus_legacy_device::write ) | |
136 | ||
137 | pci_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) | |
162 | 141 | { |
163 | ||
142 | } | |
164 | 143 | |
165 | if (LOG_PCI) | |
166 | logerror("write('%s'): offset=%d data=0x%08X\n", tag(), offset, data); | |
144 | pci_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 | } | |
167 | 150 | |
168 | switch (offset) | |
169 | { | |
170 | case 0: | |
171 | m_address = data; | |
151 | READ8_MEMBER(pci_bridge_device::header_type_r) | |
152 | { | |
153 | return 0x01; | |
154 | } | |
172 | 155 | |
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; | |
156 | const address_space_config *pci_bridge_device::memory_space_config(address_spacenum spacenum) const | |
157 | { | |
158 | return spacenum == AS_PROGRAM ? &configure_space_config : NULL; | |
159 | } | |
190 | 160 | |
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); | |
161 | device_t *pci_bridge_device::bus_root() | |
162 | { | |
163 | return this; | |
164 | } | |
165 | ||
166 | void 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); | |
203 | 189 | } |
204 | break; | |
205 | } | |
190 | } | |
206 | 191 | } |
207 | 192 | |
193 | void pci_bridge_device::device_reset() | |
194 | { | |
195 | pci_device::device_reset(); | |
196 | regenerate_config_mapping(); | |
197 | } | |
208 | 198 | |
199 | void 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 | } | |
209 | 205 | |
210 | READ64_MEMBER(pci_bus_legacy_device::read_64be) | |
206 | ||
207 | void 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) | |
211 | 209 | { |
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); | |
219 | 217 | } |
220 | 218 | |
221 | WRITE64_MEMBER(pci_bus_legacy_device::write_64be) | |
219 | ||
220 | void pci_bridge_device::regenerate_config_mapping() | |
222 | 221 | { |
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); | |
229 | 227 | } |
230 | 228 | |
231 | 229 | |
232 | void pci_bus_legacy_device::add_sibling(pci_bus_legacy_device *sibling, int busnum) | |
230 | agp_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) | |
233 | 232 | { |
234 | m_siblings[m_siblings_count] = sibling; | |
235 | m_siblings_busnum[m_siblings_count] = busnum; | |
236 | m_siblings_count++; | |
237 | 233 | } |
238 | 234 | |
235 | void agp_bridge_device::device_start() | |
236 | { | |
237 | pci_bridge_device::device_start(); | |
238 | } | |
239 | 239 | |
240 | //------------------------------------------------- | |
241 | // device_post_load - handle updating after a | |
242 | // restore | |
243 | //------------------------------------------------- | |
240 | void agp_bridge_device::device_reset() | |
241 | { | |
242 | pci_bridge_device::device_reset(); | |
243 | } | |
244 | 244 | |
245 | void pci_bus_legacy_device::device_post_load() | |
245 | ||
246 | ||
247 | DEVICE_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) | |
250 | ADDRESS_MAP_END | |
251 | ||
252 | ||
253 | pci_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) | |
246 | 255 | { |
247 | if (m_devicenum != -1) | |
248 | { | |
249 | m_busnumaddr = pci_search_bustree(m_busnumber, m_devicenum, this); | |
250 | } | |
251 | 256 | } |
252 | 257 | |
253 | //------------------------------------------------- | |
254 | // device_start - device-specific startup | |
255 | //------------------------------------------------- | |
258 | device_t *pci_host_device::bus_root() | |
259 | { | |
260 | return owner(); | |
261 | } | |
256 | 262 | |
257 | void pci_ | |
263 | void pci_host_device::device_start() | |
258 | 264 | { |
259 | /* store a pointer back to the device */ | |
260 | m_devicenum = -1; | |
265 | pci_bridge_device::device_start(); | |
261 | 266 | |
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 | } | |
266 | 270 | |
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 | } | |
271 | void pci_host_device::device_reset() | |
272 | { | |
273 | pci_bridge_device::device_reset(); | |
274 | reset_all_mappings(); | |
275 | regenerate_mapping(); | |
272 | 276 | |
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; | |
277 | 278 | } |
278 | 279 | |
280 | void 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); | |
279 | 285 | |
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 | } | |
283 | 289 | |
284 | ||
290 | READ32_MEMBER(pci_host_device::config_address_r) | |
285 | 291 | { |
286 | /* reset the drive state */ | |
287 | m_devicenum = -1; | |
288 | m_address = 0; | |
292 | return config_address; | |
289 | 293 | } |
294 | ||
295 | WRITE32_MEMBER(pci_host_device::config_address_w) | |
296 | { | |
297 | COMBINE_DATA(&config_address); | |
298 | } | |
299 | ||
300 | READ32_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 | ||
305 | WRITE32_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 | ||
311 | UINT32 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 | ||
325 | void 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 | ||
337 | pci_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 | ||
342 | void pci_root_device::device_start() | |
343 | { | |
344 | } | |
345 | ||
346 | void pci_root_device::device_reset() | |
347 | { | |
348 | } |
r241781 | r241782 | |
---|---|---|
1 | /*************************************************************************** | |
1 | #ifndef PCI_H | |
2 | #define PCI_H | |
2 | 3 | |
3 | ||
4 | #include "emu.h" | |
4 | 5 | |
5 | PCI bus | |
6 | #define MCFG_PCI_ROOT_ADD(_tag) \ | |
7 | MCFG_DEVICE_ADD(_tag, PCI_ROOT, 0) | |
6 | 8 | |
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); | |
8 | 12 | |
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) | |
11 | 15 | |
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) | |
15 | 18 | |
16 | typedef UINT32 (*pci_read_func)(device_t *pcibus, device_t *device, int function, int reg, UINT32 mem_mask); | |
17 | typedef 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) | |
18 | 21 | |
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) | |
20 | 24 | |
21 | class pci_bus_legacy_device : public device_t | |
22 | { | |
25 | class pci_device : public device_t { | |
23 | 26 | public: |
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); | |
26 | 28 | |
27 | DECLARE_READ32_MEMBER( read ); | |
28 | DECLARE_WRITE32_MEMBER( write ); | |
29 | void set_ids(UINT32 main_id, UINT8 revision, UINT32 pclass, UINT32 subsystem_id); | |
29 | 30 | |
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); | |
32 | 36 | |
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); | |
37 | 38 | |
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); | |
40 | 40 | |
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 | ||
41 | 51 | protected: |
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 | ||
43 | 64 | virtual void device_start(); |
44 | 65 | virtual void device_reset(); |
45 | virtual void device_post_load(); | |
46 | 66 | |
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 | ||
76 | class agp_device : public pci_device { | |
77 | public: | |
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 | ||
80 | protected: | |
81 | virtual void device_start(); | |
82 | virtual void device_reset(); | |
83 | }; | |
84 | ||
85 | class pci_bridge_device : public pci_device, public device_memory_interface { | |
86 | public: | |
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 | ||
96 | protected: | |
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 | ||
47 | 108 | private: |
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 | }; | |
57 | 111 | |
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 | |
112 | class agp_bridge_device : public pci_bridge_device { | |
113 | public: | |
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 | ||
116 | protected: | |
117 | virtual void device_start(); | |
118 | virtual void device_reset(); | |
62 | 119 | }; |
63 | 120 | |
64 | // device type definition | |
65 | extern const device_type PCI_BUS_LEGACY; | |
121 | class pci_host_device : public pci_bridge_device { | |
122 | public: | |
123 | DECLARE_ADDRESS_MAP(io_configuration_access_map, 32); | |
66 | 124 | |
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); | |
67 | 126 | |
68 | /*************************************************************************** | |
69 | DEVICE CONFIGURATION MACROS | |
70 | ***************************************************************************/ | |
127 | protected: | |
128 | address_space *memory_space, *io_space; | |
71 | 129 | |
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; | |
79 | 132 | |
133 | virtual void device_start(); | |
134 | virtual void device_reset(); | |
80 | 135 | |
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 | ||
151 | class pci_root_device : public device_t { | |
152 | public: | |
153 | pci_root_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
154 | ||
155 | protected: | |
156 | virtual void device_start(); | |
157 | virtual void device_reset(); | |
158 | }; | |
159 | ||
160 | extern const device_type PCI_ROOT; | |
161 | extern const device_type PCI_BRIDGE; | |
162 | ||
163 | #endif |
r0 | r241782 | |
---|---|---|
1 | #include "pci-ac97.h" | |
2 | ||
3 | const device_type AC97 = &device_creator<ac97_device>; | |
4 | ||
5 | DEVICE_ADDRESS_MAP_START(native_audio_mixer_map, 32, ac97_device) | |
6 | ADDRESS_MAP_END | |
7 | ||
8 | DEVICE_ADDRESS_MAP_START(native_audio_bus_mastering_map, 32, ac97_device) | |
9 | ADDRESS_MAP_END | |
10 | ||
11 | DEVICE_ADDRESS_MAP_START(mixer_map, 32, ac97_device) | |
12 | ADDRESS_MAP_END | |
13 | ||
14 | DEVICE_ADDRESS_MAP_START(bus_mastering_map, 32, ac97_device) | |
15 | ADDRESS_MAP_END | |
16 | ||
17 | ac97_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 | ||
22 | void 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 | ||
31 | void ac97_device::device_reset() | |
32 | { | |
33 | pci_device::device_reset(); | |
34 | } |
r0 | r241782 | |
---|---|---|
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 | ||
9 | class ac97_device : public pci_device { | |
10 | public: | |
11 | ac97_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
12 | ||
13 | protected: | |
14 | virtual void device_start(); | |
15 | virtual void device_reset(); | |
16 | ||
17 | private: | |
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 | ||
24 | extern const device_type AC97; | |
25 | ||
26 | #endif |
r0 | r241782 | |
---|---|---|
1 | #include "sb0400.h" | |
2 | ||
3 | const device_type SB0400 = &device_creator<sb0400_device>; | |
4 | ||
5 | DEVICE_ADDRESS_MAP_START(map, 32, sb0400_device) | |
6 | ADDRESS_MAP_END | |
7 | ||
8 | sb0400_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 | ||
13 | void sb0400_device::device_start() | |
14 | { | |
15 | pci_device::device_start(); | |
16 | add_map(64, M_IO, FUNC(sb0400_device::map)); | |
17 | } | |
18 | ||
19 | void sb0400_device::device_reset() | |
20 | { | |
21 | pci_device::device_reset(); | |
22 | } |
r0 | r241782 | |
---|---|---|
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 | ||
11 | class sb0400_device : public pci_device { | |
12 | public: | |
13 | sb0400_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
14 | ||
15 | protected: | |
16 | virtual void device_start(); | |
17 | virtual void device_reset(); | |
18 | ||
19 | private: | |
20 | DECLARE_ADDRESS_MAP(map, 32); | |
21 | }; | |
22 | ||
23 | extern const device_type SB0400; | |
24 | ||
25 | #endif |
r241781 | r241782 | |
---|---|---|
70 | 70 | |
71 | 71 | |
72 | 72 | #------------------------------------------------- |
73 | # AC97 | |
74 | #@src/emu/sound/pic-ac97.h,SOUNDS += AC97 | |
75 | #------------------------------------------------- | |
76 | ||
77 | ifneq ($(filter AC97,$(SOUNDS)),) | |
78 | SOUNDOBJS += $(SOUNDOBJ)/pci-ac97.o | |
79 | endif | |
80 | ||
81 | ||
82 | ||
83 | #------------------------------------------------- | |
73 | 84 | # Apple custom sound chips |
74 | 85 | #@src/emu/sound/asc.h,SOUNDS += ASC |
75 | 86 | #@src/emu/sound/awacs.h,SOUNDS += AWACS |
r241781 | r241782 | |
123 | 134 | |
124 | 135 | |
125 | 136 | #------------------------------------------------- |
137 | #------------------------------------------------- | |
138 | # AC97 | |
139 | #@src/emu/sound/pic-ac97.h,SOUNDS += AC97 | |
140 | #------------------------------------------------- | |
141 | ||
142 | ifneq ($(filter AC97,$(SOUNDS)),) | |
143 | SOUNDOBJS += $(SOUNDOBJ)/pci-ac97.o | |
144 | endif | |
126 | 145 | # CEM 3394 analog synthesizer chip |
127 | 146 | #@src/emu/sound/cem3394.h,SOUNDS += CEM3394 |
128 | 147 | #------------------------------------------------- |
r241781 | r241782 | |
134 | 153 | |
135 | 154 | |
136 | 155 | #------------------------------------------------- |
156 | # Creative Labs SB0400 Audigy2 Value | |
157 | #@src/emu/sound/sb0400.h,SOUNDS += AC97 | |
158 | #------------------------------------------------- | |
159 | ||
160 | ifneq ($(filter SB0400,$(SOUNDS)),) | |
161 | SOUNDOBJS += $(SOUNDOBJ)/sb0400.o | |
162 | endif | |
163 | ||
164 | ||
165 | ||
166 | #------------------------------------------------- | |
137 | 167 | # Data East custom sound chips |
138 | 168 | #@src/emu/sound/bsmt2000.h,SOUNDS += BSMT2000 |
139 | 169 | #------------------------------------------------- |
r241781 | r241782 | |
---|---|---|
443 | 443 | { |
444 | 444 | gfx_element *gfx = decoder->gfx(_gfxnum); |
445 | 445 | int code = rawcode % gfx->elements(); |
446 | assert(rawcolor < gfx->colors()); // TEMPORARY ASSERT | |
446 | 447 | pen_data = gfx->get_data(code); |
447 | palette_base = gfx->colorbase() + gfx->granularity() * rawcolor; | |
448 | palette_base = gfx->colorbase() + gfx->granularity() * (rawcolor % gfx->colors()); | |
448 | 449 | flags = _flags; |
449 | 450 | gfxnum = _gfxnum; |
450 | 451 | } |
r0 | r241782 | |
---|---|---|
1 | #include "gf6800gt.h" | |
2 | ||
3 | const device_type GEFORCE_6800GT = &device_creator<geforce_6800gt_device>; | |
4 | ||
5 | DEVICE_ADDRESS_MAP_START(map1, 32, geforce_6800gt_device) | |
6 | ADDRESS_MAP_END | |
7 | ||
8 | DEVICE_ADDRESS_MAP_START(map2, 32, geforce_6800gt_device) | |
9 | ADDRESS_MAP_END | |
10 | ||
11 | DEVICE_ADDRESS_MAP_START(map3, 32, geforce_6800gt_device) | |
12 | ADDRESS_MAP_END | |
13 | ||
14 | geforce_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 | ||
19 | void 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 | ||
27 | void geforce_6800gt_device::device_reset() | |
28 | { | |
29 | pci_device::device_reset(); | |
30 | } |
r0 | r241782 | |
---|---|---|
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 | ||
9 | class geforce_6800gt_device : public pci_device { | |
10 | public: | |
11 | geforce_6800gt_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
12 | ||
13 | protected: | |
14 | virtual void device_start(); | |
15 | virtual void device_reset(); | |
16 | ||
17 | private: | |
18 | DECLARE_ADDRESS_MAP(map1, 32); | |
19 | DECLARE_ADDRESS_MAP(map2, 32); | |
20 | DECLARE_ADDRESS_MAP(map3, 32); | |
21 | }; | |
22 | ||
23 | extern const device_type GEFORCE_6800GT; | |
24 | ||
25 | #endif |
r241781 | r241782 | |
---|---|---|
262 | 262 | |
263 | 263 | void cirrus_vga_device::device_start() |
264 | 264 | { |
265 | vga_device::zero(); | |
266 | memset(&svga, 0, sizeof(svga)); | |
265 | zero(); | |
267 | 266 | |
268 | 267 | int i; |
269 | 268 | for (i = 0; i < 0x100; i++) |
r241781 | r241782 | |
---|---|---|
371 | 371 | |
372 | 372 | inline void upd7220_device::recompute_parameters() |
373 | 373 | { |
374 | int horiz_mult; | |
374 | int horiz_mult = 16, vert_mult = 1; | |
375 | 375 | /* TODO: assume that the pitch also controls number of horizontal pixels in a single cell */ |
376 | 376 | // 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) | |
379 | 378 | 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 | } | |
382 | 385 | |
383 | 386 | 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; | |
385 | 388 | |
386 | 389 | //printf("%d %d %d %d\n",m_hs,m_hbp,m_aw,m_hfp); |
387 | 390 | //printf("%d %d\n",m_aw * 8,m_pitch * 8); |
r241781 | r241782 | |
394 | 397 | rectangle visarea; |
395 | 398 | |
396 | 399 | visarea.min_x = 0; //(m_hs + m_hbp) * 8; |
397 | visarea.min_y = | |
400 | visarea.min_y = m_vbp; //m_vs + m_vbp; | |
398 | 401 | 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; | |
400 | 403 | |
401 | 404 | LOG(("uPD7220 '%s' Screen: %u x %u @ %f Hz\n", tag(), horiz_pix_total, vert_pix_total, 1 / ATTOSECONDS_TO_DOUBLE(refresh))); |
402 | 405 | LOG(("Visible Area: (%u, %u) - (%u, %u)\n", visarea.min_x, visarea.min_y, visarea.max_x, visarea.max_y)); |
r241781 | r241782 | |
798 | 801 | |
799 | 802 | void upd7220_device::draw_line(int x, int y) |
800 | 803 | { |
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; | |
806 | 807 | UINT16 pattern = (m_ra[8]) | (m_ra[9]<<8); |
807 | | |
808 | const int dot_dir[4] = {1, -1, -1, 1}; | |
808 | 809 | |
809 | 810 | 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)); |
810 | 811 | |
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 | } | |
812 | 832 | |
813 | | |
833 | switch(m_figs.m_dir & 3) | |
814 | 834 | { |
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; | |
821 | 844 | } |
822 | 845 | |
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 | ||
827 | 846 | m_ead = (x >> 4) + (y * (m_pitch >> m_figs.m_gd)); |
828 | 847 | m_dad = x & 0x0f; |
829 | 848 | } |
r241781 | r241782 | |
854 | 873 | |
855 | 874 | 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)); |
856 | 875 | |
857 | for(int i = 0; i < m_figs.m_dc; i++) | |
876 | for(int i = 0; i <= m_figs.m_dc; i++) | |
858 | 877 | { |
859 | 878 | if(i >= m_figs.m_dm) |
860 | 879 | { |
r241781 | r241782 | |
882 | 901 | { |
883 | 902 | case 1: |
884 | 903 | 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]; | |
886 | 905 | break; |
887 | 906 | 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]; | |
889 | 908 | break; |
890 | 909 | } |
891 | 910 | |
r241781 | r241782 | |
1535 | 1554 | addr = sad + (y * m_pitch); |
1536 | 1555 | |
1537 | 1556 | 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); | |
1539 | 1558 | } |
1540 | 1559 | |
1541 | 1560 | sy = y + 1; |
r241781 | r241782 | |
1547 | 1566 | // draw_graphics_line - |
1548 | 1567 | //------------------------------------------------- |
1549 | 1568 | |
1550 | void upd7220_device::draw_graphics_line(bitmap_rgb32 &bitmap, UINT32 addr, int y, int wd) | |
1569 | void upd7220_device::draw_graphics_line(bitmap_rgb32 &bitmap, UINT32 addr, int y, int wd, int pitch) | |
1551 | 1570 | { |
1552 | int sx; | |
1571 | int sx, al = bitmap.cliprect().height(); | |
1553 | 1572 | |
1554 | for (sx = 0; sx < | |
1573 | for (sx = 0; sx < pitch; sx++) | |
1555 | 1574 | { |
1556 | if((sx << 3) < m_aw * 16 && y < | |
1575 | if((sx << 3) < m_aw * 16 && y < al) | |
1557 | 1576 | m_display_cb(bitmap, y, sx << 3, addr); |
1558 | 1577 | |
1559 | 1578 | addr+= wd + 1; |
r241781 | r241782 | |
1571 | 1590 | UINT16 len; |
1572 | 1591 | int im, wd, area; |
1573 | 1592 | 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; | |
1574 | 1595 | |
1575 | 1596 | for (area = 0; area < 4; area++) |
1576 | 1597 | { |
r241781 | r241782 | |
1583 | 1604 | if(area >= 3) // TODO: most likely to be correct, Quarth (PC-98xx) definitely draws with area 2. We might see an area 3 someday ... |
1584 | 1605 | break; |
1585 | 1606 | |
1607 | if(!interlace) | |
1608 | len <<= 1; | |
1609 | ||
1586 | 1610 | for (y = 0; y < len; y++) |
1587 | 1611 | { |
1588 | 1612 | /* TODO: again correct? |
r241781 | r241782 | |
1592 | 1616 | addr = ((sad << 1) & 0x3ffff) + (y * (m_pitch << (im ? 0 : 1))); |
1593 | 1617 | |
1594 | 1618 | 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)); | |
1596 | 1620 | } |
1597 | 1621 | } |
1598 | 1622 | else |
r241781 | r241782 | |
1606 | 1630 | addr = (sad & 0x3ffff) + ((y / m_lr) * m_pitch); |
1607 | 1631 | |
1608 | 1632 | 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); | |
1610 | 1634 | } |
1611 | 1635 | } |
1612 | 1636 | } |
r241781 | r241782 | |
---|---|---|
150 | 150 | void process_fifo(); |
151 | 151 | void continue_command(); |
152 | 152 | 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); | |
154 | 154 | void update_graphics(bitmap_rgb32 &bitmap, const rectangle &cliprect, int force_bitmap); |
155 | 155 | |
156 | 156 | upd7220_display_pixels_delegate m_display_cb; |
r241781 | r241782 | |
---|---|---|
174 | 174 | |
175 | 175 | #------------------------------------------------- |
176 | 176 | # |
177 | #@src/emu/video/gf6800gt.h,VIDEOS += GF6800GT | |
178 | #------------------------------------------------- | |
179 | ||
180 | ifneq ($(filter GF6800GT,$(VIDEOS)),) | |
181 | VIDEOOBJS+= $(VIDEOOBJ)/gf6800gt.o | |
182 | endif | |
183 | ||
184 | #------------------------------------------------- | |
185 | # | |
177 | 186 | #@src/emu/video/h63484.h,VIDEOS += H63484 |
178 | 187 | #------------------------------------------------- |
179 | 188 |
r241781 | r241782 | |
---|---|---|
4 | 4 | |
5 | 5 | cbm_crt.c |
6 | 6 | |
7 | Commodore C64 cartridge images | |
7 | Commodore C64 cartridge images in .CRT format | |
8 | 8 | |
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 | ||
9 | 40 | *********************************************************************/ |
10 | 41 | |
11 | 42 | #include "cbm_crt.h" |
12 | 43 | |
13 | 44 | |
14 | ||
15 | 45 | //************************************************************************** |
16 | 46 | // MACROS/CONSTANTS |
17 | 47 | //************************************************************************** |
r241781 | r241782 | |
22 | 52 | // slot names for the C64 cartridge types |
23 | 53 | static const char * CRT_C64_SLOT_NAMES[_CRT_C64_COUNT] = |
24 | 54 | { |
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 | |
81 | 111 | }; |
82 | 112 | |
83 | 113 |
r241781 | r241782 | |
---|---|---|
50 | 50 | |
51 | 51 | const char *esqimg_format::name() const |
52 | 52 | { |
53 | return " | |
53 | return "esq16"; | |
54 | 54 | } |
55 | 55 | |
56 | 56 | const char *esqimg_format::description() const |
r241781 | r241782 | |
---|---|---|
52 | 52 | |
53 | 53 | const char *esq8img_format::name() const |
54 | 54 | { |
55 | return " | |
55 | return "esq8"; | |
56 | 56 | } |
57 | 57 | |
58 | 58 | const char *esq8img_format::description() const |
r241781 | r241782 | |
---|---|---|
1071 | 1071 | type == CRC_CBM_START || |
1072 | 1072 | type == CRC_MACHEAD_START || |
1073 | 1073 | type == CRC_FCS_START || |
1074 | type == CRC_VICTOR_HDR_START || | |
1075 | type == CRC_VICTOR_DATA_START || | |
1074 | 1076 | type == CRC_END || |
1075 | 1077 | type == SECTOR_LOOP_START || |
1076 | 1078 | type == SECTOR_LOOP_END || |
r241781 | r241782 | |
1112 | 1114 | case CRC_FCS_START: |
1113 | 1115 | crcs[desc[i].p1].type = CRC_FCS; |
1114 | 1116 | 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; | |
1115 | 1123 | } |
1116 | 1124 | |
1117 | 1125 | for(int i=0; desc[i].type != END; i++) |
r241781 | r241782 | |
1131 | 1139 | case CRC_CBM: return 10; |
1132 | 1140 | case CRC_MACHEAD: return 8; |
1133 | 1141 | case CRC_FCS: return 20; |
1142 | case CRC_VICTOR_HDR: return 10; | |
1143 | case CRC_VICTOR_DATA: return 20; | |
1134 | 1144 | default: return 0; |
1135 | 1145 | } |
1136 | 1146 | } |
r241781 | r241782 | |
1271 | 1281 | // TODO |
1272 | 1282 | } |
1273 | 1283 | |
1284 | void 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 | ||
1294 | void 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 | ||
1274 | 1305 | void floppy_image_format_t::fixup_crcs(UINT32 *buffer, gen_crc_info *crcs) |
1275 | 1306 | { |
1276 | 1307 | for(int i=0; i != MAX_CRC_COUNT; i++) |
1277 | 1308 | if(crcs[i].write != -1) { |
1278 | 1309 | 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; | |
1285 | 1318 | } |
1286 | 1319 | if(crcs[i].fixup_mfm_clock) { |
1287 | 1320 | int offset = crcs[i].write + crc_cells_size(crcs[i].type); |
r241781 | r241782 | |
1403 | 1436 | raw_w(buffer, offset, desc[index].p2, desc[index].p1); |
1404 | 1437 | break; |
1405 | 1438 | |
1439 | case SYNC_GCR5: | |
1440 | for(int i=0; i<desc[index].p1; i++) | |
1441 | raw_w(buffer, offset, 10, 0xffff); | |
1442 | break; | |
1443 | ||
1406 | 1444 | case TRACK_ID: |
1407 | 1445 | mfm_w(buffer, offset, 8, track); |
1408 | 1446 | break; |
r241781 | r241782 | |
1427 | 1465 | _8n1_w(buffer, offset, 8, track); |
1428 | 1466 | break; |
1429 | 1467 | |
1468 | case TRACK_ID_VICTOR_GCR5: | |
1469 | gcr5_w(buffer, offset, 10, 1 + track + (head * 0x80)); | |
1470 | break; | |
1471 | ||
1430 | 1472 | case HEAD_ID: |
1431 | 1473 | mfm_w(buffer, offset, 8, head); |
1432 | 1474 | break; |
r241781 | r241782 | |
1536 | 1578 | case CRC_CCITT_FM_START: |
1537 | 1579 | case CRC_MACHEAD_START: |
1538 | 1580 | case CRC_FCS_START: |
1581 | case CRC_VICTOR_HDR_START: | |
1582 | case CRC_VICTOR_DATA_START: | |
1539 | 1583 | crcs[desc[index].p1].start = offset; |
1540 | 1584 | break; |
1541 | 1585 |
r241781 | r241782 | |
---|---|---|
307 | 307 | RAW, //!< One 16 bits word in p1 to be written raw, msb first, repeated p2 times |
308 | 308 | RAWBYTE, //!< One 8 bit byte in p1 to be written raw, msb first, repeated p2 times |
309 | 309 | RAWBITS, //!< A value of p2 bits in p1 to be copied as-is, msb first |
310 | SYNC_GCR5, //!< gcr5 sync byte | |
310 | 311 | TRACK_ID, //!< Track id byte, mfm-encoded |
311 | 312 | TRACK_ID_FM, //!< Track id byte, fm-encoded |
312 | 313 | TRACK_ID_DOS2_GCR5, //!< Track id byte, gcr5-encoded |
313 | 314 | TRACK_ID_DOS25_GCR5, //!< Track id byte, gcr5-encoded |
314 | 315 | TRACK_ID_GCR6, //!< Track id low 6 bits, gcr6-encoded |
315 | 316 | TRACK_ID_8N1, //!< Track id byte, 8N1-encoded |
317 | TRACK_ID_VICTOR_GCR5, //!< Track id byte, gcr5-encoded | |
316 | 318 | HEAD_ID, //!< Head id byte, mfm-encoded |
317 | 319 | HEAD_ID_FM, //!< Head id byte, fm-encoded |
318 | 320 | HEAD_ID_SWAP, //!< Head id byte swapped (0->1, 1->0), mfm-encoded |
r241781 | r241782 | |
346 | 348 | CRC_CBM_START, //!< Start a CBM checksum calculation (xor of original data values, gcr5-encoded), p1 = crc id |
347 | 349 | CRC_MACHEAD_START, //!< Start of the mac gcr6 sector header checksum calculation (xor of pre-encode 6-bits values, gcr6-encoded) |
348 | 350 | 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 | |
349 | 353 | CRC_END, //!< End the checksum, p1 = crc id |
350 | 354 | CRC, //!< Write a checksum in the apporpriate format, p1 = crc id |
351 | 355 | |
r241781 | r241782 | |
565 | 569 | UINT8 sbyte_mfm_r(const UINT8 *bitstream, int &pos, int track_size); |
566 | 570 | |
567 | 571 | private: |
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 }; | |
569 | 573 | enum { MAX_CRC_COUNT = 64 }; |
570 | 574 | |
571 | 575 | //! Holds data used internally for generating CRCs. |
r241781 | r241782 | |
587 | 591 | void fixup_crc_ccitt_fm(UINT32 *buffer, const gen_crc_info *crc); |
588 | 592 | void fixup_crc_machead(UINT32 *buffer, const gen_crc_info *crc); |
589 | 593 | 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); | |
590 | 596 | void fixup_crcs(UINT32 *buffer, gen_crc_info *crcs); |
591 | 597 | void collect_crcs(const desc_e *desc, gen_crc_info *crcs); |
592 | 598 |
r241781 | r241782 | |
---|---|---|
1 | 1 | /* |
2 | * N | |
2 | * NEC PC-6001 cassette format handling | |
3 | 3 | */ |
4 | 4 | |
5 | 5 | #include "p6001_cas.h" |
r241781 | r241782 | |
---|---|---|
1 | 1 | /* |
2 | * N | |
2 | * NEC PC-6001 cassette format handling | |
3 | 3 | */ |
4 | 4 | |
5 | 5 | #ifndef PC6001_CAS_H_ |
r241781 | r241782 | |
---|---|---|
17 | 17 | |
18 | 18 | const char *pc98fdi_format::name() const |
19 | 19 | { |
20 | return "pc98 | |
20 | return "pc98_fdi"; | |
21 | 21 | } |
22 | 22 | |
23 | 23 | const char *pc98fdi_format::description() const |
r0 | r241782 | |
---|---|---|
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 | ||
47 | victor9k_format::victor9k_format() | |
48 | { | |
49 | } | |
50 | ||
51 | const char *victor9k_format::name() const | |
52 | { | |
53 | return "victor9k"; | |
54 | } | |
55 | ||
56 | const char *victor9k_format::description() const | |
57 | { | |
58 | return "Victor 9000 disk image"; | |
59 | } | |
60 | ||
61 | const char *victor9k_format::extensions() const | |
62 | { | |
63 | return "img"; | |
64 | } | |
65 | ||
66 | int 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 | ||
77 | int 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 | ||
87 | floppy_image_format_t::desc_e* victor9k_format::get_sector_desc(const format &f, int ¤t_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 | ||
119 | void 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 | ||
130 | bool 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 | ||
178 | bool victor9k_format::supports_save() const | |
179 | { | |
180 | return false; | |
181 | } | |
182 | ||
183 | int victor9k_format::get_rpm(int head, int track) | |
184 | { | |
185 | return rpm[speed_zone[head][track]]; | |
186 | } | |
187 | ||
188 | const 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 | ||
198 | const UINT32 victor9k_format::cell_size[9] = | |
199 | { | |
200 | 1789, 1896, 2009, 2130, 2272, 2428, 2613, 2847, 2961 | |
201 | }; | |
202 | ||
203 | const 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 | ||
227 | const 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 | ||
251 | const int victor9k_format::rpm[9] = | |
252 | { | |
253 | 252, 267, 283, 300, 320, 342, 368, 401, 417 | |
254 | }; | |
255 | ||
256 | const floppy_format_type FLOPPY_VICTOR_9000_FORMAT = &floppy_image_format_creator<victor9k_format>; |
r0 | r241782 | |
---|---|---|
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 | ||
16 | class victor9k_format : public floppy_image_format_t { | |
17 | public: | |
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 ¤t_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 | ||
43 | protected: | |
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 | ||
52 | extern const floppy_format_type FLOPPY_VICTOR_9000_FORMAT; | |
53 | ||
54 | ||
55 | FLOPPY_IDENTIFY( victor9k_dsk_identify ); | |
56 | ||
57 | FLOPPY_CONSTRUCT( victor9k_dsk_construct ); | |
58 | ||
59 | #endif |
r241781 | r241782 | |
---|---|---|
215 | 215 | $(LIBOBJ)/formats/tzx_cas.o \ |
216 | 216 | $(LIBOBJ)/formats/uef_cas.o \ |
217 | 217 | $(LIBOBJ)/formats/upd765_dsk.o \ |
218 | $(LIBOBJ)/formats/victor9k_dsk.o\ | |
218 | 219 | $(LIBOBJ)/formats/vg5k_cas.o \ |
219 | 220 | $(LIBOBJ)/formats/vt_cas.o \ |
220 | 221 | $(LIBOBJ)/formats/vt_dsk.o \ |
r241781 | r241782 | |
---|---|---|
8494 | 8494 | /* |
8495 | 8495 | ** Disable MMAP on platforms where it is known to not work |
8496 | 8496 | */ |
8497 | #if defined(__OpenBSD__) || defined(__QNXNTO__) | |
8497 | #if defined(__OpenBSD__) || defined(__QNXNTO__) || defined(__OS2__) | |
8498 | 8498 | # undef SQLITE_MAX_MMAP_SIZE |
8499 | 8499 | # define SQLITE_MAX_MMAP_SIZE 0 |
8500 | # ifdef __OS2__ | |
8501 | # undef SQLITE_OMIT_WAL | |
8502 | # define SQLITE_OMIT_WAL 0 | |
8503 | # endif | |
8500 | 8504 | #endif |
8501 | 8505 | |
8502 | 8506 | /* |
r241781 | r241782 | |
---|---|---|
72 | 72 | #include <stdlib.h> |
73 | 73 | #include <string.h> |
74 | 74 | #include <time.h> |
75 | #ifdef __OS2__ | |
76 | #include <sys/time.h> // struct timeval | |
77 | #endif | |
75 | 78 | #include <signal.h> |
76 | 79 | |
77 | 80 | #ifdef _WIN32 |
r241781 | r241782 | |
120 | 123 | #include <sys/socket.h> |
121 | 124 | #include <sys/select.h> |
122 | 125 | #define closesocket(x) close(x) |
126 | #ifdef __OS2__ | |
127 | typedef int socklen_t; | |
128 | #else | |
123 | 129 | #define __cdecl |
130 | #endif | |
124 | 131 | #define INVALID_SOCKET (-1) |
125 | 132 | #define to64(x) strtoll(x, NULL, 10) |
126 | 133 | typedef int sock_t; |
r241781 | r241782 | |
1170 | 1177 | #include <dlfcn.h> |
1171 | 1178 | #include <inttypes.h> |
1172 | 1179 | #include <pwd.h> |
1180 | #ifndef __OS2__ | |
1173 | 1181 | #define O_BINARY 0 |
1182 | #endif | |
1174 | 1183 | #define INT64_FMT PRId64 |
1175 | 1184 | typedef struct stat file_stat_t; |
1176 | 1185 | typedef pid_t process_id_t; |
r241781 | r241782 | |
5152 | 5161 | #define MAP_FAILED NULL |
5153 | 5162 | #define MAP_PRIVATE 0 |
5154 | 5163 | #define PROT_READ 0 |
5164 | #elif defined(__OS2__) | |
5165 | static 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 | |
5155 | 5186 | #else |
5156 | 5187 | #include <sys/mman.h> |
5157 | 5188 | #endif |
r241781 | r241782 | |
---|---|---|
39 | 39 | |
40 | 40 | void harddriv_state::update_68k_interrupts() |
41 | 41 | { |
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); | |
44 | 44 | } |
45 | 45 | |
46 | 46 | |
r241781 | r241782 | |
82 | 82 | |
83 | 83 | WRITE16_MEMBER(harddriv_state::hd68k_snd_reset_w) |
84 | 84 | { |
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); | |
87 | 87 | m_mainflag = m_soundflag = 0; |
88 | 88 | update_68k_interrupts(); |
89 | 89 | logerror("%06X:Reset sound\n", space.device().safe_pcbase()); |
r241781 | r241782 | |
235 | 235 | |
236 | 236 | WRITE16_MEMBER(harddriv_state::hdsnd68k_320ports_w) |
237 | 237 | { |
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); | |
239 | 239 | } |
240 | 240 | |
241 | 241 |
r241781 | r241782 | |
---|---|---|
428 | 428 | MCFG_CPU_PROGRAM_MAP(main_map) |
429 | 429 | MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen) |
430 | 430 | |
431 | MCFG_SLAPSTIC_ADD("slapstic") | |
432 | ||
431 | 433 | MCFG_MACHINE_START_OVERRIDE(atarig1_state,atarig1) |
432 | 434 | MCFG_MACHINE_RESET_OVERRIDE(atarig1_state,atarig1) |
433 | 435 |
r241781 | r241782 | |
---|---|---|
713 | 713 | MCFG_CPU_PROGRAM_MAP(main_map) |
714 | 714 | MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen) |
715 | 715 | |
716 | MCFG_SLAPSTIC_ADD("slapstic") | |
717 | ||
716 | 718 | MCFG_CPU_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8) |
717 | 719 | MCFG_CPU_PROGRAM_MAP(sound_map) |
718 | 720 |
r241781 | r241782 | |
---|---|---|
126 | 126 | |
127 | 127 | |
128 | 128 | #include "emu.h" |
129 | #include "includes/slapstic.h" | |
130 | 129 | #include "includes/atarisy2.h" |
131 | 130 | #include "sound/tms5220.h" |
132 | 131 | #include "sound/2151intf.h" |
r241781 | r241782 | |
222 | 221 | MACHINE_RESET_MEMBER(atarisy2_state,atarisy2) |
223 | 222 | { |
224 | 223 | atarigen_state::machine_reset(); |
225 | slapstic_reset(); | |
224 | m_slapstic->slapstic_reset(); | |
226 | 225 | scanline_timer_reset(*m_screen, 64); |
227 | 226 | |
228 | 227 | m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(atarisy2_state::atarisy2_direct_handler), this)); |
r241781 | r241782 | |
1208 | 1207 | MCFG_CPU_PROGRAM_MAP(sound_map) |
1209 | 1208 | MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)MASTER_CLOCK/2/16/16/16/10) |
1210 | 1209 | |
1210 | MCFG_SLAPSTIC_ADD("slapstic") | |
1211 | ||
1211 | 1212 | MCFG_MACHINE_START_OVERRIDE(atarisy2_state,atarisy2) |
1212 | 1213 | MCFG_MACHINE_RESET_OVERRIDE(atarisy2_state,atarisy2) |
1213 | 1214 | |
r241781 | r241782 | |
3143 | 3144 | int i; |
3144 | 3145 | UINT8 *cpu1 = memregion("maincpu")->base(); |
3145 | 3146 | |
3146 | slapstic_init(machine(), 105); | |
3147 | m_slapstic->slapstic_init(machine(), 105); | |
3147 | 3148 | |
3148 | 3149 | /* expand the 16k program ROMs into full 64k chunks */ |
3149 | 3150 | for (i = 0x10000; i < 0x90000; i += 0x20000) |
r241781 | r241782 | |
3164 | 3165 | /* without the default EEPROM, 720 hangs at startup due to communication |
3165 | 3166 | issues with the sound CPU; temporarily increasing the sound CPU frequency |
3166 | 3167 | to ~2.2MHz "fixes" the problem */ |
3167 | slapstic_init(machine(), 107); | |
3168 | m_slapstic->slapstic_init(machine(), 107); | |
3168 | 3169 | |
3169 | 3170 | m_pedal_count = -1; |
3170 | 3171 | m_has_tms5220 = 1; |
r241781 | r241782 | |
3177 | 3178 | int i; |
3178 | 3179 | UINT8 *cpu1 = memregion("maincpu")->base(); |
3179 | 3180 | |
3180 | slapstic_init(machine(), 108); | |
3181 | m_slapstic->slapstic_init(machine(), 108); | |
3181 | 3182 | |
3182 | 3183 | /* expand the 32k program ROMs into full 64k chunks */ |
3183 | 3184 | for (i = 0x10000; i < 0x90000; i += 0x20000) |
r241781 | r241782 | |
3193 | 3194 | int i; |
3194 | 3195 | UINT8 *cpu1 = memregion("maincpu")->base(); |
3195 | 3196 | |
3196 | slapstic_init(machine(), 109); | |
3197 | m_slapstic->slapstic_init(machine(), 109); | |
3197 | 3198 | |
3198 | 3199 | /* expand the 32k program ROMs into full 64k chunks */ |
3199 | 3200 | for (i = 0x10000; i < 0x90000; i += 0x20000) |
r241781 | r241782 | |
3206 | 3207 | |
3207 | 3208 | DRIVER_INIT_MEMBER(atarisy2_state,apb) |
3208 | 3209 | { |
3209 | slapstic_init(machine(), 110); | |
3210 | m_slapstic->slapstic_init(machine(), 110); | |
3210 | 3211 | |
3211 | 3212 | m_pedal_count = 2; |
3212 | 3213 | m_has_tms5220 = 1; |
r241781 | r241782 | |
---|---|---|
49 | 49 | |
50 | 50 | #include "emu.h" |
51 | 51 | #include "cpu/m6502/m6502.h" |
52 | #include "includes/slapstic.h" | |
53 | 52 | #include "includes/atetris.h" |
54 | 53 | #include "sound/sn76496.h" |
55 | 54 | #include "sound/pokey.h" |
r241781 | r241782 | |
115 | 114 | void atetris_state::machine_reset() |
116 | 115 | { |
117 | 116 | /* 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; | |
120 | 119 | reset_bank(); |
121 | 120 | |
122 | 121 | /* start interrupts going (32V clocked by 16V) */ |
r241781 | r241782 | |
134 | 133 | READ8_MEMBER(atetris_state::atetris_slapstic_r) |
135 | 134 | { |
136 | 135 | 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; | |
138 | 137 | |
139 | 138 | /* update for the new bank */ |
140 | 139 | if (new_bank != m_current_bank) |
r241781 | r241782 | |
308 | 307 | MCFG_CPU_ADD("maincpu", M6502,MASTER_CLOCK/8) |
309 | 308 | MCFG_CPU_PROGRAM_MAP(main_map) |
310 | 309 | |
310 | MCFG_SLAPSTIC_ADD("slapstic") | |
311 | ||
311 | 312 | MCFG_NVRAM_ADD_1FILL("nvram") |
312 | 313 | |
313 | 314 | /* video hardware */ |
r241781 | r241782 | |
456 | 457 | { |
457 | 458 | UINT8 *rgn = memregion("maincpu")->base(); |
458 | 459 | |
459 | slapstic_init(machine(), 101); | |
460 | m_slapstic_device->slapstic_init(machine(), 101); | |
460 | 461 | m_slapstic_source = &rgn[0x10000]; |
461 | 462 | m_slapstic_base = &rgn[0x04000]; |
462 | 463 | } |
r241781 | r241782 | |
---|---|---|
1 | 1 | /*************************************************************************** |
2 | 2 | |
3 | Tekunon Kougyou Beam Invader hardware | |
3 | Tekunon Kougyou(Teknon Kogyo) Beam Invader hardware | |
4 | 4 | |
5 | 5 | driver by Zsolt Vasvari |
6 | 6 | |
r241781 | r241782 | |
385 | 385 | * |
386 | 386 | *************************************/ |
387 | 387 | |
388 | GAMEL( 1979, beaminv, 0, beaminv, beaminv, driver_device, | |
388 | GAMEL( 1979, beaminv, 0, beaminv, beaminv, driver_device, 0, ROT270, "Teknon Kogyo", "Beam Invader", GAME_NO_SOUND | GAME_SUPPORTS_SAVE, layout_beaminv ) | |
389 | 389 | GAMEL( 1979, pacominv, beaminv, beaminv, pacominv, driver_device, 0, ROT270, "Pacom Corporation", "Pacom Invader", GAME_NO_SOUND | GAME_SUPPORTS_SAVE, layout_beaminv ) |
r241781 | r241782 | |
---|---|---|
121 | 121 | |
122 | 122 | #include "emu.h" |
123 | 123 | #include "cpu/i386/i386.h" |
124 | #include "machine/pci.h" | |
124 | #include "machine/lpci.h" | |
125 | 125 | #include "machine/pckeybrd.h" |
126 | 126 | #include "machine/idectrl.h" |
127 | 127 | #include "video/pc_vga.h" |
128 | 128 | #include "sound/dac.h" |
129 | 129 | #include "machine/pcshare.h" |
130 | #include "machine/ds128x.h" | |
130 | 131 | #include "bus/isa/trident.h" |
131 | 132 | |
132 | 133 | |
r241781 | r241782 | |
661 | 662 | /* video hardware */ |
662 | 663 | MCFG_FRAGMENT_ADD( pcvideo_trident_vga ) |
663 | 664 | |
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 | ||
664 | 670 | /* sound hardware */ |
665 | 671 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker") |
666 | 672 | MCFG_DAC_ADD("dac_l") |
r241781 | r241782 | |
---|---|---|
358 | 358 | |
359 | 359 | #include "emu.h" |
360 | 360 | #include "cpu/i386/i386.h" |
361 | #include "machine/pci.h" | |
361 | #include "machine/lpci.h" | |
362 | 362 | #include "machine/pic8259.h" |
363 | 363 | #include "machine/pit8253.h" |
364 | 364 | #include "machine/idectrl.h" |
r241781 | r241782 | |
---|---|---|
313 | 313 | |
314 | 314 | #include "emu.h" |
315 | 315 | #include "cpu/powerpc/ppc.h" |
316 | #include "machine/pci.h" | |
316 | #include "machine/lpci.h" | |
317 | 317 | #include "machine/ataintf.h" |
318 | 318 | #include "machine/idehd.h" |
319 | 319 | #include "machine/jvshost.h" |
r241781 | r241782 | |
---|---|---|
18 | 18 | - i8237 purpose is unknown (missing ROM for comms?). |
19 | 19 | - verify zooming etc. our current algorithm is a bit ugly for text |
20 | 20 | |
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 | |
22 | 26 | ======================================================================================================= |
23 | 27 | |
24 | 28 | Cool Riders |
25 | 29 | Sega 1994 |
26 | 30 | |
27 | This game runs on SYSTEM-H1 hardware. Only one known game exists on this | |
28 | PCB and this is it. The hardware seems overly complex for a 2D bike | |
29 | racing 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, | |
31 | many of the custom chips are off-the-shelf Hitachi/Toshiba gate-arrays. | |
31 | This game runs on SYSTEM-H1 hardware. The hardware seems overly complex for a | |
32 | 2D 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 | |
34 | custom chips are off-the-shelf Hitachi/Toshiba gate-arrays. | |
32 | 35 | |
33 | 36 | |
34 | 37 | PCB Layouts |
r241781 | r241782 | |
---|---|---|
389 | 389 | MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) |
390 | 390 | MCFG_CPU_PROGRAM_MAP(main_map) |
391 | 391 | |
392 | MCFG_SLAPSTIC_ADD("slapstic") | |
393 | ||
392 | 394 | MCFG_CPU_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8) |
393 | 395 | MCFG_CPU_PROGRAM_MAP(sound_map) |
394 | 396 | MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, (double)ATARI_CLOCK_14MHz/4/4/16/16/14) |
r241781 | r241782 | |
---|---|---|
13 | 13 | |
14 | 14 | #include "emu.h" |
15 | 15 | #include "cpu/i386/i386.h" |
16 | #include "machine/pci.h" | |
16 | #include "machine/lpci.h" | |
17 | 17 | #include "machine/pckeybrd.h" |
18 | 18 | #include "machine/idectrl.h" |
19 | 19 | #include "video/pc_vga.h" |
r241781 | r241782 | |
---|---|---|
71 | 71 | |
72 | 72 | #include "emu.h" |
73 | 73 | #include "cpu/i386/i386.h" |
74 | #include "machine/pci.h" | |
74 | #include "machine/lpci.h" | |
75 | 75 | #include "machine/pckeybrd.h" |
76 | 76 | #include "machine/idectrl.h" |
77 | 77 | #include "video/voodoo.h" |
r241781 | r241782 | |
---|---|---|
10798 | 10798 | GAME( 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 |
10799 | 10799 | |
10800 | 10800 | /* like fantastc, plus larger spriteram, and maybe different bullet hw(?) */ |
10801 | GAME( 198?, timefgtr, 0, timefgtr, timefgtr, galaxian_state, timefgtr, ROT90, "Taito do Brasil", "Time Fighter (Time Pilot conversion on Galaxian hardware)", GAME_SUPPORTS_SAVE | GAME_ | |
10801 | GAME( 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 | |
10802 | 10802 | |
10803 | 10803 | /* extra ROMs, protection, and sound hardware replaced with AY8910 */ |
10804 | 10804 | GAME( 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? |
r241781 | r241782 | |
---|---|---|
64 | 64 | |
65 | 65 | #include "emu.h" |
66 | 66 | #include "cpu/i386/i386.h" |
67 | #include "machine/pci.h" | |
67 | #include "machine/lpci.h" | |
68 | 68 | #include "machine/pcshare.h" |
69 | 69 | #include "machine/pckeybrd.h" |
70 | 70 | #include "machine/idectrl.h" |
r241781 | r241782 | |
---|---|---|
32 | 32 | #include "machine/cr589.h" |
33 | 33 | //#include "machine/i82371sb.h" |
34 | 34 | //#include "machine/i82439tx.h" |
35 | #include "machine/pci.h" | |
35 | #include "machine/lpci.h" | |
36 | 36 | #include "machine/pcshare.h" |
37 | 37 | #include "machine/pckeybrd.h" |
38 | 38 | #include "video/pc_vga.h" |
r241781 | r241782 | |
---|---|---|
499 | 499 | MCFG_CPU_PROGRAM_MAP(main_map) |
500 | 500 | MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen) |
501 | 501 | |
502 | MCFG_SLAPSTIC_ADD("slapstic") | |
503 | ||
502 | 504 | MCFG_CPU_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8) |
503 | 505 | MCFG_CPU_PROGRAM_MAP(sound_map) |
504 | 506 |
r241781 | r241782 | |
---|---|---|
330 | 330 | #include "includes/slapstic.h" |
331 | 331 | #include "includes/harddriv.h" |
332 | 332 | |
333 | #include "racedrivpan.lh" | |
333 | 334 | |
334 | 335 | /************************************* |
335 | 336 | * |
r241781 | r241782 | |
337 | 338 | * |
338 | 339 | *************************************/ |
339 | 340 | |
341 | const device_type HARDDRIV_DEVICE = &device_creator<harddriv_state>; | |
342 | ||
343 | harddriv_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 | ||
514 | class harddriv_new_state : public driver_device | |
515 | { | |
516 | public: | |
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 | ||
525 | WRITE16_MEMBER( harddriv_state::watchdog_reset16_w ) | |
526 | { | |
527 | ||
528 | } | |
529 | ||
340 | 530 | static ADDRESS_MAP_START( driver_68k_map, AS_PROGRAM, 16, harddriv_state ) |
341 | 531 | ADDRESS_MAP_UNMAP_HIGH |
342 | 532 | AM_RANGE(0x000000, 0x0fffff) AM_ROM |
r241781 | r241782 | |
345 | 535 | AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w) |
346 | 536 | AM_RANGE(0x60c000, 0x60ffff) AM_WRITE(hd68k_irq_ack_w) |
347 | 537 | AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(hd68k_wr0_write) |
348 | AM_RANGE(0xa80000, 0xafffff) AM_READ | |
538 | AM_RANGE(0xa80000, 0xafffff) AM_READ(hd68k_a80000_r) AM_WRITE(hd68k_wr1_write) | |
349 | 539 | AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE(hd68k_adc8_r, hd68k_wr2_write) |
350 | 540 | AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE(hd68k_adc12_r, hd68k_adc_control_w) |
351 | 541 | AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(hd68k_gsp_io_r, hd68k_gsp_io_w) |
r241781 | r241782 | |
392 | 582 | AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w) |
393 | 583 | AM_RANGE(0x60c000, 0x60ffff) AM_READWRITE(hd68k_port0_r, hd68k_irq_ack_w) |
394 | 584 | AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(hd68k_wr0_write) |
395 | AM_RANGE(0xa80000, 0xafffff) AM_READ | |
585 | AM_RANGE(0xa80000, 0xafffff) AM_READ(hd68k_a80000_r) AM_WRITE(hd68k_wr1_write) | |
396 | 586 | AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE(hd68k_adc8_r, hd68k_wr2_write) |
397 | 587 | AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE(hd68k_adc12_r, hd68k_adc_control_w) |
398 | 588 | AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(hd68k_gsp_io_r, hd68k_gsp_io_w) |
r241781 | r241782 | |
430 | 620 | AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w) |
431 | 621 | AM_RANGE(0x60c000, 0x60ffff) AM_READWRITE(hd68k_port0_r, hd68k_irq_ack_w) |
432 | 622 | AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(hd68k_wr0_write) |
433 | AM_RANGE(0xa80000, 0xafffff) AM_READ | |
623 | AM_RANGE(0xa80000, 0xafffff) AM_READ(hd68k_a80000_r) AM_WRITE(hd68k_wr1_write) | |
434 | 624 | AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE(hd68k_adc8_r, hd68k_wr2_write) |
435 | 625 | AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE(hd68k_adc12_r, hd68k_adc_control_w) |
436 | 626 | AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(hd68k_gsp_io_r, hd68k_gsp_io_w) |
r241781 | r241782 | |
597 | 787 | |
598 | 788 | |
599 | 789 | |
790 | ||
600 | 791 | /************************************* |
601 | 792 | * |
602 | 793 | * Port definitions |
r241781 | r241782 | |
604 | 795 | *************************************/ |
605 | 796 | |
606 | 797 | static INPUT_PORTS_START( harddriv ) |
607 | PORT_START("IN0") /* 600000 */ | |
798 | PORT_START("mainpcb:IN0") /* 600000 */ | |
608 | 799 | PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" ) |
609 | 800 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
610 | 801 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
611 | 802 | 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") | |
613 | 804 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */ |
614 | 805 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */ |
615 | 806 | PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) |
616 | 807 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) |
617 | 808 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) |
618 | 809 | |
619 | PORT_START("SW1") /* 600002 */ | |
810 | PORT_START("mainpcb:SW1") /* 600002 */ | |
620 | 811 | PORT_DIPNAME( 0x01, 0x01, "SW1:8" ) |
621 | 812 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
622 | 813 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
r241781 | r241782 | |
642 | 833 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
643 | 834 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
644 | 835 | |
645 | PORT_START("a80000") | |
836 | PORT_START("mainpcb:a80000") | |
646 | 837 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort") /* abort */ |
647 | 838 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key") /* key */ |
648 | 839 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */ |
649 | 840 | PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED ) |
650 | 841 | |
651 | PORT_START("8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */ | |
842 | PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */ | |
652 | 843 | PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal") |
653 | 844 | |
654 | PORT_START("8BADC1") /* b00000 - 8 bit ADC 1 - clutch pedal */ | |
845 | PORT_START("mainpcb:8BADC1") /* b00000 - 8 bit ADC 1 - clutch pedal */ | |
655 | 846 | PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal") |
656 | 847 | |
657 | PORT_START("8BADC2") /* b00000 - 8 bit ADC 2 - seat */ | |
848 | PORT_START("mainpcb:8BADC2") /* b00000 - 8 bit ADC 2 - seat */ | |
658 | 849 | PORT_BIT( 0xff, 0x80, IPT_SPECIAL ) |
659 | 850 | |
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 */ | |
661 | 852 | 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") |
662 | 853 | |
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*/ | |
664 | 855 | 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") |
665 | 856 | |
666 | PORT_START("8BADC5") /* b00000 - 8 bit ADC 5 - wheel */ | |
857 | PORT_START("mainpcb:8BADC5") /* b00000 - 8 bit ADC 5 - wheel */ | |
667 | 858 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Wheel") |
668 | 859 | |
669 | PORT_START("8BADC6") /* b00000 - 8 bit ADC 6 - line volts */ | |
860 | PORT_START("mainpcb:8BADC6") /* b00000 - 8 bit ADC 6 - line volts */ | |
670 | 861 | PORT_BIT( 0xff, 0x80, IPT_SPECIAL ) |
671 | 862 | |
672 | PORT_START("8BADC7") /* b00000 - 8 bit ADC 7 - shift force */ | |
863 | PORT_START("mainpcb:8BADC7") /* b00000 - 8 bit ADC 7 - shift force */ | |
673 | 864 | PORT_BIT( 0xff, 0x80, IPT_SPECIAL ) |
674 | 865 | |
675 | PORT_START("12BADC0") /* b80000 - 12 bit ADC 0 - steering wheel */ | |
866 | PORT_START("mainpcb:12BADC0") /* b80000 - 12 bit ADC 0 - steering wheel */ | |
676 | 867 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel") |
677 | 868 | |
678 | PORT_START("12BADC1") /* b80000 - 12 bit ADC 1 - force brake */ | |
869 | PORT_START("mainpcb:12BADC1") /* b80000 - 12 bit ADC 1 - force brake */ | |
679 | 870 | PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Force Brake") |
680 | 871 | |
681 | PORT_START("12BADC2") /* b80000 - 12 bit ADC 2 */ | |
872 | PORT_START("mainpcb:12BADC2") /* b80000 - 12 bit ADC 2 */ | |
682 | 873 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
683 | 874 | |
684 | PORT_START("12BADC3") /* b80000 - 12 bit ADC 3 */ | |
875 | PORT_START("mainpcb:12BADC3") /* b80000 - 12 bit ADC 3 */ | |
685 | 876 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
877 | ||
686 | 878 | INPUT_PORTS_END |
687 | 879 | |
688 | 880 | |
689 | 881 | static INPUT_PORTS_START( racedriv ) |
690 | PORT_START("IN0") /* 600000 */ | |
882 | PORT_START("mainpcb:IN0") /* 600000 */ | |
691 | 883 | PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" ) |
692 | 884 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
693 | 885 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
694 | 886 | 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") | |
696 | 888 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */ |
697 | 889 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */ |
698 | 890 | PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) |
699 | 891 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
700 | 892 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
701 | 893 | |
702 | PORT_START("SW1") /* 600002 */ | |
894 | PORT_START("mainpcb:SW1") /* 600002 */ | |
703 | 895 | PORT_DIPNAME( 0x01, 0x01, "SW1:8" ) |
704 | 896 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
705 | 897 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
r241781 | r241782 | |
725 | 917 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
726 | 918 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
727 | 919 | |
728 | PORT_START("a80000") | |
920 | PORT_START("mainpcb:a80000") | |
729 | 921 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort") /* abort */ |
730 | 922 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key") /* key */ |
731 | 923 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */ |
732 | 924 | PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED ) |
733 | 925 | |
734 | PORT_START("8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */ | |
926 | PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */ | |
735 | 927 | PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal") |
736 | 928 | |
737 | PORT_START("8BADC1") /* b00000 - 8 bit ADC 1 - clutch pedal */ | |
929 | PORT_START("mainpcb:8BADC1") /* b00000 - 8 bit ADC 1 - clutch pedal */ | |
738 | 930 | PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal") |
739 | 931 | |
740 | PORT_START("8BADC2") /* b00000 - 8 bit ADC 2 - seat */ | |
932 | PORT_START("mainpcb:8BADC2") /* b00000 - 8 bit ADC 2 - seat */ | |
741 | 933 | PORT_BIT( 0xff, 0x80, IPT_SPECIAL ) |
742 | 934 | |
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 */ | |
744 | 936 | 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") |
745 | 937 | |
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*/ | |
747 | 939 | 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") |
748 | 940 | |
749 | PORT_START("8BADC5") /* b00000 - 8 bit ADC 5 - wheel */ | |
941 | PORT_START("mainpcb:8BADC5") /* b00000 - 8 bit ADC 5 - wheel */ | |
750 | 942 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Wheel") |
751 | 943 | |
752 | PORT_START("8BADC6") /* b00000 - 8 bit ADC 6 - line volts */ | |
944 | PORT_START("mainpcb:8BADC6") /* b00000 - 8 bit ADC 6 - line volts */ | |
753 | 945 | PORT_BIT( 0xff, 0x80, IPT_SPECIAL ) |
754 | 946 | |
755 | PORT_START("8BADC7") /* b00000 - 8 bit ADC 7 */ | |
947 | PORT_START("mainpcb:8BADC7") /* b00000 - 8 bit ADC 7 */ | |
756 | 948 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
757 | 949 | |
758 | PORT_START("12BADC0") /* b80000 - 12 bit ADC 0 - steering wheel */ | |
950 | PORT_START("mainpcb:12BADC0") /* b80000 - 12 bit ADC 0 - steering wheel */ | |
759 | 951 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel") |
760 | 952 | |
761 | PORT_START("12BADC1") /* b80000 - 12 bit ADC 1 - force brake */ | |
953 | PORT_START("mainpcb:12BADC1") /* b80000 - 12 bit ADC 1 - force brake */ | |
762 | 954 | PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Force Brake") |
763 | 955 | |
764 | PORT_START("12BADC2") /* b80000 - 12 bit ADC 2 */ | |
956 | PORT_START("mainpcb:12BADC2") /* b80000 - 12 bit ADC 2 */ | |
765 | 957 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
766 | 958 | |
767 | PORT_START("12BADC3") /* b80000 - 12 bit ADC 3 */ | |
959 | PORT_START("mainpcb:12BADC3") /* b80000 - 12 bit ADC 3 */ | |
768 | 960 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
769 | 961 | INPUT_PORTS_END |
770 | 962 | |
963 | static 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 ) | |
771 | 977 | |
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 | |
1002 | INPUT_PORTS_END | |
1003 | ||
772 | 1004 | static INPUT_PORTS_START( racedrivc ) |
773 | PORT_START("IN0") /* 60c000 */ | |
1005 | PORT_START("mainpcb:IN0") /* 60c000 */ | |
774 | 1006 | PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" ) |
775 | 1007 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
776 | 1008 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
777 | 1009 | 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") | |
779 | 1011 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */ |
780 | 1012 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */ |
781 | 1013 | PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) |
782 | 1014 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) |
783 | 1015 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) |
784 | 1016 | |
785 | PORT_START("SW1") /* 60c002 */ | |
1017 | PORT_START("mainpcb:SW1") /* 60c002 */ | |
786 | 1018 | PORT_DIPNAME( 0x01, 0x01, "SW1:8" ) |
787 | 1019 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
788 | 1020 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
r241781 | r241782 | |
808 | 1040 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
809 | 1041 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
810 | 1042 | |
811 | PORT_START("a80000") | |
1043 | PORT_START("mainpcb:a80000") | |
812 | 1044 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort") |
813 | 1045 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key") |
814 | 1046 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */ |
r241781 | r241782 | |
821 | 1053 | PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* center edge on steering wheel */ |
822 | 1054 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) |
823 | 1055 | |
824 | PORT_START("8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */ | |
1056 | PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */ | |
825 | 1057 | PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal") |
826 | 1058 | |
827 | PORT_START("8BADC1") /* b00000 - 8 bit ADC 1 - clutch pedal */ | |
1059 | PORT_START("mainpcb:8BADC1") /* b00000 - 8 bit ADC 1 - clutch pedal */ | |
828 | 1060 | PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal") |
829 | 1061 | |
830 | PORT_START("8BADC2") /* b00000 - 8 bit ADC 2 */ | |
1062 | PORT_START("mainpcb:8BADC2") /* b00000 - 8 bit ADC 2 */ | |
831 | 1063 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
832 | 1064 | |
833 | PORT_START("8BADC3") /* b00000 - 8 bit ADC 3 */ | |
1065 | PORT_START("mainpcb:8BADC3") /* b00000 - 8 bit ADC 3 */ | |
834 | 1066 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
835 | 1067 | |
836 | PORT_START("8BADC4") /* b00000 - 8 bit ADC 4 */ | |
1068 | PORT_START("mainpcb:8BADC4") /* b00000 - 8 bit ADC 4 */ | |
837 | 1069 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
838 | 1070 | |
839 | PORT_START("8BADC5") /* b00000 - 8 bit ADC 5 */ | |
1071 | PORT_START("mainpcb:8BADC5") /* b00000 - 8 bit ADC 5 */ | |
840 | 1072 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
841 | 1073 | |
842 | PORT_START("8BADC6") /* b00000 - 8 bit ADC 6 - force brake */ | |
1074 | PORT_START("mainpcb:8BADC6") /* b00000 - 8 bit ADC 6 - force brake */ | |
843 | 1075 | PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Force Brake") |
844 | 1076 | |
845 | PORT_START("8BADC7") /* b00000 - 8 bit ADC 7 */ | |
1077 | PORT_START("mainpcb:8BADC7") /* b00000 - 8 bit ADC 7 */ | |
846 | 1078 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
847 | 1079 | |
848 | PORT_START("12BADC0") /* 400000 - steering wheel */ | |
1080 | PORT_START("mainpcb:12BADC0") /* 400000 - steering wheel */ | |
849 | 1081 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel") |
850 | 1082 | |
851 | 1083 | /* dummy ADC ports to end up with the same number as the full version */ |
852 | PORT_START("12BADC1") | |
1084 | PORT_START("mainpcb:12BADC1") | |
853 | 1085 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
854 | PORT_START("12BADC2") | |
1086 | PORT_START("mainpcb:12BADC2") | |
855 | 1087 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
856 | PORT_START("12BADC3") | |
1088 | PORT_START("mainpcb:12BADC3") | |
857 | 1089 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
858 | 1090 | INPUT_PORTS_END |
859 | 1091 | |
860 | 1092 | |
861 | 1093 | static INPUT_PORTS_START( stunrun ) |
862 | PORT_START("IN0") /* 60c000 */ | |
1094 | PORT_START("mainpcb:IN0") /* 60c000 */ | |
863 | 1095 | PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" ) |
864 | 1096 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
865 | 1097 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
866 | 1098 | 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") | |
868 | 1100 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */ |
869 | 1101 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */ |
870 | 1102 | PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) |
871 | 1103 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
872 | 1104 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
873 | 1105 | |
874 | PORT_START("SW1") /* 60c002 */ | |
1106 | PORT_START("mainpcb:SW1") /* 60c002 */ | |
875 | 1107 | PORT_DIPNAME( 0x01, 0x00, "SW1:8" ) |
876 | 1108 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
877 | 1109 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
r241781 | r241782 | |
897 | 1129 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
898 | 1130 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
899 | 1131 | |
900 | PORT_START("a80000") | |
1132 | PORT_START("mainpcb:a80000") | |
901 | 1133 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) |
902 | 1134 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) |
903 | 1135 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) |
904 | 1136 | PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED ) |
905 | 1137 | |
906 | PORT_START("8BADC0") /* b00000 - 8 bit ADC 0 */ | |
1138 | PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 */ | |
907 | 1139 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) |
908 | 1140 | |
909 | PORT_START("8BADC1") /* b00000 - 8 bit ADC 1 */ | |
1141 | PORT_START("mainpcb:8BADC1") /* b00000 - 8 bit ADC 1 */ | |
910 | 1142 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
911 | 1143 | |
912 | PORT_START("8BADC2") /* b00000 - 8 bit ADC 2 */ | |
1144 | PORT_START("mainpcb:8BADC2") /* b00000 - 8 bit ADC 2 */ | |
913 | 1145 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) |
914 | 1146 | |
915 | PORT_START("8BADC3") /* b00000 - 8 bit ADC 3 */ | |
1147 | PORT_START("mainpcb:8BADC3") /* b00000 - 8 bit ADC 3 */ | |
916 | 1148 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
917 | 1149 | |
918 | PORT_START("8BADC4") /* b00000 - 8 bit ADC 4 */ | |
1150 | PORT_START("mainpcb:8BADC4") /* b00000 - 8 bit ADC 4 */ | |
919 | 1151 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
920 | 1152 | |
921 | PORT_START("8BADC5") /* b00000 - 8 bit ADC 5 */ | |
1153 | PORT_START("mainpcb:8BADC5") /* b00000 - 8 bit ADC 5 */ | |
922 | 1154 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
923 | 1155 | |
924 | PORT_START("8BADC6") /* b00000 - 8 bit ADC 6 */ | |
1156 | PORT_START("mainpcb:8BADC6") /* b00000 - 8 bit ADC 6 */ | |
925 | 1157 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
926 | 1158 | |
927 | PORT_START("8BADC7") /* b00000 - 8 bit ADC 7 */ | |
1159 | PORT_START("mainpcb:8BADC7") /* b00000 - 8 bit ADC 7 */ | |
928 | 1160 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
929 | 1161 | |
930 | PORT_START("12BADC0") /* b80000 - 12 bit ADC 0 */ | |
1162 | PORT_START("mainpcb:12BADC0") /* b80000 - 12 bit ADC 0 */ | |
931 | 1163 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
932 | 1164 | |
933 | PORT_START("12BADC1") /* b80000 - 12 bit ADC 1 */ | |
1165 | PORT_START("mainpcb:12BADC1") /* b80000 - 12 bit ADC 1 */ | |
934 | 1166 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
935 | 1167 | |
936 | PORT_START("12BADC2") /* b80000 - 12 bit ADC 2 */ | |
1168 | PORT_START("mainpcb:12BADC2") /* b80000 - 12 bit ADC 2 */ | |
937 | 1169 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
938 | 1170 | |
939 | PORT_START("12BADC3") /* b80000 - 12 bit ADC 3 */ | |
1171 | PORT_START("mainpcb:12BADC3") /* b80000 - 12 bit ADC 3 */ | |
940 | 1172 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
941 | 1173 | |
942 | 1174 | /* stunrun has its own coins */ |
r241781 | r241782 | |
948 | 1180 | |
949 | 1181 | |
950 | 1182 | static INPUT_PORTS_START( steeltal ) |
951 | PORT_START("IN0") /* 60c000 */ | |
1183 | PORT_START("mainpcb:IN0") /* 60c000 */ | |
952 | 1184 | PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" ) |
953 | 1185 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
954 | 1186 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
955 | 1187 | 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") | |
957 | 1189 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */ |
958 | 1190 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */ |
959 | 1191 | PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) |
960 | 1192 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
961 | 1193 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
962 | 1194 | |
963 | PORT_START("SW1") /* 60c002 */ | |
1195 | PORT_START("mainpcb:SW1") /* 60c002 */ | |
964 | 1196 | PORT_DIPNAME( 0x01, 0x00, "SW1:8" ) |
965 | 1197 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
966 | 1198 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
r241781 | r241782 | |
986 | 1218 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
987 | 1219 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
988 | 1220 | |
989 | PORT_START("a80000") | |
1221 | PORT_START("mainpcb:a80000") | |
990 | 1222 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Trigger") |
991 | 1223 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Thumb") |
992 | 1224 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Zoom") |
993 | 1225 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Real Helicopter Flight") |
994 | 1226 | PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNUSED ) |
995 | 1227 | |
996 | PORT_START("8BADC0") /* b00000 - 8 bit ADC 0 */ | |
1228 | PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 */ | |
997 | 1229 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
998 | 1230 | |
999 | PORT_START("8BADC1") /* b00000 - 8 bit ADC 1 */ | |
1231 | PORT_START("mainpcb:8BADC1") /* b00000 - 8 bit ADC 1 */ | |
1000 | 1232 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* volume control */ |
1001 | 1233 | |
1002 | PORT_START("8BADC2") /* b00000 - 8 bit ADC 2 */ | |
1234 | PORT_START("mainpcb:8BADC2") /* b00000 - 8 bit ADC 2 */ | |
1003 | 1235 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1004 | 1236 | |
1005 | PORT_START("8BADC3") /* b00000 - 8 bit ADC 3 */ | |
1237 | PORT_START("mainpcb:8BADC3") /* b00000 - 8 bit ADC 3 */ | |
1006 | 1238 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1007 | 1239 | |
1008 | PORT_START("8BADC4") /* b00000 - 8 bit ADC 4 */ | |
1240 | PORT_START("mainpcb:8BADC4") /* b00000 - 8 bit ADC 4 */ | |
1009 | 1241 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1010 | 1242 | |
1011 | PORT_START("8BADC5") /* b00000 - 8 bit ADC 5 */ | |
1243 | PORT_START("mainpcb:8BADC5") /* b00000 - 8 bit ADC 5 */ | |
1012 | 1244 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1013 | 1245 | |
1014 | PORT_START("8BADC6") /* b00000 - 8 bit ADC 6 */ | |
1246 | PORT_START("mainpcb:8BADC6") /* b00000 - 8 bit ADC 6 */ | |
1015 | 1247 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1016 | 1248 | |
1017 | PORT_START("8BADC7") /* b00000 - 8 bit ADC 7 */ | |
1249 | PORT_START("mainpcb:8BADC7") /* b00000 - 8 bit ADC 7 */ | |
1018 | 1250 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1019 | 1251 | |
1020 | PORT_START("12BADC0") /* b80000 - 12 bit ADC 0 */ | |
1252 | PORT_START("mainpcb:12BADC0") /* b80000 - 12 bit ADC 0 */ | |
1021 | 1253 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) /* left/right */ |
1022 | 1254 | |
1023 | PORT_START("12BADC1") /* b80000 - 12 bit ADC 1 */ | |
1255 | PORT_START("mainpcb:12BADC1") /* b80000 - 12 bit ADC 1 */ | |
1024 | 1256 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) /* up/down */ |
1025 | 1257 | |
1026 | PORT_START("12BADC2") /* b80000 - 12 bit ADC 2 */ | |
1258 | PORT_START("mainpcb:12BADC2") /* b80000 - 12 bit ADC 2 */ | |
1027 | 1259 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_NAME("Collective") PORT_REVERSE /* collective */ |
1028 | 1260 | |
1029 | PORT_START("12BADC3") /* b80000 - 12 bit ADC 3 */ | |
1261 | PORT_START("mainpcb:12BADC3") /* b80000 - 12 bit ADC 3 */ | |
1030 | 1262 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_NAME("Rudder") PORT_PLAYER(2) /* rudder */ |
1031 | 1263 | |
1032 | 1264 | /* steeltal has its own coins */ |
r241781 | r241782 | |
1038 | 1270 | |
1039 | 1271 | |
1040 | 1272 | static INPUT_PORTS_START( strtdriv ) |
1041 | PORT_START("IN0") /* 60c000 */ | |
1273 | PORT_START("mainpcb:IN0") /* 60c000 */ | |
1042 | 1274 | PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" ) |
1043 | 1275 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
1044 | 1276 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
1045 | 1277 | 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") | |
1047 | 1279 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */ |
1048 | 1280 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */ |
1049 | 1281 | PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) |
1050 | 1282 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
1051 | 1283 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
1052 | 1284 | |
1053 | PORT_START("SW1") /* 60c002 */ | |
1285 | PORT_START("mainpcb:SW1") /* 60c002 */ | |
1054 | 1286 | PORT_DIPNAME( 0x01, 0x01, "SW1:8" ) |
1055 | 1287 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
1056 | 1288 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
r241781 | r241782 | |
1076 | 1308 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
1077 | 1309 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
1078 | 1310 | |
1079 | PORT_START("a80000") | |
1311 | PORT_START("mainpcb:a80000") | |
1080 | 1312 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) /* abort */ |
1081 | 1313 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) /* start */ |
1082 | 1314 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */ |
r241781 | r241782 | |
1090 | 1322 | PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* center edge on steering wheel */ |
1091 | 1323 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) |
1092 | 1324 | |
1093 | PORT_START("8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */ | |
1325 | PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */ | |
1094 | 1326 | PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal") |
1095 | 1327 | |
1096 | PORT_START("8BADC1") /* b00000 - 8 bit ADC 1 */ | |
1328 | PORT_START("mainpcb:8BADC1") /* b00000 - 8 bit ADC 1 */ | |
1097 | 1329 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1098 | 1330 | |
1099 | PORT_START("8BADC2") /* b00000 - 8 bit ADC 2 - voice mic */ | |
1331 | PORT_START("mainpcb:8BADC2") /* b00000 - 8 bit ADC 2 - voice mic */ | |
1100 | 1332 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1101 | 1333 | |
1102 | PORT_START("8BADC3") /* b00000 - 8 bit ADC 3 - volume */ | |
1334 | PORT_START("mainpcb:8BADC3") /* b00000 - 8 bit ADC 3 - volume */ | |
1103 | 1335 | PORT_BIT( 0xff, 0X80, IPT_UNUSED ) |
1104 | 1336 | |
1105 | PORT_START("8BADC4") /* b00000 - 8 bit ADC 4 - elevator */ | |
1337 | PORT_START("mainpcb:8BADC4") /* b00000 - 8 bit ADC 4 - elevator */ | |
1106 | 1338 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_NAME("Elevator") PORT_REVERSE /* up/down */ |
1107 | 1339 | |
1108 | PORT_START("8BADC5") /* b00000 - 8 bit ADC 5 - canopy */ | |
1340 | PORT_START("mainpcb:8BADC5") /* b00000 - 8 bit ADC 5 - canopy */ | |
1109 | 1341 | PORT_BIT( 0xff, 0X80, IPT_UNUSED ) |
1110 | 1342 | |
1111 | PORT_START("8BADC6") /* b00000 - 8 bit ADC 6 - brake */ | |
1343 | PORT_START("mainpcb:8BADC6") /* b00000 - 8 bit ADC 6 - brake */ | |
1112 | 1344 | PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_NAME("Brake") PORT_REVERSE |
1113 | 1345 | |
1114 | PORT_START("8BADC7") /* b00000 - 8 bit ADC 7 - seat adjust */ | |
1346 | PORT_START("mainpcb:8BADC7") /* b00000 - 8 bit ADC 7 - seat adjust */ | |
1115 | 1347 | PORT_BIT( 0xff, 0X80, IPT_UNUSED ) |
1116 | 1348 | |
1117 | PORT_START("12BADC0") /* 400000 - steering wheel */ | |
1349 | PORT_START("mainpcb:12BADC0") /* 400000 - steering wheel */ | |
1118 | 1350 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel") |
1119 | 1351 | |
1120 | 1352 | /* 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 */ | |
1122 | 1354 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1123 | PORT_START("12BADC2") /* FAKE */ | |
1355 | PORT_START("mainpcb:12BADC2") /* FAKE */ | |
1124 | 1356 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1125 | PORT_START("12BADC3") /* FAKE */ | |
1357 | PORT_START("mainpcb:12BADC3") /* FAKE */ | |
1126 | 1358 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1127 | 1359 | INPUT_PORTS_END |
1128 | 1360 | |
1129 | 1361 | |
1130 | 1362 | static INPUT_PORTS_START( hdrivair ) |
1131 | PORT_START("IN0") /* 60c000 */ | |
1363 | PORT_START("mainpcb:IN0") /* 60c000 */ | |
1132 | 1364 | PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" ) |
1133 | 1365 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
1134 | 1366 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
1135 | 1367 | 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") | |
1137 | 1369 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */ |
1138 | 1370 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */ |
1139 | 1371 | PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) |
1140 | 1372 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) |
1141 | 1373 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
1142 | 1374 | |
1143 | PORT_START("SW1") /* 60c002 */ | |
1375 | PORT_START("mainpcb:SW1") /* 60c002 */ | |
1144 | 1376 | PORT_DIPNAME( 0x01, 0x01, "SW1:8" ) |
1145 | 1377 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
1146 | 1378 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
r241781 | r241782 | |
1166 | 1398 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
1167 | 1399 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
1168 | 1400 | |
1169 | PORT_START("a80000") | |
1401 | PORT_START("mainpcb:a80000") | |
1170 | 1402 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) /* abort */ |
1171 | 1403 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) /* start */ |
1172 | 1404 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */ |
r241781 | r241782 | |
1180 | 1412 | PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* center edge on steering wheel */ |
1181 | 1413 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) |
1182 | 1414 | |
1183 | PORT_START("8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */ | |
1415 | PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */ | |
1184 | 1416 | PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal") |
1185 | 1417 | |
1186 | PORT_START("8BADC1") /* b00000 - 8 bit ADC 1 */ | |
1418 | PORT_START("mainpcb:8BADC1") /* b00000 - 8 bit ADC 1 */ | |
1187 | 1419 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1188 | 1420 | |
1189 | PORT_START("8BADC2") /* b00000 - 8 bit ADC 2 - voice mic */ | |
1421 | PORT_START("mainpcb:8BADC2") /* b00000 - 8 bit ADC 2 - voice mic */ | |
1190 | 1422 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1191 | 1423 | |
1192 | PORT_START("8BADC3") /* b00000 - 8 bit ADC 3 - volume */ | |
1424 | PORT_START("mainpcb:8BADC3") /* b00000 - 8 bit ADC 3 - volume */ | |
1193 | 1425 | PORT_BIT( 0xff, 0X80, IPT_UNUSED ) |
1194 | 1426 | |
1195 | PORT_START("8BADC4") /* b00000 - 8 bit ADC 4 - elevator */ | |
1427 | PORT_START("mainpcb:8BADC4") /* b00000 - 8 bit ADC 4 - elevator */ | |
1196 | 1428 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_REVERSE PORT_NAME("Elevator") /* up/down */ |
1197 | 1429 | |
1198 | PORT_START("8BADC5") /* b00000 - 8 bit ADC 5 - canopy */ | |
1430 | PORT_START("mainpcb:8BADC5") /* b00000 - 8 bit ADC 5 - canopy */ | |
1199 | 1431 | PORT_BIT( 0xff, 0X80, IPT_UNUSED ) |
1200 | 1432 | |
1201 | PORT_START("8BADC6") /* b00000 - 8 bit ADC 6 - brake */ | |
1433 | PORT_START("mainpcb:8BADC6") /* b00000 - 8 bit ADC 6 - brake */ | |
1202 | 1434 | PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Brake") |
1203 | 1435 | |
1204 | PORT_START("8BADC7") /* b00000 - 8 bit ADC 7 - seat adjust */ | |
1436 | PORT_START("mainpcb:8BADC7") /* b00000 - 8 bit ADC 7 - seat adjust */ | |
1205 | 1437 | PORT_BIT( 0xff, 0X80, IPT_UNUSED ) |
1206 | 1438 | |
1207 | PORT_START("12BADC0") /* 400000 - steering wheel */ | |
1439 | PORT_START("mainpcb:12BADC0") /* 400000 - steering wheel */ | |
1208 | 1440 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_REVERSE PORT_NAME("Steering Wheel") |
1209 | 1441 | |
1210 | 1442 | /* dummy ADC ports to end up with the same number as the full version */ |
1211 | PORT_START("12BADC1") | |
1443 | PORT_START("mainpcb:12BADC1") | |
1212 | 1444 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1213 | PORT_START("12BADC2") | |
1445 | PORT_START("mainpcb:12BADC2") | |
1214 | 1446 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1215 | PORT_START("12BADC3") | |
1447 | PORT_START("mainpcb:12BADC3") | |
1216 | 1448 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
1217 | 1449 | INPUT_PORTS_END |
1218 | 1450 | |
r241781 | r241782 | |
1223 | 1455 | * |
1224 | 1456 | *************************************/ |
1225 | 1457 | |
1458 | INTERRUPT_GEN_MEMBER(harddriv_state::video_int_gen) | |
1459 | { | |
1460 | m_video_int_state = 1; | |
1461 | update_interrupts(); | |
1462 | } | |
1463 | ||
1464 | ||
1226 | 1465 | /* Driver board without MSP (used by Race Drivin' cockpit) */ |
1227 | static MACHINE_CONFIG_ | |
1466 | static MACHINE_CONFIG_FRAGMENT( driver_nomsp ) | |
1228 | 1467 | |
1229 | 1468 | /* basic machine hardware */ |
1230 | 1469 | MCFG_CPU_ADD("maincpu", M68010, HARDDRIV_MASTER_CLOCK/4) |
1231 | 1470 | MCFG_CPU_PROGRAM_MAP(driver_68k_map) |
1232 | MCFG_DEVICE_VBLANK_INT_DRIVER("screen", a | |
1471 | MCFG_DEVICE_VBLANK_INT_DRIVER("screen", harddriv_state, video_int_gen) | |
1233 | 1472 | MCFG_CPU_PERIODIC_INT_DRIVER(harddriv_state, hd68k_irq_gen, (double)HARDDRIV_MASTER_CLOCK/16/16/16/16/2) |
1234 | 1473 | |
1474 | MCFG_SLAPSTIC_ADD("slapstic") | |
1475 | MCFG_SLAPSTIC_68K_ACCESS(1) | |
1476 | ||
1235 | 1477 | MCFG_CPU_ADD("gsp", TMS34010, HARDDRIV_GSP_CLOCK) |
1236 | 1478 | MCFG_CPU_PROGRAM_MAP(driver_gsp_map) |
1237 | 1479 | MCFG_TMS340X0_HALT_ON_RESET(TRUE) /* halt on reset */ |
r241781 | r241782 | |
1241 | 1483 | MCFG_TMS340X0_OUTPUT_INT_CB(WRITELINE(harddriv_state, hdgsp_irq_gen)) |
1242 | 1484 | MCFG_TMS340X0_TO_SHIFTREG_CB(harddriv_state, hdgsp_write_to_shiftreg) |
1243 | 1485 | MCFG_TMS340X0_FROM_SHIFTREG_CB(harddriv_state, hdgsp_read_from_shiftreg) |
1486 | MCFG_VIDEO_SET_SCREEN("screen") | |
1244 | 1487 | |
1245 | 1488 | MCFG_QUANTUM_TIME(attotime::from_hz(30000)) |
1246 | 1489 | |
1247 | MCFG_MACHINE_START_OVERRIDE(harddriv_state,harddriv) | |
1248 | MCFG_MACHINE_RESET_OVERRIDE(harddriv_state,harddriv) | |
1249 | ||
1250 | 1490 | MCFG_M48T02_ADD("200e") // MK48T02 |
1251 | 1491 | MCFG_EEPROM_2816_ADD("210e") // MK48Z02 |
1252 | 1492 | |
r241781 | r241782 | |
1261 | 1501 | MCFG_SCREEN_UPDATE_DEVICE("gsp", tms34010_device, tms340x0_ind16) |
1262 | 1502 | MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) |
1263 | 1503 | MCFG_SCREEN_PALETTE("palette") |
1264 | ||
1265 | MCFG_VIDEO_START_OVERRIDE(harddriv_state,harddriv) | |
1266 | 1504 | MACHINE_CONFIG_END |
1267 | 1505 | |
1268 | 1506 | |
1269 | 1507 | /* Driver board with MSP (used by Hard Drivin' cockpit) */ |
1270 | static MACHINE_CONFIG_ | |
1508 | static MACHINE_CONFIG_FRAGMENT( driver_msp ) | |
1271 | 1509 | |
1510 | MCFG_FRAGMENT_ADD( driver_nomsp ) | |
1511 | ||
1272 | 1512 | /* basic machine hardware */ |
1273 | 1513 | MCFG_CPU_ADD("msp", TMS34010, XTAL_50MHz) |
1274 | 1514 | MCFG_CPU_PROGRAM_MAP(driver_msp_map) |
r241781 | r241782 | |
1276 | 1516 | MCFG_TMS340X0_PIXEL_CLOCK(5000000) /* pixel clock */ |
1277 | 1517 | MCFG_TMS340X0_PIXELS_PER_CLOCK(2) /* pixels per clock */ |
1278 | 1518 | MCFG_TMS340X0_OUTPUT_INT_CB(WRITELINE(harddriv_state, hdmsp_irq_gen)) |
1519 | MCFG_VIDEO_SET_SCREEN("screen") | |
1520 | ||
1279 | 1521 | MACHINE_CONFIG_END |
1280 | 1522 | |
1281 | 1523 | |
1282 | 1524 | /* Multisync board without MSP (used by STUN Runner, Steel Talons, Race Drivin' compact) */ |
1283 | static MACHINE_CONFIG_ | |
1525 | static MACHINE_CONFIG_FRAGMENT( multisync_nomsp ) | |
1284 | 1526 | |
1527 | MCFG_FRAGMENT_ADD( driver_nomsp ) | |
1528 | ||
1285 | 1529 | /* basic machine hardware */ |
1286 | 1530 | MCFG_CPU_MODIFY("maincpu") |
1287 | 1531 | MCFG_CPU_PROGRAM_MAP(multisync_68k_map) |
r241781 | r241782 | |
1299 | 1543 | |
1300 | 1544 | |
1301 | 1545 | /* Multisync board with MSP (used by Hard Drivin' compact) */ |
1302 | static MACHINE_CONFIG_ | |
1546 | static MACHINE_CONFIG_FRAGMENT( multisync_msp ) | |
1303 | 1547 | |
1548 | MCFG_FRAGMENT_ADD( multisync_nomsp ) | |
1549 | ||
1304 | 1550 | /* basic machine hardware */ |
1305 | 1551 | MCFG_CPU_ADD("msp", TMS34010, XTAL_50MHz) |
1306 | 1552 | MCFG_CPU_PROGRAM_MAP(driver_msp_map) |
r241781 | r241782 | |
1308 | 1554 | MCFG_TMS340X0_PIXEL_CLOCK(5000000) /* pixel clock */ |
1309 | 1555 | MCFG_TMS340X0_PIXELS_PER_CLOCK(2) /* pixels per clock */ |
1310 | 1556 | MCFG_TMS340X0_OUTPUT_INT_CB(WRITELINE(harddriv_state, hdmsp_irq_gen)) |
1557 | MCFG_VIDEO_SET_SCREEN("screen") | |
1558 | ||
1311 | 1559 | MACHINE_CONFIG_END |
1312 | 1560 | |
1313 | 1561 | |
1314 | 1562 | /* Multisync II board (used by Hard Drivin's Airborne) */ |
1315 | static MACHINE_CONFIG_ | |
1563 | static MACHINE_CONFIG_FRAGMENT( multisync2 ) | |
1316 | 1564 | |
1565 | MCFG_FRAGMENT_ADD( multisync_nomsp ) | |
1566 | ||
1317 | 1567 | /* basic machine hardware */ |
1318 | 1568 | MCFG_CPU_MODIFY("maincpu") |
1319 | 1569 | MCFG_CPU_PROGRAM_MAP(multisync2_68k_map) |
r241781 | r241782 | |
1444 | 1694 | * |
1445 | 1695 | *************************************/ |
1446 | 1696 | |
1447 | static MACHINE_CONFIG_DERIVED( harddriv, driver_msp ) | |
1448 | ||
1697 | static MACHINE_CONFIG_FRAGMENT( harddriv ) | |
1698 | MCFG_FRAGMENT_ADD( driver_msp ) | |
1449 | 1699 | /* basic machine hardware */ /* original driver board with MSP */ |
1450 | 1700 | MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */ |
1451 | 1701 | MCFG_FRAGMENT_ADD( driversnd ) /* driver sound board */ |
1452 | 1702 | MACHINE_CONFIG_END |
1453 | 1703 | |
1704 | static MACHINE_CONFIG_FRAGMENT( harddrivc ) | |
1705 | MCFG_FRAGMENT_ADD( multisync_msp ) | |
1454 | 1706 | |
1455 | static MACHINE_CONFIG_DERIVED( harddrivc, multisync_msp ) | |
1456 | ||
1457 | 1707 | /* basic machine hardware */ /* multisync board with MSP */ |
1458 | 1708 | MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */ |
1459 | 1709 | MCFG_FRAGMENT_ADD( driversnd ) /* driver sound board */ |
1460 | 1710 | MACHINE_CONFIG_END |
1461 | 1711 | |
1712 | static MACHINE_CONFIG_FRAGMENT( racedriv ) | |
1713 | MCFG_FRAGMENT_ADD( driver_nomsp ) | |
1462 | 1714 | |
1463 | static MACHINE_CONFIG_DERIVED( racedriv, driver_nomsp ) | |
1464 | ||
1465 | 1715 | /* basic machine hardware */ /* original driver board without MSP */ |
1466 | 1716 | MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */ |
1467 | 1717 | MCFG_FRAGMENT_ADD( dsk ) /* DSK board */ |
1468 | 1718 | MCFG_FRAGMENT_ADD( driversnd ) /* driver sound board */ |
1469 | 1719 | MACHINE_CONFIG_END |
1470 | 1720 | |
1721 | static MACHINE_CONFIG_FRAGMENT( racedrivc ) | |
1471 | 1722 | |
1472 | ||
1723 | MCFG_FRAGMENT_ADD( multisync_nomsp ) | |
1473 | 1724 | |
1474 | 1725 | /* basic machine hardware */ /* multisync board without MSP */ |
1475 | 1726 | MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */ |
r241781 | r241782 | |
1478 | 1729 | MACHINE_CONFIG_END |
1479 | 1730 | |
1480 | 1731 | |
1481 | static MACHINE_CONFIG_ | |
1732 | static MACHINE_CONFIG_FRAGMENT( racedrivc_panorama_side ) | |
1482 | 1733 | |
1734 | MCFG_FRAGMENT_ADD( multisync_nomsp ) | |
1735 | ||
1483 | 1736 | /* 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 */ | |
1740 | MACHINE_CONFIG_END | |
1741 | ||
1742 | WRITE_LINE_MEMBER(harddriv_state::sound_int_write_line) | |
1743 | { | |
1744 | m_sound_int_state = state; | |
1745 | update_interrupts(); | |
1746 | } | |
1747 | ||
1748 | ||
1749 | static MACHINE_CONFIG_FRAGMENT( stunrun ) | |
1750 | ||
1751 | MCFG_FRAGMENT_ADD( multisync_nomsp ) | |
1752 | ||
1753 | /* basic machine hardware */ /* multisync board without MSP */ | |
1484 | 1754 | MCFG_CPU_MODIFY("gsp") |
1485 | 1755 | MCFG_TMS340X0_PIXEL_CLOCK(5000000) /* pixel clock */ |
1486 | 1756 | MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */ |
r241781 | r241782 | |
1492 | 1762 | /* sund hardware */ |
1493 | 1763 | MCFG_SPEAKER_STANDARD_MONO("mono") |
1494 | 1764 | |
1495 | MCFG_ATARI_JSA_II_ADD("jsa", WRITELINE(a | |
1765 | MCFG_ATARI_JSA_II_ADD("jsa", WRITELINE(harddriv_state, sound_int_write_line)) | |
1496 | 1766 | MCFG_ATARI_JSA_TEST_PORT("IN0", 5) |
1497 | 1767 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
1498 | 1768 | MACHINE_CONFIG_END |
1499 | 1769 | |
1770 | static MACHINE_CONFIG_FRAGMENT( steeltal ) | |
1771 | MCFG_FRAGMENT_ADD( multisync_msp ) | |
1500 | 1772 | |
1501 | static MACHINE_CONFIG_DERIVED( steeltal, multisync_msp ) | |
1502 | ||
1503 | 1773 | /* basic machine hardware */ /* multisync board with MSP */ |
1504 | 1774 | MCFG_FRAGMENT_ADD( ds3 ) /* DS III board */ |
1505 | 1775 | MCFG_DEVICE_REMOVE("ds3sdsp") /* DS III sound components are not present */ |
r241781 | r241782 | |
1514 | 1784 | /* sund hardware */ |
1515 | 1785 | MCFG_SPEAKER_STANDARD_MONO("mono") |
1516 | 1786 | |
1517 | MCFG_ATARI_JSA_III_ADD("jsa", WRITELINE(a | |
1787 | MCFG_ATARI_JSA_III_ADD("jsa", WRITELINE(harddriv_state, sound_int_write_line)) | |
1518 | 1788 | MCFG_ATARI_JSA_TEST_PORT("IN0", 5) |
1519 | 1789 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
1520 | 1790 | MACHINE_CONFIG_END |
1521 | 1791 | |
1792 | static MACHINE_CONFIG_FRAGMENT( strtdriv ) | |
1522 | 1793 | |
1523 | ||
1794 | MCFG_FRAGMENT_ADD( multisync_nomsp ) | |
1524 | 1795 | |
1525 | 1796 | /* basic machine hardware */ /* multisync board */ |
1526 | 1797 | MCFG_FRAGMENT_ADD( ds3 ) /* DS III board */ |
r241781 | r241782 | |
1530 | 1801 | MCFG_FRAGMENT_ADD( dsk ) /* DSK board */ |
1531 | 1802 | MACHINE_CONFIG_END |
1532 | 1803 | |
1804 | static MACHINE_CONFIG_FRAGMENT( hdrivair ) | |
1533 | 1805 | |
1534 | ||
1806 | MCFG_FRAGMENT_ADD( multisync2 ) | |
1535 | 1807 | |
1536 | 1808 | /* basic machine hardware */ /* multisync II board */ |
1537 | 1809 | MCFG_FRAGMENT_ADD( ds3 ) /* DS IV board */ |
1538 | 1810 | MCFG_FRAGMENT_ADD( dsk2 ) /* DSK II board */ |
1539 | 1811 | MACHINE_CONFIG_END |
1540 | 1812 | |
1813 | const device_type HARDDRIV_BOARD_DEVICE = &device_creator<harddriv_board_device_state>; | |
1541 | 1814 | |
1815 | harddriv_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 | } | |
1542 | 1819 | |
1820 | machine_config_constructor harddriv_board_device_state::device_mconfig_additions() const | |
1821 | { | |
1822 | return MACHINE_CONFIG_NAME( harddriv ); | |
1823 | } | |
1824 | ||
1825 | void harddriv_board_device_state::device_start() | |
1826 | { | |
1827 | init_harddriv(); | |
1828 | harddriv_state::device_start(); | |
1829 | } | |
1830 | ||
1831 | /* Compact */ | |
1832 | ||
1833 | void harddrivc_board_device_state::device_start() | |
1834 | { | |
1835 | init_harddrivc(); | |
1836 | harddriv_state::device_start(); | |
1837 | } | |
1838 | ||
1839 | const device_type HARDDRIVC_BOARD_DEVICE = &device_creator<harddrivc_board_device_state>; | |
1840 | ||
1841 | harddrivc_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 | ||
1846 | machine_config_constructor harddrivc_board_device_state::device_mconfig_additions() const | |
1847 | { | |
1848 | return MACHINE_CONFIG_NAME( harddrivc ); | |
1849 | } | |
1850 | ||
1851 | ||
1852 | /* Race Drivin */ | |
1853 | ||
1854 | void racedriv_board_device_state::device_start() | |
1855 | { | |
1856 | init_racedriv(); | |
1857 | harddriv_state::device_start(); | |
1858 | } | |
1859 | ||
1860 | void racedrivb1_board_device_state::device_start() | |
1861 | { | |
1862 | init_racedrivb1(); | |
1863 | harddriv_state::device_start(); | |
1864 | } | |
1865 | ||
1866 | const device_type RACEDRIV_BOARD_DEVICE = &device_creator<racedriv_board_device_state>; | |
1867 | const device_type RACEDRIVB1_BOARD_DEVICE = &device_creator<racedrivb1_board_device_state>; | |
1868 | ||
1869 | racedriv_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 | ||
1874 | machine_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 | ||
1882 | void racedrivc_board_device_state::device_start() | |
1883 | { | |
1884 | init_racedrivc(); | |
1885 | harddriv_state::device_start(); | |
1886 | } | |
1887 | ||
1888 | void racedrivc1_board_device_state::device_start() | |
1889 | { | |
1890 | init_racedrivc1(); | |
1891 | harddriv_state::device_start(); | |
1892 | } | |
1893 | ||
1894 | void racedrivc_panorama_side_board_device_state::device_start() | |
1895 | { | |
1896 | init_racedrivc_panorama_side(); | |
1897 | harddriv_state::device_start(); | |
1898 | } | |
1899 | ||
1900 | ||
1901 | ||
1902 | const device_type RACEDRIVC_BOARD_DEVICE = &device_creator<racedrivc_board_device_state>; | |
1903 | const device_type RACEDRIVC1_BOARD_DEVICE = &device_creator<racedrivc1_board_device_state>; | |
1904 | const device_type RACEDRIVC_PANORAMA_SIDE_BOARD_DEVICE = &device_creator<racedrivc_panorama_side_board_device_state>; | |
1905 | ||
1906 | racedrivc_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 | ||
1911 | machine_config_constructor racedrivc_board_device_state::device_mconfig_additions() const | |
1912 | { | |
1913 | return MACHINE_CONFIG_NAME( racedrivc ); | |
1914 | } | |
1915 | ||
1916 | machine_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 | ||
1924 | void stunrun_board_device_state::device_start() | |
1925 | { | |
1926 | init_stunrun(); | |
1927 | harddriv_state::device_start(); | |
1928 | } | |
1929 | ||
1930 | const device_type STUNRUN_BOARD_DEVICE = &device_creator<stunrun_board_device_state>; | |
1931 | ||
1932 | stunrun_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 | ||
1937 | machine_config_constructor stunrun_board_device_state::device_mconfig_additions() const | |
1938 | { | |
1939 | return MACHINE_CONFIG_NAME( stunrun ); | |
1940 | } | |
1941 | ||
1942 | /* Steel Talons */ | |
1943 | ||
1944 | void steeltal_board_device_state::device_start() | |
1945 | { | |
1946 | init_steeltal(); | |
1947 | harddriv_state::device_start(); | |
1948 | } | |
1949 | ||
1950 | void steeltal1_board_device_state::device_start() | |
1951 | { | |
1952 | init_steeltal1(); | |
1953 | harddriv_state::device_start(); | |
1954 | } | |
1955 | ||
1956 | void steeltalp_board_device_state::device_start() | |
1957 | { | |
1958 | init_steeltalp(); | |
1959 | harddriv_state::device_start(); | |
1960 | } | |
1961 | ||
1962 | const device_type STEELTAL_BOARD_DEVICE = &device_creator<steeltal_board_device_state>; | |
1963 | const device_type STEELTAL1_BOARD_DEVICE = &device_creator<steeltal1_board_device_state>; | |
1964 | const device_type STEELTALP_BOARD_DEVICE = &device_creator<steeltalp_board_device_state>; | |
1965 | ||
1966 | steeltal_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 | ||
1971 | machine_config_constructor steeltal_board_device_state::device_mconfig_additions() const | |
1972 | { | |
1973 | return MACHINE_CONFIG_NAME( steeltal ); | |
1974 | } | |
1975 | ||
1976 | /* Street Drivin' */ | |
1977 | ||
1978 | void strtdriv_board_device_state::device_start() | |
1979 | { | |
1980 | init_strtdriv(); | |
1981 | harddriv_state::device_start(); | |
1982 | } | |
1983 | ||
1984 | const device_type STRTDRIV_BOARD_DEVICE = &device_creator<strtdriv_board_device_state>; | |
1985 | ||
1986 | strtdriv_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 | ||
1991 | machine_config_constructor strtdriv_board_device_state::device_mconfig_additions() const | |
1992 | { | |
1993 | return MACHINE_CONFIG_NAME( strtdriv ); | |
1994 | } | |
1995 | ||
1996 | /* Hard Drivin' Airbourne */ | |
1997 | ||
1998 | void hdrivair_board_device_state::device_start() | |
1999 | { | |
2000 | init_hdrivair(); | |
2001 | harddriv_state::device_start(); | |
2002 | } | |
2003 | ||
2004 | void hdrivairp_board_device_state::device_start() | |
2005 | { | |
2006 | init_hdrivairp(); | |
2007 | harddriv_state::device_start(); | |
2008 | } | |
2009 | ||
2010 | const device_type HDRIVAIR_BOARD_DEVICE = &device_creator<hdrivair_board_device_state>; | |
2011 | const device_type HDRIVAIRP_BOARD_DEVICE = &device_creator<hdrivairp_board_device_state>; | |
2012 | ||
2013 | hdrivair_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 | ||
2018 | machine_config_constructor hdrivair_board_device_state::device_mconfig_additions() const | |
2019 | { | |
2020 | return MACHINE_CONFIG_NAME( hdrivair ); | |
2021 | } | |
2022 | ||
2023 | ||
2024 | ||
2025 | static MACHINE_CONFIG_START( harddriv_machine, harddriv_new_state ) | |
2026 | MCFG_DEVICE_ADD("mainpcb", HARDDRIV_BOARD_DEVICE, 0) | |
2027 | MACHINE_CONFIG_END | |
2028 | ||
2029 | static MACHINE_CONFIG_START( harddrivc_machine, harddriv_new_state ) | |
2030 | MCFG_DEVICE_ADD("mainpcb", HARDDRIVC_BOARD_DEVICE, 0) | |
2031 | MACHINE_CONFIG_END | |
2032 | ||
2033 | static MACHINE_CONFIG_START( racedriv_machine, harddriv_new_state ) | |
2034 | MCFG_DEVICE_ADD("mainpcb", RACEDRIV_BOARD_DEVICE, 0) | |
2035 | MACHINE_CONFIG_END | |
2036 | ||
2037 | static MACHINE_CONFIG_START( racedrivb1_machine, harddriv_new_state ) | |
2038 | MCFG_DEVICE_ADD("mainpcb", RACEDRIVB1_BOARD_DEVICE, 0) | |
2039 | MACHINE_CONFIG_END | |
2040 | ||
2041 | static MACHINE_CONFIG_START( racedrivc_machine, harddriv_new_state ) | |
2042 | MCFG_DEVICE_ADD("mainpcb", RACEDRIVC_BOARD_DEVICE, 0) | |
2043 | MACHINE_CONFIG_END | |
2044 | ||
2045 | static MACHINE_CONFIG_START( racedrivc1_machine, harddriv_new_state ) | |
2046 | MCFG_DEVICE_ADD("mainpcb", RACEDRIVC1_BOARD_DEVICE, 0) | |
2047 | MACHINE_CONFIG_END | |
2048 | ||
2049 | static MACHINE_CONFIG_START( stunrun_machine, harddriv_new_state ) | |
2050 | MCFG_DEVICE_ADD("mainpcb", STUNRUN_BOARD_DEVICE, 0) | |
2051 | MACHINE_CONFIG_END | |
2052 | ||
2053 | static MACHINE_CONFIG_START( strtdriv_machine, harddriv_new_state ) | |
2054 | MCFG_DEVICE_ADD("mainpcb", STRTDRIV_BOARD_DEVICE, 0) | |
2055 | MACHINE_CONFIG_END | |
2056 | ||
2057 | static MACHINE_CONFIG_START( hdrivair_machine, harddriv_new_state ) | |
2058 | MCFG_DEVICE_ADD("mainpcb", HDRIVAIR_BOARD_DEVICE, 0) | |
2059 | MACHINE_CONFIG_END | |
2060 | ||
2061 | static MACHINE_CONFIG_START( hdrivairp_machine, harddriv_new_state ) | |
2062 | MCFG_DEVICE_ADD("mainpcb", HDRIVAIRP_BOARD_DEVICE, 0) | |
2063 | MACHINE_CONFIG_END | |
2064 | ||
2065 | static MACHINE_CONFIG_START( steeltal_machine, harddriv_new_state ) | |
2066 | MCFG_DEVICE_ADD("mainpcb", STEELTAL_BOARD_DEVICE, 0) | |
2067 | MACHINE_CONFIG_END | |
2068 | ||
2069 | static MACHINE_CONFIG_START( steeltal1_machine, harddriv_new_state ) | |
2070 | MCFG_DEVICE_ADD("mainpcb", STEELTAL1_BOARD_DEVICE, 0) | |
2071 | MACHINE_CONFIG_END | |
2072 | ||
2073 | static MACHINE_CONFIG_START( steeltalp_machine, harddriv_new_state ) | |
2074 | MCFG_DEVICE_ADD("mainpcb", STEELTALP_BOARD_DEVICE, 0) | |
2075 | MACHINE_CONFIG_END | |
2076 | ||
2077 | WRITE_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 | ||
2086 | static 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)) | |
2097 | MACHINE_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. | |
2101 | TIMER_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 | ||
1543 | 2112 | /************************************* |
1544 | 2113 | * |
1545 | 2114 | * ROM definition(s) |
r241781 | r241782 | |
1554 | 2123 | */ |
1555 | 2124 | |
1556 | 2125 | ROM_START( harddriv ) |
1557 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2126 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
1558 | 2127 | ROM_LOAD16_BYTE( "136052-7105.200r", 0x000000, 0x010000, CRC(af5d5c3e) SHA1(09ccf4aa933413b71b6a42796d42299e1334902f) ) |
1559 | 2128 | ROM_LOAD16_BYTE( "136052-7113.210r", 0x000001, 0x010000, CRC(3330a942) SHA1(b9210f6befd875be8bc1dbd31f44d0cb63166748) ) |
1560 | 2129 | ROM_LOAD16_BYTE( "136052-2106.200s", 0x020000, 0x010000, CRC(a668db0e) SHA1(8ac405a0ba12bac9acabdb64970608d1b2b1a99b) ) |
r241781 | r241782 | |
1564 | 2133 | ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) ) |
1565 | 2134 | ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) ) |
1566 | 2135 | |
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 */ | |
1568 | 2137 | ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) |
1569 | 2138 | ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) |
1570 | 2139 | |
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 */ | |
1572 | 2141 | ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) |
1573 | 2142 | ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) |
1574 | 2143 | ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) |
1575 | 2144 | ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) |
1576 | 2145 | |
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 */ | |
1578 | 2147 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
1579 | 2148 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
1580 | 2149 | ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) |
1581 | 2150 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
1582 | 2151 | |
1583 | ROM_REGION( 0x800, "200e", 0 ) | |
2152 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
1584 | 2153 | ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) ) |
1585 | 2154 | |
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) ) | |
1588 | 2157 | ROM_END |
1589 | 2158 | |
1590 | 2159 | |
2160 | ||
1591 | 2161 | ROM_START( harddrivg ) |
1592 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2162 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
1593 | 2163 | ROM_LOAD16_BYTE( "136052-7205.200r", 0x000000, 0x010000, CRC(b50b1968) SHA1(b6fd9f0600cba995bf31fd0f30f15f091bbbfb09) ) |
1594 | 2164 | ROM_LOAD16_BYTE( "136052-7213.210r", 0x000001, 0x010000, CRC(e6d57108) SHA1(a4eda6db4ec67b1cb8f9bfee17d8adc93675ef8a) ) |
1595 | 2165 | ROM_LOAD16_BYTE( "136052-4206.200s", 0x020000, 0x010000, CRC(70f78c50) SHA1(6baed202937c455c7c6e4baa74ee7858673a37fc) ) |
r241781 | r241782 | |
1599 | 2169 | ROM_LOAD16_BYTE( "136052-4211.200x", 0x0c0000, 0x010000, CRC(20d1b3d5) SHA1(b7c4a2cf6ba729530c24980704989b3a3efb343b) ) |
1600 | 2170 | ROM_LOAD16_BYTE( "136052-4219.210x", 0x0c0001, 0x010000, CRC(105e7052) SHA1(a8d13c35418e58410cfd74c243b74963f1553068) ) |
1601 | 2171 | |
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 */ | |
1603 | 2173 | ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) |
1604 | 2174 | ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) |
1605 | 2175 | |
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 */ | |
1607 | 2177 | ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) |
1608 | 2178 | ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) |
1609 | 2179 | ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) |
1610 | 2180 | ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) |
1611 | 2181 | |
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 */ | |
1613 | 2183 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
1614 | 2184 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
1615 | 2185 | ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) |
1616 | 2186 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
1617 | 2187 | |
1618 | ROM_REGION( 0x800, "200e", 0 ) | |
2188 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
1619 | 2189 | ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) ) |
1620 | 2190 | |
1621 | ROM_REGION( 0x800, "210e", 0 ) | |
2191 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
1622 | 2192 | ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) ) |
1623 | 2193 | ROM_END |
1624 | 2194 | |
1625 | 2195 | |
1626 | 2196 | ROM_START( harddrivj ) |
1627 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2197 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
1628 | 2198 | ROM_LOAD16_BYTE( "136052-7805.200r", 0x000000, 0x010000, CRC(f170c842) SHA1(842cef66646a664300a7e2b827c0bbd53e5f27ad) ) |
1629 | 2199 | ROM_LOAD16_BYTE( "136052-7813.210r", 0x000001, 0x010000, CRC(e5a3367d) SHA1(96b3a6fb5561fa59d7ac4b840fa1891d02f1bd8c) ) |
1630 | 2200 | ROM_LOAD16_BYTE( "136052-6806.200s", 0x020000, 0x010000, CRC(bd68696e) SHA1(33b173f210183fef84c4c04b3bff515d79b4924d) ) |
r241781 | r241782 | |
1636 | 2206 | ROM_LOAD16_BYTE( "136052-6811.200x", 0x0c0000, 0x010000, CRC(7bc5c8da) SHA1(ac228d6391bc9ac4238f953f9ad6eb93b3ff9958) ) |
1637 | 2207 | ROM_LOAD16_BYTE( "136052-6819.210x", 0x0c0001, 0x010000, CRC(368b7e17) SHA1(e8742edec6961173df4450073a427cf3b9f3ff57) ) |
1638 | 2208 | |
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 */ | |
1640 | 2210 | ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) |
1641 | 2211 | ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) |
1642 | 2212 | |
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 */ | |
1644 | 2214 | ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) |
1645 | 2215 | ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) |
1646 | 2216 | ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) |
1647 | 2217 | ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) |
1648 | 2218 | |
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 */ | |
1650 | 2220 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
1651 | 2221 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
1652 | 2222 | ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) |
1653 | 2223 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
1654 | 2224 | |
1655 | ROM_REGION( 0x800, "200e", 0 ) | |
2225 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
1656 | 2226 | ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) ) |
1657 | 2227 | |
1658 | ROM_REGION( 0x800, "210e", 0 ) | |
2228 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
1659 | 2229 | ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) ) |
1660 | 2230 | ROM_END |
1661 | 2231 | |
1662 | 2232 | |
1663 | 2233 | ROM_START( harddrivb ) |
1664 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2234 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
1665 | 2235 | ROM_LOAD16_BYTE( "136052-7905.200r", 0x000000, 0x010000, CRC(c4379a2e) SHA1(41dc66c1576c591520543343a798e0d80def2188) ) |
1666 | 2236 | ROM_LOAD16_BYTE( "136052-7913.210r", 0x000001, 0x010000, CRC(1e76fa17) SHA1(80ec1de4c8a4622fb5c65ec3e8c194a8eabacc38) ) |
1667 | 2237 | ROM_LOAD16_BYTE( "136052-6906.200s", 0x020000, 0x010000, CRC(47c4498b) SHA1(aad3463f29ffc733ab42a7abf739ca698cdd8ec1) ) |
r241781 | r241782 | |
1671 | 2241 | ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) ) |
1672 | 2242 | ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) ) |
1673 | 2243 | |
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 */ | |
1675 | 2245 | ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) |
1676 | 2246 | ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) |
1677 | 2247 | |
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 */ | |
1679 | 2249 | ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) |
1680 | 2250 | ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) |
1681 | 2251 | ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) |
1682 | 2252 | ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) |
1683 | 2253 | |
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 */ | |
1685 | 2255 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
1686 | 2256 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
1687 | 2257 | ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) |
1688 | 2258 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
1689 | 2259 | |
1690 | ROM_REGION( 0x800, "200e", 0 ) | |
2260 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
1691 | 2261 | ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) ) |
1692 | 2262 | |
1693 | ROM_REGION( 0x800, "210e", 0 ) | |
2263 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
1694 | 2264 | ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) ) |
1695 | 2265 | ROM_END |
1696 | 2266 | |
1697 | 2267 | |
1698 | 2268 | ROM_START( harddrivb6 ) |
1699 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2269 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
1700 | 2270 | ROM_LOAD16_BYTE( "136052-6905.200r", 0x000000, 0x010000, CRC(b1f38593) SHA1(958622128c7c687071211343ef657c38f928e25a) ) |
1701 | 2271 | ROM_LOAD16_BYTE( "136052-6913.210r", 0x000001, 0x010000, CRC(15eb0da5) SHA1(0200328582c77d4d64e9f7df1f8755f7f4975ac3) ) |
1702 | 2272 | ROM_LOAD16_BYTE( "136052-6906.200s", 0x020000, 0x010000, CRC(47c4498b) SHA1(aad3463f29ffc733ab42a7abf739ca698cdd8ec1) ) |
r241781 | r241782 | |
1706 | 2276 | ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) ) |
1707 | 2277 | ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) ) |
1708 | 2278 | |
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 */ | |
1710 | 2280 | ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) |
1711 | 2281 | ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) |
1712 | 2282 | |
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 */ | |
1714 | 2284 | ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) |
1715 | 2285 | ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) |
1716 | 2286 | ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) |
1717 | 2287 | ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) |
1718 | 2288 | |
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 */ | |
1720 | 2290 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
1721 | 2291 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
1722 | 2292 | ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) |
1723 | 2293 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
1724 | 2294 | |
1725 | ROM_REGION( 0x800, "200e", 0 ) | |
2295 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
1726 | 2296 | ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) ) |
1727 | 2297 | |
1728 | ROM_REGION( 0x800, "210e", 0 ) | |
2298 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
1729 | 2299 | ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) ) |
1730 | 2300 | ROM_END |
1731 | 2301 | |
1732 | 2302 | |
1733 | 2303 | ROM_START( harddrivj6 ) |
1734 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2304 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
1735 | 2305 | ROM_LOAD16_BYTE( "136052-6805.200r", 0x000000, 0x010000, CRC(e61ce7af) SHA1(38115a5a44f330abf1f7d684e630a1a232769f7c) ) |
1736 | 2306 | ROM_LOAD16_BYTE( "136052-6813.210r", 0x000001, 0x010000, CRC(adfef1e7) SHA1(dc1bdb5ce9143a94d734ce9ecdf9195589608b65) ) |
1737 | 2307 | ROM_LOAD16_BYTE( "136052-6806.200s", 0x020000, 0x010000, CRC(bd68696e) SHA1(33b173f210183fef84c4c04b3bff515d79b4924d) ) |
r241781 | r241782 | |
1743 | 2313 | ROM_LOAD16_BYTE( "136052-6811.200x", 0x0c0000, 0x010000, CRC(7bc5c8da) SHA1(ac228d6391bc9ac4238f953f9ad6eb93b3ff9958) ) |
1744 | 2314 | ROM_LOAD16_BYTE( "136052-6819.210x", 0x0c0001, 0x010000, CRC(368b7e17) SHA1(e8742edec6961173df4450073a427cf3b9f3ff57) ) |
1745 | 2315 | |
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 */ | |
1747 | 2317 | ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) |
1748 | 2318 | ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) |
1749 | 2319 | |
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 */ | |
1751 | 2321 | ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) |
1752 | 2322 | ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) |
1753 | 2323 | ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) |
1754 | 2324 | ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) |
1755 | 2325 | |
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 */ | |
1757 | 2327 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
1758 | 2328 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
1759 | 2329 | ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) |
1760 | 2330 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
1761 | 2331 | |
1762 | ROM_REGION( 0x800, "200e", 0 ) | |
2332 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
1763 | 2333 | ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) ) |
1764 | 2334 | |
1765 | ROM_REGION( 0x800, "210e", 0 ) | |
2335 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
1766 | 2336 | ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) ) |
1767 | 2337 | ROM_END |
1768 | 2338 | |
1769 | 2339 | |
1770 | 2340 | ROM_START( harddrivb5 ) |
1771 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2341 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
1772 | 2342 | ROM_LOAD16_BYTE( "136052-5905.200r", 0x000000, 0x010000, CRC(6dd28313) SHA1(c1f860470070dad7d8865aca508ecf5eb92fa8c5) ) |
1773 | 2343 | ROM_LOAD16_BYTE( "136052-5913.210r", 0x000001, 0x010000, CRC(2e5a006f) SHA1(8a2da1868bbad54b33e993f5bf9ba61186caef5b) ) |
1774 | 2344 | ROM_LOAD16_BYTE( "136052-5906.200s", 0x020000, 0x010000, CRC(206b59db) SHA1(2bbae0ac4af9cdda44d6d8b5fcf6b3b1c3103796) ) |
r241781 | r241782 | |
1778 | 2348 | ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) ) |
1779 | 2349 | ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) ) |
1780 | 2350 | |
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 */ | |
1782 | 2352 | ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) |
1783 | 2353 | ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) |
1784 | 2354 | |
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 */ | |
1786 | 2356 | ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) |
1787 | 2357 | ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) |
1788 | 2358 | ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) |
1789 | 2359 | ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) |
1790 | 2360 | |
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 */ | |
1792 | 2362 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
1793 | 2363 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
1794 | 2364 | ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) |
1795 | 2365 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
1796 | 2366 | |
1797 | ROM_REGION( 0x800, "200e", 0 ) | |
2367 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
1798 | 2368 | ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) ) |
1799 | 2369 | |
1800 | ROM_REGION( 0x800, "210e", 0 ) | |
2370 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
1801 | 2371 | ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) ) |
1802 | 2372 | ROM_END |
1803 | 2373 | |
1804 | 2374 | |
1805 | 2375 | ROM_START( harddrivg4 ) |
1806 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2376 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
1807 | 2377 | ROM_LOAD16_BYTE( "136052-4205.200r", 0x000000, 0x010000, CRC(94db6d9e) SHA1(98a509daacb9f18c7171246d1782d09a6456e241) ) |
1808 | 2378 | ROM_LOAD16_BYTE( "136052-4213.210r", 0x000001, 0x010000, CRC(cacaf671) SHA1(7bd0f531402b2f10cb00bb8f7ca0b62eed23bffa) ) |
1809 | 2379 | ROM_LOAD16_BYTE( "136052-4206.200s", 0x020000, 0x010000, CRC(70f78c50) SHA1(6baed202937c455c7c6e4baa74ee7858673a37fc) ) |
r241781 | r241782 | |
1813 | 2383 | ROM_LOAD16_BYTE( "136052-4211.200x", 0x0c0000, 0x010000, CRC(20d1b3d5) SHA1(b7c4a2cf6ba729530c24980704989b3a3efb343b) ) |
1814 | 2384 | ROM_LOAD16_BYTE( "136052-4219.210x", 0x0c0001, 0x010000, CRC(105e7052) SHA1(a8d13c35418e58410cfd74c243b74963f1553068) ) |
1815 | 2385 | |
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 */ | |
1817 | 2387 | ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) |
1818 | 2388 | ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) |
1819 | 2389 | |
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 */ | |
1821 | 2391 | ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) |
1822 | 2392 | ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) |
1823 | 2393 | ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) |
1824 | 2394 | ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) |
1825 | 2395 | |
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 */ | |
1827 | 2397 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
1828 | 2398 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
1829 | 2399 | ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) |
1830 | 2400 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
1831 | 2401 | |
1832 | ROM_REGION( 0x800, "200e", 0 ) | |
2402 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
1833 | 2403 | ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) ) |
1834 | 2404 | |
1835 | ROM_REGION( 0x800, "210e", 0 ) | |
2405 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
1836 | 2406 | ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) ) |
1837 | 2407 | ROM_END |
1838 | 2408 | |
1839 | 2409 | |
1840 | 2410 | ROM_START( harddriv3 ) |
1841 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2411 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
1842 | 2412 | ROM_LOAD16_BYTE( "136052-3105.200r", 0x000000, 0x010000, CRC(a42a2c69) SHA1(66233f25533106aab69df21db69f96368f1399a9) ) |
1843 | 2413 | ROM_LOAD16_BYTE( "136052-3113.210r", 0x000001, 0x010000, CRC(358995b5) SHA1(f18c0da58ec7befefc61d5f0d35787516b775c92) ) |
1844 | 2414 | ROM_LOAD16_BYTE( "136052-2106.200s", 0x020000, 0x010000, CRC(a668db0e) SHA1(8ac405a0ba12bac9acabdb64970608d1b2b1a99b) ) |
r241781 | r241782 | |
1848 | 2418 | ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) ) |
1849 | 2419 | ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) ) |
1850 | 2420 | |
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 */ | |
1852 | 2422 | ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) |
1853 | 2423 | ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) |
1854 | 2424 | |
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 */ | |
1856 | 2426 | ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) |
1857 | 2427 | ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) |
1858 | 2428 | ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) |
1859 | 2429 | ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) |
1860 | 2430 | |
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 */ | |
1862 | 2432 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
1863 | 2433 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
1864 | 2434 | ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) |
1865 | 2435 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
1866 | 2436 | |
1867 | ROM_REGION( 0x800, "200e", 0 ) | |
2437 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
1868 | 2438 | ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) ) |
1869 | 2439 | |
1870 | ROM_REGION( 0x800, "210e", 0 ) | |
2440 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
1871 | 2441 | ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) ) |
1872 | 2442 | ROM_END |
1873 | 2443 | |
1874 | 2444 | |
1875 | 2445 | ROM_START( harddriv2 ) |
1876 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2446 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
1877 | 2447 | ROM_LOAD16_BYTE( "136052-2105.200r", 0x000000, 0x010000, CRC(967903b9) SHA1(4363f3b3f08d00819f47a3682462fd0e5dc4e0ac) ) |
1878 | 2448 | ROM_LOAD16_BYTE( "136052-2113.210r", 0x000001, 0x010000, CRC(c87f7067) SHA1(3d85d2ba818739ed05086502cd8e57438251b20b) ) |
1879 | 2449 | ROM_LOAD16_BYTE( "136052-2106.200s", 0x020000, 0x010000, CRC(a668db0e) SHA1(8ac405a0ba12bac9acabdb64970608d1b2b1a99b) ) |
r241781 | r241782 | |
1883 | 2453 | ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) ) |
1884 | 2454 | ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) ) |
1885 | 2455 | |
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 */ | |
1887 | 2457 | ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) |
1888 | 2458 | ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) |
1889 | 2459 | |
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 */ | |
1891 | 2461 | ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) |
1892 | 2462 | ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) |
1893 | 2463 | ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) |
1894 | 2464 | ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) |
1895 | 2465 | |
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 */ | |
1897 | 2467 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
1898 | 2468 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
1899 | 2469 | ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) |
1900 | 2470 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
1901 | 2471 | |
1902 | ROM_REGION( 0x800, "200e", 0 ) | |
2472 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
1903 | 2473 | ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) ) |
1904 | 2474 | |
1905 | ROM_REGION( 0x800, "210e", 0 ) | |
2475 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
1906 | 2476 | ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) ) |
1907 | 2477 | ROM_END |
1908 | 2478 | |
1909 | 2479 | |
1910 | 2480 | ROM_START( harddriv1 ) |
1911 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2481 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
1912 | 2482 | ROM_LOAD16_BYTE( "136052-1105.200r", 0x000000, 0x010000, CRC(1dfda789) SHA1(83be0d66fe21e974f8d4582b0ab60245f1db7e55) ) |
1913 | 2483 | ROM_LOAD16_BYTE( "136052-1113.210r", 0x000001, 0x010000, CRC(db2f6593) SHA1(864ea5604cea2507b180a91b35e349d3924bf9bc) ) |
1914 | 2484 | ROM_LOAD16_BYTE( "136052-1106.200s", 0x020000, 0x010000, CRC(e82210fd) SHA1(916e674017f5187531c2de7961791c060f8412c7) ) |
r241781 | r241782 | |
1918 | 2488 | ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) ) |
1919 | 2489 | ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) ) |
1920 | 2490 | |
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 */ | |
1922 | 2492 | ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) |
1923 | 2493 | ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) |
1924 | 2494 | |
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 */ | |
1926 | 2496 | ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) |
1927 | 2497 | ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) |
1928 | 2498 | ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) |
1929 | 2499 | ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) |
1930 | 2500 | |
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 */ | |
1932 | 2502 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
1933 | 2503 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
1934 | 2504 | ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) |
1935 | 2505 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
1936 | 2506 | |
1937 | ROM_REGION( 0x800, "200e", 0 ) | |
2507 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
1938 | 2508 | ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) ) |
1939 | 2509 | |
1940 | ROM_REGION( 0x800, "210e", 0 ) | |
2510 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
1941 | 2511 | ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) ) |
1942 | 2512 | ROM_END |
1943 | 2513 | |
1944 | 2514 | |
1945 | 2515 | ROM_START( harddrivc ) |
1946 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2516 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
1947 | 2517 | ROM_LOAD16_BYTE( "136068-2102.200r", 0x000000, 0x010000, CRC(6252048b) SHA1(64caf3adfad6965768fc6d39a8bcde62fe6dfa9e) ) |
1948 | 2518 | ROM_LOAD16_BYTE( "136068-2101.210r", 0x000001, 0x010000, CRC(4805ba06) SHA1(e0c2d935ced05b8162f2925520422184a81d5294) ) |
1949 | 2519 | ROM_LOAD16_BYTE( "136068-2104.200s", 0x020000, 0x010000, CRC(8246f945) SHA1(633b6c9a5d3e33d3035ccdb7b6ad883c334a4db9) ) |
r241781 | r241782 | |
1953 | 2523 | ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) ) |
1954 | 2524 | ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) ) |
1955 | 2525 | |
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 */ | |
1957 | 2527 | ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) ) |
1958 | 2528 | ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) ) |
1959 | 2529 | |
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 */ | |
1961 | 2531 | ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) |
1962 | 2532 | ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) |
1963 | 2533 | ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) |
1964 | 2534 | ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) |
1965 | 2535 | |
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 */ | |
1967 | 2537 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
1968 | 2538 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
1969 | 2539 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
1970 | 2540 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
1971 | 2541 | |
1972 | ROM_REGION( 0x800, "200e", 0 ) | |
2542 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
1973 | 2543 | ROM_LOAD( "harddrivc.200e", 0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) ) |
1974 | 2544 | |
1975 | ROM_REGION( 0x800, "210e", 0 ) | |
2545 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
1976 | 2546 | ROM_LOAD( "harddrivc.210e", 0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) ) |
1977 | 2547 | ROM_END |
1978 | 2548 | |
1979 | 2549 | |
1980 | 2550 | ROM_START( harddrivcg ) |
1981 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2551 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
1982 | 2552 | ROM_LOAD16_BYTE( "136068-2202.200r", 0x000000, 0x010000, CRC(ea09bdc2) SHA1(9e38ed0a47a2bfb6b80cbf1e0b3e891b94f30c10) ) |
1983 | 2553 | ROM_LOAD16_BYTE( "136068-2201.210r", 0x000001, 0x010000, CRC(a5e9947f) SHA1(75973346c9399752d8ae82fbada3a24c6d5fec94) ) |
1984 | 2554 | ROM_LOAD16_BYTE( "136068-2204.200s", 0x020000, 0x010000, CRC(65792c94) SHA1(89e93cf0d2afc4bd8a01155ba908c9aa7149dc78) ) |
r241781 | r241782 | |
1988 | 2558 | ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) ) |
1989 | 2559 | ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) ) |
1990 | 2560 | |
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 */ | |
1992 | 2562 | ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) ) |
1993 | 2563 | ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) ) |
1994 | 2564 | |
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 */ | |
1996 | 2566 | ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) |
1997 | 2567 | ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) |
1998 | 2568 | ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) |
1999 | 2569 | ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) |
2000 | 2570 | |
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 */ | |
2002 | 2572 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
2003 | 2573 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
2004 | 2574 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
2005 | 2575 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
2006 | 2576 | |
2007 | ROM_REGION( 0x800, "200e", 0 ) | |
2577 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2008 | 2578 | ROM_LOAD( "harddrivc.200e", 0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) ) |
2009 | 2579 | |
2010 | ROM_REGION( 0x800, "210e", 0 ) | |
2580 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2011 | 2581 | ROM_LOAD( "harddrivc.210e", 0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) ) |
2012 | 2582 | ROM_END |
2013 | 2583 | |
2014 | 2584 | |
2015 | 2585 | ROM_START( harddrivcb ) |
2016 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2586 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2017 | 2587 | ROM_LOAD16_BYTE( "136068-2102.200r", 0x000000, 0x010000, CRC(6252048b) SHA1(64caf3adfad6965768fc6d39a8bcde62fe6dfa9e) ) |
2018 | 2588 | ROM_LOAD16_BYTE( "136068-2101.210r", 0x000001, 0x010000, CRC(4805ba06) SHA1(e0c2d935ced05b8162f2925520422184a81d5294) ) |
2019 | 2589 | ROM_LOAD16_BYTE( "136068-2104.200s", 0x020000, 0x010000, CRC(8246f945) SHA1(633b6c9a5d3e33d3035ccdb7b6ad883c334a4db9) ) |
r241781 | r241782 | |
2023 | 2593 | ROM_LOAD16_BYTE( "136068-2914.200x", 0x0c0000, 0x010000, CRC(dd2998a5) SHA1(36c71549d114309b9072ced83ed149cad1d23646) ) |
2024 | 2594 | ROM_LOAD16_BYTE( "136068-2913.210x", 0x0c0001, 0x010000, CRC(a211754d) SHA1(b93d4867f664caa76f2170ef0934194de29a5516) ) |
2025 | 2595 | |
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 */ | |
2027 | 2597 | ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) ) |
2028 | 2598 | ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) ) |
2029 | 2599 | |
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 */ | |
2031 | 2601 | ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) |
2032 | 2602 | ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) |
2033 | 2603 | ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) |
2034 | 2604 | ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) |
2035 | 2605 | |
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 */ | |
2037 | 2607 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
2038 | 2608 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
2039 | 2609 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
2040 | 2610 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
2041 | 2611 | |
2042 | ROM_REGION( 0x800, "200e", 0 ) | |
2612 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2043 | 2613 | ROM_LOAD( "harddrivc.200e", 0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) ) |
2044 | 2614 | |
2045 | ROM_REGION( 0x800, "210e", 0 ) | |
2615 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2046 | 2616 | ROM_LOAD( "harddrivc.210e", 0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) ) |
2047 | 2617 | ROM_END |
2048 | 2618 | |
2049 | 2619 | |
2050 | 2620 | ROM_START( harddrivc1 ) |
2051 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2621 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2052 | 2622 | ROM_LOAD16_BYTE( "136068-1102.200r", 0x000000, 0x010000, CRC(f1d3779f) SHA1(1ab84fc920f6810aa7c1af80b0472ea17d07e58b) ) |
2053 | 2623 | ROM_LOAD16_BYTE( "136068-1101.210r", 0x000001, 0x010000, CRC(3ea4d3d9) SHA1(3901e8c07bed35bf6a55ab92f5c7eb9335675792) ) |
2054 | 2624 | ROM_LOAD16_BYTE( "136068-1104.200s", 0x020000, 0x010000, CRC(34133511) SHA1(71c56607cecd379761f700d181f6e91e7bb6fdfc) ) |
r241781 | r241782 | |
2058 | 2628 | ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) ) |
2059 | 2629 | ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) ) |
2060 | 2630 | |
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 */ | |
2062 | 2632 | ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) ) |
2063 | 2633 | ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) ) |
2064 | 2634 | |
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 */ | |
2066 | 2636 | ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) |
2067 | 2637 | ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) |
2068 | 2638 | ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) |
2069 | 2639 | ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) |
2070 | 2640 | |
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 */ | |
2072 | 2642 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
2073 | 2643 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
2074 | 2644 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
2075 | 2645 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
2076 | 2646 | |
2077 | ROM_REGION( 0x800, "200e", 0 ) | |
2647 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2078 | 2648 | ROM_LOAD( "harddrivc.200e", 0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) ) |
2079 | 2649 | |
2080 | ROM_REGION( 0x800, "210e", 0 ) | |
2650 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2081 | 2651 | ROM_LOAD( "harddrivc.210e", 0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) ) |
2082 | 2652 | ROM_END |
2083 | 2653 | |
2084 | 2654 | |
2085 | 2655 | ROM_START( stunrun ) |
2086 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2656 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2087 | 2657 | ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) |
2088 | 2658 | ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) |
2089 | 2659 | ROM_LOAD16_BYTE( "136070-6104.200s", 0x020000, 0x010000, CRC(f469f91c) SHA1(488ea6251ff4028edaf00bb1ded74cefdc71a373) ) |
r241781 | r241782 | |
2097 | 2667 | ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) |
2098 | 2668 | ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) |
2099 | 2669 | |
2100 | ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2670 | ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2101 | 2671 | ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) |
2102 | 2672 | ROM_CONTINUE( 0x004000, 0x00c000 ) |
2103 | 2673 | |
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 */ | |
2105 | 2675 | ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) |
2106 | 2676 | ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) |
2107 | 2677 | ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) |
r241781 | r241782 | |
2109 | 2679 | ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) |
2110 | 2680 | ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) |
2111 | 2681 | |
2112 | ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2682 | ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2113 | 2683 | ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) |
2114 | 2684 | ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) |
2115 | 2685 | ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) |
2116 | 2686 | ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) |
2117 | 2687 | |
2118 | ROM_REGION( 0x800, "200e", 0 ) | |
2688 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2119 | 2689 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2120 | 2690 | |
2121 | ROM_REGION( 0x800, "210e", 0 ) | |
2691 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2122 | 2692 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2123 | 2693 | ROM_END |
2124 | 2694 | |
2125 | 2695 | |
2126 | 2696 | ROM_START( stunrunj ) |
2127 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2697 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2128 | 2698 | ROM_LOAD16_BYTE( "136070-3402.200r", 0x000000, 0x010000, CRC(d8d56923) SHA1(248b22dab791c2d9ee6e6097dac9f3bf85d572be) ) |
2129 | 2699 | ROM_LOAD16_BYTE( "136070-3401.210r", 0x000001, 0x010000, CRC(ce11126c) SHA1(cf27b56103048cc23dc6763763b7419583a27c76) ) |
2130 | 2700 | ROM_LOAD16_BYTE( "136070-7404.200s", 0x020000, 0x010000, CRC(81da3e74) SHA1(38864aac479a8927d168ee977fd0981a7926d0fd) ) |
r241781 | r241782 | |
2138 | 2708 | ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) |
2139 | 2709 | ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) |
2140 | 2710 | |
2141 | ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2711 | ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2142 | 2712 | ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) |
2143 | 2713 | ROM_CONTINUE( 0x004000, 0x00c000 ) |
2144 | 2714 | |
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 */ | |
2146 | 2716 | ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) |
2147 | 2717 | ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) |
2148 | 2718 | ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) |
r241781 | r241782 | |
2150 | 2720 | ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) |
2151 | 2721 | ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) |
2152 | 2722 | |
2153 | ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2723 | ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2154 | 2724 | ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) |
2155 | 2725 | ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) |
2156 | 2726 | ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) |
2157 | 2727 | ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) |
2158 | 2728 | |
2159 | ROM_REGION( 0x800, "200e", 0 ) | |
2729 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2160 | 2730 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2161 | 2731 | |
2162 | ROM_REGION( 0x800, "210e", 0 ) | |
2732 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2163 | 2733 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2164 | 2734 | ROM_END |
2165 | 2735 | |
2166 | 2736 | |
2167 | 2737 | ROM_START( stunrun5 ) |
2168 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2738 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2169 | 2739 | ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) |
2170 | 2740 | ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) |
2171 | 2741 | ROM_LOAD16_BYTE( "136070-5104.200s", 0x020000, 0x010000, CRC(d5c601fe) SHA1(ab61e11723ab9b92fb98b6f8e520a7b323caae64) ) |
r241781 | r241782 | |
2179 | 2749 | ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) |
2180 | 2750 | ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) |
2181 | 2751 | |
2182 | ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2752 | ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2183 | 2753 | ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) |
2184 | 2754 | ROM_CONTINUE( 0x004000, 0x00c000 ) |
2185 | 2755 | |
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 */ | |
2187 | 2757 | ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) |
2188 | 2758 | ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) |
2189 | 2759 | ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) |
r241781 | r241782 | |
2191 | 2761 | ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) |
2192 | 2762 | ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) |
2193 | 2763 | |
2194 | ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2764 | ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2195 | 2765 | ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) |
2196 | 2766 | ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) |
2197 | 2767 | ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) |
2198 | 2768 | ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) |
2199 | 2769 | |
2200 | ROM_REGION( 0x800, "200e", 0 ) | |
2770 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2201 | 2771 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2202 | 2772 | |
2203 | ROM_REGION( 0x800, "210e", 0 ) | |
2773 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2204 | 2774 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2205 | 2775 | ROM_END |
2206 | 2776 | |
2207 | 2777 | |
2208 | 2778 | ROM_START( stunrune ) |
2209 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2779 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2210 | 2780 | ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) |
2211 | 2781 | ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) |
2212 | 2782 | ROM_LOAD16_BYTE( "136070-5004.200s", 0x020000, 0x010000, CRC(c2e4bde8) SHA1(766242455b0be6dc7b698cc6fe86d90991ca2e0a) ) |
r241781 | r241782 | |
2220 | 2790 | ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) |
2221 | 2791 | ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) |
2222 | 2792 | |
2223 | ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2793 | ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2224 | 2794 | ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) |
2225 | 2795 | ROM_CONTINUE( 0x004000, 0x00c000 ) |
2226 | 2796 | |
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 */ | |
2228 | 2798 | ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) |
2229 | 2799 | ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) |
2230 | 2800 | ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) |
r241781 | r241782 | |
2232 | 2802 | ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) |
2233 | 2803 | ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) |
2234 | 2804 | |
2235 | ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2805 | ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2236 | 2806 | ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) |
2237 | 2807 | ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) |
2238 | 2808 | ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) |
2239 | 2809 | ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) |
2240 | 2810 | |
2241 | ROM_REGION( 0x800, "200e", 0 ) | |
2811 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2242 | 2812 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2243 | 2813 | |
2244 | ROM_REGION( 0x800, "210e", 0 ) | |
2814 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2245 | 2815 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2246 | 2816 | ROM_END |
2247 | 2817 | |
2248 | 2818 | |
2249 | 2819 | ROM_START( stunrun4 ) |
2250 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2820 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2251 | 2821 | ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) |
2252 | 2822 | ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) |
2253 | 2823 | ROM_LOAD16_BYTE( "136070-4104.200s", 0x020000, 0x010000, CRC(62c7700b) SHA1(31d7a39df7353e60b806c204bfdd75c06b17c984) ) |
r241781 | r241782 | |
2261 | 2831 | ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) |
2262 | 2832 | ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) |
2263 | 2833 | |
2264 | ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2834 | ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2265 | 2835 | ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) |
2266 | 2836 | ROM_CONTINUE( 0x004000, 0x00c000 ) |
2267 | 2837 | |
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 */ | |
2269 | 2839 | ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) |
2270 | 2840 | ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) |
2271 | 2841 | ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) |
r241781 | r241782 | |
2273 | 2843 | ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) |
2274 | 2844 | ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) |
2275 | 2845 | |
2276 | ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2846 | ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2277 | 2847 | ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) |
2278 | 2848 | ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) |
2279 | 2849 | ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) |
2280 | 2850 | ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) |
2281 | 2851 | |
2282 | ROM_REGION( 0x800, "200e", 0 ) | |
2852 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2283 | 2853 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2284 | 2854 | |
2285 | ROM_REGION( 0x800, "210e", 0 ) | |
2855 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2286 | 2856 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2287 | 2857 | ROM_END |
2288 | 2858 | |
2289 | 2859 | |
2290 | 2860 | ROM_START( stunrun3 ) |
2291 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2861 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2292 | 2862 | ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) |
2293 | 2863 | ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) |
2294 | 2864 | ROM_LOAD16_BYTE( "136070-2104.200s", 0x020000, 0x010000, CRC(6acdeeaa) SHA1(a4cbe648ad2fee3bb945fbc8055b76be1f5c03d1) ) |
r241781 | r241782 | |
2302 | 2872 | ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) |
2303 | 2873 | ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) |
2304 | 2874 | |
2305 | ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2875 | ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2306 | 2876 | ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) |
2307 | 2877 | ROM_CONTINUE( 0x004000, 0x00c000 ) |
2308 | 2878 | |
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 */ | |
2310 | 2880 | ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) |
2311 | 2881 | ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) |
2312 | 2882 | ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) |
r241781 | r241782 | |
2314 | 2884 | ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) |
2315 | 2885 | ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) |
2316 | 2886 | |
2317 | ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2887 | ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2318 | 2888 | ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) |
2319 | 2889 | ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) |
2320 | 2890 | ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) |
2321 | 2891 | ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) |
2322 | 2892 | |
2323 | ROM_REGION( 0x800, "200e", 0 ) | |
2893 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2324 | 2894 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2325 | 2895 | |
2326 | ROM_REGION( 0x800, "210e", 0 ) | |
2896 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2327 | 2897 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2328 | 2898 | ROM_END |
2329 | 2899 | |
2330 | 2900 | |
2331 | 2901 | ROM_START( stunrun3e ) |
2332 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2902 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2333 | 2903 | ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) |
2334 | 2904 | ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) |
2335 | 2905 | ROM_LOAD16_BYTE( "136070-3004.200s", 0x020000, 0x010000, CRC(d9474678) SHA1(090b78f9e9d2ecf4218821fc102861df1e27d95a) ) |
r241781 | r241782 | |
2343 | 2913 | ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) |
2344 | 2914 | ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) |
2345 | 2915 | |
2346 | ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2916 | ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2347 | 2917 | ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) |
2348 | 2918 | ROM_CONTINUE( 0x004000, 0x00c000 ) |
2349 | 2919 | |
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 */ | |
2351 | 2921 | ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) |
2352 | 2922 | ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) |
2353 | 2923 | ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) |
r241781 | r241782 | |
2355 | 2925 | ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) |
2356 | 2926 | ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) |
2357 | 2927 | |
2358 | ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2928 | ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2359 | 2929 | ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) |
2360 | 2930 | ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) |
2361 | 2931 | ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) |
2362 | 2932 | ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) |
2363 | 2933 | |
2364 | ROM_REGION( 0x800, "200e", 0 ) | |
2934 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2365 | 2935 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2366 | 2936 | |
2367 | ROM_REGION( 0x800, "210e", 0 ) | |
2937 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2368 | 2938 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2369 | 2939 | ROM_END |
2370 | 2940 | |
2371 | 2941 | |
2372 | 2942 | ROM_START( stunrun2 ) |
2373 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2943 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2374 | 2944 | ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) |
2375 | 2945 | ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) |
2376 | 2946 | ROM_LOAD16_BYTE( "136070-2104.200s", 0x020000, 0x010000, CRC(6acdeeaa) SHA1(a4cbe648ad2fee3bb945fbc8055b76be1f5c03d1) ) |
r241781 | r241782 | |
2384 | 2954 | ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) |
2385 | 2955 | ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) |
2386 | 2956 | |
2387 | ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2957 | ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2388 | 2958 | ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) |
2389 | 2959 | ROM_CONTINUE( 0x004000, 0x00c000 ) |
2390 | 2960 | |
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 */ | |
2392 | 2962 | ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) |
2393 | 2963 | ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) |
2394 | 2964 | ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) |
r241781 | r241782 | |
2396 | 2966 | ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) |
2397 | 2967 | ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) |
2398 | 2968 | |
2399 | ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2969 | ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2400 | 2970 | ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) |
2401 | 2971 | ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) |
2402 | 2972 | ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) |
2403 | 2973 | ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) |
2404 | 2974 | |
2405 | ROM_REGION( 0x800, "200e", 0 ) | |
2975 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2406 | 2976 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2407 | 2977 | |
2408 | ROM_REGION( 0x800, "210e", 0 ) | |
2978 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2409 | 2979 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2410 | 2980 | ROM_END |
2411 | 2981 | |
2412 | 2982 | |
2413 | 2983 | ROM_START( stunrun2e ) |
2414 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
2984 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2415 | 2985 | ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) |
2416 | 2986 | ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) |
2417 | 2987 | ROM_LOAD16_BYTE( "136070-2004.200s", 0x020000, 0x010000, CRC(30303326) SHA1(49a279b5b02af97395dfb8c66410319a807aa4b9) ) |
r241781 | r241782 | |
2425 | 2995 | ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) |
2426 | 2996 | ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) |
2427 | 2997 | |
2428 | ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2998 | ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2429 | 2999 | ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) |
2430 | 3000 | ROM_CONTINUE( 0x004000, 0x00c000 ) |
2431 | 3001 | |
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 */ | |
2433 | 3003 | ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) |
2434 | 3004 | ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) |
2435 | 3005 | ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) |
r241781 | r241782 | |
2437 | 3007 | ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) |
2438 | 3008 | ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) |
2439 | 3009 | |
2440 | ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
3010 | ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2441 | 3011 | ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) |
2442 | 3012 | ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) |
2443 | 3013 | ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) |
2444 | 3014 | ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) |
2445 | 3015 | |
2446 | ROM_REGION( 0x800, "200e", 0 ) | |
3016 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2447 | 3017 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2448 | 3018 | |
2449 | ROM_REGION( 0x800, "210e", 0 ) | |
3019 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2450 | 3020 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2451 | 3021 | ROM_END |
2452 | 3022 | |
2453 | 3023 | |
2454 | 3024 | ROM_START( stunrun0 ) |
2455 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3025 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2456 | 3026 | ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) |
2457 | 3027 | ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) |
2458 | 3028 | ROM_LOAD16_BYTE( "136070-0304.200s", 0x020000, 0x010000, CRC(e7968b1b) SHA1(f2e5b4f64e553041abbe2610968f59cca425a4d4) ) |
r241781 | r241782 | |
2466 | 3036 | ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) |
2467 | 3037 | ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) |
2468 | 3038 | |
2469 | ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */ | |
3039 | ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2470 | 3040 | ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) |
2471 | 3041 | ROM_CONTINUE( 0x004000, 0x00c000 ) |
2472 | 3042 | |
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 */ | |
2474 | 3044 | ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) |
2475 | 3045 | ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) |
2476 | 3046 | ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) |
r241781 | r241782 | |
2478 | 3048 | ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) |
2479 | 3049 | ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) |
2480 | 3050 | |
2481 | ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
3051 | ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2482 | 3052 | ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) |
2483 | 3053 | ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) |
2484 | 3054 | ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) |
2485 | 3055 | ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) |
2486 | 3056 | |
2487 | ROM_REGION( 0x800, "200e", 0 ) | |
3057 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2488 | 3058 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2489 | 3059 | |
2490 | ROM_REGION( 0x800, "210e", 0 ) | |
3060 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2491 | 3061 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2492 | 3062 | ROM_END |
2493 | 3063 | |
2494 | 3064 | |
2495 | 3065 | ROM_START( stunrunp ) |
2496 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3066 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2497 | 3067 | ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) |
2498 | 3068 | ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) |
2499 | 3069 | ROM_LOAD16_BYTE( "prog-hi0.s20", 0x020000, 0x010000, CRC(0be15a99) SHA1(52b152b23af305e95765c72052bb7aba846510d6) ) |
r241781 | r241782 | |
2507 | 3077 | ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) |
2508 | 3078 | ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) |
2509 | 3079 | |
2510 | ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */ | |
3080 | ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */ | |
2511 | 3081 | ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) |
2512 | 3082 | ROM_CONTINUE( 0x004000, 0x00c000 ) |
2513 | 3083 | |
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 */ | |
2515 | 3085 | ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) |
2516 | 3086 | ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) |
2517 | 3087 | ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) |
r241781 | r241782 | |
2519 | 3089 | ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) |
2520 | 3090 | ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) |
2521 | 3091 | |
2522 | ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
3092 | ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */ | |
2523 | 3093 | ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) |
2524 | 3094 | ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) |
2525 | 3095 | ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) |
2526 | 3096 | ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) |
2527 | 3097 | |
2528 | ROM_REGION( 0x800, "200e", 0 ) | |
3098 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2529 | 3099 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2530 | 3100 | |
2531 | ROM_REGION( 0x800, "210e", 0 ) | |
3101 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2532 | 3102 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
2533 | 3103 | ROM_END |
2534 | 3104 | |
2535 | 3105 | |
2536 | 3106 | ROM_START( racedriv ) |
2537 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3107 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2538 | 3108 | ROM_LOAD16_BYTE( "136077-5002.200r", 0x000000, 0x010000, CRC(0a78adca) SHA1(a44722340ff7c99253107be092bec2e87cae340b) ) |
2539 | 3109 | ROM_LOAD16_BYTE( "136077-5001.210r", 0x000001, 0x010000, CRC(74b4cd49) SHA1(48fc4344c092c9eb14249874ac305b87bba53e7e) ) |
2540 | 3110 | ROM_LOAD16_BYTE( "136077-5004.200s", 0x020000, 0x010000, CRC(c0cbdf4e) SHA1(8c7f4f79e90dc7206d9d83d588822000a7a53c52) ) |
r241781 | r241782 | |
2552 | 3122 | ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) |
2553 | 3123 | ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) ) |
2554 | 3124 | |
2555 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3125 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
2556 | 3126 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
2557 | 3127 | |
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 */ | |
2559 | 3129 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
2560 | 3130 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
2561 | 3131 | |
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 */ | |
2563 | 3133 | ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) |
2564 | 3134 | ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) |
2565 | 3135 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
2566 | 3136 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
2567 | 3137 | |
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 */ | |
2569 | 3139 | ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) ) |
2570 | 3140 | ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) ) |
2571 | 3141 | |
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 */ | |
2573 | 3143 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
2574 | 3144 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
2575 | 3145 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
2576 | 3146 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
2577 | 3147 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
2578 | 3148 | |
2579 | ROM_REGION( 0x800, "200e", 0 ) | |
3149 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2580 | 3150 | ROM_LOAD( "racedriv.200e", 0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) ) |
2581 | 3151 | |
2582 | ROM_REGION( 0x800, "210e", 0 ) | |
3152 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2583 | 3153 | ROM_LOAD( "racedriv.210e", 0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) ) |
2584 | 3154 | ROM_END |
2585 | 3155 | |
2586 | 3156 | |
2587 | 3157 | ROM_START( racedrivb ) |
2588 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3158 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2589 | 3159 | ROM_LOAD16_BYTE( "136077-5002.200r", 0x000000, 0x010000, CRC(0a78adca) SHA1(a44722340ff7c99253107be092bec2e87cae340b) ) |
2590 | 3160 | ROM_LOAD16_BYTE( "136077-5001.210r", 0x000001, 0x010000, CRC(74b4cd49) SHA1(48fc4344c092c9eb14249874ac305b87bba53e7e) ) |
2591 | 3161 | ROM_LOAD16_BYTE( "136077-5004.200s", 0x020000, 0x010000, CRC(c0cbdf4e) SHA1(8c7f4f79e90dc7206d9d83d588822000a7a53c52) ) |
r241781 | r241782 | |
2603 | 3173 | ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) |
2604 | 3174 | ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) ) |
2605 | 3175 | |
2606 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3176 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
2607 | 3177 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
2608 | 3178 | |
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 */ | |
2610 | 3180 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
2611 | 3181 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
2612 | 3182 | |
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 */ | |
2614 | 3184 | ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) |
2615 | 3185 | ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) |
2616 | 3186 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
2617 | 3187 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
2618 | 3188 | |
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 */ | |
2620 | 3190 | ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) ) |
2621 | 3191 | ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) ) |
2622 | 3192 | |
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 */ | |
2624 | 3194 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
2625 | 3195 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
2626 | 3196 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
2627 | 3197 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
2628 | 3198 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
2629 | 3199 | |
2630 | ROM_REGION( 0x800, "200e", 0 ) | |
3200 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2631 | 3201 | ROM_LOAD( "racedriv.200e", 0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) ) |
2632 | 3202 | |
2633 | ROM_REGION( 0x800, "210e", 0 ) | |
3203 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2634 | 3204 | ROM_LOAD( "racedriv.210e", 0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) ) |
2635 | 3205 | ROM_END |
2636 | 3206 | |
2637 | 3207 | |
2638 | 3208 | ROM_START( racedrivg ) |
2639 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3209 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2640 | 3210 | ROM_LOAD16_BYTE( "136077-5202.200r", 0x000000, 0x010000, CRC(69016b69) SHA1(8da1314b4b6da6fc95479b9034190181bf778b25) ) |
2641 | 3211 | ROM_LOAD16_BYTE( "136077-5201.210r", 0x000001, 0x010000, CRC(439a1ce7) SHA1(fc376c654c494d2895bcf85d5d8a9d6f17b6887e) ) |
2642 | 3212 | ROM_LOAD16_BYTE( "136077-5204.200s", 0x020000, 0x010000, CRC(15df2b3d) SHA1(49235687b7be684dcd491b854f80c1d849894956) ) |
r241781 | r241782 | |
2654 | 3224 | ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) |
2655 | 3225 | ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) ) |
2656 | 3226 | |
2657 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3227 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
2658 | 3228 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
2659 | 3229 | |
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 */ | |
2661 | 3231 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
2662 | 3232 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
2663 | 3233 | |
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 */ | |
2665 | 3235 | ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) |
2666 | 3236 | ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) |
2667 | 3237 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
2668 | 3238 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
2669 | 3239 | |
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 */ | |
2671 | 3241 | ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) ) |
2672 | 3242 | ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) ) |
2673 | 3243 | |
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 */ | |
2675 | 3245 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
2676 | 3246 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
2677 | 3247 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
2678 | 3248 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
2679 | 3249 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
2680 | 3250 | |
2681 | ROM_REGION( 0x800, "200e", 0 ) | |
3251 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2682 | 3252 | ROM_LOAD( "racedriv.200e", 0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) ) |
2683 | 3253 | |
2684 | ROM_REGION( 0x800, "210e", 0 ) | |
3254 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2685 | 3255 | ROM_LOAD( "racedriv.210e", 0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) ) |
2686 | 3256 | ROM_END |
2687 | 3257 | |
2688 | 3258 | |
2689 | 3259 | ROM_START( racedriv4 ) |
2690 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3260 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2691 | 3261 | ROM_LOAD16_BYTE( "136077-4002.200r", 0x000000, 0x010000, CRC(afe1beb5) SHA1(66dba58f2a02eaa2d6306e53adffb662a8021031) ) |
2692 | 3262 | ROM_LOAD16_BYTE( "136077-4001.210r", 0x000001, 0x010000, CRC(8a449e44) SHA1(03800b96a3992baa4bd37db20e559e08b12e55d1) ) |
2693 | 3263 | ROM_LOAD16_BYTE( "136077-4004.200s", 0x020000, 0x010000, CRC(6d886150) SHA1(514de55de66a2b7fb14d6e2d896911e1b1af62f2) ) |
r241781 | r241782 | |
2705 | 3275 | ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) |
2706 | 3276 | ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) ) |
2707 | 3277 | |
2708 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3278 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
2709 | 3279 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
2710 | 3280 | |
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 */ | |
2712 | 3282 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
2713 | 3283 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
2714 | 3284 | |
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 */ | |
2716 | 3286 | ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) |
2717 | 3287 | ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) |
2718 | 3288 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
2719 | 3289 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
2720 | 3290 | |
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 */ | |
2722 | 3292 | ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) ) |
2723 | 3293 | ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) ) |
2724 | 3294 | |
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 */ | |
2726 | 3296 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
2727 | 3297 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
2728 | 3298 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
2729 | 3299 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
2730 | 3300 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
2731 | 3301 | |
2732 | ROM_REGION( 0x800, "200e", 0 ) | |
3302 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2733 | 3303 | ROM_LOAD( "racedriv.200e", 0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) ) |
2734 | 3304 | |
2735 | ROM_REGION( 0x800, "210e", 0 ) | |
3305 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2736 | 3306 | ROM_LOAD( "racedriv.210e", 0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) ) |
2737 | 3307 | ROM_END |
2738 | 3308 | |
2739 | 3309 | |
2740 | 3310 | ROM_START( racedrivb4 ) |
2741 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3311 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2742 | 3312 | ROM_LOAD16_BYTE( "136077-4002.200r", 0x000000, 0x010000, CRC(afe1beb5) SHA1(66dba58f2a02eaa2d6306e53adffb662a8021031) ) |
2743 | 3313 | ROM_LOAD16_BYTE( "136077-4001.210r", 0x000001, 0x010000, CRC(8a449e44) SHA1(03800b96a3992baa4bd37db20e559e08b12e55d1) ) |
2744 | 3314 | ROM_LOAD16_BYTE( "136077-4004.200s", 0x020000, 0x010000, CRC(6d886150) SHA1(514de55de66a2b7fb14d6e2d896911e1b1af62f2) ) |
r241781 | r241782 | |
2756 | 3326 | ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) |
2757 | 3327 | ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) ) |
2758 | 3328 | |
2759 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3329 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
2760 | 3330 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
2761 | 3331 | |
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 */ | |
2763 | 3333 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
2764 | 3334 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
2765 | 3335 | |
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 */ | |
2767 | 3337 | ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) |
2768 | 3338 | ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) |
2769 | 3339 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
2770 | 3340 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
2771 | 3341 | |
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 */ | |
2773 | 3343 | ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) ) |
2774 | 3344 | ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) ) |
2775 | 3345 | |
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 */ | |
2777 | 3347 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
2778 | 3348 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
2779 | 3349 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
2780 | 3350 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
2781 | 3351 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
2782 | 3352 | |
2783 | ROM_REGION( 0x800, "200e", 0 ) | |
3353 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2784 | 3354 | ROM_LOAD( "racedriv.200e", 0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) ) |
2785 | 3355 | |
2786 | ROM_REGION( 0x800, "210e", 0 ) | |
3356 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2787 | 3357 | ROM_LOAD( "racedriv.210e", 0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) ) |
2788 | 3358 | ROM_END |
2789 | 3359 | |
2790 | 3360 | |
2791 | 3361 | ROM_START( racedrivg4 ) |
2792 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3362 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2793 | 3363 | ROM_LOAD16_BYTE( "136077-4202.200r", 0x000000, 0x010000, CRC(a8c7e15e) SHA1(6aa4b819e5c8562c8eef92a411b2dc91ed35ae4c) ) |
2794 | 3364 | ROM_LOAD16_BYTE( "136077-4201.210r", 0x000001, 0x010000, CRC(1dfa4df2) SHA1(1db0676f0ff1e7996c9791b041d9cd4ca9c70261) ) |
2795 | 3365 | ROM_LOAD16_BYTE( "136077-4204.200s", 0x020000, 0x010000, CRC(29eea8c1) SHA1(1a8020efc0b963bbd05bd33dc3176db7c3234fcc) ) |
r241781 | r241782 | |
2807 | 3377 | ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) |
2808 | 3378 | ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) ) |
2809 | 3379 | |
2810 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3380 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
2811 | 3381 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
2812 | 3382 | |
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 */ | |
2814 | 3384 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
2815 | 3385 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
2816 | 3386 | |
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 */ | |
2818 | 3388 | ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) |
2819 | 3389 | ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) |
2820 | 3390 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
2821 | 3391 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
2822 | 3392 | |
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 */ | |
2824 | 3394 | ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) ) |
2825 | 3395 | ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) ) |
2826 | 3396 | |
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 */ | |
2828 | 3398 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
2829 | 3399 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
2830 | 3400 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
2831 | 3401 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
2832 | 3402 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
2833 | 3403 | |
2834 | ROM_REGION( 0x800, "200e", 0 ) | |
3404 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2835 | 3405 | ROM_LOAD( "racedriv.200e", 0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) ) |
2836 | 3406 | |
2837 | ROM_REGION( 0x800, "210e", 0 ) | |
3407 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2838 | 3408 | ROM_LOAD( "racedriv.210e", 0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) ) |
2839 | 3409 | ROM_END |
2840 | 3410 | |
2841 | 3411 | |
2842 | 3412 | ROM_START( racedriv3 ) |
2843 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3413 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2844 | 3414 | ROM_LOAD16_BYTE( "136077-3002.200r", 0x000000, 0x010000, CRC(78771253) SHA1(88fdae99eb4feb40db8ad171b3435315db3adedb) ) |
2845 | 3415 | ROM_LOAD16_BYTE( "136077-3001.210r", 0x000001, 0x010000, CRC(c75373a4) SHA1(d2f14190218cfedf4478806a26c77edd4d7c73eb) ) |
2846 | 3416 | ROM_LOAD16_BYTE( "136077-2004.200s", 0x020000, 0x010000, CRC(4eb19582) SHA1(52359d7839f3459aec4fdc16a659a29fa60feee4) ) |
r241781 | r241782 | |
2858 | 3428 | ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) |
2859 | 3429 | ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) ) |
2860 | 3430 | |
2861 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3431 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
2862 | 3432 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
2863 | 3433 | |
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 */ | |
2865 | 3435 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
2866 | 3436 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
2867 | 3437 | |
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 */ | |
2869 | 3439 | ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) |
2870 | 3440 | ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) |
2871 | 3441 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
2872 | 3442 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
2873 | 3443 | |
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 */ | |
2875 | 3445 | ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) ) |
2876 | 3446 | ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) ) |
2877 | 3447 | |
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 */ | |
2879 | 3449 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
2880 | 3450 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
2881 | 3451 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
2882 | 3452 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
2883 | 3453 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
2884 | 3454 | |
2885 | ROM_REGION( 0x800, "200e", 0 ) | |
3455 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2886 | 3456 | ROM_LOAD( "racedriv.200e", 0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) ) |
2887 | 3457 | |
2888 | ROM_REGION( 0x800, "210e", 0 ) | |
3458 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2889 | 3459 | ROM_LOAD( "racedriv.210e", 0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) ) |
2890 | 3460 | ROM_END |
2891 | 3461 | |
2892 | 3462 | |
2893 | 3463 | ROM_START( racedriv2 ) |
2894 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3464 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2895 | 3465 | ROM_LOAD16_BYTE( "136077-2002.200r", 0x000000, 0x010000, CRC(6b440e10) SHA1(8074a1de01e2cdc497a51339f9c05329d6f540b0) ) |
2896 | 3466 | ROM_LOAD16_BYTE( "136077-2001.210r", 0x000001, 0x010000, CRC(eee12973) SHA1(0cd2e88c431d08fba5a73c903327f39f8692f3aa) ) |
2897 | 3467 | ROM_LOAD16_BYTE( "136077-2004.200s", 0x020000, 0x010000, CRC(4eb19582) SHA1(52359d7839f3459aec4fdc16a659a29fa60feee4) ) |
r241781 | r241782 | |
2909 | 3479 | ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) |
2910 | 3480 | ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) ) |
2911 | 3481 | |
2912 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3482 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
2913 | 3483 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
2914 | 3484 | |
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 */ | |
2916 | 3486 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
2917 | 3487 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
2918 | 3488 | |
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 */ | |
2920 | 3490 | ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) |
2921 | 3491 | ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) |
2922 | 3492 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
2923 | 3493 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
2924 | 3494 | |
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 */ | |
2926 | 3496 | ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) ) |
2927 | 3497 | ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) ) |
2928 | 3498 | |
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 */ | |
2930 | 3500 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
2931 | 3501 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
2932 | 3502 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
2933 | 3503 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
2934 | 3504 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
2935 | 3505 | |
2936 | ROM_REGION( 0x800, "200e", 0 ) | |
3506 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2937 | 3507 | ROM_LOAD( "racedriv.200e", 0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) ) |
2938 | 3508 | |
2939 | ROM_REGION( 0x800, "210e", 0 ) | |
3509 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2940 | 3510 | ROM_LOAD( "racedriv.210e", 0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) ) |
2941 | 3511 | ROM_END |
2942 | 3512 | |
2943 | 3513 | |
2944 | 3514 | ROM_START( racedriv1 ) |
2945 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3515 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2946 | 3516 | ROM_LOAD16_BYTE( "136077-1002.200r", 0x000000, 0x010000, CRC(d39f6d53) SHA1(c278cd4109a65304a21dd1d8ba27375713a8b107) ) |
2947 | 3517 | ROM_LOAD16_BYTE( "136077-1001.210r", 0x000001, 0x010000, CRC(e29e011c) SHA1(7044e7f9c8551309b5867a06672796411007a427) ) |
2948 | 3518 | ROM_LOAD16_BYTE( "136077-1004.200s", 0x020000, 0x010000, CRC(809831e8) SHA1(681160deceff4df0f000c23f8514086dbbcc0c8d) ) |
r241781 | r241782 | |
2960 | 3530 | ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) |
2961 | 3531 | ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) ) |
2962 | 3532 | |
2963 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3533 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
2964 | 3534 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
2965 | 3535 | |
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 */ | |
2967 | 3537 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
2968 | 3538 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
2969 | 3539 | |
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 */ | |
2971 | 3541 | ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) |
2972 | 3542 | ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) |
2973 | 3543 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
2974 | 3544 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
2975 | 3545 | |
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 */ | |
2977 | 3547 | ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) ) |
2978 | 3548 | ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) ) |
2979 | 3549 | |
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 */ | |
2981 | 3551 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
2982 | 3552 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
2983 | 3553 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
2984 | 3554 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
2985 | 3555 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
2986 | 3556 | |
2987 | ROM_REGION( 0x800, "200e", 0 ) | |
3557 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
2988 | 3558 | ROM_LOAD( "racedriv.200e", 0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) ) |
2989 | 3559 | |
2990 | ROM_REGION( 0x800, "210e", 0 ) | |
3560 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
2991 | 3561 | ROM_LOAD( "racedriv.210e", 0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) ) |
2992 | 3562 | ROM_END |
2993 | 3563 | |
2994 | 3564 | |
2995 | 3565 | ROM_START( racedrivg1 ) |
2996 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3566 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
2997 | 3567 | ROM_LOAD16_BYTE( "136077-1202.200r", 0x000000, 0x010000, CRC(bd363903) SHA1(8f0937725adabf5ee9e0ac015c83916e2575670a) ) |
2998 | 3568 | ROM_LOAD16_BYTE( "136077-1201.210r", 0x000001, 0x010000, CRC(748c3be4) SHA1(ddf149f333d23e9c782ae447f6fb3f780680b3f5) ) |
2999 | 3569 | ROM_LOAD16_BYTE( "136077-1204.200s", 0x020000, 0x010000, CRC(aef103bb) SHA1(52831858d3a45ad00e156c5b2a11e7fddf06bead) ) |
r241781 | r241782 | |
3011 | 3581 | ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) |
3012 | 3582 | ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) ) |
3013 | 3583 | |
3014 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3584 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3015 | 3585 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
3016 | 3586 | |
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 */ | |
3018 | 3588 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
3019 | 3589 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
3020 | 3590 | |
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 */ | |
3022 | 3592 | ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) |
3023 | 3593 | ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) |
3024 | 3594 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
3025 | 3595 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
3026 | 3596 | |
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 */ | |
3028 | 3598 | ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) ) |
3029 | 3599 | ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) ) |
3030 | 3600 | |
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 */ | |
3032 | 3602 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
3033 | 3603 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
3034 | 3604 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
3035 | 3605 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
3036 | 3606 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
3037 | 3607 | |
3038 | ROM_REGION( 0x800, "200e", 0 ) | |
3608 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3039 | 3609 | ROM_LOAD( "racedriv.200e", 0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) ) |
3040 | 3610 | |
3041 | ROM_REGION( 0x800, "210e", 0 ) | |
3611 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3042 | 3612 | ROM_LOAD( "racedriv.210e", 0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) ) |
3043 | 3613 | ROM_END |
3044 | 3614 | |
3045 | 3615 | |
3046 | 3616 | ROM_START( racedrivb1 ) |
3047 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3617 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
3048 | 3618 | ROM_LOAD16_BYTE( "136077-2002.200r", 0x000000, 0x010000, CRC(6b440e10) SHA1(8074a1de01e2cdc497a51339f9c05329d6f540b0) ) |
3049 | 3619 | ROM_LOAD16_BYTE( "136077-2001.210r", 0x000001, 0x010000, CRC(eee12973) SHA1(0cd2e88c431d08fba5a73c903327f39f8692f3aa) ) |
3050 | 3620 | ROM_LOAD16_BYTE( "136077-1104.200s", 0x020000, 0x010000, CRC(a9495f53) SHA1(68e7d983c0e1a84f5ad0743a230e6126169a6fd6) ) |
r241781 | r241782 | |
3062 | 3632 | ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) |
3063 | 3633 | ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) ) |
3064 | 3634 | |
3065 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3635 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3066 | 3636 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
3067 | 3637 | |
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 */ | |
3069 | 3639 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
3070 | 3640 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
3071 | 3641 | |
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 */ | |
3073 | 3643 | ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) |
3074 | 3644 | ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) |
3075 | 3645 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
3076 | 3646 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
3077 | 3647 | |
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 */ | |
3079 | 3649 | ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) ) |
3080 | 3650 | ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) ) |
3081 | 3651 | |
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 */ | |
3083 | 3653 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
3084 | 3654 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
3085 | 3655 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
3086 | 3656 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
3087 | 3657 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
3088 | 3658 | |
3089 | ROM_REGION( 0x800, "200e", 0 ) | |
3659 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3090 | 3660 | ROM_LOAD( "racedriv.200e", 0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) ) |
3091 | 3661 | |
3092 | ROM_REGION( 0x800, "210e", 0 ) | |
3662 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3093 | 3663 | ROM_LOAD( "racedriv.210e", 0x000000, 0x000800, CRC(3d7c732e) SHA1(e7de81d4a54327514fdd339e93c888c63a344d2c) ) |
3094 | 3664 | ROM_END |
3095 | 3665 | |
3096 | 3666 | |
3097 | 3667 | ROM_START( racedrivc ) |
3098 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3668 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
3099 | 3669 | ROM_LOAD16_BYTE( "136078-5002.200r", 0x000000, 0x010000, CRC(ae8f79bd) SHA1(054f2d1948d6d03832c4557c3dd7667c0784716d) ) |
3100 | 3670 | ROM_LOAD16_BYTE( "136078-5001.210r", 0x000001, 0x010000, CRC(ad896e7f) SHA1(7b047f0c972fac075db00faf19cdf9ccdcef5c63) ) |
3101 | 3671 | ROM_LOAD16_BYTE( "136078-5004.200s", 0x020000, 0x010000, CRC(b8650bee) SHA1(a9905081e622e4a4fcec9aa08b87566ecdb9198b) ) |
r241781 | r241782 | |
3113 | 3683 | ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) ) |
3114 | 3684 | ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) ) |
3115 | 3685 | |
3116 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3686 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3117 | 3687 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
3118 | 3688 | |
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 */ | |
3120 | 3690 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
3121 | 3691 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
3122 | 3692 | |
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 */ | |
3124 | 3694 | ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) |
3125 | 3695 | ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) |
3126 | 3696 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
3127 | 3697 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
3128 | 3698 | |
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 */ | |
3130 | 3700 | ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) |
3131 | 3701 | ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) |
3132 | 3702 | |
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 */ | |
3134 | 3704 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
3135 | 3705 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
3136 | 3706 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
3137 | 3707 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
3138 | 3708 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
3139 | 3709 | |
3140 | ROM_REGION( 0x800, "200e", 0 ) | |
3710 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3141 | 3711 | ROM_LOAD( "racedrivc.200e", 0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) ) |
3142 | 3712 | |
3143 | ROM_REGION( 0x800, "210e", 0 ) | |
3713 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3144 | 3714 | ROM_LOAD( "racedrivc.210e", 0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) ) |
3145 | 3715 | ROM_END |
3146 | 3716 | |
3147 | 3717 | |
3148 | 3718 | ROM_START( racedrivcb ) |
3149 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3719 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
3150 | 3720 | ROM_LOAD16_BYTE( "136078-5002.200r", 0x000000, 0x010000, CRC(ae8f79bd) SHA1(054f2d1948d6d03832c4557c3dd7667c0784716d) ) |
3151 | 3721 | ROM_LOAD16_BYTE( "136078-5001.210r", 0x000001, 0x010000, CRC(ad896e7f) SHA1(7b047f0c972fac075db00faf19cdf9ccdcef5c63) ) |
3152 | 3722 | ROM_LOAD16_BYTE( "136078-5004.200s", 0x020000, 0x010000, CRC(b8650bee) SHA1(a9905081e622e4a4fcec9aa08b87566ecdb9198b) ) |
r241781 | r241782 | |
3164 | 3734 | ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) ) |
3165 | 3735 | ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) ) |
3166 | 3736 | |
3167 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3737 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3168 | 3738 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
3169 | 3739 | |
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 */ | |
3171 | 3741 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
3172 | 3742 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
3173 | 3743 | |
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 */ | |
3175 | 3745 | ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) |
3176 | 3746 | ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) |
3177 | 3747 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
3178 | 3748 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
3179 | 3749 | |
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 */ | |
3181 | 3751 | ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) |
3182 | 3752 | ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) |
3183 | 3753 | |
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 */ | |
3185 | 3755 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
3186 | 3756 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
3187 | 3757 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
3188 | 3758 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
3189 | 3759 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
3190 | 3760 | |
3191 | ROM_REGION( 0x800, "200e", 0 ) | |
3761 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3192 | 3762 | ROM_LOAD( "racedrivc.200e", 0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) ) |
3193 | 3763 | |
3194 | ROM_REGION( 0x800, "210e", 0 ) | |
3764 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3195 | 3765 | ROM_LOAD( "racedrivc.210e", 0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) ) |
3196 | 3766 | ROM_END |
3197 | 3767 | |
3198 | 3768 | |
3199 | 3769 | ROM_START( racedrivcg ) |
3200 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3770 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
3201 | 3771 | ROM_LOAD16_BYTE( "136078-5202.200r", 0x000000, 0x010000, CRC(c37b5281) SHA1(1ff7a879853dd1e10881fd56e8ae0962676ef319) ) |
3202 | 3772 | ROM_LOAD16_BYTE( "136078-5201.210r", 0x000001, 0x010000, CRC(80072dad) SHA1(ba33465f639431cf6e9ce377ed31e538a0304dc5) ) |
3203 | 3773 | ROM_LOAD16_BYTE( "136078-5204.200s", 0x020000, 0x010000, CRC(5d45fbd2) SHA1(5279c814c2876c642630fed5c114eccea6d703b0) ) |
r241781 | r241782 | |
3215 | 3785 | ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) ) |
3216 | 3786 | ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) ) |
3217 | 3787 | |
3218 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3788 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3219 | 3789 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
3220 | 3790 | |
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 */ | |
3222 | 3792 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
3223 | 3793 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
3224 | 3794 | |
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 */ | |
3226 | 3796 | ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) |
3227 | 3797 | ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) |
3228 | 3798 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
3229 | 3799 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
3230 | 3800 | |
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 */ | |
3232 | 3802 | ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) |
3233 | 3803 | ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) |
3234 | 3804 | |
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 */ | |
3236 | 3806 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
3237 | 3807 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
3238 | 3808 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
3239 | 3809 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
3240 | 3810 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
3241 | 3811 | |
3242 | ROM_REGION( 0x800, "200e", 0 ) | |
3812 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3243 | 3813 | ROM_LOAD( "racedrivc.200e", 0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) ) |
3244 | 3814 | |
3245 | ROM_REGION( 0x800, "210e", 0 ) | |
3815 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3246 | 3816 | ROM_LOAD( "racedrivc.210e", 0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) ) |
3247 | 3817 | ROM_END |
3248 | 3818 | |
3249 | 3819 | |
3250 | 3820 | ROM_START( racedrivc4 ) |
3251 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3821 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
3252 | 3822 | ROM_LOAD16_BYTE( "136078-4002.200r", 0x000000, 0x010000, CRC(d6522b97) SHA1(0e4c4ce9f6147cc3878a3f1e60cf58f00bfe9e4c) ) |
3253 | 3823 | ROM_LOAD16_BYTE( "136078-4001.210r", 0x000001, 0x010000, CRC(d658a8ed) SHA1(59d823d8150de62ba5c4fddf87584bd2044e87f7) ) |
3254 | 3824 | ROM_LOAD16_BYTE( "136078-4004.200s", 0x020000, 0x010000, CRC(c8520b01) SHA1(f0bd0505cbf24f7e43dc2e775ecbbf0db5419b6e) ) |
r241781 | r241782 | |
3266 | 3836 | ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) ) |
3267 | 3837 | ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) ) |
3268 | 3838 | |
3269 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3839 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3270 | 3840 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
3271 | 3841 | |
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 */ | |
3273 | 3843 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
3274 | 3844 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
3275 | 3845 | |
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 */ | |
3277 | 3847 | ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) |
3278 | 3848 | ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) |
3279 | 3849 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
3280 | 3850 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
3281 | 3851 | |
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 */ | |
3283 | 3853 | ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) |
3284 | 3854 | ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) |
3285 | 3855 | |
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 */ | |
3287 | 3857 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
3288 | 3858 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
3289 | 3859 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
3290 | 3860 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
3291 | 3861 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
3292 | 3862 | |
3293 | ROM_REGION( 0x800, "200e", 0 ) | |
3863 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3294 | 3864 | ROM_LOAD( "racedrivc.200e", 0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) ) |
3295 | 3865 | |
3296 | ROM_REGION( 0x800, "210e", 0 ) | |
3866 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3297 | 3867 | ROM_LOAD( "racedrivc.210e", 0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) ) |
3298 | 3868 | ROM_END |
3299 | 3869 | |
3300 | 3870 | |
3301 | 3871 | ROM_START( racedrivcb4 ) |
3302 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3872 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
3303 | 3873 | ROM_LOAD16_BYTE( "136078-4002.200r", 0x000000, 0x010000, CRC(d6522b97) SHA1(0e4c4ce9f6147cc3878a3f1e60cf58f00bfe9e4c) ) |
3304 | 3874 | ROM_LOAD16_BYTE( "136078-4001.210r", 0x000001, 0x010000, CRC(d658a8ed) SHA1(59d823d8150de62ba5c4fddf87584bd2044e87f7) ) |
3305 | 3875 | ROM_LOAD16_BYTE( "136078-4004.200s", 0x020000, 0x010000, CRC(c8520b01) SHA1(f0bd0505cbf24f7e43dc2e775ecbbf0db5419b6e) ) |
r241781 | r241782 | |
3317 | 3887 | ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) ) |
3318 | 3888 | ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) ) |
3319 | 3889 | |
3320 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3890 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3321 | 3891 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
3322 | 3892 | |
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 */ | |
3324 | 3894 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
3325 | 3895 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
3326 | 3896 | |
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 */ | |
3328 | 3898 | ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) |
3329 | 3899 | ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) |
3330 | 3900 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
3331 | 3901 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
3332 | 3902 | |
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 */ | |
3334 | 3904 | ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) |
3335 | 3905 | ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) |
3336 | 3906 | |
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 */ | |
3338 | 3908 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
3339 | 3909 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
3340 | 3910 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
3341 | 3911 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
3342 | 3912 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
3343 | 3913 | |
3344 | ROM_REGION( 0x800, "200e", 0 ) | |
3914 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3345 | 3915 | ROM_LOAD( "racedrivc.200e", 0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) ) |
3346 | 3916 | |
3347 | ROM_REGION( 0x800, "210e", 0 ) | |
3917 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3348 | 3918 | ROM_LOAD( "racedrivc.210e", 0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) ) |
3349 | 3919 | ROM_END |
3350 | 3920 | |
3351 | 3921 | |
3352 | 3922 | ROM_START( racedrivcg4 ) |
3353 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3923 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
3354 | 3924 | ROM_LOAD16_BYTE( "136078-4202.200r", 0x000000, 0x010000, CRC(be58215d) SHA1(0497efbd696e8d2db4e42678dd6cfe6cd3f78688) ) |
3355 | 3925 | ROM_LOAD16_BYTE( "136078-4201.210r", 0x000001, 0x010000, CRC(609c5f23) SHA1(a66e1f10f8ad9d25fca5b681ad543967287f2036) ) |
3356 | 3926 | ROM_LOAD16_BYTE( "136078-4204.200s", 0x020000, 0x010000, CRC(2e590c4f) SHA1(dcb56bacdde17eade5b347d5549cec1de89774e6) ) |
r241781 | r241782 | |
3368 | 3938 | ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) ) |
3369 | 3939 | ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) ) |
3370 | 3940 | |
3371 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3941 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3372 | 3942 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
3373 | 3943 | |
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 */ | |
3375 | 3945 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
3376 | 3946 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
3377 | 3947 | |
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 */ | |
3379 | 3949 | ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) |
3380 | 3950 | ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) |
3381 | 3951 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
3382 | 3952 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
3383 | 3953 | |
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 */ | |
3385 | 3955 | ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) |
3386 | 3956 | ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) |
3387 | 3957 | |
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 */ | |
3389 | 3959 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
3390 | 3960 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
3391 | 3961 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
3392 | 3962 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
3393 | 3963 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
3394 | 3964 | |
3395 | ROM_REGION( 0x800, "200e", 0 ) | |
3965 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3396 | 3966 | ROM_LOAD( "racedrivc.200e", 0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) ) |
3397 | 3967 | |
3398 | ROM_REGION( 0x800, "210e", 0 ) | |
3968 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3399 | 3969 | ROM_LOAD( "racedrivc.210e", 0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) ) |
3400 | 3970 | ROM_END |
3401 | 3971 | |
3402 | 3972 | |
3403 | 3973 | ROM_START( racedrivc2 ) |
3404 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
3974 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
3405 | 3975 | ROM_LOAD16_BYTE( "136078-2002.200r", 0x000000, 0x010000, CRC(669fe6fe) SHA1(1775ee3ef4817f553113772cf0fb35cbbe2e73a5) ) |
3406 | 3976 | ROM_LOAD16_BYTE( "136078-2001.210r", 0x000001, 0x010000, CRC(9312fd5f) SHA1(9dd1b30ebceedf50fb18d744540e2003a8110d09) ) |
3407 | 3977 | ROM_LOAD16_BYTE( "136078-1004.200s", 0x020000, 0x010000, CRC(4a1beb65) SHA1(3a4e3dd07a1415aef27e8bbebe0503296dfc7586) ) |
r241781 | r241782 | |
3419 | 3989 | ROM_LOAD16_BYTE( "136078-1015.210y", 0x0e0001, 0x010000, CRC(64dd6040) SHA1(bcadf4f1d9a0685ca39af903d3342d590850513c) ) |
3420 | 3990 | ROM_LOAD16_BYTE( "136078-1016.200y", 0x0e0000, 0x010000, CRC(a2a0ed28) SHA1(6f308a38594f7e54ebdd6983d28664ba595bc525) ) |
3421 | 3991 | |
3422 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3992 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3423 | 3993 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
3424 | 3994 | |
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 */ | |
3426 | 3996 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
3427 | 3997 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
3428 | 3998 | |
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 */ | |
3430 | 4000 | ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) |
3431 | 4001 | ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) |
3432 | 4002 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
3433 | 4003 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
3434 | 4004 | |
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 */ | |
3436 | 4006 | ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) |
3437 | 4007 | ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) |
3438 | 4008 | |
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 */ | |
3440 | 4010 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
3441 | 4011 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
3442 | 4012 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
3443 | 4013 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
3444 | 4014 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
3445 | 4015 | |
3446 | ROM_REGION( 0x800, "200e", 0 ) | |
4016 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3447 | 4017 | ROM_LOAD( "racedrivc.200e", 0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) ) |
3448 | 4018 | |
3449 | ROM_REGION( 0x800, "210e", 0 ) | |
4019 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3450 | 4020 | ROM_LOAD( "racedrivc.210e", 0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) ) |
3451 | 4021 | ROM_END |
3452 | 4022 | |
3453 | 4023 | |
3454 | 4024 | ROM_START( racedrivc1 ) |
3455 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
4025 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
3456 | 4026 | ROM_LOAD16_BYTE( "136078-1002.200r", 0x000000, 0x010000, CRC(ed997f08) SHA1(9512f347120174345dbe8c756e5c239fdce438a5) ) |
3457 | 4027 | ROM_LOAD16_BYTE( "136078-1001.210r", 0x000001, 0x010000, CRC(5540ee7d) SHA1(f1d16cfa20b61f1cf075e3275ea4af0b46aa5470) ) |
3458 | 4028 | ROM_LOAD16_BYTE( "136078-1004.200s", 0x020000, 0x010000, CRC(4a1beb65) SHA1(3a4e3dd07a1415aef27e8bbebe0503296dfc7586) ) |
r241781 | r241782 | |
3470 | 4040 | ROM_LOAD16_BYTE( "136078-1015.210y", 0x0e0001, 0x010000, CRC(64dd6040) SHA1(bcadf4f1d9a0685ca39af903d3342d590850513c) ) |
3471 | 4041 | ROM_LOAD16_BYTE( "136078-1016.200y", 0x0e0000, 0x010000, CRC(a2a0ed28) SHA1(6f308a38594f7e54ebdd6983d28664ba595bc525) ) |
3472 | 4042 | |
3473 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
4043 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3474 | 4044 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
3475 | 4045 | |
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 */ | |
3477 | 4047 | ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) |
3478 | 4048 | ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) |
3479 | 4049 | |
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 */ | |
3481 | 4051 | ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) |
3482 | 4052 | ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) |
3483 | 4053 | ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) |
3484 | 4054 | ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) |
3485 | 4055 | |
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 */ | |
3487 | 4057 | ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) |
3488 | 4058 | ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) |
3489 | 4059 | |
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 */ | |
3491 | 4061 | ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
3492 | 4062 | ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
3493 | 4063 | ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
3494 | 4064 | ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
3495 | 4065 | ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
3496 | 4066 | |
3497 | ROM_REGION( 0x800, "200e", 0 ) | |
4067 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3498 | 4068 | ROM_LOAD( "racedrivc.200e", 0x000000, 0x000800, CRC(2c0f7715) SHA1(79cf3a6cd48fc4a86cd94e823243fc0cd4bffa57) ) |
3499 | 4069 | |
3500 | ROM_REGION( 0x800, "210e", 0 ) | |
4070 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3501 | 4071 | ROM_LOAD( "racedrivc.210e", 0x000000, 0x000800, CRC(2e843742) SHA1(bc73ab0270cdf45aaa1a19703e8c3aa916578ef0) ) |
3502 | 4072 | ROM_END |
3503 | 4073 | |
r241781 | r241782 | |
3573 | 4143 | |
3574 | 4144 | */ |
3575 | 4145 | |
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 | ||
3576 | 4148 | ROM_START( racedrivpan ) |
3577 | ROM_REGION( 0x200000, "maincpu", 0 ) /* 2MB for 68000 code */ | |
4149 | ROM_REGION( 0x200000, "mainpcb:maincpu", 0 ) /* 2MB for 68000 code */ | |
3578 | 4150 | // Multisync PBB A045988 - Central Monitor |
3579 | 4151 | // boots with 'PROGRAM OK' when using standard Hard Drivin' board type (needs 137412-115 slapstic) |
3580 | 4152 | ROM_LOAD16_BYTE( "088-1002.bin", 0x000000, 0x010000, CRC(49a97391) SHA1(dbe4086cd87669a02d2a2133d0d9e2895946b383) ) |
r241781 | r241782 | |
3594 | 4166 | ROM_LOAD16_BYTE( "088-1016.bin", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) // == 136077-1016.200y |
3595 | 4167 | ROM_LOAD16_BYTE( "088-1015.bin", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) ) // == 136077-4015.210y |
3596 | 4168 | |
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 */ | |
3619 | 4170 | ROM_LOAD16_BYTE( "088-1017.bin", 0x00000, 0x10000, CRC(d92251e8) SHA1(deeeec54c4a61c3adf62f6b1b910135559090ee5) ) |
3620 | 4171 | ROM_LOAD16_BYTE( "088-1018.bin", 0x00001, 0x10000, CRC(11a0a8f5) SHA1(d4ccc83fc99331d741bc9b8027ef20d72e3ad71a) ) |
3621 | 4172 | ROM_LOAD16_BYTE( "088-1019.bin", 0x20000, 0x10000, CRC(5bb00676) SHA1(cad1cea8e43f9590fc71c00fab4eff0d447f9296) ) // == 136091-0019.2k (strtdriv) |
r241781 | r241782 | |
3625 | 4176 | |
3626 | 4177 | /* ----------------------- */ |
3627 | 4178 | |
3628 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
4179 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */ | |
3629 | 4180 | ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP ) |
3630 | 4181 | |
3631 | 4182 | /* 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 */ | |
3633 | 4184 | ROM_LOAD16_BYTE( "rdps1032.bin", 0x000000, 0x010000, CRC(33005f2a) SHA1(e4037a76f122b271a9675d9187ab847a11738640) ) |
3634 | 4185 | ROM_LOAD16_BYTE( "rdps1033.bin", 0x000001, 0x010000, CRC(4fc800ac) SHA1(dd8cfdb727d6a65274f4f871a589a36796ae1e57) ) |
3635 | 4186 | |
3636 | 4187 | /* 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 */ | |
3638 | 4189 | ROM_LOAD16_BYTE( "rdpd1026.bin", 0x000000, 0x020000, CRC(16572618) SHA1(08d9f7f76e6e75d5233240d4deab96808825994b) ) |
3639 | 4190 | ROM_LOAD16_BYTE( "rdpd1025.bin", 0x000001, 0x020000, CRC(57b8a266) SHA1(257246d42841aa30220caeb91945e29978ee8fc0) ) |
3640 | 4191 | |
3641 | 4192 | /* 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 */ | |
3643 | 4194 | ROM_LOAD( "rdps1123.bin", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
3644 | 4195 | ROM_LOAD( "rdps1124.bin", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) |
3645 | 4196 | ROM_LOAD( "rdps3125.bin", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) |
3646 | 4197 | ROM_LOAD( "rdps1126.bin", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
3647 | 4198 | ROM_LOAD( "rdps1017.bin", 0x040000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
3648 | 4199 | |
3649 | ROM_REGION( 0x800, "200e", 0 ) | |
4200 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3650 | 4201 | ROM_LOAD( "racedriv.200e", 0x000000, 0x000800, CRC(bfdf633c) SHA1(b930f90c388e6773e6ba4254214a3a6076e610b0) ) |
3651 | 4202 | |
3652 | ROM_REGION( 0x800, "210e", 0 ) | |
4203 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3653 | 4204 | 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) ) | |
3654 | 4269 | ROM_END |
3655 | 4270 | |
3656 | 4271 | |
3657 | 4272 | ROM_START( steeltal ) |
3658 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
4273 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
3659 | 4274 | ROM_LOAD16_BYTE( "136087-1002.200r", 0x000000, 0x010000, CRC(31bf01a9) SHA1(cd08a839dbb5283a6e2bb35bc9e1578a14e3c2e6) ) |
3660 | 4275 | ROM_LOAD16_BYTE( "136087-1001.210r", 0x000001, 0x010000, CRC(b4fa2900) SHA1(5e92ab4af31321b891c072305f8b8ef30a3e1fb0) ) |
3661 | 4276 | ROM_LOAD16_BYTE( "136087-1004.200s", 0x020000, 0x010000, CRC(c31ca924) SHA1(8d7d2a3d204e69d759cf767b57570c18db5a3fd8) ) |
r241781 | r241782 | |
3673 | 4288 | ROM_LOAD16_BYTE( "136087-1016.200y", 0x0e0000, 0x010000, CRC(db62362e) SHA1(e1d392aa00ac36296728257fa26c6aa68a4ebe5f) ) |
3674 | 4289 | ROM_LOAD16_BYTE( "136087-1015.210y", 0x0e0001, 0x010000, CRC(ef517db7) SHA1(16e7e351326391480bf36c58d6b34ef4128b6627) ) |
3675 | 4290 | |
3676 | ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */ | |
4291 | ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */ | |
3677 | 4292 | ROM_LOAD( "136087-5001.1f", 0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) ) |
3678 | 4293 | ROM_CONTINUE( 0x004000, 0x00c000 ) |
3679 | 4294 | |
3680 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* 64k for ASIC65 */ | |
4295 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* 64k for ASIC65 */ | |
3681 | 4296 | ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) ) |
3682 | 4297 | |
3683 | ROM_REGION( 0x10000, "cpu6", 0 ) /* 64k for DSP communications */ | |
4298 | ROM_REGION( 0x10000, "mainpcb:cpu6", 0 ) /* 64k for DSP communications */ | |
3684 | 4299 | ROM_LOAD( "136087-1025.5f", 0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) ) |
3685 | 4300 | |
3686 | ROM_REGION16_BE( 0xc0000, "user1", 0 ) /* 768k for object ROM */ | |
4301 | ROM_REGION16_BE( 0xc0000, "mainpcb:user1", 0 ) /* 768k for object ROM */ | |
3687 | 4302 | ROM_LOAD16_BYTE( "136087-1018.2t", 0x000000, 0x020000, CRC(a5882384) SHA1(157707b5b114fa584893dec07dc456d4a5520f44) ) |
3688 | 4303 | ROM_LOAD16_BYTE( "136087-1017.2lm", 0x000001, 0x020000, CRC(0a29db30) SHA1(f11ad7fe27989ffd66e9bef2c14ec040a4125d8a) ) |
3689 | 4304 | |
3690 | ROM_REGION( 0x80000, "jsa:oki1", 0 ) | |
4305 | ROM_REGION( 0x80000, "mainpcb:jsa:oki1", 0 ) | |
3691 | 4306 | ROM_LOAD( "136087-5002.1m", 0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) ) |
3692 | 4307 | ROM_LOAD( "136087-5003.1n", 0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) ) |
3693 | 4308 | ROM_LOAD( "136087-5004.1p", 0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) ) |
3694 | 4309 | ROM_LOAD( "136087-5005.1r", 0x060000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) ) |
3695 | 4310 | |
3696 | ROM_REGION( 0x015D, "plds", 0 ) | |
4311 | ROM_REGION( 0x015D, "mainpcb:plds", 0 ) | |
3697 | 4312 | /* GAL's located on Sound board */ |
3698 | 4313 | ROM_LOAD( "136085-1038.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2F */ |
3699 | 4314 | ROM_LOAD( "136085-1039.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2L */ |
r241781 | r241782 | |
3710 | 4325 | /* GAL's located on "Multisync" board */ |
3711 | 4326 | ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */ |
3712 | 4327 | |
3713 | ROM_REGION( 0x800, "200e", 0 ) | |
4328 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3714 | 4329 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
3715 | 4330 | |
3716 | ROM_REGION( 0x800, "210e", 0 ) | |
4331 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3717 | 4332 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
3718 | 4333 | ROM_END |
3719 | 4334 | |
3720 | 4335 | |
3721 | 4336 | ROM_START( steeltalg ) |
3722 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
4337 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
3723 | 4338 | ROM_LOAD16_BYTE( "136087-1002.200r", 0x000000, 0x010000, CRC(31bf01a9) SHA1(cd08a839dbb5283a6e2bb35bc9e1578a14e3c2e6) ) |
3724 | 4339 | ROM_LOAD16_BYTE( "136087-1001.210r", 0x000001, 0x010000, CRC(b4fa2900) SHA1(5e92ab4af31321b891c072305f8b8ef30a3e1fb0) ) |
3725 | 4340 | ROM_LOAD16_BYTE( "136087-2004.200s", 0x020000, 0x010000, CRC(11fcba15) SHA1(031fc4c46a25ba8b5e15257f7443899bb484c09e) ) |
r241781 | r241782 | |
3737 | 4352 | ROM_LOAD16_BYTE( "136087-1016.200y", 0x0e0000, 0x010000, CRC(db62362e) SHA1(e1d392aa00ac36296728257fa26c6aa68a4ebe5f) ) |
3738 | 4353 | ROM_LOAD16_BYTE( "136087-1015.210y", 0x0e0001, 0x010000, CRC(ef517db7) SHA1(16e7e351326391480bf36c58d6b34ef4128b6627) ) |
3739 | 4354 | |
3740 | ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */ | |
4355 | ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */ | |
3741 | 4356 | ROM_LOAD( "136087-5001.1f", 0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) ) |
3742 | 4357 | ROM_CONTINUE( 0x004000, 0x00c000 ) |
3743 | 4358 | |
3744 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* 64k for ASIC65 */ | |
4359 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* 64k for ASIC65 */ | |
3745 | 4360 | ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) ) |
3746 | 4361 | |
3747 | ROM_REGION( 0x10000, "cpu6", 0 ) /* 64k for DSP communications */ | |
4362 | ROM_REGION( 0x10000, "mainpcb:cpu6", 0 ) /* 64k for DSP communications */ | |
3748 | 4363 | ROM_LOAD( "136087-1025.5f", 0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) ) |
3749 | 4364 | |
3750 | ROM_REGION16_BE( 0xc0000, "user1", 0 ) /* 768k for object ROM */ | |
4365 | ROM_REGION16_BE( 0xc0000, "mainpcb:user1", 0 ) /* 768k for object ROM */ | |
3751 | 4366 | ROM_LOAD16_BYTE( "136087-1018.2t", 0x000000, 0x020000, CRC(a5882384) SHA1(157707b5b114fa584893dec07dc456d4a5520f44) ) |
3752 | 4367 | ROM_LOAD16_BYTE( "136087-1017.2lm", 0x000001, 0x020000, CRC(0a29db30) SHA1(f11ad7fe27989ffd66e9bef2c14ec040a4125d8a) ) |
3753 | 4368 | |
3754 | ROM_REGION( 0x80000, "jsa:oki1", 0 ) | |
4369 | ROM_REGION( 0x80000, "mainpcb:jsa:oki1", 0 ) | |
3755 | 4370 | ROM_LOAD( "136087-5002.1m", 0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) ) |
3756 | 4371 | ROM_LOAD( "136087-5003.1n", 0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) ) |
3757 | 4372 | ROM_LOAD( "136087-5004.1p", 0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) ) |
3758 | 4373 | ROM_LOAD( "136087-5005.1r", 0x060000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) ) |
3759 | 4374 | |
3760 | ROM_REGION( 0x015D, "plds", 0 ) | |
4375 | ROM_REGION( 0x015D, "mainpcb:plds", 0 ) | |
3761 | 4376 | /* GAL's located on Sound board */ |
3762 | 4377 | ROM_LOAD( "136085-1038.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2F */ |
3763 | 4378 | ROM_LOAD( "136085-1039.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2L */ |
r241781 | r241782 | |
3774 | 4389 | /* GAL's located on "Multisync" board */ |
3775 | 4390 | ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */ |
3776 | 4391 | |
3777 | ROM_REGION( 0x800, "200e", 0 ) | |
4392 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3778 | 4393 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
3779 | 4394 | |
3780 | ROM_REGION( 0x800, "210e", 0 ) | |
4395 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3781 | 4396 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
3782 | 4397 | ROM_END |
3783 | 4398 | |
3784 | 4399 | |
3785 | 4400 | ROM_START( steeltal1 ) |
3786 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
4401 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
3787 | 4402 | ROM_LOAD16_BYTE( "136087-1002.200r", 0x000000, 0x010000, CRC(31bf01a9) SHA1(cd08a839dbb5283a6e2bb35bc9e1578a14e3c2e6) ) |
3788 | 4403 | ROM_LOAD16_BYTE( "136087-1001.210r", 0x000001, 0x010000, CRC(b4fa2900) SHA1(5e92ab4af31321b891c072305f8b8ef30a3e1fb0) ) |
3789 | 4404 | ROM_LOAD16_BYTE( "136087-a004.200s", 0x020000, 0x010000, CRC(392c992d) SHA1(10d1606214df675e6e59185e6b97034c4a47055a) ) |
r241781 | r241782 | |
3801 | 4416 | ROM_LOAD16_BYTE( "136087-1016.200y", 0x0e0000, 0x010000, CRC(db62362e) SHA1(e1d392aa00ac36296728257fa26c6aa68a4ebe5f) ) |
3802 | 4417 | ROM_LOAD16_BYTE( "136087-1015.210y", 0x0e0001, 0x010000, CRC(ef517db7) SHA1(16e7e351326391480bf36c58d6b34ef4128b6627) ) |
3803 | 4418 | |
3804 | ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */ | |
4419 | ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */ | |
3805 | 4420 | ROM_LOAD( "136087-5001.1f", 0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) ) |
3806 | 4421 | ROM_CONTINUE( 0x004000, 0x00c000 ) |
3807 | 4422 | |
3808 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* 64k for ASIC65 */ | |
4423 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* 64k for ASIC65 */ | |
3809 | 4424 | ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) ) |
3810 | 4425 | |
3811 | ROM_REGION( 0x10000, "cpu6", 0 ) /* 64k for DSP communications */ | |
4426 | ROM_REGION( 0x10000, "mainpcb:cpu6", 0 ) /* 64k for DSP communications */ | |
3812 | 4427 | ROM_LOAD( "136087-1025.5f", 0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) ) |
3813 | 4428 | |
3814 | ROM_REGION16_BE( 0xc0000, "user1", 0 ) /* 768k for object ROM */ | |
4429 | ROM_REGION16_BE( 0xc0000, "mainpcb:user1", 0 ) /* 768k for object ROM */ | |
3815 | 4430 | ROM_LOAD16_BYTE( "136087-1018.2t", 0x000000, 0x020000, CRC(a5882384) SHA1(157707b5b114fa584893dec07dc456d4a5520f44) ) |
3816 | 4431 | ROM_LOAD16_BYTE( "136087-1017.2lm", 0x000001, 0x020000, CRC(0a29db30) SHA1(f11ad7fe27989ffd66e9bef2c14ec040a4125d8a) ) |
3817 | 4432 | |
3818 | ROM_REGION( 0x80000, "jsa:oki1", 0 ) | |
4433 | ROM_REGION( 0x80000, "mainpcb:jsa:oki1", 0 ) | |
3819 | 4434 | ROM_LOAD( "136087-5002.1m", 0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) ) |
3820 | 4435 | ROM_LOAD( "136087-5003.1n", 0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) ) |
3821 | 4436 | ROM_LOAD( "136087-5004.1p", 0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) ) |
3822 | 4437 | ROM_LOAD( "136087-5005.1r", 0x060000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) ) |
3823 | 4438 | |
3824 | ROM_REGION( 0x015D, "plds", 0 ) | |
4439 | ROM_REGION( 0x015D, "mainpcb:plds", 0 ) | |
3825 | 4440 | /* GAL's located on Sound board */ |
3826 | 4441 | ROM_LOAD( "136085-1038.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2F */ |
3827 | 4442 | ROM_LOAD( "136085-1039.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2L */ |
r241781 | r241782 | |
3838 | 4453 | /* GAL's located on "Multisync" board */ |
3839 | 4454 | ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */ |
3840 | 4455 | |
3841 | ROM_REGION( 0x800, "200e", 0 ) | |
4456 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3842 | 4457 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
3843 | 4458 | |
3844 | ROM_REGION( 0x800, "210e", 0 ) | |
4459 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3845 | 4460 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
3846 | 4461 | ROM_END |
3847 | 4462 | |
3848 | 4463 | |
3849 | 4464 | ROM_START( steeltalp ) |
3850 | ROM_REGION( 0x100000, "maincpu", 0 ) /* 1MB for 68000 code */ | |
4465 | ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */ | |
3851 | 4466 | ROM_LOAD16_BYTE( "rom-200r.bin", 0x00000, 0x10000, CRC(72a9ce3b) SHA1(6706ff32173735d16d9da1321b64a4a9bb317b2e) ) |
3852 | 4467 | ROM_LOAD16_BYTE( "rom-210r.bin", 0x00001, 0x10000, CRC(46d83b42) SHA1(85b178781f0595b5af0375fee32d0dd8cdba8fca) ) |
3853 | 4468 | ROM_LOAD16_BYTE( "rom-200s.bin", 0x20000, 0x10000, CRC(bf1b31ae) SHA1(f2d7f13854b8a3dd4de9ae98cc3034dfcf3846b8) ) |
r241781 | r241782 | |
3865 | 4480 | ROM_LOAD16_BYTE( "rom-200y.bin", 0xe0000, 0x10000, CRC(b568e1be) SHA1(5d62037892e040515e4262db43057f33436fa12d) ) |
3866 | 4481 | ROM_LOAD16_BYTE( "rom-210y.bin", 0xe0001, 0x10000, CRC(3f5cdd3e) SHA1(c33c155158a5c69a7f2e61cd88b297dc14ecd479) ) |
3867 | 4482 | |
3868 | ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */ | |
4483 | ROM_REGION( 0x14000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */ | |
3869 | 4484 | ROM_LOAD( "136087-5001.1f", 0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) ) |
3870 | 4485 | ROM_CONTINUE( 0x004000, 0x00c000 ) |
3871 | 4486 | |
3872 | ROM_REGION( 0x2000, "asic65:asic65cpu", 0 ) /* 64k for ASIC65 */ | |
4487 | ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* 64k for ASIC65 */ | |
3873 | 4488 | ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) ) |
3874 | 4489 | |
3875 | ROM_REGION( 0x10000, "cpu6", 0 ) /* 64k for DSP communications */ | |
4490 | ROM_REGION( 0x10000, "mainpcb:cpu6", 0 ) /* 64k for DSP communications */ | |
3876 | 4491 | ROM_LOAD( "136087-1025.5f", 0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) ) |
3877 | 4492 | |
3878 | ROM_REGION16_BE( 0xc0000, "user1", 0 ) /* 768k for object ROM */ | |
4493 | ROM_REGION16_BE( 0xc0000, "mainpcb:user1", 0 ) /* 768k for object ROM */ | |
3879 | 4494 | ROM_LOAD16_BYTE( "rom.2t", 0x00000, 0x20000, CRC(05284504) SHA1(03b81c077f8ff073713f4bcc10b82087743b0d84) ) |
3880 | 4495 | ROM_LOAD16_BYTE( "rom.2lm", 0x00001, 0x20000, CRC(d6e65b87) SHA1(ac4b2f292f6e28a15e3a12f09f6c2f9523e8b178) ) |
3881 | 4496 | |
3882 | ROM_REGION( 0x80000, "jsa:oki1", 0 ) | |
4497 | ROM_REGION( 0x80000, "mainpcb:jsa:oki1", 0 ) | |
3883 | 4498 | ROM_LOAD( "136087-5002.1m", 0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) ) |
3884 | 4499 | ROM_LOAD( "136087-5003.1n", 0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) ) |
3885 | 4500 | ROM_LOAD( "136087-5004.1p", 0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) ) |
3886 | 4501 | ROM_LOAD( "136087-5005.1r", 0x060000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) ) |
3887 | 4502 | |
3888 | ROM_REGION( 0x015D, "plds", 0 ) | |
4503 | ROM_REGION( 0x015D, "mainpcb:plds", 0 ) | |
3889 | 4504 | /* GAL's located on Sound board */ |
3890 | 4505 | ROM_LOAD( "136085-1038.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2F */ |
3891 | 4506 | ROM_LOAD( "136085-1039.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL16V8A at location 2L */ |
r241781 | r241782 | |
3902 | 4517 | /* GAL's located on "Multisync" board */ |
3903 | 4518 | ROM_LOAD( "136087-9001.bin", 0x0000, 0x0001, NO_DUMP ) /* GAL6001 at location 200K (SLOOP) */ |
3904 | 4519 | |
3905 | ROM_REGION( 0x800, "200e", 0 ) | |
4520 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3906 | 4521 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
3907 | 4522 | |
3908 | ROM_REGION( 0x800, "210e", 0 ) | |
4523 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3909 | 4524 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
3910 | 4525 | ROM_END |
3911 | 4526 | |
3912 | 4527 | |
3913 | 4528 | ROM_START( strtdriv ) |
3914 | ROM_REGION( 0x200000, "maincpu", 0 ) /* 2MB for 68000 code */ | |
4529 | ROM_REGION( 0x200000, "mainpcb:maincpu", 0 ) /* 2MB for 68000 code */ | |
3915 | 4530 | ROM_LOAD16_BYTE( "136091-0002.200r", 0x000000, 0x010000, CRC(d28f2629) SHA1(266b4a80fd366fec2329ed2cec7fb570cef34291) ) |
3916 | 4531 | ROM_LOAD16_BYTE( "136091-0001.210r", 0x000001, 0x010000, CRC(443428d1) SHA1(d93fd21a2c9d1e24c599867a110c1031d72e81b7) ) |
3917 | 4532 | ROM_LOAD16_BYTE( "136091-0004.200s", 0x020000, 0x010000, CRC(379b9d18) SHA1(8cd903cc4e970cc45d7ef431233730b53dabeb1d) ) |
r241781 | r241782 | |
3929 | 4544 | ROM_LOAD16_BYTE( "136091-0016.200y", 0x0e0000, 0x010000, CRC(f85ad532) SHA1(f9d2480104a7487c23d33b05aa044b7f4ca08c67) ) |
3930 | 4545 | ROM_LOAD16_BYTE( "136091-0015.210y", 0x0e0001, 0x010000, CRC(a2e406f3) SHA1(a7266508011c892cb1032fa4d77ccbafedc844e8) ) |
3931 | 4546 | |
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 */ | |
3933 | 4548 | ROM_LOAD( "136091-0033.10j", 0x000000, 0x010000, CRC(57504ab6) SHA1(ec8361b7da964c07ca0da48a87537badc3986fe0) ) |
3934 | 4549 | |
3935 | ROM_REGION( 0x60000, "user1", 0 ) /* 384k for object ROM */ | |
4550 | ROM_REGION( 0x60000, "mainpcb:user1", 0 ) /* 384k for object ROM */ | |
3936 | 4551 | ROM_LOAD16_BYTE( "136091-0017.2lm", 0x00000, 0x10000, CRC(b0454074) SHA1(9530ea1ef215116da1f0843776fa7a6b4637049d) ) |
3937 | 4552 | ROM_LOAD16_BYTE( "136091-0018.2t", 0x00001, 0x10000, CRC(ef432aa8) SHA1(56bce13c111db7874c9b669d479f6ef47976ee14) ) |
3938 | 4553 | ROM_LOAD16_BYTE( "136091-0019.2k", 0x20000, 0x10000, CRC(5bb00676) SHA1(cad1cea8e43f9590fc71c00fab4eff0d447f9296) ) |
r241781 | r241782 | |
3940 | 4555 | ROM_LOAD16_BYTE( "136091-0021.2j", 0x40000, 0x10000, CRC(14f2caae) SHA1(ff40dbced58dc910a2b5825b846a5e52933cb8fc) ) |
3941 | 4556 | ROM_LOAD16_BYTE( "136091-0022.2p", 0x40001, 0x10000, CRC(bc4dd071) SHA1(ca182451a0a18d343dce1be56090d51950d43906) ) |
3942 | 4557 | |
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 */ | |
3944 | 4559 | ROM_LOAD16_BYTE( "136091-0026.30e", 0x000000, 0x020000, CRC(47705109) SHA1(fa40275b71b74be8591282d2fba4215b98fc29c9) ) |
3945 | 4560 | ROM_LOAD16_BYTE( "136091-0025.10e", 0x000001, 0x020000, CRC(ead9254e) SHA1(92152d3ca77b542b3bb3398ccf414df28c95abfd) ) |
3946 | 4561 | |
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 */ | |
3948 | 4563 | ROM_LOAD( "136091-0033.10j", 0x000000, 0x010000, CRC(57504ab6) SHA1(ec8361b7da964c07ca0da48a87537badc3986fe0) ) |
3949 | 4564 | |
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) */ | |
3951 | 4566 | ROM_FILL( 0x000000, 0x010000, 0x00) |
3952 | 4567 | |
3953 | ROM_REGION( 0x80000, "ds3sdsp_data", 0 ) | |
4568 | ROM_REGION( 0x80000, "mainpcb:ds3sdsp_data", 0 ) | |
3954 | 4569 | ROM_LOAD16_BYTE( "136052-1123.12lm",0x00000, 0x10000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) |
3955 | 4570 | ROM_LOAD16_BYTE( "136077-1017.12t", 0x00001, 0x10000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) |
3956 | 4571 | |
r241781 | r241782 | |
3963 | 4578 | ROM_FILL( 0x60000, 0x20000, 0xff) /* 12N */ |
3964 | 4579 | ROM_LOAD16_BYTE( "136052-1126.12h", 0x60000, 0x10000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) |
3965 | 4580 | |
3966 | ROM_REGION( 0x800, "200e", 0 ) | |
4581 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
3967 | 4582 | ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
3968 | 4583 | |
3969 | ROM_REGION( 0x800, "210e", 0 ) | |
4584 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
3970 | 4585 | ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) ) |
3971 | 4586 | ROM_END |
3972 | 4587 | |
3973 | 4588 | ROM_START( hdrivair ) |
3974 | ROM_REGION( 0x200000, "maincpu", 0 ) /* 2MB for 68000 code */ | |
4589 | ROM_REGION( 0x200000, "mainpcb:maincpu", 0 ) /* 2MB for 68000 code */ | |
3975 | 4590 | ROM_LOAD16_BYTE( "stesthi.bin", 0x000000, 0x20000, CRC(b4bfa451) SHA1(002a5d213ba8ec76ad83a87d76aefbd98b1e4c94) ) |
3976 | 4591 | ROM_LOAD16_BYTE( "stestlo.bin", 0x000001, 0x20000, CRC(58758419) SHA1(7951d4c8cf0b28b4fac3fe172ea3bc56f61bd9ff) ) |
3977 | 4592 | ROM_LOAD16_BYTE( "drivehi.bin", 0x040000, 0x20000, CRC(d15f5119) SHA1(c2c7e9675c14ba41effa6f721602f6471b348758) ) |
r241781 | r241782 | |
3985 | 4600 | ROM_LOAD16_BYTE( "coprochi.bin",0x1c0000, 0x20000, CRC(5d2ca109) SHA1(e1a94d3fbfd5d542732555bf60268e73d66b3a06) ) |
3986 | 4601 | ROM_LOAD16_BYTE( "coproclo.bin",0x1c0001, 0x20000, CRC(5f98b04d) SHA1(9c4fa4092fd85f1d67be44f2ff91a907a87db51a) ) |
3987 | 4602 | |
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 */ | |
3989 | 4604 | ROM_LOAD( "sboot.bin", 0x000000, 0x010000, CRC(cde4d010) SHA1(853f4b813ff70fe74cd87e92131c46fca045610d) ) |
3990 | 4605 | |
3991 | ROM_REGION( 0xc0000, "user1", 0 ) /* 768k for object ROM */ | |
4606 | ROM_REGION( 0xc0000, "mainpcb:user1", 0 ) /* 768k for object ROM */ | |
3992 | 4607 | ROM_LOAD16_BYTE( "obj0l.bin", 0x00000, 0x20000, CRC(1f835f2e) SHA1(9d3419f2c1aa65ddfe9ace4e70ca1212d634afbf) ) |
3993 | 4608 | ROM_LOAD16_BYTE( "obj0h.bin", 0x00001, 0x20000, CRC(c321ab55) SHA1(e095e40bb1ebda7c9ff04a5086c10ab41dec2f16) ) |
3994 | 4609 | ROM_LOAD16_BYTE( "obj1l.bin", 0x40000, 0x20000, CRC(3d65f264) SHA1(e9232f5bf439bf4e1cf99cc7e81b7f9550563f15) ) |
r241781 | r241782 | |
3996 | 4611 | ROM_LOAD16_BYTE( "obj2l.bin", 0x80000, 0x20000, CRC(b206cc7e) SHA1(17f05e906c41b804fe99dd6cd8acbade919a6a10) ) |
3997 | 4612 | ROM_LOAD16_BYTE( "obj2h.bin", 0x80001, 0x20000, CRC(a666e98c) SHA1(90e380ff87538c7d557cf005a4a5bcedc250eb72) ) |
3998 | 4613 | |
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 */ | |
4000 | 4615 | ROM_LOAD16_BYTE( "dsk2phi.bin", 0x00000, 0x80000, CRC(71c268e0) SHA1(c089248a7dfadf2eba3134fe40ebb777c115a886) ) |
4001 | 4616 | ROM_LOAD16_BYTE( "dsk2plo.bin", 0x00001, 0x80000, CRC(edf96363) SHA1(47f0608c2b0ab983681de021a16b1d10d4feb800) ) |
4002 | 4617 | |
4003 | ROM_REGION32_LE( 0x200000, "user4", 0 )/* 2MB for ASIC61 ROMs */ | |
4618 | ROM_REGION32_LE( 0x200000, "mainpcb:user4", 0 )/* 2MB for ASIC61 ROMs */ | |
4004 | 4619 | ROM_LOAD32_BYTE( "roads0.bin", 0x000000, 0x80000, CRC(5028eb41) SHA1(abe9d73e74d4f0308f07cbe9c18c8a77456fdbc7) ) |
4005 | 4620 | ROM_LOAD32_BYTE( "roads1.bin", 0x000001, 0x80000, CRC(c3f2c201) SHA1(c73933d7e46f3c63c4ca86af40eb4f0abb09aedf) ) |
4006 | 4621 | ROM_LOAD32_BYTE( "roads2.bin", 0x000002, 0x80000, CRC(527923fe) SHA1(839de8486bb7489f059b5a629ab229ad96de7eac) ) |
4007 | 4622 | ROM_LOAD32_BYTE( "roads3.bin", 0x000003, 0x80000, CRC(2f2023b2) SHA1(d474892443db2f0710c2be0d6b90735a2fbee12a) ) |
4008 | 4623 | |
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 */ | |
4010 | 4625 | ROM_LOAD( "sboot.bin", 0x00000, 0x10000, CRC(cde4d010) SHA1(853f4b813ff70fe74cd87e92131c46fca045610d) ) |
4011 | 4626 | |
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 */ | |
4013 | 4628 | ROM_LOAD( "xboot.bin", 0x00000, 0x10000, CRC(054b46a0) SHA1(038eec17e678f2755239d6795acfda621796802e) ) |
4014 | 4629 | |
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 */ | |
4016 | 4631 | ROM_LOAD16_BYTE( "ds3rom4.bin", 0x000000, 0x80000, CRC(15ffb19a) SHA1(030dc90b7cabcd7fc5f231b09d2aa2eaf6e60b98) ) |
4017 | 4632 | ROM_LOAD16_BYTE( "ds3rom0.bin", 0x000001, 0x80000, CRC(90b8dbb6) SHA1(fff693cb81e88bc00e048bb71406295fe7be5122) ) |
4018 | 4633 | ROM_LOAD16_BYTE( "ds3rom5.bin", 0x100000, 0x80000, CRC(8d0e9b27) SHA1(76556f48bdf14475260c268ebdb16ecb494b2f36) ) |
r241781 | r241782 | |
4022 | 4637 | ROM_LOAD16_BYTE( "ds3rom7.bin", 0x300000, 0x80000, CRC(323eff0b) SHA1(5d4945d77191ee44b4fbf125bc0816217321829e) ) |
4023 | 4638 | ROM_LOAD16_BYTE( "ds3rom3.bin", 0x300001, 0x80000, CRC(63965868) SHA1(d61d9d6709a3a3c37c2652602e97fdee52e0e7cb) ) |
4024 | 4639 | |
4025 | ROM_REGION( 0x800, "200e", 0 ) | |
4640 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
4026 | 4641 | ROM_LOAD( "hdrivair.200e", 0x000000, 0x000800, CRC(6270b696) SHA1(e302880dbca53ee725108ca4f7e45a176e85e96d) ) |
4027 | 4642 | |
4028 | ROM_REGION( 0x800, "210e", 0 ) | |
4643 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
4029 | 4644 | ROM_LOAD( "hdrivair.210e", 0x000000, 0x000800, CRC(a1c39919) SHA1(92799a7a73f545dad6684eacf7009a6c4d52d8f7) ) |
4030 | 4645 | ROM_END |
4031 | 4646 | |
4032 | 4647 | |
4033 | 4648 | ROM_START( hdrivairp ) |
4034 | ROM_REGION( 0x200000, "maincpu", 0 ) /* 2MB for 68000 code */ | |
4649 | ROM_REGION( 0x200000, "mainpcb:maincpu", 0 ) /* 2MB for 68000 code */ | |
4035 | 4650 | ROM_LOAD16_BYTE( "stest.0h", 0x000000, 0x20000, CRC(bf4bb6a0) SHA1(e38ec5ce245f98bfe8084ba684bffc85dc19d3be) ) |
4036 | 4651 | ROM_LOAD16_BYTE( "stest.0l", 0x000001, 0x20000, CRC(f462b511) SHA1(d88efb8cc30322a8332a1f50de775a204758e176) ) |
4037 | 4652 | ROM_LOAD16_BYTE( "drive.hi", 0x040000, 0x20000, CRC(56571590) SHA1(d0362b8bd438cd7dfa9ff7cf71307f44c2cfe843) ) |
r241781 | r241782 | |
4045 | 4660 | ROM_LOAD16_BYTE( "ms2cproc.0h", 0x1c0000, 0x20000, CRC(19024f2d) SHA1(a94e8836cdc147cea5816b99b8a1ad5ff669d984) ) |
4046 | 4661 | ROM_LOAD16_BYTE( "ms2cproc.0l", 0x1c0001, 0x20000, CRC(1e48bd46) SHA1(1a903d889f48604bd8d2d9a0bda4ee20e7ad968b) ) |
4047 | 4662 | |
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 */ | |
4049 | 4664 | ROM_LOAD( "sboota.bin", 0x10000 + 0x00000, 0x10000, CRC(3ef819cd) SHA1(c547b869a3a37a82fb46584fe0ef0cfe21a4f882) ) |
4050 | 4665 | |
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 */ | |
4052 | 4667 | ROM_LOAD( "xboota.bin", 0x10000 + 0x00000, 0x10000, CRC(d9c49901) SHA1(9f90ae3a47eb1ef00c3ec3661f60402c2eae2108) ) |
4053 | 4668 | |
4054 | ROM_REGION( 0xc0000, "user1", 0 ) /* 768k for object ROM */ | |
4669 | ROM_REGION( 0xc0000, "mainpcb:user1", 0 ) /* 768k for object ROM */ | |
4055 | 4670 | ROM_LOAD16_BYTE( "objects.0l", 0x00000, 0x20000, CRC(3c9e9078) SHA1(f1daf32117236401f3cb97f332708632003e55f8) ) |
4056 | 4671 | ROM_LOAD16_BYTE( "objects.0h", 0x00001, 0x20000, CRC(4480dbae) SHA1(6a455173c38e80093f58bdc322cffcf25e70b6ae) ) |
4057 | 4672 | ROM_LOAD16_BYTE( "objects.1l", 0x40000, 0x20000, CRC(700bd978) SHA1(5cd63d4eee00d90fe29fb9697b6a0ea6b86704ae) ) |
r241781 | r241782 | |
4059 | 4674 | ROM_LOAD16_BYTE( "objects.2l", 0x80000, 0x20000, CRC(e3b512f0) SHA1(080c5a21cb76edcb55d1c2488e9d91cf29cb0665) ) |
4060 | 4675 | ROM_LOAD16_BYTE( "objects.2h", 0x80001, 0x20000, CRC(3f83742b) SHA1(4b6e0134a806bcc9bd56432737047f86d0a16424) ) |
4061 | 4676 | |
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 */ | |
4063 | 4678 | ROM_LOAD16_BYTE( "dskpics.hi", 0x00000, 0x80000, CRC(eaa88101) SHA1(ed0ebf8a9a9514d810242b9b552126f6717f9e25) ) |
4064 | 4679 | ROM_LOAD16_BYTE( "dskpics.lo", 0x00001, 0x80000, CRC(8c6f0750) SHA1(4cb23cedc500c1509dc875c3291a5771c8473f73) ) |
4065 | 4680 | |
4066 | ROM_REGION32_LE( 0x200000, "user4", 0 )/* 2MB for ASIC61 ROMs */ | |
4681 | ROM_REGION32_LE( 0x200000, "mainpcb:user4", 0 )/* 2MB for ASIC61 ROMs */ | |
4067 | 4682 | ROM_LOAD16_BYTE( "roads.0", 0x000000, 0x80000, CRC(cab2e335) SHA1(914996c5b7905f1c20fcda6972af88debbee59cd) ) |
4068 | 4683 | ROM_LOAD16_BYTE( "roads.1", 0x000001, 0x80000, CRC(62c244ba) SHA1(f041a269f35a9d187c90241c5b64173663ad5268) ) |
4069 | 4684 | ROM_LOAD16_BYTE( "roads.2", 0x000002, 0x80000, CRC(ba57f415) SHA1(1daf5a014e9bef15466b282bcca2395fec2b0628) ) |
4070 | 4685 | ROM_LOAD16_BYTE( "roads.3", 0x000003, 0x80000, CRC(1e6a4ca0) SHA1(2cf06d6c73be11cf10515246fca2baa05ce5091b) ) |
4071 | 4686 | |
4072 | ROM_REGION( 0x10000, "ds3sdsp", 0 ) /* DS IV sound ADSP-2105 */ | |
4687 | ROM_REGION( 0x10000, "mainpcb:ds3sdsp", 0 ) /* DS IV sound ADSP-2105 */ | |
4073 | 4688 | ROM_LOAD( "sboota.bin", 0x00000, 0x10000, CRC(3ef819cd) SHA1(c547b869a3a37a82fb46584fe0ef0cfe21a4f882) ) |
4074 | 4689 | |
4075 | ROM_REGION( 0x10000, "ds3xdsp", 0 ) /* DS IV auxillary ADSP-2105 */ | |
4690 | ROM_REGION( 0x10000, "mainpcb:ds3xdsp", 0 ) /* DS IV auxillary ADSP-2105 */ | |
4076 | 4691 | ROM_LOAD( "xboota.bin", 0x00000, 0x10000, CRC(d9c49901) SHA1(9f90ae3a47eb1ef00c3ec3661f60402c2eae2108) ) |
4077 | 4692 | |
4078 | ROM_REGION16_BE( 0x400000, "ds3sdsp_data", 0 ) | |
4693 | ROM_REGION16_BE( 0x400000, "mainpcb:ds3sdsp_data", 0 ) | |
4079 | 4694 | ROM_LOAD16_BYTE( "ds3rom.5", 0x000000, 0x80000, CRC(6ef9ed90) SHA1(8bd927a56fe99f7db96d203c1daeb8c8c83f2c17) ) |
4080 | 4695 | ROM_LOAD16_BYTE( "ds3rom.1", 0x000001, 0x80000, CRC(03673d8d) SHA1(13596f7acb58fba78d6e4f2ac7bb21d9d2589668) ) |
4081 | 4696 | ROM_LOAD16_BYTE( "ds3rom.6", 0x100000, 0x80000, CRC(cd4cd6bc) SHA1(95689ab7cb18af54ff09aebf223f6346f13dfd7b) ) |
r241781 | r241782 | |
4085 | 4700 | ROM_LOAD16_BYTE( "ds3rom.0", 0x300000, 0x80000, CRC(90b8dbb6) SHA1(fff693cb81e88bc00e048bb71406295fe7be5122) ) |
4086 | 4701 | ROM_LOAD16_BYTE( "ds3rom.4", 0x300001, 0x80000, CRC(6281efee) SHA1(47d0f3ff973166d818877996c45dccf1d3a85fe1) ) |
4087 | 4702 | |
4088 | ROM_REGION( 0x800, "200e", 0 ) | |
4703 | ROM_REGION( 0x800, "mainpcb:200e", 0 ) | |
4089 | 4704 | ROM_LOAD( "hdrivair.200e", 0x000000, 0x000800, CRC(6270b696) SHA1(e302880dbca53ee725108ca4f7e45a176e85e96d) ) |
4090 | 4705 | |
4091 | ROM_REGION( 0x800, "210e", 0 ) | |
4706 | ROM_REGION( 0x800, "mainpcb:210e", 0 ) | |
4092 | 4707 | ROM_LOAD( "hdrivair.210e", 0x000000, 0x000800, CRC(a1c39919) SHA1(92799a7a73f545dad6684eacf7009a6c4d52d8f7) ) |
4093 | 4708 | ROM_END |
4094 | 4709 | |
r241781 | r241782 | |
4331 | 4946 | * |
4332 | 4947 | *************************************/ |
4333 | 4948 | |
4334 | ||
4949 | void harddriv_state::init_harddriv(void) | |
4335 | 4950 | { |
4336 | 4951 | /* initialize the boards */ |
4337 | 4952 | init_driver(); |
r241781 | r241782 | |
4354 | 4969 | } |
4355 | 4970 | |
4356 | 4971 | |
4357 | ||
4972 | void harddriv_state::init_harddrivc(void) | |
4358 | 4973 | { |
4359 | 4974 | /* initialize the boards */ |
4360 | 4975 | init_multisync(1); |
r241781 | r241782 | |
4377 | 4992 | } |
4378 | 4993 | |
4379 | 4994 | |
4380 | ||
4995 | void harddriv_state::init_stunrun(void) | |
4381 | 4996 | { |
4382 | 4997 | /* initialize the boards */ |
4383 | 4998 | init_multisync(0); |
r241781 | r241782 | |
4394 | 5009 | } |
4395 | 5010 | |
4396 | 5011 | |
4397 | ||
5012 | void harddriv_state::init_racedriv(void) | |
4398 | 5013 | { |
4399 | 5014 | /* initialize the boards */ |
4400 | 5015 | init_driver(); |
r241781 | r241782 | |
4403 | 5018 | init_driver_sound(); |
4404 | 5019 | |
4405 | 5020 | /* set up the slapstic */ |
4406 | slapstic_init(machine(), 117); | |
5021 | m_slapstic_device->slapstic_init(machine(), 117); | |
4407 | 5022 | 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)); |
4408 | 5023 | |
4409 | 5024 | /* synchronization */ |
r241781 | r241782 | |
4424 | 5039 | init_driver_sound(); |
4425 | 5040 | |
4426 | 5041 | /* set up the slapstic */ |
4427 | slapstic_init(machine(), 117); | |
5042 | m_slapstic_device->slapstic_init(machine(), 117); | |
4428 | 5043 | 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)); |
4429 | 5044 | |
4430 | 5045 | /* synchronization */ |
r241781 | r241782 | |
4443 | 5058 | m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this)); |
4444 | 5059 | } |
4445 | 5060 | |
4446 | DRIVER_INIT_MEMBER(harddriv_state,racedrivc) { racedrivc_init_common(0xfff95cd0); } | |
4447 | DRIVER_INIT_MEMBER(harddriv_state,racedrivc1) { racedrivc_init_common(0xfff7ecd0); } | |
5061 | void harddriv_state::init_racedrivc(void) { racedrivc_init_common(0xfff95cd0); } | |
5062 | void harddriv_state::init_racedrivc1(void) { racedrivc_init_common(0xfff7ecd0); } | |
4448 | 5063 | |
4449 | ||
5064 | void harddriv_state::init_racedrivc_panorama_side() | |
4450 | 5065 | { |
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 | ||
5087 | void harddriv_state::init_racedrivb1(void) | |
5088 | { | |
4451 | 5089 | /* this unpleasantness prevents racedriv1/racedrivb1/racedrivg1 from crashing MAME during boot */ |
4452 | 5090 | /* they clear the DSP32C's RAM and then release it from reset, causing it to run through */ |
4453 | 5091 | /* its address space recursively executing instructions */ |
r241781 | r241782 | |
4499 | 5137 | } |
4500 | 5138 | |
4501 | 5139 | |
4502 | ||
5140 | void harddriv_state::init_steeltal(void) | |
4503 | 5141 | { |
4504 | 5142 | steeltal_init_common(0x4fc18, 0); |
4505 | 5143 | } |
4506 | 5144 | |
4507 | ||
5145 | void harddriv_state::init_steeltal1(void) | |
4508 | 5146 | { |
4509 | 5147 | steeltal_init_common(0x4f9c6, 0); |
4510 | 5148 | } |
4511 | 5149 | |
4512 | ||
5150 | void harddriv_state::init_steeltalp(void) | |
4513 | 5151 | { |
4514 | 5152 | steeltal_init_common(0x52290, 1); |
4515 | 5153 | } |
4516 | 5154 | |
4517 | 5155 | |
4518 | ||
5156 | void harddriv_state::init_strtdriv(void) | |
4519 | 5157 | { |
4520 | 5158 | /* initialize the boards */ |
4521 | 5159 | init_multisync(1); |
r241781 | r241782 | |
4523 | 5161 | init_dsk(); |
4524 | 5162 | |
4525 | 5163 | /* set up the slapstic */ |
4526 | slapstic_init(machine(), 117); | |
5164 | m_slapstic_device->slapstic_init(machine(), 117); | |
4527 | 5165 | 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)); |
4528 | 5166 | |
4529 | 5167 | m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(FUNC(harddriv_state::hda68k_port1_r), this)); |
r241781 | r241782 | |
4544 | 5182 | } |
4545 | 5183 | |
4546 | 5184 | |
4547 | ||
5185 | void harddriv_state::init_hdrivair(void) | |
4548 | 5186 | { |
4549 | 5187 | /* initialize the boards */ |
4550 | 5188 | init_multisync(1); |
r241781 | r241782 | |
4569 | 5207 | } |
4570 | 5208 | |
4571 | 5209 | |
4572 | ||
5210 | void harddriv_state::init_hdrivairp(void) | |
4573 | 5211 | { |
4574 | 5212 | /* initialize the boards */ |
4575 | 5213 | init_multisync(1); |
r241781 | r241782 | |
4594 | 5232 | } |
4595 | 5233 | |
4596 | 5234 | |
4597 | ||
4598 | 5235 | /************************************* |
4599 | 5236 | * |
4600 | 5237 | * Game driver(s) |
4601 | 5238 | * |
4602 | 5239 | *************************************/ |
4603 | 5240 | |
4604 | GAME( 1988, harddriv, 0, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 7)", 0 ) | |
4605 | GAME( 1988, harddrivb, harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 7)", 0 ) | |
4606 | GAME( 1988, harddrivg, harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, German, rev 7)", 0 ) | |
4607 | GAME( 1988, harddrivj, harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, Japan, rev 7)", 0 ) | |
4608 | GAME( 1988, harddrivb6, harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 6)", 0 ) | |
4609 | GAME( 1988, harddrivj6, harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, Japan, rev 6)", 0 ) | |
4610 | GAME( 1988, harddrivb5, harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 5)", 0 ) | |
4611 | GAME( 1988, harddrivg4, harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, German, rev 4)", 0 ) | |
4612 | GAME( 1988, harddriv3, harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 3)", 0 ) | |
4613 | GAME( 1988, harddriv2, harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 2)", 0 ) | |
4614 | GAME( 1988, harddriv1, harddriv, harddriv, harddriv, harddriv_state, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 1)", 0 ) | |
5241 | GAME( 1999, harddriv, 0, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 7)", 0 ) | |
5242 | GAME( 1988, harddrivb, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 7)", 0 ) | |
5243 | GAME( 1988, harddrivg, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, German, rev 7)", 0 ) | |
5244 | GAME( 1988, harddrivj, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, Japan, rev 7)", 0 ) | |
5245 | GAME( 1988, harddrivb6, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 6)", 0 ) | |
5246 | GAME( 1988, harddrivj6, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, Japan, rev 6)", 0 ) | |
5247 | GAME( 1988, harddrivb5, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 5)", 0 ) | |
5248 | GAME( 1988, harddrivg4, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, German, rev 4)", 0 ) | |
5249 | GAME( 1988, harddriv3, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 3)", 0 ) | |
5250 | GAME( 1988, harddriv2, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 2)", 0 ) | |
5251 | GAME( 1988, harddriv1, harddriv, harddriv_machine, harddriv, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 1)", 0 ) | |
4615 | 5252 | |
4616 | GAME( 1990, harddrivc, harddriv, harddrivc, racedrivc, harddriv_state, harddrivc, ROT0, "Atari Games", "Hard Drivin' (compact, rev 2)", 0 ) | |
4617 | GAME( 1990, harddrivcg, harddriv, harddrivc, racedrivc, harddriv_state, harddrivc, ROT0, "Atari Games", "Hard Drivin' (compact, German, rev 2)", 0 ) | |
4618 | GAME( 1990, harddrivcb, harddriv, harddrivc, racedrivc, harddriv_state, harddrivc, ROT0, "Atari Games", "Hard Drivin' (compact, British, rev 2)", 0 ) | |
4619 | GAME( 1990, harddrivc1, harddriv, harddrivc, racedrivc, harddriv_state, harddrivc, ROT0, "Atari Games", "Hard Drivin' (compact, rev 1)", 0 ) | |
5253 | GAME( 1990, harddrivc, harddriv, harddrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (compact, rev 2)", 0 ) | |
5254 | GAME( 1990, harddrivcg, harddriv, harddrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (compact, German, rev 2)", 0 ) | |
5255 | GAME( 1990, harddrivcb, harddriv, harddrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (compact, British, rev 2)", 0 ) | |
5256 | GAME( 1990, harddrivc1, harddriv, harddrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Hard Drivin' (compact, rev 1)", 0 ) | |
4620 | 5257 | |
4621 | GAME( 1989, stunrun, 0, stunrun, stunrun, harddriv_state, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 6)", 0 ) | |
4622 | GAME( 1989, stunrunj, stunrun, stunrun, stunrun, harddriv_state, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 7, Japan)", 0 ) | |
4623 | GAME( 1989, stunrun5, stunrun, stunrun, stunrun, harddriv_state, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 5)", 0 ) | |
4624 | GAME( 1989, stunrune, stunrun, stunrun, stunrun, harddriv_state, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 5, Europe)", 0 ) | |
4625 | GAME( 1989, stunrun4, stunrun, stunrun, stunrun, harddriv_state, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 4)", 0 ) | |
4626 | GAME( 1989, stunrun3, stunrun, stunrun, stunrun, harddriv_state, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 3)", 0 ) | |
4627 | GAME( 1989, stunrun3e, stunrun, stunrun, stunrun, harddriv_state, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 3, Europe)", 0 ) | |
4628 | GAME( 1989, stunrun2, stunrun, stunrun, stunrun, harddriv_state, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 2)", 0 ) | |
4629 | GAME( 1989, stunrun2e, stunrun, stunrun, stunrun, harddriv_state, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 2, Europe)", 0 ) | |
4630 | GAME( 1989, stunrun0, stunrun, stunrun, stunrun, harddriv_state, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 0)", 0 ) | |
4631 | GAME( 1989, stunrunp, stunrun, stunrun, stunrun, harddriv_state, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (upright prototype)", 0 ) | |
5258 | GAME( 1989, stunrun, 0, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 6)", 0 ) | |
5259 | GAME( 1989, stunrunj, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 7, Japan)", 0 ) | |
5260 | GAME( 1989, stunrun5, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 5)", 0 ) | |
5261 | GAME( 1989, stunrune, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 5, Europe)", 0 ) | |
5262 | GAME( 1989, stunrun4, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 4)", 0 ) | |
5263 | GAME( 1989, stunrun3, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 3)", 0 ) | |
5264 | GAME( 1989, stunrun3e, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 3, Europe)", 0 ) | |
5265 | GAME( 1989, stunrun2, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 2)", 0 ) | |
5266 | GAME( 1989, stunrun2e, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 2, Europe)", 0 ) | |
5267 | GAME( 1989, stunrun0, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (rev 0)", 0 ) | |
5268 | GAME( 1989, stunrunp, stunrun, stunrun_machine, stunrun, driver_device, 0, ROT0, "Atari Games", "S.T.U.N. Runner (upright prototype)", 0 ) | |
4632 | 5269 | |
4633 | GAME( 1990, racedriv, 0, racedriv, racedriv, harddriv_state, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 5)", 0 ) | |
4634 | GAME( 1990, racedrivb, racedriv, racedriv, racedriv, harddriv_state, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 5)", 0 ) | |
4635 | GAME( 1990, racedrivg, racedriv, racedriv, racedriv, harddriv_state, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 5)", 0 ) | |
4636 | GAME( 1990, racedriv4, racedriv, racedriv, racedriv, harddriv_state, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 4)", 0 ) | |
4637 | GAME( 1990, racedrivb4, racedriv, racedriv, racedriv, harddriv_state, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 4)", 0 ) | |
4638 | GAME( 1990, racedrivg4, racedriv, racedriv, racedriv, harddriv_state, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 4)", 0 ) | |
4639 | GAME( 1990, racedriv3, racedriv, racedriv, racedriv, harddriv_state, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 3)", 0 ) | |
4640 | GAME( 1990, racedriv2, racedriv, racedriv, racedriv, harddriv_state, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 2)", 0 ) | |
4641 | GAME( 1990, racedriv1, racedriv, racedriv, racedriv, harddriv_state, racedrivb1, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 1)", 0 ) | |
4642 | GAME( 1990, racedrivb1, racedriv, racedriv, racedriv, harddriv_state, racedrivb1, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 1)", 0 ) | |
4643 | GAME( 1990, racedrivg1, racedriv, racedriv, racedriv, harddriv_state, racedrivb1, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 2)", 0 ) | |
5270 | GAME( 1990, racedriv, 0, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 5)", 0 ) | |
5271 | GAME( 1990, racedrivb, racedriv, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 5)", 0 ) | |
5272 | GAME( 1990, racedrivg, racedriv, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 5)", 0 ) | |
5273 | GAME( 1990, racedriv4, racedriv, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 4)", 0 ) | |
5274 | GAME( 1990, racedrivb4, racedriv, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 4)", 0 ) | |
5275 | GAME( 1990, racedrivg4, racedriv, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 4)", 0 ) | |
5276 | GAME( 1990, racedriv3, racedriv, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 3)", 0 ) | |
5277 | GAME( 1990, racedriv2, racedriv, racedriv_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 2)", 0 ) | |
5278 | GAME( 1990, racedriv1, racedriv, racedrivb1_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 1)", 0 ) | |
5279 | GAME( 1990, racedrivb1, racedriv, racedrivb1_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 1)", 0 ) | |
5280 | GAME( 1990, racedrivg1, racedriv, racedrivb1_machine, racedriv, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 2)", 0 ) | |
4644 | 5281 | |
4645 | GAME( 1990, racedrivc, racedriv, racedrivc, racedrivc, harddriv_state, racedrivc, ROT0, "Atari Games", "Race Drivin' (compact, rev 5)", 0 ) | |
4646 | GAME( 1990, racedrivcb, racedriv, racedrivc, racedrivc, harddriv_state, racedrivc, ROT0, "Atari Games", "Race Drivin' (compact, British, rev 5)", 0 ) | |
4647 | GAME( 1990, racedrivcg, racedriv, racedrivc, racedrivc, harddriv_state, racedrivc, ROT0, "Atari Games", "Race Drivin' (compact, German, rev 5)", 0 ) | |
4648 | GAME( 1990, racedrivc4, racedriv, racedrivc, racedrivc, harddriv_state, racedrivc, ROT0, "Atari Games", "Race Drivin' (compact, rev 4)", 0 ) | |
4649 | GAME( 1990, racedrivcb4, racedriv, racedrivc, racedrivc, harddriv_state, racedrivc, ROT0, "Atari Games", "Race Drivin' (compact, British, rev 4)", 0 ) | |
4650 | GAME( 1990, racedrivcg4, racedriv, racedrivc, racedrivc, harddriv_state, racedrivc, ROT0, "Atari Games", "Race Drivin' (compact, German, rev 4)", 0 ) | |
4651 | GAME( 1990, racedrivc2, racedriv, racedrivc, racedrivc, harddriv_state, racedrivc1,ROT0, "Atari Games", "Race Drivin' (compact, rev 2)", 0 ) | |
4652 | GAME( 1990, racedrivc1, racedriv, racedrivc, racedrivc, harddriv_state, racedrivc1,ROT0, "Atari Games", "Race Drivin' (compact, rev 1)", 0 ) | |
5282 | GAME( 1990, racedrivc, racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, rev 5)", 0 ) | |
5283 | GAME( 1990, racedrivcb, racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, British, rev 5)", 0 ) | |
5284 | GAME( 1990, racedrivcg, racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, German, rev 5)", 0 ) | |
5285 | GAME( 1990, racedrivc4, racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, rev 4)", 0 ) | |
5286 | GAME( 1990, racedrivcb4, racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, British, rev 4)", 0 ) | |
5287 | GAME( 1990, racedrivcg4, racedriv, racedrivc_machine, racedrivc, driver_device, 0, ROT0, "Atari Games", "Race Drivin' (compact, German, rev 4)", 0 ) | |
5288 | GAME( 1990, racedrivc2, racedriv, racedrivc1_machine, racedrivc, driver_device, 0,ROT0, "Atari Games", "Race Drivin' (compact, rev 2)", 0 ) | |
5289 | GAME( 1990, racedrivc1, racedriv, racedrivc1_machine, racedrivc, driver_device, 0,ROT0, "Atari Games", "Race Drivin' (compact, rev 1)", 0 ) | |
4653 | 5290 | |
4654 | GAME( 1990, racedrivpan, racedriv, racedriv, racedriv, | |
5291 | GAMEL( 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? | |
4655 | 5292 | |
4656 | GAME( 1991, steeltal, 0, steeltal, steeltal, harddriv_state, steeltal, ROT0, "Atari Games", "Steel Talons (rev 2)", 0 ) | |
4657 | GAME( 1991, steeltalg, steeltal, steeltal, steeltal, harddriv_state, steeltal, ROT0, "Atari Games", "Steel Talons (German, rev 2)", 0 ) | |
4658 | GAME( 1991, steeltal1, steeltal, steeltal, steeltal, harddriv_state, steeltal1,ROT0, "Atari Games", "Steel Talons (rev 1)", 0 ) | |
4659 | GAME( 1991, steeltalp, steeltal, steeltal, steeltal, harddriv_state, steeltalp,ROT0, "Atari Games", "Steel Talons (prototype)", GAME_NOT_WORKING ) | |
5293 | GAME( 1991, steeltal, 0, steeltal_machine, steeltal, driver_device, 0, ROT0, "Atari Games", "Steel Talons (rev 2)", 0 ) | |
5294 | GAME( 1991, steeltalg, steeltal, steeltal_machine, steeltal, driver_device, 0, ROT0, "Atari Games", "Steel Talons (German, rev 2)", 0 ) | |
5295 | GAME( 1991, steeltal1, steeltal, steeltal1_machine, steeltal, driver_device, 0,ROT0, "Atari Games", "Steel Talons (rev 1)", 0 ) | |
5296 | GAME( 1991, steeltalp, steeltal, steeltalp_machine, steeltal, driver_device, 0,ROT0, "Atari Games", "Steel Talons (prototype)", GAME_NOT_WORKING ) | |
4660 | 5297 | |
4661 | GAME( 1993, strtdriv, 0, strtdriv, strtdriv, | |
5298 | GAME( 1993, strtdriv, 0, strtdriv_machine, strtdriv, driver_device, 0, ROT0, "Atari Games", "Street Drivin' (prototype)", 0 ) | |
4662 | 5299 | |
4663 | GAME( 1993, hdrivair, 0, hdrivair, hdrivair, harddriv_state, hdrivair, ROT0, "Atari Games", "Hard Drivin's Airborne (prototype)", GAME_IMPERFECT_SOUND ) | |
4664 | GAME( 1993, hdrivairp, hdrivair, hdrivair, hdrivair, harddriv_state, hdrivairp,ROT0, "Atari Games", "Hard Drivin's Airborne (prototype, early rev)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) | |
5300 | GAME( 1993, hdrivair, 0, hdrivair_machine, hdrivair, driver_device, 0, ROT0, "Atari Games", "Hard Drivin's Airborne (prototype)", GAME_IMPERFECT_SOUND ) | |
5301 | GAME( 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 |
r241781 | r241782 | |
---|---|---|
221 | 221 | |
222 | 222 | #include "emu.h" |
223 | 223 | #include "cpu/i386/i386.h" |
224 | #include "machine/pcshare.h" | |
225 | #include "machine/pckeybrd.h" | |
226 | #include "video/pc_vga.h" | |
227 | 224 | #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" | |
228 | 236 | |
229 | class lindbergh_state : public | |
237 | class lindbergh_state : public driver_device | |
230 | 238 | { |
231 | 239 | public: |
232 | 240 | lindbergh_state(const machine_config &mconfig, device_type type, const char *tag); |
r241781 | r241782 | |
235 | 243 | virtual void machine_reset(); |
236 | 244 | }; |
237 | 245 | |
246 | #if 0 | |
238 | 247 | static ADDRESS_MAP_START(lindbergh_map, AS_PROGRAM, 32, lindbergh_state) |
239 | 248 | 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) | |
242 | 251 | // 0xd0000 - 0xdffff tested, wants 0x414d ("AM") in there |
243 | 252 | 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 */ | |
245 | 254 | AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("mb_bios", 0) /* System BIOS */ |
246 | 255 | ADDRESS_MAP_END |
247 | 256 | |
248 | 257 | static ADDRESS_MAP_START(lindbergh_io, AS_IO, 32, lindbergh_state) |
249 | AM_IMPORT_FROM(pcat32_io_common) | |
258 | // AM_IMPORT_FROM(pcat32_io_common) | |
250 | 259 | |
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) | |
253 | 262 | ADDRESS_MAP_END |
263 | #endif | |
254 | 264 | |
255 | lindbergh_state::lindbergh_state(const machine_config &mconfig, device_type type, const char *tag) : | |
265 | lindbergh_state::lindbergh_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) | |
256 | 266 | { |
257 | 267 | } |
258 | 268 | |
r241781 | r241782 | |
267 | 277 | static MACHINE_CONFIG_START(lindbergh, lindbergh_state) |
268 | 278 | // MCFG_CPU_ADD("maincpu", PENTIUM, 2800000000U) /* Actually Celeron D at 2,8 GHz */ |
269 | 279 | 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) | |
273 | 283 | |
274 | MCFG_FRAGMENT_ADD( pcat_common ) | |
275 | MCFG_FRAGMENT_ADD( pcvideo_vga ) | |
284 | // MCFG_FRAGMENT_ADD( pcat_common ) | |
285 | // MCFG_FRAGMENT_ADD( pcvideo_vga ) | |
276 | 286 | |
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) | |
278 | 307 | MACHINE_CONFIG_END |
279 | 308 | |
280 | 309 | ROM_START(lindbios) |
281 | ROM_REGION32_LE(0x100000, " | |
310 | ROM_REGION32_LE(0x100000, ":pci:1f.0", 0) // PC bios, location 3j7 | |
282 | 311 | ROM_SYSTEM_BIOS(0, "bios0", "6.0.0010 alternate version") |
283 | 312 | ROMX_LOAD("6.0.0010a.bin", 0x00000, 0x100000, CRC(10dd9b76) SHA1(1fdf1f921bc395846a7c3180fbdbc4ca287a9670), ROM_BIOS(1) ) |
284 | 313 | ROM_SYSTEM_BIOS(1, "bios1", "6.0.0009") |
r241781 | r241782 | |
287 | 316 | ROMX_LOAD("6.0.0010.bin", 0x00000, 0x100000, CRC(ea2bf888) SHA1(c9c5b6f0d4f4f36620939b15dd2f128a74347e37), ROM_BIOS(3) ) |
288 | 317 | |
289 | 318 | |
290 | ROM_REGION(0x400000, " | |
319 | ROM_REGION(0x400000, ":pci:1e.0:03.0", 0) // Baseboard MPC firmware | |
291 | 320 | ROM_LOAD("fpr-24370b.ic6", 0x000000, 0x400000, CRC(c3b021a4) SHA1(1b6938a50fe0e4ae813864649eb103838c399ac0)) |
292 | 321 | |
293 | ROM_REGION(0x10000, " | |
322 | ROM_REGION32_LE(0x10000, ":pci:01.0:00.0", 0) // Geforce bios extension (custom or standard?) | |
294 | 323 | ROM_LOAD("vid_bios.u504", 0x00000, 0x10000, CRC(f78d14d7) SHA1(f129787e487984edd23bf344f2e9500c85052275)) |
295 | 324 | ROM_END |
296 | 325 | |
297 | GAME(1999, lindbios, 0, lindbergh, | |
326 | GAME(1999, lindbios, 0, lindbergh, 0, driver_device, 0, ROT0, "Sega Lindbergh", "Sega Lindbergh Bios", GAME_IS_SKELETON) |
r241781 | r241782 | |
---|---|---|
118 | 118 | #include "cpu/adsp2100/adsp2100.h" |
119 | 119 | #include "sound/dmadac.h" |
120 | 120 | #include "video/voodoo.h" |
121 | #include "machine/pci.h" | |
121 | #include "machine/lpci.h" | |
122 | 122 | |
123 | 123 | |
124 | 124 | /* TODO: Two 3Dfx Voodoo chipsets are used in SLI configuration */ |
r241781 | r241782 | |
---|---|---|
66 | 66 | |
67 | 67 | #include "emu.h" |
68 | 68 | #include "cpu/i386/i386.h" |
69 | #include "machine/pci.h" | |
69 | #include "machine/lpci.h" | |
70 | 70 | #include "machine/pcshare.h" |
71 | 71 | #include "machine/pckeybrd.h" |
72 | 72 | #include "machine/idectrl.h" |
r241781 | r241782 | |
---|---|---|
24 | 24 | |
25 | 25 | #include "emu.h" |
26 | 26 | #include "cpu/i386/i386.h" |
27 | #include "machine/pci.h" | |
27 | #include "machine/lpci.h" | |
28 | 28 | #include "machine/pcshare.h" |
29 | 29 | #include "machine/pckeybrd.h" |
30 | 30 | #include "machine/idectrl.h" |
r241781 | r241782 | |
---|---|---|
207 | 207 | There are 6 known types of carts manufactured by Sega: 171-7885A, 171-7919A, 171-7930B, 171-7978B, 171-8132B, 171-8346C |
208 | 208 | There are also 2 types of carts manufactured by Namco: MASK-B, MASK-C |
209 | 209 | |
210 | 837-1 | |
210 | 837-13591 171-7885A (C) Sega 1998 | |
211 | 211 | |------------------------------------------------------------| |
212 | 212 | | ----CN2---- -| |
213 | 213 | | JJ | |
r241781 | r241782 | |
254 | 254 | Sticker EPROM MASKROMs X76F100 EPM7064S FPGA |
255 | 255 | Game on cart IC22# # of SOP56 IC37# IC41# IC42# Notes |
256 | 256 | ------------------------------------------------------------------------------------------------------------------------- |
257 | Crackin' DJ part 2 840-0068C 23674 20 (64Mb) present present 317-0311-COM | |
257 | Club Kart European Session (2003, prototype) * 21 (64Mb) present present not present *instead of EPROM have tiny PCB with 2 flashroms on it | |
258 | Crackin' DJ part 2 840-0068C 23674 20 (64Mb) present present 317-0311-COM PCB have label 840-0068B-01 837-14124 | |
259 | House of the Dead 2 (prototype) A1E2 21 (64Mb) present present present, no label | |
258 | 260 | Inu No Osanpo / Dog Walking (Rev A) 840-0073C 22294A 16 (64Mb) present present 317-0316-JPN |
261 | Samba de Amigo (prototype) * 21 (64Mb) present present 317-0270-COM *instead of EPROM have tiny PCB with 2 flashroms on it | |
259 | 262 | Soul Surfer (Rev A) 840-0095C 23838C 21 (64Mb) present present not present todo: verify if it's Rev A or Rev C |
260 | 263 | Star Horse (server) 840-0055C 23626 17 (64Mb) present present not present |
261 | 264 | The King of Route 66 (Rev A) 840-0087C 23819A 20 (64Mb) present present not present |
262 | ||
265 | Virtua NBA (prototype) * 21 (64Mb) present present 317-0271-COM *instead of EPROM have tiny PCB with 2 flashroms on it | |
263 | 266 | |
264 | 267 | |
265 | 268 | |
r241781 | r241782 | |
292 | 295 | CN1/2/3 - connectors joining to main board |
293 | 296 | |
294 | 297 | Games known to use this PCB include.... |
295 | Sticker EPROM MASKROMs X76F100 XC9536 315-5881 | |
296 | Game on cart IC22# # of SOP44 IC37# IC41# IC42# Notes | |
298 | Sticker EPROM MASKROMs X76F100 XC9536 315-5881 | |
299 | Game on cart IC22# # of SOP44 IC37# IC41# IC42# Notes | |
297 | 300 | ------------------------------------------------------------------------------------------------------------------------- |
298 | 18 Wheeler (Deluxe) (Rev A) 840-0023C 22185A 20 (64Mb) present 315-6213 317-0273-COM | |
299 | 18 Wheeler (Standard) 840-0036C 23298 20 (64Mb) present 315-6213 317-0273-COM | |
300 | 18 Wheeler (Upright) 840-0037C 23299 20 (64Mb) present 315-6213 317-0273-COM | |
301 | Airline Pilots (Rev A) 840-0005C 21739A 11 (64Mb) present 315-6213 317-0251-COM | |
302 | Airline Pilots Deluxe (Rev B) ? 21787B 11 (64Mb) present 315-6213 317-0251-COM 2 know BIOS 21801 (USA), 21802 (EXP) | |
303 | Cosmic Smash 840-0044C 23428 8 (64Mb) ? 315-6213 317-0289-COM joystick + 2 buttons | |
304 | Cosmic Smash (Rev A) 840-0044C 23428A 8 (64Mb) ? 315-6213 317-0289-COM joystick + 2 buttons | |
305 | Crazy Taxi 840-0002C 21684 13 (64Mb)* ? 315-6213 317-0248-COM * ic8 and ic9 are not present | |
306 | Dead Or Alive 2 841-0003C 22121 21 (64Mb) present 315-6213 317-5048-COM joystick + 3 buttons | |
307 | Dead Or Alive 2 Millennium 841-0003C DOA2 M 21 (64Mb) present 315-6213 317-5048-COM joystick + 3 buttons | |
308 | Death Crimson OX 841-0016C 23524 10 (64Mb) present 315-6213 317-5066-COM | |
309 | Dengen Tenshi Taisen Janshi Shangri-La 841-0004C 22060 12 (64Mb) ? 315-6213 317-5050-JPN | |
310 | Derby Owners Club (Rev B) 840-0016C 22099B 14 (64Mb) ? 315-6213 317-0262-JPN touch panel + 2 buttons + card reader | |
311 | Derby Owners Club 2000 Ver.2 (Rev A) 840-0052C 22284A 16 (64Mb) present 315-6213 not present | |
312 | Dynamite 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) | |
313 | Dynamite Baseball Naomi 840-0001C 21575 21 (64Mb) ? 315-6213 317-0246-JPN requires special panel (joystick + 2 buttons + bat controller for each player) | |
314 | Ferrari F355 Challenge 834-13842 21902 21 (64Mb) present 315-6213 317-0254-COM | |
315 | Ferrari F355 Challenge 2 Twin 840-0042C 23399 21 (64Mb) ? 315-6213 317-0287-COM 2 know BIOS 22850 (USA), 22851 (EXP) | |
316 | Ferrari F355 Challenge Twin 834-13950 22848 21 (64Mb) present 315-6213 317-0267-COM 2 know BIOS 22850 (USA), 22851 (EXP) | |
317 | Giant Gram: All Japan Pro Wrestling 2 840-0007C 21820 9 (64Mb) ? 315-6213 317-0253-JPN joystick + 3 buttons | |
318 | Guilty Gear X 841-0013C 23356 14 (64Mb) ? 315-6213 317-5063-COM | |
319 | Gun Spike / Cannon Spike 841-0012C 23210 12 (64Mb) present 315-6213 317-5060-COM | |
320 | Heavy Metal Geomatrix (Rev A) HMG016007 23716A 11 (64Mb) present 315-6213 317-5071-COM joystick + 2 buttons | |
321 | Idol Janshi Suchie-Pai 3 841-0002C 21979 14 (64Mb) ? 315-6213 317-5047-JPN requires special I/O board and mahjong panel | |
322 | Jambo! Safari (Rev A) 840-0013C 22826A 8 (64Mb) ? 315-6213 317-0264-COM | |
323 | Mars TV 840-0025C 22993 15 (64Mb) present 315-6213 317-0074-JPN | |
324 | OutTrigger 840-0017C 22163 19 (64Mb) ? 315-6213 317-0266-COM requires analog controllers/special panel | |
325 | Power Stone 841-0001C 21597 8 (64Mb) present 315-6213 317-5046-COM joystick + 3 buttons | |
326 | Power Stone 2 841-0008C 23127 9 (64Mb) present 315-6213 317-5054-COM joystick + 3 buttons | |
327 | Puyo Puyo Da! 841-0006C 22206 20 (64Mb) ? ? ? | |
328 | Ring Out 4x4 840-0004C 21779 10 (64Mb) ? ? ? | |
329 | Samba de Amigo (prototype) 840-0020C proto 16 (64Mb) ? 315-6213 317-0270-COM will boot but requires special controller to play it | |
330 | Samba de Amigo (Rev B) 840-0020C 22966B 16 (64Mb) ? 315-6213 317-0270-COM will boot but requires special controller to play it | |
331 | Sega Marine Fishing 840-0027C 22221 10 (64Mb) ? 315-6213 not present ROM 3&4 not present. Requires special I/O board and fishing controller | |
332 | Sega Strike Fighter (Rev A) 840-0035C 23323A 20 (64Mb) present 315-6213 317-0281-COM | |
333 | Sega Tetris 840-0018C 22909 6 (64Mb) present 315-6213 317-0268-COM | |
334 | Slashout 840-0041C 23341 17 (64Mb) ? 315-6213 317-0286-COM joystick + 4 buttons | |
335 | Spawn In the Demon's Hand (Rev B) 841-0005C 22977B 10 (64Mb) ? 315-6213 317-5051-COM joystick + 4 buttons | |
336 | The Typing of the Dead (Rev A) 840-0026C 23021A 20 (64Mb) present 315-6213 not present | |
337 | Touch de UNO! / Unou Nouryoku Check Machine 840-0008C 22073 4 (64Mb) present 315-6213 317-0255-JPN | |
338 | Toy Fighter / Waffupu 840-0011C 22035 10 (64Mb) present 315-6212 317-0257-COM joystick + 3 buttons | |
339 | Virtua NBA 840-0021C 23073 21 (64Mb) present 315-6213 not present | |
340 | Virtua NBA (original) 840-0021C 23073 21 (64Mb) ? 315-6213 not present | |
341 | Virtua Striker 2 Ver. 2000 (Rev C) 840-0010C 21929C 14 (64Mb)* present 315-6213 317-0258-COM joystick + 3 buttons *(+1x 32Mb) | |
342 | Virtua Tennis / Power Smash 840-0015C 22927 11 (64Mb) present 315-6213 317-0263-COM | |
343 | Zombie Revenge 840-0003C 21707 19 (64Mb) ? 315-6213 317-0249-COM joystick + 3 buttons | |
301 | 18 Wheeler (Deluxe) (Rev A) 840-0023C 22185A 20 (64Mb) present 315-6213 317-0273-COM | |
302 | 18 Wheeler (Standard) 840-0036C 23298 20 (64Mb) present 315-6213 317-0273-COM | |
303 | 18 Wheeler (Upright) 840-0037C 23299 20 (64Mb) present 315-6213 317-0273-COM | |
304 | Airline Pilots (Rev A) 840-0005C 21739A 11 (64Mb) present 315-6213 317-0251-COM | |
305 | Airline Pilots Deluxe (Rev B) ? 21787B 11 (64Mb) present 315-6213 317-0251-COM 2 know BIOS 21801 (USA), 21802 (EXP) | |
306 | Cosmic Smash 840-0044C 23428 8 (64Mb) ? 315-6213 317-0289-COM joystick + 2 buttons | |
307 | Cosmic Smash (Rev A) 840-0044C 23428A 8 (64Mb) ? 315-6213 317-0289-COM joystick + 2 buttons | |
308 | Crazy Taxi 840-0002C 21684 13 (64Mb)* none 315-6213 317-0248-COM * ic8 and ic9 are not present | |
309 | Dead Or Alive 2 841-0003C 22121 21 (64Mb) present 315-6213 317-5048-COM joystick + 3 buttons | |
310 | Dead Or Alive 2 Millennium 841-0003C DOA2 M 21 (64Mb) present 315-6213 317-5048-COM joystick + 3 buttons | |
311 | Death Crimson OX 841-0016C 23524 10 (64Mb) present 315-6213 317-5066-COM | |
312 | Dengen Tenshi Taisen Janshi Shangri-La 841-0004C 22060 12 (64Mb) ? 315-6213 317-5050-JPN | |
313 | Derby Owners Club (Rev B) 840-0016C 22099B 14 (64Mb) ? 315-6213 317-0262-JPN touch panel + 2 buttons + card reader | |
314 | Derby Owners Club 2000 Ver.2 (Rev A) 840-0052C 22284A 16 (64Mb) present 315-6213 not present | |
315 | Dynamite 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) | |
316 | Dynamite Baseball Naomi 840-0001C 21575 21 (64Mb) ? 315-6213 317-0246-JPN requires special panel (joystick + 2 buttons + bat controller for each player) | |
317 | Ferrari F355 Challenge 834-13842 21902 21 (64Mb) present 315-6213 317-0254-COM | |
318 | Ferrari F355 Challenge 2 Twin 840-0042C 23399 21 (64Mb) present 315-6213 317-0287-COM 2 know BIOS 22850 (USA), 22851 (EXP) | |
319 | Ferrari F355 Challenge Twin 834-13950 22848 21 (64Mb) present 315-6213 317-0267-COM 2 know BIOS 22850 (USA), 22851 (EXP) | |
320 | Giant Gram: All Japan Pro Wrestling 2 840-0007C 21820 9 (64Mb) ? 315-6213 317-0253-JPN joystick + 3 buttons | |
321 | Guilty Gear X 841-0013C 23356 14 (64Mb) ? 315-6213 317-5063-COM | |
322 | Gun Spike / Cannon Spike 841-0012C 23210 12 (64Mb) present 315-6213 317-5060-COM | |
323 | Heavy Metal Geomatrix (Rev A) HMG016007 23716A 11 (64Mb) present 315-6213 317-5071-COM joystick + 2 buttons | |
324 | House of the Dead 2 834-13636 21385 20 (64Mb) none 315-6213 not present | |
325 | Idol Janshi Suchie-Pai 3 841-0002C 21979 14 (64Mb) ? 315-6213 317-5047-JPN requires special I/O board and mahjong panel | |
326 | Jambo! Safari (Rev A) 840-0013C 22826A 8 (64Mb) ? 315-6213 317-0264-COM | |
327 | Mars TV 840-0025C 22993 15 (64Mb) present 315-6213 317-0074-JPN | |
328 | OutTrigger 840-0017C 22163 19 (64Mb) ? 315-6213 317-0266-COM requires analog controllers/special panel | |
329 | Power Stone 841-0001C 21597 8 (64Mb) present 315-6213 317-5046-COM joystick + 3 buttons | |
330 | Power Stone 2 841-0008C 23127 9 (64Mb) present 315-6213 317-5054-COM joystick + 3 buttons | |
331 | Puyo Puyo Da! 841-0006C 22206 20 (64Mb) ? ? ? | |
332 | Ring Out 4x4 840-0004C 21779 10 (64Mb) present 315-6213 317-0250-COM | |
333 | Samba de Amigo (Rev B) 840-0020C 22966B 16 (64Mb) present 315-6213 317-0270-COM will boot but requires special controller to play it | |
334 | Sega Marine Fishing 840-0027C 22221 10 (64Mb) ? 315-6213 not present ROM 3&4 not present. Requires special I/O board and fishing controller | |
335 | Sega Strike Fighter (Rev A) 840-0035C 23323A 20 (64Mb) present 315-6213 317-0281-COM | |
336 | Sega Tetris 840-0018C 22909 6 (64Mb) present 315-6213 317-0268-COM | |
337 | Slashout 840-0041C 23341 17 (64Mb) ? 315-6213 317-0286-COM joystick + 4 buttons | |
338 | Spawn In the Demon's Hand (Rev B) 841-0005C 22977B 10 (64Mb) ? 315-6213 317-5051-COM joystick + 4 buttons | |
339 | The Typing of the Dead (Rev A) 840-0026C 23021A 20 (64Mb) present 315-6213 not present | |
340 | Touch de UNO! / Unou Nouryoku Check Machine 840-0008C 22073 4 (64Mb) present 315-6213 317-0255-JPN | |
341 | Toy Fighter / Waffupu 840-0011C 22035 10 (64Mb) present 315-6212 317-0257-COM joystick + 3 buttons | |
342 | Virtua NBA 840-0021C-01 23073 21 (64Mb) present 315-6213 not present | |
343 | Virtua NBA (original) 840-0021C 22949 21 (64Mb) present 315-6213 317-0271-COM | |
344 | Virtua Striker 2 Ver. 2000 (Rev C) 840-0010C 21929C 14 (64Mb)* present 315-6213 317-0258-COM joystick + 3 buttons *(+1x 32Mb) | |
345 | Virtua Tennis / Power Smash 840-0015C 22927 11 (64Mb) present 315-6213 317-0263-COM | |
346 | Zombie Revenge 840-0003C 21707 19 (64Mb) ? 315-6213 317-0249-COM joystick + 3 buttons | |
344 | 347 | |
345 | 348 | |
346 | 349 | |
r241781 | r241782 | |
497 | 500 | Club Kart: European Session 840-0062C 23704 11 (128Mb) 315-6319A present 317-0313-COM |
498 | 501 | Club Kart: European Session (Rev D) 840-0062C 23704D 11 (128Mb) 315-6319A present 317-0313-COM |
499 | 502 | Club 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' |
500 | Crackin' DJ 840-0043C 23450 | |
503 | Crackin' DJ 840-0043C 23450 10 (128Mb) 315-6319 present 317-0288-COM | |
501 | 504 | Derby Owners Club II (Rev B) 840-0083C 22306B 11 (128Mb) 315-6319A present not present |
502 | 505 | Derby Owners Club World Edition (Rev C) 840-0088C 22336C 7 (128Mb) 315-6319A present not present |
503 | 506 | Derby Owners Club World Edition (Rev D) 840-0088C 22336D 7 (128Mb) 315-6319A present not present 2 MaskROM are different from Rev C |
r241781 | r241782 | |
506 | 509 | Moero Justice Gakuen / Project Justice (Rev A) 841-0015C 23548A 11 (128Mb) 315-6319A present 317-5065-COM |
507 | 510 | Mushiking 2K5 1ST (Ver 1.000) 840-0158C 24286 7 (128Mb) 315-6319A present not present |
508 | 511 | Oinori-daimyoujin Matsuri 840-0126B 24053 5 (128Mb) 315-6319A present not present |
509 | Samba de Amigo Ver. 2000 840-0047C 23600 | |
512 | Samba de Amigo Ver. 2000 840-0047C 23600 11 (128Mb) 315-6319A present 317-0295-COM | |
510 | 513 | Star Horse (big screens) 840-0054C 23625 4 (128Mb) 315-6319 present not present |
511 | 514 | Star Horse (client) 840-0056C 23627 6 (128Mb)* 315-6319 present not present * +1 (64Mb) |
512 | 515 | Star Horse Progress (Rev A) 840-0123C 24122A 7 (128Mb) 315-6319A present not present requires an additional middle board n? 837-13785 |
r241781 | r241782 | |
3721 | 3724 | ROM_LOAD("mpr-21898.ic18s", 0x9000000, 0x0800000, CRC(cacea996) SHA1(df2b7ce00d8d6171806f676966f5f45d7fb76431) ) |
3722 | 3725 | ROM_LOAD("mpr-21899.ic19s", 0x9800000, 0x0800000, CRC(14a4b87d) SHA1(33177dea88c6aec31e2c16c8d0d3f29c7ea772c5) ) |
3723 | 3726 | ROM_LOAD("mpr-21900.ic20s", 0xa000000, 0x0800000, CRC(81901130) SHA1(1573b5c4360e29ba1a4b4901af49d5399fa1e635) ) |
3724 | ROM_LOAD("mpr-21901.ic21s", 0xa800000, 0x0800000, | |
3727 | ROM_LOAD("mpr-21901.ic21s", 0xa800000, 0x0800000, CRC(266a3eea) SHA1(795ecc5589a0152b9cf1e03e454ed1ea01501942) ) | |
3725 | 3728 | |
3726 | 3729 | ROM_REGION( 4, "rom_key", 0 ) |
3727 | 3730 | ROM_LOAD( "f355-key.bin", 0, 4, CRC(7d1431ab) SHA1(38958860241c600db941b47294bf3ca3273d0df5) ) |
r241781 | r241782 | |
4184 | 4187 | NAOMI_BIOS |
4185 | 4188 | NAOMI_DEFAULT_EEPROM |
4186 | 4189 | |
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) ) | |
4211 | 4203 | |
4212 | 4204 | ROM_REGION( 4, "rom_key", 0 ) |
4213 | 4205 | ROM_LOAD( "samba2k-key.bin", 0, 4, CRC(01c0d74a) SHA1(4461cfd761919ba4bc6f1d1839a880f11eaf8d0f) ) |
r241781 | r241782 | |
6351 | 6343 | |
6352 | 6344 | ROM_REGION( 0x5800000, "rom_board", ROMREGION_ERASEFF) |
6353 | 6345 | 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) ) | |
6365 | 6356 | |
6366 | 6357 | ROM_REGION( 4, "rom_key", 0 ) |
6367 | 6358 | ROM_LOAD( "ringout-key.bin", 0, 4, CRC(8f8c4eb2) SHA1(9bc59c69d04d9ce876415af048f39095ed680a5e) ) |
r241781 | r241782 | |
6373 | 6364 | |
6374 | 6365 | ROM_REGION( 0x7000000, "rom_board", ROMREGION_ERASEFF) |
6375 | 6366 | 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) ) | |
6390 | 6380 | |
6391 | 6381 | ROM_REGION( 4, "rom_key", 0 ) |
6392 | 6382 | ROM_LOAD( "vonot-key.bin", 0, 4, CRC(021ac707) SHA1(af57844331226d3b1722aedca1a7aef024468b39) ) |
r241781 | r241782 | |
---|---|---|
685 | 685 | m_lastvalue = -1; |
686 | 686 | |
687 | 687 | m_pc_spkrdata = 0; |
688 | m_pit_out2 = | |
688 | m_pit_out2 = 1; | |
689 | 689 | m_wss2_data = 0; |
690 | 690 | m_speaker->level_w(0); |
691 | 691 | } |
r241781 | r241782 | |
---|---|---|
1369 | 1369 | * Rom Load * |
1370 | 1370 | *************************/ |
1371 | 1371 | |
1372 | ROM_START( peset001 ) /* Normal board : Set Chip (Set001) - | |
1372 | ROM_START( peset001 ) /* Normal board : Set Chip (Set001) - PE+ Set Denomination */ | |
1373 | 1373 | ROM_REGION( 0x10000, "maincpu", 0 ) |
1374 | 1374 | ROM_LOAD( "set001.u68", 0x00000, 0x10000, CRC(03397ced) SHA1(89d8ba7e6706e6d34ae9aae09a8a631fff06a36f) ) |
1375 | 1375 | |
r241781 | r241782 | |
1383 | 1383 | ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */ |
1384 | 1384 | ROM_END |
1385 | 1385 | |
1386 | ROM_START( peset004 ) /* Normal board : Set Chip (Set004) - PE+ Set Denom / Enable Validator */ | |
1386 | ROM_START( peset004 ) /* Normal board : Set Chip (Set004) - PE+ Set Denomination / Enable Validator */ | |
1387 | 1387 | ROM_REGION( 0x10000, "maincpu", 0 ) |
1388 | 1388 | ROM_LOAD( "set004.u68", 0x00000, 0x10000, CRC(b5729571) SHA1(fa3bb1fec81692a898213f9521ac0b2a4d1a8968) ) |
1389 | 1389 | |
r241781 | r241782 | |
1397 | 1397 | ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */ |
1398 | 1398 | ROM_END |
1399 | 1399 | |
1400 | ROM_START( peset038 ) /* Normal board : Set Chip (Set038) */ | |
1400 | /* Known to exsist SET033 - PE+ Set Denomination / Enable Validator / SAS 4.0 */ | |
1401 | ||
1402 | ROM_START( peset038 ) /* Normal board : Set Chip (Set038) - PE+ Set Denomination / Enable Validator */ | |
1401 | 1403 | ROM_REGION( 0x10000, "maincpu", 0 ) |
1402 | 1404 | ROM_LOAD( "set038.u68", 0x00000, 0x10000, CRC(9c4b1d1a) SHA1(8a65cd1d8e2d74c7b66f4dfc73e7afca8458e979) ) |
1403 | 1405 | |
r241781 | r241782 | |
1411 | 1413 | ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */ |
1412 | 1414 | ROM_END |
1413 | 1415 | |
1416 | ROM_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 */ | |
1429 | ROM_END | |
1430 | ||
1414 | 1431 | ROM_START( pepk1024 ) /* Normal (non-plus) board : Aces and Faces 4 of a Kind Bonus Poker (PK1024) */ |
1415 | 1432 | /* |
1416 | 1433 | 2-10 J-A |
r241781 | r241782 | |
8749 | 8766 | /* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ |
8750 | 8767 | |
8751 | 8768 | /* Set chips */ |
8752 | GAMEL(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 ) | |
8753 | GAMEL(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 ) | |
8754 | GAMEL(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 ) | |
8769 | GAMEL(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 ) | |
8770 | GAMEL(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 ) | |
8771 | GAMEL(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 ) | |
8772 | GAMEL(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 ) | |
8755 | 8773 | |
8756 | 8774 | /* Normal (non-plus) board : Poker */ |
8757 | 8775 | GAMEL(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 ) |
r241781 | r241782 | |
---|---|---|
980 | 980 | PGM_AUDIO_BIOS |
981 | 981 | ROM_END |
982 | 982 | |
983 | ROM_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) ) | |
983 | 987 | |
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 | |
1000 | ROM_END | |
1001 | ||
984 | 1002 | /* |
985 | 1003 | |
986 | 1004 | Dragon World 3 (KOREA 106 Ver.) |
r241781 | r241782 | |
4145 | 4163 | GAME( 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 ) |
4146 | 4164 | GAME( 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 ) |
4147 | 4165 | GAME( 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 ) |
4166 | GAME( 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) | |
4148 | 4167 | |
4149 | 4168 | GAME( 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 */ |
4150 | 4169 | GAME( 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 */ |
r241781 | r241782 | |
---|---|---|
278 | 278 | ROM_LOAD16_WORD_SWAP( "ig-a_sp.u2", 0x00000000, 0x1000000, CRC(8250688c) SHA1(d2488477afc528aeee96826065deba2bce4f0a7d) ) |
279 | 279 | ROM_END |
280 | 280 | |
281 | ROM_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) ) | |
305 | ROM_END | |
306 | ||
281 | 307 | ROM_START( kov2nl ) |
282 | 308 | ROM_REGION( 0x04000, "maincpu", 0 ) |
283 | 309 | ROM_LOAD( "gsyx_igs036.rom", 0x00000000, 0x0004000, NO_DUMP ) |
r241781 | r241782 | |
330 | 356 | ROM_LOAD16_WORD_SWAP( "ig-a3_sp.u37", 0x00000000, 0x2000000, CRC(45cdf422) SHA1(8005d284bcee73cff37a147fcd1c3e9f039a7203) ) |
331 | 357 | ROM_END |
332 | 358 | |
359 | ROM_START( kov2nloa ) | |
360 | ROM_REGION( 0x04000, "maincpu", 0 ) | |
361 | ROM_LOAD( "gsyx_igs036.rom", 0x00000000, 0x0004000, NO_DUMP ) | |
333 | 362 | |
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) ) | |
383 | ROM_END | |
384 | ||
334 | 385 | ROM_START( ddpdojh ) |
335 | 386 | ROM_REGION( 0x04000, "maincpu", 0 ) |
336 | 387 | ROM_LOAD( "ddpdoj_igs036.rom", 0x00000000, 0x0004000, NO_DUMP ) |
r241781 | r241782 | |
496 | 547 | /* PGM2 */ |
497 | 548 | GAME( 2007, orleg2, 0, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V104, China)", GAME_IS_SKELETON ) |
498 | 549 | GAME( 2007, orleg2o, orleg2, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V103, China)", GAME_IS_SKELETON ) |
550 | GAME( 2007, orleg2oa, orleg2, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V101, China)", GAME_IS_SKELETON ) | |
499 | 551 | // should be earlier verisons too. |
500 | 552 | |
501 | 553 | GAME( 2008, kov2nl, 0, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V302, China)", GAME_IS_SKELETON ) |
502 | 554 | GAME( 2008, kov2nlo, kov2nl, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V301, China)", GAME_IS_SKELETON ) |
555 | GAME( 2008, kov2nloa, kov2nl, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V300, Taiwan)", GAME_IS_SKELETON ) | |
503 | 556 | // should be earlier verisons too. |
504 | 557 | |
505 | 558 | GAME( 2010, ddpdojh, 0, pgm2, pgm2, pgm2_state, ddpdojh, ROT270, "IGS", "Dodonpachi Daioujou Tamashii (V201, China)", GAME_IS_SKELETON ) |
r241781 | r241782 | |
---|---|---|
13 | 13 | |
14 | 14 | #include "emu.h" |
15 | 15 | #include "cpu/i386/i386.h" |
16 | #include "machine/pci.h" | |
16 | #include "machine/lpci.h" | |
17 | 17 | #include "machine/pcshare.h" |
18 | 18 | #include "machine/pckeybrd.h" |
19 | 19 | #include "machine/idectrl.h" |
r241781 | r241782 | |
---|---|---|
19 | 19 | |
20 | 20 | #include "emu.h" |
21 | 21 | #include "cpu/i386/i386.h" |
22 | #include "machine/pci.h" | |
22 | #include "machine/lpci.h" | |
23 | 23 | #include "machine/pcshare.h" |
24 | 24 | #include "machine/pckeybrd.h" |
25 | 25 | #include "machine/idectrl.h" |
r241781 | r241782 | |
---|---|---|
26 | 26 | |
27 | 27 | #include "emu.h" |
28 | 28 | #include "cpu/i386/i386.h" |
29 | #include "machine/pci.h" | |
29 | #include "machine/lpci.h" | |
30 | 30 | #include "machine/pcshare.h" |
31 | 31 | #include "machine/pckeybrd.h" |
32 | 32 | #include "machine/idectrl.h" |
r241781 | r241782 | |
---|---|---|
339 | 339 | MCFG_CPU_PROGRAM_MAP(main_map) |
340 | 340 | MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen) |
341 | 341 | |
342 | MCFG_SLAPSTIC_ADD("slapstic") | |
343 | ||
342 | 344 | MCFG_MACHINE_RESET_OVERRIDE(rampart_state,rampart) |
343 | 345 | |
344 | 346 | MCFG_ATARI_EEPROM_2816_ADD("eeprom") |
r241781 | r241782 | |
---|---|---|
210 | 210 | }; |
211 | 211 | |
212 | 212 | static 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 */ | |
215 | 215 | GFXDECODE_END |
216 | 216 | |
217 | 217 | /*************************************************************************** |
r241781 | r241782 | |
227 | 227 | m_rombank->configure_entries(0, 8, &ROM[0x10000], 0x2000); |
228 | 228 | |
229 | 229 | save_item(NAME(m_vreg)); |
230 | save_item(NAME(m_layer_colorbase)); | |
231 | 230 | } |
232 | 231 | |
233 | 232 | void rockrage_state::machine_reset() |
r241781 | r241782 | |
268 | 267 | MCFG_K007420_PALETTE("palette") |
269 | 268 | |
270 | 269 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", rockrage) |
271 | MCFG_PALETTE_ADD("palette", | |
270 | MCFG_PALETTE_ADD("palette", 16*16*3) | |
272 | 271 | MCFG_PALETTE_INDIRECT_ENTRIES(64) |
273 | 272 | MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) |
274 | 273 | MCFG_PALETTE_ENDIANNESS(ENDIANNESS_LITTLE) |
r241781 | r241782 | |
310 | 309 | ROM_LOAD( "620l10.8g", 0x020000, 0x20000, CRC(06d108e0) SHA1(cae8c5f2fc4e84bc7adbf27f71a18a74968c4296) ) /* One "K" & one "L" code version??? */ |
311 | 310 | |
312 | 311 | ROM_REGION( 0x0300, "proms", 0 ) |
313 | ROM_LOAD( "620k0 | |
312 | ROM_LOAD( "620k07.13g", 0x00000, 0x00100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) ) /* layer 0 lookup table */ | |
314 | 313 | 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 | ||
317 | 316 | ROM_REGION( 0x08000, "vlm", 0 ) /* VLM3050 data */ |
318 | 317 | ROM_LOAD( "620k04.6e", 0x00000, 0x08000, CRC(8be969f3) SHA1(9856b4c13fac77b645aed67a08cb4965b4966492) ) |
319 | 318 | ROM_END |
r241781 | r241782 | |
339 | 338 | ROM_LOAD( "620g10b.8f", 0x030000, 0x10000, CRC(1618854a) SHA1(0afb34a9ed97f13c1910acd7767cb8546ea7e6cd) ) |
340 | 339 | |
341 | 340 | ROM_REGION( 0x0300, "proms", 0 ) |
342 | ROM_LOAD( "620k0 | |
341 | ROM_LOAD( "620k07.13g", 0x00000, 0x00100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) ) /* layer 0 lookup table */ | |
343 | 342 | 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 | ||
346 | 345 | ROM_REGION( 0x08000, "vlm", 0 ) /* VLM3050 data */ |
347 | 346 | ROM_LOAD( "620k04.6e", 0x00000, 0x08000, CRC(8be969f3) SHA1(9856b4c13fac77b645aed67a08cb4965b4966492) ) /* Same rom but labeled as ver "G" */ |
348 | 347 | ROM_END |
r241781 | r241782 | |
364 | 363 | ROM_LOAD( "620k10.8g", 0x020000, 0x20000, CRC(0d1a95ab) SHA1(be565424f17af31dcd07004c6be03bbb00aef514) ) |
365 | 364 | |
366 | 365 | ROM_REGION( 0x0300, "proms", 0 ) |
367 | ROM_LOAD( "620k0 | |
366 | ROM_LOAD( "620k07.13g", 0x00000, 0x00100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) ) /* layer 0 lookup table */ | |
368 | 367 | 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 | ||
371 | 370 | ROM_REGION( 0x08000, "vlm", 0 ) /* VLM3050 data */ |
372 | 371 | ROM_LOAD( "620k04.6e", 0x00000, 0x08000, CRC(8be969f3) SHA1(9856b4c13fac77b645aed67a08cb4965b4966492) ) |
373 | 372 | ROM_END |
r241781 | r241782 | |
---|---|---|
46 | 46 | |
47 | 47 | #include "emu.h" |
48 | 48 | #include "cpu/i386/i386.h" |
49 | #include "machine/pci.h" | |
49 | #include "machine/lpci.h" | |
50 | 50 | #include "machine/pcshare.h" |
51 | 51 | #include "machine/pckeybrd.h" |
52 | 52 | #include "machine/idectrl.h" |
r241781 | r241782 | |
---|---|---|
73 | 73 | switch (m_romboard) |
74 | 74 | { |
75 | 75 | case ROM_BOARD_171_SHADOW: break; // ??? |
76 | case ROM_BOARD_837_7525: | |
76 | 77 | case ROM_BOARD_171_5874: |
77 | 78 | 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; |
78 | 79 | default: assert(false); |
r241781 | r241782 | |
89 | 90 | else |
90 | 91 | mapper.map_as_rom(0x00000,0x100000, 0xf00000, "rom1base",0x100000, write16_delegate(FUNC(segas18_state::rom_5987_bank_w), this)); |
91 | 92 | 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 | ||
92 | 96 | default: assert(false); |
93 | 97 | } |
94 | 98 | break; |
r241781 | r241782 | |
98 | 102 | { |
99 | 103 | case ROM_BOARD_171_SHADOW: |
100 | 104 | case ROM_BOARD_171_5874: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", 0x00000, write16_delegate()); break; |
105 | case ROM_BOARD_837_7525: | |
101 | 106 | case ROM_BOARD_171_5987: if (romsize <= 0x100000) |
102 | 107 | mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", 0x00000, write16_delegate()); |
103 | 108 | else |
r241781 | r241782 | |
390 | 395 | } |
391 | 396 | } |
392 | 397 | |
398 | WRITE16_MEMBER( segas18_state::rom_837_7525_bank_w ) | |
399 | { | |
400 | if (!ACCESSING_BITS_0_7) | |
401 | return; | |
393 | 402 | |
403 | offset &= 0xf; | |
404 | data &= 0xff; | |
394 | 405 | |
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 | ||
395 | 427 | /************************************* |
396 | 428 | * |
397 | 429 | * D.D.Crew Custom I/O |
r241781 | r241782 | |
729 | 761 | PORT_DIPSETTING( 0x00, "1" ) |
730 | 762 | //"SW2:7" unused |
731 | 763 | //"SW2:8" unused |
732 | ||
733 | 764 | INPUT_PORTS_END |
734 | 765 | |
735 | ||
736 | 766 | static INPUT_PORTS_START( astorm2p ) |
737 | 767 | PORT_INCLUDE( system18_generic ) |
738 | 768 | |
r241781 | r241782 | |
757 | 787 | PORT_DIPSETTING( 0x00, "1" ) |
758 | 788 | //"SW2:7" unused |
759 | 789 | //"SW2:8" unused |
760 | ||
761 | 790 | INPUT_PORTS_END |
762 | 791 | |
763 | 792 | |
r241781 | r241782 | |
876 | 905 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
877 | 906 | INPUT_PORTS_END |
878 | 907 | |
879 | ||
880 | 908 | static INPUT_PORTS_START( ddcrew2p ) |
881 | 909 | PORT_INCLUDE( system18_generic ) |
882 | 910 | |
r241781 | r241782 | |
903 | 931 | PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) |
904 | 932 | PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) |
905 | 933 | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) |
906 | ||
907 | 934 | INPUT_PORTS_END |
908 | 935 | |
909 | 936 | static INPUT_PORTS_START( ddcrew3p ) |
r241781 | r241782 | |
922 | 949 | PORT_MODIFY("SERVICE") |
923 | 950 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) |
924 | 951 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) |
925 | ||
926 | 952 | INPUT_PORTS_END |
927 | 953 | |
954 | ||
928 | 955 | static INPUT_PORTS_START( desertbr ) |
929 | 956 | PORT_INCLUDE( system18_generic ) |
930 | 957 | |
r241781 | r241782 | |
973 | 1000 | INPUT_PORTS_END |
974 | 1001 | |
975 | 1002 | |
1003 | static 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 ) ) | |
1025 | INPUT_PORTS_END | |
1026 | ||
1027 | ||
976 | 1028 | static INPUT_PORTS_START( lghost ) |
977 | 1029 | PORT_INCLUDE( system18_generic ) |
978 | 1030 | |
r241781 | r241782 | |
1184 | 1236 | INPUT_PORTS_END |
1185 | 1237 | |
1186 | 1238 | |
1187 | ||
1188 | 1239 | /************************************* |
1189 | 1240 | * |
1190 | 1241 | * Graphics definitions |
r241781 | r241782 | |
1228 | 1279 | * |
1229 | 1280 | *************************************/ |
1230 | 1281 | |
1282 | WRITE_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 | ||
1231 | 1291 | static MACHINE_CONFIG_START( system18, segas18_state ) |
1232 | 1292 | |
1233 | 1293 | // basic machine hardware |
r241781 | r241782 | |
1276 | 1336 | |
1277 | 1337 | MCFG_SOUND_ADD("ym1", YM3438, 8000000) |
1278 | 1338 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) |
1339 | MCFG_YM2612_IRQ_HANDLER(WRITELINE(segas18_state, ym3438_irq_handler)) | |
1279 | 1340 | |
1280 | 1341 | MCFG_SOUND_ADD("ym2", YM3438, 8000000) |
1281 | 1342 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) |
r241781 | r241782 | |
1871 | 1932 | /************************************************************************************************************************** |
1872 | 1933 | ************************************************************************************************************************** |
1873 | 1934 | ************************************************************************************************************************** |
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 | */ | |
1942 | ROM_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) ) | |
1968 | ROM_END | |
1969 | ||
1970 | ||
1971 | /************************************************************************************************************************** | |
1972 | ************************************************************************************************************************** | |
1973 | ************************************************************************************************************************** | |
1874 | 1974 | Laser Ghost, Sega System 18 |
1875 | 1975 | CPU: FD1094 (317-0166) |
1876 | 1976 | ROM Board: 171-5873B |
r241781 | r241782 | |
2262 | 2362 | ROM_END |
2263 | 2363 | |
2264 | 2364 | |
2265 | ||
2266 | 2365 | /************************************* |
2267 | 2366 | * |
2268 | 2367 | * Generic driver initialization |
r241781 | r241782 | |
2284 | 2383 | init_generic(ROM_BOARD_171_5987); |
2285 | 2384 | } |
2286 | 2385 | |
2386 | DRIVER_INIT_MEMBER(segas18_state,hamaway) | |
2387 | { | |
2388 | init_generic(ROM_BOARD_837_7525); | |
2389 | } | |
2287 | 2390 | |
2288 | 2391 | |
2289 | 2392 | /************************************* |
r241781 | r241782 | |
2314 | 2417 | } |
2315 | 2418 | |
2316 | 2419 | |
2317 | ||
2318 | 2420 | /************************************* |
2319 | 2421 | * |
2320 | 2422 | * Game driver(s) |
2321 | 2423 | * |
2322 | 2424 | *************************************/ |
2323 | 2425 | |
2324 | // YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS | |
2325 | GAME( 1990, astorm, 0, system18_fd1094, astorm2p, segas18_state,generic_5874, ROT0, "Sega", "Alien Storm (World, 2 Players, FD1094 317-0154)", 0 ) | |
2326 | GAME( 1990, astorm3, astorm, system18_fd1094, astorm, segas18_state,generic_5874, ROT0, "Sega", "Alien Storm (World, 3 Players, FD1094 317-0148)", 0 ) | |
2327 | GAME( 1990, astormu, astorm, system18_fd1094, astorm, segas18_state,generic_5874, ROT0, "Sega", "Alien Storm (US, 3 Players, FD1094 317-0147)", 0 ) | |
2328 | GAME( 1990, astormj, astorm, system18_fd1094, astorm2p, segas18_state,generic_5874, ROT0, "Sega", "Alien Storm (Japan, 2 Players, FD1094 317-0146)", 0 ) | |
2329 | GAME( 1989, bloxeed, 0, system18_fd1094, bloxeed, segas18_state,generic_5874, ROT0, "Sega", "Bloxeed (Japan, FD1094 317-0139)", 0 ) | |
2330 | GAME( 1991, cltchitr, 0, system18_fd1094, cltchitr, segas18_state,generic_5987, ROT0, "Sega", "Clutch Hitter (US, FD1094 317-0176)", 0 ) | |
2331 | GAME( 1991, cltchitrj, cltchitr, system18_fd1094, cltchitr, segas18_state,generic_5987, ROT0, "Sega", "Clutch Hitter (Japan, FD1094 317-0175)", 0 ) | |
2332 | GAME( 1992, desertbr, 0, system18_fd1094, desertbr, segas18_state,generic_5987, ROT270, "Sega", "Desert Breaker (World, FD1094 317-0196)", 0 ) | |
2333 | GAME( 1992, desertbrj, desertbr, system18_fd1094, desertbr, segas18_state,generic_5987, ROT270, "Sega", "Desert Breaker (Japan, FD1094 317-0194)", 0 ) | |
2334 | GAME( 1991, ddcrew, 0, system18_fd1094, ddcrew3p, segas18_state,ddcrew, ROT0, "Sega", "D. D. Crew (World, 3 Players, FD1094 317-0190)", 0 ) | |
2335 | GAME( 1991, ddcrewu, ddcrew, system18_fd1094, ddcrew, segas18_state,ddcrew, ROT0, "Sega", "D. D. Crew (US, 4 Players, FD1094 317-0186)", 0 ) | |
2336 | GAME( 1991, ddcrew2, ddcrew, system18_fd1094, ddcrew2p, segas18_state,ddcrew, ROT0, "Sega", "D. D. Crew (World, 2 Players, FD1094 317-0184)", 0 ) | |
2337 | GAME( 1991, ddcrew1, ddcrew, system18_fd1094, ddcrew, segas18_state,ddcrew, ROT0, "Sega", "D. D. Crew (World, 4 Players, FD1094 317-0187)", 0 ) | |
2338 | GAME( 1991, ddcrewj, ddcrew, system18_fd1094, ddcrew, segas18_state,ddcrew, ROT0, "Sega", "D. D. Crew (Japan, 4 Players, FD1094 317-0185)", 0 ) | |
2339 | GAME( 1991, ddcrewj2, ddcrew, system18_fd1094, ddcrew2p, segas18_state,ddcrew, ROT0, "Sega", "D. D. Crew (Japan, 2 Players, FD1094 317-0182)", 0 ) | |
2340 | GAME( 1990, lghost, 0, system18_fd1094, lghost, segas18_state,lghost, ROT0, "Sega", "Laser Ghost (World, FD1094 317-0166)", 0 ) | |
2341 | GAME( 1990, lghostu, lghost, system18_fd1094, lghost, segas18_state,lghost, ROT0, "Sega", "Laser Ghost (US, FD1094 317-0165)", 0 ) | |
2342 | GAME( 1990, mwalk, 0, system18_fd1094_i8751,mwalk, segas18_state,generic_5874, ROT0, "Sega", "Michael Jackson's Moonwalker (World, FD1094/8751 317-0159)", 0 ) | |
2343 | GAME( 1990, mwalku, mwalk, system18_fd1094_i8751,mwalka, segas18_state,generic_5874, ROT0, "Sega", "Michael Jackson's Moonwalker (US, FD1094/8751 317-0158)", 0 ) | |
2344 | GAME( 1990, mwalkj, mwalk, system18_fd1094_i8751,mwalk, segas18_state,generic_5874, ROT0, "Sega", "Michael Jackson's Moonwalker (Japan, FD1094/8751 317-0157)", 0 ) | |
2345 | GAME( 1989, pontoon, 0, system18_fd1094, shdancer, segas18_state,generic_5874, ROT0, "Sega", "Pontoon (FD1094 317-0153)", GAME_NOT_WORKING ) // satellite/networked gambling game? | |
2346 | GAME( 1989, shdancer, 0, system18, shdancer, segas18_state,generic_shad, ROT0, "Sega", "Shadow Dancer (World)", 0 ) | |
2347 | GAME( 1989, shdancerj, shdancer, system18, shdancer, segas18_state,generic_shad, ROT0, "Sega", "Shadow Dancer (Japan)", 0 ) | |
2348 | GAME( 1989, shdancer1, shdancer, system18, shdancer, segas18_state,generic_shad, ROT0, "Sega", "Shadow Dancer (US)", 0 ) | |
2349 | GAME( 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 | |
2350 | GAME( 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 | |
2427 | GAME( 1990, astorm, 0, system18_fd1094, astorm2p, segas18_state, generic_5874, ROT0, "Sega", "Alien Storm (World, 2 Players, FD1094 317-0154)", 0 ) | |
2428 | GAME( 1990, astorm3, astorm, system18_fd1094, astorm, segas18_state, generic_5874, ROT0, "Sega", "Alien Storm (World, 3 Players, FD1094 317-0148)", 0 ) | |
2429 | GAME( 1990, astormu, astorm, system18_fd1094, astorm, segas18_state, generic_5874, ROT0, "Sega", "Alien Storm (US, 3 Players, FD1094 317-0147)", 0 ) | |
2430 | GAME( 1990, astormj, astorm, system18_fd1094, astorm2p, segas18_state, generic_5874, ROT0, "Sega", "Alien Storm (Japan, 2 Players, FD1094 317-0146)", 0 ) | |
2431 | GAME( 1989, bloxeed, 0, system18_fd1094, bloxeed, segas18_state, generic_5874, ROT0, "Sega", "Bloxeed (Japan, FD1094 317-0139)", 0 ) | |
2432 | GAME( 1991, cltchitr, 0, system18_fd1094, cltchitr, segas18_state, generic_5987, ROT0, "Sega", "Clutch Hitter (US, FD1094 317-0176)", 0 ) | |
2433 | GAME( 1991, cltchitrj, cltchitr, system18_fd1094, cltchitr, segas18_state, generic_5987, ROT0, "Sega", "Clutch Hitter (Japan, FD1094 317-0175)", 0 ) | |
2434 | GAME( 1992, desertbr, 0, system18_fd1094, desertbr, segas18_state, generic_5987, ROT270, "Sega", "Desert Breaker (World, FD1094 317-0196)", 0 ) | |
2435 | GAME( 1992, desertbrj, desertbr, system18_fd1094, desertbr, segas18_state, generic_5987, ROT270, "Sega", "Desert Breaker (Japan, FD1094 317-0194)", 0 ) | |
2436 | GAME( 1991, ddcrew, 0, system18_fd1094, ddcrew3p, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (World, 3 Players, FD1094 317-0190)", 0 ) | |
2437 | GAME( 1991, ddcrewu, ddcrew, system18_fd1094, ddcrew, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (US, 4 Players, FD1094 317-0186)", 0 ) | |
2438 | GAME( 1991, ddcrew2, ddcrew, system18_fd1094, ddcrew2p, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (World, 2 Players, FD1094 317-0184)", 0 ) | |
2439 | GAME( 1991, ddcrew1, ddcrew, system18_fd1094, ddcrew, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (World, 4 Players, FD1094 317-0187)", 0 ) | |
2440 | GAME( 1991, ddcrewj, ddcrew, system18_fd1094, ddcrew, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (Japan, 4 Players, FD1094 317-0185)", 0 ) | |
2441 | GAME( 1991, ddcrewj2, ddcrew, system18_fd1094, ddcrew2p, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (Japan, 2 Players, FD1094 317-0182)", 0 ) | |
2442 | GAME( 1991, hamaway, 0, system18, hamaway, segas18_state, hamaway, ROT90, "Sega / Santos", "Hammer Away (Japan, prototype)", 0 ) | |
2443 | GAME( 1990, lghost, 0, system18_fd1094, lghost, segas18_state, lghost, ROT0, "Sega", "Laser Ghost (World, FD1094 317-0166)", 0 ) | |
2444 | GAME( 1990, lghostu, lghost, system18_fd1094, lghost, segas18_state, lghost, ROT0, "Sega", "Laser Ghost (US, FD1094 317-0165)", 0 ) | |
2445 | GAME( 1990, mwalk, 0, system18_fd1094_i8751,mwalk, segas18_state, generic_5874, ROT0, "Sega", "Michael Jackson's Moonwalker (World, FD1094/8751 317-0159)", 0 ) | |
2446 | GAME( 1990, mwalku, mwalk, system18_fd1094_i8751,mwalka, segas18_state, generic_5874, ROT0, "Sega", "Michael Jackson's Moonwalker (US, FD1094/8751 317-0158)", 0 ) | |
2447 | GAME( 1990, mwalkj, mwalk, system18_fd1094_i8751,mwalk, segas18_state, generic_5874, ROT0, "Sega", "Michael Jackson's Moonwalker (Japan, FD1094/8751 317-0157)", 0 ) | |
2448 | GAME( 1989, pontoon, 0, system18_fd1094, shdancer, segas18_state, generic_5874, ROT0, "Sega", "Pontoon (FD1094 317-0153)", GAME_NOT_WORKING ) // satellite/networked gambling game? | |
2449 | GAME( 1989, shdancer, 0, system18, shdancer, segas18_state, generic_shad, ROT0, "Sega", "Shadow Dancer (World)", 0 ) | |
2450 | GAME( 1989, shdancerj, shdancer, system18, shdancer, segas18_state, generic_shad, ROT0, "Sega", "Shadow Dancer (Japan)", 0 ) | |
2451 | GAME( 1989, shdancer1, shdancer, system18, shdancer, segas18_state, generic_shad, ROT0, "Sega", "Shadow Dancer (US)", 0 ) | |
2452 | GAME( 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 | |
2453 | GAME( 1992, wwallyja, wwallyj, system18_fd1094, wwally, segas18_state, wwally, ROT0, "Sega", "Wally wo Sagase! (rev A, Japan, FD1094 317-0197A)", 0 ) |
r241781 | r241782 | |
---|---|---|
62 | 62 | address_space &space = m_maincpu->space(AS_PROGRAM); |
63 | 63 | |
64 | 64 | /* 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(); | |
67 | 67 | memcpy(m_slapstic_base, &m_slapstic_source[m_slapstic_current_bank * 0x2000], 0x2000); |
68 | 68 | |
69 | 69 | /* reset all the banks */ |
r241781 | r241782 | |
97 | 97 | |
98 | 98 | void starwars_state::esb_slapstic_tweak(address_space &space, offs_t offset) |
99 | 99 | { |
100 | int new_bank = slapstic_tweak(space, offset); | |
100 | int new_bank = m_slapstic_device->slapstic_tweak(space, offset); | |
101 | 101 | |
102 | 102 | /* update for the new bank */ |
103 | 103 | if (new_bank != m_slapstic_current_bank) |
r241781 | r241782 | |
331 | 331 | MCFG_CPU_PERIODIC_INT_DRIVER(starwars_state, irq0_line_assert, CLOCK_3KHZ / 12) |
332 | 332 | MCFG_WATCHDOG_TIME_INIT(attotime::from_hz(CLOCK_3KHZ / 128)) |
333 | 333 | |
334 | MCFG_SLAPSTIC_ADD("slapstic") | |
335 | ||
334 | 336 | MCFG_CPU_ADD("audiocpu", M6809, MASTER_CLOCK / 8) |
335 | 337 | MCFG_CPU_PROGRAM_MAP(sound_map) |
336 | 338 | |
r241781 | r241782 | |
524 | 526 | UINT8 *rom = memregion("maincpu")->base(); |
525 | 527 | |
526 | 528 | /* init the slapstic */ |
527 | slapstic_init(machine(), 101); | |
529 | m_slapstic_device->slapstic_init(machine(), 101); | |
528 | 530 | m_slapstic_source = &rom[0x14000]; |
529 | 531 | m_slapstic_base = &rom[0x08000]; |
530 | 532 |
r241781 | r241782 | |
---|---|---|
1021 | 1021 | MCFG_SOUND_ADD("cdda", CDDA, 0) |
1022 | 1022 | MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) |
1023 | 1023 | 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) | |
1024 | 1027 | MACHINE_CONFIG_END |
1025 | 1028 | |
1026 | 1029 | /* |
r241781 | r241782 | |
---|---|---|
27 | 27 | |
28 | 28 | #include "emu.h" |
29 | 29 | #include "cpu/i386/i386.h" |
30 | #include "machine/pci.h" | |
30 | #include "machine/lpci.h" | |
31 | 31 | #include "machine/pcshare.h" |
32 | 32 | #include "machine/pckeybrd.h" |
33 | 33 | #if ENABLE_VGA |
r241781 | r241782 | |
---|---|---|
2894 | 2894 | ROM_LOAD( "963a25.d5", 0x00000, 0x80000, CRC(fca078c7) SHA1(3e1124d72c9db4cb11d8de6c44b7aeca967f44e1) ) |
2895 | 2895 | ROM_END |
2896 | 2896 | |
2897 | ||
2898 | 2897 | ROM_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 |
2899 | 2898 | 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 */ | |
2901 | 2900 | 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) ) | |
2904 | 2903 | |
2905 | 2904 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
2906 | 2905 | ROM_LOAD( "963e20.g13", 0x00000, 0x08000, CRC(1692a6d6) SHA1(68c3419012b2863e91a7d7e479fce5ceabb10b88) ) |
r241781 | r241782 | |
2929 | 2928 | ROM_LOAD( "963a25.d5", 0x00000, 0x80000, CRC(fca078c7) SHA1(3e1124d72c9db4cb11d8de6c44b7aeca967f44e1) ) |
2930 | 2929 | ROM_END |
2931 | 2930 | |
2932 | ||
2933 | 2931 | ROM_START( tmntj ) |
2934 | 2932 | ROM_REGION( 0x60000, "maincpu", 0 ) /* 2*128k and 2*64k for 68000 code */ |
2935 | 2933 | ROM_LOAD16_BYTE( "963_223.j17", 0x00000, 0x20000, CRC(0d34a5ff) SHA1(a387f3e7c727dc66ebb0e1f40e4ab8dc83f647e5) ) |
r241781 | r241782 | |
4102 | 4100 | GAME( 1989, tmntua, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (US 4 Players, set 2)", GAME_SUPPORTS_SAVE ) |
4103 | 4101 | GAME( 1989, tmht, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 1)", GAME_SUPPORTS_SAVE ) |
4104 | 4102 | GAME( 1989, tmhta, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 2)", GAME_SUPPORTS_SAVE ) |
4105 | GAME( 1989, tmhtb, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK | |
4103 | GAME( 1989, tmhtb, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 3)", GAME_SUPPORTS_SAVE ) | |
4106 | 4104 | GAME( 1990, tmntj, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Japan 4 Players)", GAME_SUPPORTS_SAVE ) |
4107 | 4105 | GAME( 1989, tmht2p, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 2 Players, set 1)", GAME_SUPPORTS_SAVE ) |
4108 | 4106 | GAME( 1989, tmht2pa, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 2 Players, set 2)", GAME_SUPPORTS_SAVE ) |
r241781 | r241782 | |
---|---|---|
5206 | 5206 | ROM_END |
5207 | 5207 | |
5208 | 5208 | |
5209 | ROM_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) ) | |
5232 | ROM_END | |
5233 | ||
5234 | ||
5209 | 5235 | ROM_START( bbakraidj ) |
5210 | 5236 | ROM_REGION( 0x200000, "maincpu", 0 ) /* Main 68k code */ |
5211 | 5237 | ROM_LOAD16_BYTE( "prg0u022.new", 0x000000, 0x080000, CRC(fa8d38d3) SHA1(aba91d87a8a62d3fe1139b4437b16e2f844264ad) ) |
r241781 | r241782 | |
5344 | 5370 | // Battle Bakraid |
5345 | 5371 | // the 'unlimited' version is a newer revision of the code |
5346 | 5372 | GAME( 1999, bbakraid, 0, bbakraid, bbakraid, toaplan2_state, bbakraid, ROT270, "Eighting", "Battle Bakraid - Unlimited Version (USA) (Tue Jun 8 1999)", GAME_SUPPORTS_SAVE ) |
5373 | GAME( 1999, bbakraidc, bbakraid, bbakraid, bbakraid, toaplan2_state, bbakraid, ROT270, "Eighting", "Battle Bakraid - Unlimited Version (China) (Tue Jun 8 1999)", GAME_SUPPORTS_SAVE ) | |
5347 | 5374 | GAME( 1999, bbakraidj, bbakraid, bbakraid, bbakraid, toaplan2_state, bbakraid, ROT270, "Eighting", "Battle Bakraid - Unlimited Version (Japan) (Tue Jun 8 1999)", GAME_SUPPORTS_SAVE ) |
5348 | 5375 | // older revision of the code |
5349 | 5376 | GAME( 1999, bbakraidja, bbakraid, bbakraid, bbakraid, toaplan2_state, bbakraid, ROT270, "Eighting", "Battle Bakraid (Japan) (Wed Apr 7 1999)", GAME_SUPPORTS_SAVE ) |
r241781 | r241782 | |
---|---|---|
2026 | 2026 | save_item(NAME(m_music_is_playing)); |
2027 | 2027 | |
2028 | 2028 | save_item(NAME(m_control_0)); |
2029 | save_item(NAME(m_flipscreen)); | |
2030 | 2029 | save_item(NAME(m_tilebank)); |
2031 | 2030 | } |
2032 | 2031 | |
r241781 | r241782 | |
2035 | 2034 | m_music_command = 0; |
2036 | 2035 | m_music_bank = 0; |
2037 | 2036 | m_music_is_playing = 0; |
2038 | m_flipscreen = 0; | |
2039 | 2037 | m_tilebank = 0; |
2040 | 2038 | memset(m_control_0, 0, sizeof(m_control_0)); |
2041 | 2039 | } |
r241781 | r241782 | |
---|---|---|
606 | 606 | |
607 | 607 | ***************************************************************************/ |
608 | 608 | |
609 | ||
609 | 610 | ROM_START( vigilant ) |
610 | 611 | 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) ) | |
613 | 614 | /* 0x20000-0x2ffff empty */ |
614 | 615 | |
615 | 616 | ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for sound */ |
616 | ROM_LOAD( "g | |
617 | ROM_LOAD( "vg_a-5j-.ic37", 0x00000, 0x10000, CRC(10582b2d) SHA1(6e7e5f07c49b347b427572efeb180c89f49bf2c7) ) | |
617 | 618 | |
618 | 619 | 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) ) | |
621 | 622 | |
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) | |
631 | 632 | |
632 | 633 | 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) ) | |
636 | 637 | |
637 | 638 | ROM_REGION( 0x10000, "samples", 0 ) /* samples */ |
638 | ROM_LOAD( " | |
639 | ROM_LOAD( "vg_a-4d-.ic26", 0x00000, 0x10000, CRC(9b85101d) SHA1(6b8a0f33b9b66bb968f7b61e49d19a6afad8db95) ) | |
639 | 640 | |
640 | 641 | ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected */ |
641 | 642 | ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) ) |
642 | 643 | 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) ) | |
644 | 645 | ROM_END |
645 | 646 | |
646 | ||
647 | ||
648 | 647 | ROM_START( vigilant1 ) |
649 | 648 | 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) ) | |
652 | 651 | /* 0x20000-0x2ffff empty */ |
653 | 652 | |
654 | 653 | ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for sound */ |
655 | ROM_LOAD( "g | |
654 | ROM_LOAD( "vg_a-5j-.ic37", 0x00000, 0x10000, CRC(10582b2d) SHA1(6e7e5f07c49b347b427572efeb180c89f49bf2c7) ) | |
656 | 655 | |
657 | 656 | 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) ) | |
660 | 659 | |
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) | |
670 | 669 | |
671 | 670 | 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) ) | |
675 | 674 | |
676 | 675 | ROM_REGION( 0x10000, "samples", 0 ) /* samples */ |
677 | ROM_LOAD( " | |
676 | ROM_LOAD( "vg_a-4d-.ic26", 0x00000, 0x10000, CRC(9b85101d) SHA1(6b8a0f33b9b66bb968f7b61e49d19a6afad8db95) ) | |
678 | 677 | |
679 | 678 | ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected */ |
680 | 679 | ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) ) |
681 | 680 | 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) ) | |
683 | 682 | ROM_END |
684 | 683 | |
685 | ||
686 | ROM_START( vigilantu ) | |
684 | ROM_START( vigilantu ) /* Need to determine the correct original roms & IC locations for this set */ | |
687 | 685 | ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */ |
688 | 686 | ROM_LOAD( "a-8h", 0x00000, 0x08000, CRC(8d15109e) SHA1(9ef57047a0b53cd0143a260193b33e3d5680ca71) ) |
689 | 687 | ROM_LOAD( "a-8l", 0x10000, 0x10000, CRC(7f95799b) SHA1(a371671c3c26976314aaac4e410bff0f13a8a085) ) |
r241781 | r241782 | |
696 | 694 | ROM_LOAD( "f05_c08.bin", 0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) ) |
697 | 695 | ROM_LOAD( "h05_c09.bin", 0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) ) |
698 | 696 | |
699 | ROM_REGION( 0x80000, "gfx2", 0 ) | |
697 | ROM_REGION( 0x80000, "gfx2", 0 ) // 8 roms is a bootleg configuration? | |
700 | 698 | ROM_LOAD( "n07_c12.bin", 0x00000, 0x10000, CRC(10af8eb2) SHA1(664b178b248babc43a9af0fe140fe57bc7367762) ) |
701 | 699 | ROM_LOAD( "k07_c10.bin", 0x10000, 0x10000, CRC(9576f304) SHA1(0ec2a7d3d82208e2a9a4ef9ab2824e6fe26ebbe5) ) |
702 | 700 | ROM_LOAD( "o07_c13.bin", 0x20000, 0x10000, CRC(b1d9d4dc) SHA1(1aacf6b0ff8d102880d3dce3b55cd1488edb90cf) ) |
r241781 | r241782 | |
717 | 715 | ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected */ |
718 | 716 | ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) ) |
719 | 717 | 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) ) | |
721 | 719 | ROM_END |
722 | 720 | |
723 | ROM_START( vigilantu2 ) | |
721 | ROM_START( vigilantu2 ) /* Need to determine the correct original roms & IC locations for this set */ | |
724 | 722 | ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */ |
725 | 723 | ROM_LOAD( "vg-a-8h-g.bin", 0x00000, 0x08000, CRC(9444c04e) SHA1(463d2dae48df2d237bd19d5e16cab032df0d9052) ) /* labeled Rev. G */ |
726 | 724 | ROM_LOAD( "a-8l", 0x10000, 0x10000, CRC(7f95799b) SHA1(a371671c3c26976314aaac4e410bff0f13a8a085) ) |
r241781 | r241782 | |
733 | 731 | ROM_LOAD( "f05_c08.bin", 0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) ) |
734 | 732 | ROM_LOAD( "h05_c09.bin", 0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) ) |
735 | 733 | |
736 | ROM_REGION( 0x80000, "gfx2", 0 ) | |
734 | ROM_REGION( 0x80000, "gfx2", 0 ) // 8 roms is a bootleg configuration? | |
737 | 735 | ROM_LOAD( "n07_c12.bin", 0x00000, 0x10000, CRC(10af8eb2) SHA1(664b178b248babc43a9af0fe140fe57bc7367762) ) |
738 | 736 | ROM_LOAD( "k07_c10.bin", 0x10000, 0x10000, CRC(9576f304) SHA1(0ec2a7d3d82208e2a9a4ef9ab2824e6fe26ebbe5) ) |
739 | 737 | ROM_LOAD( "o07_c13.bin", 0x20000, 0x10000, CRC(b1d9d4dc) SHA1(1aacf6b0ff8d102880d3dce3b55cd1488edb90cf) ) |
r241781 | r241782 | |
754 | 752 | ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected - sourced from this board */ |
755 | 753 | ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) ) |
756 | 754 | 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) ) | |
758 | 756 | ROM_END |
759 | 757 | |
760 | 758 | ROM_START( vigilantj ) |
761 | 759 | 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) ) | |
764 | 762 | /* 0x20000-0x2ffff empty */ |
765 | 763 | |
766 | 764 | 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) ) | |
793 | ROM_END | |
794 | ||
795 | ROM_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 */ | |
767 | 802 | ROM_LOAD( "g05_c02.bin", 0x00000, 0x10000, CRC(10582b2d) SHA1(6e7e5f07c49b347b427572efeb180c89f49bf2c7) ) |
768 | 803 | |
769 | 804 | ROM_REGION( 0x20000, "gfx1", 0 ) |
770 | 805 | ROM_LOAD( "f05_c08.bin", 0x00000, 0x10000, CRC(01579d20) SHA1(e58d8ca0ea0ac9d77225bf55faa499d1565924f9) ) |
771 | 806 | ROM_LOAD( "h05_c09.bin", 0x10000, 0x10000, CRC(4f5872f0) SHA1(6af21ba1c94097eecce30585983b4b07528c8635) ) |
772 | 807 | |
773 | ROM_REGION( 0x80000, "gfx2", 0 ) | |
808 | ROM_REGION( 0x80000, "gfx2", 0 ) // 8 roms is a bootleg configuration? | |
774 | 809 | ROM_LOAD( "n07_c12.bin", 0x00000, 0x10000, CRC(10af8eb2) SHA1(664b178b248babc43a9af0fe140fe57bc7367762) ) |
775 | 810 | ROM_LOAD( "k07_c10.bin", 0x10000, 0x10000, CRC(9576f304) SHA1(0ec2a7d3d82208e2a9a4ef9ab2824e6fe26ebbe5) ) |
776 | 811 | ROM_LOAD( "o07_c13.bin", 0x20000, 0x10000, CRC(b1d9d4dc) SHA1(1aacf6b0ff8d102880d3dce3b55cd1488edb90cf) ) |
r241781 | r241782 | |
788 | 823 | ROM_REGION( 0x10000, "samples", 0 ) /* samples */ |
789 | 824 | ROM_LOAD( "d04_c01.bin", 0x00000, 0x10000, CRC(9b85101d) SHA1(6b8a0f33b9b66bb968f7b61e49d19a6afad8db95) ) |
790 | 825 | |
791 | ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 */ | |
826 | ROM_REGION( 0x0600, "plds", 0 ) /* All are pal16l8 - protected */ | |
792 | 827 | ROM_LOAD( "vg_b-8r.ic90", 0x0000, 0x0117, CRC(df368a7a) SHA1(597d85d1f90b7ee0188f2d849792ee02ff2ea48b) ) |
793 | 828 | 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) ) | |
795 | 830 | ROM_END |
796 | 831 | |
832 | ||
797 | 833 | ROM_START( kikcubic ) |
798 | 834 | ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */ |
799 | 835 | ROM_LOAD( "mqj-p0", 0x00000, 0x08000, CRC(9cef394a) SHA1(be9cc78420b4c35f8f9523b529bd56315749762c) ) |
r241781 | r241782 | |
853 | 889 | ROM_LOAD( "7s", 0x0120, 0x0020, CRC(face0cbb) SHA1(c56aea3b7aaabbd4ff1b4546fcad94f51b473cde) ) /* unknown (bad read?) */ |
854 | 890 | ROM_END |
855 | 891 | |
892 | ||
856 | 893 | ROM_START( buccanrs ) |
857 | 894 | ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for bankswitching */ |
858 | 895 | ROM_LOAD( "11.u58", 0x00000, 0x10000, CRC(bf1d7e6f) SHA1(55dcf993515b57c3eb1fab98097a2171df3e38ed) ) // both halves are identical (correct for rom type on this board tho) |
r241781 | r241782 | |
926 | 963 | ROM_LOAD( "prom2.u99", 0x0300, 0x0100, CRC(e0aa8869) SHA1(ac8bdfeba69420ba56ec561bf3d0f1229d02cea2) ) |
927 | 964 | ROM_END |
928 | 965 | |
929 | GAME( 1988, vigilant, 0, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, set 1)", GAME_NO_COCKTAIL ) | |
930 | GAME( 1988, vigilant1,vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, set 2)", GAME_NO_COCKTAIL ) | |
931 | GAME( 1988, vigilantu,vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East USA license)", "Vigilante (US)", GAME_NO_COCKTAIL ) | |
932 | GAME( 1988, vigilantu2,vigilant,vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East USA license)", "Vigilante (US) - Rev. G", GAME_NO_COCKTAIL ) | |
933 | GAME( 1988, vigilantj,vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (Japan)", GAME_NO_COCKTAIL ) | |
934 | GAME( 1988, kikcubic, 0, kikcubic, kikcubic, driver_device, 0, ROT0, "Irem", "Meikyu Jima (Japan)", GAME_NO_COCKTAIL ) /* English title is Kickle Cubicle */ | |
935 | GAME( 1988, kikcubicb,kikcubic, kikcubic, kikcubic, driver_device, 0, ROT0, "bootleg", "Kickle Cubele", GAME_NO_COCKTAIL ) | |
936 | GAME( 1989, buccanrs, 0, buccanrs, buccanrs, driver_device, 0, ROT0, "Duintronic", "Buccaneers (set 1)", GAME_NO_COCKTAIL ) | |
937 | GAME( 1989, buccanrsa,buccanrs, buccanrs, buccanra, driver_device, 0, ROT0, "Duintronic", "Buccaneers (set 2)", GAME_NO_COCKTAIL ) | |
966 | GAME( 1988, vigilant, 0, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, Rev E)", GAME_NO_COCKTAIL ) | |
967 | GAME( 1988, vigilant1, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, Rev C)", GAME_NO_COCKTAIL ) | |
968 | GAME( 1988, vigilantu, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East USA license)", "Vigilante (US)", GAME_NO_COCKTAIL ) | |
969 | GAME( 1988, vigilantu2,vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East USA license)", "Vigilante (US, Rev G)", GAME_NO_COCKTAIL ) | |
970 | GAME( 1988, vigilantj, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (Japan, Rev D)", GAME_NO_COCKTAIL ) | |
971 | GAME( 1988, vigilantb, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "bootleg", "Vigilante (bootleg)", GAME_NO_COCKTAIL ) | |
972 | ||
973 | GAME( 1988, kikcubic, 0, kikcubic, kikcubic, driver_device, 0, ROT0, "Irem", "Meikyu Jima (Japan)", GAME_NO_COCKTAIL ) /* English title is Kickle Cubicle */ | |
974 | GAME( 1988, kikcubicb, kikcubic, kikcubic, kikcubic, driver_device, 0, ROT0, "bootleg", "Kickle Cubele", GAME_NO_COCKTAIL ) | |
975 | ||
976 | GAME( 1989, buccanrs, 0, buccanrs, buccanrs, driver_device, 0, ROT0, "Duintronic", "Buccaneers (set 1)", GAME_NO_COCKTAIL ) | |
977 | GAME( 1989, buccanrsa, buccanrs, buccanrs, buccanra, driver_device, 0, ROT0, "Duintronic", "Buccaneers (set 2)", GAME_NO_COCKTAIL ) |
r241781 | r241782 | |
---|---|---|
184 | 184 | MCFG_CPU_ADD("maincpu", M68010, ATARI_CLOCK_14MHz/2) |
185 | 185 | MCFG_CPU_PROGRAM_MAP(main_map) |
186 | 186 | |
187 | MCFG_SLAPSTIC_ADD("slapstic") // where is this hooked up here? | |
188 | ||
187 | 189 | MCFG_MACHINE_RESET_OVERRIDE(vindictr_state,vindictr) |
188 | 190 | |
189 | 191 | MCFG_ATARI_EEPROM_2804_ADD("eeprom") |
r241781 | r241782 | |
---|---|---|
283 | 283 | |
284 | 284 | #include "emu.h" |
285 | 285 | #include "cpu/powerpc/ppc.h" |
286 | #include "machine/pci.h" | |
286 | #include "machine/lpci.h" | |
287 | 287 | #include "machine/ataintf.h" |
288 | 288 | #include "machine/idehd.h" |
289 | 289 | #include "machine/timekpr.h" |
r241781 | r241782 | |
---|---|---|
14 | 14 | |
15 | 15 | #include "emu.h" |
16 | 16 | #include "cpu/i386/i386.h" |
17 | #include "machine/pci.h" | |
17 | #include "machine/lpci.h" | |
18 | 18 | #include "machine/pcshare.h" |
19 | 19 | #include "machine/pckeybrd.h" |
20 | 20 | #include "machine/idectrl.h" |
r241781 | r241782 | |
---|---|---|
40 | 40 | |
41 | 41 | #include "emu.h" |
42 | 42 | #include "cpu/i386/i386.h" |
43 | #include "machine/pci.h" | |
43 | #include "machine/lpci.h" | |
44 | 44 | #include "machine/pcshare.h" |
45 | 45 | #include "machine/pckeybrd.h" |
46 | 46 | #include "machine/idectrl.h" |
r241781 | r241782 | |
---|---|---|
184 | 184 | MCFG_CPU_PROGRAM_MAP(main_map) |
185 | 185 | MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen) |
186 | 186 | |
187 | MCFG_SLAPSTIC_ADD("slapstic") | |
188 | ||
187 | 189 | MCFG_MACHINE_RESET_OVERRIDE(xybots_state,xybots) |
188 | 190 | |
189 | 191 | MCFG_ATARI_EEPROM_2804_ADD("eeprom") |
r241781 | r241782 | |
---|---|---|
578 | 578 | static MACHINE_CONFIG_START( magicbub, yunsun16_state ) |
579 | 579 | |
580 | 580 | /* basic machine hardware */ |
581 | MCFG_CPU_ADD("maincpu", M68000, 16 | |
581 | MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) | |
582 | 582 | MCFG_CPU_PROGRAM_MAP(main_map) |
583 | 583 | MCFG_CPU_VBLANK_INT_DRIVER("screen", yunsun16_state, irq2_line_hold) |
584 | 584 | |
585 | MCFG_CPU_ADD("audiocpu", Z80, | |
585 | MCFG_CPU_ADD("audiocpu", Z80, XTAL_16MHz/4) | |
586 | 586 | MCFG_CPU_PROGRAM_MAP(sound_map) |
587 | 587 | MCFG_CPU_IO_MAP(sound_port_map) |
588 | 588 | |
r241781 | r241782 | |
601 | 601 | /* sound hardware */ |
602 | 602 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
603 | 603 | |
604 | MCFG_SOUND_ADD("ymsnd", YM3812, 4 | |
604 | MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_16MHz/4) | |
605 | 605 | MCFG_YM3812_IRQ_HANDLER(WRITELINE(yunsun16_state, soundirq)) |
606 | 606 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80) |
607 | 607 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) |
608 | 608 | |
609 | MCFG_OKIM6295_ADD("oki", 1 | |
609 | MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) | |
610 | 610 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80) |
611 | 611 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) |
612 | 612 | MACHINE_CONFIG_END |
r241781 | r241782 | |
619 | 619 | static MACHINE_CONFIG_START( shocking, yunsun16_state ) |
620 | 620 | |
621 | 621 | /* basic machine hardware */ |
622 | MCFG_CPU_ADD("maincpu", M68000, 16 | |
622 | MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) | |
623 | 623 | MCFG_CPU_PROGRAM_MAP(main_map) |
624 | 624 | MCFG_CPU_VBLANK_INT_DRIVER("screen", yunsun16_state, irq2_line_hold) |
625 | 625 | |
r241781 | r241782 | |
637 | 637 | /* sound hardware */ |
638 | 638 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
639 | 639 | |
640 | MCFG_OKIM6295_ADD("oki", 1 | |
640 | MCFG_OKIM6295_ADD("oki", XTAL_16MHz/16, OKIM6295_PIN7_HIGH) | |
641 | 641 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) |
642 | 642 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) |
643 | 643 | MACHINE_CONFIG_END |
r241781 | r241782 | |
715 | 715 | ROM_LOAD16_BYTE( "magbuble.u32", 0x000001, 0x040000, CRC(f6ea7004) SHA1(069541e37b60370810451616ee66bbd05dc10137) ) |
716 | 716 | |
717 | 717 | ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ |
718 | ROM_LOAD( " | |
718 | ROM_LOAD( "u143.bin", 0x00000, 0x10000, CRC(04192753) SHA1(9c56ba70e1d074906ea1dc593c2a8516c6ba2074) ) | |
719 | 719 | |
720 | 720 | ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */ |
721 | 721 | ROMX_LOAD( "magbuble.u67", 0x000000, 0x080000, CRC(6355e57d) SHA1(5e9234dd474ddcf0a9e1001080f3de11c7d0ee55) , ROM_GROUPWORD | ROM_SKIP(6)) |
r241781 | r241782 | |
724 | 724 | ROMX_LOAD( "magbuble.u70", 0x000006, 0x080000, CRC(37794837) SHA1(11597614e1e048544326fbbe281b364278d6350d) , ROM_GROUPWORD | ROM_SKIP(6)) |
725 | 725 | |
726 | 726 | 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) ) | |
731 | 731 | |
732 | 732 | ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ |
733 | ROM_LOAD( " | |
733 | ROM_LOAD( "u131.bin", 0x000000, 0x020000, CRC(03e04e89) SHA1(7d80e6a7be2322e32e40acae72bedd8d7e90ad33) ) | |
734 | 734 | |
735 | 735 | ROM_END |
736 | 736 | |
r241781 | r241782 | |
741 | 741 | ROM_LOAD16_BYTE( "u32.bin", 0x000001, 0x040000, CRC(58f885ad) SHA1(e66f5bb1ac0acd9abc2def439af7f932c3a09cbd) ) |
742 | 742 | |
743 | 743 | ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */ |
744 | ROM_LOAD( " | |
744 | ROM_LOAD( "u143.bin", 0x00000, 0x10000, CRC(04192753) SHA1(9c56ba70e1d074906ea1dc593c2a8516c6ba2074) ) | |
745 | 745 | |
746 | 746 | ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */ |
747 | 747 | ROMX_LOAD( "u67.bin", 0x000000, 0x080000, CRC(89523dcd) SHA1(edea2bbec615aa253d940bbc3bbdb33f6873a8ee) , ROM_GROUPWORD | ROM_SKIP(6)) |
r241781 | r241782 | |
754 | 754 | ROMX_LOAD( "u74.bin", 0x200006, 0x080000, CRC(81ff4910) SHA1(69241fe2d20b53984aa67f17d8da32e1b74ce696) , ROM_GROUPWORD | ROM_SKIP(6)) |
755 | 755 | |
756 | 756 | 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) ) | |
761 | 761 | |
762 | 762 | ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ |
763 | ROM_LOAD( " | |
763 | ROM_LOAD( "u131.bin", 0x000000, 0x020000, CRC(03e04e89) SHA1(7d80e6a7be2322e32e40acae72bedd8d7e90ad33) ) | |
764 | 764 | |
765 | 765 | ROM_END |
766 | 766 | |
767 | ROM_START( magicbubb ) /* Found on a YS-0211 PCB like below */ | |
767 | 768 | |
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 | ||
795 | ROM_END | |
796 | ||
797 | ||
768 | 798 | /*************************************************************************** |
769 | 799 | |
770 | 800 | YunSung YS-0211 based games: |
r241781 | r241782 | |
772 | 802 | Paparazzi (c) 1996 (no PCB label but looks identical) |
773 | 803 | Shocking (c) 1997 |
774 | 804 | Bomb Kick (c) 1998 |
805 | Magic Bubble (c) 199? | |
775 | 806 | |
776 | 807 | PCB Layout |
777 | 808 | ---------- |
r241781 | r241782 | |
956 | 987 | |
957 | 988 | ***************************************************************************/ |
958 | 989 | |
959 | GAME( 199?, magicbub, 0, magicbub, magicbub, yunsun16_state, magicbub, ROT0, "Yun Sung", "Magic Bubble", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
960 | GAME( 199?, magicbuba, magicbub, magicbub, magicbua, yunsun16_state, magicbub, ROT0, "Yun Sung", "Magic Bubble (Adult version)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
961 | GAME( 1996, paprazzi, 0, shocking, paprazzi, driver_device, 0, ROT270, "Yun Sung", "Paparazzi", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
962 | GAME( 1997, shocking, 0, shocking, shocking, driver_device, 0, ROT0, "Yun Sung", "Shocking", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
963 | GAME( 1997, shockingk, shocking, shocking, shocking, driver_device, 0, ROT0, "Yun Sung", "Shocking (Korea)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
964 | GAME( 1998, bombkick, 0, shocking, bombkick, driver_device, 0, ROT0, "Yun Sung", "Bomb Kick (set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
965 | GAME( 1998, bombkicka, bombkick, shocking, bombkick, driver_device, 0, ROT0, "Yun Sung", "Bomb Kick (set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
990 | GAME( 199?, magicbub, 0, magicbub, magicbub, yunsun16_state, magicbub, ROT0, "Yun Sung", "Magic Bubble", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
991 | GAME( 199?, magicbuba, magicbub, magicbub, magicbua, yunsun16_state, magicbub, ROT0, "Yun Sung", "Magic Bubble (Adult version, YS-1302 PCB)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
992 | GAME( 199?, magicbubb, magicbub, shocking, magicbua, driver_device, 0, ROT0, "Yun Sung", "Magic Bubble (Adult version, YS-0211 PCB)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
993 | GAME( 1996, paprazzi, 0, shocking, paprazzi, driver_device, 0, ROT270, "Yun Sung", "Paparazzi", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
994 | GAME( 1997, shocking, 0, shocking, shocking, driver_device, 0, ROT0, "Yun Sung", "Shocking", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
995 | GAME( 1997, shockingk, shocking, shocking, shocking, driver_device, 0, ROT0, "Yun Sung", "Shocking (Korea)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
996 | GAME( 1998, bombkick, 0, shocking, bombkick, driver_device, 0, ROT0, "Yun Sung", "Bomb Kick (set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
997 | GAME( 1998, bombkicka, bombkick, shocking, bombkick, driver_device, 0, ROT0, "Yun Sung", "Bomb Kick (set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
r241781 | r241782 | |
---|---|---|
8 | 8 | |
9 | 9 | #include "machine/atarigen.h" |
10 | 10 | #include "audio/atarijsa.h" |
11 | #include "includes/slapstic.h" | |
11 | 12 | |
13 | ||
12 | 14 | class atarigx2_state : public atarigen_state |
13 | 15 | { |
14 | 16 | public: |
r241781 | r241782 | |
19 | 21 | m_protection_base(*this, "protection_base"), |
20 | 22 | m_playfield_tilemap(*this, "playfield"), |
21 | 23 | m_alpha_tilemap(*this, "alpha"), |
22 | m_rle(*this, "rle") { } | |
24 | m_rle(*this, "rle") | |
25 | { } | |
23 | 26 | |
24 | 27 | UINT16 m_playfield_base; |
25 | 28 |
r241781 | r241782 | |
---|---|---|
10 | 10 | #include "video/atarimo.h" |
11 | 11 | #include "cpu/m6502/m6502.h" |
12 | 12 | #include "cpu/t11/t11.h" |
13 | #include "slapstic.h" | |
13 | 14 | |
14 | 15 | class atarisy2_state : public atarigen_state |
15 | 16 | { |
r241781 | r241782 | |
25 | 26 | m_alpha_tilemap(*this, "alpha"), |
26 | 27 | m_rombank1(*this, "rombank1"), |
27 | 28 | m_rombank2(*this, "rombank2"), |
28 | m_generic_paletteram_16(*this, "paletteram") { } | |
29 | m_generic_paletteram_16(*this, "paletteram"), | |
30 | m_slapstic(*this, "slapstic") | |
31 | { } | |
29 | 32 | |
30 | 33 | required_device<t11_device> m_maincpu; |
31 | 34 | required_device<m6502_device> m_audiocpu; |
r241781 | r241782 | |
50 | 53 | required_shared_ptr<UINT16> m_rombank1; |
51 | 54 | required_shared_ptr<UINT16> m_rombank2; |
52 | 55 | required_shared_ptr<UINT16> m_generic_paletteram_16; |
56 | required_device<atari_slapstic_device> m_slapstic; | |
53 | 57 | |
54 | 58 | UINT8 m_sound_reset_state; |
55 | 59 |
r241781 | r241782 | |
---|---|---|
4 | 4 | |
5 | 5 | *************************************************************************/ |
6 | 6 | |
7 | #include "includes/slapstic.h" | |
8 | ||
7 | 9 | class atetris_state : public driver_device |
8 | 10 | { |
9 | 11 | public: |
r241781 | r241782 | |
13 | 15 | m_videoram(*this, "videoram"), |
14 | 16 | m_maincpu(*this, "maincpu"), |
15 | 17 | m_gfxdecode(*this, "gfxdecode"), |
16 | m_screen(*this, "screen") { } | |
18 | m_screen(*this, "screen"), | |
19 | m_slapstic_device(*this, "slapstic") | |
20 | { } | |
17 | 21 | |
18 | 22 | required_shared_ptr<UINT8> m_nvram; |
19 | 23 | required_shared_ptr<UINT8> m_videoram; |
r241781 | r241782 | |
40 | 44 | required_device<cpu_device> m_maincpu; |
41 | 45 | required_device<gfxdecode_device> m_gfxdecode; |
42 | 46 | required_device<screen_device> m_screen; |
47 | optional_device<atari_slapstic_device> m_slapstic_device; | |
43 | 48 | }; |
r241781 | r241782 | |
---|---|---|
13 | 13 | #include "cpu/dsp32/dsp32.h" |
14 | 14 | #include "audio/atarijsa.h" |
15 | 15 | #include "sound/dac.h" |
16 | #include "machine/atarigen.h" | |
17 | 16 | #include "machine/mc68681.h" |
18 | 17 | #include "machine/asic65.h" |
19 | 18 | #include "machine/timekpr.h" |
r241781 | r241782 | |
21 | 20 | #define HARDDRIV_MASTER_CLOCK XTAL_32MHz |
22 | 21 | #define HARDDRIV_GSP_CLOCK XTAL_48MHz |
23 | 22 | |
24 | class harddriv_state : public atarigen_state | |
23 | extern const device_type HARDDRIV_DEVICE; | |
24 | extern const device_type HARDDRIV_BOARD_DEVICE; | |
25 | extern const device_type HARDDRIVC_BOARD_DEVICE; | |
26 | extern const device_type RACEDRIV_BOARD_DEVICE; | |
27 | extern const device_type RACEDRIVC_BOARD_DEVICE; | |
28 | extern const device_type RACEDRIVC1_BOARD_DEVICE; | |
29 | extern const device_type RACEDRIVB1_BOARD_DEVICE; | |
30 | extern const device_type RACEDRIVC_PANORAMA_SIDE_BOARD_DEVICE; | |
31 | extern const device_type STUNRUN_BOARD_DEVICE; | |
32 | extern const device_type STEELTAL_BOARD_DEVICE; | |
33 | extern const device_type STEELTAL1_BOARD_DEVICE; | |
34 | extern const device_type STEELTALP_BOARD_DEVICE; | |
35 | extern const device_type STRTDRIV_BOARD_DEVICE; | |
36 | extern const device_type HDRIVAIR_BOARD_DEVICE; | |
37 | extern const device_type HDRIVAIRP_BOARD_DEVICE; | |
38 | ||
39 | ||
40 | class harddriv_state : public device_t | |
41 | /* public device_video_interface */ | |
25 | 42 | { |
26 | 43 | public: |
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); | |
63 | 45 | |
46 | ||
64 | 47 | required_device<cpu_device> m_maincpu; |
65 | 48 | required_device<tms34010_device> m_gsp; |
66 | 49 | optional_device<tms34010_device> m_msp; |
r241781 | r241782 | |
268 | 251 | void init_driver_sound(); |
269 | 252 | void racedrivc_init_common(offs_t gsp_protection); |
270 | 253 | 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(); | |
287 | 278 | INTERRUPT_GEN_MEMBER(hd68k_irq_gen); |
288 | 279 | TIMER_CALLBACK_MEMBER(deferred_adsp_bank_switch); |
289 | 280 | TIMER_CALLBACK_MEMBER(rddsp32_sync_cb); |
r241781 | r241782 | |
310 | 301 | DECLARE_READ16_MEMBER( hd68k_msp_io_r ); |
311 | 302 | DECLARE_WRITE16_MEMBER( hd68k_msp_io_w ); |
312 | 303 | |
304 | DECLARE_READ16_MEMBER( hd68k_a80000_r ); | |
313 | 305 | DECLARE_READ16_MEMBER( hd68k_port0_r ); |
314 | 306 | DECLARE_READ16_MEMBER( hd68k_adc8_r ); |
315 | 307 | DECLARE_READ16_MEMBER( hd68k_adc12_r ); |
r241781 | r241782 | |
469 | 461 | |
470 | 462 | TMS340X0_SCANLINE_IND16_CB_MEMBER(scanline_driver); |
471 | 463 | 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; | |
474 | protected: | |
475 | //virtual machine_config_constructor device_mconfig_additions() const; | |
476 | virtual void device_start(); | |
477 | virtual void device_reset(); | |
472 | 478 | }; |
479 | ||
480 | /* Hard Drivin' */ | |
481 | ||
482 | class harddriv_board_device_state : public harddriv_state | |
483 | { | |
484 | public: | |
485 | harddriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
486 | ||
487 | protected: | |
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 | ||
495 | class harddrivc_board_device_state : public harddriv_state | |
496 | { | |
497 | public: | |
498 | harddrivc_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
499 | ||
500 | protected: | |
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 | ||
508 | class racedriv_board_device_state : public harddriv_state | |
509 | { | |
510 | public: | |
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 | ||
514 | protected: | |
515 | virtual machine_config_constructor device_mconfig_additions() const; | |
516 | virtual void device_start(); | |
517 | // virtual void device_reset(); | |
518 | }; | |
519 | ||
520 | class racedrivb1_board_device_state : public racedriv_board_device_state | |
521 | { | |
522 | public: | |
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 | ||
527 | protected: | |
528 | virtual void device_start(); | |
529 | }; | |
530 | ||
531 | /* Race Drivin' Compact */ | |
532 | ||
533 | class racedrivc_board_device_state : public harddriv_state | |
534 | { | |
535 | public: | |
536 | racedrivc_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
537 | ||
538 | protected: | |
539 | virtual machine_config_constructor device_mconfig_additions() const; | |
540 | virtual void device_start(); | |
541 | // virtual void device_reset(); | |
542 | }; | |
543 | ||
544 | class racedrivc1_board_device_state : public racedrivc_board_device_state | |
545 | { | |
546 | public: | |
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 | {}; | |
550 | protected: | |
551 | virtual void device_start(); | |
552 | }; | |
553 | ||
554 | class racedrivc_panorama_side_board_device_state : public racedrivc_board_device_state | |
555 | { | |
556 | public: | |
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 | {}; | |
560 | protected: | |
561 | virtual machine_config_constructor device_mconfig_additions() const; | |
562 | virtual void device_start(); | |
563 | }; | |
564 | ||
565 | ||
566 | /* Stun Runner */ | |
567 | ||
568 | class stunrun_board_device_state : public harddriv_state | |
569 | { | |
570 | public: | |
571 | stunrun_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
572 | ||
573 | protected: | |
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 | ||
581 | class steeltal_board_device_state : public harddriv_state | |
582 | { | |
583 | public: | |
584 | steeltal_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
585 | ||
586 | protected: | |
587 | virtual machine_config_constructor device_mconfig_additions() const; | |
588 | virtual void device_start(); | |
589 | // virtual void device_reset(); | |
590 | }; | |
591 | ||
592 | class steeltal1_board_device_state : public steeltal_board_device_state | |
593 | { | |
594 | public: | |
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 | ||
599 | protected: | |
600 | virtual void device_start(); | |
601 | }; | |
602 | ||
603 | class steeltalp_board_device_state : public steeltal_board_device_state | |
604 | { | |
605 | public: | |
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 | ||
610 | protected: | |
611 | virtual void device_start(); | |
612 | }; | |
613 | ||
614 | ||
615 | ||
616 | /* Street Drivin' */ | |
617 | ||
618 | class strtdriv_board_device_state : public harddriv_state | |
619 | { | |
620 | public: | |
621 | strtdriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
622 | ||
623 | protected: | |
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 | ||
631 | class hdrivair_board_device_state : public harddriv_state | |
632 | { | |
633 | public: | |
634 | hdrivair_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
635 | ||
636 | protected: | |
637 | virtual machine_config_constructor device_mconfig_additions() const; | |
638 | virtual void device_start(); | |
639 | // virtual void device_reset(); | |
640 | }; | |
641 | ||
642 | class hdrivairp_board_device_state : public hdrivair_board_device_state | |
643 | { | |
644 | public: | |
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 | ||
649 | protected: | |
650 | virtual void device_start(); | |
651 | }; | |
652 | ||
653 | ||
654 | ||
655 |
r241781 | r241782 | |
---|---|---|
411 | 411 | DECLARE_DRIVER_INIT(dw2v100x); |
412 | 412 | DECLARE_DRIVER_INIT(drgw2c); |
413 | 413 | DECLARE_DRIVER_INIT(drgw2j); |
414 | DECLARE_DRIVER_INIT(drgw2hk); | |
414 | 415 | |
415 | 416 | DECLARE_MACHINE_RESET(drgw2); |
416 | 417 |
r241781 | r241782 | |
---|---|---|
55 | 55 | DECLARE_DRIVER_INIT(generic_5874); |
56 | 56 | DECLARE_DRIVER_INIT(wwally); |
57 | 57 | DECLARE_DRIVER_INIT(generic_5987); |
58 | DECLARE_DRIVER_INIT(hamaway); | |
58 | 59 | |
59 | 60 | // memory mapping |
60 | 61 | void memory_mapper(sega_315_5195_mapper_device &mapper, UINT8 index); |
r241781 | r241782 | |
63 | 64 | |
64 | 65 | // read/write handlers |
65 | 66 | DECLARE_WRITE16_MEMBER( rom_5987_bank_w ); |
67 | DECLARE_WRITE16_MEMBER( rom_837_7525_bank_w ); | |
66 | 68 | DECLARE_READ16_MEMBER( io_chip_r ); |
67 | 69 | DECLARE_WRITE16_MEMBER( io_chip_w ); |
68 | 70 | DECLARE_READ16_MEMBER( misc_io_r ); |
r241781 | r241782 | |
90 | 92 | |
91 | 93 | DECLARE_WRITE16_MEMBER( sega_tileram_0_w ) { m_segaic16vid->segaic16_tileram_0_w(space,offset,data,mem_mask); }; |
92 | 94 | 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); | |
93 | 97 | |
94 | 98 | protected: |
95 | 99 | // timer IDs |
r241781 | r241782 | |
104 | 108 | ROM_BOARD_INVALID, |
105 | 109 | ROM_BOARD_171_SHADOW, // 171-???? -- used by shadow dancer |
106 | 110 | 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 | ||
108 | 114 | }; |
109 | 115 | |
110 | 116 | // device overrides |
r241781 | r241782 | |
---|---|---|
9 | 9 | |
10 | 10 | *************************************************************************/ |
11 | 11 | |
12 | ||
12 | #pragma once | |
13 | 13 | |
14 | void slapstic_init(running_machine &machine, int chip); | |
15 | void slapstic_reset(void); | |
14 | #ifndef __SLAPSTIC__ | |
15 | #define __SLAPSTIC__ | |
16 | 16 | |
17 | int slapstic_bank(void); | |
18 | int 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 | ||
22 | extern 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 | ||
44 | struct mask_value | |
45 | { | |
46 | int mask, value; | |
47 | }; | |
48 | ||
49 | ||
50 | struct 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 | ||
108 | enum | |
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 | ||
129 | class atari_slapstic_device : public device_t | |
130 | { | |
131 | public: | |
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 | ||
166 | protected: | |
167 | virtual void device_start(); | |
168 | virtual void device_reset(); | |
169 | ||
170 | ||
171 | private: | |
172 | ||
173 | ||
174 | ||
175 | ||
176 | }; | |
177 | ||
178 | ||
179 | ||
180 | ||
181 | #endif |
r241781 | r241782 | |
---|---|---|
5 | 5 | ***************************************************************************/ |
6 | 6 | |
7 | 7 | #include "machine/6532riot.h" |
8 | #include "includes/slapstic.h" | |
8 | 9 | |
9 | 10 | |
10 | 11 | class starwars_state : public driver_device |
r241781 | r241782 | |
15 | 16 | m_riot(*this, "riot"), |
16 | 17 | m_mathram(*this, "mathram"), |
17 | 18 | m_maincpu(*this, "maincpu"), |
18 | m_audiocpu(*this, "audiocpu") { } | |
19 | m_audiocpu(*this, "audiocpu"), | |
20 | m_slapstic_device(*this, "slapstic") | |
21 | { } | |
19 | 22 | |
20 | 23 | UINT8 m_sound_data; |
21 | 24 | UINT8 m_main_data; |
r241781 | r241782 | |
78 | 81 | void esb_slapstic_tweak(address_space &space, offs_t offset); |
79 | 82 | required_device<cpu_device> m_maincpu; |
80 | 83 | required_device<cpu_device> m_audiocpu; |
84 | optional_device<atari_slapstic_device> m_slapstic_device; | |
81 | 85 | }; |
r241781 | r241782 | |
---|---|---|
9 | 9 | #include "bus/generic/slot.h" |
10 | 10 | #include "bus/generic/carts.h" |
11 | 11 | |
12 | #include "machine/315-5881_crypt.h" | |
13 | ||
12 | 14 | #define MAX_FILTERS (24) |
13 | 15 | #define MAX_BLOCKS (200) |
14 | 16 | #define MAX_DIR_SIZE (256*1024) |
r241781 | r241782 | |
167 | 169 | required_device<gfxdecode_device> m_gfxdecode; |
168 | 170 | required_device<palette_device> m_palette; |
169 | 171 | |
172 | ||
173 | ||
170 | 174 | bitmap_rgb32 m_tmpbitmap; |
171 | 175 | DECLARE_VIDEO_START(stv_vdp2); |
172 | 176 | UINT32 screen_update_saturn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
r241781 | r241782 | |
694 | 698 | stv_state(const machine_config &mconfig, device_type type, const char *tag) |
695 | 699 | : saturn_state(mconfig, type, tag), |
696 | 700 | m_adsp(*this, "adsp"), |
697 | m_adsp_pram(*this, "adsp_pram") | |
701 | m_adsp_pram(*this, "adsp_pram"), | |
702 | m_cryptdevice(*this, "315_5881") | |
698 | 703 | { |
699 | 704 | } |
700 | 705 | |
r241781 | r241782 | |
829 | 834 | DECLARE_WRITE32_MEMBER( decathlt_prot2_w ); |
830 | 835 | void write_prot_data(UINT32 data, UINT32 mem_mask, int offset, int which); |
831 | 836 | void install_decathlt_protection(); |
837 | ||
838 | optional_device<sega_315_5881_crypt_device> m_cryptdevice; | |
839 | UINT16 crypt_read_callback(UINT32 addr); | |
832 | 840 | }; |
833 | 841 | |
834 | 842 |
r241781 | r241782 | |
---|---|---|
40 | 40 | tilemap_t *m_pf2_tilemap; |
41 | 41 | tilemap_t *m_pf2_alt_tilemap; |
42 | 42 | UINT16 m_control_0[8]; |
43 | int m_flipscreen; | |
44 | 43 | UINT16 m_tilebank; |
45 | 44 | |
46 | 45 | /* devices */ |
r241781 | r241782 | |
---|---|---|
193 | 193 | |
194 | 194 | void buggyboy_draw_char(UINT8 *bitmap, bool wide); |
195 | 195 | 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); | |
198 | 197 | void buggyboy_draw_road(UINT8 *bitmap); |
199 | 198 | void buggybjr_draw_road(UINT8 *bitmap); |
200 | 199 | void buggyboy_draw_objs(UINT8 *bitmap, bool wide); |
r0 | r241782 | |
---|---|---|
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> |
r0 | r241782 | |
---|---|---|
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 | ||
18 | extern const device_type SEGA315_5881_CRYPT = &device_creator<sega_315_5881_crypt_device>; | |
19 | ||
20 | ||
21 | sega_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 | ||
28 | void 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 | ||
50 | void 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 | ||
68 | UINT16 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 | ||
87 | void 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 | ||
93 | void 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 | ||
99 | void sega_315_5881_crypt_device::set_subkey(UINT16 data) | |
100 | { | |
101 | subkey = data; | |
102 | enc_ready = false; | |
103 | } | |
104 | ||
105 | void sega_315_5881_crypt_device::set_key(UINT32 data) | |
106 | { | |
107 | key = data; | |
108 | enc_ready = false; | |
109 | } | |
110 | ||
111 | /*************************************************************************** | |
112 | DECRYPTION EMULATION | |
113 | ||
114 | By convention, we label the three known cart protection methods this way (using Deunan Knute's wording): | |
115 | M1: DMA read of protected ROM area | |
116 | M2: special read of ROM area which supplies decryption key first | |
117 | M3: normal read followed by write to cart's decryption buffer (up to 64kB), followed by M2 but from buffer area | |
118 | ||
119 | Notes below refer to M2 & M3. | |
120 | ||
121 | The encryption is done by a stream cipher operating in counter mode, which use a 16-bits internal block cipher. | |
122 | ||
123 | There are 2 "control bits" at the start of the decrypted stream which control the mode of operation: bit #1 set to 1 means | |
124 | that the decrypted stream needs to be decompressed after being decrypted. More on this later. | |
125 | ||
126 | The next 16-bits are part of the header (they don't belong to the plaintext), but his meaning is unclear. It has been | |
127 | conjectured that it could stablish when to "reset" the process and start processing a new stream (based on some tests | |
128 | on WWFROYAL, in which the decryption's output doesn't seem to be valid for more than some dozens of words), but some | |
129 | more testing would be needed for clarifying that. | |
130 | ||
131 | After those 18 heading bits, we find the proper plaintext. It must be noted that, due to the initial 2 special bits, | |
132 | the 16-bits words of the plaintext are shifted 2 bits respect to the word-boundaries of the output stream of the | |
133 | internal block-cipher. So, at a given step, the internal block cipher will output 16-bits, 14 of which will go to a | |
134 | given plaintext word, and the remaining 2 to the next plaintext word. | |
135 | ||
136 | The underlying block cipher consists of two 4-round Feistel Networks (FN): the first one takes the counter (16 bits), | |
137 | the game-key (>=26 bits) and the sequence-key (16 bits) and output a middle result (16 bits) which will act as another key | |
138 | for the second one. The second FN will take the encrypted word (16 bits), the game-key, the sequence-key and the result | |
139 | from the first FN and will output the decrypted word (16 bits). | |
140 | ||
141 | Each round of the Feistel Networks use four substitution sboxes, each having 6 inputs and 2 outputs. The input can be the | |
142 | XOR of at most two "sources bits", being source bits the bits from the previous round and the bits from the different keys. | |
143 | ||
144 | The underlying block cipher has the same structure than the one used by the CPS-2 (Capcom Play System 2) and, | |
145 | indeed, some of the used sboxes are exactly the same and appear in the same FN/round in both systems (this is not evident, | |
146 | as you need to apply a bitswapping and some XORs to the input & output of the sboxes to get the same values due). However, | |
147 | the key scheduling used by this implementation is much weaker than the CPS-2's one. Many s-boxes inputs aren't XORed with any | |
148 | key bit. | |
149 | ||
150 | Due to the small key-length, no sophisticated attacks are needed to recover the keys; a brute-force attack knowing just | |
151 | some (encrypted word-decrypted word) pairs suffice. However, due to the weak key scheduling, it should be noted that some | |
152 | related keys can produce the same output bytes for some (short) input sequences. | |
153 | ||
154 | The only difference in the decryption process between M2 and M3 is the initialization of the counter. In M3, the counter is | |
155 | always set to 0 at the beginning of the decryption while, in M2, the bits #1-#16 of the ciphertext's address are used | |
156 | to initialize the counter. | |
157 | ||
158 | Note that this implementation considers that the counter initialization for ram decryption is 0 simply because the ram is | |
159 | mapped to multiples of 128K. | |
160 | ||
161 | Due to the nature of the cipher, there are some degrees of freedom when choosing the s-boxes and keys values; by example, | |
162 | you could apply a fixed bitswapping and XOR to the keys and the decryption would remain the same as long as you change | |
163 | accordingly the s-boxes' definitions. So the order of the bits in the keys is arbitrary, and the s-boxes values have been | |
164 | chosen so as to make the key for CAPSNK equal to 0. | |
165 | ||
166 | It can be observed that a couple of sboxes have incomplete tables (a 255 value indicate an unknown value). The recovered keys | |
167 | as of december/2010 show small randomness and big correlations, making possible that some unseen bits could make the | |
168 | decryption need those incomplete parts. | |
169 | ||
170 | ****************************************************************************************/ | |
171 | ||
172 | const 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 | ||
325 | const 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 | ||
477 | const 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 | ||
485 | const 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 | ||
493 | const 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 | ||
499 | const 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 | ||
501 | const 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 | ||
503 | int 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 | /************************** | |
526 | This implementation is an "educational" version. It must be noted that it can be speed-optimized in a number of ways. | |
527 | The most evident one is to factor out the parts of the key-scheduling that must only be done once (like the game-key & | |
528 | sequence-key parts) as noted in the comments inlined in the function. More sophisticated speed-ups can be gained by | |
529 | noticing that the weak key-scheduling would allow to create some pregenerated look-up tables for doing most of the work | |
530 | of the function. Even so, it would still be pretty slow, so caching techniques could be a wiser option here. | |
531 | **************************/ | |
532 | ||
533 | UINT16 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 | ||
639 | UINT16 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 | ||
653 | void 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 | ||
667 | void 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 | |
679 | 0xxxxxxx - next node index | |
680 | 1a0bbccc - 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 | |
691 | 11111111 - empty node | |
692 | */ | |
693 | const 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 | ||
750 | int 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 | ||
763 | void 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 |
r0 | r241782 | |
---|---|---|
1 | ||
2 | #pragma once | |
3 | ||
4 | #ifndef __SEGA315_5881_CRYPT__ | |
5 | #define __SEGA315_5881_CRYPT__ | |
6 | ||
7 | typedef device_delegate<UINT16 (UINT32)> sega_m2_read_delegate; | |
8 | ||
9 | extern 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 | ||
15 | class sega_315_5881_crypt_device : public device_t | |
16 | { | |
17 | public: | |
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 | ||
36 | protected: | |
37 | virtual void device_start(); | |
38 | virtual void device_reset(); | |
39 | ||
40 | private: | |
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 |
r241781 | r241782 | |
---|---|---|
150 | 150 | |
151 | 151 | void asic65_device::reset_line(int state) |
152 | 152 | { |
153 | address_space &space = | |
153 | address_space &space = subdevice("^maincpu")->memory().space(AS_PROGRAM); | |
154 | 154 | |
155 | 155 | /* rom-based means reset and clear states */ |
156 | 156 | if (m_asic65_type == ASIC65_ROMBASED) |
r241781 | r241782 | |
---|---|---|
16 | 16 | #include "sound/okim6295.h" |
17 | 17 | #include "sound/pokey.h" |
18 | 18 | #include "video/atarimo.h" |
19 | #include "includes/slapstic.h" | |
20 | 19 | #include "atarigen.h" |
21 | 20 | |
22 | 21 | |
r241781 | r241782 | |
975 | 974 | m_gfxdecode(*this, "gfxdecode"), |
976 | 975 | m_screen(*this, "screen"), |
977 | 976 | m_palette(*this, "palette"), |
978 | m_generic_paletteram_16(*this, "paletteram") | |
977 | m_generic_paletteram_16(*this, "paletteram"), | |
978 | m_slapstic_device(*this, ":slapstic") | |
979 | 979 | { |
980 | 980 | } |
981 | 981 | |
r241781 | r241782 | |
1022 | 1022 | // reset the slapstic |
1023 | 1023 | if (m_slapstic_num != 0) |
1024 | 1024 | { |
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()); | |
1027 | 1030 | } |
1028 | 1031 | } |
1029 | 1032 | |
r241781 | r241782 | |
1192 | 1195 | |
1193 | 1196 | void atarigen_state::device_post_load() |
1194 | 1197 | { |
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()); | |
1196 | 1202 | } |
1197 | 1203 | |
1198 | 1204 | |
r241781 | r241782 | |
1232 | 1238 | // if we have a chip, install it |
1233 | 1239 | if (chipnum != 0) |
1234 | 1240 | { |
1241 | if (!m_slapstic_device) | |
1242 | fatalerror("Slapstic device is missing\n"); | |
1243 | ||
1235 | 1244 | // initialize the slapstic |
1236 | slapstic_init(machine(), chipnum); | |
1245 | m_slapstic_device->slapstic_init(machine(), chipnum); | |
1237 | 1246 | |
1238 | 1247 | // install the memory handlers |
1239 | 1248 | address_space &program = device.space(AS_PROGRAM); |
r241781 | r241782 | |
1262 | 1271 | |
1263 | 1272 | WRITE16_MEMBER(atarigen_state::slapstic_w) |
1264 | 1273 | { |
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)); | |
1266 | 1278 | } |
1267 | 1279 | |
1268 | 1280 | |
r241781 | r241782 | |
1273 | 1285 | |
1274 | 1286 | READ16_MEMBER(atarigen_state::slapstic_r) |
1275 | 1287 | { |
1288 | if (!m_slapstic_device) | |
1289 | fatalerror("Slapstic device is missing?\n"); | |
1290 | ||
1276 | 1291 | // fetch the result from the current bank first |
1277 | 1292 | int result = m_slapstic[offset & 0xfff]; |
1278 | 1293 | |
1279 | 1294 | // then determine the new one |
1280 | slapstic_update_bank(slapstic_tweak(space, offset)); | |
1295 | slapstic_update_bank(m_slapstic_device->slapstic_tweak(space, offset)); | |
1281 | 1296 | return result; |
1282 | 1297 | } |
1283 | 1298 |
r241781 | r241782 | |
---|---|---|
17 | 17 | #include "video/atarimo.h" |
18 | 18 | #include "cpu/m6502/m6502.h" |
19 | 19 | #include "sound/okim6295.h" |
20 | #include "includes/slapstic.h" | |
20 | 21 | |
21 | 22 | |
22 | 23 | /*************************************************************************** |
r241781 | r241782 | |
431 | 432 | optional_device<screen_device> m_screen; |
432 | 433 | optional_device<palette_device> m_palette; |
433 | 434 | optional_shared_ptr<UINT16> m_generic_paletteram_16; |
435 | optional_device<atari_slapstic_device> m_slapstic_device; | |
434 | 436 | }; |
435 | 437 | |
436 | 438 |
r241781 | r241782 | |
---|---|---|
36 | 36 | * |
37 | 37 | *************************************/ |
38 | 38 | |
39 | ||
39 | void harddriv_state::device_start() | |
40 | 40 | { |
41 | atarigen_state::machine_start(); | |
41 | //atarigen_state::machine_start(); | |
42 | 42 | |
43 | 43 | /* predetermine memory regions */ |
44 | 44 | m_sim_memory = (UINT16 *)memregion("user1")->base(); |
45 | 45 | m_sim_memory_size = memregion("user1")->bytes() / 2; |
46 | 46 | m_adsp_pgm_memory_word = (UINT16 *)(reinterpret_cast<UINT8 *>(m_adsp_pgm_memory.target()) + 1); |
47 | ||
48 | init_video(); | |
49 | ||
47 | 50 | } |
48 | 51 | |
49 | 52 | |
50 | ||
53 | void harddriv_state::device_reset() | |
51 | 54 | { |
52 | 55 | /* generic reset */ |
53 | atarigen_state::machine_reset(); | |
54 | slapstic_reset(); | |
56 | //atarigen_state::machine_reset(); | |
57 | m_slapstic_device->slapstic_reset(); | |
55 | 58 | |
56 | 59 | /* halt several of the DSPs to start */ |
57 | 60 | if (m_adsp != NULL) m_adsp->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); |
r241781 | r241782 | |
196 | 199 | * |
197 | 200 | *************************************/ |
198 | 201 | |
202 | READ16_MEMBER( harddriv_state::hd68k_a80000_r ) | |
203 | { | |
204 | return ioport("a80000")->read_safe(0xffff); | |
205 | } | |
206 | ||
199 | 207 | READ16_MEMBER( harddriv_state::hd68k_port0_r ) |
200 | 208 | { |
201 | 209 | /* port is as follows: |
r241781 | r241782 | |
213 | 221 | ..... |
214 | 222 | 0x8000 = SW1 #1 |
215 | 223 | */ |
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; | |
218 | 228 | temp ^= 0x0018; /* both EOCs always high for now */ |
219 | 229 | return temp; |
220 | 230 | } |
r241781 | r241782 | |
222 | 232 | |
223 | 233 | READ16_MEMBER( harddriv_state::hdc68k_port1_r ) |
224 | 234 | { |
225 | UINT16 result = ioport("a80000")->read(); | |
235 | UINT16 result = ioport("a80000")->read_safe(0xffff); | |
226 | 236 | UINT16 diff = result ^ m_hdc68k_last_port1; |
227 | 237 | |
228 | 238 | /* if a new shifter position is selected, use it */ |
r241781 | r241782 | |
250 | 260 | |
251 | 261 | READ16_MEMBER( harddriv_state::hda68k_port1_r ) |
252 | 262 | { |
253 | UINT16 result = ioport("a80000")->read(); | |
263 | UINT16 result = ioport("a80000")->read_safe(0xffff); | |
254 | 264 | |
255 | 265 | /* merge in the wheel edge latch bit */ |
256 | 266 | if (m_hdc68k_wheel_edge) |
r241781 | r241782 | |
263 | 273 | READ16_MEMBER( harddriv_state::hdc68k_wheel_r ) |
264 | 274 | { |
265 | 275 | /* 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; | |
267 | 277 | |
268 | 278 | /* hack to display the wheel position */ |
269 | 279 | if (space.machine().input().code_pressed(KEYCODE_LSHIFT)) |
r241781 | r241782 | |
317 | 327 | if (m_adc_control & 0x08) |
318 | 328 | { |
319 | 329 | 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); | |
321 | 331 | } |
322 | 332 | |
323 | 333 | /* handle a write to the 12-bit ADC address select */ |
324 | 334 | if (m_adc_control & 0x40) |
325 | 335 | { |
326 | 336 | m_adc12_select = (m_adc_control >> 4) & 0x03; |
327 | m_adc12_data = | |
337 | m_adc12_data = ioport(adc12names[m_adc12_select])->read_safe(0xffff) << 4; | |
328 | 338 | } |
329 | 339 | |
330 | 340 | /* bit 7 selects which byte of the 12 bit data to read */ |
r241781 | r241782 | |
485 | 495 | } |
486 | 496 | } |
487 | 497 | |
498 | screen_device &scr = m_gsp->screen(); | |
499 | ||
488 | 500 | /* detect changes to HEBLNK and HSBLNK and force an update before they change */ |
489 | 501 | if ((offset == REG_HEBLNK || offset == REG_HSBLNK) && data != m_gsp->io_register_r(space, offset, 0xffff)) |
490 | | |
502 | scr.update_partial(scr.vpos() - 1); | |
491 | 503 | |
492 | 504 | m_gsp->io_register_w(space, offset, data, mem_mask); |
493 | 505 | } |
r241781 | r241782 | |
1502 | 1514 | switch (offset & 7) |
1503 | 1515 | { |
1504 | 1516 | 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); | |
1506 | 1518 | break; |
1507 | 1519 | |
1508 | 1520 | 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); | |
1510 | 1522 | break; |
1511 | 1523 | |
1512 | 1524 | case 2: /* ZW1 */ |
r241781 | r241782 | |
1570 | 1582 | WRITE16_MEMBER( harddriv_state::hd68k_dsk_dsp32_w ) |
1571 | 1583 | { |
1572 | 1584 | m_dsk_pio_access = TRUE; |
1573 | m_dsp32->pio_w(offset, data); | |
1585 | if (m_dsp32) m_dsp32->pio_w(offset, data); | |
1574 | 1586 | m_dsk_pio_access = FALSE; |
1575 | 1587 | } |
1576 | 1588 | |
r241781 | r241782 | |
1579 | 1591 | { |
1580 | 1592 | UINT16 result; |
1581 | 1593 | 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 | ||
1583 | 1597 | m_dsk_pio_access = FALSE; |
1584 | 1598 | return result; |
1585 | 1599 | } |
r241781 | r241782 | |
1671 | 1685 | |
1672 | 1686 | WRITE16_MEMBER( harddriv_state::rd68k_slapstic_w ) |
1673 | 1687 | { |
1674 | slapstic_tweak(space, offset & 0x3fff); | |
1688 | m_slapstic_device->slapstic_tweak(space, offset & 0x3fff); | |
1675 | 1689 | } |
1676 | 1690 | |
1677 | 1691 | |
1678 | 1692 | READ16_MEMBER( harddriv_state::rd68k_slapstic_r ) |
1679 | 1693 | { |
1680 | int bank = slapstic_tweak(space, offset & 0x3fff) * 0x4000; | |
1694 | int bank = m_slapstic_device->slapstic_tweak(space, offset & 0x3fff) * 0x4000; | |
1681 | 1695 | return m_m68k_slapstic_base[bank + (offset & 0x3fff)]; |
1682 | 1696 | } |
1683 | 1697 |
r241781 | r241782 | |
---|---|---|
267 | 267 | pif_ram[0x27] = 0x3f; |
268 | 268 | cic_type=6; |
269 | 269 | } |
270 | else | |
271 | { | |
272 | //printf("Unknown BootCode Checksum %08X%08X\n", (UINT32)(boot_checksum>>32),(UINT32)(boot_checksum)); | |
273 | } | |
274 | 270 | } |
275 | 271 | |
276 | 272 | // Memory Interface (MI) |
r241781 | r241782 | |
312 | 308 | break; |
313 | 309 | } |
314 | 310 | |
315 | //printf("mi_reg_r %08x = %08x\n", offset * 4, ret); fflush(stdout); | |
316 | 311 | return ret; |
317 | 312 | } |
318 | 313 | |
319 | 314 | WRITE32_MEMBER( n64_periphs::mi_reg_w ) |
320 | 315 | { |
321 | //printf("mi_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask); fflush(stdout); | |
322 | 316 | switch (offset) |
323 | 317 | { |
324 | 318 | case 0x00/4: // MI_INIT_MODE_REG |
r241781 | r241782 | |
409 | 403 | { |
410 | 404 | if (mi_intr_mask & mi_interrupt) |
411 | 405 | { |
412 | //printf("Asserting IRQ, %02x : %02x\n", mi_intr_mask, mi_interrupt); fflush(stdout); | |
413 | 406 | machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE); |
414 | 407 | } |
415 | 408 | else |
416 | 409 | { |
417 | //printf("Deasserting IRQ, %02x : %02x\n", mi_intr_mask, mi_interrupt); fflush(stdout); | |
418 | 410 | machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); |
419 | 411 | } |
420 | 412 | } |
r241781 | r241782 | |
466 | 458 | case 0x0014/4: |
467 | 459 | for(i = 0x20; i < (0x20 + data); i++) |
468 | 460 | { |
469 | //printf( "%c", is64_buffer[i] ); | |
470 | 461 | if(is64_buffer[i] == 0x0a) |
471 | 462 | { |
472 | | |
463 | printf( "%c", 0x0d ); | |
473 | 464 | } |
474 | 465 | is64_buffer[i] = 0; |
475 | 466 | } |
r241781 | r241782 | |
511 | 502 | |
512 | 503 | READ32_MEMBER( n64_periphs::rdram_reg_r ) |
513 | 504 | { |
514 | //printf("rdram_reg_r %08x = %08x\n", offset * 4, rdram_regs[offset]); fflush(stdout); | |
515 | 505 | if(offset > 0x24/4) |
516 | 506 | { |
517 | 507 | logerror("rdram_reg_r: %08X, %08X at %08X\n", offset, mem_mask, maincpu->safe_pc()); |
r241781 | r241782 | |
522 | 512 | |
523 | 513 | WRITE32_MEMBER( n64_periphs::rdram_reg_w ) |
524 | 514 | { |
525 | //printf("rdram_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask); fflush(stdout); | |
526 | 515 | if(offset > 0x24/4) |
527 | 516 | { |
528 | 517 | logerror("rdram_reg_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, maincpu->safe_pc()); |
r241781 | r241782 | |
542 | 531 | length = (length + 7) & ~7; |
543 | 532 | } |
544 | 533 | |
545 | //printf("Length %08x Skip %08x Count %08x\n", length, sp_dma_skip, sp_dma_count); fflush(stdout); | |
546 | 534 | if (sp_mem_addr & 0x3) |
547 | 535 | { |
548 | 536 | sp_mem_addr = sp_mem_addr & ~3; |
r241781 | r241782 | |
554 | 542 | |
555 | 543 | if ((sp_mem_addr & 0xfff) + (length) > 0x1000) |
556 | 544 | { |
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); | |
559 | 545 | length = 0x1000 - (sp_mem_addr & 0xfff); |
560 | 546 | } |
561 | 547 | |
r241781 | r241782 | |
602 | 588 | |
603 | 589 | WRITE32_MEMBER(n64_periphs::sp_set_status) |
604 | 590 | { |
605 | //printf("sp_set_status: %08x\n", data); | |
606 | 591 | if (data & 0x1) |
607 | 592 | { |
608 | 593 | rspcpu->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE); |
r241781 | r241782 | |
638 | 623 | break; |
639 | 624 | |
640 | 625 | case 0x10/4: // SP_STATUS_REG |
641 | //machine().scheduler().synchronize(); | |
642 | //machine().scheduler().boost_interleave(attotime::from_msec(1), attotime::from_msec(m)); | |
643 | 626 | ret = rspcpu->state().state_int(RSP_SR); |
644 | 627 | break; |
645 | 628 | |
r241781 | r241782 | |
652 | 635 | break; |
653 | 636 | |
654 | 637 | case 0x1c/4: // SP_SEMAPHORE_REG |
655 | //machine().scheduler().boost_interleave(attotime::from_usec(1), attotime::from_usec(1)); | |
656 | 638 | machine().device("maincpu")->execute().yield(); |
657 | 639 | if( sp_semaphore ) |
658 | 640 | { |
r241781 | r241782 | |
660 | 642 | } |
661 | 643 | else |
662 | 644 | { |
663 | //printf("Semaphore is now acquired, returning 0\n"); | |
664 | 645 | sp_semaphore = 1; |
665 | 646 | ret = 0; |
666 | 647 | } |
r241781 | r241782 | |
718 | 699 | break; |
719 | 700 | } |
720 | 701 | |
721 | //printf("%08x sp_reg_r %08x = %08x\n", (UINT32)maincpu->state().state_int(MIPS3_PC), offset * 4, ret); fflush(stdout); | |
722 | 702 | return ret; |
723 | 703 | } |
724 | 704 | |
725 | 705 | |
726 | 706 | WRITE32_MEMBER(n64_periphs::sp_reg_w ) |
727 | 707 | { |
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 | ||
730 | 708 | if ((offset & 0x10000) == 0) |
731 | 709 | { |
732 | 710 | switch (offset & 0xffff) |
r241781 | r241782 | |
758 | 736 | UINT32 oldstatus = rspcpu->state().state_int(RSP_SR); |
759 | 737 | UINT32 newstatus = oldstatus; |
760 | 738 | |
761 | // printf( "RSP_STATUS_REG Write; %08x\n", data ); | |
762 | 739 | if (data & 0x00000001) // clear halt |
763 | 740 | { |
764 | 741 | rspcpu->execute().set_input_line(INPUT_LINE_HALT, CLEAR_LINE); |
765 | 742 | 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)); | |
767 | 745 | } |
768 | 746 | if (data & 0x00000002) // set halt |
769 | 747 | { |
770 | 748 | rspcpu->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE); |
771 | 749 | newstatus |= RSP_STATUS_HALT; |
772 | //printf("***SP HALT SET***\n"); fflush(stdout); | |
773 | 750 | } |
774 | 751 | if (data & 0x00000004) |
775 | 752 | { |
776 | 753 | newstatus &= ~RSP_STATUS_BROKE; |
777 | //printf("***SP BROKE CLR***\n"); fflush(stdout); | |
778 | 754 | } |
779 | 755 | if (data & 0x00000008) // clear interrupt |
780 | 756 | { |
781 | //printf("***SP INT CLR***\n"); fflush(stdout); | |
782 | 757 | clear_rcp_interrupt(SP_INTERRUPT); |
783 | 758 | } |
784 | 759 | if (data & 0x00000010) // set interrupt |
785 | 760 | { |
786 | //printf("***SP INT SET***\n"); fflush(stdout); | |
787 | 761 | signal_rcp_interrupt(SP_INTERRUPT); |
788 | 762 | } |
789 | 763 | if (data & 0x00000020) |
790 | 764 | { |
791 | 765 | newstatus &= ~RSP_STATUS_SSTEP; |
792 | //printf("***SP SSTEP CLR***\n"); fflush(stdout); | |
793 | 766 | } |
794 | 767 | if (data & 0x00000040) |
795 | 768 | { |
796 | 769 | newstatus |= RSP_STATUS_SSTEP; // set single step |
797 | //printf("***SP SSTEP SET***\n"); fflush(stdout); | |
798 | 770 | if(!(oldstatus & (RSP_STATUS_BROKE | RSP_STATUS_HALT))) |
799 | 771 | { |
800 | 772 | rspcpu->state().set_state_int(RSP_STEPCNT, 1 ); |
r241781 | r241782 | |
804 | 776 | if (data & 0x00000080) |
805 | 777 | { |
806 | 778 | newstatus &= ~RSP_STATUS_INTR_BREAK; // clear interrupt on break |
807 | //printf("***SP INTRBRK CLR***\n"); fflush(stdout); | |
808 | 779 | } |
809 | 780 | if (data & 0x00000100) |
810 | 781 | { |
811 | 782 | newstatus |= RSP_STATUS_INTR_BREAK; // set interrupt on break |
812 | //printf("***SP INTRBRK SET***\n"); fflush(stdout); | |
813 | 783 | } |
814 | 784 | if (data & 0x00000200) |
815 | 785 | { |
816 | 786 | newstatus &= ~RSP_STATUS_SIGNAL0; // clear signal 0 |
817 | //printf("***SP YIELD CLR***\n"); fflush(stdout); | |
818 | 787 | } |
819 | 788 | if (data & 0x00000400) |
820 | 789 | { |
821 | 790 | newstatus |= RSP_STATUS_SIGNAL0; // set signal 0 |
822 | //printf("***SP YIELD SET***\n"); fflush(stdout); | |
823 | 791 | } |
824 | 792 | if (data & 0x00000800) |
825 | 793 | { |
826 | 794 | newstatus &= ~RSP_STATUS_SIGNAL1; // clear signal 1 |
827 | //printf("***SP YIELDED CLR***\n"); fflush(stdout); | |
828 | 795 | } |
829 | 796 | if (data & 0x00001000) |
830 | 797 | { |
831 | 798 | newstatus |= RSP_STATUS_SIGNAL1; // set signal 1 |
832 | //printf("***SP YIELDED SET***\n"); fflush(stdout); | |
833 | 799 | } |
834 | 800 | if (data & 0x00002000) |
835 | 801 | { |
836 | 802 | newstatus &= ~RSP_STATUS_SIGNAL2 ; // clear signal 2 |
837 | //printf("***SP TASKDONE CLR***\n"); fflush(stdout); | |
838 | 803 | } |
839 | 804 | if (data & 0x00004000) |
840 | 805 | { |
841 | 806 | newstatus |= RSP_STATUS_SIGNAL2; // set signal 2 |
842 | //printf("***SP TASKDONE SET***\n"); fflush(stdout); | |
843 | 807 | } |
844 | 808 | if (data & 0x00008000) |
845 | 809 | { |
846 | 810 | newstatus &= ~RSP_STATUS_SIGNAL3; // clear signal 3 |
847 | //printf("***SP SIG3 CLR***\n"); fflush(stdout); | |
848 | 811 | } |
849 | 812 | if (data & 0x00010000) |
850 | 813 | { |
851 | 814 | newstatus |= RSP_STATUS_SIGNAL3; // set signal 3 |
852 | //printf("***SP SIG3 SET***\n"); fflush(stdout); | |
853 | 815 | } |
854 | 816 | if (data & 0x00020000) |
855 | 817 | { |
856 | 818 | newstatus &= ~RSP_STATUS_SIGNAL4; // clear signal 4 |
857 | //printf("***SP SIG4 CLR***\n"); fflush(stdout); | |
858 | 819 | } |
859 | 820 | if (data & 0x00040000) |
860 | 821 | { |
861 | 822 | newstatus |= RSP_STATUS_SIGNAL4; // set signal 4 |
862 | //printf("***SP SIG4 SET***\n"); fflush(stdout); | |
863 | 823 | } |
864 | 824 | if (data & 0x00080000) |
865 | 825 | { |
866 | 826 | newstatus &= ~RSP_STATUS_SIGNAL5; // clear signal 5 |
867 | //printf("***SP SIG5 CLR***\n"); fflush(stdout); | |
868 | 827 | } |
869 | 828 | if (data & 0x00100000) |
870 | 829 | { |
871 | 830 | newstatus |= RSP_STATUS_SIGNAL5; // set signal 5 |
872 | //printf("***SP SIG5 SET***\n"); fflush(stdout); | |
873 | 831 | } |
874 | 832 | if (data & 0x00200000) |
875 | 833 | { |
876 | 834 | newstatus &= ~RSP_STATUS_SIGNAL6; // clear signal 6 |
877 | //printf("***SP SIG6 CLR***\n"); fflush(stdout); | |
878 | 835 | } |
879 | 836 | if (data & 0x00400000) |
880 | 837 | { |
881 | 838 | newstatus |= RSP_STATUS_SIGNAL6; // set signal 6 |
882 | //printf("***SP SIG6 SET***\n"); fflush(stdout); | |
883 | 839 | } |
884 | 840 | if (data & 0x00800000) |
885 | 841 | { |
886 | 842 | newstatus &= ~RSP_STATUS_SIGNAL7; // clear signal 7 |
887 | //printf("***SP SIG7 CLR***\n"); fflush(stdout); | |
888 | 843 | } |
889 | 844 | if (data & 0x01000000) |
890 | 845 | { |
891 | 846 | newstatus |= RSP_STATUS_SIGNAL7; // set signal 7 |
892 | //printf("***SP SIG7 SET***\n"); fflush(stdout); | |
893 | 847 | } |
894 | 848 | rspcpu->state().set_state_int(RSP_SR, newstatus); |
895 | 849 | break; |
896 | 850 | } |
897 | 851 | |
898 | 852 | 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"); | |
901 | 853 | if(data == 0) |
902 | 854 | { |
903 | 855 | sp_semaphore = 0; |
r241781 | r241782 | |
976 | 928 | break; |
977 | 929 | } |
978 | 930 | |
979 | //printf("%08x dp_reg_r %08x = %08x\n", (UINT32)space.machine().device("rsp")->state().state_int(RSP_PC), offset, ret); fflush(stdout); | |
980 | 931 | return ret; |
981 | 932 | } |
982 | 933 | |
r241781 | r241782 | |
984 | 935 | { |
985 | 936 | n64_state *state = space.machine().driver_data<n64_state>(); |
986 | 937 | |
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); | |
988 | 938 | switch (offset) |
989 | 939 | { |
990 | 940 | case 0x00/4: // DP_START_REG |
r241781 | r241782 | |
993 | 943 | break; |
994 | 944 | |
995 | 945 | case 0x04/4: // DP_END_REG |
996 | //printf("dp_end_reg %08x\n", data); | |
997 | 946 | state->m_rdp->SetEndReg(data); |
998 | 947 | g_profiler.start(PROFILER_USER1); |
999 | 948 | state->m_rdp->ProcessList(); |
r241781 | r241782 | |
1042 | 991 | int y_end = (vi_vstart & 0x000003ff) / 2; |
1043 | 992 | int width = ((vi_xscale & 0x00000fff) * (x_end - x_start)) / 0x400; |
1044 | 993 | int height = ((vi_yscale & 0x00000fff) * (y_end - y_start)) / 0x400; |
1045 | ||
994 | ||
1046 | 995 | rectangle visarea = m_screen->visible_area(); |
1047 | 996 | attoseconds_t period = m_screen->frame_period().attoseconds; |
1048 | 997 | |
r241781 | r241782 | |
1070 | 1019 | |
1071 | 1020 | visarea.max_x = width - 1; |
1072 | 1021 | 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); | |
1074 | 1022 | m_screen->configure(width, 525, visarea, period); |
1075 | 1023 | } |
1076 | 1024 | |
r241781 | r241782 | |
1140 | 1088 | break; |
1141 | 1089 | } |
1142 | 1090 | |
1143 | //printf("vi_reg_r %08x = %08x\n", offset * 4, ret); | |
1144 | 1091 | return ret; |
1145 | 1092 | } |
1146 | 1093 | |
1147 | 1094 | WRITE32_MEMBER( n64_periphs::vi_reg_w ) |
1148 | 1095 | { |
1149 | //printf("vi_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask); | |
1150 | 1096 | n64_state *state = machine().driver_data<n64_state>(); |
1151 | 1097 | |
1152 | 1098 | switch (offset) |
r241781 | r241782 | |
1379 | 1325 | break; |
1380 | 1326 | } |
1381 | 1327 | |
1382 | //printf("ai_reg_r %08x = %08x\n", offset * 4, ret); | |
1383 | 1328 | return ret; |
1384 | 1329 | } |
1385 | 1330 | |
1386 | 1331 | WRITE32_MEMBER( n64_periphs::ai_reg_w ) |
1387 | 1332 | { |
1388 | //printf("ai_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask); | |
1389 | 1333 | switch (offset) |
1390 | 1334 | { |
1391 | 1335 | case 0x00/4: // AI_DRAM_ADDR_REG |
r241781 | r241782 | |
1408 | 1352 | case 0x10/4: // AI_DACRATE_REG |
1409 | 1353 | ai_dacrate = data & 0x3fff; |
1410 | 1354 | 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) ); | |
1412 | 1355 | dmadac_enable(&ai_dac[0], 2, 1); |
1413 | 1356 | break; |
1414 | 1357 | |
r241781 | r241782 | |
1455 | 1398 | cart_addr &= ((machine().root_device().memregion("user2")->bytes() >> 1) - 1); |
1456 | 1399 | } |
1457 | 1400 | |
1458 | //printf("%08x Cart, %08x Dram\n", cart_addr << 1, dram_addr << 1); fflush(stdout); | |
1459 | ||
1460 | 1401 | if(pi_dma_dir == 1) |
1461 | 1402 | { |
1462 | 1403 | UINT32 dma_length = pi_wr_len + 1; |
r241781 | r241782 | |
1558 | 1499 | break; |
1559 | 1500 | } |
1560 | 1501 | |
1561 | //printf("pi_reg_r %08x = %08x\n", offset * 4, ret); | |
1562 | 1502 | return ret; |
1563 | 1503 | } |
1564 | 1504 | |
1565 | 1505 | WRITE32_MEMBER( n64_periphs::pi_reg_w ) |
1566 | 1506 | { |
1567 | //printf("pi_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask); fflush(stdout); | |
1568 | 1507 | switch (offset) |
1569 | 1508 | { |
1570 | 1509 | case 0x00/4: // PI_DRAM_ADDR_REG |
r241781 | r241782 | |
1586 | 1525 | pi_status |= 1; |
1587 | 1526 | |
1588 | 1527 | 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)); | |
1590 | 1528 | pi_dma_timer->adjust(dma_period); |
1591 | 1529 | //pi_dma_tick(); |
1592 | 1530 | break; |
r241781 | r241782 | |
1599 | 1537 | pi_status |= 1; |
1600 | 1538 | |
1601 | 1539 | 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)); | |
1603 | 1540 | pi_dma_timer->adjust(dma_period); |
1604 | 1541 | |
1605 | 1542 | //pi_dma_tick(); |
r241781 | r241782 | |
1658 | 1595 | |
1659 | 1596 | READ32_MEMBER( n64_periphs::ri_reg_r ) |
1660 | 1597 | { |
1661 | //printf("ri_reg_r %08x = %08x\n", offset * 4, ri_regs[offset]); | |
1662 | 1598 | if(offset > 0x1c/4) |
1663 | 1599 | { |
1664 | 1600 | logerror("ri_reg_r: %08X, %08X at %08X\n", offset, mem_mask, maincpu->safe_pc()); |
r241781 | r241782 | |
1669 | 1605 | |
1670 | 1606 | WRITE32_MEMBER( n64_periphs::ri_reg_w ) |
1671 | 1607 | { |
1672 | //printf("ri_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask); | |
1673 | 1608 | if(offset > 0x1c/4) |
1674 | 1609 | { |
1675 | 1610 | logerror("ri_reg_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, maincpu->safe_pc()); |
r241781 | r241782 | |
1732 | 1667 | case 0x00: // Read status |
1733 | 1668 | case 0xff: // Reset |
1734 | 1669 | { |
1735 | if(command == 0) | |
1736 | { | |
1737 | //printf("Read status\n"); | |
1738 | } | |
1739 | else | |
1740 | { | |
1741 | //printf("Reset\n"); | |
1742 | } | |
1743 | 1670 | switch (channel) |
1744 | 1671 | { |
1745 | 1672 | case 0: |
1746 | 1673 | case 1: |
1747 | 1674 | { |
1748 | // | |
1675 | // Read status | |
1749 | 1676 | rdata[0] = 0x05; |
1750 | 1677 | rdata[1] = 0x00; |
1751 | 1678 | rdata[2] = 0x01; |
r241781 | r241782 | |
1754 | 1681 | case 2: |
1755 | 1682 | case 3: |
1756 | 1683 | { |
1757 | //printf("Read controller %d status (NC)\n", channel + 1); | |
1758 | // not connected | |
1684 | // Read status (unconnected) | |
1759 | 1685 | return 1; |
1760 | 1686 | } |
1761 | 1687 | case 4: |
1762 | 1688 | { |
1763 | // | |
1689 | // Read EEPROM status | |
1764 | 1690 | rdata[0] = 0x00; |
1765 | 1691 | rdata[1] = 0x80; |
1766 | 1692 | rdata[2] = 0x00; |
r241781 | r241782 | |
1791 | 1717 | |
1792 | 1718 | switch (channel) |
1793 | 1719 | { |
1794 | case 0: //p1 inputs | |
1795 | case 1: //p2 inputs | |
1720 | case 0: // P1 Inputs | |
1721 | case 1: // P2 Inputs | |
1796 | 1722 | { |
1797 | //printf("Read p%d inputs\n", channel + 1); | |
1798 | 1723 | buttons = machine().root_device().ioport(portnames[(channel*3) + 0])->read(); |
1799 | 1724 | x = machine().root_device().ioport(portnames[(channel*3) + 1])->read() - 128; |
1800 | 1725 | y = machine().root_device().ioport(portnames[(channel*3) + 2])->read() - 128; |
r241781 | r241782 | |
1808 | 1733 | case 2: |
1809 | 1734 | case 3: |
1810 | 1735 | { |
1811 | //printf("Controller %d not connected\n", channel + 1); | |
1812 | // not connected | |
1736 | // P3/P4 Inputs (not connected) | |
1813 | 1737 | return 1; |
1814 | 1738 | } |
1815 | 1739 | } |
r241781 | r241782 | |
1824 | 1748 | address = (sdata[1] << 8) | (sdata[2]); |
1825 | 1749 | address &= ~0x1f; |
1826 | 1750 | |
1827 | ////printf("Read mempak at %04x\n", address); | |
1828 | ||
1829 | 1751 | if(address == 0x8000) |
1830 | 1752 | { |
1831 | 1753 | for(int i = 0; i < rlength-1; i++) |
r241781 | r241782 | |
1854 | 1776 | UINT32 address = (sdata[1] << 8) | (sdata[2]); |
1855 | 1777 | address &= ~0x1f; |
1856 | 1778 | |
1857 | ////printf("Write mempak at %04x\n", address); | |
1858 | if (address >= 0x8000) | |
1779 | if (address < 0x8000) | |
1859 | 1780 | { |
1860 | } | |
1861 | else | |
1862 | { | |
1863 | 1781 | for(int i = 3; i < slength; i++) |
1864 | 1782 | { |
1865 | 1783 | m_save_data.mempak[channel & 1][address++] = sdata[i]; |
r241781 | r241782 | |
1885 | 1803 | |
1886 | 1804 | UINT16 block_offset = sdata[1] * 8; |
1887 | 1805 | |
1888 | //printf("Read EEPROM at %04x\n", block_offset); | |
1889 | ||
1890 | 1806 | for(int i=0; i < 8; i++) |
1891 | 1807 | { |
1892 | 1808 | rdata[i] = m_save_data.eeprom[block_offset+i]; |
r241781 | r241782 | |
1909 | 1825 | |
1910 | 1826 | UINT16 block_offset = sdata[1] * 8; |
1911 | 1827 | |
1912 | //printf("Write EEPROM at %04x\n", block_offset); | |
1913 | ||
1914 | 1828 | for(int i = 0; i < 8; i++) |
1915 | 1829 | { |
1916 | 1830 | m_save_data.eeprom[block_offset+i] = sdata[2+i]; |
r241781 | r241782 | |
1921 | 1835 | |
1922 | 1836 | case 0x06: // Read RTC Status |
1923 | 1837 | { |
1924 | //printf("Read RTC Status\n"); | |
1925 | 1838 | rdata[0] = 0x00; |
1926 | 1839 | rdata[1] = 0x10; |
1927 | 1840 | rdata[2] = 0x00; |
r241781 | r241782 | |
1933 | 1846 | switch(sdata[1]) |
1934 | 1847 | { |
1935 | 1848 | case 0: |
1936 | //printf("Read RTC Block Header\n"); | |
1937 | 1849 | rdata[0] = 0x00; |
1938 | 1850 | rdata[1] = 0x02; |
1939 | 1851 | rdata[8] = 0x00; |
r241781 | r241782 | |
1954 | 1866 | rdata[6] = convert_to_bcd(systime.local_time.year % 100); // Year |
1955 | 1867 | rdata[7] = convert_to_bcd(systime.local_time.year / 100); // Century |
1956 | 1868 | rdata[8] = 0x00; |
1957 | //printf("Read RTC Time\n"); | |
1958 | 1869 | return 0; |
1959 | 1870 | } |
1960 | 1871 | return 1; |
r241781 | r241782 | |
1982 | 1893 | while(cmd_ptr < 0x3f && !end) |
1983 | 1894 | { |
1984 | 1895 | INT8 bytes_to_send = (INT8)pif_cmd[cmd_ptr++]; |
1985 | //printf("bytes to send: 0x%02x\n", bytes_to_send); | |
1986 | 1896 | |
1987 | 1897 | if (bytes_to_send == -2) |
1988 | 1898 | { |
1989 | 1899 | end = 1; |
1990 | //printf("end\n"); | |
1991 | 1900 | } |
1992 | 1901 | else if (bytes_to_send < 0) |
1993 | 1902 | { |
1994 | //printf("do nothing\n"); | |
1995 | 1903 | // do nothing |
1996 | 1904 | } |
1997 | 1905 | else |
r241781 | r241782 | |
2002 | 1910 | UINT8 send_buffer[0x40]; |
2003 | 1911 | |
2004 | 1912 | INT8 bytes_to_recv = pif_cmd[cmd_ptr++]; |
2005 | //printf("bytes to receive: 0x%02x\n", bytes_to_recv); | |
2006 | 1913 | |
2007 | 1914 | if (bytes_to_recv == -2) |
2008 | 1915 | { |
r241781 | r241782 | |
2015 | 1922 | } |
2016 | 1923 | |
2017 | 1924 | int res = pif_channel_handle_command(channel, bytes_to_send, send_buffer, bytes_to_recv, recv_buffer); |
2018 | //printf("result: %d\n", res); | |
2019 | 1925 | |
2020 | 1926 | if (res == 0) |
2021 | 1927 | { |
2022 | //printf("cmd_ptr (%d) + bytes_to_recv (%d) = %d\n", cmd_ptr, bytes_to_recv, cmd_ptr + bytes_to_recv); | |
2023 | 1928 | if (cmd_ptr + bytes_to_recv > 0x3f) |
2024 | 1929 | { |
2025 | 1930 | fatalerror("cmd_ptr overflow\n"); |
r241781 | r241782 | |
2110 | 2015 | ret = si_status; |
2111 | 2016 | } |
2112 | 2017 | |
2113 | //printf("si_reg_r %08x = %08x\n", offset * 4, ret); fflush(stdout); | |
2114 | 2018 | return ret; |
2115 | 2019 | } |
2116 | 2020 | |
2117 | 2021 | WRITE32_MEMBER( n64_periphs::si_reg_w ) |
2118 | 2022 | { |
2119 | //printf("si_reg_w %08x %08x %08x\n", offset * 4, data, mem_mask); fflush(stdout); | |
2120 | 2023 | switch (offset) |
2121 | 2024 | { |
2122 | 2025 | case 0x00/4: // SI_DRAM_ADDR_REG |
r241781 | r241782 | |
2396 | 2299 | return; |
2397 | 2300 | |
2398 | 2301 | device_image_interface *image = dynamic_cast<device_image_interface *>(periphs->m_nvram_image); |
2399 | ||
2302 | ||
2400 | 2303 | UINT8 data[0x30800]; |
2401 | 2304 | memcpy(data, n64_sram, 0x20000); |
2402 | 2305 | memcpy(data + 0x20000, periphs->m_save_data.eeprom, 0x800); |
r241781 | r241782 | |
---|---|---|
105 | 105 | const device_type NAOMI_M2_BOARD = &device_creator<naomi_m2_board>; |
106 | 106 | |
107 | 107 | naomi_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") | |
109 | 110 | { |
110 | 111 | key_tag = 0; |
111 | 112 | } |
r241781 | r241782 | |
120 | 121 | { |
121 | 122 | naomi_board::device_start(); |
122 | 123 | |
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 | |
129 | 124 | 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); | |
133 | 125 | |
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); | |
138 | 126 | 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); | |
147 | 128 | } |
148 | 129 | |
149 | 130 | void naomi_m2_board::device_reset() |
r241781 | r241782 | |
151 | 132 | naomi_board::device_reset(); |
152 | 133 | |
153 | 134 | 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); | |
157 | 135 | |
158 | 136 | rom_cur_address = 0; |
159 | prot_cur_address = 0; | |
160 | subkey = 0; | |
161 | dec_hist = 0; | |
162 | dec_header = 0; | |
163 | enc_ready = false; | |
164 | 137 | |
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 | |
169 | 144 | } |
170 | 145 | |
171 | 146 | void naomi_m2_board::board_setup_address(UINT32 address, bool is_dma) |
r241781 | r241782 | |
175 | 150 | |
176 | 151 | void naomi_m2_board::board_get_buffer(UINT8 *&base, UINT32 &limit) |
177 | 152 | { |
153 | ||
178 | 154 | if(rom_cur_address & 0x40000000) { |
179 | 155 | 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); | |
193 | 157 | limit = 2; |
194 | 158 | |
195 | 159 | } else |
r241781 | r241782 | |
214 | 178 | |
215 | 179 | void naomi_m2_board::board_write(offs_t offset, UINT16 data) |
216 | 180 | { |
181 | ||
182 | ||
217 | 183 | if(offset & 0x40000000) { |
218 | 184 | if((offset & 0x0f000000) == 0x02000000) { |
219 | 185 | offset &= RAM_SIZE-1; |
r241781 | r241782 | |
222 | 188 | return; |
223 | 189 | } |
224 | 190 | 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; | |
228 | 195 | } |
229 | 196 | } |
230 | 197 | throw emu_fatalerror("NAOMIM2: unhandled board write %08x, %04x\n", offset, data); |
231 | 198 | } |
232 | 199 | |
233 | /*************************************************************************** | |
234 | DECRYPTION EMULATION | |
235 | ||
236 | By convention, we label the three known cart protection methods this way (using Deunan Knute's wording): | |
237 | M1: DMA read of protected ROM area | |
238 | M2: special read of ROM area which supplies decryption key first | |
239 | M3: normal read followed by write to cart's decryption buffer (up to 64kB), followed by M2 but from buffer area | |
240 | ||
241 | Notes below refer to M2 & M3. | |
242 | ||
243 | The encryption is done by a stream cipher operating in counter mode, which use a 16-bits internal block cipher. | |
244 | ||
245 | There are 2 "control bits" at the start of the decrypted stream which control the mode of operation: bit #1 set to 1 means | |
246 | that the decrypted stream needs to be decompressed after being decrypted. More on this later. | |
247 | ||
248 | The next 16-bits are part of the header (they don't belong to the plaintext), but his meaning is unclear. It has been | |
249 | conjectured that it could stablish when to "reset" the process and start processing a new stream (based on some tests | |
250 | on WWFROYAL, in which the decryption's output doesn't seem to be valid for more than some dozens of words), but some | |
251 | more testing would be needed for clarifying that. | |
252 | ||
253 | After those 18 heading bits, we find the proper plaintext. It must be noted that, due to the initial 2 special bits, | |
254 | the 16-bits words of the plaintext are shifted 2 bits respect to the word-boundaries of the output stream of the | |
255 | internal block-cipher. So, at a given step, the internal block cipher will output 16-bits, 14 of which will go to a | |
256 | given plaintext word, and the remaining 2 to the next plaintext word. | |
257 | ||
258 | The underlying block cipher consists of two 4-round Feistel Networks (FN): the first one takes the counter (16 bits), | |
259 | the game-key (>=26 bits) and the sequence-key (16 bits) and output a middle result (16 bits) which will act as another key | |
260 | for the second one. The second FN will take the encrypted word (16 bits), the game-key, the sequence-key and the result | |
261 | from the first FN and will output the decrypted word (16 bits). | |
262 | ||
263 | Each round of the Feistel Networks use four substitution sboxes, each having 6 inputs and 2 outputs. The input can be the | |
264 | XOR of at most two "sources bits", being source bits the bits from the previous round and the bits from the different keys. | |
265 | ||
266 | The underlying block cipher has the same structure than the one used by the CPS-2 (Capcom Play System 2) and, | |
267 | indeed, some of the used sboxes are exactly the same and appear in the same FN/round in both systems (this is not evident, | |
268 | as you need to apply a bitswapping and some XORs to the input & output of the sboxes to get the same values due). However, | |
269 | the key scheduling used by this implementation is much weaker than the CPS-2's one. Many s-boxes inputs aren't XORed with any | |
270 | key bit. | |
271 | ||
272 | Due to the small key-length, no sophisticated attacks are needed to recover the keys; a brute-force attack knowing just | |
273 | some (encrypted word-decrypted word) pairs suffice. However, due to the weak key scheduling, it should be noted that some | |
274 | related keys can produce the same output bytes for some (short) input sequences. | |
275 | ||
276 | The only difference in the decryption process between M2 and M3 is the initialization of the counter. In M3, the counter is | |
277 | always set to 0 at the beginning of the decryption while, in M2, the bits #1-#16 of the ciphertext's address are used | |
278 | to initialize the counter. | |
279 | ||
280 | Note that this implementation considers that the counter initialization for ram decryption is 0 simply because the ram is | |
281 | mapped to multiples of 128K. | |
282 | ||
283 | Due to the nature of the cipher, there are some degrees of freedom when choosing the s-boxes and keys values; by example, | |
284 | you could apply a fixed bitswapping and XOR to the keys and the decryption would remain the same as long as you change | |
285 | accordingly the s-boxes' definitions. So the order of the bits in the keys is arbitrary, and the s-boxes values have been | |
286 | chosen so as to make the key for CAPSNK equal to 0. | |
287 | ||
288 | It can be observed that a couple of sboxes have incomplete tables (a 255 value indicate an unknown value). The recovered keys | |
289 | as of december/2010 show small randomness and big correlations, making possible that some unseen bits could make the | |
290 | decryption need those incomplete parts. | |
291 | ||
292 | ****************************************************************************************/ | |
293 | ||
294 | const 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 | ||
447 | const 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 | ||
599 | const 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 | ||
607 | const 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 | ||
615 | const 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 | ||
621 | const 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 | ||
623 | const 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 | ||
625 | int naomi_m2_board::feistel_function(int input, const struct sbox *sboxes, UINT32 subkeys) | |
200 | UINT16 naomi_m2_board::read_callback(UINT32 addr) | |
626 | 201 | { |
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); | |
630 | 205 | |
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; | |
642 | 206 | } |
643 | ||
644 | return result; | |
645 | } | |
646 | ||
647 | /************************** | |
648 | This implementation is an "educational" version. It must be noted that it can be speed-optimized in a number of ways. | |
649 | The most evident one is to factor out the parts of the key-scheduling that must only be done once (like the game-key & | |
650 | sequence-key parts) as noted in the comments inlined in the function. More sophisticated speed-ups can be gained by | |
651 | noticing that the weak key-scheduling would allow to create some pregenerated look-up tables for doing most of the work | |
652 | of the function. Even so, it would still be pretty slow, so caching techniques could be a wiser option here. | |
653 | **************************/ | |
654 | ||
655 | UINT16 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); | |
674 | 210 | } |
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; | |
759 | 211 | } |
760 | 212 | |
761 | UINT16 naomi_m2_board::get_decrypted_16() | |
762 | { | |
763 | UINT16 enc; | |
213 | static MACHINE_CONFIG_FRAGMENT( naomim2 ) | |
214 | MCFG_DEVICE_ADD("segam2crypt", SEGA315_5881_CRYPT, 0) | |
215 | MCFG_SET_READ_CALLBACK(naomi_m2_board, read_callback) | |
216 | MACHINE_CONFIG_END | |
764 | 217 | |
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 | ||
781 | void naomi_m2_board::enc_start() | |
218 | machine_config_constructor naomi_m2_board::device_mconfig_additions() const | |
782 | 219 | { |
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 ); | |
793 | 221 | } |
794 | 222 | |
795 | void 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 | |
807 | 0xxxxxxx - next node index | |
808 | 1a0bbccc - 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 | |
819 | 11111111 - empty node | |
820 | */ | |
821 | const 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 | ||
878 | int 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 | ||
891 | void 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 | } |
r241781 | r241782 | |
---|---|---|
2 | 2 | #define _NAOMIM2_H_ |
3 | 3 | |
4 | 4 | #include "naomibd.h" |
5 | #include "315-5881_crypt.h" | |
5 | 6 | |
6 | 7 | #define MCFG_NAOMI_M2_BOARD_ADD(_tag, _key_tag, _eeprom_tag, _actel_tag, _irq_cb) \ |
7 | 8 | MCFG_NAOMI_BOARD_ADD(_tag, NAOMI_M2_BOARD, _eeprom_tag, _actel_tag, _irq_cb) \ |
r241781 | r241782 | |
11 | 12 | { |
12 | 13 | public: |
13 | 14 | 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; | |
14 | 18 | |
15 | 19 | static void static_set_tags(device_t &device, const char *_key_tag); |
20 | UINT16 read_callback(UINT32 addr); | |
16 | 21 | |
17 | 22 | protected: |
18 | 23 | virtual void device_start(); |
19 | 24 | virtual void device_reset(); |
25 | virtual machine_config_constructor device_mconfig_additions() const; | |
20 | 26 | |
21 | 27 | virtual void board_setup_address(UINT32 address, bool is_dma); |
22 | 28 | virtual void board_get_buffer(UINT8 *&base, UINT32 &limit); |
r241781 | r241782 | |
24 | 30 | virtual void board_write(offs_t offset, UINT16 data); |
25 | 31 | |
26 | 32 | private: |
27 | enum { | |
28 | RAM_SIZE = 65536, BUFFER_SIZE = 32768, LINE_SIZE = 512, | |
29 | FLAG_COMPRESSED = 0x10000, FLAG_LINE_SIZE_512 = 0x20000 | |
30 | }; | |
31 | 33 | |
34 | ||
32 | 35 | const char *key_tag; |
33 | UINT32 key; | |
34 | 36 | |
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; | |
69 | 39 | }; |
70 | 40 | |
71 | 41 | extern const device_type NAOMI_M2_BOARD; |
r241781 | r241782 | |
---|---|---|
202 | 202 | mem16[0x130366 / 2] = 0x4e93; |
203 | 203 | mem16[0x1303f6 / 2] = 0x4e93; |
204 | 204 | } |
205 | ||
206 | DRIVER_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 | } |
r0 | r241782 | |
---|---|---|
1 | #include "segabb.h" | |
2 | ||
3 | const device_type SEGA_LINDBERGH_BASEBOARD = &device_creator<sega_lindbergh_baseboard_device>; | |
4 | ||
5 | DEVICE_ADDRESS_MAP_START(map1, 32, sega_lindbergh_baseboard_device) | |
6 | ADDRESS_MAP_END | |
7 | ||
8 | DEVICE_ADDRESS_MAP_START(map2, 32, sega_lindbergh_baseboard_device) | |
9 | ADDRESS_MAP_END | |
10 | ||
11 | DEVICE_ADDRESS_MAP_START(map3, 32, sega_lindbergh_baseboard_device) | |
12 | ADDRESS_MAP_END | |
13 | ||
14 | sega_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 | ||
19 | void 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 | ||
27 | void sega_lindbergh_baseboard_device::device_reset() | |
28 | { | |
29 | pci_device::device_reset(); | |
30 | } |
r0 | r241782 | |
---|---|---|
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 | ||
11 | class sega_lindbergh_baseboard_device : public pci_device { | |
12 | public: | |
13 | sega_lindbergh_baseboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); | |
14 | ||
15 | protected: | |
16 | virtual void device_start(); | |
17 | virtual void device_reset(); | |
18 | ||
19 | private: | |
20 | DECLARE_ADDRESS_MAP(map1, 32); | |
21 | DECLARE_ADDRESS_MAP(map2, 32); | |
22 | DECLARE_ADDRESS_MAP(map3, 32); | |
23 | }; | |
24 | ||
25 | extern const device_type SEGA_LINDBERGH_BASEBOARD; | |
26 | ||
27 | #endif |
r241781 | r241782 | |
---|---|---|
180 | 180 | |
181 | 181 | *************************************************************************/ |
182 | 182 | |
183 | #include "emu.h" | |
184 | #include "cpu/m6800/m6800.h" | |
183 | ||
185 | 184 | #include "includes/slapstic.h" |
186 | #include "cpu/m68000/m68000.h" | |
187 | 185 | |
188 | 186 | |
189 | /************************************* | |
190 | * | |
191 | * Debugging | |
192 | * | |
193 | *************************************/ | |
187 | extern const device_type SLAPSTIC = &device_creator<atari_slapstic_device>; | |
194 | 188 | |
195 | #define LOG_SLAPSTIC (0) | |
189 | atari_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 | } | |
196 | 233 | |
197 | 234 | |
198 | 235 | |
199 | /************************************* | |
200 | * | |
201 | * Structure of slapstic params | |
202 | * | |
203 | *************************************/ | |
204 | ||
205 | struct mask_value | |
236 | void atari_slapstic_device::device_start() | |
206 | 237 | { |
207 | int mask, value; | |
208 | }; | |
209 | 238 | |
239 | } | |
210 | 240 | |
211 | ||
241 | void atari_slapstic_device::device_reset() | |
212 | 242 | { |
213 | int bankstart; | |
214 | int bank[4]; | |
215 | 243 | |
216 | struct mask_value alt1; | |
217 | struct mask_value alt2; | |
218 | struct mask_value alt3; | |
219 | struct mask_value alt4; | |
220 | int altshift; | |
244 | } | |
221 | 245 | |
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 | ||
238 | 246 | /************************************* |
239 | 247 | * |
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 | ||
269 | enum | |
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 | * | |
288 | 248 | * Slapstic definitions |
289 | 249 | * |
290 | 250 | *************************************/ |
r241781 | r241782 | |
779 | 739 | |
780 | 740 | |
781 | 741 | |
782 | /************************************* | |
783 | * | |
784 | * Statics | |
785 | * | |
786 | *************************************/ | |
787 | 742 | |
788 | static UINT8 state; | |
789 | static UINT8 current_bank; | |
790 | static UINT8 access_68k; | |
791 | ||
792 | static UINT8 alt_bank; | |
793 | static UINT8 bit_bank; | |
794 | static UINT8 add_bank; | |
795 | static UINT8 bit_xor; | |
796 | ||
797 | static struct slapstic_data slapstic; | |
798 | ||
799 | ||
800 | static void slapstic_log(running_machine &machine, offs_t offset); | |
801 | static FILE *slapsticlog; | |
802 | ||
803 | ||
804 | 743 | /************************************* |
805 | 744 | * |
806 | 745 | * Initialization |
807 | 746 | * |
808 | 747 | *************************************/ |
809 | 748 | |
810 | void slapstic_init(running_machine &machine, int chip) | |
749 | void atari_slapstic_device::slapstic_init(running_machine &machine, int chip) | |
811 | 750 | { |
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 | } | |
813 | 757 | |
814 | 758 | /* only a small number of chips are known to exist */ |
815 | 759 | if (chip < 101 || chip > 118) |
r241781 | r241782 | |
823 | 767 | /* reset the chip */ |
824 | 768 | slapstic_reset(); |
825 | 769 | |
826 | /* see if we're 68k or 6502/6809 based */ | |
827 | access_68k = (cputype == M68000 || cputype == M68010); | |
828 | 770 | |
829 | 771 | /* 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)); | |
836 | 778 | } |
837 | 779 | |
838 | 780 | |
839 | void slapstic_reset(void) | |
781 | void atari_slapstic_device::slapstic_reset(void) | |
840 | 782 | { |
841 | 783 | /* reset the chip */ |
842 | 784 | state = DISABLED; |
r241781 | r241782 | |
853 | 795 | * |
854 | 796 | *************************************/ |
855 | 797 | |
856 | int slapstic_bank(void) | |
798 | int atari_slapstic_device::slapstic_bank(void) | |
857 | 799 | { |
858 | 800 | return current_bank; |
859 | 801 | } |
r241781 | r241782 | |
866 | 808 | * |
867 | 809 | *************************************/ |
868 | 810 | |
869 | ||
811 | int atari_slapstic_device::alt2_kludge(address_space &space, offs_t offset) | |
870 | 812 | { |
871 | 813 | /* Of the 3 alternate addresses, only the middle one needs to actually hit |
872 | 814 | in the slapstic region; the first and third ones can be anywhere in the |
r241781 | r241782 | |
913 | 855 | * |
914 | 856 | *************************************/ |
915 | 857 | |
916 | int slapstic_tweak(address_space &space, offs_t offset) | |
858 | int atari_slapstic_device::slapstic_tweak(address_space &space, offs_t offset) | |
917 | 859 | { |
918 | 860 | /* reset is universal */ |
919 | 861 | if (offset == 0x0000) |
r241781 | r241782 | |
1137 | 1079 | * |
1138 | 1080 | *************************************/ |
1139 | 1081 | |
1140 | ||
1082 | void atari_slapstic_device::slapstic_log(running_machine &machine, offs_t offset) | |
1141 | 1083 | { |
1142 | 1084 | static attotime last_time; |
1143 | 1085 |
r241781 | r241782 | |
---|---|---|
572 | 572 | * |
573 | 573 | *************************************/ |
574 | 574 | |
575 | // the naomi hookup of 315-5881 reads 16-bits at a time, here we seem to read 32? | |
576 | ||
575 | 577 | READ32_MEMBER( stv_state::common_prot_r ) |
576 | 578 | { |
577 | 579 | UINT32 *ROM = (UINT32 *)space.machine().root_device().memregion("abus")->base(); |
r241781 | r241782 | |
588 | 590 | |
589 | 591 | 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); |
590 | 592 | |
593 | //UINT16 res = m_cryptdevice->do_decrypt(base); | |
594 | ||
591 | 595 | m_ctrl_index += 4; |
592 | 596 | return retdata; |
593 | 597 | |
r241781 | r241782 | |
602 | 606 | } |
603 | 607 | |
604 | 608 | |
609 | UINT16 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 | } | |
605 | 614 | |
606 | ||
607 | 615 | WRITE32_MEMBER ( stv_state::common_prot_w ) |
608 | 616 | { |
609 | 617 | COMBINE_DATA(&m_a_bus[offset]); |
r241781 | r241782 | |
616 | 624 | else if(offset == 2) |
617 | 625 | { |
618 | 626 | 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 | ||
619 | 631 | } |
620 | 632 | else if(offset == 3) |
621 | 633 | { |
622 | 634 | COMBINE_DATA(&m_abus_protkey); |
635 | ||
636 | m_cryptdevice->set_subkey(m_abus_protkey>>16); | |
637 | ||
638 | ||
623 | 639 | int a_bus_vector; |
624 | 640 | a_bus_vector = m_abus_prot_addr >> 16; |
625 | 641 | a_bus_vector|= (m_abus_prot_addr & 0xffff) << 16; |
r241781 | r241782 | |
655 | 671 | { |
656 | 672 | install_common_protection(); |
657 | 673 | m_prot_readback = astrass_prot_read_callback; |
674 | // m_cryptdevice->set_key(0x00000000); | |
658 | 675 | } |
659 | 676 | |
660 | 677 | void stv_state::install_ffreveng_protection() |
r241781 | r241782 | |
---|---|---|
1798 | 1798 | youjyudn // (c) 1986 (Japan) |
1799 | 1799 | |
1800 | 1800 | vigilant // (c) 1988 (World) |
1801 | vigilantb // (c) 1988 (World) | |
1801 | 1802 | vigilant1 // (c) 1988 (World) |
1802 | 1803 | vigilantu // (c) 1988 (US) |
1803 | 1804 | vigilantu2 // (c) 1988 (US) |
r241781 | r241782 | |
2746 | 2747 | batriderja // (c) 1998 Raizing/8ing |
2747 | 2748 | batridert // (c) 1998 Raizing/8ing |
2748 | 2749 | bbakraid // (c) 1999 8ing |
2750 | bbakraidc // (c) 1999 8ing | |
2749 | 2751 | bbakraidj // (c) 1999 8ing |
2750 | 2752 | bbakraidja // (c) 1999 8ing |
2751 | 2753 | |
r241781 | r241782 | |
4688 | 4690 | desertbr // 1993.?? Desert Breaker (World, FD1094, decrypted) |
4689 | 4691 | desertbrj // 1992.10 Desert Breaker (Japan) |
4690 | 4692 | pontoon |
4693 | hamaway | |
4691 | 4694 | |
4692 | 4695 | // System18 Bootlegs |
4693 | 4696 | astormbl // BOOTLEG |
r241781 | r241782 | |
9372 | 9375 | rocktris // (c) 1994? Yun Sung |
9373 | 9376 | magicbub // (c) Yun Sung |
9374 | 9377 | magicbuba // (c) Yun Sung |
9378 | magicbubb // (c) Yun Sung | |
9375 | 9379 | shocking // (c) 1997 Yun Sung |
9376 | 9380 | shockingk // (c) 1997 Yun Sung |
9377 | 9381 | bombkick // (c) 1998 Yun Sung |
r241781 | r241782 | |
9728 | 9732 | dw2v100x // |
9729 | 9733 | drgw2c // |
9730 | 9734 | drgw2j // |
9735 | drgw2hk // | |
9731 | 9736 | drgw3 // (c) 1998 Dragon World 3 |
9732 | 9737 | drgw3105 // |
9733 | 9738 | drgw3100 // |
r241781 | r241782 | |
9828 | 9833 | // IGS PGM2 Platform |
9829 | 9834 | orleg2 // (c) 2007 |
9830 | 9835 | orleg2o // |
9836 | orleg2oa // | |
9831 | 9837 | kov2nl // (c) 2008 |
9832 | 9838 | kov2nlo // |
9839 | kov2nloa // | |
9833 | 9840 | ddpdojh // |
9834 | 9841 | kov3 // |
9835 | 9842 | |
r241781 | r241782 | |
10977 | 10984 | peset001 // (c) 1987 IGT - International Game Technology |
10978 | 10985 | peset004 // (c) 1987 IGT - International Game Technology |
10979 | 10986 | peset038 // (c) 1987 IGT - International Game Technology |
10987 | peivc006 // (c) 1987 IGT - International Game Technology | |
10980 | 10988 | pepk1024 // (c) 1987 IGT - International Game Technology |
10981 | 10989 | pepp0002 // (c) 1987 IGT - International Game Technology |
10982 | 10990 | pepp0002a // (c) 1987 IGT - International Game Technology |
r241781 | r241782 | |
---|---|---|
271 | 271 | SOUNDS += MOS7360 |
272 | 272 | #SOUNDS += ESQPUMP |
273 | 273 | #SOUNDS += VRC6 |
274 | SOUNDS += SB0400 | |
275 | SOUNDS += AC97 | |
274 | 276 | |
275 | 277 | #------------------------------------------------- |
276 | 278 | # specify available video cores |
r241781 | r241782 | |
290 | 292 | #VIDEOS += EF9340_1 |
291 | 293 | #VIDEOS += EF9345 |
292 | 294 | #VIDEOS += GF4500 |
295 | VIDEOS += GF6800GT | |
293 | 296 | VIDEOS += EPIC12 |
294 | 297 | VIDEOS += FIXFREQ |
295 | 298 | VIDEOS += H63484 |
r241781 | r241782 | |
436 | 439 | MACHINES += LDVP931 |
437 | 440 | #MACHINES += LH5810 |
438 | 441 | MACHINES += LINFLASH |
442 | MACHINES += LPCI | |
439 | 443 | #MACHINES += LSI53C810 |
440 | 444 | #MACHINES += M68307 |
441 | 445 | #MACHINES += M68340 |
r241781 | r241782 | |
578 | 582 | #BUSES += ADAMNET |
579 | 583 | #BUSES += APF |
580 | 584 | #BUSES += ARCADIA |
585 | #BUSES += ASTROCADE | |
581 | 586 | #BUSES += BML3 |
582 | 587 | #BUSES += BW2 |
583 | 588 | #BUSES += C64 |
r241781 | r241782 | |
606 | 611 | BUSES += ISA |
607 | 612 | #BUSES += ISBX |
608 | 613 | #BUSES += KC |
614 | #BUSES += LPCI | |
609 | 615 | #BUSES += MACPDS |
610 | 616 | #BUSES += MIDI |
611 | 617 | #BUSES += MEGADRIVE |
r241781 | r241782 | |
616 | 622 | #BUSES += O2 |
617 | 623 | #BUSES += ORICEXT |
618 | 624 | #BUSES += PCE |
619 | #BUSES += PCI | |
620 | 625 | #BUSES += PC_JOY |
621 | 626 | #BUSES += PC_KBD |
622 | 627 | #BUSES += PET |
623 | 628 | #BUSES += PLUS4 |
629 | #BUSES += PSX_CONTROLLER | |
624 | 630 | #BUSES += QL |
625 | 631 | BUSES += RS232 |
626 | 632 | #BUSES += S100 |
r241781 | r241782 | |
631 | 637 | #BUSES += SMS_CTRL |
632 | 638 | #BUSES += SMS_EXP |
633 | 639 | #BUSES += SNES |
640 | #BUSES += SPC1000 | |
634 | 641 | #BUSES += TI99PEB |
635 | 642 | #BUSES += TVC |
636 | 643 | #BUSES += VBOY |
r241781 | r241782 | |
1694 | 1701 | $(DRIVERS)/hikaru.o \ |
1695 | 1702 | $(DRIVERS)/hshavoc.o \ |
1696 | 1703 | $(DRIVERS)/kopunch.o $(VIDEO)/kopunch.o \ |
1697 | $(DRIVERS)/lindbergh.o \ | |
1704 | $(DRIVERS)/lindbergh.o $(MACHINE)/segabb.o \ | |
1698 | 1705 | $(MACHINE)/megadriv.o \ |
1699 | 1706 | $(DRIVERS)/megadrvb.o \ |
1700 | 1707 | $(DRIVERS)/megaplay.o \ |
r241781 | r241782 | |
1707 | 1714 | $(DRIVERS)/naomi.o $(MACHINE)/dc.o $(VIDEO)/powervr2.o $(MACHINE)/naomi.o \ |
1708 | 1715 | $(MACHINE)/naomig1.o $(MACHINE)/naomibd.o $(MACHINE)/naomirom.o $(MACHINE)/naomigd.o \ |
1709 | 1716 | $(MACHINE)/naomicrypt.o $(MACHINE)/naomim1.o $(MACHINE)/naomim2.o $(MACHINE)/naomim4.o \ |
1717 | $(MACHINE)/315-5881_crypt.o \ | |
1710 | 1718 | $(MACHINE)/awboard.o \ |
1711 | 1719 | $(MACHINE)/mie.o $(MACHINE)/maple-dc.o $(MACHINE)/mapledev.o $(MACHINE)/dc-ctrl.o $(MACHINE)/jvs13551.o \ |
1712 | 1720 | $(DRIVERS)/triforce.o \ |
r241781 | r241782 | |
2650 | 2658 | |
2651 | 2659 | $(DRIVERS)/grchamp.o: $(LAYOUT)/grchamp.lh |
2652 | 2660 | |
2661 | $(DRIVERS)/harddriv.o: $(LAYOUT)/racedrivpan.lh | |
2662 | ||
2653 | 2663 | $(DRIVERS)/highvdeo.o: $(LAYOUT)/fashion.lh |
2654 | 2664 | |
2655 | 2665 | $(DRIVERS)/hankin.o: $(LAYOUT)/hankin.lh |
r241781 | r241782 | |
---|---|---|
208 | 208 | READ16_MEMBER( atarisy2_state::slapstic_r ) |
209 | 209 | { |
210 | 210 | int result = m_slapstic_base[offset]; |
211 | slapstic_tweak(space, offset); | |
211 | m_slapstic->slapstic_tweak(space, offset); | |
212 | 212 | |
213 | 213 | /* 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; | |
215 | 215 | return result; |
216 | 216 | } |
217 | 217 | |
218 | 218 | |
219 | 219 | WRITE16_MEMBER( atarisy2_state::slapstic_w ) |
220 | 220 | { |
221 | slapstic_tweak(space, offset); | |
221 | m_slapstic->slapstic_tweak(space, offset); | |
222 | 222 | |
223 | 223 | /* 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; | |
225 | 225 | } |
226 | 226 | |
227 | 227 |
r241781 | r241782 | |
---|---|---|
30 | 30 | * |
31 | 31 | *************************************/ |
32 | 32 | |
33 | ||
33 | void harddriv_state::init_video() | |
34 | 34 | { |
35 | 35 | UINT32 *destmask, mask; |
36 | 36 | int i; |
r241781 | r241782 | |
161 | 161 | |
162 | 162 | void harddriv_state::update_palette_bank(int newbank) |
163 | 163 | { |
164 | m_screen->update_partial(m_screen->vpos()); | |
164 | screen_device &scr = m_gsp->screen(); | |
165 | ||
166 | scr.update_partial(scr.vpos()); | |
165 | 167 | m_gfx_palettebank = newbank; |
166 | 168 | } |
167 | 169 | |
r241781 | r241782 | |
214 | 216 | |
215 | 217 | COMBINE_DATA(&m_gsp_control_hi[offset]); |
216 | 218 | newword = m_gsp_control_hi[offset]; |
219 | screen_device &scr = m_gsp->screen(); | |
217 | 220 | |
218 | 221 | switch (offset & 7) |
219 | 222 | { |
r241781 | r241782 | |
223 | 226 | |
224 | 227 | case 0x01: |
225 | 228 | data = data & (15 >> m_gsp_multisync); |
226 | | |
229 | scr.update_partial(scr.vpos() - 1); | |
227 | 230 | m_gfx_finescroll = data; |
228 | 231 | break; |
229 | 232 | |
r241781 | r241782 | |
407 | 410 | TMS340X0_SCANLINE_IND16_CB_MEMBER(harddriv_state::scanline_driver) |
408 | 411 | { |
409 | 412 | UINT8 *vram_base = &m_gsp_vram[(params->rowaddr << 12) & m_vram_mask]; |
413 | ||
414 | if (!vram_base) return; | |
415 | ||
410 | 416 | UINT16 *dest = &bitmap.pix16(scanline); |
411 | 417 | int coladdr = (params->yoffset << 9) + ((params->coladdr & 0xff) << 4) - 15 + (m_gfx_finescroll & 0x0f); |
412 | 418 | int x; |
r241781 | r241782 | |
422 | 428 | TMS340X0_SCANLINE_IND16_CB_MEMBER(harddriv_state::scanline_multisync) |
423 | 429 | { |
424 | 430 | UINT8 *vram_base = &m_gsp_vram[(params->rowaddr << 11) & m_vram_mask]; |
431 | ||
432 | if (!vram_base) return; | |
433 | ||
425 | 434 | UINT16 *dest = &bitmap.pix16(scanline); |
426 | 435 | int coladdr = (params->yoffset << 9) + ((params->coladdr & 0xff) << 3) - 7 + (m_gfx_finescroll & 0x07); |
427 | 436 | int x; |
r241781 | r241782 | |
---|---|---|
7 | 7 | a single 64x32 one, or one of them can be moved to the side of screen, giving |
8 | 8 | a high score display suitable for vertical games. |
9 | 9 | The chip also generates clock and interrupt signals suitable for a 6809. |
10 | It uses 0x2000 bytes of RAM for the tilemaps and sprites, and an additional | |
11 | 0x100 bytes, maybe for scroll RAM and line buffers. The maximum addressable | |
10 | It uses 0x2000 bytes of static RAM for the tilemaps and sprite lists, and two | |
11 | 64kx4bit DRAMs, presumably as a double frame buffer. The maximum addressable | |
12 | 12 | ROM is 0x80000 bytes (addressed 16 bits at a time). Tile and sprite data both |
13 | come from the same ROM space. | |
13 | come from the same ROM space. Like the 005885, external circuitry can cause | |
14 | tiles and sprites to be fetched from different ROMs (used by Haunted Castle). | |
15 | ||
14 | 16 | Two 256x4 lookup PROMs are also used to increase the color combinations. |
15 | 17 | All tilemap / sprite priority handling is done internally and the chip exports |
16 | 18 | 7 bits of color code, composed of 2 bits of palette bank, 1 bit indicating tile |
r241781 | r241782 | |
27 | 29 | outputs: |
28 | 30 | - address lines for tilemap RAM (AX0-AX12) |
29 | 31 | - 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) | |
32 | 35 | - address lines for the gfx ROMs (R0-R17) |
33 | 36 | - address lines for the tile lookup PROMs (VCF0-VCF3, VCB0-VCB3) |
34 | 37 | - address lines for the sprite lookup PROMs (OCB0-OCB3, OCF0-OCF3) |
r241781 | r241782 | |
---|---|---|
211 | 211 | It manages sprites and 32x32 or 64x32 tilemap (only Double Dribble uses the |
212 | 212 | 64x32 one). |
213 | 213 | The chip also generates clock and interrupt signals suitable for a 6809. |
214 | It uses 0x2000 bytes of RAM for the tilemaps and sprites, and an additional | |
215 | 0x100 bytes, maybe for scroll RAM and line buffers. The maximum addressable | |
214 | It uses 0x2000 bytes of static RAM for the tilemaps and sprite lists, and two | |
215 | 64kx4bit DRAMs, presumably as a double frame buffer. The maximum addressable | |
216 | 216 | ROM is 0x20000 bytes (addressed 16 bits at a time). Tile and sprite data both |
217 | 217 | come from the same ROM space. Double Dribble and Jackal have external circuitry |
218 | 218 | to extend the limits and use separated addressing spaces for sprites and tiles. |
r241781 | r241782 | |
234 | 234 | outputs: |
235 | 235 | - address lines for tilemap RAM (AX0-AX12) |
236 | 236 | - 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) | |
239 | 240 | - address lines for the gfx ROMs (R0-R15) |
240 | 241 | - address lines for the tile lookup PROMs (VCF0-VCF3, VCB0-VCB3) |
241 | 242 | - address lines for the sprite lookup PROMs (OCB0-OCB3, OCF0-OCF3) |
r241781 | r241782 | |
---|---|---|
56 | 56 | #define MEM16_LIMIT 0x3fffff |
57 | 57 | #define MEM32_LIMIT 0x1fffff |
58 | 58 | |
59 | #define RDP_RANGE_CHECK ( | |
59 | #define RDP_RANGE_CHECK (1) | |
60 | 60 | |
61 | 61 | #if RDP_RANGE_CHECK |
62 | 62 | #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)); } |
r241781 | r241782 | |
---|---|---|
572 | 572 | { |
573 | 573 | if (x >= clipx1 && x < clipx2) |
574 | 574 | { |
575 | if (object.MiscState.FBSize < 2 || object.MiscState.FBSize > 4) | |
576 | fatalerror("unsupported FBSize %d\n", object.MiscState.FBSize); | |
575 | 577 | ((this)->*(_Fill[object.MiscState.FBSize - 2]))(fb_index + x, object); |
576 | 578 | } |
577 | 579 |
r241781 | r241782 | |
---|---|---|
595 | 595 | userdata->m_precomp_s = nexts; |
596 | 596 | userdata->m_precomp_t = nextt; |
597 | 597 | |
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 | ||
598 | 613 | int tempanded; |
599 | 614 | if (*sss & 0x40000) |
600 | 615 | { |
r241781 | r241782 | |
645 | 660 | *sst &= 0xffff; |
646 | 661 | } |
647 | 662 | } |
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 | } | |
648 | 695 | } |
649 | 696 | |
650 | 697 | void 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) |
r241781 | r241782 | |
761 | 808 | |
762 | 809 | if(object.OtherModes.sharpen_tex_en && magnify) |
763 | 810 | { |
764 | userdata->LODFraction | |
811 | userdata->LODFraction |= 0x100; | |
765 | 812 | } |
766 | 813 | |
767 | 814 | if (object.OtherModes.tex_lod_en) |
r241781 | r241782 | |
---|---|---|
4 | 4 | PALETTE_INIT_MEMBER(rockrage_state, rockrage) |
5 | 5 | { |
6 | 6 | const UINT8 *color_prom = memregion("proms")->base(); |
7 | int i; | |
8 | 7 | |
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++) | |
15 | 9 | { |
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); | |
23 | 14 | } |
24 | 15 | } |
25 | 16 | |
r241781 | r241782 | |
50 | 41 | { |
51 | 42 | *code |= ((*color & 0x40) << 2) | ((*color & 0x80) << 1) * ((m_vreg & 0x03) << 1); |
52 | 43 | *code = (*code << 2) | ((*color & 0x30) >> 4); |
53 | *color = 0; | |
44 | *color = 0 + (*color & 0x0f); | |
54 | 45 | } |
55 | 46 | |
56 | 47 |
r241781 | r241782 | |
---|---|---|
304 | 304 | { |
305 | 305 | int offs, offs2; |
306 | 306 | |
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); | |
309 | 308 | |
310 | if ( | |
309 | if (flip_screen()) | |
311 | 310 | offs = 1; |
312 | 311 | else |
313 | 312 | offs = -1; |
314 | 313 | |
315 | if ( | |
314 | if (flip_screen()) | |
316 | 315 | offs2 = -3; |
317 | 316 | else |
318 | 317 | offs2 = -5; |
r241781 | r241782 | |
326 | 325 | { |
327 | 326 | int offs, offs2; |
328 | 327 | |
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); | |
331 | 329 | |
332 | if ( | |
330 | if (flip_screen()) | |
333 | 331 | offs = 1; |
334 | 332 | else |
335 | 333 | offs = -1; |
336 | 334 | |
337 | if ( | |
335 | if (flip_screen()) | |
338 | 336 | offs2 = -3; |
339 | 337 | else |
340 | 338 | offs2 = -5; |
r241781 | r241782 | |
347 | 345 | { |
348 | 346 | int offs, offs2; |
349 | 347 | |
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); | |
352 | 349 | |
353 | if ( | |
350 | if (flip_screen()) | |
354 | 351 | offs = 1; |
355 | 352 | else |
356 | 353 | offs = -1; |
357 | 354 | |
358 | if ( | |
355 | if (flip_screen()) | |
359 | 356 | offs2 = -3; |
360 | 357 | else |
361 | 358 | offs2 = -5; |
r241781 | r241782 | |
368 | 365 | { |
369 | 366 | int offsx, offsy, offsx2; |
370 | 367 | |
371 | | |
368 | flip_screen_set(m_control_0[0] & 0x80); | |
372 | 369 | |
373 | 370 | offsx = -1; |
374 | 371 | offsy = 2; |
r241781 | r241782 | |
383 | 380 | { |
384 | 381 | int offs, offs2; |
385 | 382 | |
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); | |
388 | 384 | |
389 | 385 | /* not sure of this */ |
390 | if ( | |
386 | if (flip_screen()) | |
391 | 387 | offs = 1; |
392 | 388 | else |
393 | 389 | offs = 8; |
394 | 390 | |
395 | 391 | /* not sure of this */ |
396 | if ( | |
392 | if (flip_screen()) | |
397 | 393 | offs2 = -3; |
398 | 394 | else |
399 | 395 | offs2 = 8; |
r241781 | r241782 | |
406 | 402 | { |
407 | 403 | int offs, offs2; |
408 | 404 | |
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 | ||
411 | 407 | offs = -1; |
412 | 408 | offs2 = -2; |
413 | 409 | |
r241781 | r241782 | |
420 | 416 | { |
421 | 417 | int offs, offs2; |
422 | 418 | |
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 | ||
425 | 421 | offs = -1; |
426 | 422 | offs2 = -5; // foreground scroll.. |
427 | 423 | |
r241781 | r241782 | |
435 | 431 | { |
436 | 432 | int offs, offs2; |
437 | 433 | |
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); | |
440 | 435 | |
441 | if ( | |
436 | if (flip_screen()) | |
442 | 437 | offs = 1; |
443 | 438 | else |
444 | 439 | offs = -1; |
445 | 440 | |
446 | if ( | |
441 | if (flip_screen()) | |
447 | 442 | offs2 = -3; |
448 | 443 | else |
449 | 444 | offs2 = -5; |
r241781 | r241782 | |
457 | 452 | { |
458 | 453 | int offs, offs2; |
459 | 454 | |
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); | |
462 | 456 | |
463 | if ( | |
457 | if (flip_screen()) | |
464 | 458 | offs = 1; |
465 | 459 | else |
466 | 460 | offs = -1; |
467 | 461 | |
468 | if ( | |
462 | if (flip_screen()) | |
469 | 463 | offs2 = -3; |
470 | 464 | else |
471 | 465 | offs2 = -5; |
r241781 | r241782 | |
---|---|---|
490 | 490 | 0 1 VRAM1 |
491 | 491 | 1 0 Object |
492 | 492 | 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 | |
493 | 506 | */ |
494 | 507 | screen.priority().fill(0, cliprect); |
495 | 508 |
r241781 | r241782 | |
---|---|---|
1438 | 1438 | ***************************************************************************/ |
1439 | 1439 | |
1440 | 1440 | void 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) | |
1443 | 1442 | { |
1444 | 1443 | /* Counter Q10-7 are added to 384 */ |
1445 | 1444 | UINT16 ls283_159 = (ls161 & 0x780) + 128 + (256 * screen); |
r241781 | r241782 | |
1449 | 1448 | UINT8 d0 = 0; |
1450 | 1449 | UINT8 d1 = 0; |
1451 | 1450 | |
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 | ||
1452 | 1457 | /* Latch road reverse bit */ |
1453 | 1458 | *_rorev = !( (rom_en && rom_flip) || (!rom_en && (ls161 & 0x4000)) ); |
1454 | 1459 | |
r241781 | r241782 | |
1539 | 1544 | |
1540 | 1545 | /* ROM/PROM lookup tables */ |
1541 | 1546 | 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; | |
1547 | 1548 | |
1548 | 1549 | /* Extract constant values */ |
1549 | 1550 | tcmd = ((vregs.scol & 0xc000) >> 12) | ((vregs.scol & 0x00c0) >> 6); |
r241781 | r241782 | |
1667 | 1668 | /* Have we crossed a road gfx strip boundary? */ |
1668 | 1669 | if (ls161 & 7) |
1669 | 1670 | { |
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]); | |
1673 | 1674 | } |
1674 | 1675 | |
1675 | 1676 | /* We can evaluate some of the pixel logic outside of the x-loop */ |
r241781 | r241782 | |
1749 | 1750 | /* Load in a new road gfx strip? */ |
1750 | 1751 | if (!(ls161 & 7)) |
1751 | 1752 | { |
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]); | |
1755 | 1756 | } |
1756 | 1757 | |
1757 | 1758 | /* Road camber/banking */ |
r241781 | r241782 | |
2170 | 2171 | |
2171 | 2172 | /* ROM/PROM lookup tables */ |
2172 | 2173 | 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; | |
2178 | 2175 | |
2179 | 2176 | /* Extract constant values */ |
2180 | 2177 | tcmd = ((vregs.scol & 0xc000) >> 12) | ((vregs.scol & 0x00c0) >> 6); |
r241781 | r241782 | |
2296 | 2293 | |
2297 | 2294 | /* Have we crossed a road gfx strip boundary? */ |
2298 | 2295 | if (ls161 & 7) |
2299 | buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0, &rc1, &rc2, &rc3 | |
2296 | buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0, &rc1, &rc2, &rc3); | |
2300 | 2297 | |
2301 | 2298 | for (x = 0; x < 256; ++x) |
2302 | 2299 | { |
r241781 | r241782 | |
2331 | 2328 | |
2332 | 2329 | /* Load in a new road gfx strip? */ |
2333 | 2330 | if (!(ls161 & 7)) |
2334 | buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0, &rc1, &rc2, &rc3 | |
2331 | buggyboy_get_roadpix(1, ls161, rva0_6, sld, &_rorevcs, &rc0, &rc1, &rc2, &rc3); | |
2335 | 2332 | |
2336 | 2333 | /* Road camber */ |
2337 | 2334 | if (vregs.bank_mode == 0) |
r241781 | r241782 | |
---|---|---|
698 | 698 | MCFG_CASSETTE_ADD("cassette") |
699 | 699 | MCFG_CASSETTE_FORMATS(ace_cassette_formats) |
700 | 700 | MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED) |
701 | MCFG_CASSETTE_INTERFACE("jupace_cass") | |
701 | 702 | |
702 | 703 | MCFG_SNAPSHOT_ADD("snapshot", ace_state, ace, "ace", 1) |
703 | 704 | |
r241781 | r241782 | |
718 | 719 | MCFG_RAM_ADD(RAM_TAG) |
719 | 720 | MCFG_RAM_DEFAULT_SIZE("1K") |
720 | 721 | MCFG_RAM_EXTRA_OPTIONS("16K,32K,48K") |
722 | ||
723 | MCFG_SOFTWARE_LIST_ADD("cass_list", "jupace_cass") | |
721 | 724 | MACHINE_CONFIG_END |
722 | 725 | |
723 | 726 |
r241781 | r241782 | |
---|---|---|
864 | 864 | MCFG_MC6845_OUT_DE_CB(WRITELINE(amstrad_state, amstrad_de_changed)) |
865 | 865 | MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(amstrad_state, amstrad_hsync_changed)) |
866 | 866 | 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)) | |
867 | 868 | |
868 | 869 | MCFG_VIDEO_START_OVERRIDE(amstrad_state,amstrad) |
869 | 870 |
r241781 | r241782 | |
---|---|---|
12 | 12 | |
13 | 13 | /* Components */ |
14 | 14 | #include "video/pc_vga.h" |
15 | #include "bus/pci/cirrus.h" | |
15 | #include "bus/lpci/cirrus.h" | |
16 | 16 | #include "cpu/powerpc/ppc.h" |
17 | 17 | #include "sound/3812intf.h" |
18 | 18 | #include "machine/ins8250.h" |
19 | 19 | #include "machine/pic8259.h" |
20 | 20 | #include "machine/mc146818.h" |
21 | #include "bus/pci/pci.h" | |
21 | #include "bus/lpci/pci.h" | |
22 | 22 | #include "machine/am9517a.h" |
23 | 23 | #include "machine/pckeybrd.h" |
24 | 24 | #include "machine/idectrl.h" |
25 | #include "bus/pci/mpc105.h" | |
25 | #include "bus/lpci/mpc105.h" | |
26 | 26 | #include "machine/intelfsh.h" |
27 | 27 | #include "bus/scsi/scsi.h" |
28 | 28 | #include "machine/53c810.h" |
r241781 | r241782 | |
---|---|---|
545 | 545 | MCFG_CASSETTE_ADD( "cassette" ) |
546 | 546 | MCFG_CASSETTE_FORMATS(cgenie_cassette_formats) |
547 | 547 | MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED) |
548 | MCFG_CASSETTE_INTERFACE("cgenie_cass") | |
548 | 549 | |
549 | 550 | MCFG_DEVICE_ADD("wd179x", FD1793, 0) // TODO confirm type |
550 | 551 | MCFG_WD17XX_DEFAULT_DRIVE4_TAGS |
r241781 | r241782 | |
557 | 558 | MCFG_GENERIC_EXTENSIONS("bin,rom") |
558 | 559 | MCFG_GENERIC_LOAD(cgenie_state, cgenie_cart) |
559 | 560 | |
561 | /* software lists */ | |
560 | 562 | MCFG_SOFTWARE_LIST_ADD("cart_list", "cgenie_cart") |
563 | MCFG_SOFTWARE_LIST_ADD("cass_list", "cgenie_cass") | |
561 | 564 | |
562 | 565 | /* internal ram */ |
563 | 566 | MCFG_RAM_ADD(RAM_TAG) |
r241781 | r241782 | |
---|---|---|
224 | 224 | /* cassette */ |
225 | 225 | MCFG_CASSETTE_ADD( "cassette" ) |
226 | 226 | MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED) |
227 | MCFG_CASSETTE_INTERFACE("dai_cass") | |
227 | 228 | |
228 | 229 | /* tms5501 */ |
229 | 230 | MCFG_DEVICE_ADD("tms5501", TMS5501, 2000000) |
r241781 | r241782 | |
234 | 235 | /* internal ram */ |
235 | 236 | MCFG_RAM_ADD(RAM_TAG) |
236 | 237 | MCFG_RAM_DEFAULT_SIZE("48K") |
238 | ||
239 | /* software lists */ | |
240 | MCFG_SOFTWARE_LIST_ADD("cass_list", "dai_cass") | |
237 | 241 | MACHINE_CONFIG_END |
238 | 242 | |
239 | 243 | #define io_dai io_NULL |
r241781 | r241782 | |
---|---|---|
25 | 25 | #include "bus/dmv/k220.h" |
26 | 26 | #include "bus/dmv/k230.h" |
27 | 27 | #include "bus/dmv/k233.h" |
28 | #include "bus/dmv/k803.h" | |
28 | 29 | #include "bus/dmv/k806.h" |
29 | 30 | #include "bus/dmv/ram.h" |
30 | 31 | |
r241781 | r241782 | |
114 | 115 | DECLARE_READ8_MEMBER(exp_program_r); |
115 | 116 | DECLARE_WRITE8_MEMBER(exp_program_w); |
116 | 117 | 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 | ||
118 | 129 | DECLARE_FLOPPY_FORMATS( floppy_formats ); |
119 | 130 | |
120 | 131 | UINT8 program_read(address_space &space, int cas, offs_t offset); |
r241781 | r241782 | |
146 | 157 | int m_dack3_line; |
147 | 158 | int m_sd_poll_state; |
148 | 159 | int m_floppy_motor; |
160 | int m_busint[8]; | |
149 | 161 | }; |
150 | 162 | |
151 | 163 | WRITE8_MEMBER(dmv_state::tc_set_w) |
r241781 | r241782 | |
329 | 341 | |
330 | 342 | static SLOT_INTERFACE_START( dmv_floppies ) |
331 | 343 | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
344 | SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) | |
332 | 345 | SLOT_INTERFACE_END |
333 | 346 | |
334 | 347 | |
r241781 | r241782 | |
375 | 388 | } |
376 | 389 | } |
377 | 390 | |
378 | ||
391 | void dmv_state::update_busint(int slot, int state) | |
379 | 392 | { |
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); | |
382 | 406 | } |
383 | 407 | |
384 | 408 | void dmv_state::program_write(address_space &space, int cas, offs_t offset, UINT8 data) |
r241781 | r241782 | |
505 | 529 | m_switch16 = 0; |
506 | 530 | m_thold7 = 0; |
507 | 531 | m_dma_hrq = 0; |
532 | memset(m_busint, 0, sizeof(m_busint)); | |
508 | 533 | |
509 | 534 | update_halt_line(); |
510 | 535 | } |
r241781 | r241782 | |
606 | 631 | |
607 | 632 | static SLOT_INTERFACE_START(dmv_slot2_6) |
608 | 633 | SLOT_INTERFACE("k233", DMV_K233) // K233 16K Shared RAM |
634 | SLOT_INTERFACE("k803", DMV_K803) // K803 RTC module | |
609 | 635 | SLOT_INTERFACE("k806", DMV_K806) // K806 Mouse module |
610 | 636 | SLOT_INTERFACE_END |
611 | 637 | |
r241781 | r241782 | |
692 | 718 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot1, NULL, false) |
693 | 719 | MCFG_DEVICE_ADD("slot2", DMVCART_SLOT, 0) |
694 | 720 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false) |
721 | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint2_w)) | |
695 | 722 | MCFG_DEVICE_ADD("slot2a", DMVCART_SLOT, 0) |
696 | 723 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2a, NULL, false) |
724 | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint2a_w)) | |
697 | 725 | MCFG_DEVICE_ADD("slot3", DMVCART_SLOT, 0) |
698 | 726 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false) |
727 | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint3_w)) | |
699 | 728 | MCFG_DEVICE_ADD("slot4", DMVCART_SLOT, 0) |
700 | 729 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false) |
730 | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint4_w)) | |
701 | 731 | MCFG_DEVICE_ADD("slot5", DMVCART_SLOT, 0) |
702 | 732 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false) |
733 | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint5_w)) | |
703 | 734 | MCFG_DEVICE_ADD("slot6", DMVCART_SLOT, 0) |
704 | 735 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot2_6, NULL, false) |
736 | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint6_w)) | |
705 | 737 | |
706 | 738 | MCFG_DEVICE_ADD("slot7", DMVCART_SLOT, 0) |
707 | 739 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot7, NULL, false) |
708 | 740 | MCFG_DMVCART_SLOT_PROGRAM_READWRITE_CB(READ8(dmv_state, exp_program_r), WRITE8(dmv_state, exp_program_w)) |
709 | 741 | MCFG_DMVCART_SLOT_OUT_THOLD_CB(WRITELINE(dmv_state, thold7_w)) |
710 | MCFG_DMVCART_SLOT_OUT_I | |
742 | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint7_w)) | |
711 | 743 | MCFG_DEVICE_ADD("slot7a", DMVCART_SLOT, 0) |
712 | 744 | MCFG_DEVICE_SLOT_INTERFACE(dmv_slot7a, "k230", false) |
713 | 745 | MCFG_DMVCART_SLOT_PROGRAM_READWRITE_CB(READ8(dmv_state, exp_program_r), WRITE8(dmv_state, exp_program_w)) |
714 | 746 | MCFG_DMVCART_SLOT_OUT_THOLD_CB(WRITELINE(dmv_state, thold7_w)) |
715 | MCFG_DMVCART_SLOT_OUT_I | |
747 | MCFG_DMVCART_SLOT_OUT_INT_CB(WRITELINE(dmv_state, busint7a_w)) | |
716 | 748 | |
717 | 749 | MCFG_SOFTWARE_LIST_ADD("flop_list", "dmv") |
718 | 750 |
r0 | r241782 | |
---|---|---|
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 | ||
41 | ksm|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 | ||
90 | class ksm_state : public driver_device | |
91 | { | |
92 | public: | |
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 | ||
116 | private: | |
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 | ||
127 | protected: | |
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 | ||
138 | static 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") | |
143 | ADDRESS_MAP_END | |
144 | ||
145 | static 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) | |
153 | ADDRESS_MAP_END | |
154 | ||
155 | /* Input ports */ | |
156 | static 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") | |
195 | INPUT_PORTS_END | |
196 | ||
197 | void ksm_state::machine_reset() | |
198 | { | |
199 | memset(&m_video, 0, sizeof(m_video)); | |
200 | } | |
201 | ||
202 | void 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 | ||
210 | WRITE8_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 | ||
216 | WRITE8_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 | ||
221 | WRITE_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 | ||
228 | WRITE_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 | ||
250 | UINT32 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 | ||
283 | TIMER_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 | ||
305 | UINT32 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 */ | |
313 | static 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 | ||
326 | static GFXDECODE_START( ksm ) | |
327 | GFXDECODE_ENTRY("chargen", 0x0000, ksm_charlayout, 0, 1) | |
328 | GFXDECODE_END | |
329 | ||
330 | static 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)) | |
383 | MACHINE_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 | */ | |
390 | ROM_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)) | |
397 | ROM_END | |
398 | ||
399 | /* | |
400 | Assumes that SRAM is at 0x2100, otherwise identical. | |
401 | Chargen has no missing pixels in 'G' character. | |
402 | */ | |
403 | ROM_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)) | |
410 | ROM_END | |
411 | ||
412 | /* Driver */ | |
413 | ||
414 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ | |
415 | COMP( 1986, dvk_ksm, 0, 0, ksm, ksm, driver_device, 0, "USSR", "DVK KSM", 0) | |
416 | COMP( 198?, dvk_ksm01,0 , 0, ksm, ksm, driver_device, 0, "USSR", "DVK KSM-01", 0) |
r241781 | r241782 | |
---|---|---|
28 | 28 | DECLARE_WRITE8_MEMBER(gmaster_port_w); |
29 | 29 | DECLARE_DRIVER_INIT(gmaster) { memset(&m_video, 0, sizeof(m_video)); memset(m_ram, 0, sizeof(m_ram)); } |
30 | 30 | UINT32 screen_update_gmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
31 | INTERRUPT_GEN_MEMBER(gmaster_interrupt); | |
32 | 31 | |
33 | 32 | private: |
34 | 33 | virtual void machine_start(); |
r241781 | r241782 | |
278 | 277 | } |
279 | 278 | |
280 | 279 | |
281 | INTERRUPT_GEN_MEMBER(gmaster_state::gmaster_interrupt) | |
282 | { | |
283 | m_maincpu->set_input_line(UPD7810_INTFE1, ASSERT_LINE); | |
284 | } | |
285 | ||
286 | 280 | static MACHINE_CONFIG_START( gmaster, gmaster_state ) |
287 | 281 | MCFG_CPU_ADD("maincpu", UPD7810, XTAL_12MHz/2/*?*/) // upd78c11 in the unit |
288 | 282 | MCFG_CPU_PROGRAM_MAP(gmaster_mem) |
289 | 283 | MCFG_CPU_IO_MAP( gmaster_io) |
290 | MCFG_CPU_VBLANK_INT_DRIVER("screen", gmaster_state, gmaster_interrupt) | |
291 | 284 | |
292 | 285 | MCFG_SCREEN_ADD("screen", LCD) |
293 | 286 | MCFG_SCREEN_REFRESH_RATE(60) |
r241781 | r241782 | |
---|---|---|
486 | 486 | ROM_END |
487 | 487 | |
488 | 488 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ |
489 | COMP( 1989, lviv, 0, 0, lviv, lviv, driver_device, 0, "V. I. Lenin", "Lviv" , 0 ) | |
489 | COMP( 1989, lviv, 0, 0, lviv, lviv, driver_device, 0, "V. I. Lenin", "PK-01 Lviv" , 0 ) |
r241781 | r241782 | |
---|---|---|
603 | 603 | MCFG_CASSETTE_ADD("cassette") |
604 | 604 | MCFG_CASSETTE_FORMATS(sordm5_cassette_formats) |
605 | 605 | MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY) |
606 | MCFG_CASSETTE_INTERFACE("m5_cass") | |
606 | 607 | |
607 | 608 | MCFG_DEVICE_ADD(I8255A_TAG, I8255, 0) |
608 | 609 | MCFG_I8255_IN_PORTA_CB(READ8(m5_state, ppi_pa_r)) |
r241781 | r241782 | |
621 | 622 | //MCFG_GENERIC_MANDATORY |
622 | 623 | |
623 | 624 | // 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") | |
625 | 627 | |
626 | 628 | // internal ram |
627 | 629 | MCFG_RAM_ADD(RAM_TAG) |
r241781 | r241782 | |
---|---|---|
76 | 76 | // DBG_LOG(2,"mc1502_ppi_portb_w",("( %02X )\n", data)); |
77 | 77 | m_ppi_portb = data; |
78 | 78 | m_pit8253->write_gate2(BIT(data, 0)); |
79 | ||
79 | mc1502_speaker_set_spkrdata(BIT(data, 1)); | |
80 | 80 | m_centronics->write_strobe(BIT(data, 2)); |
81 | 81 | m_centronics->write_autofd(BIT(data, 3)); |
82 | 82 | m_centronics->write_init(BIT(data, 4)); |
r241781 | r241782 | |
163 | 163 | WRITE_LINE_MEMBER(mc1502_state::mc1502_pit8253_out2_changed) |
164 | 164 | { |
165 | 165 | m_pit_out2 = state; |
166 | ||
166 | m_speaker->level_w(m_spkrdata & m_pit_out2); | |
167 | 167 | m_cassette->output(state ? 1 : -1); |
168 | 168 | } |
169 | 169 | |
170 | WRITE_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 | ||
170 | 176 | DRIVER_INIT_MEMBER( mc1502_state, mc1502 ) |
171 | 177 | { |
172 | 178 | address_space &program = m_maincpu->space(AS_PROGRAM); |
r241781 | r241782 | |
197 | 203 | MACHINE_RESET_MEMBER( mc1502_state, mc1502 ) |
198 | 204 | { |
199 | 205 | 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); | |
200 | 212 | } |
201 | 213 | |
202 | 214 | /* |
r241781 | r241782 | |
324 | 336 | MACHINE_CONFIG_END |
325 | 337 | |
326 | 338 | |
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 | */ | |
327 | 348 | ROM_START( mc1502 ) |
328 | 349 | ROM_REGION16_LE(0x100000,"maincpu", 0) |
329 | 350 | |
330 | 351 | ROM_DEFAULT_BIOS("v52") |
331 | ROM_SYSTEM_BIOS(0, "v50", "v5.0") | |
352 | ROM_SYSTEM_BIOS(0, "v50", "v5.0 10/05/89") | |
332 | 353 | 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") | |
334 | 355 | 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)) | |
340 | 388 | ROM_END |
341 | 389 | |
390 | /* | |
391 | Predecessor of MC1502, same keyboard attachment but | |
392 | different video subsystem (not emulated). | |
393 | */ | |
342 | 394 | ROM_START( pk88 ) |
343 | 395 | ROM_REGION16_LE(0x100000,"maincpu", 0) |
344 | 396 | |
r241781 | r241782 | |
358 | 410 | |
359 | 411 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ |
360 | 412 | COMP ( 1989, mc1502, ibm5150, 0, mc1502, mc1502, mc1502_state, mc1502, "NPO Microprocessor", "Elektronika MC-1502", 0) |
361 | COMP ( 19 | |
413 | COMP ( 1988, pk88, ibm5150, 0, pk88, mc1502, mc1502_state, mc1502, "NPO Microprocessor", "Elektronika PK-88", GAME_NOT_WORKING | GAME_NO_SOUND) |
r241781 | r241782 | |
---|---|---|
1 | /* | |
1 | /*************************************************************************** | |
2 | 2 | |
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. | |
4 | 23 | |
5 | */ | |
6 | 24 | |
25 | TODO: | |
26 | - accurate speaker levels (tone pitch sounds good though) | |
27 | - is the rom dump good? | |
28 | ||
29 | ***************************************************************************/ | |
30 | ||
7 | 31 | #include "emu.h" |
8 | 32 | #include "cpu/tms0980/tms0980.h" |
9 | 33 | #include "sound/speaker.h" |
10 | 34 | |
11 | /* Layout */ | |
12 | 35 | #include "merlin.lh" |
13 | 36 | |
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) | |
14 | 40 | |
41 | ||
15 | 42 | class merlin_state : public driver_device |
16 | 43 | { |
17 | 44 | public: |
18 | 45 | merlin_state(const machine_config &mconfig, device_type type, const char *tag) |
19 | 46 | : 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 | { } | |
22 | 51 | |
23 | virtual void machine_start(); | |
24 | ||
25 | required_device<speaker_sound_device> m_speaker; | |
26 | ||
27 | 52 | DECLARE_READ8_MEMBER(read_k); |
28 | 53 | DECLARE_WRITE16_MEMBER(write_o); |
29 | 54 | DECLARE_WRITE16_MEMBER(write_r); |
30 | 55 | |
56 | virtual void machine_start(); | |
57 | ||
31 | 58 | protected: |
32 | UINT16 m_o; | |
33 | UINT16 m_r; | |
34 | 59 | 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; | |
35 | 64 | }; |
36 | 65 | |
37 | 66 | |
38 | ||
67 | /*************************************************************************** | |
39 | 68 | |
69 | I/O | |
40 | 70 | |
41 | static 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 | ***************************************************************************/ | |
47 | 72 | |
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: | |
53 | 74 | |
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 | ||
66 | INPUT_PORTS_END | |
67 | ||
68 | ||
69 | /* | |
70 | The keypad is a 4*4 matrix, connected like so: | |
71 | ||
72 | 75 | +----+ +----+ +----+ +----+ |
73 | 76 | O0 o---| R0 |--| R1 |--| R2 |--| R3 | |
74 | 77 | +----+ +----+ +----+ +----+ |
r241781 | r241782 | |
88 | 91 | o o o o |
89 | 92 | K1 K2 K8 K4 |
90 | 93 | |
91 | SG = same game, CT = comp turn, NG = new game, HM = hit me | |
92 | */ | |
94 | SG = same game, CT = comp turn, NG = new game, HM = hit me */ | |
93 | 95 | |
94 | 96 | READ8_MEMBER(merlin_state::read_k) |
95 | 97 | { |
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(); | |
97 | 104 | |
98 | if (LOG) | |
99 | logerror( "read_k\n" ); | |
105 | return k; | |
106 | } | |
100 | 107 | |
101 | if ( m_o & 0x01 ) | |
102 | { | |
103 | data |= ioport("O0")->read(); | |
104 | } | |
108 | WRITE16_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]); | |
105 | 117 | |
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 | } | |
110 | 122 | |
111 | if ( m_o & 0x04 ) | |
112 | { | |
113 | data |= ioport("O2")->read(); | |
114 | } | |
123 | WRITE16_MEMBER(merlin_state::write_r) | |
124 | { | |
125 | /* LEDs: | |
115 | 126 | |
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); | |
122 | 135 | } |
123 | 136 | |
124 | 137 | |
125 | /* | |
126 | The speaker is connected to O4 through O6. The 3 outputs are paralleled for | |
127 | increased current driving capability. They are passed thru a 220 ohm resistor | |
128 | and then to the speaker, which has the other side grounded. The software then | |
129 | toggles these lines to make sounds and noises. (There is no audio generator | |
130 | other than toggling it with a software delay between to make tones). | |
131 | */ | |
132 | 138 | |
133 | WRITE16_MEMBER(merlin_state::write_o) | |
134 | { | |
135 | if (LOG) | |
136 | logerror( "write_o: write %02x\n", data ); | |
139 | /*************************************************************************** | |
137 | 140 | |
138 | ||
141 | Inputs | |
139 | 142 | |
140 | m_speaker->level_w(m_o & 0x70); | |
141 | } | |
143 | ***************************************************************************/ | |
142 | 144 | |
145 | static 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") | |
143 | 151 | |
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") | |
145 | 157 | |
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") | |
147 | 163 | |
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") | |
169 | INPUT_PORTS_END | |
153 | 170 | |
154 | When that particular R output is high, that LED is on. | |
155 | */ | |
156 | 171 | |
157 | WRITE16_MEMBER(merlin_state::write_r) | |
158 | { | |
159 | if (LOG) | |
160 | logerror( "write_r: write %04x\n", data ); | |
161 | 172 | |
162 | ||
173 | /*************************************************************************** | |
163 | 174 | |
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 | |
176 | 176 | |
177 | ***************************************************************************/ | |
177 | 178 | |
178 | 179 | void merlin_state::machine_start() |
179 | 180 | { |
181 | m_o = 0; | |
180 | 182 | save_item(NAME(m_o)); |
181 | save_item(NAME(m_r)); | |
182 | 183 | } |
183 | 184 | |
184 | 185 | |
r241781 | r241782 | |
191 | 192 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
192 | 193 | }; |
193 | 194 | |
195 | static const INT16 speaker_levels[] = { 0, 32767, 0, 32767 }; // unknown too, due to output_pla being unknown | |
194 | 196 | |
197 | ||
195 | 198 | static 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 ) ) | |
201 | 199 | |
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 | ||
202 | 207 | MCFG_DEFAULT_LAYOUT(layout_merlin) |
203 | 208 | |
209 | /* no video! */ | |
210 | ||
211 | /* sound hardware */ | |
204 | 212 | MCFG_SPEAKER_STANDARD_MONO("mono") |
205 | 213 | MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) |
214 | MCFG_SPEAKER_LEVELS(4, speaker_levels) | |
206 | 215 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
207 | 216 | MACHINE_CONFIG_END |
208 | 217 | |
209 | 218 | |
219 | ||
220 | /*************************************************************************** | |
221 | ||
222 | Game driver(s) | |
223 | ||
224 | ***************************************************************************/ | |
225 | ||
210 | 226 | ROM_START( merlin ) |
211 | 227 | ROM_REGION( 0x800, "maincpu", 0 ) |
212 | 228 | // This rom needs verification, that's why it is marked as a bad dump |
r241781 | r241782 | |
216 | 232 | ROM_LOAD( "mp3404", 0x0000, 0x800, BAD_DUMP CRC(7515a75d) SHA1(76ca3605d3fde1df62f79b9bb1f534c2a2ae0229) ) |
217 | 233 | ROM_END |
218 | 234 | |
219 | /*************************************************************************** | |
220 | 235 | |
221 | Game driver(s) | |
222 | ||
223 | ***************************************************************************/ | |
224 | ||
225 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ | |
226 | CONS( 1978, merlin, 0, 0, merlin, merlin, driver_device, 0, "Parker Brothers", "Merlin", 0 ) | |
236 | CONS( 1978, merlin, 0, 0, merlin, merlin, driver_device, 0, "Parker Brothers", "Merlin", GAME_SUPPORTS_SAVE ) |
r241781 | r241782 | |
---|---|---|
688 | 688 | m_u73_q2 = 0; |
689 | 689 | m_out1 = 2; // initial state of pit output is undefined |
690 | 690 | m_pc_spkrdata = 0; |
691 | m_pit_out2 = | |
691 | m_pit_out2 = 1; | |
692 | 692 | m_dma_channel = -1; |
693 | 693 | m_cur_eop = false; |
694 | 694 | } |
r241781 | r241782 | |
---|---|---|
1131 | 1131 | m_nmi_enable = 0; |
1132 | 1132 | m_toggle = 0; |
1133 | 1133 | m_kb_bits = 0; |
1134 | m_pit2 = 1; | |
1134 | 1135 | |
1135 | 1136 | m_lpen = 0; |
1136 | 1137 | m_blink = 0; |
r241781 | r241782 | |
---|---|---|
591 | 591 | DECLARE_READ8_MEMBER(pc9801_mouse_r); |
592 | 592 | DECLARE_WRITE8_MEMBER(pc9801_mouse_w); |
593 | 593 | 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); } | |
596 | 598 | DECLARE_CUSTOM_INPUT_MEMBER(system_type_r); |
597 | 599 | DECLARE_READ8_MEMBER(pc9801ux_gvram_r); |
598 | 600 | DECLARE_WRITE8_MEMBER(pc9801ux_gvram_w); |
599 | 601 | DECLARE_READ8_MEMBER(pc9801ux_gvram0_r); |
600 | 602 | DECLARE_WRITE8_MEMBER(pc9801ux_gvram0_w); |
603 | DECLARE_READ8_MEMBER(upd7220_grcg_r); | |
604 | DECLARE_WRITE8_MEMBER(upd7220_grcg_w); | |
601 | 605 | UINT32 pc9801_286_a20(bool state); |
602 | 606 | |
603 | 607 | DECLARE_READ8_MEMBER(ide_hack_r); |
r241781 | r241782 | |
750 | 754 | TIMER_DEVICE_CALLBACK_MEMBER( mouse_irq_cb ); |
751 | 755 | |
752 | 756 | 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); | |
754 | 758 | |
755 | 759 | DECLARE_DRIVER_INIT(pc9801_kanji); |
756 | 760 | inline void set_dma_channel(int channel, int state); |
r241781 | r241782 | |
1645 | 1649 | m_video_ram_2[offset+0x08000+m_vram_bank*0x20000] = data; |
1646 | 1650 | } |
1647 | 1651 | |
1648 | inline UINT32 pc9801_state::m_calc_grcg_addr(int i,UINT32 offset) | |
1652 | inline UINT32 pc9801_state::m_calc_grcg_addr(int i,UINT32 offset,int vrambank) | |
1649 | 1653 | { |
1650 | return (offset) + (((i+1)*0x8000) & 0x1ffff) + ( | |
1654 | return (offset) + (((i+1)*0x8000) & 0x1ffff) + (vrambank*0x20000); | |
1651 | 1655 | } |
1652 | 1656 | |
1653 | inline UINT8 pc9801_state::m_pc9801rs_grcg_r(UINT32 offset,int vbank) | |
1657 | inline UINT8 pc9801_state::m_pc9801rs_grcg_r(UINT32 offset,int vbank,int vrambank) | |
1654 | 1658 | { |
1655 | UINT8 res; | |
1659 | UINT8 res = 0; | |
1656 | 1660 | |
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)) | |
1660 | 1664 | { |
1661 | 1665 | int i; |
1662 | 1666 | |
r241781 | r241782 | |
1664 | 1668 | for(i=0;i<4;i++) |
1665 | 1669 | { |
1666 | 1670 | 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]); | |
1668 | 1672 | } |
1669 | 1673 | |
1670 | 1674 | res ^= 0xff; |
r241781 | r241782 | |
1673 | 1677 | return res; |
1674 | 1678 | } |
1675 | 1679 | |
1676 | inline void pc9801_state::m_pc9801rs_grcg_w(UINT32 offset,int vbank,UINT8 data) | |
1680 | inline void pc9801_state::m_pc9801rs_grcg_w(UINT32 offset,int vbank,int vrambank,UINT8 data) | |
1677 | 1681 | { |
1678 | 1682 | if((m_grcg.mode & 0x80) == 0) |
1679 | m_video_ram_2[offset+vbank*0x8000+ | |
1683 | m_video_ram_2[offset+vbank*0x8000+vrambank*0x20000] = data; | |
1680 | 1684 | else |
1681 | 1685 | { |
1682 | 1686 | int i; |
r241781 | r241782 | |
1687 | 1691 | { |
1688 | 1692 | if((m_grcg.mode & (1 << i)) == 0) |
1689 | 1693 | { |
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; | |
1692 | 1696 | } |
1693 | 1697 | } |
1694 | 1698 | } |
r241781 | r241782 | |
1698 | 1702 | { |
1699 | 1703 | if((m_grcg.mode & (1 << i)) == 0) |
1700 | 1704 | { |
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]; | |
1702 | 1706 | } |
1703 | 1707 | } |
1704 | 1708 | } |
1705 | 1709 | } |
1706 | 1710 | } |
1707 | 1711 | |
1712 | READ8_MEMBER(pc9801_state::upd7220_grcg_r) | |
1713 | { | |
1714 | return m_pc9801rs_grcg_r(offset & 0x7fff, (offset >> 15) & 3, offset >> 17); | |
1715 | } | |
1708 | 1716 | |
1717 | WRITE8_MEMBER(pc9801_state::upd7220_grcg_w) | |
1718 | { | |
1719 | m_pc9801rs_grcg_w(offset & 0x7fff, (offset >> 15) & 3, offset >> 17, data); | |
1720 | } | |
1721 | ||
1709 | 1722 | READ8_MEMBER(pc9801_state::pc9801_mouse_r) |
1710 | 1723 | { |
1711 | 1724 | if((offset & 1) == 0) |
r241781 | r241782 | |
2776 | 2789 | AM_RANGE(0x00000, 0x3ffff) AM_RAM AM_SHARE("video_ram_2") |
2777 | 2790 | ADDRESS_MAP_END |
2778 | 2791 | |
2792 | static 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") | |
2794 | ADDRESS_MAP_END | |
2779 | 2795 | |
2780 | 2796 | CUSTOM_INPUT_MEMBER(pc9801_state::system_type_r) |
2781 | 2797 | { |
r241781 | r241782 | |
3349 | 3365 | { |
3350 | 3366 | address_space& space = m_maincpu->space(AS_PROGRAM); |
3351 | 3367 | 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 | } | |
3355 | 3374 | } |
3356 | 3375 | |
3357 | 3376 | m_ide_rom = memregion("ide")->base(); |
r241781 | r241782 | |
3727 | 3746 | MCFG_FRAGMENT_ADD(pc9801_keyboard) |
3728 | 3747 | MCFG_FRAGMENT_ADD(pc9801_mouse) |
3729 | 3748 | MCFG_FRAGMENT_ADD(pc9801_ide) |
3730 | MCFG_UPD | |
3749 | MCFG_UPD4990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL) | |
3731 | 3750 | MCFG_DEVICE_ADD(UPD8251_TAG, I8251, 0) |
3732 | 3751 | |
3733 | MCFG_UPD765A_ADD("upd765_2hd", | |
3752 | MCFG_UPD765A_ADD("upd765_2hd", true, true) | |
3734 | 3753 | MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(pc9801_state, pc9801rs_fdc_irq)) |
3735 | 3754 | MCFG_UPD765_DRQ_CALLBACK(WRITELINE(pc9801_state, pc9801rs_fdc_drq)) |
3736 | 3755 | //"upd765_2dd" |
r241781 | r241782 | |
3758 | 3777 | MCFG_UPD7220_VSYNC_CALLBACK(DEVWRITELINE("upd7220_btm", upd7220_device, ext_sync_w)) |
3759 | 3778 | |
3760 | 3779 | 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) | |
3762 | 3781 | MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(pc9801_state, hgdc_display_pixels) |
3763 | 3782 | |
3764 | 3783 | MCFG_PALETTE_ADD("palette", 16+16) |
r241781 | r241782 | |
3844 | 3863 | MCFG_FRAGMENT_ADD(pc9801_keyboard) |
3845 | 3864 | MCFG_FRAGMENT_ADD(pc9801_mouse) |
3846 | 3865 | MCFG_FRAGMENT_ADD(pc9801_ide) |
3847 | MCFG_UPD | |
3866 | MCFG_UPD4990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL) | |
3848 | 3867 | MCFG_DEVICE_ADD(UPD8251_TAG, I8251, 0) |
3849 | 3868 | |
3850 | 3869 | MCFG_UPD765A_ADD("upd765_2hd", false, true) |
r241781 | r241782 | |
3875 | 3894 | MCFG_UPD7220_VSYNC_CALLBACK(DEVWRITELINE("upd7220_btm", upd7220_device, ext_sync_w)) |
3876 | 3895 | |
3877 | 3896 | 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) | |
3879 | 3898 | MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(pc9801_state, hgdc_display_pixels) |
3880 | 3899 | |
3881 | 3900 | MCFG_PALETTE_ADD("palette", 16+16+256) |
r241781 | r241782 | |
---|---|---|
595 | 595 | MCFG_PSION_DATAPACK_ADD("pack2") |
596 | 596 | |
597 | 597 | /* Software lists */ |
598 | MCFG_SOFTWARE_LIST_ADD("pack_list", "psion") | |
598 | MCFG_SOFTWARE_LIST_ADD("pack_list", "psion2") | |
599 | 599 | MACHINE_CONFIG_END |
600 | 600 | |
601 | 601 | /* basic configuration for 4 lines display */ |
r241781 | r241782 | |
624 | 624 | MCFG_DEVICE_MODIFY("hd44780") |
625 | 625 | MCFG_HD44780_LCD_SIZE(1, 16) |
626 | 626 | 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") | |
627 | 631 | MACHINE_CONFIG_END |
628 | 632 | |
629 | 633 | static MACHINE_CONFIG_DERIVED( psioncm, psion_2lines ) |
r241781 | r241782 | |
696 | 700 | ROMX_LOAD( "34-lag.rom", 0x8000, 0x8000, CRC(13a92c4b) SHA1(dab8bd6a41a5fd509c5ad4b0b0ab80d14f2c421a), ROM_BIOS(2)) |
697 | 701 | ROM_SYSTEM_BIOS(2, "v36", "LA v3.6") |
698 | 702 | 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)) | |
699 | 705 | ROM_END |
700 | 706 | |
701 | 707 | ROM_START( psionp200 ) |
r241781 | r241782 | |
---|---|---|
747 | 747 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) // cass2 speaker |
748 | 748 | |
749 | 749 | // devices |
750 | MCFG_CASSETTE_ADD( | |
750 | MCFG_CASSETTE_ADD("cassette") | |
751 | 751 | MCFG_CASSETTE_FORMATS(sol20_cassette_formats) |
752 | 752 | MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED) |
753 | MCFG_CASSETTE_INTERFACE("sol20_cass") | |
753 | 754 | |
754 | MCFG_CASSETTE_ADD( | |
755 | MCFG_CASSETTE_ADD("cassette2") | |
755 | 756 | MCFG_CASSETTE_FORMATS(sol20_cassette_formats) |
756 | 757 | MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED) |
758 | MCFG_CASSETTE_INTERFACE("sol20_cass") | |
757 | 759 | |
758 | MCFG_DEVICE_ADD( | |
760 | MCFG_DEVICE_ADD("uart", AY31015, 0) | |
759 | 761 | MCFG_AY31015_TX_CLOCK(4800.0) |
760 | 762 | MCFG_AY31015_RX_CLOCK(4800.0) |
761 | MCFG_DEVICE_ADD( | |
763 | MCFG_DEVICE_ADD("uart_s", AY31015, 0) | |
762 | 764 | MCFG_AY31015_TX_CLOCK(4800.0) |
763 | 765 | MCFG_AY31015_RX_CLOCK(4800.0) |
764 | 766 | MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0) |
765 | 767 | MCFG_GENERIC_KEYBOARD_CB(WRITE8(sol20_state, kbd_put)) |
768 | ||
769 | MCFG_SOFTWARE_LIST_ADD("cass_list", "sol20_cass") | |
766 | 770 | MACHINE_CONFIG_END |
767 | 771 | |
768 | 772 | /* ROM definition */ |
r241781 | r241782 | |
---|---|---|
19 | 19 | #include "machine/ram.h" |
20 | 20 | #include "machine/nvram.h" |
21 | 21 | #include "sound/speaker.h" |
22 | ||
23 | 22 | #include "bus/generic/slot.h" |
24 | 23 | #include "bus/generic/carts.h" |
24 | #include "coreutil.h" | |
25 | 25 | #include "px4.lh" |
26 | 26 | |
27 | 27 | |
r241781 | r241782 | |
31 | 31 | |
32 | 32 | #define VERBOSE 1 |
33 | 33 | |
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 | |
40 | 34 | |
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 | ||
57 | 35 | //************************************************************************** |
58 | 36 | // MACROS |
59 | 37 | //************************************************************************** |
r241781 | r241782 | |
67 | 45 | // TYPE DEFINITIONS |
68 | 46 | //************************************************************************** |
69 | 47 | |
70 | class px4_state : public driver_device, | |
71 | public device_serial_interface | |
48 | class px4_state : public driver_device, public device_serial_interface | |
72 | 49 | { |
73 | 50 | public: |
74 | 51 | px4_state(const machine_config &mconfig, device_type type, const char *tag) : |
r241781 | r241782 | |
76 | 53 | device_serial_interface(mconfig, *this), |
77 | 54 | m_z80(*this, "maincpu"), |
78 | 55 | m_ram(*this, RAM_TAG), |
56 | m_nvram(*this, "nvram"), | |
79 | 57 | m_centronics(*this, "centronics"), |
80 | 58 | m_ext_cas(*this, "extcas"), |
81 | 59 | m_ext_cas_timer(*this, "extcas_timer"), |
82 | 60 | m_speaker(*this, "speaker"), |
83 | 61 | m_sio(*this, "sio"), |
84 | 62 | 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), | |
88 | 66 | 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), | |
89 | 70 | m_artdir(0xff), m_artdor(0xff), m_artsr(0), m_artcr(0), |
90 | 71 | m_swr(0), |
91 | 72 | 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) | |
94 | 78 | { } |
95 | 79 | |
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 | ||
133 | protected: | |
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 | ||
146 | private: | |
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 | ||
96 | 185 | // internal devices |
97 | 186 | required_device<cpu_device> m_z80; |
98 | 187 | required_device<ram_device> m_ram; |
188 | required_device<nvram_device> m_nvram; | |
99 | 189 | required_device<centronics_device> m_centronics; |
100 | 190 | required_device<cassette_image_device> m_ext_cas; |
101 | 191 | required_device<timer_device> m_ext_cas_timer; |
r241781 | r241782 | |
104 | 194 | required_device<rs232_port_device> m_rs232; |
105 | 195 | required_device<generic_slot_device> m_caps1; |
106 | 196 | required_device<generic_slot_device> m_caps2; |
107 | optional_device<generic_slot_device> m_rdsocket; | |
108 | 197 | |
109 | 198 | memory_region *m_caps1_rom; |
110 | 199 | memory_region *m_caps2_rom; |
r241781 | r241782 | |
126 | 215 | UINT8 m_vadr; |
127 | 216 | UINT8 m_yoff; |
128 | 217 | |
129 | void gapnit_interrupt(); | |
130 | ||
131 | 218 | // gapnio |
132 | 219 | emu_timer *m_receive_timer; |
133 | 220 | emu_timer *m_transmit_timer; |
r241781 | r241782 | |
137 | 224 | UINT8 m_artcr; |
138 | 225 | UINT8 m_swr; |
139 | 226 | |
140 | void txd_w(int data); | |
141 | ||
142 | 227 | // 7508 internal |
143 | 228 | bool m_one_sec_int_enabled; |
144 | 229 | bool m_alarm_int_enabled; |
r241781 | r241782 | |
147 | 232 | UINT8 m_key_status; |
148 | 233 | UINT8 m_interrupt_status; |
149 | 234 | |
150 | // external ramdisk | |
151 | offs_t m_ramdisk_address; | |
152 | UINT8 *m_ramdisk; | |
235 | system_time m_time; | |
236 | int m_clock_state; | |
153 | 237 | |
154 | 238 | // external cassette/barcode reader |
155 | 239 | int m_ear_last_state; |
156 | 240 | |
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; | |
158 | 246 | |
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 | }; | |
164 | 251 | |
165 | virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); | |
252 | class px4p_state : public px4_state | |
253 | { | |
254 | public: | |
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 | { } | |
166 | 262 | |
167 | DECLARE_WRITE_LINE_MEMBER( sio_rx_w ); | |
168 | DECLARE_WRITE_LINE_MEMBER( sio_pin_w ); | |
263 | DECLARE_DRIVER_INIT( px4p ); | |
169 | 264 | |
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 ); | |
174 | 266 | |
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 ); | |
176 | 271 | |
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); | |
272 | protected: | |
273 | // driver_device overrides | |
214 | 274 | 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); | |
226 | 275 | |
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); | |
276 | private: | |
277 | required_device<nvram_device> m_rdnvram; | |
278 | required_device<generic_slot_device> m_rdsocket; | |
231 | 279 | |
232 | private: | |
233 | DECLARE_WRITE_LINE_MEMBER( serial_rx_w ); | |
280 | offs_t m_ramdisk_address; | |
281 | UINT8 *m_ramdisk; | |
234 | 282 | }; |
235 | 283 | |
236 | 284 | |
r241781 | r241782 | |
310 | 358 | } |
311 | 359 | |
312 | 360 | // input capture register low command trigger |
313 | READ8_MEMBER( px4_state:: | |
361 | READ8_MEMBER( px4_state::icrlc_r ) | |
314 | 362 | { |
315 | 363 | if (VERBOSE) |
316 | logerror("%s: | |
364 | logerror("%s: icrlc_r\n", machine().describe_context()); | |
317 | 365 | |
318 | 366 | // latch value |
319 | 367 | m_frc_latch = m_frc_value; |
r241781 | r241782 | |
322 | 370 | } |
323 | 371 | |
324 | 372 | // control register 1 |
325 | WRITE8_MEMBER( px4_state:: | |
373 | WRITE8_MEMBER( px4_state::ctrl1_w ) | |
326 | 374 | { |
327 | 375 | const int rcv_rates[] = { 110, 150, 300, 600, 1200, 2400, 4800, 9600, 75, 1200, 19200, 38400, 200 }; |
328 | 376 | const int tra_rates[] = { 110, 150, 300, 600, 1200, 2400, 4800, 9600, 1200, 75, 19200, 38400, 200 }; |
329 | 377 | |
330 | 378 | if (VERBOSE) |
331 | logerror("%s: | |
379 | logerror("%s: ctrl1_w (0x%02x)\n", machine().describe_context(), data); | |
332 | 380 | |
333 | 381 | // baudrate generator |
334 | 382 | int baud = data >> 4; |
r241781 | r241782 | |
346 | 394 | } |
347 | 395 | |
348 | 396 | // input capture register high command trigger |
349 | READ8_MEMBER( px4_state:: | |
397 | READ8_MEMBER( px4_state::icrhc_r ) | |
350 | 398 | { |
351 | 399 | if (VERBOSE) |
352 | logerror("%s: | |
400 | logerror("%s: icrhc_r\n", machine().describe_context()); | |
353 | 401 | |
354 | 402 | return (m_frc_latch >> 8) & 0xff; |
355 | 403 | } |
356 | 404 | |
357 | 405 | // command register |
358 | WRITE8_MEMBER( px4_state:: | |
406 | WRITE8_MEMBER( px4_state::cmdr_w ) | |
359 | 407 | { |
360 | 408 | if (0) |
361 | logerror("%s: | |
409 | logerror("%s: cmdr_w (0x%02x)\n", machine().describe_context(), data); | |
362 | 410 | |
363 | 411 | // clear overflow interrupt? |
364 | 412 | if (BIT(data, 2)) |
r241781 | r241782 | |
369 | 417 | } |
370 | 418 | |
371 | 419 | // input capture register low barcode trigger |
372 | READ8_MEMBER( px4_state:: | |
420 | READ8_MEMBER( px4_state::icrlb_r ) | |
373 | 421 | { |
374 | 422 | if (VERBOSE) |
375 | logerror("%s: | |
423 | logerror("%s: icrlb_r\n", machine().describe_context()); | |
376 | 424 | |
377 | 425 | return m_icrb & 0xff; |
378 | 426 | } |
379 | 427 | |
380 | 428 | // control register 2 |
381 | WRITE8_MEMBER( px4_state:: | |
429 | WRITE8_MEMBER( px4_state::ctrl2_w ) | |
382 | 430 | { |
383 | 431 | if (VERBOSE) |
384 | logerror("%s: | |
432 | logerror("%s: ctrl2_w (0x%02x)\n", machine().describe_context(), data); | |
385 | 433 | |
386 | 434 | // bit 0, MIC, cassette output |
387 | 435 | m_ext_cas->output( BIT(data, 0) ? -1.0 : +1.0); |
r241781 | r241782 | |
400 | 448 | } |
401 | 449 | |
402 | 450 | // input capture register high barcode trigger |
403 | READ8_MEMBER( px4_state:: | |
451 | READ8_MEMBER( px4_state::icrhb_r ) | |
404 | 452 | { |
405 | 453 | if (VERBOSE) |
406 | logerror("%s: | |
454 | logerror("%s: icrhb_r\n", machine().describe_context()); | |
407 | 455 | |
408 | 456 | // clear icf interrupt |
409 | 457 | m_isr &= ~INT2_ICF; |
r241781 | r241782 | |
413 | 461 | } |
414 | 462 | |
415 | 463 | // interrupt status register |
416 | READ8_MEMBER( px4_state:: | |
464 | READ8_MEMBER( px4_state::isr_r ) | |
417 | 465 | { |
418 | 466 | if (VERBOSE) |
419 | logerror("%s: | |
467 | logerror("%s: isr_r\n", machine().describe_context()); | |
420 | 468 | |
421 | 469 | return m_isr; |
422 | 470 | } |
423 | 471 | |
424 | 472 | // interrupt enable register |
425 | WRITE8_MEMBER( px4_state:: | |
473 | WRITE8_MEMBER( px4_state::ier_w ) | |
426 | 474 | { |
427 | 475 | if (0) |
428 | logerror("%s: | |
476 | logerror("%s: ier_w (0x%02x)\n", machine().describe_context(), data); | |
429 | 477 | |
430 | 478 | m_ier = data; |
431 | 479 | gapnit_interrupt(); |
432 | 480 | } |
433 | 481 | |
434 | 482 | // status register |
435 | READ8_MEMBER( px4_state:: | |
483 | READ8_MEMBER( px4_state::str_r ) | |
436 | 484 | { |
437 | 485 | UINT8 data = 0; |
438 | 486 | |
439 | 487 | if (0) |
440 | logerror("%s: | |
488 | logerror("%s: str_r\n", machine().describe_context()); | |
441 | 489 | |
442 | 490 | data |= (m_ext_cas)->input() > 0 ? 1 : 0; |
443 | 491 | data |= 1 << 1; // BCRD, barcode reader input |
r241781 | r241782 | |
467 | 515 | } |
468 | 516 | |
469 | 517 | // bank register |
470 | WRITE8_MEMBER( px4_state:: | |
518 | WRITE8_MEMBER( px4_state::bankr_w ) | |
471 | 519 | { |
472 | 520 | address_space &space_program = m_z80->space(AS_PROGRAM); |
473 | 521 | |
474 | 522 | if (0) |
475 | logerror("%s: | |
523 | logerror("%s: bankr_w (0x%02x)\n", machine().describe_context(), data); | |
476 | 524 | |
477 | 525 | m_bankr = data; |
478 | 526 | |
r241781 | r241782 | |
505 | 553 | } |
506 | 554 | |
507 | 555 | // serial io register |
508 | READ8_MEMBER( px4_state:: | |
556 | READ8_MEMBER( px4_state::sior_r ) | |
509 | 557 | { |
510 | 558 | if (0) |
511 | logerror("%s: | |
559 | logerror("%s: sior_r 0x%02x\n", machine().describe_context(), m_sior); | |
512 | 560 | |
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 | ||
513 | 581 | return m_sior; |
514 | 582 | } |
515 | 583 | |
516 | 584 | // serial io register |
517 | WRITE8_MEMBER( px4_state:: | |
585 | WRITE8_MEMBER( px4_state::sior_w ) | |
518 | 586 | { |
519 | 587 | if (0) |
520 | logerror("%s: | |
588 | logerror("%s: sior_w (0x%02x)\n", machine().describe_context(), data); | |
521 | 589 | |
522 | m_sior = data; | |
523 | ||
524 | switch (data) | |
590 | // writing clock? | |
591 | if (m_clock_state > 0) | |
525 | 592 | { |
526 | case 0x01: | |
593 | time_t time = m_time.time; | |
594 | struct tm *t = localtime(&time); | |
527 | 595 | |
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 | } | |
530 | 619 | |
531 | break; | |
620 | // update | |
621 | m_time.set(mktime(t)); | |
532 | 622 | |
533 | case 0x02: | |
623 | // done? | |
624 | if (m_clock_state == 9) | |
625 | m_clock_state = 0; | |
626 | } | |
627 | else | |
628 | { | |
629 | m_sior = data; | |
534 | 630 | |
535 | if (VERBOSE) | |
536 | logerror("7508 cmd: Read Status\n"); | |
537 | ||
538 | if (m_interrupt_status != 0) | |
631 | switch (data) | |
539 | 632 | { |
633 | case 0x01: | |
540 | 634 | if (VERBOSE) |
541 | logerror(" | |
635 | logerror("7508 cmd: Power OFF\n"); | |
542 | 636 | |
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; | |
557 | 638 | |
558 | break; | |
639 | case 0x02: | |
640 | if (VERBOSE) | |
641 | logerror("7508 cmd: Read Status\n"); | |
559 | 642 | |
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); | |
567 | 647 | |
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 | } | |
569 | 662 | |
570 | if (VERBOSE) | |
571 | logerror("7508 cmd: KB Interrupt OFF\n"); | |
663 | break; | |
572 | 664 | |
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; | |
575 | 672 | |
576 | case 0x16: | |
673 | case 0x06: | |
674 | if (VERBOSE) | |
675 | logerror("7508 cmd: KB Interrupt OFF\n"); | |
577 | 676 | |
578 | if (VERBOSE) | |
579 | logerror("7508 cmd: KB Interrupt ON\n"); | |
677 | m_key_int_enabled = false; | |
678 | break; | |
580 | 679 | |
581 | m_key_int_enabled = true; | |
582 | break; | |
680 | case 0x16: | |
681 | if (VERBOSE) | |
682 | logerror("7508 cmd: KB Interrupt ON\n"); | |
583 | 683 | |
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; | |
586 | 686 | |
587 | case 0x08: | |
687 | case 0x07: | |
688 | if (VERBOSE) | |
689 | logerror("7508 cmd: Clock Read\n"); | |
588 | 690 | |
589 | if (VERBOSE) | |
590 | logerror("7508 cmd: Power Switch Read\n"); | |
691 | m_clock_state = 1; | |
692 | break; | |
591 | 693 | |
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"); | |
595 | 697 | |
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; | |
600 | 700 | |
601 | case 0x0a: | |
701 | case 0x08: | |
702 | if (VERBOSE) | |
703 | logerror("7508 cmd: Power Switch Read\n"); | |
602 | 704 | |
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; | |
607 | 708 | |
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; | |
612 | 713 | |
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; | |
614 | 719 | |
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; | |
617 | 724 | |
618 | m_one_sec_int_enabled = false; | |
619 | break; | |
725 | case 0x0d: | |
726 | if (VERBOSE) | |
727 | logerror("7508 cmd: 1 sec. Interrupt OFF\n"); | |
620 | 728 | |
621 | case 0x1d: | |
729 | m_one_sec_int_enabled = false; | |
730 | break; | |
622 | 731 | |
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"); | |
625 | 735 | |
626 | m_one_sec_int_enabled = true; | |
627 | break; | |
736 | m_one_sec_int_enabled = true; | |
737 | break; | |
628 | 738 | |
629 | case 0x0e: | |
739 | case 0x0e: | |
740 | if (VERBOSE) | |
741 | logerror("7508 cmd: KB Clear\n"); | |
630 | 742 | |
631 | if (VERBOSE) | |
632 | logerror("7508 cmd: KB Clear\n"); | |
743 | m_sior = 0xbf; | |
744 | break; | |
633 | 745 | |
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 | } | |
638 | 748 | } |
639 | 749 | } |
640 | 750 | |
r241781 | r241782 | |
644 | 754 | //************************************************************************** |
645 | 755 | |
646 | 756 | // vram start address register |
647 | WRITE8_MEMBER( px4_state:: | |
757 | WRITE8_MEMBER( px4_state::vadr_w ) | |
648 | 758 | { |
649 | 759 | if (VERBOSE) |
650 | logerror("%s: | |
760 | logerror("%s: vadr_w (0x%02x)\n", machine().describe_context(), data); | |
651 | 761 | |
652 | 762 | m_vadr = data; |
653 | 763 | } |
654 | 764 | |
655 | 765 | // y offset register |
656 | WRITE8_MEMBER( px4_state:: | |
766 | WRITE8_MEMBER( px4_state::yoff_w ) | |
657 | 767 | { |
658 | 768 | if (VERBOSE) |
659 | logerror("%s: | |
769 | logerror("%s: yoff_w (0x%02x)\n", machine().describe_context(), data); | |
660 | 770 | |
661 | 771 | m_yoff = data; |
662 | 772 | } |
663 | 773 | |
664 | 774 | // frame register |
665 | WRITE8_MEMBER( px4_state:: | |
775 | WRITE8_MEMBER( px4_state::fr_w ) | |
666 | 776 | { |
667 | 777 | if (VERBOSE) |
668 | logerror("%s: | |
778 | logerror("%s: fr_w (0x%02x)\n", machine().describe_context(), data); | |
669 | 779 | } |
670 | 780 | |
671 | 781 | // speed-up register |
672 | WRITE8_MEMBER( px4_state:: | |
782 | WRITE8_MEMBER( px4_state::spur_w ) | |
673 | 783 | { |
674 | 784 | if (VERBOSE) |
675 | logerror("%s: | |
785 | logerror("%s: spur_w (0x%02x)\n", machine().describe_context(), data); | |
676 | 786 | } |
677 | 787 | |
678 | 788 | |
r241781 | r241782 | |
728 | 838 | if (ART_TX_ENABLED) |
729 | 839 | { |
730 | 840 | if (ART_BREAK) |
731 | { | |
732 | // transmit break | |
733 | txd_w(0); | |
734 | } | |
841 | txd_w(0); // transmit break | |
735 | 842 | else |
736 | { | |
737 | // transmit data | |
738 | txd_w(transmit_register_get_data_bit()); | |
739 | } | |
843 | txd_w(transmit_register_get_data_bit()); // transmit data | |
740 | 844 | } |
741 | 845 | else |
742 | { | |
743 | // transmit mark | |
744 | txd_w(1); | |
745 | } | |
846 | txd_w(1); // transmit mark | |
746 | 847 | } |
747 | 848 | |
748 | 849 | void px4_state::tra_complete() |
r241781 | r241782 | |
763 | 864 | void px4_state::rcv_callback() |
764 | 865 | { |
765 | 866 | 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 | |
770 | 868 | } |
771 | 869 | |
772 | 870 | void px4_state::rcv_complete() |
r241781 | r241782 | |
800 | 898 | } |
801 | 899 | |
802 | 900 | // cartridge interface |
803 | READ8_MEMBER( px4_state:: | |
901 | READ8_MEMBER( px4_state::ctgif_r ) | |
804 | 902 | { |
805 | 903 | if (VERBOSE) |
806 | logerror("%s: | |
904 | logerror("%s: ctgif_r @ 0x%02x\n", machine().describe_context(), offset); | |
807 | 905 | |
808 | 906 | return 0x00; |
809 | 907 | } |
810 | 908 | |
811 | 909 | // cartridge interface |
812 | WRITE8_MEMBER( px4_state:: | |
910 | WRITE8_MEMBER( px4_state::ctgif_w ) | |
813 | 911 | { |
814 | 912 | if (VERBOSE) |
815 | logerror("%s: | |
913 | logerror("%s: ctgif_w (0x%02x @ 0x%02x)\n", machine().describe_context(), data, offset); | |
816 | 914 | } |
817 | 915 | |
818 | 916 | // art data input register |
819 | READ8_MEMBER( px4_state:: | |
917 | READ8_MEMBER( px4_state::artdir_r ) | |
820 | 918 | { |
821 | 919 | if (VERBOSE) |
822 | logerror("%s: | |
920 | logerror("%s: artdir_r (%02x)\n", machine().describe_context(), m_artdir); | |
823 | 921 | |
824 | 922 | // clear ready |
825 | 923 | m_artsr &= ~ART_RXRDY; |
r241781 | r241782 | |
832 | 930 | } |
833 | 931 | |
834 | 932 | // art data output register |
835 | WRITE8_MEMBER( px4_state:: | |
933 | WRITE8_MEMBER( px4_state::artdor_w ) | |
836 | 934 | { |
837 | 935 | if (VERBOSE) |
838 | logerror("%s: | |
936 | logerror("%s: artdor_w (0x%02x)\n", machine().describe_context(), data); | |
839 | 937 | |
840 | 938 | m_artdor = data; |
841 | 939 | |
r241781 | r241782 | |
853 | 951 | } |
854 | 952 | |
855 | 953 | // art status register |
856 | READ8_MEMBER( px4_state:: | |
954 | READ8_MEMBER( px4_state::artsr_r ) | |
857 | 955 | { |
858 | 956 | if (0) |
859 | logerror("%s: | |
957 | logerror("%s: artsr_r (%02x)\n", machine().describe_context(), m_artsr); | |
860 | 958 | |
861 | 959 | return m_artsr; |
862 | 960 | } |
863 | 961 | |
864 | 962 | // art mode register |
865 | WRITE8_MEMBER( px4_state:: | |
963 | WRITE8_MEMBER( px4_state::artmr_w ) | |
866 | 964 | { |
867 | 965 | int data_bit_count = BIT(data, 2) ? 8 : 7; |
868 | 966 | parity_t parity = BIT(data, 4) ? (BIT(data, 5) ? PARITY_EVEN : PARITY_ODD) : PARITY_NONE; |
r241781 | r241782 | |
874 | 972 | set_data_frame(1, data_bit_count, parity, stop_bits); |
875 | 973 | } |
876 | 974 | |
877 | WRITE_LINE_MEMBER( px4_state::write_centronics_busy ) | |
878 | { | |
879 | m_centronics_busy = state; | |
880 | } | |
881 | ||
882 | WRITE_LINE_MEMBER( px4_state::write_centronics_perror ) | |
883 | { | |
884 | m_centronics_perror = state; | |
885 | } | |
886 | ||
887 | 975 | // io status register |
888 | READ8_MEMBER( px4_state:: | |
976 | READ8_MEMBER( px4_state::iostr_r ) | |
889 | 977 | { |
890 | 978 | UINT8 data = 0; |
891 | 979 | |
r241781 | r241782 | |
907 | 995 | data |= 0 << 7; // bit 7, caud - audio input from cartridge |
908 | 996 | |
909 | 997 | if (0) |
910 | logerror("%s: | |
998 | logerror("%s: iostr_r: rx = %d, dcd = %d, cts = %d\n", machine().describe_context(), BIT(data, 3), BIT(data, 4), BIT(data, 5)); | |
911 | 999 | |
912 | 1000 | return data; |
913 | 1001 | } |
914 | 1002 | |
915 | 1003 | // art command register |
916 | WRITE8_MEMBER( px4_state:: | |
1004 | WRITE8_MEMBER( px4_state::artcr_w ) | |
917 | 1005 | { |
918 | 1006 | if (VERBOSE) |
919 | logerror("%s: | |
1007 | logerror("%s: artcr_w (0x%02x)\n", machine().describe_context(), data); | |
920 | 1008 | |
921 | 1009 | m_artcr = data; |
922 | 1010 | |
r241781 | r241782 | |
930 | 1018 | } |
931 | 1019 | |
932 | 1020 | // switch register |
933 | WRITE8_MEMBER( px4_state:: | |
1021 | WRITE8_MEMBER( px4_state::swr_w ) | |
934 | 1022 | { |
935 | 1023 | if (VERBOSE) |
936 | 1024 | { |
r241781 | r241782 | |
944 | 1032 | } |
945 | 1033 | |
946 | 1034 | // io control register |
947 | WRITE8_MEMBER( px4_state:: | |
1035 | WRITE8_MEMBER( px4_state::ioctlr_w ) | |
948 | 1036 | { |
949 | 1037 | if (VERBOSE) |
950 | logerror("%s: | |
1038 | logerror("%s: ioctlr_w (0x%02x)\n", machine().describe_context(), data); | |
951 | 1039 | |
952 | 1040 | m_centronics->write_strobe(!BIT(data, 0)); |
953 | 1041 | m_centronics->write_init(BIT(data, 1)); |
r241781 | r241782 | |
979 | 1067 | m_isr |= INT0_7508; |
980 | 1068 | gapnit_interrupt(); |
981 | 1069 | } |
1070 | ||
1071 | // update clock | |
1072 | m_time.set(m_time.time + 1); | |
982 | 1073 | } |
983 | 1074 | |
984 | 1075 | INPUT_CHANGED_MEMBER( px4_state::key_callback ) |
r241781 | r241782 | |
1025 | 1116 | // EXTERNAL RAM-DISK |
1026 | 1117 | //************************************************************************** |
1027 | 1118 | |
1028 | WRITE8_MEMBER( px4_state:: | |
1119 | WRITE8_MEMBER( px4p_state::ramdisk_address_w ) | |
1029 | 1120 | { |
1030 | 1121 | switch (offset) |
1031 | 1122 | { |
r241781 | r241782 | |
1035 | 1126 | } |
1036 | 1127 | } |
1037 | 1128 | |
1038 | READ8_MEMBER( px4_state:: | |
1129 | READ8_MEMBER( px4p_state::ramdisk_data_r ) | |
1039 | 1130 | { |
1040 | 1131 | UINT8 ret = 0xff; |
1041 | 1132 | |
r241781 | r241782 | |
1055 | 1146 | return ret; |
1056 | 1147 | } |
1057 | 1148 | |
1058 | WRITE8_MEMBER( px4_state:: | |
1149 | WRITE8_MEMBER( px4p_state::ramdisk_data_w ) | |
1059 | 1150 | { |
1060 | 1151 | if (m_ramdisk_address < 0x20000) |
1061 | 1152 | m_ramdisk[m_ramdisk_address] = data; |
r241781 | r241782 | |
1063 | 1154 | m_ramdisk_address = (m_ramdisk_address & 0xffff00) | ((m_ramdisk_address & 0xff) + 1); |
1064 | 1155 | } |
1065 | 1156 | |
1066 | READ8_MEMBER( px4_state:: | |
1157 | READ8_MEMBER( px4p_state::ramdisk_control_r ) | |
1067 | 1158 | { |
1068 | 1159 | // bit 7 determines the presence of a ram-disk |
1069 | 1160 | return 0x7f; |
r241781 | r241782 | |
1127 | 1218 | membank("bank2")->set_base(m_ram->pointer() + 0x8000); |
1128 | 1219 | } |
1129 | 1220 | |
1130 | DRIVER_INIT_MEMBER( px4_state, px4p ) | |
1221 | DRIVER_INIT_MEMBER( px4p_state, px4p ) | |
1131 | 1222 | { |
1132 | 1223 | DRIVER_INIT_CALL(px4); |
1133 | 1224 | |
r241781 | r241782 | |
1140 | 1231 | astring region_tag; |
1141 | 1232 | m_caps1_rom = memregion(region_tag.cpy(m_caps1->tag()).cat(GENERIC_ROM_REGION_TAG)); |
1142 | 1233 | 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); | |
1143 | 1239 | } |
1144 | 1240 | |
1145 | 1241 | void px4_state::machine_reset() |
1146 | 1242 | { |
1147 | m_artsr = ART_TXRDY | ART_TXEMPTY; | |
1243 | m_artsr = ART_TXRDY | ART_TXEMPTY | (!m_rs232->dsr_r() << 7); | |
1148 | 1244 | receive_register_reset(); |
1149 | 1245 | transmit_register_reset(); |
1150 | 1246 | } |
1151 | 1247 | |
1152 | ||
1248 | void px4p_state::machine_start() | |
1153 | 1249 | { |
1154 | 1250 | px4_state::machine_start(); |
1155 | m | |
1251 | m_rdnvram->set_base(m_ramdisk, 0x20000); | |
1156 | 1252 | } |
1157 | 1253 | |
1158 | 1254 | |
r241781 | r241782 | |
1169 | 1265 | ADDRESS_MAP_UNMAP_HIGH |
1170 | 1266 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
1171 | 1267 | // 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 ) | |
1179 | 1275 | AM_RANGE(0x07, 0x07) AM_NOP |
1180 | 1276 | // 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 ) | |
1185 | 1281 | AM_RANGE(0x0c, 0x0f) AM_NOP |
1186 | 1282 | // 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 ) | |
1191 | 1287 | 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 ) | |
1194 | 1290 | AM_RANGE(0x1a, 0x1f) AM_NOP |
1195 | 1291 | ADDRESS_MAP_END |
1196 | 1292 | |
1197 | static ADDRESS_MAP_START( px4p_io, AS_IO, 8, px4_state ) | |
1293 | static ADDRESS_MAP_START( px4p_io, AS_IO, 8, px4p_state ) | |
1198 | 1294 | 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) | |
1202 | 1298 | ADDRESS_MAP_END |
1203 | 1299 | |
1204 | 1300 | |
r241781 | r241782 | |
1361 | 1457 | // PALETTE |
1362 | 1458 | //************************************************************************** |
1363 | 1459 | |
1364 | PALETTE_INIT_MEMBER(px4_state, px4) | |
1460 | PALETTE_INIT_MEMBER( px4_state, px4 ) | |
1365 | 1461 | { |
1366 | 1462 | palette.set_pen_color(0, rgb_t(138, 146, 148)); |
1367 | 1463 | palette.set_pen_color(1, rgb_t(92, 83, 88)); |
1368 | 1464 | } |
1369 | 1465 | |
1370 | PALETTE_INIT_MEMBER(px4_state, px4p) | |
1466 | PALETTE_INIT_MEMBER( px4p_state, px4p ) | |
1371 | 1467 | { |
1372 | 1468 | palette.set_pen_color(0, rgb_t(149, 157, 130)); |
1373 | 1469 | palette.set_pen_color(1, rgb_t(92, 83, 88)); |
r241781 | r241782 | |
1408 | 1504 | // internal ram |
1409 | 1505 | MCFG_RAM_ADD(RAM_TAG) |
1410 | 1506 | MCFG_RAM_DEFAULT_SIZE("64k") |
1507 | MCFG_NVRAM_ADD_NO_FILL("nvram") | |
1411 | 1508 | |
1412 | 1509 | // centronics printer |
1413 | 1510 | 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)) | |
1416 | 1513 | |
1417 | 1514 | MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") |
1418 | 1515 | |
r241781 | r241782 | |
1443 | 1540 | MCFG_SOFTWARE_LIST_ADD("epson_cpm_list", "epson_cpm") |
1444 | 1541 | MACHINE_CONFIG_END |
1445 | 1542 | |
1446 | static MACHINE_CONFIG_DERIVED( px4p, px4 ) | |
1543 | static MACHINE_CONFIG_DERIVED_CLASS( px4p, px4, px4p_state ) | |
1447 | 1544 | MCFG_CPU_MODIFY("maincpu") |
1448 | 1545 | MCFG_CPU_IO_MAP(px4p_io) |
1449 | 1546 | |
1450 | MCFG_MACHINE_START_OVERRIDE(px4_state, px4_ramdisk) | |
1451 | MCFG_NVRAM_ADD_0FILL("nvram") | |
1547 | MCFG_NVRAM_ADD_0FILL("rdnvram") | |
1452 | 1548 | |
1453 | 1549 | MCFG_PALETTE_MODIFY("palette") |
1454 | MCFG_PALETTE_INIT_OWNER(px4_state, px4p) | |
1550 | MCFG_PALETTE_INIT_OWNER(px4p_state, px4p) | |
1455 | 1551 | |
1456 | 1552 | MCFG_GENERIC_CARTSLOT_ADD("ramdisk_socket", generic_plain_slot, "px4_cart") |
1457 | 1553 | MACHINE_CONFIG_END |
r241781 | r241782 | |
1465 | 1561 | |
1466 | 1562 | ROM_START( px4 ) |
1467 | 1563 | 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)) | |
1469 | 1568 | |
1470 | 1569 | ROM_REGION(0x1000, "slave", 0) |
1471 | 1570 | ROM_LOAD("upd7508.bin", 0x0000, 0x1000, NO_DUMP) |
r241781 | r241782 | |
1473 | 1572 | |
1474 | 1573 | ROM_START( px4p ) |
1475 | 1574 | 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)) | |
1477 | 1579 | |
1478 | 1580 | ROM_REGION(0x1000, "slave", 0) |
1479 | 1581 | ROM_LOAD("upd7508.bin", 0x0000, 0x1000, NO_DUMP) |
r241781 | r241782 | |
1484 | 1586 | // GAME DRIVERS |
1485 | 1587 | //************************************************************************** |
1486 | 1588 | |
1487 | // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS | |
1488 | COMP( 1985, px4, 0, 0, px4, px4_h450a, px4_state, px4, "Epson", "PX-4", 0 ) | |
1489 | COMP( 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 | |
1590 | COMP( 1985, px4, 0, 0, px4, px4_h450a, px4_state, px4, "Epson", "PX-4", 0 ) | |
1591 | COMP( 1985, px4p, px4, 0, px4p, px4_h450a, px4p_state, px4p, "Epson", "PX-4+", 0 ) |
r241781 | r241782 | |
---|---|---|
88 | 88 | /* Driver */ |
89 | 89 | |
90 | 90 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME FLAGS */ |
91 | COMP( ?? | |
91 | COMP( 20??, sh4robot, 0, 0, sh4robot, sh4robot, driver_device, 0, "<unknown>", "Robot", GAME_NOT_WORKING | GAME_NO_SOUND) |
r0 | r241782 | |
---|---|---|
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 | ||
31 | class simon_state : public driver_device | |
32 | { | |
33 | public: | |
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 | ||
61 | READ8_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 | ||
76 | WRITE16_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 | ||
95 | WRITE16_MEMBER(simon_state::write_o) | |
96 | { | |
97 | // N/C | |
98 | } | |
99 | ||
100 | ||
101 | ||
102 | /*************************************************************************** | |
103 | ||
104 | Inputs | |
105 | ||
106 | ***************************************************************************/ | |
107 | ||
108 | static 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" ) | |
134 | INPUT_PORTS_END | |
135 | ||
136 | ||
137 | ||
138 | /*************************************************************************** | |
139 | ||
140 | Machine Config | |
141 | ||
142 | ***************************************************************************/ | |
143 | ||
144 | void simon_state::machine_start() | |
145 | { | |
146 | m_r = 0; | |
147 | save_item(NAME(m_r)); | |
148 | } | |
149 | ||
150 | ||
151 | static 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 | ||
161 | static 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) | |
178 | MACHINE_CONFIG_END | |
179 | ||
180 | ||
181 | ||
182 | /*************************************************************************** | |
183 | ||
184 | Game driver(s) | |
185 | ||
186 | ***************************************************************************/ | |
187 | ||
188 | ROM_START( simon ) | |
189 | ROM_REGION( 0x0800, "maincpu", ROMREGION_ERASE00 ) | |
190 | ROM_LOAD( "tms1000.u1", 0x0000, 0x0400, CRC(9961719d) SHA1(35dddb018a8a2b31f377ab49c1f0cb76951b81c0) ) | |
191 | ROM_END | |
192 | ||
193 | ||
194 | CONS( 1978, simon, 0, 0, simon, simon, driver_device, 0, "Milton Bradley", "Simon (Rev. A)", GAME_SUPPORTS_SAVE ) |
r241781 | r241782 | |
---|---|---|
382 | 382 | MCFG_FLOPPY_DRIVE_ADD("upd765:0", specpls3_floppies, "3ssdd", spectrum_state::floppy_formats) |
383 | 383 | MCFG_FLOPPY_DRIVE_ADD("upd765:1", specpls3_floppies, "3ssdd", spectrum_state::floppy_formats) |
384 | 384 | |
385 | MCFG_SOFTWARE_LIST_ADD("flop_list","spec | |
385 | MCFG_SOFTWARE_LIST_ADD("flop_list", "specpls3_flop") | |
386 | 386 | MACHINE_CONFIG_END |
387 | 387 | |
388 | 388 | /*************************************************************************** |
r241781 | r241782 | |
---|---|---|
708 | 708 | MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED) |
709 | 709 | MCFG_CASSETTE_INTERFACE("spectrum_cass") |
710 | 710 | |
711 | MCFG_SOFTWARE_LIST_ADD("cass_list","spectrum_cass") | |
711 | MCFG_SOFTWARE_LIST_ADD("cass_list", "spectrum_cass") | |
712 | 712 | |
713 | 713 | /* cartridge */ |
714 | 714 | MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "spectrum_cart") |
715 | 715 | MCFG_GENERIC_EXTENSIONS("bin,rom") |
716 | 716 | MCFG_GENERIC_LOAD(spectrum_state, spectrum_cart) |
717 | 717 | |
718 | MCFG_SOFTWARE_LIST_ADD("cart_list","spectrum") | |
718 | MCFG_SOFTWARE_LIST_ADD("cart_list", "spectrum_cart") | |
719 | 719 | MACHINE_CONFIG_END |
720 | 720 | |
721 | 721 | MACHINE_CONFIG_DERIVED( spectrum, spectrum_common ) |
r241781 | r241782 | |
---|---|---|
165 | 165 | PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) |
166 | 166 | PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) |
167 | 167 | 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("R | |
168 | PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right Grph") PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_MAMEKEY(PGDN)) | |
169 | 169 | PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC)) |
170 | 170 | PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Stop") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(END)) |
171 | 171 | PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) |
r241781 | r241782 | |
---|---|---|
11 | 11 | |
12 | 12 | /* |
13 | 13 | |
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 | ||
44 | 14 | TODO: |
45 | 15 | |
46 | 16 | - floppy 8048 |
r241781 | r241782 | |
59 | 29 | |
60 | 30 | |
61 | 31 | //************************************************************************** |
62 | // READ/WRITE HANDLERS | |
63 | //************************************************************************** | |
64 | ||
65 | //------------------------------------------------- | |
66 | // floppy_p1_r - | |
67 | //------------------------------------------------- | |
68 | ||
69 | READ8_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 | ||
94 | READ8_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 | ||
124 | WRITE8_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 | ||
172 | READ8_MEMBER( victor9k_state::tach0_r ) | |
173 | { | |
174 | return m_tach0; | |
175 | } | |
176 | ||
177 | ||
178 | //------------------------------------------------- | |
179 | // tach1_r - | |
180 | //------------------------------------------------- | |
181 | ||
182 | READ8_MEMBER( victor9k_state::tach1_r ) | |
183 | { | |
184 | return m_tach1; | |
185 | } | |
186 | ||
187 | ||
188 | //------------------------------------------------- | |
189 | // da_w - | |
190 | //------------------------------------------------- | |
191 | ||
192 | WRITE8_MEMBER( victor9k_state::da_w ) | |
193 | { | |
194 | m_da = data; | |
195 | } | |
196 | ||
197 | ||
198 | ||
199 | //************************************************************************** | |
200 | 32 | // ADDRESS MAPS |
201 | 33 | //************************************************************************** |
202 | 34 | |
r241781 | r241782 | |
206 | 38 | |
207 | 39 | static ADDRESS_MAP_START( victor9k_mem, AS_PROGRAM, 8, victor9k_state ) |
208 | 40 | // AM_RANGE(0x00000, 0xdffff) AM_RAM |
41 | AM_RANGE(0x20000, 0xdffff) AM_NOP | |
209 | 42 | AM_RANGE(0xe0000, 0xe0001) AM_DEVREADWRITE(I8259A_TAG, pic8259_device, read, write) |
210 | 43 | AM_RANGE(0xe0020, 0xe0023) AM_DEVREADWRITE(I8253_TAG, pit8253_device, read, write) |
211 | 44 | 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) | |
221 | 54 | AM_RANGE(0xf0000, 0xf0fff) AM_MIRROR(0x1000) AM_RAM AM_SHARE("video_ram") |
222 | 55 | AM_RANGE(0xfe000, 0xfffff) AM_ROM AM_REGION(I8088_TAG, 0) |
223 | 56 | ADDRESS_MAP_END |
224 | 57 | |
225 | 58 | |
226 | //------------------------------------------------- | |
227 | // ADDRESS_MAP( floppy_io ) | |
228 | //------------------------------------------------- | |
229 | 59 | |
230 | static 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) | |
236 | ADDRESS_MAP_END | |
237 | ||
238 | ||
239 | ||
240 | 60 | //************************************************************************** |
241 | 61 | // INPUT PORTS |
242 | 62 | //************************************************************************** |
r241781 | r241782 | |
341 | 161 | { |
342 | 162 | m_ssda_irq = state; |
343 | 163 | |
344 | m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_ | |
164 | m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_fdc_irq); | |
345 | 165 | } |
346 | 166 | |
347 | 167 | |
r241781 | r241782 | |
413 | 233 | { |
414 | 234 | m_via1_irq = state; |
415 | 235 | |
416 | m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_ | |
236 | m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_fdc_irq); | |
417 | 237 | } |
418 | 238 | |
419 | 239 | WRITE8_MEMBER( victor9k_state::via2_pa_w ) |
r241781 | r241782 | |
480 | 300 | { |
481 | 301 | m_via2_irq = state; |
482 | 302 | |
483 | m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_ | |
303 | m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_fdc_irq); | |
484 | 304 | } |
485 | 305 | |
486 | 306 | |
r241781 | r241782 | |
520 | 340 | { |
521 | 341 | m_via3_irq = state; |
522 | 342 | |
523 | m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_ | |
343 | m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_fdc_irq); | |
524 | 344 | } |
525 | 345 | |
526 | 346 | |
527 | WRITE8_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 | ||
548 | WRITE8_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 | ||
569 | WRITE_LINE_MEMBER( victor9k_state::mode_w ) | |
570 | { | |
571 | } | |
572 | ||
573 | WRITE_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 | ||
596 | WRITE8_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 | ||
614 | WRITE_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 | ||
622 | READ8_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 | ||
656 | WRITE8_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 | ||
686 | READ8_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 | ||
723 | WRITE8_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 | ||
751 | WRITE_LINE_MEMBER( victor9k_state::drw_w ) | |
752 | { | |
753 | } | |
754 | ||
755 | WRITE_LINE_MEMBER( victor9k_state::erase_w ) | |
756 | { | |
757 | } | |
758 | ||
759 | WRITE_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 | ||
767 | 347 | //------------------------------------------------- |
768 | 348 | // VICTOR9K_KEYBOARD_INTERFACE( kb_intf ) |
769 | 349 | //------------------------------------------------- |
770 | 350 | |
771 | 351 | WRITE_LINE_MEMBER( victor9k_state::kbrdy_w ) |
772 | 352 | { |
353 | //logerror("KBRDY %u\n", state); | |
773 | 354 | m_via2->write_cb1(state); |
774 | 355 | |
775 | 356 | m_pic->ir6_w(state ? CLEAR_LINE : ASSERT_LINE); |
r241781 | r241782 | |
777 | 358 | |
778 | 359 | WRITE_LINE_MEMBER( victor9k_state::kbdata_w ) |
779 | 360 | { |
361 | //logerror("KBDATA %u\n", state); | |
780 | 362 | m_via2->write_cb2(state); |
781 | 363 | m_via2->write_pa6(state); |
782 | 364 | } |
783 | 365 | |
784 | //------------------------------------------------- | |
785 | // SLOT_INTERFACE( victor9k_floppies ) | |
786 | //------------------------------------------------- | |
787 | 366 | |
788 | ||
367 | WRITE_LINE_MEMBER( victor9k_state::fdc_irq_w ) | |
789 | 368 | { |
790 | m_ | |
369 | m_fdc_irq = state; | |
791 | 370 | |
792 | m_ | |
371 | m_pic->ir3_w(m_ssda_irq || m_via1_irq || m_via2_irq || m_via3_irq || m_fdc_irq); | |
793 | 372 | } |
794 | 373 | |
795 | int victor9k_state::load0_cb(floppy_image_device *device) | |
796 | { | |
797 | m_ds0 = 0; | |
798 | 374 | |
799 | m_via4->write_ca1(m_ds0); | |
800 | ||
801 | return IMAGE_INIT_PASS; | |
802 | } | |
803 | ||
804 | void victor9k_state::unload0_cb(floppy_image_device *device) | |
805 | { | |
806 | m_ds0 = 1; | |
807 | ||
808 | m_via4->write_ca1(m_ds0); | |
809 | } | |
810 | ||
811 | void 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 | ||
818 | int 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 | ||
827 | void victor9k_state::unload1_cb(floppy_image_device *device) | |
828 | { | |
829 | m_ds1 = 1; | |
830 | ||
831 | m_via4->write_cb1(m_ds1); | |
832 | } | |
833 | ||
834 | static SLOT_INTERFACE_START( victor9k_floppies ) | |
835 | SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) | |
836 | SLOT_INTERFACE_END | |
837 | ||
838 | ||
839 | 375 | //************************************************************************** |
840 | 376 | // MACHINE INITIALIZATION |
841 | 377 | //************************************************************************** |
842 | 378 | |
843 | //------------------------------------------------- | |
844 | // MACHINE_START( victor9k ) | |
845 | //------------------------------------------------- | |
846 | ||
847 | 379 | void victor9k_state::machine_start() |
848 | 380 | { |
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)); | |
856 | 389 | |
857 | 390 | // memory banking |
858 | 391 | address_space &program = m_maincpu->space(AS_PROGRAM); |
859 | 392 | program.install_ram(0x00000, m_ram->size() - 1, m_ram->pointer()); |
393 | } | |
860 | 394 | |
861 | m_via5->write_ca1(m_brdy); | |
862 | m_via6->write_ca1(m_gcrerr); | |
395 | void 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(); | |
863 | 405 | } |
864 | 406 | |
865 | 407 | |
866 | ||
867 | 408 | //************************************************************************** |
868 | 409 | // MACHINE CONFIGURATION |
869 | 410 | //************************************************************************** |
r241781 | r241782 | |
878 | 419 | MCFG_CPU_PROGRAM_MAP(victor9k_mem) |
879 | 420 | MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE(I8259A_TAG, pic8259_device, inta_cb) |
880 | 421 | |
881 | MCFG_CPU_ADD(I8048_TAG, I8048, XTAL_30MHz/6) | |
882 | MCFG_CPU_IO_MAP(floppy_io) | |
883 | ||
884 | 422 | // video hardware |
885 | 423 | MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) |
886 | 424 | MCFG_SCREEN_REFRESH_RATE(50) |
r241781 | r241782 | |
952 | 490 | MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor9k_state, via3_pb_w)) |
953 | 491 | MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor9k_state, via3_irq_w)) |
954 | 492 | |
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 | ||
976 | 493 | MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, NULL) |
977 | 494 | MCFG_RS232_RXD_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, rxa_w)) |
978 | 495 | MCFG_RS232_DCD_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, dcda_w)) |
r241781 | r241782 | |
991 | 508 | MCFG_VICTOR9K_KBRDY_HANDLER(WRITELINE(victor9k_state, kbrdy_w)) |
992 | 509 | MCFG_VICTOR9K_KBDATA_HANDLER(WRITELINE(victor9k_state, kbdata_w)) |
993 | 510 | |
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 | ||
994 | 516 | // internal ram |
995 | 517 | MCFG_RAM_ADD(RAM_TAG) |
996 | 518 | MCFG_RAM_DEFAULT_SIZE("128K") |
r241781 | r241782 | |
1019 | 541 | ROM_SYSTEM_BIOS( 1, "univ", "Universal" ) |
1020 | 542 | ROMX_LOAD( "v9000 univ. fe f3f7 13db.7j", 0x0000, 0x1000, CRC(25c7a59f) SHA1(8784e9aa7eb9439f81e18b8e223c94714e033911), ROM_BIOS(2) ) |
1021 | 543 | 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) ) | |
1028 | 544 | ROM_END |
1029 | 545 | |
1030 | 546 |
r241781 | r241782 | |
---|---|---|
1513 | 1513 | MCFG_GENERIC_LOAD(x07_state, x07_card) |
1514 | 1514 | |
1515 | 1515 | /* cassette */ |
1516 | MCFG_CASSETTE_ADD( | |
1516 | MCFG_CASSETTE_ADD("cassette") | |
1517 | 1517 | MCFG_CASSETTE_FORMATS(x07_cassette_formats) |
1518 | 1518 | MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED) |
1519 | 1519 | MCFG_CASSETTE_INTERFACE("x07_cass") |
1520 | 1520 | |
1521 | 1521 | /* Software lists */ |
1522 | 1522 | MCFG_SOFTWARE_LIST_ADD("card_list", "x07_card") |
1523 | MCFG_SOFTWARE_LIST_ADD("cass_list", "x07_cass") | |
1523 | 1524 | MACHINE_CONFIG_END |
1524 | 1525 | |
1525 | 1526 | /* ROM definition */ |
r241781 | r241782 | |
---|---|---|
69 | 69 | if (bank) |
70 | 70 | { |
71 | 71 | /* 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); | |
74 | 74 | program.install_ram(0x3000, 0x3fff, m_video_ram); |
75 | 75 | program.unmap_readwrite(0x4000, 0xbfff); |
76 | 76 | } |
r241781 | r241782 | |
---|---|---|
17 | 17 | #include "machine/ins8250.h" |
18 | 18 | #include "machine/mc146818.h" |
19 | 19 | #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" | |
23 | 23 | #include "machine/cs8221.h" |
24 | 24 | #include "machine/pit8253.h" |
25 | 25 | #include "machine/wd7600.h" |
r241781 | r241782 | |
29 | 29 | |
30 | 30 | #include "imagedev/harddriv.h" |
31 | 31 | #include "machine/am9517a.h" |
32 | #include "bus/pci/pci.h" | |
32 | #include "bus/lpci/pci.h" | |
33 | 33 | |
34 | 34 | #include "sound/dac.h" |
35 | 35 | #include "sound/speaker.h" |
r241781 | r241782 | |
---|---|---|
59 | 59 | emu_timer *keyb_signal_timer; |
60 | 60 | } m_kbd; |
61 | 61 | |
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; | |
66 | 65 | |
67 | 66 | DECLARE_WRITE_LINE_MEMBER(mc1502_pit8253_out1_changed); |
68 | 67 | DECLARE_WRITE_LINE_MEMBER(mc1502_pit8253_out2_changed); |
r241781 | r241782 | |
---|---|---|
16 | 16 | |
17 | 17 | #include "bus/rs232/rs232.h" |
18 | 18 | #include "cpu/i86/i86.h" |
19 | #include " | |
19 | #include "formats/victor9k_dsk.h" | |
20 | 20 | #include "imagedev/floppy.h" |
21 | 21 | #include "machine/ram.h" |
22 | 22 | #include "bus/centronics/ctronics.h" |
r241781 | r241782 | |
27 | 27 | #include "machine/pic8259.h" |
28 | 28 | #include "machine/z80dart.h" |
29 | 29 | #include "machine/victor9kb.h" |
30 | #include "machine/victor9k_fdc.h" | |
30 | 31 | #include "sound/hc55516.h" |
31 | 32 | #include "video/mc6845.h" |
32 | 33 | |
33 | 34 | #define I8088_TAG "8l" |
34 | #define I8048_TAG "5d" | |
35 | 35 | #define I8253_TAG "13h" |
36 | 36 | #define I8259A_TAG "7l" |
37 | 37 | #define UPD7201_TAG "16e" |
r241781 | r241782 | |
41 | 41 | #define M6522_1_TAG "m6522_1" |
42 | 42 | #define M6522_2_TAG "m6522_2" |
43 | 43 | #define M6522_3_TAG "14l" |
44 | #define M6522_4_TAG "1f" | |
45 | #define M6522_5_TAG "1k" | |
46 | #define M6522_6_TAG "1h" | |
47 | 44 | #define DAC0808_0_TAG "5b" |
48 | 45 | #define DAC0808_1_TAG "5c" |
49 | 46 | #define CENTRONICS_TAG "centronics" |
r241781 | r241782 | |
51 | 48 | #define RS232_B_TAG "rs232b" |
52 | 49 | #define SCREEN_TAG "screen" |
53 | 50 | #define VICTOR9K_KEYBOARD_TAG "victor9kb" |
51 | #define FDC_TAG "fdc" | |
54 | 52 | |
55 | 53 | class victor9k_state : public driver_device |
56 | 54 | { |
57 | 55 | public: |
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) | |
97 | 82 | { } |
98 | 83 | |
99 | 84 | required_device<cpu_device> m_maincpu; |
100 | required_device<cpu_device> m_fdc_cpu; | |
101 | 85 | required_device<ieee488_device> m_ieee488; |
102 | 86 | required_device<pic8259_device> m_pic; |
103 | 87 | required_device<upd7201_device> m_upd7201; |
r241781 | r241782 | |
105 | 89 | required_device<via6522_device> m_via1; |
106 | 90 | required_device<via6522_device> m_via2; |
107 | 91 | 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; | |
111 | 92 | required_device<hc55516_device> m_cvsd; |
112 | 93 | required_device<mc6845_device> m_crtc; |
113 | 94 | required_device<ram_device> m_ram; |
114 | required_device<floppy_image_device> m_floppy0; | |
115 | required_device<floppy_image_device> m_floppy1; | |
116 | 95 | required_device<victor9k_keyboard_device> m_kb; |
96 | required_device<victor_9000_fdc_t> m_fdc; | |
117 | 97 | required_device<rs232_port_device> m_rs232a; |
118 | 98 | required_device<rs232_port_device> m_rs232b; |
99 | required_device<palette_device> m_palette; | |
100 | required_shared_ptr<UINT8> m_video_ram; | |
119 | 101 | |
120 | 102 | virtual void machine_start(); |
103 | virtual void machine_reset(); | |
121 | 104 | |
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 | ||
129 | 105 | DECLARE_WRITE8_MEMBER( via1_pa_w ); |
130 | 106 | DECLARE_WRITE_LINE_MEMBER( write_nfrd ); |
131 | 107 | DECLARE_WRITE_LINE_MEMBER( write_ndac ); |
r241781 | r241782 | |
142 | 118 | DECLARE_WRITE8_MEMBER( via3_pb_w ); |
143 | 119 | DECLARE_WRITE_LINE_MEMBER( via3_irq_w ); |
144 | 120 | |
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 ); | |
149 | 122 | |
150 | DECLARE_WRITE8_MEMBER( via5_pb_w ); | |
151 | DECLARE_WRITE_LINE_MEMBER( via5_irq_w ); | |
123 | DECLARE_WRITE_LINE_MEMBER( ssda_irq_w ); | |
152 | 124 | |
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 ); | |
159 | 125 | DECLARE_WRITE_LINE_MEMBER( kbrdy_w ); |
160 | 126 | DECLARE_WRITE_LINE_MEMBER( kbdata_w ); |
161 | 127 | DECLARE_WRITE_LINE_MEMBER( vert_w ); |
162 | DECLARE_WRITE_LINE_MEMBER( via6_irq_w ); | |
163 | 128 | |
164 | DECLARE_WRITE_LINE_MEMBER( ssda_irq_w ); | |
165 | 129 | MC6845_UPDATE_ROW( crtc_update_row ); |
166 | 130 | |
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 | ||
180 | 131 | /* video state */ |
181 | required_shared_ptr<UINT8> m_video_ram; | |
182 | 132 | int m_brt; |
183 | 133 | int m_cont; |
184 | 134 | |
r241781 | r241782 | |
186 | 136 | int m_via1_irq; |
187 | 137 | int m_via2_irq; |
188 | 138 | int m_via3_irq; |
189 | int m_via4_irq; | |
190 | int m_via5_irq; | |
191 | int m_via6_irq; | |
139 | int m_fdc_irq; | |
192 | 140 | int m_ssda_irq; |
193 | 141 | |
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 | ||
215 | 142 | DECLARE_WRITE_LINE_MEMBER(mux_serial_b_w); |
216 | 143 | DECLARE_WRITE_LINE_MEMBER(mux_serial_a_w); |
217 | required_device<palette_device> m_palette; | |
218 | 144 | }; |
219 | 145 | |
220 | 146 | #endif |
r241781 | r241782 | |
---|---|---|
97 | 97 | DECLARE_WRITE_LINE_MEMBER( fdc_intrq_w ); |
98 | 98 | DECLARE_WRITE_LINE_MEMBER( fdc_drq_w ); |
99 | 99 | |
100 | void bankswitch(int bank); | |
100 | virtual void bankswitch(int bank); | |
101 | 101 | void update_nmi(); |
102 | 102 | |
103 | 103 | /* video state */ |
r241781 | r241782 | |
---|---|---|
1 | 1 | <?xml version="1.0"?> |
2 | 2 | <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> | |
8 | 20 | </element> |
9 | 21 | |
10 | 22 | <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> | |
17 | 36 | </element> |
18 | 37 | |
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" /> | |
31 | 50 | </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> | |
40 | 51 | </element> |
41 | 52 | |
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" /> | |
54 | 62 | </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> | |
63 | 63 | </element> |
64 | 64 | |
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" /> | |
77 | 74 | </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> | |
86 | 75 | </element> |
87 | 76 | |
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" /> | |
100 | 86 | </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> | |
109 | 87 | </element> |
110 | 88 | |
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" /> | |
123 | 98 | </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> | |
132 | 99 | </element> |
133 | 100 | |
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" /> | |
146 | 110 | </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> | |
155 | 111 | </element> |
156 | 112 | |
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" /> | |
169 | 122 | </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> | |
178 | 123 | </element> |
179 | 124 | |
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" /> | |
192 | 134 | </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> | |
201 | 135 | </element> |
202 | 136 | |
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" /> | |
215 | 146 | </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> | |
224 | 147 | </element> |
225 | 148 | |
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" /> | |
238 | 158 | </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> | |
247 | 159 | </element> |
248 | 160 | |
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" /> | |
261 | 170 | </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> | |
270 | 171 | </element> |
271 | 172 | |
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" /> | |
284 | 181 | </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" /> | |
292 | 185 | </text> |
293 | 186 | </element> |
294 | 187 | |
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" /> | |
307 | 193 | </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" /> | |
315 | 197 | </text> |
316 | 198 | </element> |
317 | 199 | |
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" /> | |
330 | 205 | </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" /> | |
338 | 209 | </text> |
339 | 210 | </element> |
340 | 211 | |
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" /> | |
353 | 217 | </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" /> | |
361 | 221 | </text> |
362 | 222 | </element> |
363 | 223 | |
364 | <view name="Default Layout"> | |
365 | 224 | |
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" /> | |
369 | 232 | </bezel> |
370 | 233 | |
371 | | |
234 | <!-- (don't care about the upper loudspeaker+logo part) --> | |
372 | 235 | |
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" /> | |
375 | 238 | </bezel> |
376 | <bezel element="0" inputtag="O0" inputmask="0x01"> | |
377 | <bounds x="100" y="32" width="20" height="10" /> | |
378 | </bezel> | |
379 | 239 | |
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" /> | |
382 | 242 | </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" /> | |
385 | 245 | </bezel> |
246 | <bezel element="static_red"> | |
247 | <bounds x="7" y="148" width="74" height="62" /> | |
248 | </bezel> | |
386 | 249 | |
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" /> | |
389 | 255 | </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" /> | |
392 | 258 | </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> | |
393 | 263 | |
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" /> | |
396 | 266 | </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" /> | |
399 | 269 | </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" /> | |
404 | 273 | </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" /> | |
407 | 276 | </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" /> | |
411 | 279 | </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" /> | |
414 | 283 | </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> | |
415 | 294 | |
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" /> | |
418 | 297 | </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" /> | |
421 | 300 | </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> | |
422 | 325 | |
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" /> | |
426 | 328 | </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" /> | |
429 | 331 | </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" /> | |
432 | 335 | </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" /> | |
435 | 338 | </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" /> | |
438 | 341 | </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" /> | |
441 | 345 | </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> | |
442 | 356 | |
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" /> | |
446 | 359 | </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" /> | |
449 | 362 | </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> | |
450 | 367 | |
451 | 368 | |
452 | | |
369 | <!-- bottom panels --> | |
453 | 370 | |
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" /> | |
456 | 373 | </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" /> | |
459 | 377 | </bezel> |
460 | 378 | |
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" /> | |
463 | 381 | </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" /> | |
466 | 385 | </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 | ||
467 | 403 | </view> |
468 | 404 | </mamelayout> |
r0 | r241782 | |
---|---|---|
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> |
r241781 | r241782 | |
---|---|---|
300 | 300 | MACHINE_RESET_MEMBER(at_state,at) |
301 | 301 | { |
302 | 302 | m_at_spkrdata = 0; |
303 | m_pit_out2 = | |
303 | m_pit_out2 = 1; | |
304 | 304 | m_dma_channel = -1; |
305 | 305 | m_cur_eop = false; |
306 | 306 | } |
r241781 | r241782 | |
---|---|---|
93 | 93 | |
94 | 94 | /* Components */ |
95 | 95 | #include "video/pc_vga.h" |
96 | #include "bus/pci/cirrus.h" | |
96 | #include "bus/lpci/cirrus.h" | |
97 | 97 | #include "cpu/powerpc/ppc.h" |
98 | 98 | #include "machine/ins8250.h" |
99 | 99 | #include "machine/upd765.h" |
r241781 | r241782 | |
101 | 101 | #include "machine/pic8259.h" |
102 | 102 | #include "machine/am9517a.h" |
103 | 103 | #include "machine/ataintf.h" |
104 | #include "bus/pci/pci.h" | |
104 | #include "bus/lpci/pci.h" | |
105 | 105 | #include "machine/intelfsh.h" |
106 | 106 | #include "machine/53c810.h" |
107 | 107 | #include "machine/ram.h" |
r241781 | r241782 | |
---|---|---|
572 | 572 | m_u73_q2 = 0; |
573 | 573 | m_out1 = 2; // initial state of pit output is undefined |
574 | 574 | m_pc_spkrdata = 0; |
575 | m_pit_out2 = | |
575 | m_pit_out2 = 1; | |
576 | 576 | m_dma_channel = -1; |
577 | 577 | m_cur_eop = false; |
578 | 578 | memset(m_dma_offset,0,sizeof(m_dma_offset)); |
r0 | r241782 | |
---|---|---|
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 | ||
37 | const device_type MS7004 = &device_creator<ms7004_device>; | |
38 | ||
39 | ROM_START( ms7004 ) | |
40 | ROM_REGION (0x800, MS7004_CPU_TAG, 0) | |
41 | ROM_LOAD ("mc7004_keyboard_original.rom", 0x0000, 0x800, CRC(69fcab53) SHA1(2d7cc7cd182f2ee09ecf2c539e33db3c2195f778)) | |
42 | ROM_END | |
43 | ||
44 | //------------------------------------------------- | |
45 | // ADDRESS_MAP | |
46 | //------------------------------------------------- | |
47 | ||
48 | static 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) | |
53 | ADDRESS_MAP_END | |
54 | ||
55 | //------------------------------------------------- | |
56 | // MACHINE_CONFIG | |
57 | //------------------------------------------------- | |
58 | ||
59 | static 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) | |
68 | MACHINE_CONFIG_END | |
69 | ||
70 | ||
71 | //------------------------------------------------- | |
72 | // machine_config_additions - device-specific | |
73 | // machine configurations | |
74 | //------------------------------------------------- | |
75 | ||
76 | machine_config_constructor ms7004_device::device_mconfig_additions() const | |
77 | { | |
78 | return MACHINE_CONFIG_NAME( ms7004 ); | |
79 | } | |
80 | ||
81 | const rom_entry *ms7004_device::device_rom_region() const | |
82 | { | |
83 | return ROM_NAME( ms7004 ); | |
84 | } | |
85 | ||
86 | //------------------------------------------------- | |
87 | // INPUT_PORTS( ms7004 ) | |
88 | //------------------------------------------------- | |
89 | /* | |
90 | bit sig XSn ВРn | |
91 | --- --- --- --- | |
92 | 0 8 16 15 | |
93 | 1 9 15 14 | |
94 | 2 10 14 13 | |
95 | 3 11 13 12 | |
96 | 4 12 19 16 | |
97 | 5 13 12 11 | |
98 | 6 14 11 10 | |
99 | 7 15 10 9 | |
100 | 8 16 9 8 | |
101 | 9 17 8 7 | |
102 | 10 18 7 6 | |
103 | 11 19 6 5 | |
104 | 12 20 3 1 | |
105 | 13 21 1 2 | |
106 | 14 22 4 3 | |
107 | 15 23 5 4 | |
108 | ||
109 | 0xc9 KEY_LANGLE_RANGLE 'резервная клавиша' | |
110 | 0xbc KEY_DELETE ЗБ | |
111 | 0xbd KEY_RETURN ВК | |
112 | 0xbf KEY_TILDE '; +' | |
113 | 0xc4 - 'Ъ' | |
114 | 0xca - '/ ?' | |
115 | 0xed KEY_PERIOD 'Ю @' | |
116 | 0xf1 - '_' | |
117 | <...> | |
118 | ||
119 | 0x56 KEY_F1 СТОП КАДР | |
120 | 0x57 KEY_F2 ПЕЧАТЬ КАДРА | |
121 | 0x58 KEY_F3 ПАУЗА | |
122 | 0x59 KEY_F4 УСТ РЕЖИМА | |
123 | 0x5a KEY_F5 Ф5 | |
124 | ||
125 | 0x64 KEY_F6 ПРЕРЫВ | |
126 | 0x65 KEY_F7 ПРОДОЛЖ | |
127 | 0x66 KEY_F8 ОТМЕН | |
128 | 0x67 KEY_F9 ОСНОВН КАДР | |
129 | 0x69 KEY_F10 ВЫХОД | |
130 | ||
131 | 0x71 KEY_F11 Ф11 (АР2) | |
132 | 0x72 KEY_F12 Ф12 (ВШ) | |
133 | 0x73 KEY_F13 Ф13 (ПС) | |
134 | 0x74 KEY_F14 ДОП ВАРИАНТ | |
135 | ||
136 | 0x7c KEY_HELP ПМ | |
137 | 0x7d KEY_MENU ИСП | |
138 | ||
139 | 0x80 KEY_F17 Ф17 | |
140 | 0x81 KEY_F18 Ф18 | |
141 | 0x82 KEY_F19 Ф19 | |
142 | 0x83 KEY_F20 Ф20 | |
143 | ||
144 | 0xb0 KEY_LOCK ФКС | |
145 | 0xae KEY_SHIFT ВР | |
146 | 0xaf KEY_CTRL СУ | |
147 | ||
148 | 0xb1 KEY_META КМП | |
149 | 0xb2 - РУС/ЛАТ | |
150 | ||
151 | 0x8a KEY_FIND НТ | |
152 | 0x8b KEY_INSERT_HERE ВСТ | |
153 | 0x8c KEY_REMOVE УДАЛ | |
154 | 0x8d KEY_SELECT ВЫБР | |
155 | 0x8e KEY_PREV_SCREEN ПРЕД КАДР | |
156 | 0x8f KEY_NEXT_SCREEN СЛЕД КАДР | |
157 | ||
158 | nothing sends '@' or '`' | |
159 | ||
160 | `/~ sends ^/~ | |
161 | 2/@ sends 2/" | |
162 | 6/^ sends 6/& | |
163 | 7/& sends 7/' | |
164 | 8/ * sends 8/( | |
165 | 9/( sends 9/) | |
166 | 0/) sends 0/0 | |
167 | -/_ sends _/_ | |
168 | +/= sends -/= | |
169 | ;/: sends ;/+ | |
170 | '/" sends :/ * | |
171 | ||
172 | F10 sends ^C | |
173 | F11 sends ESC | |
174 | F12 sends ^H | |
175 | */ | |
176 | INPUT_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) | |
336 | INPUT_PORTS_END | |
337 | ||
338 | ||
339 | //------------------------------------------------- | |
340 | // input_ports - device-specific input ports | |
341 | //------------------------------------------------- | |
342 | ||
343 | ioport_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 | ||
356 | ms7004_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 | ||
386 | void ms7004_device::device_start() | |
387 | { | |
388 | m_tx_handler.resolve_safe(); | |
389 | } | |
390 | ||
391 | ||
392 | //------------------------------------------------- | |
393 | // device_reset - device-specific reset | |
394 | //------------------------------------------------- | |
395 | ||
396 | void ms7004_device::device_reset() | |
397 | { | |
398 | } | |
399 | ||
400 | ||
401 | //------------------------------------------------- | |
402 | // p1_w - | |
403 | //------------------------------------------------- | |
404 | ||
405 | WRITE8_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 | ||
430 | WRITE8_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 | ||
455 | WRITE8_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 | ||
492 | READ8_MEMBER( ms7004_device::t1_r ) | |
493 | { | |
494 | if (!BIT(m_p1,4)) | |
495 | return m_keylatch; | |
496 | else | |
497 | return 0; | |
498 | } |
r0 | r241782 | |
---|---|---|
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 | ||
30 | class ms7004_device : public device_t //, public device_serial_interface | |
31 | { | |
32 | public: | |
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 | ||
43 | protected: | |
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 | ||
51 | private: | |
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 | |
81 | extern const device_type MS7004; | |
82 | ||
83 | #endif |
r0 | r241782 | |
---|---|---|
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 | ||
46 | const device_type VICTOR_9000_FDC = &device_creator<victor_9000_fdc_t>; | |
47 | ||
48 | ||
49 | //------------------------------------------------- | |
50 | // ROM( victor_9000_fdc ) | |
51 | //------------------------------------------------- | |
52 | ||
53 | ROM_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) ) | |
59 | ROM_END | |
60 | ||
61 | ||
62 | //------------------------------------------------- | |
63 | // rom_region - device-specific ROM region | |
64 | //------------------------------------------------- | |
65 | ||
66 | const 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 | ||
76 | static 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) | |
82 | ADDRESS_MAP_END | |
83 | ||
84 | ||
85 | //------------------------------------------------- | |
86 | // SLOT_INTERFACE( victor9k_floppies ) | |
87 | //------------------------------------------------- | |
88 | ||
89 | int 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 | ||
96 | void victor_9000_fdc_t::unload0_cb(floppy_image_device *device) | |
97 | { | |
98 | m_via4->write_ca1(1); | |
99 | } | |
100 | ||
101 | int 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 | ||
108 | void victor_9000_fdc_t::unload1_cb(floppy_image_device *device) | |
109 | { | |
110 | m_via4->write_cb1(1); | |
111 | } | |
112 | ||
113 | static 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 | |
116 | SLOT_INTERFACE_END | |
117 | ||
118 | FLOPPY_FORMATS_MEMBER( victor_9000_fdc_t::floppy_formats ) | |
119 | FLOPPY_VICTOR_9000_FORMAT | |
120 | FLOPPY_FORMATS_END | |
121 | ||
122 | ||
123 | //------------------------------------------------- | |
124 | // MACHINE_CONFIG_FRAGMENT( victor_9000_fdc ) | |
125 | //------------------------------------------------- | |
126 | ||
127 | static 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) | |
153 | MACHINE_CONFIG_END | |
154 | ||
155 | ||
156 | //------------------------------------------------- | |
157 | // machine_config_additions - device-specific | |
158 | // machine configurations | |
159 | //------------------------------------------------- | |
160 | ||
161 | machine_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 | ||
176 | victor_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 | ||
228 | void 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 | ||
271 | void 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 | ||
298 | void 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 | ||
322 | READ8_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 | ||
347 | READ8_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 | ||
357 | WRITE8_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 | ||
437 | READ8_MEMBER( victor_9000_fdc_t::tach0_r ) | |
438 | { | |
439 | return m_tach0; | |
440 | } | |
441 | ||
442 | ||
443 | //------------------------------------------------- | |
444 | // tach1_r - | |
445 | //------------------------------------------------- | |
446 | ||
447 | READ8_MEMBER( victor_9000_fdc_t::tach1_r ) | |
448 | { | |
449 | return m_tach1; | |
450 | } | |
451 | ||
452 | ||
453 | void 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 | ||
481 | void 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 | ||
501 | WRITE8_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 | ||
516 | WRITE8_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 | ||
556 | WRITE8_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 | ||
596 | WRITE_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 | ||
609 | WRITE_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 | ||
616 | READ8_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 | ||
639 | WRITE8_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 | ||
666 | WRITE_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 | ||
674 | READ8_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 | ||
710 | WRITE8_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 | ||
762 | READ8_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 | ||
799 | WRITE8_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 | ||
847 | WRITE_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 | ||
864 | WRITE_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 | ||
876 | WRITE_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 | ||
883 | READ8_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 | ||
898 | WRITE8_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 | ||
913 | floppy_image_device* victor_9000_fdc_t::get_floppy() | |
914 | { | |
915 | return m_drive ? m_floppy1 : m_floppy0; | |
916 | } | |
917 | ||
918 | void 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 | ||
942 | void victor_9000_fdc_t::checkpoint() | |
943 | { | |
944 | get_next_edge(machine().time()); | |
945 | checkpoint_live = cur_live; | |
946 | } | |
947 | ||
948 | void victor_9000_fdc_t::rollback() | |
949 | { | |
950 | cur_live = checkpoint_live; | |
951 | get_next_edge(cur_live.tm); | |
952 | } | |
953 | ||
954 | void 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 | ||
960 | void victor_9000_fdc_t::stop_writing(const attotime &tm) | |
961 | { | |
962 | commit(tm); | |
963 | cur_live.write_start_time = attotime::never; | |
964 | } | |
965 | ||
966 | bool 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 | ||
985 | void 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 | ||
999 | void 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 | ||
1008 | void 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 | ||
1031 | void 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 | ||
1053 | void 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 | ||
1180 | void 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 | ||
1187 | int 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 | } |
r0 | r241782 | |
---|---|---|
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 | ||
46 | class victor_9000_fdc_t : public device_t | |
47 | { | |
48 | public: | |
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 | ||
89 | protected: | |
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 | ||
99 | private: | |
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 | |
234 | extern const device_type VICTOR_9000_FDC; | |
235 | ||
236 | ||
237 | ||
238 | #endif |
r241781 | r241782 | |
---|---|---|
28 | 28 | const device_type VICTOR9K_KEYBOARD = &device_creator<victor9k_keyboard_device>; |
29 | 29 | |
30 | 30 | |
31 | ||
32 | 31 | //------------------------------------------------- |
33 | 32 | // ROM( victor9k_keyboard ) |
34 | 33 | //------------------------------------------------- |
r241781 | r241782 | |
237 | 236 | // victor9k_keyboard_device - constructor |
238 | 237 | //------------------------------------------------- |
239 | 238 | |
240 | victor9k_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) | |
239 | victor9k_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) | |
262 | 261 | { |
263 | 262 | } |
264 | 263 | |
r241781 | r241782 | |
291 | 290 | |
292 | 291 | |
293 | 292 | //------------------------------------------------- |
294 | // kbrdy_r - | |
295 | //------------------------------------------------- | |
296 | ||
297 | READ_LINE_MEMBER( victor9k_keyboard_device::kbrdy_r ) | |
298 | { | |
299 | return m_kbrdy; | |
300 | } | |
301 | ||
302 | ||
303 | //------------------------------------------------- | |
304 | 293 | // kback_w - |
305 | 294 | //------------------------------------------------- |
306 | 295 | |
307 | 296 | WRITE_LINE_MEMBER( victor9k_keyboard_device::kback_w ) |
308 | 297 | { |
298 | //logerror("KBACK %u\n", state); | |
309 | 299 | m_kback = state; |
310 | 300 | } |
311 | 301 | |
312 | 302 | |
313 | 303 | //------------------------------------------------- |
314 | // kbdata_r - | |
315 | //------------------------------------------------- | |
316 | ||
317 | READ_LINE_MEMBER( victor9k_keyboard_device::kbdata_r ) | |
318 | { | |
319 | return m_kbdata; | |
320 | } | |
321 | ||
322 | ||
323 | //------------------------------------------------- | |
324 | 304 | // kb_p1_r - |
325 | 305 | //------------------------------------------------- |
326 | 306 | |
r241781 | r241782 | |
360 | 340 | m_y = data & 0x0f; |
361 | 341 | } |
362 | 342 | |
363 | logerror("P1 %02x\n", data); | |
343 | //logerror("P1 %02x\n", data); | |
364 | 344 | } |
365 | 345 | |
366 | 346 | |
r241781 | r241782 | |
374 | 354 | |
375 | 355 | bit description |
376 | 356 | |
377 | P20 keylatch enable ? | |
378 | P21 | |
379 | P22 key available ? | |
380 | P23 data ? | |
357 | P20 ? | |
358 | P21 KBRDY | |
359 | P22 ? | |
360 | P23 KBDATA | |
381 | 361 | |
382 | 362 | */ |
383 | 363 | |
384 | int kbrdy = BIT(data, | |
364 | int kbrdy = BIT(data, 1); | |
385 | 365 | |
386 | 366 | if (m_kbrdy != kbrdy) |
387 | 367 | { |
r241781 | r241782 | |
397 | 377 | m_kbdata_handler(m_kbdata); |
398 | 378 | } |
399 | 379 | |
400 | logerror("P2 %0 | |
380 | //logerror("P2 %02x\n", data); | |
401 | 381 | } |
402 | 382 | |
403 | 383 | |
r241781 | r241782 | |
407 | 387 | |
408 | 388 | READ8_MEMBER( victor9k_keyboard_device::kb_t1_r ) |
409 | 389 | { |
410 | logerror("read T1 %u\n", m_kback); | |
411 | ||
412 | 390 | return m_kback; |
413 | 391 | } |
r241781 | r241782 | |
---|---|---|
51 | 51 | virtual machine_config_constructor device_mconfig_additions() const; |
52 | 52 | virtual ioport_constructor device_input_ports() const; |
53 | 53 | |
54 | DECLARE_READ_LINE_MEMBER( kbrdy_r ); | |
55 | 54 | DECLARE_WRITE_LINE_MEMBER( kback_w ); |
56 | DECLARE_READ_LINE_MEMBER( kbdata_r ); | |
57 | 55 | |
58 | 56 | // not really public |
59 | 57 | DECLARE_READ8_MEMBER( kb_p1_r ); |
r241781 | r241782 | |
---|---|---|
11 | 11 | |
12 | 12 | /* |
13 | 13 | |
14 | PCB Layout | |
15 | ---------- | |
16 | ||
17 | Maxi-Switch Co. | |
18 | 630107-02 | |
19 | ||
20 | |-----------------------------------------------------------------------| | |
21 | | |--CN1--| CN2 | | |
22 | | 8748 6MHz 74154 * | | |
23 | | | | |
24 | |-----------------------------------------------------------------------| | |
25 | ||
26 | Notes: | |
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 | ||
14 | 39 | TODO: |
15 | 40 | |
16 | 41 | - repeat |
r241781 | r241782 | |
63 | 88 | |
64 | 89 | static ADDRESS_MAP_START( xerox_820_keyboard_io, AS_IO, 8, xerox_820_keyboard_t ) |
65 | 90 | 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 | |
67 | 92 | AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(kb_t0_r) |
68 | 93 | AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T1) AM_READ(kb_t1_r) |
69 | 94 | AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_WRITE(kb_bus_w) |
r241781 | r241782 | |
75 | 100 | //------------------------------------------------- |
76 | 101 | |
77 | 102 | static MACHINE_CONFIG_FRAGMENT( xerox_820_keyboard ) |
78 | MCFG_CPU_ADD(I8748_TAG, I8048, | |
103 | MCFG_CPU_ADD(I8748_TAG, I8048, XTAL_6MHz) | |
79 | 104 | 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)) | |
83 | 105 | MACHINE_CONFIG_END |
84 | 106 | |
85 | 107 | |
r241781 | r241782 | |
261 | 283 | m_kbstb_cb.resolve_safe(); |
262 | 284 | } |
263 | 285 | |
286 | void xerox_820_keyboard_t::device_reset_after_children() | |
287 | { | |
288 | m_maincpu->set_input_line(MCS48_INPUT_IRQ, ASSERT_LINE); | |
289 | } | |
264 | 290 | |
291 | ||
265 | 292 | //------------------------------------------------- |
266 | 293 | // kb_p1_r - |
267 | 294 | //------------------------------------------------- |
r241781 | r241782 | |
331 | 358 | |
332 | 359 | READ8_MEMBER( xerox_820_keyboard_t::kb_t0_r ) |
333 | 360 | { |
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; | |
335 | 370 | } |
336 | 371 | |
337 | 372 | |
r241781 | r241782 | |
341 | 376 | |
342 | 377 | READ8_MEMBER( xerox_820_keyboard_t::kb_t1_r ) |
343 | 378 | { |
344 | return 1; // ??? | |
379 | return 1; // ??? if 0, toggle P17 | |
345 | 380 | } |
346 | 381 | |
347 | 382 |
r241781 | r241782 | |
---|---|---|
16 | 16 | |
17 | 17 | #include "emu.h" |
18 | 18 | #include "cpu/mcs48/mcs48.h" |
19 | #include "machine/clock.h" | |
20 | 19 | |
21 | 20 | |
22 | 21 | |
r241781 | r241782 | |
61 | 60 | // device-level overrides |
62 | 61 | virtual void device_start(); |
63 | 62 | virtual void device_reset(); |
63 | virtual void device_reset_after_children(); | |
64 | 64 | |
65 | 65 | private: |
66 | 66 | required_device<cpu_device> m_maincpu; |
r241781 | r241782 | |
---|---|---|
297 | 297 | |
298 | 298 | // Milton Bradley |
299 | 299 | microvsn // MicroVision - 1979 |
300 | simon | |
300 | 301 | |
301 | 302 | // Entex |
302 | 303 | advision // Adventurevision |
r241781 | r241782 | |
2477 | 2478 | vax785 |
2478 | 2479 | ms0515 |
2479 | 2480 | ie15 |
2481 | dvk_ksm | |
2480 | 2482 | asmapro |
2481 | 2483 | asma2k |
2482 | 2484 | altos5 |
r241781 | r241782 | |
---|---|---|
425 | 425 | MACHINES += LDVP931 |
426 | 426 | MACHINES += LH5810 |
427 | 427 | MACHINES += LINFLASH |
428 | #MACHINES += LPCI | |
428 | 429 | MACHINES += LSI53C810 |
429 | 430 | MACHINES += M68307 |
430 | 431 | MACHINES += M68340 |
r241781 | r241782 | |
478 | 479 | MACHINES += PC_LPT |
479 | 480 | MACHINES += PCCARD |
480 | 481 | MACHINES += PCF8593 |
481 | #MACHINES += PCI | |
482 | 482 | MACHINES += PCKEYBRD |
483 | 483 | MACHINES += PIC8259 |
484 | 484 | MACHINES += PIT8253 |
r241781 | r241782 | |
599 | 599 | BUSES += ISA |
600 | 600 | BUSES += ISBX |
601 | 601 | BUSES += KC |
602 | BUSES += LPCI | |
602 | 603 | BUSES += MACPDS |
603 | 604 | BUSES += MIDI |
604 | 605 | BUSES += MEGADRIVE |
r241781 | r241782 | |
609 | 610 | BUSES += O2 |
610 | 611 | BUSES += ORICEXT |
611 | 612 | BUSES += PCE |
612 | BUSES += PCI | |
613 | 613 | BUSES += PC_JOY |
614 | 614 | BUSES += PC_KBD |
615 | 615 | BUSES += PET |
r241781 | r241782 | |
901 | 901 | $(MAME_MACHINE)/naomim2.o \ |
902 | 902 | $(MAME_MACHINE)/naomim4.o \ |
903 | 903 | $(MAME_MACHINE)/naomirom.o \ |
904 | $(MAME_MACHINE)/315-5881_crypt.o \ | |
904 | 905 | $(MAME_VIDEO)/powervr2.o \ |
905 | 906 | $(MAME_DRIVERS)/neogeo.o \ |
906 | 907 | $(MAME_MACHINE)/neoboot.o \ |
r241781 | r241782 | |
959 | 960 | $(MESS_DRIVERS)/apricotf.o \ |
960 | 961 | $(MESS_DRIVERS)/apricotp.o \ |
961 | 962 | $(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 \ | |
963 | 964 | |
964 | 965 | $(MESSOBJ)/adc.a: \ |
965 | 966 | $(MESS_DRIVERS)/super6.o \ |
r241781 | r241782 | |
1179 | 1180 | |
1180 | 1181 | $(MESSOBJ)/elektrka.a: \ |
1181 | 1182 | $(MESS_DRIVERS)/bk.o $(MESS_MACHINE)/bk.o $(MESS_VIDEO)/bk.o \ |
1183 | $(MESS_DRIVERS)/dvk_ksm.o $(MESS_MACHINE)/ms7004.o \ | |
1182 | 1184 | $(MESS_DRIVERS)/mk85.o \ |
1183 | 1185 | $(MESS_DRIVERS)/mk90.o \ |
1184 | 1186 | |
r241781 | r241782 | |
1351 | 1353 | |
1352 | 1354 | $(MESSOBJ)/mb.a: \ |
1353 | 1355 | $(MESS_DRIVERS)/microvsn.o \ |
1356 | $(MESS_DRIVERS)/simon.o \ | |
1354 | 1357 | |
1355 | 1358 | $(MESSOBJ)/mchester.a: \ |
1356 | 1359 | $(MESS_DRIVERS)/ssem.o \ |
r241781 | r241782 | |
2122 | 2125 | $(MESS_DRIVERS)/sdk85.o: $(MESS_LAYOUT)/sdk85.lh |
2123 | 2126 | $(MESS_DRIVERS)/sdk86.o: $(MESS_LAYOUT)/sdk86.lh |
2124 | 2127 | $(MESS_DRIVERS)/selz80.o: $(MESS_LAYOUT)/selz80.lh |
2128 | $(MESS_DRIVERS)/simon.o: $(MESS_LAYOUT)/simon.lh | |
2125 | 2129 | $(MESS_DRIVERS)/sitcom.o: $(MESS_LAYOUT)/sitcom.lh |
2126 | 2130 | $(MESS_DRIVERS)/slc1.o: $(MESS_LAYOUT)/slc1.lh |
2127 | 2131 | $(MESS_DRIVERS)/sms.o: $(MESS_LAYOUT)/sms1.lh |
r241781 | r241782 | |
---|---|---|
20 | 20 | #include "corestr.h" |
21 | 21 | |
22 | 22 | #include "formats/a26_cas.h" |
23 | #include "formats/ace_tap.h" | |
24 | #include "formats/adam_cas.h" | |
23 | 25 | #include "formats/apf_apt.h" |
24 | 26 | #include "formats/cbm_tap.h" |
25 | 27 | #include "formats/cgen_cas.h" |
26 | 28 | #include "formats/coco_cas.h" |
27 | 29 | #include "formats/csw_cas.h" |
30 | #include "formats/fm7_cas.h" | |
28 | 31 | #include "formats/fmsx_cas.h" |
29 | 32 | #include "formats/gtp_cas.h" |
30 | 33 | #include "formats/hect_tap.h" |
31 | #include "formats/ace_tap.h" | |
32 | #include "formats/adam_cas.h" | |
33 | 34 | #include "formats/kc_cas.h" |
34 | 35 | #include "formats/kim1_cas.h" |
35 | 36 | #include "formats/lviv_lvt.h" |
36 | 37 | #include "formats/mz_cas.h" |
37 | 38 | #include "formats/orao_cas.h" |
38 | 39 | #include "formats/oric_tap.h" |
40 | #include "formats/p6001_cas.h" | |
41 | #include "formats/phc25_cas.h" | |
39 | 42 | #include "formats/pmd_cas.h" |
40 | 43 | #include "formats/primoptp.h" |
41 | 44 | #include "formats/rk_cas.h" |
42 | 45 | #include "formats/sc3000_bit.h" |
46 | #include "formats/sol_cas.h" | |
47 | #include "formats/sorc_cas.h" | |
43 | 48 | #include "formats/sord_cas.h" |
49 | #include "formats/spc1000_cas.h" | |
44 | 50 | #include "formats/svi_cas.h" |
45 | 51 | #include "formats/thom_cas.h" |
46 | 52 | #include "formats/trs_cas.h" |
r241781 | r241782 | |
50 | 56 | #include "formats/vg5k_cas.h" |
51 | 57 | #include "formats/vt_cas.h" |
52 | 58 | #include "formats/x07_cas.h" |
59 | #include "formats/x1_tap.h" | |
53 | 60 | #include "formats/zx81_p.h" |
54 | 61 | |
55 | 62 | struct SupportedCassetteFormats |
r241781 | r241782 | |
60 | 67 | }; |
61 | 68 | |
62 | 69 | const 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"}, | |
65 | 71 | {"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"}, | |
69 | 77 | {"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"}, | |
75 | 84 | {"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"}, | |
83 | 95 | {"rku", rku_cassette_formats ,"UT-88"}, |
84 | 96 | {"rk8", rk8_cassette_formats ,"Mikro-80"}, |
85 | 97 | {"rks", rks_cassette_formats ,"Specialist"}, |
86 | 98 | {"rko", rko_cassette_formats ,"Orion"}, |
87 | 99 | {"rkr", rkr_cassette_formats ,"Radio-86RK"}, |
88 | {"rka", rka_cassette_formats ,"Apogee"}, | |
100 | {"rka", rka_cassette_formats ,"Zavod BRA Apogee BK-01"}, | |
89 | 101 | {"rkm", rkm_cassette_formats ,"Mikrosha"}, |
90 | {"rkp", rkp_cassette_formats ,"Partner"}, | |
102 | {"rkp", rkp_cassette_formats ,"SAM SKB VM Partner-01.01"}, | |
91 | 103 | {"sc3000", sc3000_cassette_formats ,"Sega SC-3000"}, |
104 | {"sol20", sol20_cassette_formats ,"PTC SOL-20"}, | |
105 | {"sorcerer", sorcerer_cassette_formats ,"Exidy Sorcerer"}, | |
92 | 106 | {"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"}, | |
96 | 110 | {"trs80l2", trs80l2_cassette_formats ,"TRS-80 Level 2"}, |
97 | 111 | {"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"}, | |
100 | 113 | {"uef", uef_cassette_formats ,"Acorn Electron"}, |
101 | {"vg5k", vg5k_cassette_formats ,"VG 5000 | |
114 | {"vg5k", vg5k_cassette_formats ,"Philips VG 5000"}, | |
102 | 115 | {"vtech1", vtech1_cassette_formats ,"Video Technology Laser 110-310"}, |
103 | 116 | {"vtech2", vtech2_cassette_formats ,"Video Technology Laser 350-700"}, |
104 | 117 | {"x07", x07_cassette_formats ,"Canon X-07"}, |
118 | {"x1", x1_cassette_formats ,"Sharp X1"}, | |
119 | {"zx80_o", zx80_o_format ,"Sinclair ZX80"}, | |
105 | 120 | {"zx81_p", zx81_p_format ,"Sinclair ZX81"}, |
106 | {"zx80_o", zx80_o_format ,"Sinclair ZX80"}, | |
121 | ||
122 | ||
123 | ||
107 | 124 | {NULL,NULL,NULL} |
108 | 125 | }; |
109 | 126 |
r241781 | r241782 | |
---|---|---|
83 | 83 | OSDSRC = $(SRC)/osd |
84 | 84 | OSDOBJ = $(OBJ)/osd |
85 | 85 | |
86 | # default to SDL2 for non-OS/2 builds now | |
86 | # default to SDL2 for non-OS/2, non-Emscripten builds now | |
87 | 87 | ifndef SDL_LIBVER |
88 | 88 | ifneq ($(TARGETOS),os2) |
89 | ifneq ($(TARGETOS),emscripten) | |
89 | 90 | SDL_LIBVER = sdl2 |
90 | 91 | else |
91 | 92 | SDL_LIBVER = sdl |
92 | 93 | endif |
94 | else | |
95 | SDL_LIBVER = sdl | |
93 | 96 | endif |
97 | endif | |
94 | 98 | |
95 | 99 | ifndef NO_USE_QTDEBUG |
96 | 100 | OBJDIRS += $(OSDOBJ)/modules/debugger/qt |
r241781 | r241782 | |
258 | 262 | NO_USE_XINPUT = 1 |
259 | 263 | NO_USE_MIDI = 1 |
260 | 264 | NO_USE_QTDEBUG = 1 |
265 | DONT_USE_NETWORK = 1 | |
261 | 266 | endif |
262 | 267 | |
263 | 268 | ifeq ($(TARGETOS),macosx) |
r241781 | r241782 | |
779 | 784 | LIBS += -lpcap |
780 | 785 | endif |
781 | 786 | endif |
787 | else | |
788 | OSDOBJS += $(SDLOBJ)/netdev.o | |
782 | 789 | endif |
783 | 790 | |
784 | 791 | #------------------------------------------------- |
https://github.com/mamedev/mame/commit/6c0f5eb6452b2c762460fb27ef9dc573256f7868 |
Previous | 199869 Revisions | Next |