summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Roberto Fresca <robbie@robertofresca.com>2021-04-20 04:22:49 +0200
committer Roberto Fresca <robbie@robertofresca.com>2021-04-20 04:22:49 +0200
commit30156bce2f6de4f3785b8654de1757145aabfa55 (patch)
tree6d08939d41ab3fc07e1c1feae1fef731f960f442
parent976137eddb4b803283fd1094c3616a51cd32000a (diff)
System 906-III improvements: [Roberto Fresca, Grull Osgo]
- Reworked a lot of things to get the platform playable. - Switched to Rockwell R65C02 CPU. - Added missing inputs, timers, clocks and connections. - Renamed Game 58.01 to CEI 51.08 (CEI 906-III Poker). - Added new games to the platform. New working machines -------------------- Casino 21 UCMC/IWC (ver 30.08) [Roberto Fresca, Grull Osgo] Poker UCMC/IWC (ver 162.03) [Roberto Fresca, Grull Osgo] Poker UCMC/IWC (ver 162.03 20-6-91) [Roberto Fresca, Grull Osgo] Machines promoted to working ---------------------------- CEI 51.08 (CEI 906-III Poker) [Roberto Fresca, Grull Osgo]
-rw-r--r--src/mame/drivers/calomega.cpp846
-rw-r--r--src/mame/includes/calomega.h43
-rw-r--r--src/mame/mame.lst5
3 files changed, 638 insertions, 256 deletions
diff --git a/src/mame/drivers/calomega.cpp b/src/mame/drivers/calomega.cpp
index 0ad1882041c..d34862c0366 100644
--- a/src/mame/drivers/calomega.cpp
+++ b/src/mame/drivers/calomega.cpp
@@ -13,8 +13,8 @@
--- Technical Notes ---
- Name: System 903, System 904, System 905 & System 906 III.
- Company: Cal Omega / Omega Products / Casino Electronics Inc.
+ Name: System 903, System 904, System 905 & System 906-III.
+ Company: Cal Omega / Casino Electronics Inc. (CEI) / UCMC.
Year: 1981-1989
@@ -75,7 +75,7 @@
- System 906 III:
+ System 906-III:
---------------
PCB silkscreened "CEI 906 III GAMEBOARD" "ASSY 4029063 REV"
@@ -130,137 +130,137 @@
***********************************************************************************
- ++++ System 903/904/906III official list of games (not complete) ++++
-
- -----+--------------------------+--------+---------+----------+---------+----------+---------+---------------+------+------+-------
- VER | NAME | SYSTEM | PROGRAM | CHAR GEN | CG P/N | CLR PROM | CP P/N | GAME TYPE | DUMP | STAT | ADDED
- -----+--------------------------+--------+---------+----------+---------+----------+---------+---------------+------+------+-------
- * 7.4 | Gaming Poker (w. export) | 903 | AUG/81 | PKCG | 6300010 | unknown | 6600020 | Gaming | Yes | OK | Yes
- 7.6 | Poker | 903 | AUG/81 | PKCG | 6300010 | POKCLR | 6600020 | Amusement | Yes | OK | Yes
- * 7.9 | Arcade Poker | 903 | AUG/81 | PKCG | 6300010 | POKCLR | 6600020 | Amusement | Yes | BD | Yes
- * 8.0 | Arcade Black Jack | 903 | SEP/81 | CPKCG | 6300010 | POKCLR | 6600020 | Amusement | Yes | BD | Yes
- * 9.4 | Keno | 903 | DEC/81 | KCG | 6300060 | POKCLR | 6600020 | Amusement | Yes | OK | Yes
- * 10.7 | Big Game | 903 | MAR/82 | LOTCG | unknown | BCLR | unknown | Amusement? | Yes | OK | Yes
- * 11.3 | Black Jack | 903 | | CPKCG? | 6300010 | POKCLR | 6600020 | Amusement? | No | | No
- * 12.3 | Ticket Poker | 903 | JUN/82 | PKCG | 6300010 | POKCLR | 6600020 | Amusement | Yes | BD | Yes
- * 12.5 | Bingo | 903 | JUN/82 | NBCG | unknown | BCLR | unknown | Amusement | Yes | OK | Yes
- * 12.7 | Keno | 903/4? | JUL/82 | KCG | 6300060 | POKCLR | 6600020 | Amusement | Yes | OK | Yes
- * 12.8 | Arcade Game (Draw Poker) | 903 | JUL/82 | PKCG | 6300010 | POKCLR | 6600020 | Amusement | Yes | OK | Yes
- 13.4 | Nudge Bingo | 903 | SEP/82 | NBCG | 6300040 | BCLR | 6600040 | Amusement | Yes | OK | Yes
- 14.5 | Pixels | 903 | DEC/82 | PIXCG | 6300070 | PIXCLR | 6600050 | Amusement | Yes | OK | Yes
- 14.7 | Nudge Bingo | 903 | | NBCG | 6300040 | BCLR | 6600040 | Amusement | No | | No
- 15.0 | Punchboard | 903 | | PBCG | 6300190 | PBCLR | 6600130 | Gaming Wash | No | | No
- 15.7 | Double-Draw Poker | 903 | JAN/83 | CPKCG | 6300010 | POKCLR | 6600020 | Amusement | Yes | OK | Yes
- 15.8 | Poker Montana | ? | | CPKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
- 15.9 | Wild Double-Up | 905 | JAN/83 | JKR2CG | 6300100 | WLDCLR | 6600010 | Amusement | Yes | OK | Yes
- 16.2 | Gaming Lottery | ? | | LCG | 6300050 | LOTCLR | 6600030 | Gaming | No | | No
- 16.3 | Black Jack | ? | | CPKCG | 6300010 | POKCLR | 6600020 | Amusement | No | | No
- 16.4 | K.I.S.S. Keno | 904 | MAY/83 | KCG | 6300060 | PCLR | 6600020 | Amusement | Yes | IC | Yes
- 16.5 | K.I.S.S. Poker | ? | | POKER | 6300010 | POKCLR | 6600020 | Amusement | No | | No
- 16.6 | Nudge Bingo | ? | | NBCG | 6300040 | BCOLOR | 6600040 | Amusement | No | | No
- 16.7 | Poker | ? | | PCG | 6300010 | POKCLR | 6600020 | Amusement | No | | No
- 16.8 | Keno | 903 | MAR/83 | KCG | 6300060 | POKCLR | 6600020 | Amusement | Yes | OK | Yes
- 17.0 | Poker | 905 | | POKERCGs | 6300010 | PKRCLR | 6600020 | Amusement | No | | No
- 17.1 | Nudge Bingo | ? | | NBCG | 6300040 | BCOLOR | 6600040 | Amusement | No | | No
- 17.2 | Double/Double Poker | 905 | MAY/83 | JKRPKR | 6300100 | WLDCLR | 6600010 | Amusement | Yes | OK | Yes
- 17.3 | Casino Poker | ? | | PKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
- 17.4 | Gin Gaming | ? | | GCG0.2 | 6300080 | GINCLR | 6600060 | Nevada Gaming | No | | No
- 17.5 | Gaming Draw Poker | 903 | DEC/84 | PKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | Yes | OK | Yes
- 17.6 | Nudge | 903 | SEP/82 | NBCG | 6300040 | BCLR | 6600040 | Amusement | Yes | OK | Yes
- 17.7 | Keno | ? | | KCG | 6300060 | POKCLR | 6600020 | Gaming | No | | No
- 17.9 | AWP Poker | ? | | PKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
- * 18.0 | Gin | 905 | | GCG2 | 6300110 | MLTCLR | 6600070 | Amusement | No | | No
- 18.1 | Nudge | ? | JUL/83 | NBCG | 6300040 | BCLR | 6600040 | Amusement | Yes | OK | Yes
- 18.2 | Amusement Poker | 905 | | JKRCG02 | 6300100 | WLDCLR | 6600010 | Amusement | No | | No
- 18.3 | Pixels | 905 | AUG/83 | PXCG | 6300070 | PIXCLR | 6600050 | Amusement | Yes | OK | Yes
- 18.4 | Double Draw-Lebanon | ? | | PKCG | 6300010 | POKCLR | 6600020 | Amusement | No | | No
- 18.5 | Pixels | 905 | AUG/83 | PXCG | 6300070 | PIXCLR | 6600050 | Amusement | Yes | OK | Yes
- 18.6 | Pixels | 905 | AUG/83 | PXCG | 6300070 | PIXCLR | 6600050 | Amusement | Yes | OK | Yes
- 18.7 | Amusement Poker (skill) | 905 | AUG/83 | JKRTWO | 6300100 | MLTCLR | 6600070 | Amusement | Yes | BD | Yes
- 18.8 | Poker-Lebanon | ? | | PKCG | 6300010 | POKCLR | 6600020 | Amusement | No | | No
- 18.9 | Pixels (french) | ? | | PIXCG | 6300070 | PIXCLR | 6600050 | Amusement | No | | No
- 19.0 | Hi-Score Poker | ? | | JKRTWO | 6300100 | WLDCLR | 6600070 | Amusement | No | | No
- * 19.1 | Super Blackjack | 905 | AUG/83 | JKRTWO? | 6300100 | MLTCLR | 6600070 | Amusement | No | | No
- 19.2 | AWP Poker | ? | | PKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
- 19.3 | Gin | 905 | | GCG2 | 6300110 | MLTCLR | 6600070 | Amusement | No | | No
- 19.4 | Pixels (french) | ? | | PIXCG | 6300070 | PIXCLR | 6600050 | Amusement | No | | No
- 19.7 | Ind. Wild Double-Up | ? | | JKRCG | 6300100 | WLDCLR | 6600070 | Amusement | No | | No
- 19.9 | Double-Up Nudge | ? | | NUDGE | 6300040 | BCOLOR | 6600040 | Amusement | No | | No
- 20.1 | Poker | ? | | GPKCG | 6300010 | POKCLR | 6600020 | Amusement | No | | No
- 20.4 | Super Blackjack | 905 | FEB/84 | JKRTWO | 6300100 | MLTCLR | 6600070 | Amusement | Yes | OK | Yes
- * 20.5 | Blackjack? | 905 | FEB/84 | JKRTWO? | 6300100 | MLTCLR | 6600070 | Amusement | No | | No
- 20.7 | Double-Up Nudge | ? | | NUDGECG | 6300040 | BCOLOR | 6600040 | Amusement | No | | No
- 20.8 | Winner's Choice | ? | FEB/84 | MLT2CG | 6300130 | MLTCLR | 6600070 | Amusement | Yes | OK | Yes
- 20.9 | Gaming Poker-Europe | ? | | PKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
- 21.1 | AWP Poker | ? | | POKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
- 21.2 | Video Slot | ? | | SL1CG | 6300180 | SLC1 | 6600120 | Gaming | No | | No
- 21.4 | Wild Double-Up Poker | ? | | WLDCG | 6300100 | WLDCLR | 6600010 | Amusement | No | | No
- 21.5 | Double/Double Poker | ? | | JKRTWO | 6300100 | WLDCLR | 6600010 | Amusement | No | | No
- * 21.6 | Wild Double-Up? | 905 | JUN/84 | WLDCG | 6300100 | WLDCLR | 6600010 | Amusement | No | | No
- * 21.7 | Poker? | 905 | MAY/84 | GPKCG? | 6300010 | POKCLR | 6600020 | Amusement | No | | No
- 21.9 | Amusement Poker | ? | | JKRCG | 6300100 | WLDCLR | 6600010 | Amusement | No | | No
- 22.1 | Poker | ? | | PKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
- 22.7 | Amusement Poker (dbl/dbl)| 905 | JUL/84 | JKRPKR | 6300100 | WLDCLR | 6600010 | Amusement | Yes | OK | Yes
- 22.8 | Tennesee Wild Poker | 905 | | JKR2CG | 6300100 | MLTCLR | 6600070 | Amusement | No | | No
- 22.9 | Double/Double Poker | 905 | | JKRTWO | 6300100 | MLTCLR | 6600010 | Amusement | No | | No
- 23.0 | FC Bingo (4-card) | 905 | JUN/84 | FCBCG | 6300150 | FCBCLR | 6600100 | Amusement | Yes | BD | Yes
- 23.2 | Pixels | ? | | PIXCG | 6300070 | PIXCLR | 6600050 | Amusement | No | | No
- * 23.6 | Hotline | 905 | OCT/84 | HLCG | 6300160 | HLCLR | 6600110 | Amusement | Yes | OK | Yes
- 23.7 | AWP Blackjack | ? | | POKER | 6300010 | POKCLR | 6600020 | Gaming | No | | No
- 23.9 | G.Draw Poker (discard) | 904 | JAN/85 | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | Yes | OK | Yes
- 24.0 | Gaming Draw Poker (hold) | 904 | MAY/85 | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | Yes | OK | Yes
- 24.2 | Export Poker | ? | | GPKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
- 24.3 | Gaming Blackjack | ? | | GPKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
- 24.5 | Wild Double-Up | ? | | JKPKCG | 6300100 | WLDCLR | 6600010 | Amusement | No | | No
- 24.6 | Hotline | 905 | JAN/85 | HLCG | 6300160 | HLCLR | 6600110 | Amusement | Yes | OK | Yes
- 24.8 | Poker (discard) | ? | | PKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
- 24.9 | Poker (hold) | ? | | PKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
- 25.3 | 4-Card Bingo-Gaming | ? | | FCB1CG | 6300150 | FCB1CLR | 6600100 | Gaming | No | | No
- 25.4 | Indian 4-Card Bingo | ? | | FCBCG | 6300150 | FCB1CLR | 6600100 | Amer-Indian | No | | No
- 25.5 | Wild Double-Up Poker | ? | | JKRCG | 6300100 | WILD | 6600010 | Amusement | No | | No
- 25.6 | Mr. Domino | ? | | DOMCG | 6300140 | DOMCLR | 6600080 | Amusement | No | | No
- 25.7 | Mr. Domino | ? | | DOMCG | 6300140 | DOMCLR | 6600080 | Amusement | No | | No
- 25.8 | Poker | ? | | PKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
- 26.3 | Wild Double-Up Poker | ? | | JKRCG | 6300100 | WILD | 6600010 | Amusement | No | | No
- 26.5 | 4-Reel Slot | ? | | SLOT4CG | 6300220 | SL4CLR | 6600140 | Gaming | No | | No
- 26.6 | Poker | ? | | GPKCG | 6300250 | POKCLR | 6600020 | Nevada Gaming | No | | No
- 26.8 | Wild Double-Up Poker | ? | | JKRCG | 6300260 | WILD | 6600010 | Nevada Gaming | No | | No
- 27.1 | Tourney Gaming Poker | ? | | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
- 27.2 | Arcade Keno | ? | AUG/85 | KJCG | 6300060 | POKCLR | 6600020 | Montana | Yes | OK | Yes
- * 27.2 | Arcade Keno | ? | AUG/85 | KJCG | 6300060 | POKCLR | 6600020 | Gaming | Yes | OK | Yes
- 27.3 | Export Poker | ? | | PKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
- 27.4 | Keno II | ? | | KJCG | 6300060 | POKCLR | 6600020 | Montana | No | | No
- 27.5 | Keno (Austria) | ? | | KENOCG | 6300060 | POKCLR | 6600020 | Gaming | No | | No
- 27.6 | Slot 8 | ? | | SL8CG | 6300290 | SLOT4CLR | 6600140 | Gaming | No | | No
- 27.9 | 3-Reel Slot, Gaming | ? | | SL2CG | 6300280 | SL2CLR | 6600120 | Nevada Gaming | No | | No
- 28.0 | 3-Reel Slot | ? | | SL2CG | 6300180 | SL2CLR | 6600120 | Gaming | No | | No
- 28.2 | Hotline | ? | | HLCG | 6300160 | HLCLR | 6600110 | Amusement | No | | No
- 28.5 | Hotline | ? | | HLCG | 6300130 | HLCLR | 6600110 | Amusement | No | | No
- 29.0x| Stand or Draw Poker | ? | | ST2CG | 6300270 | ST2CLR | 6600150 | Nevada Gaming | No | | No
- 30.0x| Casino 21 | ? | | GPKCG | 6300250 | WILD | 6600010 | Nevada Gaming | No | | No
- 31.0x| Poker (discard) | ? | | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
- 32.0x| Poker (hold) | ? | | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
- 33.0x| Keno | ? | | KJCG | 6300060 | POKCLR | 6600020 | Nevada Gaming | No | | No
- 34.0x| Keno (Austria) | ? | | KJCG | 6300060 | POKCLR | 6600020 | Gaming | No | | No
- 35.0x| 1-3 Sign Poker (discard) | ? | | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
- 36.0x| 1-3 Sign Poker (hold) | ? | | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
- 37.0x| Amusement Keno | ? | | KJCG | 6300060 | POKCLR | 6600020 | Montana | No | | No
- 39.0x| 3-Reel Slot | ? | | SBARCG | 6300305 | JKRSLOT | 6600170 | Nevada Gaming | No | | No
- 39.0x| 3-Reel Slot | ? | | PLAIN7CG | 6300309 | JKRSLOT | 6600170 | Nevada Gaming | No | | No
- 39.0x| 3-Reel Slot | ? | | JWCG | 6300313 | JKRSLOT | 6600170 | Nevada Gaming | No | | No
- 40.0x| Poker w/Wild Card | 903 | | JKRCG | 6300260 | WLDCLR | 6600010 | Nevada Gaming | No | | No
- 41.0x| Do-it-yourself Bingo | ? | | KCG | 6300060 | PKRCLR | 6600020 | Amer-Indian | No | | No
- 42.0x| Mr. Domino | ? | | NDMCG | 6300300 | DOMCLR | 6600080 | Amusement | No | | No
- 43.0x| Export Poker | ? | | GPKCG | 6300170 | POKCLR | 6600020 | Gaming | No | | No
- 44.0x| Tourney Poker (discard) | ? | | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
- 45.0x| Tourney Poker (hold) | ? | | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
- 46.0x| Gaming Poker | ? | | GPKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
- 47.0x| 4-Card Indian Bingo | ? | | FCB7CG | 6300150 | FCB7CLR | 6600100 | Amer-Indian | No | | No
- 48.0x| Keno | ? | | KJCG | 6300060 | POKCLR | 6600020 | Montana | No | | No
- 51.08| Poker (906-III) | 906 | | GP2CG | unknown | WILD | unknown | Nevada Gaming | Yes | OK | Yes
- | | | | | | | | | | |
- * 903d | System 903 Diag.PROM | 903 | unknown | any | unknown | any | unknown | Testing H/W | Yes | OK | Yes
- * 905d | System 905 Diag.PROM | 905 | unknown | any | unknown | any | unknown | Testing H/W | Yes | OK | Yes
+ ++++ System 903/904/906-III official list of games (not complete) ++++
+
+ -----+--------------------------+---------+---------+----------+---------+----------+---------+---------------+------+------+-------
+ VER | NAME | SYSTEM | PROGRAM | CHAR GEN | CG P/N | CLR PROM | CP P/N | GAME TYPE | DUMP | STAT | ADDED
+ -----+--------------------------+---------+---------+----------+---------+----------+---------+---------------+------+------+-------
+ * 7.4 | Gaming Poker (w. export) | 903 | AUG/81 | PKCG | 6300010 | unknown | 6600020 | Gaming | Yes | OK | Yes
+ 7.6 | Poker | 903 | AUG/81 | PKCG | 6300010 | POKCLR | 6600020 | Amusement | Yes | OK | Yes
+ * 7.9 | Arcade Poker | 903 | AUG/81 | PKCG | 6300010 | POKCLR | 6600020 | Amusement | Yes | BD | Yes
+ * 8.0 | Arcade Black Jack | 903 | SEP/81 | CPKCG | 6300010 | POKCLR | 6600020 | Amusement | Yes | BD | Yes
+ * 9.4 | Keno | 903 | DEC/81 | KCG | 6300060 | POKCLR | 6600020 | Amusement | Yes | OK | Yes
+ * 10.7 | Big Game | 903 | MAR/82 | LOTCG | unknown | BCLR | unknown | Amusement? | Yes | OK | Yes
+ * 11.3 | Black Jack | 903 | | CPKCG? | 6300010 | POKCLR | 6600020 | Amusement? | No | | No
+ * 12.3 | Ticket Poker | 903 | JUN/82 | PKCG | 6300010 | POKCLR | 6600020 | Amusement | Yes | BD | Yes
+ * 12.5 | Bingo | 903 | JUN/82 | NBCG | unknown | BCLR | unknown | Amusement | Yes | OK | Yes
+ * 12.7 | Keno | 903/4? | JUL/82 | KCG | 6300060 | POKCLR | 6600020 | Amusement | Yes | OK | Yes
+ * 12.8 | Arcade Game (Draw Poker) | 903 | JUL/82 | PKCG | 6300010 | POKCLR | 6600020 | Amusement | Yes | OK | Yes
+ 13.4 | Nudge Bingo | 903 | SEP/82 | NBCG | 6300040 | BCLR | 6600040 | Amusement | Yes | OK | Yes
+ 14.5 | Pixels | 903 | DEC/82 | PIXCG | 6300070 | PIXCLR | 6600050 | Amusement | Yes | OK | Yes
+ 14.7 | Nudge Bingo | 903 | | NBCG | 6300040 | BCLR | 6600040 | Amusement | No | | No
+ 15.0 | Punchboard | 903 | | PBCG | 6300190 | PBCLR | 6600130 | Gaming Wash | No | | No
+ 15.7 | Double-Draw Poker | 903 | JAN/83 | CPKCG | 6300010 | POKCLR | 6600020 | Amusement | Yes | OK | Yes
+ 15.8 | Poker Montana | ? | | CPKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
+ 15.9 | Wild Double-Up | 905 | JAN/83 | JKR2CG | 6300100 | WLDCLR | 6600010 | Amusement | Yes | OK | Yes
+ 16.2 | Gaming Lottery | ? | | LCG | 6300050 | LOTCLR | 6600030 | Gaming | No | | No
+ 16.3 | Black Jack | ? | | CPKCG | 6300010 | POKCLR | 6600020 | Amusement | No | | No
+ 16.4 | K.I.S.S. Keno | 904 | MAY/83 | KCG | 6300060 | PCLR | 6600020 | Amusement | Yes | IC | Yes
+ 16.5 | K.I.S.S. Poker | ? | | POKER | 6300010 | POKCLR | 6600020 | Amusement | No | | No
+ 16.6 | Nudge Bingo | ? | | NBCG | 6300040 | BCOLOR | 6600040 | Amusement | No | | No
+ 16.7 | Poker | ? | | PCG | 6300010 | POKCLR | 6600020 | Amusement | No | | No
+ 16.8 | Keno | 903 | MAR/83 | KCG | 6300060 | POKCLR | 6600020 | Amusement | Yes | OK | Yes
+ 17.0 | Poker | 905 | | POKERCGs | 6300010 | PKRCLR | 6600020 | Amusement | No | | No
+ 17.1 | Nudge Bingo | ? | | NBCG | 6300040 | BCOLOR | 6600040 | Amusement | No | | No
+ 17.2 | Double/Double Poker | 905 | MAY/83 | JKRPKR | 6300100 | WLDCLR | 6600010 | Amusement | Yes | OK | Yes
+ 17.3 | Casino Poker | ? | | PKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
+ 17.4 | Gin Gaming | ? | | GCG0.2 | 6300080 | GINCLR | 6600060 | Nevada Gaming | No | | No
+ 17.5 | Gaming Draw Poker | 903 | DEC/84 | PKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | Yes | OK | Yes
+ 17.6 | Nudge | 903 | SEP/82 | NBCG | 6300040 | BCLR | 6600040 | Amusement | Yes | OK | Yes
+ 17.7 | Keno | ? | | KCG | 6300060 | POKCLR | 6600020 | Gaming | No | | No
+ 17.9 | AWP Poker | ? | | PKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
+ * 18.0 | Gin | 905 | | GCG2 | 6300110 | MLTCLR | 6600070 | Amusement | No | | No
+ 18.1 | Nudge | ? | JUL/83 | NBCG | 6300040 | BCLR | 6600040 | Amusement | Yes | OK | Yes
+ 18.2 | Amusement Poker | 905 | | JKRCG02 | 6300100 | WLDCLR | 6600010 | Amusement | No | | No
+ 18.3 | Pixels | 905 | AUG/83 | PXCG | 6300070 | PIXCLR | 6600050 | Amusement | Yes | OK | Yes
+ 18.4 | Double Draw-Lebanon | ? | | PKCG | 6300010 | POKCLR | 6600020 | Amusement | No | | No
+ 18.5 | Pixels | 905 | AUG/83 | PXCG | 6300070 | PIXCLR | 6600050 | Amusement | Yes | OK | Yes
+ 18.6 | Pixels | 905 | AUG/83 | PXCG | 6300070 | PIXCLR | 6600050 | Amusement | Yes | OK | Yes
+ 18.7 | Amusement Poker (skill) | 905 | AUG/83 | JKRTWO | 6300100 | MLTCLR | 6600070 | Amusement | Yes | BD | Yes
+ 18.8 | Poker-Lebanon | ? | | PKCG | 6300010 | POKCLR | 6600020 | Amusement | No | | No
+ 18.9 | Pixels (french) | ? | | PIXCG | 6300070 | PIXCLR | 6600050 | Amusement | No | | No
+ 19.0 | Hi-Score Poker | ? | | JKRTWO | 6300100 | WLDCLR | 6600070 | Amusement | No | | No
+ * 19.1 | Super Blackjack | 905 | AUG/83 | JKRTWO? | 6300100 | MLTCLR | 6600070 | Amusement | No | | No
+ 19.2 | AWP Poker | ? | | PKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
+ 19.3 | Gin | 905 | | GCG2 | 6300110 | MLTCLR | 6600070 | Amusement | No | | No
+ 19.4 | Pixels (french) | ? | | PIXCG | 6300070 | PIXCLR | 6600050 | Amusement | No | | No
+ 19.7 | Ind. Wild Double-Up | ? | | JKRCG | 6300100 | WLDCLR | 6600070 | Amusement | No | | No
+ 19.9 | Double-Up Nudge | ? | | NUDGE | 6300040 | BCOLOR | 6600040 | Amusement | No | | No
+ 20.1 | Poker | ? | | GPKCG | 6300010 | POKCLR | 6600020 | Amusement | No | | No
+ 20.4 | Super Blackjack | 905 | FEB/84 | JKRTWO | 6300100 | MLTCLR | 6600070 | Amusement | Yes | OK | Yes
+ * 20.5 | Blackjack? | 905 | FEB/84 | JKRTWO? | 6300100 | MLTCLR | 6600070 | Amusement | No | | No
+ 20.7 | Double-Up Nudge | ? | | NUDGECG | 6300040 | BCOLOR | 6600040 | Amusement | No | | No
+ 20.8 | Winner's Choice | ? | FEB/84 | MLT2CG | 6300130 | MLTCLR | 6600070 | Amusement | Yes | OK | Yes
+ 20.9 | Gaming Poker-Europe | ? | | PKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
+ 21.1 | AWP Poker | ? | | POKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
+ 21.2 | Video Slot | ? | | SL1CG | 6300180 | SLC1 | 6600120 | Gaming | No | | No
+ 21.4 | Wild Double-Up Poker | ? | | WLDCG | 6300100 | WLDCLR | 6600010 | Amusement | No | | No
+ 21.5 | Double/Double Poker | ? | | JKRTWO | 6300100 | WLDCLR | 6600010 | Amusement | No | | No
+ * 21.6 | Wild Double-Up? | 905 | JUN/84 | WLDCG | 6300100 | WLDCLR | 6600010 | Amusement | No | | No
+ * 21.7 | Poker? | 905 | MAY/84 | GPKCG? | 6300010 | POKCLR | 6600020 | Amusement | No | | No
+ 21.9 | Amusement Poker | ? | | JKRCG | 6300100 | WLDCLR | 6600010 | Amusement | No | | No
+ 22.1 | Poker | ? | | PKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
+ 22.7 | Amusement Poker (dbl/dbl)| 905 | JUL/84 | JKRPKR | 6300100 | WLDCLR | 6600010 | Amusement | Yes | OK | Yes
+ 22.8 | Tennesee Wild Poker | 905 | | JKR2CG | 6300100 | MLTCLR | 6600070 | Amusement | No | | No
+ 22.9 | Double/Double Poker | 905 | | JKRTWO | 6300100 | MLTCLR | 6600010 | Amusement | No | | No
+ 23.0 | FC Bingo (4-card) | 905 | JUN/84 | FCBCG | 6300150 | FCBCLR | 6600100 | Amusement | Yes | BD | Yes
+ 23.2 | Pixels | ? | | PIXCG | 6300070 | PIXCLR | 6600050 | Amusement | No | | No
+ * 23.6 | Hotline | 905 | OCT/84 | HLCG | 6300160 | HLCLR | 6600110 | Amusement | Yes | OK | Yes
+ 23.7 | AWP Blackjack | ? | | POKER | 6300010 | POKCLR | 6600020 | Gaming | No | | No
+ 23.9 | G.Draw Poker (discard) | 904 | JAN/85 | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | Yes | OK | Yes
+ 24.0 | Gaming Draw Poker (hold) | 904 | MAY/85 | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | Yes | OK | Yes
+ 24.2 | Export Poker | ? | | GPKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
+ 24.3 | Gaming Blackjack | ? | | GPKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
+ 24.5 | Wild Double-Up | ? | | JKPKCG | 6300100 | WLDCLR | 6600010 | Amusement | No | | No
+ 24.6 | Hotline | 905 | JAN/85 | HLCG | 6300160 | HLCLR | 6600110 | Amusement | Yes | OK | Yes
+ 24.8 | Poker (discard) | ? | | PKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
+ 24.9 | Poker (hold) | ? | | PKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
+ 25.3 | 4-Card Bingo-Gaming | ? | | FCB1CG | 6300150 | FCB1CLR | 6600100 | Gaming | No | | No
+ 25.4 | Indian 4-Card Bingo | ? | | FCBCG | 6300150 | FCB1CLR | 6600100 | Amer-Indian | No | | No
+ 25.5 | Wild Double-Up Poker | ? | | JKRCG | 6300100 | WILD | 6600010 | Amusement | No | | No
+ 25.6 | Mr. Domino | ? | | DOMCG | 6300140 | DOMCLR | 6600080 | Amusement | No | | No
+ 25.7 | Mr. Domino | ? | | DOMCG | 6300140 | DOMCLR | 6600080 | Amusement | No | | No
+ 25.8 | Poker | ? | | PKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
+ 26.3 | Wild Double-Up Poker | ? | | JKRCG | 6300100 | WILD | 6600010 | Amusement | No | | No
+ 26.5 | 4-Reel Slot | ? | | SLOT4CG | 6300220 | SL4CLR | 6600140 | Gaming | No | | No
+ 26.6 | Poker | ? | | GPKCG | 6300250 | POKCLR | 6600020 | Nevada Gaming | No | | No
+ 26.8 | Wild Double-Up Poker | ? | | JKRCG | 6300260 | WILD | 6600010 | Nevada Gaming | No | | No
+ 27.1 | Tourney Gaming Poker | ? | | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
+ 27.2 | Arcade Keno | ? | AUG/85 | KJCG | 6300060 | POKCLR | 6600020 | Montana | Yes | OK | Yes
+ * 27.2 | Arcade Keno | ? | AUG/85 | KJCG | 6300060 | POKCLR | 6600020 | Gaming | Yes | OK | Yes
+ 27.3 | Export Poker | ? | | PKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
+ 27.4 | Keno II | ? | | KJCG | 6300060 | POKCLR | 6600020 | Montana | No | | No
+ 27.5 | Keno (Austria) | ? | | KENOCG | 6300060 | POKCLR | 6600020 | Gaming | No | | No
+ 27.6 | Slot 8 | ? | | SL8CG | 6300290 | SLOT4CLR | 6600140 | Gaming | No | | No
+ 27.9 | 3-Reel Slot, Gaming | ? | | SL2CG | 6300280 | SL2CLR | 6600120 | Nevada Gaming | No | | No
+ 28.0 | 3-Reel Slot | ? | | SL2CG | 6300180 | SL2CLR | 6600120 | Gaming | No | | No
+ 28.2 | Hotline | ? | | HLCG | 6300160 | HLCLR | 6600110 | Amusement | No | | No
+ 28.5 | Hotline | ? | | HLCG | 6300130 | HLCLR | 6600110 | Amusement | No | | No
+ 29.0x| Stand or Draw Poker | ? | | ST2CG | 6300270 | ST2CLR | 6600150 | Nevada Gaming | No | | No
+ 30.0x| Casino 21 | ? | | GPKCG | 6300250 | WILD | 6600010 | Nevada Gaming | No | | No
+ 31.0x| Poker (discard) | ? | | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
+ 32.0x| Poker (hold) | ? | | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
+ 33.0x| Keno | ? | | KJCG | 6300060 | POKCLR | 6600020 | Nevada Gaming | No | | No
+ 34.0x| Keno (Austria) | ? | | KJCG | 6300060 | POKCLR | 6600020 | Gaming | No | | No
+ 35.0x| 1-3 Sign Poker (discard) | ? | | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
+ 36.0x| 1-3 Sign Poker (hold) | ? | | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
+ 37.0x| Amusement Keno | ? | | KJCG | 6300060 | POKCLR | 6600020 | Montana | No | | No
+ 39.0x| 3-Reel Slot | ? | | SBARCG | 6300305 | JKRSLOT | 6600170 | Nevada Gaming | No | | No
+ 39.0x| 3-Reel Slot | ? | | PLAIN7CG | 6300309 | JKRSLOT | 6600170 | Nevada Gaming | No | | No
+ 39.0x| 3-Reel Slot | ? | | JWCG | 6300313 | JKRSLOT | 6600170 | Nevada Gaming | No | | No
+ 40.0x| Poker w/Wild Card | 903 | | JKRCG | 6300260 | WLDCLR | 6600010 | Nevada Gaming | No | | No
+ 41.0x| Do-it-yourself Bingo | ? | | KCG | 6300060 | PKRCLR | 6600020 | Amer-Indian | No | | No
+ 42.0x| Mr. Domino | ? | | NDMCG | 6300300 | DOMCLR | 6600080 | Amusement | No | | No
+ 43.0x| Export Poker | ? | | GPKCG | 6300170 | POKCLR | 6600020 | Gaming | No | | No
+ 44.0x| Tourney Poker (discard) | ? | | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
+ 45.0x| Tourney Poker (hold) | ? | | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
+ 46.0x| Gaming Poker | ? | | GPKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
+ 47.0x| 4-Card Indian Bingo | ? | | FCB7CG | 6300150 | FCB7CLR | 6600100 | Amer-Indian | No | | No
+ 48.0x| Keno | ? | | KJCG | 6300060 | POKCLR | 6600020 | Montana | No | | No
+ 51.08| Poker (906-III) | 906-III | | GP2CG | unknown | WILD | unknown | Nevada Gaming | Yes | OK | Yes
+ | | | | | | | | | | |
+ * 903d | System 903 Diag.PROM | 903 | unknown | any | unknown | any | unknown | Testing H/W | Yes | OK | Yes
+ * 905d | System 905 Diag.PROM | 905 | unknown | any | unknown | any | unknown | Testing H/W | Yes | OK | Yes
(*) Not in the original list.
@@ -394,7 +394,7 @@
The whole map is mirrored to $8000-$FFFF.
- --- System 906 III ---
+ --- System 906-III ---
$0000 - $07FF NVRAM ; All registers and settings.
$2C08 - $2C08 AY-8912 ; Read/Control.
@@ -437,6 +437,18 @@
--------------
+ [2021-04-20]
+
+ - Reworked a lot of things to get the 906-III platform playable.
+ - Switched to Rockwell R65C02 CPU.
+ - Added missing 906-III inputs, timers, clocks and connections.
+ - Renamed Game 58.01 to CEI 51.08 (CEI 906-III Poker).
+ The game is promoted to WORKING.
+ - Added Casino 21 UCMC/IWC (ver 30.08). The game is working.
+ - Added Poker UCMC/IWC (ver 162.03). The game is working.
+ - Added Poker UCMC/IWC (ver 162.03 20-6-91). The game is working.
+
+
[2010-08-20]
- Added Game 24.0 (Gaming Draw Poker, hold). The game is playable.
@@ -632,7 +644,10 @@
- Improve 903/905 inputs.
- Interrupts for System 903/904 UART.
- Complete the PIAs connection.
- - 906III: PIAs & AY8912 ports, inputs, etc...
+ - 906III: Proper PIATs 65C24 devices.
+ - 906III: GFX banks, proper bank3 selector.
+ - 906III: EX and Turbo+ platforms support.
+ - Hopper support.
- Parent/clone relationship.
- Fix lamps.
@@ -642,20 +657,10 @@
#include "emu.h"
#include "includes/calomega.h"
-#include "cpu/m6502/m6502.h"
-#include "cpu/m6502/m65c02.h"
-#include "machine/nvram.h"
-#include "sound/ay8910.h"
-#include "video/mc6845.h"
-
-#include "screen.h"
-#include "speaker.h"
-
-
-#define MASTER_CLOCK XTAL(10'000'000)
-#define CPU_CLOCK (MASTER_CLOCK/16)
-#define UART_CLOCK (MASTER_CLOCK/16)
-#define SND_CLOCK (MASTER_CLOCK/8)
+#define MASTER_CLOCK XTAL(10'000'000)
+#define CPU_CLOCK (MASTER_CLOCK/16)
+#define UART_CLOCK (MASTER_CLOCK/16)
+#define SND_CLOCK (MASTER_CLOCK/8)
/**************************************************
@@ -687,8 +692,6 @@ void calomega_state::s903_mux_w(uint8_t data)
m_s903_mux_data = data ^ 0xff; /* inverted */
}
-
-
uint8_t calomega_state::s905_mux_port_r()
{
switch( m_s905_mux_data & 0x0f ) /* bits 0-3 */
@@ -707,62 +710,102 @@ void calomega_state::s905_mux_w(uint8_t data)
m_s905_mux_data = data ^ 0xff; /* inverted */
}
-
/********* 906III PIAs debug *********/
-uint8_t calomega_state::pia0_ain_r()
-{
- /* Valid input port. Each polled value is stored at $0538 */
- logerror("PIA0: Port A in\n");
- return m_in0->read();
-}
-
uint8_t calomega_state::pia0_bin_r()
{
- logerror("PIA0: Port B in\n");
+ //logerror("PIA0: Port B in\n");
return 0xff;
}
void calomega_state::pia0_aout_w(uint8_t data)
{
- logerror("PIA0: Port A out: %02X\n", data);
+ //logerror("PIA0: Port A out: %02X\n", data);
}
void calomega_state::pia0_bout_w(uint8_t data)
{
- logerror("PIA0: Port B out: %02X\n", data);
-}
-
-WRITE_LINE_MEMBER(calomega_state::pia0_ca2_w)
-{
- /* Seems a kind of "heartbit" watchdog, switching 1's and 0's */
- logerror("PIA0: CA2: %02X\n", state);
+ //logerror("PIA0: Port B out: %02X\n", data);
}
-
-
uint8_t calomega_state::pia1_ain_r()
{
- logerror("PIA1: Port A in\n");
- return 0xff;
+ switch( m_s905_mux_data & 0x03 ) /* bits 0-3 */
+ {
+ case 0x00: return m_in0_0->read();
+ case 0x01: return m_in0_1->read();
+ case 0x02: return m_in0_2->read();
+ case 0x03: return m_in0_3->read();
+ }
+ return m_frq->read(); /* bit6 used for 50/60 Hz selector */
}
uint8_t calomega_state::pia1_bin_r()
{
- logerror("PIA1: Port B in\n");
+ //logerror("PIA1: Port B in\n");
return 0xff;
}
void calomega_state::pia1_aout_w(uint8_t data)
{
- logerror("PIA1: Port A out: %02X\n", data);
+ m_s905_mux_data = data >> 6;
+ //logerror("PIA1: Port A out (906III mux): %02X\n", m_s905_mux_data);
}
void calomega_state::pia1_bout_w(uint8_t data)
{
- logerror("PIA1: Port B out: %02X\n", data);
+ //logerror("PIA1: Port B out: %02X\n", data);
}
+TIMER_DEVICE_CALLBACK_MEMBER( calomega_state::timer_a )
+{
+ m_timera=!m_timera;
+}
+
+TIMER_DEVICE_CALLBACK_MEMBER( calomega_state::timer_b )
+{
+ m_timerb = !m_timerb;
+ if( m_timerb & !piat_state){
+ piat_state = true;
+ piat_b_ctl_r = 0xe0;
+ m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
+ }
+ else
+ piat_state=false;
+}
+
+TIMER_DEVICE_CALLBACK_MEMBER( calomega_state::timer_c )
+{
+ m_timerc=!m_timerc;
+ //logerror("TIMER A: %02X\n", m_timera);
+}
+
+READ_LINE_MEMBER(calomega_state::timera_r)
+{
+ //logerror("%TIMER_A_READ_IRQ 11.6f at %s \n",machine().time().as_double(),machine().describe_context());
+ return m_timera;
+}
+
+READ_LINE_MEMBER(calomega_state::timerc_r)
+{
+ return !m_timerc;
+}
+
+WRITE_LINE_MEMBER(calomega_state::pia0_ca2_w)
+{
+ // Seems a kind of "heartbit" watchdog, switching 1's and 0's
+
+ //m_xxx = state;
+ //logerror("PIA0: CA2: %02X\n", state);
+}
+
+WRITE_LINE_MEMBER(calomega_state::cpu_sync)
+{
+ //CA1 & CB1 updates
+ m_pia[1]->read(3);
+ m_pia[1]->read(1);
+
+};
/******** Lamps debug ********
@@ -816,6 +859,33 @@ void calomega_state::lamps_905_w(uint8_t data)
m_lamps[7] = BIT(~data, 7); /* L8 (unknown) */
}
+uint8_t calomega_state::piat_read(offs_t offset)
+{
+ uint8_t ret=0;
+ switch( offset & 0x03 )
+ {
+ case 0x00: ret = 0; break;
+ case 0x01: ret = 0; break;
+ case 0x02: ret = 0; break;
+ case 0x03: if(piat_b_ctl_r == 0xe0){
+ ret = piat_b_ctl_r;
+ piat_b_ctl_r = 0;
+ //logerror("Piat Control Read %x \n", ret);
+ }; break;
+ }
+ return ret;
+}
+
+void calomega_state::piat_write(offs_t offset, uint8_t data)
+{
+ switch( offset & 0x03 )
+ {
+ case 0x00: piat_b_thi = data; piat_b_timer = piat_b_tlo + (piat_b_thi * 0x100); break;
+ case 0x01: piat_01 = data; break;
+ case 0x02: piat_b_tlo = data; piat_b_timer = piat_b_tlo + (piat_b_thi * 0x100); piat_b_enable = true; break;
+ case 0x03: piat_b_ctl_w = data; break;
+ }
+}
/*************************************************
* Memory map information *
@@ -866,8 +936,11 @@ void calomega_state::sys905_map(address_map &map)
void calomega_state::sys906_map(address_map &map)
{
- map(0x0000, 0x07ff).ram().share("nvram");
+ //map(0x0000, 0x07ff).ram().share("nvram");
+ map(0x0000, 0x1fff).ram().share("nvram");
map(0x280c, 0x280f).rw("pia0", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
+ map(0x2810, 0x2811).rw(m_acia6850_0, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
+ map(0x2820, 0x2823).rw(FUNC(calomega_state::piat_read), FUNC(calomega_state::piat_write)); // 16/4 15:25
map(0x2824, 0x2827).rw("pia1", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
map(0x2c04, 0x2c04).w("crtc", FUNC(mc6845_device::address_w));
map(0x2c05, 0x2c05).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
@@ -2275,41 +2348,194 @@ static INPUT_PORTS_START( ssipkr )
PORT_DIPSETTING( 0x00, "50Hz." )
INPUT_PORTS_END
+
static INPUT_PORTS_START( stand906 )
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("0-1") PORT_CODE(KEYCODE_1)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("0-2") PORT_CODE(KEYCODE_2)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("0-3") PORT_CODE(KEYCODE_3)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("0-4") PORT_CODE(KEYCODE_4)
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("0-5") PORT_CODE(KEYCODE_5)
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("0-6") PORT_CODE(KEYCODE_6)
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("0-7") PORT_CODE(KEYCODE_7)
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("0-8") PORT_CODE(KEYCODE_8)
-
- PORT_START("SW2") /* Tied to AY8912 port. Covered with tape except SW2-8 */
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:1")
+ PORT_START("IN0-0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) /* credits */
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Deal / Draw")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) PORT_NAME("Cancel Discards")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_STAND ) PORT_NAME("Stand/DVTR")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("IN0-1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) PORT_NAME("Coin Out")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_H) PORT_NAME("Hopper Height") PORT_TOGGLE
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_DOOR ) PORT_NAME("Door") PORT_TOGGLE
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_9) PORT_NAME("Menu")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Hand Pay")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE) PORT_CODE(KEYCODE_R) PORT_NAME("Error Reset")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("IN0-2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Discard 1")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Discard 2")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Discard 3")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Discard 4")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Discard 5")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("IN0-3")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_D) PORT_NAME("Drop Door") PORT_TOGGLE
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_BET )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8)PORT_NAME("Change")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_0)PORT_NAME("Prog. Hip")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("SW1") // settings (PIAT1)
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1")
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:2")
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2")
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:3")
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:4")
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4")
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:5")
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:5")
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6")
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:6")
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7")
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7")
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8")
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("SW2") // Tied to AY8912 port. Covered with tape except SW2-8
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7")
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:5")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:4")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:3")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:2")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:1")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( cas21iwc )
+
+ PORT_START("IN0-0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) PORT_NAME("Coin In (Fichas Entrada)")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_NAME("Take (Cobrar)")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("IN0-1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_IMPULSE(2) PORT_NAME("Coin Out (Fichas Salida)")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_H) PORT_NAME("Hopper Height (Peso Tolva)") PORT_TOGGLE
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_DOOR ) PORT_NAME("Door (Puerta)") PORT_TOGGLE
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_9) PORT_NAME("Menu")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Hand Pay (Pago Manual)")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE) PORT_CODE(KEYCODE_R) PORT_NAME("Error Reset (Correccion Error)")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("IN0-2") // TODO: BJ predef inputs...
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_CODE(KEYCODE_X) PORT_NAME("Deal (Dar) / Cierre")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_CODE(KEYCODE_C) PORT_NAME("Double-Up (Doblar)")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_CODE(KEYCODE_V) PORT_NAME("Hit (Pedir)")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_STAND ) PORT_CODE(KEYCODE_B) PORT_NAME("Stand (Plantar) / Desv")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("IN0-3")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_D) PORT_NAME("Drop Door (Cajon Abierto)") PORT_TOGGLE
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Bet (Apuesta)")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8)PORT_NAME("Attendant (Asistente)")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("SW1") // settings (PIAT1)
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2")
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("SW2") // Tied to AY8912 port. Covered with tape except SW2-8
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7")
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:5")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:4")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:3")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:2")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:1")
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@@ -2566,6 +2792,7 @@ WRITE_LINE_MEMBER(calomega_state::write_acia_clock)
update_aciabaud_scale(0);
}
+
/*************************************************
* Machine Drivers *
*************************************************/
@@ -2657,34 +2884,46 @@ void calomega_state::sys905(machine_config &config)
config.device_remove("aciabaud");
}
-
void calomega_state::sys906(machine_config &config)
{
sys903(config);
/* basic machine hardware */
-
- M65C02(config.replace(), m_maincpu, CPU_CLOCK); /* guess */
+ R65C02(config.replace(), m_maincpu, CPU_CLOCK); // confirmed
m_maincpu->set_addrmap(AS_PROGRAM, &calomega_state::sys906_map);
+ m_maincpu->sync_cb().set(FUNC(calomega_state::cpu_sync));
- m_pia[0]->readpa_handler().set(FUNC(calomega_state::pia0_ain_r));
+ m_pia[0]->readpa_handler().set_ioport("SW1");
m_pia[0]->readpb_handler().set(FUNC(calomega_state::pia0_bin_r));
m_pia[0]->writepa_handler().set(FUNC(calomega_state::pia0_aout_w));
m_pia[0]->writepb_handler().set(FUNC(calomega_state::pia0_bout_w));
m_pia[0]->ca2_handler().set(FUNC(calomega_state::pia0_ca2_w));
+ m_pia[0]->irqa_handler().set_inputline("maincpu", M6502_IRQ_LINE); //* 280D 13/04
+ //m_pia[0]->irqb_handler().set_inputline("maincpu", M6502_IRQ_LINE); 13/04
m_pia[1]->readpa_handler().set(FUNC(calomega_state::pia1_ain_r));
m_pia[1]->readpb_handler().set(FUNC(calomega_state::pia1_bin_r));
+ //m_pia[1]->readca1_handler().set(FUNC(calomega_state::vblank_r));
+ m_pia[1]->readca1_handler().set(FUNC(calomega_state::timera_r));
+ m_pia[1]->readcb1_handler().set(FUNC(calomega_state::timerc_r));
m_pia[1]->writepa_handler().set(FUNC(calomega_state::pia1_aout_w));
m_pia[1]->writepb_handler().set(FUNC(calomega_state::pia1_bout_w));
+ m_pia[1]->irqa_handler().set_inputline("maincpu", M6502_IRQ_LINE); //* 2825 13/04
+ m_pia[1]->irqb_handler().set_inputline("maincpu", M6502_IRQ_LINE); //* 2827 13/04
m_gfxdecode->set_info(gfx_sys906);
/* sound hardware */
- subdevice<ay8912_device>("ay8912")->port_a_read_callback().set_ioport("SW2"); /* From PCB pic. Value is stored at $0539 */
+ ay8912_device &ay8912(AY8912(config.replace(), "ay8912", SND_CLOCK)); // confirmed
+ ay8912.port_a_read_callback().set_ioport("SW2"); // from schematics
+ ay8912.add_route(ALL_OUTPUTS, "mono", 0.75);
+
+ TIMER(config, "timer_a").configure_periodic(FUNC(calomega_state::timer_a), attotime::from_hz(610)); //960
+ TIMER(config, "timer_c").configure_periodic(FUNC(calomega_state::timer_c), attotime::from_hz(60)); //1111
+ TIMER(config, "timer_b").configure_periodic(FUNC(calomega_state::timer_b), attotime::from_hz(100));
+ //config.device_remove("acia6850_0");
+ //config.device_remove("aciabaud");
- config.device_remove("acia6850_0");
- config.device_remove("aciabaud");
}
@@ -3638,6 +3877,78 @@ ROM_START( ssipkr40 ) /* (gfx and prom from jjpoker) */
ROM_LOAD( "tunipoker.u28", 0x0000, 0x0100, BAD_DUMP CRC(5101a33b) SHA1(a36bc421064d0ed96beb27b549f69adce0a553c2) )
ROM_END
+/*
+ Casino 21 / Black Jack
+ UMCM / IWC
+ Ver 30.08
+
+ Looks like a sort of 906 III hardware
+
+*/
+ROM_START( cas21iwc ) // still need the complete title
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "1.bin", 0x6000, 0x2000, CRC(c6c60700) SHA1(8c613211a22f5c23a9971092b996d29a4e0ae83d) ) // not program... just some data to be checked.
+ ROM_LOAD( "2.bin", 0x8000, 0x2000, CRC(c7bc884e) SHA1(e3a610362dc04d977b8bbd8549b9ce26a716867f) )
+ ROM_LOAD( "3.bin", 0xa000, 0x2000, CRC(2be52026) SHA1(8318b340e2a5b6127c459d140078d105f16d8f32) )
+ ROM_LOAD( "4.bin", 0xc000, 0x2000, CRC(0289aeac) SHA1(44bbbf4703c5dee460915e44839a53b97797f09d) )
+ ROM_LOAD( "5.bin", 0xe000, 0x2000, CRC(e53b0112) SHA1(cff4d2467a6e3d322cdf5ddd9034099c8a0b7a8c) )
+
+ ROM_REGION( 0x6000, "gfx1", 0 )
+ ROM_LOAD( "cgc.bin", 0x0000, 0x2000, CRC(c69ab916) SHA1(316fabf35184007b29da91b3fec0a5c4ce8cded3) )
+ ROM_LOAD( "cgb.bin", 0x2000, 0x2000, CRC(62630d24) SHA1(88e89b41cae02b34767fac0a75506ee44f033422) )
+ ROM_LOAD( "cga.bin", 0x4000, 0x2000, CRC(ce444eb6) SHA1(3d8c6f047c141931e55ff9101832fa5cae73576d) )
+
+ ROM_REGION( 0x200, "proms", 0 ) // borrowed from other set, upper half is empty
+ ROM_LOAD( "n82s129n.u16", 0x0000, 0x0100, CRC(a26a8fae) SHA1(d570fe9443a0912bd34b81ac4c3e4c5f8901f523) )
+ROM_END
+
+/*
+ Poker
+ UCMC / IWC
+ Ver 162.03
+ Looks like a sort of 906 III hardware
+
+*/
+ROM_START( pokeriwc ) // still need the complete title
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "numeral_1.bin", 0x6000, 0x2000, CRC(c099dc4c) SHA1(4eec1fb0d8f1d2b31ac397991594e02bd9156348) )
+ ROM_LOAD( "numeral_2.bin", 0x8000, 0x2000, CRC(20d42fb2) SHA1(aae6704719b80f3c8c994d91ceebaae070d1153f) )
+ ROM_LOAD( "numeral_3.bin", 0xa000, 0x2000, CRC(2cea3ba1) SHA1(c0edc7e9102744362bdca63a75c7ba344cbb0e6c) )
+ ROM_LOAD( "numeral_4.bin", 0xc000, 0x2000, CRC(742676b0) SHA1(28f565fe75120000e049fb099bced4297a0bab1f) )
+ ROM_LOAD( "numeral_5.bin", 0xe000, 0x2000, CRC(d9b7c85c) SHA1(bec03c0cef38d0d4a93a8ef4c4ddbed0b67ebaf3) )
+
+ ROM_REGION( 0x6000, "gfx1", 0 )
+ ROM_LOAD( "cgc.bin", 0x0000, 0x2000, CRC(c69ab916) SHA1(316fabf35184007b29da91b3fec0a5c4ce8cded3) )
+ ROM_LOAD( "cgb.bin", 0x2000, 0x2000, CRC(62630d24) SHA1(88e89b41cae02b34767fac0a75506ee44f033422) )
+ ROM_LOAD( "cga.bin", 0x4000, 0x2000, CRC(ce444eb6) SHA1(3d8c6f047c141931e55ff9101832fa5cae73576d) )
+
+ ROM_REGION( 0x200, "proms", 0 ) // borrowed from other set, upper half is empty
+ ROM_LOAD( "n82s129n.u16", 0x0000, 0x0100, CRC(a26a8fae) SHA1(d570fe9443a0912bd34b81ac4c3e4c5f8901f523) )
+ROM_END
+
+/*
+ Poker
+ IWC
+ Ver 162 20-6-91
+ 906 III hardware
+
+*/
+ROM_START( pokiwc162 ) // Joker Wild?
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "j_k.u28", 0x6000, 0x2000, CRC(8a6e93b0) SHA1(a411cb4cd3980934cbc9b170b118348a9a4ac896) )
+ ROM_LOAD( "v162_n2_spanish_pok_20-6-91_iwc.u29", 0x8000, 0x2000, CRC(20d42fb2) SHA1(aae6704719b80f3c8c994d91ceebaae070d1153f) )
+ ROM_LOAD( "v162_n3_spanish_pok_20-6-91_iwc.u30", 0xa000, 0x2000, CRC(2cea3ba1) SHA1(c0edc7e9102744362bdca63a75c7ba344cbb0e6c) )
+ ROM_LOAD( "v162_n4_spanish_pok_20-6-91_iwc.u31", 0xc000, 0x2000, CRC(742676b0) SHA1(28f565fe75120000e049fb099bced4297a0bab1f) )
+ ROM_LOAD( "v162_n5_spanish_pok_20-6-91_iwc.u32", 0xe000, 0x2000, CRC(d9b7c85c) SHA1(bec03c0cef38d0d4a93a8ef4c4ddbed0b67ebaf3) )
+
+ ROM_REGION( 0x6000, "gfx1", 0 )
+ ROM_LOAD( "v162_cgc_iwc_argentina.u4", 0x0000, 0x2000, CRC(c69ab916) SHA1(316fabf35184007b29da91b3fec0a5c4ce8cded3) )
+ ROM_LOAD( "v162_cgb_iwc_argentina.u5", 0x2000, 0x2000, CRC(62630d24) SHA1(88e89b41cae02b34767fac0a75506ee44f033422) )
+ ROM_LOAD( "v162_cga_iwc_argentina.u6", 0x4000, 0x2000, CRC(ce444eb6) SHA1(3d8c6f047c141931e55ff9101832fa5cae73576d) )
+
+ ROM_REGION( 0x100, "proms", 0 )
+ ROM_LOAD( "n82s129n.u16", 0x0000, 0x0100, CRC(a26a8fae) SHA1(d570fe9443a0912bd34b81ac4c3e4c5f8901f523) )
+ROM_END
/*************************************************
* Driver Init *
@@ -3678,56 +3989,89 @@ void calomega_state::init_comg080()
PRGROM[0x3fff] = 0x26;
}
+void calomega_state::init_comg5108()
+{
+ uint8_t *PRGROM = memregion( "maincpu" )->base();
+ PRGROM[0xc080] = 0xff; // CHECKSUM ERROR FLAG - No changes for now.
+ // Debug
+ //PRGROM[0xc080] = 0x00; // CHECKSUM ERROR FLAG (at start)
+ //PRGROM[0xbf0e] = 0x00; // CHECKSUM ERROR FLAG (on the fly)
+ //PRGROM[0xbfb4] = 0x00; // RAM ERROR FLAG
+ //PRGROM[0xb6A0] = 0x00; // ERROR LOW BATTERY FLAG
+ //PRGROM[0xb6AA] = 0x00; // ERROR LOW BATTERY FLAG
+}
+
+void calomega_state::init_cas21iwc()
+{
+ uint8_t *PRGROM = memregion( "maincpu" )->base();
+
+ PRGROM[0xB603] = 0xff; // Checksum flag. No changes for now.
+}
+
+void calomega_state::init_pokeriwc()
+{
+ uint8_t *PRGROM = memregion( "maincpu" )->base();
+
+ PRGROM[0x8000] = 0xa2; // Checksum flag. No changes for now.
+}
+
/*************************************************
* Game Drivers *
*************************************************/
-/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */
-GAME( 1981, comg074, 0, sys903, comg074, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.4 (Gaming Poker, W.Export)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, comg076, 0, sys903, comg076, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.6 (Arcade Poker)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, comg079, 0, sys903, comg076, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.9 (Arcade Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
-GAME( 1981, comg080, 0, sys903, arcadebj, calomega_state, init_comg080, ROT0, "Cal Omega Inc.", "Cal Omega - Game 8.0 (Arcade Black Jack)", MACHINE_SUPPORTS_SAVE ) /* bad dump */
-GAME( 1981, comg094, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 9.4 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, comg107, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 10.7c (Big Game)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, comg123, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.3 (Ticket Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
-GAME( 1982, comg125, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.5 (Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, comg127, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.7 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, comg128, 0, sys903, comg128, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.8 (Arcade Game)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, comg134, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 13.4 (Nudge Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, comg145, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 14.5 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1983, comg157, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 15.7 (Double-Draw Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1983, comg159, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 15.9 (Wild Double-Up)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1983, comg164, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 16.4 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* incomplete dump */
-GAME( 1983, comg168, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 16.8 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1983, comg172, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 17.2 (Double Double Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1984, comg175, 0, sys903, gdrwpkrd, calomega_state, init_sys903, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 17.51 (Gaming Draw Poker)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, comg176, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 17.6 (Nudge Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, comg181, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.1 (Nudge Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1983, comg183, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.3 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1983, comg185, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.5 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1983, comg186, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.6 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1983, comg187, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.7 (Amusement Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
-GAME( 1984, comg204, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 20.4 (Super Blackjack)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1984, comg208, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 20.8 (Winner's Choice)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1984, comg227, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 22.7 (Amusement Poker, d/d)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1984, comg230, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 23.0 (FC Bingo (4-card))", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
-GAME( 1984, comg236, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 23.6 (Hotline)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1985, comg239, 0, sys903, gdrwpkrd, calomega_state, init_sys903, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 23.9 (Gaming Draw Poker)", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, comg240, 0, sys903, gdrwpkrh, calomega_state, init_sys903, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 24.0 (Gaming Draw Poker, hold)", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, comg246, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 24.6 (Hotline)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1985, comg272a, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 27.2 (Keno, amusement)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1985, comg272b, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 27.2 (Keno, gaming)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 198?, comg5108, 0, sys906, stand906, calomega_state, empty_init, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 51.08 (CEI Video Poker, Jacks or Better)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-
-/************ Diagnostic PROMs ************/
-GAME( 198?, comg903d, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - System 903 Diag.PROM", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 198?, comg905d, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - System 905 Diag.PROM", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-
-/****** Unofficial / 3rd part games *******/
-GAME( 1982, elgrande, 0, s903mod, elgrande, calomega_state, init_s903mod, ROT0, "Enter-Tech, Ltd. / Tuni Electro Service", "El Grande - 5 Card Draw (New)", MACHINE_SUPPORTS_SAVE )
-GAME( 1983, jjpoker, 0, s903mod, jjpoker, calomega_state, init_s903mod, ROT0, "Enter-Tech, Ltd.", "Jackpot Joker Poker (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1983, jjpokerb, jjpoker, s903mod, jjpoker, calomega_state, init_s903mod, ROT0, "Enter-Tech, Ltd.", "Jackpot Joker Poker (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, ssipkr24, 0, s903mod, ssipkr, calomega_state, init_s903mod, ROT0, "SSI", "SSI Poker (v2.4)", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, ssipkr30, ssipkr24, s903mod, ssipkr, calomega_state, init_s903mod, ROT0, "SSI", "SSI Poker (v3.0)", MACHINE_SUPPORTS_SAVE )
-GAME( 1990, ssipkr40, ssipkr24, s903mod, ssipkr, calomega_state, init_s903mod, ROT0, "SSI", "SSI Poker (v4.0)", MACHINE_SUPPORTS_SAVE )
+// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */
+GAME( 1981, comg074, 0, sys903, comg074, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.4 (Gaming Poker, W.Export)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, comg076, 0, sys903, comg076, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.6 (Arcade Poker)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, comg079, 0, sys903, comg076, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.9 (Arcade Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
+GAME( 1981, comg080, 0, sys903, arcadebj, calomega_state, init_comg080, ROT0, "Cal Omega Inc.", "Cal Omega - Game 8.0 (Arcade Black Jack)", MACHINE_SUPPORTS_SAVE ) /* bad dump */
+GAME( 1981, comg094, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 9.4 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg107, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 10.7c (Big Game)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg123, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.3 (Ticket Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
+GAME( 1982, comg125, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.5 (Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg127, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.7 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg128, 0, sys903, comg128, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.8 (Arcade Game)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg134, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 13.4 (Nudge Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg145, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 14.5 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg157, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 15.7 (Double-Draw Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg159, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 15.9 (Wild Double-Up)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg164, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 16.4 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* incomplete dump */
+GAME( 1983, comg168, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 16.8 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg172, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 17.2 (Double Double Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, comg175, 0, sys903, gdrwpkrd, calomega_state, init_sys903, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 17.51 (Gaming Draw Poker)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg176, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 17.6 (Nudge Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg181, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.1 (Nudge Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg183, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.3 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg185, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.5 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg186, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.6 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg187, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.7 (Amusement Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
+GAME( 1984, comg204, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 20.4 (Super Blackjack)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, comg208, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 20.8 (Winner's Choice)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, comg227, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 22.7 (Amusement Poker, d/d)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, comg230, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 23.0 (FC Bingo (4-card))", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
+GAME( 1984, comg236, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 23.6 (Hotline)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1985, comg239, 0, sys903, gdrwpkrd, calomega_state, init_sys903, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 23.9 (Gaming Draw Poker)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, comg240, 0, sys903, gdrwpkrh, calomega_state, init_sys903, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 24.0 (Gaming Draw Poker, hold)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, comg246, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 24.6 (Hotline)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1985, comg272a, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 27.2 (Keno, amusement)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1985, comg272b, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 27.2 (Keno, gaming)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+
+//************ Diagnostic Sets ************
+GAME( 198?, comg903d, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - System 903 Diag.PROM", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 198?, comg905d, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - System 905 Diag.PROM", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+
+//************* 906-III games **************
+GAME( 198?, comg5108, 0, sys906, stand906, calomega_state, init_comg5108, ROT0, "Casino Electronics Inc.", "CEI 51.08 (CEI 906-III Poker)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+
+//****** Unofficial 903/904/905 3rd part games *******
+GAME( 1982, elgrande, 0, s903mod, elgrande, calomega_state, init_s903mod, ROT0, "Enter-Tech, Ltd. / Tuni Electro Service", "El Grande - 5 Card Draw (New)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jjpoker, 0, s903mod, jjpoker, calomega_state, init_s903mod, ROT0, "Enter-Tech, Ltd.", "Jackpot Joker Poker (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jjpokerb, jjpoker, s903mod, jjpoker, calomega_state, init_s903mod, ROT0, "Enter-Tech, Ltd.", "Jackpot Joker Poker (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, ssipkr24, 0, s903mod, ssipkr, calomega_state, init_s903mod, ROT0, "SSI", "SSI Poker (v2.4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, ssipkr30, ssipkr24, s903mod, ssipkr, calomega_state, init_s903mod, ROT0, "SSI", "SSI Poker (v3.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, ssipkr40, ssipkr24, s903mod, ssipkr, calomega_state, init_s903mod, ROT0, "SSI", "SSI Poker (v4.0)", MACHINE_SUPPORTS_SAVE )
+
+//****** Unofficial 906-III family 3rd part games *******
+GAME( 1990, cas21iwc, 0, sys906, cas21iwc, calomega_state, init_cas21iwc, ROT0, "UCMC/IWC", "Casino 21 UCMC/IWC (ver 30.08)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1991, pokeriwc, 0, sys906, stand906, calomega_state, init_pokeriwc, ROT0, "UCMC/IWC", "Poker UCMC/IWC (ver 162.03)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1991, pokiwc162, pokeriwc, sys906, stand906, calomega_state, init_pokeriwc, ROT0, "UCMC/IWC", "Poker UCMC/IWC (ver 162.03 20-6-91)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/includes/calomega.h b/src/mame/includes/calomega.h
index 20ac1c23ba2..4c46a2fe7a9 100644
--- a/src/mame/includes/calomega.h
+++ b/src/mame/includes/calomega.h
@@ -1,13 +1,22 @@
// license:BSD-3-Clause
// copyright-holders:Roberto Fresca
+
#ifndef MAME_INCLUDES_CALOMEGA_H
#define MAME_INCLUDES_CALOMEGA_H
#pragma once
+#include "cpu/m6502/m6502.h"
+#include "cpu/m6502/r65c02.h"
+#include "machine/nvram.h"
+#include "machine/timer.h"
#include "machine/6821pia.h"
#include "machine/6850acia.h"
#include "machine/clock.h"
+#include "sound/ay8910.h"
+#include "video/mc6845.h"
+#include "screen.h"
+#include "speaker.h"
#include "emupal.h"
#include "tilemap.h"
@@ -32,12 +41,17 @@ public:
m_frq(*this, "FRQ"),
m_sw2(*this, "SW2"),
m_lamps(*this, "lamp%u", 1U)
- { }
+ {
+ }
void init_sys903();
void init_comg080();
void init_s903mod();
void init_sys905();
+ void init_comg5108();
+ void init_cas21iwc();
+ void init_pokeriwc();
+
void sys905(machine_config &config);
void s903mod(machine_config &config);
@@ -49,16 +63,23 @@ protected:
virtual void video_start() override;
private:
+ uint8_t piat_read(offs_t offset);
+ void piat_write(offs_t offset, uint8_t data);
void calomega_videoram_w(offs_t offset, uint8_t data);
void calomega_colorram_w(offs_t offset, uint8_t data);
uint8_t s903_mux_port_r();
void s903_mux_w(uint8_t data);
uint8_t s905_mux_port_r();
void s905_mux_w(uint8_t data);
- uint8_t pia0_ain_r();
uint8_t pia0_bin_r();
void pia0_aout_w(uint8_t data);
void pia0_bout_w(uint8_t data);
+
+ TIMER_DEVICE_CALLBACK_MEMBER(timer_a);
+ TIMER_DEVICE_CALLBACK_MEMBER(timer_b);
+ TIMER_DEVICE_CALLBACK_MEMBER(timer_c);
+ DECLARE_READ_LINE_MEMBER(timera_r);
+ DECLARE_READ_LINE_MEMBER(timerc_r);
DECLARE_WRITE_LINE_MEMBER(pia0_ca2_w);
uint8_t pia1_ain_r();
uint8_t pia1_bin_r();
@@ -67,6 +88,7 @@ private:
void lamps_903a_w(uint8_t data);
void lamps_903b_w(uint8_t data);
void lamps_905_w(uint8_t data);
+ DECLARE_WRITE_LINE_MEMBER(cpu_sync);
DECLARE_WRITE_LINE_MEMBER(write_acia_tx);
DECLARE_WRITE_LINE_MEMBER(write_acia_clock);
DECLARE_WRITE_LINE_MEMBER(update_aciabaud_scale);
@@ -81,7 +103,7 @@ private:
optional_device_array<pia6821_device, 2> m_pia;
- required_device<cpu_device> m_maincpu;
+ required_device<m6502_device> m_maincpu;
optional_device<acia6850_device> m_acia6850_0;
optional_device<clock_device> m_aciabaud;
required_device<gfxdecode_device> m_gfxdecode;
@@ -99,10 +121,23 @@ private:
optional_ioport m_sw2;
output_finder<9> m_lamps;
- uint8_t m_tx_line;
+ bool m_sync;
+ bool m_timera, m_timerb, m_timerc;
+ uint8_t m_vblank, m_tx_line;
+
int m_s903_mux_data;
int m_s905_mux_data;
tilemap_t *m_bg_tilemap;
+
+ // PIAT
+ uint8_t piat_b_thi = 0;
+ uint8_t piat_01 = 0;
+ uint8_t piat_b_tlo = 0;
+ uint8_t piat_b_ctl_w;
+ uint8_t piat_b_ctl_r;
+ uint16_t piat_b_timer = 0;
+ bool piat_b_enable = false;
+ bool piat_state = false;
};
#endif // MAME_INCLUDES_CALOMEGA_H
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 3d1bec0855a..b21a816b2bb 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -9811,6 +9811,7 @@ hostinv // (c) 1998 The Game Room
calcune
@source:calomega.cpp
+cas21iwc // (c) 1990 UCMC / IWC
comg074 // (c) 1981 Cal Omega Inc.
comg076 // (c) 1981 Cal Omega Inc.
comg079 // (c) 1981 Cal Omega Inc.
@@ -9845,12 +9846,14 @@ comg240 // (c) 1985 Cal Omega / Casino Electronics Inc.
comg246 // (c) 1985 Cal Omega Inc.
comg272a // (c) 1985 Cal Omega Inc.
comg272b // (c) 1985 Cal Omega Inc.
-comg5108 // (c) 1985 Cal Omega Inc.
+comg5108 // (c) 1985 Casino Electronics Inc.
comg903d // (c) 198? Cal Omega Inc.
comg905d // (c) 198? Cal Omega Inc.
elgrande // (c) 1982 Tuni Electro Service / E.T. Marketing
jjpoker // (c) 1983 Enter-Tech
jjpokerb // (c) 1983 Enter-Tech
+pokeriwc // (c) 1991 UCMC / IWC
+pokiwc162 // (c) 1991 UCMC / IWC
ssipkr24 // (c) 1988 SSI
ssipkr30 // (c) 1988 SSI
ssipkr40 // (c) 1990 SSI