Previous 199869 Revisions Next

r41382 Tuesday 27th October, 2015 at 10:35:37 UTC by Miodrag Milanović
Merge pull request #432 from ImJezze/master

Vector Rendering Fixes and Improvements
[hash]a2600.xml a5200.xml bbc_32016_flop.xml* bbc_65c102_flop.xml* bbc_80186_flop.xml* bbc_arm_flop.xml* bbc_z80_flop.xml* bbca_cass.xml bbcb_cass.xml bbcb_flop.xml* bbcb_us_flop.xml bbcm_flop.xml* bbcmc_flop.xml megadriv.xml pico.xml pro128s_flop.xml* spectrum_cass.xml unichamp.xml*
[scripts/src]bus.lua
[scripts/target/mame]arcade.lua mess.lua
[src/devices/bus/cpc]brunword4.c brunword4.h cpcexp.h ddi1.c ddi1.h doubler.c* doubler.h*
[src/devices/bus/econet]e01.c
[src/devices/bus/isa]omti8621.c omti8621.h
[src/devices/bus/vcs]dpcplus.c* dpcplus.h* rom.c rom.h vcs_slot.c vcs_slot.h
[src/devices/cpu/i86]i86.c
[src/devices/imagedev]floppy.c
[src/devices/machine]mc146818.c mc146818.h mos6530n.c mos6530n.h
[src/devices/sound]tms5220.c
[src/devices/video]mc6845.c mc6845.h psx.c saa5050.c saa5050.h
[src/emu]machine.c machine.h screen.c screen.h
[src/emu/drivers]xtal.h
[src/lib/formats]apollo_dsk.c apollo_dsk.h bbc_dsk.c bbc_dsk.h camplynx_dsk.c* camplynx_dsk.h*
[src/lib/util]corealloc.h
[src/mame]arcade.lst mess.lst
[src/mame/drivers]a2600.c amiga.c amstrad.c apollo.c apple2.c apple2e.c aristmk5.c atari400.c bbc.c by17.c by35.c camplynx.c cat.c champbas.c cosmic.c dec0.c ec184x.c gatron.c ibmpcjr.c imds2.c konamim2.c macpci.c megadriv.c namcos23.c osborne1.c pc.c pcd.c saturn.c segac2.c shougi.c sorcerer.c subhuntr.c* suna16.c swyft.c* system1.c ti99_4x.c timeplt.c unichamp.c* vicdual.c wacky_gator.c
[src/mame/includes]abc80x.h amstrad.h apollo.h bbc.h champbas.h imds2.h osborne1.h timeplt.h
[src/mame/layout]by17.lay by17_matahari.lay* by17_pwerplay.lay* by35.lay by35_playboy.lay* wackygtr.lay*
[src/mame/machine]amstrad.c apollo.c bbc.c genpin.h osborne1.c psxcd.c psxcd.h xbox.c
[src/mame/video]apple2.c bbc.c champbas.c chihiro.c decbac06.c decbac06.h gic.c* gic.h* timeplt.c
[src/osd]osdnet.c
[src/osd/modules/debugger/osx]debugview.m
[src/osd/windows]input.c

trunk/hash/a2600.xml
r249893r249894
1121111211      </part>
1121211212   </software>
1121311213
11214   <software name="pitfallsg" cloneof="pitfall">
11215      <description>Pitfall (Star Game)</description>
11214   <software name="pitfallsg" cloneof="pitfall">   <!-- significant visual changes -->
11215      <description>Pitfall (Star Game) (aka Tom Boy)</description>
1121611216      <year>19??</year>
1121711217      <publisher>Star Game</publisher>
1121811218      <part name="cart" interface="a2600_cart">
r249893r249894
1794017940         </dataarea>
1794117941      </part>
1794217942   </software>
17943
17944  <!-- The AtariAge logo looks incorrect, but games function, there are probably other version too, YouTube shows a 2007 version. -->
17945   <software name="stelstok">
17946      <description>Stella's Stocking 2008</description>
17947      <year>2008</year>
17948      <publisher>AtariAge</publisher>
17949      <sharedfeat name="compatibility" value="NTSC" />
17950      <part name="cart" interface="a2600_cart">
17951         <feature name="slot" value="a26_x07" />
17952         <dataarea name="rom" size="65536">
17953            <rom name="m27c512.bin" size="65536" crc="c1da7d3b" sha1="4d9c06940754ba03e2eca2d88ea4201b8d9e7805" offset="0" />
17954         </dataarea>
17955      </part>
17956   </software>
17957
17958  <!-- This was released by the author, also available via Atariage, are both versions the same? needs DPC+ emulation -->
17959  <software name="stayfr2" supported="no">
17960    <description>Stay Frosty 2 (NTSC)</description>
17961    <year>2013</year>
17962    <publisher>Spiceware</publisher>
17963    <sharedfeat name="compatibility" value="NTSC" />
17964    <part name="cart" interface="a2600_cart">
17965      <feature name="slot" value="a26_dpcplus" />
17966      <dataarea name="rom" size="0x8000">
17967        <rom name="SF2_20131217_RC8_NTSC.bin" size="0x8000" crc="4eb739ab" sha1="5eceaf8e90bd9a002f4935f082df7b25716dceb0" offset="0" />
17968      </dataarea>
17969    </part>
17970  </software>
17971
17972  <software name="stayfr2d" cloneof="stayfr2" supported="no">
17973    <description>Stay Frosty 2 (NTSC, demo)</description>
17974    <year>2013</year>
17975    <publisher>Spiceware</publisher>
17976    <sharedfeat name="compatibility" value="NTSC" />
17977    <part name="cart" interface="a2600_cart">
17978      <feature name="slot" value="a26_dpcplus" />
17979      <dataarea name="rom" size="0x8000">
17980        <rom name="SF2_demo_NTSC.bin" size="0x8000" crc="fd850bd6" sha1="bd8166da7777c66e6bb3ab0c77563193d8289f5f" offset="0" />
17981      </dataarea>
17982    </part>
17983  </software>
17984
17985
17986  <software name="stayfr2e" cloneof="stayfr2" supported="no">
17987    <description>Stay Frosty 2 (PAL)</description>
17988    <year>2013</year>
17989    <publisher>Spiceware</publisher>
17990    <sharedfeat name="compatibility" value="PAL" />
17991    <part name="cart" interface="a2600_cart">
17992      <feature name="slot" value="a26_dpcplus" />
17993      <dataarea name="rom" size="0x8000">
17994        <rom name="SF2_20131217_RC8_PAL.bin" size="0x8000" crc="7b495dc3" sha1="1625ef74b0a48c2968fad832ab8e2edc8187a53f" offset="0" />
17995      </dataarea>
17996    </part>
17997  </software>
17998
17999  <software name="stayfr2de" cloneof="stayfr2" supported="no">
18000    <description>Stay Frosty 2 (PAL, demo)</description>
18001    <year>2013</year>
18002    <publisher>Spiceware</publisher>
18003    <sharedfeat name="compatibility" value="PAL" />
18004    <part name="cart" interface="a2600_cart">
18005      <feature name="slot" value="a26_dpcplus" />
18006      <dataarea name="rom" size="0x8000">
18007        <rom name="SF2_demo_PAL.bin" size="0x8000" crc="b47582f3" sha1="73625429e73f1b354e0cbe6a360d79590032de2b" offset="0" />
18008      </dataarea>
18009    </part>
18010  </software>
18011
1794318012</softwarelist>
18013
18014
trunk/hash/a5200.xml
r249893r249894
14721472         </dataarea>
14731473      </part>
14741474   </software>
1475
1476   <software name="5200temp">
1477      <description>5200 Tempest</description>
1478      <year>2012</year>
1479      <publisher>Atariage</publisher> <!-- unlicensed? -->
1480      <info name="developer" value="Keithen" />
1481      <part name="cart" interface="a8bit_cart">
1482         <feature name="slot" value="a5200" />
1483         <dataarea name="rom" size="32768">
1484            <rom name="tempest (atariage).bin" size="32768" crc="a6400e17" sha1="0cb2bd6ed89ce6710ac092533a24f1248688c88c" offset="0" />
1485         </dataarea>
1486      </part>
1487   </software>
1488
14751489</softwarelist>
trunk/hash/bbc_32016_flop.xml
r0r249894
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!-- Acorn Cambridge Workstation Disks -->
5
6<!-- Loading Instructions:
7
8      Hold down the SHIFT key and press and release the BREAK key.
9-->
10
11<softwarelist name="bbc_32016_flop" description="Cambridge Workstation Distribution Discs">
12
13   <software name="panos111" supported="no">
14      <description>1 PanOS Startup and Utilities v1.1</description>
15      <year>1985</year>
16      <publisher>Acorn Computers</publisher>
17      <info name="format" value="DFS" />
18      <info name="compatibility" value="32016 co-processor" />
19      <part name="flop1" interface="floppy_5_25">
20         <dataarea name="flop" size="407552">
21            <rom name="panos11-1.ssd" size="407552" crc="bec45a4d" sha1="4634c4bc7fc62576a0cfe2ac43d75abfca7458fc" offset="0" />
22         </dataarea>
23      </part>
24   </software>
25   
26   <software name="panos112" supported="no">
27      <description>2 PanOS System v1.1</description>
28      <year>1985</year>
29      <publisher>Acorn Computers</publisher>
30      <info name="format" value="DFS" />
31      <info name="compatibility" value="32016 co-processor" />
32      <part name="flop1" interface="floppy_5_25">
33         <dataarea name="flop" size="245760">
34            <rom name="panos11-2.ssd" size="245760" crc="e80fb7c4" sha1="41cd9b89a0b3e844f22b2afc7ff4acc52ae7d70c" offset="0" />
35         </dataarea>
36      </part>
37   </software>
38   
39   <software name="panos113" supported="no">
40      <description>3 FORTRAN 77 (PanOS) v1.1</description>
41      <year>1985</year>
42      <publisher>Acorn Computers</publisher>
43      <info name="format" value="DFS" />
44      <info name="compatibility" value="32016 co-processor" />
45      <part name="flop1" interface="floppy_5_25">
46         <dataarea name="flop" size="309760">
47            <rom name="panos11-3.ssd" size="309760" crc="43841e68" sha1="99afc53f9964f825f0361bbe5f9c228e4a24fa9c" offset="0" />
48         </dataarea>
49      </part>
50   </software>
51   
52   <software name="panos114" supported="no">
53      <description>4 ISO PASCAL (PanOS) v1.1</description>
54      <year>1985</year>
55      <publisher>Acorn Computers</publisher>
56      <info name="format" value="DFS" />
57      <info name="compatibility" value="32016 co-processor" />
58      <part name="flop1" interface="floppy_5_25">
59         <dataarea name="flop" size="360960">
60            <rom name="panos11-4.ssd" size="360960" crc="634a61a5" sha1="232f80862d038f3932a8333bd3690e2e7f0aa25c" offset="0" />
61         </dataarea>
62      </part>
63   </software>
64   
65   <software name="panos115" supported="no">
66      <description>5 C (PanOS) v1.1</description>
67      <year>1985</year>
68      <publisher>Acorn Computers</publisher>
69      <info name="format" value="DFS" />
70      <info name="compatibility" value="32016 co-processor" />
71      <part name="flop1" interface="floppy_5_25">
72         <dataarea name="flop" size="401664">
73            <rom name="panos11-5.ssd" size="401664" crc="99c7c7ad" sha1="bf5d4cece6673a04c634ea59af19cad3ed74e58b" offset="0" />
74         </dataarea>
75      </part>
76   </software>
77   
78   <software name="panos116" supported="no">
79      <description>6 Cambridge LISP (PanOS) v1.1</description>
80      <year>1985</year>
81      <publisher>Acorn Computers</publisher>
82      <info name="format" value="DFS" />
83      <info name="compatibility" value="32016 co-processor" />
84      <part name="flop1" interface="floppy_5_25">
85         <dataarea name="flop" size="409600">
86            <rom name="panos11-6.ssd" size="409600" crc="e125d3c1" sha1="35f3cb89abc909e0d6787ffa2e727f0f4b1937b9" offset="0" />
87         </dataarea>
88      </part>
89   </software>
90   
91   <software name="panos117" supported="no">
92      <description>7 Welcome Programs v1.1</description>
93      <year>1985</year>
94      <publisher>Acorn Computers</publisher>
95      <info name="format" value="DFS" />
96      <info name="compatibility" value="32016 co-processor" />
97      <part name="flop1" interface="floppy_5_25">
98         <dataarea name="flop" size="377344">
99            <rom name="panos11-7.ssd" size="377344" crc="baa462ea" sha1="22cab34f8f51b13a3995db63a83354097c0a613e" offset="0" />
100         </dataarea>
101      </part>
102   </software>
103   
104   <software name="panos141" supported="no">
105      <description>1 PanOS Startup and Utilities v1.4</description>
106      <year>1985</year>
107      <publisher>Acorn Computers</publisher>
108      <info name="format" value="DFS" />
109      <info name="compatibility" value="32016 co-processor" />
110      <part name="flop1" interface="floppy_5_25">
111         <dataarea name="flop" size="384768">
112            <rom name="panos14-1.ssd" size="384768" crc="eed42267" sha1="55a8a650ad214e2c623f6c0a2639acc96cd264cf" offset="0" />
113         </dataarea>
114      </part>
115   </software>
116   
117   <software name="panos142" supported="no">
118      <description>2 PanOS System v1.4</description>
119      <year>1985</year>
120      <publisher>Acorn Computers</publisher>
121      <info name="format" value="DFS" />
122      <info name="compatibility" value="32016 co-processor" />
123      <part name="flop1" interface="floppy_5_25">
124         <dataarea name="flop" size="205060">
125            <rom name="panos14-2.ssd" size="205060" crc="5f0b7639" sha1="4bd9e7ee5db79f4c0f3608b7d2b9b5437aae356d" offset="0" />
126         </dataarea>
127      </part>
128   </software>
129   
130   <software name="panos143" supported="no">
131      <description>3 FORTRAN 77 (PanOS) v1.4</description>
132      <year>1985</year>
133      <publisher>Acorn Computers</publisher>
134      <info name="format" value="DFS" />
135      <info name="compatibility" value="32016 co-processor" />
136      <part name="flop1" interface="floppy_5_25">
137         <dataarea name="flop" size="290304">
138            <rom name="panos14-3.ssd" size="290304" crc="5b28d9e4" sha1="e8503acb278259483bcb82697c3a8006be09ce42" offset="0" />
139         </dataarea>
140      </part>
141   </software>
142   
143   <software name="panos144" supported="no">
144      <description>4 ISO PASCAL (PanOS) v1.4</description>
145      <year>1985</year>
146      <publisher>Acorn Computers</publisher>
147      <info name="format" value="DFS" />
148      <info name="compatibility" value="32016 co-processor" />
149      <part name="flop1" interface="floppy_5_25">
150         <dataarea name="flop" size="378624">
151            <rom name="panos14-4.ssd" size="378624" crc="62fc2639" sha1="f2ceeccb021f4c5030150244fb47897cc7e63f80" offset="0" />
152         </dataarea>
153      </part>
154   </software>
155   
156   <software name="panos145" supported="no">
157      <description>5 C (PanOS) v1.4</description>
158      <year>1985</year>
159      <publisher>Acorn Computers</publisher>
160      <info name="format" value="DFS" />
161      <info name="compatibility" value="32016 co-processor" />
162      <part name="flop1" interface="floppy_5_25">
163         <dataarea name="flop" size="378624">
164            <rom name="panos14-5.ssd" size="378624" crc="2f0940f6" sha1="873942b6033fd234db791b34d4df76a866f366b7" offset="0" />
165         </dataarea>
166      </part>
167   </software>
168   
169   <software name="panos146" supported="no">
170      <description>6 Cambridge LISP (PanOS) v1.4</description>
171      <year>1985</year>
172      <publisher>Acorn Computers</publisher>
173      <info name="format" value="DFS" />
174      <info name="compatibility" value="32016 co-processor" />
175      <part name="flop1" interface="floppy_5_25">
176         <dataarea name="flop" size="409088">
177            <rom name="panos14-6.ssd" size="409088" crc="5337964d" sha1="bfecd5cada401d6dfeb410ebc17fb62333f19bbc" offset="0" />
178         </dataarea>
179      </part>
180   </software>
181   
182   <software name="panos147" supported="no">
183      <description>7 Welcome Programs v1.4</description>
184      <year>1985</year>
185      <publisher>Acorn Computers</publisher>
186      <info name="format" value="DFS" />
187      <info name="compatibility" value="32016 co-processor" />
188      <part name="flop1" interface="floppy_5_25">
189         <dataarea name="flop" size="402176">
190            <rom name="panos14-7.ssd" size="402176" crc="2e5e4fe4" sha1="f69687efea606468a72ed1363f6eab0ce8203f6b" offset="0" />
191         </dataarea>
192      </part>
193   </software>
194
195</softwarelist>
trunk/hash/bbc_65c102_flop.xml
r0r249894
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!-- BBC Master 65C102 Co-Processor Support Disc -->
5
6<!-- Loading Instructions:
7
8      Hold down the SHIFT key and press and release the BREAK key.
9-->
10
11<softwarelist name="bbc_65c102_flop" description="BBC Master 65C102 Co-Processor Support Disc">
12
13   <software name="coprosup" supported="no">
14      <description>65C102 Co-Processor Support Disc</description>
15      <year>1983</year>
16      <publisher>Acorn Computers</publisher>
17      <info name="format" value="DFS" />
18      <info name="compatibility" value="65C102 co-processor" />
19      <part name="flop1" interface="floppy_5_25">
20         <dataarea name="flop" size="102400">
21            <rom name="bbcmaster65c102coprocessorsupportdisc.ssd" size="102400" crc="f6378bb4" sha1="03bfe9e860ecc6117f2e78771c4e301751269055" offset="0" />
22         </dataarea>
23      </part>
24   </software>
25
26</softwarelist>
trunk/hash/bbc_80186_flop.xml
r0r249894
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!-- BBC Master 512 System Discs -->
5
6<!-- Loading Instructions:
7
8      Hold down the SHIFT key and press and release the BREAK key.
9-->
10
11<softwarelist name="bbc_80186_flop" description="BBC Master 512 System Discs">
12
13   <software name="dosboot" supported="no">
14      <description>512 Disc 1 DOS Plus Boot v2.1</description>
15      <year>1986</year>
16      <publisher>Acorn Computers</publisher>
17      <info name="format" value="ADFS-DOS" />
18      <info name="compatibility" value="80186 co-processor" />
19      <part name="flop1" interface="floppy_5_25">
20         <dataarea name="flop" size="655360">
21            <rom name="bbcmaster512-disc1-dosplusboot-v2.1.adl" size="655360" crc="7805045c" sha1="89ad16c97842f94809cf05eb9b079867944ca8d8" offset="0" />
22         </dataarea>
23      </part>
24   </software>
25
26   <software name="dosboot12a"  cloneof="dosboot" supported="no">
27      <description>512 Disc 1 DOS Plus Boot v1.2a</description>
28      <year>1986</year>
29      <publisher>Acorn Computers</publisher>
30      <info name="format" value="ADFS-DOS" />
31      <info name="compatibility" value="80186 co-processor" />
32      <part name="flop1" interface="floppy_5_25">
33         <dataarea name="flop" size="655360">
34            <rom name="bbcmaster512-disc1-dosplusboot-v1.2a.adl" size="655360" crc="264fff88" sha1="7d3386e117b96cc08e78d80ba0d226821e945eac" offset="0" />
35         </dataarea>
36      </part>
37   </software>
38
39   <software name="dosboot12"  cloneof="dosboot" supported="no">
40      <description>512 Disc 1 DOS Plus Boot v1.2</description>
41      <year>1986</year>
42      <publisher>Acorn Computers</publisher>
43      <info name="format" value="ADFS-DOS" />
44      <info name="compatibility" value="80186 co-processor" />
45      <part name="flop1" interface="floppy_5_25">
46         <dataarea name="flop" size="655360">
47            <rom name="bbcmaster512-disc1-dosplusboot-v1.2.adl" size="655360" crc="c2677483" sha1="2df6155aecfd4fc9595cd95359b153d158c313a3" offset="0" />
48         </dataarea>
49      </part>
50   </software>
51
52   <software name="gemapps" supported="no">
53      <description>512 Disc 2 GEM Applications</description>
54      <year>1986</year>
55      <publisher>Acorn Computers</publisher>
56      <info name="format" value="DOS+" />
57      <info name="compatibility" value="80186 co-processor" />
58      <part name="flop1" interface="floppy_5_25">
59         <dataarea name="flop" size="819200">
60            <rom name="bbcmaster512-disc2-gemapplications.img" size="819200" crc="68b1cdfe" sha1="0fd737ab5c8499727e6ec3711e59566e702244e7" offset="0" />
61         </dataarea>
62      </part>
63   </software>
64
65   <software name="gemdata" supported="no">
66      <description>512 Disc 3 GEM Data</description>
67      <year>1986</year>
68      <publisher>Acorn Computers</publisher>
69      <info name="format" value="DOS+" />
70      <info name="compatibility" value="80186 co-processor" />
71      <part name="flop1" interface="floppy_5_25">
72         <dataarea name="flop" size="819200">
73            <rom name="bbcmaster512-disc3-gemdata.img" size="819200" crc="b463f444" sha1="e80911c292aba1b601507c75d9233a79887e3b51" offset="0" />
74         </dataarea>
75      </part>
76   </software>
77
78   <software name="misc" supported="no">
79      <description>512 Disc 4 Miscellaneous</description>
80      <year>1986</year>
81      <publisher>Acorn Computers</publisher>
82      <info name="format" value="DOS+" />
83      <info name="compatibility" value="80186 co-processor" />
84      <part name="flop1" interface="floppy_5_25">
85         <dataarea name="flop" size="819200">
86            <rom name="bbcmaster512-disc4-miscellaneous.img" size="819200" crc="2de63513" sha1="e6718419d4d6f6a834653655f6334667b5c4c355" offset="0" />
87         </dataarea>
88      </part>
89   </software>
90
91   <software name="dabs11" supported="no">
92      <description>Dabs Shareware Vol.1 Disc 1</description>
93      <year>19??</year>
94      <publisher>Dabs Press</publisher>
95      <info name="format" value="DOS+" />
96      <info name="compatibility" value="80186 co-processor" />
97      <part name="flop1" interface="floppy_5_25">
98         <dataarea name="flop" size="819200">
99            <rom name="dabs-shareware-vol1-disc1.img" size="819200" crc="767569f6" sha1="103718d7410cf635eb56010fa6204012fcddb719" offset="0" />
100         </dataarea>
101      </part>
102   </software>
103
104   <software name="dabs12" supported="no">
105      <description>Dabs Shareware Vol.1 Disc 2</description>
106      <year>19??</year>
107      <publisher>Dabs Press</publisher>
108      <info name="format" value="DOS+" />
109      <info name="compatibility" value="80186 co-processor" />
110      <part name="flop1" interface="floppy_5_25">
111         <dataarea name="flop" size="819200">
112            <rom name="dabs-shareware-vol1-disc2.img" size="819200" crc="011ac2db" sha1="8dc11173655864c6a1d37251bc88f512ba43a09c" offset="0" />
113         </dataarea>
114      </part>
115   </software>
116
117   <software name="dabs13" supported="no">
118      <description>Dabs Shareware Vol.1 Disc 3</description>
119      <year>19??</year>
120      <publisher>Dabs Press</publisher>
121      <info name="format" value="DOS+" />
122      <info name="compatibility" value="80186 co-processor" />
123      <part name="flop1" interface="floppy_5_25">
124         <dataarea name="flop" size="819200">
125            <rom name="dabs-shareware-vol1-disc3.img" size="819200" crc="531d3a4b" sha1="a75dd613f4f5bc096a01e259620d16b154305ba8" offset="0" />
126         </dataarea>
127      </part>
128   </software>
129
130   <software name="dabs14" supported="no">
131      <description>Dabs Shareware Vol.1 Disc 4</description>
132      <year>19??</year>
133      <publisher>Dabs Press</publisher>
134      <info name="format" value="DOS+" />
135      <info name="compatibility" value="80186 co-processor" />
136      <part name="flop1" interface="floppy_5_25">
137         <dataarea name="flop" size="819200">
138            <rom name="dabs-shareware-vol1-disc4.img" size="819200" crc="ee1a6961" sha1="c970d723d9b9ee55717928850897d6b21c376c5e" offset="0" />
139         </dataarea>
140      </part>
141   </software>
142
143   <software name="dabs15" supported="no">
144      <description>Dabs Shareware Vol.1 Disc 5</description>
145      <year>19??</year>
146      <publisher>Dabs Press</publisher>
147      <info name="format" value="DOS+" />
148      <info name="compatibility" value="80186 co-processor" />
149      <part name="flop1" interface="floppy_5_25">
150         <dataarea name="flop" size="819200">
151            <rom name="dabs-shareware-vol1-disc5.img" size="819200" crc="4ab201a7" sha1="094d3af950631a803960d19b573be0e65c19158d" offset="0" />
152         </dataarea>
153      </part>
154   </software>
155
156   <software name="dabs21" supported="no">
157      <description>Dabs Shareware Vol.2 Disc 1</description>
158      <year>19??</year>
159      <publisher>Dabs Press</publisher>
160      <info name="format" value="DOS+" />
161      <info name="compatibility" value="80186 co-processor" />
162      <part name="flop1" interface="floppy_5_25">
163         <dataarea name="flop" size="819200">
164            <rom name="dabs-shareware-vol2-disc1.img" size="819200" crc="ba7e3ed4" sha1="b5d649a7bdc4ccd75f99e0636ad0a0b6ec71c4cf" offset="0" />
165         </dataarea>
166      </part>
167   </software>
168
169   <software name="dabs22" supported="no">
170      <description>Dabs Shareware Vol.2 Disc 2</description>
171      <year>19??</year>
172      <publisher>Dabs Press</publisher>
173      <info name="format" value="DOS+" />
174      <info name="compatibility" value="80186 co-processor" />
175      <part name="flop1" interface="floppy_5_25">
176         <dataarea name="flop" size="819200">
177            <rom name="dabs-shareware-vol2-disc2.img" size="819200" crc="b858f06c" sha1="698c6a29fc2f549e8b8ff057e1289c41fc6647e5" offset="0" />
178         </dataarea>
179      </part>
180   </software>
181
182   <software name="dabs23" supported="no">
183      <description>Dabs Shareware Vol.2 Disc 3</description>
184      <year>19??</year>
185      <publisher>Dabs Press</publisher>
186      <info name="format" value="DOS+" />
187      <info name="compatibility" value="80186 co-processor" />
188      <part name="flop1" interface="floppy_5_25">
189         <dataarea name="flop" size="819200">
190            <rom name="dabs-shareware-vol2-disc3.img" size="819200" crc="2f066a93" sha1="7b2c4b4355ba9855f9167e27d9316ed928dae010" offset="0" />
191         </dataarea>
192      </part>
193   </software>
194
195   <software name="dabs24" supported="no">
196      <description>Dabs Shareware Vol.2 Disc 4</description>
197      <year>19??</year>
198      <publisher>Dabs Press</publisher>
199      <info name="format" value="DOS+" />
200      <info name="compatibility" value="80186 co-processor" />
201      <part name="flop1" interface="floppy_5_25">
202         <dataarea name="flop" size="819200">
203            <rom name="dabs-shareware-vol2-disc4.img" size="819200" crc="d507700b" sha1="9d5a75b90eb73387eda913f12dde8cc5cf8c9cab" offset="0" />
204         </dataarea>
205      </part>
206   </software>
207
208   <software name="dabs25" supported="no">
209      <description>Dabs Shareware Vol.2 Disc 5</description>
210      <year>19??</year>
211      <publisher>Dabs Press</publisher>
212      <info name="format" value="DOS+" />
213      <info name="compatibility" value="80186 co-processor" />
214      <part name="flop1" interface="floppy_5_25">
215         <dataarea name="flop" size="819200">
216            <rom name="dabs-shareware-vol2-disc5.img" size="819200" crc="3cfdd202" sha1="e4e8230f29aff2c6bc4a1e218c9be4c9d157fbef" offset="0" />
217         </dataarea>
218      </part>
219   </software>
220
221   <software name="dabs2b" supported="no">
222      <description>Dabs Shareware Vol.2 Bonus</description>
223      <year>19??</year>
224      <publisher>Dabs Press</publisher>
225      <info name="format" value="DOS+" />
226      <info name="compatibility" value="80186 co-processor" />
227      <part name="flop1" interface="floppy_5_25">
228         <dataarea name="flop" size="819200">
229            <rom name="dabs-shareware-vol2-bonus.img" size="819200" crc="69b81821" sha1="2977d4628e262907ddf5f5b3ad35abf703092809" offset="0" />
230         </dataarea>
231      </part>
232   </software>
233
234</softwarelist>
trunk/hash/bbc_arm_flop.xml
r0r249894
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!-- ARM Evaluation System Discs -->
5
6<!-- Loading Instructions:
7
8      Hold down the SHIFT key and press and release the BREAK key.
9-->
10
11<softwarelist name="bbc_arm_flop" description="ARM Evaluation System Discs">
12
13   <software name="armeval1" supported="no">
14      <description>ARM Evaluation System Disc 1</description>
15      <year>1986</year>
16      <publisher>Acorn Computers</publisher>
17      <info name="format" value="ADFS" />
18      <info name="compatibility" value="ARM co-processor" />
19      <part name="flop1" interface="floppy_5_25">
20         <dataarea name="flop" size="655360">
21            <rom name="armevaluationsystem-disc1.adl" size="655360" crc="c8d6fd8d" sha1="fad5516b2407279c68bca0d21cda1a5880a22248" offset="0" />
22         </dataarea>
23      </part>
24   </software>
25
26   <software name="armeval2" supported="no">
27      <description>ARM Evaluation System Disc 2</description>
28      <year>1986</year>
29      <publisher>Acorn Computers</publisher>
30      <info name="format" value="ADFS" />
31      <info name="compatibility" value="ARM co-processor" />
32      <part name="flop1" interface="floppy_5_25">
33         <dataarea name="flop" size="655360">
34            <rom name="armevaluationsystem-disc2.adl" size="655360" crc="5fee623f" sha1="ef084f6bac30471e9cbb06a498901e92b858bffa" offset="0" />
35         </dataarea>
36      </part>
37   </software>
38
39   <software name="armeval3" supported="no">
40      <description>ARM Evaluation System Disc 3</description>
41      <year>1986</year>
42      <publisher>Acorn Computers</publisher>
43      <info name="format" value="ADFS" />
44      <info name="compatibility" value="ARM co-processor" />
45      <part name="flop1" interface="floppy_5_25">
46         <dataarea name="flop" size="655360">
47            <rom name="armevaluationsystem-disc3.adl" size="655360" crc="8511d59e" sha1="be855b2a96c165cf1c76d9128edafb6df5ba47ca" offset="0" />
48         </dataarea>
49      </part>
50   </software>
51
52   <software name="armeval4" supported="no">
53      <description>ARM Evaluation System Disc 4</description>
54      <year>1986</year>
55      <publisher>Acorn Computers</publisher>
56      <info name="format" value="ADFS" />
57      <info name="compatibility" value="ARM co-processor" />
58      <part name="flop1" interface="floppy_5_25">
59         <dataarea name="flop" size="655360">
60            <rom name="armevaluationsystem-disc4.adl" size="655360" crc="78dce270" sha1="4a6974193c1cefe2b7c21d06be33da9e32eea793" offset="0" />
61         </dataarea>
62      </part>
63   </software>
64
65   <software name="armeval5" supported="no">
66      <description>ARM Evaluation System Disc 5</description>
67      <year>1986</year>
68      <publisher>Acorn Computers</publisher>
69      <info name="format" value="ADFS" />
70      <info name="compatibility" value="ARM co-processor" />
71      <part name="flop1" interface="floppy_5_25">
72         <dataarea name="flop" size="655360">
73            <rom name="armevaluationsystem-disc5.adl" size="655360" crc="c77d9325" sha1="9ac7e92916a0f69214208d06ae22a285cf3e46d7" offset="0" />
74         </dataarea>
75      </part>
76   </software>
77
78</softwarelist>
trunk/hash/bbc_z80_flop.xml
r0r249894
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!-- BBC Micro Model B Disks - Z80 co-processor required -->
5
6<!-- Loading CP/M:
7
8      Reset with Z80 co-processor enabled and Acorn CP/M System Disc 1 in drive 0.
9-->
10
11<softwarelist name="bbc_z80_flop" description="BBC Micro Model B disks - Z80">
12
13   <software name="cpmsys1" supported="no">
14      <description>Acorn CP/M System Disc 1</description>
15      <year>1984</year>
16      <publisher>Acorn</publisher>
17      <info name="serial" value="CP2-884-003481" />
18      <info name="format" value="CP/M" />
19      <info name="usage" value="Hard reset with Z80 co-processor enabled" />
20      <info name="compatibility" value="Z80 co-processor" />
21      <part name="flop1" interface="floppy_5_25">
22         <dataarea name="flop" size="409600">
23            <rom name="acorn_cpm_system_disk1.ssd" size="409600" crc="78686d61" sha1="28f33e5e356d307d7e35714b34c18e672aec0031" offset="0" />
24         </dataarea>
25      </part>
26   </software>
27
28   <software name="cpmsys2" supported="no">
29      <description>Acorn CP/M System Disc 2</description>
30      <year>1984</year>
31      <publisher>Acorn</publisher>
32      <info name="format" value="CP/M" />
33      <info name="compatibility" value="Z80 co-processor" />
34      <part name="flop1" interface="floppy_5_25">
35         <dataarea name="flop" size="409600">
36            <rom name="acorn_cpm_system_disk2.ssd" size="409600" crc="afeaa342" sha1="e4b838dae211317c8ccadf47a17fa2ab5aa436a4" offset="0" />
37         </dataarea>
38      </part>
39   </software>
40   
41   <software name="cpmsys3" supported="no">
42      <description>Acorn CP/M System Disc 3</description>
43      <year>1984</year>
44      <publisher>Acorn</publisher>
45      <info name="format" value="CP/M" />
46      <info name="compatibility" value="Z80 co-processor" />
47      <part name="flop1" interface="floppy_5_25">
48         <dataarea name="flop" size="409600">
49            <rom name="acorn_cpm_system_disk3.ssd" size="409600" crc="edc26e0e" sha1="7650ecbd02ee0a9f3e986c96719c791db5505de6" offset="0" />
50         </dataarea>
51      </part>
52   </software>
53
54   <software name="cpmsys4" supported="no">
55      <description>Acorn CP/M System Disc 4</description>
56      <year>1984</year>
57      <publisher>Acorn</publisher>
58      <info name="format" value="CP/M" />
59      <info name="compatibility" value="Z80 co-processor" />
60      <part name="flop1" interface="floppy_5_25">
61         <dataarea name="flop" size="409600">
62            <rom name="acorn_cpm_system_disk4.ssd" size="409600" crc="53dbea69" sha1="1ab9fe7f7ea7b69e6dd1a1ebccd24eae9677b749" offset="0" />
63         </dataarea>
64      </part>
65   </software>
66
67   <software name="cpmsys5" supported="no">
68      <description>Acorn CP/M System Disc 5</description>
69      <year>1984</year>
70      <publisher>Acorn</publisher>
71      <info name="serial" value="A02 AC UK0013257" />
72      <info name="format" value="CP/M" />
73      <info name="compatibility" value="Z80 co-processor" />
74      <part name="flop1" interface="floppy_5_25">
75         <dataarea name="flop" size="409600">
76            <rom name="acorn_cpm_system_disk5.ssd" size="409600" crc="cf426f1c" sha1="7e336b8ae82138b7c6e19c59ba20c0664b4c8a77" offset="0" />
77         </dataarea>
78      </part>
79   </software>
80
81   <software name="cpmsys6" supported="no">
82      <description>Acorn CP/M System Disc 6</description>
83      <year>1984</year>
84      <publisher>Acorn</publisher>
85      <info name="serial" value="A02 AG UK0013440" />
86      <info name="format" value="CP/M" />
87      <info name="compatibility" value="Z80 co-processor" />
88      <part name="flop1" interface="floppy_5_25">
89         <dataarea name="flop" size="409600">
90            <rom name="acorn_cpm_system_disk6.ssd" size="409600" crc="03575faa" sha1="f568a23ae3b0d17866f55bf16ca29a351850167c" offset="0" />
91         </dataarea>
92      </part>
93   </software>
94
95   <software name="cpmsys7" supported="no">
96      <description>Acorn CP/M System Disc 7</description>
97      <year>1984</year>
98      <publisher>Acorn</publisher>
99      <info name="serial" value="BQ03261BC" />
100      <info name="format" value="CP/M" />
101      <info name="compatibility" value="Z80 co-processor" />
102      <part name="flop1" interface="floppy_5_25">
103         <dataarea name="flop" size="409600">
104            <rom name="acorn_cpm_system_disk7.ssd" size="409600" crc="8ae52625" sha1="23c102b852eab471a45fac588c8e326cc96e1368" offset="0" />
105         </dataarea>
106      </part>
107   </software>
108
109   <software name="cpmutils" supported="no">
110      <description>CP/M Utilities Disc</description>
111      <year>1984</year>
112      <publisher>Acorn</publisher>
113      <info name="format" value="CP/M" />
114      <info name="compatibility" value="Z80 co-processor" />
115      <part name="flop1" interface="floppy_5_25">
116         <dataarea name="flop" size="409600">
117            <rom name="cpm_utilities_disc.dsd" size="409600" crc="1afbcc5f" sha1="ec4cf1810d43e0000b92943204dfd593bec883f1" offset="0" />
118         </dataarea>
119      </part>
120   </software>
121
122   <software name="basicprg" supported="no">
123      <description>BASIC Program Disc</description>
124      <year>1984</year>
125      <publisher>Acorn</publisher>
126      <info name="format" value="CP/M" />
127      <info name="compatibility" value="Z80 co-processor" />
128      <part name="flop1" interface="floppy_5_25">
129         <dataarea name="flop" size="409600">
130            <rom name="basic_program_disc.dsd" size="409600" crc="827304e7" sha1="76b808b059982ad6f1ab3454b745f83f2fc6ab1d" offset="0" />
131         </dataarea>
132      </part>
133   </software>
134
135   <software name="cobolprg" supported="no">
136      <description>CIS COBOL Program Disc</description>
137      <year>1984</year>
138      <publisher>Acorn</publisher>
139      <info name="format" value="CP/M" />
140      <info name="compatibility" value="Z80 co-processor" />
141      <part name="flop1" interface="floppy_5_25">
142         <dataarea name="flop" size="409600">
143            <rom name="cis_cobol_program_disc.dsd" size="409600" crc="a7b8d740" sha1="f2d6cb366d00031958f1da774bc61521f61f86fe" offset="0" />
144         </dataarea>
145      </part>
146   </software>
147
148   <software name="memoprg" supported="no">
149      <description>MemoPlan Program Disc</description>
150      <year>1984</year>
151      <publisher>Acorn</publisher>
152      <info name="format" value="CP/M" />
153      <info name="compatibility" value="Z80 co-processor" />
154      <part name="flop1" interface="floppy_5_25">
155         <dataarea name="flop" size="409600">
156            <rom name="memoplan_program_disc.dsd" size="409600" crc="1a3eaf3e" sha1="87c047857e0bcd4abf6fc1c785e0e0035147fd0a" offset="0" />
157         </dataarea>
158      </part>
159   </software>
160
161   <software name="graphprg" supported="no">
162      <description>GraphPlan Program Disc</description>
163      <year>1984</year>
164      <publisher>Acorn</publisher>
165      <info name="format" value="CP/M" />
166      <info name="compatibility" value="Z80 co-processor" />
167      <part name="flop1" interface="floppy_5_25">
168         <dataarea name="flop" size="409600">
169            <rom name="graphplan_program_disc.dsd" size="409600" crc="015eca7c" sha1="c18216ca44bfd21d2119a33630691363b22c32b1" offset="0" />
170         </dataarea>
171      </part>
172   </software>
173
174   <software name="fileprg" supported="no">
175      <description>FilePlan Program Disc</description>
176      <year>1984</year>
177      <publisher>Acorn</publisher>
178      <info name="format" value="CP/M" />
179      <info name="compatibility" value="Z80 co-processor" />
180      <part name="flop1" interface="floppy_5_25">
181         <dataarea name="flop" size="409600">
182            <rom name="fileplan_program_disc.dsd" size="409600" crc="8b832b7e" sha1="9d3f9401e098b8ab50c842552eb6ac98195647f7" offset="0" />
183         </dataarea>
184      </part>
185   </software>
186
187   <software name="accntprg" supported="no">
188      <description>Accountant Program Disc</description>
189      <year>1984</year>
190      <publisher>Acorn</publisher>
191      <info name="format" value="CP/M" />
192      <info name="compatibility" value="Z80 co-processor" />
193      <part name="flop1" interface="floppy_5_25">
194         <dataarea name="flop" size="409600">
195            <rom name="accountant_program_disc.dsd" size="409600" crc="02a76ee8" sha1="3119b294f63c6beb7726c6a5c73065a130efc8e2" offset="0" />
196         </dataarea>
197      </part>
198   </software>
199
200   <software name="accntdat" supported="no">
201      <description>Accountant Data Disc</description>
202      <year>1984</year>
203      <publisher>Acorn</publisher>
204      <info name="format" value="CP/M" />
205      <info name="compatibility" value="Z80 co-processor" />
206      <part name="flop1" interface="floppy_5_25">
207         <dataarea name="flop" size="409600">
208            <rom name="accountant_data_disc.dsd" size="409600" crc="d2b4c506" sha1="875e123044c9dee63c9c1f2b1fa8f248125f3dc7" offset="0" />
209         </dataarea>
210      </part>
211   </software>
212
213   <software name="nucldef" supported="no">
214      <description>Nucleus Definitions Program Disc</description>
215      <year>1984</year>
216      <publisher>Acorn</publisher>
217      <info name="format" value="CP/M" />
218      <info name="compatibility" value="Z80 co-processor" />
219      <part name="flop1" interface="floppy_5_25">
220         <dataarea name="flop" size="409600">
221            <rom name="nucleus_definitions_program_disc.dsd" size="409600" crc="447e8629" sha1="2e39dfdae5aebaa7719e35499b13d5e6ac445f03" offset="0" />
222         </dataarea>
223      </part>
224   </software>
225
226   <software name="nuclrpt" supported="no">
227      <description>Nucleus Report Program Disc</description>
228      <year>1984</year>
229      <publisher>Acorn</publisher>
230      <info name="format" value="CP/M" />
231      <info name="compatibility" value="Z80 co-processor" />
232      <part name="flop1" interface="floppy_5_25">
233         <dataarea name="flop" size="409600">
234            <rom name="nucleus_reporter_program_disc.dsd" size="409600" crc="c2e51084" sha1="62117dde924b10c7af241e640e468c3ca35db016" offset="0" />
235         </dataarea>
236      </part>
237   </software>
238
239   <software name="nuclparm" supported="no">
240      <description>Nucleus Parameter File Program Disc</description>
241      <year>1984</year>
242      <publisher>Acorn</publisher>
243      <info name="format" value="CP/M" />
244      <info name="compatibility" value="Z80 co-processor" />
245      <part name="flop1" interface="floppy_5_25">
246         <dataarea name="flop" size="409600">
247            <rom name="nucleus_parameter_file_program_disc.dsd" size="409600" crc="2c81fc08" sha1="b60bbfac15aab888c5be5e03b5977419b0e61903" offset="0" />
248         </dataarea>
249      </part>
250   </software>
251
252   <software name="startday" supported="no">
253      <description>Start Of Day Disc</description>
254      <year>1984</year>
255      <publisher>Acorn</publisher>
256      <info name="format" value="CP/M" />
257      <info name="compatibility" value="Z80 co-processor" />
258      <part name="flop1" interface="floppy_5_25">
259         <dataarea name="flop" size="409600">
260            <rom name="start_of_day_disc.dsd" size="409600" crc="f85aa0f5" sha1="4221d8c64dba5e44acd770effbce7fe2bc0da77e" offset="0" />
261         </dataarea>
262      </part>
263   </software>
264
265   <software name="colcave" supported="no">
266      <description>Colossal Cave</description>
267      <year>19??</year>
268      <publisher>&lt;unknown&gt;</publisher>
269      <info name="format" value="CP/M" />
270      <info name="compatibility" value="Z80 co-processor" />
271      <part name="flop1" interface="floppy_5_25">
272         <dataarea name="flop" size="409600">
273            <rom name="colossal_cave.ssd" size="409600" crc="95094ab0" sha1="0d213680b2934c42b821cfd3796219775780cdc8" offset="0" />
274         </dataarea>
275      </part>
276   </software>
277
278</softwarelist>
trunk/hash/bbca_cass.xml
r249893r249894
1010      Use the relevant command to load the software, usually CHAIN"" or *RUN, though some earlier titles from Micro Power require *LOAD.
1111-->
1212
13<!-- This list was compiled from the archive at http://www.stairwaytohell.com/. Additional titles will be added as they are made available at http://stardot.org.uk/ forum. -->
14
1315<softwarelist name="bbca_cass" description="BBC Micro Model A cassettes">
1416
1517   <!-- Games -->
r249893r249894
2931      <description>Arcade Action</description>
3032      <year>1982</year>
3133      <publisher>Acornsoft</publisher>
34      <info name="release" value="G06" />
3235      <part name="cass" interface="bbc_cass">
3336         <dataarea name="cass" size="13352">
3437            <rom name="arcadeaction-v2.5(1982)(acornsoft)(g06).uef" size="13352" crc="6c2db1cd" sha1="b86be839f41ce68dc229f4ca84bac63c24326f9a" offset="0"/>
r249893r249894
3841
3942   <software name="beebtrek">
4043      <description>Beebtrek</description>
41      <year>19??</year>
44      <year>1982</year>
4245      <publisher>Software For All</publisher>
4346      <part name="cass" interface="bbc_cass">
4447         <dataarea name="cass" size="7235">
r249893r249894
7376      <description>Draughts And Reversi</description>
7477      <year>1983</year>
7578      <publisher>Acornsoft</publisher>
79      <info name="release" value="G20" />
7680      <part name="cass1" interface="bbc_cass">
7781         <dataarea name="cass" size="6165">
7882            <rom name="dar-draughts-v2.1(1983)(acornsoft)(g20).uef" size="6165" crc="35e365ed" sha1="0000bae54eaaa8d5507cc0d7a444aaeac03df97d" offset="0" />
r249893r249894
8791
8892   <software name="famgames">
8993      <description>Family Games</description>
90      <year>19??</year>
94      <year>1982</year>
9195      <publisher>I.J.K.</publisher>
9296      <part name="cass1" interface="bbc_cass">
9397         <dataarea name="cass" size="2152">
r249893r249894
123127
124128   <software name="fruitmc">
125129      <description>Fruit Machine</description>
126         <year>19??</year>
130         <year>198?</year>
127131      <publisher>Computer Concepts</publisher>
128132      <part name="cass" interface="bbc_cass">
129133         <dataarea name="cass" size="4421">
r249893r249894
209213      </part>
210214   </software>
211215
216   <software name="spacinva">
217      <description>Space Invaders 16K</description>
218      <year>1982</year>
219      <publisher>David McKeran</publisher>
220      <info name="usage" value="Load with *RUN" />
221      <part name="cass" interface="bbc_cass">
222         <dataarea name="cass" size="4513">
223            <rom name="spaceinvaders16k_run(1982)(davidmckeran).uef" size="4513" crc="a95a6a41" sha1="dff22b2d7a5c1d5355b8f72edf60acaa67f06c90" offset="0" />
224         </dataarea>
225      </part>
226   </software>
227
212228   <software name="spacmaze">
213229      <description>Space Maze</description>
214230      <year>1981</year>
r249893r249894
222238
223239   <software name="sppirate">
224240      <description>Space Pirates</description>
225      <year>19??</year>
241      <year>1982</year>
226242      <publisher>Bug Byte</publisher>
227243      <part name="cass" interface="bbc_cass">
228244         <dataarea name="cass" size="3557">
r249893r249894
233249
234250   <software name="startrek">
235251      <description>Star Trek</description>
236      <year>19??</year>
252      <year>1982</year>
237253      <publisher>I.J.K.</publisher>
238254      <part name="cass" interface="bbc_cass">
239255         <dataarea name="cass" size="5376">
r249893r249894
248264      <description>Peeko Computer (Ger)</description>
249265      <year>198?</year>
250266      <publisher>Acornsoft</publisher>
267      <info name="release" value="E02" />
251268      <part name="cass" interface="bbc_cass">
252269         <dataarea name="cass" size="4821">
253270            <rom name="peekocomputer-german(198x)(acornsoft)(e02).uef" size="4821" crc="c6503a6b" sha1="813a6399a45a75a4aab3d2edd1722488edf41a52" offset="0" />
r249893r249894
259276      <description>Peeko Computer</description>
260277      <year>198?</year>
261278      <publisher>Acornsoft</publisher>
279      <info name="release" value="E02" />
262280      <part name="cass" interface="bbc_cass">
263281         <dataarea name="cass" size="3993">
264282            <rom name="peekocomputer(198x)(acornsoft)(e02).uef" size="3993" crc="9a78f3b9" sha1="ff974eb52d6d984637e21e15a883a7572991e38b" offset="0" />
r249893r249894
270288      <description>Business Games (Ger)</description>
271289      <year>198?</year>
272290      <publisher>Acornsoft</publisher>
291      <info name="release" value="E03" />
273292      <part name="cass" interface="bbc_cass">
274293         <dataarea name="cass" size="11858">
275294            <rom name="businessgames-german(198x)(acornsoft)(e03).uef" size="11858" crc="ae23e0dd" sha1="2a4ca1e06870e41d9fa4c4e86ab196251869b160" offset="0" />
r249893r249894
281300      <description>Word Hunt (Ger)</description>
282301      <year>198?</year>
283302      <publisher>Acornsoft</publisher>
303      <info name="release" value="E05" />
284304      <part name="cass" interface="bbc_cass">
285305         <dataarea name="cass" size="10849">
286306            <rom name="wordhunt-german(198x)(acornsoft)(e05).uef" size="10849" crc="e412d5af" sha1="3163432f2388b0795ec03b61ab77e90e37a3f18d" offset="0" />
r249893r249894
292312      <description>Word Sequencing (Ger)</description>
293313      <year>198?</year>
294314      <publisher>Acornsoft</publisher>
315      <info name="release" value="E06" />
295316      <part name="cass" interface="bbc_cass">
296317         <dataarea name="cass" size="10883">
297318            <rom name="wordsequencing-german(198x)(acornsoft)(e06).uef" size="10883" crc="605ebb74" sha1="5d2b67151889a0fa90c490dd4db40d579a8fb386" offset="0" />
r249893r249894
303324      <description>Word Sequencing</description>
304325      <year>198?</year>
305326      <publisher>Acornsoft</publisher>
327      <info name="release" value="E06" />
306328      <part name="cass" interface="bbc_cass">
307329         <dataarea name="cass" size="7955">
308330            <rom name="wordsequencing(198x)(acornsoft)(e06).uef" size="7955" crc="b6a37e42" sha1="b0b2088cd4bbbed7accd33e943eb8f343e36c7a2" offset="0" />
r249893r249894
314336      <description>Missing Signs (Ger)</description>
315337      <year>198?</year>
316338      <publisher>Acornsoft</publisher>
339      <info name="release" value="E09" />
317340      <part name="cass" interface="bbc_cass">
318341         <dataarea name="cass" size="11055">
319342            <rom name="missingsigns-german(198x)(acornsoft)(e09).uef" size="11055" crc="3a6c4f59" sha1="e02115cbf2cdcc0996b12fe8db25c02ca234248b" offset="0" />
r249893r249894
325348      <description>Missing Signs</description>
326349      <year>198?</year>
327350      <publisher>Acornsoft</publisher>
351      <info name="release" value="E09" />
328352      <part name="cass" interface="bbc_cass">
329353         <dataarea name="cass" size="7977">
330354            <rom name="missingsigns(198x)(acornsoft)(e09).uef" size="7977" crc="7da85f67" sha1="ebc8116fa980c0d268918a3aa333f772de0a7cb9" offset="0" />
trunk/hash/bbcb_cass.xml
r249893r249894
77
88<!-- Loading Instructions:
99
10      If the system has a disk drive (which the BBC Model B does by default in MESS) you must type *TAPE, then use the relevant command to load the software, usually CHAIN"" or *RUN, though some earlier titles from Micro Power require *LOAD.
10      If the system has a disk drive (which the BBC Model B does by default in MAME) you must type *TAPE, then use the relevant command to load the software, usually CHAIN"" or *RUN, though some earlier titles from Micro Power require *LOAD.
1111
12      To start/stop the tape you must use the MESS menus, so you'll have to turn full keyboard mode off with Scroll Lock, then navigate the menus, turning Scroll Lock back on when you're finished.
12      To start/stop the tape you must use the MAME menus, so you'll have to turn full keyboard mode off with Scroll Lock, then navigate the menus, turning Scroll Lock back on when you're finished.
1313-->
1414
15<!-- This list was compiled from the archive at http://www.stairwaytohell.com/. Additional titles will be added as they are made available at http://stardot.org.uk/ forum. -->
16
1517<softwarelist name="bbcb_cass" description="BBC Micro Model B cassettes">
1618
1719   <!-- Games -->
r249893r249894
182184      </part>
183185   </software>
184186
187   <software name="3in1a">
188      <description>3 in 1 (A) Task Force/Demolish/Cosmos</description>
189      <year>1983</year>
190      <publisher>RH Software</publisher>
191      <info name="release" value="RHS006C" />
192      <part name="cass" interface="bbc_cass">
193         <dataarea name="cass" size="11743">
194            <rom name="3in1a(1983)(rhsoft).uef" size="11743" crc="4b9569a3" sha1="f06da8b81d5a3194968a38face99268a358d0865" offset="0" />
195         </dataarea>
196      </part>
197   </software>
198
199   <software name="3in1b">
200      <description>3 in 1 (B) Death 14/Knockout/Space Raiders</description>
201      <year>1983</year>
202      <publisher>RH Software</publisher>
203      <info name="release" value="RHS007C" />
204      <part name="cass" interface="bbc_cass">
205         <dataarea name="cass" size="9443">
206            <rom name="3in1b(1983)(rhsoft).uef" size="9443" crc="a806a03b" sha1="00fbd8424e9c4907266e46f63a8fe574e982bc99" offset="0" />
207         </dataarea>
208      </part>
209   </software>
210
185211   <software name="737flsim">
186212      <description>737 Flight Simulator</description>
187213      <year>1983</year>
r249893r249894
445471      <description>Airlift (Bug Byte)</description>
446472      <year>198?</year>
447473      <publisher>Bug Byte</publisher>
474      <info name="compatibility" value="OS0.1" />
448475      <part name="cass" interface="bbc_cass">
449476         <dataarea name="cass" size="4048">
450477            <rom name="airlift(bugbyte).uef" size="4048" crc="320ca53e" sha1="c30257b0139b87ea02a7fb6ca47bab0616dc7674" offset="0" />
r249893r249894
685712      </part>
686713   </software>
687714
715   <software name="airbrush">
716      <description>Airbrush</description>
717      <year>1983</year>
718      <publisher>Soft Hits</publisher>
719      <part name="cass" interface="bbc_cass">
720         <dataarea name="cass" size="3980">
721            <rom name="airbrush(1983)(softhits).uef" size="3980" crc="108683a7" sha1="55a729efbcf8e435d3ef8f31f881b3dd20b9c08d" offset="0" />
722         </dataarea>
723      </part>
724   </software>
725
688726   <software name="antix">
689727      <description>Antix</description>
690728      <year>19??</year>
r249893r249894
760798      <description>Arcadians</description>
761799      <year>1982</year>
762800      <publisher>Acornsoft</publisher>
801      <info name="release" value="G14" />
763802      <part name="cass" interface="bbc_cass">
764803         <dataarea name="cass" size="13255">
765804            <rom name="arcadians-v1.2(1982)(acornsoft)(g14).uef" size="13255" crc="e8418496" sha1="78c73583c25d54f89d21dbb6564ac4f26c7949b5" offset="0" />
r249893r249894
950989      <description>Aviator</description>
951990      <year>1983</year>
952991      <publisher>Acornsoft</publisher>
992      <info name="release" value="G02" />
953993      <part name="cass" interface="bbc_cass">
954994         <dataarea name="cass" size="18084">
955995            <rom name="aviator-v1.1(1983)(acornsoft)(g02).uef" size="18084" crc="8fe4373a" sha1="c3853da35b9b22b44333db3cd43cee36fa8922df" offset="0" />
r249893r249894
12641304   </software>
12651305
12661306   <software name="beebbeep">
1267      <description>Beeb Beep</description>
1307      <description>Beeb-Beep</description>
12681308      <year>1982</year>
12691309      <publisher>I.J.K.</publisher>
12701310      <part name="cass" interface="bbc_cass">
r249893r249894
13661406      <description>Black Box and Gambit</description>
13671407      <year>1984</year>
13681408      <publisher>Acornsoft</publisher>
1409      <info name="release" value="G34" />
13691410      <part name="cass" interface="bbc_cass">
13701411         <dataarea name="cass" size="13391">
13711412            <rom name="blackboxandgambit-v1(1984)(acornsoft)(g34).uef" size="13391" crc="a5be6678" sha1="478967d65ce36a168a0428aa21663f9e65b97411" offset="0" />
r249893r249894
16101651      <description>Bouncer</description>
16111652      <year>1984</year>
16121653      <publisher>Acornsoft</publisher>
1654      <info name="release" value="G35" />
16131655      <part name="cass" interface="bbc_cass">
16141656         <dataarea name="cass" size="8722">
16151657            <rom name="bouncer-v1(1984)(acornsoft)(g35).uef" size="8722" crc="6f68649c" sha1="1cd59da929fe95cc04132ef4316f3939ed60f828" offset="0" />
r249893r249894
16321674      <description>Boxer</description>
16331675      <year>1984</year>
16341676      <publisher>Acornsoft</publisher>
1677      <info name="release" value="G31" />
16351678      <part name="cass" interface="bbc_cass">
16361679         <dataarea name="cass" size="9143">
16371680            <rom name="boxer-v1(1984)(acornsoft)(g31).uef" size="9143" crc="9b78d174" sha1="47b0b4e13eafcf5fd48064c787cd046a29620093" offset="0" />
r249893r249894
18431886      </part>
18441887   </software>
18451888
1889   <software name="bunfun">
1890      <description>Bun Fun</description>
1891      <year>1983</year>
1892      <publisher>Squirrel Soft</publisher>
1893      <part name="cass" interface="bbc_cass">
1894         <dataarea name="cass" size="5252">
1895            <rom name="bunfun(1983)(squirrel).uef" size="5252" crc="9e656d0b" sha1="bc711d8577bff7c208eee7d7d304a0adec60605d" offset="0" />
1896         </dataarea>
1897      </part>
1898   </software>
1899
18461900   <software name="cesarcat">
18471901      <description>Caesar the Cat</description>
18481902      <year>198?</year>
r249893r249894
18801934      <description>Carousel</description>
18811935      <year>1983</year>
18821936      <publisher>Acornsoft</publisher>
1937      <info name="release" value="G24" />
18831938      <part name="cass" interface="bbc_cass">
18841939         <dataarea name="cass" size="9733">
18851940            <rom name="carousel-v1.1(1983)(acornsoft)(g24).uef" size="9733" crc="c8937c86" sha1="064c5a26c72af93f1905d473d94154b739faa74e" offset="0" />
18861941         </dataarea>
18871942      </part>
18881943   </software>
1944   
1945   <software name="carwarsp">
1946      <description>Car Wars/Planet of the Aliens</description>
1947      <year>1982</year>
1948      <publisher>Software For All</publisher>
1949      <info name="usage" value="CH.&quot;CAR-WARS&quot;/CH.&quot;ALIEN-P&quot;" />
1950      <info name="compatibility" value="OS0.1" />
1951      <part name="cass" interface="bbc_cass">
1952         <dataarea name="cass" size="5898">
1953            <rom name="carwars-planetofthealiens(1982)(softwareforall).uef" size="5898" crc="6b5c21be" sha1="118a88d8fcda5020986d09f37e476c6642081e1f" offset="0" />
1954         </dataarea>
1955      </part>
1956   </software>
18891957
18901958   <software name="cascad50">
18911959      <description>Cascade 50</description>
r249893r249894
19732041      <description>Castle of Riddles v1.0</description>
19742042      <year>1982</year>
19752043      <publisher>Acornsoft</publisher>
2044      <info name="release" value="G17" />
19762045      <part name="cass" interface="bbc_cass">
19772046         <dataarea name="cass" size="15634">
19782047            <rom name="castleofriddles-v1.0(1982)(acornsoft)(g17).uef" size="15634" crc="f61d67f7" sha1="404dfc37c0876d79c7d57c7137943e4916119e25" offset="0" />
r249893r249894
19842053      <description>Castle of Riddles v2.0</description>
19852054      <year>1982</year>
19862055      <publisher>Acornsoft</publisher>
2056      <info name="release" value="G17" />
19872057      <part name="cass" interface="bbc_cass">
19882058         <dataarea name="cass" size="15602">
19892059            <rom name="castleofriddles-v2.0(1982)(acornsoft)(g17).uef" size="15602" crc="339f7688" sha1="d36002d0e8ab0b3cfb6672be72a8f36180c26c67" offset="0" />
r249893r249894
22052275      <description>Chess v2.1</description>
22062276      <year>1982</year>
22072277      <publisher>Acornsoft</publisher>
2278      <info name="release" value="G10" />
22082279      <part name="cass" interface="bbc_cass">
22092280         <dataarea name="cass" size="12900">
22102281            <rom name="chess-acornsoft-v2.1(1982)(acornsoft)(g10).uef" size="12900" crc="cef54328" sha1="ac378be88dee4df98902f30690338ed84a4481b4" offset="0" />
r249893r249894
22162287      <description>Chess v2.2</description>
22172288      <year>1982</year>
22182289      <publisher>Acornsoft</publisher>
2290      <info name="release" value="G10" />
22192291      <part name="cass" interface="bbc_cass">
22202292         <dataarea name="cass" size="12900">
22212293            <rom name="chess-acornsoft-v2.2(1982)(acornsoft)(g10).uef" size="12900" crc="0ab8406d" sha1="a978801af4e9ea4c4eff0db7726b55cf90137ca6" offset="0" />
r249893r249894
24022474      </part>
24032475   </software>
24042476
2477   <software name="citydefd">
2478      <description>City Defend</description>
2479      <year>1983</year>
2480      <publisher>MGB Software</publisher>
2481      <part name="cass" interface="bbc_cass">
2482         <dataarea name="cass" size="3666">
2483            <rom name="citydefend(1983)(mgb).uef" size="3666" crc="08b47d1c" sha1="6f22bc6e6b502624ca5dd8eefd063241dc00951d" offset="0" />
2484         </dataarea>
2485      </part>
2486   </software>
2487
24052488   <software name="claresjo">
24062489      <description>Clares Joystick Software</description>
24072490      <year>198?</year>
r249893r249894
24162499   <software name="c50fleet">
24172500      <description>Class50 Fleet Manager</description>
24182501      <year>1986</year>
2419      <publisher>DeeKay</publisher>
2502      <publisher>Dee-Kay</publisher>
24202503      <part name="cass" interface="bbc_cass">
24212504         <dataarea name="cass" size="9010">
24222505            <rom name="class50fleetmanager(1986)(deekay).uef" size="9010" crc="50f6ef8d" sha1="4b64060cad4ebbddd8859bc371c9cff013749631" offset="0" />
r249893r249894
27472830   <software name="cornishr">
27482831      <description>Cornish Riviera</description>
27492832      <year>1984</year>
2750      <publisher>DeeKay</publisher>
2833      <publisher>Dee-Kay</publisher>
27512834      <part name="cass" interface="bbc_cass">
27522835         <dataarea name="cass" size="12748">
2753            <rom name="cornishriviera(1984)(deekey).uef" size="12748" crc="f6f09624" sha1="ff1c44e18eba1c159c4496d887f8b35b587c9f65" offset="0" />
2836            <rom name="cornishriviera(1984)(deekay).uef" size="12748" crc="f6f09624" sha1="ff1c44e18eba1c159c4496d887f8b35b587c9f65" offset="0" />
27542837         </dataarea>
27552838      </part>
27562839   </software>
r249893r249894
28362919      <description>Countdown To Doom</description>
28372920      <year>1982</year>
28382921      <publisher>Acornsoft</publisher>
2922      <info name="release" value="G19" />
28392923      <part name="cass" interface="bbc_cass">
28402924         <dataarea name="cass" size="18954">
28412925            <rom name="countdowntodoom-v3.2(1982)(acornsoft)(g19).uef" size="18954" crc="3d9938d0" sha1="aa8be5912da9683a32099e57004143fc98b2b7d2" offset="0" />
r249893r249894
29303014      <description>Crazy Tracer</description>
29313015      <year>1983</year>
29323016      <publisher>Acornsoft</publisher>
3017      <info name="release" value="G26" />
29333018      <part name="cass" interface="bbc_cass">
29343019         <dataarea name="cass" size="8535">
29353020            <rom name="crazytracer-v1.1(1983)(acornsoft)(g26).uef" size="8535" crc="e21bdd04" sha1="bdcc817714497541709582029c3e30be4a61488d" offset="0" />
r249893r249894
30313116      <description>Cube Master</description>
30323117      <year>1982</year>
30333118      <publisher>Acornsoft</publisher>
3119      <info name="release" value="G08" />
30343120      <part name="cass" interface="bbc_cass">
30353121         <dataarea name="cass" size="5883">
30363122            <rom name="cubemaster-v1.0(1982)(acornsoft)(g08).uef" size="5883" crc="0f4a40f6" sha1="bcf0b137a5dcc2e56d10c847d4c372abbe171c44" offset="0" />
r249893r249894
32833369      <description>Defender v1.0 (Deleted)</description>
32843370      <year>1982</year>
32853371      <publisher>Acornsoft</publisher>
3372      <info name="release" value="G02 (deleted)" />
32863373      <part name="cass" interface="bbc_cass">
32873374         <dataarea name="cass" size="8358">
32883375            <rom name="defender-v1.0(1982)(acornsoft)(g02).uef" size="8358" crc="d981bff4" sha1="4a38d349f4b23cc7983e1537c85ec89bb8df22d6" offset="0" />
r249893r249894
33103397   <software name="delticfl">
33113398      <description>Deltic Fleet Manager</description>
33123399      <year>1986</year>
3313      <publisher>DeeKay</publisher>
3400      <publisher>Dee-Kay</publisher>
33143401      <part name="cass" interface="bbc_cass">
33153402         <dataarea name="cass" size="10387">
33163403            <rom name="delticfleetmanager(1986)(deekay).uef" size="10387" crc="aa950744" sha1="8849d09fb4fa999374bea528885e6653de54275a" offset="0" />
r249893r249894
37313818      <description>Drogna</description>
37323819      <year>1983</year>
37333820      <publisher>Acornsoft</publisher>
3821      <info name="release" value="G27" />
37343822      <part name="cass" interface="bbc_cass">
37353823         <dataarea name="cass" size="7979">
37363824            <rom name="drogna-v1(1983)(acornsoft)(g27).uef" size="7979" crc="24ef9bab" sha1="cd41f48683b11593598f59b611df6380f2aab9fc" offset="0" />
r249893r249894
38963984      <description>Elite</description>
38973985      <year>1984</year>
38983986      <publisher>Acornsoft</publisher>
3987      <info name="release" value="G38" />
38993988      <part name="cass" interface="bbc_cass">
39003989         <dataarea name="cass" size="27174">
39013990            <rom name="elite-v1.0(1984)(acornsoft)(g38).uef" size="27174" crc="c942b5af" sha1="95be4a10a29af210df0f74529194fb29c8ca0e68" offset="0" />
r249893r249894
40484137
40494138   <software name="evenstar">
40504139      <description>Evening Star</description>
4051      <year>198?</year>
4052      <publisher>Hewson</publisher>
4140      <year>1987</year>
4141      <publisher>Hewson Consultants</publisher>
40534142      <part name="cass" interface="bbc_cass">
40544143         <dataarea name="cass" size="16686">
4055            <rom name="eveningstar(hewson).uef" size="16686" crc="c249e3aa" sha1="aeb3937ae0ddb04abe191f83c170417f4d469c65" offset="0" />
4144            <rom name="eveningstar(1987)(hewson).uef" size="16686" crc="c249e3aa" sha1="aeb3937ae0ddb04abe191f83c170417f4d469c65" offset="0" />
40564145         </dataarea>
40574146      </part>
40584147   </software>
r249893r249894
41704259
41714260   <software name="fantdiam">
41724261      <description>Fantasia Diamond</description>
4173      <year>198?</year>
4174      <publisher>Hewson</publisher>
4262      <year>1984</year>
4263      <publisher>Hewson Consultants</publisher>
41754264      <part name="cass" interface="bbc_cass">
41764265         <dataarea name="cass" size="14023">
4177            <rom name="fantasiadiamond_be(hewson).uef" size="14023" crc="05abfffb" sha1="b71f2539c76be388560585ccca602b36d0b0d831" offset="0" />
4266            <rom name="fantasiadiamond_be(1984)(hewson).uef" size="14023" crc="05abfffb" sha1="b71f2539c76be388560585ccca602b36d0b0d831" offset="0" />
41784267         </dataarea>
41794268      </part>
41804269   </software>
r249893r249894
42824371      <description>Firebug</description>
42834372      <year>1984</year>
42844373      <publisher>Acornsoft</publisher>
4374      <info name="release" value="G39" />
42854375      <part name="cass" interface="bbc_cass">
42864376         <dataarea name="cass" size="9118">
42874377            <rom name="firebug-v1(1984)(acornsoft)(g39).uef" size="9118" crc="637c6756" sha1="8b2c5e35e8195bd1cd48671d36466b4cb7d3c390" offset="0" />
r249893r249894
44474537   <software name="flyingsc">
44484538      <description>Flying Scotsman</description>
44494539      <year>1984</year>
4450      <publisher>DeeKey</publisher>
4540      <publisher>Dee-Kay</publisher>
44514541      <part name="cass" interface="bbc_cass">
44524542         <dataarea name="cass" size="12458">
44534543            <rom name="flyingscotsman(1984)(deekay).uef" size="12458" crc="7337be10" sha1="d07137c61e8b98b9049fdbdb030e04c69e512e36" offset="0" />
r249893r249894
45724662      <description>Free Fall</description>
45734663      <year>1983</year>
45744664      <publisher>Acornsoft</publisher>
4665      <info name="release" value="G28" />
45754666      <part name="cass" interface="bbc_cass">
45764667         <dataarea name="cass" size="14302">
45774668            <rom name="freefall-v1.2(1983)(acornsoft)(g28).uef" size="14302" crc="388da7c1" sha1="6829c13f0d8437b80ab97ce8cc60605143adc4fc" offset="0" />
r249893r249894
48204911      <year>1983</year>
48214912      <publisher>Kansas</publisher>
48224913      <part name="cass" interface="bbc_cass">
4823         <dataarea name="cass" size="6671">
4824            <rom name="galacticfirebird(1983)(kansas).uef" size="6671" crc="82b7effb" sha1="1746291194e0527d4b32b99f881b651fa51b5f95" offset="0" />
4914         <dataarea name="cass" size="6201">
4915            <rom name="galacticfirebird(1983)(kansas).uef" size="6201" crc="22c5a0f8" sha1="c5ff440649e6175354820b8768770f9d36efed2b" offset="0" />
48254916         </dataarea>
48264917      </part>
48274918   </software>
48284919
4920   <software name="galintru">
4921      <description>Galactic Intruder</description>
4922      <year>1983</year>
4923      <publisher>Cosma</publisher>
4924      <info name="usage" value="Load with *RUN" />
4925      <info name="compatibility" value="OS0.1" />
4926      <part name="cass" interface="bbc_cass">
4927         <dataarea name="cass" size="5712">
4928            <rom name="galacticintruder(1983)(cosma).uef" size="5712" crc="344fdc0a" sha1="92949ce6f003f517eb4a3c8e12e396ac5ef36cce" offset="0" />
4929         </dataarea>
4930      </part>
4931   </software>
4932
48294933   <software name="galpatro">
48304934      <description>Galactic Patrol</description>
48314935      <year>1984</year>
r249893r249894
49745078      </part>
49755079   </software>
49765080
5081   <software name="gampack1">
5082      <description>Games Pack One</description>
5083      <year>1983</year>
5084      <publisher>Logic Systems</publisher>
5085      <part name="cass" interface="bbc_cass">
5086         <dataarea name="cass" size="7005">
5087            <rom name="gamespackone(1983)(logic).uef" size="7005" crc="e8fca86b" sha1="0bcc999316246b726362cfe935cc983da8250497" offset="0" />
5088         </dataarea>
5089      </part>
5090   </software>
5091
49775092   <software name="gamstrat">
49785093      <description>Games of Strategy</description>
49795094      <year>1982</year>
r249893r249894
50005115      <description>Gateway To Karos</description>
50015116      <year>1983</year>
50025117      <publisher>Acornsoft</publisher>
5118      <info name="release" value="G30" />
50035119      <part name="cass" interface="bbc_cass">
50045120         <dataarea name="cass" size="21761">
50055121            <rom name="gatewaytokaros-v1.2(1983)(acornsoft)(g30).uef" size="21761" crc="837ac45a" sha1="3104549e9be80fd055d20254b690871bb93c2a54" offset="0" />
r249893r249894
50075123      </part>
50085124   </software>
50095125
5126   <software name="gatwexp">
5127      <description>Gatwick Express</description>
5128      <year>1986</year>
5129      <publisher>Dee-Kay</publisher>
5130      <part name="cass" interface="bbc_cass">
5131         <dataarea name="cass" size="9582">
5132            <rom name="gatwickexpress(1986)(deekay).uef" size="9582" crc="7b817880" sha1="cca1f3190934b1ec675b41438e9429e857a86071" offset="0" />
5133         </dataarea>
5134      </part>
5135   </software>
5136
50105137   <software name="genesisp">
50115138      <description>Genesis Project</description>
50125139      <year>198?</year>
r249893r249894
50675194      <description>Go</description>
50685195      <year>1984</year>
50695196      <publisher>Acornsoft</publisher>
5197      <info name="release" value="G42" />
50705198      <part name="cass" interface="bbc_cass">
50715199         <dataarea name="cass" size="12814">
50725200            <rom name="go-v1(1984)(acornsoft)(g42).uef" size="12814" crc="e7bbcff3" sha1="0189d4ec49f327ee570d007e489e41acf0247003" offset="0" />
r249893r249894
50855213      </part>
50865214   </software>
50875215
5216   <software name="gobbler">
5217      <description>Gobbler</description>
5218      <year>1983</year>
5219      <publisher>MGB Software</publisher>
5220      <part name="cass1" interface="bbc_cass">
5221         <dataarea name="cass" size="3129">
5222            <rom name="gobbler1k(1983)(mgb).uef" size="3129" crc="f155d05d" sha1="e18d9f3b6bbabd2f91bebcd3a202fe19aa811bb9" offset="0" />
5223         </dataarea>
5224      </part>
5225      <part name="cass2" interface="bbc_cass">
5226         <dataarea name="cass" size="3043">
5227            <rom name="gobbler2j(1983)(mgb).uef" size="3043" crc="7759f9ad" sha1="843dabc4c7c0deee658d39769afe90b50dac2478" offset="0" />
5228         </dataarea>
5229      </part>
5230   </software>
5231   
50885232   <software name="golddigg">
50895233      <description>Gold Digger</description>
50905234      <year>1984</year>
r249893r249894
54985642      </part>
54995643   </software>
55005644
5645   <software name="harleq">
5646      <description>Harlequin</description>
5647      <year>1984</year>
5648      <publisher>Haresoft</publisher>
5649      <part name="cass" interface="bbc_cass">
5650         <dataarea name="cass" size="10106">
5651            <rom name="harlequin(1984)(kansas).uef" size="10106" crc="86515ca0" sha1="8818e12fcd96ab25dd3173183c0f4f9f75212718" offset="0" />
5652         </dataarea>
5653      </part>
5654   </software>
5655
55015656   <software name="heathrow">
55025657      <description>Heathrow ATC</description>
5503      <year>198?</year>
5504      <publisher>Hewson</publisher>
5658      <year>1984</year>
5659      <publisher>Hewson Consultants</publisher>
55055660      <info name="usage" value="Load with *RUN" />
55065661      <part name="cass" interface="bbc_cass">
55075662         <dataarea name="cass" size="6540">
5508            <rom name="heathrowatc_run(hewson).uef" size="6540" crc="842f3975" sha1="c5995c8e7d6c833509ac2ad32f610bfe1ed560c9" offset="0" />
5663            <rom name="heathrowatc_run(1984)(hewson).uef" size="6540" crc="842f3975" sha1="c5995c8e7d6c833509ac2ad32f610bfe1ed560c9" offset="0" />
55095664         </dataarea>
55105665      </part>
55115666   </software>
r249893r249894
57145869      <description>Hopper v2.1</description>
57155870      <year>1983</year>
57165871      <publisher>Acornsoft</publisher>
5872      <info name="release" value="G23" />
57175873      <part name="cass" interface="bbc_cass">
57185874         <dataarea name="cass" size="7958">
57195875            <rom name="hopper-v2.1(1983)(acornsoft)(g23).uef" size="7958" crc="6799d1a5" sha1="0b5bef8cd1fbf0a6032ed705150c6729d30f65f3" offset="0" />
r249893r249894
57255881      <description>Hopper v2.2</description>
57265882      <year>1983</year>
57275883      <publisher>Acornsoft</publisher>
5884      <info name="release" value="G23" />
57285885      <part name="cass" interface="bbc_cass">
57295886         <dataarea name="cass" size="7957">
57305887            <rom name="hopper-v2.2(1983)(acornsoft)(g23).uef" size="7957" crc="934807a1" sha1="39eb04e7844d06743e510ad835148bf982e94350" offset="0" />
r249893r249894
58566013
58576014   <software name="hyperdri">
58586015      <description>Hyperdrive</description>
5859      <year>198?</year>
6016      <year>1983</year>
58606017      <publisher>I.J.K.</publisher>
58616018      <part name="cass" interface="bbc_cass">
58626019         <dataarea name="cass" size="3892">
r249893r249894
58696026      <description>Hyper Sports</description>
58706027      <year>1984</year>
58716028      <publisher>Imagine</publisher>
6029      <info name="compatibility" value="disable Speech" />
58726030      <part name="cass" interface="bbc_cass">
58736031         <dataarea name="cass" size="42614">
58746032            <rom name="hypersports(1984)(imagine).uef" size="42614" crc="0e4c5bd1" sha1="011c3e1089562c85407b25c6394fae2f0ea393b7" offset="0" />
r249893r249894
61416299      </part>
61426300   </software>
61436301
6302   <software name="invaderm">
6303      <description>Invaders (MP Software)</description>
6304      <year>1983</year>
6305      <publisher>MP Software</publisher>
6306      <info name="usage" value="Load with *RUN" />
6307      <part name="cass" interface="bbc_cass">
6308         <dataarea name="cass" size="3804">
6309            <rom name="invaders_run(1983)(mpsoft).uef" size="3804" crc="2b10a843" sha1="70843f42ccb7626540d9795ac691c491c18399c5" offset="0" />
6310         </dataarea>
6311      </part>
6312   </software>
6313
6314   <software name="invaderp">
6315      <description>Invaders (PSS)</description>
6316      <year>1982</year>
6317      <publisher>PSS</publisher>
6318      <info name="usage" value="Load with *RUN" />
6319      <part name="cass" interface="bbc_cass">
6320         <dataarea name="cass" size="9422">
6321            <rom name="invaders_run(1982)(pss).uef" size="9422" crc="1cbfc3b3" sha1="e0e38521bc283f8a9b312432d0d351048077f934" offset="0" />
6322         </dataarea>
6323      </part>
6324   </software>
6325
61446326   <software name="invaders">
61456327      <description>Invaders (Superior Software)</description>
61466328      <year>1982</year>
r249893r249894
62186400      <description>JCB Digger</description>
62196401      <year>1983</year>
62206402      <publisher>Acornsoft</publisher>
6403      <info name="release" value="G09" />
62216404      <part name="cass" interface="bbc_cass">
62226405         <dataarea name="cass" size="10051">
62236406            <rom name="jcbdigger-v1.1(1983)(acornsoft)(g09).uef" size="10051" crc="2a6abe99" sha1="81ee3924e027bf16429d0a013711ebf008c752bc" offset="0" />
r249893r249894
63506533   </software>
63516534
63526535   <software name="jr">
6353      <description>JR</description>
6536      <description>J.R.</description>
63546537      <year>1982</year>
63556538      <publisher>Software For All</publisher>
63566539      <part name="cass" interface="bbc_cass">
r249893r249894
65406723      <description>Kingdom of Hamil</description>
65416724      <year>1983</year>
65426725      <publisher>Acornsoft</publisher>
6726      <info name="release" value="G25" />
65436727      <part name="cass" interface="bbc_cass">
65446728         <dataarea name="cass" size="18905">
65456729            <rom name="kingdomofhamil-v1.1(1983)(acornsoft)(g25).uef" size="18905" crc="851a33cb" sha1="f19156edaf9ed1097739eda2227e0068d72629a6" offset="0" />
r249893r249894
66736857      <description>Labyrinth</description>
66746858      <year>1984</year>
66756859      <publisher>Acornsoft</publisher>
6860      <info name="release" value="G41" />
66766861      <part name="cass" interface="bbc_cass">
66776862         <dataarea name="cass" size="15623">
66786863            <rom name="labyrinth-v1.0(1984)(acornsoft)(g41).uef" size="15623" crc="4052af69" sha1="32955760cde941a02e97371bc30542e235542244" offset="0" />
r249893r249894
67856970   <software name="lasvegas">
67866971      <description>Las Vegas</description>
67876972      <year>198?</year>
6788      <publisher>RH Soft</publisher>
6973      <publisher>RH Software</publisher>
67896974      <part name="cass" interface="bbc_cass">
67906975         <dataarea name="cass" size="4646">
67916976            <rom name="lasvegas(rhsoft).uef" size="4646" crc="7579ef3d" sha1="b43a84785f783fa30af0232d11d3f3d8215e60cf" offset="0" />
r249893r249894
68167001   </software>
68177002
68187003   <software name="leapfrog">
6819      <description>Leap Frog</description>
6820      <year>198?</year>
7004      <description>Leap-Frog</description>
7005      <year>1983</year>
68217006      <publisher>I.J.K.</publisher>
68227007      <part name="cass" interface="bbc_cass">
68237008         <dataarea name="cass" size="6652">
r249893r249894
68847069   <software name="lickeyrt">
68857070      <description>Lickey Route</description>
68867071      <year>1985</year>
6887      <publisher>DeeKay</publisher>
7072      <publisher>Dee-Kay</publisher>
68887073      <part name="cass" interface="bbc_cass">
68897074         <dataarea name="cass" size="12372">
68907075            <rom name="lickeyroute(1985)(deekay).uef" size="12372" crc="079e2ebd" sha1="d51772570b83be8e7c479b3f106374094307c9ea" offset="0" />
r249893r249894
69147099      </part>
69157100   </software>
69167101
7102   <software name="lcycles">
7103      <description>Light Cycles</description>
7104      <year>1983</year>
7105      <publisher>PAEAN Systems</publisher>
7106      <part name="cass" interface="bbc_cass">
7107         <dataarea name="cass" size="4888">
7108            <rom name="lightcycles(1983)(paean).uef" size="4888" crc="955813de" sha1="ee4e476e4f5aaa698396f6e2a34945788e830b9c" offset="0" />
7109         </dataarea>
7110      </part>
7111   </software>
7112
69177113   <software name="litepen">
69187114      <description>LitePen v1.02</description>
69197115      <year>198?</year>
r249893r249894
71597355      <description>Magic Mushrooms</description>
71607356      <year>1985</year>
71617357      <publisher>Acornsoft</publisher>
7358      <info name="release" value="G46" />
71627359      <part name="cass" interface="bbc_cass">
71637360         <dataarea name="cass" size="9083">
71647361            <rom name="magicmushrooms-v1(1985)(acornsoft)(g46).uef" size="9083" crc="54d740e1" sha1="a5a4e50e8ef8beef4f0d1ae304aa5c36853382f4" offset="0" />
r249893r249894
72677464   <software name="mastcutl">
72687465      <description>Master Cutler</description>
72697466      <year>1984</year>
7270      <publisher>DeeKay</publisher>
7467      <publisher>Dee-Kay</publisher>
72717468      <part name="cass" interface="bbc_cass">
72727469         <dataarea name="cass" size="12315">
72737470            <rom name="mastercutler(1984)(deekay).uef" size="12315" crc="b68d4bf4" sha1="6efe71e668c1ac9b90cd0cbe81eb232c9bb69075" offset="0" />
r249893r249894
73357532      <description>Maze</description>
73367533      <year>1982</year>
73377534      <publisher>Acornsoft</publisher>
7535      <info name="release" value="G11" />
73387536      <part name="cass" interface="bbc_cass">
73397537         <dataarea name="cass" size="10689">
73407538            <rom name="maze-v1(1982)(acornsoft)(g11).uef" size="10689" crc="95415e93" sha1="3c725157d1cee91a52bf4a9cbc822d892212e6f4" offset="0" />
r249893r249894
73897587   <software name="mendipst">
73907588      <description>Mendips Stone</description>
73917589      <year>1986</year>
7392      <publisher>DeeKay</publisher>
7590      <publisher>Dee-Kay</publisher>
73937591      <part name="cass" interface="bbc_cass">
73947592         <dataarea name="cass" size="7945">
73957593            <rom name="mendipsstone_be(1986)(deekay).uef" size="7945" crc="bc59d28b" sha1="8ccaff6be99b48c0a827e20414dd6d4ccb8b5fa4" offset="0" />
r249893r249894
74127610      <description>Meteor Mission</description>
74137611      <year>1984</year>
74147612      <publisher>Acornsoft</publisher>
7613      <info name="release" value="G29" />
74157614      <part name="cass" interface="bbc_cass">
74167615         <dataarea name="cass" size="7512">
74177616            <rom name="meteormission-v1(1984)(acornsoft)(g29).uef" size="7512" crc="921df4c6" sha1="1c0445f26f3607b9c7a69a5d308e587c1b8386b6" offset="0" />
r249893r249894
74347633      <description>Meteors</description>
74357634      <year>1982</year>
74367635      <publisher>Acornsoft</publisher>
7636      <info name="release" value="G13" />
74377637      <part name="cass" interface="bbc_cass">
74387638         <dataarea name="cass" size="6875">
74397639            <rom name="meteors-v1(1982)(acornsoft)(g13).uef" size="6875" crc="c737a94a" sha1="f06045f46f052a614bb3e2625007cb6ed5fb719a" offset="0" />
r249893r249894
76287828      <description>Missile Base v2.0</description>
76297829      <year>1982</year>
76307830      <publisher>Acornsoft</publisher>
7831      <info name="release" value="G18" />
76317832      <part name="cass" interface="bbc_cass">
76327833         <dataarea name="cass" size="8534">
76337834            <rom name="missilebase-v2.0(1982)(acornsoft)(g18).uef" size="8534" crc="574b5833" sha1="d9cf1b4cbafb2921f1c24af1513d33c769354eab" offset="0" />
r249893r249894
76817882
76827883   <software name="binvader">
76837884      <description>Model B Invaders</description>
7684      <year>198?</year>
7885      <year>1983</year>
76857886      <publisher>I.J.K.</publisher>
76867887      <part name="cass" interface="bbc_cass">
76877888         <dataarea name="cass" size="7294">
r249893r249894
77387939      <description>Monsters v3.0</description>
77397940      <year>1982</year>
77407941      <publisher>Acornsoft</publisher>
7942      <info name="release" value="G03" />
77417943      <part name="cass" interface="bbc_cass">
77427944         <dataarea name="cass" size="7388">
77437945            <rom name="monsters-v3.0(1982)(acornsoft)(g03).uef" size="7388" crc="60ff8790" sha1="e4a6cdafac14471c2a090c822087fbeb67824ce5" offset="0" />
r249893r249894
77497951      <description>Monsters v3.1</description>
77507952      <year>1982</year>
77517953      <publisher>Acornsoft</publisher>
7954      <info name="release" value="G03" />
77527955      <part name="cass" interface="bbc_cass">
77537956         <dataarea name="cass" size="7385">
77547957            <rom name="monsters-v3.1(1982)(acornsoft)(g03).uef" size="7385" crc="8a58e5cc" sha1="440fa54ec9852f42c8d50862e05c9fe99f3fe5c7" offset="0" />
r249893r249894
77607963      <description>Monsters v3.2</description>
77617964      <year>1982</year>
77627965      <publisher>Acornsoft</publisher>
7966      <info name="release" value="G03" />
77637967      <part name="cass" interface="bbc_cass">
77647968         <dataarea name="cass" size="8699">
77657969            <rom name="monsters-v3.2(1982)(acornsoft)(g03).uef" size="8699" crc="9b7941e1" sha1="d1a408f1f895de16d9927863f89a27c1ff6e879b" offset="0" />
r249893r249894
81228326      </part>
81238327   </software>
81248328
8329   <software name="neandman">
8330      <description>Neanderthal Man</description>
8331      <year>1984</year>
8332      <publisher>Alligata</publisher>
8333      <part name="cass" interface="bbc_cass">
8334         <dataarea name="cass" size="7559">
8335            <rom name="neanderthalman(1984)(alligata).uef" size="7559" crc="1be9bd75" sha1="241b0ea1724ab98679a989321db15ad8a85fa200" offset="0" />
8336         </dataarea>
8337      </part>
8338   </software>
8339
81258340   <software name="nemesis">
81268341      <description>Nemesis</description>
81278342      <year>1983</year>
r249893r249894
81818396   <software name="nightfli">
81828397      <description>Nightflite</description>
81838398      <year>198?</year>
8184      <publisher>Hewson</publisher>
8399      <publisher>Hewson Consultants</publisher>
81858400      <part name="cass" interface="bbc_cass">
81868401         <dataarea name="cass" size="6031">
81878402            <rom name="nightflite(hewson).uef" size="6031" crc="2232802a" sha1="09ba3978a7f3e26095d92699b83742f147ab84ec" offset="0" />
r249893r249894
85458760   <software name="peakflee">
85468761      <description>Peak Fleet Manager</description>
85478762      <year>1987</year>
8548      <publisher>DeeKay</publisher>
8763      <publisher>Dee-Kay</publisher>
85498764      <part name="cass" interface="bbc_cass">
85508765         <dataarea name="cass" size="8628">
85518766            <rom name="peakfleetmanager(1987)(deekay).uef" size="8628" crc="665431ac" sha1="684bca758498d6027a68bef6c951b2eb09795b6d" offset="0" />
r249893r249894
86788893      <description>Philosopher's Quest</description>
86798894      <year>1982</year>
86808895      <publisher>Acornsoft</publisher>
8896      <info name="release" value="G01" />
86818897      <part name="cass" interface="bbc_cass">
86828898         <dataarea name="cass" size="16930">
86838899            <rom name="philosophersquest-v2.0(1982)(acornsoft)(g01).uef" size="16930" crc="0310eeb8" sha1="dfe227e334b3174029f5445b1b396eadc2fe2826" offset="0" />
r249893r249894
88719087      <description>Planetoid v2.0</description>
88729088      <year>1982</year>
88739089      <publisher>Acornsoft</publisher>
9090      <info name="release" value="G15" />
88749091      <part name="cass" interface="bbc_cass">
88759092         <dataarea name="cass" size="8382">
88769093            <rom name="planetoid-v2.0(1982)(acornsoft)(g15).uef" size="8382" crc="c5a6ebed" sha1="27551cee8e8768b33d5fe2092c2fbeb5ecf3d787" offset="0" />
r249893r249894
88829099      <description>Planetoid v2.1</description>
88839100      <year>1982</year>
88849101      <publisher>Acornsoft</publisher>
9102      <info name="release" value="G15" />
88859103      <part name="cass" interface="bbc_cass">
88869104         <dataarea name="cass" size="8381">
88879105            <rom name="planetoid-v2.1(1982)(acornsoft)(g15).uef" size="8381" crc="0ae03de4" sha1="06f40cdf9bdc69b89010713c30431f7b6c483c2c" offset="0" />
r249893r249894
89149132   <software name="plegaron">
89159133      <description>Plegaron People Eaters</description>
89169134      <year>198?</year>
8917      <publisher>RH Soft</publisher>
9135      <publisher>RH Software</publisher>
89189136      <part name="cass" interface="bbc_cass">
89199137         <dataarea name="cass" size="3976">
89209138            <rom name="plegaronpeopleeaters(rhsoft).uef" size="3976" crc="32afd308" sha1="5f78038bb05173076311c294651e21967917a99a" offset="0" />
r249893r249894
93489566      <description>Quondam</description>
93499567      <year>1984</year>
93509568      <publisher>Acornsoft</publisher>
9569      <info name="release" value="G40" />
93519570      <part name="cass" interface="bbc_cass">
93529571         <dataarea name="cass" size="19907">
93539572            <rom name="quondam-v1(1984)(acornsoft)(g40).uef" size="19907" crc="77491c63" sha1="8b1f5f462bc1eb52ffb70cbdc37e678617a7277f" offset="0" />
r249893r249894
96399858      <description>Revs 4 Tracks</description>
96409859      <year>1985</year>
96419860      <publisher>Acornsoft</publisher>
9861      <info name="release" value="G44" />
96429862      <part name="cass" interface="bbc_cass">
96439863         <dataarea name="cass" size="27303">
96449864            <rom name="revs4tracks-srr(1985)(acornsoft)(g44).uef" size="27303" crc="64da77c6" sha1="2f438e5c5e117e9c65833264790fb2c2c4158aa6" offset="0" />
r249893r249894
96509870      <description>Revs</description>
96519871      <year>1984</year>
96529872      <publisher>Acornsoft</publisher>
9873      <info name="release" value="G43" />
96539874      <part name="cass" interface="bbc_cass">
96549875         <dataarea name="cass" size="31111">
96559876            <rom name="revs.hq(1984)(acornsoft)(g43).uef" size="31111" crc="42b8a114" sha1="9d4ff3aa3370c49b4ace00162d2117f0fe2bc442" offset="0" />
r249893r249894
97519972      </part>
97529973   </software>
97539974
9975   <software name="robinshw">
9976      <description>Robin of Sherwood</description>
9977      <year>198?</year>
9978      <publisher>Reflections Software</publisher>
9979      <part name="cass" interface="bbc_cass">
9980         <dataarea name="cass" size="7164">
9981            <rom name="robinofsherwood(reflections).uef" size="7164" crc="53394a42" sha1="1dfc4e87c9767829821b30412c30d159f331e343" offset="0" />
9982         </dataarea>
9983      </part>
9984   </software>
9985
9986   <software name="robobrai">
9987      <description>Robo Brain</description>
9988      <year>1983</year>
9989      <publisher>MGB Software</publisher>
9990      <part name="cass" interface="bbc_cass">
9991         <dataarea name="cass" size="5190">
9992            <rom name="robobrain(1983)(mgb).uef" size="5190" crc="16abb7b0" sha1="cf3cddc19b1fa4af64a1ba58ad08e5cc1b7dbb86" offset="0" />
9993         </dataarea>
9994      </part>
9995   </software>
9996
97549997   <software name="roboman">
97559998      <description>Roboman</description>
97569999      <year>198?</year>
r249893r249894
979910042      <description>Rocket Raid v1</description>
980010043      <year>1982</year>
980110044      <publisher>Acornsoft</publisher>
10045      <info name="release" value="G05" />
980210046      <part name="cass" interface="bbc_cass">
980310047         <dataarea name="cass" size="7912">
980410048            <rom name="rocketraid-v1(1982)(acornsoft)(g05).uef" size="7912" crc="15d61216" sha1="843e6ba8637352b946cef168cc1a46c900ca432d" offset="0" />
r249893r249894
981010054      <description>Rocket Raid v2.0</description>
981110055      <year>1982</year>
981210056      <publisher>Acornsoft</publisher>
10057      <info name="release" value="G05" />
981310058      <part name="cass" interface="bbc_cass">
981410059         <dataarea name="cass" size="7931">
981510060            <rom name="rocketraid-v2.0(1982)(acornsoft)(g05).uef" size="7931" crc="4827a001" sha1="e67e12145a55be7f1152fe00d7185214abbf3a2b" offset="0" />
r249893r249894
982110066      <description>Rocket Raid v2.1</description>
982210067      <year>1982</year>
982310068      <publisher>Acornsoft</publisher>
10069      <info name="release" value="G05" />
982410070      <part name="cass" interface="bbc_cass">
982510071         <dataarea name="cass" size="7933">
982610072            <rom name="rocketraid-v2.1(1982)(acornsoft)(g05).uef" size="7933" crc="f63b0425" sha1="e4178ad35c36791babca5bd5cb4328142eaf2b2c" offset="0" />
r249893r249894
991310159   <software name="royalsct">
991410160      <description>Royal Scot</description>
991510161      <year>1984</year>
9916      <publisher>DeeKay</publisher>
10162      <publisher>Dee-Kay</publisher>
991710163      <part name="cass" interface="bbc_cass">
991810164         <dataarea name="cass" size="12898">
991910165            <rom name="royalscot(1984)(deekay).uef" size="12898" crc="27da2fc7" sha1="71e15371dcc300961de29d601ee68371876ec98e" offset="0" />
r249893r249894
992410170   <software name="rtcbirmi">
992510171      <description>RTC Birmingham</description>
992610172      <year>198?</year>
9927      <publisher>DeeKay</publisher>
10173      <publisher>Dee-Kay</publisher>
992810174      <part name="cass" interface="bbc_cass">
992910175         <dataarea name="cass" size="8222">
993010176            <rom name="rtcbirmingham_be(deekay).uef" size="8222" crc="ef8b2908" sha1="4c18a4b2f63e4f811ea54b2ed03710f18e20a402" offset="0" />
r249893r249894
993510181   <software name="rtcbuxtn">
993610182      <description>RTC Buxton</description>
993710183      <year>1987</year>
9938      <publisher>DeeKay</publisher>
10184      <publisher>Dee-Kay</publisher>
993910185      <part name="cass" interface="bbc_cass">
994010186         <dataarea name="cass" size="9005">
994110187            <rom name="rtcbuxton(1987)(deekay).uef" size="9005" crc="a72b8bfb" sha1="a383afe3e1ae681c338054de03c516132cecf67c" offset="0" />
r249893r249894
994610192   <software name="rtccrewe">
994710193      <description>RTC Crewe</description>
994810194      <year>1987</year>
9949      <publisher>DeeKay</publisher>
10195      <publisher>Dee-Kay</publisher>
995010196      <part name="cass" interface="bbc_cass">
995110197         <dataarea name="cass" size="8527">
995210198            <rom name="rtccrewe_be(1987)(deekay).uef" size="8527" crc="56eec158" sha1="785f4f2fa8fedc287e80c0ea60675e884dc95402" offset="0" />
r249893r249894
995710203   <software name="rtcdonca">
995810204      <description>RTC Doncaster</description>
995910205      <year>1988</year>
9960      <publisher>DeeKay</publisher>
10206      <publisher>Dee-Kay</publisher>
996110207      <part name="cass" interface="bbc_cass">
996210208         <dataarea name="cass" size="7551">
996310209            <rom name="rtcdoncaster_be(1988)(deekay).uef" size="7551" crc="abced791" sha1="750cf1971d166bff1d08229a416160439c74c6a0" offset="0" />
r249893r249894
996810214   <software name="rtckingx">
996910215      <description>RTC Kings Cross</description>
997010216      <year>1986</year>
9971      <publisher>DeeKay</publisher>
10217      <publisher>Dee-Kay</publisher>
997210218      <part name="cass" interface="bbc_cass">
997310219         <dataarea name="cass" size="11315">
997410220            <rom name="rtckingscross(1986)(deekay).uef" size="11315" crc="fe451538" sha1="272796eb55976cd8cf7478463e5966a0770ca88c" offset="0" />
r249893r249894
997910225   <software name="rtclimes">
998010226      <description>RTC Limestreet</description>
998110227      <year>198?</year>
9982      <publisher>DeeKay</publisher>
10228      <publisher>Dee-Kay</publisher>
998310229      <part name="cass" interface="bbc_cass">
998410230         <dataarea name="cass" size="10948">
998510231            <rom name="rtclimestreet(deekay).uef" size="10948" crc="5a2aca83" sha1="47b5876b2b9e8043a59a0d2c3232a0a244456839" offset="0" />
r249893r249894
999010236   <software name="rtcpaddi">
999110237      <description>RTC Paddington</description>
999210238      <year>1986</year>
9993      <publisher>DeeKay</publisher>
10239      <publisher>Dee-Kay</publisher>
999410240      <part name="cass" interface="bbc_cass">
999510241         <dataarea name="cass" size="10900">
999610242            <rom name="rtcpaddington(1986)(deekay).uef" size="10900" crc="e43dbfef" sha1="c7c1a0dd39c4fcb5784a228f3fcc8fd1cd72b50e" offset="0" />
r249893r249894
1000110247   <software name="rtcpenza">
1000210248      <description>RTC Penzance</description>
1000310249      <year>1985</year>
10004      <publisher>DeeKay</publisher>
10250      <publisher>Dee-Kay</publisher>
1000510251      <part name="cass" interface="bbc_cass">
1000610252         <dataarea name="cass" size="11330">
1000710253            <rom name="rtcpenzance(1985)(deekay).uef" size="11330" crc="8a62b238" sha1="ac5599bf803f8bf7cd50a18c157e24b4a452a332" offset="0" />
r249893r249894
1018010426      </part>
1018110427   </software>
1018210428
10429   <software name="scotrexp">
10430      <description>ScotRail Express</description>
10431      <year>1985</year>
10432      <publisher>Dee-Kay</publisher>
10433      <part name="cass" interface="bbc_cass">
10434         <dataarea name="cass" size="11180">
10435            <rom name="scotrailexpress_b(1985)(deekay).uef" size="11180" crc="7da63e0d" sha1="43ebdfd491958d2258ef374cde08fa565ae361bc" offset="0" />
10436         </dataarea>
10437      </part>
10438   </software>
10439
1018310440   <software name="scrabble">
1018410441      <description>Scrabble</description>
1018510442      <year>198?</year>
r249893r249894
1030810565      <publisher>Cabinsoft</publisher>
1030910566      <part name="cass" interface="bbc_cass">
1031010567         <dataarea name="cass" size="2481">
10311            <rom name="securityromdemonstration(cabinsoft.uef" size="2481" crc="753c6dbf" sha1="b22714e296107cbd2b319938232ed1db7ff28ae5" offset="0" />
10568            <rom name="securityromdemonstration(cabinsoft).uef" size="2481" crc="753c6dbf" sha1="b22714e296107cbd2b319938232ed1db7ff28ae5" offset="0" />
1031210569         </dataarea>
1031310570      </part>
1031410571   </software>
1031510572
1031610573   <software name="sentinel">
1031710574      <description>Sentinel</description>
10318      <year>198?</year>
10575      <year>1983</year>
1031910576      <publisher>PSS</publisher>
1032010577      <part name="cass" interface="bbc_cass">
1032110578         <dataarea name="cass" size="5940">
10322            <rom name="sentinel(pss).uef" size="5940" crc="b19573db" sha1="9a2e6c1cfa320a4e3b96eb692c7d9b5e40bf55cf" offset="0" />
10579            <rom name="sentinel(1983)(pss).uef" size="5940" crc="b19573db" sha1="9a2e6c1cfa320a4e3b96eb692c7d9b5e40bf55cf" offset="0" />
1032310580         </dataarea>
1032410581      </part>
1032510582   </software>
r249893r249894
1032810585      <description>The Seventh Star</description>
1032910586      <year>1984</year>
1033010587      <publisher>Acornsoft</publisher>
10588      <info name="release" value="G36" />
1033110589      <part name="cass" interface="bbc_cass">
1033210590         <dataarea name="cass" size="22732">
1033310591            <rom name="seventhstar-v1.0(1984)(acornsoft)(g36).uef" size="22732" crc="a3202842" sha1="a83ddaf4e4d39e61aa44fd7eaa07dea510dbdd36" offset="0" />
r249893r249894
1038210640   <software name="shbounds">
1038310641      <description>Shedmaster Bounds Greene</description>
1038410642      <year>1987</year>
10385      <publisher>DeeKay</publisher>
10643      <publisher>Dee-Kay</publisher>
1038610644      <part name="cass" interface="bbc_cass">
1038710645         <dataarea name="cass" size="7782">
1038810646            <rom name="shedmasterboundsgreen_be(1987)(deekay).uef" size="7782" crc="3b4b1e8c" sha1="7b89e3a903d026d2a380e1855b953e5ebf610cde" offset="0" />
r249893r249894
1039310651   <software name="shfinpar">
1039410652      <description>Shedmaster Finsbury Park</description>
1039510653      <year>198?</year>
10396      <publisher>DeeKay</publisher>
10654      <publisher>Dee-Kay</publisher>
1039710655      <part name="cass" interface="bbc_cass">
1039810656         <dataarea name="cass" size="7479">
1039910657            <rom name="shedmasterfinsburypark_be(deekay).uef" size="7479" crc="d611e533" sha1="88970796ea38b34f3809ffb2d2dfa642c700c396" offset="0" />
r249893r249894
1049210750
1049310751   <software name="skislalo">
1049410752      <description>Ski Slalom</description>
10495      <year>198?</year>
10496      <publisher>RH Soft</publisher>
10753      <year>1982</year>
10754      <publisher>RH Software</publisher>
1049710755      <part name="cass" interface="bbc_cass">
1049810756         <dataarea name="cass" size="7697">
10499            <rom name="skislalom(rhsoft).uef" size="7697" crc="d8221260" sha1="136d014abd437f1ea00788a32f2b626617b381c7" offset="0" />
10757            <rom name="skislalom(1982)(rhsoft).uef" size="7697" crc="d8221260" sha1="136d014abd437f1ea00788a32f2b626617b381c7" offset="0" />
1050010758         </dataarea>
1050110759      </part>
1050210760   </software>
r249893r249894
1053810796      <description>Sliding Block Puzzles v1.0</description>
1053910797      <year>1982</year>
1054010798      <publisher>Acornsoft</publisher>
10799      <info name="release" value="G12" />
1054110800      <part name="cass" interface="bbc_cass">
1054210801         <dataarea name="cass" size="13546">
1054310802            <rom name="slidingblockpuzzles-v1.0(1982)(acornsoft)(g12).uef" size="13546" crc="731299fd" sha1="8208e7cdb6ba40713fb44922cdf0f893a72ca6d6" offset="0" />
r249893r249894
1054910808      <description>Sliding Block Puzzles v2.3</description>
1055010809      <year>1982</year>
1055110810      <publisher>Acornsoft</publisher>
10811      <info name="release" value="G12" />
1055210812      <part name="cass" interface="bbc_cass">
1055310813         <dataarea name="cass" size="14702">
1055410814            <rom name="slidingblockpuzzles-v2.3(1982)(acornsoft)(g12).uef" size="14702" crc="dc26f6e9" sha1="684924eafe6e6054b2aa7c6ca55c01595ec1a330" offset="0" />
r249893r249894
1063510895
1063610896   <software name="snailtra">
1063710897      <description>Snail Trail</description>
10638      <year>198?</year>
10639      <publisher>RH Soft</publisher>
10898      <year>1983</year>
10899      <publisher>RH Software</publisher>
10900      <info name="release" value="RHS004C" />
1064010901      <part name="cass" interface="bbc_cass">
1064110902         <dataarea name="cass" size="3596">
10642            <rom name="snailtrail(rhsoft).uef" size="3596" crc="ee60ab61" sha1="af8021dead673b6244ce5a08fab4247705a5ce92" offset="0" />
10903            <rom name="snailtrail(1983)(rhsoft).uef" size="3596" crc="ee60ab61" sha1="af8021dead673b6244ce5a08fab4247705a5ce92" offset="0" />
1064310904         </dataarea>
1064410905      </part>
1064510906   </software>
r249893r249894
1068110942      <description>Snapper v1</description>
1068210943      <year>1982</year>
1068310944      <publisher>Acornsoft</publisher>
10945      <info name="release" value="G04" />
1068410946      <part name="cass" interface="bbc_cass">
1068510947         <dataarea name="cass" size="6568">
1068610948            <rom name="snapper-v1(1982)(acornsoft)(g04).uef" size="6568" crc="dd094359" sha1="7baac890a5d40f332f491d3eaebfcc7eaee18044" offset="0" />
r249893r249894
1069210954      <description>Snapper v2.1</description>
1069310955      <year>1982</year>
1069410956      <publisher>Acornsoft</publisher>
10957      <info name="release" value="G04" />
1069510958      <part name="cass" interface="bbc_cass">
1069610959         <dataarea name="cass" size="7330">
1069710960            <rom name="snapper-v2.1(1982)(acornsoft)(g04).uef" size="7330" crc="d0ee1a50" sha1="aa34d0e1a6d3fb862194705b77a016822b54ceaf" offset="0" />
r249893r249894
1070310966      <description>Snapper v2.2</description>
1070410967      <year>1982</year>
1070510968      <publisher>Acornsoft</publisher>
10969      <info name="release" value="G04" />
1070610970      <part name="cass" interface="bbc_cass">
1070710971         <dataarea name="cass" size="7331">
1070810972            <rom name="snapper-v2.2(1982)(acornsoft)(g04).uef" size="7331" crc="ef5ee5d1" sha1="1a365530f20fcbc99f5b4e9f36445c393b9482d8" offset="0" />
r249893r249894
1071410978      <description>Snooker (Acornsoft)</description>
1071510979      <year>1983</year>
1071610980      <publisher>Acornsoft</publisher>
10981      <info name="release" value="G21" />
1071710982      <part name="cass" interface="bbc_cass">
1071810983         <dataarea name="cass" size="7270">
1071910984            <rom name="snooker-acornsoft-v2.0(1983)(acornsoft)(g21).uef" size="7270" crc="d60da42b" sha1="79281c87db0191cc559f542dfcbc43a1ce15880a" offset="0" />
r249893r249894
1079011055   <software name="sdevonhy">
1079111056      <description>South Devon Hydraulics</description>
1079211057      <year>1986</year>
10793      <publisher>DeeKay</publisher>
11058      <publisher>Dee-Kay</publisher>
1079411059      <part name="cass" interface="bbc_cass">
1079511060         <dataarea name="cass" size="9817">
1079611061            <rom name="southdevonhydraulics_be(1986)(deekay).uef" size="9817" crc="077ca5a1" sha1="3740634d311e3c629fca3ddc9bb2c7f2fb096100" offset="0" />
r249893r249894
1080011065
1080111066   <software name="sbelle">
1080211067      <description>Southern Belle</description>
10803      <year>198?</year>
10804      <publisher>Hewson</publisher>
11068      <year>1986</year>
11069      <publisher>Hewson Consultants</publisher>
1080511070      <part name="cass" interface="bbc_cass">
1080611071         <dataarea name="cass" size="17855">
10807            <rom name="southernbelle(hewson).uef" size="17855" crc="bbc456d4" sha1="4f11b9d0f4b061cb6c497b4cda8c41f22eb25932" offset="0" />
11072            <rom name="southernbelle(1986)(hewson).uef" size="17855" crc="bbc456d4" sha1="4f11b9d0f4b061cb6c497b4cda8c41f22eb25932" offset="0" />
1080811073         </dataarea>
1080911074      </part>
1081011075   </software>
r249893r249894
1085811123      <description>Space Fighter</description>
1085911124      <year>1982</year>
1086011125      <publisher>Superior Software</publisher>
11126      <info name="compatibility" value="disable Speech" />
1086111127      <info name="usage" value="Load with *RUN" />
1086211128      <part name="cass" interface="bbc_cass">
1086311129         <dataarea name="cass" size="8053">
r249893r249894
1086611132      </part>
1086711133   </software>
1086811134
11135   <software name="spguard">
11136      <description>Spaceguard</description>
11137      <year>1983</year>
11138      <publisher>MP Software</publisher>
11139      <info name="usage" value="Load with *RUN" />
11140      <part name="cass" interface="bbc_cass">
11141         <dataarea name="cass" size="4280">
11142            <rom name="spaceguard_run(1983)(mpsoft).uef" size="4280" crc="eeaf252a" sha1="9f56303dda43d941b20191b0433873595af0badf" offset="0" />
11143         </dataarea>
11144      </part>
11145   </software>
11146
1086911147   <software name="sphawks">
1087011148      <description>Space Hawks</description>
1087111149      <year>1982</year>
r249893r249894
1090111179      </part>
1090211180   </software>
1090311181
11182   <software name="spacinvb">
11183      <description>Space Invaders 32K</description>
11184      <year>1982</year>
11185      <publisher>David McKeran</publisher>
11186      <info name="usage" value="Load with *RUN" />
11187      <part name="cass" interface="bbc_cass">
11188         <dataarea name="cass" size="4677">
11189            <rom name="spaceinvaders32k_run(1982)(davidmckeran).uef" size="4677" crc="0d6b4b06" sha1="4118583ce81c22bc13d06e162e1565935b6c6331" offset="0" />
11190         </dataarea>
11191      </part>
11192   </software>
11193
1090411194   <software name="spjailer">
1090511195      <description>Space Jailer</description>
1090611196      <year>198?</year>
r249893r249894
1091211202      </part>
1091311203   </software>
1091411204
11205   <software name="skingdom">
11206      <description>Space Kingdom</description>
11207      <year>1983</year>
11208      <publisher>Cosma</publisher>
11209      <part name="cass" interface="bbc_cass">
11210         <dataarea name="cass" size="10207">
11211            <rom name="spacekingdom(1983)(cosma).uef" size="10207" crc="6e08b728" sha1="71b43cf1f5ff8fbac04b5a679aaf20e26410ddf2" offset="0" />
11212         </dataarea>
11213      </part>
11214   </software>
11215
1091511216   <software name="spmansid">
1091611217      <description>Spaceman Sid</description>
1091711218      <year>1984</year>
r249893r249894
1107611377      <description>Sphinx Adventure</description>
1107711378      <year>1982</year>
1107811379      <publisher>Acornsoft</publisher>
11380      <info name="release" value="G07" />
1107911381      <part name="cass" interface="bbc_cass">
1108011382         <dataarea name="cass" size="13999">
1108111383            <rom name="sphinxadventure-v1.0(1982)(acornsoft)(g07).uef" size="13999" crc="d71fcbc5" sha1="177135bfa47a0bc46cdcf29342aacb10339303e6" offset="0" />
r249893r249894
1140611708      <description>Starship Command</description>
1140711709      <year>1983</year>
1140811710      <publisher>Acornsoft</publisher>
11711      <info name="release" value="G22" />
1140911712      <part name="cass" interface="bbc_cass">
1141011713         <dataarea name="cass" size="12949">
1141111714            <rom name="starshipcommand-v1.1(1983)(acornsoft)(g22).uef" size="12949" crc="92204551" sha1="7606748c501013fde28357214e74134ce84b5d50" offset="0" />
r249893r249894
1184012143      <description>Super Invaders</description>
1184112144      <year>1982</year>
1184212145      <publisher>Acornsoft</publisher>
12146      <info name="release" value="G16" />
1184312147      <part name="cass" interface="bbc_cass">
1184412148         <dataarea name="cass" size="6377">
1184512149            <rom name="superinvaders-v1(1982)(acornsoft)(g16).uef" size="6377" crc="fd1fd9d5" sha1="35e7c2717a8ae193f9321fcb9a3734e1c3ea5668" offset="0" />
r249893r249894
1208512389   <software name="teestyne">
1208612390      <description>Tees-Tyne Pullman</description>
1208712391      <year>1986</year>
12088      <publisher>DeeKay</publisher>
12392      <publisher>Dee-Kay</publisher>
1208912393      <part name="cass" interface="bbc_cass">
1209012394         <dataarea name="cass" size="11984">
1209112395            <rom name="tees-tynepullman(1986)(deekay).uef" size="11984" crc="7cec68ec" sha1="12dfe5c4d39e5531210295ca6919ba6812101350" offset="0" />
r249893r249894
1219512499      <description>Tetrapod</description>
1219612500      <year>1984</year>
1219712501      <publisher>Acornsoft</publisher>
12502      <info name="release" value="G32" />
1219812503      <part name="cass" interface="bbc_cass">
1219912504         <dataarea name="cass" size="9542">
1220012505            <rom name="tetrapod-v1(1984)(acornsoft)(g32).uef" size="9542" crc="8c1b883a" sha1="d2e327fc890d245dbc624b197b4bc0e86db09911" offset="0" />
r249893r249894
1243612741   <software name="middaysc">
1243712742      <description>The Midday Scot</description>
1243812743      <year>1986</year>
12439      <publisher>DeeKay</publisher>
12744      <publisher>Dee-Kay</publisher>
1244012745      <part name="cass" interface="bbc_cass">
1244112746         <dataarea name="cass" size="13372">
1244212747            <rom name="themid-dayscot(1986)(deekay).uef" size="13372" crc="5c9d53d0" sha1="46a66a4ab4df31a088d86f950e5b04e9f4cfe2bc" offset="0" />
r249893r249894
1252212827      </part>
1252312828   </software>
1252412829
12830   <software name="thamesl">
12831      <description>Thames Local</description>
12832      <year>1986</year>
12833      <publisher>Dee-Kay</publisher>
12834      <part name="cass" interface="bbc_cass">
12835         <dataarea name="cass" size="9334">
12836            <rom name="thameslocal_be(1986)(deekay).uef" size="9334" crc="d313a3de" sha1="20db76cc4073b56e2a1049aa3f28b753b07fe8f7" offset="0" />
12837         </dataarea>
12838      </part>
12839   </software>
12840
1252512841   <software name="thesting">
1252612842      <description>The Sting</description>
1252712843      <year>1984</year>
r249893r249894
1302913345      </part>
1303013346   </software>
1303113347
13348   <software name="tycoon">
13349      <description>Tycoon</description>
13350      <year>1984</year>
13351      <publisher>Warlock Software</publisher>
13352      <part name="cass" interface="bbc_cass">
13353         <dataarea name="cass" size="14508">
13354            <rom name="tycoon(1984)(warlock).uef" size="14508" crc="6efc1003" sha1="957864695a866cb7ba0445d361614e1e3bc81552" offset="0" />
13355         </dataarea>
13356      </part>
13357   </software>
13358
1303213359   <software name="ultronpprr" cloneof="ultron">
1303313360      <description>Ultron (Power Pack)</description>
1303413361      <year>1986</year>
r249893r249894
1325013577      <description>Volcano</description>
1325113578      <year>1984</year>
1325213579      <publisher>Acornsoft</publisher>
13580      <info name="release" value="G33" />
1325313581      <part name="cass" interface="bbc_cass">
1325413582         <dataarea name="cass" size="9951">
1325513583            <rom name="volcano-v1(1984)(acornsoft)(g33).uef" size="9951" crc="6750ea2f" sha1="5079d10c287cdab70bb1c73078fc05c488aff045" offset="0" />
r249893r249894
1401514343      <description>Desk Diary</description>
1401614344      <year>198?</year>
1401714345      <publisher>Acornsoft</publisher>
14346      <info name="release" value="B01" />
1401814347      <part name="cass" interface="bbc_cass">
1401914348         <dataarea name="cass" size="8831">
1402014349            <rom name="deskdiary(198x)(acornsoft)(b01).uef" size="8831" crc="fa88d857" sha1="e12a6e25e371a141c7152a8e88474be2967cb4c2" offset="0" />
r249893r249894
1402614355      <description>Forecast</description>
1402714356      <year>198?</year>
1402814357      <publisher>Acornsoft</publisher>
14358      <info name="release" value="B02" />
1402914359      <part name="cass" interface="bbc_cass">
1403014360         <dataarea name="cass" size="13657">
1403114361            <rom name="forecast(198x)(acornsoft)(b02).uef" size="13657" crc="63f563b6" sha1="e3624dcd75ec92a610d152821931ef0a020681db" offset="0" />
r249893r249894
1405314383      <description>Personal Money Management</description>
1405414384      <year>198?</year>
1405514385      <publisher>Acornsoft</publisher>
14386      <info name="release" value="B05" />
1405614387      <part name="cass" interface="bbc_cass">
1405714388         <dataarea name="cass" size="11383">
1405814389            <rom name="personalmoneymanagement(198x)(acornsoft)(b05).uef" size="11383" crc="ab870373" sha1="8c287a4e4427ad60c023a651f78e78e8952f9abb" offset="0" />
r249893r249894
1406414395      <description>Stock Control</description>
1406514396      <year>198?</year>
1406614397      <publisher>Acornsoft</publisher>
14398      <info name="release" value="B11" />
1406714399      <part name="cass" interface="bbc_cass">
1406814400         <dataarea name="cass" size="4706">
1406914401            <rom name="stockcontrol(198x)(acornsoft)(b11).uef" size="4706" crc="b53b4c25" sha1="e91185367082cced699e8899e62e9d854d79cc6a" offset="0" />
r249893r249894
1426314595      <description>Chemical Analysis</description>
1426414596      <year>198?</year>
1426514597      <publisher>Acornsoft</publisher>
14598      <info name="release" value="E12" />
1426614599      <part name="cass" interface="bbc_cass">
1426714600         <dataarea name="cass" size="14615">
1426814601            <rom name="chemicalanalysis(198x)(acornsoft)(e12).uef" size="14615" crc="ba8cf4d3" sha1="8a3ce907763a834a2a1ddd8d26bbc25a9838e6c8" offset="0" />
r249893r249894
1427414607      <description>Chemical Simulations</description>
1427514608      <year>198?</year>
1427614609      <publisher>Acornsoft</publisher>
14610      <info name="release" value="E13" />
1427714611      <part name="cass" interface="bbc_cass">
1427814612         <dataarea name="cass" size="22182">
1427914613            <rom name="chemicalsimulations(198x)(acornsoft)(e13).uef" size="22182" crc="120f468c" sha1="991f98f80465c6a7e5c2d3db5b6228f5be247d64" offset="0" />
r249893r249894
1428514619      <description>Chemical Structures</description>
1428614620      <year>198?</year>
1428714621      <publisher>Acornsoft</publisher>
14622      <info name="release" value="E14" />
1428814623      <part name="cass" interface="bbc_cass">
1428914624         <dataarea name="cass" size="7832">
1429014625            <rom name="chemicalstructures(198x)(acornsoft)(e14).uef" size="7832" crc="854200b2" sha1="d1076fc51983acdd7eff655256d973a5daa01d4e" offset="0" />
r249893r249894
1474615081      <description>Sentence Sequencing</description>
1474715082      <year>198?</year>
1474815083      <publisher>Acornsoft</publisher>
15084      <info name="release" value="E07" />
1474915085      <part name="cass" interface="bbc_cass">
1475015086         <dataarea name="cass" size="8628">
1475115087            <rom name="sentencesequencing(198x)(acornsoft)(e07).uef" size="8628" crc="a7cbdc3b" sha1="ee718b17f7810fffdc309b693873bafca8018933" offset="0" />
r249893r249894
1485015186      <description>Tree Of Knowledge</description>
1485115187      <year>198?</year>
1485215188      <publisher>Acornsoft</publisher>
15189      <info name="release" value="E04" />
1485315190      <part name="cass" interface="bbc_cass">
1485415191         <dataarea name="cass" size="10563">
1485515192            <rom name="treeofknowlege(198x)(acornsoft)(e04).uef" size="10563" crc="3c8b5c61" sha1="53d21c483fcbfacb22fb1afc63d1f38bc479e6f2" offset="0" />
r249893r249894
1494915286      <description>Spooky Manor</description>
1495015287      <year>198?</year>
1495115288      <publisher>Acornsoft</publisher>
15289      <info name="release" value="E18" />
1495215290      <part name="cass" interface="bbc_cass">
1495315291         <dataarea name="cass" size="17433">
1495415292            <rom name="spookymanor-v1(198x)(acornsoft)(e18).uef" size="17433" crc="14f8ddae" sha1="17a0e69bfb907557f7f90003eeb1cc351fc3ae97" offset="0" />
r249893r249894
1496015298      <description>Workshop</description>
1496115299      <year>198?</year>
1496215300      <publisher>Acornsoft</publisher>
15301      <info name="release" value="E23" />
1496315302      <part name="cass" interface="bbc_cass">
1496415303         <dataarea name="cass" size="11126">
1496515304            <rom name="workshop-v1(198x)(acornsoft)(e23).uef" size="11126" crc="abfeb34b" sha1="512dd8b9ca14cefb27978392bcb5ffb98535a715" offset="0" />
r249893r249894
1497115310      <description>ABC</description>
1497215311      <year>198?</year>
1497315312      <publisher>Acornsoft</publisher>
15313      <info name="release" value="E24" />
1497415314      <part name="cass" interface="bbc_cass">
1497515315         <dataarea name="cass" size="13886">
1497615316            <rom name="abc(198x)(acornsoft)(e24).uef" size="13886" crc="1da6a521" sha1="0b3ea05602f07fe084f46723f65613f1a13d5a56" offset="0" />
r249893r249894
1500915349
1501015350   <software name="forth">
1501115351      <description>Forth</description>
15012      <year>198?</year>
15352      <year>1982</year>
1501315353      <publisher>Acornsoft</publisher>
15354      <info name="release" value="L01" />
1501415355      <part name="cass" interface="bbc_cass">
1501515356         <dataarea name="cass" size="17212">
1501615357            <rom name="forth(acornsoft).uef" size="17212" crc="1eda123d" sha1="f4a545734043bc631bfc3affa7bda26203c89b42" offset="0" />
r249893r249894
1502215363      <description>LISP</description>
1502315364      <year>1982</year>
1502415365      <publisher>Acornsoft</publisher>
15366      <info name="release" value="L02" />
1502515367      <part name="cass" interface="bbc_cass">
1502615368         <dataarea name="cass" size="12734">
1502715369            <rom name="lisp(1982)(acornsoft)(l02).uef" size="12734" crc="f93222c5" sha1="fd2b12ce8a273d0b2340c86627c82dec85a7366e" offset="0" />
r249893r249894
1515915501      <description>Creative Graphics</description>
1516015502      <year>198?</year>
1516115503      <publisher>Acornsoft</publisher>
15504      <info name="release" value="X01" />
1516215505      <part name="cass" interface="bbc_cass">
1516315506         <dataarea name="cass" size="9543">
1516415507            <rom name="creativegraphics(198x)(acornsoft)(x01).uef" size="9543" crc="b1879555" sha1="5f603d2a1c0693c4d91d8695e473e65e5c6ba3c5" offset="0" />
r249893r249894
1519715540      <description>Picture Maker</description>
1519815541      <year>1983</year>
1519915542      <publisher>Acornsoft</publisher>
15543      <info name="release" value="X03" />
1520015544      <part name="cass" interface="bbc_cass">
1520115545         <dataarea name="cass" size="18501">
1520215546            <rom name="picturemaker(1983)(acornsoft)(x03).uef" size="18501" crc="5a1ad93a" sha1="a7bec5e1b1271335e33f9fdb92b1bb0dfe01a232" offset="0" />
r249893r249894
1520815552      <description>Shirley Conran's Magic Garden</description>
1520915553      <year>1983</year>
1521015554      <publisher>Acornsoft</publisher>
15555      <info name="release" value="X04" />
1521115556      <part name="cass" interface="bbc_cass">
1521215557         <dataarea name="cass" size="14024">
1521315558            <rom name="shirleyconransmagicgarden(1983)(acornsoft)(x04).uef" size="14024" crc="19697140" sha1="992cf0986bffcc8c8c5bf7eccd262ab34157298b" offset="0" />
r249893r249894
1521915564      <description>One to Nine</description>
1522015565      <year>198?</year>
1522115566      <publisher>Acornsoft</publisher>
15567      <info name="release" value="X07" />
1522215568      <part name="cass" interface="bbc_cass">
1522315569         <dataarea name="cass" size="6845">
1522415570            <rom name="onetonine(198x)(acornsoft)(x07).uef" size="6845" crc="c9cdc624" sha1="63e3f8d61c49773f2c9437bfb103a0787cf70e5a" offset="0" />
r249893r249894
1523015576      <description>Paul Daniel's Magic Show</description>
1523115577      <year>198?</year>
1523215578      <publisher>Acornsoft</publisher>
15579      <info name="release" value="X11" />
1523315580      <part name="cass" interface="bbc_cass">
1523415581         <dataarea name="cass" size="25634">
1523515582            <rom name="pauldanielsmagicshow(198x)(acornsoft)(x11).uef" size="25634" crc="794f3de0" sha1="efa0139ad02dac3867fb4a446216b384ffb58efa" offset="0" />
r249893r249894
1524115588      <description>Linkword Spanish</description>
1524215589      <year>1984</year>
1524315590      <publisher>Acornsoft</publisher>
15591      <info name="release" value="X15" />
1524415592      <part name="cass1" interface="bbc_cass">
1524515593         <dataarea name="cass" size="25919">
1524615594            <rom name="linkwordspanish-side1(1984)(acornsoft)(x15).uef" size="25919" crc="f67a4b4a" sha1="857996b61e180ac4c5e73c0dc41e1fb07756de46" offset="0" />
trunk/hash/bbcb_flop.xml
r0r249894
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!-- BBC Micro Model B Disks -->
5
6<!-- Loading Instructions:
7
8      Hold down the SHIFT key and press and release the BREAK key.
9-->
10
11<!-- This list was compiled from the archive at http://www.stairwaytohell.com/. Additional titles will be added as they are made available at http://stardot.org.uk/ forum. -->
12
13<!-- All images in this list contain no protection, they are either deprotected disc images or transferred from cassette. Some may never have been protected and will be marked if known. -->
14
15
16<softwarelist name="bbcb_flop" description="BBC Micro Model B disks">
17
18   <software name="3dbombal">
19      <description>3D Bomb Alley</description>
20      <year>1983</year>
21      <publisher>Software Invasion</publisher>
22      <part name="flop1" interface="floppy_5_25">
23         <dataarea name="flop" size="102400">
24            <rom name="3dbomballey.ssd" size="102400" crc="5a8deaff" sha1="d0f4716a376e4407492b4db7f87597bc07d7651f" offset="0" />
25         </dataarea>
26      </part>
27   </software>
28
29   <software name="cutekill">
30      <description>Cute To Kill: Beyond Infinity</description>
31      <year>1987</year>
32      <publisher>Mandarin</publisher>
33      <part name="flop1" interface="floppy_5_25">
34         <dataarea name="flop" size="48640">
35            <rom name="beyondinfinity-cutetokill.ssd" size="48640" crc="350daf5c" sha1="afe6bc6448e86e6bc6bee34cae09c8cf46828b1b" offset="0" />
36         </dataarea>
37      </part>
38   </software>
39   
40   <software name="elite">
41      <description>Elite</description>
42      <year>1984</year>
43      <publisher>Acornsoft</publisher>
44      <part name="flop1" interface="floppy_5_25">
45         <dataarea name="flop" size="204800">
46            <rom name="elitebbc.ssd" size="204800" crc="1f15458d" sha1="ac47c0d6d0006ceef2102dda521df3364aff32aa" offset="0" />
47         </dataarea>
48      </part>
49   </software>
50
51   <software name="elitexec" supported="partial">
52      <description>Elite (Executive Edition)</description>
53      <year>1986</year>
54      <publisher>Acornsoft</publisher>
55      <part name="flop1" interface="floppy_5_25">
56         <dataarea name="flop" size="204800">
57            <rom name="elite_executive.ssd" size="204800" crc="f10aea60" sha1="cbd40dd9cad231f2f093e64665a69b64ddab5608" offset="0" />
58         </dataarea>
59      </part>
60   </software>
61
62   <software name="eyes">
63      <description>Eyes</description>
64      <year>1984</year>
65      <publisher>Ocean (Unreleased)</publisher>
66      <part name="flop1" interface="floppy_5_25">
67         <dataarea name="flop" size="12544">
68            <rom name="eyes-unreleased.ssd" size="12544" crc="19f1dd27" sha1="182b05ef661872b4e63a7e627675f1f6297da8df" offset="0" />
69         </dataarea>
70      </part>
71   </software>
72
73   <software name="frogman">
74      <description>Frogman (Demo)</description>
75      <year>1993</year>
76      <publisher>Unreleased</publisher>
77      <part name="flop1" interface="floppy_5_25">
78         <dataarea name="flop" size="65280">
79            <rom name="frogman-demo.ssd" size="65280" crc="c4fc4bc9" sha1="c81ab2374b31fb3cd761e5a6aca7ed1fc321667f" offset="0" />
80         </dataarea>
81      </part>
82   </software>
83
84   <software name="mapocaly">
85      <description>Mega Apocalypse</description>
86      <year>1988</year>
87      <publisher>Martech (Unreleased)</publisher>
88      <part name="flop1" interface="floppy_5_25">
89         <dataarea name="flop" size="40192">
90            <rom name="megaapocalypse.ssd" size="40192" crc="4a6e1489" sha1="399e09d9782d7f0068a9acd9113595657dbb4673" offset="0" />
91         </dataarea>
92      </part>
93   </software>
94
95   <software name="ssgames">
96      <description>Superior Software - Games on Disc</description>
97      <year>1983</year>
98      <publisher>Superior Software (Demo)</publisher>
99      <part name="flop1" interface="floppy_5_25">
100         <dataarea name="flop" size="78336">
101            <rom name="superiorsoftware-games.ssd" size="78336" crc="6ba0c45b" sha1="df86cfeae73db805307b0e3120fe008ab7a5bc38" offset="0" />
102         </dataarea>
103      </part>
104   </software>
105
106   <software name="welcome">
107      <description>Welcome and Disc Utils</description>
108      <year>1982</year>
109      <publisher>Acorn</publisher>
110      <part name="flop1" interface="floppy_5_25">
111         <dataarea name="flop" size="78336">
112            <rom name="welcome.ssd" size="78336" crc="03728f14" sha1="d212aa33a14b30dc2ff64920f834fe8c4e6715cc" offset="0" />
113         </dataarea>
114      </part>
115   </software>
116
117</softwarelist>
trunk/hash/bbcb_us_flop.xml
r249893r249894
1414      <description>Introductory and Utilities Disk</description>
1515      <year>1983</year>
1616      <publisher>Acorn</publisher>
17      <info name="protection" value="none" />
1817      <part name="flop1" interface="floppy_5_25">
1918         <dataarea name="flop" size="204800">
2019            <rom name="introductory_utils(1983)(acorn).ssd" size="204800" crc="60612fc2" sha1="037f7c3499547d5ac5f88e812d7765ccaf27d6e1" offset="0" />
trunk/hash/bbcm_flop.xml
r0r249894
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!-- BBC Master Disks -->
5
6<!-- Loading Instructions:
7
8      Hold down the SHIFT key and press and release the BREAK key.
9
10      Ensure suitable DFS is active for FM and MFM images.
11      - FM  requires DFS  (D and BREAK)
12      - MFM requires ADFS (A and BREAK)
13-->
14
15<softwarelist name="bbcm_flop" description="BBC Master disks">
16
17   <software name="welcomem">
18      <description>Welcome &amp; Utilities Disc</description>
19      <year>1986</year>
20      <publisher>Acorn</publisher>
21      <info name="format" value="ADFS" />
22      <part name="flop1" interface="floppy_5_25">
23         <dataarea name="flop" size="655360">
24            <rom name="masterwelcome.adl" size="655360" crc="606598eb" sha1="13cb8944fc6905bc601a94b5c271d1df2b0a4644" offset="0" />
25         </dataarea>
26      </part>
27   </software>
28
29   <software name="elitexec" supported="partial">
30      <description>Elite (Executive Edition)</description>
31      <year>1986</year>
32      <publisher>Acornsoft</publisher>
33      <info name="format" value="DFS" />
34      <part name="flop1" interface="floppy_5_25">
35         <dataarea name="flop" size="204800">
36            <rom name="elite_executive.ssd" size="204800" crc="f10aea60" sha1="cbd40dd9cad231f2f093e64665a69b64ddab5608" offset="0" />
37         </dataarea>
38      </part>
39   </software>
40
41</softwarelist>
trunk/hash/bbcmc_flop.xml
r249893r249894
1414      <description>BBC Master Compact Welcome Disc</description>
1515      <year>1986</year>
1616      <publisher>Acorn</publisher>
17      <info name="protection" value="none" />
1817      <part name="flop1" interface="floppy_3_5">
1918         <dataarea name="flop" size="655360">
2019            <rom name="welcome_compact.adl" size="655360" crc="9d747205" sha1="04cfd6d1e08e8f695befb2948e27d63fd7842b8f" offset="0" />
trunk/hash/megadriv.xml
r249893r249894
2179121791      </part>
2179221792   </software>
2179321793
21794
21795   <software name="puttsqup" >
21796      <description>Putty Squad (prototype)</description>
21797      <year>1992</year>
21798      <publisher>System 3 / Ocean</publisher>
21799      <part name="cart" interface="megadriv_cart">
21800         <dataarea name="rom" width="16" endianness="big" size="0x100000">
21801            <rom name="PS-md.BIN" size="0x100000" crc="2348da80" sha1="f529598f56c581854d2bde2ee960100273813539" offset="0x000000"/>
21802         </dataarea>
21803      </part>
21804   </software>
21805
21806
2179421807   <software name="putter">
2179521808      <description>Putter Golf (Jpn, SegaNet)</description>
2179621809      <year>1991</year>
trunk/hash/pico.xml
r249893r249894
38253825         </dataarea>
38263826      <!-- this is a 22 track companion audio CD (to be played on standalone CD player while operating the game?) -->
38273827      <!-- dumping software / drive: BurnAtOnce 0.99.5 / TS-L633R -->
3828          <diskarea name="cdrom">
3828         <diskarea name="cdrom">
38293829            <disk name="sanouk5cd" sha1="c9330bbf118405c02347bd83a1cc24ab2bb4310d"/>
38303830         </diskarea>
38313831      </part>
trunk/hash/pro128s_flop.xml
r0r249894
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<!-- Olivetti Prodest PC 128S Disks -->
5
6<!-- Loading Instructions:
7
8      Hold down the SHIFT key and press and release the BREAK key.
9
10     Most of the dumps in this list were obtained from http://hierax.altervista.org/prodest/adfs.htm, covers and screenshots can also be found at http://pc128s.altervista.org/software.html.
11-->
12
13<softwarelist name="pro128s_flop" description="Olivetti Prodest PC 128S disks">
14
15   <!-- Games -->
16
17   <software name="aviator">
18      <description>Aviator</description>
19      <year>1987</year>
20      <publisher>Olivetti Prodest</publisher>
21      <part name="flop1" interface="floppy_3_5">
22         <dataarea name="flop" size="327680">
23            <rom name="aviator.adm" size="327680" crc="98f1d06d" sha1="c8614cd080991d19cbf40ef205d049343d738a5f" offset="0" />
24         </dataarea>
25      </part>
26   </software>
27
28   <software name="bribbon1">
29      <description>Blue Ribbon 1</description>
30      <year>1987</year>
31      <publisher>Olivetti Prodest</publisher>
32      <part name="flop1" interface="floppy_3_5">
33         <dataarea name="flop" size="327680">
34            <rom name="blueribbon1.adm" size="327680" crc="4bda3704" sha1="2c23d43f01d35fc1397377d8317b148be804cc72" offset="0" />
35         </dataarea>
36      </part>
37   </software>
38
39   <software name="bribbon2">
40      <description>Blue Ribbon 2</description>
41      <year>1987</year>
42      <publisher>Olivetti Prodest</publisher>
43      <part name="flop1" interface="floppy_3_5">
44         <dataarea name="flop" size="327680">
45            <rom name="blueribbon2.adm" size="327680" crc="9cf20547" sha1="3e490286c043b3066a05785cc217b0b0866ffc09" offset="0" />
46         </dataarea>
47      </part>
48   </software>
49
50   <software name="carambol">
51      <description>Carambola</description>
52      <year>1987</year>
53      <publisher>Olivetti Prodest</publisher>
54      <part name="flop1" interface="floppy_3_5">
55         <dataarea name="flop" size="327680">
56            <rom name="biliardo.adm" size="327680" crc="741ade8a" sha1="304d90b8fbd5c8fbbe77f9ba28708e4fe6196594" offset="0" />
57         </dataarea>
58      </part>
59   </software>
60
61   <software name="futuresh">
62      <description>Future Shock</description>
63      <year>1987</year>
64      <publisher>Olivetti Prodest</publisher>
65      <info name="release" value="SF9960" />
66      <part name="flop1" interface="floppy_3_5">
67         <dataarea name="flop" size="163840">
68            <rom name="futureshock.ads" size="163840" crc="8a57f63a" sha1="b22b82181f9a59c468cf7f438105663ec5a34def" offset="0" />
69         </dataarea>
70      </part>
71   </software>
72
73   <software name="goal">
74      <description>Goal!</description>
75      <year>1987</year>
76      <publisher>Olivetti Prodest</publisher>
77      <info name="release" value="SF9950" />
78      <part name="flop1" interface="floppy_3_5">
79         <dataarea name="flop" size="163840">
80            <rom name="goal.ads" size="163840" crc="d01bfcb5" sha1="1e047405cf875f5849101807fa579a1df186847d" offset="0" />
81         </dataarea>
82      </part>
83   </software>
84
85   <software name="golf">
86      <description>Golf</description>
87      <year>1987</year>
88      <publisher>Olivetti Prodest</publisher>
89      <info name="release" value="SF9610" />
90      <part name="flop1" interface="floppy_3_5">
91         <dataarea name="flop" size="327680">
92            <rom name="birdie.adm" size="327680" crc="a63260d0" sha1="613aceab8d31e38fa762dd3d10c39d58856a7f30" offset="0" />
93         </dataarea>
94      </part>
95   </software>
96
97   <software name="jetsetw2">
98      <description>Jet Set Willy II</description>
99      <year>1987</year>
100      <publisher>Olivetti Prodest</publisher>
101      <info name="release" value="SF1050" />
102      <part name="flop1" interface="floppy_3_5">
103         <dataarea name="flop" size="163840">
104            <rom name="jetsetwilly2.ads" size="163840" crc="c87fdbbd" sha1="c84573f6cc7a24d4c7f0206efc0ce8506abf7d02" offset="0" />
105         </dataarea>
106      </part>
107   </software>
108
109   <software name="modemsec">
110      <description>Modem's Secret</description>
111      <year>1987</year>
112      <publisher>Olivetti Prodest</publisher>
113      <part name="flop1" interface="floppy_3_5">
114         <dataarea name="flop" size="327680">
115            <rom name="modemssecret.adm" size="327680" crc="c08cd3b7" sha1="ae2ae68fe505d9180dcf85827feeae777c0535e9" offset="0" />
116         </dataarea>
117      </part>
118   </software>
119
120   <software name="overdriv">
121      <description>Overdrive &amp; Centibug</description>
122      <year>1987</year>
123      <publisher>Olivetti Prodest</publisher>
124      <part name="flop1" interface="floppy_3_5">
125         <dataarea name="flop" size="327680">
126            <rom name="overdrive_centibug.adm" size="327680" crc="a99d9e29" sha1="e44116199ae711131937a5de010bdcab541a87b3" offset="0" />
127         </dataarea>
128      </part>
129   </software>
130
131   <software name="revs">
132      <description>Revs</description>
133      <year>1987</year>
134      <publisher>Olivetti Prodest</publisher>
135      <part name="flop1" interface="floppy_3_5">
136         <dataarea name="flop" size="327680">
137            <rom name="revs.adm" size="327680" crc="c445ec45" sha1="4bef4edf44a727c0b36d81cf5ddd8064a13eb039" offset="0" />
138         </dataarea>
139      </part>
140   </software>
141
142   <software name="sarcade1">
143      <description>Super Arcade 1</description>
144      <year>1987</year>
145      <publisher>Olivetti Prodest</publisher>
146      <info name="release" value="SF9560" />
147      <part name="flop1" interface="floppy_3_5">
148         <dataarea name="flop" size="163840">
149            <rom name="superarcade1.ads" size="163840" crc="893e6201" sha1="16da10a80ea6bf53b13d1d4225dd86e2801ab3e4" offset="0" />
150         </dataarea>
151      </part>
152   </software>
153
154   <software name="sarcade2">
155      <description>Super Arcade 2</description>
156      <year>1987</year>
157      <publisher>Olivetti Prodest</publisher>
158      <info name="release" value="SF9570" />
159      <part name="flop1" interface="floppy_3_5">
160         <dataarea name="flop" size="327680">
161            <rom name="superarcade2.adm" size="327680" crc="23a176fc" sha1="95652e6d587873a4b71c2ac6acb5c339c27c8f6c" offset="0" />
162         </dataarea>
163      </part>
164   </software>
165
166   <software name="sarcade3">
167      <description>Super Arcade 3</description>
168      <year>1987</year>
169      <publisher>Olivetti Prodest</publisher>
170      <part name="flop1" interface="floppy_3_5">
171         <dataarea name="flop" size="327680">
172            <rom name="superarcade3.adm" size="327680" crc="c34681e0" sha1="2c3cb301ecb1fbd5b2cedd1d12385ed263c39cfd" offset="0" />
173         </dataarea>
174      </part>
175   </software>
176
177   <software name="sarcade4">
178      <description>Super Arcade 4</description>
179      <year>1987</year>
180      <publisher>Olivetti Prodest</publisher>
181      <part name="flop1" interface="floppy_3_5">
182         <dataarea name="flop" size="327680">
183            <rom name="superarcade4.adm" size="327680" crc="3b4510ab" sha1="058e56ac99fc8af81c05cefb8bf8954c5fa0d7e7" offset="0" />
184         </dataarea>
185      </part>
186   </software>
187
188   <software name="sarcade5">
189      <description>Super Arcade 5</description>
190      <year>1987</year>
191      <publisher>Olivetti Prodest</publisher>
192      <info name="release" value="SF9850" />
193      <part name="flop1" interface="floppy_3_5">
194         <dataarea name="flop" size="163840">
195            <rom name="superarcade5.ads" size="163840" crc="c588888e" sha1="9ce948ef458a3a74e89d8cc94ff0f292d8ae8989" offset="0" />
196         </dataarea>
197      </part>
198   </software>
199
200   <software name="scacchi">
201      <description>Scacchi (Ita)</description>
202      <year>1987</year>
203      <publisher>Olivetti Prodest</publisher>
204      <part name="flop1" interface="floppy_3_5">
205         <dataarea name="flop" size="655360">
206            <rom name="scacchi.adl" size="655360" crc="08a45c85" sha1="a0b38359657c6df80f58e00578ad961a316d2385" offset="0" />
207         </dataarea>
208      </part>
209   </software>
210
211   <software name="smashgra">
212      <description>Smash &amp; Grab &amp; Mr Wiz</description>
213      <year>1987</year>
214      <publisher>Olivetti Prodest</publisher>
215      <part name="flop1" interface="floppy_3_5">
216         <dataarea name="flop" size="327680">
217            <rom name="smash_mrwiz.adm" size="327680" crc="2fba2c48" sha1="2e9c5ce65da83c2ac0b59f387ebe4fbd171d93c5" offset="0" />
218         </dataarea>
219      </part>
220   </software>
221
222   <software name="starstri">
223      <description>Star Striker &amp; Wallaby</description>
224      <year>1987</year>
225      <publisher>Olivetti Prodest</publisher>
226      <part name="flop1" interface="floppy_3_5">
227         <dataarea name="flop" size="327680">
228            <rom name="starstriker_wallaby.adm" size="327680" crc="7768d196" sha1="f76cf06efc9c9b6ce01d5d6e9c656bdc034236c4" offset="0" />
229         </dataarea>
230      </part>
231   </software>
232
233   <software name="tetris">
234      <description>Tetris</description>
235      <year>1991</year>
236      <publisher>ConcaSoft</publisher>
237      <part name="flop1" interface="floppy_3_5">
238         <dataarea name="flop" size="655360">
239            <rom name="tetris.adl" size="655360" crc="eca99e42" sha1="5ec5ea8674a9c43df249b2d74095a979b5346ff4" offset="0" />
240         </dataarea>
241      </part>
242   </software>
243
244   <software name="thebigko">
245      <description>The Big KO!</description>
246      <year>1987</year>
247      <publisher>Olivetti Prodest</publisher>
248      <part name="flop1" interface="floppy_3_5">
249         <dataarea name="flop" size="163840">
250            <rom name="thebigko.ads" size="163840" crc="503066e5" sha1="a3315e6d4f4afa49838f1a1223a9c37192d5db32" offset="0" />
251         </dataarea>
252      </part>
253   </software>
254
255   <software name="vindaloo">
256      <description>Vindaloo</description>
257      <year>1987</year>
258      <publisher>Olivetti Prodest</publisher>
259      <info name="release" value="SF9930" />
260      <part name="flop1" interface="floppy_3_5">
261         <dataarea name="flop" size="163840">
262            <rom name="vindaloo.ads" size="163840" crc="3eca401d" sha1="b5a244ba57977a78e00dbead0e6dcb6e46af9823" offset="0" />
263         </dataarea>
264      </part>
265   </software>
266
267   <software name="winter">
268      <description>Olimpiadi Invernali</description>
269      <year>1987</year>
270      <publisher>Olivetti Prodest</publisher>
271      <part name="flop1" interface="floppy_3_5">
272         <dataarea name="flop" size="163840">
273            <rom name="winter.ads" size="163840" crc="32d023b5" sha1="4d3fdc630e6170ca9b7b72386047be34aaaf98f2" offset="0" />
274         </dataarea>
275      </part>
276   </software>
277
278   <software name="xor">
279      <description>XOR (Ita)</description>
280      <year>1987</year>
281      <publisher>Olivetti Prodest</publisher>
282      <part name="flop1" interface="floppy_3_5">
283         <dataarea name="flop" size="327680">
284            <rom name="xor.adm" size="327680" crc="71aef802" sha1="c13637b53a1043558febbc0ca9821f9467f02122" offset="0" />
285         </dataarea>
286      </part>
287   </software>
288
289   <!-- Business -->
290
291   <software name="artista">
292      <description>Artista</description>
293      <year>1987</year>
294      <publisher>Olivetti Prodest</publisher>
295      <part name="flop1" interface="floppy_3_5">
296         <dataarea name="flop" size="327680">
297            <rom name="artista.adm" size="327680" crc="dbf18b92" sha1="90c595f2fe80d0729c02a5a80c07a28e374f06b0" offset="0" />
298         </dataarea>
299      </part>
300   </software>
301
302   <software name="betabase">
303      <description>Beta-Base (Ita)</description>
304      <year>1987</year>
305      <publisher>Clares</publisher>
306      <part name="flop1" interface="floppy_3_5">
307         <dataarea name="flop" size="163840">
308            <rom name="betabase.ads" size="163840" crc="8351f1f4" sha1="e015c41a93bf36b681d8fa7f1a18f324e789e554" offset="0" />
309         </dataarea>
310      </part>
311   </software>
312
313   <software name="mod740">
314      <description>Mod. 740 S</description>
315      <year>1987</year>
316      <publisher>Olivetti Prodest</publisher>
317      <part name="flop1" interface="floppy_3_5">
318         <dataarea name="flop" size="327680">
319            <rom name="mod740.adm" size="327680" crc="8433c242" sha1="dea4dc35a4bdbe087ec2a711869a924788b47a13" offset="0" />
320         </dataarea>
321      </part>
322   </software>
323
324   <software name="viewindx">
325      <description>ViewIndex</description>
326      <year>1987</year>
327      <publisher>Olivetti Prodest</publisher>
328      <part name="flop1" interface="floppy_3_5">
329         <dataarea name="flop" size="327680">
330            <rom name="viewindex.adm" size="327680" crc="6e780731" sha1="8dfaddaa238e5f3db0b9dcbbc7ef06f4fa52102a" offset="0" />
331         </dataarea>
332      </part>
333   </software>
334
335   <software name="viewplot">
336      <description>ViewPlot</description>
337      <year>1987</year>
338      <publisher>Olivetti Prodest</publisher>
339      <part name="flop1" interface="floppy_3_5">
340         <dataarea name="flop" size="327680">
341            <rom name="viewplot.adm" size="327680" crc="2ca1eade" sha1="12eaa4ac1c6a6484a886f313bb793a2c4537eb91" offset="0" />
342         </dataarea>
343      </part>
344   </software>
345
346   <software name="viewstor">
347      <description>ViewStore</description>
348      <year>1987</year>
349      <publisher>Olivetti Prodest</publisher>
350      <part name="flop1" interface="floppy_3_5">
351         <dataarea name="flop" size="327680">
352            <rom name="viewstore.adm" size="327680" crc="c6a08aba" sha1="a8041767230cc029f0d48e9b7aa5bb8131817441" offset="0" />
353         </dataarea>
354      </part>
355   </software>
356
357   <!-- Educational -->
358
359   <software name="podd">
360      <description>Podd (Ita)</description>
361      <year>1987</year>
362      <publisher>Olivetti Prodest</publisher>
363      <part name="flop1" interface="floppy_3_5">
364         <dataarea name="flop" size="163840">
365            <rom name="podd.ads" size="163840" crc="53f25c1f" sha1="38269a36fd55625bde32cd24f2c90024f8d52bfe" offset="0" />
366         </dataarea>
367      </part>
368   </software>
369
370   <software name="pmagico">
371      <description>Puzzle Magico (Ita)</description>
372      <year>1987</year>
373      <publisher>Olivetti Prodest</publisher>
374      <info name="release" value="SF9830" />
375      <part name="flop1" interface="floppy_3_5">
376         <dataarea name="flop" size="163840">
377            <rom name="puzzlemagico.ads" size="163840" crc="f0ac8983" sha1="58a0ad38b57ca176d69e91e3e249c885800f0f80" offset="0" />
378         </dataarea>
379      </part>
380   </software>
381
382   <software name="spingi">
383      <description>Spingi (Ita)</description>
384      <year>1987</year>
385      <publisher>Olivetti Prodest</publisher>
386      <info name="release" value="SF9840" />
387      <part name="flop1" interface="floppy_3_5">
388         <dataarea name="flop" size="163840">
389            <rom name="spingi.ads" size="163840" crc="c5efa2cb" sha1="1518a33169fefbb6e3659561179a9296b4413f97" offset="0" />
390         </dataarea>
391      </part>
392   </software>
393
394   <!-- Languages -->
395
396   <software name="basic">
397      <description>Introduzione al BASIC</description>
398      <year>1987</year>
399      <publisher>Olivetti Prodest</publisher>
400      <part name="flop1" interface="floppy_3_5">
401         <dataarea name="flop" size="327680">
402            <rom name="basic.adm" size="327680" crc="c8c8f4ff" sha1="aed619692c40344563fba61a4324b4eeac78c11f" offset="0" />
403         </dataarea>
404      </part>
405   </software>
406   
407</softwarelist>
trunk/hash/spectrum_cass.xml
r249893r249894
709709      </part>
710710   </software>
711711
712  <!-- Homebrew released at http://spectralinterlude.com/#download for use on real systems & emulators -->
713   <software name="castlvsi">
714      <description>Castlevania - Spectral Interlude (v1.1, English, 128K)</description>
715      <year>2015</year>
716      <publisher>Rewind</publisher>
717      <part name="cass" interface="spectrum_cass">
718         <dataarea name="cass" size="126394">
719            <rom name="castlevania_si_en_v11.tap" size="126394" crc="c100bb38" sha1="ba89e73dbc16621fc52f886c6b1abb2d6a93ffc7" offset="0"/>
720         </dataarea>
721      </part>
722   </software>
712723
724   <software name="castlvsiru" cloneof="castlvsi">
725      <description>Castlevania - Spectral Interlude (v1.1, Russian, 128K)</description>
726      <year>2015</year>
727      <publisher>Rewind</publisher>
728      <part name="cass" interface="spectrum_cass">
729         <dataarea name="cass" size="127054">
730            <rom name="castlevania_si_ru_v11.tap" size="127054" crc="45561b70" sha1="b44b7e93c8fbf74d23ad694182d99e5a5ec01f98" offset="0"/>
731         </dataarea>
732      </part>
733   </software>
734
735   <software name="castlvsipl" cloneof="castlvsi">
736      <description>Castlevania - Spectral Interlude (v1.1, Polish, 128K)</description>
737      <year>2015</year>
738      <publisher>Rewind</publisher>
739      <part name="cass" interface="spectrum_cass">
740         <dataarea name="cass" size="127378">
741            <rom name="castlevania_si_pl_v11.tap" size="127378" crc="2f11f5bd" sha1="4f4448f6f70eebdf6af81977cac61d0f41b7744f" offset="0"/>
742         </dataarea>
743      </part>
744   </software>
745
746   <software name="castlvsies" cloneof="castlvsi">
747      <description>Castlevania - Spectral Interlude (v1.1, Spanish, 128K)</description>
748      <year>2015</year>
749      <publisher>Rewind</publisher>
750      <part name="cass" interface="spectrum_cass">
751         <dataarea name="cass" size="126950">
752            <rom name="castlevania_si_es_v11.tap" size="126950" crc="27e8ae63" sha1="1dced2991e51854fdf31fe323aa6ee75b25d55a2" offset="0"/>
753         </dataarea>
754      </part>
755   </software>
756
757   <software name="castlvsiit" cloneof="castlvsi">
758      <description>Castlevania - Spectral Interlude (v1.1, Italian, 128K)</description>
759      <year>2015</year>
760      <publisher>Rewind</publisher>
761      <part name="cass" interface="spectrum_cass">
762         <dataarea name="cass" size="127355">
763            <rom name="castlevania_si_it_v11.tap" size="127355" crc="d9a89fc5" sha1="885d3489c94937b0db8a536a1aa6435629942d77" offset="0"/>
764         </dataarea>
765      </part>
766   </software>
767
768   <software name="castlvsi10" cloneof="castlvsi">
769      <description>Castlevania - Spectral Interlude (v1.0, English, 128K)</description>
770      <year>2015</year>
771      <publisher>Rewind</publisher>
772      <part name="cass" interface="spectrum_cass">
773         <dataarea name="cass" size="126410">
774            <rom name="castlevania_si_en_v10.tap" size="126410" crc="0d022bc5" sha1="450dfd57ea7407f47bbfd785d981e4a92e166029" offset="0"/>
775         </dataarea>
776      </part>
777   </software>
778
779   <software name="castlvsiru10" cloneof="castlvsi">
780      <description>Castlevania - Spectral Interlude (v1.0, Russian, 128K)</description>
781      <year>2015</year>
782      <publisher>Rewind</publisher>
783      <part name="cass" interface="spectrum_cass">
784         <dataarea name="cass" size="127066">
785            <rom name="castlevania_si_ru_v10.tap" size="127066" crc="2dceb444" sha1="10ca28195652a9f3f20a48e8e761f0dd138abcf6" offset="0"/>
786         </dataarea>
787      </part>
788   </software>
789
790   <software name="castlvsipl10" cloneof="castlvsi">
791      <description>Castlevania - Spectral Interlude (v1.0, Polish, 128K)</description>
792      <year>2015</year>
793      <publisher>Rewind</publisher>
794      <part name="cass" interface="spectrum_cass">
795         <dataarea name="cass" size="127361">
796            <rom name="castlevania_si_pl_v10.tap" size="127361" crc="e8dc0e6b" sha1="4802a4cef916466ccbf25cabb3f447db17b802bd" offset="0"/>
797         </dataarea>
798      </part>
799   </software>
800 
801  <!-- V1.0 doesn't exist in Spanish? or Italian (translations were made after the 1.1 release) -->
802 
713803</softwarelist>
714804
715805
trunk/hash/unichamp.xml
r0r249894
1<?xml version="1.0"?>
2<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4<softwarelist name="unichamp" description="Unisonic Champion 2711 cartridges">
5
6   <software name="pac-02">
7      <description>Professional Poker Games</description>
8      <year>1977</year>
9      <publisher>Unisonic</publisher>
10      <info name="serial" value="PAC-02"/>
11      <part name="cart" interface="unichamp_cart">
12         <dataarea name="rom" size="0x1000">
13            <rom name="pac-02.bin" size="0x1000" crc="fe3213be" sha1="5b9c407fe86865f3454d4be824a7f2bf53478f73" offset="0x0000"/>
14         </dataarea>
15      </part>
16   </software>
17
18   <software name="pac-03">
19      <description>Assorted Family Fun</description>
20      <year>1977</year>
21      <publisher>Unisonic</publisher>
22      <info name="serial" value="PAC-03"/>
23      <part name="cart" interface="unichamp_cart">
24         <dataarea name="rom" size="0x1000">
25            <rom name="pac-03.bin" size="0x1000" crc="f81f04bd" sha1="82e2a0fda1787d5835c457ee5745b0db0cebe079" offset="0x0000"/>
26         </dataarea>
27      </part>
28   </software>
29
30   <software name="pac-04">
31      <description>Family Card Games</description>
32      <year>1977</year>
33      <publisher>Unisonic</publisher>
34      <info name="serial" value="PAC-04"/>
35      <part name="cart" interface="unichamp_cart">
36         <dataarea name="rom" size="0x1000">
37            <rom name="pac-04.bin" size="0x1000" crc="cac09841" sha1="bc9db83f26ed0810938156db6b104b4576754225" offset="0x0000"/>
38         </dataarea>
39      </part>
40   </software>   
41
42   <software name="pac-05">
43      <description>Math</description>
44      <year>1977</year>
45      <publisher>Unisonic</publisher>
46      <info name="serial" value="PAC-05"/>
47      <part name="cart" interface="unichamp_cart">
48         <dataarea name="rom" size="0x1000">
49            <rom name="pac-05.bin" size="0x1000" crc="d54a6090" sha1="e85593096f43dcf14b08fd2c9fda277008a8df8b" offset="0x0000"/>
50         </dataarea>
51      </part>
52   </software>   
53   
54</softwarelist>
trunk/scripts/src/bus.lua
r249893r249894
11611161      MAME_DIR .. "src/devices/bus/vcs/compumat.h",
11621162      MAME_DIR .. "src/devices/bus/vcs/dpc.c",
11631163      MAME_DIR .. "src/devices/bus/vcs/dpc.h",
1164      MAME_DIR .. "src/devices/bus/vcs/dpcplus.c",
1165      MAME_DIR .. "src/devices/bus/vcs/dpcplus.h",
11641166      MAME_DIR .. "src/devices/bus/vcs/scharger.c",
11651167      MAME_DIR .. "src/devices/bus/vcs/scharger.h",
11661168   }
r249893r249894
22012203      MAME_DIR .. "src/devices/bus/cpc/ddi1.h",
22022204      MAME_DIR .. "src/devices/bus/cpc/magicsound.c",
22032205      MAME_DIR .. "src/devices/bus/cpc/magicsound.h",
2206      MAME_DIR .. "src/devices/bus/cpc/doubler.c",
2207      MAME_DIR .. "src/devices/bus/cpc/doubler.h",
22042208   }
22052209end
22062210
trunk/scripts/target/mame/arcade.lua
r249893r249894
35463546   MAME_DIR .. "src/mame/drivers/stellafr.c",
35473547   MAME_DIR .. "src/mame/drivers/stuntair.c",
35483548   MAME_DIR .. "src/mame/drivers/su2000.c",
3549   MAME_DIR .. "src/mame/drivers/subhuntr.c",
35493550   MAME_DIR .. "src/mame/drivers/summit.c",
35503551   MAME_DIR .. "src/mame/drivers/sumt8035.c",
35513552   MAME_DIR .. "src/mame/drivers/supercrd.c",
trunk/scripts/target/mame/mess.lua
r249893r249894
849849      "trs",
850850      "ultimachine",
851851      "ultratec",
852      "unisonic",
852853      "unisys",
853854      "veb",
854855      "vidbrain",
r249893r249894
12291230createMESSProjects(_target, _subtarget, "camputers")
12301231files {
12311232   MAME_DIR .. "src/mame/drivers/camplynx.c",
1233   MAME_DIR .. "src/lib/formats/camplynx_dsk.c",
12321234}
12331235
12341236createMESSProjects(_target, _subtarget, "canon")
r249893r249894
24802482   MAME_DIR .. "src/mame/drivers/minicom.c",
24812483}
24822484
2485createMESSProjects(_target, _subtarget, "unisonic")
2486files {
2487   MAME_DIR .. "src/mame/drivers/unichamp.c",
2488   MAME_DIR .. "src/mame/video/gic.c",
2489   MAME_DIR .. "src/mame/video/gic.c",
2490}
2491
2492
24832493createMESSProjects(_target, _subtarget, "unisys")
24842494files {
24852495   MAME_DIR .. "src/mame/drivers/univac.c",
r249893r249894
27222732   MAME_DIR .. "src/mame/drivers/softbox.c",
27232733   MAME_DIR .. "src/mame/drivers/squale.c",
27242734   MAME_DIR .. "src/mame/drivers/swtpc.c",
2735   MAME_DIR .. "src/mame/drivers/swyft.c",
27252736   MAME_DIR .. "src/mame/drivers/sys2900.c",
27262737   MAME_DIR .. "src/mame/drivers/systec.c",
27272738   MAME_DIR .. "src/mame/drivers/tavernie.c",
trunk/src/devices/bus/cpc/brunword4.c
r249893r249894
9898   m_slot->rom_select(space,0,data & 0x3f);  // repeats every 64 ROMs, this breaks upper cart ROM selection on the Plus
9999}
100100
101void cpc_brunword4_device::set_mapping()
101void cpc_brunword4_device::set_mapping(UINT8 type)
102102{
103   if(type != MAP_OTHER)
104      return;
103105   if(m_rombank_active)
104106   {
105107      UINT8* ROM = memregion("mk4_roms")->base();
trunk/src/devices/bus/cpc/brunword4.h
r249893r249894
2020   virtual const rom_entry *device_rom_region() const;
2121
2222   DECLARE_WRITE8_MEMBER(rombank_w);
23   virtual void set_mapping();
23   virtual void set_mapping(UINT8 type);
2424
2525protected:
2626   // device-level overrides
trunk/src/devices/bus/cpc/cpcexp.h
r249893r249894
5656
5757#define CPC_EXP_SLOT_TAG        "cpcexp"
5858
59enum
60{
61   MAP_LOWER = 0,  // special lower ROM handling
62   MAP_UPPER,      // special upper ROM handling
63   MAP_OTHER       // custom ROM handling (eg: Brunword MK4)
64};
5965
60
6166//**************************************************************************
6267//  INTERFACE CONFIGURATION MACROS
6368//**************************************************************************
r249893r249894
98103
99104   void set_rom_bank(UINT8 sel) { m_rom_sel = sel; }  // tell device the currently selected ROM
100105   UINT8 get_rom_bank() { return m_rom_sel; }
101   virtual void set_mapping() { };
106   virtual void set_mapping(UINT8 type) { };
102107
103108private:
104109   UINT8 m_rom_sel;  // currently selected ROM
r249893r249894
128133   DECLARE_WRITE8_MEMBER( rom_select );
129134
130135   void set_rom_bank(UINT8 sel) { if(m_card) m_card->set_rom_bank(sel); }  // tell device the currently selected ROM
131   void set_mapping() { if(m_card) m_card->set_mapping(); }  // tell device to enable any ROM or RAM mapping
136   void set_mapping(UINT8 type) { if(m_card) m_card->set_mapping(type); }  // tell device to enable any ROM or RAM mapping
132137   DECLARE_WRITE_LINE_MEMBER( cursor_w ) { if(m_card) m_card->cursor_w(state); }  // pass on CRTC Cursor signal
133138   DECLARE_WRITE_LINE_MEMBER( romen_w ) { if(m_card) m_card->romen_w(state); }  // pass on /ROMEN signal
134139
trunk/src/devices/bus/cpc/ddi1.c
r249893r249894
149149   m_slot->rom_select(space,0,data);
150150}
151151
152void cpc_ddi1_device::set_mapping()
152void cpc_ddi1_device::set_mapping(UINT8 type)
153153{
154   if(type != MAP_UPPER)
155      return;
154156   if(m_rom_active)
155157   {
156158      UINT8* ROM = memregion("disc_rom")->base();
trunk/src/devices/bus/cpc/ddi1.h
r249893r249894
2525   // optional information overrides
2626   virtual const rom_entry *device_rom_region() const;
2727   virtual machine_config_constructor device_mconfig_additions() const;
28   virtual void set_mapping();
28   virtual void set_mapping(UINT8 type);
29   virtual WRITE_LINE_MEMBER( romen_w ) { m_romen = state; }
2930
3031   DECLARE_WRITE8_MEMBER(motor_w);
3132   DECLARE_WRITE8_MEMBER(fdc_w);
r249893r249894
4344   required_device<floppy_connector> m_connector;
4445   
4546   bool m_rom_active;
47   bool m_romen;
4648};
4749
4850// device type definition
trunk/src/devices/bus/cpc/doubler.c
r0r249894
1// license:BSD-3-Clause
2// copyright-holders:Barry Rodewald
3/*
4 * doubler.c  --  Draysoft Doubler - external cassette interface for the 464 (works on 664/6128 with external cassette?),
5 *                intended for use in duplicating cassette software
6 *
7 */
8 
9 #include "doubler.h"
10 #include "includes/amstrad.h"
11
12 //**************************************************************************
13//  DEVICE DEFINITIONS
14//**************************************************************************
15
16const device_type CPC_DOUBLER = &device_creator<cpc_doubler_device>;
17
18
19static MACHINE_CONFIG_FRAGMENT( cpc_doubler )
20   MCFG_CASSETTE_ADD( "doubler_tape" )
21   MCFG_CASSETTE_FORMATS(cdt_cassette_formats)
22   MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED)
23   MCFG_CASSETTE_INTERFACE("cpc_cass")
24
25   // no pass-through seen on remake PCBs, unknown if actual hardware had a pass-through port or not
26MACHINE_CONFIG_END
27
28
29machine_config_constructor cpc_doubler_device::device_mconfig_additions() const
30{
31   return MACHINE_CONFIG_NAME( cpc_doubler );
32}
33
34
35//**************************************************************************
36//  LIVE DEVICE
37//**************************************************************************
38
39cpc_doubler_device::cpc_doubler_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
40   device_t(mconfig, CPC_DOUBLER, "Draysoft Doubler", tag, owner, clock, "cpc_doubler", __FILE__),
41   device_cpc_expansion_card_interface(mconfig, *this),
42   m_tape(*this,"doubler_tape")
43{
44}
45
46//-------------------------------------------------
47//  device_start - device-specific startup
48//-------------------------------------------------
49
50void cpc_doubler_device::device_start()
51{
52   device_t* cpu = machine().device("maincpu");
53   address_space& space = cpu->memory().space(AS_IO);
54   m_slot = dynamic_cast<cpc_expansion_slot_device *>(owner());
55
56   space.install_read_handler(0xf0e0,0xf0e0,0,0,read8_delegate(FUNC(cpc_doubler_device::ext_tape_r),this));
57}
58
59//-------------------------------------------------
60//  device_reset - device-specific reset
61//-------------------------------------------------
62
63void cpc_doubler_device::device_reset()
64{
65   // TODO
66}
67
68READ8_MEMBER(cpc_doubler_device::ext_tape_r)
69{
70   UINT8 data = 0;
71   if(m_tape->input() > 0.03)
72      data |= 0x20;
73   return data;
74}
75
trunk/src/devices/bus/cpc/doubler.h
r0r249894
1// license:BSD-3-Clause
2// copyright-holders:Barry Rodewald
3/*
4 * doubler.c  --  Draysoft Doubler - external cassette interface for the 464 (works on 664/6128 with external cassette?),
5 *                intended for use in duplicating cassette software
6 *
7 * Uses only port F0E0 (may conflict with other peripherals, PPI port A is not usable while Doubler software is running)
8 *
9 */
10 
11#ifndef DOUBLER_H_
12#define DOUBLER_H_
13
14#include "emu.h"
15#include "cpcexp.h"
16#include "imagedev/cassette.h"
17#include "formats/tzx_cas.h"
18
19class cpc_doubler_device  : public device_t,
20                  public device_cpc_expansion_card_interface
21{
22public:
23   // construction/destruction
24   cpc_doubler_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
25
26   // optional information overrides
27   virtual machine_config_constructor device_mconfig_additions() const;
28
29   DECLARE_READ8_MEMBER(ext_tape_r);
30   
31protected:
32   // device-level overrides
33   virtual void device_start();
34   virtual void device_reset();
35
36private:
37   cpc_expansion_slot_device *m_slot;
38   
39   required_device<cassette_image_device> m_tape;
40};
41
42// device type definition
43extern const device_type CPC_DOUBLER;
44 
45#endif /* DOUBLER_H_ */
trunk/src/devices/bus/econet/e01.c
r249893r249894
44
55    Acorn FileStore E01/E01S network hard disk emulation
66
7    http://acorn.chriswhy.co.uk/Network/Econet.html
8    http://acorn.chriswhy.co.uk/Network/Pics/Acorn_FileStoreE01.html
9    http://acorn.chriswhy.co.uk/8bit_Upgrades/Acorn_FileStoreE01S.html
7    http://chrisacorns.computinghistory.org.uk/Network/Econet.html
8    http://chrisacorns.computinghistory.org.uk/Network/Pics/Acorn_FileStoreE01.html
9    http://chrisacorns.computinghistory.org.uk/8bit_Upgrades/Acorn_FileStoreE01S.html
1010    http://www.heyrick.co.uk/econet/fs/emulator.html
1111    http://www.pdfio.com/k-1019481.html#
1212
trunk/src/devices/bus/isa/omti8621.c
r249893r249894
215215   MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(omti8621_device, fdc_irq_w))
216216   MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(omti8621_device, fdc_drq_w))
217217   MCFG_FLOPPY_DRIVE_ADD(OMTI_FDC_TAG":0", pc_hd_floppies, "525hd", omti8621_device::floppy_formats)
218   MCFG_FLOPPY_DRIVE_ADD(OMTI_FDC_TAG":1", pc_hd_floppies, "525hd", omti8621_device::floppy_formats)
218// Apollo workstations never have more then 1 floppy drive
219//   MCFG_FLOPPY_DRIVE_ADD(OMTI_FDC_TAG":1", pc_hd_floppies, "525hd", omti8621_device::floppy_formats)
219220MACHINE_CONFIG_END
220221
221222FLOPPY_FORMATS_MEMBER( omti8621_device::floppy_formats )
r249893r249894
231232   ROM_REGION(0x4000, OMTI_CPU_REGION, 0)  // disassembles fine as Z8 code
232233   ROM_LOAD( "omti_8621_102640-b.bin", 0x000000, 0x004000, CRC(e6f20dbb) SHA1(cf1990ad72eac6b296485410f5fa3309a0d6d078) )
233234
235#if 1
236   // OMTI 8621 boards for Apollo workstations never use a BIOS ROM
237   // They don't even have a socket for the BIOS ROM
234238   ROM_REGION(0x1000, OMTI_BIOS_REGION, 0)
235   ROM_LOAD("omti_bios", 0x0000, 0x1000, NO_DUMP)
239   ROM_LOAD_OPTIONAL("omti_bios", 0x0000, 0x1000, NO_DUMP)
240#endif
236241ROM_END
237242
238243static INPUT_PORTS_START( omti_port )
r249893r249894
280285
281286void omti8621_device::device_start()
282287{
288   LOG2(("device_start"));
289
283290   set_isa_device();
284291
285292   m_installed = false;
r249893r249894
300307{
301308   static const int io_bases[8] = { 0x320, 0x324, 0x328, 0x32c, 0x1a0, 0x1a4, 0x1a8, 0x1ac };
302309
303   LOG2(("device_reset_omti8621"));
310   LOG2(("device_reset"));
304311
305312   // you can't read I/O ports in device_start() even if they're required_ioport<> in your class!
306313   if (!m_installed)
r249893r249894
12011208 get_sector - get sector diskaddr of logical unit lun into data_buffer
12021209 ***************************************************************************/
12031210
1211// FIXME: this will work, but is not supported by MESS
1212#if 0 // APOLLO_XXL
12041213UINT32 omti8621_device::get_sector(INT32 diskaddr, UINT8 *data_buffer, UINT32 length, UINT8 lun)
12051214{
1206   omti_disk_image_device *disk = our_disks[lun];
1215   omti_disk_image_device *disk = omti8621_device_1->our_disks[lun];
12071216
1208   if (disk->m_image == NULL || !disk->m_image->exists())
1217   if (disk == NULL || disk->m_image == NULL || !disk->m_image->exists())
12091218   {
12101219      return 0;
12111220   }
r249893r249894
12221231      return length;
12231232   }
12241233}
1234#endif
12251235
1226
12271236/***************************************************************************
12281237 omti_set_jumper - set OMI jumpers
12291238 ***************************************************************************/
trunk/src/devices/bus/isa/omti8621.h
r249893r249894
4242   static void set_verbose(int on_off);
4343
4444   // get sector diskaddr of logical unit lun into data_buffer
45   UINT32 get_sector(INT32 diskaddr, UINT8 *data_buffer, UINT32 length, UINT8 lun);
45   static UINT32 get_sector(INT32 diskaddr, UINT8 *data_buffer, UINT32 length, UINT8 lun);
4646
4747   required_device<pc_fdc_interface> m_fdc;
4848   required_ioport m_iobase;
trunk/src/devices/bus/vcs/dpcplus.c
r0r249894
1// license:BSD-3-Clause
2// copyright-holders:
3/***************************************************************************
4
5Atari 2600 cart with DPC+
6
7the DPC+ adds an ARM CPU amongst other things
8
9***************************************************************************/
10
11
12#include "emu.h"
13#include "dpcplus.h"
14
15
16
17
18
19// cart device
20
21const device_type A26_ROM_DPCPLUS = &device_creator<a26_rom_dpcplus_device>;
22
23
24a26_rom_dpcplus_device::a26_rom_dpcplus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
25                  : a26_rom_f8_device(mconfig, A26_ROM_DPCPLUS, "Atari 2600 ROM Cart DPC+", tag, owner, clock, "a2600_dpcplus", __FILE__)
26{
27}
28
29//-------------------------------------------------
30//  mapper specific start/reset
31//-------------------------------------------------
32
33void a26_rom_dpcplus_device::device_start()
34{
35   save_item(NAME(m_base_bank));
36}
37
38void a26_rom_dpcplus_device::device_reset()
39{
40   m_base_bank = 0;
41}
42
43static ADDRESS_MAP_START( dpcplus_arm7_map, AS_PROGRAM, 32, a26_rom_dpcplus_device )
44   AM_RANGE(0x00000000, 0x00003fff) AM_RAM
45ADDRESS_MAP_END
46
47
48static MACHINE_CONFIG_FRAGMENT( a26_dpcplus )
49   MCFG_CPU_ADD("arm", ARM7, 20000000)    // ? type ? speed
50   MCFG_CPU_PROGRAM_MAP(dpcplus_arm7_map)
51MACHINE_CONFIG_END
52
53machine_config_constructor a26_rom_dpcplus_device::device_mconfig_additions() const
54{
55   return MACHINE_CONFIG_NAME( a26_dpcplus );
56}
57
58
59READ8_MEMBER(a26_rom_dpcplus_device::read_rom)
60{
61   return a26_rom_f8_device::read_rom(space, offset);
62}
63
64WRITE8_MEMBER(a26_rom_dpcplus_device::write_bank)
65{
66   a26_rom_f8_device::write_bank(space, offset, data);
67}
trunk/src/devices/bus/vcs/dpcplus.h
r0r249894
1// license:BSD-3-Clause
2// copyright-holders:
3#ifndef __VCS_DPCPLUS_H
4#define __VCS_DPCPLUS_H
5
6#include "rom.h"
7#include "cpu/arm7/arm7.h"
8
9
10// ======================> a26_rom_dpcplus_device
11
12class a26_rom_dpcplus_device : public a26_rom_f8_device
13{
14public:
15   // construction/destruction
16   a26_rom_dpcplus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
17
18   // device-level overrides
19   virtual void device_start();
20   virtual machine_config_constructor device_mconfig_additions() const;
21   virtual void device_reset();
22
23   // reading and writing
24   virtual DECLARE_READ8_MEMBER(read_rom);
25   virtual DECLARE_WRITE8_MEMBER(write_bank);
26
27
28protected:
29};
30
31
32// device type definition
33extern const device_type A26_ROM_DPCPLUS;
34
35#endif
trunk/src/devices/bus/vcs/rom.c
r249893r249894
4141const device_type A26_ROM_4IN1 = &device_creator<a26_rom_4in1_device>;
4242const device_type A26_ROM_8IN1 = &device_creator<a26_rom_8in1_device>;
4343const device_type A26_ROM_32IN1 = &device_creator<a26_rom_32in1_device>;
44const device_type A26_ROM_X07 = &device_creator<a26_rom_x07_device>;
4445
4546
4647a26_rom_2k_device::a26_rom_2k_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)
r249893r249894
179180{
180181}
181182
183a26_rom_x07_device::a26_rom_x07_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
184               : a26_rom_f6_device(mconfig, A26_ROM_X07, "Atari VCS 2600 ROM Carts w/X07 bankswitch", tag, owner, clock, "vcs_x07", __FILE__)
185{
186}
182187
188
183189void a26_rom_2k_device::device_start()
184190{
185191}
r249893r249894
10481054{
10491055   return m_rom[(offset & 0x7ff) + (m_base_bank * 0x800)];
10501056}
1057
1058
1059/*-------------------------------------------------
1060 "X07 Bankswitch" Carts:
1061 banking done with a PALC22V10B
1062 implementation based on information at
1063 http://blog.kevtris.org/blogfiles/Atari%202600%20Mappers.txt
1064 --------------------------------------------------*/
1065
1066READ8_MEMBER(a26_rom_x07_device::read_rom)
1067{
1068   return m_rom[offset + (m_base_bank * 0x1000)];
1069}
1070
1071WRITE8_MEMBER(a26_rom_x07_device::write_bank)
1072{
1073   /*
1074   A13           A0
1075   ----------------
1076   0 1xxx nnnn 1101
1077   */
1078
1079   if ((offset & 0x180f) == 0x080d)
1080   {
1081      m_base_bank = (offset & 0x00f0) >> 4;
1082   }
1083   /*
1084   A13           A0
1085   ----------------
1086   0 0xxx 0nxx xxxx
1087   */
1088
1089   if ((offset & 0x1880) == 0x0000)
1090   {
1091      // only has an effect if bank is already 14 or 15
1092      if (m_base_bank == 14 || m_base_bank == 15)
1093      {
1094         if (offset & 0x0040)
1095         {
1096            m_base_bank = 15;
1097         }
1098         else
1099         {
1100            m_base_bank = 14;
1101         }
1102
1103      }
1104   }
1105}
trunk/src/devices/bus/vcs/rom.h
r249893r249894
365365};
366366
367367
368// ======================> a26_rom_x07_device
369
370class a26_rom_x07_device : public a26_rom_f6_device
371{
372public:
373   // construction/destruction
374   a26_rom_x07_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
375
376   // reading and writing
377   virtual DECLARE_READ8_MEMBER(read_rom);
378   virtual DECLARE_WRITE8_MEMBER(write_bank);
379};
380
381
382
368383// device type definition
369384extern const device_type A26_ROM_2K;
370385extern const device_type A26_ROM_4K;
r249893r249894
386401extern const device_type A26_ROM_4IN1;
387402extern const device_type A26_ROM_8IN1;
388403extern const device_type A26_ROM_32IN1;
404extern const device_type A26_ROM_X07;
389405
390406
391407#endif
trunk/src/devices/bus/vcs/vcs_slot.c
r249893r249894
156156   { A26_4IN1, "a26_4in1" },
157157   { A26_8IN1, "a26_8in1" },
158158   { A26_32IN1, "a26_32in1" },
159   { A26_X07, "a26_x07" },
160   { A26_DPCPLUS, "a26_dpcplus" },
159161};
160162
161163static int vcs_get_pcb_id(const char *slot)
trunk/src/devices/bus/vcs/vcs_slot.h
r249893r249894
3434   A26_4IN1,
3535   A26_DPC,
3636   A26_SS,
37   A26_CM
37   A26_CM,
38   A26_X07,
39   A26_DPCPLUS,
3840};
3941
4042
trunk/src/devices/cpu/i86/i86.c
r249893r249894
11471147         CLK(POP_R16);
11481148         break;
11491149
1150// 8086 'invalid opcodes', as documented at http://www.os2museum.com/wp/?p=2147
1151// - 0x60 - 0x6f are an alias to 0x70 - 0x7f.
1152// - 0xc0,  0xc1, 0xc8, 0xc9 are also aliases where the CPU ignores BIT 1 (*).
1150// 8086 'invalid opcodes', as documented at http://www.os2museum.com/wp/?p=2147 and tested on real hardware
1151// - 0x60 - 0x6f are aliases to 0x70 - 0x7f.
1152// - 0xc0, 0xc1, 0xc8, 0xc9 are also aliases where the CPU ignores BIT 1 (*).
1153// - 0xf1 is an alias to 0xf0.
11531154//
11541155//      Instructions are used in the boot sector for some versions of
11551156//      MS-DOS  (e.g. the DEC Rainbow-100 version of DOS 2.x)
r249893r249894
16921693         }
16931694         break;
16941695
1695      case 0xc1: // 0xc1 is 0xc3 - see (*)
1696      case 0xc1: // 0xc1 is 0xc3 - see (*)
16961697      case 0xc3: // i_ret
16971698         m_ip = POP();
16981699         CLK(RET_NEAR);
r249893r249894
17241725         CLKM(MOV_RI16,MOV_MI16);
17251726         break;
17261727
1727      case 0xc8: // 0xc8 = 0xca - see (*)
1728      case 0xc8: // 0xc8 = 0xca - see (*)
17281729      case 0xca: // i_retf_d16
17291730         {
17301731            UINT32 count = fetch_word();
r249893r249894
17351736         }
17361737         break;
17371738
1738      case 0xc9: // 0xc9 = 0xcb  - see (*)
1739      case 0xc9: // 0xc9 = 0xcb  - see (*)
17391740      case 0xcb: // i_retf
17401741         m_ip = POP();
17411742         m_sregs[CS] = POP();
r249893r249894
20172018
20182019
20192020      case 0xf0: // i_lock
2021      case 0xf1: // 0xf1 is 0xf0; verified on real CPU
20202022         logerror("%s: %06x: Warning - BUSLOCK\n", tag(), pc());
20212023         m_lock = true;
20222024         m_no_interrupt = 1;
trunk/src/devices/imagedev/floppy.c
r249893r249894
415415   if (!cur_load_cb.isnull())
416416      return cur_load_cb(this);
417417
418   if(!mon)
418        if (motor_always_on) {
419                // When disk is inserted, start motor
420                mon_w(0);
421        } else if(!mon)
419422      ready_counter = 2;
420423
421424   return IMAGE_INIT_PASS;
r249893r249894
442445
443446   if (!cur_unload_cb.isnull())
444447      cur_unload_cb(this);
445   if(!ready) {
448
449        if (motor_always_on) {
450                // When disk is removed, stop motor
451                mon_w(1);
452        } else if(!ready) {
446453      ready = true;
447454      if(!cur_ready_cb.isnull())
448455         cur_ready_cb(this, ready);
r249893r249894
490497   if (!mon && image)
491498   {
492499      revolution_start_time = machine().time();
493      ready_counter = 2;
500                if (motor_always_on) {
501                    // Drives with motor that is always spinning are immediately ready when a disk is loaded
502                    // because there is no spin-up time
503                    ready = false;
504                    if(!cur_ready_cb.isnull())
505                        cur_ready_cb(this, ready);
506                } else {
507                    ready_counter = 2;
508                }
494509      index_resync();
495510   }
496511
trunk/src/devices/machine/mc146818.c
r249893r249894
4040      m_epoch(0),
4141      m_use_utc(false),
4242      m_binary(false),
43      m_hour(false)
43      m_hour(false),
44      m_binyear(false)
4445{
4546}
4647
r249893r249894
5455      m_epoch(0),
5556      m_use_utc(false),
5657      m_binary(false),
57      m_hour(false)
58      m_hour(false),
59      m_binyear(false)
5860{
5961}
6062
r249893r249894
206208   }
207209
208210   if(m_binary)
209      m_data[0x0b] |= REG_B_DM;
211      m_data[REG_B] |= REG_B_DM;
210212   if(m_hour)
211      m_data[0x0b] |= REG_B_24_12;
213      m_data[REG_B] |= REG_B_24_12;
212214
213215   set_base_datetime();
214216   update_timer();
r249893r249894
402404   set_dayofweek(current_time.weekday + 1);
403405   set_dayofmonth(current_time.mday);
404406   set_month(current_time.month + 1);
405   set_year((current_time.year - m_epoch) % (m_data[0x0b] & REG_B_DM ? 0x100 : 100));
406407
408   if(m_binyear)
409      set_year((current_time.year - m_epoch) % (m_data[REG_B] & REG_B_DM ? 0x100 : 100)); // pcd actually depends on this
410   else
411      set_year((current_time.year - m_epoch) % 100);
412
407413   if (m_century_index >= 0)
408414      m_data[m_century_index] = to_ram(current_time.year / 100);
409415}
trunk/src/devices/machine/mc146818.h
r249893r249894
4343#define MCFG_MC146818_EPOCH(_epoch) \
4444   downcast<mc146818_device *>(device)->set_epoch(_epoch);
4545
46#define MCFG_MC146818_BINARY_YEAR(_bin) \
47   downcast<mc146818_device *>(device)->set_binary_year(_bin);
48
4649//**************************************************************************
4750//  TYPE DEFINITIONS
4851//**************************************************************************
r249893r249894
6467   void set_binary(bool binary) { m_binary = binary; }
6568   void set_hour(bool hour) { m_hour = hour; }
6669   void set_epoch(int epoch) { m_epoch = epoch; }
70   void set_binary_year(int bin) { m_binyear = bin; }
6771
6872   // read/write access
6973   DECLARE_READ8_MEMBER( read );
r249893r249894
178182
179183   devcb_write_line m_write_irq;
180184   int m_century_index, m_epoch;
181   bool m_use_utc, m_binary, m_hour;
185   bool m_use_utc, m_binary, m_hour, m_binyear;
182186};
183187
184188
trunk/src/devices/machine/mos6530n.c
r249893r249894
7070   AM_RANGE(0x04, 0x07) AM_MIRROR(0x8) AM_WRITE(edge_w)
7171ADDRESS_MAP_END
7272
73READ8_MEMBER(mos6532_t::io_r)
74{
75   offset &= 0x1f;
76   UINT8 ret = 0;
7377
78   if (offset == 0x00 || offset == 0x08 || offset == 0x10 || offset == 0x18) ret = pa_data_r(space, 0);
79   if (offset == 0x01 || offset == 0x09 || offset == 0x11 || offset == 0x19) ret = pa_ddr_r(space, 0);
80   if (offset == 0x02 || offset == 0x0a || offset == 0x12 || offset == 0x1a) ret = pb_data_r(space, 0);
81   if (offset == 0x03 || offset == 0x0b || offset == 0x13 || offset == 0x1b) ret = pb_ddr_r(space, 0);
7482
83   if (offset == 0x04 || offset == 0x06 || offset == 0x14 || offset == 0x16) ret = timer_off_r(space, 0);
84   if (offset == 0x0c || offset == 0x0e || offset == 0x1c || offset == 0x1e) ret = timer_on_r(space, 0);
85
86   if (offset == 0x05 || offset == 0x07 || offset == 0x0d || offset == 0x0f) ret = irq_r(space, 0);
87   if (offset == 0x15 || offset == 0x17 || offset == 0x1d || offset == 0x1f) ret = irq_r(space, 0);
88
89   return ret;
90}
91
92WRITE8_MEMBER(mos6532_t::io_w)
93{
94   offset &= 0x1f;
95
96   if (offset == 0x00 || offset == 0x08 || offset == 0x10 || offset == 0x18) pa_data_w(space, 0, data);
97   if (offset == 0x01 || offset == 0x09 || offset == 0x11 || offset == 0x19) pa_ddr_w(space, 0, data);
98   if (offset == 0x02 || offset == 0x0a || offset == 0x12 || offset == 0x1a) pb_data_w(space, 0, data);
99   if (offset == 0x03 || offset == 0x0b || offset == 0x13 || offset == 0x1b) pb_ddr_w(space, 0, data);
100   if (offset == 0x14 || offset == 0x15 || offset == 0x16 || offset == 0x17) timer_off_w(space, offset&3, data);
101   if (offset == 0x1c || offset == 0x1d || offset == 0x1e || offset == 0x1f) timer_on_w(space, offset&3, data);
102
103   if (offset == 0x04 || offset == 0x05 || offset == 0x06 || offset == 0x07) edge_w(space, offset&3, data);
104   if (offset == 0x0c || offset == 0x0d || offset == 0xea || offset == 0x0f) edge_w(space, offset&3, data);
105}
106
107
75108//**************************************************************************
76109//  LIVE DEVICE
77110//**************************************************************************
trunk/src/devices/machine/mos6530n.h
r249893r249894
400400   virtual DECLARE_ADDRESS_MAP(ram_map, 8);
401401   virtual DECLARE_ADDRESS_MAP(io_map, 8);
402402
403   // is there a better way to access the memory map when not using AM_DEVICE?
404   DECLARE_READ8_MEMBER(io_r);
405   DECLARE_WRITE8_MEMBER(io_w);
406
403407protected:
404408   // device-level overrides
405409   virtual void device_start();
trunk/src/devices/sound/tms5220.c
r249893r249894
161161    x100aaaa: LOAD ADDRESS (LA) Send a load address command (M0 low M1 high) to VSM with the 4 'a' bits; Note you need to send four or five of these in sequence to actually specify an address to the vsm.
162162    TALK STATUS must be CLEAR for this command to work; otherwise it is treated as a NOP.
163163
164    x101xxxx: SPEAK (SPK) Begins speaking, pulling spech data from the current address pointer location of the VSM modules.
164    x101xxxx: SPEAK (SPK) Begins speaking, pulling speech data from the current address pointer location of the VSM modules.
165165
166166    x110xxxx: SPEAK EXTERNAL (SPKEXT) Clears the FIFO using SPKEE line, then sets TALKD (TALKST remains zero) until 8 bytes have been written to the FIFO, at which point it begins speaking, pulling data from the 16 byte fifo.
167167    The patent implies TALK STATUS must be CLEAR for this command to work; otherwise it is treated as a NOP, but the decap shows that this is not true, and is an error on the patent diagram.
r249893r249894
575575      if (!m_buffer_empty)
576576         set_interrupt_state(1);
577577      m_buffer_empty = 1;
578      m_TALK = m_SPEN = 0; // /BE being active clears the TALK status via TCON, which in turn clears SPEN
578      if (m_DDIS)
579         m_TALK = m_SPEN = 0; // /BE being active clears the TALK status via TCON, which in turn clears SPEN, but ONLY if m_DDIS is set! See patent page 16, gate 232b
579580   }
580581   else
581582      m_buffer_empty = 0;
r249893r249894
11811182               m_data_register = m_speechrom->read(8);    /* read one byte from speech ROM... */
11821183            m_RDB_flag = TRUE;
11831184         }
1184         break;
1185      break;
11851186
11861187      case 0x00: case 0x20: /* set rate (tms5220c and cd2501ecd only), otherwise NOP */
11871188         if (TMS5220_HAS_RATE_CONTROL)
r249893r249894
16011602            /* bring up to date first */
16021603            m_stream->update();
16031604            m_read_latch = status_read();
1605#ifdef DEBUG_IO_READY
1606            fprintf(stderr,"Serviced read, returning %02x\n", m_read_latch);
1607#endif
16041608            break;
16051609         case 0x03:
16061610            /* High Impedance */
trunk/src/devices/video/mc6845.c
r249893r249894
536536         if ( m_screen != NULL )
537537            m_screen->configure(horiz_pix_total, vert_pix_total, visarea, refresh);
538538
539         if(!m_reconfigure_cb.isnull())
540            m_reconfigure_cb(horiz_pix_total, vert_pix_total, visarea, refresh);
541
539542         m_has_valid_parameters = true;
540543      }
541544      else
r249893r249894
549552      m_hsync_off_pos = hsync_off_pos;
550553      m_vsync_on_pos = vsync_on_pos;
551554      m_vsync_off_pos = vsync_off_pos;
555      m_line_counter = 0;
552556   }
553557}
554558
r249893r249894
667671      if ( m_line_counter == m_vert_disp )
668672      {
669673         m_line_enable_ff = false;
674         m_current_disp_addr = m_disp_start_addr;
670675      }
671676
672677      /* Check if VSYNC should be enabled */
r249893r249894
10051010   m_out_vsync_cb.resolve_safe();
10061011
10071012   /* bind delegates */
1013   m_reconfigure_cb.bind_relative_to(*owner());
10081014   m_begin_update_cb.bind_relative_to(*owner());
10091015   m_update_row_cb.bind_relative_to(*owner());
10101016   m_end_update_cb.bind_relative_to(*owner());
trunk/src/devices/video/mc6845.h
r249893r249894
3939#define MCFG_MC6845_CHAR_WIDTH(_pixels) \
4040   mc6845_device::set_char_width(*device, _pixels);
4141
42#define MCFG_MC6845_RECONFIGURE_CB(_class, _method) \
43   mc6845_device::set_reconfigure_callback(*device, mc6845_reconfigure_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
44
4245#define MCFG_MC6845_BEGIN_UPDATE_CB(_class, _method) \
4346   mc6845_device::set_begin_update_callback(*device, mc6845_begin_update_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
4447
r249893r249894
6568
6669
6770/* callback definitions */
71typedef device_delegate<void (int width, int height, const rectangle &visarea, attoseconds_t frame_period)> mc6845_reconfigure_delegate;
72#define MC6845_RECONFIGURE(name)  void name(int width, int height, const rectangle &visarea, attoseconds_t frame_period)
73
6874typedef device_delegate<void (bitmap_rgb32 &bitmap, const rectangle &cliprect)> mc6845_begin_update_delegate;
6975#define MC6845_BEGIN_UPDATE(name)  void name(bitmap_rgb32 &bitmap, const rectangle &cliprect)
7076
r249893r249894
110116   }
111117   static void set_char_width(device_t &device, int pixels) { downcast<mc6845_device &>(device).m_hpixels_per_column = pixels; }
112118
119   static void set_reconfigure_callback(device_t &device, mc6845_reconfigure_delegate callback) { downcast<mc6845_device &>(device).m_reconfigure_cb = callback; }
113120   static void set_begin_update_callback(device_t &device, mc6845_begin_update_delegate callback) { downcast<mc6845_device &>(device).m_begin_update_cb = callback; }
114121   static void set_update_row_callback(device_t &device, mc6845_update_row_delegate callback) { downcast<mc6845_device &>(device).m_update_row_cb = callback; }
115122   static void set_end_update_callback(device_t &device, mc6845_end_update_delegate callback) { downcast<mc6845_device &>(device).m_end_update_cb = callback; }
r249893r249894
286293
287294   int m_hpixels_per_column;       /* number of pixels per video memory address */
288295
296   mc6845_reconfigure_delegate m_reconfigure_cb;
297
289298   /* if specified, this gets called before any pixel update,
290299    optionally return a pointer that will be passed to the
291300    update and tear down callbacks */
trunk/src/devices/video/psx.c
r249893r249894
724724         n_line = n_lines;
725725         while( n_line > 0 )
726726         {
727            UINT16 *p_n_src = p_p_vram[ n_y + n_displaystarty ] + ((n_x + n_displaystartx) * 3);
727            UINT16 *p_n_src = p_p_vram[ n_y + n_displaystarty ] + 3 * n_x + n_displaystartx;
728728            UINT16 *p_n_dest = &bitmap.pix16(n_y + n_top, n_x + n_left);
729729
730730            n_column = n_columns;
trunk/src/devices/video/saa5050.c
r249893r249894
11// license:BSD-3-Clause
2// copyright-holders:Curt Coder
2// copyright-holders:Curt Coder, Nigel Barnes
33/**********************************************************************
44
55    Mullard SAA5050 Teletext Character Generator emulation
r249893r249894
1212
1313    TODO:
1414
15    - character rounding
1615    - remote controller input
1716    - boxing
1817
r249893r249894
4039//-------------------------------------------------
4140
4241ROM_START( saa5050 )
43   ROM_REGION( 0xa00, "chargen", 0 )
44   ROM_LOAD( "saa5050", 0x0140, 0x08c0, BAD_DUMP CRC(78c17e3e) SHA1(4e1c59dc484505de1dc0b1ba7e5f70a54b0d4ccc) )
42   ROM_REGION( 0x500, "chargen", 0 )
43   ROM_LOAD("saa5050", 0x0140, 0x03c0, BAD_DUMP CRC(6298fc0b) SHA1(ae38e7f51dd33733bacfa896425ca105682b31d6))
4544ROM_END
4645
4746
r249893r249894
5049//-------------------------------------------------
5150
5251ROM_START( saa5051 )
53   ROM_REGION( 0xa00, "chargen", 0 )
54   ROM_LOAD( "saa5051", 0x0140, 0x08c0, NO_DUMP )
52   ROM_REGION( 0x500, "chargen", 0 )
53   ROM_LOAD("saa5051", 0x0140, 0x03c0, BAD_DUMP CRC(a770611c) SHA1(9ab9d24b845fe2964fba2f4770d54025d2c8026a))
5554ROM_END
5655
5756
r249893r249894
6059//-------------------------------------------------
6160
6261ROM_START( saa5052 )
63   ROM_REGION( 0xa00, "chargen", 0 )
64   ROM_LOAD( "saa5052", 0x0140, 0x08c0, BAD_DUMP CRC(cda3bf79) SHA1(cf5ea94459c09001d422dadc212bc970b4b4aa20) )
62   ROM_REGION( 0x500, "chargen", 0 )
63   ROM_LOAD("saa5052", 0x0140, 0x03c0, BAD_DUMP CRC(2eb76737) SHA1(ec4bc515e28e851a6433f7ca0a11ede0f1d21a68))
6564ROM_END
6665
6766
r249893r249894
7069//-------------------------------------------------
7170
7271ROM_START( saa5053 )
73   ROM_REGION( 0xa00, "chargen", 0 )
74   ROM_LOAD( "saa5053", 0x0140, 0x08c0, NO_DUMP )
72   ROM_REGION( 0x500, "chargen", 0 )
73   ROM_LOAD("saa5053", 0x0140, 0x03c0, BAD_DUMP CRC(46288c33) SHA1(1e471a1b5670d7163e9f62d31be7cab0330a07cd))
7574ROM_END
7675
7776
r249893r249894
8079//-------------------------------------------------
8180
8281ROM_START( saa5054 )
83   ROM_REGION( 0xa00, "chargen", 0 )
84   ROM_LOAD( "saa5054", 0x0140, 0x08c0, NO_DUMP )
82   ROM_REGION( 0x500, "chargen", 0 )
83   ROM_LOAD("saa5054", 0x0140, 0x03c0, BAD_DUMP CRC(56298472) SHA1(7a273ad7270507dca4ce621fc1e6b51a1ac25085))
8584ROM_END
8685
8786
r249893r249894
9089//-------------------------------------------------
9190
9291ROM_START( saa5055 )
93   ROM_REGION( 0xa00, "chargen", 0 )
94   ROM_LOAD( "saa5055", 0x0140, 0x08c0, NO_DUMP )
92   ROM_REGION( 0x500, "chargen", 0 )
93   ROM_LOAD("saa5055", 0x0140, 0x03c0, BAD_DUMP CRC(f95b9c8c) SHA1(c5ce7fe84df6de6a317fa0e87bda413c82c04618))
9594ROM_END
9695
9796
r249893r249894
10099//-------------------------------------------------
101100
102101ROM_START( saa5056 )
103   ROM_REGION( 0xa00, "chargen", 0 )
104   ROM_LOAD( "saa5056", 0x0140, 0x08c0, NO_DUMP )
102   ROM_REGION( 0x500, "chargen", 0 )
103   ROM_LOAD("saa5056", 0x0140, 0x03c0, BAD_DUMP CRC(86ab8b85) SHA1(2d1ff08b4dda15cf70832881750a962189455f41))
105104ROM_END
106105
107106
r249893r249894
110109//-------------------------------------------------
111110
112111ROM_START( saa5057 )
113   ROM_REGION( 0xa00, "chargen", 0 )
114   ROM_LOAD( "saa5057", 0x0140, 0x08c0, NO_DUMP )
112   ROM_REGION( 0x500, "chargen", 0 )
113   ROM_LOAD("saa5057", 0x0140, 0x08c0, BAD_DUMP CRC(d6664fb3) SHA1(5a93445dde03066073e2909a935900e5f8439d81))
115114ROM_END
116115
117116
r249893r249894
160159}
161160
162161
162#define ALPHANUMERIC    0x01
163#define CONTIGUOUS      0x02
164#define SEPARATED       0x03
163165
166
164167//**************************************************************************
165168//  LIVE DEVICE
166169//**************************************************************************
r249893r249894
225228
226229   // register for state saving
227230   save_item(NAME(m_code));
228   save_item(NAME(m_last_code));
231   save_item(NAME(m_held_char));
229232   save_item(NAME(m_char_data));
230233   save_item(NAME(m_bit));
231234   save_item(NAME(m_color));
232235   save_item(NAME(m_ra));
233236   save_item(NAME(m_bg));
234237   save_item(NAME(m_fg));
238   save_item(NAME(m_prev_col));
235239   save_item(NAME(m_graphics));
236240   save_item(NAME(m_separated));
237   save_item(NAME(m_conceal));
238241   save_item(NAME(m_flash));
239242   save_item(NAME(m_boxed));
240243   save_item(NAME(m_double_height));
241   save_item(NAME(m_double_height_top_row));
244   save_item(NAME(m_double_height_old));
242245   save_item(NAME(m_double_height_bottom_row));
243   save_item(NAME(m_hold));
246   save_item(NAME(m_double_height_prev_row));
247   save_item(NAME(m_hold_char));
248   save_item(NAME(m_hold_clear));
249   save_item(NAME(m_hold_off));
244250   save_item(NAME(m_frame_count));
245251}
246252
r249893r249894
252258void saa5050_device::device_reset()
253259{
254260   m_ra = 0;
255   m_double_height_top_row = false;
261   m_double_height = false;
256262   m_double_height_bottom_row = false;
257263}
258264
r249893r249894
263269
264270void saa5050_device::process_control_character(UINT8 data)
265271{
272   m_hold_clear = false;
273   m_hold_off = false;
274
266275   switch (data)
267276   {
268   case ALPHA_RED:
269   case ALPHA_GREEN:
270   case ALPHA_YELLOW:
271   case ALPHA_BLUE:
272   case ALPHA_MAGENTA:
273   case ALPHA_CYAN:
274   case ALPHA_WHITE:
275      m_graphics = false;
276      m_conceal = false;
277      m_fg = data & 0x07;
278      break;
277      case ALPHA_RED:
278      case ALPHA_GREEN:
279      case ALPHA_YELLOW:
280      case ALPHA_BLUE:
281      case ALPHA_MAGENTA:
282      case ALPHA_CYAN:
283      case ALPHA_WHITE:
284         m_graphics = false;
285         m_hold_clear = true;
286         m_fg = data & 0x07;
287         set_next_chartype();
288         break;
279289
280   case FLASH:
281      m_flash = true;
282      break;
290      case FLASH:
291         m_flash = true;
292         break;
283293
284   case STEADY:
285      m_flash = false;
286      break;
294      case STEADY:
295         m_flash = false;
296         break;
287297
288   case END_BOX:
289   case START_BOX:
290      // TODO
291      break;
298      case END_BOX:
299      case START_BOX:
300         // TODO
301         break;
292302
293   case NORMAL_HEIGHT:
294      m_double_height = 0;
295      break;
303      case NORMAL_HEIGHT:
304      case DOUBLE_HEIGHT:
305         m_double_height = !!(data & 1);
306         if (m_double_height) m_double_height_prev_row = true;
307         break;
296308
297   case DOUBLE_HEIGHT:
298      if (!m_double_height_bottom_row)
299      {
300         m_double_height_top_row = true;
301      }
309      case GRAPHICS_RED:
310      case GRAPHICS_GREEN:
311      case GRAPHICS_YELLOW:
312      case GRAPHICS_BLUE:
313      case GRAPHICS_MAGENTA:
314      case GRAPHICS_CYAN:
315      case GRAPHICS_WHITE:
316         m_graphics = true;
317         m_fg = data & 0x07;
318         set_next_chartype();
319         break;
302320
303      m_double_height = 1;
304      break;
321      case CONCEAL_DISPLAY:
322         m_fg = m_prev_col = m_bg;
323         break;
305324
306   case GRAPHICS_RED:
307   case GRAPHICS_GREEN:
308   case GRAPHICS_YELLOW:
309   case GRAPHICS_BLUE:
310   case GRAPHICS_MAGENTA:
311   case GRAPHICS_CYAN:
312   case GRAPHICS_WHITE:
313      m_graphics = true;
314      m_conceal = false;
315      m_fg = data & 0x07;
316      break;
325      case CONTIGUOUS_GFX:
326         m_separated = false;
327         set_next_chartype();
328         break;
317329
318   case CONCEAL_DISPLAY:
319      m_conceal = true;
320      break;
330      case SEPARATED_GFX:
331         m_separated = true;
332         set_next_chartype();
333         break;
321334
322   case CONTIGUOUS_GFX:
323      m_separated = false;
324      break;
335      case BLACK_BACKGROUND:
336         m_bg = 0;
337         break;
325338
326   case SEPARATED_GFX:
327      m_separated = true;
328      break;
339      case NEW_BACKGROUND:
340         m_bg = m_fg;
341         break;
329342
330   case BLACK_BACKGROUND:
331      m_bg = 0;
332      break;
343      case HOLD_GRAPHICS:
344         m_hold_char = true;
345         break;
333346
334   case NEW_BACKGROUND:
335      m_bg = m_fg;
336      break;
347      case RELEASE_GRAPHICS:
348         m_hold_off = true;
349         break;
350   }
351}
337352
338   case HOLD_GRAPHICS:
339      m_hold = true;
340      break;
341353
342   case RELEASE_GRAPHICS:
343      m_hold = false;
354void saa5050_device::set_next_chartype()
355{
356   if (m_graphics)
357   {
358      if (m_separated)
359         m_next_chartype = SEPARATED;
360      else
361         m_next_chartype = CONTIGUOUS;
362   }
363   else
364   {
365      m_next_chartype = ALPHANUMERIC;
366   }
367};
368
369
370//-------------------------------------------------
371//  get_gfx_data - graphics generator
372//-------------------------------------------------
373
374UINT16 saa5050_device::get_gfx_data(UINT8 data, offs_t row, bool separated)
375{
376   UINT16 c = 0;
377   switch (row >> 1)
378   {
379   case 0: case 1:
380      c += (data & 0x01) ? 0xfc0 : 0; // bit 1 top left
381      c += (data & 0x02) ? 0x03f : 0; // bit 2 top right
382      if (separated) c &= 0x3cf;
344383      break;
384   case 2:
385      if (separated) break;
386      c += (data & 0x01) ? 0xfc0 : 0; // bit 1 top left
387      c += (data & 0x02) ? 0x03f : 0; // bit 2 top right
388      break;
389   case 3: case 4: case 5:
390      c += (data & 0x04) ? 0xfc0 : 0; // bit 3 middle left
391      c += (data & 0x08) ? 0x03f : 0; // bit 4 middle right
392      if (separated) c &= 0x3cf;
393      break;
394   case 6:
395      if (separated) break;
396      c += (data & 0x04) ? 0xfc0 : 0; // bit 3 middle left
397      c += (data & 0x08) ? 0x03f : 0; // bit 4 middle right
398      break;
399   case 7: case 8:
400      c += (data & 0x10) ? 0xfc0 : 0; // bit 5 bottom left
401      c += (data & 0x40) ? 0x03f : 0; // bit 7 bottom right
402      if (separated) c &= 0x3cf;
403      break;
404   case 9:
405      if (separated) break;
406      c += (data & 0x10) ? 0xfc0 : 0; // bit 5 bottom left
407      c += (data & 0x40) ? 0x03f : 0; // bit 7 bottom right
408      break;
345409   }
410   return c;
346411}
347412
348413
349414//-------------------------------------------------
415//  get_rom_data - read rom
416//-------------------------------------------------
417
418UINT16 saa5050_device::get_rom_data(UINT8 data, offs_t row)
419{
420   UINT16 c;
421   if (row < 0 || row >= 20)
422   {
423      c = 0;
424   }
425   else
426   {
427      c = m_char_rom[(data * 10) + (row >> 1)];
428      c = ((c & 0x01) * 0x03) + ((c & 0x02) * 0x06) + ((c & 0x04) * 0x0c) + ((c & 0x08) * 0x18) + ((c & 0x10) * 0x30);
429   }
430   return c;
431}
432
433
434//-------------------------------------------------
435//  character_rounding
436//-------------------------------------------------
437
438UINT16 saa5050_device::character_rounding(UINT16 a, UINT16 b)
439{
440   return a | ((a >> 1) & b & ~(b >> 1)) | ((a << 1) & b & ~(b << 1));
441}
442
443
444//-------------------------------------------------
350445//  get_character_data -
351446//-------------------------------------------------
352447
353448void saa5050_device::get_character_data(UINT8 data)
354449{
355   if (m_graphics && (data & 0x20))
450   m_double_height_old = m_double_height;
451   m_prev_col = m_fg;
452   m_curr_chartype = m_next_chartype;
453
454   if (data < 0x20)
356455   {
357      data += (data & 0x40) ? 64 : 96;
358      if (m_separated) data += 64;
456      process_control_character(data);
457      if (m_hold_char && m_double_height == m_double_height_old)
458      {
459         data = m_held_char;
460         if (data >= 0x40 && data < 0x60) data = 0x20;
461         m_curr_chartype = m_held_chartype;
462      }
463      else
464      {
465         data = 0x20;
466      }
359467   }
468   else if (m_graphics)
469   {
470      m_held_char = data;
471      m_held_chartype = m_curr_chartype;
472   }
360473
361   if ((data < 0x20) && m_hold) data = m_last_code;
362   if (m_conceal) data = 0x20;
474   offs_t ra = m_ra;
475   if (m_double_height_old)
476   {
477      ra >>= 1;
478      if (m_double_height_bottom_row) ra += 10;
479   }
480
363481   if (m_flash && (m_frame_count > 38)) data = 0x20;
364482   if (m_double_height_bottom_row && !m_double_height) data = 0x20;
365   m_last_code = data;
366483
367   offs_t ra = m_ra >> 1;
368   if (m_double_height) ra >>= 1;
369   if (m_double_height && m_double_height_bottom_row) ra += 5;
484   if (m_hold_off)
485   {
486      m_hold_char = false;
487      m_held_char = 32;
488   }
489   if (m_hold_clear)
490   {
491      m_held_char = 32;
492   }
370493
371   m_char_data = m_char_rom[(data * 10) + ra];
494   if (m_curr_chartype == ALPHANUMERIC || !BIT(data,5))
495      m_char_data = character_rounding(get_rom_data(data, ra), get_rom_data(data, ra + ((ra & 1) ? 1 : -1)));
496   else
497      m_char_data = get_gfx_data(data, ra, (m_curr_chartype == SEPARATED));
372498}
373499
374500
375501//-------------------------------------------------
502//  crs_w - character rounding select
503//-------------------------------------------------
504
505WRITE_LINE_MEMBER( saa5050_device::crs_w )
506{
507   m_crs = !(state & 1);
508}
509
510
511//-------------------------------------------------
376512//  dew_w - data entry window
377513//-------------------------------------------------
378514
r249893r249894
381517   if (state)
382518   {
383519      m_ra = 19;
384      m_double_height_top_row = false;
385520
386521      m_frame_count++;
387522      if (m_frame_count > 50) m_frame_count = 0;
r249893r249894
400535      m_ra++;
401536      m_ra %= 20;
402537
538      if (m_ra == 19)
539      {
540         if (m_double_height_bottom_row)
541            m_double_height_bottom_row = false;
542         else
543            m_double_height_bottom_row = m_double_height_prev_row;
544      }
545
403546      m_fg = 7;
404547      m_bg = 0;
405548      m_graphics = false;
406549      m_separated = false;
407      m_conceal = false;
408550      m_flash = false;
409551      m_boxed = false;
410      m_hold = false;
411      m_double_height = 0;
412      m_bit = 5;
413      m_last_code = 0x20;
414
415      if (!m_ra)
416      {
417         m_double_height_bottom_row = m_double_height_top_row;
418         m_double_height_top_row = false;
419      }
552      m_hold_char = false;
553      m_held_char = 0x20;
554      m_next_chartype = ALPHANUMERIC;
555      m_held_chartype = ALPHANUMERIC;
556      m_double_height = false;
557      m_double_height_prev_row = false;
558      m_bit = 11;
420559   }
421560}
422561
r249893r249894
439578{
440579   if (state)
441580   {
442      process_control_character(m_code);
443581      get_character_data(m_code);
444582   }
445583}
r249893r249894
453591{
454592   if (state)
455593   {
456      m_color = BIT(m_char_data, m_bit) ? m_fg : m_bg;
594      m_color = BIT(m_char_data, m_bit) ? m_prev_col : m_bg;
457595
458596      m_bit--;
459      if (m_bit < 0) m_bit = 5;
597      if (m_bit < 0) m_bit = 11;
460598   }
461599}
462600
r249893r249894
500638         f1_w(1);
501639         f1_w(0);
502640
503         for (int bit = 0; bit < 6; bit++)
641         for (int bit = 0; bit < 12; bit++)
504642         {
505643            tr6_w(1);
506644            tr6_w(0);
r249893r249894
516654            rgb_t rgb = rgb_t(r, g, b);
517655
518656            bitmap.pix32(y, x++) = rgb;
519            bitmap.pix32(y, x++) = rgb;
520657         }
521658      }
522659   }
trunk/src/devices/video/saa5050.h
r249893r249894
6565   // optional information overrides
6666   virtual const rom_entry *device_rom_region() const;
6767
68   DECLARE_WRITE_LINE_MEMBER( crs_w );
6869   DECLARE_WRITE_LINE_MEMBER( dew_w );
6970   DECLARE_WRITE_LINE_MEMBER( lose_w );
7071   void write(UINT8 data);
r249893r249894
120121   };
121122
122123   void process_control_character(UINT8 data);
124   void set_next_chartype();
125   UINT16 get_gfx_data(UINT8 data, offs_t row, bool separated);
126   UINT16 get_rom_data(UINT8 data, offs_t row);
127   UINT16 character_rounding(UINT16 a, UINT16 b);
123128   void get_character_data(UINT8 data);
124129
125130   required_region_ptr<UINT8> m_char_rom;
r249893r249894
127132   devcb_read8    m_read_d;
128133
129134   UINT8 m_code;
130   UINT8 m_last_code;
131   UINT8 m_char_data;
135   UINT8 m_held_char;
136   UINT8 m_next_chartype;
137   UINT8 m_curr_chartype;
138   UINT8 m_held_chartype;
139   UINT16 m_char_data;
132140   int m_bit;
133141   rgb_t m_color;
142   int m_crs;
134143   int m_ra;
135144   int m_bg;
136145   int m_fg;
146   int m_prev_col;
137147   bool m_graphics;
138148   bool m_separated;
139   bool m_conceal;
140149   bool m_flash;
141150   bool m_boxed;
142   int m_double_height;
143   bool m_double_height_top_row;
151   bool m_double_height;
152   bool m_double_height_old;
144153   bool m_double_height_bottom_row;
145   bool m_hold;
154   bool m_double_height_prev_row;
155   bool m_hold_char;
156   bool m_hold_clear;
157   bool m_hold_off;
146158   int m_frame_count;
147159
148160   int m_cols;
r249893r249894
248260extern const device_type SAA5052; // Swedish/Finnish
249261extern const device_type SAA5053; // Italian
250262extern const device_type SAA5054; // Belgian
251extern const device_type SAA5055; // U.S. ASCII
263extern const device_type SAA5055; // US ASCII
252264extern const device_type SAA5056; // Hebrew
253265extern const device_type SAA5057; // Cyrillic
254266
trunk/src/emu/drivers/xtal.h
r249893r249894
223223   XTAL_64MHz          = 64000000,     /* BattleToads */
224224   XTAL_66_6667MHz     = 66666700,     /* Later Midway games */
225225   XTAL_67_7376MHz     = 67737600,     /* PSX-based h/w, Sony ZN1-2-based */
226   XTAL_72MHz          = 72000000,     /* Aristocrat MKV */
226227   XTAL_72_576MHz      = 72576000,     /* Centipede, Millipede, Missile Command, Let's Go Bowling "Multipede" */
227228   XTAL_73_728MHz      = 73728000,     /* Ms. Pac-Man/Galaga 20th Anniversary */
228229   XTAL_100MHz         = 100000000,    /* PSX-based Namco System 12, Vegas, Sony ZN1-2-based */
trunk/src/emu/machine.c
r249893r249894
256256   m_memory.initialize();
257257
258258   // initialize the watchdog
259   m_watchdog_counter = 0;
259260   m_watchdog_timer = m_scheduler.timer_alloc(timer_expired_delegate(FUNC(running_machine::watchdog_fired), this));
260261   if (config().m_watchdog_vblank_count != 0 && primary_screen != NULL)
261262      primary_screen->register_vblank_callback(vblank_state_delegate(FUNC(running_machine::watchdog_vblank), this));
trunk/src/emu/machine.h
r249893r249894
226226   // watchdog control
227227   void watchdog_reset();
228228   void watchdog_enable(bool enable = true);
229   INT32 get_vblank_watchdog_counter() { return m_watchdog_counter; }
229230
230231   // misc
231232   void CLIB_DECL vlogerror(const char *format, va_list args);
trunk/src/emu/screen.c
r249893r249894
6363      m_curtexture(0),
6464      m_changed(true),
6565      m_last_partial_scan(0),
66      m_partial_scan_hpos(0),
6667      m_color(rgb_t(0xff, 0xff, 0xff, 0xff)),
6768      m_brightness(0xff),
6869      m_frame_period(DEFAULT_FRAME_PERIOD.as_attoseconds()),
r249893r249894
661662
662663void screen_device::update_now()
663664{
665   // these two checks only apply if we're allowed to skip frames
666   if (!(m_video_attributes & VIDEO_ALWAYS_UPDATE))
667   {
668      // if skipping this frame, bail
669      if (machine().video().skip_this_frame())
670      {
671         LOG_PARTIAL_UPDATES(("skipped due to frameskipping\n"));
672         return;
673      }
674
675      // skip if this screen is not visible anywhere
676      if (!machine().render().is_live(*this))
677      {
678         LOG_PARTIAL_UPDATES(("skipped because screen not live\n"));
679         return;
680      }
681   }
682
664683   int current_vpos = vpos();
665684   int current_hpos = hpos();
685   rectangle clip = m_visarea;
666686
667   // since we can currently update only at the scanline
668   // level, we are trying to do the right thing by
669   // updating including the current scanline, only if the
670   // beam is past the halfway point horizontally.
671   // If the beam is in the first half of the scanline,
672   // we only update up to the previous scanline.
673   // This minimizes the number of pixels that might be drawn
674   // incorrectly until we support a pixel level granularity
675   if (current_hpos < (m_width / 2) && current_vpos > 0)
676      current_vpos = current_vpos - 1;
687   LOG_PARTIAL_UPDATES(("update_now(): Y=%d, X=%d, last partial %d, partial hpos %d  (vis %d %d)\n", current_vpos, current_hpos, m_last_partial_scan, m_partial_scan_hpos, m_visarea.max_x, m_visarea.max_y));
677688
678   update_partial(current_vpos);
689   // start off by doing a partial update up to the line before us, in case that was necessary
690   if (current_vpos > m_last_partial_scan)
691   {
692      // if the line before us was incomplete, we must do it in two pieces
693      if (m_partial_scan_hpos > 0)
694      {
695         INT32 save_scan = m_partial_scan_hpos;
696         update_partial(current_vpos - 2);
697         m_partial_scan_hpos = save_scan;
698
699         // now finish the previous partial scanline
700         int scanline = current_vpos - 1;
701         if (m_partial_scan_hpos > clip.min_x)
702            clip.min_x = m_partial_scan_hpos;
703         if (current_hpos < clip.max_x)
704            clip.max_x = current_hpos;
705         if (m_last_partial_scan > clip.min_y)
706            clip.min_y = m_last_partial_scan;
707         if (scanline < clip.max_y)
708            clip.max_y = scanline;
709
710         // if there's something to draw, do it
711         if ((clip.min_x <= clip.max_x) && (clip.min_y <= clip.max_y))
712         {
713            g_profiler.start(PROFILER_VIDEO);
714
715            screen_bitmap &curbitmap = m_bitmap[m_curbitmap];
716            switch (curbitmap.format())
717            {
718               default:
719               case BITMAP_FORMAT_IND16: m_screen_update_ind16(*this, curbitmap.as_ind16(), clip);   break;
720               case BITMAP_FORMAT_RGB32: m_screen_update_rgb32(*this, curbitmap.as_rgb32(), clip);   break;
721            }
722
723            m_partial_updates_this_frame++;
724            g_profiler.stop();
725            m_partial_scan_hpos = 0;
726            m_last_partial_scan = current_vpos + 1;
727         }
728      }
729      else
730      {
731         update_partial(current_vpos - 1);
732      }
733   }
734
735   // now draw this partial scanline
736   clip = m_visarea;
737
738   if (m_partial_scan_hpos > clip.min_x)
739      clip.min_x = m_partial_scan_hpos;
740   if (current_hpos < clip.max_x)
741      clip.max_x = current_hpos;
742   if (current_vpos > clip.min_y)
743      clip.min_y = current_vpos;
744   if (current_vpos < clip.max_y)
745      clip.max_y = current_vpos;
746
747   // and if there's something to draw, do it
748   if ((clip.min_x <= clip.max_x) && (clip.min_y <= clip.max_y))
749   {
750      g_profiler.start(PROFILER_VIDEO);
751
752      LOG_PARTIAL_UPDATES(("doing scanline partial draw: Y %d X %d-%d\n", clip.max_y, clip.min_x, clip.max_x));
753
754      UINT32 flags = UPDATE_HAS_NOT_CHANGED;
755      screen_bitmap &curbitmap = m_bitmap[m_curbitmap];
756      switch (curbitmap.format())
757      {
758         default:
759         case BITMAP_FORMAT_IND16:   flags = m_screen_update_ind16(*this, curbitmap.as_ind16(), clip);   break;
760         case BITMAP_FORMAT_RGB32:   flags = m_screen_update_rgb32(*this, curbitmap.as_rgb32(), clip);   break;
761      }
762
763      m_partial_updates_this_frame++;
764      g_profiler.stop();
765
766      // if we modified the bitmap, we have to commit
767      m_changed |= ~flags & UPDATE_HAS_NOT_CHANGED;
768
769      // remember where we left off
770      m_partial_scan_hpos = current_hpos;
771      m_last_partial_scan = current_vpos;
772
773      // if we completed the line, mark it so
774      if (current_hpos >= m_visarea.max_x)
775      {
776         m_partial_scan_hpos = 0;
777         m_last_partial_scan = current_vpos + 1;
778      }
779   }
679780}
680781
681782
r249893r249894
687788void screen_device::reset_partial_updates()
688789{
689790   m_last_partial_scan = 0;
791   m_partial_scan_hpos = 0;
690792   m_partial_updates_this_frame = 0;
691793   m_scanline0_timer->adjust(time_until_pos(0));
692794}
trunk/src/emu/screen.h
r249893r249894
285285   UINT8               m_curtexture;               // current texture index
286286   bool                m_changed;                  // has this bitmap changed?
287287   INT32               m_last_partial_scan;        // scanline of last partial update
288   INT32            m_partial_scan_hpos;      // horizontal pixel last rendered on this partial scanline
288289   bitmap_argb32       m_screen_overlay_bitmap;    // screen overlay bitmap
289290   UINT32              m_unique_id;                // unique id for this screen_device
290291   rgb_t               m_color;                    // render color
trunk/src/lib/formats/apollo_dsk.c
r249893r249894
4545};
4646
4747const floppy_format_type FLOPPY_APOLLO_FORMAT = &floppy_image_format_creator<apollo_format>;
48
49int apollo_format::identify(io_generic *io, UINT32 form_factor)
50{
51   UINT64 size = io_generic_size(io);
52   UINT32 expected_size = 77*2*8*1024;
53
54   return ((size == expected_size) || (size == 0)) ? 1 : 0;
55}
56
trunk/src/lib/formats/apollo_dsk.h
r249893r249894
1717public:
1818   apollo_format();
1919
20   virtual int identify(io_generic *io, UINT32 form_factor);
2021   virtual const char *name() const;
2122   virtual const char *description() const;
2223   virtual const char *extensions() const;
trunk/src/lib/formats/bbc_dsk.c
r249893r249894
99***************************************************************************/
1010
1111#include "bbc_dsk.h"
12#include "basicdsk.h"
1312
14LEGACY_FLOPPY_OPTIONS_START(bbc)
15   LEGACY_FLOPPY_OPTION( ssd40, "bbc,img,ssd", "BBC 40t SSD disk image", basicdsk_identify_default, basicdsk_construct_default, NULL,
16      HEADS([1])
17      TRACKS([40])
18      SECTORS([10])
19      SECTOR_LENGTH([256])
20      FIRST_SECTOR_ID([0]))
21   LEGACY_FLOPPY_OPTION( ssd80, "bbc,img,ssd", "BBC 80t SSD disk image", basicdsk_identify_default, basicdsk_construct_default, NULL,
22      HEADS([1])
23      TRACKS([80])
24      SECTORS([10])
25      SECTOR_LENGTH([256])
26      FIRST_SECTOR_ID([0]))
27   LEGACY_FLOPPY_OPTION( dsd40, "dsd", "BBC 40t DSD disk image", basicdsk_identify_default, basicdsk_construct_default, NULL,
28      HEADS([2])
29      TRACKS([40])
30      SECTORS([10])
31      SECTOR_LENGTH([256])
32      INTERLEAVE([0])
33      FIRST_SECTOR_ID([0]))
34   LEGACY_FLOPPY_OPTION( dsd80, "dsd", "BBC 80t DSD disk image", basicdsk_identify_default, basicdsk_construct_default, NULL,
35      HEADS([2])
36      TRACKS([80])
37      SECTORS([10])
38      SECTOR_LENGTH([256])
39      INTERLEAVE([0])
40      FIRST_SECTOR_ID([0]))
41LEGACY_FLOPPY_OPTIONS_END
42
43/********************************************************************/
44
45bbc_ssd_525_format::bbc_ssd_525_format() : wd177x_format(formats)
13bbc_dfs_format::bbc_dfs_format() : wd177x_format(formats)
4614{
4715}
4816
49const char *bbc_ssd_525_format::name() const
17const char *bbc_dfs_format::name() const
5018{
51   return "ssd";
19   return "dfs";
5220}
5321
54const char *bbc_ssd_525_format::description() const
22const char *bbc_dfs_format::description() const
5523{
56   return "BBC Micro 5.25\" disk image";
24   return "Acorn DFS disk image";
5725}
5826
59const char *bbc_ssd_525_format::extensions() const
27const char *bbc_dfs_format::extensions() const
6028{
61   return "bbc,img,ssd";
29   return "bbc,img,ssd,dsd";
6230}
6331
64int bbc_ssd_525_format::find_size(io_generic *io, UINT32 form_factor)
32int bbc_dfs_format::find_size(io_generic *io, UINT32 form_factor)
6533{
66   char cat[8];
67   io_generic_read(io, cat, 256, 8);
68   UINT64 sectors = ((cat[6] & 3) << 8) + cat[7]; // sector count from catalogue
34   UINT8 cat[8];
35   UINT32 sectors0, sectors2;
36
37   // read sector count from side 0 catalogue
38   io_generic_read(io, cat, 0x100, 8);
39   sectors0 = ((cat[6] & 3) << 8) + cat[7];
40
6941   UINT64 size = io_generic_size(io);
7042   for(int i=0; formats[i].form_factor; i++) {
7143      const format &f = formats[i];
7244      if(form_factor != floppy_image::FF_UNKNOWN && form_factor != f.form_factor)
7345         continue;
7446
75      if((size <= (UINT64)compute_track_size(f) * f.track_count * f.head_count) && (sectors == f.track_count * f.sector_count))
76         return i;
47      if ((size <= (UINT64)compute_track_size(f) * f.track_count * f.head_count) && (sectors0 == f.track_count * f.sector_count)) {
48         if (f.head_count == 2)
49         {
50            // read sector count from side 2 catalogue
51            if (f.sector_base_id == -1)
52               io_generic_read(io, cat, 0xb00, 8); // interleaved
53            else
54               io_generic_read(io, cat, compute_track_size(f) * f.track_count + 0x100, 8); // sequential
55            sectors2 = ((cat[6] & 3) << 8) + cat[7];
56         }
57         else
58         {
59            sectors2 = sectors0;
60         }
61
62         if (sectors0 == sectors2)
63            return i;
64      }
7765   }
7866   return -1;
7967}
8068
81const bbc_ssd_525_format::format bbc_ssd_525_format::formats[] =
69int bbc_dfs_format::identify(io_generic *io, UINT32 form_factor)
8270{
71   int type = find_size(io, form_factor);
72
73   if(type != -1)
74      return 90;
75   return 0;
76}
77
78int bbc_dfs_format::get_image_offset(const format &f, int head, int track)
79{
80   if (f.sector_base_id == -1)
81      return (track * f.head_count + head) * compute_track_size(f);
82   else
83      return (f.track_count * head + track) * compute_track_size(f);
84}
85
86const bbc_dfs_format::format bbc_dfs_format::formats[] =
87{
8388   { // 100k 40 track single sided single density
8489      floppy_image::FF_525, floppy_image::SSSD, floppy_image::FM,
8590      4000, 10, 40, 1, 256, {}, 0, {}, 40, 10, 10
r249893r249894
9297      floppy_image::FF_525, floppy_image::DSSD, floppy_image::FM,
9398      4000, 10, 40, 2, 256, {}, 0, {}, 40, 10, 10
9499   },
100   { // 200k 40 track double sided single density (interleaved)
101      floppy_image::FF_525, floppy_image::DSSD, floppy_image::FM,
102      4000, 10, 40, 2, 256, {}, -1, { 0,1,2,3,4,5,6,7,8,9 }, 40, 10, 10
103   },
95104   { // 400k 80 track double sided single density
96105      floppy_image::FF_525, floppy_image::DSQD, floppy_image::FM,
97106      4000, 10, 80, 2, 256, {}, 0, {}, 40, 10, 10
98107   },
108   { // 400k 80 track double sided single density (interleaved)
109      floppy_image::FF_525, floppy_image::DSQD, floppy_image::FM,
110      4000, 10, 80, 2, 256, {}, -1, { 0,1,2,3,4,5,6,7,8,9 }, 40, 10, 10
111   },
99112   {}
100113};
101114
102115
103bbc_dsd_525_format::bbc_dsd_525_format() : wd177x_format(formats)
116bbc_adfs_format::bbc_adfs_format() : wd177x_format(formats)
104117{
105118}
106119
107const char *bbc_dsd_525_format::name() const
120const char *bbc_adfs_format::name() const
108121{
109   return "dsd";
122   return "adfs";
110123}
111124
112const char *bbc_dsd_525_format::description() const
125const char *bbc_adfs_format::description() const
113126{
114   return "BBC Micro 5.25\" disk image";
127   return "Acorn ADFS disk image";
115128}
116129
117const char *bbc_dsd_525_format::extensions() const
130const char *bbc_adfs_format::extensions() const
118131{
119   return "dsd";
132   return "adf,ads,adm,adl";
120133}
121134
122int bbc_dsd_525_format::find_size(io_generic *io, UINT32 form_factor)
135int bbc_adfs_format::find_size(io_generic *io, UINT32 form_factor)
123136{
124   char cat[8];
125   io_generic_read(io, cat, 256, 8);
126   UINT64 sectors = ((cat[6] & 3) << 8) + cat[7]; // sector count from catalogue
137   UINT8 map[3];
138   UINT32 sectors;
139
140   // read sector count from free space map
141   io_generic_read(io, map, 0xfc, 3);
142   sectors = map[0] + (map[1] << 8) + (map[2] << 16);
143
127144   UINT64 size = io_generic_size(io);
128145   for(int i=0; formats[i].form_factor; i++) {
129146      const format &f = formats[i];
130147      if(form_factor != floppy_image::FF_UNKNOWN && form_factor != f.form_factor)
131148         continue;
132149
133      if((size <= (UINT64)compute_track_size(f) * f.track_count * f.head_count) && (sectors == f.track_count * f.sector_count))
150      // valid images will have sector counts adfs-s = 0x280; adfs-m = 0x500; adfs-l = 0xa00; though many adfs-s images are incorrect
151      if ((size == (UINT64)compute_track_size(f) * f.track_count * f.head_count) && (sectors == 0x280 || sectors == 0x500 || sectors == 0xa00)) {
134152         return i;
153      }
135154   }
136155   return -1;
137156}
138157
139const bbc_dsd_525_format::format bbc_dsd_525_format::formats[] =
158int bbc_adfs_format::identify(io_generic *io, UINT32 form_factor)
140159{
141   { // 200k 40 track double sided single density
142      floppy_image::FF_525, floppy_image::DSQD, floppy_image::FM,
143      4000, 10, 40, 2, 256, {}, -1, { 0,1,2,3,4,5,6,7,8,9 }, 40, 10, 10
160   int type = find_size(io, form_factor);
161
162   if(type != -1)
163      return 100;
164   return 0;
165}
166
167int bbc_adfs_format::get_image_offset(const format &f, int head, int track)
168{
169   if (f.sector_base_id == -1)
170      return (track * f.head_count + head) * compute_track_size(f);
171   else
172      return (f.track_count * head + track) * compute_track_size(f);
173}
174
175const bbc_adfs_format::format bbc_adfs_format::formats[] =
176{
177   { // 160K 5 1/4 inch 40 track single sided double density
178      floppy_image::FF_525, floppy_image::SSDD, floppy_image::MFM,
179      2000, 16, 40, 1, 256, {}, 0, {}, 60, 22, 43
144180   },
145   { // 400k 80 track double sided single density
146      floppy_image::FF_525, floppy_image::DSQD, floppy_image::FM,
147      4000, 10, 80, 2, 256, {}, -1, { 0,1,2,3,4,5,6,7,8,9 }, 40, 10, 10
181   { // 320K 5 1/4 inch 80 track single sided double density
182      floppy_image::FF_525, floppy_image::SSDD, floppy_image::MFM,
183      2000, 16, 80, 1, 256, {}, 0, {}, 60, 22, 43
148184   },
185   { // 640K 5 1/4 inch 80 track double sided double density (interleaved)
186      floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
187      2000, 16, 80, 2, 256, {}, -1, { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 }, 60, 22, 43
188   },
189   { // 160K 3 1/2 inch 40 track single sided double density
190      floppy_image::FF_35, floppy_image::SSDD, floppy_image::MFM,
191      2000, 16, 40, 1, 256, {}, 0, {}, 60, 22, 43
192   },
193   { // 320K 3 1/2 inch 80 track single sided double density
194      floppy_image::FF_35, floppy_image::SSQD, floppy_image::MFM,
195      2000, 16, 80, 1, 256, {}, 0, {}, 60, 22, 43
196   },
197   { // 640K 3 1/2 inch 80 track double sided double density (interleaved)
198      floppy_image::FF_35, floppy_image::DSQD, floppy_image::MFM,
199      2000, 16, 80, 2, 256, {}, -1, { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 }, 60, 22, 43
200   },
149201   {}
150202};
151203
152204
153bbc_adf_525_format::bbc_adf_525_format() : wd177x_format(formats)
205bbc_dos_format::bbc_dos_format() : wd177x_format(formats)
154206{
155207}
156208
157const char *bbc_adf_525_format::name() const
209const char *bbc_dos_format::name() const
158210{
159   return "adf";
211   return "dos";
160212}
161213
162const char *bbc_adf_525_format::description() const
214const char *bbc_dos_format::description() const
163215{
164   return "BBC Micro 5.25\" ADFS disk image";
216   return "Acorn DOS disk image";
165217}
166218
167const char *bbc_adf_525_format::extensions() const
219const char *bbc_dos_format::extensions() const
168220{
169   return "adf,ads,adm,adl,img";
221   return "img,adl";
170222}
171223
172const bbc_adf_525_format::format bbc_adf_525_format::formats[] =
224int bbc_dos_format::find_size(io_generic *io, UINT32 form_factor)
173225{
174   { // 160K 40 track single sided double density
175      floppy_image::FF_525, floppy_image::SSDD, floppy_image::MFM,
176      2000, 16, 40, 1, 256, {}, 0, {}, 60, 22, 43
226   UINT8 cat[3];
227   UINT32 sectors;
228
229   UINT64 size = io_generic_size(io);
230   for(int i=0; formats[i].form_factor; i++) {
231      const format &f = formats[i];
232      if(form_factor != floppy_image::FF_UNKNOWN && form_factor != f.form_factor)
233         continue;
234
235      if (size == (UINT64)compute_track_size(f) * f.track_count * f.head_count) {
236         switch (size)
237         {
238            case 640 * 1024: // 640K Acorn (Bootable) DOS Format
239               // read sector count from free space map - Acorn DOS = 0xaa0
240               io_generic_read(io, cat, 0xfc, 3);
241               sectors = cat[0] + (cat[1] << 8) + (cat[2] << 16);
242               if (sectors == 0xaa0) {
243                  // read media type ID from FAT - Acorn DOS = 0xff
244                  if (f.sector_base_id == -1)
245                     io_generic_read(io, cat, 0x2000, 1); // interleaved
246                  else
247                     io_generic_read(io, cat, 0x1000, 1); // sequential
248                  if (cat[0] == 0xff) return i;
249               }
250               break;
251            case 800 * 1024: // 800K Acorn DOS Format
252               // read media type ID from FAT - Acorn DOS = 0xfd
253               io_generic_read(io, cat, 0, 1);
254               if (cat[0] == 0xfd) return i;
255               break;
256         }
257      }
258   }
259   return -1;
260}
261
262int bbc_dos_format::identify(io_generic *io, UINT32 form_factor)
263{
264   int type = find_size(io, form_factor);
265
266   if(type != -1)
267      return 100;
268   return 0;
269}
270
271int bbc_dos_format::get_image_offset(const format &f, int head, int track)
272{
273   if (f.sector_base_id == -1)
274      return (track * f.head_count + head) * compute_track_size(f);
275   else
276      return (f.track_count * head + track) * compute_track_size(f);
277}
278
279const bbc_dos_format::format bbc_dos_format::formats[] =
280{
281   { // 640K 5 1/4 inch 80 track double sided double density - gaps unverified
282      floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
283      2000, 16, 80, 2, 256, {}, 0, {}, 60, 22, 43
177284   },
178   { // 320K 80 track single sided double density
179      floppy_image::FF_525, floppy_image::SSDD, floppy_image::MFM,
180      2000, 16, 80, 1, 256, {}, 0, {}, 60, 22, 43
181   },
182   { // 640K 80 track double sided double density
285   { // 640K 5 1/4 inch 80 track double sided double density (interleaved) - gaps unverified
183286      floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
184287      2000, 16, 80, 2, 256, {}, -1, { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 }, 60, 22, 43
185288   },
289   { // 800K 5 1/4 inch 80 track double sided double density - gaps unverified
290      floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
291      2000, 5, 80, 2, 1024, {}, 0, {}, 60, 22, 43
292   },
186293   {}
187294};
188295
189296
190bbc_adf_35_format::bbc_adf_35_format() : wd177x_format(formats)
297bbc_cpm_format::bbc_cpm_format() : wd177x_format(formats)
191298{
192299}
193300
194const char *bbc_adf_35_format::name() const
301const char *bbc_cpm_format::name() const
195302{
196   return "adf";
303   return "cpm";
197304}
198305
199const char *bbc_adf_35_format::description() const
306const char *bbc_cpm_format::description() const
200307{
201   return "BBC Micro 3.5\" ADFS disk image";
308   return "Acorn CP/M disk image";
202309}
203310
204const char *bbc_adf_35_format::extensions() const
311const char *bbc_cpm_format::extensions() const
205312{
206   return "adf,ads,adm,adl,img";
313   return "img,ssd,dsd";
207314}
208315
209const bbc_adf_35_format::format bbc_adf_35_format::formats[] = {
210   { // 160K 3 1/2 inch 40 track single sided double density
211      floppy_image::FF_35, floppy_image::SSDD, floppy_image::MFM,
212      2000, 16, 40, 1, 256, {}, 0, {}, 60, 22, 43
316int bbc_cpm_format::identify(io_generic *io, UINT32 form_factor)
317{
318   UINT8 h[8];
319
320   io_generic_read(io, h, 0, 8);
321
322   int type = find_size(io, form_factor);
323
324   if(type != -1 && (memcmp(h, "Acorn CP", 8) == 0 || memcmp(h, "Slogger ", 8) == 0)) {
325      return 100;
326   }
327   return 0;
328}
329
330int bbc_cpm_format::get_image_offset(const format &f, int head, int track)
331{
332   if (f.sector_base_id == -1)
333      return (track * f.head_count + head) * compute_track_size(f);
334   else
335      return (f.track_count * head + track) * compute_track_size(f);
336}
337
338const bbc_cpm_format::format bbc_cpm_format::formats[] =
339{
340   { // 400K 5 1/4 inch 80 track double sided single density - gaps unverified
341      floppy_image::FF_525, floppy_image::DSQD, floppy_image::FM,
342      4000, 5, 80, 2, 512, {}, 0, {}, 40, 10, 10
213343   },
214   { // 320K 3 1/2 inch 80 track single sided double density
215      floppy_image::FF_35, floppy_image::SSQD, floppy_image::MFM,
216      2000, 16, 80, 1, 256, {}, 0, {}, 60, 22, 43
344   { // 400k 5 1/4 inch 80 track double sided single density (interleaved) - gaps unverified
345      floppy_image::FF_525, floppy_image::DSQD, floppy_image::FM,
346      4000, 5, 80, 2, 512, {}, -1, { 0,1,2,3,4 }, 40, 10, 10
217347   },
218   { // 640K 3 1/2 inch 80 track double sided double density
219      floppy_image::FF_35, floppy_image::DSQD, floppy_image::MFM,
220      2000, 16, 80, 2, 256, {}, -1, { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 }, 60, 22, 43
348   { // 800K 5 1/4 inch 80 track double sided double density - gaps unverified
349      floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
350      2000, 10, 80, 2, 512, {}, 0, {}, 60, 22, 43
221351   },
222352   {}
223353};
224354
225
226const floppy_format_type FLOPPY_BBC_SSD_525_FORMAT = &floppy_image_format_creator<bbc_ssd_525_format>;
227const floppy_format_type FLOPPY_BBC_DSD_525_FORMAT = &floppy_image_format_creator<bbc_dsd_525_format>;
228const floppy_format_type FLOPPY_BBC_ADF_525_FORMAT = &floppy_image_format_creator<bbc_adf_525_format>;
229const floppy_format_type FLOPPY_BBC_ADF_35_FORMAT = &floppy_image_format_creator<bbc_adf_35_format>;
355const floppy_format_type FLOPPY_BBC_DFS_FORMAT = &floppy_image_format_creator<bbc_dfs_format>;
356const floppy_format_type FLOPPY_BBC_ADFS_FORMAT = &floppy_image_format_creator<bbc_adfs_format>;
357const floppy_format_type FLOPPY_BBC_DOS_FORMAT = &floppy_image_format_creator<bbc_dos_format>;
358const floppy_format_type FLOPPY_BBC_CPM_FORMAT = &floppy_image_format_creator<bbc_cpm_format>;
trunk/src/lib/formats/bbc_dsk.h
r249893r249894
1313#ifndef __BBC_DSK_H__
1414#define __BBC_DSK_H__
1515
16#include "flopimg.h"
1716#include "wd177x_dsk.h"
1817
19/**************************************************************************/
20
21LEGACY_FLOPPY_OPTIONS_EXTERN(bbc);
22
23/**************************************************************************/
24
25class bbc_ssd_525_format : public wd177x_format
18class bbc_dfs_format : public wd177x_format
2619{
2720public:
28   bbc_ssd_525_format();
21   bbc_dfs_format();
2922
3023   virtual int find_size(io_generic *io, UINT32 form_factor);
24   virtual int identify(io_generic *io, UINT32 form_factor);
25   virtual int get_image_offset(const format &f, int head, int track);
3126   virtual const char *name() const;
3227   virtual const char *description() const;
3328   virtual const char *extensions() const;
r249893r249894
3631   static const format formats[];
3732};
3833
39class bbc_dsd_525_format : public wd177x_format
34class bbc_adfs_format : public wd177x_format
4035{
4136public:
42   bbc_dsd_525_format();
37   bbc_adfs_format();
4338
4439   virtual int find_size(io_generic *io, UINT32 form_factor);
40   virtual int identify(io_generic *io, UINT32 form_factor);
41   virtual int get_image_offset(const format &f, int head, int track);
4542   virtual const char *name() const;
4643   virtual const char *description() const;
4744   virtual const char *extensions() const;
r249893r249894
5047   static const format formats[];
5148};
5249
53class bbc_adf_525_format : public wd177x_format
50class bbc_dos_format : public wd177x_format
5451{
5552public:
56   bbc_adf_525_format();
53   bbc_dos_format();
5754
55   virtual int find_size(io_generic *io, UINT32 form_factor);
56   virtual int identify(io_generic *io, UINT32 form_factor);
57   virtual int get_image_offset(const format &f, int head, int track);
5858   virtual const char *name() const;
5959   virtual const char *description() const;
6060   virtual const char *extensions() const;
r249893r249894
6363   static const format formats[];
6464};
6565
66class bbc_adf_35_format : public wd177x_format
66class bbc_cpm_format : public wd177x_format
6767{
6868public:
69   bbc_adf_35_format();
69   bbc_cpm_format();
7070
71   virtual int identify(io_generic *io, UINT32 form_factor);
72   virtual int get_image_offset(const format &f, int head, int track);
7173   virtual const char *name() const;
7274   virtual const char *description() const;
7375   virtual const char *extensions() const;
r249893r249894
7779};
7880
7981
80extern const floppy_format_type FLOPPY_BBC_SSD_525_FORMAT;
81extern const floppy_format_type FLOPPY_BBC_DSD_525_FORMAT;
82extern const floppy_format_type FLOPPY_BBC_ADF_525_FORMAT;
83extern const floppy_format_type FLOPPY_BBC_ADF_35_FORMAT;
82extern const floppy_format_type FLOPPY_BBC_DFS_FORMAT;
83extern const floppy_format_type FLOPPY_BBC_ADFS_FORMAT;
84extern const floppy_format_type FLOPPY_BBC_DOS_FORMAT;
85extern const floppy_format_type FLOPPY_BBC_CPM_FORMAT;
8486
8587#endif // __BBC_DSK_H__
trunk/src/lib/formats/camplynx_dsk.c
r0r249894
1// license:BSD-3-Clause
2// copyright-holders:Robbbert
3/*********************************************************************
4
5    formats/camplynx_dsk.c
6
7    Camputers Lynx disk image format
8
9    There is no inter-sector info on these disks. It is simply a
10    dump of the 512 bytes from each sector and track in order.
11
12    Extension is LDF as used by the Pale emulator
13
14    The disk is formatted with 512 bytes per sector, 10 sectors,
15    6040 bytes per track. 200KB disks are single sided 40 tracks.
16    800KB disks are double sided 80 tracks.
17
18    The numbers below are guesswork since there's no documentation.
19
20*********************************************************************/
21
22#include <assert.h>
23
24#include "formats/camplynx_dsk.h"
25
26camplynx_format::camplynx_format() : wd177x_format(formats)
27{
28}
29
30const char *camplynx_format::name() const
31{
32   return "camplynx";
33}
34
35const char *camplynx_format::description() const
36{
37   return "Camputers Lynx disk image";
38}
39
40const char *camplynx_format::extensions() const
41{
42   return "ldf";
43}
44
45const camplynx_format::format camplynx_format::formats[] = {
46   {   /*  200K 13cm double density single sided */
47      floppy_image::FF_525,  floppy_image::SSDD, floppy_image::MFM,
48      2000, 10, 40, 1, 512, {}, 1, {}, 100, 22, 30 // guesswork to stop it crashing
49   },
50   {   /*  800K 13cm quad density double sided */
51      floppy_image::FF_525,  floppy_image::DSQD, floppy_image::MFM,
52      2000, 10, 80, 2, 512, {}, 1, {}, 100, 22, 30 // guesswork to stop it crashing
53   },
54   {}
55};
56
57const floppy_format_type FLOPPY_CAMPLYNX_FORMAT = &floppy_image_format_creator<camplynx_format>;
trunk/src/lib/formats/camplynx_dsk.h
r0r249894
1// license:BSD-3-Clause
2// copyright-holders:Robbbert
3/*********************************************************************
4
5    formats/camplynx_dsk.h
6
7    Camputers Lynx disk image format
8
9*********************************************************************/
10
11#ifndef CAMPLYNX_DSK_H_
12#define CAMPLYNX_DSK_H_
13
14#include "wd177x_dsk.h"
15
16class camplynx_format : public wd177x_format {
17public:
18   camplynx_format();
19
20   virtual const char *name() const;
21   virtual const char *description() const;
22   virtual const char *extensions() const;
23
24private:
25   static const format formats[];
26};
27
28extern const floppy_format_type FLOPPY_CAMPLYNX_FORMAT;
29
30#endif
trunk/src/lib/util/corealloc.h
r249893r249894
8787#ifndef NO_MEM_TRACKING
8888// re-route classic malloc-style allocations
8989#undef malloc
90#undef calloc
9190#undef realloc
9291#undef free
9392
9493#define malloc(x)       malloc_file_line(x, __FILE__, __LINE__, true, false, false)
95#define calloc(x,y)     __error_use_auto_alloc_clear_or_global_alloc_clear_instead__
9694#define realloc(x,y)    __error_realloc_is_dangerous__
9795#define free(x)         free_file_line(x, __FILE__, __LINE__, true)
96
97#if !defined(_MSC_VER) || _MSC_VER < 1900 // < VS2015
98#undef calloc
99#define calloc(x,y)     __error_use_auto_alloc_clear_or_global_alloc_clear_instead__
98100#endif
99101
102#endif
103
100104#endif  /* __COREALLOC_H__ */
trunk/src/mame/arcade.lst
r249893r249894
45014501wbdeluxe        // (c) 1986 + Escape license (S1)
45024502wboysys2        // 834-5984  (c) 1986 + Escape license (S1)
45034503gardia          // 834-6119 (S2?)
4504gardiaj         //
45044505gardiab         // bootleg
45054506nob             // (c) Data East
45064507nobb            // bootleg
r249893r249894
53365337tfrceacb        // bootleg
53375338twinsqua        // (c) 1991 Sega
53385339soniccar        // (c) 1991 Sega
5340sonicpop
53395341ribbit          // (c) 1991 Sega
53405342tantr           // (c) 1992 Sega
53415343tantrkor        // (c) 1992 Sega
r249893r249894
1205212054aristmk5        // (c) 1995, USA platform set chips
1205312055swthrt2v        // (c) 1995
1205412056enchfrst        // (c) 1995
12057minemine        // (c) 1996
1205512058dolphntr        // (c) 1996
1205612059dolphtra        // (c) 1996
12057dmdtouch        // (c) 1997
12060dolphtre        // (c) 1996
12061cashcham        // (c) 1996
1205812062goldprmd        // (c) 1997
1205912063qotn            // (c) 1997
12064dmdtouch        // (c) 1997
12065wldcougr        // (c) 1997
12066bumblbug        // (c) 1997
12067pengpays        // (c) 1997
1206012068adonis          // (c) 1998
12069adonisa         // (c) 1998
1206112070reelrock        // (c) 1998
1206212071indiandr        // (c) 1998
12072chariotc        // (c) 1998
12073wtiger          // (c) 1999
12074bootsctn        // (c) 1999
12075cuckoo          // (c) 2000
1206312076magicmsk        // (c) 2000
12077magicmska       // (c) 2000
1206412078margmgc         // (c) 2000
1206512079geishanz        // (c) 2001
12066wtiger          // (c) 2001
12080adonise         // (c) 2001
12081partygrs        // (c) 2001
1206712082
1206812083// Aristocrat Mk6 hardware
1206912084aristmk6
r249893r249894
1317913194kas89           // 1989, SFC S.R.L.
1318013195caspoker        // 1987, PM / Beck Elektronik.
1318113196wildpkr         // 199?, TAB Austria.
13197subhuntr      // 1979 Model Racing
1318213198
1318313199manohman        // 199?, Merkur.
1318413200
trunk/src/mame/drivers/a2600.c
r249893r249894
1818#include "bus/vcs/vcs_slot.h"
1919#include "bus/vcs/rom.h"
2020#include "bus/vcs/dpc.h"
21#include "bus/vcs/dpcplus.h"
2122#include "bus/vcs/scharger.h"
2223#include "bus/vcs/compumat.h"
2324#include "bus/vcs_ctrl/ctrl.h"
r249893r249894
3839      m_tia(*this, "tia_video"),
3940      m_maincpu(*this, "maincpu"),
4041      m_screen(*this, "screen"),
41      m_swb(*this, "SWB")
42      m_swb(*this, "SWB"),
43      m_riot(*this,"riot")
4244   { }
4345
4446   required_shared_ptr<UINT8> m_riot_ram;
r249893r249894
5860   // investigate how the carts mapped here (Mapper JVP) interact with the RIOT device
5961   DECLARE_READ8_MEMBER(cart_over_riot_r);
6062   DECLARE_WRITE8_MEMBER(cart_over_riot_w);
63   DECLARE_READ8_MEMBER(cart_over_all_r);
64   DECLARE_WRITE8_MEMBER(cart_over_all_w);
6165
6266protected:
6367   required_device<vcs_control_port_device> m_joy1;
r249893r249894
6973   required_device<m6502_device> m_maincpu;
7074   required_device<screen_device> m_screen;
7175   required_ioport m_swb;
76   required_device<mos6532_t> m_riot;
7277};
7378
7479
r249893r249894
8893   // AM_RANGE(0x1000, 0x1fff) is cart data and it is configured at reset time, depending on the mounted cart!
8994ADDRESS_MAP_END
9095
96
97READ8_MEMBER(a2600_state::cart_over_all_r)
98{
99   if (!space.debugger_access())
100      m_cart->write_bank(space, offset, 0);
101
102   int masked_offset = offset &~ 0x0d00;
103   UINT8 ret = 0x00;
104
105   if (masked_offset < 0x80)
106   {
107      ret = m_tia->read(space, masked_offset&0x7f);
108   }
109   else if (masked_offset < 0x100)
110   {
111      ret = m_riot_ram[masked_offset & 0x7f];
112   }
113   /* 0x100 - 0x1ff already masked out */
114   else if (masked_offset < 0x280)
115   {
116      ret = m_tia->read(space, masked_offset&0x7f);
117   }
118   else if (masked_offset < 0x2a0)
119   {
120      ret = m_riot->io_r(space, masked_offset);
121   }
122   else if (masked_offset < 0x300)
123   {
124      /* 0x2a0 - 0x2ff nothing? */
125   }
126   /* 0x300 - 0x3ff already masked out */
127
128   return ret;
129}
130
131WRITE8_MEMBER(a2600_state::cart_over_all_w)
132{
133   m_cart->write_bank(space, offset, 0);
134
135   int masked_offset = offset &~ 0x0d00;
136
137   if (masked_offset < 0x80)
138   {
139      m_tia->write(space, masked_offset & 0x7f, data);
140   }
141   else if (masked_offset < 0x100)
142   {
143      m_riot_ram[masked_offset & 0x7f] = data;
144   }
145   /* 0x100 - 0x1ff already masked out */
146   else if (masked_offset < 0x280)
147   {
148      m_tia->write(space, masked_offset & 0x7f, data);
149   }
150   else if (masked_offset < 0x2a0)
151   {
152      m_riot->io_w(space, masked_offset, data);
153   }
154   else if (masked_offset < 0x300)
155   {
156      /* 0x2a0 - 0x2ff nothing? */
157   }
158   /* 0x300 - 0x3ff already masked out */
159}
160
91161WRITE8_MEMBER(a2600_state::switch_A_w)
92162{
93163   /* Left controller port */
r249893r249894
317387      case A26_CM:
318388         m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart));
319389         break;
390      case A26_X07:
391         m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
392         m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000, 0x0fff, read8_delegate(FUNC(a2600_state::cart_over_all_r), this), write8_delegate(FUNC(a2600_state::cart_over_all_w), this));
393         break;
394      case A26_DPCPLUS:
395         m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
396         break;
320397   }
321398
322399   /* Banks may have changed, reset the cpu so it uses the correct reset vector */
r249893r249894
450527   SLOT_INTERFACE_INTERNAL("a26_4in1",  A26_ROM_4IN1)
451528   SLOT_INTERFACE_INTERNAL("a26_8in1",  A26_ROM_8IN1)
452529   SLOT_INTERFACE_INTERNAL("a26_32in1", A26_ROM_32IN1)
530   SLOT_INTERFACE_INTERNAL("a26_x07",    A26_ROM_X07)
531   SLOT_INTERFACE_INTERNAL("a26_dpcplus",   A26_ROM_DPCPLUS)
453532SLOT_INTERFACE_END
454533
455534static MACHINE_CONFIG_FRAGMENT(a2600_cartslot)
trunk/src/mame/drivers/amiga.c
r249893r249894
18111811
18121812   MCFG_CDROM_ADD("cdrom")
18131813   MCFG_CDROM_INTERFACE("cd32_cdrom")
1814
1814   MCFG_SOFTWARE_LIST_ADD("cd_list", "cd32")
18151815   MCFG_DEVICE_REMOVE("kbd")
18161816MACHINE_CONFIG_END
18171817
trunk/src/mame/drivers/amstrad.c
r249893r249894
814814   SLOT_INTERFACE("smartwatch", CPC_SMARTWATCH)
815815   SLOT_INTERFACE("brunword4", CPC_BRUNWORD_MK4)
816816   SLOT_INTERFACE("hd20", CPC_HD20)
817   SLOT_INTERFACE("doubler", CPC_DOUBLER)
817818SLOT_INTERFACE_END
818819
819820SLOT_INTERFACE_START(cpc_exp_cards)
r249893r249894
830831   SLOT_INTERFACE("smartwatch", CPC_SMARTWATCH)
831832   SLOT_INTERFACE("brunword4", CPC_BRUNWORD_MK4)
832833   SLOT_INTERFACE("hd20", CPC_HD20)
834   SLOT_INTERFACE("doubler", CPC_DOUBLER)
833835SLOT_INTERFACE_END
834836
835837SLOT_INTERFACE_START(cpcplus_exp_cards)
r249893r249894
844846   SLOT_INTERFACE("playcity", CPC_PLAYCITY)
845847   SLOT_INTERFACE("smartwatch", CPC_SMARTWATCH)
846848   SLOT_INTERFACE("hd20", CPC_HD20)
849   SLOT_INTERFACE("doubler", CPC_DOUBLER)
847850SLOT_INTERFACE_END
848851
849852SLOT_INTERFACE_START(aleste_exp_cards)
r249893r249894
860863   SLOT_INTERFACE("smartwatch", CPC_SMARTWATCH)
861864   SLOT_INTERFACE("brunword4", CPC_BRUNWORD_MK4)
862865   SLOT_INTERFACE("hd20", CPC_HD20)
866   SLOT_INTERFACE("doubler", CPC_DOUBLER)
863867   SLOT_INTERFACE("magicsound", AL_MAGICSOUND)
864868SLOT_INTERFACE_END
865869
trunk/src/mame/drivers/apollo.c
r249893r249894
109109static UINT16 latch_page_on_parity_error_register = 0x0000;
110110static UINT16 master_req_register = 0x0000;
111111
112// DN3000: Node Id 1D117 at 0x9600 - 0x961f
113// DN3500: Node Id 2616D at 0x11200 - 0x1121f
114
115static UINT32 node_id = DEFAULT_NODE_ID;
116
117112static UINT32 ram_base_address;
118113static UINT32 ram_end_address;
119114
r249893r249894
211206}
212207
213208/***************************************************************************
214 apollo_get_node_id - get the node id
215 ***************************************************************************/
216
217UINT32 apollo_get_node_id(void) {
218   return node_id;
219}
220
221/***************************************************************************
222209  apollo_instruction_hook
223210  must be called by the CPU core before executing each instruction
224211***************************************************************************/
r249893r249894
352339}
353340
354341/***************************************************************************
355 DN3000/DN3500 Node Id PROM at 0x9600/0x11200
356 ***************************************************************************/
357
358WRITE16_MEMBER(apollo_state::apollo_node_id_w){
359   SLOG1(("Error: writing node id ROM at offset %02x = %04x & %04x", offset, data, mem_mask));
360}
361
362READ16_MEMBER(apollo_state::apollo_node_id_r){
363   UINT16 data;
364   switch (offset & 0x0f) {
365   case 1: // msb
366      data = (node_id >> 16) & 0xff;
367      break;
368   case 2:
369      data = (node_id >> 8) & 0xff;
370      break;
371   case 3: // lsb
372      data = node_id & 0xff;
373      break;
374   case 15: // checksum
375      data = ((node_id >> 16) + (node_id >> 8) + node_id) & 0xff;
376      break;
377   default:
378      data = 0;
379      break;
380   }
381   data <<= 8;
382   SLOG2(("reading node id ROM at offset %02x = %04x & %04x", offset, data, mem_mask));
383   return data;
384}
385
386/***************************************************************************
387342 DN3000/DN3500 Latch Page on Parity Error Register at 0x9300/0x11300
388343 ***************************************************************************/
389344
r249893r249894
576531   // Motorola CPU is MSB first, ISA Bus is LSB first
577532   UINT16 data = m_isa->io16_swap_r(space, isa_addr, mem_mask);
578533
579   SLOG2(("apollo_atbus_io_r at %08x -> %04x = %04x & %04x", offset*2, isa_addr*2, data, mem_mask));
534   SLOG2(("apollo_atbus_io_r at %08x -> %04x = %04x & %04x", ATBUS_IO_BASE + offset*2, isa_addr*2, data, mem_mask));
580535
581536   return data;
582537}
r249893r249894
585540{
586541   UINT32 isa_addr = (offset & 3) + ((offset & ~0x1ff) >> 7);
587542
588   SLOG2(("apollo_atbus_io_w at %08x -> %04x = %04x & %04x", offset*2, isa_addr*2, data, mem_mask));
543   SLOG2(("apollo_atbus_io_w at %08x -> %04x = %04x & %04x", ATBUS_IO_BASE + offset*2, isa_addr*2, data, mem_mask));
589544
590545   // Motorola CPU is MSB first, ISA Bus is LSB first
591546   m_isa->io16_swap_w(space, isa_addr, data, mem_mask);
r249893r249894
597552
598553READ16_MEMBER(apollo_state::apollo_atbus_memory_r)
599554{
555   UINT16 data;
556
600557   // Motorola CPU is MSB first, ISA Bus is LSB first
601   UINT16 data = m_isa->prog16_swap_r(space, offset, mem_mask);
558   data = m_isa->prog16_swap_r(space, offset, mem_mask);
602559
603   SLOG2(("apollo_atbus_memory_r at %08x = %04x & %04x", offset*2, data, mem_mask));
604
560   SLOG2(("apollo_atbus_memory_r at %08x = %04x & %04x", ATBUS_MEMORY_BASE + offset * 2, data, mem_mask));
605561   return data;
606562}
607563
608564WRITE16_MEMBER(apollo_state::apollo_atbus_memory_w)
609565{
610   SLOG2(("apollo_atbus_memory_w at %08x = %04x & %04x", offset*2, data, mem_mask));
566   SLOG2(("apollo_atbus_memory_w at %08x = %04x & %04x", ATBUS_MEMORY_BASE + offset*2, data, mem_mask));
611567
612568   // Motorola CPU is MSB first, ISA Bus is LSB first
613569   m_isa->prog16_swap_w(space, offset, data, mem_mask);
614570}
615571
616572/***************************************************************************
573 DN3000/DN3500 AT Bus unmapped read/write
574 ***************************************************************************/
575
576READ16_MEMBER(apollo_state::apollo_atbus_unmap_io_r)
577{
578   // ISA bus has 0xff for unmapped addresses
579   UINT16 data = 0xffff;
580   UINT32 isa_addr = (offset & 3) + ((offset & ~0x1ff) >> 7);
581   SLOG1(("apollo_atbus_unmap_io_r at %08x -> %04x = %04x & %04x", ATBUS_IO_BASE + offset*2, isa_addr*2, data, mem_mask));
582   return data;
583}
584
585WRITE16_MEMBER(apollo_state::apollo_atbus_unmap_io_w)
586{
587   UINT32 isa_addr = (offset & 3) + ((offset & ~0x1ff) >> 7);
588   SLOG1(("apollo_atbus_unmap_io_w at %08x -> %04x = %04x & %04x", ATBUS_IO_BASE + offset*2, isa_addr*2, data, mem_mask));
589}
590
591READ8_MEMBER(apollo_state::apollo_atbus_unmap_r)
592{
593   // ISA bus has 0xff for unmapped addresses
594   UINT8 data = 0xff;
595   SLOG2(("apollo_atbus_unmap_r at %08x = %02x & %02x", ATBUS_MEMORY_BASE + offset, data, mem_mask));
596   return data;
597}
598
599WRITE8_MEMBER(apollo_state::apollo_atbus_unmap_w)
600{
601   SLOG1(("apollo_atbus_unmap_w at %08x = %02x & %02x", ATBUS_MEMORY_BASE + offset, data, mem_mask));
602}
603
604/***************************************************************************
617605 DN5500 Memory Present Register at 0x11400-0x114ff
618606 Strange: documented but not used
619607 ***************************************************************************/
r249893r249894
697685      AM_RANGE(0x010d00, 0x010dff) AM_READWRITE8(/*"dma2",*/apollo_dma_2_r, apollo_dma_2_w, 0xffffffff )
698686      AM_RANGE(0x011000, 0x0110ff) AM_DEVREADWRITE8(APOLLO_PIC1_TAG, pic8259_device, read, write, 0xffffffff)
699687      AM_RANGE(0x011100, 0x0111ff) AM_DEVREADWRITE8(APOLLO_PIC2_TAG, pic8259_device, read, write, 0xffffffff)
700      AM_RANGE(0x011200, 0x0112ff) AM_READWRITE16(apollo_node_id_r, apollo_node_id_w, 0xffffffff)
688      AM_RANGE(0x011200, 0x0112ff) AM_DEVREADWRITE16(APOLLO_NI_TAG, apollo_ni, read, write, 0xffffffff)
701689      AM_RANGE(0x011300, 0x0113ff) AM_READWRITE16(latch_page_on_parity_error_register_r, latch_page_on_parity_error_register_w, 0xffffffff )
702690      AM_RANGE(0x011600, 0x0116ff) AM_READWRITE8(master_req_register_r, master_req_register_w, 0xffffffff)
703691
r249893r249894
741729      AM_RANGE(0x010d00, 0x010dff) AM_READWRITE8(/*"dma2",*/apollo_dma_2_r, apollo_dma_2_w, 0xffffffff )
742730      AM_RANGE(0x011000, 0x0110ff) AM_DEVREADWRITE8(APOLLO_PIC1_TAG, pic8259_device, read, write, 0xffffffff)
743731      AM_RANGE(0x011100, 0x0111ff) AM_DEVREADWRITE8(APOLLO_PIC2_TAG, pic8259_device, read, write, 0xffffffff)
744      AM_RANGE(0x011200, 0x0112ff) AM_READWRITE16(apollo_node_id_r, apollo_node_id_w, 0xffffffff)
732      AM_RANGE(0x011200, 0x0112ff) AM_DEVREADWRITE16(APOLLO_NI_TAG, apollo_ni, read, write, 0xffffffff)
745733      AM_RANGE(0x011300, 0x0113ff) AM_READWRITE16(latch_page_on_parity_error_register_r, latch_page_on_parity_error_register_w, 0xffffffff )
746734      AM_RANGE(0x011600, 0x0116ff) AM_READWRITE8(master_req_register_r, master_req_register_w, 0xffffffff)
747735
r249893r249894
772760      AM_RANGE(0x009300, 0x0093ff) AM_READWRITE16(latch_page_on_parity_error_register_r, latch_page_on_parity_error_register_w, 0xffffffff )
773761      AM_RANGE(0x009400, 0x0094ff) AM_DEVREADWRITE8(APOLLO_PIC1_TAG, pic8259_device, read, write, 0xffffffff)
774762      AM_RANGE(0x009500, 0x0095ff) AM_DEVREADWRITE8(APOLLO_PIC2_TAG, pic8259_device, read, write, 0xffffffff)
775      AM_RANGE(0x009600, 0x0096ff) AM_READWRITE16(apollo_node_id_r, apollo_node_id_w, 0xffffffff)
763      AM_RANGE(0x009600, 0x0096ff) AM_DEVREADWRITE16(APOLLO_NI_TAG, apollo_ni, read, write, 0xffffffff)
776764
777765      AM_RANGE(0x05d800, 0x05dc07) AM_DEVREADWRITE8(APOLLO_SCREEN_TAG, apollo_graphics_15i, apollo_mcr_r, apollo_mcr_w, 0xffffffff)
778766      AM_RANGE(0xfa0000, 0xfdffff) AM_DEVREADWRITE16(APOLLO_SCREEN_TAG, apollo_graphics_15i, apollo_mgm_r, apollo_mgm_w, 0xffffffff)
r249893r249894
806794      AM_RANGE(0x009300, 0x0093ff) AM_READWRITE16(latch_page_on_parity_error_register_r, latch_page_on_parity_error_register_w, 0xffffffff )
807795      AM_RANGE(0x009400, 0x0094ff) AM_DEVREADWRITE8(APOLLO_PIC1_TAG, pic8259_device, read, write, 0xffffffff)
808796      AM_RANGE(0x009500, 0x0095ff) AM_DEVREADWRITE8(APOLLO_PIC2_TAG, pic8259_device, read, write, 0xffffffff)
809      AM_RANGE(0x009600, 0x0096ff) AM_READWRITE16(apollo_node_id_r, apollo_node_id_w, 0xffffffff)
797      AM_RANGE(0x009600, 0x0096ff) AM_DEVREADWRITE16(APOLLO_NI_TAG, apollo_ni, read, write, 0xffffffff)
810798
811799      AM_RANGE(ATBUS_IO_BASE, ATBUS_IO_END) AM_READWRITE16(apollo_atbus_io_r, apollo_atbus_io_w, 0xffffffff)
812800
r249893r249894
835823      AM_RANGE(0x010d00, 0x010dff) AM_READWRITE8(/*"dma2",*/apollo_dma_2_r, apollo_dma_2_w, 0xffffffff )
836824      AM_RANGE(0x011000, 0x0110ff) AM_DEVREADWRITE8(APOLLO_PIC1_TAG, pic8259_device, read, write, 0xffffffff)
837825      AM_RANGE(0x011100, 0x0111ff) AM_DEVREADWRITE8(APOLLO_PIC2_TAG, pic8259_device, read, write, 0xffffffff)
838      AM_RANGE(0x011200, 0x0112ff) AM_READWRITE16(apollo_node_id_r, apollo_node_id_w, 0xffffffff)
826      AM_RANGE(0x011200, 0x0112ff) AM_DEVREADWRITE16(APOLLO_NI_TAG, apollo_ni, read, write, 0xffffffff)
839827      AM_RANGE(0x011300, 0x0113ff) AM_READWRITE16(latch_page_on_parity_error_register_r, latch_page_on_parity_error_register_w, 0xffffffff )
840828      AM_RANGE(0x011400, 0x0114ff) AM_READWRITE8(dn5500_memory_present_register_r, dn5500_memory_present_register_w, 0xffffffff )
841829      AM_RANGE(0x011500, 0x0115ff) AM_READWRITE8(dn5500_11500_r, dn5500_11500_w, 0xffffffff )
r249893r249894
882870      AM_RANGE(0x010d00, 0x010dff) AM_READWRITE8(/*"dma2",*/apollo_dma_2_r, apollo_dma_2_w, 0xffffffff )
883871      AM_RANGE(0x011000, 0x0110ff) AM_DEVREADWRITE8(APOLLO_PIC1_TAG, pic8259_device, read, write, 0xffffffff)
884872      AM_RANGE(0x011100, 0x0111ff) AM_DEVREADWRITE8(APOLLO_PIC2_TAG, pic8259_device, read, write, 0xffffffff)
885      AM_RANGE(0x011200, 0x0112ff) AM_READWRITE16(apollo_node_id_r, apollo_node_id_w, 0xffffffff)
873      AM_RANGE(0x011200, 0x0112ff) AM_DEVREADWRITE16(APOLLO_NI_TAG, apollo_ni, read, write, 0xffffffff)
886874      AM_RANGE(0x011300, 0x0113ff) AM_READWRITE16(latch_page_on_parity_error_register_r, latch_page_on_parity_error_register_w, 0xffffffff )
887875      AM_RANGE(0x011400, 0x0114ff) AM_READWRITE8(dn5500_memory_present_register_r, dn5500_memory_present_register_w, 0xffffffff )
888876      AM_RANGE(0x011500, 0x0115ff) AM_READWRITE8(dn5500_11500_r, dn5500_11500_w, 0xffffffff )
r249893r249894
909897
910898void apollo_state::machine_reset()
911899{
912   //MLOG1(("machine_reset_dn3500"));
900   MLOG1(("machine_reset"));
913901
914902   MACHINE_RESET_CALL_MEMBER(apollo);
915903
916   // we can't do this any more
917   #if 0
904#ifdef APOLLO_XXL
918905   // set configuration
919906   omti8621_device::set_verbose(apollo_config(APOLLO_CONF_DISK_TRACE));
920907   threecom3c505_device::set_verbose(apollo_config(APOLLO_CONF_NET_TRACE));
921908
922909   if (apollo_config(APOLLO_CONF_NODE_ID))
923910   {
924      UINT8 db[0x50];
925      UINT16 sector1 = apollo_is_dn5500() ? 4 : 1;
926
927      // check label of physical volume and get sector data of logical volume 1
928      // Note: sector data starts with 32 byte block header
929      if (omti8621_get_sector(machine().device(APOLLO_WDC_TAG), 0, db,    sizeof(db), 0) == sizeof(db) &&
930         memcmp (db+0x22, "APOLLO", 6) == 0 &&
931         omti8621_get_sector(machine().device(APOLLO_WDC_TAG), sector1, db,  sizeof(db), 0) == sizeof(db))
932      {
933         // set node_id from UID of logical volume 1 of logical unit 0
934         node_id = (((db[0x49] << 8) | db[0x4a]) << 8) | db[0x4b];
935
936         MLOG2(("machine_reset_dn3500: node ID is %06X (from disk)", node_id));
937      }
911      // set node ID from UID of logical volume 1 of logical unit 0
912      m_node_id->set_node_id_from_disk();
938913   }
939   #endif
914#endif
940915
941916   m_maincpu->set_instruction_hook(read32_delegate(FUNC(apollo_state::apollo_instruction_hook),this));
942917}
r249893r249894
955930   {
956931      machine().device(APOLLO_SCREEN_TAG)->reset();
957932      machine().device(APOLLO_KBD_TAG )->reset();
933#ifdef APOLLO_XXL
934      machine().device(APOLLO_STDIO_TAG )->reset();
935#endif
958936   }
959937}
960938
r249893r249894
970948   memset(messram->ptr(), 0x55, messram->bytes());
971949
972950   MACHINE_START_CALL_MEMBER(apollo);
951
952   // install nop handlers for unmapped ISA bus addresses
953   m_isa->install16_device(0, ATBUS_IO_END, 0, 0, read16_delegate(FUNC(apollo_state::apollo_atbus_unmap_io_r), this), write16_delegate(FUNC(apollo_state::apollo_atbus_unmap_io_w), this));
954   m_isa->install_memory(0, ATBUS_MEMORY_END, 0, 0, read8_delegate(FUNC(apollo_state::apollo_atbus_unmap_r), this), write8_delegate(FUNC(apollo_state::apollo_atbus_unmap_w), this));
973955}
974956
975957/***************************************************************************
r249893r249894
10781060   MCFG_RAM_ADD("messram")
10791061   MCFG_RAM_DEFAULT_SIZE("8M")
10801062   MCFG_RAM_EXTRA_OPTIONS("4M,8M,16M,32M")
1063
1064#ifdef APOLLO_XXL
1065   MCFG_DEVICE_ADD(APOLLO_STDIO_TAG, APOLLO_STDIO, 0)
1066   MCFG_APOLLO_STDIO_TX_CALLBACK(DEVWRITELINE(APOLLO_SIO_TAG, apollo_sio, rx_b_w))
1067#endif
10811068MACHINE_CONFIG_END
10821069
10831070static MACHINE_CONFIG_START( dsp3500, apollo_state )
r249893r249894
12201207   // Note: this duplicates boot rom md7c-rev-8.00-1989-08-16-17-23-52.bin
12211208   ROM_SYSTEM_BIOS( 0, "md7c-rev-8.00", "MD7C REV 8.00, 1989/08/16.17:23:52" )
12221209   ROMX_LOAD( "3500_boot_12191_7.bin", 0x00000, 0x10000, CRC(3132067d) SHA1(36f3c83d9f2df42f2537b09ca2f051a8c9dfbfc2) , ROM_BIOS(1) )
1223
1224   ROM_LOAD_OPTIONAL( "3000_3c505_010728-00.bin", 0x80000, 0x02000, CRC(69b77ec6) SHA1(7ac36cc6fc90b90ddfc56c45303b514cbe18ae58) )
12251210ROM_END
12261211
12271212ROM_START( dn5500 )
r249893r249894
12301215
12311216   ROM_SYSTEM_BIOS( 0, "md7c-rev-8.00", "MD7C REV 8.00, 1989/08/16.17:23:52" )
12321217   ROMX_LOAD( "5500_boot_a1631-80046_1-30-92.bin", 0x00000, 0x10000, CRC(7b9ed610) SHA1(7315a884ec4551c44433c6079cc06509223cb02b) , ROM_BIOS(1) )
1233
1234   ROM_LOAD_OPTIONAL( "3000_3c505_010728-00.bin", 0x80000, 0x02000, CRC(69b77ec6) SHA1(7ac36cc6fc90b90ddfc56c45303b514cbe18ae58) )
12351218ROM_END
12361219
12371220ROM_START( dn3000)
r249893r249894
12391222
12401223   ROM_SYSTEM_BIOS( 0, "md8-rev-7.0", "MD8 REV 7.0, 1988/08/16.15:14:39" )
12411224   ROMX_LOAD( "3000_boot_8475_7.bin",  0x00000, 0x08000, CRC(0fe2d471) SHA1(6c383d2266719a3d069b7bf015f6945179395e7a), ROM_BIOS(1) )
1242
1243   ROM_LOAD_OPTIONAL( "3000_3c505_010728-00.bin", 0x80000, 0x02000, CRC(69b77ec6) SHA1(7ac36cc6fc90b90ddfc56c45303b514cbe18ae58) )
12441225ROM_END
12451226
12461227#define rom_dsp3500    rom_dn3500
trunk/src/mame/drivers/apple2.c
r249893r249894
324324{
325325   int scanline = param;
326326
327   if((scanline % 8) == 0)
328      machine().first_screen()->update_partial(machine().first_screen()->vpos());
329
330327   // update the video system's shadow copy of the system config at the end of the frame
331328   if (scanline == 192)
332329   {
r249893r249894
450447         break;
451448
452449      case 0x50:  // graphics mode
450         machine().first_screen()->update_now();
453451         m_video->m_graphics = true; break;
454452
455453      case 0x51:  // text mode
454         machine().first_screen()->update_now();
456455         m_video->m_graphics = false; break;
457456
458457      case 0x52:  // no mix
458         machine().first_screen()->update_now();
459459         m_video->m_mix = false; break;
460460
461461      case 0x53:  // mixed mode
462         machine().first_screen()->update_now();
462463         m_video->m_mix = true; break;
463464
464465      case 0x54:  // set page 1
466         machine().first_screen()->update_now();
465467         m_page2 = false;
466468         m_video->m_page2 = false;
467469         break;
468470
469471      case 0x55:  // set page 2
472         machine().first_screen()->update_now();
470473         m_page2 = true;
471474         m_video->m_page2 = true;
472475         break;
473476
474477      case 0x56: // select lo-res
478         machine().first_screen()->update_now();
475479         m_video->m_hires = false; break;
476480
477481      case 0x57: // select hi-res
482         machine().first_screen()->update_now();
478483         m_video->m_hires = true; break;
479484
480485      case 0x58: // AN0 off
trunk/src/mame/drivers/apple2e.c
r249893r249894
779779{
780780   int scanline = param;
781781
782   if((scanline % 8) == 0)
783   {
784      machine().first_screen()->update_partial(machine().first_screen()->vpos());
785   }
786
787782   if (m_isiic)
788783   {
789784      update_iic_mouse();
r249893r249894
11011096         switch (offset)
11021097         {
11031098            case 0x5e:  // SETDHIRES
1099               machine().first_screen()->update_now();
11041100               m_video->m_dhires = true;
11051101               break;
11061102
11071103            case 0x5f:  // CLRDHIRES
1104               machine().first_screen()->update_now();
11081105               m_video->m_dhires = false;
11091106               break;
11101107         }
r249893r249894
11551152         break;
11561153
11571154      case 0x50:  // graphics mode
1158         m_video->m_graphics = true; break;
1155         machine().first_screen()->update_now();
1156         m_video->m_graphics = true;
1157         break;
11591158
11601159      case 0x51:  // text mode
1161         m_video->m_graphics = false; break;
1160         machine().first_screen()->update_now();
1161         m_video->m_graphics = false;
1162         break;
11621163
11631164      case 0x52:  // no mix
1164         m_video->m_mix = false; break;
1165         machine().first_screen()->update_now();
1166         m_video->m_mix = false;
1167         break;
11651168
11661169      case 0x53:  // mixed mode
1167         m_video->m_mix = true; break;
1170         machine().first_screen()->update_now();
1171         m_video->m_mix = true;
1172         break;
11681173
11691174      case 0x54:  // set page 1
1175         machine().first_screen()->update_now();
11701176         m_page2 = false;
11711177         m_video->m_page2 = false;
11721178         auxbank_update();
11731179         break;
11741180
11751181      case 0x55:  // set page 2
1182         machine().first_screen()->update_now();
11761183         m_page2 = true;
11771184         m_video->m_page2 = true;
11781185         auxbank_update();
11791186         break;
11801187
11811188      case 0x56: // select lo-res
1189         machine().first_screen()->update_now();
11821190         m_video->m_hires = false;
11831191         auxbank_update();
11841192         break;
11851193
11861194      case 0x57: // select hi-res
1195         machine().first_screen()->update_now();
11871196         m_video->m_hires = true;
11881197         auxbank_update();
11891198         break;
trunk/src/mame/drivers/aristmk5.c
r249893r249894
11// license:BSD-3-Clause
22// copyright-holders:David Haywood, Palindrome
3/*
3/****************************************************************************************************************
44
55    Aristocrat MK5 / MKV hardware
66    possibly 'Acorn Archimedes on a chip' hardware
77
88    Note: ARM250 mapping is not identical to plain AA
99
10    BIOS ROMs are actually nowhere to be found on a regular MK5 system. They can be used to change the system configurations on a PCB board
11    by swapping them with the game ROMs u7/u11 locations.
10    BIOS ROMs are actually nowhere to be found on a regular MK5 system. They can be used
11    to change the system configurations on a PCB board by swapping them with the game ROMs
12    u7/u11 locations.
1213
1314    TODO (MK-5 specific):
1415    - Fix remaining errors
1516    - If all tests passes, this msg is printed on the keyboard serial port:
16    "System Startup Code Entered \n Gos_create could not allocate stack for the new process \n Unrecoverable error occurred. System will now restart"
17    "System Startup Code Entered \n Gos_create could not allocate stack for the new process \n
18    Unrecoverable error occurred. System will now restart"
1719    Apparently it looks like some sort of protection device ...
1820
1921    code DASMing of POST (adonis):
r249893r249894
4951        bp 3400640: checks 2MByte DRAM
5052            - writes from 0x1000 to 0x100000, with 0x400 bytes index increment and 0xfb data increment
5153            - writes from 0x100000 to 0x200000, with 0x400 bytes index increment and 0xfb data increment
52            - bp 3400720 checks if the aforementioned checks are ok (currently fails at the very first work RAM check at 0x1000, it returns the
53              value that actually should be at 0x141000)
54            - bp 3400720 checks if the aforementioned checks are ok (currently fails at the very first work RAM check
55              at 0x1000, it returns the value that actually should be at 0x141000)
5456        bp 340064c: if R0 == 0 2MB DRAM is ok, otherwise there's an error
5557
5658    set chip (BIOS):
5759        same as goldprmd (serial + ext video crystal check)
5860        bp 3400110: External Video Crystal test
5961
60*/
62*****************************************************************************************************************
6163
64  MKV S2 Mainboard, PCB Layout:
65
66  +--------------------------------------------------------------------------------------------------------+
67  |   |    96-pin male connector     |  |    96-pin male connector     |  |    96-pin male connector     | |
68  |   +------------------------------+  +------------------------------+  +------------------------------+ |
69  |            +---+       +--+                                                          +---+ +---+ +---+ |
70  +-+          |VR1|       |  |U89              +------+        +------+                 |AA | |AB | |AC | |
71  | |          |   |       |  |                 |AMP   |        |U35   |                 +---+ +---+ +---+ |
72  |S|          |   |       |  |                 +------+        +------+                 +---+ +---+ +---+ |
73  |I|          +---+       +--+ +--+                                                     |U46| |U21| |U66| |
74  |M|                           |  |U52                  ARISTOCRAT                      +---+ +---+ +---+ |
75  |M|                    +----+ |  |                     MKV S2 MAINBOARD                   +------------+ |
76  | |    +---------+     |U47 | |  |                     PCB 0801-410091                    | 3V BATTERY | |
77  |S|    |U72      |     +----+ +--+                     ASSY 2501-410389                   |            | |
78  |O|    |         |       +-----+                       ISSUE A01                          +------------+ |
79  |C|    |         |       |U23  |                                                                  +----+ |
80  |K|    |         |       |     |                                                                  |U53 | |
81  |E|    +---------+       +-----+       +------------+                                             +----+ |
82  |T|                                    |U85         |    +----+ +----+ +--+ +--+ +----+ +----+ +--+ +--+ |
83  | |    +---------+                     |            |    |U58 | |U54 | |U | |U | |U59 | |U61 | |U | |U | |
84  | |    |U71      |                     |    CPU     |    +----+ +----+ |1 | |4 | +----+ +----+ |1 | |4 | |
85  | |    |         |                     |            |           +----+ |4 | |8 |  +------+     |5 | |9 | |
86  | |    |         |  +-----+            |            |           |U56 | |9 | |  |  |U36   |     |2 | |  | |
87  | |    |         |  |U65  |            |            |           +----+ +--+ +--+  |      |     +--+ +--+ |
88  | |    +---------+  |     |            +------------+                             +------+               |
89  | |                 +-----+     +-----+ +---+                                                            |
90  +-+    +---+                    |U73  | |X2 |                    +----------------+   +----------------+ |
91  |      |U26|                    |     | +---+   +---+            |U14             |   |U10             | |
92  |      +---+                    +-----+         |U50|            |                |   |                | |
93  |      |U27|                       +-----+      +---+            +----------------+   +----------------+ |
94  |      +---+                       |U5   |      |U40|            |U13             |   |U9              | |
95  |                                  |     |      +---+            |                |   |                | |
96  |                                  +-----+      |U41|            +----------------+   +----------------+ |
97  |                                               +---+            |U12             |   |U8              | |
98  |          +---+                                                 |                |   |                | |
99  |          |VR2|                         +-----+         +-----+ +----------------+   +----------------+ |
100  |          |   |                         |U24  |         |U22  | |U11             |   |U7              | |
101  |          |   |                         |     |         |     | |                |   |                | |
102  |          |   |                         +-----+         +-----+ +----------------+   +----------------+ |
103  |          +---+                                            +----------------------------------+         |
104  |                                                           |     96-pin female connector      |         |
105  +--------------------------------------------------------------------------------------------------------+
106
107  U5: 48 MHz crystal (unpopulated from factory).
108
109  U7:  27C4096 ROM socket (bank 0).
110  U8:  27C4096 ROM socket (bank 1).
111  U9:  27C4096 ROM socket (bank 2).
112  U10: 27C4096 ROM socket (bank 3).
113
114  U11: 27C4096 ROM socket (bank 0).
115  U12: 27C4096 ROM socket (bank 1).
116  U13: 27C4096 ROM socket (bank 2).
117  U14: 27C4096 ROM socket (bank 3).
118
119  U21: NEC D43256BGU-70LL (32k x 8bit CMOS Static RAM).
120  U22: LATTICE GAL20V8B-15LJ (High Performance E2CMOS PLD Generic Array Logic, 28-Lead PLCC).
121  U23: LATTICE GAL16V8D-25LJ (High Performance E2CMOS PLD Generic Array Logic, 20-Lead PLCC).
122  U24: LATTICE GAL16V8D-25LJ (High Performance E2CMOS PLD Generic Array Logic, 20-Lead PLCC).
123  U26: SGS THOMSON ST93C46 (1K (64 x 16 or 128 x 8) Serial EEPROM).
124  U27: SGS THOMSON ST93C46 (1K (64 x 16 or 128 x 8) Serial EEPROM).
125
126  U35: PHILIPS 74HC2...
127  U36: LATTICE GAL20V8B-15LJ (High Performance E2CMOS PLD Generic Array Logic, 28-Lead PLCC).
128  U40: Dallas Semiconductor DS1202S (Serial Timekeeping Chip).
129  U41: Maxim Integrated MAX705CSA (MPU Supervisory Circuits).
130  U46: NEC D43256BGU-70LL (32k x 8bit CMOS Static RAM).
131  U47: Maxim Integrated MAX202CWE (RS-232 Interface IC).
132  U48: ISSI IS41C16257-60K (256K x 16bit (4-MBIT) Dynamic RAM With Fast Page Mode).
133  U49: ISSI IS41C16257-60K (256K x 16bit (4-MBIT) Dynamic RAM With Fast Page Mode).
134  U50: Dallas Semiconductor DS1620 (Digital Thermometer and Thermostat).
135  U52: Allegro MicroSystems UDN2543B (Protected quad power driver).
136  U53: SGS THOMSON 74HC244 (Octal buffer/line driver, 3-state).
137  U54: Motorola AC244 (Octal Buffer/Line Driver with 3-State Outputs).
138  U56: SGS THOMSON 74HC244 (Octal buffer/line driver, 3-state).
139  U58: Motorola AC244 (Octal Buffer/Line Driver with 3-State Outputs).
140  U59: Motorola AC244 (Octal Buffer/Line Driver with 3-State Outputs).
141  U61: Motorola AC244 (Octal Buffer/Line Driver with 3-State Outputs).
142  U65: LATTICE GAL20V8B-15LJ (High Performance E2CMOS PLD Generic Array Logic, 28-Lead PLCC).
143  U66: NEC D43256BGU-70LL (32k x 8bit CMOS Static RAM).
144  U71: Texas Instruments TL16C452FN (UART Interface IC Dual UART w/Prl Port & w/o FIFO).
145  U72: Texas Instruments TL16C452FN (UART Interface IC Dual UART w/Prl Port & w/o FIFO).
146  U73: CX0826 72 MHz crystal.
147  U89: Allegro MicroSystems UDN2543B (Protected quad power driver).
148  U149: ISSI IS41C16257-60K (256K x 16bit (4-MBIT) Dynamic RAM With Fast Page Mode).
149  U152: ISSI IS41C16257-60K (256K x 16bit (4-MBIT) Dynamic RAM With Fast Page Mode).
150
151  AA:  SGS THOMSON 74HC244 (Octal buffer/line driver, 3-state).
152  AB:  SGS THOMSON 74HC244 (Octal buffer/line driver, 3-state).
153  AC:  PHILIPS 74HC245D (Octal bus transceiver, 3-state).
154
155  AMP: TDA 2006 (12W Audio Amplifier).
156
157  VR1: Motorola 7805 (3-Terminal 1A Positive Voltage Regulator).
158  VR2: SGS THOMSON L4975A (5A stepdown monolithic power switching regulator at 5.1V-40V).
159
160  X2:  Unpopulated crystal (from factory).
161
162*****************************************************************************************************************/
163
164#define MASTER_CLOCK        XTAL_72MHz      /* confirmed */
165
62166#include "emu.h"
63167#include "cpu/arm/arm.h"
64168#include "sound/dac.h"
r249893r249894
418522
419523
420524static MACHINE_CONFIG_START( aristmk5, aristmk5_state )
421   MCFG_CPU_ADD("maincpu", ARM, 12000000)
525   MCFG_CPU_ADD("maincpu", ARM, MASTER_CLOCK/6)   // 12000000
422526   MCFG_CPU_PROGRAM_MAP(aristmk5_drame_map)
423527   MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(2))  /* 1.6 - 2 seconds */
424528
r249893r249894
464568MACHINE_CONFIG_END
465569
466570static MACHINE_CONFIG_START( aristmk5_usa, aristmk5_state )
467   MCFG_CPU_ADD("maincpu", ARM, 12000000)
571   MCFG_CPU_ADD("maincpu", ARM, MASTER_CLOCK/6)   // 12000000
468572   MCFG_CPU_PROGRAM_MAP(aristmk5_map)
469573   MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(2))  /* 1.6 - 2 seconds */
470574
r249893r249894
648752   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
649753ROM_END
650754
755// 0200751V - 10 Credit Multiplier / 20 Line Multiline.
756// ADONIS - NSW/ACT A - 25/05/98  Revision: 10  602/9.
651757ROM_START( adonis )
652758   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
653759   ROM_LOAD32_WORD( "0200751v.u7",  0x000000, 0x80000, CRC(ab386ab0) SHA1(56c5baea4272866a9fe18bdc371a49f155251f86) )
r249893r249894
660766   ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
661767
662768   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
769
770   ROM_REGION( 0x100, "eeproms", 0 )
771   ROM_LOAD( "st93c46.u26", 0x0000, 0x0080, NO_DUMP )
772   ROM_LOAD( "st93c46.u27", 0x0080, 0x0080, NO_DUMP )
773
774   ROM_REGION( 0x0005, "plds", 0 )
775   ROM_LOAD( "gal20v8b.u22", 0x0000, 0x0001, NO_DUMP ) /* 28-Lead PLCC package. Unable to read */
776   ROM_LOAD( "gal16v8d.u23", 0x0000, 0x0001, NO_DUMP ) /* 20-Lead PLCC package. Unable to read */
777   ROM_LOAD( "gal16v8d.u24", 0x0000, 0x0001, NO_DUMP ) /* 20-Lead PLCC package. Unable to read */
778   ROM_LOAD( "gal20v8b.u36", 0x0000, 0x0001, NO_DUMP ) /* 28-Lead PLCC package. Unable to read */
779   ROM_LOAD( "gal20v8b.u65", 0x0000, 0x0001, NO_DUMP ) /* 28-Lead PLCC package. Unable to read */
663780ROM_END
664781
782// 0100751V - 10 Credit Multiplier / 20 Line Multiline.
783// ADONIS - NSW/ACT A - 25/05/98  Revision: 9  602/9.
784ROM_START( adonisa )
785   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
786   ROM_LOAD32_WORD( "0100751v.u7",  0x000000, 0x80000, CRC(ca3e97db) SHA1(bd0a4402e57891899d92ea85a87fb8925a44f706) )
787   ROM_LOAD32_WORD( "0100751v.u11", 0x000002, 0x80000, CRC(cfe3f792) SHA1(aa1bf77101404c2018a5e5b808f1d683e29ae942) )
788   ROM_LOAD32_WORD( "0100751v.u8",  0x100000, 0x80000, CRC(d55204bd) SHA1(208c089d435ea4af25d0b9b3d5e79fea397bc885) )
789   ROM_LOAD32_WORD( "0100751v.u12", 0x100002, 0x80000, CRC(77090858) SHA1(76ebc15b26f378ac95276f0aa26d077e3646a6f1) )
790
791   ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
792
793   ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
794
795   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
796
797   ROM_REGION( 0x100, "eeproms", 0 )
798   ROM_LOAD( "st93c46.u27", 0x0000, 0x0080, CRC(115c305a) SHA1(684a70d74ec92564e17c4292cd357e603842c485) )
799   ROM_LOAD( "st93c46.u26", 0x0080, 0x0080, CRC(652d544c) SHA1(cd5bd20e9a0f22d7367cc169e2844a02751c7c91) )   // blank... all 0xff's
800
801   ROM_REGION( 0x0005, "plds", 0 )
802   ROM_LOAD( "gal20v8b.u22", 0x0000, 0x0001, NO_DUMP ) /* 28-Lead PLCC package. Unable to read */
803   ROM_LOAD( "gal16v8d.u23", 0x0000, 0x0001, NO_DUMP ) /* 20-Lead PLCC package. Unable to read */
804   ROM_LOAD( "gal16v8d.u24", 0x0000, 0x0001, NO_DUMP ) /* 20-Lead PLCC package. Unable to read */
805   ROM_LOAD( "gal20v8b.u36", 0x0000, 0x0001, NO_DUMP ) /* 28-Lead PLCC package. Unable to read */
806   ROM_LOAD( "gal20v8b.u65", 0x0000, 0x0001, NO_DUMP ) /* 28-Lead PLCC package. Unable to read */
807ROM_END
808
809// 630 - 10 Credit Multiplier / 9 Line Multiline.
810// The Chariot Challenge - NSW/ACT - A - 10/08/98.
811// 04J00714
812ROM_START( chariotc )
813   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
814   ROM_LOAD32_WORD( "04j00714_chariot_challenge.u7",  0x000000, 0x80000, CRC(2f3a1af7) SHA1(e1448116a81687cb79dd380dfbc8decf1f83e649) )
815   ROM_LOAD32_WORD( "04j00714_chariot_challenge.u11", 0x000002, 0x80000, CRC(ef4f49e8) SHA1(8ff21f679a55cdfebcf22c109dfd3b41773293bd) )
816   ROM_LOAD32_WORD( "04j00714_chariot_challenge.u8",  0x100000, 0x80000, CRC(fa24cfde) SHA1(1725c38a8a15915d8aa8e59afef9ce1d6e8d01c5) )
817   ROM_LOAD32_WORD( "04j00714_chariot_challenge.u12", 0x100002, 0x80000, CRC(b8d4a5ec) SHA1(097e44cdb30b9aafd7f5358c8f0cdd130ec0615e) )
818
819   ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
820
821   ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
822
823   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
824ROM_END
825
665826ROM_START( wtiger )
666827   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
667828   ROM_LOAD32_WORD( "0200954v.u7",  0x000000, 0x80000, CRC(752e54c5) SHA1(9317544a7cf2d9bf29347d31fe72331fc3d018ef) )
r249893r249894
706867   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
707868ROM_END
708869
709/*********************** US games (requires set chips) ***********************/
870/*********************** US and Export games (requires set chips) ***********************/
710871
872// 559/2 - 10 Credit Multiplier / 9 Line Multiline.
873// Mine, Mine, Mine - Export E - 14/02/96.
874// All devices are 27c4002 instead of 27c4096.
875ROM_START( minemine )
876   ARISTOCRAT_MK5_BIOS
877   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
878   ROM_LOAD32_WORD( "mine_export.u7",  0x000000, 0x80000, CRC(41bc3714) SHA1(5a8f7d24a6a697524af7997dcedd214fcaf48768) )
879   ROM_LOAD32_WORD( "mine_export.u11", 0x000002, 0x80000, CRC(75803b10) SHA1(2ff3d966da2992ddcc7e229d979cc1ee623b4900) )
880   ROM_LOAD32_WORD( "mine_export.u8",  0x100000, 0x80000, CRC(0a3e2baf) SHA1(b9ab989cf383cd6ea0aa1ead137558a1a6f5901d) )
881   ROM_LOAD32_WORD( "mine_export.u12", 0x100002, 0x80000, CRC(26c01532) SHA1(ec68ad44b703609c7bc27275f8d9250a16d9067c) )
882
883   ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
884
885   ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
886
887   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
888ROM_END
889
890// 602/1 - 10 Credit Multiplier / 9 Line Multiline.
891// Dolphin Treasure - Export B - 06/12/96.
892// All devices are 27c4002 instead of 27c4096.
893ROM_START( dolphtre )
894   ARISTOCRAT_MK5_BIOS
895   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
896   ROM_LOAD32_WORD( "dolphin_treasure_export.u7",  0x000000, 0x80000, CRC(97e3e4d0) SHA1(211b9b9e0f25dfaf9d1dfe1d3d88592522aa6f07) )
897   ROM_LOAD32_WORD( "dolphin_treasure_export.u11", 0x000002, 0x80000, CRC(de221eb5) SHA1(0e550e90b7fd5670f3f3a8589239c342ed70dc3d) )
898   ROM_LOAD32_WORD( "dolphin_treasure_export.u8",  0x100000, 0x80000, CRC(cb3ca8b6) SHA1(dba8bdaa406c07870f95241466359e39a012a70b) )
899   ROM_LOAD32_WORD( "dolphin_treasure_export.u12", 0x100002, 0x80000, CRC(8ee1c2d3) SHA1(e6ecaaac0cb4518ecc0d36532ab532f46e3e628b) )
900
901   ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
902
903   ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
904
905   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
906ROM_END
907
908// 603(a) - 3,5,10,25,50 Credit Multiplier / 20 Line Multiline.
909// Cash Chameleon 100cm - Export B - 06/12/96.
910// Marked as DHG4078.
911ROM_START( cashcham )
912   ARISTOCRAT_MK5_BIOS
913   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
914   ROM_LOAD32_WORD( "dhg4078_cash_chameleon.u7",  0x000000, 0x80000, CRC(cb407a19) SHA1(d98421d6548e48b413f6dfcab4e240e98fcc9a69) )
915   ROM_LOAD32_WORD( "dhg4078_cash_chameleon.u11", 0x000002, 0x80000, CRC(94d73843) SHA1(ab236750c67e7fff3af831f1d03f45c45f280fd1) )
916   ROM_LOAD32_WORD( "dhg4078_cash_chameleon.u8",  0x100000, 0x80000, CRC(4cae8a5d) SHA1(3232461afd75ce71f8a2cb4ac7e9a3caeb8aabcd) )
917   ROM_LOAD32_WORD( "dhg4078_cash_chameleon.u12", 0x100002, 0x80000, CRC(39e17f0b) SHA1(25a0364fa45e4e78d6c365b0739606e71597bd71) )
918
919   ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
920
921   ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
922
923   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
924ROM_END
925
711926ROM_START( goldprmd )
712927   ARISTOCRAT_MK5_BIOS
713928   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
r249893r249894
723938   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
724939ROM_END
725940
941// 569/8 - 10 Credit Multiplier / 9 Line Multiline.
942// Wild Cougar - Export D - 19/05/97.
943// All devices are 27c4002 instead of 27c4096.
944ROM_START( wldcougr )
945   ARISTOCRAT_MK5_BIOS
946   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
947   ROM_LOAD32_WORD( "wild_cougar_export.u7",  0x000000, 0x80000, CRC(7ada053f) SHA1(5102b0b9db505454624750a3fd6db455682538f3) )
948   ROM_LOAD32_WORD( "wild_cougar_export.u11", 0x000002, 0x80000, CRC(69a78695) SHA1(1ed89cf38dc85f752449a858cd9558bed235af58) )
949   ROM_LOAD32_WORD( "wild_cougar_export.u8",  0x100000, 0x80000, CRC(496b0295) SHA1(237183a192ad9b4bc133014cc83149d4a7062785) )
950   ROM_LOAD32_WORD( "wild_cougar_export.u12", 0x100002, 0x80000, CRC(fe2bafdc) SHA1(e8b454db44a532d75b3aff323855340695688f0f) )
951
952   ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
953
954   ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
955
956   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
957ROM_END
958
959// 593 - 10 Credit Multiplier / 9 Line Multiline.
960// Bumble Bugs - Export D - 05/07/97.
961// All devices are 27c4002 instead of 27c4096.
962// Marked as CHG029604 and 92.691%
963ROM_START( bumblbug )
964   ARISTOCRAT_MK5_BIOS
965   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
966   ROM_LOAD32_WORD( "bumble_bugs_export.u7",  0x000000, 0x80000, CRC(ec605a36) SHA1(114e0840cfbd0c64645a5a33065db85462a0ba2d) )   // 92.691%
967   ROM_LOAD32_WORD( "bumble_bugs_export.u11", 0x000002, 0x80000, CRC(17b154bd) SHA1(efdf307670a3d74f7980fec2d2197d837d4c26e2) )   // 92.691%
968   ROM_LOAD32_WORD( "bumble_bugs_export.u8",  0x100000, 0x80000, CRC(e0c01d01) SHA1(9153129fd348a97da7cccf002e5d03e4b4db9264) )   // base
969   ROM_LOAD32_WORD( "bumble_bugs_export.u12", 0x100002, 0x80000, CRC(28700d5d) SHA1(87a583cd487da6cb4c2da5f62297f0e577269fae) )   // base
970
971   ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
972
973   ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
974
975   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
976ROM_END
977
978// 586/7(b) - 10 Credit Multiplier / 9 Line Multiline.
979// Penguin Pays - Export B - 14/07/97.       
980// All devices are 27c4002 instead of 27c4096.
981ROM_START( pengpays )
982   ARISTOCRAT_MK5_BIOS
983   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
984   ROM_LOAD32_WORD( "penguin_pays_export.u7",  0x000000, 0x80000, CRC(19d75260) SHA1(798472b1b5d8f5ca99d8bfe57e99a76686f0aa3f) )
985   ROM_LOAD32_WORD( "penguin_pays_export.u11", 0x000002, 0x80000, CRC(2b010813) SHA1(a383997308881a3ac35de56fe10e3852fa89fdf6) )
986   ROM_LOAD32_WORD( "penguin_pays_export.u8",  0x100000, 0x80000, CRC(6aeaebc8) SHA1(6f70b14e9f4e9940512bd6e89bc9ccbfe1f4a81f) )
987   ROM_LOAD32_WORD( "penguin_pays_export.u12", 0x100002, 0x80000, CRC(d959a048) SHA1(92f69090d599f95b48e79213e5b7d486e083d8f4) )
988
989   ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
990
991   ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
992
993   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
994ROM_END
995
996// MV4098 - 10 Credit Multiplier / 9 Line Multiline.
997// BOOT SCOOTIN' - Export A - 25/08/99.
998// All devices are 27c4002 instead of 27c4096.
999// Marked as GHG1012 and 92.767%
1000ROM_START( bootsctn )
1001   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
1002   ROM_LOAD32_WORD( "ghg1012_boot_scootin.u7",  0x000000, 0x80000, CRC(ca26f31e) SHA1(e8da31cc8d12bf8a28f1ca4d796259ae9010f8af) )   // 92.767%
1003   ROM_LOAD32_WORD( "ghg1012_boot_scootin.u11", 0x000002, 0x80000, CRC(61da1767) SHA1(83d4df1060975f03f291b9119c0d2b8debb0fb60) )   // 92.767%
1004   ROM_LOAD32_WORD( "ghg1012_boot_scootin.u8",  0x100000, 0x80000, CRC(9ae4d616) SHA1(60d4d36f75685dfe21f914fa4682cd6a64fcfa58) )   // base
1005   ROM_LOAD32_WORD( "ghg1012_boot_scootin.u12", 0x100002, 0x80000, CRC(2c50c083) SHA1(ae3b01200d152df9b2966b5308c71e9d1ad43d78) )   // base
1006   ROM_LOAD32_WORD( "ghg1012_boot_scootin.u9",  0x200000, 0x80000, CRC(c0a4920d) SHA1(d2c6d259d2e067b6e5ad72a6ef164aac7d72bc5a) )   // base
1007   ROM_LOAD32_WORD( "ghg1012_boot_scootin.u13", 0x200002, 0x80000, CRC(55716d82) SHA1(5b9982a49201842e9551a9c763a6babbb47a863e) )   // base
1008   ROM_LOAD32_WORD( "ghg1012_boot_scootin.u10", 0x300000, 0x80000, CRC(3ecdf7ee) SHA1(9d658a22da737daafdf6cb0d49009796036d04b1) )   // base
1009   ROM_LOAD32_WORD( "ghg1012_boot_scootin.u14", 0x300002, 0x80000, CRC(18934c51) SHA1(f7c9c95c687dbfe89747e7877157fde37bc1119e) )   // base
1010
1011   ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
1012
1013   ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
1014
1015   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
1016ROM_END
1017
1018// MV4104  3,5,10,20,25,50 Credit Multiplier / 9-20 Line Multiline.
1019// CUCKOO - Export C - 02/02/00.
1020// All devices are 27c4002 instead of 27c4096.
1021ROM_START( cuckoo )
1022   ARISTOCRAT_MK5_BIOS
1023   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
1024   ROM_LOAD32_WORD( "mv4104_cuckoo.u7",  0x000000, 0x80000, CRC(0bd17338) SHA1(b8f467bdf8d76533a2b7d44fe93be414f25a3c31) )   //
1025   ROM_LOAD32_WORD( "mv4104_cuckoo.u11", 0x000002, 0x80000, CRC(4c407deb) SHA1(57589e61a376ddff99cd420eb47bf8c902c6a249) )
1026   ROM_LOAD32_WORD( "mv4104_cuckoo.u8",  0x100000, 0x80000, CRC(33f52052) SHA1(89cbfe588d91244adff4c520fa94962d69ff20bf) )
1027   ROM_LOAD32_WORD( "mv4104_cuckoo.u12", 0x100002, 0x80000, CRC(00bb7597) SHA1(f4d6b21091e320a82d59477469340633b001ed0d) )
1028
1029   ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
1030
1031   ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
1032
1033   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
1034ROM_END
1035
1036// MV4115 - 5,10,20 Credit Multiplier / 9 Line Multiline.
1037// Magic Mask [Reel Game] - Export A - 09/05/2000.   
7261038ROM_START( magicmsk )
7271039   ARISTOCRAT_MK5_BIOS
7281040   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
r249893r249894
7381050   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
7391051ROM_END
7401052
741GAME( 1995, aristmk5, 0,        aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "MKV Set/Clear Chips (USA)", MACHINE_NOT_WORKING|MACHINE_IS_BIOS_ROOT )
1053// MV4115 - 5,10,20 Credit Multiplier / 9 Line Multiline.
1054// Magic Mask [Reel Game] - Export A - 09/05/2000.   
1055// Alternate set with identical description, but way different
1056// than the parent. All devices are 27c4002 instead of 27c4096.
1057//
1058// romcmp magicmsk.zip magicmska.zip
1059// 4 and 4 files
1060// magicmsk.u12    mv4115_magic_mask.u12    21.547699%
1061// magicmsk.u8     mv4115_magic_mask.u8     21.138954%
1062// magicmsk.u11    mv4115_magic_mask.u11    17.786026%
1063// magicmsk.u7     mv4115_magic_mask.u7     16.893578%
1064ROM_START( magicmska )
1065   ARISTOCRAT_MK5_BIOS
1066   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
1067   ROM_LOAD32_WORD( "mv4115_magic_mask.u7",  0x000000, 0x80000, CRC(452a19c9) SHA1(aab1f4ccfc6cdb382f7a0e85491614cc58811a08) )
1068   ROM_LOAD32_WORD( "mv4115_magic_mask.u11", 0x000002, 0x80000, CRC(c57601f3) SHA1(1616a424b41ad6fea6383a08d5352e8240433374) )
1069   ROM_LOAD32_WORD( "mv4115_magic_mask.u8",  0x100000, 0x80000, CRC(607d7447) SHA1(064dbfe8b52eebe1be7a41735da3fa01eacd1686) )
1070   ROM_LOAD32_WORD( "mv4115_magic_mask.u12", 0x100002, 0x80000, CRC(cf4cd569) SHA1(408edcd746587d249c4286f7a99f33ad94214f7c) )
7421071
1072   ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
1073
1074   ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
1075
1076   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
1077ROM_END
1078
1079// MV4124/1 - 5,10,25,50 Credit Multiplier / 20 Line Multiline.
1080// Adonis [Reel Game] - Export B - 31/07/01.
1081// Marked as BHG1284.
1082ROM_START( adonise )
1083   ARISTOCRAT_MK5_BIOS
1084   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
1085   ROM_LOAD32_WORD( "bhg1284_mv4124_adonis.u7",  0x000000, 0x80000, CRC(ed6254d7) SHA1(d2b790fdd7f5fc7b78fcfc4c96d0fc272ccf8da6) )
1086   ROM_LOAD32_WORD( "bhg1284_mv4124_adonis.u11", 0x000002, 0x80000, CRC(1f629286) SHA1(bce380a6a76c77bc790436bd6f94474a1db0c231) )
1087   ROM_LOAD32_WORD( "bhg1284_mv4124_adonis.u8",  0x100000, 0x80000, CRC(b756c96d) SHA1(494df20090d415e83d599023203c13273e7925ad) )
1088   ROM_LOAD32_WORD( "bhg1284_mv4124_adonis.u12", 0x100002, 0x80000, CRC(1d3b6b8f) SHA1(1ddcfd7323cc7e79d3e39d913fdb5cf5cd53d56d) )
1089
1090   ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
1091
1092   ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
1093
1094   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
1095ROM_END
1096
1097// MV4115/6 - 9/20 Line Multiline Multiplier.
1098// Party Gras [Reel Game] - Export A - 10/11/2001.
1099// All devices are 27c4002 instead of 27c4096.
1100ROM_START( partygrs )
1101   ARISTOCRAT_MK5_BIOS
1102   ROM_REGION( 0x400000, "game_prg", ROMREGION_ERASEFF )
1103   ROM_LOAD32_WORD( "mv4115-6_party_gras.u7",  0x000000, 0x80000, CRC(53047385) SHA1(efe50e8785047986513f2de63d2425ba80417481) )
1104   ROM_LOAD32_WORD( "mv4115-6_party_gras.u11", 0x000002, 0x80000, CRC(f8bd9f7f) SHA1(a8c67a644f9090890e8f33e620fe0bb4633bd6e8) )
1105   ROM_LOAD32_WORD( "mv4115-6_party_gras.u8",  0x100000, 0x80000, CRC(0b98a0fa) SHA1(c9ada21e39472f28cd9b8ec19be7235410ad3e7a) )
1106   ROM_LOAD32_WORD( "mv4115-6_party_gras.u12", 0x100002, 0x80000, CRC(00d1395c) SHA1(d9a66d6cdb5aa4f583d8c23306b1416646cbde93) )
1107
1108   ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) /* ARM Code */
1109
1110   ROM_REGION( 0x200000, "vram", ROMREGION_ERASE00 )
1111
1112   ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
1113ROM_END
1114
1115
1116/*************************
1117*      Game Drivers      *
1118*************************/
1119
1120//    YEAR  NAME       PARENT    MACHINE       INPUT     STATE           INIT      ROT     COMPANY       FULLNAME                                       FLAGS
1121GAME( 1995, aristmk5,  0,        aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "MKV Set/Clear Chips (USA)",                    MACHINE_NOT_WORKING|MACHINE_IS_BIOS_ROOT )
1122
7431123// Dates listed below are for the combination (reel layout), not release dates
744GAME( 1995, enchfrst, 0,        aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Enchanted Forest (0400122V, Local)",                   MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 570/3,  E - 23/06/95
745GAME( 1995, swthrt2v, 0,        aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Sweet Hearts II (01J01986, Venezuela)",                MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 577/1,  C - 07/09/95
746GAME( 1996, dolphntr, 0,        aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Dolphin Treasure (0200424V, NSW/ACT)",                 MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 602/1,  B - 06/12/96
747GAME( 1996, dolphtra, dolphntr, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Dolphin Treasure (0100424V, NSW/ACT)",                 MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 602/1,  B - 06/12/96
748GAME( 1997, goldprmd, aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Golden Pyramids (MV4091, USA)",                        MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // MV4091, B - 13/05/97
749GAME( 1997, qotn,     0,        aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Queen of the Nile (0200439V, NSW/ACT)",                MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 602/4,  B - 13/05/97
750GAME( 1997, dmdtouch, 0,        aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Diamond Touch (0400433V, Local)",                      MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 604,    E - 30/06/97
751GAME( 1998, adonis,   0,        aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Adonis (0200751V, NSW/ACT)",                           MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 602/9,  A - 25/05/98
752GAME( 1998, reelrock, 0,        aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Reelin-n-Rockin (0100779V, Local)",                    MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 628,    A - 13/07/98
753GAME( 1998, indiandr, 0,        aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Indian Dreaming (0100845V, Local)",                    MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 628/1,  B - 15/12/98
754GAME( 1999, wtiger,   0,        aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "White Tiger Classic (0200954V, NSW/ACT)",              MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 638/1,  B - 08/07/99
755GAME( 2000, magicmsk, aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Magic Mask (MV4115, Export)",                          MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // MV4115, A - 09/05/2000
756GAME( 2000, margmgc,  0,        aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Margarita Magic (01J00101, NSW/ACT)",                  MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // JB005,  A - 07/07/2000
757GAME( 2001, geishanz, 0,        aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Geisha (0101408V, New Zealand)",                       MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // MV4127, A - 05/03/01
1124GAME( 1995, enchfrst,  0,        aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Enchanted Forest (0400122V, Local)",           MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 570/3,    E - 23/06/95
1125GAME( 1995, swthrt2v,  0,        aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Sweet Hearts II (01J01986, Venezuela)",        MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 577/1,    C - 07/09/95
1126GAME( 1996, minemine,  aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Mine, Mine, Mine (Export)",                    MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 559/2,    E - 14/02/96
1127GAME( 1996, dolphntr,  0,        aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Dolphin Treasure (0200424V, NSW/ACT)",         MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 602/1,    B - 06/12/96, Rev 3
1128GAME( 1996, dolphtra,  dolphntr, aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Dolphin Treasure (0100424V, NSW/ACT)",         MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 602/1,    B - 06/12/96, Rev 1.24.4.0
1129GAME( 1996, dolphtre,  aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Dolphin Treasure (Export)",                    MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 602/1,    B - 06/12/96
1130GAME( 1996, cashcham,  aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Cash Chameleon (Export)",                      MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 603(a),   B - 06/12/96
1131GAME( 1997, goldprmd,  aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Golden Pyramids (MV4091, USA)",                MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // MV4091,   B - 13/05/97
1132GAME( 1997, qotn,      0,        aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Queen of the Nile (0200439V, NSW/ACT)",        MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 602/4,    B - 13/05/97
1133GAME( 1997, wldcougr,  aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Wild Cougar (Export)",                         MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 569/8,    D - 19/05/97
1134GAME( 1997, dmdtouch,  0,        aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Diamond Touch (0400433V, Local)",              MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 604,      E - 30/06/97
1135GAME( 1997, bumblbug,  aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Bumble Bugs (Export, 92.691%)",                MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 593,      D - 05/07/97
1136GAME( 1997, pengpays,  aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Penguin Pays (Export)",                        MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 586/7(b)  B - 14/07/97
1137GAME( 1998, adonis,    0,        aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Adonis (0200751V, NSW/ACT)",                   MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 602/9,    A - 25/05/98, Rev 10
1138GAME( 1998, adonisa,   adonis,   aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Adonis (0100751V, NSW/ACT)",                   MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 602/9,    A - 25/05/98, Rev 9
1139GAME( 1998, reelrock,  0,        aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Reelin-n-Rockin (0100779V, Local)",            MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 628,      A - 13/07/98
1140GAME( 1998, indiandr,  0,        aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Indian Dreaming (0100845V, Local)",            MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 628/1,    B - 15/12/98
1141GAME( 1998, chariotc,  0,        aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "The Chariot Challenge (04J00714, NSW/ACT)",    MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 630,      A - 10/08/98, Rev 12
1142GAME( 1999, wtiger,    0,        aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "White Tiger Classic (0200954V, NSW/ACT)",      MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // 638/1,    B - 08/07/99
1143GAME( 1999, bootsctn,  aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Boot Scootin' (Export, 92.767%)",              MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // MV4098,   A - 25/08/99
1144GAME( 2000, cuckoo,    aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Cuckoo (MV4104, Export)",                      MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // MV4104,   C - 02/02/00
1145GAME( 2000, magicmsk,  aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Magic Mask (MV4115, Export, set 1)",           MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // MV4115,   A - 09/05/00
1146GAME( 2000, magicmska, magicmsk, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Magic Mask (MV4115, Export, set 2)",           MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // MV4115,   A - 09/05/00
1147GAME( 2000, margmgc,   0,        aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Margarita Magic (01J00101, NSW/ACT)",          MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // JB005,    A - 07/07/00
1148GAME( 2001, geishanz,  0,        aristmk5,     aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Geisha (0101408V, New Zealand)",               MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // MV4127,   A - 05/03/01
1149GAME( 2001, adonise,   aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Adonis (MV4124/1, Export)",                    MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // MV4124/1, B - 31/07/01
1150GAME( 2001, partygrs,  aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0,  "Aristocrat", "Party Gras (MV4115/6, Export)",                MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND )  // MV4115/6, A - 10/11/01
1151
trunk/src/mame/drivers/atari400.c
r249893r249894
739739
740740   PORT_START("keyboard.1")
741741   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')
742   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) // None!
742   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
743743   PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P')
744744   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U')
745745   PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
trunk/src/mame/drivers/bbc.c
r249893r249894
3030    ARM1  - ARM Evaluation System
3131    ADB20 - Master Compact
3232
33
34    MESS Driver By:
35
36    Gordon Jefferyes
37    mess_bbc@romvault.com
38    Nigel Barnes
39    ngbarnes@hotmail.com
40
4133******************************************************************************/
4234
4335/* Core includes */
r249893r249894
5749/* Devices */
5850#include "imagedev/flopdrv.h"
5951#include "formats/bbc_dsk.h"
52//#include "formats/fsd_dsk.h"
6053#include "imagedev/cassette.h"
6154#include "formats/uef_cas.h"
6255#include "formats/csw_cas.h"
r249893r249894
175168   AM_RANGE(0xfe08, 0xfe08) AM_MIRROR(0x06) AM_DEVREADWRITE("acia6850", acia6850_device, status_r, control_w)  /*    fe08-fe0F  6850 ACIA      Serial controller               */
176169   AM_RANGE(0xfe09, 0xfe09) AM_MIRROR(0x06) AM_DEVREADWRITE("acia6850", acia6850_device, data_r, data_w)
177170   AM_RANGE(0xfe10, 0xfe17) AM_READWRITE(bbc_fe_r, bbc_SerialULA_w)                                            /*    fe10-fe17  Serial ULA     Serial system chip              */
178   AM_RANGE(0xfe18, 0xfe1f) AM_READ_PORT("S11")                                                                /*    fe18-fe1f  INTOFF/STATID  ECONET Interrupt Off / ID No.   */
171   AM_RANGE(0xfe18, 0xfe1f) AM_READ_PORT("STATID")                                                             /*    fe18-fe1f  INTOFF/STATID  ECONET Interrupt Off / ID No.   */
179172   AM_RANGE(0xfe20, 0xfe2f) AM_WRITE(bbc_videoULA_w)                                                           /* R: fe20-fe2f  INTON          ECONET Interrupt On             */
180173                                                                                    /* W: fe20-fe2f  Video ULA      Video system chip               */
181174   AM_RANGE(0xfe40, 0xfe5f) AM_DEVREADWRITE("via6522_0", via6522_device, read, write)                          /*    fe40-fe5f  6522 VIA       SYSTEM VIA                      */
r249893r249894
194187   AM_RANGE(0x8000, 0xbfff) AM_READ_BANK("bank4") AM_WRITE(bbc_memoryb4_w)                     /*    8000-bfff                 Paged ROM                       */
195188   AM_RANGE(0xfe30, 0xfe3f) AM_READWRITE(bbc_fe_r, bbc_page_selectb_w)                         /* R: fe30-fe3f  NC             Not Connected                   */
196189                                                                        /* W: fe30-fe3f  84LS161        Paged ROM selector              */
197   AM_RANGE(0xfe80, 0xfe83) AM_DEVICE("i8271" , i8271_device, map)                             /*    fe80-fe9f  8271 FDC       Floppy disc controller          */
198   AM_RANGE(0xfe84, 0xfe9f) AM_DEVREADWRITE("i8271", i8271_device, data_r, data_w)             /*    fe80-fe9f  8271 FDC       Floppy disc controller          */
190   AM_RANGE(0xfe80, 0xfe83) AM_DEVICE("i8271", i8271_device, map)                              /*    fe80-fe83  8271 FDC       Floppy disc controller          */
191   AM_RANGE(0xfe84, 0xfe9f) AM_DEVREADWRITE("i8271", i8271_device, data_r, data_w)             /*    fe84-fe9f  8271 FDC       Floppy disc controller          */
199192   AM_IMPORT_FROM(bbc_base)
200193ADDRESS_MAP_END
201194
r249893r249894
286279ADDRESS_MAP_END
287280
288281
289static const rgb_t bbc_palette[8]=
290{
291   rgb_t(0x0ff,0x0ff,0x0ff),
292   rgb_t(0x000,0x0ff,0x0ff),
293   rgb_t(0x0ff,0x000,0x0ff),
294   rgb_t(0x000,0x000,0x0ff),
295   rgb_t(0x0ff,0x0ff,0x000),
296   rgb_t(0x000,0x0ff,0x000),
297   rgb_t(0x0ff,0x000,0x000),
298   rgb_t(0x000,0x000,0x000)
299};
300
301PALETTE_INIT_MEMBER(bbc_state, bbc)
302{
303   palette.set_pen_colors(0, bbc_palette, ARRAY_LENGTH(bbc_palette));
304}
305
306
307282INPUT_CHANGED_MEMBER(bbc_state::trigger_reset)
308283{
309284   m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
r249893r249894
488463
489464   PORT_MODIFY("COL7")
490465   PORT_DIPNAME(0x01, 0x01, "Screen Mode") PORT_DIPLOCATION("KBD:6")
491   PORT_DIPSETTING(   0x00, "+0" )
492   PORT_DIPSETTING(   0x01, "+4" )
466   PORT_DIPSETTING(   0x00, "0" )
467   PORT_DIPSETTING(   0x01, "4" )
493468
494469   PORT_MODIFY("COL8")
495470   PORT_DIPNAME(0x01, 0x01, "Screen Mode") PORT_DIPLOCATION("KBD:7")
496   PORT_DIPSETTING(   0x00, "+0" )
497   PORT_DIPSETTING(   0x01, "+2" )
471   PORT_DIPSETTING(   0x00, "0" )
472   PORT_DIPSETTING(   0x01, "2" )
498473
499474   PORT_MODIFY("COL9")
500475   PORT_DIPNAME(0x01, 0x01, "Screen Mode") PORT_DIPLOCATION("KBD:8")
501   PORT_DIPSETTING(   0x00, "+0" )
502   PORT_DIPSETTING(   0x01, "+1" )
476   PORT_DIPSETTING(   0x00, "0" )
477   PORT_DIPSETTING(   0x01, "1" )
503478INPUT_PORTS_END
504479
505480
506static INPUT_PORTS_START(bbc_links)
507   PORT_START("S11")
508   PORT_DIPNAME(0xff, 0xfe, "Econet ID") PORT_DIPLOCATION("S11:1,2,3,4,5,6,7,8")
481static INPUT_PORTS_START(bbcb_links)
482   PORT_START("STATID")
483   PORT_DIPNAME(0xff, 0xfe, "Econet ID") PORT_DIPLOCATION("S11:0,1,2,3,4,5,6,7")
509484   PORT_DIPSETTING(   0x00,   "0" )    PORT_DIPSETTING(   0x01,   "1" )    PORT_DIPSETTING(   0x02,   "2" )    PORT_DIPSETTING(   0x03,   "3" )    PORT_DIPSETTING(   0x04,   "4" )
510485   PORT_DIPSETTING(   0x05,   "5" )    PORT_DIPSETTING(   0x06,   "6" )    PORT_DIPSETTING(   0x07,   "7" )    PORT_DIPSETTING(   0x08,   "8" )    PORT_DIPSETTING(   0x09,   "9" )
511486   PORT_DIPSETTING(   0x0a,  "10" )    PORT_DIPSETTING(   0x0b,  "11" )    PORT_DIPSETTING(   0x0c,  "12" )    PORT_DIPSETTING(   0x0d,  "13" )    PORT_DIPSETTING(   0x0e,  "14" )
r249893r249894
561536INPUT_PORTS_END
562537
563538
539static INPUT_PORTS_START(bbcbp_links)
540   PORT_START("STATID")
541   PORT_DIPNAME(0xff, 0xfe, "Econet ID") PORT_DIPLOCATION("S23:0,1,2,3,4,5,6,7")
542   PORT_DIPSETTING(   0x00,   "0" )    PORT_DIPSETTING(   0x01,   "1" )    PORT_DIPSETTING(   0x02,   "2" )    PORT_DIPSETTING(   0x03,   "3" )    PORT_DIPSETTING(   0x04,   "4" )
543   PORT_DIPSETTING(   0x05,   "5" )    PORT_DIPSETTING(   0x06,   "6" )    PORT_DIPSETTING(   0x07,   "7" )    PORT_DIPSETTING(   0x08,   "8" )    PORT_DIPSETTING(   0x09,   "9" )
544   PORT_DIPSETTING(   0x0a,  "10" )    PORT_DIPSETTING(   0x0b,  "11" )    PORT_DIPSETTING(   0x0c,  "12" )    PORT_DIPSETTING(   0x0d,  "13" )    PORT_DIPSETTING(   0x0e,  "14" )
545   PORT_DIPSETTING(   0x0f,  "15" )    PORT_DIPSETTING(   0x10,  "16" )    PORT_DIPSETTING(   0x11,  "17" )    PORT_DIPSETTING(   0x12,  "18" )    PORT_DIPSETTING(   0x13,  "19" )
546   PORT_DIPSETTING(   0x14,  "20" )    PORT_DIPSETTING(   0x15,  "21" )    PORT_DIPSETTING(   0x16,  "22" )    PORT_DIPSETTING(   0x17,  "23" )    PORT_DIPSETTING(   0x18,  "24" )
547   PORT_DIPSETTING(   0x19,  "25" )    PORT_DIPSETTING(   0x1a,  "26" )    PORT_DIPSETTING(   0x1b,  "27" )    PORT_DIPSETTING(   0x1c,  "28" )    PORT_DIPSETTING(   0x1d,  "29" )
548   PORT_DIPSETTING(   0x1e,  "30" )    PORT_DIPSETTING(   0x1f,  "31" )    PORT_DIPSETTING(   0x20,  "32" )    PORT_DIPSETTING(   0x21,  "33" )    PORT_DIPSETTING(   0x22,  "34" )
549   PORT_DIPSETTING(   0x23,  "35" )    PORT_DIPSETTING(   0x24,  "36" )    PORT_DIPSETTING(   0x25,  "37" )    PORT_DIPSETTING(   0x26,  "38" )    PORT_DIPSETTING(   0x27,  "39" )
550   PORT_DIPSETTING(   0x28,  "40" )    PORT_DIPSETTING(   0x29,  "41" )    PORT_DIPSETTING(   0x2a,  "42" )    PORT_DIPSETTING(   0x2b,  "43" )    PORT_DIPSETTING(   0x2c,  "44" )
551   PORT_DIPSETTING(   0x2d,  "45" )    PORT_DIPSETTING(   0x2e,  "46" )    PORT_DIPSETTING(   0x2f,  "47" )    PORT_DIPSETTING(   0x30,  "48" )    PORT_DIPSETTING(   0x31,  "49" )
552   PORT_DIPSETTING(   0x32,  "50" )    PORT_DIPSETTING(   0x33,  "51" )    PORT_DIPSETTING(   0x34,  "52" )    PORT_DIPSETTING(   0x35,  "53" )    PORT_DIPSETTING(   0x36,  "54" )
553   PORT_DIPSETTING(   0x37,  "15" )    PORT_DIPSETTING(   0x38,  "56" )    PORT_DIPSETTING(   0x39,  "57" )    PORT_DIPSETTING(   0x3a,  "58" )    PORT_DIPSETTING(   0x3b,  "59" )
554   PORT_DIPSETTING(   0x3c,  "60" )    PORT_DIPSETTING(   0x3d,  "61" )    PORT_DIPSETTING(   0x3e,  "62" )    PORT_DIPSETTING(   0x3f,  "63" )    PORT_DIPSETTING(   0x40,  "64" )
555   PORT_DIPSETTING(   0x41,  "65" )    PORT_DIPSETTING(   0x42,  "66" )    PORT_DIPSETTING(   0x43,  "67" )    PORT_DIPSETTING(   0x44,  "68" )    PORT_DIPSETTING(   0x45,  "69" )
556   PORT_DIPSETTING(   0x46,  "70" )    PORT_DIPSETTING(   0x47,  "71" )    PORT_DIPSETTING(   0x48,  "72" )    PORT_DIPSETTING(   0x49,  "73" )    PORT_DIPSETTING(   0x4a,  "74" )
557   PORT_DIPSETTING(   0x4b,  "75" )    PORT_DIPSETTING(   0x4c,  "76" )    PORT_DIPSETTING(   0x4d,  "77" )    PORT_DIPSETTING(   0x4e,  "78" )    PORT_DIPSETTING(   0x4f,  "79" )
558   PORT_DIPSETTING(   0x50,  "80" )    PORT_DIPSETTING(   0x51,  "81" )    PORT_DIPSETTING(   0x52,  "82" )    PORT_DIPSETTING(   0x53,  "83" )    PORT_DIPSETTING(   0x54,  "84" )
559   PORT_DIPSETTING(   0x55,  "85" )    PORT_DIPSETTING(   0x56,  "86" )    PORT_DIPSETTING(   0x57,  "87" )    PORT_DIPSETTING(   0x58,  "88" )    PORT_DIPSETTING(   0x59,  "89" )
560   PORT_DIPSETTING(   0x5a,  "90" )    PORT_DIPSETTING(   0x5b,  "91" )    PORT_DIPSETTING(   0x5c,  "92" )    PORT_DIPSETTING(   0x5d,  "93" )    PORT_DIPSETTING(   0x5e,  "94" )
561   PORT_DIPSETTING(   0x5f,  "95" )    PORT_DIPSETTING(   0x60,  "96" )    PORT_DIPSETTING(   0x61,  "97" )    PORT_DIPSETTING(   0x62,  "98" )    PORT_DIPSETTING(   0x63,  "99" )
562   PORT_DIPSETTING(   0x64, "100" )    PORT_DIPSETTING(   0x65, "101" )    PORT_DIPSETTING(   0x66, "102" )    PORT_DIPSETTING(   0x67, "103" )    PORT_DIPSETTING(   0x68, "104" )
563   PORT_DIPSETTING(   0x69, "105" )    PORT_DIPSETTING(   0x6a, "106" )    PORT_DIPSETTING(   0x6b, "107" )    PORT_DIPSETTING(   0x6c, "108" )    PORT_DIPSETTING(   0x6d, "109" )
564   PORT_DIPSETTING(   0x6e, "110" )    PORT_DIPSETTING(   0x6f, "111" )    PORT_DIPSETTING(   0x70, "112" )    PORT_DIPSETTING(   0x71, "113" )    PORT_DIPSETTING(   0x72, "114" )
565   PORT_DIPSETTING(   0x73, "115" )    PORT_DIPSETTING(   0x74, "116" )    PORT_DIPSETTING(   0x75, "117" )    PORT_DIPSETTING(   0x76, "118" )    PORT_DIPSETTING(   0x77, "119" )
566   PORT_DIPSETTING(   0x78, "120" )    PORT_DIPSETTING(   0x79, "121" )    PORT_DIPSETTING(   0x7a, "122" )    PORT_DIPSETTING(   0x7b, "123" )    PORT_DIPSETTING(   0x7c, "124" )
567   PORT_DIPSETTING(   0x7d, "125" )    PORT_DIPSETTING(   0x7e, "126" )    PORT_DIPSETTING(   0x7f, "127" )    PORT_DIPSETTING(   0x80, "128" )    PORT_DIPSETTING(   0x81, "129" )
568   PORT_DIPSETTING(   0x82, "130" )    PORT_DIPSETTING(   0x83, "131" )    PORT_DIPSETTING(   0x84, "132" )    PORT_DIPSETTING(   0x85, "133" )    PORT_DIPSETTING(   0x86, "134" )
569   PORT_DIPSETTING(   0x87, "135" )    PORT_DIPSETTING(   0x88, "136" )    PORT_DIPSETTING(   0x89, "137" )    PORT_DIPSETTING(   0x8a, "138" )    PORT_DIPSETTING(   0x8b, "139" )
570   PORT_DIPSETTING(   0x8c, "140" )    PORT_DIPSETTING(   0x8d, "141" )    PORT_DIPSETTING(   0x8e, "142" )    PORT_DIPSETTING(   0x8f, "143" )    PORT_DIPSETTING(   0x90, "144" )
571   PORT_DIPSETTING(   0x91, "145" )    PORT_DIPSETTING(   0x92, "146" )    PORT_DIPSETTING(   0x93, "147" )    PORT_DIPSETTING(   0x94, "148" )    PORT_DIPSETTING(   0x95, "149" )
572   PORT_DIPSETTING(   0x96, "150" )    PORT_DIPSETTING(   0x97, "151" )    PORT_DIPSETTING(   0x98, "152" )    PORT_DIPSETTING(   0x99, "153" )    PORT_DIPSETTING(   0x9a, "154" )
573   PORT_DIPSETTING(   0x9b, "155" )    PORT_DIPSETTING(   0x9c, "156" )    PORT_DIPSETTING(   0x9d, "157" )    PORT_DIPSETTING(   0x9e, "158" )    PORT_DIPSETTING(   0x9f, "159" )
574   PORT_DIPSETTING(   0xa0, "160" )    PORT_DIPSETTING(   0xa1, "161" )    PORT_DIPSETTING(   0xa2, "162" )    PORT_DIPSETTING(   0xa3, "163" )    PORT_DIPSETTING(   0xa4, "164" )
575   PORT_DIPSETTING(   0xa5, "165" )    PORT_DIPSETTING(   0xa6, "166" )    PORT_DIPSETTING(   0xa7, "167" )    PORT_DIPSETTING(   0xa8, "168" )    PORT_DIPSETTING(   0xa9, "169" )
576   PORT_DIPSETTING(   0xaa, "170" )    PORT_DIPSETTING(   0xab, "171" )    PORT_DIPSETTING(   0xac, "172" )    PORT_DIPSETTING(   0xad, "173" )    PORT_DIPSETTING(   0xae, "174" )
577   PORT_DIPSETTING(   0xaf, "175" )    PORT_DIPSETTING(   0xb0, "176" )    PORT_DIPSETTING(   0xb1, "177" )    PORT_DIPSETTING(   0xb2, "178" )    PORT_DIPSETTING(   0xb3, "179" )
578   PORT_DIPSETTING(   0xb4, "180" )    PORT_DIPSETTING(   0xb5, "181" )    PORT_DIPSETTING(   0xb6, "182" )    PORT_DIPSETTING(   0xb7, "183" )    PORT_DIPSETTING(   0xb8, "184" )
579   PORT_DIPSETTING(   0xb9, "185" )    PORT_DIPSETTING(   0xba, "186" )    PORT_DIPSETTING(   0xbb, "187" )    PORT_DIPSETTING(   0xbc, "188" )    PORT_DIPSETTING(   0xbd, "189" )
580   PORT_DIPSETTING(   0xbe, "190" )    PORT_DIPSETTING(   0xbf, "191" )    PORT_DIPSETTING(   0xc0, "192" )    PORT_DIPSETTING(   0xc1, "193" )    PORT_DIPSETTING(   0xc2, "194" )
581   PORT_DIPSETTING(   0xc3, "195" )    PORT_DIPSETTING(   0xc4, "196" )    PORT_DIPSETTING(   0xc5, "197" )    PORT_DIPSETTING(   0xc6, "198" )    PORT_DIPSETTING(   0xc7, "199" )
582   PORT_DIPSETTING(   0xc8, "200" )    PORT_DIPSETTING(   0xc9, "201" )    PORT_DIPSETTING(   0xca, "202" )    PORT_DIPSETTING(   0xcb, "203" )    PORT_DIPSETTING(   0xcc, "204" )
583   PORT_DIPSETTING(   0xcd, "205" )    PORT_DIPSETTING(   0xce, "206" )    PORT_DIPSETTING(   0xcf, "207" )    PORT_DIPSETTING(   0xd0, "208" )    PORT_DIPSETTING(   0xd1, "209" )
584   PORT_DIPSETTING(   0xd2, "210" )    PORT_DIPSETTING(   0xd3, "211" )    PORT_DIPSETTING(   0xd4, "212" )    PORT_DIPSETTING(   0xd5, "213" )    PORT_DIPSETTING(   0xd6, "214" )
585   PORT_DIPSETTING(   0xd7, "215" )    PORT_DIPSETTING(   0xd8, "216" )    PORT_DIPSETTING(   0xd9, "217" )    PORT_DIPSETTING(   0xda, "218" )    PORT_DIPSETTING(   0xdb, "219" )
586   PORT_DIPSETTING(   0xdc, "220" )    PORT_DIPSETTING(   0xdd, "221" )    PORT_DIPSETTING(   0xde, "222" )    PORT_DIPSETTING(   0xdf, "223" )    PORT_DIPSETTING(   0xe0, "224" )
587   PORT_DIPSETTING(   0xe1, "225" )    PORT_DIPSETTING(   0xe2, "226" )    PORT_DIPSETTING(   0xe3, "227" )    PORT_DIPSETTING(   0xe4, "228" )    PORT_DIPSETTING(   0xe5, "229" )
588   PORT_DIPSETTING(   0xe6, "230" )    PORT_DIPSETTING(   0xe7, "231" )    PORT_DIPSETTING(   0xe8, "232" )    PORT_DIPSETTING(   0xe9, "233" )    PORT_DIPSETTING(   0xea, "234" )
589   PORT_DIPSETTING(   0xeb, "235" )    PORT_DIPSETTING(   0xec, "236" )    PORT_DIPSETTING(   0xed, "237" )    PORT_DIPSETTING(   0xee, "238" )    PORT_DIPSETTING(   0xef, "239" )
590   PORT_DIPSETTING(   0xf0, "240" )    PORT_DIPSETTING(   0xf1, "241" )    PORT_DIPSETTING(   0xf2, "242" )    PORT_DIPSETTING(   0xf3, "243" )    PORT_DIPSETTING(   0xf4, "244" )
591   PORT_DIPSETTING(   0xf5, "245" )    PORT_DIPSETTING(   0xf6, "246" )    PORT_DIPSETTING(   0xf7, "247" )    PORT_DIPSETTING(   0xf8, "248" )    PORT_DIPSETTING(   0xf9, "249" )
592   PORT_DIPSETTING(   0xfa, "250" )    PORT_DIPSETTING(   0xfb, "251" )    PORT_DIPSETTING(   0xfc, "252" )    PORT_DIPSETTING(   0xfd, "253" )    PORT_DIPSETTING(   0xfe, "254" )
593   PORT_DIPSETTING(   0xff, "255" )
594INPUT_PORTS_END
595
596
564597static INPUT_PORTS_START(bbc_joy)
565598   PORT_START("JOY0")
566599   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_MINMAX(0x0,0xff ) PORT_PLAYER(1)
r249893r249894
600633   PORT_INCLUDE(bbc_config)
601634   PORT_INCLUDE(bbc_keyboard)
602635   PORT_INCLUDE(bbc_dipswitch)
603   PORT_INCLUDE(bbc_links)
636   PORT_INCLUDE(bbcb_links)
604637   PORT_INCLUDE(bbc_joy)
605638INPUT_PORTS_END
606639
640static INPUT_PORTS_START(bbcbp)
641   PORT_INCLUDE(bbc_config)
642   PORT_INCLUDE(bbc_keyboard)
643   PORT_INCLUDE(bbc_dipswitch)
644   PORT_INCLUDE(bbcbp_links)
645   PORT_INCLUDE(bbc_joy)
646INPUT_PORTS_END
647
607648static INPUT_PORTS_START(abc)
608649   PORT_INCLUDE(bbc_keyboard)
609650   PORT_INCLUDE(bbc_keypad)
610   PORT_INCLUDE(bbc_dipswitch)
611   PORT_INCLUDE(bbc_links)
651   PORT_INCLUDE(bbcbp_links)
612652   PORT_INCLUDE(bbc_joy)
613653INPUT_PORTS_END
614654
r249893r249894
635675}
636676
637677
638FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_525sd )
639   FLOPPY_BBC_SSD_525_FORMAT,
640   FLOPPY_BBC_DSD_525_FORMAT
678FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_bbc )
679   FLOPPY_BBC_DFS_FORMAT,
680   FLOPPY_BBC_CPM_FORMAT
681   //FLOPPY_FSD_FORMAT
641682FLOPPY_FORMATS_END
642683
643FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_525dd )
644   FLOPPY_BBC_SSD_525_FORMAT,
645   FLOPPY_BBC_DSD_525_FORMAT,
646   FLOPPY_BBC_ADF_525_FORMAT
684FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_bbcm )
685   FLOPPY_BBC_DFS_FORMAT,
686   FLOPPY_BBC_ADFS_FORMAT,
687   FLOPPY_BBC_CPM_FORMAT,
688   FLOPPY_BBC_DOS_FORMAT
689   //FLOPPY_FSD_FORMAT
647690FLOPPY_FORMATS_END
648691
649FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_35dd )
650   FLOPPY_BBC_ADF_35_FORMAT
692FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_bbcmc )
693   FLOPPY_BBC_ADFS_FORMAT
651694FLOPPY_FORMATS_END
652695
653696static SLOT_INTERFACE_START( bbc_floppies_525 )
r249893r249894
698741
699742static MACHINE_CONFIG_START( bbca, bbc_state )
700743   /* basic machine hardware */
701   MCFG_CPU_ADD("maincpu", M6502, 2000000)         /* 2.00 MHz */
744   MCFG_CPU_ADD("maincpu", M6502, XTAL_16MHz/8)         /* 2.00 MHz */
702745   MCFG_CPU_PROGRAM_MAP(bbca_mem)
703746   MCFG_CPU_VBLANK_INT_DRIVER("screen", bbc_state, bbcb_vsync)      /* screen refresh interrupts */
704747   MCFG_CPU_PERIODIC_INT_DRIVER(bbc_state, bbcb_keyscan, 1000)        /* scan keyboard */
r249893r249894
725768   MCFG_PALETTE_INIT_OWNER(bbc_state,bbc)
726769
727770   MCFG_DEVICE_ADD("saa5050", SAA5050, XTAL_12MHz/2)
728   MCFG_SAA5050_SCREEN_SIZE(40, 24, 40)
771   MCFG_SAA5050_SCREEN_SIZE(40, 25, 40)
729772
730773   /* crtc */
731774   MCFG_MC6845_ADD("mc6845", MC6845, "screen", 2000000)
732775   MCFG_MC6845_SHOW_BORDER_AREA(false)
733   MCFG_MC6845_CHAR_WIDTH(8)
776   MCFG_MC6845_CHAR_WIDTH(12)
734777   MCFG_MC6845_UPDATE_ROW_CB(bbc_state, crtc_update_row)
778   //MCFG_MC6845_OUT_DE_CB(WRITELINE(bbc_state, bbc_de_changed))
779   //MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(bbc_state, bbc_hsync))
735780   MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(bbc_state, bbc_vsync))
736781
737782   MCFG_VIDEO_START_OVERRIDE(bbc_state, bbca)
r249893r249894
740785
741786   /* sound hardware */
742787   MCFG_SPEAKER_STANDARD_MONO("mono")
743   MCFG_SOUND_ADD("sn76489", SN76489, 4000000) /* 4 MHz */
788   MCFG_SOUND_ADD("sn76489", SN76489, XTAL_16MHz/4) /* 4 MHz */
744789   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
745790
746791   /* cassette */
r249893r249894
767812   MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(bbc_state, write_acia_clock))
768813
769814   /* system via */
770   MCFG_DEVICE_ADD("via6522_0", VIA6522, 1000000)
815   MCFG_DEVICE_ADD("via6522_0", VIA6522, XTAL_16MHz / 16)
771816   MCFG_VIA6522_READPA_HANDLER(READ8(bbc_state, bbcb_via_system_read_porta))
772817   MCFG_VIA6522_READPB_HANDLER(READ8(bbc_state, bbcb_via_system_read_portb))
773818   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(bbc_state, bbcb_via_system_write_porta))
r249893r249894
797842   MCFG_DEVICE_ADD("vsm", SPEECHROM, 0)
798843   MCFG_SOUND_ADD("tms5220", TMS5220, 640000)
799844   MCFG_TMS52XX_SPEECHROM("vsm")
845   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
800846
801847   /* user via */
802   MCFG_DEVICE_ADD("via6522_1", VIA6522, 1000000)
848   MCFG_DEVICE_ADD("via6522_1", VIA6522, XTAL_16MHz / 16)
803849   MCFG_VIA6522_READPB_HANDLER(READ8(bbc_state, bbcb_via_user_read_portb))
804850   MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8("cent_data_out", output_latch_device, write))
805851   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(bbc_state, bbcb_via_user_write_portb))
r249893r249894
818864
819865   /* fdc */
820866   MCFG_DEVICE_ADD("i8271" , I8271 , 0)
821   MCFG_I8271_IRQ_CALLBACK(WRITELINE(bbc_state, bbc_i8271_interrupt))
867   MCFG_I8271_IRQ_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
822868   MCFG_I8271_HDL_CALLBACK(WRITELINE(bbc_state, motor_w))
823869   MCFG_I8271_OPT_CALLBACK(WRITELINE(bbc_state, side_w))
824   MCFG_FLOPPY_DRIVE_ADD("i8271:0", bbc_floppies_525, "qd", bbc_state::floppy_formats_525sd)
825   MCFG_FLOPPY_DRIVE_ADD("i8271:1", bbc_floppies_525, "qd", bbc_state::floppy_formats_525sd)
870   MCFG_FLOPPY_DRIVE_ADD("i8271:0", bbc_floppies_525, "qd", bbc_state::floppy_formats_bbc)
871   MCFG_FLOPPY_DRIVE_SOUND(true)
872   MCFG_FLOPPY_DRIVE_ADD("i8271:1", bbc_floppies_525, "qd", bbc_state::floppy_formats_bbc)
873   MCFG_FLOPPY_DRIVE_SOUND(true)
826874
827875   /* software lists */
828   MCFG_DEVICE_REMOVE("cass_ls_a")
829876   MCFG_SOFTWARE_LIST_ADD("cass_ls_b", "bbcb_cass")
830   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("cass_ls_a", "bbca_cass")
877   MCFG_SOFTWARE_LIST_ADD("flop_ls_b", "bbcb_flop")
878   MCFG_SOFTWARE_LIST_ADD("flop_ls_z80", "bbc_z80_flop")
879   MCFG_SOFTWARE_LIST_ADD("flop_ls_32016", "bbc_32016_flop")
831880MACHINE_CONFIG_END
832881
833882
r249893r249894
840889   MCFG_DEVICE_REMOVE("i8271")
841890
842891   MCFG_WD1770_ADD("wd1770", XTAL_16MHz / 2)
843   MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_intrq_w))
844   MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_drq_w))
892   MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(bbc_state, fdc_intrq_w))
893   MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(bbc_state, fdc_drq_w))
845894
846   MCFG_FLOPPY_DRIVE_ADD("wd1770:0", bbc_floppies_525, "qd", bbc_state::floppy_formats_525dd)
895   MCFG_FLOPPY_DRIVE_ADD("wd1770:0", bbc_floppies_525, "qd", bbc_state::floppy_formats_bbcm)
847896   MCFG_FLOPPY_DRIVE_SOUND(true)
848   MCFG_FLOPPY_DRIVE_ADD("wd1770:1", bbc_floppies_525, "qd", bbc_state::floppy_formats_525dd)
897   MCFG_FLOPPY_DRIVE_ADD("wd1770:1", bbc_floppies_525, "qd", bbc_state::floppy_formats_bbcm)
849898   MCFG_FLOPPY_DRIVE_SOUND(true)
850899MACHINE_CONFIG_END
851900
852901
853902static MACHINE_CONFIG_DERIVED( bbcb_de, bbcb )
854903   /* software lists */
855   MCFG_DEVICE_REMOVE("cass_ls_b")
856904   MCFG_SOFTWARE_LIST_ADD("flop_ls_b_de", "bbcb_de_cass")
857   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("cass_ls_b", "bbcb_cass")
858905MACHINE_CONFIG_END
859906
860907
r249893r249894
866913   MCFG_SCREEN_REFRESH_RATE(60)
867914
868915   /* software lists */
869   MCFG_DEVICE_REMOVE("cass_ls_b")
870916   MCFG_SOFTWARE_LIST_ADD("flop_ls_b_us", "bbcb_us_flop")
871   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("cass_ls_b", "bbcb_cass")
872917MACHINE_CONFIG_END
873918
874919
r249893r249894
921966
922967   /* Add 10MB ST-412 Winchester */
923968
969   /* software lists */
970   MCFG_SOFTWARE_LIST_REMOVE("cass_ls_a")
971   MCFG_SOFTWARE_LIST_REMOVE("cass_ls_b")
972   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_b")
973   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_32016")
924974MACHINE_CONFIG_END
925975
926976
927static MACHINE_CONFIG_DERIVED( abc210, bbcbp )
977static MACHINE_CONFIG_DERIVED( acw443, bbcbp )
928978   /* fdc */
929979   MCFG_DEVICE_REMOVE("wd1770:1")
930980
r249893r249894
936986
937987   /* Add 20MB ST-412 Winchester Cambridge */
938988
989   /* software lists */
990   MCFG_SOFTWARE_LIST_REMOVE("cass_ls_a")
991   MCFG_SOFTWARE_LIST_REMOVE("cass_ls_b")
992   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_b")
993   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_z80")
939994MACHINE_CONFIG_END
940995
941996
r249893r249894
9491004
9501005   /* Add 10MB ST-412 Winchester */
9511006
1007   /* software lists */
1008   MCFG_SOFTWARE_LIST_REMOVE("cass_ls_a")
1009   MCFG_SOFTWARE_LIST_REMOVE("cass_ls_b")
1010   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_b")
1011   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_z80")
1012   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_32016")
9521013MACHINE_CONFIG_END
9531014
9541015
r249893r249894
9771038   MCFG_DEVICE_REMOVE("wd1770")
9781039
9791040   /* software lists */
980   MCFG_DEVICE_REMOVE("cass_ls_a")
981   MCFG_DEVICE_REMOVE("cass_ls_b")
1041   MCFG_SOFTWARE_LIST_REMOVE("cass_ls_a")
1042   MCFG_SOFTWARE_LIST_REMOVE("cass_ls_b")
1043   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_b")
1044   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_z80")
1045   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_32016")
9821046MACHINE_CONFIG_END
9831047
9841048
r249893r249894
9911055
9921056static MACHINE_CONFIG_START( bbcm, bbc_state )
9931057   /* basic machine hardware */
994   MCFG_CPU_ADD("maincpu", M65SC02, 2000000)        /* 2.00 MHz */
1058   MCFG_CPU_ADD("maincpu", M65SC02, XTAL_16MHz/8)        /* 2.00 MHz */
9951059   MCFG_CPU_PROGRAM_MAP(bbcm_mem)
9961060   MCFG_CPU_VBLANK_INT_DRIVER("screen", bbc_state, bbcb_vsync)      /* screen refresh interrupts */
9971061   MCFG_CPU_PERIODIC_INT_DRIVER(bbc_state, bbcb_keyscan, 1000)        /* scan keyboard */
r249893r249894
10181082   MCFG_PALETTE_INIT_OWNER(bbc_state,bbc)
10191083
10201084   MCFG_DEVICE_ADD("saa5050", SAA5050, XTAL_12MHz/2)
1021   MCFG_SAA5050_SCREEN_SIZE(40, 24, 40)
1085   MCFG_SAA5050_SCREEN_SIZE(40, 25, 40)
10221086
10231087   /* crtc */
10241088   MCFG_MC6845_ADD("mc6845", MC6845, "screen", 2000000)
10251089   MCFG_MC6845_SHOW_BORDER_AREA(false)
1026   MCFG_MC6845_CHAR_WIDTH(8)
1090   MCFG_MC6845_CHAR_WIDTH(12)
10271091   MCFG_MC6845_UPDATE_ROW_CB(bbc_state, crtc_update_row)
10281092   MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(bbc_state, bbc_vsync))
10291093
r249893r249894
10311095
10321096   /* sound hardware */
10331097   MCFG_SPEAKER_STANDARD_MONO("mono")
1034   MCFG_SOUND_ADD("sn76489", SN76489, 4000000) /* 4 MHz */
1098   MCFG_SOUND_ADD("sn76489", SN76489, XTAL_16MHz/4) /* 4 MHz */
10351099   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
10361100
10371101   /* rtc and cmos */
r249893r249894
10571121
10581122   /* software lists */
10591123   MCFG_SOFTWARE_LIST_ADD("cass_ls_m", "bbcm_cass")
1124   MCFG_SOFTWARE_LIST_ADD("flop_ls_m", "bbcm_flop")
1125   MCFG_SOFTWARE_LIST_ADD("cart_ls_m", "bbcm_cart")
1126   MCFG_SOFTWARE_LIST_ADD("flop_ls_z80", "bbc_z80_flop")
1127   MCFG_SOFTWARE_LIST_ADD("flop_ls_32016", "bbc_32016_flop")
10601128   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("cass_ls_a", "bbca_cass")
10611129   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("cass_ls_b", "bbcb_cass")
1062   MCFG_SOFTWARE_LIST_ADD("cart_ls_m", "bbcm_cart")
1130   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("flop_ls_b", "bbcb_flop")
10631131
10641132   /* acia */
10651133   MCFG_DEVICE_ADD("acia6850", ACIA6850, 0)
r249893r249894
10811149   MCFG_UPD7002_EOC_CB(bbc_state, BBC_uPD7002_EOC)
10821150
10831151   /* system via */
1084   MCFG_DEVICE_ADD("via6522_0", VIA6522, 1000000)
1152   MCFG_DEVICE_ADD("via6522_0", VIA6522, XTAL_16MHz / 16)
10851153   MCFG_VIA6522_READPA_HANDLER(READ8(bbc_state, bbcb_via_system_read_porta))
10861154   MCFG_VIA6522_READPB_HANDLER(READ8(bbc_state, bbcb_via_system_read_portb))
10871155   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(bbc_state, bbcb_via_system_write_porta))
r249893r249894
10891157   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(bbc_state, bbcb_via_system_irq_w))
10901158
10911159   /* user via */
1092   MCFG_DEVICE_ADD("via6522_1", VIA6522, 1000000)
1160   MCFG_DEVICE_ADD("via6522_1", VIA6522, XTAL_16MHz / 16)
10931161   MCFG_VIA6522_READPB_HANDLER(READ8(bbc_state, bbcb_via_user_read_portb))
10941162   MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8("cent_data_out", output_latch_device, write))
10951163   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(bbc_state, bbcb_via_user_write_portb))
r249893r249894
10981166
10991167   /* fdc */
11001168   MCFG_WD1770_ADD("wd1770", XTAL_16MHz / 2)
1101   MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_intrq_w))
1102   MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_drq_w))
1169   MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(bbc_state, fdc_intrq_w))
1170   MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(bbc_state, fdc_drq_w))
11031171
1104   MCFG_FLOPPY_DRIVE_ADD("wd1770:0", bbc_floppies_525, "qd", bbc_state::floppy_formats_525dd)
1172   MCFG_FLOPPY_DRIVE_ADD("wd1770:0", bbc_floppies_525, "qd", bbc_state::floppy_formats_bbcm)
11051173   MCFG_FLOPPY_DRIVE_SOUND(true)
1106   MCFG_FLOPPY_DRIVE_ADD("wd1770:1", bbc_floppies_525, "qd", bbc_state::floppy_formats_525dd)
1174   MCFG_FLOPPY_DRIVE_ADD("wd1770:1", bbc_floppies_525, "qd", bbc_state::floppy_formats_bbcm)
11071175   MCFG_FLOPPY_DRIVE_SOUND(true)
11081176
11091177   /* econet */
r249893r249894
11201188
11211189   /* Add 65C102 co-processor */
11221190
1191   /* software lists */
1192   MCFG_SOFTWARE_LIST_ADD("flop_ls_65c102", "bbc_65c102_flop")
11231193MACHINE_CONFIG_END
11241194
11251195
r249893r249894
11351205
11361206
11371207static MACHINE_CONFIG_DERIVED( bbcmet, bbcm )
1138   /* sound hardware */
1139   MCFG_DEVICE_REMOVE("mono")
1140   MCFG_DEVICE_REMOVE("sn76489")
1141
11421208   /* printer */
11431209   MCFG_DEVICE_REMOVE("centronics")
11441210
r249893r249894
11491215   MCFG_SOFTWARE_LIST_REMOVE("cass_ls_m")
11501216   MCFG_SOFTWARE_LIST_REMOVE("cass_ls_a")
11511217   MCFG_SOFTWARE_LIST_REMOVE("cass_ls_b")
1218   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_m")
1219   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_b")
1220   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_z80")
1221   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_32016")
11521222
11531223   /* acia */
11541224   MCFG_DEVICE_REMOVE("acia6850")
r249893r249894
11681238
11691239   /* Add Intel 80186 co-processor */
11701240
1241   /* software lists */
1242   MCFG_SOFTWARE_LIST_ADD("flop_ls_80186", "bbc_80186_flop")
11711243MACHINE_CONFIG_END
11721244
11731245
r249893r249894
11751247
11761248   /* Add ARM co-processor */
11771249
1250   /* software lists */
1251   MCFG_SOFTWARE_LIST_ADD("flop_ls_arm", "bbc_arm_flop")
11781252MACHINE_CONFIG_END
11791253
11801254
r249893r249894
11931267   MCFG_DEVICE_REMOVE("wd1770")
11941268
11951269   MCFG_WD1772_ADD("wd1772", XTAL_16MHz / 2)
1196   MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_intrq_w))
1197   MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_drq_w))
1270   MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(bbc_state, fdc_intrq_w))
1271   MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(bbc_state, fdc_drq_w))
11981272
1199   MCFG_FLOPPY_DRIVE_ADD("wd1772:0", bbc_floppies_35, "qd", bbc_state::floppy_formats_35dd)
1273   MCFG_FLOPPY_DRIVE_ADD("wd1772:0", bbc_floppies_35, "qd", bbc_state::floppy_formats_bbcmc)
12001274   MCFG_FLOPPY_DRIVE_SOUND(true)
1201   MCFG_FLOPPY_DRIVE_ADD("wd1772:1", bbc_floppies_35, NULL, bbc_state::floppy_formats_35dd)
1275   MCFG_FLOPPY_DRIVE_ADD("wd1772:1", bbc_floppies_35, NULL, bbc_state::floppy_formats_bbcmc)
12021276   MCFG_FLOPPY_DRIVE_SOUND(true)
12031277
12041278   /* eeprom pcd8572 */
r249893r249894
12081282   MCFG_SOFTWARE_LIST_REMOVE("cass_ls_m")
12091283   MCFG_SOFTWARE_LIST_REMOVE("cass_ls_a")
12101284   MCFG_SOFTWARE_LIST_REMOVE("cass_ls_b")
1285   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_m")
1286   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_b")
1287   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_z80")
1288   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_32016")
12111289   MCFG_SOFTWARE_LIST_REMOVE("cart_ls_m")
12121290   MCFG_SOFTWARE_LIST_ADD("flop_ls_mc", "bbcmc_flop")
1291   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("flop_ls_pro128s", "pro128s_flop")
12131292MACHINE_CONFIG_END
12141293
12151294
12161295static MACHINE_CONFIG_DERIVED(pro128s, bbcmc)
12171296   /* software lists */
12181297   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_mc")
1298   MCFG_SOFTWARE_LIST_REMOVE("flop_ls_pro128s")
12191299   MCFG_SOFTWARE_LIST_ADD("flop_ls_pro128s", "pro128s_flop")
12201300   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("flop_ls_mc", "bbcmc_flop")
12211301MACHINE_CONFIG_END
r249893r249894
12291309   ROM_REGION(0x08000,"maincpu",ROMREGION_ERASEFF) /* RAM */
12301310
12311311   ROM_REGION(0x14000,"option",0) /* ROM */
1232   /* rom page 0  00000 SPARE SOCKET */
1233   /* rom page 1  04000 SPARE SOCKET */
1234   /* rom page 2  08000 SPARE SOCKET */
1235   /* rom page 3  0c000 BASIC */
1312   /* rom page 12 00000 IC52  SPARE SOCKET */
1313   /* rom page 13 04000 IC88  SPARE SOCKET */
1314   /* rom page 14 08000 IC100 SPARE SOCKET */
1315   /* rom page 15 0c000 IC101 BASIC */
12361316   ROM_DEFAULT_BIOS("os12b2")
12371317   ROM_SYSTEM_BIOS( 0, "os12b2", "OS 1.20 / BASIC2" )
12381318   ROMX_LOAD("os12.rom",   0x10000, 0x4000, CRC(3c14fc70) SHA1(0d9bcaf6a393c9ce2359ed700ddb53c232c2c45d), ROM_BIOS(1)) /* os */
r249893r249894
12461326   ROM_SYSTEM_BIOS( 3, "os10b1", "OS 1.00 / BASIC1" )
12471327   ROMX_LOAD("os10.rom",   0x10000, 0x4000, CRC(9679b8f8) SHA1(d35f6723132aabe3c4d00fc16fd9ecc6768df753), ROM_BIOS(4)) /* os */
12481328   ROMX_LOAD("basic1.rom", 0x0c000, 0x4000, CRC(b3364108) SHA1(890f6e3e7fab3340f75b85e93ff29332bc9ecb2e), ROM_BIOS(4)) /* rom page 3  0c000 */
1249   /* OS0.1 does not support rom paging, load BASIC into all pages */
1250   ROM_SYSTEM_BIOS( 4, "os01b2", "OS 0.10 / BASIC2" )
1329   ROM_SYSTEM_BIOS( 4, "os01b1", "OS 0.10 / BASIC1" )
12511330   ROMX_LOAD("os01.rom",   0x10000, 0x4000, CRC(45ee0980) SHA1(4b0ece6dc139d5d3f4fabd023716fb6f25149b80), ROM_BIOS(5)) /* os */
1252   ROMX_LOAD("basic2.rom", 0x00000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281), ROM_BIOS(5)) /* rom page 0  00000 */
1253   ROMX_LOAD("basic2.rom", 0x04000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281), ROM_BIOS(5)) /* rom page 1  04000 */
1254   ROMX_LOAD("basic2.rom", 0x08000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281), ROM_BIOS(5)) /* rom page 2  08000 */
1255   ROMX_LOAD("basic2.rom", 0x0c000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281), ROM_BIOS(5)) /* rom page 3  0c000 */
1256   ROM_SYSTEM_BIOS( 5, "os01b1", "OS 0.10 / BASIC1" )
1257   ROMX_LOAD("os01.rom",   0x10000, 0x4000, CRC(45ee0980) SHA1(4b0ece6dc139d5d3f4fabd023716fb6f25149b80), ROM_BIOS(6)) /* os */
1258   ROMX_LOAD("basic1.rom", 0x00000, 0x4000, CRC(b3364108) SHA1(890f6e3e7fab3340f75b85e93ff29332bc9ecb2e), ROM_BIOS(6)) /* rom page 0  00000 */
1259   ROMX_LOAD("basic1.rom", 0x04000, 0x4000, CRC(b3364108) SHA1(890f6e3e7fab3340f75b85e93ff29332bc9ecb2e), ROM_BIOS(6)) /* rom page 1  04000 */
1260   ROMX_LOAD("basic1.rom", 0x08000, 0x4000, CRC(b3364108) SHA1(890f6e3e7fab3340f75b85e93ff29332bc9ecb2e), ROM_BIOS(6)) /* rom page 2  08000 */
1261   ROMX_LOAD("basic1.rom", 0x0c000, 0x4000, CRC(b3364108) SHA1(890f6e3e7fab3340f75b85e93ff29332bc9ecb2e), ROM_BIOS(6)) /* rom page 3  0c000 */
1331   /* OS0.1 does not support rom paging, load BASIC into all pages */
1332   ROMX_LOAD("basic1.rom", 0x00000, 0x4000, CRC(b3364108) SHA1(890f6e3e7fab3340f75b85e93ff29332bc9ecb2e), ROM_BIOS(5)) /* rom page 0  00000 */
1333   ROM_RELOAD(             0x04000, 0x4000 )
1334   ROM_RELOAD(             0x08000, 0x4000 )
1335   ROM_RELOAD(             0x0c000, 0x4000 )
12621336
12631337   ROM_REGION(0x4000, "os", 0)
12641338   ROM_COPY("option", 0x10000, 0, 0x4000)
r249893r249894
12861360   /* rom page 9  24000 */
12871361   /* rom page 10 28000 */
12881362   /* rom page 11 2c000 */
1289   /* rom page 12 30000 SPARE SOCKET */
1290   /* rom page 13 34000 SPARE SOCKET */
1291   /* rom page 14 38000 DFS */
1292   /* rom page 15 3c000 BASIC */
1363   /* rom page 12 30000 IC52  SPARE SOCKET */
1364   /* rom page 13 34000 IC88  SPARE SOCKET */
1365   /* rom page 14 38000 IC100 DFS */
1366   /* rom page 15 3c000 IC101 BASIC */
12931367   ROM_DEFAULT_BIOS("os12b2")
12941368   ROM_SYSTEM_BIOS( 0, "os12b2", "OS 1.20 / BASIC2" )
12951369   ROMX_LOAD("os12.rom",   0x40000, 0x4000, CRC(3c14fc70) SHA1(0d9bcaf6a393c9ce2359ed700ddb53c232c2c45d), ROM_BIOS(1)) /* os */
r249893r249894
13031377   ROM_SYSTEM_BIOS( 3, "os10b1", "OS 1.00 / BASIC1" )
13041378   ROMX_LOAD("os10.rom",   0x40000, 0x4000, CRC(9679b8f8) SHA1(d35f6723132aabe3c4d00fc16fd9ecc6768df753), ROM_BIOS(4)) /* os */
13051379   ROMX_LOAD("basic1.rom", 0x3c000, 0x4000, CRC(b3364108) SHA1(890f6e3e7fab3340f75b85e93ff29332bc9ecb2e), ROM_BIOS(4)) /* rom page 15 3c000 */
1380   ROM_SYSTEM_BIOS( 4, "os01b1", "OS 0.10 / BASIC1" )
1381   ROMX_LOAD("os01.rom",   0x40000, 0x4000, CRC(45ee0980) SHA1(4b0ece6dc139d5d3f4fabd023716fb6f25149b80), ROM_BIOS(5)) /* os */
1382   /* OS0.1 does not support rom paging, load BASIC into all pages */
1383   ROMX_LOAD("basic1.rom", 0x00000, 0x4000, CRC(b3364108) SHA1(890f6e3e7fab3340f75b85e93ff29332bc9ecb2e), ROM_BIOS(5)) /* rom page 0 00000 */
1384   ROM_RELOAD(             0x04000, 0x4000 )
1385   ROM_RELOAD(             0x08000, 0x4000 )
1386   ROM_RELOAD(             0x0c000, 0x4000 )
13061387
1307   ROM_LOAD("dnfs.rom",    0x38000, 0x4000, CRC(8ccd2157) SHA1(7e3c536baeae84d6498a14e8405319e01ee78232))
1388   ROM_LOAD("dnfs120-201666.rom", 0x38000, 0x4000, CRC(8ccd2157) SHA1(7e3c536baeae84d6498a14e8405319e01ee78232))
13081389
13091390   ROM_REGION(0x4000, "os", 0)
13101391   ROM_COPY("option", 0x40000, 0, 0x4000)
r249893r249894
13301411   /* rom page 9  24000 */
13311412   /* rom page 10 28000 */
13321413   /* rom page 11 2c000 */
1333   /* rom page 12 30000 SPARE SOCKET */
1334   /* rom page 13 34000 SPARE SOCKET */
1335   /* rom page 14 38000 DDFS */
1336   /* rom page 15 3c000 BASIC */
1414   /* rom page 12 30000 IC52  SPARE SOCKET */
1415   /* rom page 13 34000 IC88  SPARE SOCKET */
1416   /* rom page 14 38000 IC100 DDFS */
1417   /* rom page 15 3c000 IC101 BASIC */
13371418   ROM_DEFAULT_BIOS("os12b2")
13381419   ROM_SYSTEM_BIOS( 0, "os12b2", "OS 1.20 / BASIC2" )
13391420   ROMX_LOAD("os12.rom",   0x40000, 0x4000, CRC(3c14fc70) SHA1(0d9bcaf6a393c9ce2359ed700ddb53c232c2c45d), ROM_BIOS(1)) /* os */
r249893r249894
13741455   /* rom page 9  24000 */
13751456   /* rom page 10 28000 */
13761457   /* rom page 11 2c000 */
1377   /* rom page 12 30000 SPARE SOCKET */
1378   /* rom page 13 34000 SPARE SOCKET */
1379   /* rom page 14 38000 DFS */
1380   /* rom page 15 3c000 BASIC */
1458   /* rom page 12 30000 IC72 SPARE SOCKET */
1459   /* rom page 13 34000 IC73 SPARE SOCKET */
1460   /* rom page 14 38000 IC74 DFS */
1461   /* rom page 15 3c000 IC75 BASIC */
13811462   ROM_DEFAULT_BIOS("os12")
13821463   ROM_SYSTEM_BIOS( 0, "os12", "OS 1.20 / BASIC2" )
13831464   ROMX_LOAD("os_de.rom",   0x40000, 0x4000, CRC(b7262caf) SHA1(aadf90338ee9d1c85dfa73beba50e930c2a38f10), ROM_BIOS(1))
r249893r249894
14091490   /* rom page 9  24000 */
14101491   /* rom page 10 28000 */
14111492   /* rom page 11 2c000 */
1412   /* rom page 12 30000 SPARE SOCKET */
1413   /* rom page 13 34000 SPARE SOCKET */
1414   /* rom page 14 38000 DFS */
1415   /* rom page 15 3c000 BASIC */
1493   /* rom page 12 30000 IC72 VIEW */
1494   /* rom page 13 34000 IC73 US DNFS */
1495   /* rom page 14 38000 IC74 US BASIC */
1496   /* rom page 15 3c000 IC75 SPARE SOCKET */
14161497   ROM_DEFAULT_BIOS("os10b3")
14171498   ROM_SYSTEM_BIOS( 0, "os10b3", "OS A1.0 / BASIC3" )
1418   ROMX_LOAD("os10_us.rom", 0x40000, 0x4000, CRC(c8e946a9) SHA1(83d91d089dca092d2c8b7c3650ff8143c9069b89), ROM_BIOS(1))
1419   ROMX_LOAD("basic3.rom",  0x3c000, 0x4000, CRC(161b9539) SHA1(b39014610a968789afd7695aa04d1277d874405c), ROM_BIOS(1)) /* rom page 15 3c000 */
1499   ROMX_LOAD("usmos10.rom",  0x40000, 0x4000, CRC(c8e946a9) SHA1(83d91d089dca092d2c8b7c3650ff8143c9069b89), ROM_BIOS(1))
1500   ROMX_LOAD("usbasic3.rom", 0x3c000, 0x4000, CRC(161b9539) SHA1(b39014610a968789afd7695aa04d1277d874405c), ROM_BIOS(1)) /* rom page 15 3c000 */
14201501
1421   ROM_LOAD("dfs10.rom",    0x38000, 0x4000, CRC(7e367e8c) SHA1(161f585dc45665ea77433c84afd2f95049f7f5a0))
1502   ROM_LOAD("viewa210.rom", 0x30000, 0x4000, CRC(4345359f) SHA1(88c93df1854f5fbe6cd6e5f0e29a8bf4ea3b5614))
1503   ROM_LOAD("usdnfs10.rom", 0x38000, 0x4000, CRC(7e367e8c) SHA1(161f585dc45665ea77433c84afd2f95049f7f5a0))
14221504
14231505   ROM_REGION(0x4000, "os", 0)
14241506   ROM_COPY("option", 0x40000, 0, 0x4000)
r249893r249894
14361518   ROM_SYSTEM_BIOS( 0, "os20", "OS 2.00" )
14371519   ROMX_LOAD("bpos2.ic71", 0x3c000, 0x4000, CRC(9f356396) SHA1(ea7d3a7e3ee1ecfaa1483af994048057362b01f2), ROM_BIOS(1)) /* rom page 15 3C000 BASIC */
14381520   ROM_CONTINUE(           0x40000, 0x4000)  /* OS */
1439   /* rom page 0  00000 */
1440   /* rom page 1  04000 */
1441   /* rom page 2  08000  32K IN PAGE 3 */
1442   /* rom page 3  0c000  SPARE SOCKET */
1443   /* rom page 4  10000  32K IN PAGE 5 */
1444   /* rom page 5  14000  ADFS */
1445   /* rom page 6  18000  32K IN PAGE 7 */
1446   /* rom page 7  1c000  DDFS */
1447   /* rom page 8  20000  32K IN PAGE 9 */
1448   /* rom page 9  24000  SPARE SOCKET */
1449   /* rom page 10 28000  32K IN PAGE 11 */
1450   /* rom page 11 2c000  SPARE SOCKET */
1451   /* rom page 12 30000 */
1452   /* rom page 13 34000 */
1521   /* rom page 0  00000 SWRAM (B+ 128K only) */
1522   /* rom page 1  04000 SWRAM (B+ 128K only) */
1523   /* rom page 2  08000 IC35 32K IN PAGE 3 */
1524   /* rom page 3  0c000 IC35 SPARE SOCKET */
1525   /* rom page 4  10000 IC44 32K IN PAGE 5 */
1526   /* rom page 5  14000 IC44 ADFS */
1527   /* rom page 6  18000 IC57 32K IN PAGE 7 */
1528   /* rom page 7  1c000 IC57 DDFS */
1529   /* rom page 8  20000 IC62 32K IN PAGE 9 */
1530   /* rom page 9  24000 IC62 SPARE SOCKET */
1531   /* rom page 10 28000 IC68 32K IN PAGE 11 */
1532   /* rom page 11 2c000 IC68 SPARE SOCKET */
1533   /* rom page 12 30000 SWRAM (B+ 128K only) */
1534   /* rom page 13 34000 SWRAM (B+ 128K only) */
14531535   /* rom page 14 38000  32K IN PAGE 15 */
1454   /* rom page 15 3C000  BASIC */
1536   /* rom page 15 3C000 IC71 BASIC */
14551537   ROM_LOAD("adfs130.rom", 0x14000, 0x4000, CRC(d3855588) SHA1(301fd05c475a629c4bec70510d4507256a5b00d8))
14561538   ROM_LOAD("ddfs223.rom", 0x1c000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
14571539
r249893r249894
14631545ROM_END
14641546
14651547
1466ROM_START(bbcbp128)
1467   ROM_REGION(0x10000,"maincpu",ROMREGION_ERASEFF) /* ROM MEMORY */
1548#define rom_bbcbp128 rom_bbcbp
14681549
1469   ROM_REGION(0x44000,"option",0) /* ROM */
1470   ROM_DEFAULT_BIOS("os20")
1471   ROM_SYSTEM_BIOS( 0, "os20", "OS 2.00" )
1472   ROMX_LOAD("bpos2.ic71", 0x3c000, 0x4000, CRC(9f356396) SHA1(ea7d3a7e3ee1ecfaa1483af994048057362b01f2), ROM_BIOS(1)) /* rom page 15 3C000 BASIC */
1473   ROM_CONTINUE(           0x40000, 0x4000)  /* OS */
1474   /* rom page 0  00000 */
1475   /* rom page 1  04000 */
1476   /* rom page 2  08000  32K IN PAGE 3 */
1477   /* rom page 3  0c000  SPARE SOCKET */
1478   /* rom page 4  10000  32K IN PAGE 5 */
1479   /* rom page 5  14000  ADFS */
1480   /* rom page 6  18000  32K IN PAGE 7 */
1481   /* rom page 7  1c000  DDFS */
1482   /* rom page 8  20000  32K IN PAGE 9 */
1483   /* rom page 9  24000  SPARE SOCKET */
1484   /* rom page 10 28000  32K IN PAGE 11 */
1485   /* rom page 11 2c000  SPARE SOCKET */
1486   /* rom page 12 30000 */
1487   /* rom page 13 34000 */
1488   /* rom page 14 38000  32K IN PAGE 15 */
1489   /* rom page 15 3C000  BASIC */
1490   ROM_LOAD("adfs130.rom", 0x14000, 0x4000, CRC(d3855588) SHA1(301fd05c475a629c4bec70510d4507256a5b00d8))
1491   ROM_LOAD("ddfs223.rom", 0x1c000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
14921550
1493   ROM_REGION(0x4000, "os", 0)
1494   ROM_COPY("option", 0x40000, 0, 0x4000)
1495
1496   ROM_REGION(0x8000, "vsm", 0) /* system speech PHROM */
1497   ROM_LOAD("phroma.bin", 0x0000, 0x4000, CRC(98e1bf9e) SHA1(b369809275cb67dfd8a749265e91adb2d2558ae6))
1498ROM_END
1499
1500
15011551ROM_START(abc110)
15021552   ROM_REGION(0x10000,"maincpu",ROMREGION_ERASEFF) /* ROM MEMORY */
15031553
r249893r249894
15051555   ROM_DEFAULT_BIOS("mos200")
15061556   ROM_SYSTEM_BIOS( 0, "mos200", "MOS2.00" )
15071557   ROMX_LOAD("mos200.rom", 0x40000, 0x4000, CRC(5e88f994) SHA1(76235ff15d736f5def338f73ac7497c41b916505), ROM_BIOS(1))
1508   ROM_SYSTEM_BIOS( 1, "mos123", "MOS1.23" )
1509   ROMX_LOAD("mos123.rom", 0x40000, 0x4000, CRC(90d31d08) SHA1(42a01892cf8bd2ada4db1c8b36aff80c85eb5dcb), ROM_BIOS(2))
1510   ROM_SYSTEM_BIOS( 2, "mos120", "MOS1.20" )
1511   ROMX_LOAD("mos120.rom", 0x40000, 0x4000, CRC(0a1e83a0) SHA1(21dc3a94eef7c003b194686730fb461779f44925), ROM_BIOS(3))
1558   ROMX_LOAD("basic200.rom", 0x3c000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281), ROM_BIOS(1))
1559   ROM_SYSTEM_BIOS( 1, "mos123stor", "MOS1.23 + ViewStore" )
1560   ROMX_LOAD("mos123stor.rom", 0x3c000, 0x4000, CRC(4e84f452) SHA1(145ee54f04b3eb4d0e5afaabe21915be48db3c54), ROM_BIOS(2)) /* rom page 15 3C000 ViewStore */
1561   ROM_CONTINUE(               0x40000, 0x4000)  /* OS */
1562   ROM_SYSTEM_BIOS( 2, "mos123", "MOS1.23" )
1563   ROMX_LOAD("mos123.rom", 0x40000, 0x4000, CRC(90d31d08) SHA1(42a01892cf8bd2ada4db1c8b36aff80c85eb5dcb), ROM_BIOS(3))
1564   ROMX_LOAD("basic200.rom", 0x3c000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281), ROM_BIOS(3))
1565   ROM_SYSTEM_BIOS( 3, "mos120", "MOS1.20" )
1566   ROMX_LOAD("mos120.rom", 0x40000, 0x4000, CRC(0a1e83a0) SHA1(21dc3a94eef7c003b194686730fb461779f44925), ROM_BIOS(4))
1567   ROMX_LOAD("basic200.rom", 0x3c000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281), ROM_BIOS(4))
15121568   /* rom page 0  00000 */
1513   /* rom page 1  04000 */
1514   /* rom page 2  08000  32K IN PAGE 3 */
1515   /* rom page 3  0c000  SPARE SOCKET */
1516   /* rom page 4  10000  32K IN PAGE 5 */
1517   /* rom page 5  14000  DDFS */
1518   /* rom page 6  18000  32K IN PAGE 7 */
1519   /* rom page 7  1c000  ADFS */
1520   /* rom page 8  20000  32K IN PAGE 9 */
1521   /* rom page 9  24000  SPARE SOCKET */
1522   /* rom page 10 28000  32K IN PAGE 11 */
1523   /* rom page 11 2c000  SPARE SOCKET */
1569   /* rom page 1  04000 IC71 selectable with link S13 */
1570   /* rom page 2  08000 IC35 32K IN PAGE 3 */
1571   /* rom page 3  0c000 IC35 SPARE SOCKET */
1572   /* rom page 4  10000 IC44 32K IN PAGE 5 */
1573   /* rom page 5  14000 IC44 DDFS */
1574   /* rom page 6  18000 IC57 32K IN PAGE 7 */
1575   /* rom page 7  1c000 IC57 ADFS */
1576   /* rom page 8  20000 IC62 32K IN PAGE 9 */
1577   /* rom page 9  24000 IC62 SPARE SOCKET */
1578   /* rom page 10 28000 IC68 32K IN PAGE 11 */
1579   /* rom page 11 2c000 IC68 SPARE SOCKET */
15241580   /* rom page 12 30000 */
15251581   /* rom page 13 34000 */
1526   /* rom page 14 38000  32K IN PAGE 15 */
1527   /* rom page 15 3C000  BASIC */
1528   ROM_LOAD("ddfs223.rom", 0x14000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
1582   /* rom page 14 38000 */
1583   /* rom page 15 3C000 IC71 BASIC */
1584   //ROM_LOAD("ddfs223.rom", 0x14000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
1585   ROM_LOAD("acwddfs225.rom", 0x14000, 0x4000, CRC(7d0f9016) SHA1(bdfe44c79e18142d747436627e71a362a04cf746))
15291586   ROM_LOAD("adfs130.rom", 0x1c000, 0x4000, CRC(d3855588) SHA1(301fd05c475a629c4bec70510d4507256a5b00d8))
1530   ROM_LOAD("basic200.rom", 0x3c000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281))
15311587
15321588   ROM_REGION(0x4000, "os", 0)
15331589   ROM_COPY("option", 0x40000, 0, 0x4000)
r249893r249894
15371593ROM_END
15381594
15391595
1540ROM_START(abc210)
1541   ROM_REGION(0x10000,"maincpu",ROMREGION_ERASEFF) /* ROM MEMORY */
1596#define rom_abc310 rom_abc110
15421597
1543   ROM_REGION(0x44000,"option",0) /* ROM */
1544   ROM_DEFAULT_BIOS("mos200")
1545   ROM_SYSTEM_BIOS( 0, "mos200", "MOS2.00" )
1546   ROMX_LOAD("mos200.rom", 0x40000, 0x4000, CRC(5e88f994) SHA1(76235ff15d736f5def338f73ac7497c41b916505), ROM_BIOS(1))
1547   ROM_SYSTEM_BIOS( 1, "mos123", "MOS1.23" )
1548   ROMX_LOAD("mos123.rom", 0x40000, 0x4000, CRC(90d31d08) SHA1(42a01892cf8bd2ada4db1c8b36aff80c85eb5dcb), ROM_BIOS(2))
1549   ROM_SYSTEM_BIOS( 2, "mos120", "MOS1.20" )
1550   ROMX_LOAD("mos120.rom", 0x40000, 0x4000, CRC(0a1e83a0) SHA1(21dc3a94eef7c003b194686730fb461779f44925), ROM_BIOS(3))
1551   /* rom page 0  00000 */
1552   /* rom page 1  04000 */
1553   /* rom page 2  08000  32K IN PAGE 3 */
1554   /* rom page 3  0c000  SPARE SOCKET */
1555   /* rom page 4  10000  32K IN PAGE 5 */
1556   /* rom page 5  14000  DDFS */
1557   /* rom page 6  18000  32K IN PAGE 7 */
1558   /* rom page 7  1c000  ADFS */
1559   /* rom page 8  20000  32K IN PAGE 9 */
1560   /* rom page 9  24000  SPARE SOCKET */
1561   /* rom page 10 28000  32K IN PAGE 11 */
1562   /* rom page 11 2c000  SPARE SOCKET */
1563   /* rom page 12 30000 */
1564   /* rom page 13 34000 */
1565   /* rom page 14 38000  32K IN PAGE 15 */
1566   /* rom page 15 3C000  BASIC */
1567   ROM_LOAD("ddfs223.rom",  0x14000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
1568   ROM_LOAD("adfs130.rom",  0x1c000, 0x4000, CRC(d3855588) SHA1(301fd05c475a629c4bec70510d4507256a5b00d8))
1569   ROM_LOAD("basic200.rom", 0x3c000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281))
15701598
1571   ROM_REGION(0x4000, "os", 0)
1572   ROM_COPY("option", 0x40000, 0, 0x4000)
1573
1574   ROM_REGION(0x8000, "vsm", 0) /* system speech PHROM */
1575   ROM_LOAD("phroma.bin", 0x0000, 0x4000, CRC(98e1bf9e) SHA1(b369809275cb67dfd8a749265e91adb2d2558ae6))
1576ROM_END
1577
1578
1579ROM_START(abc310)
1599ROM_START(acw443)
15801600   ROM_REGION(0x10000,"maincpu",ROMREGION_ERASEFF) /* ROM MEMORY */
15811601
15821602   ROM_REGION(0x44000,"option",0) /* ROM */
1583   ROM_DEFAULT_BIOS("mos200")
1584   ROM_SYSTEM_BIOS( 0, "mos200", "MOS2.00" )
1585   ROMX_LOAD("mos200.rom", 0x40000, 0x4000, CRC(5e88f994) SHA1(76235ff15d736f5def338f73ac7497c41b916505), ROM_BIOS(1))
1586   ROM_SYSTEM_BIOS( 1, "mos123", "MOS1.23" )
1587   ROMX_LOAD("mos123.rom", 0x40000, 0x4000, CRC(90d31d08) SHA1(42a01892cf8bd2ada4db1c8b36aff80c85eb5dcb), ROM_BIOS(2))
1588   ROM_SYSTEM_BIOS( 2, "mos120", "MOS1.20" )
1589   ROMX_LOAD("mos120.rom", 0x40000, 0x4000, CRC(0a1e83a0) SHA1(21dc3a94eef7c003b194686730fb461779f44925), ROM_BIOS(3))
1603   ROM_DEFAULT_BIOS("mos210")
1604   ROM_SYSTEM_BIOS( 0, "mos210", "MOS2.10" )
1605   ROMX_LOAD("acwmos210.rom", 0x40000, 0x4000, CRC(168d6753) SHA1(dcd01d8f5f6e0cd92ae626ca52a3db71abf5d282), ROM_BIOS(1))
1606   ROM_SYSTEM_BIOS( 1, "mos200", "MOS2.00" )
1607   ROMX_LOAD("mos200.rom", 0x40000, 0x4000, CRC(5e88f994) SHA1(76235ff15d736f5def338f73ac7497c41b916505), ROM_BIOS(2))
15901608   /* rom page 0  00000 */
1591   /* rom page 1  04000 */
1592   /* rom page 2  08000  32K IN PAGE 3 */
1593   /* rom page 3  0c000  SPARE SOCKET */
1594   /* rom page 4  10000  32K IN PAGE 5 */
1595   /* rom page 5  14000  DDFS */
1596   /* rom page 6  18000  32K IN PAGE 7 */
1597   /* rom page 7  1c000  ADFS */
1598   /* rom page 8  20000  32K IN PAGE 9 */
1599   /* rom page 9  24000  SPARE SOCKET */
1600   /* rom page 10 28000  32K IN PAGE 11 */
1601   /* rom page 11 2c000  SPARE SOCKET */
1609   /* rom page 1  04000  IC71 selectable with link S13 */
1610   /* rom page 2  08000  IC35 32K IN PAGE 3 */
1611   /* rom page 3  0c000  IC35 DNFS */
1612   /* rom page 4  10000  IC44 32K IN PAGE 5 */
1613   /* rom page 5  14000  IC44 ACW DFS */
1614   /* rom page 6  18000  IC57 32K IN PAGE 7 */
1615   /* rom page 7  1c000  IC57 TERMINAL */
1616   /* rom page 8  20000  IC62 32K IN PAGE 9 */
1617   /* rom page 9  24000  IC62 ADFS */
1618   /* rom page 10 28000  IC68 BASIC */
1619   /* rom page 11 2c000  IC68 Unused OS? */
16021620   /* rom page 12 30000 */
16031621   /* rom page 13 34000 */
1604   /* rom page 14 38000  32K IN PAGE 15 */
1605   /* rom page 15 3C000  BASIC */
1606   ROM_LOAD("ddfs223.rom",  0x14000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
1607   ROM_LOAD("adfs130.rom",  0x1c000, 0x4000, CRC(d3855588) SHA1(301fd05c475a629c4bec70510d4507256a5b00d8))
1608   ROM_LOAD("basic200.rom", 0x3c000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281))
1622   /* rom page 14 38000 */
1623   /* rom page 15 3C000  IC71 selectable with link S13 */
1624   ROM_LOAD("dnfs120-201666.rom", 0x0c000, 0x4000, CRC(8ccd2157) SHA1(7e3c536baeae84d6498a14e8405319e01ee78232))
1625   ROM_LOAD("acwddfs225.rom", 0x14000, 0x4000, CRC(7d0f9016) SHA1(bdfe44c79e18142d747436627e71a362a04cf746))
1626   ROM_LOAD("acwterminal.rom", 0x1c000, 0x4000, CRC(81afaeb9) SHA1(6618ed9158776b4b8aa030957bd19ba77e4a993c))
1627   ROM_LOAD("adfs130.rom", 0x24000, 0x4000, CRC(d3855588) SHA1(301fd05c475a629c4bec70510d4507256a5b00d8))
1628   ROM_LOAD("basic200.rom", 0x28000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281))
16091629
16101630   ROM_REGION(0x4000, "os", 0)
16111631   ROM_COPY("option", 0x40000, 0, 0x4000)
r249893r249894
16511671   ROM_SYSTEM_BIOS( 0, "mos350", "Enhanced MOS 3.50" )
16521672   ROMX_LOAD("mos350.ic24", 0x20000, 0x20000, CRC(141027b9) SHA1(85211b5bc7c7a269952d2b063b7ec0e1f0196803), ROM_BIOS(1))
16531673   ROM_SYSTEM_BIOS( 1, "mos320", "Original MOS 3.20" )
1654   ROMX_LOAD("mos320.ic24", 0x20000, 0x20000, CRC(0cfad2ce) SHA1(0275719aa7746dd3b627f95ccc4362b564063a5e), ROM_BIOS(2))
1674   ROMX_LOAD("mos320.ic24", 0x20000, 0x20000, CRC(0f747ebe) SHA1(eacacbec3892dc4809ad5800e6c8299ff9eb528f), ROM_BIOS(2))
16551675   ROM_COPY("option", 0x20000, 0x40000, 0x4000) /* Move loaded roms into place */
16561676   ROM_FILL(0x20000, 0x4000, 0xFFFF)
1657   /* 00000 rom 0   Rear Cartridge bottom 16K */
1658   /* 04000 rom 1   Rear Cartridge top 16K */
1659   /* 08000 rom 2   Front Cartridge bottom 16K */
1660   /* 0c000 rom 3   Front Cartridge top 16K */
1661   /* 10000 rom 4   SWRAM */
1662   /* 14000 rom 5   SWRAM */
1663   /* 18000 rom 6   SWRAM */
1664   /* 1c000 rom 7   SWRAM */
1665   /* 20000 rom 8   SPARE SOCKET */
1666   /* 24000 rom 9   DFS + SRAM */
1667   /* 28000 rom 10  Viewsheet */
1668   /* 2c000 rom 11  Edit */
1669   /* 30000 rom 12  BASIC */
1670   /* 34000 rom 13  ADFS */
1671   /* 38000 rom 14  View + MOS code */
1672   /* 3c000 rom 15  Terminal + Tube host + CFS */
1673//  ROM_LOAD("anfs424.rom", 0x20000, 0x4000, CRC(1b9f75fd) SHA1(875f71edd48f87c3a55371409d0cc2015d8b5853) ) // TODO where to load this?
1677   /* 00000 rom 0   SK3 Rear Cartridge bottom 16K */
1678   /* 04000 rom 1   SK3 Rear Cartridge top 16K */
1679   /* 08000 rom 2   SK4 Front Cartridge bottom 16K */
1680   /* 0c000 rom 3   SK4 Front Cartridge top 16K */
1681   /* 10000 rom 4   IC41 SWRAM or bottom 16K */
1682   /* 14000 rom 5   IC41 SWRAM or top 16K */
1683   /* 18000 rom 6   IC37 SWRAM or bottom 16K */
1684   /* 1c000 rom 7   IC37 SWRAM or top 16K */
1685   /* 20000 rom 8   IC27 ANFS */
1686   /* 24000 rom 9   IC24 DFS + SRAM */
1687   /* 28000 rom 10  IC24 Viewsheet */
1688   /* 2c000 rom 11  IC24 Edit */
1689   /* 30000 rom 12  IC24 BASIC */
1690   /* 34000 rom 13  IC24 ADFS */
1691   /* 38000 rom 14  IC24 View + MOS code */
1692   /* 3c000 rom 15  IC24 Terminal + Tube host + CFS */
1693   //ROM_LOAD("anfs424.rom", 0x20000, 0x4000, CRC(1b9f75fd) SHA1(875f71edd48f87c3a55371409d0cc2015d8b5853))
16741694
16751695   ROM_REGION(0x4000, "os", 0)
16761696   ROM_COPY("option", 0x40000, 0, 0x4000)
r249893r249894
16821702ROM_END
16831703
16841704
1685ROM_START(bbcmt)
1686   ROM_REGION(0x10000,"maincpu",ROMREGION_ERASEFF) /* ROM MEMORY */
1705#define rom_bbcmt rom_bbcm
1706#define rom_bbcm512 rom_bbcm
16871707
1688   ROM_REGION(0x44000,"option",0) /* ROM */
1689   ROM_DEFAULT_BIOS("mos350")
1690   ROM_SYSTEM_BIOS( 0, "mos350", "Enhanced MOS 3.50" )
1691   ROMX_LOAD("mos350.ic24", 0x20000, 0x20000, CRC(141027b9) SHA1(85211b5bc7c7a269952d2b063b7ec0e1f0196803), ROM_BIOS(1))
1692   ROM_SYSTEM_BIOS( 1, "mos320", "Original MOS 3.20" )
1693   ROMX_LOAD("mos320.ic24", 0x20000, 0x20000, CRC(0cfad2ce) SHA1(0275719aa7746dd3b627f95ccc4362b564063a5e), ROM_BIOS(2))
1694   ROM_COPY("option", 0x20000, 0x40000, 0x4000) /* Move loaded roms into place */
1695   ROM_FILL(0x20000, 0x4000, 0xFFFF)
1696   /* 00000 rom 0   Rear Cartridge bottom 16K */
1697   /* 04000 rom 1   Rear Cartridge top 16K */
1698   /* 08000 rom 2   Front Cartridge bottom 16K */
1699   /* 0c000 rom 3   Front Cartridge top 16K */
1700   /* 10000 rom 4   SWRAM */
1701   /* 14000 rom 5   SWRAM */
1702   /* 18000 rom 6   SWRAM */
1703   /* 1c000 rom 7   SWRAM */
1704   /* 20000 rom 8   SPARE SOCKET */
1705   /* 24000 rom 9   DFS + SRAM */
1706   /* 28000 rom 10  Viewsheet */
1707   /* 2c000 rom 11  Edit */
1708   /* 30000 rom 12  BASIC */
1709   /* 34000 rom 13  ADFS */
1710   /* 38000 rom 14  View + MOS code */
1711   /* 3c000 rom 15  Terminal + Tube host + CFS */
1712//  ROM_LOAD("anfs424.ic27", 0x20000, 0x4000, CRC(1b9f75fd) SHA1(875f71edd48f87c3a55371409d0cc2015d8b5853) ) // TODO where to load this?
17131708
1714   ROM_REGION(0x4000, "os", 0)
1715   ROM_COPY("option", 0x40000, 0, 0x4000)
1716
1717   ROM_REGION(0x40,"rtc",0) /* mc146818 */
1718   /* Factory defaulted CMOS RAM, sets default language ROM, etc. */
1719   ROMX_LOAD("mos350.cmos", 0x00, 0x40, CRC(e84c1854) SHA1(f3cb7f12b7432caba28d067f01af575779220aac), ROM_BIOS(1))
1720   ROMX_LOAD("mos320.cmos", 0x00, 0x40, CRC(c7f9e85a) SHA1(f24cc9db0525910689219f7204bf8b864033ee94), ROM_BIOS(2))
1721ROM_END
1722
1723
17241709ROM_START(bbcmaiv)
17251710   ROM_REGION(0x10000,"maincpu",ROMREGION_ERASEFF) /* ROM MEMORY */
17261711
17271712   ROM_REGION(0x44000,"option",0) /* ROM */
17281713   ROM_DEFAULT_BIOS("mos320")
17291714   ROM_SYSTEM_BIOS( 0, "mos320", "MOS 3.20" )
1730   ROMX_LOAD("mos320.ic24", 0x20000, 0x20000, CRC(0cfad2ce) SHA1(0275719aa7746dd3b627f95ccc4362b564063a5e), ROM_BIOS(1))
1715   ROMX_LOAD("mos320.ic24", 0x20000, 0x20000, CRC(0f747ebe) SHA1(eacacbec3892dc4809ad5800e6c8299ff9eb528f), ROM_BIOS(1))
17311716   ROM_COPY("option", 0x20000, 0x40000, 0x4000) /* Move loaded roms into place */
17321717   ROM_FILL(0x20000, 0x4000, 0xFFFF)
1733   /* 00000 rom 0   Rear Cartridge bottom 16K */
1734   /* 04000 rom 1   Rear Cartridge top 16K */
1735   /* 08000 rom 2   Front Cartridge bottom 16K */
1736   /* 0c000 rom 3   Front Cartridge top 16K */
1737   /* 10000 rom 4   SWRAM */
1738   /* 14000 rom 5   SWRAM */
1739   /* 18000 rom 6   SWRAM */
1740   /* 1c000 rom 7   SWRAM */
1741   /* 20000 rom 8   VFS */
1742   /* 24000 rom 9   DFS + SRAM */
1743   /* 28000 rom 10  Viewsheet */
1744   /* 2c000 rom 11  Edit */
1745   /* 30000 rom 12  BASIC */
1746   /* 34000 rom 13  ADFS */
1747   /* 38000 rom 14  View + MOS code */
1748   /* 3c000 rom 15  Terminal + Tube host + CFS */
1718   /* 00000 rom 0   SK3 Rear Cartridge bottom 16K */
1719   /* 04000 rom 1   SK3 Rear Cartridge top 16K */
1720   /* 08000 rom 2   SK4 Front Cartridge bottom 16K */
1721   /* 0c000 rom 3   SK4 Front Cartridge top 16K */
1722   /* 10000 rom 4   IC41 SWRAM or bottom 16K */
1723   /* 14000 rom 5   IC41 SWRAM or top 16K */
1724   /* 18000 rom 6   IC37 SWRAM or bottom 16K */
1725   /* 1c000 rom 7   IC37 SWRAM or top 16K */
1726   /* 20000 rom 8   IC27 VFS */
1727   /* 24000 rom 9   IC24 DFS + SRAM */
1728   /* 28000 rom 10  IC24 Viewsheet */
1729   /* 2c000 rom 11  IC24 Edit */
1730   /* 30000 rom 12  IC24 BASIC */
1731   /* 34000 rom 13  IC24 ADFS */
1732   /* 38000 rom 14  IC24 View + MOS code */
1733   /* 3c000 rom 15  IC24 Terminal + Tube host + CFS */
17491734   ROM_LOAD("vfs170.rom", 0x20000, 0x4000, CRC(b124a0bb) SHA1(ba31c757815cf470402d7829a70a0e1d3fb1355b) )
17501735
17511736   ROM_REGION(0x4000, "os", 0)
r249893r249894
17631748   ROM_REGION(0x44000,"option",0) /* ROM */
17641749   ROM_DEFAULT_BIOS("mos400")
17651750   ROM_SYSTEM_BIOS( 0, "mos400", "Econet MOS 4.00" )
1766   ROMX_LOAD("mos400.ic24", 0x30000, 0x10000, BAD_DUMP CRC(81729034) SHA1(d4bc2c7f5e66b5298786138f395908e70c772971), ROM_BIOS(1)) /* Merged individual ROM bank dumps */
1751   ROMX_LOAD("mos400.ic24", 0x30000, 0x10000, CRC(81729034) SHA1(d4bc2c7f5e66b5298786138f395908e70c772971), ROM_BIOS(1))
17671752   ROM_COPY("option", 0x34000, 0x24000, 0xC000) /* Mirror */
17681753   ROM_COPY("option", 0x30000, 0x40000, 0x4000) /* Move loaded roms into place */
17691754   ROM_FILL(0x30000, 0x4000, 0xFFFF)
1770   /* 00000 rom 0   Rear Cartridge bottom 16K */
1771   /* 04000 rom 1   Rear Cartridge top 16K */
1772   /* 08000 rom 2   Front Cartridge bottom 16K */
1773   /* 0c000 rom 3   Front Cartridge top 16K */
1774   /* 10000 rom 4   SWRAM */
1775   /* 14000 rom 5   SWRAM */
1776   /* 18000 rom 6   SWRAM */
1777   /* 1c000 rom 7   SWRAM */
1755   /* 00000 rom 0   SK3 Rear Cartridge bottom 16K */
1756   /* 04000 rom 1   SK3 Rear Cartridge top 16K */
1757   /* 08000 rom 2   SK4 Front Cartridge bottom 16K */
1758   /* 0c000 rom 3   SK4 Front Cartridge top 16K */
1759   /* 10000 rom 4   IC41 SWRAM or bottom 16K */
1760   /* 14000 rom 5   IC41 SWRAM or top 16K */
1761   /* 18000 rom 6   IC37 SWRAM or bottom 16K */
1762   /* 1c000 rom 7   IC37 SWRAM or top 16K */
17781763   /* 20000 rom 8   NO SOCKET */
1779   /* 24000 rom 9   BASIC */
1780   /* 28000 rom 10  ANFS */
1781   /* 2c000 rom 11  MOS code */
1782   /* 30000 rom 12  UNUSED */
1783   /* 34000 rom 13  BASIC */
1784   /* 38000 rom 14  ANFS */
1785   /* 3c000 rom 15  MOS code */
1764   /* 24000 rom 9   IC24 BASIC */
1765   /* 28000 rom 10  IC24 ANFS */
1766   /* 2c000 rom 11  IC24 MOS code */
1767   /* 30000 rom 12  IC24 UNUSED */
1768   /* 34000 rom 13  IC24 BASIC */
1769   /* 38000 rom 14  IC24 ANFS */
1770   /* 3c000 rom 15  IC24 MOS code */
17861771
17871772   ROM_REGION(0x4000, "os", 0)
17881773   ROM_COPY("option", 0x40000, 0, 0x4000)
r249893r249894
17931778ROM_END
17941779
17951780
1796ROM_START(bbcm512)
1797   ROM_REGION(0x10000,"maincpu",ROMREGION_ERASEFF) /* ROM MEMORY */
1798
1799   ROM_REGION(0x44000,"option",0) /* ROM */
1800   ROM_DEFAULT_BIOS("mos350")
1801   ROM_SYSTEM_BIOS( 0, "mos350", "Enhanced MOS 3.50" )
1802   ROMX_LOAD("mos350.ic24", 0x20000, 0x20000, CRC(141027b9) SHA1(85211b5bc7c7a269952d2b063b7ec0e1f0196803), ROM_BIOS(1))
1803   ROM_SYSTEM_BIOS( 1, "mos320", "Original MOS 3.20" )
1804   ROMX_LOAD("mos320.ic24", 0x20000, 0x20000, CRC(0cfad2ce) SHA1(0275719aa7746dd3b627f95ccc4362b564063a5e), ROM_BIOS(2))
1805   ROM_COPY("option", 0x20000, 0x40000, 0x4000) /* Move loaded roms into place */
1806   ROM_FILL(0x20000, 0x4000, 0xFFFF)
1807   /* 00000 rom 0   Rear Cartridge bottom 16K */
1808   /* 04000 rom 1   Rear Cartridge top 16K */
1809   /* 08000 rom 2   Front Cartridge bottom 16K */
1810   /* 0c000 rom 3   Front Cartridge top 16K */
1811   /* 10000 rom 4   SWRAM */
1812   /* 14000 rom 5   SWRAM */
1813   /* 18000 rom 6   SWRAM */
1814   /* 1c000 rom 7   SWRAM */
1815   /* 20000 rom 8   SPARE SOCKET */
1816   /* 24000 rom 9   DFS + SRAM */
1817   /* 28000 rom 10  Viewsheet */
1818   /* 2c000 rom 11  Edit */
1819   /* 30000 rom 12  BASIC */
1820   /* 34000 rom 13  ADFS */
1821   /* 38000 rom 14  View + MOS code */
1822   /* 3c000 rom 15  Terminal + Tube host + CFS */
1823//  ROM_LOAD("anfs424.ic27", 0x20000, 0x4000, CRC(1b9f75fd) SHA1(875f71edd48f87c3a55371409d0cc2015d8b5853) )
1824
1825   ROM_REGION(0x4000, "os", 0)
1826   ROM_COPY("option", 0x40000, 0, 0x4000)
1827
1828   ROM_REGION(0x40,"rtc",0) /* mc146818 */
1829   /* Factory defaulted CMOS RAM, sets default language ROM, etc. */
1830   ROMX_LOAD("mos350.cmos", 0x00, 0x40, CRC(e84c1854) SHA1(f3cb7f12b7432caba28d067f01af575779220aac), ROM_BIOS(1))
1831   ROMX_LOAD("mos320.cmos", 0x00, 0x40, CRC(c7f9e85a) SHA1(f24cc9db0525910689219f7204bf8b864033ee94), ROM_BIOS(2))
1832ROM_END
1833
1834
18351781ROM_START(bbcmarm)
18361782   ROM_REGION(0x10000,"maincpu",ROMREGION_ERASEFF) /* ROM MEMORY */
18371783
18381784   ROM_REGION(0x44000,"option",0) /* ROM */
18391785   ROM_DEFAULT_BIOS("mos320")
18401786   ROM_SYSTEM_BIOS( 0, "mos320", "Original MOS 3.20" )
1841   ROMX_LOAD("mos320.ic24", 0x20000, 0x20000, CRC(0cfad2ce) SHA1(0275719aa7746dd3b627f95ccc4362b564063a5e), ROM_BIOS(1))
1787   ROMX_LOAD("mos320.ic24", 0x20000, 0x20000, CRC(0f747ebe) SHA1(eacacbec3892dc4809ad5800e6c8299ff9eb528f), ROM_BIOS(1))
18421788   ROM_COPY("option", 0x20000, 0x40000, 0x4000) /* Move loaded roms into place */
18431789   ROM_FILL(0x20000, 0x4000, 0xFFFF)
1844   /* 00000 rom 0   Rear Cartridge bottom 16K */
1845   /* 04000 rom 1   Rear Cartridge top 16K */
1846   /* 08000 rom 2   Front Cartridge bottom 16K */
1847   /* 0c000 rom 3   Front Cartridge top 16K */
1848   /* 10000 rom 4   SWRAM */
1849   /* 14000 rom 5   SWRAM */
1850   /* 18000 rom 6   SWRAM */
1851   /* 1c000 rom 7   SWRAM */
1852   /* 20000 rom 8   SPARE SOCKET */
1853   /* 24000 rom 9   DFS + SRAM */
1854   /* 28000 rom 10  Viewsheet */
1855   /* 2c000 rom 11  Edit */
1856   /* 30000 rom 12  BASIC */
1857   /* 34000 rom 13  ADFS */
1858   /* 38000 rom 14  View + MOS code */
1859   /* 3c000 rom 15  Terminal + Tube host + CFS */
1860//  ROM_LOAD("anfs424.ic27", 0x20000, 0x4000, CRC(1b9f75fd) SHA1(875f71edd48f87c3a55371409d0cc2015d8b5853) )
1790   /* 00000 rom 0   SK3 Rear Cartridge bottom 16K */
1791   /* 04000 rom 1   SK3 Rear Cartridge top 16K */
1792   /* 08000 rom 2   SK4 Front Cartridge bottom 16K */
1793   /* 0c000 rom 3   SK4 Front Cartridge top 16K */
1794   /* 10000 rom 4   IC41 SWRAM or bottom 16K */
1795   /* 14000 rom 5   IC41 SWRAM or top 16K */
1796   /* 18000 rom 6   IC37 SWRAM or bottom 16K */
1797   /* 1c000 rom 7   IC37 SWRAM or top 16K */
1798   /* 20000 rom 8   IC27 ANFS */
1799   /* 24000 rom 9   IC24 DFS + SRAM */
1800   /* 28000 rom 10  IC24 Viewsheet */
1801   /* 2c000 rom 11  IC24 Edit */
1802   /* 30000 rom 12  IC24 BASIC */
1803   /* 34000 rom 13  IC24 ADFS */
1804   /* 38000 rom 14  IC24 View + MOS code */
1805   /* 3c000 rom 15  IC24 Terminal + Tube host + CFS */
1806   //ROM_LOAD("anfs424.rom", 0x20000, 0x4000, CRC(1b9f75fd) SHA1(875f71edd48f87c3a55371409d0cc2015d8b5853))
18611807
18621808   ROM_REGION(0x4000, "os", 0)
18631809   ROM_COPY("option", 0x40000, 0, 0x4000)
r249893r249894
18761822   ROM_SYSTEM_BIOS( 0, "mos510", "Enhanced MOS 5.10" )
18771823   ROMX_LOAD("mos510.ic49", 0x30000, 0x10000, BAD_DUMP CRC(9a2a6086) SHA1(094ab37b0b6437c4f1653eaa0602ef102737adb6), ROM_BIOS(1)) /* Merged individual ROM bank dumps */
18781824   ROM_SYSTEM_BIOS( 1, "mos500", "Original MOS 5.00" )
1879   ROMX_LOAD("mos500.ic49", 0x30000, 0x10000, BAD_DUMP CRC(f6170023) SHA1(140d002d2d9cd34b47197a2ba823505af2a84633), ROM_BIOS(2)) /* Merged individual ROM bank dumps */
1825   ROMX_LOAD("mos500.ic49", 0x30000, 0x10000, CRC(f6170023) SHA1(140d002d2d9cd34b47197a2ba823505af2a84633), ROM_BIOS(2))
18801826   ROM_COPY("option", 0x30000, 0x40000, 0x4000) /* Move loaded roms into place */
18811827   ROM_FILL(0x30000, 0x4000, 0xFFFF)
18821828   /* 00000 rom 0   EXTERNAL */
18831829   /* 04000 rom 1   EXTERNAL */
1884   /* 08000 rom 2   SPARE SOCKET */
1885   /* 0c000 rom 3   SPARE SOCKET */
1830   /* 08000 rom 2   IC23 SPARE SOCKET */
1831   /* 0c000 rom 3   IC17 SPARE SOCKET */
18861832   /* 10000 rom 4   SWRAM */
18871833   /* 14000 rom 5   SWRAM */
18881834   /* 18000 rom 6   SWRAM */
18891835   /* 1c000 rom 7   SWRAM */
1890   /* 20000 rom 8   SPARE SOCKET */
1836   /* 20000 rom 8   IC29 SPARE SOCKET */
18911837   /* 24000 rom 9   UNUSED */
18921838   /* 28000 rom 10  UNUSED */
18931839   /* 2c000 rom 11  UNUSED */
18941840   /* 30000 rom 12  UNUSED */
1895   /* 34000 rom 13  ADFS */
1896   /* 38000 rom 14  BASIC */
1897   /* 3c000 rom 15  Utils */
1841   /* 34000 rom 13  IC16 ADFS */
1842   /* 38000 rom 14  IC16 BASIC */
1843   /* 3c000 rom 15  IC16 Utils */
18981844
18991845   ROM_REGION(0x4000, "os", 0)
19001846   ROM_COPY("option", 0x40000, 0, 0x4000)
r249893r249894
19161862   ROM_FILL(0x30000, 0x4000, 0xFFFF)
19171863   /* 00000 rom 0   EXTERNAL */
19181864   /* 04000 rom 1   EXTERNAL */
1919   /* 08000 rom 2   International */
1920   /* 0c000 rom 3   SPARE SOCKET */
1865   /* 08000 rom 2   IC23 International */
1866   /* 0c000 rom 3   IC17 SPARE SOCKET */
19211867   /* 10000 rom 4   SWRAM */
19221868   /* 14000 rom 5   SWRAM */
19231869   /* 18000 rom 6   SWRAM */
19241870   /* 1c000 rom 7   SWRAM */
1925   /* 20000 rom 8   Arabian */
1871   /* 20000 rom 8   IC29 Arabian */
19261872   /* 24000 rom 9   UNUSED */
19271873   /* 28000 rom 10  UNUSED */
19281874   /* 2c000 rom 11  UNUSED */
19291875   /* 30000 rom 12  UNUSED */
1930   /* 34000 rom 13  ADFS */
1931   /* 38000 rom 14  BASIC */
1932   /* 3c000 rom 15  Utils */
1876   /* 34000 rom 13  IC16 ADFS */
1877   /* 38000 rom 14  IC16 BASIC */
1878   /* 3c000 rom 15  IC16 Utils */
19331879   ROM_LOAD("international16.rom", 0x8000 , 0x4000, CRC(0ef527b1) SHA1(dc5149ccf588cd591a6ad47727474ef3313272ce) )
19341880   ROM_LOAD("arabian-c22.rom"    , 0x20000, 0x4000, CRC(4f3aadff) SHA1(2bbf61ba68264ce5845aab9c54e750b0efe219c8) )
19351881
r249893r249894
19531899   ROM_FILL(0x30000, 0x4000, 0xFFFF)
19541900   /* 00000 rom 0   EXTERNAL */
19551901   /* 04000 rom 1   EXTERNAL */
1956   /* 08000 rom 2   SPARE SOCKET */
1957   /* 0c000 rom 3   SPARE SOCKET */
1902   /* 08000 rom 2   IC23 SPARE SOCKET */
1903   /* 0c000 rom 3   IC17 SPARE SOCKET */
19581904   /* 10000 rom 4   SWRAM */
19591905   /* 14000 rom 5   SWRAM */
19601906   /* 18000 rom 6   SWRAM */
19611907   /* 1c000 rom 7   SWRAM */
1962   /* 20000 rom 8   SPARE SOCKET */
1908   /* 20000 rom 8   IC29 SPARE SOCKET */
19631909   /* 24000 rom 9   UNUSED */
19641910   /* 28000 rom 10  UNUSED */
19651911   /* 2c000 rom 11  UNUSED */
19661912   /* 30000 rom 12  UNUSED */
1967   /* 34000 rom 13  ADFS */
1968   /* 38000 rom 14  BASIC */
1969   /* 3c000 rom 15  Utils */
1913   /* 34000 rom 13  IC16 ADFS */
1914   /* 38000 rom 14  IC16 BASIC */
1915   /* 3c000 rom 15  IC16 Utils */
19701916
19711917   ROM_REGION(0x4000, "os", 0)
19721918   ROM_COPY("option", 0x40000, 0, 0x4000)
r249893r249894
19791925/*     YEAR  NAME      PARENT    COMPAT MACHINE   INPUT  CLASS        INIT     COMPANY     FULLNAME                         FLAGS */
19801926COMP ( 1981, bbcb,     0,        bbca,  bbcb,     bbcb,  bbc_state,   bbc,     "Acorn",    "BBC Micro Model B w/8271 FDC",  MACHINE_IMPERFECT_GRAPHICS)
19811927COMP ( 1981, bbca,     bbcb,     0,     bbca,     bbca,  bbc_state,   bbc,     "Acorn",    "BBC Micro Model A",             MACHINE_IMPERFECT_GRAPHICS)
1982COMP ( 1981, bbcb_de,  bbcb,     0,     bbcb_de,  bbcb,  bbc_state,   bbc,     "Acorn",    "BBC Micro Model B (German)",    MACHINE_IMPERFECT_GRAPHICS)
1928COMP ( 1982, bbcb_de,  bbcb,     0,     bbcb_de,  bbcb,  bbc_state,   bbc,     "Acorn",    "BBC Micro Model B (German)",    MACHINE_IMPERFECT_GRAPHICS)
19831929COMP ( 1983, bbcb_us,  bbcb,     0,     bbcb_us,  bbcb,  bbc_state,   bbc,     "Acorn",    "BBC Micro Model B (US)",        MACHINE_IMPERFECT_GRAPHICS)
1984COMP ( 1985, bbcb1770, bbcb,     0,     bbcb1770, bbcb,  bbc_state,   bbc,     "Acorn",    "BBC Micro Model B w/1770 FDC",  MACHINE_IMPERFECT_GRAPHICS)
1985COMP ( 1985, bbcbp,    0,        bbcb,  bbcbp,    bbcb,  bbc_state,   bbc,     "Acorn",    "BBC Micro Model B+ 64K",        MACHINE_IMPERFECT_GRAPHICS)
1986COMP ( 1985, bbcbp128, bbcbp,    0,     bbcbp128, bbcb,  bbc_state,   bbc,     "Acorn",    "BBC Micro Model B+ 128K",       MACHINE_IMPERFECT_GRAPHICS)
1987COMP ( 1985, abc110,   abc210,   0,     abc110,   abc,   bbc_state,   bbc,     "Acorn",    "ABC 110",                       MACHINE_NOT_WORKING)
1988COMP ( 1985, abc210,   0,        0,     abc210,   abc,   bbc_state,   bbc,     "Acorn",    "ABC 210/Cambridge Workstation", MACHINE_NOT_WORKING)
1989COMP ( 1985, abc310,   abc210,   0,     abc310,   abc,   bbc_state,   bbc,     "Acorn",    "ABC 310",                       MACHINE_NOT_WORKING)
1930COMP ( 1984, bbcb1770, bbcb,     0,     bbcb1770, bbcb,  bbc_state,   bbc,     "Acorn",    "BBC Micro Model B w/1770 FDC",  MACHINE_IMPERFECT_GRAPHICS)
1931COMP ( 1985, bbcbp,    0,        bbcb,  bbcbp,    bbcbp, bbc_state,   bbc,     "Acorn",    "BBC Micro Model B+ 64K",        MACHINE_IMPERFECT_GRAPHICS)
1932COMP ( 1985, bbcbp128, bbcbp,    0,     bbcbp128, bbcbp, bbc_state,   bbc,     "Acorn",    "BBC Micro Model B+ 128K",       MACHINE_IMPERFECT_GRAPHICS)
1933COMP ( 1985, acw443,   0,        0,     acw443,   abc,   bbc_state,   bbc,     "Acorn",    "ABC 210/Cambridge Workstation", MACHINE_NOT_WORKING)
1934COMP ( 1985, abc110,   acw443,   0,     abc110,   abc,   bbc_state,   bbc,     "Acorn",    "ABC 110",                       MACHINE_NOT_WORKING)
1935COMP ( 1985, abc310,   acw443,   0,     abc310,   abc,   bbc_state,   bbc,     "Acorn",    "ABC 310",                       MACHINE_NOT_WORKING)
19901936COMP ( 1985, reutapm,  0,        0,     reutapm,  bbcb,  bbc_state,   bbc,     "Acorn",    "Reuters APM",                   MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
19911937COMP ( 1986, bbcm,     0,        bbcb,  bbcm,     bbcm,  bbc_state,   bbc,     "Acorn",    "BBC Master 128",                MACHINE_IMPERFECT_GRAPHICS)
19921938COMP ( 1986, bbcmt,    bbcm,     0,     bbcmt,    bbcm,  bbc_state,   bbc,     "Acorn",    "BBC Master Turbo",              MACHINE_NOT_WORKING)
19931939COMP ( 1986, bbcmaiv,  bbcm,     0,     bbcmaiv,  bbcm,  bbc_state,   bbc,     "Acorn",    "BBC Master AIV",                MACHINE_NOT_WORKING)
1994COMP ( 1986, bbcmet,   bbcm,     0,     bbcmet,   bbcm,  bbc_state,   bbc,     "Acorn",    "BBC Master ET",                 MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS)
1940COMP ( 1986, bbcmet,   bbcm,     0,     bbcmet,   bbcm,  bbc_state,   bbc,     "Acorn",    "BBC Master ET",                 MACHINE_IMPERFECT_GRAPHICS)
19951941COMP ( 1986, bbcm512,  bbcm,     0,     bbcm512,  bbcm,  bbc_state,   bbc,     "Acorn",    "BBC Master 512",                MACHINE_NOT_WORKING)
19961942COMP ( 1986, bbcmarm,  bbcm,     0,     bbcmarm,  bbcm,  bbc_state,   bbc,     "Acorn",    "ARM Evaluation System",         MACHINE_NOT_WORKING)
19971943COMP ( 1986, bbcmc,    0,        bbcm,  bbcmc,    bbcm,  bbc_state,   bbc,     "Acorn",    "BBC Master Compact",            MACHINE_IMPERFECT_GRAPHICS)
trunk/src/mame/drivers/by17.c
r249893r249894
11// license:BSD-3-Clause
2// copyright-holders:Robbbert
2// copyright-holders:Robbbert, Quench
33/********************************************************************************************
44
55    PINBALL
66    Bally MPU AS-2518-17
77
8    These are some very early and well known SS machines, such as 'Eight Ball'.
8    These are some very early and well known Solid State machines, such as 'Eight Ball'.
99
10    They have an orange digital display, and a chime unit.
10    They have orange digital 6 digit displays, and a mechanical chime unit for sounds.
1111
1212
1313ToDo:
r249893r249894
2222#include "cpu/m6800/m6800.h"
2323#include "machine/6821pia.h"
2424#include "by17.lh"
25#include "by17_pwerplay.lh"
26#include "by17_matahari.lh"
2527
2628
2729class by17_state : public genpin_class
r249893r249894
3032   by17_state(const machine_config &mconfig, device_type type, const char *tag)
3133      : genpin_class(mconfig, type, tag)
3234      , m_maincpu(*this, "maincpu")
35      , m_nvram(*this, "nvram")
3336      , m_pia_u10(*this, "pia_u10")
3437      , m_pia_u11(*this, "pia_u11")
3538      , m_io_test(*this, "TEST")
r249893r249894
4447      , m_io_x4(*this, "X4")
4548   { }
4649
50   DECLARE_DRIVER_INIT(by17);
51   DECLARE_DRIVER_INIT(matahari);
52   DECLARE_DRIVER_INIT(pwerplay);
4753   DECLARE_READ8_MEMBER(u10_a_r);
4854   DECLARE_WRITE8_MEMBER(u10_a_w);
4955   DECLARE_READ8_MEMBER(u10_b_r);
r249893r249894
5157   DECLARE_READ8_MEMBER(u11_a_r);
5258   DECLARE_WRITE8_MEMBER(u11_a_w);
5359   DECLARE_WRITE8_MEMBER(u11_b_w);
60   DECLARE_READ8_MEMBER(nibble_nvram_r);
61   DECLARE_WRITE8_MEMBER(nibble_nvram_w);
62   DECLARE_READ_LINE_MEMBER(u10_ca1_r);
63   DECLARE_READ_LINE_MEMBER(u10_cb1_r);
5464   DECLARE_WRITE_LINE_MEMBER(u10_ca2_w);
5565   DECLARE_WRITE_LINE_MEMBER(u10_cb2_w);
66   DECLARE_READ_LINE_MEMBER(u11_ca1_r);
67   DECLARE_READ_LINE_MEMBER(u11_cb1_r);
5668   DECLARE_WRITE_LINE_MEMBER(u11_ca2_w);
5769   DECLARE_WRITE_LINE_MEMBER(u11_cb2_w);
58   DECLARE_INPUT_CHANGED_MEMBER(activity_test);
70   DECLARE_INPUT_CHANGED_MEMBER(activity_button);
5971   DECLARE_INPUT_CHANGED_MEMBER(self_test);
60   TIMER_DEVICE_CALLBACK_MEMBER(timer_x);
72   DECLARE_CUSTOM_INPUT_MEMBER(outhole_x0);
73   DECLARE_CUSTOM_INPUT_MEMBER(saucer_x3);
74   DECLARE_CUSTOM_INPUT_MEMBER(drop_target_x2);
75   DECLARE_MACHINE_RESET(by17);
76   TIMER_DEVICE_CALLBACK_MEMBER(timer_z_freq);
77   TIMER_DEVICE_CALLBACK_MEMBER(timer_z_pulse);
6178   TIMER_DEVICE_CALLBACK_MEMBER(u11_timer);
79   TIMER_DEVICE_CALLBACK_MEMBER(timer_d_pulse);
6280private:
6381   UINT8 m_u10a;
6482   UINT8 m_u10b;
6583   UINT8 m_u11a;
6684   UINT8 m_u11b;
6785   bool m_u10_ca2;
86   bool m_u10_cb1;
6887   bool m_u10_cb2;
88   bool m_u11_ca1;
6989   bool m_u11_cb2;
70   bool m_timer_x;
71   bool m_u11_timer;
7290   UINT8 m_digit;
73   UINT8 m_counter;
74   UINT8 m_segment[5];
75   virtual void machine_reset();
91   UINT8 m_segment[6];
92   UINT8 m_lamp_decode;
93   UINT8 m_solenoid_features[20][4];
94   UINT8 m_io_hold_x[5];      // Used to hold switches closed (drop targets, balls in outholes/saucers etc). Solenoid activity release them.
7695   required_device<m6800_cpu_device> m_maincpu;
96   required_shared_ptr<UINT8> m_nvram;
7797   required_device<pia6821_device> m_pia_u10;
7898   required_device<pia6821_device> m_pia_u11;
7999   required_ioport m_io_test;
r249893r249894
91111
92112static ADDRESS_MAP_START( by17_map, AS_PROGRAM, 8, by17_state )
93113   ADDRESS_MAP_GLOBAL_MASK(0x1fff)
94   AM_RANGE(0x0000, 0x007f) AM_RAM // internal to the cpu
114   AM_RANGE(0x0000, 0x007f) AM_RAM
95115   AM_RANGE(0x0088, 0x008b) AM_DEVREADWRITE("pia_u10", pia6821_device, read, write)
96116   AM_RANGE(0x0090, 0x0093) AM_DEVREADWRITE("pia_u11", pia6821_device, read, write)
97   AM_RANGE(0x0200, 0x02ff) AM_RAM AM_SHARE("nvram")
117   AM_RANGE(0x0200, 0x02ff) AM_RAM AM_READWRITE(nibble_nvram_r, nibble_nvram_w) AM_SHARE("nvram")
98118   AM_RANGE(0x1000, 0x1fff) AM_ROM AM_REGION("roms", 0 )
99119ADDRESS_MAP_END
100120
121
101122static INPUT_PORTS_START( by17 )
102123   PORT_START("TEST")
103   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Self Test") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, by17_state, self_test, 0)
104   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Activity") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, by17_state, activity_test, 0)
124   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Self Test") PORT_CHANGED_MEMBER(DEVICE_SELF, by17_state, self_test, NULL)
125   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Activity")  PORT_CHANGED_MEMBER(DEVICE_SELF, by17_state, activity_button, NULL)
105126
106127   PORT_START("DSW0")
107   PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 1")
108   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C )) // same as 01
128   PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 1")            PORT_DIPLOCATION("SW0:!1,!2,!3,!4,!5") // same as 03
129   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C ))
109130   PORT_DIPSETTING(    0x02, DEF_STR( 1C_1C ))
110131   PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ))
111132   PORT_DIPSETTING(    0x04, DEF_STR( 1C_2C ))
r249893r249894
123144   PORT_DIPSETTING(    0x10, DEF_STR( 1C_8C ))
124145   PORT_DIPSETTING(    0x11, DEF_STR( 2C_8C ))
125146   PORT_DIPSETTING(    0x12, DEF_STR( 1C_9C ))
126   PORT_DIPSETTING(    0x13, "2 coins 9 credits")
127   PORT_DIPSETTING(    0x14, "1 coin 10 credits")
128   PORT_DIPSETTING(    0x15, "2 coins 10 credits")
129   PORT_DIPSETTING(    0x16, "1 coin 11 credits")
130   PORT_DIPSETTING(    0x17, "2 coins 11 credits")
131   PORT_DIPSETTING(    0x18, "1 coin 12 credits")
132   PORT_DIPSETTING(    0x19, "2 coins 12 credits")
133   PORT_DIPSETTING(    0x1a, "1 coin 13 credits")
134   PORT_DIPSETTING(    0x1b, "2 coins 13 credits")
135   PORT_DIPSETTING(    0x1c, "1 coin 14 credits")
136   PORT_DIPSETTING(    0x1d, "2 coins 14 credits")
137   PORT_DIPSETTING(    0x1e, "1 coin 15 credits")
138   PORT_DIPSETTING(    0x1f, "2 coins 15 credits")
139   PORT_DIPNAME( 0x20, 0x20, "Award")
147   PORT_DIPSETTING(    0x13, "2 Coins/9 Credits")
148   PORT_DIPSETTING(    0x14, "1 Coin/10 Credits")
149   PORT_DIPSETTING(    0x15, "2 Coins/10 Credits")
150   PORT_DIPSETTING(    0x16, "1 Coin/11 Credits")
151   PORT_DIPSETTING(    0x17, "2 Coins/11 Credits")
152   PORT_DIPSETTING(    0x18, "1 Coin/12 Credits")
153   PORT_DIPSETTING(    0x19, "2 Coins/12 Credits")
154   PORT_DIPSETTING(    0x1a, "1 Coin/13 Credits")
155   PORT_DIPSETTING(    0x1b, "2 Coins/13 Credits")
156   PORT_DIPSETTING(    0x1c, "1 Coin/14 Credits")
157   PORT_DIPSETTING(    0x1d, "2 Coins/14 Credits")
158   PORT_DIPSETTING(    0x1e, "1 Coin/15 Credits")
159   PORT_DIPSETTING(    0x1f, "2 Coins/15 Credits")
160   PORT_DIPNAME( 0x20, 0x20, "Score Level Award")         PORT_DIPLOCATION("SW0:!6")
140161   PORT_DIPSETTING(    0x00, "Extra Ball")
141   PORT_DIPSETTING(    0x20, "Free Game")
142   PORT_DIPNAME( 0x40, 0x00, "S07")
162   PORT_DIPSETTING(    0x20, "Replay")
163   PORT_DIPNAME( 0x40, 0x00, "S07")                  PORT_DIPLOCATION("SW0:!7")
143164   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
144165   PORT_DIPSETTING(    0x40, DEF_STR( On ))
145   PORT_DIPNAME( 0x80, 0x00, "Play melody always")
166   PORT_DIPNAME( 0x80, 0x80, "Play Melodies")            PORT_DIPLOCATION("SW0:!8")
146167   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
147168   PORT_DIPSETTING(    0x80, DEF_STR( On ))
148169
149170   PORT_START("DSW1")
150   PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 3")
151   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C )) // same as 01
171   PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 3")            PORT_DIPLOCATION("SW1:!1,!2,!3,!4,!5") // same as 01
172   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C ))
152173   PORT_DIPSETTING(    0x02, DEF_STR( 1C_1C ))
153174   PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ))
154175   PORT_DIPSETTING(    0x04, DEF_STR( 1C_2C ))
r249893r249894
166187   PORT_DIPSETTING(    0x10, DEF_STR( 1C_8C ))
167188   PORT_DIPSETTING(    0x11, DEF_STR( 2C_8C ))
168189   PORT_DIPSETTING(    0x12, DEF_STR( 1C_9C ))
169   PORT_DIPSETTING(    0x13, "2 coins 9 credits")
170   PORT_DIPSETTING(    0x14, "1 coin 10 credits")
171   PORT_DIPSETTING(    0x15, "2 coins 10 credits")
172   PORT_DIPSETTING(    0x16, "1 coin 11 credits")
173   PORT_DIPSETTING(    0x17, "2 coins 11 credits")
174   PORT_DIPSETTING(    0x18, "1 coin 12 credits")
175   PORT_DIPSETTING(    0x19, "2 coins 12 credits")
176   PORT_DIPSETTING(    0x1a, "1 coin 13 credits")
177   PORT_DIPSETTING(    0x1b, "2 coins 13 credits")
178   PORT_DIPSETTING(    0x1c, "1 coin 14 credits")
179   PORT_DIPSETTING(    0x1d, "2 coins 14 credits")
180   PORT_DIPSETTING(    0x1e, "1 coin 15 credits")
181   PORT_DIPSETTING(    0x1f, "2 coins 15 credits")
182   PORT_DIPNAME( 0x20, 0x00, "S14")
190   PORT_DIPSETTING(    0x13, "2 Coins/9 Credits")
191   PORT_DIPSETTING(    0x14, "1 Coin/10 Credits")
192   PORT_DIPSETTING(    0x15, "2 Coins/10 Credits")
193   PORT_DIPSETTING(    0x16, "1 Coin/11 Credits")
194   PORT_DIPSETTING(    0x17, "2 Coins/11 Credits")
195   PORT_DIPSETTING(    0x18, "1 Coin/12 Credits")
196   PORT_DIPSETTING(    0x19, "2 Coins/12 Credits")
197   PORT_DIPSETTING(    0x1a, "1 Coin/13 Credits")
198   PORT_DIPSETTING(    0x1b, "2 Coins/13 Credits")
199   PORT_DIPSETTING(    0x1c, "1 Coin/14 Credits")
200   PORT_DIPSETTING(    0x1d, "2 Coins/14 Credits")
201   PORT_DIPSETTING(    0x1e, "1 Coin/15 Credits")
202   PORT_DIPSETTING(    0x1f, "2 Coins/15 Credits")
203   PORT_DIPNAME( 0x20, 0x00, "S14")                        PORT_DIPLOCATION("SW1:!6")
183204   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
184205   PORT_DIPSETTING(    0x20, DEF_STR( On ))
185   PORT_DIPNAME( 0x40, 0x00, "Award for beating high score")
206   PORT_DIPNAME( 0x40, 0x40, "Award for Beating Highest Score")   PORT_DIPLOCATION("SW1:!7")
186207   PORT_DIPSETTING(    0x00, "Novelty")
187   PORT_DIPSETTING(    0x40, "3 Free Games")
188   PORT_DIPNAME( 0x80, 0x00, "Balls")
208   PORT_DIPSETTING(    0x40, "3 Credits")
209   PORT_DIPNAME( 0x80, 0x80, "Balls per Game")                  PORT_DIPLOCATION("SW1:!8")
189210   PORT_DIPSETTING(    0x00, "3")
190211   PORT_DIPSETTING(    0x80, "5")
191212
192213   PORT_START("DSW2")
193   PORT_DIPNAME( 0x07, 0x02, "Maximum Credits")
214   PORT_DIPNAME( 0x07, 0x01, "Maximum Credits")      PORT_DIPLOCATION("SW2:!1,!2,!3")
194215   PORT_DIPSETTING(    0x00, "5")
195216   PORT_DIPSETTING(    0x01, "10")
196217   PORT_DIPSETTING(    0x02, "15")
197   PORT_DIPSETTING(    0x00, "20")
198   PORT_DIPSETTING(    0x00, "25")
199   PORT_DIPSETTING(    0x00, "30")
200   PORT_DIPSETTING(    0x00, "35")
201   PORT_DIPSETTING(    0x00, "40")
202   PORT_DIPNAME( 0x08, 0x08, "Credits displayed")
218   PORT_DIPSETTING(    0x03, "20")
219   PORT_DIPSETTING(    0x04, "25")
220   PORT_DIPSETTING(    0x05, "30")
221   PORT_DIPSETTING(    0x06, "35")
222   PORT_DIPSETTING(    0x07, "40")
223   PORT_DIPNAME( 0x08, 0x08, "Credits Displayed")      PORT_DIPLOCATION("SW2:!4")
203224   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
204225   PORT_DIPSETTING(    0x08, DEF_STR( On ))
205226   PORT_DIPNAME( 0x10, 0x10, "Match")
206   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
227   PORT_DIPSETTING(    0x00, DEF_STR( Off ))         PORT_DIPLOCATION("SW2:!5")
207228   PORT_DIPSETTING(    0x10, DEF_STR( On ))
208229   // from here, game-specific options
209   PORT_DIPNAME( 0x20, 0x00, "S22")
230   PORT_DIPNAME( 0x20, 0x00, "S22 (game specific)")   PORT_DIPLOCATION("SW2:!6")
210231   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
211232   PORT_DIPSETTING(    0x20, DEF_STR( On ))
212   PORT_DIPNAME( 0x40, 0x00, "S23")
233   PORT_DIPNAME( 0x40, 0x00, "S23 (game specific)")   PORT_DIPLOCATION("SW2:!7")
213234   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
214235   PORT_DIPSETTING(    0x40, DEF_STR( On ))
215   PORT_DIPNAME( 0x80, 0x00, "No free balls or games") // night rider
236   PORT_DIPNAME( 0x80, 0x00, "No Free Balls or Games")   PORT_DIPLOCATION("SW2:!8")  // night rider
216237   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
217238   PORT_DIPSETTING(    0x80, DEF_STR( On ))
218239
219240   PORT_START("DSW3")
220   PORT_DIPNAME( 0x01, 0x00, "S25")
241   PORT_DIPNAME( 0x0f, 0x00, "Coin Slot 2")         PORT_DIPLOCATION("SW3:!1,!2,!3,!4")
242   PORT_DIPSETTING(    0x00, "Same as Slot 1")
243   PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ))
244   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ))
245   PORT_DIPSETTING(    0x03, DEF_STR( 1C_3C ))
246   PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ))
247   PORT_DIPSETTING(    0x05, DEF_STR( 1C_5C ))
248   PORT_DIPSETTING(    0x06, DEF_STR( 1C_6C ))
249   PORT_DIPSETTING(    0x07, DEF_STR( 1C_7C ))
250   PORT_DIPSETTING(    0x08, DEF_STR( 1C_8C ))
251   PORT_DIPSETTING(    0x09, DEF_STR( 1C_9C ))
252   PORT_DIPSETTING(    0x0a, "1 Coin/10 Credits")
253   PORT_DIPSETTING(    0x0b, "1 Coin/11 Credits")
254   PORT_DIPSETTING(    0x0c, "1 Coin/12 Credits")
255   PORT_DIPSETTING(    0x0d, "1 Coin/13 Credits")
256   PORT_DIPSETTING(    0x0e, "1 Coin/14 Credits")
257   PORT_DIPSETTING(    0x0f, "1 Coin/15 Credits")
258   PORT_DIPNAME( 0x10, 0x00, "S29 (game specific)")   PORT_DIPLOCATION("SW3:!5")
221259   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
222   PORT_DIPSETTING(    0x01, DEF_STR( On ))
223   PORT_DIPNAME( 0x02, 0x00, "S26")
224   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
225   PORT_DIPSETTING(    0x02, DEF_STR( On ))
226   PORT_DIPNAME( 0x04, 0x00, "S27")
227   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
228   PORT_DIPSETTING(    0x04, DEF_STR( On ))
229   PORT_DIPNAME( 0x08, 0x00, "S28")
230   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
231   PORT_DIPSETTING(    0x08, DEF_STR( On ))
232   PORT_DIPNAME( 0x10, 0x00, "S29")
233   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
234260   PORT_DIPSETTING(    0x10, DEF_STR( On ))
235   PORT_DIPNAME( 0x20, 0x00, "S30")
261   PORT_DIPNAME( 0x20, 0x00, "S30 (game specific)")   PORT_DIPLOCATION("SW3:!6")
236262   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
237263   PORT_DIPSETTING(    0x20, DEF_STR( On ))
238   PORT_DIPNAME( 0x40, 0x00, "Awards") // night rider
264   PORT_DIPNAME( 0x40, 0x00, "Awards")               PORT_DIPLOCATION("SW3:!7") // night rider
239265   PORT_DIPSETTING(    0x00, "Conservative")
240266   PORT_DIPSETTING(    0x40, "Liberal")
241   PORT_DIPNAME( 0x80, 0x00, "Lane Adjustment") // night rider
267   PORT_DIPNAME( 0x80, 0x00, "Lane Adjustment")      PORT_DIPLOCATION("SW3:!8") // night rider
242268   PORT_DIPSETTING(    0x00, "Conservative")
243269   PORT_DIPSETTING(    0x80, "Liberal")
244270
245271   PORT_START("X0")
246272   // custom
247   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
248   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
249   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
250   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
251   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE)
273   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
274   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
275   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
276   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
277   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
252278   // standard
253279   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
254280   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
255   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
281//   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_BACKSPACE)
282   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, outhole_x0, (void *)0x07)   //  PORT_CODE(KEYCODE_BACKSPACE)
256283
257284   PORT_START("X1")
258285   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN3 )
259286   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
260287   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
261   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_L)
262   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
263   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
264   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
265   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT1 ) PORT_NAME("Slam Tilt")
288   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
289   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
290   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
291   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_L)
292   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT2 ) PORT_NAME("Slam Tilt") PORT_CODE(KEYCODE_EQUALS)
266293
267294   // custom
268295   PORT_START("X2")
269   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_A)
270   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S)
271   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_D)
272   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_F)
273   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_G)
274   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_H)
275   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_J)
276   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_K)
296   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_K)
297   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_J)
298   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_H)
299   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_G)
300   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_F)
301   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_D)
302   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S)
303   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_A)
277304
278305   PORT_START("X3")
279   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
280   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_W)
281   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_E)
282   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_R)
283   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
284   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_U)
285   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_I)
286   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_O)
306   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_O)
307   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_I)
308   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_U)
309   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
310   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_R)
311   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_E)
312   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_W)
313   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
287314
288315   PORT_START("X4")
289   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
290   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_C)
291   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_V)
316   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
317   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_M)
318   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_N)
292319   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_B)
293   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_N)
294   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_M)
295   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
296   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
320   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_V)
321   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_C)
322   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_X)
323   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
297324INPUT_PORTS_END
298325
299INPUT_CHANGED_MEMBER( by17_state::activity_test )
326static INPUT_PORTS_START( matahari )
327   PORT_INCLUDE( by17 )
328
329   PORT_MODIFY("DSW0")
330   PORT_DIPNAME( 0x60, 0x60, "Award for Beating Highest Score")      PORT_DIPLOCATION("SW0:!6,!7")
331   PORT_DIPSETTING(    0x00, "Nothing")
332   PORT_DIPSETTING(    0x20, "1 Credit")
333   PORT_DIPSETTING(    0x40, "2 Credits")
334   PORT_DIPSETTING(    0x60, "3 Credits")
335
336   PORT_MODIFY("DSW1")
337   PORT_DIPNAME( 0x40, 0x00, "S15")                           PORT_DIPLOCATION("SW1:!7")
338   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
339   PORT_DIPSETTING(    0x40, DEF_STR( On ))
340
341   PORT_MODIFY("DSW2")
342   PORT_DIPNAME( 0x20, 0x00, "S22")                           PORT_DIPLOCATION("SW2:!6")
343   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
344   PORT_DIPSETTING(    0x20, DEF_STR( On ))
345   PORT_DIPNAME( 0x40, 0x00, "Saucer Award Feature")               PORT_DIPLOCATION("SW2:!7")
346   PORT_DIPSETTING(    0x00, "Start at 3000 Points")
347   PORT_DIPSETTING(    0x40, "Start at 2X Bonus")
348   PORT_DIPNAME( 0x80, 0x00, "A & B Special Award Feature Per Ball")   PORT_DIPLOCATION("SW2:!8")
349   PORT_DIPSETTING(    0x00, "Award Special Once")
350   PORT_DIPSETTING(    0x80, "Award Special Alternates")
351
352   PORT_MODIFY("DSW3")
353   PORT_DIPNAME( 0x10, 0x00, "S29")                           PORT_DIPLOCATION("SW3:!5")
354   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
355   PORT_DIPSETTING(    0x10, DEF_STR( On ))
356   PORT_DIPNAME( 0x60, 0x60, "Extra Ball / Specials Award Mode")      PORT_DIPLOCATION("SW3:!6,!7")
357   PORT_DIPSETTING(    0x00, "Novelty / 50,000")
358//   PORT_DIPSETTING(    0x20, "")
359   PORT_DIPSETTING(    0x40, "Extra Ball / 50,000")
360   PORT_DIPSETTING(    0x60, "Extra Ball / Replay")
361   PORT_DIPNAME( 0x80, 0x80, "Score Level Award")                  PORT_DIPLOCATION("SW3:!8")
362   PORT_DIPSETTING(    0x00, "Extra Ball")
363   PORT_DIPSETTING(    0x80, "Replay")
364
365   PORT_MODIFY("X2")   /* Drop Target switches */
366   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x20)   // PORT_CODE(KEYCODE_K)
367   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x21)   // PORT_CODE(KEYCODE_J)
368   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x22)   // PORT_CODE(KEYCODE_H)
369   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x23)   // PORT_CODE(KEYCODE_G)
370   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x24)   // PORT_CODE(KEYCODE_F)
371   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x25)   // PORT_CODE(KEYCODE_D)
372   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x26)   // PORT_CODE(KEYCODE_S)
373   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x27)   // PORT_CODE(KEYCODE_A)
374
375   PORT_MODIFY("X3")
376   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, saucer_x3, (void *)0x37)   // PORT_CODE(KEYCODE_Q)
377INPUT_PORTS_END
378
379static INPUT_PORTS_START( pwerplay )
380   PORT_INCLUDE( by17 )
381
382   PORT_MODIFY("DSW0")
383   PORT_DIPNAME( 0x60, 0x60, "Award for Beating Highest Score")   PORT_DIPLOCATION("SW0:!6,!7")
384   PORT_DIPSETTING(    0x00, "Nothing")
385   PORT_DIPSETTING(    0x20, "1 Credit")
386   PORT_DIPSETTING(    0x40, "2 Credits")
387   PORT_DIPSETTING(    0x60, "3 Credits")
388
389   PORT_MODIFY("DSW1")
390   PORT_DIPNAME( 0x20, 0x00, "Drop Target Award Sequence")         PORT_DIPLOCATION("SW1:!6")
391   PORT_DIPSETTING(    0x00, "5X then Extra Ball")
392   PORT_DIPSETTING(    0x20, "5X and Extra Ball")
393   PORT_DIPNAME( 0x40, 0x00, "Rollover Button Score")            PORT_DIPLOCATION("SW1:!7")
394   PORT_DIPSETTING(    0x00, "Conservative - 100 Points")
395   PORT_DIPSETTING(    0x40, "Liberal - 1,000 Points")
396
397   PORT_MODIFY("DSW2")
398   PORT_DIPNAME( 0x20, 0x00, "Drop Target Bank Reset")            PORT_DIPLOCATION("SW2:!6")
399   PORT_DIPSETTING(    0x00, "Reset Both Banks")
400   PORT_DIPSETTING(    0x20, "Reset Completed Bank Only")
401   PORT_DIPNAME( 0x40, 0x00, "Pop Bumper Scores")               PORT_DIPLOCATION("SW2:!7")
402   PORT_DIPSETTING(    0x00, "Alternate 1,000 Points Top and Bottom")
403   PORT_DIPSETTING(    0x40, "All score 1,000 Points When Lit")
404
405   PORT_MODIFY("DSW3")
406   PORT_DIPNAME( 0x30, 0x20, "Top Saucer Specials Feature")      PORT_DIPLOCATION("SW3:!5,!6")
407   PORT_DIPSETTING(    0x00, "Outlane Specials do Not Light")
408//   PORT_DIPSETTING(    0x10, "")
409   PORT_DIPSETTING(    0x20, "Outlane Specials Alternate")
410   PORT_DIPSETTING(    0x30, "Outlane Specials Both Light")
411   PORT_DIPNAME( 0xc0, 0xc0, "Award Mode")                     PORT_DIPLOCATION("SW3:!7,!8")
412   PORT_DIPSETTING(    0x00, "Novelty / 50,000")
413//   PORT_DIPSETTING(    0x40, "")
414   PORT_DIPSETTING(    0x80, "Extra Ball / 50,000")
415   PORT_DIPSETTING(    0xc0, "Extra Ball / Replay")
416
417   PORT_MODIFY("X2")   /* Drop Target switches */
418   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x20)   // PORT_CODE(KEYCODE_K)
419   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x21)   // PORT_CODE(KEYCODE_J)
420   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x22)   // PORT_CODE(KEYCODE_H)
421   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x23)   // PORT_CODE(KEYCODE_G)
422   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x24)   // PORT_CODE(KEYCODE_F)
423   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x25)   // PORT_CODE(KEYCODE_D)
424   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x26)   // PORT_CODE(KEYCODE_S)
425   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, drop_target_x2, (void *)0x27)   // PORT_CODE(KEYCODE_A)
426
427   PORT_MODIFY("X3")
428   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by17_state, saucer_x3, (void *)0x37)   // PORT_CODE(KEYCODE_Q)
429INPUT_PORTS_END
430
431
432CUSTOM_INPUT_MEMBER( by17_state::outhole_x0 )
300433{
301   if(newval)
302      m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
434   int bit_shift = ((FPTR)param & 0x07);
435   int port = (((FPTR)param >> 4) & 0x07);
436
437   /* Here we simulate the ball sitting in the Outhole so the Outhole Solenoid can release it */
438
439   if (machine().input().code_pressed_once(KEYCODE_BACKSPACE))
440      m_io_hold_x[port] |= (1 << bit_shift);
441
442   return ((m_io_hold_x[port] >> bit_shift) & 1);
303443}
304444
445CUSTOM_INPUT_MEMBER( by17_state::saucer_x3 )
446{
447   int bit_shift = ((FPTR)param & 0x07);
448   int port = (((FPTR)param >> 4) & 0x07);
449
450   /* Here we simulate the ball sitting in a Saucer so the Saucer Solenoid can release it */
451
452   if (machine().input().code_pressed_once(KEYCODE_Q))
453      m_io_hold_x[port] |= (1 << bit_shift);
454
455   return ((m_io_hold_x[port] >> bit_shift) & 1);
456}
457
458
459CUSTOM_INPUT_MEMBER( by17_state::drop_target_x2 )
460{
461   /* Here we simulate fallen Drop Targets so the Drop Target Reset Solenoids can release the switches */
462
463   int bit_shift = ((FPTR)param & 0x07);
464   int port = (((FPTR)param >> 4) & 0x07);
465
466   switch (bit_shift)
467   {
468      case 0:   if (machine().input().code_pressed_once(KEYCODE_K))
469                  m_io_hold_x[port] |= (1 << bit_shift);
470               break;
471      case 1:   if (machine().input().code_pressed_once(KEYCODE_J))
472                  m_io_hold_x[port] |= (1 << bit_shift);
473               break;
474      case 2:   if (machine().input().code_pressed_once(KEYCODE_H))
475                  m_io_hold_x[port] |= (1 << bit_shift);
476               break;
477      case 3:   if (machine().input().code_pressed_once(KEYCODE_G))
478                  m_io_hold_x[port] |= (1 << bit_shift);
479               break;
480      case 4:   if (machine().input().code_pressed_once(KEYCODE_F))
481                  m_io_hold_x[port] |= (1 << bit_shift);
482               break;
483      case 5:   if (machine().input().code_pressed_once(KEYCODE_D))
484                  m_io_hold_x[port] |= (1 << bit_shift);
485               break;
486      case 6:   if (machine().input().code_pressed_once(KEYCODE_S))
487                  m_io_hold_x[port] |= (1 << bit_shift);
488               break;
489      case 7:   if (machine().input().code_pressed_once(KEYCODE_A))
490                  m_io_hold_x[port] |= (1 << bit_shift);
491               break;
492   }
493   return ((m_io_hold_x[port] >> bit_shift) & 1);
494}
495
496
497READ8_MEMBER(by17_state::nibble_nvram_r)
498{
499   return (m_nvram[offset] | 0x0f);
500}
501
502WRITE8_MEMBER(by17_state::nibble_nvram_w)
503{
504   m_nvram[offset] = (data | 0x0f);
505}
506
507INPUT_CHANGED_MEMBER( by17_state::activity_button )
508{
509   if (newval != oldval)
510      m_maincpu->set_input_line(INPUT_LINE_NMI, (newval ? ASSERT_LINE : CLEAR_LINE));
511}
512
305513INPUT_CHANGED_MEMBER( by17_state::self_test )
306514{
307515   m_pia_u10->ca1_w(newval);
308516}
309517
518READ_LINE_MEMBER( by17_state::u10_ca1_r )
519{
520   return m_io_test->read() & 0x01;
521}
522READ_LINE_MEMBER( by17_state::u10_cb1_r )
523{
524   return m_u10_cb1;
525}
526
310527WRITE_LINE_MEMBER( by17_state::u10_ca2_w )
311528{
529#if 0               // Display Blanking - Out of sync with video redraw rate and causes flicker so it's disabled
530   if (state == 0)
531   {
532      int digit;
533
534      for (digit=1; digit<=8; digit++)
535      {
536         output_set_digit_value(10+digit, 0);
537         output_set_digit_value(20+digit, 0);
538         output_set_digit_value(30+digit, 0);
539         output_set_digit_value(40+digit, 0);
540         output_set_digit_value(50+digit, 0);
541      }
542   }
543#endif
544
312545   m_u10_ca2 = state;
313   if (!state)
314      m_counter = 0;
315546}
316547
317548WRITE_LINE_MEMBER( by17_state::u10_cb2_w )
318549{
550//   logerror("New U10 CB2 state %01x, was %01x.   PIA=%02x\n", state, m_u10_cb2, m_u10a);
551
552   if (state == TRUE)
553      m_lamp_decode = m_u10a & 0x0f;
554
555   m_u10_cb2 = state;
319556}
320557
321558WRITE_LINE_MEMBER( by17_state::u11_ca2_w )
322559{
323   output_set_value("led0", !state);
560   output_set_value("led0", state);
324561}
325562
563READ_LINE_MEMBER( by17_state::u11_ca1_r )
564{
565   return m_u11_ca1;
566}
567
568READ_LINE_MEMBER( by17_state::u11_cb1_r )
569{
570   /* Pin 32 on MPU J5 AID connector tied low */
571   return 0;
572}
573
326574WRITE_LINE_MEMBER( by17_state::u11_cb2_w )
327575{
328576   m_u11_cb2 = state;
r249893r249894
335583
336584WRITE8_MEMBER( by17_state::u10_a_w )
337585{
338   m_u10a = data;
586//   logerror("Writing %02x to U10 PIA, CB2 state is %01x,  CA2 state is %01x, Lamp_Dec is %02x\n",data, m_u10_cb2, m_u10_ca2, (m_lamp_decode & 0x0f));
339587
340588   if (!m_u10_ca2)
341589   {
342      m_counter++;
343
344      if (m_counter==1)
345         m_segment[0] = data>>4;
346      else
347      if (m_counter==3)
590      if (BIT(data, 0)==0)         // Display 1
348591         m_segment[1] = data>>4;
349592      else
350      if (m_counter==5)
593      if (BIT(data, 1)==0)         // Display 2
351594         m_segment[2] = data>>4;
352595      else
353      if (m_counter==7)
596      if (BIT(data, 2)==0)         // Display 3
354597         m_segment[3] = data>>4;
355598      else
356      if (m_counter==9)
599      if (BIT(data, 3)==0)         // Display 4
357600         m_segment[4] = data>>4;
358601   }
602
603   /*** Update the Lamp latched outputs ***/
604   if ((data & 0x0f) == 0x0f)
605   {
606      if ((m_lamp_decode & 0x0f) < 0x0f)
607      {
608         if (output_get_indexed_value("lamp", ((m_lamp_decode & 0x0f)+00) ) ==0 ) output_set_indexed_value("lamp", ((m_lamp_decode & 0x0f)+00), ((data & 0x10) ? FALSE : TRUE));
609         if (output_get_indexed_value("lamp", ((m_lamp_decode & 0x0f)+15) ) ==0 ) output_set_indexed_value("lamp", ((m_lamp_decode & 0x0f)+15), ((data & 0x20) ? FALSE : TRUE));
610         if (output_get_indexed_value("lamp", ((m_lamp_decode & 0x0f)+30) ) ==0 ) output_set_indexed_value("lamp", ((m_lamp_decode & 0x0f)+30), ((data & 0x40) ? FALSE : TRUE));
611         if (output_get_indexed_value("lamp", ((m_lamp_decode & 0x0f)+45) ) ==0 ) output_set_indexed_value("lamp", ((m_lamp_decode & 0x0f)+45), ((data & 0x80) ? FALSE : TRUE));
612      }
613      else
614      {
615         // Rest output - all lamps are off
616      }
617   }
618
619   m_u10a = data;
359620}
360621
361622READ8_MEMBER( by17_state::u10_b_r )
r249893r249894
404665
405666WRITE8_MEMBER( by17_state::u11_a_w )
406667{
407   m_u11a = data;
668   if (BIT(data, 0)==0)         // Display Credit/Ball
669   {
670      m_segment[5] = m_u10a>>4;
671   }
408672
409   if (!m_u10_ca2)
673
674   m_digit = 0;
675
676   if BIT(data, 7)
677      m_digit = 1;
678   else
679   if BIT(data, 6)
680      m_digit = 2;
681   else
682   if BIT(data, 5)
683      m_digit = 3;
684   else
685   if BIT(data, 4)
686      m_digit = 4;
687   else
688   if BIT(data, 3)
689      m_digit = 5;
690   else
691   if BIT(data, 2)
692      m_digit = 6;
693   else
694   if (BIT(data, 2) && BIT(data, 3))   // Aftermarket 7th digit strobe for 6 digit games
695      m_digit = 7;
696
697   if ((m_u10_ca2==0) && m_digit)
410698   {
411      if BIT(data, 2)
412         m_digit = 5;
413      else
414      if BIT(data, 3)
415         m_digit = 4;
416      else
417      if BIT(data, 4)
418         m_digit = 3;
419      else
420      if BIT(data, 5)
421         m_digit = 2;
422      else
423      if BIT(data, 6)
424         m_digit = 1;
425      else
426      if BIT(data, 7)
427         m_digit = 0;
699      static const UINT8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0,0,0,0,0,0 }; // MC14543 - BCD to 7 Segment Display Decoder
428700
429      if (BIT(data, 0) && (m_counter > 8))
430      {
431         static const UINT8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0,0,0,0,0,0 }; // MC14543
432         output_set_digit_value(m_digit, patterns[m_segment[0]]);
433         output_set_digit_value(10+m_digit, patterns[m_segment[1]]);
434         output_set_digit_value(20+m_digit, patterns[m_segment[2]]);
435         output_set_digit_value(30+m_digit, patterns[m_segment[3]]);
436         output_set_digit_value(40+m_digit, patterns[m_segment[4]]);
437      }
701      output_set_digit_value(10+m_digit, patterns[m_segment[1]]);
702      output_set_digit_value(20+m_digit, patterns[m_segment[2]]);
703      output_set_digit_value(30+m_digit, patterns[m_segment[3]]);
704      output_set_digit_value(40+m_digit, patterns[m_segment[4]]);
705      output_set_digit_value(50+m_digit, patterns[m_segment[5]]);
706
438707   }
708
709   m_u11a = data;
439710}
440711
441712WRITE8_MEMBER( by17_state::u11_b_w )
442713{
443   m_u11b = data;
444714   if (!m_u11_cb2)
445715   {
446      switch (data & 15)
716      if ((data & 0x0f) < 0x0f)   // Momentary Solenoids
447717      {
448         case 0x0: // chime 10
449            m_samples->start(1, 1);
450            break;
451         case 0x1: // chime 100
452            m_samples->start(2, 2);
453            break;
454         case 0x2: // chime 1000
455            m_samples->start(3, 3);
456            break;
457         case 0x3: // chime 10000
458            m_samples->start(0, 4);
459            break;
460         case 0x4:
461            break;
462         case 0x5: // knocker
463            m_samples->start(0, 6);
464            break;
465         case 0x6: // outhole
466            m_samples->start(0, 5);
467            break;
468         // from here, vary per game
469         case 0x7:
470         case 0x8:
471         case 0x9:
472            break;
473         case 0xa:
474         case 0xb:
475         case 0xc: // bumpers
476            m_samples->start(0, 0);
477            break;
478         case 0xd:
479         case 0xe:
480         case 0xf:
481            break;
718         output_set_indexed_value( "solenoid", (data & 0x0f), TRUE);
719
720         if (m_solenoid_features[(data & 0x0f)][3])   // Reset/release relevant switch after firing Solenoid
721            m_io_hold_x[(m_solenoid_features[(data & 0x0f)][2])] &= (m_solenoid_features[(data & 0x0f)][3]);
722
723         if (m_solenoid_features[(data & 0x0f)][0] != 0xff)   // Play solenoid audio sample
724            m_samples->start(m_solenoid_features[(data & 0x0f)][0], m_solenoid_features[(data & 0x0f)][1]);
482725      }
726      else                  // Rest output - all momentary solenoids are off
727      {
728         for (int i=0; i<15; i++)
729         {
730            output_set_indexed_value( "solenoid", i, FALSE);
731         }
732      }
483733   }
484}
485734
486void by17_state::machine_reset()
487{
488   m_u10a = 0;
489   m_u10b = 0;
490   m_u10_cb2 = 0;
491   m_u11a = 0;
492   m_u11b = 0;
493   m_timer_x = 0;
494   m_u11_timer = 0;
735
736   if ((m_u11b & 0x10) && ((data & 0x10)==0))
737   {
738      output_set_value("solenoid16", TRUE);
739      if (m_solenoid_features[16][0] != 0xff)
740         m_samples->start(m_solenoid_features[16][0], m_solenoid_features[16][1]);
741   }
742   else if ((data & 0x10) && ((m_u11b & 0x10)==0))
743   {
744      output_set_value("solenoid16", FALSE);
745      if (m_solenoid_features[16][0] != 0xff)
746         m_samples->start(m_solenoid_features[16][0], m_solenoid_features[16][2]);
747   }
748   if ((m_u11b & 0x20) && ((data & 0x20)==0))
749   {
750      output_set_value("solenoid17", TRUE);               // Coin Lockout Coil engage
751      if (m_solenoid_features[17][0] != 0xff)
752         m_samples->start(m_solenoid_features[17][0], m_solenoid_features[17][1]);
753   }
754   else if ((data & 0x20) && ((m_u11b & 0x20)==0))
755   {
756      output_set_value("solenoid17", FALSE);               // Coin Lockout Coil release
757      if (m_solenoid_features[17][0] != 0xff)
758         m_samples->start(m_solenoid_features[17][0], m_solenoid_features[17][2]);
759   }
760   if ((m_u11b & 0x40) && ((data & 0x40)==0))
761   {
762      output_set_value("solenoid18", TRUE);               // Flipper Enable Relay engage
763      if (m_solenoid_features[18][0] != 0xff)
764         m_samples->start(m_solenoid_features[18][0], m_solenoid_features[18][1]);
765   }
766   else if ((data & 0x40) && ((m_u11b & 0x40)==0))
767   {
768      output_set_value("solenoid18", FALSE);               // Flipper Enable Relay release
769      if (m_solenoid_features[18][0] != 0xff)
770         m_samples->start(m_solenoid_features[18][0], m_solenoid_features[18][2]);
771   }
772   if ((m_u11b & 0x80) && ((data & 0x80)==0))
773   {
774      output_set_value("solenoid19", TRUE);
775      if (m_solenoid_features[19][0] != 0xff)
776         m_samples->start(m_solenoid_features[19][0], m_solenoid_features[19][1]);
777   }
778   else if ((data & 0x80) && ((m_u11b & 0x80)==0))
779   {
780      output_set_value("solenoid19", FALSE);
781      if (m_solenoid_features[19][0] != 0xff)
782         m_samples->start(m_solenoid_features[19][0], m_solenoid_features[19][2]);
783   }
784
785   m_u11b = data;
495786}
496787
788
497789// zero-cross detection
498TIMER_DEVICE_CALLBACK_MEMBER( by17_state::timer_x )
790TIMER_DEVICE_CALLBACK_MEMBER( by17_state::timer_z_freq )
499791{
500   m_timer_x ^= 1;
501   m_pia_u10->cb1_w(m_timer_x);
792
793/*  Zero Crossing Detector - this timing is based on 50Hz AC line power input converted to unregulated DC
794
795   -+                          +---+
796     |                          |   |
797     |<-------- 9.30ms -------->|<->|700us
798     |                          |   |
799    +--------------------------+   +-----
800*/
801
802   timer_device *zero_crossing_active_timer = machine().device<timer_device>("timer_z_pulse");
803
804   zero_crossing_active_timer->adjust(attotime::from_usec(700));
805
806   m_u10_cb1 = true;
807   m_pia_u10->cb1_w(m_u10_cb1);
808
809   /*** Zero Crossing - power to all Lamp SCRs is cut off and reset ***/
810
811   for (int i=0; i<60; i++)
812   {
813      output_set_indexed_value( "lamp", i, 0 );
814   }
815
502816}
817TIMER_DEVICE_CALLBACK_MEMBER( by17_state::timer_z_pulse )
818{
819   /*** Line Power to DC Zero Crossing has ended ***/
503820
821   m_u10_cb1 = false;
822   m_pia_u10->cb1_w(m_u10_cb1);
823}
824
504825// 555 timer for display refresh
505826TIMER_DEVICE_CALLBACK_MEMBER( by17_state::u11_timer )
506827{
507   m_u11_timer ^= 1;
508   m_pia_u11->ca1_w(m_u11_timer);
828
829/*   +--------------------------+   +-----
830     |                          |   |
831     |<-------- 2.85ms -------->|<->|300us
832     |                          |   |
833    -+                          +---+
834*/
835
836   timer_device *display_refresh_timer = machine().device<timer_device>("timer_d_pulse");
837
838   display_refresh_timer->adjust(attotime::from_msec(2.85));
839
840   m_u11_ca1 = true;
841   m_pia_u11->ca1_w(m_u11_ca1);
509842}
510843
844TIMER_DEVICE_CALLBACK_MEMBER( by17_state::timer_d_pulse )
845{
846   m_u11_ca1 = false;
847   m_pia_u11->ca1_w(m_u11_ca1);
848}
849
850
851
852DRIVER_INIT_MEMBER( by17_state, by17 )
853{
854
855   static const UINT8 solenoid_features_default[20][4] =
856   {
857   // This table serves two functions and is configured on a per game basis:
858   // Assign a particular sound sample corresponding to a solenoid function, and
859   // release any switches being held closed eg. drop targets, ball in saucer/outhole, etc
860
861   //  { Sound Channel, Sound Sample, Switch Strobe, Switch Return Mask }
862   /*00*/  { 0x00, 0x00,  0x00, 0x00 },
863   /*01*/  { 0x05, 0x01,  0x00, 0x00 },      // Chime 10
864   /*02*/  { 0x05, 0x02,  0x00, 0x00 },      // Chime 100
865   /*03*/  { 0x05, 0x03,  0x00, 0x00 },      // Chime 1000
866   /*04*/  { 0x05, 0x04,  0x00, 0x00 },      // Chime 10000
867   /*05*/  { 0x04, 0x00,  0x00, 0x00 },      // Knocker
868   /*06*/  { 0x01, 0x09,  0x00, 0x7f },      // Outhole
869   /*07*/  { 0x00, 0x00,  0x00, 0x00 },
870   /*08*/  { 0x02, 0x00,  0x00, 0x00 },
871   /*09*/  { 0x02, 0x00,  0x00, 0x00 },
872   /*10*/  { 0x02, 0x00,  0x00, 0x00 },
873   /*11*/  { 0x02, 0x00,  0x00, 0x00 },
874   /*12*/  { 0x00, 0x00,  0x00, 0x00 },
875   /*13*/  { 0x02, 0x00,  0x00, 0x00 },
876   /*14*/  { 0x00, 0x00,  0x00, 0x00 },
877   /*15*/  { 0xff, 0xff,  0x00, 0x00 },      // None - all momentary solenoids off
878   //  { Sound Channel, Sound engage, Sound release, Not Used }
879   /*16*/  { 0xff, 0xff, 0xff,  0x00 },
880   /*17*/  { 0x00, 0x0c, 0x0d,  0x00 },      // Coin Lockout coil
881   /*18*/  { 0x00, 0x0e, 0x0f,  0x00 },      // Flipper Enable relay
882   /*19*/  { 0xff, 0xff, 0xff,  0x00 }
883   };
884
885   for (int i=0; i<20; i++)
886   {
887      for (int j=0; j<4; j++)
888         m_solenoid_features[i][j] = solenoid_features_default[i][j];
889   }
890}
891
892
893DRIVER_INIT_MEMBER( by17_state, matahari )
894{
895
896   static const UINT8 solenoid_features_matahari[20][4] =
897   {
898   //  { Sound Channel, Sound Sample, Switch Strobe, Switch Return Mask }
899   /*00*/  { 0x02, 0x05,  0x03, 0x7f },      // Saucer
900   /*01*/  { 0x05, 0x01,  0x00, 0x00 },      // Chime 10
901   /*02*/  { 0x05, 0x02,  0x00, 0x00 },      // Chime 100
902   /*03*/  { 0x05, 0x03,  0x00, 0x00 },      // Chime 1000
903   /*04*/  { 0x05, 0x04,  0x00, 0x00 },      // Chime 10000
904   /*05*/  { 0x04, 0x06,  0x00, 0x00 },      // Knocker
905   /*06*/  { 0x01, 0x09,  0x00, 0x7f },      // Outhole
906   /*07*/  { 0x02, 0x00,  0x00, 0x00 },      // Pop Bumper Left Bottom
907   /*08*/  { 0x02, 0x00,  0x00, 0x00 },      // Pop Bumper Left Top
908   /*09*/  { 0x02, 0x00,  0x00, 0x00 },      // Pop Bumper Right Top
909   /*10*/  { 0x02, 0x00,  0x00, 0x00 },      // Pop Bumper Right Bottom
910   /*11*/  { 0x02, 0x07,  0x00, 0x00 },      // Slingshot Left
911   /*12*/  { 0x00, 0x0b,  0x02, 0x0f },      // Drop Target Reset Left
912   /*13*/  { 0x02, 0x07,  0x00, 0x00 },      // Slingshot Right
913   /*14*/  { 0x03, 0x0b,  0x02, 0xf0 },      // Drop Target Reset Right
914   /*15*/  { 0xff, 0xff,  0x00, 0x00 },      // None - all momentary solenoids off
915   //  { Sound Channel, Sound engage, Sound release, Not Used }
916   /*16*/  { 0xff, 0xff, 0xff,  0x00 },
917   /*17*/  { 0x00, 0x0c, 0x0d,  0x00 },      // Coin Lockout coil
918   /*18*/  { 0x00, 0x0e, 0x0f,  0x00 },      // Flipper Enable relay
919   /*19*/  { 0xff, 0xff, 0xff,  0x00 }
920   };
921
922   for (int i=0; i<20; i++)
923   {
924      for (int j=0; j<4; j++)
925         m_solenoid_features[i][j] = solenoid_features_matahari[i][j];
926   }
927}
928
929
930DRIVER_INIT_MEMBER( by17_state, pwerplay )
931{
932
933   static const UINT8 solenoid_features_pwerplay[20][4] =
934   {
935   //  { Sound Channel, Sound Sample, Switch Strobe, Switch Return Mask }
936   /*00*/  { 0x00, 0x10,  0x00, 0x00 },      // Post Down
937   /*01*/  { 0x05, 0x01,  0x00, 0x00 },      // Chime 10
938   /*02*/  { 0x05, 0x02,  0x00, 0x00 },      // Chime 100
939   /*03*/  { 0x05, 0x03,  0x00, 0x00 },      // Chime 1000
940   /*04*/  { 0x05, 0x04,  0x00, 0x00 },      // Chime 10000
941   /*05*/  { 0x04, 0x06,  0x00, 0x00 },      // Knocker
942   /*06*/  { 0x01, 0x09,  0x00, 0x7f },      // Outhole
943   /*07*/  { 0x02, 0x05,  0x03, 0x7f },      // Saucer
944   /*08*/  { 0x02, 0x00,  0x00, 0x00 },      // Pop Bumper Left
945   /*09*/  { 0x02, 0x00,  0x00, 0x00 },      // Pop Bumper Right
946   /*10*/  { 0x02, 0x00,  0x00, 0x00 },      // Pop Bumper Bottom
947   /*11*/  { 0x02, 0x07,  0x00, 0x00 },      // Slingshot Left
948   /*12*/  { 0x00, 0x0b,  0x02, 0x0f },      // Drop Target Reset Left
949   /*13*/  { 0x02, 0x07,  0x00, 0x00 },      // Slingshot Right
950   /*14*/  { 0x03, 0x0b,  0x02, 0xf0 },      // Drop Target Reset Right
951   /*15*/  { 0xff, 0xff,  0x00, 0x00 },      // None - all momentary solenoids off
952   //  { Sound Channel, Sound engage, Sound release, Not Used }
953   /*16*/  { 0x00, 0x11, 0x0f,  0x00 },      // Post Up
954   /*17*/  { 0x00, 0x0c, 0x0d,  0x00 },      // Coin Lockout coil
955   /*18*/  { 0x00, 0x0e, 0x0f,  0x00 },      // Flipper Enable relay
956   /*19*/  { 0xff, 0xff, 0xff,  0x00 }
957   };
958
959
960   for (int i=0; i<20; i++)
961   {
962      for (int j=0; j<4; j++)
963         m_solenoid_features[i][j] = solenoid_features_pwerplay[i][j];
964   }
965}
966
967
968
969MACHINE_RESET_MEMBER( by17_state, by17 )
970{
971   render_target *target = machine().render().first_target();
972
973   target->set_view(0);
974
975   m_u10a = 0;
976   m_u10b = 0;
977   m_u11a = 0;
978   m_u11b = 0;
979   m_lamp_decode = 0x0f;
980   m_io_hold_x[0] = 0x80;   // Put ball in Outhole on startup
981   m_io_hold_x[1] = m_io_hold_x[2] = m_io_hold_x[3] = m_io_hold_x[4] = 0;
982}
983
984
985
511986static MACHINE_CONFIG_START( by17, by17_state )
512987   /* basic machine hardware */
513   MCFG_CPU_ADD("maincpu", M6800, 1000000) // no xtal, just 2 chips forming a random oscillator
988   MCFG_CPU_ADD("maincpu", M6800, 530000)   // No xtal, just 2 chips forming a multivibrator oscillator around 530KHz
514989   MCFG_CPU_PROGRAM_MAP(by17_map)
515990
516   MCFG_NVRAM_ADD_0FILL("nvram")
991   MCFG_MACHINE_RESET_OVERRIDE( by17_state, by17 )
517992
993   MCFG_NVRAM_ADD_0FILL("nvram")   // 'F' filled causes Credit Display to be blank on first startup
994
518995   /* Video */
519996   MCFG_DEFAULT_LAYOUT(layout_by17)
520997
r249893r249894
5271004   MCFG_PIA_WRITEPA_HANDLER(WRITE8(by17_state, u10_a_w))
5281005   MCFG_PIA_READPB_HANDLER(READ8(by17_state, u10_b_r))
5291006   MCFG_PIA_WRITEPB_HANDLER(WRITE8(by17_state, u10_b_w))
1007   MCFG_PIA_READCA1_HANDLER(READLINE(by17_state, u10_ca1_r))
1008   MCFG_PIA_READCB1_HANDLER(READLINE(by17_state, u10_cb1_r))
5301009   MCFG_PIA_CA2_HANDLER(WRITELINE(by17_state, u10_ca2_w))
5311010   MCFG_PIA_CB2_HANDLER(WRITELINE(by17_state, u10_cb2_w))
5321011   MCFG_PIA_IRQA_HANDLER(DEVWRITELINE("maincpu", m6800_cpu_device, irq_line))
5331012   MCFG_PIA_IRQB_HANDLER(DEVWRITELINE("maincpu", m6800_cpu_device, irq_line))
534   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_x", by17_state, timer_x, attotime::from_hz(120)) // mains freq*2
1013   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_z_freq", by17_state, timer_z_freq, attotime::from_hz(100)) // Mains Line Frequency * 2
1014   MCFG_TIMER_DRIVER_ADD("timer_z_pulse", by17_state, timer_z_pulse)                                // Active pulse length from Zero Crossing detector
5351015
5361016   MCFG_DEVICE_ADD("pia_u11", PIA6821, 0)
5371017   MCFG_PIA_READPA_HANDLER(READ8(by17_state, u11_a_r))
5381018   MCFG_PIA_WRITEPA_HANDLER(WRITE8(by17_state, u11_a_w))
5391019   MCFG_PIA_WRITEPB_HANDLER(WRITE8(by17_state, u11_b_w))
1020   MCFG_PIA_READCA1_HANDLER(READLINE(by17_state, u11_ca1_r))
1021   MCFG_PIA_READCB1_HANDLER(READLINE(by17_state, u11_cb1_r))
5401022   MCFG_PIA_CA2_HANDLER(WRITELINE(by17_state, u11_ca2_w))
5411023   MCFG_PIA_CB2_HANDLER(WRITELINE(by17_state, u11_cb2_w))
5421024   MCFG_PIA_IRQA_HANDLER(DEVWRITELINE("maincpu", m6800_cpu_device, irq_line))
5431025   MCFG_PIA_IRQB_HANDLER(DEVWRITELINE("maincpu", m6800_cpu_device, irq_line))
544   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_d", by17_state, u11_timer, attotime::from_hz(634)) // 555 timer*2
1026   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_d_freq", by17_state, u11_timer, attotime::from_hz(317)) // 555 timer
1027   MCFG_TIMER_DRIVER_ADD("timer_d_pulse", by17_state, timer_d_pulse)                             // 555 Active pulse length
5451028MACHINE_CONFIG_END
5461029
1030
1031
1032
5471033/*------------------------------------------------------------------
5481034/ Bow and Arrow #1033 (prototype only, slightly different hardware)
5491035/ not sure yet if it belongs in this driver
r249893r249894
6421128/---------------------------------------------------------------*/
6431129
6441130
645GAME( 1976, bowarrow, 0,        by17, by17, driver_device, 0, ROT0, "Bally", "Bow & Arrow (Prototype)", MACHINE_IS_SKELETON_MECHANICAL)
646GAME( 1977, freedom,  0,        by17, by17, driver_device, 0, ROT0, "Bally", "Freedom", MACHINE_MECHANICAL)
647GAME( 1977, nightrdr, 0,        by17, by17, driver_device, 0, ROT0, "Bally", "Night Rider (rev. 21)", MACHINE_MECHANICAL)
648GAME( 1977, nightr20, nightrdr, by17, by17, driver_device, 0, ROT0, "Bally", "Night Rider (rev. 20)", MACHINE_MECHANICAL)
649GAME( 1978, blackjck, 0,        by17, by17, driver_device, 0, ROT0, "Bally", "Black Jack (Pinball)", MACHINE_MECHANICAL)
650GAME( 1977, evelknie, 0,        by17, by17, driver_device, 0, ROT0, "Bally", "Evel Knievel", MACHINE_MECHANICAL)
651GAME( 1978, matahari, 0,        by17, by17, driver_device, 0, ROT0, "Bally", "Mata Hari", MACHINE_MECHANICAL)
652GAME( 1977, eightbll, 0,        by17, by17, driver_device, 0, ROT0, "Bally", "Eight Ball", MACHINE_MECHANICAL)
653GAME( 1978, pwerplay, 0,        by17, by17, driver_device, 0, ROT0, "Bally", "Power Play (Pinball)", MACHINE_MECHANICAL)
654GAME( 1978, stk_sprs, 0,        by17, by17, driver_device, 0, ROT0, "Bally", "Strikes and Spares", MACHINE_MECHANICAL)
1131GAME(  1976, bowarrow, 0,        by17, by17,     by17_state, by17,     ROT0, "Bally", "Bow & Arrow (Prototype)", MACHINE_IS_SKELETON_MECHANICAL)
1132GAME(  1977, freedom,  0,        by17, by17,     by17_state, by17,     ROT0, "Bally", "Freedom", MACHINE_IS_SKELETON_MECHANICAL)
1133GAME(  1977, nightrdr, 0,        by17, by17,     by17_state, by17,     ROT0, "Bally", "Night Rider (rev. 21)", MACHINE_IS_SKELETON_MECHANICAL)
1134GAME(  1977, nightr20, nightrdr, by17, by17,     by17_state, by17,     ROT0, "Bally", "Night Rider (rev. 20)", MACHINE_IS_SKELETON_MECHANICAL)
1135GAME(  1978, blackjck, 0,        by17, by17,     by17_state, by17,     ROT0, "Bally", "Black Jack (Pinball)", MACHINE_IS_SKELETON_MECHANICAL)
1136GAME(  1977, evelknie, 0,        by17, by17,     by17_state, by17,     ROT0, "Bally", "Evel Knievel", MACHINE_IS_SKELETON_MECHANICAL)
1137GAMEL( 1978, matahari, 0,        by17, matahari, by17_state, matahari, ROT0, "Bally", "Mata Hari", MACHINE_MECHANICAL, layout_by17_matahari)
1138GAME(  1977, eightbll, 0,        by17, by17,     by17_state, by17,     ROT0, "Bally", "Eight Ball", MACHINE_IS_SKELETON_MECHANICAL)
1139GAMEL( 1978, pwerplay, 0,        by17, pwerplay, by17_state, pwerplay, ROT0, "Bally", "Power Play (Pinball)", MACHINE_MECHANICAL, layout_by17_pwerplay)
1140GAME(  1978, stk_sprs, 0,        by17, by17,     by17_state, by17,     ROT0, "Bally", "Strikes and Spares", MACHINE_IS_SKELETON_MECHANICAL)
trunk/src/mame/drivers/by35.c
r249893r249894
11// license:BSD-3-Clause
2// copyright-holders:Robbbert
2// copyright-holders:Robbbert, Quench
33/********************************************************************************************
44
55    PINBALL
r249893r249894
5050(unknown)       1370 (Centaur II - Manual has the correct cover but insides are for Centaur #1239)
5151
5252
53- The Nuova Bell Games from Dark Shadow onwards use inhouse designed circuit boards. The MPU board contains enhancements for full
54  CPU address space, larger ROMs, 6802 CPU, Toshiba TC5517 CMOS RAM (2kb) for battery backup that can be jumpered in nibble or byte mode, etc.
55
5356ToDo:
54- The Nuova Bell games don't boot
57- The Nuova Bell games don't boot.
5558- The Bell games have major problems
5659- Sound
5760- Dips, Inputs, Solenoids vary per game
61- Bally: Add Strobe 5 (ST5) for extra inputs on later games
62- Bally: Add support for Solenoid Expanders on later games
63- Bally: Add support for Aux Lamp Expander on later games
5864- Mechanical
5965
6066*********************************************************************************************/
r249893r249894
6470#include "cpu/m6800/m6800.h"
6571#include "machine/6821pia.h"
6672#include "by35.lh"
73#include "by35_playboy.lh"
74#include "sound/discrete.h"
6775
6876
6977class by35_state : public genpin_class
r249893r249894
7280   by35_state(const machine_config &mconfig, device_type type, const char *tag)
7381      : genpin_class(mconfig, type, tag)
7482      , m_maincpu(*this, "maincpu")
83      , m_nvram(*this, "nvram")
7584      , m_pia_u10(*this, "pia_u10")
7685      , m_pia_u11(*this, "pia_u11")
7786      , m_io_test(*this, "TEST")
r249893r249894
8493      , m_io_x2(*this, "X2")
8594      , m_io_x3(*this, "X3")
8695      , m_io_x4(*this, "X4")
96      , m_discrete(*this, "discrete")
97      , m_timer_s_freq(*this, "timer_s_freq")
8798   { }
8899
89100   DECLARE_DRIVER_INIT(by35_6);
90101   DECLARE_DRIVER_INIT(by35_7);
102   DECLARE_DRIVER_INIT(playboy);
91103   DECLARE_READ8_MEMBER(u10_a_r);
92104   DECLARE_WRITE8_MEMBER(u10_a_w);
93105   DECLARE_READ8_MEMBER(u10_b_r);
r249893r249894
95107   DECLARE_READ8_MEMBER(u11_a_r);
96108   DECLARE_WRITE8_MEMBER(u11_a_w);
97109   DECLARE_WRITE8_MEMBER(u11_b_w);
110   DECLARE_WRITE8_MEMBER(u11_b_as2888_w);
111   DECLARE_READ8_MEMBER(nibble_nvram_r);
112   DECLARE_WRITE8_MEMBER(nibble_nvram_w);
113   DECLARE_READ_LINE_MEMBER(u10_ca1_r);
114   DECLARE_READ_LINE_MEMBER(u10_cb1_r);
98115   DECLARE_WRITE_LINE_MEMBER(u10_ca2_w);
99116   DECLARE_WRITE_LINE_MEMBER(u10_cb2_w);
117   DECLARE_READ_LINE_MEMBER(u11_ca1_r);
118   DECLARE_READ_LINE_MEMBER(u11_cb1_r);
100119   DECLARE_WRITE_LINE_MEMBER(u11_ca2_w);
101120   DECLARE_WRITE_LINE_MEMBER(u11_cb2_w);
102   DECLARE_INPUT_CHANGED_MEMBER(activity_test);
121   DECLARE_WRITE_LINE_MEMBER(u11_cb2_as2888_w);
122   DECLARE_INPUT_CHANGED_MEMBER(activity_button);
103123   DECLARE_INPUT_CHANGED_MEMBER(self_test);
104   TIMER_DEVICE_CALLBACK_MEMBER(timer_x);
124   DECLARE_CUSTOM_INPUT_MEMBER(outhole_x0);
125   DECLARE_CUSTOM_INPUT_MEMBER(drop_target_x0);
126   DECLARE_CUSTOM_INPUT_MEMBER(kickback_x3);
127   DECLARE_MACHINE_START(as2888);
128   DECLARE_MACHINE_RESET(by35);
129   TIMER_DEVICE_CALLBACK_MEMBER(timer_z_freq);
130   TIMER_DEVICE_CALLBACK_MEMBER(timer_z_pulse);
105131   TIMER_DEVICE_CALLBACK_MEMBER(u11_timer);
132   TIMER_DEVICE_CALLBACK_MEMBER(timer_d_pulse);
133   TIMER_DEVICE_CALLBACK_MEMBER(timer_s);
134   TIMER_DEVICE_CALLBACK_MEMBER(timer_as2888);
106135private:
107136   UINT8 m_u10a;
108137   UINT8 m_u10b;
109138   UINT8 m_u11a;
110139   UINT8 m_u11b;
111140   bool m_u10_ca2;
141   bool m_u10_cb1;
112142   bool m_u10_cb2;
143   bool m_u11_ca1;
113144   bool m_u11_cb2;
114   bool m_timer_x;
115   bool m_u11_timer;
145   bool m_timer_as2888;
116146   bool m_7d;
117147   UINT8 m_digit;
118   UINT8 m_counter;
119   UINT8 m_segment[5];
120   virtual void machine_reset();
148   UINT8 m_segment[6];
149   UINT8 m_lamp_decode;
150   UINT8 m_solenoid_features[20][4];
151   UINT8 m_io_hold_x[6];
152   UINT8 m_snd_sel;
153   UINT8 m_snd_tone_gen;
154   UINT8 m_snd_div;
155   UINT8 *m_snd_prom;
121156   required_device<m6800_cpu_device> m_maincpu;
157   required_shared_ptr<UINT8> m_nvram;
122158   required_device<pia6821_device> m_pia_u10;
123159   required_device<pia6821_device> m_pia_u11;
124160   required_ioport m_io_test;
r249893r249894
131167   required_ioport m_io_x2;
132168   required_ioport m_io_x3;
133169   required_ioport m_io_x4;
170   optional_device<discrete_device> m_discrete;
171   optional_device<timer_device> m_timer_s_freq;
134172};
135173
136174
137175static ADDRESS_MAP_START( by35_map, AS_PROGRAM, 8, by35_state )
138   //ADDRESS_MAP_GLOBAL_MASK(0x7fff)
139   AM_RANGE(0x0000, 0x007f) AM_RAM // internal to the cpu
176   ADDRESS_MAP_GLOBAL_MASK(0x7fff)      // A15 is not connected
177   AM_RANGE(0x0000, 0x007f) AM_RAM
140178   AM_RANGE(0x0088, 0x008b) AM_DEVREADWRITE("pia_u10", pia6821_device, read, write)
141179   AM_RANGE(0x0090, 0x0093) AM_DEVREADWRITE("pia_u11", pia6821_device, read, write)
142   AM_RANGE(0x0200, 0x02ff) AM_RAM AM_SHARE("nvram")
143   AM_RANGE(0x1000, 0xffff) AM_ROM //AM_REGION("roms", 0 )
180   AM_RANGE(0x0200, 0x02ff) AM_RAM AM_READWRITE(nibble_nvram_r, nibble_nvram_w) AM_SHARE("nvram")
181   AM_RANGE(0x1000, 0x7fff) AM_ROM // AM_REGION("roms", 0 )
144182ADDRESS_MAP_END
145183
184static ADDRESS_MAP_START( nuovo_map, AS_PROGRAM, 8, by35_state )
185//   AM_RANGE(0x0000, 0x007f) AM_RAM    // Schematics infer that the M6802 internal RAM is disabled.
186   AM_RANGE(0x0088, 0x008b) AM_DEVREADWRITE("pia_u10", pia6821_device, read, write)
187   AM_RANGE(0x0090, 0x0093) AM_DEVREADWRITE("pia_u11", pia6821_device, read, write)
188   AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
189   AM_RANGE(0x1000, 0xffff) AM_ROM
190ADDRESS_MAP_END
191
192
193
146194static INPUT_PORTS_START( by35 )
147195   PORT_START("TEST")
148   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Self Test") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, by35_state, self_test, 0)
149   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Activity") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, by35_state, activity_test, 0)
196   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Self Test") PORT_CHANGED_MEMBER(DEVICE_SELF, by35_state, self_test, 0)
197   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Activity")  PORT_CHANGED_MEMBER(DEVICE_SELF, by35_state, activity_button, 0)
150198
151199   PORT_START("DSW0")
152   PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 1")
153   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C )) // same as 01
200   PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 1")         PORT_DIPLOCATION("SW0:!1,!2,!3,!4,!5") // same as 03
201   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C ))
154202   PORT_DIPSETTING(    0x02, DEF_STR( 1C_1C ))
155203   PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ))
156204   PORT_DIPSETTING(    0x04, DEF_STR( 1C_2C ))
r249893r249894
168216   PORT_DIPSETTING(    0x10, DEF_STR( 1C_8C ))
169217   PORT_DIPSETTING(    0x11, DEF_STR( 2C_8C ))
170218   PORT_DIPSETTING(    0x12, DEF_STR( 1C_9C ))
171   PORT_DIPSETTING(    0x13, "2 coins 9 credits")
172   PORT_DIPSETTING(    0x14, "1 coin 10 credits")
173   PORT_DIPSETTING(    0x15, "2 coins 10 credits")
174   PORT_DIPSETTING(    0x16, "1 coin 11 credits")
175   PORT_DIPSETTING(    0x17, "2 coins 11 credits")
176   PORT_DIPSETTING(    0x18, "1 coin 12 credits")
177   PORT_DIPSETTING(    0x19, "2 coins 12 credits")
178   PORT_DIPSETTING(    0x1a, "1 coin 13 credits")
179   PORT_DIPSETTING(    0x1b, "2 coins 13 credits")
180   PORT_DIPSETTING(    0x1c, "1 coin 14 credits")
181   PORT_DIPSETTING(    0x1d, "2 coins 14 credits")
182   PORT_DIPSETTING(    0x1e, "1 coin 15 credits")
183   PORT_DIPSETTING(    0x1f, "2 coins 15 credits")
184   PORT_DIPNAME( 0x60, 0x40, "Award for beating high score")
219   PORT_DIPSETTING(    0x13, "2 Coins/9 Credits")
220   PORT_DIPSETTING(    0x14, "1 Coin/10 Credits")
221   PORT_DIPSETTING(    0x15, "2 Coins/10 Credits")
222   PORT_DIPSETTING(    0x16, "1 Coin/11 Credits")
223   PORT_DIPSETTING(    0x17, "2 Coins/11 Credits")
224   PORT_DIPSETTING(    0x18, "1 Coin/12 Credits")
225   PORT_DIPSETTING(    0x19, "2 Coins/12 Credits")
226   PORT_DIPSETTING(    0x1a, "1 Coin/13 Credits")
227   PORT_DIPSETTING(    0x1b, "2 Coins/13 Credits")
228   PORT_DIPSETTING(    0x1c, "1 Coin/14 Credits")
229   PORT_DIPSETTING(    0x1d, "2 Coins/14 Credits")
230   PORT_DIPSETTING(    0x1e, "1 Coin/15 Credits")
231   PORT_DIPSETTING(    0x1f, "2 Coins/15 Credits")
232   PORT_DIPNAME( 0x60, 0x40, "Award for Beating Highest Score")   PORT_DIPLOCATION("SW0:!6,!7")
185233   PORT_DIPSETTING(    0x00, "Nothing")
186   PORT_DIPSETTING(    0x20, "1 free game")
187   PORT_DIPSETTING(    0x40, "2 free games")
188   PORT_DIPSETTING(    0x60, "3 free games")
189   PORT_DIPNAME( 0x80, 0x00, "Melody option 1")
234   PORT_DIPSETTING(    0x20, "1 Credit")
235   PORT_DIPSETTING(    0x40, "2 Credits")
236   PORT_DIPSETTING(    0x60, "3 Credits")
237   PORT_DIPNAME( 0x80, 0x80, "Melody Option 1")               PORT_DIPLOCATION("SW0:!8")
190238   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
191239   PORT_DIPSETTING(    0x80, DEF_STR( On ))
192240
193241   PORT_START("DSW1")
194   PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 3")
195   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C )) // same as 01
242   PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 3")         PORT_DIPLOCATION("SW1:!1,!2,!3,!4,!5") // same as 01
243   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C ))
196244   PORT_DIPSETTING(    0x02, DEF_STR( 1C_1C ))
197245   PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ))
198246   PORT_DIPSETTING(    0x04, DEF_STR( 1C_2C ))
r249893r249894
210258   PORT_DIPSETTING(    0x10, DEF_STR( 1C_8C ))
211259   PORT_DIPSETTING(    0x11, DEF_STR( 2C_8C ))
212260   PORT_DIPSETTING(    0x12, DEF_STR( 1C_9C ))
213   PORT_DIPSETTING(    0x13, "2 coins 9 credits")
214   PORT_DIPSETTING(    0x14, "1 coin 10 credits")
215   PORT_DIPSETTING(    0x15, "2 coins 10 credits")
216   PORT_DIPSETTING(    0x16, "1 coin 11 credits")
217   PORT_DIPSETTING(    0x17, "2 coins 11 credits")
218   PORT_DIPSETTING(    0x18, "1 coin 12 credits")
219   PORT_DIPSETTING(    0x19, "2 coins 12 credits")
220   PORT_DIPSETTING(    0x1a, "1 coin 13 credits")
221   PORT_DIPSETTING(    0x1b, "2 coins 13 credits")
222   PORT_DIPSETTING(    0x1c, "1 coin 14 credits")
223   PORT_DIPSETTING(    0x1d, "2 coins 14 credits")
224   PORT_DIPSETTING(    0x1e, "1 coin 15 credits")
225   PORT_DIPSETTING(    0x1f, "2 coins 15 credits")
226   PORT_DIPNAME( 0x60, 0x60, "Award")
261   PORT_DIPSETTING(    0x13, "2 Coins/9 Credits")
262   PORT_DIPSETTING(    0x14, "1 Coin/10 Credits")
263   PORT_DIPSETTING(    0x15, "2 Coins/10 Credits")
264   PORT_DIPSETTING(    0x16, "1 Coin/11 Credits")
265   PORT_DIPSETTING(    0x17, "2 Coins/11 Credits")
266   PORT_DIPSETTING(    0x18, "1 Coin/12 Credits")
267   PORT_DIPSETTING(    0x19, "2 Coins/12 Credits")
268   PORT_DIPSETTING(    0x1a, "1 Coin/13 Credits")
269   PORT_DIPSETTING(    0x1b, "2 Coins/13 Credits")
270   PORT_DIPSETTING(    0x1c, "1 Coin/14 Credits")
271   PORT_DIPSETTING(    0x1d, "2 Coins/14 Credits")
272   PORT_DIPSETTING(    0x1e, "1 Coin/15 Credits")
273   PORT_DIPSETTING(    0x1f, "2 Coins/15 Credits")
274   PORT_DIPNAME( 0x60, 0x60, "Score Level Award")      PORT_DIPLOCATION("SW1:!6,!7")
227275   PORT_DIPSETTING(    0x00, "Nothing")
228276   PORT_DIPSETTING(    0x40, "Extra Ball")
229   PORT_DIPSETTING(    0x60, "Free Game")
230   PORT_DIPNAME( 0x80, 0x00, "Balls")
277   PORT_DIPSETTING(    0x60, "Replay")
278   PORT_DIPNAME( 0x80, 0x80, "Balls Per Game")         PORT_DIPLOCATION("SW1:!8")
231279   PORT_DIPSETTING(    0x00, "3")
232280   PORT_DIPSETTING(    0x80, "5")
233281
234282   PORT_START("DSW2")
235   PORT_DIPNAME( 0x07, 0x02, "Maximum Credits")
283   PORT_DIPNAME( 0x07, 0x01, "Maximum Credits")      PORT_DIPLOCATION("SW2:!1,!2,!3")
236284   PORT_DIPSETTING(    0x00, "5")
237285   PORT_DIPSETTING(    0x01, "10")
238286   PORT_DIPSETTING(    0x02, "15")
r249893r249894
241289   PORT_DIPSETTING(    0x05, "30")
242290   PORT_DIPSETTING(    0x06, "35")
243291   PORT_DIPSETTING(    0x07, "40")
244   PORT_DIPNAME( 0x08, 0x08, "Credits displayed")
292   PORT_DIPNAME( 0x08, 0x08, "Credits Displayed")      PORT_DIPLOCATION("SW2:!4")
245293   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
246294   PORT_DIPSETTING(    0x08, DEF_STR( On ))
247   PORT_DIPNAME( 0x10, 0x10, "Match")
295   PORT_DIPNAME( 0x10, 0x10, "Match Feature")         PORT_DIPLOCATION("SW2:!5")
248296   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
249297   PORT_DIPSETTING(    0x10, DEF_STR( On ))
250   PORT_DIPNAME( 0x20, 0x00, "S22 (game specific)")
298   PORT_DIPNAME( 0x20, 0x00, "S22 (game specific)")   PORT_DIPLOCATION("SW2:!6")
251299   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
252300   PORT_DIPSETTING(    0x20, DEF_STR( On ))
253   PORT_DIPNAME( 0x40, 0x00, "S23 (game specific)")
301   PORT_DIPNAME( 0x40, 0x00, "S23 (game specific)")   PORT_DIPLOCATION("SW2:!7")
254302   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
255303   PORT_DIPSETTING(    0x40, DEF_STR( On ))
256   PORT_DIPNAME( 0x80, 0x00, "S24 (game specific)")
304   PORT_DIPNAME( 0x80, 0x00, "S24 (game specific)")   PORT_DIPLOCATION("SW2:!8")
257305   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
258306   PORT_DIPSETTING(    0x80, DEF_STR( On ))
259307
260308   PORT_START("DSW3")
261   PORT_DIPNAME( 0x0f, 0x00, "Coin Slot 2")
262   PORT_DIPSETTING(    0x00, "Same as slot 1")
309   PORT_DIPNAME( 0x0f, 0x00, "Coin Slot 2")         PORT_DIPLOCATION("SW3:!1,!2,!3,!4")
310   PORT_DIPSETTING(    0x00, "Same as Slot 1")
263311   PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ))
264312   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ))
265313   PORT_DIPSETTING(    0x03, DEF_STR( 1C_3C ))
r249893r249894
269317   PORT_DIPSETTING(    0x07, DEF_STR( 1C_7C ))
270318   PORT_DIPSETTING(    0x08, DEF_STR( 1C_8C ))
271319   PORT_DIPSETTING(    0x09, DEF_STR( 1C_9C ))
272   PORT_DIPSETTING(    0x0a, "1 coin 10 credits")
273   PORT_DIPSETTING(    0x0b, "1 coin 11 credits")
274   PORT_DIPSETTING(    0x0c, "1 coin 12 credits")
275   PORT_DIPSETTING(    0x0d, "1 coin 13 credits")
276   PORT_DIPSETTING(    0x0e, "1 coin 14 credits")
277   PORT_DIPSETTING(    0x0f, "1 coin 15 credits")
278   PORT_DIPNAME( 0x10, 0x00, "S29")
320   PORT_DIPSETTING(    0x0a, "1 Coin/10 Credits")
321   PORT_DIPSETTING(    0x0b, "1 Coin/11 Credits")
322   PORT_DIPSETTING(    0x0c, "1 Coin/12 Credits")
323   PORT_DIPSETTING(    0x0d, "1 Coin/13 Credits")
324   PORT_DIPSETTING(    0x0e, "1 Coin/14 Credits")
325   PORT_DIPSETTING(    0x0f, "1 Coin/15 Credits")
326   PORT_DIPNAME( 0x10, 0x00, "S29 (game specific)")   PORT_DIPLOCATION("SW3:!5")
279327   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
280328   PORT_DIPSETTING(    0x10, DEF_STR( On ))
281   PORT_DIPNAME( 0x20, 0x00, "S30")
329   PORT_DIPNAME( 0x20, 0x00, "S30 (game specific)")   PORT_DIPLOCATION("SW3:!6")
282330   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
283331   PORT_DIPSETTING(    0x20, DEF_STR( On ))
284   PORT_DIPNAME( 0x40, 0x00, "S31 (game specific)")
332   PORT_DIPNAME( 0x40, 0x00, "S31 (game specific)")   PORT_DIPLOCATION("SW3:!7")
285333   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
286334   PORT_DIPSETTING(    0x40, DEF_STR( On ))
287   PORT_DIPNAME( 0x80, 0x00, "Melody option 2")
335   PORT_DIPNAME( 0x80, 0x80, "Melody Option 2")      PORT_DIPLOCATION("SW3:!8")
288336   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
289337   PORT_DIPSETTING(    0x80, DEF_STR( On ))
290338
291339   PORT_START("X0")
292   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
293   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
294   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
295   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
296   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE)
340   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
341   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
342   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
343   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
344   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
297345   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
298346   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
299   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
347//   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_BACKSPACE)
348   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by35_state, outhole_x0, (void *)0x07) // PORT_CODE(KEYCODE_BACKSPACE)
300349
301350   PORT_START("X1")
302351   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN3 )
303352   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
304353   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
305   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_L)
306   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
307   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
308   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
309   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT1 ) PORT_NAME("Slam Tilt")
354   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
355   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
356   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
357   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_L)
358   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT2 ) PORT_NAME("Slam Tilt") PORT_CODE(KEYCODE_EQUALS)
310359
311360   PORT_START("X2")
312   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_A)
313   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S)
314   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_D)
315   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_F)
316   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_G)
317   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_H)
318   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_J)
319   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_K)
361   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_K)
362   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_J)
363   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_H)
364   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_G)
365   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_F)
366   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_D)
367   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S)
368   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_A)
320369
321370   PORT_START("X3")
322   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
323   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_W)
324   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_E)
325   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_R)
326   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
327   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_U)
328   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_I)
329   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_O)
371   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_O)
372   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_I)
373   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_U)
374   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
375   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_R)
376   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_E)
377   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_W)
378   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
330379
331380   PORT_START("X4")
332   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
333   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_C)
334   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_V)
381   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
382   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_M)
383   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_N)
335384   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_B)
336   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_N)
337   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_M)
338   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
339   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
385   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_V)
386   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_C)
387   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_X)
388   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
340389INPUT_PORTS_END
341390
342INPUT_CHANGED_MEMBER( by35_state::activity_test )
391static INPUT_PORTS_START( playboy )
392   PORT_INCLUDE( by35 )
393
394   PORT_MODIFY("DSW2")
395   PORT_DIPNAME( 0x20, 0x00, "Drop Target Special")      PORT_DIPLOCATION("SW2:!6")
396   PORT_DIPSETTING(    0x00, "Lit Until Next Ball")
397   PORT_DIPSETTING(    0x20, "Lit Until Collected")
398   PORT_DIPNAME( 0x40, 0x00, "Playmate Keys")            PORT_DIPLOCATION("SW2:!7")
399   PORT_DIPSETTING(    0x00, "Reset At Next Ball")
400   PORT_DIPSETTING(    0x40, "Remembered Next Ball")
401   PORT_DIPNAME( 0x80, 0x00, "25000 Outlanes")            PORT_DIPLOCATION("SW2:!8")
402   PORT_DIPSETTING(    0x00, "Alternate")
403   PORT_DIPSETTING(    0x80, "Both")
404
405   PORT_MODIFY("DSW3")
406   PORT_DIPNAME( 0x10, 0x00, "2 and 3 Key Lanes")         PORT_DIPLOCATION("SW3:!5")
407   PORT_DIPSETTING(    0x00, "Separate")
408   PORT_DIPSETTING(    0x10, "Tied Together")
409   PORT_DIPNAME( 0x20, 0x00, "1 and 4 Key Lanes")         PORT_DIPLOCATION("SW3:!6")
410   PORT_DIPSETTING(    0x00, "Separate")
411   PORT_DIPSETTING(    0x20, "Tied Together")
412   PORT_DIPNAME( 0x40, 0x00, "Rollover Button Award")      PORT_DIPLOCATION("SW3:!7")
413   PORT_DIPSETTING(    0x00, "Extra Ball or Special Reset At Next Ball")
414   PORT_DIPSETTING(    0x40, "Extra Ball or Special Held Until Collected")
415
416   PORT_MODIFY("X0")   /* Drop Target switches */
417   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by35_state, drop_target_x0, (void *)0x00) // PORT_CODE(KEYCODE_STOP)
418   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by35_state, drop_target_x0, (void *)0x01) // PORT_CODE(KEYCODE_SLASH)
419   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by35_state, drop_target_x0, (void *)0x02) // PORT_CODE(KEYCODE_OPENBRACE)
420   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by35_state, drop_target_x0, (void *)0x03) // PORT_CODE(KEYCODE_CLOSEBRACE)
421   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by35_state, drop_target_x0, (void *)0x04) // PORT_CODE(KEYCODE_BACKSLASH)
422
423   PORT_MODIFY("X3")
424   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by35_state, kickback_x3, (void *)0x37) // PORT_CODE(KEYCODE_Q)
425
426   PORT_START("RT2")
427   PORT_ADJUSTER( 50, "RT2 - Tone Sustain" )
428INPUT_PORTS_END
429
430
431CUSTOM_INPUT_MEMBER( by35_state::outhole_x0 )
343432{
344   if(newval)
345      m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
433   int bit_shift = ((FPTR)param & 0x07);
434   int port = (((FPTR)param >> 4) & 0x07);
435
436   /* Here we simulate the ball sitting in the Outhole so the Outhole Solenoid can release it */
437
438   if (machine().input().code_pressed_once(KEYCODE_BACKSPACE))
439      m_io_hold_x[port] |= (1 << bit_shift);
440
441   return ((m_io_hold_x[port] >> bit_shift) & 1);
346442}
347443
444CUSTOM_INPUT_MEMBER( by35_state::kickback_x3 )
445{
446   int bit_shift = ((FPTR)param & 0x07);
447   int port = (((FPTR)param >> 4) & 0x07);
448
449   /* Here we simulate the ball sitting in a Saucer so the Saucer Solenoid can release it */
450
451   if (machine().input().code_pressed_once(KEYCODE_Q))
452      m_io_hold_x[port] |= (1 << bit_shift);
453
454   return ((m_io_hold_x[port] >> bit_shift) & 1);
455}
456
457CUSTOM_INPUT_MEMBER( by35_state::drop_target_x0 )
458{
459   /* Here we simulate the Drop Target switch states so the Drop Target Reset Solenoid can also release the switches */
460
461   int bit_shift = ((FPTR)param & 0x07);
462   int port = (((FPTR)param >> 4) & 0x07);
463
464   switch (bit_shift)
465   {
466      case 0:   if (machine().input().code_pressed_once(KEYCODE_STOP))
467                  m_io_hold_x[port] |= (1 << bit_shift);
468               break;
469      case 1:   if (machine().input().code_pressed_once(KEYCODE_SLASH))
470                  m_io_hold_x[port] |= (1 << bit_shift);
471               break;
472      case 2:   if (machine().input().code_pressed_once(KEYCODE_OPENBRACE))
473                  m_io_hold_x[port] |= (1 << bit_shift);
474               break;
475      case 3:   if (machine().input().code_pressed_once(KEYCODE_CLOSEBRACE))
476                  m_io_hold_x[port] |= (1 << bit_shift);
477               break;
478      case 4:   if (machine().input().code_pressed_once(KEYCODE_BACKSLASH))
479                  m_io_hold_x[port] |= (1 << bit_shift);
480               break;
481   }
482   return ((m_io_hold_x[port] >> bit_shift) & 1);
483}
484
485READ8_MEMBER(by35_state::nibble_nvram_r)
486{
487   return (m_nvram[offset] | 0x0f);
488}
489
490WRITE8_MEMBER(by35_state::nibble_nvram_w)
491{
492   m_nvram[offset] = (data | 0x0f);
493}
494
495INPUT_CHANGED_MEMBER( by35_state::activity_button )
496{
497   if (newval != oldval)
498      m_maincpu->set_input_line(INPUT_LINE_NMI, (newval ? ASSERT_LINE : CLEAR_LINE));
499}
500
348501INPUT_CHANGED_MEMBER( by35_state::self_test )
349502{
350503   m_pia_u10->ca1_w(newval);
351504}
352505
506READ_LINE_MEMBER( by35_state::u10_ca1_r )
507{
508   return m_io_test->read() & 0x01;
509}
510READ_LINE_MEMBER( by35_state::u10_cb1_r )
511{
512   return m_u10_cb1;
513}
514
353515WRITE_LINE_MEMBER( by35_state::u10_ca2_w )
354516{
517#if 0               // Display Blanking - Out of sync with video redraw rate and causes flicker so it's disabled
518   if (state == 0)
519   {
520      int digit;
521
522      for (digit=1; digit<=8; digit++)
523      {
524         output_set_digit_value(10+digit, 0);
525         output_set_digit_value(20+digit, 0);
526         output_set_digit_value(30+digit, 0);
527         output_set_digit_value(40+digit, 0);
528         output_set_digit_value(50+digit, 0);
529      }
530   }
531#endif
532
355533   m_u10_ca2 = state;
356   if (!state)
357      m_counter = 0;
358534}
359535
360536WRITE_LINE_MEMBER( by35_state::u10_cb2_w )
361537{
538//   logerror("New U10 CB2 state %01x, was %01x.   PIA=%02x\n", state, m_u10_cb2, m_u10a);
539
540   if (state == TRUE)
541      m_lamp_decode = m_u10a & 0x0f;
542
543   m_u10_cb2 = state;
362544}
363545
364546WRITE_LINE_MEMBER( by35_state::u11_ca2_w )
365547{
366   output_set_value("led0", !state);
548   output_set_value("led0", state);
367549}
368550
551READ_LINE_MEMBER( by35_state::u11_ca1_r )
552{
553   return m_u11_ca1;
554}
555
556READ_LINE_MEMBER( by35_state::u11_cb1_r )
557{
558   /* Pin 32 on MPU J5 AID connector tied low */
559   return 0;
560}
561
369562WRITE_LINE_MEMBER( by35_state::u11_cb2_w )
370563{
371564   m_u11_cb2 = state;
372565}
373566
567WRITE_LINE_MEMBER( by35_state::u11_cb2_as2888_w )
568{
569   if (state)
570   {
571      address_space &space = m_maincpu->space(AS_PROGRAM);
572
573      timer_device *snd_sustain_timer = machine().device<timer_device>("timer_as2888");
574      snd_sustain_timer->adjust(attotime::from_msec(5));
575      m_timer_as2888 = true;
576
577      m_discrete->write(space, NODE_08, 11);   // 11 volt pulse
578   }
579
580   m_u11_cb2 = state;
581}
582
374583READ8_MEMBER( by35_state::u10_a_r )
375584{
376585   return m_u10a;
r249893r249894
378587
379588WRITE8_MEMBER( by35_state::u10_a_w )
380589{
381   m_u10a = data;
590//   logerror("Writing %02x to U10 PIA, CB2 state is %01x,  CA2 state is %01x, Lamp_Dec is %02x\n",data, m_u10_cb2, m_u10_ca2, (m_lamp_decode & 0x0f));
382591
383592   if (!m_u10_ca2)
384593   {
385      m_counter++;
386
387      if (m_counter==1)
388         m_segment[0] = data>>4;
389      else
390      if (m_counter==3)
594      if (BIT(data, 0)==0)         // Display 1
391595         m_segment[1] = data>>4;
392596      else
393      if (m_counter==5)
597      if (BIT(data, 1)==0)         // Display 2
394598         m_segment[2] = data>>4;
395599      else
396      if (m_counter==7)
600      if (BIT(data, 2)==0)         // Display 3
397601         m_segment[3] = data>>4;
398602      else
399      if (m_counter==9)
603      if (BIT(data, 3)==0)         // Display 4
400604         m_segment[4] = data>>4;
401605   }
606
607   /*** Update the Lamp latched outputs ***/
608   if ((data & 0x0f) == 0x0f)
609   {
610      if ((m_lamp_decode & 0x0f) < 0x0f)
611      {
612         if (output_get_indexed_value("lamp", ((m_lamp_decode & 0x0f)+00) ) ==0 ) output_set_indexed_value("lamp", ((m_lamp_decode & 0x0f)+00), ((data & 0x10) ? FALSE : TRUE));
613         if (output_get_indexed_value("lamp", ((m_lamp_decode & 0x0f)+15) ) ==0 ) output_set_indexed_value("lamp", ((m_lamp_decode & 0x0f)+15), ((data & 0x20) ? FALSE : TRUE));
614         if (output_get_indexed_value("lamp", ((m_lamp_decode & 0x0f)+30) ) ==0 ) output_set_indexed_value("lamp", ((m_lamp_decode & 0x0f)+30), ((data & 0x40) ? FALSE : TRUE));
615         if (output_get_indexed_value("lamp", ((m_lamp_decode & 0x0f)+45) ) ==0 ) output_set_indexed_value("lamp", ((m_lamp_decode & 0x0f)+45), ((data & 0x80) ? FALSE : TRUE));
616      }
617      else
618      {
619         // Rest output - all lamps are off
620      }
621   }
622
623   m_u10a = data;
402624}
403625
404626READ8_MEMBER( by35_state::u10_b_r )
r249893r249894
447669
448670WRITE8_MEMBER( by35_state::u11_a_w )
449671{
450   m_u11a = data;
672   if (BIT(data, 0)==0)         // Display Credit/Ball
673   {
674      m_segment[5] = m_u10a>>4;
675   }
451676
452   if (!m_u10_ca2)
677
678   m_digit = 0;
679
680   if BIT(data, 7)
681      m_digit = 1;
682   else
683   if BIT(data, 6)
684      m_digit = 2;
685   else
686   if BIT(data, 5)
687      m_digit = 3;
688   else
689   if BIT(data, 4)
690      m_digit = 4;
691   else
692   if BIT(data, 3)
693      m_digit = 5;
694   else
695   if BIT(data, 2)
696      m_digit = 6;
697   else
698   if (BIT(data, 2) && BIT(data, 3))   // Aftermarket 7th digit strobe for 6 digit games
699      m_digit = 7;
700   else
701   if (BIT(data, 1) && m_7d)
702      m_digit = 7;
703
704   if ((m_u10_ca2==0) && m_digit)
453705   {
454      if (m_7d & BIT(data, 1))
455         m_digit = 6;
456      else
457      if BIT(data, 2)
458         m_digit = 5;
459      else
460      if BIT(data, 3)
461         m_digit = 4;
462      else
463      if BIT(data, 4)
464         m_digit = 3;
465      else
466      if BIT(data, 5)
467         m_digit = 2;
468      else
469      if BIT(data, 6)
470         m_digit = 1;
471      else
472      if BIT(data, 7)
473         m_digit = 0;
706      static const UINT8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0,0,0,0,0,0 }; // MC14543 - BCD to 7 Segment Display Decoder
474707
475      if (BIT(data, 0) && (m_counter > 8))
476      {
477         static const UINT8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0,0,0,0,0,0 }; // MC14543
478         output_set_digit_value(m_digit, patterns[m_segment[0]]);
479         output_set_digit_value(10+m_digit, patterns[m_segment[1]]);
480         output_set_digit_value(20+m_digit, patterns[m_segment[2]]);
481         output_set_digit_value(30+m_digit, patterns[m_segment[3]]);
482         output_set_digit_value(40+m_digit, patterns[m_segment[4]]);
483      }
708      output_set_digit_value(10+m_digit, patterns[m_segment[1]]);
709      output_set_digit_value(20+m_digit, patterns[m_segment[2]]);
710      output_set_digit_value(30+m_digit, patterns[m_segment[3]]);
711      output_set_digit_value(40+m_digit, patterns[m_segment[4]]);
712      output_set_digit_value(50+m_digit, patterns[m_segment[5]]);
713
484714   }
715
716   m_u11a = data;
485717}
486718
487719WRITE8_MEMBER( by35_state::u11_b_w )
488720{
489   m_u11b = data;
490721   if (!m_u11_cb2)
491722   {
492      switch (data & 15)
723      if ((data & 0x0f) < 0x0f)   // Momentary Solenoids
493724      {
494         // these vary per game
495         case 0x0: //
496            //m_samples->start(0, 3);
497            break;
498         case 0x1: // chime 10
499            //m_samples->start(1, 1);
500            break;
501         case 0x2: // chime 100
502            //m_samples->start(2, 2);
503            break;
504         case 0x3: // chime 1000
505            //m_samples->start(3, 3);
506            break;
507         case 0x4: // chime 10000
508            //m_samples->start(0, 4);
509            break;
510         // these 2 are standard
511         case 0x5: // knocker
512            m_samples->start(0, 6);
513            break;
514         case 0x6: // outhole
515            m_samples->start(0, 5);
516            break;
517         // these vary per game
518         case 0x7:
519         case 0x8:
520         case 0x9:
521            //m_samples->start(0, 5);
522            break;
523         case 0xa:
524            //m_samples->start(0, 5);
525            break;
526         case 0xb:
527            //m_samples->start(0, 0);
528            break;
529         case 0xc:
530            //m_samples->start(0, 5);
531            break;
532         case 0xd:
533            //m_samples->start(0, 0);
534            break;
535         case 0xe:
536            //m_samples->start(0, 5);
537            break;
538         case 0xf: // not used
539            break;
725         if (m_solenoid_features[(data & 0x0f)][0] != 0xff) {   // Play solenoid audio sample
726            if (output_get_indexed_value("solenoid", (data & 0x0f)) == FALSE)
727               m_samples->start(m_solenoid_features[(data & 0x0f)][0], m_solenoid_features[(data & 0x0f)][1]);
728         }
729
730         output_set_indexed_value( "solenoid", (data & 0x0f), TRUE);
731
732         if (m_solenoid_features[(data & 0x0f)][3])   // Reset/release relevant switch after firing Solenoid
733            m_io_hold_x[(m_solenoid_features[(data & 0x0f)][2])] &= (m_solenoid_features[(data & 0x0f)][3]);
540734      }
735      else                  // Rest output - all momentary solenoids are off
736      {
737         for (int i=0; i<15; i++)
738         {
739            output_set_indexed_value( "solenoid", i, FALSE);
740         }
741      }
541742   }
743
744
745   if ((m_u11b & 0x10) && ((data & 0x10)==0))
746   {
747      output_set_value("solenoid16", TRUE);
748      if (m_solenoid_features[16][0] != 0xff)
749         m_samples->start(m_solenoid_features[16][0], m_solenoid_features[16][1]);
750   }
751   else if ((data & 0x10) && ((m_u11b & 0x10)==0))
752   {
753      output_set_value("solenoid16", FALSE);
754      if (m_solenoid_features[16][0] != 0xff)
755         m_samples->start(m_solenoid_features[16][0], m_solenoid_features[16][2]);
756   }
757   if ((m_u11b & 0x20) && ((data & 0x20)==0))
758   {
759      output_set_value("solenoid17", TRUE);               // Coin Lockout Coil engage
760      if (m_solenoid_features[17][0] != 0xff)
761         m_samples->start(m_solenoid_features[17][0], m_solenoid_features[17][1]);
762   }
763   else if ((data & 0x20) && ((m_u11b & 0x20)==0))
764   {
765      output_set_value("solenoid17", FALSE);               // Coin Lockout Coil release
766      if (m_solenoid_features[17][0] != 0xff)
767         m_samples->start(m_solenoid_features[17][0], m_solenoid_features[17][2]);
768   }
769   if ((m_u11b & 0x40) && ((data & 0x40)==0))
770   {
771      output_set_value("solenoid18", TRUE);               // Flipper Enable Relay engage
772      if (m_solenoid_features[18][0] != 0xff)
773         m_samples->start(m_solenoid_features[18][0], m_solenoid_features[18][1]);
774   }
775   else if ((data & 0x40) && ((m_u11b & 0x40)==0))
776   {
777      output_set_value("solenoid18", FALSE);               // Flipper Enable Relay release
778      if (m_solenoid_features[18][0] != 0xff)
779         m_samples->start(m_solenoid_features[18][0], m_solenoid_features[18][2]);
780   }
781   if ((m_u11b & 0x80) && ((data & 0x80)==0))
782   {
783      output_set_value("solenoid19", TRUE);
784      if (m_solenoid_features[19][0] != 0xff)
785         m_samples->start(m_solenoid_features[19][0], m_solenoid_features[19][1]);
786   }
787   else if ((data & 0x80) && ((m_u11b & 0x80)==0))
788   {
789      output_set_value("solenoid19", FALSE);
790      if (m_solenoid_features[19][0] != 0xff)
791         m_samples->start(m_solenoid_features[19][0], m_solenoid_features[19][2]);
792   }
793
794   m_u11b = data;
542795}
543796
544void by35_state::machine_reset()
797WRITE8_MEMBER( by35_state::u11_b_as2888_w )
545798{
546   m_u10a = 0;
547   m_u10b = 0;
548   m_u10_cb2 = 0;
549   m_u11a = 0;
550   m_u11b = 0;
799   u11_b_w( space, offset, data );
551800}
552801
802
803// zero-cross detection
804TIMER_DEVICE_CALLBACK_MEMBER( by35_state::timer_z_freq )
805{
806
807/*  Zero Crossing Detector - this timing is based on 50Hz AC line power input converted to unregulated DC
808
809   -+                          +---+
810     |                          |   |
811     |<-------- 9.30ms -------->|<->|700us
812     |                          |   |
813    +--------------------------+   +-----
814*/
815
816   timer_device *zero_crossing_active_timer = machine().device<timer_device>("timer_z_pulse");
817
818   zero_crossing_active_timer->adjust(attotime::from_usec(700));
819
820   m_u10_cb1 = true;
821   m_pia_u10->cb1_w(m_u10_cb1);
822
823   /*** Zero Crossing - power to all Lamp SCRs is cut off and reset ***/
824
825   for (int i=0; i<60; i++)
826   {
827      output_set_indexed_value( "lamp", i, 0 );
828   }
829
830}
831TIMER_DEVICE_CALLBACK_MEMBER( by35_state::timer_z_pulse )
832{
833   /*** Line Power to DC Zero Crossing has ended ***/
834
835   m_u10_cb1 = false;
836   m_pia_u10->cb1_w(m_u10_cb1);
837}
838
839// 555 timer for display refresh
840TIMER_DEVICE_CALLBACK_MEMBER( by35_state::u11_timer )
841{
842
843/*   +--------------------------+   +-----
844     |                          |   |
845     |<-------- 2.85ms -------->|<->|300us
846     |                          |   |
847    -+                          +---+
848*/
849
850   timer_device *display_refresh_timer = machine().device<timer_device>("timer_d_pulse");
851
852   display_refresh_timer->adjust(attotime::from_msec(2.85));
853
854   m_u11_ca1 = true;
855   m_pia_u11->ca1_w(m_u11_ca1);
856}
857
858TIMER_DEVICE_CALLBACK_MEMBER( by35_state::timer_d_pulse )
859{
860   m_u11_ca1 = false;
861   m_pia_u11->ca1_w(m_u11_ca1);
862}
863
864TIMER_DEVICE_CALLBACK_MEMBER( by35_state::timer_s )
865{
866   m_snd_tone_gen--;
867
868   if ((m_snd_tone_gen == 0) && (m_snd_sel != 0x01))
869   {
870      address_space &space = m_maincpu->space(AS_PROGRAM);
871
872      m_snd_tone_gen = m_snd_sel;
873      m_snd_div++;
874
875      m_discrete->write(space, NODE_04, ((m_snd_div & 0x04)>>2) * 1);
876      m_discrete->write(space, NODE_01, ((m_snd_div & 0x01)>>0) * 1);
877
878//      if (m_snd_sel == 0x01) logerror("SndSel=%02x, Tone=%02x, Div=%02x\n",m_snd_sel, m_snd_tone_gen, m_snd_div);
879   }
880}
881
882TIMER_DEVICE_CALLBACK_MEMBER( by35_state::timer_as2888 )
883{
884   address_space &space = m_maincpu->space(AS_PROGRAM);
885
886   offs_t offs = (m_u11b & 0x0f);
887   if ((m_u11a & 0x02) == 0) offs |= 0x10;
888   {
889      m_snd_sel = m_snd_prom[offs];
890//      logerror("SndSel read %02x from PROM addr %02x\n",m_snd_sel, offs );
891      m_snd_sel = BITSWAP8(m_snd_sel,0,1,2,3,4,5,6,7);
892
893      m_snd_tone_gen = m_snd_sel;
894//      logerror("SndSel=%02x, Tone=%02x, Div=%02x\n",m_snd_sel, m_snd_tone_gen, m_snd_div);
895   }
896
897   m_discrete->write(space, NODE_08, 0);
898   timer.adjust(attotime::never);
899   m_timer_as2888 = false;
900
901// logerror("Sustain off\n");
902}
903
904
905
553906DRIVER_INIT_MEMBER( by35_state, by35_6 )
554907{
908
909   static const UINT8 solenoid_features_default[20][4] =
910   {
911   // This table serves two functions and is configured on a per game basis:
912   // Assign a particular sound sample corresponding to a solenoid function, and
913   // release any switches being held closed eg. drop targets, ball in saucer/outhole, etc
914
915   //  { Sound Channel, Sound Sample, Switch Strobe, Switch Return Mask }
916   /*00*/  { 0x00, 0x00,  0x00, 0x00 },
917   /*01*/  { 0x00, 0x00,  0x00, 0x00 },
918   /*02*/  { 0x00, 0x00,  0x00, 0x00 },
919   /*03*/  { 0x00, 0x00,  0x00, 0x00 },
920   /*04*/  { 0x00, 0x00,  0x00, 0x00 },
921   /*05*/  { 0x04, 0x06,  0x00, 0x00 },      // Knocker
922   /*06*/  { 0x01, 0x09,  0x00, 0x7f },      // Outhole
923   /*07*/  { 0x00, 0x0a,  0x00, 0x00 },
924   /*08*/  { 0x02, 0x00,  0x00, 0x00 },
925   /*09*/  { 0x02, 0x00,  0x00, 0x00 },
926   /*10*/  { 0x02, 0x00,  0x00, 0x00 },
927   /*11*/  { 0x02, 0x07,  0x00, 0x00 },
928   /*12*/  { 0x00, 0x0b,  0x00, 0x00 },
929   /*13*/  { 0x02, 0x07,  0x00, 0x00 },
930   /*14*/  { 0x00, 0x00,  0x00, 0x00 },
931   /*15*/  { 0xff, 0xff,  0x00, 0x00 },      // None - all momentary solenoids off
932   //  { Sound Channel, Sound engage, Sound release, Not Used }
933   /*16*/  { 0xff, 0xff, 0xff,  0x00 },
934   /*17*/  { 0x00, 0x0c, 0x0d,  0x00 },      // Coin Lockout coil
935   /*18*/  { 0x00, 0x0e, 0x0f,  0x00 },      // Flipper enable relay
936   /*19*/  { 0xff, 0xff, 0xff,  0x00 }
937   };
938
939
940   for (int i=0; i<20; i++)
941   {
942      for (int j=0; j<4; j++)
943         m_solenoid_features[i][j] = solenoid_features_default[i][j];
944   }
945
946
555947   m_7d = 0;
556948}
557949
950DRIVER_INIT_MEMBER( by35_state, playboy )
951{
952
953   static const UINT8 solenoid_features_playboy[20][4] =
954   {
955   //  { Sound Channel, Sound Sample, Switch Strobe, Switch Return Mask }
956   /*00*/  { 0xff, 0xff,  0x00, 0x00 },
957   /*01*/  { 0xff, 0xff,  0x00, 0x00 },
958   /*02*/  { 0xff, 0xff,  0x00, 0x00 },
959   /*03*/  { 0xff, 0xff,  0x00, 0x00 },
960   /*04*/  { 0xff, 0xff,  0x00, 0x00 },
961   /*05*/  { 0x04, 0x06,  0x00, 0x00 },      // Knocker
962   /*06*/  { 0x01, 0x09,  0x00, 0x7f },      // Outhole
963   /*07*/  { 0x02, 0x0a,  0x03, 0x7f },      // Kickback Grotto
964   /*08*/  { 0x02, 0x00,  0x00, 0x00 },      // Pop Bumper Left
965   /*09*/  { 0x02, 0x00,  0x00, 0x00 },      // Pop Bumper Right
966   /*10*/  { 0x02, 0x00,  0x00, 0x00 },      // Pop Bumper Bottom
967   /*11*/  { 0x02, 0x07,  0x00, 0x00 },      // Slingshot Left
968   /*12*/  { 0x03, 0x0b,  0x00, 0xe0 },      // Drop Target Reset
969   /*13*/  { 0x02, 0x07,  0x00, 0x00 },      // Slingshot Right
970   /*14*/  { 0xff, 0xff,  0x00, 0x00 },
971   /*15*/  { 0xff, 0xff,  0x00, 0x00 },      // None - all momentary solenoids off
972   //  { Sound Channel, Sound engage, Sound release, Not Used }
973   /*16*/  { 0xff, 0xff, 0xff,  0x00 },
974   /*17*/  { 0x00, 0x0c, 0x0d,  0x00 },      // Coin Lockout coil
975   /*18*/  { 0x00, 0x0e, 0x0f,  0x00 },      // Flipper enable relay
976   /*19*/  { 0xff, 0xff, 0xff,  0x00 }
977   };
978
979
980   DRIVER_INIT_CALL( by35_6 );
981
982   for (int i=0; i<20; i++)
983   {
984      for (int j=0; j<4; j++)
985         m_solenoid_features[i][j] = solenoid_features_playboy[i][j];
986   }
987
988
989   m_7d = 0;
990}
991
992
558993DRIVER_INIT_MEMBER( by35_state, by35_7 )
559994{
995   DRIVER_INIT_CALL(by35_6);
996
560997   m_7d = 1;
561998}
562999
563// zero-cross detection
564TIMER_DEVICE_CALLBACK_MEMBER( by35_state::timer_x )
1000
1001MACHINE_RESET_MEMBER( by35_state, by35 )
5651002{
566   m_timer_x ^= 1;
567   m_pia_u10->cb1_w(m_timer_x);
1003   render_target *target = machine().render().first_target();
1004
1005   target->set_view(0);
1006
1007   m_u10a = 0;
1008   m_u10b = 0;
1009   m_u11a = 0;
1010   m_u11b = 0;
1011   m_lamp_decode = 0x0f;
1012   m_io_hold_x[0] = 0x80;   // Put ball in Outhole on startup
1013   m_io_hold_x[1] = m_io_hold_x[2] = m_io_hold_x[3] = m_io_hold_x[4] = m_io_hold_x[5] = 0;
5681014}
5691015
570// 555 timer for display refresh
571TIMER_DEVICE_CALLBACK_MEMBER( by35_state::u11_timer )
1016MACHINE_START_MEMBER( by35_state, as2888 )
5721017{
573   m_u11_timer ^= 1;
574   m_pia_u11->ca1_w(m_u11_timer);
1018   MACHINE_RESET_CALL_MEMBER( by35 );
1019   m_snd_prom = memregion("sound1")->base();
5751020}
5761021
1022static const discrete_mixer_desc as2888_digital_mixer_info =
1023{
1024      DISC_MIXER_IS_RESISTOR,                       /* type */
1025      {RES_K(33), RES_K(3.9)},                      /* r{} */
1026      {0, 0, 0, 0},                                 /* r_node */
1027      {0, 0},                                       /* c{} */
1028      0,                                            /* rI  */
1029//      RES_VOLTAGE_DIVIDER(RES_K(10), RES_R(360)),   /* rF  */
1030      RES_K(10),                                    /* rF  */   // not really
1031      CAP_U(0.01),                                  /* cF  */
1032      0,                                            /* cAmp */
1033      0,                                            /* vRef */
1034      0.00002                                       /* gain */
1035};
1036
1037static const discrete_op_amp_filt_info as2888_preamp_info = {
1038      RES_K(10), 0, RES_R(470), 0,      /* r1 .. r4 */
1039      RES_K(10),                        /* rF */
1040      CAP_U(1),                         /* C1 */
1041      0,                                /* C2 */
1042      0,                                /* C3 */
1043      0.0,                              /* vRef */
1044      12.0,                             /* vP */
1045      -12.0,                            /* vN */
1046};
1047
1048
1049static DISCRETE_SOUND_START(as2888)
1050
1051   DISCRETE_INPUT_DATA(NODE_08)      // Start Sustain Attenuation from 555 circuit
1052   DISCRETE_INPUT_LOGIC(NODE_01)      // Binary Counter B output (divide by 1) T2
1053   DISCRETE_INPUT_LOGIC(NODE_04)      // Binary Counter D output (divide by 4) T3
1054
1055   DISCRETE_DIVIDE(NODE_11, 1, NODE_01, 1)   // 2
1056   DISCRETE_DIVIDE(NODE_14, 1, NODE_04, 1)
1057
1058
1059   DISCRETE_RCFILTER(NODE_06, NODE_14, RES_K(15), CAP_U(0.1))      // T4 filter
1060#if 0
1061   DISCRETE_RCFILTER(NODE_05, NODE_11, RES_K(33), CAP_U(0.01))      // T1 filter
1062   DISCRETE_ADDER2(NODE_07, 1, NODE_05, NODE_06)
1063#else
1064
1065   DISCRETE_MIXER2(NODE_07, 1, NODE_11, NODE_06, &as2888_digital_mixer_info)   // Mix and filter T1 and T4 together
1066#endif
1067   DISCRETE_RCDISC5(NODE_87, 1, NODE_08, RES_K(150), CAP_U(1.0))
1068
1069   DISCRETE_RCFILTER_VREF(NODE_88,NODE_87,RES_M(1),CAP_U(0.01),2)
1070   DISCRETE_MULTIPLY(NODE_09, NODE_07, NODE_88)   // Apply sustain
1071
1072   DISCRETE_OP_AMP_FILTER(NODE_20, 1, NODE_09, 0, DISC_OP_AMP_FILTER_IS_HIGH_PASS_1, &as2888_preamp_info)
1073
1074   DISCRETE_CRFILTER(NODE_25, NODE_20, RES_M(100), CAP_U(0.05))   // Resistor is fake. Capacitor in series between pre-amp and output amp.
1075
1076   DISCRETE_GAIN(NODE_30, NODE_25, 50)   // Output amplifier LM380 fixed inbuilt gain of 50
1077
1078   DISCRETE_OUTPUT(NODE_30, 10000000)  //  17000000
1079DISCRETE_SOUND_END
1080
1081
1082
5771083static MACHINE_CONFIG_START( by35, by35_state )
5781084   /* basic machine hardware */
579   MCFG_CPU_ADD("maincpu", M6800, 1000000) // no xtal, just 2 chips forming a random oscillator
1085   MCFG_CPU_ADD("maincpu", M6800, 530000) // No xtal, just 2 chips forming a multivibrator oscillator around 530KHz
5801086   MCFG_CPU_PROGRAM_MAP(by35_map)
5811087
582   MCFG_NVRAM_ADD_0FILL("nvram")
1088   MCFG_MACHINE_RESET_OVERRIDE( by35_state, by35 )
5831089
1090   MCFG_NVRAM_ADD_0FILL("nvram")   // 'F' filled causes Credit Display to be blank on first startup
1091
5841092   /* Video */
5851093   MCFG_DEFAULT_LAYOUT(layout_by35)
5861094
r249893r249894
5931101   MCFG_PIA_WRITEPA_HANDLER(WRITE8(by35_state, u10_a_w))
5941102   MCFG_PIA_READPB_HANDLER(READ8(by35_state, u10_b_r))
5951103   MCFG_PIA_WRITEPB_HANDLER(WRITE8(by35_state, u10_b_w))
1104   MCFG_PIA_READCA1_HANDLER(READLINE(by35_state, u10_ca1_r))
1105   MCFG_PIA_READCB1_HANDLER(READLINE(by35_state, u10_cb1_r))
5961106   MCFG_PIA_CA2_HANDLER(WRITELINE(by35_state, u10_ca2_w))
5971107   MCFG_PIA_CB2_HANDLER(WRITELINE(by35_state, u10_cb2_w))
5981108   MCFG_PIA_IRQA_HANDLER(DEVWRITELINE("maincpu", m6800_cpu_device, irq_line))
5991109   MCFG_PIA_IRQB_HANDLER(DEVWRITELINE("maincpu", m6800_cpu_device, irq_line))
600   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_x", by35_state, timer_x, attotime::from_hz(120)) // mains freq*2
1110   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_z_freq", by35_state, timer_z_freq, attotime::from_hz(100)) // Mains Line Frequency * 2
1111   MCFG_TIMER_DRIVER_ADD("timer_z_pulse", by35_state, timer_z_pulse)                                // Active pulse length from Zero Crossing detector
6011112
6021113   MCFG_DEVICE_ADD("pia_u11", PIA6821, 0)
6031114   MCFG_PIA_READPA_HANDLER(READ8(by35_state, u11_a_r))
6041115   MCFG_PIA_WRITEPA_HANDLER(WRITE8(by35_state, u11_a_w))
6051116   MCFG_PIA_WRITEPB_HANDLER(WRITE8(by35_state, u11_b_w))
1117   MCFG_PIA_READCA1_HANDLER(READLINE(by35_state, u11_ca1_r))
1118   MCFG_PIA_READCB1_HANDLER(READLINE(by35_state, u11_cb1_r))
6061119   MCFG_PIA_CA2_HANDLER(WRITELINE(by35_state, u11_ca2_w))
6071120   MCFG_PIA_CB2_HANDLER(WRITELINE(by35_state, u11_cb2_w))
6081121   MCFG_PIA_IRQA_HANDLER(DEVWRITELINE("maincpu", m6800_cpu_device, irq_line))
6091122   MCFG_PIA_IRQB_HANDLER(DEVWRITELINE("maincpu", m6800_cpu_device, irq_line))
610   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_d", by35_state, u11_timer, attotime::from_hz(634)) // 555 timer*2
1123   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_d_freq", by35_state, u11_timer, attotime::from_hz(317)) // 555 timer
1124   MCFG_TIMER_DRIVER_ADD("timer_d_pulse", by35_state, timer_d_pulse)                             // 555 Active pulse length
6111125MACHINE_CONFIG_END
6121126
1127MACHINE_CONFIG_FRAGMENT( as2888_audio )
6131128
1129   MCFG_MACHINE_START_OVERRIDE( by35_state, as2888 )
1130
1131   MCFG_SPEAKER_STANDARD_MONO("mono")
1132   MCFG_SOUND_ADD("discrete", DISCRETE, 0)
1133   MCFG_DISCRETE_INTF(as2888)
1134   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
1135
1136   MCFG_DEVICE_MODIFY("pia_u11")
1137   MCFG_PIA_WRITEPB_HANDLER(WRITE8(by35_state, u11_b_as2888_w))
1138   MCFG_PIA_CB2_HANDLER(WRITELINE(by35_state, u11_cb2_as2888_w))
1139
1140   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_s_freq", by35_state, timer_s, attotime::from_hz(353000))     // Inverter clock on AS-2888 sound board
1141   MCFG_TIMER_DRIVER_ADD("timer_as2888", by35_state, timer_as2888)
1142MACHINE_CONFIG_END
1143
1144
1145static MACHINE_CONFIG_DERIVED( as2888, by35 )
1146
1147   MCFG_FRAGMENT_ADD( as2888_audio  )
1148MACHINE_CONFIG_END
1149
1150
1151static MACHINE_CONFIG_DERIVED( nuovo, by35 )
1152
1153   MCFG_CPU_REPLACE("maincpu", M6802, 2000000) // ? MHz ?  Large crystal next to CPU, schematics don't indicate speed.
1154   MCFG_CPU_PROGRAM_MAP(nuovo_map)
1155
1156MACHINE_CONFIG_END
1157
1158
1159
1160
6141161/*--------------------------------
6151162/ Supersonic #1106
6161163/-------------------------------*/
6171164ROM_START(sst)
618   ROM_REGION(0x10000, "maincpu", 0)
1165   ROM_REGION(0x8000, "maincpu", 0)
6191166   ROM_LOAD( "741-10_1.716", 0x1000, 0x0800, CRC(5e4cd81a) SHA1(d2a4a3599ad7271cd0ddc376c31c9b2e8defa379))
6201167   ROM_LOAD( "741-08_2.716", 0x5000, 0x0800, CRC(2789cbe6) SHA1(8230657cb5ee793354a5d4a80a9348639ec9af8f))
6211168   ROM_LOAD( "720-30_6.716", 0x5800, 0x0800, CRC(4be8aab0) SHA1(b6ae0c4f27b7dd7fb13c0632617a2559f86f29ae))
622   ROM_RELOAD( 0xf800, 0x0800)
1169   ROM_RELOAD( 0x7800, 0x0800)
6231170   ROM_REGION(0x0020, "sound1", 0)
6241171   ROM_LOAD( "729-18_3.123", 0x0000, 0x0020, CRC(7b6b7d45) SHA1(22f791bac0baab71754b2f6c00c217a342c92df5))
6251172ROM_END
r249893r249894
6281175/ Playboy #1116
6291176/-------------------------------*/
6301177ROM_START(playboy)
631   ROM_REGION(0x10000, "maincpu", 0)
1178   ROM_REGION(0x8000, "maincpu", 0)
6321179   ROM_LOAD( "743-14_1.716", 0x1000, 0x0800, CRC(5c40984a) SHA1(dea104242fcb6d604faa0f01f087bc58bd43cd9d))
6331180   ROM_LOAD( "743-12_2.716", 0x5000, 0x0800, CRC(6fa66664) SHA1(4943220942ce74d4620eb5fbbab8f8a763f65a2e))
6341181   ROM_LOAD( "720-30_6.716", 0x5800, 0x0800, CRC(4be8aab0) SHA1(b6ae0c4f27b7dd7fb13c0632617a2559f86f29ae))
635   ROM_RELOAD( 0xf800, 0x0800)
1182   ROM_RELOAD( 0x7800, 0x0800)
6361183   ROM_REGION(0x0020, "sound1", 0)
6371184   ROM_LOAD( "729-18_3.123", 0x0000, 0x0020, CRC(7b6b7d45) SHA1(22f791bac0baab71754b2f6c00c217a342c92df5))
6381185ROM_END
r249893r249894
6411188/ Lost World #1119
6421189/-------------------------------*/
6431190ROM_START(lostwrlp)
644   ROM_REGION(0x10000, "maincpu", 0)
1191   ROM_REGION(0x8000, "maincpu", 0)
6451192   ROM_LOAD( "729-33_1.716", 0x1000, 0x0800, CRC(4ca40b95) SHA1(4b4a3fbffb0aa99dab6330e24f93605eee35ac54))
6461193   ROM_LOAD( "729-48_2.716", 0x5000, 0x0800, CRC(963bffd8) SHA1(5144092d019132946b396fd7134866a878b3ca62))
6471194   ROM_LOAD( "720-28_6.716", 0x5800, 0x0800, CRC(f24cce3e) SHA1(0dfeaeb5b1cf4c950ff530ee56966ac0f2257111))
648   ROM_RELOAD( 0xf800, 0x0800)
1195   ROM_RELOAD( 0x7800, 0x0800)
6491196   ROM_REGION(0x0020, "sound1", 0)
6501197   ROM_LOAD( "729-18_3.123", 0x0000, 0x0020, CRC(7b6b7d45) SHA1(22f791bac0baab71754b2f6c00c217a342c92df5))
6511198ROM_END
r249893r249894
6541201/ Six Million Dollar Man #1138
6551202/-------------------------------*/
6561203ROM_START(smman)
657   ROM_REGION(0x10000, "maincpu", 0)
1204   ROM_REGION(0x8000, "maincpu", 0)
6581205   ROM_LOAD( "742-20_1.716", 0x1000, 0x0800, CRC(33e55a75) SHA1(98fbec07c9d03557654e5b67e29738c66156ec62))
6591206   ROM_LOAD( "742-18_2.716", 0x5000, 0x0800, CRC(5365d36c) SHA1(1db651d31e28cf3fda00bef5289bb14d3b37b3c1))
6601207   ROM_LOAD( "720-30_6.716", 0x5800, 0x0800, CRC(4be8aab0) SHA1(b6ae0c4f27b7dd7fb13c0632617a2559f86f29ae))
661   ROM_RELOAD( 0xf800, 0x0800)
1208   ROM_RELOAD( 0x7800, 0x0800)
6621209   ROM_REGION(0x0020, "sound1", 0)
6631210   ROM_LOAD( "729-18_3.123", 0x0000, 0x0020, CRC(7b6b7d45) SHA1(22f791bac0baab71754b2f6c00c217a342c92df5))
6641211ROM_END
r249893r249894
6671214/ Voltan Escapes Cosmic Doom #1147
6681215/-----------------------------------*/
6691216ROM_START(voltan)
670   ROM_REGION(0x10000, "maincpu", 0)
1217   ROM_REGION(0x8000, "maincpu", 0)
6711218   ROM_LOAD( "744-03_1.716", 0x1000, 0x0800, CRC(ad2467ae) SHA1(58c4de1ea696372bce9146a4c48a296ebcb2c431))
6721219   ROM_LOAD( "744-04_2.716", 0x5000, 0x0800, CRC(dbf58b83) SHA1(2d5e1c42fb8987eec81d89a4fe758ff0b88a1889))
6731220   ROM_LOAD( "720-30_6.716", 0x5800, 0x0800, CRC(4be8aab0) SHA1(b6ae0c4f27b7dd7fb13c0632617a2559f86f29ae))
674   ROM_RELOAD( 0xf800, 0x0800)
1221   ROM_RELOAD( 0x7800, 0x0800)
6751222   ROM_REGION(0x0020, "sound1", 0)
6761223   ROM_LOAD( "729-18_3.123", 0x0000, 0x0020, CRC(7b6b7d45) SHA1(22f791bac0baab71754b2f6c00c217a342c92df5))
6771224ROM_END
r249893r249894
6801227/ Star Trek #1148
6811228/-------------------------------*/
6821229ROM_START(startrep)
683   ROM_REGION(0x10000, "maincpu", 0)
1230   ROM_REGION(0x8000, "maincpu", 0)
6841231   ROM_LOAD( "745-11_1.716", 0x1000, 0x0800, CRC(a077efca) SHA1(6f78d9a43db0b99c3818a73a04d15aa300194a6d))
6851232   ROM_LOAD( "745-12_2.716", 0x5000, 0x0800, CRC(f683210a) SHA1(6120909d97269d9abfcc34eef2c79b56a9cf53bc))
6861233   ROM_LOAD( "720-30_6.716", 0x5800, 0x0800, CRC(4be8aab0) SHA1(b6ae0c4f27b7dd7fb13c0632617a2559f86f29ae))
687   ROM_RELOAD( 0xf800, 0x0800)
1234   ROM_RELOAD( 0x7800, 0x0800)
6881235   ROM_REGION(0x0020, "sound1", 0)
6891236   ROM_LOAD( "729-18_3.123", 0x0000, 0x0020, CRC(7b6b7d45) SHA1(22f791bac0baab71754b2f6c00c217a342c92df5))
6901237ROM_END
r249893r249894
6931240/ Kiss #1152
6941241/-------------------------------*/
6951242ROM_START(kiss)
696   ROM_REGION(0x10000, "maincpu", 0)
1243   ROM_REGION(0x8000, "maincpu", 0)
6971244   ROM_LOAD( "746-11_1.716", 0x1000, 0x0800, CRC(78ec7fad) SHA1(b7e47ed14be08571b620de71cd5006faaddc88d5))
6981245   ROM_LOAD( "746-14_2.716", 0x5000, 0x0800, CRC(0fc8922d) SHA1(dc6bd4d2d744df69b33ec69896cf71ac10c14a35))
6991246   ROM_LOAD( "720-30_6.716", 0x5800, 0x0800, CRC(4be8aab0) SHA1(b6ae0c4f27b7dd7fb13c0632617a2559f86f29ae))
700   ROM_RELOAD( 0xf800, 0x0800)
1247   ROM_RELOAD( 0x7800, 0x0800)
7011248   ROM_REGION(0x0020, "sound1", 0)
7021249   ROM_LOAD( "729-18_3.123", 0x0000, 0x0020, CRC(7b6b7d45) SHA1(22f791bac0baab71754b2f6c00c217a342c92df5))
7031250ROM_END
r249893r249894
7061253/ Nitro Ground Shaker #1154
7071254/-------------------------------*/
7081255ROM_START(ngndshkr)
709   ROM_REGION(0x10000, "maincpu", 0)
1256   ROM_REGION(0x8000, "maincpu", 0)
7101257   ROM_LOAD( "776-17_1.716", 0x1000, 0x0800, CRC(f2d44235) SHA1(282106767b5ec5180fa8e7eb2eb5b4766849c920))
7111258   ROM_LOAD( "776-11_2.716", 0x5000, 0x0800, CRC(b0396b55) SHA1(2d10c4af7ecfa23b64ffb640111b582f44256fd5))
7121259   ROM_LOAD( "720-35_6.716", 0x5800, 0x0800, CRC(78d6d289) SHA1(47c3005790119294309f12ea68b7e573f360b9ef))
713   ROM_RELOAD( 0xf800, 0x0800)
1260   ROM_RELOAD( 0x7800, 0x0800)
7141261   ROM_REGION(0x10000, "cpu2", 0)
7151262   ROM_LOAD("776-15_4.716", 0xf000, 0x0800, CRC(63c80c52) SHA1(3350919fce237b308b8f960948f70d01d312e9c0))
7161263   ROM_RELOAD(0xf800, 0x0800)
r249893r249894
7221269/ Silverball Mania #1157
7231270/-------------------------------*/
7241271ROM_START(slbmania)
725   ROM_REGION(0x10000, "maincpu", 0)
1272   ROM_REGION(0x8000, "maincpu", 0)
7261273   ROM_LOAD( "786-16_1.716", 0x1000, 0x0800, CRC(c054733f) SHA1(2699cf940ce40012e2d7554b0b130adcb2bec6d1))
7271274   ROM_LOAD( "786-17_2.716", 0x5000, 0x0800, CRC(94af0298) SHA1(579eb0290283194d92b172f787d8a9ff54f16a07))
7281275   ROM_LOAD( "720-35_6.716", 0x5800, 0x0800, CRC(78d6d289) SHA1(47c3005790119294309f12ea68b7e573f360b9ef))
729   ROM_RELOAD( 0xf800, 0x0800)
1276   ROM_RELOAD( 0x7800, 0x0800)
7301277   ROM_REGION(0x10000, "cpu2", 0)
7311278   ROM_LOAD("786-11_4.716", 0xf000, 0x0800, CRC(2a3641e6) SHA1(64693d424277e2aaf5fd4af33b2d348a8a455448))
7321279   ROM_RELOAD(0xf800, 0x0800)
r249893r249894
7381285/ Harlem Globetrotters On Tour #1161
7391286/------------------------------------*/
7401287ROM_START(hglbtrtr)
741   ROM_REGION(0x10000, "maincpu", 0)
1288   ROM_REGION(0x8000, "maincpu", 0)
7421289   ROM_LOAD( "750-07_1.716", 0x1000, 0x0800, CRC(da594719) SHA1(0aaa50e7d62da64f88d82b00cf0747945be88818))
7431290   ROM_LOAD( "750-08_2.716", 0x5000, 0x0800, CRC(3c783931) SHA1(ee260511063aff1b72e18b3bc5a5be81aecf10c9))
7441291   ROM_LOAD( "720-35_6.716", 0x5800, 0x0800, CRC(78d6d289) SHA1(47c3005790119294309f12ea68b7e573f360b9ef))
745   ROM_RELOAD( 0xf800, 0x0800)
1292   ROM_RELOAD( 0x7800, 0x0800)
7461293   ROM_REGION(0x0020, "sound1", 0)
7471294   ROM_LOAD( "729-51_3.123", 0x0000, 0x0020, CRC(6e7d3e8b) SHA1(7a93d82a05213ffa6eacfa318051414f872a701d))
7481295ROM_END
r249893r249894
7511298/ Dolly Parton #1162
7521299/-------------------------------*/
7531300ROM_START(dollyptn)
754   ROM_REGION(0x10000, "maincpu", 0)
1301   ROM_REGION(0x8000, "maincpu", 0)
7551302   ROM_LOAD( "777-10_1.716", 0x1000, 0x0800, CRC(ca88cb9a) SHA1(0deac1c02b2121635af4bd76a6695d8abc09d694))
7561303   ROM_LOAD( "777-13_2.716", 0x5000, 0x0800, CRC(7fc93ea3) SHA1(534ac5ed34397fe622dcf7cc90eaf38a311fa871))
7571304   ROM_LOAD( "720-35_6.716", 0x5800, 0x0800, CRC(78d6d289) SHA1(47c3005790119294309f12ea68b7e573f360b9ef))
758   ROM_RELOAD( 0xf800, 0x0800)
1305   ROM_RELOAD( 0x7800, 0x0800)
7591306   ROM_REGION(0x0020, "sound1", 0)
7601307   ROM_LOAD( "729-51_3.123", 0x0000, 0x0020, CRC(6e7d3e8b) SHA1(7a93d82a05213ffa6eacfa318051414f872a701d))
7611308ROM_END
r249893r249894
7641311/ Paragon #1167
7651312/-------------------------------*/
7661313ROM_START(paragon)
767   ROM_REGION(0x10000, "maincpu", 0)
1314   ROM_REGION(0x8000, "maincpu", 0)
7681315   ROM_LOAD( "748-17_1.716", 0x1000, 0x0800, CRC(08dbdf32) SHA1(43d1380d809683e74d67b6cf57c6eb0ad248a813))
7691316   ROM_LOAD( "748-15_2.716", 0x5000, 0x0800, CRC(26cc05c1) SHA1(6e11a0f2327dbf15f6c149ddd873d9af96597d9d))
7701317   ROM_LOAD( "720-30_6.716", 0x5800, 0x0800, CRC(4be8aab0) SHA1(b6ae0c4f27b7dd7fb13c0632617a2559f86f29ae))
771   ROM_RELOAD( 0xf800, 0x0800)
1318   ROM_RELOAD( 0x7800, 0x0800)
7721319   ROM_REGION(0x0020, "sound1", 0)
7731320   ROM_LOAD( "729-51_3.123", 0x0000, 0x0020, CRC(6e7d3e8b) SHA1(7a93d82a05213ffa6eacfa318051414f872a701d))
7741321ROM_END
r249893r249894
7771324/ Future Spa #1173
7781325/-------------------------------*/
7791326ROM_START(futurspa)
780   ROM_REGION(0x10000, "maincpu", 0)
1327   ROM_REGION(0x8000, "maincpu", 0)
7811328   ROM_LOAD( "781-07_1.716", 0x1000, 0x0800, CRC(4c716a6a) SHA1(a19ff17079b7ef0b9e6933ffc718dee0236bae10))
7821329   ROM_LOAD( "781-09_2.716", 0x5000, 0x0800, CRC(316617ed) SHA1(749d63cefe9541885b51db89302ad8a23e8f5b0a))
7831330   ROM_LOAD( "720-35_6.716", 0x5800, 0x0800, CRC(78d6d289) SHA1(47c3005790119294309f12ea68b7e573f360b9ef))
784   ROM_RELOAD( 0xf800, 0x0800)
1331   ROM_RELOAD( 0x7800, 0x0800)
7851332   ROM_REGION(0x10000, "cpu2", 0)
7861333   ROM_LOAD("781-02_4.716", 0xf000, 0x0800, CRC(364f7c9a) SHA1(e6a3d425317eaeba4109712c6949f11c50b82892))
7871334   ROM_RELOAD(0xf800, 0x0800)
r249893r249894
7931340/ Space Invaders #1178
7941341/-------------------------------*/
7951342ROM_START(spaceinv)
796   ROM_REGION(0x10000, "maincpu", 0)
1343   ROM_REGION(0x8000, "maincpu", 0)
7971344   ROM_LOAD( "792-10_1.716", 0x1000, 0x0800, CRC(075eba5a) SHA1(7147c2dfb6af1c39bbfb9e98f409baae10d09628))
7981345   ROM_LOAD( "792-13_2.716", 0x5000, 0x0800, CRC(b87b9e6b) SHA1(eab787ea81409ba88e30a342564944e1fade8124))
7991346   ROM_LOAD( "720-37_6.716", 0x5800, 0x0800, CRC(ceff6993) SHA1(bc91e7afdfc441ff47a37031f2d6caeb9ab64143))
800   ROM_RELOAD( 0xf800, 0x0800)
1347   ROM_RELOAD( 0x7800, 0x0800)
8011348   ROM_REGION(0x10000, "cpu2", 0)
8021349   ROM_LOAD("792-07_4.716", 0xf000, 0x0800, CRC(787ffd5e) SHA1(4dadad7095de27622c2120311a84555dacdc3364))
8031350   ROM_RELOAD(0xf800, 0x0800)
r249893r249894
8091356/ Rolling Stones #1187
8101357/-------------------------------*/
8111358ROM_START(rollston)
812   ROM_REGION(0x10000, "maincpu", 0)
1359   ROM_REGION(0x8000, "maincpu", 0)
8131360   ROM_LOAD( "796-17_1.716", 0x1000, 0x0800, CRC(51a826d7) SHA1(6811149c8948066b85b4018802afd409dbe8c2e1))
8141361   ROM_LOAD( "796-18_2.716", 0x5000, 0x0800, CRC(08c75b1a) SHA1(792a535514fe4d9476914f7f61c696a7a1bdb549))
8151362   ROM_LOAD( "720-35_6.716", 0x5800, 0x0800, CRC(78d6d289) SHA1(47c3005790119294309f12ea68b7e573f360b9ef))
816   ROM_RELOAD( 0xf800, 0x0800)
1363   ROM_RELOAD( 0x7800, 0x0800)
8171364   ROM_REGION(0x10000, "cpu2", 0)
8181365   ROM_LOAD("796-19_4.716", 0xf000, 0x0800, CRC(b740d047) SHA1(710edb6bbba0a03e4f516b501f019493a3a4033e))
8191366   ROM_RELOAD(0xf800, 0x0800)
r249893r249894
8251372/ Mystic #1192
8261373/-------------------------------*/
8271374ROM_START(mystic)
828   ROM_REGION(0x10000, "maincpu", 0)
1375   ROM_REGION(0x8000, "maincpu", 0)
8291376   ROM_LOAD( "798-03_1.716", 0x1000, 0x0800, CRC(f9c91e3b) SHA1(a3e6600b7b809cdd51a2d61b679f4f45ecf16e99))
8301377   ROM_LOAD( "798-04_2.716", 0x5000, 0x0800, CRC(f54e5785) SHA1(425304512b70ef0f17ca9854af96cbb63c5ee33e))
8311378   ROM_LOAD( "720-35_6.716", 0x5800, 0x0800, CRC(78d6d289) SHA1(47c3005790119294309f12ea68b7e573f360b9ef))
832   ROM_RELOAD( 0xf800, 0x0800)
1379   ROM_RELOAD( 0x7800, 0x0800)
8331380   ROM_REGION(0x10000, "cpu2", 0)
8341381   ROM_LOAD("798-05_4.716", 0xf000, 0x0800, CRC(e759e093) SHA1(e635dac4aa925804ec658e856f7830290bfbc7b8))
8351382   ROM_RELOAD(0xf800, 0x0800)
r249893r249894
8411388/ Xenon #1196
8421389/-------------------------------*/
8431390ROM_START(xenon)
844   ROM_REGION(0x10000, "maincpu", 0)
1391   ROM_REGION(0x8000, "maincpu", 0)
8451392   ROM_LOAD( "811-40_1.716", 0x1000, 0x0800, CRC(0fba871b) SHA1(52bc0ef65507f0f7422c319d0dc2059e12deab6d))
8461393   ROM_LOAD( "811-41_2.716", 0x5000, 0x0800, CRC(1ea0d891) SHA1(98cd8cfed5c0f437d2b9423b31205f1e8b7436f9))
8471394   ROM_LOAD( "720-40_6.732", 0x1800, 0x0800, CRC(d7aaaa03) SHA1(4e0b901645e509bcb59bf81a6ffc1612b4fb16ee))
8481395   ROM_CONTINUE( 0x5800, 0x0800 )
849   ROM_RELOAD( 0xf000, 0x1000 )
1396   ROM_RELOAD( 0x7000, 0x1000 )
8501397   ROM_REGION(0x10000, "cpu2", 0)
8511398   ROM_LOAD("811-35_4.532", 0xf000, 0x1000, CRC(e9caccbb) SHA1(e2e09ac738c48342212bf38687299876b40cecbb))
8521399   ROM_LOAD("811-22_1.532", 0x8000, 0x1000, CRC(c49a968e) SHA1(86680e8cbb82e69c232313e5fdd7a0058b7eef13))
r249893r249894
8591406ROM_END
8601407
8611408ROM_START(xenonf)
862   ROM_REGION(0x10000, "maincpu", 0)
1409   ROM_REGION(0x8000, "maincpu", 0)
8631410   ROM_LOAD( "811-40_1.716", 0x1000, 0x0800, CRC(0fba871b) SHA1(52bc0ef65507f0f7422c319d0dc2059e12deab6d))
8641411   ROM_LOAD( "811-41_2.716", 0x5000, 0x0800, CRC(1ea0d891) SHA1(98cd8cfed5c0f437d2b9423b31205f1e8b7436f9))
8651412   ROM_LOAD( "720-40_6.732", 0x1800, 0x0800, CRC(d7aaaa03) SHA1(4e0b901645e509bcb59bf81a6ffc1612b4fb16ee))
8661413   ROM_CONTINUE( 0x5800, 0x0800 )
867   ROM_RELOAD( 0xf000, 0x1000 )
1414   ROM_RELOAD( 0x7000, 0x1000 )
8681415   ROM_REGION(0x10000, "cpu2", 0)
8691416   ROM_LOAD("811-36_4.532", 0xf000, 0x1000, CRC(73156c6e) SHA1(b0b3ecb44428c01849189adf6c86be3e95a99012))
8701417   ROM_LOAD("811-22_1.532", 0x8000, 0x1000, CRC(c49a968e) SHA1(86680e8cbb82e69c232313e5fdd7a0058b7eef13))
r249893r249894
8801427/ Viking #1198
8811428/-------------------------------*/
8821429ROM_START(viking)
883   ROM_REGION(0x10000, "maincpu", 0)
1430   ROM_REGION(0x8000, "maincpu", 0)
8841431   ROM_LOAD( "802-05_1.716", 0x1000, 0x0800, CRC(a5db0574) SHA1(d9836679ed797b649f2c1e22bc24e8a9fe1c3000))
8851432   ROM_LOAD( "802-06_2.716", 0x5000, 0x0800, CRC(40410760) SHA1(b0b87d8600a03de7090e42f6ebdeeb5feccf87f6))
8861433   ROM_LOAD( "720-35_6.716", 0x5800, 0x0800, CRC(78d6d289) SHA1(47c3005790119294309f12ea68b7e573f360b9ef))
887   ROM_RELOAD( 0xf800, 0x0800)
1434   ROM_RELOAD( 0x7800, 0x0800)
8881435   ROM_REGION(0x10000, "cpu2", 0)
8891436   ROM_LOAD("802-07-4.716", 0xf000, 0x0800, CRC(62bc5030) SHA1(5a696f784a415d5b16ee23cd72a905264a2bbeac))
8901437   ROM_RELOAD(0xf800, 0x0800)
r249893r249894
8961443/ Hot Doggin' #1199
8971444/-------------------------------*/
8981445ROM_START(hotdoggn)
899   ROM_REGION(0x10000, "maincpu", 0)
1446   ROM_REGION(0x8000, "maincpu", 0)
9001447   ROM_LOAD( "809-05_1.716", 0x1000, 0x0800, CRC(2744abcb) SHA1(b45bd58c365785d12f9bec381574058e29f33fd2))
9011448   ROM_LOAD( "809-06_2.716", 0x5000, 0x0800, CRC(03db3d4d) SHA1(b8eed2d22474d2b0a1667eef2fdd4ecfa5fd35f3))
9021449   ROM_LOAD( "720-35_6.716", 0x5800, 0x0800, CRC(78d6d289) SHA1(47c3005790119294309f12ea68b7e573f360b9ef))
903   ROM_RELOAD( 0xf800, 0x0800)
1450   ROM_RELOAD( 0x7800, 0x0800)
9041451   ROM_REGION(0x10000, "cpu2", 0)
9051452   ROM_LOAD("809-07_4.716", 0xf000, 0x0800, CRC(43f28d7f) SHA1(01fca0ee0137a0715421eaa3582ff8d324340ecf))
9061453   ROM_RELOAD(0xf800, 0x0800)
r249893r249894
9101457
9111458#ifdef MISSING_GAME
9121459ROM_START(hotdoggb) // check to see if this is the same as above but with a different split
913   ROM_REGION(0x10000, "maincpu", 0)
1460   ROM_REGION(0x8000, "maincpu", 0)
9141461   ROM_LOAD( "hotd2732.u2", 0x1000, 0x0800, CRC(709305ee) SHA1(37d5e681a1a2b8b2782dae3007db3e5036003e00))
9151462   ROM_CONTINUE( 0x5000, 0x0800)
9161463   ROM_LOAD( "720-3532.u6b", 0x1800, 0x0800, CRC(b5e6a3d5) SHA1(fa1593eeed449dbac87965e613b501108a015eb2) )
9171464   ROM_CONTINUE( 0x5800, 0x0800)
918   ROM_RELOAD( 0xf000, 0x1000)
1465   ROM_RELOAD( 0x7000, 0x1000)
9191466   ROM_REGION(0x10000, "cpu2", 0)
9201467   ROM_LOAD("809-07_4.716", 0xf000, 0x0800, CRC(43f28d7f) SHA1(01fca0ee0137a0715421eaa3582ff8d324340ecf))
9211468   ROM_RELOAD(0xf800, 0x0800)
r249893r249894
9281475/ Skateball #1210
9291476/-------------------------------*/
9301477ROM_START(skatebll)
931   ROM_REGION(0x10000, "maincpu", 0)
1478   ROM_REGION(0x8000, "maincpu", 0)
9321479   ROM_LOAD( "823-24_1.716", 0x1000, 0x0800, CRC(46e797d1) SHA1(7ddbf6047b8d95af8727c32b056bee1c4aa228e4))
9331480   ROM_LOAD( "823-25_2.716", 0x5000, 0x0800, CRC(960cb8c3) SHA1(3a4499cab85d3563961b0a01c78fa1f3ba2188fe))
9341481   ROM_LOAD( "720-40_6.732", 0x1800, 0x0800, CRC(d7aaaa03) SHA1(4e0b901645e509bcb59bf81a6ffc1612b4fb16ee))
9351482   ROM_CONTINUE( 0x5800, 0x0800 )
936   ROM_RELOAD( 0xf000, 0x1000 )
1483   ROM_RELOAD( 0x7000, 0x1000 )
9371484   ROM_REGION(0x10000, "cpu2", 0)
9381485   ROM_LOAD("823-02_4.716", 0xf000, 0x0800, CRC(d1037b20) SHA1(8784728540573be5e8ebb940ec0046b778f9413b))
9391486   ROM_RELOAD(0xf800, 0x0800)
r249893r249894
9451492/ Flash Gordon #1215
9461493/-------------------------------*/
9471494ROM_START(flashgdn)
948   ROM_REGION(0x10000, "maincpu", 0)
1495   ROM_REGION(0x8000, "maincpu", 0)
9491496   ROM_LOAD( "834-23_2.732", 0x1000, 0x0800, CRC(0c7a0d91) SHA1(1f79be15817975acbc35cb08591e2289e2eca938))
9501497   ROM_CONTINUE( 0x5000, 0x0800)
9511498   ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7))
9521499   ROM_CONTINUE( 0x5800, 0x0800)
953   ROM_RELOAD( 0xf000, 0x1000)
1500   ROM_RELOAD( 0x7000, 0x1000)
9541501   ROM_REGION(0x10000, "cpu2", 0)
9551502   ROM_LOAD("834-20_2.532", 0xc000, 0x1000, CRC(2f8ced3e) SHA1(ecdeb07c31c22ec313b55774f4358a9923c5e9e7))
9561503   ROM_LOAD("834-18_5.532", 0xf000, 0x1000, CRC(8799e80e) SHA1(f255b4e7964967c82cfc2de20ebe4b8d501e3cb0))
9571504ROM_END
9581505
9591506ROM_START(flashgdnf)
960   ROM_REGION(0x10000, "maincpu", 0)
1507   ROM_REGION(0x8000, "maincpu", 0)
9611508   ROM_LOAD( "834-23_2.732", 0x1000, 0x0800, CRC(0c7a0d91) SHA1(1f79be15817975acbc35cb08591e2289e2eca938))
9621509   ROM_CONTINUE( 0x5000, 0x0800)
9631510   ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7))
9641511   ROM_CONTINUE( 0x5800, 0x0800)
965   ROM_RELOAD( 0xf000, 0x1000)
1512   ROM_RELOAD( 0x7000, 0x1000)
9661513   ROM_REGION(0x10000, "cpu2", 0)
9671514   ROM_LOAD("834-35_2.532", 0xc000, 0x1000, CRC(dff3f711) SHA1(254a5670775ecb6c347f33af8ba7c350e4cfa550))
9681515   ROM_LOAD("834-36_5.532", 0xf000, 0x1000, CRC(18691897) SHA1(3b445e0756c07d80f14c01af5a7f87744474ae15))
9691516ROM_END
9701517
9711518ROM_START(flashgdnv)
972   ROM_REGION(0x10000, "maincpu", 0)
1519   ROM_REGION(0x8000, "maincpu", 0)
9731520   ROM_LOAD( "834-23_2.732", 0x1000, 0x0800, CRC(0c7a0d91) SHA1(1f79be15817975acbc35cb08591e2289e2eca938))
9741521   ROM_CONTINUE( 0x5000, 0x0800)
9751522   ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7) )
9761523   ROM_CONTINUE( 0x5800, 0x0800)
977   ROM_RELOAD( 0xf000, 0x1000)
1524   ROM_RELOAD( 0x7000, 0x1000)
9781525   ROM_REGION(0x10000, "cpu2", 0)
9791526   ROM_LOAD("834-02_4.532", 0xf000, 0x1000, CRC(f1eb0a12) SHA1(a58567665547aacf9a1b2c39295d963527ef8696))
9801527   ROM_LOAD("834-03_1.532", 0x8000, 0x1000, CRC(88bef6f4) SHA1(561e0bde04661b700552e4fbb6141c39f2789c99))
r249893r249894
9901537/ Frontier #1217
9911538/-------------------------------*/
9921539ROM_START(frontier)
993   ROM_REGION(0x10000, "maincpu", 0)
1540   ROM_REGION(0x8000, "maincpu", 0)
9941541   ROM_LOAD( "819-08_1.716", 0x1000, 0x0800, CRC(e2f8ce9d) SHA1(03b38486e12f1677dcabcd0f14d194c59b3bd214))
9951542   ROM_LOAD( "819-07_2.716", 0x5000, 0x0800, CRC(af023a85) SHA1(95df232ba654293066beccbad158146259a764b7))
9961543   ROM_LOAD( "720-40_6.732", 0x1800, 0x0800, CRC(d7aaaa03) SHA1(4e0b901645e509bcb59bf81a6ffc1612b4fb16ee))
9971544   ROM_CONTINUE( 0x5800, 0x0800 )
998   ROM_RELOAD( 0xf000, 0x1000 )
1545   ROM_RELOAD( 0x7000, 0x1000 )
9991546   ROM_REGION(0x10000, "cpu2", 0)
10001547   ROM_LOAD("819-09_4.716", 0xf000, 0x0800, CRC(a62059ca) SHA1(75e139ea2573a8c3b666c9a1024d9308da9875c7))
10011548   ROM_RELOAD(0xf800, 0x0800)
r249893r249894
10071554/ Fireball II #1219
10081555/-------------------------------*/
10091556ROM_START(fball_ii)
1010   ROM_REGION(0x10000, "maincpu", 0)
1557   ROM_REGION(0x8000, "maincpu", 0)
10111558   ROM_LOAD( "839-12_2.732", 0x1000, 0x0800, CRC(45e768ad) SHA1(b706cb5f3dcfa2db54d8d15de180fcbf36b3768f))
10121559   ROM_CONTINUE( 0x5000, 0x0800)
10131560   ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7) )
10141561   ROM_CONTINUE( 0x5800, 0x0800)
1015   ROM_RELOAD( 0xf000, 0x1000)
1562   ROM_RELOAD( 0x7000, 0x1000)
10161563   ROM_REGION(0x10000, "cpu2", 0)
10171564   ROM_LOAD("839-01_2.532", 0xc000, 0x1000, CRC(4aa473bd) SHA1(eaa12ded76f9999d33ce0fe6198df1708e007e12))
10181565   ROM_LOAD("839-02_5.532", 0xf000, 0x1000, CRC(8bf904ff) SHA1(de78d08bddd546abac65c2f95f1d52797e716362))
r249893r249894
10221569/ Eight Ball Deluxe #1220
10231570/-------------------------------*/
10241571ROM_START(eballdlx)
1025   ROM_REGION(0x10000, "maincpu", 0)
1572   ROM_REGION(0x8000, "maincpu", 0)
10261573   ROM_LOAD( "838-15_2.732", 0x1000, 0x0800, CRC(68d92acc) SHA1(f37b16d2953677cd779073bc3eac4b586d62fad8))
10271574   ROM_CONTINUE( 0x5000, 0x0800)
10281575   ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7) )
10291576   ROM_CONTINUE( 0x5800, 0x0800)
1030   ROM_RELOAD( 0xf000, 0x1000)
1577   ROM_RELOAD( 0x7000, 0x1000)
10311578   ROM_REGION(0x10000, "cpu2", 0)
10321579   ROM_LOAD("838-08_3.532", 0xd000, 0x1000, CRC(c39478d7) SHA1(8148aca7c4113921ab882da32d6d88e66abb22cc))
10331580   ROM_LOAD("838-09_4.716", 0xe000, 0x0800, CRC(518ea89e) SHA1(a387274ef530bb57f31819733b35615a39260126))
r249893r249894
10361583ROM_END
10371584
10381585ROM_START(eballd14)
1039   ROM_REGION(0x10000, "maincpu", 0)
1586   ROM_REGION(0x8000, "maincpu", 0)
10401587   ROM_LOAD( "838-14_2.732", 0x1000, 0x0800, CRC(27eeabde) SHA1(a8f81dbb70202bdad1c9734d629e8a5c27f2a835))
10411588   ROM_CONTINUE( 0x5000, 0x0800)
10421589   ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7) )
10431590   ROM_CONTINUE( 0x5800, 0x0800)
1044   ROM_RELOAD( 0xf000, 0x1000)
1591   ROM_RELOAD( 0x7000, 0x1000)
10451592   ROM_REGION(0x10000, "cpu2", 0)
10461593   ROM_LOAD("838-08_3.532", 0xd000, 0x1000, CRC(c39478d7) SHA1(8148aca7c4113921ab882da32d6d88e66abb22cc))
10471594   ROM_LOAD("838-09_4.716", 0xe000, 0x0800, CRC(518ea89e) SHA1(a387274ef530bb57f31819733b35615a39260126))
r249893r249894
10531600/ Embryon #1222
10541601/-------------------------------*/
10551602ROM_START(embryon)
1056   ROM_REGION(0x10000, "maincpu", 0)
1603   ROM_REGION(0x8000, "maincpu", 0)
10571604   ROM_LOAD( "841-06_2.732", 0x1000, 0x0800, CRC(80ab18e7) SHA1(52e5b1709e6f21919fc9efed67f51934d883dbb7))
10581605   ROM_CONTINUE( 0x5000, 0x0800)
10591606   ROM_LOAD( "720-52_6.732", 0x1800, 0x0800, CRC(2a43d9fb) SHA1(9ff903c32b80780383578a9abaa3ef9d3bcecbc7) )
10601607   ROM_CONTINUE( 0x5800, 0x0800)
1061   ROM_RELOAD( 0xf000, 0x1000)
1608   ROM_RELOAD( 0x7000, 0x1000)
10621609   ROM_REGION(0x10000, "cpu2", 0)
10631610   ROM_LOAD("841-01_4.716", 0xe000, 0x0800, CRC(e8b234e3) SHA1(584e553748b1c6571491150e346d815005948b68))
10641611   ROM_RELOAD(0xe800, 0x0800)
r249893r249894
10691616/ Fathom #1233
10701617/-------------------------------*/
10711618ROM_START(fathom)
1072   ROM_REGION(0x10000, "maincpu", 0)
1619   ROM_REGION(0x8000, "maincpu", 0)
10731620   ROM_LOAD( "842-08_2.732", 0x1000, 0x0800, CRC(1180f284) SHA1(78be1fa54faba5c5b14f580e41546be685846391))
10741621   ROM_CONTINUE( 0x5000, 0x0800)
10751622   ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
10761623   ROM_CONTINUE( 0x5800, 0x0800)
1077   ROM_RELOAD( 0xf000, 0x1000)
1624   ROM_RELOAD( 0x7000, 0x1000)
10781625   ROM_REGION(0x10000, "cpu2", 0)
10791626   ROM_LOAD("842-01_4.532", 0xe000, 0x1000, CRC(2ac02093) SHA1(a89c1d24f4f3e1f58ca4e476f408835efb368a90))
10801627   ROM_LOAD("842-02_5.532", 0xf000, 0x1000, CRC(736800bc) SHA1(2679d4d76e7258ad18ffe05cf333f21c35adfe0e))
r249893r249894
10841631/ Centaur #1239
10851632/-------------------------------*/
10861633ROM_START(centaur)
1087   ROM_REGION(0x10000, "maincpu", 0)
1634   ROM_REGION(0x8000, "maincpu", 0)
10881635   ROM_LOAD( "848-08_2.732", 0x1000, 0x0800, CRC(8bdcd32b) SHA1(39f64393d3a39a8172b3d80d196253aac1342f40))
10891636   ROM_CONTINUE( 0x5000, 0x0800)
10901637   ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
10911638   ROM_CONTINUE( 0x5800, 0x0800)
1092   ROM_RELOAD( 0xf000, 0x1000)
1639   ROM_RELOAD( 0x7000, 0x1000)
10931640   ROM_REGION(0x10000, "cpu2", 0)
10941641   ROM_LOAD("848-01_3.532", 0xd000, 0x1000, CRC(88322c8a) SHA1(424fd2b107f5fbc3ab8b58e3fa8c285170b1f09a))
10951642   ROM_LOAD("848-02_4.532", 0xe000, 0x1000, CRC(d6dbd0e4) SHA1(62e4c8c1a747c5f6a3a4bf4d0bc80b06a1f70d13))
r249893r249894
11011648/ Medusa #1245
11021649/-------------------------------*/
11031650ROM_START(medusa)
1104   ROM_REGION(0x10000, "maincpu", 0)
1651   ROM_REGION(0x8000, "maincpu", 0)
11051652   ROM_LOAD( "845-16_2.732", 0x1000, 0x0800, CRC(b0fbd1ac) SHA1(e876eced0c02a2b4b3c308494e8c453074d0e561))
11061653   ROM_CONTINUE( 0x5000, 0x0800)
11071654   ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
11081655   ROM_CONTINUE( 0x5800, 0x0800)
1109   ROM_RELOAD( 0xf000, 0x1000)
1656   ROM_RELOAD( 0x7000, 0x1000)
11101657   ROM_REGION(0x10000, "cpu2", 0)
11111658   ROM_LOAD("845-01_3.532", 0xd000, 0x1000, CRC(32200e02) SHA1(e75356a20f81a68e6b27d2fa04b8cc9b17f3976a))
11121659   ROM_LOAD("845-02_4.532", 0xe000, 0x1000, CRC(ab95885a) SHA1(fa91cef2a244d25d408585d1e14e1ed8fdc8c845))
r249893r249894
11181665/ Vector #1247
11191666/-------------------------------*/
11201667ROM_START(vector)
1121   ROM_REGION(0x10000, "maincpu", 0)
1668   ROM_REGION(0x8000, "maincpu", 0)
11221669   ROM_LOAD( "858-11_2.732", 0x1000, 0x0800, CRC(323e286b) SHA1(998387900363fd46d392a931c1f092c886a23c69))
11231670   ROM_CONTINUE( 0x5000, 0x0800)
11241671   ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
11251672   ROM_CONTINUE( 0x5800, 0x0800)
1126   ROM_RELOAD( 0xf000, 0x1000)
1673   ROM_RELOAD( 0x7000, 0x1000)
11271674   ROM_REGION(0x10000, "cpu2", 0)
11281675   ROM_LOAD("858-01_2.532", 0xc000, 0x1000, CRC(bd2edef9) SHA1(8f129016440bad5e78d4b073268e76e542b61684))
11291676   ROM_LOAD("858-02_3.532", 0xd000, 0x1000, CRC(c592fb35) SHA1(5201824f129812c907e7d8a4600de23d95fd1eb0))
r249893r249894
11351682/ Elektra #1248
11361683/-------------------------------*/
11371684ROM_START(elektra)
1138   ROM_REGION(0x10000, "maincpu", 0)
1685   ROM_REGION(0x8000, "maincpu", 0)
11391686   ROM_LOAD( "857-04_2.732", 0x1000, 0x0800, CRC(d2476720) SHA1(372c210c4f19302ffe25722bba6bcaaa85c4b90d))
11401687   ROM_CONTINUE( 0x5000, 0x0800)
11411688   ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
11421689   ROM_CONTINUE( 0x5800, 0x0800)
1143   ROM_RELOAD( 0xf000, 0x1000)
1690   ROM_RELOAD( 0x7000, 0x1000)
11441691   ROM_REGION(0x10000, "cpu2", 0)
11451692   ROM_LOAD("857-01_3.532", 0xd000, 0x1000, CRC(031548cc) SHA1(1f0204afd32dc07a301f404b4b064e34a83bd783))
11461693   ROM_LOAD("857-02_4.532", 0xe000, 0x1000, CRC(efc870d9) SHA1(45132c123b3191d616e2e9372948ab66ff221228))
r249893r249894
11521699/ Spectrum #1262
11531700/-------------------------------*/
11541701ROM_START(spectrm)
1155   ROM_REGION(0x10000, "maincpu", 0)
1702   ROM_REGION(0x8000, "maincpu", 0)
11561703   ROM_LOAD( "868-00_2.732", 0x1000, 0x0800, NO_DUMP)
11571704   ROM_CONTINUE( 0x5000, 0x0800)
11581705   ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
11591706   ROM_CONTINUE( 0x5800, 0x0800)
1160   ROM_RELOAD( 0xf000, 0x1000)
1707   ROM_RELOAD( 0x7000, 0x1000)
11611708   ROM_REGION(0x10000, "cpu2", 0)
11621709   ROM_LOAD("868-01_3.532", 0xd000, 0x1000, CRC(c3a16c66) SHA1(8c0a8b50fac0e218515b471621e80000ae475296))
11631710   ROM_LOAD("868-02_4.532", 0xe000, 0x1000, CRC(6b441399) SHA1(aae9e805f76cd6bc264bf69dd2d57629ee58bfc2))
r249893r249894
11661713ROM_END
11671714
11681715ROM_START(spectrm4)
1169   ROM_REGION(0x10000, "maincpu", 0)
1716   ROM_REGION(0x8000, "maincpu", 0)
11701717   ROM_LOAD( "868-04_2.732", 0x1000, 0x0800, CRC(b377f5f1) SHA1(adc40204da90ef1a4470a478520b949c6ded07b5))
11711718   ROM_CONTINUE( 0x5000, 0x0800)
11721719   ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
11731720   ROM_CONTINUE( 0x5800, 0x0800)
1174   ROM_RELOAD( 0xf000, 0x1000)
1721   ROM_RELOAD( 0x7000, 0x1000)
11751722   ROM_REGION(0x10000, "cpu2", 0)
11761723   ROM_LOAD("868-01_3.532", 0xd000, 0x1000, CRC(c3a16c66) SHA1(8c0a8b50fac0e218515b471621e80000ae475296))
11771724   ROM_LOAD("868-02_4.532", 0xe000, 0x1000, CRC(6b441399) SHA1(aae9e805f76cd6bc264bf69dd2d57629ee58bfc2))
r249893r249894
11831730/ Speakeasy #1273
11841731/--------------------------------------------------*/
11851732ROM_START(speakesy)
1186   ROM_REGION(0x10000, "maincpu", 0)
1733   ROM_REGION(0x8000, "maincpu", 0)
11871734   ROM_LOAD( "877-03_2.732", 0x1000, 0x0800, CRC(34b28bbc) SHA1(c649a04664e694cfbd6b4d496bf76f5e802d492a))
11881735   ROM_CONTINUE( 0x5000, 0x0800)
11891736   ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
11901737   ROM_CONTINUE( 0x5800, 0x0800)
1191   ROM_RELOAD( 0xf000, 0x1000)
1738   ROM_RELOAD( 0x7000, 0x1000)
11921739   ROM_REGION(0x10000, "cpu2", 0)
11931740   ROM_LOAD("877-01_4.716", 0xf000, 0x0800, CRC(6534e826) SHA1(580653636f8d33e758e6631c9ce495f42fe3747a))
11941741   ROM_RELOAD(0xf800, 0x0800)
r249893r249894
11971744ROM_END
11981745
11991746ROM_START(speakesy4p)
1200   ROM_REGION(0x10000, "maincpu", 0)
1747   ROM_REGION(0x8000, "maincpu", 0)
12011748   ROM_LOAD( "877-04_2.732", 0x1000, 0x0800, CRC(8926f2bb) SHA1(617c032ce949007d6bcb52268f17bec5a02f8651))
12021749   ROM_CONTINUE( 0x5000, 0x0800)
12031750   ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
12041751   ROM_CONTINUE( 0x5800, 0x0800)
1205   ROM_RELOAD( 0xf000, 0x1000)
1752   ROM_RELOAD( 0x7000, 0x1000)
12061753   ROM_REGION(0x10000, "cpu2", 0)
12071754   ROM_LOAD("877-01_4.716", 0xf000, 0x0800, CRC(6534e826) SHA1(580653636f8d33e758e6631c9ce495f42fe3747a))
12081755   ROM_RELOAD(0xf800, 0x0800)
r249893r249894
12141761/ BMX #1276
12151762/----------------------------------------------------*/
12161763ROM_START(bmx)
1217   ROM_REGION(0x10000, "maincpu", 0)
1764   ROM_REGION(0x8000, "maincpu", 0)
12181765   ROM_LOAD( "888-03_2.732", 0x1000, 0x0800, CRC(038cf1be) SHA1(b000a3d84623db6a7644551e5e2f0d7b533acb13))
12191766   ROM_CONTINUE( 0x5000, 0x0800)
12201767   ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
12211768   ROM_CONTINUE( 0x5800, 0x0800)
1222   ROM_RELOAD( 0xf000, 0x1000)
1769   ROM_RELOAD( 0x7000, 0x1000)
12231770   ROM_REGION(0x10000, "cpu2", 0)
12241771   ROM_LOAD("888-02_4.532", 0xf000, 0x1000, CRC(5692c679) SHA1(7eef074d16cde589cde7500c4dc76c9a902c7fe3))
12251772   ROM_RELOAD(0x1000, 0x1000)
r249893r249894
12291776/ Rapid Fire #1282
12301777/-------------------------------*/
12311778ROM_START(rapidfip)
1232   ROM_REGION(0x10000, "maincpu", 0)
1779   ROM_REGION(0x8000, "maincpu", 0)
12331780   ROM_LOAD( "869-04_2.732", 0x1000, 0x0800, CRC(26fdf048) SHA1(15787345e7162a530334bff98d877e525d4a1295))
12341781   ROM_CONTINUE( 0x5000, 0x0800)
12351782   ROM_LOAD( "869-03_6.732", 0x1800, 0x0800, CRC(f6af5e8d) SHA1(3cf782d4a0ca38e3953a20d23d0eb01af87ba445) )
12361783   ROM_CONTINUE( 0x5800, 0x0800)
1237   ROM_RELOAD( 0xf000, 0x1000)
1784   ROM_RELOAD( 0x7000, 0x1000)
12381785   ROM_REGION(0x10000, "cpu2", 0)
12391786   ROM_LOAD("869-02_5.532", 0xf000, 0x1000, CRC(5a74cb86) SHA1(4fd09b0bc4257cb7b48cd8087b8b15fe768f7ddf))
12401787ROM_END
r249893r249894
12431790/ Mr. and Mrs. Pacman #1283
12441791/--------------------------------------*/
12451792ROM_START(m_mpac)
1246   ROM_REGION(0x10000, "maincpu", 0)
1793   ROM_REGION(0x8000, "maincpu", 0)
12471794   ROM_LOAD( "872-04_2.732", 0x1000, 0x0800, CRC(5e542882) SHA1(bec5f56cd5192e0a12ea1226a49a2b7d8eaaa5cf))
12481795   ROM_CONTINUE( 0x5000, 0x0800)
12491796   ROM_LOAD( "720-53_6.732", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
12501797   ROM_CONTINUE( 0x5800, 0x0800)
1251   ROM_RELOAD( 0xf000, 0x1000)
1798   ROM_RELOAD( 0x7000, 0x1000)
12521799   ROM_REGION(0x10000, "cpu2", 0)
12531800   ROM_LOAD("872-01_4.532", 0xe000, 0x1000, CRC(d21ce16d) SHA1(3ee6e2629530e7e6e4d7eac713d34c48297a1047))
12541801   ROM_LOAD("872-03_5.532", 0xf000, 0x1000, CRC(8fcdf853) SHA1(7c6bffcd974d2684e7f2c69d926f6cabb53e2f90))
r249893r249894
12581805/ Grand Slam #1311
12591806/-----------------------------------------------------------*/
12601807ROM_START(granslam)
1261   ROM_REGION(0x10000, "maincpu", 0)
1808   ROM_REGION(0x8000, "maincpu", 0)
12621809   ROM_LOAD( "grndslam.u2", 0x1000, 0x0800, CRC(66aea9dc) SHA1(76c017dc83a63b7f1e6035e228370219eb9c0678))
12631810   ROM_CONTINUE( 0x5000, 0x0800)
12641811   ROM_LOAD( "grndslam.u6", 0x1800, 0x0800, CRC(9e6ccea1) SHA1(5e158e021e0f3eed063577ae22cf5f1bc9655065) )
12651812   ROM_CONTINUE( 0x5800, 0x0800)
1266   ROM_RELOAD( 0xf000, 0x1000)
1813   ROM_RELOAD( 0x7000, 0x1000)
12671814   ROM_REGION(0x10000, "cpu2", 0)
12681815   ROM_LOAD("grndslam.u4", 0xf000, 0x1000, CRC(ac34bc38) SHA1(376ceb53cb51d250b5bc222001291b0c85e42e8a))
12691816   ROM_RELOAD(0x1000, 0x1000)
12701817ROM_END
12711818
12721819ROM_START(granslam4)
1273   ROM_REGION(0x10000, "maincpu", 0)
1820   ROM_REGION(0x8000, "maincpu", 0)
12741821   ROM_LOAD( "gr_slam.u2b", 0x1000, 0x0800, CRC(552d9423) SHA1(16b86d5b7539fd803f458f1633ecc249ef15243d))
12751822   ROM_CONTINUE( 0x5000, 0x0800)
12761823   ROM_LOAD( "grndslam.u6", 0x1800, 0x0800, CRC(9e6ccea1) SHA1(5e158e021e0f3eed063577ae22cf5f1bc9655065) )
12771824   ROM_CONTINUE( 0x5800, 0x0800)
1278   ROM_RELOAD( 0xf000, 0x1000)
1825   ROM_RELOAD( 0x7000, 0x1000)
12791826   ROM_REGION(0x10000, "cpu2", 0)
12801827   ROM_LOAD("grndslam.u4", 0xf000, 0x1000, CRC(ac34bc38) SHA1(376ceb53cb51d250b5bc222001291b0c85e42e8a))
12811828   ROM_RELOAD(0x1000, 0x1000)
r249893r249894
12901837/ Gold Ball #1371
12911838/----------------------------------------------------------*/
12921839ROM_START(goldball)
1293   ROM_REGION(0x10000, "maincpu", 0)
1840   ROM_REGION(0x8000, "maincpu", 0)
12941841   ROM_LOAD( "gold2732.u2", 0x1000, 0x0800, CRC(3169493c) SHA1(1335fcdfb2d6970d78c636748ff419baf85ef78b))
12951842   ROM_CONTINUE( 0x5000, 0x0800)
12961843   ROM_LOAD( "goldball.u6", 0x1800, 0x0800, CRC(9b6e79d0) SHA1(4fcda91bbe930e6131d94964a08459e395f841af))
12971844   ROM_CONTINUE( 0x5800, 0x0800)
1298   ROM_RELOAD( 0xf000, 0x1000)
1845   ROM_RELOAD( 0x7000, 0x1000)
12991846   ROM_REGION(0x10000, "cpu2", 0)
13001847   ROM_LOAD("gb_u4.532", 0xf000, 0x1000, CRC(2dcb0315) SHA1(8cb9c9f627f0c8420d3b3d9f0d10d77a82c8be56))
13011848   ROM_RELOAD(0x1000, 0x1000)
13021849ROM_END
13031850
13041851ROM_START(goldballn)
1305   ROM_REGION(0x10000, "maincpu", 0)
1852   ROM_REGION(0x8000, "maincpu", 0)
13061853   ROM_LOAD( "u2.532", 0x1000, 0x0800, CRC(aa6eb9d6) SHA1(a73cc832450e718d9b8484e409a1f8093d91d786))
13071854   ROM_CONTINUE( 0x5000, 0x0800)
13081855   ROM_LOAD( "goldball.u6", 0x1800, 0x0800, CRC(9b6e79d0) SHA1(4fcda91bbe930e6131d94964a08459e395f841af) )
13091856   ROM_CONTINUE( 0x5800, 0x0800)
1310   ROM_RELOAD( 0xf000, 0x1000)
1857   ROM_RELOAD( 0x7000, 0x1000)
13111858   ROM_REGION(0x10000, "cpu2", 0)
13121859   ROM_LOAD("gb_u4.532", 0xf000, 0x1000, CRC(2dcb0315) SHA1(8cb9c9f627f0c8420d3b3d9f0d10d77a82c8be56))
13131860   ROM_RELOAD(0x1000, 0x1000)
r249893r249894
13171864/ Kings of Steel #1390
13181865/-------------------------------*/
13191866ROM_START(kosteel)
1320   ROM_REGION(0x10000, "maincpu", 0)
1867   ROM_REGION(0x8000, "maincpu", 0)
13211868   ROM_LOAD( "kngs2732.u2", 0x1000, 0x0800, CRC(f876d8f2) SHA1(581f4b98e0a69f4ae879caeafdbf2eb979514ad1))
13221869   ROM_CONTINUE( 0x5000, 0x0800)
13231870   ROM_LOAD( "720-5332.u6", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
13241871   ROM_CONTINUE( 0x5800, 0x0800)
1325   ROM_RELOAD( 0xf000, 0x1000)
1872   ROM_RELOAD( 0x7000, 0x1000)
13261873   ROM_REGION(0x10000, "cpu2", 0)
13271874   ROM_LOAD("kngsu4.snd", 0x8000, 0x1000, CRC(f3e4d2f6) SHA1(93f4e9e1348b1225bc02db38c994e3338afb175c))
13281875   ROM_RELOAD(0x9000, 0x1000)
r249893r249894
13381885/ X's & O's #1391
13391886/-------------------------------*/
13401887ROM_START(xsandos)
1341   ROM_REGION(0x10000, "maincpu", 0)
1888   ROM_REGION(0x8000, "maincpu", 0)
13421889   ROM_LOAD( "x&os2732.u2", 0x1000, 0x0800, CRC(068dfe5a) SHA1(028baf79852b14cac51a7cdc8e751a8173beeccb))
13431890   ROM_CONTINUE( 0x5000, 0x0800)
13441891   ROM_LOAD( "720-5332.u6", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
13451892   ROM_CONTINUE( 0x5800, 0x0800)
1346   ROM_RELOAD( 0xf000, 0x1000)
1893   ROM_RELOAD( 0x7000, 0x1000)
13471894   ROM_REGION(0x10000, "cpu2", 0)
13481895   ROM_LOAD("720_u3.snd", 0xc000, 0x2000, CRC(5d8e2adb) SHA1(901a26f5e598386295a1298ee3a634941bd58b3e))
13491896   ROM_RELOAD(0xe000, 0x2000)
r249893r249894
13531900/ Spy Hunter #0A17
13541901/-------------------------------*/
13551902ROM_START(spyhuntr)
1356   ROM_REGION(0x10000, "maincpu", 0)
1903   ROM_REGION(0x8000, "maincpu", 0)
13571904   ROM_LOAD( "spy-2732.u2", 0x1000, 0x0800, CRC(9e930f2d) SHA1(fb48ce0d8d8f8a695827c0eea57510b53daa7c39))
13581905   ROM_CONTINUE( 0x5000, 0x0800)
13591906   ROM_LOAD( "720-5332.u6", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
13601907   ROM_CONTINUE( 0x5800, 0x0800)
1361   ROM_RELOAD( 0xf000, 0x1000)
1908   ROM_RELOAD( 0x7000, 0x1000)
13621909   ROM_REGION(0x10000, "cpu2", 0)
13631910   ROM_LOAD("spy_u4.532", 0x8000, 0x1000, CRC(a43887d0) SHA1(6bbc55943fa9f0cd97f946767f21652e19d85265))
13641911   ROM_RELOAD(0x9000, 0x1000)
r249893r249894
13741921/ Fireball Classic #0A40
13751922/------------------------------------*/
13761923ROM_START(fbclass)
1377   ROM_REGION(0x10000, "maincpu", 0)
1924   ROM_REGION(0x8000, "maincpu", 0)
13781925   ROM_LOAD( "fb-class.u2", 0x1000, 0x0800, CRC(32faac6c) SHA1(589020d09f26326dab266bc7c74ca0e10de565e6))
13791926   ROM_CONTINUE( 0x5000, 0x0800)
13801927   ROM_LOAD( "720-5332.u6", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
13811928   ROM_CONTINUE( 0x5800, 0x0800)
1382   ROM_RELOAD( 0xf000, 0x1000)
1929   ROM_RELOAD( 0x7000, 0x1000)
13831930   ROM_REGION(0x10000, "cpu2", 0)
13841931   ROM_LOAD("fbcu4.snd", 0x8000, 0x1000, CRC(697ab16f) SHA1(7beed02e6cb042f90d2048778408b1f744ffe242))
13851932   ROM_RELOAD(0x9000, 0x1000)
r249893r249894
13951942/ Black Pyramid #0A44
13961943/-------------------------------*/
13971944ROM_START(blakpyra)
1398   ROM_REGION(0x10000, "maincpu", 0)
1945   ROM_REGION(0x8000, "maincpu", 0)
13991946   ROM_LOAD( "blkp2732.u2", 0x1000, 0x0800, CRC(600535b0) SHA1(33d080f4430ad9c33ee9de1bfbb5cfde50f0776e))
14001947   ROM_CONTINUE( 0x5000, 0x0800)
14011948   ROM_LOAD( "720-5332.u6", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
14021949   ROM_CONTINUE( 0x5800, 0x0800)
1403   ROM_RELOAD( 0xf000, 0x1000)
1950   ROM_RELOAD( 0x7000, 0x1000)
14041951   ROM_REGION(0x10000, "cpu2", 0)
14051952   ROM_LOAD("bp_u4.532", 0x8000, 0x1000, CRC(57978b4a) SHA1(4995837790d81b02325d39b548fb882a591769c5))
14061953   ROM_RELOAD(0x9000, 0x1000)
r249893r249894
14161963/ Cybernaut #0B42
14171964/-------------------------------*/
14181965ROM_START(cybrnaut)
1419   ROM_REGION(0x10000, "maincpu", 0)
1966   ROM_REGION(0x8000, "maincpu", 0)
14201967   ROM_LOAD( "cybe2732.u2", 0x1000, 0x0800, CRC(0610b0e0) SHA1(92f5e8a83240ad03ecc16ece4824b047b77816f7))
14211968   ROM_CONTINUE( 0x5000, 0x0800)
14221969   ROM_LOAD( "720-5332.u6", 0x1800, 0x0800, CRC(c2e92f80) SHA1(61de956a4b6e9fb9ef2b25c01bff1fb5972284ad) )
14231970   ROM_CONTINUE( 0x5800, 0x0800)
1424   ROM_RELOAD( 0xf000, 0x1000)
1971   ROM_RELOAD( 0x7000, 0x1000)
14251972   ROM_REGION(0x10000, "cpu2", 0)
14261973   ROM_LOAD("cybu3.snd", 0xc000, 0x2000, CRC(a3c1f6e7) SHA1(35a5e828a6f2dd9009e165328a005fa079bad6cb))
14271974   ROM_RELOAD(0xe000, 0x2000)
r249893r249894
14311978/ Cosmic Flash (Flash Gordon Clone)
14321979/-------------------------------*/
14331980ROM_START(cosflash)
1434   ROM_REGION(0x10000, "maincpu", 0)
1981   ROM_REGION(0x8000, "maincpu", 0)
14351982   ROM_LOAD( "cf2d.532", 0x1000, 0x0800, CRC(939e941d) SHA1(889862043f351762e8c866aefb36a9ea75cbf828))
14361983   ROM_CONTINUE( 0x5000, 0x0800)
14371984   ROM_LOAD( "cf6d.532", 0x1800, 0x0800, CRC(7af93d2f) SHA1(2d939b14f7fe79f836e12926f44b70037630cd3f) )
14381985   ROM_CONTINUE( 0x5800, 0x0800)
1439   ROM_RELOAD( 0xf000, 0x1000)
1986   ROM_RELOAD( 0x7000, 0x1000)
14401987   ROM_REGION(0x10000, "cpu2", 0)
14411988   ROM_LOAD("834-20_2.532", 0xc000, 0x1000, CRC(2f8ced3e) SHA1(ecdeb07c31c22ec313b55774f4358a9923c5e9e7))
14421989   ROM_LOAD("834-18_5.532", 0xf000, 0x1000, CRC(8799e80e) SHA1(f255b4e7964967c82cfc2de20ebe4b8d501e3cb0))
r249893r249894
14662013/ Mystic Star
14672014/-------------------------------*/
14682015ROM_START(myststar)
1469   ROM_REGION(0x10000, "maincpu", 0)
2016   ROM_REGION(0x8000, "maincpu", 0)
14702017   ROM_LOAD( "rom1.bin", 0x1000, 0x0800, CRC(9a12dc91) SHA1(8961c22b2aeabac04d36d124f283409e11faee8a))
14712018   ROM_LOAD( "rom2.bin", 0x5000, 0x0800, CRC(888ee5ae) SHA1(d99746c7c9a9a0a83b4bc15473fe9ebd3b02ffe4))
14722019   ROM_LOAD( "rom3.bin", 0x5800, 0x0800, CRC(9e0a4619) SHA1(82065b74d39ba932704514e83d432262d360f1e1))
1473   ROM_RELOAD( 0xf800, 0x0800)
2020   ROM_RELOAD( 0x7800, 0x0800)
14742021   ROM_REGION(0x0020, "sound1", 0)
14752022   ROM_LOAD( "snd.123", 0x0000, 0x0020, NO_DUMP)
14762023ROM_END
r249893r249894
14792026/ New Wave (Black Pyramid Clone)
14802027/-------------------------------*/
14812028ROM_START(newwave)
1482   ROM_REGION(0x10000, "maincpu", 0)
2029   ROM_REGION(0x8000, "maincpu", 0)
14832030   ROM_LOAD( "blkp2732.u2", 0x1000, 0x0800, CRC(600535b0) SHA1(33d080f4430ad9c33ee9de1bfbb5cfde50f0776e))
14842031   ROM_CONTINUE( 0x5000, 0x0800)
14852032   ROM_LOAD( "newwu6.532", 0x1800, 0x0800, CRC(ca72a96b) SHA1(efcd8b41bf0c19ebd7db492632e046b348619460) )
14862033   ROM_CONTINUE( 0x5800, 0x0800)
1487   ROM_RELOAD( 0xf000, 0x1000)
2034   ROM_RELOAD( 0x7000, 0x1000)
14882035   ROM_REGION(0x10000, "cpu2", 0)
14892036   ROM_LOAD("newwu4.532", 0x8000, 0x1000, CRC(6f4f2a95) SHA1(a7a375827c0429b8b3d2ee9e471f557152492993))
14902037   ROM_RELOAD(0x9000, 0x1000)
r249893r249894
15082055/ Saturn 2 (Spy Hunter Clone)
15092056/-------------------------------*/
15102057ROM_START(saturn2)
1511   ROM_REGION(0x10000, "maincpu", 0)
2058   ROM_REGION(0x8000, "maincpu", 0)
15122059   ROM_LOAD( "spy-2732.u2", 0x1000, 0x0800, CRC(9e930f2d) SHA1(fb48ce0d8d8f8a695827c0eea57510b53daa7c39))
15132060   ROM_CONTINUE( 0x5000, 0x0800)
15142061   ROM_LOAD( "saturn2.u6", 0x1800, 0x0800, CRC(ca72a96b) SHA1(efcd8b41bf0c19ebd7db492632e046b348619460) )
15152062   ROM_CONTINUE( 0x5800, 0x0800)
1516   ROM_RELOAD( 0xf000, 0x1000)
2063   ROM_RELOAD( 0x7000, 0x1000)
15172064   ROM_REGION(0x10000, "cpu2", 0)
15182065   ROM_LOAD("spy_u4.532", 0x8000, 0x1000, CRC(a43887d0) SHA1(6bbc55943fa9f0cd97f946767f21652e19d85265))
15192066   ROM_RELOAD(0x9000, 0x1000)
r249893r249894
15332080/ Space Hawks (Cybernaut Clone)
15342081/-------------------------------*/
15352082ROM_START(spacehaw)
1536   ROM_REGION(0x10000, "maincpu", 0)
2083   ROM_REGION(0x8000, "maincpu", 0)
15372084   ROM_LOAD( "cybe2732.u2g", 0x1000, 0x0800, CRC(d4a5e2f6) SHA1(841e940632993919a68c905546f533ff38a0ce31))
15382085   ROM_CONTINUE( 0x5000, 0x0800)
15392086   ROM_LOAD( "spacehaw.u6", 0x1800, 0x0800, CRC(b154a3a3) SHA1(d632c5eddd0582ba2ca778ab03e11ca3f6f4e1ed) )
15402087   ROM_CONTINUE( 0x5800, 0x0800)
1541   ROM_RELOAD( 0xf000, 0x1000)
2088   ROM_RELOAD( 0x7000, 0x1000)
15422089   ROM_REGION(0x10000, "cpu2", 0)
15432090   ROM_LOAD("cybu3.snd", 0xc000, 0x2000, CRC(a3c1f6e7) SHA1(35a5e828a6f2dd9009e165328a005fa079bad6cb))
15442091   ROM_RELOAD(0xe000, 0x2000)
r249893r249894
15562103/ Tiger Rag (Kings Of Steel Clone)
15572104/-------------------------------*/
15582105ROM_START(tigerrag)
1559   ROM_REGION(0x10000, "maincpu", 0)
1560   ROM_LOAD("tigerrag.mpu", 0xe000, 0x2000, CRC(3eb389ba) SHA1(bdfdcf00f4a2200d39d7e469fe633e0b7b8f1676))
1561   ROM_COPY("maincpu", 0xe000, 0x1000,0x0800)
1562   ROM_COPY("maincpu", 0xe800, 0x5000,0x0800)
1563   ROM_COPY("maincpu", 0xf000, 0x1800,0x0800)
1564   ROM_COPY("maincpu", 0xf800, 0x5800,0x0800)
2106   ROM_REGION(0x8000, "maincpu", 0)
2107   ROM_LOAD("tigerrag.mpu", 0x6000, 0x2000, CRC(3eb389ba) SHA1(bdfdcf00f4a2200d39d7e469fe633e0b7b8f1676))
2108   ROM_COPY("maincpu", 0x6000, 0x1000,0x0800)
2109   ROM_COPY("maincpu", 0x6800, 0x5000,0x0800)
2110   ROM_COPY("maincpu", 0x7000, 0x1800,0x0800)
2111   ROM_COPY("maincpu", 0x7800, 0x5800,0x0800)
15652112   ROM_REGION(0x10000, "cpu2", 0)
15662113   ROM_LOAD("kngsu4.snd", 0x8000, 0x1000, CRC(f3e4d2f6) SHA1(93f4e9e1348b1225bc02db38c994e3338afb175c))
15672114   ROM_RELOAD(0x9000, 0x1000)
r249893r249894
15802127/ 301/Bulls Eye
15812128/-------------------------------*/
15822129ROM_START(bullseye)
1583   ROM_REGION(0x10000, "maincpu", 0)
1584   ROM_LOAD("bull.u2", 0x2000, 0x0800, CRC(a2951aa2) SHA1(f9c0826c5d1d6d904286678ed90de3850a13b5f4))
1585   ROM_CONTINUE( 0x2800, 0x0800)
1586   ROM_LOAD("bull.u6", 0x3000, 0x0800, CRC(64d4b9c4) SHA1(bf4d0671372fd3a445c4c7330b9849171ca8048c))
1587   ROM_CONTINUE( 0x3800, 0x0800)
1588   ROM_RELOAD( 0xf000, 0x1000)
2130   ROM_REGION(0x8000, "maincpu", 0)   // Actually seems to have an address mask of 0x3fff
2131   ROM_LOAD("bull.u2", 0x2000, 0x1000, CRC(a2951aa2) SHA1(f9c0826c5d1d6d904286678ed90de3850a13b5f4))
2132   ROM_LOAD("bull.u6", 0x3000, 0x1000, CRC(64d4b9c4) SHA1(bf4d0671372fd3a445c4c7330b9849171ca8048c))
2133   ROM_RELOAD( 0x7000, 0x1000)
15892134   ROM_REGION(0x10000, "cpu2", 0)
15902135   ROM_LOAD("bull.snd", 0x8000, 0x0800, CRC(c0482a2f) SHA1(a6aa698ad517cdc078129d702ee936af576260ed))
15912136   ROM_RELOAD(0x8800, 0x0800)
r249893r249894
15962141/ World Defender
15972142/-------------------------------*/
15982143ROM_START(worlddef)
1599   ROM_REGION(0x10000, "maincpu", 0)
1600   ROM_LOAD("worlddef.764", 0xe000, 0x2000, CRC(ad1a7ba3) SHA1(d799b6d1cd252cd6d9fb72586099c43de7c22a00))
1601   ROM_COPY("maincpu", 0xe000, 0x1000,0x0800)
1602   ROM_COPY("maincpu", 0xe800, 0x5000,0x0800)
1603   ROM_COPY("maincpu", 0xf000, 0x1800,0x0800)
1604   ROM_COPY("maincpu", 0xf800, 0x5800,0x0800)
2144   ROM_REGION(0x8000, "maincpu", 0)
2145   ROM_LOAD("worlddef.764", 0x1000, 0x0800, CRC(ad1a7ba3) SHA1(d799b6d1cd252cd6d9fb72586099c43de7c22a00))
2146   ROM_CONTINUE( 0x5000, 0x0800)
2147   ROM_CONTINUE( 0x1800, 0x0800)
2148   ROM_CONTINUE( 0x5800, 0x0800)
2149   ROM_COPY("maincpu", 0x5800, 0x7800,0x0800)
16052150   ROM_REGION(0x10000, "cpu2", 0)
16062151   ROM_LOAD("wodefsnd.764", 0xc000, 0x2000, CRC(b8d4dc20) SHA1(5aecac4a2deb7ea8e0ff0600ea459ef272dcd5f0))
16072152   ROM_RELOAD(0xe000, 0x2000)
r249893r249894
16122157/-------------------------------*/
16132158ROM_START(darkshad)
16142159   ROM_REGION(0x10000, "maincpu", 0)
1615   ROM_LOAD("cpu_u7.bin", 0xe000, 0x2000, CRC(8d04c546) SHA1(951e75d9867b85a0bf9f04fe9aa647a53b6830bc))
1616   ROM_COPY("maincpu", 0xe000, 0x1000,0x0800)
1617   ROM_COPY("maincpu", 0xe800, 0x1800,0x0800)
1618   ROM_COPY("maincpu", 0xf000, 0x5000,0x0800)
1619   ROM_COPY("maincpu", 0xf800, 0x5800,0x0800)
2160   ROM_LOAD("cpu_u7.bin", 0x1000, 0x0800, CRC(8d04c546) SHA1(951e75d9867b85a0bf9f04fe9aa647a53b6830bc))
2161   ROM_CONTINUE( 0x1800, 0x0800)
2162   ROM_CONTINUE( 0x5000, 0x0800)
2163   ROM_CONTINUE( 0x5800, 0x0800)
2164   ROM_COPY("maincpu", 0x5800, 0xf800,0x0800)
16202165   ROM_REGION(0x10000, "cpu2", 0)
16212166   ROM_LOAD("bp_u4.532", 0x8000, 0x1000, CRC(57978b4a) SHA1(4995837790d81b02325d39b548fb882a591769c5))
16222167   ROM_RELOAD(0x9000, 0x1000)
r249893r249894
17842329/ Big Ball Bowling (Bowler)
17852330/-------------------------------*/
17862331ROM_START(bbbowlin)
1787   ROM_REGION(0x10000, "maincpu", 0)
2332   ROM_REGION(0x8000, "maincpu", 0)
17882333   ROM_LOAD( "cpu_u2.716", 0x1000, 0x0800, CRC(179e0c69) SHA1(7921839d2014a00b99ce7c44b325ea4403df9eea))
17892334   ROM_LOAD( "cpu_u6.716", 0x1800, 0x0800, CRC(7b48e45b) SHA1(ac32292ef593bf8350e8bbc41113b6c1cb78a79e))
1790   ROM_RELOAD( 0xf800, 0x0800)
2335   ROM_RELOAD( 0x7800, 0x0800)
17912336ROM_END
17922337
17932338/*----------------------------
17942339/ Stars & Strikes (Bowler)
17952340/----------------------------*/
17962341ROM_START(monrobwl)
1797   ROM_REGION(0x10000, "maincpu", 0)
2342   ROM_REGION(0x8000, "maincpu", 0)
17982343   ROM_LOAD( "cpu_u1.716", 0x1000, 0x0800, CRC(42592cc9) SHA1(22452072199c4b82a413065f8dfe235a39fe3825))
17992344   ROM_LOAD( "cpu_u5.716", 0x1800, 0x0800, CRC(78e2dcd2) SHA1(7fbe9f7adc69af5afa489d9fd953640f3466de3f))
18002345   ROM_LOAD( "cpu_u2.716", 0x5000, 0x0800, CRC(73534680) SHA1(d5233a9d4600fa28b767ee1a251ed1a1ffbaf9c4))
18012346   ROM_LOAD( "cpu_u6.716", 0x5800, 0x0800, CRC(ad77d719) SHA1(f8f8d0d183d639d19fea552d35a7be3aa7f07c17))
1802   ROM_RELOAD( 0xf800, 0x0800)
2347   ROM_RELOAD( 0x7800, 0x0800)
18032348ROM_END
18042349
18052350/*-----------------------------------------------------------------------------------------------
18062351/ Midnight Marauders (Gun game) different hardware, not a pinball, to be moved to its own driver
18072352/------------------------------------------------------------------------------------------------*/
18082353ROM_START(mdntmrdr)
1809   ROM_REGION(0x10000, "maincpu", 0)
2354   ROM_REGION(0x8000, "maincpu", 0)
18102355   ROM_LOAD( "mdru2.532", 0x1000, 0x0800, CRC(f72668bc) SHA1(25b984e1828905190c73c359ee6c9858ed1b2224))
18112356   ROM_CONTINUE( 0x5000, 0x0800)
18122357   ROM_LOAD( "mdru6.732", 0x1800, 0x0800, CRC(ff55fb57) SHA1(4a44fc8732c8cbce38c9605c7958b02a6bc95da1))
18132358   ROM_CONTINUE( 0x5800, 0x0800)
1814   ROM_RELOAD( 0xf000, 0x1000)
2359   ROM_RELOAD( 0x7000, 0x1000)
18152360   ROM_REGION(0x10000, "cpu2", 0)
18162361   ROM_LOAD("u3.bin", 0xd000, 0x1000, CRC(3ba474e4) SHA1(4ee5c3ad2c9dca49e9394521506e97a95e3d9a17))
18172362   ROM_LOAD("u5.bin", 0xf000, 0x1000, CRC(3ab40e35) SHA1(63b2ee074e5993a2616e67d3383bc3d3ac51b400))
r249893r249894
18212366/ Black Beauty (Shuffle)
18222367/----------------------------*/
18232368ROM_START(blbeauty)
1824   ROM_REGION(0x10000, "maincpu", 0)
2369   ROM_REGION(0x8000, "maincpu", 0)
18252370   ROM_LOAD( "cpu_u1.716", 0x1000, 0x0800, CRC(e2550957) SHA1(e445548b650fec5d593ca7da587300799ef94991))
18262371   ROM_LOAD( "cpu_u5.716", 0x1800, 0x0800, CRC(70fcd9f7) SHA1(ca5c2ea09f45f5ba50526880c158aaac61f007d5))
18272372   ROM_LOAD( "cpu_u2.716", 0x5000, 0x0800, CRC(3f55d17f) SHA1(e6333e53570fb05a841a7f141872c8bd14143f9c))
18282373   ROM_LOAD( "cpu_u6.716", 0x5800, 0x0800, CRC(842cd307) SHA1(8429d84e8bc4343b437801d0236150e04de79b75))
1829   ROM_RELOAD( 0xf800, 0x0800)
2374   ROM_RELOAD( 0x7800, 0x0800)
18302375ROM_END
18312376
18322377/*--------------------------------
18332378/ Super Bowl (X's & O's Clone)
18342379/-------------------------------*/
18352380ROM_START(suprbowl)
1836   ROM_REGION(0x10000, "maincpu", 0)
2381   ROM_REGION(0x8000, "maincpu", 0)
18372382   ROM_LOAD( "sbowlu2.732", 0x1000, 0x0800, CRC(bc497a13) SHA1(f428373bde72f0302c45c326aebbe56e8b09c2d6))
18382383   ROM_CONTINUE( 0x5000, 0x0800)
18392384   ROM_LOAD( "sbowlu6.732", 0x1800, 0x0800, CRC(a9c92719) SHA1(972da0cf87863b637b88575c329f1d8162098d6f))
18402385   ROM_CONTINUE( 0x5800, 0x0800)
1841   ROM_RELOAD( 0xf000, 0x1000)
2386   ROM_RELOAD( 0x7000, 0x1000)
18422387   ROM_REGION(0x10000, "cpu2", 0)
18432388   ROM_LOAD("720_u3.snd", 0xc000, 0x2000, CRC(5d8e2adb) SHA1(901a26f5e598386295a1298ee3a634941bd58b3e))
18442389   ROM_RELOAD(0xe000, 0x2000)
18452390ROM_END
18462391
18472392// AS-2888 sound
1848GAME( 1979, sst,        0,        by35, by35, by35_state, by35_6, ROT0, "Bally", "Supersonic", MACHINE_IS_SKELETON_MECHANICAL)
1849GAME( 1978, playboy,    0,        by35, by35, by35_state, by35_6, ROT0, "Bally", "Playboy", MACHINE_IS_SKELETON_MECHANICAL)
1850GAME( 1978, lostwrlp,   0,        by35, by35, by35_state, by35_6, ROT0, "Bally", "Lost World", MACHINE_IS_SKELETON_MECHANICAL)
1851GAME( 1978, smman,      0,        by35, by35, by35_state, by35_6, ROT0, "Bally", "Six Million Dollar Man", MACHINE_IS_SKELETON_MECHANICAL)
1852GAME( 1978, voltan,     0,        by35, by35, by35_state, by35_6, ROT0, "Bally", "Voltan Escapes Cosmic Doom", MACHINE_IS_SKELETON_MECHANICAL)
1853GAME( 1979, startrep,   0,        by35, by35, by35_state, by35_6, ROT0, "Bally", "Star Trek (Pinball)", MACHINE_IS_SKELETON_MECHANICAL)
1854GAME( 1979, kiss,       0,        by35, by35, by35_state, by35_6, ROT0, "Bally", "Kiss", MACHINE_IS_SKELETON_MECHANICAL)
1855GAME( 1979, hglbtrtr,   0,        by35, by35, by35_state, by35_6, ROT0, "Bally", "Harlem Globetrotters On Tour", MACHINE_IS_SKELETON_MECHANICAL)
1856GAME( 1979, dollyptn,   0,        by35, by35, by35_state, by35_6, ROT0, "Bally", "Dolly Parton", MACHINE_IS_SKELETON_MECHANICAL)
1857GAME( 1979, paragon,    0,        by35, by35, by35_state, by35_6, ROT0, "Bally", "Paragon", MACHINE_IS_SKELETON_MECHANICAL)
2393GAME( 1979, sst,        0,        as2888, by35,    by35_state, by35_6,  ROT0, "Bally", "Supersonic", MACHINE_IS_SKELETON_MECHANICAL)
2394GAMEL(1978, playboy,    0,        as2888, playboy, by35_state, playboy, ROT0, "Bally", "Playboy", MACHINE_MECHANICAL, layout_by35_playboy)
2395GAME( 1978, lostwrlp,   0,        as2888, by35,    by35_state, by35_6,  ROT0, "Bally", "Lost World", MACHINE_IS_SKELETON_MECHANICAL)
2396GAME( 1978, smman,      0,        as2888, by35,    by35_state, by35_6,  ROT0, "Bally", "Six Million Dollar Man", MACHINE_IS_SKELETON_MECHANICAL)
2397GAME( 1978, voltan,     0,        as2888, by35,    by35_state, by35_6,  ROT0, "Bally", "Voltan Escapes Cosmic Doom", MACHINE_IS_SKELETON_MECHANICAL)
2398GAME( 1979, startrep,   0,        as2888, by35,    by35_state, by35_6,  ROT0, "Bally", "Star Trek (Pinball)", MACHINE_IS_SKELETON_MECHANICAL)
2399GAME( 1979, kiss,       0,        as2888, by35,    by35_state, by35_6,  ROT0, "Bally", "Kiss", MACHINE_IS_SKELETON_MECHANICAL)
2400GAME( 1979, hglbtrtr,   0,        as2888, by35,    by35_state, by35_6,  ROT0, "Bally", "Harlem Globetrotters On Tour", MACHINE_IS_SKELETON_MECHANICAL)
2401GAME( 1979, dollyptn,   0,        as2888, by35,    by35_state, by35_6,  ROT0, "Bally", "Dolly Parton", MACHINE_IS_SKELETON_MECHANICAL)
2402GAME( 1979, paragon,    0,        as2888, by35,    by35_state, by35_6,  ROT0, "Bally", "Paragon", MACHINE_IS_SKELETON_MECHANICAL)
18582403
18592404// AS-3022 sound
18602405GAME( 1980, ngndshkr,   0,        by35, by35, by35_state, by35_6, ROT0, "Bally", "Nitro Ground Shaker", MACHINE_IS_SKELETON_MECHANICAL)
r249893r249894
18752420GAME( 1983, granslam,   0,        by35, by35, by35_state, by35_7, ROT0, "Bally", "Grand Slam", MACHINE_IS_SKELETON_MECHANICAL)
18762421GAME( 1983, granslam4,  granslam, by35, by35, by35_state, by35_7, ROT0, "Bally", "Grand Slam (4 Players)", MACHINE_IS_SKELETON_MECHANICAL)
18772422GAME( 1983, goldball,   0,        by35, by35, by35_state, by35_7, ROT0, "Bally", "Gold Ball (set 1)", MACHINE_IS_SKELETON_MECHANICAL)
1878GAME( 1983, goldballn,  goldball, by35, by35, by35_state, by35_7, ROT0, "Bally / Oliver", "Gold Ball (set 2)", MACHINE_IS_SKELETON_MECHANICAL)
2423GAME( 1983, goldballn,  goldball, by35, by35, by35_state, by35_7, ROT0, "Bally", "Gold Ball (Field Service Upgrade)", MACHINE_IS_SKELETON_MECHANICAL)
18792424
18802425// Squawk & Talk sound
18812426GAME( 1981, flashgdn,   0,        by35, by35, by35_state, by35_7, ROT0, "Bally", "Flash Gordon", MACHINE_IS_SKELETON_MECHANICAL)
r249893r249894
19042449GAME( 1985, cybrnaut,   0,        by35, by35, by35_state, by35_7, ROT0, "Bally", "Cybernaut", MACHINE_IS_SKELETON_MECHANICAL)
19052450
19062451// Other manufacturers
1907GAME( 1984, suprbowl,   xsandos,  by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Super Bowl", MACHINE_IS_SKELETON_MECHANICAL)
1908GAME( 1984, tigerrag,   kosteel,  by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Tiger Rag", MACHINE_IS_SKELETON_MECHANICAL)
1909GAME( 1985, cosflash,   flashgdn, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Cosmic Flash", MACHINE_IS_SKELETON_MECHANICAL)
1910GAME( 1985, newwave,    blakpyra, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "New Wave", MACHINE_IS_SKELETON_MECHANICAL)
1911GAME( 1985, saturn2,    spyhuntr, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Saturn 2", MACHINE_IS_SKELETON_MECHANICAL)
1912GAME( 1985, worlddef,   0,        by35, by35, by35_state, by35_7, ROT0, "Bell Games", "World Defender", MACHINE_IS_SKELETON_MECHANICAL)
1913GAME( 1986, spacehaw,   cybrnaut, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Space Hawks", MACHINE_IS_SKELETON_MECHANICAL)
1914GAME( 1986, darkshad,   0,        by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Dark Shadow", MACHINE_IS_SKELETON_MECHANICAL)
1915GAME( 1986, skflight,   0,        by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Skill Flight", MACHINE_IS_SKELETON_MECHANICAL)
1916GAME( 1987, cobrap,     0,        by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Cobra", MACHINE_IS_SKELETON_MECHANICAL)
1917GAME( 1987, futrquen,   0,        by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Future Queen", MACHINE_IS_SKELETON_MECHANICAL)
1918GAME( 1987, f1gpp,      0,        by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "F1 Grand Prix", MACHINE_IS_SKELETON_MECHANICAL)
1919GAME( 1988, toppin,     0,        by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Top Pin", MACHINE_IS_SKELETON_MECHANICAL)
1920GAME( 1988, uboat65,    0,        by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "U-boat 65", MACHINE_IS_SKELETON_MECHANICAL)
1921GAME( 1986, bullseye,   0,        by35, by35, by35_state, by35_7, ROT0, "Grand Products", "301/Bullseye", MACHINE_IS_SKELETON_MECHANICAL)
1922GAME( 1988, bbbowlin,   0,        by35, by35, by35_state, by35_7, ROT0, "United", "Big Ball Bowling (Bowler)", MACHINE_IS_SKELETON_MECHANICAL)
1923GAME( 1988, monrobwl,   0,        by35, by35, by35_state, by35_7, ROT0, "Monroe Bowling Co.", "Stars & Strikes (Bowler)", MACHINE_IS_SKELETON_MECHANICAL)
1924GAME( 1984, mdntmrdr,   0,        by35, by35, by35_state, by35_6, ROT0, "Bally Midway", "Midnight Marauders (Gun game)", MACHINE_IS_SKELETON_MECHANICAL)
1925GAME( 1988, blbeauty,   0,        by35, by35, by35_state, by35_7, ROT0, "Stern", "Black Beauty (Shuffle)", MACHINE_IS_SKELETON_MECHANICAL)
1926GAME( 1984, myststar,   0,        by35, by35, by35_state, by35_6, ROT0, "Zaccaria", "Mystic Star", MACHINE_IS_SKELETON_MECHANICAL)
2452GAME( 1984, suprbowl,   xsandos,  by35,  by35, by35_state, by35_7, ROT0, "Bell Games", "Super Bowl", MACHINE_IS_SKELETON_MECHANICAL)
2453GAME( 1984, tigerrag,   kosteel,  by35,  by35, by35_state, by35_7, ROT0, "Bell Games", "Tiger Rag", MACHINE_IS_SKELETON_MECHANICAL)
2454GAME( 1985, cosflash,   flashgdn, by35,  by35, by35_state, by35_7, ROT0, "Bell Games", "Cosmic Flash", MACHINE_IS_SKELETON_MECHANICAL)
2455GAME( 1985, newwave,    blakpyra, by35,  by35, by35_state, by35_7, ROT0, "Bell Games", "New Wave", MACHINE_IS_SKELETON_MECHANICAL)
2456GAME( 1985, saturn2,    spyhuntr, by35,  by35, by35_state, by35_7, ROT0, "Bell Games", "Saturn 2", MACHINE_IS_SKELETON_MECHANICAL)
2457GAME( 1985, worlddef,   0,        by35,  by35, by35_state, by35_7, ROT0, "Bell Games", "World Defender", MACHINE_IS_SKELETON_MECHANICAL)
2458GAME( 1986, spacehaw,   cybrnaut, by35,  by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Space Hawks", MACHINE_IS_SKELETON_MECHANICAL)
2459GAME( 1986, darkshad,   0,        nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Dark Shadow", MACHINE_IS_SKELETON_MECHANICAL)
2460GAME( 1986, skflight,   0,        nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Skill Flight", MACHINE_IS_SKELETON_MECHANICAL)
2461GAME( 1987, cobrap,     0,        nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Cobra", MACHINE_IS_SKELETON_MECHANICAL)
2462GAME( 1987, futrquen,   0,        nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Future Queen", MACHINE_IS_SKELETON_MECHANICAL)
2463GAME( 1987, f1gpp,      0,        nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "F1 Grand Prix", MACHINE_IS_SKELETON_MECHANICAL)
2464GAME( 1988, toppin,     0,        nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Top Pin", MACHINE_IS_SKELETON_MECHANICAL)
2465GAME( 1988, uboat65,    0,        nuovo, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "U-boat 65", MACHINE_IS_SKELETON_MECHANICAL)
2466GAME( 1986, bullseye,   0,        by35,  by35, by35_state, by35_7, ROT0, "Grand Products", "301/Bullseye", MACHINE_IS_SKELETON_MECHANICAL)
2467GAME( 1988, bbbowlin,   0,        by35,  by35, by35_state, by35_7, ROT0, "United", "Big Ball Bowling (Bowler)", MACHINE_IS_SKELETON_MECHANICAL)
2468GAME( 1988, monrobwl,   0,        by35,  by35, by35_state, by35_7, ROT0, "Monroe Bowling Co.", "Stars & Strikes (Bowler)", MACHINE_IS_SKELETON_MECHANICAL)
2469GAME( 1984, mdntmrdr,   0,        by35,  by35, by35_state, by35_6, ROT0, "Bally Midway", "Midnight Marauders (Gun game)", MACHINE_IS_SKELETON_MECHANICAL)
2470GAME( 1988, blbeauty,   0,        by35,  by35, by35_state, by35_7, ROT0, "Stern", "Black Beauty (Shuffle)", MACHINE_IS_SKELETON_MECHANICAL)
2471GAME( 1984, myststar,   0,        by35,  by35, by35_state, by35_6, ROT0, "Zaccaria", "Mystic Star", MACHINE_IS_SKELETON_MECHANICAL)
trunk/src/mame/drivers/camplynx.c
r249893r249894
44
55      Camputers Lynx
66
7      05/2009 Skeleton driver.
7      2009-05 Skeleton driver.
8      2015-10-23 Working
89
910      The Lynx was an 8-bit British home computer that was first released
1011      in early 1983 as a 48 kB model.
r249893r249894
6263
6364
6465
65    48k and 96k are basically the same machine. 128k is different.
66    48k and 96k are basically the same machine. 128k is different. Most software for
67    one won't work properly on the other, due to major hardware differences.
6668
6769    This computer is weird, because it allows reads and writes from multiple banks
6870    at the same time. We can write to multiple banks, but we must limit ourselves
r249893r249894
8183    - Cassette tapes made on 128k are a different speed to 48k tapes. To load a 128k
8284      tape on a 48k system, enter TAPE 3 before loading. (2,3,4,5 all seem to work).
8385    - When loading, there's no wildcard; you must specify the name.
84    - INT should be activated by the MC6845 CURS pin (inverted), or by holding down
85      the BREAK key. However, the rom leaves interrupts disabled, so none of this works.
86    - INT should be activated by the MC6845 CURS pin, but this doesn't happen. Using
87      VSYNC instead. Required for CP/M to boot.
88    - Info about disks:
89      - You must firstly do XROM to initialise the DOS ROM.
90      - Then do EXT DIR with a Lynx-formatted disk, or EXT BOOT with a CP/M disk.
91      - Then, on a Lynx-formatted disk, do EXT LOAD "name" or EXT MLOAD "name".
8692
8793    To Do:
88    - Need disk-based software (only ones found are LDF format)
89    - finish memory banking
90    - disk (only partially done)
9194    - printer
9295    - joysticks
93    - UART type COM8017
94    Bugs:
95    - YNXVADERS: Top row of invaders is missing and can't be killed, but they
96      continue to fire at you. This makes the game unwinnable.
96    - UART type COM8017 (48k,96k only) (not used by any programs)
97    - There's a few games that are not perfectly perfect, but it runs at least
98      as well as any other Lynx emulator.
99
97100    Game bugs (reproducible in Jynx):
98101    - 3D Monster Craze: When attacked, garbage on screen
99102    - 3D Monster Craze: When you find the key, the game freezes
100    - LogiChess: unable to enter an acceptable move
101    - Power Blaster: Bad Tape
103    - YNXVADERS: Colours of top 2 rows of invaders should be white and yellow
104      but they show as magenta and red. After game ends, title screen has wrong
105      colours.
102106
107      Game Hints:
108      Most games have instructions or are quite obvious.
109      - Power Blaster. Using debug.exe, change byte 1965 from FE to F2 to fix
110        the loading. Then, arrows to turn, Shift to clean out a whole row of dots.
111        You can then move into the vacated areas. Even though it says you have
112        3 lives, you actually only have 1.
113      - Backgammon. This is just the instructions. The game is missing.
114      - LogiChess. The page at http://www.nascomhomepage.com/games/logichess.html
115        should provide enough clues to enable you to work out how to play.
116
103117****************************************************************************/
104118
105119#include "emu.h"
r249893r249894
110124#include "sound/wave.h"
111125#include "formats/camplynx_cas.h"
112126#include "machine/wd_fdc.h"
127#include "formats/camplynx_dsk.h"
113128
114129class camplynx_state : public driver_device
115130{
r249893r249894
127142      , m_floppy1(*this, "fdc:1")
128143   { }
129144
130   // 48k
131145   DECLARE_WRITE8_MEMBER(bank1_w);
132   DECLARE_WRITE8_MEMBER(bank5_w);
133146   DECLARE_WRITE8_MEMBER(bank6_w);
134   DECLARE_WRITE8_MEMBER(bank7_w);
135   DECLARE_WRITE8_MEMBER(bank8_w);
136147   DECLARE_WRITE8_MEMBER(port58_w); // drive select etc
137148   DECLARE_WRITE8_MEMBER(port7f_w); // banking 48k
138149   DECLARE_READ8_MEMBER(port80_r); // cassin for 48k
r249893r249894
140151   DECLARE_READ8_MEMBER(port82_r); // cassin for 128k
141152   DECLARE_WRITE8_MEMBER(port82_w); // banking 128k
142153   DECLARE_WRITE8_MEMBER(port84_w); // dac port 48k
154   DECLARE_INPUT_CHANGED_MEMBER(brk_key);
143155   DECLARE_MACHINE_RESET(lynx48k);
144156   DECLARE_MACHINE_RESET(lynx128k);
145157   DECLARE_DRIVER_INIT(lynx48k);
146158   DECLARE_DRIVER_INIT(lynx128k);
159   DECLARE_FLOPPY_FORMATS(camplynx_floppy_formats);
147160   MC6845_UPDATE_ROW(lynx48k_update_row);
148161   MC6845_UPDATE_ROW(lynx128k_update_row);
149162   required_device<palette_device> m_palette;
r249893r249894
200213         membank("bankr5")->set_entry(0);
201214         membank("bankr6")->set_entry(1);
202215         membank("bankr7")->set_entry(2);
203         membank("bankr8")->set_entry(3);
216         membank("bankr8")->set_entry(7);
204217         break;
205218      case 0x20:
206219      case 0x24:
r249893r249894
213226         membank("bankr5")->set_entry(12);
214227         membank("bankr6")->set_entry(13);
215228         membank("bankr7")->set_entry(14);
216         membank("bankr8")->set_entry(15);
229         membank("bankr8")->set_entry(BIT(m_port58, 4) ? 15 : 7);
217230         break;
218231      case 0x30:
219232      case 0x34:
r249893r249894
235248         membank("bankr3")->set_entry(26);
236249         membank("bankr4")->set_entry(27);
237250         membank("bankr5")->set_entry(28);
238         membank("bankr6")->set_entry(28);
251         membank("bankr6")->set_entry(29);
239252         membank("bankr7")->set_entry(30);
240         membank("bankr8")->set_entry(30);
253         membank("bankr8")->set_entry(31);
241254         break;
242255      case 0x40:
243256      case 0x60:
r249893r249894
250263         membank("bankr3")->set_entry(18);
251264         membank("bankr4")->set_entry(19);
252265         membank("bankr5")->set_entry(20);
253         membank("bankr6")->set_entry(20);
266         membank("bankr6")->set_entry(21);
254267         membank("bankr7")->set_entry(22);
255         membank("bankr8")->set_entry(22);
268         membank("bankr8")->set_entry(23);
256269         break;
257270      case 0x54:
258271      case 0x74:
r249893r249894
261274         membank("bankr3")->set_entry(2);
262275         membank("bankr4")->set_entry(27);
263276         membank("bankr5")->set_entry(28);
264         membank("bankr6")->set_entry(28);
277         membank("bankr6")->set_entry(29);
265278         membank("bankr7")->set_entry(30);
266         membank("bankr8")->set_entry(30);
279         membank("bankr8")->set_entry(31);
267280         break;
268281      case 0x50:
269282      case 0x70:
r249893r249894
276289         membank("bankr3")->set_entry(2);
277290         membank("bankr4")->set_entry(19);
278291         membank("bankr5")->set_entry(20);
279         membank("bankr6")->set_entry(20);
292         membank("bankr6")->set_entry(21);
280293         membank("bankr7")->set_entry(22);
281         membank("bankr8")->set_entry(22);
294         membank("bankr8")->set_entry(23);
282295         break;
283296      default:
284297         printf("Banking code %X not handled\n", m_bankdata);
r249893r249894
319332         membank("bankr8")->set_entry(7);
320333         break;
321334      case 0x02:
322      case 0x06:
323335      case 0x0a:
324      case 0x0e:
325336         membank("bankr1")->set_entry(8);
326337         membank("bankr2")->set_entry(9);
327338         membank("bankr3")->set_entry(10);
r249893r249894
345356         membank("bankr8")->set_entry(BIT(m_port58, 4) ? 15 : 7);
346357         break;
347358      case 0x04:
359      case 0x06:
348360      case 0x0c:
361      case 0x0e:
349362         membank("bankr1")->set_entry(16);
350363         membank("bankr2")->set_entry(17);
351364         membank("bankr3")->set_entry(18);
r249893r249894
397410   AM_RANGE(0x2000,0x3fff) AM_READ_BANK("bankr2")
398411   AM_RANGE(0x4000,0x5fff) AM_READ_BANK("bankr3")
399412   AM_RANGE(0x6000,0x7fff) AM_READ_BANK("bankr4")
400   AM_RANGE(0x8000,0x9fff) AM_READ_BANK("bankr5") AM_WRITE(bank5_w)
401   AM_RANGE(0xa000,0xbfff) AM_READ_BANK("bankr6") AM_WRITE(bank6_w)
402   AM_RANGE(0xc000,0xdfff) AM_READ_BANK("bankr7") AM_WRITE(bank7_w)
403   AM_RANGE(0xe000,0xffff) AM_READ_BANK("bankr8") AM_WRITE(bank8_w)
404   AM_RANGE(0x0000,0x7fff) AM_WRITE(bank1_w)
413   AM_RANGE(0x8000,0x9fff) AM_READ_BANK("bankr5")
414   AM_RANGE(0xa000,0xbfff) AM_READ_BANK("bankr6")
415   AM_RANGE(0xc000,0xdfff) AM_READ_BANK("bankr7")
416   AM_RANGE(0xe000,0xffff) AM_READ_BANK("bankr8")
417   AM_RANGE(0x0000,0xffff) AM_WRITE(bank6_w)
405418ADDRESS_MAP_END
406419
407420static ADDRESS_MAP_START( lynx128k_mem, AS_PROGRAM, 8, camplynx_state )
r249893r249894
473486static INPUT_PORTS_START( lynx48k )
474487   PORT_START("LINE0")
475488   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
476   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27)
489   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) PORT_CHANGED_MEMBER(DEVICE_SELF, camplynx_state, brk_key, 0)
477490   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
478491   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
479492   PORT_BIT(0x0e, IP_ACTIVE_LOW, IPT_UNUSED)
r249893r249894
549562   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Delete") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
550563INPUT_PORTS_END
551564
565INPUT_CHANGED_MEMBER( camplynx_state::brk_key )
566{
567   m_maincpu->set_input_line(0, newval ? CLEAR_LINE : ASSERT_LINE);
568}
569
552570WRITE8_MEMBER( camplynx_state::bank1_w )
553571{
554572   if BIT(m_wbyte, 0)
r249893r249894
561579      m_p_ram[offset+0x40000] = data;
562580}
563581
564WRITE8_MEMBER( camplynx_state::bank5_w )
565{
566   if BIT(m_wbyte, 0)
567      m_p_ram[offset+0x18000] = data;
568   if ((m_wbyte & 0x22) == 0x02)
569      m_p_ram[offset+0x28000] = data;
570   if ((m_wbyte & 0x44) == 0x04)
571      m_p_ram[offset+0x38000] = data;
572}
573
574582WRITE8_MEMBER( camplynx_state::bank6_w )
575583{
576584   if BIT(m_wbyte, 0)
577      m_p_ram[offset+0x1a000] = data;
578   if ((m_wbyte & 0x22) == 0x02)
579      m_p_ram[offset+0x28000] = data;
580   if ((m_wbyte & 0x44) == 0x04)
581      m_p_ram[offset+0x38000] = data;
582}
585      m_p_ram[offset+0x10000] = data;
583586
584WRITE8_MEMBER( camplynx_state::bank7_w )
585{
586   if BIT(m_wbyte, 0)
587      m_p_ram[offset+0x1c000] = data;
587   offset &= 0x5fff;
588
588589   if ((m_wbyte & 0x22) == 0x02)
589      m_p_ram[offset+0x2c000] = data;
590   if ((m_wbyte & 0x44) == 0x04)
591      m_p_ram[offset+0x3c000] = data;
592}
590   {
591      m_p_ram[offset | 0x20000] = data;
592      m_p_ram[offset | 0x22000] = data;
593      m_p_ram[offset | 0x28000] = data;
594      m_p_ram[offset | 0x2a000] = data;
595   }
593596
594WRITE8_MEMBER( camplynx_state::bank8_w )
595{
596   if BIT(m_wbyte, 0)
597      m_p_ram[offset+0x1e000] = data;
598   if ((m_wbyte & 0x22) == 0x02)
599      m_p_ram[offset+0x2c000] = data;
600597   if ((m_wbyte & 0x44) == 0x04)
601      m_p_ram[offset+0x3c000] = data;
598   {
599      m_p_ram[offset | 0x30000] = data;
600      m_p_ram[offset | 0x32000] = data;
601      m_p_ram[offset | 0x38000] = data;
602      m_p_ram[offset | 0x3a000] = data;
603   }
602604}
603605
604606READ8_MEMBER( camplynx_state::port80_r )
r249893r249894
757759      else
758760         port7f_w(space, 0, m_bankdata);
759761   }
760   m_fdc->dden_w(BIT(data, 7));
761762
762763   floppy_image_device *floppy = NULL;
763764   if ((data & 3) == 0) floppy = m_floppy0->get_device();
r249893r249894
773774   m_floppy1->get_device()->mon_w(BIT(data, 3));
774775}
775776
777FLOPPY_FORMATS_MEMBER( camplynx_state::camplynx_floppy_formats )
778   FLOPPY_CAMPLYNX_FORMAT
779FLOPPY_FORMATS_END
776780
777781static SLOT_INTERFACE_START( camplynx_floppies )
778782   SLOT_INTERFACE( "drive0", FLOPPY_525_QD )
r249893r249894
791795MACHINE_CONFIG_END
792796
793797static MACHINE_CONFIG_FRAGMENT( lynx_disk )
794   MCFG_FD1793_ADD("fdc", XTAL_24MHz / 3) // no idea what crystal, no schematic of fdc found
795   MCFG_FLOPPY_DRIVE_ADD("fdc:0", camplynx_floppies, "drive0", floppy_image_device::default_floppy_formats)
798   MCFG_FD1793_ADD("fdc", XTAL_24MHz / 24)
799   MCFG_FLOPPY_DRIVE_ADD("fdc:0", camplynx_floppies, "drive0", camplynx_state::camplynx_floppy_formats)
796800   MCFG_FLOPPY_DRIVE_SOUND(true)
797   MCFG_FLOPPY_DRIVE_ADD("fdc:1", camplynx_floppies, "drive1", floppy_image_device::default_floppy_formats)
801   MCFG_FLOPPY_DRIVE_ADD("fdc:1", camplynx_floppies, "drive1", camplynx_state::camplynx_floppy_formats)
798802   MCFG_FLOPPY_DRIVE_SOUND(true)
799803MACHINE_CONFIG_END
800804
r249893r249894
827831   MCFG_MC6845_SHOW_BORDER_AREA(false)
828832   MCFG_MC6845_CHAR_WIDTH(8)
829833   MCFG_MC6845_UPDATE_ROW_CB(camplynx_state, lynx48k_update_row)
830   MCFG_MC6845_OUT_CUR_CB(DEVWRITELINE("maincpu", z80_device, irq_line))
834   MCFG_MC6845_OUT_VSYNC_CB(DEVWRITELINE("maincpu", z80_device, irq_line))
831835MACHINE_CONFIG_END
832836
833837static MACHINE_CONFIG_DERIVED( lynx96k, lynx48k )
r249893r249894
867871   MCFG_MC6845_SHOW_BORDER_AREA(false)
868872   MCFG_MC6845_CHAR_WIDTH(8)
869873   MCFG_MC6845_UPDATE_ROW_CB(camplynx_state, lynx128k_update_row)
870   MCFG_MC6845_OUT_CUR_CB(DEVWRITELINE("maincpu", z80_device, irq_line))
874   MCFG_MC6845_OUT_VSYNC_CB(DEVWRITELINE("maincpu", z80_device, irq_line))
871875
872876   MCFG_FRAGMENT_ADD(lynx_disk)
873877MACHINE_CONFIG_END
r249893r249894
932936/* Driver */
933937/*    YEAR  NAME       PARENT     COMPAT   MACHINE    INPUT    CLASS            INIT         COMPANY     FULLNAME     FLAGS */
934938COMP( 1983, lynx48k,   0,         0,       lynx48k,   lynx48k, camplynx_state,  lynx48k,  "Camputers",  "Lynx 48k", 0 )
935COMP( 1983, lynx96k,   lynx48k,   0,       lynx96k,   lynx48k, camplynx_state,  lynx48k,  "Camputers",  "Lynx 96k",   MACHINE_NOT_WORKING)
936COMP( 1983, lynx128k,  lynx48k,   0,       lynx128k,  lynx48k, camplynx_state,  lynx128k, "Camputers",  "Lynx 128k",  MACHINE_NOT_WORKING)
939COMP( 1983, lynx96k,   lynx48k,   0,       lynx96k,   lynx48k, camplynx_state,  lynx48k,  "Camputers",  "Lynx 96k", 0 )
940COMP( 1983, lynx128k,  lynx48k,   0,       lynx128k,  lynx48k, camplynx_state,  lynx128k, "Camputers",  "Lynx 128k", 0 )
trunk/src/mame/drivers/cat.c
r249893r249894
33/***************************************************************************
44
55    Canon Cat, Model V777
6    IAI Swyft Model P0001
76    Copyright (C) 2009-2013 Miodrag Milanovic and Jonathan Gevaryahu AKA Lord Nightmare
87    With information and help from John "Sandy" Bumgarner, Dwight Elvey,
98    Charles Springer, Terry Holmes, Jonathan Sand, Aza Raskin and others.
r249893r249894
112111which is fairly close but may actually be too SHORT compared to the real thing.
113112
114113
115Swyft versions:
116There are at least 4 variants of machines called 'swyft':
117* The earliest desktop units which use plexi or rubber-tooled case and an
118  angled monitor; about a dozen were made and at least two of clear plexi.
119  These are sometimes called "wrinkled" swyfts. 5.25" drive, they may be able
120  to read Apple2 Swyftware/Swyftdisk and Swyftcard-created disks.
121  It is possible no prototypes of this type got beyond the 'runs forth console only' stage.
122  http://archive.computerhistory.org/resources/access/physical-object/2011/09/102746929.01.01.lg.JPG
123  http://www.digibarn.com/collections/systems/swyft/Swyft-No2-05-1271.jpg
124  http://www.digibarn.com/friends/jef-raskin/slides/iai/A%20-687%20SWYFTPRO.JPG
125* The early "flat cat" or "roadkill" portable LCD screen units with a white
126  case and just a keyboard. Model SP0001
127  http://www.digibarn.com/collections/systems/swyft/Image82.jpg
128* The later "ur-cat" desktop units which use a machine tooled case and look
129  more or less like the canon cat. Around 100-200 were made. 3.5" drive.
130  These have a fully functional EDDE editor as the cat does, and can even compile
131  forth programs.
132  (the 'swyft' driver is based on one of these)
133* The very late portable LCD units with a dark grey case and a row of hotkey
134  buttons below the screen. Not dumped yet. At least one functional prototype exists.
135  At least one plastic mockup exists with no innards.
136  http://www.digibarn.com/collections/systems/swyft/swyft.jpg
137
138114Canon Cat versions:
139115There is really only one version of the cat which saw wide release, the US version.
140116* It is possible a very small number of UK/European units were released as a test.
r249893r249894
161137X2: 3.579545Mhz, used by the DTMF generator chip AMI S2579 at IC40
162138X3: 2.4576Mhz, used by the modem chip AMI S35213 at IC37
163139
164IAI Swyft:
165Board name: 950-0001C
166"INFORMATION APPLIANCE INC. COPYRIGHT 1985"
167 _________________|||||||||___________________________________________________________________________________
168|                     J8               [=======J3=======]  ____                              Trans-           |
169==                                                        /    \  (E2)                       former           |
170==Jx                   74LS107   J5                       |PB1 |        uA339     MC3403                 -----|
171|                                          7407           \____/                                         J7   =
172| Y1       "TIMING B" 74LS132    74LS175                                                                 -----|
173|                                                  ____________                            4N37  Relay   -----|
174| TMS4256   74LS161  "DECODE E" "DISK 3.5C"       |            |                                         J6   =
175|                                                 |  MC6850P   |                                         -----|
176| TMS4256   74LS166   74HCT259   74LS299          '------------'        MC3403    MC3403                 _____|
177|                      ___________________     ___________________             ||                       |     =
178| TMS4256   74LS373   |                   |   |                   |            J2                       | J1  =
179|                     |   MC68008P8       |   |       R6522P      |            ||              I   P R  |     =
180| TMS4256   74F153    '-------------------'   '-------------------'     MN4053 || MN4053       N   R E  | B   =
181|                                    (E1)                                                      D   O S  | R   =
182| TMS4256   74F153    74HCT08     __________   ___________________      MC14412   DS1489       U E T I  | E   =
183|                                |          | |                   | ||                         C S E S  | A   =
184| TMS4256   74F153    74HC4040E  | AM27256  | |       R6522P      | ||                         T D C T  | K   =
185|                                '----------' '-------------------' ||  INFORMATION            O   T O  | O   =
186| TMS4256   74F153    "VIDEO 2B" .----------.                       J4  APPLIANCE INC.         R   I R  | U   =
187|                                | AM27256  |   74HC02     74HC374  ||  Copyright 1985         S   O S  | T   =
188| TMS4256   74F153    74LS393  B1|__________|                       ||  UM95089  Y2                N    |     =
189|_____________________________[________J9___]__________________________________________________D13______|_____=
190140
191*Devices of interest:
192J1: breakout of joystick, serial/rs232, hex-keypad, parallel port, and forth switch (and maybe cassette?) pins
193    DIL 60 pin 2-row right-angle rectangular connector with metal shield contact;
194    not all 60 pins are populated in the connector, only pins 1-6, 8, 13-15, 17-18, 23-30, 35-60 are present
195    (traced partly by dwight)
196J2: unpopulated 8-pin sip header, serial/rs232-related?
197    (vcc ? ? ? ? ? ? gnd) (random guess: txd, rxd, rts, cts, dsr, dtr, and one pin could be cd/ri though the modem circuit may do that separately?)
198J3: Floppy Connector
199    (standard DIL 34 pin 2-row rectangular connector for mini-shugart/pc floppy cable; pin 2 IS connected somewhere and ?probably? is used for /DISKCHANGE like on an Amiga, with pin 34 being /TRUEREADY?)
200    (as opposed to normal ibm pc 3.5" drives where pin 2 is unconnected or is /DENSITY *input to drive*, and pin 34 is /DISKCHANGE)
201J4: 18-pin sip header for keyboard ribbon cable; bottom edge of board is pin 1
202    Pins:
203    1: GND through 220k resistor r78
204    2: ? phone hook related? anode of diode d7; one of the pins of relay k2; topmost (boardwise) pin of transistor Q10
205    3: 74HCT34 pin
206
207J5: locking-tab-type "CONN HEADER VERT 4POS .100 TIN" connector for supplying power
208    through a small cable with a berg connector at the other end, to the floppy drive
209    (5v gnd gnd 12v)
210J6: Phone connector, rj11 jack
211J7: Line connector, rj11 jack
212J8: 9-pin Video out/power in connector "CONN RECEPT 6POS .156 R/A PCB" plus "CONN RECEPT 3POS .156 R/A PCB" acting as one 9-pin connector
213    (NC ? ? ? NC NC ? 12v 5v) (video, vsync, hsync and case/video-gnd are likely here)
214    (the video pinout of the cat is: (Video Vsync Hsync SyncGnd PwrGnd PwrGnd +5v(VCC) +12v(VDD) -12v(VEE)) which is not the same as the swyft.
215J9: unpopulated DIL 40-pin straight connector for a ROM debug/expansion/RAM-shadow daughterboard
216    the pins after pin 12 connect to that of the ROM-LO 27256 pinout counting pins 1,28,2,27,3,26,etc
217    the ROM-HI rom has a different /HICE pin which is not connected to this connector
218    /LOCE is a15
219    /HICE is !a15
220    /ROM_OE comes from pin 14 of DECODE_E pal, and is shorted to /ROM_OE' by the cuttable jumper B1 which is not cut
221    /ROM_OE' goes to the two EPROMS
222    DECODE_18 is DECODE_E pal pin 18
223    pin 1 (GND) is in the lower left and the pins count low-high then to the right
224    (gnd N/C   E_CLK     R/W    /ROM_OE a17 vcc a14 a13 a8 a9 a11 /ROM_OE' a10 a15 d7 d6 d5 d4 d3 )
225    (GND /IPL1 DECODE_18 /RESET gnd     a16 vcc a12 a7  a6 a5 a4  a3       a2  a1  a0 d0 d1 d2 gnd)
226Jx: 4 pin on top side, 6 pin on bottom side edge ?debug? connector (doesn't have a Jx number)
227    (trace me!)
228B1: a cuttable trace on the pcb. Not cut, affects one of the pins on the unpopulated J9 connector only.
229E1: jumper, unknown purpose, not set
230E2: jumper, unknown purpose, not set
231D13: LED
232R6522P (upper): parallel port via
233R6522P (lower): keyboard via
234UM95089: DTMF Tone generator chip (if you read the datasheet this is technically ROM based!)
235Y1: 15.8976Mhz, main clock?
236Y2: 3.579545Mhz, used by the DTMF generator chip UM95089 (connects to pins 7 and 8 of it)
237TMS4256-15NL - 262144 x 1 DRAM
238PB1 - piezo speaker
239
240*Pals:
241"TIMING B" - AMPAL16R4APC (marked on silkscreen "TIMING PAL")
242"DECODE E" - AMPAL16L8PC (marked on silkscreen "DECODE PAL")
243"VIDEO 2B" - AMPAL16R4PC (marked on silkscreen "VIDEO PAL")
244"DISK 3.5C" - AMPAL16R4PC (marked on silkscreen "DISK PAL")
245
246*Deviations from silkscreen:
2474N37 (marked on silkscreen "4N35")
24874F153 (marked on silkscreen "74ALS153")
24974HCT259 is socketed, possibly intended that the rom expansion daughterboard will have a ribbon cable fit in its socket?
250
251
252141ToDo:
253142* Canon Cat
254143- Find the mirrors for the write-only video control register and figure out
r249893r249894
299188- Hook the floppy control register readback up properly, things seem to get
300189  confused.
301190
302
303* Swyft
304- Figure out the keyboard (interrupts are involved? or maybe an NMI on a
305  timer/vblank? It is possible this uses a similar 'keyboard read int'
306  to what the cat does)
307- get the keyboard scanning actually working; the VIAs are going nuts right now.
308- Beeper (on one of the vias?)
309- vblank/hblank stuff
310- Get the 6850 ACIA working for communications
311- Floppy (probably similar to the Cat)
312- Centronics port (attached to one of the VIAs)
313- Joystick port (also likely on a via)
314- Keypad? (also likely on a via done as a grid scan?)
315- Forth button (on the port on the back; keep in mind shift-usefront-space ALWAYS enables forth on a swyft)
316- Multple undumped firmware revisions exist (330 and 331 are dumped)
317
318// 74ls107 @ u18 pin 1 is 68008 /BERR pin
319
320// mc6850 @ u33 pin 2 (RX_DATA) is
321// mc6850 @ u33 pin 3 (RX_CLK) is 6522 @ u35 pin 17 (PB7)
322// mc6850 @ u33 pin 4 (TX_CLK) is 6522 @ u35 pin 17 (PB7)
323// mc6850 @ u33 pin 5 (/RTS) is
324// mc6850 @ u33 pin 6 (TX_DATA) is
325// mc6850 @ u33 pin 7 (/IRQ) is 68008 /IPL1 pin 41
326// mc6850 @ u33 pin 8 (CS0) is 68008 A12 pin 10
327// mc6850 @ u33 pin 9 (CS2) is DECODE E pin 18
328// mc6850 @ u33 pin 10 (CS1) is 68008 /BERR pin 40
329// mc6850 @ u33 pin 11 (RS) is 68008 A0 pin 46
330// mc6850 @ u33 pin 13 (R/W) is 68008 R/W pin 30
331// mc6850 @ u33 pin 14 (E) is 68008 E pin 38
332// mc6850 @ u33 pin 15-22 (D7-D0) are 68008 D7 to D0 pins 20-27
333// mc6850 @ u33 pin 23 (/DCD) is 74hc02 @ u35 pin 1
334// mc6850 @ u33 pin 24 (/CTS) is N/C?
335
336// 6522 @ u34:
337// pin 2 (PA0) :
338// pin 3 (PA1) :
339// pin 4 (PA2) :
340// pin 5 (PA3) :
341// pin 6 (PA4) :
342// pin 7 (PA5) :
343// pin 8 (PA6) :
344// pin 9 (PA7) :
345// pin 10 (PB0) :
346// pin 11 (PB1) :
347// pin 12 (PB2) :
348// pin 13 (PB3) :
349// pin 14 (PB4) :
350// pin 15 (PB5) :
351// pin 16 (PB6) :
352// pin 17 (PB7) :
353// pin 18 (CB1) : ?from/to? Floppy connector j3 pin 8
354// pin 19 (CB2) : ?from/to? 6522 @ u35 pin 16 (PB6)
355// pin 21 (/IRQ) : out to 68008 /IPL1 pin 41
356// pin 22 (R/W) : in from 68008 R/W pin 30
357// pin 23 (/CS2) : in from DECODE E pin 18
358// pin 24 (CS1) : in from 68008 A13 pin 11
359// pin 25 (Phi2) : in from 68008 E pin 38
360// pins 26-33 : in/out from/to 68008 D7 to D0 pins 20-27
361// pin 34 (/RES) : in from 68008 /RESET pin 37 AND 68008 /HALT pin 36
362// pins 35-38 (RS3-RS0) are 68008 A9-A6 pins 7-4
363// pin 39 (CA2) is through inductor L11 and resistor r128 to peripheral connector pin 35 <end minus 26>
364// pin 40 (CA1) is through inductor L30 and resistor r138 to peripheral connector pin 53 <end minus 8>
365
366// 6522 @ u35
367// pin 2 (PA0) :
368// pin 3 (PA1) :
369// pin 4 (PA2) :
370// pin 5 (PA3) :
371// pin 6 (PA4) :
372// pin 7 (PA5) :
373// pin 8 (PA6) :
374// pin 9 (PA7) :
375// pin 10 (PB0) :
376// pin 11 (PB1) : in from 74hc02 @ u36 pin 4
377// pin 12 (PB2) :
378// pin 13 (PB3) :
379// pin 14 (PB4) :
380// pin 15 (PB5) :
381// pin 16 (PB6) : 6522 @ u34 pin 19 (CB2)
382// pin 17 (PB7) : mc6850 @ u33 pins 3 and 4 (RX_CLK, TX_CLK)
383// pin 18 (CB1) : ds1489an @ u45 pin 11
384// pin 19 (CB2) : mn4053b @ u40 pin 11 and mc14412 @ u41 pin 10
385// pin 21 (/IRQ) : out to 68008 /IPL1 pin 41
386// pin 22 (R/W) : in from 68008 R/W pin 30
387// pin 23 (/CS2) : in from DECODE E pin 18
388// pin 24 (CS1) : in from 68008 A14 pin 12
389// pin 25 (Phi2) : in from 68008 E pin 38
390// pins 26-33 : in/out from/to 68008 D7 to D0 pins 20-27
391// pin 34 (/RES) : in from 68008 /RESET pin 37 AND 68008 /HALT pin 36
392// pins 35-38 (RS3-RS0) : in from 68008 A9-A6 pins 7-4
393// pin 39 (CA2) : out to 74HCT34 pin 11 (CLK) (keyboard column latch)
394// pin 40 (CA1) : out? to? ds1489an @ u45 pin 8
395
396// 74hc02 @ u36:
397// pin 1 (Y1) : out to mc6850 @ u33 pin 23 /DCD
398// pin 2 (A1) : in from (2 places: resistor R58 to ua339 @ u38 pin 4 (In1-)) <where does this actually come from? modem offhook?>
399// pin 3 (B1) : in from mn4053b @ u40  pin 10 <probably from rs232>
400// pin 4 (Y2) : out to 6522 @u35 pin 11
401// pin 5 (A2) : in from 4N37 @ u48 pin 5 (output side emitter pin) (tied via R189 to gnd) <ring indicator?>
402// pin 6 (B2) : in from 4N37 @ u48 pin 5 (output side emitter pin) (tied via R189 to gnd) <ring indicator?>
403// pin 8 (B3) :
404// pin 9 (A3) :
405// pin 10 (Y3) :
406// pin 11 (B4) : in from 68008 A15
407// pin 12 (A4) : in from 68008 A15
408// pin 13 (Y4) : out to EPROM @ U31 /CE
409
410191****************************************************************************/
411192
412193// Defines
r249893r249894
445226#include "cpu/m68000/m68000.h"
446227#include "machine/clock.h"
447228#include "machine/mc68681.h"
448#include "machine/6850acia.h"
449#include "machine/6522via.h"
450229#include "machine/nvram.h"
451230#include "sound/speaker.h"
452231#include "bus/centronics/ctronics.h"
r249893r249894
467246      m_duart(*this, "duartn68681"),
468247      m_ctx(*this, "ctx"),
469248      m_ctx_data_out(*this, "ctx_data_out"),
470      m_acia6850(*this, "acia6850"),
471      m_via0(*this, "via6522_0"),
472      m_via1(*this, "via6522_1"),
473249      m_speaker(*this, "speaker"),
474250      m_svram(*this, "svram"), // nvram
475251      m_p_cat_videoram(*this, "p_cat_vram"),
476      m_p_swyft_videoram(*this, "p_swyft_vram"),
477252      m_y0(*this, "Y0"),
478253      m_y1(*this, "Y1"),
479254      m_y2(*this, "Y2"),
r249893r249894
487262
488263   required_device<cpu_device> m_maincpu;
489264   //optional_device<nvram_device> m_nvram;
490   optional_device<mc68681_device> m_duart; // only cat uses this
491   optional_device<centronics_device> m_ctx;
492   optional_device<output_latch_device> m_ctx_data_out;
493   optional_device<acia6850_device> m_acia6850; // only swyft uses this
494   optional_device<via6522_device> m_via0; // only swyft uses this
495   optional_device<via6522_device> m_via1; // only swyft uses this
496   optional_device<speaker_sound_device> m_speaker;
497   optional_shared_ptr<UINT16> m_svram;
498   optional_shared_ptr<UINT16> m_p_cat_videoram;
499   optional_shared_ptr<UINT8> m_p_swyft_videoram;
500   optional_ioport m_y0;
501   optional_ioport m_y1;
502   optional_ioport m_y2;
503   optional_ioport m_y3;
504   optional_ioport m_y4;
505   optional_ioport m_y5;
506   optional_ioport m_y6;
507   optional_ioport m_y7;
508   optional_ioport m_dipsw;
265   required_device<mc68681_device> m_duart;
266   required_device<centronics_device> m_ctx;
267   required_device<output_latch_device> m_ctx_data_out;
268   required_device<speaker_sound_device> m_speaker;
269   required_shared_ptr<UINT16> m_svram;
270   required_shared_ptr<UINT16> m_p_cat_videoram;
271   required_ioport m_y0;
272   required_ioport m_y1;
273   required_ioport m_y2;
274   required_ioport m_y3;
275   required_ioport m_y4;
276   required_ioport m_y5;
277   required_ioport m_y6;
278   required_ioport m_y7;
279   required_ioport m_dipsw;
509280   emu_timer *m_keyboard_timer;
510281   emu_timer *m_6ms_timer;
511282
r249893r249894
513284   DECLARE_MACHINE_RESET(cat);
514285   DECLARE_VIDEO_START(cat);
515286   DECLARE_DRIVER_INIT(cat);
516   DECLARE_MACHINE_START(swyft);
517   DECLARE_MACHINE_RESET(swyft);
518   DECLARE_VIDEO_START(swyft);
519287
520288   UINT32 screen_update_cat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
521   UINT32 screen_update_swyft(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
522289
523290   DECLARE_WRITE_LINE_MEMBER(cat_duart_irq_handler);
524291   DECLARE_WRITE_LINE_MEMBER(cat_duart_txa);
r249893r249894
547314   DECLARE_READ16_MEMBER(cat_0080_r);
548315   DECLARE_READ16_MEMBER(cat_0000_r);
549316
550   DECLARE_READ8_MEMBER(swyft_d0000);
551317
552   DECLARE_READ8_MEMBER(swyft_via0_r);
553   DECLARE_WRITE8_MEMBER(swyft_via0_w);
554   DECLARE_READ8_MEMBER(via0_pa_r);
555   DECLARE_WRITE8_MEMBER(via0_pa_w);
556   DECLARE_WRITE_LINE_MEMBER(via0_ca2_w);
557   DECLARE_READ8_MEMBER(via0_pb_r);
558   DECLARE_WRITE8_MEMBER(via0_pb_w);
559   DECLARE_WRITE_LINE_MEMBER(via0_cb1_w);
560   DECLARE_WRITE_LINE_MEMBER(via0_cb2_w);
561   DECLARE_WRITE_LINE_MEMBER(via0_int_w);
562
563   DECLARE_READ8_MEMBER(swyft_via1_r);
564   DECLARE_WRITE8_MEMBER(swyft_via1_w);
565   DECLARE_READ8_MEMBER(via1_pa_r);
566   DECLARE_WRITE8_MEMBER(via1_pa_w);
567   DECLARE_WRITE_LINE_MEMBER(via1_ca2_w);
568   DECLARE_READ8_MEMBER(via1_pb_r);
569   DECLARE_WRITE8_MEMBER(via1_pb_w);
570   DECLARE_WRITE_LINE_MEMBER(via1_cb1_w);
571   DECLARE_WRITE_LINE_MEMBER(via1_cb2_w);
572   DECLARE_WRITE_LINE_MEMBER(via1_int_w);
573
574   DECLARE_WRITE_LINE_MEMBER(write_acia_clock);
575
576318   /* gate array 2 has a 16-bit counter inside which counts at 10mhz and
577319      rolls over at FFFF->0000; on roll-over (or likely at FFFF terminal count)
578320      it triggers the KTOBF output. It does this every 6.5535ms, which causes
r249893r249894
1136878   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('\xb1') PORT_CHAR('\xb0') // PORT_CHAR('\\') PORT_CHAR('~')
1137879INPUT_PORTS_END
1138880
1139static INPUT_PORTS_START( swyft )
1140// insert dwight and sandy's swyft keyboard map here once we figure out the byte line order
1141INPUT_PORTS_END
1142881
1143
1144882void cat_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
1145883{
1146884   switch (id)
r249893r249894
13341072   MCFG_NVRAM_ADD_0FILL("nvram")
13351073MACHINE_CONFIG_END
13361074
1337
1338/* Swyft Memory map, based on watching the infoapp roms do their thing:
133968k address map:
1340(a23,a22,a21,a20 lines don't exist on the 68008 so are considered unconnected)
1341a23 a22 a21 a20 a19 a18 a17 a16 a15 a14 a13 a12 a11 a10 a9  a8  a7  a6  a5  a4  a3  a2  a1  a0
1342x   x   x   x   0   0   ?   ?   0   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *        R   ROM-LO (/LOCE is 0, /HICE is 1)
1343x   x   x   x   0   0   ?   ?   1   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *        R   ROM-HI (/LOCE is 1, /HICE is 0)
1344x   x   x   x   0   1   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   a        RW  RAM
1345x   x   x   x   1   1  ?0? ?1?  ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   *   *   *   *        R   ? status of something? floppy?
1346x   x   x   x   1   1  ?1? ?0?  ?   0   0   1   x   x   x   x   x   x   x   x   x   x   x   *        RW  6850 acia @U33, gets 0x55 steadystate and 0x57 written to it to reset it
1347x   x   x   x   1   1  ?1? ?0?  ?   0   1   0   x   x   *   *   *   *   x   x   x   x   x   x        RW  Parallel VIA 0 @ U34
1348x   x   x   x   1   1  ?1? ?0?  ?   1   0   0   x   x   *   *   *   *   x   x   x   x   x   x        RW  Keyboard VIA 1 @ U35
1349              ^               ^               ^               ^               ^
1350
1351*/
1352
1353/* Swyft rom and ram notes:
1354rom:
1355**Vectors:
13560x0000-0x0003: SP boot vector
13570x0004-0x0007: PC boot vector
1358**unknown:
13590x0009-0x00BF: ? table
13600x00C0-0x01DF: ? table
13610x01E0-0x02DF: ? table (may be part of next table)
13620x02E0-0x03DF: ? table
13630x03E0-0x0B3F: int16-packed jump table (expanded to int32s at ram at 0x46000-0x46EC0 on boot)
13640x0B40-0x0E83: ? function index tables?
13650x0E84-0x1544: binary code (purpose?)
13660x1545-0x24CF: ?
1367**Fonts:
13680x24D0-0x254F: ? (likely font 1 width lookup table)
13690x2550-0x2BCF: Font 1 data
13700x2BD0-0x2C4F: ? (likely font 2 width lookup table)
13710x2C50-0x32CF: Font 2 data
1372**unknown?:
13730x32D0-0x360F: String data (and control codes?)
13740x3610-0x364F: ? fill (0x03 0xe8)
13750x3650-0x369F: ? fill (0x03 0x20)
13760x36A0-0x384d: ? forth code?
13770x384e-0x385d: Lookup table for phone keypad
13780x385e-...: ?
1379...-0xC951: ?
13800xC952: boot vector
13810xC952-0xCAAE: binary code (purpose?)
1382    0xCD26-0xCD3B: ?init forth bytecode?
13830xCD3C-0xCEBA: 0xFF fill (unused?)
13840xCEEB-0xFFFE: Forth dictionaries for compiling, with <word> then <3 bytes> afterward? (or before it? most likely afterward)
1385
1386ram: (system dram ranges from 0x40000-0x7FFFF)
13870x40000-0x425CF - the screen display ram
1388(?0x425D0-0x44BA0 - ?unknown (maybe screen ram page 2?))
13890x44DC6 - SP vector
13900x46000-0x46EC0 - jump tables to instructions for ? (each forth word?)
1391
1392
1393on boot:
1394copy/expand packed rom short words 0x3E0-0xB3F to long words at 0x46000-0x46EC0
1395copy 0x24f longwords of zero beyond that up to 0x47800
1396CD26->A5 <?pointer to init stream function?>
139744DC6->A7 <reset SP... why it does this twice, once by the vector and once here, i'm gonna guess has to do with running the code in a debugger or on a development daughterboard like the cat had, where the 68008 wouldn't get explicitly reset>
139844F2A->A6 <?pointer to work ram space?>
1399EA2->A4 <?function>
1400E94->A3 <?function>
1401EAE->A2 <?function>
140241800->D7 <?forth? opcode index base; the '1800' portion gets the opcode type added to it then is multiplied by 4 to produce the jump table offset within the 0x46000-0x46EC0 range>
140346e3c->D4 <?pointer to more work ram space?>
1404CD22->D5 <?pointer to another function?>
1405write 0xFFFF to d0004.l
1406jump to A4(EA2)
1407
1408read first stream byte (which is 0x03) from address pointed to by A5 (which is CD26), inc A5, OR the opcode (0x03) to D7
1409 (Note: if the forth opcodes are in order in the dictionary, then 0x03 is "!char" which is used to read a char from an arbitrary address)
1410copy D7 to A0
1411Add A0 low word to itself
1412Add A0 low word to itself again
1413move the long word from address pointed to by A0 (i.e. the specific opcode's area at the 46xxx part of ram) to A1
1414Jump to A1(11A4)
1415
141611A4: move 41b00 to D0 (select an opcode "page" 1bxx)
1417jump to 118E
1418
1419118E: read next stream byte (in this case, 0x8E) from address pointed to by A5 (which is CD27), inc A5, OR the opcode (0x8e) to D7
1420add to 41b00 in d0, for 41b8E
1421Add A0 low word to itself
1422Add A0 low word to itself again
1423move the long word from address pointed to by A0 (i.e. the specific opcode's area at the 46xxx part of ram) to A1
1424Jump to A1(CD06)
1425
1426CD06: jump to A3 (E94)
1427
1428E94: subtract D5 from A5 (cd28 - cd22 = 0x0006)
1429write 6 to address @A5(44f28) and decrement A5
1430write D4(46e3c) to address @a6(44f26) and decrement a5
1431lea ($2, A1), A5 - i.e. increment A1 by 2, and write that to A5, so write CD06+2=CD08 to A5
1432A1->D5
1433A0->D4
1434read next stream byte (in this case, 0x03) from address pointed to by A5 (which is CD08), inc A5, OR the opcode (0x03) to D7
1435
1436*/
1437
1438static ADDRESS_MAP_START(swyft_mem, AS_PROGRAM, 8, cat_state)
1439   ADDRESS_MAP_UNMAP_HIGH
1440   AM_RANGE(0x000000, 0x00ffff) AM_ROM AM_MIRROR(0xF00000) // 64 KB ROM
1441   AM_RANGE(0x040000, 0x07ffff) AM_RAM AM_MIRROR(0xF00000) AM_SHARE("p_swyft_vram") // 256 KB RAM
1442   AM_RANGE(0x0d0000, 0x0d000f) AM_READ(swyft_d0000) AM_MIRROR(0xF00000) // status of something? reads from d0000, d0004, d0008, d000a, d000e
1443   AM_RANGE(0x0e1000, 0x0e1000) AM_DEVWRITE("acia6850", acia6850_device, control_w) AM_MIRROR(0xF00000) // 6850 ACIA lives here
1444   AM_RANGE(0x0e2000, 0x0e2fff) AM_READWRITE(swyft_via0_r, swyft_via0_w) AM_MIRROR(0xF00000)// io area with selector on a9 a8 a7 a6?
1445   AM_RANGE(0x0e4000, 0x0e4fff) AM_READWRITE(swyft_via1_r, swyft_via1_w) AM_MIRROR(0xF00000)
1446ADDRESS_MAP_END
1447
1448MACHINE_START_MEMBER(cat_state,swyft)
1449{
1450   m_via0->write_ca1(1);
1451   m_via0->write_ca2(1);
1452   m_via0->write_cb1(1);
1453   m_via0->write_cb2(1);
1454
1455   m_via1->write_ca1(1);
1456   m_via1->write_ca2(1);
1457   m_via1->write_cb1(1);
1458   m_via1->write_cb2(1);
1459}
1460
1461MACHINE_RESET_MEMBER(cat_state,swyft)
1462{
1463}
1464
1465VIDEO_START_MEMBER(cat_state,swyft)
1466{
1467}
1468
1469UINT32 cat_state::screen_update_swyft(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1470{
1471   UINT16 code;
1472   int y, x, b;
1473
1474   int addr = 0;
1475   for (y = 0; y < 242; y++)
1476   {
1477      int horpos = 0;
1478      for (x = 0; x < 40; x++)
1479      {
1480         code = m_p_swyft_videoram[addr++];
1481         for (b = 7; b >= 0; b--)
1482         {
1483            bitmap.pix16(y, horpos++) = (code >> b) & 0x01;
1484         }
1485      }
1486   }
1487   return 0;
1488}
1489
1490READ8_MEMBER( cat_state::swyft_d0000 )
1491{
1492   // wtf is this supposed to be?
1493   UINT8 byte = 0xFF; // ?
1494   logerror("mystery device: read from 0x%5X, returning %02X\n", offset+0xD0000, byte);
1495   return byte;
1496}
1497
1498
1499// if bit is 1 enable: (obviously don't set more than one bit or you get bus contention!)
1500//                                           acia
1501//                                       via0
1502//                                    via1
1503// x   x   x   x   1   1  ?1? ?0?  ?   ^   ^   ^   ?   ?   *   *   *   *  ?*?  ?   ?   ?   ?   ?
1504//                                                         ^   ^   ^   ^  <- these four bits address the VIA registers? is this correct?
1505static const char *const swyft_via_regnames[] = { "0: ORB/IRB", "1: ORA/IRA", "2: DDRB", "3: DDRA", "4: T1C-L", "5: T1C-H", "6: T1L-L", "7: T1L-H", "8: T2C-L" "9: T2C-H", "A: SR", "B: ACR", "C: PCR", "D: IFR", "E: IER", "F: ORA/IRA*" };
1506
1507READ8_MEMBER( cat_state::swyft_via0_r )
1508{
1509   if (offset&0x000C3F) fprintf(stderr,"VIA0: read from invalid offset in 68k space: %06X!\n", offset);
1510   UINT8 data = m_via0->read(space, (offset>>6)&0xF);
1511#ifdef DEBUG_SWYFT_VIA0
1512   logerror("VIA0 register %s read by cpu: returning %02x\n", swyft_via_regnames[(offset>>5)&0xF], data);
1513#endif
1514   return data;
1515}
1516
1517WRITE8_MEMBER( cat_state::swyft_via0_w )
1518{
1519#ifdef DEBUG_SWYFT_VIA0
1520   logerror("VIA0 register %s written by cpu with data %02x\n", swyft_via_regnames[(offset>>5)&0xF], data);
1521#endif
1522   if (offset&0x000C3F) fprintf(stderr,"VIA0: write to invalid offset in 68k space: %06X, data: %02X!\n", offset, data);
1523   m_via1->write(space, (offset>>6)&0xF, data);
1524}
1525
1526READ8_MEMBER( cat_state::swyft_via1_r )
1527{
1528   if (offset&0x000C3F) fprintf(stderr," VIA1: read from invalid offset in 68k space: %06X!\n", offset);
1529   UINT8 data = m_via1->read(space, (offset>>6)&0xF);
1530#ifdef DEBUG_SWYFT_VIA1
1531   logerror(" VIA1 register %s read by cpu: returning %02x\n", swyft_via_regnames[(offset>>5)&0xF], data);
1532#endif
1533   return data;
1534}
1535
1536WRITE8_MEMBER( cat_state::swyft_via1_w )
1537{
1538#ifdef DEBUG_SWYFT_VIA1
1539   logerror(" VIA1 register %s written by cpu with data %02x\n", swyft_via_regnames[(offset>>5)&0xF], data);
1540#endif
1541   if (offset&0x000C3F) fprintf(stderr," VIA1: write to invalid offset in 68k space: %06X, data: %02X!\n", offset, data);
1542   m_via0->write(space, (offset>>6)&0xF, data);
1543}
1544
1545// first via
1546READ8_MEMBER( cat_state::via0_pa_r )
1547{
1548   logerror("VIA0: Port A read!\n");
1549   return 0xFF;
1550}
1551
1552WRITE8_MEMBER( cat_state::via0_pa_w )
1553{
1554   logerror("VIA0: Port A written with data of 0x%02x!\n", data);
1555}
1556
1557WRITE_LINE_MEMBER ( cat_state::via0_ca2_w )
1558{
1559   logerror("VIA0: CA2 written with %d!\n", state);
1560}
1561
1562READ8_MEMBER( cat_state::via0_pb_r )
1563{
1564   logerror("VIA0: Port B read!\n");
1565   return 0xFF;
1566}
1567
1568WRITE8_MEMBER( cat_state::via0_pb_w )
1569{
1570   logerror("VIA0: Port B written with data of 0x%02x!\n", data);
1571}
1572
1573WRITE_LINE_MEMBER ( cat_state::via0_cb1_w )
1574{
1575   logerror("VIA0: CB1 written with %d!\n", state);
1576}
1577
1578WRITE_LINE_MEMBER ( cat_state::via0_cb2_w )
1579{
1580   logerror("VIA0: CB2 written with %d!\n", state);
1581}
1582
1583WRITE_LINE_MEMBER ( cat_state::via0_int_w )
1584{
1585   logerror("VIA0: INT output set to %d!\n", state);
1586}
1587
1588// second via
1589READ8_MEMBER( cat_state::via1_pa_r )
1590{
1591   logerror(" VIA1: Port A read!\n");
1592   return 0xFF;
1593}
1594
1595WRITE8_MEMBER( cat_state::via1_pa_w )
1596{
1597   logerror(" VIA1: Port A written with data of 0x%02x!\n", data);
1598}
1599
1600WRITE_LINE_MEMBER ( cat_state::via1_ca2_w )
1601{
1602   logerror(" VIA1: CA2 written with %d!\n", state);
1603}
1604
1605READ8_MEMBER( cat_state::via1_pb_r )
1606{
1607   logerror(" VIA1: Port B read!\n");
1608   return 0xFF;
1609}
1610
1611WRITE8_MEMBER( cat_state::via1_pb_w )
1612{
1613   logerror(" VIA1: Port B written with data of 0x%02x!\n", data);
1614}
1615
1616WRITE_LINE_MEMBER ( cat_state::via1_cb1_w )
1617{
1618   logerror(" VIA1: CB1 written with %d!\n", state);
1619}
1620
1621WRITE_LINE_MEMBER ( cat_state::via1_cb2_w )
1622{
1623   logerror(" VIA1: CB2 written with %d!\n", state);
1624}
1625
1626WRITE_LINE_MEMBER ( cat_state::via1_int_w )
1627{
1628   logerror(" VIA1: INT output set to %d!\n", state);
1629}
1630
1631WRITE_LINE_MEMBER( cat_state::write_acia_clock )
1632{
1633   m_acia6850->write_txc(state);
1634   m_acia6850->write_rxc(state);
1635}
1636
1637static MACHINE_CONFIG_START( swyft, cat_state )
1638
1639   /* basic machine hardware */
1640   MCFG_CPU_ADD("maincpu",M68008, XTAL_15_8976MHz/2) //MC68008P8, Y1=15.8976Mhz, clock GUESSED at Y1 / 2
1641   MCFG_CPU_PROGRAM_MAP(swyft_mem)
1642
1643   MCFG_MACHINE_START_OVERRIDE(cat_state,swyft)
1644   MCFG_MACHINE_RESET_OVERRIDE(cat_state,swyft)
1645
1646   /* video hardware */
1647   MCFG_SCREEN_ADD("screen", RASTER)
1648   MCFG_SCREEN_REFRESH_RATE(50)
1649   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
1650   MCFG_SCREEN_SIZE(320, 242)
1651   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 242-1)
1652   MCFG_SCREEN_UPDATE_DRIVER(cat_state, screen_update_swyft)
1653   MCFG_SCREEN_PALETTE("palette")
1654
1655   MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
1656
1657   MCFG_VIDEO_START_OVERRIDE(cat_state,swyft)
1658
1659   MCFG_DEVICE_ADD("acia6850", ACIA6850, 0)
1660   // acia rx and tx clocks come from one of the VIA pins and are tied together, fix this below? acia e clock comes from 68008
1661   MCFG_DEVICE_ADD("acia_clock", CLOCK, (XTAL_15_8976MHz/2)/5) // out e clock from 68008, ~ 10in clocks per out clock
1662   MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(cat_state, write_acia_clock))
1663
1664   MCFG_DEVICE_ADD("via6522_0", VIA6522, (XTAL_15_8976MHz/2)/5) // out e clock from 68008
1665   MCFG_VIA6522_READPA_HANDLER(READ8(cat_state, via0_pa_r))
1666   MCFG_VIA6522_READPB_HANDLER(READ8(cat_state, via0_pb_r))
1667   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(cat_state, via0_pa_w))
1668   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(cat_state, via0_pb_w))
1669   MCFG_VIA6522_CB1_HANDLER(WRITELINE(cat_state, via0_cb1_w))
1670   MCFG_VIA6522_CA2_HANDLER(WRITELINE(cat_state, via0_ca2_w))
1671   MCFG_VIA6522_CB2_HANDLER(WRITELINE(cat_state, via0_cb2_w))
1672   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(cat_state, via0_int_w))
1673
1674   MCFG_DEVICE_ADD("via6522_1", VIA6522, (XTAL_15_8976MHz/2)/5) // out e clock from 68008
1675   MCFG_VIA6522_READPA_HANDLER(READ8(cat_state, via1_pa_r))
1676   MCFG_VIA6522_READPB_HANDLER(READ8(cat_state, via1_pb_r))
1677   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(cat_state, via1_pa_w))
1678   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(cat_state, via1_pb_w))
1679   MCFG_VIA6522_CB1_HANDLER(WRITELINE(cat_state, via1_cb1_w))
1680   MCFG_VIA6522_CA2_HANDLER(WRITELINE(cat_state, via1_ca2_w))
1681   MCFG_VIA6522_CB2_HANDLER(WRITELINE(cat_state, via1_cb2_w))
1682   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(cat_state, via1_int_w))
1683MACHINE_CONFIG_END
1684
1685/* ROM definition */
1686ROM_START( swyft )
1687   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
1688   ROM_SYSTEM_BIOS( 0, "v331", "IAI Swyft Version 331 Firmware")
1689   ROMX_LOAD( "331-lo.u30", 0x0000, 0x8000, CRC(d6cc2e2f) SHA1(39ff26c18b1cf589fc48793263f280ef3780cc61), ROM_BIOS(1))
1690   ROMX_LOAD( "331-hi.u31", 0x8000, 0x8000, CRC(4677630a) SHA1(8845d702fa8b8e1a08352f4c59d3076cc2e1307e), ROM_BIOS(1))
1691   /* this version of the swyft code identifies itself at 0x3FCB as version 330 */
1692   ROM_SYSTEM_BIOS( 1, "v330", "IAI Swyft Version 330 Firmware")
1693   ROMX_LOAD( "infoapp.lo.u30", 0x0000, 0x8000, CRC(52c1bd66) SHA1(b3266d72970f9d64d94d405965b694f5dcb23bca), ROM_BIOS(2))
1694   ROMX_LOAD( "infoapp.hi.u31", 0x8000, 0x8000, CRC(83505015) SHA1(693c914819dd171114a8c408f399b56b470f6be0), ROM_BIOS(2))
1695   ROM_REGION( 0x4000, "pals", ROMREGION_ERASEFF )
1696   /* Swyft PALs:
1697    * The Swyft has four PALs, whose rough function can be derived from their names:
1698    * TIMING - state machine for DRAM refresh/access; handles ras/cas and choosing whether the video out shifter or the 68k is accessing ram. also divides clock
1699    * DECODE - address decoder for the 68008
1700    * VIDEO - state machine for the video shifter (and vblank/hblank?)
1701    * DISK 3.5 - state machine for the floppy drive interface
1702    */
1703   /* U9: Timing AMPAL16R4
1704    *
1705    * pins:
1706    * 111111111000000000
1707    * 987654321987654321
1708    * ??QQQQ??EIIIIIIIIC
1709    * |||||||||||||||||\-< /CK input - 15.8976mhz crystal and transistor oscillator
1710    * ||||||||||||||||\--< ?
1711    * |||||||||||||||\---< ?
1712    * ||||||||||||||\----< ?
1713    * |||||||||||||\-----< ?<also input to decode pal pin 1, video pal pin 1, source is ?>
1714    * ||||||||||||\------< ?
1715    * |||||||||||\-------< ?
1716    * ||||||||||\--------< ?
1717    * |||||||||\---------< ?
1718    * ||||||||\----------< /OE input - shorted to GND
1719    * |||||||\-----------? ?
1720    * ||||||\------------? ?
1721    * |||||\------------Q> /ROM_OE (to both eproms through jumper b1 and optionally j9 connector)
1722    * ||||\-------------Q? ?
1723    * |||\--------------Q? ?
1724    * ||\---------------Q> output to decode pal pin 2
1725    * |\----------------->? output? to ram multiplexer 'A' pins
1726    * \------------------< ?
1727    */
1728   ROM_LOAD( "timing_b.ampal16r4a.u9.jed", 0x0000, 0xb08, CRC(643e6e83) SHA1(7db167883f9d6cf385ce496d08976dc16fc3e2c3))
1729   /* U20: Decode AMPAL16L8
1730    *
1731    * pins:
1732    * 111111111000000000
1733    * 987654321987654321
1734    * O??????OIIIIIIIIII
1735    * |||||||||||||||||\-< TIMING PAL pin 5
1736    * ||||||||||||||||\--< TIMING PAL pin 17
1737    * |||||||||||||||\---< 68008 R/W (pin 30)
1738    * ||||||||||||||\----< 68008 /DS (pin 29)
1739    * |||||||||||||\-----< 68008 E (pin 38)
1740    * ||||||||||||\------< 68008 A19
1741    * |||||||||||\-------< 68008 A18
1742    * ||||||||||\--------< 68008 A17
1743    * |||||||||\---------< 68008 A16
1744    * ||||||||\----------< ?
1745    * |||||||\-----------> ?
1746    * ||||||\------------? 68008 /VPA (pin 39)
1747    * |||||\-------------> /ROM_OE (to both eproms through jumper b1 and optionally j9 connector)
1748    * ||||\--------------? ?
1749    * |||\---------------? ?
1750    * ||\----------------? ?
1751    * |\-----------------? goes to j9 connector pin 5
1752    * \------------------< ?
1753    */
1754   ROM_LOAD( "decode_e.ampal16l8.u20.jed", 0x1000, 0xb08, CRC(0b1dbd76) SHA1(08c144ad7a7bbdd53eefd271b2f6813f8b3b1594))
1755   ROM_LOAD( "video_2b.ampal16r4.u25.jed", 0x2000, 0xb08, CRC(caf91148) SHA1(3f8ddcb512a1c05395c74ad9a6ba7b87027ce4ec))
1756   ROM_LOAD( "disk_3.5c.ampal16r4.u28.jed", 0x3000, 0xb08, CRC(fd994d02) SHA1(f910ab16587dd248d63017da1e5b37855e4c1a0c))
1757ROM_END
1758
17591075ROM_START( cat )
17601076   ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASEFF )
17611077   // SYS ROM
r249893r249894
18391155/* Driver */
18401156
18411157/*    YEAR  NAME  PARENT  COMPAT   MACHINE    INPUT    DEVICE         INIT     COMPANY   FULLNAME       FLAGS */
1842COMP( 1985, swyft,0,      0,       swyft,     swyft,   driver_device, 0,       "Information Applicance Inc", "Swyft", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
1843COMP( 1987, cat,  swyft,  0,       cat,       cat,     driver_device, 0,       "Canon",  "Cat", MACHINE_NOT_WORKING)
1158COMP( 1987, cat,  0,  0,       cat,       cat,     driver_device, 0,       "Canon",  "Cat", MACHINE_NOT_WORKING)
trunk/src/mame/drivers/champbas.c
r249893r249894
40407001      8910 control
41418ff0-8fff sprites
4242a000      ?
43a006      MCU HALT controll
43a006      MCU HALT control
4444a007      NOP (MCU shared RAM switch)
4545a060-a06f sprites
4646a080      command for the sound CPU
r249893r249894
8686#include "emu.h"
8787#include "cpu/z80/z80.h"
8888#include "cpu/alph8201/alph8201.h"
89//#include "cpu/hmcs40/hmcs40.h"
8990#include "sound/ay8910.h"
9091#include "sound/dac.h"
9192#include "includes/champbas.h"
r249893r249894
567568
568569/*************************************
569570 *
570 *  Machine driver
571 *  Machine drivers
571572 *
572573 *************************************/
573574
r249893r249894
581582MACHINE_START_MEMBER(champbas_state,exctsccr)
582583{
583584   // FIXME
585   // I dun wanna
584586   machine().scheduler().timer_pulse(attotime::from_hz(75), timer_expired_delegate(FUNC(champbas_state::exctsccr_fm_callback),this)); /* updates fm */
585587
586588   MACHINE_START_CALL_MEMBER(champbas);
r249893r249894
595597
596598INTERRUPT_GEN_MEMBER(champbas_state::vblank_irq)
597599{
598   if(m_irq_mask)
600   if (m_irq_mask)
599601      device.execute().set_input_line(0, ASSERT_LINE);
600602}
601603
r249893r249894
608610   MCFG_CPU_VBLANK_INT_DRIVER("screen", champbas_state,  vblank_irq)
609611
610612   /* MCU */
611   MCFG_CPU_ADD(CPUTAG_MCU, ALPHA8201, XTAL_18_432MHz/6/8)
613   MCFG_CPU_ADD("mcu", ALPHA8201, XTAL_18_432MHz/6/8)
612614   MCFG_CPU_PROGRAM_MAP(mcu_map)
613615
614616   MCFG_MACHINE_START_OVERRIDE(champbas_state,champbas)
r249893r249894
681683   /* basic machine hardware */
682684
683685   /* MCU */
684   MCFG_CPU_ADD(CPUTAG_MCU, ALPHA8201, XTAL_18_432MHz/6/8)
686   MCFG_CPU_ADD("mcu", ALPHA8201, XTAL_18_432MHz/6/8)
685687   MCFG_CPU_PROGRAM_MAP(mcu_map)
686688
687689   /* to MCU timeout champbbj */
r249893r249894
702704   MCFG_CPU_PERIODIC_INT_DRIVER(champbas_state, nmi_line_pulse,  4000) /* 4 kHz, updates the dac */
703705
704706   /* MCU */
705   MCFG_CPU_ADD(CPUTAG_MCU, ALPHA8301, XTAL_18_432MHz/6/8)     /* Actually 8302 */
707   MCFG_CPU_ADD("mcu", ALPHA8301, XTAL_18_432MHz/6/8)     /* Actually 8302 */
706708   MCFG_CPU_PROGRAM_MAP(mcu_map)
707709
708710   MCFG_MACHINE_START_OVERRIDE(champbas_state,exctsccr)
trunk/src/mame/drivers/cosmic.c
r249893r249894
978978static MACHINE_CONFIG_START( cosmic, cosmic_state )
979979
980980   /* basic machine hardware */
981   MCFG_CPU_ADD("maincpu", Z80,Z80_MASTER_CLOCK/6) /* 1.8026 MHz*/
981   MCFG_CPU_ADD("maincpu", Z80,Z80_MASTER_CLOCK/6) /* 1.8026 MHz */
982982
983983   MCFG_MACHINE_START_OVERRIDE(cosmic_state,cosmic)
984984   MCFG_MACHINE_RESET_OVERRIDE(cosmic_state,cosmic)
r249893r249894
10991099static MACHINE_CONFIG_DERIVED( magspot, cosmic )
11001100
11011101   /* basic machine hardware */
1102   MCFG_CPU_MODIFY("maincpu")
1102   MCFG_CPU_REPLACE("maincpu", Z80, Z80_MASTER_CLOCK/4) /* 2.704 MHz, verified via schematics */
11031103   MCFG_CPU_PROGRAM_MAP(magspot_map)
11041104
11051105   /* video hardware */
trunk/src/mame/drivers/dec0.c
r249893r249894
16311631   MCFG_SOUND_MODIFY("ym2")
16321632   MCFG_YM3812_IRQ_HANDLER(WRITELINE(dec0_state, sound_irq))
16331633   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
1634
1635   // bootleg doesn't seem to support row/col scroll (or enable is different)
1636//   MCFG_DEVICE_MODIFY("tilegen1")
1637//   MCFG_BAC06_BOOTLEG_DISABLE_16x16
1638//   MCFG_BAC06_BOOTLEG_DISABLE_RC_SCROLL
1639   MCFG_DEVICE_MODIFY("tilegen2")
1640//   MCFG_BAC06_BOOTLEG_DISABLE_8x8
1641   MCFG_BAC06_BOOTLEG_DISABLE_RC_SCROLL
1642   MCFG_DEVICE_MODIFY("tilegen3")
1643//   MCFG_BAC06_BOOTLEG_DISABLE_8x8
1644   MCFG_BAC06_BOOTLEG_DISABLE_RC_SCROLL
1645
16341646MACHINE_CONFIG_END
16351647
16361648/******************************************************************************/
trunk/src/mame/drivers/ec184x.c
r249893r249894
1818#include "cpu/i86/i86.h"
1919#include "machine/ram.h"
2020
21#define EC1841_MEMBOARD_SIZE   512*1024
21#define EC1841_MEMBOARD_SIZE   (512*1024)
2222
2323#define VERBOSE_DBG 1       /* general debug messages */
2424
r249893r249894
4343
4444   required_device<cpu_device> m_maincpu;
4545
46   DECLARE_MACHINE_RESET(ec184x);
46   DECLARE_MACHINE_RESET(ec1841);
4747   DECLARE_DRIVER_INIT(ec1841);
4848
4949   struct {
r249893r249894
7979   UINT8 data;
8080
8181   data = offset % 4;
82   if (data > m_memory.boards)
82   if (data >= m_memory.boards)
8383      data = 0xff;
8484   else
8585      data = m_memory.enable[data];
86   DBG_LOG(1,"ec1841_memboard",("R (%d of %d) == %02X\n", offset, m_memory.boards, data ));
86   DBG_LOG(1,"ec1841_memboard",("R (%d of %d) == %02X\n", offset+1, m_memory.boards, data ));
8787
8888   return data;
8989}
r249893r249894
9696
9797   current = m_memory.enable[offset];
9898
99   DBG_LOG(1,"ec1841_memboard",("W (%d of %d) <- %02X (%02X)\n", offset, m_memory.boards, data, current));
99   DBG_LOG(1,"ec1841_memboard",("W (%d of %d) <- %02X (%02X)\n", offset+1, m_memory.boards, data, current));
100100
101   if (offset > m_memory.boards) {
101   if (offset >= m_memory.boards) {
102102      return;
103103   }
104104
r249893r249894
140140   address_space &program = m_maincpu->space(AS_PROGRAM);
141141   ram_device *m_ram = machine().device<ram_device>(RAM_TAG);
142142
143   m_memory.boards = m_ram->size()/EC1841_MEMBOARD_SIZE - 1;
144   if (m_memory.boards > 3)
145      m_memory.boards = 3;
143   m_memory.boards = m_ram->size()/EC1841_MEMBOARD_SIZE;
144   if (m_memory.boards > 4)
145      m_memory.boards = 4;
146146
147147   // 640K configuration is special -- 512K board mapped at 0 + 128K board mapped at 512K
148148   // XXX verify this was actually the case
r249893r249894
157157   membank( "bank20" )->set_base( m_ram->pointer() );
158158}
159159
160MACHINE_RESET_MEMBER( ec184x_state, ec184x )
160MACHINE_RESET_MEMBER( ec184x_state, ec1841 )
161161{
162162   memset(m_memory.enable, 0, sizeof(m_memory.enable));
163163   // mark 1st board enabled
r249893r249894
255255   MCFG_CPU_IO_MAP(ec1841_io)
256256   MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb)
257257
258   MCFG_MACHINE_RESET_OVERRIDE(ec184x_state, ec184x)
258   MCFG_MACHINE_RESET_OVERRIDE(ec184x_state, ec1841)
259259
260260   MCFG_EC1841_MOTHERBOARD_ADD("mb", "maincpu")
261261   MCFG_DEVICE_INPUT_DEFAULTS(ec1841)
trunk/src/mame/drivers/gatron.c
r249893r249894
77
88  Games running on this hardware:
99
10  * Poker 4-1,  1983, Game-A-Tron.
11  * Pull Tabs,  1983, Game-A-Tron.
12  * Bingo,      1983, Game-A-Tron.
10  * Four In One Poker,  1983, Game-A-Tron.
11  * Pull Tabs,          1983, Game-A-Tron.
12  * Bingo,              1983, Game-A-Tron.
1313
1414
1515*****************************************************************************************
r249893r249894
6565
6666
6767  Identified the unknown writes as a init sequence for 1x PSG sound device.
68  The type/class is unknown due to almost all devices are plastic covered.
68  Is a SN76489/496 family device, and can't be identified accurately due to
69  almost all devices are plastic covered.
6970
7071
7172  * PCB 3: BINGO.
r249893r249894
132133  You must to RESET (F3) the machine to initialize the NVRAM properly.
133134
134135  NOTE: These games are intended to be for amusement only.
135  There is not such a payout system, so...Dont ask about it!
136  There is not such a payout system, so... Dont ask about it!
136137
137138
138  * Four in One Poker:
139  * Four In One Poker:
139140
140141  Pressing SERVICE 1 (key 9) you enter the Test/Settings Mode. You can test
141142  inputs there, and change all the game settings. Press "DISCARD 1" (key Z)
r249893r249894
186187  Press "LADY LUCK TICKET" (key X) to play with Lady Luck (center) Ticket.
187188  Press "BIG BAR TICKET" (key C) to play with Big Bar (right) Ticket.
188189
190  A curiosity...
191 
192  The Pull Tabs flyer shows the following paytable:
189193
194  - Super Star -      - Lady Luck -         - Big Bar -
195   3x Stars  75     3x Oranges     100     3x Bars     75
196   3x Hearts  8     3x Watermelons  25     3x Cherries 10
197   3x Cups    4     3x Horseshoes   10     3x Pears     6
198   3x Clubs   3     3x Licquors      5     3x Plums     4
199   3x Crowns  1     3x Bells         2     3x Bananas   2
200
201  ...but the game seems to have inverted objects importance:
202 
203  - Super Star -      - Lady Luck -         - Big Bar -
204   3x Crowns 75     3x Bells       100     3x Bananas  75
205   3x Clubs   8     3x Licquors     25     3x Plums    10
206   3x Cups    4     3x Horseshoes   10     3x Pears     6
207   3x Hearts  3     3x Watermelons   5     3x Cherries  4
208   3x Stars   1     3x Oranges       2     3x Bars      2
209 
210  Can't get an input or combination of them that change this logic.
211  Maybe the paytable is different in this set, or just the flyer doesn't
212  reflect the real thing.
213
214
190215  * Bingo:
191216
192217  Pressing SERVICE 1 (key 9) you enter the Test/Settings Mode. You can test
r249893r249894
244269
245270  DRIVER UPDATES:
246271
272  [2015-10-22]
273  - Added siren/alarm input to Pull Tabs, and beeps/alarm input
274     to Four In One Poker. All these are present in the Test Mode.
275     However, their functions aren't clear.
276  - Switched the PSG to SN76489, since it's present in the Bingo PCB.
277  - Added technical notes and more documentation.
278
247279  [2014-02-04]
248280  - Added Bingo (1983). PCB seems bootleg, but the game looks legit.
249281  - Worked from the scratch a whole set of inputs and button-lamps support for this game.
250  - Changed the poker41 description to Four in One Poker (as seen in the official brochure).
282  - Changed the poker41 description to Four In One Poker (as seen in the official brochure).
251283  - Added game and technical notes.
252284
253285  [2008-10-14]
r249893r249894
415447   AM_RANGE(0x0000, 0x5fff) AM_ROM
416448   AM_RANGE(0x6000, 0x63ff) AM_RAM_WRITE(gat_videoram_w) AM_SHARE("videoram")
417449   AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram")                          /* battery backed RAM */
418   AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("snsnd", sn76496_device, write)       /* PSG */
450   AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("snsnd", sn76489_device, write)       /* PSG */
419451   AM_RANGE(0xe000, 0xe000) AM_WRITE(output_port_0_w)                         /* lamps */
420452ADDRESS_MAP_END
421453
r249893r249894
434466   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD4 )  PORT_NAME("Discard 4")
435467   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_BET )   PORT_NAME("Bet / Ante")
436468   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL )  PORT_NAME("Deal / Hit")
437   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2)
469   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )        PORT_IMPULSE(2)
438470   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_STAND ) PORT_NAME("Free Bonus Draw / Stand")
439471   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )       PORT_NAME("Start")
440472   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD5 )  PORT_NAME("Discard 5 / High / Double Down")
441473   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_POKER_HOLD3 )  PORT_NAME("Discard 3")
442474
443475   PORT_START("IN1")
444   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
476   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 )     PORT_NAME("Service 3 (Trigger bips/alarm in Test Mode)") PORT_CODE(KEYCODE_8)
445477   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 )  PORT_NAME("Discard 2")
446478   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK )  PORT_NAME("Service 2 (Test Mode Out / Coin Stuck)")
447   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* Payout? */
479   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )      /* Payout? */
448480   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
449481   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Service 1 (Test/Settings)")
450482   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
r249893r249894
454486static INPUT_PORTS_START( pulltabs )
455487   PORT_START("IN0")
456488   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
457   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Ante") PORT_CODE(KEYCODE_1)
489   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Ante") PORT_CODE(KEYCODE_1)
458490   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
459   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )  PORT_IMPULSE(2) /* Coin A */
491   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )    PORT_IMPULSE(2) /* Coin A */
460492   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
461493   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
462   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Big Bar Ticket") PORT_CODE(KEYCODE_C)
463   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Lady Luck Ticket") PORT_CODE(KEYCODE_X)
494   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON4 )  PORT_NAME("Big Bar Ticket") PORT_CODE(KEYCODE_C)
495   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 )  PORT_NAME("Lady Luck Ticket") PORT_CODE(KEYCODE_X)
464496
465497   PORT_START("IN1")
466   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
498   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("Service 3 (Trigger siren/alarm in Test Mode)") PORT_CODE(KEYCODE_8)
467499   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
468500   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Service 2 (Test Mode Out / Coin Stuck)") PORT_CODE(KEYCODE_0)
469501   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
r249893r249894
478510   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
479511   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Ante") PORT_CODE(KEYCODE_1)                // bet/ante
480512   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Change Game / High") PORT_CODE(KEYCODE_C)  // change game (lucky game X-L-T-C-N-U) / change values in settings.
481   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )  PORT_IMPULSE(2)                                        // coin in
513   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )  PORT_IMPULSE(2)                                       // coin in
482514   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Change Card / Low")  PORT_CODE(KEYCODE_Z)  // change card / move down in settings
483515   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Start") PORT_CODE(KEYCODE_X)               // start
484516   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
485517   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
486518
487519   PORT_START("IN1")
488   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("Service 3 (Trigger beeps in Test Mode)") PORT_CODE(KEYCODE_8) // beeps in test-settings mode
520   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("Service 3 (Trigger beeps/alarm in Test Mode)") PORT_CODE(KEYCODE_8)
489521   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
490522   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Service 2 (Test Mode Out / Coin Stuck)") PORT_CODE(KEYCODE_0) // exit test-settings mode
491523   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
r249893r249894
557589
558590   /* sound hardware */
559591   MCFG_SPEAKER_STANDARD_MONO("mono")
560   MCFG_SOUND_ADD("snsnd", SN76496, MASTER_CLOCK/8 )   /* 2 MHz, guess */
592   MCFG_SOUND_ADD("snsnd", SN76489, MASTER_CLOCK/8 )   // Present in Bingo PCB. Clock need to be verified.
561593   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.00)
562594MACHINE_CONFIG_END
563595
r249893r249894
603635*************************/
604636
605637/*     YEAR  NAME      PARENT  MACHINE  INPUT      STATE           INIT  ROT    COMPANY         FULLNAME             FLAGS  LAYOUT   */
606GAMEL( 1983, poker41,  0,      gat,     poker41,   driver_device,  0,    ROT0, "Game-A-Tron",  "Four in One Poker",  0,     layout_poker41  )
638GAMEL( 1983, poker41,  0,      gat,     poker41,   driver_device,  0,    ROT0, "Game-A-Tron",  "Four In One Poker",  0,     layout_poker41  )
607639GAMEL( 1983, pulltabs, 0,      gat,     pulltabs,  driver_device,  0,    ROT0, "Game-A-Tron",  "Pull Tabs",          0,     layout_pulltabs )
608640GAMEL( 1983, bingo,    0,      gat,     bingo,     driver_device,  0,    ROT0, "Game-A-Tron",  "Bingo",              0,     layout_bingo  )
trunk/src/mame/drivers/ibmpcjr.c
r249893r249894
117117   m_pc_int_delay_timer = timer_alloc(TIMER_IRQ_DELAY);
118118   m_pcjr_watchdog = timer_alloc(TIMER_WATCHDOG);
119119   m_keyb_signal_timer = timer_alloc(TIMER_KB_SIGNAL);
120   membank( "bank10" )->set_base( m_ram->pointer() );
120121}
121122
122123void pcjr_state::machine_reset()
trunk/src/mame/drivers/imds2.c
r249893r249894
172172   m_ioctimer(*this , "ioctimer"),
173173   m_iocfdc(*this , "iocfdc"),
174174   m_flop0(*this, "iocfdc:0"),
175   m_flop1(*this, "iocfdc:1"),
176175   m_iocpio(*this , "iocpio"),
177176   m_kbcpu(*this , "kbcpu"),
178177   m_palette(*this , "palette"),
r249893r249894
552551   }
553552}
554553
555int imds2_state::floppy_load(floppy_image_device *dev)
556{
557   dev->mon_w(0);
558   return IMAGE_INIT_PASS;
559}
560
561void imds2_state::floppy_unload(floppy_image_device *dev)
562{
563   dev->mon_w(1);
564}
565
566554void imds2_state::driver_start()
567555{
568556   // Allocate 64k for IPC RAM
r249893r249894
578566
579567void imds2_state::machine_start()
580568{
581   // As far as I can tell from the schmatic, there's no software motor control
582   m_flop0->get_device()->setup_load_cb(floppy_image_device::load_cb(FUNC(imds2_state::floppy_load), this));
583   m_flop0->get_device()->setup_unload_cb(floppy_image_device::unload_cb(FUNC(imds2_state::floppy_unload), this));
584   m_flop1->get_device()->setup_load_cb(floppy_image_device::load_cb(FUNC(imds2_state::floppy_load), this));
585   m_flop1->get_device()->setup_unload_cb(floppy_image_device::unload_cb(FUNC(imds2_state::floppy_unload), this));
569        m_iocfdc->set_ready_line_connected(true);
586570}
587571
588572void imds2_state::video_start()
r249893r249894
595579   m_iocbeep->set_frequency(IOC_BEEP_FREQ);
596580   m_ipc_control = 0x00;
597581   m_ipc_ioc_status = 0x0f;
598   m_flop0->get_device()->mon_w(!m_flop0->get_device()->exists());
599   m_flop1->get_device()->mon_w(!m_flop1->get_device()->exists());
600582
601583   m_iocfdc->set_rate(500000); // The IMD images show a rate of 500kbps
602584}
r249893r249894
830812      MCFG_DEVICE_ADD("iocfdc" , I8271 , IOC_XTAL_Y1 / 2)
831813      MCFG_I8271_DRQ_CALLBACK(DEVWRITELINE("iocdma" , i8257_device , dreq1_w))
832814      MCFG_FLOPPY_DRIVE_ADD("iocfdc:0", imds2_floppies, "8sssd", floppy_image_device::default_floppy_formats)
833      MCFG_FLOPPY_DRIVE_ADD("iocfdc:1", imds2_floppies, "8sssd", floppy_image_device::default_floppy_formats)
815                MCFG_SLOT_FIXED(true)
834816
835817      MCFG_CPU_ADD("iocpio" , I8041 , IOC_XTAL_Y3)
836818      MCFG_CPU_IO_MAP(pio_io_map)
trunk/src/mame/drivers/konamim2.c
r249893r249894
191191#include "emu.h"
192192#include "cdrom.h"
193193#include "cpu/powerpc/ppc.h"
194#include "imagedev/chd_cd.h"
194195
195
196196struct CDE_DMA
197197{
198198   UINT32 dst_addr;
r249893r249894
11871187
11881188   MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
11891189
1190        /*cd-rom*/
1191   MCFG_CDROM_ADD( "cdrom" )
1192   MCFG_CDROM_INTERFACE("3do_m2_cdrom")
11901193
1194   MCFG_SOFTWARE_LIST_ADD("cd_list","3do_m2")
1195
11911196MACHINE_CONFIG_END
11921197
11931198
trunk/src/mame/drivers/macpci.c
r249893r249894
110110   MCFG_SOUND_ROUTE( 1, "rspeaker", 1.00 )
111111
112112   MCFG_CDROM_ADD("cdrom")
113   MCFG_CDROM_INTERFACE("pippin_cdrom")
114   MCFG_SOFTWARE_LIST_ADD("cd_list","pippin")   
113115
114116   MCFG_RAM_ADD(RAM_TAG)
115117   MCFG_RAM_DEFAULT_SIZE("32M")
trunk/src/mame/drivers/megadriv.c
r249893r249894
735735   MCFG_SOFTWARE_LIST_ADD("cd_list","megacdj")
736736MACHINE_CONFIG_END
737737
738/******************SEGA CD + 32X****************************/
738739
739740static MACHINE_CONFIG_DERIVED( genesis_32x_scd, genesis_32x )
740741
r249893r249894
752753   MCFG_GENERIC_LOAD(md_cons_state, _32x_cart)
753754
754755   //MCFG_QUANTUM_PERFECT_CPU("32x_master_sh2")
756   MCFG_SOFTWARE_LIST_ADD("cd_list", "segacd")
755757MACHINE_CONFIG_END
756758
759static MACHINE_CONFIG_DERIVED( md_32x_scd, md_32x )
757760
761   MCFG_DEVICE_ADD("segacd", SEGA_SEGACD_EUROPE, 0)
762   MCFG_GFX_PALETTE("gen_vdp:palette")
758763
764   MCFG_CDROM_ADD( "cdrom" )
765   MCFG_CDROM_INTERFACE("scd_cdrom")
766
767   MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megacd)
768
769   MCFG_DEVICE_REMOVE("cartslot")
770   MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "_32x_cart")
771   MCFG_GENERIC_EXTENSIONS("32x,bin")
772   MCFG_GENERIC_LOAD(md_cons_state, _32x_cart)
773
774   //MCFG_QUANTUM_PERFECT_CPU("32x_master_sh2")
775   MCFG_SOFTWARE_LIST_ADD("cd_list", "megacd")
776MACHINE_CONFIG_END
777
778static MACHINE_CONFIG_DERIVED( mdj_32x_scd, mdj_32x )
779
780   MCFG_DEVICE_ADD("segacd", SEGA_SEGACD_JAPAN, 0)
781   MCFG_GFX_PALETTE("gen_vdp:palette")
782
783   MCFG_CDROM_ADD( "cdrom" )
784   MCFG_CDROM_INTERFACE("scd_cdrom")
785
786   MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megacd)
787
788   MCFG_DEVICE_REMOVE("cartslot")
789   MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "_32x_cart")
790   MCFG_GENERIC_EXTENSIONS("32x,bin")
791   MCFG_GENERIC_LOAD(md_cons_state, _32x_cart)
792
793   //MCFG_QUANTUM_PERFECT_CPU("32x_master_sh2")
794   MCFG_SOFTWARE_LIST_ADD("cd_list", "megacdj")
795MACHINE_CONFIG_END
796
759797/* We need proper names for most of these BIOS ROMs! */
760798ROM_START( segacd )
761799   ROM_REGION16_BE( 0x400000, "maincpu", ROMREGION_ERASE00 )
r249893r249894
902940   ROM_LOAD( "32x_s_bios.bin", 0x000000,  0x000400, CRC(bfda1fe5) SHA1(4103668c1bbd66c5e24558e73d4f3f92061a109a) )
903941ROM_END
904942
943ROM_START( 32x_mcd )
944   ROM_REGION16_BE( 0x400000, "maincpu", ROMREGION_ERASE00 )
905945
946   ROM_REGION16_BE( 0x400000, "gamecart", 0 ) /* 68000 Code */
947   ROM_LOAD( "megacd_model1_bios_1_00_e.bin", 0x000000,  0x020000, CRC(529ac15a) SHA1(f891e0ea651e2232af0c5c4cb46a0cae2ee8f356) )
906948
949   ROM_REGION32_BE( 0x400000, "gamecart_sh2", 0 ) /* Copy for the SH2 */
950   ROM_COPY( "gamecart", 0x0, 0x0, 0x400000)
951
952   ROM_REGION16_BE( 0x400000, "32x_68k_bios", 0 ) /* 68000 Code */
953   ROM_LOAD( "32x_g_bios.bin", 0x000000,  0x000100, CRC(5c12eae8) SHA1(dbebd76a448447cb6e524ac3cb0fd19fc065d944) )
954
955   ROM_REGION32_BE( 0x400000, "master", 0 ) /* SH2 Code */
956   ROM_LOAD( "32x_m_bios.bin", 0x000000,  0x000800, CRC(dd9c46b8) SHA1(1e5b0b2441a4979b6966d942b20cc76c413b8c5e) )
957
958   ROM_REGION32_BE( 0x400000, "slave", 0 ) /* SH2 Code */
959   ROM_LOAD( "32x_s_bios.bin", 0x000000,  0x000400, CRC(bfda1fe5) SHA1(4103668c1bbd66c5e24558e73d4f3f92061a109a) )
960ROM_END
961
962ROM_START( 32x_mcdj )
963   ROM_REGION16_BE( 0x400000, "maincpu", ROMREGION_ERASE00 )
964
965   ROM_REGION16_BE( 0x400000, "gamecart", 0 ) /* 68000 Code */
966   ROM_DEFAULT_BIOS("v100g")   // this seems the only revision where the cursor in CD menu works, allowing to boot games
967   /* Confirmed by ElBarto */
968   ROM_SYSTEM_BIOS(0, "v100s", "v1.00S")
969   ROMX_LOAD( "mpr-14088h.bin", 0x000000,  0x020000, CRC(3773d5aa) SHA1(bbf729a1aaa1667b783749299e1ad932aaf5f253), ROM_BIOS(1) | ROM_GROUPWORD | ROM_REVERSE)
970   /* Confirmed by ElBarto */
971   ROM_SYSTEM_BIOS(1, "v100g", "v1.00G")
972   ROMX_LOAD( "epr-14088b.bin", 0x000000,  0x020000, CRC(69ed6ccd) SHA1(27d11c3836506f01ee81cd142c0cd8b51abebbd2), ROM_BIOS(2) | ROM_GROUPWORD | ROM_REVERSE)
973   /* Confirmed by ElBarto */
974   ROM_SYSTEM_BIOS(2, "v100l", "v1.00L")
975   ROMX_LOAD( "mpr-14088c.bin", 0x000000,  0x020000, CRC(03134289) SHA1(d60cb5a53f26d6b13e354bc149217587f2301718), ROM_BIOS(3) | ROM_GROUPWORD | ROM_REVERSE)
976   /* Confirmed by ElBarto */
977   ROM_SYSTEM_BIOS(3, "v100o", "v1.00O")
978   ROMX_LOAD( "epr-14088d.bin", 0x000000,  0x020000, CRC(dfa95ee9) SHA1(e13666c76fa0a2e94e2f651b26b0fd625bf55f07), ROM_BIOS(4) | ROM_GROUPWORD | ROM_REVERSE)
979   ROM_SYSTEM_BIOS(4, "v100p", "v1.00P")   // CRC: e2e70bc8 when byteswapped
980   ROMX_LOAD( "epr-14088e.bin", 0x000000,  0x020000, CRC(9d2da8f2) SHA1(4846f448160059a7da0215a5df12ca160f26dd69), ROM_BIOS(5) )
981
982   ROM_REGION32_BE( 0x400000, "gamecart_sh2", 0 ) /* Copy for the SH2 */
983   ROM_COPY( "gamecart", 0x0, 0x0, 0x400000)
984
985   ROM_REGION16_BE( 0x400000, "32x_68k_bios", 0 ) /* 68000 Code */
986   ROM_LOAD( "32x_g_bios.bin", 0x000000,  0x000100, CRC(5c12eae8) SHA1(dbebd76a448447cb6e524ac3cb0fd19fc065d944) )
987
988   ROM_REGION32_BE( 0x400000, "master", 0 ) /* SH2 Code */
989   ROM_LOAD( "32x_m_bios.bin", 0x000000,  0x000800, CRC(dd9c46b8) SHA1(1e5b0b2441a4979b6966d942b20cc76c413b8c5e) )
990
991   ROM_REGION32_BE( 0x400000, "slave", 0 ) /* SH2 Code */
992   ROM_LOAD( "32x_s_bios.bin", 0x000000,  0x000400, CRC(bfda1fe5) SHA1(4103668c1bbd66c5e24558e73d4f3f92061a109a) )
993ROM_END
994
995
996
907997/***************************************************************************
908998
909999  Game driver(s)
r249893r249894
9361026CONS( 1993, wmegam2,    xeye,      0,      mdj_scd,         md, md_cons_state,     md_jpn,    "Victor", "Wondermega M2 (Japan, NTSC)", MACHINE_NOT_WORKING )
9371027CONS( 1994, cdx,        0,         0,      genesis_scd,     md, md_cons_state,     genesis,   "Sega",   "CDX (USA, NTSC)", MACHINE_NOT_WORKING )
9381028CONS( 1994, multmega,   cdx,       0,      md_scd,          md, md_cons_state,     md_eur,    "Sega",   "Multi-Mega (Europe, PAL)", MACHINE_NOT_WORKING )
939CONS( 1994, 32x_scd,    0,         0,      genesis_32x_scd, md, md_cons_state,     genesis,   "Sega",   "Sega CD (USA, NTSC, w/32X)", MACHINE_NOT_WORKING )
1029
1030//32X plugged in the cart slot + SegaCD plugged into the expansion port..
1031CONS( 1994, 32x_scd,    0,         0,      genesis_32x_scd, md, md_cons_state,     genesis,   "Sega",   "Sega CD with 32X (USA, NTSC)", MACHINE_NOT_WORKING )
1032CONS( 1995, 32x_mcd,    32x_scd,   0,      md_32x_scd,      md, md_cons_state,     md_eur,    "Sega",   "Mega-CD with 32X (Europe, PAL)", MACHINE_NOT_WORKING )
1033CONS( 1994, 32x_mcdj,   32x_scd,   0,      mdj_32x_scd,     md, md_cons_state,     md_jpn,    "Sega",   "Mega-CD with 32X (Japan, NTSC)", MACHINE_NOT_WORKING )
trunk/src/mame/drivers/namcos23.c
r249893r249894
12861286{
12871287   running_machine *machine;
12881288   const pen_t *pens;
1289   bitmap_rgb32 *bitmap;
12891290   UINT32 (*texture_lookup)(running_machine &machine, const pen_t *pens, float x, float y);
12901291};
12911292
12921293class namcos23_state;
12931294
1294class namcos23_renderer : public poly_manager<float, namcos23_render_data, 5, POLY_MAX_ENTRIES>
1295class namcos23_renderer : public poly_manager<float, namcos23_render_data, 4, POLY_MAX_ENTRIES>
12951296{
12961297public:
12971298   namcos23_renderer(namcos23_state &state);
r249893r249894
13011302
13021303private:
13031304   namcos23_state& m_state;
1304   bitmap_rgb32 m_bitmap;
13051305   float* m_zBuffer;
13061306};
13071307
r249893r249894
13121312   namcos23_render_data rd;
13131313   int front;
13141314   int vertex_count;
1315   float zkey;
13151316   poly_vertex pv[16];
13161317};
13171318
r249893r249894
13671368   int count[2];
13681369   namcos23_render_entry entries[2][RENDER_MAX_ENTRIES];
13691370   namcos23_poly_entry polys[POLY_MAX_ENTRIES];
1371   namcos23_poly_entry *poly_order[POLY_MAX_ENTRIES];
13701372};
13711373
13721374class namcos23_state : public driver_device
r249893r249894
15831585***************************************************************************/
15841586
15851587namcos23_renderer::namcos23_renderer(namcos23_state &state)
1586   : poly_manager<float, namcos23_render_data, 5, POLY_MAX_ENTRIES>(state.machine()),
1587     m_state(state),
1588     m_bitmap(state.m_screen->width(), state.m_screen->height())
1588   : poly_manager<float, namcos23_render_data, 4, POLY_MAX_ENTRIES>(state.machine()),
1589     m_state(state)
15891590{
1590   const INT32 bufferSize = state.m_screen->visible_area().width() * state.m_screen->visible_area().height();
1591   m_zBuffer = auto_alloc_array(state.machine(), float, bufferSize);
15921591}
15931592
15941593// 3D hardware, to throw at least in part in video/namcos23.c
r249893r249894
18851884{
18861885   const namcos23_render_data& rd = object;
18871886
1888   float zz = extent.param[0].start;
1889   float w = extent.param[1].start;
1890   float u = extent.param[2].start;
1891   float v = extent.param[3].start;
1892   float l = extent.param[4].start;
1893   float dz = extent.param[0].dpdx;
1894   float dw = extent.param[1].dpdx;
1895   float du = extent.param[2].dpdx;
1896   float dv = extent.param[3].dpdx;
1897   float dl = extent.param[4].dpdx;
1887   float w = extent.param[0].start;
1888   float u = extent.param[1].start;
1889   float v = extent.param[2].start;
1890   float l = extent.param[3].start;
1891   float dw = extent.param[0].dpdx;
1892   float du = extent.param[1].dpdx;
1893   float dv = extent.param[2].dpdx;
1894   float dl = extent.param[3].dpdx;
18981895   
1899   UINT32 *img = &m_bitmap.pix32(scanline, extent.startx);
1900   float* zBuffer = &m_zBuffer[(scanline * m_state.m_screen->visible_area().width()) + extent.startx];
1896   UINT32 *img = &object.bitmap->pix32(scanline, extent.startx);
19011897   
19021898   for(int x = extent.startx; x < extent.stopx; x++) {
1903      if (zz < *zBuffer)
1904      {
1905         float z = w ? 1/w : 0;
1906         UINT32 pcol = rd.texture_lookup(*rd.machine, rd.pens, u*z, v*z);
1907         float ll = l*z;
1908         *img = (light(pcol >> 16, ll) << 16) | (light(pcol >> 8, ll) << 8) | light(pcol, ll);
1909   
1910         *zBuffer = zz;
1911      }
1899      float z = w ? 1/w : 0;
1900      UINT32 pcol = rd.texture_lookup(*rd.machine, rd.pens, u*z, v*z);
1901      float ll = l*z;
1902      *img = (light(pcol >> 16, ll) << 16) | (light(pcol >> 8, ll) << 8) | light(pcol, ll);
19121903     
1913      zz += dz;
19141904      w += dw;
19151905      u += du;
19161906      v += dv;
19171907      l += dl;
19181908      img++;
1919      zBuffer++;
19201909   }
19211910}
19221911
r249893r249894
19431932
19441933   pv.x = 320 + 768 * pv.x;
19451934   pv.y = 240 - 768 * pv.y;
1946   pv.p[1] = 1.0f / pv.p[1];
1935   pv.p[0] = 1.0f / pv.p[0];
19471936}
19481937
19491938static UINT32 render_texture_lookup_nocache_point(running_machine &machine, const pen_t *pens, float x, float y)
r249893r249894
20462035
20472036      namcos23_poly_entry *p = render.polys + render.poly_count;
20482037
2049      // Should be unnecessary now that frustum clipping happens, but this still culls polys behind the camera
2050      p->vertex_count = render.polymgr->zclip_if_less(ne, pv, p->pv, 5, 0.001f);
2051     
2052      // Project if you don't clip on the near plane
2038        // Should be unnecessary now that frustum clipping happens, but this still culls polys behind the camera
2039      p->vertex_count = render.polymgr->zclip_if_less(ne, pv, p->pv, 4, 0.00001f);
2040       
2041        // Project if you don't clip on the near plane
20532042      if(p->vertex_count >= 3) {
2054         // Project the eye points
2055         frustum_clip_vertex<float, 3> clipVerts[10];
2056         for(int i=0; i<p->vertex_count; i++) {
2057            // A basic perspective transform
2058            const float Z = p->pv[i].p[0];
2059            const float projX = p->pv[i].x / Z;
2060            const float projY = p->pv[i].y / Z;
2061           
2062            const float near = 0.001f;
2063            const float far = 1000.0f;
2064            const float m22 = -(far / (far-near));
2065            const float m23 = -((far * near) / (far - near));
2066            const float projZ = -(Z * m22) + m23;
2067           
2068            // Construct a frustum clipping vert from the NDCoords
2069            clipVerts[i].x = projX;
2070            clipVerts[i].y = projY;
2071            clipVerts[i].z = projZ;
2072            clipVerts[i].w = p->pv[i].p[0];
2073            clipVerts[i].p[0] = p->pv[i].p[1];
2074            clipVerts[i].p[1] = p->pv[i].p[2];
2075            clipVerts[i].p[2] = p->pv[i].p[3];
2076         }
2043            // Project the eye points
2044            frustum_clip_vertex<float, 3> clipVerts[10];
2045            for(int i=0; i<p->vertex_count; i++) {
2046                // Construct a frustum clipping vert from the NDCoords
2047                const float Z = p->pv[i].p[0];
2048                clipVerts[i].x = p->pv[i].x / Z;
2049                clipVerts[i].y = p->pv[i].y / Z;
2050                clipVerts[i].z = Z;
2051                clipVerts[i].w = Z;
2052                clipVerts[i].p[0] = p->pv[i].p[1];
2053                clipVerts[i].p[1] = p->pv[i].p[2];
2054                clipVerts[i].p[2] = p->pv[i].p[3];
2055            }
20772056
2078         // Clip against all edges of the view frustum
2079         int num_vertices = frustum_clip_all<float, 3>(clipVerts, p->vertex_count, clipVerts);
2080         
2081         if (num_vertices != 0)
2082         {
2083            // Push the results back into the main vertices
2084            for (int i=0; i < num_vertices; i++)
2085            {
2086               p->pv[i].x = clipVerts[i].x;
2087               p->pv[i].y = clipVerts[i].y;
2088               p->pv[i].p[0] = clipVerts[i].z;
2089               p->pv[i].p[1] = clipVerts[i].w;
2090               p->pv[i].p[2] = clipVerts[i].p[0];
2091               p->pv[i].p[3] = clipVerts[i].p[1];
2092               p->pv[i].p[4] = clipVerts[i].p[2];
2093            }
2094            p->vertex_count = num_vertices;
2095           
2096            // This is our poor-man's projection matrix
2097            for(int i=0; i<p->vertex_count; i++)
2098            {
2099               render_project(p->pv[i]);
2100               
2101               const float w = p->pv[i].p[1];
2102               p->pv[i].p[2] *= w;
2103               p->pv[i].p[3] *= w;
2104               p->pv[i].p[4] *= w;
2105            }
2106           
2107            // Compute an odd sorta'-Z thing that can situate the polygon wherever you want in Z-depth
2108            p->front = !(h & 0x00000001);
2109            p->rd.machine = &machine();
2110            p->rd.texture_lookup = render_texture_lookup_nocache_point;
2111            p->rd.pens = m_palette->pens() + (color << 8);
2112            render.poly_count++;
2113         }
2057            // Clip against all edges of the view frustum
2058            int num_vertices = frustum_clip_all<float, 3>(clipVerts, p->vertex_count, clipVerts);
2059           
2060            if (num_vertices != 0)
2061            {
2062                // Push the results back into the main vertices
2063                for (int i=0; i < num_vertices; i++)
2064                {
2065                    p->pv[i].x = clipVerts[i].x;
2066                    p->pv[i].y = clipVerts[i].y;
2067                    p->pv[i].p[0] = clipVerts[i].w;
2068                    p->pv[i].p[1] = clipVerts[i].p[0];
2069                    p->pv[i].p[2] = clipVerts[i].p[1];
2070                    p->pv[i].p[3] = clipVerts[i].p[2];
2071                }
2072                p->vertex_count = num_vertices;
2073               
2074                // This is our poor-man's projection matrix
2075                for(int i=0; i<p->vertex_count; i++)
2076                {
2077                    render_project(p->pv[i]);
2078                   
2079                    float w = p->pv[i].p[0];
2080                    p->pv[i].p[1] *= w;
2081                    p->pv[i].p[2] *= w;
2082                    p->pv[i].p[3] *= w;
2083                }
2084               
2085                // Compute an odd sorta'-Z thing that can situate the polygon wherever you want in Z-depth
2086                p->zkey = 0.5f*(minz+maxz);
2087                p->front = !(h & 0x00000001);
2088                p->rd.machine = &machine();
2089                p->rd.texture_lookup = render_texture_lookup_nocache_point;
2090                p->rd.pens = m_palette->pens() + (color << 8);
2091                render.poly_count++;
2092            }
21142093      }
21152094
21162095      if(type & 0x000010000)
r249893r249894
21182097   }
21192098}
21202099
2100static int render_poly_compare(const void *i1, const void *i2)
2101{
2102   const namcos23_poly_entry *p1 = *(const namcos23_poly_entry **)i1;
2103   const namcos23_poly_entry *p2 = *(const namcos23_poly_entry **)i2;
2104
2105   if(p1->front != p2->front)
2106      return p1->front ? 1 : -1;
2107
2108   return p1->zkey < p2->zkey ? 1 : p1->zkey > p2->zkey ? -1 : 0;
2109}
2110
21212111void namcos23_renderer::render_flush(bitmap_rgb32& bitmap)
21222112{
21232113   render_t &render = m_state.m_render;
r249893r249894
21252115   if(!render.poly_count)
21262116      return;
21272117
2118   for(int i=0; i<render.poly_count; i++)
2119      render.poly_order[i] = &render.polys[i];
2120
2121   qsort(render.poly_order, render.poly_count, sizeof(namcos23_poly_entry *), render_poly_compare);
2122
21282123   const static rectangle scissor(0, 639, 0, 479);
21292124
21302125   for(int i=0; i<render.poly_count; i++) {
2131      const namcos23_poly_entry *p = &render.polys[i];
2126      const namcos23_poly_entry *p = render.poly_order[i];
21322127      namcos23_render_data& extra = render.polymgr->object_data_alloc();
21332128      extra = p->rd;
2134     
2129      extra.bitmap = &bitmap;
2130
21352131      // We should probably split the polygons into triangles ourselves to insure everything is being rendered properly
21362132      if (p->vertex_count == 3)
2137         render_triangle(scissor, render_delegate(FUNC(namcos23_renderer::render_scanline), this), 5, p->pv[0], p->pv[1], p->pv[2]);
2133         render_triangle(scissor, render_delegate(FUNC(namcos23_renderer::render_scanline), this), 4, p->pv[0], p->pv[1], p->pv[2]);
21382134      else if (p->vertex_count == 4)
2139         render_polygon<4>(scissor, render_delegate(FUNC(namcos23_renderer::render_scanline), this), 5, p->pv);
2135         render_polygon<4>(scissor, render_delegate(FUNC(namcos23_renderer::render_scanline), this), 4, p->pv);
21402136      else if (p->vertex_count == 5)
2141         render_polygon<5>(scissor, render_delegate(FUNC(namcos23_renderer::render_scanline), this), 5, p->pv);
2137         render_polygon<5>(scissor, render_delegate(FUNC(namcos23_renderer::render_scanline), this), 4, p->pv);
21422138      else if (p->vertex_count == 6)
2143         render_polygon<6>(scissor, render_delegate(FUNC(namcos23_renderer::render_scanline), this), 5, p->pv);
2139         render_polygon<6>(scissor, render_delegate(FUNC(namcos23_renderer::render_scanline), this), 4, p->pv);
21442140   }
21452141   render.poly_count = 0;
2146   
2147   copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, scissor);
2148
2149   // Reset the buffers
2150   for (int i = 0; i < (m_state.m_screen->visible_area().width())*(m_state.m_screen->visible_area().height()); i++)
2151   {
2152      m_zBuffer[i] = 1000.0f;     // TODO: set to far clipping plane value
2153   }
21542142}
21552143
21562144void namcos23_state::render_run(bitmap_rgb32 &bitmap)
trunk/src/mame/drivers/osborne1.c
r249893r249894
141141   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
142142   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
143143   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
144
145   PORT_START("CNF")
146   PORT_CONFNAME(0x01, 0x00, "Video Output")
147   PORT_CONFSETTING(0x00, "Standard")
148   PORT_CONFSETTING(0x01, "SCREEN-PAC")
144149INPUT_PORTS_END
145150
146151
r249893r249894
197202
198203   MCFG_SCREEN_ADD("screen", RASTER)
199204   MCFG_SCREEN_UPDATE_DRIVER(osborne1_state, screen_update)
200   MCFG_SCREEN_RAW_PARAMS( MAIN_CLOCK/2, 512, 0, 416, 260, 0, 240 )
205   MCFG_SCREEN_RAW_PARAMS( MAIN_CLOCK, 1024, 0, 104*8, 260, 0, 24*10 )
201206   MCFG_SCREEN_PALETTE("palette")
202207   MCFG_GFXDECODE_ADD("gfxdecode", "palette", osborne1)
203208   MCFG_PALETTE_ADD_MONOCHROME_GREEN_HIGHLIGHT("palette")
trunk/src/mame/drivers/pc.c
r249893r249894
2222IBM5550
2323=======
2424Information can be found at http://homepage3.nifty.com/ibm5550/index-e.html
25It's an heavily modified IBM PC-XT machine, with a completely different
25It's a heavily modified IBM PC-XT machine, with a completely different
2626video HW too.
2727
2828***************************************************************************/
r249893r249894
173173   DEVICE_INPUT_DEFAULTS("DSW0", 0x30, 0x20)
174174DEVICE_INPUT_DEFAULTS_END
175175
176static DEVICE_INPUT_DEFAULTS_START( siemens )
177   DEVICE_INPUT_DEFAULTS("DSW0", 0x30, 0x30)
178DEVICE_INPUT_DEFAULTS_END
179
176180#define MCFG_CPU_PC(mem, port, type, clock) \
177181   MCFG_CPU_ADD("maincpu", type, clock)                \
178182   MCFG_CPU_PROGRAM_MAP(mem##_map) \
r249893r249894
268272   MCFG_SOFTWARE_LIST_ADD("disk_list","ibm5150")
269273MACHINE_CONFIG_END
270274
275
276
277static MACHINE_CONFIG_START( siemens, pc_state )
278   /* basic machine hardware */
279   MCFG_CPU_PC(pc8, pc8, I8088, XTAL_14_31818MHz/3) /* 4,77 MHz */
280
281   MCFG_IBM5150_MOTHERBOARD_ADD("mb", "maincpu")
282   MCFG_DEVICE_INPUT_DEFAULTS(siemens)
283
284   MCFG_ISA8_SLOT_ADD("mb:isa", "isa1", pc_isa8_cards, "hercules", false)
285   MCFG_ISA8_SLOT_ADD("mb:isa", "isa2", pc_isa8_cards, "fdc_xt", false)
286   MCFG_ISA8_SLOT_ADD("mb:isa", "isa3", pc_isa8_cards, "lpt", false)
287   MCFG_ISA8_SLOT_ADD("mb:isa", "isa4", pc_isa8_cards, "com", false)
288
289   /* keyboard */
290   MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83)
291   /* internal ram */
292   MCFG_RAM_ADD(RAM_TAG)
293   MCFG_RAM_DEFAULT_SIZE("640K")
294
295MACHINE_CONFIG_END
296
271297static MACHINE_CONFIG_START( ibm5550, pc_state )
272298   /* basic machine hardware */
273299   MCFG_CPU_PC(ibm5550, ibm5550, I8086, 8000000)
r249893r249894
297323   MCFG_SLOT_DEFAULT_OPTION("cga_ec1841")
298324MACHINE_CONFIG_END
299325
326static MACHINE_CONFIG_DERIVED(eagle1600, pccga)
327   MCFG_DEVICE_REMOVE("maincpu")
328   MCFG_CPU_PC(pc16, pc16, I8086, 8000000)
329MACHINE_CONFIG_END
330
300331ROM_START( bw230 )
301332   ROM_REGION(0x100000,"maincpu", 0)
302333   ROM_LOAD("bondwell.bin", 0xfe000, 0x2000, CRC(d435a405) SHA1(a57c705d1144c7b61940b6f5c05d785c272fc9bb))
303334ROM_END
304335
336ROM_START( sicpc1605 )
337   ROM_REGION(0x100000,"maincpu", 0)
338   ROM_LOAD("multitech pc-700 3.1.bin", 0xfe000, 0x2000, CRC(0ac7a2e1) SHA1(b9c8504e21213d81a068dde9f51f9c973d726e7b))
339ROM_END
340
305341ROM_START( zdsupers )
306342   ROM_REGION(0x100000,"maincpu", 0)
307343   ROM_SYSTEM_BIOS( 0, "v31d", "v3.1d" )
r249893r249894
443479   ROM_LOAD( "c101681 6ffb.u60",0x000, 0x100, NO_DUMP ) // PAL20L10NC
444480ROM_END
445481
482ROM_START( eagle1600 )
483   ROM_REGION(0x100000,"maincpu", 0)
484   ROMX_LOAD( "eagle 1600 62-2732-001 rev e u403.bin",0xfe000, 0x1000, CRC(3da1e96a) SHA1(77861ba5ebd056da1daf048f5abd459e0528666d), ROM_SKIP(1))
485   ROMX_LOAD( "eagle 1600 62-2732-002 rev e u404.bin",0xfe001, 0x1000, CRC(be6492d4) SHA1(ef25faf33e8336121d030e38e177be39be8afb7a), ROM_SKIP(1))
486
487   ROM_REGION(0x8000,"gfx1", 0)
488   ROM_LOAD("eagle 1600 video char gen u301.bin", 0x00000, 0x1000, CRC(1a7e552f) SHA1(749058783eec9d96a70dc5fdbfccb56196f889dc))
489ROM_END
490
446491/***************************************************************************
447492
448493  Game driver(s)
r249893r249894
455500COMP( 1984, compc1,     ibm5150,    0,          pccga,      pccga, driver_device,      0,      "Commodore Business Machines", "Commodore PC-1" , MACHINE_NOT_WORKING)
456501COMP( 1987, pc10iii,    ibm5150,    0,          pccga,      pccga, driver_device,      0,      "Commodore Business Machines", "Commodore PC-10 III" , MACHINE_NOT_WORKING)
457502
503
458504COMP( 1992, iskr3104,   ibm5150,    0,          iskr3104,   pccga, driver_device,      0,      "Schetmash", "Iskra 3104", MACHINE_NOT_WORKING)
459505COMP( 1989, mk88,       ibm5150,    0,          mk88,       pccga, driver_device,      0,      "<unknown>", "MK-88", MACHINE_NOT_WORKING)
460506COMP( 1991, poisk2,     ibm5150,    0,          poisk2,     pccga, driver_device,      0,      "<unknown>", "Poisk-2", MACHINE_NOT_WORKING)
461507COMP( 1990, mc1702,     ibm5150,    0,          pccga,      pccga, driver_device,      0,      "<unknown>", "Elektronika MC-1702", MACHINE_NOT_WORKING)
462508
463509COMP( 1987, zdsupers,   ibm5150,    0,          zenith,     pccga, driver_device,      0,      "Zenith Data Systems", "SuperSport", 0)
510COMP( 1985, sicpc1605,  ibm5150,    0,          siemens,    pccga, driver_device,      0,      "Siemens", "Sicomp PC16-05", 0)
464511
465512COMP( 198?, olivm15,    ibm5150,    0,          pccga,      pccga, driver_device,      0,      "Olivetti", "M15", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // is this a pc clone or not?
466513
r249893r249894
473520
474521COMP( 198?, ataripc3,   ibm5150,    0,          pccga,      pccga, driver_device,      0,      "Atari", "PC-3" , MACHINE_NOT_WORKING)
475522COMP( 1989, ssam88s,    ibm5150,    0,          pccga,      pccga, driver_device,      0,      "Samsung", "Samtron 88S" , MACHINE_NOT_WORKING)
523COMP( 1983, eagle1600,  ibm5150,    0,          eagle1600,  pccga, driver_device,      0,      "Eagle", "1600" , MACHINE_NOT_WORKING)
trunk/src/mame/drivers/pcd.c
r249893r249894
538538   MCFG_MC146818_ADD("rtc", XTAL_32_768kHz)
539539   MCFG_MC146818_IRQ_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir7_w))
540540   MCFG_MC146818_BINARY(true)
541   MCFG_MC146818_BINARY_YEAR(true)
541542   MCFG_MC146818_EPOCH(1900)
542543   MCFG_MC146818_24_12(true)
543544
trunk/src/mame/drivers/saturn.c
r249893r249894
22// copyright-holders:David Haywood, Angelo Salese, Olivier Galibert, Mariusz Wojcieszek, R. Belmont
33/**************************************************************************************************
44
5    Sega Saturn & Sega ST-V (Sega Titan Video) HW (c) 1994 Sega
6
75    Driver by David Haywood, Angelo Salese, Olivier Galibert & Mariusz Wojcieszek
86    SCSP driver provided by R. Belmont, based on ElSemi's SCSP sound chip emulator
97    Many thanks to Guru, Fabien, Runik and Charles MacDonald for the help given.
108
11===================================================================================================
9***************************************************************************************************
1210
11Sega Saturn
12(C) Sega 1994/1995/1996/1997
13
14The Sega Saturn is a 32-bit 5th-generation home video game console that was developed by Sega and released
15on November 22nd 1994 in Japan, May 11th 1995 in North America, and July 8th 1995 in Europe as the successor
16to the Sega Genesis. The Saturn has a dual-CPU architecture and a total of eight processors.
17The games are on CD-ROM.
18
19Basic Hardware:
20
21Processors (8)
22----------
23Two Hitachi SH2 32-bit RISC @ 28.63636MHz
24One Hitachi SH1 32-bit RISC @ 20.0MHz
25Two 32-bit video display processors (VDP 1 / VDP 2)
26One Saturn Control Unit processor (SCU) @ 14.31818MHz
27One Motorola 68EC000 sound processor @ 11.2896MHz
28One Yamaha YMF292-F DSP sound processor @ 28.63636MHz
29
30Memory
31------
3216 Megabits DRAM
3312 Megabits VRAM (Video RAM)
344 Megabits Audio DRAM
354 Megabits CD-ROM Cache DRAM
36256 Kbits battery-backed SRAM
37
38Video
39-----
40VDP 1
41- 32-bit video display processor
42- Sprite, polygon, and geometry engine
43- Dual 256Kb frame buffers for rotation and scaling effects
44- Texture Mapping
45- Goraud Shading
46- 512Kb cache for textures
47VDP 2
48- 32-bit background and scroll plane video display processor
49- Background engine
50- 5 simulataneous scrolling backgrounds
51- 2 simultaneous rotating playfields
52- 200,000 Texture Mapped Polygons/Second
53- 500,000 Flat Shaded Polygons/Second
54- Up to 60 frames per second animation
55- 24-bit True Color Graphics
56- 16 Million Available Colors
57- 320x224, 640x224, and 720x576 Resolution
58
59Audio
60-----
61Motorola 68EC000 sound processor @ 11.2896MHz
62Yamaha 24-bit Digital Signal Processor @ 28.63636MHz
63- 32 PCM (Pulse Code Modulation) Channels
64- 8 FM (Frequency Modulation) Channels
65- 44.1 kHz Sampling Rate
66
67Storage
68-------
69CD-ROM (2X)
70- 320 Kb/Second transfer speed
71- Compatible with Audio CD, CD+G, CD+EG, CD Single (8cm)
72  and with optional hardware; Video CD, Photo CD & Digital Karaoke
73- Optional additional memory cartridge
74
75Input/Output
76------------
77High speed serial communications port
78Internal 32-bit expansion port
79Internal Multi AV port for optional Video CD (MPEG) decoder board
80Composite video & stereo audio (Standard)
81Optional RF(TV), S-Video & RGB outputs
822 ports for analog control pad, light gun or other controllers
83
84
85PCB Layouts
86-----------
87There were *many* main board revisions. The two general 'sizes' are documented here.
88
89Small board (VA revision documented)
90-----------
91Main board with a separate small sub-board for the controller ports, power LED and reset button.
92The power supply is slightly longer than the main board, has a 5 pin connector and outputs 9VDC, 5VDC and 3.3VDC
93
94837-12126 IC BD SATURN MAIN VA SG
95171-7128B (C) SEGA 1995 PC BD SATURN MAIN VA SG
96(This PCB was found in a USA Saturn, Model MK-80000, also known as Saturn model 1 with BIOS MPR-17941)
97
98837-12135 IC BD SATURN MAIN VA PAL SD
99171-7131A (C) SEGA 1995 PC BD SATURN MAIN VA PAL SD
100(This PCB was found in a PAL Saturn, Model MK-80200-50, also known as Saturn model 1 PAL with BIOS MPR-17942)
101
102(note both of these PCBs listed above are almost identical)
103
104|VIDEO--COMM-----------------------------------------------|
105|                        CART_SLOT            SW1 BATTERY  |
106|ADAC         CXA1645M   |--------| |-------|    20MHz     |
107|     SW2                |315-5688| |YGR019B|   TC514260   |
108| ^4502161               |        | |       |   |-------|  |
109| ^4502161    |--------| |--------| |-------|   |HD6437097 |
110| |--------|  |315-5890|   *D489020             |       |  |
111| |315-5883|  |        |    81141625 81141625   |-------|  |
112| |        |  |--------|                        CARD_SLOT  |
113| |--------|  ^4502161                    HC08             |
114| ^5241605    ^4502161          |----| |----|   |--------| |
115|  514270 |--------|HC04        |SH-2| |SH-2|   |315-5914| |
116| |-----| |315-5687|HC04        |----| |----|   |--------| |
117| |68000| |        |      |------|32.768kHz                |
118| |-----| |--------|      315-5744       LS245  TC514260   |
119|       ^74HC157 315-5746 |------|        ^62257  ^ROM  CN4|
120|  CN3      CN7  &14.31818MHz  CN2       LS245  TC514260   |
121|----------------------------------------------------------|
122Notes: (all IC's shown. ^ denotes these parts are on the other side of the PCB)
123             ROM - SOP40 mask ROM for BIOS.
124                   Chip is pin-compatible with Toshiba TC574200 or MX27C4100 and can be read with a simple 1:1 DIP40 to SOP40 adapter
125                   JAPAN BIOS marked 'MPR-17940-MX' or 'MPR-17940-T'
126                   USA BIOS   marked 'MPR-17941-MX' or 'MPR-17941-T'
127                   PAL BIOS   marked 'MPR-17942-MX' or 'MPR-17942-T'
128                   T = Toshiba, MX = Macronix. Both contain identical data
129                   Other BIOSes known to exist include:
130                   (These are mainly on the very       MPR-16605-T
131                    early version main boards VA0/VA1  MPR-16606-T
132                    and are all DIP chips)             MPR-16606A-T
133                                                       MPR-17577-T
134                                                       EPR-17578 HI-SATURN BOOT ROM VER 1.01 SUM AA44 '95 1/27 (EPROM)
135        81141625 - Fujitsu 81141625-017 128k x16-bit x 2 banks (4Mbit) SDRAM                     \ compatible
136         5241605 - Hitachi HM5241605TT17S or HM524165CTT17S 128k x16-bit x 2 banks (4Mbit) SDRAM /
137                   The two 81141625 are the WORK RAM HIGH and the two TC514260 (near the ROM) make up the WORK RAM LOW
138                   The 5241605 is the VDP1 Sprite RAM
139         D489020 - NEC D489020GF-A15 SGRAM (probably 8Mbit). *- This single chip is replaced by two 81141625 IC's on some boards
140         4502161 - NEC D4502161G5-A12 or Sanyo LC382161T-17 64k x16-bit x 2 banks (2Mbit) SDRAM
141                   Two chips are used for the VDP1 Frame RAM, the other two are for the VDP2 Video RAM
142        TC514260 - 256k x16-bit (4Mbit) DRAM. Any of the following compatible chips are used....
143                   Hitachi HM514260AJ7 / HM514260CJ7
144                   Toshiba TC514260BJ-70
145                   Fujitsu 814260-70
146                   Mitsubishi M5M44260CJ
147                   Samsung KM416C256BJ-7
148                   Hyundai HY514260B JC-70
149                   Vanguard VG264260AJ
150                   Panasonic MN414260CSJ-07
151        HM514270 - Hitachi HM514270 256k x16-bit (4Mbit) DRAM, used for the sound WORK RAM
152           62257 - Epson SRM20257LLM10 32k x8-bit (256kbit) battery-backed SRAM (also used SONY CXK58257AM-10L, NEC UPD43257B-10LL, UM62257AM-70LL)
153            ADAC - Dual CMOS Audio DAC. Either Burr-Brown BBPCM1710U or Philips TDA1386T
154        CXA1645M - Sony CXA1645M RGB to Composite Video Encoder
155            SH-2 - Hitachi HD6417095 SH-2 CPU. Clock input 28.63636MHz (14.31818*2)
156           68000 - Motorola MC68EC000FN12 CPU. Clock input 11.2896MHz
157               & - Master Clock. 14.31818MHz for USA revision or 17.7344MHz for PAL revision
158        315-5744 - Sega 315-5744 Hitachi HD404920 microcontroller used as the System Manager and Peripheral Controller (SMPC)
159        315-5746 - Sega 315-5746 Phase-locked Loop (PLL) clock generator IC
160        315-5883 - Sega 315-5883 Hitachi HD64440 Video Display Processor 1 (VDP1). Earliest revision is 315-5689
161        315-5687 - Sega 315-5687 Yamaha YMF292-F Saturn Custom Sound Processor (SCSP). Clock input 28.63636MHz (14.31818*2)
162        315-5688 - Sega 315-5688 System Control Unit (SCU). Clock input 14.31818MHz
163        315-5890 - Sega 315-5890 Video Display Processor 2 (VDP2)
164        315-5914 - Sega 315-5914 DRAM controller. Earliest revision is 315-5778. Later revision is 315-5963
165       HD6437097 - Hitachi HD6437097F20 SH1 (SH7034 family) microcontroller with 64k internal ROM. Clock input 20.000MHz
166         YGR019B - Hitachi YGR019B CD-Subsystem LSI. Earlier revision is YGR019A. Later revision combines this IC and the SH1 together
167                   into one IC (YGR022 315-5962). The SH1 and the YGR019B make up the 'CD Block' CD Authentication and CD I/O data controller.
168                   Another of it's functions is to prevent copied CDs from being played
169           VIDEO - 10-pin Mini-DIN video output port
170            COMM - Communication port
171       CARD_SLOT - Expansion slot for MPEG decoder card and other optional expansions
172       CART_SLOT - Expansion slot for plug-in RAM or ROM carts
173             SW1 - Master reset switch accessible behind the card slot/battery cover. Pressing this clears the battery-backed SRAM, resets the system
174                   and the user has to set the language, date and time
175         BATTERY - CR2032 3V lithium coin battery. When the system is off the battery provides power to the backup SRAM and SMPC which contains an RTC
176             SW2 - CDROM cover open/close detection switch
177             CN2 - 24-pin flat cable connector for control port board
178             CN3 - 5-pin power connector
179             CN4 - Flat cable connector for CDROM data cable. On some main board revisions the connector is reversed and the cable is folded so it
180                   is also reversed/flipped 180 degrees at the other end
181             CN7 - 5-pin connector for CDROM power
182
183
184Control Port board
185------------------
186839-0820 EXPORT
187839-0821 PAL
188PC BD SATURN PIO VA EXPORT 171-7112A (C) SEGA 1995 CSPD CAD-TEAM
189|---------------------------------|
190|               FLAT-CABLE        |
191|                                 |
192| GREEN-LED         RED-LED  RESET|
193|--PORT1-----PORT2----------------|
13194Notes:
195      PORT1/2 - Controller ports for controller/joystick/lightgun etc
196    GREEN-LED - Power LED
197      RED-LED - CDROM drive access LED
198        RESET - Push-button reset switch
199   FLAT-CABLE - 24-pin flat cable joined to main board CN2
200
201
202Large board (VA7 revision documented)
203-----------
204This is a single main board containing everything.
205
206837-12643 IC BD SATURN MAIN VA7 USA SD
207171-7208C (C) SEGA 1996 PC BD SATURN MAIN VA7 USA SD
208(This PCB was found in a USA Saturn, Model MK-80000A, also known as Saturn model 2 with BIOS MPR-17941)
209
210837-12992 IC BD SATURN MAIN VA7 PAL
211171-7424A (C) SEGA 1996 PC BD SATURN MAIN VA7 PAL
212(This PCB was found in a PAL Saturn, Model MK-80200A-50, also known as Saturn model 2 PAL with BIOS MPR-17942)
213
214(note both of these PCBs listed above are almost identical)
215
216|VIDEO--COMM-----------------------------------------------|
217|                        CART_SLOT                BATTERY  |
218|     SW2                |--------|                        |
219|ADAC       RGB          |315-5966|   |--------| ^TC514260 |
220|                        |        |   |YGR022  |           |
221|                        |--------|   |315-5962|           |
222|                                     |--------|           |
223| |--------|  |--------|                   20MHz           |
224| |315-5687|  |315-5964|                        CARD_SLOT  |
225| |        |  |        |                                   |
226| |--------|  |--------|           |----|   LS245 HC08     |
227| ^HM514270  ^524165     HC04      |SH-2|                  |
228| ^5221605   ^5221605              |----|         TC514260 |
229| ^5221605   ^5221605                                      |
230|           |--------|                            TC514260 |
231|  |-----|  |315-5883|   HC04                              |
232|  |68000|  |        |&14.31818MHz |----|  |--------|      |
233|  |-----|  |--------|  %CY2292    |SH-2|  |315-5977-01    |
234|CN3             |------|          |----|  |--------|      |
235|                315-5744                         62257 CN4|
236|            CN7 |------|                                  |
237|--|             32.768kHz LS245 81141625 81141625  ROM |--|
238   |            GREEN-LED                  RESET        |
239   |-------------------PORT1-----PORT2------------------|
240Notes: (all IC's shown. ^ denotes these parts are on the other side of the PCB)
241             ROM - SOP40 mask ROM for BIOS.
242                   Chip is pin-compatible with Toshiba TC574200 or MX27C4100 and can be read with a simple 1:1 DIP40 to SOP40 adapter
243                   JAPAN BIOS marked 'MPR-17940-MX' or 'MPR-17940-T'
244                   USA BIOS   marked 'MPR-17941-MX' or 'MPR-17941-T'
245                   PAL BIOS   marked 'MPR-17942-MX' or 'MPR-17942-T'
246                   T = Toshiba, MX = Macronix. Both contain identical data
247        81141625 - Fujitsu 81141625-017 128k x16-bit x 2 banks (4Mbit) SDRAM
248                   The two 81141625 are the WORK RAM HIGH and two TC514260 (near the SH-2) make up the WORK RAM LOW
249          524165 - Hitachi HM524165CTT17S 128k x16-bit x 2 banks (4Mbit) SDRAM. This is the VDP1 Sprite RAM
250         5221605 - Hitachi HM5221605TT17S 64k x16-bit x 2 banks (2Mbit) SDRAM
251                   Two chips are used for the VDP1 Frame RAM, the other two are for the VDP2 Video RAM
252        TC514260 - 256k x16-bit (4Mbit) DRAM. Any of the following compatible chips are used....
253                   Hitachi HM514260AJ7 / HM514260CJ7
254                   Toshiba TC514260BJ-70
255                   Fujitsu 814260-70
256                   Mitsubishi M5M44260CJ
257                   Samsung KM416C256BJ-7
258                   Hyundai HY514260B JC-70
259                   Vanguard VG264260AJ
260                   Panasonic MN414260CSJ-07
261        HM514270 - Hitachi HM514270 256k x16-bit (4Mbit) DRAM, used for the sound WORK RAM
262           62257 - Epson SRM20257LLM10 32k x8-bit (256kbit) battery-backed SRAM (also used SONY CXK58257AM-10L, NEC UPD43257B-10LL, UM62257AM-70LL)
263            ADAC - Dual CMOS Audio DAC. Either Burr-Brown BBPCM1710U or Philips TDA1386T
264             RGB - RGB to Composite Video Encoder with PAL & NTSC output capability. IC is either Fujitsu MB3516A or ROHM BH7236AF
265            SH-2 - Hitachi HD6417095 SH-2 CPU. Clock input 28.63636MHz (14.31818*2)
266           68000 - Motorola MC68EC000FN12 CPU. Clock input 11.2896MHz
267          CY2292 - Cypress CY2292SC-04 PLL clock generator IC. % = On the VA7 PAL version this chip is replaced with the older Sega PLL (315-5746)
268               & - Master Clock. 14.31818MHz for USA revision or 17.7344MHz for PAL revision
269        315-5744 - Sega 315-5744 Hitachi HD404920 microcontroller used as the System Manager and Peripheral Controller (SMPC)
270        315-5883 - Sega 315-5883 Hitachi HD64440 Video Display Processor 1 (VDP1).
271        315-5687 - Sega 315-5687 Yamaha YMF292-F Saturn Custom Sound Processor (SCSP). Clock input 28.63636MHz (14.31818*2)
272        315-5964 - Sega 315-5964 Video Display Processor 2 (VDP2)
273        315-5966 - Sega 315-5966 System Control Unit (SCU). Clock input 14.31818MHz
274     315-5977-01 - Sega 315-5977-01 DRAM controller
275          YGR022 - Hitachi YGR022 Sega 315-5962 single IC containing CD-Subsystem LSI and Hitachi SH-1 microcontroller with 64k internal ROM. Clock input 20.000MHz
276           VIDEO - 10-pin Mini-DIN video output port
277            COMM - Communication port
278       CARD_SLOT - Expansion slot for MPEG decoder card and other optional expansions
279       CART_SLOT - Expansion slot for plug-in RAM or ROM carts
280         BATTERY - CR2032 3V lithium coin battery. When the system is off the battery provides power to the backup SRAM and SMPC which contains an RTC
281             SW2 - CDROM cover open/close detection switch
282             CN3 - 4-pin or 5-pin power connector
283             CN4 - Flat cable connector for CDROM data cable
284             CN7 - 5-pin connector for CDROM power
285         PORT1/2 - Controller ports for controller/joystick/lightgun etc
286       GREEN-LED - Power LED
287           RESET - Push-button reset switch
288
289
290Motherboard List
291----------------
292Board types used in Model 1: VA0 to VA3
293Board types used in Model 2: VA2 to VA15
294If the VA-number is an even number the board uses a single 8Mbit SGRAM for some of the work RAM, if an odd number it uses two 4Mbit SDRAMs.
295Note there are MANY missing. Please help to update this list if you have info for others not listed here.
296
297837-11076    IC BD SATURN MAIN VA0.5        171-6874E PC BD SATURN MAIN VA0.5      (C) SEGA 1994
298837-11076-01 IC BD SATURN MAIN VA0 CCI      171-6874D PC BD SATURN MAIN VA0.5      (C) SEGA 1994
299837-11491    IC BD SATURN MAIN VA0          171-6962A PC BD SATURN MAIN VA0 USA    (C) SEGA 1995
300837-11493    IC BD SATURN MAIN VA0 PAL      171-6963B PC BD SATURN MAIN VA0 PAL    (C) SEGA 1995
301837-11613-01 IC BD SATURN MAIN VA1          171-7006C PC BD SATURN MAIN VA1        (C) SEGA 1995
302837-11892-01 PAL                            171-7069B MAIN                         (C) SEGA 1995
303837-12126    IC BD SATURN MAIN VA SG        171-7128B PC BD SATURN MAIN VA SG      (C) SEGA 1995
304837-12126    IC BD SATURN MAIN VA SG        171-7128C PC BD SATURN MAIN VA SG      (C) SEGA 1995
305837-12133    IC BD SATURN MAIN VA SD        171-7130C PC BD SATURN MAIN VA SD      (C) SEGA 1995
306837-12134    IC BD SATURN MAIN VA USA SD    171-7130C PC BD SATURN MAIN VA USA SD  (C) SEGA 1995
307837-12135    IC BD SATURN MAIN VA PAL SD    171-7131A PC BD SATURN MAIN VA PAL SD  (C) SEGA 1995
308837-12459    IC BD SATURN MAIN VA6 JPN SG   171-7207A PC BD SATURN MAIN VA6 SG     (C) SEGA 1996
309837-12468    IC BD SATURN MAIN VA8 JPN OCU  171-7209C PC BD SATURN MAIN VA8 OCU    (C) SEGA 1996
310837-12643    IC BD SATURN MAIN VA7 USA SD   171-7208C PC BD SATURN MAIN VA7 USA SD (C) SEGA 1996
311(none)                                      171-7291B PC BD SATURN MAIN VA9 PAL    (C) SEGA 1996
312(none)                                      171-7291C PC BD SATURN MAIN VA9        (C) SEGA 1996
313837-12650    IC BD SATURN MAIN VA13 JPN     171-7???? PC BD SATURN MAIN VA13       (C) SEGA 1996
314837-12845    IC BD SATURN MAIN VA13 USA     171-7???? PC BD SATURN MAIN VA13       (C) SEGA 1996
315837-12992    IC BD SATURN MAIN VA7 PAL      171-7424A PC BD SATURN MAIN VA7 PAL    (C) SEGA 1996
316837-13100    IC BD SATURN MAIN VA13 PAL     171-7455D PC BD SATURN MAIN VA13 PAL   (C) SEGA 1997
317837-13137    IC BD SATURN MAIN VA15 JPN     171-7462B PC BD SATURN MAIN VA15       (C) SEGA 1997
318
319
320Motherboard Variations Summary
321------------------------------
322
323NTSC
324----
325- VA0: First revision. CD Block (YGR019A & HD6437097) is on a daughterboard. Power supply mounted on top casing.
326  Has 40 pin DIP EPROM or mask ROM for BIOS. Larger board with control ports on the main board. Uses JVC CD drive units ENR-007B/ENR-007D.
327- VA1: marked as 'VA' on the main board. Power supply is now bottom mounted and plugs in on top into 5 pins on the main board. Most sub boards
328  integrated into the main board except the controller ports which are on a small sub board. BIOS is SOP40 mask ROM located on the bottom side of
329  the main board. Battery-backup RAM and the VRAM are also on the bottom side of the main board. Uses ENR-007D CD drive units.
330- VA2 & VA3: Mostly same as VA1. VA2 is marked as 'VA SG' (uses SGRAM), and VA3 is marked as VA SD (uses SDRAM). Uses ENR-011A CD drive units.
331- VA4 & VA5: Same as VA2 and VA3 but in a cheaper model 2 case. Uses ENR-011A CD drive units.
332- VA6: One single PCB for everything. Uses an off-the-shelf PLL chip (CY2292). Some custom chips have been revised and have different 315-xxxx numbers.
333  BIOS and battery-backed RAM moved to the top side of the main board. Power supply has 4 pins and generates only +5VDC. Uses ENR-013A CD drive unit
334  or Sanyo 610-6185-30 CD drive unit.
335- VA6 & VA7 has the CD Block reduced to a single IC (YGR022). Some custom chips have been revised and have different 315-xxxx numbers.
336- VA8 & VA9 still has the CD Block ICs separated. VA9 uses the old type PLL chip (315-5746).
337- VA10 to VA15: uses HQA-001A CD drive unit or Sanyo 610-6294-30 / 610-6473-30 CD drive unit. 68000 & YMF292 integrated into a single IC (315-5965).
338  The integrated sound IC has a bug with certain 68000 commands.
339- VA11 has a small daughter board mounted on the main board to fix a design fault (possibly to fix the above sound IC problem?)
340- VA11+ boards use a smaller TSSOP20 audio DAC, VA10 uses the old one.
341- VA12, VA14 and VA16 might not exist.
342- VA13 fixes the design fault on VA11 so the patch board is no longer needed.
343- VA15 integrates the two SH-2 main CPUs into a larger single IC (HD6417098 / 315-6018).
344
345PAL (only the main differences to the above are listed)
346---
347- No PAL board ever used SGRAM.
348- All PAL boards have an odd VA-number.
349- All PAL boards have a 5 pin power connector and use a 5 pin power supply.
350- All PAL boards use different region & video output jumpers when compared to NTSC machines.
351- All PAL boards use a 17.7344MHz master clock (NTSC units use 14.31818MHz).
352- All PAL boards replace the composite sync output on the A/V OUT connector with 9VDC which is used for SCART auto switching. The 9VDC power comes from
353  pin 5 of the power supplies with a 5 pin connector. Composite sync is still there at TP4 on the bottom of the board but not wired into the A/V OUT port.
354- VA0 PAL - has extra jumpers to set the master clock divider (JP18 & 19), functional but unpopulated 50/60Hz switch on the back (SW4).
355- VA1 PAL - unpopulated 50/60Hz switch on the back (SW4). There is a design fault as it is still connected to the master clock divider select pin.
356  Therefore the switch does not work on its own, you have to cut or raise & ground the PLL pin 1 for the switch to work.
357- VA3 PAL - has extra jumpers to set the master clock divider (JP20 & 21), functional but unpopulated 50/60Hz switch on the back (SW4).
358- VA5 PAL - same as VA3 PAL.
359- VA7 PAL - Unlike NTSC boards, this still uses the old PLL (315-5746) and pin 1 is connected to the PAL/NTSC and 50/60Hz selection pins on the video
360            encoder and the VDP2.
361- VA9 - same as VA7 PAL.
362- VA13 PAL - Other than a 5 pin power connector it's identical to the NTSC VA13 board.
363- VA17 PAL - probably the final revision specifically for EU/PAL regions. Differences are unknown.
364
365Power supplies
366--------------
367Type A is used on VA0 main boards and is mounted to the top casing. Pinout is GND, GND, 3.3V, 5V, (empty pin), 9V. (5 pins total)
368Type B is used on VA1 to VA5 main boards and is bottom mounted. Pinout is GND, GND, 3.3V, 5V, 9V. (5 pins total)
369Type C is used on VA6+ main boards and is bottom mounted. Pinout is GND, GND, 5V, 5V (4 pins total).
370PAL units use either Type B or a 5-pin version of Type C power supplies. On earlier boards such as 'VA' the 9V pin is connected to pin 1 of the CD ROM
371unit power supply cable connector on the main board. On later boards it's also connected to the A/V OUT port for SCART auto switching.
372
373CD Drives
374---------
375With 20 pin flat cable connector, VA0-VA1:
376- JVC ENR-007B EMW10447-003E
377- JVC ENR-007B EMW10447-004E
378- JVC ENR-007D EMW10447-005E
379- JVC ENR-007D EMW10447-006E
380- Hitachi JA00292
381
382With 21 pin flat cable connector, VA2-VA5:
383- JVC ENR-011A EMW10589-002
384- JVC ENR-011A EMW10589-003
385
386With 21 pin flat cable connector, VA6-VA9:
387- JVC ENR-013A EMW20035-002 610-6185-20
388- Sanyo 610-6185-30 (sometimes with an extra protection board where the flat cable plugs in)
389
390With 21 pin flat cable connector, VA10-VA15:
391- JVC HQA-001A HQ100002-002 610-6294-20
392- Sanyo 610-6294-30 \
393- Sanyo 610-6473-30 / (sometimes with an extra protection board where the flat cable plugs in)
394These are the same as the VA6-VA9 units but lack an oscillator and have a white border on the edges of the PCB.
395
396Optical pickups used - JVC drive: Optima-6, Hitachi drive: HOP-6, Sanyo drive: SF-P101 is used in the 610-6185-30
397
398****************************************************************************************************
399
400Emulation Notes:
14401-To enter into an Advanced Test Mode,keep pressed the Test Button (F2) on the start-up.
15402-Memo: Some tests done on the original & working PCB,to be implemented:
16403 -The AD-Stick returns 0x00 or a similar value.
trunk/src/mame/drivers/segac2.c
r249893r249894
3030    1992  Puyo Puyo                  Sega / Compile    317-0203         C2     171-5992A
3131    1992  Tant-R (Japan)             Sega              317-0211         C2
3232    1992  Tant-R (Korea)             Sega              ?                C2
33   1993  SegaSonic Popcorn Shop     Sega              317-0140         C2
3334    1994  PotoPoto (Japan)           Sega              317-0218         C2
3435    1994  Stack Columns (Japan)      Sega              317-0219         C2
3536    1994  Stack Columns (World)      Sega              317-0223         C2
r249893r249894
931932INPUT_PORTS_END
932933
933934
935
936static INPUT_PORTS_START( sonicpop )
937   PORT_INCLUDE( systemc_generic )
938
939   PORT_MODIFY("P1")
940   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Relay")  // relay (must be ON by default or machine will instantly give an 'assistance' error)
941   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Coinblock") // coinblock (inverted)
942   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Sensor") // sensor
943   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
944   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Cup Select 1")  // cup select 2
945   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Cup Select 1") // cup select 1
946   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Handle B")  // handle B
947   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Handle A")  // handle A
948
949   PORT_MODIFY("P2")
950   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON9 )  PORT_NAME("Sold Out LED1") // sold out LED 1
951   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Sold Out LED2") // sold out LED 2
952   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON11 ) PORT_NAME("Sold Out LED3") // sold out LED 3
953   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
954   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Sold Out SW2") // sold out SW 2
955   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Sold Out SW3") // sold out SW 3
956   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
957   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Sold Out SW1") // sold out SW 1
958
959   PORT_MODIFY("SERVICE")
960   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) // coin
961   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) // 'reset'
962   PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW )
963   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
964   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
965   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
966   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
967   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
968
969   PORT_MODIFY("DSW")
970   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:1")
971   PORT_DIPSETTING(    0x01, DEF_STR( On ) )
972   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
973   PORT_DIPNAME( 0x02, 0x02, "Trouble BGM" ) PORT_DIPLOCATION("SW2:2")
974   PORT_DIPSETTING(    0x02, DEF_STR( On ) )
975   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
976   PORT_DIPNAME( 0x0c, 0x00, "Region" ) PORT_DIPLOCATION("SW2:3,4")
977   PORT_DIPSETTING(    0x00, DEF_STR( USA ) )
978   PORT_DIPSETTING(    0x04, "Export" )
979   PORT_DIPSETTING(    0x08, "USA (duplicate)" )
980   PORT_DIPSETTING(    0x0c, DEF_STR( Japan ) )
981   PORT_DIPNAME( 0x10, 0x10, "Sensor Advertise" ) PORT_DIPLOCATION("SW2:5")
982   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
983   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
984   PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:6" )
985   PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW2:7" )
986   PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" )
987INPUT_PORTS_END
988
989
934990static INPUT_PORTS_START( ribbit )
935991   PORT_INCLUDE( systemc_generic )
936992
r249893r249894
16351691   ROM_LOAD( "epr-14394.ic4", 0x000000, 0x040000, CRC(476e30dd) SHA1(c9d381160c58b05763ea286a53c7ca6de074fda2) )
16361692ROM_END
16371693
1694ROM_START( sonicpop ) /* Sega Sonic Popcorn Shop (Rev.B) (c)1993 Sega - 834-9555-02 (EMP5032 labeled 317-0140) */
1695   ROM_REGION( 0x200000, "maincpu", 0 )
1696   ROM_LOAD16_BYTE( "epr-14592b.ic32", 0x000000, 0x040000, CRC(bac586a1) SHA1(0208213bfa1a5093e76edb1a7e0ba5ebc862801d) )
1697   ROM_LOAD16_BYTE( "epr-15491b.ic31", 0x000001, 0x040000, CRC(527106c3) SHA1(97f08006bba4b87c304c7ad3b1480b77e99dff10) )
1698   ROM_LOAD16_BYTE( "epr-15494.ic34", 0x100000, 0x040000, CRC(0520df5e) SHA1(5a795a1630d841406a106a566228223583deef44) )
1699   ROM_LOAD16_BYTE( "epr-15493.ic33", 0x100001, 0x040000, CRC(d51b3b85) SHA1(66f6b4656841ab70ffde0141a613eaf91c06f86b) )
16381700
1701   ROM_REGION( 0x040000, "upd", 0 )
1702   ROM_LOAD( "epr-15495.ic4", 0x000000, 0x040000, CRC(d3ee4c68) SHA1(557c57b22521339d94d9a3e6fd2af68a67a153b6) )
1703ROM_END
1704
16391705ROM_START( ribbit ) /* Ribbit  (c)1991 Sega */
16401706   ROM_REGION( 0x200000, "maincpu", 0 )
16411707   ROM_LOAD16_BYTE( "epr-13833.ic32", 0x000000, 0x040000, CRC(5347f8ce) SHA1(b95b99536157edfbf0d74a42f64235f47dca7ee1) )
r249893r249894
23192385//    YEAR, NAME,      PARENT,   MACHINE,INPUT,    INIT,     MONITOR,COMPANY,FULLNAME,FLAGS
23202386/* System C Games */
23212387GAME( 1989, bloxeedc,  bloxeed,  segac,  bloxeedc, segac2_state, bloxeedc, ROT0,   "Sega / Elorg", "Bloxeed (World, C System)", 0 )
2322GAME( 1989, bloxeedu,  bloxeed,  segac,  bloxeedc, segac2_state, bloxeedc, ROT0,   "Sega / Elorg", "Bloxeed (US, C System)", 0 )
2388GAME( 1989, bloxeedu,  bloxeed,  segac,  bloxeedc, segac2_state, bloxeedc, ROT0,   "Sega / Elorg", "Bloxeed (US, C System, Rev A)", 0 )
23232389
23242390GAME( 1990, columns,   0,        segac,  columns, segac2_state,  columns,  ROT0,   "Sega", "Columns (World)", 0 )
2325GAME( 1990, columnsu,  columns,  segac,  columnsu, segac2_state, columns,  ROT0,   "Sega", "Columns (US, cocktail)", 0 ) // has cocktail mode dsw
2391GAME( 1990, columnsu,  columns,  segac,  columnsu, segac2_state, columns,  ROT0,   "Sega", "Columns (US, cocktail, Rev A)", 0 ) // has cocktail mode dsw
23262392GAME( 1990, columnsj,  columns,  segac,  columns, segac2_state,  columns,  ROT0,   "Sega", "Columns (Japan)", 0 )
23272393
23282394GAME( 1990, columns2,  0,        segac,  columns2, segac2_state, columns2, ROT0,   "Sega", "Columns II: The Voyage Through Time (World)", 0 )
r249893r249894
23532419GAME( 1994, tantrbl2,  tantr,    segac,  ichir, segac2_state,    tantr,    ROT0,   "bootleg", "Puzzle & Action: Tant-R (Japan) (bootleg set 2)", 0 ) // Common bootleg in Europe, C board, no samples
23542420GAME( 1994, tantrbl3,  tantr,    segac,  ichir, segac2_state,    tantr,    ROT0,   "bootleg", "Puzzle & Action: Tant-R (Japan) (bootleg set 3)", 0 ) // Common bootleg in Europe, C board, no samples
23552421
2422// not really sure how this should hook up, things like the 'sold out' flags could be mechanical sensors, or from another MCU / CPU board in the actual popcorn part of the machine?
2423GAME( 1993, sonicpop,   0,       segac2, sonicpop, segac2_state, bloxeedc, ROT0,   "Sega", "SegaSonic Popcorn Shop (Rev B)", MACHINE_MECHANICAL ) // region DSW for USA / Export / Japan, still speaks Japanese tho.  'Mechanical' part isn't emulated
2424
23562425GAME( 1994, potopoto,  0,        segac2, potopoto, segac2_state, potopoto, ROT0,   "Sega", "Poto Poto (Japan)", 0 )
23572426
23582427GAME( 1994, stkclmns,  0,        segac2, stkclmns, segac2_state, stkclmns, ROT0,   "Sega", "Stack Columns (World)", 0 )
trunk/src/mame/drivers/shougi.c
r249893r249894
6262DIPSW : 6 position (x1)
6363       Positions 1, 5 & 6 not used
6464
65    4   3   2
66       ------------------------------
67       OFF  OFF OFF 1 minutes (time for the opponent to make his decision)
68       OFF  OFF ON  2
69       OFF  ON  OFF 3
70       OFF  ON  ON  4
71       ON   OFF OFF 5
72       ON   OFF ON  10
73       ON   ON  OFF 20
74       ON   ON  ON  30
65    4    3    2
66    ------------------------------
67    OFF  OFF  OFF  1 minutes (time for the opponent to make his decision)
68    OFF  OFF  ON   2
69    OFF  ON   OFF  3
70    OFF  ON   ON   4
71    ON   OFF  OFF  5
72    ON   OFF  ON   10
73    ON   ON   OFF  20
74    ON   ON   ON   30
7575
7676ROMs  : All type 2732
7777PROM  : Type MB7051
7878
79
80
81
8279**************************************************************************/
8380
84
85
8681#include "emu.h"
8782#include "cpu/alph8201/alph8201.h"
83//#include "cpu/hmcs40/hmcs40.h"
8884#include "cpu/z80/z80.h"
8985#include "sound/ay8910.h"
9086#include "video/resnet.h"
9187
88
9289class shougi_state : public driver_device
9390{
9491public:
r249893r249894
9794      m_maincpu(*this, "maincpu"),
9895      m_subcpu(*this, "sub"),
9996      m_mcu(*this, "mcu"),
100      m_videoram(*this, "videoram") { }
97      m_videoram(*this, "videoram")
98   { }
10199
102100   required_device<cpu_device> m_maincpu;
103101   required_device<cpu_device> m_subcpu;
r249893r249894
107105
108106   int m_nmi_enabled;
109107   int m_r;
110   //UINT8 *m_cpu_sharedram;
111   //UINT8 m_cpu_sharedram_control_val;
112108
113   DECLARE_WRITE8_MEMBER(cpu_sharedram_sub_w);
114   DECLARE_WRITE8_MEMBER(cpu_sharedram_main_w);
115   DECLARE_READ8_MEMBER(cpu_sharedram_r);
116   DECLARE_WRITE8_MEMBER(cpu_shared_ctrl_sub_w);
117   DECLARE_WRITE8_MEMBER(cpu_shared_ctrl_main_w);
118   DECLARE_WRITE8_MEMBER(mcu_halt_off_w);
119   DECLARE_WRITE8_MEMBER(mcu_halt_on_w);
120   DECLARE_WRITE8_MEMBER(nmi_disable_and_clear_line_w);
121   DECLARE_WRITE8_MEMBER(nmi_enable_w);
109   DECLARE_WRITE8_MEMBER(control_w);
122110   DECLARE_READ8_MEMBER(dummy_r);
123111
124112   DECLARE_PALETTE_INIT(shougi);
r249893r249894
132120
133121void shougi_state::machine_start()
134122{
123   m_nmi_enabled = 0;
124   m_r = 0;
125   
135126   save_item(NAME(m_nmi_enabled));
136127   save_item(NAME(m_r));
137128}
138129
139130
131
140132/***************************************************************************
141133
142  Convert the color PROMs into a more useable format.
134  Video
143135
136***************************************************************************/
144137
138/***************************************************************************
139
140  Convert the color PROMs into a more useable format.
141
145142  bit 0 -- 1000 ohm resistor--\
146143  bit 1 -- 470 ohm resistor --+--+--> RED
147144  bit 2 -- 220 ohm resistor --/  \---------------1000 ohm resistor---\
r249893r249894
153150
154151***************************************************************************/
155152
156
157153PALETTE_INIT_MEMBER(shougi_state, shougi)
158154{
159155   const UINT8 *color_prom = memregion("proms")->base();
160   int i;
161156   static const int resistances_b[2]  = { 470, 220 };
162157   static const int resistances_rg[3] = { 1000, 470, 220 };
163158   double weights_r[3], weights_g[3], weights_b[2];
164159
165
166   compute_resistor_weights(0, 255,    -1.0,
160   compute_resistor_weights(0, 255, -1.0,
167161         3,  resistances_rg, weights_r,  1000, 0,
168162         3,  resistances_rg, weights_g,  1000, 0,
169163         2,  resistances_b,  weights_b,  1000, 0);
170164
171   for (i = 0;i < palette.entries();i++)
165   for (int i = 0; i < palette.entries(); i++)
172166   {
173167      int bit0,bit1,bit2,r,g,b;
174168
r249893r249894
194188}
195189
196190
197
198
199191UINT32 shougi_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
200192{
201   int offs;
202
203   for (offs = 0;offs <0x4000; offs++)
193   for (int offs = 0; offs < 0x4000; offs++)
204194   {
205195      int sx, sy, x, data1, data2, color, data;
206196
207197      sx = offs >> 8;     /*00..0x3f (64*4=256)*/
208198      sy = offs & 0xff;   /*00..0xff*/
209      //if (flipscreen[0]) sx = 31 - sx;
210      //if (flipscreen[1]) sy = 31 - sy;
211199
212      data1 = m_videoram[offs];               /* color */
200      data1 = m_videoram[offs];           /* color */
213201      data2 = m_videoram[0x4000 + offs];  /* pixel data */
214202
215203      for (x=0; x<4; x++) /*4 pixels per byte (2 bitplanes in 2 nibbles: 1st=bits 7-4, 2nd=bits 3-0)*/
r249893r249894
224212   return 0;
225213}
226214
227#if 0
228215
229//to do:
230// add separate sharedram/r/w() for both CPUs and use control value to verify access
231216
232WRITE8_MEMBER(shougi_state::cpu_sharedram_sub_w)
233{
234   if (m_cpu_sharedram_control_val!=0) logerror("sub CPU access to shared RAM when access set for main cpu\n");
235   m_cpu_sharedram[offset] = data;
236}
217/***************************************************************************
237218
238WRITE8_MEMBER(shougi_state::cpu_sharedram_main_w)
239{
240   if (m_cpu_sharedram_control_val!=1) logerror("main CPU access to shared RAM when access set for sub cpu\n");
241   m_cpu_sharedram[offset] = data;
242}
219  I/O
243220
244READ8_MEMBER(shougi_state::cpu_sharedram_r)
245{
246   return m_cpu_sharedram[offset];
247}
221***************************************************************************/
248222
249#endif
223// maincpu side
250224
251WRITE8_MEMBER(shougi_state::cpu_shared_ctrl_sub_w)
225WRITE8_MEMBER(shougi_state::control_w)
252226{
253   //m_cpu_sharedram_control_val = 0;
254   //logerror("cpu_sharedram_ctrl=SUB");
255}
227   // 4800-480f connected to the 74LS259, A3 is data line
228   // so 4800-4807 write 0, and 4808-480f write 1
229   data = offset >> 3 & 1;
230   offset &= 7;
256231
257WRITE8_MEMBER(shougi_state::cpu_shared_ctrl_main_w)
258{
259   //m_cpu_sharedram_control_val = 1;
260   //logerror("cpu_sharedram_ctrl=MAIN");
261}
262
263WRITE8_MEMBER(shougi_state::mcu_halt_off_w)
264{
265   /* logerror("mcu HALT OFF"); */
266   m_mcu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
267}
268
269WRITE8_MEMBER(shougi_state::mcu_halt_on_w)
270{
271   /* logerror("mcu HALT ON"); */
272   m_mcu->set_input_line(INPUT_LINE_HALT,ASSERT_LINE);
273}
274
275
276WRITE8_MEMBER(shougi_state::nmi_disable_and_clear_line_w)
277{
278   m_nmi_enabled = 0; /* disable NMIs */
279
280   /* NMI lines are tied together on both CPUs and connected to the LS74 /Q output */
281   m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
282   m_subcpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
283}
284
285WRITE8_MEMBER(shougi_state::nmi_enable_w)
286{
287   m_nmi_enabled = 1; /* enable NMIs */
288}
289
290INTERRUPT_GEN_MEMBER(shougi_state::vblank_nmi)
291{
292   if ( m_nmi_enabled == 1 )
232   switch (offset)
293233   {
294      /* NMI lines are tied together on both CPUs and connected to the LS74 /Q output */
295      m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
296      m_subcpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
234      case 0:
235         // TODO
236         // 0: sharedram = sub
237         // 1: sharedram = main
238         break;
239     
240      case 1:
241         m_nmi_enabled = data;
242
243         // NMI lines are tied together on both CPUs and connected to the LS74 /Q output
244         if (!m_nmi_enabled)
245         {
246            m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
247            m_subcpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
248         }
249         break;
250     
251      case 4:
252         m_mcu->set_input_line(INPUT_LINE_HALT, data ? ASSERT_LINE : CLEAR_LINE);
253         break;
254     
255      default:
256         // 7: ?????? connected to +5v via resistor
257         break;
297258   }
298259}
299260
300261
301262static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, shougi_state )
302263   AM_RANGE(0x0000, 0x3fff) AM_ROM
303   AM_RANGE(0x4000, 0x43ff) AM_RAM     /* 2114 x 2 (0x400 x 4bit each) */
304
305   /* 4800-480f connected to the 74LS259, A3 is data line so 4800-4807 write 0, and 4808-480f write 1 */
306   AM_RANGE(0x4800, 0x4800) AM_READ_PORT("DSW") AM_WRITE(cpu_shared_ctrl_sub_w)
307   AM_RANGE(0x4801, 0x4801) AM_WRITE(nmi_disable_and_clear_line_w)
308   AM_RANGE(0x4802, 0x4802) AM_NOP
309   AM_RANGE(0x4803, 0x4803) AM_NOP
310   AM_RANGE(0x4804, 0x4804) AM_WRITE(mcu_halt_off_w)
311   AM_RANGE(0x4807, 0x4807) AM_WRITENOP    //?????? connected to +5v via resistor
312   AM_RANGE(0x4808, 0x4808) AM_WRITE(cpu_shared_ctrl_main_w)
313   AM_RANGE(0x4809, 0x4809) AM_WRITE(nmi_enable_w)
314   AM_RANGE(0x480a, 0x480a) AM_NOP
315   AM_RANGE(0x480b, 0x480b) AM_NOP
316   AM_RANGE(0x480c, 0x480c) AM_WRITE(mcu_halt_on_w)
317   AM_RANGE(0x480f, 0x480f) AM_NOP
318
264   AM_RANGE(0x4000, 0x43ff) AM_RAM /* 2114 x 2 (0x400 x 4bit each) */
265   AM_RANGE(0x4800, 0x480f) AM_WRITE(control_w)
266   AM_RANGE(0x4800, 0x4800) AM_READ_PORT("DSW")
319267   AM_RANGE(0x5000, 0x5000) AM_READ_PORT("P1")
320   AM_RANGE(0x5800, 0x5800) AM_READ_PORT("P2") AM_WRITE(watchdog_reset_w)   /* game won't boot if watchdog doesn't work */
268   AM_RANGE(0x5800, 0x5800) AM_READ_PORT("P2") AM_WRITE(watchdog_reset_w) /* game won't boot if watchdog doesn't work */
321269   AM_RANGE(0x6000, 0x6000) AM_DEVWRITE("aysnd", ay8910_device, address_w)
322270   AM_RANGE(0x6800, 0x6800) AM_DEVWRITE("aysnd", ay8910_device, data_w)
323271   AM_RANGE(0x7000, 0x73ff) AM_RAM AM_SHARE("share1") /* 2114 x 2 (0x400 x 4bit each) */
324272   AM_RANGE(0x7800, 0x7bff) AM_RAM AM_SHARE("share2") /* 2114 x 2 (0x400 x 4bit each) */
325
326   AM_RANGE(0x8000, 0xffff) AM_RAM AM_SHARE("videoram")    /* 4116 x 16 (32K) */
273   AM_RANGE(0x8000, 0xffff) AM_RAM AM_SHARE("videoram") /* 4116 x 16 (32K) */
327274ADDRESS_MAP_END
328275
329/* sub */
276
277// subcpu side
278
330279READ8_MEMBER(shougi_state::dummy_r)
331280{
281   // ?
332282   m_r ^= 1;
333283
334   if(m_r)
284   if (m_r)
335285      return 0xff;
336286   else
337287      return 0;
338288}
339289
340static ADDRESS_MAP_START( readport_sub, AS_IO, 8, shougi_state )
341   ADDRESS_MAP_GLOBAL_MASK( 0x00ff )
342   AM_RANGE(0x00, 0x00) AM_READ(dummy_r)
343ADDRESS_MAP_END
344290
345291static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, shougi_state )
346292   AM_RANGE(0x0000, 0x5fff) AM_ROM
347293   AM_RANGE(0x6000, 0x63ff) AM_RAM AM_SHARE("share2") /* 2114 x 2 (0x400 x 4bit each) */
348294ADDRESS_MAP_END
349295
296static ADDRESS_MAP_START( readport_sub, AS_IO, 8, shougi_state )
297   ADDRESS_MAP_GLOBAL_MASK(0x00ff)
298   AM_RANGE(0x00, 0x00) AM_READ(dummy_r)
299ADDRESS_MAP_END
300
301
302// mcu side (fake!)
303
350304static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, shougi_state )
351305   AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE("share1")
352306ADDRESS_MAP_END
353307
354308
355309
310/***************************************************************************
311
312  Inputs
313
314***************************************************************************/
315
356316static INPUT_PORTS_START( shougi )
357317   PORT_START("P1")
358318   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START2 )
359319   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 )
360   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1)
361   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1)
362   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
363   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
364   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
365   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
320   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 )
321   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 )
322   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
323   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
324   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
325   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
366326
367327   PORT_START("P2")
368328   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
369329   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
370330   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
371331   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
372   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
373   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
374   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
375   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP  ) PORT_8WAY PORT_PLAYER(2)
332   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
333   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
334   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
335   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP  ) PORT_PLAYER(2)
376336
377337   // dip switch order is not sequential. Only 2,3,4, and 5 identified.
378338   // 1 and 6 missing, with three possible positions (the third available
r249893r249894
413373
414374
415375
376/***************************************************************************
377
378  Machine Config
379
380***************************************************************************/
381
382INTERRUPT_GEN_MEMBER(shougi_state::vblank_nmi)
383{
384   if (m_nmi_enabled)
385   {
386      m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
387      m_subcpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
388   }
389}
390
391
416392static MACHINE_CONFIG_START( shougi, shougi_state )
417393
418   MCFG_CPU_ADD("maincpu", Z80,10000000/4)
394   /* basic machine hardware */
395   MCFG_CPU_ADD("maincpu", Z80, XTAL_10MHz/4)
419396   MCFG_CPU_PROGRAM_MAP(main_map)
420397   MCFG_CPU_VBLANK_INT_DRIVER("screen", shougi_state, vblank_nmi)
421398
422   MCFG_CPU_ADD("sub", Z80,10000000/4)
399   MCFG_CPU_ADD("sub", Z80, XTAL_10MHz/4)
423400   MCFG_CPU_PROGRAM_MAP(sub_map)
424401   MCFG_CPU_IO_MAP(readport_sub)
425   /* NMIs triggered in vblank_nmi() */
426402
427   /* MCU */
428   MCFG_CPU_ADD("mcu", ALPHA8201, 10000000/4/8)
403   MCFG_CPU_ADD("mcu", ALPHA8201, XTAL_10MHz/4/8)
429404   MCFG_CPU_PROGRAM_MAP(mcu_map)
430405
431   MCFG_QUANTUM_TIME(attotime::from_hz(600))
432   MCFG_WATCHDOG_VBLANK_INIT(16)   // assuming it's the same as champbas
406   MCFG_QUANTUM_PERFECT_CPU("maincpu")
407   MCFG_WATCHDOG_VBLANK_INIT(16) // assuming it's the same as champbas
433408
434409   /* video hardware */
435410   MCFG_SCREEN_ADD("screen", RASTER)
r249893r249894
446421   /* sound hardware */
447422   MCFG_SPEAKER_STANDARD_MONO("mono")
448423
449   MCFG_SOUND_ADD("aysnd", AY8910, 10000000/8)
424   MCFG_SOUND_ADD("aysnd", AY8910, XTAL_10MHz/8)
450425   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
451426MACHINE_CONFIG_END
452427
453428
454429
430/***************************************************************************
431
432  Game driver(s)
433
434***************************************************************************/
435
455436ROM_START( shougi )
456437   ROM_REGION( 0x10000, "maincpu", 0 )
457438   ROM_LOAD( "1.3a",    0x0000, 0x1000, CRC(b601303f) SHA1(ed07fb09053e15be49f4cb66e8916d1bdff48336) )
r249893r249894
459440   ROM_LOAD( "2.3b",    0x2000, 0x1000, CRC(09cb831f) SHA1(5a83a22d9245f980fe6a495433e51437d1f95644) )
460441   ROM_LOAD( "4.3d",    0x3000, 0x1000, CRC(ad1a642a) SHA1(d12b10f94a568d1126384e14af4b53c5e5b1a0d0) )
461442
462   ROM_REGION( 0x10000, "sub", 0 )
443   ROM_REGION( 0x10000, "sub", ROMREGION_ERASE00 )
463444   ROM_LOAD( "5.3e",    0x0000, 0x1000, CRC(ff1f07d0) SHA1(ae5bab09916b6d4ad8d3568ea39501850bdc6991) )
464445   ROM_LOAD( "8.3j",    0x1000, 0x1000, CRC(6230c4c1) SHA1(0b2c81bb02c270ed3bb5b42c4bd4eb25023090cb) )
465446   ROM_LOAD( "6.3f",    0x2000, 0x1000, CRC(d5a91b16) SHA1(1d21295667c3eb186f9e7f867763f2f2697fd350) )
r249893r249894
474455   ROM_LOAD( "pr.2l",   0x0000, 0x0020, CRC(cd3559ff) SHA1(a1291b06a8a337943660b2ef62c94c49d58a6fb5) )
475456ROM_END
476457
458
477459ROM_START( shougi2 )
478460   ROM_REGION( 0x10000, "maincpu", 0 )
479461   ROM_LOAD( "1-2.3a",    0x0000, 0x1000, CRC(16d75306) SHA1(2d090396abd1fe2b31cb8450cc5d2fbde75e0230) )
r249893r249894
497479ROM_END
498480
499481
500
501GAME( 1982, shougi,  0,      shougi, shougi, driver_device,  0, ROT0, "Alpha Denshi Co.", "Shougi", MACHINE_SUPPORTS_SAVE )
502GAME( 1982, shougi2, shougi, shougi, shougi2, driver_device, 0, ROT0, "Alpha Denshi Co.", "Shougi 2", MACHINE_SUPPORTS_SAVE )
482/*    YEAR  NAME     PARENT  MACHINE  INPUT    INIT              MONITOR, COMPANY, FULLNAME, FLAGS */
483GAME( 1982, shougi,  0,      shougi,  shougi,  driver_device, 0, ROT0, "Alpha Denshi Co. (Tehkan license)", "Shougi", MACHINE_SUPPORTS_SAVE )
484GAME( 1982, shougi2, 0,      shougi,  shougi2, driver_device, 0, ROT0, "Alpha Denshi Co. (Tehkan license)", "Shougi Part II", MACHINE_SUPPORTS_SAVE )
trunk/src/mame/drivers/sorcerer.c
r249893r249894
489489***************************************************************************/
490490ROM_START(sorcerer)
491491   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
492   ROM_LOAD("exmo1-1.dat", 0xe000, 0x0800, CRC(ac924f67) SHA1(72fcad6dd1ed5ec0527f967604401284d0e4b6a1) ) /* monitor roms */
493   ROM_LOAD("exmo1-2.dat", 0xe800, 0x0800, CRC(ead1d0f6) SHA1(c68bed7344091bca135e427b4793cc7d49ca01be) )
494   ROM_LOAD("exchr-1.dat", 0xf800, 0x0400, CRC(4a7e1cdd) SHA1(2bf07a59c506b6e0c01ec721fb7b747b20f5dced) ) /* char rom */
492   ROM_LOAD("exmo1-1.1e",   0xe000, 0x0800, CRC(ac924f67) SHA1(72fcad6dd1ed5ec0527f967604401284d0e4b6a1) ) /* monitor roms */
493   ROM_LOAD("exmo1-2.2e",   0xe800, 0x0800, CRC(ead1d0f6) SHA1(c68bed7344091bca135e427b4793cc7d49ca01be) )
494   ROM_LOAD("exchr-1.20d",  0xf800, 0x0400, CRC(4a7e1cdd) SHA1(2bf07a59c506b6e0c01ec721fb7b747b20f5dced) ) /* char rom */
495495ROM_END
496496
497497ROM_START(sorcererd)
498498   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
499   ROM_LOAD("diskboot.dat",0xbc00, 0x0100, CRC(d82a40d6) SHA1(cd1ef5fb0312cd1640e0853d2442d7d858bc3e3b) )
500   ROM_LOAD("exmo1-1.dat", 0xe000, 0x0800, CRC(ac924f67) SHA1(72fcad6dd1ed5ec0527f967604401284d0e4b6a1) ) /* monitor roms */
501   ROM_LOAD("exmo1-2.dat", 0xe800, 0x0800, CRC(ead1d0f6) SHA1(c68bed7344091bca135e427b4793cc7d49ca01be) )
502   ROM_LOAD("exchr-1.dat", 0xf800, 0x0400, CRC(4a7e1cdd) SHA1(2bf07a59c506b6e0c01ec721fb7b747b20f5dced) ) /* char rom */
499   ROM_LOAD("diskboot.dat", 0xbc00, 0x0100, CRC(d82a40d6) SHA1(cd1ef5fb0312cd1640e0853d2442d7d858bc3e3b) )
500   ROM_LOAD("exmo1-1.1e",   0xe000, 0x0800, CRC(ac924f67) SHA1(72fcad6dd1ed5ec0527f967604401284d0e4b6a1) ) /* monitor roms */
501   ROM_LOAD("exmo1-2.2e",   0xe800, 0x0800, CRC(ead1d0f6) SHA1(c68bed7344091bca135e427b4793cc7d49ca01be) )
502   ROM_LOAD("exchr-1.20d",  0xf800, 0x0400, CRC(4a7e1cdd) SHA1(2bf07a59c506b6e0c01ec721fb7b747b20f5dced) ) /* char rom */
503503
504504   ROM_REGION( 0x200, "proms", 0 )
505   ROM_LOAD_OPTIONAL("bruce.dat",  0x0000, 0x0020, CRC(fae922cb) SHA1(470a86844cfeab0d9282242e03ff1d8a1b2238d1) ) /* video prom */
505   ROM_LOAD_OPTIONAL("bruce.15b",  0x0000, 0x0020, CRC(fae922cb) SHA1(470a86844cfeab0d9282242e03ff1d8a1b2238d1) ) /* video prom type 6331 */
506506ROM_END
507507
508ROM_START(sorcerer2)
509   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
510   ROM_LOAD("exchr-1.20d",  0xf800, 0x0400, CRC(4a7e1cdd) SHA1(2bf07a59c506b6e0c01ec721fb7b747b20f5dced) ) /* char rom */
511   ROM_SYSTEM_BIOS(0, "standard", "Standard")
512   ROMX_LOAD("exm011-1.1e", 0xe000, 0x0800, CRC(af9394dc) SHA1(d7e0ada64d72d33e0790690be86a36020b41fd0d), ROM_BIOS(1) )
513   ROMX_LOAD("exm011-2.2e", 0xe800, 0x0800, CRC(49978d6c) SHA1(b94127bfe99e5dc1cf5dbbb7d1b099b0ca036cd0), ROM_BIOS(1) )
514   ROM_SYSTEM_BIOS(1, "tvc", "TVI-MON-C-V1.5")
515   ROMX_LOAD("tvc-1.1e",    0xe000, 0x0800, CRC(efc15a18) SHA1(3dee821270a0d83453b18baed88a024dfd0d7a6c), ROM_BIOS(2) )
516   ROMX_LOAD("tvc-2.2e",    0xe800, 0x0800, CRC(bc194487) SHA1(dcfd916558e3e3be22091c5558ea633c332cf6c7), ROM_BIOS(2) )
517ROM_END
518
508519/*   YEAR  NAME       PARENT    COMPAT    MACHINE    INPUT     INIT        COMPANY     FULLNAME */
509520COMP(1979, sorcerer,  0,        0,        sorcerer,  sorcerer, sorcerer_state, sorcerer, "Exidy Inc", "Sorcerer", 0 )
521COMP(1979, sorcerer2, sorcerer, 0,        sorcerer,  sorcerer, sorcerer_state, sorcerer, "Exidy Inc", "Sorcerer 2", 0 )
510522COMP(1979, sorcererd, sorcerer, 0,        sorcererd, sorcerer, sorcerer_state, sorcerer, "Exidy Inc", "Sorcerer (with floppy disks)", 0 )
trunk/src/mame/drivers/subhuntr.c
r0r249894
1// license:BSD-3-Clause
2// copyright-holders:David Haywood
3/*
4
5QTY    Type    clock    position    function
62x    2636          Programmable Video Interface
71x    2650    OSC/2 = 1.7897725 MHz       8-bit Microprocessor - main
81x    oscillator    3.579545 MHz       
9
10ROMs
11QTY    Type    position    status
124x    2708    6F,6H,6L,6N    dumped
131x    N82S115    2B    dumped
14
15RAMs
16QTY    Type    position
172x    2101   
18
19*/
20
21#include "emu.h"
22#include "cpu/s2650/s2650.h"
23#include "machine/s2636.h"
24
25
26class subhuntr_state : public driver_device
27{
28public:
29   subhuntr_state(const machine_config &mconfig, device_type type, const char *tag)
30      : driver_device(mconfig, type, tag),
31      m_maincpu(*this, "maincpu")
32   {
33   }
34
35   required_device<cpu_device> m_maincpu;
36   
37   INTERRUPT_GEN_MEMBER(subhuntr_interrupt);
38
39   virtual void machine_start();
40   virtual void machine_reset();
41   virtual void video_start();
42   DECLARE_PALETTE_INIT(subhuntr);
43   UINT32 screen_update_subhuntr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
44};
45
46
47/***************************************************************************
48
49  Video
50
51***************************************************************************/
52
53PALETTE_INIT_MEMBER(subhuntr_state, subhuntr)
54{
55}
56
57UINT32 subhuntr_state::screen_update_subhuntr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
58{
59   return 0;
60}
61
62void subhuntr_state::video_start()
63{
64}
65
66
67/***************************************************************************
68
69  Memory Maps, I/O
70
71***************************************************************************/
72
73static ADDRESS_MAP_START( subhuntr_map, AS_PROGRAM, 8, subhuntr_state )
74   AM_RANGE(0x0000, 0x0fff) AM_ROM
75   AM_RANGE(0x1c00, 0x1fff) AM_RAM
76ADDRESS_MAP_END
77
78static ADDRESS_MAP_START( subhuntr_io_map, AS_IO, 8, subhuntr_state )
79//   AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE( ,  )
80//   AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE( ,  )
81//   AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
82ADDRESS_MAP_END
83
84/***************************************************************************
85
86  Inputs
87
88***************************************************************************/
89
90static INPUT_PORTS_START( subhuntr )
91   PORT_START("SENSE")
92   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
93INPUT_PORTS_END
94
95
96/***************************************************************************
97
98  Machine Config/Interface
99
100***************************************************************************/
101
102void subhuntr_state::machine_start()
103{
104}
105
106void subhuntr_state::machine_reset()
107{
108}
109
110INTERRUPT_GEN_MEMBER(subhuntr_state::subhuntr_interrupt)
111{
112//   device.execute().set_input_line_and_vector(0, HOLD_LINE, 0x03);
113}
114
115static const gfx_layout tiles8x8_layout =
116{
117   8,8,
118   RGN_FRAC(1,1),
119   1,
120   { 0 },
121   { 0, 1, 2, 3, 4, 5, 6, 7 },
122   { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8 },
123   8*8
124};
125
126static GFXDECODE_START( subhuntr )
127   GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 1 )
128GFXDECODE_END
129
130
131static MACHINE_CONFIG_START( subhuntr, subhuntr_state )
132
133   /* basic machine hardware */
134   MCFG_CPU_ADD("maincpu", S2650, 14318180/4/2)
135   MCFG_CPU_PROGRAM_MAP(subhuntr_map)
136   MCFG_CPU_IO_MAP(subhuntr_io_map)
137   MCFG_CPU_VBLANK_INT_DRIVER("screen", subhuntr_state, subhuntr_interrupt)
138
139//   MCFG_DEVICE_ADD("s2636", S2636, 0)
140//   MCFG_S2636_WORKRAM_SIZE(0x100)
141//   MCFG_S2636_OFFSETS(3, -21)
142//   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
143
144   /* video hardware */
145   MCFG_SCREEN_ADD("screen", RASTER)
146   MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
147   MCFG_SCREEN_REFRESH_RATE(50)
148   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
149   MCFG_SCREEN_SIZE(256, 256)
150   MCFG_SCREEN_VISIBLE_AREA(1*8, 29*8-1, 2*8, 32*8-1)
151   MCFG_SCREEN_UPDATE_DRIVER(subhuntr_state, screen_update_subhuntr)
152   MCFG_SCREEN_PALETTE("palette")
153   
154   MCFG_GFXDECODE_ADD("gfxdecode", "palette", subhuntr)
155
156   MCFG_PALETTE_ADD("palette", 26)
157   MCFG_PALETTE_INIT_OWNER(subhuntr_state, subhuntr)
158
159   /* sound hardware */
160   MCFG_SPEAKER_STANDARD_MONO("mono")
161
162   /* discrete sound */
163MACHINE_CONFIG_END
164
165
166
167/******************************************************************************/
168
169ROM_START( subhuntr )
170   ROM_REGION( 0x1000, "maincpu", 0 )
171   ROM_LOAD( "MR21.6F",  0x0000, 0x0400, CRC(27847939) SHA1(e6b41b511fefac1e1e207eff2dac8c2963d47c5c) )
172   ROM_LOAD( "MR22.6G",  0x0400, 0x0400, CRC(e9af1ee8) SHA1(451e88407a120444377a58b06b65152c57503533) )
173   ROM_LOAD( "MR25.6L",  0x0800, 0x0400, CRC(8271c975) SHA1(c7192658b50d781ab1b94c2e8cb75c5be3539820) )
174   ROM_LOAD( "MR24.6N",  0x0c00, 0x0400, CRC(385c4944) SHA1(84050b0356c9a3a36528dba768f2684e28c6c7c4) )
175
176   ROM_REGION( 0x0200, "gfx1", 0 )
177   ROM_LOAD( "82S115.2B",   0x0000, 0x0200, CRC(6946c9de) SHA1(956b4bebe6960a73609deb75e1493c4127fd7f77) ) // ASCII, not much else
178ROM_END
179
180GAME(1979, subhuntr,  0,        subhuntr, subhuntr, driver_device, 0, ROT0, "Model Racing", "Sub Hunter (Model Racing)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
trunk/src/mame/drivers/suna16.c
r249893r249894
939939
940940   MCFG_QUANTUM_TIME(attotime::from_hz(6000))
941941
942   MCFG_MACHINE_START_OVERRIDE(suna16_state,uballoon)
943   MCFG_MACHINE_RESET_OVERRIDE(suna16_state,uballoon)
944
945
942946   /* video hardware */
943947   MCFG_SCREEN_ADD("screen", RASTER)
944948   MCFG_SCREEN_REFRESH_RATE(60)
trunk/src/mame/drivers/swyft.c
r0r249894
1// license:BSD-3-Clause
2// copyright-holders:Miodrag Milanovic, Jonathan Gevaryahu
3/***************************************************************************
4
5    IAI Swyft Model P0001
6    Copyright (C) 2009-2013 Miodrag Milanovic and Jonathan Gevaryahu AKA Lord Nightmare
7    With information and help from John "Sandy" Bumgarner, Dwight Elvey,
8    Charles Springer, Terry Holmes, Jonathan Sand, Aza Raskin and others.
9
10    See cat.c for the machine which the swyft later became.
11
12    This driver is dedicated in memory of Jef Raskin and Dave Boulton
13
14IAI detailed credits:
15Scott Kim - responsible for fonts on swyft and cat
16Ralph Voorhees - Model construction and mockups (swyft 'flat cat')
17
18Cat HLSL stuff:
19*scanlines:
20the cat has somewhat visible and fairly close scanlines with very little fuzziness
21try hlsl options:
22hlsl_prescale_x           4
23hlsl_prescale_y           4
24scanline_alpha            0.3
25scanline_size             1.0
26scanline_height           0.7
27scanline_bright_scale     1.0
28scanline_bright_offset    0.6
29*phosphor persistence of the original cat CRT is VERY LONG and fades to a greenish-yellow color, though the main color itself is white
30try hlsl option:
31phosphor_life             0.93,0.95,0.87
32which is fairly close but may actually be too SHORT compared to the real thing.
33
34
35Swyft versions:
36There are at least 4 variants of machines called 'swyft':
37* The earliest desktop units which use plexi or rubber-tooled case and an
38  angled monitor; about a dozen were made and at least two of clear plexi.
39  These are sometimes called "wrinkled" swyfts. 5.25" drive, they may be able
40  to read Apple2 Swyftware/Swyftdisk and Swyftcard-created disks.
41  It is possible no prototypes of this type got beyond the 'runs forth console only' stage.
42  http://archive.computerhistory.org/resources/access/physical-object/2011/09/102746929.01.01.lg.JPG
43  http://www.digibarn.com/collections/systems/swyft/Swyft-No2-05-1271.jpg
44  http://www.digibarn.com/friends/jef-raskin/slides/iai/A%20-687%20SWYFTPRO.JPG
45* The early "flat cat" or "roadkill" portable LCD screen units with a white
46  case and just a keyboard. Model SP0001
47  http://www.digibarn.com/collections/systems/swyft/Image82.jpg
48* The later "ur-cat" desktop units which use a machine tooled case and look
49  more or less like the canon cat. Around 100-200 were made. 3.5" drive.
50  These have a fully functional EDDE editor as the cat does, and can even compile
51  forth programs.
52  (the 'swyft' driver is based on one of these)
53* The very late portable LCD units with a dark grey case and a row of hotkey
54  buttons below the screen. Not dumped yet. At least one functional prototype exists.
55  At least one plastic mockup exists with no innards.
56  http://www.digibarn.com/collections/systems/swyft/swyft.jpg
57
58IAI Swyft:
59Board name: 950-0001C
60"INFORMATION APPLIANCE INC. COPYRIGHT 1985"
61 _________________|||||||||___________________________________________________________________________________
62|                     J8               [=======J3=======]  ____                              Trans-           |
63==                                                        /    \  (E2)                       former           |
64==Jx                   74LS107   J5                       |PB1 |        uA339     MC3403                 -----|
65|                                          7407           \____/                                         J7   =
66| Y1       "TIMING B" 74LS132    74LS175                                                                 -----|
67|                                                  ____________                            4N37  Relay   -----|
68| TMS4256   74LS161  "DECODE E" "DISK 3.5C"       |            |                                         J6   =
69|                                                 |  MC6850P   |                                         -----|
70| TMS4256   74LS166   74HCT259   74LS299          '------------'        MC3403    MC3403                 _____|
71|                      ___________________     ___________________             ||                       |     =
72| TMS4256   74LS373   |                   |   |                   |            J2                       | J1  =
73|                     |   MC68008P8       |   |       R6522P      |            ||              I   P R  |     =
74| TMS4256   74F153    '-------------------'   '-------------------'     MN4053 || MN4053       N   R E  | B   =
75|                                    (E1)                                                      D   O S  | R   =
76| TMS4256   74F153    74HCT08     __________   ___________________      MC14412   DS1489       U E T I  | E   =
77|                                |          | |                   | ||                         C S E S  | A   =
78| TMS4256   74F153    74HC4040E  | AM27256  | |       R6522P      | ||                         T D C T  | K   =
79|                                '----------' '-------------------' ||  INFORMATION            O   T O  | O   =
80| TMS4256   74F153    "VIDEO 2B" .----------.                       J4  APPLIANCE INC.         R   I R  | U   =
81|                                | AM27256  |   74HC02     74HC374  ||  Copyright 1985         S   O S  | T   =
82| TMS4256   74F153    74LS393  B1|__________|                       ||  UM95089  Y2                N    |     =
83|_____________________________[________J9___]__________________________________________________D13______|_____=
84
85*Devices of interest:
86J1: breakout of joystick, serial/rs232, hex-keypad, parallel port, and forth switch (and maybe cassette?) pins
87    DIL 60 pin 2-row right-angle rectangular connector with metal shield contact;
88    not all 60 pins are populated in the connector, only pins 1-6, 8, 13-15, 17-18, 23-30, 35-60 are present
89    (traced partly by dwight)
90J2: unpopulated 8-pin sip header, serial/rs232-related?
91    (vcc ? ? ? ? ? ? gnd) (random guess: txd, rxd, rts, cts, dsr, dtr, and one pin could be cd/ri though the modem circuit may do that separately?)
92J3: Floppy Connector
93    (standard DIL 34 pin 2-row rectangular connector for mini-shugart/pc floppy cable; pin 2 IS connected somewhere and ?probably? is used for /DISKCHANGE like on an Amiga, with pin 34 being /TRUEREADY?)
94    (as opposed to normal ibm pc 3.5" drives where pin 2 is unconnected or is /DENSITY *input to drive*, and pin 34 is /DISKCHANGE)
95J4: 18-pin sip header for keyboard ribbon cable; bottom edge of board is pin 1
96    Pins:
97    1: GND through 220k resistor r78
98    2: ? phone hook related? anode of diode d7; one of the pins of relay k2; topmost (boardwise) pin of transistor Q10
99    3: 74HCT34 pin
100
101J5: locking-tab-type "CONN HEADER VERT 4POS .100 TIN" connector for supplying power
102    through a small cable with a berg connector at the other end, to the floppy drive
103    (5v gnd gnd 12v)
104J6: Phone connector, rj11 jack
105J7: Line connector, rj11 jack
106J8: 9-pin Video out/power in connector "CONN RECEPT 6POS .156 R/A PCB" plus "CONN RECEPT 3POS .156 R/A PCB" acting as one 9-pin connector
107    (NC ? ? ? NC NC ? 12v 5v) (video, vsync, hsync and case/video-gnd are likely here)
108    (the video pinout of the cat is: (Video Vsync Hsync SyncGnd PwrGnd PwrGnd +5v(VCC) +12v(VDD) -12v(VEE)) which is not the same as the swyft.
109J9: unpopulated DIL 40-pin straight connector for a ROM debug/expansion/RAM-shadow daughterboard
110    the pins after pin 12 connect to that of the ROM-LO 27256 pinout counting pins 1,28,2,27,3,26,etc
111    the ROM-HI rom has a different /HICE pin which is not connected to this connector
112    /LOCE is a15
113    /HICE is !a15
114    /ROM_OE comes from pin 14 of DECODE_E pal, and is shorted to /ROM_OE' by the cuttable jumper B1 which is not cut
115    /ROM_OE' goes to the two EPROMS
116    DECODE_18 is DECODE_E pal pin 18
117    pin 1 (GND) is in the lower left and the pins count low-high then to the right
118    (gnd N/C   E_CLK     R/W    /ROM_OE a17 vcc a14 a13 a8 a9 a11 /ROM_OE' a10 a15 d7 d6 d5 d4 d3 )
119    (GND /IPL1 DECODE_18 /RESET gnd     a16 vcc a12 a7  a6 a5 a4  a3       a2  a1  a0 d0 d1 d2 gnd)
120Jx: 4 pin on top side, 6 pin on bottom side edge ?debug? connector (doesn't have a Jx number)
121    (trace me!)
122B1: a cuttable trace on the pcb. Not cut, affects one of the pins on the unpopulated J9 connector only.
123E1: jumper, unknown purpose, not set
124E2: jumper, unknown purpose, not set
125D13: LED
126R6522P (upper): parallel port via
127R6522P (lower): keyboard via
128UM95089: DTMF Tone generator chip (if you read the datasheet this is technically ROM based!)
129Y1: 15.8976Mhz, main clock?
130Y2: 3.579545Mhz, used by the DTMF generator chip UM95089 (connects to pins 7 and 8 of it)
131TMS4256-15NL - 262144 x 1 DRAM
132PB1 - piezo speaker
133
134*Pals:
135"TIMING B" - AMPAL16R4APC (marked on silkscreen "TIMING PAL")
136"DECODE E" - AMPAL16L8PC (marked on silkscreen "DECODE PAL")
137"VIDEO 2B" - AMPAL16R4PC (marked on silkscreen "VIDEO PAL")
138"DISK 3.5C" - AMPAL16R4PC (marked on silkscreen "DISK PAL")
139
140*Deviations from silkscreen:
1414N37 (marked on silkscreen "4N35")
14274F153 (marked on silkscreen "74ALS153")
14374HCT259 is socketed, possibly intended that the rom expansion daughterboard will have a ribbon cable fit in its socket?
144
145
146ToDo:
147* Swyft
148- Figure out the keyboard (interrupts are involved? or maybe an NMI on a
149  timer/vblank? It is possible this uses a similar 'keyboard read int'
150  to what the cat does)
151- get the keyboard scanning actually working; the VIAs are going nuts right now.
152- Beeper (on one of the vias?)
153- vblank/hblank stuff
154- Get the 6850 ACIA working for communications
155- Floppy (probably similar to the Cat)
156- Centronics port (attached to one of the VIAs)
157- Joystick port (also likely on a via)
158- Keypad? (also likely on a via done as a grid scan?)
159- Forth button (on the port on the back; keep in mind shift-usefront-space ALWAYS enables forth on a swyft)
160- Multple undumped firmware revisions exist (330 and 331 are dumped)
161
162// 74ls107 @ u18 pin 1 is 68008 /BERR pin
163
164// mc6850 @ u33 pin 2 (RX_DATA) is
165// mc6850 @ u33 pin 3 (RX_CLK) is 6522 @ u35 pin 17 (PB7)
166// mc6850 @ u33 pin 4 (TX_CLK) is 6522 @ u35 pin 17 (PB7)
167// mc6850 @ u33 pin 5 (/RTS) is
168// mc6850 @ u33 pin 6 (TX_DATA) is
169// mc6850 @ u33 pin 7 (/IRQ) is 68008 /IPL1 pin 41
170// mc6850 @ u33 pin 8 (CS0) is 68008 A12 pin 10
171// mc6850 @ u33 pin 9 (CS2) is DECODE E pin 18
172// mc6850 @ u33 pin 10 (CS1) is 68008 /BERR pin 40
173// mc6850 @ u33 pin 11 (RS) is 68008 A0 pin 46
174// mc6850 @ u33 pin 13 (R/W) is 68008 R/W pin 30
175// mc6850 @ u33 pin 14 (E) is 68008 E pin 38
176// mc6850 @ u33 pin 15-22 (D7-D0) are 68008 D7 to D0 pins 20-27
177// mc6850 @ u33 pin 23 (/DCD) is 74hc02 @ u35 pin 1
178// mc6850 @ u33 pin 24 (/CTS) is N/C?
179
180// 6522 @ u34:
181// pin 2 (PA0) :
182// pin 3 (PA1) :
183// pin 4 (PA2) :
184// pin 5 (PA3) :
185// pin 6 (PA4) :
186// pin 7 (PA5) :
187// pin 8 (PA6) :
188// pin 9 (PA7) :
189// pin 10 (PB0) :
190// pin 11 (PB1) :
191// pin 12 (PB2) :
192// pin 13 (PB3) :
193// pin 14 (PB4) :
194// pin 15 (PB5) :
195// pin 16 (PB6) :
196// pin 17 (PB7) :
197// pin 18 (CB1) : ?from/to? Floppy connector j3 pin 8
198// pin 19 (CB2) : ?from/to? 6522 @ u35 pin 16 (PB6)
199// pin 21 (/IRQ) : out to 68008 /IPL1 pin 41
200// pin 22 (R/W) : in from 68008 R/W pin 30
201// pin 23 (/CS2) : in from DECODE E pin 18
202// pin 24 (CS1) : in from 68008 A13 pin 11
203// pin 25 (Phi2) : in from 68008 E pin 38
204// pins 26-33 : in/out from/to 68008 D7 to D0 pins 20-27
205// pin 34 (/RES) : in from 68008 /RESET pin 37 AND 68008 /HALT pin 36
206// pins 35-38 (RS3-RS0) are 68008 A9-A6 pins 7-4
207// pin 39 (CA2) is through inductor L11 and resistor r128 to peripheral connector pin 35 <end minus 26>
208// pin 40 (CA1) is through inductor L30 and resistor r138 to peripheral connector pin 53 <end minus 8>
209
210// 6522 @ u35
211// pin 2 (PA0) :
212// pin 3 (PA1) :
213// pin 4 (PA2) :
214// pin 5 (PA3) :
215// pin 6 (PA4) :
216// pin 7 (PA5) :
217// pin 8 (PA6) :
218// pin 9 (PA7) :
219// pin 10 (PB0) :
220// pin 11 (PB1) : in from 74hc02 @ u36 pin 4
221// pin 12 (PB2) :
222// pin 13 (PB3) :
223// pin 14 (PB4) :
224// pin 15 (PB5) :
225// pin 16 (PB6) : 6522 @ u34 pin 19 (CB2)
226// pin 17 (PB7) : mc6850 @ u33 pins 3 and 4 (RX_CLK, TX_CLK)
227// pin 18 (CB1) : ds1489an @ u45 pin 11
228// pin 19 (CB2) : mn4053b @ u40 pin 11 and mc14412 @ u41 pin 10
229// pin 21 (/IRQ) : out to 68008 /IPL1 pin 41
230// pin 22 (R/W) : in from 68008 R/W pin 30
231// pin 23 (/CS2) : in from DECODE E pin 18
232// pin 24 (CS1) : in from 68008 A14 pin 12
233// pin 25 (Phi2) : in from 68008 E pin 38
234// pins 26-33 : in/out from/to 68008 D7 to D0 pins 20-27
235// pin 34 (/RES) : in from 68008 /RESET pin 37 AND 68008 /HALT pin 36
236// pins 35-38 (RS3-RS0) : in from 68008 A9-A6 pins 7-4
237// pin 39 (CA2) : out to 74HCT34 pin 11 (CLK) (keyboard column latch)
238// pin 40 (CA1) : out? to? ds1489an @ u45 pin 8
239
240// 74hc02 @ u36:
241// pin 1 (Y1) : out to mc6850 @ u33 pin 23 /DCD
242// pin 2 (A1) : in from (2 places: resistor R58 to ua339 @ u38 pin 4 (In1-)) <where does this actually come from? modem offhook?>
243// pin 3 (B1) : in from mn4053b @ u40  pin 10 <probably from rs232>
244// pin 4 (Y2) : out to 6522 @u35 pin 11
245// pin 5 (A2) : in from 4N37 @ u48 pin 5 (output side emitter pin) (tied via R189 to gnd) <ring indicator?>
246// pin 6 (B2) : in from 4N37 @ u48 pin 5 (output side emitter pin) (tied via R189 to gnd) <ring indicator?>
247// pin 8 (B3) :
248// pin 9 (A3) :
249// pin 10 (Y3) :
250// pin 11 (B4) : in from 68008 A15
251// pin 12 (A4) : in from 68008 A15
252// pin 13 (Y4) : out to EPROM @ U31 /CE
253
254****************************************************************************/
255
256// Defines
257
258#undef DEBUG_GA2OPR_W
259#undef DEBUG_VIDEO_CONTROL_W
260
261#undef DEBUG_FLOPPY_CONTROL_W
262#undef DEBUG_FLOPPY_CONTROL_R
263#undef DEBUG_FLOPPY_DATA_W
264#undef DEBUG_FLOPPY_DATA_R
265#undef DEBUG_FLOPPY_STATUS_R
266
267#undef DEBUG_PRINTER_DATA_W
268#undef DEBUG_PRINTER_CONTROL_W
269
270#undef DEBUG_MODEM_R
271#undef DEBUG_MODEM_W
272
273#undef DEBUG_DUART_OUTPUT_LINES
274// data sent to rs232 port
275#undef DEBUG_DUART_TXA
276// data sent to modem chip
277#undef DEBUG_DUART_TXB
278#undef DEBUG_DUART_IRQ_HANDLER
279#undef DEBUG_PRN_FF
280
281#undef DEBUG_TEST_W
282
283#define DEBUG_SWYFT_VIA0 1
284#define DEBUG_SWYFT_VIA1 1
285
286
287// Includes
288#include "emu.h"
289#include "cpu/m68000/m68000.h"
290#include "machine/clock.h"
291#include "machine/6850acia.h"
292#include "machine/6522via.h"
293#include "sound/speaker.h"
294#include "bus/centronics/ctronics.h"
295
296class swyft_state : public driver_device
297{
298public:
299   swyft_state(const machine_config &mconfig, device_type type, const char *tag)
300      : driver_device(mconfig, type, tag),
301      m_maincpu(*this, "maincpu"),
302      m_ctx(*this, "ctx"),
303      m_ctx_data_out(*this, "ctx_data_out"),
304      m_acia6850(*this, "acia6850"),
305      m_via0(*this, "via6522_0"),
306      m_via1(*this, "via6522_1"),
307      m_speaker(*this, "speaker"),
308      m_p_swyft_videoram(*this, "p_swyft_vram")
309      /*m_y0(*this, "Y0"),
310      m_y1(*this, "Y1"),
311      m_y2(*this, "Y2"),
312      m_y3(*this, "Y3"),
313      m_y4(*this, "Y4"),
314      m_y5(*this, "Y5"),
315      m_y6(*this, "Y6"),
316      m_y7(*this, "Y7")*/
317      { }
318
319   required_device<cpu_device> m_maincpu;
320   optional_device<centronics_device> m_ctx;
321   optional_device<output_latch_device> m_ctx_data_out;
322   required_device<acia6850_device> m_acia6850; // only swyft uses this
323   required_device<via6522_device> m_via0; // only swyft uses this
324   required_device<via6522_device> m_via1; // only swyft uses this
325   optional_device<speaker_sound_device> m_speaker;
326   required_shared_ptr<UINT8> m_p_swyft_videoram;
327   /*optional_ioport m_y0;
328   optional_ioport m_y1;
329   optional_ioport m_y2;
330   optional_ioport m_y3;
331   optional_ioport m_y4;
332   optional_ioport m_y5;
333   optional_ioport m_y6;
334   optional_ioport m_y7;*/
335
336   DECLARE_MACHINE_START(swyft);
337   DECLARE_MACHINE_RESET(swyft);
338   DECLARE_VIDEO_START(swyft);
339
340   UINT32 screen_update_swyft(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
341
342   DECLARE_READ8_MEMBER(swyft_d0000);
343
344   DECLARE_READ8_MEMBER(swyft_via0_r);
345   DECLARE_WRITE8_MEMBER(swyft_via0_w);
346   DECLARE_READ8_MEMBER(via0_pa_r);
347   DECLARE_WRITE8_MEMBER(via0_pa_w);
348   DECLARE_WRITE_LINE_MEMBER(via0_ca2_w);
349   DECLARE_READ8_MEMBER(via0_pb_r);
350   DECLARE_WRITE8_MEMBER(via0_pb_w);
351   DECLARE_WRITE_LINE_MEMBER(via0_cb1_w);
352   DECLARE_WRITE_LINE_MEMBER(via0_cb2_w);
353   DECLARE_WRITE_LINE_MEMBER(via0_int_w);
354
355   DECLARE_READ8_MEMBER(swyft_via1_r);
356   DECLARE_WRITE8_MEMBER(swyft_via1_w);
357   DECLARE_READ8_MEMBER(via1_pa_r);
358   DECLARE_WRITE8_MEMBER(via1_pa_w);
359   DECLARE_WRITE_LINE_MEMBER(via1_ca2_w);
360   DECLARE_READ8_MEMBER(via1_pb_r);
361   DECLARE_WRITE8_MEMBER(via1_pb_w);
362   DECLARE_WRITE_LINE_MEMBER(via1_cb1_w);
363   DECLARE_WRITE_LINE_MEMBER(via1_cb2_w);
364   DECLARE_WRITE_LINE_MEMBER(via1_int_w);
365
366   DECLARE_WRITE_LINE_MEMBER(write_acia_clock);
367
368   /* gate array 2 has a 16-bit counter inside which counts at 10mhz and
369      rolls over at FFFF->0000; on roll-over (or likely at FFFF terminal count)
370      it triggers the KTOBF output. It does this every 6.5535ms, which causes
371      a 74LS74 d-latch at IC100 to invert the state of the DUART IP2 line;
372      this causes the DUART to fire an interrupt, which makes the 68000 read
373      the keyboard.
374      The watchdog counter and the 6ms counter are both incremented
375      every time the KTOBF pulses.
376    */
377   UINT8 m_keyboard_line;
378   UINT8 m_floppy_control;
379
380//protected:
381   //virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
382};
383
384
385static INPUT_PORTS_START( swyft )
386// insert dwight and sandy's swyft keyboard map here once we figure out the byte line order
387   PORT_START("Y0")
388   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N')
389   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')
390   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K')
391   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J')
392   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')
393   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T')
394   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('\xa2')
395   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
396
397   PORT_START("Y1")
398   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('n') PORT_CHAR('B')
399   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
400   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L')
401   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H')
402   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U')
403   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R')
404   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&')
405   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
406
407   PORT_START("Y2")
408   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V')
409   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
410   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':')
411   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G')
412   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I')
413   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) // totally unused
414   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*')
415   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
416
417   PORT_START("Y3")
418   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C')
419   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left USE FRONT") PORT_CODE(KEYCODE_LCONTROL)
420   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('"')
421   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F')
422   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')
423   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E')
424   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(')
425   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) // totally unused
426
427   PORT_START("Y4")
428   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X')
429   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right USE FRONT") PORT_CODE(KEYCODE_RCONTROL)
430   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right Shift") PORT_CODE(KEYCODE_F2) // intl only: latin diaresis and latin !; norway, danish and finnish * and '; others
431   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D')
432   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P')
433   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
434   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')')
435   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@')
436
437   PORT_START("Y5")
438   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z')
439   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
440   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
441   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S')
442   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('\xbd') PORT_CHAR('\xbc') //PORT_CHAR('}') PORT_CHAR('{')
443   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q')
444   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_')
445   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
446
447   PORT_START("Y6")
448   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left Shift") PORT_CODE(KEYCODE_F1) // intl only: latin inv ? and inv !; norway and danish ! and |; finnish <>; others
449   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left LEAP") PORT_CODE(KEYCODE_LALT)
450   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
451   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A')
452   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('[')
453   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TAB) PORT_CHAR('\t')
454   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+')
455   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) // totally unused
456
457   PORT_START("Y7")
458   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_RSHIFT) PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
459   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right Leap") PORT_CODE(KEYCODE_RALT)
460   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Page") PORT_CODE(KEYCODE_PGUP) PORT_CODE(KEYCODE_PGDN)
461   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift Lock") PORT_CODE(KEYCODE_CAPSLOCK)
462   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Erase") PORT_CODE(KEYCODE_BACKSPACE)
463   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) // totally unused
464   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UNDO") PORT_CODE(KEYCODE_BACKSLASH)
465   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('\xb1') PORT_CHAR('\xb0') // PORT_CHAR('\\') PORT_CHAR('~')
466INPUT_PORTS_END
467
468
469/* Swyft rom and ram notes:
470rom:
471**Vectors:
4720x0000-0x0003: SP boot vector
4730x0004-0x0007: PC boot vector
474**unknown:
4750x0009-0x00BF: ? table
4760x00C0-0x01DF: ? table
4770x01E0-0x02DF: ? table (may be part of next table)
4780x02E0-0x03DF: ? table
4790x03E0-0x0B3F: int16-packed jump table (expanded to int32s at ram at 0x46000-0x46EC0 on boot)
4800x0B40-0x0E83: ? function index tables?
4810x0E84-0x1544: binary code (purpose?)
4820x1545-0x24CF: ?
483**Fonts:
4840x24D0-0x254F: ? (likely font 1 width lookup table)
4850x2550-0x2BCF: Font 1 data
4860x2BD0-0x2C4F: ? (likely font 2 width lookup table)
4870x2C50-0x32CF: Font 2 data
488**unknown?:
4890x32D0-0x360F: String data (and control codes?)
4900x3610-0x364F: ? fill (0x03 0xe8)
4910x3650-0x369F: ? fill (0x03 0x20)
4920x36A0-0x384d: ? forth code?
4930x384e-0x385d: Lookup table for phone keypad
4940x385e-...: ?
495...-0xC951: ?
4960xC952: boot vector
4970xC952-0xCAAE: binary code (purpose?)
498    0xCD26-0xCD3B: ?init forth bytecode?
4990xCD3C-0xCEBA: 0xFF fill (unused?)
5000xCEEB-0xFFFE: Forth dictionaries for compiling, with <word> then <3 bytes> afterward? (or before it? most likely afterward)
501
502ram: (system dram ranges from 0x40000-0x7FFFF)
5030x40000-0x425CF - the screen display ram
504(?0x425D0-0x44BA0 - ?unknown (maybe screen ram page 2?))
5050x44DC6 - SP vector
5060x46000-0x46EC0 - jump tables to instructions for ? (each forth word?)
507
508
509on boot:
510copy/expand packed rom short words 0x3E0-0xB3F to long words at 0x46000-0x46EC0
511copy 0x24f longwords of zero beyond that up to 0x47800
512CD26->A5 <?pointer to init stream function?>
51344DC6->A7 <reset SP... why it does this twice, once by the vector and once here, i'm gonna guess has to do with running the code in a debugger or on a development daughterboard like the cat had, where the 68008 wouldn't get explicitly reset>
51444F2A->A6 <?pointer to work ram space?>
515EA2->A4 <?function>
516E94->A3 <?function>
517EAE->A2 <?function>
51841800->D7 <?forth? opcode index base; the '1800' portion gets the opcode type added to it then is multiplied by 4 to produce the jump table offset within the 0x46000-0x46EC0 range>
51946e3c->D4 <?pointer to more work ram space?>
520CD22->D5 <?pointer to another function?>
521write 0xFFFF to d0004.l
522jump to A4(EA2)
523
524read first stream byte (which is 0x03) from address pointed to by A5 (which is CD26), inc A5, OR the opcode (0x03) to D7
525 (Note: if the forth opcodes are in order in the dictionary, then 0x03 is "!char" which is used to read a char from an arbitrary address)
526copy D7 to A0
527Add A0 low word to itself
528Add A0 low word to itself again
529move the long word from address pointed to by A0 (i.e. the specific opcode's area at the 46xxx part of ram) to A1
530Jump to A1(11A4)
531
53211A4: move 41b00 to D0 (select an opcode "page" 1bxx)
533jump to 118E
534
535118E: read next stream byte (in this case, 0x8E) from address pointed to by A5 (which is CD27), inc A5, OR the opcode (0x8e) to D7
536add to 41b00 in d0, for 41b8E
537Add A0 low word to itself
538Add A0 low word to itself again
539move the long word from address pointed to by A0 (i.e. the specific opcode's area at the 46xxx part of ram) to A1
540Jump to A1(CD06)
541
542CD06: jump to A3 (E94)
543
544E94: subtract D5 from A5 (cd28 - cd22 = 0x0006)
545write 6 to address @A5(44f28) and decrement A5
546write D4(46e3c) to address @a6(44f26) and decrement a5
547lea ($2, A1), A5 - i.e. increment A1 by 2, and write that to A5, so write CD06+2=CD08 to A5
548A1->D5
549A0->D4
550read next stream byte (in this case, 0x03) from address pointed to by A5 (which is CD08), inc A5, OR the opcode (0x03) to D7
551
552*/
553
554/* Swyft Memory map, based on watching the infoapp roms do their thing:
55568k address map:
556(a23,a22,a21,a20 lines don't exist on the 68008 so are considered unconnected)
557a23 a22 a21 a20 a19 a18 a17 a16 a15 a14 a13 a12 a11 a10 a9  a8  a7  a6  a5  a4  a3  a2  a1  a0
558x   x   x   x   0   0   ?   ?   0   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *        R   ROM-LO (/LOCE is 0, /HICE is 1)
559x   x   x   x   0   0   ?   ?   1   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *        R   ROM-HI (/LOCE is 1, /HICE is 0)
560x   x   x   x   0   1   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   a        RW  RAM
561x   x   x   x   1   1  ?0? ?1?  ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   *   *   *   *        R   ? status of something? floppy?
562x   x   x   x   1   1  ?1? ?0?  ?   0   0   1   x   x   x   x   x   x   x   x   x   x   x   *        RW  6850 acia @U33, gets 0x55 steadystate and 0x57 written to it to reset it
563x   x   x   x   1   1  ?1? ?0?  ?   0   1   0   x   x   *   *   *   *   x   x   x   x   x   x        RW  Parallel VIA 0 @ U34
564x   x   x   x   1   1  ?1? ?0?  ?   1   0   0   x   x   *   *   *   *   x   x   x   x   x   x        RW  Keyboard VIA 1 @ U35
565              ^               ^               ^               ^               ^
566
567*/
568
569static ADDRESS_MAP_START(swyft_mem, AS_PROGRAM, 8, swyft_state)
570   ADDRESS_MAP_UNMAP_HIGH
571   AM_RANGE(0x000000, 0x00ffff) AM_ROM AM_MIRROR(0xF00000) // 64 KB ROM
572   AM_RANGE(0x040000, 0x07ffff) AM_RAM AM_MIRROR(0xF00000) AM_SHARE("p_swyft_vram") // 256 KB RAM
573   AM_RANGE(0x0d0000, 0x0d000f) AM_READ(swyft_d0000) AM_MIRROR(0xF00000) // status of something? reads from d0000, d0004, d0008, d000a, d000e
574   AM_RANGE(0x0e1000, 0x0e1000) AM_DEVWRITE("acia6850", acia6850_device, control_w) AM_MIRROR(0xF00000) // 6850 ACIA lives here
575   AM_RANGE(0x0e2000, 0x0e2fff) AM_READWRITE(swyft_via0_r, swyft_via0_w) AM_MIRROR(0xF00000)// io area with selector on a9 a8 a7 a6?
576   AM_RANGE(0x0e4000, 0x0e4fff) AM_READWRITE(swyft_via1_r, swyft_via1_w) AM_MIRROR(0xF00000)
577ADDRESS_MAP_END
578
579MACHINE_START_MEMBER(swyft_state,swyft)
580{
581   m_via0->write_ca1(1);
582   m_via0->write_ca2(1);
583   m_via0->write_cb1(1);
584   m_via0->write_cb2(1);
585
586   m_via1->write_ca1(1);
587   m_via1->write_ca2(1);
588   m_via1->write_cb1(1);
589   m_via1->write_cb2(1);
590}
591
592MACHINE_RESET_MEMBER(swyft_state,swyft)
593{
594}
595
596VIDEO_START_MEMBER(swyft_state,swyft)
597{
598}
599
600UINT32 swyft_state::screen_update_swyft(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
601{
602   UINT16 code;
603   int y, x, b;
604
605   int addr = 0;
606   for (y = 0; y < 242; y++)
607   {
608      int horpos = 0;
609      for (x = 0; x < 40; x++)
610      {
611         code = m_p_swyft_videoram[addr++];
612         for (b = 7; b >= 0; b--)
613         {
614            bitmap.pix16(y, horpos++) = (code >> b) & 0x01;
615         }
616      }
617   }
618   return 0;
619}
620
621READ8_MEMBER( swyft_state::swyft_d0000 )
622{
623   // wtf is this supposed to be?
624   UINT8 byte = 0xFF; // ?
625   logerror("mystery device: read from 0x%5X, returning %02X\n", offset+0xD0000, byte);
626   return byte;
627}
628
629
630// if bit is 1 enable: (obviously don't set more than one bit or you get bus contention!)
631//                                           acia
632//                                       via0
633//                                    via1
634// x   x   x   x   1   1  ?1? ?0?  ?   ^   ^   ^   ?   ?   *   *   *   *  ?*?  ?   ?   ?   ?   ?
635//                                                         ^   ^   ^   ^  <- these four bits address the VIA registers? is this correct?
636static const char *const swyft_via_regnames[] = { "0: ORB/IRB", "1: ORA/IRA", "2: DDRB", "3: DDRA", "4: T1C-L", "5: T1C-H", "6: T1L-L", "7: T1L-H", "8: T2C-L" "9: T2C-H", "A: SR", "B: ACR", "C: PCR", "D: IFR", "E: IER", "F: ORA/IRA*" };
637
638READ8_MEMBER( swyft_state::swyft_via0_r )
639{
640   if (offset&0x000C3F) fprintf(stderr,"VIA0: read from invalid offset in 68k space: %06X!\n", offset);
641   UINT8 data = m_via0->read(space, (offset>>6)&0xF);
642#ifdef DEBUG_SWYFT_VIA0
643   logerror("VIA0 register %s read by cpu: returning %02x\n", swyft_via_regnames[(offset>>5)&0xF], data);
644#endif
645   return data;
646}
647
648WRITE8_MEMBER( swyft_state::swyft_via0_w )
649{
650#ifdef DEBUG_SWYFT_VIA0
651   logerror("VIA0 register %s written by cpu with data %02x\n", swyft_via_regnames[(offset>>5)&0xF], data);
652#endif
653   if (offset&0x000C3F) fprintf(stderr,"VIA0: write to invalid offset in 68k space: %06X, data: %02X!\n", offset, data);
654   m_via1->write(space, (offset>>6)&0xF, data);
655}
656
657READ8_MEMBER( swyft_state::swyft_via1_r )
658{
659   if (offset&0x000C3F) fprintf(stderr," VIA1: read from invalid offset in 68k space: %06X!\n", offset);
660   UINT8 data = m_via1->read(space, (offset>>6)&0xF);
661#ifdef DEBUG_SWYFT_VIA1
662   logerror(" VIA1 register %s read by cpu: returning %02x\n", swyft_via_regnames[(offset>>5)&0xF], data);
663#endif
664   return data;
665}
666
667WRITE8_MEMBER( swyft_state::swyft_via1_w )
668{
669#ifdef DEBUG_SWYFT_VIA1
670   logerror(" VIA1 register %s written by cpu with data %02x\n", swyft_via_regnames[(offset>>5)&0xF], data);
671#endif
672   if (offset&0x000C3F) fprintf(stderr," VIA1: write to invalid offset in 68k space: %06X, data: %02X!\n", offset, data);
673   m_via0->write(space, (offset>>6)&0xF, data);
674}
675
676// first via
677READ8_MEMBER( swyft_state::via0_pa_r )
678{
679   logerror("VIA0: Port A read!\n");
680   return 0xFF;
681}
682
683WRITE8_MEMBER( swyft_state::via0_pa_w )
684{
685   logerror("VIA0: Port A written with data of 0x%02x!\n", data);
686}
687
688WRITE_LINE_MEMBER ( swyft_state::via0_ca2_w )
689{
690   logerror("VIA0: CA2 written with %d!\n", state);
691}
692
693READ8_MEMBER( swyft_state::via0_pb_r )
694{
695   logerror("VIA0: Port B read!\n");
696   return 0xFF;
697}
698
699WRITE8_MEMBER( swyft_state::via0_pb_w )
700{
701   logerror("VIA0: Port B written with data of 0x%02x!\n", data);
702}
703
704WRITE_LINE_MEMBER ( swyft_state::via0_cb1_w )
705{
706   logerror("VIA0: CB1 written with %d!\n", state);
707}
708
709WRITE_LINE_MEMBER ( swyft_state::via0_cb2_w )
710{
711   logerror("VIA0: CB2 written with %d!\n", state);
712}
713
714WRITE_LINE_MEMBER ( swyft_state::via0_int_w )
715{
716   logerror("VIA0: INT output set to %d!\n", state);
717}
718
719// second via
720READ8_MEMBER( swyft_state::via1_pa_r )
721{
722   logerror(" VIA1: Port A read!\n");
723   return 0xFF;
724}
725
726WRITE8_MEMBER( swyft_state::via1_pa_w )
727{
728   logerror(" VIA1: Port A written with data of 0x%02x!\n", data);
729}
730
731WRITE_LINE_MEMBER ( swyft_state::via1_ca2_w )
732{
733   logerror(" VIA1: CA2 written with %d!\n", state);
734}
735
736READ8_MEMBER( swyft_state::via1_pb_r )
737{
738   logerror(" VIA1: Port B read!\n");
739   return 0xFF;
740}
741
742WRITE8_MEMBER( swyft_state::via1_pb_w )
743{
744   logerror(" VIA1: Port B written with data of 0x%02x!\n", data);
745}
746
747WRITE_LINE_MEMBER ( swyft_state::via1_cb1_w )
748{
749   logerror(" VIA1: CB1 written with %d!\n", state);
750}
751
752WRITE_LINE_MEMBER ( swyft_state::via1_cb2_w )
753{
754   logerror(" VIA1: CB2 written with %d!\n", state);
755}
756
757WRITE_LINE_MEMBER ( swyft_state::via1_int_w )
758{
759   logerror(" VIA1: INT output set to %d!\n", state);
760}
761
762WRITE_LINE_MEMBER( swyft_state::write_acia_clock )
763{
764   m_acia6850->write_txc(state);
765   m_acia6850->write_rxc(state);
766}
767
768static MACHINE_CONFIG_START( swyft, swyft_state )
769
770   /* basic machine hardware */
771   MCFG_CPU_ADD("maincpu",M68008, XTAL_15_8976MHz/2) //MC68008P8, Y1=15.8976Mhz, clock GUESSED at Y1 / 2
772   MCFG_CPU_PROGRAM_MAP(swyft_mem)
773
774   MCFG_MACHINE_START_OVERRIDE(swyft_state,swyft)
775   MCFG_MACHINE_RESET_OVERRIDE(swyft_state,swyft)
776
777   /* video hardware */
778   MCFG_SCREEN_ADD("screen", RASTER)
779   MCFG_SCREEN_REFRESH_RATE(50)
780   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
781   MCFG_SCREEN_SIZE(320, 242)
782   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 242-1)
783   MCFG_SCREEN_UPDATE_DRIVER(swyft_state, screen_update_swyft)
784   MCFG_SCREEN_PALETTE("palette")
785
786   MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
787
788   MCFG_VIDEO_START_OVERRIDE(swyft_state,swyft)
789
790   MCFG_DEVICE_ADD("acia6850", ACIA6850, 0)
791   // acia rx and tx clocks come from one of the VIA pins and are tied together, fix this below? acia e clock comes from 68008
792   MCFG_DEVICE_ADD("acia_clock", CLOCK, (XTAL_15_8976MHz/2)/5) // out e clock from 68008, ~ 10in clocks per out clock
793   MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(swyft_state, write_acia_clock))
794
795   MCFG_DEVICE_ADD("via6522_0", VIA6522, (XTAL_15_8976MHz/2)/5) // out e clock from 68008
796   MCFG_VIA6522_READPA_HANDLER(READ8(swyft_state, via0_pa_r))
797   MCFG_VIA6522_READPB_HANDLER(READ8(swyft_state, via0_pb_r))
798   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(swyft_state, via0_pa_w))
799   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(swyft_state, via0_pb_w))
800   MCFG_VIA6522_CB1_HANDLER(WRITELINE(swyft_state, via0_cb1_w))
801   MCFG_VIA6522_CA2_HANDLER(WRITELINE(swyft_state, via0_ca2_w))
802   MCFG_VIA6522_CB2_HANDLER(WRITELINE(swyft_state, via0_cb2_w))
803   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(swyft_state, via0_int_w))
804
805   MCFG_DEVICE_ADD("via6522_1", VIA6522, (XTAL_15_8976MHz/2)/5) // out e clock from 68008
806   MCFG_VIA6522_READPA_HANDLER(READ8(swyft_state, via1_pa_r))
807   MCFG_VIA6522_READPB_HANDLER(READ8(swyft_state, via1_pb_r))
808   MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(swyft_state, via1_pa_w))
809   MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(swyft_state, via1_pb_w))
810   MCFG_VIA6522_CB1_HANDLER(WRITELINE(swyft_state, via1_cb1_w))
811   MCFG_VIA6522_CA2_HANDLER(WRITELINE(swyft_state, via1_ca2_w))
812   MCFG_VIA6522_CB2_HANDLER(WRITELINE(swyft_state, via1_cb2_w))
813   MCFG_VIA6522_IRQ_HANDLER(WRITELINE(swyft_state, via1_int_w))
814MACHINE_CONFIG_END
815
816/* ROM definition */
817ROM_START( swyft )
818   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
819   ROM_SYSTEM_BIOS( 0, "v331", "IAI Swyft Version 331 Firmware")
820   ROMX_LOAD( "331-lo.u30", 0x0000, 0x8000, CRC(d6cc2e2f) SHA1(39ff26c18b1cf589fc48793263f280ef3780cc61), ROM_BIOS(1))
821   ROMX_LOAD( "331-hi.u31", 0x8000, 0x8000, CRC(4677630a) SHA1(8845d702fa8b8e1a08352f4c59d3076cc2e1307e), ROM_BIOS(1))
822   /* this version of the swyft code identifies itself at 0x3FCB as version 330 */
823   ROM_SYSTEM_BIOS( 1, "v330", "IAI Swyft Version 330 Firmware")
824   ROMX_LOAD( "infoapp.lo.u30", 0x0000, 0x8000, CRC(52c1bd66) SHA1(b3266d72970f9d64d94d405965b694f5dcb23bca), ROM_BIOS(2))
825   ROMX_LOAD( "infoapp.hi.u31", 0x8000, 0x8000, CRC(83505015) SHA1(693c914819dd171114a8c408f399b56b470f6be0), ROM_BIOS(2))
826   ROM_REGION( 0x4000, "pals", ROMREGION_ERASEFF )
827   /* Swyft PALs:
828    * The Swyft has four PALs, whose rough function can be derived from their names:
829    * TIMING - state machine for DRAM refresh/access; handles ras/cas and choosing whether the video out shifter or the 68k is accessing ram. also divides clock
830    * DECODE - address decoder for the 68008
831    * VIDEO - state machine for the video shifter (and vblank/hblank?)
832    * DISK 3.5 - state machine for the floppy drive interface
833    */
834   /* U9: Timing AMPAL16R4
835    *
836    * pins:
837    * 111111111000000000
838    * 987654321987654321
839    * ??QQQQ??EIIIIIIIIC
840    * |||||||||||||||||\-< /CK input - 15.8976mhz crystal and transistor oscillator
841    * ||||||||||||||||\--< ?
842    * |||||||||||||||\---< ?
843    * ||||||||||||||\----< ?
844    * |||||||||||||\-----< ?<also input to decode pal pin 1, video pal pin 1, source is ?>
845    * ||||||||||||\------< ?
846    * |||||||||||\-------< ?
847    * ||||||||||\--------< ?
848    * |||||||||\---------< ?
849    * ||||||||\----------< /OE input - shorted to GND
850    * |||||||\-----------? ?
851    * ||||||\------------? ?
852    * |||||\------------Q> /ROM_OE (to both eproms through jumper b1 and optionally j9 connector)
853    * ||||\-------------Q? ?
854    * |||\--------------Q? ?
855    * ||\---------------Q> output to decode pal pin 2
856    * |\----------------->? output? to ram multiplexer 'A' pins
857    * \------------------< ?
858    */
859   ROM_LOAD( "timing_b.ampal16r4a.u9.jed", 0x0000, 0xb08, CRC(643e6e83) SHA1(7db167883f9d6cf385ce496d08976dc16fc3e2c3))
860   /* U20: Decode AMPAL16L8
861    *
862    * pins:
863    * 111111111000000000
864    * 987654321987654321
865    * O??????OIIIIIIIIII
866    * |||||||||||||||||\-< TIMING PAL pin 5
867    * ||||||||||||||||\--< TIMING PAL pin 17
868    * |||||||||||||||\---< 68008 R/W (pin 30)
869    * ||||||||||||||\----< 68008 /DS (pin 29)
870    * |||||||||||||\-----< 68008 E (pin 38)
871    * ||||||||||||\------< 68008 A19
872    * |||||||||||\-------< 68008 A18
873    * ||||||||||\--------< 68008 A17
874    * |||||||||\---------< 68008 A16
875    * ||||||||\----------< ?
876    * |||||||\-----------> ?
877    * ||||||\------------? 68008 /VPA (pin 39)
878    * |||||\-------------> /ROM_OE (to both eproms through jumper b1 and optionally j9 connector)
879    * ||||\--------------? ?
880    * |||\---------------? ?
881    * ||\----------------? ?
882    * |\-----------------? goes to j9 connector pin 5
883    * \------------------< ?
884    */
885   ROM_LOAD( "decode_e.ampal16l8.u20.jed", 0x1000, 0xb08, CRC(0b1dbd76) SHA1(08c144ad7a7bbdd53eefd271b2f6813f8b3b1594))
886   ROM_LOAD( "video_2b.ampal16r4.u25.jed", 0x2000, 0xb08, CRC(caf91148) SHA1(3f8ddcb512a1c05395c74ad9a6ba7b87027ce4ec))
887   ROM_LOAD( "disk_3.5c.ampal16r4.u28.jed", 0x3000, 0xb08, CRC(fd994d02) SHA1(f910ab16587dd248d63017da1e5b37855e4c1a0c))
888ROM_END
889
890/* Driver */
891
892/*    YEAR  NAME  PARENT  COMPAT   MACHINE    INPUT    DEVICE         INIT     COMPANY   FULLNAME       FLAGS */
893COMP( 1985, swyft,0,      0,       swyft,     swyft,   driver_device, 0,       "Information Applicance Inc", "Swyft", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
trunk/src/mame/drivers/system1.c
r249893r249894
41504150   ROM_LOAD( "pr5317.4",     0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) )
41514151ROM_END
41524152
4153ROM_START( gardiaj )
4154   ROM_REGION( 0x20000, "maincpu", 0 )
4155   ROM_LOAD( "epr-10250.ic90",   0x00000, 0x8000, CRC(c97943a7) SHA1(eb201987c7a78f7eb6838211c0af3394c0b2d95f) ) /* encrypted */
4156   ROM_LOAD( "epr-10251.ic91",   0x10000, 0x8000, CRC(b2ed05dc) SHA1(c520bf7024c85dc759c27eccb0a31998f4d72b5f) )
4157   ROM_LOAD( "epr-10252.ic92",   0x18000, 0x8000, CRC(0a490588) SHA1(18df754ebdf062096f2d631a722b168901610345) )
41534158
4159   ROM_REGION( 0x10000, "soundcpu", 0 )
4160   ROM_LOAD( "epr-10243.ic126", 0x0000, 0x4000, CRC(87220660) SHA1(3f2bfc03e0f1053a4aa0ec5ebb0d573f2e20964c) )
4161
4162   ROM_REGION( 0x18000, "tiles", 0 )
4163   ROM_LOAD( "epr-10240.ic4",   0x00000, 0x8000, CRC(998ce090) SHA1(78929f471c5aa8b32d1693e8af2ef3e86efd3d7d) )
4164   ROM_LOAD( "epr-10241.ic5",   0x08000, 0x8000, CRC(81ab0b07) SHA1(7f776dccd66ad097a1a906823786a52d31a8c4e8) )
4165   ROM_LOAD( "epr-10242.ic6",   0x10000, 0x8000, CRC(2dc4c4c7) SHA1(0347170b941a5c567eed114833656e8abd16a8ab) )
4166
4167   ROM_REGION( 0x20000, "sprites", 0 )
4168   ROM_LOAD( "epr-10234.ic87", 0x00000, 0x8000, CRC(8a6aed33) SHA1(044836885ace8294124b1be9b3a4828f772bb9ee) )
4169   ROM_LOAD( "epr-10233.ic86", 0x08000, 0x8000, CRC(c52784d3) SHA1(b37d7f261be12616dbe11dfa375eaf6878e4a0f3) )
4170   ROM_LOAD( "epr-10236.ic89", 0x10000, 0x8000, CRC(b35ab227) SHA1(616f6097afddffa9af89fe84d8b6df59c567c1e6) )
4171   ROM_LOAD( "epr-10235.ic88", 0x18000, 0x8000, CRC(006a3151) SHA1(a575f9d5c026e6b18e990720ec7520b6b5ae94e3) )
4172
4173   ROM_REGION( 0x0300, "palette", 0 )
4174   ROM_LOAD( "pr-7345.ic20",      0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */
4175   ROM_LOAD( "pr-7344.ic14",      0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */
4176   ROM_LOAD( "pr-7343.ic8",       0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */
4177
4178   ROM_REGION( 0x0100, "proms", 0 )
4179   ROM_LOAD( "pr5317.ic28",     0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) )
4180ROM_END
4181
4182
41544183ROM_START( brain )
41554184   ROM_REGION( 0x20000, "maincpu", 0 )
41564185   ROM_LOAD( "brain.1",      0x00000, 0x8000, CRC(2d2aec31) SHA1(02dfbb0e9ca01b864e3aa594cf38306fe82a4b5d) )
r249893r249894
56985727GAME( 1985, shtngmst,   0,        sys2m,     shtngmst,  system1_state, shtngmst, ROT0,   "Sega", "Shooting Master (8751 315-5159)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
56995728GAME( 1985, shtngmste,  shtngmst, sys2m,     shtngmst,  system1_state, shtngmst, ROT0,   "Sega / EVG", "Shooting Master (EVG, 8751 315-5159a)", MACHINE_SUPPORTS_SAVE )
57005729GAME( 1986, gardiab,    gardia,   sys2x,     gardia,    system1_state, gardiab,  ROT270, "bootleg", "Gardia (317-0007?, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
5730GAME( 1986, gardiaj,    gardia,   sys2x,     gardia,    system1_state, gardia,   ROT270, "Coreland / Sega", "Gardia (Japan, 317-0006)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
57015731GAME( 1986, wboysys2,   wboy,     sys2x,     wboysys2,  system1_state, wboysys2, ROT0,   "Escape (Sega license)", "Wonder Boy (system 2)", MACHINE_SUPPORTS_SAVE )
57025732GAME( 1987, tokisens,   0,        sys2,      tokisens,  system1_state, bank0c,   ROT90,  "Sega", "Toki no Senshi - Chrono Soldier", MACHINE_SUPPORTS_SAVE )
57035733GAME( 1987, wbml,       0,        sys2xb,    wbml,      system1_state, wbml,     ROT0,   "Sega / Westone", "Wonder Boy in Monster Land (Japan New Ver., MC-8123, 317-0043)", MACHINE_SUPPORTS_SAVE )
trunk/src/mame/drivers/ti99_4x.c
r249893r249894
468468         // the line enough to make the TMS9901 sense the low level.
469469         // A reported, feasible fix was to cut the line and insert a diode
470470         // below the Alphalock key.
471         if ((ioport("ALPHABUG")!=0) && (m_model!=MODEL_4)) answer |= (ioport("ALPHA")->read() | ioport("ALPHA1")->read());
471         if ((m_model!=MODEL_4) && (ioport("ALPHABUG")->read()!=0) ) answer |= (ioport("ALPHA")->read() | ioport("ALPHA1")->read());
472472      }
473473      else
474474      {
trunk/src/mame/drivers/timeplt.c
r249893r249894
3434    c300      interrupt enable
3535    c302      flip screen
3636    c304      trigger interrupt on audio CPU
37    c308      Protection ???  Stuffs in some values computed from ROM content
37    c308      video enable (?). Protection ??? Stuffs in some values computed
38              from ROM content
3839    c30a      coin counter 1
3940    c30c      coin counter 2
4041
r249893r249894
6162 *
6263 *************************************/
6364
64INTERRUPT_GEN_MEMBER(timeplt_state::timeplt_interrupt)
65INTERRUPT_GEN_MEMBER(timeplt_state::interrupt)
6566{
6667   if (m_nmi_enable)
6768      device.execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
6869}
6970
7071
71WRITE8_MEMBER(timeplt_state::timeplt_nmi_enable_w)
72WRITE8_MEMBER(timeplt_state::nmi_enable_w)
7273{
7374   m_nmi_enable = data & 1;
7475   if (!m_nmi_enable)
r249893r249894
8384 *
8485 *************************************/
8586
86WRITE8_MEMBER(timeplt_state::timeplt_coin_counter_w)
87WRITE8_MEMBER(timeplt_state::coincounter_w)
8788{
8889   coin_counter_w(machine(), offset >> 1, data);
8990}
r249893r249894
121122 *
122123 *************************************/
123124
124static ADDRESS_MAP_START( timeplt_main_map, AS_PROGRAM, 8, timeplt_state )
125static ADDRESS_MAP_START( common_main_map, AS_PROGRAM, 8, timeplt_state )
125126   ADDRESS_MAP_UNMAP_HIGH
126127   AM_RANGE(0x0000, 0x5fff) AM_ROM
127   AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE(timeplt_colorram_w) AM_SHARE("colorram")
128   AM_RANGE(0xa400, 0xa7ff) AM_RAM_WRITE(timeplt_videoram_w) AM_SHARE("videoram")
128   AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
129   AM_RANGE(0xa400, 0xa7ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
129130   AM_RANGE(0xa800, 0xafff) AM_RAM
130131   AM_RANGE(0xb000, 0xb0ff) AM_MIRROR(0x0b00) AM_RAM AM_SHARE("spriteram")
131132   AM_RANGE(0xb400, 0xb4ff) AM_MIRROR(0x0b00) AM_RAM AM_SHARE("spriteram2")
132   AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0cff) AM_WRITE(soundlatch_byte_w)
133   AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_WRITE(watchdog_reset_w)
134   AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_nmi_enable_w)
135   AM_RANGE(0xc302, 0xc302) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_flipscreen_w)
136   AM_RANGE(0xc304, 0xc304) AM_MIRROR(0x0cf1) AM_DEVWRITE("timeplt_audio", timeplt_audio_device, sh_irqtrigger_w)
137   AM_RANGE(0xc30a, 0xc30c) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_coin_counter_w)
138   AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0cff) AM_READ(timeplt_scanline_r)
139   AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_READ_PORT("DSW1")
133   AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0cff) AM_READ(scanline_r) AM_WRITE(soundlatch_byte_w)
134   AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_READ_PORT("DSW1") AM_WRITE(watchdog_reset_w)
140135   AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0c9f) AM_READ_PORT("IN0")
136   AM_RANGE(0xc302, 0xc302) AM_MIRROR(0x0cf1) AM_WRITE(flipscreen_w)
137   AM_RANGE(0xc304, 0xc304) AM_MIRROR(0x0cf1) AM_DEVWRITE("timeplt_audio", timeplt_audio_device, sh_irqtrigger_w)
138   AM_RANGE(0xc30a, 0xc30c) AM_MIRROR(0x0cf1) AM_WRITE(coincounter_w)
141139   AM_RANGE(0xc320, 0xc320) AM_MIRROR(0x0c9f) AM_READ_PORT("IN1")
142140   AM_RANGE(0xc340, 0xc340) AM_MIRROR(0x0c9f) AM_READ_PORT("IN2")
143141   AM_RANGE(0xc360, 0xc360) AM_MIRROR(0x0c9f) AM_READ_PORT("DSW0")
144142ADDRESS_MAP_END
145143
144static ADDRESS_MAP_START( timeplt_main_map, AS_PROGRAM, 8, timeplt_state )
145   AM_IMPORT_FROM(common_main_map)
146   AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0cf1) AM_WRITE(nmi_enable_w)
147   AM_RANGE(0xc308, 0xc308) AM_MIRROR(0x0cf1) AM_WRITE(video_enable_w)
148ADDRESS_MAP_END
149
146150static ADDRESS_MAP_START( psurge_main_map, AS_PROGRAM, 8, timeplt_state )
147   ADDRESS_MAP_UNMAP_HIGH
148   AM_RANGE(0x0000, 0x5fff) AM_ROM
151   AM_IMPORT_FROM(common_main_map)
149152   AM_RANGE(0x6004, 0x6004) AM_READ(psurge_protection_r)
150   AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE(timeplt_colorram_w) AM_SHARE("colorram")
151   AM_RANGE(0xa400, 0xa7ff) AM_RAM_WRITE(timeplt_videoram_w) AM_SHARE("videoram")
152   AM_RANGE(0xa800, 0xafff) AM_RAM
153   AM_RANGE(0xb000, 0xb0ff) AM_MIRROR(0x0b00) AM_RAM AM_SHARE("spriteram")
154   AM_RANGE(0xb400, 0xb4ff) AM_MIRROR(0x0b00) AM_RAM AM_SHARE("spriteram2")
155   AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0cff) AM_WRITE(soundlatch_byte_w)
156   AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_WRITE(watchdog_reset_w)
157   AM_RANGE(0xc302, 0xc302) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_flipscreen_w)
158   AM_RANGE(0xc304, 0xc304) AM_MIRROR(0x0cf1) AM_DEVWRITE("timeplt_audio", timeplt_audio_device, sh_irqtrigger_w)
159   AM_RANGE(0xc30a, 0xc30c) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_coin_counter_w)
160   AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0cff) AM_READ(timeplt_scanline_r)
161   AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_READ_PORT("DSW1")
162   AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0c9f) AM_READ_PORT("IN0")
163   AM_RANGE(0xc320, 0xc320) AM_MIRROR(0x0c9f) AM_READ_PORT("IN1")
164   AM_RANGE(0xc340, 0xc340) AM_MIRROR(0x0c9f) AM_READ_PORT("IN2")
165   AM_RANGE(0xc360, 0xc360) AM_MIRROR(0x0c9f) AM_READ_PORT("DSW0")
166153ADDRESS_MAP_END
167154
168155static ADDRESS_MAP_START( chkun_main_map, AS_PROGRAM, 8, timeplt_state )
169   ADDRESS_MAP_UNMAP_HIGH
170   AM_RANGE(0x0000, 0x5fff) AM_ROM
156   AM_IMPORT_FROM(timeplt_main_map)
171157   AM_RANGE(0x6000, 0x67ff) AM_RAM
172   AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE(timeplt_colorram_w) AM_SHARE("colorram")
173   AM_RANGE(0xa400, 0xa7ff) AM_RAM_WRITE(timeplt_videoram_w) AM_SHARE("videoram")
174   AM_RANGE(0xa800, 0xafff) AM_RAM
175   AM_RANGE(0xb000, 0xb0ff) AM_MIRROR(0x0b00) AM_RAM AM_SHARE("spriteram")
176   AM_RANGE(0xb400, 0xb4ff) AM_MIRROR(0x0b00) AM_RAM AM_SHARE("spriteram2")
177   AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0cff) AM_WRITE(soundlatch_byte_w)
178   AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_WRITE(watchdog_reset_w)
179   AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_nmi_enable_w)
180   AM_RANGE(0xc302, 0xc302) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_flipscreen_w)
181   AM_RANGE(0xc304, 0xc304) AM_MIRROR(0x0cf1) AM_DEVWRITE("timeplt_audio", timeplt_audio_device, sh_irqtrigger_w)
182   AM_RANGE(0xc30a, 0xc30c) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_coin_counter_w)
183   AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0cff) AM_READ(timeplt_scanline_r)
184   AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_READ_PORT("DSW1")
185   AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0c9f) AM_READ_PORT("IN0")
186   AM_RANGE(0xc320, 0xc320) AM_MIRROR(0x0c9f) AM_READ_PORT("IN1")
187   AM_RANGE(0xc340, 0xc340) AM_MIRROR(0x0c9f) AM_READ_PORT("IN2")
188   AM_RANGE(0xc360, 0xc360) AM_MIRROR(0x0c9f) AM_READ_PORT("DSW0")
189158ADDRESS_MAP_END
190159
191160
r249893r249894
457426   /* basic machine hardware */
458427   MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/3/2)  /* not confirmed, but common for Konami games of the era */
459428   MCFG_CPU_PROGRAM_MAP(timeplt_main_map)
460   MCFG_CPU_VBLANK_INT_DRIVER("screen", timeplt_state,  timeplt_interrupt)
429   MCFG_CPU_VBLANK_INT_DRIVER("screen", timeplt_state,  interrupt)
461430
462431   /* video hardware */
463432   MCFG_SCREEN_ADD("screen", RASTER)
r249893r249894
465434   MCFG_SCREEN_REFRESH_RATE(60)
466435   MCFG_SCREEN_SIZE(32*8, 32*8)
467436   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
468   MCFG_SCREEN_UPDATE_DRIVER(timeplt_state, screen_update_timeplt)
437   MCFG_SCREEN_UPDATE_DRIVER(timeplt_state, screen_update)
469438   MCFG_SCREEN_PALETTE("palette")
470439
471440   MCFG_GFXDECODE_ADD("gfxdecode", "palette", timeplt)
r249893r249894
483452   MCFG_CPU_MODIFY("maincpu")
484453   MCFG_CPU_PROGRAM_MAP(psurge_main_map)
485454   MCFG_CPU_VBLANK_INT_DRIVER("screen", timeplt_state,  nmi_line_pulse)
455   
456   MCFG_VIDEO_START_OVERRIDE(timeplt_state,psurge)
486457MACHINE_CONFIG_END
487458
488459static MACHINE_CONFIG_DERIVED( bikkuric, timeplt )
trunk/src/mame/drivers/unichamp.c
r0r249894
1// license:BSD-3-Clause
2// copyright-holders:David Viens
3/************************************************************************
4 *  Unisonic Champion 2711 (late 1977 based on part dates)
5 *
6 *  Driver from plgDavid (David Viens)
7 *
8 *  Thanks to Sylvain De Chantal (Sly D.C.) for the 2 test units,
9 *  carts and FAQ: http://www.ccjvq.com/slydc/index/faq/2711
10 *
11 *  Thanks to Paul Robson for the GIC font rom.
12 *  (http://worstconsole.blogspot.ca/2012/12/the-worstconsoleever.html)
13 *  Note a spare dead GIC has been given to Lord Nightmare and should be sent for decap!
14 *
15 *  The Unisonc Champion is the only known GI "Gimini Mid-Range 8950 Programmable Game Set"
16 *  to ever reach the market, and only in limited quantities (aprox 500 units ever built)
17 *
18 *  Architecture:
19 *  Master IC : AY-3-8800-1 Graphics Interface (A.K.A. GIC, 40 pin)
20 *  Slave  IC : CP1610 CPU (40 pin, same as in the Intellivision)
21 *  EXEC ROM  : 9501-01009 (40 pin) at 0x0800 (factory mapped)
22 *
23 *  The GIC generates the CPU Clock, the video signals and the audio.
24 *  The CPU does NOT access the GIC directly.
25 *  One way CPU->GIC 'communication' takes place through 256 bytes of shared RAM
26 *  (using two 4x256 TMS4043NL-2 (2112-1) Static Rams at U3 and U4)
27 *
28 *  In this design the GIC only allows the CPU to use the BUS (and shared RAM)
29 *  a fraction of the frame time. (4.33ms for each 16.69ms, or 26% of the time)
30 *  (the real ratio of clocks is 7752/29868 )
31 *
32 *  Boot: When the GIC let go of !RESET_OUT the EXEC Rom pushes 0x800 onto
33 *  the bus for the CPU to fetch and place in R7 to start execution.
34 *  This first CPU slice only last 3ms, then the GIC sets the CPU's BUSRQ low,
35 *  stalling it for 12.36ms, then sets it high for 4.33ms etc...
36 *  59.95 times a second - NTSC
37 ************************************************************************/
38
39#include "emu.h"
40#include "cpu/cp1610/cp1610.h"
41#include "video/gic.h"
42
43#include "bus/generic/slot.h"
44#include "bus/generic/carts.h"
45
46class unichamp_state : public driver_device
47{
48public:
49   unichamp_state(const machine_config &mconfig, device_type type, const char *tag)
50      : driver_device(mconfig, type, tag),
51      m_maincpu(*this, "maincpu"),
52      m_gic(*this, "gic"),
53      m_cart(*this, "cartslot"),
54      m_ctrls(*this, "CTRLS"){}
55
56   required_device<cpu_device> m_maincpu;
57   required_device<gic_device> m_gic;
58   required_device<generic_slot_device> m_cart;
59
60   UINT8 m_ram[256];
61   DECLARE_DRIVER_INIT(unichamp);
62   virtual void machine_start();
63   virtual void machine_reset();
64   DECLARE_PALETTE_INIT(unichamp);
65   
66   DECLARE_READ8_MEMBER(bext_r);
67
68   DECLARE_READ16_MEMBER(unichamp_gicram_r);
69   DECLARE_WRITE16_MEMBER(unichamp_gicram_w);
70
71   DECLARE_READ16_MEMBER(unichamp_trapl_r);
72   DECLARE_WRITE16_MEMBER(unichamp_trapl_w);
73   
74   UINT32 screen_update_unichamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
75
76protected:
77   required_ioport m_ctrls;
78   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
79};
80
81PALETTE_INIT_MEMBER(unichamp_state, unichamp)
82{
83   /*
84   palette.set_pen_color(GIC_BLACK, rgb_t(0x00, 0x00, 0x00));
85   palette.set_pen_color(GIC_RED,   rgb_t(0xAE, 0x49, 0x41));//(from box shot)
86   palette.set_pen_color(GIC_GREEN, rgb_t(0x62, 0x95, 0x88));//(from box shot)
87   palette.set_pen_color(GIC_WHITE, rgb_t(0xFF, 0xFF, 0xFF));
88   */
89   
90   //using from intv.c instead as suggested by RB
91   palette.set_pen_color(GIC_BLACK, rgb_t(0x00, 0x00, 0x00));
92   palette.set_pen_color(GIC_RED,   rgb_t(0xFF, 0x3D, 0x10));
93  //palette.set_pen_color(GIC_GREEN, rgb_t(0x38, 0x6B, 0x3F)); //intv's DARK GREEN
94   palette.set_pen_color(GIC_GREEN, rgb_t(0x00, 0xA7, 0x56)); //intv's GREEN
95   palette.set_pen_color(GIC_WHITE, rgb_t(0xFF, 0xFC, 0xFF));   
96}
97
98
99static ADDRESS_MAP_START( unichamp_mem, AS_PROGRAM, 16, unichamp_state )
100   ADDRESS_MAP_GLOBAL_MASK(0x1FFF) //B13/B14/B15 are grounded!
101   AM_RANGE(0x0000, 0x00FF) AM_READWRITE(unichamp_gicram_r, unichamp_gicram_w)
102   AM_RANGE(0x0100, 0x07FF) AM_READWRITE(unichamp_trapl_r, unichamp_trapl_w)   
103   AM_RANGE(0x0800, 0x17FF) AM_ROM AM_REGION("maincpu", 0x0800 << 1)   // Carts and EXE ROM, 10-bits wide
104ADDRESS_MAP_END
105
106
107static INPUT_PORTS_START( unichamp )
108   PORT_START( "CTRLS" )
109   PORT_BIT( 0x01,  IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y')// P1 YES (EBCA0)
110   PORT_BIT( 0x02,  IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('N')// P1 NO  (EBCA1)
111   PORT_BIT( 0x04,  IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A')// P2 YES (EBCA2)
112   PORT_BIT( 0x08,  IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('S')// P2 NO  (EBCA3)
113   PORT_BIT( 0x10,  IP_ACTIVE_HIGH, IPT_UNUSED )   PORT_UNUSED
114   PORT_BIT( 0x20,  IP_ACTIVE_HIGH, IPT_UNUSED )   PORT_UNUSED
115   PORT_BIT( 0x40,  IP_ACTIVE_HIGH, IPT_UNUSED )   PORT_UNUSED     
116   PORT_BIT( 0x80,  IP_ACTIVE_HIGH, IPT_UNUSED )   PORT_UNUSED   
117INPUT_PORTS_END
118
119
120void unichamp_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
121{
122   //TODO should we add an explicit Reset button in there just like the controller?
123}
124
125
126READ8_MEMBER(unichamp_state::bext_r)
127{
128   //The BEXT instruction pushes a user-defined nibble out on the four EBCA pins (EBCA0 to EBCA3)
129   //and reads the ECBI input pin for HIGH or LOW signal to know whether or not to branch
130
131   //The unisonic control system couldnt be simpler in desing.
132   //Each of the two player controllers has three buttons:
133   //one tying !RESET(GIC pin 21) to ground when closed - resetting the WHOLE system.
134   //a YES button (connecting EBCA0 to EBCI for Player1 and EBC2 to EBCI for Player2)
135   //a NO  button (connecting EBCA1 to EBCI for Player1 and EBC3 to EBCI for Player2)
136
137   //The CPU outputs a MASK of whatever it needs and checks the result.
138   //EG: Any player can choose if one or two players are going to play the game for instance
139
140   UINT8 port = ioport("CTRLS")->read() & 0x0F; ////only lower nibble
141         
142   //We need to return logical high or low on the EBCI pin
143   return (port & offset)>0?1:0;
144}
145
146
147DRIVER_INIT_MEMBER(unichamp_state,unichamp)
148{
149   m_gic->set_shared_memory(m_ram);
150}
151
152void unichamp_state::machine_start()
153{
154   m_gic->set_shared_memory(m_ram);
155   
156   if (m_cart->exists()){     
157      //flip endians in more "this surely exists in MAME" way?
158      //NOTE The unichamp roms have the same endianness as intv on disk and in memory
159      UINT8*ptr   = m_cart->get_rom_base();
160      size_t size = m_cart->get_rom_size();
161      for(size_t i=0;i<size;i+=2){
162         UINT8 TEMP = ptr[i];
163         ptr[i] = ptr[i+1];
164         ptr[i+1] = TEMP;
165      }
166     
167      m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1800,
168                  read16_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart));   
169   }
170}
171
172/* Set Reset and INTR/INTRM Vector */
173void unichamp_state::machine_reset()
174{
175   /*
176   the intv driver did not explain this but from the CP1600 manual:
177   When MSYNC* goes inactive (high), the bus control signals issue lAB, 
178    and the CPU inputs from the bus into the PC the starting address of the main program. 
179   Note that the initialization address can be defined by the user at any desired bus address or
180   can be the default address resulting from the logical state of the non-driven bus   
181   */
182   
183   //The Unisonic EXEC ROM chip (9501-01009) is self mapped at 0x0800
184   //The cart ROMS are self mapped to 0x1000
185   //upon boot the EXEC ROM puts 0x0800 on the bus for the CPU to use as first INT vector
186
187   m_maincpu->set_input_line_vector(CP1610_RESET,     0x0800);
188   m_maincpu->set_input_line_vector(CP1610_INT_INTRM, 0x0804);//not used anyway
189   m_maincpu->set_input_line_vector(CP1610_INT_INTR,  0x0804);//not used anyway
190
191   /* Set initial PC */
192   m_maincpu->set_state_int(CP1610_R7, 0x0800);
193}
194
195
196UINT32 unichamp_state::screen_update_unichamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
197{
198   return m_gic->screen_update(screen, bitmap, cliprect);
199}
200
201READ16_MEMBER( unichamp_state::unichamp_gicram_r )
202{
203   return (int)m_ram[offset];
204}
205
206WRITE16_MEMBER( unichamp_state::unichamp_gicram_w )
207{
208   m_ram[offset] = data&0xff;
209}
210
211READ16_MEMBER( unichamp_state::unichamp_trapl_r )
212{
213   logerror("trapl_r(%x)\n",offset);
214   return (int)0;
215}
216
217WRITE16_MEMBER( unichamp_state::unichamp_trapl_w )
218{
219   logerror("trapl_w(%x) = %x\n",offset,data);
220}
221
222static MACHINE_CONFIG_START( unichamp, unichamp_state )
223   /* basic machine hardware */
224   
225   //The CPU is really clocked this way:
226   //MCFG_CPU_ADD("maincpu", CP1610, XTAL_3_579545MHz/4)   
227   //But since it is only running 7752/29868 th's of the time...
228   //TODO find a more accurate method? (the emulation will me the same though)
229   MCFG_CPU_ADD("maincpu", CP1610, (int)((7752.0/29868.0)*XTAL_3_579545MHz/4))
230   
231   MCFG_CPU_PROGRAM_MAP(unichamp_mem)
232   MCFG_QUANTUM_TIME(attotime::from_hz(60))
233    MCFG_CP1610_BEXT_CALLBACK(READ8(unichamp_state, bext_r))
234   
235   /* video hardware */
236   MCFG_SCREEN_ADD("screen", RASTER)
237   MCFG_SCREEN_RAW_PARAMS( XTAL_3_579545MHz,
238                           gic_device::LINE_CLOCKS,
239                     gic_device::START_ACTIVE_SCAN,
240                     gic_device::END_ACTIVE_SCAN,
241                     gic_device::LINES,
242                     gic_device::START_Y,
243                     gic_device::START_Y + gic_device::SCREEN_HEIGHT )
244                     
245   MCFG_SCREEN_UPDATE_DRIVER(unichamp_state, screen_update_unichamp)
246   MCFG_SCREEN_PALETTE("palette")
247   
248   MCFG_PALETTE_ADD("palette", 4)
249   MCFG_PALETTE_INIT_OWNER(unichamp_state, unichamp)
250   
251   /* sound hardware */
252   MCFG_SPEAKER_STANDARD_MONO("mono")
253   MCFG_GIC_ADD( "gic", XTAL_3_579545MHz, "screen" )
254   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
255   
256   /* cartridge */
257   MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_linear_slot, "unichamp_cart")
258   MCFG_GENERIC_EXTENSIONS("bin,rom")
259   MCFG_SOFTWARE_LIST_ADD("cart_list", "unichamp")
260   
261MACHINE_CONFIG_END
262
263
264ROM_START(unichamp)   
265   ROM_REGION(0x10000<<1,"maincpu", ROMREGION_ERASEFF)
266   
267   ROM_LOAD16_WORD( "9501-01009.u2", 0x0800<<1, 0x1000, CRC(49a0bd8f) SHA1(f4d126d3462ad351da4b75d76c75942d5a6f27ef))
268
269   //these below are for local tests. you can use them in softlist or -cart
270   //ROM_LOAD16_WORD( "pac-02.bin",   0x1000<<1, 0x1000, CRC(fe3213be) SHA1(5b9c407fe86865f3454d4be824a7f2bf53478f73))   
271   //ROM_LOAD16_WORD( "pac-03.bin",   0x1000<<1, 0x1000, CRC(f81f04bd) SHA1(82e2a0fda1787d5835c457ee5745b0db0cebe079))   
272   //ROM_LOAD16_WORD( "pac-04.bin",   0x1000<<1, 0x1000, CRC(cac09841) SHA1(bc9db83f26ed0810938156db6b104b4576754225))
273   //ROM_LOAD16_WORD( "pac-05.bin",   0x1000<<1, 0x1000, CRC(d54a6090) SHA1(e85593096f43dcf14b08fd2c9fda277008a8df8b))
274ROM_END
275
276
277CONS( 1977, unichamp, 0,  0, unichamp, unichamp,  unichamp_state,   unichamp,  "Unisonic", "Champion 2711", 0/*MACHINE_IMPERFECT_GRAPHICS*/)
trunk/src/mame/drivers/vicdual.c
r249893r249894
36053605
36063606GAMEL(1977, depthch,    0,        depthch,   depthch,   driver_device, 0, ROT0,   "Gremlin", "Depthcharge", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_depthch )
36073607GAMEL(1977, depthcho,   depthch,  depthch,   depthch,   driver_device, 0, ROT0,   "Gremlin", "Depthcharge (older)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_depthch )
3608GAMEL(1977, subhunt,    depthch,  depthch,   depthch,   driver_device, 0, ROT0,   "Gremlin (Taito license)", "Sub Hunter", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_depthch )
3608GAMEL(1977, subhunt,    depthch,  depthch,   depthch,   driver_device, 0, ROT0,   "Gremlin (Taito license)", "Sub Hunter (Gremlin / Taito)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_depthch )
36093609GAME( 1977, safari,     0,        safari,    safari,    driver_device, 0, ROT0,   "Gremlin", "Safari (set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
36103610GAME( 1977, safaria,    safari,   safari,    safari,    driver_device, 0, ROT0,   "Gremlin", "Safari (set 2, bootleg?)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // on a bootleg board, but seems a different code revision too
36113611GAME( 1978, frogs,      0,        frogs,     frogs,     driver_device, 0, ROT0,   "Gremlin", "Frogs", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
trunk/src/mame/drivers/wacky_gator.c
r249893r249894
1010   Most of this driver is based on guessing since I do not have access to the actual pcb for this game.
1111   Once we get a pcb, please review the correctness of the code in this driver before deleting this comment.
1212
13   There's a bunch of memory accesses that are not yet properly understood.
14   Supposedly these are reponsible for things like:
15
16   * controlling playback of samples of the OKI sound chip
17   * reading the status of the rear & front limit switches for each of the
18     5 alligators
19   * reading the hit sensors for the 5 alligators
20   * reading coin insertion and start button
21   * flashing lamps in the backglass (apparently there's a total of
22     20 lamps around the backframe)
23   * flashing the status lamps to indicate how good was the game of a player
24     (there are 5 different levels that can be shown inthe end of the game)
25   * controlling the 7-seg displays with:
26     - number of times the player successfully hit an alligator
27     - number of times the player was caught by an alligator
28     - final score
29     - highest score
13   TODO:
14   - IRQ and NMI sources are unknown
15   - proper PMM8713 and steppers emulation
3016*/
3117
3218#include "emu.h"
3319#include "cpu/m6809/m6809.h"
20#include "machine/i8255.h"
21#include "machine/pit8253.h"
22#include "machine/ticket.h"
23#include "sound/2413intf.h"
3424#include "sound/msm5205.h"
3525
26#include "wackygtr.lh"
27
28
3629class wackygtr_state : public driver_device
3730{
3831public:
3932   wackygtr_state(const machine_config &mconfig, device_type type, const char *tag)
4033      : driver_device(mconfig, type, tag),
41   m_msm(*this, "msm"),
42   m_maincpu(*this, "maincpu")
34      m_maincpu(*this, "maincpu"),
35      m_msm(*this, "msm"),
36      m_pit8253_0(*this, "pit8253_0"),
37      m_pit8253_1(*this, "pit8253_1"),
38      m_ticket(*this, "ticket"),
39      m_samples(*this, "oki")
4340   { }
4441
45   UINT8* m_samples;
46   int m_adpcm_data;
47   int m_adpcm_pos;
48   int m_adpcm_length;
42   required_device<cpu_device> m_maincpu;
43   required_device<msm5205_device> m_msm;
44   required_device<pit8253_device> m_pit8253_0;
45   required_device<pit8253_device> m_pit8253_1;
46   required_device<ticket_dispenser_device> m_ticket;
47   required_memory_region m_samples;
4948
50   required_device<msm5205_device> m_msm;
51   required_device<cpu_device> m_maincpu;
5249   DECLARE_DRIVER_INIT(wackygtr);
50   void machine_reset();
5351
54   INTERRUPT_GEN_MEMBER(wackygtr_interrupt);
5552   DECLARE_WRITE_LINE_MEMBER(adpcm_int);
56   DECLARE_READ8_MEMBER(_0x6000_r);
57   DECLARE_READ8_MEMBER(_0x6001_r);
58   DECLARE_READ8_MEMBER(_0x6002_r);
59   DECLARE_READ8_MEMBER(_0x71d0_r);
60   DECLARE_READ8_MEMBER(_0x71d5_r);
61   DECLARE_WRITE8_MEMBER(sample_pos_w);
62   DECLARE_WRITE8_MEMBER(sample_length_w);
53   DECLARE_WRITE8_MEMBER(sample_ctrl_w);
54   DECLARE_WRITE8_MEMBER(alligators_ctrl1_w);
55   DECLARE_WRITE8_MEMBER(alligators_ctrl2_w);
56   DECLARE_CUSTOM_INPUT_MEMBER(alligators_rear_sensors_r);
57   DECLARE_CUSTOM_INPUT_MEMBER(alligators_front_sensors_r);
58
59   void set_lamps(int p, UINT8 value);
60   DECLARE_WRITE8_MEMBER(status_lamps_w);
61   DECLARE_WRITE8_MEMBER(timing_lamps_0_w)     { set_lamps(8 , data); }
62   DECLARE_WRITE8_MEMBER(timing_lamps_1_w)     { set_lamps(16, data); }
63   DECLARE_WRITE8_MEMBER(timing_lamps_2_w)     { set_lamps(24, data); }
64
65   void set_digits(int p, UINT8 value);
66   DECLARE_WRITE8_MEMBER(disp0_w)              { set_digits(0, data); }
67   DECLARE_WRITE8_MEMBER(disp1_w)              { set_digits(2, data); }
68   DECLARE_WRITE8_MEMBER(disp2_w)              { set_digits(4, data); }
69   DECLARE_WRITE8_MEMBER(disp3_w)              { set_digits(6, data); }
70
71   void pmm8713_ck(int i, int state);
72   DECLARE_WRITE_LINE_MEMBER(alligator0_ck)    { pmm8713_ck(0, state); }
73   DECLARE_WRITE_LINE_MEMBER(alligator1_ck)    { pmm8713_ck(1, state); }
74   DECLARE_WRITE_LINE_MEMBER(alligator2_ck)    { pmm8713_ck(2, state); }
75   DECLARE_WRITE_LINE_MEMBER(alligator3_ck)    { pmm8713_ck(3, state); }
76   DECLARE_WRITE_LINE_MEMBER(alligator4_ck)    { pmm8713_ck(4, state); }
77
78   DECLARE_WRITE8_MEMBER(irq_ack_w)            { m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE); }
79   DECLARE_WRITE8_MEMBER(firq_ack_w)           { m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE); }
80
81   TIMER_DEVICE_CALLBACK_MEMBER(nmi_timer)     { m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); }
82
83private:
84   int     m_adpcm_sel;
85   UINT16  m_adpcm_pos;
86   UINT8   m_adpcm_ctrl;
87
88   UINT8   m_alligators_ctrl;
89   int     m_motors_pos[5];
6390};
6491
6592
6693DRIVER_INIT_MEMBER(wackygtr_state, wackygtr)
6794{
68   m_adpcm_data = -1;
69   m_adpcm_pos = 0;
70   m_adpcm_length = 0;
71   m_samples = memregion("oki")->base();
7295}
7396
74/*
75 * The read handlers below are only boiler-plate for actual peripheral emulation
76 * and may be completely wrong, so should not yet be understood as hardware documentation.
77 */
78READ8_MEMBER(wackygtr_state::_0x6000_r){
79   return 0x00;
97WRITE8_MEMBER(wackygtr_state::status_lamps_w)
98{
99   /*
100       ---x xxxx   status lamps
101       --x- ----   game over lamp
102       -x-- ----   coin counter
103       x--- ----   ticket dispenser
104   */
105
106   set_lamps(0, data & 0x3f);
107
108   coin_counter_w(machine(), 0, BIT(data, 6));
109   m_ticket->write(space, 0, data & 0x80);
80110}
81111
82READ8_MEMBER(wackygtr_state::_0x6001_r){
83   return 0x00;
112WRITE8_MEMBER(wackygtr_state::sample_ctrl_w)
113{
114   /*
115       --xx xxxx    sample index
116       -x-- ----    ???
117       x--- ----    5205 reset
118   */
119
120   m_adpcm_ctrl = data;
121   m_adpcm_pos = (data & 0x3f) * 0x400;
122   m_adpcm_sel = 0;
123   m_msm->reset_w(BIT(data, 7));
84124}
85125
86READ8_MEMBER(wackygtr_state::_0x6002_r){
87   return 0x00;
126WRITE8_MEMBER(wackygtr_state::alligators_ctrl1_w)
127{
128   m_pit8253_0->write_gate0(BIT(data, 0));
129   m_pit8253_0->write_gate1(BIT(data, 1));
130   m_pit8253_0->write_gate2(BIT(data, 2));
131   m_pit8253_1->write_gate1(BIT(data, 3));
132   m_pit8253_1->write_gate2(BIT(data, 4));
133
134   coin_lockout_w(machine(), 0, data & 0x40 ? 0 : 1);
88135}
89136
90READ8_MEMBER(wackygtr_state::_0x71d0_r){
91   return 0;
137WRITE8_MEMBER(wackygtr_state::alligators_ctrl2_w)
138{
139   /*
140       ---- ---x    PMM8713 0 U/D
141       ---- --x-    PMM8713 1 U/D
142       ---- -x--    PMM8713 2 U/D
143       ---- x---    PMM8713 3 U/D
144       ---x ----    PMM8713 4 U/D
145   */
146
147   m_alligators_ctrl = data & 0x1f;
92148}
93149
94READ8_MEMBER(wackygtr_state::_0x71d5_r){
95   return 0xFF;
150void wackygtr_state::pmm8713_ck(int i, int state)
151{
152   if (state)
153   {
154      m_motors_pos[i] += (BIT(m_alligators_ctrl, i) ? +1 : -1);
155
156      int alligator_state = m_motors_pos[i] / 10;
157      if (alligator_state > 5)    alligator_state = 5;
158      if (alligator_state < 0)    alligator_state = 0;
159      output_set_indexed_value("alligator", i, alligator_state);
160   }
96161}
97162
98/* The handling of sample playback is also guessed.
99 * Someone with access to the actual hardware could help
100 * better understand how this is actually hooked up on the original boards;
101 */
102WRITE8_MEMBER(wackygtr_state::sample_pos_w){
103   m_adpcm_pos = (m_adpcm_pos & 0xFF) << 8 | (data & 0xFF);
163CUSTOM_INPUT_MEMBER(wackygtr_state::alligators_rear_sensors_r)
164{
165   return  ((m_motors_pos[0] < 10) ? 0x01 : 0) |
166         ((m_motors_pos[1] < 10) ? 0x02 : 0) |
167         ((m_motors_pos[2] < 10) ? 0x04 : 0) |
168         ((m_motors_pos[3] < 10) ? 0x08 : 0) |
169         ((m_motors_pos[4] < 10) ? 0x10 : 0) |
170         (m_alligators_ctrl ^ 0x1f);
104171}
105172
106WRITE8_MEMBER(wackygtr_state::sample_length_w){
107   m_adpcm_length = (m_adpcm_length & 0xFF) << 8 | (data & 0xFF);
173CUSTOM_INPUT_MEMBER(wackygtr_state::alligators_front_sensors_r)
174{
175   return  ((m_motors_pos[0] < 5 || m_motors_pos[0] > 55) ? 0x01 : 0) |
176         ((m_motors_pos[1] < 5 || m_motors_pos[1] > 55) ? 0x02 : 0) |
177         ((m_motors_pos[2] < 5 || m_motors_pos[2] > 55) ? 0x04 : 0) |
178         ((m_motors_pos[3] < 5 || m_motors_pos[3] > 55) ? 0x08 : 0) |
179         ((m_motors_pos[4] < 5 || m_motors_pos[4] > 55) ? 0x10 : 0);
108180}
109181
182void wackygtr_state::machine_reset()
183{
184   m_adpcm_pos = 0;
185   m_adpcm_sel = 0;
186   m_adpcm_ctrl = 0x80;
187}
188
189void wackygtr_state::set_digits(int p, UINT8 value)
190{
191   static UINT8 bcd2hex[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x67, 0, 0, 0, 0, 0, 0 };  // not accurate
192   output_set_digit_value(p + 0, bcd2hex[value & 0x0f]);
193   output_set_digit_value(p + 1, bcd2hex[(value >> 4) & 0x0f]);
194}
195
196void wackygtr_state::set_lamps(int p, UINT8 value)
197{
198   for(int i=0; i<8; i++)
199      output_set_lamp_value(p + i, BIT(value, i));
200}
201
110202static INPUT_PORTS_START( wackygtr )
111   PORT_START("INP0")
112   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
203   PORT_START("IN0")
204   PORT_BIT(0x1f, IP_ACTIVE_LOW, IPT_SPECIAL)  PORT_CUSTOM_MEMBER(DEVICE_SELF, wackygtr_state, alligators_rear_sensors_r, NULL)
205   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_SERVICE)
206   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_SERVICE1)
207   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_COIN1)
208
209   PORT_START("IN1")
210   PORT_BIT(0x1f, IP_ACTIVE_LOW, IPT_SPECIAL)   PORT_CUSTOM_MEMBER(DEVICE_SELF, wackygtr_state, alligators_front_sensors_r, NULL)
211   PORT_DIPNAME( 0xe0, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW:1,2,3")
212   PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
213   PORT_DIPSETTING(    0x20, DEF_STR( 1C_1C ) )
214   PORT_DIPSETTING(    0x40, DEF_STR( 1C_1C ) )
215   PORT_DIPSETTING(    0x60, DEF_STR( 2C_1C ) )
216   PORT_DIPSETTING(    0x80, DEF_STR( 1C_1C ) )
217   PORT_DIPSETTING(    0xa0, DEF_STR( 2C_1C ) )
218   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_1C ) )
219   PORT_DIPSETTING(    0xe0, DEF_STR( 2C_1C ) )
220
221   PORT_START("IN2")
222   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1)
223   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2)
224   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3)
225   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4)
226   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5)
227   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Test ) ) PORT_DIPLOCATION("SW:4")   // For factory Test use ONLY! Do not change
228   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
229   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
230   PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW:5")
231   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
232   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
233   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Test ) ) PORT_DIPLOCATION("SW:6")   // For factory Test use ONLY! Do not change
234   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
235   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
113236INPUT_PORTS_END
114237
115238WRITE_LINE_MEMBER(wackygtr_state::adpcm_int)
116239{
117/* This looks almost correct, but I am not yet completely sure. */
118   if (m_adpcm_length > 0)
240   if (!(m_adpcm_ctrl & 0x80))
119241   {
120      m_adpcm_length--;
121      if (m_adpcm_data == -1)
122      {
123         /* transferring 1st nibble */
124         m_adpcm_data = m_samples[m_adpcm_pos];
125         m_adpcm_pos = (m_adpcm_pos + 1) & 0xffff;
126         m_msm->data_w((m_adpcm_data >> 4) & 0xf);
127      }
128      else
129      {
130         /* transferring 2nd nibble */
131         m_msm->data_w(m_adpcm_data & 0x0f);
132         m_adpcm_data = -1;
133      }
242      UINT8 data = m_samples->base()[m_adpcm_pos & 0xffff];
243      m_msm->data_w((m_adpcm_sel ? data : (data >> 4)) & 0x0f);
244      m_adpcm_pos += m_adpcm_sel;
245      m_adpcm_sel ^= 1;
134246   }
135247}
136248
137249static ADDRESS_MAP_START( program_map, AS_PROGRAM, 8, wackygtr_state )
138   AM_RANGE(0x3000, 0x3000) AM_WRITE(sample_length_w)
139   AM_RANGE(0x3001, 0x3001) AM_WRITE(sample_pos_w)
140   AM_RANGE(0x6000, 0x6000) AM_READ(_0x6000_r) /* guessed hw peripheral address */
141   AM_RANGE(0x6001, 0x6001) AM_READ(_0x6001_r) /* guessed hw peripheral address */
142   AM_RANGE(0x6002, 0x6002) AM_READ(_0x6002_r) /* guessed hw peripheral address */
143   AM_RANGE(0x71d0, 0x71d0) AM_READ(_0x71d0_r) /* guessed hw peripheral address */
144   AM_RANGE(0x71d5, 0x71d5) AM_READ(_0x71d5_r) /* guessed hw peripheral address */
250   AM_RANGE(0x0200, 0x0200) AM_READNOP AM_WRITE(irq_ack_w)
251   AM_RANGE(0x0400, 0x0400) AM_READNOP AM_WRITE(firq_ack_w)
252   AM_RANGE(0x0600, 0x0600) AM_WRITE(disp0_w)
253   AM_RANGE(0x0800, 0x0800) AM_WRITE(disp1_w)
254   AM_RANGE(0x0a00, 0x0a00) AM_WRITE(disp2_w)
255   AM_RANGE(0x0c00, 0x0c00) AM_WRITE(disp3_w)
256   AM_RANGE(0x0e00, 0x0e00) AM_WRITE(sample_ctrl_w)
257
258   AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ymsnd", ym2413_device, write)
259
260   AM_RANGE(0x2000, 0x2003) AM_DEVREADWRITE("pit8253_0", pit8253_device, read, write)
261   AM_RANGE(0x3000, 0x3003) AM_DEVREADWRITE("pit8253_1", pit8253_device, read, write)
262
263   AM_RANGE(0x4000, 0x4003) AM_DEVREADWRITE("i8255_0", i8255_device, read, write)
264   AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("i8255_1", i8255_device, read, write)
265   AM_RANGE(0x6000, 0x6003) AM_DEVREADWRITE("i8255_2", i8255_device, read, write)
266
145267   AM_RANGE(0x7000, 0x7fff) AM_RAM
146268   AM_RANGE(0x8000, 0xffff) AM_ROM
147269ADDRESS_MAP_END
148270
149271static MACHINE_CONFIG_START( wackygtr, wackygtr_state )
150272
151   MCFG_CPU_ADD("maincpu", M6809E, XTAL_8MHz)
273   MCFG_CPU_ADD("maincpu", M6809E, XTAL_3_579545MHz)   // HD68B09P
152274   MCFG_CPU_PROGRAM_MAP(program_map)
275   MCFG_CPU_PERIODIC_INT_DRIVER(wackygtr_state, irq0_line_assert, 50)  // FIXME
153276
277   MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi_timer", wackygtr_state, nmi_timer, attotime::from_hz(100))  // FIXME
278
154279   /* Video */
155//    MCFG_DEFAULT_LAYOUT(layout_wackygtr)
280   MCFG_DEFAULT_LAYOUT(layout_wackygtr)
156281
157282   /* Sound */
158283   MCFG_SPEAKER_STANDARD_MONO("mono")
r249893r249894
161286   MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B)      /* 8 KHz, 4 Bits  */
162287   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
163288
164   /* I have a hunch that this board may also
165    * contain a YM2151 sound chip for background music...
166    */
289   MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz )
290   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
291
292   MCFG_DEVICE_ADD("i8255_0", I8255, 0)
293   MCFG_I8255_OUT_PORTA_CB(WRITE8(wackygtr_state, status_lamps_w))
294   MCFG_I8255_OUT_PORTB_CB(WRITE8(wackygtr_state, alligators_ctrl1_w))
295   MCFG_I8255_OUT_PORTC_CB(WRITE8(wackygtr_state, alligators_ctrl2_w))
296
297   MCFG_DEVICE_ADD("i8255_1", I8255, 0)
298   MCFG_I8255_OUT_PORTA_CB(WRITE8(wackygtr_state, timing_lamps_0_w))
299   MCFG_I8255_OUT_PORTB_CB(WRITE8(wackygtr_state, timing_lamps_1_w))
300   MCFG_I8255_OUT_PORTC_CB(WRITE8(wackygtr_state, timing_lamps_2_w))
301
302   MCFG_DEVICE_ADD("i8255_2", I8255, 0)
303   MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
304   MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
305   MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
306
307   MCFG_DEVICE_ADD("pit8253_0", PIT8253, 0)
308   MCFG_PIT8253_CLK0(XTAL_3_579545MHz/16)  // this is a guess
309   MCFG_PIT8253_OUT0_HANDLER(WRITELINE(wackygtr_state, alligator0_ck))
310   MCFG_PIT8253_CLK1(XTAL_3_579545MHz/16)  // this is a guess
311   MCFG_PIT8253_OUT1_HANDLER(WRITELINE(wackygtr_state, alligator1_ck))
312   MCFG_PIT8253_CLK2(XTAL_3_579545MHz/16)  // this is a guess
313   MCFG_PIT8253_OUT2_HANDLER(WRITELINE(wackygtr_state, alligator2_ck))
314
315   MCFG_DEVICE_ADD("pit8253_1", PIT8253, 0)
316   MCFG_PIT8253_CLK0(XTAL_3_579545MHz/16)  // this is a guess
317   MCFG_PIT8253_OUT0_HANDLER(INPUTLINE("maincpu", M6809_FIRQ_LINE))
318   MCFG_PIT8253_CLK1(XTAL_3_579545MHz/16)  // this is a guess
319   MCFG_PIT8253_OUT1_HANDLER(WRITELINE(wackygtr_state, alligator3_ck))
320   MCFG_PIT8253_CLK2(XTAL_3_579545MHz/16)  // this is a guess
321   MCFG_PIT8253_OUT2_HANDLER(WRITELINE(wackygtr_state, alligator4_ck))
322
323   MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH)
167324MACHINE_CONFIG_END
168325
169326
trunk/src/mame/includes/abc80x.h
r249893r249894
4444#define ABC806_ATTR_RAM_SIZE    0x800
4545#define ABC806_VIDEO_RAM_SIZE   0x20000
4646
47#define ABC800_CHAR_WIDTH   6
47#define ABC800_CHAR_WIDTH   12
4848#define ABC800_CCLK         ABC800_X01/ABC800_CHAR_WIDTH
4949
5050#define SCREEN_TAG          "screen"
trunk/src/mame/includes/amstrad.h
r249893r249894
3030#include "bus/cpc/brunword4.h"
3131#include "bus/cpc/hd20.h"
3232#include "bus/cpc/magicsound.h"
33#include "bus/cpc/doubler.h"
3334#include "machine/ram.h"
3435#include "imagedev/cassette.h"
3536#include "bus/centronics/ctronics.h"
trunk/src/mame/includes/apollo.h
r249893r249894
4646#define MLOG(x)  { logerror ("%s: ", apollo_cpu_context(machine().device(MAINCPU))); LOG(x) }
4747#define MLOG1(x) { if (VERBOSE > 0) MLOG(x) }
4848#define MLOG2(x) { if (VERBOSE > 1) MLOG(x) }
49#define SLOG(x)  { logerror ("%s: ", apollo_cpu_context(&space.device())); LOG(x) }
49#define SLOG(x)  { logerror ("%s: ", apollo_cpu_context(m_maincpu)); LOG(x) }
5050#define SLOG1(x) { if (VERBOSE > 0) SLOG(x) }
5151#define SLOG2(x) { if (VERBOSE > 1) SLOG(x) }
5252
5353#define  MAINCPU "maincpu"
5454
55// Enabling this is >NOT< supported by MESSdev
56// Do *not* report any issues on Mametesters if this is enabled!
57// #define APOLLO_XXL
58
5559/*----------- machine/apollo_dbg.c -----------*/
5660
5761int apollo_debug_instruction_hook(m68000_base_device *device, offs_t curpc);
r249893r249894
7074// return 1 if node is DN3000 or DSP3000, 0 otherwise
7175int apollo_is_dn3000(void);
7276
77// return 1 if node is DN5500 or DSP5500, 0 otherwise
78int apollo_is_dn5500(void);
79
7380// return 1 if node is DSP3000 or DSP3500, 0 otherwise
7481int apollo_is_dsp3x00(void);
7582
r249893r249894
98105#define APOLLO_SIO_TAG  "sio"
99106#define APOLLO_SIO2_TAG "sio2"
100107#define APOLLO_ETH_TAG  "3c505"
108#define APOLLO_NI_TAG  "node_id"
101109#define APOLLO_ISA_TAG "isabus"
102110
103111// forward declaration
104112class apollo_sio;
113class apollo_ni;
105114
106115class apollo_state : public driver_device
107116{
r249893r249894
118127         m_sio(*this, APOLLO_SIO_TAG),
119128         m_sio2(*this, APOLLO_SIO2_TAG),
120129         m_rtc(*this, APOLLO_RTC_TAG),
130         m_node_id(*this, APOLLO_NI_TAG),
121131         m_isa(*this, APOLLO_ISA_TAG)
122132         { }
123133
r249893r249894
132142   required_device<apollo_sio> m_sio;
133143   optional_device<apollo_sio> m_sio2;
134144   required_device<mc146818_device> m_rtc;
145   required_device<apollo_ni> m_node_id;
135146   required_device<isa16_device> m_isa;
136147
137148   DECLARE_WRITE16_MEMBER(apollo_csr_status_register_w);
r249893r249894
173184   DECLARE_WRITE16_MEMBER(apollo_atbus_io_w);
174185   DECLARE_READ16_MEMBER(apollo_atbus_memory_r);
175186   DECLARE_WRITE16_MEMBER(apollo_atbus_memory_w);
187   DECLARE_READ16_MEMBER(apollo_atbus_unmap_io_r);
188   DECLARE_WRITE16_MEMBER(apollo_atbus_unmap_io_w);
189   DECLARE_READ8_MEMBER(apollo_atbus_unmap_r);
190   DECLARE_WRITE8_MEMBER(apollo_atbus_unmap_w);
176191   DECLARE_WRITE8_MEMBER(dn5500_memory_present_register_w);
177192   DECLARE_READ8_MEMBER(dn5500_memory_present_register_r);
178193   DECLARE_WRITE8_MEMBER(dn5500_11500_w);
r249893r249894
335350
336351extern const device_type APOLLO_SIO;
337352
353/*----------- machine/apollo_ni.c -----------*/
354
355#define MCFG_APOLLO_NI_ADD(_tag, _xtal) \
356   MCFG_DEVICE_ADD(_tag, APOLLO_NI, _xtal)
357
358/*** Apollo Node ID device ***/
359
360class apollo_ni: public device_t, public device_image_interface
361{
362public:
363   // construction/destruction
364   apollo_ni(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
365   virtual ~apollo_ni();
366
367   virtual iodevice_t image_type() const { return IO_ROM; }
368
369   virtual bool is_readable()  const { return 1; }
370   virtual bool is_writeable() const { return 1; }
371   virtual bool is_creatable() const { return 1; }
372   virtual bool must_be_loaded() const { return 0; }
373   virtual bool is_reset_on_load() const { return 0; }
374   virtual const char *image_interface() const { return NULL; }
375   virtual const char *file_extensions() const { return "ani,bin"; }
376   virtual const option_guide *create_option_guide() const { return NULL; }
377
378   DECLARE_WRITE16_MEMBER(write);
379   DECLARE_READ16_MEMBER(read);
380
381   // image-level overrides
382   virtual bool call_load();
383   virtual bool call_create(int format_type, option_resolution *format_options);
384   virtual void call_unload();
385
386   void set_node_id_from_disk();
387
388protected:
389   // device-level overrides
390   virtual void device_config_complete() ;
391   virtual void device_start();
392   virtual void device_reset();
393
394private:
395   void set_node_id(UINT32 node_id);
396   UINT32 m_node_id;
397};
398
399// device type definition
400extern const device_type APOLLO_NI;
401
338402/*----------- video/apollo.c -----------*/
339403
340404#define APOLLO_SCREEN_TAG "apollo_screen"
r249893r249894
599663
600664MACHINE_CONFIG_EXTERN( apollo_mono19i );
601665
666#ifdef APOLLO_XXL
667
668/*----------- machine/apollo_stdio.c -----------*/
669
670//**************************************************************************
671//  DEVICE CONFIGURATION MACROS
672//**************************************************************************
673
674#define MCFG_APOLLO_STDIO_TX_CALLBACK(_cb) \
675   devcb = &apollo_stdio_device::set_tx_cb(*device, DEVCB_##_cb);
676
677//**************************************************************************
678//  TYPE DEFINITIONS
679//**************************************************************************
680
681// ======================> apollo_stdio_device
682
683class apollo_stdio_device: public device_t, public device_serial_interface
684{
685public:
686   // construction/destruction
687   apollo_stdio_device(const machine_config &mconfig, const char *tag,
688         device_t *owner, UINT32 clock);
689
690   template<class _Object> static devcb_base &set_tx_cb(device_t &device, _Object object)
691   {
692      return downcast<apollo_stdio_device &> (device).m_tx_w.set_callback(object);
693   }
694
695   devcb_write_line m_tx_w;
696
697private:
698   // device-level overrides
699   virtual void device_start();
700   virtual void device_reset();
701   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
702
703   // serial overrides
704   virtual void rcv_complete(); // Rx completed receiving byte
705   virtual void tra_complete(); // Tx completed sending byte
706   virtual void tra_callback(); // Tx send bit
707
708   TIMER_CALLBACK_MEMBER( poll_timer );
709   void xmit_char(UINT8 data);
710
711   static const int XMIT_RING_SIZE = 64;
712
713   UINT8 m_xmitring[XMIT_RING_SIZE];
714   int m_xmit_read, m_xmit_write;
715   bool m_tx_busy;
716
717   emu_timer* m_poll_timer;
718};
719
720// device type definition
721extern const device_type APOLLO_STDIO;
722#endif /* APOLLO_XXL */
723
602724#endif /* APOLLO_H_ */
trunk/src/mame/includes/bbc.h
r249893r249894
8383      m_palette(*this, "palette")
8484   { }
8585
86   DECLARE_FLOPPY_FORMATS(floppy_formats_525sd);
87   DECLARE_FLOPPY_FORMATS(floppy_formats_525dd);
88   DECLARE_FLOPPY_FORMATS(floppy_formats_35dd);
86   DECLARE_FLOPPY_FORMATS(floppy_formats_bbc);
87   DECLARE_FLOPPY_FORMATS(floppy_formats_bbcm);
88   DECLARE_FLOPPY_FORMATS(floppy_formats_bbcmc);
8989
9090   DECLARE_WRITE8_MEMBER(bbc_page_selecta_w);
9191   DECLARE_WRITE8_MEMBER(bbc_memorya1_w);
r249893r249894
154154   DECLARE_READ8_MEMBER(bbcb_via_user_read_portb);
155155   DECLARE_WRITE8_MEMBER(bbcb_via_user_write_portb);
156156   DECLARE_WRITE_LINE_MEMBER(bbcb_via_user_irq_w);
157   DECLARE_WRITE_LINE_MEMBER(bbc_wd177x_intrq_w);
158   DECLARE_WRITE_LINE_MEMBER(bbc_wd177x_drq_w);
159157   DECLARE_WRITE_LINE_MEMBER(bbc_vsync);
160158   void update_acia_rxd();
161159   void update_acia_dcd();
r249893r249894
166164   DECLARE_WRITE_LINE_MEMBER(write_dcd_serial);
167165   DECLARE_WRITE_LINE_MEMBER(write_cts_serial);
168166   DECLARE_INPUT_CHANGED_MEMBER( trigger_reset );
169   DECLARE_WRITE_LINE_MEMBER(bbc_i8271_interrupt);
167   DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w);
168   DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
170169   DECLARE_WRITE_LINE_MEMBER(motor_w);
171170   DECLARE_WRITE_LINE_MEMBER(side_w);
172171
r249893r249894
176175   void bbc_setup_banks(memory_bank *membank, int banks, UINT32 shift, UINT32 size);
177176   void bbcm_setup_banks(memory_bank *membank, int banks, UINT32 shift, UINT32 size);
178177
179   int bbc_load_cart(device_image_interface &image, generic_slot_device *slot);
180   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(exp1_load) { return bbc_load_cart(image, m_exp1); }
181   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(exp2_load) { return bbc_load_cart(image, m_exp2); }
182   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(exp3_load) { return bbc_load_cart(image, m_exp3); }
183   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(exp4_load) { return bbc_load_cart(image, m_exp4); }
178   int bbc_load_rom(device_image_interface &image, generic_slot_device *slot);
179   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(exp1_load) { return bbc_load_rom(image, m_exp1); }
180   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(exp2_load) { return bbc_load_rom(image, m_exp2); }
181   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(exp3_load) { return bbc_load_rom(image, m_exp3); }
182   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(exp4_load) { return bbc_load_rom(image, m_exp4); }
184183
185184   int bbcm_load_cart(device_image_interface &image, generic_slot_device *slot);
186185   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(bbcm_exp1_load) { return bbcm_load_cart(image, m_exp1); }
r249893r249894
228227
229228   void check_interrupts();
230229
230   bool m_os01;            // flag indicating whether OS 0.1 is being used
231231   int m_SWRAMtype;        // this stores the DIP switch setting for the SWRAM type being used
232232   int m_Speech;           // this stores the CONF setting for Speech enabled/disabled
233233
r249893r249894
344344
345345
346346                     /**************************************
347                        i8271 disc control
348                     ***************************************/
349
350   int m_previous_i8271_int_state; // 8271 interrupt status
351
352                     /**************************************
353347                        WD1770 disc control
354348                     ***************************************/
355349
356350   int m_drive_control;
357   int m_wd177x_irq_state;
358   int m_wd177x_drq_state;
359   int m_previous_wd177x_int_state;
360   int m_177x_IntEnabled;
351   int m_fdc_irq;
352   int m_fdc_drq;
361353
362354                     /**************************************
363355                        Video Code
r249893r249894
386378   int m_BBC_HSync;
387379   int m_BBC_VSync;
388380
389
390381   int m_Teletext_Latch;
391382   int m_VideoULA_CR;
392383   int m_VideoULA_CR_counter;
r249893r249894
398389   int m_videoULA_teletext_normal_select;
399390   int m_videoULA_flash_colour_select;
400391
401
402392   int m_pixels_per_byte;
403393   int m_emulation_pixels_per_real_pixel;
404394   int m_emulation_pixels_per_byte;
r249893r249894
406396   int m_emulation_cursor_size;
407397   int m_cursor_state;
408398
409   int m_videoULA_pallet0[16];
410   int m_videoULA_pallet1[16];
411   int *m_videoULA_pallet_lookup;
399   int m_videoULA_palette0[16];
400   int m_videoULA_palette1[16];
401   int *m_videoULA_palette_lookup;
412402
413   void (*m_draw_function)(running_machine &machine);
414
415   void bbcbp_setvideoshadow(int vdusel);
403   void bbc_setvideoshadow(int vdusel);
416404   void common_init(int memorySize);
417405   void set_pixel_lookup();
418406   void set_cursor(bbc_state *state);
419407   void BBC_Clock_CR(bbc_state *state);
420   void BBC_draw_teletext();
421   void BBC_ula_drawpixel(bbc_state *state, int col, int number_of_pixels);
422   void BBC_draw_hi_res();
423408   void BBC_Set_HSync(int offset, int data);
424409   void BBC_Set_VSync(int offset, int data);
425410   void BBC_Set_CRE(int offset, int data);
426   void bbc_frameclock();
427411   int vdudriverset();
428412   int bbcm_vdudriverset();
429413   int bbc_keyboard(address_space &space, int data);
430414   void bbcb_IC32_initialise(bbc_state *state);
431415   void MC146818_set(address_space &space);
432   void bbc_TMSint(int status);
433416   void MC6850_Receive_Clock(int new_clock);
434417   void BBC_Cassette_motor(unsigned char status);
435   void bbc_update_fdq_int(int state);
418   void bbc_update_nmi();
436419   unsigned int calculate_video_address(int ma,int ra);
437420   required_device<palette_device> m_palette;
438421};
trunk/src/mame/includes/champbas.h
r249893r249894
66
77*************************************************************************/
88
9
10#define CPUTAG_MCU "mcu"
119#include "sound/dac.h"
1210
11
1312class champbas_state : public driver_device
1413{
1514public:
r249893r249894
2019      m_spriteram_2(*this, "spriteram_2"),
2120      m_maincpu(*this, "maincpu"),
2221      m_audiocpu(*this, "audiocpu"),
23      m_mcu(*this, CPUTAG_MCU),
22      m_mcu(*this, "mcu"),
2423      m_dac(*this, "dac"),
2524      m_dac1(*this, "dac1"),
2625      m_dac2(*this, "dac2"),
2726      m_gfxdecode(*this, "gfxdecode"),
28      m_palette(*this, "palette"){ }
27      m_palette(*this, "palette")
28   { }
2929
3030   /* memory pointers */
3131   required_shared_ptr<UINT8> m_bg_videoram;
trunk/src/mame/includes/imds2.h
r249893r249894
8080   required_device<pit8253_device> m_ioctimer;
8181   required_device<i8271_device> m_iocfdc;
8282   required_device<floppy_connector> m_flop0;
83   required_device<floppy_connector> m_flop1;
8483   required_device<i8041_device> m_iocpio;
8584   required_device<i8741_device> m_kbcpu;
8685   required_device<palette_device> m_palette;
r249893r249894
102101
103102   void imds2_update_beeper(void);
104103   void imds2_update_printer(void);
105   int floppy_load(floppy_image_device *dev);
106   void floppy_unload(floppy_image_device *dev);
107104
108105   // IPC control port
109106   UINT8 m_ipc_control;
trunk/src/mame/includes/osborne1.h
r249893r249894
4747      m_row5(*this, "ROW5"),
4848      m_row6(*this, "ROW6"),
4949      m_row7(*this, "ROW7"),
50      m_cnf(*this, "CNF"),
5051      m_bank1(*this, "bank1"),
5152      m_bank2(*this, "bank2"),
5253      m_bank3(*this, "bank3"),
r249893r249894
9394   bool m_pia_0_irq_state;
9495   bool m_pia_1_irq_state;
9596   /* video related */
97   UINT8   m_screen_pac;
98   UINT8   m_resolution;
99   UINT8   m_hc_left;
96100   UINT8   m_new_start_x;
97101   UINT8   m_new_start_y;
98102   emu_timer *m_video_timer;
r249893r249894
115119   required_ioport m_row5;
116120   required_ioport m_row6;
117121   required_ioport m_row7;
122   required_ioport m_cnf;
118123   required_memory_bank m_bank1;
119124   required_memory_bank m_bank2;
120125   required_memory_bank m_bank3;
trunk/src/mame/includes/timeplt.h
r249893r249894
1515      : driver_device(mconfig, type, tag),
1616      m_maincpu(*this, "maincpu"),
1717      m_tc8830f(*this, "tc8830f"),
18      m_gfxdecode(*this, "gfxdecode"),
19      m_screen(*this, "screen"),
20      m_palette(*this, "palette"),
1821      m_colorram(*this, "colorram"),
1922      m_videoram(*this, "videoram"),
2023      m_spriteram(*this, "spriteram"),
21      m_spriteram2(*this, "spriteram2"),
22      m_gfxdecode(*this, "gfxdecode"),
23      m_screen(*this, "screen"),
24      m_palette(*this, "palette")
24      m_spriteram2(*this, "spriteram2")
2525   { }
2626
2727   required_device<cpu_device> m_maincpu;
2828   optional_device<tc8830f_device> m_tc8830f;
29   required_device<gfxdecode_device> m_gfxdecode;
30   required_device<screen_device> m_screen;
31   required_device<palette_device> m_palette;
2932
3033   /* memory pointers */
3134   required_shared_ptr<UINT8> m_colorram;
r249893r249894
3336   required_shared_ptr<UINT8> m_spriteram;
3437   required_shared_ptr<UINT8> m_spriteram2;
3538
36   required_device<gfxdecode_device> m_gfxdecode;
37   required_device<screen_device> m_screen;
38   required_device<palette_device> m_palette;
39
4039   /* video-related */
4140   tilemap_t  *m_bg_tilemap;
4241
4342   /* misc */
4443   UINT8    m_nmi_enable;
44   bool    m_video_enable;
4545
46   DECLARE_WRITE8_MEMBER(timeplt_nmi_enable_w);
47   DECLARE_WRITE8_MEMBER(timeplt_coin_counter_w);
46   /* common */
47   DECLARE_WRITE8_MEMBER(coincounter_w);
48   DECLARE_WRITE8_MEMBER(videoram_w);
49   DECLARE_WRITE8_MEMBER(colorram_w);
50   DECLARE_WRITE8_MEMBER(flipscreen_w);
51   DECLARE_READ8_MEMBER(scanline_r);
52
53   /* all but psurge */
54   DECLARE_WRITE8_MEMBER(nmi_enable_w);
55   DECLARE_WRITE8_MEMBER(video_enable_w);
56
57   /* psurge */
4858   DECLARE_READ8_MEMBER(psurge_protection_r);
49   DECLARE_WRITE8_MEMBER(timeplt_videoram_w);
50   DECLARE_WRITE8_MEMBER(timeplt_colorram_w);
51   DECLARE_WRITE8_MEMBER(timeplt_flipscreen_w);
52   DECLARE_READ8_MEMBER(timeplt_scanline_r);
59
60   /* chkun */
5361   DECLARE_CUSTOM_INPUT_MEMBER(chkun_hopper_status_r);
5462   DECLARE_WRITE8_MEMBER(chkun_sound_w);
63
5564   TILE_GET_INFO_MEMBER(get_tile_info);
5665   TILE_GET_INFO_MEMBER(get_chkun_tile_info);
66
5767   virtual void machine_start();
5868   virtual void machine_reset();
5969   virtual void video_start();
6070   DECLARE_PALETTE_INIT(timeplt);
6171   DECLARE_VIDEO_START(chkun);
62   UINT32 screen_update_timeplt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
63   INTERRUPT_GEN_MEMBER(timeplt_interrupt);
72   DECLARE_VIDEO_START(psurge);
73
74   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6475   void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
76
77   INTERRUPT_GEN_MEMBER(interrupt);
6578};
trunk/src/mame/layout/by17.lay
r249893r249894
1<!-- BY17 copied from gp_1.lay -->
1<!-- Pinball Machine, Bally ~ Template -17 MPU board -->
22
33<!-- 2014-07-26: Initial version.  [Robbbert] -->
4<!-- 2015-August: Added Lamp states, Solenoid states, Switch Matrix and a kit of playfield objects.  [Quench] -->
45
6
7<!-- Any state="9" items are not displayed and are only used for object alignment -->
8
59<mamelayout version="2">
610
7   <element name="digit" defstate="0">
8      <led7seg>
9         <color red="1.0" green="0.75" blue="0.0" />
10      </led7seg>
11   <element name="Title_Bally">   <text string="Bally"><color red="0.25" green="0.5" blue="1.0" /></text></element>
12
13   <element name="Text_Playfield"><text string="See PowerPlay and MataHari for mockup Playfield layouts"><color red="1.0" green="0.0" blue="1.0" /></text></element>
14   <element name="Text_Legend">   <text string="Consult game schematic for Switch, Lamp and Solenoid allocation"><color red="0.0" green="1.0" blue="0.0" /></text></element>
15   <element name="Text_Switch">   <text string="Switch Matrix"><color red="0.0" green="1.0" blue="1.0" /></text></element>
16
17
18
19<!-- Switches -->
20
21   <element name="Switch_SlamTilt">
22      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="00" width="25" height="01" /></rect>
23      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="08" width="13" height="01.5" /></rect>
24      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="01" width="04" height="02" /></rect>
25      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="06" width="04" height="02" /></rect>
26
27      <rect state="0"><color red="0.70" green="0.70" blue="0.70" /><bounds x="19" y="01" width="06" height="04" /></rect>
28      <rect state="1"><color red="0.70" green="0.70" blue="0.70" /><bounds x="19" y="04" width="06" height="04" /></rect>
29
30      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="00" width="08" height="01" /></rect>
31      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="08" y="01" width="08" height="01" /></rect>
32      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="16" y="02" width="09" height="01" /></rect>
33
34
35      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="08"  width="13" height="01.5" /></rect>
36      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="03"  width="04" height="02" /></rect>
37      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="06"  width="04" height="02" /></rect>
1138   </element>
12   <element name="red_led">
13      <disk><color red="1.0" green="0.0" blue="0.0" /></disk>
39
40   <element name="Switch_Tilt">
41      <rect          ><color red="0.80" green="0.80" blue="0.00" /><bounds x="00" y="00" width="17" height="17" /></rect>
42      <disk          ><color red="0.00" green="0.00" blue="0.00" /><bounds x="01" y="01" width="15" height="15" /></disk>
43      <disk state="0"><color red="0.50" green="0.50" blue="0.50" /><bounds x="04" y="04" width="09" height="09" /></disk>
44      <disk state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="07" width="02" height="02" /></disk>
45
46      <disk state="1"><color red="0.50" green="0.50" blue="0.50" /><bounds x="07" y="04" width="09" height="09" /></disk>
47      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="11" y="07" width="02" height="02" /></disk>
1448   </element>
15   <element name="background">
49
50
51   <element name="Switch_Leaf_Vertical">
52      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="0" y="00" width="01"   height="06" /></rect>
53      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="8" y="00" width="01.5" height="06" /></rect>
54      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="1" y="01" width="02"   height="04" /></rect>
55      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="6" y="01" width="02"   height="04" /></rect>
56
57      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="1.5" y="00" width="01" height="06" /></rect>
58      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="6.5" y="00" width="01" height="06" /></rect>
59      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="2"   y="01" width="02" height="04" /></rect>
60      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="4.5" y="01" width="02" height="04" /></rect>
61   </element>
62
63   <element name="Switch_RollOn_WireForm_Left">
64      <text string=">" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="8" y="0" width="11"  height="11"  /></text>
65      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="0.1" height="04"  /></rect>
66      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="09"  height="0.1" /></rect>
67      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="8" width="09"  height="0.1" /></rect>
68      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="3" y="6" width="08"  height="0.1" /></rect>
69      <text string=">" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="8" y="0" width="11"  height="11"  /></text>
70      <rect            state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="0.1" height="04"  /></rect>
71      <rect            state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="09"  height="0.1" /></rect>
72      <rect            state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="8" width="09"  height="0.1" /></rect>
73   </element>
74
75   <element name="Switch_RollOn_WireForm_Down">
76      <text string="/\" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
77      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="17" width="04"  height="0.1" /></rect>
78      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
79      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
80      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="3" y="07" width="0.1" height="08" /></rect>
81      <text string="/\" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
82      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="17" width="04"  height="0.1" /></rect>
83      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
84      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
85   </element>
86
87   <element name="Switch_RollOver_WireForm_Vertical">
88      <text string="/\" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
89      <text string="\/" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="17" width="07"  height="10" /></text>
90      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
91      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
92      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="3" y="07" width="0.1" height="13" /></rect>
93      <text string="/\" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
94      <text string="\/" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="17" width="07"  height="10" /></text>
95      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
96      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
97   </element>
98
99   <element name="Switch_Target_Red_Forward" defstate="0">
100      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="00" width="10" height="01" /></rect>
101      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="00" width="01" height="05" /></rect>
102      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="16" y="00" width="01" height="05" /></rect>
103
104      <disk state="0"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="05" width="24" height="06" /></disk>
105      <disk state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="02" width="24" height="06" /></disk>
106   </element>
107
108   <element name="Target_White_Left" defstate="0">
109      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="06" width="01" height="10" /></rect>
110      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="06" width="05" height="01" /></rect>
111      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="16" width="05" height="01" /></rect>
112      <disk state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="05" y="00" width="06" height="24" /></disk>
113      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="02" y="00" width="06" height="24" /></disk>
114   </element>
115
116
117   <element name="Switch_RollOver_Button">
118      <text string="*" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="-10" y="-6" width="35" height="35" /></text>
119      <text string="*" state="1"><color red="0.00" green="0.00" blue="0.00" /><bounds x="-10" y="-6" width="35" height="35" /></text>
120   </element>
121
122   <element name="Lamp_RollOver_Button" defstate="0">
123      <disk state="0"><color red="0.15" green="0.04" blue="0.00" /><bounds x="0" y="0" width="15" height="15" /></disk>
124      <disk state="1"><color red="1.00" green="0.30" blue="0.00" /><bounds x="0" y="0" width="15" height="15" /></disk>
125   </element>
126
127   <element name="Lamp_RollOver_Button_On">
128      <disk><color red="1.00" green="0.30" blue="0.00" /><bounds x="0" y="0" width="15" height="15" /></disk>
129   </element>
130
131
132   <element name="Switch_Push-Button" defstate="0">
133      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="04" width="16" height="01" /></rect>
134      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="00" width="01" height="04" /></rect>
135      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="17" y="00" width="01" height="04" /></rect>
136      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="00" width="05" height="01" /></rect>
137      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="08.5" width="16" height="01" /></rect>
138      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04.5" width="01" height="04" /></rect>
139      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="17" y="04.5" width="01" height="04" /></rect>
140      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04.5" width="05" height="01" /></rect>
141      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="12" width="09" height="01" /></rect>
142      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="21" y="12" width="09" height="01" /></rect>
143      <disk          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="10" width="06" height="06" /></disk>
144      <disk          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="10" width="06" height="06" /></disk>
145   </element>
146
147
148
149   <element name="Key_Z">     <text string="Z"><color red="1.00" green="0.66" blue="0.66" /></text></element>
150   <element name="Key_X">     <text string="X"><color red="1.00" green="0.66" blue="0.66" /></text></element>
151   <element name="Key_C">     <text string="C"><color red="1.00" green="0.66" blue="0.66" /></text></element>
152   <element name="Key_V">     <text string="V"><color red="1.00" green="0.66" blue="0.66" /></text></element>
153   <element name="Key_B">     <text string="B"><color red="1.00" green="0.66" blue="0.66" /></text></element>
154   <element name="Key_N">     <text string="N"><color red="1.00" green="0.66" blue="0.66" /></text></element>
155   <element name="Key_M">     <text string="M"><color red="1.00" green="0.66" blue="0.66" /></text></element>
156   <element name="Key_Comma"> <text string=","><color red="1.00" green="0.66" blue="0.66" /></text></element>
157   <element name="Key_Dot">   <text string="."><color red="1.00" green="0.66" blue="0.66" /></text></element>
158   <element name="Key_FSlash"><text string="/"><color red="1.00" green="0.66" blue="0.66" /></text></element>
159
160   <element name="Key_A">     <text string="A"><color red="1.00" green="0.66" blue="0.66" /></text></element>
161   <element name="Key_S">     <text string="S"><color red="1.00" green="0.66" blue="0.66" /></text></element>
162   <element name="Key_D">     <text string="D"><color red="1.00" green="0.66" blue="0.66" /></text></element>
163   <element name="Key_F">     <text string="F"><color red="1.00" green="0.66" blue="0.66" /></text></element>
164   <element name="Key_G">     <text string="G"><color red="1.00" green="0.66" blue="0.66" /></text></element>
165   <element name="Key_H">     <text string="H"><color red="1.00" green="0.66" blue="0.66" /></text></element>
166   <element name="Key_J">     <text string="J"><color red="1.00" green="0.66" blue="0.66" /></text></element>
167   <element name="Key_K">     <text string="K"><color red="1.00" green="0.66" blue="0.66" /></text></element>
168   <element name="Key_L">     <text string="L"><color red="1.00" green="0.66" blue="0.66" /></text></element>
169   <element name="Key_SColon"><text string=";"><color red="1.00" green="0.66" blue="0.66" /></text></element>
170   <element name="Key_Quote"> <text string="'"><color red="1.00" green="0.66" blue="0.66" /></text></element>
171   <element name="Key_Enter">
172      <text string="&#60;"><color red="1.00" green="0.66" blue="0.66" /><bounds x="00" y="00" width="07"  height="10" /></text>
173      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="00" y="00" width="07"  height="10" /></text>
174      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="02" y="00" width="07"  height="10" /></text>
175      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="04" y="00" width="07"  height="10" /></text>
176      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="06" y="00" width="07"  height="10" /></text>
177      <disk           >    <color red="1.00" green="0.66" blue="0.66" /><bounds x="10" y="02" width="0.5" height="03" /></disk>
178   </element>
179
180   <element name="Key_Q">     <text string="Q"><color red="1.00" green="0.66" blue="0.66" /></text></element>
181   <element name="Key_W">     <text string="W"><color red="1.00" green="0.66" blue="0.66" /></text></element>
182   <element name="Key_E">     <text string="E"><color red="1.00" green="0.66" blue="0.66" /></text></element>
183   <element name="Key_R">     <text string="R"><color red="1.00" green="0.66" blue="0.66" /></text></element>
184   <element name="Key_T">     <text string="T"><color red="1.00" green="0.66" blue="0.66" /></text></element>
185   <element name="Key_Y">     <text string="Y"><color red="1.00" green="0.66" blue="0.66" /></text></element>
186   <element name="Key_U">     <text string="U"><color red="1.00" green="0.66" blue="0.66" /></text></element>
187   <element name="Key_I">     <text string="I"><color red="1.00" green="0.66" blue="0.66" /></text></element>
188   <element name="Key_O">     <text string="O"><color red="1.00" green="0.66" blue="0.66" /></text></element>
189   <element name="Key_P">     <text string="P"><color red="1.00" green="0.66" blue="0.66" /></text></element>
190   <element name="Key_OBrkt"> <text string="["><color red="1.00" green="0.66" blue="0.66" /></text></element>
191   <element name="Key_CBrkt"> <text string="]"><color red="1.00" green="0.66" blue="0.66" /></text></element>
192   <element name="Key_BSlash"><text string="\"><color red="1.00" green="0.66" blue="0.66" /></text></element>
193
194   <element name="Key_1">     <text string="1"><color red="1.00" green="0.66" blue="0.66" /></text></element>
195   <element name="Key_5">     <text string="5"><color red="1.00" green="0.66" blue="0.66" /></text></element>
196   <element name="Key_6">     <text string="6"><color red="1.00" green="0.66" blue="0.66" /></text></element>
197   <element name="Key_7">     <text string="7"><color red="1.00" green="0.66" blue="0.66" /></text></element>
198   <element name="Key_9">     <text string="9"><color red="1.00" green="0.66" blue="0.66" /></text></element>
199   <element name="Key_0">     <text string="0"><color red="1.00" green="0.66" blue="0.66" /></text></element>
200   <element name="Key_BSpace">
201      <text string="&#60;"><color red="1.00" green="0.66" blue="0.66" /><bounds x="0" y="00" width="07" height="10" /></text>
202      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="0" y="00" width="07" height="10" /></text>
203      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="2" y="00" width="07" height="10" /></text>
204      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="4" y="00" width="07" height="10" /></text>
205      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="6" y="00" width="07" height="10" /></text>
206   </element>
207   <element name="Key_Equals"><text string="="><color red="1.00" green="0.66" blue="0.66" /></text></element>
208
209   <element name="ST0"><text string="ST0"><color red="0.0" green="1.0" blue="1.0" /></text></element>
210   <element name="ST1"><text string="ST1"><color red="0.0" green="1.0" blue="1.0" /></text></element>
211   <element name="ST2"><text string="ST2"><color red="0.0" green="1.0" blue="1.0" /></text></element>
212   <element name="ST3"><text string="ST3"><color red="0.0" green="1.0" blue="1.0" /></text></element>
213   <element name="ST4"><text string="ST4"><color red="0.0" green="1.0" blue="1.0" /></text></element>
214   <element name="ST5"><text string="ST5"><color red="0.0" green="1.0" blue="1.0" /></text></element>
215   <element name="I0"> <text string="I0"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
216   <element name="I1"> <text string="I1"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
217   <element name="I2"> <text string="I2"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
218   <element name="I3"> <text string="I3"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
219   <element name="I4"> <text string="I4"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
220   <element name="I5"> <text string="I5"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
221   <element name="I6"> <text string="I6"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
222   <element name="I7"> <text string="I7"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
223
224
225
226
227   <element name="Solenoid_DropTarget_Tall" defstate="0">
228      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="00" width="07" height="15" /></rect>
229      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="04" height="12" /></rect>
230   </element>
231   <element name="DropTarget_Tall" defstate="0">
232      <rect state="1"><color red="0.25" green="0.25" blue="0.25" /><bounds x="01" y="01" width="04" height="12" /></rect>
233      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="04" height="12" /></rect>
234      <rect state="9"><color red="0.00" green="1.00" blue="0.00" /><bounds x="00" y="00" width="07" height="15" /></rect>
235   </element>
236
237   <element name="Solenoid_DropTarget_Wide" defstate="0">
238      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="00" width="15" height="07" /></rect>
239      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="12" height="04" /></rect>
240   </element>
241   <element name="DropTarget_Wide" defstate="0">
242      <rect state="1"><color red="0.25" green="0.25" blue="0.25" /><bounds x="01" y="01" width="12" height="04" /></rect>
243      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="12" height="04" /></rect>
244      <rect state="9"><color red="0.00" green="1.00" blue="0.00" /><bounds x="00" y="00" width="15" height="07" /></rect>
245   </element>
246
247
248<!-- Lamps -->
249
250   <element name="Lamp_White" defstate="0">
251      <disk state="0"><color red="0.15" green="0.15" blue="0.15" /></disk>
252      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
253   </element>
254   <element name="Lamp_Yellow" defstate="0">
255      <disk state="0"><color red="0.15" green="0.15" blue="0.00" /></disk>
256      <disk state="1"><color red="1.00" green="1.00" blue="0.00" /></disk>
257   </element>
258   <element name="Lamp_Red" defstate="0">                              <!-- Usually for Specials -->
259      <disk state="0"><color red="0.15" green="0.00" blue="0.00" /></disk>
260      <disk state="1"><color red="1.00" green="0.00" blue="0.00" /></disk>
261   </element>
262   <element name="Lamp_Amber" defstate="0">                           <!-- Usually for Extra Ball-->
263      <disk state="0"><color red="0.15" green="0.06" blue="0.00" /></disk>
264      <disk state="1"><color red="1.00" green="0.40" blue="0.00" /></disk>
265   </element>
266
267
268   <element name="Lamp_P1">
269      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
270      <text string="1" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
271      <text string="1" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
272   </element>
273   <element name="Lamp_P2">
274      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
275      <text string="2" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
276      <text string="2" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
277   </element>
278   <element name="Lamp_P3">
279      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
280      <text string="3" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
281      <text string="3" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
282   </element>
283   <element name="Lamp_P4">
284      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
285      <text string="4" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
286      <text string="4" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
287   </element>
288
289   <element name="Lamp_1P">
290      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
291      <text string="1" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
292      <text string="1" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
293   </element>
294   <element name="Lamp_2P">
295      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
296      <text string="2" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
297      <text string="2" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
298   </element>
299   <element name="Lamp_3P">
300      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
301      <text string="3" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
302      <text string="3" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
303   </element>
304   <element name="Lamp_4P">
305      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
306      <text string="4" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
307      <text string="4" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
308   </element>
309
310
311   <element name="Lamp_2x" defstate="0">
312      <disk state="0"><color red="0.0" green="0.15" blue="0.0" /></disk>
313      <disk state="1"><color red="0.0" green="1.00" blue="0.0" /></disk>
314      <text string="2x"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
315   </element>
316   <element name="Lamp_3x" defstate="0">
317      <disk state="0"><color red="0.15" green="0.15" blue="0.0" /></disk>
318      <disk state="1"><color red="1.00" green="1.00" blue="0.0" /></disk>
319      <text string="3x"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
320   </element>
321   <element name="Lamp_4x" defstate="0">
322      <disk state="0"><color red="0.15" green="0.15" blue="0.0" /></disk>
323      <disk state="1"><color red="1.00" green="1.00" blue="0.0" /></disk>
324      <text string="4x"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
325   </element>
326   <element name="Lamp_5x" defstate="0">
327      <disk state="0"><color red="0.15" green="0.15" blue="0.15" /></disk>
328      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
329      <text string="5x"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
330   </element>
331
332
333   <element name="Lamp_White_1k">
334      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
335      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
336      <text string="1k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
337   </element>
338   <element name="Lamp_White_2k">
339      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
340      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
341      <text string="2k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
342   </element>
343   <element name="Lamp_White_3k">
344      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
345      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
346      <text string="3k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
347   </element>
348   <element name="Lamp_White_4k">
349      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
350      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
351      <text string="4k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
352   </element>
353   <element name="Lamp_White_5k">
354      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
355      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
356      <text string="5k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
357   </element>
358   <element name="Lamp_White_6k">
359      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
360      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
361      <text string="6k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
362   </element>
363   <element name="Lamp_White_7k">
364      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
365      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
366      <text string="7k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
367   </element>
368   <element name="Lamp_White_8k">
369      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
370      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
371      <text string="8k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
372   </element>
373   <element name="Lamp_White_9k">
374      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
375      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
376      <text string="9k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
377   </element>
378   <element name="Lamp_White_10k">
379      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
380      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
381      <text string="10k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
382   </element>
383   <element name="Lamp_White_12k">
384      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
385      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
386      <text string="12k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
387   </element>
388   <element name="Lamp_White_15k">
389      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
390      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
391      <text string="15k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
392   </element>
393   <element name="Lamp_White_20k">
394      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
395      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
396      <text string="20k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
397   </element>
398   <element name="Lamp_White_25k">
399      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
400      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
401      <text string="25k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
402   </element>
403   <element name="Lamp_White_50k">
404      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
405      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
406      <text string="50k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
407   </element>
408
409
410   <element name="Lamp_White_1">
411      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
412      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
413      <text string="1"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
414   </element>
415   <element name="Lamp_White_2">
416      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
417      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
418      <text string="2"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
419   </element>
420   <element name="Lamp_White_3">
421      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
422      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
423      <text string="3"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
424   </element>
425   <element name="Lamp_White_4">
426      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
427      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
428      <text string="4"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
429   </element>
430   <element name="Lamp_White_5">
431      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
432      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
433      <text string="5"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
434   </element>
435
436   <element name="Lamp_White_A">
437      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
438      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
439      <text string="A"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
440   </element>
441   <element name="Lamp_White_B">
442      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
443      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
444      <text string="B"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
445   </element>
446
447
448   <element name="Credit_Indicator">
449      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="2.5" y="0" width="1.0" height="1.0" /></disk>
450      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="2.5" y="0" width="1.0" height="1.0" /></disk>
451      <text string="Credit Indicator"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="1.1" width="6.5" height="0.90" /></text>
452   </element>
453
454
455   <element name="Lamp_Green_Arrow_Up_2x" defstate="1">
456      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
457      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
458      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
459      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
460      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
461      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
462      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
463      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
464      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
465      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
466      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
467      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
468      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
469      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
470      <text string="2x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="06" y="08" width="12" height="12" /></text>
471   </element>
472
473   <element name="Lamp_Yellow_Arrow_Up_3x" defstate="1">
474      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
475      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
476      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
477      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
478      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
479      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
480      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
481      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
482      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
483      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
484      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
485      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
486      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
487      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
488      <text string="3x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="06" y="08" width="12" height="12" /></text>
489   </element>
490
491   <element name="Lamp_White_Arrow_Up_5x" defstate="1">
492      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
493      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="10" y="00" width="02" height="03" /></rect>
494      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
495      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="08" y="03" width="06" height="03" /></rect>
496      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
497      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="06" width="10" height="03" /></rect>
498      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
499      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="04" y="09" width="14" height="03" /></rect>
500      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
501      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="02" y="12" width="18" height="03" /></rect>
502      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
503      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="00" y="15" width="22" height="03" /></rect>
504      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
505      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="09" y="06" width="04" height="30" /></rect>
506      <text string="5x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="06" y="08" width="12" height="12" /></text>
507   </element>
508
509   <element name="Lamp_White_Arrow_Up_3k" defstate="0">
510      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
511      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
512      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
513      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
514      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
515      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
516      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
517      <text string="3k"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="06" y="08" width="12" height="12" /></text>
518   </element>
519
520   <element name="Lamp_Green_Arrow_04_2x" defstate="1">   <!-- Point at 4 o clock -->
521      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="00" y="00" width="08" height="03" /></rect>
522      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="00" y="00" width="08" height="03" /></rect>
523      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="05" y="03" width="08" height="03" /></rect>
524      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="05" y="03" width="08" height="03" /></rect>
525      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="10" y="06" width="08" height="03" /></rect>
526      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="10" y="06" width="08" height="03" /></rect>
527      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="24" y="03" width="02" height="03" /></rect>
528      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="24" y="03" width="02" height="03" /></rect>
529      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="22" y="06" width="06" height="03" /></rect>
530      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="22" y="06" width="06" height="03" /></rect>
531      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="15" y="09" width="15" height="03" /></rect>
532      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="15" y="09" width="15" height="03" /></rect>
533      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="18" y="12" width="14" height="03" /></rect>
534      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="18" y="12" width="14" height="03" /></rect>
535      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="17" y="15" width="17" height="03" /></rect>
536      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="17" y="15" width="17" height="03" /></rect>
537      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="16" y="18" width="20" height="03" /></rect>
538      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="16" y="18" width="20" height="03" /></rect>
539      <text string="2x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="18" y="08" width="15" height="15" /></text>
540   </element>
541
542   <element name="Lamp_Yellow_Arrow_04_3x" defstate="1">   <!-- Point at 4 o clock -->
543      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="00" y="00" width="08" height="03" /></rect>
544      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="00" y="00" width="08" height="03" /></rect>
545      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="05" y="03" width="08" height="03" /></rect>
546      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="05" y="03" width="08" height="03" /></rect>
547      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="10" y="06" width="08" height="03" /></rect>
548      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="10" y="06" width="08" height="03" /></rect>
549      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="24" y="03" width="02" height="03" /></rect>
550      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="24" y="03" width="02" height="03" /></rect>
551      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="22" y="06" width="06" height="03" /></rect>
552      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="22" y="06" width="06" height="03" /></rect>
553      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="15" y="09" width="15" height="03" /></rect>
554      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="15" y="09" width="15" height="03" /></rect>
555      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="18" y="12" width="14" height="03" /></rect>
556      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="18" y="12" width="14" height="03" /></rect>
557      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="17" y="15" width="17" height="03" /></rect>
558      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="17" y="15" width="17" height="03" /></rect>
559      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="16" y="18" width="20" height="03" /></rect>
560      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="16" y="18" width="20" height="03" /></rect>
561      <text string="3x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="18" y="08" width="15" height="15" /></text>
562   </element>
563
564   <element name="Lamp_White_Arrow_08_5x" defstate="1">   <!-- Point at 8 o clock -->
565      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="28" y="00" width="08" height="03" /></rect>
566      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="28" y="00" width="08" height="03" /></rect>
567      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="23" y="03" width="08" height="03" /></rect>
568      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="23" y="03" width="08" height="03" /></rect>
569      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="06" width="08" height="03" /></rect>
570      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="18" y="06" width="08" height="03" /></rect>
571      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="10" y="03" width="02" height="03" /></rect>
572      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="10" y="03" width="02" height="03" /></rect>
573      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="08" y="06" width="06" height="03" /></rect>
574      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="08" y="06" width="06" height="03" /></rect>
575      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
576      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="09" width="15" height="03" /></rect>
577      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="04" y="12" width="14" height="03" /></rect>
578      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="04" y="12" width="14" height="03" /></rect>
579      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="02" y="15" width="17" height="03" /></rect>
580      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="02" y="15" width="17" height="03" /></rect>
581      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="18" width="20" height="03" /></rect>
582      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="00" y="18" width="20" height="03" /></rect>
583      <text string="5x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="06" y="08" width="15" height="15" /></text>
584   </element>
585
586   <element name="Lamp_White_Arrow_01" defstate="1">   <!-- Point at 1 o clock -->
587      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="00" width="03" height="20" /></rect>
588      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="18" y="00" width="03" height="20" /></rect>
589      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="15" y="02" width="03" height="17" /></rect>
590      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="15" y="02" width="03" height="17" /></rect>
591      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04" width="03" height="14" /></rect>
592      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="12" y="04" width="03" height="14" /></rect>
593      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="09" y="06" width="03" height="15" /></rect>
594      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="09" y="06" width="03" height="15" /></rect>
595      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="08" width="03" height="06" /></rect>
596      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="08" width="03" height="06" /></rect>
597      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="03" y="10" width="03" height="02" /></rect>
598      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="03" y="10" width="03" height="02" /></rect>
599      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="18" width="03" height="08" /></rect>
600      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="18" width="03" height="08" /></rect>
601      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="03" y="23" width="03" height="08" /></rect>
602      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="03" y="23" width="03" height="08" /></rect>
603      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="28" width="03" height="08" /></rect>
604      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="00" y="28" width="03" height="08" /></rect>
605   </element>
606
607   <element name="Lamp_Amber_Arrow_08" defstate="1">   <!-- Point at 8 o clock -->
608      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="28" y="00" width="08" height="03" /></rect>
609      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="28" y="00" width="08" height="03" /></rect>
610      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="23" y="03" width="08" height="03" /></rect>
611      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="23" y="03" width="08" height="03" /></rect>
612      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="18" y="06" width="08" height="03" /></rect>
613      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="18" y="06" width="08" height="03" /></rect>
614      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="10" y="03" width="02" height="03" /></rect>
615      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="10" y="03" width="02" height="03" /></rect>
616      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="08" y="06" width="06" height="03" /></rect>
617      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="08" y="06" width="06" height="03" /></rect>
618      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
619      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
620      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="04" y="12" width="14" height="03" /></rect>
621      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="04" y="12" width="14" height="03" /></rect>
622      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="02" y="15" width="17" height="03" /></rect>
623      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="02" y="15" width="17" height="03" /></rect>
624      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="00" y="18" width="20" height="03" /></rect>
625      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="00" y="18" width="20" height="03" /></rect>
626   </element>
627
628   <element name="Lamp_Amber_Arrow_10" defstate="1">   <!-- Point at 10 o clock -->
629      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="28" y="18" width="08" height="03" /></rect>
630      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="28" y="18" width="08" height="03" /></rect>
631      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="23" y="15" width="08" height="03" /></rect>
632      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="23" y="15" width="08" height="03" /></rect>
633      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="18" y="12" width="08" height="03" /></rect>
634      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="18" y="12" width="08" height="03" /></rect>
635      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="10" y="15" width="02" height="03" /></rect>
636      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="10" y="15" width="02" height="03" /></rect>
637      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="08" y="12" width="06" height="03" /></rect>
638      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="08" y="12" width="06" height="03" /></rect>
639      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
640      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
641      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="04" y="06" width="14" height="03" /></rect>
642      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="04" y="06" width="14" height="03" /></rect>
643      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="02" y="03" width="17" height="03" /></rect>
644      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="02" y="03" width="17" height="03" /></rect>
645      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="00" y="00" width="20" height="03" /></rect>
646      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="00" y="00" width="20" height="03" /></rect>
647   </element>
648
649   <element name="Lamp_Red_Arrow_08" defstate="1">   <!-- Point at 8 o clock -->
650      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="28" y="00" width="08" height="03" /></rect>
651      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="28" y="00" width="08" height="03" /></rect>
652      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="23" y="03" width="08" height="03" /></rect>
653      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="23" y="03" width="08" height="03" /></rect>
654      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="18" y="06" width="08" height="03" /></rect>
655      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="18" y="06" width="08" height="03" /></rect>
656      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="10" y="03" width="02" height="03" /></rect>
657      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="10" y="03" width="02" height="03" /></rect>
658      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="08" y="06" width="06" height="03" /></rect>
659      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="08" y="06" width="06" height="03" /></rect>
660      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
661      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
662      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="04" y="12" width="14" height="03" /></rect>
663      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="04" y="12" width="14" height="03" /></rect>
664      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="02" y="15" width="17" height="03" /></rect>
665      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="02" y="15" width="17" height="03" /></rect>
666      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="18" width="20" height="03" /></rect>
667      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="00" y="18" width="20" height="03" /></rect>
668   </element>
669
670   <element name="Lamp_White_Arrow_11_A" defstate="1">   <!-- Point at 11 o clock -->
671      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="00" width="03" height="20" /></rect>
672      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="00" y="00" width="03" height="20" /></rect>
673      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="03" y="02" width="03" height="17" /></rect>
674      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="03" y="02" width="03" height="17" /></rect>
675      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="04" width="03" height="14" /></rect>
676      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="04" width="03" height="14" /></rect>
677      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="09" y="06" width="03" height="15" /></rect>
678      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="09" y="06" width="03" height="15" /></rect>
679      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="08" width="03" height="06" /></rect>
680      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="12" y="08" width="03" height="06" /></rect>
681      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="15" y="10" width="03" height="02" /></rect>
682      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="15" y="10" width="03" height="02" /></rect>
683      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="18" width="03" height="08" /></rect>
684      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="12" y="18" width="03" height="08" /></rect>
685      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="15" y="23" width="03" height="08" /></rect>
686      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="15" y="23" width="03" height="08" /></rect>
687      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="28" width="03" height="08" /></rect>
688      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="18" y="28" width="03" height="08" /></rect>
689      <text string="A"><color red="0.0" green="0.0" blue="0.0"   /><bounds x="-2" y="03" width="18" height="18" /></text>
690   </element>
691
692   <element name="Lamp_White_Arrow_01_B" defstate="1">   <!-- Point at 1 o clock -->
693      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="00" width="03" height="20" /></rect>
694      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="18" y="00" width="03" height="20" /></rect>
695      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="15" y="02" width="03" height="17" /></rect>
696      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="15" y="02" width="03" height="17" /></rect>
697      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04" width="03" height="14" /></rect>
698      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="12" y="04" width="03" height="14" /></rect>
699      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="09" y="06" width="03" height="15" /></rect>
700      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="09" y="06" width="03" height="15" /></rect>
701      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="08" width="03" height="06" /></rect>
702      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="08" width="03" height="06" /></rect>
703      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="03" y="10" width="03" height="02" /></rect>
704      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="03" y="10" width="03" height="02" /></rect>
705      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="18" width="03" height="08" /></rect>
706      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="18" width="03" height="08" /></rect>
707      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="03" y="23" width="03" height="08" /></rect>
708      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="03" y="23" width="03" height="08" /></rect>
709      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="28" width="03" height="08" /></rect>
710      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="00" y="28" width="03" height="08" /></rect>
711      <text string="B"><color red="0.0" green="0.0" blue="0.0"   /><bounds x="06" y="03" width="18" height="18" /></text>
712   </element>
713
714
715<!-- Backbox Indicators -->
716
717   <element name="Text_Credit"><text string="CREDIT"><color red="1.0" green="1.0" blue="1.0" /></text></element>
718   <element name="Text_Lamps"><text string="Lamps"><color red="1.0" green="1.0" blue="1.0" /></text></element>
719   <element name="Text_15"><text string="U1 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
720   <element name="Text_30"><text string="U2 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
721   <element name="Text_45"><text string="U3 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
722   <element name="Text_60"><text string="U4 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
723   <element name="Text_Solenoids"><text string="Momentary Solenoids"><color red="1.0" green="1.0" blue="1.0" /></text></element>
724   <element name="Text_Coils"><text string="Coils"><color red="1.0" green="1.0" blue="1.0" /></text></element>
725   <element name="Text_MPU_LED"><text string="MPU LED"><color red="1.0" green="1.0" blue="1.0" /></text></element>
726   <element name="Text_Activity"><text string="Activity Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
727   <element name="Text_Service"><text string="Service Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
728   <element name="Text_Slam"><text string="Slam Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
729   <element name="Text_Tilt"><text string="Tilt Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
730   <element name="Text_Knocker"><text string="Knocker"><color red="1.0" green="1.0" blue="1.0" /></text></element>
731
732
733   <element name="High_Score_To_Date" defstate="0">
734      <text string="HIGH SCORE TO DATE" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="1" /></text>
735      <text string="HIGH SCORE TO DATE" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="1" /></text>
736   </element>
737   <element name="Ball_In_Play" defstate="0">
738      <text string="BALL IN PLAY" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.1" y="0.1" width="1" height="0.8" /></text>
739      <text string="BALL IN PLAY" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0.1" y="0.1" width="1" height="0.8" /></text>
740   </element>
741   <element name="Match" defstate="0">
742      <text string="MATCH" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
743      <text string="MATCH" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
744   </element>
745   <element name="Game_Over" defstate="0">
746      <text string="GAME OVER" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
747      <text string="GAME OVER" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
748   </element>
749   <element name="Tilt" defstate="0">
750      <text string="TILT" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
751      <text string="TILT" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
752   </element>
753   <element name="Shoot_Again" defstate="0">
754      <text string="SAME PLAYER"  state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
755      <text string="SAME PLAYER"  state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
756      <text string="SHOOTS AGAIN" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.9" width="1" height="0.8" /></text>
757      <text string="SHOOTS AGAIN" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.9" width="1" height="0.8" /></text>
758   </element>
759
760
761   <element name="Digit" defstate="0">
762      <led7seg><color red="1.0" green="0.35" blue="0.0" /></led7seg>
763   </element>
764
765   <element name="LED_Green" defstate="1">
766      <disk state="0"><color red="0.0" green="0.25" blue="0.0" /></disk>
767      <disk state="1"><color red="0.0" green="1.00" blue="0.0" /></disk>
768   </element>
769
770   <element name="LED_Red" defstate="1">
771      <disk state="0"><color red="0.25" green="0.0" blue="0.0" /></disk>
772      <disk state="1"><color red="1.00" green="0.0" blue="0.0" /></disk>
773   </element>
774
775
776
777<!-- Solenoids -->
778
779   <element name="Solenoid_PullDown">
780      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="3" y="0" width="03" height="09" /></rect>
781      <rect state="0"><color red="0.0" green="1.0" blue="1.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
782      <rect state="1"><color red="1.0" green="1.0" blue="0.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
783   </element>
784
785   <element name="Coil_PullDown">
786      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="8" y="0" width="02" height="01" /></rect>
787      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="6" y="1" width="02" height="01" /></rect>
788      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="4" y="2" width="02" height="01" /></rect>
789      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="2" y="3" width="02" height="01" /></rect>
790      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="4" width="02" height="01" /></rect>
791      <rect          ><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="5" width="02" height="02" /></rect>
792      <rect state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="4" width="10" height="01" /></rect>
793
794      <rect state="0"><color red="0.0" green="1.0" blue="1.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
795      <rect state="1"><color red="1.0" green="1.0" blue="0.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
796   </element>
797
798
799   <element name="Solenoid_Knocker" defstate="0">
800      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="03" y="14" width="03" height="08" /></rect>
801      <rect state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="03" y="00" width="03" height="04" /></rect>
802      <rect state="0"><color red="0.0" green="1.0" blue="1.0" /><bounds x="00" y="04" width="10" height="11" /></rect>
803      <rect state="1"><color red="1.0" green="1.0" blue="0.0" /><bounds x="00" y="04" width="10" height="11" /></rect>
804   </element>
805
806   <element name="Solenoid_Outhole" defstate="0">
807      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="17" y="00" width="05" height="16" /></text>
808      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="02" y="00" width="05" height="16" /></text>
809      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="18" y="00" width="05" height="16" /></text>
810      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="03" y="00" width="05" height="16" /></text>
811      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="19" y="00" width="05" height="16" /></text>
812      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="04" y="00" width="05" height="16" /></text>
813      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="20" y="00" width="05" height="16" /></text>
814      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="05" y="00" width="05" height="16" /></text>
815      <rect            state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="02" y="02" width="18" height="10" /></rect>
816      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="00" y="14" width="25" height="02" /></rect>
817      <text string="Outhole"    ><color red="1.0" green="1.0" blue="1.0" /><bounds x="30" y="12" width="28" height="9.5" /></text>
818   </element>
819
820   <element name="Solenoid_Kickback" defstate="0">
821      <rect state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="3" y="00" width="03" height="15" /></rect>
822      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="3" y="07" width="03" height="08" /></rect>
823      <rect state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="00" width="10" height="04" /></rect>
824      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="07" width="10" height="04" /></rect>
825   </element>
826
827   <element name="Solenoid_SlingShot_Left" defstate="0">
828      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="05" y="00" width="65"   height="80" /></text>
829      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="00" y="00" width="65"   height="80" /></text>
830      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="20" y="16" width="04"   height="60" /></rect>
831      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="20" y="76" width="24.5" height="04" /></rect>
832   </element>
833   <element name="Solenoid_SlingShot_Right" defstate="0">
834      <text string="/" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="-5"   y="00" width="65" height="80" /></text>
835      <text string="/" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="00"   y="00" width="65" height="80" /></text>
836      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="40"   y="16" width="04" height="60" /></rect>
837      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="19.5" y="76" width="24" height="04" /></rect>
838   </element>
839
840
841   <element name="Solenoid_Bumper_Blue_Star" defstate="0">
842      <disk state="0"> <color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
843      <disk state="1"> <color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
844      <text string="*"><color red="0.3" green="0.5" blue="1.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
845      <disk>           <color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
846   </element>
847   <element name="Switch_Bumper_Blue_Star" defstate="0">
848      <text string="*" state="9"><color red="0.3" green="0.5" blue="1.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
849      <disk            state="0"><color red="0.3" green="0.3" blue="1.0" /><bounds x="14" y="15" width="50" height="50" /></disk>
850      <disk            state="1"><color red="0.5" green="0.5" blue="0.5" /><bounds x="14" y="15" width="50" height="50" /></disk>
851   </element>
852   <element name="Lamp_Bumper_Blue_1000" defstate="1">
853      <text string="*" state="9"><color red="0.3" green="0.5" blue="1.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
854      <disk            state="0"><color red="0.7" green="0.7" blue="0.7" /><bounds x="18" y="18" width="44" height="44" /></disk>
855      <disk            state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
856      <text string="1000">       <color red="0.3" green="0.5" blue="1.0" /><bounds x="07" y="29" width="70" height="23" /></text>
857   </element>
858
859   <element name="Solenoid_Bumper_Red_Star" defstate="0">
860      <disk state="0"> <color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
861      <disk state="1"> <color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
862      <text string="*"><color red="1.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
863      <disk>           <color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
864   </element>
865   <element name="Switch_Bumper_Red_Star" defstate="0">
866      <text string="*" state="9"><color red="1.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
867      <disk            state="0"><color red="1.0" green="0.0" blue="0.0" /><bounds x="14" y="15" width="50" height="50" /></disk>
868      <disk            state="1"><color red="0.5" green="0.5" blue="0.5" /><bounds x="14" y="15" width="50" height="50" /></disk>
869   </element>
870   <element name="Lamp_Bumper_Red_1000" defstate="0">
871      <text string="*" state="9"><color red="0.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
872      <disk            state="0"><color red="0.7" green="0.7" blue="0.7" /><bounds x="18" y="18" width="44" height="44" /></disk>
873      <disk            state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
874      <text string="1000">       <color red="1.0" green="0.0" blue="0.0" /><bounds x="07" y="29" width="70" height="23" /></text>
875   </element>
876
877   <element name="Solenoid_Bumper_Yellow_Star" defstate="0">
878      <disk state="0"> <color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
879      <disk state="1"> <color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
880      <text string="*"><color red="1.0" green="1.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
881      <disk>           <color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
882   </element>
883   <element name="Switch_Bumper_Yellow_Star" defstate="0">
884      <text string="*" state="9"><color red="1.0" green="1.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
885      <disk            state="0"><color red="1.0" green="1.0" blue="0.0" /><bounds x="14" y="15" width="50" height="50" /></disk>
886      <disk            state="1"><color red="0.5" green="0.5" blue="0.5" /><bounds x="14" y="15" width="50" height="50" /></disk>
887   </element>
888
889   <element name="Solenoid_Bumper_Green_Star" defstate="0">
890      <disk state="0"> <color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
891      <disk state="1"> <color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
892      <text string="*"><color red="0.0" green="1.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
893      <disk>           <color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
894   </element>
895   <element name="Switch_Bumper_Green_Star" defstate="0">
896      <text string="*" state="9"><color red="0.0" green="1.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
897      <disk            state="0"><color red="0.0" green="1.0" blue="0.0" /><bounds x="14" y="15" width="50" height="50" /></disk>
898      <disk            state="1"><color red="0.5" green="0.5" blue="0.5" /><bounds x="14" y="15" width="50" height="50" /></disk>
899   </element>
900
901   <element name="Lamp_Bumper_Silver_100" defstate="1">
902      <text string="*" state="9"><color red="0.5" green="0.5" blue="0.5" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
903      <disk                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
904      <text string="100">        <color red="0.5" green="0.5" blue="0.5" /><bounds x="07" y="29" width="66" height="23" /></text>
905   </element>
906   <element name="Lamp_Bumper_Silver_1000" defstate="1">
907      <text string="*" state="9"><color red="0.5" green="0.5" blue="0.5" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
908      <disk            state="0"><color red="0.7" green="0.7" blue="0.7" /><bounds x="18" y="18" width="44" height="44" /></disk>
909      <disk            state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
910      <text string="1000">       <color red="0.5" green="0.5" blue="0.5" /><bounds x="07" y="29" width="70" height="23" /></text>
911   </element>
912
913
914   <element name="Solenoid_Saucer" defstate="0">
915      <disk>          <color red="1.0" green="0.8" blue="0.5" /><bounds x="00" y="00" width="70" height="70" /></disk> <!-- 71 -->
916      <disk>          <color red="0.7" green="0.7" blue="0.7" /><bounds x="10" y="10" width="49" height="49" /></disk> <!-- 51 -->
917      <rect state="0"><color red="0.3" green="0.3" blue="0.3" /><bounds x="31" y="07" width="07" height="25" /></rect>
918      <rect state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="31" y="07" width="07" height="25" /></rect>
919      <disk>          <color red="0.0" green="0.0" blue="0.0" /><bounds x="27" y="40" width="15" height="15" /></disk>
920   </element>
921   <element name="Switch_Saucer" defstate="0">
922      <disk state="9"><color red="1.0" green="0.8" blue="0.5" /><bounds x="00" y="00" width="70" height="70" /></disk>
923      <disk state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="30" y="43" width="09" height="09" /></disk>
924      <disk state="1"><color red="0.0" green="0.0" blue="0.0" /><bounds x="30" y="43" width="09" height="09" /></disk>
925   </element>
926
927   <element name="Solenoid_Saucer_Large" defstate="0">
928      <disk>          <color red="1.0" green="0.8" blue="0.5" /><bounds x="00" y="00" width="70" height="70" /></disk>
929      <disk>          <color red="0.7" green="0.7" blue="0.7" /><bounds x="17" y="17" width="36" height="36" /></disk>
930      <rect state="0"><color red="0.3" green="0.3" blue="0.3" /><bounds x="33" y="14" width="04" height="21" /></rect>
931      <rect state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="33" y="14" width="04" height="21" /></rect>
932      <disk>          <color red="0.0" green="0.0" blue="0.0" /><bounds x="29" y="40" width="12" height="12" /></disk>
933   </element>
934   <element name="Switch_Saucer_Large" defstate="0">
935      <disk state="9"><color red="1.0" green="0.8" blue="0.5" /><bounds x="00" y="00" width="70" height="70" /></disk>
936      <disk state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="31" y="42" width="08" height="08" /></disk>
937      <disk state="1"><color red="0.0" green="0.0" blue="0.0" /><bounds x="31" y="42" width="08" height="08" /></disk>
938   </element>
939
940
941   <element name="Coil_Post_Up" defstate="0">
942      <disk state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="00" y="00" width="21" height="21" /></disk>
943   </element>
944   <element name="Solenoid_Post_Down" defstate="0">
945      <disk state="9"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="00" width="21" height="21" /></disk>
946      <disk state="1"><color red="0.50" green="0.10" blue="0.00" /><bounds x="01" y="01" width="19" height="19" /></disk>
947      <disk state="1"><color red="0.15" green="0.06" blue="0.00" /><bounds x="02" y="02" width="17" height="17" /></disk>
948      <rect state="1"><color red="0.50" green="0.10" blue="0.00" /><bounds x="10" y="02" width="01" height="17" /></rect>
949      <rect state="1"><color red="0.50" green="0.10" blue="0.00" /><bounds x="02" y="10" width="17" height="01" /></rect>
950      <disk state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="08" y="08" width="06" height="06" /></disk>
951   </element>
952   <element name="Lamp_Post" defstate="0">
953      <disk state="9"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="00" width="21" height="21" /></disk>
954      <disk          ><color red="0.50" green="0.10" blue="0.00" /><bounds x="01" y="01" width="19" height="19" /></disk>
955      <disk state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="02" y="02" width="17" height="17" /></disk>
956      <disk state="1"><color red="0.80" green="0.20" blue="0.00" /><bounds x="02" y="02" width="17" height="17" /></disk>
957      <rect          ><color red="0.50" green="0.10" blue="0.00" /><bounds x="10" y="02" width="01" height="17" /></rect>
958      <rect          ><color red="0.50" green="0.10" blue="0.00" /><bounds x="02" y="10" width="17" height="01" /></rect>
959   </element>
960
961
962<!-- Line colours -->
963
964   <element name="Draw_White" defstate="1">
965      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
966      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
967   </element>
968   <element name="Draw_Red" defstate="1">
969      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
970      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
971   </element>
972   <element name="Draw_Amber" defstate="1">
973      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
974      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
975   </element>
976
977   <element name="Canvas">
16978      <rect>
979         <color red="0.0" green="0.0" blue="0.0" />
17980         <bounds left="0" top="0" right="1" bottom="1" />
18         <color red="0.0" green="0.0" blue="0.0" />
19981      </rect>
20982   </element>
21   <element name="P0"><text string="Ball / Match"><color red="1.0" green="1.0" blue="1.0" /></text></element>
22   <element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
23   <element name="P2"><text string="Players"><color red="1.0" green="1.0" blue="1.0" /></text></element>
24   <element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
25   <element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
26   <element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
27   <element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element>
28983
29   <view name="Default Layout">
30984
985
986
987
988   <view name="Blank Playfield">
989
31990      <!-- Background -->
32      <backdrop element="background">
33         <bounds left="0" top="20" right="274" bottom="394" />
34      </backdrop>
991      <backdrop element="Canvas"><bounds x="000" y="000" width="640" height="480" /></backdrop>
35992
36      <!-- LEDs -->
993      <bezel element="Draw_White"><bounds x="000" y="000" width="640" height="001" /></bezel>
994      <bezel element="Draw_White"><bounds x="000" y="000" width="001" height="480" /></bezel>
995      <bezel element="Draw_White"><bounds x="640" y="000" width="001" height="480" /></bezel>
996      <bezel element="Draw_White"><bounds x="000" y="480" width="640" height="001" /></bezel>
997      <bezel element="Draw_White"><bounds x="320" y="000" width="001" height="480" /></bezel>
998      <bezel element="Draw_White"><bounds x="320" y="320" width="320" height="001" /></bezel>
999      <!--   <bezel element="Draw_White"><bounds x="159" y="000" width="001" height="480" /></bezel>   -->
371000
1001
1002      <bezel element="Title_Bally"><bounds x="430" y="18" width="105" height="30" /></bezel>
1003
1004      <bezel element="Text_Playfield"><bounds x="040" y="010" width="250" height="14" /></bezel>
1005      <bezel element="Text_Legend"><bounds x="018" y="35" width="300" height="12" /></bezel>
1006
1007
1008      <!-- Backbox -->
1009
1010      <!-- MPU Board Power On Self Test LED -->
1011      <bezel element="Text_MPU_LED">         <bounds x="609" y="342" width="30" height="10" /></bezel>
1012      <bezel name="led0" element="LED_Green"><bounds x="618" y="328" width="10" height="10" /></bezel>
1013
1014      <!-- MPU Board Activity Switch -->
1015      <bezel element="Text_Activity">                                      <bounds x="540" y="342" width="50" height="10" /></bezel>
1016      <bezel element="Switch_Push-Button" inputtag="TEST" inputmask="0x02"><bounds x="550" y="331" width="20" height="10" /></bezel>
1017      <bezel element="Key_0">                                              <bounds x="571" y="330" width="10" height="10" /></bezel>
1018
1019
381020      <!-- Player 1 Score -->
1021      <bezel name="lamp14" element="Lamp_P1"><bounds x="330" y="55" width="15" height="15" /></bezel>         <!-- Backbox ~ 1st Player Up -->
1022      <bezel name="digit17" element="Digit"><bounds x="360" y="55" width="10" height="15" /></bezel>
1023      <bezel name="digit16" element="Digit"><bounds x="374" y="55" width="10" height="15" /></bezel>
1024      <bezel name="digit15" element="Digit"><bounds x="388" y="55" width="10" height="15" /></bezel>
1025      <bezel name="digit14" element="Digit"><bounds x="402" y="55" width="10" height="15" /></bezel>
1026      <bezel name="digit13" element="Digit"><bounds x="416" y="55" width="10" height="15" /></bezel>
1027      <bezel name="digit12" element="Digit"><bounds x="430" y="55" width="10" height="15" /></bezel>
1028      <bezel name="digit11" element="Digit"><bounds x="444" y="55" width="10" height="15" /></bezel>
391029
40      <bezel name="digit5" element="digit">
41         <bounds left="10" top="45" right="44" bottom="84" />
42      </bezel>
43      <bezel name="digit4" element="digit">
44         <bounds left="54" top="45" right="88" bottom="84" />
45      </bezel>
46      <bezel name="digit3" element="digit">
47         <bounds left="98" top="45" right="132" bottom="84" />
48      </bezel>
49      <bezel name="digit2" element="digit">
50         <bounds left="142" top="45" right="176" bottom="84" />
51      </bezel>
52      <bezel name="digit1" element="digit">
53         <bounds left="186" top="45" right="220" bottom="84" />
54      </bezel>
55      <bezel name="digit0" element="digit">
56         <bounds left="230" top="45" right="264" bottom="84" />
57      </bezel>
58
591030      <!-- Player 2 Score -->
60      <bezel name="digit15" element="digit">
61         <bounds left="10" top="105" right="44" bottom="144" />
62      </bezel>
63      <bezel name="digit14" element="digit">
64         <bounds left="54" top="105" right="88" bottom="144" />
65      </bezel>
66      <bezel name="digit13" element="digit">
67         <bounds left="98" top="105" right="132" bottom="144" />
68      </bezel>
69      <bezel name="digit12" element="digit">
70         <bounds left="142" top="105" right="176" bottom="144" />
71      </bezel>
72      <bezel name="digit11" element="digit">
73         <bounds left="186" top="105" right="220" bottom="144" />
74      </bezel>
75      <bezel name="digit10" element="digit">
76         <bounds left="230" top="105" right="264" bottom="144" />
77      </bezel>
1031      <bezel name="lamp29" element="Lamp_P2"><bounds x="615" y="55" width="15" height="15" /></bezel>         <!-- Backbox ~ 2nd Player Up -->
1032      <bezel name="digit27" element="Digit"><bounds x="506" y="55" width="10" height="15" /></bezel>
1033      <bezel name="digit26" element="Digit"><bounds x="520" y="55" width="10" height="15" /></bezel>
1034      <bezel name="digit25" element="Digit"><bounds x="534" y="55" width="10" height="15" /></bezel>
1035      <bezel name="digit24" element="Digit"><bounds x="548" y="55" width="10" height="15" /></bezel>
1036      <bezel name="digit23" element="Digit"><bounds x="562" y="55" width="10" height="15" /></bezel>
1037      <bezel name="digit22" element="Digit"><bounds x="576" y="55" width="10" height="15" /></bezel>
1038      <bezel name="digit21" element="Digit"><bounds x="590" y="55" width="10" height="15" /></bezel>
781039
791040      <!-- Player 3 Score -->
80      <bezel name="digit25" element="digit">
81         <bounds left="10" top="165" right="44" bottom="204" />
82      </bezel>
83      <bezel name="digit24" element="digit">
84         <bounds left="54" top="165" right="88" bottom="204" />
85      </bezel>
86      <bezel name="digit23" element="digit">
87         <bounds left="98" top="165" right="132" bottom="204" />
88      </bezel>
89      <bezel name="digit22" element="digit">
90         <bounds left="142" top="165" right="176" bottom="204" />
91      </bezel>
92      <bezel name="digit21" element="digit">
93         <bounds left="186" top="165" right="220" bottom="204" />
94      </bezel>
95      <bezel name="digit20" element="digit">
96         <bounds left="230" top="165" right="264" bottom="204" />
97      </bezel>
1041      <bezel name="lamp44" element="Lamp_P3"><bounds x="330" y="250" width="15" height="15" /></bezel>      <!-- Backbox ~ 3rd Player Up -->
1042      <bezel name="digit37" element="Digit"><bounds x="360" y="250" width="10" height="15" /></bezel>
1043      <bezel name="digit36" element="Digit"><bounds x="374" y="250" width="10" height="15" /></bezel>
1044      <bezel name="digit35" element="Digit"><bounds x="388" y="250" width="10" height="15" /></bezel>
1045      <bezel name="digit34" element="Digit"><bounds x="402" y="250" width="10" height="15" /></bezel>
1046      <bezel name="digit33" element="Digit"><bounds x="416" y="250" width="10" height="15" /></bezel>
1047      <bezel name="digit32" element="Digit"><bounds x="430" y="250" width="10" height="15" /></bezel>
1048      <bezel name="digit31" element="Digit"><bounds x="444" y="250" width="10" height="15" /></bezel>
981049
991050      <!-- Player 4 Score -->
100      <bezel name="digit35" element="digit">
101         <bounds left="10" top="225" right="44" bottom="264" />
102      </bezel>
103      <bezel name="digit34" element="digit">
104         <bounds left="54" top="225" right="88" bottom="264" />
105      </bezel>
106      <bezel name="digit33" element="digit">
107         <bounds left="98" top="225" right="132" bottom="264" />
108      </bezel>
109      <bezel name="digit32" element="digit">
110         <bounds left="142" top="225" right="176" bottom="264" />
111      </bezel>
112      <bezel name="digit31" element="digit">
113         <bounds left="186" top="225" right="220" bottom="264" />
114      </bezel>
115      <bezel name="digit30" element="digit">
116         <bounds left="230" top="225" right="264" bottom="264" />
117      </bezel>
1051      <bezel name="lamp59" element="Lamp_P4"><bounds x="615" y="250" width="15" height="15" /></bezel>      <!-- Backbox ~ 4th Player Up -->
1052      <bezel name="digit47" element="Digit"><bounds x="506" y="250" width="10" height="15" /></bezel>
1053      <bezel name="digit46" element="Digit"><bounds x="520" y="250" width="10" height="15" /></bezel>
1054      <bezel name="digit45" element="Digit"><bounds x="534" y="250" width="10" height="15" /></bezel>
1055      <bezel name="digit44" element="Digit"><bounds x="548" y="250" width="10" height="15" /></bezel>
1056      <bezel name="digit43" element="Digit"><bounds x="562" y="250" width="10" height="15" /></bezel>
1057      <bezel name="digit42" element="Digit"><bounds x="576" y="250" width="10" height="15" /></bezel>
1058      <bezel name="digit41" element="Digit"><bounds x="590" y="250" width="10" height="15" /></bezel>
1181059
119      <!-- Credits and Balls -->
120      <bezel name="digit44" element="digit">
121         <bounds left="10" top="345" right="44" bottom="384" />
122      </bezel>
123      <bezel name="digit43" element="digit">
124         <bounds left="54" top="345" right="88" bottom="384" />
125      </bezel>
126      <bezel name="digit41" element="digit">
127         <bounds left="186" top="345" right="220" bottom="384" />
128      </bezel>
129      <bezel name="digit40" element="digit">
130         <bounds left="230" top="345" right="264" bottom="384" />
131      </bezel>
1060      <!-- Credits and Ball In Play / Match -->
1061      <bezel element="Text_Credit"><bounds x="542" y="142" width="48" height="8" /></bezel>
1062      <bezel name="lamp12"  element="Ball_In_Play"><bounds x="586" y="105" width="50" height="11" /></bezel>   <!-- Backbox ~ Ball In Play -->
1063      <bezel name="lamp25"  element="Match"><bounds x="596" y="152" width="25" height="11" /></bezel>         <!-- Backbox ~ Match -->
1064      <bezel name="digit55" element="Digit"><bounds x="554" y="125" width="10" height="15" /></bezel>
1065      <bezel name="digit54" element="Digit"><bounds x="568" y="125" width="10" height="15" /></bezel>
1066      <bezel name="digit52" element="Digit"><bounds x="596" y="125" width="10" height="15" /></bezel>
1067      <bezel name="digit51" element="Digit"><bounds x="610" y="125" width="10" height="15" /></bezel>
1321068
133      <bezel element="P0"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
134      <bezel element="P1"><bounds left="30" right="88" top="330" bottom="342" /></bezel>
135      <bezel name="text3" element="P3"><bounds left="100" right="180" top="30" bottom="42" /></bezel>
136      <bezel name="text2" element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
137      <bezel name="text1" element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
138      <bezel name="text0" element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
139      <bezel name="led0" element="red_led">
140         <bounds left="110" right="125" top="360" bottom="375" /></bezel>
1069      <bezel name="lamp10" element="Shoot_Again"><bounds x="420" y="295" width="60" height="19" /></bezel>   <!-- Backbox ~ Same Player Shoots Again -->
1070      <bezel name="lamp13" element="Lamp_1P"><bounds x="345" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 1 Player Game -->
1071      <bezel name="lamp28" element="Lamp_2P"><bounds x="360" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 2 Player Game -->
1072      <bezel name="lamp43" element="Lamp_3P"><bounds x="375" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 3 Player Game -->
1073      <bezel name="lamp58" element="Lamp_4P"><bounds x="390" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 4 Player Game -->
1074      <bezel name="lamp27" element="High_Score_To_Date"><bounds x="438" y="6" width="90" height="11" /></bezel>   <!-- Backbox ~ High Score To Date -->
1075      <bezel name="lamp42" element="Game_Over"><bounds x="580" y="300" width="45" height="11" /></bezel>      <!-- Backbox ~ Game Over -->
1076      <bezel name="lamp57" element="Tilt"><bounds x="480" y="297" width="50" height="16" /></bezel>         <!-- Backbox ~ Tilt -->
1077
1078
1079
1080      <bezel element="Text_Lamps"><bounds x="410" y="360" width="60" height="11" /></bezel>
1081      <bezel element="Text_15"><bounds x="552" y="373" width="30" height="11" /></bezel>
1082      <bezel element="Text_30"><bounds x="552" y="388" width="30" height="11" /></bezel>
1083      <bezel element="Text_45"><bounds x="552" y="403" width="30" height="11" /></bezel>
1084      <bezel element="Text_60"><bounds x="552" y="418" width="30" height="11" /></bezel>
1085
1086      <!-- Lamps controlled by U1 on Lamp Driver Board -->
1087      <bezel name="lamp0"  element="Lamp_White"><bounds x="330" y="375" width="8" height="8" /></bezel>
1088      <bezel name="lamp1"  element="Lamp_White"><bounds x="345" y="375" width="8" height="8" /></bezel>
1089      <bezel name="lamp2"  element="Lamp_White"><bounds x="360" y="375" width="8" height="8" /></bezel>
1090      <bezel name="lamp3"  element="Lamp_White"><bounds x="375" y="375" width="8" height="8" /></bezel>
1091      <bezel name="lamp4"  element="Lamp_White"><bounds x="390" y="375" width="8" height="8" /></bezel>
1092      <bezel name="lamp5"  element="Lamp_White"><bounds x="405" y="375" width="8" height="8" /></bezel>
1093      <bezel name="lamp6"  element="Lamp_White"><bounds x="420" y="375" width="8" height="8" /></bezel>
1094      <bezel name="lamp7"  element="Lamp_White"><bounds x="435" y="375" width="8" height="8" /></bezel>
1095      <bezel name="lamp8"  element="Lamp_White"><bounds x="450" y="375" width="8" height="8" /></bezel>
1096      <bezel name="lamp9"  element="Lamp_White"><bounds x="465" y="375" width="8" height="8" /></bezel>
1097      <bezel name="lamp10" element="Lamp_White"><bounds x="480" y="375" width="8" height="8" /></bezel>
1098      <bezel name="lamp11" element="Lamp_White"><bounds x="495" y="375" width="8" height="8" /></bezel>
1099      <bezel name="lamp12" element="Lamp_White"><bounds x="510" y="375" width="8" height="8" /></bezel>
1100      <bezel name="lamp13" element="Lamp_White"><bounds x="525" y="375" width="8" height="8" /></bezel>
1101      <bezel name="lamp14" element="Lamp_White"><bounds x="540" y="375" width="8" height="8" /></bezel>
1102
1103      <!-- Lamps controlled by U2 on Lamp Driver Board -->
1104      <bezel name="lamp15" element="Lamp_White"><bounds x="330" y="390" width="8" height="8" /></bezel>
1105      <bezel name="lamp16" element="Lamp_White"><bounds x="345" y="390" width="8" height="8" /></bezel>
1106      <bezel name="lamp17" element="Lamp_White"><bounds x="360" y="390" width="8" height="8" /></bezel>
1107      <bezel name="lamp18" element="Lamp_White"><bounds x="375" y="390" width="8" height="8" /></bezel>
1108      <bezel name="lamp19" element="Lamp_White"><bounds x="390" y="390" width="8" height="8" /></bezel>
1109      <bezel name="lamp20" element="Lamp_White"><bounds x="405" y="390" width="8" height="8" /></bezel>
1110      <bezel name="lamp21" element="Lamp_White"><bounds x="420" y="390" width="8" height="8" /></bezel>
1111      <bezel name="lamp22" element="Lamp_White"><bounds x="435" y="390" width="8" height="8" /></bezel>
1112      <bezel name="lamp23" element="Lamp_White"><bounds x="450" y="390" width="8" height="8" /></bezel>
1113      <bezel name="lamp24" element="Lamp_White"><bounds x="465" y="390" width="8" height="8" /></bezel>
1114      <bezel name="lamp25" element="Lamp_White"><bounds x="480" y="390" width="8" height="8" /></bezel>
1115      <bezel name="lamp26" element="Lamp_White"><bounds x="495" y="390" width="8" height="8" /></bezel>
1116      <bezel name="lamp27" element="Lamp_White"><bounds x="510" y="390" width="8" height="8" /></bezel>
1117      <bezel name="lamp28" element="Lamp_White"><bounds x="525" y="390" width="8" height="8" /></bezel>
1118      <bezel name="lamp29" element="Lamp_White"><bounds x="540" y="390" width="8" height="8" /></bezel>
1119
1120      <!-- Lamps controlled by U3 on Lamp Driver Board -->
1121      <bezel name="lamp30" element="Lamp_White"><bounds x="330" y="405" width="8" height="8" /></bezel>
1122      <bezel name="lamp31" element="Lamp_White"><bounds x="345" y="405" width="8" height="8" /></bezel>
1123      <bezel name="lamp32" element="Lamp_White"><bounds x="360" y="405" width="8" height="8" /></bezel>
1124      <bezel name="lamp33" element="Lamp_White"><bounds x="375" y="405" width="8" height="8" /></bezel>
1125      <bezel name="lamp34" element="Lamp_White"><bounds x="390" y="405" width="8" height="8" /></bezel>
1126      <bezel name="lamp35" element="Lamp_White"><bounds x="405" y="405" width="8" height="8" /></bezel>
1127      <bezel name="lamp36" element="Lamp_White"><bounds x="420" y="405" width="8" height="8" /></bezel>
1128      <bezel name="lamp37" element="Lamp_White"><bounds x="435" y="405" width="8" height="8" /></bezel>
1129      <bezel name="lamp38" element="Lamp_White"><bounds x="450" y="405" width="8" height="8" /></bezel>
1130      <bezel name="lamp39" element="Lamp_White"><bounds x="465" y="405" width="8" height="8" /></bezel>
1131      <bezel name="lamp40" element="Lamp_White"><bounds x="480" y="405" width="8" height="8" /></bezel>
1132      <bezel name="lamp41" element="Lamp_White"><bounds x="495" y="405" width="8" height="8" /></bezel>
1133      <bezel name="lamp42" element="Lamp_White"><bounds x="510" y="405" width="8" height="8" /></bezel>
1134      <bezel name="lamp43" element="Lamp_White"><bounds x="525" y="405" width="8" height="8" /></bezel>
1135      <bezel name="lamp44" element="Lamp_White"><bounds x="540" y="405" width="8" height="8" /></bezel>
1136
1137      <!-- Lamps controlled by U4 on Lamp Driver Board -->
1138      <bezel name="lamp45" element="Lamp_White"><bounds x="330" y="420" width="8" height="8" /></bezel>
1139      <bezel name="lamp46" element="Lamp_White"><bounds x="345" y="420" width="8" height="8" /></bezel>
1140      <bezel name="lamp47" element="Lamp_White"><bounds x="360" y="420" width="8" height="8" /></bezel>
1141      <bezel name="lamp48" element="Lamp_White"><bounds x="375" y="420" width="8" height="8" /></bezel>
1142      <bezel name="lamp49" element="Lamp_White"><bounds x="390" y="420" width="8" height="8" /></bezel>
1143      <bezel name="lamp50" element="Lamp_White"><bounds x="405" y="420" width="8" height="8" /></bezel>
1144      <bezel name="lamp51" element="Lamp_White"><bounds x="420" y="420" width="8" height="8" /></bezel>
1145      <bezel name="lamp52" element="Lamp_White"><bounds x="435" y="420" width="8" height="8" /></bezel>
1146      <bezel name="lamp53" element="Lamp_White"><bounds x="450" y="420" width="8" height="8" /></bezel>
1147      <bezel name="lamp54" element="Lamp_White"><bounds x="465" y="420" width="8" height="8" /></bezel>
1148      <bezel name="lamp55" element="Lamp_White"><bounds x="480" y="420" width="8" height="8" /></bezel>
1149      <bezel name="lamp56" element="Lamp_White"><bounds x="495" y="420" width="8" height="8" /></bezel>
1150      <bezel name="lamp57" element="Lamp_White"><bounds x="510" y="420" width="8" height="8" /></bezel>
1151      <bezel name="lamp58" element="Lamp_White"><bounds x="525" y="420" width="8" height="8" /></bezel>
1152      <bezel name="lamp59" element="Lamp_White"><bounds x="540" y="420" width="8" height="8" /></bezel>
1153
1154
1155      <bezel element="Text_Solenoids"><bounds x="382" y="437" width="100" height="11" /></bezel>
1156      <bezel name="solenoid0"  element="Solenoid_PullDown"><bounds x="330" y="452" width="9" height="19" /></bezel>
1157      <bezel name="solenoid1"  element="Solenoid_PullDown"><bounds x="345" y="452" width="9" height="19" /></bezel>
1158      <bezel name="solenoid2"  element="Solenoid_PullDown"><bounds x="360" y="452" width="9" height="19" /></bezel>
1159      <bezel name="solenoid3"  element="Solenoid_PullDown"><bounds x="375" y="452" width="9" height="19" /></bezel>
1160      <bezel name="solenoid4"  element="Solenoid_PullDown"><bounds x="390" y="452" width="9" height="19" /></bezel>
1161      <bezel name="solenoid5"  element="Solenoid_PullDown"><bounds x="405" y="452" width="9" height="19" /></bezel>
1162      <bezel name="solenoid6"  element="Solenoid_PullDown"><bounds x="420" y="452" width="9" height="19" /></bezel>
1163      <bezel name="solenoid7"  element="Solenoid_PullDown"><bounds x="435" y="452" width="9" height="19" /></bezel>
1164      <bezel name="solenoid8"  element="Solenoid_PullDown"><bounds x="450" y="452" width="9" height="19" /></bezel>
1165      <bezel name="solenoid9"  element="Solenoid_PullDown"><bounds x="465" y="452" width="9" height="19" /></bezel>
1166      <bezel name="solenoid10" element="Solenoid_PullDown"><bounds x="480" y="452" width="9" height="19" /></bezel>
1167      <bezel name="solenoid11" element="Solenoid_PullDown"><bounds x="495" y="452" width="9" height="19" /></bezel>
1168      <bezel name="solenoid12" element="Solenoid_PullDown"><bounds x="510" y="452" width="9" height="19" /></bezel>
1169      <bezel name="solenoid13" element="Solenoid_PullDown"><bounds x="525" y="452" width="9" height="19" /></bezel>
1170      <bezel name="solenoid14" element="Solenoid_PullDown"><bounds x="540" y="452" width="9" height="19" /></bezel>
1171
1172      <bezel element="Text_Coils"><bounds x="572" y="437" width="50" height="11" /></bezel>
1173      <bezel name="solenoid16" element="Coil_PullDown"><bounds x="570" y="459" width="09" height="12" /></bezel>
1174      <bezel name="solenoid17" element="Coil_PullDown"><bounds x="585" y="459" width="09" height="12" /></bezel>
1175      <bezel name="solenoid18" element="Coil_PullDown"><bounds x="600" y="459" width="09" height="12" /></bezel>
1176      <bezel name="solenoid19" element="Coil_PullDown"><bounds x="615" y="459" width="09" height="12" /></bezel>
1177
1178
1179
1180      <!-- Cabinet Switches -->
1181      <bezel element="Text_Service">                                       <bounds x="485" y="342" width="50" height="10" /></bezel>
1182      <bezel element="Switch_Push-Button" inputtag="TEST" inputmask="0x01"><bounds x="495" y="331" width="20" height="10" /></bezel>
1183      <bezel element="Key_9">                                              <bounds x="516" y="330" width="10" height="10" /></bezel>
1184
1185      <bezel element="Text_Slam">                                     <bounds x="430" y="342" width="50" height="10" /></bezel>
1186      <bezel element="Switch_SlamTilt" inputtag="X1" inputmask="0x80"><bounds x="434" y="331" width="25" height="08" /></bezel>
1187      <bezel element="Key_Equals">                                    <bounds x="461" y="330" width="10" height="10" /></bezel>
1188
1189      <bezel element="Text_Tilt">                                 <bounds x="380" y="342" width="50" height="10" /></bezel>
1190      <bezel element="Switch_Tilt" inputtag="X0" inputmask="0x40"><bounds x="390" y="324" width="17" height="17" /></bezel>
1191      <bezel element="Key_T">                                     <bounds x="411" y="330" width="10" height="10" /></bezel>
1192
1193
1194      <!-- Misc Solenoids -->
1195      <bezel name="solenoid5"  element="Solenoid_Knocker"><bounds x="336" y="321" width="09" height="22" /></bezel>
1196      <bezel element="Text_Knocker">   <!-- Knocker -->   <bounds x="322" y="342" width="40" height="10" /></bezel>
1197
1198      <!-- Misc Lamps -->
1199      <bezel name="lamp55" element="Credit_Indicator"><bounds x="23" y="456" width="70" height="21" /></bezel>   <!-- Credit Indicator -->
1200
1201
1202      <!-- Outhole -->
1203      <bezel name="solenoid6"  element="Solenoid_Outhole">                        <bounds x="150" y="455" width="58" height="22" /></bezel>
1204      <bezel element="Switch_RollOn_WireForm_Left" inputtag="X0" inputmask="0x80"><bounds x="163" y="453" width="20" height="16" /></bezel>
1205      <bezel element="Key_BSpace">                                                <bounds x="185" y="455" width="15" height="14" /></bezel>
1206
1207
1208
1209      <bezel element="Text_Switch"><bounds x="070" y="65" width="70" height="12" /></bezel>
1210      <bezel element="ST0">        <bounds x="020" y="080" width="30" height="11" /></bezel>
1211      <bezel element="ST1">        <bounds x="055" y="080" width="30" height="11" /></bezel>
1212      <bezel element="ST2">        <bounds x="090" y="080" width="30" height="11" /></bezel>
1213      <bezel element="ST3">        <bounds x="125" y="080" width="30" height="11" /></bezel>
1214      <bezel element="ST4">        <bounds x="160" y="080" width="30" height="11" /></bezel>
1215      <bezel element="I0">         <bounds x="001" y="100" width="20" height="11" /></bezel>
1216      <bezel element="I1">         <bounds x="001" y="130" width="20" height="11" /></bezel>
1217      <bezel element="I2">         <bounds x="001" y="160" width="20" height="11" /></bezel>
1218      <bezel element="I3">         <bounds x="001" y="190" width="20" height="11" /></bezel>
1219      <bezel element="I4">         <bounds x="001" y="220" width="20" height="11" /></bezel>
1220      <bezel element="I5">         <bounds x="001" y="250" width="20" height="11" /></bezel>
1221      <bezel element="I6">         <bounds x="001" y="280" width="20" height="11" /></bezel>
1222      <bezel element="I7">         <bounds x="001" y="310" width="20" height="11" /></bezel>
1223
1224
1225      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x01"><bounds x="25" y="100" width="20" height="10" /></bezel>
1226      <bezel element="Key_Dot">                                          <bounds x="28" y="107" width="14" height="14" /></bezel>
1227      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x02"><bounds x="25" y="130" width="20" height="10" /></bezel>
1228      <bezel element="Key_FSlash">                                       <bounds x="31" y="141" width="10" height="10" /></bezel>
1229      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x04"><bounds x="25" y="160" width="20" height="10" /></bezel>
1230      <bezel element="Key_OBrkt">                                        <bounds x="31" y="171" width="10" height="10" /></bezel>
1231      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x08"><bounds x="25" y="190" width="20" height="10" /></bezel>
1232      <bezel element="Key_CBrkt">                                        <bounds x="31" y="201" width="10" height="10" /></bezel>
1233      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x10"><bounds x="25" y="220" width="20" height="10" /></bezel>
1234      <bezel element="Key_BSlash">                                       <bounds x="31" y="231" width="10" height="10" /></bezel>
1235      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x20"><bounds x="25" y="250" width="20" height="10" /></bezel>
1236      <bezel element="Key_1">                                            <bounds x="31" y="261" width="10" height="10" /></bezel>
1237      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x40"><bounds x="25" y="280" width="20" height="10" /></bezel>
1238      <bezel element="Key_T">                                            <bounds x="31" y="291" width="10" height="10" /></bezel>
1239      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x80"><bounds x="25" y="310" width="20" height="10" /></bezel>
1240      <bezel element="Key_BSpace">                                       <bounds x="28" y="320" width="15" height="14" /></bezel>
1241
1242
1243      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x01"><bounds x="60" y="100" width="20" height="10" /></bezel>
1244      <bezel element="Key_7">                                            <bounds x="66" y="111" width="10" height="10" /></bezel>
1245      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x02"><bounds x="60" y="130" width="20" height="10" /></bezel>
1246      <bezel element="Key_5">                                            <bounds x="66" y="141" width="10" height="10" /></bezel>
1247      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x04"><bounds x="60" y="160" width="20" height="10" /></bezel>
1248      <bezel element="Key_6">                                            <bounds x="66" y="171" width="10" height="10" /></bezel>
1249      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x08"><bounds x="60" y="190" width="20" height="10" /></bezel>
1250      <bezel element="Key_Enter">                                        <bounds x="63" y="199" width="15" height="14" /></bezel>
1251      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x10"><bounds x="60" y="220" width="20" height="10" /></bezel>
1252      <bezel element="Key_Quote">                                        <bounds x="64" y="230" width="14" height="14" /></bezel>
1253      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x20"><bounds x="60" y="250" width="20" height="10" /></bezel>
1254      <bezel element="Key_SColon">                                       <bounds x="65" y="259" width="11" height="11" /></bezel>
1255      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x40"><bounds x="60" y="280" width="20" height="10" /></bezel>
1256      <bezel element="Key_L">                                            <bounds x="66" y="291" width="10" height="10" /></bezel>
1257      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x80"><bounds x="60" y="310" width="20" height="10" /></bezel>
1258      <bezel element="Key_Equals">                                       <bounds x="66" y="321" width="10" height="10" /></bezel>
1259
1260
1261      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x01"><bounds x="095" y="100" width="20" height="10" /></bezel>
1262      <bezel element="Key_K">                                            <bounds x="101" y="111" width="10" height="10" /></bezel>
1263      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x02"><bounds x="095" y="130" width="20" height="10" /></bezel>
1264      <bezel element="Key_J">                                            <bounds x="101" y="141" width="10" height="10" /></bezel>
1265      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x04"><bounds x="095" y="160" width="20" height="10" /></bezel>
1266      <bezel element="Key_H">                                            <bounds x="101" y="171" width="10" height="10" /></bezel>
1267      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x08"><bounds x="095" y="190" width="20" height="10" /></bezel>
1268      <bezel element="Key_G">                                            <bounds x="101" y="201" width="10" height="10" /></bezel>
1269      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x10"><bounds x="095" y="220" width="20" height="10" /></bezel>
1270      <bezel element="Key_F">                                            <bounds x="101" y="231" width="10" height="10" /></bezel>
1271      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x20"><bounds x="095" y="250" width="20" height="10" /></bezel>
1272      <bezel element="Key_D">                                            <bounds x="101" y="261" width="10" height="10" /></bezel>
1273      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x40"><bounds x="095" y="280" width="20" height="10" /></bezel>
1274      <bezel element="Key_S">                                            <bounds x="101" y="291" width="10" height="10" /></bezel>
1275      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x80"><bounds x="095" y="310" width="20" height="10" /></bezel>
1276      <bezel element="Key_A">                                            <bounds x="101" y="321" width="10" height="10" /></bezel>
1277
1278
1279      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x01"><bounds x="130" y="100" width="20" height="10" /></bezel>
1280      <bezel element="Key_O">                                            <bounds x="136" y="111" width="10" height="10" /></bezel>
1281      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x02"><bounds x="130" y="130" width="20" height="10" /></bezel>
1282      <bezel element="Key_I">                                            <bounds x="136" y="141" width="10" height="10" /></bezel>
1283      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x04"><bounds x="130" y="160" width="20" height="10" /></bezel>
1284      <bezel element="Key_U">                                            <bounds x="136" y="171" width="10" height="10" /></bezel>
1285      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x08"><bounds x="130" y="190" width="20" height="10" /></bezel>
1286      <bezel element="Key_Y">                                            <bounds x="136" y="201" width="10" height="10" /></bezel>
1287      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x10"><bounds x="130" y="220" width="20" height="10" /></bezel>
1288      <bezel element="Key_R">                                            <bounds x="136" y="231" width="10" height="10" /></bezel>
1289      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x20"><bounds x="130" y="250" width="20" height="10" /></bezel>
1290      <bezel element="Key_E">                                            <bounds x="136" y="261" width="10" height="10" /></bezel>
1291      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x40"><bounds x="130" y="280" width="20" height="10" /></bezel>
1292      <bezel element="Key_W">                                            <bounds x="136" y="291" width="10" height="10" /></bezel>
1293      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x80"><bounds x="130" y="310" width="20" height="10" /></bezel>
1294      <bezel element="Key_Q">                                            <bounds x="136" y="321" width="10" height="10" /></bezel>
1295
1296
1297      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x01"><bounds x="165" y="100" width="20" height="10" /></bezel>
1298      <bezel element="Key_Comma">                                        <bounds x="168" y="107" width="14" height="14" /></bezel>
1299      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x02"><bounds x="165" y="130" width="20" height="10" /></bezel>
1300      <bezel element="Key_M">                                            <bounds x="171" y="141" width="10" height="10" /></bezel>
1301      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x04"><bounds x="165" y="160" width="20" height="10" /></bezel>
1302      <bezel element="Key_N">                                            <bounds x="171" y="171" width="10" height="10" /></bezel>
1303      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x08"><bounds x="165" y="190" width="20" height="10" /></bezel>
1304      <bezel element="Key_B">                                            <bounds x="171" y="201" width="10" height="10" /></bezel>
1305      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x10"><bounds x="165" y="220" width="20" height="10" /></bezel>
1306      <bezel element="Key_V">                                            <bounds x="171" y="231" width="10" height="10" /></bezel>
1307      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x20"><bounds x="165" y="250" width="20" height="10" /></bezel>
1308      <bezel element="Key_C">                                            <bounds x="171" y="261" width="10" height="10" /></bezel>
1309      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x40"><bounds x="165" y="280" width="20" height="10" /></bezel>
1310      <bezel element="Key_X">                                            <bounds x="171" y="291" width="10" height="10" /></bezel>
1311      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x80"><bounds x="165" y="310" width="20" height="10" /></bezel>
1312      <bezel element="Key_Z">                                            <bounds x="171" y="321" width="10" height="10" /></bezel>
1313
1411314   </view>
1315
1421316</mamelayout>
trunk/src/mame/layout/by17_matahari.lay
r0r249894
1<!-- Pinball Machine, Bally ~ Mata Hari -->
2<!-- [Quench] October 2015 -->
3
4
5<!-- Any state="9" items are not displayed and are only used for object alignment -->
6
7<mamelayout version="2">
8
9   <element name="Title_MataHari"><text string="Mata Hari"><color red="1.00" green="0.0" blue="0.0" /></text></element>
10
11
12
13<!-- Switches -->
14
15   <element name="Switch_SlamTilt">
16      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="00" width="25" height="01" /></rect>
17      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="08" width="13" height="01.5" /></rect>
18      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="01" width="04" height="02" /></rect>
19      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="06" width="04" height="02" /></rect>
20
21      <rect state="0"><color red="0.70" green="0.70" blue="0.70" /><bounds x="19" y="01" width="06" height="04" /></rect>
22      <rect state="1"><color red="0.70" green="0.70" blue="0.70" /><bounds x="19" y="04" width="06" height="04" /></rect>
23
24      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="00" width="08" height="01" /></rect>
25      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="08" y="01" width="08" height="01" /></rect>
26      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="16" y="02" width="09" height="01" /></rect>
27
28
29      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="08"  width="13" height="01.5" /></rect>
30      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="03"  width="04" height="02" /></rect>
31      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="06"  width="04" height="02" /></rect>
32   </element>
33
34   <element name="Switch_Tilt">
35      <rect          ><color red="0.80" green="0.80" blue="0.00" /><bounds x="00" y="00" width="17" height="17" /></rect>
36      <disk          ><color red="0.00" green="0.00" blue="0.00" /><bounds x="01" y="01" width="15" height="15" /></disk>
37      <disk state="0"><color red="0.50" green="0.50" blue="0.50" /><bounds x="04" y="04" width="09" height="09" /></disk>
38      <disk state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="07" width="02" height="02" /></disk>
39
40      <disk state="1"><color red="0.50" green="0.50" blue="0.50" /><bounds x="07" y="04" width="09" height="09" /></disk>
41      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="11" y="07" width="02" height="02" /></disk>
42   </element>
43
44
45   <element name="Switch_Leaf_Vertical">
46      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="0" y="00" width="01"   height="06" /></rect>
47      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="8" y="00" width="01.5" height="06" /></rect>
48      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="1" y="01" width="02"   height="04" /></rect>
49      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="6" y="01" width="02"   height="04" /></rect>
50
51      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="1.5" y="00" width="01" height="06" /></rect>
52      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="6.5" y="00" width="01" height="06" /></rect>
53      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="2"   y="01" width="02" height="04" /></rect>
54      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="4.5" y="01" width="02" height="04" /></rect>
55   </element>
56
57   <element name="Switch_RollOn_WireForm_Left">
58      <text string=">" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="8" y="0" width="11"  height="11"  /></text>
59      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="0.1" height="04"  /></rect>
60      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="09"  height="0.1" /></rect>
61      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="8" width="09"  height="0.1" /></rect>
62      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="3" y="6" width="08"  height="0.1" /></rect>
63      <text string=">" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="8" y="0" width="11"  height="11"  /></text>
64      <rect            state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="0.1" height="04"  /></rect>
65      <rect            state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="09"  height="0.1" /></rect>
66      <rect            state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="8" width="09"  height="0.1" /></rect>
67   </element>
68
69   <element name="Switch_RollOver_WireForm_Vertical">
70      <text string="/\" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
71      <text string="\/" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="17" width="07"  height="10" /></text>
72      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
73      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
74      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="3" y="07" width="0.1" height="13" /></rect>
75      <text string="/\" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
76      <text string="\/" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="17" width="07"  height="10" /></text>
77      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
78      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
79   </element>
80
81
82   <element name="Switch_Push-Button" defstate="0">
83      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="04" width="16" height="01" /></rect>
84      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="00" width="01" height="04" /></rect>
85      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="17" y="00" width="01" height="04" /></rect>
86      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="00" width="05" height="01" /></rect>
87      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="08.5" width="16" height="01" /></rect>
88      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04.5" width="01" height="04" /></rect>
89      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="17" y="04.5" width="01" height="04" /></rect>
90      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04.5" width="05" height="01" /></rect>
91      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="12" width="09" height="01" /></rect>
92      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="21" y="12" width="09" height="01" /></rect>
93      <disk          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="10" width="06" height="06" /></disk>
94      <disk          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="10" width="06" height="06" /></disk>
95   </element>
96
97
98
99   <element name="Key_Z">     <text string="Z"><color red="1.00" green="0.66" blue="0.66" /></text></element>
100   <element name="Key_X">     <text string="X"><color red="1.00" green="0.66" blue="0.66" /></text></element>
101   <element name="Key_C">     <text string="C"><color red="1.00" green="0.66" blue="0.66" /></text></element>
102   <element name="Key_V">     <text string="V"><color red="1.00" green="0.66" blue="0.66" /></text></element>
103   <element name="Key_B">     <text string="B"><color red="1.00" green="0.66" blue="0.66" /></text></element>
104   <element name="Key_N">     <text string="N"><color red="1.00" green="0.66" blue="0.66" /></text></element>
105   <element name="Key_M">     <text string="M"><color red="1.00" green="0.66" blue="0.66" /></text></element>
106   <element name="Key_Comma"> <text string=","><color red="1.00" green="0.66" blue="0.66" /></text></element>
107   <element name="Key_Dot">   <text string="."><color red="1.00" green="0.66" blue="0.66" /></text></element>
108   <element name="Key_FSlash"><text string="/"><color red="1.00" green="0.66" blue="0.66" /></text></element>
109
110   <element name="Key_A">     <text string="A"><color red="1.00" green="0.66" blue="0.66" /></text></element>
111   <element name="Key_S">     <text string="S"><color red="1.00" green="0.66" blue="0.66" /></text></element>
112   <element name="Key_D">     <text string="D"><color red="1.00" green="0.66" blue="0.66" /></text></element>
113   <element name="Key_F">     <text string="F"><color red="1.00" green="0.66" blue="0.66" /></text></element>
114   <element name="Key_G">     <text string="G"><color red="1.00" green="0.66" blue="0.66" /></text></element>
115   <element name="Key_H">     <text string="H"><color red="1.00" green="0.66" blue="0.66" /></text></element>
116   <element name="Key_J">     <text string="J"><color red="1.00" green="0.66" blue="0.66" /></text></element>
117   <element name="Key_K">     <text string="K"><color red="1.00" green="0.66" blue="0.66" /></text></element>
118   <element name="Key_L">     <text string="L"><color red="1.00" green="0.66" blue="0.66" /></text></element>
119   <element name="Key_SColon"><text string=";"><color red="1.00" green="0.66" blue="0.66" /></text></element>
120   <element name="Key_Quote"> <text string="'"><color red="1.00" green="0.66" blue="0.66" /></text></element>
121   <element name="Key_Enter">
122      <text string="&#60;"><color red="1.00" green="0.66" blue="0.66" /><bounds x="00" y="00" width="07"  height="10" /></text>
123      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="00" y="00" width="07"  height="10" /></text>
124      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="02" y="00" width="07"  height="10" /></text>
125      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="04" y="00" width="07"  height="10" /></text>
126      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="06" y="00" width="07"  height="10" /></text>
127      <disk           >    <color red="1.00" green="0.66" blue="0.66" /><bounds x="10" y="02" width="0.5" height="03" /></disk>
128   </element>
129
130   <element name="Key_Q">     <text string="Q"><color red="1.00" green="0.66" blue="0.66" /></text></element>
131   <element name="Key_W">     <text string="W"><color red="1.00" green="0.66" blue="0.66" /></text></element>
132   <element name="Key_E">     <text string="E"><color red="1.00" green="0.66" blue="0.66" /></text></element>
133   <element name="Key_R">     <text string="R"><color red="1.00" green="0.66" blue="0.66" /></text></element>
134   <element name="Key_T">     <text string="T"><color red="1.00" green="0.66" blue="0.66" /></text></element>
135   <element name="Key_Y">     <text string="Y"><color red="1.00" green="0.66" blue="0.66" /></text></element>
136   <element name="Key_U">     <text string="U"><color red="1.00" green="0.66" blue="0.66" /></text></element>
137   <element name="Key_I">     <text string="I"><color red="1.00" green="0.66" blue="0.66" /></text></element>
138   <element name="Key_O">     <text string="O"><color red="1.00" green="0.66" blue="0.66" /></text></element>
139   <element name="Key_P">     <text string="P"><color red="1.00" green="0.66" blue="0.66" /></text></element>
140   <element name="Key_OBrkt"> <text string="["><color red="1.00" green="0.66" blue="0.66" /></text></element>
141   <element name="Key_CBrkt"> <text string="]"><color red="1.00" green="0.66" blue="0.66" /></text></element>
142   <element name="Key_BSlash"><text string="\"><color red="1.00" green="0.66" blue="0.66" /></text></element>
143
144   <element name="Key_1">     <text string="1"><color red="1.00" green="0.66" blue="0.66" /></text></element>
145   <element name="Key_5">     <text string="5"><color red="1.00" green="0.66" blue="0.66" /></text></element>
146   <element name="Key_6">     <text string="6"><color red="1.00" green="0.66" blue="0.66" /></text></element>
147   <element name="Key_7">     <text string="7"><color red="1.00" green="0.66" blue="0.66" /></text></element>
148   <element name="Key_9">     <text string="9"><color red="1.00" green="0.66" blue="0.66" /></text></element>
149   <element name="Key_0">     <text string="0"><color red="1.00" green="0.66" blue="0.66" /></text></element>
150   <element name="Key_BSpace">
151      <text string="&#60;"><color red="1.00" green="0.66" blue="0.66" /><bounds x="0" y="00" width="07" height="10" /></text>
152      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="0" y="00" width="07" height="10" /></text>
153      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="2" y="00" width="07" height="10" /></text>
154      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="4" y="00" width="07" height="10" /></text>
155      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="6" y="00" width="07" height="10" /></text>
156   </element>
157   <element name="Key_Equals"><text string="="><color red="1.00" green="0.66" blue="0.66" /></text></element>
158
159
160
161   <element name="Solenoid_DropTarget_Tall" defstate="0">
162      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="00" width="07" height="15" /></rect>
163      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="04" height="12" /></rect>
164   </element>
165   <element name="DropTarget_Tall" defstate="0">
166      <rect state="1"><color red="0.25" green="0.25" blue="0.25" /><bounds x="01" y="01" width="04" height="12" /></rect>
167      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="04" height="12" /></rect>
168      <rect state="9"><color red="0.00" green="1.00" blue="0.00" /><bounds x="00" y="00" width="07" height="15" /></rect>
169   </element>
170
171   <element name="Solenoid_DropTarget_Wide" defstate="0">
172      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="00" width="15" height="07" /></rect>
173      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="12" height="04" /></rect>
174   </element>
175   <element name="DropTarget_Wide" defstate="0">
176      <rect state="1"><color red="0.25" green="0.25" blue="0.25" /><bounds x="01" y="01" width="12" height="04" /></rect>
177      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="12" height="04" /></rect>
178      <rect state="9"><color red="0.00" green="1.00" blue="0.00" /><bounds x="00" y="00" width="15" height="07" /></rect>
179   </element>
180
181
182<!-- Lamps -->
183
184   <element name="Lamp_White" defstate="0">
185      <disk state="0"><color red="0.15" green="0.15" blue="0.15" /></disk>
186      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
187   </element>
188   <element name="Lamp_Red" defstate="0">                              <!-- Usually for Specials -->
189      <disk state="0"><color red="0.15" green="0.00" blue="0.00" /></disk>
190      <disk state="1"><color red="1.00" green="0.00" blue="0.00" /></disk>
191   </element>
192   <element name="Lamp_Amber" defstate="0">                           <!-- Usually for Extra Ball-->
193      <disk state="0"><color red="0.15" green="0.06" blue="0.00" /></disk>
194      <disk state="1"><color red="1.00" green="0.40" blue="0.00" /></disk>
195   </element>
196
197
198   <element name="Lamp_P1">
199      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
200      <text string="1" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
201      <text string="1" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
202   </element>
203   <element name="Lamp_P2">
204      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
205      <text string="2" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
206      <text string="2" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
207   </element>
208   <element name="Lamp_P3">
209      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
210      <text string="3" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
211      <text string="3" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
212   </element>
213   <element name="Lamp_P4">
214      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
215      <text string="4" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
216      <text string="4" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
217   </element>
218
219   <element name="Lamp_1P">
220      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
221      <text string="1" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
222      <text string="1" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
223   </element>
224   <element name="Lamp_2P">
225      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
226      <text string="2" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
227      <text string="2" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
228   </element>
229   <element name="Lamp_3P">
230      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
231      <text string="3" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
232      <text string="3" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
233   </element>
234   <element name="Lamp_4P">
235      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
236      <text string="4" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
237      <text string="4" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
238   </element>
239
240
241   <element name="Lamp_White_1k">
242      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
243      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
244      <text string="1k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
245   </element>
246   <element name="Lamp_White_2k">
247      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
248      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
249      <text string="2k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
250   </element>
251   <element name="Lamp_White_3k">
252      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
253      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
254      <text string="3k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
255   </element>
256   <element name="Lamp_White_4k">
257      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
258      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
259      <text string="4k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
260   </element>
261   <element name="Lamp_White_5k">
262      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
263      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
264      <text string="5k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
265   </element>
266   <element name="Lamp_White_6k">
267      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
268      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
269      <text string="6k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
270   </element>
271   <element name="Lamp_White_7k">
272      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
273      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
274      <text string="7k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
275   </element>
276   <element name="Lamp_White_8k">
277      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
278      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
279      <text string="8k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
280   </element>
281   <element name="Lamp_White_9k">
282      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
283      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
284      <text string="9k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
285   </element>
286   <element name="Lamp_White_10k">
287      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
288      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
289      <text string="10k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
290   </element>
291   <element name="Lamp_White_20k">
292      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
293      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
294      <text string="20k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
295   </element>
296   <element name="Lamp_White_50k">
297      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
298      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
299      <text string="50k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
300   </element>
301
302
303   <element name="Lamp_White_A">
304      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
305      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
306      <text string="A"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
307   </element>
308   <element name="Lamp_White_B">
309      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
310      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
311      <text string="B"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
312   </element>
313
314
315   <element name="Credit_Indicator">
316      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="2.5" y="0" width="1.0" height="1.0" /></disk>
317      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="2.5" y="0" width="1.0" height="1.0" /></disk>
318      <text string="Credit Indicator"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="1.1" width="6.5" height="0.90" /></text>
319   </element>
320
321
322   <element name="Lamp_Green_Arrow_Up_2x" defstate="1">
323      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
324      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
325      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
326      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
327      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
328      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
329      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
330      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
331      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
332      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
333      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
334      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
335      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
336      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
337      <text string="2x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="06" y="08" width="12" height="12" /></text>
338   </element>
339
340   <element name="Lamp_Yellow_Arrow_Up_3x" defstate="1">
341      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
342      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
343      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
344      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
345      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
346      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
347      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
348      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
349      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
350      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
351      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
352      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
353      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
354      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
355      <text string="3x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="06" y="08" width="12" height="12" /></text>
356   </element>
357
358   <element name="Lamp_White_Arrow_Up_5x" defstate="1">
359      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
360      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="10" y="00" width="02" height="03" /></rect>
361      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
362      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="08" y="03" width="06" height="03" /></rect>
363      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
364      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="06" width="10" height="03" /></rect>
365      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
366      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="04" y="09" width="14" height="03" /></rect>
367      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
368      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="02" y="12" width="18" height="03" /></rect>
369      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
370      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="00" y="15" width="22" height="03" /></rect>
371      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
372      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="09" y="06" width="04" height="30" /></rect>
373      <text string="5x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="06" y="08" width="12" height="12" /></text>
374   </element>
375
376   <element name="Lamp_White_Arrow_Up_3k" defstate="0">
377      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
378      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
379      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
380      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
381      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
382      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
383      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
384      <text string="3k"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="06" y="08" width="12" height="12" /></text>
385   </element>
386
387   <element name="Lamp_Green_Arrow_04_2x" defstate="1">   <!-- Point at 4 o clock -->
388      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="00" y="00" width="08" height="03" /></rect>
389      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="00" y="00" width="08" height="03" /></rect>
390      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="05" y="03" width="08" height="03" /></rect>
391      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="05" y="03" width="08" height="03" /></rect>
392      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="10" y="06" width="08" height="03" /></rect>
393      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="10" y="06" width="08" height="03" /></rect>
394      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="24" y="03" width="02" height="03" /></rect>
395      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="24" y="03" width="02" height="03" /></rect>
396      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="22" y="06" width="06" height="03" /></rect>
397      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="22" y="06" width="06" height="03" /></rect>
398      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="15" y="09" width="15" height="03" /></rect>
399      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="15" y="09" width="15" height="03" /></rect>
400      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="18" y="12" width="14" height="03" /></rect>
401      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="18" y="12" width="14" height="03" /></rect>
402      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="17" y="15" width="17" height="03" /></rect>
403      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="17" y="15" width="17" height="03" /></rect>
404      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="16" y="18" width="20" height="03" /></rect>
405      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="16" y="18" width="20" height="03" /></rect>
406      <text string="2x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="18" y="08" width="15" height="15" /></text>
407   </element>
408
409   <element name="Lamp_Yellow_Arrow_04_3x" defstate="1">   <!-- Point at 4 o clock -->
410      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="00" y="00" width="08" height="03" /></rect>
411      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="00" y="00" width="08" height="03" /></rect>
412      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="05" y="03" width="08" height="03" /></rect>
413      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="05" y="03" width="08" height="03" /></rect>
414      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="10" y="06" width="08" height="03" /></rect>
415      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="10" y="06" width="08" height="03" /></rect>
416      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="24" y="03" width="02" height="03" /></rect>
417      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="24" y="03" width="02" height="03" /></rect>
418      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="22" y="06" width="06" height="03" /></rect>
419      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="22" y="06" width="06" height="03" /></rect>
420      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="15" y="09" width="15" height="03" /></rect>
421      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="15" y="09" width="15" height="03" /></rect>
422      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="18" y="12" width="14" height="03" /></rect>
423      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="18" y="12" width="14" height="03" /></rect>
424      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="17" y="15" width="17" height="03" /></rect>
425      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="17" y="15" width="17" height="03" /></rect>
426      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="16" y="18" width="20" height="03" /></rect>
427      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="16" y="18" width="20" height="03" /></rect>
428      <text string="3x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="18" y="08" width="15" height="15" /></text>
429   </element>
430
431   <element name="Lamp_White_Arrow_08_5x" defstate="1">   <!-- Point at 8 o clock -->
432      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="28" y="00" width="08" height="03" /></rect>
433      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="28" y="00" width="08" height="03" /></rect>
434      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="23" y="03" width="08" height="03" /></rect>
435      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="23" y="03" width="08" height="03" /></rect>
436      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="06" width="08" height="03" /></rect>
437      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="18" y="06" width="08" height="03" /></rect>
438      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="10" y="03" width="02" height="03" /></rect>
439      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="10" y="03" width="02" height="03" /></rect>
440      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="08" y="06" width="06" height="03" /></rect>
441      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="08" y="06" width="06" height="03" /></rect>
442      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
443      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="09" width="15" height="03" /></rect>
444      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="04" y="12" width="14" height="03" /></rect>
445      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="04" y="12" width="14" height="03" /></rect>
446      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="02" y="15" width="17" height="03" /></rect>
447      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="02" y="15" width="17" height="03" /></rect>
448      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="18" width="20" height="03" /></rect>
449      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="00" y="18" width="20" height="03" /></rect>
450      <text string="5x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="06" y="08" width="15" height="15" /></text>
451   </element>
452
453   <element name="Lamp_Amber_Arrow_08" defstate="1">   <!-- Point at 8 o clock -->
454      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="28" y="00" width="08" height="03" /></rect>
455      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="28" y="00" width="08" height="03" /></rect>
456      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="23" y="03" width="08" height="03" /></rect>
457      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="23" y="03" width="08" height="03" /></rect>
458      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="18" y="06" width="08" height="03" /></rect>
459      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="18" y="06" width="08" height="03" /></rect>
460      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="10" y="03" width="02" height="03" /></rect>
461      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="10" y="03" width="02" height="03" /></rect>
462      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="08" y="06" width="06" height="03" /></rect>
463      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="08" y="06" width="06" height="03" /></rect>
464      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
465      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
466      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="04" y="12" width="14" height="03" /></rect>
467      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="04" y="12" width="14" height="03" /></rect>
468      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="02" y="15" width="17" height="03" /></rect>
469      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="02" y="15" width="17" height="03" /></rect>
470      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="00" y="18" width="20" height="03" /></rect>
471      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="00" y="18" width="20" height="03" /></rect>
472   </element>
473
474   <element name="Lamp_White_Arrow_11_A" defstate="1">   <!-- Point at 11 o clock -->
475      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="00" width="03" height="20" /></rect>
476      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="00" y="00" width="03" height="20" /></rect>
477      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="03" y="02" width="03" height="17" /></rect>
478      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="03" y="02" width="03" height="17" /></rect>
479      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="04" width="03" height="14" /></rect>
480      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="04" width="03" height="14" /></rect>
481      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="09" y="06" width="03" height="15" /></rect>
482      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="09" y="06" width="03" height="15" /></rect>
483      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="08" width="03" height="06" /></rect>
484      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="12" y="08" width="03" height="06" /></rect>
485      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="15" y="10" width="03" height="02" /></rect>
486      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="15" y="10" width="03" height="02" /></rect>
487      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="18" width="03" height="08" /></rect>
488      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="12" y="18" width="03" height="08" /></rect>
489      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="15" y="23" width="03" height="08" /></rect>
490      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="15" y="23" width="03" height="08" /></rect>
491      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="28" width="03" height="08" /></rect>
492      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="18" y="28" width="03" height="08" /></rect>
493      <text string="A"><color red="0.0" green="0.0" blue="0.0"   /><bounds x="-2" y="03" width="18" height="18" /></text>
494   </element>
495
496   <element name="Lamp_White_Arrow_01_B" defstate="1">   <!-- Point at 1 o clock -->
497      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="00" width="03" height="20" /></rect>
498      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="18" y="00" width="03" height="20" /></rect>
499      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="15" y="02" width="03" height="17" /></rect>
500      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="15" y="02" width="03" height="17" /></rect>
501      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04" width="03" height="14" /></rect>
502      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="12" y="04" width="03" height="14" /></rect>
503      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="09" y="06" width="03" height="15" /></rect>
504      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="09" y="06" width="03" height="15" /></rect>
505      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="08" width="03" height="06" /></rect>
506      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="08" width="03" height="06" /></rect>
507      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="03" y="10" width="03" height="02" /></rect>
508      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="03" y="10" width="03" height="02" /></rect>
509      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="18" width="03" height="08" /></rect>
510      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="18" width="03" height="08" /></rect>
511      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="03" y="23" width="03" height="08" /></rect>
512      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="03" y="23" width="03" height="08" /></rect>
513      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="28" width="03" height="08" /></rect>
514      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="00" y="28" width="03" height="08" /></rect>
515      <text string="B"><color red="0.0" green="0.0" blue="0.0"   /><bounds x="06" y="03" width="18" height="18" /></text>
516   </element>
517
518
519<!-- Backbox Indicators -->
520
521   <element name="Text_Credit"><text string="CREDIT"><color red="1.0" green="1.0" blue="1.0" /></text></element>
522   <element name="Text_Lamps"><text string="Lamps"><color red="1.0" green="1.0" blue="1.0" /></text></element>
523   <element name="Text_15"><text string="U1 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
524   <element name="Text_30"><text string="U2 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
525   <element name="Text_45"><text string="U3 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
526   <element name="Text_60"><text string="U4 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
527   <element name="Text_Solenoids"><text string="Momentary Solenoids"><color red="1.0" green="1.0" blue="1.0" /></text></element>
528   <element name="Text_Coils"><text string="Coils"><color red="1.0" green="1.0" blue="1.0" /></text></element>
529   <element name="Text_MPU_LED"><text string="MPU LED"><color red="1.0" green="1.0" blue="1.0" /></text></element>
530   <element name="Text_Activity"><text string="Activity Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
531   <element name="Text_Service"><text string="Service Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
532   <element name="Text_Slam"><text string="Slam Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
533   <element name="Text_Tilt"><text string="Tilt Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
534   <element name="Text_Knocker"><text string="Knocker"><color red="1.0" green="1.0" blue="1.0" /></text></element>
535
536
537   <element name="High_Score_To_Date" defstate="0">
538      <text string="HIGH SCORE TO DATE" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="1" /></text>
539      <text string="HIGH SCORE TO DATE" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="1" /></text>
540   </element>
541   <element name="Ball_In_Play" defstate="0">
542      <text string="BALL IN PLAY" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.1" y="0.1" width="1" height="0.8" /></text>
543      <text string="BALL IN PLAY" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0.1" y="0.1" width="1" height="0.8" /></text>
544   </element>
545   <element name="Match" defstate="0">
546      <text string="MATCH" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
547      <text string="MATCH" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
548   </element>
549   <element name="Game_Over" defstate="0">
550      <text string="GAME OVER" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
551      <text string="GAME OVER" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
552   </element>
553   <element name="Tilt" defstate="0">
554      <text string="TILT" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
555      <text string="TILT" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
556   </element>
557   <element name="Shoot_Again" defstate="0">
558      <text string="SAME PLAYER"  state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
559      <text string="SAME PLAYER"  state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
560      <text string="SHOOTS AGAIN" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.9" width="1" height="0.8" /></text>
561      <text string="SHOOTS AGAIN" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.9" width="1" height="0.8" /></text>
562   </element>
563
564
565   <element name="Digit" defstate="0">
566      <led7seg><color red="1.0" green="0.35" blue="0.0" /></led7seg>
567   </element>
568
569   <element name="LED_Green" defstate="1">
570      <disk state="0"><color red="0.0" green="0.25" blue="0.0" /></disk>
571      <disk state="1"><color red="0.0" green="1.00" blue="0.0" /></disk>
572   </element>
573
574
575
576<!-- Solenoids -->
577
578   <element name="Solenoid_PullDown">
579      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="3" y="0" width="03" height="09" /></rect>
580      <rect state="0"><color red="0.0" green="1.0" blue="1.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
581      <rect state="1"><color red="1.0" green="1.0" blue="0.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
582   </element>
583
584   <element name="Coil_PullDown">
585      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="8" y="0" width="02" height="01" /></rect>
586      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="6" y="1" width="02" height="01" /></rect>
587      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="4" y="2" width="02" height="01" /></rect>
588      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="2" y="3" width="02" height="01" /></rect>
589      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="4" width="02" height="01" /></rect>
590      <rect          ><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="5" width="02" height="02" /></rect>
591      <rect state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="4" width="10" height="01" /></rect>
592
593      <rect state="0"><color red="0.0" green="1.0" blue="1.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
594      <rect state="1"><color red="1.0" green="1.0" blue="0.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
595   </element>
596
597
598   <element name="Solenoid_Knocker" defstate="0">
599      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="03" y="14" width="03" height="08" /></rect>
600      <rect state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="03" y="00" width="03" height="04" /></rect>
601      <rect state="0"><color red="0.0" green="1.0" blue="1.0" /><bounds x="00" y="04" width="10" height="11" /></rect>
602      <rect state="1"><color red="1.0" green="1.0" blue="0.0" /><bounds x="00" y="04" width="10" height="11" /></rect>
603   </element>
604
605   <element name="Solenoid_Outhole" defstate="0">
606      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="17" y="00" width="05" height="16" /></text>
607      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="02" y="00" width="05" height="16" /></text>
608      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="18" y="00" width="05" height="16" /></text>
609      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="03" y="00" width="05" height="16" /></text>
610      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="19" y="00" width="05" height="16" /></text>
611      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="04" y="00" width="05" height="16" /></text>
612      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="20" y="00" width="05" height="16" /></text>
613      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="05" y="00" width="05" height="16" /></text>
614      <rect            state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="02" y="02" width="18" height="10" /></rect>
615      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="00" y="14" width="25" height="02" /></rect>
616      <text string="Outhole"    ><color red="1.0" green="1.0" blue="1.0" /><bounds x="30" y="12" width="28" height="9.5" /></text>
617   </element>
618
619   <element name="Solenoid_SlingShot_Left" defstate="0">
620      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="05" y="00" width="65"   height="80" /></text>
621      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="00" y="00" width="65"   height="80" /></text>
622      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="20" y="16" width="04"   height="60" /></rect>
623      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="20" y="76" width="24.5" height="04" /></rect>
624   </element>
625   <element name="Solenoid_SlingShot_Right" defstate="0">
626      <text string="/" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="-5"   y="00" width="65" height="80" /></text>
627      <text string="/" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="00"   y="00" width="65" height="80" /></text>
628      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="40"   y="16" width="04" height="60" /></rect>
629      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="19.5" y="76" width="24" height="04" /></rect>
630   </element>
631
632
633   <element name="Solenoid_Bumper_Red_Star" defstate="0">
634      <disk state="0"> <color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
635      <disk state="1"> <color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
636      <text string="*"><color red="1.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
637      <disk>           <color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
638   </element>
639   <element name="Switch_Bumper_Red_Star" defstate="0">
640      <text string="*" state="9"><color red="1.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
641      <disk            state="0"><color red="1.0" green="0.0" blue="0.0" /><bounds x="14" y="15" width="50" height="50" /></disk>
642      <disk            state="1"><color red="0.5" green="0.5" blue="0.5" /><bounds x="14" y="15" width="50" height="50" /></disk>
643   </element>
644   <element name="Lamp_Bumper_Silver_1000" defstate="1">
645      <text string="*" state="9"><color red="0.5" green="0.5" blue="0.5" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
646      <disk            state="0"><color red="0.7" green="0.7" blue="0.7" /><bounds x="18" y="18" width="44" height="44" /></disk>
647      <disk            state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
648      <text string="1000">       <color red="0.5" green="0.5" blue="0.5" /><bounds x="07" y="29" width="70" height="23" /></text>
649   </element>
650
651   <element name="Solenoid_Bumper_Yellow_Star" defstate="0">
652      <disk state="0"> <color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
653      <disk state="1"> <color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
654      <text string="*"><color red="1.0" green="1.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
655      <disk>           <color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
656   </element>
657   <element name="Switch_Bumper_Yellow_Star" defstate="0">
658      <text string="*" state="9"><color red="1.0" green="1.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
659      <disk            state="0"><color red="1.0" green="1.0" blue="0.0" /><bounds x="14" y="15" width="50" height="50" /></disk>
660      <disk            state="1"><color red="0.5" green="0.5" blue="0.5" /><bounds x="14" y="15" width="50" height="50" /></disk>
661   </element>
662   <element name="Lamp_Bumper_Silver_100" defstate="1">
663      <text string="*" state="9"><color red="0.5" green="0.5" blue="0.5" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
664      <disk                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
665      <text string="100">        <color red="0.5" green="0.5" blue="0.5" /><bounds x="07" y="29" width="66" height="23" /></text>
666   </element>
667
668
669   <element name="Solenoid_Saucer_Large" defstate="0">
670      <disk>          <color red="1.0" green="0.8" blue="0.5" /><bounds x="00" y="00" width="70" height="70" /></disk>
671      <disk>          <color red="0.7" green="0.7" blue="0.7" /><bounds x="17" y="17" width="36" height="36" /></disk>
672      <rect state="0"><color red="0.3" green="0.3" blue="0.3" /><bounds x="33" y="14" width="04" height="21" /></rect>
673      <rect state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="33" y="14" width="04" height="21" /></rect>
674      <disk>          <color red="0.0" green="0.0" blue="0.0" /><bounds x="29" y="40" width="12" height="12" /></disk>
675   </element>
676   <element name="Switch_Saucer_Large" defstate="0">
677      <disk state="9"><color red="1.0" green="0.8" blue="0.5" /><bounds x="00" y="00" width="70" height="70" /></disk>
678      <disk state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="31" y="42" width="08" height="08" /></disk>
679      <disk state="1"><color red="0.0" green="0.0" blue="0.0" /><bounds x="31" y="42" width="08" height="08" /></disk>
680   </element>
681
682
683<!-- Line colours -->
684
685   <element name="Draw_White" defstate="1">
686      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
687      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
688   </element>
689   <element name="Draw_Red" defstate="1">
690      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
691      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
692   </element>
693   <element name="Draw_Amber" defstate="1">
694      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
695      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
696   </element>
697
698   <element name="Canvas">
699      <rect>
700         <color red="0.0" green="0.0" blue="0.0" />
701         <bounds left="0" top="0" right="1" bottom="1" />
702      </rect>
703   </element>
704
705
706
707
708
709   <view name="Mata Hari Playfield">
710
711      <!-- Background -->
712      <backdrop element="Canvas"><bounds x="0" y="0" width="640" height="480" /></backdrop>
713     
714      <bezel element="Draw_White"><bounds x="0" y="0" width="640" height="1" /></bezel>
715      <bezel element="Draw_White"><bounds x="0" y="0" width="1" height="480" /></bezel>
716      <bezel element="Draw_White"><bounds x="640" y="0" width="1" height="480" /></bezel>
717      <bezel element="Draw_White"><bounds x="0" y="480" width="640" height="1" /></bezel>
718      <bezel element="Draw_White"><bounds x="320" y="0" width="1" height="480" /></bezel>
719      <bezel element="Draw_White"><bounds x="320" y="320" width="320" height="1" /></bezel>
720      <!--     <bezel element="Draw_White"><bounds x="159" y="0" width="1" height="480" /></bezel>     -->
721
722      <bezel element="Title_MataHari"><bounds x="430" y="18" width="105" height="30" /></bezel>
723
724
725      <!-- Backbox -->
726
727      <!-- MPU Board Power On Self Test LED -->
728      <bezel element="Text_MPU_LED">         <bounds x="609" y="342" width="30" height="10" /></bezel>
729      <bezel name="led0" element="LED_Green"><bounds x="618" y="328" width="10" height="10" /></bezel>
730
731      <!-- MPU Board Activity Switch -->
732      <bezel element="Text_Activity">                                      <bounds x="540" y="342" width="50" height="10" /></bezel>
733      <bezel element="Switch_Push-Button" inputtag="TEST" inputmask="0x02"><bounds x="550" y="331" width="20" height="10" /></bezel>
734      <bezel element="Key_0">                                              <bounds x="571" y="330" width="10" height="10" /></bezel>
735
736
737      <!-- Player 1 Score -->
738      <bezel name="lamp14" element="Lamp_P1"><bounds x="330" y="55" width="15" height="15" /></bezel>         <!-- Backbox ~ 1st Player Up -->
739      <bezel name="digit17" element="Digit"><bounds x="360" y="55" width="10" height="15" /></bezel>
740      <bezel name="digit16" element="Digit"><bounds x="374" y="55" width="10" height="15" /></bezel>
741      <bezel name="digit15" element="Digit"><bounds x="388" y="55" width="10" height="15" /></bezel>
742      <bezel name="digit14" element="Digit"><bounds x="402" y="55" width="10" height="15" /></bezel>
743      <bezel name="digit13" element="Digit"><bounds x="416" y="55" width="10" height="15" /></bezel>
744      <bezel name="digit12" element="Digit"><bounds x="430" y="55" width="10" height="15" /></bezel>
745      <bezel name="digit11" element="Digit"><bounds x="444" y="55" width="10" height="15" /></bezel>
746
747      <!-- Player 2 Score -->
748      <bezel name="lamp29" element="Lamp_P2"><bounds x="615" y="55" width="15" height="15" /></bezel>         <!-- Backbox ~ 2nd Player Up -->
749      <bezel name="digit27" element="Digit"><bounds x="506" y="55" width="10" height="15" /></bezel>
750      <bezel name="digit26" element="Digit"><bounds x="520" y="55" width="10" height="15" /></bezel>
751      <bezel name="digit25" element="Digit"><bounds x="534" y="55" width="10" height="15" /></bezel>
752      <bezel name="digit24" element="Digit"><bounds x="548" y="55" width="10" height="15" /></bezel>
753      <bezel name="digit23" element="Digit"><bounds x="562" y="55" width="10" height="15" /></bezel>
754      <bezel name="digit22" element="Digit"><bounds x="576" y="55" width="10" height="15" /></bezel>
755      <bezel name="digit21" element="Digit"><bounds x="590" y="55" width="10" height="15" /></bezel>
756
757      <!-- Player 3 Score -->
758      <bezel name="lamp44" element="Lamp_P3"><bounds x="330" y="250" width="15" height="15" /></bezel>      <!-- Backbox ~ 3rd Player Up -->
759      <bezel name="digit37" element="Digit"><bounds x="360" y="250" width="10" height="15" /></bezel>
760      <bezel name="digit36" element="Digit"><bounds x="374" y="250" width="10" height="15" /></bezel>
761      <bezel name="digit35" element="Digit"><bounds x="388" y="250" width="10" height="15" /></bezel>
762      <bezel name="digit34" element="Digit"><bounds x="402" y="250" width="10" height="15" /></bezel>
763      <bezel name="digit33" element="Digit"><bounds x="416" y="250" width="10" height="15" /></bezel>
764      <bezel name="digit32" element="Digit"><bounds x="430" y="250" width="10" height="15" /></bezel>
765      <bezel name="digit31" element="Digit"><bounds x="444" y="250" width="10" height="15" /></bezel>
766
767      <!-- Player 4 Score -->
768      <bezel name="lamp59" element="Lamp_P4"><bounds x="615" y="250" width="15" height="15" /></bezel>      <!-- Backbox ~ 4th Player Up -->
769      <bezel name="digit47" element="Digit"><bounds x="506" y="250" width="10" height="15" /></bezel>
770      <bezel name="digit46" element="Digit"><bounds x="520" y="250" width="10" height="15" /></bezel>
771      <bezel name="digit45" element="Digit"><bounds x="534" y="250" width="10" height="15" /></bezel>
772      <bezel name="digit44" element="Digit"><bounds x="548" y="250" width="10" height="15" /></bezel>
773      <bezel name="digit43" element="Digit"><bounds x="562" y="250" width="10" height="15" /></bezel>
774      <bezel name="digit42" element="Digit"><bounds x="576" y="250" width="10" height="15" /></bezel>
775      <bezel name="digit41" element="Digit"><bounds x="590" y="250" width="10" height="15" /></bezel>
776
777      <!-- Credits and Ball In Play / Match -->
778      <bezel element="Text_Credit"><bounds x="542" y="142" width="48" height="8" /></bezel>
779      <bezel name="lamp12"  element="Ball_In_Play"><bounds x="586" y="105" width="50" height="11" /></bezel>   <!-- Backbox ~ Ball In Play -->
780      <bezel name="lamp25"  element="Match"><bounds x="596" y="152" width="25" height="11" /></bezel>         <!-- Backbox ~ Match -->
781      <bezel name="digit55" element="Digit"><bounds x="554" y="125" width="10" height="15" /></bezel>
782      <bezel name="digit54" element="Digit"><bounds x="568" y="125" width="10" height="15" /></bezel>
783      <bezel name="digit52" element="Digit"><bounds x="596" y="125" width="10" height="15" /></bezel>
784      <bezel name="digit51" element="Digit"><bounds x="610" y="125" width="10" height="15" /></bezel>
785
786      <bezel name="lamp10" element="Shoot_Again"><bounds x="420" y="295" width="60" height="19" /></bezel>   <!-- Backbox ~ Same Player Shoots Again -->
787      <bezel name="lamp13" element="Lamp_1P"><bounds x="345" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 1 Player Game -->
788      <bezel name="lamp28" element="Lamp_2P"><bounds x="360" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 2 Player Game -->
789      <bezel name="lamp43" element="Lamp_3P"><bounds x="375" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 3 Player Game -->
790      <bezel name="lamp58" element="Lamp_4P"><bounds x="390" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 4 Player Game -->
791      <bezel name="lamp27" element="High_Score_To_Date"><bounds x="438" y="6" width="90" height="11" /></bezel>   <!-- Backbox ~ High Score To Date -->
792      <bezel name="lamp42" element="Game_Over"><bounds x="580" y="300" width="45" height="11" /></bezel>      <!-- Backbox ~ Game Over -->
793      <bezel name="lamp57" element="Tilt"><bounds x="480" y="297" width="50" height="16" /></bezel>         <!-- Backbox ~ Tilt -->
794
795
796
797      <bezel element="Text_Lamps"><bounds x="410" y="360" width="60" height="11" /></bezel>
798      <bezel element="Text_15"><bounds x="552" y="373" width="30" height="11" /></bezel>
799      <bezel element="Text_30"><bounds x="552" y="388" width="30" height="11" /></bezel>
800      <bezel element="Text_45"><bounds x="552" y="403" width="30" height="11" /></bezel>
801      <bezel element="Text_60"><bounds x="552" y="418" width="30" height="11" /></bezel>
802
803      <!-- Lamps controlled by U1 on Lamp Driver Board -->
804      <bezel name="lamp0"  element="Lamp_White"><bounds x="330" y="375" width="8" height="8" /></bezel>   <!-- U1 00 -->
805      <bezel name="lamp1"  element="Lamp_White"><bounds x="345" y="375" width="8" height="8" /></bezel>   <!-- U1 01 -->
806      <bezel name="lamp2"  element="Lamp_White"><bounds x="360" y="375" width="8" height="8" /></bezel>   <!-- U1 02 -->
807      <bezel name="lamp3"  element="Lamp_White"><bounds x="375" y="375" width="8" height="8" /></bezel>   <!-- U1 03 -->
808      <bezel name="lamp4"  element="Lamp_White"><bounds x="390" y="375" width="8" height="8" /></bezel>   <!-- U1 04 -->
809      <bezel name="lamp5"  element="Lamp_White"><bounds x="405" y="375" width="8" height="8" /></bezel>   <!-- U1 05 -->
810      <bezel name="lamp6"  element="Lamp_White"><bounds x="420" y="375" width="8" height="8" /></bezel>   <!-- U1 06 -->
811      <bezel name="lamp7"  element="Lamp_White"><bounds x="435" y="375" width="8" height="8" /></bezel>   <!-- U1 07 -->
812      <bezel name="lamp8"  element="Lamp_White"><bounds x="450" y="375" width="8" height="8" /></bezel>   <!-- U1 08 -->
813      <bezel name="lamp9"  element="Lamp_White"><bounds x="465" y="375" width="8" height="8" /></bezel>   <!-- U1 09 -->
814      <bezel name="lamp10" element="Lamp_White"><bounds x="480" y="375" width="8" height="8" /></bezel>   <!-- U1 10 -->
815      <bezel name="lamp11" element="Lamp_White"><bounds x="495" y="375" width="8" height="8" /></bezel>   <!-- U1 11 -->
816      <bezel name="lamp12" element="Lamp_White"><bounds x="510" y="375" width="8" height="8" /></bezel>   <!-- U1 12 -->
817      <bezel name="lamp13" element="Lamp_White"><bounds x="525" y="375" width="8" height="8" /></bezel>   <!-- U1 13 -->
818      <bezel name="lamp14" element="Lamp_White"><bounds x="540" y="375" width="8" height="8" /></bezel>   <!-- U1 14 -->
819
820      <!-- Lamps controlled by U2 on Lamp Driver Board -->
821      <bezel name="lamp15" element="Lamp_White"><bounds x="330" y="390" width="8" height="8" /></bezel>   <!-- U2 00 -->
822      <bezel name="lamp16" element="Lamp_White"><bounds x="345" y="390" width="8" height="8" /></bezel>   <!-- U2 01 -->
823      <bezel name="lamp17" element="Lamp_White"><bounds x="360" y="390" width="8" height="8" /></bezel>   <!-- U2 02 -->
824      <bezel name="lamp18" element="Lamp_White"><bounds x="375" y="390" width="8" height="8" /></bezel>   <!-- U2 03 -->
825      <bezel name="lamp19" element="Lamp_White"><bounds x="390" y="390" width="8" height="8" /></bezel>   <!-- U2 04 -->
826      <bezel name="lamp20" element="Lamp_White"><bounds x="405" y="390" width="8" height="8" /></bezel>   <!-- U2 05 -->
827      <bezel name="lamp21" element="Lamp_White"><bounds x="420" y="390" width="8" height="8" /></bezel>   <!-- U2 06 -->
828      <bezel name="lamp22" element="Lamp_White"><bounds x="435" y="390" width="8" height="8" /></bezel>   <!-- U2 07 -->
829      <bezel name="lamp23" element="Lamp_White"><bounds x="450" y="390" width="8" height="8" /></bezel>   <!-- U2 08 -->
830      <bezel name="lamp24" element="Lamp_White"><bounds x="465" y="390" width="8" height="8" /></bezel>   <!-- U2 09 -->
831      <bezel name="lamp25" element="Lamp_White"><bounds x="480" y="390" width="8" height="8" /></bezel>   <!-- U2 10 -->
832      <bezel name="lamp26" element="Lamp_White"><bounds x="495" y="390" width="8" height="8" /></bezel>   <!-- U2 11 -->
833      <bezel name="lamp27" element="Lamp_White"><bounds x="510" y="390" width="8" height="8" /></bezel>   <!-- U2 12 -->
834      <bezel name="lamp28" element="Lamp_White"><bounds x="525" y="390" width="8" height="8" /></bezel>   <!-- U2 13 -->
835      <bezel name="lamp29" element="Lamp_White"><bounds x="540" y="390" width="8" height="8" /></bezel>   <!-- U2 14 -->
836
837      <!-- Lamps controlled by U3 on Lamp Driver Board -->
838      <bezel name="lamp30" element="Lamp_White"><bounds x="330" y="405" width="8" height="8" /></bezel>   <!-- U3 00 -->
839      <bezel name="lamp31" element="Lamp_White"><bounds x="345" y="405" width="8" height="8" /></bezel>   <!-- U3 01 -->
840      <bezel name="lamp32" element="Lamp_White"><bounds x="360" y="405" width="8" height="8" /></bezel>   <!-- U3 02 -->
841      <bezel name="lamp33" element="Lamp_White"><bounds x="375" y="405" width="8" height="8" /></bezel>   <!-- U3 03 -->
842      <bezel name="lamp34" element="Lamp_White"><bounds x="390" y="405" width="8" height="8" /></bezel>   <!-- U3 04 -->
843      <bezel name="lamp35" element="Lamp_White"><bounds x="405" y="405" width="8" height="8" /></bezel>   <!-- U3 05 -->
844      <bezel name="lamp36" element="Lamp_White"><bounds x="420" y="405" width="8" height="8" /></bezel>   <!-- U3 06 -->
845      <bezel name="lamp37" element="Lamp_White"><bounds x="435" y="405" width="8" height="8" /></bezel>   <!-- U3 07 -->
846      <bezel name="lamp38" element="Lamp_White"><bounds x="450" y="405" width="8" height="8" /></bezel>   <!-- U3 08 -->
847      <bezel name="lamp39" element="Lamp_White"><bounds x="465" y="405" width="8" height="8" /></bezel>   <!-- U3 09 -->
848      <bezel name="lamp40" element="Lamp_White"><bounds x="480" y="405" width="8" height="8" /></bezel>   <!-- U3 10 -->
849      <bezel name="lamp41" element="Lamp_White"><bounds x="495" y="405" width="8" height="8" /></bezel>   <!-- U3 11 -->
850      <bezel name="lamp42" element="Lamp_White"><bounds x="510" y="405" width="8" height="8" /></bezel>   <!-- U3 12 -->
851      <bezel name="lamp43" element="Lamp_White"><bounds x="525" y="405" width="8" height="8" /></bezel>   <!-- U3 13 -->
852      <bezel name="lamp44" element="Lamp_White"><bounds x="540" y="405" width="8" height="8" /></bezel>   <!-- U3 14 -->
853
854      <!-- Lamps controlled by U4 on Lamp Driver Board -->
855      <bezel name="lamp45" element="Lamp_White"><bounds x="330" y="420" width="8" height="8" /></bezel>   <!-- U4 00 -->
856      <bezel name="lamp46" element="Lamp_White"><bounds x="345" y="420" width="8" height="8" /></bezel>   <!-- U4 01 -->
857      <bezel name="lamp47" element="Lamp_White"><bounds x="360" y="420" width="8" height="8" /></bezel>   <!-- U4 02 -->
858      <bezel name="lamp48" element="Lamp_White"><bounds x="375" y="420" width="8" height="8" /></bezel>   <!-- U4 03 -->
859      <bezel name="lamp49" element="Lamp_White"><bounds x="390" y="420" width="8" height="8" /></bezel>   <!-- U4 04 -->
860      <bezel name="lamp50" element="Lamp_White"><bounds x="405" y="420" width="8" height="8" /></bezel>   <!-- U4 05 -->
861      <bezel name="lamp51" element="Lamp_White"><bounds x="420" y="420" width="8" height="8" /></bezel>   <!-- U4 06 -->
862      <bezel name="lamp52" element="Lamp_White"><bounds x="435" y="420" width="8" height="8" /></bezel>   <!-- U4 07 -->
863      <bezel name="lamp53" element="Lamp_White"><bounds x="450" y="420" width="8" height="8" /></bezel>   <!-- U4 08 -->
864      <bezel name="lamp54" element="Lamp_White"><bounds x="465" y="420" width="8" height="8" /></bezel>   <!-- U4 09 -->
865      <bezel name="lamp55" element="Lamp_White"><bounds x="480" y="420" width="8" height="8" /></bezel>   <!-- U4 10 -->
866      <bezel name="lamp56" element="Lamp_White"><bounds x="495" y="420" width="8" height="8" /></bezel>   <!-- U4 11 -->
867      <bezel name="lamp57" element="Lamp_White"><bounds x="510" y="420" width="8" height="8" /></bezel>   <!-- U4 12 -->
868      <bezel name="lamp58" element="Lamp_White"><bounds x="525" y="420" width="8" height="8" /></bezel>   <!-- U4 13 -->
869      <bezel name="lamp59" element="Lamp_White"><bounds x="540" y="420" width="8" height="8" /></bezel>   <!-- U4 14 -->
870
871
872      <bezel element="Text_Solenoids"><bounds x="382" y="437" width="100" height="11" /></bezel>
873      <bezel name="solenoid0"  element="Solenoid_PullDown"><bounds x="330" y="452" width="9" height="19" /></bezel>
874      <bezel name="solenoid1"  element="Solenoid_PullDown"><bounds x="345" y="452" width="9" height="19" /></bezel>
875      <bezel name="solenoid2"  element="Solenoid_PullDown"><bounds x="360" y="452" width="9" height="19" /></bezel>
876      <bezel name="solenoid3"  element="Solenoid_PullDown"><bounds x="375" y="452" width="9" height="19" /></bezel>
877      <bezel name="solenoid4"  element="Solenoid_PullDown"><bounds x="390" y="452" width="9" height="19" /></bezel>
878      <bezel name="solenoid5"  element="Solenoid_PullDown"><bounds x="405" y="452" width="9" height="19" /></bezel>
879      <bezel name="solenoid6"  element="Solenoid_PullDown"><bounds x="420" y="452" width="9" height="19" /></bezel>
880      <bezel name="solenoid7"  element="Solenoid_PullDown"><bounds x="435" y="452" width="9" height="19" /></bezel>
881      <bezel name="solenoid8"  element="Solenoid_PullDown"><bounds x="450" y="452" width="9" height="19" /></bezel>
882      <bezel name="solenoid9"  element="Solenoid_PullDown"><bounds x="465" y="452" width="9" height="19" /></bezel>
883      <bezel name="solenoid10" element="Solenoid_PullDown"><bounds x="480" y="452" width="9" height="19" /></bezel>
884      <bezel name="solenoid11" element="Solenoid_PullDown"><bounds x="495" y="452" width="9" height="19" /></bezel>
885      <bezel name="solenoid12" element="Solenoid_PullDown"><bounds x="510" y="452" width="9" height="19" /></bezel>
886      <bezel name="solenoid13" element="Solenoid_PullDown"><bounds x="525" y="452" width="9" height="19" /></bezel>
887      <bezel name="solenoid14" element="Solenoid_PullDown"><bounds x="540" y="452" width="9" height="19" /></bezel>
888
889      <bezel element="Text_Coils"><bounds x="572" y="437" width="50" height="11" /></bezel>
890      <bezel name="solenoid16" element="Coil_PullDown"><bounds x="570" y="459" width="09" height="12" /></bezel>
891      <bezel name="solenoid17" element="Coil_PullDown"><bounds x="585" y="459" width="09" height="12" /></bezel>
892      <bezel name="solenoid18" element="Coil_PullDown"><bounds x="600" y="459" width="09" height="12" /></bezel>
893      <bezel name="solenoid19" element="Coil_PullDown"><bounds x="615" y="459" width="09" height="12" /></bezel>
894
895
896
897      <!-- Cabinet Switches -->
898      <bezel element="Text_Service">                                       <bounds x="485" y="342" width="50" height="10" /></bezel>
899      <bezel element="Switch_Push-Button" inputtag="TEST" inputmask="0x01"><bounds x="495" y="331" width="20" height="10" /></bezel>
900      <bezel element="Key_9">                                              <bounds x="516" y="330" width="10" height="10" /></bezel>
901
902      <bezel element="Text_Slam">                                     <bounds x="430" y="342" width="50" height="10" /></bezel>
903      <bezel element="Switch_SlamTilt" inputtag="X1" inputmask="0x80"><bounds x="434" y="331" width="25" height="08" /></bezel>
904      <bezel element="Key_Equals">                                    <bounds x="461" y="330" width="10" height="10" /></bezel>
905
906      <bezel element="Text_Tilt">                                 <bounds x="380" y="342" width="50" height="10" /></bezel>
907      <bezel element="Switch_Tilt" inputtag="X0" inputmask="0x40"><bounds x="390" y="324" width="17" height="17" /></bezel>
908      <bezel element="Key_T">                                     <bounds x="411" y="330" width="10" height="10" /></bezel>
909
910
911      <!-- Misc Solenoids -->
912      <bezel name="solenoid5"  element="Solenoid_Knocker"><bounds x="336" y="321" width="09" height="22" /></bezel>
913      <bezel element="Text_Knocker">   <!-- Knocker -->   <bounds x="322" y="342" width="40" height="10" /></bezel>
914
915
916      <!-- Misc Lamps -->
917      <bezel name="lamp55" element="Credit_Indicator"><bounds x="23" y="456" width="70" height="21" /></bezel>   <!-- Credit Indicator -->
918
919      <bezel name="lamp52" element="Lamp_White_50k"><bounds x="009" y="322" width="09" height="09" /></bezel>      <!-- 50,000 Outlane Left -->
920      <bezel name="lamp37" element="Lamp_White_50k"><bounds x="301" y="322" width="09" height="09" /></bezel>      <!-- 50,000 Outlane Right -->
921      <!-- Bonus End of Ball Lamps -->
922      <bezel name="lamp0"  element="Lamp_White_1k"> <bounds x="155" y="413" width="09" height="09" /></bezel>      <!-- Bonus 1000 -->
923      <bezel name="lamp15" element="Lamp_White_2k"> <bounds x="155" y="400" width="09" height="09" /></bezel>      <!-- Bonus 2000 -->
924      <bezel name="lamp30" element="Lamp_White_3k"> <bounds x="155" y="387" width="09" height="09" /></bezel>      <!-- Bonus 3000 -->
925      <bezel name="lamp45" element="Lamp_White_4k"> <bounds x="155" y="374" width="09" height="09" /></bezel>      <!-- Bonus 4000 -->
926      <bezel name="lamp1"  element="Lamp_White_5k"> <bounds x="155" y="361" width="09" height="09" /></bezel>      <!-- Bonus 5000 -->
927      <bezel name="lamp16" element="Lamp_White_6k"> <bounds x="155" y="348" width="09" height="09" /></bezel>      <!-- Bonus 6000 -->
928      <bezel name="lamp31" element="Lamp_White_7k"> <bounds x="155" y="335" width="09" height="09" /></bezel>      <!-- Bonus 7000 -->
929      <bezel name="lamp46" element="Lamp_White_8k"> <bounds x="155" y="322" width="09" height="09" /></bezel>      <!-- Bonus 8000 -->
930      <bezel name="lamp2"  element="Lamp_White_9k"> <bounds x="155" y="309" width="09" height="09" /></bezel>      <!-- Bonus 9000 -->
931      <bezel name="lamp17" element="Lamp_White_10k"><bounds x="140" y="292" width="12" height="12" /></bezel>      <!-- Bonus 10000 -->
932      <bezel name="lamp32" element="Lamp_White_20k"><bounds x="167" y="292" width="12" height="12" /></bezel>      <!-- Bonus 20000 -->
933      <!-- Bonus Multiplier Lamps -->
934      <bezel name="lamp56" element="Lamp_Green_Arrow_04_2x"> <bounds x="111" y="317" width="20" height="12.5" /></bezel>      <!-- 2X Bonus -->
935      <bezel name="lamp41" element="Lamp_Yellow_Arrow_04_3x"><bounds x="111" y="337" width="20" height="12.5" /></bezel>      <!-- 3X Bonus -->
936      <bezel name="lamp26" element="Lamp_White_Arrow_08_5x"> <bounds x="188" y="317" width="20" height="12.5" /></bezel>      <!-- 5X Bonus -->
937      <bezel name="lamp40" element="Lamp_Amber_Arrow_08">    <bounds x="188" y="337" width="20" height="12.5" /></bezel>      <!-- Extra Ball -->
938
939      <!-- Saucer Lamps -->
940      <bezel name="lamp24" element="Lamp_White_Arrow_Up_5x"> <bounds x="154" y="102" width="11" height="22" /></bezel>   <!-- 5X Bonus Potential -->
941      <bezel name="lamp39" element="Lamp_Yellow_Arrow_Up_3x"><bounds x="154" y="128" width="11" height="22" /></bezel>   <!-- 3X Bonus Potential -->
942      <bezel name="lamp54" element="Lamp_Green_Arrow_Up_2x"> <bounds x="154" y="154" width="11" height="22" /></bezel>   <!-- 2X Bonus Potential -->
943      <bezel               element="Lamp_White_Arrow_Up_3k"> <bounds x="154" y="180" width="11" height="22" /></bezel>   <!-- Upper 3000 -->
944
945      <!-- "A" & "B" Potential Lamps -->
946      <bezel name="lamp5"  element="Lamp_White_1k"><bounds x="095" y="265" width="10" height="10" /></bezel>      <!-- Upper 1000 -->
947      <bezel name="lamp20" element="Lamp_White_2k"><bounds x="115" y="265" width="10" height="10" /></bezel>      <!-- Upper 2000 -->
948      <bezel name="lamp35" element="Lamp_White_3k"><bounds x="135" y="265" width="10" height="10" /></bezel>      <!-- Upper 3000 -->
949      <bezel name="lamp50" element="Lamp_White_4k"><bounds x="155" y="265" width="10" height="10" /></bezel>      <!-- Upper 4000 -->
950      <bezel name="lamp6"  element="Lamp_White_5k"><bounds x="175" y="265" width="10" height="10" /></bezel>      <!-- Upper 5000 -->
951      <bezel name="lamp21" element="Lamp_Amber">   <bounds x="195" y="265" width="10" height="10" /></bezel>      <!-- Extra Ball Potential -->
952      <bezel name="lamp36" element="Lamp_Red">     <bounds x="215" y="265" width="10" height="10" /></bezel>      <!-- Special Potential -->
953
954      <!-- Drop Target Lamps -->
955      <bezel name="lamp47" element="Lamp_Red"><bounds x="153" y="225" width="14" height="14" /></bezel>         <!-- Special Potential -->
956
957      <!-- Outhole -->
958      <bezel name="solenoid6"  element="Solenoid_Outhole">                        <bounds x="150" y="455" width="58" height="22" /></bezel>
959      <bezel element="Switch_RollOn_WireForm_Left" inputtag="X0" inputmask="0x80"><bounds x="163" y="453" width="20" height="16" /></bezel>
960      <bezel element="Key_BSpace">                                                <bounds x="185" y="455" width="15" height="14" /></bezel>
961
962
963      <!-- Pop Bumper Left Upper -->
964      <bezel name="solenoid8"  element="Solenoid_Bumper_Yellow_Star">           <bounds x="084" y="095" width="80" height="80" /></bezel>
965      <bezel element="Switch_Bumper_Yellow_Star" inputtag="X4" inputmask="0x80"><bounds x="084" y="095" width="80" height="80" /></bezel>
966      <bezel element="Lamp_Bumper_Silver_100">                                  <bounds x="084" y="095" width="80" height="80" /></bezel>
967      <bezel element="Key_Z">                                                   <bounds x="119" y="144" width="09" height="09" /></bezel>
968
969      <!-- Pop Bumper Right Upper -->
970      <bezel name="solenoid9"  element="Solenoid_Bumper_Yellow_Star">           <bounds x="157" y="095" width="80" height="80" /></bezel>
971      <bezel element="Switch_Bumper_Yellow_Star" inputtag="X4" inputmask="0x40"><bounds x="157" y="095" width="80" height="80" /></bezel>
972      <bezel element="Lamp_Bumper_Silver_100">                                  <bounds x="157" y="095" width="80" height="80" /></bezel>
973      <bezel element="Key_X">                                                   <bounds x="191" y="144" width="09" height="09" /></bezel>
974
975      <!-- Pop Bumper Left Bottom -->
976      <bezel name="solenoid7"  element="Solenoid_Bumper_Red_Star">           <bounds x="039" y="136" width="80" height="80" /></bezel>
977      <bezel element="Switch_Bumper_Red_Star" inputtag="X4" inputmask="0x20"><bounds x="039" y="136" width="80" height="80" /></bezel>
978      <bezel name="lamp53" element="Lamp_Bumper_Silver_1000">                <bounds x="039" y="136" width="80" height="80" /></bezel>
979      <bezel element="Key_C">                                                <bounds x="073" y="140" width="09" height="09" /></bezel>
980
981      <!-- Pop Bumper Right Bottom -->
982      <bezel name="solenoid10" element="Solenoid_Bumper_Red_Star">           <bounds x="202" y="136" width="80" height="80" /></bezel>
983      <bezel element="Switch_Bumper_Red_Star" inputtag="X4" inputmask="0x10"><bounds x="202" y="136" width="80" height="80" /></bezel>
984      <bezel name="lamp38" element="Lamp_Bumper_Silver_1000">                <bounds x="202" y="136" width="80" height="80" /></bezel>
985      <bezel element="Key_V">                                                <bounds x="236" y="140" width="09" height="09" /></bezel>
986
987      <!-- Slingshot Left -->
988      <bezel name="solenoid11" element="Solenoid_SlingShot_Left">          <bounds x="035" y="320" width="69" height="80" /></bezel>
989      <bezel element="Switch_Leaf_Vertical" inputtag="X4" inputmask="0x08"><bounds x="060" y="384" width="08" height="09" /></bezel>
990      <bezel element="Key_B">                                              <bounds x="060" y="375" width="09" height="09" /></bezel>
991
992      <!-- Slingshot Right -->
993      <bezel name="solenoid13" element="Solenoid_SlingShot_Right">         <bounds x="221" y="320" width="69" height="80" /></bezel>
994      <bezel element="Switch_Leaf_Vertical" inputtag="X4" inputmask="0x04"><bounds x="257" y="384" width="08" height="09" /></bezel>
995      <bezel element="Key_N">                                              <bounds x="257" y="375" width="09" height="09" /></bezel>
996
997
998      <!-- Saucer -->
999      <bezel name="solenoid0"  element="Solenoid_Saucer_Large">           <bounds x="141" y="40" width="35" height="35" /></bezel>
1000      <bezel element="Switch_Saucer_Large" inputtag="X3" inputmask="0x80"><bounds x="141" y="40" width="35" height="35" /></bezel>
1001      <bezel element="Key_Q">                                             <bounds x="155" y="28" width="09" height="09" /></bezel>
1002
1003
1004      <!-- Drop Targets Leftside -->
1005      <bezel name="solenoid12" element="Solenoid_DropTarget_Wide">    <bounds x="093" y="184" width="15" height="07" /></bezel>
1006      <bezel element="DropTarget_Wide" inputtag="X2" inputmask="0x80"><bounds x="093" y="184" width="15" height="07" /></bezel>
1007      <bezel element="Key_A">                                         <bounds x="108" y="188" width="09" height="09" /></bezel>
1008      <bezel name="solenoid12" element="Solenoid_DropTarget_Wide">    <bounds x="078" y="195" width="15" height="07" /></bezel>
1009      <bezel element="DropTarget_Wide" inputtag="X2" inputmask="0x40"><bounds x="078" y="195" width="15" height="07" /></bezel>
1010      <bezel element="Key_S">                                         <bounds x="093" y="199" width="09" height="09" /></bezel>
1011      <bezel name="solenoid12" element="Solenoid_DropTarget_Wide">    <bounds x="063" y="206" width="15" height="07" /></bezel>
1012      <bezel element="DropTarget_Wide" inputtag="X2" inputmask="0x20"><bounds x="063" y="206" width="15" height="07" /></bezel>
1013      <bezel element="Key_D">                                         <bounds x="078" y="210" width="09" height="09" /></bezel>
1014      <bezel name="solenoid12" element="Solenoid_DropTarget_Wide">    <bounds x="048" y="217" width="15" height="07" /></bezel>
1015      <bezel element="DropTarget_Wide" inputtag="X2" inputmask="0x10"><bounds x="048" y="217" width="15" height="07" /></bezel>
1016      <bezel element="Key_F">                                         <bounds x="063" y="221" width="09" height="09" /></bezel>
1017
1018      <!-- Drop Targets Rightside -->
1019      <bezel name="solenoid14" element="Solenoid_DropTarget_Wide">    <bounds x="213" y="184" width="15" height="07" /></bezel>
1020      <bezel element="DropTarget_Wide" inputtag="X2" inputmask="0x08"><bounds x="213" y="184" width="15" height="07" /></bezel>
1021      <bezel element="Key_G">                                         <bounds x="205" y="188" width="09" height="09" /></bezel>
1022      <bezel name="solenoid14" element="Solenoid_DropTarget_Wide">    <bounds x="228" y="195" width="15" height="07" /></bezel>
1023      <bezel element="DropTarget_Wide" inputtag="X2" inputmask="0x04"><bounds x="228" y="195" width="15" height="07" /></bezel>
1024      <bezel element="Key_H">                                         <bounds x="220" y="199" width="09" height="09" /></bezel>
1025      <bezel name="solenoid14" element="Solenoid_DropTarget_Wide">    <bounds x="243" y="206" width="15" height="07" /></bezel>
1026      <bezel element="DropTarget_Wide" inputtag="X2" inputmask="0x02"><bounds x="243" y="206" width="15" height="07" /></bezel>
1027      <bezel element="Key_J">                                         <bounds x="235" y="210" width="09" height="09" /></bezel>
1028      <bezel name="solenoid14" element="Solenoid_DropTarget_Wide">    <bounds x="258" y="217" width="15" height="07" /></bezel>
1029      <bezel element="DropTarget_Wide" inputtag="X2" inputmask="0x01"><bounds x="258" y="217" width="15" height="07" /></bezel>
1030      <bezel element="Key_K">                                         <bounds x="250" y="221" width="09" height="09" /></bezel>
1031
1032      <!-- Drop Target Area Rebound switches -->
1033      <bezel element="Switch_Leaf_Vertical" inputtag="X3" inputmask="0x04"><bounds x="252" y="190" width="08" height="09" /></bezel>
1034      <bezel element="Key_U">                                              <bounds x="264" y="190" width="09" height="09" /></bezel>
1035      <bezel element="Switch_Leaf_Vertical" inputtag="X3" inputmask="0x04"><bounds x="061" y="190" width="08" height="09" /></bezel>
1036      <bezel element="Key_U">                                              <bounds x="050" y="190" width="09" height="09" /></bezel>
1037
1038
1039      <!-- A & B Upper Lanes -->
1040      <bezel name="lamp48" element="Lamp_White_A">                                      <bounds x="098" y="033" width="14" height="14" /></bezel>
1041      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X3" inputmask="0x40"><bounds x="100" y="060" width="09" height="27" /></bezel>
1042      <bezel element="Key_W">                                                           <bounds x="100" y="090" width="09" height="09" /></bezel>
1043      <bezel name="lamp33" element="Lamp_White_B">                                      <bounds x="206" y="033" width="14" height="14" /></bezel>
1044      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X3" inputmask="0x20"><bounds x="208" y="060" width="09" height="27" /></bezel>
1045      <bezel element="Key_E">                                                           <bounds x="208" y="090" width="09" height="09" /></bezel>
1046
1047      <!-- A & B Side Lanes -->
1048      <bezel name="lamp48" element="Lamp_White_Arrow_11_A">   <!-- 11 o clock -->       <bounds x="020" y="240" width="12.5" height="20" /></bezel>
1049      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X3" inputmask="0x10"><bounds x="009" y="150" width="09" height="27" /></bezel>
1050      <bezel element="Key_R">                                                           <bounds x="009" y="180" width="09" height="09" /></bezel>
1051      <bezel name="lamp33" element="Lamp_White_Arrow_01_B">   <!-- 1 o clock -->        <bounds x="286" y="240" width="12.5" height="20" /></bezel>
1052      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X3" inputmask="0x08"><bounds x="301" y="150" width="09" height="27" /></bezel>
1053      <bezel element="Key_Y">                                                           <bounds x="301" y="180" width="09" height="09" /></bezel>
1054
1055
1056      <!-- Outlane switches / lamps -->
1057      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X4" inputmask="0x02"><bounds x="009" y="346" width="09" height="27" /></bezel>
1058      <bezel element="Key_M">                                                           <bounds x="009" y="376" width="09" height="09" /></bezel>
1059      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X4" inputmask="0x01"><bounds x="301" y="346" width="09" height="27" /></bezel>
1060      <bezel element="Key_Comma">                                                       <bounds x="301" y="376" width="09" height="09" /></bezel>
1061
1062      <!-- Flipper Return Lane switches -->
1063      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X3" inputmask="0x02"><bounds x="030" y="348" width="09" height="27" /></bezel>
1064      <bezel element="Key_I">                                                           <bounds x="030" y="378" width="09" height="09" /></bezel>
1065      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X3" inputmask="0x01"><bounds x="280" y="348" width="09" height="27" /></bezel>
1066      <bezel element="Key_O">                                                           <bounds x="280" y="378" width="09" height="09" /></bezel>
1067
1068   </view>
1069
1070</mamelayout>
trunk/src/mame/layout/by17_pwerplay.lay
r0r249894
1<!-- Pinball Machine, Bally ~ PowerPlay -->
2<!-- [Quench] September 2015 -->
3
4
5<!-- Any state="9" items are not displayed and are only used for object alignment -->
6
7<mamelayout version="2">
8
9   <element name="Title_PowerPlay"><text string="PowerPlay"><color red="1.00" green="0.0" blue="0.5" /></text></element>
10
11
12
13<!-- Switches -->
14
15   <element name="Switch_SlamTilt">
16      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="00" width="25" height="01" /></rect>
17      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="08" width="13" height="01.5" /></rect>
18      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="01" width="04" height="02" /></rect>
19      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="06" width="04" height="02" /></rect>
20
21      <rect state="0"><color red="0.70" green="0.70" blue="0.70" /><bounds x="19" y="01" width="06" height="04" /></rect>
22      <rect state="1"><color red="0.70" green="0.70" blue="0.70" /><bounds x="19" y="04" width="06" height="04" /></rect>
23
24      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="00" width="08" height="01" /></rect>
25      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="08" y="01" width="08" height="01" /></rect>
26      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="16" y="02" width="09" height="01" /></rect>
27
28
29      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="08"  width="13" height="01.5" /></rect>
30      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="03"  width="04" height="02" /></rect>
31      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="06"  width="04" height="02" /></rect>
32   </element>
33
34   <element name="Switch_Tilt">
35      <rect          ><color red="0.80" green="0.80" blue="0.00" /><bounds x="00" y="00" width="17" height="17" /></rect>
36      <disk          ><color red="0.00" green="0.00" blue="0.00" /><bounds x="01" y="01" width="15" height="15" /></disk>
37      <disk state="0"><color red="0.50" green="0.50" blue="0.50" /><bounds x="04" y="04" width="09" height="09" /></disk>
38      <disk state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="07" width="02" height="02" /></disk>
39
40      <disk state="1"><color red="0.50" green="0.50" blue="0.50" /><bounds x="07" y="04" width="09" height="09" /></disk>
41      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="11" y="07" width="02" height="02" /></disk>
42   </element>
43
44
45   <element name="Switch_Leaf_Vertical">
46      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="0" y="00" width="01"   height="06" /></rect>
47      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="8" y="00" width="01.5" height="06" /></rect>
48      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="1" y="01" width="02"   height="04" /></rect>
49      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="6" y="01" width="02"   height="04" /></rect>
50
51      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="1.5" y="00" width="01" height="06" /></rect>
52      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="6.5" y="00" width="01" height="06" /></rect>
53      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="2"   y="01" width="02" height="04" /></rect>
54      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="4.5" y="01" width="02" height="04" /></rect>
55   </element>
56
57   <element name="Switch_RollOn_WireForm_Left">
58      <text string=">" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="8" y="0" width="11"  height="11"  /></text>
59      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="0.1" height="04"  /></rect>
60      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="09"  height="0.1" /></rect>
61      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="8" width="09"  height="0.1" /></rect>
62      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="3" y="6" width="08"  height="0.1" /></rect>
63      <text string=">" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="8" y="0" width="11"  height="11"  /></text>
64      <rect            state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="0.1" height="04"  /></rect>
65      <rect            state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="09"  height="0.1" /></rect>
66      <rect            state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="8" width="09"  height="0.1" /></rect>
67   </element>
68
69   <element name="Switch_RollOver_WireForm_Vertical">
70      <text string="/\" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
71      <text string="\/" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="17" width="07"  height="10" /></text>
72      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
73      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
74      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="3" y="07" width="0.1" height="13" /></rect>
75      <text string="/\" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
76      <text string="\/" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="17" width="07"  height="10" /></text>
77      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
78      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
79   </element>
80
81   <element name="Switch_Target_Red_Forward" defstate="0">
82      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="00" width="10" height="01" /></rect>
83      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="00" width="01" height="05" /></rect>
84      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="16" y="00" width="01" height="05" /></rect>
85
86      <disk state="0"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="05" width="24" height="06" /></disk>
87      <disk state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="02" width="24" height="06" /></disk>
88   </element>
89
90   <element name="Switch_RollOver_Button">
91      <text string="*" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="-10" y="-6" width="35" height="35" /></text>
92      <text string="*" state="1"><color red="0.00" green="0.00" blue="0.00" /><bounds x="-10" y="-6" width="35" height="35" /></text>
93   </element>
94
95   <element name="Lamp_RollOver_Button" defstate="0">
96      <disk state="0"><color red="0.15" green="0.04" blue="0.00" /><bounds x="0" y="0" width="15" height="15" /></disk>
97      <disk state="1"><color red="1.00" green="0.30" blue="0.00" /><bounds x="0" y="0" width="15" height="15" /></disk>
98   </element>
99
100   <element name="Lamp_RollOver_Button_On">
101      <disk><color red="1.00" green="0.30" blue="0.00" /><bounds x="0" y="0" width="15" height="15" /></disk>
102   </element>
103
104
105   <element name="Switch_Push-Button" defstate="0">
106      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="04" width="16" height="01" /></rect>
107      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="00" width="01" height="04" /></rect>
108      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="17" y="00" width="01" height="04" /></rect>
109      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="00" width="05" height="01" /></rect>
110      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="08.5" width="16" height="01" /></rect>
111      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04.5" width="01" height="04" /></rect>
112      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="17" y="04.5" width="01" height="04" /></rect>
113      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04.5" width="05" height="01" /></rect>
114      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="12" width="09" height="01" /></rect>
115      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="21" y="12" width="09" height="01" /></rect>
116      <disk          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="10" width="06" height="06" /></disk>
117      <disk          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="10" width="06" height="06" /></disk>
118   </element>
119
120
121
122   <element name="Key_Z">     <text string="Z"><color red="1.00" green="0.66" blue="0.66" /></text></element>
123   <element name="Key_X">     <text string="X"><color red="1.00" green="0.66" blue="0.66" /></text></element>
124   <element name="Key_C">     <text string="C"><color red="1.00" green="0.66" blue="0.66" /></text></element>
125   <element name="Key_V">     <text string="V"><color red="1.00" green="0.66" blue="0.66" /></text></element>
126   <element name="Key_B">     <text string="B"><color red="1.00" green="0.66" blue="0.66" /></text></element>
127   <element name="Key_N">     <text string="N"><color red="1.00" green="0.66" blue="0.66" /></text></element>
128   <element name="Key_M">     <text string="M"><color red="1.00" green="0.66" blue="0.66" /></text></element>
129   <element name="Key_Comma"> <text string=","><color red="1.00" green="0.66" blue="0.66" /></text></element>
130   <element name="Key_Dot">   <text string="."><color red="1.00" green="0.66" blue="0.66" /></text></element>
131   <element name="Key_FSlash"><text string="/"><color red="1.00" green="0.66" blue="0.66" /></text></element>
132
133   <element name="Key_A">     <text string="A"><color red="1.00" green="0.66" blue="0.66" /></text></element>
134   <element name="Key_S">     <text string="S"><color red="1.00" green="0.66" blue="0.66" /></text></element>
135   <element name="Key_D">     <text string="D"><color red="1.00" green="0.66" blue="0.66" /></text></element>
136   <element name="Key_F">     <text string="F"><color red="1.00" green="0.66" blue="0.66" /></text></element>
137   <element name="Key_G">     <text string="G"><color red="1.00" green="0.66" blue="0.66" /></text></element>
138   <element name="Key_H">     <text string="H"><color red="1.00" green="0.66" blue="0.66" /></text></element>
139   <element name="Key_J">     <text string="J"><color red="1.00" green="0.66" blue="0.66" /></text></element>
140   <element name="Key_K">     <text string="K"><color red="1.00" green="0.66" blue="0.66" /></text></element>
141   <element name="Key_L">     <text string="L"><color red="1.00" green="0.66" blue="0.66" /></text></element>
142   <element name="Key_SColon"><text string=";"><color red="1.00" green="0.66" blue="0.66" /></text></element>
143   <element name="Key_Quote"> <text string="'"><color red="1.00" green="0.66" blue="0.66" /></text></element>
144   <element name="Key_Enter">
145      <text string="&#60;"><color red="1.00" green="0.66" blue="0.66" /><bounds x="00" y="00" width="07"  height="10" /></text>
146      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="00" y="00" width="07"  height="10" /></text>
147      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="02" y="00" width="07"  height="10" /></text>
148      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="04" y="00" width="07"  height="10" /></text>
149      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="06" y="00" width="07"  height="10" /></text>
150      <disk           >    <color red="1.00" green="0.66" blue="0.66" /><bounds x="10" y="02" width="0.5" height="03" /></disk>
151   </element>
152
153   <element name="Key_Q">     <text string="Q"><color red="1.00" green="0.66" blue="0.66" /></text></element>
154   <element name="Key_W">     <text string="W"><color red="1.00" green="0.66" blue="0.66" /></text></element>
155   <element name="Key_E">     <text string="E"><color red="1.00" green="0.66" blue="0.66" /></text></element>
156   <element name="Key_R">     <text string="R"><color red="1.00" green="0.66" blue="0.66" /></text></element>
157   <element name="Key_T">     <text string="T"><color red="1.00" green="0.66" blue="0.66" /></text></element>
158   <element name="Key_Y">     <text string="Y"><color red="1.00" green="0.66" blue="0.66" /></text></element>
159   <element name="Key_U">     <text string="U"><color red="1.00" green="0.66" blue="0.66" /></text></element>
160   <element name="Key_I">     <text string="I"><color red="1.00" green="0.66" blue="0.66" /></text></element>
161   <element name="Key_O">     <text string="O"><color red="1.00" green="0.66" blue="0.66" /></text></element>
162   <element name="Key_P">     <text string="P"><color red="1.00" green="0.66" blue="0.66" /></text></element>
163   <element name="Key_OBrkt"> <text string="["><color red="1.00" green="0.66" blue="0.66" /></text></element>
164   <element name="Key_CBrkt"> <text string="]"><color red="1.00" green="0.66" blue="0.66" /></text></element>
165   <element name="Key_BSlash"><text string="\"><color red="1.00" green="0.66" blue="0.66" /></text></element>
166
167   <element name="Key_1">     <text string="1"><color red="1.00" green="0.66" blue="0.66" /></text></element>
168   <element name="Key_5">     <text string="5"><color red="1.00" green="0.66" blue="0.66" /></text></element>
169   <element name="Key_6">     <text string="6"><color red="1.00" green="0.66" blue="0.66" /></text></element>
170   <element name="Key_7">     <text string="7"><color red="1.00" green="0.66" blue="0.66" /></text></element>
171   <element name="Key_9">     <text string="9"><color red="1.00" green="0.66" blue="0.66" /></text></element>
172   <element name="Key_0">     <text string="0"><color red="1.00" green="0.66" blue="0.66" /></text></element>
173   <element name="Key_BSpace">
174      <text string="&#60;"><color red="1.00" green="0.66" blue="0.66" /><bounds x="0" y="00" width="07" height="10" /></text>
175      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="0" y="00" width="07" height="10" /></text>
176      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="2" y="00" width="07" height="10" /></text>
177      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="4" y="00" width="07" height="10" /></text>
178      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="6" y="00" width="07" height="10" /></text>
179   </element>
180   <element name="Key_Equals"><text string="="><color red="1.00" green="0.66" blue="0.66" /></text></element>
181
182
183
184   <element name="Solenoid_DropTarget_Tall" defstate="0">
185      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="00" width="07" height="15" /></rect>
186      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="04" height="12" /></rect>
187   </element>
188   <element name="DropTarget_Tall" defstate="0">
189      <rect state="1"><color red="0.25" green="0.25" blue="0.25" /><bounds x="01" y="01" width="04" height="12" /></rect>
190      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="04" height="12" /></rect>
191      <rect state="9"><color red="0.00" green="1.00" blue="0.00" /><bounds x="00" y="00" width="07" height="15" /></rect>
192   </element>
193
194
195<!-- Lamps -->
196
197   <element name="Lamp_White" defstate="0">
198      <disk state="0"><color red="0.15" green="0.15" blue="0.15" /></disk>
199      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
200   </element>
201   <element name="Lamp_Red" defstate="0">                              <!-- Usually for Specials -->
202      <disk state="0"><color red="0.15" green="0.00" blue="0.00" /></disk>
203      <disk state="1"><color red="1.00" green="0.00" blue="0.00" /></disk>
204   </element>
205   <element name="Lamp_Amber" defstate="0">                           <!-- Usually for Extra Ball-->
206      <disk state="0"><color red="0.15" green="0.06" blue="0.00" /></disk>
207      <disk state="1"><color red="1.00" green="0.40" blue="0.00" /></disk>
208   </element>
209
210
211   <element name="Lamp_P1">
212      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
213      <text string="1" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
214      <text string="1" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
215   </element>
216   <element name="Lamp_P2">
217      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
218      <text string="2" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
219      <text string="2" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
220   </element>
221   <element name="Lamp_P3">
222      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
223      <text string="3" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
224      <text string="3" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
225   </element>
226   <element name="Lamp_P4">
227      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
228      <text string="4" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
229      <text string="4" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
230   </element>
231
232   <element name="Lamp_1P">
233      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
234      <text string="1" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
235      <text string="1" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
236   </element>
237   <element name="Lamp_2P">
238      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
239      <text string="2" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
240      <text string="2" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
241   </element>
242   <element name="Lamp_3P">
243      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
244      <text string="3" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
245      <text string="3" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
246   </element>
247   <element name="Lamp_4P">
248      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
249      <text string="4" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
250      <text string="4" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
251   </element>
252
253
254   <element name="Lamp_2x" defstate="0">
255      <disk state="0"><color red="0.0" green="0.15" blue="0.0" /></disk>
256      <disk state="1"><color red="0.0" green="1.00" blue="0.0" /></disk>
257      <text string="2x"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
258   </element>
259   <element name="Lamp_3x" defstate="0">
260      <disk state="0"><color red="0.15" green="0.15" blue="0.0" /></disk>
261      <disk state="1"><color red="1.00" green="1.00" blue="0.0" /></disk>
262      <text string="3x"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
263   </element>
264   <element name="Lamp_5x" defstate="0">
265      <disk state="0"><color red="0.15" green="0.15" blue="0.15" /></disk>
266      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
267      <text string="5x"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
268   </element>
269
270
271   <element name="Lamp_White_1k">
272      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
273      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
274      <text string="1k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
275   </element>
276   <element name="Lamp_White_2k">
277      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
278      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
279      <text string="2k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
280   </element>
281   <element name="Lamp_White_3k">
282      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
283      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
284      <text string="3k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
285   </element>
286   <element name="Lamp_White_4k">
287      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
288      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
289      <text string="4k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
290   </element>
291   <element name="Lamp_White_5k">
292      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
293      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
294      <text string="5k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
295   </element>
296   <element name="Lamp_White_6k">
297      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
298      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
299      <text string="6k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
300   </element>
301   <element name="Lamp_White_7k">
302      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
303      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
304      <text string="7k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
305   </element>
306   <element name="Lamp_White_8k">
307      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
308      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
309      <text string="8k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
310   </element>
311   <element name="Lamp_White_9k">
312      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
313      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
314      <text string="9k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
315   </element>
316   <element name="Lamp_White_10k">
317      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
318      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
319      <text string="10k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
320   </element>
321   <element name="Lamp_White_12k">
322      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
323      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
324      <text string="12k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
325   </element>
326   <element name="Lamp_White_15k">
327      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
328      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
329      <text string="15k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
330   </element>
331   <element name="Lamp_White_20k">
332      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
333      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
334      <text string="20k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
335   </element>
336
337
338   <element name="Credit_Indicator">
339      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="2.5" y="0" width="1.0" height="1.0" /></disk>
340      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="2.5" y="0" width="1.0" height="1.0" /></disk>
341      <text string="Credit Indicator"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="1.1" width="6.5" height="0.90" /></text>
342   </element>
343
344
345<!-- Backbox Indicators -->
346
347   <element name="Text_Credit"><text string="CREDIT"><color red="1.0" green="1.0" blue="1.0" /></text></element>
348   <element name="Text_Lamps"><text string="Lamps"><color red="1.0" green="1.0" blue="1.0" /></text></element>
349   <element name="Text_15"><text string="U1 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
350   <element name="Text_30"><text string="U2 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
351   <element name="Text_45"><text string="U3 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
352   <element name="Text_60"><text string="U4 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
353   <element name="Text_Solenoids"><text string="Momentary Solenoids"><color red="1.0" green="1.0" blue="1.0" /></text></element>
354   <element name="Text_Coils"><text string="Coils"><color red="1.0" green="1.0" blue="1.0" /></text></element>
355   <element name="Text_MPU_LED"><text string="MPU LED"><color red="1.0" green="1.0" blue="1.0" /></text></element>
356   <element name="Text_Activity"><text string="Activity Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
357   <element name="Text_Service"><text string="Service Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
358   <element name="Text_Slam"><text string="Slam Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
359   <element name="Text_Tilt"><text string="Tilt Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
360   <element name="Text_Knocker"><text string="Knocker"><color red="1.0" green="1.0" blue="1.0" /></text></element>
361
362
363   <element name="High_Score_To_Date" defstate="0">
364      <text string="HIGH SCORE TO DATE" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="1" /></text>
365      <text string="HIGH SCORE TO DATE" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="1" /></text>
366   </element>
367   <element name="Ball_In_Play" defstate="0">
368      <text string="BALL IN PLAY" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.1" y="0.1" width="1" height="0.8" /></text>
369      <text string="BALL IN PLAY" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0.1" y="0.1" width="1" height="0.8" /></text>
370   </element>
371   <element name="Match" defstate="0">
372      <text string="MATCH" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
373      <text string="MATCH" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
374   </element>
375   <element name="Game_Over" defstate="0">
376      <text string="GAME OVER" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
377      <text string="GAME OVER" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
378   </element>
379   <element name="Tilt" defstate="0">
380      <text string="TILT" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
381      <text string="TILT" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
382   </element>
383   <element name="Shoot_Again" defstate="0">
384      <text string="SAME PLAYER"  state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
385      <text string="SAME PLAYER"  state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
386      <text string="SHOOTS AGAIN" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.9" width="1" height="0.8" /></text>
387      <text string="SHOOTS AGAIN" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.9" width="1" height="0.8" /></text>
388   </element>
389
390
391   <element name="Digit" defstate="0">
392      <led7seg><color red="1.0" green="0.35" blue="0.0" /></led7seg>
393   </element>
394
395   <element name="LED_Green" defstate="1">
396      <disk state="0"><color red="0.0" green="0.25" blue="0.0" /></disk>
397      <disk state="1"><color red="0.0" green="1.00" blue="0.0" /></disk>
398   </element>
399
400
401
402<!-- Solenoids -->
403
404   <element name="Solenoid_PullDown">
405      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="3" y="0" width="03" height="09" /></rect>
406      <rect state="0"><color red="0.0" green="1.0" blue="1.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
407      <rect state="1"><color red="1.0" green="1.0" blue="0.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
408   </element>
409
410   <element name="Coil_PullDown">
411      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="8" y="0" width="02" height="01" /></rect>
412      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="6" y="1" width="02" height="01" /></rect>
413      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="4" y="2" width="02" height="01" /></rect>
414      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="2" y="3" width="02" height="01" /></rect>
415      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="4" width="02" height="01" /></rect>
416      <rect          ><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="5" width="02" height="02" /></rect>
417      <rect state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="4" width="10" height="01" /></rect>
418
419      <rect state="0"><color red="0.0" green="1.0" blue="1.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
420      <rect state="1"><color red="1.0" green="1.0" blue="0.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
421   </element>
422
423
424   <element name="Solenoid_Knocker" defstate="0">
425      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="03" y="14" width="03" height="08" /></rect>
426      <rect state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="03" y="00" width="03" height="04" /></rect>
427      <rect state="0"><color red="0.0" green="1.0" blue="1.0" /><bounds x="00" y="04" width="10" height="11" /></rect>
428      <rect state="1"><color red="1.0" green="1.0" blue="0.0" /><bounds x="00" y="04" width="10" height="11" /></rect>
429   </element>
430
431   <element name="Solenoid_Outhole" defstate="0">
432      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="17" y="00" width="05" height="16" /></text>
433      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="02" y="00" width="05" height="16" /></text>
434      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="18" y="00" width="05" height="16" /></text>
435      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="03" y="00" width="05" height="16" /></text>
436      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="19" y="00" width="05" height="16" /></text>
437      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="04" y="00" width="05" height="16" /></text>
438      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="20" y="00" width="05" height="16" /></text>
439      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="05" y="00" width="05" height="16" /></text>
440      <rect            state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="02" y="02" width="18" height="10" /></rect>
441      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="00" y="14" width="25" height="02" /></rect>
442      <text string="Outhole"    ><color red="1.0" green="1.0" blue="1.0" /><bounds x="30" y="12" width="28" height="9.5" /></text>
443   </element>
444
445   <element name="Solenoid_SlingShot_Left" defstate="0">
446      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="05" y="00" width="65"   height="80" /></text>
447      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="00" y="00" width="65"   height="80" /></text>
448      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="20" y="16" width="04"   height="60" /></rect>
449      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="20" y="76" width="24.5" height="04" /></rect>
450   </element>
451   <element name="Solenoid_SlingShot_Right" defstate="0">
452      <text string="/" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="-5"   y="00" width="65" height="80" /></text>
453      <text string="/" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="00"   y="00" width="65" height="80" /></text>
454      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="40"   y="16" width="04" height="60" /></rect>
455      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="19.5" y="76" width="24" height="04" /></rect>
456   </element>
457
458
459   <element name="Solenoid_Bumper_Red_Star" defstate="0">
460      <disk state="0"> <color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
461      <disk state="1"> <color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
462      <text string="*"><color red="1.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
463      <disk>           <color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
464   </element>
465   <element name="Switch_Bumper_Red_Star" defstate="0">
466      <text string="*" state="9"><color red="1.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
467      <disk            state="0"><color red="1.0" green="0.0" blue="0.0" /><bounds x="14" y="15" width="50" height="50" /></disk>
468      <disk            state="1"><color red="0.5" green="0.5" blue="0.5" /><bounds x="14" y="15" width="50" height="50" /></disk>
469   </element>
470   <element name="Lamp_Bumper_Red_1000" defstate="0">
471      <text string="*" state="9"><color red="0.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
472      <disk            state="0"><color red="0.7" green="0.7" blue="0.7" /><bounds x="18" y="18" width="44" height="44" /></disk>
473      <disk            state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
474      <text string="1000">       <color red="1.0" green="0.0" blue="0.0" /><bounds x="07" y="29" width="70" height="23" /></text>
475   </element>
476
477
478   <element name="Solenoid_Saucer" defstate="0">
479      <disk>          <color red="1.0" green="0.8" blue="0.5" /><bounds x="00" y="00" width="70" height="70" /></disk> <!-- 71 -->
480      <disk>          <color red="0.7" green="0.7" blue="0.7" /><bounds x="10" y="10" width="49" height="49" /></disk> <!-- 51 -->
481      <rect state="0"><color red="0.3" green="0.3" blue="0.3" /><bounds x="31" y="07" width="07" height="25" /></rect>
482      <rect state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="31" y="07" width="07" height="25" /></rect>
483      <disk>          <color red="0.0" green="0.0" blue="0.0" /><bounds x="27" y="40" width="15" height="15" /></disk>
484   </element>
485   <element name="Switch_Saucer" defstate="0">
486      <disk state="9"><color red="1.0" green="0.8" blue="0.5" /><bounds x="00" y="00" width="70" height="70" /></disk>
487      <disk state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="30" y="43" width="09" height="09" /></disk>
488      <disk state="1"><color red="0.0" green="0.0" blue="0.0" /><bounds x="30" y="43" width="09" height="09" /></disk>
489   </element>
490
491
492   <element name="Coil_Post_Up" defstate="0">
493      <disk state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="00" y="00" width="21" height="21" /></disk>
494   </element>
495   <element name="Solenoid_Post_Down" defstate="0">
496      <disk state="9"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="00" width="21" height="21" /></disk>
497      <disk state="1"><color red="0.50" green="0.10" blue="0.00" /><bounds x="01" y="01" width="19" height="19" /></disk>
498      <disk state="1"><color red="0.15" green="0.06" blue="0.00" /><bounds x="02" y="02" width="17" height="17" /></disk>
499      <rect state="1"><color red="0.50" green="0.10" blue="0.00" /><bounds x="10" y="02" width="01" height="17" /></rect>
500      <rect state="1"><color red="0.50" green="0.10" blue="0.00" /><bounds x="02" y="10" width="17" height="01" /></rect>
501      <disk state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="08" y="08" width="06" height="06" /></disk>
502   </element>
503   <element name="Lamp_Post" defstate="0">
504      <disk state="9"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="00" width="21" height="21" /></disk>
505      <disk          ><color red="0.50" green="0.10" blue="0.00" /><bounds x="01" y="01" width="19" height="19" /></disk>
506      <disk state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="02" y="02" width="17" height="17" /></disk>
507      <disk state="1"><color red="0.80" green="0.20" blue="0.00" /><bounds x="02" y="02" width="17" height="17" /></disk>
508      <rect          ><color red="0.50" green="0.10" blue="0.00" /><bounds x="10" y="02" width="01" height="17" /></rect>
509      <rect          ><color red="0.50" green="0.10" blue="0.00" /><bounds x="02" y="10" width="17" height="01" /></rect>
510   </element>
511
512
513<!-- Line colours -->
514
515   <element name="Draw_White" defstate="1">
516      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
517      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
518   </element>
519   <element name="Draw_Red" defstate="1">
520      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
521      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
522   </element>
523   <element name="Draw_Amber" defstate="1">
524      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
525      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
526   </element>
527
528   <element name="Canvas">
529      <rect>
530         <color red="0.0" green="0.0" blue="0.0" />
531         <bounds left="0" top="0" right="1" bottom="1" />
532      </rect>
533   </element>
534
535
536
537
538
539   <view name="PowerPlay Playfield">
540
541      <!-- Background -->
542      <backdrop element="Canvas"><bounds x="000" y="000" width="640" height="480" /></backdrop>
543     
544      <bezel element="Draw_White"><bounds x="000" y="000" width="640" height="001" /></bezel>
545      <bezel element="Draw_White"><bounds x="000" y="000" width="001" height="480" /></bezel>
546      <bezel element="Draw_White"><bounds x="640" y="000" width="001" height="480" /></bezel>
547      <bezel element="Draw_White"><bounds x="000" y="480" width="640" height="001" /></bezel>
548      <bezel element="Draw_White"><bounds x="320" y="000" width="001" height="480" /></bezel>
549      <bezel element="Draw_White"><bounds x="320" y="320" width="320" height="001" /></bezel>
550      <!--   <bezel element="Draw_White"><bounds x="159" y="000" width="001" height="480" /></bezel>   -->
551
552      <bezel element="Title_PowerPlay"><bounds x="430" y="18" width="105" height="30" /></bezel>
553
554
555      <!-- Backbox -->
556
557      <!-- MPU Board Power On Self Test LED -->
558      <bezel element="Text_MPU_LED">         <bounds x="609" y="342" width="30" height="10" /></bezel>
559      <bezel name="led0" element="LED_Green"><bounds x="618" y="328" width="10" height="10" /></bezel>
560
561      <!-- MPU Board Activity Switch -->
562      <bezel element="Text_Activity">                                      <bounds x="540" y="342" width="50" height="10" /></bezel>
563      <bezel element="Switch_Push-Button" inputtag="TEST" inputmask="0x02"><bounds x="550" y="331" width="20" height="10" /></bezel>
564      <bezel element="Key_0">                                              <bounds x="571" y="330" width="10" height="10" /></bezel>
565
566
567      <!-- Player 1 Score -->
568      <bezel name="lamp14" element="Lamp_P1"><bounds x="330" y="55" width="15" height="15" /></bezel>         <!-- Backbox ~ 1st Player Up -->
569      <bezel name="digit17" element="Digit"><bounds x="360" y="55" width="10" height="15" /></bezel>
570      <bezel name="digit16" element="Digit"><bounds x="374" y="55" width="10" height="15" /></bezel>
571      <bezel name="digit15" element="Digit"><bounds x="388" y="55" width="10" height="15" /></bezel>
572      <bezel name="digit14" element="Digit"><bounds x="402" y="55" width="10" height="15" /></bezel>
573      <bezel name="digit13" element="Digit"><bounds x="416" y="55" width="10" height="15" /></bezel>
574      <bezel name="digit12" element="Digit"><bounds x="430" y="55" width="10" height="15" /></bezel>
575      <bezel name="digit11" element="Digit"><bounds x="444" y="55" width="10" height="15" /></bezel>
576
577      <!-- Player 2 Score -->
578      <bezel name="lamp29" element="Lamp_P2"><bounds x="615" y="55" width="15" height="15" /></bezel>         <!-- Backbox ~ 2nd Player Up -->
579      <bezel name="digit27" element="Digit"><bounds x="506" y="55" width="10" height="15" /></bezel>
580      <bezel name="digit26" element="Digit"><bounds x="520" y="55" width="10" height="15" /></bezel>
581      <bezel name="digit25" element="Digit"><bounds x="534" y="55" width="10" height="15" /></bezel>
582      <bezel name="digit24" element="Digit"><bounds x="548" y="55" width="10" height="15" /></bezel>
583      <bezel name="digit23" element="Digit"><bounds x="562" y="55" width="10" height="15" /></bezel>
584      <bezel name="digit22" element="Digit"><bounds x="576" y="55" width="10" height="15" /></bezel>
585      <bezel name="digit21" element="Digit"><bounds x="590" y="55" width="10" height="15" /></bezel>
586
587      <!-- Player 3 Score -->
588      <bezel name="lamp44" element="Lamp_P3"><bounds x="330" y="250" width="15" height="15" /></bezel>      <!-- Backbox ~ 3rd Player Up -->
589      <bezel name="digit37" element="Digit"><bounds x="360" y="250" width="10" height="15" /></bezel>
590      <bezel name="digit36" element="Digit"><bounds x="374" y="250" width="10" height="15" /></bezel>
591      <bezel name="digit35" element="Digit"><bounds x="388" y="250" width="10" height="15" /></bezel>
592      <bezel name="digit34" element="Digit"><bounds x="402" y="250" width="10" height="15" /></bezel>
593      <bezel name="digit33" element="Digit"><bounds x="416" y="250" width="10" height="15" /></bezel>
594      <bezel name="digit32" element="Digit"><bounds x="430" y="250" width="10" height="15" /></bezel>
595      <bezel name="digit31" element="Digit"><bounds x="444" y="250" width="10" height="15" /></bezel>
596
597      <!-- Player 4 Score -->
598      <bezel name="lamp59" element="Lamp_P4"><bounds x="615" y="250" width="15" height="15" /></bezel>      <!-- Backbox ~ 4th Player Up -->
599      <bezel name="digit47" element="Digit"><bounds x="506" y="250" width="10" height="15" /></bezel>
600      <bezel name="digit46" element="Digit"><bounds x="520" y="250" width="10" height="15" /></bezel>
601      <bezel name="digit45" element="Digit"><bounds x="534" y="250" width="10" height="15" /></bezel>
602      <bezel name="digit44" element="Digit"><bounds x="548" y="250" width="10" height="15" /></bezel>
603      <bezel name="digit43" element="Digit"><bounds x="562" y="250" width="10" height="15" /></bezel>
604      <bezel name="digit42" element="Digit"><bounds x="576" y="250" width="10" height="15" /></bezel>
605      <bezel name="digit41" element="Digit"><bounds x="590" y="250" width="10" height="15" /></bezel>
606
607      <!-- Credits and Ball In Play / Match -->
608      <bezel element="Text_Credit"><bounds x="542" y="142" width="48" height="8" /></bezel>
609      <bezel name="lamp12"  element="Ball_In_Play"><bounds x="586" y="105" width="50" height="11" /></bezel>   <!-- Backbox ~ Ball In Play -->
610      <bezel name="lamp25"  element="Match"><bounds x="596" y="152" width="25" height="11" /></bezel>         <!-- Backbox ~ Match -->
611      <bezel name="digit55" element="Digit"><bounds x="554" y="125" width="10" height="15" /></bezel>
612      <bezel name="digit54" element="Digit"><bounds x="568" y="125" width="10" height="15" /></bezel>
613      <bezel name="digit52" element="Digit"><bounds x="596" y="125" width="10" height="15" /></bezel>
614      <bezel name="digit51" element="Digit"><bounds x="610" y="125" width="10" height="15" /></bezel>
615
616      <bezel name="lamp10" element="Shoot_Again"><bounds x="420" y="295" width="60" height="19" /></bezel>   <!-- Backbox ~ Same Player Shoots Again -->
617      <bezel name="lamp13" element="Lamp_1P"><bounds x="345" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 1 Player Game -->
618      <bezel name="lamp28" element="Lamp_2P"><bounds x="360" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 2 Player Game -->
619      <bezel name="lamp43" element="Lamp_3P"><bounds x="375" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 3 Player Game -->
620      <bezel name="lamp58" element="Lamp_4P"><bounds x="390" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 4 Player Game -->
621      <bezel name="lamp27" element="High_Score_To_Date"><bounds x="438" y="6" width="90" height="11" /></bezel>   <!-- Backbox ~ High Score To Date -->
622      <bezel name="lamp42" element="Game_Over"><bounds x="580" y="300" width="45" height="11" /></bezel>      <!-- Backbox ~ Game Over -->
623      <bezel name="lamp57" element="Tilt"><bounds x="480" y="297" width="50" height="16" /></bezel>         <!-- Backbox ~ Tilt -->
624
625
626
627      <bezel element="Text_Lamps"><bounds x="410" y="360" width="60" height="11" /></bezel>
628      <bezel element="Text_15"><bounds x="552" y="373" width="30" height="11" /></bezel>
629      <bezel element="Text_30"><bounds x="552" y="388" width="30" height="11" /></bezel>
630      <bezel element="Text_45"><bounds x="552" y="403" width="30" height="11" /></bezel>
631      <bezel element="Text_60"><bounds x="552" y="418" width="30" height="11" /></bezel>
632
633      <!-- Lamps controlled by U1 on Lamp Driver Board -->
634      <bezel name="lamp0"  element="Lamp_White"><bounds x="330" y="375" width="8" height="8" /></bezel>
635      <bezel name="lamp1"  element="Lamp_White"><bounds x="345" y="375" width="8" height="8" /></bezel>
636      <bezel name="lamp2"  element="Lamp_White"><bounds x="360" y="375" width="8" height="8" /></bezel>
637      <bezel name="lamp3"  element="Lamp_White"><bounds x="375" y="375" width="8" height="8" /></bezel>
638      <bezel name="lamp4"  element="Lamp_White"><bounds x="390" y="375" width="8" height="8" /></bezel>
639      <bezel name="lamp5"  element="Lamp_White"><bounds x="405" y="375" width="8" height="8" /></bezel>
640      <bezel name="lamp6"  element="Lamp_White"><bounds x="420" y="375" width="8" height="8" /></bezel>
641      <bezel name="lamp7"  element="Lamp_White"><bounds x="435" y="375" width="8" height="8" /></bezel>
642      <bezel name="lamp8"  element="Lamp_White"><bounds x="450" y="375" width="8" height="8" /></bezel>
643      <bezel name="lamp9"  element="Lamp_White"><bounds x="465" y="375" width="8" height="8" /></bezel>
644      <bezel name="lamp10" element="Lamp_White"><bounds x="480" y="375" width="8" height="8" /></bezel>
645      <bezel name="lamp11" element="Lamp_White"><bounds x="495" y="375" width="8" height="8" /></bezel>
646      <bezel name="lamp12" element="Lamp_White"><bounds x="510" y="375" width="8" height="8" /></bezel>
647      <bezel name="lamp13" element="Lamp_White"><bounds x="525" y="375" width="8" height="8" /></bezel>
648      <bezel name="lamp14" element="Lamp_White"><bounds x="540" y="375" width="8" height="8" /></bezel>
649
650      <!-- Lamps controlled by U2 on Lamp Driver Board -->
651      <bezel name="lamp15" element="Lamp_White"><bounds x="330" y="390" width="8" height="8" /></bezel>
652      <bezel name="lamp16" element="Lamp_White"><bounds x="345" y="390" width="8" height="8" /></bezel>
653      <bezel name="lamp17" element="Lamp_White"><bounds x="360" y="390" width="8" height="8" /></bezel>
654      <bezel name="lamp18" element="Lamp_White"><bounds x="375" y="390" width="8" height="8" /></bezel>
655      <bezel name="lamp19" element="Lamp_White"><bounds x="390" y="390" width="8" height="8" /></bezel>
656      <bezel name="lamp20" element="Lamp_White"><bounds x="405" y="390" width="8" height="8" /></bezel>
657      <bezel name="lamp21" element="Lamp_White"><bounds x="420" y="390" width="8" height="8" /></bezel>
658      <bezel name="lamp22" element="Lamp_White"><bounds x="435" y="390" width="8" height="8" /></bezel>
659      <bezel name="lamp23" element="Lamp_White"><bounds x="450" y="390" width="8" height="8" /></bezel>
660      <bezel name="lamp24" element="Lamp_White"><bounds x="465" y="390" width="8" height="8" /></bezel>
661      <bezel name="lamp25" element="Lamp_White"><bounds x="480" y="390" width="8" height="8" /></bezel>
662      <bezel name="lamp26" element="Lamp_White"><bounds x="495" y="390" width="8" height="8" /></bezel>
663      <bezel name="lamp27" element="Lamp_White"><bounds x="510" y="390" width="8" height="8" /></bezel>
664      <bezel name="lamp28" element="Lamp_White"><bounds x="525" y="390" width="8" height="8" /></bezel>
665      <bezel name="lamp29" element="Lamp_White"><bounds x="540" y="390" width="8" height="8" /></bezel>
666
667      <!-- Lamps controlled by U3 on Lamp Driver Board -->
668      <bezel name="lamp30" element="Lamp_White"><bounds x="330" y="405" width="8" height="8" /></bezel>
669      <bezel name="lamp31" element="Lamp_White"><bounds x="345" y="405" width="8" height="8" /></bezel>
670      <bezel name="lamp32" element="Lamp_White"><bounds x="360" y="405" width="8" height="8" /></bezel>
671      <bezel name="lamp33" element="Lamp_White"><bounds x="375" y="405" width="8" height="8" /></bezel>
672      <bezel name="lamp34" element="Lamp_White"><bounds x="390" y="405" width="8" height="8" /></bezel>
673      <bezel name="lamp35" element="Lamp_White"><bounds x="405" y="405" width="8" height="8" /></bezel>
674      <bezel name="lamp36" element="Lamp_White"><bounds x="420" y="405" width="8" height="8" /></bezel>
675      <bezel name="lamp37" element="Lamp_White"><bounds x="435" y="405" width="8" height="8" /></bezel>
676      <bezel name="lamp38" element="Lamp_White"><bounds x="450" y="405" width="8" height="8" /></bezel>
677      <bezel name="lamp39" element="Lamp_White"><bounds x="465" y="405" width="8" height="8" /></bezel>
678      <bezel name="lamp40" element="Lamp_White"><bounds x="480" y="405" width="8" height="8" /></bezel>
679      <bezel name="lamp41" element="Lamp_White"><bounds x="495" y="405" width="8" height="8" /></bezel>
680      <bezel name="lamp42" element="Lamp_White"><bounds x="510" y="405" width="8" height="8" /></bezel>
681      <bezel name="lamp43" element="Lamp_White"><bounds x="525" y="405" width="8" height="8" /></bezel>
682      <bezel name="lamp44" element="Lamp_White"><bounds x="540" y="405" width="8" height="8" /></bezel>
683
684      <!-- Lamps controlled by U4 on Lamp Driver Board -->
685      <bezel name="lamp45" element="Lamp_White"><bounds x="330" y="420" width="8" height="8" /></bezel>
686      <bezel name="lamp46" element="Lamp_White"><bounds x="345" y="420" width="8" height="8" /></bezel>
687      <bezel name="lamp47" element="Lamp_White"><bounds x="360" y="420" width="8" height="8" /></bezel>
688      <bezel name="lamp48" element="Lamp_White"><bounds x="375" y="420" width="8" height="8" /></bezel>
689      <bezel name="lamp49" element="Lamp_White"><bounds x="390" y="420" width="8" height="8" /></bezel>
690      <bezel name="lamp50" element="Lamp_White"><bounds x="405" y="420" width="8" height="8" /></bezel>
691      <bezel name="lamp51" element="Lamp_White"><bounds x="420" y="420" width="8" height="8" /></bezel>
692      <bezel name="lamp52" element="Lamp_White"><bounds x="435" y="420" width="8" height="8" /></bezel>
693      <bezel name="lamp53" element="Lamp_White"><bounds x="450" y="420" width="8" height="8" /></bezel>
694      <bezel name="lamp54" element="Lamp_White"><bounds x="465" y="420" width="8" height="8" /></bezel>
695      <bezel name="lamp55" element="Lamp_White"><bounds x="480" y="420" width="8" height="8" /></bezel>
696      <bezel name="lamp56" element="Lamp_White"><bounds x="495" y="420" width="8" height="8" /></bezel>
697      <bezel name="lamp57" element="Lamp_White"><bounds x="510" y="420" width="8" height="8" /></bezel>
698      <bezel name="lamp58" element="Lamp_White"><bounds x="525" y="420" width="8" height="8" /></bezel>
699      <bezel name="lamp59" element="Lamp_White"><bounds x="540" y="420" width="8" height="8" /></bezel>
700
701
702      <bezel element="Text_Solenoids"><bounds x="382" y="437" width="100" height="11" /></bezel>
703      <bezel name="solenoid0"  element="Solenoid_PullDown"><bounds x="330" y="452" width="9" height="19" /></bezel>
704      <bezel name="solenoid1"  element="Solenoid_PullDown"><bounds x="345" y="452" width="9" height="19" /></bezel>
705      <bezel name="solenoid2"  element="Solenoid_PullDown"><bounds x="360" y="452" width="9" height="19" /></bezel>
706      <bezel name="solenoid3"  element="Solenoid_PullDown"><bounds x="375" y="452" width="9" height="19" /></bezel>
707      <bezel name="solenoid4"  element="Solenoid_PullDown"><bounds x="390" y="452" width="9" height="19" /></bezel>
708      <bezel name="solenoid5"  element="Solenoid_PullDown"><bounds x="405" y="452" width="9" height="19" /></bezel>
709      <bezel name="solenoid6"  element="Solenoid_PullDown"><bounds x="420" y="452" width="9" height="19" /></bezel>
710      <bezel name="solenoid7"  element="Solenoid_PullDown"><bounds x="435" y="452" width="9" height="19" /></bezel>
711      <bezel name="solenoid8"  element="Solenoid_PullDown"><bounds x="450" y="452" width="9" height="19" /></bezel>
712      <bezel name="solenoid9"  element="Solenoid_PullDown"><bounds x="465" y="452" width="9" height="19" /></bezel>
713      <bezel name="solenoid10" element="Solenoid_PullDown"><bounds x="480" y="452" width="9" height="19" /></bezel>
714      <bezel name="solenoid11" element="Solenoid_PullDown"><bounds x="495" y="452" width="9" height="19" /></bezel>
715      <bezel name="solenoid12" element="Solenoid_PullDown"><bounds x="510" y="452" width="9" height="19" /></bezel>
716      <bezel name="solenoid13" element="Solenoid_PullDown"><bounds x="525" y="452" width="9" height="19" /></bezel>
717      <bezel name="solenoid14" element="Solenoid_PullDown"><bounds x="540" y="452" width="9" height="19" /></bezel>
718
719      <bezel element="Text_Coils"><bounds x="572" y="437" width="50" height="11" /></bezel>
720      <bezel name="solenoid16" element="Coil_PullDown"><bounds x="570" y="459" width="09" height="12" /></bezel>
721      <bezel name="solenoid17" element="Coil_PullDown"><bounds x="585" y="459" width="09" height="12" /></bezel>
722      <bezel name="solenoid18" element="Coil_PullDown"><bounds x="600" y="459" width="09" height="12" /></bezel>
723      <bezel name="solenoid19" element="Coil_PullDown"><bounds x="615" y="459" width="09" height="12" /></bezel>
724
725
726
727      <!-- Cabinet Switches -->
728      <bezel element="Text_Service">                                       <bounds x="485" y="342" width="50" height="10" /></bezel>
729      <bezel element="Switch_Push-Button" inputtag="TEST" inputmask="0x01"><bounds x="495" y="331" width="20" height="10" /></bezel>
730      <bezel element="Key_9">                                              <bounds x="516" y="330" width="10" height="10" /></bezel>
731
732      <bezel element="Text_Slam">                                     <bounds x="430" y="342" width="50" height="10" /></bezel>
733      <bezel element="Switch_SlamTilt" inputtag="X1" inputmask="0x80"><bounds x="434" y="331" width="25" height="08" /></bezel>
734      <bezel element="Key_Equals">                                    <bounds x="461" y="330" width="10" height="10" /></bezel>
735
736      <bezel element="Text_Tilt">                                 <bounds x="380" y="342" width="50" height="10" /></bezel>
737      <bezel element="Switch_Tilt" inputtag="X0" inputmask="0x40"><bounds x="390" y="324" width="17" height="17" /></bezel>
738      <bezel element="Key_T">                                     <bounds x="411" y="330" width="10" height="10" /></bezel>
739
740
741      <!-- Misc Solenoids -->
742      <bezel name="solenoid5"  element="Solenoid_Knocker"><bounds x="336" y="321" width="09" height="22" /></bezel>
743      <bezel element="Text_Knocker">   <!-- Knocker -->   <bounds x="322" y="342" width="40" height="10" /></bezel>
744
745
746      <!-- Misc Lamps -->
747      <bezel name="lamp55" element="Credit_Indicator"><bounds x="23" y="456" width="70" height="21" /></bezel><!-- Credit Indicator -->
748      <bezel name="lamp40" element="Lamp_Amber"><bounds x="100" y="330" width="13" height="13" /></bezel>      <!-- Extra Ball -->
749      <bezel name="lamp56" element="Lamp_Red">  <bounds x="009" y="318" width="09" height="09" /></bezel>      <!-- Special Outlane Left -->
750      <bezel name="lamp41" element="Lamp_Red">  <bounds x="301" y="318" width="09" height="09" /></bezel>      <!-- Special Outlane Right -->
751      <!-- Bonus End of Ball Lamps -->
752      <bezel name="lamp0"  element="Lamp_White_1k"> <bounds x="126" y="298" width="09" height="09" /></bezel>   <!-- Bonus 1000 -->
753      <bezel name="lamp15" element="Lamp_White_2k"> <bounds x="133" y="316" width="09" height="09" /></bezel>   <!-- Bonus 2000 -->
754      <bezel name="lamp30" element="Lamp_White_3k"> <bounds x="140" y="334" width="09" height="09" /></bezel>   <!-- Bonus 3000 -->
755      <bezel name="lamp45" element="Lamp_White_4k"> <bounds x="148" y="352" width="09" height="09" /></bezel>   <!-- Bonus 4000 -->
756      <bezel name="lamp1"  element="Lamp_White_5k"> <bounds x="155" y="370" width="09" height="09" /></bezel>   <!-- Bonus 5000 -->
757      <bezel name="lamp16" element="Lamp_White_6k"> <bounds x="162" y="352" width="09" height="09" /></bezel>   <!-- Bonus 6000 -->
758      <bezel name="lamp31" element="Lamp_White_7k"> <bounds x="170" y="334" width="09" height="09" /></bezel>   <!-- Bonus 7000 -->
759      <bezel name="lamp46" element="Lamp_White_8k"> <bounds x="177" y="316" width="09" height="09" /></bezel>   <!-- Bonus 8000 -->
760      <bezel name="lamp2"  element="Lamp_White_9k"> <bounds x="184" y="298" width="09" height="09" /></bezel>   <!-- Bonus 9000 -->
761      <bezel name="lamp17" element="Lamp_White_10k"><bounds x="154" y="320" width="12" height="12" /></bezel>   <!-- Bonus 10000 -->
762      <bezel name="lamp32" element="Lamp_White_20k"><bounds x="154" y="296" width="12" height="12" /></bezel>   <!-- Bonus 20000 -->
763      <!-- Bonus Multiplier Lamps -->
764      <bezel name="lamp53" element="Lamp_2x"><bounds x="135" y="392" width="10" height="10" /></bezel>      <!-- 2X Bonus -->
765      <bezel name="lamp38" element="Lamp_3x"><bounds x="155" y="390" width="10" height="10" /></bezel>      <!-- 3X Bonus -->
766      <bezel name="lamp23" element="Lamp_5x"><bounds x="175" y="392" width="10" height="10" /></bezel>      <!-- 5X Bonus -->
767      <!-- Drop Target Lamps -->
768      <bezel name="lamp4"  element="Lamp_2x">   <bounds x="125" y="198" width="10" height="10" /></bezel>      <!-- 2X Bonus Potential -->
769      <bezel name="lamp19" element="Lamp_3x">   <bounds x="140" y="198" width="10" height="10" /></bezel>      <!-- 3X Bonus Potential -->
770      <bezel name="lamp34" element="Lamp_5x">   <bounds x="155" y="198" width="10" height="10" /></bezel>      <!-- 5X Bonus Potential -->
771      <bezel name="lamp49" element="Lamp_Amber"><bounds x="170" y="198" width="10" height="10" /></bezel>      <!-- Extra Ball Potential -->
772      <bezel name="lamp5"  element="Lamp_Red">  <bounds x="185" y="198" width="10" height="10" /></bezel>      <!-- Special Potential -->
773      <!-- Saucer Lamps -->
774      <bezel name="lamp6"  element="Lamp_White_3k"> <bounds x="128" y="30" width="9" height="9" /></bezel>   <!-- Upper 3000 -->
775      <bezel name="lamp21" element="Lamp_White_6k"> <bounds x="142" y="42" width="9" height="9" /></bezel>   <!-- Upper 6000 -->
776      <bezel name="lamp36" element="Lamp_White_9k"> <bounds x="156" y="54" width="9" height="9" /></bezel>   <!-- Upper 9000 -->
777      <bezel name="lamp51" element="Lamp_White_12k"><bounds x="170" y="42" width="9" height="9" /></bezel>   <!-- Upper 12000 -->
778      <bezel name="lamp7"  element="Lamp_White_15k"><bounds x="184" y="30" width="9" height="9" /></bezel>   <!-- Upper 15000 -->
779
780
781
782      <!-- Outhole -->
783      <bezel name="solenoid6"  element="Solenoid_Outhole">                        <bounds x="150" y="455" width="58" height="22" /></bezel>
784      <bezel element="Switch_RollOn_WireForm_Left" inputtag="X0" inputmask="0x80"><bounds x="163" y="453" width="20" height="16" /></bezel>
785      <bezel element="Key_BSpace">                                                <bounds x="185" y="455" width="15" height="14" /></bezel>
786
787
788      <!-- Pop Bumper Left -->
789      <bezel name="solenoid8"  element="Solenoid_Bumper_Red_Star">           <bounds x="064" y="090" width="80" height="80" /></bezel>
790      <bezel element="Switch_Bumper_Red_Star" inputtag="X4" inputmask="0x80"><bounds x="064" y="090" width="80" height="80" /></bezel>
791      <bezel name="lamp39" element="Lamp_Bumper_Red_1000">                   <bounds x="064" y="090" width="80" height="80" /></bezel>
792      <bezel element="Key_Z">                                                <bounds x="121" y="116" width="09" height="09" /></bezel>
793
794      <!-- Pop Bumper Right -->
795      <bezel name="solenoid9"  element="Solenoid_Bumper_Red_Star">           <bounds x="177" y="090" width="80" height="80" /></bezel>
796      <bezel element="Switch_Bumper_Red_Star" inputtag="X4" inputmask="0x40"><bounds x="177" y="090" width="80" height="80" /></bezel>
797      <bezel name="lamp39" element="Lamp_Bumper_Red_1000">                   <bounds x="177" y="090" width="80" height="80" /></bezel>
798      <bezel element="Key_X">                                                <bounds x="188" y="116" width="09" height="09" /></bezel>
799
800      <!-- Pop Bumper Middle -->
801      <bezel name="solenoid10" element="Solenoid_Bumper_Red_Star">           <bounds x="121" y="123" width="80" height="80" /></bezel>
802      <bezel element="Switch_Bumper_Red_Star" inputtag="X4" inputmask="0x20"><bounds x="121" y="123" width="80" height="80" /></bezel>
803      <bezel name="lamp54" element="Lamp_Bumper_Red_1000">                   <bounds x="121" y="123" width="80" height="80" /></bezel>
804      <bezel element="Key_C">                                                <bounds x="156" y="128" width="09" height="09" /></bezel>
805
806
807      <!-- Slingshot Left -->
808      <bezel name="solenoid11" element="Solenoid_SlingShot_Left">          <bounds x="035" y="320" width="69" height="80" /></bezel>
809      <bezel element="Switch_Leaf_Vertical" inputtag="X4" inputmask="0x10"><bounds x="060" y="384" width="08" height="09" /></bezel>
810      <bezel element="Key_V">                                              <bounds x="060" y="375" width="09" height="09" /></bezel>
811
812      <!-- Slingshot Right -->
813      <bezel name="solenoid13" element="Solenoid_SlingShot_Right">         <bounds x="221" y="320" width="69" height="80" /></bezel>
814      <bezel element="Switch_Leaf_Vertical" inputtag="X4" inputmask="0x08"><bounds x="257" y="384" width="08" height="09" /></bezel>
815      <bezel element="Key_B">                                              <bounds x="257" y="375" width="09" height="09" /></bezel>
816
817
818      <!-- Saucer -->
819      <bezel name="solenoid7"  element="Solenoid_Saucer">           <bounds x="149" y="67" width="23" height="23" /></bezel>
820      <bezel element="Switch_Saucer" inputtag="X3" inputmask="0x80"><bounds x="149" y="67" width="23" height="23" /></bezel>
821      <bezel element="Key_Q">                                       <bounds x="156" y="91" width="09" height="09" /></bezel>
822
823
824      <!-- Drop Targets Leftside -->
825      <bezel name="solenoid12" element="Solenoid_DropTarget_Tall">    <bounds x="090" y="166" width="07" height="15" /></bezel>
826      <bezel element="DropTarget_Tall" inputtag="X2" inputmask="0x80"><bounds x="090" y="166" width="07" height="15" /></bezel>
827      <bezel element="Key_A">                                         <bounds x="098" y="169" width="09" height="09" /></bezel>
828      <bezel name="solenoid12" element="Solenoid_DropTarget_Tall">    <bounds x="084" y="181" width="07" height="15" /></bezel>
829      <bezel element="DropTarget_Tall" inputtag="X2" inputmask="0x40"><bounds x="084" y="181" width="07" height="15" /></bezel>
830      <bezel element="Key_S">                                         <bounds x="092" y="184" width="09" height="09" /></bezel>
831      <bezel name="solenoid12" element="Solenoid_DropTarget_Tall">    <bounds x="078" y="196" width="07" height="15" /></bezel>
832      <bezel element="DropTarget_Tall" inputtag="X2" inputmask="0x20"><bounds x="078" y="196" width="07" height="15" /></bezel>
833      <bezel element="Key_D">                                         <bounds x="086" y="199" width="09" height="09" /></bezel>
834      <bezel name="solenoid12" element="Solenoid_DropTarget_Tall">    <bounds x="072" y="211" width="07" height="15" /></bezel>
835      <bezel element="DropTarget_Tall" inputtag="X2" inputmask="0x10"><bounds x="072" y="211" width="07" height="15" /></bezel>
836      <bezel element="Key_F">                                         <bounds x="080" y="214" width="09" height="09" /></bezel>
837
838      <!-- Drop Targets Rightside -->
839      <bezel name="solenoid14" element="Solenoid_DropTarget_Tall">    <bounds x="222" y="166" width="07" height="15" /></bezel>
840      <bezel element="DropTarget_Tall" inputtag="X2" inputmask="0x08"><bounds x="222" y="166" width="07" height="15" /></bezel>
841      <bezel element="Key_G">                                         <bounds x="214" y="169" width="09" height="09" /></bezel>
842      <bezel name="solenoid14" element="Solenoid_DropTarget_Tall">    <bounds x="228" y="181" width="07" height="15" /></bezel>
843      <bezel element="DropTarget_Tall" inputtag="X2" inputmask="0x04"><bounds x="228" y="181" width="07" height="15" /></bezel>
844      <bezel element="Key_H">                                         <bounds x="220" y="184" width="09" height="09" /></bezel>
845      <bezel name="solenoid14" element="Solenoid_DropTarget_Tall">    <bounds x="234" y="196" width="07" height="15" /></bezel>
846      <bezel element="DropTarget_Tall" inputtag="X2" inputmask="0x02"><bounds x="234" y="196" width="07" height="15" /></bezel>
847      <bezel element="Key_J">                                         <bounds x="226" y="199" width="09" height="09" /></bezel>
848      <bezel name="solenoid14" element="Solenoid_DropTarget_Tall">    <bounds x="240" y="211" width="07" height="15" /></bezel>
849      <bezel element="DropTarget_Tall" inputtag="X2" inputmask="0x01"><bounds x="240" y="211" width="07" height="15" /></bezel>
850      <bezel element="Key_K">                                         <bounds x="232" y="214" width="09" height="09" /></bezel>
851
852      <!-- Drop Target Area Rebound switches -->
853      <bezel element="Switch_Leaf_Vertical" inputtag="X0" inputmask="0x04"><bounds x="249" y="188" width="08" height="09" /></bezel>
854      <bezel element="Key_OBrkt">                                          <bounds x="247" y="174" width="10" height="10" /></bezel>
855      <bezel element="Switch_Leaf_Vertical" inputtag="X0" inputmask="0x04"><bounds x="062" y="188" width="08" height="09" /></bezel>
856      <bezel element="Key_OBrkt">                                          <bounds x="060" y="174" width="10" height="10" /></bezel>
857
858
859      <!-- Upper Rebound switch -->
860      <bezel element="Switch_Leaf_Vertical" inputtag="X0" inputmask="0x02"><bounds x="259" y="42" width="08" height="09" /></bezel>
861      <bezel element="Key_FSlash">                                         <bounds x="257" y="28" width="10" height="10" /></bezel>
862
863
864      <!-- Rollover Buttons Left Alley switches -->
865      <bezel name="lamp48" element="Lamp_RollOver_Button">  <!-- Upper -->   <bounds x="17" y="105" width="15" height="15" /></bezel>
866      <bezel element="Switch_RollOver_Button" inputtag="X3" inputmask="0x10"><bounds x="07" y="099" width="35" height="35" /></bezel>
867      <bezel element="Key_R">                                                <bounds x="33" y="109" width="09" height="09" /></bezel>
868      <bezel name="lamp48" element="Lamp_RollOver_Button">  <!-- Middle -->  <bounds x="12" y="135" width="15" height="15" /></bezel>
869      <bezel element="Switch_RollOver_Button" inputtag="X4" inputmask="0x02"><bounds x="02" y="129" width="35" height="35" /></bezel>
870      <bezel element="Key_M">                                                <bounds x="28" y="139" width="09" height="09" /></bezel>
871      <bezel name="lamp33" element="Lamp_RollOver_Button">  <!-- Lower -->   <bounds x="12" y="165" width="15" height="15" /></bezel>
872      <bezel element="Switch_RollOver_Button" inputtag="X0" inputmask="0x08"><bounds x="02" y="159" width="35" height="35" /></bezel>
873      <bezel element="Key_CBrkt">                                            <bounds x="28" y="168" width="10" height="10" /></bezel>
874
875
876      <!-- Rollover Buttons Right Alley -->
877      <bezel name="lamp18" element="Lamp_RollOver_Button">  <!-- Upper -->   <bounds x="290" y="105" width="15" height="15" /></bezel>
878      <bezel element="Switch_RollOver_Button" inputtag="X3" inputmask="0x20"><bounds x="280" y="099" width="35" height="35" /></bezel>
879      <bezel element="Key_E">                                                <bounds x="280" y="109" width="09" height="09" /></bezel>
880      <bezel name="lamp18" element="Lamp_RollOver_Button">  <!-- Middle -->  <bounds x="295" y="135" width="15" height="15" /></bezel>
881      <bezel element="Switch_RollOver_Button" inputtag="X4" inputmask="0x04"><bounds x="285" y="129" width="35" height="35" /></bezel>
882      <bezel element="Key_N">                                                <bounds x="285" y="139" width="09" height="09" /></bezel>
883      <bezel name="lamp3"  element="Lamp_RollOver_Button">  <!-- Lower -->   <bounds x="295" y="165" width="15" height="15" /></bezel>
884      <bezel element="Switch_RollOver_Button" inputtag="X0" inputmask="0x10"><bounds x="285" y="159" width="35" height="35" /></bezel>
885      <bezel element="Key_BSlash">                                           <bounds x="285" y="169" width="10" height="10" /></bezel>
886
887
888      <!-- Rollover Button Centre switch -->
889      <bezel element="Lamp_RollOver_Button_On">                              <bounds x="153" y="228" width="15" height="15" /></bezel>
890      <bezel element="Switch_RollOver_Button" inputtag="X3" inputmask="0x02"><bounds x="143" y="222" width="35" height="35" /></bezel>
891      <bezel element="Key_I">                                                <bounds x="156" y="245" width="09" height="09" /></bezel>
892
893
894      <!-- Post Between Flippers -->
895      <bezel name="lamp24" element="Lamp_Post"><bounds x="148" y="420" width="22" height="22" /></bezel>
896
897      <!-- Post Up and Advance - Upper Rollover button and Middle Target switch -->
898      <bezel name="solenoid16" element="Coil_Post_Up">                          <bounds x="148" y="420" width="22" height="22" /></bezel>
899      <bezel element="Lamp_RollOver_Button_On">                                 <bounds x="153" y="28" width="15" height="15" /></bezel>
900      <bezel element="Switch_RollOver_Button"    inputtag="X4" inputmask="0x01"><bounds x="143" y="22" width="35" height="35" /></bezel>
901      <bezel element="Key_Comma">                                               <bounds x="153" y="12" width="14" height="14" /></bezel>
902      <bezel element="Switch_Target_Red_Forward" inputtag="X4" inputmask="0x01"><bounds x="153.5" y="172" width="12" height="08" /></bezel>
903      <bezel element="Key_Comma">                                               <bounds x="153" y="176" width="14" height="14" /></bezel>
904
905      <!-- Post Down - Middle Left and Middle Right Rollover Button switches -->
906      <bezel name="solenoid0"  element="Solenoid_Post_Down">                 <bounds x="148" y="420" width="22" height="22" /></bezel>
907      <bezel element="Lamp_RollOver_Button_On">                              <bounds x="126" y="254" width="15" height="15" /></bezel>
908      <bezel element="Switch_RollOver_Button" inputtag="X3" inputmask="0x01"><bounds x="116" y="248" width="35" height="35" /></bezel>
909      <bezel element="Key_O">                                                <bounds x="129" y="271" width="09" height="09" /></bezel>
910      <bezel element="Lamp_RollOver_Button_On">                              <bounds x="180" y="254" width="15" height="15" /></bezel>
911      <bezel element="Switch_RollOver_Button" inputtag="X3" inputmask="0x01"><bounds x="170" y="248" width="35" height="35" /></bezel>
912      <bezel element="Key_O">                                                <bounds x="183" y="271" width="09" height="09" /></bezel>
913
914
915      <!-- Outlane switches / lamps -->
916      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X3" inputmask="0x08"><bounds x="009" y="346" width="09" height="27" /></bezel>
917      <bezel element="Key_Y">                                                           <bounds x="009" y="376" width="09" height="09" /></bezel>
918      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X3" inputmask="0x04"><bounds x="301" y="346" width="09" height="27" /></bezel>
919      <bezel element="Key_U">                                                           <bounds x="301" y="376" width="09" height="09" /></bezel>
920
921      <!-- Flipper Return Lane switches -->
922      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X0" inputmask="0x01"><bounds x="030" y="348" width="09" height="27" /></bezel>
923      <bezel element="Key_Dot">                                                         <bounds x="028" y="374" width="14" height="14" /></bezel>
924      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X0" inputmask="0x01"><bounds x="280" y="348" width="09" height="27" /></bezel>
925      <bezel element="Key_Dot">                                                         <bounds x="278" y="374" width="14" height="14" /></bezel>
926
927   </view>
928
929</mamelayout>
trunk/src/mame/layout/by35.lay
r249893r249894
1<!-- BY35 copied from by17.lay -->
1<!-- Pinball Machine, Bally ~ Template -35 MPU board -->
22
33<!-- 2014-07-29: Initial version.  [Robbbert] -->
4<!-- 2015-August: Added Lamp states, Solenoid states, Switch Matrix and a kit of playfield objects.  [Quench] -->
45
6
7<!-- Any state="9" items are not displayed and are only used for object alignment -->
8
59<mamelayout version="2">
610
7   <element name="digit" defstate="0">
8      <led7seg>
9         <color red="1.0" green="0.75" blue="0.0" />
10      </led7seg>
11   <element name="Title_Bally">   <text string="Bally"><color red="0.25" green="0.5" blue="1.0" /></text></element>
12
13   <element name="Text_Playfield"><text string="See Playboy for a mockup Playfield layout"><color red="1.0" green="0.0" blue="1.0" /></text></element>
14   <element name="Text_Legend">   <text string="Consult game schematic for Switch, Lamp and Solenoid allocation"><color red="0.0" green="1.0" blue="0.0" /></text></element>
15   <element name="Text_Switch">   <text string="Switch Matrix"><color red="0.0" green="1.0" blue="1.0" /></text></element>
16   <element name="Text_Multiball"><text string="Some Multi-ball games require balls in all Outholes to complete startup"><color red="0.0" green="1.0" blue="0.0" /></text></element>
17
18
19
20<!-- Switches -->
21
22   <element name="Switch_SlamTilt">
23      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="00" width="25" height="01" /></rect>
24      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="08" width="13" height="01.5" /></rect>
25      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="01" width="04" height="02" /></rect>
26      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="06" width="04" height="02" /></rect>
27
28      <rect state="0"><color red="0.70" green="0.70" blue="0.70" /><bounds x="19" y="01" width="06" height="04" /></rect>
29      <rect state="1"><color red="0.70" green="0.70" blue="0.70" /><bounds x="19" y="04" width="06" height="04" /></rect>
30
31      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="00" width="08" height="01" /></rect>
32      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="08" y="01" width="08" height="01" /></rect>
33      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="16" y="02" width="09" height="01" /></rect>
34
35
36      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="08"  width="13" height="01.5" /></rect>
37      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="03"  width="04" height="02" /></rect>
38      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="06"  width="04" height="02" /></rect>
1139   </element>
12   <element name="red_led">
13      <disk><color red="1.0" green="0.0" blue="0.0" /></disk>
40
41   <element name="Switch_Tilt">
42      <rect          ><color red="0.80" green="0.80" blue="0.00" /><bounds x="00" y="00" width="17" height="17" /></rect>
43      <disk          ><color red="0.00" green="0.00" blue="0.00" /><bounds x="01" y="01" width="15" height="15" /></disk>
44      <disk state="0"><color red="0.50" green="0.50" blue="0.50" /><bounds x="04" y="04" width="09" height="09" /></disk>
45      <disk state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="07" width="02" height="02" /></disk>
46
47      <disk state="1"><color red="0.50" green="0.50" blue="0.50" /><bounds x="07" y="04" width="09" height="09" /></disk>
48      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="11" y="07" width="02" height="02" /></disk>
1449   </element>
15   <element name="background">
50
51
52   <element name="Switch_Leaf_Vertical">
53      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="0" y="00" width="01"   height="06" /></rect>
54      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="8" y="00" width="01.5" height="06" /></rect>
55      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="1" y="01" width="02"   height="04" /></rect>
56      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="6" y="01" width="02"   height="04" /></rect>
57
58      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="1.5" y="00" width="01" height="06" /></rect>
59      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="6.5" y="00" width="01" height="06" /></rect>
60      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="2"   y="01" width="02" height="04" /></rect>
61      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="4.5" y="01" width="02" height="04" /></rect>
62   </element>
63
64   <element name="Switch_RollOn_WireForm_Left">
65      <text string=">" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="8" y="0" width="11"  height="11"  /></text>
66      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="0.1" height="04"  /></rect>
67      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="09"  height="0.1" /></rect>
68      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="8" width="09"  height="0.1" /></rect>
69      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="3" y="6" width="08"  height="0.1" /></rect>
70      <text string=">" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="8" y="0" width="11"  height="11"  /></text>
71      <rect            state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="0.1" height="04"  /></rect>
72      <rect            state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="09"  height="0.1" /></rect>
73      <rect            state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="8" width="09"  height="0.1" /></rect>
74   </element>
75
76   <element name="Switch_RollOn_WireForm_Down">
77      <text string="/\" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
78      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="17" width="04"  height="0.1" /></rect>
79      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
80      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
81      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="3" y="07" width="0.1" height="08" /></rect>
82      <text string="/\" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
83      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="17" width="04"  height="0.1" /></rect>
84      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
85      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
86   </element>
87
88   <element name="Switch_RollOver_WireForm_Vertical">
89      <text string="/\" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
90      <text string="\/" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="17" width="07"  height="10" /></text>
91      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
92      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
93      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="3" y="07" width="0.1" height="13" /></rect>
94      <text string="/\" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
95      <text string="\/" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="17" width="07"  height="10" /></text>
96      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
97      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
98   </element>
99
100   <element name="Switch_Target_Red_Forward" defstate="0">
101      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="00" width="10" height="01" /></rect>
102      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="00" width="01" height="05" /></rect>
103      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="16" y="00" width="01" height="05" /></rect>
104
105      <disk state="0"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="05" width="24" height="06" /></disk>
106      <disk state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="02" width="24" height="06" /></disk>
107   </element>
108
109   <element name="Target_White_Left" defstate="0">
110      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="06" width="01" height="10" /></rect>
111      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="06" width="05" height="01" /></rect>
112      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="16" width="05" height="01" /></rect>
113      <disk state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="05" y="00" width="06" height="24" /></disk>
114      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="02" y="00" width="06" height="24" /></disk>
115   </element>
116
117
118   <element name="Switch_RollOver_Button">
119      <text string="*" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="-10" y="-6" width="35" height="35" /></text>
120      <text string="*" state="1"><color red="0.00" green="0.00" blue="0.00" /><bounds x="-10" y="-6" width="35" height="35" /></text>
121   </element>
122
123   <element name="Lamp_RollOver_Button" defstate="0">
124      <disk state="0"><color red="0.15" green="0.04" blue="0.00" /><bounds x="0" y="0" width="15" height="15" /></disk>
125      <disk state="1"><color red="1.00" green="0.30" blue="0.00" /><bounds x="0" y="0" width="15" height="15" /></disk>
126   </element>
127
128   <element name="Lamp_RollOver_Button_On">
129      <disk><color red="1.00" green="0.30" blue="0.00" /><bounds x="0" y="0" width="15" height="15" /></disk>
130   </element>
131
132
133   <element name="Switch_Push-Button" defstate="0">
134      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="04" width="16" height="01" /></rect>
135      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="00" width="01" height="04" /></rect>
136      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="17" y="00" width="01" height="04" /></rect>
137      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="00" width="05" height="01" /></rect>
138      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="08.5" width="16" height="01" /></rect>
139      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04.5" width="01" height="04" /></rect>
140      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="17" y="04.5" width="01" height="04" /></rect>
141      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04.5" width="05" height="01" /></rect>
142      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="12" width="09" height="01" /></rect>
143      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="21" y="12" width="09" height="01" /></rect>
144      <disk          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="10" width="06" height="06" /></disk>
145      <disk          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="10" width="06" height="06" /></disk>
146   </element>
147
148
149
150   <element name="Key_Z">     <text string="Z"><color red="1.00" green="0.66" blue="0.66" /></text></element>
151   <element name="Key_X">     <text string="X"><color red="1.00" green="0.66" blue="0.66" /></text></element>
152   <element name="Key_C">     <text string="C"><color red="1.00" green="0.66" blue="0.66" /></text></element>
153   <element name="Key_V">     <text string="V"><color red="1.00" green="0.66" blue="0.66" /></text></element>
154   <element name="Key_B">     <text string="B"><color red="1.00" green="0.66" blue="0.66" /></text></element>
155   <element name="Key_N">     <text string="N"><color red="1.00" green="0.66" blue="0.66" /></text></element>
156   <element name="Key_M">     <text string="M"><color red="1.00" green="0.66" blue="0.66" /></text></element>
157   <element name="Key_Comma"> <text string=","><color red="1.00" green="0.66" blue="0.66" /></text></element>
158   <element name="Key_Dot">   <text string="."><color red="1.00" green="0.66" blue="0.66" /></text></element>
159   <element name="Key_FSlash"><text string="/"><color red="1.00" green="0.66" blue="0.66" /></text></element>
160
161   <element name="Key_A">     <text string="A"><color red="1.00" green="0.66" blue="0.66" /></text></element>
162   <element name="Key_S">     <text string="S"><color red="1.00" green="0.66" blue="0.66" /></text></element>
163   <element name="Key_D">     <text string="D"><color red="1.00" green="0.66" blue="0.66" /></text></element>
164   <element name="Key_F">     <text string="F"><color red="1.00" green="0.66" blue="0.66" /></text></element>
165   <element name="Key_G">     <text string="G"><color red="1.00" green="0.66" blue="0.66" /></text></element>
166   <element name="Key_H">     <text string="H"><color red="1.00" green="0.66" blue="0.66" /></text></element>
167   <element name="Key_J">     <text string="J"><color red="1.00" green="0.66" blue="0.66" /></text></element>
168   <element name="Key_K">     <text string="K"><color red="1.00" green="0.66" blue="0.66" /></text></element>
169   <element name="Key_L">     <text string="L"><color red="1.00" green="0.66" blue="0.66" /></text></element>
170   <element name="Key_SColon"><text string=";"><color red="1.00" green="0.66" blue="0.66" /></text></element>
171   <element name="Key_Quote"> <text string="'"><color red="1.00" green="0.66" blue="0.66" /></text></element>
172   <element name="Key_Enter">
173      <text string="&#60;"><color red="1.00" green="0.66" blue="0.66" /><bounds x="00" y="00" width="07"  height="10" /></text>
174      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="00" y="00" width="07"  height="10" /></text>
175      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="02" y="00" width="07"  height="10" /></text>
176      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="04" y="00" width="07"  height="10" /></text>
177      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="06" y="00" width="07"  height="10" /></text>
178      <disk           >    <color red="1.00" green="0.66" blue="0.66" /><bounds x="10" y="02" width="0.5" height="03" /></disk>
179   </element>
180
181   <element name="Key_Q">     <text string="Q"><color red="1.00" green="0.66" blue="0.66" /></text></element>
182   <element name="Key_W">     <text string="W"><color red="1.00" green="0.66" blue="0.66" /></text></element>
183   <element name="Key_E">     <text string="E"><color red="1.00" green="0.66" blue="0.66" /></text></element>
184   <element name="Key_R">     <text string="R"><color red="1.00" green="0.66" blue="0.66" /></text></element>
185   <element name="Key_T">     <text string="T"><color red="1.00" green="0.66" blue="0.66" /></text></element>
186   <element name="Key_Y">     <text string="Y"><color red="1.00" green="0.66" blue="0.66" /></text></element>
187   <element name="Key_U">     <text string="U"><color red="1.00" green="0.66" blue="0.66" /></text></element>
188   <element name="Key_I">     <text string="I"><color red="1.00" green="0.66" blue="0.66" /></text></element>
189   <element name="Key_O">     <text string="O"><color red="1.00" green="0.66" blue="0.66" /></text></element>
190   <element name="Key_P">     <text string="P"><color red="1.00" green="0.66" blue="0.66" /></text></element>
191   <element name="Key_OBrkt"> <text string="["><color red="1.00" green="0.66" blue="0.66" /></text></element>
192   <element name="Key_CBrkt"> <text string="]"><color red="1.00" green="0.66" blue="0.66" /></text></element>
193   <element name="Key_BSlash"><text string="\"><color red="1.00" green="0.66" blue="0.66" /></text></element>
194
195   <element name="Key_1">     <text string="1"><color red="1.00" green="0.66" blue="0.66" /></text></element>
196   <element name="Key_5">     <text string="5"><color red="1.00" green="0.66" blue="0.66" /></text></element>
197   <element name="Key_6">     <text string="6"><color red="1.00" green="0.66" blue="0.66" /></text></element>
198   <element name="Key_7">     <text string="7"><color red="1.00" green="0.66" blue="0.66" /></text></element>
199   <element name="Key_9">     <text string="9"><color red="1.00" green="0.66" blue="0.66" /></text></element>
200   <element name="Key_0">     <text string="0"><color red="1.00" green="0.66" blue="0.66" /></text></element>
201   <element name="Key_BSpace">
202      <text string="&#60;"><color red="1.00" green="0.66" blue="0.66" /><bounds x="0" y="00" width="07" height="10" /></text>
203      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="0" y="00" width="07" height="10" /></text>
204      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="2" y="00" width="07" height="10" /></text>
205      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="4" y="00" width="07" height="10" /></text>
206      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="6" y="00" width="07" height="10" /></text>
207   </element>
208   <element name="Key_Equals"><text string="="><color red="1.00" green="0.66" blue="0.66" /></text></element>
209
210   <element name="ST0"><text string="ST0"><color red="0.0" green="1.0" blue="1.0" /></text></element>
211   <element name="ST1"><text string="ST1"><color red="0.0" green="1.0" blue="1.0" /></text></element>
212   <element name="ST2"><text string="ST2"><color red="0.0" green="1.0" blue="1.0" /></text></element>
213   <element name="ST3"><text string="ST3"><color red="0.0" green="1.0" blue="1.0" /></text></element>
214   <element name="ST4"><text string="ST4"><color red="0.0" green="1.0" blue="1.0" /></text></element>
215   <element name="ST5"><text string="ST5"><color red="0.0" green="1.0" blue="1.0" /></text></element>
216   <element name="I0"> <text string="I0"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
217   <element name="I1"> <text string="I1"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
218   <element name="I2"> <text string="I2"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
219   <element name="I3"> <text string="I3"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
220   <element name="I4"> <text string="I4"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
221   <element name="I5"> <text string="I5"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
222   <element name="I6"> <text string="I6"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
223   <element name="I7"> <text string="I7"> <color red="0.0" green="1.0" blue="1.0" /></text></element>
224
225
226
227
228   <element name="Solenoid_DropTarget_Tall" defstate="0">
229      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="00" width="07" height="15" /></rect>
230      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="04" height="12" /></rect>
231   </element>
232   <element name="DropTarget_Tall" defstate="0">
233      <rect state="1"><color red="0.25" green="0.25" blue="0.25" /><bounds x="01" y="01" width="04" height="12" /></rect>
234      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="04" height="12" /></rect>
235      <rect state="9"><color red="0.00" green="1.00" blue="0.00" /><bounds x="00" y="00" width="07" height="15" /></rect>
236   </element>
237
238   <element name="Solenoid_DropTarget_Wide" defstate="0">
239      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="00" width="15" height="07" /></rect>
240      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="12" height="04" /></rect>
241   </element>
242   <element name="DropTarget_Wide" defstate="0">
243      <rect state="1"><color red="0.25" green="0.25" blue="0.25" /><bounds x="01" y="01" width="12" height="04" /></rect>
244      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="12" height="04" /></rect>
245      <rect state="9"><color red="0.00" green="1.00" blue="0.00" /><bounds x="00" y="00" width="15" height="07" /></rect>
246   </element>
247
248
249<!-- Lamps -->
250
251   <element name="Lamp_White" defstate="0">
252      <disk state="0"><color red="0.15" green="0.15" blue="0.15" /></disk>
253      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
254   </element>
255   <element name="Lamp_Yellow" defstate="0">
256      <disk state="0"><color red="0.15" green="0.15" blue="0.00" /></disk>
257      <disk state="1"><color red="1.00" green="1.00" blue="0.00" /></disk>
258   </element>
259   <element name="Lamp_Red" defstate="0">                              <!-- Usually for Specials -->
260      <disk state="0"><color red="0.15" green="0.00" blue="0.00" /></disk>
261      <disk state="1"><color red="1.00" green="0.00" blue="0.00" /></disk>
262   </element>
263   <element name="Lamp_Amber" defstate="0">                           <!-- Usually for Extra Ball-->
264      <disk state="0"><color red="0.15" green="0.06" blue="0.00" /></disk>
265      <disk state="1"><color red="1.00" green="0.40" blue="0.00" /></disk>
266   </element>
267
268
269   <element name="Lamp_P1">
270      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
271      <text string="1" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
272      <text string="1" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
273   </element>
274   <element name="Lamp_P2">
275      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
276      <text string="2" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
277      <text string="2" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
278   </element>
279   <element name="Lamp_P3">
280      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
281      <text string="3" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
282      <text string="3" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
283   </element>
284   <element name="Lamp_P4">
285      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
286      <text string="4" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
287      <text string="4" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
288   </element>
289
290   <element name="Lamp_1P">
291      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
292      <text string="1" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
293      <text string="1" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
294   </element>
295   <element name="Lamp_2P">
296      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
297      <text string="2" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
298      <text string="2" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
299   </element>
300   <element name="Lamp_3P">
301      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
302      <text string="3" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
303      <text string="3" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
304   </element>
305   <element name="Lamp_4P">
306      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
307      <text string="4" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
308      <text string="4" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
309   </element>
310
311
312   <element name="Lamp_2x" defstate="0">
313      <disk state="0"><color red="0.0" green="0.15" blue="0.0" /></disk>
314      <disk state="1"><color red="0.0" green="1.00" blue="0.0" /></disk>
315      <text string="2x"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
316   </element>
317   <element name="Lamp_3x" defstate="0">
318      <disk state="0"><color red="0.15" green="0.15" blue="0.0" /></disk>
319      <disk state="1"><color red="1.00" green="1.00" blue="0.0" /></disk>
320      <text string="3x"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
321   </element>
322   <element name="Lamp_4x" defstate="0">
323      <disk state="0"><color red="0.15" green="0.15" blue="0.0" /></disk>
324      <disk state="1"><color red="1.00" green="1.00" blue="0.0" /></disk>
325      <text string="4x"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
326   </element>
327   <element name="Lamp_5x" defstate="0">
328      <disk state="0"><color red="0.15" green="0.15" blue="0.15" /></disk>
329      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
330      <text string="5x"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
331   </element>
332
333
334   <element name="Lamp_White_1k">
335      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
336      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
337      <text string="1k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
338   </element>
339   <element name="Lamp_White_2k">
340      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
341      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
342      <text string="2k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
343   </element>
344   <element name="Lamp_White_3k">
345      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
346      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
347      <text string="3k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
348   </element>
349   <element name="Lamp_White_4k">
350      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
351      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
352      <text string="4k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
353   </element>
354   <element name="Lamp_White_5k">
355      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
356      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
357      <text string="5k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
358   </element>
359   <element name="Lamp_White_6k">
360      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
361      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
362      <text string="6k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
363   </element>
364   <element name="Lamp_White_7k">
365      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
366      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
367      <text string="7k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
368   </element>
369   <element name="Lamp_White_8k">
370      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
371      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
372      <text string="8k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
373   </element>
374   <element name="Lamp_White_9k">
375      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
376      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
377      <text string="9k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
378   </element>
379   <element name="Lamp_White_10k">
380      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
381      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
382      <text string="10k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.0" y="0.1" width="1.00" height="0.75" /></text>
383   </element>
384   <element name="Lamp_White_12k">
385      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
386      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
387      <text string="12k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
388   </element>
389   <element name="Lamp_White_15k">
390      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
391      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
392      <text string="15k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
393   </element>
394   <element name="Lamp_White_20k">
395      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
396      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
397      <text string="20k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
398   </element>
399   <element name="Lamp_White_25k">
400      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
401      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
402      <text string="25k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
403   </element>
404   <element name="Lamp_White_50k">
405      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
406      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
407      <text string="50k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
408   </element>
409
410
411   <element name="Lamp_White_1">
412      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
413      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
414      <text string="1"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
415   </element>
416   <element name="Lamp_White_2">
417      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
418      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
419      <text string="2"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
420   </element>
421   <element name="Lamp_White_3">
422      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
423      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
424      <text string="3"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
425   </element>
426   <element name="Lamp_White_4">
427      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
428      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
429      <text string="4"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
430   </element>
431   <element name="Lamp_White_5">
432      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
433      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
434      <text string="5"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
435   </element>
436
437   <element name="Lamp_White_A">
438      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
439      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
440      <text string="A"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
441   </element>
442   <element name="Lamp_White_B">
443      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
444      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
445      <text string="B"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
446   </element>
447
448
449   <element name="Credit_Indicator">
450      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="2.5" y="0" width="1.0" height="1.0" /></disk>
451      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="2.5" y="0" width="1.0" height="1.0" /></disk>
452      <text string="Credit Indicator"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="1.1" width="6.5" height="0.90" /></text>
453   </element>
454
455
456   <element name="Lamp_Green_Arrow_Up_2x" defstate="1">
457      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
458      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
459      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
460      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
461      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
462      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
463      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
464      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
465      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
466      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
467      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
468      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
469      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
470      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
471      <text string="2x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="06" y="08" width="12" height="12" /></text>
472   </element>
473
474   <element name="Lamp_Yellow_Arrow_Up_3x" defstate="1">
475      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
476      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
477      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
478      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
479      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
480      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
481      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
482      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
483      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
484      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
485      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
486      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
487      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
488      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
489      <text string="3x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="06" y="08" width="12" height="12" /></text>
490   </element>
491
492   <element name="Lamp_White_Arrow_Up_5x" defstate="1">
493      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
494      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="10" y="00" width="02" height="03" /></rect>
495      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
496      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="08" y="03" width="06" height="03" /></rect>
497      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
498      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="06" width="10" height="03" /></rect>
499      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
500      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="04" y="09" width="14" height="03" /></rect>
501      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
502      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="02" y="12" width="18" height="03" /></rect>
503      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
504      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="00" y="15" width="22" height="03" /></rect>
505      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
506      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="09" y="06" width="04" height="30" /></rect>
507      <text string="5x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="06" y="08" width="12" height="12" /></text>
508   </element>
509
510   <element name="Lamp_White_Arrow_Up_3k" defstate="0">
511      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="10" y="00" width="02" height="03" /></rect>
512      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="08" y="03" width="06" height="03" /></rect>
513      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="06" width="10" height="03" /></rect>
514      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="04" y="09" width="14" height="03" /></rect>
515      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="02" y="12" width="18" height="03" /></rect>
516      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="15" width="22" height="03" /></rect>
517      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="09" y="06" width="04" height="30" /></rect>
518      <text string="3k"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="06" y="08" width="12" height="12" /></text>
519   </element>
520
521   <element name="Lamp_Green_Arrow_04_2x" defstate="1">   <!-- Point at 4 o clock -->
522      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="00" y="00" width="08" height="03" /></rect>
523      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="00" y="00" width="08" height="03" /></rect>
524      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="05" y="03" width="08" height="03" /></rect>
525      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="05" y="03" width="08" height="03" /></rect>
526      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="10" y="06" width="08" height="03" /></rect>
527      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="10" y="06" width="08" height="03" /></rect>
528      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="24" y="03" width="02" height="03" /></rect>
529      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="24" y="03" width="02" height="03" /></rect>
530      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="22" y="06" width="06" height="03" /></rect>
531      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="22" y="06" width="06" height="03" /></rect>
532      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="15" y="09" width="15" height="03" /></rect>
533      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="15" y="09" width="15" height="03" /></rect>
534      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="18" y="12" width="14" height="03" /></rect>
535      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="18" y="12" width="14" height="03" /></rect>
536      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="17" y="15" width="17" height="03" /></rect>
537      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="17" y="15" width="17" height="03" /></rect>
538      <rect state="1"><color red="0.00" green="1.00" blue="0.00" /><bounds x="16" y="18" width="20" height="03" /></rect>
539      <rect state="0"><color red="0.00" green="0.15" blue="0.00" /><bounds x="16" y="18" width="20" height="03" /></rect>
540      <text string="2x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="18" y="08" width="15" height="15" /></text>
541   </element>
542
543   <element name="Lamp_Yellow_Arrow_04_3x" defstate="1">   <!-- Point at 4 o clock -->
544      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="00" y="00" width="08" height="03" /></rect>
545      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="00" y="00" width="08" height="03" /></rect>
546      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="05" y="03" width="08" height="03" /></rect>
547      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="05" y="03" width="08" height="03" /></rect>
548      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="10" y="06" width="08" height="03" /></rect>
549      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="10" y="06" width="08" height="03" /></rect>
550      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="24" y="03" width="02" height="03" /></rect>
551      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="24" y="03" width="02" height="03" /></rect>
552      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="22" y="06" width="06" height="03" /></rect>
553      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="22" y="06" width="06" height="03" /></rect>
554      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="15" y="09" width="15" height="03" /></rect>
555      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="15" y="09" width="15" height="03" /></rect>
556      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="18" y="12" width="14" height="03" /></rect>
557      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="18" y="12" width="14" height="03" /></rect>
558      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="17" y="15" width="17" height="03" /></rect>
559      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="17" y="15" width="17" height="03" /></rect>
560      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="16" y="18" width="20" height="03" /></rect>
561      <rect state="0"><color red="0.15" green="0.15" blue="0.00" /><bounds x="16" y="18" width="20" height="03" /></rect>
562      <text string="3x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="18" y="08" width="15" height="15" /></text>
563   </element>
564
565   <element name="Lamp_White_Arrow_08_5x" defstate="1">   <!-- Point at 8 o clock -->
566      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="28" y="00" width="08" height="03" /></rect>
567      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="28" y="00" width="08" height="03" /></rect>
568      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="23" y="03" width="08" height="03" /></rect>
569      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="23" y="03" width="08" height="03" /></rect>
570      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="06" width="08" height="03" /></rect>
571      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="18" y="06" width="08" height="03" /></rect>
572      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="10" y="03" width="02" height="03" /></rect>
573      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="10" y="03" width="02" height="03" /></rect>
574      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="08" y="06" width="06" height="03" /></rect>
575      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="08" y="06" width="06" height="03" /></rect>
576      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
577      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="09" width="15" height="03" /></rect>
578      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="04" y="12" width="14" height="03" /></rect>
579      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="04" y="12" width="14" height="03" /></rect>
580      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="02" y="15" width="17" height="03" /></rect>
581      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="02" y="15" width="17" height="03" /></rect>
582      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="18" width="20" height="03" /></rect>
583      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="00" y="18" width="20" height="03" /></rect>
584      <text string="5x"><color red="0.0" green="0.0" blue="0.0"  /><bounds x="06" y="08" width="15" height="15" /></text>
585   </element>
586
587   <element name="Lamp_White_Arrow_01" defstate="1">   <!-- Point at 1 o clock -->
588      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="00" width="03" height="20" /></rect>
589      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="18" y="00" width="03" height="20" /></rect>
590      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="15" y="02" width="03" height="17" /></rect>
591      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="15" y="02" width="03" height="17" /></rect>
592      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04" width="03" height="14" /></rect>
593      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="12" y="04" width="03" height="14" /></rect>
594      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="09" y="06" width="03" height="15" /></rect>
595      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="09" y="06" width="03" height="15" /></rect>
596      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="08" width="03" height="06" /></rect>
597      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="08" width="03" height="06" /></rect>
598      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="03" y="10" width="03" height="02" /></rect>
599      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="03" y="10" width="03" height="02" /></rect>
600      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="18" width="03" height="08" /></rect>
601      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="18" width="03" height="08" /></rect>
602      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="03" y="23" width="03" height="08" /></rect>
603      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="03" y="23" width="03" height="08" /></rect>
604      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="28" width="03" height="08" /></rect>
605      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="00" y="28" width="03" height="08" /></rect>
606   </element>
607
608   <element name="Lamp_Amber_Arrow_08" defstate="1">   <!-- Point at 8 o clock -->
609      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="28" y="00" width="08" height="03" /></rect>
610      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="28" y="00" width="08" height="03" /></rect>
611      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="23" y="03" width="08" height="03" /></rect>
612      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="23" y="03" width="08" height="03" /></rect>
613      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="18" y="06" width="08" height="03" /></rect>
614      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="18" y="06" width="08" height="03" /></rect>
615      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="10" y="03" width="02" height="03" /></rect>
616      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="10" y="03" width="02" height="03" /></rect>
617      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="08" y="06" width="06" height="03" /></rect>
618      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="08" y="06" width="06" height="03" /></rect>
619      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
620      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
621      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="04" y="12" width="14" height="03" /></rect>
622      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="04" y="12" width="14" height="03" /></rect>
623      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="02" y="15" width="17" height="03" /></rect>
624      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="02" y="15" width="17" height="03" /></rect>
625      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="00" y="18" width="20" height="03" /></rect>
626      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="00" y="18" width="20" height="03" /></rect>
627   </element>
628
629   <element name="Lamp_Amber_Arrow_10" defstate="1">   <!-- Point at 10 o clock -->
630      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="28" y="18" width="08" height="03" /></rect>
631      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="28" y="18" width="08" height="03" /></rect>
632      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="23" y="15" width="08" height="03" /></rect>
633      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="23" y="15" width="08" height="03" /></rect>
634      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="18" y="12" width="08" height="03" /></rect>
635      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="18" y="12" width="08" height="03" /></rect>
636      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="10" y="15" width="02" height="03" /></rect>
637      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="10" y="15" width="02" height="03" /></rect>
638      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="08" y="12" width="06" height="03" /></rect>
639      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="08" y="12" width="06" height="03" /></rect>
640      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
641      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
642      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="04" y="06" width="14" height="03" /></rect>
643      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="04" y="06" width="14" height="03" /></rect>
644      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="02" y="03" width="17" height="03" /></rect>
645      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="02" y="03" width="17" height="03" /></rect>
646      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="00" y="00" width="20" height="03" /></rect>
647      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="00" y="00" width="20" height="03" /></rect>
648   </element>
649
650   <element name="Lamp_Red_Arrow_08" defstate="1">   <!-- Point at 8 o clock -->
651      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="28" y="00" width="08" height="03" /></rect>
652      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="28" y="00" width="08" height="03" /></rect>
653      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="23" y="03" width="08" height="03" /></rect>
654      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="23" y="03" width="08" height="03" /></rect>
655      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="18" y="06" width="08" height="03" /></rect>
656      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="18" y="06" width="08" height="03" /></rect>
657      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="10" y="03" width="02" height="03" /></rect>
658      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="10" y="03" width="02" height="03" /></rect>
659      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="08" y="06" width="06" height="03" /></rect>
660      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="08" y="06" width="06" height="03" /></rect>
661      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
662      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
663      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="04" y="12" width="14" height="03" /></rect>
664      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="04" y="12" width="14" height="03" /></rect>
665      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="02" y="15" width="17" height="03" /></rect>
666      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="02" y="15" width="17" height="03" /></rect>
667      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="18" width="20" height="03" /></rect>
668      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="00" y="18" width="20" height="03" /></rect>
669   </element>
670
671   <element name="Lamp_White_Arrow_11_A" defstate="1">   <!-- Point at 11 o clock -->
672      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="00" width="03" height="20" /></rect>
673      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="00" y="00" width="03" height="20" /></rect>
674      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="03" y="02" width="03" height="17" /></rect>
675      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="03" y="02" width="03" height="17" /></rect>
676      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="04" width="03" height="14" /></rect>
677      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="04" width="03" height="14" /></rect>
678      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="09" y="06" width="03" height="15" /></rect>
679      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="09" y="06" width="03" height="15" /></rect>
680      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="08" width="03" height="06" /></rect>
681      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="12" y="08" width="03" height="06" /></rect>
682      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="15" y="10" width="03" height="02" /></rect>
683      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="15" y="10" width="03" height="02" /></rect>
684      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="18" width="03" height="08" /></rect>
685      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="12" y="18" width="03" height="08" /></rect>
686      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="15" y="23" width="03" height="08" /></rect>
687      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="15" y="23" width="03" height="08" /></rect>
688      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="28" width="03" height="08" /></rect>
689      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="18" y="28" width="03" height="08" /></rect>
690      <text string="A"><color red="0.0" green="0.0" blue="0.0"   /><bounds x="-2" y="03" width="18" height="18" /></text>
691   </element>
692
693   <element name="Lamp_White_Arrow_01_B" defstate="1">   <!-- Point at 1 o clock -->
694      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="00" width="03" height="20" /></rect>
695      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="18" y="00" width="03" height="20" /></rect>
696      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="15" y="02" width="03" height="17" /></rect>
697      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="15" y="02" width="03" height="17" /></rect>
698      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04" width="03" height="14" /></rect>
699      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="12" y="04" width="03" height="14" /></rect>
700      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="09" y="06" width="03" height="15" /></rect>
701      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="09" y="06" width="03" height="15" /></rect>
702      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="08" width="03" height="06" /></rect>
703      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="08" width="03" height="06" /></rect>
704      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="03" y="10" width="03" height="02" /></rect>
705      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="03" y="10" width="03" height="02" /></rect>
706      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="18" width="03" height="08" /></rect>
707      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="18" width="03" height="08" /></rect>
708      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="03" y="23" width="03" height="08" /></rect>
709      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="03" y="23" width="03" height="08" /></rect>
710      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="28" width="03" height="08" /></rect>
711      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="00" y="28" width="03" height="08" /></rect>
712      <text string="B"><color red="0.0" green="0.0" blue="0.0"   /><bounds x="06" y="03" width="18" height="18" /></text>
713   </element>
714
715
716<!-- Backbox Indicators -->
717
718   <element name="Text_Credit"><text string="CREDIT"><color red="1.0" green="1.0" blue="1.0" /></text></element>
719   <element name="Text_Lamps"><text string="Lamps"><color red="1.0" green="1.0" blue="1.0" /></text></element>
720   <element name="Text_15"><text string="U1 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
721   <element name="Text_30"><text string="U2 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
722   <element name="Text_45"><text string="U3 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
723   <element name="Text_60"><text string="U4 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
724   <element name="Text_Solenoids"><text string="Momentary Solenoids"><color red="1.0" green="1.0" blue="1.0" /></text></element>
725   <element name="Text_Coils"><text string="Coils"><color red="1.0" green="1.0" blue="1.0" /></text></element>
726   <element name="Text_MPU_LED"><text string="MPU LED"><color red="1.0" green="1.0" blue="1.0" /></text></element>
727   <element name="Text_Activity"><text string="Activity Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
728   <element name="Text_Service"><text string="Service Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
729   <element name="Text_Slam"><text string="Slam Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
730   <element name="Text_Tilt"><text string="Tilt Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
731   <element name="Text_Knocker"><text string="Knocker"><color red="1.0" green="1.0" blue="1.0" /></text></element>
732
733
734   <element name="High_Score_To_Date" defstate="0">
735      <text string="HIGH SCORE TO DATE" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="1" /></text>
736      <text string="HIGH SCORE TO DATE" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="1" /></text>
737   </element>
738   <element name="Ball_In_Play" defstate="0">
739      <text string="BALL IN PLAY" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.1" y="0.1" width="1" height="0.8" /></text>
740      <text string="BALL IN PLAY" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0.1" y="0.1" width="1" height="0.8" /></text>
741   </element>
742   <element name="Match" defstate="0">
743      <text string="MATCH" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
744      <text string="MATCH" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
745   </element>
746   <element name="Game_Over" defstate="0">
747      <text string="GAME OVER" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
748      <text string="GAME OVER" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
749   </element>
750   <element name="Tilt" defstate="0">
751      <text string="TILT" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
752      <text string="TILT" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
753   </element>
754   <element name="Shoot_Again" defstate="0">
755      <text string="SAME PLAYER"  state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
756      <text string="SAME PLAYER"  state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
757      <text string="SHOOTS AGAIN" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.9" width="1" height="0.8" /></text>
758      <text string="SHOOTS AGAIN" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.9" width="1" height="0.8" /></text>
759   </element>
760
761
762   <element name="Digit" defstate="0">
763      <led7seg><color red="1.0" green="0.35" blue="0.0" /></led7seg>
764   </element>
765
766   <element name="LED_Green" defstate="1">
767      <disk state="0"><color red="0.0" green="0.25" blue="0.0" /></disk>
768      <disk state="1"><color red="0.0" green="1.00" blue="0.0" /></disk>
769   </element>
770
771   <element name="LED_Red" defstate="1">
772      <disk state="0"><color red="0.25" green="0.0" blue="0.0" /></disk>
773      <disk state="1"><color red="1.00" green="0.0" blue="0.0" /></disk>
774   </element>
775
776
777
778<!-- Solenoids -->
779
780   <element name="Solenoid_PullDown">
781      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="3" y="0" width="03" height="09" /></rect>
782      <rect state="0"><color red="0.0" green="1.0" blue="1.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
783      <rect state="1"><color red="1.0" green="1.0" blue="0.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
784   </element>
785
786   <element name="Coil_PullDown">
787      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="8" y="0" width="02" height="01" /></rect>
788      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="6" y="1" width="02" height="01" /></rect>
789      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="4" y="2" width="02" height="01" /></rect>
790      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="2" y="3" width="02" height="01" /></rect>
791      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="4" width="02" height="01" /></rect>
792      <rect          ><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="5" width="02" height="02" /></rect>
793      <rect state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="4" width="10" height="01" /></rect>
794
795      <rect state="0"><color red="0.0" green="1.0" blue="1.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
796      <rect state="1"><color red="1.0" green="1.0" blue="0.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
797   </element>
798
799
800   <element name="Solenoid_Knocker" defstate="0">
801      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="00" y="03" width="09" height="03" /></rect>
802      <rect state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="18" y="03" width="05" height="03" /></rect>
803      <rect state="0"><color red="0.0" green="1.0" blue="1.0" /><bounds x="08" y="00" width="11" height="10" /></rect>
804      <rect state="1"><color red="1.0" green="1.0" blue="0.0" /><bounds x="08" y="00" width="11" height="10" /></rect>
805   </element>
806
807   <element name="Solenoid_Outhole" defstate="0">
808      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="17" y="00" width="05" height="16" /></text>
809      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="02" y="00" width="05" height="16" /></text>
810      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="18" y="00" width="05" height="16" /></text>
811      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="03" y="00" width="05" height="16" /></text>
812      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="19" y="00" width="05" height="16" /></text>
813      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="04" y="00" width="05" height="16" /></text>
814      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="20" y="00" width="05" height="16" /></text>
815      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="05" y="00" width="05" height="16" /></text>
816      <rect            state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="02" y="02" width="18" height="10" /></rect>
817      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="00" y="13" width="25" height="03" /></rect>
818      <text string="Outhole"    ><color red="1.0" green="1.0" blue="1.0" /><bounds x="30" y="12" width="28" height="9.5" /></text>
819   </element>
820
821   <element name="Solenoid_Kickback" defstate="0">
822      <rect state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="3" y="00" width="03" height="15" /></rect>
823      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="3" y="07" width="03" height="08" /></rect>
824      <rect state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="00" width="10" height="04" /></rect>
825      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="07" width="10" height="04" /></rect>
826   </element>
827
828   <element name="Solenoid_SlingShot_Left" defstate="0">
829      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="05" y="00" width="65"   height="80" /></text>
830      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="00" y="00" width="65"   height="80" /></text>
831      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="20" y="16" width="04"   height="60" /></rect>
832      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="20" y="76" width="24.5" height="04" /></rect>
833   </element>
834   <element name="Solenoid_SlingShot_Right" defstate="0">
835      <text string="/" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="-5"   y="00" width="65" height="80" /></text>
836      <text string="/" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="00"   y="00" width="65" height="80" /></text>
837      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="40"   y="16" width="04" height="60" /></rect>
838      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="19.5" y="76" width="24" height="04" /></rect>
839   </element>
840
841
842   <element name="Solenoid_Bumper_Black_Star" defstate="0">
843      <disk state="0"> <color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
844      <disk state="1"> <color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
845      <text string="*"><color red="0.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
846      <disk>           <color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
847   </element>
848   <element name="Switch_Bumper_Black_Star" defstate="0">
849      <text string="*" state="9"><color red="0.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
850      <disk            state="0"><color red="0.0" green="0.0" blue="0.0" /><bounds x="14" y="15" width="50" height="50" /></disk>
851      <disk            state="1"><color red="0.5" green="0.5" blue="0.5" /><bounds x="14" y="15" width="50" height="50" /></disk>
852   </element>
853   <element name="Lamp_Bumper_GI">
854      <text string="*" state="9"><color red="0.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
855      <disk                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
856   </element>
857
858   <element name="Solenoid_Bumper_Blue_Star" defstate="0">
859      <disk state="0"> <color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
860      <disk state="1"> <color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
861      <text string="*"><color red="0.3" green="0.5" blue="1.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
862      <disk>           <color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
863   </element>
864   <element name="Switch_Bumper_Blue_Star" defstate="0">
865      <text string="*" state="9"><color red="0.3" green="0.5" blue="1.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
866      <disk            state="0"><color red="0.3" green="0.3" blue="1.0" /><bounds x="14" y="15" width="50" height="50" /></disk>
867      <disk            state="1"><color red="0.5" green="0.5" blue="0.5" /><bounds x="14" y="15" width="50" height="50" /></disk>
868   </element>
869   <element name="Lamp_Bumper_Blue_1000" defstate="1">
870      <text string="*" state="9"><color red="0.3" green="0.5" blue="1.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
871      <disk            state="0"><color red="0.7" green="0.7" blue="0.7" /><bounds x="18" y="18" width="44" height="44" /></disk>
872      <disk            state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
873      <text string="1000">       <color red="0.3" green="0.5" blue="1.0" /><bounds x="07" y="29" width="70" height="23" /></text>
874   </element>
875
876   <element name="Solenoid_Bumper_Red_Star" defstate="0">
877      <disk state="0"> <color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
878      <disk state="1"> <color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
879      <text string="*"><color red="1.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
880      <disk>           <color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
881   </element>
882   <element name="Switch_Bumper_Red_Star" defstate="0">
883      <text string="*" state="9"><color red="1.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
884      <disk            state="0"><color red="1.0" green="0.0" blue="0.0" /><bounds x="14" y="15" width="50" height="50" /></disk>
885      <disk            state="1"><color red="0.5" green="0.5" blue="0.5" /><bounds x="14" y="15" width="50" height="50" /></disk>
886   </element>
887   <element name="Lamp_Bumper_Red_1000" defstate="0">
888      <text string="*" state="9"><color red="0.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
889      <disk            state="0"><color red="0.7" green="0.7" blue="0.7" /><bounds x="18" y="18" width="44" height="44" /></disk>
890      <disk            state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
891      <text string="1000">       <color red="1.0" green="0.0" blue="0.0" /><bounds x="07" y="29" width="70" height="23" /></text>
892   </element>
893
894   <element name="Solenoid_Bumper_Yellow_Star" defstate="0">
895      <disk state="0"> <color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
896      <disk state="1"> <color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
897      <text string="*"><color red="1.0" green="1.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
898      <disk>           <color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
899   </element>
900   <element name="Switch_Bumper_Yellow_Star" defstate="0">
901      <text string="*" state="9"><color red="1.0" green="1.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
902      <disk            state="0"><color red="1.0" green="1.0" blue="0.0" /><bounds x="14" y="15" width="50" height="50" /></disk>
903      <disk            state="1"><color red="0.5" green="0.5" blue="0.5" /><bounds x="14" y="15" width="50" height="50" /></disk>
904   </element>
905
906   <element name="Solenoid_Bumper_Green_Star" defstate="0">
907      <disk state="0"> <color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
908      <disk state="1"> <color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
909      <text string="*"><color red="0.0" green="1.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
910      <disk>           <color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
911   </element>
912   <element name="Switch_Bumper_Green_Star" defstate="0">
913      <text string="*" state="9"><color red="0.0" green="1.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
914      <disk            state="0"><color red="0.0" green="1.0" blue="0.0" /><bounds x="14" y="15" width="50" height="50" /></disk>
915      <disk            state="1"><color red="0.5" green="0.5" blue="0.5" /><bounds x="14" y="15" width="50" height="50" /></disk>
916   </element>
917
918   <element name="Lamp_Bumper_Silver_100" defstate="1">
919      <text string="*" state="9"><color red="0.5" green="0.5" blue="0.5" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
920      <disk            state="0"><color red="0.7" green="0.7" blue="0.7" /><bounds x="18" y="18" width="44" height="44" /></disk>
921      <disk            state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
922      <text string="100">        <color red="0.5" green="0.5" blue="0.5" /><bounds x="07" y="29" width="66" height="23" /></text>
923   </element>
924   <element name="Lamp_Bumper_Silver_1000" defstate="1">
925      <text string="*" state="9"><color red="0.5" green="0.5" blue="0.5" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
926      <disk            state="0"><color red="0.7" green="0.7" blue="0.7" /><bounds x="18" y="18" width="44" height="44" /></disk>
927      <disk            state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
928      <text string="1000">       <color red="0.5" green="0.5" blue="0.5" /><bounds x="07" y="29" width="70" height="23" /></text>
929   </element>
930
931
932   <element name="Solenoid_Saucer" defstate="0">
933      <disk>          <color red="1.0" green="0.8" blue="0.5" /><bounds x="00" y="00" width="70" height="70" /></disk> <!-- 71 -->
934      <disk>          <color red="0.7" green="0.7" blue="0.7" /><bounds x="10" y="10" width="49" height="49" /></disk> <!-- 51 -->
935      <rect state="0"><color red="0.3" green="0.3" blue="0.3" /><bounds x="31" y="07" width="07" height="25" /></rect>
936      <rect state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="31" y="07" width="07" height="25" /></rect>
937      <disk>          <color red="0.0" green="0.0" blue="0.0" /><bounds x="27" y="40" width="15" height="15" /></disk>
938   </element>
939   <element name="Switch_Saucer" defstate="0">
940      <disk state="9"><color red="1.0" green="0.8" blue="0.5" /><bounds x="00" y="00" width="70" height="70" /></disk>
941      <disk state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="30" y="43" width="09" height="09" /></disk>
942      <disk state="1"><color red="0.0" green="0.0" blue="0.0" /><bounds x="30" y="43" width="09" height="09" /></disk>
943   </element>
944
945
946   <element name="Coil_Post_Up" defstate="0">
947      <disk state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="00" y="00" width="21" height="21" /></disk>
948   </element>
949   <element name="Solenoid_Post_Down" defstate="0">
950      <disk state="9"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="00" width="21" height="21" /></disk>
951      <disk state="1"><color red="0.50" green="0.10" blue="0.00" /><bounds x="01" y="01" width="19" height="19" /></disk>
952      <disk state="1"><color red="0.15" green="0.06" blue="0.00" /><bounds x="02" y="02" width="17" height="17" /></disk>
953      <rect state="1"><color red="0.50" green="0.10" blue="0.00" /><bounds x="10" y="02" width="01" height="17" /></rect>
954      <rect state="1"><color red="0.50" green="0.10" blue="0.00" /><bounds x="02" y="10" width="17" height="01" /></rect>
955      <disk state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="08" y="08" width="06" height="06" /></disk>
956   </element>
957   <element name="Lamp_Post" defstate="0">
958      <disk state="9"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="00" width="21" height="21" /></disk>
959      <disk          ><color red="0.50" green="0.10" blue="0.00" /><bounds x="01" y="01" width="19" height="19" /></disk>
960      <disk state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="02" y="02" width="17" height="17" /></disk>
961      <disk state="1"><color red="0.80" green="0.20" blue="0.00" /><bounds x="02" y="02" width="17" height="17" /></disk>
962      <rect          ><color red="0.50" green="0.10" blue="0.00" /><bounds x="10" y="02" width="01" height="17" /></rect>
963      <rect          ><color red="0.50" green="0.10" blue="0.00" /><bounds x="02" y="10" width="17" height="01" /></rect>
964   </element>
965
966
967<!-- Line colours -->
968
969   <element name="Draw_White" defstate="1">
970      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
971      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
972   </element>
973   <element name="Draw_Red" defstate="1">
974      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
975      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
976   </element>
977   <element name="Draw_Amber" defstate="1">
978      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
979      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
980   </element>
981
982   <element name="Canvas">
16983      <rect>
984         <color red="0.0" green="0.0" blue="0.0" />
17985         <bounds left="0" top="0" right="1" bottom="1" />
18         <color red="0.0" green="0.0" blue="0.0" />
19986      </rect>
20987   </element>
21   <element name="P0"><text string="Ball / Match"><color red="1.0" green="1.0" blue="1.0" /></text></element>
22   <element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
23   <element name="P2"><text string="Players"><color red="1.0" green="1.0" blue="1.0" /></text></element>
24   <element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
25   <element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
26   <element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
27   <element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element>
28988
29   <view name="Default Layout">
30989
990
991
992
993   <view name="Blank Playfield">
994
31995      <!-- Background -->
32      <backdrop element="background">
33         <bounds left="0" top="20" right="318" bottom="394" />
34      </backdrop>
996      <backdrop element="Canvas"><bounds x="000" y="000" width="640" height="480" /></backdrop>
35997
36      <!-- LEDs -->
998      <bezel element="Draw_White"><bounds x="000" y="000" width="640" height="001" /></bezel>
999      <bezel element="Draw_White"><bounds x="000" y="000" width="001" height="480" /></bezel>
1000      <bezel element="Draw_White"><bounds x="640" y="000" width="001" height="480" /></bezel>
1001      <bezel element="Draw_White"><bounds x="000" y="480" width="640" height="001" /></bezel>
1002      <bezel element="Draw_White"><bounds x="320" y="000" width="001" height="480" /></bezel>
1003      <bezel element="Draw_White"><bounds x="320" y="320" width="320" height="001" /></bezel>
1004      <!--   <bezel element="Draw_White"><bounds x="159" y="000" width="001" height="480" /></bezel>   -->
371005
1006
1007      <bezel element="Title_Bally"><bounds x="430" y="18" width="105" height="30" /></bezel>
1008
1009      <bezel element="Text_Playfield"><bounds x="040" y="010" width="250" height="14" /></bezel>
1010      <bezel element="Text_Legend"><bounds x="018" y="35" width="300" height="12" /></bezel>
1011      <bezel element="Text_Multiball"><bounds x="013" y="350" width="314" height="12" /></bezel>
1012
1013
1014      <!-- Backbox -->
1015
1016      <!-- MPU Board Power On Self Test LED -->
1017      <bezel element="Text_MPU_LED">         <bounds x="609" y="342" width="30" height="10" /></bezel>
1018      <bezel name="led0" element="LED_Green"><bounds x="618" y="328" width="10" height="10" /></bezel>
1019
1020      <!-- MPU Board Activity Switch -->
1021      <bezel element="Text_Activity">                                      <bounds x="540" y="342" width="50" height="10" /></bezel>
1022      <bezel element="Switch_Push-Button" inputtag="TEST" inputmask="0x02"><bounds x="550" y="331" width="20" height="10" /></bezel>
1023      <bezel element="Key_0">                                              <bounds x="571" y="330" width="10" height="10" /></bezel>
1024
1025
381026      <!-- Player 1 Score -->
1027      <bezel name="lamp14" element="Lamp_P1"><bounds x="330" y="55" width="15" height="15" /></bezel>         <!-- Backbox ~ 1st Player Up -->
1028      <bezel name="digit17" element="Digit"><bounds x="360" y="55" width="10" height="15" /></bezel>
1029      <bezel name="digit16" element="Digit"><bounds x="374" y="55" width="10" height="15" /></bezel>
1030      <bezel name="digit15" element="Digit"><bounds x="388" y="55" width="10" height="15" /></bezel>
1031      <bezel name="digit14" element="Digit"><bounds x="402" y="55" width="10" height="15" /></bezel>
1032      <bezel name="digit13" element="Digit"><bounds x="416" y="55" width="10" height="15" /></bezel>
1033      <bezel name="digit12" element="Digit"><bounds x="430" y="55" width="10" height="15" /></bezel>
1034      <bezel name="digit11" element="Digit"><bounds x="444" y="55" width="10" height="15" /></bezel>
391035
40      <bezel name="digit6" element="digit">
41         <bounds left="10" top="45" right="44" bottom="84" />
42      </bezel>
43      <bezel name="digit5" element="digit">
44         <bounds left="54" top="45" right="88" bottom="84" />
45      </bezel>
46      <bezel name="digit4" element="digit">
47         <bounds left="98" top="45" right="132" bottom="84" />
48      </bezel>
49      <bezel name="digit3" element="digit">
50         <bounds left="142" top="45" right="176" bottom="84" />
51      </bezel>
52      <bezel name="digit2" element="digit">
53         <bounds left="186" top="45" right="220" bottom="84" />
54      </bezel>
55      <bezel name="digit1" element="digit">
56         <bounds left="230" top="45" right="264" bottom="84" />
57      </bezel>
58      <bezel name="digit0" element="digit">
59         <bounds left="274" top="45" right="308" bottom="84" />
60      </bezel>
61
621036      <!-- Player 2 Score -->
63      <bezel name="digit16" element="digit">
64         <bounds left="10" top="105" right="44" bottom="144" />
65      </bezel>
66      <bezel name="digit15" element="digit">
67         <bounds left="54" top="105" right="88" bottom="144" />
68      </bezel>
69      <bezel name="digit14" element="digit">
70         <bounds left="98" top="105" right="132" bottom="144" />
71      </bezel>
72      <bezel name="digit13" element="digit">
73         <bounds left="142" top="105" right="176" bottom="144" />
74      </bezel>
75      <bezel name="digit12" element="digit">
76         <bounds left="186" top="105" right="220" bottom="144" />
77      </bezel>
78      <bezel name="digit11" element="digit">
79         <bounds left="230" top="105" right="264" bottom="144" />
80      </bezel>
81      <bezel name="digit10" element="digit">
82         <bounds left="274" top="105" right="308" bottom="144" />
83      </bezel>
1037      <bezel name="lamp29" element="Lamp_P2"><bounds x="615" y="55" width="15" height="15" /></bezel>         <!-- Backbox ~ 2nd Player Up -->
1038      <bezel name="digit27" element="Digit"><bounds x="506" y="55" width="10" height="15" /></bezel>
1039      <bezel name="digit26" element="Digit"><bounds x="520" y="55" width="10" height="15" /></bezel>
1040      <bezel name="digit25" element="Digit"><bounds x="534" y="55" width="10" height="15" /></bezel>
1041      <bezel name="digit24" element="Digit"><bounds x="548" y="55" width="10" height="15" /></bezel>
1042      <bezel name="digit23" element="Digit"><bounds x="562" y="55" width="10" height="15" /></bezel>
1043      <bezel name="digit22" element="Digit"><bounds x="576" y="55" width="10" height="15" /></bezel>
1044      <bezel name="digit21" element="Digit"><bounds x="590" y="55" width="10" height="15" /></bezel>
841045
851046      <!-- Player 3 Score -->
86      <bezel name="digit26" element="digit">
87         <bounds left="10" top="165" right="44" bottom="204" />
88      </bezel>
89      <bezel name="digit25" element="digit">
90         <bounds left="54" top="165" right="88" bottom="204" />
91      </bezel>
92      <bezel name="digit24" element="digit">
93         <bounds left="98" top="165" right="132" bottom="204" />
94      </bezel>
95      <bezel name="digit23" element="digit">
96         <bounds left="142" top="165" right="176" bottom="204" />
97      </bezel>
98      <bezel name="digit22" element="digit">
99         <bounds left="186" top="165" right="220" bottom="204" />
100      </bezel>
101      <bezel name="digit21" element="digit">
102         <bounds left="230" top="165" right="264" bottom="204" />
103      </bezel>
104      <bezel name="digit20" element="digit">
105         <bounds left="274" top="165" right="308" bottom="204" />
106      </bezel>
1047      <bezel name="lamp44" element="Lamp_P3"><bounds x="330" y="250" width="15" height="15" /></bezel>      <!-- Backbox ~ 3rd Player Up -->
1048      <bezel name="digit37" element="Digit"><bounds x="360" y="250" width="10" height="15" /></bezel>
1049      <bezel name="digit36" element="Digit"><bounds x="374" y="250" width="10" height="15" /></bezel>
1050      <bezel name="digit35" element="Digit"><bounds x="388" y="250" width="10" height="15" /></bezel>
1051      <bezel name="digit34" element="Digit"><bounds x="402" y="250" width="10" height="15" /></bezel>
1052      <bezel name="digit33" element="Digit"><bounds x="416" y="250" width="10" height="15" /></bezel>
1053      <bezel name="digit32" element="Digit"><bounds x="430" y="250" width="10" height="15" /></bezel>
1054      <bezel name="digit31" element="Digit"><bounds x="444" y="250" width="10" height="15" /></bezel>
1071055
1081056      <!-- Player 4 Score -->
109      <bezel name="digit36" element="digit">
110         <bounds left="10" top="225" right="44" bottom="264" />
111      </bezel>
112      <bezel name="digit35" element="digit">
113         <bounds left="54" top="225" right="88" bottom="264" />
114      </bezel>
115      <bezel name="digit34" element="digit">
116         <bounds left="98" top="225" right="132" bottom="264" />
117      </bezel>
118      <bezel name="digit33" element="digit">
119         <bounds left="142" top="225" right="176" bottom="264" />
120      </bezel>
121      <bezel name="digit32" element="digit">
122         <bounds left="186" top="225" right="220" bottom="264" />
123      </bezel>
124      <bezel name="digit31" element="digit">
125         <bounds left="230" top="225" right="264" bottom="264" />
126      </bezel>
127      <bezel name="digit30" element="digit">
128         <bounds left="274" top="225" right="308" bottom="264" />
129      </bezel>
1057      <bezel name="lamp59" element="Lamp_P4"><bounds x="615" y="250" width="15" height="15" /></bezel>      <!-- Backbox ~ 4th Player Up -->
1058      <bezel name="digit47" element="Digit"><bounds x="506" y="250" width="10" height="15" /></bezel>
1059      <bezel name="digit46" element="Digit"><bounds x="520" y="250" width="10" height="15" /></bezel>
1060      <bezel name="digit45" element="Digit"><bounds x="534" y="250" width="10" height="15" /></bezel>
1061      <bezel name="digit44" element="Digit"><bounds x="548" y="250" width="10" height="15" /></bezel>
1062      <bezel name="digit43" element="Digit"><bounds x="562" y="250" width="10" height="15" /></bezel>
1063      <bezel name="digit42" element="Digit"><bounds x="576" y="250" width="10" height="15" /></bezel>
1064      <bezel name="digit41" element="Digit"><bounds x="590" y="250" width="10" height="15" /></bezel>
1301065
131      <!-- Credits and Balls -->
132      <bezel name="digit44" element="digit">
133         <bounds left="10" top="345" right="44" bottom="384" />
134      </bezel>
135      <bezel name="digit43" element="digit">
136         <bounds left="54" top="345" right="88" bottom="384" />
137      </bezel>
138      <bezel name="digit41" element="digit">
139         <bounds left="186" top="345" right="220" bottom="384" />
140      </bezel>
141      <bezel name="digit40" element="digit">
142         <bounds left="230" top="345" right="264" bottom="384" />
143      </bezel>
1066      <!-- Credits and Ball In Play / Match -->
1067      <bezel element="Text_Credit"><bounds x="542" y="142" width="48" height="8" /></bezel>
1068      <bezel name="lamp12"  element="Ball_In_Play"><bounds x="586" y="105" width="50" height="11" /></bezel>   <!-- Backbox ~ Ball In Play -->
1069      <bezel name="lamp25"  element="Match"><bounds x="596" y="152" width="25" height="11" /></bezel>         <!-- Backbox ~ Match -->
1070      <bezel name="digit55" element="Digit"><bounds x="554" y="125" width="10" height="15" /></bezel>
1071      <bezel name="digit54" element="Digit"><bounds x="568" y="125" width="10" height="15" /></bezel>
1072      <bezel name="digit52" element="Digit"><bounds x="596" y="125" width="10" height="15" /></bezel>
1073      <bezel name="digit51" element="Digit"><bounds x="610" y="125" width="10" height="15" /></bezel>
1441074
145      <bezel element="P0"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
146      <bezel element="P1"><bounds left="30" right="88" top="330" bottom="342" /></bezel>
147      <bezel name="text3" element="P3"><bounds left="100" right="180" top="30" bottom="42" /></bezel>
148      <bezel name="text2" element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
149      <bezel name="text1" element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
150      <bezel name="text0" element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
151      <bezel name="led0" element="red_led">
152         <bounds left="110" right="125" top="360" bottom="375" /></bezel>
1075      <bezel name="lamp10" element="Shoot_Again"><bounds x="420" y="295" width="60" height="19" /></bezel>   <!-- Backbox ~ Same Player Shoots Again -->
1076      <bezel name="lamp13" element="Lamp_1P"><bounds x="345" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 1 Player Game -->
1077      <bezel name="lamp28" element="Lamp_2P"><bounds x="360" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 2 Player Game -->
1078      <bezel name="lamp43" element="Lamp_3P"><bounds x="375" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 3 Player Game -->
1079      <bezel name="lamp58" element="Lamp_4P"><bounds x="390" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 4 Player Game -->
1080      <bezel name="lamp27" element="High_Score_To_Date"><bounds x="438" y="6" width="90" height="11" /></bezel>   <!-- Backbox ~ High Score To Date -->
1081      <bezel name="lamp42" element="Game_Over"><bounds x="580" y="300" width="45" height="11" /></bezel>      <!-- Backbox ~ Game Over -->
1082      <bezel name="lamp57" element="Tilt"><bounds x="480" y="297" width="50" height="16" /></bezel>         <!-- Backbox ~ Tilt -->
1083
1084
1085
1086      <bezel element="Text_Lamps"><bounds x="410" y="360" width="60" height="11" /></bezel>
1087      <bezel element="Text_15"><bounds x="552" y="373" width="30" height="11" /></bezel>
1088      <bezel element="Text_30"><bounds x="552" y="388" width="30" height="11" /></bezel>
1089      <bezel element="Text_45"><bounds x="552" y="403" width="30" height="11" /></bezel>
1090      <bezel element="Text_60"><bounds x="552" y="418" width="30" height="11" /></bezel>
1091
1092      <!-- Lamps controlled by U1 on Lamp Driver Board -->
1093      <bezel name="lamp0"  element="Lamp_White"><bounds x="330" y="375" width="8" height="8" /></bezel>
1094      <bezel name="lamp1"  element="Lamp_White"><bounds x="345" y="375" width="8" height="8" /></bezel>
1095      <bezel name="lamp2"  element="Lamp_White"><bounds x="360" y="375" width="8" height="8" /></bezel>
1096      <bezel name="lamp3"  element="Lamp_White"><bounds x="375" y="375" width="8" height="8" /></bezel>
1097      <bezel name="lamp4"  element="Lamp_White"><bounds x="390" y="375" width="8" height="8" /></bezel>
1098      <bezel name="lamp5"  element="Lamp_White"><bounds x="405" y="375" width="8" height="8" /></bezel>
1099      <bezel name="lamp6"  element="Lamp_White"><bounds x="420" y="375" width="8" height="8" /></bezel>
1100      <bezel name="lamp7"  element="Lamp_White"><bounds x="435" y="375" width="8" height="8" /></bezel>
1101      <bezel name="lamp8"  element="Lamp_White"><bounds x="450" y="375" width="8" height="8" /></bezel>
1102      <bezel name="lamp9"  element="Lamp_White"><bounds x="465" y="375" width="8" height="8" /></bezel>
1103      <bezel name="lamp10" element="Lamp_White"><bounds x="480" y="375" width="8" height="8" /></bezel>
1104      <bezel name="lamp11" element="Lamp_White"><bounds x="495" y="375" width="8" height="8" /></bezel>
1105      <bezel name="lamp12" element="Lamp_White"><bounds x="510" y="375" width="8" height="8" /></bezel>
1106      <bezel name="lamp13" element="Lamp_White"><bounds x="525" y="375" width="8" height="8" /></bezel>
1107      <bezel name="lamp14" element="Lamp_White"><bounds x="540" y="375" width="8" height="8" /></bezel>
1108
1109      <!-- Lamps controlled by U2 on Lamp Driver Board -->
1110      <bezel name="lamp15" element="Lamp_White"><bounds x="330" y="390" width="8" height="8" /></bezel>
1111      <bezel name="lamp16" element="Lamp_White"><bounds x="345" y="390" width="8" height="8" /></bezel>
1112      <bezel name="lamp17" element="Lamp_White"><bounds x="360" y="390" width="8" height="8" /></bezel>
1113      <bezel name="lamp18" element="Lamp_White"><bounds x="375" y="390" width="8" height="8" /></bezel>
1114      <bezel name="lamp19" element="Lamp_White"><bounds x="390" y="390" width="8" height="8" /></bezel>
1115      <bezel name="lamp20" element="Lamp_White"><bounds x="405" y="390" width="8" height="8" /></bezel>
1116      <bezel name="lamp21" element="Lamp_White"><bounds x="420" y="390" width="8" height="8" /></bezel>
1117      <bezel name="lamp22" element="Lamp_White"><bounds x="435" y="390" width="8" height="8" /></bezel>
1118      <bezel name="lamp23" element="Lamp_White"><bounds x="450" y="390" width="8" height="8" /></bezel>
1119      <bezel name="lamp24" element="Lamp_White"><bounds x="465" y="390" width="8" height="8" /></bezel>
1120      <bezel name="lamp25" element="Lamp_White"><bounds x="480" y="390" width="8" height="8" /></bezel>
1121      <bezel name="lamp26" element="Lamp_White"><bounds x="495" y="390" width="8" height="8" /></bezel>
1122      <bezel name="lamp27" element="Lamp_White"><bounds x="510" y="390" width="8" height="8" /></bezel>
1123      <bezel name="lamp28" element="Lamp_White"><bounds x="525" y="390" width="8" height="8" /></bezel>
1124      <bezel name="lamp29" element="Lamp_White"><bounds x="540" y="390" width="8" height="8" /></bezel>
1125
1126      <!-- Lamps controlled by U3 on Lamp Driver Board -->
1127      <bezel name="lamp30" element="Lamp_White"><bounds x="330" y="405" width="8" height="8" /></bezel>
1128      <bezel name="lamp31" element="Lamp_White"><bounds x="345" y="405" width="8" height="8" /></bezel>
1129      <bezel name="lamp32" element="Lamp_White"><bounds x="360" y="405" width="8" height="8" /></bezel>
1130      <bezel name="lamp33" element="Lamp_White"><bounds x="375" y="405" width="8" height="8" /></bezel>
1131      <bezel name="lamp34" element="Lamp_White"><bounds x="390" y="405" width="8" height="8" /></bezel>
1132      <bezel name="lamp35" element="Lamp_White"><bounds x="405" y="405" width="8" height="8" /></bezel>
1133      <bezel name="lamp36" element="Lamp_White"><bounds x="420" y="405" width="8" height="8" /></bezel>
1134      <bezel name="lamp37" element="Lamp_White"><bounds x="435" y="405" width="8" height="8" /></bezel>
1135      <bezel name="lamp38" element="Lamp_White"><bounds x="450" y="405" width="8" height="8" /></bezel>
1136      <bezel name="lamp39" element="Lamp_White"><bounds x="465" y="405" width="8" height="8" /></bezel>
1137      <bezel name="lamp40" element="Lamp_White"><bounds x="480" y="405" width="8" height="8" /></bezel>
1138      <bezel name="lamp41" element="Lamp_White"><bounds x="495" y="405" width="8" height="8" /></bezel>
1139      <bezel name="lamp42" element="Lamp_White"><bounds x="510" y="405" width="8" height="8" /></bezel>
1140      <bezel name="lamp43" element="Lamp_White"><bounds x="525" y="405" width="8" height="8" /></bezel>
1141      <bezel name="lamp44" element="Lamp_White"><bounds x="540" y="405" width="8" height="8" /></bezel>
1142
1143      <!-- Lamps controlled by U4 on Lamp Driver Board -->
1144      <bezel name="lamp45" element="Lamp_White"><bounds x="330" y="420" width="8" height="8" /></bezel>
1145      <bezel name="lamp46" element="Lamp_White"><bounds x="345" y="420" width="8" height="8" /></bezel>
1146      <bezel name="lamp47" element="Lamp_White"><bounds x="360" y="420" width="8" height="8" /></bezel>
1147      <bezel name="lamp48" element="Lamp_White"><bounds x="375" y="420" width="8" height="8" /></bezel>
1148      <bezel name="lamp49" element="Lamp_White"><bounds x="390" y="420" width="8" height="8" /></bezel>
1149      <bezel name="lamp50" element="Lamp_White"><bounds x="405" y="420" width="8" height="8" /></bezel>
1150      <bezel name="lamp51" element="Lamp_White"><bounds x="420" y="420" width="8" height="8" /></bezel>
1151      <bezel name="lamp52" element="Lamp_White"><bounds x="435" y="420" width="8" height="8" /></bezel>
1152      <bezel name="lamp53" element="Lamp_White"><bounds x="450" y="420" width="8" height="8" /></bezel>
1153      <bezel name="lamp54" element="Lamp_White"><bounds x="465" y="420" width="8" height="8" /></bezel>
1154      <bezel name="lamp55" element="Lamp_White"><bounds x="480" y="420" width="8" height="8" /></bezel>
1155      <bezel name="lamp56" element="Lamp_White"><bounds x="495" y="420" width="8" height="8" /></bezel>
1156      <bezel name="lamp57" element="Lamp_White"><bounds x="510" y="420" width="8" height="8" /></bezel>
1157      <bezel name="lamp58" element="Lamp_White"><bounds x="525" y="420" width="8" height="8" /></bezel>
1158      <bezel name="lamp59" element="Lamp_White"><bounds x="540" y="420" width="8" height="8" /></bezel>
1159
1160
1161
1162      <bezel element="Text_Solenoids"><bounds x="382" y="437" width="100" height="11" /></bezel>
1163      <bezel name="solenoid0"  element="Solenoid_PullDown"><bounds x="330" y="452" width="9" height="19" /></bezel>
1164      <bezel name="solenoid1"  element="Solenoid_PullDown"><bounds x="345" y="452" width="9" height="19" /></bezel>
1165      <bezel name="solenoid2"  element="Solenoid_PullDown"><bounds x="360" y="452" width="9" height="19" /></bezel>
1166      <bezel name="solenoid3"  element="Solenoid_PullDown"><bounds x="375" y="452" width="9" height="19" /></bezel>
1167      <bezel name="solenoid4"  element="Solenoid_PullDown"><bounds x="390" y="452" width="9" height="19" /></bezel>
1168      <bezel name="solenoid5"  element="Solenoid_PullDown"><bounds x="405" y="452" width="9" height="19" /></bezel>
1169      <bezel name="solenoid6"  element="Solenoid_PullDown"><bounds x="420" y="452" width="9" height="19" /></bezel>
1170      <bezel name="solenoid7"  element="Solenoid_PullDown"><bounds x="435" y="452" width="9" height="19" /></bezel>
1171      <bezel name="solenoid8"  element="Solenoid_PullDown"><bounds x="450" y="452" width="9" height="19" /></bezel>
1172      <bezel name="solenoid9"  element="Solenoid_PullDown"><bounds x="465" y="452" width="9" height="19" /></bezel>
1173      <bezel name="solenoid10" element="Solenoid_PullDown"><bounds x="480" y="452" width="9" height="19" /></bezel>
1174      <bezel name="solenoid11" element="Solenoid_PullDown"><bounds x="495" y="452" width="9" height="19" /></bezel>
1175      <bezel name="solenoid12" element="Solenoid_PullDown"><bounds x="510" y="452" width="9" height="19" /></bezel>
1176      <bezel name="solenoid13" element="Solenoid_PullDown"><bounds x="525" y="452" width="9" height="19" /></bezel>
1177      <bezel name="solenoid14" element="Solenoid_PullDown"><bounds x="540" y="452" width="9" height="19" /></bezel>
1178
1179      <bezel element="Text_Coils"><bounds x="572" y="437" width="50" height="11" /></bezel>
1180      <bezel name="solenoid16" element="Coil_PullDown"><bounds x="570" y="459" width="09" height="12" /></bezel>
1181      <bezel name="solenoid17" element="Coil_PullDown"><bounds x="585" y="459" width="09" height="12" /></bezel>
1182      <bezel name="solenoid18" element="Coil_PullDown"><bounds x="600" y="459" width="09" height="12" /></bezel>
1183      <bezel name="solenoid19" element="Coil_PullDown"><bounds x="615" y="459" width="09" height="12" /></bezel>
1184
1185
1186
1187      <!-- Cabinet Switches -->
1188      <bezel element="Text_Service">                                       <bounds x="485" y="342" width="50" height="10" /></bezel>
1189      <bezel element="Switch_Push-Button" inputtag="TEST" inputmask="0x01"><bounds x="495" y="331" width="20" height="10" /></bezel>
1190      <bezel element="Key_9">                                              <bounds x="516" y="330" width="10" height="10" /></bezel>
1191
1192      <bezel element="Text_Slam">                                     <bounds x="430" y="342" width="50" height="10" /></bezel>
1193      <bezel element="Switch_SlamTilt" inputtag="X1" inputmask="0x80"><bounds x="434" y="331" width="25" height="08" /></bezel>
1194      <bezel element="Key_Equals">                                    <bounds x="461" y="330" width="10" height="10" /></bezel>
1195
1196      <bezel element="Text_Tilt">                                 <bounds x="380" y="342" width="50" height="10" /></bezel>
1197      <bezel element="Switch_Tilt" inputtag="X0" inputmask="0x40"><bounds x="390" y="324" width="17" height="17" /></bezel>
1198      <bezel element="Key_T">                                     <bounds x="411" y="330" width="10" height="10" /></bezel>
1199
1200
1201      <!-- Misc Solenoids -->
1202      <bezel name="solenoid5"  element="Solenoid_Knocker"><bounds x="297" y="457" width="23" height="09" /></bezel>
1203      <bezel element="Text_Knocker">   <!-- Knocker -->   <bounds x="290" y="467" width="30" height="10" /></bezel>
1204
1205      <!-- Misc Lamps -->
1206      <bezel name="lamp55" element="Credit_Indicator"><bounds x="23" y="456" width="70" height="21" /></bezel><!-- Credit Indicator -->
1207
1208
1209      <!-- Outhole -->
1210      <bezel name="solenoid6"  element="Solenoid_Outhole">                        <bounds x="150" y="455" width="58" height="22" /></bezel>
1211      <bezel element="Switch_RollOn_WireForm_Left" inputtag="X0" inputmask="0x80"><bounds x="163" y="453" width="20" height="16" /></bezel>
1212      <bezel element="Key_BSpace">                                                <bounds x="185" y="455" width="15" height="14" /></bezel>
1213
1214
1215
1216      <bezel element="Text_Switch"><bounds x="070" y="65" width="70" height="12" /></bezel>
1217      <bezel element="ST0">        <bounds x="020" y="080" width="30" height="11" /></bezel>
1218      <bezel element="ST1">        <bounds x="055" y="080" width="30" height="11" /></bezel>
1219      <bezel element="ST2">        <bounds x="090" y="080" width="30" height="11" /></bezel>
1220      <bezel element="ST3">        <bounds x="125" y="080" width="30" height="11" /></bezel>
1221      <bezel element="ST4">        <bounds x="160" y="080" width="30" height="11" /></bezel>
1222      <bezel element="I0">         <bounds x="001" y="100" width="20" height="11" /></bezel>
1223      <bezel element="I1">         <bounds x="001" y="130" width="20" height="11" /></bezel>
1224      <bezel element="I2">         <bounds x="001" y="160" width="20" height="11" /></bezel>
1225      <bezel element="I3">         <bounds x="001" y="190" width="20" height="11" /></bezel>
1226      <bezel element="I4">         <bounds x="001" y="220" width="20" height="11" /></bezel>
1227      <bezel element="I5">         <bounds x="001" y="250" width="20" height="11" /></bezel>
1228      <bezel element="I6">         <bounds x="001" y="280" width="20" height="11" /></bezel>
1229      <bezel element="I7">         <bounds x="001" y="310" width="20" height="11" /></bezel>
1230
1231
1232      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x01"><bounds x="25" y="100" width="20" height="10" /></bezel>
1233      <bezel element="Key_Dot">                                          <bounds x="28" y="107" width="14" height="14" /></bezel>
1234      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x02"><bounds x="25" y="130" width="20" height="10" /></bezel>
1235      <bezel element="Key_FSlash">                                       <bounds x="31" y="141" width="10" height="10" /></bezel>
1236      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x04"><bounds x="25" y="160" width="20" height="10" /></bezel>
1237      <bezel element="Key_OBrkt">                                        <bounds x="31" y="171" width="10" height="10" /></bezel>
1238      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x08"><bounds x="25" y="190" width="20" height="10" /></bezel>
1239      <bezel element="Key_CBrkt">                                        <bounds x="31" y="201" width="10" height="10" /></bezel>
1240      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x10"><bounds x="25" y="220" width="20" height="10" /></bezel>
1241      <bezel element="Key_BSlash">                                       <bounds x="31" y="231" width="10" height="10" /></bezel>
1242      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x20"><bounds x="25" y="250" width="20" height="10" /></bezel>
1243      <bezel element="Key_1">                                            <bounds x="31" y="261" width="10" height="10" /></bezel>
1244      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x40"><bounds x="25" y="280" width="20" height="10" /></bezel>
1245      <bezel element="Key_T">                                            <bounds x="31" y="291" width="10" height="10" /></bezel>
1246      <bezel element="Switch_Push-Button" inputtag="X0" inputmask="0x80"><bounds x="25" y="310" width="20" height="10" /></bezel>
1247      <bezel element="Key_BSpace">                                       <bounds x="28" y="320" width="15" height="14" /></bezel>
1248
1249
1250      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x01"><bounds x="60" y="100" width="20" height="10" /></bezel>
1251      <bezel element="Key_7">                                            <bounds x="66" y="111" width="10" height="10" /></bezel>
1252      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x02"><bounds x="60" y="130" width="20" height="10" /></bezel>
1253      <bezel element="Key_5">                                            <bounds x="66" y="141" width="10" height="10" /></bezel>
1254      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x04"><bounds x="60" y="160" width="20" height="10" /></bezel>
1255      <bezel element="Key_6">                                            <bounds x="66" y="171" width="10" height="10" /></bezel>
1256      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x08"><bounds x="60" y="190" width="20" height="10" /></bezel>
1257      <bezel element="Key_Enter">                                        <bounds x="63" y="199" width="15" height="14" /></bezel>
1258      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x10"><bounds x="60" y="220" width="20" height="10" /></bezel>
1259      <bezel element="Key_Quote">                                        <bounds x="64" y="230" width="14" height="14" /></bezel>
1260      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x20"><bounds x="60" y="250" width="20" height="10" /></bezel>
1261      <bezel element="Key_SColon">                                       <bounds x="65" y="259" width="11" height="11" /></bezel>
1262      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x40"><bounds x="60" y="280" width="20" height="10" /></bezel>
1263      <bezel element="Key_L">                                            <bounds x="66" y="291" width="10" height="10" /></bezel>
1264      <bezel element="Switch_Push-Button" inputtag="X1" inputmask="0x80"><bounds x="60" y="310" width="20" height="10" /></bezel>
1265      <bezel element="Key_Equals">                                       <bounds x="66" y="321" width="10" height="10" /></bezel>
1266
1267
1268      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x01"><bounds x="095" y="100" width="20" height="10" /></bezel>
1269      <bezel element="Key_K">                                            <bounds x="101" y="111" width="10" height="10" /></bezel>
1270      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x02"><bounds x="095" y="130" width="20" height="10" /></bezel>
1271      <bezel element="Key_J">                                            <bounds x="101" y="141" width="10" height="10" /></bezel>
1272      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x04"><bounds x="095" y="160" width="20" height="10" /></bezel>
1273      <bezel element="Key_H">                                            <bounds x="101" y="171" width="10" height="10" /></bezel>
1274      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x08"><bounds x="095" y="190" width="20" height="10" /></bezel>
1275      <bezel element="Key_G">                                            <bounds x="101" y="201" width="10" height="10" /></bezel>
1276      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x10"><bounds x="095" y="220" width="20" height="10" /></bezel>
1277      <bezel element="Key_F">                                            <bounds x="101" y="231" width="10" height="10" /></bezel>
1278      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x20"><bounds x="095" y="250" width="20" height="10" /></bezel>
1279      <bezel element="Key_D">                                            <bounds x="101" y="261" width="10" height="10" /></bezel>
1280      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x40"><bounds x="095" y="280" width="20" height="10" /></bezel>
1281      <bezel element="Key_S">                                            <bounds x="101" y="291" width="10" height="10" /></bezel>
1282      <bezel element="Switch_Push-Button" inputtag="X2" inputmask="0x80"><bounds x="095" y="310" width="20" height="10" /></bezel>
1283      <bezel element="Key_A">                                            <bounds x="101" y="321" width="10" height="10" /></bezel>
1284
1285
1286      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x01"><bounds x="130" y="100" width="20" height="10" /></bezel>
1287      <bezel element="Key_O">                                            <bounds x="136" y="111" width="10" height="10" /></bezel>
1288      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x02"><bounds x="130" y="130" width="20" height="10" /></bezel>
1289      <bezel element="Key_I">                                            <bounds x="136" y="141" width="10" height="10" /></bezel>
1290      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x04"><bounds x="130" y="160" width="20" height="10" /></bezel>
1291      <bezel element="Key_U">                                            <bounds x="136" y="171" width="10" height="10" /></bezel>
1292      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x08"><bounds x="130" y="190" width="20" height="10" /></bezel>
1293      <bezel element="Key_Y">                                            <bounds x="136" y="201" width="10" height="10" /></bezel>
1294      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x10"><bounds x="130" y="220" width="20" height="10" /></bezel>
1295      <bezel element="Key_R">                                            <bounds x="136" y="231" width="10" height="10" /></bezel>
1296      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x20"><bounds x="130" y="250" width="20" height="10" /></bezel>
1297      <bezel element="Key_E">                                            <bounds x="136" y="261" width="10" height="10" /></bezel>
1298      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x40"><bounds x="130" y="280" width="20" height="10" /></bezel>
1299      <bezel element="Key_W">                                            <bounds x="136" y="291" width="10" height="10" /></bezel>
1300      <bezel element="Switch_Push-Button" inputtag="X3" inputmask="0x80"><bounds x="130" y="310" width="20" height="10" /></bezel>
1301      <bezel element="Key_Q">                                            <bounds x="136" y="321" width="10" height="10" /></bezel>
1302
1303
1304      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x01"><bounds x="165" y="100" width="20" height="10" /></bezel>
1305      <bezel element="Key_Comma">                                        <bounds x="168" y="107" width="14" height="14" /></bezel>
1306      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x02"><bounds x="165" y="130" width="20" height="10" /></bezel>
1307      <bezel element="Key_M">                                            <bounds x="171" y="141" width="10" height="10" /></bezel>
1308      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x04"><bounds x="165" y="160" width="20" height="10" /></bezel>
1309      <bezel element="Key_N">                                            <bounds x="171" y="171" width="10" height="10" /></bezel>
1310      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x08"><bounds x="165" y="190" width="20" height="10" /></bezel>
1311      <bezel element="Key_B">                                            <bounds x="171" y="201" width="10" height="10" /></bezel>
1312      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x10"><bounds x="165" y="220" width="20" height="10" /></bezel>
1313      <bezel element="Key_V">                                            <bounds x="171" y="231" width="10" height="10" /></bezel>
1314      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x20"><bounds x="165" y="250" width="20" height="10" /></bezel>
1315      <bezel element="Key_C">                                            <bounds x="171" y="261" width="10" height="10" /></bezel>
1316      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x40"><bounds x="165" y="280" width="20" height="10" /></bezel>
1317      <bezel element="Key_X">                                            <bounds x="171" y="291" width="10" height="10" /></bezel>
1318      <bezel element="Switch_Push-Button" inputtag="X4" inputmask="0x80"><bounds x="165" y="310" width="20" height="10" /></bezel>
1319      <bezel element="Key_Z">                                            <bounds x="171" y="321" width="10" height="10" /></bezel>
1320
1531321   </view>
1322
1541323</mamelayout>
trunk/src/mame/layout/by35_playboy.lay
r0r249894
1<!-- Pinball Machine, Bally ~ Playboy -->
2<!-- [Quench] June 2015 -->
3
4
5<!-- Any state="9" items are not displayed and are only used for object alignment -->
6
7<mamelayout version="2">
8
9   <element name="Title_Playboy"><text string="PLAYBOY"><color red="1.0" green="0.0" blue="1.0" /></text></element>
10
11
12
13<!-- Switches -->
14
15   <element name="Switch_SlamTilt">
16      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="00" width="25" height="01" /></rect>
17      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="08" width="13" height="01.5" /></rect>
18      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="01" width="04" height="02" /></rect>
19      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="06" width="04" height="02" /></rect>
20
21      <rect state="0"><color red="0.70" green="0.70" blue="0.70" /><bounds x="19" y="01" width="06" height="04" /></rect>
22      <rect state="1"><color red="0.70" green="0.70" blue="0.70" /><bounds x="19" y="04" width="06" height="04" /></rect>
23
24      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="00" width="08" height="01" /></rect>
25      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="08" y="01" width="08" height="01" /></rect>
26      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="16" y="02" width="09" height="01" /></rect>
27
28
29      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="00" y="08"  width="13" height="01.5" /></rect>
30      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="03"  width="04" height="02" /></rect>
31      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="08" y="06"  width="04" height="02" /></rect>
32   </element>
33
34   <element name="Switch_Tilt">
35      <rect          ><color red="0.80" green="0.80" blue="0.00" /><bounds x="00" y="00" width="17" height="17" /></rect>
36      <disk          ><color red="0.00" green="0.00" blue="0.00" /><bounds x="01" y="01" width="15" height="15" /></disk>
37      <disk state="0"><color red="0.50" green="0.50" blue="0.50" /><bounds x="04" y="04" width="09" height="09" /></disk>
38      <disk state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="07" width="02" height="02" /></disk>
39
40      <disk state="1"><color red="0.50" green="0.50" blue="0.50" /><bounds x="07" y="04" width="09" height="09" /></disk>
41      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="11" y="07" width="02" height="02" /></disk>
42   </element>
43
44
45   <element name="Switch_Leaf_Vertical">
46      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="0" y="00" width="01"   height="06" /></rect>
47      <rect state="0"><color red="0.80" green="0.80" blue="0.80" /><bounds x="8" y="00" width="01.5" height="06" /></rect>
48      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="1" y="01" width="02"   height="04" /></rect>
49      <rect state="0"><color red="1.00" green="1.00" blue="0.00" /><bounds x="6" y="01" width="02"   height="04" /></rect>
50
51      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="1.5" y="00" width="01" height="06" /></rect>
52      <rect state="1"><color red="0.80" green="0.80" blue="0.80" /><bounds x="6.5" y="00" width="01" height="06" /></rect>
53      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="2"   y="01" width="02" height="04" /></rect>
54      <rect state="1"><color red="1.00" green="1.00" blue="0.00" /><bounds x="4.5" y="01" width="02" height="04" /></rect>
55   </element>
56
57   <element name="Switch_RollOn_WireForm_Left">
58      <text string=">" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="8" y="0" width="11"  height="11"  /></text>
59      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="0.1" height="04"  /></rect>
60      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="09"  height="0.1" /></rect>
61      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="8" width="09"  height="0.1" /></rect>
62      <rect            state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="3" y="6" width="08"  height="0.1" /></rect>
63      <text string=">" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="8" y="0" width="11"  height="11"  /></text>
64      <rect            state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="0.1" height="04"  /></rect>
65      <rect            state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="4" width="09"  height="0.1" /></rect>
66      <rect            state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="8" width="09"  height="0.1" /></rect>
67   </element>
68
69   <element name="Switch_RollOn_WireForm_Down">
70      <text string="/\" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
71      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="17" width="04"  height="0.1" /></rect>
72      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
73      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
74      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="3" y="07" width="0.1" height="08" /></rect>
75      <text string="/\" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
76      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="17" width="04"  height="0.1" /></rect>
77      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
78      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
79   </element>
80
81   <element name="Switch_RollOver_WireForm_Vertical">
82      <text string="/\" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
83      <text string="\/" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="17" width="07"  height="10" /></text>
84      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
85      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
86      <rect             state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="3" y="07" width="0.1" height="13" /></rect>
87      <text string="/\" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="00" width="07"  height="10" /></text>
88      <text string="\/" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="17" width="07"  height="10" /></text>
89      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="1" y="09" width="0.1" height="09" /></rect>
90      <rect             state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="5" y="09" width="0.1" height="09" /></rect>
91   </element>
92
93   <element name="Switch_Target_Red_Forward" defstate="0">
94      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="00" width="10" height="01" /></rect>
95      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="00" width="01" height="05" /></rect>
96      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="16" y="00" width="01" height="05" /></rect>
97
98      <disk state="0"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="05" width="24" height="06" /></disk>
99      <disk state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="02" width="24" height="06" /></disk>
100   </element>
101
102   <element name="Target_White_Left" defstate="0">
103      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="06" width="01" height="10" /></rect>
104      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="06" width="05" height="01" /></rect>
105      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="16" width="05" height="01" /></rect>
106      <disk state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="05" y="00" width="06" height="24" /></disk>
107      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="02" y="00" width="06" height="24" /></disk>
108   </element>
109
110
111   <element name="Switch_RollOver_Button">
112      <text string="*" state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="-10" y="-6" width="35" height="35" /></text>
113      <text string="*" state="1"><color red="0.00" green="0.00" blue="0.00" /><bounds x="-10" y="-6" width="35" height="35" /></text>
114   </element>
115
116   <element name="Lamp_RollOver_Button" defstate="0">
117      <disk state="0"><color red="0.15" green="0.04" blue="0.00" /><bounds x="0" y="0" width="15" height="15" /></disk>
118      <disk state="1"><color red="1.00" green="0.30" blue="0.00" /><bounds x="0" y="0" width="15" height="15" /></disk>
119   </element>
120
121
122   <element name="Switch_Push-Button" defstate="0">
123      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="04" width="16" height="01" /></rect>
124      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="00" width="01" height="04" /></rect>
125      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="17" y="00" width="01" height="04" /></rect>
126      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="00" width="05" height="01" /></rect>
127      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="08.5" width="16" height="01" /></rect>
128      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04.5" width="01" height="04" /></rect>
129      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="17" y="04.5" width="01" height="04" /></rect>
130      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04.5" width="05" height="01" /></rect>
131      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="12" width="09" height="01" /></rect>
132      <rect          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="21" y="12" width="09" height="01" /></rect>
133      <disk          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="07" y="10" width="06" height="06" /></disk>
134      <disk          ><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="10" width="06" height="06" /></disk>
135   </element>
136
137
138
139   <element name="Key_Z">     <text string="Z"><color red="1.00" green="0.66" blue="0.66" /></text></element>
140   <element name="Key_X">     <text string="X"><color red="1.00" green="0.66" blue="0.66" /></text></element>
141   <element name="Key_C">     <text string="C"><color red="1.00" green="0.66" blue="0.66" /></text></element>
142   <element name="Key_V">     <text string="V"><color red="1.00" green="0.66" blue="0.66" /></text></element>
143   <element name="Key_B">     <text string="B"><color red="1.00" green="0.66" blue="0.66" /></text></element>
144   <element name="Key_N">     <text string="N"><color red="1.00" green="0.66" blue="0.66" /></text></element>
145   <element name="Key_M">     <text string="M"><color red="1.00" green="0.66" blue="0.66" /></text></element>
146   <element name="Key_Comma"> <text string=","><color red="1.00" green="0.66" blue="0.66" /></text></element>
147   <element name="Key_Dot">   <text string="."><color red="1.00" green="0.66" blue="0.66" /></text></element>
148   <element name="Key_FSlash"><text string="/"><color red="1.00" green="0.66" blue="0.66" /></text></element>
149
150   <element name="Key_A">     <text string="A"><color red="1.00" green="0.66" blue="0.66" /></text></element>
151   <element name="Key_S">     <text string="S"><color red="1.00" green="0.66" blue="0.66" /></text></element>
152   <element name="Key_D">     <text string="D"><color red="1.00" green="0.66" blue="0.66" /></text></element>
153   <element name="Key_F">     <text string="F"><color red="1.00" green="0.66" blue="0.66" /></text></element>
154   <element name="Key_G">     <text string="G"><color red="1.00" green="0.66" blue="0.66" /></text></element>
155   <element name="Key_H">     <text string="H"><color red="1.00" green="0.66" blue="0.66" /></text></element>
156   <element name="Key_J">     <text string="J"><color red="1.00" green="0.66" blue="0.66" /></text></element>
157   <element name="Key_K">     <text string="K"><color red="1.00" green="0.66" blue="0.66" /></text></element>
158   <element name="Key_L">     <text string="L"><color red="1.00" green="0.66" blue="0.66" /></text></element>
159   <element name="Key_SColon"><text string=";"><color red="1.00" green="0.66" blue="0.66" /></text></element>
160   <element name="Key_Quote"> <text string="'"><color red="1.00" green="0.66" blue="0.66" /></text></element>
161   <element name="Key_Enter">
162      <text string="&#60;"><color red="1.00" green="0.66" blue="0.66" /><bounds x="00" y="00" width="07"  height="10" /></text>
163      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="00" y="00" width="07"  height="10" /></text>
164      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="02" y="00" width="07"  height="10" /></text>
165      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="04" y="00" width="07"  height="10" /></text>
166      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="06" y="00" width="07"  height="10" /></text>
167      <disk           >    <color red="1.00" green="0.66" blue="0.66" /><bounds x="10" y="02" width="0.5" height="03" /></disk>
168   </element>
169
170   <element name="Key_Q">     <text string="Q"><color red="1.00" green="0.66" blue="0.66" /></text></element>
171   <element name="Key_W">     <text string="W"><color red="1.00" green="0.66" blue="0.66" /></text></element>
172   <element name="Key_E">     <text string="E"><color red="1.00" green="0.66" blue="0.66" /></text></element>
173   <element name="Key_R">     <text string="R"><color red="1.00" green="0.66" blue="0.66" /></text></element>
174   <element name="Key_T">     <text string="T"><color red="1.00" green="0.66" blue="0.66" /></text></element>
175   <element name="Key_Y">     <text string="Y"><color red="1.00" green="0.66" blue="0.66" /></text></element>
176   <element name="Key_U">     <text string="U"><color red="1.00" green="0.66" blue="0.66" /></text></element>
177   <element name="Key_I">     <text string="I"><color red="1.00" green="0.66" blue="0.66" /></text></element>
178   <element name="Key_O">     <text string="O"><color red="1.00" green="0.66" blue="0.66" /></text></element>
179   <element name="Key_P">     <text string="P"><color red="1.00" green="0.66" blue="0.66" /></text></element>
180   <element name="Key_OBrkt"> <text string="["><color red="1.00" green="0.66" blue="0.66" /></text></element>
181   <element name="Key_CBrkt"> <text string="]"><color red="1.00" green="0.66" blue="0.66" /></text></element>
182   <element name="Key_BSlash"><text string="\"><color red="1.00" green="0.66" blue="0.66" /></text></element>
183
184   <element name="Key_1">     <text string="1"><color red="1.00" green="0.66" blue="0.66" /></text></element>
185   <element name="Key_5">     <text string="5"><color red="1.00" green="0.66" blue="0.66" /></text></element>
186   <element name="Key_6">     <text string="6"><color red="1.00" green="0.66" blue="0.66" /></text></element>
187   <element name="Key_7">     <text string="7"><color red="1.00" green="0.66" blue="0.66" /></text></element>
188   <element name="Key_9">     <text string="9"><color red="1.00" green="0.66" blue="0.66" /></text></element>
189   <element name="Key_0">     <text string="0"><color red="1.00" green="0.66" blue="0.66" /></text></element>
190   <element name="Key_BSpace">
191      <text string="&#60;"><color red="1.00" green="0.66" blue="0.66" /><bounds x="0" y="00" width="07" height="10" /></text>
192      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="0" y="00" width="07" height="10" /></text>
193      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="2" y="00" width="07" height="10" /></text>
194      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="4" y="00" width="07" height="10" /></text>
195      <text string="-">    <color red="1.00" green="0.66" blue="0.66" /><bounds x="6" y="00" width="07" height="10" /></text>
196   </element>
197   <element name="Key_Equals"><text string="="><color red="1.00" green="0.66" blue="0.66" /></text></element>
198
199
200
201   <element name="Solenoid_DropTarget_Tall" defstate="0">
202      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="00" width="07" height="15" /></rect>
203      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="04" height="12" /></rect>
204   </element>
205   <element name="DropTarget_Tall" defstate="0">
206      <rect state="1"><color red="0.25" green="0.25" blue="0.25" /><bounds x="01" y="01" width="04" height="12" /></rect>
207      <rect state="0"><color red="1.00" green="1.00" blue="1.00" /><bounds x="01" y="01" width="04" height="12" /></rect>
208      <rect state="9"><color red="0.00" green="1.00" blue="0.00" /><bounds x="00" y="00" width="07" height="15" /></rect>
209   </element>
210
211
212
213<!-- Lamps -->
214
215   <element name="Lamp_White" defstate="0">
216      <disk state="0"><color red="0.15" green="0.15" blue="0.15" /></disk>
217      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
218   </element>
219   <element name="Lamp_Red" defstate="0">                              <!-- Usually for Specials -->
220      <disk state="0"><color red="0.15" green="0.00" blue="0.00" /></disk>
221      <disk state="1"><color red="1.00" green="0.00" blue="0.00" /></disk>
222   </element>
223   <element name="Lamp_Amber" defstate="0">                           <!-- Usually for Extra Ball-->
224      <disk state="0"><color red="0.15" green="0.06" blue="0.00" /></disk>
225      <disk state="1"><color red="1.00" green="0.40" blue="0.00" /></disk>
226   </element>
227
228
229   <element name="Lamp_P1">
230      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
231      <text string="1" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
232      <text string="1" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
233   </element>
234   <element name="Lamp_P2">
235      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
236      <text string="2" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
237      <text string="2" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
238   </element>
239   <element name="Lamp_P3">
240      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
241      <text string="3" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
242      <text string="3" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
243   </element>
244   <element name="Lamp_P4">
245      <rect><color red="0.10" green="0.10" blue="0.10" /></rect>
246      <text string="4" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
247      <text string="4" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
248   </element>
249
250   <element name="Lamp_1P">
251      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
252      <text string="1" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
253      <text string="1" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
254   </element>
255   <element name="Lamp_2P">
256      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
257      <text string="2" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
258      <text string="2" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
259   </element>
260   <element name="Lamp_3P">
261      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
262      <text string="3" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
263      <text string="3" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.1" y="0" width="1" height="0.9" /></text>
264   </element>
265   <element name="Lamp_4P">
266      <disk><color red="0.10" green="0.10" blue="0.10" /></disk>
267      <text string="4" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="1" height="0.9" /></text>
268      <text string="4" state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="1" height="0.9" /></text>
269   </element>
270
271
272   <element name="Lamp_2x" defstate="0">
273      <disk state="0"><color red="0.0" green="0.15" blue="0.0" /></disk>
274      <disk state="1"><color red="0.0" green="1.00" blue="0.0" /></disk>
275      <text string="2x"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
276   </element>
277   <element name="Lamp_3x" defstate="0">
278      <disk state="0"><color red="0.15" green="0.15" blue="0.0" /></disk>
279      <disk state="1"><color red="1.00" green="1.00" blue="0.0" /></disk>
280      <text string="3x"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
281   </element>
282   <element name="Lamp_5x" defstate="0">
283      <disk state="0"><color red="0.15" green="0.15" blue="0.15" /></disk>
284      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
285      <text string="5x"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
286   </element>
287
288
289   <element name="Lamp_White_1k">
290      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
291      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
292      <text string="1k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
293   </element>
294   <element name="Lamp_White_2k">
295      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
296      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
297      <text string="2k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
298   </element>
299   <element name="Lamp_White_3k">
300      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
301      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
302      <text string="3k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
303   </element>
304   <element name="Lamp_White_4k">
305      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
306      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
307      <text string="4k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
308   </element>
309   <element name="Lamp_White_5k">
310      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
311      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
312      <text string="5k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
313   </element>
314   <element name="Lamp_White_6k">
315      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
316      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
317      <text string="6k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
318   </element>
319   <element name="Lamp_White_7k">
320      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
321      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
322      <text string="7k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
323   </element>
324   <element name="Lamp_White_8k">
325      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
326      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
327      <text string="8k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
328   </element>
329   <element name="Lamp_White_9k">
330      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
331      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
332      <text string="9k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
333   </element>
334   <element name="Lamp_White_10k">
335      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
336      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
337      <text string="10k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.0" y="0.1" width="1.00" height="0.75" /></text>
338   </element>
339   <element name="Lamp_White_20k">
340      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
341      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
342      <text string="20k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
343   </element>
344   <element name="Lamp_White_25k">
345      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
346      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0.0" y="0.0" width="1.10" height="1.00" /></disk>
347      <text string="25k"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0.1" y="0.1" width="1.00" height="0.75" /></text>
348   </element>
349
350
351   <element name="Lamp_White_March">
352      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="8.3" height="8.3" /></disk>
353      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="8.3" height="8.3" /></disk>
354      <text string="MARCH"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="9" width="21" height="09" /></text>
355   </element>
356   <element name="Lamp_White_May">
357      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="8.3" height="8.3" /></disk>
358      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="8.3" height="8.3" /></disk>
359      <text string="MAY"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="9" width="13" height="09" /></text>
360   </element>
361   <element name="Lamp_White_January">
362      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="8.3" height="8.3" /></disk>
363      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="8.3" height="8.3" /></disk>
364      <text string="JANUARY"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="9" width="29" height="09" /></text>
365   </element>
366   <element name="Lamp_White_July">
367      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="8.3" height="8.3" /></disk>
368      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="8.3" height="8.3" /></disk>
369      <text string="JULY"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="9" width="16" height="09" /></text>
370   </element>
371   <element name="Lamp_White_September">
372      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0" width="8.3" height="8.3" /></disk>
373      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="0" y="0" width="8.3" height="8.3" /></disk>
374      <text string="SEPTEMBER"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="9" width="37" height="09" /></text>
375   </element>
376
377
378   <element name="Lamp_White_1">
379      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
380      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
381      <text string="1"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
382   </element>
383   <element name="Lamp_White_2">
384      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
385      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
386      <text string="2"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
387   </element>
388   <element name="Lamp_White_3">
389      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
390      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
391      <text string="3"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
392   </element>
393   <element name="Lamp_White_4">
394      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
395      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
396      <text string="4"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
397   </element>
398   <element name="Lamp_White_5">
399      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /></disk>
400      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /></disk>
401      <text string="5"><color red="0.0" green="0.0" blue="0.0" /><bounds x="0" y="0.1" width="1" height="0.75" /></text>
402   </element>
403
404
405   <element name="Credit_Indicator">
406      <disk state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="2.5" y="0" width="1.0" height="1.0" /></disk>
407      <disk state="0"><color red="0.25" green="0.25" blue="0.25" /><bounds x="2.5" y="0" width="1.0" height="1.0" /></disk>
408      <text string="Credit Indicator"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="1.1" width="6.5" height="0.90" /></text>
409   </element>
410
411
412   <element name="Lamp_Red_Arrow_08" defstate="1">   <!-- Point at 8 o clock -->
413      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="28" y="00" width="08" height="03" /></rect>
414      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="28" y="00" width="08" height="03" /></rect>
415      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="23" y="03" width="08" height="03" /></rect>
416      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="23" y="03" width="08" height="03" /></rect>
417      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="18" y="06" width="08" height="03" /></rect>
418      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="18" y="06" width="08" height="03" /></rect>
419      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="10" y="03" width="02" height="03" /></rect>
420      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="10" y="03" width="02" height="03" /></rect>
421      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="08" y="06" width="06" height="03" /></rect>
422      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="08" y="06" width="06" height="03" /></rect>
423      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
424      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
425      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="04" y="12" width="14" height="03" /></rect>
426      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="04" y="12" width="14" height="03" /></rect>
427      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="02" y="15" width="17" height="03" /></rect>
428      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="02" y="15" width="17" height="03" /></rect>
429      <rect state="1"><color red="1.00" green="0.00" blue="0.00" /><bounds x="00" y="18" width="20" height="03" /></rect>
430      <rect state="0"><color red="0.15" green="0.00" blue="0.00" /><bounds x="00" y="18" width="20" height="03" /></rect>
431   </element>
432
433   <element name="Lamp_Amber_Arrow_10" defstate="1">   <!-- Point at 10 o clock -->
434      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="28" y="18" width="08" height="03" /></rect>
435      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="28" y="18" width="08" height="03" /></rect>
436      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="23" y="15" width="08" height="03" /></rect>
437      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="23" y="15" width="08" height="03" /></rect>
438      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="18" y="12" width="08" height="03" /></rect>
439      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="18" y="12" width="08" height="03" /></rect>
440      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="10" y="15" width="02" height="03" /></rect>
441      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="10" y="15" width="02" height="03" /></rect>
442      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="08" y="12" width="06" height="03" /></rect>
443      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="08" y="12" width="06" height="03" /></rect>
444      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
445      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="06" y="09" width="15" height="03" /></rect>
446      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="04" y="06" width="14" height="03" /></rect>
447      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="04" y="06" width="14" height="03" /></rect>
448      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="02" y="03" width="17" height="03" /></rect>
449      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="02" y="03" width="17" height="03" /></rect>
450      <rect state="1"><color red="1.00" green="0.40" blue="0.00" /><bounds x="00" y="00" width="20" height="03" /></rect>
451      <rect state="0"><color red="0.15" green="0.06" blue="0.00" /><bounds x="00" y="00" width="20" height="03" /></rect>
452   </element>
453
454   <element name="Lamp_White_Arrow_01" defstate="1">   <!-- Point at 1 o clock -->
455      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="18" y="00" width="03" height="20" /></rect>
456      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="18" y="00" width="03" height="20" /></rect>
457      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="15" y="02" width="03" height="17" /></rect>
458      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="15" y="02" width="03" height="17" /></rect>
459      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="12" y="04" width="03" height="14" /></rect>
460      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="12" y="04" width="03" height="14" /></rect>
461      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="09" y="06" width="03" height="15" /></rect>
462      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="09" y="06" width="03" height="15" /></rect>
463      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="08" width="03" height="06" /></rect>
464      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="08" width="03" height="06" /></rect>
465      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="03" y="10" width="03" height="02" /></rect>
466      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="03" y="10" width="03" height="02" /></rect>
467      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="06" y="18" width="03" height="08" /></rect>
468      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="06" y="18" width="03" height="08" /></rect>
469      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="03" y="23" width="03" height="08" /></rect>
470      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="03" y="23" width="03" height="08" /></rect>
471      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="00" y="28" width="03" height="08" /></rect>
472      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="00" y="28" width="03" height="08" /></rect>
473   </element>
474
475
476<!-- Backbox Indicators -->
477
478   <element name="Text_Credit"><text string="CREDIT"><color red="1.0" green="1.0" blue="1.0" /></text></element>
479   <element name="Text_Lamps"><text string="Lamps"><color red="1.0" green="1.0" blue="1.0" /></text></element>
480   <element name="Text_15"><text string="U1 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
481   <element name="Text_30"><text string="U2 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
482   <element name="Text_45"><text string="U3 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
483   <element name="Text_60"><text string="U4 0-14"><color red="1.0" green="1.0" blue="1.0" /></text></element>
484   <element name="Text_Solenoids"><text string="Momentary Solenoids"><color red="1.0" green="1.0" blue="1.0" /></text></element>
485   <element name="Text_Coils"><text string="Coils"><color red="1.0" green="1.0" blue="1.0" /></text></element>
486   <element name="Text_MPU_LED"><text string="MPU LED"><color red="1.0" green="1.0" blue="1.0" /></text></element>
487   <element name="Text_Activity"><text string="Activity Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
488   <element name="Text_Service"><text string="Service Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
489   <element name="Text_Slam"><text string="Slam Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
490   <element name="Text_Tilt"><text string="Tilt Switch"><color red="1.0" green="1.0" blue="1.0" /></text></element>
491   <element name="Text_Knocker"><text string="Knocker"><color red="1.0" green="1.0" blue="1.0" /></text></element>
492
493
494   <element name="High_Score_To_Date" defstate="0">
495      <text string="HIGH SCORE TO DATE" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="1" /></text>
496      <text string="HIGH SCORE TO DATE" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="1" /></text>
497   </element>
498   <element name="Ball_In_Play" defstate="0">
499      <text string="BALL IN PLAY" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0.1" y="0.1" width="1" height="0.8" /></text>
500      <text string="BALL IN PLAY" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0.1" y="0.1" width="1" height="0.8" /></text>
501   </element>
502   <element name="Match" defstate="0">
503      <text string="MATCH" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
504      <text string="MATCH" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
505   </element>
506   <element name="Game_Over" defstate="0">
507      <text string="GAME OVER" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
508      <text string="GAME OVER" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
509   </element>
510   <element name="Tilt" defstate="0">
511      <text string="TILT" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
512      <text string="TILT" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
513   </element>
514   <element name="Shoot_Again" defstate="0">
515      <text string="SAME PLAYER"  state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
516      <text string="SAME PLAYER"  state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.1" width="1" height="0.8" /></text>
517      <text string="SHOOTS AGAIN" state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds x="0" y="0.9" width="1" height="0.8" /></text>
518      <text string="SHOOTS AGAIN" state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds x="0" y="0.9" width="1" height="0.8" /></text>
519   </element>
520
521
522   <element name="Digit" defstate="0">
523      <led7seg><color red="1.0" green="0.35" blue="0.0" /></led7seg>
524   </element>
525
526   <element name="LED_Green" defstate="1">
527      <disk state="0"><color red="0.0" green="0.25" blue="0.0" /></disk>
528      <disk state="1"><color red="0.0" green="1.00" blue="0.0" /></disk>
529   </element>
530   
531
532
533<!-- Solenoids -->
534
535   <element name="Solenoid_PullDown">
536      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="3" y="0" width="03" height="09" /></rect>
537      <rect state="0"><color red="0.0" green="1.0" blue="1.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
538      <rect state="1"><color red="1.0" green="1.0" blue="0.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
539   </element>
540
541   <element name="Coil_PullDown">
542      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="8" y="0" width="02" height="01" /></rect>
543      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="6" y="1" width="02" height="01" /></rect>
544      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="4" y="2" width="02" height="01" /></rect>
545      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="2" y="3" width="02" height="01" /></rect>
546      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="4" width="02" height="01" /></rect>
547      <rect          ><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="5" width="02" height="02" /></rect>
548      <rect state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="4" width="10" height="01" /></rect>
549
550      <rect state="0"><color red="0.0" green="1.0" blue="1.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
551      <rect state="1"><color red="1.0" green="1.0" blue="0.0" /><bounds x="0" y="8" width="10" height="11" /></rect>
552   </element>
553
554
555   <element name="Solenoid_Knocker" defstate="0">
556      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="00" y="03" width="09" height="03" /></rect>
557      <rect state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="18" y="03" width="05" height="03" /></rect>
558      <rect state="0"><color red="0.0" green="1.0" blue="1.0" /><bounds x="08" y="00" width="11" height="10" /></rect>
559      <rect state="1"><color red="1.0" green="1.0" blue="0.0" /><bounds x="08" y="00" width="11" height="10" /></rect>
560   </element>
561
562   <element name="Solenoid_Outhole" defstate="0">
563      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="17" y="00" width="05" height="16" /></text>
564      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="02" y="00" width="05" height="16" /></text>
565      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="18" y="00" width="05" height="16" /></text>
566      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="03" y="00" width="05" height="16" /></text>
567      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="19" y="00" width="05" height="16" /></text>
568      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="04" y="00" width="05" height="16" /></text>
569      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="20" y="00" width="05" height="16" /></text>
570      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="05" y="00" width="05" height="16" /></text>
571      <rect            state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="02" y="02" width="18" height="10" /></rect>
572      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="00" y="13" width="25" height="03" /></rect>
573      <text string="Outhole"    ><color red="1.0" green="1.0" blue="1.0" /><bounds x="30" y="12" width="28" height="9.5" /></text>
574   </element>
575
576   <element name="Solenoid_Kickback" defstate="0">
577      <rect state="1"><color red="1.0" green="1.0" blue="1.0" /><bounds x="3" y="00" width="03" height="15" /></rect>
578      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="3" y="07" width="03" height="08" /></rect>
579      <rect state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="00" width="10" height="04" /></rect>
580      <rect state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="07" width="10" height="04" /></rect>
581   </element>
582
583   <element name="Solenoid_SlingShot_Left" defstate="0">
584      <text string="\" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="05" y="00" width="65"   height="80" /></text>
585      <text string="\" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="00" y="00" width="65"   height="80" /></text>
586      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="20" y="16" width="04"   height="60" /></rect>
587      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="20" y="76" width="24.5" height="04" /></rect>
588   </element>
589   <element name="Solenoid_SlingShot_Right" defstate="0">
590      <text string="/" state="1"><color red="1.0" green="0.0" blue="0.0" /><bounds x="-5"   y="00" width="65" height="80" /></text>
591      <text string="/" state="0"><color red="1.0" green="1.0" blue="1.0" /><bounds x="00"   y="00" width="65" height="80" /></text>
592      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="40"   y="16" width="04" height="60" /></rect>
593      <rect                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="19.5" y="76" width="24" height="04" /></rect>
594   </element>
595
596
597   <element name="Solenoid_Bumper_Black_Star" defstate="0">
598      <disk state="0"> <color red="1.0" green="1.0" blue="1.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
599      <disk state="1"> <color red="1.0" green="0.0" blue="0.0" /><bounds x="0" y="0" width="80" height="80" /></disk>
600      <text string="*"><color red="0.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
601      <disk>           <color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
602   </element>
603   <element name="Switch_Bumper_Black_Star" defstate="0">
604      <text string="*" state="9"><color red="0.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
605      <disk            state="0"><color red="0.0" green="0.0" blue="0.0" /><bounds x="14" y="15" width="50" height="50" /></disk>
606      <disk            state="1"><color red="0.5" green="0.5" blue="0.5" /><bounds x="14" y="15" width="50" height="50" /></disk>
607   </element>
608   <element name="Lamp_Bumper_GI">
609      <text string="*" state="9"><color red="0.0" green="0.0" blue="0.0" /><bounds x="-61" y="-38.5" width="206" height="206" /></text>
610      <disk                     ><color red="1.0" green="1.0" blue="1.0" /><bounds x="18" y="18" width="44" height="44" /></disk>
611   </element>
612
613
614<!-- Line colours -->
615
616   <element name="Draw_White" defstate="1">
617      <rect state="1"><color red="1.00" green="1.00" blue="1.00" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
618      <rect state="0"><color red="0.15" green="0.15" blue="0.15" /><bounds left="0" top="0" right="1" bottom="1" /></rect>
619   </element>
620
621   <element name="Canvas">
622      <rect>
623         <color red="0.0" green="0.0" blue="0.0" />
624         <bounds left="0" top="0" right="1" bottom="1" />
625      </rect>
626   </element>
627
628
629
630
631
632   <view name="Playboy Playfield">
633
634      <!-- Background -->
635      <backdrop element="Canvas"><bounds x="000" y="000" width="640" height="480" /></backdrop>
636     
637      <bezel element="Draw_White"><bounds x="000" y="000" width="640" height="001" /></bezel>
638      <bezel element="Draw_White"><bounds x="000" y="000" width="001" height="480" /></bezel>
639      <bezel element="Draw_White"><bounds x="640" y="000" width="001" height="480" /></bezel>
640      <bezel element="Draw_White"><bounds x="000" y="480" width="640" height="001" /></bezel>
641      <bezel element="Draw_White"><bounds x="320" y="000" width="001" height="480" /></bezel>
642      <bezel element="Draw_White"><bounds x="320" y="320" width="320" height="001" /></bezel>
643      <!--   <bezel element="Draw_White"><bounds x="159" y="000" width="001" height="480" /></bezel>   -->
644
645      <bezel element="Title_Playboy"><bounds x="430" y="18" width="105" height="30" /></bezel>
646
647
648      <!-- Backbox -->
649
650      <!-- MPU Board Power On Self Test LED -->
651      <bezel element="Text_MPU_LED">         <bounds x="609" y="342" width="30" height="10" /></bezel>
652      <bezel name="led0" element="LED_Green"><bounds x="618" y="328" width="10" height="10" /></bezel>
653
654      <!-- MPU Board Activity Switch -->
655      <bezel element="Text_Activity">                                      <bounds x="540" y="342" width="50" height="10" /></bezel>
656      <bezel element="Switch_Push-Button" inputtag="TEST" inputmask="0x02"><bounds x="550" y="331" width="20" height="10" /></bezel>
657      <bezel element="Key_0">                                              <bounds x="571" y="330" width="10" height="10" /></bezel>
658
659
660      <!-- Player 1 Score -->
661      <bezel name="lamp14" element="Lamp_P1"><bounds x="330" y="55" width="15" height="15" /></bezel>         <!-- Backbox ~ 1st Player Up -->
662      <bezel name="digit17" element="Digit"><bounds x="360" y="55" width="10" height="15" /></bezel>
663      <bezel name="digit16" element="Digit"><bounds x="374" y="55" width="10" height="15" /></bezel>
664      <bezel name="digit15" element="Digit"><bounds x="388" y="55" width="10" height="15" /></bezel>
665      <bezel name="digit14" element="Digit"><bounds x="402" y="55" width="10" height="15" /></bezel>
666      <bezel name="digit13" element="Digit"><bounds x="416" y="55" width="10" height="15" /></bezel>
667      <bezel name="digit12" element="Digit"><bounds x="430" y="55" width="10" height="15" /></bezel>
668      <bezel name="digit11" element="Digit"><bounds x="444" y="55" width="10" height="15" /></bezel>
669
670      <!-- Player 2 Score -->
671      <bezel name="lamp29" element="Lamp_P2"><bounds x="615" y="55" width="15" height="15" /></bezel>         <!-- Backbox ~ 2nd Player Up -->
672      <bezel name="digit27" element="Digit"><bounds x="506" y="55" width="10" height="15" /></bezel>
673      <bezel name="digit26" element="Digit"><bounds x="520" y="55" width="10" height="15" /></bezel>
674      <bezel name="digit25" element="Digit"><bounds x="534" y="55" width="10" height="15" /></bezel>
675      <bezel name="digit24" element="Digit"><bounds x="548" y="55" width="10" height="15" /></bezel>
676      <bezel name="digit23" element="Digit"><bounds x="562" y="55" width="10" height="15" /></bezel>
677      <bezel name="digit22" element="Digit"><bounds x="576" y="55" width="10" height="15" /></bezel>
678      <bezel name="digit21" element="Digit"><bounds x="590" y="55" width="10" height="15" /></bezel>
679
680      <!-- Player 3 Score -->
681      <bezel name="lamp44" element="Lamp_P3"><bounds x="330" y="250" width="15" height="15" /></bezel>      <!-- Backbox ~ 3rd Player Up -->
682      <bezel name="digit37" element="Digit"><bounds x="360" y="250" width="10" height="15" /></bezel>
683      <bezel name="digit36" element="Digit"><bounds x="374" y="250" width="10" height="15" /></bezel>
684      <bezel name="digit35" element="Digit"><bounds x="388" y="250" width="10" height="15" /></bezel>
685      <bezel name="digit34" element="Digit"><bounds x="402" y="250" width="10" height="15" /></bezel>
686      <bezel name="digit33" element="Digit"><bounds x="416" y="250" width="10" height="15" /></bezel>
687      <bezel name="digit32" element="Digit"><bounds x="430" y="250" width="10" height="15" /></bezel>
688      <bezel name="digit31" element="Digit"><bounds x="444" y="250" width="10" height="15" /></bezel>
689
690      <!-- Player 4 Score -->
691      <bezel name="lamp59" element="Lamp_P4"><bounds x="615" y="250" width="15" height="15" /></bezel>      <!-- Backbox ~ 4th Player Up -->
692      <bezel name="digit47" element="Digit"><bounds x="506" y="250" width="10" height="15" /></bezel>
693      <bezel name="digit46" element="Digit"><bounds x="520" y="250" width="10" height="15" /></bezel>
694      <bezel name="digit45" element="Digit"><bounds x="534" y="250" width="10" height="15" /></bezel>
695      <bezel name="digit44" element="Digit"><bounds x="548" y="250" width="10" height="15" /></bezel>
696      <bezel name="digit43" element="Digit"><bounds x="562" y="250" width="10" height="15" /></bezel>
697      <bezel name="digit42" element="Digit"><bounds x="576" y="250" width="10" height="15" /></bezel>
698      <bezel name="digit41" element="Digit"><bounds x="590" y="250" width="10" height="15" /></bezel>
699
700      <!-- Credits and Ball In Play / Match -->
701      <bezel element="Text_Credit"><bounds x="542" y="142" width="48" height="8" /></bezel>
702      <bezel name="lamp12"  element="Ball_In_Play"><bounds x="586" y="105" width="50" height="11" /></bezel>   <!-- Backbox ~ Ball In Play -->
703      <bezel name="lamp25"  element="Match"><bounds x="596" y="152" width="25" height="11" /></bezel>         <!-- Backbox ~ Match -->
704      <bezel name="digit55" element="Digit"><bounds x="554" y="125" width="10" height="15" /></bezel>
705      <bezel name="digit54" element="Digit"><bounds x="568" y="125" width="10" height="15" /></bezel>
706      <bezel name="digit52" element="Digit"><bounds x="596" y="125" width="10" height="15" /></bezel>
707      <bezel name="digit51" element="Digit"><bounds x="610" y="125" width="10" height="15" /></bezel>
708
709      <bezel name="lamp10" element="Shoot_Again"><bounds x="420" y="295" width="60" height="19" /></bezel>   <!-- Backbox ~ Same Player Shoots Again -->
710      <bezel name="lamp13" element="Lamp_1P"><bounds x="345" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 1 Player Game -->
711      <bezel name="lamp28" element="Lamp_2P"><bounds x="360" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 2 Player Game -->
712      <bezel name="lamp43" element="Lamp_3P"><bounds x="375" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 3 Player Game -->
713      <bezel name="lamp58" element="Lamp_4P"><bounds x="390" y="297" width="15" height="15" /></bezel>      <!-- Backbox ~ 4 Player Game -->
714      <bezel name="lamp27" element="High_Score_To_Date"><bounds x="438" y="6" width="90" height="11" /></bezel>   <!-- Backbox ~ High Score To Date -->
715      <bezel name="lamp42" element="Game_Over"><bounds x="580" y="300" width="45" height="11" /></bezel>      <!-- Backbox ~ Game Over -->
716      <bezel name="lamp57" element="Tilt"><bounds x="480" y="297" width="50" height="16" /></bezel>         <!-- Backbox ~ Tilt -->
717
718
719
720      <bezel element="Text_Lamps"><bounds x="410" y="360" width="60" height="11" /></bezel>
721      <bezel element="Text_15"><bounds x="552" y="373" width="30" height="11" /></bezel>
722      <bezel element="Text_30"><bounds x="552" y="388" width="30" height="11" /></bezel>
723      <bezel element="Text_45"><bounds x="552" y="403" width="30" height="11" /></bezel>
724      <bezel element="Text_60"><bounds x="552" y="418" width="30" height="11" /></bezel>
725
726      <!-- Lamps controlled by U1 on Lamp Driver Board -->
727      <bezel name="lamp0"  element="Lamp_White"><bounds x="330" y="375" width="8" height="8" /></bezel>   <!-- U1 00 -->
728      <bezel name="lamp1"  element="Lamp_White"><bounds x="345" y="375" width="8" height="8" /></bezel>   <!-- U1 01 -->
729      <bezel name="lamp2"  element="Lamp_White"><bounds x="360" y="375" width="8" height="8" /></bezel>   <!-- U1 02 -->
730      <bezel name="lamp3"  element="Lamp_White"><bounds x="375" y="375" width="8" height="8" /></bezel>   <!-- U1 03 -->
731      <bezel name="lamp4"  element="Lamp_White"><bounds x="390" y="375" width="8" height="8" /></bezel>   <!-- U1 04 -->
732      <bezel name="lamp5"  element="Lamp_White"><bounds x="405" y="375" width="8" height="8" /></bezel>   <!-- U1 05 -->
733      <bezel name="lamp6"  element="Lamp_White"><bounds x="420" y="375" width="8" height="8" /></bezel>   <!-- U1 06 -->
734      <bezel name="lamp7"  element="Lamp_White"><bounds x="435" y="375" width="8" height="8" /></bezel>   <!-- U1 07 -->
735      <bezel name="lamp8"  element="Lamp_White"><bounds x="450" y="375" width="8" height="8" /></bezel>   <!-- U1 08 -->
736      <bezel name="lamp9"  element="Lamp_White"><bounds x="465" y="375" width="8" height="8" /></bezel>   <!-- U1 09 -->
737      <bezel name="lamp10" element="Lamp_White"><bounds x="480" y="375" width="8" height="8" /></bezel>   <!-- U1 10 -->
738      <bezel name="lamp11" element="Lamp_White"><bounds x="495" y="375" width="8" height="8" /></bezel>   <!-- U1 11 -->
739      <bezel name="lamp12" element="Lamp_White"><bounds x="510" y="375" width="8" height="8" /></bezel>   <!-- U1 12 -->
740      <bezel name="lamp13" element="Lamp_White"><bounds x="525" y="375" width="8" height="8" /></bezel>   <!-- U1 13 -->
741      <bezel name="lamp14" element="Lamp_White"><bounds x="540" y="375" width="8" height="8" /></bezel>   <!-- U1 14 -->
742
743      <!-- Lamps controlled by U2 on Lamp Driver Board -->
744      <bezel name="lamp15" element="Lamp_White"><bounds x="330" y="390" width="8" height="8" /></bezel>   <!-- U2 00 -->
745      <bezel name="lamp16" element="Lamp_White"><bounds x="345" y="390" width="8" height="8" /></bezel>   <!-- U2 01 -->
746      <bezel name="lamp17" element="Lamp_White"><bounds x="360" y="390" width="8" height="8" /></bezel>   <!-- U2 02 -->
747      <bezel name="lamp18" element="Lamp_White"><bounds x="375" y="390" width="8" height="8" /></bezel>   <!-- U2 03 -->
748      <bezel name="lamp19" element="Lamp_White"><bounds x="390" y="390" width="8" height="8" /></bezel>   <!-- U2 04 -->
749      <bezel name="lamp20" element="Lamp_White"><bounds x="405" y="390" width="8" height="8" /></bezel>   <!-- U2 05 -->
750      <bezel name="lamp21" element="Lamp_White"><bounds x="420" y="390" width="8" height="8" /></bezel>   <!-- U2 06 -->
751      <bezel name="lamp22" element="Lamp_White"><bounds x="435" y="390" width="8" height="8" /></bezel>   <!-- U2 07 -->
752      <bezel name="lamp23" element="Lamp_White"><bounds x="450" y="390" width="8" height="8" /></bezel>   <!-- U2 08 -->
753      <bezel name="lamp24" element="Lamp_White"><bounds x="465" y="390" width="8" height="8" /></bezel>   <!-- U2 09 -->
754      <bezel name="lamp25" element="Lamp_White"><bounds x="480" y="390" width="8" height="8" /></bezel>   <!-- U2 10 -->
755      <bezel name="lamp26" element="Lamp_White"><bounds x="495" y="390" width="8" height="8" /></bezel>   <!-- U2 11 -->
756      <bezel name="lamp27" element="Lamp_White"><bounds x="510" y="390" width="8" height="8" /></bezel>   <!-- U2 12 -->
757      <bezel name="lamp28" element="Lamp_White"><bounds x="525" y="390" width="8" height="8" /></bezel>   <!-- U2 13 -->
758      <bezel name="lamp29" element="Lamp_White"><bounds x="540" y="390" width="8" height="8" /></bezel>   <!-- U2 14 -->
759
760      <!-- Lamps controlled by U3 on Lamp Driver Board -->
761      <bezel name="lamp30" element="Lamp_White"><bounds x="330" y="405" width="8" height="8" /></bezel>   <!-- U3 00 -->
762      <bezel name="lamp31" element="Lamp_White"><bounds x="345" y="405" width="8" height="8" /></bezel>   <!-- U3 01 -->
763      <bezel name="lamp32" element="Lamp_White"><bounds x="360" y="405" width="8" height="8" /></bezel>   <!-- U3 02 -->
764      <bezel name="lamp33" element="Lamp_White"><bounds x="375" y="405" width="8" height="8" /></bezel>   <!-- U3 03 -->
765      <bezel name="lamp34" element="Lamp_White"><bounds x="390" y="405" width="8" height="8" /></bezel>   <!-- U3 04 -->
766      <bezel name="lamp35" element="Lamp_White"><bounds x="405" y="405" width="8" height="8" /></bezel>   <!-- U3 05 -->
767      <bezel name="lamp36" element="Lamp_White"><bounds x="420" y="405" width="8" height="8" /></bezel>   <!-- U3 06 -->
768      <bezel name="lamp37" element="Lamp_White"><bounds x="435" y="405" width="8" height="8" /></bezel>   <!-- U3 07 -->
769      <bezel name="lamp38" element="Lamp_White"><bounds x="450" y="405" width="8" height="8" /></bezel>   <!-- U3 08 -->
770      <bezel name="lamp39" element="Lamp_White"><bounds x="465" y="405" width="8" height="8" /></bezel>   <!-- U3 09 -->
771      <bezel name="lamp40" element="Lamp_White"><bounds x="480" y="405" width="8" height="8" /></bezel>   <!-- U3 10 -->
772      <bezel name="lamp41" element="Lamp_White"><bounds x="495" y="405" width="8" height="8" /></bezel>   <!-- U3 11 -->
773      <bezel name="lamp42" element="Lamp_White"><bounds x="510" y="405" width="8" height="8" /></bezel>   <!-- U3 12 -->
774      <bezel name="lamp43" element="Lamp_White"><bounds x="525" y="405" width="8" height="8" /></bezel>   <!-- U3 13 -->
775      <bezel name="lamp44" element="Lamp_White"><bounds x="540" y="405" width="8" height="8" /></bezel>   <!-- U3 14 -->
776
777      <!-- Lamps controlled by U4 on Lamp Driver Board -->
778      <bezel name="lamp45" element="Lamp_White"><bounds x="330" y="420" width="8" height="8" /></bezel>   <!-- U4 00 -->
779      <bezel name="lamp46" element="Lamp_White"><bounds x="345" y="420" width="8" height="8" /></bezel>   <!-- U4 01 -->
780      <bezel name="lamp47" element="Lamp_White"><bounds x="360" y="420" width="8" height="8" /></bezel>   <!-- U4 02 -->
781      <bezel name="lamp48" element="Lamp_White"><bounds x="375" y="420" width="8" height="8" /></bezel>   <!-- U4 03 -->
782      <bezel name="lamp49" element="Lamp_White"><bounds x="390" y="420" width="8" height="8" /></bezel>   <!-- U4 04 -->
783      <bezel name="lamp50" element="Lamp_White"><bounds x="405" y="420" width="8" height="8" /></bezel>   <!-- U4 05 -->
784      <bezel name="lamp51" element="Lamp_White"><bounds x="420" y="420" width="8" height="8" /></bezel>   <!-- U4 06 -->
785      <bezel name="lamp52" element="Lamp_White"><bounds x="435" y="420" width="8" height="8" /></bezel>   <!-- U4 07 -->
786      <bezel name="lamp53" element="Lamp_White"><bounds x="450" y="420" width="8" height="8" /></bezel>   <!-- U4 08 -->
787      <bezel name="lamp54" element="Lamp_White"><bounds x="465" y="420" width="8" height="8" /></bezel>   <!-- U4 09 -->
788      <bezel name="lamp55" element="Lamp_White"><bounds x="480" y="420" width="8" height="8" /></bezel>   <!-- U4 10 -->
789      <bezel name="lamp56" element="Lamp_White"><bounds x="495" y="420" width="8" height="8" /></bezel>   <!-- U4 11 -->
790      <bezel name="lamp57" element="Lamp_White"><bounds x="510" y="420" width="8" height="8" /></bezel>   <!-- U4 12 -->
791      <bezel name="lamp58" element="Lamp_White"><bounds x="525" y="420" width="8" height="8" /></bezel>   <!-- U4 13 -->
792      <bezel name="lamp59" element="Lamp_White"><bounds x="540" y="420" width="8" height="8" /></bezel>   <!-- U4 14 -->
793
794
795      <bezel element="Text_Solenoids"><bounds x="382" y="437" width="100" height="11" /></bezel>
796      <bezel name="solenoid0"  element="Solenoid_PullDown"><bounds x="330" y="452" width="9" height="19" /></bezel>
797      <bezel name="solenoid1"  element="Solenoid_PullDown"><bounds x="345" y="452" width="9" height="19" /></bezel>
798      <bezel name="solenoid2"  element="Solenoid_PullDown"><bounds x="360" y="452" width="9" height="19" /></bezel>
799      <bezel name="solenoid3"  element="Solenoid_PullDown"><bounds x="375" y="452" width="9" height="19" /></bezel>
800      <bezel name="solenoid4"  element="Solenoid_PullDown"><bounds x="390" y="452" width="9" height="19" /></bezel>
801      <bezel name="solenoid5"  element="Solenoid_PullDown"><bounds x="405" y="452" width="9" height="19" /></bezel>
802      <bezel name="solenoid6"  element="Solenoid_PullDown"><bounds x="420" y="452" width="9" height="19" /></bezel>
803      <bezel name="solenoid7"  element="Solenoid_PullDown"><bounds x="435" y="452" width="9" height="19" /></bezel>
804      <bezel name="solenoid8"  element="Solenoid_PullDown"><bounds x="450" y="452" width="9" height="19" /></bezel>
805      <bezel name="solenoid9"  element="Solenoid_PullDown"><bounds x="465" y="452" width="9" height="19" /></bezel>
806      <bezel name="solenoid10" element="Solenoid_PullDown"><bounds x="480" y="452" width="9" height="19" /></bezel>
807      <bezel name="solenoid11" element="Solenoid_PullDown"><bounds x="495" y="452" width="9" height="19" /></bezel>
808      <bezel name="solenoid12" element="Solenoid_PullDown"><bounds x="510" y="452" width="9" height="19" /></bezel>
809      <bezel name="solenoid13" element="Solenoid_PullDown"><bounds x="525" y="452" width="9" height="19" /></bezel>
810      <bezel name="solenoid14" element="Solenoid_PullDown"><bounds x="540" y="452" width="9" height="19" /></bezel>
811
812      <bezel element="Text_Coils"><bounds x="572" y="437" width="50" height="11" /></bezel>
813      <bezel name="solenoid16" element="Coil_PullDown"><bounds x="570" y="459" width="09" height="12" /></bezel>
814      <bezel name="solenoid17" element="Coil_PullDown"><bounds x="585" y="459" width="09" height="12" /></bezel>
815      <bezel name="solenoid18" element="Coil_PullDown"><bounds x="600" y="459" width="09" height="12" /></bezel>
816      <bezel name="solenoid19" element="Coil_PullDown"><bounds x="615" y="459" width="09" height="12" /></bezel>
817
818
819
820      <!-- Cabinet Switches -->
821      <bezel element="Text_Service">                                       <bounds x="485" y="342" width="50" height="10" /></bezel>
822      <bezel element="Switch_Push-Button" inputtag="TEST" inputmask="0x01"><bounds x="495" y="331" width="20" height="10" /></bezel>
823      <bezel element="Key_9">                                              <bounds x="516" y="330" width="10" height="10" /></bezel>
824
825      <bezel element="Text_Slam">                                     <bounds x="430" y="342" width="50" height="10" /></bezel>
826      <bezel element="Switch_SlamTilt" inputtag="X1" inputmask="0x80"><bounds x="434" y="331" width="25" height="08" /></bezel>
827      <bezel element="Key_Equals">                                    <bounds x="461" y="330" width="10" height="10" /></bezel>
828
829      <bezel element="Text_Tilt">                                 <bounds x="380" y="342" width="50" height="10" /></bezel>
830      <bezel element="Switch_Tilt" inputtag="X0" inputmask="0x40"><bounds x="390" y="324" width="17" height="17" /></bezel>
831      <bezel element="Key_T">                                     <bounds x="411" y="330" width="10" height="10" /></bezel>
832
833
834      <!-- Misc Solenoids -->
835      <bezel name="solenoid5"  element="Solenoid_Knocker"><bounds x="297" y="457" width="23" height="09" /></bezel>
836      <bezel element="Text_Knocker">   <!-- Knocker -->   <bounds x="290" y="467" width="30" height="10" /></bezel>
837
838
839      <!-- Misc Lamps -->
840      <bezel name="lamp55" element="Credit_Indicator">   <bounds x="023"   y="456" width="70"   height="21" /></bezel>   <!-- Credit Indicator -->
841      <bezel name="lamp40" element="Lamp_Amber">         <bounds x="153.5" y="420" width="12"   height="12" /></bezel>   <!-- Extra Ball -->
842      <bezel name="lamp49" element="Lamp_Red">           <bounds x="209"   y="192" width="14"   height="14" /></bezel>   <!-- Special Drop Targets -->
843      <bezel name="lamp47" element="Lamp_Red">           <bounds x="155"   y="023" width="09"   height="9" /></bezel>      <!-- Special 1 - 5 Keys -->
844      <bezel name="lamp56" element="Lamp_White_25k">     <bounds x="009"   y="333" width="09"   height="9" /></bezel>      <!-- 25,000 Outlane Left -->
845      <bezel name="lamp41" element="Lamp_White_25k">     <bounds x="301"   y="333" width="09"   height="9" /></bezel>      <!-- 25,000 Outlane Right -->
846      <bezel name="lamp53" element="Lamp_Amber_Arrow_10"><bounds x="055"   y="198" width="20"   height="12.5" /></bezel>   <!-- Extra Ball Potential Rollover Button -->
847      <bezel name="lamp38" element="Lamp_Red_Arrow_08">  <bounds x="055"   y="148" width="20"   height="12.5" /></bezel>   <!-- Special Potential Rollover Button -->
848      <!-- Bonus End of Ball Lamps -->
849      <bezel name="lamp0"  element="Lamp_White_1k"> <bounds x="126" y="395" width="09" height="09" /></bezel>
850      <bezel name="lamp15" element="Lamp_White_2k"> <bounds x="126" y="380" width="09" height="09" /></bezel>
851      <bezel name="lamp30" element="Lamp_White_3k"> <bounds x="126" y="355" width="09" height="09" /></bezel>
852      <bezel name="lamp45" element="Lamp_White_4k"> <bounds x="126" y="340" width="09" height="09" /></bezel>
853      <bezel name="lamp1"  element="Lamp_White_5k"> <bounds x="141" y="340" width="09" height="09" /></bezel>
854      <bezel name="lamp16" element="Lamp_White_6k"> <bounds x="169" y="340" width="09" height="09" /></bezel>
855      <bezel name="lamp31" element="Lamp_White_7k"> <bounds x="184" y="340" width="09" height="09" /></bezel>
856      <bezel name="lamp46" element="Lamp_White_8k"> <bounds x="184" y="355" width="09" height="09" /></bezel>
857      <bezel name="lamp2"  element="Lamp_White_9k"> <bounds x="184" y="380" width="09" height="09" /></bezel>
858      <bezel name="lamp17" element="Lamp_White_10k"><bounds x="184" y="395" width="09" height="09" /></bezel>
859      <bezel name="lamp32" element="Lamp_White_20k"><bounds x="154" y="330" width="12" height="12" /></bezel>
860      <!-- Bonus Multiplier Lamps -->
861      <bezel name="lamp51" element="Lamp_2x"><bounds x="134" y="318" width="14" height="14" /></bezel>      <!-- 2X Bonus -->
862      <bezel name="lamp36" element="Lamp_3x"><bounds x="172" y="318" width="14" height="14" /></bezel>      <!-- 3X Bonus -->
863      <bezel name="lamp21" element="Lamp_5x"><bounds x="153" y="310" width="14" height="14" /></bezel>      <!-- 5X Bonus -->
864      <!-- Grotto Lamps -->
865      <bezel name="lamp19" element="Lamp_White_25k"><bounds x="17" y="090" width="12" height="12" /></bezel>      <!-- 25,000 Grotto -->
866      <bezel name="lamp5"  element="Lamp_White_1">  <bounds x="09" y="132" width="09" height="09" /></bezel>      <!-- 1 -->
867      <bezel name="lamp20" element="Lamp_White_2">  <bounds x="09" y="147" width="09" height="09" /></bezel>      <!-- 2 -->
868      <bezel name="lamp35" element="Lamp_White_3">  <bounds x="09" y="162" width="09" height="09" /></bezel>      <!-- 3 -->
869      <bezel name="lamp50" element="Lamp_White_4">  <bounds x="09" y="177" width="09" height="09" /></bezel>      <!-- 4 -->
870      <bezel name="lamp6"  element="Lamp_White_5">  <bounds x="09" y="192" width="09" height="09" /></bezel>      <!-- 5 -->
871      <!-- Playmate of the Month Lamps -->
872      <bezel name="lamp7"  element="Lamp_White_March">    <bounds x="56" y="225" width="21" height="18" /></bezel>   <!-- March -->
873      <bezel name="lamp22" element="Lamp_White_May">      <bounds x="50" y="244" width="13" height="18" /></bezel>   <!-- May -->
874      <bezel name="lamp37" element="Lamp_White_January">  <bounds x="44" y="263" width="29" height="18" /></bezel>   <!-- January -->
875      <bezel name="lamp52" element="Lamp_White_July">     <bounds x="38" y="282" width="16" height="18" /></bezel>   <!-- July -->
876      <bezel name="lamp8"  element="Lamp_White_September"><bounds x="32" y="301" width="37" height="18" /></bezel>   <!-- September -->
877
878
879
880      <!-- Outhole -->
881      <bezel name="solenoid6"  element="Solenoid_Outhole">                        <bounds x="150" y="455" width="58" height="22" /></bezel>
882      <bezel element="Switch_RollOn_WireForm_Left" inputtag="X0" inputmask="0x80"><bounds x="163" y="453" width="20" height="16" /></bezel>
883      <bezel element="Key_BSpace">                                                <bounds x="185" y="455" width="15" height="14" /></bezel>
884
885
886      <!-- Pop Bumper Left -->
887      <bezel name="solenoid8"  element="Solenoid_Bumper_Black_Star">           <bounds x="084" y="100" width="80" height="80" /></bezel>
888      <bezel element="Switch_Bumper_Black_Star" inputtag="X4" inputmask="0x80"><bounds x="084" y="100" width="80" height="80" /></bezel>
889      <bezel element="Lamp_Bumper_GI">                                         <bounds x="084" y="100" width="80" height="80" /></bezel>
890      <bezel element="Key_Z">                                                  <bounds x="141" y="126" width="09" height="09" /></bezel>
891
892      <!-- Pop Bumper Right -->
893      <bezel name="solenoid9"  element="Solenoid_Bumper_Black_Star">           <bounds x="157" y="100" width="80" height="80" /></bezel>
894      <bezel element="Switch_Bumper_Black_Star" inputtag="X4" inputmask="0x40"><bounds x="157" y="100" width="80" height="80" /></bezel>
895      <bezel element="Lamp_Bumper_GI">                                         <bounds x="157" y="100" width="80" height="80" /></bezel>
896      <bezel element="Key_X">                                                  <bounds x="169" y="126" width="09" height="09" /></bezel>
897
898      <!-- Pop Bumper Middle -->
899      <bezel name="solenoid10" element="Solenoid_Bumper_Black_Star">           <bounds x="121" y="153" width="80" height="80" /></bezel>
900      <bezel element="Switch_Bumper_Black_Star" inputtag="X4" inputmask="0x20"><bounds x="121" y="153" width="80" height="80" /></bezel>
901      <bezel element="Lamp_Bumper_GI">                                         <bounds x="121" y="153" width="80" height="80" /></bezel>
902      <bezel element="Key_C">                                                  <bounds x="155" y="157" width="09" height="09" /></bezel>
903
904
905      <!-- Slingshot Left -->
906      <bezel name="solenoid13" element="Solenoid_SlingShot_Right">         <bounds x="221" y="335" width="69" height="80" /></bezel>
907      <bezel element="Switch_Leaf_Vertical" inputtag="X4" inputmask="0x10"><bounds x="060" y="399" width="08" height="09" /></bezel>
908      <bezel element="Key_V">                                              <bounds x="060" y="390" width="09" height="09" /></bezel>
909
910      <!-- Slingshot Right -->
911      <bezel name="solenoid11" element="Solenoid_SlingShot_Left">          <bounds x="35" y="335" width="69" height="80" /></bezel>
912      <bezel element="Switch_Leaf_Vertical" inputtag="X4" inputmask="0x08"><bounds x="257" y="399" width="08" height="09" /></bezel>
913      <bezel element="Key_B">                                              <bounds x="257" y="390" width="09" height="09" /></bezel>
914
915
916      <!-- Kickback Grotto -->
917      <bezel name="solenoid7"  element="Solenoid_Kickback">                       <bounds x="008" y="230" width="10" height="15" /></bezel>
918      <bezel element="Switch_RollOn_WireForm_Down" inputtag="X3" inputmask="0x80"><bounds x="009" y="210" width="09" height="18" /></bezel>
919      <bezel element="Key_Q">                                                     <bounds x="017" y="210" width="09" height="09" /></bezel>
920
921
922      <!-- Drop Targets Rightside -->
923      <bezel name="solenoid12" element="Solenoid_DropTarget_Tall">    <bounds x="222" y="156" width="07" height="15" /></bezel>
924      <bezel element="DropTarget_Tall" inputtag="X0" inputmask="0x10"><bounds x="222" y="156" width="07" height="15" /></bezel>
925      <bezel element="Key_BSlash">                                    <bounds x="230" y="156" width="10" height="10" /></bezel>
926      <bezel name="solenoid12" element="Solenoid_DropTarget_Tall">    <bounds x="228" y="171" width="07" height="15" /></bezel>
927      <bezel element="DropTarget_Tall" inputtag="X0" inputmask="0x08"><bounds x="228" y="171" width="07" height="15" /></bezel>
928      <bezel element="Key_CBrkt">                                     <bounds x="236" y="171" width="10" height="10" /></bezel>
929      <bezel name="solenoid12" element="Solenoid_DropTarget_Tall">    <bounds x="234" y="186" width="07" height="15" /></bezel>
930      <bezel element="DropTarget_Tall" inputtag="X0" inputmask="0x04"><bounds x="234" y="186" width="07" height="15" /></bezel>
931      <bezel element="Key_OBrkt">                                     <bounds x="240" y="186" width="10" height="10" /></bezel>
932      <bezel name="solenoid12" element="Solenoid_DropTarget_Tall">    <bounds x="240" y="201" width="07" height="15" /></bezel>
933      <bezel element="DropTarget_Tall" inputtag="X0" inputmask="0x02"><bounds x="240" y="201" width="07" height="15" /></bezel>
934      <bezel element="Key_FSlash">                                    <bounds x="248" y="201" width="10" height="10" /></bezel>
935      <bezel name="solenoid12" element="Solenoid_DropTarget_Tall">    <bounds x="246" y="216" width="07" height="15" /></bezel>
936      <bezel element="DropTarget_Tall" inputtag="X0" inputmask="0x01"><bounds x="246" y="216" width="07" height="15" /></bezel>
937      <bezel element="Key_Dot">                                       <bounds x="252" y="216" width="14" height="14" /></bezel>
938
939      <!-- Drop Target Area Rebound Switch -->
940      <bezel element="Switch_Leaf_Vertical" inputtag="X4" inputmask="0x01"><bounds x="260" y="186" width="08" height="09" /></bezel>
941      <bezel element="Key_Comma"><bounds x="258" y="169" width="14" height="14" /></bezel>
942
943
944      <!-- 1 - 5 Key Lanes / Target -->
945      <bezel name="lamp3"  element="Lamp_White_1">                                      <bounds x="098" y="037" width="14" height="14" /></bezel>
946      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X2" inputmask="0x10"><bounds x="100" y="060" width="09" height="27" /></bezel>
947      <bezel element="Key_F">                                                           <bounds x="100" y="090" width="09" height="09" /></bezel>
948      <bezel name="lamp18" element="Lamp_White_2">                                      <bounds x="134" y="037" width="14" height="14" /></bezel>
949      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X2" inputmask="0x08"><bounds x="136" y="060" width="09" height="27" /></bezel>
950      <bezel element="Key_G">                                                           <bounds x="136" y="090" width="09" height="09" /></bezel>
951      <bezel name="lamp33" element="Lamp_White_3">                                      <bounds x="171" y="037" width="14" height="14" /></bezel>
952      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X2" inputmask="0x04"><bounds x="173" y="060" width="09" height="27" /></bezel>
953      <bezel element="Key_H">                                                           <bounds x="173" y="090" width="09" height="09" /></bezel>
954      <bezel name="lamp48" element="Lamp_White_4">                                      <bounds x="206" y="037" width="14" height="14" /></bezel>
955      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X2" inputmask="0x02"><bounds x="208" y="060" width="09" height="27" /></bezel>
956      <bezel element="Key_J">                                                           <bounds x="208" y="090" width="09" height="09" /></bezel>
957      <bezel name="lamp4"  element="Lamp_White_5">                                      <bounds x="153" y="225" width="14" height="14" /></bezel>
958      <bezel element="Switch_Target_Red_Forward"         inputtag="X2" inputmask="0x01"><bounds x="153.5" y="212" width="12" height="08" /></bezel>
959      <bezel element="Key_K">                                                           <bounds x="155"   y="202" width="09" height="09" /></bezel>
960
961
962      <!-- Right Middle 500/5000 Lane -->
963      <bezel name="lamp34" element="Lamp_White_Arrow_01">                               <bounds x="283" y="248" width="12.5" height="20" /></bezel>
964      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X3" inputmask="0x40"><bounds x="301" y="155" width="09"   height="27" /></bezel>
965      <bezel element="Key_W">                                                           <bounds x="301" y="185" width="09"   height="09" /></bezel>
966
967      <!-- Outlane Switches -->
968      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X2" inputmask="0x40"><bounds x="009" y="361" width="09" height="27" /></bezel>
969      <bezel element="Key_S">                                                           <bounds x="009" y="391" width="09" height="09" /></bezel>
970      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X2" inputmask="0x20"><bounds x="301" y="361" width="09" height="27" /></bezel>
971      <bezel element="Key_D">                                                           <bounds x="301" y="391" width="09" height="09" /></bezel>
972
973      <!-- Flipper Return Lane Switches -->
974      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X2" inputmask="0x80"><bounds x="030" y="361" width="09" height="27" /></bezel>
975      <bezel element="Key_A">                                                           <bounds x="030" y="391" width="09" height="09" /></bezel>
976      <bezel element="Switch_RollOver_WireForm_Vertical" inputtag="X2" inputmask="0x80"><bounds x="280" y="361" width="09" height="27" /></bezel>
977      <bezel element="Key_A">                                                           <bounds x="280" y="391" width="09" height="09" /></bezel>
978
979      <!-- Extra Ball / Special Rollover Button Switch -->
980      <bezel name="lamp23" element="Lamp_RollOver_Button"><bounds x="35" y="170" width="15" height="15" /></bezel>
981      <bezel element="Switch_RollOver_Button" inputtag="X3" inputmask="0x20"><bounds x="25" y="164" width="35" height="35" /></bezel>
982      <bezel element="Key_E">                                                <bounds x="50" y="173" width="09" height="09" /></bezel>
983
984      <!-- Playmate Targets Leftside -->
985      <bezel element="Target_White_Left" inputtag="X3" inputmask="0x10"><bounds x="40" y="223" width="08" height="12" /></bezel>
986      <bezel element="Key_R">                                           <bounds x="30" y="223" width="09" height="09" /></bezel>
987      <bezel element="Target_White_Left" inputtag="X3" inputmask="0x08"><bounds x="34" y="242" width="08" height="12" /></bezel>
988      <bezel element="Key_Y">                                           <bounds x="24" y="242" width="09" height="09" /></bezel>
989      <bezel element="Target_White_Left" inputtag="X3" inputmask="0x04"><bounds x="28" y="261" width="08" height="12" /></bezel>
990      <bezel element="Key_U">                                           <bounds x="18" y="261" width="09" height="09" /></bezel>
991      <bezel element="Target_White_Left" inputtag="X3" inputmask="0x02"><bounds x="22" y="280" width="08" height="12" /></bezel>
992      <bezel element="Key_I">                                           <bounds x="12" y="280" width="09" height="09" /></bezel>
993      <bezel element="Target_White_Left" inputtag="X3" inputmask="0x01"><bounds x="16" y="299" width="08" height="12" /></bezel>
994      <bezel element="Key_O">                                           <bounds x="06" y="299" width="09" height="09" /></bezel>
995
996   </view>
997
998</mamelayout>
trunk/src/mame/layout/wackygtr.lay
r0r249894
1<?xml version="1.0"?>
2<mamelayout version="2">
3   <element name="digit" defstate="0">
4      <led7seg>
5         <color red="1.0" green="0.0" blue="0.0" />
6      </led7seg>
7   </element>
8
9   <element name="lamp" defstate="0">
10      <disk state="0">
11         <color red="0.2" green="0.2" blue="0" />
12         <bounds x="0" y="0"  width="1" height="1" />
13      </disk>
14      <disk state="1">
15         <color red="1" green="1" blue="0" />
16         <bounds x="0" y="0"  width="1" height="1" />
17      </disk>
18   </element>
19
20   <element name="rect" defstate="0">
21      <rect state="0">
22         <color red="1" green="1" blue="0" />
23         <bounds x="0" y="0"  width="1" height="1" />
24      </rect>
25   </element>
26
27   <element name="alligator" defstate="0">
28      <rect state="0">
29         <color red="0" green="1" blue="0" />
30         <bounds x="0" y="0"  width="10" height="2" />
31      </rect>
32      <disk state="0">
33         <color red="0" green="1" blue="0" />
34         <bounds x="0" y="0"  width="10" height="4" />
35      </disk>
36
37      <rect state="1">
38         <color red="0" green="1" blue="0" />
39         <bounds x="0" y="0"  width="10" height="5" />
40      </rect>
41      <disk state="1">
42         <color red="0" green="1" blue="0" />
43         <bounds x="0" y="0"  width="10" height="10" />
44      </disk>
45
46      <rect state="2">
47         <color red="0" green="1" blue="0" />
48         <bounds x="0" y="0"  width="10" height="8" />
49      </rect>
50      <disk state="2">
51         <color red="0" green="1" blue="0" />
52         <bounds x="0" y="0"  width="10" height="16" />
53      </disk>
54
55      <rect state="3">
56         <color red="0" green="1" blue="0" />
57         <bounds x="0" y="0"  width="10" height="13" />
58      </rect>
59      <disk state="3">
60         <color red="0" green="1" blue="0" />
61         <bounds x="0" y="5"  width="10" height="16" />
62      </disk>
63
64      <rect state="4">
65         <color red="0" green="1" blue="0" />
66         <bounds x="0" y="0"  width="10" height="18" />
67      </rect>
68      <disk state="4">
69         <color red="0" green="1" blue="0" />
70         <bounds x="0" y="10"  width="10" height="16" />
71      </disk>
72
73      <rect state="5">
74         <color red="0" green="1" blue="0" />
75         <bounds x="0" y="0"  width="10" height="23" />
76      </rect>
77      <disk state="5">
78         <color red="0" green="1" blue="0" />
79         <bounds x="0" y="15"  width="10" height="16" />
80      </disk>
81   </element>
82
83   <view name="Default Layout">
84
85      <!-- wacks -->
86      <bezel name="digit5" element="digit">
87         <bounds x="25" y="10"  width="8" height="10" />
88      </bezel>
89      <bezel name="digit4" element="digit">
90         <bounds x="35" y="10"  width="8" height="10" />
91      </bezel>
92
93      <!-- bites -->
94      <bezel name="digit3" element="digit">
95         <bounds x="25" y="25"  width="8" height="10" />
96      </bezel>
97      <bezel name="digit2" element="digit">
98         <bounds x="35" y="25"  width="8" height="10" />
99      </bezel>
100
101      <!-- score -->
102      <bezel name="digit1" element="digit">
103         <bounds x="25" y="40"  width="8" height="10" />
104      </bezel>
105      <bezel name="digit0" element="digit">
106         <bounds x="35" y="40"  width="8" height="10" />
107      </bezel>
108
109      <!-- high score -->
110      <bezel name="digit7" element="digit">
111         <bounds x="55" y="25"  width="8" height="10" />
112      </bezel>
113      <bezel name="digit6" element="digit">
114         <bounds x="65" y="25"  width="8" height="10" />
115      </bezel>
116
117      <!-- shadow box lamps -->
118      <bezel name="lamp4" element="lamp">
119         <bounds x="10" y="10"  width="10" height="4" />
120      </bezel>
121      <bezel name="lamp3" element="lamp">
122         <bounds x="10" y="18"  width="10" height="4" />
123      </bezel>
124      <bezel name="lamp2" element="lamp">
125         <bounds x="10" y="26"  width="10" height="4" />
126      </bezel>
127      <bezel name="lamp1" element="lamp">
128         <bounds x="10" y="34"  width="10" height="4" />
129      </bezel>
130      <bezel name="lamp0" element="lamp">
131         <bounds x="10" y="42"  width="10" height="4" />
132      </bezel>
133
134      <!-- game over lamp -->
135      <bezel name="lamp5" element="lamp">
136         <bounds x="35" y="55"  width="9" height="4" />
137      </bezel>
138
139      <!-- left timing lamps -->
140      <bezel name="lamp8" element="lamp">
141         <bounds x="25" y="0"  width="4" height="4" />
142      </bezel>
143      <bezel name="lamp9" element="lamp">
144         <bounds x="15" y="0"  width="4" height="4" />
145      </bezel>
146      <bezel name="lamp11" element="lamp">
147         <bounds x="5" y="2"  width="4" height="4" />
148      </bezel>
149      <bezel name="lamp10" element="lamp">
150         <bounds x="0" y="10"  width="4" height="4" />
151      </bezel>
152      <bezel name="lamp12" element="lamp">
153         <bounds x="0" y="21"  width="4" height="4" />
154      </bezel>
155      <bezel name="lamp13" element="lamp">
156         <bounds x="0" y="33"  width="4" height="4" />
157      </bezel>
158      <bezel name="lamp15" element="lamp">
159         <bounds x="0" y="45"  width="4" height="4" />
160      </bezel>
161      <bezel name="lamp14" element="lamp">
162         <bounds x="5" y="53"  width="4" height="4" />
163      </bezel>
164      <bezel name="lamp16" element="lamp">
165         <bounds x="15" y="55"  width="4" height="4" />
166      </bezel>
167      <bezel name="lamp17" element="lamp">
168         <bounds x="25" y="55"  width="4" height="4" />
169      </bezel>
170
171      <!-- right timing lamps -->
172      <bezel name="lamp27" element="lamp">
173         <bounds x="50" y="0"  width="4" height="4" />
174      </bezel>
175      <bezel name="lamp26" element="lamp">
176         <bounds x="60" y="0"  width="4" height="4" />
177      </bezel>
178      <bezel name="lamp24" element="lamp">
179         <bounds x="70" y="2"  width="4" height="4" />
180      </bezel>
181      <bezel name="lamp25" element="lamp">
182         <bounds x="75" y="10"  width="4" height="4" />
183      </bezel>
184      <bezel name="lamp23" element="lamp">
185         <bounds x="75" y="21"  width="4" height="4" />
186      </bezel>
187      <bezel name="lamp22" element="lamp">
188         <bounds x="75" y="33"  width="4" height="4" />
189      </bezel>
190      <bezel name="lamp20" element="lamp">
191         <bounds x="75" y="45"  width="4" height="4" />
192      </bezel>
193      <bezel name="lamp21" element="lamp">
194         <bounds x="70" y="53"  width="4" height="4" />
195      </bezel>
196      <bezel name="lamp19" element="lamp">
197         <bounds x="60" y="55"  width="4" height="4" />
198      </bezel>
199      <bezel name="lamp18" element="lamp">
200         <bounds x="50" y="55"  width="4" height="4" />
201      </bezel>
202
203      <!-- alligators -->
204      <bezel name="alligator0" element="alligator" inputtag="IN2" inputmask="0x01">
205         <bounds x="5" y="65"  width="10" height="40" />
206      </bezel>
207      <bezel name="alligator1" element="alligator" inputtag="IN2" inputmask="0x02">
208         <bounds x="20" y="65"  width="10" height="40" />
209      </bezel>
210      <bezel name="alligator2" element="alligator" inputtag="IN2" inputmask="0x04">
211         <bounds x="35" y="65"  width="10" height="40" />
212      </bezel>
213      <bezel name="alligator3" element="alligator" inputtag="IN2" inputmask="0x08">
214         <bounds x="50" y="65"  width="10" height="40" />
215      </bezel>
216      <bezel name="alligator4" element="alligator" inputtag="IN2" inputmask="0x10">
217         <bounds x="65" y="65"  width="10" height="40" />
218      </bezel>
219      <bezel name="cave" element="rect">
220         <bounds x="0" y="65"  width="80" height="4" />
221      </bezel>
222
223   </view>
224</mamelayout>
trunk/src/mame/machine/amstrad.c
r249893r249894
11401140      }
11411141      m_bank1->set_base(bank_base);
11421142      m_bank2->set_base(bank_base+0x02000);
1143      if ((m_gate_array.mrer & (1<<2)) == 0 && m_gate_array.romdis == 0)
1144      {
1145         if (m_exp)
1146            m_exp->set_mapping(MAP_LOWER);
1147      }
11431148   }
11441149   else  // CPC+/GX4000
11451150   {
r249893r249894
12041209         {
12051210            m_bank1->set_base(m_region_cart->base());
12061211            m_bank2->set_base(m_region_cart->base() + 0x2000);
1212            if (m_exp)
1213               m_exp->set_mapping(MAP_LOWER);
12071214         }
12081215      }
12091216   }
r249893r249894
12351242      m_bank7->set_base(bank_base);
12361243      m_bank8->set_base(bank_base+0x2000);
12371244   }
1245   if ( ! ( m_gate_array.mrer & 0x08 ) && m_gate_array.romdis == 0)
1246   {
1247      if (m_exp)
1248         m_exp->set_mapping(MAP_UPPER);
1249   }
1250
12381251}
12391252
12401253
r249893r249894
16601673      /* b3b2 != 0 then change the state of upper or lower rom area and rethink memory */
16611674      if (m_exp)
16621675      {
1663         if((dataToGateArray & 0x0c) != 0)
1676         if((dataToGateArray & 0x0c) != 0x0c)
16641677            m_exp->romen_w(0);  // active low
16651678         else
16661679            m_exp->romen_w(1);
16671680      }
1668
16691681      amstrad_setLowerRom();
16701682      amstrad_setUpperRom();
16711683
r249893r249894
23962408
23972409   /* mappings for other expansion devices */
23982410   if (m_exp)
2399      m_exp->set_mapping();
2411      m_exp->set_mapping(MAP_OTHER);
24002412}
24012413
24022414
r249893r249894
29522964   m_gate_array.hsync = 0;
29532965   m_GateArray_RamConfiguration = 0;
29542966   m_gate_array.hsync_counter = 2;
2955
2967   AmstradCPC_GA_SetRamConfiguration();
29562968/*  space.install_read_bank(0x0000, 0x1fff, "bank1");
29572969    space.install_read_bank(0x2000, 0x3fff, "bank2");
29582970
trunk/src/mame/machine/apollo.c
r249893r249894
9595      PORT_CONFNAME(APOLLO_CONF_25_YEARS_AGO, APOLLO_CONF_25_YEARS_AGO, "25 Years Ago ...")
9696      PORT_CONFSETTING(0x00, DEF_STR ( Off ) )
9797      PORT_CONFSETTING(APOLLO_CONF_25_YEARS_AGO, DEF_STR ( On ) )
98
99//      PORT_CONFNAME(APOLLO_CONF_NODE_ID, APOLLO_CONF_NODE_ID, "Node ID from Disk")
100//      PORT_CONFSETTING(0x00, DEF_STR ( Off ) )
101//      PORT_CONFSETTING(APOLLO_CONF_NODE_ID, DEF_STR ( On ) )
102
98#ifdef APOLLO_XXL
99      PORT_CONFNAME(APOLLO_CONF_NODE_ID, APOLLO_CONF_NODE_ID, "Node ID from Disk")
100      PORT_CONFSETTING(0x00, DEF_STR ( Off ) )
101      PORT_CONFSETTING(APOLLO_CONF_NODE_ID, DEF_STR ( On ) )
102#endif
103103//      PORT_CONFNAME(APOLLO_CONF_IDLE_SLEEP, 0x00, "Idle Sleep")
104104//      PORT_CONFSETTING(0x00, DEF_STR ( Off ) )
105105//      PORT_CONFSETTING(APOLLO_CONF_IDLE_SLEEP, DEF_STR ( On ) )
r249893r249894
111111      PORT_CONFNAME(APOLLO_CONF_FPU_TRACE, 0x00, "FPU Trace")
112112      PORT_CONFSETTING(0x00, DEF_STR ( Off ) )
113113      PORT_CONFSETTING(APOLLO_CONF_FPU_TRACE, DEF_STR ( On ) )
114#ifdef APOLLO_XXL
115      PORT_CONFNAME(APOLLO_CONF_DISK_TRACE, 0x00, "Disk Trace")
116      PORT_CONFSETTING(0x00, DEF_STR ( Off ) )
117      PORT_CONFSETTING(APOLLO_CONF_DISK_TRACE, DEF_STR ( On ) )
114118
115//      PORT_CONFNAME(APOLLO_CONF_DISK_TRACE, 0x00, "Disk Trace")
116//      PORT_CONFSETTING(0x00, DEF_STR ( Off ) )
117//      PORT_CONFSETTING(APOLLO_CONF_DISK_TRACE, DEF_STR ( On ) )
118
119//      PORT_CONFNAME(APOLLO_CONF_NET_TRACE, 0x00, "Network Trace")
120//      PORT_CONFSETTING(0x00, DEF_STR ( Off ) )
121//      PORT_CONFSETTING(APOLLO_CONF_NET_TRACE, DEF_STR ( On ) )
122
119      PORT_CONFNAME(APOLLO_CONF_NET_TRACE, 0x00, "Network Trace")
120      PORT_CONFSETTING(0x00, DEF_STR ( Off ) )
121      PORT_CONFSETTING(APOLLO_CONF_NET_TRACE, DEF_STR ( On ) )
122#endif
123123INPUT_PORTS_END
124124
125125class apollo_config_device : public device_t
r249893r249894
857857}
858858
859859//##########################################################################
860// machine/apollo_ni.c - APOLLO DS3500 node ID
861//##########################################################################
862
863#undef VERBOSE
864#define VERBOSE 0
865
866#define DEFAULT_NODE_ID 0x12345
867
868/***************************************************************************
869 IMPLEMENTATION
870 ***************************************************************************/
871
872/*** Apollo Node ID device ***/
873
874// device type definition
875const device_type APOLLO_NI = &device_creator<apollo_ni> ;
876
877//-------------------------------------------------
878//  apollo_ni - constructor
879//-------------------------------------------------
880
881apollo_ni::apollo_ni(const machine_config &mconfig, const char *tag,
882      device_t *owner, UINT32 clock) :
883   device_t(mconfig, APOLLO_NI, "Node ID", tag, owner, clock, "node_id",
884         __FILE__), device_image_interface(mconfig, *this)
885{
886}
887
888//-------------------------------------------------
889//  apollo_ni - destructor
890//-------------------------------------------------
891
892apollo_ni::~apollo_ni()
893{
894}
895
896void apollo_ni::device_config_complete()
897{
898   update_names(APOLLO_NI, "node_id", "ni");
899}
900
901//-------------------------------------------------
902//  device_start - device-specific startup
903//-------------------------------------------------
904
905void apollo_ni::device_start()
906{
907   CLOG1(("apollo_ni::device_start"));
908   set_node_id(DEFAULT_NODE_ID);
909}
910
911//-------------------------------------------------
912//  device_reset - device-specific reset
913//-------------------------------------------------
914
915void apollo_ni::device_reset()
916{
917   CLOG1(("apollo_ni::device_reset"));
918}
919
920//-------------------------------------------------
921//  set node ID
922//-------------------------------------------------
923
924void apollo_ni::set_node_id(UINT32 node_id)
925{
926   m_node_id = node_id;
927   CLOG1(("apollo_ni::set_node_id: node ID is %x", node_id));
928}
929
930//-------------------------------------------------
931//  read/write
932//-------------------------------------------------
933
934WRITE16_MEMBER(apollo_ni::write)
935{
936   CLOG1(("Error: writing node id ROM at offset %02x = %04x & %04x", offset, data, mem_mask));
937}
938
939READ16_MEMBER(apollo_ni::read)
940{
941   UINT16 data = 0;
942   switch (offset & 0x0f)
943   {
944   case 1: // msb
945      data = (m_node_id >> 16) & 0xff;
946      break;
947   case 2:
948      data = (m_node_id >> 8) & 0xff;
949      break;
950   case 3: // lsb
951      data = m_node_id & 0xff;
952      break;
953   case 15: // checksum
954      data = ((m_node_id >> 16) + (m_node_id >> 8) + m_node_id) & 0xff;
955      break;
956   default:
957      data = 0;
958      break;
959   }
960   data <<= 8;
961   CLOG2(("reading node id ROM at offset %02x = %04x & %04x", offset, data, mem_mask));
962   return data;
963}
964
965/*-------------------------------------------------
966 DEVICE_IMAGE_LOAD( rom )
967 -------------------------------------------------*/
968bool apollo_ni::call_load()
969{
970   CLOG1(("apollo_ni::call_load: %s", filename()));
971
972   UINT64 size = length();
973    if (size != 32)
974   {
975      CLOG(("apollo_ni::call_load: %s has unexpected file size %" I64FMT "d", filename(), size));
976   }
977   else
978   {
979      UINT8 data[32];
980      fread(data, sizeof(data));
981
982      UINT8 checksum = data[2] + data[4] + data[6];
983      if (checksum != data[30])
984      {
985         CLOG(("apollo_ni::call_load: checksum is %02x - should be %02x", checksum, data[30]));
986      }
987      else
988      {
989         m_node_id = (((data[2] << 8) | data[4]) << 8) | (data[6]);
990         CLOG1(("apollo_ni::call_load: node ID is %x", m_node_id));
991         return IMAGE_INIT_PASS;
992      }
993   }
994   return IMAGE_INIT_FAIL;
995}
996
997/*-------------------------------------------------
998 DEVICE_IMAGE_CREATE( rom )
999 -------------------------------------------------*/
1000
1001bool apollo_ni::call_create(int format_type, option_resolution *format_options)
1002{
1003   CLOG1(("apollo_ni::call_create:"));
1004
1005   if (length() > 0)
1006   {
1007      CLOG(("apollo_ni::call_create: %s already exists", filename()));
1008   }
1009   else
1010   {
1011      UINT32 node_id = 0;
1012      sscanf(basename_noext(), "%x", &node_id);
1013      if (node_id == 0 || node_id > 0xfffff)
1014      {
1015         CLOG(("apollo_ni::call_create: filename %s is no valid node ID", basename()));
1016      }
1017      else
1018      {
1019         UINT8 data[32];
1020         memset(data, 0, sizeof(data));
1021         data[2] = node_id >> 16;
1022         data[4] = node_id >> 8;
1023         data[6] = node_id;
1024         data[30] = data[2] + data[4] + data[6];
1025         fwrite(data, sizeof(data));
1026         CLOG(("apollo_ni::call_create: created %s with node ID %x", filename(), node_id));
1027         set_node_id(node_id);
1028         return IMAGE_INIT_PASS;
1029      }
1030   }
1031   return IMAGE_INIT_FAIL;
1032}
1033
1034/*-------------------------------------------------
1035 DEVICE_IMAGE_UNLOAD( rom )
1036 -------------------------------------------------*/
1037void apollo_ni::call_unload()
1038{
1039   CLOG1(("apollo_ni::call_unload:"));
1040}
1041
1042//-------------------------------------------------
1043//  set node ID from disk
1044//-------------------------------------------------
1045
1046void apollo_ni::set_node_id_from_disk()
1047{
1048#ifdef APOLLO_XXL
1049   // set node ID from UID of logical volume 1 of logical unit 0
1050   UINT8 db[0x50];
1051
1052   // check label of physical volume and get sector data of logical volume 1
1053   // Note: sector data starts with 32 byte block header
1054   if (omti8621_device::get_sector(0, db, sizeof(db), 0) == sizeof(db)
1055         && memcmp(db + 0x22, "APOLLO", 6) == 0)
1056   {
1057      UINT16 sector1 = apollo_is_dn5500() ? 4 : 1;
1058
1059      if (omti8621_device::get_sector(sector1, db, sizeof(db), 0) == sizeof(db))
1060      {
1061         // set node_id from UID of logical volume 1 of logical unit 0
1062         m_node_id = (((db[0x49] << 8) | db[0x4a]) << 8) | db[0x4b];
1063         CLOG1(("apollo_ni::set_node_id_from_disk: node ID is %x", m_node_id));
1064      }
1065   }
1066#endif
1067}
1068
1069//##########################################################################
8601070// machine/apollo.c - APOLLO DS3500 CPU Board
8611071//##########################################################################
8621072
r249893r249894
9161126
9171127   MCFG_MC146818_ADD( APOLLO_RTC_TAG, XTAL_32_768kHz )
9181128   MCFG_MC146818_UTC( true )
1129   MCFG_MC146818_BINARY( false )
1130   MCFG_MC146818_24_12( false )
1131   MCFG_MC146818_EPOCH( 0 )
9191132
1133   MCFG_APOLLO_NI_ADD( APOLLO_NI_TAG, 0 )
1134
9201135   MCFG_APOLLO_SIO_ADD( APOLLO_SIO2_TAG, XTAL_3_6864MHz )
9211136   MCFG_APOLLO_SIO_IRQ_CALLBACK(WRITELINE(apollo_state, sio2_irq_handler))
9221137
r249893r249894
9591174   MCFG_APOLLO_SIO_IRQ_CALLBACK(WRITELINE(apollo_state, sio_irq_handler))
9601175   MCFG_APOLLO_SIO_OUTPORT_CALLBACK(WRITE8(apollo_state, sio_output))
9611176   MCFG_APOLLO_SIO_A_TX_CALLBACK(DEVWRITELINE(APOLLO_KBD_TAG, apollo_kbd_device, rx_w))
1177
1178#ifdef APOLLO_XXL
1179   MCFG_APOLLO_SIO_B_TX_CALLBACK(DEVWRITELINE(APOLLO_STDIO_TAG, apollo_stdio_device, rx_w))
1180#endif
9621181MACHINE_CONFIG_END
9631182
9641183static DEVICE_INPUT_DEFAULTS_START( apollo_terminal )
r249893r249894
10151234   apollo_csr_set_servicemode(apollo_config(APOLLO_CONF_SERVICE_MODE));
10161235
10171236   // change year according to configuration settings
1018   if (year < 20 && apollo_config(APOLLO_CONF_20_YEARS_AGO))
1237   if (year < 25 && apollo_config(APOLLO_CONF_25_YEARS_AGO))
10191238   {
1020      year+=80;
1239      year += 75;
10211240      apollo_rtc_w(space, 9, year);
10221241   }
1023   else if (year < 25 && apollo_config(APOLLO_CONF_25_YEARS_AGO))
1242   else if (year < 20 && apollo_config(APOLLO_CONF_20_YEARS_AGO))
10241243   {
1025      year += 75;
1244      year += 80;
10261245      apollo_rtc_w(space, 9, year);
10271246   }
10281247   else if (year >= 80 && !apollo_config(APOLLO_CONF_20_YEARS_AGO)
10291248         && !apollo_config(APOLLO_CONF_25_YEARS_AGO))
10301249   {
1031      year -=80;
1250      year -= 80;
10321251      apollo_rtc_w(space, 9, year);
10331252   }
10341253
r249893r249894
10401259      m_dn3000_timer->adjust(attotime::from_hz(2), 0, attotime::from_hz(2));
10411260   }
10421261}
1262
1263#ifdef APOLLO_XXL
1264
1265//##########################################################################
1266// machine/apollo_stdio.c - stdio terminal for mess
1267//##########################################################################
1268
1269#undef VERBOSE
1270#define VERBOSE 0
1271
1272#if defined(__linux__)
1273#include <fcntl.h>
1274#include <unistd.h>
1275#endif
1276
1277/***************************************************************************
1278 IMPLEMENTATION
1279 ***************************************************************************/
1280
1281// device type definition
1282const device_type APOLLO_STDIO = &device_creator<apollo_stdio_device> ;
1283
1284//-------------------------------------------------
1285// apollo_stdio_device - constructor
1286//-------------------------------------------------
1287
1288apollo_stdio_device::apollo_stdio_device(const machine_config &mconfig,
1289      const char *tag, device_t *owner, UINT32 clock) :
1290   device_t(mconfig, APOLLO_STDIO, "Apollo STDIO", tag, owner, clock,
1291         "apollo_stdio", __FILE__), device_serial_interface(mconfig, *this),
1292         m_tx_w(*this)
1293{
1294}
1295
1296//-------------------------------------------------
1297//  device_start - device-specific startup
1298//-------------------------------------------------
1299
1300void apollo_stdio_device::device_start()
1301{
1302   CLOG1(("device_start"));
1303
1304   m_tx_w.resolve_safe();
1305
1306   m_poll_timer = machine().scheduler().timer_alloc(timer_expired_delegate(
1307         FUNC(apollo_stdio_device::poll_timer), this));
1308}
1309
1310//-------------------------------------------------
1311//  device_reset - device-specific reset
1312//-------------------------------------------------
1313
1314void apollo_stdio_device::device_reset()
1315{
1316   CLOG1(("device_reset"));
1317
1318   // comms is at 8N1, 9600 baud
1319   set_data_frame(1, 8, PARITY_NONE, STOP_BITS_1);
1320   set_rcv_rate(9600);
1321   set_tra_rate(9600);
1322
1323   m_tx_busy = false;
1324   m_xmit_read = m_xmit_write = 0;
1325
1326#if defined(__linux__)
1327   // FIXME: unavailable in mingw
1328   // set stdin to nonblocking to allow polling
1329   fcntl(STDIN_FILENO, F_SETFL, fcntl(STDIN_FILENO, F_GETFL) | O_NONBLOCK);
1330#endif
1331
1332   // start timer
1333   m_poll_timer->adjust(attotime::zero, 0, attotime::from_msec(1)); // every 1ms
1334}
1335
1336void apollo_stdio_device::device_timer(emu_timer &timer, device_timer_id id,
1337      int param, void *ptr)
1338{
1339   device_serial_interface::device_timer(timer, id, param, ptr);
1340}
1341
1342void apollo_stdio_device::rcv_complete() // Rx completed receiving byte
1343{
1344   receive_register_extract();
1345   UINT8 data = get_received_char();
1346
1347   // output data to stdout (FIXME: '\r' may confuse ceterm)
1348   if (data != '\r')
1349   {
1350      ::putchar(data);
1351      ::fflush(stdout);
1352   }
1353   CLOG1(("rcv_complete %02x - %c", data, data));
1354}
1355
1356void apollo_stdio_device::tra_complete() // Tx completed sending byte
1357{
1358   // is there more waiting to send?
1359   if (m_xmit_read != m_xmit_write)
1360   {
1361      transmit_register_setup(m_xmitring[m_xmit_read++]);
1362      if (m_xmit_read >= XMIT_RING_SIZE)
1363      {
1364         m_xmit_read = 0;
1365      }
1366   }
1367   else
1368   {
1369      m_tx_busy = false;
1370   }
1371}
1372
1373void apollo_stdio_device::tra_callback() // Tx send bit
1374{
1375   int bit = transmit_register_get_data_bit();
1376   m_tx_w(bit);
1377
1378   CLOG2(("tra_callback %02x", bit));
1379}
1380
1381TIMER_CALLBACK_MEMBER(apollo_stdio_device::poll_timer)
1382{
1383#if defined(__linux__)
1384   UINT8 data;
1385   while (::read(STDIN_FILENO, &data, 1) == 1)
1386   {
1387      xmit_char(data == '\n' ? '\r' : data);
1388   }
1389#endif
1390}
1391
1392void apollo_stdio_device::xmit_char(UINT8 data)
1393{
1394   CLOG1(("xmit_char %02x - %c", data, data));
1395
1396   // if tx is busy it'll pick this up automatically when it completes
1397   if (!m_tx_busy)
1398   {
1399      m_tx_busy = true;
1400      transmit_register_setup(data);
1401   }
1402   else
1403   {
1404      // tx is busy, it'll pick this up next time
1405      m_xmitring[m_xmit_write++] = data;
1406      if (m_xmit_write >= XMIT_RING_SIZE)
1407      {
1408         m_xmit_write = 0;
1409      }
1410   }
1411}
1412#endif
trunk/src/mame/machine/bbc.c
r249893r249894
115115{
116116   if ((offset&0x04)==0)
117117   {
118      m_pagedRAM = (data >> 7) & 0x01;
118      m_pagedRAM = BIT(data,7);
119119      m_rombank =  data & 0x0f;
120120
121121      if (m_pagedRAM)
r249893r249894
135135   else
136136   {
137137      //the video display should now use this flag to display the shadow ram memory
138      m_vdusel=(data>>7)&0x01;
139      bbcbp_setvideoshadow(m_vdusel);
138      m_vdusel=BIT(data,7);
139      bbc_setvideoshadow(m_vdusel);
140140      //need to make the video display do a full screen refresh for the new memory area
141141      m_bank2->set_base(m_region_maincpu->base() + 0x3000);
142142   }
r249893r249894
291291
292292ACCCON is a read/write register
293293
294HAZEL is the 8K of RAM used by the MOS, filing system, and other Roms at &C000-&DFFF
294HAZEL is the 8K of RAM used by the MOS, filing system, and other ROMs at &C000-&DFFF
295295
296296ANDY is the name of the 4K of RAM used by the MOS at &8000-&8FFF
297297
r249893r249894
326326
327327   tempIRR=m_ACCCON_IRR;
328328
329   m_ACCCON_IRR=(data>>7)&1;
330   m_ACCCON_TST=(data>>6)&1;
331   m_ACCCON_IFJ=(data>>5)&1;
332   m_ACCCON_ITU=(data>>4)&1;
333   m_ACCCON_Y  =(data>>3)&1;
334   m_ACCCON_X  =(data>>2)&1;
335   m_ACCCON_E  =(data>>1)&1;
336   m_ACCCON_D  =(data>>0)&1;
329   m_ACCCON_IRR = BIT(data,7);
330   m_ACCCON_TST = BIT(data,6);
331   m_ACCCON_IFJ = BIT(data,5);
332   m_ACCCON_ITU = BIT(data,4);
333   m_ACCCON_Y   = BIT(data,3);
334   m_ACCCON_X   = BIT(data,2);
335   m_ACCCON_E   = BIT(data,1);
336   m_ACCCON_D   = BIT(data,0);
337337
338338   if (tempIRR!=m_ACCCON_IRR)
339339   {
r249893r249894
349349      m_bank7->set_base(m_region_os->base());
350350   }
351351
352   bbcbp_setvideoshadow(m_ACCCON_D);
352   bbc_setvideoshadow(m_ACCCON_D);
353353
354354
355355   if (m_ACCCON_X)
r249893r249894
558558      if ((myo>=0x10) && (myo<=0x17))                   return 0xfe;                                                    /* Serial System Chip */
559559      if ((myo>=0x18) && (myo<=0x1f))                   return m_upd7002 ? m_upd7002->read(space, myo-0x18) : 0xfe;     /* A to D converter */
560560      if ((myo>=0x20) && (myo<=0x23))                   return 0xfe;                                                    /* VideoULA */
561      if ((myo>=0x24) && (myo<=0x27))                   return bbcm_wd177xl_read(space, myo - 0x24);                    /* 177x Control Latch */
561      if ((myo>=0x24) && (myo<=0x27))                   return bbcm_wd177xl_read(space, myo-0x24);                      /* 177x Control Latch */
562562      if ((myo>=0x28) && (myo<=0x2f) && (m_wd1770))     return m_wd1770->read(space, myo-0x28);                         /* 1770 Controller */
563563      if ((myo>=0x28) && (myo<=0x2f) && (m_wd1772))     return m_wd1772->read(space, myo-0x28);                         /* 1772 Controller */
564564      if ((myo>=0x28) && (myo<=0x2f))                   return 0xfe;                                                    /* No Controller */
r249893r249894
726726      /* keyboard not enabled so increment counter */
727727      m_column = (m_column + 1) % 16;
728728
729      /* OS 0.1 programs CA2 to interrupt on negative edge and expects the keyboard to still work */
730      //int set = (m_os01 ? 0 : 1);
731
729732      if (m_column < 13)
730733      {
731734         /* KBD IC4 8 input NAND gate */
r249893r249894
779782      bit = 1;
780783   }
781784
785   /* OS 0.1 programs CA2 to interrupt on negative edge and expects the keyboard to still work */
786   //int set = (m_os01 ? 0 : 1);
787
782788   if ((res | 1) != 0xff)
783789   {
784790      m_via6522_0->write_ca2(1);
r249893r249894
872878{
873879   int bit, value;
874880   bit = data & 0x07;
875   value = (data >> 3) & 0x01;
881   value = BIT(data,3);
876882
877883   //logerror("SYSTEM write portb %d %d %d\n",data,bit,value);
878884
r249893r249894
10481054   if (m_rtc)
10491055   {
10501056      //set the Address Select
1051      if (m_MC146818_AS != ((data>>7)&1))
1057      if (m_MC146818_AS != BIT(data,7))
10521058      {
1053         m_MC146818_AS=(data>>7)&1;
1059         m_MC146818_AS = BIT(data,7);
10541060         MC146818_set(space);
10551061      }
10561062
10571063      //if CE changes
1058      if (m_MC146818_CE != ((data>>6)&1))
1064      if (m_MC146818_CE != BIT(data,6))
10591065      {
1060         m_MC146818_CE=(data>>6)&1;
1066         m_MC146818_CE = BIT(data,6);
10611067         MC146818_set(space);
10621068      }
10631069   }
r249893r249894
14181424***************************************/
14191425
14201426
1421WRITE_LINE_MEMBER(bbc_state::bbc_i8271_interrupt)
1422{
1423   /* I'm assuming that the nmi is edge triggered */
1424   /* a interrupt from the fdc will cause a change in line state, and
1425   the nmi will be triggered, but when the state changes because the int
1426   is cleared this will not cause another nmi */
1427   /* I'll emulate it like this to be sure */
1428
1429   if (state!=m_previous_i8271_int_state)
1430   {
1431      if (state)
1432      {
1433         /* I'll pulse it because if I used hold-line I'm not sure
1434         it would clear - to be checked */
1435         m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
1436      }
1437   }
1438
1439   m_previous_i8271_int_state = state;
1440}
1441
14421427WRITE_LINE_MEMBER(bbc_state::motor_w)
14431428{
14441429   m_i8271->subdevice<floppy_connector>("0")->get_device()->mon_w(!state);
r249893r249894
14511436   m_i8271->subdevice<floppy_connector>("1")->get_device()->ss_w(state);
14521437}
14531438
1439
14541440/**************************************
14551441   WD1770 disc control function
14561442***************************************/
14571443
14581444
1459/*
1460   B/ B+ drive control:
1461
1462        Bit       Meaning
1463        -----------------
1464        7,6       Not used.
1465         5        Reset drive controller chip. (0 = reset controller, 1 = no reset)
1466         4        Interrupt Enable (0 = enable int, 1 = disable int)
1467         3        Double density select (0 = double, 1 = single).
1468         2        Side select (0 = side 0, 1 = side 1).
1469         1        Drive select 1.
1470         0        Drive select 0.
1471*/
1472
1473/*
1474density select
1475single density is as the 8271 disc format
1476double density is as the 8271 disc format but with 16 sectors per track
1477*/
1478
1479
14801445/* wd177x_IRQ_SET and latch bit 4 (nmi_enable) are NAND'ED together
14811446   wd177x_DRQ_SET and latch bit 4 (nmi_enable) are NAND'ED together
14821447   the output of the above two NAND gates are then OR'ED together and sent to the 6502 NMI line.
r249893r249894
14891454  The nmi is edge triggered, and triggers on a +ve edge.
14901455*/
14911456
1492void bbc_state::bbc_update_fdq_int(int state)
1493{
1494   int bbc_state;
14951457
1496   /* if drq or irq is set, and interrupt is enabled */
1497   if ((m_wd177x_irq_state || m_wd177x_drq_state) && (m_177x_IntEnabled))
1498   {
1499      /* int trigger */
1500      bbc_state = 1;
1501   }
1502   else
1503   {
1504      /* do not trigger int */
1505      bbc_state = 0;
1506   }
1507   /* nmi is edge triggered, and triggers when the state goes from clear->set.
1508   Here we are checking this transition before triggering the nmi */
1509   if (bbc_state != m_previous_wd177x_int_state)
1510   {
1511      if (bbc_state)
1512      {
1513         /* I'll pulse it because if I used hold-line I'm not sure
1514         it would clear - to be checked */
1515         m_maincpu->set_input_line(INPUT_LINE_NMI,PULSE_LINE);
1516      }
1517   }
1518
1519   m_previous_wd177x_int_state = bbc_state;
1458void bbc_state::bbc_update_nmi()
1459{
1460   if (m_fdc_irq || m_fdc_drq)
1461      m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
15201462}
15211463
1522WRITE_LINE_MEMBER(bbc_state::bbc_wd177x_intrq_w)
1464WRITE_LINE_MEMBER(bbc_state::fdc_intrq_w)
15231465{
1524   m_wd177x_irq_state = state;
1525   bbc_update_fdq_int(state);
1466   m_fdc_irq = state;
1467   bbc_update_nmi();
1468
15261469}
15271470
1528WRITE_LINE_MEMBER(bbc_state::bbc_wd177x_drq_w)
1471WRITE_LINE_MEMBER(bbc_state::fdc_drq_w)
15291472{
1530   m_wd177x_drq_state = state;
1531   bbc_update_fdq_int(state);
1473   m_fdc_drq = state;
1474   bbc_update_nmi();
15321475}
15331476
1477/*
1478   B/ B+ drive control:
1479
1480        Bit       Meaning
1481        -----------------
1482        7,6       Not used.
1483         5        Reset drive controller chip. (0 = reset controller, 1 = no reset)
1484         4        Interrupt Enable (0 = enable int, 1 = disable int)
1485         3        Double density select (0 = double, 1 = single).
1486         2        Side select (0 = side 0, 1 = side 1).
1487         1        Drive select 1.
1488         0        Drive select 0.
1489*/
1490
15341491WRITE8_MEMBER(bbc_state::bbc_wd1770_status_w)
15351492{
15361493   floppy_image_device *floppy = NULL;
15371494
15381495   m_drive_control = data;
1539   logerror("Drive control %d \n", data);
15401496
1541   // bit 5: reset
1542   if (!BIT(data, 5)) m_wd1770->reset();
1543
15441497   // bit 0, 1: drive select
15451498   if (BIT(data, 0)) floppy = m_wd1770->subdevice<floppy_connector>("0")->get_device();
15461499   if (BIT(data, 1)) floppy = m_wd1770->subdevice<floppy_connector>("1")->get_device();
r249893r249894
15531506   // bit 3: density
15541507   m_wd1770->dden_w(BIT(data, 3));
15551508
1556   // bit 4: interrupt enable
1557   m_177x_IntEnabled = !BIT(data, 4);
1509   // bit 5: reset
1510   if (!BIT(data, 5)) m_wd1770->soft_reset();
15581511}
15591512
1560/***************************************
1561BBC MASTER DISC SUPPORT
1562***************************************/
1513/*
1514   Master drive control:
15631515
1516        Bit       Meaning
1517        -----------------
1518        7,6       Not used.
1519         5        Double density select (0 = double, 1 = single).
1520         4        Side select (0 = side 0, 1 = side 1).
1521         3        Drive select 2.
1522         2        Reset drive controller chip. (0 = reset controller, 1 = no reset)
1523         1        Drive select 1.
1524         0        Drive select 0.
1525*/
1526
15641527READ8_MEMBER(bbc_state::bbcm_wd177xl_read)
15651528{
15661529   return m_drive_control;
r249893r249894
15711534   floppy_image_device *floppy = NULL;
15721535
15731536   m_drive_control = data;
1574   //logerror("Drive control %d \n", data);
15751537
1576   // bit 2: reset
1577   if (!BIT(data, 2)) m_wd1770->reset();
1578
15791538   // bit 0, 1, 3: drive select
15801539   if (BIT(data, 0)) floppy = m_wd1770->subdevice<floppy_connector>("0")->get_device();
15811540   if (BIT(data, 1)) floppy = m_wd1770->subdevice<floppy_connector>("1")->get_device();
r249893r249894
15891548   // bit 5: density
15901549   m_wd1770->dden_w(BIT(data, 5));
15911550
1592   m_177x_IntEnabled = 1;
1551   // bit 2: reset
1552   if (!BIT(data, 2)) m_wd1770->soft_reset();
15931553}
15941554
15951555WRITE8_MEMBER(bbc_state::bbcm_wd1772l_write)
r249893r249894
15971557   floppy_image_device *floppy = NULL;
15981558
15991559   m_drive_control = data;
1600   //logerror("Drive control %d \n", data);
16011560
1602   // bit 2: reset
1603   if (!BIT(data, 2)) m_wd1772->reset();
1604
16051561   // bit 0, 1, 3: drive select
16061562   if (BIT(data, 0)) floppy = m_wd1772->subdevice<floppy_connector>("0")->get_device();
16071563   if (BIT(data, 1)) floppy = m_wd1772->subdevice<floppy_connector>("1")->get_device();
r249893r249894
16151571   // bit 5: density
16161572   m_wd1772->dden_w(BIT(data, 5));
16171573
1618   m_177x_IntEnabled = 1;
1574   // bit 2: reset
1575   if (!BIT(data, 2)) m_wd1772->soft_reset();
16191576}
16201577
16211578/**************************************
16221579   BBC B Rom loading functions
16231580***************************************/
16241581
1625int bbc_state::bbc_load_cart(device_image_interface &image, generic_slot_device *slot)
1582int bbc_state::bbc_load_rom(device_image_interface &image, generic_slot_device *slot)
16261583{
16271584   UINT32 size = slot->common_get_size("rom");
16281585
16291586   if (size != 0x2000 && size != 0x4000)
16301587   {
1631      image.seterror(IMAGE_ERROR_UNSPECIFIED, "Unsupported cartridge size");
1588      image.seterror(IMAGE_ERROR_UNSPECIFIED, "Unsupported ROM size");
16321589      return IMAGE_INIT_FAIL;
16331590   }
16341591
r249893r249894
16841641
16851642DRIVER_INIT_MEMBER(bbc_state,bbc)
16861643{
1644   m_os01 = false;
1645
16871646   m_rxd_cass = 0;
16881647   m_nr_high_tones = 0;
16891648   m_serproc_data = 0;
r249893r249894
16971656   m_via6522_0->write_cb2(1);
16981657}
16991658
1659
17001660// setup pointers for optional EPROMs
17011661void bbc_state::bbc_setup_banks(memory_bank *membank, int banks, UINT32 shift, UINT32 size)
17021662{
r249893r249894
17901750MACHINE_START_MEMBER(bbc_state, bbcb)
17911751{
17921752   m_mc6850_clock = 0;
1793   m_previous_i8271_int_state=0;
1794   m_previous_wd177x_int_state=1;
17951753   bbc_setup_banks(m_bank4, 16, 0, 0x4000);
17961754}
17971755
r249893r249894
18261784{
18271785   m_Speech = 1;
18281786   m_bank1->set_base(m_region_maincpu->base());
1829   m_bank2->set_base(m_region_maincpu->base() + 0x03000);  /* bank 2 screen/shadow ram     from 3000 to 7fff */
1787   m_bank2->set_base(m_region_maincpu->base() + 0x3000);  /* bank 2 screen/shadow ram     from 3000 to 7fff */
18301788   m_bank4->set_entry(0);
18311789   m_bank6->set_entry(0);
1832   m_bank7->set_base(m_region_os->base());                /* bank 7 points at the OS rom  from c000 to ffff */
1790   m_bank7->set_base(m_region_os->base());                /* bank 7 points at the OS rom  from c000 to ffff */
18331791
18341792   bbcb_IC32_initialise(this);
1835
1836   m_previous_wd177x_int_state=1;
18371793}
18381794
18391795
r249893r249894
18611817   m_bank7->set_base(m_region_os->base());                /* bank 6 OS rom of RAM         from c000 to dfff */
18621818
18631819   bbcb_IC32_initialise(this);
1864
1865   m_previous_wd177x_int_state=1;
18661820}
trunk/src/mame/machine/genpin.h
r249893r249894
2121   "knocker",
2222   "sling",
2323   "coinin",
24   "outhole",
25   "kickback",
26   "drop_target_reset",
27   "coil_coinlockout_engage",
28   "coil_coinlockout_release",
29   "relay_engage",
30   "relay_release",
31   "solenoid_engage",
32   "solenoid_release",
2433   0   /* end of array */
2534};
2635
trunk/src/mame/machine/osborne1.c
r249893r249894
7575         /* Row 7 */
7676         if ( offset & 0x80 )    data &= m_row7->read();
7777         break;
78      case 0x400: /* SCREEN-PAC */
79         if (m_screen_pac) data &= 0xFB;
80         break;
7881      case 0x900: /* IEEE488 PIA */
7982         data = m_pia0->read(space, offset & 0x03 );
8083         break;
r249893r249894
108111      case 0x100: /* Floppy */
109112         m_fdc->write(space, offset & 0x03, data );
110113         break;
114      case 0x400: /* SCREEN-PAC */
115         m_resolution = data & 0x01;
116         m_hc_left = (data >> 1) & 0x01;
117         break;
111118      case 0x900: /* IEEE488 PIA */
112119         m_pia0->write(space, offset & 0x03, data );
113120         break;
r249893r249894
336343
337344TIMER_CALLBACK_MEMBER(osborne1_state::osborne1_video_callback)
338345{
339   int y = machine().first_screen()->vpos();
340   UINT8 ra=0,chr,gfx,dim;
341   UINT16 x,ma;
346   int const y = machine().first_screen()->vpos();
347   UINT8 ra=0;
342348
343349   /* Check for start of frame */
344350   if ( y == 0 )
r249893r249894
355361   {
356362      ra = y % 10;
357363      /* Draw a line of the display */
358      ma = (m_new_start_y + (y/10)) * 128 + m_new_start_x;
364      bool const hires = m_screen_pac & m_resolution;
365      UINT16 const row = (m_new_start_y + (y/10)) * 128 & 0xF80;
366      UINT16 const col = (m_new_start_x & (hires ? 0x60 : 0x7F)) - ((hires && m_hc_left) ? 8 : 0);
359367      UINT16 *p = &m_bitmap.pix16(y);
360368
361      for ( x = 0; x < 52; x++ )
369      for ( UINT16 x = 0; x < (hires ? 104 : 52); x++ )
362370      {
363         chr = m_ram->pointer()[ 0xF000 + ( (ma+x) & 0xFFF ) ];
364         dim = m_ram->pointer()[ 0x10000 + ( (ma+x) & 0xFFF ) ] & 0x80;
371         UINT16 offs = row | ((col + x) & 0x7F);
372         UINT8 const chr = m_ram->pointer()[ 0xF000 + offs ];
373         UINT8 const dim = m_ram->pointer()[ 0x10000 + offs ] & 0x80;
365374
366         if ( (chr & 0x80) && (ra == 9) )
367            gfx = 0xFF;
368         else
369            gfx = m_p_chargen[ (ra << 7) | ( chr & 0x7F ) ];
375         UINT8 const gfx = ((chr & 0x80) && (ra == 9)) ? 0xFF : m_p_chargen[ (ra << 7) | (chr & 0x7F) ];
370376
371377         /* Display a scanline of a character */
372378         *p++ = BIT(gfx, 7) ? ( dim ? 2 : 1 ) : 0;
379         if (!hires) { p[0] = p[-1]; p++; }
373380         *p++ = BIT(gfx, 6) ? ( dim ? 2 : 1 ) : 0;
381         if (!hires) { p[0] = p[-1]; p++; }
374382         *p++ = BIT(gfx, 5) ? ( dim ? 2 : 1 ) : 0;
383         if (!hires) { p[0] = p[-1]; p++; }
375384         *p++ = BIT(gfx, 4) ? ( dim ? 2 : 1 ) : 0;
385         if (!hires) { p[0] = p[-1]; p++; }
376386         *p++ = BIT(gfx, 3) ? ( dim ? 2 : 1 ) : 0;
387         if (!hires) { p[0] = p[-1]; p++; }
377388         *p++ = BIT(gfx, 2) ? ( dim ? 2 : 1 ) : 0;
389         if (!hires) { p[0] = p[-1]; p++; }
378390         *p++ = BIT(gfx, 1) ? ( dim ? 2 : 1 ) : 0;
391         if (!hires) { p[0] = p[-1]; p++; }
379392         *p++ = BIT(gfx, 0) ? ( dim ? 2 : 1 ) : 0;
393         if (!hires) { p[0] = p[-1]; p++; }
380394      }
381395   }
382396
r249893r249894
409423   m_pia_1_irq_state = FALSE;
410424   m_in_irq_handler = 0;
411425
426   m_screen_pac = 0 != (m_cnf->read() & 0x01);
427   m_resolution = 0;
428   m_hc_left = 0;
412429   m_p_chargen = memregion( "chargen" )->base();
413430
414431   memset( m_ram->pointer() + 0x10000, 0xFF, 0x1000 );
trunk/src/mame/machine/psxcd.c
r249893r249894
12321232   }
12331233   fatalerror("psxcd: out of timers\n");
12341234}
1235
1236/*
1237 * TODO:
1238 * Declare the MCU (Motorola 68HC05 [?] at 4MHz [?]) and hookup
1239 * these ROM images so that we actually emulate the PSX CDROM unit
1240 *
1241 * More technical info is available at these links:
1242 *  http://www.psxdev.net/forum/viewtopic.php?f=60&t=573
1243 *  http://www.psxdev.net/forum/viewtopic.php?f=70&t=557
1244 *
1245 */
1246ROM_START( psxcd )
1247    ROM_REGION( 0x10000, "cdrom_mcu", 0 )
1248
1249    /* Retail PlayStation CD-ROM Firmware:
1250     *
1251     * Still missing:
1252     * SCPH-1001, 3000, 3500, 5003, 5502, 5503, 7000W, 7001, 7002, 7003, 7503, 9003, 100, 101, 102 and 103.
1253     */
1254
1255    ROM_SYSTEM_BIOS( 0, "SCPH-1000-later", "SCPH-1000 NTSC:J (Later Ver.) [424660]" )
1256    ROMX_LOAD( "424660.bin", 0x0000, 0x4200, CRC(f82a2a46) SHA1(095434948d4c71cdfaa069e91053443887a6d139), ROM_BIOS(1) )
1257
1258    ROM_SYSTEM_BIOS( 1, "SCPH-1000-early", "SCPH-1000 NTSC:J (Early Ver.) [424666]" )
1259    ROMX_LOAD( "424666.bin", 0x0000, 0x4200, CRC(60bc954e) SHA1(80674353daf95ffb4bd15cc4bb8cfa713370dd45), ROM_BIOS(2) )
1260
1261    ROM_SYSTEM_BIOS( 2, "SCPH-1002-early", "SCPH-1002 PAL (Early PU-8) [424684]" )
1262    ROMX_LOAD( "424684.bin", 0x0000, 0x4200, CRC(84d46b2a) SHA1(9b06b1d407b784095ddbd45aeabafd689d2ee347), ROM_BIOS(3) )
1263
1264    /* Chip markings: C 1021 / SC430916PB / G63C 185 / JSAB9624F */
1265    ROM_SYSTEM_BIOS( 3, "SCPH-5000", "SCPH-5000 NTSC:J [SC430916]" )
1266    ROMX_LOAD( "sc430916.s19", 0x0000, 0xb195, CRC(487c8a40) SHA1(0ae8348fb43ab80845b0166494edc3e1565a3ef7), ROM_BIOS(4) )
1267
1268    /* Chip markings: C 1030 / SC430925PB / G63C 185 / JSBK9708C
1269       Board Type: PU-18 / 1-664-537-11 */
1270    ROM_SYSTEM_BIOS( 4, "SCPH-5500", "SCPH-5500 NTSC:J [SC430925]" )
1271    ROMX_LOAD( "sc430925.s19", 0x0000, 0xb195, CRC(c09aa0c2) SHA1(b9ad66cc8ea4d6e2eb2709ffb77c9647f679097a), ROM_BIOS(5) )
1272
1273    /* Chip markings: C 2030 / SC430930PB / G63C 185 / SSJZ9748A
1274       Board Type: PU-18 / 1-664-537-62 */
1275    ROM_SYSTEM_BIOS( 5, "SCPH-5501", "SCPH-5501 NTSC:U/C [SC430930]" )
1276    ROMX_LOAD( "sc430930.s19", 0x0000, 0xb195, CRC(587b84c2) SHA1(556c3adc37e4eb64fd463c54f7a310c483e0e835), ROM_BIOS(6) )
1277
1278    /* ROM dump is the same as SCPH-5552 */
1279    ROM_SYSTEM_BIOS( 6, "SCPH-5502", "SCPH-5502 PAL [SC430929]" )
1280    ROMX_LOAD( "sc430929.bin", 0x0000, 0x4200, CRC(ba87a3e0) SHA1(f23458d13a518616a8592b8ddd668c052bc9be5a), ROM_BIOS(7) )
1281
1282    ROM_SYSTEM_BIOS( 7, "SCPH-5903", "SCPH-5903 NTSC:J [SC430924PB]" )
1283    ROMX_LOAD( "sc430924.s19", 0x0000, 0xb195, CRC(dbe694b2) SHA1(ac72cb616b1449fe29e52faf6aad389118852d73), ROM_BIOS(8) )
1284
1285    /* Chip markings: C 1040 / SC430934PB / G63C 185 / SSDG9745D */
1286    ROM_SYSTEM_BIOS( 8, "SCPH-7000", "SCPH-7000 NTSC:J [SC430934]" )
1287    ROMX_LOAD( "sc430934.s19", 0x0000, 0xb195, CRC(6443740c) SHA1(d9734c7135c75dbe7733079a2d4244a28c9e966e), ROM_BIOS(9) )
1288
1289    /* Chip markings: C 1050 / SC430938PB / G63C 185 / SSAM9850C */
1290    ROM_SYSTEM_BIOS( 9, "SCPH-7500", "SCPH-7500 NTSC:J [SC430938]" )
1291    ROMX_LOAD( "sc430938.s19", 0x0000, 0xb195, CRC(9744977a) SHA1(f017d34a98a8a023f6752ba9ed749bb9e2b836d5), ROM_BIOS(10) )
1292
1293    /* Chip markings: C 2050 / SC430940PB / G63C 185 / SSDL9838A */
1294    ROM_SYSTEM_BIOS( 10, "SCPH-7501", "SCPH-7501 NTSC:U/C [SC430940]" )
1295    ROMX_LOAD( "sc430940.s19", 0x0000, 0xb195, CRC(fd1c6ee7) SHA1(e72b5093a3e25de1548be7668179ff3e001e3ec5), ROM_BIOS(11) )
1296
1297    ROM_SYSTEM_BIOS( 11, "SCPH-7502", "SCPH-7502 PAL [SC430939]" )
1298    ROMX_LOAD( "sc430939.bin", 0x0000, 0x4200, CRC(9eafb045) SHA1(25d98454e567e064c06f840d57f763fb7c8b7219), ROM_BIOS(12) )
1299
1300    ROM_SYSTEM_BIOS( 12, "SCPH-9000", "SCPH-9000 NTSC:J [SC430942]" )
1301    ROMX_LOAD( "sc430942.bin", 0x0000, 0x4200, NO_DUMP, ROM_BIOS(13) )
1302
1303    /* Chip markings: C 2060 / SC430944PB / G63C 185 / SSBR9924C */
1304    ROM_SYSTEM_BIOS( 13, "SCPH-9001", "SCPH-9001 NTSC:U/C [SC430944]" )
1305    ROMX_LOAD( "sc430944.s19", 0x0000, 0xb195, CRC(24011dfd) SHA1(db72ba02466942d1a1a07c4d855edd18f84de92e), ROM_BIOS(14) )
1306
1307    ROM_SYSTEM_BIOS( 14, "SCPH-9002", "SCPH-9002 PAL [SC430943]" )
1308    ROMX_LOAD( "sc430943.bin", 0x0000, 0x4200, CRC(2669a1a7) SHA1(62999e7f8429f381e19d44d2399b6017959f4f13), ROM_BIOS(15) )
1309
1310    /* Development PlayStation CD-ROM Firmware:
1311     *
1312     * Still missing:
1313     * DTL-H1000, 1000H, 1001, 1001H, 1002, 1100, 1101, 1102, 1200, 1201, 2000, 2500, 2700, 3000, 3001 and 3002.
1314     */
1315
1316    /* Chip markings: D 2021 / SC430920PB / G63C 185 / JSAA9810A
1317     * Note: Although this is a PAL unit, the ID string in the
1318     * code is "for US/AEP", so it may be the same for all the
1319     * debug consoles.
1320     */
1321    ROM_SYSTEM_BIOS( 15, "DTL-H1202", "DTL-H1202 PAL [SC430920]" )
1322    ROMX_LOAD( "sc430920.s19", 0x0000, 0xb195, CRC(8380a5a2) SHA1(6fe45fd6fb96b12a25a45f39b5efd0be5e3f3e86), ROM_BIOS(16) )
1323ROM_END
1324
1325const rom_entry *psxcd_device::device_rom_region() const
1326{
1327   return ROM_NAME( psxcd );
1328}
1329
trunk/src/mame/machine/psxcd.h
r249893r249894
3838   virtual void device_stop();
3939   virtual void device_reset();
4040   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
41   virtual const rom_entry *device_rom_region() const;
4142
4243private:
4344   void write_command(UINT8 byte);
trunk/src/mame/machine/xbox.c
r249893r249894
14121412}
14131413
14141414ADDRESS_MAP_START(xbox_base_map, AS_PROGRAM, 32, xbox_base_state)
1415   AM_RANGE(0x00000000, 0x07ffffff) AM_RAM // 128 megabytes
1416   AM_RANGE(0xf0000000, 0xf0ffffff) AM_RAM
1415   AM_RANGE(0x00000000, 0x07ffffff) AM_RAM AM_SHARE("nv2a_share") // 128 megabytes
1416   AM_RANGE(0xf0000000, 0xf7ffffff) AM_RAM AM_SHARE("nv2a_share") // 3d accelerator wants this
14171417   AM_RANGE(0xfd000000, 0xfdffffff) AM_RAM AM_READWRITE(geforce_r, geforce_w)
14181418   AM_RANGE(0xfed00000, 0xfed003ff) AM_READWRITE(usbctrl_r, usbctrl_w)
14191419   AM_RANGE(0xfe800000, 0xfe85ffff) AM_READWRITE(audio_apu_r, audio_apu_w)
trunk/src/mame/mess.lst
r249893r249894
10010032xe
10110132xj
10210232x_scd   // 1994 Sega Sega CD (USA w/32X addon)
10332x_mcd   // 1995 Sega Mega-CD (Europe w/32X addon)
10432x_mcdj   // 1994 Sega Mega-CD (Japan w/32X addon)
103105segapm    // 1996 Sega Picture Magic (32x type hardware)
104106
105107saturnjp  // 1994 Sega Saturn (Japan)
r249893r249894
344346//prophet2
345347bbca      // 1981 BBC Micro Model A
346348bbcb      // 1981 BBC Micro Model B w/8271 FDC
347bbcb_de   // 1981 BBC Micro Model B (German)
349bbcb_de   // 1982 BBC Micro Model B (German)
348350bbcb_us   // 1983 BBC Micro Model B (US)
349351electron  // 1983 Acorn Electron
350bbcb1770  // 1985 BBC Micro Model B w/1770 FDC
352bbcb1770  // 1984 BBC Micro Model B w/1770 FDC
351353bbcbp     // 1985 BBC Micro Model B+ 64K
352354bbcbp128  // 1985 BBC Micro Model B+ 128K
353355abc110    // 1985 ABC 110
354abc210    // 1985 ABC 210/Cambridge Workstation
356acw443    // 1985 ABC 210/Cambridge Workstation
355357abc310    // 1985 ABC 310
356358reutapm   // 1985 Reuters APM Board
357359bbcm      // 1986 BBC Master 128
r249893r249894
759761mbc16   // Sanyo MBC-16
760762ataripc3
761763ssam88s
764sicpc1605
765eagle1600
762766
763767// Non-PC msdos
764768pcd     // Siemens PC-D
r249893r249894
16591663
16601664// Exidy, Inc.
16611665sorcerer     // Sorcerer
1666sorcerer2   // monitor 1.1 1979
16621667sorcererd    // Sorcerer with floppies
16631668
16641669// Galaksija
r249893r249894
27592764micral
27602765rd100
27612766proteus3
2767unichamp
trunk/src/mame/video/apple2.c
r249893r249894
12361236   UINT32 w;
12371237   UINT16 *artifact_map_ptr;
12381238   int mon_type = m_sysconfig & 0x03;
1239   int begincol = 0, endcol = 40;
12391240
12401241   /* sanity checks */
12411242   if (beginrow < cliprect.min_y)
r249893r249894
12451246   if (endrow < beginrow)
12461247      return;
12471248
1249   // we generate 2 pixels per "column" so adjust
1250   if (begincol < (cliprect.min_x/14))
1251      begincol = (cliprect.min_x/14);
1252   if (endcol > (cliprect.max_x/14))
1253      endcol = (cliprect.max_x/14);
1254   if (cliprect.max_x > 39*14)
1255      endcol = 40;
1256   if (endcol < begincol)
1257      return;
1258
1259   //printf("HGR draw: page %c, rows %d-%d cols %d-%d\n", m_page2 ? '2' : '1', beginrow, endrow, begincol, endcol);
1260
12481261   vram = &m_ram_ptr[(m_page2 ? 0x4000 : 0x2000)];
12491262
12501263   vram_row[0] = 0;
r249893r249894
12521265
12531266   for (row = beginrow; row <= endrow; row++)
12541267   {
1255      for (col = 0; col < 40; col++)
1268      for (col = begincol; col < endcol; col++)
12561269      {
12571270         offset = ((((row/8) & 0x07) << 7) | (((row/8) & 0x18) * 5 + col)) | ((row & 7) << 10);
12581271         vram_row[1+col] = vram[offset];
r249893r249894
12661279            |   (((UINT32) vram_row[col+1] & 0x7f) <<  7)
12671280            |   (((UINT32) vram_row[col+2] & 0x7f) << 14);
12681281
1282
1283         // verified on h/w: setting dhires w/o 80col emulates a rev. 0 Apple ][ with no orange/blue
1284         if (m_dhires)
1285         {
1286            artifact_map_ptr = m_hires_artifact_map;
1287         }
1288         else
1289         {
1290            artifact_map_ptr = &m_hires_artifact_map[((vram_row[col + 1] & 0x80) >> 7) * 16];
1291         }
1292
12691293         switch (mon_type)
12701294         {
12711295            case 0:
1272               // verified on h/w: setting dhires w/o 80col emulates a rev. 0 Apple ][ with no orange/blue
1273               if (m_dhires)
1274               {
1275                  artifact_map_ptr = m_hires_artifact_map;
1276               }
1277               else
1278               {
1279                  artifact_map_ptr = &m_hires_artifact_map[((vram_row[col + 1] & 0x80) >> 7) * 16];
1280               }
12811296               for (b = 0; b < 7; b++)
12821297               {
12831298                  v = artifact_map_ptr[((w >> (b + 7-1)) & 0x07) | (((b ^ col) & 0x01) << 3)];
r249893r249894
13021317               for (b = 0; b < 7; b++)
13031318               {
13041319                  v = (w & 1);
1305                  w >>= 1;
1320                  w >>= 1;                           
13061321                  *(p++) = v ? GREEN : BLACK;
13071322                  *(p++) = v ? GREEN : BLACK;
13081323               }
trunk/src/mame/video/bbc.c
r249893r249894
4040{
4141   // ma = output from IC2 6845 MA address
4242
43   int c0=m_b4_video0; // output from IC32 74LS259 bits 4 and 5
44   int c1=m_b5_video1;
43   int c0 = m_b4_video0; // output from IC32 74LS259 bits 4 and 5
44   int c1 = m_b5_video1;
4545
4646   /* the 4 bit input port b on IC39 are produced by 4 NAND gates.
4747   these NAND gates take their
4848   inputs from c0 and c1 (from IC32) and ma12 (from the 6845) */
4949
5050   /* get bit m12 from the 6845 */
51   int ma12=(ma>>12)&1;
51   int ma12 = BIT(ma,12);
5252
5353   // 4 bit input B on IC39 74LS283 (4 bit adder)
5454   /* 3 input NAND part of IC 36 */
5555   int b1=(~(c1 & c0 & ma12)) & 1;
5656   /* 2 input NAND part of IC40 (b3 is calculated before b2 and b4 because b3 feed back into b2 and b4) */
57   int b3=(~(c0 & ma12)) & 1;
57   int b3 = (~(c0 & ma12)) & 1;
5858   /* 3 input NAND part of IC 36 */
59   int b2=(~(c1 & b3 & ma12)) & 1;
59   int b2 = (~(c1 & b3 & ma12)) & 1;
6060   /* 2 input NAND part of IC 27 */
61   int b4=(~(b3 & ma12)) & 1;
61   int b4 = (~(b3 & ma12)) & 1;
6262
6363   /* inputs port b to IC39 are taken from the NAND gates b1 to b4 */
64   int b=(b1<<0)|(b2<<1)|(b3<<2)|(b4<<3);
64   int b = (b1<<0) | (b2<<1) | (b3<<2) | (b4<<3);
6565
6666   /* inputs port a to IC39 are MA8 to MA11 from the 6845 */
67   int a=(ma>>8)&0xf;
67   int a = (ma>>8) & 0xf;
6868
6969   /* IC39 performs the 4 bit add with the carry input set high */
70   int s=(a+b+1)&0xf;
70   int s = (a+b+1) & 0xf;
7171
7272   /* if MA13 (TTXVDU) is low then IC8 and IC9 are used to calculate
7373      the memory location required for the hi res video.
74      if MA13 is hight then IC10 and IC11 are used to calculate the memory location for the teletext chip*/
74      if MA13 is high then IC10 and IC11 are used to calculate the memory location for the teletext chip */
7575   unsigned int m;
76   if ((ma>>13)&1)
76   if (BIT(ma,13))
7777   {
7878      // IC 10 and IC 11
79      m=((ma&0x3ff)|0x3c00)|((s&0x8)<<11);
79      m = ((ma&0x3ff) | 0x3c00) | ((s&0x8)<<11);
8080   } else {
8181      // IC 8 and IC 9
82      m=((ma&0xff)<<3)|(s<<11)|(ra&0x7);
82      m = ((ma&0xff)<<3) | (s<<11) | (ra&0x7);
8383   }
84   if (m_memorySize==16)
84   if (m_memorySize == 16)
8585      return  m & 0x3fff;
8686
8787   return m;
8888}
8989
90/***************************************************************************
91 * Palette
92 ***************************************************************************/
93
94static const rgb_t bbc_palette[8] =
95{
96   rgb_t(0x0ff, 0x0ff, 0x0ff),
97   rgb_t(0x000, 0x0ff, 0x0ff),
98   rgb_t(0x0ff, 0x000, 0x0ff),
99   rgb_t(0x000, 0x000, 0x0ff),
100   rgb_t(0x0ff, 0x0ff, 0x000),
101   rgb_t(0x000, 0x0ff, 0x000),
102   rgb_t(0x0ff, 0x000, 0x000),
103   rgb_t(0x000, 0x000, 0x000)
104};
105
106PALETTE_INIT_MEMBER(bbc_state, bbc)
107{
108   palette.set_pen_colors(0, bbc_palette, ARRAY_LENGTH(bbc_palette));
109}
110
90111/************************************************************************
91112 * VideoULA
92113 ************************************************************************/
r249893r249894
101122{
102123   for (int i=0; i<256; i++)
103124   {
104      m_pixel_bits[i] = (((i>>7)&1)<<3) | (((i>>5)&1)<<2) | (((i>>3)&1)<<1) | (((i>>1)&1)<<0);
125      m_pixel_bits[i] = (BIT(i,7)<<3) | (BIT(i,5)<<2) | (BIT(i,3)<<1) | (BIT(i,1)<<0);
105126   }
106127}
107128
r249893r249894
122143   {
123144   // Set the control register in the Video ULA
124145   case 0:
125      {
126      m_videoULA_Reg=data;
127      m_videoULA_master_cursor_size=    (m_videoULA_Reg>>7)&0x01;
128      m_videoULA_width_of_cursor=       (m_videoULA_Reg>>5)&0x03;
129      m_videoULA_6845_clock_rate=       (m_videoULA_Reg>>4)&0x01;
130      m_videoULA_characters_per_line=   (m_videoULA_Reg>>2)&0x03;
131      m_videoULA_teletext_normal_select=(m_videoULA_Reg>>1)&0x01;
132      m_videoULA_flash_colour_select=    m_videoULA_Reg    &0x01;
146      m_videoULA_Reg = data;
147      m_videoULA_master_cursor_size     = (m_videoULA_Reg>>7)&0x01;
148      m_videoULA_width_of_cursor        = (m_videoULA_Reg>>5)&0x03;
149      m_videoULA_6845_clock_rate        = (m_videoULA_Reg>>4)&0x01;
150      m_videoULA_characters_per_line    = (m_videoULA_Reg>>2)&0x03;
151      m_videoULA_teletext_normal_select = (m_videoULA_Reg>>1)&0x01;
152      m_videoULA_flash_colour_select    =  m_videoULA_Reg    &0x01;
133153
134      m_videoULA_pallet_lookup=m_videoULA_flash_colour_select?m_videoULA_pallet0:m_videoULA_pallet1;
154      m_videoULA_palette_lookup = m_videoULA_flash_colour_select ? m_videoULA_palette0 : m_videoULA_palette1;
135155
136      m_emulation_cursor_size=width_of_cursor_set[m_videoULA_width_of_cursor|(m_videoULA_master_cursor_size<<2)];
156      m_emulation_cursor_size = width_of_cursor_set[m_videoULA_width_of_cursor | (m_videoULA_master_cursor_size<<2)];
137157
138158      // this is the number of BBC pixels held in each byte
139159      if (m_videoULA_teletext_normal_select)
140      {
141         m_pixels_per_byte=6;
142      } else {
143         m_pixels_per_byte=pixels_per_byte_set[m_videoULA_characters_per_line|(m_videoULA_6845_clock_rate<<2)];
144      }
160         m_pixels_per_byte = 12;
161      else
162         m_pixels_per_byte = pixels_per_byte_set[m_videoULA_characters_per_line | (m_videoULA_6845_clock_rate<<2)];
163
145164      m_mc6845->set_hpixels_per_column(m_pixels_per_byte);
146165      if (m_videoULA_6845_clock_rate)
147         m_mc6845->set_clock(2000000);
166         m_mc6845->set_clock(XTAL_16MHz/8);
148167      else
149         m_mc6845->set_clock(1000000);
150      }
168         m_mc6845->set_clock(XTAL_16MHz/16);
151169      break;
152   // Set a pallet register in the Video ULA
170   // Set a palette register in the Video ULA
153171   case 1:
154      int tpal=(data>>4)&0x0f;
155      int tcol=data&0x0f;
156      m_videoULA_pallet0[tpal]=tcol;
157      m_videoULA_pallet1[tpal]=tcol<8?tcol:tcol^7;
172      int tpal = (data >> 4)&0x0f;
173      int tcol = data&0x0f;
174      m_videoULA_palette0[tpal] = tcol;
175      m_videoULA_palette1[tpal] = tcol<8 ? tcol : tcol^7;
158176      break;
159177   }
160178}
r249893r249894
178196         //Teletext Latch bit 6 is only passed onto bits 6 on the Teletext chip if DE is true
179197         //Teletext Latch bit 7 goes to LOSE on the Teletext chip
180198
181         if (((ma>>13)&1)==0)
199         if (BIT(ma,13) == 0)
182200         {
183            m_Teletext_Latch=0;
201            m_Teletext_Latch = 0;
184202         }
185203         else
186204         {
187            m_Teletext_Latch=(m_BBC_Video_RAM[calculate_video_address(ma+x_pos,ra)]);
205            m_Teletext_Latch = m_BBC_Video_RAM[calculate_video_address(ma+x_pos,ra)];
188206         }
189207
190         m_trom->write((m_Teletext_Latch&0x3f)|(m_Teletext_Latch&0x40));
208         m_trom->write((m_Teletext_Latch&0x3f) | (m_Teletext_Latch&0x40));
191209
192210         m_trom->f1_w(1);
193211         m_trom->f1_w(0);
194212
195         for(int pixelno=0;pixelno<6;pixelno++)
213         for(int pixelno=0; pixelno<12; pixelno++)
196214         {
197215            m_trom->tr6_w(1);
198216            m_trom->tr6_w(0);
r249893r249894
224242      {
225243         for(int x_pos=0; x_pos<x_count; x_pos++)
226244         {
227            int vmem=calculate_video_address(ma+x_pos,ra);
228            unsigned char i=m_BBC_Video_RAM[vmem];
245            int vmem = calculate_video_address(ma+x_pos,ra);
246            unsigned char i = m_BBC_Video_RAM[vmem];
229247
230            for(int pixelno=0;pixelno<m_pixels_per_byte;pixelno++)
248            for(int pixelno=0; pixelno<m_pixels_per_byte; pixelno++)
231249            {
232               int col=m_videoULA_pallet_lookup[m_pixel_bits[i]] ^ ((x_pos==cursor_x) ? 7 : 0);
233               bitmap.pix32(y, (x_pos*m_pixels_per_byte)+pixelno)=palette[col];
234               i=(i<<1)|1;
250               int col = m_videoULA_palette_lookup[m_pixel_bits[i]] ^ ((x_pos==cursor_x) ? 7 : 0);
251               bitmap.pix32(y, (x_pos*m_pixels_per_byte)+pixelno) = palette[col];
252               i = (i<<1) | 1;
235253            }
236254         }
237255      }
r249893r249894
239257      {
240258         for(int x_pos=0; x_pos<x_count; x_pos++)
241259         {
242            for(int pixelno=0;pixelno<m_pixels_per_byte;pixelno++)
260            for(int pixelno=0; pixelno<m_pixels_per_byte; pixelno++)
243261            {
244               bitmap.pix32(y, (x_pos*m_pixels_per_byte)+pixelno)=palette[7];
262               bitmap.pix32(y, (x_pos*m_pixels_per_byte)+pixelno) = palette[7];
245263            }
246264         }
247265      }
r249893r249894
254272}
255273
256274
257/**** BBC B+ Shadow Ram change ****/
275/**** BBC B+/Master Shadow Ram change ****/
258276
259void bbc_state::bbcbp_setvideoshadow(int vdusel)
277void bbc_state::bbc_setvideoshadow(int vdusel)
260278{
279   // LYNNE lives at 0xb000 in our map, but the offset we use here is 0x8000
280   // as the video circuitry will already be looking at 0x3000 or so above
281   // the offset.
261282   if (vdusel)
262   {
263      m_BBC_Video_RAM= m_region_maincpu->base()+0x8000;
264   } else {
265      m_BBC_Video_RAM= m_region_maincpu->base();
266   }
283      m_BBC_Video_RAM = m_region_maincpu->base()+0x8000;
284   else
285      m_BBC_Video_RAM = m_region_maincpu->base();
267286}
268287
269288/************************************************************************
r249893r249894
275294{
276295   m_emulation_cursor_size = 1;
277296
278   m_VideoULA_CR = 7;
279   m_VideoULA_CR_counter = 0;
280
281297   set_pixel_lookup();
282298
283299   m_BBC_Video_RAM = m_region_maincpu->base();
284   m_memorySize=memorySize;
300   m_memorySize = memorySize;
285301
286302}
287303
trunk/src/mame/video/champbas.c
r249893r249894
11// license:BSD-3-Clause
22// copyright-holders:Ernesto Corvi, Jarek Parchanski, Nicola Salmoria
3/*************************************************************************
4
5    Talbot - Champion Base Ball - Exciting Soccer
6
7*************************************************************************/
8
39#include "emu.h"
410#include "video/resnet.h"
511#include "includes/champbas.h"
r249893r249894
2834   static const int resistances_rg[3] = { 1000, 470, 220 };
2935   static const int resistances_b [2] = { 470, 220 };
3036   double rweights[3], gweights[3], bweights[2];
31   int i;
3237
3338   /* compute the color output resistor weights */
3439   compute_resistor_weights(0, 255, -1.0,
r249893r249894
3742         2, &resistances_b[0],  bweights, 0, 0);
3843
3944   /* create a lookup table for the palette */
40   for (i = 0; i < 0x20; i++)
45   for (int i = 0; i < 0x20; i++)
4146   {
4247      int bit0, bit1, bit2;
4348      int r, g, b;
r249893r249894
6469
6570   color_prom += 0x20;
6671
67   for (i = 0; i < 0x200; i++)
72   for (int i = 0; i < 0x200; i++)
6873   {
6974      UINT8 ctabentry = (color_prom[i & 0xff] & 0x0f) | ((i & 0x100) >> 4);
7075      palette.set_pen_indirect(i, ctabentry);
r249893r249894
7580PALETTE_INIT_MEMBER(champbas_state,exctsccr)
7681{
7782   const UINT8 *color_prom = memregion("proms")->base();
78   int i;
7983
8084   /* create a lookup table for the palette */
81   for (i = 0; i < 0x20; i++)
85   for (int i = 0; i < 0x20; i++)
8286   {
8387      int bit0, bit1, bit2;
8488      int r, g, b;
r249893r249894
108112   color_prom += 0x20;
109113
110114   /* characters / sprites (3bpp) */
111   for (i = 0; i < 0x100; i++)
115   for (int i = 0; i < 0x100; i++)
112116   {
113117      int swapped_i = BITSWAP8(i, 2, 7, 6, 5, 4, 3, 1, 0);
114118      UINT8 ctabentry = (color_prom[swapped_i] & 0x0f) | ((i & 0x80) >> 3);
r249893r249894
116120   }
117121
118122   /* sprites (4bpp) */
119   for (i = 0; i < 0x100; i++)
123   for (int i = 0; i < 0x100; i++)
120124   {
121125      UINT8 ctabentry = (color_prom[0x100 + i] & 0x0f) | 0x10;
122126      palette.set_pen_indirect(i + 0x100, ctabentry);
r249893r249894
186190
187191void champbas_state::champbas_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
188192{
189   int offs;
190193   gfx_element* const gfx = m_gfxdecode->gfx(1);
191194
192   for (offs = m_spriteram.bytes() - 2; offs >= 0; offs -= 2)
195   for (int offs = m_spriteram.bytes() - 2; offs >= 0; offs -= 2)
193196   {
194197      int code = (m_spriteram[offs] >> 2) | (m_gfx_bank << 6);
195198      int color = (m_spriteram[offs + 1] & 0x1f) | (m_palette_bank << 6);
r249893r249894
198201      int sx = m_spriteram_2[offs + 1] - 16;
199202      int sy = 255 - m_spriteram_2[offs];
200203
204      gfx->transmask(bitmap,cliprect,
205         code, color,
206         flipx, flipy,
207         sx, sy,
208         m_palette->transpen_mask(*gfx, color, 0));
201209
202            gfx->transmask(bitmap,cliprect,
203            code, color,
204            flipx, flipy,
205            sx, sy,
206            m_palette->transpen_mask(*gfx, color, 0));
207
208210      // wraparound
209
210            gfx->transmask(bitmap,cliprect,
211            code, color,
212            flipx, flipy,
213            sx + 256, sy,
214            m_palette->transpen_mask(*gfx, color, 0));
211      gfx->transmask(bitmap,cliprect,
212         code, color,
213         flipx, flipy,
214         sx + 256, sy,
215         m_palette->transpen_mask(*gfx, color, 0));
215216   }
216217}
217218
218219void champbas_state::exctsccr_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
219220{
220   int offs;
221221   UINT8 *obj1, *obj2;
222222
223223   obj1 = m_bg_videoram;
224224   obj2 = &(m_spriteram[0x20]);
225225
226   for (offs = 0x0e; offs >= 0; offs -= 2)
226   for (int offs = 0x0e; offs >= 0; offs -= 2)
227227   {
228228      int sx, sy, code, bank, flipx, flipy, color;
229229
r249893r249894
236236      color = (obj1[offs + 1]) & 0x0f;
237237      bank = ((obj1[offs + 1] >> 4) & 1);
238238
239
240            m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
241            code + (bank << 6),
242            color,
243            flipx, flipy,
244            sx,sy,0);
239      m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
240         code + (bank << 6),
241         color,
242         flipx, flipy,
243         sx,sy,0);
245244   }
246245
247246   obj1 = m_spriteram_2;
248247   obj2 = m_spriteram;
249248
250   for (offs = 0x0e; offs >= 0; offs -= 2)
249   for (int offs = 0x0e; offs >= 0; offs -= 2)
251250   {
252251      int sx, sy, code, flipx, flipy, color;
253252
r249893r249894
259258      flipy = (~obj1[offs]) & 0x02;
260259      color = (obj1[offs + 1]) & 0x0f;
261260
262
263            m_gfxdecode->gfx(2)->transmask(bitmap,cliprect,
264            code,
265            color,
266            flipx, flipy,
267            sx,sy,
268            m_palette->transpen_mask(*m_gfxdecode->gfx(2), color, 0x10));
261      m_gfxdecode->gfx(2)->transmask(bitmap,cliprect,
262         code,
263         color,
264         flipx, flipy,
265         sx,sy,
266         m_palette->transpen_mask(*m_gfxdecode->gfx(2), color, 0x10));
269267   }
270268}
271269
trunk/src/mame/video/chihiro.c
r249893r249894
66#include "machine/pic8259.h"
77#include "includes/chihiro.h"
88
9//#define LOG_NV2A
9// #define LOG_NV2A
1010
1111const char *vertex_program_disassembler::srctypes[] = { "??", "Rn", "Vn", "Cn" };
1212const char *vertex_program_disassembler::scaops[] = { "NOP", "IMV", "RCP", "RCC", "RSQ", "EXP", "LOG", "LIT", "???", "???", "???", "???", "???", "???", "???", "???", "???" };
r249893r249894
23352335{
23362336   int m;
23372337
2338   if (what == 0)
2339      return;
23382340   m = antialias_control;
23392341   if (antialiasing_rendertarget != 0)
23402342      m = 2;
r249893r249894
40254027   int countlen;
40264028   int ret;
40274029   address_space *space = puller_space;
4028#ifdef LOG_NV2A
40294030   UINT32 subch;
4030#endif
40314031
40324032   chanel = puller_channel;
40334033   subchannel = puller_subchannel;
40344034   dmaput = &channel[chanel][subchannel].regs[0x40 / 4];
40354035   dmaget = &channel[chanel][subchannel].regs[0x44 / 4];
4036   chanel = puller_channel;
4037   subchannel = puller_subchannel;
40384036   while (*dmaget != *dmaput) {
40394037      cmd = space->read_dword(*dmaget);
40404038      *dmaget += 4;
r249893r249894
40524050         break;
40534051      case 0: // increasing method
40544052         method = (cmd >> 2) & 2047; // method*4 is address // if method >= 0x40 send it to assigned object
4055#ifdef LOG_NV2A
40564053         subch = (cmd >> 13) & 7;
4057#endif
40584054         count = (cmd >> 18) & 2047;
40594055         if ((method == 0) && (count == 1)) {
40604056            handle = space->read_dword(*dmaget);
40614057            handle = geforce_object_offset(handle);
40624058#ifdef LOG_NV2A
4063            logerror("  assign to subchannel %d object at %d\n", subch, handle);
4059            logerror("  assign to subchannel %d object at %d", subch, handle);
40644060#endif
4065            channel[chanel][subchannel].object.objhandle = handle;
4061            channel[chanel][subch].object.objhandle = handle;
40664062            handle = ramin[handle / 4];
40674063            objclass = handle & 0xff;
4068            channel[chanel][subchannel].object.objclass = objclass;
4064#ifdef LOG_NV2A
4065            logerror(" class %03X\n", objclass);
4066#endif
4067            channel[chanel][subch].object.objclass = objclass;
40694068            *dmaget += 4;
40704069         }
40714070         else {
r249893r249894
40754074            ret = 0;
40764075            while (count > 0) {
40774076               countlen = 1;
4078               ret=geforce_exec_method(*space, chanel, subchannel, method, *dmaget, countlen);
4077               ret=geforce_exec_method(*space, chanel, subch, method, *dmaget, countlen);
40794078               count--;
40804079               method++;
40814080               *dmaget += 4;
r249893r249894
40914090         break;
40924091      case 5: // non-increasing method
40934092         method = (cmd >> 2) & 2047;
4094#ifdef LOG_NV2A
40954093         subch = (cmd >> 13) & 7;
4096#endif
40974094         count = (cmd >> 18) & 2047;
40984095         if ((method == 0) && (count == 1)) {
4099#ifdef LOG_NV2A
4100            logerror("  assign channel %d\n", subch);
4101#endif
41024096            handle = space->read_dword(*dmaget);
41034097            handle = geforce_object_offset(handle);
41044098#ifdef LOG_NV2A
4105            logerror("  assign to subchannel %d object at %d\n", subch, handle);
4099            logerror("  assign to subchannel %d object at %d", subch, handle);
41064100#endif
4107            channel[chanel][subchannel].object.objhandle = handle;
4101            channel[chanel][subch].object.objhandle = handle;
41084102            handle = ramin[handle / 4];
41094103            objclass = handle & 0xff;
4110            channel[chanel][subchannel].object.objclass = objclass;
4104#ifdef LOG_NV2A
4105            logerror(" class %03X\n", objclass);
4106#endif
4107            channel[chanel][subch].object.objclass = objclass;
41114108            *dmaget += 4;
41124109         }
41134110         else {
r249893r249894
41164113#endif
41174114            while (count > 0) {
41184115               countlen = count;
4119               ret=geforce_exec_method(*space, chanel, subchannel, method, *dmaget, countlen);
4116               ret=geforce_exec_method(*space, chanel, subch, method, *dmaget, countlen);
41204117               *dmaget += 4 * (count - countlen);
41214118               count = countlen;
41224119            }
r249893r249894
41244121         break;
41254122      case 3: // long non-increasing method
41264123         method = (cmd >> 2) & 2047;
4127#ifdef LOG_NV2A
41284124         subch = (cmd >> 13) & 7;
4129#endif
41304125         count = space->read_dword(*dmaget);
41314126         *dmaget += 4;
41324127         if ((method == 0) && (count == 1)) {
41334128            handle = space->read_dword(*dmaget);
41344129            handle = geforce_object_offset(handle);
41354130#ifdef LOG_NV2A
4136            logerror("  assign to subchannel %d object at %d\n", subch, handle);
4131            logerror("  assign to subchannel %d object at %d", subch, handle);
41374132#endif
4138            channel[chanel][subchannel].object.objhandle = handle;
4133            channel[chanel][subch].object.objhandle = handle;
41394134            handle = ramin[handle / 4];
41404135            objclass = handle & 0xff;
4141            channel[chanel][subchannel].object.objclass = objclass;
4136#ifdef LOG_NV2A
4137            logerror(" class %03X\n", objclass);
4138#endif
4139            channel[chanel][subch].object.objclass = objclass;
41424140            *dmaget += 4;
41434141         }
41444142         else {
r249893r249894
41474145#endif
41484146            while (count > 0) {
41494147               countlen = count;
4150               ret=geforce_exec_method(*space, chanel, subchannel, method, *dmaget, countlen);
4148               ret=geforce_exec_method(*space, chanel, subch, method, *dmaget, countlen);
41514149               *dmaget += 4 * (count - countlen);
41524150               count = countlen;
41534151            }
trunk/src/mame/video/decbac06.c
r249893r249894
7272      m_pf_data(NULL),
7373      m_pf_rowscroll(NULL),
7474      m_pf_colscroll(NULL),
75      m_tile_region(0),
75      m_tile_region_8(0),
76      m_tile_region_16(0),
77      m_supports_8x8(true),
78      m_supports_16x16(true),
79      m_supports_rc_scroll(true),
7680      m_gfxcolmask(0),
7781      m_rambank(0),
7882      m_gfxregion8x8(0),
r249893r249894
171175   if (m_rambank&1) tile_index+=0x1000;
172176   int tile=m_pf_data[tile_index];
173177   int colourpri=(tile>>12);
174   SET_TILE_INFO_MEMBER(m_tile_region,tile&0xfff,0,0);
178   SET_TILE_INFO_MEMBER(m_tile_region_8,tile&0xfff,0,0);
175179   tileinfo.category = colourpri;
176180}
177181
r249893r249894
180184   if (m_rambank&1) tile_index+=0x1000;
181185   int tile=m_pf_data[tile_index];
182186   int colourpri=(tile>>12);
183   SET_TILE_INFO_MEMBER(m_tile_region,tile&0xfff,0,0);
187   SET_TILE_INFO_MEMBER(m_tile_region_16,tile&0xfff,0,0);
184188   tileinfo.category = colourpri;
185189}
186190
187191void deco_bac06_device::create_tilemaps(int region8x8, int region16x16)
188192{
189   m_tile_region = region8x8;
193   m_tile_region_8 = region8x8;
194   m_tile_region_16 = region16x16;
190195
191196   m_pf8x8_tilemap[0] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_8x8_scan),this), 8, 8,128, 32);
192197   m_pf8x8_tilemap[1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_8x8_scan),this), 8, 8, 64, 64);
193198   m_pf8x8_tilemap[2] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_8x8_scan),this), 8, 8, 32,128);
194199
195   m_tile_region = region16x16;
196200
197201   if (m_wide==2)
198202   {
r249893r249894
246250   int row_scroll_enabled = 0;
247251   int col_scroll_enabled = 0;
248252
249   if (control0)
253   if (m_supports_rc_scroll)
250254   {
251      row_scroll_enabled = (rowscroll_ptr && (control0[0]&0x4));
252      col_scroll_enabled = (colscroll_ptr && (control0[0]&0x8));
255      if (control0)
256      {
257         row_scroll_enabled = (rowscroll_ptr && (control0[0] & 0x4));
258         col_scroll_enabled = (colscroll_ptr && (control0[0] & 0x8));
259      }
253260   }
254261
255262   width_mask = src_bitmap.width() - 1;
r249893r249894
310317{
311318   tilemap_t* tm = 0;
312319
313   switch (m_pf_control_0[3]&0x3) {
314      case 0: /* 4x1 */
315         if (m_pf_control_0[0]&0x1)
316            tm = m_pf8x8_tilemap[0];
317         else
318            tm = m_pf16x16_tilemap[0];
319         break;
320   int tm_dimensions = m_pf_control_0[3] & 0x3;
321   if (tm_dimensions == 3) tm_dimensions = 1; // 3 is invalid / the same as 1?
320322
321      case 1: /* 2x2 */
322      default:
323         if (m_pf_control_0[0]&0x1)
324            tm = m_pf8x8_tilemap[1];
325         else
326            tm = m_pf16x16_tilemap[1];
327         break;
323   if (m_pf_control_0[0]&0x1) // is 8x8 tiles mode selected?
324   {
325      if (m_supports_8x8)
326      {
327         tm = m_pf8x8_tilemap[tm_dimensions];
328      }
329      else if (m_supports_16x16)
330      {
331         tm = m_pf16x16_tilemap[tm_dimensions];
332      }
333   }
334   else // 16x16 tiles mode is selected
335   {
336      if (m_supports_16x16)
337      {
338         tm = m_pf16x16_tilemap[tm_dimensions];
339      }
340      else if (m_supports_8x8)
341      {
342         tm = m_pf8x8_tilemap[tm_dimensions];
343      }
344   }
328345
329      case 2: /* 1x4 */
330         if (m_pf_control_0[0]&0x1)
331            tm = m_pf8x8_tilemap[2];
332         else
333            tm = m_pf16x16_tilemap[2];
334         break;
335   };
336
337346   if (tm)
338347      custom_tilemap_draw(bitmap,cliprect,tm,m_pf_rowscroll,m_pf_colscroll,m_pf_control_0,m_pf_control_1,flags, penmask, pencondition, colprimask, colpricondition);
339348
trunk/src/mame/video/decbac06.h
r249893r249894
22// copyright-holders:Bryan McPhail, David Haywood
33/* BAC06 */
44
5#define MCFG_BAC06_BOOTLEG_DISABLE_8x8 \
6   deco_bac06_device::disable_8x8(*device);
57
8#define MCFG_BAC06_BOOTLEG_DISABLE_16x16 \
9   deco_bac06_device::disable_16x16(*device);
10
11#define MCFG_BAC06_BOOTLEG_DISABLE_RC_SCROLL \
12   deco_bac06_device::disable_rc_scroll(*device);
13
14
615class deco_bac06_device : public device_t
716{
817public:
r249893r249894
1726
1827   tilemap_t* m_pf8x8_tilemap[3];
1928   tilemap_t* m_pf16x16_tilemap[3];
20   int    m_tile_region;
29   int    m_tile_region_8;
30   int    m_tile_region_16;
31
32   // some bootlegs (eg midresb / midresbj) don't appear to actually support the alt modes, they set them and end up with broken gfx on later levels.
33   bool   m_supports_8x8;
34   bool    m_supports_16x16;
35   bool    m_supports_rc_scroll;
36
37   static void disable_8x8(device_t &device)
38   {
39      deco_bac06_device &dev = downcast<deco_bac06_device &>(device);
40      dev.m_supports_8x8 = false;
41   }
42
43   static void disable_16x16(device_t &device)
44   {
45      deco_bac06_device &dev = downcast<deco_bac06_device &>(device);
46      dev.m_supports_16x16 = false;
47   }
48
49   static void disable_rc_scroll(device_t &device)
50   {
51      deco_bac06_device &dev = downcast<deco_bac06_device &>(device);
52      dev.m_supports_rc_scroll = false;
53   }
54
2155   void create_tilemaps(int region8x8,int region16x16);
2256   UINT16 m_pf_control_0[8];
2357   UINT16 m_pf_control_1[8];
trunk/src/mame/video/gic.c
r0r249894
1// license:BSD-3-Clause
2// copyright-holders:David Viens
3/***************************************************************************
4
5   gic.c
6
7   GI AY-3-8800-1 (Datasheet exists as AY-3-8500-1 Graphics Interface Chip)
8   For the GIMINI "Challenger" programmable game system.
9   
10   Really only ever used in the Unisonic Champion 2711
11
12   More LA tests made by plgDavid on hardware pretty much confirmed what is found
13   in the AY-3-8950-1 datasheet, but with more fine grained detail.
14
15   the GIC does not have internal ram of any sort apart from shift registers,
16   instead it relies on the external shared ram, (see page 7-85) Appendix AY-3-8950-1
17   
18   Unverified on LA (since the video pins are all connected into a composite mix):
19   at line 46 it lowers GIC_BUSY, until line 240
20
21   Verified using LA:
22   It will read the external ram areas continuously while GIC_BUSY is low (for 12.36ms)
23
24   (NOTE: OCTAL)
25   
26   000,001,002,003,004,005,  110,111,112,113,114,115,116,117,120,121,122,123,124,125 (15 times - No first bg line?)
27   006,007,010,011,012,013,  110,111,112,113,114,115,116,117,120,121,122,123,124,125 (16 times)
28   
29   014,015,016,017,020,021,  125,126,127,130,131,132,133,134,135,136,137,140,141,142 (16 times)
30   022,023,024,025,026,027,  125,126,127,130,131,132,133,134,135,136,137,140,141,142 (16 times)
31
32   030,031,032,033,034,035,  142,143,144,145,146,147,150,151,152,153,154,155,156,157 (16 times)
33   036,037,040,041,042,043,  142,143,144,145,146,147,150,151,152,153,154,155,156,157 (16 times)
34
35   044,045,046,047,050,051,  157,160,161,162,163,164,165,166,167,170,171,172,173,174 (16 times)
36   052,053,054,055,056,057,  157,160,161,162,163,164,165,166,167,170,171,172,173,174 (16 times)
37
38   060,061,062,063,064,065,  174,175,176,177,200,201,202,203,204,205,206,207,210,211 (16 times)
39   066,067,070,071,072,073,  174,175,176,177,200,201,202,203,204,205,206,207,210,211 (16 times)
40
41   074,075,076,077,100,101,  211,212,213,214,215,216,217,220,221,222,223,224,225,226 (16 times)
42   102,103,104,105,106,107,  211,212,213,214,215,216,217,220,221,222,223,224,225,226 (16 times)
43
44   000,001,002,003,004,005,  000,001,002,003,004,005,006,007,010,011,012,013,014,015 (once! padding?)
45
46   for a total of (12*20*16) = 3840 RAM reads (3 clocks per read at 1.79MHz)
47
48   Then it relingishes control to the CPU by raising BUSREQ.
49   
50   Cloking in more detail: (in 1.79MHz clocks)
51   boot:
52   busy:1  5360 clocks
53   busy:0 22116 clocks
54   busy:1  7752 clocks
55   busy:0 22116 clocks
56   busy:1  7752 clocks   
57   (...)
58
59   There are NO IRQ handshakes, just BUSREQ sync shared RAM
60
61***************************************************************************/
62
63#include "emu.h"
64#include "gic.h"
65
66// device type definition
67const device_type GIC = &device_creator<gic_device>;
68
69
70//Font data taken from Paul Robson's simulator
71//http://worstconsole.blogspot.ca/2012/12/the-worstconsoleever.html
72//A real AY-3-8800-1 (dead) is going to decap for a good dump
73ROM_START( gic_font )
74   ROM_REGION( 0x200, "cgrom", 0 )
75   ROM_LOAD( "ay-3-8800-1.bin", 0x0000, 0x200,  BAD_DUMP CRC(d9f11d2b) SHA1(60ef45d51d102cd3af78787008d9aed848137bee))
76ROM_END
77
78
79//-------------------------------------------------
80//  gic_device - constructor
81//-------------------------------------------------
82
83gic_device::gic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
84   : device_t(mconfig, GIC, "GIC", tag, owner, clock, "gic", __FILE__)
85   , device_sound_interface(mconfig, *this)
86   , device_video_interface(mconfig, *this)
87   , m_cgrom(0)
88   , m_audiocnt(0)
89   , m_audioval(0)   
90    , m_audioreset(0)
91    , m_ram(0)   
92{
93}
94
95
96gic_device::gic_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, int lines, const char *shortname, const char *source)
97   : device_t(mconfig, type, name, tag, owner, clock, shortname, source)
98   , device_sound_interface(mconfig, *this)
99   , device_video_interface(mconfig, *this)
100   , m_cgrom(0)   
101   , m_audiocnt(0)
102   , m_audioval(0)
103    , m_audioreset(0)
104    , m_ram(0)   
105{
106}
107
108const rom_entry *gic_device::device_rom_region() const
109{
110   //there is only one... how do I get rid of this?
111   return ROM_NAME( gic_font );
112}
113
114//-------------------------------------------------
115//  device_start - device-specific startup
116//-------------------------------------------------
117
118void gic_device::device_start()
119{
120   m_cgrom = memregion("cgrom")->base();
121
122   // Let the screen create our temporary bitmap with the screen's dimensions
123   m_screen->register_screen_bitmap(m_bitmap);
124
125   m_vblank_timer = timer_alloc(TIMER_VBLANK);
126   m_vblank_timer->adjust( m_screen->time_until_pos(1, END_ACTIVE_SCAN + 18 ), 0, m_screen->scan_period() );
127
128   // allocate the audio stream
129   m_stream = stream_alloc( 0, 1, clock()/(2*228) );
130}
131
132
133//-------------------------------------------------
134//  device_reset - device-specific reset
135//-------------------------------------------------
136
137void gic_device::device_reset()
138{
139   m_audiocnt=0;
140   m_audioval=0;   
141   m_audioreset=0;
142}
143
144#define GIC_CLUB    28
145#define GIC_SPACE    0
146   
147void gic_device::draw_char_left(int startx, int starty, UINT8 code, bitmap_ind16 &bitmap){
148   
149   UINT8*ptr = &m_cgrom[code*GIC_CHAR_H];
150     
151   for (size_t y=0;y<GIC_CHAR_H;y++){
152      UINT8 current = *ptr++;   
153      UINT8 nextx=0;
154      UINT8 curry= starty+y;     
155      for(UINT8 x=0x20;x!=0;x=x/2){   
156         if (current&x)
157            m_bitmap.pix16(curry,startx+nextx) = GIC_WHITE;
158         nextx++;
159      }
160   }
161}
162
163void gic_device::draw_char_right(int startx, int starty, UINT8 code, bitmap_ind16 &bitmap, int bg_col){
164   
165   UINT8*ptr = &m_cgrom[code*GIC_CHAR_H];
166   
167   for (size_t y=0;y<GIC_CHAR_H;y++){
168      UINT8 current = *ptr++;   
169      UINT8 nextx=0;
170      UINT8 curry= starty+y;
171
172      m_bitmap.pix16(curry,startx+nextx) = bg_col;
173      nextx++;   
174      for(UINT8 x=0x20;x!=0;x=x/2){         
175         m_bitmap.pix16(curry,startx+nextx) = (current&x)?GIC_WHITE:bg_col;   
176         nextx++;
177      }
178      m_bitmap.pix16(curry,startx+nextx) = bg_col;
179      nextx++;     
180      m_bitmap.pix16(curry,startx+nextx) = bg_col;     
181   }
182}
183
184UINT32 gic_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
185{
186   m_bitmap.fill(GIC_GREEN);
187
188   size_t XSTART = BORDER_SIZE;
189   size_t YSTART = START_ACTIVE_SCAN;
190   
191   //left hand side first
192   UINT8 current=0;
193   for(UINT8 cy=0;cy<GIC_LEFT_H;cy++){
194      for(UINT8 cx=0;cx<GIC_LEFT_W;cx++){
195         draw_char_left(XSTART+(cx*GIC_CHAR_W),
196                        YSTART+(cy*GIC_CHAR_H),
197                        m_ram[current],
198                       m_bitmap);
199         current++;
200      }
201   }
202
203   //right hand side is next
204   current=0x48;//110 octal
205   XSTART+=(GIC_LEFT_W*GIC_CHAR_W)+1;
206   
207   for(UINT8 cy=0;cy<GIC_RIGHT_H;cy++){
208      for(UINT8 cx=0;cx<GIC_RIGHT_W;cx++){
209         //complex case
210         UINT8 data = m_ram[current++];
211         
212         size_t currX   = (XSTART+           (cx*(3+GIC_CHAR_W)));
213         size_t currUP  = (YSTART+           (cy*(2*GIC_CHAR_H)));
214         size_t currLOW = (YSTART+GIC_CHAR_H+(cy*(2*GIC_CHAR_H)));
215         
216         switch(data&0xC0){
217            case 0x00:{
218               //lower rectangle only, normal char
219               draw_char_right(currX,currLOW,data,m_bitmap,GIC_GREEN);
220            }break;
221           
222            //White block
223            case 0xC0:{
224               //upper rectangle
225               draw_char_right(currX,currUP, GIC_SPACE,m_bitmap,GIC_WHITE);   
226               //lower rectangle                   
227               draw_char_right(currX,currLOW,GIC_SPACE,m_bitmap,GIC_WHITE);
228            }break;
229           
230            //Draw a card
231            case 0x40:{
232               int bgColor = (data&0x10)?GIC_RED:GIC_BLACK;   
233               //upper rectangle
234               draw_char_right(currX,currUP,           (data&0xF)+0x30,m_bitmap,bgColor);               
235               //lower rectangle     
236               draw_char_right(currX,currLOW,GIC_CLUB+((data&0x30)>>4),m_bitmap,bgColor);   
237            }break;
238           
239            default:printf("gic unknown char! %02X\n",data); break;
240         }
241      }
242   }
243
244   copybitmap( bitmap, m_bitmap, 0, 0, 0, 0, cliprect );
245   return 0;
246}
247
248/* AUDIO SECTION */
249
250void gic_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
251{
252   switch ( id )
253   {
254      case TIMER_VBLANK:
255         //flag the audio to reset
256         m_audioreset = 1;//phase need to reset! on next clock/228
257      break;   
258   }
259}
260
261#define GIC_AUDIO_BYTE 0x96
262
263void gic_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples)
264{
265   stream_sample_t *buffer = outputs[0];
266
267    //Audio is basic and badly implemented (doubt that was the intent)
268   //The datasheet list the 3 different frequencies the GIC can generate: 500,1000 and 2000Hz
269   //but it is clear (for an audio guy at least) that the resulting spectrum
270   //is not a pure square wav. In fact, the counter is reset on vertical sync!
271   //http://twitter.com/plgDavid/status/527269086016077825
272   //...thus creating a buzzing sound.
273
274   //Dumping the audio pin value each time
275   // either (PHI2 made a 0->1 transition (1.789MHz)
276   //     or (PHI1 made a 1->1 transition (1.789MHz)
277   //I found that the granularity of audio transitions
278   //(including phase resets and silences) was 228 clocks
279   //The audio subsystem thus runs at 1.789MHz/228 = 7849.88Hz
280   
281   //when 1
282   //normal period:912 clocks (228*4)
283   //hi for 456 clocks
284   //lo for 456 clocks
285   //reset period: (each frame)
286   //hi for 228 clocks
287   //lo for 456 clocks
288   //when 2
289   //normal period lasts 1824 clocks (228*8)
290   //hi for 912 clocks
291   //lo for 912 clocks
292   //reset period: (each frame)
293   //hi for 912   (228*4)
294   //lo for 1596  (228*7)
295   //hi for 912   (228*4)
296   //when 4
297   //normal period lasts 3648 clocks (228*16)
298   //hi for 1824(228*8)
299   //lo for 1824(228*8)   
300   //Reset period:
301   //lo for 1824(228*8)
302   //hi for 2508(228*11)
303   //lo for 1824(228*8)
304   //hi for 1824(228*8)
305   
306   if(!m_ram) return;
307
308   UINT8 audioByte = m_ram[GIC_AUDIO_BYTE]*2;
309   
310   if(!audioByte){
311      for(size_t i = 0; i < samples; i++)
312         *buffer++ = 0;   
313
314         m_audioval   = 0;
315      m_audiocnt   = 0;     
316        m_audioreset = 0;
317      return;//early   
318   }
319   
320    //forced resynch @ 59.95Hz
321    if(m_audioreset){
322         m_audioval   = 0;//forced low
323      m_audiocnt   = 0;     
324        m_audioreset = 0;
325    }
326
327   for(size_t i=0; i < samples; i++){
328        m_audiocnt++;
329      if(m_audiocnt >= audioByte){
330         m_audioval = !m_audioval;
331         m_audiocnt=0;
332      }
333      *buffer++ = m_audioval<<13;
334    }
335}
trunk/src/mame/video/gic.h
r0r249894
1// license:BSD-3-Clause
2// copyright-holders:David Viens
3/***************************************************************************
4
5    gic.h
6
7   GI AY-3-8800-1 (Datasheet exists as AY-3-8500-1 Graphics Interface Chip)
8   For the GIMINI "Challenger" programmable game system.
9   
10   Really only ever used in the Unisonic Champion 2711
11
12***************************************************************************/
13
14#pragma once
15
16#ifndef __GIC_H__
17#define __GIC_H__
18
19#include "emu.h"
20
21
22/***************************************************************************
23    DEVICE CONFIGURATION MACROS
24***************************************************************************/
25
26#define MCFG_GIC_ADD(_tag, _clock, _screen_tag) \
27   MCFG_DEVICE_ADD(_tag, GIC, _clock) \
28   MCFG_VIDEO_SET_SCREEN(_screen_tag)
29
30/***************************************************************************
31    TYPE DEFINITIONS
32***************************************************************************/
33
34// ======================> gic_device
35
36//Palette entries
37#define GIC_BLACK 0
38#define GIC_RED   1
39#define GIC_GREEN 2
40#define GIC_WHITE 3
41
42#define GIC_CHAR_W 6
43#define GIC_CHAR_H 8
44
45#define GIC_LEFT_H 12
46#define GIC_LEFT_W 6
47
48#define GIC_RIGHT_H 6
49#define GIC_RIGHT_W 13
50
51class gic_device :  public device_t
52              , public device_sound_interface
53              , public device_video_interface
54{
55public:
56   // construction/destruction
57   gic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
58   gic_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, int lines, const char *shortname, const char *source);
59
60   // static configuration helpers
61   static void set_screen_tag(device_t &device, const char *screen_tag) { downcast<gic_device &>(device).m_screen_tag = screen_tag; }
62
63   DECLARE_PALETTE_INIT(gic);
64
65   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
66
67   inline bitmap_ind16 *get_bitmap() { return &m_bitmap; }
68
69   //plgDavid please change this to a MESS friendly handshake
70   void set_shared_memory(const UINT8*m){ m_ram = m;};
71   
72   // Global constants (non mesured figures)
73   static const int START_ACTIVE_SCAN = 10;
74   static const int BORDER_SIZE       = GIC_CHAR_W*3;
75   static const int END_ACTIVE_SCAN   = 10 + GIC_CHAR_W*2 + 150 + GIC_CHAR_W*2;
76   static const int START_Y           = 1;
77   static const int SCREEN_HEIGHT     = GIC_CHAR_H*(GIC_LEFT_H+2);
78   static const int LINE_CLOCKS       = 455;
79   static const int LINES             = 262;
80
81protected:
82   // device-level overrides
83   virtual void device_start();
84   virtual void device_reset();
85   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
86
87   // optional information overrides
88   virtual const rom_entry *device_rom_region() const;
89   
90   // device_sound_interface overrides
91   virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
92
93   /* timers */
94   static const device_timer_id TIMER_VBLANK = 0;
95
96   void draw_char_left (int x, int y, UINT8 code, bitmap_ind16 &bitmap);
97   void draw_char_right(int x, int y, UINT8 code, bitmap_ind16 &bitmap,int bg_col);
98   
99   bitmap_ind16 m_bitmap;
100   UINT8 *      m_cgrom;          // internal chargen ROM
101   
102   emu_timer    *m_vblank_timer;
103   sound_stream *m_stream;
104   
105   int m_audiocnt;
106   int m_audioval;   
107   int m_audioreset;   
108   const UINT8* m_ram;
109};
110
111// device type definition
112extern const device_type GIC;
113
114#endif  /* __GIC_H__ */
trunk/src/mame/video/timeplt.c
r249893r249894
125125void timeplt_state::video_start()
126126{
127127   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(timeplt_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
128   m_video_enable = 0;
129   
130   save_item(NAME(m_video_enable));
128131}
129132
133VIDEO_START_MEMBER(timeplt_state,psurge)
134{
135   video_start();
136   m_video_enable = 1; //psurge doesn't seem to have the video enable
137}
138
130139VIDEO_START_MEMBER(timeplt_state,chkun)
131140{
132141   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(timeplt_state::get_chkun_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
r249893r249894
140149 *
141150 *************************************/
142151
143WRITE8_MEMBER(timeplt_state::timeplt_videoram_w)
152WRITE8_MEMBER(timeplt_state::videoram_w)
144153{
145154   m_videoram[offset] = data;
146155   m_bg_tilemap->mark_tile_dirty(offset);
147156}
148157
149158
150WRITE8_MEMBER(timeplt_state::timeplt_colorram_w)
159WRITE8_MEMBER(timeplt_state::colorram_w)
151160{
152161   m_colorram[offset] = data;
153162   m_bg_tilemap->mark_tile_dirty(offset);
154163}
155164
156165
157WRITE8_MEMBER(timeplt_state::timeplt_flipscreen_w)
166WRITE8_MEMBER(timeplt_state::flipscreen_w)
158167{
159168   flip_screen_set(~data & 1);
160169}
161170
171WRITE8_MEMBER(timeplt_state::video_enable_w)
172{
173   m_video_enable = data & 1;
174}
162175
163READ8_MEMBER(timeplt_state::timeplt_scanline_r)
176READ8_MEMBER(timeplt_state::scanline_r)
164177{
165178   return m_screen->vpos();
166179}
r249893r249894
175188
176189void timeplt_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
177190{
178   UINT8 *spriteram = m_spriteram;
179   UINT8 *spriteram_2 = m_spriteram2;
180   int offs;
181
182   for (offs = 0x3e;offs >= 0x10;offs -= 2)
191   for (int offs = 0x3e;offs >= 0x10;offs -= 2)
183192   {
184      int sx = spriteram[offs];
185      int sy = 241 - spriteram_2[offs + 1];
193      int sx = m_spriteram[offs];
194      int sy = 241 - m_spriteram2[offs + 1];
186195
187      int code = spriteram[offs + 1];
188      int color = spriteram_2[offs] & 0x3f;
189      int flipx = ~spriteram_2[offs] & 0x40;
190      int flipy = spriteram_2[offs] & 0x80;
196      int code = m_spriteram[offs + 1];
197      int color = m_spriteram2[offs] & 0x3f;
198      int flipx = ~m_spriteram2[offs] & 0x40;
199      int flipy = m_spriteram2[offs] & 0x80;
191200
192201      m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
193202            code,
r249893r249894
205214 *
206215 *************************************/
207216
208UINT32 timeplt_state::screen_update_timeplt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
217UINT32 timeplt_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
209218{
210   m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
211   draw_sprites(bitmap, cliprect);
212   m_bg_tilemap->draw(screen, bitmap, cliprect, 1, 0);
219   if (m_video_enable)
220   {
221      m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
222      draw_sprites(bitmap, cliprect);
223      m_bg_tilemap->draw(screen, bitmap, cliprect, 1, 0);
224   }
213225   return 0;
214226}
trunk/src/osd/modules/debugger/osx/debugview.m
r249893r249894
404404   [text addAttribute:NSFontAttributeName value:font range:run];
405405   NSPasteboard *const board = [NSPasteboard generalPasteboard];
406406   [board declareTypes:[NSArray arrayWithObject:NSRTFPboardType] owner:nil];
407   [board setData:[text RTFFromRange:run documentAttributes:@{}] forType:NSRTFPboardType];
407   [board setData:[text RTFFromRange:run documentAttributes:[NSDictionary dictionary]] forType:NSRTFPboardType];
408408   [text deleteCharactersInRange:run];
409409}
410410
trunk/src/osd/osdnet.c
r249893r249894
4949osd_netdev::~osd_netdev()
5050{
5151   m_stop = true;
52   m_timer->reset();
52// nasty hack to prevent Segmentation fault on emulation stop
53//   m_timer->reset();
5354}
5455
5556int osd_netdev::send(UINT8 *buf, int len)
trunk/src/osd/windows/input.c
r249893r249894
18261826{
18271827   device_info *devinfo = NULL;
18281828   TCHAR *tname = NULL;
1829   INT name_length;
1829   INT name_length = 0;
18301830
1831   // determine the length of the device name, allocate it, and fetch it
1831   // determine the length of the device name, allocate it, and fetch it if not nameless
18321832   if ((*get_rawinput_device_info)(device->hDevice, RIDI_DEVICENAME, NULL, &name_length) != 0)
18331833      goto error;
1834   tname = global_alloc_array(TCHAR, name_length);
1835   if ((*get_rawinput_device_info)(device->hDevice, RIDI_DEVICENAME, tname, &name_length) == -1)
1834   tname = global_alloc_array_clear(TCHAR, name_length+1);
1835   if (name_length > 1 && (*get_rawinput_device_info)(device->hDevice, RIDI_DEVICENAME, tname, &name_length) == -1)
18361836      goto error;
18371837
18381838   // if this is an RDP name, skip it


Previous 199869 Revisions Next


© 1997-2024 The MAME Team