diff --git a/hash/hp9845b_rom.xml b/hash/hp9845b_rom.xml
index 9f419f6dfd0..371a50b2eb4 100644
--- a/hash/hp9845b_rom.xml
+++ b/hash/hp9845b_rom.xml
@@ -10,7 +10,7 @@
-
+
@@ -25,7 +25,7 @@
-
+
@@ -40,7 +40,7 @@
-
+
@@ -56,7 +56,7 @@
-
+
@@ -71,8 +71,8 @@
-
-
+
+
@@ -87,7 +87,7 @@
-
+
@@ -102,7 +102,7 @@
-
+
@@ -117,7 +117,7 @@
-
+
@@ -132,7 +132,7 @@
-
+
@@ -146,7 +146,7 @@
-
+
@@ -161,7 +161,7 @@
-
+
@@ -171,7 +171,7 @@
-
+
IMAGE/45 Database Manager (Rev B)
198?
@@ -192,7 +192,7 @@
-
+
IMAGE/45 Database Manager (Rev C)
198?
@@ -220,14 +220,14 @@
-
+
-
+
Resource Management
198?
@@ -253,7 +253,7 @@
-
+
@@ -268,7 +268,7 @@
-
+
@@ -285,7 +285,7 @@
-
+
@@ -300,7 +300,7 @@
-
+
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
-
+
diff --git a/hash/lynx.xml b/hash/lynx.xml
index 8b651b8809e..b4681d3b77a 100644
--- a/hash/lynx.xml
+++ b/hash/lynx.xml
@@ -1075,26 +1075,26 @@ Known undumped prototypes:
-
- Zaku
- 2009
- Super Fighter Team / Penguinet
-
-
-
-
-
-
+
+ Zaku
+ 2009
+ Super Fighter Team / Penguinet
+
+
+
+
+
+
+
+
+ Zaku (Demo)
+ 2009
+ Penguinet
+
+
+
+
+
+
-
- Zaku (Demo)
- 2009
- Penguinet
-
-
-
-
-
-
-
diff --git a/hash/megadriv.xml b/hash/megadriv.xml
index a8ba96d6a9d..bb01af7931f 100644
--- a/hash/megadriv.xml
+++ b/hash/megadriv.xml
@@ -14948,7 +14948,7 @@ but dumps still have to be confirmed.
-
+
F1 Circus MD (Jpn)
diff --git a/hash/neogeo.xml b/hash/neogeo.xml
index c00e77c3476..e56f2e5e56b 100644
--- a/hash/neogeo.xml
+++ b/hash/neogeo.xml
@@ -38,43 +38,43 @@
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -97,43 +97,43 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -147,43 +147,43 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -205,51 +205,51 @@
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -271,39 +271,39 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -325,39 +325,39 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -371,39 +371,39 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -425,46 +425,46 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -478,46 +478,46 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -542,33 +542,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -599,7 +599,7 @@
-
+
@@ -634,41 +634,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -682,41 +682,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -733,48 +733,48 @@
1990
SNK
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -796,37 +796,37 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -858,31 +858,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -910,33 +910,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -950,33 +950,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -998,33 +998,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1038,33 +1038,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1090,31 +1090,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1128,31 +1128,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1183,7 +1183,7 @@
-
+
@@ -1213,35 +1213,35 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1263,37 +1263,37 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1307,37 +1307,37 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1359,29 +1359,29 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1403,31 +1403,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1449,25 +1449,25 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1477,10 +1477,10 @@
1991
SNK
-
+
-
+
@@ -1519,31 +1519,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1573,7 +1573,7 @@
-
+
@@ -1603,31 +1603,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1654,33 +1654,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1706,29 +1706,29 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1753,27 +1753,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1787,32 +1787,32 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1826,31 +1826,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1872,31 +1872,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1910,31 +1910,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1956,31 +1956,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2003,35 +2003,35 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2053,31 +2053,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2104,31 +2104,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2150,29 +2150,29 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2194,37 +2194,37 @@
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2246,35 +2246,35 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2297,7 +2297,7 @@
-
+
@@ -2306,9 +2306,9 @@
-
+
-
+
@@ -2340,7 +2340,7 @@
-
+
@@ -2376,33 +2376,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2424,31 +2424,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2470,35 +2470,35 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2521,34 +2521,34 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2571,37 +2571,37 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2615,37 +2615,37 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2667,45 +2667,45 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2719,45 +2719,45 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2780,35 +2780,35 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2829,25 +2829,25 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2869,27 +2869,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2910,31 +2910,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2955,29 +2955,29 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3000,26 +3000,26 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3042,36 +3042,36 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3085,35 +3085,35 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3128,33 +3128,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3181,42 +3181,42 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3238,42 +3238,42 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3287,45 +3287,45 @@
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3347,36 +3347,36 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3398,39 +3398,39 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3444,43 +3444,43 @@
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3501,42 +3501,42 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3552,36 +3552,36 @@
1994
Viccom
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3591,39 +3591,39 @@
1994
Viccom
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3645,32 +3645,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3691,39 +3691,39 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3745,44 +3745,44 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3792,53 +3792,53 @@
1994
SNK
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3860,40 +3860,40 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3914,35 +3914,35 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3963,33 +3963,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4005,30 +4005,30 @@
1994
Face
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4044,42 +4044,42 @@
1994
Video System Co.
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4101,39 +4101,39 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4149,34 +4149,34 @@
2001
SNK
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
@@ -4211,32 +4211,32 @@
1994
Eighting / Hudson
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4258,40 +4258,40 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4312,32 +4312,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4353,38 +4353,38 @@
1994
NMK
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4410,42 +4410,42 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4467,32 +4467,32 @@
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
@@ -4514,33 +4514,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4550,12 +4550,12 @@
1995
Saurus
-
+
-
-
-
+
+
+
@@ -4567,7 +4567,7 @@
-
+
@@ -4597,38 +4597,38 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4651,40 +4651,40 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4700,52 +4700,52 @@
1994
Taito
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
@@ -4768,44 +4768,44 @@
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
@@ -4817,47 +4817,47 @@
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
@@ -4878,36 +4878,36 @@
1996
Tecmo
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4929,48 +4929,48 @@
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4984,41 +4984,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5028,46 +5028,46 @@
1995
SNK
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5088,30 +5088,30 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5132,41 +5132,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5187,44 +5187,44 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
@@ -5250,36 +5250,36 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5295,36 +5295,36 @@
1997
Hudson
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5345,42 +5345,42 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5433,43 +5433,43 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5481,51 +5481,51 @@
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5546,43 +5546,43 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5592,48 +5592,48 @@
1996
SNK
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5654,32 +5654,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5728,32 +5728,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5774,32 +5774,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5815,30 +5815,30 @@
1995
Taito (Visco license)
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5859,25 +5859,25 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5908,31 +5908,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5948,30 +5948,30 @@
1996
Visco
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5987,35 +5987,35 @@
1996
Technos Japan
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6031,35 +6031,35 @@
1995
Visco
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6090,34 +6090,34 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6133,33 +6133,33 @@
1996
Visco
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6180,43 +6180,43 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6231,41 +6231,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6286,36 +6286,36 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6336,46 +6336,46 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
@@ -6396,41 +6396,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6451,40 +6451,40 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6500,35 +6500,35 @@
1996
Saurus
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6545,7 +6545,7 @@
-
+
@@ -6575,7 +6575,7 @@
-
+
@@ -6614,25 +6614,25 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6654,43 +6654,43 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6700,47 +6700,47 @@
1996
SNK
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6761,43 +6761,43 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6807,49 +6807,49 @@
1996
SNK
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6870,32 +6870,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6916,37 +6916,37 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6972,32 +6972,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7014,7 +7014,7 @@
-
+
@@ -7059,32 +7059,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7100,34 +7100,34 @@
1997
Face
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7149,39 +7149,39 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7195,39 +7195,39 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7237,44 +7237,44 @@
1997
SNK
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7295,31 +7295,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7341,41 +7341,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7389,41 +7389,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7433,47 +7433,47 @@
1997
SNK
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7489,7 +7489,7 @@
1997
Taito (Visco license)
-
+
@@ -7500,17 +7500,17 @@
-
+
-
+
-
+
-
+
@@ -7534,30 +7534,30 @@
1997
Video System Co.
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7573,45 +7573,45 @@
1997
Saurus
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7621,46 +7621,46 @@
1997
Saurus
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7681,41 +7681,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7737,41 +7737,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7785,41 +7785,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7829,47 +7829,47 @@
1998
SNK
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7891,33 +7891,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7938,49 +7938,49 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7990,54 +7990,54 @@
1998
SNK
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8047,54 +8047,54 @@
1998
SNK
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8108,45 +8108,45 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8166,44 +8166,44 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8224,28 +8224,28 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8261,42 +8261,42 @@
1998
Visco
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8317,39 +8317,39 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8365,30 +8365,30 @@
1999
Visco
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8404,36 +8404,36 @@
1999
Taito (SNK license)
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8478,33 +8478,33 @@
1999
Visco
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8527,39 +8527,39 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8582,52 +8582,52 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8639,52 +8639,52 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8696,53 +8696,53 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8752,52 +8752,52 @@
1999
SNK
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8809,32 +8809,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8858,17 +8858,17 @@
1999
Visco
-
+
-
+
-
+
@@ -8878,7 +8878,7 @@
-
+
@@ -8900,57 +8900,57 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8962,53 +8962,53 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9020,7 +9020,7 @@
-
+
@@ -9061,17 +9061,17 @@
1999
Psikyo
-
+
-
+
-
+
@@ -9107,17 +9107,17 @@
1999
Yumekobo
-
+
-
+
-
+
@@ -9128,7 +9128,7 @@
-
+
@@ -9156,54 +9156,54 @@
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9215,49 +9215,49 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9280,52 +9280,52 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9337,50 +9337,50 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9401,17 +9401,17 @@
2000
Visco
-
+
-
+
-
+
@@ -9422,7 +9422,7 @@
-
+
@@ -9441,16 +9441,16 @@
2000
Eleven / Gavaking
-
+
-
+
-
+
@@ -9460,7 +9460,7 @@
-
+
@@ -9481,40 +9481,40 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9539,48 +9539,48 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9595,47 +9595,47 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9655,45 +9655,45 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9705,44 +9705,44 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9763,46 +9763,46 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9822,48 +9822,48 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9883,48 +9883,48 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9940,35 +9940,35 @@
2003
Aiky / Taito
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9987,48 +9987,48 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -10040,47 +10040,47 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -10100,48 +10100,48 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -10162,48 +10162,48 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -10215,48 +10215,48 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -10276,50 +10276,50 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -10331,51 +10331,51 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -10394,28 +10394,28 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -10435,29 +10435,29 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -10477,28 +10477,28 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -10634,29 +10634,29 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -10672,22 +10672,22 @@
-
+
-
+
-
+
-
+
-
+
@@ -10746,7 +10746,7 @@
-
+
@@ -10783,7 +10783,7 @@
-
+
@@ -10794,36 +10794,36 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -10843,10 +10843,10 @@
-
+
-
+
@@ -10870,7 +10870,7 @@
-
+
@@ -10882,19 +10882,19 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -10915,7 +10915,7 @@
-
+
@@ -10927,19 +10927,19 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -10960,7 +10960,7 @@
-
+
@@ -10968,24 +10968,24 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -11012,37 +11012,37 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -11059,23 +11059,23 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -11101,41 +11101,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -11151,41 +11151,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -11205,36 +11205,36 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -11254,36 +11254,36 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -11300,7 +11300,7 @@
-
+
@@ -11339,7 +11339,7 @@
-
+
@@ -11351,7 +11351,7 @@
-
+
@@ -11470,12 +11470,12 @@
-
+
-
+
-
+
@@ -11519,36 +11519,36 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -11572,7 +11572,7 @@
-
+
@@ -11800,30 +11800,30 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -11848,30 +11848,30 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -11897,30 +11897,30 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -11944,30 +11944,30 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -11982,7 +11982,7 @@
-
+
@@ -12001,67 +12001,67 @@
-
-
-
-
- Last Hope
- 2005
- NG:DEV.TEAM
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
- Treasures of The Caribbean
- 2010
- Face / NCI
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ Last Hope
+ 2005
+ NG:DEV.TEAM
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Treasures of The Caribbean
+ 2010
+ Face / NCI
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/hash/pce_tourvision.xml b/hash/pce_tourvision.xml
new file mode 100644
index 00000000000..e15571003e7
--- /dev/null
+++ b/hash/pce_tourvision.xml
@@ -0,0 +1,1008 @@
+
+
+
+
+
+ Dragon Saber - After Story of Dragon Spirit (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Namcot
+
+
+
+
+
+
+
+
+
+ Bull Fight - Ring no Haja (Tourvision PCE bootleg)
+ 1989
+ bootleg (Tourvision) / Cream
+
+
+
+
+
+
+
+
+
+
+ 1943 Kai (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Capcom / Naxat Soft
+
+
+
+
+
+
+
+
+
+
+ Aero Blasters (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Inter State / Kaneko / Hudson Soft
+
+
+
+
+
+
+
+
+
+
+
+ After Burner (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Sega / Nec Avenue
+
+
+
+
+
+
+
+
+
+
+
+ Armed-F (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Nichibutsu / Big Don
+
+
+
+
+
+
+
+
+
+
+
+ Ballistix (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Psygnosis / Coconuts Japan
+
+
+
+
+
+
+
+
+
+
+
+ Be Ball (alt) (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Hudson Soft
+
+
+
+
+
+
+
+
+
+
+
+ Bomberman (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Hudson Soft
+
+
+
+
+
+
+
+
+
+
+
+ Chouzetsu Rinjin - Bravoman (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Namco / Namcot
+
+
+
+
+
+
+
+
+
+
+
+ Chuka Taisen (Tourvision PCE bootleg)
+ 1992
+ bootleg (Tourvision) / Taito Corporation
+
+
+
+
+
+
+
+
+
+
+
+ Columns (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Telenet Japan
+
+
+
+
+
+
+
+
+
+
+
+ Coryoon - Child of Dragon (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Naxat Soft
+
+
+
+
+
+
+
+
+
+
+
+ Daisenpu (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Toaplan / Nec Avenue
+
+
+
+
+
+
+
+
+
+
+
+ Dead Moon (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / T.S.S
+
+
+
+
+
+
+
+
+
+
+
+ Devil Crash (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Naxat / Red
+
+
+
+
+
+
+
+
+
+
+
+ Dodge Ball (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Technos Japan Corp / Naxat Soft
+
+
+
+
+
+
+
+
+
+
+
+ Doraemon Meikyuu Dai Sakusen (Tourvision PCE bootleg)
+ 1989
+ bootleg (Tourvision) / Fujiko-Shogakukan-TV Asahi / Hudson Soft
+
+
+
+
+
+
+
+
+
+
+
+ Dragon Spirit (Tourvision PCE bootleg)
+ 1988
+ bootleg (Tourvision) / Namcot
+
+
+
+
+
+
+
+
+
+
+
+
+ Dungeon Explorer (Tourvision PCE bootleg)
+ 1989
+ bootleg (Tourvision) / Atlus Ltd. / Hudson Soft
+
+
+
+
+
+
+
+
+
+
+
+ Final Blaster (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Namco / Namcot
+
+
+
+
+
+
+
+
+
+
+
+ Final Lap Twin (Tourvision PCE bootleg)
+ 1989
+ bootleg (Tourvision) / Namco Ltd. / Namcot
+
+
+
+
+
+
+
+
+
+
+
+ Final Match Tennis (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Human
+
+
+
+
+
+
+
+
+
+
+
+ Formation Soccer - Human Cup '90 (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Human
+
+
+
+
+
+
+
+
+
+
+
+ Gomola Speed (alt) (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Human
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GunHed (Tourvision PCE bootleg)
+ 1989
+ bootleg (Tourvision) / Hudson / Toho Sunrise
+
+
+
+
+
+
+
+
+
+
+
+ Hana Taaka Daka!? (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Taito Corporation
+
+
+
+
+
+
+
+
+
+
+
+ Jackie Chan (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Hudson Soft
+
+
+
+
+
+
+
+
+
+
+
+ Jinmu Denshou (Tourvision PCE bootleg)
+ 1989
+ bootleg (Tourvision) / Big Club / Wolf Team
+
+
+
+
+
+
+
+
+
+
+
+ Kiki Kaikai (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Taito
+
+
+
+
+
+
+
+
+
+
+
+ Legend of Hero Tonma (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / IREM Corp
+
+
+
+
+
+
+
+
+
+
+
+
+ Makyou Densetsu - The Legenary Axe (Tourvision PCE bootleg)
+ 1988
+ bootleg (Tourvision) / Victor Musical Industries, Inc.
+
+
+
+
+
+
+
+
+
+
+
+ Mizubaku Daibouken Liquid Kids (Tourvision PCE bootleg)
+ 1992
+ bootleg (Tourvision) / Taito Corporation
+
+
+
+
+
+
+
+
+
+
+
+ Mr. Heli no Daibouken (Tourvision PCE bootleg)
+ 1989
+ bootleg (Tourvision) / IREM Corp
+
+
+
+
+
+
+
+
+
+
+
+ Ninja Ryukenden (Tourvision PCE bootleg)
+ 1992
+ bootleg (Tourvision) / Temco / Hudson Soft
+
+
+
+
+
+
+
+
+
+
+
+ Operation Wolf (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Taito / Nec Avenue
+
+
+
+
+
+
+
+
+
+
+
+ Override (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Sting / Data East Corporation
+
+
+
+
+
+
+
+
+
+
+
+ Pac-Land (Tourvision PCE bootleg)
+ 1989
+ bootleg (Tourvision) / Namco / Namcot
+
+
+
+
+
+
+
+
+
+
+
+ PC Denjin Punkic Cyborg (Tourvision PCE bootleg)
+ 1992
+ bootleg (Tourvision) / Hudson Soft / Red
+
+
+
+
+
+
+
+
+
+
+
+ PC Genjin 2 - Pithecanthropus Computerurus (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Hudson Soft / Red
+
+
+
+
+
+
+
+
+
+
+
+ Power Eleven (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Hudson Soft
+
+
+
+
+
+
+
+
+
+
+
+ Power Drift (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Sega / Asmik Corporation
+
+
+
+
+
+
+
+
+
+
+
+ Power League IV (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Hudson Soft
+
+
+
+
+
+
+
+
+
+
+
+ Pro Yakyuu World Stadium '91 (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Namco / Namcot
+
+
+
+
+
+
+
+
+
+
+
+ Psycho Chaser (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Naxat Soft
+
+
+
+
+
+
+
+
+
+
+
+ Puzzle Boy (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Atlus / Telenet Japan
+
+
+
+
+
+
+
+
+
+
+
+ Raiden (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Seibu Kaihatsu inc / Hudson Soft
+
+
+
+
+
+
+
+
+
+
+
+ Rastan Saga II (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Taito Corporation
+
+
+
+
+
+
+
+
+
+
+
+ R-Type II (hack, no copyright string) (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / IREM Corp
+
+
+
+
+
+
+
+
+
+
+
+ Saigo no Nindou - Ninja Spirit (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / IREM Corp
+
+
+
+
+
+
+
+
+
+
+
+ Salamander (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Konami
+
+
+
+
+
+
+
+
+
+
+
+ Shinobi (Tourvision PCE bootleg)
+ 1989
+ bootleg (Tourvision) / Sega / Asmik Corporation
+
+
+
+
+
+
+
+
+
+
+
+ Side Arms (Tourvision PCE bootleg)
+ 1989
+ bootleg (Tourvision) / Capcom / Nec Avenue
+
+
+
+
+
+
+
+
+
+
+
+ Skweek (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Victor Musical Industries, Inc.
+
+
+
+
+
+
+
+
+
+
+
+ Son Son II (Tourvision PCE bootleg)
+ 1989
+ bootleg (Tourvision) / Capcom / Nec Avenue
+
+
+
+
+
+
+
+
+
+
+
+ Special Criminal Investigation (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Taito Corporation
+
+
+
+
+
+
+
+
+
+
+
+ Super Star Soldier (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Inter State / Kaneko / Hudson Soft
+
+
+
+
+
+
+
+
+
+
+
+ Super Volley ball (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Video System
+
+
+
+
+
+
+
+
+
+
+
+ Tatsujin (Tourvision PCE bootleg)
+ 1992
+ bootleg (Tourvision) / Toaplan Co Ltd / Taito Corporation
+
+
+
+
+
+
+
+
+
+
+
+ Terra Cresta II (Tourvision PCE bootleg)
+ 1992
+ bootleg (Tourvision) / Nichibutsu / Nihon Bussan Co., Ltd
+
+
+
+
+
+
+
+
+
+
+
+ Thunder Blade (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Sega / NEC Avenue
+
+
+
+
+
+
+
+
+
+
+
+ Toy Shop Boys (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Victor Musical Industries, Inc.
+
+
+
+
+
+
+
+
+
+
+
+ USA Pro Basketball (Tourvision PCE bootleg)
+ 1989
+ bootleg (Tourvision) / Aicom Corporation
+
+
+
+
+
+
+
+
+
+
+
+ Veigues - Tactical Gladiator (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Victor Musical Industries, Inc.
+
+
+
+
+
+
+
+
+
+
+
+ Volfied (Tourvision PCE bootleg)
+ 1989
+ bootleg (Tourvision) / Taito Corporation
+
+
+
+
+
+
+
+
+
+
+
+ Winning Shot (Tourvision PCE bootleg)
+ 1989
+ bootleg (Tourvision) / Data East Corp.
+
+
+
+
+
+
+
+
+
+
+
+ W-Ring - The Double Rings (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Naxat Soft
+
+
+
+
+
+
+
+
+
+
+ Xevious (Tourvision PCE bootleg)
+ 1990
+ bootleg (Tourvision) / Namco Ltd. / Namcot
+
+
+
+
+
+
+
+
+
+
+ Parasol Stars - The Story of Bubble Bobble III (Tourvision PCE bootleg)
+ 1991
+ bootleg (Tourvision) / Taito
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/hash/pockchalv1.xml b/hash/pockchalv1.xml
index 434f08bc1d5..479fc6fb505 100644
--- a/hash/pockchalv1.xml
+++ b/hash/pockchalv1.xml
@@ -7,16 +7,16 @@
-
- Chuugaku Koumin (1K - 0BE311)
- 2000?
- Benesse Corporation
-
-
-
-
-
-
+
+ Chuugaku Koumin (1K - 0BE311)
+ 2000?
+ Benesse Corporation
+
+
+
+
+
+
diff --git a/src/devices/bus/a2bus/pc_xporter.cpp b/src/devices/bus/a2bus/pc_xporter.cpp
index 140f3e99a16..bc05557cfc8 100644
--- a/src/devices/bus/a2bus/pc_xporter.cpp
+++ b/src/devices/bus/a2bus/pc_xporter.cpp
@@ -35,11 +35,11 @@
then read Cn00 to map C800-CFFF first.
PC RAM from 0xA0000-0xAFFFF is where the V30 BIOS is downloaded,
- plus used for general storage by the system. This is mirrored at
+ plus used for general storage by the system. This is mirrored at
Fxxxx on the V30 so that it can boot.
RAM from 0xB0000-0xBFFFF is the CGA framebuffer as usual.
- C800-CBFF?: RAM, used as scratchpad space by the software
+ C800-CBFF?: RAM, used as scratchpad space by the software
CF00: PC memory pointer (bits 0-7)
CF01: PC memory pointer (bits 8-15)
CF02: PC memory pointer (bits 16-23)
@@ -53,11 +53,11 @@
CF31: control/flags: bit 4 = 1 to assert reset on V30, 5 = 1 to assert halt on V30
TODO:
- - Code at $70b0-$70c5 waits for the V30 to answer FPU presence.
+ - Code at $70b0-$70c5 waits for the V30 to answer FPU presence.
- What's going on at CF0E/CF0F?
- - The manual indicates there is no ROM; special drivers installed into ProDOS 8
- provide the RAMdisk and A2-accessing-PC-drives functionality.
-
+ - The manual indicates there is no ROM; special drivers installed into ProDOS 8
+ provide the RAMdisk and A2-accessing-PC-drives functionality.
+
*********************************************************************/
#include "pc_xporter.h"
@@ -87,7 +87,7 @@ static ADDRESS_MAP_START(pc_io, AS_IO, 16, a2bus_pcxporter_device )
ADDRESS_MAP_END
MACHINE_CONFIG_FRAGMENT( pcxporter )
- MCFG_CPU_ADD("v30", V30, XTAL_14_31818MHz/2) // 7.16 MHz as per manual
+ MCFG_CPU_ADD("v30", V30, XTAL_14_31818MHz/2) // 7.16 MHz as per manual
MCFG_CPU_PROGRAM_MAP(pc_map)
MCFG_CPU_IO_MAP(pc_io)
MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
@@ -141,7 +141,7 @@ MACHINE_CONFIG_FRAGMENT( pcxporter )
MCFG_PC_KBDC_OUT_CLOCK_CB(WRITELINE(a2bus_pcxporter_device, keyboard_clock_w))
MCFG_PC_KBDC_OUT_DATA_CB(WRITELINE(a2bus_pcxporter_device, keyboard_data_w))
MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_xt_keyboards, STR_KBD_KEYTRONIC_PC3270)
-
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
@@ -214,10 +214,10 @@ void a2bus_pcxporter_device::device_start()
save_item(NAME(m_ram));
save_item(NAME(m_regs));
save_item(NAME(m_offset));
-
+
m_v30->space(AS_PROGRAM).install_ram(0, 0xaffff, m_ram);
m_v30->space(AS_PROGRAM).install_rom(0xf0000, 0xfffff, &m_ram[0xa0000]);
-
+
m_pcmem_space = &m_v30->space(AS_PROGRAM);
m_pcio_space = &m_v30->space(AS_IO);
}
@@ -313,11 +313,11 @@ UINT8 a2bus_pcxporter_device::read_c800(address_space &space, UINT16 offset)
case 0x704: // read w/o increment
rv = m_ram[m_offset];
- return rv;
-
+ return rv;
+
default:
//printf("Read $C800 at %x\n", offset + 0xc800);
- break;
+ break;
}
return m_regs[offset];
@@ -371,13 +371,13 @@ void a2bus_pcxporter_device::write_c800(address_space &space, UINT16 offset, UIN
else if (m_offset >= 0xb8000 && m_offset <= 0xbbfff) m_pcmem_space->write_byte(m_offset, data);
else if (m_offset >= 0xbc000 && m_offset <= 0xbffff) m_pcmem_space->write_byte(m_offset-0x4000, data);
break;
-
- case 0x72c: // CGA 6845 register select
+
+ case 0x72c: // CGA 6845 register select
m_pcio_space->write_byte(0x3d6, data);
m_6845_reg = data;
break;
-
- case 0x72d: // CGA 6845 data read/write
+
+ case 0x72d: // CGA 6845 data read/write
// HACK: adjust the 40 column mode the 6502 sets to
// be more within specs.
switch (m_6845_reg)
@@ -406,37 +406,37 @@ void a2bus_pcxporter_device::write_c800(address_space &space, UINT16 offset, UIN
m_pcio_space->write_byte(0x3d7, data);
break;
-
- case 0x72e: // CGA mode select
+
+ case 0x72e: // CGA mode select
m_pcio_space->write_byte(0x3d8, data);
break;
case 0x72f: // CGA color select
m_pcio_space->write_byte(0x3d9, data);
break;
-
- case 0x730: // control 1
+
+ case 0x730: // control 1
if (data & 0x10) { m_v30->set_input_line(INPUT_LINE_RESET, CLEAR_LINE); m_reset_during_halt = true; }
if (data & 0x20)
- {
+ {
if (m_reset_during_halt)
{
m_v30->reset();
m_reset_during_halt = false;
}
-
+
m_v30->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
m_v30->resume(SUSPEND_REASON_HALT | SUSPEND_REASON_DISABLE);
}
break;
-
- case 0x731: // control 2
+
+ case 0x731: // control 2
if (data & 0x10) m_v30->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
if (data & 0x20) m_v30->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
break;
-
+
default:
-// printf("%02x to C800 at %x\n", data, offset + 0xc800);
+// printf("%02x to C800 at %x\n", data, offset + 0xc800);
m_regs[offset] = data;
break;
}
@@ -703,7 +703,7 @@ READ8_MEMBER (a2bus_pcxporter_device::pc_ppi_porta_r)
{
data = m_ppi_shift_register;
}
-// PIO_LOG(1,"PIO_A_r",("$%02x\n", data));
+// PIO_LOG(1,"PIO_A_r",("$%02x\n", data));
return data;
}
@@ -719,13 +719,13 @@ READ8_MEMBER ( a2bus_pcxporter_device::pc_ppi_portc_r )
{
/* read hi nibble of S2 */
data = (data & 0xf0) | ((0x3) & 0x0f);
-// PIO_LOG(1,"PIO_C_r (hi)",("$%02x\n", data));
+// PIO_LOG(1,"PIO_C_r (hi)",("$%02x\n", data));
}
else
{
/* read lo nibble of S2 */
data = (data & 0xf0) | (0x0 & 0x0f);
-// PIO_LOG(1,"PIO_C_r (lo)",("$%02x\n", data));
+// PIO_LOG(1,"PIO_C_r (lo)",("$%02x\n", data));
}
if ( m_ppi_portb & 0x01 )
@@ -773,6 +773,3 @@ WRITE8_MEMBER( a2bus_pcxporter_device::nmi_enable_w )
m_nmi_enabled = BIT(data,7);
m_isabus->set_nmi_state(m_nmi_enabled);
}
-
-
-
diff --git a/src/devices/bus/a2bus/pc_xporter.h b/src/devices/bus/a2bus/pc_xporter.h
index e7a347fd8b3..6c9267a8102 100644
--- a/src/devices/bus/a2bus/pc_xporter.h
+++ b/src/devices/bus/a2bus/pc_xporter.h
@@ -50,7 +50,7 @@ public:
required_device m_speaker;
required_device m_isabus;
optional_device m_pc_kbdc;
-
+
// overrides of standard a2bus slot functions
virtual UINT8 read_c0nx(address_space &space, UINT8 offset) override;
virtual void write_c0nx(address_space &space, UINT8 offset, UINT8 data) override;
@@ -114,7 +114,7 @@ public:
protected:
virtual void device_start() override;
virtual void device_reset() override;
-
+
private:
UINT8 m_ram[768*1024];
UINT8 m_c800_ram[0x400];
diff --git a/src/devices/bus/generic/slot.cpp b/src/devices/bus/generic/slot.cpp
index 5ac81616206..0002520ce04 100644
--- a/src/devices/bus/generic/slot.cpp
+++ b/src/devices/bus/generic/slot.cpp
@@ -39,7 +39,7 @@ device_generic_cart_interface::device_generic_cart_interface(const machine_confi
: device_slot_card_interface(mconfig, device),
m_rom(nullptr),
m_rom_size(0),
- m_region(*this, DEVICE_SELF)
+ m_region(*this, DEVICE_SELF)
{
}
diff --git a/src/devices/bus/generic/slot.h b/src/devices/bus/generic/slot.h
index b071e49dde4..5cef5d21d92 100644
--- a/src/devices/bus/generic/slot.h
+++ b/src/devices/bus/generic/slot.h
@@ -28,8 +28,8 @@ public:
virtual void rom_alloc(size_t size, int width, endianness_t end, const char *tag);
virtual void ram_alloc(UINT32 size);
- UINT8* get_rom_base() { return m_rom; }
- UINT32 get_rom_size() { return m_rom_size; }
+ UINT8* get_rom_base() { return m_rom; }
+ UINT32 get_rom_size() { return m_rom_size; }
UINT8* get_region_base() { if (m_region.found()) return m_region->base(); return nullptr; }
UINT32 get_region_size() { if (m_region.found()) return m_region->bytes(); return 0; }
@@ -44,8 +44,8 @@ public:
UINT32 m_rom_size;
dynamic_buffer m_ram;
- // this replaces m_rom for non-user configurable carts!
- optional_memory_region m_region;
+ // this replaces m_rom for non-user configurable carts!
+ optional_memory_region m_region;
};
@@ -153,7 +153,7 @@ public:
}
return nullptr;
}
- UINT32 get_rom_size() {
+ UINT32 get_rom_size() {
if (m_cart)
{
if (!user_loadable())
@@ -199,7 +199,7 @@ extern const device_type GENERIC_SOCKET;
MCFG_GENERIC_INTERFACE(_dev_intf)
#define MCFG_GENERIC_CARTSLOT_ADD_WITH_DEFAULT(_tag, _slot_intf, _dev_intf, _default) \
- MCFG_DEVICE_ADD(_tag, GENERIC_SOCKET, 0) \
- MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _default, false) \
- MCFG_GENERIC_INTERFACE(_dev_intf)
+ MCFG_DEVICE_ADD(_tag, GENERIC_SOCKET, 0) \
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _default, false) \
+ MCFG_GENERIC_INTERFACE(_dev_intf)
#endif
diff --git a/src/devices/bus/hp_optroms/hp_optrom.cpp b/src/devices/bus/hp_optroms/hp_optrom.cpp
index aa3ef766d71..ec2425c058c 100644
--- a/src/devices/bus/hp_optroms/hp_optrom.cpp
+++ b/src/devices/bus/hp_optroms/hp_optrom.cpp
@@ -19,14 +19,14 @@ const device_type HP_OPTROM_SLOT = &device_creator;
// |hp_optrom_cart_device|
// +---------------------+
hp_optrom_cart_device::hp_optrom_cart_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) :
- device_t(mconfig, type, name, tag, owner, clock, shortname, source),
- device_slot_card_interface(mconfig, *this)
+ device_t(mconfig, type, name, tag, owner, clock, shortname, source),
+ device_slot_card_interface(mconfig, *this)
{
}
hp_optrom_cart_device::hp_optrom_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
- device_t(mconfig, HP_OPTROM_CART, "HP9845 optional ROM cartridge", tag, owner, clock, "hp_optrom_cart", __FILE__),
- device_slot_card_interface(mconfig, *this)
+ device_t(mconfig, HP_OPTROM_CART, "HP9845 optional ROM cartridge", tag, owner, clock, "hp_optrom_cart", __FILE__),
+ device_slot_card_interface(mconfig, *this)
{
}
@@ -34,12 +34,12 @@ hp_optrom_cart_device::hp_optrom_cart_device(const machine_config &mconfig, cons
// |hp_optrom_slot_device|
// +---------------------+
hp_optrom_slot_device::hp_optrom_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
- device_t(mconfig, HP_OPTROM_SLOT, "HP9845 optional ROM Slot", tag, owner, clock, "hp_optrom_slot", __FILE__),
- device_image_interface(mconfig, *this),
- device_slot_interface(mconfig, *this),
- m_cart(nullptr),
- m_base_addr(0),
- m_end_addr(0)
+ device_t(mconfig, HP_OPTROM_SLOT, "HP9845 optional ROM Slot", tag, owner, clock, "hp_optrom_slot", __FILE__),
+ device_image_interface(mconfig, *this),
+ device_slot_interface(mconfig, *this),
+ m_cart(nullptr),
+ m_base_addr(0),
+ m_end_addr(0)
{
}
@@ -49,95 +49,95 @@ hp_optrom_slot_device::~hp_optrom_slot_device()
void hp_optrom_slot_device::device_start()
{
- m_cart = dynamic_cast(get_card_device());
+ m_cart = dynamic_cast(get_card_device());
}
void hp_optrom_slot_device::device_config_complete()
{
- update_names(HP_OPTROM_SLOT , "optional_rom" , "optrom");
+ update_names(HP_OPTROM_SLOT , "optional_rom" , "optrom");
}
bool hp_optrom_slot_device::call_load()
{
- logerror("hp_optrom: call_load\n");
- if (m_cart == nullptr || !m_from_swlist) {
- logerror("hp_optrom: must be loaded from sw list\n");
- return IMAGE_INIT_FAIL;
- }
+ logerror("hp_optrom: call_load\n");
+ if (m_cart == nullptr || !m_from_swlist) {
+ logerror("hp_optrom: must be loaded from sw list\n");
+ return IMAGE_INIT_FAIL;
+ }
- const char *base_feature = get_feature("base");
- if (base_feature == nullptr) {
- logerror("hp_optrom: no 'base' feature\n");
- return IMAGE_INIT_FAIL;
- }
+ const char *base_feature = get_feature("base");
+ if (base_feature == nullptr) {
+ logerror("hp_optrom: no 'base' feature\n");
+ return IMAGE_INIT_FAIL;
+ }
- offs_t base_addr;
- if (base_feature[ 0 ] != '0' || base_feature[ 1 ] != 'x' || sscanf(&base_feature[ 2 ] , "%x" , &base_addr) != 1) {
- logerror("hp_optrom: can't parse 'base' feature\n");
- return IMAGE_INIT_FAIL;
- }
+ offs_t base_addr;
+ if (base_feature[ 0 ] != '0' || base_feature[ 1 ] != 'x' || sscanf(&base_feature[ 2 ] , "%x" , &base_addr) != 1) {
+ logerror("hp_optrom: can't parse 'base' feature\n");
+ return IMAGE_INIT_FAIL;
+ }
- // Valid BSC values for ROMs on LPU drawer: 0x07 0x0b .... 0x3b
- // Valid BSC values for ROMs on PPU drawer: 0x09 0x0d .... 0x3d
- // (BSC is field in bits 16..21 of base address)
- // Bit 15 of base address must be 0
- // Base address must be multiple of 0x1000
- if ((base_addr & ~0x3f7000UL) != 0 || ((base_addr & 0x30000) != 0x10000 && (base_addr & 0x30000) != 0x30000) || base_addr < 0x70000) {
- logerror("hp_optrom: illegal base address (%x)\n" , base_addr);
- return IMAGE_INIT_FAIL;
- }
+ // Valid BSC values for ROMs on LPU drawer: 0x07 0x0b .... 0x3b
+ // Valid BSC values for ROMs on PPU drawer: 0x09 0x0d .... 0x3d
+ // (BSC is field in bits 16..21 of base address)
+ // Bit 15 of base address must be 0
+ // Base address must be multiple of 0x1000
+ if ((base_addr & ~0x3f7000UL) != 0 || ((base_addr & 0x30000) != 0x10000 && (base_addr & 0x30000) != 0x30000) || base_addr < 0x70000) {
+ logerror("hp_optrom: illegal base address (%x)\n" , base_addr);
+ return IMAGE_INIT_FAIL;
+ }
- auto length = get_software_region_length("rom") / 2;
+ auto length = get_software_region_length("rom") / 2;
- if (length < 0x1000 || length > 0x8000 || (length & 0xfff) != 0 || ((base_addr & 0x7000) + length) > 0x8000) {
- logerror("hp_optrom: illegal region length (%x)\n" , length);
- return IMAGE_INIT_FAIL;
- }
+ if (length < 0x1000 || length > 0x8000 || (length & 0xfff) != 0 || ((base_addr & 0x7000) + length) > 0x8000) {
+ logerror("hp_optrom: illegal region length (%x)\n" , length);
+ return IMAGE_INIT_FAIL;
+ }
- offs_t end_addr = base_addr + length - 1;
- logerror("hp_optrom: base_addr = %06x end_addr = %06x\n" , base_addr , end_addr);
+ offs_t end_addr = base_addr + length - 1;
+ logerror("hp_optrom: base_addr = %06x end_addr = %06x\n" , base_addr , end_addr);
- m_content.resize(length * 2);
- UINT8 *buffer = m_content.data();
- memcpy(buffer , get_software_region("rom") , length * 2);
+ m_content.resize(length * 2);
+ UINT8 *buffer = m_content.data();
+ memcpy(buffer , get_software_region("rom") , length * 2);
- // Install ROM in address space of every CPU
- for (hp_hybrid_cpu_device& cpu : device_interface_iterator(machine().root_device())) {
- logerror("hp_optrom: install in %s AS\n" , cpu.tag());
- cpu.space(AS_PROGRAM).install_rom(base_addr , end_addr , buffer);
- }
+ // Install ROM in address space of every CPU
+ for (hp_hybrid_cpu_device& cpu : device_interface_iterator(machine().root_device())) {
+ logerror("hp_optrom: install in %s AS\n" , cpu.tag());
+ cpu.space(AS_PROGRAM).install_rom(base_addr , end_addr , buffer);
+ }
- m_base_addr = base_addr;
- m_end_addr = end_addr;
+ m_base_addr = base_addr;
+ m_end_addr = end_addr;
- return IMAGE_INIT_PASS;
+ return IMAGE_INIT_PASS;
}
void hp_optrom_slot_device::call_unload()
{
- logerror("hp_optrom: call_unload\n");
- if (m_cart != nullptr && m_base_addr != 0 && m_end_addr != 0) {
- for (hp_hybrid_cpu_device& cpu : device_interface_iterator(machine().root_device())) {
- cpu.space(AS_PROGRAM).unmap_read(m_base_addr , m_end_addr);
- }
- m_content.resize(0);
- m_base_addr = 0;
- m_end_addr = 0;
- }
+ logerror("hp_optrom: call_unload\n");
+ if (m_cart != nullptr && m_base_addr != 0 && m_end_addr != 0) {
+ for (hp_hybrid_cpu_device& cpu : device_interface_iterator(machine().root_device())) {
+ cpu.space(AS_PROGRAM).unmap_read(m_base_addr , m_end_addr);
+ }
+ m_content.resize(0);
+ m_base_addr = 0;
+ m_end_addr = 0;
+ }
}
bool hp_optrom_slot_device::call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry)
{
- logerror("hp_optrom: call_softlist_load\n");
- machine().rom_load().load_software_part_region(*this, swlist, swname, start_entry);
- return TRUE;
+ logerror("hp_optrom: call_softlist_load\n");
+ machine().rom_load().load_software_part_region(*this, swlist, swname, start_entry);
+ return TRUE;
}
std::string hp_optrom_slot_device::get_default_card_software()
{
- return software_get_default_slot("rom");
+ return software_get_default_slot("rom");
}
SLOT_INTERFACE_START(hp_optrom_slot_device)
- SLOT_INTERFACE_INTERNAL("rom", HP_OPTROM_CART)
+ SLOT_INTERFACE_INTERNAL("rom", HP_OPTROM_CART)
SLOT_INTERFACE_END
diff --git a/src/devices/bus/hp_optroms/hp_optrom.h b/src/devices/bus/hp_optroms/hp_optrom.h
index a18fd5e4087..5bca192a4dc 100644
--- a/src/devices/bus/hp_optroms/hp_optrom.h
+++ b/src/devices/bus/hp_optroms/hp_optrom.h
@@ -16,53 +16,53 @@
#include "emu.h"
class hp_optrom_cart_device : public device_t,
- public device_slot_card_interface
+ public device_slot_card_interface
{
public:
- // construction/destruction
- hp_optrom_cart_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);
- hp_optrom_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ // construction/destruction
+ hp_optrom_cart_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);
+ hp_optrom_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- // device-level overrides
- virtual void device_start() override {}
+ // device-level overrides
+ virtual void device_start() override {}
};
class hp_optrom_slot_device : public device_t,
- public device_image_interface,
- public device_slot_interface
+ public device_image_interface,
+ public device_slot_interface
{
public:
- // construction/destruction
- hp_optrom_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- virtual ~hp_optrom_slot_device();
+ // construction/destruction
+ hp_optrom_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ virtual ~hp_optrom_slot_device();
- // device-level overrides
- virtual void device_start() override;
- virtual void device_config_complete() override;
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_config_complete() override;
- // image-level overrides
- virtual bool call_load() override;
- virtual void call_unload() override;
- virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) override;
+ // image-level overrides
+ virtual bool call_load() override;
+ virtual void call_unload() override;
+ virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) override;
- virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
- virtual bool is_readable() const override { return true; }
- virtual bool is_writeable() const override { return false; }
- virtual bool is_creatable() const override { return false; }
- virtual bool must_be_loaded() const override { return false; }
- virtual bool is_reset_on_load() const override { return true; }
- virtual const option_guide *create_option_guide() const override { return nullptr; }
- virtual const char *image_interface() const override { return "hp9845b_rom"; }
- virtual const char *file_extensions() const override { return "bin"; }
+ virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
+ virtual bool is_readable() const override { return true; }
+ virtual bool is_writeable() const override { return false; }
+ virtual bool is_creatable() const override { return false; }
+ virtual bool must_be_loaded() const override { return false; }
+ virtual bool is_reset_on_load() const override { return true; }
+ virtual const option_guide *create_option_guide() const override { return nullptr; }
+ virtual const char *image_interface() const override { return "hp9845b_rom"; }
+ virtual const char *file_extensions() const override { return "bin"; }
- // slot interface overrides
- virtual std::string get_default_card_software() override;
+ // slot interface overrides
+ virtual std::string get_default_card_software() override;
protected:
- hp_optrom_cart_device *m_cart;
- dynamic_buffer m_content;
- offs_t m_base_addr;
- offs_t m_end_addr;
+ hp_optrom_cart_device *m_cart;
+ dynamic_buffer m_content;
+ offs_t m_base_addr;
+ offs_t m_end_addr;
};
// device type definition
diff --git a/src/devices/bus/intv/ecs.cpp b/src/devices/bus/intv/ecs.cpp
index bbee4f3074b..69582c2280e 100644
--- a/src/devices/bus/intv/ecs.cpp
+++ b/src/devices/bus/intv/ecs.cpp
@@ -102,7 +102,7 @@ static MACHINE_CONFIG_FRAGMENT( sub_slot )
MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("ctrl_port", intvecs_control_port_device, portA_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono_ecs", 0.33)
- MCFG_INTVECS_CONTROL_PORT_ADD("ctrl_port", intvecs_control_port_devices, "keybd")
+ MCFG_INTVECS_CONTROL_PORT_ADD("ctrl_port", intvecs_control_port_devices, "keybd")
MCFG_INTV_CARTRIDGE_ADD("subslot", intv_cart, nullptr)
MACHINE_CONFIG_END
diff --git a/src/devices/bus/intv_ctrl/ctrl.cpp b/src/devices/bus/intv_ctrl/ctrl.cpp
index 4d57c558d0e..d322a22cb46 100644
--- a/src/devices/bus/intv_ctrl/ctrl.cpp
+++ b/src/devices/bus/intv_ctrl/ctrl.cpp
@@ -92,4 +92,3 @@ UINT8 intv_control_port_device::read_ctrl()
SLOT_INTERFACE_START( intv_control_port_devices )
SLOT_INTERFACE("handctrl", INTV_HANDCTRL)
SLOT_INTERFACE_END
-
diff --git a/src/devices/bus/intv_ctrl/ctrl.h b/src/devices/bus/intv_ctrl/ctrl.h
index b29891efe87..8188d1e0b60 100644
--- a/src/devices/bus/intv_ctrl/ctrl.h
+++ b/src/devices/bus/intv_ctrl/ctrl.h
@@ -45,8 +45,8 @@ public:
intv_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~intv_control_port_device();
- DECLARE_READ8_MEMBER( ctrl_r ) { return read_ctrl(); }
- UINT8 read_ctrl();
+ DECLARE_READ8_MEMBER( ctrl_r ) { return read_ctrl(); }
+ UINT8 read_ctrl();
protected:
// device-level overrides
diff --git a/src/devices/bus/intv_ctrl/ecs_ctrl.cpp b/src/devices/bus/intv_ctrl/ecs_ctrl.cpp
index 19bc059531a..6320a35868a 100644
--- a/src/devices/bus/intv_ctrl/ecs_ctrl.cpp
+++ b/src/devices/bus/intv_ctrl/ecs_ctrl.cpp
@@ -3,7 +3,7 @@
/**********************************************************************
Mattel Intellivision ECS hack for controller port emulation
-
+
FIXME: This device is the best I could come up with to emulate
the fact that Keyboard and Synth controllers for the ECS should be
plugged in both ECS control ports, while the 3rd and 4th additional
@@ -12,9 +12,9 @@
in more than a slot, this has been worked around with this device
which supports as options
- ECS keyboard
- - ECS synth
+ - ECS synth
- a pair of Intellivision controller
-
+
All the code for both the controller port and the slot devices has
been included in this single source file to make easier to clean
them up once we extend the core to support this kind of setup
@@ -100,16 +100,16 @@ UINT8 intvecs_control_port_device::read_portA()
UINT8 intvecs_control_port_device::read_portB()
{
- UINT8 data = 0;
- if (m_device)
- data |= m_device->read_portB();
- return data;
+ UINT8 data = 0;
+ if (m_device)
+ data |= m_device->read_portB();
+ return data;
}
void intvecs_control_port_device::write_portA(UINT8 data)
{
- if (m_device)
- m_device->write_portA(data);
+ if (m_device)
+ m_device->write_portA(data);
}
@@ -119,8 +119,8 @@ void intvecs_control_port_device::write_portA(UINT8 data)
SLOT_INTERFACE_START( intvecs_control_port_devices )
SLOT_INTERFACE("ctrls", ECS_CTRLS)
- SLOT_INTERFACE("keybd", ECS_KEYBD)
- SLOT_INTERFACE("synth", ECS_SYNTH)
+ SLOT_INTERFACE("keybd", ECS_KEYBD)
+ SLOT_INTERFACE("synth", ECS_SYNTH)
SLOT_INTERFACE_END
@@ -139,25 +139,25 @@ SLOT_INTERFACE_END
const device_type ECS_CTRLS = &device_creator;
static SLOT_INTERFACE_START( intvecs_controller )
- SLOT_INTERFACE("handctrl", INTV_HANDCTRL)
+ SLOT_INTERFACE("handctrl", INTV_HANDCTRL)
SLOT_INTERFACE_END
static MACHINE_CONFIG_FRAGMENT( intvecs_ctrls )
- MCFG_INTV_CONTROL_PORT_ADD("port1", intvecs_controller, "handctrl")
- MCFG_INTV_CONTROL_PORT_ADD("port2", intvecs_controller, "handctrl")
+ MCFG_INTV_CONTROL_PORT_ADD("port1", intvecs_controller, "handctrl")
+ MCFG_INTV_CONTROL_PORT_ADD("port2", intvecs_controller, "handctrl")
MACHINE_CONFIG_END
machine_config_constructor intvecs_ctrls_device::device_mconfig_additions() const
{
- return MACHINE_CONFIG_NAME( intvecs_ctrls );
+ return MACHINE_CONFIG_NAME( intvecs_ctrls );
}
intvecs_ctrls_device::intvecs_ctrls_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
- device_t(mconfig, ECS_CTRLS, "Mattel Intellivision ECS Hand Controller x2 (HACK)", tag, owner, clock, "intvecs_ctrls", __FILE__),
- device_intvecs_control_port_interface(mconfig, *this),
- m_hand1(*this, "port1"),
- m_hand2(*this, "port2")
+ device_t(mconfig, ECS_CTRLS, "Mattel Intellivision ECS Hand Controller x2 (HACK)", tag, owner, clock, "intvecs_ctrls", __FILE__),
+ device_intvecs_control_port_interface(mconfig, *this),
+ m_hand1(*this, "port1"),
+ m_hand2(*this, "port2")
{
}
@@ -171,12 +171,12 @@ void intvecs_ctrls_device::device_reset()
UINT8 intvecs_ctrls_device::read_portA()
{
- return m_hand1->read_ctrl();
+ return m_hand1->read_ctrl();
}
UINT8 intvecs_ctrls_device::read_portB()
{
- return m_hand2->read_ctrl();
+ return m_hand2->read_ctrl();
}
//-------------------------------------------------
@@ -197,120 +197,120 @@ static INPUT_PORTS_START( intvecs_keybd )
Bit 4 D E 2 3 W S Z X
Bit 5 A CTL (right) 1 Q (up) (down) (space)
Bit 6 SHIFT NC NC NC NC NC NC NC
-
+
Shifted keys that differ from pc:
Key : 1 2 5 6 7 (left) (right) (up) (down)
Shift + key: = " + - / % ' ^ ?
*/
- PORT_START("ROW.0")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RTN") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC))
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.')
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_CHAR('%')
+ PORT_START("ROW.0")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RTN") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')')
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC))
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P')
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':')
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.')
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_CHAR('%')
- PORT_START("ROW.1")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L')
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O')
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('I')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('K')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M')
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',')
+ PORT_START("ROW.1")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L')
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O')
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*')
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(')
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('I')
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('K')
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M')
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',')
- PORT_START("ROW.2")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('J')
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('U')
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('-')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('/')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('H')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B')
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N')
+ PORT_START("ROW.2")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('J')
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('U')
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('-')
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('/')
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y')
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('H')
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B')
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N')
- PORT_START("ROW.3")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('G')
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('T')
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('R')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('F')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('C')
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V')
+ PORT_START("ROW.3")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('G')
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('T')
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('R')
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('F')
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('C')
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V')
- PORT_START("ROW.4")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('D')
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('E')
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('W')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('S')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z')
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('X')
+ PORT_START("ROW.4")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('D')
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('E')
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"')
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('W')
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('S')
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z')
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('X')
- PORT_START("ROW.5")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('A')
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTL") PORT_CODE(KEYCODE_RCONTROL) PORT_CODE(KEYCODE_LCONTROL)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_CHAR('\'')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('=')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_CHAR('^')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_CHAR('?')
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
+ PORT_START("ROW.5")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('A')
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTL") PORT_CODE(KEYCODE_RCONTROL) PORT_CODE(KEYCODE_LCONTROL)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_CHAR('\'')
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('=')
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q')
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_CHAR('^')
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_CHAR('?')
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
- PORT_START("ROW.6")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_RSHIFT) PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_START("ROW.6")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_RSHIFT) PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
ioport_constructor intvecs_keybd_device::device_input_ports() const
{
- return INPUT_PORTS_NAME( intvecs_keybd );
+ return INPUT_PORTS_NAME( intvecs_keybd );
}
intvecs_keybd_device::intvecs_keybd_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
- device_t(mconfig, ECS_KEYBD, "Mattel Intellivision ECS Keyboard", tag, owner, clock, "intvecs_keybd", __FILE__),
- device_intvecs_control_port_interface(mconfig, *this),
- m_keybd(*this, "ROW")
+ device_t(mconfig, ECS_KEYBD, "Mattel Intellivision ECS Keyboard", tag, owner, clock, "intvecs_keybd", __FILE__),
+ device_intvecs_control_port_interface(mconfig, *this),
+ m_keybd(*this, "ROW")
{
}
void intvecs_keybd_device::device_start()
{
- save_item(NAME(m_psg_portA));
+ save_item(NAME(m_psg_portA));
}
void intvecs_keybd_device::device_reset()
{
- m_psg_portA = 0;
+ m_psg_portA = 0;
}
UINT8 intvecs_keybd_device::read_portB()
{
- UINT8 val = 0xff;
- // return correct result if more than one bit of 0xFE is set
- for (int i = 0; i < 7; i++)
- {
- if (BIT(m_psg_portA, i))
- val &= m_keybd[i]->read();
- }
- return val;
+ UINT8 val = 0xff;
+ // return correct result if more than one bit of 0xFE is set
+ for (int i = 0; i < 7; i++)
+ {
+ if (BIT(m_psg_portA, i))
+ val &= m_keybd[i]->read();
+ }
+ return val;
}
void intvecs_keybd_device::write_portA(UINT8 data)
{
- m_psg_portA = (~data) & 0xff;
+ m_psg_portA = (~data) & 0xff;
}
@@ -334,115 +334,114 @@ static INPUT_PORTS_START( intvecs_synth )
Bit 5 B5 Bb5 A5 Ab5 G5 Gb5 F5 E5
Bit 6 C6 NC NC NC NC NC NC NC
*/
- PORT_START("SYNTH.0")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G2")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Gb2")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E2")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Eb2")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D2")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Db2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C2")
+ PORT_START("SYNTH.0")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G2")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Gb2")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E2")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Eb2")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D2")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Db2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C2")
- PORT_START("SYNTH.1")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Eb3")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D3")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Db3")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C3")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B2")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Bb2")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ab2")
+ PORT_START("SYNTH.1")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Eb3")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D3")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Db3")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C3")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B2")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Bb2")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ab2")
- PORT_START("SYNTH.2")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B3")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Bb3")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A3")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ab3")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G3")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Gb3")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E3")
+ PORT_START("SYNTH.2")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B3")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Bb3")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A3")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ab3")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G3")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Gb3")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E3")
- PORT_START("SYNTH.3")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G4")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Gb4")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F4")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E4")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Eb4")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D4")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Db4")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C4")
+ PORT_START("SYNTH.3")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G4")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Gb4")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F4")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E4")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Eb4")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D4")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Db4")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C4")
- PORT_START("SYNTH.4")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Eb5")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D5")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Db5")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C5")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B4")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Bb4")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A4")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ab4")
+ PORT_START("SYNTH.4")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Eb5")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D5")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Db5")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C5")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B4")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Bb4")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A4")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ab4")
- PORT_START("SYNTH.5")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B5")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Bb5")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A5")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ab5")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G5")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Gb5")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F5")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E5")
+ PORT_START("SYNTH.5")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B5")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Bb5")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A5")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ab5")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G5")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Gb5")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F5")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E5")
- PORT_START("SYNTH.6")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C6")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_START("SYNTH.6")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C6")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
ioport_constructor intvecs_synth_device::device_input_ports() const
{
- return INPUT_PORTS_NAME( intvecs_synth );
+ return INPUT_PORTS_NAME( intvecs_synth );
}
intvecs_synth_device::intvecs_synth_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
- device_t(mconfig, ECS_SYNTH, "Mattel Intellivision ECS Synthetizer", tag, owner, clock, "intvecs_synth", __FILE__),
- device_intvecs_control_port_interface(mconfig, *this),
- m_synth(*this, "SYNTH")
+ device_t(mconfig, ECS_SYNTH, "Mattel Intellivision ECS Synthetizer", tag, owner, clock, "intvecs_synth", __FILE__),
+ device_intvecs_control_port_interface(mconfig, *this),
+ m_synth(*this, "SYNTH")
{
}
void intvecs_synth_device::device_start()
{
- save_item(NAME(m_psg_portA));
+ save_item(NAME(m_psg_portA));
}
void intvecs_synth_device::device_reset()
{
- m_psg_portA = 0;
+ m_psg_portA = 0;
}
UINT8 intvecs_synth_device::read_portB()
{
- UINT8 val = 0xff;
- // return correct result if more than one bit of 0xFE is set
- for (int i = 0; i < 7; i++)
- {
- if (BIT(m_psg_portA, i))
- val &= m_synth[i]->read();
- }
- return val;
+ UINT8 val = 0xff;
+ // return correct result if more than one bit of 0xFE is set
+ for (int i = 0; i < 7; i++)
+ {
+ if (BIT(m_psg_portA, i))
+ val &= m_synth[i]->read();
+ }
+ return val;
}
void intvecs_synth_device::write_portA(UINT8 data)
{
- m_psg_portA = (~data) & 0xff;
+ m_psg_portA = (~data) & 0xff;
}
-
diff --git a/src/devices/bus/intv_ctrl/ecs_ctrl.h b/src/devices/bus/intv_ctrl/ecs_ctrl.h
index 40d94ca5d1b..136c7bfa9d9 100644
--- a/src/devices/bus/intv_ctrl/ecs_ctrl.h
+++ b/src/devices/bus/intv_ctrl/ecs_ctrl.h
@@ -32,8 +32,8 @@ public:
virtual ~device_intvecs_control_port_interface();
virtual UINT8 read_portA() { return 0xff; };
- virtual UINT8 read_portB() { return 0xff; };
- virtual void write_portA(UINT8 data) { };
+ virtual UINT8 read_portB() { return 0xff; };
+ virtual void write_portA(UINT8 data) { };
protected:
intvecs_control_port_device *m_port;
@@ -49,16 +49,16 @@ public:
intvecs_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~intvecs_control_port_device();
- DECLARE_READ8_MEMBER( portA_r ) { return read_portA(); }
- DECLARE_READ8_MEMBER( portB_r ) { return read_portB(); }
- DECLARE_WRITE8_MEMBER( portA_w ) { return write_portA(data); }
+ DECLARE_READ8_MEMBER( portA_r ) { return read_portA(); }
+ DECLARE_READ8_MEMBER( portB_r ) { return read_portB(); }
+ DECLARE_WRITE8_MEMBER( portA_w ) { return write_portA(data); }
protected:
// device-level overrides
virtual void device_start() override;
- UINT8 read_portA();
- UINT8 read_portB();
- void write_portA(UINT8 data);
+ UINT8 read_portA();
+ UINT8 read_portB();
+ void write_portA(UINT8 data);
device_intvecs_control_port_interface *m_device;
};
@@ -88,76 +88,76 @@ SLOT_INTERFACE_EXTERN( intvecs_control_port_devices );
// ======================> intvecs_ctrls_device
class intvecs_ctrls_device : public device_t,
- public device_intvecs_control_port_interface
+ public device_intvecs_control_port_interface
{
public:
- // construction/destruction
- intvecs_ctrls_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ // construction/destruction
+ intvecs_ctrls_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- // optional information overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
+ // optional information overrides
+ virtual machine_config_constructor device_mconfig_additions() const override;
protected:
- // device-level overrides
- virtual void device_start() override;
- virtual void device_reset() override;
-
- virtual UINT8 read_portA() override;
- virtual UINT8 read_portB() override;
-
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ virtual UINT8 read_portA() override;
+ virtual UINT8 read_portB() override;
+
private:
- required_device m_hand1;
- required_device m_hand2;
+ required_device m_hand1;
+ required_device m_hand2;
};
// ======================> intvecs_keybd_device
class intvecs_keybd_device : public device_t,
- public device_intvecs_control_port_interface
+ public device_intvecs_control_port_interface
{
public:
- // construction/destruction
- intvecs_keybd_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
- // optional information overrides
- virtual ioport_constructor device_input_ports() const override;
-
+ // construction/destruction
+ intvecs_keybd_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
protected:
- // device-level overrides
- virtual void device_start() override;
- virtual void device_reset() override;
-
- virtual UINT8 read_portB() override;
- virtual void write_portA(UINT8 data) override;
-
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ virtual UINT8 read_portB() override;
+ virtual void write_portA(UINT8 data) override;
+
private:
- UINT8 m_psg_portA;
- required_ioport_array<7> m_keybd;
+ UINT8 m_psg_portA;
+ required_ioport_array<7> m_keybd;
};
// ======================> intvecs_synth_device
class intvecs_synth_device : public device_t,
- public device_intvecs_control_port_interface
+ public device_intvecs_control_port_interface
{
public:
- // construction/destruction
- intvecs_synth_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
- // optional information overrides
- virtual ioport_constructor device_input_ports() const override;
-
+ // construction/destruction
+ intvecs_synth_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
protected:
- // device-level overrides
- virtual void device_start() override;
- virtual void device_reset() override;
-
- virtual UINT8 read_portB() override;
- virtual void write_portA(UINT8 data) override;
-
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ virtual UINT8 read_portB() override;
+ virtual void write_portA(UINT8 data) override;
+
private:
- UINT8 m_psg_portA;
- required_ioport_array<7> m_synth;
+ UINT8 m_psg_portA;
+ required_ioport_array<7> m_synth;
};
diff --git a/src/devices/bus/intv_ctrl/handctrl.cpp b/src/devices/bus/intv_ctrl/handctrl.cpp
index 512f9f32adc..07154829d51 100644
--- a/src/devices/bus/intv_ctrl/handctrl.cpp
+++ b/src/devices/bus/intv_ctrl/handctrl.cpp
@@ -16,53 +16,53 @@ const device_type INTV_HANDCTRL = &device_creator;
static INPUT_PORTS_START( intv_handctrl )
- PORT_START("KEYPAD")
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("1") PORT_CODE(KEYCODE_1_PAD)
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("2") PORT_CODE(KEYCODE_2_PAD)
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("3") PORT_CODE(KEYCODE_3_PAD)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("4") PORT_CODE(KEYCODE_4_PAD)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("5") PORT_CODE(KEYCODE_5_PAD)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("6") PORT_CODE(KEYCODE_6_PAD)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("7") PORT_CODE(KEYCODE_7_PAD)
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("8") PORT_CODE(KEYCODE_8_PAD)
- PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("9") PORT_CODE(KEYCODE_9_PAD)
- PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Clear") PORT_CODE(KEYCODE_DEL_PAD)
- PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("0") PORT_CODE(KEYCODE_0_PAD)
- PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER_PAD)
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Upper") PORT_PLAYER(1)
- PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Lower-Left") PORT_PLAYER(1)
- PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Lower-Right") PORT_PLAYER(1)
- PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_START("KEYPAD")
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("1") PORT_CODE(KEYCODE_1_PAD)
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("2") PORT_CODE(KEYCODE_2_PAD)
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("3") PORT_CODE(KEYCODE_3_PAD)
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("4") PORT_CODE(KEYCODE_4_PAD)
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("5") PORT_CODE(KEYCODE_5_PAD)
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("6") PORT_CODE(KEYCODE_6_PAD)
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("7") PORT_CODE(KEYCODE_7_PAD)
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("8") PORT_CODE(KEYCODE_8_PAD)
+ PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("9") PORT_CODE(KEYCODE_9_PAD)
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Clear") PORT_CODE(KEYCODE_DEL_PAD)
+ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("0") PORT_CODE(KEYCODE_0_PAD)
+ PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER_PAD)
+ PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Upper") PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Lower-Left") PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Lower-Right") PORT_PLAYER(1)
+ PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_START("DISC_DG")
- PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("Up") PORT_PLAYER(1) PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Up-Up-Right") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Up-Right") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Right-Up-Right") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("Right") PORT_PLAYER(1) PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Right-Down-Right") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Down-Right") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Down-Down-Right") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_NAME("Down") PORT_PLAYER(1) PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Down-Down-Left") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Down-Left") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left-Down-Left") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("Left") PORT_PLAYER(1) PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left-Up-Left") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Up-Left") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Up-Up-Left") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_START("DISC_DG")
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("Up") PORT_PLAYER(1) PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Up-Up-Right") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Up-Right") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Right-Up-Right") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("Right") PORT_PLAYER(1) PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Right-Down-Right") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Down-Right") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Down-Down-Right") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_NAME("Down") PORT_PLAYER(1) PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Down-Down-Left") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Down-Left") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left-Down-Left") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("Left") PORT_PLAYER(1) PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left-Up-Left") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Up-Left") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
+ PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Up-Up-Left") PORT_CONDITION("OPTIONS",0x01,EQUALS,0x00)
- PORT_START("DISC_AN_X")
- PORT_BIT( 0xff, 0x50, IPT_AD_STICK_X ) PORT_NAME("X") PORT_MINMAX(0x00,0x9f) PORT_SENSITIVITY(100) PORT_KEYDELTA(0x50) PORT_CODE_DEC(KEYCODE_LEFT) PORT_CODE_INC(KEYCODE_RIGHT) PORT_PLAYER(1) PORT_CONDITION("OPTIONS",0x01,EQUALS,0x01)
+ PORT_START("DISC_AN_X")
+ PORT_BIT( 0xff, 0x50, IPT_AD_STICK_X ) PORT_NAME("X") PORT_MINMAX(0x00,0x9f) PORT_SENSITIVITY(100) PORT_KEYDELTA(0x50) PORT_CODE_DEC(KEYCODE_LEFT) PORT_CODE_INC(KEYCODE_RIGHT) PORT_PLAYER(1) PORT_CONDITION("OPTIONS",0x01,EQUALS,0x01)
- PORT_START("DISC_AN_Y")
- PORT_BIT( 0xff, 0x50, IPT_AD_STICK_Y ) PORT_NAME("Y") PORT_MINMAX(0x00,0x9f) PORT_SENSITIVITY(100) PORT_KEYDELTA(0x50) PORT_CODE_DEC(KEYCODE_UP) PORT_CODE_INC(KEYCODE_DOWN) PORT_PLAYER(1) PORT_CONDITION("OPTIONS",0x01,EQUALS,0x01)
+ PORT_START("DISC_AN_Y")
+ PORT_BIT( 0xff, 0x50, IPT_AD_STICK_Y ) PORT_NAME("Y") PORT_MINMAX(0x00,0x9f) PORT_SENSITIVITY(100) PORT_KEYDELTA(0x50) PORT_CODE_DEC(KEYCODE_UP) PORT_CODE_INC(KEYCODE_DOWN) PORT_PLAYER(1) PORT_CONDITION("OPTIONS",0x01,EQUALS,0x01)
- PORT_START("OPTIONS")
- PORT_CONFNAME( 0x01, 0x01, "Controller Disc Emulation" )
- PORT_CONFSETTING( 0x00, "Digital" )
- PORT_CONFSETTING( 0x01, "Analog" )
+ PORT_START("OPTIONS")
+ PORT_CONFNAME( 0x01, 0x01, "Controller Disc Emulation" )
+ PORT_CONFSETTING( 0x00, "Digital" )
+ PORT_CONFSETTING( 0x01, "Analog" )
INPUT_PORTS_END
@@ -89,10 +89,10 @@ intv_handctrl_device::intv_handctrl_device(const machine_config &mconfig, const
device_t(mconfig, INTV_HANDCTRL, "Mattel Intellivision Hand Controller", tag, owner, clock, "intv_hand", __FILE__),
device_intv_control_port_interface(mconfig, *this),
m_cfg(*this, "OPTIONS"),
- m_keypad(*this, "KEYPAD"),
- m_disc_dig(*this, "DISC_DG"),
- m_disc_anx(*this, "DISC_AN_X"),
- m_disc_any(*this, "DISC_AN_Y")
+ m_keypad(*this, "KEYPAD"),
+ m_disc_dig(*this, "DISC_DG"),
+ m_disc_anx(*this, "DISC_AN_X"),
+ m_disc_any(*this, "DISC_AN_Y")
{
}
@@ -121,59 +121,58 @@ void intv_handctrl_device::device_reset()
UINT8 intv_handctrl_device::read_ctrl()
{
- static const UINT8 keypad_table[] =
- {
- 0xff, 0x3f, 0x9f, 0x5f, 0xd7, 0xb7, 0x77, 0xdb,
- 0xbb, 0x7b, 0xdd, 0xbd, 0x7d, 0xde, 0xbe, 0x7e
- };
-
- static const UINT8 disc_table[] =
- {
- 0xf3, 0xe3, 0xe7, 0xf7, 0xf6, 0xe6, 0xee, 0xfe,
- 0xfc, 0xec, 0xed, 0xfd, 0xf9, 0xe9, 0xeb, 0xfb
- };
-
- static const UINT8 discyx_table[5][5] =
- {
- { 0xe3, 0xf3, 0xfb, 0xeb, 0xe9 },
- { 0xe7, 0xe3, 0xfb, 0xe9, 0xf9 },
- { 0xf7, 0xf7, 0xff, 0xfd, 0xfd },
- { 0xf6, 0xe6, 0xfe, 0xec, 0xed },
- { 0xe6, 0xee, 0xfe, 0xfc, 0xec }
- };
-
- int x, y;
- UINT8 res = 0xff;
-
- /* keypad */
- x = m_keypad->read();
- for (int i = 0; i < 16; i++)
- {
- if (BIT(x, i))
- res &= keypad_table[i];
- }
-
- switch (m_cfg->read() & 1)
- {
- /* disc == digital */
- case 0:
- default:
- x = m_disc_dig->read();
- for (int i = 0; i < 16; i++)
- {
- if (BIT(x, i))
- res &= disc_table[i];
- }
- break;
+ static const UINT8 keypad_table[] =
+ {
+ 0xff, 0x3f, 0x9f, 0x5f, 0xd7, 0xb7, 0x77, 0xdb,
+ 0xbb, 0x7b, 0xdd, 0xbd, 0x7d, 0xde, 0xbe, 0x7e
+ };
- /* disc == _fake_ analog */
- case 1:
- x = m_disc_anx->read();
- y = m_disc_any->read();
- res &= discyx_table[y / 32][x / 32];
- break;
- }
-
- return res;
+ static const UINT8 disc_table[] =
+ {
+ 0xf3, 0xe3, 0xe7, 0xf7, 0xf6, 0xe6, 0xee, 0xfe,
+ 0xfc, 0xec, 0xed, 0xfd, 0xf9, 0xe9, 0xeb, 0xfb
+ };
+
+ static const UINT8 discyx_table[5][5] =
+ {
+ { 0xe3, 0xf3, 0xfb, 0xeb, 0xe9 },
+ { 0xe7, 0xe3, 0xfb, 0xe9, 0xf9 },
+ { 0xf7, 0xf7, 0xff, 0xfd, 0xfd },
+ { 0xf6, 0xe6, 0xfe, 0xec, 0xed },
+ { 0xe6, 0xee, 0xfe, 0xfc, 0xec }
+ };
+
+ int x, y;
+ UINT8 res = 0xff;
+
+ /* keypad */
+ x = m_keypad->read();
+ for (int i = 0; i < 16; i++)
+ {
+ if (BIT(x, i))
+ res &= keypad_table[i];
+ }
+
+ switch (m_cfg->read() & 1)
+ {
+ /* disc == digital */
+ case 0:
+ default:
+ x = m_disc_dig->read();
+ for (int i = 0; i < 16; i++)
+ {
+ if (BIT(x, i))
+ res &= disc_table[i];
+ }
+ break;
+
+ /* disc == _fake_ analog */
+ case 1:
+ x = m_disc_anx->read();
+ y = m_disc_any->read();
+ res &= discyx_table[y / 32][x / 32];
+ break;
+ }
+
+ return res;
}
-
diff --git a/src/devices/bus/intv_ctrl/handctrl.h b/src/devices/bus/intv_ctrl/handctrl.h
index 5b6fc4a3fb9..90c02d74793 100644
--- a/src/devices/bus/intv_ctrl/handctrl.h
+++ b/src/devices/bus/intv_ctrl/handctrl.h
@@ -41,10 +41,10 @@ protected:
private:
required_ioport m_cfg;
- required_ioport m_keypad;
- required_ioport m_disc_dig;
- required_ioport m_disc_anx;
- required_ioport m_disc_any;
+ required_ioport m_keypad;
+ required_ioport m_disc_dig;
+ required_ioport m_disc_anx;
+ required_ioport m_disc_any;
};
diff --git a/src/devices/bus/neogeo_ctrl/ctrl.cpp b/src/devices/bus/neogeo_ctrl/ctrl.cpp
index bdfeb657065..d79410c060b 100644
--- a/src/devices/bus/neogeo_ctrl/ctrl.cpp
+++ b/src/devices/bus/neogeo_ctrl/ctrl.cpp
@@ -3,13 +3,13 @@
/**********************************************************************
SNK Neo Geo Controller Port emulation
-
+
This actually covers two separate piece of hardware of Neo Geo system:
- - The 15-pin controller ports that are used for controllers in the
+ - The 15-pin controller ports that are used for controllers in the
AES home system and for mahjong controllers in the MVS arcade PCB
- The controller part of the main edge connector that is used for
joystick inputs in the MVS arcade PCB
-
+
Technically, the latter is not a configurable slot, because it's not
a component that arcade operators could simply change with a different
controller, but this implementation allows for simpler code.
@@ -219,4 +219,3 @@ SLOT_INTERFACE_END
SLOT_INTERFACE_START( neogeo_arc_pin15 )
SLOT_INTERFACE("mahjong", NEOGEO_MJCTRL)
SLOT_INTERFACE_END
-
diff --git a/src/devices/bus/neogeo_ctrl/ctrl.h b/src/devices/bus/neogeo_ctrl/ctrl.h
index 437dc8addd3..1d61e6753d1 100644
--- a/src/devices/bus/neogeo_ctrl/ctrl.h
+++ b/src/devices/bus/neogeo_ctrl/ctrl.h
@@ -48,7 +48,7 @@ public:
neogeo_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~neogeo_control_port_device();
- UINT8 read_ctrl();
+ UINT8 read_ctrl();
UINT8 read_start_sel();
void write_ctrlsel(UINT8 data);
DECLARE_READ8_MEMBER( ctrl_r ) { return read_ctrl(); }
@@ -69,12 +69,12 @@ public:
// construction/destruction
device_neogeo_ctrl_edge_interface(const machine_config &mconfig, device_t &device);
virtual ~device_neogeo_ctrl_edge_interface();
-
+
virtual UINT8 read_start_sel() { return 0xff; }
virtual DECLARE_READ8_MEMBER( in0_r ) { return 0xff; }
virtual DECLARE_READ8_MEMBER( in1_r ) { return 0xff; }
virtual void write_ctrlsel(UINT8 data) { }
-
+
protected:
neogeo_ctrl_edge_port_device *m_port;
};
@@ -88,7 +88,7 @@ public:
// construction/destruction
neogeo_ctrl_edge_port_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~neogeo_ctrl_edge_port_device();
-
+
UINT8 read_start_sel();
DECLARE_READ8_MEMBER( in0_r );
DECLARE_READ8_MEMBER( in1_r );
@@ -97,7 +97,7 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
-
+
device_neogeo_ctrl_edge_interface *m_device;
};
diff --git a/src/devices/bus/neogeo_ctrl/dial.cpp b/src/devices/bus/neogeo_ctrl/dial.cpp
index 046ff1ccd06..d73a7b6c8de 100644
--- a/src/devices/bus/neogeo_ctrl/dial.cpp
+++ b/src/devices/bus/neogeo_ctrl/dial.cpp
@@ -102,7 +102,7 @@ READ8_MEMBER(neogeo_dial_device::in0_r)
res = m_joy1->read();
else
res = m_dial1->read();
-
+
return res;
}
@@ -117,7 +117,7 @@ READ8_MEMBER(neogeo_dial_device::in1_r)
res = m_joy2->read();
else
res = m_dial2->read();
-
+
return res;
}
@@ -129,4 +129,3 @@ void neogeo_dial_device::write_ctrlsel(UINT8 data)
{
m_ctrl_sel = data;
}
-
diff --git a/src/devices/bus/neogeo_ctrl/dial.h b/src/devices/bus/neogeo_ctrl/dial.h
index 0c0e07c474d..5727c540637 100644
--- a/src/devices/bus/neogeo_ctrl/dial.h
+++ b/src/devices/bus/neogeo_ctrl/dial.h
@@ -27,20 +27,20 @@ class neogeo_dial_device : public device_t,
public:
// construction/destruction
neogeo_dial_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
+
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
-
+
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
-
+
// device_neogeo_control_port_interface overrides
virtual DECLARE_READ8_MEMBER( in0_r ) override;
virtual DECLARE_READ8_MEMBER( in1_r ) override;
virtual void write_ctrlsel(UINT8 data) override;
-
+
private:
required_ioport m_joy1;
required_ioport m_joy2;
diff --git a/src/devices/bus/neogeo_ctrl/irrmaze.cpp b/src/devices/bus/neogeo_ctrl/irrmaze.cpp
index 0172d6f86d4..e22941e5d09 100644
--- a/src/devices/bus/neogeo_ctrl/irrmaze.cpp
+++ b/src/devices/bus/neogeo_ctrl/irrmaze.cpp
@@ -90,7 +90,7 @@ READ8_MEMBER(neogeo_irrmaze_device::in0_r)
res = m_ty->read();
else
res = m_tx->read();
-
+
return res;
}
@@ -111,4 +111,3 @@ void neogeo_irrmaze_device::write_ctrlsel(UINT8 data)
{
m_ctrl_sel = data;
}
-
diff --git a/src/devices/bus/neogeo_ctrl/irrmaze.h b/src/devices/bus/neogeo_ctrl/irrmaze.h
index 9ec4da5761b..0eeecfb8a11 100644
--- a/src/devices/bus/neogeo_ctrl/irrmaze.h
+++ b/src/devices/bus/neogeo_ctrl/irrmaze.h
@@ -27,20 +27,20 @@ class neogeo_irrmaze_device : public device_t,
public:
// construction/destruction
neogeo_irrmaze_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
+
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
-
+
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
-
+
// device_neogeo_control_port_interface overrides
virtual DECLARE_READ8_MEMBER( in0_r ) override;
virtual DECLARE_READ8_MEMBER( in1_r ) override;
virtual void write_ctrlsel(UINT8 data) override;
-
+
private:
required_ioport m_tx;
required_ioport m_ty;
diff --git a/src/devices/bus/neogeo_ctrl/joystick.cpp b/src/devices/bus/neogeo_ctrl/joystick.cpp
index a2a95c7a7e0..f30b4fa2102 100644
--- a/src/devices/bus/neogeo_ctrl/joystick.cpp
+++ b/src/devices/bus/neogeo_ctrl/joystick.cpp
@@ -11,9 +11,9 @@
/**********************************************************************
-
+
Implementation through the 15-pin controller port (used by AES)
-
+
**********************************************************************/
@@ -92,7 +92,7 @@ void neogeo_joystick_device::device_reset()
UINT8 neogeo_joystick_device::read_ctrl()
{
- return m_joy->read();
+ return m_joy->read();
}
//-------------------------------------------------
@@ -107,10 +107,10 @@ UINT8 neogeo_joystick_device::read_start_sel()
/**********************************************************************
-
- Implementation through the edge connector (used by MVS) and
+
+ Implementation through the edge connector (used by MVS) and
connecting two controllers
-
+
**********************************************************************/
//**************************************************************************
@@ -203,4 +203,3 @@ READ8_MEMBER(neogeo_joy_ac_device::in1_r)
{
return m_joy2->read();
}
-
diff --git a/src/devices/bus/neogeo_ctrl/joystick.h b/src/devices/bus/neogeo_ctrl/joystick.h
index 4f8ce2a91da..86cccd6fef8 100644
--- a/src/devices/bus/neogeo_ctrl/joystick.h
+++ b/src/devices/bus/neogeo_ctrl/joystick.h
@@ -54,15 +54,15 @@ class neogeo_joy_ac_device : public device_t,
public:
// construction/destruction
neogeo_joy_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
+
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
-
+
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
-
+
// device_neogeo_ctrl_edge_interface overrides
virtual DECLARE_READ8_MEMBER( in0_r ) override;
virtual DECLARE_READ8_MEMBER( in1_r ) override;
diff --git a/src/devices/bus/neogeo_ctrl/kizuna4p.cpp b/src/devices/bus/neogeo_ctrl/kizuna4p.cpp
index 9a3ef190154..b6b93089fe4 100644
--- a/src/devices/bus/neogeo_ctrl/kizuna4p.cpp
+++ b/src/devices/bus/neogeo_ctrl/kizuna4p.cpp
@@ -128,9 +128,9 @@ READ8_MEMBER(neogeo_kizuna4p_device::in0_r)
res = m_joy3->read();
else
res = m_joy1->read();
-
+
if (m_ctrl_sel & 0x04) res &= ((m_ctrl_sel & 0x01) ? ~0x20 : ~0x10);
-
+
return res;
}
@@ -145,9 +145,9 @@ READ8_MEMBER(neogeo_kizuna4p_device::in1_r)
res = m_joy4->read();
else
res = m_joy2->read();
-
+
if (m_ctrl_sel & 0x04) res &= ((m_ctrl_sel & 0x01) ? ~0x20 : ~0x10);
-
+
return res;
}
diff --git a/src/devices/bus/neogeo_ctrl/kizuna4p.h b/src/devices/bus/neogeo_ctrl/kizuna4p.h
index ef4aa1bad36..7a3907f98db 100644
--- a/src/devices/bus/neogeo_ctrl/kizuna4p.h
+++ b/src/devices/bus/neogeo_ctrl/kizuna4p.h
@@ -27,21 +27,21 @@ class neogeo_kizuna4p_device : public device_t,
public:
// construction/destruction
neogeo_kizuna4p_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
+
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
-
+
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
-
+
// device_neogeo_control_port_interface overrides
virtual DECLARE_READ8_MEMBER( in0_r ) override;
virtual DECLARE_READ8_MEMBER( in1_r ) override;
virtual UINT8 read_start_sel() override;
virtual void write_ctrlsel(UINT8 data) override;
-
+
private:
required_ioport m_joy1;
required_ioport m_joy2;
diff --git a/src/devices/bus/neogeo_ctrl/mahjong.cpp b/src/devices/bus/neogeo_ctrl/mahjong.cpp
index 37e471adb62..5a58daf6bee 100644
--- a/src/devices/bus/neogeo_ctrl/mahjong.cpp
+++ b/src/devices/bus/neogeo_ctrl/mahjong.cpp
@@ -150,7 +150,7 @@ UINT8 neogeo_mjctrl_ac_device::read_ctrl()
case 0x1b: res = m_mjpanel[2]->read(); break;
case 0x24: res = m_mjpanel[3]->read(); break;
}
-
+
return res;
}
@@ -171,4 +171,3 @@ UINT8 neogeo_mjctrl_device::read_start_sel()
{
return m_ss->read();
}
-
diff --git a/src/devices/bus/neogeo_ctrl/mahjong.h b/src/devices/bus/neogeo_ctrl/mahjong.h
index eb4f2fc4166..52812a9917e 100644
--- a/src/devices/bus/neogeo_ctrl/mahjong.h
+++ b/src/devices/bus/neogeo_ctrl/mahjong.h
@@ -28,19 +28,19 @@ public:
// construction/destruction
neogeo_mjctrl_ac_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);
neogeo_mjctrl_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
+
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
-
+
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
-
+
// device_neogeo_control_port_interface overrides
virtual UINT8 read_ctrl() override;
virtual void write_ctrlsel(UINT8 data) override;
-
+
private:
required_ioport_array<4> m_mjpanel;
UINT8 m_ctrl_sel;
diff --git a/src/devices/bus/sat_ctrl/analog.cpp b/src/devices/bus/sat_ctrl/analog.cpp
index ab1d75292fd..32cf2092385 100644
--- a/src/devices/bus/sat_ctrl/analog.cpp
+++ b/src/devices/bus/sat_ctrl/analog.cpp
@@ -120,4 +120,3 @@ UINT8 saturn_analog_device::read_ctrl(UINT8 offset)
}
return res;
}
-
diff --git a/src/devices/bus/sat_ctrl/analog.h b/src/devices/bus/sat_ctrl/analog.h
index 2688f58aca9..ebd99d570fa 100644
--- a/src/devices/bus/sat_ctrl/analog.h
+++ b/src/devices/bus/sat_ctrl/analog.h
@@ -35,7 +35,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
-
+
// device_saturn_control_port_interface overrides
virtual UINT8 read_ctrl(UINT8 offset) override;
virtual UINT8 read_status() override { return 0xf1; }
diff --git a/src/devices/bus/sat_ctrl/ctrl.cpp b/src/devices/bus/sat_ctrl/ctrl.cpp
index 55a324cbd7f..2d5473bbb19 100644
--- a/src/devices/bus/sat_ctrl/ctrl.cpp
+++ b/src/devices/bus/sat_ctrl/ctrl.cpp
@@ -3,7 +3,7 @@
/**********************************************************************
Sega Saturn Controller Port emulation
-
+
**********************************************************************/
#include "ctrl.h"
@@ -127,7 +127,7 @@ SLOT_INTERFACE_START( saturn_controls )
SLOT_INTERFACE("joypad", SATURN_JOY)
SLOT_INTERFACE("racing", SATURN_WHEEL)
SLOT_INTERFACE("analog", SATURN_ANALOG)
-// SLOT_INTERFACE("lightgun", SATURN_LIGHTGUN)
+// SLOT_INTERFACE("lightgun", SATURN_LIGHTGUN)
SLOT_INTERFACE("trackball", SATURN_TRACK)
SLOT_INTERFACE("keyboard", SATURN_KEYBD)
SLOT_INTERFACE("joy_md3", SATURN_JOYMD3B)
@@ -140,4 +140,3 @@ SLOT_INTERFACE_END
SLOT_INTERFACE_START( saturn_joys )
SLOT_INTERFACE("joypad", SATURN_JOY)
SLOT_INTERFACE_END
-
diff --git a/src/devices/bus/sat_ctrl/ctrl.h b/src/devices/bus/sat_ctrl/ctrl.h
index 346a181780c..ad3fe80cec7 100644
--- a/src/devices/bus/sat_ctrl/ctrl.h
+++ b/src/devices/bus/sat_ctrl/ctrl.h
@@ -50,13 +50,13 @@ public:
virtual ~saturn_control_port_device();
UINT16 read_direct();
- UINT8 read_ctrl(UINT8 offset);
+ UINT8 read_ctrl(UINT8 offset);
UINT8 read_status();
UINT8 read_id(int idx);
// device-level overrides
virtual void device_start() override;
-
+
protected:
device_saturn_control_port_interface *m_device;
};
diff --git a/src/devices/bus/sat_ctrl/joy.cpp b/src/devices/bus/sat_ctrl/joy.cpp
index e8fbc90a1b1..ff2ebb0733e 100644
--- a/src/devices/bus/sat_ctrl/joy.cpp
+++ b/src/devices/bus/sat_ctrl/joy.cpp
@@ -108,4 +108,3 @@ UINT16 saturn_joy_device::read_direct()
{
return m_joy->read();
}
-
diff --git a/src/devices/bus/sat_ctrl/joy.h b/src/devices/bus/sat_ctrl/joy.h
index 786c50949a5..58ec4e544c6 100644
--- a/src/devices/bus/sat_ctrl/joy.h
+++ b/src/devices/bus/sat_ctrl/joy.h
@@ -35,7 +35,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
-
+
// device_saturn_control_port_interface overrides
virtual UINT16 read_direct() override;
virtual UINT8 read_ctrl(UINT8 offset) override;
diff --git a/src/devices/bus/sat_ctrl/joy_md.cpp b/src/devices/bus/sat_ctrl/joy_md.cpp
index 4f2fc0fdf91..d88753c591b 100644
--- a/src/devices/bus/sat_ctrl/joy_md.cpp
+++ b/src/devices/bus/sat_ctrl/joy_md.cpp
@@ -119,4 +119,3 @@ UINT8 saturn_joymd6b_device::read_ctrl(UINT8 offset)
}
return res;
}
-
diff --git a/src/devices/bus/sat_ctrl/joy_md.h b/src/devices/bus/sat_ctrl/joy_md.h
index 2f178a413de..8c2505aad5e 100644
--- a/src/devices/bus/sat_ctrl/joy_md.h
+++ b/src/devices/bus/sat_ctrl/joy_md.h
@@ -35,7 +35,7 @@ protected:
// device-level overrides
virtual void device_start() override {};
virtual void device_reset() override {};
-
+
// device_saturn_control_port_interface overrides
virtual UINT8 read_ctrl(UINT8 offset) override;
virtual UINT8 read_status() override { return 0xf1; }
@@ -54,20 +54,20 @@ class saturn_joymd6b_device : public device_t,
public:
// construction/destruction
saturn_joymd6b_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
+
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
-
+
protected:
// device-level overrides
virtual void device_start() override {};
virtual void device_reset() override {};
-
+
// device_saturn_control_port_interface overrides
virtual UINT8 read_ctrl(UINT8 offset) override;
virtual UINT8 read_status() override { return 0xf1; }
virtual UINT8 read_id(int idx) override { return m_ctrl_id; }
-
+
private:
required_ioport m_joy;
};
diff --git a/src/devices/bus/sat_ctrl/keybd.cpp b/src/devices/bus/sat_ctrl/keybd.cpp
index 5c0f30f9948..54fa2d5722c 100644
--- a/src/devices/bus/sat_ctrl/keybd.cpp
+++ b/src/devices/bus/sat_ctrl/keybd.cpp
@@ -19,171 +19,171 @@ static INPUT_PORTS_START( saturn_joy )
// TODO: there's no info about the keycode used on Saturn keyboard, the following is trial & error with Game Basic software
PORT_START("KEY.0") // 0x00 - 0x07
PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_UNUSED)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F1") /*PORT_CODE(KEYCODE_F1)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x01)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("0-3") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x02)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F1") /*PORT_CODE(KEYCODE_F1)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x01)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("0-3") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x02)
PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F2") /*PORT_CODE(KEYCODE_F2)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x03) // RUN
PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F3") /*PORT_CODE(KEYCODE_F3)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x04) // LIST
PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F4") /*PORT_CODE(KEYCODE_F4)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x05) // EDIT
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F5") /*PORT_CODE(KEYCODE_F5)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x06)
- PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("CLR SCR") PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x07)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F5") /*PORT_CODE(KEYCODE_F5)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x06)
+ PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("CLR SCR") PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x07)
PORT_START("KEY.1") // 0x08 - 0x0f
- PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("1-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x08)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F6") /*PORT_CODE(KEYCODE_F6)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x09)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F7") /*PORT_CODE(KEYCODE_F7)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x0a)
- PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F8") /*PORT_CODE(KEYCODE_F8)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x0b)
+ PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("1-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x08)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F6") /*PORT_CODE(KEYCODE_F6)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x09)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F7") /*PORT_CODE(KEYCODE_F7)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x0a)
+ PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F8") /*PORT_CODE(KEYCODE_F8)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x0b)
PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F9") /*PORT_CODE(KEYCODE_F9)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x0c) // LIST again
- PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("1-6") /*PORT_CODE(KEYCODE_5) PORT_CHAR('5')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x0d)
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("1-7") /*PORT_CODE(KEYCODE_6) PORT_CHAR('6')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x0e)
- PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("1-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x0f)
+ PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("1-6") /*PORT_CODE(KEYCODE_5) PORT_CHAR('5')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x0d)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("1-7") /*PORT_CODE(KEYCODE_6) PORT_CHAR('6')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x0e)
+ PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("1-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x0f)
PORT_START("KEY.2") // 0x10 - 0x17
- PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("2-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x10)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("2-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x11)
+ PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("2-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x10)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("2-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x11)
/* TODO: break codes! */
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("SHIFT") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x12)
- PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("KANA SHIFT") /*PORT_CODE(KEYCODE_3) PORT_CHAR('3')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x13)
- PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("(special keys)") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x14)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("SHIFT") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x12)
+ PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("KANA SHIFT") /*PORT_CODE(KEYCODE_3) PORT_CHAR('3')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x13)
+ PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("(special keys)") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x14)
- PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x15)
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x16)
- PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("2-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x17)
+ PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x15)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x16)
+ PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("2-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x17)
PORT_START("KEY.3") // 0x18 - 0x1f
- PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("3-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x18)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("3-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x19)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x1a)
- PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x1b)
- PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x1c)
- PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x1d)
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x1e)
- PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("3-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x1f)
+ PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("3-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x18)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("3-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x19)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x1a)
+ PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x1b)
+ PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x1c)
+ PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x1d)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x1e)
+ PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("3-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x1f)
PORT_START("KEY.4") // 0x20 - 0x27
- PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("4-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x20)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x21)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x22)
- PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x23)
- PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x24)
- PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x25)
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x26)
- PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("4-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x27)
+ PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("4-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x20)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x21)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x22)
+ PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x23)
+ PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x24)
+ PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x25)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x26)
+ PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("4-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x27)
PORT_START("KEY.5") // 0x28 - 0x2f
PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("5-1") /*PORT_CODE(KEYCODE_F) PORT_CHAR('F')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x28) // another F?
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x29)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x2a)
- PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x2b)
- PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x2c)
- PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x2d)
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x2e)
- PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("5-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x2f)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x29)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x2a)
+ PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x2b)
+ PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x2c)
+ PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x2d)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x2e)
+ PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("5-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x2f)
PORT_START("KEY.6") // 0x30 - 0x37
- PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("6-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x30)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x31)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x32)
- PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x33)
- PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x34)
- PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x35)
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x36)
- PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("6-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x37)
+ PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("6-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x30)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x31)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x32)
+ PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x33)
+ PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x34)
+ PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x35)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x36)
+ PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("6-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x37)
PORT_START("KEY.7") // 0x38 - 0x3f
- PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("7-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x38)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("7-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x39)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x3a)
- PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('J') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x3b)
- PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('U') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x3c)
- PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x3d)
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x3e)
- PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("7-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x3f)
+ PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("7-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x38)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("7-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x39)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x3a)
+ PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('J') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x3b)
+ PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('U') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x3c)
+ PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x3d)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x3e)
+ PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("7-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x3f)
PORT_START("KEY.8") // 0x40 - 0x47
- PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("8-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x40)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME(",") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x41)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x42)
- PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('I') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x43)
- PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x44)
- PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x45)
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x46)
- PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("8-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x47)
+ PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("8-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x40)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME(",") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x41)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x42)
+ PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('I') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x43)
+ PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x44)
+ PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x45)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x46)
+ PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("8-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x47)
PORT_START("KEY.9") // 0x48 - 0x4f
- PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("9-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x48)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME(".") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x49)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("/") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x4a)
- PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x4b)
- PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME(";") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x4c)
- PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x4d)
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("- / =") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x4e)
- PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("9-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x4f)
+ PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("9-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x48)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME(".") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x49)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("/") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x4a)
+ PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x4b)
+ PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME(";") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x4c)
+ PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x4d)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("- / =") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x4e)
+ PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("9-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x4f)
PORT_START("KEY.10") // 0x50 - 0x57
- PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("A-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x50)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("\xC2\xA5") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x51)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME(":") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x52)
- PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("A-4") /*PORT_CODE(KEYCODE_3) PORT_CHAR('3')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x53)
- PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("@") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x54)
- PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("^") /*PORT_CODE(KEYCODE_5) PORT_CHAR(0xd)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x55)
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("A-7") /*PORT_CODE(KEYCODE_6) PORT_CHAR('6')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x56)
- PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("A-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x57)
+ PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("A-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x50)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("\xC2\xA5") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x51)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME(":") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x52)
+ PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("A-4") /*PORT_CODE(KEYCODE_3) PORT_CHAR('3')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x53)
+ PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("@") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x54)
+ PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("^") /*PORT_CODE(KEYCODE_5) PORT_CHAR(0xd)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x55)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("A-7") /*PORT_CODE(KEYCODE_6) PORT_CHAR('6')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x56)
+ PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("A-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x57)
PORT_START("KEY.11") // 0x58 - 0x5f
- PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("B-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x58)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("B-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x59)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(0x0d) PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x5a)
+ PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("B-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x58)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("B-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x59)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(0x0d) PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x5a)
PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("[") /*PORT_CODE(KEYCODE_3) PORT_CHAR('3')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x5b) // {
- PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("B-5") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x5c)
+ PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("B-5") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x5c)
PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("]") /*PORT_CODE(KEYCODE_5) PORT_CHAR(0xd)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x5d) // }
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("B-7") /*PORT_CODE(KEYCODE_6) PORT_CHAR('6')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x5e)
- PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("B-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x5f)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("B-7") /*PORT_CODE(KEYCODE_6) PORT_CHAR('6')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x5e)
+ PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("B-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x5f)
PORT_START("KEY.12") // 0x60 - 0x67
- PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x60)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x61)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C-3") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x62)
- PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C-4") /*PORT_CODE(KEYCODE_3) PORT_CHAR('3')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x63)
- PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C-5") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x64)
- PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C-6") /*PORT_CODE(KEYCODE_5) PORT_CHAR(0xd)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x65)
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("BACKSPACE") PORT_CODE(KEYCODE_BACKSPACE) /* PORT_CHAR('6')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x66)
- PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x67)
+ PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x60)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x61)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C-3") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x62)
+ PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C-4") /*PORT_CODE(KEYCODE_3) PORT_CHAR('3')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x63)
+ PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C-5") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x64)
+ PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C-6") /*PORT_CODE(KEYCODE_5) PORT_CHAR(0xd)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x65)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("BACKSPACE") PORT_CODE(KEYCODE_BACKSPACE) /* PORT_CHAR('6')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x66)
+ PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("C-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x67)
PORT_START("KEY.13") // 0x68 - 0x6f
- PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x68)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x69)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-3") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x6a)
- PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-4") /*PORT_CODE(KEYCODE_3) PORT_CHAR('3')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x6b)
- PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-5") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x6c)
- PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-6") /*PORT_CODE(KEYCODE_5) PORT_CHAR(0xd)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x6d)
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-7") /*PORT_CODE(KEYCODE_6) PORT_CHAR('6')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x6e)
- PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x6f)
+ PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x68)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x69)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-3") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x6a)
+ PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-4") /*PORT_CODE(KEYCODE_3) PORT_CHAR('3')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x6b)
+ PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-5") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x6c)
+ PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-6") /*PORT_CODE(KEYCODE_5) PORT_CHAR(0xd)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x6d)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-7") /*PORT_CODE(KEYCODE_6) PORT_CHAR('6')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x6e)
+ PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("D-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x6f)
PORT_START("KEY.14") // 0x70 - 0x77
- PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x70)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x71)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-3") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x72)
- PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-4") /*PORT_CODE(KEYCODE_3) PORT_CHAR('3')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x73)
- PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-5") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x74)
- PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-6") /*PORT_CODE(KEYCODE_5) PORT_CHAR(0xd)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x75)
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-7") /*PORT_CODE(KEYCODE_6) PORT_CHAR('6')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x76)
- PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x77)
+ PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x70)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x71)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-3") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x72)
+ PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-4") /*PORT_CODE(KEYCODE_3) PORT_CHAR('3')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x73)
+ PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-5") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x74)
+ PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-6") /*PORT_CODE(KEYCODE_5) PORT_CHAR(0xd)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x75)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-7") /*PORT_CODE(KEYCODE_6) PORT_CHAR('6')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x76)
+ PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("E-8") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x77)
PORT_START("KEY.15") // 0x78 - 0x7f
- PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x78)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x79)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F-3") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x7a)
- PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F-4") /*PORT_CODE(KEYCODE_3) PORT_CHAR('3')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x7b)
- PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F-5") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x7c)
- PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F-6") /*PORT_CODE(KEYCODE_5) PORT_CHAR(0xd)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x7d)
- PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F-7") /*PORT_CODE(KEYCODE_6) PORT_CHAR('6')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x7e)
+ PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F-1") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x78)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F-2") /*PORT_CODE(KEYCODE_1) PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x79)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F-3") /*PORT_CODE(KEYCODE_2) PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x7a)
+ PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F-4") /*PORT_CODE(KEYCODE_3) PORT_CHAR('3')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x7b)
+ PORT_BIT(0x10,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F-5") /*PORT_CODE(KEYCODE_4) PORT_CHAR('4')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x7c)
+ PORT_BIT(0x20,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F-6") /*PORT_CODE(KEYCODE_5) PORT_CHAR(0xd)*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x7d)
+ PORT_BIT(0x40,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("F-7") /*PORT_CODE(KEYCODE_6) PORT_CHAR('6')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x7e)
PORT_BIT(0x80,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("ESC") /*PORT_CODE(KEYCODE_7) PORT_CHAR('7')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x7f) //SYSTEM CONFIGURATION
PORT_START("KEYS_1") // special keys
- PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) /*PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x78)
- PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) /*PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x79)
- PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) /*PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x7a)
- PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) /*PORT_CHAR('3')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x7b)
+ PORT_BIT(0x01,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) /*PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x78)
+ PORT_BIT(0x02,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) /*PORT_CHAR('1')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x79)
+ PORT_BIT(0x04,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) /*PORT_CHAR('2')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x7a)
+ PORT_BIT(0x08,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) /*PORT_CHAR('3')*/ PORT_CHANGED_MEMBER(DEVICE_SELF, saturn_keybd_device, key_stroke, 0x7b)
INPUT_PORTS_END
@@ -253,7 +253,7 @@ INPUT_CHANGED_MEMBER(saturn_keybd_device::key_stroke)
m_data = ((UINT8)(FPTR)(param) & 0xff);
m_status |= 8;
}
-
+
if(oldval && !newval)
{
//m_status &= ~8;
@@ -264,7 +264,7 @@ INPUT_CHANGED_MEMBER(saturn_keybd_device::key_stroke)
UINT16 saturn_keybd_device::get_game_key()
{
UINT16 game_key = 0xffff;
-
+
game_key ^= ((m_key_s1->read() & 0x80) << 8); // right
game_key ^= ((m_key_s1->read() & 0x40) << 8); // left
game_key ^= ((m_key_s1->read() & 0x20) << 8); // down
@@ -329,4 +329,3 @@ UINT8 saturn_keybd_device::read_ctrl(UINT8 offset)
}
return res;
}
-
diff --git a/src/devices/bus/sat_ctrl/keybd.h b/src/devices/bus/sat_ctrl/keybd.h
index f2cb5d14ba2..314e87bf118 100644
--- a/src/devices/bus/sat_ctrl/keybd.h
+++ b/src/devices/bus/sat_ctrl/keybd.h
@@ -30,14 +30,14 @@ public:
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
-
+
DECLARE_INPUT_CHANGED_MEMBER(key_stroke);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
-
+
// device_saturn_control_port_interface overrides
virtual UINT8 read_ctrl(UINT8 offset) override;
virtual UINT8 read_status() override { return 0xf1; }
@@ -48,9 +48,9 @@ private:
UINT8 m_data;
UINT8 m_prev_data;
UINT16 m_repeat_count;
-
+
UINT16 get_game_key();
-
+
required_ioport_array<16> m_key;
required_ioport m_key_s1;
};
diff --git a/src/devices/bus/sat_ctrl/mouse.cpp b/src/devices/bus/sat_ctrl/mouse.cpp
index a0ef74824b9..45ac96ea6d2 100644
--- a/src/devices/bus/sat_ctrl/mouse.cpp
+++ b/src/devices/bus/sat_ctrl/mouse.cpp
@@ -3,8 +3,8 @@
/**********************************************************************
Sega Saturn Mouse emulation
-
- This is basically the same as a pointing controller, but it uses a different ID
+
+ This is basically the same as a pointing controller, but it uses a different ID
**********************************************************************/
@@ -89,16 +89,16 @@ UINT8 saturn_mouse_device::read_ctrl(UINT8 offset)
UINT8 mouse_ctrl = m_buttons->read();
INT16 mouse_x = m_pointx->read();
INT16 mouse_y = m_pointy->read();
-
+
if (mouse_x < 0)
mouse_ctrl |= 0x10;
-
+
if (mouse_y < 0)
mouse_ctrl |= 0x20;
-
+
if ((mouse_x & 0xff00) != 0xff00 && (mouse_x & 0xff00) != 0x0000)
mouse_ctrl |= 0x40;
-
+
if ((mouse_y & 0xff00) != 0xff00 && (mouse_y & 0xff00) != 0x0000)
mouse_ctrl |= 0x80;
@@ -117,4 +117,3 @@ UINT8 saturn_mouse_device::read_ctrl(UINT8 offset)
}
return res;
}
-
diff --git a/src/devices/bus/sat_ctrl/mouse.h b/src/devices/bus/sat_ctrl/mouse.h
index f0ea613f8e3..87e1d847e8c 100644
--- a/src/devices/bus/sat_ctrl/mouse.h
+++ b/src/devices/bus/sat_ctrl/mouse.h
@@ -35,7 +35,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
-
+
// device_saturn_control_port_interface overrides
virtual UINT8 read_ctrl(UINT8 offset) override;
virtual UINT8 read_status() override { return 0xf1; }
diff --git a/src/devices/bus/sat_ctrl/multitap.h b/src/devices/bus/sat_ctrl/multitap.h
index 2d48ff478c8..acc8f109e3e 100644
--- a/src/devices/bus/sat_ctrl/multitap.h
+++ b/src/devices/bus/sat_ctrl/multitap.h
@@ -29,15 +29,15 @@ class saturn_multitap_device : public device_t,
public:
// construction/destruction
saturn_multitap_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
+
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
-
+
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
-
+
// device_saturn_control_port_interface overrides
virtual UINT8 read_ctrl(UINT8 offset) override;
virtual UINT8 read_status() override { return 0x16; }
diff --git a/src/devices/bus/sat_ctrl/pointer.cpp b/src/devices/bus/sat_ctrl/pointer.cpp
index cfc2bbfc3b2..9762286dbbe 100644
--- a/src/devices/bus/sat_ctrl/pointer.cpp
+++ b/src/devices/bus/sat_ctrl/pointer.cpp
@@ -3,8 +3,8 @@
/**********************************************************************
Sega Saturn Pointing Controller / Trackball emulation
-
- This is basically the same as a mouse, but it uses a different ID
+
+ This is basically the same as a mouse, but it uses a different ID
**********************************************************************/
@@ -89,16 +89,16 @@ UINT8 saturn_track_device::read_ctrl(UINT8 offset)
UINT8 mouse_ctrl = m_buttons->read();
INT16 mouse_x = m_pointx->read();
INT16 mouse_y = m_pointy->read();
-
+
if (mouse_x < 0)
mouse_ctrl |= 0x10;
-
+
if (mouse_y < 0)
mouse_ctrl |= 0x20;
-
+
if ((mouse_x & 0xff00) != 0xff00 && (mouse_x & 0xff00) != 0x0000)
mouse_ctrl |= 0x40;
-
+
if ((mouse_y & 0xff00) != 0xff00 && (mouse_y & 0xff00) != 0x0000)
mouse_ctrl |= 0x80;
@@ -117,4 +117,3 @@ UINT8 saturn_track_device::read_ctrl(UINT8 offset)
}
return res;
}
-
diff --git a/src/devices/bus/sat_ctrl/pointer.h b/src/devices/bus/sat_ctrl/pointer.h
index e71cc9c898c..9b9a8986a3f 100644
--- a/src/devices/bus/sat_ctrl/pointer.h
+++ b/src/devices/bus/sat_ctrl/pointer.h
@@ -35,7 +35,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
-
+
// device_saturn_control_port_interface overrides
virtual UINT8 read_ctrl(UINT8 offset) override;
virtual UINT8 read_status() override { return 0xf1; }
diff --git a/src/devices/bus/sat_ctrl/racing.cpp b/src/devices/bus/sat_ctrl/racing.cpp
index 9e7a3e89f2f..0f86c6d3d23 100644
--- a/src/devices/bus/sat_ctrl/racing.cpp
+++ b/src/devices/bus/sat_ctrl/racing.cpp
@@ -106,4 +106,3 @@ UINT8 saturn_wheel_device::read_ctrl(UINT8 offset)
}
return res;
}
-
diff --git a/src/devices/bus/sat_ctrl/racing.h b/src/devices/bus/sat_ctrl/racing.h
index cc1e8019b1d..3edb9658d34 100644
--- a/src/devices/bus/sat_ctrl/racing.h
+++ b/src/devices/bus/sat_ctrl/racing.h
@@ -35,7 +35,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
-
+
// device_saturn_control_port_interface overrides
virtual UINT8 read_ctrl(UINT8 offset) override;
virtual UINT8 read_status() override { return 0xf1; }
diff --git a/src/devices/bus/sat_ctrl/segatap.h b/src/devices/bus/sat_ctrl/segatap.h
index 443175ebc33..149fb05f551 100644
--- a/src/devices/bus/sat_ctrl/segatap.h
+++ b/src/devices/bus/sat_ctrl/segatap.h
@@ -29,15 +29,15 @@ class saturn_segatap_device : public device_t,
public:
// construction/destruction
saturn_segatap_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
+
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
-
+
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
-
+
// device_saturn_control_port_interface overrides
virtual UINT8 read_ctrl(UINT8 offset) override;
virtual UINT8 read_status() override { return 0x04; }
diff --git a/src/devices/cpu/drcbex64.cpp b/src/devices/cpu/drcbex64.cpp
index a8fea0ed27e..8d7e852b66c 100644
--- a/src/devices/cpu/drcbex64.cpp
+++ b/src/devices/cpu/drcbex64.cpp
@@ -6756,21 +6756,20 @@ void drcbe_x64::op_fcopyi(x86code *&dst, const instruction &inst)
{
if (dstp.is_memory())
{
- emit_mov_p32_r32(dst, dstp, srcp.ireg()); // mov dstp,srcp
+ emit_mov_p32_r32(dst, dstp, srcp.ireg()); // mov dstp,srcp
}
else
{
- emit_movd_r128_r32(dst, dstreg, srcp.ireg()); // movd dstreg,srcp
- emit_movss_p32_r128(dst, dstp, dstreg); // movss dstp,dstreg
+ emit_movd_r128_r32(dst, dstreg, srcp.ireg()); // movd dstreg,srcp
+ emit_movss_p32_r128(dst, dstp, dstreg); // movss dstp,dstreg
}
}
-
+
}
// 64-bit form
else if (inst.size() == 8)
{
-
if (srcp.is_memory())
{
emit_movq_r128_m64(dst, dstreg, MABS(srcp.memory())); // movq dstreg,[srcp]
@@ -6780,12 +6779,12 @@ void drcbe_x64::op_fcopyi(x86code *&dst, const instruction &inst)
{
if (dstp.is_memory())
{
- emit_mov_p64_r64(dst, dstp, srcp.ireg()); // mov dstp,srcp
+ emit_mov_p64_r64(dst, dstp, srcp.ireg()); // mov dstp,srcp
}
else
{
- emit_movq_r128_r64(dst, dstreg, srcp.ireg()); // movq dstreg,srcp
- emit_movsd_p64_r128(dst, dstp, dstreg); // movsd dstp,dstreg
+ emit_movq_r128_r64(dst, dstreg, srcp.ireg()); // movq dstreg,srcp
+ emit_movsd_p64_r128(dst, dstp, dstreg); // movsd dstp,dstreg
}
}
@@ -6821,13 +6820,13 @@ void drcbe_x64::op_icopyf(x86code *&dst, const instruction &inst)
{
if (dstp.is_memory())
{
- emit_movd_m32_r128(dst, MABS(dstp.memory()), srcp.freg()); // movd dstp,srcp
+ emit_movd_m32_r128(dst, MABS(dstp.memory()), srcp.freg()); // movd dstp,srcp
}
else
{
- emit_movd_r32_r128(dst, dstp.ireg(), srcp.freg()); // movd dstp,srcp
+ emit_movd_r32_r128(dst, dstp.ireg(), srcp.freg()); // movd dstp,srcp
}
- }
+ }
}
// 64-bit form
@@ -6843,12 +6842,12 @@ void drcbe_x64::op_icopyf(x86code *&dst, const instruction &inst)
{
if (dstp.is_memory())
{
- emit_movq_m64_r128(dst, MABS(dstp.memory()), srcp.freg()); // movq dstp,srcp
+ emit_movq_m64_r128(dst, MABS(dstp.memory()), srcp.freg()); // movq dstp,srcp
}
else
{
- emit_movq_r64_r128(dst, dstp.ireg(), srcp.freg()); // movq dstp,srcp
+ emit_movq_r64_r128(dst, dstp.ireg(), srcp.freg()); // movq dstp,srcp
}
}
}
-}
\ No newline at end of file
+}
diff --git a/src/devices/cpu/drcbex86.cpp b/src/devices/cpu/drcbex86.cpp
index 4ff6a90774b..478e9f08bc0 100644
--- a/src/devices/cpu/drcbex86.cpp
+++ b/src/devices/cpu/drcbex86.cpp
@@ -272,8 +272,8 @@ const drcbe_x86::opcode_table_entry drcbe_x86::s_opcode_table_source[] =
{ uml::OP_FSQRT, &drcbe_x86::op_fsqrt }, // FSQRT dst,src1
{ uml::OP_FRECIP, &drcbe_x86::op_frecip }, // FRECIP dst,src1
{ uml::OP_FRSQRT, &drcbe_x86::op_frsqrt }, // FRSQRT dst,src1
- { uml::OP_FCOPYI, &drcbe_x86::op_fcopyi }, // FCOPYI dst,src
- { uml::OP_ICOPYF, &drcbe_x86::op_icopyf }, // ICOPYF dst,src
+ { uml::OP_FCOPYI, &drcbe_x86::op_fcopyi }, // FCOPYI dst,src
+ { uml::OP_ICOPYF, &drcbe_x86::op_icopyf }, // ICOPYF dst,src
};
@@ -6471,12 +6471,12 @@ void drcbe_x86::op_fcopyi(x86code *&dst, const instruction &inst)
{
if (srcp.is_memory())
{
- emit_mov_r32_m32(dst, REG_EAX, MABS(srcp.memory())); // mov eax,[srcp]
- emit_mov_m32_r32(dst, MABS(dstp.memory()), REG_EAX); // mov [dstp],eax
+ emit_mov_r32_m32(dst, REG_EAX, MABS(srcp.memory())); // mov eax,[srcp]
+ emit_mov_m32_r32(dst, MABS(dstp.memory()), REG_EAX); // mov [dstp],eax
}
else if (srcp.is_int_register())
{
- emit_mov_m32_r32(dst, MABS(dstp.memory()), srcp.ireg()); // mov [dstp],srcp
+ emit_mov_m32_r32(dst, MABS(dstp.memory()), srcp.ireg()); // mov [dstp],srcp
}
}
@@ -6485,17 +6485,17 @@ void drcbe_x86::op_fcopyi(x86code *&dst, const instruction &inst)
{
if (srcp.is_memory())
{
- emit_mov_r32_m32(dst, REG_EAX, MABS(srcp.memory())); // mov eax,[srcp]
- emit_mov_r32_m32(dst, REG_EDX, MABS(srcp.memory(4))); // mov edx,[srcp+4]
+ emit_mov_r32_m32(dst, REG_EAX, MABS(srcp.memory())); // mov eax,[srcp]
+ emit_mov_r32_m32(dst, REG_EDX, MABS(srcp.memory(4))); // mov edx,[srcp+4]
}
else if (srcp.is_int_register())
{
- emit_mov_r32_m32(dst, REG_EDX, MABS(m_reghi[srcp.ireg()])); // mov edx,[reghi[srcp]]
- emit_mov_r32_r32(dst, REG_EAX, srcp.ireg()); // mov eax,srcp
+ emit_mov_r32_m32(dst, REG_EDX, MABS(m_reghi[srcp.ireg()])); // mov edx,[reghi[srcp]]
+ emit_mov_r32_r32(dst, REG_EAX, srcp.ireg()); // mov eax,srcp
}
- emit_mov_m32_r32(dst, MABS(dstp.memory()), REG_EAX); // mov [dstp],eax
- emit_mov_m32_r32(dst, MABS(dstp.memory(4)), REG_EDX); // mov [dstp+4],edx
+ emit_mov_m32_r32(dst, MABS(dstp.memory()), REG_EAX); // mov [dstp],eax
+ emit_mov_m32_r32(dst, MABS(dstp.memory(4)), REG_EDX); // mov [dstp+4],edx
}
}
@@ -6518,33 +6518,33 @@ void drcbe_x86::op_icopyf(x86code *&dst, const instruction &inst)
// 32-bit case
if (inst.size() == 4)
{
- emit_mov_r32_m32(dst, REG_EAX, MABS(srcp.memory())); // mov eax,[srcp]
+ emit_mov_r32_m32(dst, REG_EAX, MABS(srcp.memory())); // mov eax,[srcp]
if (dstp.is_memory())
{
- emit_mov_m32_r32(dst, MABS(dstp.memory()), REG_EAX); // mov [dstp],eax
+ emit_mov_m32_r32(dst, MABS(dstp.memory()), REG_EAX); // mov [dstp],eax
}
else if (dstp.is_int_register())
{
- emit_mov_r32_r32(dst, dstp.ireg(), REG_EAX); // mov dstp,eax
+ emit_mov_r32_r32(dst, dstp.ireg(), REG_EAX); // mov dstp,eax
}
}
// 64-bit case
else if (inst.size() == 8)
{
- emit_mov_r32_m32(dst, REG_EAX, MABS(srcp.memory())); // mov eax,[srcp]
- emit_mov_r32_m32(dst, REG_EDX, MABS(srcp.memory(4))); // mov edx,[srcp+4]
+ emit_mov_r32_m32(dst, REG_EAX, MABS(srcp.memory())); // mov eax,[srcp]
+ emit_mov_r32_m32(dst, REG_EDX, MABS(srcp.memory(4))); // mov edx,[srcp+4]
if (dstp.is_memory())
{
- emit_mov_m32_r32(dst, MABS(dstp.memory()), REG_EAX); // mov [dstp],eax
- emit_mov_m32_r32(dst, MABS(dstp.memory(4)), REG_EDX); // mov [dstp+4],edx
+ emit_mov_m32_r32(dst, MABS(dstp.memory()), REG_EAX); // mov [dstp],eax
+ emit_mov_m32_r32(dst, MABS(dstp.memory(4)), REG_EDX); // mov [dstp+4],edx
}
else
{
- emit_mov_m32_r32(dst, MABS(m_reghi[dstp.ireg()]), REG_EDX); // mov [reghi[dstp]],edx
- emit_mov_r32_r32(dst, dstp.ireg(), REG_EAX); // mov dstp,eax
+ emit_mov_m32_r32(dst, MABS(m_reghi[dstp.ireg()]), REG_EDX); // mov [reghi[dstp]],edx
+ emit_mov_r32_r32(dst, dstp.ireg(), REG_EAX); // mov dstp,eax
}
}
}
diff --git a/src/devices/cpu/hphybrid/hphybrid.cpp b/src/devices/cpu/hphybrid/hphybrid.cpp
index da9470a91ae..62b406c1d28 100644
--- a/src/devices/cpu/hphybrid/hphybrid.cpp
+++ b/src/devices/cpu/hphybrid/hphybrid.cpp
@@ -534,7 +534,7 @@ UINT16 hp_hybrid_cpu_device::execute_one_sub(UINT16 opcode)
memmove(&m_reg_PA[ 0 ] , &m_reg_PA[ 1 ] , HPHYBRID_INT_LVLS);
m_pa_changed_func((UINT8)CURRENT_PA);
}
- BIT_CLR(m_flags, HPHYBRID_IM_BIT);
+ BIT_CLR(m_flags, HPHYBRID_IM_BIT);
}
tmp = RM(AEC_CASE_C , m_reg_R--) + (opcode & 0x1f);
return BIT(opcode , 5) ? tmp - 0x20 : tmp;
@@ -903,17 +903,17 @@ UINT16 hp_hybrid_cpu_device::get_skip_addr_sc(UINT16 opcode , UINT16& v , unsign
UINT16 hp_hybrid_cpu_device::get_skip_addr_sc(UINT16 opcode , UINT32& v , unsigned n)
{
- bool val = BIT(v , n);
+ bool val = BIT(v , n);
- if (BIT(opcode , 7)) {
- if (BIT(opcode , 6)) {
- BIT_SET(v , n);
- } else {
- BIT_CLR(v , n);
- }
- }
+ if (BIT(opcode , 7)) {
+ if (BIT(opcode , 6)) {
+ BIT_SET(v , n);
+ } else {
+ BIT_CLR(v , n);
+ }
+ }
- return get_skip_addr(opcode , val);
+ return get_skip_addr(opcode , val);
}
void hp_hybrid_cpu_device::do_pw(UINT16 opcode)
@@ -1007,7 +1007,7 @@ void hp_hybrid_cpu_device::do_pw(UINT16 opcode)
void hp_hybrid_cpu_device::check_for_interrupts(void)
{
- if (!BIT(m_flags , HPHYBRID_INTEN_BIT) || BIT(m_flags , HPHYBRID_IRH_SVC_BIT) || BIT(m_flags , HPHYBRID_IM_BIT)) {
+ if (!BIT(m_flags , HPHYBRID_INTEN_BIT) || BIT(m_flags , HPHYBRID_IRH_SVC_BIT) || BIT(m_flags , HPHYBRID_IM_BIT)) {
return;
}
@@ -1017,9 +1017,9 @@ void hp_hybrid_cpu_device::check_for_interrupts(void)
// Service high-level interrupt
BIT_SET(m_flags , HPHYBRID_IRH_SVC_BIT);
irqline = HPHYBRID_IRH;
- if (BIT(m_flags , HPHYBRID_IRL_SVC_BIT)) {
- logerror("H pre-empted L @ %06x\n" , m_genpc);
- }
+ if (BIT(m_flags , HPHYBRID_IRL_SVC_BIT)) {
+ logerror("H pre-empted L @ %06x\n" , m_genpc);
+ }
} else if (BIT(m_flags , HPHYBRID_IRL_BIT) && !BIT(m_flags , HPHYBRID_IRL_SVC_BIT)) {
// Service low-level interrupt
BIT_SET(m_flags , HPHYBRID_IRL_SVC_BIT);
@@ -1055,8 +1055,8 @@ void hp_hybrid_cpu_device::check_for_interrupts(void)
// lasts for 32 cycles
m_icount -= 32;
- // Allow special processing in 5061-3001
- enter_isr();
+ // Allow special processing in 5061-3001
+ enter_isr();
// Do a double-indirect JSM IV,I instruction
WM(AEC_CASE_C , ++m_reg_R , m_reg_P);
@@ -1066,7 +1066,7 @@ void hp_hybrid_cpu_device::check_for_interrupts(void)
void hp_hybrid_cpu_device::enter_isr(void)
{
- // Do nothing special
+ // Do nothing special
}
void hp_hybrid_cpu_device::handle_dma(void)
@@ -1477,33 +1477,33 @@ UINT16 hp_5061_3001_cpu_device::execute_no_bpc_ioc(UINT16 opcode)
do_mpy();
break;
- case 0x7026:
- // CIM
- // Undocumented instruction, see beginning of this file
- // Probably "Clear Interrupt Mask"
- // No idea at all about exec. time: make it 9 cycles
- m_icount -= 9;
+ case 0x7026:
+ // CIM
+ // Undocumented instruction, see beginning of this file
+ // Probably "Clear Interrupt Mask"
+ // No idea at all about exec. time: make it 9 cycles
+ m_icount -= 9;
#ifndef NO_ISR_WITH_IM_CLEARED
- BIT_CLR(m_flags, HPHYBRID_IM_BIT);
+ BIT_CLR(m_flags, HPHYBRID_IM_BIT);
#else
- BIT_SET(m_flags, HPHYBRID_IM_BIT);
+ BIT_SET(m_flags, HPHYBRID_IM_BIT);
#endif
- logerror("hp-5061-3001: CIM, P = %06x flags = %05x\n" , m_genpc , m_flags);
- break;
+ logerror("hp-5061-3001: CIM, P = %06x flags = %05x\n" , m_genpc , m_flags);
+ break;
- case 0x7027:
- // SIM
- // Undocumented instruction, see beginning of this file
- // Probably "Set Interrupt Mask"
- // No idea at all about exec. time: make it 9 cycles
- m_icount -= 9;
+ case 0x7027:
+ // SIM
+ // Undocumented instruction, see beginning of this file
+ // Probably "Set Interrupt Mask"
+ // No idea at all about exec. time: make it 9 cycles
+ m_icount -= 9;
#ifndef NO_ISR_WITH_IM_CLEARED
- BIT_SET(m_flags, HPHYBRID_IM_BIT);
+ BIT_SET(m_flags, HPHYBRID_IM_BIT);
#else
- BIT_CLR(m_flags, HPHYBRID_IM_BIT);
+ BIT_CLR(m_flags, HPHYBRID_IM_BIT);
#endif
- logerror("hp-5061-3001: SIM, P = %06x flags = %05x\n" , m_genpc , m_flags);
- break;
+ logerror("hp-5061-3001: SIM, P = %06x flags = %05x\n" , m_genpc , m_flags);
+ break;
default:
if ((opcode & 0xfec0) == 0x74c0) {
@@ -1655,9 +1655,9 @@ void hp_5061_3001_cpu_device::write_non_common_reg(UINT16 addr , UINT16 v)
void hp_5061_3001_cpu_device::enter_isr(void)
{
- // Set interrupt mask when entering an ISR
+ // Set interrupt mask when entering an ISR
#ifndef NO_ISR_WITH_IM_CLEARED
- BIT_SET(m_flags, HPHYBRID_IM_BIT);
+ BIT_SET(m_flags, HPHYBRID_IM_BIT);
#endif
}
diff --git a/src/devices/cpu/hphybrid/hphybrid.h b/src/devices/cpu/hphybrid/hphybrid.h
index d61785cb146..e0cfbc893d4 100644
--- a/src/devices/cpu/hphybrid/hphybrid.h
+++ b/src/devices/cpu/hphybrid/hphybrid.h
@@ -182,7 +182,7 @@ private:
UINT16 get_skip_addr_sc(UINT16 opcode , UINT32& v , unsigned n);
void do_pw(UINT16 opcode);
void check_for_interrupts(void);
- virtual void enter_isr(void);
+ virtual void enter_isr(void);
void handle_dma(void);
UINT16 RIO(UINT8 pa , UINT8 ic);
@@ -228,7 +228,7 @@ private:
UINT16 m_reg_r27; // R27 register
UINT16 m_reg_aec[ HP_REG_R37_ADDR - HP_REG_R32_ADDR + 1 ]; // AEC registers R32-R37
- virtual void enter_isr(void) override;
+ virtual void enter_isr(void) override;
};
class hp_5061_3011_cpu_device : public hp_hybrid_cpu_device
diff --git a/src/devices/cpu/hphybrid/hphybrid_dasm.cpp b/src/devices/cpu/hphybrid/hphybrid_dasm.cpp
index 78b586f2310..869cbb0f32b 100644
--- a/src/devices/cpu/hphybrid/hphybrid_dasm.cpp
+++ b/src/devices/cpu/hphybrid/hphybrid_dasm.cpp
@@ -355,9 +355,9 @@ static const dis_entry_t dis_table_emc[] = {
{0xffff , 0x7b40 , "MRY" , param_none , 0 },
{0xffff , 0x7b61 , "MLY" , param_none , 0 },
{0xffff , 0x7b8f , "MPY" , param_none , 0 },
- // *** Undocumented instructions of 5061-3001 ***
- {0xffff , 0x7026 , "CIM" , param_none , 0 },
- {0xffff , 0x7027 , "SIM" , param_none , 0 },
+ // *** Undocumented instructions of 5061-3001 ***
+ {0xffff , 0x7026 , "CIM" , param_none , 0 },
+ {0xffff , 0x7027 , "SIM" , param_none , 0 },
// *** END ***
{0 , 0 , nullptr , nullptr , 0 }
};
diff --git a/src/devices/cpu/mips/mips3drc.cpp b/src/devices/cpu/mips/mips3drc.cpp
index efcda7dbfa5..c7b2499b9e5 100644
--- a/src/devices/cpu/mips/mips3drc.cpp
+++ b/src/devices/cpu/mips/mips3drc.cpp
@@ -48,7 +48,7 @@ using namespace uml;
#define HI32 R32(REG_HI)
#define CPR032(reg) mem(LOPTR(&m_core->cpr[0][reg]))
#define CCR032(reg) mem(LOPTR(&m_core->ccr[0][reg]))
-#define FPR32_FR0(reg) mem(&((float *)&m_core->cpr[1][reg])[BYTE_XOR_LE(0)])
+#define FPR32_FR0(reg) mem(&((float *)&m_core->cpr[1][reg])[BYTE_XOR_LE(0)])
#define CCR132(reg) mem(LOPTR(&m_core->ccr[1][reg]))
#define CPR232(reg) mem(LOPTR(&m_core->cpr[2][reg]))
#define CCR232(reg) mem(LOPTR(&m_core->ccr[2][reg]))
@@ -58,7 +58,7 @@ using namespace uml;
#define HI64 R64(REG_HI)
#define CPR064(reg) mem(&m_core->cpr[0][reg])
#define CCR064(reg) mem(&m_core->ccr[0][reg])
-#define FPR64_FR1(reg) mem((double *)&m_core->cpr[1][reg])
+#define FPR64_FR1(reg) mem((double *)&m_core->cpr[1][reg])
#define CCR164(reg) mem(&m_core->ccr[1][reg])
#define CPR264(reg) mem(&m_core->cpr[2][reg])
#define CCR264(reg) mem(&m_core->ccr[2][reg])
@@ -1635,18 +1635,18 @@ int mips3_device::generate_opcode(drcuml_block *block, compiler_state *compiler,
return TRUE;
case 0x1b: /* LDR - MIPS III */
- UML_ADD(block, I0, R32(RSREG), SIMMVAL); // add i0,,SIMMVAL
- UML_SHL(block, I1, I0, 3); // shl i1,i0,3
- UML_AND(block, I0, I0, ~7); // and i0,i0,~7
+ UML_ADD(block, I0, R32(RSREG), SIMMVAL); // add i0,,SIMMVAL
+ UML_SHL(block, I1, I0, 3); // shl i1,i0,3
+ UML_AND(block, I0, I0, ~7); // and i0,i0,~7
if (m_bigendian)
- UML_XOR(block, I1, I1, 0x38); // xor i1,i1,0x38
- UML_DSHL(block, I2, (UINT64)~0, I1); // dshl i2,~0,i1
- UML_CALLH(block, *m_read64mask[m_core->mode >> 1]); // callh read64mask
+ UML_XOR(block, I1, I1, 0x38); // xor i1,i1,0x38
+ UML_DSHL(block, I2, (UINT64)~0, I1); // dshl i2,~0,i1
+ UML_CALLH(block, *m_read64mask[m_core->mode >> 1]); // callh read64mask
if (RTREG != 0)
{
- UML_DSHR(block, I2, (UINT64)~0, I1); // dshr i2,~0,i1
- UML_SUB(block, I1, 64, I1); // sub i1,64,i1
- UML_DROLINS(block, R64(RTREG), I0, I1, I2); // drolins ,i0,i1,i2
+ UML_DSHR(block, I2, (UINT64)~0, I1); // dshr i2,~0,i1
+ UML_SUB(block, I1, 64, I1); // sub i1,64,i1
+ UML_DROLINS(block, R64(RTREG), I0, I1, I2); // drolins ,i0,i1,i2
}
if (!in_delay_slot)
generate_update_cycles(block, compiler, desc->pc + 4, TRUE);
@@ -1654,17 +1654,17 @@ int mips3_device::generate_opcode(drcuml_block *block, compiler_state *compiler,
case 0x31: /* LWC1 - MIPS I */
check_cop1_access(block);
- UML_ADD(block, I0, R32(RSREG), SIMMVAL); // add i0,,SIMMVAL
- UML_CALLH(block, *m_read32[m_core->mode >> 1]); // callh read32
- UML_MOV(block, FPR32_FR0(RTREG), I0); // mov ,i0
+ UML_ADD(block, I0, R32(RSREG), SIMMVAL); // add i0,,SIMMVAL
+ UML_CALLH(block, *m_read32[m_core->mode >> 1]); // callh read32
+ UML_MOV(block, FPR32_FR0(RTREG), I0); // mov ,i0
if (!in_delay_slot)
generate_update_cycles(block, compiler, desc->pc + 4, TRUE);
return TRUE;
case 0x35: /* LDC1 - MIPS III */
check_cop1_access(block);
- UML_ADD(block, I0, R32(RSREG), SIMMVAL); // add i0,,SIMMVAL
- UML_CALLH(block, *m_read64[m_core->mode >> 1]); // callh read64
+ UML_ADD(block, I0, R32(RSREG), SIMMVAL); // add i0,,SIMMVAL
+ UML_CALLH(block, *m_read64[m_core->mode >> 1]); // callh read64
generate_set_cop1_reg64_i2d(block, compiler, desc, RTREG, I0);
if (!in_delay_slot)
generate_update_cycles(block, compiler, desc->pc + 4, TRUE);
@@ -1727,7 +1727,7 @@ int mips3_device::generate_opcode(drcuml_block *block, compiler_state *compiler,
case 0x3f: /* SD - MIPS III */
UML_ADD(block, I0, R32(RSREG), SIMMVAL); // add i0,,SIMMVAL
- UML_DMOV(block, I1, R64(RTREG)); // dmov i1,
+ UML_DMOV(block, I1, R64(RTREG)); // dmov i1,
UML_CALLH(block, *m_write64[m_core->mode >> 1]); // callh write64
if (!in_delay_slot)
generate_update_cycles(block, compiler, desc->pc + 4, TRUE);
@@ -1776,14 +1776,14 @@ int mips3_device::generate_opcode(drcuml_block *block, compiler_state *compiler,
return TRUE;
case 0x2c: /* SDL - MIPS III */
- UML_ADD(block, I0, R32(RSREG), SIMMVAL); // add i0,,SIMMVAL
- UML_SHL(block, I3, I0, 3); // shl i3,i0,3
- UML_AND(block, I0, I0, ~7); // and i0,i0,~7
- UML_DMOV(block, I1, R64(RTREG)); // dmov i1,
+ UML_ADD(block, I0, R32(RSREG), SIMMVAL); // add i0,,SIMMVAL
+ UML_SHL(block, I3, I0, 3); // shl i3,i0,3
+ UML_AND(block, I0, I0, ~7); // and i0,i0,~7
+ UML_DMOV(block, I1, R64(RTREG)); // dmov i1,
if (!m_bigendian)
- UML_XOR(block, I3, I3, 0x38); // xor i3,i3,0x38
- UML_DSHR(block, I2, (UINT64)~0, I3); // dshr i2,~0,i3
- UML_DSHR(block, I1, I1, I3); // dshr i1,i1,i3
+ UML_XOR(block, I3, I3, 0x38); // xor i3,i3,0x38
+ UML_DSHR(block, I2, (UINT64)~0, I3); // dshr i2,~0,i3
+ UML_DSHR(block, I1, I1, I3); // dshr i1,i1,i3
UML_CALLH(block, *m_write64mask[m_core->mode >> 1]);// callh write64mask
if (!in_delay_slot)
@@ -1791,14 +1791,14 @@ int mips3_device::generate_opcode(drcuml_block *block, compiler_state *compiler,
return TRUE;
case 0x2d: /* SDR - MIPS III */
- UML_ADD(block, I0, R32(RSREG), SIMMVAL); // add i0,,SIMMVAL
- UML_SHL(block, I3, I0, 3); // shl i3,i0,3
- UML_AND(block, I0, I0, ~7); // and i0,i0,~7
- UML_DMOV(block, I1, R64(RTREG)); // dmov i1,
+ UML_ADD(block, I0, R32(RSREG), SIMMVAL); // add i0,,SIMMVAL
+ UML_SHL(block, I3, I0, 3); // shl i3,i0,3
+ UML_AND(block, I0, I0, ~7); // and i0,i0,~7
+ UML_DMOV(block, I1, R64(RTREG)); // dmov i1,
if (m_bigendian)
- UML_XOR(block, I3, I3, 0x38); // xor i3,i3,0x38
- UML_DSHL(block, I2, (UINT64)~0, I3); // dshl i2,~0,i3
- UML_DSHL(block, I1, I1, I3); // dshl i1,i1,i3
+ UML_XOR(block, I3, I3, 0x38); // xor i3,i3,0x38
+ UML_DSHL(block, I2, (UINT64)~0, I3); // dshl i2,~0,i3
+ UML_DSHL(block, I1, I1, I3); // dshl i1,i1,i3
UML_CALLH(block, *m_write64mask[m_core->mode >> 1]);// callh write64mask
if (!in_delay_slot)
@@ -1807,8 +1807,8 @@ int mips3_device::generate_opcode(drcuml_block *block, compiler_state *compiler,
case 0x39: /* SWC1 - MIPS I */
check_cop1_access(block);
- UML_ADD(block, I0, R32(RSREG), SIMMVAL); // add i0,,SIMMVAL
- UML_MOV(block, I1, FPR32_FR0(RTREG)); // mov i1,
+ UML_ADD(block, I0, R32(RSREG), SIMMVAL); // add i0,,SIMMVAL
+ UML_MOV(block, I1, FPR32_FR0(RTREG)); // mov i1,
UML_CALLH(block, *m_write32[m_core->mode >> 1]); // callh write32
if (!in_delay_slot)
generate_update_cycles(block, compiler, desc->pc + 4, TRUE);
@@ -1817,8 +1817,8 @@ int mips3_device::generate_opcode(drcuml_block *block, compiler_state *compiler,
case 0x3d: /* SDC1 - MIPS III */
check_cop1_access(block);
generate_get_cop1_reg64_d2i(block, compiler, desc, RTREG, I1);
- UML_ADD(block, I0, R32(RSREG), SIMMVAL); // add i0,,SIMMVAL
- UML_CALLH(block, *m_write64[m_core->mode >> 1]); // callh write64
+ UML_ADD(block, I0, R32(RSREG), SIMMVAL); // add i0,,SIMMVAL
+ UML_CALLH(block, *m_write64[m_core->mode >> 1]); // callh write64
if (!in_delay_slot)
generate_update_cycles(block, compiler, desc->pc + 4, TRUE);
return TRUE;
@@ -2317,12 +2317,12 @@ int mips3_device::generate_regimm(drcuml_block *block, compiler_state *compiler,
{
UML_DCMP(block, R64(RSREG), 0); // dcmp ,0
UML_JMPc(block, COND_L, skip = compiler->labelnum++); // jmp skip,L
- generate_delay_slot_and_branch(block, compiler, desc, 0); //
+ generate_delay_slot_and_branch(block, compiler, desc, 0); //
UML_LABEL(block, skip); // skip:
}
else
{
- generate_delay_slot_and_branch(block, compiler, desc, 0); //
+ generate_delay_slot_and_branch(block, compiler, desc, 0); //
}
return TRUE;
@@ -2711,12 +2711,12 @@ void mips3_device::generate_get_cop1_reg64(drcuml_block *block, compiler_state *
{
UML_ICOPYFS(block, I0, FPR32_FR0((reg & 0x1E) + 1));
UML_DSHL(block, I0, I0, 32);
- UML_ICOPYFS(block, I1, FPR32_FR0(reg & 0x1E));
- UML_DROLINS(block, I0, I1, 0, 0x00000000ffffffffL);
- UML_FDCOPYI(block, param, I0);
+ UML_ICOPYFS(block, I1, FPR32_FR0(reg & 0x1E));
+ UML_DROLINS(block, I0, I1, 0, 0x00000000ffffffffL);
+ UML_FDCOPYI(block, param, I0);
}
- else
- {
+ else
+ {
UML_FDMOV(block, param, FPR64_FR1(reg));
}
}
@@ -2772,7 +2772,7 @@ int mips3_device::generate_cop1_fr0(drcuml_block *block, compiler_state *compile
case 0x00: /* MFC1 - MIPS I */
if (RTREG != 0)
{
- UML_DSEXT(block, R64(RTREG), FPR32_FR0(RDREG), SIZE_DWORD); // dsext ,fpr[rdreg],dword
+ UML_DSEXT(block, R64(RTREG), FPR32_FR0(RDREG), SIZE_DWORD); // dsext ,fpr[rdreg],dword
}
return TRUE;
@@ -2786,11 +2786,11 @@ int mips3_device::generate_cop1_fr0(drcuml_block *block, compiler_state *compile
case 0x02: /* CFC1 - MIPS I */
if (RTREG != 0)
- UML_DSEXT(block, R64(RTREG), CCR132(RDREG), SIZE_DWORD); // dsext ,ccr132[rdreg],dword
+ UML_DSEXT(block, R64(RTREG), CCR132(RDREG), SIZE_DWORD); // dsext ,ccr132[rdreg],dword
return TRUE;
case 0x04: /* MTC1 - MIPS I */
- UML_MOV(block, FPR32_FR0(RDREG), R32(RTREG)); // mov fpr[rdreg],
+ UML_MOV(block, FPR32_FR0(RDREG), R32(RTREG)); // mov fpr[rdreg],
return TRUE;
case 0x05: /* DMTC1 - MIPS III */
@@ -2801,18 +2801,18 @@ int mips3_device::generate_cop1_fr0(drcuml_block *block, compiler_state *compile
case 0x06: /* CTC1 - MIPS I */
if (RDREG != 31)
{
- UML_DSEXT(block, CCR164(RDREG), R32(RTREG), SIZE_DWORD); // dsext ccr1[rdreg],,dword
+ UML_DSEXT(block, CCR164(RDREG), R32(RTREG), SIZE_DWORD); // dsext ccr1[rdreg],,dword
}
else
{
- UML_XOR(block, I0, CCR132(31), R32(RTREG)); // xor i0,ccr1[31],
- UML_DSEXT(block, CCR164(31), R32(RTREG), SIZE_DWORD); // dsext ccr1[31],,dword
- UML_TEST(block, I0, 3); // test i0,3
- UML_JMPc(block, COND_Z, skip = compiler->labelnum++); // jmp skip,Z
- UML_AND(block, I0, CCR132(31), 3); // and i0,ccr1[31],3
- UML_LOAD(block, I0, &m_fpmode[0], I0, SIZE_BYTE, SCALE_x1); // load i0,fpmode,i0,byte
- UML_SETFMOD(block, I0); // setfmod i0
- UML_LABEL(block, skip); // skip:
+ UML_XOR(block, I0, CCR132(31), R32(RTREG)); // xor i0,ccr1[31],
+ UML_DSEXT(block, CCR164(31), R32(RTREG), SIZE_DWORD); // dsext ccr1[31],,dword
+ UML_TEST(block, I0, 3); // test i0,3
+ UML_JMPc(block, COND_Z, skip = compiler->labelnum++); // jmp skip,Z
+ UML_AND(block, I0, CCR132(31), 3); // and i0,ccr1[31],3
+ UML_LOAD(block, I0, &m_fpmode[0], I0, SIZE_BYTE, SCALE_x1); // load i0,fpmode,i0,byte
+ UML_SETFMOD(block, I0); // setfmod i0
+ UML_LABEL(block, skip); // skip:
}
return TRUE;
@@ -2821,18 +2821,18 @@ int mips3_device::generate_cop1_fr0(drcuml_block *block, compiler_state *compile
{
case 0x00: /* BCzF - MIPS I */
case 0x02: /* BCzFL - MIPS II */
- UML_TEST(block, CCR132(31), FCCMASK(op >> 18)); // test ccr1[31],fccmask[which]
- UML_JMPc(block, COND_NZ, skip = compiler->labelnum++); // jmp skip,NZ
- generate_delay_slot_and_branch(block, compiler, desc, 0); //
- UML_LABEL(block, skip); // skip:
+ UML_TEST(block, CCR132(31), FCCMASK(op >> 18)); // test ccr1[31],fccmask[which]
+ UML_JMPc(block, COND_NZ, skip = compiler->labelnum++); // jmp skip,NZ
+ generate_delay_slot_and_branch(block, compiler, desc, 0); //
+ UML_LABEL(block, skip); // skip:
return TRUE;
case 0x01: /* BCzT - MIPS I */
case 0x03: /* BCzTL - MIPS II */
- UML_TEST(block, CCR132(31), FCCMASK(op >> 18)); // test ccr1[31],fccmask[which]
- UML_JMPc(block, COND_Z, skip = compiler->labelnum++); // jmp skip,Z
- generate_delay_slot_and_branch(block, compiler, desc, 0); //
- UML_LABEL(block, skip); // skip:
+ UML_TEST(block, CCR132(31), FCCMASK(op >> 18)); // test ccr1[31],fccmask[which]
+ UML_JMPc(block, COND_Z, skip = compiler->labelnum++); // jmp skip,Z
+ generate_delay_slot_and_branch(block, compiler, desc, 0); //
+ UML_LABEL(block, skip); // skip:
return TRUE;
}
break;
@@ -2843,126 +2843,126 @@ int mips3_device::generate_cop1_fr0(drcuml_block *block, compiler_state *compile
case 0x00:
if (IS_SINGLE(op)) /* ADD.S - MIPS I */
{
- UML_FSADD(block, FDVALS_FR0, FSVALS_FR0, FTVALS_FR0); // fsadd ,,
+ UML_FSADD(block, FDVALS_FR0, FSVALS_FR0, FTVALS_FR0); // fsadd ,,
}
else /* ADD.D - MIPS I */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
- generate_get_cop1_reg64(block, compiler, desc, FTREG, F1); // dmov F1,
- UML_FDADD(block, F2, F0, F1); // fdadd F2,F0,F1
- generate_set_cop1_reg64(block, compiler, desc, FDREG, F2); // dmov ,F2
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
+ generate_get_cop1_reg64(block, compiler, desc, FTREG, F1); // dmov F1,
+ UML_FDADD(block, F2, F0, F1); // fdadd F2,F0,F1
+ generate_set_cop1_reg64(block, compiler, desc, FDREG, F2); // dmov ,F2
}
return TRUE;
case 0x01:
if (IS_SINGLE(op)) /* SUB.S - MIPS I */
{
- UML_FSSUB(block, FDVALS_FR0, FSVALS_FR0, FTVALS_FR0); // fssub ,,
+ UML_FSSUB(block, FDVALS_FR0, FSVALS_FR0, FTVALS_FR0); // fssub ,,
}
else /* SUB.D - MIPS I */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
- generate_get_cop1_reg64(block, compiler, desc, FTREG, F1); // dmov F1,
- UML_FDSUB(block, F2, F0, F1); // fdsub F2,F0,F1
- generate_set_cop1_reg64(block, compiler, desc, FDREG, F2); // dmov ,F2
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
+ generate_get_cop1_reg64(block, compiler, desc, FTREG, F1); // dmov F1,
+ UML_FDSUB(block, F2, F0, F1); // fdsub F2,F0,F1
+ generate_set_cop1_reg64(block, compiler, desc, FDREG, F2); // dmov ,F2
}
return TRUE;
case 0x02:
if (IS_SINGLE(op)) /* MUL.S - MIPS I */
{
- UML_FSMUL(block, FDVALS_FR0, FSVALS_FR0, FTVALS_FR0); // fsmul ,,
+ UML_FSMUL(block, FDVALS_FR0, FSVALS_FR0, FTVALS_FR0); // fsmul ,,
}
else /* MUL.D - MIPS I */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
- generate_get_cop1_reg64(block, compiler, desc, FTREG, F1); // dmov F1,
- UML_FDMUL(block, F2, F0, F1); // fdmul F2,F0,F1
- generate_set_cop1_reg64(block, compiler, desc, FDREG, F2); // dmov ,F2
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
+ generate_get_cop1_reg64(block, compiler, desc, FTREG, F1); // dmov F1,
+ UML_FDMUL(block, F2, F0, F1); // fdmul F2,F0,F1
+ generate_set_cop1_reg64(block, compiler, desc, FDREG, F2); // dmov ,F2
}
return TRUE;
case 0x03:
if (IS_SINGLE(op)) /* DIV.S - MIPS I */
{
- UML_FSDIV(block, FDVALS_FR0, FSVALS_FR0, FTVALS_FR0); // fsdiv ,,
+ UML_FSDIV(block, FDVALS_FR0, FSVALS_FR0, FTVALS_FR0); // fsdiv ,,
}
else /* DIV.D - MIPS I */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
- generate_get_cop1_reg64(block, compiler, desc, FTREG, F1); // dmov F1,
- UML_FDDIV(block, F2, F0, F1); // fddiv F2,F0,F1
- generate_set_cop1_reg64(block, compiler, desc, FDREG, F2); // dmov ,F2
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
+ generate_get_cop1_reg64(block, compiler, desc, FTREG, F1); // dmov F1,
+ UML_FDDIV(block, F2, F0, F1); // fddiv F2,F0,F1
+ generate_set_cop1_reg64(block, compiler, desc, FDREG, F2); // dmov ,F2
}
return TRUE;
case 0x04:
if (IS_SINGLE(op)) /* SQRT.S - MIPS II */
{
- UML_FSSQRT(block, FDVALS_FR0, FSVALS_FR0); // fssqrt ,
+ UML_FSSQRT(block, FDVALS_FR0, FSVALS_FR0); // fssqrt ,
}
else /* SQRT.D - MIPS II */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
- UML_FDSQRT(block, F0, F0); // fdsqrt F0,F0
- generate_set_cop1_reg64(block, compiler, desc, FDREG, F0); // dmov ,F0
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
+ UML_FDSQRT(block, F0, F0); // fdsqrt F0,F0
+ generate_set_cop1_reg64(block, compiler, desc, FDREG, F0); // dmov ,F0
}
return TRUE;
case 0x05:
if (IS_SINGLE(op)) /* ABS.S - MIPS I */
{
- UML_FSABS(block, FDVALS_FR0, FSVALS_FR0); // fsabs ,
+ UML_FSABS(block, FDVALS_FR0, FSVALS_FR0); // fsabs ,
}
else /* ABS.D - MIPS I */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
- UML_FDABS(block, F0, F0); // fdabs F0,F0
- generate_set_cop1_reg64(block, compiler, desc, FDREG, F0); // dmov ,F0
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
+ UML_FDABS(block, F0, F0); // fdabs F0,F0
+ generate_set_cop1_reg64(block, compiler, desc, FDREG, F0); // dmov ,F0
}
return TRUE;
case 0x06:
if (IS_SINGLE(op)) /* MOV.S - MIPS I */
{
- UML_FSMOV(block, FDVALS_FR0, FSVALS_FR0); // fsmov ,
+ UML_FSMOV(block, FDVALS_FR0, FSVALS_FR0); // fsmov ,
}
else /* MOV.D - MIPS I */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
- generate_set_cop1_reg64(block, compiler, desc, FDREG, F0); // dmov ,F0
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
+ generate_set_cop1_reg64(block, compiler, desc, FDREG, F0); // dmov ,F0
}
return TRUE;
case 0x07:
if (IS_SINGLE(op)) /* NEG.S - MIPS I */
{
- UML_FSNEG(block, FDVALS_FR0, FSVALS_FR0); // fsneg ,
- UML_CMP(block, FSVALS_FR0, 0); // cmp ,0.0
- UML_MOVc(block, COND_E, FDVALS_FR0, 0x80000000); // mov ,-0.0,e
+ UML_FSNEG(block, FDVALS_FR0, FSVALS_FR0); // fsneg ,
+ UML_CMP(block, FSVALS_FR0, 0); // cmp ,0.0
+ UML_MOVc(block, COND_E, FDVALS_FR0, 0x80000000); // mov ,-0.0,e
}
else /* NEG.D - MIPS I */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
- UML_FDNEG(block, F1, F0); // fdneg F1,F0
- UML_DCMP(block, F0, 0); // cmp F0,0.0
- UML_DMOVc(block, COND_E, F1, U64(0x8000000000000000)); // dmov F1,-0.0,e
- generate_set_cop1_reg64(block, compiler, desc, FDREG, F1); // dmov ,F1
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
+ UML_FDNEG(block, F1, F0); // fdneg F1,F0
+ UML_DCMP(block, F0, 0); // cmp F0,0.0
+ UML_DMOVc(block, COND_E, F1, U64(0x8000000000000000)); // dmov F1,-0.0,e
+ generate_set_cop1_reg64(block, compiler, desc, FDREG, F1); // dmov ,F1
}
return TRUE;
case 0x08:
if (IS_SINGLE(op)) /* ROUND.L.S - MIPS III */
{
- UML_FSTOINT(block, F0, FSVALS_FR0, SIZE_QWORD, ROUND_ROUND);// fstoint f0,,qword,round
+ UML_FSTOINT(block, F0, FSVALS_FR0, SIZE_QWORD, ROUND_ROUND);// fstoint f0,,qword,round
}
else /* ROUND.L.D - MIPS III */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
- UML_FDTOINT(block, F0, F0, SIZE_QWORD, ROUND_ROUND); // fdtoint f0,f0,qword,round
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
+ UML_FDTOINT(block, F0, F0, SIZE_QWORD, ROUND_ROUND); // fdtoint f0,f0,qword,round
}
- UML_ICOPYFD(block, I0, F0); // icopyfd i0,f0
- generate_set_cop1_reg64_i2d(block, compiler, desc, FDREG, I0); // dmov ,f0
+ UML_ICOPYFD(block, I0, F0); // icopyfd i0,f0
+ generate_set_cop1_reg64_i2d(block, compiler, desc, FDREG, I0); // dmov ,f0
return TRUE;
case 0x09:
@@ -2972,11 +2972,11 @@ int mips3_device::generate_cop1_fr0(drcuml_block *block, compiler_state *compile
}
else /* TRUNC.L.D - MIPS III */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
- UML_FDTOINT(block, F0, F0, SIZE_QWORD, ROUND_TRUNC); // fdtoint f0,f0,qword,trunc
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
+ UML_FDTOINT(block, F0, F0, SIZE_QWORD, ROUND_TRUNC); // fdtoint f0,f0,qword,trunc
}
- UML_ICOPYFD(block, I0, F0); // icopyfd i0,f0
- generate_set_cop1_reg64_i2d(block, compiler, desc, FDREG, I0); // dmov ,i0
+ UML_ICOPYFD(block, I0, F0); // icopyfd i0,f0
+ generate_set_cop1_reg64_i2d(block, compiler, desc, FDREG, I0); // dmov ,i0
return TRUE;
case 0x0a:
@@ -2986,11 +2986,11 @@ int mips3_device::generate_cop1_fr0(drcuml_block *block, compiler_state *compile
}
else /* CEIL.L.D - MIPS III */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
- UML_FDTOINT(block, F0, F0, SIZE_QWORD, ROUND_CEIL); // fdtoint f0,,qword,ceil
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
+ UML_FDTOINT(block, F0, F0, SIZE_QWORD, ROUND_CEIL); // fdtoint f0,,qword,ceil
}
- UML_ICOPYFD(block, I0, F0); // icopyfd i0,f0
- generate_set_cop1_reg64(block, compiler, desc, FDREG, I0); // dmov ,f0
+ UML_ICOPYFD(block, I0, F0); // icopyfd i0,f0
+ generate_set_cop1_reg64(block, compiler, desc, FDREG, I0); // dmov ,f0
return TRUE;
case 0x0b:
@@ -3000,11 +3000,11 @@ int mips3_device::generate_cop1_fr0(drcuml_block *block, compiler_state *compile
}
else /* FLOOR.L.D - MIPS III */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
- UML_FDTOINT(block, F0, F0, SIZE_QWORD, ROUND_FLOOR); // fdtoint f0,,qword,floor
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
+ UML_FDTOINT(block, F0, F0, SIZE_QWORD, ROUND_FLOOR); // fdtoint f0,,qword,floor
}
- UML_ICOPYFD(block, I0, F0); // icopyfd i0,f0
- generate_set_cop1_reg64(block, compiler, desc, FDREG, I0); // dmov ,f0
+ UML_ICOPYFD(block, I0, F0); // icopyfd i0,f0
+ generate_set_cop1_reg64(block, compiler, desc, FDREG, I0); // dmov ,f0
return TRUE;
case 0x0c:
@@ -3014,8 +3014,8 @@ int mips3_device::generate_cop1_fr0(drcuml_block *block, compiler_state *compile
}
else /* ROUND.W.D - MIPS II */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
- UML_FDTOINT(block, FDVALS_FR0, F0, SIZE_DWORD, ROUND_ROUND); // fdtoint ,F0,dword,round
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
+ UML_FDTOINT(block, FDVALS_FR0, F0, SIZE_DWORD, ROUND_ROUND); // fdtoint ,F0,dword,round
}
return TRUE;
@@ -3026,8 +3026,8 @@ int mips3_device::generate_cop1_fr0(drcuml_block *block, compiler_state *compile
}
else /* TRUNC.W.D - MIPS II */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
- UML_FDTOINT(block, FDVALS_FR0, F0, SIZE_DWORD, ROUND_TRUNC); // fdtoint ,F0,dword,trunc
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
+ UML_FDTOINT(block, FDVALS_FR0, F0, SIZE_DWORD, ROUND_TRUNC); // fdtoint ,F0,dword,trunc
}
return TRUE;
@@ -3038,8 +3038,8 @@ int mips3_device::generate_cop1_fr0(drcuml_block *block, compiler_state *compile
}
else /* CEIL.W.D - MIPS II */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
- UML_FDTOINT(block, FDVALS_FR0, F0, SIZE_DWORD, ROUND_CEIL); // fdtoint ,F0,dword,ceil
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
+ UML_FDTOINT(block, FDVALS_FR0, F0, SIZE_DWORD, ROUND_CEIL); // fdtoint ,F0,dword,ceil
}
return TRUE;
@@ -3050,8 +3050,8 @@ int mips3_device::generate_cop1_fr0(drcuml_block *block, compiler_state *compile
}
else /* FLOOR.W.D - MIPS II */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
- UML_FDTOINT(block, FDVALS_FR0, F0, SIZE_DWORD, ROUND_FLOOR); // fdtoint ,F0,dword,floor
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
+ UML_FDTOINT(block, FDVALS_FR0, F0, SIZE_DWORD, ROUND_FLOOR); // fdtoint ,F0,dword,floor
}
return TRUE;
@@ -3066,71 +3066,71 @@ int mips3_device::generate_cop1_fr0(drcuml_block *block, compiler_state *compile
else /* MOVT/F.D - MIPS IV */
{
condition = ((op >> 16) & 1) ? COND_Z : COND_NZ;
- generate_get_cop1_reg64(block, compiler, desc, FDREG, F0); // dmov F0,
+ generate_get_cop1_reg64(block, compiler, desc, FDREG, F0); // dmov F0,
UML_JMPc(block, condition, skip = compiler->labelnum++);
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov F0,
UML_LABEL(block, skip);
- generate_set_cop1_reg64(block, compiler, desc, FDREG, F0); // dmov ,F0
+ generate_set_cop1_reg64(block, compiler, desc, FDREG, F0); // dmov ,F0
}
return TRUE;
case 0x12:
- UML_DCMP(block, R64(RTREG), 0); // dcmp ,0
+ UML_DCMP(block, R64(RTREG), 0); // dcmp ,0
if (IS_SINGLE(op)) /* MOVZ.S - MIPS IV */
{
- UML_FSMOVc(block, COND_Z, FDVALS_FR0, FSVALS_FR0); // fsmov ,,Z
+ UML_FSMOVc(block, COND_Z, FDVALS_FR0, FSVALS_FR0); // fsmov ,,Z
}
else /* MOVZ.D - MIPS IV */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
- generate_get_cop1_reg64(block, compiler, desc, FDREG, F1); // dmov f1,
- UML_FDMOVc(block, COND_Z, F2, F0); // fdmov f2,,Z
- UML_FDMOVc(block, COND_NZ, F2, F1); // fdmov f2,,NZ
- generate_set_cop1_reg64(block, compiler, desc, FDREG, F2); // dmov ,f0
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
+ generate_get_cop1_reg64(block, compiler, desc, FDREG, F1); // dmov f1,
+ UML_FDMOVc(block, COND_Z, F2, F0); // fdmov f2,,Z
+ UML_FDMOVc(block, COND_NZ, F2, F1); // fdmov f2,,NZ
+ generate_set_cop1_reg64(block, compiler, desc, FDREG, F2); // dmov ,f0
}
return TRUE;
case 0x13:
- UML_DCMP(block, R64(RTREG), 0); // dcmp ,0
+ UML_DCMP(block, R64(RTREG), 0); // dcmp ,0
if (IS_SINGLE(op)) /* MOVN.S - MIPS IV */
{
- UML_FSMOVc(block, COND_NZ, FDVALS_FR0, FSVALS_FR0); // fsmov ,,NZ
+ UML_FSMOVc(block, COND_NZ, FDVALS_FR0, FSVALS_FR0); // fsmov ,,NZ
}
else /* MOVN.D - MIPS IV */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
- generate_get_cop1_reg64(block, compiler, desc, FDREG, F1); // dmov f1,
- UML_FDMOVc(block, COND_NZ, F2, F0); // fdmov f2,,NZ
- UML_FDMOVc(block, COND_Z, F2, F1); // fdmov f2,,Z
- generate_set_cop1_reg64(block, compiler, desc, FDREG, F2); // dmov ,f2
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
+ generate_get_cop1_reg64(block, compiler, desc, FDREG, F1); // dmov f1,
+ UML_FDMOVc(block, COND_NZ, F2, F0); // fdmov f2,,NZ
+ UML_FDMOVc(block, COND_Z, F2, F1); // fdmov f2,,Z
+ generate_set_cop1_reg64(block, compiler, desc, FDREG, F2); // dmov ,f2
}
return TRUE;
case 0x15:
if (IS_SINGLE(op)) /* RECIP.S - MIPS IV */
{
- UML_FSRECIP(block, FDVALS_FR0, FSVALS_FR0); // fsrecip ,
+ UML_FSRECIP(block, FDVALS_FR0, FSVALS_FR0); // fsrecip ,
}
else /* RECIP.D - MIPS IV */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
- UML_FDRECIP(block, F0, F0); // fdrecip f0,
- generate_set_cop1_reg64(block, compiler, desc, FDREG, F0); // dmov ,f0
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
+ UML_FDRECIP(block, F0, F0); // fdrecip f0,
+ generate_set_cop1_reg64(block, compiler, desc, FDREG, F0); // dmov ,f0
}
return TRUE;
case 0x16:
if (IS_SINGLE(op)) /* RSQRT.S - MIPS IV */
{
- UML_FSRSQRT(block, FDVALS_FR0, FSVALS_FR0); // fsrsqrt ,
+ UML_FSRSQRT(block, FDVALS_FR0, FSVALS_FR0); // fsrsqrt ,
}
else /* RSQRT.D - MIPS IV */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
- UML_FDRSQRT(block, F0, F0); // fdrsqrt f0,
- generate_set_cop1_reg64(block, compiler, desc, FDREG, F0); // dmov ,f0
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
+ UML_FDRSQRT(block, F0, F0); // fdrsqrt f0,
+ generate_set_cop1_reg64(block, compiler, desc, FDREG, F0); // dmov ,f0
}
return TRUE;
@@ -3143,14 +3143,14 @@ int mips3_device::generate_cop1_fr0(drcuml_block *block, compiler_state *compile
}
else /* CVT.S.L - MIPS I */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
- UML_FSFRINT(block, FDVALS_FR0, F0, SIZE_QWORD); // fsfrint ,f0,qword
+ generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,
+ UML_FSFRINT(block, FDVALS_FR0, F0, SIZE_QWORD); // fsfrint ,f0,qword
}
}
else /* CVT.S.D - MIPS I */
{
- generate_get_cop1_reg64(block, compiler, desc, FSREG, F0); // dmov f0,